From 3c5619bb8624fe1a3794acebcd5dc1fc514ff823 Mon Sep 17 00:00:00 2001 From: iTracerFacer <134304944+iTracerFacer@users.noreply.github.com> Date: Mon, 17 Nov 2025 07:29:17 -0600 Subject: [PATCH] Initial commit of Moose CTLD Pure and associated documentation and Voice Attack profiles. --- MEDEVAC_Salvage_System_Guide.html | 752 + Moose_CTLD.lua | 13718 ++++++++++++++++ Moose_CTLD_FAC.lua | 1756 ++ Moose_CTLD_Init_DualCoalitions.lua | 118 + Moose_CTLD_Pure.code-workspace | 8 + Moose_CTLD_Pure.miz | Bin 0 -> 1709815 bytes Player_Mission_Guide.html | 301 + Player_Mission_Guide.md | 438 + Voice Attack/CTLD_TEST.vap | 25 + Voice Attack/CTLD_VoiceAttack_Guide.md | 266 + Voice Attack/CTLD_VoiceAttack_Profile.vap | 1138 ++ Voice Attack/CTLD_VoiceAttack_Profile_F10.vap | 1497 ++ ...CTLD_VoiceAttack_Profile_F10_commands.html | 587 + .../CTLD_VoiceAttack_Profile_Fixed.vap | 74 + Voice Attack/CTLD_VoiceAttack_QuickRef.md | 174 + Voice Attack/README_VoiceAttack.md | 283 + catalogs/Moose_CTLD_Catalog.lua | 334 + catalogs/Moose_CTLD_Catalog_LowCounts.lua | 334 + 18 files changed, 21803 insertions(+) create mode 100644 MEDEVAC_Salvage_System_Guide.html create mode 100644 Moose_CTLD.lua create mode 100644 Moose_CTLD_FAC.lua create mode 100644 Moose_CTLD_Init_DualCoalitions.lua create mode 100644 Moose_CTLD_Pure.code-workspace create mode 100644 Moose_CTLD_Pure.miz create mode 100644 Player_Mission_Guide.html create mode 100644 Player_Mission_Guide.md create mode 100644 Voice Attack/CTLD_TEST.vap create mode 100644 Voice Attack/CTLD_VoiceAttack_Guide.md create mode 100644 Voice Attack/CTLD_VoiceAttack_Profile.vap create mode 100644 Voice Attack/CTLD_VoiceAttack_Profile_F10.vap create mode 100644 Voice Attack/CTLD_VoiceAttack_Profile_F10_commands.html create mode 100644 Voice Attack/CTLD_VoiceAttack_Profile_Fixed.vap create mode 100644 Voice Attack/CTLD_VoiceAttack_QuickRef.md create mode 100644 Voice Attack/README_VoiceAttack.md create mode 100644 catalogs/Moose_CTLD_Catalog.lua create mode 100644 catalogs/Moose_CTLD_Catalog_LowCounts.lua diff --git a/MEDEVAC_Salvage_System_Guide.html b/MEDEVAC_Salvage_System_Guide.html new file mode 100644 index 0000000..4ace6f5 --- /dev/null +++ b/MEDEVAC_Salvage_System_Guide.html @@ -0,0 +1,752 @@ + + + + + + MOOSE CTLD: MEDEVAC & Salvage System Guide + + + +
+

🚁 MOOSE CTLD: COMPLETE MEDEVAC & SALVAGE SYSTEM GUIDE πŸ“¦

+

Dynamic Battlefield Economy & Rescue Operations

+ +
+

OVERVIEW

+

The CTLD system features a comprehensive salvage economy with TWO distinct methods for earning salvage points: MEDEVAC crew rescue missions and Sling-Load salvage crate recovery. Both systems feed into a shared coalition salvage pool that can be used to build out-of-stock equipment.

+
+ +

πŸ“‹ Complete Menu Structure

+ + +

πŸš‘ SALVAGE METHOD #1: MEDEVAC RESCUE CREW RECOVERY

+ +

CONCEPT: Rescue stranded vehicle crews and deliver them to MASH zones

+ +

How It Works

+
    +
  1. When friendly vehicles are destroyed, there's a % chance the crew survives
    + (Default: 50% survival chance, configurable per coalition)
  2. + +
  3. After a 5-minute delay (battle clearance), surviving crew spawns near the wreck with a MEDEVAC mission announcement
  4. + +
  5. Crew will: +
      +
    • Pop smoke when rescue helicopter approaches (8km detection)
    • +
    • Send colorful radio messages ("Follow the smoke!")
    • +
    • Wait up to 1 hour before being declared KIA
    • +
    • May include MANPADS soldier for self-defense (10% chance)
    • +
    +
  6. + +
  7. Load crew via normal troop pickup (land near crew, auto-loads)
  8. + +
  9. Fly to any MASH (Mobile Army Surgical Hospital) zone
  10. + +
  11. Land in MASH zone and wait 15 seconds for automatic crew offload
  12. + +
  13. Salvage points awarded based on vehicle value!
  14. +
+ +

Salvage Value Scale

+

Value is determined by the destroyed vehicle type (from catalog):

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Vehicle TypeSalvage PointsExamples
Light Vehicles1-5 pointsHumvees, trucks, light armor
Medium Vehicles5-15 pointsAPCs, IFVs, light tanks
Heavy Vehicles15-30 pointsMBTs, heavy armor
Special Assets30-50 pointsSAMs, artillery, C2 vehicles
+ +
+ Example: Rescue a T-90 crew = ~25 salvage points +
+ +

MEDEVAC F10 Menu Commands

+ + +

πŸ“¦ SALVAGE METHOD #2: SLING-LOAD RECOVERY EQUIPMENT SALVAGE

+ +

CONCEPT: Recover enemy equipment wreckage via DCS sling-load mechanics

+ +

How It Works

+
    +
  1. When ENEMY ground units die, there's a 15% chance (configurable) to spawn a physical cargo crate near the wreck for YOUR coalition to collect
  2. + +
  3. Crate naming: +
      +
    • SALVAGE-B-XXXXXX (Blue coalition can collect, spawns from RED deaths)
    • +
    • SALVAGE-R-XXXXXX (Red coalition can collect, spawns from BLUE deaths)
    • +
    +
  4. + +
  5. Orange smoke marks crate location for 2 minutes after spawn
  6. + +
  7. Crate has a random weight class (determines helicopter requirement & reward)
  8. + +
  9. Use standard DCS F6 RADIO MENU sling-load to hook the crate
  10. + +
  11. Fly to a Salvage Collection Zone (create via F10 > Field Tools menu)
  12. + +
  13. Land/drop crate inside the zone boundary
  14. + +
  15. Automatic detection awards salvage points based on weight + condition!
  16. + +
  17. Crate expires after 3 HOURS if not collected (warnings at 30min & 5min)
  18. +
+ +
+ NOT hover-pickup! This is pure DCS sling-load mechanics using F6 RADIO MENU! +
+ +

Weight Classes & Reward Matrix

+

Crate weight determines both helicopter requirements and base reward value:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Weight ClassWeight RangeHelicopterBase RewardSpawn Chance
Light1500-2500 kgUH-1H Huey, UH-602 pts/500kg50%
Medium2501-5000 kgMi-8 Hip, Ka-503 pts/500kg30%
Heavy5001-8000 kgLarge Helos5 pts/500kg15%
Super Heavy8001-12000 kgCH-47 Chinook ONLY8 pts/500kg5%
+ +

Reward Calculation Formula

+
+ Final Reward = (Weight Γ· 500) Γ— Base Multiplier Γ— Condition Bonus +

+ Example Light Crate (2000kg): + +
+ +

⚠️ Condition-Based Multipliers - FLY CAREFULLY!

+

Crate health affects your reward! Damage reduces salvage value:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConditionHealth RangeMultiplierExample (8pt base)
UNDAMAGED βœ“β‰₯ 90% health1.5x12 points (+50% BONUS!)
Damaged50-89% health1.0x8 points (normal)
Heavy Damage ⚠< 50% health0.5x4 points (-50% penalty)
DESTROYED βœ—0% health0x0 points (crate lost)
+ +
+ Smooth flying = 50% bonus! Crash landing = 50% penalty! +
+ +

Example Salvage Scenarios

+ +
+

Scenario A: Light Crate, Perfect Delivery

+ +
+ +
+

Scenario B: Medium Crate, Rough Landing

+ +
+ +
+

Scenario C: Super Heavy Crate, Crashed

+ +
+ +
+

Scenario D: Heavy Crate, Destroyed

+ +
+ +

Sling-Load Salvage F10 Menu Commands

+ + +

Spawn Restrictions

+

Salvage crates will NOT spawn:

+ + +

Lifecycle & Warnings

+ + +

πŸ’° Using Salvage Points

+ +

What Are Salvage Points?

+

Salvage points are a coalition-wide resource pool that allows you to build equipment that is normally out-of-stock at your current location.

+ +

When Salvage Is Used

+

Salvage auto-applies when:

+
    +
  1. You request a crate that is OUT OF STOCK at nearest supply zone
  2. +
  3. Coalition has enough salvage points to cover the cost
  4. +
  5. Cost = item's required crate count (e.g., M1 Abrams = 3 crates = 3 salvage)
  6. +
+ +

Salvage Balance

+

Check your coalition's salvage point balance:

+

F10 > Operations > MEDEVAC > Coalition Salvage Points

+

Or build/request menu will show salvage balance when out-of-stock

+ +

🎯 Strategic Considerations

+ +
+
+

MEDEVAC Advantages

+
    +
  • βœ“ More consistent rewards (vehicle value-based)
  • +
  • βœ“ Easier execution (normal troop pickup + land at MASH)
  • +
  • βœ“ Lower skill requirement
  • +
  • βœ“ Supports role-play/immersion
  • +
  • βœ“ No condition penalties
  • +
+
+
+

Sling-Load Salvage Advantages

+
    +
  • βœ“ Higher potential rewards (up to 160pts for perfect Chinook delivery!)
  • +
  • βœ“ More frequent opportunities (every enemy kill = 15% chance)
  • +
  • βœ“ Skill-based system (rewards good flying)
  • +
  • βœ“ Can be done solo or coordinated
  • +
  • βœ“ Creates dynamic battlefield scavenging gameplay
  • +
+
+
+ +

Combined Strategy

+

Smart coalitions will:

+ + +

πŸš€ Quick Reference

+ +
+
+

MEDEVAC Quick Steps

+
    +
  1. Listen for MEDEVAC announcement (friendly vehicle crew spawned)
  2. +
  3. F10 > Ops > MEDEVAC > Vectors to Nearest Crew
  4. +
  5. Fly to location, follow smoke
  6. +
  7. Land near crew (auto-loads like troops)
  8. +
  9. Fly to MASH zone
  10. +
  11. Land and wait 15 seconds
  12. +
  13. Salvage awarded! Vehicle respawns shortly after.
  14. +
+
+ +
+

Sling-Load Salvage Quick Steps

+
    +
  1. Listen for salvage spawn announcement (enemy died β†’ crate spawned)
  2. +
  3. F10 > Navigation > Vectors to Nearest Salvage Crate
  4. +
  5. Fly to location (orange smoke = crate)
  6. +
  7. Use DCS F6 RADIO MENU > Sling Load > Hook Cargo
  8. +
  9. Fly carefully to Salvage Collection Zone
  10. +
  11. Land or drop crate inside zone
  12. +
  13. Salvage awarded based on weight + condition!
  14. +
+
+
+ +

Key Differences

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureMEDEVACSling-Load Salvage
Pickup MethodHover pickup OR land β†’ auto-loads troopsDCS F6 menu sling-load ONLY (not CTLD hover pickup!)
Reward TypeFixed value per vehicle typeVariable value based on weight + flying skill
Time Window1-hour window before crew KIA3-hour window before crate expires
Skill LevelEasy to MediumMedium to Hard (condition bonuses)
+ +

πŸ”§ Troubleshooting

+ +

"I can't sling-load the salvage crate!"

+ + +

"Crate disappeared before I got there!"

+ + +

"I didn't get full reward for my delivery!"

+ + +

"No MEDEVAC missions spawning!"

+ + +

"Where do I create Salvage Collection Zones?"

+ + +

βš™οΈ Configuration Notes

+

Mission makers can adjust:

+ +

All settings are per-coalition and fully configurable via the CTLD config table.

+ + +
+ + \ No newline at end of file diff --git a/Moose_CTLD.lua b/Moose_CTLD.lua new file mode 100644 index 0000000..1d94d2b --- /dev/null +++ b/Moose_CTLD.lua @@ -0,0 +1,13718 @@ +-- Pure-MOOSE, template-free CTLD-style logistics & troop transport +-- Drop-in script: no MIST, no mission editor templates required +-- Dependencies: Moose.lua must be loaded before this script +-- Author: Copilot (generated) +-- +-- LOGGING SYSTEM: +-- LogLevel configuration controls verbosity: 0=NONE, 1=ERROR, 2=INFO (default), 3=VERBOSE, 4=DEBUG +-- Set LogLevel in config to reduce log spam on production servers. See LOGGING_GUIDE.md for details. + +-- Contract +-- Inputs: Config table or defaults. No ME templates needed. Zones may be named ME trigger zones or provided via coordinates in config. +-- Outputs: F10 menus for helo/transport groups; crate spawning/building; troop load/unload; optional JTAC hookup (via FAC module); +-- Error modes: missing Moose -> abort; unknown crate key -> message; spawn blocked in enemy airbase; zone missing -> message. +-- +-- Orignal Author of CTLD: Ciribob +-- Moose adaptation: Lathe, Copilot, F99th-TracerFacer + +-- #region Config + +local CTLD = {} +CTLD.Version = '1.0.1' +CTLD.__index = CTLD +CTLD._lastSalvageInterval = CTLD._lastSalvageInterval or 0 +CTLD._playerUnitPrefs = CTLD._playerUnitPrefs or {} + +local _msgGroup, _msgCoalition +local _log, _logError, _logInfo, _logVerbose, _logDebug, _logImmediate + +-- General CTLD event messages (non-hover). Tweak freely. +CTLD.Messages = { + -- Crates + crate_spawn_requested = "Request receivedβ€”spawning {type} crate at {zone}.", + pickup_zone_required = "Move within {zone_dist} {zone_dist_u} of a Supply Zone to request crates. Bearing {zone_brg}Β° to nearest zone.", + no_pickup_zones = "No Pickup Zones are configured for this coalition. Ask the mission maker to add supply zones or disable the pickup zone requirement.", + crate_re_marked = "Re-marking crate {id} with {mark}.", + crate_expired = "Crate {id} expired and was removed.", + crate_max_capacity = "Max load reached ({total}). Drop or build before picking up more.", + crate_aircraft_capacity = "Aircraft capacity reached ({current}/{max} crates). Your {aircraft} can only carry {max} crates.", + troop_aircraft_capacity = "Aircraft capacity reached. Your {aircraft} can only carry {max} troops (you need {count}).", + crate_spawned = "Crate’s live! {type} [{id}]. Bearing {brg}Β° range {rng} {rng_u}.\nCall for vectors if you need a hand.\n\nTo load: HOVER within 25m at 5-20m AGL, or LAND within 35m and hold for 25s.", + + -- Drops + drop_initiated = "Dropping {count} crate(s) here…", + dropped_crates = "Dropped {count} crate(s) at your location.", + no_loaded_crates = "No loaded crates to drop.", + + -- Build + build_insufficient_crates = "Insufficient crates to build {build}.", + build_requires_ground = "You have {total} crate(s) onboardβ€”drop them first to build here.", + build_started = "Building {build} at your position…", + build_success = "{build} deployed to the field!", + build_success_coalition = "{player} deployed {build} to the field!", + build_failed = "Build failed: {reason}.", + fob_restricted = "FOB building is restricted to designated FOB zones.", + auto_fob_built = "FOB auto-built at {zone}.", + + -- Troops + troops_loaded = "Loaded {count} troopsβ€”ready to deploy.", + troops_unloaded = "Deployed {count} troops.", + troops_unloaded_coalition = "{player} deployed {count} troops.", + troops_fast_roped = "Fast-roped {count} troops into the field!", + troops_fast_roped_coalition = "{player} fast-roped {count} troops from {aircraft}!", + no_troops = "No troops onboard.", + troops_deploy_failed = "Deploy failed: {reason}.", + troop_pickup_zone_required = "Move inside a Supply Zone to load troops. Nearest zone is {zone_dist}, {zone_dist_u} away bearing {zone_brg}Β°.", + troop_load_must_land = "Must be on the ground to load troops. Land and reduce speed to < {max_speed} {speed_u}.", + troop_load_too_fast = "Ground speed too high for loading. Reduce to < {max_speed} {speed_u} (current: {current_speed} {speed_u}).", + troop_unload_altitude_too_high = "Too high for fast-rope deployment. Maximum: {max_agl} m AGL (current: {current_agl} m). Land or descend.", + troop_unload_altitude_too_low = "Too low for safe fast-rope. Minimum: {min_agl} m AGL (current: {current_agl} m). Climb or land.", + + -- Ground auto-load + ground_load_started = "{ground_line}\nHold position for {seconds}s to load {count} crate(s)...", + ground_load_progress = "{ground_line}\n{remaining}s remaining. Hold position.", + ground_load_complete = "{ground_line}\nLoaded {count} crate(s).", + ground_load_aborted = "Ground load aborted: aircraft moved or lifted off.", + ground_load_no_zone = "Ground auto-load requires being inside a Pickup Zone. Nearest zone: {zone_dist} {zone_dist_u} at {zone_brg}Β°.", + ground_load_no_crates = "No crates within {radius}m to load.", + + -- Coach & nav + vectors_to_crate = "Nearest crate {id}: bearing {brg}Β°, range {rng} {rng_u}.", + vectors_to_pickup_zone = "Nearest supply zone {zone}: bearing {brg}Β°, range {rng} {rng_u}.", + coach_enabled = "Hover Coach enabled.", + coach_disabled = "Hover Coach disabled.", + + -- Hover Coach guidance + coach_arrival = "You’re closeβ€”nice and easy. Hover at 5–20 meters.", + coach_close = "Reduce speed below 15 km/h and set 5–20 m AGL.", + coach_hint = "{hints} GS {gs} {gs_u}.", + coach_too_fast = "Too fast for pickup: GS {gs} {gs_u}. Reduce below 8 km/h.", + coach_too_high = "Too high: AGL {agl} {agl_u}. Target 5–20 m.", + coach_too_low = "Too low: AGL {agl} {agl_u}. Maintain at least 5 m.", + coach_drift = "Outside pickup window. Re-center within 25 m.", + coach_hold = "Oooh, right there! HOLD POSITION…", + coach_loaded = "Crate is hooked! Nice flying!", + coach_hover_lost = "Movement detectedβ€”recover hover to load.", + coach_abort = "Hover lost. Reacquire within 25 m, GS < 8 km/h, AGL 5–20 m.", + + -- Zone state changes + zone_activated = "{kind} Zone {zone} is now ACTIVE.", + zone_deactivated = "{kind} Zone {zone} is now INACTIVE.", + + -- Attack/Defend announcements + attack_enemy_announce = "{unit_name} deployed by {player} has spotted an enemy {enemy_type} at {brg}Β°, {rng} {rng_u}. Moving to engage!", + attack_base_announce = "{unit_name} deployed by {player} is moving to capture {base_name} at {brg}Β°, {rng} {rng_u}.", + attack_no_targets = "{unit_name} deployed by {player} found no targets within {rng} {rng_u}. Holding position.", + + jtac_onstation = "JTAC {jtac} on station. CODE {code}.", + jtac_new_target = "JTAC {jtac} lasing {target}. CODE {code}. POS {grid}.", + jtac_target_lost = "JTAC {jtac} lost target. Reacquiring.", + jtac_target_destroyed = "JTAC {jtac} reports target destroyed.", + jtac_idle = "JTAC {jtac} scanning for targets.", + + -- Zone restrictions + drop_forbidden_in_pickup = "Cannot drop crates inside a Supply Zone. Move outside the zone boundary.", + troop_deploy_forbidden_in_pickup = "Cannot deploy troops inside a Supply Zone. Move outside the zone boundary.", + drop_zone_too_close_to_pickup = "Drop Zone creation blocked: too close to Supply Zone {zone} (need at least {need} {need_u}; current {dist} {dist_u}). Fly further away and try again.", + + -- MEDEVAC messages + medevac_crew_spawned = "MEDEVAC REQUEST: {vehicle} crew at {grid}. {crew_size} personnel awaiting rescue. Salvage value: {salvage}.", + medevac_crew_loaded = "Rescued {vehicle} crew ({crew_size} personnel). {vehicle} will respawn shortly.", + medevac_vehicle_respawned = "{vehicle} repaired and returned to the field at original location!", + medevac_crew_delivered_mash = "{player} delivered {vehicle} crew to MASH. Earned {salvage} salvage points! Coalition total: {total}.", + medevac_crew_timeout = "MEDEVAC FAILED: {vehicle} crew at {grid} KIA - no rescue attempted. Vehicle lost.", + medevac_crew_killed = "MEDEVAC FAILED: {vehicle} crew killed in action. Vehicle lost.", + medevac_no_requests = "No active MEDEVAC requests.", + medevac_vectors = "MEDEVAC: {vehicle} crew bearing {brg}Β°, range {rng} {rng_u}. Time remaining: {time_remain} mins.", + medevac_salvage_status = "Coalition Salvage Points: {points}. Use salvage to build out-of-stock items.", + medevac_salvage_used = "Built {item} using {salvage} salvage points. Remaining: {remaining}.", + medevac_salvage_insufficient = "Out of stock. Requires {need} salvage points (need {deficit} more). Earn salvage by delivering MEDEVAC crews to MASH or sling-loading enemy wreckage.", + medevac_crew_warn_15min = "WARNING: {vehicle} crew at {grid} - rescue window expires in 15 minutes!", + medevac_crew_warn_5min = "URGENT: {vehicle} crew at {grid} - rescue window expires in 5 minutes!", + medevac_unload_hold = "MEDEVAC: Stay grounded in the MASH zone for {seconds} seconds to offload casualties.", + + -- Sling-Load Salvage messages + slingload_salvage_spawned = "SALVAGE OPPORTUNITY: Enemy wreckage at {grid}. Weight: {weight}kg, Est. Value: {reward}pts. {time_remain} remaining to collect!", + slingload_salvage_delivered = "{player} delivered {weight}kg salvage for {reward} points ({condition})! Coalition total: {total}", + slingload_salvage_expired = "SALVAGE LOST: Crate {id} at {grid} deteriorated.", + slingload_salvage_damaged = "CAUTION: Salvage crate damaged in transit. Value reduced to {reward}pts.", + slingload_salvage_vectors = "Nearest salvage crate {id}: bearing {brg}Β°, range {rng} {rng_u}. Weight: {weight}kg, Value: {reward}pts.", + slingload_salvage_no_crates = "No active salvage crates available.", + slingload_salvage_zone_created = "Salvage Collection Zone '{zone}' created at your position (radius: {radius}m).", + slingload_salvage_zone_activated = "Salvage Collection Zone '{zone}' is now ACTIVE.", + slingload_salvage_zone_deactivated = "Salvage Collection Zone '{zone}' is now INACTIVE.", + slingload_salvage_warn_30min = "SALVAGE REMINDER: Crate {id} at {grid} expires in 30 minutes. Weight: {weight}kg.", + slingload_salvage_warn_5min = "SALVAGE URGENT: Crate {id} at {grid} expires in 5 minutes!", + slingload_salvage_hooked_in_zone = "Salvage crate {id} is inside {zone}. Release the sling to complete delivery.", + slingload_salvage_wrong_zone = "Salvage crate {id} is sitting in {zone_type} zone {zone}. Take it to an active Salvage zone for credit.", + slingload_salvage_received_quips = { + "{player}: Leroy just whispered that's the smoothest receiving job he's seen since Jenkins tried the backwards hover.", + "Jenkins radios {player}, 'Keep receiving cargo like that and Mo might finally stop polishing his hook.'", + "Mo mutters, 'I thought we were receiving ammo, not a love letter, {player}.'", + "Leroy is yelling 'RECEIVE IT' like we're back at basicβ€”nice work, {player}.", + "Jenkins keeps a scoreboard titled 'Most dramatic receiving'. Congrats, {player}, you're on top.", + "Mo claims he can hear the crate blush when {player} talks about receiving it.", + "Leroy swears the secret to receiving cargo is wink twice and yell 'Jenkins!'β€”apparently {player} nailed it.", + "Jenkins asked if {player} offers receiving lessons; I told him to practice on Mo's toolbox first.", + "Mo's diary entry tonight: '{player} received cargo and my rotor wash feelings.'", + "Leroy just gave {player} a 'World's Best Receiver' sticker; don't ask where he kept it.", + "Jenkins would like to know how {player} made receiving cargo look like interpretive dance.", + "Mo says the crate purred when {player} set it down. I blame Leroy's commentary.", + "Leroy keeps chanting 'receiver of the year' while pointing at {player}. Jenkins is jealous.", + "Jenkins tried to high five {player} mid-receive; Mo tackled him for safety reasons (probably).", + "Mo claims {player}'s receiving form violates at least three flirtation regulations.", + "Leroy just filed paperwork changing {player}'s callsign to 'Receiver Prime'.", + "Jenkins bet Mo twenty bucks {player} would blush while receiving. Pay up, Mo.", + "Mo suggests engraving {player}'s name on the salvage zone after that receive.", + "Leroy is teaching a receiving clinic now, curriculum: 'Be {player}'.", + "Jenkins whispered, 'Was it good for you, cargo?' right after {player} touched down.", + "Mo's clipboard has doodles of {player} receiving crates with heroic sparkles.", + "Leroy just threw fake rose petals over the zone as {player} finished receiving.", + "Jenkins swears he heard a saxophone during that receive. You owe the band, {player}.", + "Mo radioed, 'Easy on the receiving, {player}. Jenkins can't handle that much elegance.'", + "Leroy said {player}'s receiving style is 'spicy yet responsible'. I'm both impressed and confused.", + "Jenkins taped a 'Certified Receiver' badge on {player}'s dash. It's glittery. You're stuck with it.", + "Mo reckons {player} could receive a crate blindfolded; Leroy begged to test that theory.", + "Leroy keeps shouting 'stick the landing' but {player} already didβ€”twice.", + "Jenkins requested that {player} narrate the next receiving so he can take notes.", + "Mo says if {player} receives one more crate like that, he'll start writing poetry.", + "Leroy just named this salvage drop 'Operation Receive and Believe' in {player}'s honor.", + "Jenkins said '{player} receives cargo like it's a surprise party and everyone's invited.'", + "Mo's new checklist: 1) Fuel 2) Ammo 3) Compliment {player}'s receiving technique.", + "Leroy tried to slow clap mid-receive; Jenkins confiscated his gloves.", + "Jenkins asked if {player} rehearsed that receive with mirrors. Mo said 'jealous much?'.", + "Mo beams, 'If receiving had judges, {player} just earned a 10 from Leroy and a dramatic sigh from Jenkins.'", + "Leroy told {player} to teach Jenkins how to receive without dropping his dignity.", + "Jenkins insists {player}'s receiving aura smells like jet fuel and confidence.", + "Mo logged today's weather as 'partly cloudy with a 100% chance of {player} receiving nicely.'", + "Leroy carved '{player} receives like a legend' into the ready room table. Again.", + "Jenkins wrote a haiku about that receiving: 'Crate softly descends / {player} grins / Mo steals the pen.'", + "Mo radioed 'next crate volunteers to be received by {player} only'. That's a policy now.", + "Leroy just asked supply for a 'Receiver of Renown' patch for {player}.", + "Jenkins claims he can feel the cargo sigh happily whenever {player} receives it.", + "Mo's schedule: 0900 watch {player} receive cargo, 0915 tease Jenkins about it.", + "Leroy calls {player}'s receiving style 'buttery smooth'. Jenkins now refuses to eat butter.", + "Jenkins left a sticky note on the crate: 'Thanks for receiving me gently, {player}.'", + "Mo wants to rename the salvage zone 'The {player} Receiving Lounge'.", + "Leroy drew hearts on the map where {player} usually receives cargo. Tactical? Maybe.", + "Jenkins petitioned command to play theme music every time {player} receives.", + "Mo refuses to stop chuckling about the way {player} said 'receiving' over comms.", + "Leroy says {player}'s receiving vibe is 'half heroics, half mischief'. Jenkins says 'all jealous'.", + "Jenkins asked if {player} could autograph the crate before sending it to depots.", + "Mo declared 'receiving is believing' after watching {player} today.", + "Leroy reenacting {player}'s receiving on the ramp is the finest comedy we've had all week.", + "Jenkins keeps practicing saying 'receiving' with the same swagger {player} has.", + "Mo whispers, 'Every time {player} receives cargo, a wrench somewhere falls in love.'", + "Leroy filed a noise complaint: 'Jenkins screaming while {player} receives is distracting.'", + "Jenkins now greets crates with 'prepare to be received by {player}β€”lucky you.'", + "Mo replaced the zone sign with 'Please announce yourself before {player} receives you.'", + "Leroy says the salvage crate winked at {player}. Jenkins is skeptical but also jealous.", + "Jenkins claims {player}'s receiving technique could calm a startled MANPAD crew.", + "Mo has a coffee mug that reads 'I watched {player} receive cargo and all I got was this latte.'", + "Leroy tried to choreograph a receiving dance for {player}; Jenkins tripped at step two.", + "Jenkins keeps bragging he called dibs on being {player}'s receiving hype man.", + "Mo scribbled 'receiving champion' under {player}'s name on the roster.", + "Leroy says {player}'s receiving voice has more bass than the AWACS channel.", + "Jenkins asked supply for velvet ropes to keep crowds away while {player} receives.", + "Mo's new ringtone is {player} saying 'receiving'. Leroy set it as his alarm too.", + "Leroy's advice to rookies: 'Just copy whatever {player} does when receiving.'", + "Jenkins says he needs sunglasses to watch {player} receive because it's that dazzling.", + "Mo keeps muttering 'receiving goals' every time {player} touches down in the zone.", + "Leroy left chalk arrows around the FARP labeled 'This way to watch {player} receive.'", + "Jenkins insists the crate asked for {player}'s comm frequency after that receive.", + "Mo bet the maintenance crew that {player} could receive cargo upside down. Please don't try it.", + "Leroy's latest call sign suggestion for {player}: 'Receiver Supreme'.", + "Jenkins laminated a card that says 'Ask me about {player}'s receiving technique.'", + "Mo says the wind socks lean toward {player} out of respect whenever receiving begins.", + "Leroy drew a cartoon of {player} receiving cargo while Jenkins fans them with a checklist.", + "Jenkins keeps replaying the cockpit tape of {player} saying 'receiving' on loop.", + "Mo told supply to send extra polish for the pad because {player} only receives on shiny decks.", + "Leroy swears he heard the crate whisper 'thanks, {player}' as it touched down.", + "Jenkins offers motivational speeches to crates before {player} arrives, just to set the mood.", + "Mo added 'compliment {player}'s receiving tone' to the preflight checklist.", + "Leroy refuses to call it unloading anymore; it's 'the {player} receiving ritual'.", + "Jenkins keeps practicing finger guns for when {player} calls 'receiving'.", + "Mo doodled {player} surfing on a crate labeled 'Receiving Champion'.", + "Leroy renamed the F10 menu option to 'Let {player} receive it'. QA is furious.", + "Jenkins says whenever {player} receives cargo, somewhere a sim pilot sheds a proud tear.", + "Mo now greets every crate with 'Ready to be received {player}-style?'.", + "Leroy told the intel guys to log {player}'s receiving pattern as a morale asset.", + "Jenkins claims {player}'s receiving aura smells like hydraulic fluid and heroics.", + "Mo keeps a chalkboard tally titled '{player}'s Receives vs Jenkins' Complaints'. Receives win.", + "Leroy is convinced {player}'s receiving callouts add five knots to every rotorcraft nearby.", + "Jenkins practices saying 'nice receiving' in the mirror so he doesn't squeak on comms.", + "Mo decorated the salvage zone with disco lights for the next time {player} receives.", + "Leroy asked PAO for a documentary called 'Receiving with {player}'.", + "Jenkins swears {player}'s receiving cadence syncs perfectly with the base siren. Spooky.", + "Mo now ends every debrief with 'and that's how {player} receives cargo, folks.'", + "Leroy wrote a limerick about {player} receiving; Jenkins begged him not to recite it.", + "Jenkins told the new guy 'if {player} says receiving, salute the crate.'", + "Mo keeps drawing diagrams titled 'Ideal Receiving Cones' with {player} stick figures.", + "Leroy asked meteorology for a forecast of '{player} receiving with 100% sass'.", + "Jenkins says hearing {player} say 'receiving' cured his fear of autorotations.", + "Mo replaced the salvage beacon tone with {player} humming the receiving tune.", + "Leroy told Jenkins, 'If you can't receive like {player}, at least clap rhythmically.'", + "Jenkins is workshopping a catchphrase: '{player} receives, Mo believes, Leroy deceives.'", + "Mo says the only thing smoother than {player}'s receiving is Leroy's questionable pickup lines.", + "Leroy wants to build a statue of {player} holding a crate; Jenkins suggested maybe start with a sticker.", + "Jenkins insists {player}'s receiving voice lowers enemy morale by 10%. Science-ish.", + "Mo has a bingo card of {player}'s receiving compliments; he's already got blackout.", + "Leroy now ends every briefing with 'remember, let {player} receive first'.", + "Jenkins swears his headset auto-tunes whenever {player} says 'receiving'.", + "Mo just said, 'If receiving had medals, {player} would need a bigger flight suit.'", + "Leroy warns crates, 'If {player} receives you, expect fireworks and Jenkins squealing.'", + "Jenkins' new mantra: 'Breathe in rotor wash, breathe out {player}'s receiving tips.'", + "Mo says {player}'s receiving swagger should be issued with the flight manual.", + "Leroy doodled {player} riding a crate labeled 'Receiving Express'β€”Mo framed it.", + "Jenkins told logistics, 'Mark that crate FRAGILE, {player} receives with feelings.'", + "Mo now pronounces 'receiving' with extra syllables whenever {player} is on station.", + "Leroy thinks {player}'s receiving just added three morale points to the whole AO.", + "Jenkins said he'd write a sonnet about {player}'s receiving if he knew what a sonnet was.", + "Mo just asked if we could get {player} to receive the mail too, because wow.", + "Leroy polished the landing zone so {player}'s next receiving feels fancy.", + "Jenkins is holding up scorecards every time {player} says 'receiving'. The numbers keep climbing.", + "Mo claims {player}'s receiving is now a controlled substance in three states.", + "Leroy told everyone to clear the padβ€”'{player} needs room to receive with flair!'.", + "Jenkins thinks {player}'s receiving tone should replace the standard 'cargo secure' call.", + "Mo concluded today's briefing with 'Step 1: Let {player} receive. Step 2: Profit.'", + "Leroy keeps whispering 'look how {player} receives' like it's a wildlife documentary.", + "Jenkins renamed his playlist 'Songs to Receive Cargo Like {player}'.", + "Mo's checklist scribble says 'Remember to compliment {player} after receiving'.", + "Leroy just added 'receiving swagger' to the SOP because of {player}.", + "Jenkins insists {player}'s receiving posture cured his back pain. Untested claim.", + "Mo now uses '{player}-level receiving' as a unit of measurement for excellence.", + "Leroy stuck a note on the crate: 'You were received by {player}. You're welcome.'", + "Jenkins laughed so hard at {player}'s receiving banter that he nearly dropped his clipboard.", + "Mo just declared {player} the patron saint of receiving, halo made of tie-down straps.", + "Leroy vows to shout 'RECEIVE IT' every time {player} descends, purely for morale.", + "Jenkins says {player}'s receiving swagger should be bottled and issued to recruits.", + }, + medevac_unload_aborted = "MEDEVAC: Unload aborted - {reason}. Land and hold for {seconds} seconds.", + + -- Mobile MASH messages + medevac_mash_deployed = "Mobile MASH {mash_id} deployed at {grid}. Beacon: {freq}. Delivering MEDEVAC crews here earns salvage points.", + medevac_mash_announcement = "Mobile MASH {mash_id} available at {grid}. Beacon: {freq}.", + medevac_mash_destroyed = "Mobile MASH {mash_id} destroyed! No longer accepting deliveries.", + mash_announcement = "MASH {name} operational at {grid}. Accepting MEDEVAC deliveries for salvage credit. Monitoring {freq} AM.", + mash_vectors = "Nearest MASH: {name} at bearing {brg}Β°, range {rng} {rng_u}.", + mash_no_zones = "No MASH zones available.", +} + +-- #endregion Messaging + +CTLD.Config = { + -- === Instance & Access === + CoalitionSide = coalition.side.BLUE, -- default coalition this instance serves (menus created for this side) + CountryId = nil, -- optional explicit country id for spawned groups; falls back per coalition + AllowedAircraft = { -- transport-capable unit type names (case-sensitive as in DCS DB) + 'UH-1H','Mi-8MTV2','Mi-24P','SA342M','SA342L','SA342Minigun','Ka-50','Ka-50_3','AH-64D_BLK_II','UH-60L','CH-47Fbl1','CH-47F','Mi-17','GazelleAI' + }, + -- === Runtime & Messaging === + -- Logging control: set the desired level of detail for env.info logging to DCS.log + -- 0 = NONE - No logging at all (production servers) + -- 1 = ERROR - Only critical errors and warnings + -- 2 = INFO - Important state changes, initialization, cleanup (default for production) + -- 3 = VERBOSE - Detailed operational info (zone validation, menus, builds, MEDEVAC events) + -- 4 = DEBUG - Everything including hover checks, crate pickups, detailed troop spawns + LogLevel = 1, -- lowered from DEBUG (4) to INFO (2) for production performance + MessageDuration = 15, -- seconds for on-screen messages + + -- Debug toggles for detailed crate proximity logging (useful when tuning hover coach / ground autoload) + DebugHoverCrates = false, + DebugHoverCratesInterval = 1.0, -- seconds between hover debug log bursts (per aircraft) + DebugHoverCratesStep = 25, -- log again when nearest crate distance changes by this many meters + DebugGroundCrates = false, + DebugGroundCratesInterval = 2.0, -- seconds between ground debug log bursts (per aircraft) + DebugGroundCratesStep = 10, -- log again when nearest crate distance changes by this many meters + + -- === Menu & Catalog === + UseGroupMenus = true, -- if true, F10 menus per player group; otherwise coalition-wide (leave this alone) + CreateMenuAtMissionStart = false, -- creates empty root menu at mission start to reserve F10 position (populated on player spawn) + RootMenuName = 'CTLD', -- name for the root F10 menu; menu ordering depends on script load order in mission editor + UseCategorySubmenus = true, -- if true, organize crate requests by category submenu (menuCategory) + UseBuiltinCatalog = false, -- start with the shipped catalog (true) or expect mission to load its own (false) + + -- === Transport Capacity === + -- Default capacities for aircraft not listed in AircraftCapacities table + -- Used as fallback for any transport aircraft without specific limits defined + DefaultCapacity = { + maxCrates = 4, -- reasonable middle ground + maxTroops = 12, -- moderate squad size + maxWeightKg = 2000, -- default weight capacity in kg (omit to disable weight modeling) + }, + + -- Per-aircraft capacity limits (realistic cargo/troop capacities) + -- Set maxCrates = 0 and maxTroops = 0 for attack helicopters with no cargo capability + -- If an aircraft type is not listed here, it will use DefaultCapacity values + -- maxWeightKg: optional weight capacity in kilograms (if omitted, only count limits apply) + -- requireGround: optional override for ground requirement (true = must land, false = can load in hover/flight) + -- maxGroundSpeed: optional override for max ground speed during loading (m/s) + AircraftCapacities = { + -- Small/Light Helicopters (very limited capacity) + ['SA342M'] = { maxCrates = 1, maxTroops = 3, maxWeightKg = 400 }, -- Gazelle - tiny observation/scout helo + ['SA342L'] = { maxCrates = 1, maxTroops = 3, maxWeightKg = 400 }, + ['SA342Minigun'] = { maxCrates = 1, maxTroops = 3, maxWeightKg = 400 }, + ['GazelleAI'] = { maxCrates = 1, maxTroops = 3, maxWeightKg = 400 }, + + -- Attack Helicopters (no cargo capacity - combat only) + ['Ka-50'] = { maxCrates = 0, maxTroops = 0, maxWeightKg = 0 }, -- Black Shark - single seat attack + ['Ka-50_3'] = { maxCrates = 0, maxTroops = 0, maxWeightKg = 0 }, -- Black Shark 3 + ['AH-64D_BLK_II'] = { maxCrates = 0, maxTroops = 0, maxWeightKg = 0 }, -- Apache - attack/recon only + ['Mi-24P'] = { maxCrates = 2, maxTroops = 8, maxWeightKg = 1000 }, -- Hind - attack helo but has small troop bay + + -- Light Utility Helicopters (moderate capacity) + ['UH-1H'] = { maxCrates = 3, maxTroops = 11, maxWeightKg = 1800 }, -- Huey - classic light transport + + -- Medium Transport Helicopters (good capacity) + ['Mi-8MTV2'] = { maxCrates = 5, maxTroops = 24, maxWeightKg = 4000 }, -- Hip - Russian medium transport + ['Mi-17'] = { maxCrates = 5, maxTroops = 24, maxWeightKg = 4000 }, -- Hip variant + ['UH-60L'] = { maxCrates = 4, maxTroops = 11, maxWeightKg = 4000 }, -- Black Hawk - medium utility + + -- Heavy Lift Helicopters (maximum capacity) + ['CH-47Fbl1'] = { maxCrates = 10, maxTroops = 33, maxWeightKg = 12000 }, -- Chinook - heavy lift beast + ['CH-47F'] = { maxCrates = 10, maxTroops = 33, maxWeightKg = 12000 }, -- Chinook variant + + -- Fixed Wing Transport (limited capacity) + -- NOTE: C-130 has requireGround configurable - set to false if you want to allow in-flight loading (unrealistic but flexible) + ['C-130'] = { maxCrates = 20, maxTroops = 92, maxWeightKg = 20000, requireGround = true, maxGroundSpeed = 1.0 }, -- C-130 Hercules - tactical airlifter (must be fully stopped) + ['C-17A'] = { maxCrates = 30, maxTroops = 150, maxWeightKg = 77500, requireGround = true, maxGroundSpeed = 1.0 }, -- C-17 Globemaster III - strategic airlifter + }, + + -- === Loading & Deployment Rules === + RequireGroundForTroopLoad = true, -- must be landed to load troops (prevents loading while hovering) + RequireGroundForVehicleLoad = true, -- must be landed to load vehicles (C-130/large transports) + MaxGroundSpeedForLoading = 2.0, -- meters/second limit while loading (roughly 4 knots) + + -- Fast-rope deployment (allows troop unload while hovering at safe altitude) + EnableFastRope = true, -- if true, troops can fast-rope from hovering helicopters + FastRopeMaxHeight = 20, -- meters AGL: maximum altitude for fast-rope deployment + FastRopeMinHeight = 5, -- meters AGL: minimum altitude for fast-rope deployment (too low = collision risk) + + -- Safety offsets to avoid spawning units too close to player aircraft + BuildSpawnOffset = 40, -- meters: shift build point forward from the aircraft (0 = spawn centered on aircraft) + TroopSpawnOffset = 25, -- meters: shift troop unload point forward from the aircraft + DropCrateForwardOffset = 35, -- meters: drop loaded crates this far in front of the aircraft + + -- === Build & Crate Handling === + BuildRequiresGroundCrates = true, -- required crates must be on the ground (not still carried) + BuildRadius = 60, -- meters around build point to collect crates + RestrictFOBToZones = false, -- only allow FOB recipes inside configured FOBZones + AutoBuildFOBInZones = false, -- auto-build FOB recipes when required crates are inside a FOB zone + CrateLifetime = 3600, -- seconds before crates auto-clean up; 0 = disable + + -- Build safety + BuildConfirmEnabled = false, -- require a second confirmation within a short window before building + BuildConfirmWindowSeconds = 30, -- seconds allowed between first and second "Build Here" press + BuildCooldownEnabled = true, -- impose a cooldown before allowing another build by the same group + BuildCooldownSeconds = 60, -- seconds of cooldown after a successful build per group + + -- === Pickup & Drop Zone Rules === + RequirePickupZoneForCrateRequest = true, -- enforce that crate requests must be near a Supply (Pickup) Zone + RequirePickupZoneForTroopLoad = true, -- troops can only be loaded while inside a Supply (Pickup) Zone + PickupZoneMaxDistance = 10000, -- meters; nearest pickup zone must be within this distance to allow a request + ForbidDropsInsidePickupZones = true, -- block crate drops while inside a Pickup Zone + ForbidTroopDeployInsidePickupZones = true, -- block troop deploy while inside a Pickup Zone + ForbidChecksActivePickupOnly = true, -- when true, restriction applies only to ACTIVE pickup zones; false blocks all configured pickup zones + + -- Dynamic Drop Zone settings + DropZoneRadius = 500, -- meters: radius used when creating a Drop Zone via the admin menu at player position + MinDropZoneDistanceFromPickup = 2000, -- meters: minimum distance from nearest Pickup Zone required to create a dynamic Drop Zone (0 to disable) + MinDropDistanceActivePickupOnly = true, -- when true, only ACTIVE pickup zones are considered for the minimum distance check + + -- === Pickup Zone Spawn Placement === + PickupZoneSpawnRandomize = true, -- spawn crates at a random point within the pickup zone (avoids stacking) + PickupZoneSpawnEdgeBuffer = 20, -- meters: keep spawns at least this far inside the zone edge + PickupZoneSpawnMinOffset = 75, -- meters: keep spawns at least this far from the exact center + CrateSpawnMinSeparation = 7, -- meters: try not to place a new crate closer than this to an existing one + CrateSpawnSeparationTries = 6, -- attempts to find a non-overlapping position before accepting best effort + CrateClusterSpacing = 8, -- meters: spacing used when clustering crates within a bundle + PickupZoneSmokeColor = trigger.smokeColor.Green, -- default smoke color when spawning crates at pickup zones + + -- Crate Smoke Settings + -- NOTE: Individual smoke effects last ~5 minutes (DCS hardcoded, cannot be changed) + -- These settings control whether/how often NEW smoke is spawned, not how long each smoke lasts + CrateSmoke = { + Enabled = true, -- spawn smoke when crates are created; if false, no smoke at all + AutoRefresh = false, -- automatically spawn new smoke every RefreshInterval seconds + RefreshInterval = 240, -- seconds: how often to spawn new smoke (only used if AutoRefresh = true) + MaxRefreshDuration = 600, -- seconds: stop auto-refresh after this long (safety limit) + OffsetMeters = 0, -- meters: horizontal offset from crate so helicopters don't hover in smoke + OffsetRandom = true, -- if true, randomize horizontal offset direction; if false, always offset north + OffsetVertical = 20, -- meters: vertical offset above ground level (helps smoke be more visible) + }, + + -- === Autonomous Assets === + -- Air-spawn settings for CTLD-built drones (AIRPLANE catalog entries like MQ-9 / WingLoong) + DroneAirSpawn = { + Enabled = true, -- when true, AIRPLANE catalog items that opt-in can spawn in the air at a set altitude + AltitudeMeters = 5000, -- default spawn altitude ASL (meters) + SpeedMps = 120 -- default initial speed in m/s + }, + + JTAC = { + Enabled = true, + Verbose = false, -- when true, emit detailed JTAC registration & target scan logs + AutoLase = { + Enabled = true, + SearchRadius = 8000, -- meters to scan for enemy targets + RefreshSeconds = 15, -- seconds between active target updates + IdleRescanSeconds = 30, -- seconds between scans when no target locked + LostRetrySeconds = 10, -- wait before trying to reacquire after transport/line-of-sight loss + TransportHoldSeconds = 10, -- defer lase loop while JTAC is in transport (group empty) + }, + Smoke = { + Enabled = true, + ColorBlue = trigger.smokeColor.Orange, + ColorRed = trigger.smokeColor.Green, + RefreshSeconds = 300, -- seconds between smoke refreshes on active targets + OffsetMeters = 5, -- random offset radius for smoke placement + }, + LaserCodes = { '1688','1677','1666','1113','1115','1111' }, + LockType = 'all', -- 'all' | 'vehicle' | 'troop' + Announcements = { + Enabled = true, + Duration = 15, + }, + + }, + + -- === Combat Automation === + AttackAI = { + Enabled = true, -- master switch for attack behavior + TroopSearchRadius = 6000, -- meters: when deploying troops with Attack, search radius for targets/bases + VehicleSearchRadius = 12000, -- meters: when building vehicles with Attack, search radius + PrioritizeEnemyBases = true, -- if true, prefer enemy-held bases over ground units when both are in range + TroopAdvanceSpeedKmh = 20, -- movement speed for troops when ordered to attack + VehicleAdvanceSpeedKmh = 35, -- movement speed for vehicles when ordered to attack + }, + + -- === Visual Aids === + -- Optional: draw zones on the F10 map using trigger.action.* markup (ME Draw-like) + MapDraw = { + Enabled = true, -- master switch for any map drawings created by this script + DrawPickupZones = true, -- draw Pickup/Supply zones as shaded circles with labels + DrawDropZones = true, -- optionally draw Drop zones + DrawFOBZones = true, -- optionally draw FOB zones + DrawMASHZones = true, -- optionally draw MASH (medical) zones + DrawSalvageZones = true, -- optionally draw Salvage Collection zones + FontSize = 18, -- label text size + ReadOnly = true, -- prevent clients from removing the shapes + ForAll = false, -- if true, draw shapes to all (-1) instead of coalition only (useful for testing/briefing) + OutlineColor = {1, 1, 0, 0.85}, -- RGBA 0..1 for outlines (bright yellow) + -- Optional per-kind fill overrides + FillColors = { + Pickup = {0, 1, 0, 0.15}, -- light green fill for Pickup zones + Drop = {0, 0, 0, 0.25}, -- black fill for Drop zones + FOB = {1, 1, 0, 0.15}, -- yellow fill for FOB zones + MASH = {1, 0.75, 0.8, 0.25}, -- pink fill for MASH zones + SalvageDrop = {1, 0, 1, 0.15}, -- magenta fill for Salvage zones + }, + LineType = 1, -- default line type if per-kind is not set (0 None, 1 Solid, 2 Dashed, 3 Dotted, 4 DotDash, 5 LongDash, 6 TwoDash) + LineTypes = { -- override border style per zone kind + Pickup = 3, -- dotted + Drop = 2, -- dashed + FOB = 4, -- dot-dash + MASH = 1, -- solid + SalvageDrop = 2, -- dashed + }, + -- Label placement tuning (simple): + -- Effective extra offset from the circle edge = r * LabelOffsetRatio + LabelOffsetFromEdge + LabelOffsetFromEdge = -50, -- meters beyond the zone radius to place the label (12 o'clock) + LabelOffsetRatio = 0.5, -- fraction of the radius to add to the offset (e.g., 0.1 => +10% of r) + LabelOffsetX = 200, -- meters: horizontal nudge; adjust if text appears left-anchored in your DCS build + -- Per-kind label prefixes + LabelPrefixes = { + Pickup = 'Supply', + Drop = 'Drop', + FOB = 'FOB', + MASH = 'MASH', + SalvageDrop = 'Salvage', + } + }, + + -- === Inventory & Troops === + -- Inventory system (per pickup zone and FOBs) + Inventory = { + Enabled = true, -- master switch for per-location stock control + FOBStockFactor = 0.50, -- starting stock at newly built FOBs relative to pickup-zone initialStock + ShowStockInMenu = true, -- append simple stock hints to menu labels (per current nearest zone) + HideZeroStockMenu = false, -- removed: previously created an "In Stock Here" submenu; now disabled by default + }, + + -- Troop type presets (menu-driven loadable teams) + Troops = { + DefaultType = 'AS', -- default troop type to use when no specific type is chosen + -- Team definitions: loaded from catalog via _CTLD_TROOP_TYPES global + -- If no catalog is loaded, empty table is used (and fallback logic applies) + TroopTypes = {}, + }, + + -- === Zone Tables === + -- Mission makers should populate these arrays with zone definitions + -- Each zone entry can be: { name = 'ZoneName' } or { name = 'ZoneName', flag = 9001, activeWhen = 0, smoke = color, radius = meters } + Zones = { + PickupZones = {}, -- Supply zones where crates/troops can be requested + DropZones = {}, -- Optional Drop/AO zones + FOBZones = {}, -- FOB zones (restrict FOB building to these if RestrictFOBToZones = true) + MASHZones = {}, -- Medical zones for MEDEVAC crew delivery (MASH = Mobile Army Surgical Hospital) + SalvageDropZones = {}, -- Salvage collection zones for sling-load salvage delivery + }, + + -- === Sling-Load Salvage System === + -- Spawn salvageable crates when enemy units are destroyed; deliver to collection zones for rewards + SlingLoadSalvage = { + Enabled = true, + + -- Spawn probability when enemy ground units die + SpawnChance = { + [coalition.side.BLUE] = 0.20, -- 20% chance when BLUE unit dies (RED can collect the salvage) + [coalition.side.RED] = 0.20, -- 20% chance when RED unit dies (BLUE can collect the salvage) + }, + + -- Weight classes with spawn probabilities and reward rates + WeightClasses = { + { name = 'Light', min = 500, max = 1000, probability = 0.50, rewardPer500kg = 2 }, -- Huey-capable + { name = 'Medium', min = 2501, max = 5000, probability = 0.30, rewardPer500kg = 3 }, -- Hip/Mi-8 + { name = 'Heavy', min = 5001, max = 8000, probability = 0.15, rewardPer500kg = 5 }, -- Large helos + { name = 'SuperHeavy', min = 8001, max = 12000, probability = 0.05, rewardPer500kg = 8 }, -- Chinook only + }, + + -- Condition-based reward multipliers (based on crate health when delivered) + ConditionMultipliers = { + Undamaged = 1.5, -- >= 90% health + Damaged = 1.0, -- 50-89% health + HeavyDamage = 0.5, -- < 50% health + }, + + CrateLifetime = 3600, -- 1 hour (seconds) + WarningTimes = { 1800, 300 }, -- Warn at 30min and 5min remaining + + -- Visual indicators + SpawnSmoke = false, + SmokeDuration = 120, -- 2 minutes + SmokeColor = trigger.smokeColor.Orange, + MaxActiveCrates = 40, -- hard cap on simultaneously spawned salvage crates per coalition + AdaptiveIntervals = { idle = 10, low = 20, medium = 25, high = 30 }, + + -- Spawn restrictions + MinSpawnDistance = 25, -- meters from death location + MaxSpawnDistance = 45, -- meters from death location + NoSpawnNearPickupZones = true, + NoSpawnNearPickupZoneDistance = 1000, -- meters + NoSpawnNearAirbasesKm = 1, + + DetectionInterval = 5, -- seconds between salvage zone checks + + -- Cargo static types (DCS sling-loadable cargo) + CargoTypes = { + 'container_cargo', + 'ammo_cargo', + 'fueltank_cargo', + 'barrels_cargo', + }, + + -- Salvage Collection Zone defaults + DefaultZoneRadius = 300, + DynamicZoneLifetime = 5400, -- seconds a player-created zone stays active (0 disables auto-expiry) + MaxDynamicZones = 6, -- cap player-created zones per coalition instance (oldest retire first) + ZoneColors = { + border = {1, 0.5, 0, 0.85}, -- orange border + fill = {1, 0.5, 0, 0.15}, -- light orange fill + }, + }, +} + -- #endregion Config + +-- Immersive Hover Coach configuration (messages, thresholds, throttling) +-- All user-facing text lives here; logic only fills placeholders. +CTLD.HoverCoachConfig = { + enabled = true, -- master switch for hover coaching feature + coachOnByDefault = true, -- per-player default; players can toggle via F10 > Navigation > Hover Coach + + -- Pickup parameters + maxCratesPerLoad = 6, -- maximum crates the aircraft can carry simultaneously + autoPickupDistance = 25, -- meters max search distance for candidate crates + + thresholds = { + arrivalDist = 1000, -- m: start guidance "You're close…" + closeDist = 100, -- m: reduce speed / set AGL guidance + precisionDist = 8, -- m: start precision hints + captureHoriz = 10, -- m: horizontal sweet spot radius + captureVert = 10, -- m: vertical sweet spot tolerance around AGL window + aglMin = 5, -- m: hover window min AGL + aglMax = 20, -- m: hover window max AGL + maxGS = 8/3.6, -- m/s: 8 km/h for precision, used for errors + captureGS = 4/3.6, -- m/s: 4 km/h capture requirement + maxVS = 2.0, -- m/s: absolute vertical speed during capture + driftResetDist = 13, -- m: if beyond, reset precision phase + stabilityHold = 2.0 -- s: hold steady before loading + }, + + throttle = { + coachUpdate = 3.0, -- s between hint updates in precision + generic = 3.0, -- s between non-coach messages + repeatSame = 6.0 -- s before repeating same message key + }, +} + +-- ========================= +-- Ground Auto-Load Configuration +-- ========================= +-- Automatic crate loading while landed (for pilots who prefer not to hover) +CTLD.GroundAutoLoadConfig = { + Enabled = true, -- master switch for ground auto-load feature + LoadDelay = 25, -- seconds to hold position on ground before auto-loading + GroundContactAGL = 3.5, -- meters AGL considered "on the ground" (matches MEDEVAC) + MaxGroundSpeed = 2.0, -- m/s maximum ground speed during loading (~4 knots) + SearchRadius = 35, -- meters to search for nearby crates + AbortGrace = 2, -- seconds of movement/liftoff tolerated before aborting + RequirePickupZone = true, -- MUST be inside a pickup zone to auto-load (prevents drop/re-pickup loops) + AllowInFOBZones = true, -- also allow auto-load in FOB zones (once built) +} + +CTLD.GroundLoadComms = { + ProgressInterval = 5, + Start = { + "Loadmaster: Copy {count} crate(s). Give us {seconds}s to round up the rollers.", + "Ramp boss says {seconds}s and L. Jenkins will have those {count} crate(s) chained down.", + "Crew chief: {count} crate(s) inboundβ€”stay planted for {seconds}s.", + "Forklift mafia deputized Leroy to kidnap {count} crate(s) in {seconds}s.", + "Ground crew brewing a plan: {count} crate(s) in {seconds}s.", + "Cargo gnomes awakeβ€”{seconds}s to wrangle {count} crate(s).", + "Engineers counting {count} crate(s); set a timer for {seconds}s.", + "Deck boss: {seconds}s of zen before {count} crate(s) clack aboard.", + "Log cell crunches numbers: {count} crate(s) move in {seconds}s.", + "Supply sergeant wants {seconds}s to line up {count} crate(s).", + "Palettes stagedβ€”{count} crate(s) climbing aboard after {seconds}s.", + "Ramp trolls wave: {seconds}s pause, {count} crate(s) prize.", + "Hook teams preppingβ€”{count} crate(s) latched in {seconds}s.", + "Handler: keep rotors calm for {seconds}s; {count} crate(s) en route.", + "Deck boss hums while Jenkins L salts {count} crate(s) in {seconds}s.", + "Logistics whisperer: {seconds}s to sweet-talk {count} crate(s).", + "Crate wrangler: {count} boxen saddled after {seconds}s.", + "Crew phones mom: {count} crate(s) adopt you in {seconds}s.", + "Load team stretchingβ€”{seconds}s till {count} crate(s) leap aboard.", + "Forklift rave: {count} crate(s) crowd-surfing in {seconds}s.", + "Ammo guys promise {seconds}s to leash {count} crate(s).", + "Supply goblins: {count} crate(s) conjured after {seconds}s.", + "Winch crew rolling cablesβ€”{seconds}s countdown for {count} crate(s).", + "Deck judge bangs gavel: {count} crate(s) filed in {seconds}s.", + "Ramp DJ cues trackβ€”{seconds}s jam for {count} crate(s).", + "Hangar rats: {count} crate(s) tango aboard in {seconds}s.", + "Pit crew swapped tires; {seconds}s to fuel {count} crate(s).", + "Clipboard ninja checking boxesβ€”{count} crate(s) ready in {seconds}s.", + "Dock boss sharpening pencils: {count} crate(s) manifest in {seconds}s.", + "Groundlings choreograph {count} crate(s) balletβ€”{seconds}s rehearsal.", + "Supply monks meditate {seconds}s to summon {count} crate(s).", + "Winch whisperer: {count} crate(s) ascend in {seconds}s.", + "Ramp champion bets {seconds}s for {count} crate(s).", + "Crew lounge evacuated; {count} crate(s) arriving in {seconds}s.", + "Load shack scoreboard: {seconds}s to snag {count} crate(s).", + "Logi wizard scribbles runesβ€”{count} crate(s) appear after {seconds}s.", + "Deck sergeant orders {seconds}s freeze; {count} crate(s) inbound.", + "Cargo penguins waddlingβ€”{seconds}s to herd {count} crate(s).", + "Hangar bard plays; {count} crate(s) drop beat in {seconds}s.", + "Ramp dragon yawns: {seconds}s before {count} crate(s) charred.", + "Supply pirates shoutβ€”{count} crate(s) plundered in {seconds}s.", + "Ground crew printing receiptsβ€”{seconds}s to notarize {count} crate(s).", + "Forklift derby lights up; {count} crate(s) cross line in {seconds}s.", + "Load ninja breathesβ€”{seconds}s later {count} crate(s) vanish aboard.", + "Deck boss bribes gravity; {count} crate(s) float up in {seconds}s.", + "Ammo elves: {seconds}s swirl to gift-wrap {count} crate(s).", + "Ramp philosopher ponders {count} crate(s) for {seconds}s.", + "Crew chef prepping snacks; {count} crate(s) served in {seconds}s.", + "Crate wrangler ties bootsβ€”{seconds}s to rope {count} crate(s).", + "Paladin of pallets: {count} crate(s) blessed in {seconds}s.", + "Load doc scribblesβ€”{seconds}s to sign {count} crate(s).", + "Ground squirrels stash {count} crate(s) after {seconds}s.", + "Deck poet recites; {count} crate(s) respond in {seconds}s.", + "Winch gremlin oils gearsβ€”{seconds}s for {count} crate(s).", + "Ramp hype crew chants {seconds}s mantra for {count} crate(s).", + "Supply DJ scratchingβ€”{count} crate(s) drop bass in {seconds}s.", + "Cargo therapist assures {count} crate(s) in {seconds}s.", + "Crew zookeeper wrangles {count} crate(s) herdβ€”{seconds}s.", + "Deck botanist grows {count} crate(s) vines in {seconds}s.", + "Load astronomer charts {count} crate(s) orbitβ€”{seconds}s.", + "Ramp comedian promises laughs for {seconds}s then {count} crate(s).", + "Hangar historian says {count} crate(s) arrive in {seconds}s per tradition.", + "Supply drummer counts in {seconds}s for {count} crate(s).", + "Deck meteorologist predicts {count} crate(s) storm in {seconds}s.", + "Cargo architect sketches {count} crate(s) stacking planβ€”{seconds}s.", + "Ramp coder debugs manifest; {count} crate(s) compile in {seconds}s.", + "Load barista pulls espressoβ€”{count} crate(s) perk up in {seconds}s.", + "Ground bard writes sea shanty; {count} crate(s) join in {seconds}s.", + "Supply prankster hides {count} crate(s); reveal in {seconds}s.", + "Ramp alchemist mixes fuelβ€”{count} crate(s) transmute after {seconds}s.", + "Crate whisperer says hold {seconds}s for {count} crate(s).", + "Deck detective tracks {count} crate(s) trailβ€”{seconds}s ETA.", + "Load beekeeper herds {count} crate(s) swarmβ€”{seconds}s.", + "Ground tailor stitches nets; {count} crate(s) fitted in {seconds}s.", + "Supply DJ rewindsβ€”{seconds}s then {count} crate(s) drop.", + "Ramp cloud-gazer sees {count} crate(s) in {seconds}s forecast.", + "Load punster drafts {count} crate(s) jokesβ€”{seconds}s needed.", + "Deck volcanologist warns {count} crate(s) eruption in {seconds}s.", + "Cargo puppeteer choreographs {count} crate(s); show in {seconds}s.", + "Ground cartographer maps {count} crate(s) journeyβ€”{seconds}s.", + "Ramp mathematician solves {count} crate(s) problemβ€”{seconds}s.", + "Load meteor chaser counts {seconds}s till {count} crate(s) strike.", + "Supply astronomer spots {count} crate(s) constellationβ€”{seconds}s.", + "Deck lifeguard whistles; {count} crate(s) swim aboard in {seconds}s.", + "Cargo sommelier decants {count} crate(s)β€”need {seconds}s to breathe.", + "Ramp locksmith picks {count} crate(s) locksβ€”{seconds}s.", + "Load carpenter measures twice; {count} crate(s) cut loose in {seconds}s.", + "Ground geologist drills planβ€”{count} crate(s) surface in {seconds}s.", + "Supply fireman slides pole; {count} crate(s) rescued in {seconds}s.", + "Ramp hacker breaches {count} crate(s) firewallβ€”{seconds}s.", + "Load illusionist shuffles {count} crate(s)β€”{seconds}s reveal.", + "Deck astronomer winks: {count} crate(s) align in {seconds}s.", + "Cargo mixologist shakes {count} crate(s); {seconds}s pour time.", + "Ramp weatherman says {count} crate(s) drizzle in {seconds}s.", + "Load surveyor levels deckβ€”{count} crate(s) land in {seconds}s.", + "Ground sculptor chisels path; {count} crate(s) glide in {seconds}s.", + "Supply DJ double-drops; {count} crate(s) drop after {seconds}s.", + "Deck clockmaker rewinds {seconds}s, {count} crate(s) tick in.", + "Cargo cart racer drifts up with {count} crate(s) in {seconds}s.", + "Ramp ringmaster cues circus; {count} crate(s) center ring in {seconds}s.", + }, + Progress = { + "Crew chief: {remaining}s on the clockβ€”don't wiggle.", + "Ramp boss tapping boot while Jenkins L calls {remaining}s remaining.", + "Leroy J. humming; {remaining}s until hooks click.", + "Forklift tires chirpβ€”{remaining}s before stack settles.", + "Cargo chains rattling, {remaining}s left.", + "Handler flashes thumbs-up once Leroy yells go in {remaining}s.", + "Deck boss juggling paperworkβ€”{remaining}s.", + "Ground crew sipping caf, {remaining}s reminder.", + "Winch motors whining: {remaining}s.", + "Clipboard ninja says {remaining}s until signatures.", + "Ramp trolls mid chantβ€”{remaining}s.", + "Load doc verifying strapsβ€”{remaining}s.", + "Forklift derby lap {remaining}s.", + "Ammo goblins grumble {remaining}s.", + "Supply bard hits chorus in {remaining}s.", + "Deck meteorologist reads {remaining}s forecast.", + "Cargo AI recalculatingβ€”{remaining}s.", + "Ground gremlin twisting wrenches for {remaining}s.", + "Ramp conductor waves batonβ€”{remaining}s of tempo.", + "Load punster drafting joke; {remaining}s left.", + "Deck alchemist stirring {remaining}s.", + "Crate wrangler double-knotsβ€”{remaining}s.", + "Forklift jazz solo ends in {remaining}s.", + "Supply DJ building dropβ€”{remaining}s.", + "Ramp philosopher meditates {remaining}s.", + "Load botanist waters netsβ€”{remaining}s.", + "Deck coder compiling manifestβ€”{remaining}s.", + "Ground astronomer counts {remaining}s shooting stars.", + "Cargo weathervane spins {remaining}s.", + "Loader handshake pending {remaining}s.", + "Ramp poet editing stanzaβ€”{remaining}s.", + "Load bartender shakes drinkβ€”{remaining}s of chill.", + "Deck zookeeper calms cratesβ€”{remaining}s.", + "Ground sculptor chisels wedgeβ€”{remaining}s.", + "Supply tailor hemming slingsβ€”{remaining}s.", + "Ramp locksmith turning tumblersβ€”{remaining}s.", + "Load whisperer soothing pallets for {remaining}s.", + "Deck drummer counting down {remaining}s.", + "Cargo painter adds racing stripesβ€”{remaining}s.", + "Ground beekeeper herding boxesβ€”{remaining}s.", + "Ramp ninja mid flipβ€”{remaining}s.", + "Load DJ scratching vinyl for {remaining}s.", + "Deck geologist sampling dustβ€”{remaining}s.", + "Cargo puppeteer angles stringsβ€”{remaining}s.", + "Ground interpreter translating crate beepsβ€”{remaining}s.", + "Ramp comedian holding punchline {remaining}s.", + "Load surfer riding forklift forksβ€”{remaining}s.", + "Deck data nerd buffering {remaining}s.", + "Cargo snowplow clearing pebblesβ€”{remaining}s.", + "Ground pyrotechnician keeps sparks at bay {remaining}s.", + "Ramp snorkeler holding breath {remaining}s.", + "Load astronomer calibrates scopeβ€”{remaining}s.", + "Deck spelunker exploring skid rowβ€”{remaining}s.", + "Cargo beekeeper suits upβ€”{remaining}s.", + "Ground carpenter setting chalk linesβ€”{remaining}s.", + "Ramp wizard muttering {remaining}s spell.", + "Load falconer whistlesβ€”{remaining}s before talons release.", + "Deck tuba blares sustain for {remaining}s.", + "Cargo juggler keeps crates aloft {remaining}s.", + "Ground chemist titrates patienceβ€”{remaining}s.", + "Ramp puppeteer cues stringsβ€”{remaining}s.", + "Load archaeologist brushes dustβ€”{remaining}s.", + "Deck racer redlines stopwatch {remaining}s.", + "Cargo coder spams F5 for {remaining}s.", + "Ground gardener trims net cornersβ€”{remaining}s.", + "Ramp DJ layering loopsβ€”{remaining}s.", + "Load glaciologist monitors ice meltβ€”{remaining}s.", + "Deck prankster hides cones for {remaining}s.", + "Cargo scribe inks manifestβ€”{remaining}s.", + "Ground wanderer paces {remaining}s.", + "Ramp baker timing souffleβ€”{remaining}s.", + "Load therapist tells crates to breathe {remaining}s.", + "Deck hype squad chanting {remaining}s.", + "Cargo spelunker checks tie-down cavernsβ€”{remaining}s.", + "Ground sherpa hauls strapsβ€”{remaining}s.", + "Ramp rebel flicks toothpick {remaining}s.", + "Load fortune teller sees {remaining}s in cards.", + "Deck quatermaster double-counts {remaining}s.", + "Cargo dinosaur roaring softly {remaining}s.", + "Ground mech tunes hydraulicsβ€”{remaining}s.", + "Ramp botanist sniffs fuelβ€”{remaining}s.", + "Load journalist scribbles {remaining}s update.", + "Deck gamer farming XP for {remaining}s.", + "Cargo archivist files formsβ€”{remaining}s.", + "Ground referee watches chalk lineβ€”{remaining}s.", + "Ramp kite flyer reels stringβ€”{remaining}s.", + "Load detective dusts printsβ€”{remaining}s.", + "Deck prank caller rings tower for {remaining}s.", + "Cargo shoemaker taps solesβ€”{remaining}s.", + "Ground chandler pours waxβ€”{remaining}s.", + "Ramp falcon loops {remaining}s.", + "Load diver equalizes ears {remaining}s.", + "Deck astronomer rechecks alignmentβ€”{remaining}s.", + "Cargo DJ rewinds sample {remaining}s.", + "Ground quartermaster ties ledgerβ€”{remaining}s.", + "Ramp magpie collecting shiny boltsβ€”{remaining}s.", + "Load muralist adds stencilβ€”{remaining}s.", + "Deck tech updates firmwareβ€”{remaining}s.", + "Cargo babysitter hushes pallets {remaining}s.", + "Ground marshal gives steady-hand signal for {remaining}s.", + "Hey! Watch what you're doing with those crates! {remaining}s left.", + "Hey! You can't put that there! Over there instead! {remaining}s left.", + "Hey! Is your name Leroy! Because you better be getting those crates loaded! {remaining}s left.", + "Jenkins!!! Get those crates loaded! {remaining}s left.", + "Leroy!!! Stop daydreaming and get those crates loaded! {remaining}s left.", + "Come on Leroy, those crates won't load themselves! {remaining}s left.", + "Hurry up Jenkins, we got a bird waiting! {remaining}s left.", + "Get a move on Leroy, those crates ain't gonna load themselves! {remaining}s left.", + "You call that loading Jenkins? {remaining}s left.", + "Pick up the pace Leroy! {remaining}s left.", + "Faster Jenkins! {remaining}s left.", + "Let's hustle Leroy! {remaining}s left.", + "Time's a-tickin' Jenkins! {remaining}s left.", + "Chop-chop Leroy! {remaining}s left.", + "Jenkins! Stop playing with the cargo! Those dildo's belong to Mo! {remaining}s left.", + "Leroy here sir! We got that cargo right where you wanted it! {remaining}s left.", + "Jenkins! Get back to work! Mo's complaining! {remaining}s left.", + }, + Complete = { + "Crew chief: {count} crate(s) strapped and smilingβ€”clear to lift.", + "Ramp boss reports {count} crate(s) locked tight by Jenkins L.", + "Loadmaster: {count} crate(s) tucked in like kittens.", + "Forklift mafia salutesβ€”{count} crate(s) delivered.", + "Deck boss stamped {count} crate(s) good to go.", + "Cargo goblins vanishedβ€”Leroy swears he secured {count} crate(s).", + "Winch team claims victoryβ€”{count} crate(s) aboard.", + "Clipboard ninja checked {count} boxes.", + "Ramp trolls cheer: {count} crate(s) riding shotgun.", + "Handler: {count} crate(s) bolted; throttle up.", + "Deck poet pens ode to {count} crate(s) now yours.", + "Supply gnomes wave bye to {count} crate(s).", + "Ground crew says {count} crate(s) ready for adventure.", + "Ramp DJ drops beatβ€”{count} crate(s) locked in rhythm.", + "Load doc signs release: {count} crate(s).", + "Deck alchemist transmuted paperworkβ€”{count} crate(s).", + "Cargo therapist declares {count} crate(s) emotionally stable.", + "Forklift derby trophy goes to {count} crate(s) now aboard.", + "Ramp philosopher satisfiedβ€”{count} crate(s) exist on deck.", + "Load botanist pruned netsβ€”{count} crate(s) bloom there.", + "Deck coder returned true: {count} crate(s).", + "Ground bard ends tune with {count} crate(s) crescendo.", + "Ramp prankster can't hide {count} crate(s)β€”they're on board.", + "Cargo beekeeper counts {count} crate(s) in hive.", + "Deck meteorologist confirms {count} crate(s) high pressure.", + "Load painter signs mural of {count} crate(s) strapped.", + "Ground tailor hemmed slingsβ€”{count} crate(s) fitted.", + "Ramp locksmith snapped padlocks on {count} crate(s).", + "Cargo DJ fades trackβ€”{count} crate(s) secure.", + "Deck archaeologist labels {count} crate(s) artifact.", + "Load comedian retires bit; {count} crate(s) landing.", + "Ground sculptor polishes {count} crate(s) corners.", + "Ramp astronomer charts {count} crate(s) orbit now stable.", + "Cargo puppeteer bowsβ€”{count} crate(s) performance done.", + "Deck detective solved case of {count} crate(s).", + "Load shark fins down: {count} crate(s) fed to cargo bay.", + "Ground sherpa drops packβ€”{count} crate(s) summit achieved.", + "Ramp hacker logs offβ€”{count} crate(s) uploaded.", + "Cargo barista served {count} crate(s) double-shot of tie downs.", + "Deck referee whistles endβ€”{count} crate(s) win.", + "Load fencer sheathes swordβ€”{count} crate(s) defended.", + "Ground medic clears {count} crate(s) to travel.", + "Ramp monk bows: {count} crate(s) enlightened.", + "Cargo kite now tetheredβ€”{count} crate(s).", + "Deck astronomer applauds {count} crate(s) alignment.", + "Load geologist marks {count} crate(s) strata complete.", + "Ground gardener plants {count} crate(s) firmly.", + "Ramp puppet master cuts stringsβ€”{count} crate(s) stay.", + "Cargo DJ signs offβ€”{count} crate(s) final mix.", + "Deck beekeeper seals hive with {count} crate(s).", + "Load mathematician tallies {count} crate(s) exact.", + "Ground fireworks canceledβ€”{count} crate(s) safe.", + "Ramp storm chaser says {count} crate(s) in the eye.", + "Cargo sculptor chisels notchβ€”{count} crate(s) nested.", + "Deck tailor stitches last knot on {count} crate(s).", + "Load wizard snaps fingersβ€”{count} crate(s) appear strapped.", + "Ground referee raises flag: {count} crate(s) legal.", + "Ramp brewer clinks mugsβ€”{count} crate(s) on tap.", + "Cargo philosopher logs {count} crate(s) as truth.", + "Deck DJ loops outroβ€”{count} crate(s) seated.", + "Load detective closes fileβ€”{count} crate(s) accounted.", + "Ground lifeguard thumbs upβ€”{count} crate(s) afloat.", + "Ramp spelunker resurfaces with {count} crate(s).", + "Cargo dancer nails finaleβ€”{count} crate(s).", + "Deck poet rhymes {count} crate(s) with fate.", + "Load dragon goes back to sleepβ€”{count} crate(s) fed.", + "Ground chemist labels vialsβ€”{count} crate(s) stable.", + "Ramp tailor satisfied stitchwork on {count} crate(s).", + "Cargo quarterback yells touchdownβ€”{count} crate(s).", + "Deck glaciologist notes {count} crate(s) frozen in place.", + "Load eagle roostsβ€”{count} crate(s) in nest.", + "Ground DJ cues victory stingβ€”{count} crate(s) done.", + "Ramp botanist logs {count} crate(s) in flora guide.", + "Cargo surfer throws shakaβ€”{count} crate(s) ride smooth.", + "Deck juggler bowsβ€”{count} crate(s) landed.", + "Load translator confirms {count} crate(s) say thanks.", + "Ground weatherman clears skiesβ€”{count} crate(s) shining.", + "Ramp trickster hides clipboard: {count} crate(s) can't hide.", + "Cargo archivist files {count} crate(s) under awesome.", + "Deck beekeeper high-fives {count} crate(s) bees.", + "Load marathoner crosses finish with {count} crate(s).", + "Ground astronomer stamps {count} crate(s) star chart.", + "Ramp baker presents {count} crate(s) pie fresh.", + "Cargo diver surfaces cheering {count} crate(s).", + "Deck data nerd graphs {count} crate(s) success.", + "Load hypnotist snaps fingersβ€”{count} crate(s) obey.", + "Ground marshal rolls wandβ€”{count} crate(s) staged.", + "Ramp timekeeper stops watch at {count} crate(s).", + "Cargo composer final chordβ€”{count} crate(s).", + "Deck quartermaster locks ledger: {count} crate(s).", + "Load astronaut gives thumbs up from cargo bayβ€”{count} crate(s).", + "Ground ninja vanishes leaving {count} crate(s).", + "Ramp botanist labels {count} crate(s) species secure.", + "Cargo conductor yells all aboardβ€”{count} crate(s).", + "Deck muralist signs name under {count} crate(s).", + "Load shepherd counts {count} crate(s) asleep.", + "Ground pirate buries hatchetβ€”{count} crate(s) share plunder.", + "Ramp gamer hits saveβ€”{count} crate(s) progress locked.", + "Cargo weaver ties final knot on {count} crate(s).", + "Deck captain stamps logβ€”{count} crate(s) embarked.", + } +} + +-- ========================= +-- MEDEVAC Configuration +-- ========================= +-- #region MEDEVAC Config +CTLD.MEDEVAC = { + Enabled = true, + + -- Crew spawning + -- Per-coalition spawn probabilities for asymmetric scenarios + CrewSurvivalChance = { + [coalition.side.BLUE] = .30, -- probability (0.0-1.0) that BLUE crew survives to spawn MEDEVAC request. 1.0 = 100% (testing), 0.02 = 2% (production) + [coalition.side.RED] = .30, -- probability (0.0-1.0) that RED crew survives to spawn MEDEVAC request + }, + ManPadSpawnChance = { + [coalition.side.BLUE] = 0.1, -- probability (0.0-1.0) that BLUE crew spawns with a MANPADS soldier. 1.0 = 100% (testing), 0.1 = 10% (production) + [coalition.side.RED] = 0.1, -- probability (0.0-1.0) that RED crew spawns with a MANPADS soldier + }, + CrewSpawnDelay = 300, -- seconds after death before crew spawns (gives battle time to clear). 300 = 5 minutes + CrewAnnouncementDelay = 60, -- seconds after spawn before announcing mission to players (verify crew survival). 60 = 1 minute + CrewTimeout = 3600, -- 1 hour max wait before crew is KIA (after spawning) + CrewSpawnOffset = 25, -- meters from death location (toward nearest enemy) + CrewDefaultSize = 2, -- default crew size if not specified in catalog + CrewDefendSelf = true, -- crews will return fire if engaged + + -- Crew protection during announcement delay + CrewImmortalDuringDelay = true, -- make crew immortal (invulnerable) during announcement delay to prevent early death + CrewInvisibleDuringDelay = true, -- make crew invisible to AI during announcement delay (won't be targeted by enemy) + CrewImmortalAfterAnnounce = false, -- if true, crew stays immortal even after announcing mission (easier gameplay) + + -- Smoke signals + PopSmokeOnSpawn = true, -- crew pops smoke when they first spawn + PopSmokeOnApproach = true, -- crew pops smoke when rescue helo approaches + PopSmokeOnApproachDistance = 8000, -- meters - distance at which crew detects approaching helo + SmokeCooldown = 900, -- seconds between smoke pops (default 900 = 15 minutes) - prevents spam when helo circles + SmokeColor = { -- smoke colors per coalition + [coalition.side.BLUE] = trigger.smokeColor.Blue, + [coalition.side.RED] = trigger.smokeColor.Red, + }, + SmokeOffsetMeters = 0, -- horizontal offset from crew position (meters) so helicopters don't hover in smoke + SmokeOffsetRandom = true, -- randomize horizontal offset direction (true) or always offset north (false) + SmokeOffsetVertical = 20, -- vertical offset above ground level (meters) for better visibility + + -- Greeting messages when crew detects rescue helo + GreetingMessages = { + "Stranded Crew: We see you, boy that thing is loud! Follow the smoke!", + "Stranded Crew: We hear you coming.. yep, we see you.. bring it on down to the smoke!", + "Stranded Crew: Whew! We sure are glad you're here! Over here by the smoke!", + "Stranded Crew: About damn time! We're over here at the smoke!", + "Stranded Crew: Thank God! We thought you forgot about us! Follow the smoke!", + "Stranded Crew: Hey! We're the good looking ones by the smoke!", + "Stranded Crew: Copy that, we have visual! Popping smoke now!", + "Stranded Crew: Roger, we hear your rotors! Follow the smoke and come get us!", + "Stranded Crew: Finally! My feet are killing me out here! We're at the smoke!", + "Stranded Crew: That's the prettiest sound we've heard all day! Head for the smoke!", + "Stranded Crew: Is that you or are the enemy reinforcements? Just kidding, get down here at the smoke!", + "Stranded Crew: We've been working on our tans, come check it out! Smoke's popped!", + "Stranded Crew: Hope you brought snacks, we're starving! Follow the smoke in!", + "Stranded Crew: Your Uber has arrived? No, YOU'RE our Uber! We're at the smoke!", + "Stranded Crew: Could you be any louder? The whole country knows we're here now! At least follow the smoke!", + "Stranded Crew: Next time, could you not take so long? My coffee got cold! Smoke's up!", + "Stranded Crew: We see you! Don't worry, we only look this bad! Head for the smoke!", + "Stranded Crew: Inbound helo spotted! Someone owes me 20 bucks! Smoke is marking our position!", + "Stranded Crew: Hey taxi! We're at the corner of Blown Up Avenue and Oh Crap Street! Follow the smoke!", + "Stranded Crew: You're a sight for sore eyes! Literally, there's so much dust out here! Smoke's popped!", + "Stranded Crew: Visual contact confirmed! Get your ass down here to the smoke!", + "Stranded Crew: Oh thank hell, a bird! We're ready to get the fuck outta here! Smoke's marking us!", + "Stranded Crew: We hear you! Follow the smoke and the smell of desperation!", + "Stranded Crew: Rotors confirmed! Popping smoke now! Don't leave us hanging!", + "Stranded Crew: That you up there? About time! We've been freezing out here! Look for the smoke!", + "Stranded Crew: Helo inbound! We've got the salvage and the trauma, come get both! Smoke's up!", + "Stranded Crew: Eyes on rescue bird! Someone tell me this isn't a mirage! Follow the smoke!", + "Stranded Crew: We hear those beautiful rotors! Land this thing before we cry! Smoke marks the spot!", + "Stranded Crew: Confirmed visual! If you leave without us, we're keeping the salvage! Smoke's popped!", + "Stranded Crew: Choppers overhead! Finally! We were about to start walking! Head for the smoke!", + "Stranded Crew: That's our ride! Everyone look alive and try not to smell too bad! We're at the smoke!", + "Stranded Crew: Helo spotted! Quick, somebody look professional! Smoke's marking our position!", + "Stranded Crew: You're here! We'd hug you but we're covered in dirt and shame! Follow the smoke!", + "Stranded Crew: Bird inbound! Popping smoke! Someone owes us overtime for this shit!", + "Stranded Crew: Visual on rescue! Get down here before the enemy spots you too! Smoke's up!", + "Stranded Crew: We see you! Follow the smoke and broken dreams!", + "Stranded Crew: Incoming helo! Thank fuck! We're ready to leave this lovely hellscape! Smoke marks us!", + "Stranded Crew: Eyes on bird! We've got salvage, stories, and a desperate need for AC! Look for the smoke!", + "Stranded Crew: That you? Get down here! We've been standing here like idiots for hours! Smoke's popped!", + "Stranded Crew: Helo visual! Popping smoke! Anyone got room for some very tired, very angry crew?", + "Stranded Crew: We see you up there! Don't you dare fly past us! Follow the smoke!", + "Stranded Crew: Rescue inbound! Finally! We were starting to plan a walk home! Smoke's marking us!", + "Stranded Crew: Contact! We have eyes on you! Come get us before we change our minds about this whole military thing! Smoke's up!", + "Stranded Crew: Helo confirmed! Smoke's up! Let's get this reunion started!", + "Stranded Crew: You beautiful bastard! We see you! Get down here to the smoke!", + "Stranded Crew: Visual on rescue! We're ready! Let's get out before our luck runs out! Follow the smoke!", + "Stranded Crew: Bird spotted! Smoke deployed! Hurry before we attract more attention!", + "Stranded Crew: There you are! What took so long? Never mind, just land at the smoke!", + "Stranded Crew: We see you! Follow the smoke and the sound of relieved cursing!", + "Stranded Crew: Helo inbound! Everyone grab your shit! We're leaving this place! Smoke marks the LZ!", + "Stranded Crew: Is that our ride or just someone sightseeing? Either way, smoke's up!", + "Stranded Crew: We've got eyes on you! Come to the smoke before we lose our minds!", + "Stranded Crew: Tally ho! That's military speak for 'follow the damn smoke'!", + "Stranded Crew: You're late! But we'll forgive you if you land at the smoke!", + "Stranded Crew: Helo overhead! Popping smoke! This better not be a drill!", + "Stranded Crew: Contact confirmed! Smoke's marking us! Don't make us wait!", + "Stranded Crew: We hear rotors! Please be friendly! Smoke's up either way!", + "Stranded Crew: Bird inbound! Smoke deployed! Let's make this quick!", + "Stranded Crew: Visual on helo! Follow the smoke to the worst day of our lives!", + "Stranded Crew: You found us! Smoke's marking the spot! Gold star for you!", + "Stranded Crew: Rescue bird spotted! Smoke's up! We're the desperate ones!", + "Stranded Crew: We see you! Land at the smoke before we start charging rent!", + "Stranded Crew: Helo visual! Smoke deployed! This isn't a vacation spot!", + "Stranded Crew: That's you! Finally! Follow the smoke to glory!", + "Stranded Crew: Eyes on rescue! Smoke marks our misery! Come fix it!", + "Stranded Crew: We hear you! Smoke's popped! Let's end this nightmare!", + "Stranded Crew: Contact! Visual! Smoke! All the good stuff! Get down here!", + "Stranded Crew: Rescue inbound! Smoke's up! We've rehearsed this moment!", + "Stranded Crew: You're here! Smoke's marking us! Don't screw this up!", + "Stranded Crew: Helo confirmed! Follow the smoke to the saddest party ever!", + "Stranded Crew: We see you! Smoke's deployed! Land before we cry!", + "Stranded Crew: Bird spotted! Smoke marks us! We're the ones waving frantically!", + "Stranded Crew: Visual contact! Smoke's up! This is not a joke!", + "Stranded Crew: You made it! Follow the smoke! We've got beer money! (Lies, but follow the smoke anyway!)", + "Stranded Crew: Helo inbound! Smoke deployed! Pick us up before our wives find out!", + "Stranded Crew: We hear you! Smoke's marking our stupidity! Come save us from ourselves!", + "Stranded Crew: Contact! Smoke's up! We promise we're worth the fuel!", + "Stranded Crew: Rescue bird! Smoke marks the spot! This is awkward for everyone!", + "Stranded Crew: You're here! Smoke deployed! We'll explain everything later!", + "Stranded Crew: Visual on helo! Follow the smoke to disappointment and gratitude!", + "Stranded Crew: We see you! Smoke's up! Let's never speak of this again!", + "Stranded Crew: Helo spotted! Smoke marks us! We're the embarrassed ones!", + "Stranded Crew: Contact confirmed! Smoke deployed! This wasn't in the manual!", + "Stranded Crew: You found us! Smoke's up! Someone's getting a promotion!", + "Stranded Crew: Bird inbound! Follow the smoke to heroes and idiots!", + "Stranded Crew: We hear you! Smoke's marking us! Please don't tell command!", + "Stranded Crew: Visual! Smoke deployed! We'll buy you drinks forever!", + "Stranded Crew: Helo confirmed! Smoke's up! Best day of our lives right here!", + "Stranded Crew: You're here! Follow the smoke! We're never leaving base again!", + "Stranded Crew: Contact! Smoke marks us! This is our rock bottom!", + "Stranded Crew: Rescue inbound! Smoke deployed! We're upgrading your Yelp review!", + "Stranded Crew: We see you! Smoke's up! Land before the enemy does!", + "Stranded Crew: Bird spotted! Follow the smoke! We've learned our lesson!", + "Stranded Crew: Visual on helo! Smoke's marking us! This is so embarrassing!", + "Stranded Crew: You made it! Smoke deployed! We owe you everything!", + "Stranded Crew: Helo inbound! Smoke marks the spot! Let's go home!", + "Stranded Crew: We hear you! Follow the smoke! We're the lucky ones!", + "Stranded Crew: Contact confirmed! Smoke's up! Thank you, thank you, thank you!", + "Stranded Crew: Rescue bird! Smoke deployed! You're our favorite person ever!", + }, + + -- Request airlift messages (initial mission announcement) + RequestAirLiftMessages = { + "Stranded Crew: This is {vehicle} crew at {grid}. Need pickup ASAP! We have {salvage} salvage to collect.", + "Stranded Crew: Yo, this is {vehicle} survivors at {grid}. Come get us before the bad guys do! {salvage} salvage available.", + "Stranded Crew: {vehicle} crew reporting from {grid}. We're alive but our ride isn't. {salvage} salvage ready for extraction.", + "Stranded Crew: Mayday! {vehicle} crew at {grid}. Send taxi, will pay in salvage! ({salvage} units available)", + "Stranded Crew: This is what's left of {vehicle} crew at {grid}. Pick us up and grab the {salvage} salvage while you're at it!", + "Stranded Crew: {vehicle} survivors here at {grid}. We've got {salvage} salvage and a bad attitude. Come get us!", + "Stranded Crew: Former {vehicle} operators at {grid}. Vehicle's toast but we salvaged {salvage} units. Need immediate evac!", + "Stranded Crew: {vehicle} crew broadcasting from {grid}. Situation: homeless. Salvage: {salvage} units. Mood: not great.", + "Stranded Crew: This is {vehicle} at {grid}. Well, WAS {vehicle}. Now it's scrap. Got {salvage} salvage though!", + "Stranded Crew: Hey! {vehicle} crew at {grid}! Our insurance definitely doesn't cover this. {salvage} salvage available.", + "Stranded Crew: {vehicle} survivors reporting. Grid {grid}. Status: walking. Salvage: {salvage}. Pride: wounded.", + "Stranded Crew: To whom it may concern: {vehicle} crew at {grid} requests immediate pickup. {salvage} salvage awaiting recovery.", + "Stranded Crew: {vehicle} down at {grid}. Crew status: annoyed but alive. Salvage count: {salvage}. Hurry up!", + "Stranded Crew: This is a priority call from {vehicle} crew at {grid}. We got {salvage} salvage and zero patience left!", + "Stranded Crew: {vehicle} operators at {grid}. The vehicle gave up, we didn't. {salvage} salvage ready to go!", + "Stranded Crew: Urgent! {vehicle} crew stranded at {grid}. Got {salvage} salvage and a serious need for extraction!", + "Stranded Crew: {vehicle} here, well, parts of it anyway. Crew at {grid}. Salvage: {salvage}. Morale: questionable.", + "Stranded Crew: {vehicle} down at {grid}. We're fine, vehicle's dead. {salvage} salvage secured. Come get us before we walk home!", + "Stranded Crew: Calling all angels! {vehicle} crew at {grid} needs a lift. Bringing {salvage} salvage as payment!", + "Stranded Crew: {vehicle} crew broadcasting from scenic {grid}. Collected {salvage} salvage. Would not recommend this location!", + "Stranded Crew: This is {vehicle} at {grid}. Vehicle status: spectacular fireball (was). Crew status: could use a ride. Salvage: {salvage}.", + "Stranded Crew: {vehicle} survivors at {grid}. We've got {salvage} salvage and stories you won't believe. Extract us!", + "Stranded Crew: Former {vehicle} crew at {grid}. Current occupants of a smoking crater. {salvage} salvage available!", + "Stranded Crew: {vehicle} operators requesting immediate evac from {grid}. Salvage secured: {salvage} units. Bring beer.", + "Stranded Crew: This is {vehicle} crew. Location: {grid}. Situation: not ideal. Salvage: {salvage}. Need: helicopter. NOW.", + "Stranded Crew: {grid}, party of {crew_size} from {vehicle}. Got {salvage} salvage and nowhere to go. Send help!", + "Stranded Crew: {vehicle} down at {grid}. Crew bailed, grabbed {salvage} salvage, now standing here like idiots. Pick us up!", + "Stranded Crew: Emergency broadcast from {vehicle} crew at {grid}. {salvage} salvage ready. Our ride? Not so much.", + "Stranded Crew: {vehicle} at {grid}. Status report: vehicle's a loss, crew's intact, {salvage} salvage secured. Send taxi!", + "Stranded Crew: Hey command! {vehicle} crew at {grid}. We saved {salvage} salvage but couldn't save the vehicle. Priorities!", + "Stranded Crew: This is {vehicle} broadcasting from {grid}. Crew's good, vehicle's bad, {salvage} salvage available. Get us outta here!", + "Stranded Crew: {vehicle} survivors at {grid} with {salvage} salvage. We're sunburned, pissed off, and ready for extraction!", + "Stranded Crew: Attention: {vehicle} crew at {grid} requires pickup. {salvage} salvage recovered. Hurry before we become salvage too!", + "Stranded Crew: {vehicle} here at {grid}. The good news: {salvage} salvage. The bad news: everything else. Send help!", + "Stranded Crew: From the smoking remains of {vehicle} at {grid}, we bring you {salvage} salvage and a request for immediate evac!", + "Stranded Crew: {vehicle} crew calling from {grid}. Vehicle's done, crew's done waiting. {salvage} salvage ready. Move it!", + "Stranded Crew: This is {vehicle} at {grid}. Collected {salvage} salvage while our ride went up in flames. Worth it?", + "Stranded Crew: {vehicle} operators at {grid}. Got {salvage} salvage and a newfound appreciation for walking. Please send helo!", + "Stranded Crew: {grid} here. {vehicle} crew reporting. Salvage count: {salvage}. Ride count: zero. Help count: needed!", + "Stranded Crew: {vehicle} down at {grid}! Crew up and ready with {salvage} salvage! Someone come get us already!", + "Stranded Crew: This is {vehicle} broadcasting on guard. Position {grid}. {salvage} salvage secured. Crew status: tired of your shit, send pickup!", + "Stranded Crew: {vehicle} crew at {grid} here. We've got {salvage} salvage, bad sunburns, and a dying radio battery. Hurry!", + "Stranded Crew: Emergency call from {grid}! {vehicle} crew alive with {salvage} salvage. Vehicle? Not so lucky. Extract ASAP!", + "Stranded Crew: {vehicle} at {grid}. Mission status: FUBAR. Crew status: alive. Salvage status: {salvage} units ready. Send bird!", + "Stranded Crew: This is {vehicle} crew. We're at {grid} with {salvage} salvage and zero transportation. Someone fix that!", + "Stranded Crew: {vehicle} survivors broadcasting from {grid}. Got the salvage ({salvage} units), lost the vehicle. Fair trade?", + "Stranded Crew: Urgent from {grid}! {vehicle} crew here with {salvage} salvage and rapidly depleting patience. Pick us up!", + "Stranded Crew: {vehicle} down at {grid}. Crew condition: grumpy but mobile. Salvage available: {salvage}. Ride home: none.", + "Stranded Crew: This is {vehicle} calling from {grid}. We're standing in the middle of nowhere with {salvage} salvage. Sound fun?", + "Stranded Crew: {vehicle} crew at {grid}. Salvage recovered: {salvage}. Pride recovered: maybe later. Need pickup now!", + "Stranded Crew: SOS from {grid}! {vehicle} crew requesting airlift! {salvage} salvage secured! This is not a drill!", + "Stranded Crew: {vehicle} survivors at {grid}. Vehicle kaput. Crew intact. {salvage} salvage ready. Send chopper!", + "Stranded Crew: This is {vehicle} crew at {grid}. We walked away from the wreck with {salvage} salvage. Now what?", + "Stranded Crew: Priority message! {vehicle} down at {grid}! Crew needs evac! {salvage} salvage available!", + "Stranded Crew: {vehicle} at {grid}. The vehicle didn't make it but we did. {salvage} salvage waiting. Send help!", + "Stranded Crew: Distress call from {grid}! {vehicle} crew needs immediate pickup! {salvage} salvage on site!", + "Stranded Crew: {vehicle} operators broadcasting from {grid}. Status: stranded. Payload: {salvage} salvage. Request: extraction!", + "Stranded Crew: This is {vehicle} crew. Grid: {grid}. Vehicle: destroyed. Salvage: {salvage}. Spirit: broken. Send pickup!", + "Stranded Crew: {vehicle} down at {grid}. We've got {salvage} salvage and a story that'll make you cringe. Extract us!", + "Stranded Crew: Emergency! {vehicle} crew at {grid}! Vehicle lost! {salvage} salvage recovered! Need airlift stat!", + "Stranded Crew: {vehicle} survivors reporting from {grid}. {salvage} salvage secured. Vehicle unsalvageable. We're not!", + "Stranded Crew: This is {vehicle} at {grid}. Crew escaped with {salvage} salvage. Need immediate extraction before enemy finds us!", + "Stranded Crew: {vehicle} crew broadcasting from {grid}. Got {salvage} salvage. Lost everything else. Please respond!", + "Stranded Crew: Mayday from {grid}! {vehicle} crew needs rescue! {salvage} salvage available! Don't leave us here!", + "Stranded Crew: {vehicle} operators at {grid}. Salvage count: {salvage}. Morale count: negative. Pickup count: zero so far!", + "Stranded Crew: This is {vehicle} crew at {grid}. We managed to save {salvage} salvage. Can you save us?", + "Stranded Crew: {vehicle} down at {grid}! Crew on foot with {salvage} salvage! Send taxi before we start hitchhiking!", + "Stranded Crew: Emergency call! {vehicle} crew at {grid}! {salvage} salvage ready! Vehicle not! We need help!", + "Stranded Crew: {vehicle} survivors broadcasting from {grid}. We're alive, vehicle's not, {salvage} salvage secured. What now?", + "Stranded Crew: This is {vehicle} at {grid}. Crew status: homeless. Salvage status: {salvage} units. Transportation status: needed!", + "Stranded Crew: {vehicle} crew calling from {grid}. We've got {salvage} salvage and no way home. Fix that!", + "Stranded Crew: Priority rescue needed! {vehicle} at {grid}! {salvage} salvage secured! Crew waiting!", + "Stranded Crew: {vehicle} operators from {grid}. Vehicle destroyed. Salvage recovered: {salvage}. Us recovered: not yet!", + "Stranded Crew: This is {vehicle} crew. Location: {grid}. Salvage: {salvage}. Transportation: missing. Patience: running out!", + "Stranded Crew: {vehicle} down at {grid}! We escaped with {salvage} salvage! Send extraction before our luck runs out!", + "Stranded Crew: Emergency broadcast from {grid}! {vehicle} crew needs airlift! {salvage} salvage ready for recovery!", + "Stranded Crew: {vehicle} survivors at {grid}. Got {salvage} salvage. Need helicopter. Preferably soon. Please?", + "Stranded Crew: This is {vehicle} at {grid}. Vehicle: totaled. Crew: intact. Salvage: {salvage}. Ride: requested!", + "Stranded Crew: {vehicle} crew broadcasting from {grid}. We saved {salvage} salvage from the wreck. Now save us!", + "Stranded Crew: Urgent! {vehicle} at {grid}! Crew needs extraction! {salvage} salvage available! Respond ASAP!", + "Stranded Crew: {vehicle} operators from {grid}. Salvage secured: {salvage}. Everything else: lost. Help requested!", + "Stranded Crew: This is {vehicle} crew at {grid}. {salvage} salvage recovered. Now we need to be recovered!", + "Stranded Crew: {vehicle} down at {grid}! Crew survived with {salvage} salvage! Vehicle didn't! Send pickup!", + "Stranded Crew: Emergency call from {grid}! {vehicle} crew requesting immediate evac! {salvage} salvage on hand!", + "Stranded Crew: {vehicle} survivors broadcasting from {grid}. Status: stranded. Cargo: {salvage} salvage. Mood: desperate!", + "Stranded Crew: This is {vehicle} at {grid}. We walked away from disaster with {salvage} salvage. Don't make us walk home!", + "Stranded Crew: {vehicle} crew calling from {grid}. Vehicle: gone. Salvage: {salvage}. Hope: fading. Send help!", + "Stranded Crew: Priority message! {vehicle} at {grid}! Crew needs pickup! {salvage} salvage ready! Time is critical!", + "Stranded Crew: {vehicle} operators from {grid}. We've got {salvage} salvage and no vehicle. Math doesn't work. Send helo!", + "Stranded Crew: This is {vehicle} crew at {grid}. Salvage recovered: {salvage}. Pride recovered: TBD. Pickup needed: definitely!", + "Stranded Crew: {vehicle} down at {grid}! Crew intact with {salvage} salvage! Vehicle scattered across 50 meters! Extract us!", + "Stranded Crew: Emergency from {grid}! {vehicle} crew needs airlift! {salvage} salvage secured! Don't forget about us!", + "Stranded Crew: {vehicle} survivors at {grid}. We managed to grab {salvage} salvage. Can you manage to grab us?", + "Stranded Crew: This is {vehicle} broadcasting from {grid}. Crew safe. Vehicle unsafe. {salvage} salvage ready. Pickup overdue!", + "Stranded Crew: {vehicle} crew at {grid}. We've got {salvage} salvage and regrets. Send extraction before we have more regrets!", + "Stranded Crew: Urgent call from {grid}! {vehicle} crew stranded! {salvage} salvage on site! Need immediate pickup!", + "Stranded Crew: {vehicle} operators from {grid}. Salvage count: {salvage}. Vehicle count: zero. Help count: requested!", + }, + + -- Load messages (shown when crew boards helicopter - initial contact) + LoadMessages = { + "Crew: Alright, we're in! Get us the hell out of here!", + "Crew: Loaded up! Thank God you showed up!", + "Crew: We're aboard! Let's not hang around!", + "Crew: All accounted for! Move it, move it!", + "Crew: Everyone's in! Punch it!", + "Crew: Secure! Get airborne before they spot us!", + "Crew: We're good! Nice flying, now let's go!", + "Crew: Loaded! You're our hero, let's bounce!", + "Crew: In the bird! Hit the gas!", + "Crew: Everyone's aboard! Go go go!", + "Crew: Mounted up! Don't wait for an invitation!", + "Crew: We're in! Holy shit, that was close!", + "Crew: All souls aboard! Time to leave!", + "Crew: Secure! Best thing I've seen all day!", + "Crew: Loaded! You magnificent bastard!", + "Crew: We're good to go! Pedal to the metal!", + "Crew: All in! Get us home, please!", + "Crew: Aboard! This is not a drill, GO!", + "Crew: Everyone's in! You're a lifesaver!", + "Crew: Locked and loaded! Wait, wrong phrase... just go!", + "Crew: All personnel aboard! Outstanding work!", + "Crew: We're in! Never been happier to see a helicopter!", + "Crew: Boarding complete! Let's get the fuck out of here!", + "Crew: Secure! You deserve a medal for this!", + "Crew: Everyone's aboard! Enemy's probably watching!", + "Crew: All in! Don't let us keep you!", + "Crew: Mounted! Nice flying, seriously!", + "Crew: Loaded up! First round's on us!", + "Crew: We're in! Best Uber rating ever!", + "Crew: All aboard! You're a goddamn angel!", + "Crew: Secure! Nicest thing anyone's done for us!", + "Crew: Everyone's in! Time's wasting!", + "Crew: Boarding complete! You rock!", + "Crew: All souls accounted for! Let's roll!", + "Crew: We're good! Get altitude, fast!", + "Crew: Loaded! I could kiss you!", + "Crew: Everyone's aboard! Don't wait around!", + "Crew: All in! Unbelievable timing!", + "Crew: Secure! You're the best!", + "Crew: Mounted up! We owe you big time!", + "Crew: All aboard! Rotors up, let's go!", + "Crew: We're in! Perfect execution!", + "Crew: Loaded! Smoothest pickup ever!", + "Crew: Everyone's good! Haul ass!", + "Crew: All accounted for! Spectacular flying!", + "Crew: Secure! Get us out of this hellhole!", + "Crew: We're aboard! Don't stick around!", + "Crew: All in! You're incredible!", + "Crew: Loaded up! Time to jet!", + "Crew: Everyone's secure! Outstanding!", + "Crew: All aboard! Best day ever!", + "Crew: We're good! Thank fucking God!", + "Crew: Loaded! You beautiful human being!", + "Crew: All personnel in! Fly fly fly!", + "Crew: Secure! Can't thank you enough!", + "Crew: Everyone's aboard! Green light!", + "Crew: All in! You're a legend!", + "Crew: Loaded! Sweet baby Jesus, let's go!", + "Crew: We're aboard! Best rescue ever!", + "Crew: All accounted for! Move out!", + "Crew: Secure! You saved our asses!", + "Crew: Everyone's in! Don't wait!", + "Crew: All aboard! Brilliant work!", + "Crew: Loaded up! We're getting married!", + "Crew: We're good! Absolutely perfect!", + "Crew: All in! Hit the throttle!", + "Crew: Secure! You're amazing!", + "Crew: Everyone's aboard! Let's leave!", + "Crew: All accounted for! Superb!", + "Crew: Loaded! Get us home safe!", + "Crew: We're in! Textbook pickup!", + "Crew: All aboard! Go go go!", + "Crew: Secure! We love you!", + "Crew: Everyone's good! Don't linger!", + "Crew: All in! Professional as hell!", + "Crew: Loaded up! Time to skedaddle!", + "Crew: We're aboard! You're the GOAT!", + "Crew: All souls in! Get moving!", + "Crew: Secure! We're naming our kids after you!", + "Crew: Everyone's aboard! Clear to leave!", + "Crew: All in! Never doubt yourself!", + "Crew: Loaded! You're a fucking hero!", + "Crew: We're good! Exceptional timing!", + "Crew: All accounted for! Hats off!", + "Crew: Secure! Best pilot ever!", + "Crew: Everyone's in! Throttle up!", + "Crew: All aboard! You're the man!", + "Crew: Loaded up! Pure excellence!", + "Crew: We're aboard! Flawless!", + "Crew: All in! Get us airborne!", + "Crew: Secure! Impressive stuff!", + "Crew: Everyone's good! Don't delay!", + "Crew: All accounted for! Top notch!", + "Crew: Loaded! Words can't express our thanks!", + "Crew: We're in! You're certified awesome!", + "Crew: All aboard! Time to split!", + "Crew: Secure! We're forever grateful!", + "Crew: Everyone's aboard! Wheels up!", + "Crew: All in! Couldn't be better!", + "Crew: Loaded up! You're the best pilot we know!", + "Crew: We're good! Clear skies ahead!", + "Crew: All souls aboard! Let's book it!", + "Crew: Secure! You're our guardian angel!", + }, + + -- Loading messages (shown periodically during boarding process) + LoadingMessages = { + "Crew: Hold still, we're getting in...", + "Crew: Watch your head! Coming through!", + "Crew: Almost there, keep it steady...", + "Crew: Just a sec, getting situated...", + "Crew: Loading up, hang tight...", + "Crew: Careful with Jenkins, he's bleeding pretty bad...", + "Crew: Someone grab the salvage!", + "Crew: Easy does it, wounded coming aboard...", + "Crew: Keep it level, we're climbing in...", + "Crew: Steady now, injured personnel...", + "Crew: Oh God, there's so much blood...", + "Crew: Medic! Where's the first aid kit?", + "Crew: Hold position, almost loaded...", + "Crew: Watch the rotor wash!", + "Crew: Someone's unconscious, careful!", + "Crew: Getting the wounded in first...", + "Crew: Steady as she goes...", + "Crew: Holy hell, Mike's leg is fucked up...", + "Crew: Hurry, he's losing blood fast!", + "Crew: Nice and easy, don't rush...", + "Crew: Everyone watch your step...", + "Crew: Loading wounded, give us a second...", + "Crew: Jesus, that's a lot of shrapnel...", + "Crew: Keep those rotors spinning!", + "Crew: Almost done, standby...", + "Crew: Careful, compound fracture here!", + "Crew: Someone's in shock, move it!", + "Crew: Loading gear, then we're good...", + "Crew: Stay put, we're working...", + "Crew: Damn, this guy's a mess...", + "Crew: Getting everyone situated...", + "Crew: Nice flying, keep it steady...", + "Crew: Hold still while we board...", + "Crew: Watch that head wound!", + "Crew: Everyone stay calm...", + "Crew: Getting the critical cases first...", + "Crew: Standby, loading continues...", + "Crew: Someone's got a sucking chest wound!", + "Crew: Keep that bird steady, sir!", + "Crew: Almost there, patience...", + "Crew: Wounded first, then equipment...", + "Crew: Oh fuck, internal bleeding...", + "Crew: Stay with us, buddy!", + "Crew: Loading process underway...", + "Crew: Keep those engines running!", + "Crew: Careful with his arm, it's shattered!", + "Crew: Getting everyone secured...", + "Crew: Hold your position, pilot!", + "Crew: Someone's not breathing right...", + "Crew: Almost done loading...", + "Crew: Watch your footing!", + "Crew: Traumatic amputation, careful!", + "Crew: Everyone grab something!", + "Crew: Standby, still boarding...", + "Crew: Nice hover, keep it up...", + "Crew: Getting the gear stowed...", + "Crew: Oh man, burns everywhere...", + "Crew: Stay conscious, stay with me!", + "Crew: Loading in progress...", + "Crew: Excellent flying, seriously...", + "Crew: Watch out for that wound!", + "Crew: Everyone move carefully...", + "Crew: He's going into shock!", + "Crew: Almost finished boarding...", + "Crew: Keep it stable, we're working...", + "Crew: Jesus, look at his face...", + "Crew: Getting everyone in...", + "Crew: Hold that position!", + "Crew: Someone's barely conscious...", + "Crew: Loading continues, standby...", + "Crew: Perfect hover, captain!", + "Crew: Careful, severe trauma here...", + "Crew: Everyone's moving slow...", + "Crew: Hold on, still loading...", + "Crew: Damn good flying, pilot!", + "Crew: Watch the blood slick!", + "Crew: Getting situated here...", + "Crew: He needs a hospital NOW...", + "Crew: Almost done, keep steady...", + "Crew: Loading wounded personnel...", + "Crew: Stay with us, soldier!", + "Crew: Keep those rotors turning...", + "Crew: Careful, major injuries...", + "Crew: Everyone board carefully...", + "Crew: Hold position, nearly done...", + "Crew: Oh God, the smell...", + "Crew: Loading critical cases...", + "Crew: Steady now, pilot...", + "Crew: Someone's in bad shape...", + "Crew: Almost loaded up...", + "Crew: Nice hover, excellent control...", + "Crew: Watch the shrapnel wounds!", + "Crew: Everyone move slowly...", + "Crew: He's bleeding out!", + "Crew: Getting everyone aboard...", + "Crew: Hold that hover!", + "Crew: Severe burns, careful!", + "Crew: Loading in progress, standby...", + "Crew: Perfect positioning, sir...", + "Crew: Watch those injuries!", + "Crew: Everyone take it easy...", + "Crew: Almost finished here...", + }, + + -- Unloading messages (shown when delivering crew to MASH) + UnloadingMessages = { + "Crew: Hold steady, do not lift - stretchers are rolling out!", + "Crew: Stay put, we're getting the wounded offloaded!", + "Crew: Keep us grounded, medics are still working inside!", + "Crew: We're at MASH! Thank you so much!", + "Crew: Finally! Get these guys to the docs!", + "Crew: Medical team, we need help here!", + "Crew: We made it! Get the wounded inside!", + "Crew: MASH arrival! These guys need immediate attention!", + "Crew: Unloading! Someone call the surgeons!", + "Crew: We're here! Priority casualties!", + "Crew: Made it alive! You're incredible!", + "Crew: MASH delivery! Critical patients!", + "Crew: Get the medics! We got wounded!", + "Crew: Arrived! These guys are in bad shape!", + "Crew: We're down! Medical emergency!", + "Crew: At MASH! Someone help these men!", + "Crew: Delivered! Thank God for you!", + "Crew: We made it! Get stretchers!", + "Crew: Arrival confirmed! Wounded aboard!", + "Crew: Finally here! Need doctors NOW!", + "Crew: MASH drop-off! Several critical!", + "Crew: We're safe! Get the medical team!", + "Crew: Landed! These boys need surgery!", + "Crew: Delivery complete! You saved lives today!", + "Crew: At medical! Urgent care needed!", + "Crew: We're here! Someone's coding!", + "Crew: MASH arrival! Serious trauma cases!", + "Crew: Made it! Outstanding flying!", + "Crew: Delivered safely! Medical assist required!", + "Crew: We're down! Get the surgical team!", + "Crew: At MASH! Multiple wounded!", + "Crew: Arrived! These guys won't last long!", + "Crew: Delivery! We owe you everything!", + "Crew: MASH landing! Emergency cases!", + "Crew: We made it! Immediate medical attention!", + "Crew: Here safe! Call the surgeons!", + "Crew: Delivered! Some really bad injuries!", + "Crew: At medical! They need help fast!", + "Crew: We're here! You're a hero!", + "Crew: MASH drop! Priority patients!", + "Crew: Arrived alive! Medical emergency!", + "Crew: Delivery complete! Get them inside!", + "Crew: We made it! Someone's critical!", + "Crew: At MASH! Severe casualties!", + "Crew: Landed safely! Thank you!", + "Crew: Delivered! Medical team needed!", + "Crew: We're here! These guys are fucked up!", + "Crew: MASH arrival! Get the doctors!", + "Crew: Made it! They're losing blood!", + "Crew: Arrived! Urgent surgical cases!", + "Crew: We're down! Multiple trauma!", + "Crew: At medical! You saved our asses!", + "Crew: Delivery! Several critical injuries!", + "Crew: MASH landing! They need OR stat!", + "Crew: We made it! Heavy casualties!", + "Crew: Here safely! Medical response!", + "Crew: Delivered! Some won't make it without surgery!", + "Crew: At MASH! Emergency personnel needed!", + "Crew: Arrived! These boys need immediate care!", + "Crew: We're here! Call triage!", + "Crew: MASH drop-off! Serious wounds!", + "Crew: Made it alive! Outstanding work!", + "Crew: Delivered safely! Get the medics!", + "Crew: We're down! They're in rough shape!", + "Crew: At medical! Priority one casualties!", + "Crew: Arrived! You're a lifesaver!", + "Crew: Delivery complete! Medical emergency!", + "Crew: MASH landing! Critical patients!", + "Crew: We made it! Someone's not breathing well!", + "Crew: Here! Get them to surgery!", + "Crew: Delivered! Severe trauma aboard!", + "Crew: At MASH! They need doctors now!", + "Crew: Arrived safely! You're amazing!", + "Crew: We're here! Multiple serious injuries!", + "Crew: MASH drop! Get the surgical team!", + "Crew: Made it! Thank fucking God!", + "Crew: Delivered! Several need immediate surgery!", + "Crew: We're down! Medical assist!", + "Crew: At medical! These guys are critical!", + "Crew: Arrived! You deserve a medal!", + "Crew: Delivery! Heavy casualties!", + "Crew: MASH landing! Emergency patients!", + "Crew: We made it! Get help quick!", + "Crew: Here safely! Brilliant flying!", + "Crew: Delivered! Someone's in bad shape!", + "Crew: At MASH! Urgent care!", + "Crew: Arrived alive! Medical emergency!", + "Crew: We're here! They need triage!", + "Crew: MASH drop-off! You saved lives!", + "Crew: Made it! These boys need help!", + "Crew: Delivered safely! Call the doctors!", + "Crew: We're down! Priority casualties!", + "Crew: At medical! You're our hero!", + "Crew: Arrived! Severe wounds here!", + "Crew: Delivery complete! Get medical personnel!", + "Crew: MASH landing! Critical condition!", + "Crew: We made it! They're barely hanging on!", + "Crew: Here! Immediate medical attention!", + "Crew: Delivered! Someone's dying!", + "Crew: At MASH! Get the OR ready!", + "Crew: Arrived safely! We can't thank you enough!", + "Crew: We're here! Emergency surgery needed!", + "Crew: MASH drop! Multiple trauma!", + "Crew: Made it alive! Exceptional flying!", + "Crew: Delivered! They need help now!", + "Crew: We're down! Medical response required!", + }, + + -- Unload completion messages (shown when offload finishes) + UnloadCompleteMessages = { + "MASH: Offload complete! Medical teams have the wounded!", + "MASH: Patients transferred! You're cleared to lift!", + "MASH: All casualties delivered! Incredible flying!", + "MASH: They're inside! Mission accomplished!", + "MASH: Every patient is in triage! Thank you!", + "MASH: Transfer complete! Head back when ready!", + "MASH: Doctors have them! Outstanding job!", + "MASH: Wounded are inside! You saved them!", + "MASH: Hand-off confirmed! You're good to go!", + "MASH: Casualties secure! Medical team standing by!", + "MASH: Delivery confirmed! Take a breather, pilot!", + "MASH: All stretchers filled! We are done here!", + "MASH: Hospital staff has the patients! Great work!", + "MASH: Unload complete! You nailed that landing!", + "MASH: MASH has control! You're clear, thank you!", + "MASH: Every survivor is inside! Hell yes!", + "MASH: Docs have them! Back to the fight when ready!", + "MASH: Handoff complete! You earned the praise!", + "MASH: Medical team secured the wounded! Legend!", + "MASH: Transfer complete! Outstanding steady hover!", + "MASH: They're in the OR! You rock, pilot!", + "MASH: Casualties delivered! Spin it back up when ready!", + "MASH: MASH confirms receipt! You're a lifesaver!", + "MASH: Every patient is safe! Mission complete!", + }, + + -- Enroute messages (periodic chatter with bearing/distance to MASH) + EnrouteToMashMessages = { + "Crew: Steady handsβ€”{mash} sits at bearing {brg}Β°, {rng} {rng_u} ahead; patients are trying to nap.", + "Crew: Nav board says {mash} is {brg}Β° for {rng} {rng_u}; keep it gentle so the IVs stay put.", + "Crew: If you hold {brg}Β° for {rng} {rng_u}, {mash} will have hot coffee waitingβ€”no promises on taste.", + "Crew: Confirmed, {mash} straight off the nose at {brg}Β°, {rng} {rng_u}; wounded are counting on you.", + "Crew: Stay on {brg}Β° for {rng} {rng_u} and we’ll roll into {mash} like heroes instead of hooligans.", + "Crew: Tilt a hair leftβ€”{mash} lies {brg}Β° at {rng} {rng_u}; let’s not overshoot the hospital.", + "Crew: Keep the climb smooth; {mash} is {brg}Β° at {rng} {rng_u} and the patients already look green.", + "Crew: Plot shows {mash} bearing {brg}Β°, range {rng} {rng_u}; mother hen wants her chicks delivered.", + "Crew: Hold that heading {brg}Β° and we’ll be on final to {mash} in {rng} {rng_u}; medics are on standby.", + "Crew: Reminderβ€”{mash} is {brg}Β° at {rng} {rng_u}; try not to buzz the command tent this run.", + "Crew: Flight doc says keep turbulence down; {mash} sits {brg}Β° out at {rng} {rng_u}.", + "Crew: Stay focusedβ€”{mash} ahead {brg}Β°, {rng} {rng_u}; every bump costs us more paperwork.", + "Crew: We owe those medics a beer; {mash} is {brg}Β° for {rng} {rng_u}, so let’s get there in one piece.", + "Crew: Update from ops: {mash} remains {brg}Β° at {rng} {rng_u}; throttle down before the pad sneaks up.", + "Crew: Patients are asking if this thing comes with a smoother rideβ€”{mash} {brg}Β°, {rng} {rng_u} to go.", + "Crew: Keep your coolβ€”{mash} is {brg}Β° at {rng} {rng_u}; med bay is laying out stretchers now.", + "Crew: Good news, {mash} has fresh morphine; bad news, it’s {brg}Β° and {rng} {rng_u} awayβ€”step on it.", + "Crew: Command wants ETAβ€”tell them {mash} is {brg}Β° for {rng} {rng_u} and we’re hauling wounded and sass.", + "Crew: That squeak you hear is the stretcherβ€”stay on {brg}Β° for {rng} {rng_u} to {mash}.", + "Crew: Don’t mind the swearing; we’re {rng} {rng_u} from {mash} on bearing {brg}Β° and the pain meds wore off.", + "Crew: Eyes outsideβ€”{mash} sits {brg}Β° at {rng} {rng_u}; flak gunners better keep their heads down.", + "Crew: Weather’s clearβ€”{mash} is {brg}Β° out {rng} {rng_u}; let’s not invent new IFR procedures.", + "Crew: Remember your autorotation drills? Neither do we. Fly {brg}Β° for {rng} {rng_u} to {mash} and keep her humming.", + "Crew: The guy on stretcher two wants to know if {mash} is really {brg}Β° at {rng} {rng_u}; I told him yes, please prove me right.", + "Crew: Rotor check good; {mash} bearing {brg}Β°, distance {rng} {rng_u}. Try to act like professionals.", + "Crew: Stay low and fastβ€”{mash} {brg}Β° {rng} {rng_u}; enemy radios are whining already.", + "Crew: You’re doing greatβ€”just keep {brg}Β° for {rng} {rng_u} and {mash} will take the baton.", + "Crew: Map scribble says {mash} is {brg}Β° and {rng} {rng_u}; let’s prove cartography still works.", + "Crew: Pilot, the patients voted: less banking, more {mash}. Bearing {brg}Β°, {rng} {rng_u}.", + "Crew: We cross the line into {mash} territory in {rng} {rng_u} at {brg}Β°; keep the blades happy.", + "Crew: Hot tipβ€”{mash} chefs saved us soup if we make {brg}Β° in {rng} {rng_u}; pretty sure it’s edible.", + "Crew: Another bump like that and I’m filing a complaint; {mash} is {brg}Β° at {rng} {rng_u}, so aim true.", + "Crew: The wounded in back just made side bets on landingβ€”bearing {brg}Β°, range {rng} {rng_u} to {mash}.", + "Crew: Stay on that compassβ€”{mash} sits {brg}Β° at {rng} {rng_u}; medics already prepped the triage tent.", + "Crew: Copy towerβ€”{mash} runway metaphorically lies {brg}Β° and {rng} {rng_u} ahead; no victory rolls.", + "Crew: Someone alert the chaplainβ€”we’re {rng} {rng_u} out from {mash} on {brg}Β° and our patients could use jokes.", + "Crew: Keep chatter clearβ€”{mash} is {brg}Β° away at {rng} {rng_u}; let’s land before the morphine fades.", + "Crew: They promised me coffee at {mash} if we stick {brg}Β° for {rng} {rng_u}; don’t ruin this.", + "Crew: Plotting interceptβ€”{mash} coordinates show {brg}Β°/{rng} {rng_u}; maintain this track.", + "Crew: I know the gauges say fine but the guys in back disagree; {mash} {brg}Β°, {rng} {rng_u}.", + "Crew: Remember, no barrel rolls; {mash} lies {brg}Β° at {rng} {rng_u}, and the surgeon will kill us if we’re late.", + "Crew: Keep the skids level; {mash} is {brg}Β° and {rng} {rng_u} away begging for customers.", + "Crew: We’re on scheduleβ€”{mash} sits {brg}Β° at {rng} {rng_u}; try not to invent new delays.", + "Crew: Latest wind check says {mash} {brg}Β°, {rng} {rng_u}; adjust trim before the patients revolt.", + "Crew: The medic in back just promised cookies if we hit {brg}Β° for {rng} {rng_u} to {mash}.", + "Crew: Hold blades steadyβ€”{mash} is {brg}Β° at {rng} {rng_u}; stretcher straps can only do so much.", + "Crew: Copy you’re bored, but {mash} is {brg}Β° for {rng} {rng_u}; no scenic detours today.", + "Crew: If you overshoot {mash} by {rng} {rng_u} I’m telling command it was deliberate; target bearing {brg}Β°.", + "Crew: Serious facesβ€”we’re {rng} {rng_u} out from {mash} on {brg}Β° and these folks hurt like hell.", + "Crew: Hey pilot, the guy with the busted leg says thanksβ€”just keep {brg}Β° for {rng} {rng_u} to {mash}.", + "Crew: That was a nice thermalβ€”maybe avoid the next one; {mash} sits {brg}Β° at {rng} {rng_u}.", + "Crew: Keep those eyes up; {mash} is {brg}Β° away {rng} {rng_u}; CAS flights are buzzing around.", + "Crew: Reminder: {mash} won’t accept deliveries dumped on the lawn; {brg}Β° and {rng} {rng_u} to touchdown.", + "Crew: Ops pinged again; told them we’re {rng} {rng_u} from {mash} on heading {brg}Β° and flying like pros.", + "Crew: We promised the patients a soft landing; {mash} bearing {brg}Β°, distance {rng} {rng_u}.", + "Crew: Keep the profile lowβ€”{mash} is {brg}Β° at {rng} {rng_u}; AAA spots are grumpy today.", + "Crew: Message from tower: {mash} pad is clear; track {brg}Β° for {rng} {rng_u} and watch the dust.", + "Crew: Someone in back just yanked an IVβ€”slow the hell down; {mash} {brg}Β°, {rng} {rng_u}.", + "Crew: We’re so close I can smell antisepticβ€”{mash} is {brg}Β° and {rng} {rng_u} from here.", + "Crew: If we shave more time the medics might actually smile; {mash} lies {brg}Β° at {rng} {rng_u}.", + "Crew: Friendly reminderβ€”{mash} is {brg}Β° at {rng} {rng_u}; try not to park on their tent again.", + "Crew: The patients voted you best pilot if we hit {mash} at {brg}Β° in {rng} {rng_u}; don’t blow the election.", + "Crew: I’ve got morphine bets riding on you; {mash} sits {brg}Β° for {rng} {rng_u}.", + "Crew: Keep your head in the gameβ€”{mash} {brg}Β°, {rng} {rng_u}; enemy gunners love tall rotor masts.", + "Crew: That rattle is the litter, not the engine; {mash} is {brg}Β° and {rng} {rng_u} out.", + "Crew: Flight lead wants a statusβ€”reported {mash} bearing {brg}Β°, {rng} {rng_u}; keep us honest.", + "Crew: Patient three says thanks for not crashingβ€”yet; {mash} {brg}Β°, {rng} {rng_u}.", + "Crew: If you see the chaplain waving, you missedβ€”{mash} sits {brg}Β° at {rng} {rng_u}.", + "Crew: Med bay just radioed; they’re warming blankets. That’s {mash} {brg}Β° at {rng} {rng_u}.", + "Crew: Stay locked on {brg}Β° for {rng} {rng_u}; {mash} already cleared a pad.", + "Crew: Little turbulence ahead; {mash} bearing {brg}Β°, {rng} {rng_u}; grip it and grin.", + "Crew: The guy on the stretcher wants to know if we’re lostβ€”tell him {mash} {brg}Β°, {rng} {rng_u}.", + "Crew: Hold altitude; {mash} is {brg}Β° away {rng} {rng_u} and the medics hate surprise autorotations.", + "Crew: Confirming navβ€”{mash} at {brg}Β°, {rng} {rng_u}; you keep flying, we’ll keep them calm.", + "Crew: If anyone asks, yes we’re inbound; {mash} sits {brg}Β° {rng} {rng_u} out.", + "Crew: Think happy thoughtsβ€”{mash} is {brg}Β° at {rng} {rng_u}; patients can smell fear.", + "Crew: Quit sightseeingβ€”{mash} lies {brg}Β° and {rng} {rng_u}; let’s deliver the meat wagon.", + "Crew: Keep that nose pointed {brg}Β°; {mash} is only {rng} {rng_u} away and my nerves are shot.", + "Crew: We promised a fast ride; {mash} sits {brg}Β° at {rng} {rng_u}. No pressure.", + "Crew: You’re lined up perfectβ€”{mash} {brg}Β°, {rng} {rng_u}; now just keep it that way.", + "Crew: The surgeon textedβ€”he wants his patients now. {mash} bearing {brg}Β°, {rng} {rng_u}.", + "Crew: The wounded are timing us; {mash} is {brg}Β° at {rng} {rng_u} so don’t dilly-dally.", + "Crew: Another five minutes and {mash} will start naggingβ€”hold {brg}Β° for {rng} {rng_u}.", + "Crew: Keep the blade slap mellow; {mash} sits {brg}Β° at {rng} {rng_u}.", + "Crew: Airspeed’s good; {mash} is {brg}Β° for {rng} {rng_u}; cue inspirational soundtrack.", + "Crew: Patient four says if we keep {brg}Β° for {rng} {rng_u}, drinks are on him at {mash}.", + "Crew: Don’t ask why the stretcher smells like smoke; just fly {brg}Β° {rng} {rng_u} to {mash}.", + "Crew: Tower says we’re clear direct {mash}; bearing {brg}Β°, {rng} {rng_u}.", + "Crew: If the engine coughs again we’re walkingβ€”{mash} sits {brg}Β° at {rng} {rng_u}; keep the RPM up.", + "Crew: Calm voices onlyβ€”{mash} sits {brg}Β° {rng} {rng_u}; the patients listen to tone more than words.", + "Crew: Promise the guys in back we’ll hit {brg}Β° for {rng} {rng_u} and land like silk at {mash}.", + "Crew: There’s a small bet you’ll flare too high; prove them wrongβ€”{mash} {brg}Β°, {rng} {rng_u}.", + "Crew: The medic wants you to skip the cowboy routine; {mash} lies {brg}Β° at {rng} {rng_u}.", + "Crew: That vibration is fine; what’s not fine is missing {mash} at {brg}Β° in {rng} {rng_u}.", + "Crew: Keep the collective steadyβ€”{mash} {brg}Β°, {rng} {rng_u}; we’re hauling precious cargo.", + "Crew: Someone promised me a hot meal at {mash}; stay on {brg}Β° for {rng} {rng_u} and make it happen.", + "Crew: The patients say if you wobble again they’re walking; {mash} {brg}Β°, {rng} {rng_u}.", + "Crew: Hold that horizonβ€”{mash} is {brg}Β° for {rng} {rng_u}; the doc already scrubbed in.", + "Crew: Eyes on the prizeβ€”{mash} {brg}Β°, {rng} {rng_u}; don’t let the wind push us off.", + "Crew: Finish strong; {mash} sits {brg}Β° {rng} {rng_u}. Wheels down and we’re heroes again.", + }, + + -- Crew unit types per coalition (fallback if not specified in catalog) + CrewUnitTypes = { + [coalition.side.BLUE] = 'Soldier M4', + [coalition.side.RED] = 'Paratrooper RPG-16', -- Try Russian paratrooper instead + }, + + -- MANPADS unit types per coalition (one random crew member gets this weapon) + ManPadUnitTypes = { + [coalition.side.BLUE] = 'Soldier stinger', + [coalition.side.RED] = 'SA-18 Igla manpad', + }, + + -- Respawn settings + RespawnOnPickup = true, -- if true, vehicle respawns when crew loaded into helo + RespawnOffset = 15, -- meters from original death position + RespawnSameHeading = true, -- preserve original heading + + -- Automatic pickup/unload settings + AutoPickup = { + Enabled = true, -- if true, crews will be picked up automatically when helicopter lands nearby + MaxDistance = 30, -- meters - max distance for automatic crew pickup + CheckInterval = 3, -- seconds between checks for landed helicopters + RequireGroundContact = true, -- when true, helicopter must be firmly on the ground before crews move + GroundContactAGL = 4, -- meters AGL threshold treated as β€œlanded” for ground contact purposes + MaxLandingSpeed = 2, -- m/s ground speed limit while parked; prevents chasing sliding helicopters + LoadDelay = 15, -- seconds crews need to board after reaching helicopter (must stay landed) + SettledAGL = 6.0, -- maximum AGL considered safely settled during boarding hold + AirAbortGrace = 2, -- seconds of hover tolerated during boarding before aborting + }, + + AutoUnload = { + Enabled = true, -- if true, crews automatically unload when landed in MASH zone + UnloadDelay = 15, -- seconds after landing before auto-unload triggers + GroundContactAGL = 3.5, -- meters AGL treated as β€œon the ground” for auto-unload (taller skids/mod helos) + SettledAGL = 6.0, -- maximum AGL considered safely settled for the unload hold to run (relative to terrain) + MaxLandingSpeed = 2.0, -- m/s ground speed limit while holding to unload + AirAbortGrace = 2, -- seconds of hover wiggle tolerated before aborting the unload hold + }, + + EnrouteMessages = { + Enabled = true, + Interval = 123, -- seconds between in-flight status quips while MEDEVAC patients onboard + }, + + -- Salvage system + Salvage = { + Enabled = true, + PoolType = 'global', -- 'global' = coalition-wide pool + DefaultValue = 1, -- default salvageValue if not in catalog + ShowInStatus = true, -- show salvage points in F10 status menu + AutoApply = true, -- auto-use salvage when out of stock (no manual confirmation) + AllowAnyItem = true, -- can build items that never had inventory using salvage + }, + + -- Map markers for downed crews + MapMarkers = { + Enabled = true, + IconText = 'πŸ”΄ MEDEVAC', -- prefix for marker text + ShowGrid = true, -- include grid coordinates in marker + ShowTimeRemaining = true, -- show expiration time in marker + ShowSalvageValue = true, -- show salvage value in marker + }, + + -- Warning messages before crew timeout + Warnings = { + { time = 900, message = 'MEDEVAC: {crew} at {grid} has 15 minutes remaining!' }, + { time = 300, message = 'URGENT MEDEVAC: {crew} at {grid} will be KIA in 5 minutes!' }, + }, + + MASHZoneRadius = 500, -- default radius for MASH zones + MASHZoneColors = { + border = {1, 1, 0, 0.85}, -- yellow border + fill = {1, 0.75, 0.8, 0.25}, -- pink fill + }, + + -- Mobile MASH (player-deployable via crates) + MobileMASH = { + Enabled = true, + ZoneRadius = 500, -- radius of Mobile MASH zone in meters + CrateRecipeKey = 'MOBILE_MASH', -- catalog key for building mobile MASH + AnnouncementInterval = 1800, -- 30 mins between announcements + BeaconFrequency = '30.0 FM', -- radio frequency for announcements + Destructible = true, + VehicleTypes = { + [coalition.side.BLUE] = 'M-113', -- Medical variant for BLUE + [coalition.side.RED] = 'BTR_D', -- Medical/transport variant for RED + }, + AutoIncrementName = true, -- "Mobile MASH 1", "Mobile MASH 2"... + }, + + -- Statistics tracking + Statistics = { + Enabled = true, + TrackByPlayer = false, -- if true, track per-player stats (not yet implemented) + }, +} + +-- ========================= +-- Sling-Load Salvage Configuration (MOVED) +-- ========================= +-- #region SlingLoadSalvage Config +-- NOTE: SlingLoadSalvage configuration has been MOVED into CTLD.Config.SlingLoadSalvage +-- so that it properly gets copied to each CTLD instance via DeepCopy/DeepMerge. +-- The old CTLD.SlingLoadSalvage global definition here is removed to avoid confusion. +-- See CTLD.Config.SlingLoadSalvage above for the actual configuration. +-- #endregion SlingLoadSalvage Config +--=================================================================================================================================================== +-- #endregion MEDEVAC Config + + -- #region State + -- Internal state tables +CTLD._instances = CTLD._instances or {} +CTLD._crates = {} -- [crateName] = { key, zone, side, spawnTime, point } +CTLD._troopsLoaded = {} -- [groupName] = { count, typeKey, weightKg } +CTLD._loadedCrates = {} -- [groupName] = { total=n, totalWeightKg=w, byKey = { key -> count } } +CTLD._loadedTroopTypes = {} -- [groupName] = { total=n, byType = { typeKey -> count }, labels = { typeKey -> label } } +CTLD._deployedTroops = {} -- [groupName] = { typeKey, count, side, spawnTime, point, weightKg } +CTLD._hoverState = {} -- [unitName] = { targetCrate=name, startTime=t } +CTLD._unitLast = {} -- [unitName] = { x, z, t } +CTLD._coachState = {} -- [unitName] = { lastKeyTimes = {key->time}, lastHint = "", phase = "", lastPhaseMsg = 0, target = crateName, holdStart = nil } +CTLD._msgState = { } -- messaging throttle state: [scopeKey] = { lastKeyTimes = { key -> time } } +CTLD._buildConfirm = {} -- [groupName] = time of first build request (awaiting confirmation) +CTLD._buildCooldown = {} -- [groupName] = time of last successful build +CTLD._NextMarkupId = 10000 -- global-ish id generator shared by instances for map drawings +-- Spatial indexing for hover pickup performance +CTLD._spatialGrid = CTLD._spatialGrid or {} -- [gridKey] = { crates = {name->meta}, troops = {name->meta} } +CTLD._spatialGridSize = 500 -- meters per grid cell (tunable based on hover pickup distance) +-- Inventory state +CTLD._stockByZone = CTLD._stockByZone or {} -- [zoneName] = { [crateKey] = count } +CTLD._inStockMenus = CTLD._inStockMenus or {} -- per-group filtered menu handles +CTLD._jtacReservedCodes = CTLD._jtacReservedCodes or { + [coalition.side.BLUE] = {}, + [coalition.side.RED] = {}, + [coalition.side.NEUTRAL] = {}, +} +-- MEDEVAC state +CTLD._medevacCrews = CTLD._medevacCrews or {} -- [crewGroupName] = { vehicleType, side, spawnTime, position, salvageValue, markerID, originalHeading, requestTime, warningsSent } +CTLD._salvagePoints = CTLD._salvagePoints or {} -- [coalition.side] = points (global pool) +CTLD._mashZones = CTLD._mashZones or {} -- [zoneName] = { zone, side, isMobile, unitName (if mobile) } +CTLD._mobileMASHCounter = CTLD._mobileMASHCounter or { [coalition.side.BLUE] = 0, [coalition.side.RED] = 0 } +CTLD._medevacStats = CTLD._medevacStats or { -- [coalition.side] = { spawned, rescued, delivered, timedOut, killed, salvageEarned, vehiclesRespawned } + [coalition.side.BLUE] = { spawned = 0, rescued = 0, delivered = 0, timedOut = 0, killed = 0, salvageEarned = 0, vehiclesRespawned = 0, salvageUsed = 0 }, + [coalition.side.RED] = { spawned = 0, rescued = 0, delivered = 0, timedOut = 0, killed = 0, salvageEarned = 0, vehiclesRespawned = 0, salvageUsed = 0 }, +} +CTLD._medevacUnloadStates = CTLD._medevacUnloadStates or {} -- [groupName] = { startTime, delay, holdAnnounced, nextReminder } +CTLD._medevacLoadStates = CTLD._medevacLoadStates or {} -- [groupName] = { startTime, delay, crewGroupName, crewData, holdAnnounced, nextReminder } +CTLD._medevacEnrouteStates = CTLD._medevacEnrouteStates or {} -- [groupName] = { nextSend, lastIndex } + +-- Sling-Load Salvage state +CTLD._salvageCrates = CTLD._salvageCrates or {} -- [crateName] = { side, weight, spawnTime, position, initialHealth, rewardValue, warningsSent, staticObject, crateClass } +CTLD._salvageDropZones = CTLD._salvageDropZones or {} -- [zoneName] = { zone, side, active } +CTLD._salvageStats = CTLD._salvageStats or { -- [coalition.side] = { spawned, delivered, expired, totalWeight, totalReward } + [coalition.side.BLUE] = { spawned = 0, delivered = 0, expired = 0, totalWeight = 0, totalReward = 0 }, + [coalition.side.RED] = { spawned = 0, delivered = 0, expired = 0, totalWeight = 0, totalReward = 0 }, +} +-- One-shot timer tracking for cleanup +CTLD._pendingTimers = CTLD._pendingTimers or {} -- [timerId] = true + +local function _distanceXZ(a, b) + if not a or not b then return math.huge end + local dx = (a.x or 0) - (b.x or 0) + local dz = (a.z or 0) - (b.z or 0) + return math.sqrt(dx * dx + dz * dz) +end + +local function _buildSphereVolume(point, radius) + local px = (point and point.x) or 0 + local pz = (point and point.z) or 0 + local py = (point and (point.y or point.alt)) + if py == nil and land and land.getHeight then + local ok, h = pcall(land.getHeight, { x = px, y = pz }) + if ok and type(h) == 'number' then py = h end + end + py = py or 0 + local volId = (world and world.VolumeType and world.VolumeType.SPHERE) or 0 + return { + id = volId, + params = { + point = { x = px, y = py, z = pz }, + radius = radius or 0, + } + } +end + +-- Check if a crate is being sling-loaded by scanning for nearby helicopters +-- Static objects don't have inAir() method, so we check if any unit is carrying it +local function _isCrateHooked(crateObj) + if not crateObj then return false end + + -- For dynamic objects (vehicles), inAir() works + if crateObj.inAir then + local ok, result = pcall(function() return crateObj:inAir() end) + if ok and result then return true end + end + + -- For static objects: check if the crate itself is elevated above ground + -- This indicates it's actually being carried, not just near a helicopter + local cratePos = crateObj:getPoint() + if not cratePos then return false end + + -- Get ground height at crate position + local landHeight = land.getHeight({x = cratePos.x, y = cratePos.z}) + if not landHeight then landHeight = 0 end + + -- If crate is more than 2 meters above ground, it's being carried + -- (accounts for terrain variations and crate size) + local heightAboveGround = cratePos.y - landHeight + if heightAboveGround > 2 then + return true + end + + return false +end + +local function _fmtTemplate(tpl, data) + if not tpl or tpl == '' then return '' end + -- Support placeholder keys with underscores (e.g., {zone_dist_u}) + return (tpl:gsub('{([%w_]+)}', function(k) + local v = data and data[k] + -- If value is missing, leave placeholder intact to aid debugging + if v == nil then return '{'..k..'}' end + return tostring(v) + end)) +end + +function CTLD:_FindNearestFriendlyTransport(position, side, radius) + if not position or not side then return nil end + radius = radius or 600 + local bestGroupName + local bestDist = math.huge + local sphere = _buildSphereVolume(position, radius) + world.searchObjects(Object.Category.UNIT, sphere, function(obj) + if not obj or (not obj.isExist or not obj:isExist()) then return true end + if not obj.getCoalition or obj:getCoalition() ~= side then return true end + local grp = obj.getGroup and obj:getGroup() + if not grp then return true end + local grpName = grp.getName and grp:getName() + if not grpName then return true end + local objPos = obj.getPoint and obj:getPoint() + local dist = _distanceXZ(position, objPos) + if dist < bestDist then + bestDist = dist + bestGroupName = grpName + end + return true + end) + if not bestGroupName then return nil end + local mooseGrp = GROUP:FindByName(bestGroupName) + return mooseGrp +end + +function CTLD:_SendSalvageHint(meta, messageKey, data, position, cooldown) + if not meta or not messageKey then return end + cooldown = cooldown or 10 + meta.hintCooldowns = meta.hintCooldowns or {} + local hintKey = messageKey + if data and data.zone then hintKey = hintKey .. ':' .. data.zone end + local now = timer.getTime() + local last = meta.hintCooldowns[hintKey] or 0 + if (now - last) < cooldown then return end + meta.hintCooldowns[hintKey] = now + + local template = self.Messages and self.Messages[messageKey] + if not template then return end + local text = _fmtTemplate(template, data or {}) + if not text or text == '' then return end + + local recipient = self:_FindNearestFriendlyTransport(position, meta.side, 700) + local recipientLabel + if recipient then + _msgGroup(recipient, text) + recipientLabel = recipient.GetName and recipient:GetName() or 'nearest transport' + else + _msgCoalition(meta.side, text) + recipientLabel = string.format('coalition-%s', meta.side == coalition.side.BLUE and 'BLUE' or 'RED') + end + + local zoneLabel = (data and data.zone) and (' zone '..tostring(data.zone)) or '' + _logInfo(string.format('[SlingLoadSalvage] Hint %s -> %s for crate %s%s', + messageKey, + recipientLabel or 'unknown recipient', + data and data.id or 'unknown', + zoneLabel)) +end + +function CTLD:_CheckCrateZoneHints(crateName, meta, cratePos) + if not meta or not cratePos then return end + local zoneSets = { + { list = self.PickupZones, active = self._ZoneActive and self._ZoneActive.Pickup, label = 'Pickup' }, + { list = self.FOBZones, active = self._ZoneActive and self._ZoneActive.FOB, label = 'FOB' }, + { list = self.DropZones, active = self._ZoneActive and self._ZoneActive.Drop, label = 'Drop' }, + } + + for _, entry in ipairs(zoneSets) do + local zones = entry.list or {} + if #zones > 0 then + for _, zone in ipairs(zones) do + local zoneName = zone:GetName() + local isActive = true + if entry.active and zoneName then + isActive = (entry.active[zoneName] ~= false) + end + if isActive and zone:IsVec3InZone(cratePos) then + self:_SendSalvageHint(meta, 'slingload_salvage_wrong_zone', { + id = crateName, + zone = zoneName, + zone_type = entry.label, + }, cratePos, 15) + return + end + end + end + end +end + + -- #endregion State + +-- ========================= +-- Utilities +-- ========================= + -- #region Utilities + +-- Select a random crate spawn point inside the zone while respecting separation rules. +function CTLD:_computeCrateSpawnPoint(zone, opts) + opts = opts or {} + if not zone or not zone.GetPointVec3 then return nil end + + local centerVec = zone:GetPointVec3() + if not centerVec then return nil end + local center = { x = centerVec.x, z = centerVec.z } + local rZone = self:_getZoneRadius(zone) + + local edgeBuf = math.max(0, opts.edgeBuffer or self.Config.PickupZoneSpawnEdgeBuffer or 10) + local minOff = math.max(0, opts.minOffset or self.Config.PickupZoneSpawnMinOffset or 5) + local extraPad = math.max(0, opts.additionalEdgeBuffer or 0) + local rMax = math.max(0, (rZone or 150) - edgeBuf - extraPad) + if rMax < 0 then rMax = 0 end + + local tries = math.max(1, opts.tries or self.Config.CrateSpawnSeparationTries or 6) + local minSep = opts.minSeparation + if minSep == nil then + minSep = math.max(0, self.Config.CrateSpawnMinSeparation or 7) + end + + local skipSeparation = opts.skipSeparationCheck == true + local ignoreCrates = {} + if opts.ignoreCrates then + for name,_ in pairs(opts.ignoreCrates) do + ignoreCrates[name] = true + end + end + + local preferred = opts.preferredPoint + local usePreferred = (preferred ~= nil) + + local function candidate() + if usePreferred then + usePreferred = false + return { x = preferred.x, z = preferred.z } + end + if (self.Config.PickupZoneSpawnRandomize == false) or rMax <= 0 then + return { x = center.x, z = center.z } + end + local rr + if rMax > minOff then + rr = minOff + math.sqrt(math.random()) * (rMax - minOff) + else + rr = rMax + end + local th = math.random() * 2 * math.pi + return { x = center.x + rr * math.cos(th), z = center.z + rr * math.sin(th) } + end + + local function isClear(pt) + if skipSeparation or minSep <= 0 then return true end + for name, meta in pairs(CTLD._crates) do + if not ignoreCrates[name] and meta and meta.side == self.Side and meta.point then + local dx = (meta.point.x - pt.x) + local dz = (meta.point.z - pt.z) + if (dx*dx + dz*dz) < (minSep*minSep) then + return false + end + end + end + return true + end + + local chosen = candidate() + if not chosen then return nil end + if not isClear(chosen) then + for _ = 1, tries - 1 do + local c = candidate() + if c and isClear(c) then + chosen = c + break + end + end + end + return chosen +end + +-- Build a centered grid of offsets for cluster placement, keeping index 1 at the origin. +function CTLD:_buildClusterOffsets(count, spacing) + local offsets = {} + if count <= 0 then return offsets, 0, 0 end + + offsets[1] = { x = 0, z = 0 } + if count == 1 then return offsets, 1, 1 end + + local perRow = math.ceil(math.sqrt(count)) + local rows = math.ceil(count / perRow) + local positions = {} + + for r = 1, rows do + for c = 1, perRow do + local ox = (c - ((perRow + 1) / 2)) * spacing + local oz = (r - ((rows + 1) / 2)) * spacing + if math.abs(ox) > 0.01 or math.abs(oz) > 0.01 then + positions[#positions + 1] = { x = ox, z = oz } + end + end + end + + table.sort(positions, function(a, b) + local da = a.x * a.x + a.z * a.z + local db = b.x * b.x + b.z * b.z + if da == db then + if a.x == b.x then return a.z < b.z end + return a.x < b.x + end + return da < db + end) + + local idx = 2 + for _,pos in ipairs(positions) do + if idx > count then break end + offsets[idx] = pos + idx = idx + 1 + end + + return offsets, perRow, rows +end + +-- Safe deep copy: prefer MOOSE UTILS.DeepCopy when available; fallback to Lua implementation +local function _deepcopy_fallback(obj, seen) + if type(obj) ~= 'table' then return obj end + seen = seen or {} + if seen[obj] then return seen[obj] end + local res = {} + seen[obj] = res + for k, v in pairs(obj) do + res[_deepcopy_fallback(k, seen)] = _deepcopy_fallback(v, seen) + end + local mt = getmetatable(obj) + if mt then setmetatable(res, mt) end + return res +end + +local function DeepCopy(obj) + if _G.UTILS and type(UTILS.DeepCopy) == 'function' then + return UTILS.DeepCopy(obj) + end + return _deepcopy_fallback(obj) +end + +-- Deep-merge src into dst (recursively). Arrays/lists in src replace dst. +local function DeepMerge(dst, src) + if type(dst) ~= 'table' or type(src) ~= 'table' then return src end + for k, v in pairs(src) do + if type(v) == 'table' then + local isArray = (rawget(v, 1) ~= nil) + if isArray then + dst[k] = DeepCopy(v) + else + dst[k] = DeepMerge(dst[k] or {}, v) + end + else + dst[k] = v + end + end + return dst +end + +local function _trim(value) + if type(value) ~= 'string' then return nil end + return value:match('^%s*(.-)%s*$') +end + +local function _addUniqueString(out, seen, value) + local v = _trim(value) + if not v or v == '' then return end + if not seen[v] then + seen[v] = true + out[#out + 1] = v + end +end + +local function _collectTypesFromBuilder(builder) + local out = {} + if type(builder) ~= 'function' then return out end + local ok, template = pcall(builder, { x = 0, y = 0, z = 0 }, 0) + if not ok or type(template) ~= 'table' then return out end + local units = template.units + if type(units) ~= 'table' then return out end + local seen = {} + for _,unit in pairs(units) do + if type(unit) == 'table' then + _addUniqueString(out, seen, unit.type) + end + end + return out +end + +local _unitTypeCache = {} + +local function _tableHasEntries(tbl) + if type(tbl) ~= 'table' then return false end + for _,_ in pairs(tbl) do return true end + return false +end + +local function _tableSize(tbl) + if type(tbl) ~= 'table' then return 0 end + local count = 0 + for _,_ in pairs(tbl) do count = count + 1 end + return count +end + +local function _isUnitDatabaseReady() + local dbRoot = rawget(_G, 'db') + if type(dbRoot) ~= 'table' then return false, 'missing' end + local unitByType = dbRoot.unit_by_type + if type(unitByType) ~= 'table' then return false, 'no_unit_by_type' end + if _tableHasEntries(unitByType) then return true, 'ok' end + if _tableHasEntries(dbRoot.units) or _tableHasEntries(dbRoot.Units) then + -- Older builds expose data under units/Units before unit_by_type is populated + return true, 'ok' + end + return false, 'empty' +end + +local function _unitTypeExists(typeName) + local key = _trim(typeName) + if not key or key == '' then return false end + if _unitTypeCache[key] ~= nil then return _unitTypeCache[key] end + + local exists = false + local visited = {} + + local dbRoot = rawget(_G, 'db') + + -- Fast-path: common lookup table exposed by DCS + if type(dbRoot) == 'table' and type(dbRoot.unit_by_type) == 'table' then + if dbRoot.unit_by_type[key] ~= nil then + _unitTypeCache[key] = true + return true + end + end + + local function walk(tbl) + if exists or type(tbl) ~= 'table' or visited[tbl] then return end + visited[tbl] = true + + if tbl.type == key or tbl.Type == key or tbl.unitType == key or tbl.typeName == key or tbl.Name == key then + exists = true + return + end + + for k,v in pairs(tbl) do + if type(k) == 'string' and k == key then + exists = true + return + end + if type(v) == 'string' then + if (k == 'type' or k == 'Type' or k == 'unitType' or k == 'typeName' or k == 'Name') and v == key then + exists = true + return + end + elseif type(v) == 'table' then + walk(v) + if exists then return end + end + end + end + + if type(dbRoot) == 'table' then + if dbRoot.units then walk(dbRoot.units) end + if not exists and dbRoot.Units then walk(dbRoot.Units) end + if not exists and dbRoot.unit_by_type then walk(dbRoot.unit_by_type) end + end + + _unitTypeCache[key] = exists + return exists +end + +-- Spatial indexing helpers for performance optimization +local function _getSpatialGridKey(x, z) + local gridSize = CTLD._spatialGridSize or 500 + local gx = math.floor(x / gridSize) + local gz = math.floor(z / gridSize) + return string.format("%d_%d", gx, gz) +end + +local function _addToSpatialGrid(name, meta, itemType) + if not meta or not meta.point then return end + local key = _getSpatialGridKey(meta.point.x, meta.point.z) + CTLD._spatialGrid[key] = CTLD._spatialGrid[key] or { crates = {}, troops = {} } + if itemType == 'crate' then + CTLD._spatialGrid[key].crates[name] = meta + elseif itemType == 'troops' then + CTLD._spatialGrid[key].troops[name] = meta + end +end + +local function _removeFromSpatialGrid(name, point, itemType) + if not point then return end + local key = _getSpatialGridKey(point.x, point.z) + local cell = CTLD._spatialGrid[key] + if cell then + if itemType == 'crate' then + cell.crates[name] = nil + elseif itemType == 'troops' then + cell.troops[name] = nil + end + -- Clean up empty cells + if not next(cell.crates) and not next(cell.troops) then + CTLD._spatialGrid[key] = nil + end + end +end + +local function _getNearbyFromSpatialGrid(x, z, maxDistance) + local gridSize = CTLD._spatialGridSize or 500 + local cellRadius = math.ceil(maxDistance / gridSize) + 1 + local centerGX = math.floor(x / gridSize) + local centerGZ = math.floor(z / gridSize) + + local nearby = { crates = {}, troops = {} } + for dx = -cellRadius, cellRadius do + for dz = -cellRadius, cellRadius do + local key = string.format("%d_%d", centerGX + dx, centerGZ + dz) + local cell = CTLD._spatialGrid[key] + if cell then + for name, meta in pairs(cell.crates) do + nearby.crates[name] = meta + end + for name, meta in pairs(cell.troops) do + nearby.troops[name] = meta + end + end + end + end + return nearby +end + +local function _isIn(list, value) + for _,v in ipairs(list or {}) do if v == value then return true end end + return false +end + +local function _vec3(x, y, z) + return { x = x, y = y, z = z } +end + +local function _distance3d(a, b) + if not a or not b then return math.huge end + local dx = (a.x or 0) - (b.x or 0) + local dy = (a.y or 0) - (b.y or 0) + local dz = (a.z or 0) - (b.z or 0) + return math.sqrt(dx * dx + dy * dy + dz * dz) +end + +local function _unitHasAttribute(unit, attr) + if not unit or not attr then return false end + local ok, res = pcall(function() return unit:hasAttribute(attr) end) + return ok and res == true +end + +local function _isDcsInfantry(unit) + if not unit then return false end + local tn = string.lower(unit:getTypeName() or '') + if tn:find('infantry') or tn:find('soldier') or tn:find('paratrooper') or tn:find('manpad') then + return true + end + return _unitHasAttribute(unit, 'Infantry') +end + +local function _hasLineOfSight(fromPos, toPos) + if not (fromPos and toPos) then return false end + local p1 = _vec3(fromPos.x, (fromPos.y or 0) + 2.0, fromPos.z) + local p2 = _vec3(toPos.x, (toPos.y or 0) + 2.0, toPos.z) + local ok, visible = pcall(function() return land.isVisible(p1, p2) end) + return ok and visible == true +end + +local function _jtacTargetScore(unit) + if not unit then return -1 end + if _unitHasAttribute(unit, 'SAM SR') or _unitHasAttribute(unit, 'SAM TR') or _unitHasAttribute(unit, 'SAM CC') or _unitHasAttribute(unit, 'SAM LN') then + return 120 + end + if _unitHasAttribute(unit, 'Air Defence') or _unitHasAttribute(unit, 'AAA') then + return 100 + end + if _unitHasAttribute(unit, 'IR Guided SAM') or _unitHasAttribute(unit, 'SAM') then + return 95 + end + if _unitHasAttribute(unit, 'Artillery') or _unitHasAttribute(unit, 'MLRS') then + return 80 + end + if _unitHasAttribute(unit, 'Armor') or _unitHasAttribute(unit, 'Tanks') then + return 70 + end + if _unitHasAttribute(unit, 'APC') or _unitHasAttribute(unit, 'IFV') then + return 60 + end + if _isDcsInfantry(unit) then + return 20 + end + return 40 +end + +local function _jtacTargetScoreProfiled(unit, profile) + -- Base score first + local base = _jtacTargetScore(unit) + local mult = 1.0 + local attribs = { + sam = _unitHasAttribute(unit, 'SAM') or _unitHasAttribute(unit, 'SAM SR') or _unitHasAttribute(unit, 'SAM TR') or _unitHasAttribute(unit, 'SAM LN') or _unitHasAttribute(unit, 'IR Guided SAM'), + aaa = _unitHasAttribute(unit, 'Air Defence') or _unitHasAttribute(unit, 'AAA'), + armor = _unitHasAttribute(unit, 'Armor') or _unitHasAttribute(unit, 'Tanks'), + ifv = _unitHasAttribute(unit, 'APC') or _unitHasAttribute(unit, 'Infantry Fighting Vehicle'), + arty = _unitHasAttribute(unit, 'Artillery') or _unitHasAttribute(unit, 'MLRS'), + inf = _isDcsInfantry(unit) + } + if profile == 'threat' then + if attribs.sam then mult = 1.6 elseif attribs.aaa then mult = 1.4 elseif attribs.armor then mult = 1.25 elseif attribs.ifv then mult = 1.15 elseif attribs.arty then mult = 1.1 elseif attribs.inf then mult = 0.8 end + elseif profile == 'armor' then + if attribs.armor then mult = 1.5 elseif attribs.ifv then mult = 1.3 elseif attribs.sam then mult = 1.25 elseif attribs.aaa then mult = 1.2 elseif attribs.arty then mult = 1.1 elseif attribs.inf then mult = 0.85 end + elseif profile == 'soft' then + if attribs.aaa then mult = 1.5 elseif attribs.arty then mult = 1.4 elseif attribs.inf then mult = 1.2 elseif attribs.ifv then mult = 1.1 elseif attribs.armor then mult = 1.0 elseif attribs.sam then mult = 0.9 end + elseif profile == 'inf_last' then + if attribs.inf then mult = 0.6 end + else + -- balanced; slight bump to SAM/AAA + if attribs.sam then mult = 1.3 elseif attribs.aaa then mult = 1.2 end + end + return math.floor(base * mult + 0.5) +end + +_msgGroup = function(group, text, t) + if not group then return end + MESSAGE:New(text, t or CTLD.Config.MessageDuration):ToGroup(group) +end + +_msgCoalition = function(side, text, t) + MESSAGE:New(text, t or CTLD.Config.MessageDuration):ToCoalition(side) +end + +-- ========================= +-- Logging Helpers +-- ========================= +-- Log levels: 0=NONE, 1=ERROR, 2=INFO, 3=VERBOSE, 4=DEBUG +local LOG_NONE = 0 +local LOG_ERROR = 1 +local LOG_INFO = 2 +local LOG_VERBOSE = 3 +local LOG_DEBUG = 4 + +local _logLevelLabels = { + [LOG_ERROR] = 'ERROR', + [LOG_INFO] = 'INFO', + [LOG_VERBOSE] = 'VERBOSE', + [LOG_DEBUG] = 'DEBUG', +} + +_log = function(level, msg) + local logLevel = CTLD.Config and CTLD.Config.LogLevel or LOG_INFO + if level > logLevel or level == LOG_NONE then return end + local label = _logLevelLabels[level] or tostring(level) + local text = string.format('[Moose_CTLD][%s] %s', label, tostring(msg)) + if env and env.info then + env.info(text) + else + print(text) + end +end + +_logError = function(msg) _log(LOG_ERROR, msg) end +_logInfo = function(msg) _log(LOG_INFO, msg) end +-- Treat VERBOSE as DEBUG-only to reduce noise unless LogLevel is 4 +_logVerbose = function(msg) _log(LOG_DEBUG, msg) end +_logDebug = function(msg) _log(LOG_DEBUG, msg) end + +-- Emits tagged messages regardless of configured LogLevel (used by explicit debug toggles) +_logImmediate = function(tag, msg) + local text = string.format('[Moose_CTLD][%s] %s', tag or 'DEBUG', tostring(msg)) + if env and env.info then + env.info(text) + else + print(text) + end +end + +local function _debugCrateSight(kind, params) + if not params or not params.unit then return end + CTLD._debugSightState = CTLD._debugSightState or {} + local key = string.format('%s:%s', kind, params.unit) + local state = CTLD._debugSightState[key] or {} + local now = params.now or timer.getTime() + local interval = params.interval or 1.0 + local step = params.step or 10.0 + local name = params.name or 'none' + local distance = params.distance or math.huge + local crateCount = params.count or 0 + local troopCount = params.troops or 0 + local shouldLog = false + + if not state.lastTime or interval <= 0 or (now - state.lastTime) >= interval then + shouldLog = true + end + if state.lastName ~= name then + shouldLog = true + end + if state.lastCount ~= crateCount or state.lastTroops ~= troopCount then + shouldLog = true + end + if distance ~= math.huge then + if not state.lastDist or math.abs(distance - state.lastDist) >= step then + shouldLog = true + end + elseif state.lastDist ~= math.huge then + shouldLog = true + end + + if not shouldLog then return end + + local distText = (distance ~= math.huge) and string.format('d=%.1f', distance) or 'd=n/a' + local summaryParts = { string.format('%d crate(s)', crateCount) } + if troopCount and troopCount > 0 then + table.insert(summaryParts, string.format('%d troop group(s)', troopCount)) + end + local summary = table.concat(summaryParts, ', ') + local noteParts = {} + if params.radius then table.insert(noteParts, string.format('radius=%dm', math.floor(params.radius))) end + if params.note then table.insert(noteParts, params.note) end + local noteText = (#noteParts > 0) and (' [' .. table.concat(noteParts, ' ') .. ']') or '' + local targetLabel = params.targetLabel or 'nearest' + local typeHint = params.typeHint and (' type=' .. params.typeHint) or '' + _logImmediate(kind, string.format('Unit %s tracking %s; %s=%s %s%s%s', + params.unit, summary, targetLabel, name, distText, typeHint, noteText)) + + state.lastTime = now + state.lastName = name + state.lastDist = distance + state.lastCount = crateCount + state.lastTroops = troopCount + CTLD._debugSightState[key] = state +end + +function CTLD:_collectEntryUnitTypes(entry) + local collected = {} + local seen = {} + if type(entry) ~= 'table' then return collected end + _addUniqueString(collected, seen, entry.unitType) + if type(entry.unitTypes) == 'table' then + for _,v in ipairs(entry.unitTypes) do + _addUniqueString(collected, seen, v) + end + end + if entry.build then + local fromBuilder = _collectTypesFromBuilder(entry.build) + for _,v in ipairs(fromBuilder) do + _addUniqueString(collected, seen, v) + end + end + return collected +end + +function CTLD:_validateCatalogUnitTypes() + if self._catalogValidated then return end + if self.Config and self.Config.SkipCatalogValidation then return end + + local dbReady, dbReason = _isUnitDatabaseReady() + if not dbReady then + if not self._catalogValidationDebugLogged then + self._catalogValidationDebugLogged = true + local dbRoot = rawget(_G, 'db') + local unitByTypeType = dbRoot and type(dbRoot.unit_by_type) or 'nil' + local unitsType = dbRoot and type(dbRoot.units) or 'nil' + local unitsAltType = dbRoot and type(dbRoot.Units) or 'nil' + local sampleKey = 'Soldier M4' + local sampleValue = (dbRoot and type(dbRoot.unit_by_type) == 'table') and dbRoot.unit_by_type[sampleKey] or nil + _logDebug(string.format('Catalog validation DB probe: reason=%s db=%s unit_by_type=%s units=%s Units=%s sample[%s]=%s', + tostring(dbReason), type(dbRoot), unitByTypeType, unitsType, unitsAltType, sampleKey, tostring(sampleValue))) + end + if dbReason == 'missing' or dbReason == 'no_unit_by_type' then + _logInfo('Catalog validation skipped: DCS mission scripting environment does not expose the global unit database (db/unit_by_type)') + self._catalogValidated = true + return + end + + self._catalogValidationRetries = (self._catalogValidationRetries or 0) + 1 + local retry = self._catalogValidationRetries + local retryLimit = 60 + if retry > retryLimit then + _logError('Catalog validation skipped: DCS unit database not available after repeated attempts') + self._catalogValidated = true + self._catalogValidationScheduled = nil + return + end + if timer and timer.scheduleFunction and timer.getTime then + if not self._catalogValidationScheduled then + self._catalogValidationScheduled = true + local delay = math.min(10, 1 + retry) + local instance = self + timer.scheduleFunction(function() + instance._catalogValidationScheduled = nil + instance._catalogValidated = nil + instance:_validateCatalogUnitTypes() + return nil + end, {}, timer.getTime() + delay) + end + if retry == 1 or (retry % 5 == 0) then + _logInfo(string.format('Catalog validation deferred: DCS unit database not ready yet (retry %d/%d)', retry, retryLimit)) + end + else + if retry == 1 then + _logInfo('Catalog validation deferred: DCS unit database not ready and timer API unavailable') + end + if retry >= 3 then + _logError('Catalog validation skipped: cannot access DCS unit database or schedule retries') + self._catalogValidated = true + end + end + return + end + + if self._catalogValidationRetries and self._catalogValidationRetries > 0 then + _unitTypeCache = {} + end + self._catalogValidationRetries = 0 + + local missing = {} + + local function markMissing(typeName, source) + local key = _trim(typeName) + if not key or key == '' then return end + local list = missing[key] + if not list then + list = {} + missing[key] = list + end + for _,ref in ipairs(list) do + if ref == source then return end + end + list[#list + 1] = source + end + + for key,entry in pairs(self.Config.CrateCatalog or {}) do + local types = self:_collectEntryUnitTypes(entry) + for _,unitType in ipairs(types) do + if not _unitTypeExists(unitType) then + markMissing(unitType, 'crate:'..tostring(key)) + end + end + end + + local troopDefs = (self.Config.Troops and self.Config.Troops.TroopTypes) or {} + for label,def in pairs(troopDefs) do + local function check(list, suffix) + for _,unitType in ipairs(list or {}) do + if not _unitTypeExists(unitType) then + markMissing(unitType, string.format('troop:%s:%s', tostring(label), suffix)) + end + end + end + check(def.unitsBlue, 'blue') + check(def.unitsRed, 'red') + check(def.units, 'fallback') + end + + if next(missing) then + for typeName, sources in pairs(missing) do + _logError(string.format('Catalog validation: unknown unit type "%s" referenced by %s', typeName, table.concat(sources, ', '))) + end + else + _logInfo('Catalog validation: all referenced unit types resolved in DCS database') + end + + self._catalogValidated = true +end + +-- ========================= +-- Zone and Unit Utilities +-- ========================= + +local function _findZone(z) + if z.name then + local mz = ZONE:FindByName(z.name) + if mz then return mz end + end + if z.coord then + local r = z.radius or 150 + -- Create a Vec2 in a way that works even if MOOSE VECTOR2 class isn't available + local function _mkVec2(x, z) + if VECTOR2 and VECTOR2.New then return VECTOR2:New(x, z) end + -- DCS uses Vec2 with fields x and y + return { x = x, y = z } + end + local v = _mkVec2(z.coord.x, z.coord.z) + return ZONE_RADIUS:New(z.name or ('CTLD_ZONE_'..math.random(10000,99999)), v, r) + end + return nil +end + +local function _getUnitType(unit) + local ud = unit and unit:GetDesc() or nil + return ud and ud.typeName or unit and unit:GetTypeName() +end + +-- Get aircraft capacity limits for crates and troops +-- Returns { maxCrates, maxTroops, maxWeightKg } for the given unit +-- Falls back to DefaultCapacity if aircraft type not specifically configured +local function _getAircraftCapacity(unit) + if not unit then + return { + maxCrates = CTLD.Config.DefaultCapacity.maxCrates or 4, + maxTroops = CTLD.Config.DefaultCapacity.maxTroops or 12, + maxWeightKg = CTLD.Config.DefaultCapacity.maxWeightKg or 2000 + } + end + + local unitType = _getUnitType(unit) + local capacities = CTLD.Config.AircraftCapacities or {} + local specific = capacities[unitType] + + if specific then + return { + maxCrates = specific.maxCrates or 0, + maxTroops = specific.maxTroops or 0, + maxWeightKg = specific.maxWeightKg or 0 + } + end + + -- Fallback to defaults + local defaults = CTLD.Config.DefaultCapacity or {} + return { + maxCrates = defaults.maxCrates or 4, + maxTroops = defaults.maxTroops or 12, + maxWeightKg = defaults.maxWeightKg or 2000 + } +end + +-- Check if a unit is in the air (flying/hovering, not landed) +-- Based on original CTLD logic: uses DCS InAir() API plus velocity threshold +-- Returns: true if airborne, false if landed/grounded +local function _isUnitInAir(unit) + if not unit then return false end + + -- First check: DCS API InAir() - if it says we're on ground, trust it + if not unit:InAir() then + return false + end + + -- Second check: velocity threshold (handles edge cases where InAir() is true but we're stationary on ground) + -- Less than 0.05 m/s (~0.1 knots) = essentially stopped = consider landed + -- NOTE: AI can hold perfect hover, so only apply this check for player-controlled units + local vel = unit:GetVelocity() + if vel and unit:GetPlayerName() then + local vx = vel.x or 0 + local vz = vel.z or 0 + local groundSpeed = math.sqrt((vx * vx) + (vz * vz)) -- horizontal speed in m/s + if groundSpeed < 0.05 then + return false -- stopped on ground + end + end + + return true -- airborne +end + +-- Get ground speed in m/s for a unit +local function _getGroundSpeed(unit) + if not unit then return 0 end + local vel = unit:GetVelocity() + if not vel or not vel.x or not vel.z then return 0 end + return math.sqrt(vel.x * vel.x + vel.z * vel.z) +end + +-- Calculate height above ground level for a unit (meters) +local function _getUnitAGL(unit) + if not unit then return math.huge end + local pos = unit:GetPointVec3() + if not pos then return math.huge end + local terrain = 0 + if land and land.getHeight then + local success, h = pcall(land.getHeight, { x = pos.x, y = pos.z }) + if success and type(h) == 'number' then + terrain = h + end + end + return pos.y - terrain +end + +local function _nearestZonePoint(unit, list) + if not unit or not unit:IsAlive() then return nil end + -- Get unit position using DCS API to avoid dependency on MOOSE point methods + local uname = unit:GetName() + local du = Unit.getByName and Unit.getByName(uname) or nil + if not du or not du:getPoint() then return nil end + local up = du:getPoint() + local ux, uz = up.x, up.z + + local best, bestd = nil, nil + for _, z in ipairs(list or {}) do + local mz = _findZone(z) + local zx, zz + if z and z.name and trigger and trigger.misc and trigger.misc.getZone then + local tz = trigger.misc.getZone(z.name) + if tz and tz.point then zx, zz = tz.point.x, tz.point.z end + end + if (not zx) and mz and mz.GetPointVec3 then + local zp = mz:GetPointVec3() + -- Try to read numeric fields directly to avoid method calls + if zp and type(zp) == 'table' and zp.x and zp.z then zx, zz = zp.x, zp.z end + end + if (not zx) and z and z.coord then + zx, zz = z.coord.x, z.coord.z + end + + if zx and zz then + local dx = (zx - ux) + local dz = (zz - uz) + local d = math.sqrt(dx*dx + dz*dz) + if (not bestd) or d < bestd then best, bestd = mz, d end + end + end + if not best then return nil, nil end + return best, bestd +end + +-- Check if a unit is inside a Pickup Zone. Returns (inside:boolean, zone, dist, radius) +function CTLD:_isUnitInsidePickupZone(unit, activeOnly) + if not unit or not unit:IsAlive() then return false, nil, nil, nil end + local zone, dist + if activeOnly then + zone, dist = self:_nearestActivePickupZone(unit) + else + local defs = self.Config and self.Config.Zones and self.Config.Zones.PickupZones or {} + zone, dist = _nearestZonePoint(unit, defs) + end + if not zone or not dist then return false, nil, nil, nil end + local r = self:_getZoneRadius(zone) + if not r then return false, zone, dist, nil end + return dist <= r, zone, dist, r +end + +-- Helper: get nearest ACTIVE pickup zone (by configured list), respecting CTLD's active flags +function CTLD:_collectActivePickupDefs() + local out = {} + local added = {} -- Track added zone names to prevent duplicates + + -- From config-defined zones + local defs = (self.Config and self.Config.Zones and self.Config.Zones.PickupZones) or {} + for _, z in ipairs(defs) do + local n = z.name + if (not n) or self._ZoneActive.Pickup[n] ~= false then + table.insert(out, z) + if n then added[n] = true end + end + end + + -- From MOOSE zone objects if present (skip if already added from config) + if self.PickupZones and #self.PickupZones > 0 then + for _, mz in ipairs(self.PickupZones) do + if mz and mz.GetName then + local n = mz:GetName() + if self._ZoneActive.Pickup[n] ~= false and not added[n] then + table.insert(out, { name = n }) + added[n] = true + end + end + end + end + return out +end + +function CTLD:_nearestActivePickupZone(unit) + return _nearestZonePoint(unit, self:_collectActivePickupDefs()) +end + +local function _defaultCountryForSide(side) + if not (country and country.id) then return nil end + if side == coalition.side.BLUE then + return country.id.USA or country.id.CJTF_BLUE + elseif side == coalition.side.RED then + return country.id.RUSSIA or country.id.CJTF_RED + elseif side == coalition.side.NEUTRAL then + return country.id.UN or country.id.CJTF_NEUTRAL or country.id.USA + end + return nil +end + +local function _coalitionAddGroup(side, category, groupData, ctldConfig) + -- Enforce side/category in groupData just to be safe + groupData.category = category + local countryId = ctldConfig and ctldConfig.CountryId + if not countryId then + countryId = _defaultCountryForSide(side) + if ctldConfig then ctldConfig.CountryId = countryId end + end + if countryId then + groupData.country = countryId + end + + -- Apply air-spawn altitude adjustment for AIRPLANE category if DroneAirSpawn is enabled + if category == Group.Category.AIRPLANE and ctldConfig and ctldConfig.DroneAirSpawn and ctldConfig.DroneAirSpawn.Enabled then + if groupData.units and #groupData.units > 0 then + local altAGL = ctldConfig.DroneAirSpawn.AltitudeMeters or 3048 + local speed = ctldConfig.DroneAirSpawn.SpeedMps or 120 + + for _, unit in ipairs(groupData.units) do + -- Get terrain height at spawn location + local terrainHeight = land.getHeight({x = unit.x, y = unit.y}) + -- Set altitude ASL (Above Sea Level) + unit.alt = terrainHeight + altAGL + unit.speed = speed + -- Ensure unit has appropriate spawn type set + unit.alt_type = "BARO" -- Barometric altitude + end + end + end + + local addCountry = countryId or side + return coalition.addGroup(addCountry, category, groupData) +end + +local function _spawnStaticCargo(side, point, cargoType, name) + local static = { + name = name, + type = cargoType, + x = point.x, + y = point.z, + heading = 0, + canCargo = true, + } + return coalition.addStaticObject(side, static) +end + +local function _vec3FromUnit(unit) + local p = unit:GetPointVec3() + return { x = p.x, y = p.y, z = p.z } +end + +-- Update DCS internal cargo weight based on loaded crates and troops +-- This affects aircraft performance (hover, fuel consumption, speed, etc.) +local function _updateCargoWeight(group) + if not group then return end + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + + local gname = group:GetName() + local totalWeight = 0 + + -- Add weight from loaded crates + local crateData = CTLD._loadedCrates[gname] + if crateData and crateData.totalWeightKg then + totalWeight = totalWeight + crateData.totalWeightKg + end + + -- Add weight from loaded troops + local troopData = CTLD._troopsLoaded[gname] + if troopData and troopData.weightKg then + totalWeight = totalWeight + troopData.weightKg + end + + -- Call DCS API to set internal cargo weight (affects flight model) + local unitName = unit:GetName() + if unitName and trigger and trigger.action and trigger.action.setUnitInternalCargo then + pcall(function() + trigger.action.setUnitInternalCargo(unitName, totalWeight) + end) + end +end + +-- Unique id generator for map markups (lines/circles/text) +local function _nextMarkupId() + CTLD._NextMarkupId = (CTLD._NextMarkupId or 10000) + 1 + return CTLD._NextMarkupId +end + +local function _spawnCrateSmoke(position, color, config, crateId) + if not position or not color then return end + + -- Parse config with defaults + local enabled = true + local autoRefresh = false + local refreshInterval = 240 + local maxRefreshDuration = 600 + local offsetMeters = 5 + local offsetRandom = true + local offsetVertical = 2 + + if config then + enabled = (config.Enabled ~= false) -- default true + autoRefresh = (config.AutoRefresh == true) + refreshInterval = tonumber(config.RefreshInterval) or 240 + maxRefreshDuration = tonumber(config.MaxRefreshDuration) or 600 + offsetMeters = tonumber(config.OffsetMeters) or 5 + offsetRandom = (config.OffsetRandom ~= false) -- default true + offsetVertical = tonumber(config.OffsetVertical) or 2 + end + + if not enabled then return end + + -- Compute ground-adjusted position with offsets + local sx, sz = position.x, position.z + local sy = position.y or 0 + if sy == 0 and land and land.getHeight then + local ok, h = pcall(land.getHeight, { x = sx, y = sz }) + if ok and type(h) == 'number' then sy = h end + end + + -- Apply lateral and vertical offsets + local ox, oz = 0, 0 + if offsetMeters > 0 then + local angle = offsetRandom and (math.random() * 2 * math.pi) or 0 + ox = offsetMeters * math.cos(angle) + oz = offsetMeters * math.sin(angle) + end + local smokePos = { x = sx + ox, y = sy + offsetVertical, z = sz + oz } + + -- Emit smoke now + local coord = COORDINATE:New(smokePos.x, smokePos.y, smokePos.z) + if coord and coord.Smoke then + if color == trigger.smokeColor.Green then + coord:SmokeGreen() + elseif color == trigger.smokeColor.Red then + coord:SmokeRed() + elseif color == trigger.smokeColor.White then + coord:SmokeWhite() + elseif color == trigger.smokeColor.Orange then + coord:SmokeOrange() + elseif color == trigger.smokeColor.Blue then + coord:SmokeBlue() + else + coord:SmokeGreen() + end + else + trigger.action.smoke(smokePos, color) + end + + -- Record smoke meta for global refresh loop instead of per-crate timer + if autoRefresh and crateId and refreshInterval > 0 and maxRefreshDuration > 0 then + CTLD._crates = CTLD._crates or {} + local meta = CTLD._crates[crateId] + if meta then + meta._smoke = meta._smoke or {} + if not meta._smoke.enabled then + meta._smoke.enabled = true + end + meta._smoke.auto = true + meta._smoke.startTime = timer.getTime() + meta._smoke.nextTime = timer.getTime() + refreshInterval + meta._smoke.interval = refreshInterval + meta._smoke.maxDuration = maxRefreshDuration + meta._smoke.color = color + meta._smoke.offsetMeters = offsetMeters + meta._smoke.offsetRandom = offsetRandom + meta._smoke.offsetVertical = offsetVertical + + -- Ensure background ticker(s) are running + if CTLD._ensureBackgroundTasks then + CTLD:_ensureBackgroundTasks() + end + end + end +end + +-- Clean up smoke refresh schedule for a crate +local function _cleanupCrateSmoke(crateId) + if not crateId then return end + -- Clear legacy per-crate schedule if present + CTLD._smokeRefreshSchedules = CTLD._smokeRefreshSchedules or {} + if CTLD._smokeRefreshSchedules[crateId] then + if CTLD._smokeRefreshSchedules[crateId].funcId then + pcall(timer.removeFunction, CTLD._smokeRefreshSchedules[crateId].funcId) + end + CTLD._smokeRefreshSchedules[crateId] = nil + end + -- Clear new smoke meta so the global loop stops refreshing + if CTLD._crates and CTLD._crates[crateId] then + CTLD._crates[crateId]._smoke = nil + end +end + +-- Central schedule registry helpers +function CTLD:_registerSchedule(key, funcId) + self._schedules = self._schedules or {} + if self._schedules[key] then + pcall(timer.removeFunction, self._schedules[key]) + end + self._schedules[key] = funcId +end + +function CTLD:_cancelSchedule(key) + if self._schedules and self._schedules[key] then + pcall(timer.removeFunction, self._schedules[key]) + self._schedules[key] = nil + end +end + +-- Track one-shot timers for cleanup +local function _trackOneShotTimer(id) + if id and CTLD._pendingTimers then + CTLD._pendingTimers[id] = true + end + return id +end + +-- Clean up one-shot timers when they execute +local function _wrapOneShotCallback(callback) + return function(...) + local result = callback(...) + -- If callback returns a time, it's recurring - don't remove + if not result or type(result) ~= 'number' then + local trackedId = nil + for id, _ in pairs(CTLD._pendingTimers or {}) do + if id == callback then + trackedId = id + break + end + end + if trackedId and CTLD._pendingTimers then + CTLD._pendingTimers[trackedId] = nil + end + end + return result + end +end + +local function _removeMenuHandle(menu) + if not menu or type(menu) ~= 'table' then return end + + local function _menuIsRegistered(m) + if not MENU_INDEX then return true end + if not m.Group or not m.MenuText then return true end + local okPath, path = pcall(function() + return MENU_INDEX:ParentPath(m.ParentMenu, m.MenuText) + end) + if not okPath or not path then + return false + end + local okHas, registered = pcall(function() + return MENU_INDEX:HasGroupMenu(m.Group, path) + end) + if not okHas then + return false + end + return registered == m + end + + if menu.Remove and _menuIsRegistered(menu) then + local ok, err = pcall(function() menu:Remove() end) + if not ok then + _logVerbose(string.format('[MenuCleanup] Failed to remove menu %s: %s', tostring(menu.MenuText), tostring(err))) + end + end + + if menu.Destroy then pcall(function() menu:Destroy() end) end + if menu.Delete then pcall(function() menu:Delete() end) end +end + +local function _countTableEntries(t) + if not t then return 0 end + local n = 0 + for _ in pairs(t) do n = n + 1 end + return n +end + +local function _cleanupGroupMenus(ctld, groupName) + if not (ctld and groupName) then return end + if ctld.MenusByGroup and ctld.MenusByGroup[groupName] then + _removeMenuHandle(ctld.MenusByGroup[groupName]) + ctld.MenusByGroup[groupName] = nil + end + if CTLD._inStockMenus and CTLD._inStockMenus[groupName] then + for _, menu in pairs(CTLD._inStockMenus[groupName]) do + _removeMenuHandle(menu) + end + CTLD._inStockMenus[groupName] = nil + end +end + +local function _clearPerGroupCaches(groupName) + if not groupName then return end + local caches = { + CTLD._troopsLoaded, + CTLD._loadedCrates, + CTLD._loadedTroopTypes, + CTLD._deployedTroops, + CTLD._buildConfirm, + CTLD._buildCooldown, + CTLD._medevacUnloadStates, + CTLD._medevacLoadStates, + CTLD._medevacEnrouteStates, + CTLD._coachOverride, + } + for _, tbl in ipairs(caches) do + if tbl then tbl[groupName] = nil end + end + if CTLD._msgState then + CTLD._msgState['GRP:'..groupName] = nil + end + + -- Note: One-shot timers are now self-cleaning via wrapper, but we log for visibility + _logVerbose(string.format('[CTLD] Cleared caches for group %s', groupName)) +end + +local function _clearPerUnitCachesForGroup(group) + if not group then return end + local units + local ok, res = pcall(function() return group:GetUnits() end) + if ok and type(res) == 'table' then + units = res + else + local okUnit, unit = pcall(function() return group:GetUnit(1) end) + if okUnit and unit then units = { unit } end + end + if not units then return end + for _, unit in ipairs(units) do + if unit then + local uname = unit.GetName and unit:GetName() + if uname then + if CTLD._hoverState then CTLD._hoverState[uname] = nil end + if CTLD._unitLast then CTLD._unitLast[uname] = nil end + if CTLD._coachState then CTLD._coachState[uname] = nil end + end + end + end +end + +local function _groupHasAliveTransport(group, allowedTypes) + if not (group and allowedTypes) then return false end + local units + local ok, res = pcall(function() return group:GetUnits() end) + if ok and type(res) == 'table' then + units = res + else + local okUnit, unit = pcall(function() return group:GetUnit(1) end) + if okUnit and unit then units = { unit } end + end + if not units then return false end + for _, unit in ipairs(units) do + if unit and unit.IsAlive and unit:IsAlive() then + local typ = _getUnitType(unit) + if typ and _isIn(allowedTypes, typ) then + return true + end + end + end + return false +end + +function CTLD:_cleanupTransportGroup(group, groupName) + local gname = groupName + if not gname and group and group.GetName then + gname = group:GetName() + end + if not gname then return end + + _cleanupGroupMenus(self, gname) + _clearPerGroupCaches(gname) + + if group then + _clearPerUnitCachesForGroup(group) + else + local mooseGroup = nil + if GROUP and GROUP.FindByName then + local ok, res = pcall(function() return GROUP:FindByName(gname) end) + if ok then mooseGroup = res end + end + if mooseGroup then _clearPerUnitCachesForGroup(mooseGroup) end + end + + _logDebug(string.format('[MenuCleanup] Cleared CTLD state for group %s', gname)) +end + +function CTLD:_removeDynamicSalvageZone(zoneName, reason) + if not zoneName then return end + + if self.SalvageDropZones then + for idx = #self.SalvageDropZones, 1, -1 do + local zone = self.SalvageDropZones[idx] + if zone and zone.GetName and zone:GetName() == zoneName then + table.remove(self.SalvageDropZones, idx) + end + end + end + + if self._ZoneDefs and self._ZoneDefs.SalvageDropZones then + self._ZoneDefs.SalvageDropZones[zoneName] = nil + end + + if self._ZoneActive and self._ZoneActive.SalvageDrop then + self._ZoneActive.SalvageDrop[zoneName] = nil + end + + if self._DynamicSalvageZones then + self._DynamicSalvageZones[zoneName] = nil + end + + if self._DynamicSalvageQueue then + for idx = #self._DynamicSalvageQueue, 1, -1 do + if self._DynamicSalvageQueue[idx] == zoneName then + table.remove(self._DynamicSalvageQueue, idx) + end + end + end + + self:_removeZoneDrawing('SalvageDrop', zoneName) + _logInfo(string.format('[SlingLoadSalvage] Removed dynamic salvage zone %s (%s)', zoneName, reason or 'cleanup')) + local ok, err = pcall(function() self:DrawZonesOnMap() end) + if not ok then + _logError(string.format('[SlingLoadSalvage] DrawZonesOnMap failed after removing %s: %s', zoneName, tostring(err))) + end +end + +function CTLD:_enforceDynamicSalvageZoneLimit() + local cfg = self.Config and self.Config.SlingLoadSalvage or nil + if not cfg or not cfg.Enabled then return end + + local zones = self._DynamicSalvageZones + if not zones then return end + + local lifetime = tonumber(cfg.DynamicZoneLifetime or 0) or 0 + local maxZones = tonumber(cfg.MaxDynamicZones or 0) or 0 + local now = timer and timer.getTime and timer.getTime() or 0 + + if lifetime > 0 then + local expired = {} + for name, meta in pairs(zones) do + if meta then + local expiresAt = meta.expiresAt + if not expiresAt and meta.createdAt then + expiresAt = meta.createdAt + lifetime + end + if expiresAt and now >= expiresAt then + table.insert(expired, name) + end + end + end + for _, zname in ipairs(expired) do + self:_removeDynamicSalvageZone(zname, 'expired') + end + end + + if maxZones > 0 and self._DynamicSalvageQueue then + while #self._DynamicSalvageQueue > maxZones do + local oldest = table.remove(self._DynamicSalvageQueue, 1) + if oldest and zones[oldest] then + self:_removeDynamicSalvageZone(oldest, 'max-cap') + end + end + end +end + +-- Global smoke refresh ticker (single loop for all crates) +function CTLD:_ensureGlobalSmokeTicker() + if self._schedules and self._schedules.smokeTicker then return end + + local function tick() + local now = timer.getTime() + if CTLD and CTLD._crates then + for name, meta in pairs(CTLD._crates) do + if meta and meta._smoke and meta._smoke.auto and meta.point then + local s = meta._smoke + if (now - (s.startTime or now)) > (s.maxDuration or 0) then + meta._smoke = nil + elseif now >= (s.nextTime or 0) then + -- Spawn another puff + local pos = { x = meta.point.x, y = 0, z = meta.point.z } + if land and land.getHeight then + local ok, h = pcall(land.getHeight, { x = pos.x, y = pos.z }) + if ok and type(h) == 'number' then pos.y = h end + end + _spawnCrateSmoke(pos, s.color or trigger.smokeColor.Green, { + Enabled = true, + AutoRefresh = false, -- avoid recursion; we manage nextTime here + OffsetMeters = s.offsetMeters or 0, + OffsetRandom = s.offsetRandom ~= false, + OffsetVertical = s.offsetVertical or 0, + }, name) + s.nextTime = now + (s.interval or 240) + end + end + end + end + return timer.getTime() + 10 -- tick every 10s + end + + local id = timer.scheduleFunction(tick, nil, timer.getTime() + 10) + self:_registerSchedule('smokeTicker', id) +end + +-- Periodic GC to prune stale messaging/coach entries and smoke meta +function CTLD:_ensurePeriodicGC() + if self._schedules and self._schedules.periodicGC then return end + + local function gcTick() + local now = timer.getTime() + + -- Coach state: remove units that no longer exist + if CTLD and CTLD._coachState then + for uname, _ in pairs(CTLD._coachState) do + local u = Unit.getByName(uname) + if not u then CTLD._coachState[uname] = nil end + end + end + + -- Message throttle state: remove dead/missing groups + if CTLD and CTLD._msgState then + for scope, _ in pairs(CTLD._msgState) do + local gname = string.match(scope, '^GRP:(.+)$') + if gname then + local g = Group.getByName(gname) + if not g then CTLD._msgState[scope] = nil end + end + end + end + + -- Smoke meta: prune crates without points or exceeded duration + if CTLD and CTLD._crates then + for name, meta in pairs(CTLD._crates) do + if meta and meta._smoke then + local s = meta._smoke + if (not meta.point) or ((now - (s.startTime or now)) > (s.maxDuration or 0)) then + meta._smoke = nil + end + end + end + end + + -- Enforce MEDEVAC crew limit (keep last 100 requests) + if CTLD and CTLD._medevacCrews then + local crewCount = 0 + local crewList = {} + for crewName, crewData in pairs(CTLD._medevacCrews) do + crewCount = crewCount + 1 + table.insert(crewList, { name = crewName, time = crewData.requestTime or 0 }) + end + if crewCount > 100 then + table.sort(crewList, function(a, b) return a.time < b.time end) + local toRemove = crewCount - 100 + for i = 1, toRemove do + local crewName = crewList[i].name + local crewData = CTLD._medevacCrews[crewName] + if crewData and crewData.markerID then + pcall(function() trigger.action.removeMark(crewData.markerID) end) + end + CTLD._medevacCrews[crewName] = nil + end + env.info(string.format('[CTLD][GC] Pruned %d old MEDEVAC crew entries', toRemove)) + end + end + + -- Enforce salvage crate limit (keep last 50 active crates per side) + if CTLD and CTLD._salvageCrates then + local crateBySide = { [coalition.side.BLUE] = {}, [coalition.side.RED] = {} } + for crateName, crateData in pairs(CTLD._salvageCrates) do + if crateData.side then + table.insert(crateBySide[crateData.side], { name = crateName, time = crateData.spawnTime or 0 }) + end + end + for side, crates in pairs(crateBySide) do + if #crates > 50 then + table.sort(crates, function(a, b) return a.time < b.time end) + local toRemove = #crates - 50 + for i = 1, toRemove do + local crateName = crates[i].name + local crateData = CTLD._salvageCrates[crateName] + if crateData and crateData.staticObject and crateData.staticObject.destroy then + pcall(function() crateData.staticObject:destroy() end) + end + CTLD._salvageCrates[crateName] = nil + end + local sideName = (side == coalition.side.BLUE and 'BLUE') or 'RED' + env.info(string.format('[CTLD][GC] Pruned %d old %s salvage crates', toRemove, sideName)) + end + end + end + + -- Clean up stale pending timer references + if CTLD and CTLD._pendingTimers then + local timerCount = 0 + for _ in pairs(CTLD._pendingTimers) do + timerCount = timerCount + 1 + end + if timerCount > 200 then + -- If we have too many pending timers, clear old ones (they may have fired already) + env.info(string.format('[CTLD][GC] Clearing %d stale timer references', timerCount)) + CTLD._pendingTimers = {} + end + end + + return timer.getTime() + 300 -- every 5 minutes + end + + local id = timer.scheduleFunction(gcTick, nil, timer.getTime() + 300) + self:_registerSchedule('periodicGC', id) +end + +function CTLD:_ensureBackgroundTasks() + if self._bgStarted then return end + self._bgStarted = true + self:_ensureGlobalSmokeTicker() + self:_ensurePeriodicGC() + self:_ensureAdaptiveBackgroundLoop() + self:_ensureSlingLoadEventHandler() + self:_startHourlyDiagnostics() +end + +function CTLD:_startHoverScheduler() + local coachCfg = CTLD.HoverCoachConfig or {} + if not coachCfg.enabled or self.HoverSched then return end + local interval = coachCfg.interval or 0.75 + local startDelay = coachCfg.startDelay or interval + self.HoverSched = SCHEDULER:New(nil, function() + local ok, err = pcall(function() self:ScanHoverPickup() end) + if not ok then _logError('HoverSched ScanHoverPickup error: '..tostring(err)) end + end, {}, startDelay, interval) +end + +function CTLD:_startGroundLoadScheduler() + local groundCfg = CTLD.GroundAutoLoadConfig or {} + if not groundCfg.Enabled or self.GroundLoadSched then return end + local interval = 1.0 -- check every second for ground load conditions + self.GroundLoadSched = SCHEDULER:New(nil, function() + local ok, err = pcall(function() self:ScanGroundAutoLoad() end) + if not ok then _logError('GroundLoadSched ScanGroundAutoLoad error: '..tostring(err)) end + end, {}, interval, interval) +end + +-- Adaptive background loop consolidating salvage checks and periodic pruning +function CTLD:_ensureAdaptiveBackgroundLoop() + if self._schedules and self._schedules.backgroundLoop then return end + + local function backgroundTick() + local now = timer.getTime() + + -- Salvage crate housekeeping + local cfg = self.Config.SlingLoadSalvage + local activeCrates = 0 + if cfg and cfg.Enabled then + for _, meta in pairs(CTLD._salvageCrates) do + if meta and meta.side == self.Side then + activeCrates = activeCrates + 1 + end + end + + -- Run the standard checker to handle delivery/expiration + local ok, err = pcall(function() self:_CheckSlingLoadSalvageCrates() end) + if not ok then + _logError('[SlingLoadSalvage] backgroundTick error: '..tostring(err)) + end + + -- Stale crate cleanup: destroy any crate that lost its static object reference + for cname, meta in pairs(CTLD._salvageCrates) do + if meta and (not meta.staticObject or (meta.staticObject.destroy and not meta.staticObject:isExist())) then + CTLD._salvageCrates[cname] = nil + end + end + + -- Dynamic salvage zone lifetime enforcement + self:_enforceDynamicSalvageZoneLimit() + end + + -- Hover coach cleanup: remove entries for missing units + if CTLD._coachState then + for uname, _ in pairs(CTLD._coachState) do + if not Unit.getByName(uname) then + CTLD._coachState[uname] = nil + end + end + end + + -- Ensure the hover scan scheduler matches active transport presence + local hasTransports = false + for gname, _ in pairs(self.MenusByGroup or {}) do + local grp = nil + if GROUP and GROUP.FindByName then + local ok, res = pcall(function() return GROUP:FindByName(gname) end) + if ok then grp = res end + end + if grp and grp:IsAlive() then + hasTransports = true + break + end + if not grp and Group and Group.getByName then + local ok, dcsGrp = pcall(function() return Group.getByName(gname) end) + if ok and dcsGrp and dcsGrp:isExist() then + hasTransports = true + break + end + end + end + + if hasTransports then + if (not self.HoverSched) and self._startHoverScheduler then + pcall(function() self:_startHoverScheduler() end) + end + else + if self.HoverSched and self.HoverSched.Stop then + pcall(function() self.HoverSched:Stop() end) + end + self.HoverSched = nil + end + + -- Determine next wake interval based on active salvage crates + local baseInterval = (cfg and cfg.DetectionInterval) or 5 + local adaptive = (cfg and cfg.AdaptiveIntervals) or {} + local nextInterval + if activeCrates == 0 then + nextInterval = adaptive.idle or math.max(baseInterval * 2, 10) + elseif activeCrates <= 20 then + nextInterval = adaptive.low or math.max(baseInterval * 2, 10) + elseif activeCrates <= 35 then + nextInterval = adaptive.medium or math.max(baseInterval * 3, 15) + else + nextInterval = adaptive.high or math.max(baseInterval * 4, 20) + end + nextInterval = math.min(nextInterval, 30) + + CTLD._lastSalvageInterval = nextInterval + + return now + nextInterval + end + + local id = timer.scheduleFunction(function() + local nextTime = backgroundTick() + return nextTime + end, nil, timer.getTime() + 2) + self:_registerSchedule('backgroundLoop', id) +end + +function CTLD:_ensureSlingLoadEventHandler() + -- No event handler needed - we use inAir() checks like original CTLD.lua + if self._slingHandlerRegistered then return end + self._slingHandlerRegistered = true +end + +function CTLD:_startHourlyDiagnostics() + if not (timer and timer.scheduleFunction) then return end + if self._schedules and self._schedules.hourlyDiagnostics then return end + + local function diagTick() + local salvageCount = 0 + for _, _ in ipairs(self.SalvageDropZones or {}) do salvageCount = salvageCount + 1 end + local menuCount = _countTableEntries(self.MenusByGroup) + local dynamicCount = _countTableEntries(self._DynamicSalvageZones) + local sideLabel = (self.Side == coalition.side.BLUE and 'BLUE') + or (self.Side == coalition.side.RED and 'RED') + or (self.Side == coalition.side.NEUTRAL and 'NEUTRAL') + or tostring(self.Side) + + -- Comprehensive memory usage stats + local cratesCount = _countTableEntries(CTLD._crates) + local medevacCrewsCount = _countTableEntries(CTLD._medevacCrews) + local salvageCratesCount = _countTableEntries(CTLD._salvageCrates) + local coachStateCount = _countTableEntries(CTLD._coachState) + local hoverStateCount = _countTableEntries(CTLD._hoverState) + local pendingTimersCount = _countTableEntries(CTLD._pendingTimers) + local msgStateCount = _countTableEntries(CTLD._msgState) + + env.info(string.format('[CTLD][SoakTest][%s] salvageZones=%d dynamicZones=%d menus=%d', + sideLabel, salvageCount, dynamicCount, menuCount)) + env.info(string.format('[CTLD][Memory][%s] crates=%d medevacCrews=%d salvageCrates=%d coachState=%d hoverState=%d pendingTimers=%d msgState=%d', + sideLabel, cratesCount, medevacCrewsCount, salvageCratesCount, coachStateCount, hoverStateCount, pendingTimersCount, msgStateCount)) + + return timer.getTime() + 3600 + end + + local id = timer.scheduleFunction(function() + return diagTick() + end, nil, timer.getTime() + 3600) + self:_registerSchedule('hourlyDiagnostics', id) +end + +local function _ctldHelperGet() + local ctldClass = _G._MOOSE_CTLD or CTLD + if not ctldClass then + env.info('[CTLD] Runtime helper unavailable: CTLD not loaded') + return nil + end + return ctldClass +end + +local function _ctldSideName(side) + if side == coalition.side.BLUE then return 'BLUE' end + if side == coalition.side.RED then return 'RED' end + if side == coalition.side.NEUTRAL then return 'NEUTRAL' end + return tostring(side or 'nil') +end + +local function _ctldFormatSeconds(secs) + if not secs or secs <= 0 then return '0s' end + local minutes = math.floor(secs / 60) + local seconds = math.floor(secs % 60) + if minutes > 0 then + return string.format('%dm%02ds', minutes, seconds) + end + return string.format('%ds', seconds) +end + +if not _G.CTLD_DumpRuntimeStats then + function _G.CTLD_DumpRuntimeStats() + local ctldClass = _ctldHelperGet() + if not ctldClass then return end + + local now = timer and timer.getTime and timer.getTime() or 0 + local salvageBySide = {} + local oldestBySide = {} + for name, meta in pairs(ctldClass._salvageCrates or {}) do + if meta and meta.side then + salvageBySide[meta.side] = (salvageBySide[meta.side] or 0) + 1 + if meta.spawnTime then + local age = now - meta.spawnTime + if age > (oldestBySide[meta.side] or 0) then + oldestBySide[meta.side] = age + end + end + end + end + + local medevacCount = 0 + for _ in pairs(ctldClass._medevacCrews or {}) do + medevacCount = medevacCount + 1 + end + + env.info(string.format('[CTLD] Active salvage crates: BLUE=%d RED=%d', + salvageBySide[coalition.side.BLUE] or 0, + salvageBySide[coalition.side.RED] or 0)) + env.info(string.format('[CTLD] Oldest salvage crate age: BLUE=%s RED=%s', + _ctldFormatSeconds(oldestBySide[coalition.side.BLUE] or 0), + _ctldFormatSeconds(oldestBySide[coalition.side.RED] or 0))) + env.info(string.format('[CTLD] Active MEDEVAC crews: %d', medevacCount)) + + local totalSchedules = 0 + local instanceCount = 0 + for _, inst in ipairs(ctldClass._instances or {}) do + instanceCount = instanceCount + 1 + if inst._schedules then + for _ in pairs(inst._schedules) do + totalSchedules = totalSchedules + 1 + end + end + for key, value in pairs(inst) do + if type(value) == 'table' and value.Stop and key:match('Sched') then + totalSchedules = totalSchedules + 1 + end + end + end + + env.info(string.format('[CTLD] Instances: %d, scheduler objects (approx): %d', instanceCount, totalSchedules)) + env.info(string.format('[CTLD] Last salvage loop interval: %s', _ctldFormatSeconds(ctldClass._lastSalvageInterval or 0))) + end +end + +if not _G.CTLD_DumpCrateAges then + function _G.CTLD_DumpCrateAges() + local ctldClass = _ctldHelperGet() + if not ctldClass then return end + + local crates = {} + local now = timer and timer.getTime and timer.getTime() or 0 + local lifetime = (ctldClass.Config and ctldClass.Config.SlingLoadSalvage and ctldClass.Config.SlingLoadSalvage.CrateLifetime) or 0 + for name, meta in pairs(ctldClass._salvageCrates or {}) do + local age = meta.spawnTime and (now - meta.spawnTime) or 0 + table.insert(crates, { + name = name, + side = meta.side, + age = age, + remaining = math.max(0, lifetime - age), + weight = meta.weight or 0, + }) + end + + table.sort(crates, function(a, b) return a.age > b.age end) + + env.info(string.format('[CTLD] Listing %d salvage crates (lifetime=%ss)', #crates, tostring(lifetime))) + for i = 1, math.min(#crates, 25) do + local c = crates[i] + env.info(string.format('[CTLD] #%02d %s side=%s weight=%dkg age=%s remaining=%s', + i, c.name, _ctldSideName(c.side), c.weight, + _ctldFormatSeconds(c.age), _ctldFormatSeconds(c.remaining))) + end + end +end + +if not _G.CTLD_ListSchedules then + function _G.CTLD_ListSchedules() + local ctldClass = _ctldHelperGet() + if not ctldClass then return end + + local instances = ctldClass._instances or {} + if #instances == 0 then + env.info('[CTLD] No CTLD instances registered') + return + end + + for idx, inst in ipairs(instances) do + local sideLabel = _ctldSideName(inst.Side) + env.info(string.format('[CTLD] Instance #%d side=%s', idx, sideLabel)) + + if inst._schedules then + for key, funcId in pairs(inst._schedules) do + env.info(string.format(' [timer] key=%s funcId=%s', tostring(key), tostring(funcId))) + end + end + + for key, value in pairs(inst) do + if type(value) == 'table' and value.Stop and key:match('Sched') then + local running = 'unknown' + if type(value.IsRunning) == 'function' then + local ok, res = pcall(value.IsRunning, value) + if ok then running = tostring(res) end + end + env.info(string.format(' [sched] key=%s running=%s', tostring(key), running)) + end + end + end + end +end + +-- Spawn smoke for MEDEVAC crews with offset system +-- position: {x, y, z} table +-- smokeColor: trigger.smokeColor enum value +-- config: MEDEVAC config table (for offset settings) +local function _spawnMEDEVACSmoke(position, smokeColor, config) + if not position or not smokeColor then return end + + -- Apply smoke offset system + local smokePos = { + x = position.x, + y = land.getHeight({x = position.x, y = position.z}), + z = position.z + } + + local offsetMeters = (config and config.SmokeOffsetMeters) or 5 + local offsetRandom = (not config or config.SmokeOffsetRandom ~= false) -- default true + local offsetVertical = (config and config.SmokeOffsetVertical) or 2 + + if offsetMeters > 0 then + local angle = 0 -- North by default + if offsetRandom then + angle = math.random() * 2 * math.pi -- Random direction + end + smokePos.x = smokePos.x + offsetMeters * math.cos(angle) + smokePos.z = smokePos.z + offsetMeters * math.sin(angle) + end + smokePos.y = smokePos.y + offsetVertical + + -- Spawn smoke using MOOSE COORDINATE (better appearance) or fallback to trigger.action.smoke + local coord = COORDINATE:New(smokePos.x, smokePos.y, smokePos.z) + if coord and coord.Smoke then + if smokeColor == trigger.smokeColor.Green then + coord:SmokeGreen() + elseif smokeColor == trigger.smokeColor.Red then + coord:SmokeRed() + elseif smokeColor == trigger.smokeColor.White then + coord:SmokeWhite() + elseif smokeColor == trigger.smokeColor.Orange then + coord:SmokeOrange() + elseif smokeColor == trigger.smokeColor.Blue then + coord:SmokeBlue() + else + coord:SmokeRed() -- default + end + else + trigger.action.smoke(smokePos, smokeColor) + end +end + +-- Resolve a zone's center (vec3) and radius (meters). +-- Accepts a MOOSE ZONE object returned by _findZone/ZONE:FindByName/ZONE_RADIUS:New +function CTLD:_getZoneCenterAndRadius(mz) + if not mz then return nil, nil end + local name = mz.GetName and mz:GetName() or nil + -- Prefer Mission Editor zone data if available + if name and trigger and trigger.misc and trigger.misc.getZone then + local z = trigger.misc.getZone(name) + if z and z.point and z.radius then + local p = { x = z.point.x, y = z.point.y or 0, z = z.point.z } + return p, z.radius + end + end + -- Fall back to MOOSE zone center + local pv = mz.GetPointVec3 and mz:GetPointVec3() or nil + local p = pv and { x = pv.x, y = pv.y or 0, z = pv.z } or nil + -- Try to fetch a configured radius from our zone defs + local r + if name and self._ZoneDefs then + local d = self._ZoneDefs.PickupZones and self._ZoneDefs.PickupZones[name] + or self._ZoneDefs.DropZones and self._ZoneDefs.DropZones[name] + or self._ZoneDefs.FOBZones and self._ZoneDefs.FOBZones[name] + or self._ZoneDefs.MASHZones and self._ZoneDefs.MASHZones[name] + if d and d.radius then r = d.radius end + end + r = r or (mz.GetRadius and mz:GetRadius()) or 150 + return p, r +end + +-- Draw a circle and label for a zone on the F10 map for this coalition. +-- kind: 'Pickup' | 'Drop' | 'FOB' | 'MASH' +function CTLD:_drawZoneCircleAndLabel(kind, mz, opts) + if not (trigger and trigger.action and trigger.action.circleToAll and trigger.action.textToAll) then return end + opts = opts or {} + local p, r = self:_getZoneCenterAndRadius(mz) + if not p or not r then return end + local side = (opts.ForAll and -1) or self.Side + local outline = opts.OutlineColor or {0,1,0,0.85} + local fill = opts.FillColor or {0,1,0,0.15} + local lineType = opts.LineType or 1 + local readOnly = (opts.ReadOnly ~= false) + local fontSize = opts.FontSize or 18 + local labelPrefix = opts.LabelPrefix or 'Zone' + local zname = (mz.GetName and mz:GetName()) or '(zone)' + local circleId = _nextMarkupId() + local textId = _nextMarkupId() + trigger.action.circleToAll(side, circleId, p, r, outline, fill, lineType, readOnly, "") + local label = string.format('%s: %s', labelPrefix, zname) + -- Place label centered above the circle (12 o'clock). Horizontal nudge via LabelOffsetX. + -- Simple formula: extra offset from edge = r * ratio + fromEdge + local extra = (r * (opts.LabelOffsetRatio or 0.0)) + (opts.LabelOffsetFromEdge or 30) + local nx = p.x + (opts.LabelOffsetX or 0) + local nz = p.z - (r + (extra or 0)) + local textPos = { x = nx, y = 0, z = nz } + trigger.action.textToAll(side, textId, textPos, {1,1,1,0.9}, {0,0,0,0}, fontSize, readOnly, label) + -- Track ids so they can be cleared later + self._MapMarkup = self._MapMarkup or { Pickup = {}, Drop = {}, FOB = {}, MASH = {}, SalvageDrop = {} } + self._MapMarkup[kind] = self._MapMarkup[kind] or {} + self._MapMarkup[kind][zname] = { circle = circleId, text = textId } +end + +function CTLD:ClearMapDrawings() + if not (self._MapMarkup and trigger and trigger.action and trigger.action.removeMark) then return end + for _, byName in pairs(self._MapMarkup) do + for _, ids in pairs(byName) do + if ids.circle then pcall(trigger.action.removeMark, ids.circle) end + if ids.text then pcall(trigger.action.removeMark, ids.text) end + end + end + self._MapMarkup = { Pickup = {}, Drop = {}, FOB = {}, MASH = {}, SalvageDrop = {} } +end + +function CTLD:_removeZoneDrawing(kind, zname) + if not (self._MapMarkup and self._MapMarkup[kind] and self._MapMarkup[kind][zname]) then return end + local ids = self._MapMarkup[kind][zname] + if ids.circle then pcall(trigger.action.removeMark, ids.circle) end + if ids.text then pcall(trigger.action.removeMark, ids.text) end + self._MapMarkup[kind][zname] = nil +end + +-- Public: set a specific zone active/inactive by kind and name +function CTLD:SetZoneActive(kind, name, active, silent) + if not (kind and name) then return end + local k = (kind == 'Pickup' or kind == 'Drop' or kind == 'FOB' or kind == 'MASH') and kind or nil + if not k then return end + self._ZoneActive = self._ZoneActive or { Pickup = {}, Drop = {}, FOB = {}, MASH = {} } + self._ZoneActive[k][name] = (active ~= false) + -- Update drawings for this one zone only + if self.Config.MapDraw and self.Config.MapDraw.Enabled then + -- Find the MOOSE zone object by name + local list = (k=='Pickup' and self.PickupZones) or (k=='Drop' and self.DropZones) or (k=='FOB' and self.FOBZones) or (k=='MASH' and self.MASHZones) or {} + local mz + for _,z in ipairs(list or {}) do if z and z.GetName and z:GetName() == name then mz = z break end end + if self._ZoneActive[k][name] then + if mz then + local md = self.Config.MapDraw + local opts = { + OutlineColor = md.OutlineColor, + FillColor = (md.FillColors and md.FillColors[k]) or nil, + LineType = (md.LineTypes and md.LineTypes[k]) or md.LineType or 1, + FontSize = md.FontSize, + ReadOnly = (md.ReadOnly ~= false), + LabelOffsetX = md.LabelOffsetX, + LabelOffsetFromEdge = md.LabelOffsetFromEdge, + LabelOffsetRatio = md.LabelOffsetRatio, + LabelPrefix = ((md.LabelPrefixes and md.LabelPrefixes[k]) + or (k=='Pickup' and md.LabelPrefix) + or (k..' Zone')) + } + self:_drawZoneCircleAndLabel(k, mz, opts) + end + else + self:_removeZoneDrawing(k, name) + end + end + -- Optional messaging + local stateStr = self._ZoneActive[k][name] and 'ACTIVATED' or 'DEACTIVATED' + _logVerbose(string.format('Zone %s %s (%s)', tostring(name), stateStr, k)) + if not silent then + local msgKey = self._ZoneActive[k][name] and 'zone_activated' or 'zone_deactivated' + _eventSend(self, nil, self.Side, msgKey, { kind = k, zone = name }) + end +end + +function CTLD:DrawZonesOnMap() + local md = self.Config and self.Config.MapDraw or {} + if not md.Enabled then return end + -- Clear previous drawings before re-drawing + self:ClearMapDrawings() + local opts = { + OutlineColor = md.OutlineColor, + LineType = md.LineType, + FontSize = md.FontSize, + ReadOnly = (md.ReadOnly ~= false), + LabelPrefix = md.LabelPrefix or 'Zone', + LabelOffsetX = md.LabelOffsetX, + LabelOffsetFromEdge = md.LabelOffsetFromEdge, + LabelOffsetRatio = md.LabelOffsetRatio, + ForAll = (md.ForAll == true), + } + if md.DrawPickupZones then + for _,mz in ipairs(self.PickupZones or {}) do + local name = mz:GetName() + if self._ZoneActive.Pickup[name] ~= false then + opts.LabelPrefix = (md.LabelPrefixes and md.LabelPrefixes.Pickup) or md.LabelPrefix or 'Pickup Zone' + opts.LineType = (md.LineTypes and md.LineTypes.Pickup) or md.LineType or 1 + opts.FillColor = (md.FillColors and md.FillColors.Pickup) or nil + self:_drawZoneCircleAndLabel('Pickup', mz, opts) + end + end + end + if md.DrawDropZones then + for _,mz in ipairs(self.DropZones or {}) do + local name = mz:GetName() + if self._ZoneActive.Drop[name] ~= false then + opts.LabelPrefix = (md.LabelPrefixes and md.LabelPrefixes.Drop) or 'Drop Zone' + opts.LineType = (md.LineTypes and md.LineTypes.Drop) or md.LineType or 1 + opts.FillColor = (md.FillColors and md.FillColors.Drop) or nil + self:_drawZoneCircleAndLabel('Drop', mz, opts) + end + end + end + if md.DrawFOBZones then + for _,mz in ipairs(self.FOBZones or {}) do + local name = mz:GetName() + if self._ZoneActive.FOB[name] ~= false then + opts.LabelPrefix = (md.LabelPrefixes and md.LabelPrefixes.FOB) or 'FOB Zone' + opts.LineType = (md.LineTypes and md.LineTypes.FOB) or md.LineType or 1 + opts.FillColor = (md.FillColors and md.FillColors.FOB) or nil + self:_drawZoneCircleAndLabel('FOB', mz, opts) + end + end + end + if md.DrawMASHZones then + for _,mz in ipairs(self.MASHZones or {}) do + local name = mz:GetName() + if self._ZoneActive.MASH[name] ~= false then + opts.LabelPrefix = (md.LabelPrefixes and md.LabelPrefixes.MASH) or 'MASH' + opts.LineType = (md.LineTypes and md.LineTypes.MASH) or md.LineType or 1 + opts.FillColor = (md.FillColors and md.FillColors.MASH) or nil + self:_drawZoneCircleAndLabel('MASH', mz, opts) + end + end + if CTLD._mashZones then + for mashId, data in pairs(CTLD._mashZones) do + if data and data.side == self.Side and data.isMobile then + local zoneName = data.displayName or mashId + if self._ZoneActive.MASH[zoneName] ~= false then + opts.LabelPrefix = (md.LabelPrefixes and md.LabelPrefixes.MASH) or 'MASH' + opts.LineType = (md.LineTypes and md.LineTypes.MASH) or md.LineType or 1 + opts.FillColor = (md.FillColors and md.FillColors.MASH) or nil + local zoneObj = data.zone + if not (zoneObj and zoneObj.GetPointVec3 and zoneObj.GetRadius) then + local pos = data.position or { x = 0, z = 0 } + if ZONE_RADIUS and VECTOR2 then + local v2 = (VECTOR2 and VECTOR2.New) and VECTOR2:New(pos.x, pos.z) or { x = pos.x, y = pos.z } + zoneObj = ZONE_RADIUS:New(zoneName, v2, data.radius or 500) + else + local posCopy = { x = pos.x, z = pos.z } + zoneObj = {} + function zoneObj:GetName() + return zoneName + end + function zoneObj:GetPointVec3() + return { x = posCopy.x, y = 0, z = posCopy.z } + end + function zoneObj:GetRadius() + return data.radius or 500 + end + end + data.zone = zoneObj + end + if zoneObj then + self:_drawZoneCircleAndLabel('MASH', zoneObj, opts) + end + end + end + end + end + end + if md.DrawSalvageZones then + for _,mz in ipairs(self.SalvageDropZones or {}) do + local name = mz:GetName() + if self._ZoneActive.SalvageDrop[name] ~= false then + opts.LabelPrefix = (md.LabelPrefixes and md.LabelPrefixes.SalvageDrop) or 'Salvage Zone' + opts.LineType = (md.LineTypes and md.LineTypes.SalvageDrop) or md.LineType or 1 + opts.FillColor = (md.FillColors and md.FillColors.SalvageDrop) or self.Config.SlingLoadSalvage.ZoneColors.fill + self:_drawZoneCircleAndLabel('SalvageDrop', mz, opts) + end + end + end +end + +-- Unit preference detection and unit-aware formatting +local function _getPlayerIsMetric(unit) + local ok, isMetric = pcall(function() + local pname = unit and unit.GetPlayerName and unit:GetPlayerName() or nil + if pname and CTLD and CTLD._playerUnitPrefs then + local pref = CTLD._playerUnitPrefs[pname] + if pref == 'metric' then return true end + if pref == 'imperial' then return false end + end + if pname and type(SETTINGS) == 'table' and SETTINGS.Set then + local ps = SETTINGS:Set(pname) + if ps and ps.IsMetric then return ps:IsMetric() end + end + if _SETTINGS and _SETTINGS.IsMetric then return _SETTINGS:IsMetric() end + return true + end) + return (ok and isMetric) and true or false +end + +function CTLD:_SetGroupUnitPreference(group, mode) + if not group or not group:IsAlive() then return end + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then + _msgGroup(group, 'No active player unit to bind preference.') + return + end + local pname = unit.GetPlayerName and unit:GetPlayerName() or nil + if not pname or pname == '' then + _msgGroup(group, 'Unit preference requires a player-controlled slot.') + return + end + if mode ~= 'metric' and mode ~= 'imperial' and mode ~= nil then + _msgGroup(group, 'Invalid units selection requested.') + return + end + self._playerUnitPrefs = self._playerUnitPrefs or {} + if mode then + self._playerUnitPrefs[pname] = mode + else + self._playerUnitPrefs[pname] = nil + end + local label + if mode == 'metric' then + label = 'metric (meters)' + elseif mode == 'imperial' then + label = 'imperial (nautical miles / feet)' + else + label = 'mission default' + end + _msgGroup(group, string.format('CTLD units preference set to %s for %s.', label, pname)) +end + +function CTLD:_ShowGroupUnitPreference(group) + if not group or not group:IsAlive() then return end + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then + _msgGroup(group, 'No active player unit to inspect preference.') + return + end + local pname = unit.GetPlayerName and unit:GetPlayerName() or nil + if not pname or pname == '' then + _msgGroup(group, 'Unit preference requires a player-controlled slot.') + return + end + local prefs = self._playerUnitPrefs or {} + local explicit = prefs[pname] + local effective = _getPlayerIsMetric(unit) and 'metric (meters)' or 'imperial (nautical miles / feet)' + local source = explicit and 'CTLD preference' or 'mission default' + if explicit == 'metric' then + effective = 'metric (meters)' + elseif explicit == 'imperial' then + effective = 'imperial (nautical miles / feet)' + end + _msgGroup(group, string.format('%s units setting: %s (source: %s).', pname, effective, source)) +end + +local function _round(n, prec) + local m = 10^(prec or 0) + return math.floor(n * m + 0.5) / m +end + +local function _fmtDistance(meters, isMetric) + if isMetric then + local v = math.max(0, _round(meters, 0)) + return v, 'm' + else + local ft = meters * 3.28084 + -- snap to 5 ft increments for readability + ft = math.max(0, math.floor((ft + 2.5) / 5) * 5) + return ft, 'ft' + end +end + +local function _fmtRange(meters, isMetric) + meters = math.max(0, meters or 0) + if isMetric then + if meters >= 1000 then + local km = meters / 1000 + local prec = (km >= 10) and 0 or 1 + return _round(km, prec), 'km' + end + return _round(meters, 0), 'm' + else + local nm = meters / 1852 + local prec = (nm >= 10) and 0 or 1 + return _round(nm, prec), 'NM' + end +end + +local function _fmtSpeed(mps, isMetric) + if isMetric then + return _round(mps, 1), 'm/s' + else + local fps = mps * 3.28084 + return math.max(0, math.floor(fps + 0.5)), 'ft/s' + end +end + +local function _fmtAGL(meters, isMetric) + return _fmtDistance(meters, isMetric) +end + +-- Coalition utility: return opposite side (BLUE<->RED); NEUTRAL returns RED by default +local function _enemySide(side) + if coalition and coalition.side then + if side == coalition.side.BLUE then return coalition.side.RED end + if side == coalition.side.RED then return coalition.side.BLUE end + end + return coalition.side.RED +end + +-- Find nearest enemy-held base within radius; returns {point=vec3, name=string, dist=meters} +function CTLD:_findNearestEnemyBase(point, radius) + local enemy = _enemySide(self.Side) + local ok, bases = pcall(function() + if coalition and coalition.getAirbases then return coalition.getAirbases(enemy) end + return {} + end) + if not ok or not bases then return nil end + local best + for _,ab in ipairs(bases) do + local p = ab:getPoint() + local dx = (p.x - point.x); local dz = (p.z - point.z) + local d = math.sqrt(dx*dx + dz*dz) + if d <= radius and ((not best) or d < best.dist) then + best = { point = { x = p.x, z = p.z }, name = ab:getName() or 'Base', dist = d } + end + end + return best +end + +-- Find nearest enemy ground group centroid within radius; returns {point=vec3, group=GROUP|nil, dcsGroupName=string, dist=meters, type=string} +function CTLD:_findNearestEnemyGround(point, radius) + local enemy = _enemySide(self.Side) + local best + -- Use MOOSE SET_GROUP to enumerate enemy ground groups + local set = SET_GROUP:New():FilterCoalitions(enemy):FilterCategories(Group.Category.GROUND):FilterActive(true):FilterStart() + set:ForEachGroup(function(g) + local alive = g:IsAlive() + if alive then + local c = g:GetCoordinate() + if c then + local v3 = c:GetVec3() + local dx = (v3.x - point.x); local dz = (v3.z - point.z) + local d = math.sqrt(dx*dx + dz*dz) + if d <= radius and ((not best) or d < best.dist) then + -- Try to infer a type label from first unit + local ut = 'unit' + local u1 = g:GetUnit(1) + if u1 then ut = _getUnitType(u1) or ut end + best = { point = { x = v3.x, z = v3.z }, group = g, dcsGroupName = g:GetName(), dist = d, type = ut } + end + end + end + end) + return best +end + +-- Order a ground group by name to move toward target point at a given speed (km/h). Uses MOOSE route when available. +function CTLD:_orderGroundGroupToPointByName(groupName, targetPoint, speedKmh) + if not groupName or not targetPoint then return end + local mg + local ok = pcall(function() mg = GROUP:FindByName(groupName) end) + if ok and mg then + local vec2 = (VECTOR2 and VECTOR2.New) and VECTOR2:New(targetPoint.x, targetPoint.z) or { x = targetPoint.x, y = targetPoint.z } + -- RouteGroundTo(speed km/h). Use pcall to avoid mission halt if API differs. + local _, _ = pcall(function() mg:RouteGroundTo(vec2, speedKmh or 25) end) + return + end + -- Fallback: DCS Group controller simple mission to single waypoint + local dg = Group.getByName(groupName) + if not dg then return end + local ctrl = dg:getController() + if not ctrl then return end + -- Try to set a simple go-to task + local task = { + id = 'Mission', + params = { + route = { + points = { + { + x = targetPoint.x, y = targetPoint.z, speed = 5, action = 'Off Road', task = {}, type = 'Turning Point', ETA = 0, ETA_locked = false, + } + } + } + } + } + pcall(function() ctrl:setTask(task) end) +end + +-- Assign attack behavior to a newly spawned ground group by name +function CTLD:_assignAttackBehavior(groupName, originPoint, isVehicle) + if not (self.Config.AttackAI and self.Config.AttackAI.Enabled) then return end + local radius = isVehicle and (self.Config.AttackAI.VehicleSearchRadius or 5000) or (self.Config.AttackAI.TroopSearchRadius or 3000) + local prioBase = (self.Config.AttackAI.PrioritizeEnemyBases ~= false) + local speed = isVehicle and (self.Config.AttackAI.VehicleAdvanceSpeedKmh or 35) or (self.Config.AttackAI.TroopAdvanceSpeedKmh or 20) + local player = 'Player' + -- Try to infer last requesting player from crate/troop context is complex; caller should pass announcements separately when needed. + -- Target selection + local target + local pickedBase + if prioBase then + local base = self:_findNearestEnemyBase(originPoint, radius) + if base then target = { point = base.point, name = base.name, kind = 'base', dist = base.dist } pickedBase = base end + end + if not target then + local eg = self:_findNearestEnemyGround(originPoint, radius) + if eg then target = { point = eg.point, name = eg.dcsGroupName, kind = 'enemy', dist = eg.dist, etype = eg.type } end + end + -- Order movement if we have a target + if target then + self:_orderGroundGroupToPointByName(groupName, target.point, speed) + end + return target -- caller will handle announcement +end + +local function _bearingDeg(from, to) + local dx = (to.x - from.x) + local dz = (to.z - from.z) + local ang = math.deg(math.atan2(dx, dz)) -- 0=N, +CW + if ang < 0 then ang = ang + 360 end + return math.floor(ang + 0.5) +end + +-- Normalize MOOSE/DCS heading to both radians and degrees consistently. +-- Some environments may yield degrees; others radians. This returns (rad, deg). +local function _headingRadDeg(unit) + local h = (unit and unit.GetHeading and unit:GetHeading()) or 0 + local hrad, hdeg + if h and h > (2*math.pi + 0.1) then + -- Looks like degrees + hdeg = h % 360 + hrad = math.rad(hdeg) + else + -- Radians (normalize into [0, 2pi)) + hrad = (h or 0) % (2*math.pi) + hdeg = math.deg(hrad) + end + return hrad, hdeg +end + +local function _projectToBodyFrame(dx, dz, hdg) + -- world (east=X=dx, north=Z=dz) to body frame (fwd/right) + local fwd = dx * math.sin(hdg) + dz * math.cos(hdg) + local right = dx * math.cos(hdg) - dz * math.sin(hdg) + return right, fwd +end + +local function _playerNameFromGroup(group) + if not group then return 'Player' end + local unit = group:GetUnit(1) + local pname = unit and unit.GetPlayerName and unit:GetPlayerName() + if pname and pname ~= '' then return pname end + return group:GetName() or 'Player' +end + +local function _coachSend(self, group, unitName, key, data, isCoach) + local cfg = CTLD.HoverCoachConfig or {} + if cfg.enabled and (not self.HoverSched) then + if self._startHoverScheduler then + self:_startHoverScheduler() + end + end + local now = timer.getTime() + CTLD._coachState[unitName] = CTLD._coachState[unitName] or { lastKeyTimes = {} } + local st = CTLD._coachState[unitName] + local last = st.lastKeyTimes[key] or 0 + local minGap = isCoach and ((cfg.throttle and cfg.throttle.coachUpdate) or 1.5) or ((cfg.throttle and cfg.throttle.generic) or 3.0) + local repeatGap = (cfg.throttle and cfg.throttle.repeatSame) or (minGap * 2) + if last > 0 and (now - last) < minGap then return end + -- prevent repeat spam of identical key too fast (only after first send) + if last > 0 and (now - last) < repeatGap then return end + local tpl = CTLD.Messages and CTLD.Messages[key] + if not tpl then return end + local text = _fmtTemplate(tpl, data) + if text and text ~= '' then + _msgGroup(group, text) + st.lastKeyTimes[key] = now + end +end + +local _groundLoadFallbacks = { + Start = "Ground crew on itβ€”{count} crate(s) ready in {seconds}s.", + Progress = "Loading steadyβ€”{remaining}s to go.", + Complete = "Ground load completeβ€”{count} crate(s) secure.", +} + +local function _prepareGroundLoadMessage(self, category, data) + data = data or {} + local comms = self.GroundLoadComms or {} + local pool = comms and comms[category] + local tpl + if pool and #pool > 0 then + tpl = pool[math.random(#pool)] + else + tpl = _groundLoadFallbacks[category] + end + data.ground_line = _fmtTemplate(tpl or '', data) + return data +end + +local function _eventSend(self, group, side, key, data) + local now = timer.getTime() + local scopeKey + if group then scopeKey = 'GRP:'..group:GetName() else scopeKey = 'COAL:'..tostring(side or self.Side) end + CTLD._msgState[scopeKey] = CTLD._msgState[scopeKey] or { lastKeyTimes = {} } + local st = CTLD._msgState[scopeKey] + local last = st.lastKeyTimes[key] or 0 + local cfg = CTLD.HoverCoachConfig + local minGap = (cfg and cfg.throttle and cfg.throttle.generic) or 3.0 + local repeatGap = (cfg and cfg.throttle and cfg.throttle.repeatSame) or (minGap * 2) + if last > 0 and (now - last) < minGap then return end + if last > 0 and (now - last) < repeatGap then return end + local tpl = CTLD.Messages and CTLD.Messages[key] + if not tpl then return end + local text = _fmtTemplate(tpl, data) + if not text or text == '' then return end + if group then _msgGroup(group, text) else _msgCoalition(side or self.Side, text) end + st.lastKeyTimes[key] = now +end + +-- Format helpers for menu labels and recipe info +function CTLD:_recipeTotalCrates(def) + if not def then return 1 end + if type(def.requires) == 'table' then + local n = 0 + for _,qty in pairs(def.requires) do n = n + (qty or 0) end + return math.max(1, n) + end + return math.max(1, def.required or 1) +end + +function CTLD:_friendlyNameForKey(key) + local d = self.Config and self.Config.CrateCatalog and self.Config.CrateCatalog[key] + if not d then return tostring(key) end + return (d.menu or d.description or key) +end + +function CTLD:_formatMenuLabelWithCrates(key, def) + local base = (def and (def.menu or def.description)) or key + local total = self:_recipeTotalCrates(def) + local suffix = (total == 1) and '1 crate' or (tostring(total)..' crates') + -- Optionally append stock for UX; uses nearest pickup zone dynamically + if self.Config.Inventory and self.Config.Inventory.ShowStockInMenu then + local group = nil + -- Try to find any active group menu owner to infer nearest zone; if none, skip hint + for gname,_ in pairs(self.MenusByGroup or {}) do group = GROUP:FindByName(gname); if group then break end end + if group and group:IsAlive() then + local unit = group:GetUnit(1) + if unit and unit:IsAlive() then + local zone, dist = _nearestZonePoint(unit, self.Config.Zones and self.Config.Zones.PickupZones or {}) + if zone and dist and dist <= (self.Config.PickupZoneMaxDistance or 10000) then + local zname = zone:GetName() + -- For composite recipes, show bundle availability based on component stock; otherwise show per-key stock + if def and type(def.requires) == 'table' then + local stockTbl = CTLD._stockByZone[zname] or {} + local bundles = math.huge + for reqKey, qty in pairs(def.requires) do + local have = tonumber(stockTbl[reqKey] or 0) or 0 + local need = tonumber(qty or 0) or 0 + if need > 0 then bundles = math.min(bundles, math.floor(have / need)) end + end + if bundles == math.huge then bundles = 0 end + return string.format('%s (%s) [%s: %d bundle%s]', base, suffix, zname, bundles, (bundles==1 and '' or 's')) + else + local stock = (CTLD._stockByZone[zname] and CTLD._stockByZone[zname][key]) or 0 + return string.format('%s (%s) [%s: %d]', base, suffix, zname, stock) + end + end + end + end + end + return string.format('%s (%s)', base, suffix) +end + +function CTLD:_formatRecipeInfo(key, def) + local lines = {} + local title = self:_friendlyNameForKey(key) + table.insert(lines, string.format('%s', title)) + if def and def.isFOB then table.insert(lines, '(FOB recipe)') end + if def and type(def.requires) == 'table' then + local total = self:_recipeTotalCrates(def) + table.insert(lines, string.format('Requires: %d crate(s) total', total)) + table.insert(lines, 'Breakdown:') + -- stable order + local items = {} + for k,qty in pairs(def.requires) do table.insert(items, {k=k, q=qty}) end + table.sort(items, function(a,b) return tostring(a.k) < tostring(b.k) end) + for _,it in ipairs(items) do + local fname = self:_friendlyNameForKey(it.k) + table.insert(lines, string.format('- %dx %s', it.q or 1, fname)) + end + else + local n = self:_recipeTotalCrates(def) + table.insert(lines, string.format('Requires: %d crate(s)', n)) + end + if def and def.dcsCargoType then + table.insert(lines, string.format('Cargo type: %s', tostring(def.dcsCargoType))) + end + return table.concat(lines, '\n') +end + +-- Determine an approximate radius for a ZONE. Tries MOOSE radius, then trigger zone radius, then configured radius. +function CTLD:_getZoneRadius(zone) + if zone and zone.Radius then return zone.Radius end + local name = zone and zone.GetName and zone:GetName() or nil + if name and trigger and trigger.misc and trigger.misc.getZone then + local z = trigger.misc.getZone(name) + if z and z.radius then return z.radius end + end + if name and self._ZoneDefs and self._ZoneDefs.FOBZones and self._ZoneDefs.FOBZones[name] then + local d = self._ZoneDefs.FOBZones[name] + if d and d.radius then return d.radius end + end + return 150 +end + +-- Check if a 2D point (x,z) lies within any FOB zone; returns (bool, zone) +function CTLD:IsPointInFOBZones(point) + for _,z in ipairs(self.FOBZones or {}) do + local pz = z:GetPointVec3() + local r = self:_getZoneRadius(z) + local dx = (pz.x - point.x) + local dz = (pz.z - point.z) + if (dx*dx + dz*dz) <= (r*r) then return true, z end + end + return false, nil +end + +-- #endregion Utilities + +-- ========================= +-- Construction +-- ========================= +-- #region Construction +function CTLD:New(cfg) + local o = setmetatable({}, self) + o.Config = DeepCopy(CTLD.Config) + if cfg then o.Config = DeepMerge(o.Config, cfg) end + + -- Debug: check if MASH zones survived the merge + _logDebug('After config merge:') + _logDebug(' o.Config.Zones exists: '..tostring(o.Config.Zones ~= nil)) + if o.Config.Zones then + _logDebug(' o.Config.Zones.MASHZones exists: '..tostring(o.Config.Zones.MASHZones ~= nil)) + if o.Config.Zones.MASHZones then + _logDebug(' o.Config.Zones.MASHZones count: '..tostring(#o.Config.Zones.MASHZones)) + end + end + + o.Side = o.Config.CoalitionSide + o.CountryId = o.Config.CountryId or _defaultCountryForSide(o.Side) + o.Config.CountryId = o.CountryId + o.MenuRoots = {} + o.MenusByGroup = {} + o._DynamicSalvageZones = {} + o._DynamicSalvageQueue = {} + o._jtacRegistry = {} + + -- Ground auto-load state tracking + CTLD._groundLoadState = CTLD._groundLoadState or {} + CTLD._groundLoadTimers = CTLD._groundLoadTimers or {} + + -- If caller disabled builtin catalog, clear it before merging any globals + if o.Config.UseBuiltinCatalog == false then + o.Config.CrateCatalog = {} + end + + -- If a global catalog was loaded earlier (via DO SCRIPT FILE), merge it automatically + -- Supported globals: _CTLD_EXTRACTED_CATALOG (our extractor), CTLD_CATALOG, MOOSE_CTLD_CATALOG + do + local globalsToCheck = { '_CTLD_EXTRACTED_CATALOG', 'CTLD_CATALOG', 'MOOSE_CTLD_CATALOG' } + for _,gn in ipairs(globalsToCheck) do + local t = rawget(_G, gn) + if type(t) == 'table' then + o:MergeCatalog(t) + _logInfo('Merged crate catalog from global '..gn) + end + end + end + + -- Load troop types from catalog if available + do + local troopTypes = rawget(_G, '_CTLD_TROOP_TYPES') + if type(troopTypes) == 'table' and next(troopTypes) then + o.Config.Troops.TroopTypes = troopTypes + _logInfo('Loaded troop types from _CTLD_TROOP_TYPES') + else + -- Fallback: catalog not loaded, warn user and provide minimal defaults + _logError('WARNING: _CTLD_TROOP_TYPES not found. Catalog may not be loaded. Using minimal troop fallbacks.') + _logError('Please ensure catalog file is loaded via DO SCRIPT FILE *before* creating CTLD instances.') + -- Minimal fallback troop types to prevent spawning wrong units + o.Config.Troops.TroopTypes = { + AS = { label = 'Assault Squad', size = 8, unitsBlue = { 'Soldier M4' }, unitsRed = { 'Infantry AK' }, units = { 'Infantry AK' } }, + AA = { label = 'MANPADS Team', size = 4, unitsBlue = { 'Soldier stinger' }, unitsRed = { 'SA-18 Igla-S manpad' }, units = { 'Infantry AK' } }, + AT = { label = 'AT Team', size = 4, unitsBlue = { 'Soldier M136' }, unitsRed = { 'Soldier RPG' }, units = { 'Infantry AK' } }, + AR = { label = 'Mortar Team', size = 4, unitsBlue = { '2B11 mortar' }, unitsRed = { '2B11 mortar' }, units = { '2B11 mortar' } }, + } + end + end + + -- Run unit type validation after catalogs/troop types load so issues surface early + o:_validateCatalogUnitTypes() + + o:InitZones() + -- Validate configured zones and warn if missing + o:ValidateZones() + -- Optional: draw configured zones on the F10 map + if o.Config.MapDraw and o.Config.MapDraw.Enabled then + -- Defer a tiny bit to ensure mission environment is fully up + timer.scheduleFunction(function() + pcall(function() o:DrawZonesOnMap() end) + end, {}, timer.getTime() + 1) + end + -- Optional: bind zone activation to mission flags (merge from config table and per-zone flag fields) + do + local merged = {} + -- Collect from explicit bindings (backward compatible) + if o.Config.ZoneEventBindings then + for _,b in ipairs(o.Config.ZoneEventBindings) do table.insert(merged, b) end + end + -- Collect from per-zone entries (preferred) + local function pushFromZones(kind, list) + for _,z in ipairs(list or {}) do + if z and z.name and z.flag then + table.insert(merged, { kind = kind, name = z.name, flag = z.flag, activeWhen = z.activeWhen or 1 }) + end + end + end + pushFromZones('Pickup', o.Config.Zones and o.Config.Zones.PickupZones) + pushFromZones('Drop', o.Config.Zones and o.Config.Zones.DropZones) + pushFromZones('FOB', o.Config.Zones and o.Config.Zones.FOBZones) + pushFromZones('MASH', o.Config.Zones and o.Config.Zones.MASHZones) + pushFromZones('SalvageDrop', o.Config.Zones and o.Config.Zones.SalvageDropZones) + + o._BindingsMerged = merged + if o._BindingsMerged and #o._BindingsMerged > 0 then + o._ZoneFlagState = {} + o._ZoneFlagsPrimed = false + o.ZoneFlagSched = SCHEDULER:New(nil, function() + local ok, err = pcall(function() + if not o._ZoneFlagsPrimed then + -- Prime states on first run without spamming messages + for _,b in ipairs(o._BindingsMerged) do + if b and b.flag and b.kind and b.name then + local val = (trigger and trigger.misc and trigger.misc.getUserFlag) and trigger.misc.getUserFlag(b.flag) or 0 + local activeWhen = (b.activeWhen ~= nil) and b.activeWhen or 1 + local shouldBeActive = (val == activeWhen) + local key = tostring(b.kind)..'|'..tostring(b.name) + o._ZoneFlagState[key] = shouldBeActive + o:SetZoneActive(b.kind, b.name, shouldBeActive, true) + end + end + o._ZoneFlagsPrimed = true + return + end + -- Subsequent runs: announce changes + for _,b in ipairs(o._BindingsMerged) do + if b and b.flag and b.kind and b.name then + local val = (trigger and trigger.misc and trigger.misc.getUserFlag) and trigger.misc.getUserFlag(b.flag) or 0 + local activeWhen = (b.activeWhen ~= nil) and b.activeWhen or 1 + local shouldBeActive = (val == activeWhen) + local key = tostring(b.kind)..'|'..tostring(b.name) + if o._ZoneFlagState[key] ~= shouldBeActive then + o._ZoneFlagState[key] = shouldBeActive + o:SetZoneActive(b.kind, b.name, shouldBeActive, false) + end + end + end + end) + if not ok then _logError('ZoneFlagSched error: '..tostring(err)) end + end, {}, 1, 1) + end + end + o:InitMenus() + + -- Initialize inventory for configured pickup zones (seed from catalog initialStock) + if o.Config.Inventory and o.Config.Inventory.Enabled then + pcall(function() o:InitInventory() end) + end + + -- Initialize MEDEVAC system + if CTLD.MEDEVAC and CTLD.MEDEVAC.Enabled then + pcall(function() o:InitMEDEVAC() end) + end + + -- Periodic cleanup for crates + o.Sched = SCHEDULER:New(nil, function() + local ok, err = pcall(function() o:CleanupCrates() end) + if not ok then _logError('CleanupCrates scheduler error: '..tostring(err)) end + end, {}, 60, 60) + + -- Periodic cleanup for deployed troops (remove dead/missing groups) + o.TroopCleanupSched = SCHEDULER:New(nil, function() + local ok, err = pcall(function() o:CleanupDeployedTroops() end) + if not ok then _logError('CleanupDeployedTroops scheduler error: '..tostring(err)) end + end, {}, 30, 30) + + -- Optional: auto-build FOBs inside FOB zones when crates present + if o.Config.AutoBuildFOBInZones then + o.AutoFOBSched = SCHEDULER:New(nil, function() + local ok, err = pcall(function() o:AutoBuildFOBCheck() end) + if not ok then _logError('AutoBuildFOBCheck scheduler error: '..tostring(err)) end + end, {}, 10, 10) -- check every 10 seconds (tunable) + end + + -- Optional: hover pickup scanner + local coachCfg = CTLD.HoverCoachConfig or {} + if coachCfg.enabled then + o.HoverSched = nil + o:_startHoverScheduler() + end + + -- Optional: ground auto-load scanner + local groundCfg = CTLD.GroundAutoLoadConfig or {} + if groundCfg.Enabled then + o.GroundLoadSched = nil + o:_startGroundLoadScheduler() + end + + -- MEDEVAC auto-pickup and auto-unload scheduler + if CTLD.MEDEVAC and CTLD.MEDEVAC.Enabled then + local checkInterval = (CTLD.MEDEVAC.AutoPickup and CTLD.MEDEVAC.AutoPickup.CheckInterval) or 3 + o.MEDEVACSched = SCHEDULER:New(nil, function() + local ok, err = pcall(function() o:ScanMEDEVACAutoActions() end) + if not ok then _logError('MEDEVAC auto-actions scheduler error: '..tostring(err)) end + end, {}, checkInterval, checkInterval) + end + + if o.Config.JTAC and o.Config.JTAC.Enabled then + local jtacInterval = 5 + if o.Config.JTAC.AutoLase then + local refresh = tonumber(o.Config.JTAC.AutoLase.RefreshSeconds) or 15 + local idle = tonumber(o.Config.JTAC.AutoLase.IdleRescanSeconds) or 30 + jtacInterval = math.max(2, math.min(refresh, idle, 10)) + end + o.JTACSched = SCHEDULER:New(nil, function() + local ok, err = pcall(function() o:_tickJTACs() end) + if not ok then _logError('JTAC tick scheduler error: '..tostring(err)) end + end, {}, jtacInterval, jtacInterval) + _logInfo(string.format('JTAC init: Enabled=TRUE AutoLase=%s SearchRadius=%s Refresh=%s IdleRescan=%s LockType=%s Verbose=%s Interval=%.1f', + tostring(o.Config.JTAC.AutoLase and o.Config.JTAC.AutoLase.Enabled ~= false), + tostring(o.Config.JTAC.AutoLase and o.Config.JTAC.AutoLase.SearchRadius), + tostring(o.Config.JTAC.AutoLase and o.Config.JTAC.AutoLase.RefreshSeconds), + tostring(o.Config.JTAC.AutoLase and o.Config.JTAC.AutoLase.IdleRescanSeconds), + tostring(o.Config.JTAC.LockType), + tostring(o.Config.JTAC.Verbose), + jtacInterval)) + end + + table.insert(CTLD._instances, o) + o:_ensureBackgroundTasks() + local versionLabel = CTLD.Version or 'unknown' + _msgCoalition(o.Side, string.format('CTLD %s initialized for coalition', versionLabel)) + return o +end + +function CTLD:InitZones() + self.PickupZones = {} + self.DropZones = {} + self.FOBZones = {} + self.MASHZones = {} + self.SalvageDropZones = {} + self._ZoneDefs = { PickupZones = {}, DropZones = {}, FOBZones = {}, MASHZones = {}, SalvageDropZones = {} } + self._ZoneActive = { Pickup = {}, Drop = {}, FOB = {}, MASH = {}, SalvageDrop = {} } + for _,z in ipairs(self.Config.Zones.PickupZones or {}) do + local mz = _findZone(z) + if mz then + table.insert(self.PickupZones, mz) + local name = mz:GetName() + self._ZoneDefs.PickupZones[name] = z + if self._ZoneActive.Pickup[name] == nil then self._ZoneActive.Pickup[name] = (z.active ~= false) end + end + end + for _,z in ipairs(self.Config.Zones.DropZones or {}) do + local mz = _findZone(z) + if mz then + table.insert(self.DropZones, mz) + local name = mz:GetName() + self._ZoneDefs.DropZones[name] = z + if self._ZoneActive.Drop[name] == nil then self._ZoneActive.Drop[name] = (z.active ~= false) end + end + end + for _,z in ipairs(self.Config.Zones.FOBZones or {}) do + local mz = _findZone(z) + if mz then + table.insert(self.FOBZones, mz) + local name = mz:GetName() + self._ZoneDefs.FOBZones[name] = z + if self._ZoneActive.FOB[name] == nil then self._ZoneActive.FOB[name] = (z.active ~= false) end + end + end + for _,z in ipairs(self.Config.Zones.MASHZones or {}) do + local mz = _findZone(z) + if mz then + table.insert(self.MASHZones, mz) + local name = mz:GetName() + self._ZoneDefs.MASHZones[name] = z + if self._ZoneActive.MASH[name] == nil then self._ZoneActive.MASH[name] = (z.active ~= false) end + end + end + for _,z in ipairs(self.Config.Zones.SalvageDropZones or {}) do + local mz = _findZone(z) + if mz then + table.insert(self.SalvageDropZones, mz) + local name = mz:GetName() + if z and z.side == nil then z.side = self.Side end + self._ZoneDefs.SalvageDropZones[name] = z + if self._ZoneActive.SalvageDrop[name] == nil then self._ZoneActive.SalvageDrop[name] = (z.active ~= false) end + end + end +end + +-- Validate configured zone names exist in the mission; warn coalition if any are missing. +function CTLD:ValidateZones() + local function zoneExistsByName(name) + if not name or name == '' then return false end + if trigger and trigger.misc and trigger.misc.getZone then + local z = trigger.misc.getZone(name) + if z then return true end + end + if ZONE and ZONE.FindByName then + local mz = ZONE:FindByName(name) + if mz then return true end + end + return false + end + + local function sideToStr(s) + if coalition and coalition.side then + if s == coalition.side.BLUE then return 'BLUE' end + if s == coalition.side.RED then return 'RED' end + if s == coalition.side.NEUTRAL then return 'NEUTRAL' end + end + return tostring(s) + end + + local function join(t) + local s = '' + for i,name in ipairs(t) do s = s .. (i>1 and ', ' or '') .. tostring(name) end + return s + end + + local missing = { Pickup = {}, Drop = {}, FOB = {}, MASH = {}, SalvageDrop = {} } + local found = { Pickup = {}, Drop = {}, FOB = {}, MASH = {}, SalvageDrop = {} } + local coords = { Pickup = 0, Drop = 0, FOB = 0, MASH = 0, SalvageDrop = 0 } + + for _,z in ipairs(self.Config.Zones.PickupZones or {}) do + if z.name then + if zoneExistsByName(z.name) then table.insert(found.Pickup, z.name) else table.insert(missing.Pickup, z.name) end + elseif z.coord then + coords.Pickup = coords.Pickup + 1 + end + end + for _,z in ipairs(self.Config.Zones.DropZones or {}) do + if z.name then + if zoneExistsByName(z.name) then table.insert(found.Drop, z.name) else table.insert(missing.Drop, z.name) end + elseif z.coord then + coords.Drop = coords.Drop + 1 + end + end + for _,z in ipairs(self.Config.Zones.FOBZones or {}) do + if z.name then + if zoneExistsByName(z.name) then table.insert(found.FOB, z.name) else table.insert(missing.FOB, z.name) end + elseif z.coord then + coords.FOB = coords.FOB + 1 + end + end + for _,z in ipairs(self.Config.Zones.MASHZones or {}) do + if z.name then + if zoneExistsByName(z.name) then table.insert(found.MASH, z.name) else table.insert(missing.MASH, z.name) end + elseif z.coord then + coords.MASH = coords.MASH + 1 + end + end + for _,z in ipairs(self.Config.Zones.SalvageDropZones or {}) do + if z.name then + if zoneExistsByName(z.name) then table.insert(found.SalvageDrop, z.name) else table.insert(missing.SalvageDrop, z.name) end + elseif z.coord then + coords.SalvageDrop = coords.SalvageDrop + 1 + end + end + + -- Log a concise summary to dcs.log + local sideStr = sideToStr(self.Side) + _logVerbose(string.format('[ZoneValidation][%s] Pickup: configured=%d (named=%d, coord=%d) found=%d missing=%d', + sideStr, + #(self.Config.Zones.PickupZones or {}), #found.Pickup + #missing.Pickup, coords.Pickup, #found.Pickup, #missing.Pickup)) + _logVerbose(string.format('[ZoneValidation][%s] Drop : configured=%d (named=%d, coord=%d) found=%d missing=%d', + sideStr, + #(self.Config.Zones.DropZones or {}), #found.Drop + #missing.Drop, coords.Drop, #found.Drop, #missing.Drop)) + _logVerbose(string.format('[ZoneValidation][%s] FOB : configured=%d (named=%d, coord=%d) found=%d missing=%d', + sideStr, + #(self.Config.Zones.FOBZones or {}), #found.FOB + #missing.FOB, coords.FOB, #found.FOB, #missing.FOB)) + _logVerbose(string.format('[ZoneValidation][%s] MASH : configured=%d (named=%d, coord=%d) found=%d missing=%d', + sideStr, + #(self.Config.Zones.MASHZones or {}), #found.MASH + #missing.MASH, coords.MASH, #found.MASH, #missing.MASH)) + _logVerbose(string.format('[ZoneValidation][%s] Salvage: configured=%d (named=%d, coord=%d) found=%d missing=%d', + sideStr, + #(self.Config.Zones.SalvageDropZones or {}), #found.SalvageDrop + #missing.SalvageDrop, coords.SalvageDrop, #found.SalvageDrop, #missing.SalvageDrop)) + + local anyMissing = (#missing.Pickup > 0) or (#missing.Drop > 0) or (#missing.FOB > 0) or (#missing.MASH > 0) or (#missing.SalvageDrop > 0) + if anyMissing then + if #missing.Pickup > 0 then + local msg = 'CTLD config warning: Missing Pickup Zones: '..join(missing.Pickup) + _msgCoalition(self.Side, msg); _logError('[ZoneValidation]['..sideStr..'] '..msg) + end + if #missing.Drop > 0 then + local msg = 'CTLD config warning: Missing Drop Zones: '..join(missing.Drop) + _msgCoalition(self.Side, msg); _logError('[ZoneValidation]['..sideStr..'] '..msg) + end + if #missing.FOB > 0 then + local msg = 'CTLD config warning: Missing FOB Zones: '..join(missing.FOB) + _msgCoalition(self.Side, msg); _logError('[ZoneValidation]['..sideStr..'] '..msg) + end + if #missing.MASH > 0 then + local msg = 'CTLD config warning: Missing MASH Zones: '..join(missing.MASH) + _msgCoalition(self.Side, msg); _logError('[ZoneValidation]['..sideStr..'] '..msg) + end + if #missing.SalvageDrop > 0 then + local msg = 'CTLD config warning: Missing Salvage Drop Zones: '..join(missing.SalvageDrop) + _msgCoalition(self.Side, msg); _logError('[ZoneValidation]['..sideStr..'] '..msg) + end + else + _logVerbose(string.format('[ZoneValidation][%s] All configured zone names resolved successfully.', sideStr)) + end + + self._MissingZones = missing +end +-- #endregion Construction + +-- ========================= +-- Menus +-- ========================= +-- #region Menus +function CTLD:InitMenus() + if self.Config.UseGroupMenus then + -- Create placeholder menu at mission start to reserve F10 position if requested + if self.Config.CreateMenuAtMissionStart then + -- Create a coalition-level placeholder that will be replaced by per-group menus on birth + self.PlaceholderMenu = MENU_COALITION:New(self.Side, self.Config.RootMenuName or 'CTLD') + MENU_COALITION_COMMAND:New(self.Side, 'Spawn in an aircraft to see options', self.PlaceholderMenu, function() + _msgCoalition(self.Side, 'CTLD menus will appear when you spawn in a transport aircraft.') + end) + end + self:WireBirthHandler() + -- No coalition-level root when using per-group menus; Admin/Help is nested under each group's CTLD menu + else + self.MenuRoot = MENU_COALITION:New(self.Side, self.Config.RootMenuName or 'CTLD') + self:BuildCoalitionMenus(self.MenuRoot) + self:InitCoalitionAdminMenu() + end +end + +function CTLD:WireBirthHandler() + local handler = EVENTHANDLER:New() + handler:HandleEvent(EVENTS.Birth) + handler:HandleEvent(EVENTS.Dead) + handler:HandleEvent(EVENTS.Crash) + handler:HandleEvent(EVENTS.PilotDead) + handler:HandleEvent(EVENTS.Ejection) + handler:HandleEvent(EVENTS.PlayerLeaveUnit) + local selfref = self + + local function hasTrackedState(gname) + if not gname then return false end + if selfref.MenusByGroup and selfref.MenusByGroup[gname] then return true end + local tbls = { + CTLD._inStockMenus, + CTLD._loadedCrates, + CTLD._troopsLoaded, + CTLD._loadedTroopTypes, + CTLD._deployedTroops, + CTLD._buildConfirm, + CTLD._buildCooldown, + CTLD._coachOverride, + CTLD._medevacUnloadStates, + CTLD._medevacLoadStates, + CTLD._medevacEnrouteStates, + } + for _, tbl in ipairs(tbls) do + if tbl and tbl[gname] then return true end + end + if CTLD._msgState and CTLD._msgState['GRP:'..gname] then return true end + return false + end + + local function teardownIfGroupInactive(eventData, reason) + if not eventData then return end + local unit = eventData.IniUnit + local group = eventData.IniGroup or (unit and unit.GetGroup and unit:GetGroup()) or nil + if not group or not group.GetName then return end + if group.GetCoalition and group:GetCoalition() ~= selfref.Side then return end + local gname = group:GetName() + if not gname or gname == '' then return end + if not hasTrackedState(gname) then return end + local allowed = selfref.Config and selfref.Config.AllowedAircraft or {} + if _groupHasAliveTransport(group, allowed) then return end + selfref:_cleanupTransportGroup(group, gname) + if reason then + _logDebug(string.format('[MenuCleanup] Group %s removed due to %s', gname, reason)) + end + end + + local function scheduleDeferredCleanup(group) + if not (group and group.GetName) then return end + local gname = group:GetName() + if not gname or gname == '' then return end + if not hasTrackedState(gname) then return end + if not (timer and timer.scheduleFunction) then return end + timer.scheduleFunction(function(arg) + local name = arg and arg.groupName or nil + if not name then return nil end + if not selfref then return nil end + local grp = GROUP and GROUP:FindByName(name) or nil + local allowed = selfref.Config and selfref.Config.AllowedAircraft or {} + if grp and _groupHasAliveTransport(grp, allowed) then + return nil + end + selfref:_cleanupTransportGroup(grp, name) + _logDebug(string.format('[MenuCleanup] Group %s cleaned up after player left', name)) + return nil + end, { groupName = gname }, timer.getTime() + 3) + end + + function handler:OnEventBirth(eventData) + local unit = eventData.IniUnit + if not unit or not unit:IsAlive() then return end + if unit:GetCoalition() ~= selfref.Side then return end + local typ = _getUnitType(unit) + if not _isIn(selfref.Config.AllowedAircraft, typ) then return end + local grp = unit:GetGroup() + if not grp then return end + local gname = grp:GetName() + if selfref.MenusByGroup[gname] then return end + selfref.MenusByGroup[gname] = selfref:BuildGroupMenus(grp) + _msgGroup(grp, 'CTLD menu available (F10)') + end + + function handler:OnEventDead(eventData) + teardownIfGroupInactive(eventData, 'Dead') + end + + function handler:OnEventCrash(eventData) + teardownIfGroupInactive(eventData, 'Crash') + end + + function handler:OnEventPilotDead(eventData) + teardownIfGroupInactive(eventData, 'PilotDead') + end + + function handler:OnEventEjection(eventData) + teardownIfGroupInactive(eventData, 'Ejection') + end + + function handler:OnEventPlayerLeaveUnit(eventData) + local unit = eventData and eventData.IniUnit + if not unit then return end + if unit.GetCoalition and unit:GetCoalition() ~= selfref.Side then return end + local group = unit.GetGroup and unit:GetGroup() or nil + if not group then return end + scheduleDeferredCleanup(group) + end + + self.BirthHandler = handler +end + +function CTLD:BuildGroupMenus(group) + local root = MENU_GROUP:New(group, self.Config.RootMenuName or 'CTLD') + -- Safe menu command helper: wraps callbacks to prevent silent errors + local function CMD(title, parent, cb) + return MENU_GROUP_COMMAND:New(group, title, parent, function() + local ok, err = pcall(cb) + if not ok then + _logError('Menu error: '..tostring(err)) + MESSAGE:New('CTLD menu error: '..tostring(err), 8):ToGroup(group) + end + end) + end + + -- Initialize per-player coach preference from default + local gname = group:GetName() + CTLD._coachOverride = CTLD._coachOverride or {} + if CTLD._coachOverride[gname] == nil then + local coachCfg = CTLD.HoverCoachConfig or {} + CTLD._coachOverride[gname] = coachCfg.coachOnByDefault + end + + -- Top-level roots per requested structure + local opsRoot = MENU_GROUP:New(group, 'Operations', root) + local logRoot = MENU_GROUP:New(group, 'Logistics', root) + local toolsRoot = MENU_GROUP:New(group, 'Field Tools', root) + local navRoot = MENU_GROUP:New(group, 'Navigation', root) + local adminRoot = MENU_GROUP:New(group, 'Admin/Help', root) + + local prefsMenu = MENU_GROUP:New(group, 'Preferences', adminRoot) + CMD('Use Metric Units', prefsMenu, function() self:_SetGroupUnitPreference(group, 'metric') end) + CMD('Use Imperial Units', prefsMenu, function() self:_SetGroupUnitPreference(group, 'imperial') end) + CMD('Use Mission Default Units', prefsMenu, function() self:_SetGroupUnitPreference(group, nil) end) + CMD('Show My Units Setting', prefsMenu, function() self:_ShowGroupUnitPreference(group) end) + + -- Admin/Help -> Player Guides (moved to top of Admin/Help) + local help = MENU_GROUP:New(group, 'Player Guides', adminRoot) + MENU_GROUP_COMMAND:New(group, 'CTLD Basics (2-minute tour)', help, function() + local lines = {} + table.insert(lines, 'CTLD Basics - 2 minute tour') + table.insert(lines, '') + table.insert(lines, 'Loop: Request -> Deliver -> Build -> Fight') + table.insert(lines, '- Request crates at an ACTIVE Supply Zone (Pickup).') + table.insert(lines, '- Deliver crates to the build point (within Build Radius).') + table.insert(lines, '- Build units or sites with "Build Here" (confirm + cooldown).') + table.insert(lines, '- Optional: set Attack or Defend behavior when building.') + table.insert(lines, '') + table.insert(lines, 'Key concepts:') + table.insert(lines, '- Zones: Pickup (supply), Drop (mission targets), FOB (forward supply).') + table.insert(lines, '- Inventory: stock is tracked per zone; requests consume stock there.') + table.insert(lines, '- FOBs: building one creates a local supply point with seeded stock.') + table.insert(lines, '- Advanced: SAM site repair crates, AI attack orders, EWR/JTAC support.') + MESSAGE:New(table.concat(lines, '\n'), 35):ToGroup(group) + end) + MENU_GROUP_COMMAND:New(group, 'Zones - Guide', help, function() + local lines = {} + table.insert(lines, 'CTLD Zones - Guide') + table.insert(lines, '') + table.insert(lines, 'Zone types:') + table.insert(lines, '- Pickup (Supply): Request crates and load troops here. Crate requests require proximity to an ACTIVE pickup zone (default within 10 km).') + table.insert(lines, '- Drop: Mission-defined delivery or rally areas. Some missions may require delivery or deployment at these zones (see briefing).') + table.insert(lines, '- FOB: Forward Operating Base areas. Some recipes (FOB Site) can be built here; if FOB restriction is enabled, FOB-only builds must be inside an FOB zone.') + table.insert(lines, '') + table.insert(lines, 'Colors and map marks:') + table.insert(lines, '- Pickup zone crate spawns are marked with smoke in the configured color. Admin/Help -> Draw CTLD Zones on Map draws zone circles and labels on F10.') + table.insert(lines, '- Use Admin/Help -> Clear CTLD Map Drawings to remove the drawings. Drawings are read-only if configured.') + table.insert(lines, '') + table.insert(lines, 'How to use zones:') + table.insert(lines, '- To request crates: move within the pickup zone distance and use CTLD -> Request Crate.') + table.insert(lines, '- To load troops: must be inside a Pickup zone if troop loading restriction is enabled.') + table.insert(lines, '- Navigation: CTLD -> Coach & Nav -> Vectors to Nearest Pickup Zone gives bearing and range.') + table.insert(lines, '- Activation: Zones can be active/inactive per mission logic; inactive pickup zones block crate requests.') + table.insert(lines, '') + table.insert(lines, string.format('Build Radius: about %d m to collect nearby crates when building.', self.Config.BuildRadius or 60)) + table.insert(lines, string.format('Pickup Zone Max Distance: about %d m to request crates.', self.Config.PickupZoneMaxDistance or 10000)) + MESSAGE:New(table.concat(lines, '\n'), 40):ToGroup(group) + end) + MENU_GROUP_COMMAND:New(group, 'Inventory - How It Works', help, function() + local inv = self.Config.Inventory or {} + local enabled = inv.Enabled ~= false + local showHint = inv.ShowStockInMenu == true + local fobPct = math.floor(((inv.FOBStockFactor or 0.25) * 100) + 0.5) + local lines = {} + table.insert(lines, 'CTLD Inventory - How It Works') + table.insert(lines, '') + table.insert(lines, 'Overview:') + table.insert(lines, '- Inventory is tracked per Supply (Pickup) Zone and per FOB. Requests consume stock at that location.') + table.insert(lines, string.format('- Inventory is %s.', enabled and 'ENABLED' or 'DISABLED')) + table.insert(lines, '') + table.insert(lines, 'Starting stock:') + table.insert(lines, '- Each configured Supply Zone is seeded from the catalog initialStock for every crate type at mission start.') + table.insert(lines, string.format('- When you build a FOB, it creates a small Supply Zone with stock seeded at ~%d%% of initialStock.', fobPct)) + table.insert(lines, '') + table.insert(lines, 'Requesting crates:') + table.insert(lines, '- You must be within range of an ACTIVE Supply Zone to request crates; stock is decremented on spawn.') + table.insert(lines, '- If out of stock for a type at that zone, requests are denied for that type until resupplied (mission logic).') + table.insert(lines, '') + table.insert(lines, 'UI hints:') + table.insert(lines, string.format('- Show stock in menu labels: %s.', showHint and 'ON' or 'OFF')) + table.insert(lines, '- Some missions may include an "In Stock Here" list showing only items available at the nearest zone.') + MESSAGE:New(table.concat(lines, '\n'), 40):ToGroup(group) + end) + + MENU_GROUP_COMMAND:New(group, 'Troop Transport & JTAC Use', help, function() + local lines = {} + table.insert(lines, 'Troop Transport & JTAC Use') + table.insert(lines, '') + table.insert(lines, 'Troops:') + table.insert(lines, '- Load inside an ACTIVE Supply Zone (if mission enforces it).') + table.insert(lines, '- Deploy with Defend (hold) or Attack (advance to targets/bases).') + table.insert(lines, '- Attack uses a search radius and moves at configured speed.') + table.insert(lines, '') + table.insert(lines, 'JTAC:') + table.insert(lines, '- Build JTAC units (MRAP/Tigr or drones) to support target marking.') + table.insert(lines, '- JTAC helps with target designation/SA; details depend on mission setup.') + MESSAGE:New(table.concat(lines, '\n'), 35):ToGroup(group) + end) + MENU_GROUP_COMMAND:New(group, 'Crates 101: Requesting and Handling', help, function() + local lines = {} + table.insert(lines, 'Crates 101 - Requesting and Handling') + table.insert(lines, '') + table.insert(lines, '- Request crates near an ACTIVE Supply Zone; max distance is configurable.') + table.insert(lines, '- Menu labels show the total crates required for a recipe.') + table.insert(lines, '- Drop crates close together but avoid overlap; smoke marks spawns.') + table.insert(lines, '- Use Coach & Nav tools: vectors to nearest pickup zone, re-mark crate with smoke.') + MESSAGE:New(table.concat(lines, '\n'), 35):ToGroup(group) + end) + MENU_GROUP_COMMAND:New(group, 'Hover Pickup & Slingloading', help, function() + local coachCfg = CTLD.HoverCoachConfig or {} + local aglMin = (coachCfg.thresholds and coachCfg.thresholds.aglMin) or 5 + local aglMax = (coachCfg.thresholds and coachCfg.thresholds.aglMax) or 20 + local capGS = (coachCfg.thresholds and coachCfg.thresholds.captureGS) or (4/3.6) + local hold = (coachCfg.thresholds and coachCfg.thresholds.stabilityHold) or 1.8 + local lines = {} + table.insert(lines, 'Hover Pickup & Slingloading') + table.insert(lines, '') + table.insert(lines, string.format('- Hover pickup: hold AGL %d-%d m, speed < %.1f m/s, for ~%.1f s to auto-load.', aglMin, aglMax, capGS, hold)) + table.insert(lines, '- Keep steady within ~15 m of the crate; Hover Coach gives cues if enabled.') + table.insert(lines, '- Slingloading tips: avoid rotor wash over stacks; approach from upwind; re-mark crate with smoke if needed.') + MESSAGE:New(table.concat(lines, '\n'), 35):ToGroup(group) + end) + MENU_GROUP_COMMAND:New(group, 'Build System: Build Here and Advanced', help, function() + local br = self.Config.BuildRadius or 60 + local win = self.Config.BuildConfirmWindowSeconds or 10 + local cd = self.Config.BuildCooldownSeconds or 60 + local lines = {} + table.insert(lines, 'Build System - Build Here and Advanced') + table.insert(lines, '') + table.insert(lines, string.format('- Build Here collects crates within ~%d m. Double-press within %d s to confirm.', br, win)) + table.insert(lines, string.format('- Cooldown: about %d s per group after a successful build.', cd)) + table.insert(lines, '- Advanced Build lets you choose Defend (hold) or Attack (move).') + table.insert(lines, '- Static or unsuitable units will hold even if Attack is chosen.') + table.insert(lines, '- FOB-only recipes must be inside an FOB zone when restriction is enabled.') + MESSAGE:New(table.concat(lines, '\n'), 40):ToGroup(group) + end) + MENU_GROUP_COMMAND:New(group, 'FOBs: Forward Supply & Why They Matter', help, function() + local fobPct = math.floor(((self.Config.Inventory and self.Config.Inventory.FOBStockFactor or 0.25) * 100) + 0.5) + local lines = {} + table.insert(lines, 'FOBs - Forward Supply and Why They Matter') + table.insert(lines, '') + table.insert(lines, '- Build a FOB by assembling its crate recipe (see Recipe Info).') + table.insert(lines, string.format('- A new local Supply Zone is created and seeded at ~%d%% of initial stock.', fobPct)) + table.insert(lines, '- FOBs shorten logistics legs and increase throughput toward the front.') + table.insert(lines, '- If enabled, FOB-only builds must occur inside FOB zones.') + MESSAGE:New(table.concat(lines, '\n'), 35):ToGroup(group) + end) + MENU_GROUP_COMMAND:New(group, 'SAM Sites: Building, Repairing, and Augmenting', help, function() + local br = self.Config.BuildRadius or 60 + local lines = {} + table.insert(lines, 'SAM Sites - Building, Repairing, and Augmenting') + table.insert(lines, '') + table.insert(lines, 'Build:') + table.insert(lines, '- Assemble site recipes using the required component crates (see menu labels). Build Here will place the full site.') + table.insert(lines, '') + table.insert(lines, 'Repair/Augment (merged):') + table.insert(lines, '- Request the matching "Repair/Launcher +1" crate for your site type (HAWK, Patriot, KUB, BUK).') + table.insert(lines, string.format('- Drop repair crate(s) within ~%d m of the site, then use Build Here (confirm window applies).', br)) + table.insert(lines, '- The nearest matching site (within a local search) is respawned fully repaired; +1 launcher per crate, up to caps.') + table.insert(lines, '- Caps: HAWK 6, Patriot 6, KUB 3, BUK 6. Extra crates beyond the cap are not consumed.') + table.insert(lines, '- Must match coalition and site type; otherwise no changes are applied.') + table.insert(lines, '- Respawn is required to apply repairs/augmentation due to DCS limitations.') + table.insert(lines, '') + table.insert(lines, 'Placement tips:') + table.insert(lines, '- Space launchers to avoid masking; keep radars with good line-of-sight; avoid fratricide arcs.') + MESSAGE:New(table.concat(lines, '\n'), 45):ToGroup(group) + end) + MENU_GROUP_COMMAND:New(group, 'MASH & Salvage System', help, function() + local lines = {} + table.insert(lines, 'MASH & Salvage System - Player Guide') + table.insert(lines, '') + table.insert(lines, 'What is it?') + table.insert(lines, '- MASH (Mobile Army Surgical Hospital) zones accept MEDEVAC crew deliveries.') + table.insert(lines, '- When ground vehicles are destroyed, crews spawn nearby and call for rescue.') + table.insert(lines, '- Rescuing crews and delivering them to MASH earns Salvage Points for your coalition.') + table.insert(lines, '- Salvage Points let you build out-of-stock items, keeping logistics flowing.') + table.insert(lines, '') + table.insert(lines, 'How MEDEVAC works:') + table.insert(lines, '- Vehicle destroyed β†’ crew spawns after delay with invulnerability period.') + table.insert(lines, '- MEDEVAC request announced with grid coordinates and salvage value.') + table.insert(lines, '- Crews have a time limit (default 60 minutes); failure = crew KIA and vehicle lost.') + table.insert(lines, '') + table.insert(lines, 'Pickup Methods:') + table.insert(lines, '- AUTO: Land within 500m of crew - they will run to you and board automatically!') + table.insert(lines, '- HOVER: Fly close, hover nearby, load troops normally - system detects MEDEVAC crew.') + table.insert(lines, '- Original vehicle respawns when crew is picked up (if enabled).') + table.insert(lines, '') + table.insert(lines, 'Delivering to MASH:') + table.insert(lines, '- AUTO: Land in any MASH zone - crews unload automatically after 2 seconds.') + table.insert(lines, '- MANUAL: Deploy troops inside MASH zone - salvage points awarded automatically.') + table.insert(lines, '- Coalition message shows points earned and new total.') + table.insert(lines, '') + table.insert(lines, 'Using Salvage Points:') + table.insert(lines, '- When crate requests fail (out of stock), salvage auto-applies if available.') + table.insert(lines, '- Each catalog item has a salvage cost (usually matches its value).') + table.insert(lines, '- Check current salvage: Coach & Nav -> MEDEVAC Status.') + table.insert(lines, '') + table.insert(lines, 'Mobile MASH:') + table.insert(lines, '- Build Mobile MASH crates to deploy field hospitals anywhere.') + table.insert(lines, '- Mobile MASH creates a new delivery zone with radio beacon.') + table.insert(lines, '- Multiple mobile MASHs can be deployed for forward operations.') + table.insert(lines, '') + table.insert(lines, 'Best practices:') + table.insert(lines, '- Monitor MEDEVAC requests: Coach & Nav -> Vectors to Nearest MEDEVAC Crew.') + table.insert(lines, '- Prioritize high-value vehicles (armor, AA) for maximum salvage.') + table.insert(lines, '- Deploy Mobile MASH near active combat zones to reduce delivery time.') + table.insert(lines, '- Coordinate with team: share MEDEVAC locations and salvage status.') + table.insert(lines, '- Watch for warnings: 15min and 5min alerts before crew timeout.') + MESSAGE:New(table.concat(lines, '\n'), 50):ToGroup(group) + end) + + -- Operations -> Troop Transport + local troopsRoot = MENU_GROUP:New(group, 'Troop Transport', opsRoot) + CMD('Load Troops', troopsRoot, function() self:LoadTroops(group) end) + -- Optional typed troop loading submenu + do + local typedRoot = MENU_GROUP:New(group, 'Load Troops (Type)', troopsRoot) + local tcfg = (self.Config.Troops and self.Config.Troops.TroopTypes) or {} + -- Stable order per common roles + local order = { 'AS', 'AA', 'AT', 'AR' } + local seen = {} + local function addItem(key) + local def = tcfg[key] + if not def then return end + local label = (def.label or key) + local size = def.size or 6 + CMD(string.format('%s (%d)', label, size), typedRoot, function() + self:LoadTroops(group, { typeKey = key }) + end) + seen[key] = true + end + for _,k in ipairs(order) do addItem(k) end + -- Add any additional custom types not in the default order + for k,_ in pairs(tcfg) do if not seen[k] then addItem(k) end end + end + do + local tr = (self.Config.AttackAI and self.Config.AttackAI.TroopSearchRadius) or 3000 + CMD('Deploy [Hold Position]', troopsRoot, function() self:UnloadTroops(group, { behavior = 'defend' }) end) + CMD(string.format('Deploy [Attack (%dm)]', tr), troopsRoot, function() self:UnloadTroops(group, { behavior = 'attack' }) end) + end + + -- Operations -> JTAC + do + local jtacRoot = MENU_GROUP:New(group, 'JTAC', opsRoot) + -- Track per-group active JTAC selection + CTLD._activeJTACByGroup = CTLD._activeJTACByGroup or {} + + -- Select Active JTAC: cycle to nearest or next if already selected + CMD('Select Active JTAC (cycle nearest)', jtacRoot, function() self:JTAC_SelectActiveForGroup(group, { mode = 'nearest' }) end) + + -- Control submenu + local ctl = MENU_GROUP:New(group, 'Control', jtacRoot) + CMD('Pause/Resume Auto-Lase', ctl, function() self:JTAC_TogglePause(group) end) + CMD('Release Current Target', ctl, function() self:JTAC_ReleaseTarget(group) end) + CMD('Force Rescan / Reacquire', ctl, function() self:JTAC_ForceRescan(group) end) + + -- Targeting submenu + local tgt = MENU_GROUP:New(group, 'Targeting', jtacRoot) + local lock = MENU_GROUP:New(group, 'Lock Filter', tgt) + CMD('All', lock, function() self:JTAC_SetLockFilter(group, 'all') end) + CMD('Vehicles only', lock, function() self:JTAC_SetLockFilter(group, 'vehicle') end) + CMD('Troops only', lock, function() self:JTAC_SetLockFilter(group, 'troop') end) + local prof = MENU_GROUP:New(group, 'Priority Profile', tgt) + CMD('Threat (SAM>AAA>Armor>IFV>Arty>Inf)', prof, function() self:JTAC_SetPriority(group, 'threat') end) + CMD('Armor-first', prof, function() self:JTAC_SetPriority(group, 'armor') end) + CMD('Soft-first', prof, function() self:JTAC_SetPriority(group, 'soft') end) + CMD('Infantry-last', prof, function() self:JTAC_SetPriority(group, 'inf_last') end) + + -- Range & Effects submenu + local rng = MENU_GROUP:New(group, 'Range & Effects', jtacRoot) + local sr = MENU_GROUP:New(group, 'Search Radius', rng) + for _,km in ipairs({4,6,8,10,12}) do + CMD(string.format('%d km', km), sr, function() self:JTAC_SetSearchRadius(group, km*1000) end) + end + local sm = MENU_GROUP:New(group, 'Smoke', rng) + CMD('Toggle Smoke On/Off', sm, function() self:JTAC_ToggleSmoke(group) end) + CMD('Color: Blue', sm, function() self:JTAC_SetSmokeColor(group, 'blue') end) + CMD('Color: Orange', sm, function() self:JTAC_SetSmokeColor(group, 'orange') end) + + -- Comms & Laser submenu + local comm = MENU_GROUP:New(group, 'Comms & Laser', jtacRoot) + CMD('Announcements On/Off', comm, function() self:JTAC_ToggleAnnouncements(group) end) + -- Laser code management can be added in phase 2 + + -- Utilities + local util = MENU_GROUP:New(group, 'Utilities', jtacRoot) + CMD('Mark Current Target on Map', util, function() self:JTAC_MarkCurrentTarget(group) end) + -- Rename/Dismiss can be added in phase 2 + + -- Status & Diagnostics (keep at bottom of JTAC) + CMD('List JTAC Status', jtacRoot, function() self:ListJTACStatus(group) end) + CMD('JTAC Diagnostics', jtacRoot, function() self:JTACDiagnostics(group) end) + end + + -- Operations -> MEDEVAC + if CTLD.MEDEVAC and CTLD.MEDEVAC.Enabled then + local medevacRoot = MENU_GROUP:New(group, 'MEDEVAC', opsRoot) + CMD('Show Onboard Manifest', medevacRoot, function() self:ShowOnboardManifest(group) end) + + -- List Active MEDEVAC Requests + CMD('List Active MEDEVAC Requests', medevacRoot, function() self:ListActiveMEDEVACRequests(group) end) + + -- Nearest MEDEVAC Location + CMD('Nearest MEDEVAC Location', medevacRoot, function() self:NearestMEDEVACLocation(group) end) + + -- Coalition Salvage Points + CMD('Coalition Salvage Points', medevacRoot, function() self:ShowSalvagePoints(group) end) + + -- Vectors to Nearest MEDEVAC + CMD('Vectors to Nearest MEDEVAC', medevacRoot, function() self:VectorsToNearestMEDEVAC(group) end) + + -- MASH Locations + CMD('MASH Locations', medevacRoot, function() self:ListMASHLocations(group) end) + + -- Pop Smoke at Crew Locations + CMD('Pop Smoke at Crew Locations', medevacRoot, function() self:PopSmokeAtMEDEVACSites(group) end) + + -- Pop Smoke at MASH Zones + CMD('Pop Smoke at MASH Zones', medevacRoot, function() self:PopSmokeAtMASHZones(group) end) + + -- Duplicate guide from Admin/Help -> Player Guides for quick access + MENU_GROUP_COMMAND:New(group, 'MASH & Salvage System - Guide', medevacRoot, function() + local lines = {} + table.insert(lines, 'MASH & Salvage System - Player Guide') + table.insert(lines, '') + table.insert(lines, 'What is it?') + table.insert(lines, '- MASH (Mobile Army Surgical Hospital) zones accept MEDEVAC crew deliveries.') + table.insert(lines, '- When ground vehicles are destroyed, crews spawn nearby and call for rescue.') + table.insert(lines, '- Rescuing crews and delivering them to MASH earns Salvage Points for your coalition.') + table.insert(lines, '- Salvage Points let you build out-of-stock items, keeping logistics flowing.') + table.insert(lines, '') + table.insert(lines, 'How MEDEVAC works:') + table.insert(lines, '- Vehicle destroyed β†’ crew spawns after delay with invulnerability period.') + table.insert(lines, '- MEDEVAC request announced with grid coordinates and salvage value.') + table.insert(lines, '- Crews have a time limit (default 60 minutes); failure = crew KIA and vehicle lost.') + table.insert(lines, '') + table.insert(lines, 'Pickup Methods:') + table.insert(lines, '- AUTO: Land within 500m of crew - they will run to you and board automatically!') + table.insert(lines, '- HOVER: Fly close, hover nearby, load troops normally - system detects MEDEVAC crew.') + table.insert(lines, '- Original vehicle respawns when crew is picked up (if enabled).') + table.insert(lines, '') + table.insert(lines, 'Delivering to MASH:') + table.insert(lines, '- AUTO: Land in any MASH zone - crews unload automatically after 2 seconds.') + table.insert(lines, '- MANUAL: Deploy troops inside MASH zone - salvage points awarded automatically.') + table.insert(lines, '- Coalition message shows points earned and new total.') + table.insert(lines, '') + table.insert(lines, 'Using Salvage Points:') + table.insert(lines, '- When crate requests fail (out of stock), salvage auto-applies if available.') + table.insert(lines, '- Each catalog item has a salvage cost (usually matches its value).') + table.insert(lines, '- Check current salvage: Coach & Nav -> MEDEVAC Status.') + table.insert(lines, '') + table.insert(lines, 'Mobile MASH:') + table.insert(lines, '- Build Mobile MASH crates to deploy field hospitals anywhere.') + table.insert(lines, '- Mobile MASH creates a new delivery zone with radio beacon.') + table.insert(lines, '- Multiple mobile MASHs can be deployed for forward operations.') + table.insert(lines, '') + table.insert(lines, 'Best practices:') + table.insert(lines, '- Monitor MEDEVAC requests: Coach & Nav -> Vectors to Nearest MEDEVAC Crew.') + table.insert(lines, '- Prioritize high-value vehicles (armor, AA) for maximum salvage.') + table.insert(lines, '- Deploy Mobile MASH near active combat zones to reduce delivery time.') + table.insert(lines, '- Coordinate with team: share MEDEVAC locations and salvage status.') + table.insert(lines, '- Watch for warnings: 15min and 5min alerts before crew timeout.') + MESSAGE:New(table.concat(lines, '\n'), 50):ToGroup(group) + end) + + -- Admin/Settings submenu + local medevacAdminRoot = MENU_GROUP:New(group, 'Admin/Settings', medevacRoot) + CMD('Clear All MEDEVAC Missions', medevacAdminRoot, function() self:ClearAllMEDEVACMissions(group) end) + end + + -- Operations (root) -> List JTAC Status (placed at bottom of Operations) + CMD('List JTAC Status', opsRoot, function() self:ListJTACStatus(group) end) + CMD('JTAC Diagnostics', opsRoot, function() self:JTACDiagnostics(group) end) + + -- Logistics -> Crates, Build, and Recipe Details + CMD('Show Onboard Manifest', logRoot, function() self:ShowOnboardManifest(group) end) + local reqRoot = MENU_GROUP:New(group, 'Request Crate', logRoot) + + local crateMgmt = MENU_GROUP:New(group, 'Crate Management', logRoot) + CMD('Drop One Loaded Crate', crateMgmt, function() self:DropLoadedCrates(group, 1) end) + CMD('Drop All Loaded Crates', crateMgmt, function() self:DropLoadedCrates(group, -1) end) + self:_BuildOrRefreshLoadedCrateMenu(group, crateMgmt) + CMD('Re-mark Nearest Crate (Smoke)', crateMgmt, function() + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + local p = unit:GetPointVec3() + local here = { x = p.x, z = p.z } + local bestName, bestMeta, bestd + for name,meta in pairs(CTLD._crates) do + if meta.side == self.Side then + local dx = (meta.point.x - here.x) + local dz = (meta.point.z - here.z) + local d = math.sqrt(dx*dx + dz*dz) + if (not bestd) or d < bestd then + bestName, bestMeta, bestd = name, meta, d + end + end + end + if bestName and bestMeta then + local sx, sz = bestMeta.point.x, bestMeta.point.z + local sy = 0 + if land and land.getHeight then + local ok, h = pcall(land.getHeight, { x = sx, y = sz }) + if ok and type(h) == 'number' then sy = h end + end + local smokeColor = self.Config.PickupZoneSmokeColor + _spawnCrateSmoke({ x = sx, y = sy, z = sz }, smokeColor, self.Config.CrateSmoke, bestName) + _eventSend(self, group, nil, 'crate_re_marked', { id = bestName, mark = 'smoke' }) + else + _msgGroup(group, 'No friendly crates found to mark.') + end + end) + + local buildRoot = MENU_GROUP:New(group, 'Build Menu', logRoot) + CMD('Build Here', buildRoot, function() self:BuildAtGroup(group) end) + self:_BuildOrRefreshBuildAdvancedMenu(group, buildRoot) + MENU_GROUP_COMMAND:New(group, 'Refresh Buildable List', buildRoot, function() + self:_BuildOrRefreshBuildAdvancedMenu(group, buildRoot) + MESSAGE:New('Buildable list refreshed.', 6):ToGroup(group) + end) + + local infoRoot = MENU_GROUP:New(group, 'Recipe Info', logRoot) + if self.Config.UseCategorySubmenus then + local reqSubmenus = {} + local function getRequestSub(catLabel) + if not reqSubmenus[catLabel] then + reqSubmenus[catLabel] = MENU_GROUP:New(group, catLabel, reqRoot) + end + return reqSubmenus[catLabel] + end + + local infoSubs = {} + local function getInfoSub(catLabel) + if not infoSubs[catLabel] then + infoSubs[catLabel] = MENU_GROUP:New(group, catLabel, infoRoot) + end + return infoSubs[catLabel] + end + + local replacementQueue = {} + for key,def in pairs(self.Config.CrateCatalog) do + if not (def and def.hidden) then + local sideOk = (not def.side) or def.side == self.Side + if sideOk then + local catLabel = (def and def.menuCategory) or 'Other' + local reqParent = getRequestSub(catLabel) + local label = self:_formatMenuLabelWithCrates(key, def) + + if def and type(def.requires) == 'table' then + CMD(label, reqParent, function() self:RequestRecipeBundleForGroup(group, key) end) + for reqKey,_ in pairs(def.requires) do + local compDef = self.Config.CrateCatalog[reqKey] + local compSideOk = (not compDef) or (not compDef.side) or compDef.side == self.Side + if compDef and compDef.hidden and compSideOk then + local queue = replacementQueue[catLabel] + if not queue then + queue = { list = {}, seen = {} } + replacementQueue[catLabel] = queue + end + if not queue.seen[reqKey] then + queue.seen[reqKey] = true + table.insert(queue.list, { key = reqKey, def = compDef }) + end + end + end + else + CMD(label, reqParent, function() self:RequestCrateForGroup(group, key) end) + end + + local infoParent = getInfoSub(catLabel) + CMD((def and (def.menu or def.description)) or key, infoParent, function() + local text = self:_formatRecipeInfo(key, def) + _msgGroup(group, text) + end) + end + end + end + + for catLabel,queue in pairs(replacementQueue) do + if queue and queue.list and #queue.list > 0 then + table.sort(queue.list, function(a,b) + local la = (a.def and (a.def.menu or a.def.description)) or a.key + local lb = (b.def and (b.def.menu or b.def.description)) or b.key + return tostring(la) < tostring(lb) + end) + local reqParent = getRequestSub(catLabel) + local replMenu = MENU_GROUP:New(group, 'Replacement Crates', reqParent) + for _,entry in ipairs(queue.list) do + local replLabel = string.format('Replacement: %s', self:_formatMenuLabelWithCrates(entry.key, entry.def)) + CMD(replLabel, replMenu, function() self:RequestCrateForGroup(group, entry.key) end) + end + end + end + else + local replacementList = {} + local replacementSeen = {} + for key,def in pairs(self.Config.CrateCatalog) do + if not (def and def.hidden) then + local sideOk = (not def.side) or def.side == self.Side + if sideOk then + local label = self:_formatMenuLabelWithCrates(key, def) + if def and type(def.requires) == 'table' then + CMD(label, reqRoot, function() self:RequestRecipeBundleForGroup(group, key) end) + for reqKey,_ in pairs(def.requires) do + local compDef = self.Config.CrateCatalog[reqKey] + local compSideOk = (not compDef) or (not compDef.side) or compDef.side == self.Side + if compDef and compDef.hidden and compSideOk and not replacementSeen[reqKey] then + replacementSeen[reqKey] = true + table.insert(replacementList, { key = reqKey, def = compDef }) + end + end + else + CMD(label, reqRoot, function() self:RequestCrateForGroup(group, key) end) + end + + CMD((def and (def.menu or def.description)) or key, infoRoot, function() + local text = self:_formatRecipeInfo(key, def) + _msgGroup(group, text) + end) + end + end + end + + if #replacementList > 0 then + table.sort(replacementList, function(a,b) + local la = (a.def and (a.def.menu or a.def.description)) or a.key + local lb = (b.def and (b.def.menu or b.def.description)) or b.key + return tostring(la) < tostring(lb) + end) + local replMenu = MENU_GROUP:New(group, 'Replacement Crates', reqRoot) + for _,entry in ipairs(replacementList) do + local replLabel = string.format('Replacement: %s', self:_formatMenuLabelWithCrates(entry.key, entry.def)) + CMD(replLabel, replMenu, function() self:RequestCrateForGroup(group, entry.key) end) + end + end + end + + -- Logistics -> Show Inventory at Nearest Pickup Zone/FOB + CMD('Show Inventory at Nearest Zone', logRoot, function() self:ShowNearestZoneInventory(group) end) + + -- Field Tools + CMD('Create Drop Zone (AO)', toolsRoot, function() self:CreateDropZoneAtGroup(group) end) + + -- Salvage Collection Zones submenu + if self.Config.SlingLoadSalvage and self.Config.SlingLoadSalvage.Enabled then + local salvageZoneRoot = MENU_GROUP:New(group, 'Salvage Collection Zones', toolsRoot) + CMD('Create Salvage Zone Here', salvageZoneRoot, function() self:CreateSalvageZoneAtGroup(group) end) + CMD('Show Active Salvage Zones', salvageZoneRoot, function() self:ShowActiveSalvageZones(group) end) + CMD('Retire Oldest Salvage Zone', salvageZoneRoot, function() self:RetireOldestDynamicSalvageZone(group) end) + -- Dynamic per-zone management will be added by _rebuildSalvageZoneMenus + end + + local smokeRoot = MENU_GROUP:New(group, 'Smoke My Location', toolsRoot) + local function smokeHere(color) + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + local p = unit:GetPointVec3() + -- Use full Vec3 to ensure correct placement + trigger.action.smoke({ x = p.x, y = p.y, z = p.z }, color) + end + MENU_GROUP_COMMAND:New(group, 'Green', smokeRoot, function() smokeHere(trigger.smokeColor.Green) end) + MENU_GROUP_COMMAND:New(group, 'Red', smokeRoot, function() smokeHere(trigger.smokeColor.Red) end) + MENU_GROUP_COMMAND:New(group, 'White', smokeRoot, function() smokeHere(trigger.smokeColor.White) end) + MENU_GROUP_COMMAND:New(group, 'Orange', smokeRoot, function() smokeHere(trigger.smokeColor.Orange) end) + MENU_GROUP_COMMAND:New(group, 'Blue', smokeRoot, function() smokeHere(trigger.smokeColor.Blue) end) + + -- Navigation + local gname = group:GetName() + CMD('Request Vectors to Nearest Crate', navRoot, function() + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + local p = unit:GetPointVec3() + local here = { x = p.x, z = p.z } + local bestName, bestMeta, bestd + for name,meta in pairs(CTLD._crates) do + if meta.side == self.Side then + local dx = (meta.point.x - here.x) + local dz = (meta.point.z - here.z) + local d = math.sqrt(dx*dx + dz*dz) + if (not bestd) or d < bestd then + bestName, bestMeta, bestd = name, meta, d + end + end + end + if bestName and bestMeta then + local brg = _bearingDeg(here, bestMeta.point) + local isMetric = _getPlayerIsMetric(unit) + local rngV, rngU = _fmtRange(bestd, isMetric) + _eventSend(self, group, nil, 'vectors_to_crate', { id = bestName, brg = brg, rng = rngV, rng_u = rngU }) + else + _msgGroup(group, 'No friendly crates found.') + end + end) + + -- Sling-Load Salvage vectors + if self.Config.SlingLoadSalvage and self.Config.SlingLoadSalvage.Enabled then + CMD('Vectors to Nearest Salvage Crate', navRoot, function() self:ShowNearestSalvageCrate(group) end) + end + + CMD('Vectors to Nearest Pickup Zone', navRoot, function() + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + local zone = nil + local dist = nil + local list = nil + if self.Config and self.Config.Zones and self.Config.Zones.PickupZones then + list = {} + for _,z in ipairs(self.Config.Zones.PickupZones) do + if (not z.name) or self._ZoneActive.Pickup[z.name] ~= false then table.insert(list, z) end + end + elseif self.PickupZones and #self.PickupZones > 0 then + list = {} + for _,mz in ipairs(self.PickupZones) do + if mz and mz.GetName then + local n = mz:GetName() + if self._ZoneActive.Pickup[n] ~= false then table.insert(list, { name = n }) end + end + end + else + list = {} + end + zone, dist = _nearestZonePoint(unit, list) + if not zone then + local allDefs = self.Config and self.Config.Zones and self.Config.Zones.PickupZones or {} + if allDefs and #allDefs > 0 then + local fbZone, fbDist = _nearestZonePoint(unit, allDefs) + if fbZone then + local up = unit:GetPointVec3(); local zp = fbZone:GetPointVec3() + local from = { x = up.x, z = up.z } + local to = { x = zp.x, z = zp.z } + local brg = _bearingDeg(from, to) + local isMetric = _getPlayerIsMetric(unit) + local rngV, rngU = _fmtRange(fbDist or 0, isMetric) + _eventSend(self, group, nil, 'vectors_to_pickup_zone', { zone = fbZone:GetName(), brg = brg, rng = rngV, rng_u = rngU }) + return + end + end + _eventSend(self, group, nil, 'no_pickup_zones', {}) + return + end + local up = unit:GetPointVec3() + local zp = zone:GetPointVec3() + local from = { x = up.x, z = up.z } + local to = { x = zp.x, z = zp.z } + local brg = _bearingDeg(from, to) + local isMetric = _getPlayerIsMetric(unit) + local rngV, rngU = _fmtRange(dist, isMetric) + _eventSend(self, group, nil, 'vectors_to_pickup_zone', { zone = zone:GetName(), brg = brg, rng = rngV, rng_u = rngU }) + end) + + -- Navigation -> Smoke Nearest Zone (Pickup/Drop/FOB) + CMD('Smoke Nearest Zone (Pickup/Drop/FOB/MASH)', navRoot, function() + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + + -- Build lists of active zones by kind in a format usable by _nearestZonePoint + local function collectActive(kind) + if kind == 'Pickup' then + return self:_collectActivePickupDefs() + elseif kind == 'Drop' then + local out = {} + for _, mz in ipairs(self.DropZones or {}) do + if mz and mz.GetName then + local n = mz:GetName() + if (self._ZoneActive and self._ZoneActive.Drop and self._ZoneActive.Drop[n] ~= false) then + table.insert(out, { name = n }) + end + end + end + return out + elseif kind == 'FOB' then + local out = {} + for _, mz in ipairs(self.FOBZones or {}) do + if mz and mz.GetName then + local n = mz:GetName() + if (self._ZoneActive and self._ZoneActive.FOB and self._ZoneActive.FOB[n] ~= false) then + table.insert(out, { name = n }) + end + end + end + return out + elseif kind == 'MASH' then + local out = {} + if CTLD._mashZones then + for name, data in pairs(CTLD._mashZones) do + if data and data.side == self.Side and data.zone then + table.insert(out, { name = name }) + end + end + end + return out + end + return {} + end + + local bestKind, bestZone, bestDist + for _, k in ipairs({ 'Pickup', 'Drop', 'FOB', 'MASH' }) do + local list = collectActive(k) + if list and #list > 0 then + local z, d = _nearestZonePoint(unit, list) + if z and d and ((not bestDist) or d < bestDist) then + bestKind, bestZone, bestDist = k, z, d + end + end + end + + if not bestZone then + _msgGroup(group, 'No zones available to smoke.') + return + end + + -- Determine smoke point (zone center) + -- _getZoneCenterAndRadius returns (center, radius); call directly to capture center + local center + if self._getZoneCenterAndRadius then center = select(1, self:_getZoneCenterAndRadius(bestZone)) end + if not center then + local v3 = bestZone:GetPointVec3() + center = { x = v3.x, y = v3.y or 0, z = v3.z } + else + center = { x = center.x, y = center.y or 0, z = center.z } + end + + -- Choose smoke color per kind + local color = trigger.smokeColor.Green -- default + if bestKind == 'Pickup' then + color = self.Config.PickupZoneSmokeColor or trigger.smokeColor.Green + elseif bestKind == 'Drop' then + color = trigger.smokeColor.Red + elseif bestKind == 'FOB' then + color = trigger.smokeColor.White + elseif bestKind == 'MASH' then + color = trigger.smokeColor.Orange + end + + -- Apply smoke offset system (use crate smoke config settings) + local smokeConfig = self.Config.CrateSmoke or {} + local smokePos = { + x = center.x, + y = land.getHeight({x = center.x, y = center.z}), + z = center.z + } + local offsetMeters = tonumber(smokeConfig.OffsetMeters) or 5 + local offsetRandom = (smokeConfig.OffsetRandom ~= false) -- default true + local offsetVertical = tonumber(smokeConfig.OffsetVertical) or 2 + + if offsetMeters > 0 then + local angle = 0 + if offsetRandom then + angle = math.random() * 2 * math.pi + end + smokePos.x = smokePos.x + offsetMeters * math.cos(angle) + smokePos.z = smokePos.z + offsetMeters * math.sin(angle) + end + smokePos.y = smokePos.y + offsetVertical + + -- Use MOOSE COORDINATE smoke for better appearance (tall, thin smoke like cargo smoke) + local coord = COORDINATE:New(smokePos.x, smokePos.y, smokePos.z) + if coord and coord.Smoke then + if color == trigger.smokeColor.Green then + coord:SmokeGreen() + elseif color == trigger.smokeColor.Red then + coord:SmokeRed() + elseif color == trigger.smokeColor.White then + coord:SmokeWhite() + elseif color == trigger.smokeColor.Orange then + coord:SmokeOrange() + elseif color == trigger.smokeColor.Blue then + coord:SmokeBlue() + else + coord:SmokeGreen() + end + local distKm = bestDist / 1000 + local distNm = bestDist / 1852 + _msgGroup(group, string.format('Smoked nearest %s zone: %s (%.1f km / %.1f nm)', bestKind, bestZone:GetName(), distKm, distNm)) + elseif trigger and trigger.action and trigger.action.smoke then + -- Fallback to trigger.action.smoke if MOOSE COORDINATE not available + trigger.action.smoke(smokePos, color) + local distKm = bestDist / 1000 + local distNm = bestDist / 1852 + _msgGroup(group, string.format('Smoked nearest %s zone: %s (%.1f km / %.1f nm)', bestKind, bestZone:GetName(), distKm, distNm)) + else + _msgGroup(group, 'Smoke not available in this environment.') + end + end) + + -- Smoke all nearby zones within range + CMD('Smoke All Nearby Zones (5km)', navRoot, function() + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + + local maxRange = 5000 -- 5km in meters + + -- Get unit position + local uname = unit:GetName() + local du = Unit.getByName and Unit.getByName(uname) or nil + if not du or not du:getPoint() then + _msgGroup(group, 'Unable to determine your position.') + return + end + local up = du:getPoint() + local ux, uz = up.x, up.z + + -- Helper function to calculate distance and smoke a zone if in range + local function smokeZoneIfInRange(zoneName, zoneObj, zoneType, smokeColor) + if not zoneObj then return false end + + -- Get zone center + local center + if self._getZoneCenterAndRadius then + center = select(1, self:_getZoneCenterAndRadius(zoneObj)) + end + if not center and zoneObj.GetPointVec3 then + local v3 = zoneObj:GetPointVec3() + center = { x = v3.x, y = v3.y or 0, z = v3.z } + end + + if not center then return false end + + -- Calculate distance + local dx = center.x - ux + local dz = center.z - uz + local dist = math.sqrt(dx*dx + dz*dz) + + if dist <= maxRange then + -- Apply smoke offset system + local smokeConfig = self.Config.CrateSmoke or {} + local smokePos = { + x = center.x, + y = land.getHeight({x = center.x, y = center.z}), + z = center.z + } + local offsetMeters = tonumber(smokeConfig.OffsetMeters) or 5 + local offsetRandom = (smokeConfig.OffsetRandom ~= false) + local offsetVertical = tonumber(smokeConfig.OffsetVertical) or 2 + + if offsetMeters > 0 then + local angle = 0 + if offsetRandom then + angle = math.random() * 2 * math.pi + end + smokePos.x = smokePos.x + offsetMeters * math.cos(angle) + smokePos.z = smokePos.z + offsetMeters * math.sin(angle) + end + smokePos.y = smokePos.y + offsetVertical + + -- Spawn smoke + local coord = COORDINATE:New(smokePos.x, smokePos.y, smokePos.z) + if coord and coord.Smoke then + if smokeColor == trigger.smokeColor.Green then + coord:SmokeGreen() + elseif smokeColor == trigger.smokeColor.Red then + coord:SmokeRed() + elseif smokeColor == trigger.smokeColor.White then + coord:SmokeWhite() + elseif smokeColor == trigger.smokeColor.Orange then + coord:SmokeOrange() + elseif smokeColor == trigger.smokeColor.Blue then + coord:SmokeBlue() + else + coord:SmokeGreen() + end + else + trigger.action.smoke(smokePos, smokeColor) + end + + return true, dist + end + + return false, dist + end + + -- Helper to get color name + local function getColorName(color) + if color == trigger.smokeColor.Green then return "Green" + elseif color == trigger.smokeColor.Red then return "Red" + elseif color == trigger.smokeColor.White then return "White" + elseif color == trigger.smokeColor.Orange then return "Orange" + elseif color == trigger.smokeColor.Blue then return "Blue" + else return "Unknown" end + end + + local count = 0 + local zones = {} + + -- Check Pickup zones + local pickupDefs = self:_collectActivePickupDefs() + for _, def in ipairs(pickupDefs or {}) do + local mz = _findZone(def) + if mz then + -- Check for zone-specific smoke override, then fall back to config default + local zdef = self._ZoneDefs and self._ZoneDefs.PickupZones and self._ZoneDefs.PickupZones[def.name] + local smokeColor = (zdef and zdef.smoke) or self.Config.PickupZoneSmokeColor or trigger.smokeColor.Green + local smoked, dist = smokeZoneIfInRange(def.name, mz, 'Pickup', smokeColor) + if smoked then + count = count + 1 + local zp = mz:GetPointVec3() + local brg = _bearingDeg({ x = ux, z = uz }, { x = zp.x, z = zp.z }) + table.insert(zones, string.format('Pickup: %s - %.1f km @ %03dΒ° (%s)', def.name, dist/1000, brg, getColorName(smokeColor))) + end + end + end + + -- Check Drop zones + for _, mz in ipairs(self.DropZones or {}) do + if mz and mz.GetName then + local n = mz:GetName() + if (self._ZoneActive and self._ZoneActive.Drop and self._ZoneActive.Drop[n] ~= false) then + local smokeColor = trigger.smokeColor.Red + local smoked, dist = smokeZoneIfInRange(n, mz, 'Drop', smokeColor) + if smoked then + count = count + 1 + local zp = mz:GetPointVec3() + local brg = _bearingDeg({ x = ux, z = uz }, { x = zp.x, z = zp.z }) + table.insert(zones, string.format('Drop: %s - %.1f km @ %03dΒ° (%s)', n, dist/1000, brg, getColorName(smokeColor))) + end + end + end + end + + -- Check FOB zones + for _, mz in ipairs(self.FOBZones or {}) do + if mz and mz.GetName then + local n = mz:GetName() + if (self._ZoneActive and self._ZoneActive.FOB and self._ZoneActive.FOB[n] ~= false) then + local smokeColor = trigger.smokeColor.White + local smoked, dist = smokeZoneIfInRange(n, mz, 'FOB', smokeColor) + if smoked then + count = count + 1 + local zp = mz:GetPointVec3() + local brg = _bearingDeg({ x = ux, z = uz }, { x = zp.x, z = zp.z }) + table.insert(zones, string.format('FOB: %s - %.1f km @ %03dΒ° (%s)', n, dist/1000, brg, getColorName(smokeColor))) + end + end + end + end + + -- Check MASH zones + if CTLD._mashZones then + for name, data in pairs(CTLD._mashZones) do + if data and data.side == self.Side and data.zone then + local smokeColor = trigger.smokeColor.Orange + local smoked, dist = smokeZoneIfInRange(name, data.zone, 'MASH', smokeColor) + if smoked then + count = count + 1 + local zp = data.zone:GetPointVec3() + local brg = _bearingDeg({ x = ux, z = uz }, { x = zp.x, z = zp.z }) + table.insert(zones, string.format('MASH: %s - %.1f km @ %03dΒ° (%s)', name, dist/1000, brg, getColorName(smokeColor))) + end + end + end + end + + -- Check Salvage Drop zones + for _, mz in ipairs(self.SalvageDropZones or {}) do + if mz and mz.GetName then + local n = mz:GetName() + local isActive = true + if self._ZoneActive and self._ZoneActive.SalvageDrop then + isActive = (self._ZoneActive.SalvageDrop[n] ~= false) + end + if isActive then + local zdef = self._ZoneDefs and self._ZoneDefs.SalvageDropZones and self._ZoneDefs.SalvageDropZones[n] + local smokeColor = (zdef and zdef.smoke) or trigger.smokeColor.Orange + local smoked, dist = smokeZoneIfInRange(n, mz, 'SalvageDrop', smokeColor) + if smoked then + count = count + 1 + local zp = mz:GetPointVec3() + local brg = _bearingDeg({ x = ux, z = uz }, { x = zp.x, z = zp.z }) + table.insert(zones, string.format('Salvage: %s - %.1f km @ %03dΒ° (%s)', n, dist/1000, brg, getColorName(smokeColor))) + end + end + end + end + + if count == 0 then + _msgGroup(group, string.format('No zones found within %.1f km.', maxRange/1000), 10) + else + local msg = string.format('Smoked %d zone(s) within %.1f km:\n%s', count, maxRange/1000, table.concat(zones, '\n')) + _msgGroup(group, msg, 15) + end + end) + + -- Navigation -> MEDEVAC menu items (if MEDEVAC enabled) + if CTLD.MEDEVAC and CTLD.MEDEVAC.Enabled then + CMD('Vectors to Nearest MEDEVAC Crew', navRoot, function() + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + + local pos = unit:GetPointVec3() + local isMetric = _getPlayerIsMetric(unit) + local nearest = nil + local nearestDist = math.huge + + -- Find nearest crew of same coalition + for crewName, crewData in pairs(CTLD._medevacCrews or {}) do + if crewData.side == self.Side and not crewData.pickedUp then + local dx = crewData.position.x - pos.x + local dz = crewData.position.z - pos.z + local dist = math.sqrt(dx*dx + dz*dz) + + if dist < nearestDist then + nearestDist = dist + nearest = crewData + end + end + end + + if not nearest then + _msgGroup(group, 'No active MEDEVAC requests.') + return + end + + local brg = _bearingDeg({ x = pos.x, z = pos.z }, { x = nearest.position.x, z = nearest.position.z }) + local v, u = _fmtRange(nearestDist, isMetric) + + -- Calculate time remaining until timeout + local cfg = CTLD.MEDEVAC + local timeoutAt = nearest.spawnTime + (cfg.CrewTimeout or 3600) + local timeRemain = math.max(0, math.floor((timeoutAt - timer.getTime()) / 60)) + + _msgGroup(group, _fmtTemplate(CTLD.Messages.medevac_vectors, { + vehicle = nearest.vehicleType, + brg = brg, + rng = v, + rng_u = u, + time_remain = timeRemain + })) + end) + + CMD('Vectors to Nearest MASH', navRoot, function() + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + + local pos = unit:GetPointVec3() + local isMetric = _getPlayerIsMetric(unit) + local nearest = nil + local nearestDist = math.huge + + -- Find nearest MASH of same coalition + for _, mashData in pairs(CTLD._mashZones or {}) do + if mashData.side == self.Side then + local dx = mashData.position.x - pos.x + local dz = mashData.position.z - pos.z + local dist = math.sqrt(dx*dx + dz*dz) + + if dist < nearestDist then + nearestDist = dist + nearest = mashData + end + end + end + + if not nearest then + _msgGroup(group, 'No active MASH zones.') + return + end + + local brg = _bearingDeg({ x = pos.x, z = pos.z }, { x = nearest.position.x, z = nearest.position.z }) + local v, u = _fmtRange(nearestDist, isMetric) + local mashName = nearest.isMobile and ('Mobile MASH ' .. (nearest.id:match('_(%d+)$') or '?')) or nearest.catalogKey + + _msgGroup(group, string.format('Nearest MASH: %s, bearing %dΒ°, range %s %s', mashName, brg, v, u)) + end) + end + + -- Hover Coach (at end of Navigation submenu) + CMD('Hover Coach: Enable', navRoot, function() + CTLD._coachOverride = CTLD._coachOverride or {} + CTLD._coachOverride[gname] = true + _eventSend(self, group, nil, 'coach_enabled', {}) + end) + CMD('Hover Coach: Disable', navRoot, function() + CTLD._coachOverride = CTLD._coachOverride or {} + CTLD._coachOverride[gname] = false + _eventSend(self, group, nil, 'coach_disabled', {}) + end) + + -- Admin/Help + -- Status & map controls + CMD('Show CTLD Status', adminRoot, function() + local crates = 0 + for _ in pairs(CTLD._crates) do crates = crates + 1 end + local msg = string.format('CTLD Status:\nActive crates: %d\nPickup zones: %d\nDrop zones: %d\nFOB zones: %d\nBuild Confirm: %s (%ds window)\nBuild Cooldown: %s (%ds)' + , crates, #(self.PickupZones or {}), #(self.DropZones or {}), #(self.FOBZones or {}) + , self.Config.BuildConfirmEnabled and 'ON' or 'OFF', self.Config.BuildConfirmWindowSeconds or 0 + , self.Config.BuildCooldownEnabled and 'ON' or 'OFF', self.Config.BuildCooldownSeconds or 0) + + -- Add MEDEVAC info if enabled + if CTLD.MEDEVAC and CTLD.MEDEVAC.Enabled then + local activeRequests = 0 + for _, data in pairs(CTLD._medevacCrews or {}) do + if data.side == self.Side and not data.pickedUp then + activeRequests = activeRequests + 1 + end + end + local salvage = CTLD._salvagePoints[self.Side] or 0 + local mashCount = 0 + for _, m in pairs(CTLD._mashZones or {}) do + if m.side == self.Side then mashCount = mashCount + 1 end + end + msg = msg .. string.format('\n\nMEDEVAC:\nActive requests: %d\nMASH zones: %d\nSalvage points: %d', + activeRequests, mashCount, salvage) + end + + MESSAGE:New(msg, 20):ToGroup(group) + end) + CMD('Draw CTLD Zones on Map', adminRoot, function() + self:DrawZonesOnMap() + MESSAGE:New('CTLD zones drawn on F10 map.', 8):ToGroup(group) + end) + CMD('Clear CTLD Map Drawings', adminRoot, function() + self:ClearMapDrawings() + MESSAGE:New('CTLD map drawings cleared.', 8):ToGroup(group) + end) + + -- MEDEVAC Statistics (if enabled) + if CTLD.MEDEVAC and CTLD.MEDEVAC.Enabled and CTLD.MEDEVAC.Statistics and CTLD.MEDEVAC.Statistics.Enabled then + CMD('Show MEDEVAC Statistics', adminRoot, function() + local stats = CTLD._medevacStats[self.Side] or {} + local lines = {} + table.insert(lines, 'MEDEVAC Statistics:') + table.insert(lines, '') + table.insert(lines, string.format('Crews spawned: %d', stats.spawned or 0)) + table.insert(lines, string.format('Crews rescued: %d', stats.rescued or 0)) + table.insert(lines, string.format('Delivered to MASH: %d', stats.delivered or 0)) + table.insert(lines, string.format('Timed out: %d', stats.timedOut or 0)) + table.insert(lines, string.format('Killed in action: %d', stats.killed or 0)) + table.insert(lines, '') + table.insert(lines, string.format('Vehicles respawned: %d', stats.vehiclesRespawned or 0)) + table.insert(lines, string.format('Salvage earned: %d', stats.salvageEarned or 0)) + table.insert(lines, string.format('Salvage used: %d', stats.salvageUsed or 0)) + table.insert(lines, string.format('Current salvage: %d', CTLD._salvagePoints[self.Side] or 0)) + + MESSAGE:New(table.concat(lines, '\n'), 30):ToGroup(group) + end) + end + + -- Admin/Help -> Debug + local debugMenu = MENU_GROUP:New(group, 'Debug', adminRoot) + CMD('Enable verbose logging', debugMenu, function() + self.Config.LogLevel = LOG_DEBUG + _logInfo(string.format('[%s] Verbose/Debug logging ENABLED via Admin menu', tostring(self.Side))) + MESSAGE:New('CTLD verbose logging ENABLED (LogLevel=4)', 8):ToGroup(group) + end) + CMD('Normal logging (INFO)', debugMenu, function() + self.Config.LogLevel = LOG_INFO + _logInfo(string.format('[%s] Logging set to INFO level via Admin menu', tostring(self.Side))) + MESSAGE:New('CTLD logging set to INFO (LogLevel=2)', 8):ToGroup(group) + end) + CMD('Minimal logging (ERRORS only)', debugMenu, function() + self.Config.LogLevel = LOG_ERROR + _logInfo(string.format('[%s] Logging set to ERROR-only via Admin menu', tostring(self.Side))) + MESSAGE:New('CTLD logging set to ERRORS only (LogLevel=1)', 8):ToGroup(group) + end) + CMD('Disable all logging', debugMenu, function() + self.Config.LogLevel = LOG_NONE + MESSAGE:New('CTLD logging DISABLED (LogLevel=0)', 8):ToGroup(group) + end) + + -- Admin/Help -> Player Guides (moved earlier) + + return root +end + +-- Create or refresh the filtered "In Stock Here" menu for a group. +-- If rootMenu is provided, (re)create under that. Otherwise, reuse previous stored root. +function CTLD:_BuildOrRefreshInStockMenu(group, rootMenu) + if not (self.Config.Inventory and self.Config.Inventory.Enabled and self.Config.Inventory.HideZeroStockMenu) then return end + if not group or not group:IsAlive() then return end + local gname = group:GetName() + -- remove previous menu if present and rootMenu not explicitly provided + local existing = CTLD._inStockMenus[gname] + if existing and existing.menu and (rootMenu == nil) then + pcall(function() existing.menu:Remove() end) + CTLD._inStockMenus[gname] = nil + end + + local parent = rootMenu or (self.MenusByGroup and self.MenusByGroup[gname]) + if not parent then return end + + -- Create a fresh submenu root + local inRoot = MENU_GROUP:New(group, 'Request Crate (In Stock Here)', parent) + CTLD._inStockMenus[gname] = { menu = inRoot } + + -- Find nearest active pickup zone + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + local zone, dist = self:_nearestActivePickupZone(unit) + if not zone then + MENU_GROUP_COMMAND:New(group, 'No active supply zone nearby', inRoot, function() + -- Inform and also provide vectors to nearest configured zone if any + _eventSend(self, group, nil, 'no_pickup_zones', {}) + -- Fallback: try any configured pickup zone (ignoring active state) for helpful vectors + local list = self.Config and self.Config.Zones and self.Config.Zones.PickupZones or {} + if list and #list > 0 then + local unit = group:GetUnit(1) + if unit and unit:IsAlive() then + local fallbackZone, fallbackDist = _nearestZonePoint(unit, list) + if fallbackZone then + local up = unit:GetPointVec3(); local zp = fallbackZone:GetPointVec3() + local brg = _bearingDeg({x=up.x,z=up.z}, {x=zp.x,z=zp.z}) + local isMetric = _getPlayerIsMetric(unit) + local rngV, rngU = _fmtRange(fallbackDist or 0, isMetric) + _eventSend(self, group, nil, 'vectors_to_pickup_zone', { zone = fallbackZone:GetName(), brg = brg, rng = rngV, rng_u = rngU }) + end + end + end + end) + -- Still add a refresh item + MENU_GROUP_COMMAND:New(group, 'Refresh In-Stock List', inRoot, function() self:_BuildOrRefreshInStockMenu(group) end) + return + end + local zname = zone:GetName() + local maxd = self.Config.PickupZoneMaxDistance or 10000 + if not dist or dist > maxd then + MENU_GROUP_COMMAND:New(group, string.format('Nearest zone %s is beyond limit (%.0f m).', zname, dist or 0), inRoot, function() + local isMetric = _getPlayerIsMetric(unit) + local v, u = _fmtRange(math.max(0, (dist or 0) - maxd), isMetric) + local up = unit:GetPointVec3(); local zp = zone:GetPointVec3() + local brg = _bearingDeg({x=up.x,z=up.z}, {x=zp.x,z=zp.z}) + _eventSend(self, group, nil, 'pickup_zone_required', { zone_dist = v, zone_dist_u = u, zone_brg = brg }) + end) + MENU_GROUP_COMMAND:New(group, 'Refresh In-Stock List', inRoot, function() self:_BuildOrRefreshInStockMenu(group) end) + return + end + + -- Info and refresh commands at top + MENU_GROUP_COMMAND:New(group, string.format('Nearest Supply: %s', zname), inRoot, function() + local up = unit:GetPointVec3(); local zp = zone:GetPointVec3() + local brg = _bearingDeg({x=up.x,z=up.z}, {x=zp.x,z=zp.z}) + local isMetric = _getPlayerIsMetric(unit) + local rngV, rngU = _fmtRange(dist or 0, isMetric) + _eventSend(self, group, nil, 'vectors_to_pickup_zone', { zone = zname, brg = brg, rng = rngV, rng_u = rngU }) + end) + MENU_GROUP_COMMAND:New(group, 'Refresh In-Stock List', inRoot, function() self:_BuildOrRefreshInStockMenu(group) end) + + -- Build commands for items with stock > 0 at this zone; single-unit entries only + local inStock = {} + local stock = CTLD._stockByZone[zname] or {} + for key,def in pairs(self.Config.CrateCatalog or {}) do + local sideOk = (not def.side) or def.side == self.Side + local isSingle = (type(def.requires) ~= 'table') + if sideOk and isSingle then + local cnt = tonumber(stock[key] or 0) or 0 + if cnt > 0 then + table.insert(inStock, { key = key, def = def, cnt = cnt }) + end + end + end + -- Stable sort by menu label for consistency + table.sort(inStock, function(a,b) + local la = (a.def and (a.def.menu or a.def.description)) or a.key + local lb = (b.def and (b.def.menu or b.def.description)) or b.key + return tostring(la) < tostring(lb) + end) + + if #inStock == 0 then + MENU_GROUP_COMMAND:New(group, 'None in stock at this zone', inRoot, function() + _msgGroup(group, string.format('No crates in stock at %s.', zname)) + end) + else + for _,it in ipairs(inStock) do + local base = (it.def and (it.def.menu or it.def.description)) or it.key + local total = self:_recipeTotalCrates(it.def) + local suffix = (total == 1) and '1 crate' or (tostring(total)..' crates') + local label = string.format('%s (%s) [%d available]', base, suffix, it.cnt) + MENU_GROUP_COMMAND:New(group, label, inRoot, function() + self:RequestCrateForGroup(group, it.key) + -- After requesting, refresh to reflect the decremented stock + local id = timer.scheduleFunction(function() self:_BuildOrRefreshInStockMenu(group) end, {}, timer.getTime() + 0.1) + _trackOneShotTimer(id) + end) + end + end +end + +-- Create or refresh the dynamic Build (Advanced) menu for a group. +function CTLD:_BuildOrRefreshBuildAdvancedMenu(group, rootMenu) + if not group or not group:IsAlive() then return end + -- Clear previous dynamic children if any by recreating the submenu root when rootMenu passed + -- We'll remove and recreate inner items by making a temporary child root + local gname = group:GetName() + -- Remove existing dynamic children by creating a fresh inner menu under the provided root + local dynRoot = MENU_GROUP:New(group, 'Buildable Near You', rootMenu) + + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + local p = unit:GetPointVec3() + local here = { x = p.x, z = p.z } + local hdgRad, _ = _headingRadDeg(unit) + local buildOffset = math.max(0, tonumber(self.Config.BuildSpawnOffset or 0) or 0) + local spawnAt = (buildOffset > 0) and { x = here.x + math.sin(hdgRad) * buildOffset, z = here.z + math.cos(hdgRad) * buildOffset } or { x = here.x, z = here.z } + local radius = self.Config.BuildRadius or 60 + local nearby = self:GetNearbyCrates(here, radius) + local filtered = {} + for _,c in ipairs(nearby) do if c.meta.side == self.Side then table.insert(filtered, c) end end + nearby = filtered + -- Count by key + local counts = {} + for _,c in ipairs(nearby) do counts[c.meta.key] = (counts[c.meta.key] or 0) + 1 end + -- Include carried crates if allowed + if self.Config.BuildRequiresGroundCrates ~= true then + local gname = group:GetName() + local carried = CTLD._loadedCrates[gname] + if carried and carried.byKey then + for k,v in pairs(carried.byKey) do counts[k] = (counts[k] or 0) + v end + end + end + -- FOB restriction context + local insideFOBZone = select(1, self:IsPointInFOBZones(here)) + + -- Build list of buildable recipes + local items = {} + for key,cat in pairs(self.Config.CrateCatalog or {}) do + local sideOk = (not cat.side) or cat.side == self.Side + if sideOk and cat and cat.build then + local ok = false + if type(cat.requires) == 'table' then + ok = true + for reqKey,qty in pairs(cat.requires) do if (counts[reqKey] or 0) < (qty or 0) then ok = false; break end end + else + ok = ((counts[key] or 0) >= (cat.required or 1)) + end + if ok then + if not (cat.isFOB and self.Config.RestrictFOBToZones and not insideFOBZone) then + table.insert(items, { key = key, def = cat }) + end + end + end + end + + if #items == 0 then + MENU_GROUP_COMMAND:New(group, 'None buildable here. Drop required crates close to your aircraft.', dynRoot, function() + MESSAGE:New('No buildable items with nearby crates. Use Recipe Info to check requirements.', 10):ToGroup(group) + end) + return + end + + -- Stable ordering by label + table.sort(items, function(a,b) + local la = (a.def and (a.def.menu or a.def.description)) or a.key + local lb = (b.def and (b.def.menu or b.def.description)) or b.key + return tostring(la) < tostring(lb) + end) + + -- Create per-item submenus + local function CMD(title, parent, cb) + return MENU_GROUP_COMMAND:New(group, title, parent, function() + local ok, err = pcall(cb) + if not ok then _logVerbose('BuildAdv menu error: '..tostring(err)); MESSAGE:New('CTLD menu error: '..tostring(err), 8):ToGroup(group) end + end) + end + + for _,it in ipairs(items) do + local label = (it.def and (it.def.menu or it.def.description)) or it.key + local perItem = MENU_GROUP:New(group, label, dynRoot) + -- Hold Position + CMD('Build [Hold Position]', perItem, function() + self:BuildSpecificAtGroup(group, it.key, { behavior = 'defend' }) + end) + -- Attack variant (render even if canAttackMove=false; we message accordingly) + local vr = (self.Config.AttackAI and self.Config.AttackAI.VehicleSearchRadius) or 5000 + CMD(string.format('Build [Attack (%dm)]', vr), perItem, function() + if it.def and it.def.canAttackMove == false then + MESSAGE:New('This unit is static or not suited to move; it will hold position.', 8):ToGroup(group) + self:BuildSpecificAtGroup(group, it.key, { behavior = 'defend' }) + else + self:BuildSpecificAtGroup(group, it.key, { behavior = 'attack' }) + end + end) + end +end + +-- Build a specific recipe at the group position if crates permit; supports behavior opts +function CTLD:BuildSpecificAtGroup(group, recipeKey, opts) + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + local ctld = self + -- Reuse Build cooldown/confirm logic + local now = timer.getTime() + local gname = group:GetName() + if self.Config.BuildCooldownEnabled then + local last = CTLD._buildCooldown[gname] + if last and (now - last) < (self.Config.BuildCooldownSeconds or 60) then + local rem = math.max(0, math.ceil((self.Config.BuildCooldownSeconds or 60) - (now - last))) + _msgGroup(group, string.format('Build on cooldown. Try again in %ds.', rem)) + return + end + end + if self.Config.BuildConfirmEnabled then + local first = CTLD._buildConfirm[gname] + local win = self.Config.BuildConfirmWindowSeconds or 10 + if not first or (now - first) > win then + CTLD._buildConfirm[gname] = now + _msgGroup(group, string.format('Confirm build: select again within %ds to proceed.', win)) + return + else + CTLD._buildConfirm[gname] = nil + end + end + + local def = self.Config.CrateCatalog[recipeKey] + if not def or not def.build then _msgGroup(group, 'Unknown or unbuildable recipe: '..tostring(recipeKey)); return end + + local p = unit:GetPointVec3() + local here = { x = p.x, z = p.z } + local hdgRad, hdgDeg = _headingRadDeg(unit) + local buildOffset = math.max(0, tonumber(self.Config.BuildSpawnOffset or 0) or 0) + local spawnAt = (buildOffset > 0) and { x = here.x + math.sin(hdgRad) * buildOffset, z = here.z + math.cos(hdgRad) * buildOffset } or { x = here.x, z = here.z } + local radius = self.Config.BuildRadius or 60 + local nearby = self:GetNearbyCrates(here, radius) + local filtered = {} + for _,c in ipairs(nearby) do if c.meta.side == self.Side then table.insert(filtered, c) end end + nearby = filtered + if #nearby == 0 and self.Config.BuildRequiresGroundCrates ~= true then + -- still can build using carried crates + elseif #nearby == 0 then + _eventSend(self, group, nil, 'build_insufficient_crates', { build = def.description or recipeKey }) + return + end + + -- Count by key + local counts = {} + for _,c in ipairs(nearby) do counts[c.meta.key] = (counts[c.meta.key] or 0) + 1 end + -- Include carried crates + local carried = CTLD._loadedCrates[gname] + if self.Config.BuildRequiresGroundCrates ~= true then + if carried and carried.byKey then for k,v in pairs(carried.byKey) do counts[k] = (counts[k] or 0) + v end end + end + + -- Helper to consume crates of a given key/qty (prefers carried when allowed) + local function consumeCrates(key, qty) + local removed = 0 + if self.Config.BuildRequiresGroundCrates ~= true then + if carried and carried.byKey and (carried.byKey[key] or 0) > 0 then + local take = math.min(qty, carried.byKey[key]) + carried.byKey[key] = carried.byKey[key] - take + if carried.byKey[key] <= 0 then carried.byKey[key] = nil end + carried.total = math.max(0, (carried.total or 0) - take) + removed = removed + take + if take > 0 then ctld:_scheduleLoadedCrateMenuRefresh(group) end + end + end + for _,c in ipairs(nearby) do + if removed >= qty then break end + if c.meta.key == key then + local obj = StaticObject.getByName(c.name) + if obj then obj:destroy() end + _cleanupCrateSmoke(c.name) -- Clean up smoke refresh schedule + if c.meta and c.meta.point then + _removeFromSpatialGrid(c.name, c.meta.point, 'crate') -- prune hover pickup spatial cache + end + CTLD._crates[c.name] = nil + removed = removed + 1 + end + end + end + + -- FOB restriction check + if def.isFOB and self.Config.RestrictFOBToZones then + local inside = select(1, self:IsPointInFOBZones(here)) + if not inside then _eventSend(self, group, nil, 'fob_restricted', {}); return end + end + + -- Special-case: SAM Site Repair/Augment entries (isRepair) + if def.isRepair == true or tostring(recipeKey):find('_REPAIR', 1, true) then + -- Map recipe key family to a template definition + local function identifyTemplate(key) + if key:find('HAWK', 1, true) then + return { + name='HAWK', side=def.side or self.Side, + baseUnits={ {type='Hawk sr', dx=12, dz=8}, {type='Hawk tr', dx=-12, dz=8}, {type='Hawk pcp', dx=18, dz=12}, {type='Hawk cwar', dx=-18, dz=12} }, + launcherType='Hawk ln', launcherStart={dx=0, dz=0}, launcherStep={dx=6, dz=0}, maxLaunchers=6 + } + elseif key:find('PATRIOT', 1, true) then + return { + name='PATRIOT', side=def.side or self.Side, + baseUnits={ {type='Patriot str', dx=14, dz=10}, {type='Patriot ECS', dx=-14, dz=10} }, + launcherType='Patriot ln', launcherStart={dx=0, dz=0}, launcherStep={dx=8, dz=0}, maxLaunchers=6 + } + elseif key:find('KUB', 1, true) then + return { + name='KUB', side=def.side or self.Side, + baseUnits={ {type='Kub 1S91 str', dx=12, dz=8} }, + launcherType='Kub 2P25 ln', launcherStart={dx=0, dz=0}, launcherStep={dx=6, dz=0}, maxLaunchers=3 + } + elseif key:find('BUK', 1, true) then + return { + name='BUK', side=def.side or self.Side, + baseUnits={ {type='SA-11 Buk SR 9S18M1', dx=12, dz=8}, {type='SA-11 Buk CC 9S470M1', dx=-12, dz=8} }, + launcherType='SA-11 Buk LN 9A310M1', launcherStart={dx=0, dz=0}, launcherStep={dx=6, dz=0}, maxLaunchers=6 + } + end + return nil + end + + local tpl = identifyTemplate(tostring(recipeKey)) + if not tpl then _msgGroup(group, 'No matching SAM site type for repair: '..tostring(recipeKey)); return end + + -- Determine how many repair crates to apply + local cratesAvail = counts[recipeKey] or 0 + if cratesAvail <= 0 then _eventSend(self, group, nil, 'build_insufficient_crates', { build = def.description or recipeKey }); return end + + -- Find nearest existing site group that matches template + local function vec2(u) + local p = u:getPoint(); return { x = p.x, z = p.z } + end + local function dist2(a,b) + local dx, dz = a.x-b.x, a.z-b.z; return math.sqrt(dx*dx+dz*dz) + end + local searchR = math.max(250, (self.Config.BuildRadius or 60) * 10) + local groups = coalition.getGroups(tpl.side, Group.Category.GROUND) or {} + local here2 = { x = here.x, z = here.z } + local bestG, bestD, bestInfo = nil, 1e9, nil + for _,g in ipairs(groups) do + if g and g:isExist() then + local units = g:getUnits() or {} + if #units > 0 then + -- Compute center and count types + local cx, cz = 0, 0 + local byType = {} + for _,u in ipairs(units) do + local pt = u:getPoint(); cx = cx + pt.x; cz = cz + pt.z + local tname = u:getTypeName() or '' + byType[tname] = (byType[tname] or 0) + 1 + end + cx = cx / #units; cz = cz / #units + local d = dist2(here2, { x = cx, z = cz }) + if d <= searchR then + -- Check presence of base units (at least 1 each) + local ok = true + for _,u in ipairs(tpl.baseUnits) do if (byType[u.type] or 0) < 1 then ok = false; break end end + -- Require at least 1 launcher or allow 0 (initial repair to full base)? we'll allow 0 too. + if ok then + if d < bestD then + bestG, bestD = g, d + bestInfo = { byType = byType, center = { x = cx, z = cz }, headingDeg = function() + local h = 0; local leader = units[1]; if leader and leader.isExist and leader:isExist() then h = math.deg(leader:getHeading() or 0) end; return h + end } + end + end + end + end + end + end + + if not bestG then + _msgGroup(group, 'No matching SAM site found nearby to repair/augment.') + return + end + + -- Current launchers in site + local curLaunchers = (bestInfo.byType[tpl.launcherType] or 0) + local maxL = tpl.maxLaunchers or (curLaunchers + cratesAvail) + local canAdd = math.max(0, (maxL - curLaunchers)) + if canAdd <= 0 then + _msgGroup(group, 'SAM site is already at max launchers.') + return + end + local addNum = math.min(cratesAvail, canAdd) + + -- Build new group composition: base units + (curLaunchers + addNum) launchers + local function buildSite(point, headingDeg, side, launcherCount) + local hdg = math.rad(headingDeg or 0) + local function off(dx, dz) + -- rotate offsets by heading + local s, c = math.sin(hdg), math.cos(hdg) + local rx = dx * c + dz * s + local rz = -dx * s + dz * c + return { x = point.x + rx, z = point.z + rz } + end + local units = {} + -- Place launchers in a row starting at launcherStart and stepping by launcherStep + for i=0, (launcherCount-1) do + local dx = (tpl.launcherStart.dx or 0) + (tpl.launcherStep.dx or 0) * i + local dz = (tpl.launcherStart.dz or 0) + (tpl.launcherStep.dz or 0) * i + local p = off(dx, dz) + table.insert(units, { type = tpl.launcherType, name = string.format('CTLD-%s-%d', tpl.launcherType, math.random(100000,999999)), x = p.x, y = p.z, heading = hdg }) + end + -- Place base units at their template offsets + for _,u in ipairs(tpl.baseUnits) do + local p = off(u.dx or 0, u.dz or 0) + table.insert(units, { type = u.type, name = string.format('CTLD-%s-%d', u.type, math.random(100000,999999)), x = p.x, y = p.z, heading = hdg }) + end + return { visible=false, lateActivation=false, tasks={}, task='Ground Nothing', route={}, units=units, name=string.format('CTLD_SITE_%d', math.random(100000,999999)) } + end + + _eventSend(self, group, nil, 'build_started', { build = def.description or recipeKey }) + -- Destroy old group, spawn new one + local oldName = bestG:getName() + local newLauncherCount = curLaunchers + addNum + local center = bestInfo.center + local headingDeg = bestInfo.headingDeg() + if Group.getByName(oldName) then pcall(function() Group.getByName(oldName):destroy() end) end + local gdata = buildSite({ x = center.x, z = center.z }, headingDeg, tpl.side, newLauncherCount) + local newG = _coalitionAddGroup(tpl.side, Group.Category.GROUND, gdata, self.Config) + if not newG then _eventSend(self, group, nil, 'build_failed', { reason = 'DCS group spawn error' }); return end + -- Consume used repair crates + consumeCrates(recipeKey, addNum) + _eventSend(self, nil, self.Side, 'build_success_coalition', { build = (def.description or recipeKey), player = _playerNameFromGroup(group) }) + if self.Config.BuildCooldownEnabled then CTLD._buildCooldown[gname] = now end + return + end + + -- Verify counts and build + if type(def.requires) == 'table' then + for reqKey,qty in pairs(def.requires) do if (counts[reqKey] or 0) < (qty or 0) then _eventSend(self, group, nil, 'build_insufficient_crates', { build = def.description or recipeKey }); return end end + local gdata = def.build({ x = spawnAt.x, z = spawnAt.z }, hdgDeg, def.side or self.Side) + _eventSend(self, group, nil, 'build_started', { build = def.description or recipeKey }) + local g = _coalitionAddGroup(def.side or self.Side, def.category or Group.Category.GROUND, gdata, self.Config) + if not g then _eventSend(self, group, nil, 'build_failed', { reason = 'DCS group spawn error' }); return end + if self.Config.JTAC and self.Config.JTAC.Verbose then + _logInfo(string.format('JTAC pre: post-build (composite) key=%s group=%s', tostring(recipeKey), tostring(g:getName()))) + end + self:_maybeRegisterJTAC(recipeKey, def, g) + for reqKey,qty in pairs(def.requires) do consumeCrates(reqKey, qty or 0) end + _eventSend(self, nil, self.Side, 'build_success_coalition', { build = def.description or recipeKey, player = _playerNameFromGroup(group) }) + if def.isFOB then pcall(function() self:_CreateFOBPickupZone({ x = spawnAt.x, z = spawnAt.z }, def, hdg) end) end + if def.isMobileMASH then + _logDebug(string.format('[MobileMASH] BuildSpecificAtGroup invoking _CreateMobileMASH for key %s at (%.1f, %.1f)', tostring(recipeKey), spawnAt.x or -1, spawnAt.z or -1)) + local ok, err = pcall(function() self:_CreateMobileMASH(g, { x = spawnAt.x, z = spawnAt.z }, def) end) + if not ok then + _logError(string.format('[MobileMASH] _CreateMobileMASH invocation failed: %s', tostring(err))) + end + end + -- behavior + local behavior = opts and opts.behavior or nil + if behavior == 'attack' and (def.canAttackMove ~= false) and self.Config.AttackAI and self.Config.AttackAI.Enabled then + local t = self:_assignAttackBehavior(g:getName(), spawnAt, true) + local isMetric = _getPlayerIsMetric(group:GetUnit(1)) + if t and t.kind == 'base' then + local brg = _bearingDeg(spawnAt, t.point) + local v, u = _fmtRange(t.dist or 0, isMetric) + _eventSend(self, nil, self.Side, 'attack_base_announce', { unit_name = g:getName(), player = _playerNameFromGroup(group), base_name = t.name, brg = brg, rng = v, rng_u = u }) + elseif t and t.kind == 'enemy' then + local brg = _bearingDeg(spawnAt, t.point) + local v, u = _fmtRange(t.dist or 0, isMetric) + _eventSend(self, nil, self.Side, 'attack_enemy_announce', { unit_name = g:getName(), player = _playerNameFromGroup(group), enemy_type = t.etype or 'unit', brg = brg, rng = v, rng_u = u }) + else + local v, u = _fmtRange((self.Config.AttackAI and self.Config.AttackAI.VehicleSearchRadius) or 5000, isMetric) + _eventSend(self, nil, self.Side, 'attack_no_targets', { unit_name = g:getName(), player = _playerNameFromGroup(group), rng = v, rng_u = u }) + end + elseif behavior == 'attack' and def.canAttackMove == false then + MESSAGE:New('This unit is static or not suited to move; it will hold position.', 8):ToGroup(group) + end + if self.Config.BuildCooldownEnabled then CTLD._buildCooldown[gname] = now end + return + else + -- single-key + local need = def.required or 1 + if (counts[recipeKey] or 0) < need then _eventSend(self, group, nil, 'build_insufficient_crates', { build = def.description or recipeKey }); return end + local gdata = def.build({ x = spawnAt.x, z = spawnAt.z }, hdgDeg, def.side or self.Side) + _eventSend(self, group, nil, 'build_started', { build = def.description or recipeKey }) + local g = _coalitionAddGroup(def.side or self.Side, def.category or Group.Category.GROUND, gdata, self.Config) + if not g then _eventSend(self, group, nil, 'build_failed', { reason = 'DCS group spawn error' }); return end + if self.Config.JTAC and self.Config.JTAC.Verbose then + _logInfo(string.format('JTAC pre: post-build (single) key=%s group=%s', tostring(recipeKey), tostring(g:getName()))) + end + self:_maybeRegisterJTAC(recipeKey, def, g) + consumeCrates(recipeKey, need) + _eventSend(self, nil, self.Side, 'build_success_coalition', { build = def.description or recipeKey, player = _playerNameFromGroup(group) }) + -- behavior + local behavior = opts and opts.behavior or nil + if behavior == 'attack' and (def.canAttackMove ~= false) and self.Config.AttackAI and self.Config.AttackAI.Enabled then + local t = self:_assignAttackBehavior(g:getName(), spawnAt, true) + local isMetric = _getPlayerIsMetric(group:GetUnit(1)) + if t and t.kind == 'base' then + local brg = _bearingDeg(spawnAt, t.point) + local v, u = _fmtRange(t.dist or 0, isMetric) + _eventSend(self, nil, self.Side, 'attack_base_announce', { unit_name = g:getName(), player = _playerNameFromGroup(group), base_name = t.name, brg = brg, rng = v, rng_u = u }) + elseif t and t.kind == 'enemy' then + local brg = _bearingDeg(spawnAt, t.point) + local v, u = _fmtRange(t.dist or 0, isMetric) + _eventSend(self, nil, self.Side, 'attack_enemy_announce', { unit_name = g:getName(), player = _playerNameFromGroup(group), enemy_type = t.etype or 'unit', brg = brg, rng = v, rng_u = u }) + else + local v, u = _fmtRange((self.Config.AttackAI and self.Config.AttackAI.VehicleSearchRadius) or 5000, isMetric) + _eventSend(self, nil, self.Side, 'attack_no_targets', { unit_name = g:getName(), player = _playerNameFromGroup(group), rng = v, rng_u = u }) + end + elseif behavior == 'attack' and def.canAttackMove == false then + MESSAGE:New('This unit is static or not suited to move; it will hold position.', 8):ToGroup(group) + end + if self.Config.BuildCooldownEnabled then CTLD._buildCooldown[gname] = now end + return + end +end + +function CTLD:_definitionIsJTAC(def) + if not def then return false end + if def.isJTAC == true then return true end + if type(def.jtac) == 'table' and def.jtac.enabled ~= false then return true end + if type(def.roles) == 'table' then + for _, role in ipairs(def.roles) do + if tostring(role):upper() == 'JTAC' then + return true + end + end + end + return false +end + +function CTLD:_maybeRegisterJTAC(recipeKey, def, dcsGroup) + if not (self.Config.JTAC and self.Config.JTAC.Enabled) then + if self.Config and self.Config.JTAC and self.Config.JTAC.Verbose then + _logInfo('JTAC check: JTAC disabled in config; skipping registration') + end + return + end + if not self:_definitionIsJTAC(def) then + if self.Config and self.Config.JTAC and self.Config.JTAC.Verbose then + local hasRoles = (def and type(def.roles) == 'table') and table.concat((function(r) local t={} for i,v in ipairs(r) do t[i]=tostring(v) end return t end)(def.roles),'|') or '(none)' + local hasJTAC = (def and type(def.jtac) == 'table') and 'yes' or 'no' + _logInfo(string.format('JTAC check: definition not JTAC. key=%s jtacTable=%s roles=%s isJTAC=%s', tostring(recipeKey), hasJTAC, hasRoles, tostring(def and def.isJTAC))) + end + return + end + if not dcsGroup then + if self.Config and self.Config.JTAC and self.Config.JTAC.Verbose then + _logInfo(string.format('JTAC check: no DCS group to register. key=%s', tostring(recipeKey))) + end + return + end + if self.Config.JTAC and self.Config.JTAC.Verbose then + _logInfo(string.format('JTAC check: attempting registration. key=%s unitType=%s group=%s', tostring(recipeKey), tostring(def and def.unitType or def and def.description or 'n/a'), tostring(dcsGroup and dcsGroup.getName and dcsGroup:getName() or ''))) + end + self:_registerJTACGroup(recipeKey, def, dcsGroup) +end + +function CTLD:_reserveJTACCode(side, groupName) + local pool = self.Config.JTAC and self.Config.JTAC.LaserCodes or { '1688' } + if not CTLD._jtacReservedCodes then + CTLD._jtacReservedCodes = { [coalition.side.BLUE] = {}, [coalition.side.RED] = {}, [coalition.side.NEUTRAL] = {} } + end + CTLD._jtacReservedCodes[side] = CTLD._jtacReservedCodes[side] or {} + for _, code in ipairs(pool) do + code = tostring(code) + if not CTLD._jtacReservedCodes[side][code] then + CTLD._jtacReservedCodes[side][code] = groupName + return code + end + end + local fallback = tostring(pool[1] or '1688') + _logVerbose(string.format('JTAC laser code pool exhausted for side %s, reusing %s', tostring(side), fallback)) + return fallback +end + +function CTLD:_releaseJTACCode(side, code, groupName) + if not code then return end + code = tostring(code) + if CTLD._jtacReservedCodes and CTLD._jtacReservedCodes[side] then + if CTLD._jtacReservedCodes[side][code] == groupName then + CTLD._jtacReservedCodes[side][code] = nil + end + end +end + +function CTLD:_registerJTACGroup(recipeKey, def, dcsGroup) + if not (dcsGroup and dcsGroup.getName) then return end + local groupName = dcsGroup:getName() + if not groupName then return end + + self:_cleanupJTACEntry(groupName) -- ensure stale entry cleared + + local side = dcsGroup:getCoalition() or self.Side + local code = self:_reserveJTACCode(side, groupName) + local platform = 'ground' + if def and def.jtac and def.jtac.platform then + platform = tostring(def.jtac.platform) + elseif def and def.category == Group.Category.AIRPLANE then + platform = 'air' + end + local cfgSmoke = self.Config.JTAC and self.Config.JTAC.Smoke or {} + local smokeColor = (side == coalition.side.BLUE) and cfgSmoke.ColorBlue or cfgSmoke.ColorRed + + local entry = { + groupName = groupName, + recipeKey = recipeKey, + def = def, + side = side, + code = code, + platform = platform, + smokeColor = smokeColor, + nextScan = timer.getTime() + 2, + smokeNext = 0, + lockType = def and def.jtac and def.jtac.lock, + } + + local friendlyName = (def and self:_friendlyNameForKey(recipeKey)) or groupName + entry.displayName = friendlyName + entry.lastState = 'onstation' + + self._jtacRegistry[groupName] = entry + + self:_announceJTAC('jtac_onstation', entry, { + jtac = friendlyName, + code = code, + }) + + _logInfo(string.format('JTAC registered: group=%s friendlyName=%s code=%s platform=%s verbose=%s', tostring(groupName), tostring(friendlyName), tostring(code), tostring(platform), tostring(self.Config.JTAC and self.Config.JTAC.Verbose))) +end + +function CTLD:_announceJTAC(msgKey, entry, payload) + if not entry then return end + local cfg = self.Config.JTAC and self.Config.JTAC.Announcements + local allowed = true + if entry and entry.announceOverride ~= nil then + allowed = entry.announceOverride == true + else + allowed = (cfg and cfg.Enabled ~= false) + end + if not allowed then return end + local tpl = CTLD.Messages[msgKey] + if not tpl then return end + local data = payload or {} + data.jtac = data.jtac or entry.displayName or entry.groupName + data.code = data.code or entry.code + local text = _fmtTemplate(tpl, data) + if text and text ~= '' then + _msgCoalition(entry.side or self.Side, text, cfg.Duration or self.Config.MessageDuration) + end +end + +function CTLD:_cleanupJTACEntry(groupName) + local entry = self._jtacRegistry and self._jtacRegistry[groupName] + if not entry then return end + self:_cancelJTACSpots(entry) + self:_releaseJTACCode(entry.side or self.Side, entry.code, groupName) + self._jtacRegistry[groupName] = nil +end + +function CTLD:_cancelJTACSpots(entry) + if not entry then return end + if entry.laserSpot then + pcall(function() Spot.destroy(entry.laserSpot) end) + entry.laserSpot = nil + end + if entry.irSpot then + pcall(function() Spot.destroy(entry.irSpot) end) + entry.irSpot = nil + end +end + +function CTLD:_tickJTACs() + if not self._jtacRegistry then return end + if not next(self._jtacRegistry) then return end + local now = timer.getTime() + for groupName, entry in pairs(self._jtacRegistry) do + if not entry.nextScan or now >= entry.nextScan then + local ok, err = pcall(function() + self:_processJTACEntry(groupName, entry, now) + end) + if not ok then + _logError(string.format('JTAC tick error for %s: %s', tostring(groupName), tostring(err))) + entry.nextScan = now + 10 + end + end + end +end + +function CTLD:_processJTACEntry(groupName, entry, now) + local cfg = self.Config.JTAC or {} + local autoCfg = cfg.AutoLase or {} + if autoCfg.Enabled == false then + self:_cancelJTACSpots(entry) + entry.nextScan = now + 30 + return + end + if entry.paused then + self:_cancelJTACSpots(entry) + entry.nextScan = now + 30 + entry.lastState = 'paused' + return + end + local group = Group.getByName(groupName) + if not group or not group:isExist() then + self:_cleanupJTACEntry(groupName) + return + end + + local units = group:getUnits() or {} + if #units == 0 then + self:_cancelJTACSpots(entry) + entry.nextScan = now + (autoCfg.TransportHoldSeconds or 10) + return + end + + local jtacUnit = units[1] + if not jtacUnit or jtacUnit:getLife() <= 0 or not jtacUnit:isActive() then + self:_cleanupJTACEntry(groupName) + return + end + + entry.jtacUnitName = entry.jtacUnitName or jtacUnit:getName() + entry.displayName = entry.displayName or entry.jtacUnitName or groupName + + local jtacPoint = jtacUnit:getPoint() + local searchRadius = tonumber(entry.searchRadiusOverride or autoCfg.SearchRadius) or 8000 + if cfg.Verbose then + _logInfo(string.format('JTAC tick: group=%s unit=%s radius=%.0f pos=(%.0f,%.0f,%.0f)', tostring(groupName), tostring(entry.jtacUnitName or jtacUnit:getName()), searchRadius, jtacPoint.x or -1, jtacPoint.y or -1, jtacPoint.z or -1)) + end + + local current = entry.currentTarget + local targetUnit = nil + local targetStatus = nil + + if current and current.name then + local candidate = Unit.getByName(current.name) + if candidate and candidate:isExist() and candidate:getLife() > 0 then + local tgtPoint = candidate:getPoint() + local dist = _distance3d(tgtPoint, jtacPoint) + if dist <= searchRadius and _hasLineOfSight(jtacPoint, tgtPoint) then + targetUnit = candidate + current.lastSeen = now + current.distance = dist + else + targetStatus = 'lost' + end + else + targetStatus = 'destroyed' + end + if targetStatus then + if targetStatus == 'destroyed' then + if entry.lastState ~= 'destroyed' then + self:_announceJTAC('jtac_target_destroyed', entry, { + jtac = entry.displayName, + target = current.label or current.name, + code = entry.code, + }) + entry.lastState = 'destroyed' + end + else + if entry.lastState ~= 'lost' then + self:_announceJTAC('jtac_target_lost', entry, { + jtac = entry.displayName, + target = current.label or current.name, + }) + entry.lastState = 'lost' + end + end + entry.currentTarget = nil + targetUnit = nil + self:_cancelJTACSpots(entry) + entry.nextScan = now + (targetStatus == 'lost' and (autoCfg.LostRetrySeconds or 10) or 5) + end + end + + if not targetUnit then + local lockPref = entry.lockType or cfg.LockType or 'all' + local selection = self:_findJTACNewTarget(entry, jtacPoint, searchRadius, lockPref) + if cfg.Verbose then + _logInfo(string.format('JTAC scan: group=%s lock=%s found=%s', tostring(groupName), tostring(lockPref), selection and (selection.unit and selection.unit:getTypeName()) or 'nil')) + end + if selection then + targetUnit = selection.unit + entry.currentTarget = { + name = targetUnit:getName(), + label = targetUnit:getTypeName(), + firstSeen = now, + lastSeen = now, + distance = selection.distance, + } + local grid = self:_GetMGRSString(targetUnit:getPoint()) + local newState = 'target:'..(entry.currentTarget.name or '') + if entry.lastState ~= newState then + self:_announceJTAC('jtac_new_target', entry, { + jtac = entry.displayName, + target = targetUnit:getTypeName(), + code = entry.code, + grid = grid, + }) + entry.lastState = newState + end + end + end + + if targetUnit then + self:_updateJTACSpots(entry, jtacUnit, targetUnit) + entry.nextScan = now + (autoCfg.RefreshSeconds or 15) + if cfg.Verbose then + _logInfo(string.format('JTAC lase: group=%s target=%s code=%s', tostring(groupName), tostring(targetUnit and targetUnit:getTypeName()), tostring(entry.code))) + end + else + self:_cancelJTACSpots(entry) + entry.nextScan = now + (autoCfg.IdleRescanSeconds or 30) + if entry.lastState ~= 'idle' then + self:_announceJTAC('jtac_idle', entry, { + jtac = entry.displayName, + }) + entry.lastState = 'idle' + end + end +end + +function CTLD:ListJTACStatus(group) + local lines = {} + table.insert(lines, 'JTAC Status') + table.insert(lines, '') + if not self._jtacRegistry or not next(self._jtacRegistry) then + table.insert(lines, '(none registered)') + else + local now = timer.getTime() + for gname, entry in pairs(self._jtacRegistry) do + local tgt = entry.currentTarget and entry.currentTarget.label or '(idle)' + local age = entry.currentTarget and (now - (entry.currentTarget.firstSeen or now)) or 0 + local nextScan = entry.nextScan and (entry.nextScan - now) or -1 + table.insert(lines, string.format('- %s code=%s plat=%s state=%s target=%s age=%.0fs nextScan=%.0fs', + entry.displayName or gname, tostring(entry.code), tostring(entry.platform), tostring(entry.lastState), tgt, age, nextScan)) + end + end + local text = table.concat(lines, '\n') + if group and group:IsAlive() then + MESSAGE:New(text, 20):ToGroup(group) + else + _msgCoalition(self.Side, text, 20) + end +end + +function CTLD:JTACDiagnostics(group) + local lines = {} + table.insert(lines, 'JTAC Diagnostics') + local cfg = self.Config.JTAC or {} + table.insert(lines, string.format('Enabled=%s Verbose=%s LockType=%s', tostring(cfg.Enabled), tostring(cfg.Verbose), tostring(cfg.LockType))) + local auto = cfg.AutoLase or {} + table.insert(lines, string.format('AutoLase Enabled=%s Radius=%s Refresh=%s IdleRescan=%s LostRetry=%s', tostring(auto.Enabled), tostring(auto.SearchRadius), tostring(auto.RefreshSeconds), tostring(auto.IdleRescanSeconds), tostring(auto.LostRetrySeconds))) + local countCatalog = 0 + local jtacKeys = {} + for key,def in pairs(self.Config.CrateCatalog or {}) do + if self:_definitionIsJTAC(def) then + countCatalog = countCatalog + 1 + table.insert(jtacKeys, key) + end + end + table.insert(lines, string.format('Catalog JTAC Definitions: %d', countCatalog)) + if #jtacKeys > 0 then + table.insert(lines, 'Keys: '..table.concat(jtacKeys, ', ')) + end + local regCount = 0 + for _ in pairs(self._jtacRegistry or {}) do regCount = regCount + 1 end + table.insert(lines, string.format('Registered JTAC Groups: %d', regCount)) + if regCount > 0 then + for gname, entry in pairs(self._jtacRegistry) do + table.insert(lines, string.format(' Reg: %s code=%s state=%s', gname, tostring(entry.code), tostring(entry.lastState))) + end + end + local text = table.concat(lines, '\n') + if group and group:IsAlive() then + MESSAGE:New(text, 25):ToGroup(group) + else + _msgCoalition(self.Side, text, 25) + end +end + +-- ========================= +-- JTAC Controls (per-group active selection) +-- ========================= + +function CTLD:_getActiveJTAC(group) + local gname = group and group:GetName() + if not gname then return nil end + CTLD._activeJTACByGroup = CTLD._activeJTACByGroup or {} + local key = CTLD._activeJTACByGroup[gname] + if key and self._jtacRegistry and self._jtacRegistry[key] then + return self._jtacRegistry[key] + end + return nil +end + +local function _unitVec2(unit) + local p = unit:GetPointVec3(); return { x = p.x, z = p.z } +end + +function CTLD:JTAC_SelectActiveForGroup(group, opts) + local entries = {} + for name, entry in pairs(self._jtacRegistry or {}) do table.insert(entries, entry) end + if #entries == 0 then MESSAGE:New('No JTACs registered yet.', 8):ToGroup(group); return end + -- choose nearest to player unit + table.sort(entries, function(a,b) + local u = group:GetUnit(1); if not u then return false end + local up = _unitVec2(group:GetUnit(1)) + local function d(e) + local g = Group.getByName(e.groupName); if not g then return 1e12 end + local gu = g:getUnits(); if not gu or #gu==0 then return 1e12 end + local p = gu[1]:getPoint(); local dx = (p.x - up.x); local dz=(p.z - up.z); return math.sqrt(dx*dx+dz*dz) + end + return d(a) < d(b) + end) + local chosen = entries[1] + CTLD._activeJTACByGroup = CTLD._activeJTACByGroup or {} + CTLD._activeJTACByGroup[group:GetName()] = chosen.groupName + MESSAGE:New(string.format('Active JTAC set to %s (code %s).', chosen.displayName or chosen.groupName, tostring(chosen.code)), 10):ToGroup(group) +end + +function CTLD:JTAC_TogglePause(group) + local e = self:_getActiveJTAC(group); if not e then self:JTAC_SelectActiveForGroup(group); e=self:_getActiveJTAC(group) end; if not e then return end + e.paused = not e.paused + local msg = e.paused and 'paused' or 'resumed' + MESSAGE:New(string.format('JTAC %s %s.', e.displayName or e.groupName, msg), 8):ToGroup(group) +end + +function CTLD:JTAC_ReleaseTarget(group) + local e = self:_getActiveJTAC(group); if not e then self:JTAC_SelectActiveForGroup(group); e=self:_getActiveJTAC(group) end; if not e then return end + self:_cancelJTACSpots(e) + e.currentTarget = nil + e.nextScan = timer.getTime() + 1 + e.lastState = 'released' + MESSAGE:New('JTAC target released.', 6):ToGroup(group) +end + +function CTLD:JTAC_ForceRescan(group) + local e = self:_getActiveJTAC(group); if not e then self:JTAC_SelectActiveForGroup(group); e=self:_getActiveJTAC(group) end; if not e then return end + e.currentTarget = nil + e.nextScan = timer.getTime() + 0.5 + e.lastState = 'rescan' + MESSAGE:New('JTAC rescan queued.', 6):ToGroup(group) +end + +function CTLD:JTAC_SetLockFilter(group, mode) + local e = self:_getActiveJTAC(group); if not e then self:JTAC_SelectActiveForGroup(group); e=self:_getActiveJTAC(group) end; if not e then return end + e.lockType = (mode or 'all') + e.currentTarget = nil; e.nextScan = timer.getTime() + 0.5 + MESSAGE:New(string.format('JTAC lock filter set to %s.', mode), 6):ToGroup(group) +end + +function CTLD:JTAC_SetPriority(group, profile) + local e = self:_getActiveJTAC(group); if not e then self:JTAC_SelectActiveForGroup(group); e=self:_getActiveJTAC(group) end; if not e then return end + e.priorityProfile = profile or 'balanced' + e.currentTarget = nil; e.nextScan = timer.getTime() + 0.5 + MESSAGE:New(string.format('JTAC priority set: %s', profile), 6):ToGroup(group) +end + +function CTLD:JTAC_SetSearchRadius(group, meters) + local e = self:_getActiveJTAC(group); if not e then self:JTAC_SelectActiveForGroup(group); e=self:_getActiveJTAC(group) end; if not e then return end + e.searchRadiusOverride = tonumber(meters) + e.currentTarget = nil; e.nextScan = timer.getTime() + 0.5 + MESSAGE:New(string.format('JTAC search radius set to %dm.', meters or 0), 6):ToGroup(group) +end + +function CTLD:JTAC_ToggleSmoke(group) + local e = self:_getActiveJTAC(group); if not e then self:JTAC_SelectActiveForGroup(group); e=self:_getActiveJTAC(group) end; if not e then return end + if e.smokeEnabledOverride == nil then + e.smokeEnabledOverride = not ((self.Config.JTAC and self.Config.JTAC.Smoke and self.Config.JTAC.Smoke.Enabled) ~= false) + else + e.smokeEnabledOverride = not e.smokeEnabledOverride + end + local state = e.smokeEnabledOverride and 'ON' or 'OFF' + MESSAGE:New('JTAC smoke '..state..'.', 6):ToGroup(group) +end + +function CTLD:JTAC_SetSmokeColor(group, which) + local e = self:_getActiveJTAC(group); if not e then self:JTAC_SelectActiveForGroup(group); e=self:_getActiveJTAC(group) end; if not e then return end + if which == 'blue' then + e.smokeColor = trigger.smokeColor.Blue + elseif which == 'orange' then + e.smokeColor = trigger.smokeColor.Orange + end + MESSAGE:New('JTAC smoke color set.', 6):ToGroup(group) +end + +function CTLD:JTAC_ToggleAnnouncements(group) + local e = self:_getActiveJTAC(group); if not e then self:JTAC_SelectActiveForGroup(group); e=self:_getActiveJTAC(group) end; if not e then return end + if e.announceOverride == nil then + local cfg = self.Config.JTAC and self.Config.JTAC.Announcements + e.announceOverride = not (cfg and cfg.Enabled ~= false) + else + e.announceOverride = not e.announceOverride + end + MESSAGE:New('JTAC announcements '..(e.announceOverride and 'ON' or 'OFF')..'.', 6):ToGroup(group) +end + +function CTLD:JTAC_MarkCurrentTarget(group) + local e = self:_getActiveJTAC(group); if not e then self:JTAC_SelectActiveForGroup(group); e=self:_getActiveJTAC(group) end; if not e then return end + if not e.currentTarget or not e.currentTarget.name then MESSAGE:New('No current target to mark.', 6):ToGroup(group); return end + local u = Unit.getByName(e.currentTarget.name); if not u or not u:isExist() then MESSAGE:New('Target no longer valid.', 6):ToGroup(group); return end + local p = u:getPoint() + CTLD._markId = (CTLD._markId or 900000) + 1 + local text = string.format('JTAC %s target: %s (code %s)', e.displayName or e.groupName, e.currentTarget.label or e.currentTarget.name, tostring(e.code)) + local side = (group and group.GetCoalition and group:GetCoalition()) or e.side or coalition.side.BLUE + pcall(function() trigger.action.markToCoalition(CTLD._markId, text, {x=p.x, y=p.y, z=p.z}, side) end) + MESSAGE:New('Marked current target on map.', 6):ToGroup(group) +end + +function CTLD:_findJTACNewTarget(entry, jtacPoint, radius, lockType) + local enemy = _enemySide(entry and entry.side or self.Side) + local best + local lock = (lockType or 'all'):lower() + local profile = entry and entry.priorityProfile or 'balanced' + local ok, groups = pcall(function() + return coalition.getGroups(enemy, Group.Category.GROUND) or {} + end) + if not ok then + groups = {} + end + + for _, grp in ipairs(groups) do + if grp and grp:isExist() then + local units = grp:getUnits() + if units then + for _, unit in ipairs(units) do + if unit and unit:isExist() and unit:isActive() and unit:getLife() > 0 then + local skip = false + if lock == 'troop' and not _isDcsInfantry(unit) then skip = true end + if lock == 'vehicle' and _isDcsInfantry(unit) then skip = true end + if not skip then + local pos = unit:getPoint() + local dist = _distance3d(pos, jtacPoint) + if dist <= radius and _hasLineOfSight(jtacPoint, pos) then + local score = _jtacTargetScoreProfiled(unit, profile) + if not best or score > best.score or (score == best.score and dist < best.distance) then + best = { unit = unit, score = score, distance = dist } + end + end + end + end + end + end + end + end + + return best +end + +function CTLD:_updateJTACSpots(entry, jtacUnit, targetUnit) + if not (entry and jtacUnit and targetUnit) then return end + local codeNumber = tonumber(entry.code) or 1688 + local targetPoint = targetUnit:getPoint() + targetPoint = _vec3(targetPoint.x, targetPoint.y + 2.0, targetPoint.z) + local origin = { x = 0, y = 2.0, z = 0 } + + if not entry.laserSpot or not entry.irSpot then + local ok, res = pcall(function() + local spots = {} + spots.ir = Spot.createInfraRed(jtacUnit, origin, targetPoint) + spots.laser = Spot.createLaser(jtacUnit, origin, targetPoint, codeNumber) + return spots + end) + if ok and res then + entry.irSpot = entry.irSpot or res.ir + entry.laserSpot = entry.laserSpot or res.laser + else + _logError(string.format('JTAC spot create failed for %s: %s', tostring(entry.groupName), tostring(res))) + end + else + pcall(function() + if entry.laserSpot and entry.laserSpot.setPoint then entry.laserSpot:setPoint(targetPoint) end + if entry.irSpot and entry.irSpot.setPoint then entry.irSpot:setPoint(targetPoint) end + end) + end + + local smokeCfg = self.Config.JTAC and self.Config.JTAC.Smoke or {} + local smokeAllowed = (entry.smokeEnabledOverride ~= nil) and (entry.smokeEnabledOverride == true) or (entry.smokeEnabledOverride == nil and smokeCfg.Enabled) + if smokeAllowed then + local now = timer.getTime() + if not entry.smokeNext or now >= entry.smokeNext then + local color = entry.smokeColor or smokeCfg.ColorBlue or trigger.smokeColor.White + local pos = targetUnit:getPoint() + local offset = tonumber(smokeCfg.OffsetMeters) or 0 + if offset > 0 then + local ang = math.random() * math.pi * 2 + pos.x = pos.x + math.cos(ang) * offset + pos.z = pos.z + math.sin(ang) * offset + end + pcall(function() + trigger.action.smoke({ x = pos.x, y = pos.y, z = pos.z }, color) + end) + entry.smokeNext = now + (smokeCfg.RefreshSeconds or 300) + end + end +end + +function CTLD:BuildCoalitionMenus(root) + -- Optional: implement coalition-level crate spawns at pickup zones + for key,_ in pairs(self.Config.CrateCatalog) do + MENU_COALITION_COMMAND:New(self.Side, 'Spawn '..key..' at nearest Pickup Zone', root, function() + -- Not group-context; skip here + _msgCoalition(self.Side, 'Group menus recommended for crate requests') + end) + end +end + +function CTLD:InitCoalitionAdminMenu() + if self.AdminMenu then return end + -- Ensure we have a coalition-level CTLD parent menu to nest Admin/Help under + local rootCaption = (self.Config and self.Config.UseGroupMenus) and 'CTLD Admin' or 'CTLD' + self.MenuRoot = self.MenuRoot or MENU_COALITION:New(self.Side, rootCaption) + local root = MENU_COALITION:New(self.Side, 'Admin/Help', self.MenuRoot) + -- Player Help submenu (moved to top of Admin/Help) + local helpMenu = MENU_COALITION:New(self.Side, 'Player Help', root) + -- Removed standalone "Repair - How To" in favor of consolidated SAM Sites help + MENU_COALITION_COMMAND:New(self.Side, 'Zones - Guide', helpMenu, function() + local lines = {} + table.insert(lines, 'CTLD Zones - Guide') + table.insert(lines, '') + table.insert(lines, 'Zone types:') + table.insert(lines, '- Pickup (Supply): Request crates and load troops here. Crate requests require proximity to an ACTIVE pickup zone (default within 10 km).') + table.insert(lines, '- Drop: Mission-defined delivery or rally areas. Some missions may require delivery or deployment at these zones (see briefing).') + table.insert(lines, '- FOB: Forward Operating Base areas. Some recipes (FOB Site) can be built here; if FOB restriction is enabled, FOB-only builds must be inside an FOB zone.') + table.insert(lines, '') + table.insert(lines, 'Colors and map marks:') + table.insert(lines, '- Pickup zone crate spawns are marked with smoke in the configured color. Admin/Help -> Draw CTLD Zones on Map draws zone circles and labels on F10.') + table.insert(lines, '- Use Admin/Help -> Clear CTLD Map Drawings to remove the drawings. Drawings are read-only if configured.') + table.insert(lines, '') + table.insert(lines, 'How to use zones:') + table.insert(lines, '- To request crates: move within the pickup zone distance and use CTLD -> Request Crate.') + table.insert(lines, '- To load troops: must be inside a Pickup zone if troop loading restriction is enabled.') + table.insert(lines, '- Navigation: CTLD -> Coach & Nav -> Vectors to Nearest Pickup Zone gives bearing and range.') + table.insert(lines, '- Activation: Zones can be active/inactive per mission logic; inactive pickup zones block crate requests.') + table.insert(lines, '') + table.insert(lines, string.format('- Build Radius: about %d m to collect nearby crates when building.', self.Config.BuildRadius or 60)) + table.insert(lines, string.format('- Pickup Zone Max Distance: about %d m to request crates (configurable).', self.Config.PickupZoneMaxDistance or 10000)) + _msgCoalition(self.Side, table.concat(lines, '\n'), 40) + end) + MENU_COALITION_COMMAND:New(self.Side, 'Inventory - How It Works', helpMenu, function() + local inv = self.Config.Inventory or {} + local enabled = inv.Enabled ~= false + local showHint = inv.ShowStockInMenu == true + local fobPct = math.floor(((inv.FOBStockFactor or 0.25) * 100) + 0.5) + local lines = {} + table.insert(lines, 'CTLD Inventory - How It Works') + table.insert(lines, '') + table.insert(lines, 'Overview:') + table.insert(lines, '- Inventory is tracked per Supply (Pickup) Zone and per FOB. Requests consume stock at that location.') + table.insert(lines, string.format('- Inventory is %s.', enabled and 'ENABLED' or 'DISABLED')) + table.insert(lines, '') + table.insert(lines, 'Starting stock:') + table.insert(lines, '- Each configured Supply Zone is seeded from the catalog initialStock for every crate type at mission start.') + table.insert(lines, string.format('- When you build a FOB, it creates a small Supply Zone with stock seeded at ~%d%% of initialStock.', fobPct)) + table.insert(lines, '') + table.insert(lines, 'Requesting crates:') + table.insert(lines, '- You must be within range of an ACTIVE Supply Zone to request crates; stock is decremented on spawn.') + table.insert(lines, '- If out of stock for a type at that zone, requests are denied for that type until resupplied (mission logic).') + table.insert(lines, '') + table.insert(lines, 'UI hints:') + table.insert(lines, string.format('- Show stock in menu labels: %s.', showHint and 'ON' or 'OFF')) + table.insert(lines, '- Some missions may include an "In Stock Here" list showing only items available at the nearest zone.') + _msgCoalition(self.Side, table.concat(lines, '\n'), 40) + end) + MENU_COALITION_COMMAND:New(self.Side, 'CTLD Basics (2-minute tour)', helpMenu, function() + local isMetric = true + local lines = {} + table.insert(lines, 'CTLD Basics - 2 minute tour') + table.insert(lines, '') + table.insert(lines, 'Loop: Request -> Deliver -> Build -> Fight') + table.insert(lines, '- Request crates at an ACTIVE Supply Zone (Pickup).') + table.insert(lines, '- Deliver crates to the build point (within Build Radius).') + table.insert(lines, '- Build units or sites with "Build Here" (confirm + cooldown).') + table.insert(lines, '- Optional: set Attack or Defend behavior when building.') + table.insert(lines, '') + table.insert(lines, 'Key concepts:') + table.insert(lines, '- Zones: Pickup (supply), Drop (mission targets), FOB (forward supply).') + table.insert(lines, '- Inventory: stock is tracked per zone; requests consume stock there.') + table.insert(lines, '- FOBs: building one creates a local supply point with seeded stock.') + table.insert(lines, '- Advanced: SAM site repair crates, AI attack orders, EWR/JTAC support.') + _msgCoalition(self.Side, table.concat(lines, '\n'), 35) + end) + MENU_COALITION_COMMAND:New(self.Side, 'Troop Transport & JTAC Use', helpMenu, function() + local lines = {} + table.insert(lines, 'Troop Transport & JTAC Use') + table.insert(lines, '') + table.insert(lines, 'Troops:') + table.insert(lines, '- Load inside an ACTIVE Supply Zone (if mission enforces it).') + table.insert(lines, '- Deploy with Defend (hold) or Attack (advance to targets/bases).') + table.insert(lines, '- Attack uses a search radius and moves at configured speed.') + table.insert(lines, '') + table.insert(lines, 'JTAC:') + table.insert(lines, '- Build JTAC units (MRAP/Tigr or drones) to support target marking.') + table.insert(lines, '- JTAC helps with target designation/SA; details depend on mission setup.') + _msgCoalition(self.Side, table.concat(lines, '\n'), 35) + end) + MENU_COALITION_COMMAND:New(self.Side, 'Crates 101: Requesting and Handling', helpMenu, function() + local lines = {} + table.insert(lines, 'Crates 101 - Requesting and Handling') + table.insert(lines, '') + table.insert(lines, '- Request crates near an ACTIVE Supply Zone; max distance is configurable.') + table.insert(lines, '- Menu labels show the total crates required for a recipe.') + table.insert(lines, '- Drop crates close together but avoid overlap; smoke marks spawns.') + table.insert(lines, '- Use Coach & Nav tools: vectors to nearest pickup zone, re-mark crate with smoke.') + _msgCoalition(self.Side, table.concat(lines, '\n'), 35) + end) + MENU_COALITION_COMMAND:New(self.Side, 'Hover Pickup & Slingloading', helpMenu, function() + local coachCfg = CTLD.HoverCoachConfig or {} + local aglMin = (coachCfg.thresholds and coachCfg.thresholds.aglMin) or 5 + local aglMax = (coachCfg.thresholds and coachCfg.thresholds.aglMax) or 20 + local capGS = (coachCfg.thresholds and coachCfg.thresholds.captureGS) or (4/3.6) + local hold = (coachCfg.thresholds and coachCfg.thresholds.stabilityHold) or 1.8 + local lines = {} + table.insert(lines, 'Hover Pickup & Slingloading') + table.insert(lines, '') + table.insert(lines, string.format('- Hover pickup: hold AGL %d-%d m, speed < %.1f m/s, for ~%.1f s to auto-load.', aglMin, aglMax, capGS, hold)) + table.insert(lines, '- Keep steady within ~15 m of the crate; Hover Coach gives cues if enabled.') + table.insert(lines, '- Slingloading tips: avoid rotor wash over stacks; approach from upwind; re-mark crate with smoke if needed.') + _msgCoalition(self.Side, table.concat(lines, '\n'), 35) + end) + MENU_COALITION_COMMAND:New(self.Side, 'Build System: Build Here and Advanced', helpMenu, function() + local br = self.Config.BuildRadius or 60 + local win = self.Config.BuildConfirmWindowSeconds or 10 + local cd = self.Config.BuildCooldownSeconds or 60 + local lines = {} + table.insert(lines, 'Build System - Build Here and Advanced') + table.insert(lines, '') + table.insert(lines, string.format('- Build Here collects crates within ~%d m. Double-press within %d s to confirm.', br, win)) + table.insert(lines, string.format('- Cooldown: about %d s per group after a successful build.', cd)) + table.insert(lines, '- Advanced Build lets you choose Defend (hold) or Attack (move).') + table.insert(lines, '- Static or unsuitable units will hold even if Attack is chosen.') + table.insert(lines, '- FOB-only recipes must be inside an FOB zone when restriction is enabled.') + _msgCoalition(self.Side, table.concat(lines, '\n'), 40) + end) + MENU_COALITION_COMMAND:New(self.Side, 'FOBs: Forward Supply & Why They Matter', helpMenu, function() + local fobPct = math.floor(((self.Config.Inventory and self.Config.Inventory.FOBStockFactor or 0.25) * 100) + 0.5) + local lines = {} + table.insert(lines, 'FOBs - Forward Supply and Why They Matter') + table.insert(lines, '') + table.insert(lines, '- Build a FOB by assembling its crate recipe (see Recipe Info).') + table.insert(lines, string.format('- A new local Supply Zone is created and seeded at ~%d%% of initial stock.', fobPct)) + table.insert(lines, '- FOBs shorten logistics legs and increase throughput toward the front.') + table.insert(lines, '- If enabled, FOB-only builds must occur inside FOB zones.') + _msgCoalition(self.Side, table.concat(lines, '\n'), 35) + end) + MENU_COALITION_COMMAND:New(self.Side, 'SAM Sites: Building, Repairing, and Augmenting', helpMenu, function() + local br = self.Config.BuildRadius or 60 + local lines = {} + table.insert(lines, 'SAM Sites - Building, Repairing, and Augmenting') + table.insert(lines, '') + table.insert(lines, 'Build:') + table.insert(lines, '- Assemble site recipes using the required component crates (see menu labels). Build Here will place the full site.') + table.insert(lines, '') + table.insert(lines, 'Repair/Augment (merged):') + table.insert(lines, '- Request the matching "Repair/Launcher +1" crate for your site type (HAWK, Patriot, KUB, BUK).') + table.insert(lines, string.format('- Drop repair crate(s) within ~%d m of the site, then use Build Here (confirm window applies).', br)) + table.insert(lines, '- The nearest matching site (within a local search) is respawned fully repaired; +1 launcher per crate, up to caps.') + table.insert(lines, '- Caps: HAWK 6, Patriot 6, KUB 3, BUK 6. Extra crates beyond the cap are not consumed.') + table.insert(lines, '- Must match coalition and site type; otherwise no changes are applied.') + table.insert(lines, '- Respawn is required to apply repairs/augmentation due to DCS limitations.') + table.insert(lines, '') + table.insert(lines, 'Placement tips:') + table.insert(lines, '- Space launchers to avoid masking; keep radars with good line-of-sight; avoid fratricide arcs.') + _msgCoalition(self.Side, table.concat(lines, '\n'), 45) + end) + + -- Debug logging controls + local debugMenu = MENU_COALITION:New(self.Side, 'Debug Logging', root) + MENU_COALITION_COMMAND:New(self.Side, 'Enable Verbose (LogLevel 4)', debugMenu, function() + self.Config.LogLevel = LOG_DEBUG + _logInfo(string.format('[%s] Verbose/Debug logging ENABLED via Admin menu', tostring(self.Side))) + _msgCoalition(self.Side, 'CTLD verbose logging ENABLED (LogLevel=4)', 8) + end) + MENU_COALITION_COMMAND:New(self.Side, 'Normal INFO (LogLevel 2)', debugMenu, function() + self.Config.LogLevel = LOG_INFO + _logInfo(string.format('[%s] Logging set to INFO level via Admin menu', tostring(self.Side))) + _msgCoalition(self.Side, 'CTLD logging set to INFO (LogLevel=2)', 8) + end) + MENU_COALITION_COMMAND:New(self.Side, 'Errors Only (LogLevel 1)', debugMenu, function() + self.Config.LogLevel = LOG_ERROR + _logInfo(string.format('[%s] Logging set to ERROR-only via Admin menu', tostring(self.Side))) + _msgCoalition(self.Side, 'CTLD logging: ERRORS only (LogLevel=1)', 8) + end) + MENU_COALITION_COMMAND:New(self.Side, 'Disable All (LogLevel 0)', debugMenu, function() + self.Config.LogLevel = LOG_NONE + _msgCoalition(self.Side, 'CTLD logging DISABLED (LogLevel=0)', 8) + end) + MENU_COALITION_COMMAND:New(self.Side, 'Show CTLD Status (crates/zones)', root, function() + local crates = 0 + for _ in pairs(CTLD._crates) do crates = crates + 1 end + local msg = string.format('CTLD Status:\nActive crates: %d\nPickup zones: %d\nDrop zones: %d\nFOB zones: %d\nBuild Confirm: %s (%ds window)\nBuild Cooldown: %s (%ds)' + , crates, #(self.PickupZones or {}), #(self.DropZones or {}), #(self.FOBZones or {}) + , self.Config.BuildConfirmEnabled and 'ON' or 'OFF', self.Config.BuildConfirmWindowSeconds or 0 + , self.Config.BuildCooldownEnabled and 'ON' or 'OFF', self.Config.BuildCooldownSeconds or 0) + _msgCoalition(self.Side, msg, 20) + end) + MENU_COALITION_COMMAND:New(self.Side, 'Show Coalition Summary', root, function() + self:ShowCoalitionSummary() + end) + MENU_COALITION_COMMAND:New(self.Side, 'Draw CTLD Zones on Map', root, function() + self:DrawZonesOnMap() + _msgCoalition(self.Side, 'CTLD zones drawn on F10 map.', 8) + end) + MENU_COALITION_COMMAND:New(self.Side, 'Clear CTLD Map Drawings', root, function() + self:ClearMapDrawings() + _msgCoalition(self.Side, 'CTLD map drawings cleared.', 8) + end) + -- Player Help submenu (was below; removed there and added above) + self.AdminMenu = root +end +-- #endregion Menus + +-- ========================= +-- Coalition Summary +-- ========================= +-- #region Coalition Summary +function CTLD:ShowCoalitionSummary() + -- Crate counts per type (this coalition) + local perType = {} + local total = 0 + for _,meta in pairs(CTLD._crates) do + if meta.side == self.Side then + perType[meta.key] = (perType[meta.key] or 0) + 1 + total = total + 1 + end + end + local lines = {} + table.insert(lines, string.format('CTLD Coalition Summary (%s)', (self.Side==coalition.side.BLUE and 'BLUE') or (self.Side==coalition.side.RED and 'RED') or 'NEUTRAL')) + -- Crate timeout information first (lifetime is in seconds; 0 disables cleanup) + local lifeSec = tonumber(self.Config.CrateLifetime or 0) or 0 + if lifeSec > 0 then + local mins = math.floor((lifeSec + 30) / 60) + table.insert(lines, string.format('Crate Timeout: %d mins (Crates will despawn to prevent clutter)', mins)) + else + table.insert(lines, 'Crate Timeout: Disabled') + end + table.insert(lines, string.format('Active crates: %d', total)) + if next(perType) then + table.insert(lines, 'Crates by type:') + -- stable order: sort keys alphabetically + local keys = {} + for k,_ in pairs(perType) do table.insert(keys, k) end + table.sort(keys) + for _,k in ipairs(keys) do + table.insert(lines, string.format(' %s: %d', k, perType[k])) + end + else + table.insert(lines, 'Crates by type: (none)') + end + + -- Nearby buildable recipes for each active player + table.insert(lines, '\nBuildable near players:') + local players = coalition.getPlayers(self.Side) or {} + if #players == 0 then + table.insert(lines, ' (no active players)') + else + for _,u in ipairs(players) do + local g = u:getGroup() + local gname = g and g:getName() or u:getName() or 'Group' + local pos = u:getPoint() + local here = { x = pos.x, z = pos.z } + local radius = self.Config.BuildRadius or 60 + local nearby = self:GetNearbyCrates(here, radius) + local counts = {} + for _,c in ipairs(nearby) do if c.meta.side == self.Side then counts[c.meta.key] = (counts[c.meta.key] or 0) + 1 end end + -- include carried crates if allowed + if self.Config.BuildRequiresGroundCrates ~= true then + local lc = CTLD._loadedCrates[gname] + if lc and lc.byKey then for k,v in pairs(lc.byKey) do counts[k] = (counts[k] or 0) + v end end + end + local insideFOB, _ = self:IsPointInFOBZones(here) + local buildable = {} + -- composite recipes first + for recipeKey,cat in pairs(self.Config.CrateCatalog) do + if type(cat.requires) == 'table' and cat.build then + if not (cat.isFOB and self.Config.RestrictFOBToZones and not insideFOB) then + local ok = true + for reqKey,qty in pairs(cat.requires) do if (counts[reqKey] or 0) < qty then ok = false; break end end + if ok then table.insert(buildable, cat.description or recipeKey) end + end + end + end + -- single-key + for key,cat in pairs(self.Config.CrateCatalog) do + if cat and cat.build and (not cat.requires) then + if not (cat.isFOB and self.Config.RestrictFOBToZones and not insideFOB) then + if (counts[key] or 0) >= (cat.required or 1) then table.insert(buildable, cat.description or key) end + end + end + end + if #buildable == 0 then + table.insert(lines, string.format(' %s: none', gname)) + else + -- limit to keep message short + local maxShow = 6 + local shown = {} + for i=1, math.min(#buildable, maxShow) do table.insert(shown, buildable[i]) end + local suffix = (#buildable > maxShow) and string.format(' (+%d more)', #buildable - maxShow) or '' + table.insert(lines, string.format(' %s: %s%s', gname, table.concat(shown, ', '), suffix)) + end + end + end + + -- Quick help card + table.insert(lines, '\nQuick Help:') + table.insert(lines, '- Request crates: CTLD β†’ Request Crate (near Pickup Zones).') + table.insert(lines, '- Build: double-press "Build Here" within '..tostring(self.Config.BuildConfirmWindowSeconds or 10)..'s; cooldown '..tostring(self.Config.BuildCooldownSeconds or 60)..'s per group.') + table.insert(lines, '- Hover Coach: CTLD β†’ Coach & Nav β†’ Enable/Disable; vectors to crates/zones available.') + table.insert(lines, '- Manage crates: Drop One/All from CTLD menu; build consumes nearby crates.') + + _msgCoalition(self.Side, table.concat(lines, '\n'), 25) +end +-- #endregion Coalition Summary + +-- ========================= +-- Crates +-- ========================= +-- #region Crates +-- Note: Menu creation lives in the Menus region; this section handles crate request/spawn/nearby/cleanup only. +function CTLD:RequestCrateForGroup(group, crateKey, opts) + opts = opts or {} + local cat = self.Config.CrateCatalog[crateKey] + if not cat then _msgGroup(group, 'Unknown crate type: '..tostring(crateKey)) return end + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + + local function _distanceToZone(u, z) + if not (u and z and z.GetPointVec3) then return nil end + local up = u:GetPointVec3() + local zp = z:GetPointVec3() + local dx = (up.x - zp.x) + local dz = (up.z - zp.z) + return math.sqrt(dx*dx + dz*dz) + end + + local defaultZone, defaultDist = self:_nearestActivePickupZone(unit) + local zone = opts.zone or defaultZone + local dist = opts.zoneDist or defaultDist + if zone and (not dist) then + dist = _distanceToZone(unit, zone) + end + + local defs = self:_collectActivePickupDefs() + local hasPickupZones = (#defs > 0) + local maxd = (self.Config.PickupZoneMaxDistance or 10000) + + local zoneName = zone and zone:GetName() or (hasPickupZones and 'nearest zone' or 'NO PICKUP ZONES CONFIGURED') + _eventSend(self, group, nil, 'crate_spawn_requested', { type = tostring(crateKey), zone = zoneName }) + + if not hasPickupZones and self.Config.RequirePickupZoneForCrateRequest then + _eventSend(self, group, nil, 'no_pickup_zones', {}) + return + end + + local spawnPoint + if opts.spawnPoint then + spawnPoint = { x = opts.spawnPoint.x, z = opts.spawnPoint.z } + elseif zone and dist and dist <= maxd then + spawnPoint = self:_computeCrateSpawnPoint(zone, { + minSeparation = opts.minSeparationOverride, + additionalEdgeBuffer = opts.additionalEdgeBuffer, + tries = opts.separationTries, + skipSeparationCheck = opts.skipSeparationCheck, + ignoreCrates = opts.ignoreCrates, + }) + else + if self.Config.RequirePickupZoneForCrateRequest then + local isMetric = _getPlayerIsMetric(unit) + local v, u = _fmtRange(math.max(0, (dist or 0) - maxd), isMetric) + local brg = 0 + if zone then + local up = unit:GetPointVec3(); local zp = zone:GetPointVec3() + brg = _bearingDeg({x=up.x,z=up.z}, {x=zp.x,z=zp.z}) + end + _eventSend(self, group, nil, 'pickup_zone_required', { zone_dist = v, zone_dist_u = u, zone_brg = brg }) + return + else + local p = unit:GetPointVec3() + spawnPoint = { x = p.x + 10, z = p.z + 10 } + end + end + + if not spawnPoint and zone and dist and dist <= maxd then + local centerVec = zone:GetPointVec3() + if centerVec then + spawnPoint = { x = centerVec.x, z = centerVec.z } + end + end + + if not spawnPoint then + _msgGroup(group, 'Crate spawn failed: unable to resolve spawn point.') + return + end + + local zoneNameForStock = zone and zone:GetName() or nil + if self.Config.Inventory and self.Config.Inventory.Enabled then + if not zoneNameForStock then + _msgGroup(group, 'Crate requests must be at a Supply Zone for stock control.') + return + end + CTLD._stockByZone[zoneNameForStock] = CTLD._stockByZone[zoneNameForStock] or {} + local cur = tonumber(CTLD._stockByZone[zoneNameForStock][crateKey] or 0) or 0 + if cur <= 0 then + if self:_TryUseSalvageForCrate(group, crateKey, cat) then + _logVerbose(string.format('[Salvage] Used salvage to spawn %s', crateKey)) + else + _msgGroup(group, string.format('Out of stock at %s for %s', zoneNameForStock, self:_friendlyNameForKey(crateKey))) + return + end + else + CTLD._stockByZone[zoneNameForStock][crateKey] = cur - 1 + end + end + + local cname = string.format('CTLD_CRATE_%s_%d', crateKey, math.random(100000,999999)) + _spawnStaticCargo(self.Side, { x = spawnPoint.x, z = spawnPoint.z }, cat.dcsCargoType or 'uh1h_cargo', cname) + CTLD._crates[cname] = { + key = crateKey, + side = self.Side, + spawnTime = timer.getTime(), + point = { x = spawnPoint.x, z = spawnPoint.z }, + requester = group:GetName(), + } + + _addToSpatialGrid(cname, CTLD._crates[cname], 'crate') + + if zone and (opts.suppressSmoke ~= true) then + local zdef = (self._ZoneDefs and self._ZoneDefs.PickupZones) and self._ZoneDefs.PickupZones[zone:GetName()] or nil + local smokeColor = (zdef and zdef.smoke) or self.Config.PickupZoneSmokeColor + if smokeColor then + local sx, sz = spawnPoint.x, spawnPoint.z + local sy = 0 + if land and land.getHeight then + local ok, h = pcall(land.getHeight, { x = sx, y = sz }) + if ok and type(h) == 'number' then sy = h end + end + _spawnCrateSmoke({ x = sx, y = sy, z = sz }, smokeColor, self.Config.CrateSmoke, cname) + end + end + + do + local unitPos = unit:GetPointVec3() + local from = { x = unitPos.x, z = unitPos.z } + local to = { x = spawnPoint.x, z = spawnPoint.z } + local brg = _bearingDeg(from, to) + local isMetric = _getPlayerIsMetric(unit) + local rngMeters = math.sqrt(((to.x-from.x)^2)+((to.z-from.z)^2)) + local rngV, rngU = _fmtRange(rngMeters, isMetric) + local data = { + id = cname, + type = tostring(crateKey), + brg = brg, + rng = rngV, + rng_u = rngU, + } + _eventSend(self, group, nil, 'crate_spawned', data) + end + + return cname, spawnPoint, zone +end + +-- Convenience: for composite recipes (def.requires), request all component crates in one go +function CTLD:RequestRecipeBundleForGroup(group, recipeKey) + local def = self.Config.CrateCatalog[recipeKey] + if not def or type(def.requires) ~= 'table' then + -- Fallback to single crate request + return self:RequestCrateForGroup(group, recipeKey) + end + local unit = group and group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + -- Require proximity to an active pickup zone if inventory is enabled or config requires it + local zone, dist = self:_nearestActivePickupZone(unit) + local maxd = (self.Config.PickupZoneMaxDistance or 10000) + if self.Config.RequirePickupZoneForCrateRequest and (not zone or not dist or dist > maxd) then + local isMetric = _getPlayerIsMetric(unit) + local v, u = _fmtRange(math.max(0, (dist or 0) - maxd), isMetric) + local brg = 0 + if zone then + local up = unit:GetPointVec3(); local zp = zone:GetPointVec3() + brg = _bearingDeg({x=up.x,z=up.z}, {x=zp.x,z=zp.z}) + end + _eventSend(self, group, nil, 'pickup_zone_required', { zone_dist = v, zone_dist_u = u, zone_brg = brg }) + return + end + if (self.Config.Inventory and self.Config.Inventory.Enabled) then + if not zone then + _msgGroup(group, 'Crate bundle requests must be at a Supply Zone for stock control.') + return + end + local zname = zone:GetName() + local stockTbl = CTLD._stockByZone[zname] or {} + -- Pre-check: ensure we can fulfill at least one bundle (check stock or salvage) + for reqKey, qty in pairs(def.requires) do + local have = tonumber(stockTbl[reqKey] or 0) or 0 + local need = tonumber(qty or 0) or 0 + if need > 0 and have < need then + -- Try salvage for the shortfall + local catEntry = self.Config.CrateCatalog[reqKey] + if not self:_CanUseSalvageForCrate(reqKey, catEntry, need - have) then + _msgGroup(group, string.format('Out of stock at %s for %s bundle: need %d x %s', zname, self:_friendlyNameForKey(recipeKey), need, self:_friendlyNameForKey(reqKey))) + return + end + end + end + end + -- Flatten bundle components into a deterministic order + local ordered = {} + local totalCount = 0 + local keys = {} + for reqKey,_ in pairs(def.requires) do table.insert(keys, reqKey) end + table.sort(keys, function(a, b) return tostring(a) < tostring(b) end) + for _,reqKey in ipairs(keys) do + local qty = tonumber(def.requires[reqKey] or 0) or 0 + for _ = 1, qty do + table.insert(ordered, reqKey) + totalCount = totalCount + 1 + end + end + + if totalCount == 0 then return end + + if totalCount == 1 then + self:RequestCrateForGroup(group, ordered[1], { zone = zone, zoneDist = dist }) + return + end + + local baseSeparation = math.max(0, self.Config.CrateSpawnMinSeparation or 7) + local spacing = self.Config.CrateClusterSpacing or baseSeparation + if spacing < baseSeparation then spacing = baseSeparation end + if spacing < 4 then spacing = 4 end + + local offsets, perRow, rows = self:_buildClusterOffsets(totalCount, spacing) + local clusterPad = math.max(((perRow - 1) * spacing) * 0.5, ((rows - 1) * spacing) * 0.5) + local anchor = zone and self:_computeCrateSpawnPoint(zone, { additionalEdgeBuffer = clusterPad }) or nil + + if not anchor then + for _,reqKey in ipairs(ordered) do + self:RequestCrateForGroup(group, reqKey, { zone = zone, zoneDist = dist }) + end + return + end + + local orient = math.random() * 2 * math.pi + local cosA = math.cos(orient) + local sinA = math.sin(orient) + local zoneCenterVec, zoneRadius = self:_getZoneCenterAndRadius(zone) + local zoneCenter = zoneCenterVec and { x = zoneCenterVec.x, z = zoneCenterVec.z } or nil + local safeRadius = nil + if zoneRadius then + safeRadius = math.max(0, zoneRadius - (self.Config.PickupZoneSpawnEdgeBuffer or 10)) + end + + local spawnPoints = {} + for idx = 1, totalCount do + local off = offsets[idx] or { x = 0, z = 0 } + local rx = off.x * cosA - off.z * sinA + local rz = off.x * sinA + off.z * cosA + local point = { x = anchor.x + rx, z = anchor.z + rz } + + if zoneCenter and safeRadius and safeRadius > 0 then + local dx = point.x - zoneCenter.x + local dz = point.z - zoneCenter.z + local distFromCenter = math.sqrt(dx * dx + dz * dz) + if distFromCenter > safeRadius and distFromCenter > 0 then + local scale = safeRadius / distFromCenter + point.x = zoneCenter.x + dx * scale + point.z = zoneCenter.z + dz * scale + end + end + + for name, meta in pairs(CTLD._crates) do + if meta.side == self.Side then + local dx = point.x - meta.point.x + local dz = point.z - meta.point.z + local distSq = dx * dx + dz * dz + if distSq < (baseSeparation * baseSeparation) then + local distNow = math.sqrt(distSq) + local desired = baseSeparation + 0.5 + if distNow < 0.1 then + point.x = point.x + desired + else + local push = desired - distNow + point.x = point.x + (dx / distNow) * push + point.z = point.z + (dz / distNow) * push + end + if zoneCenter and safeRadius and safeRadius > 0 then + local ndx = point.x - zoneCenter.x + local ndz = point.z - zoneCenter.z + local ndist = math.sqrt(ndx * ndx + ndz * ndz) + if ndist > safeRadius and ndist > 0 then + local scale = safeRadius / ndist + point.x = zoneCenter.x + ndx * scale + point.z = zoneCenter.z + ndz * scale + end + end + end + end + end + + spawnPoints[idx] = point + end + + local smokePlaced = false + for idx, reqKey in ipairs(ordered) do + local point = spawnPoints[idx] + self:RequestCrateForGroup(group, reqKey, { + zone = zone, + zoneDist = dist, + spawnPoint = point, + suppressSmoke = smokePlaced, + }) + smokePlaced = true + end +end + +function CTLD:GetNearbyCrates(point, radius) + local result = {} + for name,meta in pairs(CTLD._crates) do + local dx = (meta.point.x - point.x) + local dz = (meta.point.z - point.z) + local d = math.sqrt(dx*dx + dz*dz) + if d <= radius then + table.insert(result, { name = name, meta = meta }) + end + end + return result +end + +function CTLD:CleanupCrates() + local now = timer.getTime() + local life = self.Config.CrateLifetime + for name,meta in pairs(CTLD._crates) do + if now - (meta.spawnTime or now) > life then + local obj = StaticObject.getByName(name) + if obj then obj:destroy() end + _cleanupCrateSmoke(name) -- Clean up smoke refresh schedule + _removeFromSpatialGrid(name, meta.point, 'crate') -- Remove from spatial index + CTLD._crates[name] = nil + _logDebug('Cleaned up crate '..name) + -- Notify requester group if still around; else coalition + local gname = meta.requester + local group = gname and GROUP:FindByName(gname) or nil + if group and group:IsAlive() then + _eventSend(self, group, nil, 'crate_expired', { id = name }) + else + _eventSend(self, nil, self.Side, 'crate_expired', { id = name }) + end + end + end +end + +function CTLD:CleanupDeployedTroops() + -- Remove any deployed troop groups that are dead or no longer exist + for troopGroupName, troopMeta in pairs(CTLD._deployedTroops) do + if troopMeta.side == self.Side then + local troopGroup = GROUP:FindByName(troopGroupName) + if not troopGroup or not troopGroup:IsAlive() then + CTLD._deployedTroops[troopGroupName] = nil + _logDebug('Cleaned up deployed troop group: '..troopGroupName) + end + end + end +end +-- #endregion Crates + +-- ========================= +-- Build logic +-- ========================= +-- #region Build logic +function CTLD:BuildAtGroup(group, opts) + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + if self.Config.JTAC and self.Config.JTAC.Verbose then + _logInfo(string.format('JTAC trace: entering BuildAtGroup for group=%s', tostring(group:GetName()))) + end + -- Build cooldown/confirmation guardrails + local now = timer.getTime() + local gname = group:GetName() + if self.Config.BuildCooldownEnabled then + local last = CTLD._buildCooldown[gname] + if last and (now - last) < (self.Config.BuildCooldownSeconds or 60) then + local rem = math.max(0, math.ceil((self.Config.BuildCooldownSeconds or 60) - (now - last))) + _msgGroup(group, string.format('Build on cooldown. Try again in %ds.', rem)) + return + end + end + if self.Config.BuildConfirmEnabled then + local first = CTLD._buildConfirm[gname] + local win = self.Config.BuildConfirmWindowSeconds or 10 + if not first or (now - first) > win then + CTLD._buildConfirm[gname] = now + _msgGroup(group, string.format('Confirm build: select "Build Here" again within %ds to proceed.', win)) + return + else + -- within window; proceed and clear pending + CTLD._buildConfirm[gname] = nil + end + end + local p = unit:GetPointVec3() + local here = { x = p.x, z = p.z } + -- Compute a safe spawn point offset forward from the aircraft to prevent rotor/ground collisions with spawned units + local hdgRad, hdgDeg = _headingRadDeg(unit) + local buildOffset = math.max(0, tonumber(self.Config.BuildSpawnOffset or 0) or 0) + local spawnAt = (buildOffset > 0) and { x = here.x + math.sin(hdgRad) * buildOffset, z = here.z + math.cos(hdgRad) * buildOffset } or { x = here.x, z = here.z } + local radius = self.Config.BuildRadius + local nearby = self:GetNearbyCrates(here, radius) + -- filter crates to coalition side for this CTLD instance + local filtered = {} + for _,c in ipairs(nearby) do + if c.meta.side == self.Side then table.insert(filtered, c) end + end + nearby = filtered + if #nearby == 0 then + _eventSend(self, group, nil, 'build_insufficient_crates', { build = 'asset' }) + -- Nudge players to use Recipe Info + _msgGroup(group, 'Tip: Use CTLD β†’ Recipe Info to see exact crate requirements for each build.') + return + end + + -- Count by key + local counts = {} + for _,c in ipairs(nearby) do + counts[c.meta.key] = (counts[c.meta.key] or 0) + 1 + end + + -- Include loaded crates carried by this group + local carried = CTLD._loadedCrates[gname] + if self.Config.BuildRequiresGroundCrates ~= true then + if carried and carried.byKey then + for k,v in pairs(carried.byKey) do + counts[k] = (counts[k] or 0) + v + end + end + end + + -- Helper to consume crates of a given key/qty + local function consumeCrates(key, qty) + local removed = 0 + -- Optionally consume from carried crates + if self.Config.BuildRequiresGroundCrates ~= true then + if carried and carried.byKey and (carried.byKey[key] or 0) > 0 then + local take = math.min(qty, carried.byKey[key]) + carried.byKey[key] = carried.byKey[key] - take + if carried.byKey[key] <= 0 then carried.byKey[key] = nil end + carried.total = math.max(0, (carried.total or 0) - take) + removed = removed + take + if take > 0 then ctld:_scheduleLoadedCrateMenuRefresh(group) end + end + end + for _,c in ipairs(nearby) do + if removed >= qty then break end + if c.meta.key == key then + local obj = StaticObject.getByName(c.name) + if obj then obj:destroy() end + _cleanupCrateSmoke(c.name) -- Clean up smoke refresh schedule + CTLD._crates[c.name] = nil + removed = removed + 1 + end + end + end + + local insideFOBZone, fz = self:IsPointInFOBZones(here) + local fobBlocked = false + -- Try composite recipes first (requires is a map of key->qty) + for recipeKey,cat in pairs(self.Config.CrateCatalog) do + if type(cat.requires) == 'table' and cat.build then + if cat.isFOB and self.Config.RestrictFOBToZones and not insideFOBZone then + fobBlocked = true + else + -- Build caps disabled: rely solely on inventory/catalog control + local ok = true + for reqKey,qty in pairs(cat.requires) do + if (counts[reqKey] or 0) < qty then ok = false; break end + end + if ok then + local gdata = cat.build({ x = spawnAt.x, z = spawnAt.z }, hdgDeg, cat.side or self.Side) + _eventSend(self, group, nil, 'build_started', { build = cat.description or recipeKey }) + local g = _coalitionAddGroup(cat.side or self.Side, cat.category or Group.Category.GROUND, gdata, self.Config) + if g then + if self.Config.JTAC and self.Config.JTAC.Verbose then + _logInfo(string.format('JTAC trace: composite build spawned group=%s recipe=%s', tostring(g:getName()), tostring(recipeKey))) + end + -- Register JTAC if applicable (composite recipe) + self:_maybeRegisterJTAC(recipeKey, cat, g) + for reqKey,qty in pairs(cat.requires) do consumeCrates(reqKey, qty) end + -- No site cap counters when caps are disabled + _eventSend(self, nil, self.Side, 'build_success_coalition', { build = cat.description or recipeKey, player = _playerNameFromGroup(group) }) + -- If this was a FOB, register a new pickup zone with reduced stock + if cat.isFOB then + pcall(function() + self:_CreateFOBPickupZone({ x = spawnAt.x, z = spawnAt.z }, cat, hdg) + end) + end + -- Assign optional behavior for built vehicles/groups + local behavior = opts and opts.behavior or nil + if behavior == 'attack' and self.Config.AttackAI and self.Config.AttackAI.Enabled then + local t = self:_assignAttackBehavior(g:getName(), spawnAt, true) + local isMetric = _getPlayerIsMetric(group:GetUnit(1)) + if t and t.kind == 'base' then + local brg = _bearingDeg({ x = spawnAt.x, z = spawnAt.z }, { x = t.point.x, z = t.point.z }) + local v, u = _fmtRange(t.dist or 0, isMetric) + _eventSend(self, nil, self.Side, 'attack_base_announce', { unit_name = g:getName(), player = _playerNameFromGroup(group), base_name = t.name, brg = brg, rng = v, rng_u = u }) + elseif t and t.kind == 'enemy' then + local brg = _bearingDeg({ x = spawnAt.x, z = spawnAt.z }, { x = t.point.x, z = t.point.z }) + local v, u = _fmtRange(t.dist or 0, isMetric) + _eventSend(self, nil, self.Side, 'attack_enemy_announce', { unit_name = g:getName(), player = _playerNameFromGroup(group), enemy_type = t.etype or 'unit', brg = brg, rng = v, rng_u = u }) + else + local v, u = _fmtRange((self.Config.AttackAI and self.Config.AttackAI.VehicleSearchRadius) or 5000, isMetric) + _eventSend(self, nil, self.Side, 'attack_no_targets', { unit_name = g:getName(), player = _playerNameFromGroup(group), rng = v, rng_u = u }) + end + end + if self.Config.BuildCooldownEnabled then CTLD._buildCooldown[gname] = now end + return + else + _eventSend(self, group, nil, 'build_failed', { reason = 'DCS group spawn error' }) + return + end + end + -- continue_composite (Lua 5.1 compatible: no labels) + end + end + end + + -- Then single-key recipes + for key,count in pairs(counts) do + local cat = self.Config.CrateCatalog[key] + if cat and cat.build and (not cat.requires) and count >= (cat.required or 1) then + if cat.isFOB and self.Config.RestrictFOBToZones and not insideFOBZone then + fobBlocked = true + else + -- Build caps disabled: rely solely on inventory/catalog control + local gdata = cat.build({ x = spawnAt.x, z = spawnAt.z }, hdgDeg, cat.side or self.Side) + _eventSend(self, group, nil, 'build_started', { build = cat.description or key }) + local g = _coalitionAddGroup(cat.side or self.Side, cat.category or Group.Category.GROUND, gdata, self.Config) + if g then + if self.Config.JTAC and self.Config.JTAC.Verbose then + _logInfo(string.format('JTAC trace: single build spawned group=%s key=%s', tostring(g:getName()), tostring(key))) + end + -- Register JTAC if applicable (single-unit recipe) + self:_maybeRegisterJTAC(key, cat, g) + consumeCrates(key, cat.required or 1) + -- No single-unit cap counters when caps are disabled + _eventSend(self, nil, self.Side, 'build_success_coalition', { build = cat.description or key, player = _playerNameFromGroup(group) }) + -- Assign optional behavior for built vehicles/groups + local behavior = opts and opts.behavior or nil + if behavior == 'attack' and self.Config.AttackAI and self.Config.AttackAI.Enabled then + local t = self:_assignAttackBehavior(g:getName(), spawnAt, true) + local isMetric = _getPlayerIsMetric(group:GetUnit(1)) + if t and t.kind == 'base' then + local brg = _bearingDeg({ x = spawnAt.x, z = spawnAt.z }, { x = t.point.x, z = t.point.z }) + local v, u = _fmtRange(t.dist or 0, isMetric) + _eventSend(self, nil, self.Side, 'attack_base_announce', { unit_name = g:getName(), player = _playerNameFromGroup(group), base_name = t.name, brg = brg, rng = v, rng_u = u }) + elseif t and t.kind == 'enemy' then + local brg = _bearingDeg({ x = spawnAt.x, z = spawnAt.z }, { x = t.point.x, z = t.point.z }) + local v, u = _fmtRange(t.dist or 0, isMetric) + _eventSend(self, nil, self.Side, 'attack_enemy_announce', { unit_name = g:getName(), player = _playerNameFromGroup(group), enemy_type = t.etype or 'unit', brg = brg, rng = v, rng_u = u }) + else + local v, u = _fmtRange((self.Config.AttackAI and self.Config.AttackAI.VehicleSearchRadius) or 5000, isMetric) + _eventSend(self, nil, self.Side, 'attack_no_targets', { unit_name = g:getName(), player = _playerNameFromGroup(group), rng = v, rng_u = u }) + end + end + if self.Config.BuildCooldownEnabled then CTLD._buildCooldown[gname] = now end + return + else + _eventSend(self, group, nil, 'build_failed', { reason = 'DCS group spawn error' }) + return + end + end + end + -- continue_single (Lua 5.1 compatible: no labels) + end + + if fobBlocked then + _eventSend(self, group, nil, 'fob_restricted', {}) + return + end + + -- Helpful hint if building requires ground crates and player is carrying crates + if self.Config.BuildRequiresGroundCrates == true then + local carried = CTLD._loadedCrates[gname] + if carried and (carried.total or 0) > 0 then + _eventSend(self, group, nil, 'build_requires_ground', { total = carried.total }) + return + end + end + _eventSend(self, group, nil, 'build_insufficient_crates', { build = 'asset' }) + -- Provide a short breakdown of most likely recipes and what is missing + local suggestions = {} + local function pushSuggestion(name, missingStr, haveParts, totalParts) + table.insert(suggestions, { name = name, miss = missingStr, have = haveParts, total = totalParts }) + end + -- consider composite recipes with at least one matching component nearby + for rkey,cat in pairs(self.Config.CrateCatalog) do + if type(cat.requires) == 'table' then + local have, total, missingList = 0, 0, {} + for reqKey,qty in pairs(cat.requires) do + total = total + (qty or 0) + local haveHere = math.min(qty or 0, counts[reqKey] or 0) + have = have + haveHere + local need = math.max(0, (qty or 0) - (counts[reqKey] or 0)) + if need > 0 then + local fname = self:_friendlyNameForKey(reqKey) + table.insert(missingList, string.format('%dx %s', need, fname)) + end + end + if have > 0 and have < total then + local name = cat.description or cat.menu or rkey + pushSuggestion(name, table.concat(missingList, ', '), have, total) + end + else + -- single-key recipe: if some crates present but not enough + local need = (cat and (cat.required or 1)) or 1 + local have = counts[rkey] or 0 + if have > 0 and have < need then + local name = cat.description or cat.menu or rkey + pushSuggestion(name, string.format('%d more crate(s) of %s', need - have, self:_friendlyNameForKey(rkey)), have, need) + end + end + end + table.sort(suggestions, function(a,b) + local ra = (a.total > 0) and (a.have / a.total) or 0 + local rb = (b.total > 0) and (b.have / b.total) or 0 + if ra == rb then return (a.total - a.have) < (b.total - b.have) end + return ra > rb + end) + if #suggestions > 0 then + local maxShow = math.min(2, #suggestions) + for i=1,maxShow do + local s = suggestions[i] + _msgGroup(group, string.format('Missing for %s: %s', s.name, s.miss)) + end + else + _msgGroup(group, 'No matching recipe found with nearby crates. Check Recipe Info for requirements.') + end +end +-- #endregion Build logic + +-- ========================= +-- Loaded crate management +-- ========================= +-- #region Loaded crate management + +-- Update DCS internal cargo weight for a group +function CTLD:_updateCargoWeight(group) + _updateCargoWeight(group) +end + +function CTLD:_addLoadedCrate(group, crateKey) + local gname = group:GetName() + CTLD._loadedCrates[gname] = CTLD._loadedCrates[gname] or { total = 0, totalWeightKg = 0, byKey = {} } + local lc = CTLD._loadedCrates[gname] + lc.total = lc.total + 1 + lc.byKey[crateKey] = (lc.byKey[crateKey] or 0) + 1 + + -- Add weight from catalog + local cat = self.Config.CrateCatalog[crateKey] + local crateWeight = (cat and cat.weightKg) or 0 + lc.totalWeightKg = (lc.totalWeightKg or 0) + crateWeight + + -- Update DCS internal cargo weight + self:_updateCargoWeight(group) + + -- Refresh drop-by-type menu after loading + self:_scheduleLoadedCrateMenuRefresh(group) +end + +function CTLD:_clearLoadedCrateMenuCommands(gname) + self._loadedCrateMenus = self._loadedCrateMenus or {} + local state = self._loadedCrateMenus[gname] + if not state or not state.commands then return end + for _,cmd in ipairs(state.commands) do + if cmd and cmd.Remove then + pcall(function() cmd:Remove() end) + end + end + state.commands = {} +end + +function CTLD:_BuildOrRefreshLoadedCrateMenu(group, parentMenu) + if not group then return end + self._loadedCrateMenus = self._loadedCrateMenus or {} + local gname = group:GetName() + local state = self._loadedCrateMenus[gname] or { commands = {} } + state.parent = parentMenu + state.groupName = gname + self._loadedCrateMenus[gname] = state + + self:_clearLoadedCrateMenuCommands(gname) + + local carried = CTLD._loadedCrates[gname] + local byKey = (carried and carried.byKey) or {} + local keys = {} + for key,count in pairs(byKey) do + if count and count > 0 then table.insert(keys, key) end + end + + local ctld = self + if #keys == 0 then + local cmd = MENU_GROUP_COMMAND:New(group, 'No crates onboard', parentMenu, function() + _msgGroup(group, 'No crates loaded to drop individually.') + end) + table.insert(state.commands, cmd) + return + end + + table.sort(keys, function(a, b) + local fa = ctld:_friendlyNameForKey(a) or a + local fb = ctld:_friendlyNameForKey(b) or b + if fa == fb then return a < b end + return fa < fb + end) + + for _,key in ipairs(keys) do + local count = byKey[key] or 0 + local friendly = ctld:_friendlyNameForKey(key) or key + local title = string.format('Drop %s (%d)', friendly, count) + local cmd = MENU_GROUP_COMMAND:New(group, title, parentMenu, function() + ctld:DropLoadedCrates(group, 1, key) + end) + table.insert(state.commands, cmd) + end +end + +function CTLD:_scheduleLoadedCrateMenuRefresh(group) + if not group then return end + self._loadedCrateMenus = self._loadedCrateMenus or {} + local gname = group:GetName() + local state = self._loadedCrateMenus[gname] + if not state or not state.parent then return end + local ctld = self + local id = timer.scheduleFunction(function() + local g = GROUP:FindByName(gname) + if not g then return end + ctld:_BuildOrRefreshLoadedCrateMenu(g, state.parent) + return + end, {}, timer.getTime() + 0.1) + _trackOneShotTimer(id) +end + +function CTLD:DropLoadedCrates(group, howMany, crateKey) + local gname = group:GetName() + local lc = CTLD._loadedCrates[gname] + if not lc or (lc.total or 0) == 0 then _eventSend(self, group, nil, 'no_loaded_crates', {}) return end + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + -- Restrict dropping crates inside Pickup Zones if configured + if self.Config.ForbidDropsInsidePickupZones then + local activeOnly = (self.Config.ForbidChecksActivePickupOnly ~= false) + local inside = false + local ok, err = pcall(function() + inside = select(1, self:_isUnitInsidePickupZone(unit, activeOnly)) + end) + if ok and inside then + _eventSend(self, group, nil, 'drop_forbidden_in_pickup', {}) + return + end + end + local p = unit:GetPointVec3() + local here = { x = p.x, z = p.z } + -- Offset drop point forward of the aircraft to avoid rotor/airframe damage + local hdgRad, _ = _headingRadDeg(unit) + local fwd = math.max(0, tonumber(self.Config.DropCrateForwardOffset or 20) or 0) + local dropPt = (fwd > 0) and { x = here.x + math.sin(hdgRad) * fwd, z = here.z + math.cos(hdgRad) * fwd } or { x = here.x, z = here.z } + local initialTotal = lc.total or 0 + local requested = (howMany and howMany > 0) and howMany or initialTotal + + local dropPlan = {} + if crateKey then + local available = lc.byKey[crateKey] or 0 + if available <= 0 then + local friendly = self:_friendlyNameForKey(crateKey) or crateKey + _msgGroup(group, string.format('No %s crates loaded.', friendly)) + return + end + local qty = math.min(requested, available) + table.insert(dropPlan, { key = crateKey, count = qty }) + else + local keys = {} + for key,_ in pairs(lc.byKey) do table.insert(keys, key) end + table.sort(keys, function(a, b) + local fa = self:_friendlyNameForKey(a) or a + local fb = self:_friendlyNameForKey(b) or b + if fa == fb then return a < b end + return fa < fb + end) + local remaining = math.min(requested, initialTotal) + for _,key in ipairs(keys) do + if remaining <= 0 then break end + local available = lc.byKey[key] or 0 + if available > 0 then + local qty = math.min(available, remaining) + table.insert(dropPlan, { key = key, count = qty }) + remaining = remaining - qty + end + end + end + + local totalToDrop = 0 + for _,entry in ipairs(dropPlan) do totalToDrop = totalToDrop + (entry.count or 0) end + if totalToDrop <= 0 then + _msgGroup(group, 'No valid crates selected to drop.') + return + end + + _eventSend(self, group, nil, 'drop_initiated', { count = totalToDrop, key = crateKey }) + -- Warn about crate timeout when dropping + local lifeSec = tonumber(self.Config.CrateLifetime or 0) or 0 + if lifeSec > 0 then + local mins = math.floor((lifeSec + 30) / 60) + _msgGroup(group, string.format('Note: Crates will despawn after %d mins to prevent clutter.', mins)) + end + -- Drop following the prepared plan + for _,entry in ipairs(dropPlan) do + local k = entry.key + local dropNow = entry.count or 0 + if dropNow > 0 then + local cat = self.Config.CrateCatalog[k] + local crateWeight = (cat and cat.weightKg) or 0 + for i=1,dropNow do + local cname = string.format('CTLD_CRATE_%s_%d', k, math.random(100000,999999)) + _spawnStaticCargo(self.Side, dropPt, (cat and cat.dcsCargoType) or 'uh1h_cargo', cname) + CTLD._crates[cname] = { key = k, side = self.Side, spawnTime = timer.getTime(), point = { x = dropPt.x, z = dropPt.z } } + -- Add to spatial index + _addToSpatialGrid(cname, CTLD._crates[cname], 'crate') + lc.byKey[k] = lc.byKey[k] - 1 + if lc.byKey[k] <= 0 then lc.byKey[k] = nil end + lc.total = lc.total - 1 + lc.totalWeightKg = (lc.totalWeightKg or 0) - crateWeight + end + end + end + local actualDropped = initialTotal - (lc.total or 0) + _eventSend(self, group, nil, 'dropped_crates', { count = actualDropped, key = crateKey }) + + -- Update DCS internal cargo weight after dropping + self:_updateCargoWeight(group) + + -- Refresh drop-by-type menu after dropping + self:_scheduleLoadedCrateMenuRefresh(group) + + -- Reiterate timeout after drop completes (players may miss the initial warning) + if lifeSec > 0 then + local mins = math.floor((lifeSec + 30) / 60) + _msgGroup(group, string.format('Reminder: Dropped crates will despawn after %d mins to prevent clutter.', mins)) + end +end + +-- Show inventory at the nearest pickup zone/FOB +function CTLD:ShowNearestZoneInventory(group) + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + + -- Find nearest active pickup zone + local zone, dist = self:_nearestActivePickupZone(unit) + + if not zone then + _msgGroup(group, 'No active pickup zones found nearby. Move closer to a supply zone.') + return + end + + local zoneName = zone:GetName() + local isMetric = _getPlayerIsMetric(unit) + local rngV, rngU = _fmtRange(dist, isMetric) + + -- Get inventory for this zone + local stockTbl = CTLD._stockByZone[zoneName] or {} + + -- Build the inventory display + local lines = {} + table.insert(lines, string.format('Inventory at %s', zoneName)) + table.insert(lines, string.format('Distance: %.1f %s', rngV, rngU)) + table.insert(lines, '') + + -- Check if inventory system is enabled + local invEnabled = self.Config.Inventory and self.Config.Inventory.Enabled ~= false + if not invEnabled then + table.insert(lines, 'Inventory tracking is disabled - all items available.') + _msgGroup(group, table.concat(lines, '\n'), 20) + return + end + + -- Count total items and organize by category + local totalItems = 0 + local byCategory = {} + + for key, count in pairs(stockTbl) do + if count > 0 then + local def = self.Config.CrateCatalog[key] + if def and ((not def.side) or def.side == self.Side) then + local cat = (def.menuCategory or 'Other') + byCategory[cat] = byCategory[cat] or {} + table.insert(byCategory[cat], { + key = key, + name = def.menu or def.description or key, + count = count, + isRecipe = (type(def.requires) == 'table') + }) + totalItems = totalItems + count + end + end + end + + if totalItems == 0 then + table.insert(lines, 'No items in stock at this location.') + table.insert(lines, 'Request resupply or move to another zone.') + else + table.insert(lines, string.format('Total items in stock: %d', totalItems)) + table.insert(lines, '') + + -- Sort categories for consistent display + local categories = {} + for cat, _ in pairs(byCategory) do + table.insert(categories, cat) + end + table.sort(categories) + + -- Display items by category + for _, cat in ipairs(categories) do + table.insert(lines, string.format('-- %s --', cat)) + local items = byCategory[cat] + -- Sort items by name + table.sort(items, function(a, b) return a.name < b.name end) + for _, item in ipairs(items) do + if item.isRecipe then + -- For recipes, calculate available bundles + local def = self.Config.CrateCatalog[item.key] + local bundles = math.huge + if def and def.requires then + for reqKey, qty in pairs(def.requires) do + local have = tonumber(stockTbl[reqKey] or 0) or 0 + local need = tonumber(qty or 0) or 0 + if need > 0 then + bundles = math.min(bundles, math.floor(have / need)) + end + end + end + if bundles == math.huge then bundles = 0 end + table.insert(lines, string.format(' %s: %d bundle%s', item.name, bundles, (bundles == 1 and '' or 's'))) + else + table.insert(lines, string.format(' %s: %d', item.name, item.count)) + end + end + table.insert(lines, '') + end + end + + -- Display the inventory + _msgGroup(group, table.concat(lines, '\n'), 30) +end + +-- #endregion Loaded crate management + +-- ========================= +-- Hover pickup scanner +-- ========================= +-- #region Hover pickup scanner +function CTLD:ScanHoverPickup() + local coachCfg = CTLD.HoverCoachConfig or { enabled = false } + if not coachCfg.enabled then return end + + -- iterate all groups that have menus (active transports) + for gname,_ in pairs(self.MenusByGroup or {}) do + local group = GROUP:FindByName(gname) + if group and group:IsAlive() then + local unit = group:GetUnit(1) + if unit and unit:IsAlive() then + -- Allowed type check + local typ = _getUnitType(unit) + if _isIn(self.Config.AllowedAircraft, typ) then + local uname = unit:GetName() + local now = timer.getTime() + local p3 = unit:GetPointVec3() + local ground = land and land.getHeight and land.getHeight({ x = p3.x, y = p3.z }) or 0 + local agl = math.max(0, p3.y - ground) + + -- Skip hover coaching if on the ground (let ground auto-load handle it) + local groundCfg = CTLD.GroundAutoLoadConfig or {} + local groundContactAGL = groundCfg.GroundContactAGL or 3.5 + if agl <= groundContactAGL then + -- On ground, clear hover state and skip hover logic + CTLD._hoverState[uname] = nil + -- Also, when firmly landed, suppress any completed ground-load state + -- so returning to this spot without crates won't keep retriggering. + if CTLD._groundLoadState and CTLD._groundLoadState[uname] and CTLD._groundLoadState[uname].completed then + CTLD._groundLoadState[uname] = nil + end + else + -- speeds (ground/vertical) + local last = CTLD._unitLast[uname] + local gs, vs = 0, 0 + if last and (now > (last.t or 0)) then + local dt = now - last.t + if dt > 0 then + local dx = (p3.x - last.x) + local dz = (p3.z - last.z) + gs = math.sqrt(dx*dx + dz*dz) / dt + if last.agl then vs = (agl - last.agl) / dt end + end + end + CTLD._unitLast[uname] = { x = p3.x, z = p3.z, t = now, agl = agl } + + -- Use spatial indexing to find nearby crates/troops efficiently + local maxd = coachCfg.autoPickupDistance or 25 + local nearby = _getNearbyFromSpatialGrid(p3.x, p3.z, maxd) + + local friendlyCrateCount = 0 + local friendlyTroopCount = 0 + local bestName, bestMeta, bestd + local bestType = 'crate' + + -- Search nearby crates from spatial grid + for name, meta in pairs(nearby.crates or {}) do + if meta.side == self.Side then + friendlyCrateCount = friendlyCrateCount + 1 + local dx = (meta.point.x - p3.x) + local dz = (meta.point.z - p3.z) + local d = math.sqrt(dx*dx + dz*dz) + if d <= maxd and ((not bestd) or d < bestd) then + bestName, bestMeta, bestd = name, meta, d + bestType = 'crate' + end + end + end + + -- Search nearby deployed troops from spatial grid + for troopGroupName, troopMeta in pairs(nearby.troops or {}) do + if troopMeta.side == self.Side then + friendlyTroopCount = friendlyTroopCount + 1 + local troopGroup = GROUP:FindByName(troopGroupName) + if troopGroup and troopGroup:IsAlive() then + local troopPos = troopGroup:GetCoordinate() + if troopPos then + local tp = troopPos:GetVec3() + local dx = (tp.x - p3.x) + local dz = (tp.z - p3.z) + local d = math.sqrt(dx*dx + dz*dz) + if d <= maxd and ((not bestd) or d < bestd) then + bestName, bestMeta, bestd = troopGroupName, troopMeta, d + bestType = 'troops' + end + end + else + -- Group doesn't exist or is dead, remove from tracking + _removeFromSpatialGrid(troopGroupName, troopMeta.point, 'troops') + CTLD._deployedTroops[troopGroupName] = nil + end + end + end + + if CTLD.Config and CTLD.Config.DebugHoverCrates and (friendlyCrateCount > 0 or friendlyTroopCount > 0) then + local debugLabel = bestName or 'none' + local debugType = bestType + local debugDist = bestd + if not bestName and friendlyCrateCount > 0 then + debugLabel = 'pending' + debugType = 'crate' + debugDist = math.huge + end + _debugCrateSight('HoverDebug', { + unit = uname, + now = now, + interval = CTLD.Config.DebugHoverCratesInterval, + step = CTLD.Config.DebugHoverCratesStep, + name = debugLabel, + distance = debugDist, + count = friendlyCrateCount, + troops = friendlyTroopCount, + radius = maxd, + typeHint = debugType, + note = string.format('coachGS<=%.1f', coachCfg.thresholds.captureGS or (4/3.6)), + }) + end + + local coachEnabled = coachCfg.enabled + if CTLD._coachOverride and CTLD._coachOverride[gname] ~= nil then + coachEnabled = CTLD._coachOverride[gname] + end + + -- If coach is on, provide phased guidance + if coachEnabled and bestName and bestMeta then + local thresholds = coachCfg.thresholds or {} + local isMetric = _getPlayerIsMetric(unit) + + -- Arrival phase + if bestd <= (thresholds.arrivalDist or 1000) then + _coachSend(self, group, uname, 'coach_arrival', {}, false) + end + + -- Close-in guidance + if bestd <= (thresholds.closeDist or 100) then + _coachSend(self, group, uname, 'coach_close', {}, false) + end + + -- Precision phase + if bestd <= (thresholds.precisionDist or 30) then + local hdg, _ = _headingRadDeg(unit) + local dx = (bestMeta.point.x - p3.x) + local dz = (bestMeta.point.z - p3.z) + local right, fwd = _projectToBodyFrame(dx, dz, hdg) + + -- Horizontal hint formatting + local function hintDir(val, posWord, negWord, toUnits) + local mag = math.abs(val) + local v, u = _fmtDistance(mag, isMetric) + if mag < 0.5 then return nil end + return string.format("%s %d %s", (val >= 0 and posWord or negWord), v, u) + end + local h = {} + local rHint = hintDir(right, 'Right', 'Left') + local fHint = hintDir(fwd, 'Forward', 'Back') + if rHint then table.insert(h, rHint) end + if fHint then table.insert(h, fHint) end + + -- Vertical hint against AGL window + local vHint + local aglMin = thresholds.aglMin or 5 + local aglMax = thresholds.aglMax or 20 + if agl < aglMin then + local dv, du = _fmtAGL(aglMin - agl, isMetric) + vHint = string.format("Up %d %s", dv, du) + elseif agl > aglMax then + local dv, du = _fmtAGL(agl - aglMax, isMetric) + vHint = string.format("Down %d %s", dv, du) + end + if vHint then table.insert(h, vHint) end + + local hints = table.concat(h, ", ") + local gsV, gsU = _fmtSpeed(gs, isMetric) + local data = { hints = (hints ~= '' and (hints..'.') or ''), gs = gsV, gs_u = gsU } + + _coachSend(self, group, uname, 'coach_hint', data, true) + + -- Error prompts (dominant one) + local maxGS = thresholds.maxGS or (8/3.6) + local aglMinT = aglMin + local aglMaxT = aglMax + if gs > maxGS then + local v, u = _fmtSpeed(gs, isMetric) + _coachSend(self, group, uname, 'coach_too_fast', { gs = v, gs_u = u }, false) + elseif agl > aglMaxT then + local v, u = _fmtAGL(agl, isMetric) + _coachSend(self, group, uname, 'coach_too_high', { agl = v, agl_u = u }, false) + elseif agl < aglMinT then + local v, u = _fmtAGL(agl, isMetric) + _coachSend(self, group, uname, 'coach_too_low', { agl = v, agl_u = u }, false) + end + end + end + + -- Auto-load logic using capture thresholds + local capGS = coachCfg.thresholds.captureGS or (4/3.6) + local aglMin = coachCfg.thresholds.aglMin or 5 + local aglMax = coachCfg.thresholds.aglMax or 20 + local speedOK = gs <= capGS + local heightOK = (agl >= aglMin and agl <= aglMax) + + if bestName and bestMeta and speedOK and heightOK then + local withinRadius = bestd <= (coachCfg.thresholds.captureHoriz or 2) + + if withinRadius then + local carried = CTLD._loadedCrates[gname] + local total = carried and carried.total or 0 + local currentWeight = carried and carried.totalWeightKg or 0 + + -- Get aircraft-specific capacity instead of global setting + local capacity = _getAircraftCapacity(unit) + local maxCrates = capacity.maxCrates + local maxTroops = capacity.maxTroops + local maxWeight = capacity.maxWeightKg or 0 + + -- Calculate weight and check capacity based on type + local itemWeight = 0 + local countOK = false + local weightOK = false + + if bestType == 'crate' then + -- Picking up a crate + itemWeight = (bestMeta and self.Config.CrateCatalog[bestMeta.key] and self.Config.CrateCatalog[bestMeta.key].weightKg) or 0 + local wouldBeWeight = currentWeight + itemWeight + countOK = (total < maxCrates) + weightOK = (maxWeight <= 0) or (wouldBeWeight <= maxWeight) + elseif bestType == 'troops' then + -- Picking up troops - check if we can ADD them to existing load + itemWeight = bestMeta.weightKg or 0 + local wouldBeWeight = currentWeight + itemWeight + local troopCount = bestMeta.count or 0 + + -- Check if we already have troops loaded - if so, check if we can add more + local currentTroops = CTLD._troopsLoaded[gname] + local currentTroopCount = currentTroops and currentTroops.count or 0 + local totalTroopCount = currentTroopCount + troopCount + + -- Check total capacity (allow mixing different troop types) + countOK = (totalTroopCount <= maxTroops) + weightOK = (maxWeight <= 0) or (wouldBeWeight <= maxWeight) + + -- Provide feedback if capacity exceeded + if not countOK then + local hs = CTLD._hoverState[uname] + if not hs or hs.messageShown ~= true then + _msgGroup(group, string.format('Troop capacity exceeded! Current: %d, Adding: %d, Max: %d', + currentTroopCount, troopCount, maxTroops)) + if not hs then + CTLD._hoverState[uname] = { messageShown = true } + else + hs.messageShown = true + end + end + end + end + + -- Check both count AND weight limits + if countOK and weightOK then + local hs = CTLD._hoverState[uname] + if not hs or hs.targetCrate ~= bestName or hs.targetType ~= bestType then + CTLD._hoverState[uname] = { targetCrate = bestName, targetType = bestType, startTime = now } + if coachEnabled then _coachSend(self, group, uname, 'coach_hold', {}, false) end + else + -- stability hold timer + local holdNeeded = coachCfg.thresholds.stabilityHold or 1.8 + if (now - hs.startTime) >= holdNeeded then + -- load it + if bestType == 'crate' then + -- Use shared loading function + local success = self:_loadCrateIntoAircraft(group, bestName, bestMeta) + if success then + if coachEnabled then + _coachSend(self, group, uname, 'coach_loaded', {}, false) + else + _msgGroup(group, string.format('Loaded %s crate', tostring(bestMeta.key))) + end + end + elseif bestType == 'troops' then + -- Pick up the troop group + local troopGroup = GROUP:FindByName(bestName) + if troopGroup then + troopGroup:Destroy() + end + _removeFromSpatialGrid(bestName, bestMeta.point, 'troops') -- Remove from spatial index + CTLD._deployedTroops[bestName] = nil + + -- ADD to existing troops if any, don't overwrite + local currentTroops = CTLD._troopsLoaded[gname] + if currentTroops then + -- Add to existing load (supports mixing types) + local troopTypes = currentTroops.troopTypes or { { typeKey = currentTroops.typeKey, count = currentTroops.count } } + table.insert(troopTypes, { typeKey = bestMeta.typeKey, count = bestMeta.count }) + + CTLD._troopsLoaded[gname] = { + count = currentTroops.count + bestMeta.count, + typeKey = 'Mixed', -- Indicate mixed types + troopTypes = troopTypes, -- Store individual type details + weightKg = currentTroops.weightKg + bestMeta.weightKg + } + self:_refreshLoadedTroopSummaryForGroup(gname) + _msgGroup(group, string.format('Loaded %d more troops (total: %d)', bestMeta.count, CTLD._troopsLoaded[gname].count)) + else + -- First load + CTLD._troopsLoaded[gname] = { + count = bestMeta.count, + typeKey = bestMeta.typeKey, + troopTypes = { { typeKey = bestMeta.typeKey, count = bestMeta.count } }, + weightKg = bestMeta.weightKg + } + self:_refreshLoadedTroopSummaryForGroup(gname) + if coachEnabled then + _msgGroup(group, string.format('Loaded %d troops', bestMeta.count)) + else + _msgGroup(group, string.format('Loaded %d troops', bestMeta.count)) + end + end + + -- Update cargo weight + self:_updateCargoWeight(group) + end + CTLD._hoverState[uname] = nil + end + end + else + -- Aircraft at capacity - notify player with weight/count info + local aircraftType = _getUnitType(unit) or 'aircraft' + if not weightOK then + -- Weight limit exceeded + _msgGroup(group, string.format('Weight capacity reached! Current: %dkg, Item: %dkg, Max: %dkg for %s', + math.floor(currentWeight), math.floor(itemWeight), math.floor(maxWeight), aircraftType)) + elseif bestType == 'crate' then + -- Count limit exceeded for crates + _eventSend(self, group, nil, 'crate_aircraft_capacity', { current = total, max = maxCrates, aircraft = aircraftType }) + elseif bestType == 'troops' then + -- Count limit exceeded for troops + _eventSend(self, group, nil, 'troop_aircraft_capacity', { count = bestMeta.count or 0, max = maxTroops, aircraft = aircraftType }) + end + CTLD._hoverState[uname] = nil + end + else + -- lost precision window + if coachEnabled then _coachSend(self, group, uname, 'coach_hover_lost', {}, false) end + CTLD._hoverState[uname] = nil + end + else + -- reset hover state when outside primary envelope + if CTLD._hoverState[uname] then + if coachEnabled then _coachSend(self, group, uname, 'coach_abort', {}, false) end + end + CTLD._hoverState[uname] = nil + end + end + end + end + end + end +end +-- #endregion Hover pickup scanner + +-- ========================= +-- Ground Auto-Load Scanner +-- ========================= +-- #region Ground auto-load scanner +function CTLD:ScanGroundAutoLoad() + local groundCfg = CTLD.GroundAutoLoadConfig or { Enabled = false } + if not groundCfg.Enabled then return end + + local now = timer.getTime() + local progressMsgInterval = (self.GroundLoadComms and self.GroundLoadComms.ProgressInterval) or 5 + + -- Iterate all groups that have menus (active transports) + for gname, _ in pairs(self.MenusByGroup or {}) do + local group = GROUP:FindByName(gname) + if group and group:IsAlive() then + local unit = group:GetUnit(1) + if unit and unit:IsAlive() then + local typ = _getUnitType(unit) + if _isIn(self.Config.AllowedAircraft, typ) then + local uname = unit:GetName() + + -- Ensure ground-load state table exists + CTLD._groundLoadState = CTLD._groundLoadState or {} + + -- Check if already carrying crates (skip if at capacity) + local carried = CTLD._loadedCrates[gname] + local currentCount = carried and carried.total or 0 + local capacity = _getAircraftCapacity(unit) + + if currentCount < capacity.maxCrates then + -- Check basic requirements: on ground, low speed + local agl = _getUnitAGL(unit) + local gs = _getGroundSpeed(unit) + local onGround = (agl <= (groundCfg.GroundContactAGL or 3.5)) + local slowEnough = (gs <= (groundCfg.MaxGroundSpeed or 2.0)) + + -- If a previous ground auto-load completed while we remain effectively stationary + -- on the ground, avoid auto-starting again until the aircraft has moved or lifted off. + local state = CTLD._groundLoadState[uname] + local canProcess = true + if state and state.completed and onGround and slowEnough then + local p3 = unit:GetPointVec3() + local sx = state.completedPosition and state.completedPosition.x or state.startPosition and state.startPosition.x or p3.x + local sz = state.completedPosition and state.completedPosition.z or state.startPosition and state.startPosition.z or p3.z + local dx = (p3.x - sx) + local dz = (p3.z - sz) + local moved = math.sqrt(dx*dx + dz*dz) + -- Require a small reposition (e.g., taxi or liftoff) before new auto-load cycles + if moved < 20 then + canProcess = false + end + end + + if onGround and slowEnough and canProcess then + -- Check zone requirement + local inValidZone = false + if groundCfg.RequirePickupZone then + local inPickupZone = self:_isUnitInsidePickupZone(unit, true) + + if not inPickupZone and groundCfg.AllowInFOBZones then + -- Check FOB zones too + for _, fobZone in ipairs(self.FOBZones or {}) do + local fname = fobZone:GetName() + if self._ZoneActive.FOB[fname] ~= false then + local fobPoint = fobZone:GetPointVec3() + local unitPoint = unit:GetPointVec3() + local dx = (fobPoint.x - unitPoint.x) + local dz = (fobPoint.z - unitPoint.z) + local d = math.sqrt(dx*dx + dz*dz) + local fobRadius = self:_getZoneRadius(fobZone) + if d <= fobRadius then + inValidZone = true + break + end + end + end + else + inValidZone = inPickupZone + end + else + inValidZone = true -- no zone requirement + end + + if inValidZone then + -- Find nearby crates + local p3 = unit:GetPointVec3() + local searchRadius = groundCfg.SearchRadius or 50 + local nearby = _getNearbyFromSpatialGrid(p3.x, p3.z, searchRadius) + + local bestGroundCrate, bestGroundDist = nil, math.huge + local loadableCrates = {} + for name, meta in pairs(nearby.crates or {}) do + if meta.side == self.Side then + local dx = (meta.point.x - p3.x) + local dz = (meta.point.z - p3.z) + local d = math.sqrt(dx*dx + dz*dz) + if d <= searchRadius then + local entry = { name = name, meta = meta, dist = d } + table.insert(loadableCrates, entry) + if d < bestGroundDist then + bestGroundCrate, bestGroundDist = entry, d + end + end + end + end + + if CTLD.Config and CTLD.Config.DebugGroundCrates then + local shouldReport = true + local gst = CTLD._groundLoadState and CTLD._groundLoadState[uname] + if gst and gst.reportHold then + -- only emit periodic heartbeat during hold + local last = gst.reportLast or 0 + if (now - last) < (CTLD.Config.DebugGroundCratesInterval or 2.0) then + shouldReport = false + else + CTLD._groundLoadState[uname].reportLast = now + end + end + if shouldReport then + _debugCrateSight('GroundDebug', { + unit = uname, + now = now, + interval = CTLD.Config.DebugGroundCratesInterval, + step = CTLD.Config.DebugGroundCratesStep, + name = bestGroundCrate and bestGroundCrate.name or 'none', + distance = (bestGroundDist ~= math.huge) and bestGroundDist or nil, + count = #loadableCrates, + troops = 0, + radius = searchRadius, + typeHint = 'crate', + note = string.format('freeSlots=%d', math.max(0, capacity.maxCrates - currentCount)) + }) + end + end + + if #loadableCrates > 0 then + -- Sort by distance, load closest first (up to capacity) + table.sort(loadableCrates, function(a, b) return a.dist < b.dist end) + + -- Determine how many we can load + local canLoad = math.min(#loadableCrates, capacity.maxCrates - currentCount) + local cratesToLoad = {} + for i = 1, canLoad do + table.insert(cratesToLoad, loadableCrates[i]) + end + + if #cratesToLoad > 0 then + -- Ground load state machine + local state = CTLD._groundLoadState[uname] + if not state or not state.loading then + -- Start new load sequence + CTLD._groundLoadState[uname] = { + loading = true, + startTime = now, + cratesToLoad = cratesToLoad, + startPosition = { x = p3.x, z = p3.z }, + lastCheckTime = now, + } + local msgData = _prepareGroundLoadMessage(self, 'Start', { + seconds = groundCfg.LoadDelay, + count = #cratesToLoad, + }) + _coachSend(self, group, uname, 'ground_load_started', msgData, false) + else + -- Validate that crates in state still exist + local validCrates = {} + for _, crateInfo in ipairs(state.cratesToLoad or {}) do + -- Check if crate still exists in CTLD._crates + if CTLD._crates[crateInfo.name] then + table.insert(validCrates, crateInfo) + end + end + + -- If no valid crates remain, reset state + if #validCrates == 0 then + CTLD._groundLoadState[uname] = nil + else + -- Update state with only valid crates + state.cratesToLoad = validCrates + + -- Continue existing sequence + local elapsed = now - state.startTime + local remaining = (groundCfg.LoadDelay or 15) - elapsed + + -- Check if moved too much + local dx = (p3.x - state.startPosition.x) + local dz = (p3.z - state.startPosition.z) + local moved = math.sqrt(dx*dx + dz*dz) + if moved > 10 then -- moved more than 10m + _coachSend(self, group, uname, 'ground_load_aborted', {}, false) + CTLD._groundLoadState[uname] = nil + else + -- Progress message every 5 seconds + if (now - state.lastCheckTime) >= progressMsgInterval and remaining > 1 then + local msgData = _prepareGroundLoadMessage(self, 'Progress', { + remaining = math.max(0, math.ceil(remaining)), + }) + _coachSend(self, group, uname, 'ground_load_progress', msgData, false) + state.lastCheckTime = now + state.reportHold = true + end + + -- Check if time elapsed + if remaining <= 0 then + -- Load the crates! + local loadedCount = 0 + for _, crateInfo in ipairs(state.cratesToLoad) do + local success = self:_loadCrateIntoAircraft(group, crateInfo.name, crateInfo.meta) + if success then + loadedCount = loadedCount + 1 + end + end + + if loadedCount > 0 then + local msgData = _prepareGroundLoadMessage(self, 'Complete', { + count = loadedCount, + }) + _coachSend(self, group, uname, 'ground_load_complete', msgData, false) + -- Mark completion and remember where it happened so we don't + -- immediately restart another cycle while still parked. + CTLD._groundLoadState[uname] = { + completed = true, + completedTime = now, + completedPosition = { x = p3.x, z = p3.z }, + reportHold = false, + } + else + -- Nothing actually loaded; clear state fully. + CTLD._groundLoadState[uname] = nil + end + end + end + end -- end of validCrates > 0 + end -- end of state exists check + else + CTLD._groundLoadState[uname] = nil + end + else + CTLD._groundLoadState[uname] = nil + end + else + -- Not in a valid zone + local state = CTLD._groundLoadState[uname] + if state and state.sentZoneWarning ~= true then + -- Send zone requirement message (once) + local nearestZone, nearestDist = self:_nearestActivePickupZone(unit) + if nearestZone and nearestDist then + local isMetric = _getPlayerIsMetric(unit) + local brg = _bearingTo(unit, nearestZone) + local distV, distU = _fmtDistance(nearestDist, isMetric) + _coachSend(self, group, uname, 'ground_load_no_zone', { + zone_dist = distV, + zone_dist_u = distU, + zone_brg = brg + }, false) + end + if not state then + CTLD._groundLoadState[uname] = { sentZoneWarning = true } + else + state.sentZoneWarning = true + end + end + end + else + -- Not on ground or moving too fast, reset state + local state = CTLD._groundLoadState[uname] + if state and state.loading then + -- Was loading but now lifted off or moved + _coachSend(self, group, uname, 'ground_load_aborted', {}, false) + end + CTLD._groundLoadState[uname] = nil + end + else + -- At capacity, no need to check + CTLD._groundLoadState[uname] = nil + end + end + end + end + end +end + +-- Helper: Load a crate into an aircraft (shared by hover and ground load) +function CTLD:_loadCrateIntoAircraft(group, crateName, crateMeta) + if not group or not crateName or not crateMeta then return false end + + local gname = group:GetName() + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return false end + + -- Destroy the static object first + local obj = StaticObject.getByName(crateName) + if obj then obj:destroy() end + + -- Clean up crate smoke refresh schedule + _cleanupCrateSmoke(crateName) + + -- Remove from spatial grid and tracking + _removeFromSpatialGrid(crateName, crateMeta.point, 'crate') + CTLD._crates[crateName] = nil + + -- Add to loaded crates using existing method (maintains consistency with rest of code) + self:_addLoadedCrate(group, crateMeta.key) + + -- Update inventory if enabled + if self.Config.Inventory and self.Config.Inventory.Enabled and crateMeta.spawnZone then + pcall(function() self:_updateInventoryOnPickup(crateMeta.spawnZone, crateMeta.key) end) + end + + _logDebug(string.format('[Load] Loaded crate %s (%s) into %s', crateName, crateMeta.key, gname)) + return true +end +-- #endregion Ground auto-load scanner + +-- ========================= +-- Troops +-- ========================= +-- #region Troops +function CTLD:_lookupCrateLabel(crateKey) + if not crateKey then return 'Unknown Crate' end + local cat = self.Config and self.Config.CrateCatalog or {} + local def = cat[crateKey] + if def then + return def.menu or def.description or def.name or def.displayName or crateKey + end + return crateKey +end + +function CTLD:_lookupTroopLabel(typeKey) + if not typeKey or typeKey == '' then return 'Troops' end + local cfg = self.Config and self.Config.Troops and self.Config.Troops.TroopTypes + local def = cfg and cfg[typeKey] + if def and def.label and def.label ~= '' then + return def.label + end + return typeKey +end + +function CTLD:_refreshLoadedTroopSummaryForGroup(groupName) + if not groupName or groupName == '' then return end + local load = CTLD._troopsLoaded[groupName] + if not load or (load.count or 0) == 0 then + CTLD._loadedTroopTypes[groupName] = nil + return + end + + local entries = {} + if load.troopTypes and #load.troopTypes > 0 then + entries = load.troopTypes + else + entries = { { typeKey = load.typeKey, count = load.count } } + end + + local summary = { total = 0, byType = {}, labels = {} } + for _, entry in ipairs(entries) do + local typeKey = entry.typeKey or load.typeKey or 'Troops' + local count = entry.count or 0 + if count > 0 then + summary.byType[typeKey] = (summary.byType[typeKey] or 0) + count + summary.labels[typeKey] = self:_lookupTroopLabel(typeKey) + summary.total = summary.total + count + end + end + + if summary.total > 0 then + CTLD._loadedTroopTypes[groupName] = summary + else + CTLD._loadedTroopTypes[groupName] = nil + end +end + +function CTLD:LoadTroops(group, opts) + local gname = group:GetName() + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + + -- Check for MEDEVAC crew pickup first + if CTLD.MEDEVAC and CTLD.MEDEVAC.Enabled then + local medevacPickedUp = self:CheckMEDEVACPickup(group) + if medevacPickedUp then + return -- MEDEVAC crew was picked up, don't continue with normal troop loading + end + end + + -- Ground requirement check for troop loading (realistic behavior) + if self.Config.RequireGroundForTroopLoad then + local unitType = _getUnitType(unit) + local capacities = self.Config.AircraftCapacities or {} + local specific = capacities[unitType] + + -- Check per-aircraft override first, then fall back to global config + local requireGround = (specific and specific.requireGround ~= nil) and specific.requireGround or true + + if requireGround then + -- Must be on the ground + if _isUnitInAir(unit) then + local isMetric = _getPlayerIsMetric(unit) + local maxSpeed = (specific and specific.maxGroundSpeed) or self.Config.MaxGroundSpeedForLoading or 2.0 + local speedVal, speedUnit = _fmtSpeed(maxSpeed, isMetric) + _eventSend(self, group, nil, 'troop_load_must_land', { max_speed = speedVal, speed_u = speedUnit }) + return + end + + -- Check ground speed (must not be taxiing too fast) + local groundSpeed = _getGroundSpeed(unit) + local maxSpeed = (specific and specific.maxGroundSpeed) or self.Config.MaxGroundSpeedForLoading or 2.0 + + if groundSpeed > maxSpeed then + local isMetric = _getPlayerIsMetric(unit) + local currentVal, currentUnit = _fmtSpeed(groundSpeed, isMetric) + local maxVal, maxUnit = _fmtSpeed(maxSpeed, isMetric) + _eventSend(self, group, nil, 'troop_load_too_fast', { + current_speed = currentVal, + max_speed = maxVal, + speed_u = maxUnit + }) + return + end + end + end + + -- Check for nearby deployed troops first (allow pickup regardless of zone restrictions) + local p3 = unit:GetPointVec3() + local maxPickupDistance = 25 -- meters for ground-based troop pickup (matches hover pickup distance) + local nearby = _getNearbyFromSpatialGrid(p3.x, p3.z, maxPickupDistance) + + local nearbyTroopGroup = nil + local nearbyTroopMeta = nil + local nearbyTroopDist = nil + + -- Search for nearby deployed troops + for troopGroupName, troopMeta in pairs(nearby.troops) do + if troopMeta.side == self.Side then + local troopGroup = GROUP:FindByName(troopGroupName) + if troopGroup and troopGroup:IsAlive() then + local troopPos = troopGroup:GetCoordinate() + if troopPos then + local tp = troopPos:GetVec3() + local dx = (tp.x - p3.x) + local dz = (tp.z - p3.z) + local d = math.sqrt(dx*dx + dz*dz) + if d <= maxPickupDistance and ((not nearbyTroopDist) or d < nearbyTroopDist) then + nearbyTroopGroup = troopGroup + nearbyTroopMeta = troopMeta + nearbyTroopDist = d + end + end + end + end + end + + -- If we found nearby deployed troops, pick them up (bypass zone requirement) + if nearbyTroopGroup and nearbyTroopMeta then + -- Load the deployed troops + local troopCount = nearbyTroopMeta.count or 0 + local typeKey = nearbyTroopMeta.typeKey or 'AS' + local troopWeight = nearbyTroopMeta.weightKg or 0 + + -- Check aircraft capacity + local capacity = _getAircraftCapacity(unit) + local maxTroops = capacity.maxTroops + local maxWeight = capacity.maxWeightKg or 0 + + local currentTroops = CTLD._troopsLoaded[gname] + local currentTroopCount = currentTroops and currentTroops.count or 0 + local totalTroopCount = currentTroopCount + troopCount + + local carried = CTLD._loadedCrates[gname] + local currentWeight = carried and carried.totalWeightKg or 0 + local wouldBeWeight = currentWeight + troopWeight + + -- Check capacity + if totalTroopCount > maxTroops then + local aircraftType = _getUnitType(unit) or 'aircraft' + _msgGroup(group, string.format('Troop capacity exceeded! Current: %d, Adding: %d, Max: %d for %s', + currentTroopCount, troopCount, maxTroops, aircraftType)) + return + end + + if maxWeight > 0 and wouldBeWeight > maxWeight then + local aircraftType = _getUnitType(unit) or 'aircraft' + _msgGroup(group, string.format('Weight capacity exceeded! Current: %dkg, Troops: %dkg, Max: %dkg for %s', + math.floor(currentWeight), math.floor(troopWeight), math.floor(maxWeight), aircraftType)) + return + end + + -- Load the troops and remove from deployed tracking + if currentTroops then + local troopTypes = currentTroops.troopTypes or { { typeKey = currentTroops.typeKey, count = currentTroops.count } } + table.insert(troopTypes, { typeKey = typeKey, count = troopCount }) + + CTLD._troopsLoaded[gname] = { + count = totalTroopCount, + typeKey = 'Mixed', + troopTypes = troopTypes, + weightKg = currentTroops.weightKg + troopWeight, + } + else + CTLD._troopsLoaded[gname] = { + count = troopCount, + typeKey = typeKey, + troopTypes = { { typeKey = typeKey, count = troopCount } }, + weightKg = troopWeight, + } + end + + -- Remove from deployed tracking + local troopGroupName = nearbyTroopGroup:GetName() + _removeFromSpatialGrid(troopGroupName, nearbyTroopMeta.point, 'troops') + CTLD._deployedTroops[troopGroupName] = nil + + -- Destroy the troop group + nearbyTroopGroup:Destroy() + + self:_refreshLoadedTroopSummaryForGroup(gname) + _eventSend(self, group, nil, 'troops_loaded', { count = totalTroopCount }) + _msgGroup(group, string.format('Picked up %d deployed troops (total onboard: %d)', troopCount, totalTroopCount)) + + return -- Successfully picked up deployed troops, exit function + end + + -- No nearby deployed troops found, enforce pickup zone requirement for spawning new troops + if self.Config.RequirePickupZoneForTroopLoad then + local hasPickupZones = (self.PickupZones and #self.PickupZones > 0) or (self.Config.Zones and self.Config.Zones.PickupZones and #self.Config.Zones.PickupZones > 0) + if not hasPickupZones then + _eventSend(self, group, nil, 'no_pickup_zones', {}) + return + end + local zone, dist = self:_nearestActivePickupZone(unit) + if not zone or not dist then + -- No active pickup zone resolvable; provide helpful vectors to nearest configured zone if any + local list = {} + if self.Config and self.Config.Zones and self.Config.Zones.PickupZones then + for _, z in ipairs(self.Config.Zones.PickupZones) do table.insert(list, z) end + elseif self.PickupZones and #self.PickupZones > 0 then + for _, mz in ipairs(self.PickupZones) do if mz and mz.GetName then table.insert(list, { name = mz:GetName() }) end end + end + local fbZone, fbDist = _nearestZonePoint(unit, list) + if fbZone and fbDist then + local isMetric = _getPlayerIsMetric(unit) + local rZone = self:_getZoneRadius(fbZone) or 0 + local delta = math.max(0, fbDist - rZone) + local v, u = _fmtRange(delta, isMetric) + local up = unit:GetPointVec3(); local zp = fbZone:GetPointVec3() + local brg = _bearingDeg({ x = up.x, z = up.z }, { x = zp.x, z = zp.z }) + _eventSend(self, group, nil, 'troop_pickup_zone_required', { zone_dist = v, zone_dist_u = u, zone_brg = brg }) + else + _eventSend(self, group, nil, 'no_pickup_zones', {}) + end + return + end + local inside = false + if zone then + local rZone = self:_getZoneRadius(zone) or 0 + if dist and rZone and dist <= rZone then inside = true end + end + if not inside then + local isMetric = _getPlayerIsMetric(unit) + local rZone = (self:_getZoneRadius(zone) or 0) + local delta = (dist and rZone) and math.max(0, dist - rZone) or 0 + local v, u = _fmtRange(delta, isMetric) + -- Bearing from player to zone center + local up = unit:GetPointVec3() + local zp = zone and zone:GetPointVec3() or nil + local brg = 0 + if zp then + brg = _bearingDeg({ x = up.x, z = up.z }, { x = zp.x, z = zp.z }) + end + _eventSend(self, group, nil, 'troop_pickup_zone_required', { zone_dist = v, zone_dist_u = u, zone_brg = brg }) + return + end + end + + -- Determine troop type and composition + local requestedType = (opts and (opts.typeKey or opts.type)) + or (self.Config.Troops and self.Config.Troops.DefaultType) + or 'AS' + local unitsList, label = self:_resolveTroopUnits(requestedType) + local troopDef = (self.Config.Troops and self.Config.Troops.TroopTypes and self.Config.Troops.TroopTypes[requestedType]) or nil + + -- Check if we already have troops (allow mixing different types now) + local currentTroops = CTLD._troopsLoaded[gname] + + -- Check aircraft capacity for troops + local capacity = _getAircraftCapacity(unit) + local maxTroops = capacity.maxTroops + local maxWeight = capacity.maxWeightKg or 0 + local troopCount = #unitsList + + -- Calculate troop weight from catalog + local troopWeight = 0 + if troopDef and troopDef.weightKg then + troopWeight = troopDef.weightKg + elseif troopCount > 0 then + -- Fallback: estimate 100kg per soldier if no weight defined + troopWeight = troopCount * 100 + end + + -- Check current cargo weight and troop count + local carried = CTLD._loadedCrates[gname] + local currentWeight = carried and carried.totalWeightKg or 0 + local currentTroopCount = currentTroops and currentTroops.count or 0 + local totalTroopCount = currentTroopCount + troopCount + local wouldBeWeight = currentWeight + troopWeight + + -- Check total troop count limit + if totalTroopCount > maxTroops then + -- Aircraft cannot carry this many troops total + local aircraftType = _getUnitType(unit) or 'aircraft' + _msgGroup(group, string.format('Troop capacity exceeded! Current: %d, Adding: %d, Max: %d for %s', + currentTroopCount, troopCount, maxTroops, aircraftType)) + return + end + + -- Check weight limit (if enabled) + if maxWeight > 0 and wouldBeWeight > maxWeight then + -- Weight capacity exceeded + local aircraftType = _getUnitType(unit) or 'aircraft' + _msgGroup(group, string.format('Weight capacity exceeded! Current: %dkg, Troops: %dkg, Max: %dkg for %s', + math.floor(currentWeight), math.floor(troopWeight), math.floor(maxWeight), aircraftType)) + return + end + + -- ADD to existing troops or create new entry + if currentTroops then + -- Add to existing load (supports mixing types) + local troopTypes = currentTroops.troopTypes or { { typeKey = currentTroops.typeKey, count = currentTroops.count } } + table.insert(troopTypes, { typeKey = requestedType, count = troopCount }) + + CTLD._troopsLoaded[gname] = { + count = totalTroopCount, + typeKey = 'Mixed', -- Indicate mixed types + troopTypes = troopTypes, -- Store individual type details + weightKg = currentTroops.weightKg + troopWeight, + } + self:_refreshLoadedTroopSummaryForGroup(gname) + _eventSend(self, group, nil, 'troops_loaded', { count = totalTroopCount }) + _msgGroup(group, string.format('Loaded %d more troops (total: %d)', troopCount, totalTroopCount)) + else + CTLD._troopsLoaded[gname] = { + count = troopCount, + typeKey = requestedType, + troopTypes = { { typeKey = requestedType, count = troopCount } }, + weightKg = troopWeight, + } + self:_refreshLoadedTroopSummaryForGroup(gname) + _eventSend(self, group, nil, 'troops_loaded', { count = troopCount }) + end + + -- Update DCS internal cargo weight + self:_updateCargoWeight(group) +end + +function CTLD:UnloadTroops(group, opts) + local gname = group:GetName() + local load = CTLD._troopsLoaded[gname] + if not load or (load.count or 0) == 0 then _eventSend(self, group, nil, 'no_troops', {}) return end + + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + + -- Check for MEDEVAC crew delivery to MASH first + if CTLD.MEDEVAC and CTLD.MEDEVAC.Enabled then + local medevacStatus = self:CheckMEDEVACDelivery(group, load) + if medevacStatus == 'delivered' then + -- Crew delivered to MASH, clear troops and return + CTLD._troopsLoaded[gname] = nil + CTLD._loadedTroopTypes[gname] = nil + + -- Update DCS internal cargo weight after delivery + self:_updateCargoWeight(group) + + return + elseif medevacStatus == 'pending' then + return + end + end + + -- Determine if unit is in the air and check for fast-rope capability + local isInAir = _isUnitInAir(unit) + local canFastRope = false + local isFastRope = false + + if isInAir then + -- Unit is airborne - check if fast-rope is enabled and if altitude is safe + if self.Config.EnableFastRope then + local p3 = unit:GetPointVec3() + local ground = land and land.getHeight and land.getHeight({x = p3.x, y = p3.z}) or 0 + local agl = p3.y - ground + local maxFastRopeAGL = self.Config.FastRopeMaxHeight or 20 + local minFastRopeAGL = self.Config.FastRopeMinHeight or 5 + + if agl > maxFastRopeAGL then + -- Too high for fast-rope + local isMetric = _getPlayerIsMetric(unit) + local aglDisplay = _fmtAGL(agl, isMetric) + _eventSend(self, group, nil, 'troop_unload_altitude_too_high', { + max_agl = math.floor(maxFastRopeAGL), + current_agl = math.floor(agl) + }) + return + elseif agl < minFastRopeAGL then + -- Too low for safe fast-rope + _eventSend(self, group, nil, 'troop_unload_altitude_too_low', { + min_agl = math.floor(minFastRopeAGL), + current_agl = math.floor(agl) + }) + return + else + -- Within safe fast-rope window + canFastRope = true + isFastRope = true + end + else + -- Fast-rope disabled - must land + _msgGroup(group, "Must land to deploy troops. Fast-rope is disabled.", 10) + return + end + end + + -- Restrict deploying troops inside Pickup Zones if configured + if self.Config.ForbidTroopDeployInsidePickupZones then + local activeOnly = (self.Config.ForbidChecksActivePickupOnly ~= false) + local inside = false + local ok, _ = pcall(function() + inside = select(1, self:_isUnitInsidePickupZone(unit, activeOnly)) + end) + if ok and inside then + _eventSend(self, group, nil, 'troop_deploy_forbidden_in_pickup', {}) + return + end + end + + local p = unit:GetPointVec3() + local here = { x = p.x, z = p.z } + local hdgRad, _ = _headingRadDeg(unit) + -- Offset troop spawn forward to avoid spawning under/near rotors + local troopOffset = math.max(0, tonumber(self.Config.TroopSpawnOffset or 0) or 0) + local center = (troopOffset > 0) and { x = here.x + math.sin(hdgRad) * troopOffset, z = here.z + math.cos(hdgRad) * troopOffset } or { x = here.x, z = here.z } + + -- Build the unit composition - handle mixed troop types + local units = {} + local spacing = 1.8 + local unitIndex = 0 + + if load.troopTypes then + -- Mixed types - spawn each type's units + for _, troopTypeData in ipairs(load.troopTypes) do + local comp, _ = self:_resolveTroopUnits(troopTypeData.typeKey) + for i=1, #comp do + unitIndex = unitIndex + 1 + local dx = (unitIndex-1) * spacing + local dz = ((unitIndex % 2) == 0) and 2.0 or -2.0 + table.insert(units, { + type = tostring(comp[i] or 'Infantry AK'), + name = string.format('CTLD-TROOP-%d', math.random(100000,999999)), + x = center.x + dx, y = center.z + dz, heading = hdgRad + }) + end + end + else + -- Single type (legacy support) + local comp, _ = self:_resolveTroopUnits(load.typeKey) + for i=1, #comp do + unitIndex = unitIndex + 1 + local dx = (unitIndex-1) * spacing + local dz = ((unitIndex % 2) == 0) and 2.0 or -2.0 + table.insert(units, { + type = tostring(comp[i] or 'Infantry AK'), + name = string.format('CTLD-TROOP-%d', math.random(100000,999999)), + x = center.x + dx, y = center.z + dz, heading = hdgRad + }) + end + end + + local groupData = { + visible=false, lateActivation=false, tasks={}, task='Ground Nothing', + units=units, route={}, name=string.format('CTLD_TROOPS_%d', math.random(100000,999999)) + } + local spawned = _coalitionAddGroup(self.Side, Group.Category.GROUND, groupData, self.Config) + if spawned then + -- Track deployed troop groups for later pickup + local troopGroupName = spawned:getName() + CTLD._deployedTroops[troopGroupName] = { + typeKey = load.typeKey, + count = load.count, + side = self.Side, + spawnTime = timer.getTime(), + point = { x = center.x, z = center.z }, + weightKg = load.weightKg or 0, + behavior = opts and opts.behavior or 'defend' + } + -- Add to spatial index for efficient hover pickup + _addToSpatialGrid(troopGroupName, CTLD._deployedTroops[troopGroupName], 'troops') + + CTLD._troopsLoaded[gname] = nil + CTLD._loadedTroopTypes[gname] = nil + + -- Update DCS internal cargo weight after unloading troops + self:_updateCargoWeight(group) + + -- Send appropriate message based on deployment method + if isFastRope then + local aircraftType = _getUnitType(unit) or 'aircraft' + _eventSend(self, nil, self.Side, 'troops_fast_roped_coalition', { + count = #units, + player = _playerNameFromGroup(group), + aircraft = aircraftType + }) + else + _eventSend(self, nil, self.Side, 'troops_unloaded_coalition', { count = #units, player = _playerNameFromGroup(group) }) + end + + -- Assign optional behavior + local behavior = opts and opts.behavior or nil + if behavior == 'attack' and self.Config.AttackAI and self.Config.AttackAI.Enabled then + local t = self:_assignAttackBehavior(spawned:getName(), center, false) + -- Announce intentions globally + local isMetric = _getPlayerIsMetric(group:GetUnit(1)) + if t and t.kind == 'base' then + local brg = _bearingDeg({ x = center.x, z = center.z }, { x = t.point.x, z = t.point.z }) + local v, u = _fmtRange(t.dist or 0, isMetric) + _eventSend(self, nil, self.Side, 'attack_base_announce', { unit_name = spawned:getName(), player = _playerNameFromGroup(group), base_name = t.name, brg = brg, rng = v, rng_u = u }) + elseif t and t.kind == 'enemy' then + local brg = _bearingDeg({ x = center.x, z = center.z }, { x = t.point.x, z = t.point.z }) + local v, u = _fmtRange(t.dist or 0, isMetric) + _eventSend(self, nil, self.Side, 'attack_enemy_announce', { unit_name = spawned:getName(), player = _playerNameFromGroup(group), enemy_type = t.etype or 'unit', brg = brg, rng = v, rng_u = u }) + else + local v, u = _fmtRange((self.Config.AttackAI and self.Config.AttackAI.TroopSearchRadius) or 3000, isMetric) + _eventSend(self, nil, self.Side, 'attack_no_targets', { unit_name = spawned:getName(), player = _playerNameFromGroup(group), rng = v, rng_u = u }) + end + end + else + _eventSend(self, group, nil, 'troops_deploy_failed', { reason = 'DCS group spawn error' }) + end +end +-- #endregion Troops + +-- Internal: resolve troop composition list for a given type key and coalition +function CTLD:_resolveTroopUnits(typeKey) + local tcfg = (self.Config.Troops and self.Config.Troops.TroopTypes) or {} + local def = tcfg[typeKey or 'AS'] or {} + + -- Log warning if troop types are missing + if not def or not def.size then + _logError(string.format('WARNING: Troop type "%s" not found or incomplete. TroopTypes table has %d entries.', + typeKey or 'AS', + (tcfg and type(tcfg) == 'table') and #tcfg or 0)) + end + + local size = tonumber(def.size or 0) or 0 + if size <= 0 then size = 6 end + local pool + if self.Side == coalition.side.BLUE then + pool = def.unitsBlue or def.units + elseif self.Side == coalition.side.RED then + pool = def.unitsRed or def.units + else + pool = def.units + end + if not pool or #pool == 0 then pool = { 'Infantry AK' } end + + -- Debug: Log what units will spawn + local unitList = {} + for i=1,math.min(size, 3) do + table.insert(unitList, pool[((i-1) % #pool) + 1]) + end + _logDebug(string.format('Spawning %d troops for type "%s": %s%s', + size, + typeKey or 'AS', + table.concat(unitList, ', '), + size > 3 and '...' or '')) + + local list = {} + for i=1,size do list[i] = pool[((i-1) % #pool) + 1] end + local label = def.label or typeKey or 'Troops' + return list, label +end + +-- ========================= +-- Public helpers +-- ========================= +-- ========================= +-- Auto-build FOB in zones +-- ========================= +-- #region Auto-build FOB in zones +function CTLD:AutoBuildFOBCheck() + if not (self.FOBZones and #self.FOBZones > 0) then return end + -- Find any FOB recipe definitions + local fobDefs = {} + for key,def in pairs(self.Config.CrateCatalog) do if def.isFOB and def.build then fobDefs[key] = def end end + if next(fobDefs) == nil then return end + + for _,zone in ipairs(self.FOBZones) do + local center = zone:GetPointVec3() + local radius = self:_getZoneRadius(zone) + local nearby = self:GetNearbyCrates({ x = center.x, z = center.z }, radius) + -- filter to this coalition side + local filtered = {} + for _,c in ipairs(nearby) do if c.meta.side == self.Side then table.insert(filtered, c) end end + nearby = filtered + + if #nearby > 0 then + local counts = {} + for _,c in ipairs(nearby) do counts[c.meta.key] = (counts[c.meta.key] or 0) + 1 end + + local function consumeCrates(key, qty) + local removed = 0 + for _,c in ipairs(nearby) do + if removed >= qty then break end + if c.meta.key == key then + local obj = StaticObject.getByName(c.name) + if obj then obj:destroy() end + _cleanupCrateSmoke(c.name) -- Clean up smoke refresh schedule + CTLD._crates[c.name] = nil + removed = removed + 1 + end + end + end + + local built = false + + -- Prefer composite recipes + for recipeKey,cat in pairs(fobDefs) do + if type(cat.requires) == 'table' then + local ok = true + for reqKey,qty in pairs(cat.requires) do if (counts[reqKey] or 0) < qty then ok = false; break end end + if ok then + local gdata = cat.build({ x = center.x, z = center.z }, 0, cat.side or self.Side) + local g = _coalitionAddGroup(cat.side or self.Side, cat.category or Group.Category.GROUND, gdata, self.Config) + if g then + for reqKey,qty in pairs(cat.requires) do consumeCrates(reqKey, qty) end + _msgCoalition(self.Side, string.format('FOB auto-built at %s', zone:GetName())) + built = true + break -- move to next zone; avoid multiple builds per tick + end + end + end + end + + -- Then single-key FOB recipes + if not built then + for key,cat in pairs(fobDefs) do + if not cat.requires and (counts[key] or 0) >= (cat.required or 1) then + local gdata = cat.build({ x = center.x, z = center.z }, 0, cat.side or self.Side) + local g = _coalitionAddGroup(cat.side or self.Side, cat.category or Group.Category.GROUND, gdata, self.Config) + if g then + consumeCrates(key, cat.required or 1) + _msgCoalition(self.Side, string.format('FOB auto-built at %s', zone:GetName())) + built = true + break + end + end + end + end + -- next zone iteration continues automatically + end + end +end +-- #endregion Auto-build FOB in zones + +-- ========================= +-- Public helpers +-- ========================= +-- #region Public helpers +function CTLD:RegisterCrate(key, def) + self.Config.CrateCatalog[key] = def +end + +function CTLD:MergeCatalog(tbl) + for k,v in pairs(tbl or {}) do self.Config.CrateCatalog[k] = v end +end + +-- ========================= +-- Inventory helpers +-- ========================= +-- #region Inventory helpers +function CTLD:InitInventory() + if not (self.Config.Inventory and self.Config.Inventory.Enabled) then return end + -- Seed stock for each configured pickup zone (by name only) + for _,z in ipairs(self.PickupZones or {}) do + local name = z:GetName() + self:_SeedZoneStock(name, 1.0) + end +end + +function CTLD:_SeedZoneStock(zoneName, factor) + if not zoneName then return end + CTLD._stockByZone[zoneName] = CTLD._stockByZone[zoneName] or {} + local f = factor or 1.0 + for key,def in pairs(self.Config.CrateCatalog or {}) do + local n = tonumber(def.initialStock or 0) or 0 + n = math.max(0, math.floor(n * f + 0.0001)) + -- Only seed if not already present (avoid overwriting saved/progress state) + if CTLD._stockByZone[zoneName][key] == nil then + CTLD._stockByZone[zoneName][key] = n + end + end +end + +function CTLD:_CreateFOBPickupZone(point, cat, hdg) + -- Create a small pickup zone at the FOB to act as a supply point + local name = string.format('FOB_PZ_%d', math.random(100000,999999)) + local v2 = (VECTOR2 and VECTOR2.New) and VECTOR2:New(point.x, point.z) or { x = point.x, y = point.z } + local r = 150 + local z = ZONE_RADIUS:New(name, v2, r) + table.insert(self.PickupZones, z) + self._ZoneDefs.PickupZones[name] = { name = name, radius = r, active = true } + self._ZoneActive.Pickup[name] = true + table.insert(self.Config.Zones.PickupZones, { name = name, radius = r, active = true }) + -- Seed FOB stock at fraction of initial pickup stock + local f = (self.Config.Inventory and self.Config.Inventory.FOBStockFactor) or 0.25 + self:_SeedZoneStock(name, f) + _msgCoalition(self.Side, string.format('FOB supply established: %s (stock seeded at %d%%)', name, math.floor(f*100+0.5))) + -- Auto-refresh map drawings so the new FOB pickup zone is visible immediately + if self.Config.MapDraw and self.Config.MapDraw.Enabled then + local ok, err = pcall(function() self:DrawZonesOnMap() end) + if not ok then + _logError(string.format('DrawZonesOnMap failed after FOB creation: %s', tostring(err))) + end + end +end +-- #endregion Inventory helpers + +-- ========================= +-- MEDEVAC System +-- ========================= +-- #region MEDEVAC + +-- Initialize MEDEVAC system (called from CTLD:New) +function CTLD:InitMEDEVAC() + if not (CTLD.MEDEVAC and CTLD.MEDEVAC.Enabled) then return end + + -- Initialize salvage pools + if CTLD.MEDEVAC.Salvage and CTLD.MEDEVAC.Salvage.Enabled then + CTLD._salvagePoints[self.Side] = CTLD._salvagePoints[self.Side] or 0 + end + + -- Setup event handler for unit deaths + local handler = EVENTHANDLER:New() + handler:HandleEvent(EVENTS.Dead) + local selfref = self + + function handler:OnEventDead(eventData) + -- First check if this is an invulnerable MEDEVAC crew member that needs respawning + local unit = eventData.IniUnit + if unit then + local unitName = unit:GetName() + if unitName then + for crewGroupName, crewData in pairs(CTLD._medevacCrews) do + if unitName:find(crewGroupName, 1, true) then + local now = timer.getTime() + if crewData.invulnerable and now < crewData.invulnerableUntil then + _logVerbose(string.format('[MEDEVAC] Invulnerable crew member %s killed, respawning...', unitName)) + -- Respawn this crew member + local id = timer.scheduleFunction(function() + local grp = Group.getByName(crewGroupName) + if grp and grp:isExist() then + local cfg = CTLD.MEDEVAC + local crewUnitType = cfg.CrewUnitTypes[crewData.side] or ((crewData.side == coalition.side.BLUE) and 'Soldier M4' or 'Paratrooper RPG-16') + -- Use the stored country ID from the original spawn + local countryId = crewData.countryId or ((crewData.side == coalition.side.BLUE) and (country.id.USA or 2) or 18) + + -- Random position near spawn point + local angle = math.random() * 2 * math.pi + local radius = 3 + math.random() * 5 + local spawnX = crewData.position.x + math.cos(angle) * radius + local spawnZ = crewData.position.z + math.sin(angle) * radius + + local newUnitData = { + type = crewUnitType, + name = unitName..'_respawn', + x = spawnX, + y = spawnZ, + heading = math.random() * 2 * math.pi + } + + coalition.addGroup(crewData.side, Group.Category.GROUND, { + visible = false, + lateActivation = false, + tasks = {}, + task = 'Ground Nothing', + route = {}, + units = {newUnitData}, + name = unitName..'_respawn_grp', + country = countryId + }) + + _logVerbose(string.format('[MEDEVAC] Respawned invulnerable crew member %s', unitName)) + end + end, nil, timer.getTime() + 1) + _trackOneShotTimer(id) + return -- Don't process as normal death + end + end + end + end + end + + -- Normal death processing for vehicle spawning MEDEVAC crews + if not unit then + _logDebug('[MEDEVAC] OnEventDead: No unit in eventData') + return + end + + -- Get the underlying DCS unit to safely extract data + local dcsUnit = unit.DCSUnit or unit + if not dcsUnit then + _logDebug('[MEDEVAC] OnEventDead: No DCS unit') + return + end + + -- Extract coalition from event data if available, otherwise from unit + local unitCoalition = eventData.IniCoalition + if not unitCoalition and unit and unit.GetCoalition then + local success, result = pcall(function() return unit:GetCoalition() end) + if success then + unitCoalition = result + end + end + + if not unitCoalition then + _logDebug('[MEDEVAC] OnEventDead: Could not determine coalition') + return + end + + if unitCoalition ~= selfref.Side then + _logDebug(string.format('[MEDEVAC] OnEventDead: Wrong coalition (unit: %s, CTLD: %s)', tostring(unitCoalition), tostring(selfref.Side))) + return + end + + -- Extract category from event data if available + local unitCategory = eventData.IniCategory or (unit.GetCategory and unit:GetCategory()) + if not unitCategory then + _logDebug('[MEDEVAC] OnEventDead: Could not determine category') + return + end + + if unitCategory ~= Unit.Category.GROUND_UNIT then + _logDebug(string.format('[MEDEVAC] OnEventDead: Not a ground unit (category: %s)', tostring(unitCategory))) + return + end + + -- Extract unit type name + local unitType = eventData.IniTypeName or (unit.GetTypeName and unit:GetTypeName()) + if not unitType then + _logDebug('[MEDEVAC] OnEventDead: Could not determine unit type') + return + end + + _logVerbose(string.format('[MEDEVAC] OnEventDead: Ground unit destroyed - %s', unitType)) + + -- Check if this unit type is eligible for MEDEVAC + local catalogEntry = selfref:_FindCatalogEntryByUnitType(unitType) + + if catalogEntry and catalogEntry.MEDEVAC == true then + _logVerbose(string.format('[MEDEVAC] OnEventDead: %s is MEDEVAC eligible, spawning crew', unitType)) + -- Pass eventData instead of unit to get position/heading safely + selfref:_SpawnMEDEVACCrew(eventData, catalogEntry) + else + if catalogEntry then + _logDebug(string.format('[MEDEVAC] OnEventDead: %s found in catalog but MEDEVAC=%s', unitType, tostring(catalogEntry.MEDEVAC))) + else + _logDebug(string.format('[MEDEVAC] OnEventDead: %s not found in catalog', unitType)) + end + end + + -- Sling-Load Salvage: Check if we should spawn a salvage crate for the OPPOSING coalition + if selfref.Config.SlingLoadSalvage and selfref.Config.SlingLoadSalvage.Enabled then + -- Get unit position + local unitPos = nil + if eventData.initiator and eventData.initiator.getPoint then + local success, point = pcall(function() return eventData.initiator:getPoint() end) + if success and point then + unitPos = point + end + end + + if unitPos then + -- Determine enemy coalition (who can collect this salvage) + local enemySide = (selfref.Side == coalition.side.BLUE) and coalition.side.RED or coalition.side.BLUE + selfref:_SpawnSlingLoadSalvageCrate(unitPos, unitType, enemySide, eventData) + else + _logDebug('[SlingLoadSalvage] Could not get unit position for salvage spawn') + end + end + end + + self.MEDEVACHandler = handler + + -- Add hit event handler to prevent damage to invulnerable crews + local hitHandler = EVENTHANDLER:New() + hitHandler:HandleEvent(EVENTS.Hit) + + function hitHandler:OnEventHit(eventData) + local unit = eventData.TgtUnit + if not unit then return end + + local unitName = unit:GetName() + if not unitName then return end + + -- Check if this unit belongs to an invulnerable MEDEVAC crew + for crewGroupName, crewData in pairs(CTLD._medevacCrews) do + if unitName:find(crewGroupName, 1, true) then + -- This unit is part of a MEDEVAC crew, check invulnerability + local now = timer.getTime() + if crewData.invulnerable and now < crewData.invulnerableUntil then + _logVerbose(string.format('[MEDEVAC] Unit %s is invulnerable, preventing damage', unitName)) + -- Can't directly prevent damage in DCS, but log it + -- Infantry is fragile anyway, so invulnerability is more of a "hope they survive" thing + return + end + end + end + end + + self.MEDEVACHitHandler = hitHandler + + -- Start crew timeout checker (runs every 30 seconds) + self.MEDEVACSched = SCHEDULER:New(nil, function() + local ok, err = pcall(function() selfref:_CheckMEDEVACTimeouts() end) + if not ok then _logError('MEDEVAC timeout scheduler error: '..tostring(err)) end + end, {}, 30, 30) + + -- Sling-load salvage is handled by adaptive background loop + if self.Config.SlingLoadSalvage and self.Config.SlingLoadSalvage.Enabled then + _logInfo('Sling-Load Salvage system initialized for coalition '..tostring(self.Side)) + end + + -- Initialize MASH zones from config + self:_InitMASHZones() + + _logInfo('MEDEVAC system initialized for coalition '..tostring(self.Side)) +end + +-- Find catalog entry that spawns a given unit type +function CTLD:_FindCatalogEntryByUnitType(unitType) + local catalog = self.Config.CrateCatalog or {} + local catalogSize = 0 + for _ in pairs(catalog) do catalogSize = catalogSize + 1 end + + _logDebug(string.format('[MEDEVAC] Searching catalog for unit type: %s (catalog has %d entries)', unitType, catalogSize)) + + for key, def in pairs(catalog) do + -- Check if this catalog entry builds the unit type + if def.build then + -- Check global lookup table that maps build functions to unit types + if type(def.build) == 'function' and _CTLD_BUILD_UNIT_TYPES and _CTLD_BUILD_UNIT_TYPES[def.build] then + local buildUnitType = _CTLD_BUILD_UNIT_TYPES[def.build] + _logDebug(string.format('[MEDEVAC] Catalog entry %s has unitType=%s (from global lookup)', key, tostring(buildUnitType))) + if buildUnitType == unitType then + _logDebug(string.format('[MEDEVAC] Found catalog entry for %s via global lookup: key=%s', unitType, key)) + return def + end + end + + -- Fallback: Try to extract unit type from build function string (legacy compatibility) + local buildStr = tostring(def.build) + if buildStr:find(unitType, 1, true) then + _logDebug(string.format('[MEDEVAC] Found catalog entry for %s via string search: key=%s', unitType, key)) + return def + end + else + _logDebug(string.format('[MEDEVAC] Catalog entry %s has no build function', key)) + end + + -- Also check if catalog entry has a unitType field directly + if def.unitType and def.unitType == unitType then + _logDebug(string.format('[MEDEVAC] Found catalog entry for %s via def.unitType field: key=%s', unitType, key)) + return def + end + end + + _logDebug(string.format('[MEDEVAC] No catalog entry found for unit type: %s', unitType)) + return nil +end + +-- Spawn MEDEVAC crew when vehicle destroyed +function CTLD:_SpawnMEDEVACCrew(eventData, catalogEntry) + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then return end + + -- Probability check: does the crew survive to request rescue? + -- Use coalition-specific survival chance + local survivalChance = 0.02 -- default fallback + if cfg.CrewSurvivalChance then + if type(cfg.CrewSurvivalChance) == 'table' then + -- Per-coalition config + survivalChance = cfg.CrewSurvivalChance[self.Side] or 0.02 + else + -- Legacy single value config (backward compatibility) + survivalChance = cfg.CrewSurvivalChance + end + end + + local roll = math.random() + if roll > survivalChance then + -- Crew did not survive + _logVerbose(string.format('[MEDEVAC] Crew did not survive (roll: %.4f > %.4f)', roll, survivalChance)) + return + end + _logVerbose(string.format('[MEDEVAC] Crew survived! (roll: %.4f <= %.4f) - will spawn in 5 minutes after battle clears', roll, survivalChance)) + + -- Extract data from eventData instead of calling methods on dead unit + local unit = eventData.IniUnit + local unitType = eventData.IniTypeName or (unit and unit.GetTypeName and unit:GetTypeName()) + local unitName = eventData.IniUnitName or (unit and unit.GetName and unit:GetName()) or 'Unknown' + + -- Get position - the unit is dead, so we need to get position from the DCS initiator object + local pos = nil + + -- Try the raw DCS initiator object (this should have the last known position) + if eventData.initiator then + _logVerbose('[MEDEVAC] Trying DCS initiator object') + local dcsUnit = eventData.initiator + if dcsUnit and dcsUnit.getPoint then + local success, point = pcall(function() return dcsUnit:getPoint() end) + if success and point then + pos = point + _logVerbose(string.format('[MEDEVAC] Got position from DCS initiator:getPoint(): %.0f, %.0f, %.0f', pos.x, pos.y, pos.z)) + end + end + if not pos and dcsUnit and dcsUnit.getPosition then + local success, position = pcall(function() return dcsUnit:getPosition() end) + if success and position and position.p then + pos = position.p + _logVerbose(string.format('[MEDEVAC] Got position from DCS initiator:getPosition().p: %.0f, %.0f, %.0f', pos.x, pos.y, pos.z)) + end + end + end + + -- Try IniDCSUnit + if not pos and eventData.IniDCSUnit then + _logVerbose('[MEDEVAC] Trying IniDCSUnit') + local dcsUnit = eventData.IniDCSUnit + if dcsUnit and dcsUnit.getPoint then + local success, point = pcall(function() return dcsUnit:getPoint() end) + if success and point then + pos = point + _logVerbose(string.format('[MEDEVAC] Got position from IniDCSUnit:getPoint(): %.0f, %.0f, %.0f', pos.x, pos.y, pos.z)) + end + end + end + + if not pos or not unitType then + _logVerbose(string.format('[MEDEVAC] Cannot spawn crew - missing position (pos=%s) or unit type (type=%s)', tostring(pos), tostring(unitType))) + return + end + + -- Get heading if possible + local heading = 0 + if unit and unit.GetHeading then + local success, result = pcall(function() return unit:GetHeading() end) + if success and result then + heading = result + end + end + + -- Determine crew size + local crewSize = catalogEntry.crewSize or cfg.CrewDefaultSize or 2 + + -- Determine salvage value + local salvageValue = catalogEntry.salvageValue + if not salvageValue then + salvageValue = catalogEntry.required or cfg.Salvage.DefaultValue or 1 + end + + -- Find nearest enemy to spawn crew toward them + local spawnPoint = { x = pos.x, z = pos.z } + local enemySide = (self.Side == coalition.side.BLUE) and coalition.side.RED or coalition.side.BLUE + local nearestEnemy = self:_findNearestEnemyGround({ x = pos.x, z = pos.z }, 2000) -- 2km search + + if nearestEnemy and nearestEnemy.point then + -- Calculate direction toward enemy + local dx = nearestEnemy.point.x - pos.x + local dz = nearestEnemy.point.z - pos.z + local dist = math.sqrt(dx*dx + dz*dz) + if dist > 0 then + local dirX = dx / dist + local dirZ = dz / dist + local offset = cfg.CrewSpawnOffset or 15 + spawnPoint.x = pos.x + dirX * offset + spawnPoint.z = pos.z + dirZ * offset + end + else + -- No enemy found, spawn at random offset + local angle = math.random() * 2 * math.pi + local offset = cfg.CrewSpawnOffset or 15 + spawnPoint.x = pos.x + math.cos(angle) * offset + spawnPoint.z = pos.z + math.sin(angle) * offset + end + + -- Prepare spawn data but delay actual spawning by 5 minutes (300 seconds) + local spawnDelay = cfg.CrewSpawnDelay or 300 -- 5 minutes default + local selfref = self + + _logVerbose(string.format('[MEDEVAC] Crew will spawn in %d seconds after battle clears', spawnDelay)) + + local spawnTimerId = timer.scheduleFunction(function() + -- Now spawn the crew after battle has cleared + local crewGroupName = string.format('MEDEVAC_Crew_%s_%d', unitType, math.random(100000, 999999)) + local crewUnitType = catalogEntry.crewType or cfg.CrewUnitTypes[selfref.Side] or ((selfref.Side == coalition.side.BLUE) and 'Soldier M4' or 'Infantry AK') + + _logVerbose(string.format('[MEDEVAC] Coalition: %s, CrewUnitType selected: %s, catalogEntry.crewType=%s, cfg.CrewUnitTypes[side]=%s', + (selfref.Side == coalition.side.BLUE and 'BLUE' or 'RED'), + crewUnitType, + tostring(catalogEntry.crewType), + tostring(cfg.CrewUnitTypes and cfg.CrewUnitTypes[selfref.Side]) + )) + + -- Determine if crew gets a MANPADS + -- Use coalition-specific MANPADS spawn chance + local manPadChance = 0.1 -- default fallback + if cfg.ManPadSpawnChance then + if type(cfg.ManPadSpawnChance) == 'table' then + -- Per-coalition config + manPadChance = cfg.ManPadSpawnChance[selfref.Side] or 0.1 + else + -- Legacy single value config (backward compatibility) + manPadChance = cfg.ManPadSpawnChance + end + end + local spawnManPad = math.random() <= manPadChance + local manPadIndex = nil + if spawnManPad and crewSize > 1 then + manPadIndex = math.random(1, crewSize) -- Random crew member gets the MANPADS + _logVerbose(string.format('[MEDEVAC] Crew will include MANPADS (unit %d of %d)', manPadIndex, crewSize)) + end + + -- Get country ID from the destroyed unit instead of trying to map coalition to country + -- This is the same approach used by the Medevac_KHASHURI.lua script + local countryId = nil + if eventData.initiator and eventData.initiator.getCountry then + local success, result = pcall(function() return eventData.initiator:getCountry() end) + if success and result then + countryId = result + _logVerbose(string.format('[MEDEVAC] Got country ID %d from destroyed unit', countryId)) + end + end + + -- Fallback if we couldn't get it from the unit + if not countryId then + _logVerbose('[MEDEVAC] WARNING: Could not get country from dead unit, using fallback') + if selfref.Side == coalition.side.BLUE then + countryId = country.id.USA or 2 + else + countryId = country.id.CJTF_RED or 18 -- Use CJTF RED as fallback + end + end + + _logVerbose(string.format('[MEDEVAC] Spawning crew now - coalition=%s, countryId=%d, crewUnitType=%s', + (selfref.Side == coalition.side.BLUE and 'BLUE' or 'RED'), + countryId, + crewUnitType)) + + local groupData = { + visible = false, + lateActivation = false, + tasks = {}, + task = 'Ground Nothing', + route = {}, + units = {}, + name = crewGroupName + -- Country ID passed directly to coalition.addGroup(), not in groupData + } + + for i = 1, crewSize do + -- Randomize position within a small radius (3-8 meters) for natural scattered appearance + local angle = math.random() * 2 * math.pi + local radius = 3 + math.random() * 5 -- 3-8 meters from center + local offsetX = math.cos(angle) * radius + local offsetZ = math.sin(angle) * radius + + -- Determine unit type (MANPADS or regular crew) + local unitType = crewUnitType + if i == manPadIndex then + unitType = cfg.ManPadUnitTypes[selfref.Side] or crewUnitType + _logVerbose(string.format('[MEDEVAC] Unit %d assigned MANPADS type: %s', i, unitType)) + end + + table.insert(groupData.units, { + type = unitType, + name = string.format('%s_U%d', crewGroupName, i), + x = spawnPoint.x + offsetX, + y = spawnPoint.z + offsetZ, + heading = math.random() * 2 * math.pi -- Random heading for each unit + }) + end + + _logVerbose(string.format('[MEDEVAC] About to call coalition.addGroup with country=%d (coalition=%s)', + countryId, + (selfref.Side == coalition.side.BLUE and 'BLUE' or 'RED'))) + + -- CRITICAL: First parameter is COUNTRY ID, not coalition ID! + -- This matches Medevac_KHASHURI.lua line 500: coalition.addGroup(_deadUnit:getCountry(), ...) + local crewGroup = coalition.addGroup(countryId, Group.Category.GROUND, groupData) + + if not crewGroup then + _logVerbose('[MEDEVAC] Failed to spawn crew') + return + end + + -- Double-check what coalition the spawned group actually belongs to + local spawnedCoalition = crewGroup:getCoalition() + _logVerbose(string.format('[MEDEVAC] Crew group %s spawned successfully - actual coalition: %s (%d)', + crewGroupName, + (spawnedCoalition == coalition.side.BLUE and 'BLUE' or spawnedCoalition == coalition.side.RED and 'RED' or 'NEUTRAL'), + spawnedCoalition)) + + -- Set crew to hold position and defend themselves + local crewController = crewGroup:getController() + if crewController then + crewController:setOption(AI.Option.Ground.id.ROE, AI.Option.Ground.val.ROE.RETURN_FIRE) + crewController:setOption(AI.Option.Ground.id.ALARM_STATE, AI.Option.Ground.val.ALARM_STATE.RED) + + -- Make crew immortal and/or invisible during announcement delay to prevent early death + if cfg.CrewImmortalDuringDelay then + local setImmortal = { + id = 'SetImmortal', + params = { value = true } + } + Controller.setCommand(crewController, setImmortal) + _logVerbose('[MEDEVAC] Crew set to immortal during announcement delay') + end + + if cfg.CrewInvisibleDuringDelay then + local setInvisible = { + id = 'SetInvisible', + params = { value = true } + } + Controller.setCommand(crewController, setInvisible) + _logVerbose('[MEDEVAC] Crew set to invisible to AI during announcement delay') + end + end + + -- Track crew immediately (but don't make mission available yet) + -- Smoke will be popped AFTER the announcement delay when they actually call for help + local crewData = { + vehicleType = unitType, + side = selfref.Side, + countryId = countryId, -- Store country ID for respawning + spawnTime = timer.getTime(), + position = spawnPoint, + salvageValue = salvageValue, + originalHeading = heading, + requestTime = nil, -- Will be set after announcement delay + warningsSent = {}, + invulnerable = false, + invulnerableUntil = 0, + greetingSent = false + } + CTLD._medevacCrews[crewGroupName] = crewData + + -- Wait before announcing mission (verify crew survival) + local announceDelay = cfg.CrewAnnouncementDelay or 60 + _logVerbose(string.format('[MEDEVAC] Will announce mission in %d seconds if crew survives', announceDelay)) + + local announceTimerId = timer.scheduleFunction(function() + -- Check if crew still exists + local g = Group.getByName(crewGroupName) + if not g or not g:isExist() then + _logVerbose(string.format('[MEDEVAC] Crew %s died before announcement, mission cancelled', crewGroupName)) + CTLD._medevacCrews[crewGroupName] = nil + return + end + + -- Crew survived! Now announce to players and make mission available + _logVerbose(string.format('[MEDEVAC] Crew %s survived, announcing mission', crewGroupName)) + + -- Make crew visible again (remove invisibility) and optionally remove immortality + local crewController = g:getController() + if crewController then + -- Always make crew visible when they announce + if cfg.CrewInvisibleDuringDelay then + local setVisible = { + id = 'SetInvisible', + params = { value = false } + } + Controller.setCommand(crewController, setVisible) + _logVerbose('[MEDEVAC] Crew is now visible to AI') + end + + -- Remove immortality unless config says to keep it + if cfg.CrewImmortalDuringDelay and not cfg.CrewImmortalAfterAnnounce then + local setMortal = { + id = 'SetImmortal', + params = { value = false } + } + Controller.setCommand(crewController, setMortal) + _logVerbose('[MEDEVAC] Crew immortality removed, now vulnerable') + elseif cfg.CrewImmortalAfterAnnounce then + _logVerbose('[MEDEVAC] Crew remains immortal after announcement (per config)') + end + end + + -- Pop smoke now that they're calling for help + if cfg.PopSmokeOnSpawn then + local smokeColor = (cfg.SmokeColor and cfg.SmokeColor[selfref.Side]) or trigger.smokeColor.Red + _spawnMEDEVACSmoke(spawnPoint, smokeColor, cfg) + _logVerbose(string.format('[MEDEVAC] Crew popped smoke after announcement (color: %d)', smokeColor)) + end + + local grid = selfref:_GetMGRSString(spawnPoint) + + -- Pick random request message + local requestMessages = cfg.RequestAirLiftMessages or { + "Stranded Crew: This is {vehicle} crew at {grid}. Need pickup ASAP! We have {salvage} salvage to collect." + } + local messageTemplate = requestMessages[math.random(1, #requestMessages)] + + -- Replace placeholders + local message = messageTemplate + message = message:gsub("{vehicle}", unitType) + message = message:gsub("{grid}", grid) + message = message:gsub("{crew_size}", tostring(crewSize)) + message = message:gsub("{salvage}", tostring(salvageValue)) + + _msgCoalition(selfref.Side, message, 25) + + -- Now crew is requesting pickup + CTLD._medevacCrews[crewGroupName].requestTime = timer.getTime() + + -- Create map marker + if cfg.MapMarkers and cfg.MapMarkers.Enabled then + local markerID = selfref:_CreateMEDEVACMarker(spawnPoint, unitType, crewSize, salvageValue, crewGroupName) + CTLD._medevacCrews[crewGroupName].markerID = markerID + end + + end, nil, timer.getTime() + announceDelay) + _trackOneShotTimer(announceTimerId) + + end, nil, timer.getTime() + spawnDelay) + _trackOneShotTimer(spawnTimerId) + +end + +-- Create map marker for MEDEVAC crew +function CTLD:_CreateMEDEVACMarker(position, vehicleType, crewSize, salvageValue, crewGroupName) + local cfg = CTLD.MEDEVAC.MapMarkers + if not cfg or not cfg.Enabled then return nil end + + local grid = self:_GetMGRSString(position) + local text = string.format('%s: %s Crew (%d) - Salvage: %d - %s', + cfg.IconText or 'πŸ”΄ MEDEVAC', + vehicleType, + crewSize, + salvageValue, + grid + ) + + local markerID = _nextMarkupId() + trigger.action.markToCoalition(markerID, text, {x = position.x, y = 0, z = position.z}, self.Side, true) + + return markerID +end + +-- Get MGRS grid string for position +function CTLD:_GetMGRSString(position) + if not position then + return 'N/A' + end + local lat, lon = coord.LOtoLL({x = position.x, y = 0, z = position.z}) + local mgrs = coord.LLtoMGRS(lat, lon) + if mgrs and mgrs.UTMZone and mgrs.MGRSDigraph then + -- Ensure Easting and Northing are numbers + local easting = tonumber(mgrs.Easting) or 0 + local northing = tonumber(mgrs.Northing) or 0 + return string.format('%s%s %05d %05d', mgrs.UTMZone, mgrs.MGRSDigraph, easting, northing) + end + return string.format('%.0f, %.0f', position.x, position.z) +end + +-- Check for MEDEVAC crew timeouts and send warnings +function CTLD:_CheckMEDEVACTimeouts() + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then return end + + local now = timer.getTime() + local toRemove = {} + + for crewGroupName, data in pairs(CTLD._medevacCrews) do + if data.side == self.Side then + local requestTime = data.requestTime + if requestTime then -- Only check after crew has requested pickup + local elapsed = now - requestTime + if type(data.warningsSent) ~= 'table' then + data.warningsSent = {} + end + local remaining = (cfg.CrewTimeout or 3600) - elapsed + + -- Check for approaching rescue helos (pop smoke and send greeting with cooldown) + if cfg.PopSmokeOnApproach then + local approachDist = cfg.PopSmokeOnApproachDistance or 5000 + local crewPos = data.position + local smokeCooldown = cfg.SmokeCooldown or 900 -- Default 15 minutes (900 seconds) + local lastSmoke = data.lastSmokeTime or 0 + local canPopSmoke = (now - lastSmoke) >= smokeCooldown + + if canPopSmoke then + -- Check all units of this coalition for nearby transport helos + local coalitionUnits = coalition.getGroups(self.Side, Group.Category.AIRPLANE) + local heloGroups = coalition.getGroups(self.Side, Group.Category.HELICOPTER) + + if heloGroups then + for _, grp in ipairs(heloGroups) do + if grp and grp:isExist() then + local units = grp:getUnits() + if units then + for _, unit in ipairs(units) do + if unit and unit:isExist() and unit:isActive() then + -- Check if this is a transport helo (in AllowedAircraft list) + local unitType = unit:getTypeName() + local isTransport = false + if self.Config.AllowedAircraft then + for _, allowed in ipairs(self.Config.AllowedAircraft) do + if unitType == allowed then + isTransport = true + break + end + end + end + + if isTransport then + local unitPos = unit:getPoint() + if unitPos and crewPos then + local dx = unitPos.x - crewPos.x + local dz = unitPos.z - crewPos.z + local dist = math.sqrt(dx*dx + dz*dz) + + if dist <= approachDist then + -- Rescue helo detected! Pop smoke and send greeting + local smokeColor = (cfg.SmokeColor and cfg.SmokeColor[self.Side]) or trigger.smokeColor.Red + _spawnMEDEVACSmoke(crewPos, smokeColor, cfg) + + -- Pick random greeting message + local greetings = cfg.GreetingMessages or {"We see you! Over here!"} + local greeting = greetings[math.random(1, #greetings)] + + _msgCoalition(self.Side, string.format('[MEDEVAC] %s crew: "%s"', data.vehicleType, greeting), 10) + + -- Set cooldown timer instead of permanent flag + data.lastSmokeTime = now + local cooldownMins = smokeCooldown / 60 + _logVerbose(string.format('[MEDEVAC] Crew %s detected helo at %.0fm, popped smoke (cooldown: %.0f mins)', + crewGroupName, dist, cooldownMins)) + break + end + end + end + end + end + end + end + if data.lastSmokeTime == now then break end -- Just popped smoke, exit loop + end + end -- if heloGroups then + end -- if canPopSmoke then + end -- if cfg.PopSmokeOnApproach then + + -- Send warnings + if cfg.Warnings then + for _, warning in ipairs(cfg.Warnings) do + local warnTime = warning.time + if remaining <= warnTime and not data.warningsSent[warnTime] then + local grid = self:_GetMGRSString(data.position) + _msgCoalition(self.Side, _fmtTemplate(warning.message, { + crew = data.vehicleType..' crew', + grid = grid + }), 15) + data.warningsSent[warnTime] = true + end + end + end + + -- Check timeout + if remaining <= 0 then + table.insert(toRemove, crewGroupName) + end + end + end + end + + -- Remove timed-out crews + for _, crewGroupName in ipairs(toRemove) do + self:_RemoveMEDEVACCrew(crewGroupName, 'timeout') + end +end + +-- Remove MEDEVAC crew (timeout or death) +function CTLD:_RemoveMEDEVACCrew(crewGroupName, reason) + local data = CTLD._medevacCrews[crewGroupName] + if not data then return end + + -- Remove map marker + if data.markerID then + pcall(function() trigger.action.removeMark(data.markerID) end) + end + + -- Destroy crew group + local g = Group.getByName(crewGroupName) + if g and g:isExist() then + g:destroy() + end + + -- Send message + if reason == 'timeout' then + local grid = self:_GetMGRSString(data.position) + _msgCoalition(self.Side, _fmtTemplate(CTLD.Messages.medevac_crew_timeout, { + vehicle = data.vehicleType, + grid = grid + }), 15) + + -- Track statistics + if CTLD.MEDEVAC and CTLD.MEDEVAC.Statistics and CTLD.MEDEVAC.Statistics.Enabled then + CTLD._medevacStats[self.Side].timedOut = (CTLD._medevacStats[self.Side].timedOut or 0) + 1 + end + elseif reason == 'killed' then + -- Track statistics + if CTLD.MEDEVAC and CTLD.MEDEVAC.Statistics and CTLD.MEDEVAC.Statistics.Enabled then + CTLD._medevacStats[self.Side].killed = (CTLD._medevacStats[self.Side].killed or 0) + 1 + end + end + + -- Remove from tracking + CTLD._medevacCrews[crewGroupName] = nil + + if data.rescueGroup and CTLD._medevacEnrouteStates then + CTLD._medevacEnrouteStates[data.rescueGroup] = nil + end + + _logVerbose(string.format('[MEDEVAC] Removed crew %s (reason: %s)', crewGroupName, reason or 'unknown')) +end + +-- Check if crew was picked up (called from troop loading system) +function CTLD:CheckMEDEVACPickup(group) + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then return end + + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + + local pos = unit:GetPointVec3() + local searchRadius = 100 -- meters to search for nearby crew + + for crewGroupName, data in pairs(CTLD._medevacCrews) do + if data.side == self.Side and data.requestTime then + local crewPos = data.position + local dx = pos.x - crewPos.x + local dz = pos.z - crewPos.z + local dist = math.sqrt(dx*dx + dz*dz) + + if dist <= searchRadius then + -- Check if crew group still exists and is being loaded + local crewGroup = Group.getByName(crewGroupName) + if crewGroup and crewGroup:isExist() then + -- Crew was picked up! Handle respawn + self:_HandleMEDEVACPickup(group, crewGroupName, data) + return true + end + end + end + end + + return false +end + +-- Auto-pickup: Send MEDEVAC crews to landed helicopter within range +function CTLD:AutoPickupMEDEVACCrew(group) + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then return end + if not cfg.AutoPickup or not cfg.AutoPickup.Enabled then return end + + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + + -- Only work with landed helicopters + if _isUnitInAir(unit) then return end + + local autoCfg = cfg.AutoPickup + local requireGround = (autoCfg.RequireGroundContact ~= false) + if requireGround then + local agl = _getUnitAGL(unit) + if agl > (autoCfg.GroundContactAGL or 3) then + return -- still hovering/high skid - wait for full touchdown + end + local gs = _getGroundSpeed(unit) + if gs > (autoCfg.MaxLandingSpeed or 2) then + return -- helicopter is sliding/taxiing - hold crews until stable + end + end + + local pos = unit:GetPointVec3() + if not pos then return end + local maxDist = autoCfg.MaxDistance or 200 + local groupName = group:GetName() + + -- Skip if helicopter already has an active load hold + if CTLD._medevacLoadStates and CTLD._medevacLoadStates[groupName] then + return + end + + -- Find nearby MEDEVAC crews within pickup range + for crewGroupName, data in pairs(CTLD._medevacCrews) do + if data.side == self.Side and data.requestTime and not data.pickedUp then + local crewPos = data.position + local dx = pos.x - crewPos.x + local dz = pos.z - crewPos.z + local dist = math.sqrt(dx*dx + dz*dz) + + if dist <= maxDist then + local crewGroup = Group.getByName(crewGroupName) + if crewGroup and crewGroup:isExist() then + -- Crew is close enough - start load hold + local loadCfg = cfg.AutoPickup or {} + local delay = loadCfg.LoadDelay or 15 + local now = timer.getTime() + + -- Check if already in a load hold + local existingState = CTLD._medevacLoadStates[groupName] + if not existingState then + -- Start new load hold + CTLD._medevacLoadStates[groupName] = { + startTime = now, + delay = delay, + crewGroupName = crewGroupName, + crewData = data, + holdAnnounced = true, + nextReminder = now + math.max(1.5, delay / 3), + lastQualified = now, + } + + _msgGroup(group, string.format("MEDEVAC crew from %s is boarding. Hold position for %d seconds...", + data.vehicleType or 'unknown vehicle', delay), 10) + _logVerbose(string.format('[MEDEVAC][AutoLoad] Hold started for %s (delay=%.1fs, crew=%s, dist=%.0fm)', + groupName, delay, crewGroupName, dist)) + end + end + end + end + end +end +-- Auto-unload: Send MEDEVAC crews to landed helicopter within MASH zone +-- Scan all active transport groups for auto-pickup and auto-unload opportunities +function CTLD:ScanMEDEVACAutoActions() + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then return end + + -- Progress any ongoing load and unload holds before new scans + self:_UpdateMedevacLoadStates() + self:_UpdateMedevacUnloadStates() + + -- Scan all active transport groups + for gname, _ in pairs(self.MenusByGroup or {}) do + local group = GROUP:FindByName(gname) + if group and group:IsAlive() then + local unit = group:GetUnit(1) + if unit and unit:IsAlive() then + local isAirborne = _isUnitInAir(unit) + + local autoUnloadCfg = cfg.AutoUnload or {} + local aglLimit = autoUnloadCfg.GroundContactAGL or 2 + local agl = _getUnitAGL(unit) + if agl == nil then agl = aglLimit end + local hasGroundContact = (not isAirborne) + or (agl <= aglLimit) + + if not isAirborne then + -- Helicopter is landed according to DCS state + if cfg.AutoPickup and cfg.AutoPickup.Enabled then + self:AutoPickupMEDEVACCrew(group) + end + end + + if cfg.AutoUnload and cfg.AutoUnload.Enabled and hasGroundContact then + -- Reduce log spam: only attempt auto-unload when there are rescued crews onboard + local crews = self:_CollectRescuedCrewsForGroup(group:GetName()) + if crews and #crews > 0 then + self:AutoUnloadMEDEVACCrew(group) + end + end + + self:_TickMedevacEnrouteMessage(group, unit, isAirborne) + else + CTLD._medevacEnrouteStates[gname] = nil + end + else + CTLD._medevacEnrouteStates[gname] = nil + end + end + + -- Finalize unload checks after handling current landings + self:_UpdateMedevacUnloadStates() + + local enrouteStates = CTLD._medevacEnrouteStates + if enrouteStates then + for gname, _ in pairs(enrouteStates) do + if not (self.MenusByGroup and self.MenusByGroup[gname]) then + local group = GROUP:FindByName(gname) + if not group or not group:IsAlive() then + enrouteStates[gname] = nil + end + end + end + end +end + +-- Auto-unload: Automatically unload MEDEVAC crews when landed in MASH zone +function CTLD:AutoUnloadMEDEVACCrew(group) + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then return end + if not cfg.AutoUnload or not cfg.AutoUnload.Enabled then return end + + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + local gname = group:GetName() or 'UNKNOWN' + + -- Early silent exit (reduces log spam): only proceed if there are rescued crews onboard + local earlyCrews = self:_CollectRescuedCrewsForGroup(gname) + if not earlyCrews or #earlyCrews == 0 then return end + + local autoCfg = cfg.AutoUnload or {} + local aglLimit = autoCfg.GroundContactAGL or 2.0 + local gsLimit = autoCfg.MaxLandingSpeed or 2.0 + local settleLimit = autoCfg.SettledAGL or (aglLimit + 2.0) + + local agl = _getUnitAGL(unit) + if agl == nil then agl = 0 end + local gs = _getGroundSpeed(unit) + if gs == nil then gs = 0 end + local inAir = _isUnitInAir(unit) + + -- Treat the helicopter as landed when weight-on-wheels flips or when the skid height is within tolerance. + local hasGroundContact = (not inAir) or (agl <= aglLimit) + if not hasGroundContact then + _logDebug(string.format('[MEDEVAC][AutoUnload] %s skipped: no ground contact (agl=%.2f, limit=%.2f, inAir=%s)', gname, agl, aglLimit, tostring(inAir))) + return + end + + if inAir and agl > aglLimit then + _logDebug(string.format('[MEDEVAC][AutoUnload] %s skipped: AGL %.2f above limit %.2f while still airborne', gname, agl, aglLimit)) + return + end + + if gs > gsLimit then + _logDebug(string.format('[MEDEVAC][AutoUnload] %s skipped: ground speed %.2f above limit %.2f', gname, gs, gsLimit)) + return + end + + if settleLimit and settleLimit > 0 and agl > settleLimit then + _logDebug(string.format('[MEDEVAC][AutoUnload] %s skipped: AGL %.2f above settled limit %.2f', gname, agl, settleLimit)) + return + end + + local crews = self:_CollectRescuedCrewsForGroup(group:GetName()) + if #crews == 0 then return end + + -- Check if inside MASH zone + local pos = unit:GetPointVec3() + local inMASH, mashZone = self:_IsPositionInMASHZone({ x = pos.x, z = pos.z }) + if not inMASH then + _logDebug(string.format('[MEDEVAC][AutoUnload] %s skipped: not inside MASH zone (crews=%d)', gname, #crews)) + return + end + + _logVerbose(string.format('[MEDEVAC][AutoUnload] %s qualified for unload in MASH %s (crews=%d, agl=%.2f, gs=%.2f)', + gname, + tostring((mashZone and (mashZone.name or mashZone.unitName)) or 'UNKNOWN'), + #crews, + agl, + gs)) + + -- Begin or maintain the unload hold state + self:_EnsureMedevacUnloadState(group, mashZone, crews, { trigger = 'auto' }) +end + +-- Gather all MEDEVAC crews currently onboard the specified rescue group +function CTLD:_CollectRescuedCrewsForGroup(groupName) + local crews = {} + if not groupName then return crews end + + for crewGroupName, data in pairs(CTLD._medevacCrews or {}) do + if data.side == self.Side and data.pickedUp and data.rescueGroup == groupName then + crews[#crews + 1] = { name = crewGroupName, data = data } + end + end + + return crews +end + +-- Periodically deliver enroute status chatter while MEDEVAC patients are onboard +function CTLD:_TickMedevacEnrouteMessage(group, unit, isAirborne, forceSend) + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then return end + + local enrouteCfg = cfg.EnrouteMessages or {} + if enrouteCfg.Enabled == false then return end + + if not group or not unit or not unit:IsAlive() then + if group then + local gname = group:GetName() + if gname and gname ~= '' then + CTLD._medevacEnrouteStates[gname] = nil + end + end + return + end + + local gname = group:GetName() + if not gname or gname == '' then return end + + local crews = self:_CollectRescuedCrewsForGroup(gname) + if not crews or #crews == 0 then + CTLD._medevacEnrouteStates[gname] = nil + return + end + + if not isAirborne and not forceSend then + return + end + + local interval = enrouteCfg.Interval or 180 + if interval <= 0 then interval = 180 end + + CTLD._medevacEnrouteStates = CTLD._medevacEnrouteStates or {} + local now = timer.getTime() + local state = CTLD._medevacEnrouteStates[gname] + + if not state then + state = { nextSend = now + interval, lastIndex = nil } + CTLD._medevacEnrouteStates[gname] = state + end + + if not forceSend and now < (state.nextSend or 0) then + return + end + + local vector = self:_ComputeNearestMASHVector(unit) + if not vector then return end + + local messages = cfg.EnrouteToMashMessages or {} + if #messages == 0 then return end + + local idx = math.random(1, #messages) + if state.lastIndex and #messages > 1 and idx == state.lastIndex then + idx = (idx % #messages) + 1 + end + state.lastIndex = idx + state.nextSend = now + interval + + local text = _fmtTemplate(messages[idx], { + mash = vector.name, + brg = vector.bearing, + rng = vector.rangeValue, + rng_u = vector.rangeUnit + }) + + _msgGroup(group, text, math.min(self.Config.MessageDuration or 15, 18)) +end + +-- Ensure an unload hold state exists for the group and announce if newly started +function CTLD:_EnsureMedevacUnloadState(group, mashZone, crews, opts) + CTLD._medevacUnloadStates = CTLD._medevacUnloadStates or {} + + if not group or not group:IsAlive() then return nil end + + local gname = group:GetName() + local now = timer.getTime() + local cfg = self.MEDEVAC or {} + local cfgAuto = cfg.AutoUnload or {} + local delay = cfgAuto.UnloadDelay or 2 + if delay < 0 then delay = 0 end + + local state = CTLD._medevacUnloadStates[gname] + if not state then + state = { + groupName = gname, + side = self.Side, + startTime = now, + delay = delay, + holdAnnounced = false, + mashZoneName = mashZone and (mashZone.name or mashZone.unitName) or nil, + triggeredBy = opts and opts.trigger or 'auto', + } + CTLD._medevacUnloadStates[gname] = state + self:_AnnounceMedevacUnloadHold(group, state) + _logVerbose(string.format('[MEDEVAC][AutoUnload] Hold started for %s (delay=%0.1fs, trigger=%s, mash=%s, crews=%d)', + gname, + state.delay, + tostring(state.triggeredBy), + tostring(state.mashZoneName or 'UNKNOWN'), + crews and #crews or 0)) + else + state.delay = delay + state.triggeredBy = opts and opts.trigger or state.triggeredBy + if mashZone then + state.mashZoneName = mashZone.name or mashZone.unitName or state.mashZoneName + end + _logDebug(string.format('[MEDEVAC][AutoUnload] Hold refreshed for %s (trigger=%s, crews=%d)', + gname, + tostring(state.triggeredBy), + crews and #crews or 0)) + end + + state.lastQualified = now + state.pendingCrewCount = crews and #crews or state.pendingCrewCount + + return state +end + +-- Notify the pilot that unloading is in progress and set up reminder cadence +function CTLD:_AnnounceMedevacUnloadHold(group, state) + if not group or not state or state.holdAnnounced then return end + + state.holdAnnounced = true + local delay = math.ceil(state.delay or 0) + if delay < 1 then delay = 1 end + + _msgGroup(group, _fmtTemplate(CTLD.Messages.medevac_unload_hold, { + seconds = delay + }), math.min(delay + 2, 12)) + + local unloadMsgs = (self.MEDEVAC and self.MEDEVAC.UnloadingMessages) or {} + if #unloadMsgs > 0 then + local msg = unloadMsgs[math.random(1, #unloadMsgs)] + _msgGroup(group, msg, math.min(delay, 10)) + end + + local now = timer.getTime() + local spacing = state.delay or 2 + spacing = math.max(1.5, math.min(4, spacing / 2)) + state.nextReminder = now + spacing +end + +-- Send a reminder from the unloading message pool while waiting out the hold +function CTLD:_SendMedevacUnloadReminder(group) + if not group then return end + local unloadMsgs = (self.MEDEVAC and self.MEDEVAC.UnloadingMessages) or {} + if #unloadMsgs == 0 then return end + + local msg = unloadMsgs[math.random(1, #unloadMsgs)] + _msgGroup(group, msg, 6) +end + +-- Inform the pilot that the unload was cancelled and the hold must restart +function CTLD:_NotifyMedevacUnloadAbort(group, state, reasonKey) + if not group or not state or state.abortNotified or not state.holdAnnounced then return end + + local reasonText + if reasonKey == 'air' then + reasonText = 'wheels up too soon' + elseif reasonKey == 'zone' then + reasonText = 'left the MASH zone' + elseif reasonKey == 'agl' then + reasonText = 'climbed above unload height' + elseif reasonKey == 'crew' then + reasonText = 'no MEDEVAC patients onboard' + else + reasonText = 'hold interrupted' + end + + local delay = math.ceil(state.delay or 0) + if delay < 1 then delay = 1 end + + _msgGroup(group, _fmtTemplate(CTLD.Messages.medevac_unload_aborted, { + reason = reasonText, + seconds = delay + }), 10) + + state.abortNotified = true +end + +-- Finalize the unload, deliver all crews, and celebrate success +function CTLD:_CompleteMedevacUnload(group, crews) + if not group or not group:IsAlive() then return end + if not crews or #crews == 0 then return end + + for _, crew in ipairs(crews) do + self:_DeliverMEDEVACCrewToMASH(group, crew.name, crew.data) + end + + local successMsgs = (self.MEDEVAC and self.MEDEVAC.UnloadCompleteMessages) or {} + if #successMsgs > 0 then + local msg = successMsgs[math.random(1, #successMsgs)] + _msgGroup(group, msg, 10) + end + + _logVerbose(string.format('[MEDEVAC] Auto unload complete for %s (%d crew group(s) delivered)', group:GetName(), #crews)) +end + +-- Send loading reminder message to pilot +function CTLD:_SendMedevacLoadReminder(group) + if not group then return end + local loadingMsgs = (self.MEDEVAC and self.MEDEVAC.LoadingMessages) or {} + if #loadingMsgs == 0 then return end + + local msg = loadingMsgs[math.random(1, #loadingMsgs)] + _msgGroup(group, msg, 6) +end + +-- Inform the pilot that the loading was cancelled and the hold must restart +function CTLD:_NotifyMedevacLoadAbort(group, state, reasonKey) + if not group or not state or state.abortNotified or not state.holdAnnounced then return end + + local reasonText + if reasonKey == 'air' then + reasonText = 'wheels up too soon' + elseif reasonKey == 'agl' then + reasonText = 'climbed above loading height' + elseif reasonKey == 'crew' then + reasonText = 'crew lost contact' + else + reasonText = 'hold interrupted' + end + + local delay = math.ceil(state.delay or 0) + if delay < 1 then delay = 1 end + + _msgGroup(group, string.format("MEDEVAC boarding aborted: %s. Land and hold for %d seconds to restart.", + reasonText, delay), 10) + + state.abortNotified = true +end + +-- Complete the load, pick up crew, and show success message +function CTLD:_CompleteMedevacLoad(group, crewGroupName, crewData) + if not group or not group:IsAlive() then return end + if not crewGroupName or not crewData then return end + + -- Destroy the crew unit + local crewGroup = Group.getByName(crewGroupName) + if crewGroup and crewGroup:isExist() then + crewGroup:destroy() + end + + -- Handle the actual pickup (respawn vehicle, etc.) + self:_HandleMEDEVACPickup(group, crewGroupName, crewData) + + -- Show completion message + local successMsgs = (self.MEDEVAC and self.MEDEVAC.LoadMessages) or {} + if #successMsgs > 0 then + local msg = successMsgs[math.random(1, #successMsgs)] + _msgGroup(group, msg, 10) + end + + _logVerbose(string.format('[MEDEVAC] Auto load complete for %s (crew %s)', group:GetName(), crewGroupName)) +end + +-- Maintain load hold states, handling completion or interruption +function CTLD:_UpdateMedevacLoadStates() + local states = CTLD._medevacLoadStates + if not states or not next(states) then return end + + local now = timer.getTime() + local cfg = self.MEDEVAC or {} + local cfgAuto = cfg.AutoPickup or {} + local aglLimit = cfgAuto.GroundContactAGL or 3 + local settleLimit = cfgAuto.SettledAGL or 6 + local gsLimit = cfgAuto.MaxLandingSpeed or 2 + local airGrace = cfgAuto.AirAbortGrace or 2 + + for gname, state in pairs(states) do + local group = GROUP:FindByName(gname) + if not group or not group:IsAlive() then + states[gname] = nil + _logDebug(string.format('[MEDEVAC][AutoLoad] %s removed: group not alive', gname)) + else + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then + states[gname] = nil + _logDebug(string.format('[MEDEVAC][AutoLoad] %s removed: unit not alive', gname)) + else + local removeState = false + local agl = _getUnitAGL(unit) + local gs = _getGroundSpeed(unit) + + -- Check if crew still exists + local crewGroup = Group.getByName(state.crewGroupName) + if not crewGroup or not crewGroup:isExist() then + _logVerbose(string.format('[MEDEVAC][AutoLoad] Hold abort for %s: crew %s no longer exists', gname, state.crewGroupName)) + removeState = true + else + -- Check distance to crew + local crewUnit = crewGroup:getUnit(1) + if crewUnit then + local crewPos = crewUnit:getPoint() + local heliPos = unit:GetPointVec3() + local dx = heliPos.x - crewPos.x + local dz = heliPos.z - crewPos.z + local dist = math.sqrt(dx*dx + dz*dz) + + if dist > 40 then + self:_NotifyMedevacLoadAbort(group, state, 'crew') + _logVerbose(string.format('[MEDEVAC][AutoLoad] Hold abort for %s: moved too far from crew (%.1fm)', gname, dist)) + removeState = true + end + end + + if not removeState then + -- Check landing status (similar to unload logic) + local landed = not _isUnitInAir(unit) + if landed then + if settleLimit and settleLimit > 0 and agl > settleLimit then + landed = false + state.highAglSince = state.highAglSince or now + _logDebug(string.format('[MEDEVAC][AutoLoad] %s hold paused: AGL %.2f above settled limit %.2f', gname, agl, settleLimit)) + else + state.highAglSince = nil + end + else + state.highAglSince = nil + if agl <= aglLimit and gs <= gsLimit then + landed = true + end + end + + if landed then + state.airborneSince = nil + state.lastQualified = now + + -- Send reminders while holding + if state.nextReminder and now >= state.nextReminder then + self:_SendMedevacLoadReminder(group) + local spacing = state.delay or 2 + spacing = math.max(1.5, math.min(4, spacing / 2)) + state.nextReminder = now + spacing + end + + -- Complete load after delay + if (now - state.startTime) >= state.delay then + self:_CompleteMedevacLoad(group, state.crewGroupName, state.crewData) + _logVerbose(string.format('[MEDEVAC][AutoLoad] Hold complete for %s', gname)) + removeState = true + end + else + state.airborneSince = state.airborneSince or now + if (now - state.airborneSince) >= airGrace then + self:_NotifyMedevacLoadAbort(group, state, 'air') + _logVerbose(string.format('[MEDEVAC][AutoLoad] Hold abort for %s: airborne for %.1fs (grace=%.1f)', + gname, + now - state.airborneSince, + airGrace)) + removeState = true + end + end + end + end + + if removeState then + states[gname] = nil + end + end + end + end +end + +-- Maintain unload hold states, handling completion or interruption +function CTLD:_UpdateMedevacUnloadStates() + local states = CTLD._medevacUnloadStates + if not states or not next(states) then return end + + local now = timer.getTime() + local cfg = self.MEDEVAC or {} + local cfgAuto = cfg.AutoUnload or {} + local aglLimit = cfgAuto.GroundContactAGL or 2 + local gsLimit = cfgAuto.MaxLandingSpeed or 2 + local airGrace = cfgAuto.AirAbortGrace or 2 + + for gname, state in pairs(states) do + -- Multiple CTLD instances share the global unload state table; skip entries owned by the other coalition. + if not state.side or state.side == self.Side then + local group = GROUP:FindByName(gname) + local removeState = false + + if not group or not group:IsAlive() then + removeState = true + else + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then + removeState = true + else + local crews = self:_CollectRescuedCrewsForGroup(gname) + if #crews == 0 then + self:_NotifyMedevacUnloadAbort(group, state, 'crew') + _logVerbose(string.format('[MEDEVAC][AutoUnload] Hold abort for %s: crew list empty', gname)) + removeState = true + else + local agl = _getUnitAGL(unit) + if agl == nil then agl = 0 end + local gs = _getGroundSpeed(unit) + if gs == nil then gs = 0 end + local settleLimit = cfgAuto.SettledAGL or (aglLimit + 2.0) + + local landed = not _isUnitInAir(unit) + if landed then + if settleLimit and settleLimit > 0 and agl > settleLimit then + landed = false + state.highAglSince = state.highAglSince or now + _logDebug(string.format('[MEDEVAC][AutoUnload] %s hold paused: AGL %.2f above settled limit %.2f', gname, agl, settleLimit)) + else + state.highAglSince = nil + end + else + state.highAglSince = nil + if agl <= aglLimit and gs <= gsLimit then + landed = true + end + end + + if landed then + state.airborneSince = nil + state.lastQualified = now + local pos = unit:GetPointVec3() + local inMASH, mashZone = self:_IsPositionInMASHZone({ x = pos.x, z = pos.z }) + if not inMASH then + self:_NotifyMedevacUnloadAbort(group, state, 'zone') + _logVerbose(string.format('[MEDEVAC][AutoUnload] Hold abort for %s: left MASH zone', gname)) + removeState = true + else + state.mashZoneName = mashZone and (mashZone.name or mashZone.unitName or state.mashZoneName) + + -- Send reminders while holding + if state.nextReminder and now >= state.nextReminder then + self:_SendMedevacUnloadReminder(group) + local spacing = state.delay or 2 + spacing = math.max(1.5, math.min(4, spacing / 2)) + state.nextReminder = now + spacing + end + + -- Complete unload after delay + if (now - state.startTime) >= state.delay then + self:_CompleteMedevacUnload(group, crews) + _logVerbose(string.format('[MEDEVAC][AutoUnload] Hold complete for %s (crews delivered=%d)', gname, #crews)) + removeState = true + end + end + else + state.airborneSince = state.airborneSince or now + if (now - state.airborneSince) >= airGrace then + self:_NotifyMedevacUnloadAbort(group, state, 'air') + _logVerbose(string.format('[MEDEVAC][AutoUnload] Hold abort for %s: airborne for %.1fs (grace=%.1f)', + gname, + now - state.airborneSince, + airGrace)) + removeState = true + end + end + end + end + end + + if removeState then + states[gname] = nil + end + end + end +end + +-- Handle MEDEVAC crew pickup - respawn vehicle +function CTLD:_HandleMEDEVACPickup(rescueGroup, crewGroupName, crewData) + local cfg = CTLD.MEDEVAC + + -- Remove map marker + if crewData.markerID then + pcall(function() trigger.action.removeMark(crewData.markerID) end) + end + + -- Show initial load message (random from LoadMessages) + local loadMsgs = cfg.LoadMessages or {} + if #loadMsgs > 0 then + local randomLoadMsg = loadMsgs[math.random(1, #loadMsgs)] + _msgGroup(rescueGroup, randomLoadMsg, 5) + end + + -- Show loading progress messages during a brief delay (simulate boarding time) + local loadingDuration = 8 -- seconds for crew to board + local loadingMsgInterval = 2 -- show message every 2 seconds + local loadingMsgs = cfg.LoadingMessages or {} + local gname = rescueGroup:GetName() + + if #loadingMsgs > 0 then + local messageCount = math.floor(loadingDuration / loadingMsgInterval) + for i = 1, messageCount do + local msgId = timer.scheduleFunction(function() + local g = GROUP:FindByName(gname) + if g and g:IsAlive() then + local randomLoadingMsg = loadingMsgs[math.random(1, #loadingMsgs)] + _msgGroup(g, randomLoadingMsg, loadingMsgInterval - 0.5) + end + end, nil, timer.getTime() + (i * loadingMsgInterval)) + _trackOneShotTimer(msgId) + end + end + + -- Schedule final completion after loading duration + local completionId = timer.scheduleFunction(function() + local g = GROUP:FindByName(gname) + if g and g:IsAlive() then + -- Show completion message + _msgGroup(g, _fmtTemplate(CTLD.Messages.medevac_crew_loaded, { + vehicle = crewData.vehicleType, + crew_size = crewData.crewSize + }), 10) + + local unit = g:GetUnit(1) + if unit and unit:IsAlive() then + self:_TickMedevacEnrouteMessage(g, unit, _isUnitInAir(unit), true) + end + end + + -- Track statistics + if CTLD.MEDEVAC and CTLD.MEDEVAC.Statistics and CTLD.MEDEVAC.Statistics.Enabled then + CTLD._medevacStats[self.Side].rescued = (CTLD._medevacStats[self.Side].rescued or 0) + 1 + end + + -- Respawn vehicle if enabled + if cfg.RespawnOnPickup then + local respawnId = timer.scheduleFunction(function() + self:_RespawnMEDEVACVehicle(crewData) + end, nil, timer.getTime() + 2) -- 2 second delay for realism + _trackOneShotTimer(respawnId) + end + + -- Mark crew as picked up (for MASH delivery tracking) + crewData.pickedUp = true + crewData.rescueGroup = gname + + _logVerbose(string.format('[MEDEVAC] Crew %s picked up by %s', crewGroupName, gname)) + end, nil, timer.getTime() + loadingDuration) + _trackOneShotTimer(completionId) +end + +-- Respawn the vehicle at original death location +function CTLD:_RespawnMEDEVACVehicle(crewData) + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.RespawnOnPickup then return end + + -- Calculate respawn position (offset from original death) + local offset = cfg.RespawnOffset or 15 + local angle = math.random() * 2 * math.pi + local respawnPos = { + x = crewData.position.x + math.cos(angle) * offset, + z = crewData.position.z + math.sin(angle) * offset + } + + local heading = cfg.RespawnSameHeading and (crewData.originalHeading or 0) or 0 + + -- Find catalog entry to get build function + local catalogEntry = nil + local catalogKey = nil + for key, def in pairs(self.Config.CrateCatalog or {}) do + if def and def.MEDEVAC then + local matches = false + + if def.unitType and def.unitType == crewData.vehicleType then + matches = true + end + + if (not matches) and type(def.unitTypes) == 'table' then + for _, unitType in ipairs(def.unitTypes) do + if unitType == crewData.vehicleType then + matches = true + break + end + end + end + + if not matches then + local ok, unitTypes = pcall(function() + return self:_collectEntryUnitTypes(def) + end) + if ok and type(unitTypes) == 'table' then + for _, unitType in ipairs(unitTypes) do + if unitType == crewData.vehicleType then + matches = true + break + end + end + end + end + + if matches then + catalogEntry = def + catalogKey = key + break + end + end + end + + if not catalogEntry or not catalogEntry.build then + _logVerbose('[MEDEVAC] No catalog entry found for respawn: '..crewData.vehicleType) + return + end + + -- Spawn vehicle using catalog build function + local groupData = catalogEntry.build(respawnPos, math.deg(heading)) + if not groupData then + _logVerbose('[MEDEVAC] Failed to generate group data for: '..crewData.vehicleType) + return + end + + if crewData.countryId then + groupData.country = crewData.countryId + end + + local category = catalogEntry.category or Group.Category.GROUND + + local newGroup = coalition.addGroup(self.Side, category, groupData) + + if newGroup then + if catalogKey then + _logVerbose(string.format('[MEDEVAC] Respawn using catalog entry %s for %s', tostring(catalogKey), crewData.vehicleType)) + end + _msgCoalition(self.Side, _fmtTemplate(CTLD.Messages.medevac_vehicle_respawned, { + vehicle = crewData.vehicleType + }), 10) + + -- Track statistics + if CTLD.MEDEVAC and CTLD.MEDEVAC.Statistics and CTLD.MEDEVAC.Statistics.Enabled then + CTLD._medevacStats[self.Side].vehiclesRespawned = (CTLD._medevacStats[self.Side].vehiclesRespawned or 0) + 1 + end + + _logVerbose(string.format('[MEDEVAC] Respawned %s at %.0f, %.0f', crewData.vehicleType, respawnPos.x, respawnPos.z)) + else + _logVerbose('[MEDEVAC] Failed to respawn vehicle: '..crewData.vehicleType) + end +end + +-- Check if troops being unloaded are MEDEVAC crew and if inside MASH zone +function CTLD:CheckMEDEVACDelivery(group, troopData) + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then return false end + if not cfg.Salvage or not cfg.Salvage.Enabled then return false end + if not group or not group:IsAlive() then return false end + + local gname = group:GetName() + local crews = self:_CollectRescuedCrewsForGroup(gname) + if #crews == 0 then return false end + + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return false end + + if _isUnitInAir(unit) then + local delay = (cfg.AutoUnload and cfg.AutoUnload.UnloadDelay) or 2 + delay = math.max(1, math.ceil(delay or 0)) + _msgGroup(group, _fmtTemplate(CTLD.Messages.medevac_unload_hold, { + seconds = delay + }), 10) + return 'pending' + end + + local pos = unit:GetPointVec3() + local inMASH, mashZone = self:_IsPositionInMASHZone({ x = pos.x, z = pos.z }) + if not inMASH then return false end + + self:_EnsureMedevacUnloadState(group, mashZone, crews, { trigger = 'manual' }) + self:_UpdateMedevacUnloadStates() + + local remaining = self:_CollectRescuedCrewsForGroup(gname) + if #remaining == 0 then + return 'delivered' + end + + return 'pending' +end + +-- Deliver MEDEVAC crew to MASH - award salvage points +function CTLD:_DeliverMEDEVACCrewToMASH(group, crewGroupName, crewData) + local cfg = CTLD.MEDEVAC.Salvage + if not cfg or not cfg.Enabled then return end + + -- Award salvage points + CTLD._salvagePoints[self.Side] = (CTLD._salvagePoints[self.Side] or 0) + crewData.salvageValue + + -- Message to coalition (shown after brief delay to let unload message be seen) + local msgId = timer.scheduleFunction(function() + _msgCoalition(self.Side, _fmtTemplate(CTLD.Messages.medevac_crew_delivered_mash, { + player = _playerNameFromGroup(group), + vehicle = crewData.vehicleType, + salvage = crewData.salvageValue, + total = CTLD._salvagePoints[self.Side] + }), 15) + end, nil, timer.getTime() + 3) + _trackOneShotTimer(msgId) + + -- Track statistics + if CTLD.MEDEVAC and CTLD.MEDEVAC.Statistics and CTLD.MEDEVAC.Statistics.Enabled then + CTLD._medevacStats[self.Side].delivered = (CTLD._medevacStats[self.Side].delivered or 0) + 1 + CTLD._medevacStats[self.Side].salvageEarned = (CTLD._medevacStats[self.Side].salvageEarned or 0) + crewData.salvageValue + end + + -- Remove map marker + if crewData.markerID then + pcall(function() trigger.action.removeMark(crewData.markerID) end) + end + + -- Destroy crew group to prevent clutter + local crewGroup = Group.getByName(crewGroupName) + if crewGroup and crewGroup:isExist() then + crewGroup:destroy() + end + + -- Remove crew from tracking + CTLD._medevacCrews[crewGroupName] = nil + + if group and group:IsAlive() then + local gname = group:GetName() + if gname and gname ~= '' then + CTLD._medevacEnrouteStates = CTLD._medevacEnrouteStates or {} + CTLD._medevacEnrouteStates[gname] = nil + end + end + + _logVerbose(string.format('[MEDEVAC] Delivered %s crew to MASH - awarded %d salvage (total: %d)', + crewData.vehicleType, crewData.salvageValue, CTLD._salvagePoints[self.Side])) +end + +-- Try to use salvage to spawn a crate when out of stock +function CTLD:_TryUseSalvageForCrate(group, crateKey, catalogEntry) + local cfg = CTLD.MEDEVAC and CTLD.MEDEVAC.Salvage + if not cfg or not cfg.Enabled then return false end + if not cfg.AutoApply then return false end + + -- Check if item has salvage value + local salvageCost = (catalogEntry and catalogEntry.salvageValue) or 0 + if salvageCost <= 0 then return false end + + -- Check if we have enough salvage + local available = CTLD._salvagePoints[self.Side] or 0 + if available < salvageCost then + -- Send insufficient salvage message + local deficit = salvageCost - available + _msgGroup(group, _fmtTemplate(CTLD.Messages.medevac_salvage_insufficient, { + need = salvageCost, + deficit = deficit + })) + return false + end + + -- Consume salvage + CTLD._salvagePoints[self.Side] = available - salvageCost + + -- Track statistics + if CTLD.MEDEVAC and CTLD.MEDEVAC.Statistics and CTLD.MEDEVAC.Statistics.Enabled then + CTLD._medevacStats[self.Side].salvageUsed = (CTLD._medevacStats[self.Side].salvageUsed or 0) + salvageCost + end + + -- Send success message + _msgGroup(group, _fmtTemplate(CTLD.Messages.medevac_salvage_used, { + item = self:_friendlyNameForKey(crateKey), + salvage = salvageCost, + remaining = CTLD._salvagePoints[self.Side] + })) + + _logVerbose(string.format('[Salvage] Used %d salvage for %s (remaining: %d)', + salvageCost, crateKey, CTLD._salvagePoints[self.Side])) + + return true +end + +-- Check if salvage can cover a crate request (for bundle pre-checks) +function CTLD:_CanUseSalvageForCrate(crateKey, catalogEntry, quantity) + local cfg = CTLD.MEDEVAC and CTLD.MEDEVAC.Salvage + if not cfg or not cfg.Enabled then return false end + if not cfg.AutoApply then return false end + + quantity = quantity or 1 + local salvageCost = ((catalogEntry and catalogEntry.salvageValue) or 0) * quantity + if salvageCost <= 0 then return false end + + local available = CTLD._salvagePoints[self.Side] or 0 + return available >= salvageCost +end + +-- Resolve the 2D position of a MASH zone, handling fixed and mobile variants +function CTLD:_ResolveMASHPosition(mashData, mashKey) + if not mashData then return nil end + + if mashData.position and mashData.position.x and mashData.position.z then + return { x = mashData.position.x, z = mashData.position.z } + end + + local zone = mashData.zone + if zone then + if zone.GetPointVec3 then + local ok, vec3 = pcall(function() return zone:GetPointVec3() end) + if ok and vec3 then + return { x = vec3.x, z = vec3.z } + end + end + if zone.GetPointVec2 then + local ok, vec2 = pcall(function() return zone:GetPointVec2() end) + if ok and vec2 then + return { x = vec2.x, z = vec2.y } + end + end + if zone.GetCoordinate then + local ok, coord = pcall(function() return zone:GetCoordinate() end) + if ok and coord then + local vec3 = coord.GetVec3 and coord:GetVec3() + if vec3 then + return { x = vec3.x, z = vec3.z } + end + end + end + end + + if mashKey and trigger and trigger.misc and trigger.misc.getZone then + local ok, zoneInfo = pcall(function() return trigger.misc.getZone(mashKey) end) + if ok and zoneInfo and zoneInfo.point then + return { x = zoneInfo.point.x, z = zoneInfo.point.z } + end + end + + return nil +end + +-- Find the nearest friendly MASH zone to a given point (x/z expected) +function CTLD:_FindNearestMASHForPoint(point) + if not point then return nil end + + local nearestName, nearestData, nearestPos + local nearestDist = math.huge + + for name, data in pairs(CTLD._mashZones or {}) do + if data.side == self.Side then + local pos = self:_ResolveMASHPosition(data, name) + if pos then + local dx = pos.x - point.x + local dz = pos.z - point.z + local dist = math.sqrt(dx * dx + dz * dz) + if dist < nearestDist then + nearestDist = dist + nearestName = name + nearestData = data + nearestPos = pos + end + end + end + end + + if not nearestData or not nearestPos then + return nil + end + + local displayName = nearestData.displayName or nearestData.catalogKey + if not displayName then + local zone = nearestData.zone + if zone and zone.GetName then + local ok, zname = pcall(function() return zone:GetName() end) + if ok and zname then + displayName = zname + end + end + end + displayName = displayName or nearestName or 'MASH' + + return { + name = displayName, + position = nearestPos, + distance = nearestDist, + data = nearestData, + } +end + +-- Build directional info toward the nearest MASH for a specific unit +function CTLD:_ComputeNearestMASHVector(unit) + if not unit or not unit:IsAlive() then return nil end + local pos = unit:GetPointVec3() + if not pos then return nil end + + local info = self:_FindNearestMASHForPoint({ x = pos.x, z = pos.z }) + if not info or not info.position then return nil end + + local bearing = _bearingDeg({ x = pos.x, z = pos.z }, info.position) + local isMetric = _getPlayerIsMetric(unit) + local rangeValue, rangeUnit = _fmtRange(info.distance, isMetric) + + if rangeUnit == 'm' and rangeValue >= 1000 then + rangeValue = _round(rangeValue / 1000, 1) + rangeUnit = 'km' + end + + local valueText + if math.abs(rangeValue - math.floor(rangeValue)) < 0.05 then + valueText = string.format('%d', math.floor(rangeValue + 0.5)) + else + valueText = string.format('%.1f', rangeValue) + end + + return { + name = info.name, + bearing = bearing, + rangeValue = valueText, + rangeUnit = rangeUnit, + } +end + +-- Check if position is inside any MASH zone +function CTLD:_IsPositionInMASHZone(position) + for zoneName, mashData in pairs(CTLD._mashZones) do + if mashData.side == self.Side then + local zonePos = self:_ResolveMASHPosition(mashData, zoneName) + if zonePos then + local radius = mashData.radius or CTLD.MEDEVAC.MASHZoneRadius or 500 + local dx = position.x - zonePos.x + local dz = position.z - zonePos.z + local dist = math.sqrt(dx*dx + dz*dz) + + if dist <= radius then + return true, mashData + end + end + end + end + return false, nil +end + +-- Initialize MASH zones from config +function CTLD:_InitMASHZones() + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then return end + + _logDebug('_InitMASHZones called for coalition '..tostring(self.Side)) + _logDebug('self.MASHZones count: '..tostring(#(self.MASHZones or {}))) + _logDebug('self.Config.Zones.MASHZones count: '..tostring(#(self.Config.Zones and self.Config.Zones.MASHZones or {}))) + + -- Fixed MASH zones are now initialized via InitZones() in the standard Zones structure + -- This function now focuses on setting up mobile MASH tracking and announcements + + if not CTLD._mashZones then CTLD._mashZones = {} end + + -- Register fixed MASH zones in the global _mashZones table for delivery detection + -- (mobile MASH zones will be added dynamically when built) + for _, mz in ipairs(self.MASHZones or {}) do + local name = mz:GetName() + local zdef = self._ZoneDefs.MASHZones[name] + CTLD._mashZones[name] = { + zone = mz, + side = self.Side, + isMobile = false, + radius = (zdef and zdef.radius) or cfg.MASHZoneRadius or 500, + freq = (zdef and zdef.freq) or nil + } + _logVerbose('[MEDEVAC] Registered fixed MASH zone: '..name) + end +end + +-- ========================= +-- MEDEVAC Menu Functions +-- ========================= + +-- List all active MEDEVAC requests +function CTLD:ListActiveMEDEVACRequests(group) + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then + _msgGroup(group, 'MEDEVAC system is not enabled.') + return + end + + local count = 0 + local lines = {} + table.insert(lines, '=== Active MEDEVAC Requests ===') + table.insert(lines, '') + + for crewGroupName, data in pairs(CTLD._medevacCrews or {}) do + if data.side == self.Side and data.requestTime then + count = count + 1 + local grid = self:_GetMGRSString(data.position) + local elapsed = timer.getTime() - data.requestTime + local remaining = (cfg.CrewTimeout or 3600) - elapsed + local remainMin = math.floor(remaining / 60) + + table.insert(lines, string.format('%d. %s crew', count, data.vehicleType)) + table.insert(lines, string.format(' Grid: %s', grid)) + table.insert(lines, string.format(' Crew Size: %d', data.crewSize or 2)) + table.insert(lines, string.format(' Salvage: %d points', data.salvageValue or 1)) + table.insert(lines, string.format(' Time Remaining: %d minutes', remainMin)) + table.insert(lines, '') + end + end + + if count == 0 then + table.insert(lines, 'No active MEDEVAC requests.') + table.insert(lines, '') + table.insert(lines, 'MEDEVAC missions appear when friendly vehicles') + table.insert(lines, 'are destroyed and crew survives to call for rescue.') + end + + _msgGroup(group, table.concat(lines, '\n'), 30) +end + +-- Show nearest MEDEVAC location +function CTLD:NearestMEDEVACLocation(group) + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then + _msgGroup(group, 'MEDEVAC system is not enabled.') + return + end + + local unit = group:GetUnit(1) + if not unit then return end + + local pos = unit:GetCoordinate() + if not pos then return end + + local nearest = nil + local nearestDist = math.huge + + for crewGroupName, data in pairs(CTLD._medevacCrews or {}) do + if data.side == self.Side and data.requestTime then + local dist = math.sqrt((data.position.x - pos.x)^2 + (data.position.z - pos.z)^2) + if dist < nearestDist then + nearestDist = dist + nearest = data + end + end + end + + if not nearest then + _msgGroup(group, 'No active MEDEVAC requests.') + return + end + + local grid = self:_GetMGRSString(nearest.position) + local distKm = nearestDist / 1000 + local distNm = nearestDist / 1852 + local elapsed = timer.getTime() - nearest.requestTime + local remaining = (cfg.CrewTimeout or 3600) - elapsed + local remainMin = math.floor(remaining / 60) + + local lines = {} + table.insert(lines, '=== Nearest MEDEVAC ===') + table.insert(lines, '') + table.insert(lines, string.format('%s crew at %s', nearest.vehicleType, grid)) + table.insert(lines, string.format('Distance: %.1f km / %.1f nm', distKm, distNm)) + table.insert(lines, string.format('Crew Size: %d', nearest.crewSize or 2)) + table.insert(lines, string.format('Salvage Value: %d points', nearest.salvageValue or 1)) + table.insert(lines, string.format('Time Remaining: %d minutes', remainMin)) + + _msgGroup(group, table.concat(lines, '\n'), 20) +end + +-- Show coalition salvage points +function CTLD:ShowSalvagePoints(group) + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then + _msgGroup(group, 'MEDEVAC system is not enabled.') + return + end + + local salvage = CTLD._salvagePoints[self.Side] or 0 + + local lines = {} + table.insert(lines, '=== Coalition Salvage Points ===') + table.insert(lines, '') + table.insert(lines, string.format('Current Balance: %d points', salvage)) + table.insert(lines, '') + table.insert(lines, 'Earn salvage by:') + table.insert(lines, '- Rescuing MEDEVAC crews and delivering them to a MASH zone') + table.insert(lines, '') + table.insert(lines, 'Use salvage to:') + table.insert(lines, '- Build items that are out of stock (automatic)') + table.insert(lines, '- Cost = item\'s required crate count') + + _msgGroup(group, table.concat(lines, '\n'), 20) +end + +function CTLD:ShowOnboardManifest(group) + if not group then return end + + local gname = group:GetName() + if not gname or gname == '' then return end + + self:_refreshLoadedTroopSummaryForGroup(gname) + + local lines = { '=== Onboard Manifest ===', '' } + local hasCargo = false + + local crateData = CTLD._loadedCrates[gname] + if crateData and crateData.byKey then + local keys = {} + for crateKey, count in pairs(crateData.byKey) do + if (count or 0) > 0 then + table.insert(keys, crateKey) + end + end + table.sort(keys, function(a, b) + return self:_lookupCrateLabel(a) < self:_lookupCrateLabel(b) + end) + for _, crateKey in ipairs(keys) do + local count = crateData.byKey[crateKey] or 0 + if count > 0 then + table.insert(lines, string.format('Crate: %s x %d', self:_lookupCrateLabel(crateKey), count)) + hasCargo = true + end + end + end + + local troopSummary = CTLD._loadedTroopTypes[gname] + if troopSummary and troopSummary.total and troopSummary.total > 0 then + local typeKeys = {} + for typeKey, _ in pairs(troopSummary.byType) do + if (troopSummary.byType[typeKey] or 0) > 0 then + table.insert(typeKeys, typeKey) + end + end + table.sort(typeKeys, function(a, b) + local la = troopSummary.labels and troopSummary.labels[a] or self:_lookupTroopLabel(a) + local lb = troopSummary.labels and troopSummary.labels[b] or self:_lookupTroopLabel(b) + return la < lb + end) + for _, typeKey in ipairs(typeKeys) do + local count = troopSummary.byType[typeKey] or 0 + if count > 0 then + local label = troopSummary.labels and troopSummary.labels[typeKey] or self:_lookupTroopLabel(typeKey) + table.insert(lines, string.format('Troop: %s x %d', label, count)) + hasCargo = true + end + end + end + + local crews = self:_CollectRescuedCrewsForGroup(gname) + if crews and #crews > 0 then + local crewTotals = {} + for _, crew in ipairs(crews) do + local data = crew.data or {} + local label = data.vehicleType or 'Wounded crew' + local size = data.crewSize or 0 + if size <= 0 then size = 1 end + crewTotals[label] = (crewTotals[label] or 0) + size + end + local labels = {} + for label, _ in pairs(crewTotals) do + table.insert(labels, label) + end + table.sort(labels) + for _, label in ipairs(labels) do + table.insert(lines, string.format('Wounded: %s x %d', label, crewTotals[label])) + end + hasCargo = true + end + + if not hasCargo then + table.insert(lines, 'Nothing onboard.') + end + + local salvage = CTLD._salvagePoints and (CTLD._salvagePoints[self.Side] or 0) or 0 + table.insert(lines, '') + table.insert(lines, string.format('Salvage: %d pts', salvage)) + + _msgGroup(group, table.concat(lines, '\n'), math.min(self.Config.MessageDuration or 20, 25)) +end + +-- Vectors to nearest MEDEVAC (shows top 3 with time remaining) +function CTLD:VectorsToNearestMEDEVAC(group) + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then + _msgGroup(group, 'MEDEVAC system is not enabled.') + return + end + + local unit = group:GetUnit(1) + if not unit then return end + + local pos = unit:GetCoordinate() + if not pos then return end + + local heading = unit:GetHeading() or 0 + local isMetric = _getPlayerIsMetric(unit) + + -- Collect all active MEDEVAC requests with distance + local requests = {} + for crewGroupName, data in pairs(CTLD._medevacCrews or {}) do + if data.side == self.Side and data.requestTime and not data.pickedUp then + local dist = math.sqrt((data.position.x - pos.x)^2 + (data.position.z - pos.z)^2) + table.insert(requests, { + data = data, + distance = dist + }) + end + end + + if #requests == 0 then + _msgGroup(group, 'No active MEDEVAC requests.') + return + end + + -- Sort by distance (closest first) + table.sort(requests, function(a, b) return a.distance < b.distance end) + + -- Show top 3 (or fewer if less than 3 exist) + local lines = {} + table.insert(lines, 'MEDEVAC VECTORS (nearest 3):') + table.insert(lines, '') + + local maxShow = math.min(3, #requests) + for i = 1, maxShow do + local req = requests[i] + local data = req.data + local dist = req.distance + + local dx = data.position.x - pos.x + local dz = data.position.z - pos.z + local bearing = math.deg(math.atan2(dz, dx)) + if bearing < 0 then bearing = bearing + 360 end + + local relativeBrg = bearing - heading + if relativeBrg < 0 then relativeBrg = relativeBrg + 360 end + if relativeBrg > 180 then relativeBrg = relativeBrg - 360 end + + -- Calculate time remaining + local timeoutAt = data.spawnTime + (cfg.CrewTimeout or 3600) + local timeRemainSec = math.max(0, timeoutAt - timer.getTime()) + local timeRemainMin = math.floor(timeRemainSec / 60) + + -- Format distance + local distV, distU = _fmtRange(dist, isMetric) + + -- Build message for this crew + table.insert(lines, string.format('#%d: %s crew', i, data.vehicleType)) + table.insert(lines, string.format(' BRG %03dΒ° (%+.0fΒ° rel) | RNG %s %s', + math.floor(bearing + 0.5), relativeBrg, distV, distU)) + table.insert(lines, string.format(' Time left: %d min | Salvage: %d pts', + timeRemainMin, data.salvageValue or 1)) + + if i < maxShow then + table.insert(lines, '') + end + end + + _msgGroup(group, table.concat(lines, '\n'), 20) +end + +-- List MASH locations +function CTLD:ListMASHLocations(group) + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then + _msgGroup(group, 'MEDEVAC system is not enabled.') + return + end + + local unit = group:GetUnit(1) + local playerPos = unit and unit:GetCoordinate() + local playerVec3 = nil + if playerPos then + if playerPos.GetVec3 then + local ok, vec = pcall(function() return playerPos:GetVec3() end) + if ok then playerVec3 = vec end + elseif playerPos.x and playerPos.z then + playerVec3 = playerPos + end + end + + local count = 0 + local lines = {} + table.insert(lines, '=== MASH Locations ===') + table.insert(lines, '') + + for name, data in pairs(CTLD._mashZones or {}) do + if data.side == self.Side then + count = count + 1 + + -- Get position from zone object + local position = nil + if data.position then + position = data.position + elseif data.zone and data.zone.GetCoordinate then + local coord = data.zone:GetCoordinate() + if coord then + position = {x = coord.x, z = coord.z} + end + end + + local grid = position and self:_GetMGRSString(position) or 'Unknown' + local typeStr = data.isMobile and 'Mobile' or 'Fixed' + local radius = tonumber(data.radius) or 500 + + local label = data.displayName or name + table.insert(lines, string.format('%d. MASH %s (%s)', count, label, typeStr)) + table.insert(lines, string.format(' Grid: %s', grid)) + table.insert(lines, string.format(' Radius: %d m', radius)) + + if playerVec3 and position then + local dist = math.sqrt((position.x - playerVec3.x)^2 + (position.z - playerVec3.z)^2) + local distKm = dist / 1000 + table.insert(lines, string.format(' Distance: %.1f km', distKm)) + end + + if data.freq then + local freq = tonumber(data.freq) + if freq then + table.insert(lines, string.format(' Beacon: %.2f MHz', freq)) + else + table.insert(lines, string.format(' Beacon: %s', tostring(data.freq))) + end + end + + table.insert(lines, '') + end + end + + if count == 0 then + table.insert(lines, 'No MASH zones configured.') + table.insert(lines, '') + table.insert(lines, 'MASH zones are where you deliver rescued') + table.insert(lines, 'MEDEVAC crews to earn salvage points.') + else + table.insert(lines, 'Deliver rescued crews to any MASH to earn salvage.') + end + + _msgGroup(group, table.concat(lines, '\n'), 30) +end + +-- Pop smoke at all active MEDEVAC sites +function CTLD:PopSmokeAtMEDEVACSites(group) + _logVerbose('[MEDEVAC] PopSmokeAtMEDEVACSites called') + + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then + _logVerbose('[MEDEVAC] MEDEVAC system not enabled') + _msgGroup(group, 'MEDEVAC system is not enabled.') + return + end + + if not CTLD._medevacCrews then + _logVerbose('[MEDEVAC] No _medevacCrews table') + _msgGroup(group, 'No active MEDEVAC requests to mark with smoke.') + return + end + + local count = 0 + _logVerbose(string.format('[MEDEVAC] Checking %d crew entries', CTLD._medevacCrews and table.getn(CTLD._medevacCrews) or 0)) + + for crewGroupName, data in pairs(CTLD._medevacCrews) do + if data and data.side == self.Side and data.requestTime and data.position then + count = count + 1 + _logVerbose(string.format('[MEDEVAC] Popping smoke for crew %s', crewGroupName)) + + local smokeColor = (cfg.SmokeColor and cfg.SmokeColor[self.Side]) or trigger.smokeColor.Red + _spawnMEDEVACSmoke(data.position, smokeColor, cfg) + end + end + + _logVerbose(string.format('[MEDEVAC] Popped smoke at %d locations', count)) + + if count == 0 then + _msgGroup(group, 'No active MEDEVAC requests to mark with smoke.') + else + _msgGroup(group, string.format('Smoke popped at %d MEDEVAC location(s).', count), 10) + end +end + +-- Pop smoke at MASH zones (delivery locations) +function CTLD:PopSmokeAtMASHZones(group) + _logVerbose('[MEDEVAC] PopSmokeAtMASHZones called') + + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then + _logVerbose('[MEDEVAC] MEDEVAC system not enabled') + _msgGroup(group, 'MEDEVAC system is not enabled.') + return + end + + if not CTLD._mashZones then + _msgGroup(group, 'No MASH zones configured.') + return + end + + local count = 0 + local smokeColor = trigger.smokeColor.Orange + + for name, data in pairs(CTLD._mashZones) do + if data and data.side == self.Side then + -- Get position from zone object + local position = nil + if data.position then + position = data.position + elseif data.zone and data.zone.GetCoordinate then + local coord = data.zone:GetCoordinate() + if coord then + position = {x = coord.x, z = coord.z} + end + end + + if position then + count = count + 1 + _spawnMEDEVACSmoke(position, smokeColor, cfg) + _logVerbose(string.format('[MEDEVAC] Popped smoke at MASH zone: %s', name)) + end + end + end + + if count == 0 then + _msgGroup(group, 'No MASH zones found for your coalition.') + else + _msgGroup(group, string.format('Smoke popped at %d MASH zone(s).', count), 10) + end +end + +-- Clear all MEDEVAC missions (admin function) +function CTLD:ClearAllMEDEVACMissions(group) + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then + _msgGroup(group, 'MEDEVAC system is not enabled.') + return + end + + local count = 0 + + for crewGroupName, data in pairs(CTLD._medevacCrews or {}) do + if data.side == self.Side then + count = count + 1 + self:_RemoveMEDEVACCrew(crewGroupName, 'admin_clear') + end + end + + _msgGroup(group, string.format('Cleared %d MEDEVAC mission(s).', count), 10) + _logVerbose(string.format('[MEDEVAC] Admin cleared %d MEDEVAC missions for coalition %s', count, self.Side)) +end + +-- #endregion MEDEVAC + +-- #region Mobile MASH + +-- Create a Mobile MASH zone and start announcements +function CTLD:_CreateMobileMASH(group, position, catalogDef) + local cfg = CTLD.MEDEVAC + if not cfg or not cfg.Enabled then + _logDebug('[MobileMASH] Config missing or MEDEVAC disabled; aborting mobile deployment') + return + end + if not cfg.MobileMASH or not cfg.MobileMASH.Enabled then + _logDebug('[MobileMASH] MobileMASH feature disabled in config; aborting') + return + end + + if not position or not position.x or not position.z then + _logError('[MobileMASH] Missing build position; aborting Mobile MASH deployment') + return + end + + local groupNamePreview = 'unknown' + if group then + local okPreview, namePreview = pcall(function() return group:getName() end) + if okPreview and namePreview and namePreview ~= '' then groupNamePreview = namePreview end + end + _logVerbose(string.format('[MobileMASH] Build requested for group %s at (%.1f, %.1f)', groupNamePreview, position.x or 0, position.z or 0)) + + local function safeGetName(g) + if not g then return nil end + if g.getName then + local ok, name = pcall(function() return g:getName() end) + if ok and name and name ~= '' then return name end + end + if g.GetName then + local ok, name = pcall(function() return g:GetName() end) + if ok and name and name ~= '' then return name end + end + return nil + end + + local side = catalogDef.side or self.Side + if not side then + _logError('[MobileMASH] Unable to determine coalition side; aborting Mobile MASH deployment') + return + end + _logDebug(string.format('[MobileMASH] Using coalition side %s (%s)', tostring(side), tostring(catalogDef.side or self.Side))) + + CTLD._mobileMASHCounter = CTLD._mobileMASHCounter or { [coalition.side.BLUE] = 0, [coalition.side.RED] = 0 } + CTLD._mobileMASHCounter[side] = (CTLD._mobileMASHCounter[side] or 0) + 1 + local index = CTLD._mobileMASHCounter[side] + _logDebug(string.format('[MobileMASH] Assigned deployment index %d for side %s', index, tostring(side))) + + local mashId = string.format('MOBILE_MASH_%d_%d', side, index) + local displayName + if cfg.MobileMASH.AutoIncrementName == false then + displayName = catalogDef.description or mashId + else + displayName = string.format('Mobile MASH %d', index) + end + _logDebug(string.format('[MobileMASH] mashId=%s displayName=%s recipeDesc=%s', mashId, tostring(displayName), tostring(catalogDef.description))) + + local initialPos = { x = position.x, z = position.z } + local radius = cfg.MobileMASH.ZoneRadius or 500 + local beaconFreq = cfg.MobileMASH.BeaconFrequency or '30.0 FM' + local mashGroupName = safeGetName(group) + _logDebug(string.format('[MobileMASH] Initial position (%.1f, %.1f) radius %.1f freq %s groupName=%s', initialPos.x or 0, initialPos.z or 0, radius, tostring(beaconFreq), tostring(mashGroupName))) + + local function buildZoneObject(name, r, pos) + if ZONE_RADIUS and VECTOR2 and VECTOR2.New then + local ok, zoneObj = pcall(function() + local v2 = VECTOR2:New(pos.x, pos.z) + return ZONE_RADIUS:New(name, v2, r) + end) + if ok and zoneObj then + _logDebug('[MobileMASH] Created ZONE_RADIUS object for mobile MASH') + return zoneObj + end + if not ok then + _logDebug(string.format('[MobileMASH] ZONE_RADIUS creation failed: %s', tostring(zoneObj))) + end + end + local posCopy = { x = pos.x, z = pos.z } + _logDebug('[MobileMASH] Falling back to table-based zone representation') + local zoneObj = {} + function zoneObj:GetName() + return name + end + function zoneObj:GetPointVec3() + return { x = posCopy.x, y = 0, z = posCopy.z } + end + function zoneObj:GetRadius() + return r + end + function zoneObj:SetPointVec3(vec3) + if vec3 and vec3.x and vec3.z then + posCopy.x = vec3.x + posCopy.z = vec3.z + end + end + function zoneObj:SetVec2(vec2) + if vec2 and vec2.x and vec2.y then + posCopy.x = vec2.x + posCopy.z = vec2.y + end + end + return zoneObj + end + + local rawGroupHandle = group + + local function finalizeMobileMASH() + _logVerbose(string.format('[MobileMASH] Finalizing Mobile MASH %s', mashId)) + local mashGroupMoose = nil + if GROUP and GROUP.FindByName and not mashGroupName then + local ok, found = pcall(function() + -- coalition.addGroup sometimes renames groups; scan by coalition + if rawGroupHandle and rawGroupHandle.getName then + return GROUP:FindByName(rawGroupHandle:getName()) + end + return nil + end) + if ok and found then + mashGroupMoose = found + mashGroupName = mashGroupName or safeGetName(found) + end + elseif GROUP and GROUP.FindByName and mashGroupName then + local ok, found = pcall(function() return GROUP:FindByName(mashGroupName) end) + if ok and found then mashGroupMoose = found end + end + + local function resolveRawGroup() + if rawGroupHandle and rawGroupHandle.isExist and rawGroupHandle:isExist() then + return rawGroupHandle + end + if mashGroupName and Group and Group.getByName then + local ok, g = pcall(function() return Group.getByName(mashGroupName) end) + if ok and g then + rawGroupHandle = g + if g.isExist and g:isExist() then + return rawGroupHandle + end + elseif not ok then + _logDebug(string.format('[MobileMASH] resolveRawGroup Group.getByName error: %s', tostring(g))) + end + end + return nil + end + + local function groupIsAlive() + if mashGroupMoose and mashGroupMoose.IsAlive then + local ok, alive = pcall(function() return mashGroupMoose:IsAlive() end) + if ok and alive then return true end + if not ok then + _logDebug(string.format('[MobileMASH] groupIsAlive Moose check error: %s', tostring(alive))) + end + end + local g = resolveRawGroup() + if not g then return false end + local units = g:getUnits() + if not units then return false end + for _, u in ipairs(units) do + if u and u.isExist and u:isExist() then + return true + end + end + return false + end + + local function groupVec3() + if mashGroupMoose and mashGroupMoose.GetCoordinate then + local ok, coord = pcall(function() return mashGroupMoose:GetCoordinate() end) + if ok and coord then + local vec3 = coord.GetVec3 and coord:GetVec3() + if vec3 then return vec3 end + end + if not ok then + _logDebug(string.format('[MobileMASH] groupVec3 Moose coordinate error: %s', tostring(coord))) + end + end + local g = resolveRawGroup() + if g then + local units = g:getUnits() + if units and units[1] and units[1].getPoint then + local ok, point = pcall(function() return units[1]:getPoint() end) + if ok and point then return point end + end + end + return nil + end + + local zoneObj = buildZoneObject(displayName, radius, initialPos) + CTLD._mashZones = CTLD._mashZones or {} + + local mashData = { + id = mashId, + displayName = displayName, + position = { x = initialPos.x, z = initialPos.z }, + radius = radius, + side = side, + group = mashGroupMoose or rawGroupHandle, + groupName = mashGroupName, + isMobile = true, + catalogKey = catalogDef.description or 'Mobile MASH', + zone = zoneObj, + freq = beaconFreq, + } + + CTLD._mashZones[mashId] = mashData + _logDebug(string.format('[MobileMASH] Registered mashId=%s displayName=%s zoneRadius=%.1f freq=%s', mashId, displayName, radius, tostring(beaconFreq))) + + self._ZoneDefs = self._ZoneDefs or { PickupZones = {}, DropZones = {}, FOBZones = {}, MASHZones = {} } + self._ZoneDefs.MASHZones = self._ZoneDefs.MASHZones or {} + self._ZoneDefs.MASHZones[displayName] = { name = displayName, radius = radius, active = true, freq = beaconFreq } + + self._ZoneActive = self._ZoneActive or { Pickup = {}, Drop = {}, FOB = {}, MASH = {} } + self._ZoneActive.MASH = self._ZoneActive.MASH or {} + self._ZoneActive.MASH[displayName] = true + + local md = self.Config and self.Config.MapDraw or {} + if md.Enabled then + local ok, err = pcall(function() self:DrawZonesOnMap() end) + if not ok then + _logError(string.format('DrawZonesOnMap failed after Mobile MASH creation: %s', tostring(err))) + end + else + local circleId = _nextMarkupId() + local textId = _nextMarkupId() + local p = { x = initialPos.x, y = 0, z = initialPos.z } + + local colors = cfg.MASHZoneColors or {} + local borderColor = colors.border or {1, 1, 0, 0.85} + local fillColor = colors.fill or {1, 0.75, 0.8, 0.25} + + trigger.action.circleToCoalition(side, circleId, p, radius, borderColor, fillColor, 1, true, "") + + local textPos = { x = p.x, y = 0, z = p.z - radius - 50 } + trigger.action.textToCoalition(side, textId, textPos, {1,1,1,0.9}, {0,0,0,0}, 18, true, displayName) + + mashData.circleId = circleId + mashData.textId = textId + _logDebug(string.format('[MobileMASH] Drawn map circleId=%d textId=%d', circleId, textId)) + end + + local gridStr = self:_GetMGRSString(initialPos) + trigger.action.outTextForCoalition(side, _fmtTemplate(CTLD.Messages.medevac_mash_deployed, { + mash_id = index, + grid = gridStr, + freq = beaconFreq, + }), 30) + _logInfo(string.format('[MobileMASH] Mobile MASH "%s" registered at %s', displayName, gridStr)) + + if cfg.MobileMASH.AnnouncementInterval and cfg.MobileMASH.AnnouncementInterval > 0 then + local ctldInstance = self + local scheduler = SCHEDULER:New(nil, function() + local ok, err = pcall(function() + if not groupIsAlive() then + ctldInstance:_RemoveMobileMASH(mashId) + return + end + + local vec3 = groupVec3() + if vec3 then + mashData.position = { x = vec3.x, z = vec3.z } + if mashData.zone then + if mashData.zone.SetPointVec3 then + mashData.zone:SetPointVec3({ x = vec3.x, y = vec3.y or 0, z = vec3.z }) + elseif mashData.zone.SetVec2 then + mashData.zone:SetVec2({ x = vec3.x, y = vec3.z }) + end + end + local currentGrid = ctldInstance:_GetMGRSString({ x = vec3.x, z = vec3.z }) + trigger.action.outTextForCoalition(side, _fmtTemplate(CTLD.Messages.medevac_mash_announcement, { + mash_id = index, + grid = currentGrid, + freq = beaconFreq, + }), 20) + _logDebug(string.format('[MobileMASH] Announcement tick for %s at grid %s', displayName, tostring(currentGrid))) + end + end) + if not ok then _logError('Mobile MASH announcement scheduler error: '..tostring(err)) end + end, {}, cfg.MobileMASH.AnnouncementInterval, cfg.MobileMASH.AnnouncementInterval) + + mashData.scheduler = scheduler + _logDebug(string.format('[MobileMASH] Announcement scheduler started every %.1fs', cfg.MobileMASH.AnnouncementInterval)) + end + + if EVENTHANDLER then + local ctldInstance = self + local eventHandler = EVENTHANDLER:New() + eventHandler:HandleEvent(EVENTS.Dead) + + function eventHandler:OnEventDead(EventData) + local killedName = EventData.IniGroupName or (EventData.IniGroup and EventData.IniGroup:GetName()) + if killedName and killedName == mashGroupName then + ctldInstance:_RemoveMobileMASH(mashId) + end + end + + mashData.eventHandler = eventHandler + _logDebug(string.format('[MobileMASH] Event handler registered for group %s', tostring(mashGroupName))) + end + end + + if timer and timer.scheduleFunction and timer.getTime then + _logDebug('[MobileMASH] Scheduling finalizeMobileMASH via timer') + timer.scheduleFunction(function(_args, _time) + local ok, err = pcall(finalizeMobileMASH) + if not ok then + _logError(string.format('[MobileMASH] finalize failed: %s', tostring(err))) + end + return nil + end, {}, timer.getTime() + 0.2) + else + _logDebug('[MobileMASH] timer.scheduleFunction unavailable, running finalizeMobileMASH inline') + local ok, err = pcall(finalizeMobileMASH) + if not ok then + _logError(string.format('[MobileMASH] finalize failed: %s', tostring(err))) + end + end +end + +-- Remove a Mobile MASH zone (on destruction or manual removal) +function CTLD:_RemoveMobileMASH(mashId) + if not CTLD._mashZones then return end + + local mash = CTLD._mashZones[mashId] + if mash then + -- Stop scheduler + if mash.scheduler then + mash.scheduler:Stop() + end + + -- Remove map drawings + if mash.circleId then trigger.action.removeMark(mash.circleId) end + if mash.textId then trigger.action.removeMark(mash.textId) end + local name = mash.displayName or mashId + if self._ZoneDefs and self._ZoneDefs.MASHZones then self._ZoneDefs.MASHZones[name] = nil end + if self._ZoneActive and self._ZoneActive.MASH then self._ZoneActive.MASH[name] = nil end + self:_removeZoneDrawing('MASH', name) + + -- Send destruction message + local msg = _fmtTemplate(CTLD.Messages.medevac_mash_destroyed, { + mash_id = string.match(mashId, 'MOBILE_MASH_%d+_(%d+)') or '?' + }) + trigger.action.outTextForCoalition(mash.side, msg, 20) + + -- Remove from table + CTLD._mashZones[mashId] = nil + _logVerbose(string.format('[MobileMASH] Removed MASH %s', mashId)) + if self.Config and self.Config.MapDraw and self.Config.MapDraw.Enabled then + pcall(function() self:DrawZonesOnMap() end) + end + end +end + +-- #endregion Mobile MASH + +-- #endregion Inventory helpers + +-- Create a new Drop Zone (AO) at the player's current location and draw it on the map if enabled +function CTLD:CreateDropZoneAtGroup(group) + if not group or not group:IsAlive() then return end + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + -- Prevent creating a Drop Zone inside or too close to a Pickup Zone + -- 1) Block if inside a (potentially active-only) pickup zone + local activeOnlyForInside = (self.Config and self.Config.ForbidChecksActivePickupOnly ~= false) + local inside, pz, distInside, pr = self:_isUnitInsidePickupZone(unit, activeOnlyForInside) + if inside then + local isMetric = _getPlayerIsMetric(unit) + local curV, curU = _fmtRange(distInside or 0, isMetric) + local needV, needU = _fmtRange(self.Config.MinDropZoneDistanceFromPickup or 10000, isMetric) + _eventSend(self, group, nil, 'drop_zone_too_close_to_pickup', { + zone = (pz and pz.GetName and pz:GetName()) or '(pickup)', + need = needV, need_u = needU, + dist = curV, dist_u = curU, + }) + return + end + -- 2) Enforce a minimum distance from the nearest pickup zone (configurable) + local minD = tonumber(self.Config and self.Config.MinDropZoneDistanceFromPickup) or 0 + if minD > 0 then + local considerActive = (self.Config and self.Config.MinDropDistanceActivePickupOnly ~= false) + local nearestZone, nearestDist + if considerActive then + nearestZone, nearestDist = self:_nearestActivePickupZone(unit) + else + local list = (self.Config and self.Config.Zones and self.Config.Zones.PickupZones) or {} + nearestZone, nearestDist = _nearestZonePoint(unit, list) + end + if nearestZone and nearestDist and nearestDist < minD then + local isMetric = _getPlayerIsMetric(unit) + local needV, needU = _fmtRange(minD, isMetric) + local curV, curU = _fmtRange(nearestDist, isMetric) + _eventSend(self, group, nil, 'drop_zone_too_close_to_pickup', { + zone = (nearestZone and nearestZone.GetName and nearestZone:GetName()) or '(pickup)', + need = needV, need_u = needU, + dist = curV, dist_u = curU, + }) + return + end + end + local p = unit:GetPointVec3() + local baseName = group:GetName() or 'GROUP' + local safe = tostring(baseName):gsub('%W', '') + local name = string.format('AO_%s_%d', safe, math.random(100000,999999)) + local r = tonumber(self.Config and self.Config.DropZoneRadius) or 250 + local v2 = (VECTOR2 and VECTOR2.New) and VECTOR2:New(p.x, p.z) or { x = p.x, y = p.z } + local mz = ZONE_RADIUS:New(name, v2, r) + -- Register in runtime and config so other features can find it + self.DropZones = self.DropZones or {} + table.insert(self.DropZones, mz) + self._ZoneDefs = self._ZoneDefs or { PickupZones = {}, DropZones = {}, FOBZones = {} } + self._ZoneDefs.DropZones[name] = { name = name, radius = r, active = true } + self._ZoneActive = self._ZoneActive or { Pickup = {}, Drop = {}, FOB = {} } + self._ZoneActive.Drop[name] = true + self.Config.Zones = self.Config.Zones or { PickupZones = {}, DropZones = {}, FOBZones = {} } + self.Config.Zones.DropZones = self.Config.Zones.DropZones or {} + table.insert(self.Config.Zones.DropZones, { name = name, radius = r, active = true }) + -- Draw on map if configured + local md = self.Config and self.Config.MapDraw or {} + if md.Enabled and (md.DrawDropZones ~= false) then + local ok, err = pcall(function() self:DrawZonesOnMap() end) + if not ok then + _logError(string.format('DrawZonesOnMap failed after creating drop zone %s: %s', name, tostring(err))) + end + end + MESSAGE:New(string.format('Drop Zone created: %s (rβ‰ˆ%dm)', name, r), 10):ToGroup(group) +end + +function CTLD:AddPickupZone(z) + local mz = _findZone(z) + if mz then table.insert(self.PickupZones, mz); table.insert(self.Config.Zones.PickupZones, z) end +end + +function CTLD:AddDropZone(z) + local mz = _findZone(z) + if mz then table.insert(self.DropZones, mz); table.insert(self.Config.Zones.DropZones, z) end +end + +function CTLD:SetAllowedAircraft(list) + self.Config.AllowedAircraft = DeepCopy(list) +end + +-- Explicit cleanup handler for mission end +-- Call this to properly shut down all CTLD schedulers and clear state +function CTLD:Cleanup() + _logInfo('Cleanup initiated - stopping all schedulers and clearing state') + + -- Stop all smoke refresh schedulers + if CTLD._smokeRefreshSchedules then + for crateId, schedule in pairs(CTLD._smokeRefreshSchedules) do + if schedule.funcId then + pcall(function() timer.removeFunction(schedule.funcId) end) + end + end + CTLD._smokeRefreshSchedules = {} + end + + -- Stop all Mobile MASH schedulers + if CTLD._mashZones then + for mashId, mash in pairs(CTLD._mashZones) do + if mash.scheduler then + pcall(function() mash.scheduler:Stop() end) + end + if mash.eventHandler then + -- Event handlers clean themselves up, but we can nil the reference + mash.eventHandler = nil + end + end + end + + -- Stop any MEDEVAC timeout checkers or other schedulers + -- (If you add schedulers in the future, stop them here) + if self.MEDEVACSched then + pcall(function() self.MEDEVACSched:Stop() end) + self.MEDEVACSched = nil + end + if self.SalvageSched then + pcall(function() self.SalvageSched:Stop() end) + self.SalvageSched = nil + end + + -- Clear spatial grid + CTLD._spatialGrid = {} + + -- Clear state tables (optional - helps with memory in long-running missions) + CTLD._crates = {} + CTLD._troopsLoaded = {} + CTLD._loadedCrates = {} + CTLD._loadedTroopTypes = {} + CTLD._deployedTroops = {} + CTLD._hoverState = {} + CTLD._unitLast = {} + CTLD._coachState = {} + CTLD._msgState = {} + CTLD._buildConfirm = {} + CTLD._buildCooldown = {} + CTLD._jtacReservedCodes = { [coalition.side.BLUE] = {}, [coalition.side.RED] = {}, [coalition.side.NEUTRAL] = {} } + if self._loadedCrateMenus then + for _,state in pairs(self._loadedCrateMenus) do + if state and state.commands then + for _,cmd in ipairs(state.commands) do + if cmd and cmd.Remove then pcall(function() cmd:Remove() end) end + end + end + end + self._loadedCrateMenus = {} + end + + -- Clear salvage state + if CTLD._salvageCrates then + for crateName, meta in pairs(CTLD._salvageCrates) do + if meta.staticObject and meta.staticObject.destroy then + pcall(function() meta.staticObject:destroy() end) + end + end + CTLD._salvageCrates = {} + end + if self.JTACSched then + pcall(function() self.JTACSched:Stop() end) + self.JTACSched = nil + end + if self._jtacRegistry then + for groupName in pairs(self._jtacRegistry) do + self:_cleanupJTACEntry(groupName) + end + self._jtacRegistry = {} + end + + _logInfo('Cleanup complete') +end + +-- Register mission end event to auto-cleanup +-- This ensures resources are properly released +if not CTLD._cleanupHandlerRegistered then + CTLD._cleanupHandlerRegistered = true + + local cleanupHandler = EVENTHANDLER:New() + cleanupHandler:HandleEvent(EVENTS.MissionEnd) + + function cleanupHandler:OnEventMissionEnd(EventData) + _logInfo('Mission end detected - initiating cleanup') + -- Cleanup all instances + for _, instance in pairs(CTLD._instances or {}) do + if instance and instance.Cleanup then + pcall(function() instance:Cleanup() end) + end + end + -- Also call static cleanup + if CTLD.Cleanup then + pcall(function() CTLD:Cleanup() end) + end + end +end + +-- #endregion Public helpers + +-- ========================= +-- Sling-Load Salvage System +-- ========================= +-- #region SlingLoadSalvage + +-- Spawn a salvage crate when an enemy ground unit dies +function CTLD:_SpawnSlingLoadSalvageCrate(unitPos, unitTypeName, enemySide, eventData) + local cfg = self.Config.SlingLoadSalvage + if not cfg or not cfg.Enabled then return end + + -- Check spawn chance for this coalition + local spawnChance = cfg.SpawnChance[enemySide] or 0.15 + if math.random() > spawnChance then + _logVerbose(string.format('[SlingLoadSalvage] Spawn roll failed (%.2f chance)', spawnChance)) + return + end + + -- Check spawn restrictions + if cfg.NoSpawnNearPickupZones then + local minDist = cfg.NoSpawnNearPickupZoneDistance or 1000 + for _, zone in ipairs(self.PickupZones or {}) do + local zoneName = zone:GetName() + if zoneName and (self._ZoneActive.Pickup[zoneName] ~= false) then + local zonePos = zone:GetPointVec3() + local dist = math.sqrt((unitPos.x - zonePos.x)^2 + (unitPos.z - zonePos.z)^2) + if dist < minDist then + _logVerbose('[SlingLoadSalvage] Too close to pickup zone, aborting spawn') + return + end + end + end + end + + if cfg.NoSpawnNearAirbasesKm and cfg.NoSpawnNearAirbasesKm > 0 then + local airbases = coalition.getAirbases(enemySide) + if airbases then + local minDistKm = cfg.NoSpawnNearAirbasesKm * 1000 + for _, ab in ipairs(airbases) do + local abPos = ab:getPoint() + local dist = math.sqrt((unitPos.x - abPos.x)^2 + (unitPos.z - abPos.z)^2) + if dist < minDistKm then + _logVerbose('[SlingLoadSalvage] Too close to airbase, aborting spawn') + return + end + end + end + end + + -- Select weight class + local totalProb = 0 + for _, wc in ipairs(cfg.WeightClasses) do + totalProb = totalProb + wc.probability + end + local roll = math.random() * totalProb + local cumulative = 0 + local selectedClass = cfg.WeightClasses[1] -- fallback + for _, wc in ipairs(cfg.WeightClasses) do + cumulative = cumulative + wc.probability + if roll <= cumulative then + selectedClass = wc + break + end + end + + local weight = math.random(selectedClass.min, selectedClass.max) + local rewardValue = math.floor((weight / 500) * selectedClass.rewardPer500kg) + + -- Calculate spawn position + local minDist = cfg.MinSpawnDistance or 10 + local maxDist = cfg.MaxSpawnDistance or 25 + local distance = minDist + math.random() * (maxDist - minDist) + local angle = math.random() * 2 * math.pi + local spawnPos = { + x = unitPos.x + math.cos(angle) * distance, + z = unitPos.z + math.sin(angle) * distance + } + + -- Get land height + local landHeight = land.getHeight({ x = spawnPos.x, y = spawnPos.z }) + + -- Select cargo type based on weight + local cargoType + if weight < 1500 then + -- Light: barrels or ammo pallets + local lightTypes = { 'barrels_cargo', 'ammo_cargo' } + cargoType = lightTypes[math.random(1, #lightTypes)] + elseif weight < 2500 then + -- Medium: fuel tanks or containers + local mediumTypes = { 'fueltank_cargo', 'container_cargo', 'ammo_cargo' } + cargoType = mediumTypes[math.random(1, #mediumTypes)] + else + -- Heavy: large containers only + cargoType = 'container_cargo' + end + + -- Create unique crate name + -- Use prefix that matches the coalition allowed to collect this crate + local sidePrefix = (enemySide == coalition.side.BLUE) and 'B' or 'R' + local crateName = string.format('SALVAGE-%s-%04dKG-%06d', sidePrefix, weight, math.random(100000, 999999)) + + -- Enforce active salvage crate cap before spawning + if cfg.MaxActiveCrates then + local activeCount = 0 + for cname, meta in pairs(CTLD._salvageCrates or {}) do + if meta and meta.side == enemySide then + activeCount = activeCount + 1 + end + end + if activeCount >= cfg.MaxActiveCrates then + _logVerbose(string.format('[SlingLoadSalvage] Max active crates (%d) reached for side %d; skipping spawn', cfg.MaxActiveCrates, enemySide)) + return + end + end + + -- Spawn the static cargo + -- Spawn the crate for the coalition that can recover it (enemySide) + local countryId = nil + if CTLD._instances then + for _, inst in ipairs(CTLD._instances) do + if inst and inst.Side == enemySide and inst.CountryId then + countryId = inst.CountryId + break + end + end + end + if not countryId then + countryId = _defaultCountryForSide(enemySide) + end + + local staticData = { + ['type'] = cargoType, + ['name'] = crateName, + ['x'] = spawnPos.x, + ['y'] = spawnPos.z, + ['heading'] = math.random() * 2 * math.pi, + ['canCargo'] = true, + ['mass'] = weight, + } + + local success, staticObj = pcall(function() + return coalition.addStaticObject(countryId, staticData) + end) + + if not success or not staticObj then + _logError('[SlingLoadSalvage] Failed to spawn salvage crate: ' .. tostring(staticObj)) + return + end + + -- Store crate metadata + CTLD._salvageCrates[crateName] = { + side = enemySide, + weight = weight, + spawnTime = timer.getTime(), + position = spawnPos, + initialHealth = 1.0, + rewardValue = rewardValue, + warningsSent = {}, + staticObject = staticObj, + crateClass = selectedClass.name, + } + + -- Update stats + if not CTLD._salvageStats[enemySide] then + CTLD._salvageStats[enemySide] = { spawned = 0, delivered = 0, expired = 0, totalWeight = 0, totalReward = 0 } + end + CTLD._salvageStats[enemySide].spawned = CTLD._salvageStats[enemySide].spawned + 1 + + -- Spawn smoke if enabled (use unified crate smoke offset logic) + if cfg.SpawnSmoke then + local smokeColor = cfg.SmokeColor or trigger.smokeColor.Orange + -- Reuse crate smoke offset parameters but force Enabled for salvage spawn event + local baseCfg = self.Config.CrateSmoke or {} + local smokeConfig = { + Enabled = true, -- always allow initial salvage smoke when SlingLoadSalvage.SpawnSmoke = true + AutoRefresh = false, -- do not auto-refresh salvage smoke unless we explicitly add support later + RefreshInterval = baseCfg.RefreshInterval, + MaxRefreshDuration = baseCfg.MaxRefreshDuration, + OffsetMeters = baseCfg.OffsetMeters, + OffsetRandom = (baseCfg.OffsetRandom ~= false), + OffsetVertical = baseCfg.OffsetVertical, + } + -- Provide a position table compatible with _spawnCrateSmoke (y = ground height) + _spawnCrateSmoke({ x = spawnPos.x, y = landHeight, z = spawnPos.z }, smokeColor, smokeConfig, crateName) + end + + -- Calculate expiration time + local lifetime = cfg.CrateLifetime or 10800 + local timeRemainMin = math.floor(lifetime / 60) + local timeRemainHrs = math.floor(timeRemainMin / 60) + local timeRemainStr + if timeRemainHrs >= 1 then + timeRemainStr = string.format("%d hr%s", timeRemainHrs, timeRemainHrs > 1 and "s" or "") + else + timeRemainStr = string.format("%d min%s", timeRemainMin, timeRemainMin > 1 and "s" or "") + end + local grid = self:_GetMGRSString(spawnPos) + + -- Announce to coalition + local msg = _fmtTemplate(self.Messages.slingload_salvage_spawned, { + grid = grid, + weight = weight, + reward = rewardValue, + time_remain = timeRemainStr, + }) + _msgCoalition(enemySide, msg) + + _logInfo(string.format('[SlingLoadSalvage] Spawned %s: weight=%dkg, reward=%dpts at %s', + crateName, weight, rewardValue, grid)) +end + +-- Check salvage crates for delivery and cleanup +function CTLD:_CheckSlingLoadSalvageCrates() + local cfg = self.Config.SlingLoadSalvage + if not cfg or not cfg.Enabled then return end + + local now = timer.getTime() + local cratesToRemove = {} + + for crateName, meta in pairs(CTLD._salvageCrates) do + if meta.side == self.Side then + local elapsed = now - meta.spawnTime + local lifetime = cfg.CrateLifetime or 10800 + + -- Check for expiration + if elapsed >= lifetime then + table.insert(cratesToRemove, crateName) + + -- Update stats + CTLD._salvageStats[meta.side].expired = CTLD._salvageStats[meta.side].expired + 1 + + -- Announce expiration + local grid = self:_GetMGRSString(meta.position) + local msg = _fmtTemplate(self.Messages.slingload_salvage_expired, { + id = crateName, + grid = grid, + }) + _msgCoalition(meta.side, msg) + + -- Remove the static object + if meta.staticObject and meta.staticObject.destroy then + pcall(function() meta.staticObject:destroy() end) + end + + _logVerbose(string.format('[SlingLoadSalvage] Crate %s expired', crateName)) + + else + -- Check for warnings + local remaining = lifetime - elapsed + for _, warnTime in ipairs(cfg.WarningTimes or { 1800, 300 }) do + if remaining <= warnTime and not meta.warningsSent[warnTime] then + meta.warningsSent[warnTime] = true + local grid = self:_GetMGRSString(meta.position) + local msgKey = (warnTime >= 1800) and 'slingload_salvage_warn_30min' or 'slingload_salvage_warn_5min' + local msg = _fmtTemplate(self.Messages[msgKey], { + id = crateName, + grid = grid, + weight = meta.weight, + }) + _msgCoalition(meta.side, msg) + end + end + + -- Check if crate is in a salvage zone + if meta.staticObject and meta.staticObject:isExist() then + local cratePos = meta.staticObject:getPoint() + if cratePos then + -- Check all salvage zones for this coalition + for _, zone in ipairs(self.SalvageDropZones or {}) do + local zoneName = zone:GetName() + local zoneDef = self._ZoneDefs.SalvageDropZones[zoneName] + + if zoneDef and zoneDef.side == meta.side and (self._ZoneActive.SalvageDrop[zoneName] ~= false) then + -- cratePos is a DCS Vec3 table, so use the direct Vec3 helper to avoid GetVec2 calls + if zone:IsVec3InZone(cratePos) then + -- Simple CTLD.lua style: just check if crate is in air + local crateHooked = _isCrateHooked(meta.staticObject) + + if not crateHooked then + -- Crate is on the ground in the zone - deliver it! + _logInfo(string.format('[SlingLoadSalvage] Delivering %s', crateName)) + self:_DeliverSlingLoadSalvageCrate(crateName, meta, zoneName) + table.insert(cratesToRemove, crateName) + break + else + -- Crate is still hooked - send hint and wait for release + self:_SendSalvageHint(meta, 'slingload_salvage_hooked_in_zone', { + id = crateName, + zone = zoneName, + }, cratePos, 8) + _logDebug(string.format('[SlingLoadSalvage] Crate %s still hooked, waiting for release', crateName)) + end + end + end + end + -- Provide guidance if crate is lingering inside other zone types + self:_CheckCrateZoneHints(crateName, meta, cratePos) + end + else + -- Crate no longer exists (destroyed or removed) + table.insert(cratesToRemove, crateName) + _logVerbose(string.format('[SlingLoadSalvage] Crate %s no longer exists', crateName)) + end + end + end + end + + -- Remove processed crates + for _, crateName in ipairs(cratesToRemove) do + CTLD._salvageCrates[crateName] = nil + end +end + +-- Deliver a salvage crate and award points +function CTLD:_DeliverSlingLoadSalvageCrate(crateName, meta, zoneName) + local cfg = self.Config.SlingLoadSalvage + + -- Check crate health for condition multiplier + local healthRatio = 1.0 + if meta.staticObject and meta.staticObject.getLife then + local success, currentLife = pcall(function() return meta.staticObject:getLife() end) + if success and currentLife then + local success2, maxLife = pcall(function() return meta.staticObject:getLife0() end) + if success2 and maxLife and maxLife > 0 then + healthRatio = currentLife / maxLife + end + end + end + + -- Determine condition multiplier + local conditionMult = cfg.ConditionMultipliers.Damaged or 1.0 + local conditionLabel = "Damaged" + if healthRatio >= 0.9 then + conditionMult = cfg.ConditionMultipliers.Undamaged or 1.5 + conditionLabel = "Undamaged" + elseif healthRatio < 0.5 then + conditionMult = cfg.ConditionMultipliers.HeavyDamage or 0.5 + conditionLabel = "Heavy Damage" + end + + -- Calculate final reward + local finalReward = math.floor(meta.rewardValue * conditionMult) + + -- Award salvage points + CTLD._salvagePoints[meta.side] = (CTLD._salvagePoints[meta.side] or 0) + finalReward + + -- Update stats + CTLD._salvageStats[meta.side].delivered = CTLD._salvageStats[meta.side].delivered + 1 + CTLD._salvageStats[meta.side].totalWeight = CTLD._salvageStats[meta.side].totalWeight + meta.weight + CTLD._salvageStats[meta.side].totalReward = CTLD._salvageStats[meta.side].totalReward + finalReward + + -- Find the player who delivered (nearest transport helo in zone) + local playerName = "Unknown Pilot" + local deliveryUnit = nil + for _, zone in ipairs(self.SalvageDropZones or {}) do + if zone:GetName() == zoneName then + -- Find nearby friendly helicopters + local zonePos = zone:GetPointVec3() + local radius = self:_getZoneRadius(zone) or 300 + local nearbyUnits = {} + + -- Search for units in the zone + local sphere = _buildSphereVolume(zonePos, radius) + + local foundUnits = {} + world.searchObjects(Object.Category.UNIT, sphere, function(obj) + if obj and obj:isExist() and obj.getCoalition then + local objCoal = obj:getCoalition() + if objCoal == meta.side and obj.getGroup then + local grp = obj:getGroup() + if grp then + local grpName = grp:getName() + table.insert(foundUnits, { unit = obj, group = grp, groupName = grpName }) + end + end + end + return true + end) + + -- Find player name from group + if #foundUnits > 0 then + deliveryUnit = foundUnits[1].unit + local grpName = foundUnits[1].groupName + if grpName then + -- Try to extract player name from group + local mooseGrp = GROUP:FindByName(grpName) + if mooseGrp then + local unit1 = mooseGrp:GetUnit(1) + if unit1 then + local pName = unit1:GetPlayerName() + if pName and pName ~= '' then + playerName = pName + else + playerName = grpName + end + end + end + end + end + break + end + end + + -- Announce delivery + local msg = _fmtTemplate(self.Messages.slingload_salvage_delivered, { + player = playerName, + weight = meta.weight, + reward = finalReward, + condition = conditionLabel, + total = CTLD._salvagePoints[meta.side], + }) + local quip + local quipPool = self.Messages.slingload_salvage_received_quips + if quipPool and #quipPool > 0 then + local template = quipPool[math.random(#quipPool)] + if template and template ~= '' then + quip = _fmtTemplate(template, { + player = playerName, + zone = zoneName, + reward = finalReward, + weight = meta.weight, + condition = conditionLabel, + total = CTLD._salvagePoints[meta.side], + coalition = (self.Side == coalition.side.BLUE) and 'BLUE' or 'RED', + }) + end + end + if quip and quip ~= '' then + msg = msg .. '\n' .. quip + end + _msgCoalition(meta.side, msg) + + -- Remove the crate + if meta.staticObject and meta.staticObject.destroy then + pcall(function() meta.staticObject:destroy() end) + end + + _logInfo(string.format('[SlingLoadSalvage] %s delivered %s: %dkg, %dpts (%s), total=%d', + playerName, crateName, meta.weight, finalReward, conditionLabel, CTLD._salvagePoints[meta.side])) +end + +-- Menu: Create Salvage Zone at group position +function CTLD:CreateSalvageZoneAtGroup(group) + local cfg = self.Config.SlingLoadSalvage + if not cfg or not cfg.Enabled then + _msgGroup(group, 'Sling-Load Salvage system is disabled.') + return + end + + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + + local pos = unit:GetPointVec3() + local coord = COORDINATE:NewFromVec3(pos) + local radius = cfg.DefaultZoneRadius or 300 + + self._DynamicSalvageZones = self._DynamicSalvageZones or {} + self._DynamicSalvageQueue = self._DynamicSalvageQueue or {} + + -- Pre-clean existing dynamics so limit checks are up to date + self:_enforceDynamicSalvageZoneLimit() + + -- Generate unique zone name + local zoneName = string.format('SalvageZone-%s-%d', (self.Side == coalition.side.BLUE and 'BLUE' or 'RED'), + math.random(1000, 9999)) + + -- Create MOOSE zone + local zone = ZONE_RADIUS:New(zoneName, coord:GetVec2(), radius) + + -- Add to instance zones + table.insert(self.SalvageDropZones, zone) + local now = timer and timer.getTime and timer.getTime() or 0 + local lifetime = tonumber(cfg.DynamicZoneLifetime or 0) or 0 + local expiresAt = (lifetime > 0) and (now + lifetime) or nil + + self._ZoneDefs.SalvageDropZones[zoneName] = { + name = zoneName, + side = self.Side, + active = true, + radius = radius, + dynamic = true, + createdAt = now, + expiresAt = expiresAt, + } + self._ZoneActive.SalvageDrop[zoneName] = true + + -- Track dynamic zone metadata for cleanup enforcement + self._DynamicSalvageZones[zoneName] = { + zone = zone, + createdAt = now, + expiresAt = expiresAt, + radius = radius, + } + table.insert(self._DynamicSalvageQueue, zoneName) + + -- Enforce limits after registering the new zone + self:_enforceDynamicSalvageZoneLimit() + if not self._DynamicSalvageZones[zoneName] then + _msgGroup(group, 'Unable to create salvage zone (limit reached). Older zones were not cleared in time.') + return + end + + -- Announce + local msg = _fmtTemplate(self.Messages.slingload_salvage_zone_created, { + zone = zoneName, + radius = radius, + }) + if lifetime > 0 then + msg = msg .. string.format(' Expires in %s.', _ctldFormatSeconds(lifetime)) + end + local maxZones = tonumber(cfg.MaxDynamicZones or 0) or 0 + if maxZones > 0 then + msg = msg .. string.format(' Active zone cap: %d.', maxZones) + end + _msgGroup(group, msg) + + _logInfo(string.format('[SlingLoadSalvage] Created zone %s at %s', zoneName, coord:ToStringLLDMS())) + + local ok, err = pcall(function() self:DrawZonesOnMap() end) + if not ok then + _logError(string.format('[SlingLoadSalvage] DrawZonesOnMap failed after creating %s: %s', zoneName, tostring(err))) + end +end + +function CTLD:RetireOldestDynamicSalvageZone(group) + local cfg = self.Config.SlingLoadSalvage + if not cfg or not cfg.Enabled then return end + + self._DynamicSalvageQueue = self._DynamicSalvageQueue or {} + if #self._DynamicSalvageQueue == 0 then + if group then _msgGroup(group, 'No dynamic salvage zones to retire.') end + return + end + + local oldest = self._DynamicSalvageQueue[1] + if not oldest then + if group then _msgGroup(group, 'No dynamic salvage zones to retire.') end + return + end + + local exists = self._DynamicSalvageZones and self._DynamicSalvageZones[oldest] + if exists then + self:_removeDynamicSalvageZone(oldest, 'manual-retire') + if group then + _msgGroup(group, string.format('Retired salvage zone: %s', oldest)) + end + else + -- Remove stale entry from queue and notify user + table.remove(self._DynamicSalvageQueue, 1) + if group then _msgGroup(group, 'Oldest salvage zone already retired.') end + end +end + +-- Menu: Show active salvage zones +function CTLD:ShowActiveSalvageZones(group) + local cfg = self.Config.SlingLoadSalvage + if not cfg or not cfg.Enabled then return end + + local activeZones = {} + for _, zone in ipairs(self.SalvageDropZones or {}) do + local zoneName = zone:GetName() + if self._ZoneActive.SalvageDrop[zoneName] ~= false then + local zoneDef = self._ZoneDefs.SalvageDropZones[zoneName] + if zoneDef and zoneDef.side == self.Side then + table.insert(activeZones, zoneName) + end + end + end + + if #activeZones == 0 then + _msgGroup(group, 'No active Salvage Collection Zones configured.') + else + local msg = 'Active Salvage Collection Zones:\n' .. table.concat(activeZones, '\n') + _msgGroup(group, msg) + end +end + +-- Menu: Show nearest salvage crate vectors +function CTLD:ShowNearestSalvageCrate(group) + local cfg = self.Config.SlingLoadSalvage + if not cfg or not cfg.Enabled then return end + + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + + local pos = unit:GetPointVec3() + local here = { x = pos.x, z = pos.z } + + local nearestName, nearestMeta, nearestDist = nil, nil, math.huge + for crateName, meta in pairs(CTLD._salvageCrates) do + if meta.side == self.Side then + local dx = meta.position.x - here.x + local dz = meta.position.z - here.z + local dist = math.sqrt(dx*dx + dz*dz) + if dist < nearestDist then + nearestDist = dist + nearestName = crateName + nearestMeta = meta + end + end + end + + if not nearestName then + local msg = self.Messages.slingload_salvage_no_crates or 'No active salvage crates available.' + _msgGroup(group, msg) + return + end + + local brg = _bearingDeg(here, nearestMeta.position) + local isMetric = _getPlayerIsMetric(unit) + local rng, rngU = _fmtRange(nearestDist, isMetric) + + local msg = _fmtTemplate(self.Messages.slingload_salvage_vectors, { + id = nearestName, + brg = brg, + rng = rng, + rng_u = rngU, + weight = nearestMeta.weight, + reward = nearestMeta.rewardValue, + }) + _msgGroup(group, msg) +end + +-- #endregion SlingLoadSalvage + +-- #endregion Public helpers + +-- ========================= +-- Return factory +-- ========================= +-- #region Export +_MOOSE_CTLD = CTLD +return CTLD +-- #endregion Export + + diff --git a/Moose_CTLD_FAC.lua b/Moose_CTLD_FAC.lua new file mode 100644 index 0000000..f6b00f8 --- /dev/null +++ b/Moose_CTLD_FAC.lua @@ -0,0 +1,1756 @@ +-- Moose_CTLD_FAC.lua +--[[ +Full-featured FAC/RECCE module (FAC2 parity) for pure-MOOSE CTLD, without MIST +========================================================================== +Dependencies: MOOSE (Moose.lua) and DCS core. No MIST required. + +Capabilities +- AFAC/RECCE auto-detect (by group name or unit type) on Birth; per-group F10 menu +- Auto-lase (laser + IR) using DCS Spot API; configurable marker type/color; per-FAC laser code +- Manual target workflow: scan nearby, list top 10 (prioritize AA/SAM), select one, multi-strike helper +- RECCE sweeps: LoS-based scan; adds map marks with DMS/MGRS/alt/heading/speed; stores target list +- Fires & strikes: Artillery, Naval guns, Bombers/Fighters; HE/illum/mortar, guided multi-task combos +- Carpet/TALD: via menu or map marks (CBRQT/TDRQT/AttackAz ) +- Event handling: Map marks (tasking), Shots (re-task), periodic schedulers (menus, status, AI spotter) + +Quick start +1) Load order: Moose.lua -> Moose_CTLD.lua -> Moose_CTLD_FAC.lua +2) In mission init: local fac = _MOOSE_CTLD_FAC:New(ctld, { CoalitionSide = coalition.side.BLUE }) +3) Put players in groups named with AFAC/RECON/RECCE (or use configured aircraft types) +4) Use F10 FAC/RECCE: Auto Laze ON, Scan, Select Target, Artillery, etc. + +Design notes +- This module aims to match FAC2 behaviors using DCS+MOOSE equivalents; some heuristics (e.g., naval ranges) + are conservative approximations to avoid silent failures. +]] + +if not _G.BASE then + env.info('[Moose_CTLD_FAC] Moose (BASE) not detected. Ensure Moose.lua is loaded before this script.') +end + +local FAC = {} +FAC.__index = FAC +FAC.Version = '1.0.1' + +local LOG_NONE = 0 +local LOG_ERROR = 1 +local LOG_INFO = 2 +local LOG_VERBOSE = 3 +local LOG_DEBUG = 4 + +local _logLevelLabels = { + [LOG_ERROR] = 'ERROR', + [LOG_INFO] = 'INFO', + [LOG_VERBOSE] = 'VERBOSE', + [LOG_DEBUG] = 'DEBUG', +} + +-- Safe deep copy: prefer MOOSE UTILS.DeepCopy when available; fallback to Lua implementation +local function _deepcopy_fallback(obj, seen) + if type(obj) ~= 'table' then return obj end + seen = seen or {} + if seen[obj] then return seen[obj] end + local res = {} + seen[obj] = res + for k, v in pairs(obj) do + res[_deepcopy_fallback(k, seen)] = _deepcopy_fallback(v, seen) + end + local mt = getmetatable(obj) + if mt then setmetatable(res, mt) end + return res +end + +local function DeepCopy(obj) + if _G.UTILS and type(UTILS.DeepCopy) == 'function' then + return UTILS.DeepCopy(obj) + end + return _deepcopy_fallback(obj) +end + +-- Deep-merge src into dst (recursively). Arrays/lists in src replace dst. +local function DeepMerge(dst, src) + if type(dst) ~= 'table' or type(src) ~= 'table' then return src end + for k, v in pairs(src) do + if type(v) == 'table' then + local isArray = (rawget(v, 1) ~= nil) + if isArray then + dst[k] = DeepCopy(v) + else + dst[k] = DeepMerge(dst[k] or {}, v) + end + else + dst[k] = v + end + end + return dst +end + +-- #region Config +-- Configuration for FAC behavior and UI. Adjust defaults here or pass overrides to :New(). +FAC.Config = { + CoalitionSide = coalition.side.BLUE, + UseGroupMenus = true, + CreateMenuAtMissionStart = false, -- if true with UseGroupMenus=true, creates empty root menu at mission start to reserve F10 position + RootMenuName = 'FAC/RECCE', -- Name for the root F10 menu. Note: Menu ordering depends on script load order in mission editor. + MenuAnnounceCooldown = 45, -- seconds to wait before repeating the "menu ready" message for the same group + MenuInactiveGrace = 30, -- seconds to keep menus alive after the last player disappears (prevents thrash during slot swaps) + LogLevel = nil, -- nil inherits CTLD.LogLevel; falls back to INFO when standalone + + -- Visuals / marking + FAC_maxDistance = 18520, -- FAC LoS search distance (m) + FAC_smokeOn_RED = true, + FAC_smokeOn_BLUE = true, + FAC_smokeColour_RED = trigger.smokeColor.Blue, + FAC_smokeColour_BLUE = trigger.smokeColor.Red, + MarkerDefault = 'FLARES', -- 'FLARES' | 'SMOKE' + + FAC_location = true, -- include coords in messages + FAC_lock = 'all', -- 'vehicle' | 'troop' | 'all' + FAC_laser_codes = { '1688','1677','1666','1113','1115','1111' }, + + fireMissionRounds = 24, -- default shells per call + illumHeight = 500, -- illumination height + facOffsetDist = 5000, -- offset aimpoint for mortars + + -- Platform type hints (names or types) + facACTypes = { 'SA342L','UH-1H','Mi-8MTV2','SA342M','SA342Minigun', 'UH-60L', 'CH-47F' }, + artyDirectorTypes = { 'Soldier M249','Paratrooper AKS-74','Soldier M4' }, + + -- RECCE scan + RecceScanRadius = 40000, + MinReportSeparation = 400, + + -- Arty tasking + Arty = { + Enabled = true, + }, +} +-- #endregion Config + +-- #region State +-- Internal state tracking for FACs, targets, menus, and tasking +FAC._ctld = nil +FAC._menus = {} -- [groupName] = { root = MENU_GROUP, ... } +FAC._menuAnnouncements = {} -- [groupName] = last announcement timestamp (seconds) +FAC._menuLastSeen = {} -- [groupName] = last time the group was confirmed active +FAC._facUnits = {} -- [unitName] = { name, side } +FAC._facOnStation = {} -- [unitName] = true|nil +FAC._laserCodes = {} -- [unitName] = '1688' +FAC._markerType = {} -- [unitName] = 'FLARES'|'SMOKE' +FAC._markerColor = {} -- [unitName] = smokeColor (0..4) +FAC._currentTargets = {} -- [unitName] = { name, unitType, unitId } +FAC._laserSpots = {} -- [unitName] = { ir=Spot, laser=Spot } +FAC._smokeMarks = {} -- [targetName] = nextTime +FAC._manualLists = {} -- [unitName] = { Unit[] } + +FAC._facPilotNames = {} -- dynamic add on Birth if name contains AFAC/RECON/RECCE or type in facACTypes +FAC._reccePilotNames = {} +FAC._artDirectNames = {} + +-- Laser code reservation per coalition side: [side] = { [code] = unitName } +FAC._reservedCodes = {} + +-- Coalition-level admin/help menu handle per side +FAC._coalitionMenus = {} + +FAC._ArtyTasked = {} -- [groupName] = { tasked=int, timeTasked=time, tgt=Unit|nil, requestor=string|nil } +FAC._RECCETasked = {} -- [unitName] = 1 when busy + +-- Map mark debouncing +FAC._lastMarks = {} -- [zoneName] = { x,z } +-- #endregion State + +-- #region Utilities (no MIST) +-- Helpers for logging, vectors, coordinate formatting, headings, classification, etc. +local function _currentLogLevel(self) + if not self then return LOG_INFO end + local lvl = self.Config and self.Config.LogLevel + if lvl == nil and self._ctld and self._ctld.Config then + lvl = self._ctld.Config.LogLevel + end + return lvl or LOG_INFO +end + +local function _log(self, level, msg) + if level <= LOG_NONE then return end + if level > _currentLogLevel(self) then return end + local label = _logLevelLabels[level] or tostring(level) + env.info(string.format('[FAC][%s] %s', label, tostring(msg))) +end + +local function _dbg(self, msg) + _log(self, LOG_DEBUG, msg) +end + +local function _logInfo(self, msg) + _log(self, LOG_INFO, msg) +end + +local function _in(list, value) + if not list then return false end + for _,v in ipairs(list) do if v == value then return true end end + return false +end + +local function _removeKey(tbl, key) + if tbl then tbl[key] = nil end +end + +local function _vec3(p) + return { x = p.x, y = p.y or land.getHeight({ x = p.x, y = p.z or p.y or 0 }), z = p.z or p.y } +end + +local function _llToDMS(lat, lon) + -- Convert lat/lon in degrees to DMS string (e.g., 33Β°30'12.34"N 036Β°12'34.56"E) + local function dms(v, isLat) + local hemi = isLat and (v >= 0 and 'N' or 'S') or (v >= 0 and 'E' or 'W') + v = math.abs(v) + local d = math.floor(v) + local mFloat = (v - d) * 60 + local m = math.floor(mFloat) + local s = (mFloat - m) * 60 + return string.format('%dΒ°%02d\'%05.2f"%s', d, m, s, hemi) + end + return dms(lat, true)..' '..dms(lon, false) +end + +local function _mgrsToString(m) + -- Format DCS coord.LLtoMGRS table to "XXYY 00000 00000"; fallback to key=value if shape differs + if not m then return '' end + -- DCS coord.LLtoMGRS returns table like: { UTMZone=XX, MGRSDigraph=YY, Easting=nnnnn, Northing=nnnnnn } + if m.UTMZone and m.MGRSDigraph and m.Easting and m.Northing then + return string.format('%s%s %05d %05d', tostring(m.UTMZone), tostring(m.MGRSDigraph), math.floor(m.Easting+0.5), math.floor(m.Northing+0.5)) + end + -- fallback stringify + local t = {} + for k,v in pairs(m) do table.insert(t, tostring(k)..'='..tostring(v)) end + return table.concat(t, ',') +end + +local function _bearingDeg(from, to) + local dx = (to.x - from.x) + local dz = (to.z - from.z) + local ang = math.deg(math.atan2(dx, dz)) + if ang < 0 then ang = ang + 360 end + return math.floor(ang + 0.5) +end + +local function _distance(a, b) + local dx = a.x - b.x + local dz = a.z - b.z + return math.sqrt(dx*dx + dz*dz) +end + +local function _getHeading(unit) + -- Approximate true heading using unit orientation + true north correction + local pos = unit:getPosition() + if pos then + local heading = math.atan2(pos.x.z, pos.x.x) + -- add true-north correction + local p = pos.p + local lat, lon = coord.LOtoLL(p) + local northPos = coord.LLtoLO(lat + 1, lon) + heading = heading + math.atan2(northPos.z - p.z, northPos.x - p.x) + if heading < 0 then heading = heading + 2*math.pi end + return heading + end + return 0 +end + +local function _formatUnitGeo(u) + -- Extracts geo/status for a unit: DMS/MGRS, altitude (m/ft), heading (deg), speed (mph) + local p = u:getPosition().p + local lat, lon = coord.LOtoLL(p) + local dms = _llToDMS(lat, lon) + local mgrs = _mgrsToString(coord.LLtoMGRS(lat, lon)) + local altM = math.floor(p.y) + local altF = math.floor(p.y * 3.28084) + local vel = u:getVelocity() or {x=0,y=0,z=0} + local spd = math.sqrt((vel.x or 0)^2 + (vel.z or 0)^2) + local mph = math.floor(spd * 2) -- approx + local hdg = math.floor(_getHeading(u) * 180/math.pi) + return dms, mgrs, altM, altF, hdg, mph +end + +local function _isInfantry(u) + -- Heuristic: treat named manpads/mortars as infantry + local tn = string.lower(u:getTypeName() or '') + return tn:find('infantry') or tn:find('paratrooper') or tn:find('stinger') or tn:find('manpad') or tn:find('mortar') +end + +local function _isVehicle(u) + return not _isInfantry(u) +end + +local function _isArtilleryUnit(u) + -- Detect tube/MLRS artillery; include mortar/howitzer/SPG by type name to cover units lacking attributes + if u:hasAttribute('Artillery') or u:hasAttribute('MLRS') then return true end + local tn = string.lower(u:getTypeName() or '') + if tn:find('mortar') or tn:find('2b11') or tn:find('m252') then return true end + if tn:find('howitzer') or tn:find('m109') or tn:find('paladin') or tn:find('2s19') or tn:find('msta') or tn:find('2s3') or tn:find('akatsiya') then return true end + if tn:find('mlrs') or tn:find('m270') or tn:find('bm%-21') or tn:find('grad') then return true end + return false +end + +local function _isNavalUnit(u) + -- Use DCS attributes to detect surface ships with guns capability + return u:hasAttribute('Naval') or u:hasAttribute('Cruisers') or u:hasAttribute('Frigates') or u:hasAttribute('Corvettes') or u:hasAttribute('Landing Ships') +end + +local function _isBomberOrFighter(u) + -- Detect fixed-wing strike-capable aircraft (for carpet/guided tasks) + return u:hasAttribute('Strategic bombers') or u:hasAttribute('Bombers') or u:hasAttribute('Multirole fighters') +end + +local function _artyMaxRangeForUnit(u) + -- Heuristic max range (meters) by unit type name; conservative to avoid "never fires" when out of range + local tn = string.lower(u:getTypeName() or '') + if tn:find('mortar') or tn:find('2b11') or tn:find('m252') then return 6000 end + if tn:find('mlrs') or tn:find('m270') or tn:find('bm%-21') or tn:find('grad') then return 30000 end + if tn:find('howitzer') or tn:find('m109') or tn:find('paladin') or tn:find('2s19') or tn:find('msta') or tn:find('2s3') or tn:find('akatsiya') then return 20000 end + -- generic tube artillery fallback + return 12000 +end + +local function _coalitionOpposite(side) + return (side == coalition.side.BLUE) and coalition.side.RED or coalition.side.BLUE +end +-- #endregion Utilities (no MIST) + +-- #region Construction +-- Create a new FAC module instance. Optionally pass your CTLD instance and a config override table. +function FAC:New(ctld, cfg) + local o = setmetatable({}, self) + o._ctld = ctld + o.Config = DeepCopy(FAC.Config) + if cfg then o.Config = DeepMerge(o.Config, cfg) end + o.Side = o.Config.CoalitionSide + o._zones = {} + + o:_wireBirth() + o:_wireMarks() + o:_wireShots() + + -- Schedulers for menus/status/lase loop/AI spotters + o._schedMenus = SCHEDULER:New(nil, function() o:_ensureMenus() end, {}, 5, 10) + o._schedStatus = SCHEDULER:New(nil, function() o:_checkFacStatus() end, {}, 5, 1.0) + o._schedAI = SCHEDULER:New(nil, function() o:_artyAICall() end, {}, 10, 30) + + -- Create placeholder menu at mission start to reserve F10 position if requested + if o.Config.UseGroupMenus and o.Config.CreateMenuAtMissionStart then + o.PlaceholderMenu = MENU_COALITION:New(o.Side, o.Config.RootMenuName or 'FAC/RECCE') + MENU_COALITION_COMMAND:New(o.Side, 'Spawn in a FAC/RECCE aircraft to see options', o.PlaceholderMenu, function() + MESSAGE:New('FAC/RECCE menus will appear when you spawn in an appropriate aircraft.', 10):ToCoalition(o.Side) + end) + end + + -- Only create coalition-level Admin/Help when not using per-group menus + if not o.Config.UseGroupMenus then + o:_ensureCoalitionMenu() + end + + return o +end +-- #endregion Construction + +-- #region Event wiring +-- Wire Birth (to detect AFAC/RECCE/Artillery Director), Map Mark handlers (tasking), and Shot events (re-tasking) +function FAC:_wireBirth() + local h = EVENTHANDLER:New() + h:HandleEvent(EVENTS.Birth) + h:HandleEvent(EVENTS.Dead) + h:HandleEvent(EVENTS.Crash) + h:HandleEvent(EVENTS.PlayerLeaveUnit) + local selfref = self + function h:OnEventBirth(e) + local unit = e.IniUnit + if not unit or not unit:IsAlive() then return end + if unit:GetCoalition() ~= selfref.Side then return end + -- classify as AFAC / RECCE / Arty Director + local name = unit:GetName() + local tname = unit:GetTypeName() + local g = unit:GetGroup() + if not g then return end + local gname = g:GetName() or name + + local isAFAC = (gname:find('AFAC') or gname:find('RECON')) or _in(selfref.Config.facACTypes, tname) + local isRECCE = (gname:find('RECCE') or gname:find('RECON')) or _in(selfref.Config.facACTypes, tname) + local isAD = _in(selfref.Config.artyDirectorTypes, tname) + + if isAFAC then selfref._facPilotNames[name] = true end + if isRECCE then selfref._reccePilotNames[name] = true end + if isAD then selfref._artDirectNames[name] = true end + end + + local function handleDeparture(eventData) + if not eventData then return end + local unit = eventData.IniUnit or eventData.IniDCSUnit + local name = eventData.IniUnitName or eventData.IniDCSUnitName + if unit then + selfref:_handleUnitDeparture(unit) + elseif name then + selfref:_handleUnitDeparture(name) + end + end + + function h:OnEventDead(e) + handleDeparture(e) + end + + function h:OnEventCrash(e) + handleDeparture(e) + end + + function h:OnEventPlayerLeaveUnit(e) + handleDeparture(e) + end + self._hBirth = h +end + +function FAC:_wireMarks() + -- Map mark handlers for Carpet Bomb/TALD and RECCE area tasks + local selfref = self + self._markEH = {} + function self._markEH:onEvent(e) + if not e or not e.id then return end + if e.id == world.event.S_EVENT_MARK_ADDED then + if type(e.text) == 'string' then + if e.text:find('CBRQT') or e.text:find('TDRQT') or e.text:find('AttackAz') then + local az = tonumber((e.text or ''):match('(%d+)%s*$')) + local mode = e.text:find('TDRQT') and 'TALD' or 'CARPET' + selfref:_executeCarpetOrTALD(e.pos, e.coalition, mode, az) + trigger.action.removeMark(e.idx) + elseif e.text:find('RECCE') then + selfref:_executeRecceMark(e.pos, e.coalition) + trigger.action.removeMark(e.idx) + end + end + end + end + world.addEventHandler(self._markEH) +end + +function FAC:_wireShots() + local selfref = self + self._shotEH = {} + function self._shotEH:onEvent(e) + if e.id == world.event.S_EVENT_SHOT and e.initiator then + local g = Unit.getGroup(e.initiator) + if not g then return end + local gname = g:getName() + local T = selfref._ArtyTasked[gname] + if T then + T.tasked = math.max(0, (T.tasked or 0) - 1) + if T.tasked == 0 then + local d = g:getUnit(1):getDesc() + trigger.action.outTextForCoalition(g:getCoalition(), (d and d.displayName or gname)..' Task Group available for re-tasking', 10) + selfref._ArtyTasked[gname] = nil + end + end + end + end + world.addEventHandler(self._shotEH) +end +-- #endregion Event wiring + +-- #region Housekeeping +function FAC:_safeRemoveMenu(menu, reason) + if not menu or type(menu) ~= 'table' then return end + + local shouldRemove = true + if MENU_INDEX and menu.Group and menu.MenuText then + local okPath, path = pcall(function() + return MENU_INDEX:ParentPath(menu.ParentMenu, menu.MenuText) + end) + if okPath and path then + local okHas, registered = pcall(function() + return MENU_INDEX:HasGroupMenu(menu.Group, path) + end) + if not okHas or registered ~= menu then + shouldRemove = false + end + else + shouldRemove = false + end + end + + if shouldRemove and menu.Remove then + local ok, err = pcall(function() menu:Remove() end) + if not ok and err then + _log(self, LOG_VERBOSE, string.format('Failed removing menu (%s): %s', tostring(reason or menu.MenuText or 'unknown'), tostring(err))) + end + elseif not shouldRemove then + _log(self, LOG_DEBUG, string.format('Skip stale menu removal (%s)', tostring(reason or menu.MenuText or 'unknown'))) + end + + if menu.Destroy then pcall(function() menu:Destroy() end) end + if menu.Delete then pcall(function() menu:Delete() end) end +end + +function FAC:_cleanupMenuForGroup(gname) + local menuSet = self._menus[gname] + if not menuSet then return end + for _,menu in pairs(menuSet) do + self:_safeRemoveMenu(menu, gname) + end + self._menus[gname] = nil + self._menuLastSeen[gname] = nil +end + +function FAC:_pruneMenus(active) + local now = (timer and timer.getTime and timer.getTime()) or 0 + local grace = self.Config.MenuInactiveGrace or 0 + for gname,_ in pairs(self._menus) do + if active[gname] then + if now > 0 then + self._menuLastSeen[gname] = now + end + else + if now > 0 then + local last = self._menuLastSeen[gname] + local shouldRemove = true + if type(last) == 'number' then + shouldRemove = (grace <= 0) or ((now - last) >= grace) + elseif last ~= nil then + -- Non-number sentinel: treat as recently seen. + shouldRemove = false + end + if shouldRemove then + self:_cleanupMenuForGroup(gname) + end + end + end + end +end + +function FAC:_pruneManualLists() + for uname,list in pairs(self._manualLists) do + local alive = {} + for _,unit in ipairs(list) do + if unit and unit.isExist and unit:isExist() and unit:getLife() > 0 then + alive[#alive+1] = unit + end + end + self._manualLists[uname] = (#alive > 0) and alive or nil + end +end + +function FAC:_pruneSmokeMarks() + for targetName,_ in pairs(self._smokeMarks) do + local target = Unit.getByName(targetName) + if not target or not target:isActive() or target:getLife() <= 1 then + self._smokeMarks[targetName] = nil + end + end +end + +function FAC:_pruneArtyTasked() + local now = timer.getTime() + for gname,info in pairs(self._ArtyTasked) do + local g = Group.getByName(gname) + local staleTime = info and info.timeTasked and (now - info.timeTasked > 900) + local noTasks = not info or (info.tasked or 0) <= 0 + if not g or not g:isExist() or staleTime or noTasks then + self._ArtyTasked[gname] = nil + end + end +end + +function FAC:_unregisterPilotName(uname) + _removeKey(self._facPilotNames, uname) + _removeKey(self._reccePilotNames, uname) + _removeKey(self._artDirectNames, uname) +end + +function FAC:_handleUnitDeparture(unitOrName) + local uname + if type(unitOrName) == 'string' then + uname = unitOrName + elseif unitOrName then + if unitOrName.GetName then + uname = unitOrName:GetName() + elseif unitOrName.getName then + uname = unitOrName:getName() + end + end + if not uname then return end + self:_cleanupFac(uname) +end +-- #endregion Housekeeping + +-- #region Zone-based RECCE (optional) +-- Add a named or coordinate-based zone for periodic DETECTION_AREAS scans +function FAC:AddRecceZone(def) + local z + if def.name then z = ZONE:FindByName(def.name) end + if not z and def.coord then + local r = def.radius or 5000 + local v2 = (VECTOR2 and VECTOR2.New) and VECTOR2:New(def.coord.x, def.coord.z) or { x = def.coord.x, y = def.coord.z } + z = ZONE_RADIUS:New(def.name or ('FAC_ZONE_'..math.random(10000,99999)), v2, r) + end + if not z then return nil end + local enemySide = _coalitionOpposite(self.Side) + local setEnemies = SET_GROUP:New():FilterCoalitions(enemySide):FilterCategoryGround():FilterStart() + local det = DETECTION_AREAS:New(setEnemies, z:GetRadius()) + det:BoundZone(z) + local Z = { Zone = z, Name = z:GetName(), Detector = det, LastScan = 0 } + table.insert(self._zones, Z) + return Z +end + +function FAC:RunZones(interval) + -- Start/Restart periodic scans of configured recce zones + if self._zoneSched then self._zoneSched:Stop() end + self._zoneSched = SCHEDULER:New(nil, function() + for _,Z in ipairs(self._zones) do self:_scanZone(Z) end + end, {}, 5, interval or 20) +end + +-- Backwards-compatible Run() entry point used by init scripts +function FAC:Run() + -- Schedulers for menus/status are started in New(); here we can kick off zone scans if any zones exist. + if #self._zones > 0 then self:RunZones() end + return self +end + +function FAC:_scanZone(Z) + -- Perform one detection update and mark contacts, with spatial de-duplication + Z.Detector:DetectionUpdate() + local reps = Z.Detector:GetDetectedItems() or {} + for _,rep in ipairs(reps) do + local pos2 = rep.point + if pos2 then + local point = { x = pos2.x, z = pos2.y } + local last = self._lastMarks[Z.Name] + if not last or _distance(point, last) >= (self.Config.MinReportSeparation or 400) then + self._lastMarks[Z.Name] = { x = point.x, z = point.z } + self:_markPoint(nil, point, rep.type or 'Contact') + end + end + end +end +-- #endregion Zone-based RECCE (optional) + +-- #region Menus +-- Ensure per-group menus exist for active coalition player groups +function FAC:_unitEligibleForFac(unit) + if not unit then return false end + local uname = (unit.GetName and unit:GetName()) or (unit.getName and unit:getName()) + if uname then + if self._facPilotNames[uname] or self._reccePilotNames[uname] or self._artDirectNames[uname] then + return true + end + end + + local tname = (unit.GetTypeName and unit:GetTypeName()) or (unit.getTypeName and unit:getTypeName()) + if tname then + if _in(self.Config.facACTypes, tname) or _in(self.Config.artyDirectorTypes, tname) then + return true + end + end + + local grp = (unit.GetGroup and unit:GetGroup()) or (unit.getGroup and unit:getGroup()) + local gname = grp and ((grp.GetName and grp:GetName()) or (grp.getName and grp:getName())) or nil + if type(gname) == 'string' then + if gname:find('AFAC') or gname:find('RECCE') or gname:find('RECON') then + return true + end + end + + return false +end + +function FAC:_groupEligibleForFacMenus(group) + if not group or not group:IsAlive() then return false end + local units = group:GetUnits() + if type(units) ~= 'table' then + local single = group:GetUnit(1) + if single then + return self:_unitEligibleForFac(single) + end + return false + end + for _,u in ipairs(units) do + if self:_unitEligibleForFac(u) then + return true + end + end + return false +end + +function FAC:_ensureMenus() + if not self.Config.UseGroupMenus then return end + local players = coalition.getPlayers(self.Side) or {} + local active = {} + local now = (timer and timer.getTime and timer.getTime()) or 0 + for _,u in ipairs(players) do + local dg = u:getGroup() + if dg then + local gname = dg:getName() + local mg = GROUP:FindByName(gname) + if mg then + local eligible = self:_groupEligibleForFacMenus(mg) + active[gname] = true + if now > 0 then + self._menuLastSeen[gname] = now + else + self._menuLastSeen[gname] = self._menuLastSeen[gname] or 0 + end + local existing = self._menus[gname] + local needsRefresh = not existing or (existing.role == 'fac' and not eligible) or (existing.role == 'observer' and eligible) + if needsRefresh then + if existing then + self:_cleanupMenuForGroup(gname) + end + local menuSet + if eligible then + menuSet = self:_buildGroupMenus(mg) + if menuSet then menuSet.role = 'fac' end + else + menuSet = self:_buildObserverMenu(mg) + if menuSet then menuSet.role = 'observer' end + end + if menuSet then + self._menus[gname] = menuSet + self:_announceMenuReady(mg) + else + _log(self, LOG_ERROR, string.format('FAC menu creation returned nil for group %s', tostring(gname))) + end + end + end + end + end + self:_pruneMenus(active) +end + +function FAC:_ensureCoalitionMenu() + if self.Config.UseGroupMenus then return end + -- Create a coalition-level Admin/Help menu, nested under a FAC parent (not at F10 root) + if self._coalitionMenus[self.Side] then return end + self._coalitionRoot = self._coalitionRoot or {} + -- Create or reuse the coalition-level parent menu for FAC + self._coalitionRoot[self.Side] = self._coalitionRoot[self.Side] or MENU_COALITION:New(self.Side, 'FAC/RECCE Admin') + local parent = self._coalitionRoot[self.Side] + local root = MENU_COALITION:New(self.Side, 'Admin/Help', parent) + MENU_COALITION_COMMAND:New(self.Side, 'Show FAC Codes In Use', root, function() + self:_showCodesCoalition() + end) + MENU_COALITION_COMMAND:New(self.Side, 'Set FAC Log Level: DEBUG', root, function() + self.Config.LogLevel = LOG_DEBUG + _logInfo(self, string.format('Log level set to DEBUG via coalition admin menu (%s)', tostring(self.Side))) + trigger.action.outTextForCoalition(self.Side, 'FAC log level set to DEBUG', 8) + end) + MENU_COALITION_COMMAND:New(self.Side, 'Set FAC Log Level: INFO', root, function() + self.Config.LogLevel = LOG_INFO + _logInfo(self, string.format('Log level set to INFO via coalition admin menu (%s)', tostring(self.Side))) + trigger.action.outTextForCoalition(self.Side, 'FAC log level set to INFO', 8) + end) + MENU_COALITION_COMMAND:New(self.Side, 'Inherit CTLD Log Level', root, function() + self.Config.LogLevel = nil + _logInfo(self, string.format('Log level inheritance restored via coalition admin menu (%s)', tostring(self.Side))) + trigger.action.outTextForCoalition(self.Side, 'FAC log level now inherits CTLD setting', 8) + end) + self._coalitionMenus[self.Side] = root +end + +function FAC:_announceMenuReady(group) + if not group or not group.GetName then return end + local gname = group:GetName() + if not gname or gname == '' then return end + + self._menuAnnouncements = self._menuAnnouncements or {} + local now = (timer and timer.getTime and timer.getTime()) or 0 + local last = self._menuAnnouncements[gname] + local cooldown = self.Config.MenuAnnounceCooldown or 45 + + local shouldAnnounce = false + + if not last then + shouldAnnounce = true + elseif type(last) == 'number' and now > 0 then + shouldAnnounce = (now - last) >= cooldown + elseif type(last) ~= 'number' then + shouldAnnounce = true + end + + if shouldAnnounce then + MESSAGE:New('FAC/RECCE menu ready (F10)', 10):ToGroup(group) + if now > 0 then + self._menuAnnouncements[gname] = now + else + self._menuAnnouncements[gname] = true + end + elseif (not last or type(last) ~= 'number') and now > 0 then + -- Backfill numeric timestamp once timer API becomes available + self._menuAnnouncements[gname] = now + end +end + +function FAC:_buildGroupMenus(group) + -- Build the entire FAC/RECCE menu tree for a MOOSE GROUP + if not group or not group:IsAlive() then return nil end + local gname = group:GetName() + local root = MENU_GROUP:New(group, self.Config.RootMenuName or 'FAC/RECCE') + if not root then + _log(self, LOG_ERROR, string.format('Failed to create FAC menu for group %s (MENU_GROUP:New returned nil)', tostring(gname))) + return nil + end + _log(self, LOG_INFO, string.format('FAC menu built for group %s', tostring(gname))) + -- Safe menu command helper: wraps callbacks to avoid silent errors and report to group + local function CMD(title, parent, cb) + return MENU_GROUP_COMMAND:New(group, title, parent, function() + local ok, err = pcall(cb) + if not ok then + env.info('[FAC] Menu error: '..tostring(err)) + MESSAGE:New('FAC menu error: '..tostring(err), 8):ToGroup(group) + end + end) + end + + -- Status & On-Station + CMD('FAC: Status', root, function() self:_showFacStatus(group) end) + + local tgtRoot = MENU_GROUP:New(group, 'Targeting Mode', root) + CMD('Auto Laze ON', tgtRoot, function() self:_setOnStation(group, true) end) + CMD('Auto Laze OFF', tgtRoot, function() self:_setOnStation(group, nil) end) + CMD('Scan for Close Targets', tgtRoot, function() self:_scanManualList(group) end) + local selRoot = MENU_GROUP:New(group, 'Select Found Target', tgtRoot) + for i=1,10 do + CMD('Target '..i, selRoot, function() self:_setManualTarget(group, i) end) + end + CMD('Call arty on all manual targets', tgtRoot, function() self:_multiStrike(group) end) + + -- Laser codes + local lzr = MENU_GROUP:New(group, 'Laser Code', root) + for _,code in ipairs(self.Config.FAC_laser_codes) do + CMD(code, lzr, function() self:_setLaserCode(group, code) end) + end + local cust = MENU_GROUP:New(group, 'Custom Code', lzr) + local function addDigitMenu(d, max) + local m = MENU_GROUP:New(group, 'Digit '..d, cust) + for n=1,max do + CMD(tostring(n), m, function() self:_setLaserDigit(group, d, n) end) + end + end + addDigitMenu(1,1); addDigitMenu(2,6); addDigitMenu(3,8); addDigitMenu(4,8) + + -- Marker + local mk = MENU_GROUP:New(group, 'Marker', root) + local sm = MENU_GROUP:New(group, 'Smoke', mk) + local fl = MENU_GROUP:New(group, 'Flares', mk) + local function setM(typeName, color) + return function() self:_setMarker(group, typeName, color) end + end + CMD('GREEN', sm, setM('SMOKE', trigger.smokeColor.Green)) + CMD('RED', sm, setM('SMOKE', trigger.smokeColor.Red)) + CMD('WHITE', sm, setM('SMOKE', trigger.smokeColor.White)) + CMD('ORANGE', sm, setM('SMOKE', trigger.smokeColor.Orange)) + CMD('BLUE', sm, setM('SMOKE', trigger.smokeColor.Blue)) + CMD('GREEN', fl, setM('FLARES', trigger.smokeColor.Green)) + CMD('WHITE', fl, setM('FLARES', trigger.smokeColor.White)) + CMD('ORANGE', fl, setM('FLARES', trigger.smokeColor.Orange)) + CMD('Map Marker current target', mk, function() self:_setMapMarker(group) end) + + -- Artillery + local arty = MENU_GROUP:New(group, 'Artillery', root) + CMD('Check available arty', arty, function() self:_checkArty(group) end) + CMD('Call Fire Mission (HE)', arty, function() self:_callFireMission(group, self.Config.fireMissionRounds, 0) end) + CMD('Call Illumination', arty, function() self:_callFireMission(group, self.Config.fireMissionRounds, 1) end) + CMD('Call Mortar Only (anti-infantry)', arty, function() self:_callFireMission(group, self.Config.fireMissionRounds, 2) end) + CMD('Call Heavy Only (no smart)', arty, function() self:_callFireMission(group, 10, 3) end) + + local air = MENU_GROUP:New(group, 'Air/Naval', arty) + CMD('Single Target (GPS/Guided)', air, function() self:_callFireMission(group, 1, 4) end) + CMD('Multi Target (Guided only)', air, function() self:_callFireMissionMulti(group, 1, 4) end) + CMD('Carpet Bomb (attack heading = aircraft heading)', air, function() self:_callCarpetOnCurrent(group) end) + + -- RECCE + CMD('RECCE: Sweep & Mark', root, function() self:_recceDetect(group) end) + + -- Admin/Help (nested inside FAC/RECCE group menu when using group menus) + local admin = MENU_GROUP:New(group, 'Admin/Help', root) + CMD('Show FAC Codes In Use', admin, function() self:_showCodesCoalition() end) + CMD('Set FAC Log Level: DEBUG', admin, function() + self.Config.LogLevel = LOG_DEBUG + _logInfo(self, string.format('Log level set to DEBUG via group admin menu (%s)', group:GetName())) + MESSAGE:New('FAC log level set to DEBUG', 8):ToGroup(group) + end) + CMD('Set FAC Log Level: INFO', admin, function() + self.Config.LogLevel = LOG_INFO + _logInfo(self, string.format('Log level set to INFO via group admin menu (%s)', group:GetName())) + MESSAGE:New('FAC log level set to INFO', 8):ToGroup(group) + end) + CMD('Inherit CTLD Log Level', admin, function() + self.Config.LogLevel = nil + _logInfo(self, string.format('Log level inheritance restored via group admin menu (%s)', group:GetName())) + MESSAGE:New('FAC log level now inherits CTLD setting', 8):ToGroup(group) + end) + + -- Log-level controls (mission-maker convenience; per-instance toggle) + local dbg = MENU_GROUP:New(group, 'Log Level', root) + CMD('Set Log Level: DEBUG', dbg, function() + self.Config.LogLevel = LOG_DEBUG + local u = group:GetUnit(1); local who = (u and u:GetName()) or 'Unknown' + _logInfo(self, string.format('Log level set to DEBUG by %s', who)) + MESSAGE:New('FAC log level set to DEBUG', 8):ToGroup(group) + end) + CMD('Set Log Level: INFO', dbg, function() + self.Config.LogLevel = LOG_INFO + local u = group:GetUnit(1); local who = (u and u:GetName()) or 'Unknown' + _logInfo(self, string.format('Log level set to INFO by %s', who)) + MESSAGE:New('FAC log level set to INFO', 8):ToGroup(group) + end) + CMD('Inherit from CTLD', dbg, function() + self.Config.LogLevel = nil + local u = group:GetUnit(1); local who = (u and u:GetName()) or 'Unknown' + _logInfo(self, string.format('Log level inheritance restored by %s', who)) + MESSAGE:New('FAC log level now inherits CTLD setting', 8):ToGroup(group) + end) + return { root = root } +end + +function FAC:_buildObserverMenu(group) + if not group or not group:IsAlive() then return nil end + local gname = group:GetName() + local root = MENU_GROUP:New(group, self.Config.RootMenuName or 'FAC/RECCE') + if not root then + _log(self, LOG_ERROR, string.format('Failed to create observer FAC menu for group %s', tostring(gname))) + return nil + end + + local function CMD(title, cb) + return MENU_GROUP_COMMAND:New(group, title, root, function() + local ok, err = pcall(cb) + if not ok then + env.info('[FAC] Observer menu error: '..tostring(err)) + MESSAGE:New('FAC observer menu error: '..tostring(err), 8):ToGroup(group) + end + end) + end + + CMD('Show Active FAC/RECCE Controllers', function() self:_showFacStatus(group) end) + CMD('Show FAC Codes In Use', function() self:_showCodesCoalition() end) + CMD('FAC/RECCE Help', function() + local types = self.Config.facACTypes or {} + local typeList = (#types > 0) and table.concat(types, ', ') or 'see mission briefing' + + local laserCodes = self.Config.FAC_laser_codes or {'1688'} + local defaultCode = laserCodes[1] or '1688' + local allCodes = table.concat(laserCodes, ', ') + + local maxDist = tostring(self.Config.FAC_maxDistance or 18520) + local rootName = self.Config.RootMenuName or 'FAC/RECCE' + local markerDefault = self.Config.MarkerDefault or 'FLARES' + + local msg = table.concat({ + 'FAC/RECCE Overview:', + '', + '- This module lets certain aircraft act as an airborne JTAC / artillery spotter.', + '- To get the FAC menu, you must be in a group named with AFAC/RECCE/RECON,', + ' or flying one of the approved FAC aircraft types (' .. typeList .. ').', + '', + 'Basic Usage:', + '- Open the F10 radio menu and look for "' .. rootName .. '".', + '- Use "Auto Laze ON" to have the module automatically search for and lase nearby enemy targets.', + '- Use "Scan for Close Targets" then "Select Found Target" to manually pick a target from a list.', + '- Use "RECCE: Sweep & Mark" to scan a larger area and drop map markers on detected contacts.', + '', + 'Laser Codes:', + '- Default FAC laser code: ' .. defaultCode .. '.', + '- Allowed codes: ' .. allCodes .. '.', + '- Use the "Laser Code" submenu to change your code if another FAC is already using it.', + '- The module will try to avoid code conflicts and will notify you if a different code is assigned.', + '', + 'Markers & Smoke:', + '- Default marker type: ' .. markerDefault .. '.', + '- FAC can mark the current target with smoke or flares in different colors.', + '- Use the "Marker" submenu to choose SMOKE or FLARES and a color for your marks.', + '', + 'Range & Line of Sight:', + '- FAC search range is about ' .. maxDist .. ' meters (~10 NM).', + '- Targets must be within line-of-sight; hills and terrain can block detection and lasing.', + '', + 'Artillery & Air Support:', + '- The "Artillery" and "Air/Naval" menus look for AI units on your side that can fire on the target.', + '- If no suitable unit is in range or has ammo, the module will tell you.', + '- Guided/air/naval options require appropriate AI aircraft or ships placed by the mission designer.', + '', + 'If you do not see FAC menus:', + '- Check that your group name contains AFAC/RECCE/RECON, or you are flying a supported FAC aircraft type.', + '- Make sure Moose.lua, Moose_CTLD.lua, and Moose_CTLD_FAC.lua are all loaded in the mission (in that order).', + }, '\n') + + MESSAGE:New(msg, 30):ToGroup(group) + end) + + return { root = root } +end +-- #endregion Menus + +-- #region Status & On-station +function FAC:_facName(unitName) + local u = Unit.getByName(unitName) + if u and u:getPlayerName() then return u:getPlayerName() end + return unitName +end + +function FAC:_showFacStatus(group) + local unit = group:GetUnit(1) + if not unit or not unit:IsAlive() then return end + local side = unit:GetCoalition() + local colorToStr = { [trigger.smokeColor.Green]='GREEN',[trigger.smokeColor.Red]='RED',[trigger.smokeColor.White]='WHITE',[trigger.smokeColor.Orange]='ORANGE',[trigger.smokeColor.Blue]='BLUE' } + local msg = 'FAC STATUS:\n\n' + for uname,_ in pairs(self._facUnits) do + local u = Unit.getByName(uname) + if u and u:getLife()>0 and u:isActive() and u:getCoalition()==side and self._facOnStation[uname] then + local tgt = self._currentTargets[uname] + local lcd = self._laserCodes[uname] or 'UNKNOWN' + local marker = self._markerType[uname] or self.Config.MarkerDefault + local mcol = self._markerColor[uname] + local mcolStr = mcol and (colorToStr[mcol] or tostring(mcol)) or 'WHITE' + if tgt then + local eu = Unit.getByName(tgt.name) + if eu and eu:isActive() and eu:getLife()>0 then + msg = msg .. string.format('%s targeting %s CODE %s %s\nMarked %s %s\n', self:_facName(uname), eu:getTypeName(), lcd, self:_posString(eu), mcolStr, marker) + else + msg = msg .. string.format('%s on-station CODE %s\n', self:_facName(uname), lcd) + end + else + msg = msg .. string.format('%s on-station CODE %s\n', self:_facName(uname), lcd) + end + end + end + if msg == 'FAC STATUS:\n\n' then + msg = 'No Active FACs. Join AFAC/RECON to play as flying JTAC and Artillery Spotter.' + end + trigger.action.outTextForCoalition(side, msg, 20) +end + +function FAC:_posString(u) + -- Render a compact position string for messages + if not self.Config.FAC_location then return '' end + local p = u:getPosition().p + local lat, lon = coord.LOtoLL(p) + local dms = _llToDMS(lat, lon) + local mgrs = _mgrsToString(coord.LLtoMGRS(lat, lon)) + local altM = math.floor(p.y) + local altF = math.floor(p.y*3.28084) + return string.format('@ DMS %s MGRS %s Alt %dm/%dft', dms, mgrs, altM, altF) +end + +function FAC:_setOnStation(group, on) + local u = group:GetUnit(1) + if not u or not u:IsAlive() then return end + if not self:_unitEligibleForFac(u) then + MESSAGE:New('FAC controls unavailable for this aircraft type.', 10):ToGroup(group) + return + end + local uname = u:GetName() + _dbg(self, string.format('Action:SetOnStation unit=%s on=%s', uname, tostring(on and true or false))) + -- init defaults + if not self._laserCodes[uname] then + -- Assign a free code on first-time activation + local code = self:_assignFreeCode(u:GetCoalition(), uname) + self._laserCodes[uname] = code or (self.Config.FAC_laser_codes and self.Config.FAC_laser_codes[1]) or '1688' + end + if not self._markerType[uname] then self._markerType[uname] = self.Config.MarkerDefault end + if not self._facUnits[uname] then self._facUnits[uname] = { name = uname, side = u:GetCoalition() } end + + if not self._facOnStation[uname] and on then + trigger.action.outTextForCoalition(u:GetCoalition(), string.format('[FAC "%s" on-station using CODE %s]', self:_facName(uname), self._laserCodes[uname]), 10) + elseif self._facOnStation[uname] and not on then + trigger.action.outTextForCoalition(u:GetCoalition(), string.format('[FAC "%s" off-station]', self:_facName(uname)), 10) + self:_cleanupFac(uname, true) + end + if on then + self._facOnStation[uname] = true + -- start autolase one-shot; the status scheduler keeps it alive every 1s + self:_autolase(uname) + else + self._facOnStation[uname] = nil + end +end + +function FAC:_setLaserCode(group, code) + -- Set the laser code for this FAC; updates status if on-station + local u = group:GetUnit(1); if not u or not u:IsAlive() then return end + local uname = u:GetName() + _dbg(self, string.format('Action:SetLaserCode unit=%s code=%s', uname, tostring(code))) + -- Enforce simple reservation: reassign if taken + local assigned = self:_reserveCode(u:GetCoalition(), uname, tostring(code)) + self._laserCodes[uname] = assigned + if self._facOnStation[uname] then + trigger.action.outTextForCoalition(u:GetCoalition(), string.format('[FAC "%s" on-station using CODE %s]', self:_facName(uname), self._laserCodes[uname]), 10) + end +end + +function FAC:_setLaserDigit(group, digit, val) + local u = group:GetUnit(1); if not u or not u:IsAlive() then return end + local uname = u:GetName() + _dbg(self, string.format('Action:SetLaserDigit unit=%s digit=%d val=%s', uname, digit, tostring(val))) + local cur = self._laserCodes[uname] or '1688' + local s = tostring(cur) + if #s ~= 4 then s = '1688' end + local pre = s:sub(1, digit-1) + local post = s:sub(digit+1) + s = pre .. tostring(val) .. post + self:_setLaserCode(group, s) +end + +function FAC:_setMarker(group, typ, color) + local u = group:GetUnit(1); if not u or not u:IsAlive() then return end + local uname = u:GetName() + _dbg(self, string.format('Action:SetMarker unit=%s type=%s color=%s', uname, tostring(typ), tostring(color))) + self._markerType[uname] = typ + self._markerColor[uname] = color + local colorStr = ({[trigger.smokeColor.Green]='GREEN',[trigger.smokeColor.Red]='RED',[trigger.smokeColor.White]='WHITE',[trigger.smokeColor.Orange]='ORANGE',[trigger.smokeColor.Blue]='BLUE'})[color] or 'WHITE' + if self._facOnStation[uname] then + trigger.action.outTextForCoalition(u:GetCoalition(), string.format('[FAC "%s" on-station marking with %s %s]', self:_facName(uname), colorStr, typ), 10) + else + MESSAGE:New('Marker set to '..colorStr..' '..typ, 10):ToGroup(group) + end +end + +function FAC:_setMapMarker(group) + local u = group:GetUnit(1); if not u or not u:IsAlive() then return end + local uname = u:GetName() + local tgt = self._currentTargets[uname] + if not tgt then MESSAGE:New('No Target to Mark', 10):ToGroup(group); return end + local t = Unit.getByName(tgt.name) + if not t or not t:isActive() then return end + _dbg(self, string.format('Action:MapMarker unit=%s target=%s', uname, tgt.name)) + local dms, mgrs, altM, altF, hdg, mph = _formatUnitGeo(t) + local text = string.format('%s - DMS %s Alt %dm/%dft\nHeading %d Speed %d MPH\nSpotted by %s', t:getTypeName(), dms, altM, altF, hdg, mph, self:_facName(uname)) + local id = math.floor(timer.getTime()*1000 + 0.5) + trigger.action.markToCoalition(id, text, t:getPoint(), u:GetCoalition(), false) + timer.scheduleFunction(function(idp) trigger.action.removeMark(idp) end, id, timer.getTime() + 300) +end +-- #endregion Status & On-station + +-- #region Auto-lase loop & target selection +function FAC:_checkFacStatus() + self:_pruneManualLists() + self:_pruneSmokeMarks() + self:_pruneArtyTasked() + -- Autostart for AI FACs and run autolase cadence + for uname,_ in pairs(self._facPilotNames) do + local u = Unit.getByName(uname) + if u and u:isActive() and u:getLife()>0 then + if not self._facUnits[uname] and (u:getPlayerName() == nil) then + self._facOnStation[uname] = true + end + if (not self._facUnits[uname]) and self._facOnStation[uname] then + self:_autolase(uname) + end + end + end +end + +function FAC:_autolase(uname) + local u = Unit.getByName(uname) + if not u then + if self._facUnits[uname] then + trigger.action.outTextForCoalition(self._facUnits[uname].side, string.format('[FAC "%s" MIA]', self:_facName(uname)), 10) + end + self:_cleanupFac(uname) + return + end + if not self._facOnStation[uname] then self:_cancelLase(uname); self._currentTargets[uname]=nil; return end + if not self._laserCodes[uname] then self._laserCodes[uname] = self.Config.FAC_laser_codes[1] end + if not self._facUnits[uname] then self._facUnits[uname] = { name = u:getName(), side = u:getCoalition() } end + if not self._markerType[uname] then self._markerType[uname] = self.Config.MarkerDefault end + + if not u:isActive() then + timer.scheduleFunction(function(args) self:_autolase(args[1]) end, {uname}, timer.getTime()+30) + return + end + + local enemy = self:_currentOrFindEnemy(u, uname) + if enemy then + _dbg(self, string.format('AutoLase: unit=%s target=%s type=%s', uname, enemy:getName(), enemy:getTypeName())) + self:_laseUnit(enemy, u, uname, self._laserCodes[uname]) + -- variable next tick based on target speed + local v = enemy:getVelocity() or {x=0,z=0} + local spd = math.sqrt((v.x or 0)^2 + (v.z or 0)^2) + local next = (spd < 1) and 1 or 1/spd + timer.scheduleFunction(function(args) self:_autolase(args[1]) end, {uname}, timer.getTime()+next) + -- markers recurring + local nm = self._smokeMarks[enemy:getName()] + if not nm or nm < timer.getTime() then self:_createMarker(enemy, uname) end + else + _dbg(self, string.format('AutoLase: unit=%s no-visible-target -> cancel', uname)) + self:_cancelLase(uname) + timer.scheduleFunction(function(args) self:_autolase(args[1]) end, {uname}, timer.getTime()+5) + end +end + +function FAC:_currentOrFindEnemy(facUnit, uname) + local cur = self._currentTargets[uname] + if cur then + local eu = Unit.getByName(cur.name) + if eu and eu:isActive() and eu:getLife()>0 then + local d = _distance(eu:getPoint(), facUnit:getPoint()) + if d < (self.Config.FAC_maxDistance or 18520) then + local epos = eu:getPoint() + if land.isVisible({x=epos.x,y=epos.y+2,z=epos.z}, {x=facUnit:getPoint().x,y=facUnit:getPoint().y+2,z=facUnit:getPoint().z}) then + return eu + end + end + end + end + -- find nearest visible + _dbg(self, string.format('FindNearest: unit=%s mode=%s', uname, tostring(self.Config.FAC_lock))) + return self:_findNearestEnemy(facUnit, self.Config.FAC_lock) +end + +function FAC:_findNearestEnemy(facUnit, targetType) + local facSide = facUnit:getCoalition() + local enemySide = _coalitionOpposite(facSide) + local nearest, best = nil, self.Config.FAC_maxDistance or 18520 + local origin = facUnit:getPoint() + _dbg(self, string.format('Search: origin=(%.0f,%.0f) radius=%d targetType=%s', origin.x, origin.z, self.Config.FAC_maxDistance or 18520, tostring(targetType))) + + local volume = { id = world.VolumeType.SPHERE, params = { point = origin, radius = self.Config.FAC_maxDistance or 18520 } } + local function search(u) + if u:getLife() <= 1 or u:inAir() then return end + if u:getCoalition() ~= enemySide then return end + local up = u:getPoint() + local d = _distance(up, origin) + if d >= best then return end + local allowed = true + if targetType == 'vehicle' then allowed = _isVehicle(u) + elseif targetType == 'troop' then allowed = _isInfantry(u) end + if not allowed then return end + if land.isVisible({x=up.x,y=up.y+2,z=up.z}, {x=origin.x,y=origin.y+2,z=origin.z}) and u:isActive() then + best = d; nearest = u + end + end + world.searchObjects(Object.Category.UNIT, volume, search) + if nearest then + local uname = facUnit:getName() + self._currentTargets[uname] = { name = nearest:getName(), unitType = nearest:getTypeName(), unitId = nearest:getID() } + self:_announceNewTarget(facUnit, nearest, uname) + self:_createMarker(nearest, uname) + _dbg(self, string.format('Search: selected target=%s type=%s dist=%.0f', nearest:getName(), nearest:getTypeName(), best)) + end + return nearest +end + +function FAC:_announceNewTarget(facUnit, enemy, uname) + local col = self._markerColor[uname] + local colorStr = ({[trigger.smokeColor.Green]='GREEN',[trigger.smokeColor.Red]='RED',[trigger.smokeColor.White]='WHITE',[trigger.smokeColor.Orange]='ORANGE',[trigger.smokeColor.Blue]='BLUE'})[col or trigger.smokeColor.White] or 'WHITE' + local dms, mgrs, altM, altF, hdg, mph = _formatUnitGeo(enemy) + _dbg(self, string.format('AnnounceTarget: fac=%s target=%s code=%s mark=%s %s', self:_facName(uname), enemy:getName(), self._laserCodes[uname] or '1688', colorStr, self._markerType[uname] or 'FLARES')) + local msg = string.format('[%s lasing new target %s. CODE %s @ DMS %s MGRS %s Alt %dm/%dft\nMarked %s %s]', + self:_facName(uname), enemy:getTypeName(), self._laserCodes[uname] or '1688', dms, mgrs, altM, altF, colorStr, self._markerType[uname] or 'FLARES') + trigger.action.outTextForCoalition(facUnit:getCoalition(), msg, 10) +end + +function FAC:_createMarker(enemy, uname) + local typ = self._markerType[uname] or self.Config.MarkerDefault + local col = self._markerColor[uname] + local when = (typ == 'SMOKE') and 300 or 5 + self._smokeMarks[enemy:getName()] = timer.getTime() + when + local p = enemy:getPoint() + _dbg(self, string.format('CreateMarker: target=%s type=%s color=%s ttl=%.0fs', enemy:getName(), typ, tostring(col or trigger.smokeColor.White), when)) + if typ == 'SMOKE' then + trigger.action.smoke({x=p.x, y=p.y+2, z=p.z}, col or trigger.smokeColor.White) + else + trigger.action.signalFlare({x=p.x, y=p.y+2, z=p.z}, col or trigger.smokeColor.White, 0) + end +end + +function FAC:_cancelLase(uname) + local S = self._laserSpots[uname] + if S then + if S.ir then Spot.destroy(S.ir) end + if S.laser then Spot.destroy(S.laser) end + self._laserSpots[uname] = nil + end +end + +function FAC:_laseUnit(enemy, facUnit, uname, code) + local p = enemy:getPoint() + local tgt = { x=p.x, y=p.y+2, z=p.z } + local spots = self._laserSpots[uname] + if not spots then + spots = {} + local ok, res = pcall(function() + spots.ir = Spot.createInfraRed(facUnit, {x=0,y=2,z=0}, tgt) + spots.laser = Spot.createLaser(facUnit, {x=0,y=2,z=0}, tgt, tonumber(code) or 1688) + return spots + end) + if ok then + self._laserSpots[uname] = spots + else + env.error('[FAC] Spot creation failed: '..tostring(res)) + end + else + if spots.ir then spots.ir:setPoint(tgt) end + if spots.laser then spots.laser:setPoint(tgt) end + end +end + +function FAC:_cleanupFac(uname, preserveRole) + if not uname then return end + local current = self._currentTargets[uname] + if current and current.name then + self._smokeMarks[current.name] = nil + end + self:_cancelLase(uname) + self._laserCodes[uname] = nil + self._markerType[uname] = nil + self._markerColor[uname] = nil + self._manualLists[uname] = nil + self._laserSpots[uname] = nil + self._currentTargets[uname] = nil + if not preserveRole then + self:_unregisterPilotName(uname) + end + -- release reserved code if any + local side = (self._facUnits[uname] and self._facUnits[uname].side) or self.Side + if side then self:_releaseCode(side, uname) end + self._facUnits[uname] = nil + self._facOnStation[uname] = nil +end + +-- #endregion Auto-lase loop & target selection + +-- #region Manual Scan/Select +-- Manual Scan/Select +function FAC:_scanManualList(group) + local u = group:GetUnit(1); if not u or not u:IsAlive() then return end + local uname = u:GetName() + -- Use DCS Unit position for robust coords + local du = Unit.getByName(uname) + if not du or not du:getPoint() then return end + local origin = du:getPoint() + _dbg(self, string.format('Action:ScanManual unit=%s origin=(%.0f,%.0f) radius=%d', uname, origin.x, origin.z, self.Config.FAC_maxDistance)) + local enemySide = _coalitionOpposite(u:GetCoalition()) + local foundAA, foundOther = {}, {} + local function ins(tbl, item) table.insert(tbl, item) end + local function cb(item) + if item:getCoalition() ~= enemySide then return end + if item:inAir() or not item:isActive() or item:getLife() <= 1 then return end + local p = item:getPoint() + if land.isVisible({x=p.x,y=p.y+2,z=p.z}, {x=origin.x,y=origin.y+2,z=origin.z}) then + if item:hasAttribute('SAM TR') or item:hasAttribute('IR Guided SAM') or item:hasAttribute('AA_flak') then + ins(foundAA, item) + else + ins(foundOther, item) + end + end + end + world.searchObjects(Object.Category.UNIT, { id=world.VolumeType.SPHERE, params={ point = origin, radius = self.Config.FAC_maxDistance } }, cb) + local list = {} + for i=1,10 do list[i] = foundAA[i] or foundOther[i] end + self._manualLists[uname] = list + _dbg(self, string.format('Action:ScanManual unit=%s results=%d', uname, #list)) + -- print bearings/ranges + local gid = group:GetDCSObject() and group:GetDCSObject():getID() or nil + for i,v in ipairs(list) do + if v then + local p = v:getPoint() + local d = _distance(p, origin) + local dy, dx = p.z - origin.z, p.x - origin.x + local hdg = math.deg(math.atan2(dx, dy)) + if hdg < 0 then hdg = hdg + 360 end + if gid then + trigger.action.outTextForGroup(gid, string.format('Target %d: %s Bearing %d Range %dm/%dft', i, v:getTypeName(), math.floor(hdg+0.5), math.floor(d), math.floor(d*3.28084)), 30) + local id = math.floor(timer.getTime()*1000 + i) + trigger.action.markToGroup(id, 'Target '..i..':'..v:getTypeName(), v:getPoint(), gid, false) + timer.scheduleFunction(function(mid) trigger.action.removeMark(mid) end, id, timer.getTime()+60) + end + end + end +end + +function FAC:_setManualTarget(group, idx) + local u = group:GetUnit(1); if not u or not u:IsAlive() then return end + local uname = u:GetName() + _dbg(self, string.format('Action:SetManualTarget unit=%s index=%d', uname, idx)) + local list = self._manualLists[uname] + if not list or not list[idx] then + MESSAGE:New('Invalid Target', 10):ToGroup(group) + return + end + local enemy = list[idx] + if enemy and enemy:getLife()>0 then + self._currentTargets[uname] = { name = enemy:getName(), unitType = enemy:getTypeName(), unitId = enemy:getID() } + self:_setOnStation(group, true) + self:_createMarker(enemy, uname) + MESSAGE:New(string.format('Designating Target %d: %s', idx, enemy:getTypeName()), 10):ToGroup(group) + _dbg(self, string.format('Action:SetManualTarget unit=%s target=%s type=%s', uname, enemy:getName(), enemy:getTypeName())) + else + MESSAGE:New(string.format('Target %d already dead', idx), 10):ToGroup(group) + _dbg(self, string.format('Action:SetManualTarget unit=%s index=%d dead', uname, idx)) + end +end + +function FAC:_multiStrike(group) + local u = group:GetUnit(1); if not u or not u:IsAlive() then return end + local uname = u:GetName() + local list = self._manualLists[uname] or {} + _dbg(self, string.format('Action:MultiStrike unit=%s targets=%d', uname, #list)) + for _,t in ipairs(list) do if t and t:isExist() then self:_callFireMission(group, 10, 0, t) end end +end +-- #endregion Manual Scan/Select + +-- #region RECCE sweep (aircraft-based) +function FAC:_recceDetect(group) + local u = group:GetUnit(1); if not u or not u:IsAlive() then return end + local uname = u:GetName() + local side = u:GetCoalition() + -- Use DCS Unit API for coordinates to avoid relying on MOOSE point methods + local du = Unit.getByName(uname) + if not du or not du:getPoint() then return end + local pos = du:getPoint() + _dbg(self, string.format('Action:RecceSweep unit=%s center=(%.0f,%.0f) radius=%d', uname, pos.x, pos.z, self.Config.RecceScanRadius)) + local enemySide = _coalitionOpposite(side) + local temp = {} + local count = 0 + local function cb(item) + if item:getCoalition() ~= enemySide then return end + if item:getLife() < 1 then return end + local p = item:getPoint() + if land.isVisible({x=p.x,y=p.y+2,z=p.z}, {x=pos.x,y=pos.y+2,z=pos.z}) and (item:isActive() or item:getCategory()==Object.Category.STATIC) then + count = count + 1 + local dms, mgrs, altM, altF, hdg, mph = _formatUnitGeo(item) + local id = math.floor(timer.getTime()*1000 + count) + local text = string.format('%s - DMS %s Alt %dm/%dft\nHeading %d Speed %d MPH\nSpotted by %s', item:getTypeName(), dms, altM, altF, hdg, mph, self:_facName(uname)) + trigger.action.markToCoalition(id, text, item:getPoint(), side, false) + timer.scheduleFunction(function(mid) trigger.action.removeMark(mid) end, id, timer.getTime()+300) + table.insert(temp, item) + end + end + world.searchObjects(Object.Category.UNIT, { id=world.VolumeType.SPHERE, params={ point = pos, radius = self.Config.RecceScanRadius } }, cb) + world.searchObjects(Object.Category.STATIC, { id=world.VolumeType.SPHERE, params={ point = pos, radius = self.Config.RecceScanRadius } }, cb) + self._manualLists[uname] = temp + _dbg(self, string.format('Action:RecceSweep unit=%s results=%d', uname, #temp)) + if #temp > 0 then + MESSAGE:New(string.format('RECCE: %d contact(s) marked on map for 5 minutes. Open F10 Map to view.', #temp), 10):ToGroup(group) + -- Coalition heads-up so other players know to check the map + local lat, lon = coord.LOtoLL(pos) + local mgrs = _mgrsToString(coord.LLtoMGRS(lat, lon)) + local loc = (mgrs and mgrs ~= '') and ('MGRS '..mgrs) or 'FAC position' + trigger.action.outTextForCoalition(side, string.format('RECCE: %d contact(s) marked near %s. Check F10 map.', #temp, loc), 10) + else + MESSAGE:New('RECCE: No visible enemy contacts found.', 8):ToGroup(group) + end +end + +function FAC:_executeRecceMark(pos, coal) + -- Find nearest AI recce unit of coalition not busy, task to fly over and run recceDetect via script action + -- For simplicity we just run a coalition-wide recce flood at mark point using nearby AI if available; else no-op. + trigger.action.outTextForCoalition(coal, 'RECCE task requested at map mark', 10) +end +-- #endregion RECCE sweep (aircraft-based) + +-- #region Artillery/Naval/Air tasking +function FAC:_artyAmmo(units) + local total = 0 + for i=1,#units do + local ammo = units[i]:getAmmo() + if ammo then + if ammo[1] then total = total + (ammo[1].count or 0) end + end + end + return total +end + +function FAC:_guidedAmmo(units) + local total = 0 + for i=1,#units do + local ammo = units[i]:getAmmo() + if ammo then + for k=1,#ammo do + local d = ammo[k].desc + if d and d.guidance == 1 then total = total + (ammo[k].count or 0) end + end + end + end + return total +end + +function FAC:_navalGunStats(units) + local total, maxRange = 0, 0 + for i=1,#units do + local ammo = units[i]:getAmmo() + if ammo then + for k=1,#ammo do + local d = ammo[k].desc + if d and d.category == 0 and d.warhead and d.warhead.caliber and d.warhead.caliber >= 75 then + total = total + (ammo[k].count or 0) + local r = (d.warhead.caliber >= 120) and 22222 or 18000 + if r > maxRange then maxRange = r end + end + end + end + end + return total, maxRange +end + +function FAC:_getArtyFor(point, facUnit, mode) + -- mode: 0 HE, 1 illum, 2 mortar only, 3 heavy only (no smart), 4 guided/naval/air, -1 any except bombers + -- Accept either a MOOSE Unit (GetCoalition) or a DCS Unit (getCoalition) + local side + if facUnit then + if facUnit.GetCoalition then + side = facUnit:GetCoalition() + elseif facUnit.getCoalition then + side = facUnit:getCoalition() + end + end + side = side or self.Side + local bestName + local candidates = {} + local function consider(found) + if found:getCoalition() ~= side or not found:isActive() or found:getPlayerName() then return end + local u = found + local g = u:getGroup() + if not g then return end + local gname = g:getName() + if candidates[gname] then return end + if not self._ArtyTasked[gname] then self._ArtyTasked[gname] = { name=gname, tasked=0, timeTasked=nil, tgt=nil, requestor=nil } end + if self._ArtyTasked[gname].tasked ~= 0 and (mode ~= -1 or self._ArtyTasked[gname].requestor ~= 'AI Spotter') then return end + table.insert(candidates, gname) + end + world.searchObjects(Object.Category.UNIT, { id=world.VolumeType.SPHERE, params={ point = point, radius = 4600000 } }, consider) + + local filtered = {} + for _,gname in ipairs(candidates) do + local g = Group.getByName(gname) + if g and g:isExist() then + local u1 = g:getUnit(1) + local pos = u1:getPoint() + local d = _distance(pos, point) + if mode == 4 then + if _isBomberOrFighter(u1) or _isNavalUnit(u1) then + if _isNavalUnit(u1) then + local tot, rng = self:_navalGunStats(g:getUnits()) + _dbg(self, string.format('ArtySelect: %s (naval) dist=%.0f max=%.0f ammo=%d %s', gname, d, rng, tot or 0, (tot>0 and rng>=d) and 'OK' or 'SKIP')) + if tot>0 and rng >= d then table.insert(filtered, gname) end + else + local guided = self:_guidedAmmo(g:getUnits()) + _dbg(self, string.format('ArtySelect: %s (air) dist=%.0f guided=%d %s', gname, d, guided or 0, (guided>0) and 'OK' or 'SKIP')) + if guided > 0 then table.insert(filtered, gname) end + end + end + else + if _isNavalUnit(u1) then + local tot, rng = self:_navalGunStats(g:getUnits()) + _dbg(self, string.format('ArtySelect: %s (naval) dist=%.0f max=%.0f ammo=%d %s', gname, d, rng, tot or 0, (tot>0 and rng>=d) and 'OK' or 'SKIP')) + if tot>0 and rng >= d then table.insert(filtered, gname) end + elseif _isArtilleryUnit(u1) then + local r = _artyMaxRangeForUnit(u1) + _dbg(self, string.format('ArtySelect: %s (artillery %s) dist=%.0f max=%.0f %s', gname, u1:getTypeName() or '?', d, r, (d<=r) and 'OK' or 'SKIP')) + if d <= r then table.insert(filtered, gname) end + end + end + end + end + local best, bestAmmo + for _,gname in ipairs(filtered) do + local g = Group.getByName(gname) + local ammo = self:_artyAmmo(g:getUnits()) + if (not bestAmmo) or ammo > bestAmmo then bestAmmo = ammo; best = gname end + end + if best then return Group.getByName(best) end + return nil +end + +function FAC:_checkArty(group) + local u = group:GetUnit(1); if not u or not u:IsAlive() then return end + -- Resolve using DCS Unit position + local du = Unit.getByName(u:GetName()) + if not du or not du:getPoint() then return end + local pos = du:getPoint() + _dbg(self, string.format('Action:CheckArty unit=%s at=(%.0f,%.0f)', u:GetName(), pos.x, pos.z)) + local g = self:_getArtyFor(pos, du, 0) + if g then + _dbg(self, string.format('Action:CheckArty unit=%s found=%s', u:GetName(), g:getName())) + MESSAGE:New('Arty available: '..g:getName(), 10):ToGroup(group) + else + _dbg(self, string.format('Action:CheckArty unit=%s none-found', u:GetName())) + MESSAGE:New('No untasked arty/bomber/naval in range', 10):ToGroup(group) + end +end + +function FAC:_callFireMission(group, rounds, mode, specificTarget) + -- Resolve a suitable asset (arty/naval/air) and push a task at the current target or a forward offset + local u = group:GetUnit(1); if not u or not u:IsAlive() then return end + local uname = u:GetName() + local enemy = specificTarget or (self._currentTargets[uname] and Unit.getByName(self._currentTargets[uname].name)) + local attackPoint + if enemy and enemy:isActive() then attackPoint = enemy:getPoint() else + -- offset forward of FAC as fallback + local du = Unit.getByName(uname) + if not du or not du:getPoint() then return end + local hdg = _getHeading(du) + local up = du:getPoint() + attackPoint = { x = up.x + math.cos(hdg)*self.Config.facOffsetDist, y = up.y, z = up.z + math.sin(hdg)*self.Config.facOffsetDist } + end + _dbg(self, string.format('Action:CallFireMission unit=%s rounds=%s mode=%s target=%s', uname, tostring(rounds), tostring(mode), enemy and enemy:getName() or 'offset')) + local arty = self:_getArtyFor(attackPoint, Unit.getByName(uname), mode) + if not arty then + _dbg(self, string.format('Action:CallFireMission unit=%s no-asset-in-range', uname)) + MESSAGE:New('Unable to process fire mission: no asset in range', 10):ToGroup(group) + return + end + local firepoint = { x = attackPoint.x, y = attackPoint.z, altitude = arty:getUnit(1):getPoint().y, altitudeEnabled = true, attackQty = 1, expend = 'One', weaponType = 268402702 } + local task + if _isNavalUnit(arty:getUnit(1)) then + -- FireAtPoint expects a 2D vec2 where y=z; do not pass altitude here + task = { id='FireAtPoint', params = { point = { x = attackPoint.x, y = attackPoint.z }, expendQty = 1, radius = 50, weaponType = 0 } } + elseif _isBomberOrFighter(arty:getUnit(1)) then + task = { id='Bombing', params = { y = attackPoint.z, x = attackPoint.x, altitude = firepoint.altitude, altitudeEnabled = true, attackQty = 1, groupAttack = true, weaponType = 2147485694 } } + else + -- Ground artillery + task = { id='FireAtPoint', params = { point = { x = attackPoint.x, y = attackPoint.z }, expendQty = rounds or 1, radius = 50, weaponType = 0 } } + end + local ctrl = arty:getController() + ctrl:pushTask(task) + -- Avoid forcing unknown option ids; rely on group's ROE/AlarmState from mission editor + local ammo = self:_artyAmmo(arty:getUnits()) + self._ArtyTasked[arty:getName()] = { name = arty:getName(), tasked = rounds or 1, timeTasked = timer.getTime(), tgt = enemy, requestor = self:_facName(uname) } + trigger.action.outTextForCoalition(u:GetCoalition(), string.format('Fire mission sent: %s firing %d rounds. Requestor: %s', arty:getUnit(1):getTypeName(), rounds or 1, self:_facName(uname)), 10) + _dbg(self, string.format('Action:CallFireMission unit=%s asset=%s rounds=%s point=(%.0f,%.0f)', uname, arty:getName(), tostring(rounds), attackPoint.x, attackPoint.z)) +end + +function FAC:_callFireMissionMulti(group, rounds, mode) + local u = group:GetUnit(1); if not u or not u:IsAlive() then return end + local uname = u:GetName() + local list = self._manualLists[uname] + if not list or #list == 0 then MESSAGE:New('No manual targets. Scan first.', 10):ToGroup(group) return end + local first = list[1] + local arty = self:_getArtyFor(first:getPoint(), u, 4) + if not arty then MESSAGE:New('No guided asset available', 10):ToGroup(group) return end + _dbg(self, string.format('Action:CallFireMissionMulti unit=%s targets=%d asset=%s', uname, #list, arty:getName())) + local tasks = {} + local guided = self:_guidedAmmo(arty:getUnits()) + for i,t in ipairs(list) do + if i > guided then break end + local p = t:getPoint() + tasks[#tasks+1] = { number = i, id='Bombing', enabled=true, auto=false, params={ y=p.z, x=p.x, altitude=arty:getUnit(1):getPoint().y, altitudeEnabled=true, attackQty=1, groupAttack=false, weaponType=8589934592 } } + end + local combo = { id='ComboTask', params = { tasks = tasks } } + local ctrl = arty:getController() + ctrl:setOption(1,1) + ctrl:pushTask(combo) + ctrl:setOption(10,3221225470) + self._ArtyTasked[arty:getName()] = { name=arty:getName(), tasked = #tasks, timeTasked=timer.getTime(), tgt=nil, requestor=self:_facName(uname) } + trigger.action.outTextForCoalition(u:GetCoalition(), string.format('Guided strike queued on %d targets', #tasks), 10) + _dbg(self, string.format('Action:CallFireMissionMulti unit=%s queuedTasks=%d', uname, #tasks)) +end + +function FAC:_callCarpetOnCurrent(group) + -- Carpet bomb the current target using attack heading of the aircraft + local u = group:GetUnit(1); if not u or not u:IsAlive() then return end + local uname = u:GetName() + local tgt = self._currentTargets[uname] + if not tgt then MESSAGE:New('No current target', 10):ToGroup(group) return end + local enemy = Unit.getByName(tgt.name) + if not enemy or not enemy:isActive() then MESSAGE:New('Target invalid', 10):ToGroup(group) return end + local du = Unit.getByName(uname) + local attackHdgDeg = du and math.floor(_getHeading(du)*180/math.pi) or 0 + _dbg(self, string.format('Action:Carpet unit=%s target=%s hdg=%d', uname, enemy:getName(), attackHdgDeg)) + self:_executeCarpetOrTALD(enemy:getPoint(), u:GetCoalition(), 'CARPET', attackHdgDeg) +end + +function FAC:_executeCarpetOrTALD(point, coal, mode, attackHeadingDeg) + local side = coal or self.Side + local arty = self:_getArtyFor(point, nil, (mode=='TALD') and 4 or 5) + if not arty then + trigger.action.outTextForCoalition(side, 'No bomber/naval asset available for '..(mode or 'CARPET'), 10) + return + end + local u1 = arty:getUnit(1) + local pos = u1:getPoint() + local hdg = attackHeadingDeg and math.rad(attackHeadingDeg) or 0 + local weaponType = (mode=='TALD') and 8589934592 or 2147485694 + local altitude = (mode=='TALD') and 10000 or pos.y + _dbg(self, string.format('Action:%s asset=%s heading=%d', tostring(mode or 'CARPET'), u1:getName(), attackHeadingDeg or -1)) + local task = { id='Bombing', params={ x=point.x, y=point.z, altitude=altitude, altitudeEnabled=true, attackQty=1, groupAttack=true, weaponType=weaponType, direction=hdg, directionEnabled=true } } + local ctrl = arty:getController() + ctrl:setOption(1,1) + ctrl:setTask(task) + ctrl:setOption(10,3221225470) + trigger.action.outTextForCoalition(side, string.format('%s ordered to attack map mark (hdg %d)', u1:getTypeName(), attackHeadingDeg or 0), 10) +end +-- Provide a stub for periodic AI spotter loop (safe to extend as needed) +function FAC:_artyAICall() + return +end + +-- #endregion Artillery/Naval/Air tasking + +-- #region Mark helpers +function FAC:_markPoint(group, point, label) + local p3 = { x=point.x, y=land.getHeight({x=point.x,y=point.z}), z=point.z } + trigger.action.smoke(p3, self.Config.FAC_smokeColour_BLUE) + local id = math.floor(timer.getTime()*1000 + 0.5) + local lat, lon = coord.LOtoLL(p3) + local txt = string.format('FAC: %s at %s', label or 'Contact', _llToDMS(lat,lon)) + trigger.action.markToCoalition(id, txt, p3, self.Side, true) +end + +-- #region Code reservation helpers +function FAC:_reserveCode(side, uname, code) + self._reservedCodes[side] = self._reservedCodes[side] or {} + local pool = self._reservedCodes[side] + code = tostring(code) + if pool[code] and pool[code] ~= uname then + -- Find a free alternative from configured list + local fallback = self:_assignFreeCode(side, uname) + if fallback then + -- Inform coalition about reassignment + trigger.action.outTextForCoalition(side, string.format('FAC %s requested code %s but it is in use by %s. Assigned %s instead.', self:_facName(uname), code, self:_facName(pool[code]), fallback), 10) + return fallback + end + -- No free code, keep requested (collision allowed with notice) + trigger.action.outTextForCoalition(side, string.format('FAC %s is sharing code %s with %s (no free codes).', self:_facName(uname), code, self:_facName(pool[code])), 10) + end + pool[code] = uname + return code +end + +function FAC:_assignFreeCode(side, uname) + self._reservedCodes[side] = self._reservedCodes[side] or {} + local pool = self._reservedCodes[side] + for _,c in ipairs(self.Config.FAC_laser_codes or {'1688'}) do + local key = tostring(c) + if not pool[key] or pool[key] == uname then + pool[key] = uname + return key + end + end + return nil +end + +function FAC:_releaseCode(side, uname) + local pool = self._reservedCodes[side] + if not pool then return end + for code,owner in pairs(pool) do + if owner == uname then pool[code] = nil end + end +end + +function FAC:_showCodesCoalition() + local side = self.Side + local pool = self._reservedCodes[side] or {} + local lines = {'FAC Codes In Use:\n'} + local any = false + for _,c in ipairs(self.Config.FAC_laser_codes or {'1688'}) do + local owner = pool[tostring(c)] + if owner then any = true; table.insert(lines, string.format(' %s -> %s', tostring(c), self:_facName(owner))) end + end + if not any then table.insert(lines, ' (none)') end + trigger.action.outTextForCoalition(side, table.concat(lines, '\n'), 15) +end +-- #endregion Code reservation helpers +-- #endregion Mark helpers + +-- #region Export +_MOOSE_CTLD_FAC = FAC +return FAC +-- #endregion Export diff --git a/Moose_CTLD_Init_DualCoalitions.lua b/Moose_CTLD_Init_DualCoalitions.lua new file mode 100644 index 0000000..0afdd12 --- /dev/null +++ b/Moose_CTLD_Init_DualCoalitions.lua @@ -0,0 +1,118 @@ +-- init_mission_dual_coalition.lua +-- Use in Mission Editor with DO SCRIPT FILE load order: +-- 1) Moose.lua +-- 2) Moose_CTLD_Pure/Moose_CTLD.lua +-- 3) Moose_CTLD_Pure/catalogs/CrateCatalog_CTLD_Extract.lua -- optional but recommended catalog with BLUE+RED items (_CTLD_EXTRACTED_CATALOG) +-- 4) Moose_CTLD_Pure/Moose_CTLD_FAC.lua -- optional FAC/RECCE support +-- 5) DO SCRIPT: dofile on this file OR paste the block below directly +-- +-- IMPORTANT: F10 menu ordering depends on script execution order! +-- Load this initialization script BEFORE other mission scripts (TADC, CVN, Intel, etc.) +-- to ensure CTLD and FAC appear earlier in the F10 menu. +-- +-- Zones you should create in the Mission Editor (as trigger zones): +-- BLUE: PICKUP_BLUE_MAIN, DROP_BLUE_1, FOB_BLUE_A +-- RED : PICKUP_RED_MAIN, DROP_RED_1, FOB_RED_A +-- Adjust names below if you use different zone names. + + +-- Create CTLD instances only if Moose and CTLD are available +if _MOOSE_CTLD and _G.BASE then +local blueCfg = { + CoalitionSide = coalition.side.BLUE, + PickupZoneSmokeColor = trigger.smokeColor.Green, + AllowedAircraft = { -- transport-capable unit type names (case-sensitive as in DCS DB) + 'UH-1H','Mi-8MTV2','Mi-24P','SA342M','SA342L','SA342Minigun','UH-60L','CH-47Fbl1','CH-47F','Mi-17','GazelleAI' + }, + -- Optional: drive zone activation from mission flags (preferred: set per-zone below via flag/activeWhen) + + MapDraw = { + Enabled = true, + DrawMASHZones = true, -- Enable MASH zone drawing + }, + + Zones = { + PickupZones = { { name = 'ALPHA', flag = 9001, activeWhen = 0 } }, + DropZones = { { name = 'BRAVO', flag = 9002, activeWhen = 0 } }, + FOBZones = { { name = 'CHARLIE', flag = 9003, activeWhen = 0 } }, + MASHZones = { { name = 'MASH Alpha', freq = '251.0 AM', radius = 500, flag = 9010, activeWhen = 0 } }, + SalvageDropZones = { { name = 'S1', flag = 9020, radius = 500, activeWhen = 0 } }, + }, + BuildRequiresGroundCrates = true, +} +env.info('[DEBUG] blueCfg.Zones.MASHZones count: ' .. tostring(blueCfg.Zones and blueCfg.Zones.MASHZones and #blueCfg.Zones.MASHZones or 'NIL')) +if blueCfg.Zones and blueCfg.Zones.MASHZones and blueCfg.Zones.MASHZones[1] then + env.info('[DEBUG] blueCfg.Zones.MASHZones[1].name: ' .. tostring(blueCfg.Zones.MASHZones[1].name)) +end +ctldBlue = _MOOSE_CTLD:New(blueCfg) + +local redCfg = { + CoalitionSide = coalition.side.RED, + PickupZoneSmokeColor = trigger.smokeColor.Green, + AllowedAircraft = { -- transport-capable unit type names (case-sensitive as in DCS DB) + 'UH-1H','Mi-8MTV2','Mi-24P','SA342M','SA342L','SA342Minigun','UH-60L','CH-47Fbl1','CH-47F','Mi-17','GazelleAI' + + }, + -- Optional: drive zone activation for RED via per-zone flag/activeWhen + + MapDraw = { + Enabled = true, + DrawMASHZones = true, -- Enable MASH zone drawing + }, + + Zones = { + PickupZones = { { name = 'DELTA', flag = 9101, activeWhen = 0 } }, + DropZones = { { name = 'ECHO', flag = 9102, activeWhen = 0 } }, + FOBZones = { { name = 'FOXTROT', flag = 9103, activeWhen = 0 } }, + MASHZones = { { name = 'MASH Bravo', freq = '252.0 AM', radius = 500, flag = 9111, activeWhen = 0 } }, + SalvageDropZones = { { name = 'S2', flag = 9020, radius = 500, activeWhen = 0 } }, + }, + BuildRequiresGroundCrates = true, +} +env.info('[DEBUG] redCfg.Zones.MASHZones count: ' .. tostring(redCfg.Zones and redCfg.Zones.MASHZones and #redCfg.Zones.MASHZones or 'NIL')) +if redCfg.Zones and redCfg.Zones.MASHZones and redCfg.Zones.MASHZones[1] then + env.info('[DEBUG] redCfg.Zones.MASHZones[1].name: ' .. tostring(redCfg.Zones.MASHZones[1].name)) +end +ctldRed = _MOOSE_CTLD:New(redCfg) + +-- Merge catalog into both CTLD instances if catalog was loaded +env.info('[init_mission_dual_coalition] Checking for catalog: '..((_CTLD_EXTRACTED_CATALOG and 'FOUND') or 'NOT FOUND')) +if _CTLD_EXTRACTED_CATALOG then + local count = 0 + for k,v in pairs(_CTLD_EXTRACTED_CATALOG) do count = count + 1 end + env.info('[init_mission_dual_coalition] Catalog has '..tostring(count)..' entries') + env.info('[init_mission_dual_coalition] Merging catalog into CTLD instances') + ctldBlue:MergeCatalog(_CTLD_EXTRACTED_CATALOG) + ctldRed:MergeCatalog(_CTLD_EXTRACTED_CATALOG) + env.info('[init_mission_dual_coalition] Catalog merged successfully') + -- Verify merge + local blueCount = 0 + for k,v in pairs(ctldBlue.Config.CrateCatalog) do blueCount = blueCount + 1 end + env.info('[init_mission_dual_coalition] BLUE catalog now has '..tostring(blueCount)..' entries') +else + env.info('[init_mission_dual_coalition] WARNING: _CTLD_EXTRACTED_CATALOG not found - catalog not loaded!') + env.info('[init_mission_dual_coalition] Available globals: '..((_G._CTLD_EXTRACTED_CATALOG and 'in _G') or 'not in _G')) +end +else + env.info('[init_mission_dual_coalition] Moose or CTLD missing; skipping CTLD init') +end + + +-- Optional: FAC/RECCE for both sides (requires Moose_CTLD_FAC.lua) +if _MOOSE_CTLD_FAC and _G.BASE and ctldBlue and ctldRed then + facBlue = _MOOSE_CTLD_FAC:New(ctldBlue, { + CoalitionSide = coalition.side.BLUE, + Arty = { Enabled = false }, + }) + -- facBlue:AddRecceZone({ name = 'RECCE_BLUE_1' }) + facBlue:Run() + + facRed = _MOOSE_CTLD_FAC:New(ctldRed, { + CoalitionSide = coalition.side.RED, + Arty = { Enabled = false }, + }) + -- facRed:AddRecceZone({ name = 'RECCE_RED_1' }) + facRed:Run() +else + env.info('[init_mission_dual_coalition] FAC not initialized (missing Moose/CTLD/FAC or CTLD not created)') +end diff --git a/Moose_CTLD_Pure.code-workspace b/Moose_CTLD_Pure.code-workspace new file mode 100644 index 0000000..876a149 --- /dev/null +++ b/Moose_CTLD_Pure.code-workspace @@ -0,0 +1,8 @@ +{ + "folders": [ + { + "path": "." + } + ], + "settings": {} +} \ No newline at end of file diff --git a/Moose_CTLD_Pure.miz b/Moose_CTLD_Pure.miz new file mode 100644 index 0000000000000000000000000000000000000000..ee30c9edc77921de1158a0299215c85f55d0d6f9 GIT binary patch literal 1709815 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 z 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 JTvNH|v%n!cP+yjdL?-;Zl!5a5J#v(I(X)@u5dY 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%0DNv<>x^w_RchS`0f47mXOiXD@r)aMiU)V~x^IQb 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�)ic8e4S<0T&2b!wTq}y1V81*VR&+;)}3G96l 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

MT;`JiRnS}ape)3U!_^z!sBP9yziYu(@ zM|GlM4Pkvlpz|VJjA(PQNfmvCohi#Ic$5e>j4w;kE7TTk*S0~scImR6yL{Dd&Cl8B z)Qlb6v&DY-L&xo*!`tkhBM0pMBfIVXyLQ`yGEhz&*k-#1OSVnMN3lZ&f-KmeKuH-B zUX)&P3Z4AME3=Fn+{iR|!khn!RmE~RfBvP{E~`~iC)e5SU!-RLf|`h62Dl+dj5_ef z5xIwUZ?%8;`NwQ$uN2bjH|)mrywy0n+dI{Q@atI&s)?s7QaHKX^k@sqbx@w@+?fRi z%2F?{xHml7}`+$He|H~EYEYxgE|DX-YsAABAWpV7W zAiusNOpRGzSEp?m=(WM#lI`3!Y)204vI9Fu?C{QEJ8@{A-GBTpJ8|qTbs{VN#d8z_ z_EGf7*x4onpIIPg9NXA~vZOWve#+GgS()gNUaM`Y2xhgS}VlXu5d!&f(lIj0z>8?XeyZM5?Kw~E4cr~^~jTcy(p_$*AkmKxt zEV<;TX!lA($z)#vvXMqw<3)+ZE5^JnNFsZAOKETgQS~i-LL7$fw}y`7J+w4jA>mc`obXvtkHfDxoCM__F5%|xj!9eL#)iUj*X72C zUo4xd`0`<9XJ%%m?PouG+~#IS6`8#lG7h8%U3lxPy?*v3-+S2eku6(1T&Ma?j*RCch0x?Pz9_E3=YxIf3(#j-n#Jr0 z<;5XJv+5IOXC{SXi+tcwu9P;lF3wgDr zcPEzta)VPM8$9051wQH{zm6|~1{qFW>GEx?18c)_)dx%KS03(gt%dSi|4F~%tEXMH z?jGq|?KQh_bIHDYYS|ut+3fr+>8mOFf%Od#MUX66P2N=nyE1Kd`l8vrcfTuOXa#AS zH+Yfn&`1R*iU8)XuzaREZ{6wu`z4GAc8}QcLwoF~42_5G-Df==EXgsOnVq+bmq+dB z{_S>f*RYHimJOhA#UkAJ#i%o*Q#>QAbIYCf`+xdvd*jNODnyT5ENH*fo7to_<&KWf*n-L#3R1z*O)iDsU6DXA#mu`HpZey4mwg@ulvayLL%g zulnqbr+}iVKTb8nU}bKEJBm5x0Zr|a%3-O1-0{&(p9bd?YhG1xg zI+Oaj;iWZbgeKNqW6Nzj~z{Abw*t(Ge+PC2ZrpGv*&GgK}L-7dDnqG_N$-!gdID$ z$M$X?vAbn>-*@bg_4fAK=&cFao1H==6H8^u5xdlbbbca0N4t!(#f2Gr;O>KV|ItHk z9}o0%Wc9dzAd^lAT&~!I10JjFIy;NriMk64Um^@%mvsgC5U2(NA~LJlXm0Qbt|gfzIpSC-MD%| z-JGO_#>J(^e97nR97pU{tszq^C#`a z7k+Bnx9zYK$L|kD4fR7;5NZ9dq z(i83JSIwSy&FuI7PyfgfNWwho+kv#;gNm}E*ieAE)5)Q(gc00CKz%t)n}jMZdup?( zg(bUiea4k6M)P~RI<4xteYI zQ@~2QV@V7WRK;{fu=XVs*wC3HF|o5pXczTZE}FgX*dDQX(H?r}K6~WY4k`XM#(IU# zbFRGW?#IQjwjWikE_{9ye)55F;^FlR!+63U1EoV1$&~`R!xLtS7M7%DsuHpktj>i{ zfR0ZUmgPbio6dKoO}OQ@qAN&Ygu4+!LsQ2QAv~(F0*8zW6cdzR(#8^IdjBV<-n4)9 zrSDrwjX_Uo#rk&aS3^{^^QWG(&Tf{JMVuiGz8Ze_?qU0Z!YP0q@-!`?c7&C}!y`+Nssd}hiG5#QG%w~~z7J;MX`cYpnp)<4)||L=eMXLf0< zVx47-4vsWHc2u^hss4BeqEgQB#PjnD;y2&hPF{*D&*E0?Hf)wR$ z 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 Ima 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 `APy(@w)JsX zbRJQW7thp{rq2Gr^Lmr9&*^ovBMvnNkcFibh-|Wb3yKXe_*2LKQy6lkEE*XWaa-k{dTGaFuXl-(M<%%Ud9lxM;vdP`zG$sA^KlE3If3 z=$jMBn0bPR5wx&qTorO-4x634s-H!Hbtk>CCpXrg!0vM}ymsx(^&-YSLTO8{1%w@r zS8JszxP)_3{%f}>`$?}2MSf2!j?0aA{V&GftTp=!?~S`s(_^4#K7E9Jg!438!@03!4@LQ=0lbsEptsM@=ht(1A26QSQ8BV#?~AlUf_s3aSL!QR zma9rx#qUrMda-I#%e!c*T8F!{1tJ~)6#nuFB3I3x>)yn5wo{ZQW0(e zi22bfIUtb$;JbK(AG=Zj#Jat1h_`Y3)1^MTZG%5=u)8r_q2R62;x}K>>2f*-XW>|? z@bBw1p*n2YDyy4T%+#zd+-$U>x)SZzQ-iO%ou4OoXy3Z~IPVREN%&afF5WHGoXFXA zRsm0ZO`D3|AItP7V;;`N?i%HA+V8=c*@Y+L^Q+!W0j~L_nu46cqeT@&OIqn>;b3{Z zz8?YM^$`j0<|09Lp`mVytaB!HTTK1XriE6@DS_;b(3Vb>4eI3H zi9d2rka$B5+m0!S2|e7=xMMkQ*Cq<9<5X3nmGOoT6cQw-Q5Z{@E%7vabmuwc=$#O zJsi*08{^i##h==L_Z!{q(SMH#Tx!vZ>F-1)uF-Hj4OdfP) zKsg-urt{&f;N?b|7Q9VCkwD2L?xBjQk}9{<-s4`k{A=C^Evr(g2ZDnMnYQ>hq2Bai zDcV^R;opREe#umdZhXe{Z$dRbtSWOuKO7#79-+BaJ~Fpy5xw7wNPChVjNCiNdK-^fOiqxgNFyFH!nC@ef|k)2)Q>E3)zjE1 z$>p*$mJ0gnc(td+k&9)KclNH@fPV^`CvjF1bff7sG2v5~pqxGd$oxbr?7=DBLJcTy^c{*R3i8P6h@h%1y?Q zg9WE}&T?4R>b>BuERtUvtMaThDqEa|rS@y>V$4(Ryk)AOC<{&1cbVe$Xx{Kmk^CCd zzIZ>^o8DxfM+FzrMJk4Sb}m+pZf-tDn*K6lOXR1{%wb+6{lPzF^5LsQ5cr#mX3AIx z@&!cGq&l!V$=+xrb|Y7!f^14q?^7SXYOPWx{9UKA%@u69%B?}DDyeKUD1yq=Q7KxS z+fP*!_J81_%C%c}0LJ{UucyqHPCpO8a1=|>=~HyuQ9>tS&xW{POUO%!C*$!sQT9sm zUQfh1NA<#d<@*njQX5}7?}Kp{uX=HDxwfCI&tQYJkh|c^;rKJ2L(;Tzab1bF1m+5_ zvLXM5OV@aP5O0?_cKe`gBSHG!Et226HI(;mlOn=;x9My=qDP7*O^I?Oy<33+(3`on zH#Hx|6nm6?u$gwuT6;d8Po`D?*k{c!1pSDv=(rO7RP6M2EjqPhKi#kq;P_?3M!M?s z)xD=JoNR}p{|5H8V5@XA?85x4gDwpGP)nZXH}uou4P7*WSlb3z!vXV#(G+CMnm*yR zk@?tQ3gC?t(*Ww1616Zm3xl&TIJp-b-ZmG%3F8LgoV1RcQ>vuZFSf&I1y6gQK;ly? zEL9`G)0;yLBUB2t4T29}Y+&)lZRGd>i?mN&Y$^}AO{ui{YCNide(jWNm_V0UyEL%dWvp60Mv#+Yqs_DWy`7JZY&c8f z%w4pNB?^Y6S2UmaT!$AFcAHj+y=GAQ}zgs?!Lf2AoA;CKi;t*uO zf&nHs%h&gfEQX?KLDq;lrSWja=yOlFzJjlaul$Bgps5PR%^0-VvPriCC#O_wEMJfd zxN7C=%`LD}A1(4}mD6uDYqe$c(OERu^Uuemx_3^;!8DqpC_6k12f5j!aT-Hj(r)u0 zBX>kiW7zJkoiRu&S6wFeUqCL`g^b#G+i2b{@a^M!XF!mpqN{Mjd7uov>qo}uW!Ra^ zK0#7l*zU68c7}FjGQ>KquC%^>+8fd{*y?s5ka5B~9iuM;&50VFjH%ne__@11+n$4i zVDhwhmQ8zAs)Suv#PtU(66Z?dD=lu9wCI5);|!zkv?x3rgO^!bF6Am|LL0X3aV4C@ zhh5U)xqwF^$vNj?(*329(}_2ZSL7F0+LL$fUk|lk6mxCPnXs@+a?GtwUh|}0s6apg z)$-9)8&L!?27XrFi5?BgIK&2eEV4ex6dbf%K`zkU>xL0fl`d>$y*+IVOeza&m8$99 zj$M6CV;GeNg%w1J3)BEV6@ae$*lLM>Lv_6(FC3P#mi(vn;+fHCc(r!G~Eik$5 zLFY-ZU`?*U&IK?9;O&Y$kVQ9WHG3sBx$2T3Vjm};$9H#spog5@{2X@lWhe_oxm${Y zn?E2emLlCS<*BW68SKuWYt34#?z~N7X`3HSRo;oHtpID`4UOTf2oItHB3Bixq+H9( zj^E+wReuF@;pg%w9EP9eL)i>JxBK!M?)sMU^LNWq`@FZSfh(cIy~8&zc~4FTQ`*`x z+)HsUD|agmPJhYi(RdUZ)3A5Hjz=-HPWgrE^n?Fe^<(4IyAzKW$A=HLe7t_nY;bV> zbV^o!@6;vk$sd|`O{=%VGv0y=b}WnA@fG+18r644-MT&4*Zl{itZR_|{w1$$pq;Y# zng{ht5a((<#aWl+8o@&36ocx=OrX4LI{vwydVnq%S4Kz;5 z!=g8tz;o7$?LT6~$pGtx5#J;)(a?#~Whr5GGaH`cYTP^RqqB!BhI z9I-Y$?~zuRqbQmgAE@MdhU?~ezo=L*snbf$N`ZV7dhjx}&W5wk+4(e<6+3seiX80G zHHIk8ULi{(Xz}CsMi6`6y8-hGg*XTB2w?yRnw}|$Fsl(vb|5R&vyaAnoRb-PU%DKe zCuauR)Pn(OxkRSf$u(`XxhckB&a+Q3H1IyFax+~7f|2pkK1}-dd6nuf@^R~8qFqNg z@#Ht>(G=k9))5HaZR3PNgdSLLmOd|&H$i4qV3)XQbbyGvTuY>Jfg2^&`p4D%6T^hd zmjrvLc+`Q!9`$FI;Yg&REX$%afe&45mTJ*}Y#$^bIKIZSry7faZ`{<@J1LmECnp_w z9q*il_s4K;5*^UT3A*q#h`rCzv4Vbq4a(pmI(*S#u`MpUPFGei-jYW*P*vn(CNMa` zAC{UBgHc*yK#`{_C&eZwz~}4)INB+Kl8B>V*NdOC$rN6p#S+17)+cCw^!b}0j_P`Z z6(ws&63jS^Id&FWx7VyKN&$GpCY8Srl}YY< z7q|J)@>wc9c?!2w2Ww!d3Rqv^xmw^tyjCT2F0ka6Nef$mNdXgaRSM_7+a!W{S2EE_ z`@ptSmX%Bd3z$vhEkfZMRWiTOA9z0Vl5`pO=z7SMOp9a2B!iW$WGYzfEU`D|WyyTE zZA+5PtZZ@OJKhaS*kj995S`Mi(QL#tB@*I7YHI1Pq^q)sx@I?d$--JL5AoOThK4Mb zB`GkT+U-Oft(k-J_U`E=skhbTnv?i;J5f0Ye&t+>j#zT{q<8tU;?h1Td#;F_u58kR zN53QwJwAO^g@1C}Rwrk0_x8f$GV-ro(cK*V)t9!;@7y<=jqg_*8&$$t(m*EEm%nBU zk_SS$r%-7S&+@xFypH!OLtwP8kJnI+(A;gC%22SYluzBI2?fQLrn)ZVODMUG+*U^= zn<7Sh;;9!{9RYr<%yA^pey8Q&?1XmM%O-epFjYEev3JwKfH)c*_xPekeqT$xJktoE zX%H?LW^bW6hU^lz%Fc}GuSr#JG#XML_QyMb3WIzdpJo6>j60tAR^mnG?q@{i%eVx} zbA`^w`%#XvLOR%&FJro5Y9(Go&Z;f-%d6H1Ei5ZjZ^c-x3h0cGsCTE(}ci!NR ziY!`~cFF$z?zP;zn#XN&cIEeM{DT{e9<4^yT)cxhQM2(7(~Fl@;&s&t?j_gP&?0-I zPlM?Iva!jv&X^#bpcj-7FM4@djIJK|xd(j=aAH^4hgJIYchIf)tA_lw4q6x4HB9PH z*>K*I_WbhYi7|O0R8)1M+8Ql#eGP}QY`CgHLbT=W5n`{|9Fp9%h5*)T3`tWf;i}~1 z3eHK(-6DvMNSu7WX0I9Um__s!n0<1N{JU~OhgnhK3(|@u65&M#g+X8eiWq#$R9)vL zL|p5y@~Csk3f#^2 z!QVyFtSo&jX#Aua3$KCGRg^o;K$?%PM&r+;AD|$gg2@=HlKLtVI=A{? zt6yhNYk$Q&h*XoF{B?{9jX7X?ZnkBaSE^rkpVs~dN+~NoX`J>t`)zD9IPYh03&G!K z3w(!d@#@W5zF@FPTrP3TCcXi70Nl0=K_j8-@lQ9@;9Ol@1Ge$V-9bau!<2^6+ptxd zI&DS9M*?R9& zmhHu#GJ1&W462Q%wTd14NwW!ql#guX(tkburuyOQ?4!I6#&EFv;uaBX_r zJBP#eWWm?4Rk`OO0RW41>ZjwM_u40QL*D21v+2x8Z|r_XvM0uu(;1mNBL%ac z;a+cgI)-d8TEsjiQykm`dBS;kNe*t{IIg8js7K5guY16Qj1PKvKU=k#S>*#DG$nGi zPQwgjHN3`?zUPwqQ=xTy=jqqh@THi(irLl0iJ!jfcE#+DNOpwSQi^2pZa(cx9wr6n z^t4rmzh(RLr-x2W3Ia|{uuQZ5GR6T2P|e;;UWTe)@pexWmou2q3!e0N7w>ZLX(%an zAnawk+pSji;XOn1MRM}(>0!c7?~80)wE=CMKc?tUbnMUa8Kde>Fr?6 z>lj^NnzVgj8xGF&aMi8(v30#@uRN)k5}9A1@@RKEg9F7?xENA=fl6Att;mMZA5J!v zC}d-K%gCmy#pnXQ^06OFbGjl_UWJ|tdclhG3K3ysy&B)z);c>I-=@E##}RlrPa3%W z`DL%ZP~Ug%`%4`Ug^0SLaW^!w3w(LPZ zJ;d5O84NU_EgH8!p4m^1b>Y-u8Q#G{7B1Z)NVjn57P)kHF5O*_?#`vV^V4OwjoY8j z?59qL;nZQ}(k)!NMUZac(k*i7?p(UNAl;oycb9vfES-wT6h>!Su<~vXv+0y%rxk=$ z>Q9VTFbYKKO4px)MnFk{FK&R7Yp!EZT$`d9Zj*&&Yhcu+^e|>`1h)tSxs}*Hf=lP4 z{r&c=I-BOY=V z?j9#$#w5OTtz{m&80@98e@mUTeAwF$DKl2c0Up+HH+~0K#Bi|ltZH&W#$gn3Til&? zsdBPM%=1JRE$<*m$xQC<6%6N1*~Rx2hgCp4=vl9zf69f3N599VpY#6kl?vc<6|PXM zD$}C6_|BNUsTRS`U0hg=#0DM%@PudMje>1Hh7FkxuE7a6x`ZAe1sieHpPDus3nPho z9_;K$i}{;cMALue(&A0UI8A9l`jdb>$s+L8u1xhgRBH}0Ux>An9yqmisaH>BR1lYg zADN|LZl-pRD=B-pq|EHyA3Kp$OO!F)Y%#^k9JxHS6zDub#jl&wRySNoF`-#rA+hWNd-Pdxjns&VJtMp-STT&ztrIN|Bp0r7vLGQxpC`Tv0COI ziib9bRwl|DB3qdxZ<1_fl73jVw-LKErjtw_(pe^0)MNMr(1W!3>u4y4HgOAZU#w5urN>UV>kSv@8NTBduYFb;&=*U8@<~bFtZDCj{_K+>)`$*YCb%Q=&w*C z^~vXB`Xr~CU5r|$oz`_bT_SrV9ueQ2P^{e{K?~IWPiCCi%)R{-FCHlRr_Ivx z!00A@UjpnC3q)ZNMzjD}Oo|J5gd(63A5g@jG$ZyS^m-u?e@Z{zmw>YUc+wk9!DQeA zIbq2~Gs7-p#SaT`HA@U_Z!(~Vm-i*k+-MdPxcR_dq&z}uHuL0cmbjciyyG6e;r%2+zt#SbhE%?x*{>1C9eQz& zE{gkh7*JN!QajmocDV*^Qb=<{7p{`4wkRrbl6`K=Q|e#PHbu2P8eG%!W&^%|$FZ>s zy&tSDjkbE*e3V0pF6FCv>(Xd_f_*JtwRfFsS;DHRXh?YA9k9*@){iHo*yOo8A_JKp zQ?y=6)-~Z-NPvWHn6{6=KhZIuy|qR#^N3=e4yyo|qS=cmc~m?b0uEZOi$tQK!PEE0 zNY)7&D1@d$y1sZS8ggb@($3PxUK@PSi9eR=ikOjo1+#)ThT#K1PzX`CT$2HsqAs}W z;z-?Pn*Xr~n(-+x8<-=E`WtozWBC;ux&=XN{ushr5VmHElm90H!;({kKLfadfrZLx z0%m6V@Gv)NpT0Rjgy%j2#oNdi5b4=E2H1Bv#=vYbe14Ba94Bw)gD$+IhvPCK{D8fE zY=g~B%tVE;Ci@b8LK~sxd^o1U3J1D(nw!@9mqI@%LjNI#EtZXu?RtVLHagC$NF>AW zCBtegLv(|tscIjBzq6CdN7OZWvQ8=A#mL6y&ZEAFwukPme46L6N(gdL2Q=QCr=Lbf zKHq2e$v5nQg1on4^>ik>!~D@Ac@Abxf9JDr#j>|kE6fS4UPs0zyC!t&hMv72Q~=)c zXwO!j!Oqh2UTz*`*0Z^NGu5pLcz=DzSq_$j&75Xi_+~ac1NIJ%Q(LUT`#It4eg%sd zc(XLS49{?Dh+oY5+qrJS`MGW#0F<8Xd29bAXTIl4pkx|V&FPW_A(94d}F=}vrlYg zo?RyC_IUEC2XFoCo@^%NYq;9X1pY$cI48F!^TE_jMKklnd!5X#O^Kmt7Fw;3%(uK@ z`?3?ymRov2O9e`gM%xf2hnQ>8k|QPGH;*u86x*p{>n?`~C%TIld+=`WX8aj6Z^VcS z1ycG;W?MEl?{QRsFl9$)L;5nJ+LP_KyF2f}9y-0*M)?XUAP6b--|1~PmHx$0 z_KSDoXYyW$*@%+bB>am8Te1%RT%n$&B+LHO$9>entHlF+- zC3%yLrzLNIw&ffFUr$vH<#Q3h! zRr21n!Y`OkpxLH~FmOw)0mvI%z&`{NKvkXIpt`jv_CA?$&_FsrIgY$Q)-Ma|{)53U z)-*LI){hrAT&CD)hO{4>)LtC%WBOv#$#c0)qm$f5$Ht5{pe>g&ff;dl80uLjFJa!C zOgWUaZoap(%F;!|v^geP%eeXKQr5O^zRDcAeUvnVsnzRNPvM@7MTJ%%L=cBkH-KN* z9NM0`7IkbHgpaHnatg8EO%wM|o+vzfEYvgG=%x1Xy%?9q zuC3eR_S&iMN7q=5=1E_T*KAsBH5TucCYCdDVV%dAFUJbI6;qDY<0>8%p+Pj-1-?eN z(w`GFk_*o@DMPlL^Yyer4N6g?^y_Io=}OC3P^BI$0zO3owC2=oPbiq*i!df!jbCCh zoMV-1Q{4NZo=aS4>t3`ido!nu)&&Osd}BeS9?sc#?Q7G2Xg13|x%Xe3jjVI#xKrvm zO~wL)PsI{!DfL~p7>?;(WyH+4UzK@ypFu?4a0crY3Q0!pu2Zte73*k2L#rI{2oPA~ zhVomB1n=(m!312Cy5#-$_Y7e5UOdz9b}lpmOI-ZC(OPRS@cFJxy%#xXk6D9H)PO%A4yMU$`>%QuV z2`2V!oaySaAFHB-fKZr{t&9~gCC1#Vkr!KyIi-*K_w1QS^C-7fq-mGwRJ6UE!HKgHg32yE<^-K2x8O zncNP{i4Lj-b#6EZ(E9exH8Jh7 z1kEdo(?pB;BhB!#VF2IQDZ}8xgRKfU3#S}r!zI)^24wG{eDEu%Haso41mpE^B$BAk zL2ooi)jaql&vx{A&;#?ympu*`A6)pY45>0*p3YuVrL$MIBJiJW1%>^JzB(0sq)4)QlK$j;X*2OC+c#)!`J~Wpr2ij4J66#1} zq3~y*oDKQTGEFHW08*BEQk5ic+RbZqFy|IERb1Hgnph(kZ@A5AWqKS!c2rt>Q$=G< zS~B+dz771jAucV#@qb2ZQHgvZJX1! zZQHgnZQHhOOxt$P_GTY;_hplPsfU}~n_DMU=TuJW`+fvBJdc*tP2+-f(K4)0JITrA za-L(SYBn4BTHnW|O8JawDhB@VF*gWuH0AHZ`uX8X9{*g6-p~y{1M=N)X0vJ$hX|@t zl*&~YqN;drU9R_`tg9sk_{3(UB(j$fd_xIt3@0b6Nip9MWRjsqd^mHOUu4CYesO*J z=+V$V9PMN36M(Z170IF$6xlfaFkj`8I*vbC;8u?cQw`d~EbUyOF!JP~Bfl8u=8|W=QDd%s% zG8aaR&@GxfK_TC+^KdOy_{OYE`JqCyR+ichHC{hohFzok=8pJ`RY^3@(P)_${klAk zwDzlHw8F}`&Z8uUnA*Ibwo$n`Y8P8|h@Y%n5*+ZZn9nnJaUBzFqm6!$5j_nFHF{fVDBbrK zGa8?U#sDLP`9yPu(4aCs%#3>Q&r0QPg-1D?i=#8LKafvbB^!gr34{&v>G*;BmI>zu zVvs3$^oc*iq>-x}!p3H$P}VZ8{!=?`H|H(522N(pJUo-JyCVRylfCN@e&J~$w&6a2z{SZ*gpfZ6n( zqRr`DyBn?to*VxXo-IBbjs2IMSnKs;Bzbp|V{f`g^RSybLTvhchLPp<^lejhqFt@8 z+J^_Bm)ho|g=an)vnO?nj zUB`osJ|`MRe`n~Z=@o?*C;Iq`Ksq7KjbZ;?V{O+xmJ+i~V{;+n{a zi~UMH=&JHs$F-tau!Q)8cM_Q^>JPAslr#QxMlEGTj8;OgRd0>6LAB&VMfpilYRh+c zN)aj32xU5!XD_6f&-kK-HB&TF@-(AtzUV>FV_?aIWEL2UhEXY*)!(ccrstybh8UH? z@km|!6}Q)jJMG;w{0rE4KD>u;kFp^WQz{93rW5Ip-;v6xXH+p*_%|E9_%PG)Oz+Rh zM@$^TD$F(b#96C~)f%!+n#t?j!#)-%DzxOV?w1s78l5(z6r1dcdAp?O*&7U(FfY$p z{>vL88#5_*7Gle3FIIm_iY|L%p3MM%JZlnQAu>Gu|7jFm`sQ|&b-jz~=sLAr@LU|@ zu0E_(SJ*T7ZO3UwfuwCKw;CnitzWHZU5}!;2jo(P{i-jsaWprSSp$lVJu*Lsz?~G5 z$Q8#p#6YY48@tS#q~gkO{HKi|r%Gi(7zn6VBn;4S>d-=Z7aFH?`s+Zg-=Eb8J6t!NGdIDpVS zQC8vSWucZf>|JNy>p{4F)fU2gtd@O)U{1kMS5B=*?%wE5ST$qj{9wUg_MVH_9}^GZ zJwtZhG;x+ZFnm93`H}pkW&_J^Mq+=o<4eoAAKG%)Im!`W4H2jyny6C_CwD~|RLMRl z2-hbgCiFo%HpwnBUH_?|mZ!F%@vRBroHV$<4-QgvN!i^UWO{jhv`a!X%%2?qHSarq z4S^+*CC|r<;FZ_s$q+NC-iI@T&ihkJAhz83MIlu-K_d?Ag$+gh7lm)S^ofil9z*)J zAHFfq1*vX%`t7h|lI~tR8uN6YsI8M6y>k?xNOluzE6?1)d}}>VoU&!nGJ`?na53lq ztsG_u_Cl@A9;f-t9SY@tm4^49dh_DCn0t{If+a!)heFjf*pnKn~GpFBPYEw zC6{x2je0YZa9_1XPs%`$xUCYU^AN~b@ZMn{G>=yyOfy}5E_6L4#Y6MoS$2czopS33dX?m_(~%)-!n>x(h83kraELa9>EQO-&eWS3L*EfO>1&J$eyrB*Zy5zGN^P0yH%u5)t@%CPQ!d+6BJ!r>f?UIwrK-Kj`bC=!zwYiNb z!w_Pp4URu9s_g#@1F7NWAeWW-vlPSCY}#)3$g=pM9xWCQ6OUj6Y8#>3h=9>w6IXEY zicfbuTzx=g*|0k|nC(S?pAC3=%Imabi_qRO*rqqLJA5sP zqIv+ajK7Jl{wL5DfT$*7-z#aeQg&dE>SZbkY7>5oJ8ITlau(`yx zkU-~%#vAdTv82tf-ln_24+xG>)o|ib&`hkyD1RdZ*z*3@AR#9mwvj`s!IL&6gK**# zSMUN2G*Z2Ic5rtyt}~a8?iqWx882eH0I=QDXLigQV!dC^8s$MVk;>xdtZ$1s+8n3^3b#i~f@`$w9XK^xF@2#-vfOeh-0sgu8u=R+^P~mf- zInM@vnL&)AgAyi8puGQ8jZW%${j98rKw<`R&9blelwuRXKp-Kmu^Q9Ew`O`lK|P{A z^_Rw)i3ni!GIc?QD&W3q5GR}a-v+{hX<7N#FZoy>FtR`}C97}RBWA)7){pE^eO{NE z#~W$FHQ}odyMlt?U2PE@Kw{h!ZnV zWBOpYGP?bk_9541U7uzRe?{s^mj9uyT6-b%+Bp4_u-oWWqoS%({vPGc8i>tw znJc|de_6+kMi)C}IMvT5_>|!600tl!A_I3~XEVMVx-Q>5g?70jmIfdq<7WCPXZ+GQ zS_qqIQ@+DgnFq!F^)R!~t9|><+Na1Wk4Z?G6krJia{t{vg>qo!okJ&cA{OY% zju=qqq{DpJtSr1WM~|={d)tT;i+({?t&>wH07*RA+G_0mXPEjgGlWNA(TSQQB4AMl z0JK!m^pv)#a}>1^3jc`Ydf4rAb@kAYz#8p>guIRMWR5BQ+Ay<4?Bt5s0Xu~D#0J=w zdz5CLGtmWK#|6+yb#AL~AMOK#D5VBBwmrP-_^$ zzheOrNczRv77qs^fay#ZZv~pp6gNP?J52627+_6zj6?D)eiAeuFP8tT-GYk`_etah z8_v;4G^i>`Oo3Hn_eB#CVjwKE6WHe}^#Q;Kz&l{=9Ogh>N5atpr;B;>gc*WWqK0n? z8AB>3tHVhVI`ld3(J;ocK$l?z?bKN*kPRi&rOX&G`eRZYx`UB|7;rtBVJc1`ZQAXi z)aK*WLSos4lM{BHQ1YZfeg9=McO(O``b3iSm zLq}<04ShI`Aj?-o`PFBy2gU%oeVx9_|80D`jrYKJZ!(mo?nBbog}nFa^>@elOH8NK3xBB0-|FBxavyTRDWy*vHqzM24*_u>gjlJ}ha@_gB5Vg)U*vUb`s3q*Ewg-nJ({M(Fr6$ z_niQpC!#;FD>ykF+*}~f|C3fo4wK-08BakV#9T)e-j1OVyWxY2c!#5I0}QF&}P~Z`f>Ok>gE$jkk!33US0Zzc^&(R*VP9LFZ(1Jl++>&cKLgIaFfW7y^ z2bwL>KCyb9NPC(4iUdIw5XD$A<6r!EuXfCs3}AS__2n_Wl>p z971j9`#w)_>ga?KA-Ca~Cb2Z3{>LGPwT==j@Exbh@oyF8@R_HD>>p37-QADSY`F0Q z(J(#=%5daOW3J|tECt4sP#zR>{sLx24&;e?P!zbP1vu`Zpn+A{;y_YTprUo@(E{cL zGxXE#VZFw5U07oWZY+qJu@*+XJ~oXTE39zir3l6z9<#7fzpw4_Y-aNn71)BYjosn0 zNTe9|m_CiSE+T0c2T;JxEZFp_6(W7?D+3yS1QJPoQjVbOr(i`Wc(UV$WyWe6J>lb6 z#PV6X#yab|-ne8!=(&ZYjSrUo0<^-zwW2_@G<<`bq1WyU9xVNpHalQ=ob?9c1oB?t zQo{&_44+=kf#oPe938BI(*niF+rfu3O@!jXotF(~J%gP11tY!>wiV$I zyRF_}K?eAR_&ffaJ**=d5E%SgI4&bB4&@r?RnOP*Yiy$B9ffzj`C~PM%YcYhsEia0WvKg% zO~-nj1#QE!6-Wq}981M!hBg#dTX7AFG>?4;g6y3$2t*>C#9_kz^&Gl1iikhsH|0F4 zW~w?Q7Le8HjY96DI~5oKf)3Tqn)G5o;XzI5>e5ZzU7#(*4%jJPU`1%>{eNLPV0 znC11UuFt%pTrug!`wWyJ0qY-{gJaF@Rp@665FM+q=H^SVqoh8p zeoD>gKU5w(z~E*J0;iKsjWTN@2_hdGu^2&vOMch8&UmzEdu*cWCL#@Wy9{4m)Smxei`&+{KJR0Wf++{@9-CeYt#-n#E?f*FyjHw zpm&1Dlp&=o%&5%W65X(iNY^%;-jcEqO!t_^8mDNCEJp_6Jy%ir)QLYrcNb#rjx=}u zB_sMHCFQi%gF1?egS97OKGmJ1tA(ypB0Tktt*xJvOG*KuGbqXsS%*<<`I}qMb7Teh zIrMse;#4pqt$9BvHuIQbA4PEmUBakfXb2vHY?a=!C5s=)&!?QvF#MfZ0_SAmCzxl@ z?;U_Xvh2@j1G2%-Z|Awtbr9$Ts!T}dPi4^Bod3Y3+kfl_gSSIpr%>Z&+Z7!hHntBL z%nq*y#&W4U_*Ff{!O%?TJH`Fa;=ah>K979T?eO{&9&7-%XVZ-c`D%K9o0QfjKO92D z!g*YnADA4y+)U>KnU&r*r2oOSPFBw-YyW9gL{Xjm%zSq*) z4`JYMzmN{fK(`OAy6WG&Le+zG-D~DOVqO}}h+Xp6hK9+>Q%&+#lkV`M_|KwB5(cYS z{89dzrHaA#4`~DvHEKsR4SP?pk-7mVYnDfcMbnSI?OOc*kqM z`R{nSo6wIP(vPrkp*;|&+Jo&ub$!q%==0)l6@&Jo;eKZcBQ3i{EASO;9S~>Z7>BN7KI{SO?=Cel6&St+a6Q*(= z_iQ1aFkf%=rXs1UgkiR#y+u3;qptKlv;skdU1J^DQQvfR!)=SeDd2Tp=Jwfsa=06R z1MqwKhZE;%J-@%mb{uBm{C(fez>}*T2sSS0y3qdg zuFk+f!<4A{=vG)aNXi2~r+1z`3z)r%cKqn)~)XW~~xWnf-_1wBQD___= z=N>1XDHyBQsN&;rUqCeQ&)&dohfwQGUrYt>&=*_HWS}BHo#;DP8-b?!} zv%5Cvxx_UOpU=|9UtwXb(B2eTvUu}KNOXAhCB!YxLo8@_G7`M%NV6_OuxNL}65eIR zJ&Q=YmEkuoLkQFdkZAK;&Pcb_#46KS9mle&52ZC8%FA7Utaen`?9MYeRR531bgB=j zH6GH-T_sjKN@&(+FfA&4S{?XwVz$yroh2~43n6xY23no>wJX+Jog3}`tZXk-ca~%t zOLL5;S|-wMlg^^5&a$fhuTe#tZ_(ySCgDRS=|hI?fMq*;cFDlK6mpPdxntJ(f?t`< zuhi;WX8ALt=FLg<;iThuR&_crE3TsNbED8cxu8Q$<-tu>i;$G|B8~dYF!D<+W(xlYFuiK zg!FPz$whrhrjInoM{1#^v~qJv`No2Z%^%av1aKJq1p=@55(tIzNk4EL@lC$ zMj#^fp(vnzG5St z_^pUPBC-WKO^^WwZ4}~CA=XME)_;$}ag=sKjZh3AV2hfguU&mv+F*BP7$j%-hNQLf zs7f?psN)tiVNEF#o~a_9sS=*KBA&Sto(UqJ2@>!0VUN1_XCJr=FCN7Nj*`r_4g56q zhqdPSvC-r=W0v=sPWf*t1`0Gd{a0fr_}Q`KFcf!t*#@j2mAZkXySM@8>llO)h;-f< zsK9hRE$46=e)^D_9*~G-$D%dDw3A^$7h~cbh!XHOQw8I`jeF?&b^$A3G;p1WQ8!-Z zM!{k)kHg%pSXQ79VO?3lgTyLF*1XAPG}wKVeEee9S;~KX?d+X6+J;`hy+_am2Y_N6 zftvS?8v2o-^iegC!jZi%4;?coqqazxK^8nG``=h3$GrmeE891Lry1h^oIR|e?`rUsw%`kdzUkn!M zF8ScZ+R)PzD zpE4!P%a}F&a;Rlc=Yd~pb(UPE_@zYm z5QF4*BRkW^e=jD8DM}bDd`Fl-VhH0Y-)}I|kIpQL@<{l`mm4SOLSoZXF3|6l_2X~m zJUwsTCYfimlIO1kI;KT&7IkwWA8YGLVgOjU(E@^8MIS_Q|Ng+H;{X?(PQi`Nx@~&8)P$EDF44v;QhBr;VQDcySa$d6>WoSp#CM&V ze}4XO^XlZO>&ecWwSy=QaPIPI@cM)WnNPt!HFfpj=})X?L8VQDeyK;TO2XFHhEJ}r zV?egPqhjc~9LqeIzhk0w9t29~&Pw=8oN+iCqxpfj>9M0M7!~{c4O6YBdHBNq(1fVI z9!($t~Eb?N43B>h-;#wMpM!r}nKPXF*SOu@UFhCs|qjKvNU~wl|mE0^=tBe@B_e zvUt+&x@4bA<`-Dk5M`nf?!j<=`ul5!-)xs1-vc%hB<^j{4eXs@xXCV_yWSmXo5*32 zrWX!;(>VqswP$V|+xd57$P(}B{eKe!!C*`SaZZfG$Y*2x7o1&uA~LcX?g;`Zxo=ld5Z z!QhNsf`kCxO&mjI1^bli%De#;OZl3@BxT1XH9RnGI9JV8G>XR(Okx^GMz+rPtgfFl5f~uEgs(Ma zt}vR6J)2^i3GXeBM4r`0=s0uQwEDQsJY_QP)FbISSkuZ6fAjA<+etVael zPbnR61o&b)OnW=CZHIV!mZAiyj-7~c#pZyrypI$>36R!pk1HMfNX^MEdOOeh}C zlcPD_5x%d_*b)N2k`s+uH$PQKvN1iHC2XZ;vd1YqI-6@8`wQ!}u1sG&T?Ag9DyR_) z*#9k1O0gj9_g7&xcf1NgN)X@7!jJj%9UU8x(t;fRTk%SS$1!cDR=PWvgIfMEj;QXN zeQ|7zhRDXIw#|c}yPZ$o!g|pvUTs&yy;rdIdt-31{lpwGk=uVll=^rLOp1T-3eA-> zUTk_Qk-OT=lw$FE;Ir9Ts}RY7NT-a5>=P4bq}M7bHhan_#xzA1K7GY+%1aK+5Zra= zc|b$%__!_~zYqQiXMMftTq1%4`Vy>_CxFDEIY>wV&_=>Pm?DMo0>qXH0 z7YEeKS+>9hLVQ}nF1O5F+jo1UI>(HT-V_~z(G(rUu*_VOUYM$gCGP*0>hOy6s6+>< z{uOiwy;g@m4L_o5V1N1$&}pk!TGCd^@%H%K6C`-yRJG-ht>IAe_M0^TjDeJ?_rM%t z*%~<{J55qA$XJe4J6WN)vE3PjK`QiMNe3GYeMR1M3VzMGJP=FP-3oeenF~cZe=DOr z-6dIZGeias5-T^FHL@20O02`24)II3Ol4Q!x*5%0wfWbO-&iLS6m_iw@hG*SZgj;8 z^0&5eyz&&)HtMs&0`Xiu3$=*DtC2fpT?oianbxJgD%YHkAY_4yG)Z#->V$xNRy$qr zUWlxJTB>wr0la$N;cS`2)l~!BzzL2;9PHSaylrg1*z$tRR6Jb0pUC6G;gQo)Kjo25 z{GZa^3NDwV-zsP5E{RuXBy2QpZG0i0ZWiisLZ#eGt#PrjZqM+WWh)`5V_&Vjp8Qx+ zyFW5rO4x31|Jw6NFWJWJnd=$d8U%)EN~b2z`C zZy>m-UYc!h--n8a*PnoVC~U$9{b^fHO+7qy3Y5*^ZSKdf zmJjEQJzAvm;{hQn;gMh>L=)vsazxH{{2bq*u%Nxj3ZQ2WW1KRTL+ zk^K}B?02-b+Efg>j@oefAa_o_g@1at9eS5VBy6@QK_o`*w*muF6KzYDe6DzSF!ZOA zF-P-i3}!>9qAaepU3+FMcs$5}p>tM+NjNN!ZF2CXL5&-R##9R$w;3snW+W_sk{?+B zlh%zIuDR=wT)ky;1ltnZTjJZ{slM#+M#kCUpknXgx}&Bdv&5CRL)>dkk78^HwfaDY zmMf>qz2~4YM zRo)570aj3blis?xsKQkQEqPs)^HPU!p0s+{*vKqajhY_PLPkezS>0EGPb}htycV{mkX^YAr?uNs8%iOTJW)zd8WqgV=;uaX9 zWQtnUr%=5$r7|8HyjjUfjSZhDGC%*_%ewN!p06haXADE1yDcg7tXnL6Vu>et!F)@c zA-NdXl}T`)cLkIl{e%4h%(0dg+g0vQX+?E1Skbm?98v4yapp5uIhZeH201urNUx(0 z(lyDsBgrEQuD;r%C&+|RQ>npAW_PY}dDT=gLx}aH28iVaAWBY#02YU9pAO^>4A}>f`!)zOrpp9YbGjBs)?82F=sGy4G6_dvKQqE)$q|;S#_@@sZTHvwY!4Ab^+1zuTSLot&MT)R-qC;IwUgU$UG`-D@iYD?kt!S?0Xx-6-P zLbG7Ofm9uE0FOY?r+&BS&3bBmNdy~s8J+=`6=U84#d-1_hSl6ShdJLfIjjO^4sGc= zIBurBo>Y5ElUIpG!wH)Ee-R z?9@Y`JF;EI&OfogsJE&f>?(IkvM@AVM;1+~q2QO06(-FK*_B0ymXFY=356c;l%=_J zm(hPW6=IfGZxm0vFWkFo5$4TIE&qBrD^~p|T{o{NZ;DJ1z^c+ppr=Qa7{rsz-=+HJ z{6-<`cd(@(;I>dDujP_N!WO)+4qmsi7?SU%ep=t|`X<&XwZEWEh|QsOIxO9ZwP)#Z zqRw;;Q)*jV1 zSaG~%gLRb$l}b97yf}AzrBMtol0`vgauw-Su3QUNtL6}Ty57V(B9P%z#5Ttp8a`#D zDQy4y!DaO_yQxIAtXUKlJ6%QLR{R}V4>9SSE+&$@HvWm{{m(u>rma8R22j1*g|HQ$ zo{^tj6QB9bTz?iq3oRO^#eg(9{3)bL6?IkYlnDqJm zy*X6|COch&vsXF^e8sY?$QxztyA_P8lOv2JO%c;wqEmc(Jwl_CR>}dKn_Zf)=RrYZ z*|y@^TQ=!d!@ujNU(V(pqjYm7!TT=m&QepZO3Q~ZS3)ErT%dM;Nia}IO%1F%%s_KJQs*YKD zOCLtCE&O>@i6$gt7|>Ia7TjJP#Td;Y4Y~wXsLO0wlpK&+y)w_BeB~F;uuVYhluoBj zHF~QV3Eu7{)63QkK+a=>#B>`kom-?>sC!9I|Ht#U22dcIF~0(`{;-P--Yu{APpB$+wyQuoHbcgF z*LV1~_`c;|PF0EHAC*1wp#DN$_(wyBy))pV4jk4pQ3JNW%j;BixHyXg2pG8wZM^e{ zh>NSZM7f*H-lhVK7?&vbXX@A9-M!*^9CJ)RDp2SB&4?49-0YH68l46d&F`$%FXNHI zO+%Us#6K0=hR0$$t^U5>oM*;p)z5|%JboSQn$$z23yF^FDbMHF#spaijOil;yU0js8f ziM{bk@`pCyyf@oVup6Y3@ZW)DgiZ2jC4wf`8^<3Ntff8(nJ%I&B@w1!>ak~=&K`G; zxGjex?F5xv&<<&NwF-?SSb)8b2X**8&fS3L--hne8xmGt#G|^qCAmnYKTnzj4y9Hf9 zKu#sh>E^NNbqQje`0Rrh$-#NHhR25zC8cFh#e=dk1nd0r-aN)_U{*CfHPqNcE+Nj~ zOHEopT}a|7_NS`k7hUQE0_j^8gv(sFtkWNv;&DG`-n0J?(ko=^LAr?-E&R1EXcKr;)))Wky@5*a)Gm zwtct)J8dD@wR7QI4$5iDDRWi+E-Anqe?%U5mdd&#!+=Hn1=7FjcH2$65+NpW5HAPd zS)a_an^vmSxi%lI5@2xrh3Sr`WFU^94UUg$>@6q6ot(XZs2<8442FNHlYT|U-#AD2 zWu+x4dA)t?aH(X=k!oesZ{C{~%RL3A14^=yV#U7`P+PiID(=}==UvpZ`5f&l`quLN=`@qbRhcz!)3!@04SdY30x;M==Uq z2#7q$Qk|`uryjDtOoZ-g8|p=9j*OcP(^JbSs$Gnqi1i7*PQeXvv>n_M$-w(E7X|4L zT<(==ZU<6;DFt=xvpUgc*aB~b6?ruuSZVz+K?25Gai2ip_p|n8U~qEOkVl$yk!@;7 zmRfce5nl?jvVJqP60<%?m&WIFv{yh?O2g6}0>1qQT}>F}O7#P}{PtJy16|rpE%=5g z?^TTYdd=b+m4%r4U6QnWD#Fe&aX7eV^saq<z{Eyo|8W&EQ91wXryj}JJI~%_2p8^)S0R`Gd-~+ts-KRr#uHB zvqT4wOVqJGMxzd&|6?M3TEuxqfk>BfVwz-&mZohdbom9!26% zm~*%`mfC7lH~a!95IF6ba<*zu2#mcytofhg8mATE>!e&g?(GA-c%2}q7He4*AvUBC z=%klB`EIrmFUG#`xR#>S;`oZQLWNhyx2x`2_1Kwx*ZdnO6iGRY0tIU2KAtLhCwMd} z`y0QqxUM7imfgw_Y6uT~cTy>KGV)9=9Xz;ppx<-4I_04Sg8cRy&hnLsG+Q9~_|D~U zY#a+9p402$%u(A*?J|q}uT<9-5cZy-tb_N|Kk)K0&b+-}l{W?usIT+-3$TC4411yN zlp7tA48pJNd2qFR`fAybOBby(cU=hI?}B@Z!Du|&kj=KksUK12ebIUw(zu?~6#sS? z24l_*iZoebN)@sVXZz#M3@1r3dHJmGEFpJs!suEph>ut4SQ9K2I5N?dyWhs)zR{Y8 zywQfWLstSy?phy1Ky0xLl!5cG_ME`IZT)9aZ$p4v)D)|DV~EZ-15qaTs2ur%dFhi6BqacH-uuDTh z9jI1Vlm+mPWcWD|j7Wmo(?#uaqN^e2znMcIBNU}qaM?!rBJ8)wUQd5{@O$3-VG-~} z+|DO)64;FNA383OuXa!qjmTd3>fuPLWKTkt? zBS(TiAyOv>_E{-6D19}pREx@tbHh+1R21$YF0oL)cPvjFN&bV3^d(vi@^*aqpdOZJ zr5j-EojkGlc$-)yePlFZOq*Bon2fjiFGqYUn&yrohLehp`Jk9-73W6`W0o@S8v73% zm(yjDxacCCiZk>qZ-&CmX)R;cYbU243VW^ka4+brL+VY_7hVfTL*e{ryctOYS?Z8I zW!H{L&L7r2s88Pw*=KbA_xx{OP(`3_ex@vMd&QpfSX@a58{-&m%lLg|^Q1ZCNo)7T z*;ijQ*5%5(s8oFbf@hYNA_tl1pJ(!NFD(alk>0k<_Ry_>FcOuIcLu3c>J$!Eky{A} zrUYa-0r~QENPf`5(LddlgZP6KR2t~~M?Dv^BYwYH<}WsA&z?0ZC*k$8k@EMLem`Ct zEEMf){1IcHLy#OCMH@^#M)q5I8O?Wvr1Op5z+pRtlzf$YQlQfKo#I}6-}|i&zWK|_ zTydyAiN4c)5FAn6pq)DoCI$T4f|VM2M752H&AYd7**Xv;IlDp>8Y~XgK_>z`cOuey zIKgvt9?JX;4Lfp|b^;Xk_C0XLz~JsAEVNzX$C>->&C<1BnxV;;BN)Gm-tS#WeryP| zW{n+zor96x=+f_4PWX8oJuJwnKbVbUtT>X&{1jKgoKLvCcKaS$#^$24@Xe`i!GF` zNFbj$=k`&q`^VsPC+~AI@o!GM?hrg8>j8%7d%Ns+l0_MY?zWaDT z^W6cqr5;OZfm+oG18JS-M_^g8)qWgUK?i@W=dwmFK~FZ&UP$HY%QF#XkHq88AY&ex zaw#~+eFSs=k?NsnN2imP+Zlt=+zZ*CHdLUeAj$hGDSUK5e}QI-7_2Qk?Fj#nS8*5P`XkG)WOkz<~v#N zbP|j}ptUpXjjT2YItO7+r6A-YV?2qzTb-DUzoYJ#Rx3`r@yUpVjC*`lUNTkABtltdK%YbqAD~9J92?&<|8cQUqw8bh?kuxe!jW? zVH)7dE6(z;80aC;wc5V1;R@~IO-Y_kSY=hywz$+Ujp+bOb#79dQ)JeOWyu)nQK7n} zN|!OAMAnP_(1KX7wt_jj>wE`Ib=9LR1#;M4-3tTxeYHs4Z*!X;d{N!cMLuFWg}=U! z(Cq`_TbfbY6Otu2C=ur7-izn)btE~|G5?=PYKxxdjd7id8C4m1F5Vku(1N}|j~)`< zn$)zK{q&z+%Z-y`_x5$0<3a|QL?S>E({2|tyyTYM$zviFACodSbN7G;?)5;$M*-x8 zTY{nNH^faU{E7heW}ydA*Nb1+pIb=4z>g1GAU0<5(en&fX=5 z{1?)I{sAiLQz;Vekxv_5Q=H!p-*enKASmfw?#9}8eBk&U#j^mRn7^H!z_Or}5$nq+ zdB-_&CX)(?$G{CR`&*XykSi)sKi9d9)BU)cYKc{$5r>I73$89r&EaX^{XljJ!d

Ps^~A@9pmQ6L#;tnEPAeQX#MOs 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℘b=|hl6O->52 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%0AJXXkE%TA~g#1(yS3(SCxN= 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 z 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
K!` zV*0u!;cZs;a_Onqtv2E*sMIr4pwx#fC9;9PNuYY8o|S60?q`73mwzuEYni#Hg(JvT z0zwfa5F@TuK8uO$&!C#e-EUQdq_DKCaZAg3)M8U~t)7fFlA3+Cs0T>75SRJl5(2$k z^k4O|jeolBPq>t93%787yQoa0i8E!gX^|5>_h-;;w<(4UJJb*c%RLnU<_A8tLI15D)cmH$#E{fE)x6@jiWl-Nw-yIP2i+h2nEO zbIZis6}%4%{Q(9M1r71A7~`eQOmy}7i#_MHWHwS(IM_<1Ud(20Q!jv>NwST@2NZ1^kjiOU}TRJ?@1Sz1_)9 zuIQx3Cqsnv;L1Drjk(-d_}2?obtr^HPiWI&STv|e=#TvNfrO(IcDVLZaKN%W z)T>BCAcDcDk{jXz=`-Abz42aw?UV6XHBk7M)c6foD!9YEDQ}_=+o9(B7rE)G?J-60 zD|$~J!txjhPb|3cTEEi<+X0W@9+X235du~BaAfz=Ch#xE1RNdNS zv5`-7c7y0rYL$4{Pgx{ZV8YY3%ZKx)AK1&jpE zHy;l2aAJT~?!(K1GNd~;m{>|mGlAI`mCt<^&5xp^-dgS}fexQ2`^F|??=ctU*T?
  • `C7K@P>@_8${c^Ah02yZo z22x3%BsOAZO#Pk(11hB#sT)$)M;`u#KlBS?e(DjgpBe)^yX{0X3bFrgGJf1}vCzQ}8QqC@0D(>2u#&(NtTC^WPlep({E*Bi)A8HutE^Lppn&%Vkc$HPp)xLW z^Eu1A$Gt3c9|CD>fS3g4);P_%tlm-9{|hb|9{~qOT9(qAAtRwj%P_GHL^Ejku}f{( zQdwH$$FpRUoAL#NF1|Fa)(5#G@sd@hQi)um8ZQr)0t-fK|)P zq$tg@DiQv?nY@$xP^0hGx(0b`+BQEo^m5=)2|X06(@EA3f=uDG8Fg_`#fVXp5_?6u zpF#4mhxlltAc6{)4^YkBO!FM*!<*z+SD1HxxQ+AsXc5)t6v zhuK_QPJbf3h(;f7GDtwN);KTaKbthwaegG!KqcT)V!FOQnMF>{VZxIcbml*(VeXsdyA_AWw5*@8U?0HltJ_8D+*1Q$hnlih@W;q z#p>l6JCkyF39+If9G`r~LMyQn`otdFUX+ZBe{8dhk|iC1OFGw*)%EgxG@h*a>hXzo zQa5U&I7C@ek;zt#rnv-BP#@Qzf`OZw!M0JbY$eJ{s5lv+?K}iM`Y)(o5x<~HfFBRB z=QS$bJwER5b$g)GNz#<<1pXf~8~qxV-`JhQK6N=co5J*{iOT1$BpTKIuKwLT< z_fn^rXO3%zIziUjwn6IQXpi(+J@A?7SWKZeP4}{CHnmC^hr$&LHbiuI z_1k;h(*ccYeK@(ia(;dSj;*&?iBHZKST%I8hbQ=-w~{?708A57?rFwI(O;ZC9(lB6 zk8MXpvS_{fIr}VXFD%}GwzQmkGt}J<*h%aLy7mXq;ev_#f3>)KXg`pi_=zs(zThw# zHSxgBp3^4Bvr#c6MMQ^fxbXIMZoW=KN5wdc=~gAM7P<|UuJ`~s%Inqr9;@EO`=WYc z;fpC?bRe9je0R^oQu^}D)zUie-93*GBsHG|!iJN+gY&D*g;^KDBvf+2Znf}@!pvw! zkz;BXV7xN2`uF72%jq3@?KC|VF)u5%LsOBx7%}m@uV9OTNok{DMg7j#$zs{?Q;gxJ z1^zVzy3^sx70BE!#rmUBu~E-s-M3U((oPVRCqH<`=Nu5s>NQ&j&a@2~A6Htz#rnM} z48mjphN6?=S|)}Bg`h|%a8B(6_hAe=_7ysk%Maa?6o%?aV)1#Bf|xwTh*~CIErXZh zY+Cq?#ql{Vfa!8#nC4Ai$%KO|c_LiGtBT-MmGrj(2Fem>(dvk#f1~Z%BriQ`_rLA* z>3CP*6AJL~3JZwKd?6f-b{^A;tgp4-$ zE*xA;ukc0`a}zz8FHO-^BEXF593xDooNo!=j11D$ST#!}zc1Su1b73)vBG9pm!R;x z-Blu)d+puxgg@(xq8=6xW_;j`ca5^qD5tvqY42tG z`$}UWl+wSR!+XRINQO8?=csx6K36B8`x^%cB6rdmRvL%h(eer;n`+&Z5yr2zcr*## zb&z)3-noID)SDA33@M!`E+k?eUq6LP`n+ey6A|XKh>4g<+dHx>+Q-{+d`p1{0-V#( zOog(eqN6C-MDfFE#l9qcVd;gWP6EQ@WI0_dVY=?^klAf-bjszSo;x#1!H|8lPU<+2 zC5x@I8l$~-)!l|lLran4WnJdJz;)Uxr4UEV)=Ty zzI|tgRXVfZ-fdT!A1L^W??7zPai?PeSZ(0D3f{6Kx7%SFs0ctz_O~`+AD;5|<7jbq zouG<6R_sx9XY)btoV(5|^e{FOaMdwt?$BOi$ zWuudZ8nK)`k_|r2(&sWOl0oSLP9DXZ=eL(v7qER^ts0q9Mn~TF9+1+XvN5w`A?rVP zg8)lFw7-JUqn7jMuF9?=-{o@!T_ zIT=3G1L(N_ygPJ((~7p)-LAcgln%93ao&7{p=x~D=BmAaJCa<}>9SSa_wE*Z9a-?9O6(Kh>Cr~kc_+~D;x9L-T8aGy-NAQ-(u zhF%kwuYn62d1X*KKIiFy59*xD#cYNcB{7?uAd$m|0Nwh@FToMr{sR14LU{P5LISSt zd3Zq9q$(L5Hrmfyh-W0Ho@@zXfa)&=gBPh=;Z``5ko&Fp=39U+-*VD(X;Fd%(iB+Fp}buY{N9+DLpvik`Gs$Y~^27>kgi@aj*bVXCntxuy9eH37H~~!y=ERh~5gbTc}^CUE%nm7WPTS4>xMps!e-{**ic^&h6%m zs>WyP0$r{9o%WJ+F?7PNis0wHkMIKw9C!tU6WJ*;}uUWewr| zBSvxxk?7W}kcbneGimu~M@_fC*V*s%2DiNDyZXQWvDtZf%dG+`egy2fg${F(i?wK8 z_8X-fXa%UELuE0c5)W0@$sEraqcPqkiLCuho-WpXi1qph|ehYU%YUuFkH^`P}3UH*|=n~xW(2K@l0 zR0C=Q9janCrr2sa4~r4admy72eemH$%iIJel8yw_=($%Xeu4zD;nP8)2HzY-Hd6!c zg9RU5ol@-*lCr>fDdw|l+b<>K8JSPX>2p}3`Ig7b^CsiVOeG#ruZEv(ObqgYvJDXy z3_9w@jRX-hw9Ie==k-4k@Xc^OEHt*}m$CD+xYx1bzMU)j+M@OB7cJG&#I5%jtI&0) z2quw%>X|PYr6hKT5J9#w2by>MCyk$t*B3xz3;KEUo^3KMG_V!fd{w+ST zEt~74k_0AH9~8h0>tkq_x4)!8iN zg2W=_kgVxZ9vqJ)Tn;WUc(^~PmO*uYAhm@`9#k$<6{^)A%mW7n%AsgQ#5)19D*yRV zDv(Ghe7h5{jC|)#(6ml`9w07L4$CQ~=PoHIQVGtzfN=`PWgAdAL1hdGiWgDUAq$ju z^MKl7>InTydE13@a*YDBO$P?SqO%uO6-4iwUT8#;+U6$pU`EHD_p@ zJCVl>KRIxm;bo>jd!N6k&=sJQtRjK%h1>@W_i=O;WXq+g!p(Q0ZsJU-KD%I4g?-)~ zU5#E(!CL;t^M;w&bcn(NPUdE=_ny)Q06U-wx_E=K=PnpftWXa!ty2YVtIvnu=*R^@NC;}+;KUfJs(3D+5tXSxd!aR-Lu)G-PK1oe-~bhoB%r7Fx!*%vHk)UKevZWoAFvuK@TbLHO9Z-2xQykOKsHDTTnD& z1_qX}LDCR4X@E>!3QYyd;*RGs-|3%JDx_UrVN-1RnJuZ(ZCO_U`Kw0^Tvx9FKSv@=^;Oygky?X&_hZBOiKO0$EPso;rsR!?N!)+o(HD8+gK+ZclWiDC07G7wNPNBXc-t29rtvv28z)P* zEc+8=*tl;9w8>!3#Jo4%LEsP}{${d#0Y2d=P3Cj~pyr+BNWRBn^}3?C(46)bBo=eB zf(;58t}u0yng%*HHpS_mo+1s+&TPUHNElu$F`%eP!cC@q%sXd)F@B3Qc&wbp643E% z3Zc*-O53%x0*hy~d=9Zx)19Yo&@hbK$>n&)yW)rgem5#nxEI?6qI2@de$QTRvHP~s-7VlRo@p0>^8C^Iv+7=lB z(nig8c3WjJ;nK1Ud*V0^+S~1#67ZAo=L|Z-V2mbcK+v6!XTU!@n9QbQ@NA;Mnr#G^ zZkT4y1q^(zKUeT`sr`g1rHuui)3WZR`e+e=E_#!lPzN)8!UTd19Adk@?( z(D{z$cGOMSVPw(taeYHEXyg|@W?SZXq0nb==mHNMOhMpenE|=Lu>9~CzUe5!k0Oe=)vZ;m1?>*n{~18eG;Ld_H4vGFBG)d}06(-!BYUq~VE!dc8D2_d(2z zzyA!s2h$Ju^Dp>w@{Z>1hrhx{2lp8K_#1rmrrf~JHiD%>2Al5we!BJZ*5ITKPjrBB zH9DIh_Px$2++hx(?&KQmb!L#X-|u#Mdxzfx0!vsaXR{kf?DRTEka7TS7=frE;ra24 z4kSEZyqVmnc1|u}-+;-%#<0&{v}acrqc6DEUp!xq-Yvf1et!X*?h=;b7u@qNAbQ1` z3PRVv=)l;0!Cn7ifAIm#jn-dq_rG|tn4N#Yz5n81v7XGn;NE}Hg$;@TVE4cHzt;eJ zO|^Cqk8h_lg1Cct98NE}B;s*2eM?B}AQnB)@4>B!5)hN))p*2Th|39Fo%Juqt~)nU4_};E|&|p1u*E?_gVAP%DoSqn8&`xL@4R zHzM_q<%mBJq3_W?jSzl}82$5lcKwALe{_qrn*KB~;}3*`%K2+D6*83f2um6A1F7A+ z8$*6C;0y!9E;XTemjAqUa(vj`g+u*h0hDXLta5pTon> zcb!8(>qWoQ>Cv6!=y|7~{srOg!J()3j;rq$Fc5ZSpG_X^bsoJO!OEPhAGOU``^nGE zke@Ff?f3oCf6633H`~Bu{^-SXzx1Co$HJLz}r9*99Y7LOX8cF@vjK3zeS%a$sm z+7XYz?^G!ertA-Q53ofnRa@Z&u{Nd~A{kCY+L$dMu{eno@#0#i7EMZ8eYJV9K4Y zh6mZa#YNEU0u~78Ao=$?=J+A>j!qAUUBQu#fn(@$XZPC9}O-S#56t{IMGE9w)~GRSOhY5)%jw-mW0|JD;MC zKTdy(EA%=qvX~|81bPOK!6ilPW0@nKV*9b9ZJ!S}?`YfKKR6zMYC=aJZ~Ob1qjG;= z`bvGot{XeL;F<#{b4PGqPZ26P3Z=P*t!MB1N~3RF&H6LYK0G;S zQ+*^BIBjdhkU#`65mXbp3QNpFC5=K*-_tO0>8 zDdaEvv{k@OZ`%8v{lo5ygJCcZwFB5Xz#Z;t1nx=C=^+HrE+;gXpl@|}{4%Y>UF)U> zms#us(mIp8gLKS+hbamJl!cQ4Z&Zlb2>l<>J^){cAdbp83A0z&J6Z+DC%6nx7FUmG z9rijeWo2T_d9ykX0Qt0DI{*v~Zu{*4bO$yd!0sG8Sr9dG+P-}9dBIn=5njKJIxy)# zR!0+a@NXh`wqJTP3^B&- z@cEfn;Skhst5gCLQ(Oh`1N0!*D+Plm#KQR3+ynBjdE0>a zmlz@$82_5HlYcA(wJ8At8_Ayx7 zyv51-^9wzO+nXGE#RZ?hUI`nZDm7+qlwa&m(x_zC-cQ#TcxzC1EHvSt;M?#@Y}!Ex z2d;u()1q}vv}}_4lSej{ubSZ{(@F-_s=?uY+3CO%AG`-9140}=2VleJbsrDjeF25; z9&Y={?1K`gJ-k`I=;1;>of`+%yv9yDgCV9{<`9y!E!}oyJOAkHf}$HzVdukSe7#12 z3oe}9-Od0v{_8Q^8|gf0! zK9yNFppI<>X_*uce*R69)-WNCD>Yz98*RO3)lSE8i3H4vCH`7y$>W zo^XJ8DQuPF0thS|q&W4Q*s?+xb_gz7^uVoaWJ)9ys7gn%H|@(`f7V$A>rt&c2i_Hg z)FiJ}`1YNg;e4}P$jyew!HjB~K4~~YgzLf4XgY`J+U)!wGs^19oV1!W`0qH6zrda#(uGDf#h3Y@KQ$UAx*kvV`I9{0c=qSuHuo z3fOVaGk$WsmJ9;xX+R9%WYUgbFBt^Z1SCchcHAEKZ-4i#s&?IujsWNC?iHg`wQJXX z*REara%$gJ%qd5vdJi6%Ws9FEoGvLtCF+D{RtKLxK|{TKWb1!BCS?d+`S|h@-RxZG zH1o_s53&5NtCmUdk{0B6Y0m%51x@9MLEIST9hBXubBmQ&TXRbVNRv$$2pa(9_Vx`$V#o$6h-b{-m%R)?r6!Utgzu+hF7EIBn%vd))E*c zRwbJjfB2Y4Jsd%ilMy`}8Gr+@ojIN!9ReG=`S`~l4`$PIFj)g(D2S$h{1H^2?;nk! zCL--1B!)M&)8Pel|HmJDKf@-S3@^IZkRy#SLw+{WgRVw==cyzH!+n5nfsfYLADG;W zYuwPCb$i&Gx9pIT1W(;zw*TxM=E6HB?C9Z7Fd{R2wR$Msh#uuQJ^3&vJDFY(=i=3I za~DKP;@1(*g9{j`E}ICFo`)n^-fP~9*fk5oE-0aKttQMKi0e$w5z;q13h~RUJsQ>P ztD*J5yQS>v?AxVJYrR)cpN_dVT~6N`om_yFO85d9s^Hb%&P4p8Y?>Rro9a%-52A*s zXbq4s4V6Cpwuev6vQf2KNVt4B6KR||(H}&m+(Wd^0*WU%zX_80$26E9ZqI%3nWu)j3s6GfihL+)MtS57! zDP=(SBRF$W*a&lY(&w8j?;KC!Is_t7ITBrUcFE#SLcswwg6l@}n(txFJd`21Sx}+j zODi^TQguAE8XzR}v9?K=PV?n|nzK4mCh;>^p~Pdv;06#8VyD0qb9KZU?Qsu!%_CTMryX!1PdC2@W#wdUye_9!A{6@`rbNRTM-PTYblh$oQVZ!2oG18=A#G zL|M6Qf@yM0Ir?}81nOec1HFPp3)C(4kB{UC@8MXOD<7kIMPOWFR;xVPp5CDBE~vna zRxaE7Z*7cPv(V;jIDfNJ349M&sQ`8axA97ao^Ewl8#qv>TCChO^ah$Q@TyNOhZP8l zcC<*VLj2OB$Pqf$V4^~#Xx=hBK!Ha-Tw+G*p`$P-abcpcMBY-G5yqw;fs*OWp;$-m z!J7`e&9b9gZW4I?Uw}#pf`AnNJv^aS zwZ`{1+V_&<67ZplA$)-tUzYf<=Qqb+EAdd=}+NW2Q{~& zN^p||(MKH@n1p7@PD@F7GFVyI)6$ZkG$cuYT22_0hC;zm%ZiB7FuTLoqYK$<&0J+D zP--dRl5^O@L(DRtzk^Cra$2Y@v*}xS)0++GwR+AaS}7bn{9QVj;j>+du7xw+F<+gX z!C+^%*N(R_K>a7J4tRNfF7(CZHB9HLBeW7VdIb+bAm@35WMLof8|IpF+DZ|>EVN|} zh8SyPZla)AK^Q(BQ5X{Fs*7&I%5~NR&XjfLbLX?GlA$Dlb<`ml5wiCUQ}ekF2u@ja z*`Z%92nx+7gL01lss-JpOzq=^?wX5P8D2jr$}Yt{mm&_llro)#Oo?|yB<_SS2*pcm zFcuY~Q1}IvT!L~FfZ~|D@E@;`lHkzsWp2(Rn4>;!M3MNG_5$c=gu4O8^rMRHvwgr5 z>&wo=Gtxz&))ki&D2vOYQ1yMe2Nte;mwkn*L!jnJE0^7UAo>FPEF1u!J|fiEB06g+ zgX76?6>ZNfaoJLTKAA@-TjDY$vDQ=IJ`3DzsxOw5y0o4CRsmN@P?i$!aOn0%%N$MB zvV4u`(E*!>IT;^7h?nx6H>gLm(e##mu$I-`oxFQ-GhF2A{0dZlT(+Y#Fb2<`ciVK{ z;lFE3aL}Grt24(-aOC)AcdrTE+um!grLQ5Z9y|vHqmws{*W~VL$}6C82@l_Nw9~^b zuu^u=i|_@`u$-_wY2tghe(9pZ>l9~~>}}jXYyiWyn_RepwrVehqRyaw=uD<3tcb~@ z0gv`rD^4&sq^T8h&Gm|mcG{_7vFM7Li|af}(J5w5H{w_$_E*NQJSL8-^mkWEUjEgCMwq&*1mN)Og{~8kGkTWT`;jXM|tR2?a zF|^!OOzpr5P4~T3|5w3A3j2R8Y}K&T+x}RfXq8v=u5?hrQl0I(lY=*0!qGA=fZjf`-Yv?-X|dNm6Oo+NekL6iX-_XbXrwyRGO1 zt=+BQ6Pqki%-5Gnk%MCiH!P_A(8gt!lFp~TxUB>U9VhnZP_957+-@H}P&uhEBsxh_ zy=v?@xg>l!c3&OBU(&xiS(;bM-!My5)T&ClS+Zh~Kx-8QyAwRKXx<6s1z`xFG6Os)jR} z#Tl@0aGaP~p!H{m-#~c%a1P8NI=fr|@vt>OAMN3t%1y2|{j%Jm4^)3kE;J3Q))yt0 zwkSjlv5PIp!V#hmj4D#*6&jFyRKek!z4ZdffN=j(W@v$$my7I<#B7tKAVzSZy!d6R zwE7P0Y{OJ%r?}w-j^{GsDdA!So#8O^c)g0tw!?C`TBw*`fOGv4&bF{b*o+=qJUncf zSa;YwO5rUhC-+N`t5jD5**lbavhEKaYSuQouYpVx1c@miVha%^r(5@m+@~W{D?6er z;(+SNxw;XRwL`~^(UcoCmE;m6b(CZd>UN}8tdqK%= z^-ZF{a3WfED~id9k1@a}WH@f#M+X5*vkKrr+Z)4f zmjnn$@JHsPaW8CfHsou0&EN582}DABBFCso3bg4aF@7`9E7G-=E^16B)E zN?ab>4A6WLhQh%-3}B$C5zIFso&?OJL|ytQekEP`9sp2?WmZZ-zJ^V))!t?Ulx{&X z((f(O#3}8Um5J%Fx8+W=f$3;?foTqpta4XT)jG$Z)#>2nQYl(fGz*8!1;;D+l-l2e z2(%+~p4YN%XnSEwkkyK{y;rvmdJjAW83%>dM&^?&KUyD5pFW!O0Zcw`f8C(RWS!Y+ z8~Ul64D7vzggzgc2xxPy<#DA&sy0RoR78156JL3PZ&lHF&J?s12>#+`nmpaGiYGe6 z;ABted@A?)!7i(UcaQ9Q592EABNr`L`_HnMjdgj#;*f{v#5R7|3jHtFxKkU0_|^ex z5Kk8N5a7>JlIaRfk~hitR@CGS+`3VtlLXMC3m`DT%GjJCzEn`>dO5u~g*{umQ2^ z{Q-UlAc2oP`{t!Q8jD(e_YlIH5Qk)3ljti<(X^DX!Hovp_`HgP2UlH7qs?CXQlT16(?-EPvu=mu8dQjP4DWxr+ zJa{#3IU^S~Eh)rsq(GaGf~-Rdw%RB{LknwTQFz8K(Od&^Gq=v=iT#C3joz=XAO*RD zyYq#@e{2Qk=ChgbkRpFA@QMBQyw#Ai6#U0ETRyZ074)w{|5~WG__da@S1E(lp(lTgZETlH)HUSn5+tq<~D>Ovm_Rh4Q>s6fjmsZEnGg3@|0ODv!? zXx9A6!Hf_`=Hww&HIqljNHF~ z>PP_!D9rZcSRGZ|ozTj|nBzgRuEwAarNN>+j+s`d+`#*owAbgQJWpiHM?e(M_zzpN z7TZQ)-bIK9-z){g^eAdEG|sbFJZY&w@W<$sHN~TIs+@-Q&^#Y;&0ENSu{3fCS9)EOJ5>b(}t^W;kzIB z#!{kvVa?Mo5xT5>JF>bIsKOSiVZ4AEUYaK*@S6w!;l^qz-HLO|ngy>FMkYPAQg2fth3CmLNK$P6gIb63zB)Z38Tr%0mWQj*I>e0OEe%#q z6mMcbB!%%@bg`H(D-8`xB4Bsl2z#gI~}WjE=w7fZinrCqzUe4jdJc?F!RPC>adkB9W{-_&^3^doEABA z;kX-VEj|To_o8tftSw`_Jt1kaeK7_-m`=neec8%-+WaczPqTdwJg`|MG@@_+g_O)o z`5{XA2c;OE&eBDmTZ6{W>-;Rd|C&J>6&w1J*W1B3K`mMv-7SMt{fXy0pr|Aqf={IRGy1d0z$ zIF*}ljo|i?8Z4?IqcVp#m5yg-RMv8hN7)s(=T$2OEs`b+?b$7)Y!=#{^K85>OKyvi zw9^jRUi>AQ{1rqQ;&Rv>wKdc^pY#9uVrT_8HAKw^efAUv1Qk8^wUqx~6aF^8 zXH6-)X^nq7`5SCyh1)li5O62^w_$EwlCMd_6*u6tB?Qm_Lk^BmQ{`+3d@bh^6`tNRs(tmt(ps#Xd~ z?_d|iLjEII00-_5-c7n^Aa~gXHVIEC4`BOxbg?^q2XP)meLBv=w-nHbxHxS+SZ^;o z5SSq%p}{5aP~cfkTs*gYkIxB6@%!BJyg(Z`0XiDhoSx!AP%<@C#iPJ$zB%p%g9uG)d(P*V7X{sm6WpO!%5sOV(Nt^nel)QWOM;;{q6*(S zxr}U+1#Sxzf2pw;Ii(Cr;gazHTCqfqq{cE9dM-7eZVnx^E z>Hc2J3M>oZ2Vj1AiJB!6IWhirK74;4Vh>{Ajv1K1E#Ra4E8J#gVBZON|M~V~fP+!J2ny*-;iRRa#0U$EE4RJ%rB#RoU|N!Gx{5JGbA$tF z%6tl8A&ZdIsJECbr?fmPt08a##;hkqo4LK%1MRHo8mFzL^x zFv{pT6ICmIzmGNHd|CM^y2D}34#;qZq>zdMHrYANB59yJmV^8mnr7cG|L$71nQGW(+@?;aV+oFjj7*VqLdpAA$?|*) zZ&8D-vj4V>pBu)~wb_}k=S{g&-CE0xcNuqgEi(lrScEX?Sn9v=>J<1L@jj1Mfa0>g z1(74t9vm|T8W?HHZjgWc2+V9D@gK!ZOzjy9_Aq~#O7nU)$T{Q!Gq=_$inDjj#p#`YHW!4{?Y z!TJ<|vBM6}9=+koo0c6xGqvqt4Vqb#RBV2@9ZuZ)^>o$K`cW615zTkbyYRF-?qG|FFtDB5n-<7{9tV8D9v!;v9R z9*EP8>2pG9S=DFPa07IS$`>j*uC2ocv4>lRx4Uh3IweMAxZr%`Mn>#)uD^vg`y{`0 ziJ>bCxtA`$i$`f(Z4XaPtSxlzK~6$o#w}J;6rA|ZW}rt*W%G~ zyK_syqEr=aWSY-Sq_lQ`jUY-fy~Kv0qlej;-;28Yo6iP^T%p%4dt;N;IT9~;-M;k_ z!bwW^0qHorn@wkE`Hw`8s2+pC^MD>4B-pyXz!wI)HHEt1_3w?9AUt;SVFd+iX34zx zi}{6$C^Fm1uFiBoj(J0qIr%Bf48&b)`>Cc=5Q=(y0t(is3f`99*YBD>T#xss@1iFR z+qm7~e1RBfT|!F``hJx4B#Jbh96Z`MHO5bEuor((AK@s*{D~RwLX}F3Z;8qtjV}1D z0o3SGeZBR3!mb$7de)gzN~QH@;{xKLPxa<>Lk;fF_-F!dU+6N}^4(rAcobT6KE;Q3 zQ%95y&jM%Uv;t1jDDxRezJ&KsddYqVIX2k^ANe#j$rFIqha0LpIS$+vJ;#XQ@-rYD z;ZRc$PU-Zwzz9NdURl8B`{*fQXTP^)wok*i3s;8W2ZP=IX3w(WDG;z7w?qiGp=~I* z2{2&rv$K5&QIEHFf6z?~K=ymjL1l24Tcu{Sf-^KEWfgGCBl;^;V+ht~yjuj&f%jU;m*N>6An5cJ5IWuWjV`bY1$Yl9wuSlKH9N+Pha0Ma~=nu9Cu zbMTI&j%*et!NU@wC+GI6afPX~9jt%4`~N}`0f7bG=?A5*-nr$myTDmbH$1m9CF z-{kWr0E2CcC^+zYOVuPkX>7rqV4!<4o6hGAwx9=|;)mW5JQ2WgFrDGcn3?>L2e5Y- z@MEl-`s};o@KJj(dp%yHY^RklL_OUq-$W1A`I%M^nq1vX8Lz%j;-ZSRGmlwN-o71c zKYkTL8S{Y5)HntRiXF*gbQNh4?oOapoFwuh2WS8Ofm33AJ3dNp^;#@LbP z*Gw=YUa6|Vm9-|dtJZd4k1z?15JiO_gK~$4gi&O5ccQ)F^hCj#; z$`=0s75;k+w`Owm_&cbt)bINON|TTvsWcKyO?brc68XQ4BkUWca*ZU~6;$8;`y=#1 zBLiGEpG_A{Eq_l%c7cW19kjZq|J|l_2dKY1ZGCy#ZtU+h3&vZRmge-mZc1Uyf#p1} zga_7Z%5huLK`!5suIvh%QZ?na^fP@{9N?oeb6Sd1*L7$$n7ZucJ$c z<^(;IB7-qDF$y&>bWz784@@T50J3u=z^X6nKz$DR%P{J8cy}`w; zN`5mxDe)e0z1lWP)TZUC5?L!qRY97~bOicrd?vbK(*N$j-H}H;e4G#8Kx>9SNg_FR z!nV6%rmg2bS$M4yzBMjB6>68O^)hg|koB#MO?M!Vt`@|U$M)0O2U6+8Ay}EKgdP5= zN=>>$R~2mS-5d0$Ds9qeVcVFN%3sjv_HRbiJe1!mAF-16v7LME-psywZ&tj1n~E(j z{i*LNmYML4da0W|y}|Ye+VYnot-S$VvJ-CC7s;m)!J-E1HSE%#^lidb9P%(>dKq@; zjq}r!?W>gab_-Ctr-$9HTPc!&T9Rz@96r-%vQ4NftaZsB4LUqXL@YC9BU@LMQ8Zb& zutIIAs6LTp&oTKEGqLhn?r7lj$<0&o>FcI~z7dszmfJbDS<3{uhm<$-o1_1Kx=cf0%D z<3Y>5;j^f`$9Z8^U;4M*pF}yAlV1xy-#<;3pfAF9K?=kFL@OK^8ukaW(@- z6F79Ek*qZdT3K(pgd1e{RQ<}tsnUX5m2G2Zxu@%-n~wxHo2bO&Tg}tjTB^D`v zcom4NFA^0+{v7DefgGH<)+|-7p_{~0+!k9?P>J^LBbBk!f|575Z&Z0^spBuD>b?-( z70l~V>awsAG4Y>-W9PeQf6F24Z^4TZL`j{B&Fh`;?WA{M>v|#ZFH_un5T@d0?00x4 z@WNQw>;HM4*RqVMyp-hMPh|IWCllz@iPd~H5)VF^*b4@qSKz0G6FuZ=UEgTWnCm-l z%j%oDz%GxGO?ES~xEWt*F~`xfi$rMbjCIYqrfP&4VIy>K3*^_vRGJ$0L|#wRDJ!iP zZn#)fARO2Lp+4R69!AtF94?1su~>isldA~7aot-aF zzy8unislqisR6Y$3&vTfX0p7Q)1Rnx37o@iQ0bm8CC+Y0Sm|&*NuNEjah*x<1{M`= zgORm5xW5znmXG!>DtoTCPr{y&56gVVAgDxddB2);6Q6hJzh*`63aPRBZoeun(N>&{ zDkLrtj3_Cn0VB&5 zGO^Op)D9-}hMKVD?Kn#-_6OiOqqq6@-d4W`y|Cyi3C3**L=7Ejcf*vJ-Bnjh3%s0d zwrQ$`)hw~>yo$J0*5bIW{diV#ua%^|CS7NuUb8tX&)|BRf#siWHY(WJ)vThGP2Q5b zJi+i?K8C5*H~R!kv@{{hOVgLVGW*b(n{x;hUZ68w@wcKa) z1BTxg4<%Irv+3Y`&hocUd-UnyogzsRWcf|o;lN}M4u)(X!NEZdP7^WQqO)0^<(7DV ze;lYS**m3#tjlf2FWkGkTU&drwvX)wvq0u(Rif4zt?s2XmexSu$jvp8{eGSnwAG7*} zoiQSl)_syfi#Oi@L_5y7!+wtF-OJT7!Isx~h!$rxSq$1t^^sw!66TZ*K<_qiNGEi zJjc#Wn7FWFYhE;t;}CP`6EO6#Wvz-$7ZH5^7%hzHG4mMTk4ZmQ%zOWpG4HjOa*10k z6=nmyf5j$y#$Yd9T>K9~=Ln1SH3W{(JW+gb5w#uIlnw}(r(x$_Uwsco)#g@iRy{39 zgChNa8&nY7Ki$nKb7yil%F~o5N|RXN;|IBiuooy^UcRr9!0KCW=QxAli4v3sye(;( zj`oZyV@*wJJf}y`H#dQ7ti>zKK9e6C#mz9E)XC>R6%HWdnkwNjNg7)y*HsWl3%&E? zTuAh{4hBcdxhcltRK_D&c8ZL#4TSg%hnkMADVkR6A+b*USbk#7V3h5yHz%aMdNBo$ zXd`%gKY!CyJ)4ZqD|)uy+o{zvz>@D-wl~`llnTYP>E0}3$(J(Ye@ec&9=j~3LItBN z5T6gu8V4uUL54*CfEzx?`6OoN-1iD9OPs59j`1XPBKQnxf?gnKf=)))3wWVuezeju z8(*<3?N2b$Ivp9Sa2~@1uGbgWBS55gKpxqlIYT`}ghIC}7JrQvrHydP&IKNClZ_4p zUKyQFXYaw+2Kd`YUmGUF*3fc4O(u%<=B*EQTtAwO0Ul*$zfi`l4z zo#9bu;Xlyu`bZ3Gqj1Fz3x?R2$e=QF?h;R)E{KSnZ0WR^ zobk?CTJE88(sIW6&yq?nQA2TyMl!fhCJLzKZ9*G*1UrT_&oA!TnJlIp!QI}Lb)6J@ zot>S5V%_94Uz*)1WC|nI9bb&{rJoIsVDx&K;xMMCqj|pc(Lr}BV-mp4p3csu;9}T} zf!*YOWCQCpLJfWC?_UP-k@A<>?h5b=y?W={@v2rn16X{ zoQ9J31rR3M<%W5!FX!!sSy^-mmE~Nhl_zx9^`KC#DNdC0g|rB=W7H6u6^xrg*hqoHcXvvmb~p~%5(RPuxiiI>8|%RY zu8>@~kl@A<>2ivr%$RTj4FYdgpi>TQ%@y{XKXUT2V=s$}Ubh_%-Tyfs2`X0zrXLLh zo=H6ziKj(Nixp3T_!$Yjt_;@TloTiwjRyz`Ht?9$TlL#WW+KPV8w>)Hx3(%EYt3rb zk9{~+%9c*sHes#6W(6i53p}BNvdw$)FKob*n%*%)`1Xd=f~3QRWx;dLe6{P8$0AIa zcm^2-oriOC1}?*bGt`)#(R)9acMG6yaZrk(3D)Iv4M+?WZRvhX0kRIe_Sbn8nwD1B z!aBJx1L1-GcML9Zpj|Ts%P$uislR{RJKXFY9FwYW%|ce;T5k}FLz&)DfiqUySq{l; zO8c&g7Gn>a(QO`zlgY5TM!R`ge!^R&)oBtp@df=#_{Ti#wrtZ2+idg@ImV!MZey$8 zK>2^1KuOeXwl%Do%`JZc=>KXMbU>(eacWMBgt=N_A^>(kiNC?_Lxsk=!EDwZy41)m z8?+i@77dv`1S-rM(bd)S+L8M})8)s>m(01VW)`*@Lyrs!AP<%LGR-0x@jKR?kuVJ7Txe^RA~!w}>t z(bx99rC{BCIfZFt`aNbb;0#4f;-y$$gC0u>nxpX%#WCg+8Q7sR=-yhA`SirhCac?* z>uhqnRQd4WHL4wXq?pO>^%>|Zp2OWZ$7+UIN#zp{LZa*?a&}UqyjFddmuYtxQK8(8 zekU}|f`s^*AGPYGSI8d9S8s;2^IoIDX3~9hvbpUv0ux@f7LKGhYCxCwXL#_eOEhIQ zO~zHIGc}+Hdc`#;XT+bP5*Rvb53|W}K7iP46ya1Wuh6v1kdGA`Umd&o6|d>;Ve*&8qeU7^5#5dWpt}o<%hnIS@QJagqrSSRslM8-dxCWPEfsvU;D3c~&G%yoJWa+hYlp7>;Cnd*IH?f>CG+I znbLRr5H4Y}dvU=##v0TJ;PGrYnX{?=+=*CHxi9=WU$W7O-;UaawLOmHTn_(xI#Z#h zg4UDGOYtA=Q2vn6Nk7G1x%`^uvXw6B5(s?NSB8J1T-ga>Xf#2Yu$tI zrehOH&U{seF9^yEujp(3LV0qfpRm|Zri5LKLj0N80+P7s5e@ARxEp|&n@qMokn9jxMT*PwS?~ytT-kCXB zi3tk}W5VqjvEMe+wVE-vTAizKSx{Wv98cl-AH1*UJvK^sC*5tSeMhcBjsD&_@z3!evKkTV5DHcO!1eh zPCP-&8b#JT7<2AI;D{Ia`(=s$uGPRp!Tq!}ui^=ixYLUF!HDAzG&%B5dP`sM{i5z6 zzuDBnNk=kbMF#ArPsMTPZ_uu%3!m@uK7rH8;0RBVx#gJaObqWHNa$5 zVl^^NSd7m-^E3=UI|qZ^{$|fQ>`H+IPygV-DZK*NqnB-!nJ42xqq0NK7^qnQcIghF za~&yMtij%XZ|?`|)Y>oi##luEa5BzBqm05Z{*Vp*U=7 zazv9Ty|71aX>qUFW|<$wnmHTgFBG#UvHex7nX^v*7Hj61GSqR+o+x5x;9&?>SucD?$u1b=N#!b)o|VLiJGL0O zNZ!^87tZ@&=Ye2N@4 zMrM-B_go96*gJRy@Mccj#3h%ztGxh^8|py;4M6vXv!6z@79ET97Mby5n=RT@w9DoD zM>V|(SXGWlYpN`r4wltfHX%4Yq*h+GuNam~YDYd(d=abXf@EwJ7Qj&JB!It}V56y}G)0=~i>lC^N@9WvP2mfn`@!Ba( z4C#2|BPbSu@S?ErQL_NlXQanp_)+Afx9C)qtS?OW@rxfFS`xkf#|aJPDG3LuGN`8M zFYjgRZV!g^MyoDc@Kdch(kxjzi5~bO@@&(TTF^q~$4MBK!*w|d#}O@OHe}EXnjy$Z zvdLEqGPQjEnOvxz=Vp${qSiI63wGGd8-c;T#hAXlTTDStp@knehP^l+cDMS^kLa{f zJ-5-^tQTilfab-^>O{!m@Um&my5VoHrG`q@cxEGqjeWdj#>aQfT6|cCsDT?Fiw*m0 zz4M@Wq^>lnF%cjyKOd*+Y-a>~#wNOEfkXH#pz*b;JTt^zXN)oT92X! z@avoc@yL5YnxNhAibG9jVF6>oCWEH2F8I~POX$F2%Dc1`q(?hDa`{N|d#6fN_rdd^JyQd0j-9+Ms+Y zigd+bJCs0XmlFzfMlb;zg00axxc87}Z`D}fjUOUXYte#e>2)70drDMaqKd4v1J1_C zfQR~X3_16_Q7#_-Z9SALAk??Q;}fp?blSR87DhW9-*CK)(Gf(kQNvmwqOZKh{;Ic+ zxFa{cio}@eA0&xZd_FopA02<5qr=IGoRx9rnvlAsKrZM8Ex)G3a49*_{?Iw78d&L?9PUqOi=MJ_^l$6lH zpA=#fA4m-U-=FVK7ro1?#e2~K_Igu7^=s54vRhRFft1Eyy`KgAwEc_SWMN#_>{b#bvL9|#up1nt+6 zIB&anZc0hQ8haGm3T;GP(R$YPnM$|ZY*1*{0>}6J7&~P zlt1Oyqp@4VH5n~vT9Eap9IBr!`p}+>)(|y4(&j%FNIhXWUoqb zoY_b1>Us8dAA1kr_V+g#_gXi=tqBTeSpVp z43xs3;ECe!V7I&9`)Ew`Rx4Kc$dUkAyl?+o!sI)f^!B9w%_SaBmO|?Ne0m1Kk zf`cfH0xOMB%O!0zgzmXChEeu7Hiy)RSfqLMW_*Q7FE(C=l{^p|oyuYlUK%xjUG!m{ zq7M^ApVTV(%}ejDZD9+)SZ=`_6V&eL?dXEEQMl9ve&^OsP$XDC><(e)u-Dsfx=|#A z-x`0V&%o!z@ow+C-fo8gbw9oG-k4-@boZY24r3gY%s9Msh-%)9$1FQY%G)Ut1Sdo( zP;6p8(h)3dQ9DRa505>Ej{Gey9XV;sI7dYhap~8I5(zKADmi33gi0cYcrMv<8=V&&~S>^wucQ{Boe7yt( z?`%}=JqRQb`iV_7nmn!QjG~Fxh~}3Yjb`lc*d@n-|f+8(Xw^pF}v=z z>YtC;eDZysre>A9y@}hs`77=BUy{fgPGNqUjqUkt@canuI+6w7!n;VW;CH>lA9e@d z2jzf{m@V=I7(+!qDhOOXI#(FP1@@;7)vHJRLcF&mg|#VSSg)0{))}v*gN0L9bBvY_ z5aYW2xYQXGu1mjy-TJ)1``2Oj40iBS^g%b6bqB2zzCfN-Gn9#vO(!NiQ)&_2fuj!g z^yr4iNjExA$Sa=H&tSiTAjxbVg8%EL73boRz6Pg?@+0B%`LJagR3!Rl+LG`C3X@_R zVJomDk~5kqH;dYpp`Wk7sVOIcUmz3LERoB3MnWz1 zl=62?2YGXYgW~dh_-PmPLUmKB@g29W>Bu6b{9V)GLQ46&CL!clmzJEmCLPVK#i8b0 z6RSgW1bTA{{qdFYWEz<$&b)w~Wy>5(>exP6$?LFu|{=OH=*fvGx0@1`&omsgc> z>{Mt!GKDmYvAwEee;pOTAhBPh#|QWpMmWv6XtIsBVp(p%~1}L5jL&Gt7HsVi0LLq{_UkJCJ*$`5Z98OANI4 zJsecxU%|bOhnA3;0{n`&L(L7N(OFlIs|CapCm`E#6h7;TG4?oW9|O^|de&!aw?Ej& zU_Tx%YQCJK60Oy+EDmD#atL60=(f{Z5=z7%3 zdpou;c6`C(zyt}w+&=vnR>!1Tr8n=$u)1&I7Sw(>af^Dza8}fwqYbY^ z+=?iAJm2P9A4v4*>8uO~gG2D++CAp?eN>ADNl4B`e7bj8ni>^?1|Md zD6jyNgM!gEsWnH7=~b(p@b}&AYfaQF&yn_qUn7V|&B^n*{0ev2vRa*&>TJA-0U44g-F~e!uol>4Gy+;1Vv}N3r`ZVa;kANq&b_trCWkWy5VVa^#%r5 zh=4aquhe#b@D_B5+N-rsurs_CX4!f2Hd}v=%_j}#C>@sB^!+H2Nlu3N_gwiJTB-X% zZSnc#Lez%TA#sX4G9pRt>^31RTztS>AKEKN8FMv+VN9z+hUU4d>JX}< zxPC8=YBDaz-SJPN&xxAmGt@UW2gHWWIvmxDOSxo8>9e77MV*0>m$(tT;ex8kk={Yr zl%j%xYX8<(Rdw8-_`Fk8>P8DPtS^v7P%yf5+{suluEWz=3~e12Z27Vc`cZ$6Y{Lo# zzmm8|>aG35-hV#t9Ua$N{tmX@4)BZ*uk*(vz&&^<;u8 zvxPwSrJnZJe_OBMpNTs{(LFHAwk@a?0Q$(+3pluj=hKd6m`yFT;LXPqVL662=)}Pg zoP*Xm^+Lg4tqYvTj<0r`3!LiSP;xyXcqqG8AzB9(Y%?SvJ|>>v@C5 znjn!CYD~|-hc+l-&DAyeGoSmX<#R1<)k~vszaja}_6l6^arSZFc|Q51ZmeUsSOC#rr)zlQXG~y}HbdUGB3|6)1X60Jt2@*nqp^BrZs_3h1uyoE4N{hKuc|2~6z}DNy3i=nAzsC-!(4f= ze&>Nw0@3v+4RX0{PX#vHXp_ zFa;ibT=!xpPhJC0bTA#SsU4*nuLPpz@0EEskx-hzpy0(Q1hdM;&lrI254wxPixa8P z`g?G_j2elopTV@eD(4!*nL!u&g9J!+r0SblYtUpOnGEZMQh&f=>NMBFh6LXX1nXOt zmoZgWIOE|_jzPL$urO#P4Ii}qPBa|q3gL}g6LG?A;`MC!rdhun3d*pkE4joJ-$#4< zE+(XKUU2ou(jC88jEQN92}m2GliabXX-q<_sBqs5f%sU+w4u{nvCd=xk6DK1E*HiCeOJJ;h=JkOWR zIM0{y2*6`iJ=|QvLD)hfm6KzBdA)ws)bWBxd}#xsHu$A&ODqFIql4Ul{QVbfixnG) zEX+-tr^{Bae!os$NGr~VDWqJZ>ya=@(p94&f01DzW8ZToCJ{(_VNbgi@9C>tiSUt?fmC#n77D9 z??2n!qvK@Bs)C6^&~%R}r*+|_zzU%i#LL9X@=i^kw{N~e$z8LZ8Ey}F`TQop9hHAG zLJ4ja>xTJOs3YJ@e26iW^B@M}#7R%eZ`Lyl8fQA!4a#$Eo?neXww7)3ci>j|WW0F) z_x-`~kx1pR#FPJ6&s9zirBA8 zPzNbz<7_-F`LF{9T+y`TOQ)sViZZHu6me91U1h!sv8&r?4d1hLMFaV*bB=(qFj^*M zp7m*wEN8p<1}5Y+nyBL4l1xyGSA!jAeQNPHFgS-ZK^^Rr07w2-cG%a-PH>O3m;uZW zp&`9B0BLLM3vi_W{Hog*pTAYH6jPwKgTVVpy0gCSUW{goM^UnUC5du0W-YXh)Dwdy z$bepQYGBU|F11hIfTYOO<_1^bOH=v}vK3Cz`fl42 zube0a+vQ2(`nm(S`x42zC1%^G{KB7rBC0gKwIBoJZ==b{ds?@dT@^qz+u5k|xB-H- zY`5PDX24zP5}#R&D>Xb?H_F4_!QhbnD%tW)q=l4?FJY}_nfPA_lc>86j=SBPyb{Xv z0?|P?GMm^5ti4=gvC7%oJ37yjW}6R0*$QVe=f(Dp115&5`F!#dn$c1ya7Nw~vQ9HB zU_jp8a}*PCH^jj;L0;<{`!iG`#SY>%g}Q=2v}p&4+i8pn92gR6j|#4n<>|RiY8Tdv zzu2Gf0A&U!5JU&l>GoTcW03_5`0U(xZ`132duM)|C0oC^tk$#h%t8fBZjHh^0mxv% zZqp1(KSgPx6)c8rHOnB9R!d`hr|GYBZ#{!GHqCR>TgQ+(88y`;iu1Dc4ydt%vfJaA zT#(x#qvKYHTZ(7rxE8l}6wkAKj%9HfQ1TcrF)Z~w$BP#eUCs5q+0bD#FpoPGE^T~3 z8$l{@l9)|%b!iTzA)Qh7b8OBilVW0}RWp1|XaK$}D9m_MV=f0X{Aw`Isp*Jah^ip+xvXTC|_=B$}r*n292|+McWP2vIA=mTSwt3N%_AN>5ag=|`5<>^%Y)pV z1wro2gb7oMybrJ7R>&;3)5p_`za*3O!52hd?0$b#Mvt-dKxU^t34-3qK?95Dyv8Jb zWrA@*2E0l^oV4#jU*zaTtJR9{YyW_-7Ue(%( zXLX+1hruw)F}@cvotJq&Q()}?>`te2)f_I26OuWcYtXga<>WSeXXV{e4S}U6cSK~A zSi`V1Q5y+>wNn*|LDuz3zdxChCRKOOjOq4{aT^OWLg3`lONv_QwndCKF$QnhJODKg z)W3tdb%~p^>+zhl^3*UPwX~1oT~<u6d$+S6>z34z&|5!W}xd}5U$qZaC^K~al;IIaI-o&vxH5YUEa(~Hw> z(DI3Lj(cy1r=wKX@zbX;k<;yK;I3JFLudbeG`jkJG`xbD^iv}PaU=dGd!!vwDx>&3Qz%KlCmMBcE;uaR z<@B_bLQ(t&tPpKJ0XVisXT$4@1r0Wxy{&G)!<{8VjLB)|?eGFvmhR!+EA%Sdn?a`2M4|V z?fzk^#>3w6^Fz+8UFp;JS5R$ta@w22bs$@7@4N2S3Rvy-<*^Hj;O5<(zJt9iTR5GM z`*;2Z7Do%z!6P6x`{Jm+qtn6JSt|m8i}T>D+ud^&EhD+$vH1`KHRCR!P}Nm2HZ-sc zA+PN?qX@?G_By_pE>7}}#X$hZ_xu&Tm7n+#D$FampS!41)HO0tB$Kht*S@Iydp@zP z=M46Cd=jdIvKtNhtqWMI9FrLs<0LH3BD)-mqcU8TRmQ%pCfZHoRi!oa8vLJ&v6N7~ zE4-CbxET}$D643$0^ix-(B}F5==wFk}vs`ZqzL z&WJ#xo1NwR`_70OS|6~&)h|chP+_LWO2o_5n+eWR!AP6g4p|&-O<0$u0Dz&@#_#s(Io?C+po*& z6+MW?Xw-JTaT8yhz6@)-F{-D`5TK$K1mVb8F$2E=JGuSlm6 zL-q#OgBXKbH`pi3FK$%t%7=xqu#X+(R7^F}@(JlBDU+37j%muQ_S!xFV_fH!T6~j> zj00RF$5TFzTl6(A#Mf-vf;%o|cfxoA+|J1x&sv%wNuA1=_)h1b6(Hi0{k`KUi%GbW z%i+)L+tLUX(5HnLeWjGfrJo=roTyT?7msBs)D!p3zC&_?3Oyu6VxwZgNIh~0dCVL> z-gS(L@+xnZTo?AX3>y*%qa0p3$s!Sx!_@vZJ(dz+(SUs`Q&FWs_2pb%sVt5!Prqn% zt@}}+JYN`U1#z`1Wnij-V0$Cu*ijF6X8Di<1hYLJF?OyOU(IGSs}CC z6_{X?Tg!YyuUvw&pjX^)%j-+w4@O}dZz@qfBb8%{`A-xIc$p7N>!U;-J=3pNS&+cl zIjeK#Scaobd}@Ot0oRaqddcVtZ~E0m42)B&yZIdk1a<_zPU~o7?yP;d%cAvfR9xd2 z=R$=09K{nmrbC>2)f9OT)djL~{^~9K6>D~&a@KcjX;AF-&Nl01sVQ0q9Jc)=dpGK& z55o!|7LUoyxlXlR@s1v&W*ARhZ+{1Tt{r!Gf{BxA{P?5(6dKe;K;zdkfliMVtxm)d zmC4aiM&0Ruz%A)zt_RTL&B5MYzxKsb@WrfjZZW1vPt<8wUDD+H_LU}wIm=Iq?WEfl zbv?vZA8W?9Wc86|G!12ua;|PVuoUnZXJ_ouG zl^_6@!5}fJiPQVDPSo(|uWH++n$q%cf%LO#oBmrK9&$LnS zqL3YnD8k30Dtw0#`jT)`1xq}ayThW2Ed!{x5X^z@IoKj8B(^`2X;M|_2UibAi;&(M zYRZXbOawFHV#Ji532i~4Rk1`Irb2Lt`&AiWFHQx7q?p|$avjxU&G&!C5F8xCKl;~X zM-*%R1~JFF-qlKZ-Yz_=>Cf&gxlks+`I-RnpL^(zz&C#&M*?Doa7AC}IFbtg`}&#& z;%gT02$2yCV}qRM861KayItLp`ay z@Y@qYxdo1n7atX11Ha~KsYw9*0^|W1IX1D3faYP6HLtq&5F916ziMqfy7#wrRI#j_ zV~0CUyfuM#W;gA;ZDfUsiCs@CmvpVXyNlzE*z6^@qoQeTsOd)4T*iYNr`XP}ttKPx zJGQo^1J&=}INKgXJop1}?dH;7M^3O*7;qJcGt!O%k24}Ykxl#WcghnW9>2!lp*@9z z#pgt?+#-0>AzoYlE*A5YFd{D*EKF+(Js|%F&Imhz0xXuTt8gLR=w)n zw5m^i!7^`Mrs*XiW-2pT#90yA5*&|stJ zy#8&gR)YTfXtq)#ow~tndV$O$JyJEdd;hp^?Ggv{7-{Jh0J7KX!G7=6VRx(l z{D|zP0wg>QVBBH+1T#lnq@OVqVw_^QEM`4>XxJ*})EmV*Ij4rd_-nnh{-}7U)`4wX z7KfD7I6?>4;+USvRKiz%=$%{cm|$L!@c#^>&c2_?rCKBO0Ig=D@anB{@vPi9N3AQQ z9m`!cM^2}I1*hO)8}@JP4ck7h?rioO-lOC4@w+SM*SrE}ug8nJ>sWs2@vPr$S5w$% zJpCG!O;V9&J-^*LaKWEr3*2(u-1P+fMz+!~ylb)(AxjaThQP$1Tg7hO^G*&1hfn** zaDr|2AZ7FK%jU^FJ}DuDj2hk3>8E(D=8xUcxpOa3?^dp$(H#IttWUcO81~l?^Ro4U zbjdn40euF%qQl=FA!;9sbtwwE{8=}Iw~$d29m|P2*~^_DdFPHssc6bEO_ex2N2-5rZ8?)uP^k7+rsb0Fvj%?8nwHi z4>0vtsUGZizxyrrAQ57RtczK%=z2209xqU>h2xk3QJ7xMLF)i^B@m=(<27h z<2RV2-tjBEONjSM6A&6`gky*l%b(%klEo}B_wBu(0#zT)TyUslSqG#=75?i`&~$^} z0X4)~unyhr)#9=gTWHW5fqMK1Rr(V5{6Q?9LMaLEI}+7paB%eMY4?cRZNh?mFgycj z*=~W`o5cuz>`mW}n)Yz97tUw!jtMSpTA-8t4#sI-&`C*-X6<_54^aU_D5n8tilGje z(+P&Q14;sgN1vvgHcizJ?QHoH&zTl`%5Ah>d^vpiRr}wZ6EG6DDsen{5~N{h5x29+ zdSOn_Dcg=y9*Y|_gU9hsnsJFUaid1y9M*1v(#x{5ZI{pE!K8~K226lu4DWcJJb~uF z@Yh6pt#Yj_uZQ`QU!o?StkY0*qT(9bU1WZFWW~}Vq4dO50KWT=eDY&7TlYqjYp(zu z4JMaQhewaJS<@?VEOZ||l+|;lhX<~ds_>-epsZ@@5YxdrThpty!$ zHzfgL9)`Zb5RZTkGn7E*=y<=hVR$f)R11#xwd)Px;%%Tqu@L4uO4(mz)$Vn8SFs}?lmu0mEc2%0#XL2HOcy1O7LGgySq%}hJ= z23TQ!(*1t0j~*uagZ;XkgGQTSANUTAYU_A`ZYJc|__LPOc|Fw1PDXj*4b;lcqE#NZ zQ%Ua;bKZk`F5!(}nb&)}X5Hh7=K>#4JSjKUJr7sz20^90`)b@CZ_z0x=~FiJ&&6aq zqS5`{cS))4n3mSf&0AvD&9TkGyKvbGLI>aXFWOM_^2(Jw9vtnC&ivW5E(lk-oVV|L z%|NyAwKRI0`t{#vF^J!Ji!W$Ps!FaA%C|!Vr`P01x9ROSRhmzP3l6X1n(}Swkh7;E z=SP{HDDy5>mHaT8H`lW0^%edVA7T#5yzONDyzx0%?c2?Fl*}Nhav9&ge5SI{%`CD? zhg&dG4IHY+=v@LH^qPeoy~=WY)m6RcI_*d%yrp?-{Ws$;O?yex@J5p{F8Am3l4eeo z+^$RKS`VWV|1(b+A=J#p@PzapWM)7MY$=iK9o>{jf}Zu=5lOEZM7`4JZR%YS$%sre zfZ*(cgn6&Gf4n-$Fhjl~$*|q}yzBpXyIvofy`M)X*9!`gscuuLgHnmivot{iX_m@* z0f>l%BQ!cSii!|Jh{m6~TziuLN@`SuS=S4~99QM)Ium+HpT$Kt)I`?Ay(r{T8jMbq@V51bFEq%6dH>1ze`V}d( zD)k$u(HTb8Rpha$-bGE}mHy)90=m?4V{Ta4It6QSyQ+Z4?{a#A;a!oP1y_i`5+D64 zr_-G>wBEY^e6;;CN1HE^Gh~4B9R(}RQmF#p-a*KeL-bGKS~#~epniY6x0^wZ59=m$ zIWMk{@iaFck`2drJI)WQ)x3t!XuBM1RI{OY?2xfsPKTBOIDR{%FuwrD9SYdv2!JU! z?n-g-mU7|XG8SBTz>9pKt#Xeg0*S+%43gutL zbo)=%m!W~CdnmH1t^o@j5{5EMPtrRkiH`a4Xb0)YhS_piA&$n7xd&8qL!F<=`Y8Yc zTM(w=@0j3XsbZjnTLzJ|A~=aamXBJNAbn*(k#h&ttKI22ZLc}(S)b}%jZc8KkBGHT za`p!dV9#BDl0}mNm$$<7M3*F6sJG;e(h!djXLOcxs|Ab|gaZe>MpLDRqKZ9~K>2co zBT4KHMQ78T=-cD%X*5SJq8x?FW++^ZV!Ul)VxT$ZlocnTK7OK{g~yF_Ng zh?H^5{qT{-_rWTS<^|1xtYm=lh*ueHFn!34H)lk3;Mejll-z-$$@BoeJUk!UD|x=e z6FPSGnNwJY0p!{-2qfIz;2w02(Q3iY00C%hG(9gIB-8NSVHh>E zYhS3rK*ZY~gVIu!3k|#-CNV?%wU(elwQnEsKeA)~4_@~hvaG#8U zp(o1;PoZn63ZSU}Med|cRe?&E)BUqn*pYgdn-9CQ)y;Z^ChZRPcRpdWv?CQykAKh$ zgQxXiM;6wTrHQB(^=N*wq)+U?FR4K1u$a4Y7Rzz>=V4+lD&1A5Lquy_VWx)qYs=9$32jo6iP^h3a?0 z84q!J|1w^)$f3(;OX*eTePIvuVBO)+xR}Fc`Gc z-6SjHE!CQA8ZI67=@PJLlA2?}jLR7a0x#%)1dp(^^f@a&* z;<=6#J2_`nYR490PPlRPT4#qBKuUyLv&e9NG2Mn_9+}9YkSt|0H!$&jinrFHJU=o^ zl+6pvEU+*eLSKqUD)`lTI@sy`5Q2y!?&B^*E?`w;+qrfKs~upir!(nri}G^LvHDxP zCVK4E8=&0d(=rGp8f>rP!M}6F7J)Y27|r)aL)}wOa=~h(AqQ9pgj_GA^vkf|A-&i@ z0b=zdXIA^e#nc07MI#3B9g+Fja++%a0LE9VhVWf}S!dR8|CwIFJowKK#*2*SWHEG` z<^139hB2t@^MZ;>RmN*|EgJ-=TsH7)mJntzOZE*gCp?(>WeT&!+CGtToI;r&DC=ic z`4uW7|39fwcj((;*h*w&&~;=|ux_DJjZ$$1s{KT0Iy9cVCM)89#%h$I4YCIsKrHR0 z^`fuF3a_9VDSX?Yn%~C3B*4%RJ+R8c^d2kVp&SlOdyE8gOuRR8Xl$*sY}FJ}Ls7Ny zS8;cRJczU`U^0RzV;_>)&T$5Xl;FoRia}=Pn@_8A2-fiGl237aW`&HDJGVU1k(9GX zT1GSiGw8U4fIIM#{KHrH5DZVYnFz(TSs98;T8o9N0BCHmiZI?QBymL7<~l;RghsUtd3AvGmiiYbePc8Zf% ziu4p0fB6f?L(6nMiVzjpf1Z=ws%ri*%ay9544$XFRDL_Z0;T&W-(Jn8^XcjP20Gg; z|9UwBkA;_iee&h}+pi_($+urKXtOw9SpNf|YQ}#e_kTPC^#M^MY7sCUry(pQu6G{M zU-RFY?>5JJ76|u`Cb*JxTD%*N9Uh$bwG?rNtN6{T5g zJ0RBqywGc!%n&pIW*+!M(*7wAXzgn%aXQOFQLB&MaRUd3NfNn)yxuhh^>yV?^p7<` zpwf_P?txRXap+MD(;Qvo#2pv_;LrG02>_tY!XMvF$0zpZ#Wk=lW)p@E=EA1Lxtslwd^EX78mC(F0GZP^4x3DC$O{TgNC;Ntt9<1a}b&4m})rO8lTs8Inv7kV< zu4hB*#of`~6hvJ3Gr#ah;TMv6&CBlSV0WUZzSM%m`8{1~pP}3s32aM6N%tQb z$&P`y51KMGhM+)`8EyUUSX1{av~;+``SM+4WL?(;bG5{5K5#CZAL8Gzlj56t^!){$ z4zK1%c_mlF+Jk`US^Wje2lrrN>hXnu>R4Yc2sAiW^g0TQ_m56AFNk$+%*~Q z_2q=XAMpi4Qn#;17rWDUBx{f);9Cc0vXDN{SD6^vR?Q~G&c6uSy#UUQ5Dk<*ZdtS9b% zLE-gS_ge*9Td$+QB?t4=9LgDO)9-ql$AiPPe^Bur3|BTl3lGo>QS7%!t0NOuYotfk zxO1>RIkiD>lX~Gw19nQ&KS$Lb_4#7sWv-*gz5hBM9FTtQMnd1%Ab3y*!Gj6}59=U! zSb^Z1Itac=ss`iW@l?#S-e7lkjhb>2#U+xp3cc;U{%$WU84}|t+`XpE7m!JM_VQr7 zH5!2p>DBvIH46LsH9SR*Ta6cKFM*`wbb8s^D86aGTpnZ${^M9+GM4 z7dc75Igxclh-pep9?S~Mdu3v5845SNla8P++Q3g3l`ZTX)rOybqm z#d|Yu?#qmtE~B&csOjWr%mS3D5i@n%YRo(?qHwjkolOFnuQQr=3Jp|(mCOS zN=*X0tQvUXAi75XChJj6BB0Lvf3An8liGE$GZ`w1&qf}uB^3sZLz_i?kjTel2=nH_ zMd9vDQ+B5y*1@YN!u2f!4srI}VN*D^JXX%kAfTvTHr|=WW}U|3$Kv&c+zgJcU>*6@ zHeWS008K!$zicT5;CgG@;h%M=x536(mgbju=AjSD!mC@jiBhu`+Ikwjq|$*#8%eHq zX!au(Zq{%bOFCl@!Q^Z^7>B^QW45CGyVL1UbYQ3YKZKd^N zTFOIBq8~RCSX~^zQFObg1S7X4Iy2zd-PiT_RObaAXk89I&XX0TN)xh55~=29_o%7i zuZHg?Mn%RjV!Vu1?V5YDf(p1PlmQ}QR}~N?@&Ftibib!-(f8v8s4qa_mcd%ctphGn zV{i!uGU3758LYF%M_3$*j3VygEn9|y4`}+S=abrE((P@5c8&(e1@*!9#bJW$F5D5& z?hzk`L1Je!Am%7?fiQCG322pg0$X}IH1WXIfY~$!x)_~LK{?$4nWO++zQyzjkI*OO z_ua$Zv%&MDUdMF<((7nvSe*PMFKm~z5tNkXzP4BQ_1yYA z4u%a(Dbg!}SMi2FZhSpU_)kbeImZZYUpUb5oPd3w!U%H2TeS6{aK#GS#6rr~ybw4C z!?Q(FZx2uFAw8#)I77;{J6=J`N|n|wm4owvO5)*QU|GQ^SPRg42v`eyqZvzm=7TbCu$0+S&JkmjTVV@i(?cSn+U*YL`tkqut^ zQr8PqZb_y4zOIuO6Q#h|-P;=+JwG_u{UN@Kxa+dfolCaEv1mL1jxCP5@3GWw0MwO1 zl{TG^?+9dE6r~1EzT=yP>h|{Y-mY{zxK6~KPShVbVm9_zSpD0v7i?T4l@R7ri#zs> z8+%@OWKCrBH~SOcY4ZNn{}lTmrT8BOOQd1$bQ;^5X`4rq^V7x)3;VcnJY4{t`|`AC zbfMYcMH_!oou}~gB?|*}J#eS8jc8ZC0X#M;cymH3TpWKet`hgX*>;5;hvF}usLV*4 zBC_I)HKPH3uuPt0nq~*!aZ{?5R{Rf+0q^56coPs^B7Y5gpw6Fwtgu(U;w_zB(PVs$ zLtqq;5TvlT4U;;)M2dqp{O$Jtb$U&mYq%kZ%WFoC|Dfo;^+mg>oUvz?!Pj4&+M0QS zRhSFgq6Kwva@j(VBa&mC;88DRgi)vB_h)YZWB4=RtkWT z(-qylcm&P(aqofqjE7ftSuITdBYC(hb>e9m%>vC$YS>S(WW8eeA z7VI-)L`$t`>{~Eg%B~WI(g~JF51_Dgjm7jF-soZUldEYH>*6>xV}%`fQTL^o30^y< z;j1s3htaZW8p8UxY1V;}rTD8Ly44%mjDfd_Y=EIv*$sdZdZz387P9L811X}#X!ZQsqBUVuV3+~IxOXHh(X?WsdwLtEa zEnPO)mJevm-Tomy%I@8yphe{0I692yB?gWC^>vP0w}=T+vmis(b;Gs$%Ad13?fRK+}(i&2#)UgIoeQj z#_`~|y9;8mvPsNb12i?7wgpNJcO0|V@~2l)Epdc=z?t=luNV9Ev|KKFZtpR5*d?P_uT zgT-jwno%0RzxC?*e*d_B9Y>>K?Fx>b^$%9Sd_6k@1Lm7Fzqnz&5sgv_d*ex=KZidH z0b6)5rC$W)K^rj~1n2T`5!`x>Ch`_(@gE~-I-f4a3-77=l=77)YDHd=9Ymj%On6I1 zB@W^UQ5YZ)<;j$j2?LYXz?9Ic4XzY;Nr?4vHinQe4e(ODXkeyk14&B^D=A%TC*3-6 z=D$jHbf`vY`eBF2Ds;+8!+(|yHCsF!j^@+r87x90l*9Wf$X`LX?{fHa(KQc}pr<$k zhl}u913%pnUk@09$zqfnOW zw*$a>O8kfSjY@|dga2SU=DRG{Aki%8P39QrjiL&x*0NHyE#?}ZD5iQA6jSU)T+C&L z#YB!p-Q$y`JEU7U_)EilZhowLn0VsI7C{=wZ&% zOKY&Ha$Cth{F)SRR|T`!UOP;!D7Rq_Q|rpxH;4Hpl3LIKjI8U!{3^{N ziMHZlel2H_BsOLx6$jNAaM+A8gi87*4+G_2Z01IBf1{xUP(sX1KE{!T-I641nzC8X z4i-`ey$%zj*w+z&3$y}#M`aRi3es*)cz1u_|7r zU_irL`KQD+uwCH^!P z`6>2DKmcB2OTX;|ahW-is4`?D=OuT`weQs9BQV8YQca(k;h@&@E1jqw>J(PMi*;x< zOaa*2skuYdR~7_xg) zeR$4^F#IcpL2&D$hCroTAPSa2mP$~9rU_@Rt1;!9gwb9#4fi(Tzg#_)aL{URV#Qsb zObz|{N<6<%&3qYBml#cz$@iS9N)ds4doC+!{0c46NO^hYE9LwrCI7uuRi|=w%2j3V zgVELMhV>bun6J^2&C(O~tz7HL(CPwfYU*}%@j-7s^}FzD`53y8{EI{J#N&l6HGVZm z>w{tO+Oi^WY!I?1ujPk2s|i>&i%LgCsB{ph`!3XD;*vX>dMu;45Yd_x%x!6=uwSAp zP-q>z&NbX2%-pvbZ4fU&f!ZiG;&&`QnRg-?jkdEArXkIZ?T#WJw)tpH)>2nb-NXBnvI? zjM=RA{aSwL{_J^Lbeoi6Trx_?JA5Me|Ji%j=C+O_Vfed#1q8pY1)?K_l2^%NK0c~~ zc#&BaL574PdmWbwB0&)`2yg*VGS`pu+uy#<^vs!a0Z7?SvaYg-GuNJ;TTfpHAQ7xn zAs2ICeRY0@$_|G~H*Vc-0*?h~8)33$jHSq2w>JO~Bw&u=(s94K58Th{by8Nn(J&iz zTsqiI`bGAVed~22|D|Cj9gOmfGgv6TIE`vTHZ*FQHPFQU>FY=ya*=AK@5AU-vVyGC zpl1k!i}ot|0)^i#_dN7k7`b_Za*7Sx8Hg|>&C`wP=`0Rr@<|4h4to)8T!IO=t^fe4 zD;L1VYEh?cnWml?IR>1d!ju9>D72%iUuAOVP0q+#$%MJq7dAh3bQ4!rHwPuP*=it^HHCh9Pln$CH}a_wZhO9RNvm1p z5cqU&@HIH)+S}!ZqG8fRm5q@y%f={EY}{D|)tqGEV0JNbA!I5?do+0Yx_^Rjevy%J znCITBeD`3m-yaN5zDpt`>_6EwMDZ?bde|R)^9h+owHJcZP0L&>UAJ4_!YGI)5q~OrnrO*tqMnbG zUhPa!P68qxMJ|S#)y-r$52b@L#SJnthvgcN?K-Y zEt|keOYFCTvq;bRr8FtN5}MO>wH|zoQEBnDR8hOexr+f{J!d#6ASzpE3JB;zQhnOT zeTY}Kx;Y?2h}iBJ>~ae$Eqrg19*Rs}#W&nEW+(>e{+fW>EC)L>QjB^ByNPp)$B zVeo6T(`f8rd-X$)%h!*5IGX*)y47_cXS~)=Z^4bpRSh0CZnY6sqSoutQm9bVO{8<~ ze|r~fp~XZ{VjUN3p6lsa=orUqK`+kpT8+y!i>fBga>>qr1y)B*nD?Oueu$sYeB>^e zvAx(q1U+nmn`RAfj2&x-5aK4Zqqz%id>?iILHnCvrb)A#;iZqLWyNsMfkevV13LRb z;;+*N^P9oJ;N^B@mDXel>bnsA5GC^GMENMO$b`!|l2<_RfUp#;4qOnQCZ-zvlFcd% zIBJFoS~2e?=j)BLq|PTD=o&);-~ViERU(MWV-p!M(n`1GY_yuT<_&I=?K$JFrtLYy zuylKUwFzt5p0_9~;Z>tK8Ca7wZBGr+Qms|F1S)q_;N1BT_XM?{Am!qsUFxx;#!F9$ zS0NX7S?}O5>ao9?z5OZ}purP`f}4FeUbTIIKqG86Jkk=$_ix~F$ob`?5CIXFUIGU! z(eB5; zlb3r#T4w=v{VEcv7?*d_NSP*`CC3~OMQ~9pU&V9CuXCyvfdwg8%ev@^Ap)D!W@~8c zp}M3X8LAq?0d{^y;71P5?k-1UWlolPx==nojYYhsP;i=sNhOEbWM)>i9m~Otsc3E` zD?VYm<*UBDg@DZOmM`h@76O9U-+XlxQ8T6~pL-#&SFV5 z31|cK`y@%&H+tXb0MH14Yidtgr4T z8MN;|IcNkxPmxc908hi#Vt{}1UimcGFu)|ykvU`_EDXt~L5q^&j1)_O`a?pb5`n+T z4O|SW6S$E04cz)^QMtU9BJ5FOq~NUZv#_zi8J-qiiGQ`v;%lLT%yde&R>yYRd2K`U z355`S88S(u=}cOXhe1AW!F`u;^LCzDpM;>eYZMo=V6t2w2#1f%-ql%n`DT{Z$aL7= zqv5*F3jw1c_MazA7B$a%%DE#sdByFL2d%{Gf#ayArc9)6-+#XRfgI4pq_%fMlgJTw zG%>}`N`m?z5X-OzUjIZ{yVd!8+1(Z;Z(Jyc&L9&VwUs|d)DR;`#J5S9U{tuT{8X;z z$<58O*%+ybmgVc`d1In0InNPU)qI+x1JKWMF+(Of%-D2}w?hLe(y79&ZPcg8$aYHp zOqT#Kc%%Fy{_{f?tb+%W!nv*>Izub@W><&&+xJ7R>Wl}(h>Go+=3h-NeDj*Hg4Jp`Vcyq` z*I6NXJH*yu?ApE@&5>uf2+_s{WDQh%Ki2GdIl}cY@UlEicvWr#V-W6CKhA?>> z#Kur*l{8%L-R)Ygg3USzj386Dw3~TSHJcoXmUd>ti56X{mN{3g1m3zVECTQKBC22} zdJ}*=lXf0D{ndg$*K#0Gpm$dQrgIEmxk2ZwgMG)|$Joe5-K*!uyFxIMcA5iG#k~`Y z;sooCLjW}4-*Nd0k;QQizT0svsM;5O9Ocgt%d2(gYVHeQtuAop{Tg#U? zw^jk`Rg*X2ta^uCxwqgfy z15M7v8^6vroeEAseNS8%Vr3L~Fo=aC%#wJR4MxADAFb~XI4F`Xqh!;{=!ke33C2f? zp+WA#A{L0m@$sq_14nBYB|2f)7|h2ufnslz~wby{2LY9=C$% zHTJpSR$D>C=ucb3cc4vBh#cHI^B%R!0!Y+E3rM+WEh<~oUWha|lAFuSh&muz>YMqV zzw&$dt&Ln4o=t4b$7OBE(`2J5w?WDbUjEq6N9OBA{!SX{P$n(QuPBFplG87jf$p(1 zM-)CV%ZOjLo^uJC)Qx=;6>P@?4@Dm)*EuYa%iiV9`|M@i6xA(zmK}(l=R(#4hj;m+(g&yMX&D zPdKAC(k9v?zzJK~l?JL(lb4YE=id1}*6eS_FmRJf)xO$8H9D%WVpSrTtuHkOy}n))oz z;-8=20XLt?*w)5TD*kc2;DEP)lLl6a3+6Y|bGTiH ziq~Ir{n$sD9A{S9T!yADSp&jBbzp2L-`wa9Jt#)=O;GoQolvNH6$@4Q@l=2{#c3{{ z6J=gB&9CkO@$v+5nO!hPV+Cn{L;FCn3leoBVE}_CNVy5 zIj7{g%nnbu%zA!Kij11rL6;FfhCW>iRg3Y|(Ozu>c9zt#>@3H;sNid{Y$7V2hrAC` z!AOjmB|Kew|26hd68RW!=%%Eh8j7L z;&X(V#kKd3c%?bUNUF)-eyezQ5#-+}?cT`WIOriiZ2lj`t<|a7d}$oI-3PZClt?PP zIsQ#@ewc-Wb;%KD)tT1JPD3T8qznj}JUFiN*1Ox59}ANBioI%ncZd|`58UG!#J&S- z&!FI4K#J$7$SF9@h{O0`!iQVJsgmJp)RNi%Wqe*uL>x|>4nuz@2&e5rNFsyxD;s>s z2C&M4uvJBJJC|!Mq^iSvEsV;vCh06vxQmm7PeJU*(VSxNJA zHH<~uyP~BxGq9*=(lA$ODz0AFacrBuX4jEL?^<1l7VB$v92o+y)v;~NwIF9oNEJzL zkDUeCGlWSZCGe;%*zw#pRomP-bvd{4et;DMU}p}?1`SHb0=0kk`z$44HW|lT_WN7p z<^{1eO?ua}_`r>G$fF2Cb%p$j-27IcuCB{sXjQT`hXGrYok)15CSdv92!g!(l;znN zsI6O@0%X|a%p{yST$;qdM*`8w@BR*ISeN)WHsED|mbKWOb4MNeepq2K}B6`@@4BsV5j|Qf+5%uy^vE))U-nMfW@$rb4_$ zamj-F9C=~l7@W{xxxS96{$6!i3$6H&l&*|3(%>2MV$sOilZJLCL-Mjh-Xl~Zq>&jy zCXej0T@`q##%S*+JA22&?8(+v*UfV&5bS@e5>9CRVBo_#IjrO*Ua3#}hxa(3)4l$# zjOAY1V<7v(VSneF?Ag6FOWxbRFc`1L)83o=ocI_0gMUpl_51yQLo^*8ok*+yxgNGo zz;y8yoTmRIIQ#RnPl2;P-y5(mjt*ad=fHbxaf2z^QbAO&VgeXx-Z0J2^Qz*>1gNF9$8Q zE>jR6wgbrJwQ-+Y7f$e#*Mm3x@9uLp3#T|gcYeP|&i!9x*y2wAlvJ_&m6uQ`LC#^+R0ghz^1L7Xx@q;}?)WbPL0y^%2k2Ou^LYb^O0Vn&8+x6LA(Oh$nO|2_Nar9^*G>ArA6(|gk$I3) zlJ=qkep3zff}XW;RS%>w7-+pb*zpsqYSnhg&Q>bDT{u=;H`rZRsAPAA;vFPOb6+PG zOBO6$y>QJM?rzz*r(g`R0PHUC03z+MV#esF(u}~3c(V;6wFSwltFcsF4YW~H45nc0 zR%N5!M%M|k7Vqcc$d-*#-tJGPu&o0P^el0PW{D#+OPr9n^gc7)Ja?+Wx_SIe$i87M zZEr*1ya|Q3OBQQC^X|(`XW4@kcCr*sGQVPYuSI22BbTfc0wl}g!LBa%^B<%zhz=25 zQcrdknw76-`rz%p!}Zfzs;`A*U@-1iiJJ|pvM);GYij6t1)0$l7ujmu@&ob^f>{AX zn8a(1{Eo@gzn%qzhqHhvXbfz8R(Wqk$&-oI9`E@!ZrY-?1F^;=zDUQfQb+AJ1R~L{ zt#mp|R2 zYloNR_fLLsB6CgXEwLP4HXII^YH_#UTwPxd=ik7_(`{qR|6!~5XH+)C9&~>v(dEWx zRz=3+Kie< zG=gW1YIWPoke;w9H%szBdW@Ra6^~!%c6)Sl0j1tAXE#?@;{}`!Cz0Z~Gnhm*IY(&W zsgv+Aq^&}Ko&YyKe;hTc&aw+2nli@k?W*X-GvW$aE)=VUHgRbyBEZAQT$K!Iz}Y=? z2$Td8cuG|Qsj-MT4n5!-c%nBT`_?Bx8OBDnWqDf4{G0xN&TTX$PvU4t_2ZC{Kpz8Xn0AI1H2U@E7 z1XC5pQ>^L-DODq`33o}mhymB1P%gnjRtzyqs9R8Zmh9xrB*)V)j7OejKB<*dv@Z1+ z&eX@=YzZ#$h6sDdw2m_us>cujJ>SlzTHPg6-7ieFjL#?Cd3>hzvhk@h!MzO6tf_u# zP2uo-(w&EAS}z;k?#}7?czL$Q=ys02J~|oZKR?)+!cr#N%QmM$`~Y#tmTzSb&{qi( z4-e2wH~)g*;MY^Yr%w?M)6c(T4~#E-PFRd_T&u|yHFq_d%&;a1F*FH%{II4x#1{Gy z;$ZSmzODK9fb^@ESenf{h*K)ijKB*zdQ6^y!xQZABazI67qo-_^2_W2v5el0ZrRKj zT0vwjCfBR^f`K%QVEn|75&1r)&tC*v=%|h^;`UbWi{78x58iV6pbtLq=*)CWhSJF; z-cYbba$vFxlF?+$E2e{8y_O(G-9_N@@ljD|hn5V6a-XaWqs(4 z7YneC4X?2OkegS0$)AzP3CLOOy9EY$ZE!DtHo94&UGf}ST4>(K$?6go9GsZg32=iJ z7&Nvu{%Nv=o4AD_!u@x%B>(g`vkBM_Kl~2{s2iAf7xb};BQQ$-copYpeXxBn18621 z`S$dXBXvu}hbkXfZ#>`|61Zzmf;EdU=s=wMQ-m;X6G+%nJA3m zaEC*&w&A_i6G=K8F@B-z}PXHA47mpZa=>3MY@Wly_I#>Z~Lm%ucFW2yef^2)^ zDTq6m`eJmuzZj3-2qP|h>ztCmfQ2{>Xp6rBjZ2PkdGY=b7P9s+-Z}cW3Khlau70{24ZugH=NzITplg)b*==?>KL>{K%0`Kfrrjjy!2;$a0!+3UXpW8CJ1Vq^9(VFyD@qJ0g*V84Fxr(p1&D5Q`%b5%gFpnG?a`ys`S+09_%pkO|$gjj2X zi^l zb7pPe10H~>9dQDj&$ehxUlZpGspnf|JlyIygshGS;i+w5PiVb7cQrO)yTnMQO&ptW zE2BX`+}Rk@zGhM@GhWEOf`h+M@si3nT{ROLm-Q{UMk~kTl>3D4eIn#eE6?t`Xxbk? zDZ9!73ZMR!+syKR3aW~fj7Ji^2^!p(JD|ftG9vwv9e@bqr%XRj>2PrmUQQ%tnU)B% zsCG{Oh8a84@n{iLH_-r(ly9mEy;@0-ziNtaTD?tbaH!N8LS2@xN_N9Py{@^yUKoD4mHpIpv!K zE}8Qmlg?Fh{?mxSC&p%n|0r?K%uY^gLYvVmkh#x|uT&Q0V9>S;m9Mok<{vMwM;~WC zus0_nwI~5Fr4%khVwyQlnB)ljW-OAyyh0Hj7KjAV&yr!(4SRPy4TddG_DDiy8ZHr2 zp#=dC5Ey>>NPo7P`QtiKhxm%lHp_w{96BQ;a-csB#yja+7r*}Ms2VxDWiia(JB;47 zqN5K%{~aTO9l(lkbI@%FzHCRHB_pav z;Ka6GQjFpwMAxD*-k4j=a?2h)AeSfwpNrlnSFj0_CFl%5hoNfgyE8@*Pz92P)+oYZWVxZ0wM--&u19Fi{26#Ny|=qx6ung7}oX* zqJy!dIP(m`@{UcAg#bl;0re3CP+LH&V%E=ZVJ@ren zSp}v>U3YDq$94p+BjmiIpP3Oa_p!(V)x-7xbU50Hw!_8x`SSB~T#9kI%%D3n_%L|= z&mZ!*Ry6%^Ot~VmZN5Mo8kuta@k?2xE&uQ!0xDX3L=4$g$7EE+k~75+v=|jzU!04` zjfy<-KV`lwxfaZ;O?mXh50xPbyR8{5GIfoBxg&qkjz@oDOauQr_djuk`0~U;a$nD% zJpEG{8%d>neF$l-Rh%I8tGoqOA2OGSwD8ZFhx7r0AmSO_I^!D41iRUQ0A?!{AUIA| zH4y#tze5V%A7<153}m(gq(Fl45T8UMt_Th2>hO*0!m$hL4&(jt>gUQAZZ3DK+)h5?2~;~0vd32DIoKH{6a}{Fcy6tqiv$l8u6| zY7%mW6e}cmy!10&&$+rURP^G|bWIlOCMr5naJrtC(@dQ4Rm5v5 zjynX{Dj(o~an>({i_@*kbX}7ox_cyKA&abAHvQ}k;4KT!JCC2FM_@D*rDSqTp)sO) z<%Hpld6V(R`uhglg{ocjJ%$?s1VOyRKYV`P-3E=Szb7AklBoPA`Bb5%S_HZ0Z^GQ! zFrqlxga6*vkX<`Bi^bT5Zsu1u8VR{bfr(gx=M#2HD|{1hkPSK%tc8W$6byfCR7SFC z*p&u4g$8J*Xy_GR*=q;&g zri1JjLOQzM_%##7nuZXM`!pVySwBlLjtZ$hgsMR_gHlAZ320G)6yzpw3*96j(B;1W z3Oc^H8Bg(yPxicjLsY9LFK@`pd7kV5@?On924z7Bt+eb8s4`BVVCBHDAn_^$Od6iF zT!=dgkwvx9huya7VhPNt(g1F^?dVetUw$#ZUS<4eD~*;{ka;`@#fxPn@L3BBascyo z7B=i$DqmgA)1CAo2Vw@*^nj)CQvUuWg+4f;e_znQhZyb*xJ*!@$ARbR=gS+gDW_j2 z^Rpk3qeUMt=2!3JCoTHvc$wG_gFp7$O3bgb%C1MZ(>aKAxQ={DbYtYRoy})(S#_dg z>zK<0;?SUlZU!i5dv-&(Ii-63Gq}@`3XuLwyGiuc191JY0{pbQCIl2~&A?U7XJ=tW zWx#5^dIt)^C#d?+u8$C_4dRXSIiA{Qe3264%&F)|cV=s!kFG!{SQmJ=)!C(TbR>3_ z-^g_Xt9Z^BG6@l0FvA?xhZa3J%KPt@1WosGRK8}2(kK}S$ry(r6QV$rhw;x#DVO2xdNm)a*_|>e!K{+sg+`y+kg5&+7|{4(rC|$PwFOidrr_Oy;;|km{g77t`P?`b z5Y2ZVG*OqRMp`Cuj)9Pk|1t{3+wb2Bp+9-;g`se2wy<8{0RGi z%dUk8pajp*69zVk8)3<9IGGEOQ>}+N;39W?wxXe708%$r!8fpVn+Bs{@ZK!uBsTi> zfJ@p!S|>b8#^#5m1a5S91w^g1#kw2|(&bPvjeZABH^~;@rQM0OKe9v(jq7aFa506T zJvaTf*55A^wzPm_f?DWF>-082(&ITE>x07<`YF&IMUb?!62|}vShrZffSR0`f>~L7 ziXs+s%Z_fmWw7NmEB!nOr501cgtpFDbZw#jBjf&9)!3SI(oT5d~c!v598=z zp|2t{Q_FIr?E2}I7+OHF>zxrP6_^sNK#<281+K&?@1i`|Q!e*NsW!`l!Rf)$E>r13 zi5GgkWD~l=RMqpRMSEa7xDGQ6y2r!74}p<>x8^ft5+S-DB>7M7b~G64hN+@vVG{*0 zL7E$J*XwhbMsX*^N*l_ut43YD3c!1xbVUec4~b3RQfBku?5`PK{7`79zLILR!0}eKxz1biV>ym$RbRA`|Y<) zapb-HuZt(|LhYXdRmLgYZ-K2o#QzySqixgtg3kh0Q}4_uug4qkA9y=L1j$iIX!RzAd^55ba*U2T z&SJ5Ma-dm@$~2jJlUE*`GNPaZV2$*FAvcGA%DeE!N1%~2y*VGh2X<>-?^&yIhx&jW z_2tADSYjM;z@;~j=c>v5V1vaxgD!fQG0;a8sXlINf)Rmt{}C9l)kFP8y{$RjdGe*hw%M|~qw z`a@)Mt||npln5#6&P$sfpRaU0L!L1C+N#vhwdQlI6~rdcI5hL^?X+#7&`jIp4MXnUyttsXPzW&(<(NjSDg8M%B>s zM@22JOy?{Lwk@NVS{`1f0`}Z=LNgO%lgoF_v@k$XJ1KJ-%MyQN>XzzK$=+|YBZd&R zEwQRKcOi}CQ4^1n`w02<(BAXh)k{pC*$5F0k(%QISG<((NWL`@)g~?64u+Tcvk59u z?bOY*R`B2!>VVzBQd;!C=vBIgGaTo73^XUyA@hvLboaHq1f3D{y)#=pVaQ{C!_$kV8> z(0XxhcVtR%+BMH!`d@ThGBfZ$g0aMBzG!@axSa1l{vbK%dq_@!@7w55sI56~MvF_J zGIA{OefuMSx!eKGx>h8U376;MsB={{$aVRm7UPO_+%Gxcy@#j6gVWQ4SHzkjPzQ+u}J_n+A>ZJN}3x!Z;4 z>b8F%4Lr>UonM>>BtXY*>%45<*q4K1@irxTu2&mr-y3Q=4g%2uuMe<490n~Wr zQJe{o*$KtrxFWS?=24Xo^WUp zKZeQ{W-DujD81L$sB`|ncfVxB_TV?aB^P7v#1V5MJC1?~{DcDDB$8pMS<$*;cH8d< z%+aQUJ6&UNr)F@cC4<`l1Y|S4^?vo5VENQw`Se%B@@jGlVLfC38{zv!b9BR{Z+_n! zx_3@qADr$rh62b8^ZQrB^$t9Rm*cx&n)wBdm()wMq+T|^Ka?vE)iycO*v26OohYj) zt$WwgZ+HYO;a!QIDg-0{X?AL3(ee5G6CK=jz28WXY;4YW@@RFOe@#?&mYMKzzCn%8 zL*WP|#Yv^LW;eIX-=_g#^uX$TJ96WJSN@ipTpQ;(mxb~mPz?9`B}@;mz$h=+Wl>&msE2vs zAr$6?$7Gln-dK)BrhB{amP~C#T}(6bIONrF!D2{OW&44NEzia3i3w@|9%PSK^T+U~ z9mlAzY3DR(XUXBKHf-yKZR#E9DuZU;7wmd@xtShpE- z2T&{I%DZhD3y_>%3UHkrsYCRR`z1!Z-c|bdE{imSf5_dpIGjH`gm7YeC$Z0YNey7wOok$GT@4fRn^Rxv>u2(J9c`?E>#J^DC0 zTl!DdpY`8U^t!8hPz3YnC;41*P#W-wwsU(1Jc1|eUS5!3J_W@T5cqNMwU1OyA3N6ldAB19 zf$=-yqTO|q9-RmC60lP1ED*uO6sB; zzRBVvQqA($Pq;YwbLkC0fm$yXllP{8 z0sNe6+$gB-e1i1$GZBR5RJTzlmEK!(0*5Dbw$dJgU9n&|c*y*}7QE>0TXL682+7=fZPYGO~M zaUCu0O|VUl%J9)6Hf8ZC6J{25dBhITJ)1IZW}UMk@klIoqHnRxlxomHJOmZ#iXCq3 z$jc4HEFVhDr3Nh=`X#Hz{iZ8%HncG@nww~O62iip$@B}hj(JfA!SUCvGOX!53 z>kP!!TW=@lXF*)qCy0us>=2IP%|KcIhKuqFD z+RL?JdILaYtSwvWlDo;JJBnWN=b!{d`OXO_ir)1s$OT#sX+FvcGODqt?4HcmaLDsX z6{vf8Hu?9(p5d2mhCn_bBOI=QC^<`gUUZ%s07WC~ZQM>CB{+uE+aelB#Uqgpw-&Hd zjy^c;<5U@DE{Ge9;=yWhS$42CT9JKaS~gvf#N|{pyAOk9pH{INeW8-Y=nEv)V#CaE zo%;0ZW$M|unXBT}hc%^ojfPllj5>ASu351)uY*jNXVgd@e*48)7(1`cLUM6w7K_xZ zOoP6%g;|S4qFa@FUbir_6YIpnQ9)Q;aqYhhvQ1*eLN%pIR;nqHSdAt(T#hD#FK71P zk=xPOLgAwI$)g4Q%n$n~-w5M98f@%m0~nZ8poK_icejUg&+Ah6F^2oqO}+@6WFzyv zxjo{O>L}e{ir1JrM-*#bfiQLe>Q0H<$)g0nSBg02%~DJ+?v_NEn(bn7S+-y55n5yz z=}YLh;A3q50OBx;>{CTT9Sfr{1Mg9z+iY;gb~{USnCd^kv9EjJzY^vjLQj=itYHej z0)-s)ICX@MX}EPSatlErIZGD8v$Ym1YE|<}?Qw%K_IyOA}K>p^!$bnP_ zwLfMM$3Xa^P$18rx4>UFM_1rcK`da?ab~%naeRY99A?M+#QGYq+QwSt0!LGbO~ie8 zrYo`@T=qR90mr8ZSY1NGIvDVBv~JQtx&ykLVcZaAFy1tf0hmjQlf7&-X%QHe6Nl1u z8ll@(ag;P=5O2SQYa?_FA+zjeR}V85kOkA`Gcouj_^?3Z4DpKcnc!I5kdRrK*)+5< zZG!I4M2ntfD1#LvaI(7{FcB#8!xsUE9uQ9yTJP(A@Y`e4lD)kO zBodxR#Z#XZ8TFqPcyXVlSn5?SCcS4S5cd29i%Z08PGm5P=`xl?1?^h1WO-N?RJ2F} zZk%5#0oN?34^z^?8z;pkLqpwEI=b=j^jwm`rl%$xn*GDWqtn;N$FIKY6qt3zJ(+~V zo1-xTmN(be)7#|m0}h@?fUl98+B$fjVuxN#4F_J#x5M6lz4uCnZ3?Cbo#;Ovaw$K? zGGhu%9#c)nT4bZ(Sd$DGGgdLraZjX}#S=fEQVcJH9B>QNiCV}K9J(y#wq?GLtjMd& zLiSq`&xx@&#&g8?`lmrPJ7Mai5m%1rPlMfNOq-YyH7+h1ZY|R6uKy z6=n~$H~pPci_{`RFN+v(S%ICG1zflyLW`q}@!9loUtk)Tnu^onv%E{D@A%wI@1%(j8#YbJ)h`v+1 zQ+8=6RGjrv+Vw@qt7f7IavQppp(g&Is*~GnwoU?kZV%l?SdE~pKyGFO^&G(fPmU5WnMZZHc2}BB-$5 zg-s!+7~NXmZm8WpnO)2we#U-Fm@|yjOW?++TR(RG&fF!bu8O3tSs#SeyP@^|JL`Ib z#={158TVSJmlPKjZ!n0j_YSNxuy2__ZU2$;8~V`cqo-krDn_L}5Mg0S^&0Ax(R@fj z3W79JOdq}+a(C*|qM^?dEQT}rz(rb42mJ{SlEd@_SNrnjWK6K<=-*YPkmbW>@Ku4`2h}tNH}eAspl3;cpQ{EGxWiU0aowOo5zHgpLLM11_URPGy2D+mF1z~K+ftT&=U*OpU^ zgnMp1O_$g+2nqa|_7^?oOCB;&>GGF*Fh_#v!W7j{Rb+w}O_s~`+hsiyl3#0c6f6ab zJ0mbeDBlfbHZ@YhrRcUWMb^M}a%-5T*4P}wcpO%h{0F=h2rXYEO&dDAd4@!3}4Qn4E6~ibZN|CldoDB6>m_@H65(669DM8+Iw^*z#s(+!mK< zPPrONATJ|do>lr&*T7X6YoMD>kjf#g!g9VZO6Zy*=>=XU`wuwkA#v*a;GB3k1xu2S zSdxTev569`(w2%xLZKLnHb_FTha(E}l5T^`)>kNzR;Hpz(+d?7{7$+7~9chZfYd@~zC#=>mC=4ezn3MH4t603XiUgG25wmjECz7%f zt}8WhkvHPEOS}L^**mXry8N-9kIdJL{GBw?q0HX(Vlw}Va_DE5mc3@6E~)0o2EeS< zC3;GqqP6|jb1q?%tU@S3RKN=Xsz832T;~+_?(*jS`2Nh?!uS-jbS77LE8(QJlBr(- zFpO!0s*qiG?lgu{!$%Q>c?_`2K9HVQd8Yu23oTY0L=M1rO^7Q{BqGJ3JiQsG)5K;R z`3XvC_zcx(4kS)A27J1EaFH%5zTSPDD5?{rxVqhLsS7QbTd7L3XDYSUJ2;~2AaQyG z*B<$QaA$yV=HT^kqVs`ta0=&4e8^PMFM?npS4e46!V|=COTkYBx^YF>)d2mqBJZSt zdoz;EL5B707w8q1DN>?t43K2OwPhPE3O~wqC#(8TR&$=KU0LhGI#J_zfp;_b4RIAD zWnwCLUrxHwUBZKS@{|df(0nSp8Jb?_ks_Jg6H15WMJ6cS4KBarO8-~7ZiY)djieTT zq_3DjHL(7Uxi15P=u#;rhqp>GKOz#Y0@qn2^}Sz+Eu9^b-*i_%ET1`Lbc&$5TPHC} zx^`SZjl^=Zd~K_Uve5V!nP?)Y|1){unsAi+^F`q?K$MNtT+McCD4QRwF)2Oq#(IE%Q;Wm_j;{$t#;Hom~&=u==YuH~w(}NHm z&w|Kb?Y%rW8uWM}xv_a(0U3WttBU&+#EC?(1u4L{JHDRIZ^@{wm$NwppSFxiEgq`@YhMb&-O~j#4a{R? z9$wGF(5fNEyH*?CZ~iy|grR<2xzy*moCRf`_sH(gdT|KD;?&$!sGDEba;G#${B)Ij z13avRwuyHCThde`y%J@1ifPBvI^2kEF5%Ot{|+%eS*Y0uu*?ExOMJ;ju~L904bB1A zu$%&tZ4AVeyQAgS;_)br;zG~@8_BYKbV=}NjuwG;DLY86ORKw_WfVehM`zp?h9+=v zLH5rvx1Z(Kbdgn^bZ@XNT103;3Dmb9i73N+rOZvFDr6B*hWv(%Dz2wLUG3W-sm})} z`Z)5T3VkR_@sGy+NGX@g-wrLKDc`=T2r^l`Q$ACe6xprjxeYV#ow>=uWxL~f#1^^l z;F+|cmKHjN47bmjHHO2dPclE@ghwsy&Wxp9a1f;d)u|09sv(%`fZ;8k?xOtpzl-Hp zSuEDIFBdI0#!VBH&4mkbY;z9RmJ~5GlP7r9PqOsGzwnYbC8H;_qeSW9`q%N#UnylsJiQGy3Vx81*2D4)p@rQo_}e=#CH#Pw1$n6d7B{)4gqs-aO243lFrX zvS!S+At_1{Te?B*%XBfvDjMd-sXmcPw}E;NpSkY22C$c9T}NTCjZDzV*Ne3BVJWSA zSVk*n=wI5ek1jhfC(d}suK|7J$!0yn;E?Y|xAcm8?uv=)Mpr9U+LF|+WHSd{uMo=R zszvR!-l4TSk^&TJ>hs={3)ou@l9O#9$kpV4+KHeJG(|>JSd7nX z5Z&nHGb=RHlPhz2B__0=YjRU$G%cj%6(h#Hc|$)lfIChEH>&4v)g;!633i;meeX34psQ$2l7g{eDb%dzVf z^ZDVLW>_*Fo%~Ah0Ba`_Wb&>!BYw9WJt^ga~k+I%z~xO zi-cCU{6s!?%~T{Vc<+%hxY_SvcM_bqMUt=v*TsfgAZ;0~vTJYsozlZ(3AQg&$?^XE zGN&V_rwv4)_wFt>mVPEOA^~WkL_r36-(bevX`2!8r&I8GxoB#5#G^K6ArTj<2DHor z?b)3muS47oAKDl170Pi|SR_mlS_nfOeik+!DP1``9B=6q6t~_HITrs2olTZyc#lmKez$<+r43VtX+9 zmXTWVKT2XGbanY?wq2pbj=D;`*f{7s8|wjHpQM;>gNm3V5%Qy#McEP%3vJJKDd*U? ze%I#7)fSS*(z0kZnP7y<(PQqc#B6Y(iYXD?rP!Y#3#A?$c_ZLMrY~V)&xo!Au>zzZ; zJtABS5mKorw)Av&R|<73JKs0#cs1CVG<1Ueo{qNu$0u9aRy~vGC7dwcSKmiKyqmkv z*@&BZK>k~6a0uZ)u@iXgGea)0X;!xq3IY9yy{;;k>*o=#1(_aKDGzGXmngR}y6InV z&%hu`m%jv-rGDCqdr7;GebUJ;s=40X$>!}Af&;Vc9J{L;&!%U0`UG=+P+5`@O4UNj zx!EyPJc9OL?d=W2K!}tS20;W@M3)zn8F?aRVijTqQaKwZ5F!PdIDwQ+&VeD~{206n zEIHCE#e2eEHL(JjvaD<%2ra^Eh}r>&8zJRkJ#WV}NCP;wsRefGg2i*c(1w?7{*nbvfGNjkqVKVIUprni^4wetn_ZJH1I zfBo*|$ zKG=LUnNCL?{gLtjt?YJRMuDKMKAaa?aYcKB_xy5ypeZ;p9F+_kp;>WRFf$w$P$tLM zF+Lva2UQByz_=#WM0@Sy-y!F-%*q&y%veTh6Q zfmG?~-tg^z9S!z4{%M0{X_~MdCVIot#bPx*yeu4eHk6@lzNB_xzu3D%S8U7_i3;m$ zSQ2Y`I=bN1+vf{2)suy*&yR)wz8Rg*n)W6U8n7lR>xXUCb{PQ(JN_a#HuP&7Jc7Hl*|)I~%|O``@N)Oy@?l zZ8Qb&RQTSN-Dbu(8L0FDY%~^vpVTKj9L|4Wf+qBempLG+tdP+7C2%UNYni{CFFfN? z*danZ1?zpUx8-`SLuzhAh0S4LyPfc2+`UJiH6*Dj%*G!P1TGvMp8@xvD(1vT`J(9g$epa-=aC~1 zBHz|AAJtJDu7;a{=@jK_xu*9tWk8`L;Pvcdznh#+vOId^8vL=})&p{WKK{wKOrOlS z3zO!H$4`_;fG-ALg+5tQuB$K1b3NAjX2nzD^W`68N$FT9(?u6!&E( z*p&dhpDln6p%cWFEVz%&KJzvBNKw>fgoca89XG9=Y$pyrln*I`tBaUhd@uppi5CH-cPr2PAAIsq*5Z_u+^a?QbX#7{u_Iv)m~ z18Emdg_V@Qgy1ZY0*^C0YL@S`EfkIxS(p^>>cgzV>L}W7`!-oJ=jJ6ukVm4 z4M|@gz1k%}zUJXW5=g-~=@ny4K!C~~1P^xqFr!iI4u_{Pg5BJ4QMG%lZ8Mbo|ZuwuXnfe|pI8a(P|r zD(oMeP+`N}F(8D6X$_m)3Pz+EmNF!RW(~L0*(n5Zgqmv1=b1WfK!aP^Y{z`oycnJR=vm1eV=7*FNSY1jA0ft$V`r1HgzVAI zQzyC79Nemq%*U0@f{%{21f883}*JBgM0tT)bY;J2v(XUf|bC;cC&JP`YOcI^z9)x zSr0eA?V{of2+w_vZovq3T)yL~+0(JSa)(B!U%i({M=xLPc`7HYWLA4>19UBNs8Yvt zeLMmB%45bKyy9>Nj32FgCSl-1XaOUxAe*>9`;E7 zPQZ(b`}GR_JIRD9bsT0A3ulc^P9W~b98a`^3q8+N+yNVae>#m`{lpW`Y>7po4K}uP z5}H&Aufx_H*s>Ei5YV_Iy-AIxeN*w%n|BaOWjY2nZ1U3Cu(6Aas5L@fbF4JES$h|n zmAgV5E%=#W%~i;KT`WOUXR>?!Lr3Vj>_TkY_lu1l6CJM!0O5cD1T*Ct{=9sc8!X>c9-*R)(6N?MD#8F5O9 zb~-kgVkR_d=b~G+OylVd%VmWb$_g`+=+O;O$kg>0FOdgpjx5^lr6Z$qW@M>xy*@1& zSDR|L*Bw*vW>F3egjiq}g=|qx2X1?=zbW2&l+BfLt-bEO8b5^2SB?%-UeP%%%P0S5 zYuzEz;|l=$X_6hx&ZZFCOIR+MLa$@RGBi;9VMmGIQYjDHFa=}`0h$^ETX=|eh=((p zlK&wIbPt-yv-kLfAwr3~SE7}G{RCqH+ENv)K|iEKK9Nro7>caLIh9bvgWVmEuXpCxw;jPo*A&6s z(wES8f}8y@YHA5~CV#;A#$8k8NxIc1w#b^TN?5&IkRPhMIh1Ae$675~g}8`y44CXz z*jlRYC)-lKqd!S=$hcXthitgJS<@xj;Nho}SB5=B!m0=iFSLUF7uCcQK=xxEcI7=9 z@tyQ~mf#}A&=oxg$0(T;(Xrlzlz^h-aYevOf-~e1=Us~*k5z0?uW%M$^Y}vcmxljj z2;8S3sh2?&*%RLYI~AyvL(m$qZTJ^nR7+W?%^?-0KRy0CL(zRCF_YB{6aHm*xJuO) z)g=*C%;0pod%lnS^tk_q6p!&;*vEE@-DW~tZ8i+#e@xC?tNi&XM{_#t4-a&hACSa1!MT#w2k;$v)Y4!BPCO&t~u{qskF7w|58s=$k^2(#K>yR$)*47nFvpd8=Z?;m3l=!R1i@jB z#TPx$a_PTY4!Nr2E+=RRf`uNZT5_H=saLk6hg-gr9NuGY4P^#0Dye6Wi><0rCS7yI zvL|PySw8fl&%Bg7yx3EJHB64jco&E~@2tw)vlb$z+&cV6W6Hi|nku@4Mc!>SM#z9! zO0y~|{_45#iMddQKBe5HU||@gF#G+^_%tDnosF`{>Ej*A6;Kmdy^ymLH8)bJXuOWI z$2TcRw(azbBQRTF4rZhvZGgG+SOYEFwRCE&_!o3*$#;;K*0$ys;+OoKqOOdtTdaSZ zkeL@QmMoTdW>%i*WQ=%w$Srk>Dh>+&*CcKwt&`5)U-t&X)7}f%^_S(@;0b0j8`I#_ zf+baKXkYND0{Bv`?d9@jbq)#=<>hu3qvd6Us-qbdp{%3DF3|Di^)dGj)xRMHpdb_+ z%T79vpLDC&(z`LNf^ksCo!%_oj9B9!7d;c+_;QI&?%s(1KX&F@7J#p?EKx)2J#d6z zxruy})+y}6 zQY-ngeQ8lybVw+|t=0`ow-g%I7%!0hp+#8Y{tCRlhxe(nJJVOYmQr66?BgR4VRfvP zO~n}_UMH6{r|xQc$WsSVf)~;rP1-q6nRIXbzZpF64dIRlP9(K+<8tETt+JVPpsb_L z&VOr?l&f9!M8nFrvOpcF)lciSB1&1l6=b^2 zZ&vHIA{tyVEb~oZIkK=AOgD#x)WUo#6X7wg)rx46`Bvm%zFsS$eCAu3+I7~n7137< z=Lkl%{v5%md@Cc?XIrlo(S~!a&{4O{J8ls_atra1TTCu({>V*g_ff}9%_E22M-D}g z+%O+GP_@??ND}2b3G^HvyONI`JZ>Lq6&|Y44js{t>md;#L)<^v+w)=D&dzR{RXf_* zd3}6fPy=B>J~XR(vUj?7LRdvpb%gX0bxeVmKl~#x(oj#W>@a${4_Oh=Zi#mJllp5N z?ldGOAFC^3J)_y2f=>p>hXTs3*hhW+BmCzCfra71zmHq8taDVrre%Sde_8#6#~l8m zwaICy@ekUJ?##eMT$=O)SEf|O-G{$mxsgf0gUGBa^LI+-uZ%_*%k;{~+#1f@PRiU) z%G^%M+&;?OKFZua%G^H6%s#3%1aOyDF8iA&E3kI0U1=O_Tv~#Oc!&s_xopiq_m*(C zb3YH;X7rrYZEV$|8on(hc)XRuntWeL$+cd+-G+3D>-Bp!*npkG#vDJ8H3v#1$Q+Ht z3%o8lz_s+jYX15`wj0-;vz&dVAHuHJPcPkwQqaF-0crmkI839aJWj$Mx{-i{OIK{z zc4h@AR-O=$WetK)D;-@3L0v*7&sDW_`}M5m{g*6|dI2U2hHt=R5%UVH>MMK)CQH(L zt*XE`&RC-aLGtjU@ptIw?r5dX4EDe1{ETVmn3lWTUuf01PqKV*Up;trJHB)=>-B6B zxOM)b{APM_a5DUQyLE##S~;-?oI-S=O;wF<+A6zLtZLQs^qtcj1SKzYjmW?pc2pF& z(0DgrpaTBbR07SevluUw<^`>JLGc+mto%fj!-v$vu+xlxvMg7v&{=y7Ve8M%sm(OL z5OQB1J5hkm6rG-3jzRTke1u+wwtCO_I(kb{=Ei(&vds?J7!*7wR1(Ya82_K?dsS+lT(X$PfAe@}w-eR(~U(NF~> zyvP(2RiZKW_ORWJ13^{KS8!9_=dA4wULFkgKz4XC1XncoJ$F&-_r8q7OZ^kzI9B^pOWf(58E0)m{gqG5Qkbh16d1#>WVlN9Ox~* zIH1?UVlL%1T;72C54xcwVI+u3Ti|JK0fv@L#%AEKXms0cj1?!i*bFHurzl5C zjqE%URFttl_*noPhnaW{vgf*sLeoaaIHhq2Zn#PzexNh2MaXJyB!ax3~uS2ZBglWL6YNz7f56K}$9fhB)oS ziggk>>8rX;_rE*XRu(g(f?{OgVIph)b3B4(6ST*RHBq{zr_^51cTRCH-0Kpwg2$?5 zNSgRC%?m&IxShc^eU4_8RVz?O_cA$gz}~2r?}-cE3ixy-BJ%OU@))_?P4`F`z+vNk z(gu<9**t5teL-LXy`G)1CFRul>@4REFI8b?Oz#627#zaV6uqIs)>uWlv^6tXciEUi z_b4^u2p_?Pq#N2t$sDa>X&F3e<+rMWT128eBR6jIR9ol8?ZIv*s@EHi7r@3IO%HZu zEUe!haFDRUNX)eN2cc7?`OQ@c-( z*E~S1El`176;}tarZBrPv&(Og2jvp>(mh|8bBZ^oo9KGL4GAv}rj2*L)nDM{1Q z$4(X-P8ZU>cTNLRp@K=53Z**c@ql|6<#;;(c&CYNuulD2O(AhV#2rp3D`aQ!LhxA$ zEXp2ac1;mCvdlTVIfjO%Yoj-`T*7p%uPSPMLR^=u`MNVNb&{d0q5gq}HxE?)jiLgL zL5jw7ZK&_;E}bUY&ICO->kL4oHL&l`zo4+FuKiRbUjQX25-5vayw5e~`zJqW2l+*D zIgxF`bJKS?Ywx2~9-6YhxZQ_sW`hUw{Q2;~{EY#GwLZi|kdwOKbJ19_8R*;JGVuLE zioHk`Q~0pCuc&kdkUF|%fCekEA20Y9E+MwocWR{uHKignE!@DAFF45p;N09)K%vlf zKh4T$X5?5xA>7+OBz0eKfxE^&l=nsk5l|_#PmiR(!K?D6+n~77q>ty}R@7v~WdWdX z*9Yj^G(cjTTzrIco#dp4QYgf|SEzmRg%_ zWU1^ovb%tyEu_~^)N8kqg0)JgMWkrGz(+@bHd}TCG>NK!bXV5ms44OZ>^?=VH`$vM zUxvn4JLN#66pXc-c~QMmX;p73Q#_(WYP6X*#Y)6M^Arlj2c^webyPMyu#B{rZ5*va zM_Meyfm$GnEk%YP6n`d0j<8+Xx>HxXnc8*>{64I1du^tJqz7~`kPy`skTzkgMUfKj6ag6gH80 zxVVnBO0wf%gxs-~4?CWrp4C$OCEm+k{I2FxrEnaq!Eb4Df^{g|LwCF7_*-CGgaSNR zhWLk;Epj9kgP7Bjiw4uvY0WNBof)QU`D0|-3$Stf3|4m8X3T#sLechk$e1HTs}Asu4B%MJX^}bT-|6y2w9?j%ejag{?-d>gW024>Ces$ zSIY>O3Q)JnatK!wVD|=>`Bv{K5(zER>{588-Lp$HRq`VFw`_NG2vxxrLi}{5AQQl9 z+~8DmX%qK&5_$6(AkWxgKld54VInC-ZwHV@h72tMR<;ScpWwa;jS55o)~Xlykd*-w^dtF*J(*K zdnp#M)GS8ogam;Q=2J~x{HQGHhr$0WF{IDd8B(MJW}Q?N$)}Vh8k&ZG3&M55FJJcx?m7&G>VLS3?6m76#5_pZSzb;~xKda(r?^Ip3 zX2n*XElfIlmnMvJq4^`!SFIUGz{e|xo7yIaAdjEZ(~folyzh#uCfvJ1=qNNU(}9J8 zMPIN1b)Q@s4HPURI8{qNjl2@iG(1>c+b<}B1|^+{o0b>1G8|uqJy(Z?IIU98mR%1J zaFUB&#XyhR?}b_fX@~J9{1vdJUUlsHi*TSh_N96+!!A2}euZJHAEJ2JW;xvRu*)mC zs11~Oyrw>K0TX&%>f@qhi+GzPEX)AO4dD}H*;^Zt3TH%e3U$P-WtYS7)>9S+-0d3( z&xCv)2btN#HI@W_n;n^JGcfavS~Bi(!nI!Cg_dQ7jY1#hdpFWh{8WFLGt?io7dVZnH3rD#Q zK0&$Snj%W(`3y+Fkh7xj8`HZYV`Y}Pa&<1r`FUY*X8aLn!NI58C9(K~*Aj;MAivy~ zH}A*h_{VglMG&jzEIkb#j%n1=?QzNvsZPX&(oahQ;%i6O8Y==@m^;Pe+kONVtoXV# zZ!f^j(_MTLqRn7@V$gcW8ea(-#J*K+9(3?%8OS(w6`c?w{jQ}UjWZZ$nMc;9^xQUldvGG>Qh|aUqRv7K7$l zx9HBJVm=NayZL;G4<}G=l2!wduq`RE=460<@WsXCtfE~hv1Yp%jHL=#$gY`H`zTz; z+{Keo9o~Gv!E6QFFwdRdp`0~x4YBv5qk(@fHnrvYw#n++L1F+DP{D}FPkexyKIkA& ztfJzwLK3!S%VKcR<*KTEDU$9%o;?Mab{ zSi3k2n@`gQHh|6GsT#0=lpbz#sKnsxcLx<2zOJ`CHrfQvM`ma%-)LXUsZ-J`7m_lY zZEqrrYr2uamG%Rhyk=V2BXn!Ds_97zHabV#rM$)oA_kO=CO{|(5uiRSn*uKO%9yXN zdnmk8L5^}6B0cfpWMbrpuHNT+{? z4H)kZXRP(RTI!AnE}zJ<1^MqdiK@I|Nu^JGqWrs}8Q8{aVEL~1*}o%}1s8Xq`_~{K z|7l)BebEsQ&|=-Z6-zc*q189009kcs)=4(Fp}~B006|yjy$e%o+6dJ~cl*OW@@Mg- zeRRDfO~p>QAFRf5g^YB*Slohdxl2%Uxd3+E4fr{naCDi82c&g7Cb!ef8G~jHIbz#z zF3uYQA8pNs>RD6wJj}J6^RbCs+r@}yMa~7z=j`kj!^D$prfu54x`8m>SOn{->o1Jy z8teSJR)8n%D;3PNKJPsRKY8uU6_Mr`k%fxympAV^zHB>d{eSJO-R@TU=HrNZXNYa% z8JIlqIj?-KP1(AQ+v|OCk!~?UL)yt-!QovKUx*71i%zaNpCvsDHgUVjp3IskhQTdB z#tak3uN3#qpD%kxC~h2!Njb zvsj=$LTDH=S@LA0yi6{iSc8?&gu=2gpC+v=8hGzn$M~W~-Jh1IQussda{#Uq-`#u^k zcD$W(;a;VvgMzkGr*qlPqWEUrJ6&^={D}lwbroCnHydqRd%1-zd_VaiW5ZDZ^KcGf zZOA(~olmTU=F*@jK(W;|E?4c9NDC*r4NK6pFTGF3f~VxwS5x_Rn{GaTow_kK9ZIi3Q?G7O3Tj?c3;IDK1zqg~j4;Az)L!q@X@UQL|ytDY8#!$NO8 znsE`k{f;(73HiY5HBCS?AU2vBihSBbOr-hue2)EZQ0xBG^Or!wml~6;)2uOaFN856C^iH)DGit= zWgj(bau`LKpf;t20+{o4z_h;CEvWMVRLXA(Dq+&Mr#_#3d+KVtQG4qBn;Vm=rZM%n z)2J~GYpg+xxl!l)&NZrDr5iP>4yU;>sT$2Rz`fo~Uk58vnlO#Z=4{rek>rH!x**p6 z?O*q-c=r2vR)oy`d%Kh?L=hVhWOq>0RkBSMJnd8GU;K`2K4m9?R=t7EYuR_uIiE=G zEKW&P-&Bru_2t=W8tQt5eSUBZ4u|u@G3>o%=h+tHRUkMSzKA?9+mP7~+p>cx47g?a z8AVl&oy~bxt^0x1Y0Yg6?n`D|2V?u1(}oyV4%@q)FSjfraL852NLCVeT#SL?d~n#& zrW*0r=kLc0^a*^c5VtL0Iy}ynGGQqx@P?Yp2=nZW`;w(O)&@h68vBBNrtT({MbFz*io4 ztX5xhymAnSz{h^r8iL4Z^d1z%VY{vHHQH-8=D2j5JNe!Tpee#q@COz6d1_#1=?9MD zn9C7b_RrBW9(l~z*R!o?#lW3S3qphBBE2DxMmdEZu7irTVZ6G5o&Z3!aydE~>>&WS zB3m-ooAv(NT~UFy`zN`f0*(E0qmi^e|EIgpe%1SBgJD!3_ZCy@p8Az_H$VJ0Kk<#^ zEjY*nK*RIAR*@ju(V(uQO& zYY9Vjo1cgaFP>;1KnE3lXoaS4*$INIR>gpNPF>tgmgIy_+!KPZoPyZ9&epvoWqZ+P zig(yQ+eN8byq|Oz1;KUibtg5v6?t{pr53$g8thB|j=u~!8F${K{!(54%J$b?bRAm5 zZ7F{>`YBI51-Fc4Hxy}tkko4^y!~i%d>nyWDD!&u0cq_aLnF`|@-D9&A3o%6^f`h* zICLaAPCPX9KcK4dkd!%=D~MSxg+{;=ge_PkF94I>EJ<~&FGXI5n*TWF0fASp^ee0V zNxQ!-Rd!kHY}~Z#_=whLj4=D}0Ksoe?R?5}+U=X)irTqUqm6$iYR4Zu&KtfVXsXGM z-xHa%(f*SC^e;gIg;q!RxWhWd9p<=8mOQ%meRr2&(18JCvv}=Q+wa7O`__<{a3&)? zuyOovci(%@vq{(I&uZ7Uo(%xl2P>K~Bunp;9ZECVSPw}u)&df4LTeOcz2J@oHyd&% z9mQnW3Ej1|H#XhgfQNsj$Bwm2yJuaJ<{oG4x!_i?I~SUp82@Is^?ixLe)Ze>K5ktf zOJVIx|Gw{FJ*oc{c4o?u`=61s=VEf-MJ=lI)h!aCbGD5iiEVuK&5+oB7+6B!e4dPR z+<*h%Z?8A<;1nYiU< z+T`9rt!;%r72g+RWokk%Z3*d4vmI{aMu}OzESm-(y@td7l zmUK~!VI~?K`aGJs-zQ~rzbDsP-fP$J&e_bVYT#k?lkhL^;Y=(iuPVDIHpJa1tA8bu zsS&Y6O7kBt$8=WUuKYMcV8p`f9rAIF85Qe|-!B5)>ut;dIX?8zL3Barx~UhB)R|>Y zDZPg<Eu~xHH+*h2R1C9`FQfEY5&5SQ#P0WC_mc z=L}(eJ5Y9VHou0ZUN6zJh&41{TU*=5n~K6^1Z9!WE762}03mmxC!(MbAYlNMlCT#+ zaHA&tVmj%Z#&LY)p|2tr2IgQl(w z@@Sw%F^)|bIdJr0G?`LJoPv$adYtv&hr)&RAo;sKB<`??q6OpxfDK4gw_k!au%P8e zPC-!9GTbh3D=vkN1nPEn^Mr8NZ4_D+l;1^o1D#LUU`hnCpbt4YF9oj`-bt04;Wwn6 z#arn8uD^!&&L=$blMA*gK4JL^aV|nPxJLXmByNedb}8vOCykQI0#rSDx`9@Afed%V zfxD5CE*)zxr)mWVcC{HtIds9PeA+*9Gt;d~0-BtcYOLPTlsQC;FfL-Rg^`x&oI!|T zQ=d;RF2=+JY4#$?(&6iBsrp`PZ}#^&j1hOi6dv3kK*Q<%SgG4N@?St-`agj6a`Uc? zmY1y~`zj2bl9{-#cX%(kz0~08W8XY$J_7ExNbg4rC%p)R_@g$yS>uH$HyJ%(oYwpm zsl$`zJdir`E57U8@+{DXh0Bfv_Yg0UaT3z2~fs<~JoTIp7@cW^-M8h1jD`lad`%cl{=BVnepCD^Bozx#a6pCFu@7M^F-Bx36$~nRl68nduDGPCp~asEq;z%P(?+dbmj-?V;AQ8 zQHu4~RzCj(8_s{UJDg`)vo$1M>VjiI2a9{seXyVKWa}R!@eR3Odqch+d^0$DGjO4Q zQ9&cT`kH%TK(-cxT^#3rah!FbaH+;V9E|by=T;3>NK+Fn)cc=$Ki$Ei%q9`3@N|PC z$2-*kq3Z>SdjMi$3c@*H5Vm0#RqeM3zvLKyG6kVX*F-eUYNDF@iPBe599SN|^Vfre z;WpB!FK%ged?COzeiYTO{c|E-2v{EHnZLS)$D2(2Sa{uT=4D1D-Aulu<8MJ@2Y6WKZPXTdr2Bzyd% z74IEe0=yXqa+O`UN;}>4j>=sS9$EJ-eDK#NFpv8O z{vPms1YaiLuKN32UXRD;uO?TM6?-ew#e3gSttTv6-v%NjTymBXYXsL@$8bUgIjZ`d zM5c0EASW-1wQxj#1+M?uWOaLZd>Zj{(&dRm;Y!ZM?X(Xxto#d3SMEvOn&&CNO;50b z*WD)TWml4vMr%r4~a+{i2srcM)k6n|q-L z^j(gNJxVi-i9Gkee`nJ`i)wy$c5^+^a2aMQbVz)!md`}f6^`aV{R8FHIe|*ufvB!P z;RbUQKri`N61DU35}A4V#YmXkl3b6lvMdS+Ic!_B&V0QHD%BGiLiLw1bylzsR;cbADH)vfIO%Km|;Dd?c;F~5pV!JK*PWHLhW5(!|R$u>NG&n zD(H(uAs!>bq{?>3Q?w(}XBvfrJDN>z4=#@7WtStHtmWPw?!~7H$%Q4>1}7d;sFml> zTgx9O*VnjdhDUGqP9);o%0Sf)_{$bkic*Ale@?{c*(Jg6#LGADXl|G4pG24oN}%so zJrIcq-Y+47-CGa8d(h8nvO>ih4;f1-z52Jas@&$ zxQY7jmct32ACEe;ELs$$sh*2L6H0yZF+v@6o32S-*}v7AJU)1ZoZLoha@|Ffd`lXID>(>II%`f=g&2oHta!NRn6fDL4P)(C+#`G_`f6lyXy8V>0 z3fpEPE|8S7-eDg!-ECMTxySro^r4gDfMK3X_X)NlEse%oF+o!XoAG8rAZJ7cn!U+z z;X0vT&+XPbg@B?k*6|UlyHIu{mr3->!FDUU-tu}qW|7)eP)ISl`Y%*_a+fC)?=jf4Y_8!8KG8?xAHY3~tf3XP1$oSQH=1&n0qF z`gO%b12HdXN*+-iZ9}V0=kp&&t6WkaKlwjf4=gj0*5UR6fT0VHD|l)nEC}xtR@ytd zfXC8t|IMK71CbXNcwTIQ_8!Xf%$~BUf7R~r6ydym0yT}L6uh-o8 z4Eitl?ue@o%p=TlvEV5$&8+v1Kjo+HDLhz@t}%bvIYpNh`u@$n8IP}LH&^fAEuv|< zhq1J~D1usehXx5bb2^RCG0bK@sM|+TuG8_LJP%Rsf08V2@y3uB&_RGeLo7G!|CjnvBo z6??D({NL+g9!9ck+hqqi_9e`9ne^#=e*UP7?As9rKv4RpZczLzc@5`Me|GK|&;zTJ zF>q=Q-0SYnDJydzKN#q7!?m&X-q!J_vUr~sG-c~lra99sa&A^MwrCH%~SP@x0yP#Y{<=( z`nlw|d;AKz(6$ZE-WI#|oJW5dzkNNcEZE?{uc|KxpK>x0Rxs-Ti7x?KNX|8d{H0UU zaNeIzJ0|@JJv)DXl5J&MzrdRmem%ioKq+NUjZ^4!*W@WY)j4Lk?!~1zULV`Li_u5A zUg{+R)wl$JO7Os9d?P0;l}jB7%IY0wPhEBV5TE(@)056vH7h#PceMDUFJ1f@88S|C{$EFf zy|*X*-GkSsq$%50bYgBh!#*mMHu?e}y8itR*GKGT7suY2O^rk^y6GK+qt^)1CHW$&#>j z4HAvOHpw`D`?sG}yXw?=2uQl`{ibJPbn3b5wQJXYV#K><@m#1cZwdw3Aoc zdk3ZuoEhw5h*60+4`726AQ`XwKjm%s2YwzvU1;(EeFL=P0TB;Rcw;aojck_xI>)>H zEN@GU$#yoKf54~d#3y}4c*%8ip-vv^;vrh0IAEHd=);f<6D zScHyRh*qo)@#4K@tOM4{36$MAEc5J&=$H%|jlmb339!VXK{H$=;r_cNR#RRhALexM zsNeQl30u?C(e>HY(ZO~nkvJ?SZXfO)9W#wJThfOuay1>ZDvZ~;2c)zI^atT7z#zpe zjLI1%ZVD1BtEBn9X3ycO*T>sOFZcR8G+_nNDTroA@9|!VXQmsqgI#s(^@ObU{PA~x zV*U_bPjr%5^QZkCa9By7=StXR@GUNQb+QvR0RD#M{#IK~bF=mH1-x!0^p})<1vSs6+n-QBe)}i5{f~PuX5g5Y(d)sSaww&|0&iqcEdr;0 z7eU1!r@R4~`k*SN9h{z)SHdv|HTKjkTMe8auCGYZIsvF;l{Z16RO#W@EaG|SV1kHTwWD(_ZG{rq9&GC`w@u8pb92b%pj3~dl1Q_ z2xXL~rY|VI5rZg`@@90yI;=`UkT9K1DDvU%{`L`*5X4TURO+kyjJ6|)H=eB9iezug zu0P`1Cnhgw<1vPk^i2?}i=NMM1C+z;`4EaHWR>j6SU9?ljAcX78m2Q7mw4hw%a7Z0 z((SdEo(cuW%X=1+C7B@nB0N~lfMIX&=nvBLiwlR!JeL?*%H54j?!rFp=z`~ z@lWAV{SK;t(xEhGUjNjj3Hc;PI?~yQbC2<1M;BRtx5vMFu!=o+$sHaYyxM)SJ3Q&X zFbvP8K=+YLQw_0Gx&K{2rq)-3`F|HUC!J$p^pE92=p{HSoPV!__}|;Z;R*6dj!$-9 zo^0~Zb5KRneSw^k#L(rfEnO$-e7} zNcDGXs6h%i1_}D?G6}THy(gG$Z?^{d2*vcX@l`3*w!l3B9`$)^*bji`g-q}lz-juJ z1U@KnPteD`t`7d;LB;8rXIL{okGLqmcG%)ug zwa~H)DXW|u_NXod3Lajn*JmeQpO9V*!K_;4S0V`O;1A(r((Wo zh0uDm2%2-cHBRhivKwzm)UZO0ILIQ1&36ItL|z1cu|#SZsXp9joY=5fsyRi8oS@~h zGvdFp>EtVyzs=8V%y_@jU%HzE*`v!v^`^&9SM3H_@k^n6W{QrAs#r$28S7!0ET@Fk z_--NIUw^+L6a|T>0mJ6q5{{kK;Ml2vW9N2o=%NstewB5h3Z+ZKxwnF*DAGx7$4IIj z?8%MwTXnd?#w^IrqbacYD^J1}o6ORK(bFS}JL0U>-p{se7lOIiwq&i)w)grkOm<}^ z%$Dlcqhr|UFu$RrlVz@6IMi*4$}@YC5jvx^Gdf#V!KEJdE8y}h``g1M((&eSDL20g zFwgPFP!XDHc>A}9SEc{W0oHCiDM$@WjT+O9T`_nsmAL&VCEQN)L9%?K4lI&t+zqPj ztrfP4IA*TeDNfjOhb?h*wENR4aJkU234pu|x=~Xe85NuI!s$j$dHHj)wLpHo%3keX zbt<+g37uEiVim241iMjVa(~B^JYU0g74_yz)YcoUu8Ez+!mj^&_(TR;$AZxk^*WF6FR8vOHnjH_P>f4@1LBtd#TmzN=E zb99*{)Sm+41BnDOA$lkH^2zf$!;)Fqj zBcb%)$g6ez-Hq-M(|jZ%6e&1$F`w6b4V8djX~6Pa@1(b&A01P%KX zgRf2J8D@!Xr=}f5Pcw4qj4nuNtkx2&5gBM5y4(x*%QR?LQki|`;%H>OK+PdH2OR*h zy?*2z2GzQ-z($Krx!Xy7uMKr~U_;(JkA&n^#J?B{?n0caS6^dm$50azC6_=a(3!Xd-vd@6IuXLmOEpZf;FCR1b#~K zp{Q-hrHxK6;nxo`9`WfYgTue6*^>P4HrCfGCk>SbmeGwjK)uvuB?3fejc%To=SWIT z9dgEeFF&nBFxFy(1^tKOoZRUgkPM$SB&QQpPgsUocojH^Y?aYD$j!qvP_P|;bdXuU z9|-q8e{XWA$4=Lrt2eBtE$2$NwyJM?k?@3)922+bXW)5I@%ut0yOhv?fJhz4@1FdX zqfSPy9)OvmfWCT%Iz(j+@#InBw4>MS-AtEEElcY#W@dOV4zHIV3_dA2`9_g_%?!$a zmjNc&x_Zdhv^BuY3RM)GGf)LpoR_03-Tv#Bpf|qLV+-&j5HKRSRafw6d-LF@?W4c4 z4tkRsoBhMC1#oc*l55n%u!ot#T5Pv=o3c`hU zH9C?F_@sdwFskKt1cBp%9JDzKfs5+Gz2f4zG1>iI(H$Wk*Bxn^JL^PJ%rPqjNrEOY zrxWP!m|`SVQ%xx<$=9{$jR>i6`3xOcUP()gr;cG;5wA@;@5tYb{$WdwjUalWTVS-R zDQwf>>!WS7Dhk{dHiXuo11%+(mhydPCabsoU)!6oXE?y~>eY{j{iEUbR`FsWxM&ij z(Qb?^1y_dwH_JSAHofx`emc!e(w1~Sh46#`!j%4_YS}dH_qX2Lj0QA9LM(Q-n6qPF zJrd>aL!;C39AY3@f1^`TiZ=5eDnRRS;#eN~pEv0YZ(r-28l>PLikUvo1Da=!Et`gtMJaE&@Z{v>!c#b8 z_OZBpxZ(1yOx`fa`+PB*d_kH*l*pL60RNwweLb7FY-~Ue;_KZlbZD^)ERZi9*9!7J z*KN}S=hn*9rAnC73ClxY$@0a%uvl1kAWQIB6+l}-_RHKm-(_DH%jI-J9``<9bOXQH zX}{5*#Ba9vU@{f9zoe^>$I~wtL>ZC;_AMX>`gCgBO0zL~@Gr2JWM58%+Ra52A=W_$Jcw|b zwJbS|xO~6xejaa)3%MQo_j^SgpQj{3$23DZppZHb#MOTOi=kYK z^M_*LJP;5Y8e3AT>W_o-7S`94P;nEiyDFVWwtoJ0^61;i+h;8}{Ey&}=kyK6V#7!K z?)RGu_z5N7K79C`e_;C0-!9)mCcX*TMbCe?KJgE5w9thwpx5$m*PmbuxFvFGi{Css z8KlwtYTXwoFDHnW*v;}S*!$@tEF)~15z5Q}Wx;=f90^M*#>*T&$s7X8+_}#jqJUom z`0r(g+c=}cn8}gMkhsL%oVop)(bmXtf-_v@43|pox7~t+-{j3ujLfHYD$8f>dwRf= zMz8fC9ELQX2J(TLM}OkMZVr2aC2%x7qqxmssf(Cxpy}&D#=6TWvHlF1`4t2igPS2Laf+O|LAzmM>rw;4FLf=d_u zSY0x|n0~)Qb}{`r7p^RxgHFFsY5g7ka|~T{GdBaMf3!9uf4UiikYV@8_n2=@25k0Z9($(>If?TVNNE}WPN z1k3fsunv4bBrcaJ03)Km25eTqxW+UtfwM-bKj@Go6t@m==y+$fFGQ*h&$i|DIo6wxHEf_3HOI^o*hL7iYQ30-~3}sk)$*Q5UQi(26vXLJW-KzuLK*Z`F zv0frv)>H&ep*_uy8a2}5I0h4Y?`Q?CB0&SuB^2Z|T2TrT?{y3+yL62kWtXsD4^KL9 zfai#~?b0C6lq5@KZ6Kx=Yzy?>%gFnIcDJTOla#!I?_bQ zfcs6Eoc=h}^3(-1;+}0)x`<-AP0Bd9LrENN2u11oMeFardSLju<2?Tc$*&dV77LTJ zxALq!kDP3njYZhK(2qJ6CaGbuQB#*l{6hVKr}gz#acqP_;FNUSl+>Z}2h^zm`K0iq z8>w^!xj`no&z#~C#_+<`f@_@FbbNDboT?6aVJ`LQd0MkmXKzCTv!&c~-?*rY!YU`W)=J3djI{9Zy8V_h&zbnY z2wpTryPs!)>k_xmM%D;qg$qlZMEuV-TMd^K5WN#3+t*X@_$hro>E?|b)QiDRfjyPqHcZW}bEa$bvTWk5Dpcne(-kFA|0*FJMPSFCW= z?f%bpBLq*g7i>5;k-h*Jw5x*pC~xK^%!Z518FSQ*PKLGQX2<|} zJ3Keu=EDRrwhATa#>m7_Di-dV=Rfnx@CZ6vvyvSS(+OvZ6E8OQE;N&|gAe_W{vdtIkO2g*DtR?UgFrTa*V z>b5IIb>w-pdyDNT)`3=$RUUnt1b3Nt7I@5me>W2zT>uQJUhyaf|$y!AS^UY z8&SERTM(sf8XXGLVYlpLf>g{{g|0ruVv4%L3^Q9KjZxf_rTN6LqY=gp_^-s8iKfE7 ze+o}|qu>(VZ-tjq-2~q5VjK2<+&*~uG8%sB)>@Bnd4m~uwJT5Po_ z8V)xetT00w?XCtx7T!#}yKcX^R-Xd4-wht~Rt#ode8=^qOVG^fxArX-kj;FHQoMwB zfzUaRcrDa4JI8?+!{XfcgkfTyMqy!FAeKAG1~ND35!vp5{Eyn`SUOHT9H>f9k;-ab zvf)`44o&6$&JIIw1|8LVwHMuV7KZ!@`{iTAU9dTt>ISW(>!7`~BEp z!u^A+3VZT-!-XZ)`(9ZaN?}R6ydu6q*@YH4vpSxpFn2Fdy=pY#QT1S> zhVzneOTh#rU$*soT!O61drB_&3Vr#Mek#6bXP_+d%Txoiwsu5J{_OAbg46yAl|Ev& zpeacU{|Dv;OROL29CHMhZdEg+j@<%HAZZ0PiAX~TTVqw4AI~p71Pb6945qT-BQop> z8~%9i#;74=NJFWrolTA|(`uP^PN&l=4@J8dYs@xQ)tYrf0J;==H-Cl{Z5?o2ph+Q&|Tz!B#>w(8{gj3@ZxN zoy|q{(ZHzG;nv%K^$T8?JRl$Dy$3tzADLHaa}l$BC`2xYIo)`9Dd%8by||zpYZn(Z zc~OJ+(GmXh0{=m+`K|+tlxgWum~T?n^`EM->r+^5*MF-vZWUxNkM~*6&2E{XO<8URO3tp=?feZFbXnsTxlVT5Px?wySn8mZyCD5t21f4%^7F8al+ zZPJ#XMeP3ATtHjs7PF|mM7m*|ck6W7D{TD%#Ufpnn;@~6BD87f6`XDc>o|jKX3;Ls znrOjyH_RVK`NJUJ1Zk2IL8K-svpfF;zP-R1X;99khGhXKUE)0-6qUrFq%$V#Bu&iR zqk{@V?UqeU_)ZrFU=ZlRol*zfwEksqy4saPk6}oCoUM{*GSd zOPty}wjUo~3Q^H{2<-aM4~@6EvzqCF58xnxT7V7! z4Y8JYE`42y%cA#_Rri90^DgUO;c7e0W8l_|w}L3}z0LPxws0?nda%2Lmj};UgN2Nt zr9c1~uwW*mY$5Aqs%pn2B|+U4_QsX^`RqpPX1zBRIW;RdCQskhcbshzMRZI3ov+^D zf9)Q;9yUMgX$etd$&jpo3WiRh6?-V_*p!aN->u@O6}Zu*PTKP#t|?oplqdOwgZGNq z&A~jTN$X{Cb?z*mSH3}U2RS}3)%WjT6 zE>PRN8h8A$Yr*pQ7u^*m4kRtN+sAIo%mkpvpc%QFLQ2`{rR*)(57)zuZmi6rhG3De zMWBr5XSP-oESQp*HAjN#>G=01ass)Or42m-(>Nr~3&@D0zIpEgE_@uzOFyfyO?~8s zYvGNk!uf9I+_JCjgBu!aG$@ip)P#iicfQ0sI_nEy4FZ=DENL8oc)CLQNhVnwp-wSk zB!&$)4NQ}BjohCVUPr^}IUGzdy=9i{)^vKYxwyCy#=K-YE=j-*6uyYI&^z;)&SOnf zCFwSm^r~Dd)*))1DDEWsAhcpfey%D76YMd&`sam+E0a9XNjpDp4M zrKxZnB3~J0>Sbd--jZDr6VwV`=ltBC_u`{YdA@3rRTK_`M1A1Th>xRF6;V)cm`o7_BZIb+Z z09UUg3DVTXa+W`|1)1{X@Jp9O|95zmX0f645v!1Nz;{IvV})nbl3Bm|1>8idS=3)} zRh`%Er|A0va2Z@0cv17!F*^Ik(ZEuv^A!AbG`sAJ$`PyH+bh1os&pYrlprdfN$;jG zV^hoj3yIiyHt;Ukz!igDETXz_IlY*UuA_F8fI{D%N}+IuZP=52kB0lwMGQY zSRJJj@j_b`{KU7>H3?7j!>4fv>Q{sktxJkfB6zD|y&eeZxVKFc*xUm`%IR;ypJ{(@ z`)K%7{3w~d#3;&-8Aq8MH}^3AVWZW2fUS4a@#q@pH5I~R{lwBmbg^^vc$==m7I2K| z4#h#{JfFL;60X+w8w$^WatF5@_JD!_U;{sFG}v0AOS1eZfT*Wo^%x?7uG!u3^5cse zpvmGo;wZ%XdZv%wWW1!maEZEo0g6Ur(0szCfDwzE&wINqYSFeS`Y^>Dup{P(kjszH zKylBm=w7Ry3Bl% zufXQe5{iq4zKOGzljZ|LnD|J%q%bzm9>@$?wD93wHhD(}A99~t!jjME z=ZivcBEQv2s8F~?ymN8#LWz%@P$Jgu*7-iG!z2`J*1L7BWxTiD`vwMvjNyL2rPaS_ z`}ezvfZHnZnc|mLag|PdqFdB$!c_zP9@Y{_LGPyH1Ov7{d|LFb(|js+ZZQ=*6;rYE zhfc-LEvF*hNE}5C<+P~3QXAx`z{W74c=QUd3k+8i3B`ij`dM6bf=BTQfJ@gldYqN` za1hD|LUn;(hkrYTyWDvN=RuXYcBly=7fp~2Ja%XB|1$+_5llbH>I||JhiHLsge`&5 z+ps5?7#Bq{a*t_4WR|o_MF?}ge7(I_+qMZ#vApj%6m!S>OgHUveT_pTrzhf;lZtbS z_A6c}IT5xd@kpdn?x3?LS$H%TwqfEjnr1ru{)u@xrwQVsJH=2C3AJat5Im6TbJ4zSxGlWxv^wthGEBw+fwpt_ha2q z-0o?0C}0QrSbwIo&OX_%XfM+*zyHwGvMTC_2{^!qAv3$zoNKV+Ii!j&v7!=$o=i#7V#>7#tr0 zN1*3qNywi*0@1m`DtIB6gXT`ZCYS@B2h20QGV3l-U-}o=4Zbvf1*I{8h+Mhtnr(bu zsurykQj!QXkZv-$`1uGrIlV?+mfJ*+Xaha+o2S=$qrJX|i*ru2o@{9LK2AYT;Q{UL zVmZ`UsN*ka;g`7SC~S#z_>a&CTWbfF*M>VD29+wF#QT|(7U(5eon1qUI~+rb3#`QO zjgma7LsFuL9c}8w1pJnsfZunpI1(V$zKIAo&}qvQn$S{RR++Z(9|79m0?_{EK|=`2 zNT4(b2gJKtK5~~SK5u#m8XCB~kYkL$k^Ae;f&qYbeIU~`{G$3DT62bxXEhWQkC5zp z+|MsD4m{fW$My7j+7s9uQrFVm5@?(9+EP%#2{?n7HH02;t4M6X&I7ol45*Soz=9gj zWKpzl^(?q3E4(=WW@zKqcAGQG}5$2baR7rqW zFh?x2yjb7pHuDFml3P4sNwvd_EVkjB{-W3Fdh!h#b8OM+C*pwuZxQG>2us91iP;ki zbw$1U{z?@U2aEYMRL@KJAuWoQhs$f=#>^)wTh_Oxk6>LI3|gr^^iwn=jeMM?F4@wR z%K1u$vAF=9Ft%y?Ee|<_Cab(s(}$se{^oLlH-*45)^_mj42RKrGv!%>$Me}uYf0DJ zQq|(<$j_(OfC1erec4)fTBQ+?S?RzWA=@g-1e-+Ss!~ReNMB{kZ)&qMw9CE3ptWvz z$S+WrD)ceNU;$@*bCv;`^s$oeTMqw+k?)#SOq=!QxcwDzJsOKA_z6Iv#>B0x`X*}W zP0NQAv*oY=u0=}g@p>873AesGV-Fv%TgRC(d))HF_YaTxdFf030Cc+zvyr^K(5wyQ zk^lfbSo1{M_Zz|f3NxSosdd-+13eqn^7;%bj7`IY;XJ~DLD~~&*!~h?0#T_JnC}5o z`COPhs!sGxQKFK7R!s(?L9a)8M!};l+_FBLhryGBD+u~FSW;Nb0SGiISP>PH`{q*! zlcskxi3@A?-3ISF7`)$E8|!I&%cEEsq+_BU-gB_jxobY1xLbc z_goFj#=U~Fp^!AbeNG}o7GEs)c8w$eHxS+CK52w4%k=sKET2Z^6$tw_*gx&PK*F;n zgbJiL(hhrSH?i0iD02CW=&H(*9orIj*BsEf`vp}yaiqZiSjPq*KV6p^2w(1grE2^e z)!6v=^=`t1wcJ&pY<|YNX!r*AIo1s2SiP1G7ezjP4DO5IL-|huS*}QSuxlU}wH-mp zUuKm@T#L*z~O?O1a<^)7i{8U!>q#Ri_wMoJRLW1c@aB48MhL81ukqgm>!>w zNdhb3=8iE9*wQWG zJaf4XDG3Z;W$^i|h5yYsx*$EL)EqxM9kUf`=KOZ8!B!vbs@KEut;RXtj4dIHq^pH{H z3ZqN7k&oBOXcId-pH60Q6wRT8h~DeH$4|qv$*ut9i%~FX3c6Kz+@R5aU$N0I8wHHT zIAXBxFvR2Dde_|;CLPBttvs%8Wuv5(ryhe|d>DD#z9-I*a3lY+@g1dupU(~zb9s;R zFON&|F3HQCMU!MjJZ0~9>Q%y>m(hFNGdOu2H!e&;Zkeh^@|R#W6-sK1T*4@>hFY=7 zlMCalvZT{Ka4`9$P!n*ySN$um*8$IZi^CeBcO7r-0*m}!(?A9 zJDw4cU2NF4=t7K|0*o@@R|&Qi%u(+(=$^iW4+>heL7nNiZL_c3eHb*WhFT8bOkuE< ze>@vqHk>MoA&l2Hwh_)0YeIv@>jPA&ew&Xs0#)8ND(tqiCYsGzGbQG5){(sG2u;zA z)PB!q=kI`cGq64WSAh+fwqsUF_Rzsq`L6(-IY^oAu}t?1fUZ|7HQ9~~<|Es4zuAb) zZn)bH=2SY|XP0Vm4E-_Q5x){@vdoEUnEY_#Kh~|K3fQ+y@_<=j=r`0Lno)Rc*V;p@ zV9*OtX&0sS>Doe*=FXRmOq&RAi4PmWQbTKYvF$49!j~)-onl@knk85fmWcN+K*j(V z&6!qSAQ{jE=Er3)KMr8V<}A>P-zx#tR~l~mJ@pb)^jW};7LXHM;v%8JkbW;%18u;- zACoGxXL$2A6S0%(L-=go5{`GK6VETAZgcixLN*hL(7bWSJqT^y^mm74q6Oy5d=rXo zo>a*dLN&S?z*ph1&{R9tO6e@$!rW-}MWlV2er;laZmGlI>sOw5N@||y7rCMdB2*lE zpzxLb?I*Ydk3CD0Uyhyh;k4dbH8&846U4Zz7H=vd%f_naL(fL(Jk||VQWj8jc=ZB{i^`U)uz5Iab z9c?A%x+NTjS|*$hrCuUN@du*g>rZ5NMeZ1fGib4CBZw$~PF^Ce#Bd4i%FX=jFw{Qx zOU)q0)5xj(qB4Y)40Xk=!Hu1j?vDId-(_ao`|6xKIkgVM(bR{uo6a=O^B=kYiJQ<@ zGz3cGK^qBpoX4Bs<^37hRHnh-nYcc7hKIiYKbztGas4y?k%i18CWr1trdfW4xyb;& zui1tiBc98qo}_u0&5l~peO<#7b}D;S&e$2#V^!C~YJ;%uuwz572L3?hA(XO;h;d&O;G0d z#ZXmWfPmR$9+j8b&QeZuBR*@wO=x+HhRkqLrS*_E>ee)zwmWcgg^PO%vUYj=ArZ&w zY(U%@Hgao>+#i$$8y>EK(YXk#0kDjrYaJm5oWAl{fnzqb0eM4itCdJ{q_jTm;~L&w znp}Z17#EB-FK49o=kL#^dD!mve_r>3DyGT<-ZtHQZBznglNd$>N>HHB}P|>bchzF(;>WRr|}b!6Ag&u z?ns{SoJqdJc=-=b!8U)eJ8XB!4@)BVc-SBAZnnEhvj^UjG`0hA^RDomqF2cdH>B4$ zAG~DaG^oaHbBZ*MdnNT>eW%CU!xJ8}IqRMx{Yq{cPO=jUS?@yRNK>doJH;42p>Iek zoboSKGDBEgKn?sr_-6@jfvPFtU1rMHjMz@~A3fw17VaKrLum$87gP7s3fSv*E{;Wl_2cNQa@DX7qwP<(k@WQjf^fSG)#lU^ikzv3Co(;vP zCk#M4gPV%nI-w`M>k9}R)G+^{l^hUb? z)ApC?7%6&>rYc=b!W)f-R`1Qh6@@)Sv(Q+Vvh;0jm?FY)GxvK#)uSejuV9>Qo}V$R zD#4qoc)3<+lGx*6ZX+HKcyxW-F|R~+^7+s)|ke~-$LSx)Aei%71!ye+Hzi}whCUS z0FSPVnbVZ4*pwFcLunIQC@ILJ{P9uv7ddMdo|$ zRfb{BP@1_~)cU~ADooNS@=KSwd(C(jwQC>P4Ep|Dr9XD* zz{oV|Ph9$w?1^Dir^2oJsWIJk*Ghx1Cdxl9mIn%rTXzx5173eAG_h)rXEK{8yBciP z1>4Q}aqqq%?l`=UZ{8s8-v+FCwwUjs_m-_E>+9yoH*M|Z>$(8A916IE50`4p44=N!5r<5-X2DSclRGN)1hDJ%IVcRv<(YP0OrH?D;7){X@IOGY7e>o zbwaAo?DF~Zg#bQb7YOq;kRrpV?v0=!lg&+nnzg`AxlPZI+36Mcd z4}G|PAHU*>5NB4rKG)s0mJ#921LjE5`_i)INAGg2=AaRiP1lV77Dcd}j_CNQQL9Mv>uOh=5gZkR7td(U=s4Uq$z36wK(i?lh^_}0 zafM`t<``PZ82IJQ639FXWkz<)G#fNREtq0Y=DDp+C8P!8a9Gi***(cE73>XPY1Q3< z6E<0sDWU<}tr4+EWv6(~q{xm|I{Q0F@i=FQcS7-zzyJ07#`r3FNaEfQ=`u$5sPqp( zqqy}b^zcj4qF?jHSe#&HsC%#2Ist51>&vb0N@dt|;GI`STHbDVb zQ39H7WQyXZ|JZXGolp2D6_!crCzYFHLlfk3wzJTT161Y8BG=kjGD-eVgStokt=$9j zx`Ay~qG~RU{Sk(ofstu9iWH;^4cE-o)a|6t7YPd_twP~ptF4e+d{?_YwSK1CrCudN zqHP0J<6YrCKz}03Xr0j;4;WauLhMtXBnA)AGYN2`&7d(6bORL*IW1uzs6vbFK-`*~@=%A^M!LTp*PI2h3%N}z#+ z0f|ww>6ci0x^q`zVo?`Fs_Z->xLGZBmnFfY)-RfkQpol;=Kjwq{AZrRRgWM>DM7zp zm%^9qboG6&al+jbpP-f0rGMsY>~XE2jBkz6J(>k{ftFhFwaY*TrVJMrZg=A2(Ev0- z!2p;br+4A{XbjoOu?x1YkD9BFB*3C0KYTlkh@N9ALWO@Da;ODzHcioZ2ms0Qf*hlQ z^GWH0!oOg{Chodbj;L_7M72z?1M6qW$uUYyThcy*tgNZAO^nRq!FUYpZ_r_gW-l0N z10D6^`hawEs;$x(qaH#-j8);bt!s-6X1on_Ta|+jO9YWC7o*Dwi|~lYX2l^aIzb&^ z;fXkr0+q77CCmMDvKTL%W-+VAN21=0Dt3uT1LjEk%8BbmixNHpR0K=e3m(l0bg&w? zOGRr=T|Gnr#Ax(EmnaR3_JP%!60$gyKm%Lh(NYPV%Keg4tzxfo-l<2ZAF#DNkSWr@ zPk7`2J(WlR9!{x;y>x#S=ZZQRcoo2xk8Kk4?Y@5Vu3eqdFRcVNXGD2nbt%*eU0eVV zw2dSeC3^{k&#mir??~aGS!Mpx58rSwS7h(t^HOYl5gb?FNPLhHZ+7HT%g#q%CcrE9 zejzPeUN6KHpV^BRL~3F6tIrloBjf2db*~G-RJ65I=O|5Y^>$CMazUlhIaD7ojI7j6 zt9+Na-Bqt9fw$5s!O!EGL8nRRQMT6I^=NbMc~e-;&FFEby~FO8a2&Ql~7=y4pl8*0i_3!|APP^ zG6aDJ|E>|>u5lwrkWxS7GH7=@2YYLGPMkrz=dr~AvDIEb-g%(tI%qfQG)tVE?w<2KN|yC@X}|Jc0IjWgz=fu_o!Qc@`v zhC-cGuu!+l3NXhqkko3gxC7MDafHv7AUV8baplu>lg5{x(Fn&xj07|r7n8vo*!1#7 z6aqON*rGSf(dpEdb)cOf*Ys?3(K*}5&K_sD{T)0|hmIiRJ$n58+2co#!S1xT{?z2> z9W3!&i+Xz;NH93VcQ-zpO|3XhzC8`y+uYmT9t@A|qC2XIOA|fLKRr5;hCDiPDue-f zPNbWXXvm^`E%#{0x7{r&@>%jD)S}~%&siny!8_OU0!Z(Nh_^3P5ntx~1JnR{#6LUI z?=5f6)P>4Li@Fh@{WpETxC}ii^3P4l^6x#~jPTeU+2ZCN2Ehne?70eycWAB+!ElXL zp)^7-rx?Lw%LODK;9^3foDFSdLdh+&6WQeOgSPby`ZQGx`X{M7Gn?T>?aoo=j!$OJ zOlA&B3GH|iEnq?De!@$dBs!!7DlvKbnSmpXDy;<6mGH;iWAcRPwUDw74JO^}XTLHC z3<;@B<jf%m5^;bWw1=+3>zmX zbi5e6PG&V^;rx1>e437*#UUEFQEOnVlX>J%OTmKmkY~ zDb>?cB7vWHw(*1hCf|Y7f>)SF^O}kni%eJwFO7n^3-bv>9W0EI&a$|qQEE(pib6izY* zdo?qsfs)JWIPRjYLu?_5Sr*TS878KRa~q3Els_4?c$>{f?c107x2SHM-eXztgs;PG z>8-`MF4!%!Ft%yIe3FEij}ZwSQrQT1K5VF%0;%t2@4=n=;`;rEZ)%Q~Srn{DAgvgh z3s@vH-xn6HaPr&nBqyFvDorrY&T^KnzmtHhTF{p39yEtbLDym!&lo!wNH6#?yf#r(VOm6 z9`F#1-FMyg!N}WP&jbj|9AfRI^GZDWJQ^>PjrHI3H;-MpQ^ZvuyH1sS$$3lijgu-s z_V45A#nqys&_39&%m5QkwJ$2#NfmvuARzz`l8#rR&@oIHkSIU_ztiG67*5C=)(Vx3 zlk-klzUcMnQ?lIa{!gYoU91n@2C`&1TOXWdq**!g7~^x&i%5l{`uHplHj}8?)a+Ow zqfS7HeQkqb_<7nJO%^RVerFCVoo7aAc8E|x@J}*=A>MsuVU-;Tq_qoyd z`-2}%ZM%fGn8a7xdk1a~qvc#-I)`9b_M>eJ_Fwbruqg|M0$QLN>AApE~k2i9&3NSvNj2cJ;i}i(?*12rf3Gb@rK!xXMg?hCA znwO`e)@b;;5GxHk*vTtE<#uc%(7avv>m?GAJ|++X>bP{On$**$Y47;e?x7Qz!#&aY zgGSYDI^p}%$-yPfdUya`)rtd1kJ;m^Yls~sjz8e&ha3A~dFXy9lOhETw0@PXjwJZK|wgAa5sz>ZzQQ{dbxvQ-i3k!ON2$xqSv z9+-<$=?%k7fy*e2&f7DJsXvgu)cK=jOAEHys6Gq8)L^I~csb6L$@q!*Ms6B_8)U*& zrRs^i$A$KRk4b}ac=>pqKmG1cJoTFN!v-bYCQ|U-CY+sm zO(cSOaqfLo9p|Ud599v^pzq>VuE}^f7BBe{(gr~BiUOfeuBYsij{~j2erRV>#za;# zDZ~KN*uT#dM(Us=#X>zPYE*Ddjho~urN$+?YKO-)BP4d=17d=fG(xVC>@X;LMaubd zw)Zvzk@2>LE@*dQMbGOWf(uKq-N6f79xDSTsor&}AGI8ErCe_|uCPnWqzCrP- zY69u7sz|+pq0u=(Kf&O%`M3Pw@R)m$^5V>SYrDS{E-!HHz&kG-!NwJumj*>(4Zw$u$x$IOQ?T@lyQ?A{LJqI^4sFBR4DgVzU)xBn+acm8*%=T+`c?plB z{q5u9{tn9)$vHB_mm4lvRn5Q9OMQ?Tj{9O63(=i)3srbzF|5uUC_#!a&2}kDT z8BW$4c;-I#OxvJh9<~$6R11@ovd1n}BawkdEWXom_N!&4+95ekZ6Hqb;_W58sXC+V zo!1*6=I#&g=nqxlzNjGdL^ZkzHxz&~&VlQEeEkm3j}KkW8sC`KzZ#>zh)&8~1j9AR z|J{oytOfdNikQ+TA5lUNkijp=5{ow-Zs@xg|igBNDq_69R2vQ{S|k zDCQP-2lkHjU7$orBu^=|Zb;&q&T&W{`VmnA`y&t}buAxbq1GM*eS)xT3JT&bt#Pt> zu)p6QY!z#wi2|_6GuIDK^9fHGHJllD|9nB1%--?v^%iKBH0rJY30z(RdcA#b{hxOG z!-Jznz3qUy!Zobh9lF~AL$cQ(=WWyN8UPUsJ>*-S8bP%^puH=JDp-aPF|(#SMr z52-c8*zw}>@+N~)D7gcKc6~Y3fb=sDNb3fCdZ!4Vjdkyz%8@|abFYD`$!F1QbqtkL zywn16mb9oMo%tu;NvToLrUc)U%pu6^*PtpS6{ixsWCd!pk*i@k!9EY^Zr+TSHYMN4H zR^HP2%_l72LbmIJC$hS-n!QGGn+IyN`^e`xT!nSZl$6VxmA8}-PGc@1fzG~eqG6BT`EJ>Cg-5uk|%4j@ge#G zJ{YuNG7et8YzJdcgxztqA->QQ11iyeG0oF+g*xpvn6`R*9CO9pi>;t-0kKCO?e(Jh zpkq=^mrDpI5Tiyk%vd5Wnof$E2RDmrz!ujKY5twqZDeM`oE=T=8M<;iIIlZ1=G5^% zFCC#&5w?WbfOad+Ls9pUwx=%&{qWSk!QZ9N;07*}W(bK}cr`y)WeX>Ws{IJL%?LuR~s8Zxni$IX}?a;sX zg+Z{boLa0q^t3Eg9@isv;G-?(JLujI7C_ICW^9My@$sL+b5g@HIdboEdL8Q)=Sdlucxy{gkalKfth-h-9p<(O6rxOO zl9`Zp#VHga(LqQ|&(4T@+}K+5E(C4i3h+$bBAySdky2AsR`KmhgF!anaG_Tkl0u2- zt;Fy9GyX3$F0b;TMznC!@H=VICrw$EO%B|mIzMFF-b;mcQC4VPk*O{pFcGL9*c;$^ zs58z+Y5UJo@P&IcdGE{NxgD$g|5IPYM%g9a{o{5~c$L<`op26gpUf-JsuRu`0 zN_)Zq2HzS^a6qW&GrmV2Uy6@Ly@41zbuDCCGjlaeVGF^*TmzwLOiC-!Nk=jGcwC^RttJe{2Zc2RvXy2d8p&54i@0LO(;fCZQRlCt$<4-R#ZAgmWoJG)+9v6qr; zZOk8IJToAv-*72nq`dJICsY$h@UFW7pYC+YxKw@=F4^G2m%Y4Pe0GT!5DjU@-VmQ) zgFKL9F>sbbUwN{6n`AWc>l)H=gRPvx<6zX*wL$-<{$Aduiw-`4B-=ddzZ~Xm)r*8g z7FfJK+Rjm38U!G~SZ=$f&E*f_SIp&4*>qEH=^Vo~m^s^WaGnMWQ*+}!R7)#Z zF57Mpd6KK({&KxBYDN_pmxRGO_^`B<8|d;N>)qM)lrwy4`EilXY}DNb=kCD?~n5t1GSD1w>O7J+wHP(7n1YD#wc_yjsLjwq8)_mE^h@l zW?3_vyFiFoelZo{RsCtUybdT{PCmFW@%2nP_-coE(Q)eT(ebcY^vzKrZEJ6L@S{m( z5eG}}b3plPdZQ$0iq5yoZtK5WLYQ*+_h`mLx~^(d0eN=qSn29SjHqBHBHMB|wf$p) zj5T<#yWET^XZQ=wmgnqrF;)IME=dwc_^2whxR5{Py< z`*hP87Hu@4t9B*RYD?Z?VhuLIf5;LMNZUqLgU3NfexUmZ7v{~R{g$^$B~eHQJr7uBvI=3@#ujS*I7hY}+FaX~C zFV3znL3JGHbyNVzu0B8{8T%V3=u7Z81p1=rc#=AC^~|;J(%`xIimKi7GUw0|`d~x1)$<)S|61}cF^sk*U zlNnE($@+122C+-%B}(5ohJSxr*LS$@S-wU8rcOYd5gvmmH~%$CC_NB6KJZ%g(U3T3 zw>==#!yj}?@Zx`uf*ksH#|7f^pTP7$okC>UADnjDs-NFx4u~(8n<`O^p5l83y5$1C zQuAwxDYU*YB|68SXIJA7**>!)vOX~&6n{qy3@#hwDH}uThxM45!A&**ZOgJZ1TdOT z{z=3>|BSs-_d?D{6bv@OHmQzm=OFrtcugoqaKB_~lndq337It5FT(E}E`<8-$lq*V z?Q>wj@|#91`7PlW&__?rk)&Xg;RJp20(InXdEcBbee=g{`u6*dLw|KHB?6e;F2X#M zJe<#sr{Go(SZR&-4h{}b*s^1vx>@kR&CIhl^N-ogJz+ERaP1}@&h~>jP9-nt;44{@ z-`3`LvJ}0w{m*nu@bq@Sk|p>dZhrexHM2`EYua||?oOB!fZIC$863F(BuSF6QR}@x z`hIvPRQBW8@DX-u6#)>Q?J58;%tVpOZ--R%?0NP6$~G87S2j{J+aJ(m;S4PTN}IXz zWojBz*JY(GL4o=~=_Om)l-{fjn)5bEWsRvRQmUaliawcF_Q{Dph0Wbm!bw&+u>B^B z^UlV4xAyX_6nxeQID-Qvf{HNF3o95-)|1D_(U}vF4#q0?co3dY%~m1DgYf)ROJz&u z81+|CFi14YlI4I-?t&sdCsM%=c-_)p8XJZf2!(zD`C}Q@nHy8)z|S6}W+qC-j=EK1 zt%Ri{q8`_u+Iw0GmeK3fUE0fMO1hp%wTN`pa@Hd%rQ}*c)oq4(!u_z6=?y2+agC5r zn5w8kowYRhaMl{;Y70G19ATH}U4o2bROnJ>OQy4Et~Oc}L)DZuYbP%1v&m2#5C@cv zom(Y1q9PSzb(Yj5b%0S{v2+@o!yxY<$0ILASUXTZNT_TLs;N9PC;|?$Wvo}qMNf>< ze8By##TTg)tQ(9b&wGA6n!*cFNFeqIDZ7r}QsJJnXQ{_rCWvL_HXwVhI%(*DTKc&} z0DM1j90K1u70kK(nqs+NR2|C8g0w6gU{;{YvLgMJ#e`NC(NtMTKV>no6l&Zn_{hQ1 z3D$5Fv6I{Y_NoB2bIT!KKIV7R86OXyk`bHJQAi2~L)zWwx^g<;L9;S*f z{SYwgcQ15=mta0eaOz0S2+KhaTDl$JWdP4kJ7gtA1(1l8Pdm_V(a$0;c;-W)#DfnR z$9EZg(9(SmUVv!b$G{&XxGo|%cA$Bd2P#muyOFPO=ix_HCh@2gJaB)UPA?+=vD|B8 zPN~e6cPJFqC$OZO^t|C@ae-#OFo?&E)Fq(=xN=$ zhXeiD6@1Gj*UY$VW_a)TY4ir`iU$HF6T=iuqFDqQz3tLxRrhGA4z_65PIkfhzMpe$ zHj5z0OqX88E%}b79u7y~Is0%%+CZId6Go4i=SI9OQPYViMCwQ9FnAYRzE>|rb!^6T zZ-O{pi(im=*kbGwLvufg1FT|kb&Vyyp){ZUXO))TKRoVq3q!;Kxu7YUGm?0N#l|!e zp^r6iHu=C>=B}`O6XQ%nYfV4LrCgI?>d+DMX%?Wq_hY@`|D5+;L7HV=Cj$aM{_V zQhadB4lI`7*NWQ>oH$#)C)LVa4>D_7l0KY}@LX&OrYx=y+qJ|+7!`WTzla-n%wPn8 z1cqJytHse29hJfXu+yk#EOpK?zj$tVwH5WGP|nm9bAULzim{KY<*flH-^v)eY zHPt!KtS$*I8Fx1i4$*6H927Hm2bKMDOU-&U9xc<2 zk^Zj5Xjo3$u0Sux!~Sr0Gr%t#RHG8XNW_mMhT*)GQH*cW;}~Pv9;2H!ABuK_VxA-r zif=i@D23K7axvgo>;lWa9$^^Md^w8oh01ZvdJ}X)cbr8XDNNxD6*r1g;x25Irk0TG z1s<;c>14^C2V0{ST~nlrL>tQ4Mpl^=@)dhq3e}On8WghgYsBFSKV2mD(D$j|kEiOO zoZl%CS1bgngcC-9Ks@-*5}Ak{%S6<=e>wPQ9K1ic<2Zg#G6&o;7$8!gunQ7Sgr**DdEHmD9lP;xuS&3%!0u8o0Zq41Kax~Vk zFCTPDv5d$Q`RU3MriiapFxPedm4a}sNuu4&2&-F76(h?tIo8CoUDK9fzl*QS1E1AK zMk9+~dRU#FL2f7In$dUF74s~K)A_tcUyNUM#X-_7(~8-ePP^@2W|&;Jzq99>jz~-u z7KvJ6UZQxY>V_h>^Qwh;sRE)X9hw@bVwjgGA&TmuhFwkT5Q@7X(>pw*vHW)wE$LB( zQeyWzQ?0w^;aRl>tQ0uw6iCd{1TyXn7h;{(!wIaZ<3<(GCli)_?sYV4cOO;M%i1u-#zX4W-zUPcBW~r zvC#8c8_x;`Kt@~y4lU8g#E25iyumQLkayl|=@Ezu(4s<#kLSI+ffG@FGMTL$JW@RZ zG4Ox$D(N=};uEUBRKzO)ckebo{wmXTgWh5E&LFF>uB&%w@LQp^kXy?P^O#TTsVvTM zM1m6tL|&7H`_FeWMs`D)Gf{!AYPZ{njT}&fOoPWaTt@rc-HXaxO$|vX%9=q1ytF1B zxxG7c@+CzPd_c6!zU59G(WEa7bd083RcL3^vw+9>{SQTn-9To%4sSPJv^h_U! z_bl8p7#gmH2uSr#VardyxG#GCx-TrOZa_}Z2qsi;U1<%fhT}D5t?pCxdPHNZ98jQv zn^1w-{})kx5p>W`MT5s9Cont> zo$M~9f81(wFG&4;KrY-90q87z3*q)6x1CC&0D2hTTn7^rBBHMRpUj(YVT!oC4#_J z{?j^yKKkyl_YhLkh?9*Kn%P)y+(;}ov&}qi-i#Mng~MswfRUiZE%5S9hR-!4fr^Yd zM=1J__FAOBQlLcJQ~(dR6hi+gjr6rid%R9(TPQz&q4W2_Y2i-8V`xpSicEB*MwK#^ zYS~zc+fYYUih%;5Qv^m7A?-)w5tVr}76Do-7}$u)7DYeSK;m>#dSqt3f}{$N0rvBN zIdHn}^{ah|vs|hjrm6Y36DEh*yK=%d4-SsDb_WpgK`NkWVka(Z$XHACOR;Pm+PXzv zb)4mbA5ln&ak7$E%TD*sRsd-djP|c?-e;gm1E>|Zv-(sWC*FV30S7KyZHoqV0u9$C zl$$eUE*4wP!bj4*(V^SEL37lDX~(FCH9QSbbBQx}LL&r@&~nwY=&72-ID)P06tBXb zh4AJy0>6~tmF9gD-PKqz@uu)J%Lnj!G&s<8)L~X`llz&zTSGhM?(8Ev^|~0_7j^Mf zQMYDygK@qnfSKpdTfE{#Ha3{(-)qA-JCst)6sduVL3dzeaF@FyX*kAC;7n{e?Ln|V zarv()x``@dSjIyz7PdThH;?GXj?Tt9chruK*kSl5>+9WBRRv|DF2F zRu;8(g6wW}#C-~%#M4@L4!Jzo;6*G$@Con%qK;oKuLADpIOMY>&R%g*WN+~hV&l}F zkBc|9Ts!w*qOWr7vl(Nb1~Z#tW+vX0YWmoe;n@f|8a@!7$N;YgFvMFfb4aRWH>Z=o zA1BP3gWYXEU}r{TixUXzA!osG!w3F2c-$9Q(umXHm=a$)Z*UD|!4}EJA*XuPCx0dV zU$su615{X{Pz^|u^SGEO18o+01miT1V5RkbxYBw)Y_QF?ZK6n66Gl+ghc@_0ktcJWUmk4BMdjojjHZc*$bhV)|~c_EV4^ zav#VBh)_~B?D(=To3N6RJ+dp78V-PPZ^MDh`gdPJ!_PBqKR3U<;)!-#wz?%Nj5Noc zrete&$@2GjHYS>puiMb{OQL>+OunyaA|uGyXq~j$#ubc4167Cst@`he5M=-@2>fu| zukSnKQZte0TNL z#lFTNdF#XAwTJW^0fPUOKEeyWj>wgo^D}*S256j`UpymsZKOuk2}cn5Ue12qzz6GB zpd{hf2L4*_J604uJ&BRUHoGMNU zQkw`<8?jM~uK<2>{FVnVkfH>PsX5HwuulTvqwHEaoT9dalVQ#ItGr#-?hQmL>_ zGZ#N<<-H1l!>$fa`}3RoKeyf?T=R1gC}9{zO9LegiG^0m$JvbO*X0#PU-8GP>_~0i zilX9*raZ;DcT^NxvG3MKBiuq)&VuTd(b=+JvW4(E)bRF8; zETFyn!o-_JOnfgGRrh`Yjp`27Wv@FIs#{udJ}O1C|CdrjF*2@4$cgQybN5<&syS&I ztac-=!R=6ScsQgx{_}lYCVFnlarpF}A;eRs+7gn;?L6X*uo)jbE>vcApaL~>OsLwk zK$Y4Yg>Vmgpev`}ibj$P@Wt^4JeS~?M*M;m*26tppQtJp15vypTlFjiXe9CYrAM#v z1cl{V#Tvm|28#M(UvhdZKY`csO@6~aZ`OXvf8n3MBzO^_^DupOet9&92Pg0y;Hmk` zqxo02F_N+?^Rz4?8dIf0LoZ(GO>)yRaSQHqGBSPp0B&GFLtB65?iV?v0VmFzM)K)? zVrBv?4gFdO-}=Nve=X+)Y}!kxP_r0!^~qLel)dw&lpglmE1%Wt0^Js0TQkdAen@7G zBN4mYkIbxqX!Hn>wB%VJe{C-Ea#X!jD697%wX*Xlfng(9%Jsk$D{Ro5#@LBe!JVnQ z!BVZ4@CyrCbkVzlJlJ9G{h&?Xocr~?L?Ml5f1J=zc9qI~mX>H{#G|RvA*^sOyy>NN zxYhnXKW1a0zt5=&`Ze4`_PM19>%_8|11(ESwz@HmT&}E`@Ar>>+&&`3j-r-9Mus!b zFbIG~(~H8DS!J@z=_#Tk?n zpRox>O{9`*H3?Ro&P8$7y2SxNKay6WF-m!zRlHBU0t;7ohO*$!y+O<6b`RCr+NGW} zBu4I++`N-4&%sqC|0Av$p6GkM9uM>CBNm2E0eE5;+8QENFjN=`LgbStM{ zWmyjS`T4dMIUN!Yi~CHNK-{-5N^_lihI2N zN5xLuT%4WNhdY!~)b>h27OT;KY$a%jy>HXM37V*_CEA4X=x0JZ%Iu;{nyN=d0z*}Z z1A*t)Ao*+6z4;TLAYA_?wm6;iR*QWg6CMRW$Qpz{knt3Em=p0yBzDCdj#XqNbAAI_ z2;110s=b5XfUqI-xFAjRny&m}{%#75O?9{pCtlLqirgs-cxwj+LjLyJR@v7e5A_mF zXvS<7y+r8CUm=`{7YFC${0Da+|4PJVkt>F_rIatmbs^MN$_%2q{<=B=VPU}_^dXX4 zCq*@>lR}_^GWMS6;^FfFdVpPJ=IUoidF$`Tf{ruJ{MmFgzrJWkHnlu%H`RoYqqN~5 zZE`HRw4L&BXNhgie3F7vHRxIi%N{uiUDWW^Uzw;zLrK{P#I!2+1+vL;$_AZdrZ>^i4N9>1Uwg=9L4t`>M-Y-G0G%#`h#6}#glinDHq^8t>e7Y?Uly)3^6R=e337x#Rz6Oq&OVs8X%F$7qV7K+M*SFPJJ)qRBF zztVk}GI1X+-d9B*)*GdNZ7$2YD=D5H9q)STes6nc_h1k{p*XGN^(2;t|G1uBPwDM* zg)}TW`1MKS#RvG-rx7;?F20Zm>n|Z_#PJyRZ@!^9=DqZ^w_)B(oKKIOH{cHJ!{U0$ zjyU$F?&ZbmIw5 z6&95}e0a1~ZysS(i4!F@F`B=Ec|Dub>FaF&v^^Le_ckv_%MVorwm_M){1qb3TaKo% zqRYCcjTGKQ0sL9Bvaknc@8>mThq|qrf#Hfb0>qVW1j@n1@?b8o*Tt5nJw==Rh*sS_ z`AYGZZ1QvzPxAR&7Rr+{TjUS8LF+>}_~_O10NVL9n|?l+YrHl<37C*q2U(Pse0a`| z^D!hpp8W+e05}+T3D7OihzTy0^s-}%Cyz`o6d%AA!KK|O6(|)j^-^y}7`aS58FhOt z7s79Z7998ucb@wO4D0wQ`^ME#H!CEQ&!voILC5?^LTfDa=WU_Bq8PGZZxua-1gj5*I$@lh28RQXg~Ki#`_WyqU;eBFsjD2A;?@nX z;;f?g_>k3YZ&y>cvE9}W!<}sV>0QqzCEGSA7VOsY| z3_h@p90LjM&~Gt$#MYpsZSt*m4>U!$#Y^@Q1YU#AXpwp??rhmQ2g(tQxj#)?;6NBQ z0@Yu#t8-+<7WahEVwsMk$u{1ao<*a#9=f%~&@zuxb6Y};^2UCmP?5}itQeCS){1ITNcz`Bp- zn9f52C+KVh$h*QhxUWaaxJ2kq&8(@Azu?O9Y;*%LNkL_Q26Q;MA2uJOFPS@DT%O}G zQ6=%a4Zld(v z=nuexs->g)rk$CNWkf>3M+m2IQl)U}teS_(J&zE9*U=ed(`T+zmEd(0kRO2*puZM4!KLb;Gw>EIz}-ZIEA$}fE1m=D zIe3qC1l;Ub%=;?GOUJ-vqFdqIllk~c1M58<=YwdVFfsOION3&dpco|4qNk>02+NDn zX9^Nojx5~KiIIkN7b5fKNYMgX&K(B9TR4WiwUH52I;<(_nsSc5o z_PJexfpZT@q7d34agbF)Dc$&D3I&HCS9B|A$R*eDV>JI`F0<-kGQ$YOW?4MXXQ;sj;+dKdDZjZ-@j3>ORaiH<`eX zJe%T_LR0V(JQt6e7K~yM1VYh#S)t#k9qfsunq|eFZ~Vu4cmcWavxc0pM@Tg~B^^X- zpGP+b7hw5Heu`nb^4w4Y(Xu)N7~tc{iIESo_~4&`v5TZ(H5o@dM@1Pn6^Oj6C-_G`F0^Z+NN2AC|>NP!w4# z1f8>mhG1d^qqO^C8O_e|=B9`hcI)}%AE0~DnMXJZ`B6~gy8)&ele0OrHa0QU{dw8` zG96!E(RQ-{yE?68YN(YzaN`(^h=c+6;4WnXr=HNz54I4{Yx`;`=izf#Ypw4q_3e11 zbqbr7ncQ6k`zs)1-lWp!DA(eJ3ftOXX%!>fO`Ze;VuZ@$xEmKHQ6(b+P++AHFt3< zV4nb{f)LzpuU^GeJLn;pGCZlq;xHe9-W$)79p9v%!T4r_4c?yE67t zv&$DWWLDI^6GakN*dw&(6e$HTc>GaFdH8^?aK~NlV@vJO3vl8H#i6@Njlt^B(BFw!XBenvM1KQHU zv_xCe<@j=TakaS2qVJzZXK=vzw#^O!U1U5yB=?biv(O+RIiNM>t_tKvy@{my zPM@gfwkoM19B=QvJUlu$+}_*U-hwv#@n5G-WnPT^grBPn?f2h}mflxEpT9d@v`~@I z1W}%kUk|-arfAuBi2?6{W~?3aDlk#f6NvW#WA(S)Q;qwR8p& z$~L0}D%JDzZRW?%Yp;KNygl68Jsuig>Dr{B#G}R_*YX@vvgtQQ@9G)3!jx86OlH-x zdVimLh~OKZ6IttlGSZj-%Mh)UV{T%o3@;BOPB1?UP-g;qRu~xXtFEgOY^+3akNVWA zVGBbC?oXFXbT*0ekv(;2QK~gSfqJ~tIIwRe6BW2DY>X@#3{vCxVf#Kv7c*LI3Lcvd zzPh+aK8$2M;dD8eKHPWe8`Rax`b9_EASXW_qQ-=TX4Orcd*$Zn9_v@#W5}W*rtW7z zN{p2NJvnv_=aG=ptC@OJ^dWwFHX2)Zz zsO*$E_z18^V^G$ETj`2)BpLTn5*2}T4X0wxl{eTC?>$L{3zZ^6+=EMlru1Y|d*8H! zkgGiCW{N4y7k5D_BJ77G-4a@rkwQiRJ@P`bduF$$<-{ML%Hlx|v~T$UbajK#)@d5t z;+ldz|8oa}P&my&UKcJjgXa*CD4#S?GG!Tk(cm#5wiQ-sxAQnF^yXDN)1ftV_Z%D^ z<7qymy~EeUWHDv!2~yT-0qX`ebC%QTIeBD%H*Fms_TLP)w_2UxGN8lMbz82W1>!EI z%)E>I?tI|#mB%Yem8r`MiN>?Rcr&@rT((r<+EA=IwCt;buAG z(AAgM6gmf0jWBjxPr-xp&eSNdAkWV5grAZBCLpsvVWf|5%;kkSea=AUK!IOTL7_)x z2@#3za{oX^g=c%gmI=8Ofs$`IXClytHtNVyqQLPnMVii5`b86JKO542&yfB_>=|ej zk8b-8NaENMoLR(++k@Bp$Gv@@f`JGJ$A>_iC2owp#Eqf1#h$q>0tImUnyS}8hfB~w zQ2MSaN0zR2LYD;v@wHo_#yyW3>1WVv0Y3)0mx{%H_D}h@0e`9S-V@5J9GmV`x)i=6j_?>g9HToA>D`)#Rd$ZF3|8Q|e zc{vsA@du7bFd@%?;IjJAJp>ug1l)q}M&pkjs{#>Cz__~)T`_aZCr*X5v)&2=BF=ifIO(FZ7%UzJRiPsl5DHS z=ghxbLNsD+1$MZ!<=@OX0oYlf^!WJL6#<#8r@auNf+AoO5YI^-O!o20pEJR zLG=gd%6gPqZR$uyjWl%_T2D|%!#Y1A@o1vu^>+aB(^b1cVp1qu7 z8+)4!-;B&ORv=E93{9KMxT&J08?_4w<+E&b<+ZS#8=Z|joE)z&hzc6#5CZH$IB!`2 z0=XbQPZ4*4%TN9!+T`8n=4zpCKxg?zHt?4rww8x&%Uw8o&ZADaCW~NUThOiP^kQ>y zaTDeKyz$nt7cDe}l<&h7s22{&etd5~u#2_A5Fq4G0T776^YpvU>>&@Vo2Yb?sB{xn zQaiWV4|#fJn?gN%dz)#2T81o~Jx{|>7+F9raFcRA;s)yZ5r`cDWoZSF_3BB>S~Bc! zdmE=MJ1$E2_+FL6A~cZMnaK)s(6#Jm%U%@NO_J9!FXp)@O(snmyZ!dOL2seRhWS+H9|s`jZYM(DJkRUA}C z9J+8(W`hJ#vw5o!Q5_;HTfx3-%b%it`F%_s+Ao4Ap1qu2jX&@XqEQe1CL8%3l~eLs zu;YPBhMIkN*LNs4+h1Hl;4$>lO}?UDzW8oxWCSce+6?(MeS+5t9|q zfO$)bv0$phLm)fRmlh&9j%(->{A*4&DkPf+hx04-FmP>%Dud!PfjR+>anL00efx+l;lpQYk}HaO&5XfAE=U7rvtu&@ zEe0BcbJVVbkP)wTw_mp7%M5*?Vh26;s*2LXDG`DOaa)Yd%xAC2P;ofD@aJ~N^D4CQ zL7tkX_#x;WD7DHYYWsEh%qNoawCP_X|NH{dO?5U+vE{|)j$iOPyDGAP2FR`Mm zOT|)?7dN!_zoxGBujU-YyyA*!f-`<~xwwg`td!46ky(2k-HFykVfuZTSSAga@8X3( zE_g#8H&|~!B`LG?in&ZnwU5l+I8sgGg?C$N1P;sm$m-LHIxQF2uekG$3Rk#w!pC9c zSQ+BBmLLTW$<8Nrh0M*iysVasm9bnsB8L^(A)T^kB%fyVQr!~+wubN(| z&Ub*T?sO^vfMdKAeG5#8bA>u=D8o;`s3bEZ5iMaF=*f$-HKn`4%2&LN8uwN)oXyb% zYW)g8p3IGy>T*mH;-jHgk=05k93vWWQ;qnfaaXQJ zs=G3Cq|!HJBpww*d!&PMP0??faVhpCPi~pS1Jb1Qnn7XLI0<}HW_1;!ZbOY_$+k)JDvj7TXn-aaguUb zMa}6o;!3#EXr|=MpL${o<+G74sL00J=nRUpoo^^B9v66k**m&e%*g|PAP@mbQ2Pz# zwI-N}xRZz2_Wk(Ec_OXlJmtR=fzAnMQiBfvmP6zbv9Fh#Hd286EPcJrBYB9gh7t#f zs#SO<{C)ng^40P3v4J0-)QM^7%utBA&~YRdBd;NH$Ozw}} zykZfkfo>w`>7c$+`M_GOha_8042$Y!;M1-fF%wqwBB0Qg1K}to0)(d2SMT1d^?Suk zJY=`7R>O}Yc6I#(>~9|*_jlNlKN&y%X+6V;1ROgx4pGS7zBQ#=PGSJHfcwz%dH4;k z%D1o%OZ)tx1jnYrW$FY)f6Ln>xNcjI;`T4(6T3V zk(Xof6J2C0dlNH9Vo4fu>hA-WfoX77rYm%gbK8+RZt$i??|2CIcH3mTS5<8LzqU8w z798x5o|2ZZuGvTv>)cw?2Mbr~M{pH?g0z*yq%zn~-Sj%zPMcY2Ht|A&*hqwMfQ<;j z2Ah<`8vIL(t+K`Qyv^sg;U4Er?D`B_cFA$GE+hZd{rp<$<7|uz?aFm7cv#&;$9ybQ z@5Ubs4+w|B(h_+tjUnkdzJxa()hpjFCY-LzDD0gi{JIzc_?l>;moyK&TSkUmK2fOe z!FQUabx`ZRDgoLAMZbvQ5Xp@|9HJ6Q&b5{_Vm6F#C)jVUh2_O`JR6<4hDs()d3Wa^ zLYiT8s}weXXZq;f>8uhe_(Sl}A*mJ&6CSn88L z2V0vHwSDC`Lv@fED!O*WGJQdFATfS0%PpX}QDSw?QJv$w|KYE41^;He}r z5_Ju+QR|I&2Ut*k^kS|mTDR~-sRS|Aw|xNIc^5lH(;56@S^d;Ucfj7m?1?9hLh&3b=`e{~EWUq;;u+0=Pph!c@1tGId* zT&8~5Hm!^DQRw%(6}Vz!nZ;~LQ!#NeArWSfOvt-3Oqfp*Iic0%*#09Q`~$ByBnt+( z)6890LK8rl!9UzWv z2`=VmH)L2o%@iFO&G{>S5|v&DQpM@()ZYvg$=7#^iZg=Vz>W8O>l!Fz`@RRGeV~E) zQBd}la)8QvB!P|c+*PB-xmkLXgdw-Y0XF3)rr&jy#QLeVa5YLKPWEaG-Ubqb$y{U2 zZ|TiH?t+%YGYyL4gkjErtM2x$zPw?8`246hqr)p4uWt7qv`)h0E~mE;u1Mp{y#~&1 zw}|AVy^`2SX@|;@BQ5YZ`wt2-f`36cVl4ck$S2NaGQ}YLX*zyv3;R@8P$$;ehdOvg zRb%w!4VyTKkaNGro3c8L7MIC(zb%9KT!EjJqRZuCo<<=vM$aDXxCIvlwyYV$Q;?Kg z-12&v;ZkC(EMr{g8uPJcZ+rHft25U<*8sgCwJHd`i5XLSXGC1|^1NT_<$1r%%QNw_ z{TAtpOR5$*By-z9$qm{4YPGV5e1hk$7~^bTD^)rUQ(k(O_Yfwq7G(SNcNqH%c?}dh z9OZ;yOsySJJkqXJM7`C16qZV2H%dSusxny#229>vu7Nh&XjS}o6g^Z`X@+nCf zhWw?y7dP&O-?6`jy|5S^Vf<=bQ>N#m5k5}(jxl~59QUA!e+U(@J8cs8cp>p&fMy?r z&8sBM7IZ|ev%?R4PPob*^*AjJS0@0Mc!QIxq+WyvIFAZ><+?!YJPuj zideR9%;z;1STMET1AeEA-@#=T-;+U2y(u^4-s;@t#023T%keYr3)0mn0 zx}SY4;T2*xtM)pd{(tPf+jd(wmMHq}ub`Qc(PX^LPfwCR{)T;i?93}LfrWLUq*S{0?iwkJ3)cx?0+^UrDx%TR;^fJv zmi0^NO9N(_)6o}y*6%h9uql={Ev}mK<;sq*aP3+y_T0m!{0 zDVLiF6^3&!N0F#Ewu(uSLQAeKhRMn@vE41)>!14$)b?+9B*LUenk#uS!ppuPp7Ox|-R6eGCxgEYAS{m`t9SE(XDylRzktm{kWNZ$v_{ONHqS`aTaoghw4$w7UlHrf z0PlkO@tfU36JWl>8Soi?WTvo;$*1Jv*OOCToK4>L2G?MlSsbG0t-moU=JE7J+UKzb z`IgZj$KU*d)UV!i);xib9ex;V>cFit`y2?ldh+eN6Jn`xkRyL!(WS^IFnnTxN8o4B zpJyTC+r3P?Myg7R?Z$41 zI)Bnw`Sj5djTd<>{@T;rNh+NumBo9oU^98rzpa$#iP9ykg0*nKTrEwm3|IJX1sXHS z`piw0^#F7CTs>H>r~yh43f|aBM;g{a(fp)l&47~2|4u1$6{yHtAI0vrs)eK4Dxrzg3r}e&W|Q_Vt{Mrv>ff`5 zt8au|>%5IBIpqvW3%~IZ-cg zHXd&RUeG;JP2^IS6U7(_tE!MXgwK#W+&$5V{?Z=@~LQ#MfV z)o^Efb8jEwv?_R4exdT;+U(1QOmbK4-~IORQk|&5!S=!a&R{eYEr;@+wIIf{wmrgr zYxCYWD3hDthy$jI&Z<}TnF*;nTSJX6;5!WuH;tw!>+dBIyhJa_{@=*MaP~ZyJVAmT zKd1KlFZpjnt1*-7fHFZLMoTwbw)%IN75k~gvZsP z&O8nOcbOu9c3PtZ03jt;v}O>YOck_erRdCYfh8Q9tqI%N zenTjMewgrCeEhrsk5A*}F8Fi=7}?2AQ0`Z#C{CivIiZKcK{Fs8LJu(oLg(D5s7>)Z1?3lxMJj)D8D3806?1-`9K@EHMxHupvt@_A?Qd}r7jE)JIP z^2M@PlpO^H??~xpwz$-St4x{-TuVj=@37icA2nL=xbH2M=`xamNK{C!ll{hc_4svsOe!Qf~^DSkimI!cJU;NtJ zr;-EKm|R!qlAW!Gi!k&n5Dy}Q4!bu#fFjNSA3Lhl$zL%}D3L&oi<>fnA))?QgvYFI z8lqxH_C3$Y7R9Ib5vjwy9b9>S&6?fC25tF4ed4GLh`SAegiuBgGz`WSI$FpB$i;12 zA;nQbD1@^R@`xg*N3v%N+_y667KCX!xu(e9*tpPZhd=|&ivHy6>9oB#IlG?DgzJ*x zLL(tDgPYDF%<4UaAO~W2yLX7cdV?Q_a74-rnM>2Z58Oi_UGL@I-d3^FMoq0(;6k@p z>rqXu;a@0R>S$c7`k0>%Hc1|wv6|NYj8Fu$rmS43pqff;$b_oTl`N>hd&Dch6#Qs~ z?w?HHV6Bn+%FOfDuU_zAvA(SW^(9|^e|D*(ig}uSeMpB$Vx0d4QW86Z!5jo-!VJ1c_K$ir>4J`o7I*frLD39!Hk=3kAS zU!nx_mImW7jmVBKjbDKq&C-K96a*yTu=H;=#Dm@4y~CsZ{hgYT4PFm6537s3 zI2!IWX=*$e{h%A#Za=y9l3qGd_0Pu#N>uIlBejC2v*V&2#gbBUkg+rs^l-i}l(MU1 z&zeG2dpea>GOcTI$30oMA3qWHW-w=#kh$Q|?-*j2Jj)*?1Yg_raxWKh@n<h0m?o*9^8=|D!0^z#KvwzNF*g7PnLY3hKzMS^dfc&Z1mGktzj2xzAW)T5T9&Ut7 z?1Kw`00#Z(vg3malz7>)0e8+ZX4u_2DeXt`^tl5Suj5ua@xZ7<`suXO{Zc zy0L@S5_it&fM<84X``*j4nuhblRnRrwwI8bMH9rx>Q)_yD4V`-!@N;ts9GWSJ zBENyKBKO#(3}ycA`^RIG7QemG>-QeF{jkEwH{xDiZ0FzRZ-6!)JRckmt<%|#b3zYA z7zdVbf%I6uO%fch2L~e{j-R%GjFb3^lQS}yXw5#s3vPwjOCev7qe#*(4RP|;+&qX1 zIf1ghcsB!=(Cm64aJS2VN$@0qCB75fVDX6kpDl^{VPgCczERxG)5-PO)xqAdQ%D?~ zO)k$@9BCoW8}9EM9P%cdujr##L^euLS)vV^G>GkbxjY+8w-*o`a(;DvF40v?zKi`T zo_Z)tIl^q)-u|kcwO?GHonibv_$e_&+vSBff%mtX>5uBN2jidcUsa?kDe3dI>}+a( zmbVY{vb?@*1`C%xm`%V(I5z)P72LBc43Xu3RRXUCTxkVgey1xskh3<+>X~rV&+;C1 ziPo(LmR34l>s55wFp04ARJYljk6{6~;W&B?c-XwgY-;L!)v$TN-=@XU?|Fmb04(St zTwcwlO$$>H_?p6-%d@jNZt>R>#rw+Qpa5_=cn1e!ML~m3TfnTUpY32(sX`4Jm>v$V zFHa{Y>viJm#QnV4hV$$7=&{CK$yH(n4anq#m;F|X$o6;_v+f{7Z9iQ;gk^TfkY?z_Z z2P5Rwj9JgqlCf)c_3*Q;YZmTz?`efxf2cETa;hk4BVZSF{-ilm7~I^sA?oy*(KMe& zP+OUtyywG>2`2Vs$Pf)bT|jj^ZM7Ex@luK#_$bm9j@O)Q{2h6=8{;J9+~|XU>3{WYpU2KKXKE)3ir`76 zhHJz#6I9bed|`4{$v~tvl{at$&!~#OiZRM<_p-=-rJ2hMqZaCJ1qOe4@qLc#SOvXfLzE0ac@jXt zUG^Avzg*pqfbX@d;LFMpECG6O^(luZl?YnR&gCmY_ZgMW^>#prB#yC$ipSGXq*h*8~*15g``%`jz@`#bFvb8lpKFXG1H27eh(Di zKbq5Jz9NG{Hy_Dk!h?f{MM<#n(0Cw%0shViK8-rwfQ053YcOg0gCcCZsL_fJEscob zQV6$fC0rn56c}-FI=U&m2{YjJ{9^;Oo`1}-B(3QDV|l-URdBR5!8$lJx@s^<+bdzp zbwa_!_Nrqzs-=~ciIS*o_$#H=m9dwo?s$F`)q(qy?wd2JstVUDtlJZAZh5uCtJwrh z|KB={N?=ji^GeYWrL2zwK2RCDbn9_y??8`!qSG3KupVGL6G(k`L%0k#DGBHD3U^Kv#rPJw9GVxHOTZbr2(Qq7-z?S7 zT_?r!S2fGdIz|7=p#VM-Y6m)`D$r+PJ4@xSX-~mR9$)ls8Y$-vwO zxdU;Gab17n7BG9)1d)v*kyCz6Eb*3)gs?_+jaXhdN(e6eCp%XM69sR!Da=z{Iy|6^ z+eyVTr$x76XJ`RBY3C+dC)hKe&lV;?)rbmwK~2mgQ|ls-paYiCk3$qg@=rL$e2YMD zP3E}A$rjeNtDyo{siKs(B3zR<%+ep+B%(%DA9r-GT%MIwn<5`C=F?AzbrSi2@$aLH zs&WAe6)xNI|Bkk|P~%~HF`a$txK^yMSV|m`Hda)ZDlr2wC=Y!l%NP5?Vqx8pti(qZ zF13Q}7rE2flJgUkG^TJEPR>3$B?o%isqXv*P~$(qp(-@!2lQ=;whk1Y$yOMCN>{-V zAS(~AIeJ8Qy8ce(LG~`>a`XqBru07B0lb^?iQPldARdS&?`(d`DA2=SHfI7yvPS^; z0F>->d!(GG$TpRWm|K{t_JLd~;iPF<@@1rffMFTh@W5|dr%m3lR5nIL(Cc>b^t`0x zT7f+!v74j^k|t)IWWHr%MyL{uTqQ-4)B8P+-dQ2-MGvlr#VdszT;VWBUk}>morxDn zFhQ1%=vJsBl1|_B>o2FE)(3m`>%n18pP+^^{(9H_etiKyq2MnMA3ozBn2y?jkhz1a zE-rCD@Q==y(=L3y0$lmB{}@}qHP5LnrnhoZb)gB=x(F~PJGukQ>(r5@_B|yKGddD8 zI`=X-cQQC%GJn+Rv6Z>gAaln@=5}r7wmJM7!T(=mh_=F3kqwmrzGsNNnZwVFP$83f z&m0lvo`!t#Z<`mg(P+e*p?p1v;Du-T(-zUUG-@~Kc!h-oPFV)~4jnn{_O(&fMyKfE zOSD#l)ja#h(L*1Z3M4T5xO&RQ=oAvCUi^HAA;7 z^JuF@Jj$-G;&{^)HGmOPsVR$_qXo<&z+DntBSs^G0sj)C6aOM}6PI?L8SZ1oKxYJq zU+jQQ+D)ayzg=V6xm|__@#@D5-B!ZlX8Mz!XC{8=ZN<6=n!}$aG_K3R z4|BQD2JO3x1W%rQ*58l{T~oO4TA{D9n@9%jTc}-K+@3N5bSH79=ik@(Pu6;Sy+D^x z84yG#@7X<6);b0gX#Pb6M72qEXm{ti>YIX_w5Q6s;CD^P0}5Fw)Qk~NuA$k~I#zib32airslxUY7!sqv&oAkK|K;ibSj5V@<`eM(^ufDTC(4n=OK#!+a%kK&2{F7$ z^Ps#kk@Do%nd>4MMMOWg!57&N=NIpS#{-cy?1iqb;S=H;tkp2H8Ys*kEL%T~BfyRUvl^fyR)iKTil&HpKQfefVO6z$ev zJJYFX%3)47nhwqZ<*X`T@SbiNV5Y6kOT0A?@E>}njNzZI-#d5}5(b%Xx;*`--k?6k z-JQ0LOVF%cR?gIm!(Ac=X7Ls_9PApLVG6wz^#WSIyrCU57KC&31Hw|)kS#RzkB9U{ zUco&FJVq^6khnHXPK%Fb>3XB(EG`9}D|5Bt3h%QjZ~j82IcSbJ5o zh7IEhIp2#&jYURR3i?e#@qx0Q&Xyn5FSgpW%`QOmAz*&T9Qnf4-{yW>SQ; zA7rl?*O9k|k$>PvZ+fz#zi5`IVueEvR8Jl(y{ibTk?_clZGgkU$-1_K#8)}C@U+Eh z?5HN+?mDf!CVd}3(4^6gyG5a}ve(w`xEQnPMi8*qDDg?SHV}h@UGEd)Cf&pBBMJ(J zl?Qpm>mXbpb~Ql*z9TQ^7otsst|?7QyY>;|bORIH%0+fD*a#%hv;KVo)OJLqfDlHe zw5JRddL#z)P+rsPrUO-UErZz$L2PvZ$ZiXq@&Px2^8TOuMd;F?@Xj^zWhE<$Ws7SY zTjI;DC9}(*0-tN;Sg_hCkh~qfm@pq~@eAag@kGIOOp4rTU4DbgS8xH_dsFhWMW8Ds zt=7DitM1=Xcmpr;MM{<4h{MovEfk4JhkGNh`!Fg#Cq%}j2^#r*o&x~h* zWgjoB2Qb}iy1d@jq0@cp%qGB<qFVg1xKb_Na+V{+x;~)f~msnXX9bOKEd& z?_g_t1a})6vf<8i>MO7=Pj|uX8O;1~(zXOp5Py&YnHeeZd zGu|UCL3@vzB4f;@vB}7sBpr?cKb`UB&C@IhmCe_A`V?55Z!Y-kZW;Ly+s zB)&OFT0$(lvSH`DOw;o)Ztkjxnf!LC-<=X_d%_AgBuZ+hCKJg;?#mFuxRtUR(f(5xNoVLOS3+M z1ab5ja7lh8QpcwEa^QsYPRX}+BdZ#Kmz6$kDQF}f_nSCVV;|VRtPhTEcH#kvh}tD{ zo!}ewwPUZ134O$V-^a&=!6t7E=K~xIP%-u%i@vG6GsGCi^>+sXi1-0^Md)=|dabkz1dM#+YqsTZ^ zIay~DQ|M5Y)B&;53^J=ubYrZh_T)<%4d zkwU&AoPXxK3W`+h(Wjs%edNtJiihWm7p(-a?C==tA=tOSMM8kgoszt^XdnG6+!+w% z@gny~r#ej2PgQDifr47lzR`WgM(Txh6_bN~AyGgb<6#I-CQszFKFlY<6B8bg*d?D6 zP8=CLtbmZCB4}(Xi>p4|HWrH?ojhV_- ztr-bWY)ue~fsz`Lp-Gna!qbS}FPJDq_#(tf{ZX`iG6VZ%(C$Z4k+?jHA#k*4Gwi#t zTQbxJlNu<4grIU_>U40LDdIV)>wRyN+=5}-I|X<9gM*jDaobO+sMYkiw1i4Cu1lh9 zs!qOG6dHFzN=ZW`r#Lu4d+~YI^-8j{%W`Uyv?j2~`D{9e6qA>RBP|x6L(<+3C5Dcu;)JW-8*FVz3T5T_r>0-R5_ zPPZQBOyHi16`Dzym;r$M(&@)uY_MFO50ag%lAUiL)r!=i{j!mZPQmrYyC#*dmzIFN~pCw zC8b?_0$^CH#}L-aSw^r~gi-IiWCw_Q3)gobY7zg49rQtL?7dy>t6xiNj(?(Bp3B|< zQA(x4ZR3upO<_wLVAJ!#fe8;&8%+$T0w7UBkPz7a0Nj36GfPWCZ)mckVR zx_kC+iFmw12g+^dV3%VKym{kdUqL7XFXG8ID#u&NoFCv+X!dJ3t+%)2O=@Jw0YlX= zl;8N~a1!^9(RYvO!=nK^Q%W;o2n0Zy1Ss8ggcg8o9>AnbP-Ltm732qKsJ`_vAT`8g zjTL;wVpP3UP#&6yfGdsr+r}=1R?c*Gx=oP=mUgh?fJOEeGn8;sq6Nk(5}@^3I~e%X zRbZhde6Lzxpci}zvgo9eUm$~Cp~@_;P>?2)!NoFjnkIujE+l1;=3PUic`N;mKwm(c zFQxXqo6|8c0g;mri+eWtEQIAUO?}6 z;@s%hm(WH|SjguHE`mD5GPUmm^AI>_5bg$K#4S*$pS%SVWv}*S?`(l6SJ2!(K}!-% z^eV1{ZOcLqm1lEptas*<)m;x1K3agT6l!Um%>p%9Rl(0gQ-MQCHqS0C>0ex$^6YW% z+rXj1?h>Mq&GInduTM{P-}ldZqXm%%g}&`erWzk3lez~1iXTIuOqd>qrBKg0kpWM4{s z{w=4Hp_jc^!qP957%-e965ziZY2iKMJY@q1UA{sHg_)0K<+c8G>jDQ$?DJ_ zjlkn#-1+rq4|IRcfzeM_nwo=vhmhR~sBh#s{u=B!s9)8h9IQ>3{K?RcYPdd|BhBBz!;$>?n$Cn2Sdta!k-mD;^r;r4rABB-<32@Ny|ZnA^qGUo;(Q(;x#A z?qPA*82x{xeEg+rIy<|XP#x0RoX*~M=*Q$_xiWz`;U>o>GOFJF+GUJjF)62zMg_fR z36TVG+sCVp>$eMb=3d#Ji#Z=r`W=dZjMT~Nc1JaX<`UIe1ZECcC;2j7;%Zmax|dR4 zf2iY~_8pvbsfJ~r8RsXuWA@NWj$0ojwqQZ z6HP7hfT%rF!Mt6_`95^|pr{wRW5C-o^uu6J zrNF)Ftg+A1Xu>^LvD6Q0x)EAtb<^Eg&Fl4aewn@IS1~Jl#Z3{3@SOw4RHy(Z(&2jp zN)8=S-}^9~d0*kK_GJ1W*DIi4-vV8;dVxU(7UH|;qyBQV4Hp_v4RS+4^ouJ8sEMoR zzP}e~Q?cG-=i%B{&L2m$pOn>pl&bwCs{LJA?e7wmzl$nwltTVZqIP-dzD31CHf4&Z z{4DSkQiEc(QLCp1YF@tFM9S3y`OWn0}+F#U01VC7_x% zu9kU6+j_9^UBCM!PJminUc8%V0M2Pg7Dj9Th-A|@?ql*Puk$0I{BUk^^`CIE(=Vhj zsITt7Kl+;Uz-B~K9&BhuniFJ4&?p{6b-zLwf|3AVSxHB@esBa3;KS8~j{~ayOuJ)D z`H)llT#Bg|g!04JJf~l6cDoOK^23dg}EJ+UeUyhF?a;}-ML?uQEYyy(K$j)?EjTVZ%_NMj1R zQD-lx$Uo|L$pxHenN>Py6i`ILl;#W>ar7cF6QezwB153`d;x~gGH*PzFqB7I`tEln zMe#+clfncZFF$?6I8Ees_^U^57@(i{iPMmAW1fwa2y9sak>xutAr4dLH)4Q@awEBR zeGRrx2ft_9N5;)&)QH%h(40J z$(I~UiepqcD;g|dF{56~M_iySmQ%6|o%0)m93Z=w1!m?{q(X>`*#>1pYla?gEMoW} zOl)~pZWtFeX3Q0$)0B2G0Z$^TdAA$ALB7DDJnL6j9B87SY@!VJhX;c(M4b)8$GT+j zVkS^yWY}ZaTfjkCQS4UfV!kO~@oXVJl;qw92()Tso$`|aNT&R_)Yr}FkbATx#jyf@e!Z~r*V+a$?>kb(F1ejFaaxF~2N zwCtO5VQc%nN4>rYTkDF@5jnEV>~x%1@EyaaX*UGiegMOYPyw;SrgJKponucV$%=!G z&p5Wj!!P@fV2HMMc{o}dgf@&nOUD?SJiB?5c6gb00hv{D4Lg9>wbSP0w$q%2o8^j~ zn1Q7exFguwc5~)oMs*c>k{3XUT0qD~pwEDIa%WdI>};Z-2rl+<1pz2LL6a58dZY@p zC80$rWLUomU|OyQE}mY-%)Bt+r9nIodH&i5*Na7U2vpt}ELE-u_^AzLZSqF0f6Kzn zN@ms;_vDR0p^e%gR4SE28lp+L&3BW<+gVLX##h!CtSKt+(VwbWrTDNKpw$_s*x5F^ zXbCZoKT+_eq+=CaKX=@(of)`;79`PAH_X&1M@>2)E*<$iJ!Ds;{BwCx7d$NpR7SDS zp5PVcoAMFWd|D!Kn5*tf=?kg8Ek4JBwvwU7Oszs#H1Ry-243h3<{};M%s>sntwNwn z+lfFf3yx;i!LhW%2wR%uqHAdgG9%HQYKS9W_@Qa4THfgK1n_*5jxRpFko0&VrLtbH z=Qxe0dE%&p%38QsQ93_q-1Xvfhjw>%GXS9a`T$Uebhl@GUYH1vLdftRr_mT3)k3Zk z1!Og+e6!tqlq=PwF-e=oQL37%K~Z(m00obU3?7QzxYdOpj5_oTygf)36<%>2H&^sk zHeK6PpN2*XYaRbH39TINtwI%!B zDP(5bE0>RMcH;crg|D64vNu`P1M<7oY+a+N;;PjPy5>%;-e|$j4OXnK-O+?jqT~@E zr&N6tZXfbQFy=UF$K5h!!oq$q4uGEz-mG=KGHlTuTuFOqO^($g00$T9z9F-e+gEj~ z)?KJXitLA^h)NeS>1Hjm!@Y2Y0?W)PUP5eQwdaOe;2ESeg#3AdObCW#9ItX26AsAC z77z8g`^{sGsWtPsf|y9$Wxd6STnot8W}xo3WTY5uVV{SAn)`)~$- z_-dMoY@84pan6mEPQsi#D#^l?bjgspjPrn|c!{DBAK8l{13Zle*~4!L0|Wm$q`{Ax zrBK2{ji%2!m|CQUFf}3|hbhqSn#$Dxm-080dtE+x<#_>J+EUr}wBZw*TO~-@uDXnG zMn8(11pcFt@K*qcB-O$pQZ45Tq#3=)rB@+^Gg8;97@eKHHiTRT>C1$%W+xz0+Q-oG z`pIxfawqPTzOrNG!FElkYZ==}!s2urpW1XIm5i(ZCk|`Py9bcz?SkD@clb{Ot3|AY z^bc1Mj-5lDcE;&8?oLmnq(7UiUvmDahHZyLsvZ6ln9r_$=0q^ooKIH2(~D z+vTVlOalj=L7#PKknGB1LH#WkBgEdN%o&@EI~`kBOkZuBA323$cl+WL%G8OLMQ~5M z5I$wH#hu|x)bglnF#jn+6>^lvR%FG)yLmZ$~BO-ck(1bUqDYoK8(+wILEw5s5&?G_@p0o7XV7hHK zU53jeSH9yRx#zjQ1mlDzjQe=g7j|Y-unN+p0*}gZ1rW|!-cW_x*CvMrHLB=;XEP`I zQMaBtE3vpeR9+@>6Ohy^BZ_X;b!0-7kS=pdK;)vl0g3K=^(r4x=S_4gGzxGYg`O~$ zy6y}V4p+wr_i2i;hi5iXc?KfR!i$9H;gp`1QpYL9sv)=yxn?ha#sHn>+1syqK;1bK z11fqF0i2L#zy$q<5-3TylLnGx8A%xBI5UAC1VncY7^fR#7$}UglAyX91pzcEM-~NH zAuB2YK*&`ec(V?~+yRZlxLB%3fXJc3$FsNyDIUvINdmk>F*2k^ft&4=6V;B~G zoKd9m)h~tv-1=FBtjG)&+^63hUU~Y937zehBJ&fTxmnHJ*Bu{)yG929FpCoP7~&;n8d>_2#g zg;^R3V1hU)c5VLFOmQI6&G5}+RT~or=HN12JN9m!vt^#$6B;}!akM~-gM|9pYG%|p zg!f>XW+~YBE5O#{Y|Yh4__DXM&FBtczlkF!x1KDn;uy?@Zmd#i)RUF!H6TH#3GrZU zbhtvrt)jZHD3F!mc=HJ>&Q(3oUT1pFI@2z)OV3Lj|7dlna6Vp{Ss|al9Rq0?I*jrdFt$!ngOe?+B!w$)&|sVR(@8Gq3XW+) zn^Wk0V_j58d9V@eERc`*mwBP^J)`Aa)B$b4bliHz`h9LoJ zR}$&>0wON&H`3ir3C8U>pL-#CnB*o}4r-Wbqcu`2uenu|%_S4Ft+MOjyfkk4 zz+LF$7z^g3qV!_)Zxk5AGpX^y?k?WrDvSXOjzP5hA%r-OIO2Ga2~#eDay6>N9+Tucb@P z!rwdKOE641TAcYbnCIOgPWg%*FJ||6?juu0MYW!IiF3w@5>7gAOH^vW#l!uvk|ua{N~{%*2=y&?iCN9z92A>DU_B5ih294?ViVcEBHQz8Y>F z?O@H7_(a9x!@mqSkH*yL?9=Sz`ii^V9~>QG(F-w%ySKH6;7^wXdejG+RG0Vgdhpl% zz3tIBZ|nIHwy?P?J)g}%SZCR1r6@*2gwl{x(NK;?(NdSHjv=#F#8f-$biRyzua?R zzeNlg93F1Jq@7@eaK6^_y}Nt+GgM&*dA52BB@{#J728P?%}KL z{h(QJO1?I5a6=&NI}93naRxpnuGVep)o^Efb8mlanQE!VB>fe{r#Ehx-LCV5Qs@_Q zpy`40$TCN|;yrR@A9m-Y>Papq)ipAf^U2l(RKmh9FITxQK$r*MnY?31A6tI5g_sqKoaTztmWaDV6Eu)GRVWe~RFecOt*%xs&p1w2>*BkNpU zX`8`uj#pkUWPOGHro{m+{gxdzo1dvS*`U%Z^b;j2W{dZr)`k-V-{`~tQDz1M4s)qM zN7-DLv(szvfKp!mfC`|-T&LSDJc@fE8Gbk%zd0IhkHrU1P(sLZEaERN7Z#HVam@S) zXb+QTUYY9R&*bo-JYI@AM^_z&FOd@WAL#u%a54@_#7WA>+q*+{8ALhaxgMN@f(%uRr6)5|v`0^g3s>CGOleZ8=LsnX z#-@D^fPU)$T)UiHnc3S6Uk7oKo_)FXO_IEb`bpOtN-n4U4me`kKNZ}sa!&=ITa0Dk zS9R-HmMP-~1wAPBWz((_5(Qt)>l{98P0k^T(X_6VJ`romnMezDjwX;IUA%qm$nx6K zv*`;Af8MYLI4xf`Ec$vMGu3oOy z?qIN1>6dGjKCCG{#PjzjdY)I7+nG&1%$k(L3u|xDs1&ke>WgiHYp*8d)KO1uK{PKp zZ&VVocxUghNl`en>PsTiV@TYRS%Z>I2IQlbH7K}MzkFgDqW+W`6m2#hDclHD8n;xa zyR+EcQnSKRs=+J>pVD9J4GMcAq(R}Pcd{!!XX8{1|wc^<)Ud z+-X*FU)Xfjn@*W-wWS&qnN6GZ)&OG zcpGi)SEw1$X-|*Kxr#G^V1oHt6X(tn>h0x z$Z-yr@uSZUm!(+XbQ75rl1_1)TsRCage@t*0XsyV2sLOE`;sayyup<*eq~h9L`z^< zzKGExX}${AybS*=JL@|xof+%QjTL*ue;%9(O!V)Avwp1V;h`y?P0RJMYvQ;>B~|}0 zCveg}GBFcYVNb`8YCTLXFIK`7UaBz{Y9~cjQN{>NjmqkwDzYKeDi|%tSto+I4~Esn zop3#2O?bX}klEM{NL|*1z~q5*qC)fCZnxPGg$Kj#@Floku% zBBo+PTHnTL$M0OhDO%fTaelDHh!Ba+C@>a<7)jT`eNotr&@+vr@sBw;~{rFULqi!M2BvbAh~>v z3X7Bd0FmIbgUNIPtgNfVQt8(pus&5yn?!+V55;8~#+lG+Kd!&%7V|K7` z{sBlk_u7FbxEJXdyz+@pSEchRt*)_qlNiuX3F$B+5@K)EwWc!-KFGephPpcill{ZASOW7vPCZ5DH44_+1Krr)Jo2n#)cd|9@N9L5CLFCT8QHm7S+Xsb2X#znHxVaRG#N>#OIt05 zjWcl;(?Hl&QZ?3ww6CP(S^?)peipF3nEv#=UucFcGoJSY{mu$3ehp!~A)5CY2HE~KSp*W;O+F11u z+@H4_aB6$s)u0nb5lL%Z-Ls3=q@;O3wkiw)iH9>ze?BK-DFf*_C3o-XuUvmv?e;`e z8j7l78jb?1_=aI3xzFg)kTIwfMLWfy zF2!7pU{!BJ9x+7T7zjed^GdPN_Az5LweJ@6GQ=pifVT`TUEA%(=#rW6HLD;vqO?JV zN$aB2TG$|12nzE3?BSE_N%nA~pTU0*H=bnh-@`}!4E}rg=t&0ufn8(<|2=&CB!mAR ze$&t3zlYyE$>6_-Px{#tYy%pBuW$Pq{P*zNCmHzUy(Kol_MU4FXo7k)v3p>V5$MDkdi*lb84k2Dj3ubN+q^b z7#G@ZaESmlUYgBq&H_!04g%AH7Qb{DqMM)`%c*E0yWVsTqLMFBkLwfn*UDQIIr;s0 z>-e+#iPO!k6Qz{s=xcoTW}QUNLyCvZ`R>&aVrkcrwX~a4TfJ(S^F`xfLQA(8=6q2A zL_oX0Hq7~=;V>DS7zRU5QTQs4%u^Hn>0K^Z_J9iA3(gOVcs{@wHJ>r(GTe5yG80C} zpq=_YJi}|(X6(K?Z;wTor~4%~ND)T=NOb#^N_b(}vS;NIM8g#3elV??od6sM2A$7L0 zhFBB1rX|#I>&Nm>NGq=~eupNh9sWadP264f6B))~b{>8ba^DN9 zf|+_YnfGMW*LucBG&yHyT()$zUV&5x^m$~_x|I`(I{Xhe{?tiTI5ga{p8*GUYVxf8yAs9$2!wJ$O2pyA>-7zq$hEEi0=iql9dCF6yUR8jW$>9x zT?Hqa69Onoy9PFRn}Eai7Jj7W3}HoH977Y%3bd7e~Stwc@?RH8gLnT$A9E{}%jf7{>-a0+) zbk_&|#S7=5rm&REjA*E^GPyk8TR3g*jxz@e(-}RQ>cHS3lWa83S+7|rlxp?r*PFGt zDF*aA^K+11y~fbaR~Z=w*yv}sVSj65&d-ZaP!{&W1vb-^j|2$pErKs+xGXc>Yogf{ zJ0h-Q$JN-|k4z63yJ3iH{|?JUA1>oy?%|g&*5x<^`e|8RKh91b=f5FMuerTX*=PIt zIs4Uq{z@XQxCd^M8si-cKj9ecU`hfUFOhVEr1#U=a@F|&RS01G;jX7(fSmfF(Ax*! zo6|G&UA=+Ua|%B`U;W6k4X*Jc^(fPirBdAESSite^U~9$W>?-hi8r%NAP1#hqEg<; zV@Kj3jL}r6YM{VnJZQgNf(n8hEO#dtVz)x^*k&L~?ZY-IXd3+82*q6U0~;F5(hXed$Qcmv=#eemcb{w5;g} z6RiPxp(H9!aB@M{mP|#_lR!sGIEWl=-(;dwy+#v}uyAL%UV0@Y1DIw!eOnkhy}u$j zlg`8Ao1Crtp=CDBFZdS#Rc!o1r2=fV9r7caOu(vh%WPrO2u`B)vZw^eSJA;1w>bxak{yG3XP6Om0d+JMvJtjb<-OpkoD<>*XpA@4* zOMV-tmnp9~J#^Y);|;L=LU3{u;%Re%_Bqy*L(%%LAmF33&(F-`gxg?S+jJ_DBApyw z0^XqTk2ya4^byKmr?$QmRa{3q-h&GblKy%%yuFJh+ZMD6yeZAOfef|-4=B;RS_3;> z^g!)6z*bSjaK_=$H=Y>f_Tr{sPf@*)A*lbkknyYR33_wt$b!g6Bp?pEM>l?EMxr*m zfe56?^E(N7^l7O~`}N>p1b%Lw+GEYvj6x{XY+M)#8WaR)#eWTqJ`0fALFzH;%#)8J zxClB@#UTD!?F`b@8QvB>JFOq2Tb^o736bjwHA>m+!k-D`{+< zrP_lVW^qM6Pyb<-OIy8M)y^{-r=#{3ZKq_LCcTdd{Vjzm#-A z(mgT(7FREj3zfkYU}x%6x<2IC>U|;Ln0RKiA;(tlb1KW>##Zlprm;LX9~Ez)g3e$8 z_$_wX;i+fz=gx}Jz`;Wg&Frq4$^PQ%NqzTZw2rUb40fZprcSpIUj>9TPf&w%fRxpE z%p|i%Rrz=-ejJsL7aAaY<2(`m7KUxq$Jv`{l;3gAj@i?3CjE8`8jGdVuXL;OZAus5 z7V7O`SFGZ$AN^Ecs@*-jbH`rYpfqP(Jnb zHXGCo+7i;yNlwvk`LK*GfR(7?&B3ke7cAHfg=Oq3i~|nGcLX^Q)JsBGCb;76R-(@A z0Yt$h(i0M`YqPbD>^*O9A`&(zo~NuKT5p{QgktlGE_|+9$CH!yX!WXr(E=-1lq3zX zm|+cN8{M^78qxK74Adh>0hmai_uJj>dK(9~apLBeUL7^R1jL zb*Dt=Q!r&iLfN9Z8#)vWP$@hxZgQflzignsbiSr;zNUrwsVK=c3({LRW#KZ~WS?UFA^l*`CU{hC#Y^~$w#5qt5J&St<=>!-^ zK9)h@sCNU7T8vJv0{^JmS-TYP)}P!`uWCcRxq5pp1ODMo%z{E za^8qcoCkR3NNj=S=jQU_b0?@TDE3Ai?g699=QN*^L&&17cg;d_J}icxELOGbMO>lj1eL2g1T+YD^Yajf?WL)Oua{2ab_QULR zwljfy9txaYI}K-W=>%<9l)HdRxoaH(-G#qBOm@$Gh~0-B_)Lro&4JHXpk#_^#4^Q7 z99!Y^at3eO#R=awz4Ikt#^lP!h{k$2G#*Tc|3rB*!jAlna%tQh`Zvl!P&*ecR<=v0 z>FChE9K9=?F0)fzOP9+Ja{z3Qp4uxe+KHz*`tGLN=+MmRSMTNC-pie#(HwT8cCK{1 zm5_6;Q+K#Sp1DY6vBakV91QO_sAy$gKI1eWvN#PI(*$Z92+fmGMcVb(OefDjC z5gpA~>V5Cxc4UsK-uVjg=>@t)e-1IVa9w&rLxBF*I)u+UaJh zyxM=NAVQs3@LjhzRvjD@+fDho2_yv?qQZ?y66A$7PJ}`Ha+Q%uh1R9%?=~{2rrB&= znFVa26-e*#X>0e@uPqF%h%M7{@QwA-j)#DvA#tB})*(LPXH4vPXd0h~B|dX^K-mh; zpV#y0)w^!sm6uEQ$mXnldI^@P?Nt65HIQ>V?AbY0>?3xNQ#Yhy*S`VOFA#`-D2SiK z6SXP8_?-Q-;YD9)6u+S<(3kl7`?H~@yQ?9TfEx{>&9zABgA85?S=I4XXd(xW*R z|0`Bol}B{k3pHFJA<%LCl?PT=?6c7(C97|zK7hbJ+UiWQV@Hf*fznk9IF5k=M-UyP zw7v_MQmE~6O6$6qD22K%r?jp}pKmU2AQq0%WShGt1r#pOOv(%MV8WWlZp#E$IBua~ zikVvKoQ%F3_jy*=+mU^0vFFY#~5&~acCK?lQvAeaK zb$calnv;$D=n?hpgdNKGFtMVB_Ia)*-Y8OeO9_piob9hq(!)BH%^(VqP zL@ixViBl}`v3z%u-3W@{ov#T=@FUYAZPl9dseZItt+XR+?qR`%Ko?6&udYd90#a2e zqq;6eEl5?x^y-@Gzdu!5^Qv3WNCc@CG_PVCuXt$+M)7-#iWMc}9J{89r*m32&GzeQ z(i>v1D_zw`^R_q+TUlG2+o&xvuPSRwGaI$^ngaxyLwl?-1C#a!O?*tPMoXm;qeTrP z0yPK;RMtbGd2>1ky_YqBZr@>$g{!_9gdF3s9HH6q`Hh;EP>nU?%T<^+j+C?f=H1Bw>+NJncG-NCKLFlrVnDZGKD;T>$arl2 zqo(F=r(=|lAjo@S21aG$XN9m3AqLl{Ae?x+0;{icF=M;o9L)1n3Gh()aHC}gFTv-- zQlbHexp@dt%XlZfB=}Rao6U=&yXNwc?bUOMQrwY?iNlbo$UaUC#YsLdVNhir@wTM3 zsS@KwwO0IFp6;&dG;er2X;kJ)LIjA{;v^{5$dO!{-i93TS+!KPcFAx`=UH896rc+I zYQ)+3Z*j`+#_g-*Q7>-W7J6`Kd*`d1=N1AxBRWmB-Z+DTNu<7BeGatq9F}*Jmy0jx zpTD&Q-6N%@q#>aFd)X1bJ}IPEeY&AAYkKmJotwT$&=Zw#58@Z9Mtd)NA?-p8DPMQ% z`f}oJ7eEU~tH(}XwMOjoRnl`;(J46JQ;yJ%_#|0#&A z|Hp#;@U!Pfa0QL7|FPNAt5)aBRoD3wxman$0M`>m4d`ZxSO%^Lxcp~dXc-50V6VKI zdyav)F5T{r(t8N--w13jlFFxSPYOpx^4-C~4-ya8WqGr`3@dk^j+ZrxB*v0cSK4TG z@NKKBvP&IXlxV7goowX}G_e!yT4lUD!`QNwjS^*~opoJ#n9WKg)HRY&>Sg&(fe%S` zfy|X$$7O;67?id?b>{eQ<3pkj;CY@?gLelfJU`Kx_U{fXPWg=hW=OAvns#gUhv0M) zE#_;x(Fi~vp<2($=aaMf36i!*SI~!H0!RWo?1OU)SlSRp<=hC?MnaJLJ8PcLUAQO- zcnwT&VRiUOZu18l*~s)t#|tdfhE*0JDLYrc` z_xGK|gCe3)3cjK|za*M7^Teuz3%A9m5?bMB%=@Lj4U$`w5gb29fHi2(V3A{JrKcz; zneKkkpu_YM`!>QAZ{8rBKi<3hMPUfOTilly;Zbto4v{9i5GTSlYg8J8NpuH73`lAk z6ZA!car>_2xUK0~iVswLPKH+K zw8=1NX2;8@3mXS8hQh7|K7H`>`@G-lZwUPt)C%JZTDqztJRoWzh~`KMXr#G;Y_sTS zQX&+~;_d#)25cyvI~6#W@e&7$>b#)x|OYu*V(9^ ztq(@mCUT$wSoZY?Vszwu3&V9DVAbPqpM3S`o3Fm@!+&aJq-7VA(1N`m#%ZX&zQD$U z+$u6YS!Thj7@cgDO{f5t(mx_2_sUrz70w#l9h+68U)v(LU5Qi>C?I$OZfu2667YzA_ze&TV!0j zp0a557lq}kwJpGAQ3&P6dc?e+p9zn?T>bLY5Bz6Gcfr>$z19dUFCRX9_T>}@Oxz*o zcY^V->n0*3+pryGcAE2K_7-Hb z{d|6T^^VQA(RV)KjQe6gpZe9?Ud%nuJV-urPC*NWiFsb0mFFSDvls+D?nm8$5}&`= zsHsa#{6c-~)x^y;3aH-KsjCC_J15q-_1*G(b_`KJ^5Bb%EyFq@=AR1cFTg)lX;d>Z~Z9F3nk?iX9Rp0=3aJ*t4 zxDTF?x*YZsS}jl#9z8steC|*qJSj96;5U%xMv6NTf6&5$0yCKw5@1kacjAON1SWbq z=lr(uPaB#u;X~^RyTa2G-jX!!iRBG^>BEUCC!Z^dbDiTq;-kebJdMGnsBw^)c;BHc zR<1u>j#JeEnV4%EoyP>j!x){3!L7hS!6}4q&W{d<2QPL8FG(r9;Qy_KjtsCF4E5YX zp=tQM$@~xii{r+Ts_pa}qOcqjUgU`wtY1|~tYva%36M~`5se!_uGfM3Qu7^XhprZW+UX`$;V-AxCCw_NXT}}mRCwy%D+^-4T&7D3pMQq?*lRIe){GR%(AfP zzaipuZXb|^_DaQOVWkaoBvhXXzPQ_>xh_KD2@}qXs>@+k8MTThM%h#?d^Gxhg!x$H z3&W17(c~{Id=zo^%?e$*k;^VWwn08IU(fSn>4j#0Ku7fVltVv3l5aA22XT%Y#efcC zse?bQh7~~&ooobFw`ws#m@}E9`C|A68C@+=uT?%k^~U|CU?q33(#_V7&Abs9{D%dr z%@Boa0_5<2F>k1=8+Xe?bEZJS>Hsb)p zXN;GaA98H1^17!A)u9zJ)L03Qk}QL*G}KKG$?kWcI!~nchLP2U0WQLR4NDd*qjMda zh)=-s8uU7+ENx3zRhJY;eS96lQ|zw;Um3J-b=s!BH=bGSBS?8zJQvu9Y8|nvs|Qa6 z!sQv`Mr(BqO8*OV1c8`t!@p?1^st$_cfy-D7PTHuuLPlz9x+0+aYI>Ntgb>wOEUf$ zG7&G~rc0Gn&r@4kst{RRXn5C5(DqgS`0l3(0#BXb9e~QtA5oD#=zr}=6b0hY6RNl5 zFfLBJCayEt5{3Kb>5J>LGkmRv{LppdDJ~ZiH12G6n51L`A{!7d2r`?7M?H?7r`^mQ zIVB8wl|lbD<`=5Hj^#2410vy_f`&k6hOcf*EA4V`td|%Z#GtUBxPiwt3=wzXxU(g` z)Qrh+6&qmeUPH~!>3B?vW=9uOF#K`ko}y!Lp8Khi6kTaoxcs$R-ho1_y%^?KJ@EQ^ z7j_a|qJyIs;Qa1o4{W1O=94qZf3bJ43*!B~Q4mW5Bm&Eihba3Wj^8*&bf=4q3HA-+ z&yB7N8UymBJm{1~PC=tb6s0ZFL!fd!ufRf$F#h8N47T4mFbNLdROUdGb!DuThq#l3^ zrr)EuWadn7((r2tr+!du`S8_XXJ_yA8_KrKGjENV<3Ks2%wihEVn<2@|8Kk2jlqs* zQu9W}f|d&M2E?Vs@h;=iKb&8@)8gLtkga01Z>61*-A`)hu&O#rjEVUw96M;LRcgpi zEM;dmXeGM|qY^0bVrTp1tFgq!n@$~niUja}-ZPrpOuEk;rDzevdOmmU4-R(!x^C;K z>2TXD?$Y6;>vA;s@vpZS5TIjVBbleD!il(=Td=D+S)+A!{=slFybDALEH!w}Vrt+L zi8-{M!>~rkVRcbrxs(*9aIwW}JE)Be4kPT#Hwu@T^nXda@a(g40A08t-kxLZMgu7q zyAku6BBvz;W?_M0HM~3=5_*y_2PBv2?a`k#j*$O8F8=$t_=h_#2D`g^he!MSJAWl_ zu#G6rqv4KJalC@&rxUCMYO$CDid@pGZwO{vqMvzuy)mm%3X~~;x3RPfN_q;_NQD_b z&&kvlpI=khwD;Rx{~RKos5~*ekzTP`e9O8f$=N`stL@0ANru z1pYD`FBDAm-obE-D@AOky0>-u6>YsaH-#EJP``33eiH!Rym27(dmA@|Vz7O%HGDA~ z9S$2$-|+RppEqlGa*VbHa0Zp#ExC~YT2E9GFL_V`hhZfHI!WPeCZh< zFl*d>rE2NqQWM_Xm@L}t8C9u0wbxt+en=e*HiwX<(^_$t3CE`WnhpP@sg}49#_*(| zt=Bq0J8N((3OZn3T@8$eTfJV-Mdk)J`^hEnp4=^~PF*$QDYu4=QCrE0q?~=cdp5G_ z{72>adM}liI4qrf%61Q3wl~N&)?bNNdp`~jZae?fNY;7>wBluQ&d<{OgevGPSQ%Am zVdM#@(Ly;zDEB)RaE|Z{T}M9Xp7aCCvbY_&104g`MDM6v5^1~fk}17T1rUy_&vA|W zP5~C20~K%(6Df=_x#>YSPpmQNGPJc0OlihWGQ_betHI(NDQ6>+-oH5eytnAQf`)`V zawBpq;uhxeioXgV;R+1Os~8mDP7$D5oB@1A7q$u1Nf8x(ki*5)xDfTIbD58~cg5u^ zjW~N(K4PjMoFK1hupZ^Lv$qMHkX{Ke0ult?!SdRMq+hb90(u1EN`u0ej1UIg_zltEt>(ym zFX6%IeNpzdC^_V+$1+ELBv8$B0IJ1ml?$L(!%>-qNx3e=?`_kL$ulGF_rB|{^M+ez zh7zw-_AVn^TFTeF#%{m%%^q`WjLeXQe~)M0=3pNk6M2Sksdw^P`^L@51x9YCFp@2; z>^&UacYaTF?~8xxm1pm`wBcfQ{yF8!TFnwYTL$+$pEN?V!U#0InXaOo8cIwOuLs0( z;Hm}AVl))c=DatTAZZT^ihGf+?cQagY%4LCM$qAWqLlE2rJ45}KT1P03zsrjx) zXp`l|jIFh1*TTcL!mb^hZxm?>ev|-fUsP-oZi^kBfXBBPOW07|f=*B{s91qK)rj4U zV|Twjy8fY4q-WO}*i)cYWLpZZmteQ)Ef{3k6HDY%k>*HR@1zOP$Xs!&aeNIo)KVel zDFBuDGsu|%A#%O&TLLi>{pOh)=dg9c&i14|+MKJBMXcch-8taB*5Nx%aMk7{c7~hg z6Q4z`8AuPWi2&%8z#XXW+!*CC!J++K^fcOQrO(!Ox2SG3Zl;E(ERXprFz0r`X~)LE zu+a?&v_2#S;?VNo$#tUecQcCok+ZB!Oi*HjeJI#Orap%(qIMI&~RjUQ2HlQSgeFeB3jGZ|35 z1;%p-83TvJQ^aqG!1g6a<=}yWuFE-m;xOR%|M&m?@Bfv#dHb^eSW?^|u((l*;YnCw zvt7p)&uBObo`bjRjebG)h5VYG!SkIVq1B7|Mixa35mw@cD&XHgnO^^i5KiHXESqgj$ASR1v%^Z{L64XIjl95w9EDncxt#A)W2tT)=yX&zHduT<0P8>H z+?j?rdDW;D@}jy}720rNVP$F<2cz-NKB3Oqzg>N1Z~k=%jSGhgCdN_gV#T=40c_Bs zh&sv$5++}yYcTf{Ao-h0tl8z&1cMU6rU%yRIa&l@uQ=RRZaVi59{&D*!=7vK5~fsz zgOTn4Z=%k{R|Hko@7@eB3cqtPyF4N1G${x#LKqbY7t0}-K3c!BCDUP0GrEK9ma%H& zun}RoPTom5wVF2+ZQbP)+A5@PKK1N-#6BLGOM(qPZMEy%;8eqyiJy_|_K|c79g&G% zmg+5dszCu~U&S%ro&DH9IX?yeY6h|o7Z?Nh+IOj$y4;KNEdQ`82n~;9vy5f zcJJmvt9FCpqLy8(A{lf+j01B;Pb+U^E;lxb5A6A;iRLwgxC1Z?`nByKMH;v8LQtvG z_Dif~+59rlLFH=?-0G(1=C=^2Oj}|-Qo#$0Y2sACHEU^Q=aIzbR_+3$PAe*@<=V8u zR4AA~c>4%nk1-`R-SCZiWd33Uds1(fJisr!0T*sA@W&{)wyQsAm;-My$DhH1X_O=_2VnpO({pTC1mljkLNy16(y5PSz)ls}zD@Nbx zW(^n(h+DK0D@ELNFjhU{hT}2X1vhKq_Id_4>-TPC-Z$$z&{8Ng;f?}uunu;iCcd}0 zd@!7jAXQjR{aeUtPzRBy>eAeG-06V$eb+n456SG~%HZ+~!fs1}o2 zxe(G+GV1TL8t6*xLZ-w<*F~yWoU+NYR{pUSLF`CFj6FE6Nu41FB8zMN7-aa@7YBPo zOBfJ|32B|M$T~(FCB}8eRxS)N?ReS`-tRIy!4o-7W}Sci=rH7p$@NXiov z670;7Z>IoB$1HPpHZ8m_B60TcE%=^V8R?Z<63($fvE1soO3fJEEDFI`#2lZ z8N`|pp~-7-?Ffg?nZrJ=wuDnixU&}&dLj-|g8pF@rf#=#Hn(&(Z4dXOnWG~iG$0BY z=X(o{d7c*ZbqgUo)cs{(Lj6aeS%G6~9qQz5mJPgNv~QPSyc1rvg5or9%w|%cAWjuY zEHp+_F4H2yqLkwb_r6(1W-t52;^JY*vr!(%$7H7N% zi`qhW-q!X}Kifd1o?5)d{RJ$2e?F+_C2}c%kNyob0(H2Rb~#Xfy@M=0+5ygJ4)gXd zR$gf4a}JBgeU>`noiM>vbzaz9T5lv?jNN_WQy#D<1O4<>=om2-_#2#36fGlU8ri1N zjWQ0AIQOQ$q1U{ONZt$MMem+t&D*=u z#M!WBzTLEgJ!i&Eow1fyW)hbdM&Go&?(%}GLadeT(Tj4rvT5A30uEY-Ai?^DK0&NA z;-H*(202fj>UmzG)?o-7Vr#^AsUFtEZ*kXX#H}efH=%*Uc>Y7i!|pl+v{hk5!oCVi z{rn%lSRyGN&w07ilc=}<@FzmCY%tUF;_@}~X~~bE!P%KWyXqwHqs^tx5Wm4_P*-Y& zSGah)(5(?Vys$8K3y7eVH2Jd-s^>L?Dn=l4g_Gneo%kpWtSq%T7;O%B@Wd;*KFqLn zd~Mh*x`hp#p{!ipY%{~|JT{7M;?RhiSfM(M3l7-7lesn?zwz)mZ}M_Dzs1X8OCJJN zh1^Pr@1lHE;<2ciGbnZcuu9FIcOwzb-w8U3h`qCD+1yu)vDG`9K;;#X@Xq0ht7*YZ z1#=oy!(y{ey^P7V3*Bo&a2fp!kpkP9LZpspSVP9upw<3tp7^i|qr-jBZtW%A^qBAo zg_2vtoo&$aZBVjuWjVZM-vkK5H5glv?dCwE)z-vM*UM$zIgg!pyjI8&gZ+t%eOi_Aa%=p{SC%y@(clzZ=h+iJV@Jo=9uke_n zv?;g~I_3rWcG)%0Of&edjRfqbAV_rp1*s0OAe8|W)#JCz;M~bZcoDaF&6c@_IS2eGMw!NyJQSr#eX2+Rj=Y3daZP0K}?IrgGqNiCXdu^IHY-Z zn=vGWCU`3gp7GC?3C?mCHyJ5hoHt@WIE4yTpfJCgwx~hKH8+`8{V=S6coQaA=G{^h zDRAM*Iwy*)trO*4mxW6wta9H%P{=3ed7@RWUV$H#-sxCE8c1tGIb^_eta^+cDhtrF z1+&(R!(BSncioTD6>VD%Liak_`^4)|b-fkF z6xH6~9qg(6?ZpwuW0wV|no$>?JEDo5DQn$vlk{)+tV;>qjQhb5M9Zl~;_q)E@n{ZxBuw#Rf5@mOg=dd@-%`91m}kq=MUgF7aEHfK_PA7*vkj`X$Ed$eYjfY(>k=nD z;a;_x;f}?S)O})^)4Y2meo!Qp$f$wP@27rHgb@Akij<*NJwH_9xh`BlnK88vy@@`y zilq(kHSO550mgcJ>Ax?^u8W7p4YXEupa*=CSKuj_(hx74o)ZME+9#Pgsdzg3S96fY z@=YBc%XOz-m5AXePKP_(5Dwg%7JPJz9m zH=;zs?gps6lsrV`dv0jNvN&V6uEiP&o zHweRuY*)gEX~1|rFZkB2n0D?oq&-y%P|reu+0<9%HA63YfJH^7^FYR%q3AMvD1{R# zadc2Fnx9uZQ0vA=3yQ;&XbJ9-HYKgUbJD)76`z7oG-7>K8mWxDk{9TE$;{kuH@_B> z3i{T6@>+^aw-s$ynf4Q)f7+(?%TTTQweAt;<+)b4Ur<-5Q@%+^N@}#g4uNTwlyh(1KJZn4f|hzSls7_Sk1S z`!6Fi+1<(IdmvC~9*S+;j;w@dZ=nHpxl^Xl+^u`|$IXlr&5X->9h`yR$U+55U5VU0 zS#P+%b8uLwN2#S%inp-TI(K(SUtE`e z!;ysCk}g5` zZ|)q1I4&ZrK*x}icrbtSj8ENUGRox+73-vG1#w-7v$j#AY!BQLHK3yM-}d8|Poh%F zwOQbxtVC;4e3aG3IHVaDH)u05r19>dLefIKn}JK0$;$I7Z@t7HflQR9(czhk;2|K$ zIM#7}CUG0Nrw{WhfG~c{1+MmmGR1zjdWE)zqnaxq-{H+|H znmNMjXBtyMZ3?Pfv^8_ER%}xVnurYCP^vh^wqoaxoYOkREN=<|UWG(;VZ}BxLjE?p zi6cPcV%@IO&B4LTz5A`dF0a*_6o<7vpCvo4(C@KIZLQmYWE;BQg1r$bKr%!Eo-*Y@ zH^*r{bW&P8YmCGSt8O?3ZsI=Zl(a7Kn8pngG2Xj&1X133!uE_$uxn9QPxuB!Q!~AP zb#s&3wLFYsFw^AZ5hxDoLCuc~*&4>R8@*u0%Y!9u1XBqe6seOc*N8}lH9Kzd(bkr@ zHR`x3mX2b<0y)_7BVqSY?9a&Ysm{a4-2vsQbKn1Sqy6v%NuUqID&%+`s5NJ&JX^;p zCCN>VpFZwnoxNe~E=58lZ4eo08ZCHZD^uH3InDV^q6J$0!(UHI75>IQZ7xswe2vLf z@i;U`+h0OTXs5SNpD02JWb>HN@kPy19f%XU1rPeV@$s$-H?wc8#F4OZlU#Ag8CMj` z%X<|C)r(wpsUWCERYBu5qPn1S3{lgujdD;`(8V?|$B9M1XqtVgHG*f=PrEVStQu6o zy+jC{+2avEi$F9edm|tNW6RxNN4uv4x5w-o4zo$Vrz&{$!t6tR=uZd#( zp8)9iLM(AWZ9xGS)Q`G>r}vbT=;|Or#Va}l%VnmHp_{j8T2=xWz=rkJT5MRbCl#Ugs+EFh+j(-K!}kst%(_ zUO_a5MA5E^{dwr!fd`V()I!0vw6`CjTaEJwJ6(e08)YtWlJB*vuC&6K{q6v%O%So0QZsO=ahS(B-vvjvDM`LS<>O6$cTg z65F=B;C|S?aj(%yKn!``m7N@|RvR_l6|4+s5JC~278yKDQ=tpaOTwtD9Z7UyB^YOk zcbNmXf-P4I?0H%clZGIEz&Qvin0SBB>B5)_(w!ARr}a1Do7Z5^J>)OAmXz}znjB55 z9`MorsCy!6Jr3Uydbr8S@hW&oo_4$IBD8LHYO(Cz-R5k*c3tQn)&?xABg%qWXMP$~ zXsxlEY`rX6ciW2#lyoBuvMm8N)ge-0`Kd7afkSY~wPN4upY2_O3?O#8Nr|1NURC))1&}iB^Y?gXUB#Nt4r#S% zcdlh^nUuCCm9IjjW;PX(*N2oIT*(h&AqI{C?S5TnE7^MS!r4uJyRBqfy2)0uhx9+l zMJuKnE~Dqg4kz$7SO4k%O_zPs z{T;or{5C(gMh)lIsNuX|)KGE`&?XP^#P&PjSmQh z!7!i+04ZkinIsMX8`C1gW}ALieufR}k1#vX2Dmm{>nN)}B!*4)q#a!q=(nQEhfQ{B zQ%LT1!w%Qju`yn!JxXT75V?c6u@qg$sFaB$!e^GbOBzT_>A5pon8JmTv zyUWYfEJ}Mmn}D6_$kJbu0W(v8AX0!e`meS`p?gXUd#9u$@Uc0XoX?tA2Ao#DOPaMm5A>aSuRwW5Qaqy zbAJt2yg0|P#QOJPHTHg0av#5V0X|}`TGEocfl)2+9V|Lnuwd=j`Loyu#ZD;X4h&4v zHnQ`ArBH?8T9F4y^n!ElRC+dWF}+zqrFMC_FiQMPbvQ**<1qev^-X5Hg9PhIZxZhg zB#dUDcl}jhkzMW0f*clyCOKPC(4D~FzwnM$*DDMiWfY^DpwR!%-nTZlbsUL)=dXa^ zQY{c4!lV@E?&|t@3nC$j6^hg)AS1XjKiPTYI?+3c=%@mdTeJ_iY@Dw9R+DI|v!MVRTf-sPn2I{9W8q`q* zlI-CYx>}~_x^A4C54RGb3!Lkc(D&fY;q&rGP??>*o1-)2yM{gDC30=1&USi*magt07J{P5-NJ4w z1V0KvZh0i*`1jZj(~RT3HmERW-tCO849F2*(N0CUshg-Xely#Lu=UjZoEj>;$}XaD?D^6G6(YBeD=DCl0&wG7@a11!2Kmra8nwb}~UT?oim_>)9*tRN6q5~by#q0SS zdkS-z9xF$$aZdeHok^7kkb$7-q16@q|Nm#yzs4EmCLi~~r@}(92qYv#$UOlUSAVST zJ2IPdk4kli6ouP}ivOTic1;Y>&??Z|o=I@_IOs>QgLcG$bP>odgOF`EIJ;{sX;Wyj zmKiO&0{?*Lg0rY)TL^%%z|_{LO5OAzZ#F<1V6ip=@)LAD%Js{L*P25U1CQ?^d0d$p6xqTfkb)cvTd{7~MU+2ycwrn))cfX|$qT%;AQ_$AgQy zd^SD3Y+HlG<73Nn-vs^UZBR$q?k2q7tOJQoRyVeB<)Lmyy!w_DA~37?qf#(`@bnJyJ0 zq$Wz8+%Rq$e8f6z#KM{TJW}0}8p+PW=m(_{M*Or|H#G$=Ag($eH74vtslPsDuQ&h= zW<<8ih#G<2VZsN_(_}Qg`>XFD+$e?Ad&K6|=t>-XwJffd_-l;e1oAMZlx(kV7JC}9 zvm82x?Qy@8R1SgAtqe%22lJf99i7X_^z6t{OtBOFn}q1pR~I>F@MrBs zGk}oy=&I&BH;GhFls>;(v0j_D-K`TVR$n&eW)hZ?L;WPTCK>Vd1sUJo=WBQMsGX&1 z3bqmpi^<||sJOnR*azEjXtd!X#vA?@71&uqKW@lwt_8;ds%1ywHRAZHl&4RAG-CGTPmuz+HxP{jt?S%d$rk9Zgk-T331MOAY1U@ytPzPTCdxrm!uT$eb7W;dcmlQoNc2&>!dRdXiE5q*m!{*XF(Z zk)FDM!>rXKz$^yQmGmfWhwx_vp~H~-SA;ErR&J8N&fH+N)b!Mve&|@C0YBbw^13Q) z3Wf~)78l_TFC~3W1bO?%wI3XrQ~3$w3ZBM>Mjb# z!pkW`D6S`E;L2!;rYq_yCg*CcHT6S}CNf@C89gj358l9B3hw~TgMTi%vBV@RbE75w zS+yb68uA8PlRBJo6ErAoT}LyUV+swU6ZRuORgPzWI{q;In&a7rcXa(=Si0HKYz?DO zsmZVpe#@4JksIZVEi!EYfCcd2=c&jd8ZMfgg#;HgHO(0vZLroMuy`E-t)UMy71i(e zhl3+jU@7!0I^ry?a2KLTFT~iE)WSI>cm~0Uw4(e~vBc>qa036DKPX|7tHiLtXV!|+ zT<`r9D|vT#)F&6pfBlqiW!Je>$v)>>zlF0+&)xmQVZh{E$h!#M&-;sE$CUO=?85M} zxO18kXv-`Ytrgtx&|#-^m1rGE*=W9KA!u@$pIw6+XLVN zN17|(fl2rDS`80wtd)g61_csHW%jc%bk^mM-)P?}&(vGE3wpPsf$PTgpg9{~da zo@Cd-`tKbjlNl|L!4WK(b+{bjr`If^WX5+S;G#wj1Eay>Qq|8A6~ECu0ow;d>W!DP zv+H*E3r$axp*9G9MLir%S6AoLT7+wiVCnXXb4TUe)CE%&ELNZlVTHs72S#KixMh8^ zCJGdgw4Fk zn&G(`T_%`h*957n`!(m}do^ho>*Elg&bM!O?M`)u;Xo|fGJn;#xU^=-~yd`5; zWv|z%CzlZ25q<7H$<&NpIvkz?8tn`Y21kEw$5e~iUt0x2mNS){eaM8YY|&&dFAj%$ zqrJm}{^R{YyIWMl8ab7#bSz<$ZkweEC;^?ey{H+buQh2B2&-qPGQYYUy+=|eaSPHk zJoMyfNmHe8Lcq1r-cHpVZ+p#wME#csd!wq_4NyOSYJUrUnI{@vF z+hFikG^FHnBLG+YEx(0Fe#;_vt3x;maVTNQ*i|qteHVX@TOL|bgNsHQlE|W@2i~fX zVKH*p3JDK8-7Gz%@K({QSqug7AfwtTTD(MZ$2Iv)(M^#D#8nN{4`Osnxxk_UmLVsP zaHBX0(TgPbF(v6qqW04%xG@J-Y` zvEnL$PDJ4zF(;q5nTd0f%MraiZSlnU2%TQJRj&=;>WHdK$LSGfGBO8{WkBo{=A;*S zknvfIr2^-x#T`2;o+&UN*DWw+WIO3q@(E^WJc`Z|ok3rxqsY(x*JTS;(=jo_$lzee z5-F*v)LpY^Nc@Ttw%+h!{BaK4g^-MvOd7*LSwVpJ^1HVp)s;MVGDmGq;-J3hzd9H+ zRTk0?5N$zUL=56r3>d2iqWGGmqM%qZhuA_8e@Q_R*6q!?QqqtH6E2yETAdCV1Z=!3 zY=>CO5sb{G<3msMf}})NGLd@+FTtwhu-j+^yW?|=l62bPxURt1>vCChulu{DZ<8Jejb5X_QC0Q z_)j=hneWY|W71Z)VF-qJe5g^inDSvb#ZeVEfShfr7g@o?ZbeiWDgqRv((o5|u z$!MHQuR7fyw-UBuzcYKZ?CF&v^b^mnO75zEWmj@oZ~fS)Wzm+gX|2#Oi`lR0X&XX< z>VlJ*`C|w;6b1!7zov{lE+(--CA$}g4m$=tMAAomJHGA&g}TLRqSqLfvk{5n3>TV+ z=P1n9n3&f)Xr!WVa4iGs($nP!WgSK}frCpx%jR;M$|PbO0g5jq7d{_s)XLOTisBF3 zwyyikdoB;dt5F|LJWGc|yVtV~OGMHTW_uvn!W9o+b|~=kj#u7=lbI5ub6E@W_>B@L zqXgF>?;QjXDbOo)^slok;51OR1jDZ>=i$>PFG>GaTaldp`QmDR8H}iaWonD5C!#db zkURm-F+NLT2{y>i&fp*_kr!bNe5le&+-rM9Ypx|cmEGy|VrOx2-O<+ExpnE9*IzyS zr;p)n*n6ZASrW9+(cWV_Yj$aceUWZFqq4DJ^9 zQo;%Vvn*`{??;Rrm5h+<%pJmZ%S2LTq2CeF!4VpErwoNi6WX(bMmnoq67A&sh>sFamf! ztE<{np+2EgSnT1}7U@a3zzcp7&fCtZq-w)JY`;gRW*te81}|2#eA5;b zGZAZ%&oe)Z{R8?FSP{qQ4wgn}=Q@0Px_Xc-oWz@+zuGdNzgvZ-&7u1sI(4;b+aF1J zd^wR*C{65m&yV(1B|;*4s&84xE=gv2VY~gaqPZ|q zie;;Rojrq1`8`8lpZ%Vp?;GzHXIPcoG4(I+U{CFOqQ-0CGDTV-r>QARMTdBy6>h!$ zmNlTv;{sJJ7U2v$n%|BBqO5`QyOCGn9Lh97V|Fq=%E zp}jeHO8{+!AnzlDFSLIXzmHD~D;`wpmjg|Iah(C^_IP@?Afs1KbAPOQPOL6xXJ?|k z*LsD&31sMz^n0ERpZ8i2!KvjaJnz5eJiDi)R@>Y{`?v2LGWq!fw-tY4Gu=b z-s9Qw@_khST$ZYQ-jrCZ$9OT5ua6*o2b}-vD`&~qo6(|lIp)kOmbQo6DdCzB(}Bq24j!0} z3E-g#`XkTqTm*dWPdiby@HrV(l?#pcin;a+Cyvk3Z`@rSnZAq;U%VLX-UHtV?`b1W z*oXEiBY@DZdgZVc*N9mq;se5U-L82*99~@>p7tTC#0}q15O4;4j-9r~(8f*PG3-%l zCm>%O7GT|!J8j*4;ELw$Vm19you?VxX}52^5!15EX(XzylUtgDwaPWorl{X4#d;qW zTBXUM>oY5#^@P6959GOVHEmKg%Bn#U0Vx23-bH?S7XsLN&2HJ=SRY-1WEBNM1rP$M z>mP!&S7fW*bSx?a?sj8MT^bdjfS>ht3-}6`*CpPWL_7{O|D(3u!38{fScYeJ@d&U1 zwb}W(dlkSszi`2+-S(JFFU}U%#iF~E9u(zPNeRbyK<9@4OuI#}T~U4CE7kX(>H4+) zxWtK#JON2Pa@E@0{81fs>B!i*n;oZI8JQnk=HXDgg*~A=}5e_XE z<$&L`B=OX<%;E-LLR=XfX}R4R-g2T39Tu}sXmvA$^B$FQH;4xu_a!A~@}WxR?jVT( z3Lef5suT10)Sg|_wB|O!0|K{bdrmIUf_8-0ZCkPo^f0LxHdKW?tybs$q)X=zoI#K1 z#8kGx{Z;4ws+$3FioY^CLjRr-j_@VUbDzb7&5BUR=Z@@ zA}ojFmWSzr!U(TRvz{X(ly$O*{k@+CM}eX}Jn0X?^|rf#6P5eD?+6Lo9G$PhsN$Kf;9+7Qy@7iroI^brQ+RE(T?GL5T`zP;44eNQ;Q9j zNrTD@i%YkK{n$r%Dgx48UHCN`oh?`%=TqEq7$#rM3q{=mrx20kx%!1S4?BV5cSTw? ztk&QegUbl9f!gGJ$|H@5TOOO?o8ygGK|6gie^bW$Cdf=HWQV26yR7ndxGHmZO2pqW z%-|9Q0X;>TQ0OXH*6xKaQpwUq-?#&i239h{7sS-fsC4ZVOYg1Zw9@kj(!f;=YEOO9 zNzVL8y0LD~{zAmhW`YzsgRgjUw2+w^NvfR~>9cfJ(5>FrnHPcBIiP&I7%yp5)?Wm8 z17f;`6Yoyxat*r2)lup~Z+A;@?5!RP{7DC*Zg4h=R+Cn7y-J*ty18*}8VBsEe;kSt z=v{~JVRZ8Bv`?*~FW(9&HByzQC%W~Ax@MN%>-;K4?)41l453nk1!S3kUMf0qWm=0m z>)+{CL6709_hKi;gdj6&QWTAo_v^K9`sP&hB>{D zZU5p^de#aezwSmaJ`yUQ6i6?y=ZW_Kt4M5#e=c~$F8hlK$JW=3@akQwFF?Q%wAcS?nS|IQW;`77|fb$eL0rZ1<$aaEdB4umh z)&~H)ODxes*NwxPM!9XG4f29=bD%*JaQAM$%4YBk#t zaYi=u!V~??ZwvhrF^P;xNEtzk9rFGuX&u)lxp8mWF1G{_dn&0TKcm$um+Ga#(5sXPEL-XXl@1snKSDMyC}liO&cNoD5= zSH2@#)Byj)ZogGopP^cHBz6xD1ue-ZSrZ7px6a9V{_Xr5|^bOG9 zCeinW*0DCh&Q{g(3>*gM0C8}gNQq2IoLTB_Q9C*1wHK#HuLs%*E1ly5qcTU`tbAaV zTWPGA_8qG}H2pUvs!W5M-`4(F7Gip^X?T!XU?CnmJF@$ARe^2E>sErH1}JQ-Zce1m zo<@vw`igR7V3Oe5t?>2lcciG`*=q$lD0Kq|sLP1^cSYTsA+DY2*y>u3dsR<)*!fkb zJTBs{hTpoS`+4vs_VZ3)njUWI#B7w!LWS+QJMh2Yxby_C8Em1LvVs$riv+<8j{e}x zufBFHv!h8X4Q?bp3Ia>B!tFZiCh7bpG`>|Ok0|s8q-`X{EGL0Od8-!Q13U7}ec@D7qq!%LOjwkBzt*6Q4MgyT52b%b<^r-2%|3Ql6e)Qb{3NA5*?&!TgVG)>2dy6fb(iO{ociLw)nx9p>MlYSD}Ie zX;Ng=ulD(2cEKj6@2}p4T=I34w89E`)PUO|UO{PwzVOKvuHP=H+#diwMkfTcv{>Lv z=L-xVU}iC&NR^!@5mYx*G#TzZ8|=Q^AM6(A3gdI2zsAwx>4J5P({PZ(z|t9Vq-Ob4 z=Pw4=Q{H#QqrwdVNslyt6 z-W8-p|8mIGNg-2e<=4WAyFfxwU)U+?RGC*ZPT{{8Dw;#A0v&-J6zCq>kM4&3at;d6 zCOF6t{;K0DN4&F`S_r!+(pk_N=?i#_U+4vuwZ4gsFhPqmPU|+{3CB8@@jes}CNb=x zFO$nayU~;r7kYvEw7gD(^<0yVk5Q)`Drm=qcMLo{r(!JUXOdaDc;=dM*fEBJna#)7 z0Xy)n=P~Bm-Qe<$o(vQi6kh~;^OLiy$uySzIM(g$xpl5DcLe%`z~bUY4o(D6{`0L? z=g$EeVcd@MC$qt6TdF=BS+^{fk-bY!R~enY(fmpdfKumplP3bqBp}5D*k-@$wwy+l3go_TB$0vy&{Nt*!8CQtUX<@zJJ7u ztr2NXFvXQhiBXR z=T&gLhQ}4ayQ4&^gFA7`ZHCo$+*XHrob;m`rMQN5gEregIv8A;x(lS)CjD=5fw1um zbhs6TSb8`8I6L_rhS#~FGqCPm$iTkF)t544)ybB>-=5Tpi_z{);;rP=tGGVLwkS*wgd3<$*6xo@l!R zlEAF-AdZAjg*8m6;#;Lu}%JFbOShrzKoCg=u8<}@9d&?C1NaMbnpDI!N@_dBH~?m8#I6qBom;=Vb6A7|{;RvWpc^Pv zKM4&4zfVB&F6_4_izVZq?)}@&M%@ECeOP@VNF(UQ<8?5!Lqx->~xDmq-+D{;Nice+*6nWaaTRrR0r ziXZ#xY%Jb@xM$MKy>{8=a2^qgdm@n)XnKZuCEh!6S770K(o39pi5xfb;3dzLvx!(` z70uK{(VycI`Q%QC8`c+lJAZ!p!ujS3Jwg1uBk5?=mxspgk~5n-lR$F*N#=j}k2VRH z3wkKzil&V|r#sbI&>Q)qn%u_mO^l0i@1!mc?-4e^aPi#|<^+xtX?F%78f!`^V~tpY zqCP|Gpz{az)5qH{?Ah=T5XAkczGkQ4>~$kA zCeHx9Lc8flPp-hjB70mk9#qv-T%D+@1Ej0v>G))dwCl>cs4WAf7`-NF;ny>OuQ%i* zB7FDz2fM%31beAz;uS=%Ir`0zieCLKS62>4P-$^)^x{;{*|x1{jsip{6%gOb!d*t0 zWw$a~k8vHM*kh2wdV9BvLLN@TOvQ%~qpckAS`9I*TlNp$}|| zaMzti|ETx%?6pilc#AFcKB^d**5kylm5)XA2u?gaEOqibADtqaK0&jF@c{N)h z1&U!f{&&gP0-v;W+}YP^BhYqk4qCi;9=3FRG2zm>P2gy_+45uw*D}x%q=|dR$8$?I z7#`F2TEmO!$?O!uaI}6tJQy7J_m0q6Cpf=WFGru*=-*oLS6u;SqDJG@FAf{;d9Ph?Jpe$y8qXphAaEVte^qJT;i9J%jMG~u88M5teS5$Nmh?G}XbEzg>389x0 z{&fCDFRT91^EJ@v#`fT#Cn|U_;DU(R(AZj zvg5~L#{mz!|D&`J8)oplt38I)*{QOvlvk`i5mJt*8^2Na5Bs~MSzlt~dUIDvnlv|R zQjyNGzH?UsQ{ba*CVm>#C77nl6Dq&860v)Wr4*M%!?=r?wtISn-@b2o%!kuCIDZRI z6nfyNKyuMPVwikz*8Fzn0%4q2=*2M$OdpoWJP*3HJ1F6{)OiKP8BrIYSm`q5J2c2( z9n!=-MJlvwcsaFmMYdpy1<`p8F&;jQXJ<~IzrnnM1A6Fl5cmq>M#8Yl@)vh4g=!(u zSSJyBnVf->1dW$WPavhku>hWw>FBXm@kDq&q~nO$5cr#T%T zY*1&PVn^K?nVnsN3EW)o#PX3pw9tu=pGN+2MQ1vGE9!XEclaOFeqghXJ74jX)tv zqa!&^gycxyH7E7Ai^wa55w^BRuba5l;)^UL1ysw_nK#HaE`?n4+rAK@t{ZyTPW5(qjBhr z10r=CqIJn_!+*LdZMlIn*DK+UnB#gMfj7W!>BiSv^FQcz#IhJ#+*2sDU4gpu&Eb+t8Vr zd7p-l)2!H3^NYd{)GBQh{Cjk}@r7-u7VB8ARL5X$eA2Jy!=f>X;Mo$s7Ykdo?D=%b~+6V*Ob=m=Gedn&}URmC(JsSx2No8Pe0n80!Fucwo8*DjI0w4D%8 zM|^$_;mMi@+9>vxMKo8FCxHv0#;vJN6tMBf|iG7lqz{JP>qy4xM)Kq5AE3Ncyz3QPsRhEKaCFeyUkTTwB1vk5&%l;eab;Kk3|5_gZ;#wYkRq9}_ zgwi$LSjj_nPMwm+#25QlR`U3#7V;-!*%jpczu!Uh-%VyO68l(O|NCn8eC0L$@2J)z z>sqIIA&(GG{N3si^76n5@+$)7z;9iG&xscbfbAsEj;c;QVE#GcrIm&;3u6!!M0+TwCF{U2(l9nMFh1>>$Qn0f;6v)3~SavM1<^C6Nf+mK#0 z$UrL#Uz540KZSTdaLEyDPcSkgaW(+>usA+qSL8(U@U+vmS9rT?+mu%;5MtmT?)@x0 z+g6Z3-m{CP<0v~=G=F)pHzHP>7*T6|7m9}#5>v6hS~LZ#>|(!*ODrxF#|wANy*LI} zXvFRN*Kk(Fb#La?V6?oJ5Nr_UYU0~*jz4kdxg`x3%<(`A*ja|PiTxfI(HRH=;Uw=N zTo1z%4_Kff?h)Ks0h+9W+o3btNzJTrj9LhohMqp~SV+_}PE31I$hef!$$>9Zo&D{$ zW%I@W89az22+<_jN+ARDt~X&Rk;_Z)oyS7z7Cb6P#5#DR9@Eae*Lw9HrU3Ex;)*!B zd=~v@YxnB>g2MOBFX=4D;fn&*uZ zT!yK0INC5tFv{b#88(P8c6N(bfGHH@CYdGy^eX7Cit-i6JOZmpPa*7BfrdZp5D1yV zP(p4XHr1=(rIrUZzFpi7QZQl8Ja^rZc+aM6!9{ZQC3Og5iih9-hvTSn#OSi;kX^dI zE7~bi%@I2Ivj6ZLZPQn2aetR55z^A5zPU_>8B1UNIJmKCp*eoZRY)XQ6fvJpCo4DQ zD(jF>-0`3?gt|Vh&h_-Nd(VVvHo9l0;#8UgKT@n1Ezrq_ z=u|`@Ye|zK8OAoLUg2aFc~$1O$p&wtuCbYJiKi$LAVa4}s&x|)x>Me8MX7=uLmBV4 z@O1`~S@IE83Sw3@6X|NJ%fe1)rHql*Tti<<{$<%^*qC!ZSl19%PPCI!MG?m*;ViMA zL!72)9GL;7N}(jG<}^#b2mw<*xC1+^$PaRLvsIxJONQM{S4Jg~a-N3T2QHYJIal3b zsxmZGs1gxF5Rk-2T@(SM6m9anZvcl}3NSSeA}!WT9e_=1o*uFw-!*J+^bzn%&hTz# z=I`!wda<*(@IxbJ3KpO?97HO2qn5Od9{%HRGNX-LR>C+{p$h!9YGdWoM*CU z(oqZ&UvXNPYhJ8o`DT!;yUF9*k<;-QS&VQ6ii}B@RZu~3$R#{-U?Xn(#0yZDm`>n< zJ3jj;e7rP&F12S&Y%En`kvEZnH0HA3A*5-(a8pQ?RPsG6Rx?MNBA)*QxGH=^2el(m zfxPnzmhjq=rE?wCA3U^7W8DA`V!t2_4!ddDakpb>j5^*G5Q~oehxbX)NWkbY%guhP z&Zh6g$|TJ2S{AADJwkbWwR9V?XB?O=L=)c&NaX^BL~T}q9p)TK-HtVbxEO;1^dt{U z9`E4Y|AMka0Uwa}$1UdOV`?kFbFTGrPI=C@XAQ=5V~rvp46hvD5yKY{ySYRje+z+~ z>Lqz8-S?Tu>D<(X^i3SVBdJ3sPnJaZdH47$6}q@DM6aF2`P)UuiOqr*s$<$uCyyYq z#OzGC<)oWTYFP}oGDl<->#DGU9Y|~J+WtslRUIq7@=g|4XUsT<8wj{K-YkoFJtsIU zf@URNx2)DJF?xUoX^DNWIs*ep3(dt61&p;A=Q_=(n_y0r`cGupJia6j z=NTI)<{b9WRloFZ&1``t>J;tPLx$aQX!X&g1VYaSM=3PdFeLC zZ&5`e*siKU%+X2uEz6->?B#-W>8^x&4bBqRluToIqTKQ@xk11h2E%KzxQ>ud5szDCrDtdU zqK!395z?RK}wb?bORgXhQ>No=3D-m_mOvsOC3HjBSTd=MDNr3C;^JXI+WC>N*< z%A_eJl7(7vfaSTTxa~KV4tVZOC1XCtl866lx5)aJskugi)~)RE*wZ!OKO`oIh^N!^ z$X3gH+M9x+JN<*5!T!EGvg0sbabU6dJl*a#VED0BZGkK+7++Zm!Ki~2=}eZ;lBZ#& zD(BZN>V%I*dZ`y<#qweVHdHnJ=oV?(pCyf&9t{;RimT0z`-4d>dR0NrYP~pM z?%1RYbbvUz!E|!ZKb4EbK+zggZVcYUZ+VaTqrA!1dVJVFDp3`Tra&nn(V_w#*X#SM zH-FxEiN(NY{Ej~qx`jseOGT< zA7`L9%*aps!^Hb^$dWnXO~DS^I#_Dznmxi4=M?&#Q$s8DULKZh_#TpnP|?mhY%O5w z%5f9*N5YwsO8>~y!>{BM;+8yxYt6R`cWcyx96p}FEImpp^+9Ot$Y&snxfZ^%-s-6U z>K}9#E~gjMF>wT47Sfvd1l!)CC$wYQ@|C=~y;X7%uZO$kE)$4^WN!b;cx$I;K0ZWN ziL1z*3syNyZp5D_-8;=^K2*{;27OcI7zcG<(4Dc`cTq;4UOQLnZWz@2ctV!_WlZcWSIy1n0Fww* zms#silJI&L%*swca{$H6cKb~z9V#5oJ^#v|k;Ztops7ERCV`y^(utLwP<)t6?uc{U z7S&p~=0+df;lQo~=(B-kF@sq3Q`scP|>vR&( zVNU8Cg#l(^yNLxul{#58>zOSYJU>Qg3yY==w%$!oWwb0obG$~0$rLs$FMFfu^vfMj zW`s<4H=6}JkRqbdd`58tQ!~Ib%53XkO6$&3&kFJK3$!Y=+*IV<&kAy&i<9H zFQGjrv!cf6fS_OMV6qwM;NHvPfRM}-)Qkrpvp9qc zYI1cpJp|DM4~%e2=cB4yS0e7WN2(Pit&W%H)s1q2wc5N~GKF6SsuWqHT_ZmFqpd2-JKeO) z^)*=GN3~f}DnN9aaiZ|wv{LS%OZe`+unm*_uxYlzLxv0jRr5$a{0gV2*J8aR3KS(C zdhs*}x@K>CVG^2!dJVNmbtznSULhDU#x>J%%BP>mre_-?1wB^CB@-I-10&;H=Z`!u zYooOL5rKBW0t&f!1@v+3ome{~Vpg$shU5hvgfAofqtSYO4P)=j2yiL0(P*@+YXsLH zJ}#*yJ@Cm^OV}R{C=r|EkdFqVmq!OJFs5s6(*^LmUcG3s z>dk$0^dOz1CrO|wfK4>ZxQF%Cv|8T!9-p%JfGc`_&RRI2mW57)TIfZ{^No+4W1-FM zZeWB%`On6{)<^BtC#b#Z<|FWlW3?vD_mRk2nqU+6(IORDn4GL-mN|dY-yaUL*8bq> z-r)gikTE8Wer|Uw__RfPlr~iH3YINW+El+FtkE?3xnl-k)H)+qDo$+Buq&qtSJo32 zFmGg|3==HR?Wd8ZEIKyIG){}?8HaZvL;EWucr(|jL=Fxw zuTFjm$YSgIUy?eGFlw7rM@?u_R9n>w`}h^fnjcvZ=d1HF}=n z_ka<&P}JpSqA<3hg?`Mx|HGenVm0Z9?JZ1dwAb!*I_bu~KM_r};>>0WVeN|t^gv)c zV+QM71d1i;$4cS2d^U~Z5y@QwFkMhtS{4@@&uB=n=G_2FZ19iW?#eWb& z{QHB}!;h9I-1(H8%CabhlX>Eu*M#ndPF%p2RL?P-XV6Hi2jQhE!X5K!_s`E4NI!MF z!SngT9ZZ-D2FD%Np#5cfoqZUeUByx`tb!{>#>eN2*HG@w4_q+qg}0famIqK2R{S2q zZhB-19lixifG=f$3B=M=9=I zO|{}|w;vr|T^>?esJhQ(pI*&Z9xVJSLWQXbs3=*0^3x(s6d|RaQY}Z2Vpk-V9n1YyY^s}h}T2qQ}Yfb`mmsNn?G*=ve>%FX}Xc(GaHIjb6IF^3Dd^G)j#dsjI zbVSr>`IrEX@*YdZ)$do1>}g_TPb)_Dv}$BeD@OLTdSp*4dMq2+)5?(z6C)c|jBHpn zvSG!@hSeh*R`gglvSDguqs8)KI$5mjg}^DrQE5){UXZN9h)i?E@wnd0dWy!P=>^j- z{|XE*wmi3#wtp4YYJa={>XBH~{ke(|3KzSJ@A43b#_TF&9{<p)-iRf=87hsdsVh+?{1H#s75&b$!R|{iKM@H(;uQWWFJk4wR$WUqOh{^=##tu$=ZVD_aPJ^JBI}G*?p0pbyn8z>r%v!jY;cFA| z>S8%tpiJx|Sr4f49^%!;%xid`o2hjCDcT2?S!Ha>SarGBz)IqJ@ziBB6|OymrBKB+ z97qdkbS?|IJp-RQQ{2{1B(tMGGLqwpV&TqkNVgEGS-Fqb-?*RO zZoi4}`rlMFp5Y_HXU`tG~6ot$)iR+t8-{++TI1lMJ>{_usOT0gxH_ z&f&r6=x~3(|9F2ur`fCJ_yP!${)sc7%z`o^4cc9B|6GDKvjBO)n|a5<)^$Q=?XHy5 zfa)pJg5s##Cz{9_p3YgpW_9|qIHf4?0`Oi1$_yzqZo5nCII0s5 zA<(mvPP0T`X0Vs)l0ejc$przqT9Nv~uXC#xEhf0K(}3*KWErYh3mkXJeY}`ooxepJ z1^t!l4>(vlQI_lIh#+P3CfQ)e*s>E%JDuy$GP@NOH6twh@ zQJ#?srNo`={4fI1&f6o`@^|cVt%YMkMgyvv@w*J7eZCOz_ zY0$`QJqJ_q#h)>uqvhFN;s+ZblrvskxHfAylnQaab6aZVq(CSD5-S^Nw`8mbIm~$vVZo3fTd#KDo# z*p%z(3w`5$Di`CUvFY)%Z|MOjLbvgcIgu#y61=X`E~6m?#4R1j2!czwKlu*MIwEm< zt$ldQ_$+>zwU}2mw?uZ&1#q&I<(dy2^V(?i&S6ZwSo@iC(d2Y!2=k*i<^dOTT#Xcrq}wh|8?jK- zcDx9&HZRtQRrmG1NY5_h>*4k&pC4aHyzIIj3u@XfXF)O(?;9hRMwob{k-M_`2A~2= zv)fKouXSrX>SJZ7??0bkydN!q2JeK~61~!2hu()-#RVH}AG|1O>RrMq+Pe4vlnHdp zzj2BFv=s@Shtb+UAVvxPL>}hW0o6hfc8rSMwm+9f4_F9ju)KDd;)fP)1dW7je9IY< zA4Xs@%$tLxicKde9D5ir`P!+e+bs#dTUM<$^m9q9 z>TV2Q$ApRe6KaTdD}n*rvo7!^v__+@sEOt6ckJ=LjpXf7*DPAXh2I^oY7i}L%~g#f ztu=slDUK-Y85A#6fa z^`zi3D2kQlKpjN%NciTFpwH~B3~#P?sOPLup$`iT^30xY=x(CNQ9HFjx9Ny&!mE1< z7dA4JC?&tzav!&*QX#lfg8}T)eFS$5zIi(VEv%9o)xJq#W%_z^kFE55Xs1snEWRLD z@5%l9+i8nzXOWqZ?B9l44~asI4ve8HDQaavvITiY56X2AKU}tE8G2Qb7T*x(Ga|}Vmb@JZz zQDFRdgFTJ>Xn36RC^1l^VKmJaTdCw=3^gEv7)@hW$eM-9a_GQuGknp1buic!xq=7E z8VJkF|By0qxN+HflkPMqsF_jdIdew;@WIh*W6+v$6oremqE*5!?3aU zfDg@2+jcfEw`4YWGMw9kRLM=-yaC0lj`o8{7O*-?*9=?_yVGX;*;8rxR- zsgg$Aa7#NV(_^^HEj?mzxxhzlCdXNu3fOE~P z^)P>Yjj37dk2yp`SbXfiMK{|?cyF-HM-|(=*;Xgy9+e^YsA6I3kh^~dk9hL*(;2&; zNmQqjxi7@h=%&bB(obV_PPsnNQ73&A==7w(E*st5Z3AkqHDrHEjkW{T=tiNNgE3fT z^I*47Hucp9_4ZEaz#(j6yS9m^aK_Io+jvmh#*t&w=r&Pm`XygWc7E=)bn?KUv;T5* zC>F5QLoC9z)krK{vruqYUTW_iJ$njh&1!LL9a+pxFxAx{A zzyUPO^36AwYodC0`C>QSUgfaf;r{YqR*j*!!^($uXIpIV;HSOe9vCXDyT=@CsZEA~ zmH4vq^P8@`_Exh1Hv(<#&E~4#YPXr~0H&x*Fhsq@ZjcsgHiMSB@m?qc^e(r80$DMD z#6~C^+THDg=g%Q9V}F0`Z6J`<>;j$HWYzWefCsh-SnKZqseMNqVAO}GX`P+-(8u&F zd%jqLxdpo7My6=?7^WvP=q47oLN1XnWHytHBzV(%H`Vi&v0;`0tIUaBe_oCdg+GP z2ob(jvLgayZKbhvLjiPqqNJ=t0UK99RoyA50*9}1&FFQ3MzI}D1vmF?HlSkT1J{a= zj6rR=@{BKGBGfO*9}oIqTG}IB6M{-jc&<_7PP6$-3RE3p<<*Wy{ewRb zj*kCo)H^|}1eV_OlWWmdq=KV`OLoZ3*i2)P+fM?FP8m@;2!F=iWv+V0W6x|WWWp_* zg^j{J^2HZ`%`#iSCi|1uCi;^<3L8==gb-38o23Wv4bBkV&i5xkbMS_RAB#C7irVjo z!_A`cM7O^ge>Y2xvRkLvze6t2*++{Y|2;y?q+n$Iriv7Wa|#1{=?af!NVskR1=5_> zi0+Hv;xVh|&8Om=Xgj9Ms3|vzsSHAQn=!Q`3^;u9#Q7g|xa8GIlJ9pNpnbfT;s z7-53`(l}DyKbI+mqW&qgvp+1m1!Ecz!Vs=v640cjD8TJvsZ#pS7AhhCQq-BPmLSfe z?Dc6gnxQ>tg|HZZ6v!o4#4S2~@O08ov)w~VECesza)J)i^af;D#R}IDV2!Y(+u&vA z_8GPl9<-@rwo>kwK)C40Eg)OBqJTYzZ$j}Uz)2E(1)#nRW%j$#WVEus8%dU;Z33JX zT87cV0AfI$zaI=~nq}rTuO(S1l_(Z80X9k1^ol7Hkt>w5KDE+p51HLku}uQPBpS_{ zbP0l$AWPP>Hw;fVdqyT{hA1ONGQ>p+6oWZQ*IWZjF6dfTQ42;j3iQ1f9ZzXLUx0Zk z`?iYj+$9!`FI}71!)9{V79KbczTZxi!%lMF6BeZW-nmQb^`DpBvO!acYc|ebhyeqrEnV43;G0od=ud9`v_=}b4i`>L8)eV-!e?|sKl&d?@&}TW=rsn z&>QaU4-R$))|o?5E)VtnYq)#`4XXJ$*octM40j`ddfoH88WHT0H(l#sk(-{^gx1N& z-(q<;Z$I7CX|${L9nlyC3?ss=2_H}EE{dG!)ze7BLQ@d9Z6Sa%STu-Z{l)1iS(Sr1 z`^ggg>fc-I>hlMVGjHvlltk9pUd+l!8>r%lI*^j+B(w#b(;4~-|9QpBg*BA8c zK%jIqQ|jmsdf2-UaXHph+9i!r_;s>JA~%c%Zre*Yk<9%m(R3ooF?kcE_qf{dzploU z-1bman(gAkjtxViPzjpj4%~5Td+G$0EI{4HTdvtsG$cxzHCFMQHPwPSbz8e)5jMhp z60=;lFdL=wS+T$sE4#*~)7EIuO*YYAK`Agfa+5a0;WG1UO>Be%Z?g@f zFY6k-pTS+9 zcq!C0vf*Y*Z`F-v%8v6|I1|*bwg?aktHW zweS8;$(!6ML?gv_5&yki^eG(V?0g3HBGEYU+-M5l?{UvI8}KawtLL5hzyjI{Fv^@e z__jt1up2iE$J*`QX#Dl-6GVDj8-0WE6KrVnsKY-Y-6qHEPKG-)iim{$KVQtl>ZD(ATJ;i+s!3 z`ttx7ga318YmF*`Nw=Ec{@&5!!=r=2|DWKBt-4MPLf2a@3A)W{cJnk{5Vy$92ZBJ{ z8n=#)_I~BJqq z9H`T8t(iHpssZ`S?-(I{rG;!h{U~JHSiQh8eF#2FWKzO8il@vqAj5uG z6-HueZEpTZtdD?rbTD`@yKBEn25CaK0?vV>ZaGNQz``_$30l?DQ3xB;sO*lX@F?*^ z^_(Ned$xP6zQ>qkU8Bb#E9$S?V@!^&(c_Ep@|S|wz4{(Q!m)9+nC4mo(9!tQ>;{0w zbjw;j{xSt=X2)&OwK^_b=xg-c7q{u_4mP^6n)T?}cj&?qrnqlec;we{ik=;o=68iEIz6up@$2jQ9YqHc*o3K!l-KZrd@x}7c?bUXQiXx}vhh&bxG>)MhRjz4O~ zq`Y!acdQ#C`euEMa&rLt@#2$FEv*z^6cka790Moj#tZe?!1H$TDKAM!_Uq4w2ZQ4m zhx>nhdU$Y5;h8YVnw>Hb7qxJJEv*SZKDD!7f78*Ox%SV%L+9mt^}p_tKh7pDwS@N_ zvY)xA^3o~B(qsxz1@XuDay);~`AhF}_LttLZoTy0lNaE*^ornzp+5qs(Zv$}qy3;T zG$4o|G*2d(P7?GM<@9e~L)5-sKjmlNJ;<)}&5z$bz_bS@O_Cl`(q@qMN1MiVIUs}y z2k{m$`YptN@+|BJM+@}W^I*4g;eaxHdf@0kupIpd$tj(f_J}8r)!clW%x9B#lGg|} zl{8HOxJmY2udgK5Jz~NXL(LGJZ@bYhj4Rw^H0fC8ME& zG*O=zabGHNCojERHaX##b(5K92hRT#bIqXS#iTXon=9RD#<^-R=bThB>zvta-qTP> zN`^_9t}o2$VBMM2!+elF%m>X6^TCY|b92VR5O_2cs`e51S45FHPzR^W1$cfofu|$_ z%-hVL$WoJFg#)&mF8Qq##aT5 zv*~H+ss=Fld$ZfPXfWC|%y(R|Zn#TS3~fH%=EMEy@pCPpZ&6Ridgo+Ov48BL_o=Y| zDEYd6tq_=Gbx6Mcwn6oWP<^vl{b9rEe@s{ZV*+@UG2b~^IQYHELJDM2N&{lj zou&%+rr<3|1A0jNfu6FKA=^s}ZMVA3(c;qizaahigf|c$yc2669fN;+P!*g-ZSlv` ztNBWQA1zLPfq3`&`4}S7xsTCe3Gq)C?wjH)o=pqi{eB_kX(448r|cZXDZ{?UA~jrP z6r#~mTtkmPWX4M6QiiKmBaq9FaXt#u&(m(^$p8Fy?0%YgbH6wne}yw?Ke&v1*ctXe zxd{D?WQ`Zw%W zEI;hW+Z2me?<$7|8R*kpxPYeo+c<606fX&Ms=0tz8sU1rdOro_SO2|q8%z?;{Vs}9 zXdlICPZMdwV%jiK_wn;$8tpnsy98`9V7!&Rf2DTPMQv1LAz#1YQbA30^2J3IN&?kn z`qAI!Vhi9Rv1g%0ch~G>qHdhUH?AWq1iL)@ru;~O86X6z%cW!HW4@h9mXCsdK+EY0 zzW(^;b^8Q(L6>cfg^uClq5>G0r44_9+;}&I`0DL9Cg?eg{8MH5@h1rM9oHHq;LvJF z%HxzckdAp6Lz--%e})%luvpYg*1nI1;6YikZwTtW{wDZzq2GZ{dbe0!2e42m8elMR zmXwrT=qgC8ZugyYfQ+6d^vFr-V1v?C#8U zzhngV>@~k7S0HQJ-*AoohNi#a4f_LkV|&NLXL~Q2k8)^6IlNh~kDCt?E+F&!X5H-^ zz1$lP8g~izoB4gSE)Pe~21m{3^r@NCr`jVNO*Oj%?mn%y#tFmh;0R*69;3AGjraWM z@aV;0R}@!-NZ>!sw*93Lsm*qNU275&iY|83VymN<4@_02GuiTqtFG^qFF_rkx3`L? zEEJ4;D$p2p?HNHI2U;^0ZV!u@(iRhmdil7M-6NHpt31#4#R4xl{|?EioelT$&=xoB zJHuTZ8~$k_=k`YMijY;^2uNs;%p1|uz#foMUa$qCyx_>$h{$`pS;M^W?AVCNe0z8* zsXs0!^^+S$ab+&%x*DhRGK@nO7OTH(r~!DjZeA`n;g5?K*07yn(9VjZsot=y$F`}r zV3Y?W`s`%gR-$W$$2Y&6ZLZ$WF4k?#9_Q5335Bv;w;6LpQ!5MjxeS7?L2?-~q#|#h z;#YP8mc+!ZsT1mR6D_Lcf^DL!?AIV2I*0S=&7+ny*7{o;4#2iC^Q2m_SF{Uik+MEs zm`nwUZD}Y!C!Z&+z==yxy=B$xieokYT7qgh{Vkg{AAJ|OriX9;J_Y+V{=?4O>8B&o z_>&Cjfu}Y3xsj#V#QEQt92R^z&M>D zo`-PG(SZi|h)F?eeV|l#B&)~xKz+^5?u9ni6@p=S{tLg;Ygv6A#VMx&Z2+zE0)}3A zlx@H2P&g~L2;`rkzdy;2G{QJF|CRs#<|kJ&(oAc^G1{A-oLx<(sEfB^_eH{bxKk!N zo(~<{Rgv9Y$zbmq^*4?|=YWxU0VonCpInwIALIwXK!3ZOj(;g*qaT!7Z%!s<`g?}| z8~ao&DEV17P_;@(P&KgTXKjC}4D?tu;%fcxP!1QW^E=^y)mECTD?>JtH{tcetzb_Q2-qUesxHB}DY z&&W7hJ~a$6t%6xfaDIJ(k~+uJ8%aXPt)(mCnX(4|3>@s=fSHD&0_iWav$MRtbB4+y zZDYz2YLh!k4~7k#mYeND(=`)Tb*uZi}^~c*=KL!Eb?>xd_P5n ziY!n$b)EC=I)v&5gpX8XaDD-<77`N=aIIF9iwF0g{`9Af3g26{Mc^m%V=>Xux7%BP z_>b=+PhL?R()C)~-rCv<5vrtKJTxd^ZzS97zY~mrk2HVe*Jt@|@pydwiVE$6n)_v8 zBB4DhMw8wZ=V54zPa&8lq*Ym(5 zS*KUiGo0@{PT0cf{}23MPVBA(#c)Swn0MUTdr_GhLZ{|PN$!OW3{&chQxR| zIfi$hKf%V=q(2!Hltf<$KIf}snc^`m8B&Q{D9v_t(Hz4E~}c@P2Rm^gH~=vd183 z{G^)^oy&FLaH5i}&OZNr#(!SXA1Erg>Ram&uKNUtH@i{c4I&F}z~G1tKDM&d-BC!) z;#(uT@j0D^do4?!WLaWIX6Z91!9ZYspinYiEoBXz=P){^UgK0W$1Qs~%f&-|X#l>~!c(*_5lZG=K9pvK6wHC^Eo%MueoH}=h zawSRCb`w{B$ChqHSWM`P;ABDuIApg1akY#r8ck5!Ti!|n9|1w&2bWX&=#DK!_z8Zn zaIFGMX+_>Kuczq8wBa*+=WIG&Dwk&kZ$CJ4K&+hc59Ix8Qm#MPC!-d~^#>%g<*~B1 zR;+L53S_SF&25yO^CM?DJzso~MRql_S+~m8j3~=XppK@K5p12QS8=+ePkt=mplvF- zLL%zz{nfjvzM3WORPbh=NaK{ZLW~?@AN~o=9dKR53xA=hyR@Pcd z#+QI|z|xw=EQO#Cq_+)s;oagA-fld?XX900+vvE~lmx0n@u#Zp@g5M{!-7`tWOMCi zk*R$Tu4jZ2Fv13<-@*rS!=+bD$ZUY3F5k`(yvD)V+ zsD#{~PmZQ~Bs?Ye$E?Z8k(noQ^VSv5r8sp6{fv(K2g4T-7Bl~KW9JOWTw)EhZ4S_D zAEscX43RdrvJEj8Lh93fkOK7uxOo(BV3>9J862)cCHXiZmMSoWu!#lO%pqJ*e0fO) zkfD6ZWzVMXW=!2?8%*o$Qwk-JH}(~V7Lo4XElzyHzXc=eDKr}|!15euqPz{)<{Tpp zW*h(K<=`czKyz1=a5R9V;Rw^D6G|TLJR9u3+{fhA$@?idccA@0)-=on%031Z9{H!^&=vojbDQGR!FGF`y|xACOE zN5xLZGcFSiiRea(YWM4gVoC1w<*-eV%lDrS^0xe-CXQ_zFn3#FqW~raByVr^{=Ek; z4~vJc6xpFs_jF3HvKO35o@;k{akjX|pL(+)F6Kns?ae_JF=L))_GI{++JW;q zhAH~~R(wDMHYcj z2#{e0%eW(WuYM(+UvT8I&fw9{NKnRni@2>rcd;x9nSSg$sp&&ZcI%4arrl8^-`QpJ(zI=x z7YF|zw(#+>ozc$bcJH^D@daw zRTBujm2J{o98nHD@}}o+!L!khIjJ?1$MymqtwFMz5trkxFgF<;GcQulMpV{`>iD0< zVgmw-_sjnvHbi#9jLt*>X|*&5`k=o~7EIFq=hq;7V+1m> zbosp*F?Mun^j(=kSAK^zn>%Z;%6y{fWv-ogMAa;y{rabHjzEvVbJf%g)uOV&2lRz7 zT4XHp<3O&WBvr>G5vD$kqNN-Yqc`T8)EF-Dpt;1IVNA>&kjLVW`F5+u&WEN(&`mgR zPB)6hXEnjKz5+i81gpOaWKaxvW)bv-q zic2hg3T6b#{XjkcyWCN3XrqPWgZL=D_|{u%EWO0bq}dABb%msyGC(M)^krXCpzLK& zTzKcX@9<(p?=xdJ6Tiywqg8aqMG$6^ANXW00cbcF9oIsQg(ArLDYjrE5cd>w^@~~) zO$NE}#zE^1F;JWtq|9Oju+}+5q{B$EV-DV(IRR_da#Mj=YlqxoxU6kV{Q=>y=WCzs z+Hu3fL0!ko-#b6urCoo#yM#vPyOwTtxNGU#oa{OwU;9{>eyf+w$@`d`^U5j14kKuP) zwBnGy%({gVt&Z@p)*~yI(gw59?wqKMgl@GZ$XlEfZdFot#q3&%O(|6eZNCpcLzhRrTw(7jQK7|z{XTXv`@YgO%e9mcqcQx z>SWxgtnEKg8=N4R@A&-O7G~A(s0`?c+cw-dY%5M&WUKv9C}tS#LHot_Zn{LO)n)H~ z+i+Isyyh(_B|BD&qHBW$!v;*231tfI;pDzVCr(V=5{j2WbB(lgoKjDxn~>1!8fM{8 zn$PqxsO6-F3ThkbLXmz6?-_pmxMg$;6uLt=sydV%4$3r7s}#d&^s+1GoUInV3CFxG zMhnH4tSbXb6E+oY1ha0L5^@6q zM><5YrS}$#eUkEt7s?WZp^mo#P~-z>1v6{ja^fHUaTuT?b($3>xm)nHi{+}fJ)Mnu zKdm}WX-ua#Nz9l_Zk0!J=LF5CO}WNh@H`RvMiXeI+T2NrEL$&6GG)t+)~~*JLfNva zv3DYo^WKWXJ1v&2LJlgnUEpEREiQutKayd0QwZh?H&_pm$^NS^hbmmx&)kX!+`ajv zrS7bgdKS>lChGF!^C}NCws7nTa)n2ZrGG8vT3gi7S`w=L1vW+*Bqs7%eNmHxgQlHcjX}VOTo5BhS zOn_(NtmSA5y?yYj^ilO?^eG^CnKmEjIU1J+AeDD26=YB!u+X{QvE&J7$D%jexMOGN z8ize~xuYs-Ct%JbT4C*sZxcD%Lcp6TZNWbrZVCf>GO&GhZUk+Yn>Q2?_{8` z1FQZEY0PKxb8(@lFalpA`6ZNEqQ{s1+m)C!NbZWPZm`g|-xIdDrhJ?`pB68kt?o;? zM`&$Z)<=@G#nz8hY_u3o(L88nYnhV+YAi0C%U~UNp)Z(=BG^#TLcO?%fG%w(0vXz= zf_QOZJg4bw(I1zDkl?>`j^YpV%9&g(nbG45ZC@ zsgU)0J(l3bIaWi_nWf>y}H0=U<>IfpPT&?b0%tKqnbr)|HmyxqEqw!1R>zKWL0f{(~_}4oQaz(92 zAUMpZ)RM-P^Y9pHDBYQrht)^p)h|bjEAkdq$9xJE?lWw*yT2~&>((Ia9TCtundFfHa+`W_p`fu?-q)XNGWED`nK5z$yw02zxqUJ%v*MJjMM6-A{II<{q)BvUTdvOLeyYp7 zPL2HyV_5T(7G`vD$}33cxWK8o zEg_O656}quj7pUtAIF`yPe!C zK-Fx%ON2UxfA`eu1l^s?qN$`O<$b!=1GOF95pe3SM~kNm@9v7s=)AalZ`E>z{nH7V2~j|c$TPs3y|oV(S?hwj z_-;b&l1HExSq4*8aC+97Ou-pFqEB&3RlLk>6TUTIR(`OF$xbB;CXBjaU*|PF2#+6Q~H7Uy9HWALL1i|0F${mjOBg&rN9yu1X|<9+yHeCC)FAW1t*F&4b^nX486 zgIC4^0~BQ7bqkJ)G3ZL*Wb;(Gw$uSWF6X^=w+2`{?!Qh~C4+N&qx2!h2ZOvD_#=9F zMX#LirjkP| zzMjf^yva*xZzY~p+yOF^$)2sMJ+(*=v+CB_!%8%qnl9Ay3I?v`dxj+o)mRWoLxQ&K z!CV8d^WU-_%*LPCXf5t^i}YI^uH6SmGTQT_E6@V~4ntr|9?ee{Da-_1h%BIY6Ocdf zMA>W|;zKxpL>Z7nz$7VROp@Ir#QNbE|C>ZuXe*H^Y><*}rOHhIH9948Y`I4*??pxz zftG|EEVna=QSL^Rd9c7Wig!PgeRHX@ZcVom=E4j=EL`&iAVsCK-MyWcg-8{mk;pkD zvSUvl(C71OA+0rNj8#I)m5Qeqg;3>0c*FY4Vdiv+Pk1Axip%XTOoLiS50BK@gZFVg z0e1_T8-vUCdIgw74(e8K+Sx`!rw}YE=2OD$!*ah7HC`<;a(d0vVB$rE3J~2mCxpeZ zFJLTPk@+jtLDKC!P;9B0N-3pI#UDXPHk6k?0*VVG0l=)XTPxZqX8;%dFq1kdpW=e< zL6(rrhiU9;D^6QQrMzxZ<2eM5l!+BsvklpTF4%}Sd!?>{#>}9?;0CWxu9i#KW8W=B zLE$@Ei#L2nd`F0mLCdD#jMt|KPLo*5@C(!sk4_*LS(F<=OMXf`u&4o3!4L3rb zTSJS`i)W|X3@M{psoh&K1^xZ~Ry+;h^?x~)iRk)ABV0b-r+fX>l80^Q!-7PPFoK42t|<;h7S*|8>&Z$+)}F4PKW2M-}Q84 zXQA|vKg;H%X~Z3niEu+%%P%}y4$PTP9q-j0kB{uVQhiM% z?;*pW4V5D&#MbmtYw%X(@4I;sPC}CzYF@*VN|5&EEJ5MRnTMuv6?4~3)0GW)u() zHhiEPwM@8VNLYemM6D1UF{Aq?PTopu$^kPMtGF4T9wrQe1Ex1^_J}Rft(E zykUr1?}j3hZ#w`tVrzRo$W&xZYHMDnLYn@3fOxnNPf1fL_AbLtR=i zy4J8(?i+B|TQm^PO=uicT5LR0 z(OP)V`QkL$2l)Y9Y9YN|J}*zmI14!3_&!;=hXaoLAPd!By=m4#jR%Bu3`Z8+GnRdT zS5R)YAHRy?lmB8mAD@BK5Rj@&D73YfKK4*L6}zmnC00Rf3+#D^?#He~U^kQEPxtgx)zIz>-2 z`8?#;+i!Yg+1y0P95YVDv_V)mBzk0m*Roq#1ZmxU6!e%H`<_p5GBgxrL=1@AEzYg> zh3)EaVdt_xRW(`fc(*_5Qvi7bq617w4Cm_7`TW=Rfyvj2T70s<_w?C_T@hgndTlEP zZTNn65!XHF|Mb^%O<$&e^gLCjk+*6t9XqMUdp+TcI$GJtc_gJlEezO}|GKer24ZSN z3}Vz^A}DREzpbro=?J=d5PK zAFQ=3PSNu12T=4k1&E@+5&r-nn=MbS&c@5Ut-k=W7mKs&cfdn$%a69LjLxi(!QS5L z{i*k$9pE$;poynja0h@VruyN>xu-X9-gCmKz4`ko_(h|Y$es+JQ%z>R``cF?ToGXw z`L+_W9_N*KPDHg5493e9>t745#<%)dg5(M7Gg(i{a5dM3hT$WiDRk@uxU#yjY4y*c zkQUG`X{Ha1Uu=~4)~0bW*vB&mS&NUD7-W~j2@a!0Z*BPrTm)!8y@XmonKD3VLJVB; zS#i<2aJZeFB@kQ|r9L1bJMfTsO@tk^`LuL4!5^Sp?z3WQjJiEVS6|MdGKW~>1Emb+ zBjA0%99odSSXVC&_y79z@ZdO}qw)@A+X;@+ONcru_WxN3M$BgaYaB3~o`5NIkiN_z zH+=DIaJ0A6-{;G2g7Pj<8`v3wq!E#oHuoxl5qf~e#*W$rJmdavs~x{w{2-z+xow=n z0Uldkm;mx3&*PTT<`m?FA&>+w;Y9_u~q!m761I!^>s9+ zbnYS(RMhepB`~kyqNFzgD^#)WES`WnY~GWH=OXE{X-aQ3n@oELgO@-Z?3=1DmeUWj z1k2jw(Lhe>r%QZ&j24MXKro()Szoe{1)(ajh9lMZEXj z@H*Yp=&Oo5`ViKPZ*uW&H=8PQU>2f6GGli+{z%K_lb&mkNF$#or*s#v5vHO)8>Jr5 z>%EvhdXJI@Qhe62kuoluD&(WR=Yu1rS>!a}jLahuHb#ylScR=EDoJf0UYs8LJRdGM zYf~NgJ2=0%ye=vI2P(I?kU!+`*qYRlZRagEGZZ!3y zBK^=`s8RQ`yfkPZO=V;rgeu1nba|%Ts_x@jm-$wu%z6i_+I#__{ZH|;qo2lmt}pVB zyiKo8CYyXl{;U7}n?Ka!-g47C2ueA-r_LjLc%o);;&9X-?d|;5Xmrt@{GwwE`-(<} znSKa(=pXFTh0$yriLGva>#p}HQa(3@nxjN`-teF92LH|Zj|~e$3EClNuQet->_#X2 zp(X{O9i)3a*SzKfIGA1mi|&kExl`4S|EU3Q;v%{K*{Bb9s1M-{fAXI2iGQl^3FGrw z%38(FFeCOe(Wq-wUUAn{0t~NV6m({*nGlTSWts(EROsB*#$aUVzUpv(c5Og2K%J{t z(}+2C7KzQmgJ=fDk=>n*>FbP3O`|dq5f-^!kN#j|Ogt`nm>`j!(3p zS*1-Jkt<^}fEl#7%+Pr?#5%fKo`O~+-bYSFiQYB39fX=Rv*X@tYcyd~FafqJzV*H31hNW+He zF|X)nnKNB963H1ZC>GV%oi8gLP~mhJXdhGX_7uK^^5SEw!kv+{`uOZ>x?Z#R%Bycz zuIBZc)|Y2(>;5`)zp6WO#p>Ip$4)rc#zxdxaWrX2ixym4nI}?hGxCZ^HdAV{;6%k@32HG=4sSm`Tie!Z@1mXkt7J;^C{5i(HX!lp-IZJ-5QtYKqM$}%pWxY z$?K85JRkv*XpsO104>WJ`7!o-_ndivz1pk2`ua`wNxt~Y%*d?Fssbfja<`_(A}TZT zKQb~hGJZs)5YPZ6Z1`0t)j9COkhQCsJ5wPvN;X2OAITQo7j3sA_wz6T8I+1UI}Z{1 zHh;y^_+4=>>&fPcN8em8wD^F>w~=`jw9|r>2akbrUXE!lTD@nzgF(OZ5FiYP-mb@K z*x8+3uRgi3f@*S`k%@dj6)VZ!gQwGxle}o|$`_p{`75ZPa^zG2S_K;4A`n3e9Bj^2 zi#A6!S%e;^D7^TisPr9Y%@jl`=loYnctp3kZsTZj^sK&YMi`sB4$E|VvT88t#?5wPDY_BJ7=}l%50{~+1y<( zS=AChjg&Rbbo9%XK zJC;N7F<6pU#$agtWK59|%ss+KWq8w4fe#9eRCLxzii6IY|n$rDXD0%WJBNQ7>UGp{#51LLzlZQj3c{=WI3P)0OIfsvfb z8}$I6Ey`IALZ&GFz4ex5f((`|+LOtutL~PPJLlH%?{Lp=R_u9URBLE%hTJ+zDDi|6 zMeoKDYgS&dyAmtH%K|-!Qr?-H>tBOz72Gk0b9iHT4N4j>XY&9vINviCsWz6X9flOIXDry>U}T=5?D8Iloq^yM*KcFx5B2k#kL;6(7}1j zX{&962?{Au)xQb|ir+F47U-9Tcku|N#TDbXxM;#7Z?4=MnbeEj*Qz73LoY2#;;lF* zMIn^GW=jxE{b_g$k zgts)$4nE}-%8A92X5S0eYg!FDO+Hw;B1u4eI)O5w$!U>Nc-w-3;v3^_P@HSPlf-Z3 z2_83ydsF*l#^(-sY`7#6I1}BzbQ1K&}3!165j_zN3oxaJe4ikv`)P11O(Yoyk;dYM|j6!Q9S* z*dOkX973ULQ>GcEO!E!5W#~|C793bHUql8pR;YTQrK%(tC7CFTLsPgSEIQE_|3KB$ z9!1Rf#_jlZI>V?~spZd8p<7xo(#*^eA-H8eeRYAhC)na6q}W4yj1;>lMkZ`AQP#;v zVrUceGPDJ?-_d^7@D$&%6l2Ybtcen=S-CZB?@BdVRVJxPtC}fQrgaV4lTSX)VJe^I zK&yV_3B>7&k+-v;8G1Vxnz6StQY+e>?Shdj6G`(~Q}0PjXAG<`+Hoj0EysopwZ-3e z{rs=xQVjb_d`QNwSTDrwf!yL0i41`eXA4`|$^sGbD~ zX6>bL{wrE?5RsNFSV7aSyc2?)%A1iH_IhFY651WrGr&r^rf7T`+#yGpsum&HwExPc z-EWITw`{_t0(p;jh21-UfG=LR5=!|_A5G`E3y;?{>wIWb^H9%WdF&#=PnYD8)RU1%-IQ?tf>9r>A>$ywkmU7kFoNf;?1P=iqH>=NBI`cXrHk@&a5r zpDoQ7i@mV?T>SSUr$o-@uQ3G9boqzIx9GME?2$&Ze{HstYa3ZKb*L8y=N9g_*(<-n zc~EKHD(;Mgg(6SZA&sJ?6uhC|c+T_hmYR1#LN)6~JxSkrywlvXwhY9x340!Ad8u9& z5)Yr%E=T0xH=RNa32cm5k~<@eS~3!$t1?ZDC_IE+GXA42A5j1ZA~qY_nO5R?@o-8q z{>LD>p&#f?&s`26d2#4nt&x9+)Z7Ah2Ipi@VWex2NsB4JeL+)O=lBbdmrXWy1o^wY zA-b*BvWv1=df}Fy-6RE{rZxV{KDULiFahp27d#Bs6WxBsK2Mi3C@y zBQM7i7y@lTh@y=*Uf_mGwc2#W$g*Lr*xOZVb&-oAmBI~#drC7f4onHCMAG`h&8Lhx z!!Cjmh|!e`=Oi!AO>u~MFwR1MbHC4(*VL4T*Hy$n&oXUef-VH$*DrZsJ5o?C92gOV zr*X)gpt=giCzY7%bwoUQ;B4geO)$jI671EQC5;MJyEGzg~VlJ;KBE7 zR&0W3eorBg$Mm_S^adg0Ah9FerkeIHm+mr29Gki}O`pCLlyu`I;~xlHde zPswXE^32XsA>KooqGh%gC@2n`s-jh295_WrV2d()#c@H@5pm*(052$8_+s9oe*=d^ z>a{(S{A4YnIpAn$Mnci<%^6Jgxmj>P8xZrpMyp5o(Q(3S_fDQR9Op75_{D!PGHX*3 zrS)8z!%9#>QXGvj!q2E&4GUV@DpDv=D>uoBg7`pZOZwAdWltzxzEXYxRI=QJM21P- z4P=<6awoRr>1ALfF5xVzX+}OmO(@T(OO(2cDeT1V@W-)npySQ4H=xWbh$dN}O!{`HD_->W# zXES=>F&@q*=ini@C4Z$2305VE)fGK*75QXAqFqG`c_H2-ic=*@^;L@dU_*fMhKxgE z{vwW^Zc_GWRynN#Y}-V;mX&`2aj3XP`pIVQ`n=-wpx6PR?s&O?XciKWj=%lf-D#hP zLM{utlqT*hJh;C+$=CnIODQD$MY;8m@MQexX==z!$;_5ez`6&AhPaTonlR#3ieDL+ zhe4cO`q8JE1BT>5gDY+fBziUEEoY}M=$ARRkQHH78cL=hR>GM0CJsQyPUnC^_!60! zh0ACSGB@j)o8qiw4k8M`OJlekJ}=s9r=vSX?||D>s`;#gAb1Y;Gf1-@`3Q?SC zovpQv^0XD2_!T2Lx9)zf9CX2490T2a1>E^?@#0_(*bVgKyWY{D+yAC;G)THS9oWa` z8ahBiBwq9Cq7=ec{x#^U4{#(1ZiVRg*5w4~(t*v6ez~MzzWl}8#OdV>C2SCcaRKq@!3}CtSOXuq ztmi+T3-tYWGMgb|+C(xbQ^@W!tX~*fBLtn^T%C;P1W9RMZ>Zb8lyz*5oo<3gz32xpS`Nh{RmUs(x-SmwryPJ`y39ZRdCi7*|5?$M*(psAkE znF#S8BaterxLA~`k&?W5)_Gkpv(h7&myewaX8sRL4rI^t7>DK(Qf9d5q14Y{RtIU@jk{ zC_y3XP%%=FqT`{G%1f^ZJ#{Q*^S*Ubl@^FPE`||I;>9B z&sbm>GzRmx`2?b{jU7zaB++9)%T|)p;yOK8SV!11?1nc9^caE)Zyi1v^p4tVcv4Ex ziK%mT9Ua~70hHM4JsG%=w221T?ObUepxWI7t8n5*oYS`I*zp<{cKz-?u1+;z@7tqB zdJKJtPiwkgU01i;t=DMx$yPnU-JNIk00&1;x4x+hYNs;31-iTShrD~R(>)j*eOGhb zM<6cR>(vDSVL+b0A9N4CX_RfBJ~LqHVK|+hBxdy=?>;GM1V*=uAPKMfp{@z*?V84P z07E(cq>=QwMR$IA>JiUN!cVm1Gn3r@f7}d5Rx}EH-sf=|^9Yx1!dkjo+Oa;; zh)#exe&Ib=+R^j$(ad?Hl6Ir6)E)p6(Hov#@abq)&IDgX$(CGs(0nRX(=J&sJAh)R z^oxdNpHv^kEm`>b;!lQ2Dpa4uK;Ux!4Qy4Ad1`T(R<5s|cFdvi7d>d&i*w8Uj9p-S z;AT5|_jW&Paio2%M^fgLps68E+o!c&4z*9Q($2(`TD(3y^829W{kF}r+J&!8RL!|T zy@p>+R0?+mBh_m0lYg;l1!E@8%Ehout+{zTT-b(Uji~%!1Sa_xihN6=kU8mLDAUM_ z7UBL-)hK`@+J&4|o5rg-iv?SJZ;4K-far~2goz|dtBe04Cu|)~56{k0Z7D#%Su19w z;&mG>NF&p&$DmE)MWJT>UOaM>oY)Xtv}(urAn6@b7=GQcqwn7F^oEYo6hTrjO;1qVA(Oh=Gzs?w znHe(gB8-;}zV0li0b@v3w}!v4*j6B7ZrS=!9lOE zCAM72)p=QYD_+*S6-&#c{VW}Kg<-AtCTFm_zS?NSQo(b?Cw}6(6C^CFZui>hDfB^} zJ=Ub0@L#+MtqHf2Eul(n#c8L<(q^3 z!E7HRT`gMo+rQ>|yZD_H5>b^1B6#}aa$*PY!k5E4(+Kpgo=p}L)UpdI5eGbe1ulbW zur%`(PKjJ^_hyT<>y%2YsErh400KcMm-1Zf5X0sa(ZXis_7{hYK#&eS*kML~ccX|w z(vHF)OI%b*C@Q{E{PfUFMNNk7irBLSpm+V6zP8~0_N6Mw_y1f$k(q0M73ccE0Y%4dfUI#b}O#vCN_*)JmIk}?hd%_UmTR6Q! z3M+))=FyLEMk)*=eQPR${Q+0t-MNF+h;!#>RRavX zoP*Z*#a5dUaCMLE5m44|0jkq`)V34F>0hVk{=&tyArwGx4Gr5a!7tWFQSmUNXy%~) zHPI9Rft4YsN$hS*MI|JO3$=`#HA;p!(=G+wYq#t{t-9^In27ZU%c`)92IR@j;zIh6 zP2Jd!kCiG%>+Yr%2W#6`UuLV!e7$sVk1|6kxu;tb10d569uuk;kXtX^Y#pM?3MJmu zW~n9Bu>KU2DiDx{^i;1t&6k%CUzz++DYj88uyctEqxC|MJ(U@~CSiXB<2}20D9<`1 zt-BkA_o>n;Rr)F=$f}^&f}IlxDP$UL&~?|T$Z~}U$a*r+>+nT_JFSBi{W{}EwL@ka z52rgD>-)oNl1Qn0nu{t`oR?zhW?O9_(nQlQ|3P%2LHv4vZ=3epbIIW8N*2`F_9M{+ zl+yKpC3LN(bPSAXo1h~tqlqbFs_0d&L)kJ6S(WYx=eLTU_EJR#v*=5YbMg>COHiw# zN5yj4Hp;@~sz55HQ30d_YWfztR0JtVpqQ$Ow5JHlg29-As1gtkwkKz2$-qEfxe&!j z*%6C>z4_-q*F(525U1h!xC-ywH&0sY)J<0~mWcN3Dr-U--|t{ecJ{hQ{+g`38CRbh z>U>Ll?XEWN-AnLhOSQ=0pUhr@>F49|gq#1SA}AsZ*aRto88sJma|3hsaCUXVbFdns6p+j@yq8)}0p$Dgc-yEP*;U^K*kCIurh*UPcUOgAQgkp}q1L&Gq+# z9izERuQuyxS+jy)0!^~P-nP24L;(8TqZn_6G7M+|@4SU%SmoKPaWT(V z>$jY#>aR7^Kz(eXLU+L@yG*{-FE4BbH+qp=43W!L<2S44ROhu@7AixR__FK0-91*u zEL+DF55>y402BF--2lAqdYd8MYvZ3umus6uHJz2h)?7c3CfBS*Xd~^*u!@G)a~Wsd*${6n!PvYDR4H19Qz;eulPSR3 z*pt@nw8{>~KI{?XS4ATlucO8Q1TV>|SUYBXqw)*UISSWv&v4V+k`U=0;6=$=GAU#P zFtB@)P1PWr^bLMti=fIS6z|NK*#f3+=4gFM2OIW&mLEQyT-0ONu$L6W30Bu8b!CUo}>*GK$>;0atPvqwROcAOjQ{>3p; z9ZWkWIE34vI{e97bv@WDYnAi8+(dDOwylxZduiR$`uEa$G8p8q-LMw5`g<^tx5c)f zlCu?QR@&153pCLx^RJ-yi_U`4Q1j0Ey%EF8eY=GFsX|h&<8W%^;CACE>Ax(cxwyZ7F7a31Fn52I9TSrRz*yWa*g6Cgy+bs-OL=*55GDRz z7-QIpkn-iyH?CctE}Ww-X!`wQ|l8O3e zJicZZ9;T!LAj|zr5^FEC;~jWLSX|hdDJM{s>kNx5K zbc~^!xK`{sJgD#OZEx?JY9-By08Iw0zX{Z{Fln+iU4sWR+`&=jtN^JaV^n1;brJTL9`5BUae)#rtt#xtOI(F|)@9?dltyYV`^{b)K^3rEw@ z06boxWJJ#OLA(z>WDO9wmaZKfcDDw*&wAv$ z4DE=RF4Nr=^LLJVFv$m7yFJ)pXLFQgOiwZXqssfv<-BU#>D)VmyoX1J-EF`UXcGPH z;eU&lljZ3J#$!W&3;KY|H9+Sf;E0ciY zSmvO+-@|eZLJV-T6y#CoBiWCSdR_1W`si`qynyFpo3!8C-hH~CH?PLPQe4^Oy~A(w z<|TvFAMm}g5k!*okES_ zkH9L^TPPIj?e(64T@*NNZJPQUJ@5|AD)BfaR5y$i$@3K&03d4jdeFofSlD?zmf7G* z9u!+ftfnj)Q-hpPD_DtQa%W@7)Em-RkO9+v{VH=S?iwRU0K6=nj8!e9J5saliB-d(qD0fUDCi`yi5fch zZE!`XdTeN&hx=Ie>A^P#hu;ELh|3AWfrF=58!-li@pxU54BoEL5bsLNl^pQhahNxe z*O3HViJa8bWQrx7W-DiX8cCwT!_5$RM^oM2-qTzuoS62RezQ6tC*jV|o5-u`?(hh( zOT1@Yzi3ZO`hiIVl!IhIHE|n%i6Opesun(e(HYY{*y_O%vn`eXk(LLh7Q%y{8oAXU zLST!@ZbcJC`cJpEdi{P_`>7DWk$Frz1KrP8L7{jn9~zcIHdF3v37MG15o+_+)Z91J#lCgN99} z#ybr!=R0Huz8f=5My`Q=9Q5!fyWBjabMf#QvL@)Z&+Tmr7e2-V7CR06faL^mU|EB2 zKYwtQa0M_Eg#XaTpaMQQ_NbT~6maTq^}=#=g(AdD7xbFk>-K>XnDK|*MzJLKl{W{E zQnbT}s`Ve^p#u%xZO|PPiOFaJObF}60R98rX&fH>!GiDX)PUdFu?2Ad67g7EG`1aN zpBOD-!ghN*M9shzHdsOu%Oit3+>%ov(*=>F!IIpmz1 z@DKbX1~_k$OoRw`_XxNQ!=0>5c2dJeOU zc}Lyt-9s29%2j4K%r{t#&xo5)2*Z=}@yUF43WBvFKmN@a@NM`4Pn>x}N))*A9p=4% z22Rgs%1uTIPfk4~e*AC$ms&UX8>!;_ce3y|C2EEcdfmrD{2SuPx}*${aSCW_KM4*kjeZ~yf(vFM8vAI$LS zSbw2)k2&umbKZxj7-wf8d)_@cL+8=cB6m&}dMCpRmIA1DLq>fY`Rc{80qZh0D>Jn# z(|8E%_6T@%sOaaLaXFXXzyNgy3y=*(x=#I@U0qS*9)E5i(=2)fLUZY}(+HP7ft_&a zbLrE`cm(?)!l^$RpA9cyP&a2|rk(!|*QGJ@>ED#{>4?YU27+t$6_6Ux?i}X3z^Ef= zCNGjO2xsSjIp1~0uN6${O!Na#|19l zr>O-_URKj%=xI%+G7C(36jx7EeGURb$Fd7^zegkXvzW=>0cnGo5m%w*^ueGX$LewW z_Sk?2tBb4gw7~Qm0CnPP-e0m82lJ5s-$yAttX$&-;kBDOAESe7fN9P#&o_V^BzG8% zm+7m3UE8u^_Bv2#1-dl5Jg3trbqxqxh!ipGf1!Giox#k*qsM%i;QzzglO@arptKE$ zxOW2)TBdU3CNBVGtw!q5Hvn^HK?qfMV)4AdQ_`Xd$)#fqPGS-HvMbEH}mn$&*8P<--%uQKXd=y0OqLYKaX$Dnab*G zgJbCV>X4A~dm$;l*ocOtaNuN6=tt+|5ODnZyfZ-*STQ)ofwJsvZjl3$D~ZXlRo?-m z4^MR_A{7R1D7{#7jpWN>2c8ERK72O!Y#H*rtcI>q&rsD^9eYvq51!q%iimq;*JjB) z@45cag;-0V7`$WgBAv5%LJF^NO)X^G*G_^fWHYhbo}+su&_)m!Pqdjd7zrGt1rz84 z?U#G0;xn^iV^=IE##HDR6FF zyFh}kc^U@J`=h4>V22RA?Q?qc3Ev@9@Qg2I7EW!&ZYGV!F1CtCVZi=`?9`ghjGc3W zSS0Z*w3q^{+}hiPu*J>L#vl7q+)28pcE83tYwd_tiAJmq*9G1d54aLbp1^}Ms|H`9 z>13-&;M%4Lzb0^8HA!NhW#ffEZIVfX3g-*(!|1W?l%azRlWx66fE%S3NB4gh>4wg* zXoMTqhT8=v7wGcpa`N*~`wI@Dx&#qBg3ul&H)GKd#%j5lPRnDY)QT5E9*}ATb1_QO zHNc$0a5bz8sZs@L`RBuWUo2itwr&!GV(G(%BY($GMsK1ph|{GHJW8Aiqxr5>kWyT^q+%54cF z*VMKH!C+dSGyv^zAvlw)=C~5JM%~@c$X|(VcxkLq&1`t&`k$pX6gV&b+0o?P?RMLr z8btRVz8AIjWPl1b^CP0Kwsb(%83Q$M(@OX@E<&1h@Hiu45?1bpAZ49?L_nh*@%*UO z?}_8Z?W16+6Y&VV>5gLSYx@uPJACD}qv)HBCCT`Ka9Q~=V6BfBHd6f}I;@#7Emh}emvc;K*zG#P+ ze0vL07k&5BxyMXj`(uedxEotuOp1Ya=jRLb6GPruR^^V+#V;Ju;H$fTJqDR=Yncci zP=G}LuF6vOd~tI^g|p@zWVY{YG|~|N{mufp;*u&BpZrrPKm)Ff&4%M>F|{U9maD;X z;to#cszUcQvyzUomiL?OdW} z6o;gu2db^vXq-I;$tmQLo?F(vgqejMJjx)_I*=hyV@9v!v008c()7Kj`hsP(BdR6N z&KHk@#mdz%taA*N=8F?s(HxK_?$F~82Ngv}b_pTzx+>DS zCeDj|n*%wH=X5|kww}s6xmg%Nb^_uOSN0TEHn(d`IR5#UU+N;bFrqio@Gu4)|ug=Ou@{Kzz&zD+zWp33)aAX-PPn7d-oW=uA{{oiJ5* zeRshtdd>k{)&6}5y2G09iF(<)*K&_sWEngG)zdTDSAkrW-I(c($382=W;_VD9}edy z@bDp)O4xzJqldd7Xx%;9+UvD~O5B!iuTepY2Q*nAnnKoOc{3Wf;D@(Ncx@M$78SCB zXMeuB^Q%|Czu7u?^t5}l9Zpo`1Q_65I$_eJP>7BK^}{Hxg>e)) zlzN=}pWlk`^ZApA(+<`trmKI_{cg-?MnISZ!AEGVFwce@nm=wS2-8Ur+BrRZgZ$VL_=Z5z!oXCr;la@YM3)^X6%?yZD~yZ z-cBm3yB6zJ5iHiN+gx^ey!_e=s|vv=&ePLk!J01A$T>vv#w$`2D{e}%1r*QBfZWHV z8iD)?l*wK)C7(AC5 zPsI41)Hnlz%9dRi6PPuY*m`a->r*+puJX#7}f1;U7*VN zyJ<-&OAxx7U$>AKC?{8G2lqapU3BK;$^tXUeqAmUD4rGi$`Pn#Ja?c!sO`n6bR??A z_&gxAQUJf$aD!`p(+Y;%r%=mAh}9~}iLyXElqE$$SwiZQB}6L0%f7Nt0P z5bd?9S~Zb`RkfhcbC;ZXmDE3n>Yd6ZCsgE4yBd3Po72n4P3Wa0eR^py z(=Si2>K0OK8Fpn4B5=_z+)`eR^%=>psXyC=OC|-*A}(q$iH9HYOWXA-=#`mjoiNs% zzy(<4s5H7jmTvm$XtuwfQt-@}cA6Q;tt4W7<8n%cdx+162W6%t(1^R;69-qaJx23d zacNxA1qYYt#BI>!m`*%%u+ay4SdJbx8kAnXEqG_bQAu?|p7)-CzEZ#Qlpg(ASP%u^ zlWA`ZcO`^P!u9^jPpe6QtvT9pCYwR6dvua*gRe zYd4oo-(#6mFZH7Iq-ydU6H6?=upS%Ar=mMs;stxVJLnP%4&K#F(5GZk=g`x}_KOF} zVMbGHEj+>}LeyGlTEk6ILKE!@t?q_nB9Bla^@2tgOpiPksDt`LHDLMtEOZum_vBD- zGXi&3mlW1ksgd#}eo96DQL=M-XwGSkXiaNACnc>^s z*adK;5>+jJmuk3ljhNthav(XLn=iJu5{kGHMK>T^pW!=x`8$V#}D$m+KxVj0` zRK4aIi*z^2rrKJ42Lmr$wh|aq*kX}wRCU>^zFPn*jdPId&Z7_FauxJ2aj(*ss-(AQ zw{Drb>UgFO4HNK!G@cEfwgbH$kjRK$4~wa(N+;nt>Ssk)m!E#Vo^58Yi!=O&;*4eB zs*g%P+_E&lBGTGz`BAinle;s@t>r&gM)0g zBW6zghhNxkak=pSo&JS%0&mO4+eTu+w<&=nhlY5f!GjIF)BD)#%F~CX3X?J>lS>1CVI^Ol7 zxzjjq3U%9#A5$1MahXK625`#9)qCThO&!l1Sp;V%W{vsGo1S{kH6{f zkLu&o4VZaq4gbkZGxX<;J*JqUU10cERW`HB{$eA0vDub|d$G}Bps!zS%C81RkEg*; zM%ghASn2G$8r1}FM+j6Z@ur5;1LRs-x$@77i^bBWFu_dL-jw)DHjb_zzTE!o5%h zK&qVoUM1!1gH-^e<1KL(-Cxlo%jx*=tkryausdkB?Mr-+tF;Z(J<(bu(4E?rWKYYU z&WGTcfcRU=%@$PmV*Dy^8V><{pX8zt#|<6A$;YOQ+LW-~18jIL19>liwEhGNke}%W z?uQMayMaQH&vlV6!j`N@f}q^j`IiAGIyBR<^&s87j1;bJQY?0DJ1;3FtLPUKyfG^o z8eWQzCDWnod}?E@SK~n+T;aY27AW5g9wKZ6ljpl>D6CP4D#m$31XI*veioDx?+%4R z_jRGq!=~8%L!r=-^MD$&|5jl zOKGyeH2n}XCG?m)lSX)j-EA;oJblqp=i(UWLL0L|Np~dTk(V<}2Y*{bxxLwp9KWK& zcRbHfnnvfN4$g!&lQ@$ummEc~CFRm3tGJ&u#2_t~0Ey7$VooGbqAx<{!Q%@GNzae* z9m9`XxwO29jzTGO)#o_yHWKAzR0!t56(|cpG9&ziMAA4%d>6;T9;;~Pap68e6hdoK z=VDPuxKkCO=pG!ibQ~oFJ#sO#04`ea7Z|Wpr9xe^!kEZGqL7G_UoSrD6gD2?B**Bb zxmHnMf)I@koB$8tQ`u!(N>Hdohn`H-A#p4VQ+x>ud=lX$HP$B^2G;RsZ6A7;&1+ieQ#nV6|UIlVLn7xbzb%Bv#)?LZ=@cxM1}-uV;oq8zU+Tx~3R5v;jt7jZ-{eiMEqBWXS$QGt~cX zgbMzMAdBna%V}$a1gosyH#U+4XPptK{Pp3*`*cZFaC~LuT?sPA6b{I|DS$i_^KRn$k09S`uE z+o&*%7mC*TspTLM<|`SbMGl?>XlKm~AO8s^)omUE_aal99T^~Ka5Y=JxGvoEy-_h> zUs_1&!VVqFL}#f^f`Xf!IQ%0MwGi#GX^O<7Y&_LA`^e2@zlgF`%a-ksm}7 zgHm^eJwoPyeo=#d>`CQpf?Rgz{y^h%2;E}f>gf(Jn*HIV zoLg%lVwb_q70-FHD7;@6W^1i<5m_Rcu5d~Y#YHxm1S6m;wq|n`z7HM&*y9zu z_x79IPQD%JAj0a%2{40~zd2h1*t4Jz1hH^hE-r-8PMrdlrJ)Wl(02s!$KE*FRmWZV zQP+sxa)Z9wt8U3swM#GZg)w>;c`NbuFY@Nvq%QI;BkpcX_=@$1{pC%1gN(M0Kr~BuXM9Jj2-FQDZ$8mac7bmZk;jY8HNq z57VYcmCH)Jjd86}XZafC?3K6DRC$@S$Q>_6F^we*PNk+KJgr2cDbt-Qc&?7>P{pi4 z%p*=M^{88zNkmkN)OdWGi88gK2+h}4G`@mKF?6uAfw+a!gwU=hS98a`77aoh9()X91BKp@@?FPctMHHBAr&47hNm+GQOM$+r|+c|Opj zXQe4|1*&J|;U&B^)R`3v_}*qk{P@`AX}N_;d;PI624!8iZ2N1ifFieb7Y7a6d1|>C zOLx!0nC{tx-2PfCtko^Mhk>A61l*SUndqPo&$3w3pjIV+@ifbId|mhZjU%u@5MK9l zWv8GETNdkdU5Yyg^`ZaO?hAMyhi};yg8V}R8teeS@3IYS0_+7>kS0Uwj_d~+D+AOS zt$FrMlV$^AM+WNnx#EI>|2?10Uj@2ad5LKPIhnW$u_COqW9x^FXkVNq6#FcV56DuCL(!*$Y+Cd3su0GiaiU^HE>r>^g$~*>OkObF4^MsnDw^VD}$cc36Ex@DudpGN6prHUp%&!*W zFHbqkGf^Gn#54Mt#b6IX69(en@%q_%?bhLq$vH$Z6+a=k=8Yx*>TH@|A9>+aO<_8O z^sGceiuxJBL6E;j8Ut`rxQlk9jW2!it!M-y%KwmkzZIRlO&%b9eD%d|uzA(BCdJPj zbf0ziQe81IQLDP3Vy8yvN2+O1dEGkd?hI0`+pw!u&8zsVt2K{SWJ%1j!CmW6IU5Fc zg$_7Zb`;bq27(k!OQ(pe#kt9DrWs$_UwX)MY#!UroexBM8cs zGp&T`i6Q~*WJ2Z&B2hR`5hX``q>T!46$vyW^eIM}{7x)#cO2L3MP=QjPj#N#aT@BU zvllkos!3Vhx^tskhms9n`=8To&CV(yfKx?%s{mKj8U_S#DTh|Jq*a~Zfz<8n;`W_g z+`6-ixM(yjiBlr&gd`BD1QY$R)}ZD`wsIPOcc0gk{)~)K&o1R+dfhoS>K~kBY3>=hXv+FXr2be)1GC zSAAhOE@U~}5@!-%=Lh|;LJk5uoDv9TY3DFX|J$ZY;!C8(Oq=nzurdwO@cwo@ymprN z%=eCz;d03Ric+_4zh2~yi7yT~VsO*`Q@)bD1j01&wIo@>P9h-8)-YV zgvd**$KATSx$eIMaXy+W+rVbTjfN2&ojQh%=43;LwKmqpWNvk*r}l+!Fk=M)mm*fk z8R?Kq7|`g$Ora9K-@0UClHF$z(Jz((Ooi)m)15e`Cyme)%@KC(t|dX#Rf`-VE=q@^ z#NDVirwMyld6LFEz&HY^{Jy%OhVGA}h~mn+02j2HTEE@LAYH^)Eb?@y$cndjl~5vM|K?NBYrw- z`1(>FPK*``b)dj(mFN$Ysa-toKIxb?oy2I>rt*^~)blkd6BY{QP$o+){`c&WJE0{ua~XN!yGR9s>j zp)~BsO5f6`iD!T!$sy)PDYO^6#eUE> z5j7VBha9E+E}GL-ai*%_TApW}?R;^0RZN*`TOvvtgzj=-WB!uIW>g+&HoGbc0hM-D zdtn=7LK2}Hc8?bgaf{WzwlyDH+QOdcWdun`23 z!KYPZUfH~sjbXuB)?%w9g!V6i&Fy3qPtEgP(Nf}`p@D3{9+t9d>2+D>#I$`Q7w(v* zmsjZRPB~vc-+jStLM13;6*|s{dxm=zlh>w|v9SjeTSc)RVL-a+=x~*Ak^%>vZqJN#_EQMz}!Wbwmn|L zBg&!}SMU~g((j(uZ@mLjzg3gcE0xSjXLyAYgEDvHkB@rY!DDdQRMgH?ReXJqXrM~@ zO8g|P)DHNB+I_kof56vu8!uriRSq_^5$z0pQZBr?qlaJqz3}i?yJMlBF{dnxV5T3< zhu0T*^EsTPvR~oRuhsm2|Koo`z$G_~c9{LYK%%gI*N15SKqs>!h--{~@z_wktMPCF4ttXKq+TyF&87puZ9q)R`Q%iXw*(FSRiye`3@XWz%2cCOd7Ow5-jX-Lu$=+V?8E9e@#2mB+e6jRb0xQd`MxE-8 zYC8)D+_v7A>WI!NT-O9HVGueVY*aH8uZ-SIaSFcc#gFspERDO-0>8ETtl~biA&> zZ|4F|{JGh?I#!}AX2p#=|22uM2qB>-A|8XTVNu&NpH zDfWRxTq_s=CxX`5?KhppunAh2q8avcSBcS&X|;c_h^b3-Asm@1;;f2oQ?JCAuEiDF zRn?@TYQw|6+3LN;b~lTfNtep^y>Cvd{NzQp^wwZ+yCGM;XnwzYq<9l^(65<$sZ9_G z0o@lYqh{5h+FrgXs6imjLY;u-^x3jZR=L~T0s0f&_V{n5KxXf7Yo&9x`Tg|H0%LdL zUvdCz`k3*MGHF(GV0Mo9Z=ueAX>gtRH&!QI5LcR0=RUB zrcsOgW4Duz({}j`WgvJa&KEZ)ElSCntvjQ31D>VtY>2Le8=d_H&NC4h4lIzP2SBFxuGs;_ACB8&e6`e~`jB3Lk`A;%vCE zZ|?^;V!FgfZnOm33h%xp(EEKa>TJd4aUzQ9OG1-33kSRj2z zY?}W|qvCe_DkA^+e1-v7@g{(1j^q|$JP6ec|p?dZ%E-gRr<|=z1ThAc|)MX>CVRb{_t8Yvel5zB2k6)Y+XT4QYzX# z`X+*ckx`qP-pa*RT3zy;`k;DWo9|YdxK(OeSF;!6dfUu`{tow&UF`1fAAZyOyF+hf+`#ieQ!{GaH*uxh&A4iU4i5i5r|7*>frRtDx1a%_G&ZkE z11#w8@vOytE(2I;pM(1C(LcaGr>P0{`QHbE?_OTsT#+=Z9+vy?A5s194%OWP|6SsH z_XHm4>Y=&?{jjmzy6i4sIro5u5$R1Cu6G~8+uDk_UM>yOQ&*wx_nRU&#Z zcR;nl7Y7mBSlNT^(`zvQAEUt;);kzq!746QbiHN*Vztkf#g7qk1Dq>W(bp`&ZxKO=nP|~ zf(*tqs1BZj$QM>8lvIY5yP+WpadFi^=1m^F$2o8?24(P|%638ZIb6=jAb)X#R84Gy z0@ZT-2z;u55?P|L0ys!t5}@JOO&~Ox*5Oa$4FtyzCj3{IldH*+-)G6y$*~`(QP9xo zo}8g`AU&g~q$}~-9=<{eZ0p$gKlvjA=N@uHz%L5+7+n?aL-|se3fy)=c!PQ?HdQEJ z)uybw+5piOy$uy@)Za1fHNQln<={~WD!ZhBOr-(7d2uD2b0JK%)Dgy(Y&^V~TvBi= zEN-eJy;WORJ0AF3;mvak`vW#`tO9_SH|82D1i7Yl=d9hSTXL^H_JVN z8kLL!my}+qW@Utj>;n$#+E-FsUl7hVGgmv$T0)B*j&nM1Im)j_Fl4Nb)4{*t7g%dN zok9aI#V0|cKP~JKJan>g*fMQlEL0}fYT^0D z50+rT`3+u`SVcS4BG=I3KW#roDxHx&0xTu6%pV)Gv&NV!A%vq=oU5>}ij*=urqlF= z7!~djV~KTWL7zP3S(8)+n{ldR8)&a-eD{KVaK_W85KES0HK+s#h3dlGOYC=*o!R>7 zyIpXzm7=S+$At*FeUC_io%kRy!?*KN`0-)kMfuqm!3zIOt3-_ONPKJ5C~3bGJGdji z1%4#>gq2Vv!8z2&l5PP_x)pfRtwxl$jJ}%;222z*5KuIe;LW!2_$Egs#Y)cEYZYSr*J_^@6oJYb0UELoWwQWo?bRK}vB zH=?-Drnk9Uui}9OYl#+*ZJ&H=Zx=jBVwwH!0f>8!oX2q+)GBMny@K(EoLz^U%94dd ziz-$=t?oTNcS^?xq#bPP1brT3aH=QPLTjm?sb?+hY#y76KuY0B$<2YK`84vgN1hyb z?B#VjXD?xAzZMXtQ-hPbqnlRwKtdC6K&u^UcvcPuU`(2kpaee_MT@PhPZ zN=lQCN3!@CzCxB2rzgksxZ$O)bliJ;Pm_g*_~KDI=?{zMRa`v2re%j3mrzHWt0Fku zB;)sTym{Tt;}i3?N8DSoAyu6U&PZ=WRi~tTA%P8CXY>pjX{oxOW~XPmj_6&H4Ug*8 zNH3ROjYeZuhPjHf4SOz4XSB76JYXxoD3!W8y`qACx2%St^s7!a)Cs>DtE3bR4{3>G zPHL?Ml<@2JRYMe-;D5ES18GvQzUB=+Q?9EM1SoOcit=D~skpTZ)bIaw*fU?!Q)`#_ zELyNnZtV#(`ZP?PK&cckNW)hpelfk$Oth(pdXeaZI0{_8jVXo&WqS0(tATfF(1~`; zow3OTAA|Ia?O070|JORQU5FQX7wy+Pd&JJ62P{e{KxY&Iqzu=f z2=ndR`A0W>K*tQ!jeaszvVn__OI%@r8wgWP-01`Rv9Qv#{@6ashO=^PrlrDf{I4}N zj7Hm3HG1ftoGx02)5Ei~Xn5HoaOL{L*rT;qIm!Rk5CNw9n!|OtpDARp0JYFOUi14x zc-sZUOz*35v`PGT-@sTPG=}R~FiDOy^PYx&G{$%ev=HuRV$cqt&JrhTe(&RC!lu3| zM_Xr!=L8)ranQ_r8ajmhIJ=z4Qs|Gwz%@vng)XW80~j%`L-1W=+;x`xRN#X}FEsW( zCV`o_+VndFuUz)h`rqGxYg4ljyyk#EAezPL%1yJJj;=0z3y(JLpqlN~+qk)=>1PJKWQYRSl#v-myE+JFF~Ft)f@mCP zlb=9?(zPu)z?9CHBGza0$kBhoo|EmG_M@iJEN5-r^?Gdi-mOb;Z3N2q(;)=+oh&Hu zW=2|K{BHuDLx`H^Qk8`A+4atSU95xAa&8tkq^6#4-VbVY6l~E7TXUOz(emYhd8r)m zk#p``4co825AYq_KI||Q#C@Zc*|g8p2EAZmWKvr4*O##0EXJpt&RQ@EPaE1J7J=ka zh0?;!C989aUpCa0Q*FYby=l9E$%HSREz&2lQGBiZt$L2S7%8P#6~`jBA(pG_>94dd zZ9o1xig%$n)Y5D#Z4ZzhF6@MCNrLaFx41LSC0N3mIVWLK-d8Arlw3evZ$_j+d`=-A zStpACJCtH9fTVfkQP^{#2bKAFrDC4il1BIxnSC72!M2Nit@HYWqo-Sgr$@c^3ahi) zt_c_C(JfX*`F@X%O$^|FFN`3A~(>IzmA^QB!@C!DejR&>H0q|Ia~#ygY^s7{dYue-r=YPYc0O2bN+DJJp=7S3_G?rs+ajpcY?9cK)!K{f#$kVF;-(1{q)BEY{@iCssp>Qk^TC*4f$53TfSa+l;CxsMy*Q=QvgFj^nV@ z?^qU;_t6h4su5pTp!S9*aQQ29!Ka}ap;`*Zf;JgxS{k!_2t=Kh#UwwE*R-XUxn1tT z(W`hq`*8vtI=rT9CquSkWiuba+RG8TkCt9x0K?pb+E(FSZ+HeedQj_6mwNf-NP`d#U)MS1-hZ$X|JkG`*s1u|M0pd~Wllf#epDbUs?zeA^ zEg;2O30+JSdE_{0m$rfo(W~~8{kXhJ?iFe!O4uqDq%jOp#CB<-#BFaNE*p`P1^wU&Z|e#1BY3cAII~P*z8?}BgnT~48E;GqJx=te>uCp9*>#|_l{*#+`YHn zzC9hrp-_x<{|cl+Y1g91rkZB^_TAXRFePBJHH!2l>%;v+nE}@9lC6@@Jg!7*qncPJ z2v!>G0Xp41*y=%_x1;*iwhHj|Q>&I0!wuT{ixI+I+$I~wyzMrK?`=nqy(|>G@!h>~ zKkawEs;4j$l>zR{#=#zv+Ldv7O<&7gGU_-N3yNsz;=dh|5YM{L$inEkQp&o`s4!U7 zAyjKt7*kL^^?VoIf6Fc2zadup9qe+c$qJko@LjQU`cENhO+SwAQoLfQ~w?ZU#Px-SUsVQ+B|uPV@*`b)#@acAuQVXT?6*>F%bE7b#t_O}K&;cZpQ} zf$tJG0UvkC2e3B}HC^1j>)M+JqM_||4-(<~u2g8$n6jh)G)zYIfmjbDxar8~M>U$jbbJn_i>(G6k)h&n>HRfEhq6NdS>)C?d+f2vE zl=ko?&k6wnYR`dyuiy4exa^Gm&>d;agjj_u=LKk5H)}A-} z-Fu&H?l*tPU;mVEbiT-5!M~f?&-pquY;wUN<$QQq0W+PP-%Lwk_ENdu4Da4w=giML z8<2T-z4PULKl}Jz8sPBp{V%sUdmS=2J6}qcKYj?FgQ#z!?fS#VxWSPT2gzoTUhUqQ0zmteQ*m;p2$^S-HPCdG73>hSwU`(dkvT-9t0FK5Z%!d6O$$WTO+>vDJ z?suCE;-Mt@)!>rfjqzbax*f^a-Hv4Y-HrgbZl_DX3D0^O0KLHy!{L;w?QvnnM{w5V z54-)|gWc%`__pCE{cNYd&pLg=l~~nx)FQ#jYV35kx<>KDRG-^l$ncz+kIn)f%R3ME zp7z#?D&+ao!R}ta^GK;Vu*q?t<=_rF`)kc`BH?2NLjY}mIh>E&F~ZS(;T@vsl*=>o z2(oZ&2PspSgR%8`Ou41S)-l0UJbn9s7m!GD08uqj2owi+`fLF|oM2VTmn%6O8~ebOy=5kvpz~4*zR=V!l!ti&eiw`oP4MAn{qHjuMYPJsBT8j6Tm-& zjz!9$jmr$BWL2jaSsf6xyWQ0QwzN47%X$m0YPfOMsMx<$*6lWvs2b4bN?Fxyvrgvr zT)Id#K|ydZnhy!4)z(5F?~1-cOXcvD&9RVRh4v~66dF`kASGMeqkd#~;5Fcw!Q5x| zewz)u5>g^(_i^ie++$JNp*;u*TkX2ez~z9a$Fte#i|xsr&)3!sa$YQvik zcmS=SaqC}l3fkAP(v-11K8IWLqUBX(wUBT^@{LXTyqMj9jB=f#s7T+5;!#E7P}`K? z9|r6$fvj-_Ez0{7=$UQ|I+JzwiWGQNimsMX$WvBMt<*`q&e?0(6+*Ty{U)EWH_xQwMrp9 zQ#3vh=Q<$Ce&Ve4&2Bz=!jZO>?xjicxiRthc{v(gsfr}rt! z+wWVjtMhpjYX8wuzf}(F?6OR8`Z-I+Ni< za2WDdm;tY2NjsFfE9>4vom8gfezvXokCOd6!H7z9KWn#bA0%4#m+>EGpDOIHnpBrX z!iQ6%9H1j88ns4*;6ZQ-(!QMG5i{|VXbRE9-Gyi(Yjs@MZuHJ*s3txax;RD#UBLT) z%YbGq!)@wnMyCsE8rcSXnHAT5rv=x34F2Qf#|b>ROnyeYy~|umKR{UwoLt@cIlB8? zJ{y88u(b)#r06;UyW^Mp3f=;~z{{MU{57UB`Q-UwRzfkL@lm0e`L`O>{mm~+26cZk zJ}gYX#lTp?-qs~OWo|>mDXW|f_+~PDIo#jx_wk*gMPJc-eh6w$f0|Irs)wJ6HJ}=b zOK^3ySa}6(Ns!ZmwRd&7FSwi;wNFr~V+|N~!xRGw3smnx<8k9o=iXW48U29(WV)-F zYF-a!HnmY=Ja~m9Ub?~&DNZP&Y{ebykHAglUg z5TxFj>lyyf?e^sMd^G$S73!Y>;TTTA*%wWhB*yk>qKLm+1>&vttJLw1P6Ai7-k#mu z_&h8)J3Dh%%pwK;TnKH@J<3`0%M0l(5bH!0UJbOl6N?<(uYP5~@PBCsB{RX>+U_wu zN$r~3ni^SQU)S5Ps@6<*Hj~MyyK7~-lGT}AgycY~zSUkzjKa1#osF>Tv$(U>SPg9E z!eu;v9_tM+GAxaE{q6ZTy)dB)#B)>d2iO=mw^AQ4osU@wfw^L(mf#iHprODVe06tI z8|$2ao=R>Hkn`cy6@K1jggjZau!z;>yS%=jTmmzR3N2~c+jnCU0{q^CnK3}0+K!u! zWj3DI4#)N@D%IOks-=jGGLD3 z*^u-oQrq3s*K~Ar{1RPp8fQ+pLR62p`7tz*$XcqmJ7##>U4@*5+NpnfJJL%Z>Wr00 z*<|1wdCSbfr!;0w<0WI$!Q3stKrw;=y?28={%K?CskoeDpaIc5X`T9!Im64j0(C}EfRmTv zw2b_(Jw4bRh(3_#pDqtIhe&!3{N@0sB(RGoa^++u?xCWk!j@xAI&e8P<6OFN0tQUa z1z6q-N!`cj?>LWa2-#81=kB+J%~V50ofISOSJ5So&GSaE7P@HW)#Dlam&o-l$HVE( zwVJ+GbeW29&W|8woyK&wyj1~RuO9qp*^UsN+2sNCFn0$^oIN%L`K`$rqrnUF(Bta4>tBW6m6Jjf06f)iC{TbyZ($LFP$I?YYg06<;o-I!tB#qC z3M*+_-ds0Iz_DVWmkx!nK!zm<8nwY`)TX**X;e`5hZu(%{uFqDAa=>Fp?^nP;fe;6 zf;D+zP{$*yHJ&$7FV|_{IlZDlvHYkfzIOf6Cm>dAs$SQ*XZgNu9d$Ln&;j;*h6cv1 zCi>o-f)cD`vBw+swJk~P`TI4F@lC{=y6&yXrpRZ`H7L1N$8_`P{XT*+~qEeSlIE@ymfnb{`= zujBBLF0z9@L?(lChq*cn(>!4OfdSs!Q9AyB%>{%BN9OlOdRQ>;?{HRUL?2yKel)Nm zBg!s}sxJzUpACvGisO8O1@+zp7ALRR`T#FnmJ^Vqh zx^$p`8P-q%!`i2GK4HGou*xe6qG;bLuEs}@QIqjHv*m6Nc9>lND2nX^bic{rZ%ch zy$-l!66#!m=`qmNFaF%{GPwG$a((K8feD)XfK7@xLCM_sRal+Q2(XEw~% zvo#r;zrY3%0Z}gOaAfKbEweqyTnRnpi7uyA^n9 z-A*W9%-V|EedG1WPJlT!IY5W&V}`B7BPjn?mE_}+eCoCVpjt4H}*bG))u?d|NW(BSWM;f0dEqm{R2O3`7*aw99xHNV}e zN1O6Zq{^-v>XuT*s~fqZI_#tDsLz}wxGjJwn}&ZJWJIBE^4JB@!wB+Gl!<>U5fm%4 z+$I*zr3N}}*Og8l zLUM}R3G%%=qr0Gu`-f&>E)lKuyA_3O0S4l!cbC zxaUd3-BMgQqa=mKjOFkWZxgN2Ozoba_3L#umynvmJbgp;oOnc;p3Jt<_JmV*7Ui|k zI2y{`u}uDaIyT4bMe#UP05lnfK8x$20-VXvbUXoRvsR}0?jqP31lMCp2o=(FR;ZoH z{Fm#F=a&@$bGKTNrvL(Rap$6L(BussA=v^8)j=;r9n_>#H_SZCdPc?2wmY{FLu+64 zG`6xwpbC*RkKC&feMDIla8hey3Pkx1=S-wU2HMm>7T<6!^aN41FFn>rZj%3%9-b=c zC~H0$>;nzX!^5NP-GlC+XVjhu;`B7zXnP|JQQ5fCTDv?g_Oc#fBkw!6A#A$fZ$a1` zRg;MAwrn}kix4*UI8;s8QgqDuCF@w9WKlY%0F7_5C>>L9#z|R%j%i5iuk1b3G3t{? z$Gr8}U9g;2*P-p~5Jvcfuo-z+R3TEW2kC$`*{c4rNE1(egf!LL{ODEdHhW){b5BOI zCGEz{#rR1pT+&PdnAx9t_Dw~F6`<_St6ctm3jDfEgZ2*gaCUXlLhqp)R(`0nTd_@V znp}l&KE1w#Xk@pUJ+I`unZLj~TgTV6L-S~$b58coCWNb0(%sc&rC7XKPzuS!nxg!0 z5qg0)IRb}CvRqP9SivnpO-r~;k;4e`P)|w}+ucEzJT%&uO#|0bgThClW6)X|>>fPo zul|mzNQru_^9T%?6cwNc=(2#EW0J0p%K7>p^tD@cJTeK8JTUxtM~##a8qG{g40I%v25SF#CU@q~op+(fonl>r|q1h>x*T z!O{KU(ZG|Oh=0Dec>X0l72VL?CVCY2vdvQus*?rpgYF3i1TQz!7q}IhL1EU3px&w8 z(lnrxmzF;OoH=|73uI`%FAbwi4+g{LGxbA#0KG;47FYF!M_r# zln)Vs#Px1PX>Tid$3pTZFIo~w&8gkKTYNug95xz*Mz?X)c+}{@uYU7a8X4jM{^vr& zt#XvG3#Z$kC0_X&he_(BwWr9hcu*9nKV4-&T@B-uj#W19t@g)LAigVvl)uF(Kx`E? z$jknb+W!uz{d*j=f6n|GhlC=ir6E}j|oRlzB>V> z^{Kg{8f8>X#w?z?I5L}5B^b@|$){1F9^j!8 z1qlq3)@1=4YQjr86vv0;5(jtub_#BK?n*6<)}2MWndx>++ctsX9lN0%ZyoOMgEF@o z5;m2U&4hUF4%C7uHA}L42CvfULSk)#m;;W|gMO<1HJL$duzNjYQjq9tTUT2>c2O-c z%x9*1V}`9>1}nxariCc%tI;$G1xuUOvin+1Pf&tZ-Le(5jlr|mco=P4$qs8ZO>Z1| zl1xOA9Lg+{XufbtKaA$og4Z01+e=5v4MbPfsa91ZvQQMy9HX$eVzo9{7(8t zkjxR6kawQ}u0WXhZe&h&uY&9`YKjR>=K3WgE=sm5_JkWFxBsl7eL2T0#ZUCWlZVti zWj#-@9-WF{mP|OmZ;;lJJydNSMIJ}x9Vn7;L$%bvufk}(_mvt`9bbC%)^HO-+<6r*iMeUpJ_)dVDkx>{U0~u-R+>Dn>DXMwLg&$-TlgMxGcZXtXHmn zxWfan{K+f!o^RQsjSL*=0}b@^k@El$-C}Vs&PZxw8T*sJ=A7b18nDv;Ab5kZwmbQ2 z;KVBE2>ts5!#Ni=xFP8|!PtOpS+R0qLMcnOyBSPUhsh7d7IY?MoKn|8JA^ZaNW^16 zhUw|6Y=1VoVc&z<6L8-Mf=`Hc{0PdU-^H6tsB)Y=0s56an@vu~@Go8w1@zHu2HqyV z8NbRNqRIAj6pdX>EgC~9+eU7GA&amNe>>NZf?|-Z2j74HWIj8e53d^FuVK9S{`>8% z{@woM>iTkg1b#1OD8ZPHhL>Q^`Th63pO!ccm)#r4kx+>|fSmu>2F}fA^9rJ2o2ZIB z$Xxzf;8XkE98d2)?F%^0MUMZtZp+90_4Q4Lp{dI0Ukmjke(5=|la~kIrVgCwod1wU zduM%3#l}|t`t4%o_80np+}Qjg+q}Q=hJhY#IWWHz=Q}*e-A}A$juYOwvT2>2{j8AI z-M7uCih_!5;O!h|gtgi|oXGr+WkGotxtqL)CZi;1sJ-C{=v1V|Zay^QOG}|p&?e(V zOCydC@x(r5;4eRq*RrLSm#Bg49W5wjc*$tl&7}pd0n!vp!w&ip+_uccyDCGrVr8>f zVmn${i*VU|bsilaKHBS}@#doZ0aZq!<7GkMuzv^}RK(4}27>U=u zk`8!qrgeEP=}?&J6`BSKQSI?3V3QNTrh%)jLYGY}m=P;qkAuqYM8npvJ~Q?ER9ULL zdn-&Csb_+G2Ke&+^>_@NIlu90!O{8R=7f?nkV-;e+dCVLW)kAR-&tU^+%y2>|5GWz zI^_O5p3l+{e+CGMwTnK6QXmZoUfpas!!b-v&%$g9F&g2CnS;urRzpT1>9WDhF3)Q( z`Hg==4sN1;TH&6jGy;~1+bX8t^{e?BB3)}ciKO$@vXzaAT z_g=<1aYa`{Yz#12SVxCtQKHJ<+%1z*_1qXL@v)n+rEzTz;S|uyQ5$uj>k6CgGJnJu z4pW!?;OgKrsL)zk;All=U(%B*s~qb9XEAnuzWj)hQTxwWt`}m_<4{NAlN%1>w{-po zll9~T^kCc673ey>#!wX-Z>%PXsQ!ES2zyM;MXr9o@q3ndYb(sLT|qs?mo=t1oM)rO zZ@9!V?@!hmw@mdwZR4UJFw<>MLU!raARgqibj1rGZ?o)$%JR#qwcp6rE7x8;#Kf1r z&VH+7b*t-%&!&VVEuGFHOr80Zem3gVmkV%uQa3RAi$AINij&IbcY0g-llLY@P4pxg zJ3eIzq5Za&mhlnUg^e(q)RJwUqu&6z-vxbi=V$n$;UQ^4%BQ4{E{Z({wy(vm38NDD z(D68vj1S}NN%1wMz`~e=SmL5=g<4vqS4n|MOstnyF`P;kL{Z6-5mT~6aFi?&38n2> zoNYx_Jv9jNf^2J6rg-b#O=Bv)f#&#DJ;iY~+n(Nds$Z*U&Ta*ov-))%YTn43Pe3;g zL`cBn{XwglY=%$2-AnTC%Zt%Ke-h}q6>v-vzlS-66mURca3Zq<(7L0WOVrKu>uyw4 z-YBcv)oO`&;Z}nA?SQW8$2Ee1+tc?`yz1KmdjGTRRWJ1U{JMzu9^L^&+OWSMwo_mP z(e}htEQdjo!E%_z0{1ViB2jPyM<1K*8s%_|#iDQ$Xy+pYSmL85DT*D3&X~BXRo-sQ zCE?xlp{_{EBaY4;*hlL4k4zowkwCag|A?x0J{`;&=d;sPrmwl`&0DbAIt^$Y-- zp@wWyNAnNJFB22}{Xg@*1rKq|L))dzCRwmH+?G9@z-M@k1}++_H?ZpYU}d;9P5}p3 z>nz|w7HRrM_8R)~CKDRGI(7E>Srwn&5D-61gQd@?P&Eeg4e*yZpipvcr6EpOgm{nt z7x$DSg*=t>5^@xcL}DnBXpMhmy$w=_ZAb7&sLE+F3yR#flp3Ikarcq5{2oXP?r>SL z1Z^>>eM{03)?Xkk)%Abioab*zZB|jS7Dmu>q*QVH&8)2a<2^Wa4~7^wpuyEQlJ11v zun+1xIJ>O@vE{F8y03`8w?=vG#7v;Ud}yg(DiC-VSNPMnxxxd9IRky*5nDeB+LsG5 zi#zgueecZ?3ft`8OcxMMLrGtSH0qp>L~Xjf?XA{$x&27ZK2o#4cWOpDU6zOXttlCq zU1RW^0wtpyT(kYjd_J2mK9aPzBWdE__9IFANYXr#_8#feN_2D;28~etJ(08>;0|BT z<}VgSnub{ollPIB-JY09jFl)YV~A|e1_0X&VvYTdNt$yoSn~yBD^38COwGF^m%kwg zRQ4oG$be2<^FhRc>qnCQdm-r@#SeZNYX1F{q7vR2WsU8dIX`ZL#P9m@23T5fKrkJ7 z6yG6&BmM~*@y<^KuDp00u$Ks8em@=tw>b-Ynvq@pOhBlR%mGccF~^;oU~T=Wo=Qf44aMl>T)37*OnT zOzExOv);j=FDCJO=w;z4`9@2F_WsIl$;x21ApYG&X?vig23p+1QFW(!Qy67;GC!Te zc#9T<;OwTmeROyLe(JVBT(cm5D@~Ky%+|nf#K{a?rLRL2WDvUiL>BA(lZ->b0~chO zGlYs0gh??#8yn!&Za4+^-2GQTI&`2H^b3U0Td9%wAtNFY12N0=;y=yfuX3M5> zC!*?cp=dkb4qsg(4@&rm^?>D@^!@Q{X>9|d4V+^8Z_`3~^>FyFT06`$R7*^?3dVk$ zj@88_={hcjam5p?CNEQarRrenQ?)_Xij@IfNmT|}bt~H*FRq6#r(HZ5F}^fzcH{L6 z6}Q<1y<4wQ5#IP3b1M@AA`)18{&lw=!$hyrErBoZmH}F=TRT97!3YPfAQl&h8}NZ? zLKu-q1ES}WN_6r5N;NZ~Z!O$V`Df1Fo79MpN*z*$STmH(}F30D1 zGD~8OnjS@JQl+HAL}BN8DZJE_U4aQ4-=7>e!^cV76W!8XgOt;Sc4e0$-k{8JCcM+v zzWvzQ;tFr(;)?{s5-mNskdd2F6`HZ4`wnaTBd4x%S_N1Pb9wNmuDN0}>qb!Y)4A2) z&)NL02{f<(3y4bz*@HjX&5Lo0=hA}~4uE+Cy^X7Z-wl z?9(LU<7S`c@Xi9_-Ek9*0fyn_yd^p-#$VDZ{BAt&0)G8CretT{qK})Tz1GJkR^!d8G zLJzt}k9q_Ds=;agMFYCQmjPq8`TC9dt?nF`le4k;yN*8&_+Kf+A3)_HB*822zRh1l z`T-2`6~zw2icg2+{$?_kcGyG`tuCnwe3d34EYTAJ8Svopd+T^#;SqE=vKV2->oxMb z52n({xWd@bqwgT)bPNvb{(tt~ZMm%^Nf3PJ zSD=uVRzT_qNm8Y%F0GE%D3X$BC6OwU%Cu^=Oa_sVgh>iu0c56_T9(bl=3#9f#`aHo zd$+A;XKiPGA?uIUFL7~?%Q*)iz?3po-6`Tkctm)3M0j|3c(`9cl9yo0wm)k_#>UP* zo?c4a)nB1k#$x3k_jchMozK9>-qQpA-aDOAl1Fe84*}!J1)vADZ0>J7IHYQ5N z&j0w`e+PaGkExoMT+hxHtbJ3ZI3xZ+oe?>oPjoaP_LL9t%sKGE!4nP*&=rljUpLlx z_dAFA=@MBs_brGQ^>8@kv;YO?9f-W{4#yKbG>*^-lie0DCV@*P* z^~IN~w~kx?8+bN!2>Oa?2J>#yHjB3H&#|Pe;b-P9x8PkA{_-fLp}%4{zz}|XRS7gc zHGlGLBOp`CjeTXM2G%b0hS2>wK;O9iRRJp+r>d(!`ymuDOOR}CuJ+a{1a&i`{iL$f z2__)_1YW!|;%9PuuVD}&*ab17Htf|aSrBAS)ey|FYG9a&RRaNcYJia8VQqQKgTXtv zfYBgx005~#c3R_L?Ty8%GiT9k(^c)F)3O6}7kpvt(8$ri2sdA3bR?lEbapV$tFev$ zIYRTfE%Cxk0go<%b=BL`B(|QEV%H7lhEVo){dpjU>(*J&apo5s%a zn^Y&bo&Ra|WiFxgc}-TxrrNYS?(=~GEqcA4*MFN#j6>l*dRS{26%+u#(y;^#5d5-t zgEABTDe|&84f47%{lR1n|6JGC6nY=nuo$j z2AAU6$aUTqvq2E2c<3lKMIg$_DVnCKp8D85T*ihProNbSwq82!cwN)M(Zxs9!9?d= zKSbYrhZFO1e=r@NPhc6Fa}A2Z#V)+Ign#<)3%J~y3}2m}4WDZYTHs)N7=f$kBf*%f1O_zmkliPP#Ou@n6!urFw^&<^;>5M>DBo$@ zDLV;nab3-RrcTP26B&UpkX`?2^v)iI;TTQS!-Fu93xD)2Q7He^Qv##XP2_mM7tOc{ z(b|VOn+O_%cb%@x@#MrDA)UvEVzCr#FO#dm-9}p)nb<*^P}V0#;H9WE(B8vEkA>^M zm5Fmy506dSE$VRUM$Hz-UqmDf?nA(QZOnK|#3u;Lne23IPDYH!H%k1>>ZDQHVc6r{X8>YPGEt7h{ zH%+CJZC9y>8(320)W#+XXtk<1aqo^aDvYOj%0RsjChkqpz$sslqCt*rc-0vT?+@OM z+4`WqxYBRe$z_$A?nWBzV?IBdYY93v&B+ms(|uI@nU(q&ey@n%4h3V!3Q5Kzj_?>n zkoUxIwa*<7z!!G8{#8c++?2pw+2E?gWc3CWUI{UDY8!<2KMk}IT?G7H%oe;`sY6_U zEL|OM3MyG+5onezq>lYQctF%gzKY>Dh^LOmmYU3ABiO?&xG-_4|z{da6YUXVtcyRWrw*Om zj$(Nq>xND00`8~bkv;Afu$jC*pFnF9E5e_j9`{K#01!w0$z%xQI6eottlLOoX~Y-3 zgQoo6=4Hi5{tG&_XSXrSD%++?dybe5M|W~q8kYXHLgN{1MP={}*I$R>tS+Mz4@Dev zHQK>#M`ol-f0+d7N3=MUY&m~2Iut9Zlpjel7&!m)#+nm4`$m>oq{g7)U}YS9VzVrl zzXDeBosy)8-$=!R7Zk;DntTe{wn=V8w&#I7L{mAuw)mLym9{By(HrrPz~ zd<|z-@6|DJYu3udhIWnd>MtIpej~~xPof=4+v=b7z3C5_gSb>Wy0|a6N*iK%8-~@y zOEX*4Hd}LWh*2yjY*RMbxZ{E|rL+6|#)}8)7To)Pd3>jZty&g=E#osP*g!pI!()GR zv1gXVt%$QRDWo;JS-$$rYVH?R=bbUSyN)pYLHL|)P>rQwAf-rAoH>*f5PXJP)*;Ww zsw7FuGSW&I>ny6>vOZe#qF%L$1fYyBCzgRI#Ti!4DpP{i;d;XXHxw~L{xvM!fdn^gm!u>Mqy~MYPwrfAZa2)c8twv&&3t>xp*c0JxDkLoWs`445Ux2iuk@7Lv^h< zR=J%Vfhs60S!_Kat-X|_B-?*BBqdj%X~`8-6Vt;eYHCt>AWJK)TwX=J5IxaSiTs>P zkyY1pb-Gs2)L5u0n)caPwHZxK1&XGof=ZeSm^@9_6kXPqNC$70t4P5Qefa^w7C6?} z9G_meeY%=3zD7kG?V{kx!~KIKc?fJCVpMe!P4!+z!%aqZW~}*7iAgox!@5+*D6DGL zh+BZG4tG@#Q+AN^_0QC_xGqMMwxZ)+yp`HctKWP!`VMY|M)ocU4R(IxZ@KZH=U!f( z*!w;Dbwl0&rmxrH8@OGQzw0u0ZH{|3pg*n6w|;&QCwVG>h#qIJoYm@+_`ch~nXz?T zD`W}=y+Yh=y2ni=KAsR78A{WKLmG4`<=gT{_K`qPhfCM>*f#~LuDVl#*i_ULFdC*z z0ekNtWng_h_H}SQrf-7QZjvZ$L)TCu-2i3U6W7Owp2UY@mF3PA?nrtlN0LMom6CL3 z!zT$1Cr%Wi^K+gcuqdsbKuQ(kMueh8YZ6waFjGSU6s}vLSg!ix1ZSiOVUZ$4>X5St z{8#|J(ijnH(GV>XN0#hnMsof3wW4W+r4Y@AnrGAC+T6{1kt9)JeR13mQK44@W_HdL z&Sp!q8`-(p$h2((?q|3<6-&VlZU#o_7XGeZ_06sa4)yiGZn=9SVIOlC^X}bhz9f@qe0C-?V_CKGXDpjp zwyU!&+fW|X17mE`@DU?#r~HzE#M#6VVt-?6=h*?iNXmjd-Fy6(hwy%!N0y)tj{2j{ z2V=!(r68I%m&FI%u6-iEtE6XEh0Zy6wDa^5ZG;`FR_4a)M}y-7rcufRKrgil&_pSjnYL+v8`1-lUypAuQX{R~O7qT+>Jo_kPEfX*f!XYYNF`a2D@K zrmNUb=xz|`6wx##Q#hvao0Bt(%Ebv}wJE2La9a$|=EPATcjp=K=-#fmYAHvd-oA#b ze=|5*cU5t_-w%#%1x*9gE!iM~$ff+@eThlE_r(SO`0-NWU{7>aSlIfD4KNo2L4B^B zg@-w2+G8(9jq^etb$sk5DIvv=RTw31DS$G02G|^{Li$jG;`o*%xwP50t7Y`P3HGz? zSRXyEa*J$)>@^{#_TLJ`X2E3kox54Xzz!IM7=rnEQT%9s{&+bDD&gjG4ZTlnY0X>3 zjhX!(r`orMnpNsCV{<|3G4MDtLK6VoOt8Lox0<6qg6mbh0=|NnezisVmJtvHu_zHT zCR;H{llD>b$*OKO?8fyo%~uXwsyT+Q?7D;l+a74Bokp^gEG8-&>f zyUc-6cZViI6OmQ5>_xM~@b;r;rPxH4k!vp!Sw9+)S4zAQ)J)>1)ZX-xFMQ{ z&Hj8iTuITpFf10LBfUBrX|}}o!AZW5yx5&jHv7j|Lt`5GM|}f1_tw(91-I_nhO@PE zi_erWr*C_KMptR*mDLru%NWvgRnf7!y8tD?kuc&2`P;hW5gt&@qa)3MlAJ&N2t^B= z>-faPSs+TUirofm%}Bt@CC9C6B*(2Qkwe|CFOewG9=vqYh`Kd_v@^+(u}G~amD##~ zHi{MOsdC9=>l+2r!pZ0RGu6KTIStk1S9yEVoSJ9(`KJsW1agJ{9r>yfV7adQ1H{$m zi#?v`?j_FHmB-q-r-!X|L36^|Z)j5tYwb}Z*4x5bXY5Qx%qxxMNUVSJ1}gcRM2C&*HG04UNhBHLasi&ss9qC{Ak<~SF3VB?d53@v*h!TE@Ma&_sP|`&2hHbZ75}5e7ZE$_j-Ft5>Ia^vMYDLxC&4C-+tPXP2l1QLZ8xI*`jN#7?dhR|v$U z@F#=9jW|1oRGG>}6S@ebw^VP>-&n=(875+**W_~#9j17M*5e3M44KpOH9XIeiuCJ9k#(db<|*+ItGyT_Vbw7=j}pS7;x#%y7%6i z6D+Pg+5J;hw|91pIoPg!-Z|$fuY!txntG3OseXG3&(m`cQuvDMIy$H9G)Ff-j-I67 z4m9)rCmNhruFKJFwu`Tyn~I?vY3i6!nw+InLZ-}-a$d?9`LmlC>Us+Ry9-GR0D9VH za;EJD?+27;xinv2$n%BWQW38C?u( z*EUx|(7UHGC^~&IsggnRS1xXvW4*m`@Rx_1JDVF%b<`)H4!#k=f63%6xd7??;Wox& zI&}d**NYYNwtD0u%i0&+9A?&zY1w{ta*kny;JZKN%pWK&JVtEVfj5{ZHsmbqoD&Yh zTmEsCg4do-PY2*`Z%q&B`Kbj;VmpXJx)Q~7oHC;7Gg?Y{hk5XR>7 zJ#9Y51NyZ5hXP!By*huxKD{8&)#wetGfuZxvGb>3H$EMYUiXJ5AV8G2Anwx`ugSso zp6RnY4iX^#!0VIY(V0qoG6q3oJhAO?B-x$O_rvKB7!W!Bf|C8y2Xv8vq^4r~Fw7SZ zPB08TX*79s5@9E8#ao#ujm64iINa>L-Z+1K2G?a&&GF!M|NP|4L;^)t#qm*#l`v8x zj4mf`LadS@uo9mGfu>jB*AJ(C@IiAzu|wZMywIsdXqzZ%tni@;=mAC8yu<)iep<`G zRBOFkt0FR$2cpLt8#rGJ6H|*kf;v7`z_2$6UMzxEahNz-0aPz;4x(yw+6wKqzD1)g z^RU-8#zqc&{lxKE9Ud6!k5*Suq)gOc)**#q*V@4QkDsvuUMKHwZ*jGDwYnI+w)apc z<3&*$S|+*tV18V>2jVuz{9Um@^Bn&Wq)?fqk!0Y_%;?zYP{P87xPEcictK2i^NM_2 zogc2H6impV>;r7iq+E()R4xUX)gS#QGc5P%`6?%cJj=Wnw|vV$#axEdHFL4ZhYZHl zA^C*~YL?&`hDwreZ0|mMa?o?%y$8ehgJYb)@C#a=Jb*9^Jz^$YILl1pY!&vEazmzK zL&c^U3+E=7i_b_g7|zWz88ex4j3yfb&NCKt42Ch_JUduS5V-yG(TMFmQ}8x-hB$A@ zsBtz>Y`6kNcM3aCY#gmb9Lx45ImZQefP)`E-r+ZWtVCOo>t>rWchl*_v+4jC0hygwqC0|HED+2;CODZ)$N%Z)XP>mSD zwC&b|3yyR>LSYn#V6zxH?TAtjxjJl7jJG0@cL3Qg_}Ivurzn1n&QhK5P-bA`HEK%N z1!a~^!+L#6>y<)}KY{fM6R0yD0ZX7Uq+h~iMsk6(xa<~r1rw-zb{LbyGMWZ-v7nMT zF`p6?T3c<33H))Ky5oLjaFM_k7sdMBucpoOma;JdIeTOCz-=uqSa=eROd*R=xJ{Wr z;!QAm$w7v3?=)MA*T0hQYk%PFbAGUx)OO_0y#~0nr6^FFsQ^{xa5(RnZ#pLe-#a-$ zkGjy7Pv4?PNh)dYd(sf_0go}He}w|Y^t&HNW6?tq3Jo1d7@og7f0r4B5Z;nM5BQLL9eiJiR-Jm6um#GXfyEP+ThalD^C+_T+JRZF1z<<@P1Au534RYO!-iK$3*} zuco5TIS9sQna1=I;1(fy)^yamJu9*HjHa<;e^ldPp)3+kQE4*}2~=9nh(_Xw+NoK_ zaS4l5>b&a@w5j7R%a`+`Z0cDo%1w^wO@+|@DIMbuhwld8^e01>Mmf~(_UPC%gS}JC z0gwv^U(zp{TnR8JO+ect8v5VQA{R&J`3~-hW{D;b%kR)l&UAex2k3SLY|}>n z()2v{a@Ik7Sv!jAP!%1s3{YxO=2mN>h+U|;6>QB!-wuwxEBU@%YFlMbi51{BLk^D8 zKy2zwmH7*=C))=H8xL8TDhPB4y7IwqG2~F|2Z$o{c6>e^SkKX8GJtBm>z}qdKTO6z zLZ}_k{a?E+F@2D(?g~s|0kuOkh+C^gd-Kuu=AYVKcryv1t9M>^j0_BSF_`vv>|d`7 zUraFGFHz}%`sZ(Vb|3PEKs@Lc4q3@J6hRF_tg|DrRh+nzaR^vLD;;gW^KL*|9 zS~r^yQIB5@5Fk-I+@IvDCoM^)Alysl3-04d*%p-9=2%Fl&CJnJ_X9L}sIzjqs?KWf zmWSx=lj3$`Iz{JV5Lm2~>Rh-5#mIG{KGOJFR>>E|ga!R{mIhi0l+p|tP${W~qN@S% zcSQP1$=X4T0|1d=K#V@KOe!~xQqx0P4|5b9k6sOc zc@FrVcW-2lKSB5|&Lx&m7zh_n)@PLh3>Q&iGvfIs%COj)60wafPGWnit;7qxv~fp( zXK1_$eQ3r@WqJR&2@F@>y#r*opFV~M_jJvDI|~cVGOyY1ANMEErhpvq47gwfOkjsQ z81yGcZ#(tH4R!31=01i24o|5k21djO9)9+Cx9?{H)HPw-d@Z+R=Ah*i`9 z0ngam&5-}hC_9*u2iZI+8EA04H|mImR){HFxW!Y5g%nk{caEyojVJqu_d8LhSz?%% z#3fvU9g~m*w2QB@wrGWRWNJ6Pq125vOw1ntLNO8I1N9#4?LProY;U)S_Z+it$+0Vw z(*Sr!1rX1IY8WvI$W~4<*1Eo#RpZtDYTs|xYR%NMGl1TA@271thEZxu-&6Q<|k63aJ~9xAzZk zcN8^ucH#Zx=JwOW?h3)PocPysj08=au{n3yCKMRzt~-DHqu7^$Fm~f0xKwZ(bw5%V zFlP>;E=&2)`N39S)UaspwXG1zjZfi17)1eCTlY9if2$BKNHJZQH{=EANFM_)JA0cs zvg^v*@mu~<_!_c1Ivlmh3h$ClNNs*iP>p1rk=qJedyhP^1dfheWo4G*=zyxxw=G(xx6&j|XEhF|5O&$B(zRo}fKi zJp1OF4x1nAbbuY?d3XYvZ$fO=PKXv!{L0gUH`nFO3$FjyJ~0me^gKAQFKt>d!LK|o zHh$~tN_Kz^H9^Ww0S{t_Z-vWrL&0vY+$>6$yTB+H)o5%VhF=ryTle zlI>Kd4D(^K{4}Rb_qk$4cDWG{89Os^ky+*_ag;_=G=gk0Lt$xtv{Q7%i~I8wz2X#Q zUG~yuDEw_SKLfZXvvc$5$ICy_0R8jKoMC1PH>NawH07EvRD!_oA@)7ap;K z&~SHzhJqw!X;dg}nV1APh+7JW1Fech;UHa7VdV>~cZTg^p$#Xs5w?2dxUN#Abf5>> zE9R$Kg{4}O7Q(M*_siu~Dl9nPELQi6R1&Mcc3Q6VFTLa4;gsISH`{ROvhCn_`O?1# z_q)|~mt|J4S-YA~J$E=81;oLhn-0{1r(bfkR2#qAA+xE(1cY7hB1UmJJoPBWRFfmD z+y8|R@$YMg*wL@_+o`C`Zm2;i-bi^1b!kM{1<#hHYRH+x(NxWZR0%0Hc(V5t%)PP=_#f_)rCHPdnhv zWPLS;A?kPN-#C*8rDHeeFq_7&lbzX##^h_M=XPlwRQ7 z$N~78blqtus-uf0^hk+p!ETqBCy0ou@@WZ)+ zf{lRCqgNjED;ah84ab^%=tA}g^I>Sp``aZZwpzgdC5A2VcgB53&#KgIjDzJG;P{PQ zbB9QGHZLDM^j9_!*#n2(4<42PZ{H&^_75ILmd~Cd{K)L}3FI0V-TUDD=eWaVvEcd^ z`r}7S>kgBn`}G?77+veucNI_vmu|Lv>&xTs-n9$v7B&twxKVljh5L!7Wgnm?4;~U! ziT}`$;g5S}Txkn;gG?z_ZEt#SXYv$YmbxzVi&t*a_j_3E?koC3CD~LT3v?Vdg)Hwb zcL%6+z;PM!z&LO{76jIV5rIJvF9X80;%wpHnbESl8#?S6otX$x@3_xL@9wZ~q)r!c zc8kFNxVhGF3WB*HT>K`-h_T?=Xgb?7BL3AyKzjDKy{gWfp$b)mhbMVvv*`~peVbwPO3h+BN z>!e%<9{3e9Lgn_n&khYJo{LKVfpBlPEe*JKKiLdAoJ{`LIGBT_fY{jF>T^zR?EL?# zBkH}erWflyGr4(GL?xW+#|H*%a$%%PUeIE=O}h2h7N&b=Y}N;)ugd!e9KP}i=<)tl5|*#*s}D&kJaRB-+3O74tESHV1jZOIH~E`W!s zS#%|+UFI}v!OJVs7K}4738Q$3350<&-1tzQ6uVct;((cd3!Xa|x|0)VE$zaaPb;Hw zcCwE(DDJzHVRBlAK%}*tq;)cU2SLr?C;(2kj=|?uV-ZgtU(;sd=zxdB_Kb13%Xd%R??Z?Q*acoX zHw_2I7Xt-UpvZ3~qCyrDHt&-&bb~Z_4FLs=4X=y0QCCbm4MJ#k97Lx#YC2m(5eLms ze)?TyzFn{1RR;@WLh?F=n`6;vsWkH zBMM5_tLeih!U5eFhW<5P?p?5DND3~jr=@5pa3U(-d}QI^b%@Zd=AhtlpBGm^HgH!j z7{z1^E-!`t)$aTr#PGNWnK0b5B!9M)#V_Fg*9GGW56H)Q? zWO?5BRN0L)I32z^KSLL~f)4)Y4PB8v{p^hXd_FiI1h?EN1F*o-3%N*0+%RFLHr)a0 z5;>n39r-a+jn=M84XgZ^sWyA_ujhmMnyEf#P-A8_|GB{n%}#Cems8i(GVla)tzx*E zV1msvu4(PO=R~Qnb&fw{`+i*ns0P=Hlv{Ecf4fDWz1P~)AzUYkBO&QYk3!CT+vjmV0W}aokdM13CJDDd7nnDpdzxUUOHl_wQaxz<@o+qbeZwW8f^Iw+ znIkHd6&yYyAgk2?D;<(pcp@_q!&F36x{6>f^M#kLdPeFZ8|+o7Kx&(CST^JniP$TY zh5x|m;-5x%n1+n4(f_wh&gaiMKduRFM95g zL?MPG8Ib@huseWZj62?rYqPqs$9QhN<7Pl~{TFwPoYUR#CKaY=MnM)E891nW-tOdoob-TJ_Tm)eYrR3s`9q<_Ucw={SdtV26 z6&VnNlcj$;C{nb}jU5pIbh|$}8KOo8;&MI)@f?2reib8X`s1CijA%`V<01C%fZQbR z)Cb9Y3CaO3tCa-Zba1>~Zy1ycU1#`{|CJAnN0IIjOZztu>aq(3=`@*BE}-wiEe7p=0P}%2`oMwJ-Z${PJI^Y zVQ@}L+gQU_N;xy{&|el!Og_sM<^wsVTY3~P(qyzn1Ev3o=CD>FxIcIYW&<6Gh|7be zCo&3CX*XOT&ppfwCv@I1tG?q(MOxGZz5Md8r?en;!%&T_HIXeX-XIm*G@(S)vr{M?jDw8+1v^1uc`~TG2Osb+x$kiP6DahbFGp^N z9TMhS1Hny~Y6q{pYyt1OxRb2eLq36<5_D%h-iP_%nKoLTy@f8eC`LsOB$xt4h=G^k z-3@UWm{3h<@Ku6%bfqeL;4{CI-@X}h^VGemtBG<+H8(TZi4rqq|)@A)Rp4UZo zoAQ&xmG7>++}b$YV3QA?2#grwE+zvNIE3zDdf|%O)(h1eF$qM0!-+#6)XTo$2w2DLpV<_-dL}Q3>!% zRT)hy9?N*MtQ&_FaaV)uQf+NwX}XJ4bH8iX4SEFfpXsGz4feTGa)PR>N3#yPG{&;M zwm-(P{G1jSTMmfs%1nPGS|-% zqnomLc2lSuoeEaF_81CwSSf$iU#XzCQEo&MH9UL`<#beufAUje}f z{}Vpc?hjsr?$G@>sXnKg$UyMRsu$-u)TV$jPJ;PU2l#Ga|Ky<_g9A4+{iZsWau%~)+t`qQ`eZ)I&yhbLnQgwa11HTHInPX?RjT8;P6!~0~K z1&Xx?U=A~$z{2`{kTo2+tcp;XtdZFpk??OuzC#~daB){Wm_q1i_~(wzGMGObJp%4^ zG9bv#_BY$RhX*|uv^W$Gag}3yk0FG@0ErteHT_Q;ozf+g{%5kHhpHl_o#@pRrR#Jw z)^HDMyd{+rx%trwWw_S{j;lnLVJ0S(thAI>1aFXJdt5n7*Fg;(x2+`easSKb-b>)r z^@8FIH6@9-30K0CfQ)H6xSO1GCowxSN^Ez?JPal>I~_Ei{r55y^#c^;s^ILgLIaih zQ-PR*rT)yJYS&u_emE5HcYtT-Lk7Uzg!$}J{Pvj^FY!Bvl(WC&K0Lq&a?XV#r)>^~ zxDN!ewLLi-l+mPB1zX41J(Tw56@t;DR_#D_Y(e;?-57@=(> z&MNh?9VFWKeOGyc2C160(ES)g2(4_gV3|y<#Y>r}$-Wk;3n_QQwPv67CiZM6Z}7=u zZ{!m4Wk`y#@br;~CFuyAkQi|L4Kb$@W3{)9vY`p(l>|5hTSf}T*6CJ}$Q(=?&j>}rLj>OOFa#Y7trs{yRvS5?XQ;@gacgjM+=|a&ZkW6Yt z9d+CVv^rjnN6b}@I1C81uMf>sOZQT|Q>hA)b+gJ3bp`P9mBqAT5dsOm}sOnE|f~;6cT2jRvkRy1);m6%7E*xka-99!W zjX-bQ8ozEKs$>Cxtzi~u%3Hn%t-g(+;|Rx@9qAbN%I)#EFrD^JjyHB>RWZ>lB<(7| z56Y;_9ZaVD&EW*BBV$!gN_@&oKHVZAomz}>V>_-x#wLIW>OhMuD8H%cfb3n!|1ujb z=D~`JYaGoIfojBX8s3GIljrg9^*}@(272^QFf9+g zN(-pNm3}RXbnoW3_!(EtG3yy<26Iip9A-5>LrKaC?Us}7q(zr%^-+IH!`4-*+>k3d zO%~98CCD+Vt0>2fp-y({lPHHrSFs$Y=73k!s}41;0^aC*y330VN0Ax0#u4YV;8=PF zp#ThVg#xJ~RL_A1Mt>UXrel(JGegl23h%;uRX8dpxTQWqpoS zo5Pv39RS{G7twXsrMw~w{!Iu1bnPNcYnN=Ld1C$XfZ zO>=#YCwqDg*qI-ca#KIOBJ4V_`=8Xq+4{eVN)^dmze@cu+srZ&@T49uq*FII>XdFa z1?Lz&W`3HOX~dID1IdHUU5ufq?>PYrTBjpeK$wH?OR*|(Fd-9m5wk|$s={3xw4T01 z#b>Mi(Z#zlhS3?>>I>XSr^90iu5;YN>U;UN{3^724cVm#0)Zh88U7#=Qg;HPGQJ=v zR{X^7Sy+DJz-LXWFA23loH2m216-_-9OZ{V7fPvc>V?bL2$WmKCp%aq4>})*aR)t?h7zS5B6X%yLvUIJ$4%Md94l#^HkV(Wwq21 zEfy*Hs$##Si96?p8SRBNVkqv4*k1Lv*k~KB?Uj_kl(8RXc@6F2yGJUb1@tfqnpLrl z3n+SQlitYv!8#`sF5_%p#8-~NF<-Ba#Nj>w$Q+ts2rQmdJ7>Ul8>YEhlF zQgl+I5lYoD5BLx$6AZ3}YWcE@#+=#1#$bB>E_2#B6lV zC`qE98(q7A^cblxSVp2V&%Y2KPHqZ1TUj8c&HR#!^+5pUbM)NQE(~W-XWS1t05-5& z-*}0S-DpwzJj38#@?+b!;Y{Dd!^hWS(9u1BO%UlkBqlYQMN z`-bb$Rtq*|M{Cz|_%73D83Wpvz<<59wR`tjG&bicD($EW#no#Jbs3wkj8&W07KuHB z-W2$sGnp5W_jFW>&1z;u1#jzu89Olqb?PIleX6z_3yS>Vc0y}VsxK(f#wQhf?Ua@1 z2X{Rq>~oc6?`2`Ef7^vL18!g^%pc|?UtgB(f8m*Z2wbC^w(}NPsyV5X!$R>}8Ysbv z6*r$o z)ih{{pLpau-g~Lb`=0Xw+u-SM^U~$$z-?fo6E~-uGp+%O&)*V@ZryrT!xdtl8#A<& zfjkhi@qvZ)11>b?O;9xt>3qZfjH>L*B{>qu&c5BZuBwR2UtRgl7IE08Cj8S;e<#H! zQ#LK`^tI7&Y*w#Ig{@!t5KVq(zkBz#R5gkd_P0;94Sw|r)$g|pKC24k%vn{;i05C3 z4|@vz_G!!}<<*;E)-mxCe80%?c}qsvM=C1ft*A(CJX@q}kBX?U z$krzB?v7UTlRMNES8WZr#J{KlunvrEgBh^rvTv0Yc3;SDtd&Qr%ACI+ENFOQezbOn zWHNe&593pqf$nAsW>)Nx2>qiSfE#XyFIQWLb&Jrx)B3*rvbXlS^&Pr}E?RH->-AaT zCh3=}w~h;%WnUh*-W9F05`rE~2S+xv!JpopzC9e1Tj`En(p{7HWPq-v4#y7$1Ho== z-wN#K*_aXS*h$cJTJAHemG%tQDXKe1YlW>)A@bx@qH(k?E8|LZZK2vcz2|8q`kB$# z>zeX9eA_kB;p;liqB`tFf$M!?o70SE{RK`M!4oChN@?&cRf-R`?ZOk~k~|Xg^*~#_ zBR?DiAJ+TFwW_cRQc4y+UOI`z zd|G`8e`*np(?Y!qr_QEXp`iok(qnL(GQ>Bf(yf#ANvIwPG||H79+mntt^ClvF7;(^nMl(boh0qbWUAKaDDsx-tGTMhl2pBPRvH+g0l75r1FK4LrMt^%r?v@MFY<-s z`V!j1*;n=TZUBa7P4q^xjGMs?3VzVqDp$>A?uC1u9?C3j^{lGunif{f(>{f?b8FGn z((S2g3_!9jy8!b~sGUuIw*lTf1u79ww8T%mDr@HlPu10130kotVL&Dwd?#H?RQHYM zRHufHM#BQzWv8qBk~E>7N4$!Hx_=Fkw@!D`hBx|BLftyx1&&a7fzxG>xan5sc?9>O zQnP6gGVlAt%Mg2Y+IG2ZkJe?37u<$;)ZEB>?EDk9YLw+=i6zop_fn>RD02yhEA2lD z#^iu+#f&e5@Q71Y*&PmdWDgsW#Ynf?&_;u$6^W*jR@k0(EyTBGU=<7CTDJzTp}=60 z^z5c9w+?R_7jb^{RSA-$REqGJET)60q*PzlRTri4s|l5V$2)*Et^_^gJ@HCJHJ{SP zxs5-gQcKBedBH>5nrBp6fq-scFoigMA z0zaKx@FPpv1{nzX($0u3;I2Y38fXctadOttx-Wr+bgV(-I=z>SaL^xtHNw&O6k~$W zRW9C(KtzQI&Kor$6y33iK06!hQn&ZjAJuib*%wo5)(hRqrw9!0PMJz?sVVZaC@#g6 zHs|I#qhmNZ=M=&5AYuVCIYw_z5_5o(w+3$}190XVGk{z@qqw(B_!1t$z71u7~w>(G4qZaW6g%Z$+NS-d`c-e z(lAQPp+V}*z|CgcjUVs9b{Oq#V6Aiq0(Y4Jg;Q{(1~JB4H}AC`j?t0|?}<`!XA^m4 zQKHJiq!gpsCueOb`9z5^9fG@x$TG9E^59dFR-7l%2%LUjHkD^+yp|&2;HciVCfj*k z%Bl||{fiZN(ELEu@QassmLs5K)N7vwl%GRD`S=Ed1eC^-ww#T)j(JA1RSgH&(^(z0 z>I=P5gbNg`XTzFH{iHH02tag$;qffufMp#1V2}#6{3QgFu}V!>JNQX)A)>$Rt-o&V zK4}*bX2G@T?vqa7|Ickk*l`inlZ1u zvV3X#U^imzN)QI~_p3fLbicRS`<=)P94P*Q1)2rfkpEDbrfuUD3AApe(*L!X^I*T%AJZz9ImN-hyj^kWp ziO2D}L!X(jou!RZHF1M66xcRjMsv>cYgk4(f(NFq*u{p1u3SOd$~939CC+K#YH)SW z!zs3&|CxLojv3M0a8d*LpV7;3%FmilhG_h(uhb1PSHJd1->JZ955vRxw;!k`z5Qe>%OUd#bI}A7r1Dp0f{Hyi z;>Xv`Hi0r`47YX;K-%AYw7s8XpgtS;=oaWJXaeBgYGaZrAS;rv<3#(FfJ6V=s6P3y zg29+=FtN1)D6xM&`T;EF*6}yYmEmY`@b>)dc>Ketyp`hRzE)xe4#^rOwzYk@y?MB^ zxBK$R#x5{eE{z@YHP|3wuHWvL&EO$9`0IK9cmntIIBj(fD&pg0H^)^f{OzBgoVj$o z#DNSB_iI9^Pvzr8hYq-?Jb{I~2}|(}#0m#nnhz9x*(6+mEBXDW5LbM=(8-UsAMb4L zJw4pszYP0IE_?>Bkzb=TQDO{WtkJn8nEJM4+CKT=(J)GLjD_R*sX;gae`@sZtcJ404XVF^4n&T|JTf$BK?IK33 zde>waI2@<}0%t?8^RA}g9uMCQ{gqE}`kiUtI2R|%}e2^SHxjcOeqhCk+Oj3z=YjRE9vx(DCio-SA~Ubq)0&Sm?4e}{0 z?(uBBF*Y{Gh0G0hKnJkm>R3x5Y=3lDJjNx%(Z3sKHnwSmg2^agRKDGHyT~R*q7>+p zFyt#2=Is?zF`oq;hIyLLmm^d*1Dm17=dMdH%DD=Oc|pSlbKG6Zlu-(IHcEb;oH#Ga zrhruI8M+JwU%bA4 z_g%VQ*vk4mt=tF8h{1$z)BMjAiNVyA4wW~>}6snhl6 zvFJgW8CzjvvY8v=Vl%cS#gLg>l!fcsC8PYzKnZz4JvY}^K~>|ZB2gh3$|`6}DlT9y z3d%O2h+3A8js27@k1tl?VAg7{*wW^2uP5apA47**WHBfzVjfIl-#hKrYY>U>K*)(b zQf%UZ@VQR|w!yFcDSFk5b{Ae=x7*I$JcT4;GMF~ZvAn8NWdAV(w}}QcnzmY4q}XlM z6RP1vkcC_E$jj^|Bdy^VJhBTK+HU>W=4eM$3KMz~>qLe#2AX-#_QR@FFE*zjBQ*3l z!VPt+4@9bL84mzeS5ln@asG4Jt)A;unO+N5wfw2kYB1;}`Z1{n%62=PTjF*qx8xj6 zuQqaFt$ZPlvQKbR?AFtw8D?S~MM#(>#Sf85_ZLFw^%ZC5mYNHT7?uz#&Y3JojJ)Mt z^~O_1Mdui?=+sPWMQA4rtCW5Uk=KUr2h&0+D7%>}`RB5}V5MY$XvJjiq?(jpNvfaq zYRFwkfO=z}j1@%CNu>qO6;!@>!c5KLrAj1(Zhe{Lti|Z%egaHHJxx2A+}nZ-?+5J-bckOXc?AC*;qVRMZ$qjfuK4aZ-2<} zLuGX{{lKSh_4TqnDr)QfHADcvVmsQ zX5I;IYSdmEUBB0K>(A$d$wkz$Zk?)GK+0RH#LYe5Gp%^`t**<8m+4bmL+a6ajN23+^OkM-ig<$r^AMWwF(Gggd4NgJZ zoiq>-+tvesd&+PJr|^n$_x#-}(2bjI5*Wq=Ud;ASNFsYMeDfClP(uLi2^g*zCrULO zsmA^T7^%dyt~N5(0E{}-aD}YXTDg`H&FlpdJFEHiUv-qZA+1|kwRN>UN>Rzbs3 z{I=nX5k!)}X22bJ9TN&ivuvJ+ove+K}$c}$(=GR=< zVu#EvFz^oX;8U@~+ZbuuZr(XK8v}E4*}SlHS4#nHez7q>zcR9!uu~Okr@AZ%zk*RN zRELZo6r)x+d^-fMH&)U<9)qPbsv-vO;jTTcVyM@U06Jtdu+-zlFKHE<4MNVQV2UQ@ z)>20i^v5uYi2r*ty1FHtPljelzpiwJ{BBwbni9WjN{PWJ_1MgRvhcG; z3Af9dLJL-?#hgXY#(aKeCe{`RXJNiTdIr|R>)Drw&&|9BC4yO(FHte$X1rsE%^2R| zej1xG7-*MG0e{h(F%lxaOgS1N=GgbfTiaZkY-r&+G})ij6mtg6jZ3e%A_*n3&#P7? zM{pU1atK$iRt`%vQ!a<4DwMLI1SS7W%b!S>m)+TB_Y9N!^CVr|B(=NFjMJjo@P=MF z?2nA}Y_m)IV@^rVwWs>y8(+{}`&H2m9h3Mc^py|s-Gk^kspHyH)bWikh&oqAH*hy& z{$^-neH~dZNApp}wxtN;8eR}xu7K*ph$`uqC;?SwFo8-@VBVhR?)Oa_S%(u1u}=FI z>dfn}XvP@>Al3_1XFT!~GwmmeAZDM4+@sWN+=%>BSI*&@zLPn)s#n{Er_gdvoT|~A z%UoOx8$ROY7wq$lESKzFjU5OS5(l>VNk1QQF?ozd)}!&+JS2i*3!sm{VWBjd1G_AN z(4ovc6k>{h2#nR)yzev(6Qnb$rYfqV6t5e*`yOt z^_Ah<3Z_(FbJ9!Wp!y#mv><-IxGp$}Vg!#5JNzeMCE~>g3sCx>a|;dBW*{bb1QsSC zEDq)LODLPV$nBacEbWi9UrxAR8^eR4^Fj6=(E?x}9PS?7`Jb3l)$p$5ujhl&k>;m` z&g0J~W3Z3nC{^_Rbo@i?4`6P3=@v`n^3jVGCUs3)cWX`DV? zeZN)P5=x2A;GR{#qv(`AJ z6*>I@uL|g!-{u=!Ox$AjWv#;&hm~NI<(;XDUk>&yX&Abut%MNK)3Y!x+JJqNpv^>Y ztR-zV#pJM%jb?~j!hFYk+{wCyabEd@3FFsY(icm@U(~eBj5^I19VRC|YgD=T;ja!7 zlfaoNPcc?@%`>!d>jAI+gW%9yw3ct|9fV(4)Zq2hQG){1h#$Oy#rGM|)8?cjc-H zH@yVHmyuF(jsXFYD?}q%UcK;0bDwBmlZPG=Vzk2yIx2W2Aw6n(o5;5v40|GUxPMveyRAYTa z9F!-f7GaZs?8-j!)psU1Kob+O83X^Q28+6@`8va~z&7gYGpv5Xs6%nl;9zWmdEtvp z6~(Lg6~50*zD&)Y=4XBwDFV3_NrqLwhbeTR9$CE^TXe{(BfzhBWXrLGnj-c{Q)FDw z6j^sOMdXU5u&!o`*vm{2yOk+2eq@TQ&zK_e4%1!nL@+@oPWxx@lzn2H1L*8W<9CBP zmJpWF7o*kJm|6aypeQ18fOimHp-D7_MBi1wjZ}P%u#CCCthjKjV0r$UGksBH-mYb9 z@DLpRR$+#jhnNZD4eToANiBLpSl^NZEtkPXnKpaoI76M)c#4;g^>wNjuOd!7O)=q6sF{;*`1wIYE&IPKbv8BwwFQd@5?{(yGbt-AVfz?=P(6Abq1l_HLhmZDz|6@!gDdiuQD zs~l=M5l70LQqs2UMzQ8wF&T$rhMUG$ayIPTw{Hg^ezwj}djYAUdGYckZ!n$p>Uc|H zoVmdM_+0GYOBid>Ox1WNV!FBrt`buYe_e&{RcDS3ZbJWOJ<%dZQwbOfs3bLeuBc*gxPC{<2;*{hogv(+Gj(RBymi~G^`3? zC=8Zc3&&N|)gaE`3=yr(_;VolK)H~=@tOLds#J1k_o0t5)&gZ0Txp$++1Ga`acQ{K zRkM5QZ{BSZ_}zDNKe|E{*Qa=pPF)=6_*l5`OoT+*N0WC@-9~{;5|>G{ks3XDG^X>D z;dBZ#EaLkoKLSwU%*6Ni1eJ*J^==b%oX|S!RUa9n$eTWN91eqh)={BN=o*Xof=Ec- zDb0F^Xzy1uvyb=eXbL7S0-H}rvrVw*D(B^DZ>Wt0$&qliO^!#RoQKHJ8iL zj3~o|%Ut^wz-s1B##7*O?k;LINKe@`_;Usk>LDcv9 z;))*K7<*Sklv0Fk1m8si3WO`DTy4pzW7F>jaNaOMH+i?z5qFK7*`SfA`jx5$8%1Xf z{}bIvlurgD5AOtUTdk<0_KKjwUrR-`FCvdl8ck=&9_P(5M6puiA zuNml9VPE_Vk9ublipZWT+y5eP`chUB$a5CN>PR`ygQ@_6y#eQg#$L7YW zntIijGMe)tL*?5T_sX!uP;N`p?)^}4eE?^L3`YCUmWR<#|NW=`@zekN_y6PX|KX>9 zZvFHx@PGgM_kaKQ|D4u3hAIn9Rn}KTN(V7(Q)Lq~*DM0_UL%;twf7bu!xV^^gnT>z<>W4*33Wu{XhQwztG?R+WP7LgcbFF{q)~pHCgzaKZhPFA4mm0A7#x5*(!N9w}ra)m&+AhQ!4` zbEHp!BMr>UvR@uI`nR9{`KSN;r+@wF|M~lW`1^nS>0kc-pO(vsny%D^Ez;U6Z7n2x zzM=lPMBFA9*gw}I`4?CZ{|1ZW-@``zzr$kr|9<*!KmBV9{`@npm4E)}-~Rre(t_{& zSMI5~{1`66OsLdO?rK|2XHnpK?$H;!T7$9t01zo8H?oIR6lr!+*5@Q`15m zRFC8E!`z}cv}#10C6I@RZN{!-o8fFG4r7~%^n>Hez)&D-Mxnt39jeVN>~i(S0RaU< zGlZ~yB3oF?-7*|6^BgoB#js$?ZA)0F)|21c@ehZ6$c6sl7KAZEBd0AJu!TICzA4>1 zK$QAb!sc7libXIG>=e)`_qU(!?OVS_F6?WN)3#`|@c!@n;oyfm?c}DQ&BOehBoi_J zneZ5qnd9Iyrm!UHoE81zl@1Wi>+tM(|3&w%N_h2xc4c`H>uXgkd3OI&miM^=5y!6d zL*+zxbLX?O)h^O|iEQG*$@%oH3JC1VZ0SZ^%wI=Uc1WXvFeyPAo-M~3*d(s-%)nQ_ z9k!V4!9as0M5p~vqnpN=RqM-XtMlcwd#Ba;;>+VMd?tHW#Ml%e*)3V)445T*ul^mR zA!|WzQrff7?5?OX?u9abFCxc3J?;4??px#}qsm4-v83W8a1&+rQn+VUzI!kMuG>4^ zuh7M%=^0%oE3n7I*U;eCVbZE8mmllaO&HX#zC8Z=%VQjA`gFtn;7;qyTgOFf>kj;( zthRscCj4rw#6J6Un({#8vz&L5Ajv2O;L`gnTRjp6a)=ZH;!%G}cj8?mHNeQUx8Dzr z&hdH(JfpOCj!y>dZY<>s643$x2QoYlrk*`w%_*bV*{7(l$^CM3AUSbmAU`>I!>L&5 zY{n3$jH$KU>DP1(e4eJ2)3lmn17&D}wdkjI#{~p&^Q?$T@6F;(6NiKMR4ZZtExmaF zuRu`0Gnn-HY_JNKVw4*}7VEd&cJ557DkLHZc6e^|kb?FVYH;+2^b2_ylS<9Q#hY$kuBWsX67k?{dDoD7Cb*?=CV0 zoLCupO+&L~-LH)k>#}qTCs0ycffJ{p^)OnrCZ^+y>1gKZRP*!0^z-@QS9pH#?|uUP zPo-YdJINbbO}W!l?HFC8dRxU+##I&aL71Jhk?@~T5NRZ1ji7v;XG&|EWRrL=Shh_R zX3YPCCW{JWyWwL2QsD%O1Q~;_TFoF77;cL;bgTAs%{Ld3f626#vUcs5dl0T9P_6ma zsv2Pkl*y)k?>EIP-vMf=iu5Z5uJaINjI+ms?@8gzoprX4e30tUokz1lNj| z1f*~CpXfQ-3lyqx&wD(0sY|MSx}5X*o+{quy2u6DV>p3ta2!o8_B?3hRouEf#B!o{ zL0cjR8dHRoAMVWJ$0Mu=k_^gX%$|D$Uz9#wDuMmT+|8hTW1ahz-nc|-DS6OO4*OQl zDOEjgg|8$WR;m~WHEJgzpZ~TEM-r^z%js{6Wc6JkW2I|s-)yV(E3q%4A`P6^FKRK% z(aA6AMy=VZf_3f7ilv=sc3}%#*3B`6M1o%A2{gLl&PbVMSV!0iwTK%mSXDM!vLVfa zZ?A9?B#*1~i&qWJbNS_6wkGm`8FebMZ>*ss*|kNkd(~QIiVcDR^uu^1=U2YpEed)as= zJ!jX4AzE;Z5pLca7an@gk)^unT1tGDwEe=*OOl&QC5e$S{p&KAN9BhV=kB{~t1MFA z*_&6q#9g_JsLGJErnkS{e>xew9=;z;3+r~)C4dt~`TOzk-SEuCaOWph#kP2FRk-)R zh3bjBoBVeF!1(>9NFopS_ntj9tVQIR2qCsi$_XC^7r*;dceEQq65 z$NdttBFpSjb~v)*hRn@z|71uVwng}6*raxX`)0Z*LivESdYlGY1^b>`ZO|{bHV!wC z1ig)&ef)bMG^Ml6Tc!_*NI#4$ZQZo#AE3ZkLCn=>SGpcAyX++Ss{gXYn+g zV&Sw3r+ZgNrm-v8v@|Vc`dSb z$MyxMB104M$3_J;_5>!ER51Uzx4ZokW3)Zv)zmhb?LtuGNBqts=XoVu)~+ zi9I9_t(ROIaHkh(;6ewzllc_{Uoag+1;LC^RmYP8vi&@My7%}m5BGMdAEKPNEfA?W z?;fGel351)s8~&O(>8B@)Q`(gm@Cvp%@WPMh#x&T<7nl+B;_QlLIddDc}M9>T0oul1gzK z{`&{>-`YC-)20BL?PSg5d<8VO6)jj157;&~Q>+E=i1gA#!~2hMbDL>yIt6-iABtwK z9bf2sxL-NWI(SEI@{lD?;alXHYfe*+k*PEH=-O$ z*@Fuz=UpXH40C5Mg@)z%+*w0m`}4-P!?U;d$8@z+dGcTw{#^Jmge3c)?I;9uO7>1~ z*_=aSMzl#On(!WstL6R$&3>8N?WUt8I|s-QU*6x?NgN_6y&WGJDV@EVSVMron@Qlw zB;~~Xw2P&VRfBV~!?cb?xcRm4>9zcUk+37p^-@Pt;JFLsI2pS=aRhPl7FCY(vbq7!0#%tp$&AT*m_`nBA}&A7*OZ= z7eT^}wHLv|LrnHS9sjeyd+LIGTo&dzM>He}^ZcMexod2093*!QNKft>o2+*GylZ^k zHI}k#nECa2*Z4Sh4IG}&yT;Xb4WQ$vylWh6Z)_#E4a`XH8<_EV?l4Z&f1q z=kvk&AdQxR*f>3%jQdA#q1k{6E}XS-sAk39?&8VDF6X{mw1CU2qi#Zj#BwWmPqd-Lu|` zv$Gn#668wlj3Cpl+0N}m_12?Jb}>i~Hc@HoYrC@+Wx3GOahCR74KY$~7cpX?3+mP0 z?;;r9t`3Lq2JQ-N?H}lZECb5pyXHefLv+*8l+9e+F-2cd@WZ_)OBVPFAh=%m z@l^#7&)6Cu>kHEZeOgydIk@|HquD=&-C=O-hb4T@LCZAY6HHrv*|Qog;Q`k0{qXGK z$pF^RJ8SV^X1+D~gqK5H(0qfzDD3ViAfSvuI~x_VS3#zD!LN|i4d7b6@ES*l;-V=B zbs48;T!7ehQ0mIzYEYcX#t*QDXYPBgsEJPiz^g6mWyNNp_o+kxZFy0RAn@{UVoI=4 z*3|X^oNXq(v*e=iDWX3fAAP56@Xf2sls}~S#h86zn0QSWoBpTYeMT(@4uG^+hv)_m z(JsUNm--|jf;R>YsPb%dvJkrXKsX4Y(d?-wjfNoCNlWfzEj1bJYV-`{1^E#?b~dS{ z{J4~CE(OrMeJ7O!-w_s0#tgnKE-!1~>QJg#{@TJ1crwMNnUJ8=Su4JXRy+xUDza6X zhI#HQeX&9*chKK~ls-fy?uk2*XJ=~b`eryCzB);S-5}1xcIU1<2adW!|8AVsMeHbm zM&Ir_VQrHlWtb2}SQ`gaa+M34nJoLA=A*zElg50$q*vJtY=#=2yDq&b=PD#dslh@t z!ihfRe>#2WEC=^q-uBy9ODab%R@<#;HeBt(Y`k8Hf$Az&agR* ziiznYiR-7(^aw3#F!VX20C;-UJV?nq<4u^IJ@BteRD3k;R?Zx#o(#_3j*p`T)2>Ca zL0zuQpVX|DA{k!|JhzmwD;E{H3PH*>(XZM336rB|F)YG8X)Gf8y@6$F=XX_B;C%4> ztxTn_2F|F0Mn%QVC%rz^#N6cbyi3hHO*M2Zup(Wwus#%Z5lKHXAMf0hb0_j9@Gy80 z7-=IrQHnpdX}^wA9u(Tl=gA6Qlu>eXiP0aMACKKDfhezB?XBLPr&4_uPu06NSG|vh zZ{Akbdb_FI9w^d)xmY~Zh1Ek@rk-QI<*&(I6u%B`V0jWn>o&UJ_iXUWxS zpseR;BR?JWN9l);Hm6-A8Wj&9Q*6?fy@NkG?7r1sXyHv(@j+j5fz`#+#~Zubg-(97 z{di|{@9E+8{$)yVgvWZeC6spH_lS>9(~kBMYwoS(XB;k^3dSB{NkT=O`PYPzco7dY{{`7c*9l9uJfC=dnOv zn=`f&M9XQ~5Eq-VEqS(>xy2|(ctyLhkH&2H8*ge+HFV;TVd9=vL0jr@0dsR)wh1eI zQP%;rN_Ba#mci$Ct@es7ZT|Yp4E@kvdYFugbi4~^@DckOjy9;+k!}!CvGd%g3IBYM z^8);vg0I!KzjT3fq9KE6;Af$N%7jd*$mi9_)ns$jZTu zT;hI;gPHT(O*G1Q1J_};MMh}@Ow4h>vE!J$t1Q?B5kzY?Za?v4->p_>s0zw#46p1= zuF9lcq;_$a* zibak}Y?+kZ-E&nW9Ox7X-i+b(CLO(0RyWg+=W9*sWe;(IuNej6k3kVNj7iGR(Yee; z_Kk*}w$U;x?QTl-6$6L#h=)EZ;%*hSv82s+#)L*MrP#}Aym^-&=43#Zm$T|Ak}R)# zCC-ys-D*`o8+|vziw>K4C%Aa+rcT2apsrhBF+90QIL2F;3q8IzUXPqOPFp4Ua7;VK z(=~P7NTu_Yyt){ddzFFl6a{0$j@aqrwQO@0Q&e7VsVSD3HN9t}BMxJGVuQ!khYQR} z2$d^3$o$C374tuhei?j|*fgcEwAp2nEo|*nQ^XWH>;i7wEKq?LTJ8gahP>*( zf`>Y17xs3LWNz`eYF2s~chUT6EiC*zXoQ#^!!l9%cTXT(ir+{=u(P&MvMZ(hKsd0) zws4}CrT9&?IheHiU%@zUu4R~jUx?ivRkP~2dT*e?bY@HU6tm1}0_UU|KGr#8Y7E?454vgp$2=Pwf`e5vgY_IPe zoQ+RAKAShKsOP09V1BWAGC#VondYUT+WIdGLbPDq3)M3di^OcGhi`{dZv%Wh217R7 zga_~88BBU}ZN5AYz<_CyOEh*RwNM5?Z@t>x89KPxpMFaHLzfh@bnkwD_$hS{{WNtO zh^|~S-OeplJZS=G_-;7^Z0ib}x!Rm&XfxcVjO-)%V9a0BjB%;V2M+z*XhH`nxAt1C z=VfZLeW1p>7RazyUN7Cs8BxC==Novj z-Abz*HKZbAvBw}&Su<{9(!}X^}u@wwzW1=;l!$(H2MV^(6v%1?AJlT4M;19mG7 zwSrj*%|9jUu9x~#ff#a>`cr}^5|xQG9B6nxEz1NXER(4;K~{A^L*-I^F@Ra8@^Qxp z_R+KaQJ+!y8qCY3OiOKRay=`-IclD*|4o=$eDY|-3THnM`V((JB;hQk+67E=S2ETc z%`b%$Wdu{tkBp3!=1L}$O%pK^rbtXswoIhOMM6%KOqInNGPSr!Bc2u`=$NqnOaNL| ztUqH!s@S>)tYGe{Y0GuhS6pA7IqRc`XVDE633b-aMI%%0qLJlxvF4bD-bJj*sc|d+ z32}nU%lQ~!g8%8ZXLFEM-8aXzQv21s47nQJW<+mP$BZh+Pf8L+_qeG<$^D^ENthML zNU(cMt!7pNBEzLTL}Llm7nw}}_2tqm4)asuCpi}Wn59oZ{Cb7Y<<0#$WKTe5nWE>c zx_WmN@mcVkiSgv5PQ!k(GN;e;BBxJlDshG-nhBh~R8x5~EYVEd46(~en-N?_*bK3# zVBd{I&9L3Hq#4$h<-(tsoXH$Q?H0clDbo$s$01~1f%krtGA7*neo`_f2JT5EN>&ej zO2Vu_MuNR#YBiG*5E=I5AsWk=zQ}AcrZ1P~ZkV5vF)8HH$1Gz4;@2xt&sUdHrkO=ZlmL^B!Fmuf0wh9#QGm?3sK88d>* z$e1A(73{l_j2X6@mNCQHvRwERlQEe?sNLe%B4fJ2`Z#3FEAZZrO2!QRSKA*MFC8|! zv_IyQBV2omc)sxkZ3tIF_hAjX^J1BM*I*k#DYBCI&4<-_|Fl0c!)mij`(w^wb?vEP z^^GrRSQmvZFDhXqmJ-gC#q5GQ5Y=2pDf2n{u}<>M-^_5^Fc3BX#C+7VZKdAKER0fD zK=olnm9)2$fGRVvg%kxA%@s@=S*Fks>vTkf&b(0;t~6t~>D09G$HC0g%iu+KHIn2b zK-H_A1*Fh&F(Rtbo6CoQpf9>d)tw-gjL8LZRtdFW)zUXe%+g@saRUgSdZ1RlxfB2yTv z>5AkEP+BnAu7+$f#+drb@NETCs;@cerEyUG4-i@qKVMuIoJ27KpHvExT_Mo~H^ zO5!+=f1=tDS+fMJSQv>HNxU10ARUn(*>D(fOjSDRbP88??J|8Z3dmIZaC+v4 z?D32E)vNkNOM76VFxw{5xpF$I!eb?zdz<)J%KfZ*@U83+TH%{$=dHIagUXbYW2mu|IeXf*04ak^^#qWre$?$k)J)wJ6GV@bFpy zH=00h^6|aPaqL3XId(N3LG_HW<)W!HJsh8b_or1Az8xk?%CjjtSq+On8A8Zi&_t-# z6CR_dWo9lZxA|3bQI(6m=IapY2@GmoOoxj^F@$K2SA{}iVB_{T>%H0fYjDn=3G)_K zen&=A^*jqa+ZHXXSLO589t^1dydhyjq`aT&L^Au`Ez68UUg_;3ynK%2Uw12=qIB#! z!qpQdTt*S5v>fUtdzhff5Y6E*;id%tI>chZ<43*-63aDYAh=vefCR^?{1+ptCIT9o z2=;!ZIOx*-LOQySUeYadReq0Ryly3D2jv9gk|nfn!)5J)*~sAd>o_N}KX4Pr!P3eN zN;l=b1A4NwzpBT=B6goATjGY0Mg!cLu`U%n!!;KIged3Lz-_@Fn{ zn~raVL`)+9sczg;bd!wHw!lGXQ|)4hD3|4aRe%9o=vjNJ?o!NRx6~ zMxx^l7Nx%h=C??8sFhCYeY4%C&ic2lwpzA3m} zFa@2tQ`QhFdvD_mq@ubyVanaGPf~!94Fzx&QKXeTBBPVc9RE6G@)1dFLNd%0%Uo+g zjtMkp9m9LBt4^?(jQq~UW-e5du{>QLL)toK#}4_>*X~!;1&89xt&PJC^5}2*o6YLD z(%mq4tPwcZwCoUco|*L4U~sxQKE3FKEeC1>YZ8qW=Q7~TmTs#zQoUVC>I)J@cxA_f z>-rEP-8;v4VBlvzhY06Kw9?_cEVNR&Hmr!ds=bR>^sv|a?aeP&*N=Z&L{)WXZW=Ro zj+G+V&xR;Pj8^j)rN2=fe@r;~oaR;O-o5KY?(2 zhuhY^l0OHF<2FG9tD=R!o}%#1cXJFQR8?x#gKbv$kExZOAs<)czw z5)iYY%*3i_wgoA@pPtwR0AZbn-rhRy24RzcWGUvV)7=dYw?O}HoLPg1T!5BBHCWUc z57pVA2G*NbANoea>|HMw4csq|NB!4lcCL0%Ctgr&^5Sq@G*KgGJck-5s}0@VW;Mux zGSCQEL24|*%`Ok7-F@mi2Y>L$%B+4MaCX;Lc`q(GQv*4$ipU#gtC7xx#Tf*apW8#zEFzg@x6=glNQyhqO9yNex^EK1RKE3{I3`ntgC*-0nu% z(Zx&@Iwo5rbFRu1u)a|3E z8}v_KjLXO{0bmll*f+W2yk@7Y?R!zT)QjB8E$WtZQNM(XN}_j#r*PXZ)+2xN{epGL z3}`~;8VLrpmR7(u;4E_J=h$%P-Ra82vI=1{+s9?-58rHEVGa51LO?dyCoboSiJ)(L zotUU*=L{;%@Vp~MR5P|Pu={(DOLnSh((reIPt(me{4CHLlKF(6m%0)R7^~`wypf}c z+PXed6-loGMbd{rk@uWXRJlkfQa%I<;R2$_yM8FDd^{9M7Yjwwp+b>zchFt&v?D9k zA>6N=K?I_S3G}41AC2D)>dt~;8Evy$ZDE@|ZYZeY_p1@!{dYiF-%PTS04UM-0Syq^ z0-jq@K_`Y~jA?C!Eo{YE*IVGqO36sEn+!yp4gf7ytK@C2N;+4>XX22(V&mpeYXvsl zf;!`Rw$e7xZQX_nCS76p<$yQ)CnwY4n~}d`baSy3C_Yq^G>YNq^J-1j{B@f?JDY0= zycInFz^4#SXfQERiKph6>02=whhv7D#-@k6q>%*!gCE`wV3%*5pY{S;@%|?|Y4){z zI0G?Q47-myxrPHKN>mM+RU5&>Jg9>CK`+rLg)XaX`KrV3ZcUdq@OVYFoIyWz_oeAk z7qxDlz(sjQh;UJ=Vm|ODQ#&7w@B{rtb-S1yT)uUs=^=5bn;sz|p9-(QDWg!gCKC40 zXlxAN)JfT;28I?X%b~Rin?AhP!3!u?hWhH#`FOOPX$qn_sr!Hjj$3b_x6nHi^}SDl z-#r?4KnY7XQ9$N^K&c5{#lrSR8-BVhb+&%Yv#Rk#K?@WMCFj`BJ9P%efcN^Qjo~u; zhxZ%qcmO#sE5k-U;T>){Lq4&FLdY#p=)b1D?eTaDlX|2M{naBcO3XV0@X&J&Q((#a z)^aAo36QsC?yY;q=VW-?N2|D3p!u<{lEda^dB$V5ZNFXIZw*V7He%i*OPr2^K!SChdQ>EE_%SZ!HmP zRjXBxPQJ_5Gl#l0kkhX1W^pn4*5ID*SFUm0-hH_7aC>nYSFSIqaqT2ERiVZ;NVZx_ zovc-(Ixp0X>fFx?&jlzv7q6Slzj9cDrqVqKx<8zpz5TS0i=OuUdQMeSFKCDCGkS!F zpO?X71ph?tBhZni^jzj?9AMQ*7Q8N1*(as`uGL2DlZE2}gmXT*_-K_9&>J#SUA#IA z@9Fvct6z>SK^6L0ZT4Ah_H(Mu+)8*&x*7~&Z)NBb43LE zo||Ff5xPnHRcPAWWc#dg`>b;Nb*tQz^w>!Wb*VG+R2|r+-kXq35-t(q2dDlCy%DXZ z?~)JJAzk==@@KJ5(z8HXT@Y+vMZ!5iLrOjBPmO-zF*v!j=CWRZQl28Z%Flri0FC~{ zG|oNt#e_tds%;xgp3foEJuwff$NJW{Y<7&Jt>|d2jPh*OdQ_{)>6b@qy&rELt@nO3 zDX&WScz+X;-`mm%^ZqM@K|uJm=Ag&lal9h(Iz>$w=NX%C2S?xel*ouaLoDxyO4jzb zQo{7C3lbxV`;wqw);(htPxF|22Q0*WXOII?9dHpntPzkEd zq!-Z)4-;5b6!qusgtn4QwRgi>cuv5CeBF<|FNimKmGwkrc3n7Af-LKJy4~t{;M9Ec{s`_PzK_S_Q^TWwcso4t z$2@+WyGo0FG(Pjt(c3-w{4V1z^RgSi=!>2^JI7Fyst113IaHV#-C0V0#D|CkLkMpH zGrYkwG{`Cy|4SF3t@3Da%6Wm%r1JD;?u+P8u`#hAZ$2fF8gTfizq51rIG9_fKHwYq19!e@MOo>Mf|?hZ zcjIaZkHpGXyGSgM$^W2@xPp{Fg7D>{b9!LJwYZkN>w{^s1-HRnAvogVeP<=TGVnkh zf$@UoqF;r5@rxwtolPjB4L;ldA_&-7RuV%PwPZbJ6=CqkJgJHxtYle9x0JO{<;Ivb z1qud$LhF{9HAb1)F%>Xsd*@Q2mpv92gx3lI7Ge!S-`y5V=km}cMj(5ba`&3ltzmBJ z8pE|*?G!_~r44bY@{c~F?~RZcfSVRMY}>0&#L(_ANKBdE8-_Y8#*C?3=ZEiRctw!?~Hq#xt_KF@ZZMl}e>jDH^ET8CWkyx9{%f zQtU~a*v?=P8~eDE;3U?jByQ5sRkg5lTWZaeLpaf&QW=>uysf+Gp7ZI=hmQLvBY5ycnD73k|4)Y5vPk4M+NQ?CZQ1-usc}4V zR=I%lP_!j@SRQ45lU3AAza#vD{z&@;$_9OR%$^!IeT@8LL~mrNOpzgQ z$ai;Vvz5m6DetBk8=mC+q?FX*5BVXEZ;{HUrx%kGbz#Ztluh5y!U2Fj*MYnJv*<|g zGJkuA5GqmgJ6ta6O`rEa^-qJ&28-_LA-?O_7f|TN+-@+>V`SgNjcVR%E;sM2PVP*a zN%PLiUnb4=L-_R*Ml;8pWlU+_nY7ZRP*FeyuJxzZXxwT>ha`R$?~~8GkOl|mO~kvr zybQP%_2d3|()$1Z-~X?bil(;P?ju_D-*U@&Nh|O5D*vUZj{8(p*yg}c=^e^PWKEc~ zq~AlpJ8RB^ewYCF`;zwERpUp)chVfN=Yx+>;XOZTMU^Yyl_v58vC4#hDQ-CeCVBd> zdFTF7+T45ye<-(=Ho~W$Y?^sR#Y<9-#Blj->cHEh=Cpw=g&b;|fPifcoy=<~hFrOI z*+0CP;`=GUMLS2Q{Z>03|4_6W76fR)%TbdDbn?)w28cf91W}*YEGF}7X|;$0QJm+# zp_b26E=JWuS=ePa%T!f4`#+8O^4m)+2#q6_;h*jUYtTf)IceCL?REv^WU@cPzI8IB$Cq@q}~2?)nK8_<#qwFdAxF8q3v*9$Xn(huu|US<=nMb;7*M z0k7Vb^so0OVAKtxEWmQDE-b4sau_uoG1{aU7M>Yx4e#|d<15Wf5!dZsQa52PAUi&W z;KcmAMF;$tC^vvi*B+FH!iJM}=x3v(e2vXU)#p4bt0V5KX?d@E)^Hm0)|A+jYW_KJ zmUBnM^2^kD(T6J*67{MbTgu{(%CcF@zlfFOT@tPE#ON1JbKlYlG`GMWD|SASz1ou* zl}d8)nI=noE?q6UB|%ONA10$yz^+t}hpn`T&UhE)+*Ql(BvilM=X)^KU8X&7vvUKC z5J(5YAUZl9kOyU6B&bX@zW*AL|Xp~>;`+|Mg>({64`IQoM#;S_C-<6_ur_x!HC z>%jC;>V1N;p8AsS(r5-CQhy{ZjUWt@oCh+b$7BrUz2yGN%Dwx_MI|;WQsh?}q4XLe z0DNa$WT+M=0S;>>QbivHAfO{laV#>ZrGY9~`3TN`FSy9-DB?BmzsGVLC!AE5a!kG6 z%^`7PNPFaH-nfAt4P9vd&>hMi88_IUp$o+yxm6vu_{-cu{<0AH`0w36VRlRDe7n>_sai!i7z^XHF)pC1Q5{{aU-rL*tH$X-ze-313m7~G12Iu&|3x2xMURfwp#GqtI$s1k-iNi?xX zP^y?-Xz-e;L=-d3#`i-?$(-8lG`8TGThhs=3$Hfcb_>g7 z+d3V;VlakpxcrM+r@--V`{K1)s(27*SWY(ItxM!UWlqn^53}~#0r3$*k|J3Q+B-|& z`^=_GtEZsgQ4Y;ZYuvE-frh9qb}(t#Lk9{l5vnY4sYT+CDEKV?t8ra~iD|N)mWHbaNlueZJn3fqqRJouGJrALfgHVm@XM7>b3%%(FHZldAi085U>G8ZQ zp1j1>TYa%>U;W7955!kNd(|#~k_Dq!#-mq$-7ZC^oe2OGODk*4SCPo6VPZ8cXcZJGTkvm9EpNSXxp8j(d)WdYs3%>8sgRGTyRQ-Y{| z$eb@Up*~sP+ijUJV0-xKsZhY&e0t#3P?Co z_8Eh}ugt@*Iq(7?ZK+87<)xS$><{>Hw*ZLST?q)9R18M(-@zwL#XT>A>`(gBs_oeN zS2=|nryC)LK(L;Hz0IMT4{DOyTioN@67Dop>?&WgbAJt%16aP?aJ7N=3f+%lvkB- z8M^fIUPl2^?PVzBm`k@QDn#VL0p}&l0??QPD^s<}emU2rt5R3Q7J~gg#JoS6$f{9U z;Z%Fp?zJyd0IbKy0Pe3ubP2;~P%#OoDTFFQ&U65oCA#0k)h2{T5)Suy9tG zD-neFv%HMTtA?X%Ft*^iHAl)@a63yo(SlhtwK8QY^f5oyrk?CL?R_}y#~=AHv-#kF zW3{fDZ$3#=lqK z`n%nb&3?Fhj){A_ThE{yAv`e}R-ypiH~lf4wi;>fK*2s`|GfA6Ffm=P2423Y)=gRp ztY!NZl_Jrv+|TN4Akw$A*cA`)hdx*~`bxwX4RRjt(ASV0iq$@R9-<9Wl<#!>0qV!pV~2Zi0!3Z9k)j;WnGLxB}Xo6dPB8$P(n# z2Nmq_LKcFH3oc!Hh=seg*-CBsE59nW7`(F}?=ySyQ37amHp3?NbWB|gxs9rP|J)L_ zNmxwf%>$<>h{V;-gLdgcegGSOmLDoc_KutkuGNpU0~f#^{=4aV@AWHhY3+v;@D=7c z!&X~A$hJE=gSTRErznE-2m|pc_*i72R5cD6FwIxYs5>BLV&H^9G>=#1yc2zhdPy9` z5RClj??AGsDY+f??IchjtqC$EZGIf^Q#t&8AUyDL()@ieJpmA>W7Vy^i!nYy^rjE* zb3_}5If=P(CBTUY^_E!Ec9ViI+omW|v-$JLcr_Xj^84Aw?(W{^&dc>K+m%GUoy*j# zBbB+v{~lfyGR@@;YGl*uR!?I(=!*es~&_W4Y7KqVdvTM^loK%JDe1G>(jcZ!~W z0!?fqv#%A0Aj{DmQocZ#U*l7~3zBrFt7)rP(P><1^iAd>PKp^r@W`){4J#ux)kX#K(_7Zf@4az*kWXj(FUrh+qeO;NAMkI`x z=U}oqDkDZGfMRYy(_GLaK2m_qMJoR*G$$bh9NmRDVXBd*txIRR3KkV)53>((oRtfd zWZHlb)T1olfK-z=j;Qnz@&zN3oZ*nEW(4gd`8MS4#{{Q4-M&(>^21!ZOC)ASZ%P-E z;5-N3*G$KFt$R92Ka9>kOwu#Fi*%}PUxnJt+1bUA2S~F3JOO&z|I`BsuMjN}BBa%3 zK@&fwNT0Zilc&X)+w9Qrbs%*-J-^N7|zuG+PyX7B85WO`j(13()6ttLJn+!ku7 zW2(yw_#WHi5uOD|ywHSY4o4zKBGG-@4<-3OK}lYO{u1g6tL>^BkH+VuUBs{c0bdbP zWuZ>UCW79D?FtqQ0}NNO2AdoEWIZPHUREG1ls)gKD2O_<$+A_)9>v71rh>dG!oeES zZ>?d9V5&Dxa6Yl-P~oo0&589@At{`7rzZzYjb)|myWn$c!#AK%}JS{pZFTt)f{7QDdJBz>z&$L%_ z5|U+1pZEofP6iD_fmq`Xpd$eL(_8;-hOn*M#LWH_N7y1i?+81jV-EwxB;t3J63Pik zq0~(L4v1lhQflfQmgYP;&!uV3l%j|nWAcG$9*G_Kjwb(B586+_gLjlX+T=`r=xu>abB>kVqd>mc?dIS?h6p$lJpUwL;tO^T zPm@2JmMlMR>VEjMIhzj0x~%I-mKFB9vy_sviMm}JI3ASMRgJZR?MtbxMog83??tfa zx49v)V*7jCka*Oa4T%`bcRz`b_=e=xE%r=N#QMb<|G5@>vFrP$E%rtH6}BSB6>0ap zKP+@bg1AFReFY(7>5=3_8FkYu)R!o7cX>)zP&xd=)grCjD51ChG?Je9I@X zgoieKYONE2VU$~o=-GEai4T$(zKNLgv81<%2d*oD0_!(qTkv+$_MTAjmjnUXR>t3` zhAi98S+emr-S!2d(?7PNA{}UZgiP@P%0Qri zX1F6eIA9HDHOEgf&nvQif0zTcJT+dQ$w?8k`o1&8vyaGG#@UBaBI=CL>$-Pi2Rdlv zrh`xSR`NWX024_@PZms*GA+RfygN@&!H@Ud|$q~1Vb8? z@@!LPmYUp_CF?4r3yf2iw5VU4@6ee~wCk?My_IVqvS&K2H0@Rz!qH+`|{^B-p|+y6$aW&7WneX7FR5o^I5=Bxc1GGAep3MZuUC4+gJ1~Qj}R1E$amXoNV{(D3Av zV(FE~r}Z^%rA#RPT3%ggSK`N;wHof%vl^xiDHa-DPc|ZB)9}Zo5r_i4=WvK1It!+}ZPqp+lmbPSrLz-YP`AvDz0IaN zI!BOf1YD5gD7#@fqxJ?_o=Gle%x}*e=QCObbDUYKog%DBt0|YpH{n-v+46K7)od26 z`(fq#kGJyKyGCHqVx-N_@^*W9$GqsBa~zbU5!tZmEzue~LhvuW^UdqKs6{J{ny}KC zO|4P0?<(3l{mFilwobpUAGXfhwRQfmRQ~5!Dyy%M;-RrHc>P>!CB?4)?kt*5z*O%7O= zpF&@cey1#q|DnEVT^8Tub%gKqh_n|YP~TS5#*5uev|T@i0ROvhDPd=SAFEvhyR`;3 zFMluwGpWH2)8UT}2&oP*cL!2CyRWuh9z5OI+cKd2o{AaDPqoC#ZLM!$qYmKzyU*aO z+gV4F4%VN*^DGC7sy8x1zL-- zFdzjQ{(JyQ&}y)c4j}e&+StdHCHo8H^gm817i!!a9G~#V&z$iVZ~Fe1%Ak+Grj0j) z!|ZQq8eQ)pieW1cF+b-* z&l-Gbte>7{XhCj3Ps0{(*k^3W6T>5T^}aV|RGg5twu1u;gP+zs%VMd^U8!Y8_45h5 zF$2-(jw?JevA@+7*fq+wowHS{)pimw3+zvsWhR9C83TC;BeK;yJfUw9R98T?U6pepP{KidF^I)3_?Und)^ac+00L)hnn|V55&ZM4b{Kh^m5uuqp+`F^>&? z(8mb`A5K@`ZAtpinU}O$*`G2?3yjSDRQ9j#YNo6!+xDke%^XpP>sm*x8il7TR=VN* zB5aPfb~IJgo0aEiinbnDe=6eb!g9ZVHu}x(fIz*Uj>d_bsL!b)keLT+pAo0$I*}Z< z|5hVNDQ(X5Onj;8C~tqKX%BzSdx!n>7ykN%zkcPfU-?T2Hdk~n4l{^(E|u}0ri$s+ z;m-!+%J`4S#LouTkp1G8dO$K+?;Kn%VeygBpEbG^L_dqip+*^ai zF}|Whe({HTQUns8Q;fAlRc5?-`m$ORmJ{yKyQ;=} zYwabSLgl~RX$Ra?XWHdhu_9^OY7pjRk+h1{Z%Y%KYsJIJYl02=a&Bq=yc+jE4MrCe zHuOpO?I=9Kwc8ai=a>$az1V%-yJEFf#swi&9p8EXm}B+Oq`N;lajUm@Q(t`0lYoZi+VY3oDKjH9sYUX z8lbzHZgkhujW_W3%~}J`6>K3p?5sOMu6P`aHBSdvsbA=T35e*uKTvGxw~Ff};623* zNNA;uwOs@TG^A5Flo)rwBLq(;AiNsSjw-}MV>7RG18OcR_lC;7S<9HXGTNYqc4;%; zC`T65`w!BC=&%&Pw*KR!`|ldxD7sz1XWR|Qgk-dPY5El1g69TZ!{kW4;$s7 zq4RH-YG3k8mf_Z}4_)Cm~eRXuEy*i&8S#Y{RRt6JfeE8?Od zA7cPpdo9>I)cN$pWD^@UIT{GPUXBQLh(kR z0KvyS-`K`xWc2Tn3~0NYw>7=DmgZ-*3EzzH%@&65GvWKZ7<`3{w%siRA&z}x+-J9u z^{DHXw+-u2)9HI=zCY8q&wAV44C-6nHmtYJoVD$6*0#f0+aYJIpPrxe4!V-Pwu!yA ziM^JK*^W!^Wr;%bh%K+`YiaE+6+a)~v{s46QpK(lT=C&(qEPI)-GfzfM^LqH7Z{1O zy?IyTTUy@Ozbks_jqH;(r%%?LK3TJUvi)q$l+v?v$(MSjtS;3<`kj7!gWdQ>Owu=( zf$;o%*L1)}uN~BK$=MTlSq`!dp3hkhpu)49Q;myfXLtyAn0c{CbZ3Snv_XiW03LI%e$v;^@H3}W?)WE-yGIYn0 zp*xNY-Ld1d`Q`#kZNjMBb5}Gd4XIcR{(SZ_4O8e!b#=NTQN{Y^=4H{y5Q`KJ4ntUU zpNklVfs1&?K?f~3kWQY!;n*11Cgye{F3(KIgX3dZRM?TV zGeK~evu{$JK`9%f)6uxIJ?{5mdzV+l(ikiJ_GEx=?c$+USi`c_wH18|M7N!m3)vZq z(4`s$^LTmHJ_KI{!OtuDi3W=T{J3ghSd%jVZ9tO0WqUuPGQjhW(n#L)-4Q8yZpUoz zw}ZFOLD}Bg-vDpmz$KcK!EtqKatNNU)*qU`tv@t>Q{^&2J43U}Jzk^A@qAXEwF-={ zzVX8m#05+L%K8GOqEXou|atFMPz#o1&*ot=sbf5HP@#MYZQ;-Y|vODD4xTmi2gVig`4f8 zczO!)CNl5a2O^fuyl)>!&#)lH2gGUTe1!mA2cRneylvmAzPuZFntJ1x;}R~Q%zG;y zBX$l1&_vvM$pgV*R+6|B-8=DN!_U4iuOz3SVX>O!B)iM$a2;ec^SqfjA3iJm#JwFn zKh(=i;B9YiQzX&`W0N~@#iIBqUWwHMyu+sK^uUdiz_A}w{~r+9ug{}d*0A4VFZmK6 z_Kq(BGG6f|aMl~X0>Zb#H@pyG6+rZ1F9AW{^%zJ@@Fn?xu6T=&0m`&!4hgbo4v3|k z^lmg=$+~zM%Z=?qK2w?v@tGr;#7D;hWiPf~zCPIA+kO3t)@FZ&Ougx}(S!Gf2glG! zY)^R68w?STrP<mu$9VqV_Z^(hr0xbN4~6izyzfr-7*l( z8V*=F8>r}qd2FCMokK%-1C44V7tgK8i7e%=l}24_&$Eb1QX=<&U4Yn4;#j`Cip=t! zwN_>fF5zi$ zE#&{K7y7?Z`X8Vr*(>)Dhnv6N3?>&as2ndX7iwp3zgq@_oN!om>z@t|N9VwDlVlE;V#AW+a-X>J_h6+VF7}D*emWz#>Sr^&YkoQ- zxZ-Csyz6}?gNe=5U(8zNtcT%d&e^o^g)-5!RJ0})4Tu%y`&tzWr=r0zMCLkFfJ>JD z)%l%=%U(2E05Wrjr*b1}5P1`b@%li`0jYx?efAfGK9!s+>Wc2Ev|^GEvAR+U@*o1@ z?ZfV`q%M@R(GK?4axe6=EVd3inF+*UQ68=$N9@Aw=DUK`hC~?{=Fd-i!~PFJ_Ct{U z5M*HfE+Tj_a1JW_+nxc^G3L8}K>XF@}3hD{5Y_LUpu(A8%#rn(5IC^{793d{XTOE#3 zWHLIP&b9W!sfW+>6vrPEI|TXcv~uYFA{#1xtNp1nZcO;a@En=X)?&`pa|z)MWJz|_ zl{3Pn+=Z1nHO`ee%<7*0Ia!t`GnlQFXy&D@Ag)97R3;}7MBNVKrLjEhLiEt5I9x+r zQq1C79wZ>|bg4MLKwX0D3SFBb5!Gp-B$;)-^2PeRbF)fU^XKZZYtbj7Row)E;&yc1 zi`E{YGD_Bh?o!7HMm_18lu~rA8zd2Rt$Ft=krUQ=?uFOYYRpDMJLZw!2B%7YJYTKg zql%ZkPlMx%+J%K}rJn7)9iUePRMjo$Tn7$yT4_FosddOYU?{FcMW~J4HL)F5e7IWD zcLjQeiWF~ih0Bv?w{&2yKLqh(>9Cf$MeeO_(qi1p!a;0M9f5xy1ZvG`FSQU4D8XYhf2uWtxhCo0*w<-; zTs(6tde+Bs1pxf!KxOT?rauD@`$C5NyPp5^GEfQg6i5fjJTbPBn>+WTkdI1vsKzcU z%08+h4(6^~%1gRE?koVhGG2@f#ES?2&hD>BzeIj3ML35`?{AGYYqd1ITaj6nxU9Y! zXUa{;f1$$;2T2PX+k{egj+$q1C^l}TOq06zR<#)a)`htT#Cr@?$#I)fiIiv&hXCzA zu~_F`7v|kh#rYWC|Jq32D|XNL&$Y4fknk+IE-o`V`p29rbl^4Uuh5>?bgsCLcvpX= z6*_PPpKGOdaV&DBu2E~aYq^MzK<41xl2gBT5K1dvUNum_xN&q?NxM+#w==ZPbUa zpp$V3iYgM5Am`J`sOSQ8G71eO7hOUeF1nmd(_{a|?tjN5CSEiZNMp(ZVY#MCc0G!P zz(jft!dz+>ppjjVVn<#g%>rpI)w^T77CJB4BPxAOx|sw?xI~*v`IFO&x#|7@Wv@v! zRxfF`DCgB6BiHw9OR(=+gPdC)*3lrXJiMkP^iWE^5ga2`gxd1Zt72{iauF1l%R>+S zwe-hDP+UzOdR4G6x~?R=7Ts0lp;rkCr0Yq-Yf)V;4{PYVED9H`?-JHp`fjBlVU#Ep zSxN}>-8k4H^j#+wPh5x9X4z7?&ETG~K2&09kfyz}^DL((71#Le+#^Z62~NYg9SLv6 zVY0o{e`onouZmo86+QU;c#X+HozO$fx+8M%M%0Dh2h+n7OCZ#&TxoICy1nD1Wiwlx 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 qEieBS_}?J^X(s + + + + +Complete MOOSE CTLD System β€” Player & Mission Setup Guide + + + +

    Complete MOOSE CTLD System β€” Player & Mission Setup Guide

    +

    Welcome! This guide explains what logistics means in DCS, how the CTLD system lets players change the battlefield, and exactly how to use the in-game menus. It also includes a concise mission-maker setup section.

    +
    + +

    What is CTLD and why it matters

    +
      +
    • CTLD (logistics & troop transport) turns helicopters and transports into force multipliers.
    • +
    • You request β€œcrates” at Supply (Pickup) Zones, deliver them, and build combat units, SAM sites, radars, FOBs, and support vehicles.
    • +
    • You can also transport troops and deploy them to hold ground or attack.
    • +
    • Every delivered asset can change the front line: new air defenses, JTACs, EWR coverage, armor pushes, or an FOB that shortens logistics legs.
    • +
    +
    Screenshot placeholder: F10 -> CTLD root menu
    +

    Tip: The loop you’ll repeat is Request β†’ Deliver β†’ Build β†’ Fight.

    +
    + +

    Getting started (players)

    +
      +
    1. Spawn in a supported helicopter or transport.
    2. +
    3. Fly to a friendly Supply (Pickup) Zone.
    4. +
    5. Open F10 Other -> CTLD.
    6. +
    7. Use Logistics -> Request Crate to spawn crates; use Operations -> Build to assemble units/sites.
    8. +
    9. Use Navigation to get vectors and Hover Coach, and Field Tools to mark or create a quick Drop Zone.
    10. +
    11. Deliver, build, and watch the mission evolve.
    12. +
    +
    Screenshot placeholder: Example Pickup Zone with smoke
    +
    + +

    Menu overview (matches in-game structure)

    +

    Below are the menu groups and the common actions you’ll see under each. Some options appear only when relevant (e.g., inventory enabled, crates nearby, zones configured).

    + +

    Operations

    +
    Screenshot placeholder: Operations menu open
    +
      +
    • Troop Transport +
        +
      • Load Troops: Load infantry while inside an ACTIVE Supply (Pickup) Zone if the mission enforces this rule.
      • +
      • Deploy Troops (Defend): Unload troops to hold the current area and defend nearby.
      • +
      • Deploy Troops (Attack): Unload troops and order them to seek and engage enemies or move toward enemy-held bases (mission-configured behavior and speed). Static/unsuitable units will hold position.
      • +
      • Notes: +
          +
        • Troop loading may be restricted to Pickup Zones. The nearest zone will be shown in messages if you’re outside.
        • +
        • Deployment is blocked inside Pickup Zones when restrictions are enabled.
        • +
        +
      • +
      +
    • +
    • Build +
        +
      • Build Here: Consumes nearby crates (within the Build Radius) and spawns the unit/site at your position. Includes a β€œconfirm within X seconds” safety and a cooldown between builds.
      • +
      • Build (Advanced) β†’ Buildable Near You +
          +
        • Lists everything that can be built with crates you’ve dropped nearby (and optionally what you’re carrying, depending on mission settings).
        • +
        • Per item you’ll see: +
            +
          • Build [Hold Position]: Spawns and orders the unit/site to hold.
          • +
          • Build [Attack (N m)]: Spawns and orders mobile units to seek/attack within the configured radius. Static/unsuitable units will still hold.
          • +
          +
        • +
        • Refresh Buildable List: Re-scan nearby crates and update the list.
        • +
        +
      • +
      • FOB-only recipes can require building inside an FOB Zone when enabled (mission-specific rule).
      • +
      +
    • +
    + +

    Logistics

    +
    Screenshot placeholder: Logistics -> Request Crate
    +
      +
    • Request Crate +
        +
      • Menu is organized by categories (e.g., Combat Vehicles, AAA, SAM short range, Support, Artillery, etc.).
      • +
      • Each entry shows how many crates are required (e.g., β€œM1097 Avenger (2 crates)”).
      • +
      • Requests generally require being within the maximum distance to an ACTIVE Pickup Zone.
      • +
      • When inventory is enabled, stock is tracked per zone; out-of-stock types cannot be requested at that location until resupplied.
      • +
      +
    • +
    • Recipe Info +
        +
      • Browse categories and see each item’s description; use this to plan which crates you need to build a unit or a multi-crate site.
      • +
      +
    • +
    • Request Crate (In Stock Here) +
        +
      • Appears when inventory menus are enabled and the mission-maker has exposed this view.
      • +
      • Shows only items in stock at your nearest active Supply Zone and lets you spawn them directly.
      • +
      • Includes a β€œRefresh” option to update the list after requests.
      • +
      +
    • +
    • Crate handling tips +
        +
      • Crates are marked with smoke at spawn.
      • +
      • Use Navigation β†’ Request Vectors to Nearest Crate if you lose sight of it.
      • +
      • Hover pickup: hold roughly 5–20 m AGL, very low ground speed, steady for a few seconds to auto-load.
      • +
      • Crates have a mission-configured lifetime and will self-cleanup if not used.
      • +
      +
    • +
    + +

    Field Tools

    +
    Screenshot placeholder: Field Tools menu open
    +
      +
    • Create Drop Zone (AO): Quickly creates a temporary Drop Zone around your current position for coordination or scripted objectives.
    • +
    • Smoke My Location: Green / Red / White / Orange / Blue β€” mark your current spot with smoke to help other players find you or the build point.
    • +
    + +

    Navigation

    +
    Screenshot placeholder: Navigation menu open
    +
      +
    • Hover Coach: Enable / Disable: In-game guidance messages to help you nail the hover pickup window (AGL, drift, speed, β€œhold steady” cues).
    • +
    • Request Vectors to Nearest Crate: Prints bearing and range to the closest friendly crate.
    • +
    • Vectors to Nearest Pickup Zone: Bearing and range to the nearest active Supply (Pickup) Zone; if none are active, you’ll get helpful direction to the nearest configured one.
    • +
    + +

    Admin/Help

    +
    Screenshot placeholder: Admin/Help menu open
    +
      +
    • Show CTLD Status: Quick summary of active crates, how many zones exist, and whether Build Confirm/Cooldown are ON.
    • +
    • Draw CTLD Zones on Map / Clear CTLD Map Drawings: Draws labeled circles for Pickup/Drop/FOB zones on the F10 map for your coalition; clear them when you’re done.
    • +
    • Debug β†’ Enable/Disable logging: Toggle detailed logging (mission maker troubleshooting).
    • +
    • Player Guides: Zones – Guide; Inventory – How It Works; CTLD Basics; Troop Transport & JTAC Use; Hover Pickup & Slingloading; Build System; SAM Sites.
    • +
    • Coalition Summary (if exposed by mission maker): A roll-up of coalition CTLD activity.
    • +
    + +
    +

    How players influence the mission

    +
      +
    • Build air defenses (SAM/AAA) to protect friendly FARPs/FOBs and deny enemy air.
    • +
    • Deploy armor and ATGM teams to push objectives, ambush enemy convoys, or hold key terrain.
    • +
    • Build EWR/JTAC for better situational awareness and targeting support.
    • +
    • Establish FOBs to create forward supply hubs and shorten flight times.
    • +
    +
    Screenshot placeholder: Example built SAM site
    + +
    +

    Mission setup (for mission makers)

    +

    Keep this section short and focused. You can find the defaults and toggles inside:

    +
      +
    • Moose_CTLD_Pure/Moose_CTLD.lua (main CTLD implementation; see the CTLD.Config table)
    • +
    • Moose_CTLD_Pure/Moose_CTLD_FAC.lua (optional FAC/RECCE support)
    • +
    • Moose_CTLD_Pure/catalogs/ (example catalogs with ready-to-use recipes)
    • +
    • Moose_CTLD_Pure/init_mission_dual_coalition.lua (ready-to-use minimal init for BLUE+RED)
    • +
    + +

    Load order (Do Script File in Mission Editor)

    +
      +
    1. Moose.lua
    2. +
    3. Moose_CTLD_Pure/Moose_CTLD.lua
    4. +
    5. A catalog file from Moose_CTLD_Pure/catalogs/ (optional but recommended)
    6. +
    7. Moose_CTLD_Pure/Moose_CTLD_FAC.lua (optional FAC/RECCE)
    8. +
    9. Your mission init block (you can use Moose_CTLD_Pure/init_mission_dual_coalition.lua as-is or adapt it)
    10. +
    +
    Screenshot placeholder: Mission Editor Do Script File list
    + +

    Minimal snippet (example) β€” keep it to the point:

    +
      +
    • Create a CTLD instance per coalition with: CoalitionSide, AllowedAircraft, Zones (Pickup/Drop/FOB definitions), and key toggles.
    • +
    • Optionally create a FAC module instance and run it.
    • +
    • Optionally merge a crate catalog.
    • +
    +

    Hint: See the shipped init_mission_dual_coalition.lua for a clean example of both BLUE and RED.

    + +

    Zones you must create in the Mission Editor

    +
      +
    • Pickup (Supply): e.g., ALPHA (BLUE), DELTA (RED)
    • +
    • Drop: e.g., BRAVO (BLUE), ECHO (RED)
    • +
    • FOB: e.g., CHARLIE (BLUE), FOXTROT (RED)
    • +
    +

    Use the names referenced by your init script. The example init uses flags to control active/inactive state.

    +
    Screenshot placeholder: Trigger zones for Pickup/Drop/FOB
    + +

    Frequently configured options (where to change)

    +

    All of the following live under CTLD.Config in Moose_CTLD.lua or can be provided in the table passed to _MOOSE_CTLD:New({...}) in your init script.

    +
      +
    • Logistics rules +
        +
      • RequirePickupZoneForCrateRequest
      • +
      • RequirePickupZoneForTroopLoad
      • +
      • PickupZoneMaxDistance
      • +
      • ForbidDropsInsidePickupZones
      • +
      • ForbidTroopDeployInsidePickupZones
      • +
      • ForbidChecksActivePickupOnly
      • +
      +
    • +
    • Building behavior +
        +
      • BuildRadius
      • +
      • BuildSpawnOffset
      • +
      • BuildConfirmEnabled + BuildConfirmWindowSeconds
      • +
      • BuildCooldownEnabled + BuildCooldownSeconds
      • +
      • RestrictFOBToZones
      • +
      • AutoBuildFOBInZones
      • +
      +
    • +
    • Inventory system (per-zone stock) +
        +
      • Inventory.Enabled
      • +
      • Inventory.ShowStockInMenu
      • +
      • Inventory.HideZeroStockMenu
      • +
      • Inventory.FOBStockFactor
      • +
      +
    • +
    • Hover & pickup quality-of-life +
        +
      • HoverCoachConfig (messages/timing/thresholds)
      • +
      • TroopSpawnOffset
      • +
      +
    • +
    • AI behavior for Attack builds +
        +
      • AttackAI.VehicleSearchRadius
      • +
      • AttackAI.MoveSpeedKmh
      • +
      +
    • +
    • Menus +
        +
      • UseGroupMenus
      • +
      • UseCategorySubmenus
      • +
      • PickupZoneSmokeColor
      • +
      +
    • +
    + +

    Crate catalog (recipes)

    +
      +
    • Use one of the provided catalogs under Moose_CTLD_Pure/catalogs/ or your own.
    • +
    • Each entry defines a display label, side, category, stock, and a build function.
    • +
    • Multi-crate β€œSITE” entries build multi-unit groups (SAM sites or composite systems).
    • +
    • Typical workflow +
        +
      • Load your chosen catalog after Moose_CTLD.lua.
      • +
      • Merge it into each CTLD instance you created.
      • +
      +
    • +
    +
    Screenshot placeholder: Request Crate categories
    + +

    Dual-coalition setup

    +
      +
    • Instantiate two CTLD instances (one per side), each with its own zone names and smoke colors.
    • +
    • Instantiate two FAC modules if you want auto-lase/RECCE for both sides.
    • +
    • The included init_mission_dual_coalition.lua shows a minimal working setup.
    • +
    + +

    FAC/RECCE (optional, from Moose_CTLD_FAC.lua)

    +
      +
    • What it adds: Auto-lase with configurable laser codes, IR markers, map marks; manual target lists; multi-strike helper; artillery/naval/air tasking; RECCE sweeps with DMS/MGRS.
    • +
    • Player usage: Look for an F10 FAC/RECCE menu in qualifying aircraft or groups.
    • +
    • Mission knobs: CoalitionSide, auto-lase behavior, code reservations, marker type/color, on-station logicβ€”see Moose_CTLD_FAC.lua or pass overrides to :New().
    • +
    + +

    Sanity checks and troubleshooting

    +
      +
    • Use Admin/Help -> Show CTLD Status to verify counts and toggles quickly.
    • +
    • Draw zones to confirm names/positions match your intent.
    • +
    • If crates don’t spawn: check zone active state, distance to zone, and inventory stock.
    • +
    • If builds don’t trigger: check Build Radius, confirm window, cooldown, and that the crates match the recipe.
    • +
    + +
    +

    Screenshot ideas (drop your captures in the placeholders above)

    +
      +
    • CTLD root menu with the five groups (Operations, Logistics, Field Tools, Navigation, Admin/Help)
    • +
    • Request Crate with category submenus visible
    • +
    • Build (Advanced) -> Buildable Near You list
    • +
    • Hover Coach prompt during a near-perfect hover
    • +
    • Vectors message to a crate / pickup zone
    • +
    • Zone drawings on the F10 map (Pickup/Drop/FOB labeled)
    • +
    • In Stock Here list (if enabled)
    • +
    • Example SAM site placed after a build
    • +
    + +
    +

    Appendix: File locations and names

    +
      +
    • Main CTLD: Moose_CTLD_Pure/Moose_CTLD.lua
    • +
    • FAC/RECCE: Moose_CTLD_Pure/Moose_CTLD_FAC.lua
    • +
    • Example dual-coalition init: Moose_CTLD_Pure/init_mission_dual_coalition.lua
    • +
    • Catalogs: Moose_CTLD_Pure/catalogs/
    • +
    +

    No large code is required; most options are cleanly exposed in the config tables. Keep snippets tiny when needed.

    + + \ No newline at end of file diff --git a/Player_Mission_Guide.md b/Player_Mission_Guide.md new file mode 100644 index 0000000..22c618f --- /dev/null +++ b/Player_Mission_Guide.md @@ -0,0 +1,438 @@ +# Complete MOOSE CTLD System β€” Player & Mission Setup Guide + +Welcome! This guide explains what logistics means in DCS, how the CTLD system lets players change the battlefield, and exactly how to use the in-game menus. It also includes a concise mission-maker setup section. + +--- + +## What is CTLD and why it matters + +- CTLD (logistics & troop transport) turns helicopters and transports into force multipliers. +- You request β€œcrates” at Supply (Pickup) Zones, deliver them, and build combat units, SAM sites, radars, FOBs, and support vehicles. +- You can also transport troops and deploy them to hold ground or attack. +- Every delivered asset can change the front line: new air defenses, JTACs, EWR coverage, armor pushes, or an FOB that shortens logistics legs. + +[screenshot: F10 -> CTLD root menu] + +Tip: The loop you’ll repeat is Request β†’ Pickup β†’ Transport β†’ Deliver β†’ Build β†’ Fight. + +--- + +## Getting started (players) + +1) Spawn in a supported helicopter or transport. +2) Fly to a friendly Supply (Pickup) Zone. +3) Open F10 Other -> CTLD. +4) Use Logistics -> Request Crate to spawn crates; use Operations -> Build to assemble units/sites. +5) Use Navigation to get vectors and Hover Coach, and Field Tools to mark or create a quick Drop Zone. +6) Deliver, build, and watch the mission evolve. + +[screenshot: Example Pickup Zone with smoke] + +--- + +## Menu overview (matches in-game structure) + +Below are the menu groups and the common actions you’ll see under each. Some options appear only when relevant (e.g., inventory enabled, crates nearby, zones configured). + +### Operations + +[screenshot: Operations menu open] + +- Troop Transport + - Load Troops: Load infantry while inside an ACTIVE Supply (Pickup) Zone if the mission enforces this rule. + - Deploy Troops (Defend): Unload troops to hold the current area and defend nearby. + - Deploy Troops (Attack): Unload troops and order them to seek and engage enemies or move toward enemy-held bases (mission-configured behavior and speed). Static/unsuitable units will hold position. + - Notes + - Troop loading may be restricted to Pickup Zones. The nearest zone will be shown in messages if you’re outside. + - Deployment is blocked inside Pickup Zones when restrictions are enabled. + +- Build + - Build Here: Consumes nearby crates (within the Build Radius) and spawns the unit/site at your position. Includes a "confirm within X seconds" safety and a cooldown between builds. + - Build (Advanced) β†’ Buildable Near You + - Lists everything that can be built with crates you've dropped nearby (and optionally what you're carrying, depending on mission settings). + - Per item you'll see: + - Build [Hold Position]: Spawns and orders the unit/site to hold. + - Build [Attack (N m)]: Spawns and orders mobile units to seek/attack within the configured radius. Static/unsuitable units will still hold. + - Refresh Buildable List: Re-scan nearby crates and update the list. + - FOB-only recipes can require building inside an FOB Zone when enabled (mission-specific rule). + +- MEDEVAC (if enabled in mission) + - List Active MEDEVAC Requests: Shows all pending rescue missions with grid coordinates and time remaining + - Nearest MEDEVAC Location: Bearing and range to the closest MEDEVAC crew needing rescue + - Coalition Salvage Points: Display current salvage point balance for your coalition + - Vectors to Nearest MEDEVAC: Full details (bearing, range, time remaining) to nearest crew + - MASH Locations: Shows all active MASH (Mobile Army Surgical Hospital) zones where you can deliver crews + - Pop Smoke at Crew Locations: Marks all active crew locations with smoke for easier visual identification + - Pop Smoke at MASH Zones: Marks all MASH zones with smoke + - MASH & Salvage System - Guide: In-game quick reference for the MEDEVAC system (same as in Admin/Help -> Player Guides) + - Admin/Settings β†’ Clear All MEDEVAC Missions: Debug/admin tool to reset all active MEDEVAC missions + +### Logistics + +[screenshot: Logistics -> Request Crate] + +- Request Crate + - Menu is organized by categories (e.g., Combat Vehicles, AAA, SAM short range, Support, Artillery, etc.). + - Each entry shows how many crates are required (e.g., β€œM1097 Avenger (2 crates)”). + - Requests generally require being within the maximum distance to an ACTIVE Pickup Zone. + - When inventory is enabled, stock is tracked per zone; out-of-stock types cannot be requested at that location until resupplied. + +- Recipe Info + - Browse categories and see each item’s description; use this to plan which crates you need to build a unit or a multi-crate site. + +- Request Crate (In Stock Here) + - Appears when inventory menus are enabled and the mission-maker has exposed this view. + - Shows only items in stock at your nearest active Supply Zone and lets you spawn them directly. + - Includes a β€œRefresh” option to update the list after requests. + +- Crate handling tips + - Crates are marked with smoke at spawn. + - Use Navigation -> Request Vectors to Nearest Crate if you lose sight of it. + - Hover pickup: hold roughly 5–20 m AGL, very low ground speed, steady for a few seconds to auto-load. + - Crates have a mission-configured lifetime and will self-cleanup if not used. + +### Field Tools + +[screenshot: Field Tools menu open] + +- Create Drop Zone (AO) + - Quickly creates a temporary Drop Zone around your current position for coordination or scripted objectives. + +- Smoke My Location + - Green / Red / White / Orange / Blue: Mark your current spot with smoke to help other players find you or the build point. + +### Navigation + +[screenshot: Navigation menu open] + +- Hover Coach: Enable / Disable + - In-game guidance messages to help you nail the hover pickup window (AGL, drift, speed, β€œhold steady” cues). + +- Request Vectors to Nearest Crate + - Prints bearing and range to the closest friendly crate. + +- Vectors to Nearest Pickup Zone + - Bearing and range to the nearest active Supply (Pickup) Zone; if none are active, you’ll get helpful direction to the nearest configured one. + +### Admin/Help + +[screenshot: Admin/Help menu open] + +- Show CTLD Status + - Quick summary of active crates, how many zones exist, and whether Build Confirm/Cooldown are ON. + +- Draw CTLD Zones on Map / Clear CTLD Map Drawings + - Draws labeled circles for Pickup/Drop/FOB zones on the F10 map for your coalition; clear them when you’re done. + +- Debug β†’ Enable logging / Disable logging + - Toggles detailed logging (mission maker troubleshooting). + +- Player Guides (in-game quick reference) + - Zones – Guide + - Inventory – How It Works + - CTLD Basics (2-minute tour) + - Troop Transport & JTAC Use + - Hover Pickup & Slingloading + - Build System: Build Here and Advanced + - SAM Sites: Building, Repairing, and Augmenting + +- Coalition Summary (if exposed by mission maker) + - A roll-up of coalition CTLD activity (counts, highlights). Exact placement depends on mission configuration. + +--- + +## How players influence the mission + +- Build air defenses (SAM/AAA): Protect friendly FARPs/FOBs and deny enemy air. +- Deploy armor and ATGM teams: Push objectives, ambush enemy convoys, or hold key terrain. +- Build EWR/JTAC: Improve situational awareness and targeting support. +- Establish FOBs: Create forward supply hubs to shorten flight times and increase the tempo of logistics. +- Rescue MEDEVAC crews: Save downed vehicle crews, earn salvage points, and keep friendly vehicles in the fight. + +[screenshot: Example built SAM site] + +Practical tip: Coordinate. One player can shuttle crates while others escort or build. FOBs multiply everyone's effectiveness. + +--- + +## MEDEVAC & Salvage System (Player Operations Guide) + +The MEDEVAC (Medical Evacuation) and Salvage system adds a high-stakes rescue mission layer to logistics. When friendly ground vehicles are destroyed, their crews may survive and call for rescue. Successfully rescuing and delivering these crews to MASH zones earns your coalition Salvage Pointsβ€”a critical resource that keeps logistics flowing even when supply zones run dry. + +### What is MEDEVAC? + +- **Vehicle destruction triggers rescue missions**: When a friendly ground vehicle (tank, APC, AA vehicle, etc.) is destroyed, the crew has a chance to survive and spawn near the wreck. +- **Time-limited rescue window**: Crews have a limited time (typically 60 minutes) to be rescued. If no one comes, they're KIA and the vehicle is permanently lost. +- **Coalition-wide benefit**: Any helicopter pilot can attempt the rescue. Successful delivery to MASH earns salvage points for the entire coalition. + +### How the rescue workflow works + +1. **Vehicle destroyed β†’ Crew spawns** (after a delay, typically 5 minutes to let the battle clear) + - Crew spawns near the wreck with a small offset toward the nearest enemy + - Invulnerability period during announcement (crews can't be killed immediately) + - MEDEVAC request broadcast to coalition with grid coordinates and salvage value + - Map marker created (if enabled) showing location and time remaining + +2. **Navigate to crew location** + - Use Operations β†’ MEDEVAC β†’ Vectors to Nearest MEDEVAC for bearing and range + - Or check Navigation β†’ Vectors to Nearest MEDEVAC Crew + - Crews pop smoke when they detect approaching helicopters (typically within 8 km) + - Watch for humorous greeting messages when you get close! + +3. **Load the crew** + - Hover nearby and load troops normally (Operations β†’ Troop Transport β†’ Load Troops) + - System automatically detects MEDEVAC crew and marks them as rescued + - **Original vehicle respawns at its death location** (if enabled), fully repaired and ready to fight + - You'll see a confirmation message with crew size and salvage value + +4. **Deliver to MASH zone** + - Fly to any friendly MASH (Mobile Army Surgical Hospital) zone + - Use Operations β†’ MEDEVAC β†’ MASH Locations or Navigation β†’ Vectors to Nearest MASH + - Deploy troops inside the MASH zone (Operations β†’ Troop Transport β†’ Deploy) + - **Salvage points automatically awarded** to your coalition + - Coalition-wide message announces the delivery, points earned, and new total + +### Warning system + +The mission keeps you informed of time-critical rescues: +- **15-minute warning**: "WARNING: [vehicle] crew at [grid] - rescue window expires in 15 minutes!" +- **5-minute warning**: "URGENT: [vehicle] crew at [grid] - rescue window expires in 5 minutes!" +- **Timeout**: If rescue window expires, crew is KIA and vehicle is permanently lost + +### MASH Zones (Mobile Army Surgical Hospital) + +**Fixed MASH zones** are pre-configured by the mission maker at friendly bases or FARPs. These are always active and visible on the map (use Admin/Help β†’ Draw CTLD Zones to see them). + +**Mobile MASH** can be built by players using MASH crates from the logistics catalog: +- Request and build Mobile MASH crates like any other unit +- Creates a new delivery zone with radio beacon +- Perfect for forward operations near active combat zones +- Multiple mobile MASHs can be deployed to reduce delivery times +- If destroyed, that MASH zone stops accepting deliveries + +### Salvage Points: The economic engine + +**Earning salvage**: +- Each vehicle type has a salvage value (typically 1 point per crew member) +- Deliver crews to MASH to earn points for your coalition +- Coalition-wide pool: everyone benefits from everyone's rescues + +**Using salvage**: +- When you request crates and the supply zone is OUT OF STOCK, salvage automatically applies (if enabled) +- System consumes salvage points equal to the item's cost +- Lets you build critical items even when supply lines are exhausted +- Check current balance: Operations β†’ MEDEVAC β†’ Coalition Salvage Points + +**Strategic value**: +- High-value vehicles (tanks, AA systems) typically award more salvage +- Prioritize rescues based on salvage value and proximity +- Mobile MASH deployment near combat zones multiplies salvage income +- Salvage can unlock mission-critical capabilities when inventory runs low + +### Crew survival mechanics (mission-configurable) + +- **Survival chance**: Configurable per coalition (default ~50%). Not every destroyed vehicle spawns a crew. +- **MANPADS chance**: Some crew members may spawn with anti-air weapons (default ~10%), providing limited self-defense +- **Crew size**: Varies by vehicle type (catalog-defined). Tanks typically have 3-4 crew, APCs 2-3. +- **Crew defense**: Crews will return fire if engaged during rescue (can be disabled) +- **Invulnerability**: Crews are typically immortal during the announcement delay and often remain protected until rescue to prevent instant death + +### Best practices for MEDEVAC operations + +1. **Monitor requests actively**: Use Operations β†’ MEDEVAC β†’ List Active MEDEVAC Requests to see all pending missions +2. **Prioritize by value and time**: High salvage + low time remaining = top priority +3. **Deploy Mobile MASH forward**: Reduce delivery time by placing MASH near active combat zones +4. **Coordinate with team**: Share MEDEVAC locations. One player can rescue while another delivers to MASH. +5. **Use smoke marking**: Operations β†’ MEDEVAC β†’ Pop Smoke at Crew Locations marks all crews with smoke +6. **Check salvage before major operations**: Know your coalition's salvage balance before pushing objectives +7. **Risk assessment**: Don't sacrifice your aircraft for low-value rescues in hot zones. Dead rescuer = no rescue. + +### MEDEVAC menu quick reference (Operations β†’ MEDEVAC) + +- **List Active MEDEVAC Requests**: Overview of all pending rescues (grid, vehicle type, time left) +- **Nearest MEDEVAC Location**: Quick bearing/range to closest crew +- **Vectors to Nearest MEDEVAC**: Detailed navigation info with time remaining +- **Coalition Salvage Points**: Check current balance +- **MASH Locations**: Shows all active MASH zones (fixed and mobile) +- **Pop Smoke at Crew Locations**: Visual marking for all active crews +- **Pop Smoke at MASH Zones**: Visual marking for all delivery zones +- **MASH & Salvage System - Guide**: In-game reference (same content available in Admin/Help β†’ Player Guides) + +### MEDEVAC statistics (if enabled) + +Some missions track detailed statistics available via Admin/Help β†’ Show MEDEVAC Statistics: +- Crews spawned, rescued, delivered to MASH +- Timed out and killed in action +- Vehicles respawned +- Salvage earned, used, and current balance + +[screenshot: MEDEVAC request message with grid coordinates] +[screenshot: Operations β†’ MEDEVAC menu] +[screenshot: Mobile MASH deployed with beacon] + +--- + +## How players influence the mission + +- Build air defenses (SAM/AAA): Protect friendly FARPs/FOBs and deny enemy air. +- Deploy armor and ATGM teams: Push objectives, ambush enemy convoys, or hold key terrain. +- Build EWR/JTAC: Improve situational awareness and targeting support. +- Establish FOBs: Create forward supply hubs to shorten flight times and increase the tempo of logistics. +- Rescue MEDEVAC crews: Save downed vehicle crews, earn salvage points, and keep friendly vehicles in the fight. + +[screenshot: Example built SAM site] + +Practical tip: Coordinate. One player can shuttle crates while others escort or build. FOBs multiply everyone's effectiveness. + +--- + +## Mission setup (for mission makers) + +Keep this section short and focused. You can find the defaults and toggles inside: +- `Moose_CTLD_Pure/Moose_CTLD.lua` (main CTLD implementation; see the `CTLD.Config` table) +- `Moose_CTLD_Pure/Moose_CTLD_FAC.lua` (optional FAC/RECCE support) +- `Moose_CTLD_Pure/catalogs/` (example catalogs with ready-to-use recipes) +- `Moose_CTLD_Pure/init_mission_dual_coalition.lua` (ready-to-use minimal init for BLUE+RED) + +### Load order (Do Script File in Mission Editor) + +1) `Moose.lua` +2) `Moose_CTLD.lua` +3) A catalog file from `/catalogs/` +4) `Moose_CTLD_FAC.lua` (optional FAC/RECCE) +5) Your mission init block (you can use `Moose_CTLD_Pure/init_mission_dual_coalition.lua` as-is or adapt it) + +image + + +Minimal snippet (example) β€” keep it to the point: + +- Create a CTLD instance per coalition with: CoalitionSide, AllowedAircraft, Zones (Pickup/Drop/FOB definitions), and key toggles. +- Optionally create a FAC module instance and run it. +- Optionally merge a crate catalog. + +Hint: See the shipped `init_mission_dual_coalition.lua` for a clean example of both BLUE and RED. + +### Zones you must create in the Mission Editor + +- Pickup (Supply): e.g., `ALPHA` (BLUE), `DELTA` (RED) +- Drop: e.g., `BRAVO` (BLUE), `ECHO` (RED) +- FOB: e.g., `CHARLIE` (BLUE), `FOXTROT` (RED) +- MASH (optional, for MEDEVAC): e.g., `MASH_BLUE_1`, `MASH_RED_1` (accepts crew deliveries for salvage points) + +Use the names referenced by your init script. The example init uses flags to control active/inactive state. + +[screenshot: Trigger zones for Pickup/Drop/FOB/MASH] + +### Frequently configured options (where to change) + +All of the following live under `CTLD.Config` in `Moose_CTLD.lua` or can be provided in the table passed to `_MOOSE_CTLD:New({...})` in your init script. + +- Logistics rules + - `RequirePickupZoneForCrateRequest`: Enforce being near an ACTIVE Supply Zone to request crates + - `RequirePickupZoneForTroopLoad`: Enforce being inside a Supply Zone to load troops + - `PickupZoneMaxDistance`: Max distance to the nearest ACTIVE zone for crate requests + - `ForbidDropsInsidePickupZones`: Block dropping crates inside Supply Zones + - `ForbidTroopDeployInsidePickupZones`: Block troop deployment inside Supply Zones + - `ForbidChecksActivePickupOnly`: If true, restrictions apply only to ACTIVE zones + +- Building behavior + - `BuildRadius`: How far to search for crates around the player when building + - `BuildSpawnOffset`: Push spawn a few meters ahead of the aircraft to avoid collisions + - `BuildConfirmEnabled` + `BuildConfirmWindowSeconds`: Double-press safety to prevent accidental builds + - `BuildCooldownEnabled` + `BuildCooldownSeconds`: Per-group cooldown after a successful build + - `RestrictFOBToZones`: When true, FOB-only builds must occur inside an FOB Zone + - `AutoBuildFOBInZones`: When true, crates for FOBs inside an FOB Zone can auto-build + +- Inventory system (per-zone stock) + - `Inventory.Enabled`: Track stock per Supply Zone and FOB + - `Inventory.ShowStockInMenu`: Show counts in menu labels + - `Inventory.HideZeroStockMenu`: Enable the special β€œIn Stock Here” menu at nearest zone + - `Inventory.FOBStockFactor`: % of initial stock seeded when a new FOB is built + +- Hover & pickup quality-of-life + - `HoverCoachConfig`: Message timing and thresholds for the in-game hover guidance + - `TroopSpawnOffset`: Spawn troops slightly forward to avoid overlaps + +- AI behavior for Attack builds + - `AttackAI.VehicleSearchRadius`: How far spawned vehicles look for enemies when ordered to Attack + - `AttackAI.MoveSpeedKmh`: Movement speed for Attack orders + +- MEDEVAC & Salvage system (optional feature) + - `MEDEVAC.Enabled`: Master switch for the rescue/salvage system + - `MEDEVAC.CrewSurvivalChance`: Per-coalition probability that destroyed vehicle crews survive (0.0-1.0) + - `MEDEVAC.ManPadSpawnChance`: Probability crews spawn with MANPADS for self-defense + - `MEDEVAC.CrewSpawnDelay`: Seconds after death before crew spawns (allows battle to clear) + - `MEDEVAC.CrewTimeout`: Max time for rescue before crew is KIA (default 3600 = 1 hour) + - `MEDEVAC.CrewImmortalDuringDelay`: Invulnerability during announcement delay + - `MEDEVAC.PopSmokeOnApproach`: Auto-smoke when helos get close (default true) + - `MEDEVAC.RespawnOnPickup`: Original vehicle respawns when crew is rescued (default true) + - `MEDEVAC.Salvage.Enabled`: Enable salvage points economy + - `MEDEVAC.Salvage.AutoApply`: Auto-use salvage for out-of-stock items (default true) + - `MEDEVAC.MapMarkers.Enabled`: Create F10 map markers for active MEDEVAC requests + - `Zones.MASHZones`: Configure fixed MASH delivery zones (Mobile MASH can be built by players) + +- Menus + - `UseGroupMenus`: Per-group F10 menus (recommended) + - `UseCategorySubmenus`: Organize Request Crate/Recipe Info by category + - `PickupZoneSmokeColor`: Color for crate spawn smoke marks + +### Crate catalog (recipes) + +- Use one of the provided catalogs under `Moose_CTLD_Pure/catalogs/` or your own. +- Each entry defines a display label, side, category, stock, and a build function. +- Multi-crate β€œSITE” entries build multi-unit groups (SAM sites or composite systems). +- Typical workflow + - Load your chosen catalog after `Moose_CTLD.lua`. + - Merge it into each CTLD instance you created. + +[screenshot: Request Crate categories] + +### Dual-coalition setup + +- Instantiate two CTLD instances (one per side), each with its own zone names and smoke colors. +- Instantiate two FAC modules if you want auto-lase/RECCE for both sides. +- The included `init_mission_dual_coalition.lua` shows a minimal working setup. + +### FAC/RECCE (optional, from `Moose_CTLD_FAC.lua`) + +- What it adds + - Auto-lase with configurable laser codes, IR markers, map marks + - Manual target lists, quick multi-strike helper + - Artillery/Naval/Air tasking (HE/illum/mortar, carpet/TALD prompts) + - RECCE sweeps: detects and marks units with DMS/MGRS +- Player usage + - Look for an F10 FAC/RECCE menu in qualifying aircraft or groups +- Mission knobs + - CoalitionSide, auto-lase behavior, code reservations, marker type/color, and on-station logic are configurable in `Moose_CTLD_FAC.lua` or via `:New()` overrides + +### Sanity checks and troubleshooting + +- Use Admin/Help -> Show CTLD Status to verify counts and toggles quickly. +- Draw zones to confirm names/positions match your intent. +- If crates don’t spawn: check zone active state, distance to zone, and inventory stock. +- If builds don’t trigger: check Build Radius, confirm window, cooldown, and that the crates match the recipe. + +--- + +## Screenshot ideas (drop your captures in the placeholders above) + +- CTLD root menu with the five groups (Operations, Logistics, Field Tools, Navigation, Admin/Help) +- Request Crate with category submenus visible +- Build (Advanced) -> Buildable Near You list +- Hover Coach prompt during a near-perfect hover +- Vectors message to a crate / pickup zone +- Zone drawings on the F10 map (Pickup/Drop/FOB labeled) +- In Stock Here list (if enabled) +- Example SAM site placed after a build + +--- + +## Appendix: File locations and names + +- Main CTLD: `Moose_CTLD_Pure/Moose_CTLD.lua` +- FAC/RECCE: `Moose_CTLD_Pure/Moose_CTLD_FAC.lua` +- Example dual-coalition init: `Moose_CTLD_Pure/init_mission_dual_coalition.lua` +- Catalogs: `Moose_CTLD_Pure/catalogs/` + +No large code is required; most options are cleanly exposed in the config tables. Keep snippets tiny when needed. diff --git a/Voice Attack/CTLD_TEST.vap b/Voice Attack/CTLD_TEST.vap new file mode 100644 index 0000000..e4d11eb --- /dev/null +++ b/Voice Attack/CTLD_TEST.vap @@ -0,0 +1,25 @@ + + + DCS CTLD Menu Navigation + a8f7c9d2-4e6b-4c1a-9f3e-2a8d7c6b5e4f + + + 3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c0d + load troops + + + {RALT}\{F2}{F1}{F1} + + + + + 4b8c9d0e-1f2a-3b4c-5d6e-7f8a9b0c1d2e + show status;ctld status;check status + + + {RALT}\{F5}{F2} + + + + + diff --git a/Voice Attack/CTLD_VoiceAttack_Guide.md b/Voice Attack/CTLD_VoiceAttack_Guide.md new file mode 100644 index 0000000..eedbd9c --- /dev/null +++ b/Voice Attack/CTLD_VoiceAttack_Guide.md @@ -0,0 +1,266 @@ +# DCS CTLD Voice Attack Profile Guide + +## Overview +This Voice Attack profile provides voice command navigation for the Moose CTLD (Combat Troop and Logistics Deployment) menu system in DCS World. All commands use direct navigation - saying the command automatically navigates through the entire F10 menu path. + +## Installation + +### 1. Import the Profile +1. Open Voice Attack +2. Click the wrench icon (Edit Profile) +3. Click "Import Profile" +4. Navigate to `CTLD_VoiceAttack_Profile.xml` +5. Select the profile and click OK + +### 2. DCS Key Binding (No Configuration Needed!) +The profile uses **Right Alt + Backslash** (`RAlt + \`) which works in all situations: + +- **On the ground:** Backslash `\` alone opens F10, but `RAlt + \` also works +- **In the air:** Only `RAlt + \` works (backslash alone is disabled) + +The profile uses `RAlt + \` for all commands, ensuring compatibility both on ground and in air. + +**No DCS configuration changes needed** - this is the default binding! + +## F10 Key Binding + +### How DCS F10 Menu Works +- **On ground:** Backslash `\` key opens F10 menu +- **In the air:** `\` is disabled, must use `Right Alt + \` + +### Voice Attack Profile +All commands use **`RAlt + \`** which works in both situations: +``` +"load troops" β†’ RAlt + \ + F2 + F1 + F1 +"build here" β†’ RAlt + \ + F2 + F2 + F1 +"vectors to pickup" β†’ RAlt + \ + F4 + F2 +``` + +This ensures voice commands work whether you're on the ground or flying! + +## Command Reference + +### OPERATIONS: Troop Transport + +| Voice Command | Action | Menu Path | +|--------------|--------|-----------| +| "load troops" | Load troops at supply zone | Operations β†’ Troop Transport β†’ Load Troops | +| "deploy troops"
    "deploy hold"
    "deploy defend" | Deploy troops in defensive posture | Operations β†’ Troop Transport β†’ Deploy [Hold Position] | +| "deploy attack"
    "troops attack" | Deploy troops with attack orders | Operations β†’ Troop Transport β†’ Deploy [Attack] | + +### OPERATIONS: Build + +| Voice Command | Action | Menu Path | +|--------------|--------|-----------| +| "build here"
    "build at position" | Build collected crates at location | Operations β†’ Build β†’ Build Here | +| "refresh buildable list"
    "refresh build list" | Update list of buildable items | Operations β†’ Build β†’ Refresh Buildable List | + +### OPERATIONS: MEDEVAC (if enabled) + +| Voice Command | Action | Menu Path | +|--------------|--------|-----------| +| "list medevac"
    "active medevac requests" | Show all active MEDEVAC missions | Operations β†’ MEDEVAC β†’ List Active MEDEVAC Requests | +| "nearest medevac location"
    "medevac location" | Show nearest MEDEVAC crew location | Operations β†’ MEDEVAC β†’ Nearest MEDEVAC Location | +| "salvage points"
    "check salvage" | Display coalition salvage points | Operations β†’ MEDEVAC β†’ Coalition Salvage Points | +| "vectors to medevac"
    "medevac vectors" | Get bearing/range to nearest crew | Operations β†’ MEDEVAC β†’ Vectors to Nearest MEDEVAC | +| "mash locations"
    "show mash" | List all MASH zones | Operations β†’ MEDEVAC β†’ MASH Locations | +| "smoke crew locations"
    "mark crews" | Pop smoke at MEDEVAC crew positions | Operations β†’ MEDEVAC β†’ Pop Smoke at Crew Locations | +| "smoke mash zones"
    "mark mash" | Pop smoke at MASH delivery zones | Operations β†’ MEDEVAC β†’ Pop Smoke at MASH Zones | + +### LOGISTICS: Crate Management + +| Voice Command | Action | Menu Path | +|--------------|--------|-----------| +| "drop one crate"
    "drop crate" | Drop single loaded crate | Logistics β†’ Crate Management β†’ Drop One Loaded Crate | +| "drop all crates"
    "drop cargo" | Drop all loaded crates | Logistics β†’ Crate Management β†’ Drop All Loaded Crates | +| "mark nearest crate"
    "smoke crate"
    "remark crate" | Re-mark closest crate with smoke | Logistics β†’ Crate Management β†’ Re-mark Nearest Crate | +| "show inventory"
    "check inventory"
    "zone inventory" | Display zone inventory | Logistics β†’ Show Inventory at Nearest Zone | + +### FIELD TOOLS + +| Voice Command | Action | Menu Path | +|--------------|--------|-----------| +| "create drop zone"
    "mark drop zone" | Create new drop zone at position | Field Tools β†’ Create Drop Zone (AO) | +| "smoke green"
    "green smoke" | Pop green smoke at location | Field Tools β†’ Smoke My Location β†’ Green | +| "smoke red"
    "red smoke" | Pop red smoke at location | Field Tools β†’ Smoke My Location β†’ Red | +| "smoke white"
    "white smoke" | Pop white smoke at location | Field Tools β†’ Smoke My Location β†’ White | +| "smoke orange"
    "orange smoke" | Pop orange smoke at location | Field Tools β†’ Smoke My Location β†’ Orange | +| "smoke blue"
    "blue smoke" | Pop blue smoke at location | Field Tools β†’ Smoke My Location β†’ Blue | + +### NAVIGATION + +| Voice Command | Action | Menu Path | +|--------------|--------|-----------| +| "vectors to crate"
    "find crate"
    "nearest crate" | Get bearing/range to nearest crate | Navigation β†’ Request Vectors to Nearest Crate | +| "vectors to pickup"
    "find pickup zone"
    "nearest pickup" | Get bearing/range to pickup zone | Navigation β†’ Vectors to Nearest Pickup Zone | +| "smoke nearest zone"
    "mark nearest zone" | Smoke closest zone (any type) | Navigation β†’ Smoke Nearest Zone | +| "smoke all zones"
    "mark all zones"
    "smoke nearby zones" | Smoke all zones within 5km | Navigation β†’ Smoke All Nearby Zones (5km) | +| "vectors to mash"
    "find mash"
    "nearest mash" | Get bearing/range to MASH | Navigation β†’ Vectors to Nearest MASH | +| "enable hover coach"
    "hover coach on" | Enable hover pickup guidance | Navigation β†’ Hover Coach: Enable | +| "disable hover coach"
    "hover coach off" | Disable hover pickup guidance | Navigation β†’ Hover Coach: Disable | + +### STATUS & ADMIN + +| Voice Command | Action | Menu Path | +|--------------|--------|-----------| +| "show status"
    "ctld status"
    "check status" | Display CTLD system status | Admin/Help β†’ Show CTLD Status | +| "draw zones on map"
    "show zones"
    "mark zones on map" | Draw all zones on F10 map | Admin/Help β†’ Draw CTLD Zones on Map | +| "clear map drawings"
    "clear map marks"
    "remove zone marks" | Remove zone drawings from map | Admin/Help β†’ Clear CTLD Map Drawings | +| "medevac statistics"
    "medevac stats"
    "show medevac stats" | Display MEDEVAC statistics | Admin/Help β†’ Show MEDEVAC Statistics | + +### QUICK ACCESS COMMANDS + +These are alternate phrases for commonly used functions: + +| Voice Command | Equivalent To | +|--------------|---------------| +| "quick pickup"
    "pickup mode" | "load troops" | +| "quick deploy"
    "fast deploy" | "deploy troops" | +| "quick build"
    "fast build" | "build here" | + +## Usage Tips + +### 1. Voice Recognition Accuracy +- Speak clearly and at normal volume +- Pause briefly between words for best recognition +- If a command doesn't work, try an alternate phrase +- Train Voice Attack with your voice for better accuracy + +### 2. Menu Navigation Timing +- Commands execute instantly with no delays +- DCS menu system is fast - no need to wait between commands +- If you're in a different menu, the command will navigate from wherever you are + +### 3. Common Workflows + +**Troop Transport Mission:** +1. "vectors to pickup" (find supply zone) +2. "load troops" (board passengers) +3. Fly to destination +4. "deploy hold" or "deploy attack" (unload with orders) + +**Crate Logistics Mission:** +1. "vectors to pickup" (find supply zone) +2. Use manual F10 menu to request specific crates +3. "vectors to crate" (find spawned crate) +4. Pick up crate +5. "build here" (deploy at destination) + +**MEDEVAC Mission:** +1. "list medevac" (check active requests) +2. "vectors to medevac" (find nearest crew) +3. Pick up crew (auto-load when landed nearby) +4. "vectors to mash" (find hospital) +5. Deploy at MASH (auto-unload) +6. "salvage points" (check rewards) + +**Reconnaissance:** +1. "smoke all zones" (mark nearby objectives) +2. "draw zones on map" (see all zones on F10) +3. "vectors to pickup" (return to base) +4. "clear map drawings" (clean up map) + +### 4. Combat Situations +Voice commands work best when: +- βœ“ Flying stable (not in combat maneuvers) +- βœ“ Hands free for flight controls +- βœ“ Clear of radio chatter/background noise +- βœ— Not recommended during combat or emergency procedures + +### 5. Request Crate Limitation +**Note:** The profile does NOT include voice commands for requesting specific crate types because: +- There are dozens of crate types (vehicles, SAMs, FOBs, etc.) +- Categories vary by mission configuration +- Manual F10 navigation (F2 β†’ Logistics β†’ Request Crate) is more practical + +Use voice commands for navigation/status, manual F10 for crate requests. + +## Troubleshooting + +### Command Not Recognized +1. Check Voice Attack is running and profile is active +2. Train Voice Attack with your voice (Tools β†’ Train Profile) +3. Try alternate phrases for the command +4. Verify microphone input levels + +### Wrong Menu Opens +1. Verify DCS is using default key bindings (RAlt + \ for F10) +2. Check that backslash key isn't rebound in DCS controls +3. Try manual RAlt + \ to verify F10 menu opens + +### Command Works But Menu Doesn't Navigate +1. Verify DCS is the active window +2. Check F10 menu is not already open +3. Ensure no other key bindings conflict with F-keys +4. Try manual navigation to verify menu structure matches profile + +### MEDEVAC Commands Not Available +- These commands only work if MEDEVAC system is enabled in the mission +- Check mission briefing or use "show status" to verify MEDEVAC is active + +## Profile Customization + +### Adding New Commands +1. Open Voice Attack profile editor +2. Click "New Command" +3. Set "When I say" to your phrase +4. Add Action: "Send keys to active window" +5. Enter key sequence (e.g., `{RALT}{F2}{F1}{F1}`) +6. Save command + +### Modifying Existing Commands +1. Find command in list +2. Click "Edit" +3. Modify "When I say" phrases +4. Update key sequence if menu structure changed +5. Save changes + +### Key Sequence Format +- `{RALT}` = Right Alt key +- `\\` = Backslash key (escaped in XML) +- `{F1}` through `{F9}` = Function keys +- Example: `{RALT}\\{F2}{F3}{F1}` = RAlt, \, F2, F3, F1 in sequence + +## Menu Structure Reference + +``` +CTLD (Root - F2) +β”œβ”€β”€ F1: Operations +β”‚ β”œβ”€β”€ F1: Troop Transport +β”‚ β”œβ”€β”€ F2: Build +β”‚ └── F3: MEDEVAC +β”œβ”€β”€ F2: Logistics +β”‚ β”œβ”€β”€ F1: Request Crate +β”‚ β”œβ”€β”€ F2: Recipe Info +β”‚ β”œβ”€β”€ F3: Crate Management +β”‚ └── F4: Show Inventory +β”œβ”€β”€ F3: Field Tools +β”œβ”€β”€ F4: Navigation +└── F5: Admin/Help +``` + +See full menu tree diagram in main documentation. + +## Version Information + +- **Profile Version:** 1.0 +- **CTLD Version:** 0.1.0-alpha (Moose_CTLD_Pure) +- **Voice Attack Version:** 1.8+ (tested on 1.10) +- **DCS Version:** Compatible with current stable/open beta + +## Support & Updates + +If the menu structure changes in future CTLD updates: +1. Check `Moose_CTLD.lua` function `BuildGroupMenus()` (around line 2616) +2. Update key sequences in Voice Attack profile +3. Test each command to verify navigation + +## Credits + +- **CTLD System:** Moose_CTLD_Pure custom implementation +- **Voice Attack:** VoiceAttack by VoiceAttack.com +- **DCS World:** Eagle Dynamics + +--- + +**Happy Flying! 🚁** diff --git a/Voice Attack/CTLD_VoiceAttack_Profile.vap b/Voice Attack/CTLD_VoiceAttack_Profile.vap new file mode 100644 index 0000000..ccc61c8 --- /dev/null +++ b/Voice Attack/CTLD_VoiceAttack_Profile.vap @@ -0,0 +1,1138 @@ + + + DCS CTLD Menu Navigation + a8f7c9d2-4e6b-4c1a-9f3e-2a8d7c6b5e4f + + + + 3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c0d + load troops + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F1 + + + 300 + + + F1 + + + + + 4b8c9d0e-1f2a-3b4c-5d6e-7f8a9b0c1d2e + deploy troops;deploy hold;deploy defend + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F1 + + + 300 + + + F2 + + + + + 5c9d0e1f-2a3b-4c5d-6e7f-8a9b0c1d2e3f + deploy attack;troops attack + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F1 + + + 300 + + + F3 + + + + + + + 6d0e1f2a-3b4c-5d6e-7f8a-9b0c1d2e3f4a + build here;build at position + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F2 + + + 300 + + + F1 + + + + + 7e1f2a3b-4c5d-6e7f-8a9b-0c1d2e3f4a5b + refresh buildable list;refresh build list + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F2 + + + 300 + + + F4 + + + + + + + 8f2a3b4c-5d6e-7f8a-9b0c-1d2e3f4a5b6c + list medevac;active medevac requests + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F3 + + + 300 + + + F1 + + + + + 9a3b4c5d-6e7f-8a9b-0c1d-2e3f4a5b6c7d + nearest medevac location;medevac location + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F3 + + + 300 + + + F2 + + + + + 0b4c5d6e-7f8a-9b0c-1d2e-3f4a5b6c7d8e + salvage points;check salvage + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F3 + + + 300 + + + F3 + + + + + 1c5d6e7f-8a9b-0c1d-2e3f-4a5b6c7d8e9f + vectors to medevac;medevac vectors + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F3 + + + 300 + + + F4 + + + + + 2d6e7f8a-9b0c-1d2e-3f4a-5b6c7d8e9f0a + mash locations;show mash + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F3 + + + 300 + + + F5 + + + + + 3e7f8a9b-0c1d-2e3f-4a5b-6c7d8e9f0a1b + smoke crew locations;mark crews + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F3 + + + 300 + + + F6 + + + + + 4f8a9b0c-1d2e-3f4a-5b6c-7d8e9f0a1b2c + smoke mash zones;mark mash + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F3 + + + 300 + + + F7 + + + + + + + 5a9b0c1d-2e3f-4a5b-6c7d-8e9f0a1b2c3d + drop one crate;drop crate + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F4 + + + 300 + + + F1 + + + + + 6b0c1d2e-3f4a-5b6c-7d8e-9f0a1b2c3d4e + drop all crates;drop cargo + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F4 + + + 300 + + + F2 + + + + + 7c1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f + mark nearest crate;smoke crate;remark crate + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F4 + + + 300 + + + F3 + + + + + 8d2e3f4a-5b6c-7d8e-9f0a-1b2c3d4e5f6a + show inventory;check inventory;zone inventory + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F4 + + + 300 + + + F4 + + + + + + + 9e3f4a5b-6c7d-8e9f-0a1b-2c3d4e5f6a7b + create drop zone;mark drop zone + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F3 + + + 300 + + + F1 + + + + + 0f4a5b6c-7d8e-9f0a-1b2c-3d4e5f6a7b8c + smoke green;green smoke + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F3 + + + 300 + + + F2 + + + 300 + + + F1 + + + + + 1a5b6c7d-8e9f-0a1b-2c3d-4e5f6a7b8c9d + smoke red;red smoke + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F3 + + + 300 + + + F2 + + + 300 + + + F2 + + + + + 2b6c7d8e-9f0a-1b2c-3d4e-5f6a7b8c9d0e + smoke white;white smoke + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F3 + + + 300 + + + F2 + + + 300 + + + F3 + + + + + 3c7d8e9f-0a1b-2c3d-4e5f-6a7b8c9d0e1f + smoke orange;orange smoke + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F3 + + + 300 + + + F2 + + + 300 + + + F4 + + + + + 4d8e9f0a-1b2c-3d4e-5f6a-7b8c9d0e1f2a + smoke blue;blue smoke + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F3 + + + 300 + + + F2 + + + 300 + + + F5 + + + + + + + 5e9f0a1b-2c3d-4e5f-6a7b-8c9d0e1f2a3b + vectors to crate;find crate;nearest crate + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F4 + + + 300 + + + F1 + + + + + 6f0a1b2c-3d4e-5f6a-7b8c-9d0e1f2a3b4c + vectors to pickup;find pickup zone;nearest pickup + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F4 + + + 300 + + + F2 + + + + + 7a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d + smoke nearest zone;mark nearest zone + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F4 + + + 300 + + + F3 + + + + + 8b2c3d4e-5f6a-7b8c-9d0e-1f2a3b4c5d6e + smoke all zones;mark all zones;smoke nearby zones + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F4 + + + 300 + + + F4 + + + + + 9c3d4e5f-6a7b-8c9d-0e1f-2a3b4c5d6e7f + vectors to mash;find mash;nearest mash + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F4 + + + 300 + + + F6 + + + + + 0d4e5f6a-7b8c-9d0e-1f2a-3b4c5d6e7f8a + enable hover coach;hover coach on + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F4 + + + 300 + + + F7 + + + + + 1e5f6a7b-8c9d-0e1f-2a3b-4c5d6e7f8a9b + disable hover coach;hover coach off + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F4 + + + 300 + + + F8 + + + + + + + 2f6a7b8c-9d0e-1f2a-3b4c-5d6e7f8a9b0c + show status;ctld status;check status + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F5 + + + 300 + + + F2 + + + + + 3a7b8c9d-0e1f-2a3b-4c5d-6e7f8a9b0c1d + draw zones on map;show zones;mark zones on map + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F5 + + + 300 + + + F3 + + + + + 4b8c9d0e-1f2a-3b4c-5d6e-7f8a9b0c1d3e + clear map drawings;clear map marks;remove zone marks + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F5 + + + 300 + + + F4 + + + + + 5c9d0e1f-2a3b-4c5d-6e7f-8a9b0c1d2e4f + medevac statistics;medevac stats;show medevac stats + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F5 + + + 300 + + + F5 + + + + + + + a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d + quick pickup;pickup mode + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F1 + + + 300 + + + F1 + + + + + b2c3d4e5-6f7a-8b9c-0d1e-2f3a4b5c6d7e + quick deploy;fast deploy + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F1 + + + 300 + + + F3 + + + + + c3d4e5f6-7a8b-9c0d-1e2f-3a4b5c6d7e8f + quick build;fast build + + + RALT + + + 200 + + + BACKSLASH + + + 300 + + + F2 + + + 300 + + + F2 + + + 300 + + + F1 + + + + + diff --git a/Voice Attack/CTLD_VoiceAttack_Profile_F10.vap b/Voice Attack/CTLD_VoiceAttack_Profile_F10.vap new file mode 100644 index 0000000..9cd3339 --- /dev/null +++ b/Voice Attack/CTLD_VoiceAttack_Profile_F10.vap @@ -0,0 +1,1497 @@ + + + CTLD Voice Menu (F10) + f2c64b1e-0e5a-4cae-9f4d-0b1c2d3e4f5a + + + + c101a001-7e5f-4d2c-8b3a-1c2d3e4f5a60 + load troops;load infantry + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F1 + + + 250 + + + F1 + + + + + c101a002-7e5f-4d2c-8b3a-1c2d3e4f5a61 + load assault squad;load assault team + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F1 + + + 250 + + + F2 + + + 250 + + + F1 + + + + + c101a003-7e5f-4d2c-8b3a-1c2d3e4f5a62 + load manpads team;load aa squad + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F1 + + + 250 + + + F2 + + + 250 + + + F2 + + + + + c101a004-7e5f-4d2c-8b3a-1c2d3e4f5a63 + load anti tank team;load at squad + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F1 + + + 250 + + + F2 + + + 250 + + + F3 + + + + + c101a005-7e5f-4d2c-8b3a-1c2d3e4f5a64 + load mortar team;load mortar squad + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F1 + + + 250 + + + F2 + + + 250 + + + F4 + + + + + c101a006-7e5f-4d2c-8b3a-1c2d3e4f5a65 + deploy troops hold;deploy hold + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F1 + + + 250 + + + F3 + + + + + c101a007-7e5f-4d2c-8b3a-1c2d3e4f5a66 + deploy troops attack;deploy attack + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F1 + + + 250 + + + F4 + + + + + + + c101a008-7e5f-4d2c-8b3a-1c2d3e4f5a67 + build here;build at position + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F2 + + + 250 + + + F1 + + + + + c101a009-7e5f-4d2c-8b3a-1c2d3e4f5a68 + open build advanced;build advanced menu + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F2 + + + 250 + + + F2 + + + + + c101a00a-7e5f-4d2c-8b3a-1c2d3e4f5a69 + open buildable near you;show buildable list + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F2 + + + 250 + + + F3 + + + + + c101a00b-7e5f-4d2c-8b3a-1c2d3e4f5a6a + refresh build list;refresh buildable list + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F2 + + + 250 + + + F4 + + + + + + + c101a00c-7e5f-4d2c-8b3a-1c2d3e4f5a6b + list medevac requests;active medevac + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F3 + + + 250 + + + F1 + + + + + c101a00d-7e5f-4d2c-8b3a-1c2d3e4f5a6c + nearest medevac location;medevac location + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F3 + + + 250 + + + F2 + + + + + c101a00e-7e5f-4d2c-8b3a-1c2d3e4f5a6d + check salvage points;show salvage + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F3 + + + 250 + + + F3 + + + + + c101a00f-7e5f-4d2c-8b3a-1c2d3e4f5a6e + vectors to medevac;medevac vectors + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F3 + + + 250 + + + F4 + + + + + c101a010-7e5f-4d2c-8b3a-1c2d3e4f5a6f + show mash locations;list mash + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F3 + + + 250 + + + F5 + + + + + c101a011-7e5f-4d2c-8b3a-1c2d3e4f5a70 + smoke crew locations;mark crews + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F3 + + + 250 + + + F6 + + + + + c101a012-7e5f-4d2c-8b3a-1c2d3e4f5a71 + smoke mash zones;mark mash + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F3 + + + 250 + + + F7 + + + + + c101a013-7e5f-4d2c-8b3a-1c2d3e4f5a72 + medevac guide;salvage guide + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F1 + + + 250 + + + F3 + + + 250 + + + F8 + + + + + + + c101a014-7e5f-4d2c-8b3a-1c2d3e4f5a73 + open request crate;request crate menu + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F2 + + + 250 + + + F1 + + + 200 + + + + + c101a015-7e5f-4d2c-8b3a-1c2d3e4f5a74 + open recipe info;recipe info menu + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F2 + + + 250 + + + F2 + + + 200 + + + + + c101a016-7e5f-4d2c-8b3a-1c2d3e4f5a75 + drop one crate;drop crate + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F2 + + + 250 + + + F3 + + + 250 + + + F1 + + + + + c101a017-7e5f-4d2c-8b3a-1c2d3e4f5a76 + drop all crates;drop cargo + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F2 + + + 250 + + + F3 + + + 250 + + + F2 + + + + + c101a018-7e5f-4d2c-8b3a-1c2d3e4f5a77 + remark nearest crate;smoke crate + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F2 + + + 250 + + + F3 + + + 250 + + + F3 + + + + + c101a019-7e5f-4d2c-8b3a-1c2d3e4f5a78 + show zone inventory;check inventory + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F2 + + + 250 + + + F4 + + + + + + + c101a01a-7e5f-4d2c-8b3a-1c2d3e4f5a79 + create drop zone;mark drop zone + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F3 + + + 250 + + + F1 + + + + + c101a01b-7e5f-4d2c-8b3a-1c2d3e4f5a7a + smoke green;green smoke + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F3 + + + 250 + + + F2 + + + 250 + + + F1 + + + + + c101a01c-7e5f-4d2c-8b3a-1c2d3e4f5a7b + smoke red;red smoke + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F3 + + + 250 + + + F2 + + + 250 + + + F2 + + + + + c101a01d-7e5f-4d2c-8b3a-1c2d3e4f5a7c + smoke white;white smoke + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F3 + + + 250 + + + F2 + + + 250 + + + F3 + + + + + c101a01e-7e5f-4d2c-8b3a-1c2d3e4f5a7d + smoke orange;orange smoke + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F3 + + + 250 + + + F2 + + + 250 + + + F4 + + + + + c101a01f-7e5f-4d2c-8b3a-1c2d3e4f5a7e + smoke blue;blue smoke + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F3 + + + 250 + + + F2 + + + 250 + + + F5 + + + + + + + c101a020-7e5f-4d2c-8b3a-1c2d3e4f5a7f + vectors to crate;find crate + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F4 + + + 250 + + + F1 + + + + + c101a021-7e5f-4d2c-8b3a-1c2d3e4f5a80 + vectors to pickup zone;find pickup zone + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F4 + + + 250 + + + F2 + + + + + c101a022-7e5f-4d2c-8b3a-1c2d3e4f5a81 + smoke nearest zone;mark nearest zone + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F4 + + + 250 + + + F3 + + + + + c101a023-7e5f-4d2c-8b3a-1c2d3e4f5a82 + smoke all zones;mark all zones + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F4 + + + 250 + + + F4 + + + + + c101a024-7e5f-4d2c-8b3a-1c2d3e4f5a83 + vectors to medevac crew;find medevac crew + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F4 + + + 250 + + + F5 + + + + + c101a025-7e5f-4d2c-8b3a-1c2d3e4f5a84 + vectors to mash;find mash + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F4 + + + 250 + + + F6 + + + + + c101a026-7e5f-4d2c-8b3a-1c2d3e4f5a85 + enable hover coach;hover coach on + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F4 + + + 250 + + + F7 + + + + + c101a027-7e5f-4d2c-8b3a-1c2d3e4f5a86 + disable hover coach;hover coach off + + + RALT+BACKSLASH + + + 200 + + + F10 + + + 250 + + + F2 + + + 250 + + + F4 + + + 250 + + + F8 + + + + + diff --git a/Voice Attack/CTLD_VoiceAttack_Profile_F10_commands.html b/Voice Attack/CTLD_VoiceAttack_Profile_F10_commands.html new file mode 100644 index 0000000..cb0ead3 --- /dev/null +++ b/Voice Attack/CTLD_VoiceAttack_Profile_F10_commands.html @@ -0,0 +1,587 @@ + + + + + CTLD VoiceAttack Profile — Command Reference + + + +
    +
    +

    CTLD VoiceAttack Command Reference

    +

    All phrases below assume the VoiceAttack profile sends Right Alt + Backslash to open the radio menu, then F10 > F2 to enter the CTLD root. Speak any phrase shown to run the navigation sequence automatically.

    +
    + +
    + Pro Tip: Fine-tune the pause durations inside VoiceAttack if your DCS instance needs more/less time for menus to populate. You can also add your own synonyms by editing the command string list for any entry. +
    + +

    Operations — Troop Transport

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PhrasesActionMenu Path
    + load troops + load infantry + Load default troop package.Operations β†’ Troop Transport β†’ Load Troops
    + load assault squad + load assault team + Load Assault Squad preset (AS).Operations β†’ Troop Transport β†’ Load Troops (Type) β†’ Assault Squad
    + load manpads team + load aa squad + Load MANPADS Team preset (AA).Operations β†’ Troop Transport β†’ Load Troops (Type) β†’ MANPADS Team
    + load anti tank team + load at squad + Load Anti-Tank Team preset (AT).Operations β†’ Troop Transport β†’ Load Troops (Type) β†’ AT Team
    + load mortar team + load mortar squad + Load Mortar Team preset (AR).Operations β†’ Troop Transport β†’ Load Troops (Type) β†’ Mortar Team
    + deploy troops hold + deploy hold + Unload troops with Hold/Defend behavior.Operations β†’ Troop Transport β†’ Deploy [Hold Position]
    + deploy troops attack + deploy attack + Unload troops with Attack/Advance behavior.Operations β†’ Troop Transport β†’ Deploy [Attack]
    + +

    Operations — Build

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PhrasesActionMenu Path
    + build here + build at position + Build using nearby crates (with confirm/cooldown rules).Operations β†’ Build β†’ Build Here
    + open build advanced + build advanced menu + Open the dynamic build menu.Operations β†’ Build β†’ Build (Advanced)
    + open buildable near you + show buildable list + Focus the β€œBuildable Near You” submenu.Operations β†’ Build β†’ Build (Advanced) β†’ Buildable Near You
    + refresh build list + refresh buildable list + Rescan crate availability for builds.Operations β†’ Build β†’ Refresh Buildable List
    + +

    Operations — MEDEVAC

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PhrasesActionMenu Path
    + list medevac requests + active medevac + Show all active MEDEVAC crews.Operations β†’ MEDEVAC β†’ List Active MEDEVAC Requests
    + nearest medevac location + medevac location + Display nearest crew position.Operations β†’ MEDEVAC β†’ Nearest MEDEVAC Location
    + check salvage points + show salvage + Report coalition salvage totals.Operations β†’ MEDEVAC β†’ Coalition Salvage Points
    + vectors to medevac + medevac vectors + Provide bearing/range to nearest crew.Operations β†’ MEDEVAC β†’ Vectors to Nearest MEDEVAC
    + show mash locations + list mash + List all MASH delivery zones.Operations β†’ MEDEVAC β†’ MASH Locations
    + smoke crew locations + mark crews + Drop smoke on every active crew.Operations β†’ MEDEVAC β†’ Pop Smoke at Crew Locations
    + smoke mash zones + mark mash + Drop smoke on all MASH zones.Operations β†’ MEDEVAC β†’ Pop Smoke at MASH Zones
    + medevac guide + salvage guide + Show in-game MEDEVAC/salvage quick reference.Operations β†’ MEDEVAC β†’ MASH & Salvage System – Guide
    + +

    Logistics

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PhrasesActionMenu Path
    + open request crate + request crate menu + Open the crate request submenu (choose item manually).Logistics β†’ Request Crate
    + open recipe info + recipe info menu + Open recipe info submenu.Logistics β†’ Recipe Info
    + drop one crate + drop crate + Drop a single loaded crate.Logistics β†’ Crate Management β†’ Drop One Loaded Crate
    + drop all crates + drop cargo + Drop every loaded crate.Logistics β†’ Crate Management β†’ Drop All Loaded Crates
    + remark nearest crate + smoke crate + Smoke the nearest friendly crate.Logistics β†’ Crate Management β†’ Re-mark Nearest Crate (Smoke)
    + show zone inventory + check inventory + Show stock at nearest supply/FOB zone.Logistics β†’ Show Inventory at Nearest Zone
    + +

    Field Tools

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PhrasesActionMenu Path
    + create drop zone + mark drop zone + Create a player drop zone (AO).Field Tools β†’ Create Drop Zone (AO)
    + smoke green + green smoke + Drop green smoke at your position.Field Tools β†’ Smoke My Location β†’ Green
    + smoke red + red smoke + Drop red smoke at your position.Field Tools β†’ Smoke My Location β†’ Red
    + smoke white + white smoke + Drop white smoke at your position.Field Tools β†’ Smoke My Location β†’ White
    + smoke orange + orange smoke + Drop orange smoke at your position.Field Tools β†’ Smoke My Location β†’ Orange
    + smoke blue + blue smoke + Drop blue smoke at your position.Field Tools β†’ Smoke My Location β†’ Blue
    + +

    Navigation & Hover Coach

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PhrasesActionMenu Path
    + vectors to crate + find crate + Show bearing/range to nearest friendly crate.Navigation β†’ Request Vectors to Nearest Crate
    + vectors to pickup zone + find pickup zone + Show bearing/range to nearest supply zone.Navigation β†’ Vectors to Nearest Pickup Zone
    + smoke nearest zone + mark nearest zone + Smoke the closest zone (pickup/drop/FOB/MASH).Navigation β†’ Smoke Nearest Zone (Pickup/Drop/FOB/MASH)
    + smoke all zones + mark all zones + Smoke every zone within 5 km.Navigation β†’ Smoke All Nearby Zones (5km)
    + vectors to medevac crew + find medevac crew + Show bearing/range to the nearest crew (shortcut).Navigation β†’ Vectors to Nearest MEDEVAC Crew
    + vectors to mash + find mash + Show bearing/range to nearest MASH.Navigation β†’ Vectors to Nearest MASH
    + enable hover coach + hover coach on + Enable hover coach prompts for this group.Navigation β†’ Hover Coach: Enable
    + disable hover coach + hover coach off + Disable hover coach prompts for this group.Navigation β†’ Hover Coach: Disable
    + +
    + Generated for CTLD_VoiceAttack_Profile_F10.vap (Right Alt + Backslash β†’ F10 β†’ F2). Tweak phrases or delays directly inside VoiceAttack to match your mission's pace. +
    +
    + + diff --git a/Voice Attack/CTLD_VoiceAttack_Profile_Fixed.vap b/Voice Attack/CTLD_VoiceAttack_Profile_Fixed.vap new file mode 100644 index 0000000..113a59d --- /dev/null +++ b/Voice Attack/CTLD_VoiceAttack_Profile_Fixed.vap @@ -0,0 +1,74 @@ + + + DCS CTLD Menu Navigation + a8f7c9d2-4e6b-4c1a-9f3e-2a8d7c6b5e4f + + + + load troops + + + 3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c0d + PressKey + 0 + + 165 + + + + 3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c0e + Pause + 200 + + + 3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c0f + PressKey + 0 + + 220 + + + + 3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c10 + Pause + 300 + + + 3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c11 + PressKey + 0 + + 113 + + + + 3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c12 + Pause + 300 + + + 3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c13 + PressKey + 0 + + 112 + + + + 3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c14 + Pause + 300 + + + 3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c15 + PressKey + 0 + + 112 + + + + 3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c0d + + + diff --git a/Voice Attack/CTLD_VoiceAttack_QuickRef.md b/Voice Attack/CTLD_VoiceAttack_QuickRef.md new file mode 100644 index 0000000..22777f7 --- /dev/null +++ b/Voice Attack/CTLD_VoiceAttack_QuickRef.md @@ -0,0 +1,174 @@ +# CTLD Voice Attack - Quick Reference Card + +## Essential Commands (Most Used) + +### Troop Operations +``` +"load troops" β†’ Load troops at supply zone +"deploy hold" β†’ Deploy troops (defensive) +"deploy attack" β†’ Deploy troops (offensive) +``` + +### Logistics +``` +"build here" β†’ Build crates at position +"drop all crates" β†’ Drop all loaded cargo +"show inventory" β†’ Check zone stock +``` + +### Navigation +``` +"vectors to pickup" β†’ Find supply zone +"vectors to crate" β†’ Find dropped crate +"smoke nearest zone" β†’ Mark closest zone +``` + +### MEDEVAC (if enabled) +``` +"list medevac" β†’ Show active requests +"vectors to medevac" β†’ Find crew +"vectors to mash" β†’ Find hospital +"salvage points" β†’ Check rewards +``` + +### Status +``` +"show status" β†’ CTLD system status +"hover coach on/off" β†’ Toggle pickup guidance +``` + +--- + +## Full Command List + +### OPERATIONS +| Command | Action | +|---------|--------| +| load troops | Board passengers | +| deploy hold / deploy defend | Unload defensive | +| deploy attack / troops attack | Unload offensive | +| build here / build at position | Build collected crates | +| refresh buildable list | Update build options | + +### MEDEVAC (if enabled) +| Command | Action | +|---------|--------| +| list medevac / active medevac requests | List all missions | +| nearest medevac location | Find closest crew | +| salvage points / check salvage | Show points | +| vectors to medevac / medevac vectors | Bearing to crew | +| mash locations / show mash | List hospitals | +| smoke crew locations / mark crews | Mark crews | +| smoke mash zones / mark mash | Mark hospitals | + +### LOGISTICS +| Command | Action | +|---------|--------| +| drop one crate / drop crate | Drop single crate | +| drop all crates / drop cargo | Drop all crates | +| mark nearest crate / smoke crate | Re-mark crate | +| show inventory / check inventory | Zone stock | + +### FIELD TOOLS +| Command | Action | +|---------|--------| +| create drop zone / mark drop zone | New drop zone | +| smoke green / green smoke | Green smoke | +| smoke red / red smoke | Red smoke | +| smoke white / white smoke | White smoke | +| smoke orange / orange smoke | Orange smoke | +| smoke blue / blue smoke | Blue smoke | + +### NAVIGATION +| Command | Action | +|---------|--------| +| vectors to crate / find crate | Find crate | +| vectors to pickup / find pickup zone | Find supply | +| smoke nearest zone / mark nearest zone | Mark nearest | +| smoke all zones / smoke nearby zones | Mark all <5km | +| vectors to mash / find mash | Find MASH | +| enable hover coach / hover coach on | Coach ON | +| disable hover coach / hover coach off | Coach OFF | + +### STATUS & ADMIN +| Command | Action | +|---------|--------| +| show status / ctld status | System status | +| draw zones on map / show zones | Draw zones | +| clear map drawings | Clear drawings | +| medevac statistics / medevac stats | MEDEVAC stats | + +### QUICK ACCESS +| Command | Same As | +|---------|---------| +| quick pickup / pickup mode | load troops | +| quick deploy / fast deploy | deploy hold | +| quick build / fast build | build here | + +--- + +## F10 Key Binding + +**DCS Default (No config needed):** +- On ground: `\` key opens F10 +- In air: `RAlt + \` required (backslash alone disabled) + +**Voice Attack Profile:** +- All commands use `RAlt + \` (works everywhere) +- Example: "load troops" β†’ **RAlt \ F2 F1 F1** + +--- + +## Common Workflows + +### Troop Transport +1. "vectors to pickup" +2. "load troops" +3. Fly to LZ +4. "deploy hold" or "deploy attack" + +### Crate Delivery +1. "vectors to pickup" +2. Request crates (manual F10) +3. "vectors to crate" +4. Pick up & deliver +5. "build here" + +### MEDEVAC +1. "list medevac" +2. "vectors to medevac" +3. Land near crew (auto-load) +4. "vectors to mash" +5. Land at MASH (auto-unload) +6. "salvage points" + +### Zone Recon +1. "smoke all zones" (mark <5km) +2. "draw zones on map" (F10 view) +3. "vectors to pickup" (navigate) +4. "clear map drawings" (cleanup) + +--- + +## Tips +βœ“ Speak clearly at normal volume +βœ“ Use alternate phrases if not recognized +βœ“ Train Voice Attack with your voice +βœ“ Best when flying stable, not in combat +βœ— Don't use for crate requests (too many types) + +--- + +## Troubleshooting +- **Not recognized:** Train profile, try alternate phrase +- **Wrong menu:** Check F10 key (RAlt vs slash) +- **Doesn't navigate:** DCS must be active window +- **MEDEVAC missing:** System not enabled in mission + +--- + +**Print this card for cockpit reference!** + +Profile: CTLD_VoiceAttack_Profile.xml +Guide: CTLD_VoiceAttack_Guide.md +CTLD Version: 0.1.0-alpha diff --git a/Voice Attack/README_VoiceAttack.md b/Voice Attack/README_VoiceAttack.md new file mode 100644 index 0000000..bfa835c --- /dev/null +++ b/Voice Attack/README_VoiceAttack.md @@ -0,0 +1,283 @@ +# CTLD Voice Attack Integration + +This directory contains a complete Voice Attack profile for hands-free navigation of the Moose CTLD (Combat Troop and Logistics Deployment) menu system in DCS World. + +## Files in This Package + +| File | Purpose | +|------|---------| +| **CTLD_VoiceAttack_Profile.xml** | Voice Attack profile (import this) | +| **CTLD_VoiceAttack_Guide.md** | Complete user guide with all commands | +| **CTLD_VoiceAttack_QuickRef.md** | Quick reference card (print for cockpit) | +| **CTLD_Menu_Structure.md** | Full F10 menu tree diagram | +| **Moose_CTLD.lua** | Source CTLD system (menu structure defined here) | + +## Quick Start + +### 1. Install +1. Open Voice Attack +2. Import `CTLD_VoiceAttack_Profile.xml` +3. Activate the profile + +### 2. F10 Key Binding (Already Configured!) + +**DCS Default Behavior:** +- On ground: `\` (backslash) opens F10 menu +- In air: `RAlt + \` required (backslash alone disabled) + +**Voice Attack Profile:** +- Uses `RAlt + \` for all commands +- Works both on ground and in air +- **No DCS configuration needed!** + +### 3. Test +In DCS, say: **"show status"** +- Should open: F10 β†’ CTLD β†’ Admin/Help β†’ Show CTLD Status + +## Most Useful Commands + +``` +"load troops" β†’ Load passengers +"deploy hold" β†’ Unload defensive +"build here" β†’ Build crates +"drop all crates" β†’ Drop cargo +"vectors to pickup" β†’ Find supply zone +"vectors to crate" β†’ Find crate +"smoke nearest zone" β†’ Mark zone +"show status" β†’ System info +``` + +## Command Categories + +- **Troop Operations:** Load, deploy (defensive/offensive) +- **Build Operations:** Build here, refresh list +- **MEDEVAC:** List requests, vectors, MASH locations, salvage points +- **Logistics:** Drop crates, re-mark crate, check inventory +- **Navigation:** Vectors to zones/crates/MASH, smoke zones +- **Field Tools:** Create drop zone, smoke colors +- **Status:** Show status, draw zones, statistics + +See `CTLD_VoiceAttack_Guide.md` for complete command list. + +## Documentation + +### For New Users +Start here: **CTLD_VoiceAttack_Guide.md** +- Installation instructions +- All commands with examples +- Common workflows +- Troubleshooting + +### For Flying +Print this: **CTLD_VoiceAttack_QuickRef.md** +- One-page command list +- Essential workflows +- Tips for in-flight use + +### For Developers +Reference: **CTLD_Menu_Structure.md** +- Complete F10 menu tree +- Key path tables +- Menu behavior notes +- Source code references + +## How It Works + +### Direct Navigation +All commands use **direct navigation** - one voice command executes the entire menu path: + +``` +Say: "load troops" +Sends: RAlt + \ + F2 + F1 + F1 +Result: Operations β†’ Troop Transport β†’ Load Troops +``` + +No step-by-step navigation, no waiting between keys. + +### No TTS Feedback +Commands execute silently - DCS provides on-screen feedback. + +### All Non-Admin Functions Included +Profile includes: +- βœ“ All operational commands +- βœ“ All status/info commands +- βœ“ Navigation and smoke +- βœ“ MEDEVAC operations +- βœ— Specific crate requests (too many types - use manual F10) +- βœ— Debug/admin functions (intentionally excluded) + +## Voice Attack Tips + +### Improve Recognition +1. Train profile with your voice (Tools β†’ Train Profile) +2. Speak clearly at normal volume +3. Use alternate phrases if not recognized +4. Reduce background noise + +### Best Practices +- βœ“ Use during stable flight +- βœ“ Keep hands free for controls +- βœ“ Combine with manual F10 for crate requests +- βœ— Don't use during combat maneuvers +- βœ— Don't use during emergency procedures + +## Menu Structure Overview + +``` +CTLD (F2) +β”œβ”€β”€ Operations (F1) +β”‚ β”œβ”€β”€ Troop Transport +β”‚ β”œβ”€β”€ Build +β”‚ └── MEDEVAC +β”œβ”€β”€ Logistics (F2) +β”‚ β”œβ”€β”€ Request Crate +β”‚ β”œβ”€β”€ Recipe Info +β”‚ β”œβ”€β”€ Crate Management +β”‚ └── Show Inventory +β”œβ”€β”€ Field Tools (F3) +β”œβ”€β”€ Navigation (F4) +└── Admin/Help (F5) +``` + +Full structure: `CTLD_Menu_Structure.md` + +## Limitations + +### Not Included +1. **Crate Requests:** Too many types (dozens of vehicles, SAMs, etc.) + - Use manual F10: CTLD β†’ Logistics β†’ Request Crate + +2. **Typed Troop Loading:** Submenu with 4+ troop types + - Use manual F10: CTLD β†’ Operations β†’ Troop Transport β†’ Load Troops (Type) + +3. **Advanced Build Menu:** Dynamic list of buildable items + - Use manual F10: CTLD β†’ Operations β†’ Build β†’ Build (Advanced) + +4. **Debug Commands:** Admin logging controls + - Not needed for normal operations + +### Why These Are Excluded +- **Crate requests:** Mission-specific, too many variations +- **Typed troops:** Rare use case, 4+ submenu items +- **Advanced build:** Dynamic content, better with manual selection +- **Debug:** Admin-only, not for regular flight ops + +Use voice commands for quick actions, manual F10 for detailed selections. + +## Compatibility + +- **CTLD Version:** 0.1.0-alpha (Moose_CTLD_Pure) +- **Voice Attack:** 1.8+ (tested on 1.10) +- **DCS World:** Current stable/open beta +- **Menu Type:** Per-player (MENU_GROUP) + +## Customization + +### Add New Commands +1. Open profile in Voice Attack +2. Study menu structure: `CTLD_Menu_Structure.md` +3. Create command with key sequence +4. Test in DCS + +### Update for Menu Changes +1. Check `Moose_CTLD.lua` function `BuildGroupMenus()` (~line 2616) +2. Update key sequences in Voice Attack +3. Update documentation files +4. Test all modified commands + +## Troubleshooting + +| Problem | Solution | +|---------|----------| +| Command not recognized | Train profile, try alternate phrase | +| Wrong menu opens | Verify DCS default binding (RAlt + \), check Controls settings | +| Menu doesn't navigate | DCS must be active window, F10 not already open | +| MEDEVAC missing | System not enabled in mission | +| Works on ground but not in air | Expected! Profile uses RAlt + \ (works in air) | + +Full troubleshooting: `CTLD_VoiceAttack_Guide.md` + +## Examples + +### Troop Transport Mission +``` +1. Say: "vectors to pickup" β†’ Find supply zone +2. Fly to zone +3. Say: "load troops" β†’ Board passengers +4. Fly to LZ +5. Say: "deploy hold" β†’ Unload defensive +``` + +### Crate Logistics Mission +``` +1. Say: "vectors to pickup" β†’ Find supply zone +2. Manual F10 to request crates β†’ (Too many types for voice) +3. Say: "vectors to crate" β†’ Find spawned crate +4. Pick up and fly to target +5. Say: "build here" β†’ Deploy at destination +``` + +### MEDEVAC Mission +``` +1. Say: "list medevac" β†’ Check active requests +2. Say: "vectors to medevac" β†’ Find nearest crew +3. Land nearby (auto-load) +4. Say: "vectors to mash" β†’ Find hospital +5. Land at MASH (auto-unload) +6. Say: "salvage points" β†’ Check rewards +``` + +### Reconnaissance +``` +1. Say: "smoke all zones" β†’ Mark nearby zones +2. Say: "draw zones on map" β†’ See all zones on F10 +3. Manual F10 map navigation +4. Say: "clear map drawings" β†’ Clean up +``` + +More workflows: `CTLD_VoiceAttack_Guide.md` + +## Support + +### If Menu Structure Changes +Menu structure is defined in `Moose_CTLD.lua`: +- Function: `CTLD:BuildGroupMenus(group)` +- Line: ~2616 + +Compare with `CTLD_Menu_Structure.md` to identify changes. + +### Profile Updates +1. Check code for menu changes +2. Update Voice Attack key sequences +3. Update documentation +4. Test all commands + +### Help Resources +- CTLD source code: `Moose_CTLD.lua` +- Menu diagram: `CTLD_Menu_Structure.md` +- Full guide: `CTLD_VoiceAttack_Guide.md` +- Quick ref: `CTLD_VoiceAttack_QuickRef.md` + +## Version History + +### Version 1.0 (Current) +- Initial release +- 40+ voice commands +- Direct navigation (no step-by-step) +- No TTS feedback +- Supports RAlt or slash key for F10 +- All non-admin functions included +- Comprehensive documentation + +## Credits + +- **CTLD System:** Moose_CTLD_Pure custom implementation +- **Voice Attack:** VoiceAttack by VoiceAttack.com +- **DCS World:** Eagle Dynamics +- **MOOSE Framework:** FlightControl-Master + +--- + +**Ready to fly hands-free? Import the profile and start with "show status"!** + +Questions? See `CTLD_VoiceAttack_Guide.md` for detailed help. diff --git a/catalogs/Moose_CTLD_Catalog.lua b/catalogs/Moose_CTLD_Catalog.lua new file mode 100644 index 0000000..940e181 --- /dev/null +++ b/catalogs/Moose_CTLD_Catalog.lua @@ -0,0 +1,334 @@ +-- CrateCatalog_CTLD_Extract.lua +-- Auto-generated from CTLD.lua (Operation_Polar_Shield) spawnableCrates config +-- Returns a table of crate definitions suitable for CTLD:MergeCatalog() +-- Notes: +-- - Each entry has keys: description/menu, dcsCargoType, required or requires (composite), side, category, build(point, headingDeg) +-- - Single-unit entries spawn one unit by DCS type. Composite "SITE" entries spawn a multi-unit group approximating system components. + +local function singleUnit(unitType) + return function(point, headingDeg) + local name = string.format('%s-%d', unitType, math.random(100000,999999)) + local hdg = math.rad(headingDeg or 0) + return { + visible=false, lateActivation=false, tasks={}, task='Ground Nothing', route={}, + units={ { type=unitType, name=name, x=point.x, y=point.z, heading=hdg } }, + name = 'CTLD_'..name + } + end +end + +-- Build a single AIR unit that spawns in the air at a configured altitude/speed. +-- Falls back gracefully to singleUnit behavior if config is unavailable/disabled. +local function singleAirUnit(unitType) + return function(point, headingDeg) + local cfg = (rawget(_G, 'CTLD') and CTLD.Config and CTLD.Config.DroneAirSpawn) or nil + if not cfg or cfg.Enabled == false then + return singleUnit(unitType)(point, headingDeg) + end + + local name = string.format('%s-%d', unitType, math.random(100000,999999)) + local hdgDeg = headingDeg or 0 + local hdg = math.rad(hdgDeg) + local alt = tonumber(cfg.AltitudeMeters) or 1200 + local spd = tonumber(cfg.SpeedMps) or 120 + + -- Create a tiny 2-point route to ensure forward flight at the chosen altitude. + local function fwdOffset(px, pz, meters, headingRadians) + return px + math.sin(headingRadians) * meters, pz + math.cos(headingRadians) * meters + end + local p1x, p1z = point.x, point.z + local p2x, p2z = fwdOffset(point.x, point.z, 1000, hdg) -- 1 km ahead + + local group = { + visible=false, + lateActivation=false, + tasks={}, + task='CAS', + route={ + points={ + { + alt = alt, alt_type = 'BARO', + type = 'Turning Point', action = 'Turning Point', + x = p1x, y = p1z, + speed = spd, ETA = 0, ETA_locked = false, + task = {} + }, + { + alt = alt, alt_type = 'BARO', + type = 'Turning Point', action = 'Turning Point', + x = p2x, y = p2z, + speed = spd, ETA = 0, ETA_locked = false, + task = {} + } + } + }, + units={ + { + type=unitType, name=name, + x=p1x, y=p1z, + heading=hdg, + speed = spd, + alt = alt, alt_type = 'BARO' + } + }, + name = 'CTLD_'..name + } + return group + end +end + +local function multiUnits(units) + -- units: array of { type, dx, dz } + return function(point, headingDeg) + local hdg = math.rad(headingDeg or 0) + local function off(dx, dz) return { x = point.x + dx, z = point.z + dz } end + local list = {} + for i,u in ipairs(units) do + local p = off(u.dx or 0, u.dz or 3*i) + table.insert(list, { + type = u.type, name = string.format('CTLD-%s-%d', u.type, math.random(100000,999999)), + x = p.x, y = p.z, heading = hdg + }) + end + return { visible=false, lateActivation=false, tasks={}, task='Ground Nothing', route={}, units=list, name=string.format('CTLD_SITE_%d', math.random(100000,999999)) } + end +end + +local BLUE = coalition.side.BLUE +local RED = coalition.side.RED + +local cat = {} + +cat['BLUE_M1128_STRYKER_MGS_CRATE'] = { hidden=true, description='M1128 Stryker MGS crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_M1128_STRYKER_MGS'] = { menuCategory='Combat Vehicles', menu='M1128 Stryker MGS', description='M1128 Stryker MGS', dcsCargoType='container_cargo', requires={ BLUE_M1128_STRYKER_MGS_CRATE=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M1128 Stryker MGS'), unitType='M1128 Stryker MGS', MEDEVAC=true, salvageValue=3, crewSize=3 } +cat['BLUE_M60A3_PATTON_CRATE'] = { hidden=true, description='M-60A3 Patton crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_M60A3_PATTON'] = { menuCategory='Combat Vehicles', menu='M-60A3 Patton', description='M-60A3 Patton', dcsCargoType='container_cargo', requires={ BLUE_M60A3_PATTON_CRATE=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M-60'), unitType='M-60', MEDEVAC=true, salvageValue=3, crewSize=4 } +cat['BLUE_HMMWV_TOW_CRATE'] = { hidden=true, description='Humvee - TOW crate', dcsCargoType='container_cargo', required=1, initialStock=36, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_HMMWV_TOW'] = { menuCategory='Combat Vehicles', menu='Humvee - TOW', description='Humvee - TOW', dcsCargoType='container_cargo', requires={ BLUE_HMMWV_TOW_CRATE=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M1045 HMMWV TOW'), unitType='M1045 HMMWV TOW', MEDEVAC=true, salvageValue=3, crewSize=2 } +cat['BLUE_M1134_STRYKER_ATGM_CRATE']= { hidden=true, description='M1134 Stryker ATGM crate', dcsCargoType='container_cargo', required=1, initialStock=24, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_M1134_STRYKER_ATGM'] = { menuCategory='Combat Vehicles', menu='M1134 Stryker ATGM', description='M1134 Stryker ATGM', dcsCargoType='container_cargo', requires={ BLUE_M1134_STRYKER_ATGM_CRATE=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M1134 Stryker ATGM'), unitType='M1134 Stryker ATGM', MEDEVAC=true, salvageValue=3, crewSize=3 } +cat['BLUE_LAV25_CRATE'] = { hidden=true, description='LAV-25 crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_LAV25'] = { menuCategory='Combat Vehicles', menu='LAV-25', description='LAV-25', dcsCargoType='container_cargo', requires={ BLUE_LAV25_CRATE=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('LAV-25'), unitType='LAV-25', MEDEVAC=true, salvageValue=3, crewSize=3 } +cat['BLUE_M2A2_BRADLEY_CRATE'] = { hidden=true, description='M2A2 Bradley crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_M2A2_BRADLEY'] = { menuCategory='Combat Vehicles', menu='M2A2 Bradley', description='M2A2 Bradley', dcsCargoType='container_cargo', requires={ BLUE_M2A2_BRADLEY_CRATE=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M-2 Bradley'), unitType='M-2 Bradley', MEDEVAC=true, salvageValue=3, crewSize=3 } +cat['BLUE_VAB_MEPHISTO_CRATE'] = { hidden=true, description='ATGM VAB Mephisto crate', dcsCargoType='container_cargo', required=1, initialStock=24, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_VAB_MEPHISTO'] = { menuCategory='Combat Vehicles', menu='ATGM VAB Mephisto', description='ATGM VAB Mephisto', dcsCargoType='container_cargo', requires={ BLUE_VAB_MEPHISTO_CRATE=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('VAB_Mephisto'), unitType='VAB_Mephisto', MEDEVAC=true, salvageValue=3, crewSize=3 } +cat['BLUE_M1A2C_ABRAMS_CRATE'] = { hidden=true, description='M1A2C Abrams crate', dcsCargoType='container_cargo', required=1, initialStock=24, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_M1A2C_ABRAMS'] = { menuCategory='Combat Vehicles', menu='M1A2C Abrams', description='M1A2C Abrams', dcsCargoType='container_cargo', requires={ BLUE_M1A2C_ABRAMS_CRATE=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M1A2C_SEP_V3'), unitType='M1A2C_SEP_V3', MEDEVAC=true, salvageValue=3, crewSize=4 } + +-- Combat Vehicles (RED) +cat['RED_BTR82A_CRATE'] = { hidden=true, description='BTR-82A crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=RED, category=Group.Category.GROUND } +cat['RED_BTR82A'] = { menuCategory='Combat Vehicles', menu='BTR-82A', description='BTR-82A', dcsCargoType='container_cargo', requires={ RED_BTR82A_CRATE=3 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('BTR-82A'), unitType='BTR-82A', MEDEVAC=true, salvageValue=2, crewSize=3 } +cat['RED_BRDM2_CRATE'] = { hidden=true, description='BRDM-2 crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=RED, category=Group.Category.GROUND } +cat['RED_BRDM2'] = { menuCategory='Combat Vehicles', menu='BRDM-2', description='BRDM-2', dcsCargoType='container_cargo', requires={ RED_BRDM2_CRATE=3 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('BRDM-2'), unitType='BRDM-2', MEDEVAC=true, salvageValue=2, crewSize=2 } +cat['RED_BMP3_CRATE'] = { hidden=true, description='BMP-3 crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=RED, category=Group.Category.GROUND } +cat['RED_BMP3'] = { menuCategory='Combat Vehicles', menu='BMP-3', description='BMP-3', dcsCargoType='container_cargo', requires={ RED_BMP3_CRATE=3 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('BMP-3'), unitType='BMP-3', MEDEVAC=true, salvageValue=2, crewSize=3 } +cat['RED_BMP2_CRATE'] = { hidden=true, description='BMP-2 crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=RED, category=Group.Category.GROUND } +cat['RED_BMP2'] = { menuCategory='Combat Vehicles', menu='BMP-2', description='BMP-2', dcsCargoType='container_cargo', requires={ RED_BMP2_CRATE=3 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('BMP-2'), unitType='BMP-2', MEDEVAC=true, salvageValue=2, crewSize=3 } +cat['RED_BTR80_CRATE'] = { hidden=true, description='BTR-80 crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=RED, category=Group.Category.GROUND } +cat['RED_BTR80'] = { menuCategory='Combat Vehicles', menu='BTR-80', description='BTR-80', dcsCargoType='container_cargo', requires={ RED_BTR80_CRATE=3 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('BTR-80'), unitType='BTR-80', MEDEVAC=true, salvageValue=2, crewSize=3 } +cat['RED_T72B3_CRATE'] = { hidden=true, description='T-72B3 crate', dcsCargoType='container_cargo', required=1, initialStock=24, side=RED, category=Group.Category.GROUND } +cat['RED_T72B3'] = { menuCategory='Combat Vehicles', menu='T-72B3', description='T-72B3', dcsCargoType='container_cargo', requires={ RED_T72B3_CRATE=3 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('T-72B3'), unitType='T-72B3', MEDEVAC=true, salvageValue=3, crewSize=3 } +cat['RED_T90M_CRATE'] = { hidden=true, description='T-90M crate', dcsCargoType='container_cargo', required=1, initialStock=24, side=RED, category=Group.Category.GROUND } +cat['RED_T90M'] = { menuCategory='Combat Vehicles', menu='T-90M', description='T-90M', dcsCargoType='container_cargo', requires={ RED_T90M_CRATE=3 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('CHAP_T90M'), unitType='CHAP_T90M', MEDEVAC=true, salvageValue=3, crewSize=3 } + +-- Support (BLUE) +cat['BLUE_MRAP_JTAC'] = { menuCategory='Support', menu='MRAP - JTAC', description='JTAC MRAP', dcsCargoType='container_cargo', required=1, initialStock=12, side=BLUE, category=Group.Category.GROUND, build=singleUnit('MaxxPro_MRAP'), MEDEVAC=true, salvageValue=1, crewSize=4, roles={'JTAC'}, jtac={ platform='ground' } } +cat['BLUE_M818_AMMO'] = { menuCategory='Support', menu='M-818 Ammo Truck', description='M-818 Ammo Truck', dcsCargoType='container_cargo', required=1, initialStock=12, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M 818'), salvageValue=1, crewSize=2 } +cat['BLUE_M978_TANKER'] = { menuCategory='Support', menu='M-978 Tanker', description='M-978 Tanker', dcsCargoType='container_cargo', required=1, initialStock=10, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M978 HEMTT Tanker'), salvageValue=1, crewSize=2 } +cat['BLUE_EWR_FPS117'] = { menuCategory='Support', menu='EWR Radar FPS-117', description='EWR Radar FPS-117', dcsCargoType='container_cargo', required=1, initialStock=6, side=BLUE, category=Group.Category.GROUND, build=singleUnit('FPS-117'), salvageValue=1, crewSize=3 } + +-- Support (RED) +cat['RED_TIGR_JTAC'] = { menuCategory='Support', menu='Tigr - JTAC', description='JTAC Tigr', dcsCargoType='container_cargo', required=1, initialStock=12, side=RED, category=Group.Category.GROUND, build=singleUnit('Tigr_233036'), MEDEVAC=true, salvageValue=1, crewSize=4, roles={'JTAC'}, jtac={ platform='ground' } } +cat['RED_URAL4320_AMMO'] = { menuCategory='Support', menu='Ural-4320-31 Ammo Truck', description='Ural-4320-31 Ammo Truck', dcsCargoType='container_cargo', required=1, initialStock=12, side=RED, category=Group.Category.GROUND, build=singleUnit('Ural-4320-31'), salvageValue=1, crewSize=2 } +cat['RED_ATZ10_TANKER'] = { menuCategory='Support', menu='ATZ-10 Refueler', description='ATZ-10 Refueler', dcsCargoType='container_cargo', required=1, initialStock=10, side=RED, category=Group.Category.GROUND, build=singleUnit('ATZ-10'), salvageValue=1, crewSize=2 } +cat['RED_EWR_1L13'] = { menuCategory='Support', menu='EWR Radar 1L13', description='EWR Radar 1L13', dcsCargoType='container_cargo', required=1, initialStock=6, side=RED, category=Group.Category.GROUND, build=singleUnit('1L13 EWR'), salvageValue=1, crewSize=3 } + +-- Artillery (BLUE) +cat['BLUE_MLRS_CRATE'] = { hidden=true, description='MLRS crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_MLRS'] = { menuCategory='Artillery', menu='MLRS', description='MLRS', dcsCargoType='container_cargo', requires={ BLUE_MLRS_CRATE=2 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('MLRS'), salvageValue=2, crewSize=3 } +cat['BLUE_SMERCH_CM_CRATE'] = { hidden=true, description='Smerch (CM) crate', dcsCargoType='container_cargo', required=1, initialStock=12, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_SMERCH_CM'] = { menuCategory='Artillery', menu='Smerch_CM', description='Smerch (CM)', dcsCargoType='container_cargo', requires={ BLUE_SMERCH_CM_CRATE=2 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Smerch'), salvageValue=2, crewSize=3 } +cat['BLUE_L118_105MM'] = { menuCategory='Artillery', menu='L118 Light Artillery 105mm', description='L118 105mm', dcsCargoType='container_cargo', required=1, initialStock=10, side=BLUE, category=Group.Category.GROUND, build=singleUnit('L118_Unit'), salvageValue=1, crewSize=5 } +cat['BLUE_SMERCH_HE_CRATE'] = { hidden=true, description='Smerch (HE) crate', dcsCargoType='container_cargo', required=1, initialStock=12, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_SMERCH_HE'] = { menuCategory='Artillery', menu='Smerch_HE', description='Smerch (HE)', dcsCargoType='container_cargo', requires={ BLUE_SMERCH_HE_CRATE=2 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Smerch_HE'), salvageValue=2, crewSize=3 } +cat['BLUE_M109_CRATE'] = { hidden=true, description='M-109 crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_M109'] = { menuCategory='Artillery', menu='M-109', description='M-109', dcsCargoType='container_cargo', requires={ BLUE_M109_CRATE=2 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M-109'), salvageValue=2, crewSize=4 } + +-- Artillery (RED) +cat['RED_GVOZDIKA_CRATE'] = { hidden=true, description='SAU Gvozdika crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=RED, category=Group.Category.GROUND } +cat['RED_GVOZDika'] = { menuCategory='Artillery', menu='SAU Gvozdika', description='SAU Gvozdika', dcsCargoType='container_cargo', requires={ RED_GVOZDIKA_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('SAU Gvozdika'), salvageValue=2, crewSize=3 } +cat['RED_2S19_MSTA_CRATE'] = { hidden=true, description='SPH 2S19 Msta crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=RED, category=Group.Category.GROUND } +cat['RED_2S19_MSTA'] = { menuCategory='Artillery', menu='SPH 2S19 Msta', description='SPH 2S19 Msta', dcsCargoType='container_cargo', requires={ RED_2S19_MSTA_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('SAU Msta'), salvageValue=2, crewSize=4 } +cat['RED_URAGAN_BM27_CRATE'] = { hidden=true, description='Uragan BM-27 crate', dcsCargoType='container_cargo', required=1, initialStock=12, side=RED, category=Group.Category.GROUND } +cat['RED_URAGAN_BM27'] = { menuCategory='Artillery', menu='Uragan_BM-27', description='Uragan BM-27', dcsCargoType='container_cargo', requires={ RED_URAGAN_BM27_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('Uragan_BM-27'), salvageValue=2, crewSize=3 } +cat['RED_BM21_GRAD_CRATE'] = { hidden=true, description='BM-21 Grad crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=RED, category=Group.Category.GROUND } +cat['RED_BM21_GRAD'] = { menuCategory='Artillery', menu='BM-21 Grad Ural', description='BM-21 Grad Ural', dcsCargoType='container_cargo', requires={ RED_BM21_GRAD_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('Grad-URAL'), salvageValue=2, crewSize=3 } +cat['RED_PLZ05_CRATE'] = { hidden=true, description='PLZ-05 crate', dcsCargoType='container_cargo', required=1, initialStock=12, side=RED, category=Group.Category.GROUND } +cat['RED_PLZ05'] = { menuCategory='Artillery', menu='PLZ-05 Mobile Artillery', description='PLZ-05', dcsCargoType='container_cargo', requires={ RED_PLZ05_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('PLZ05'), salvageValue=2, crewSize=4 } + +-- AAA (BLUE) +cat['BLUE_GEPARD'] = { menuCategory='AAA', menu='Gepard AAA', description='Gepard AAA', dcsCargoType='container_cargo', required=1, initialStock=10, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Gepard'), salvageValue=1, crewSize=3 } +cat['BLUE_CRAM'] = { menuCategory='AAA', menu='LPWS C-RAM', description='LPWS C-RAM', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('HEMTT_C-RAM_Phalanx'), salvageValue=1, crewSize=2 } +cat['BLUE_VULCAN_M163'] = { menuCategory='AAA', menu='SPAAA Vulcan M163', description='Vulcan M163', dcsCargoType='container_cargo', required=1, initialStock=10, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Vulcan'), salvageValue=1, crewSize=2 } +cat['BLUE_BOFORS40'] = { menuCategory='AAA', menu='Bofors 40mm', description='Bofors 40mm', dcsCargoType='container_cargo', required=1, initialStock=12, side=BLUE, category=Group.Category.GROUND, build=singleUnit('bofors40'), salvageValue=1, crewSize=4 } + +-- AAA (RED) +cat['RED_URAL_ZU23'] = { menuCategory='AAA', menu='Ural-375 ZU-23', description='Ural-375 ZU-23', dcsCargoType='container_cargo', required=1, initialStock=12, side=RED, category=Group.Category.GROUND, build=singleUnit('Ural-375 ZU-23'), salvageValue=1, crewSize=3 } +cat['RED_SHILKA'] = { menuCategory='AAA', menu='ZSU-23-4 Shilka', description='ZSU-23-4 Shilka', dcsCargoType='container_cargo', required=1, initialStock=10, side=RED, category=Group.Category.GROUND, build=singleUnit('ZSU-23-4 Shilka'), salvageValue=1, crewSize=3 } +cat['RED_ZSU57_2'] = { menuCategory='AAA', menu='ZSU_57_2', description='ZSU_57_2', dcsCargoType='container_cargo', required=1, initialStock=10, side=RED, category=Group.Category.GROUND, build=singleUnit('ZSU_57_2'), salvageValue=1, crewSize=3 } + +cat['BLUE_M1097_AVENGER_CRATE'] = { hidden=true, description='M1097 Avenger crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_M1097_AVENGER'] = { menuCategory='SAM short range', menu='M1097 Avenger', description='M1097 Avenger', dcsCargoType='container_cargo', requires={ BLUE_M1097_AVENGER_CRATE=2 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M1097 Avenger') } +cat['BLUE_M48_CHAPARRAL_CRATE'] = { hidden=true, description='M48 Chaparral crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_M48_CHAPARRAL'] = { menuCategory='SAM short range', menu='M48 Chaparral', description='M48 Chaparral', dcsCargoType='container_cargo', requires={ BLUE_M48_CHAPARRAL_CRATE=2 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M48 Chaparral') } +cat['BLUE_ROLAND_ADS_CRATE'] = { hidden=true, description='Roland ADS crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_ROLAND_ADS'] = { menuCategory='SAM short range', menu='Roland ADS', description='Roland ADS', dcsCargoType='container_cargo', requires={ BLUE_ROLAND_ADS_CRATE=2 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Roland ADS') } +cat['BLUE_M6_LINEBACKER'] = { menuCategory='SAM short range', menu='M6 Linebacker', description='M6 Linebacker', dcsCargoType='container_cargo', required=1, initialStock=10, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M6 Linebacker') } +cat['BLUE_RAPIER_LN'] = { menuCategory='SAM short range', menu='Rapier Launcher', description='Rapier Launcher', dcsCargoType='container_cargo', required=1, initialStock=10, side=BLUE, category=Group.Category.GROUND, build=singleUnit('rapier_fsa_launcher') } +cat['BLUE_RAPIER_SR'] = { menuCategory='SAM short range', menu='Rapier SR', description='Rapier SR', dcsCargoType='container_cargo', required=1, initialStock=10, side=BLUE, category=Group.Category.GROUND, build=singleUnit('rapier_fsa_blindfire_radar') } +cat['BLUE_RAPIER_TR'] = { menuCategory='SAM short range', menu='Rapier Tracker', description='Rapier Tracker', dcsCargoType='container_cargo', required=1, initialStock=10, side=BLUE, category=Group.Category.GROUND, build=singleUnit('rapier_fsa_optical_tracker_unit') } +cat['BLUE_RAPIER_SITE'] = { menuCategory='SAM short range', menu='Rapier - All crates', description='Rapier Site', dcsCargoType='container_cargo', requires={ BLUE_RAPIER_LN=1, BLUE_RAPIER_SR=1, BLUE_RAPIER_TR=1 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, + build=multiUnits({ {type='rapier_fsa_launcher'}, {type='rapier_fsa_blindfire_radar', dx=12, dz=6}, {type='rapier_fsa_optical_tracker_unit', dx=-12, dz=6} }) } + +-- SAM short range (RED) +cat['RED_OSA_9K33_CRATE'] = { hidden=true, description='9K33 Osa crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=RED, category=Group.Category.GROUND } +cat['RED_OSA_9K33'] = { menuCategory='SAM short range', menu='9K33 Osa', description='9K33 Osa', dcsCargoType='container_cargo', requires={ RED_OSA_9K33_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('Osa 9A33 ln') } +cat['RED_STRELA1_9P31_CRATE'] = { hidden=true, description='9P31 Strela-1 crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=RED, category=Group.Category.GROUND } +cat['RED_STRELA1_9P31'] = { menuCategory='SAM short range', menu='9P31 Strela-1', description='9P31 Strela-1', dcsCargoType='container_cargo', requires={ RED_STRELA1_9P31_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('Strela-1 9P31') } +cat['RED_TUNGUSKA_2S6_CRATE'] = { hidden=true, description='2K22 Tunguska crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=RED, category=Group.Category.GROUND } +cat['RED_TUNGUSKA_2S6'] = { menuCategory='SAM short range', menu='2K22 Tunguska', description='2K22 Tunguska', dcsCargoType='container_cargo', requires={ RED_TUNGUSKA_2S6_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('2S6 Tunguska') } +cat['RED_STRELA10M3_CRATE'] = { hidden=true, description='SA-13 Strela-10M3 crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=RED, category=Group.Category.GROUND } +cat['RED_STRELA10M3'] = { menuCategory='SAM short range', menu='SA-13 Strela-10M3', description='SA-13 Strela-10M3', dcsCargoType='container_cargo', requires={ RED_STRELA10M3_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('Strela-10M3') } +-- HQ-7 components and site +cat['RED_HQ7_LN_CRATE'] = { hidden=true, description='HQ-7 Launcher crate', dcsCargoType='container_cargo', required=1, initialStock=20, side=RED, category=Group.Category.GROUND } +cat['RED_HQ7_LN'] = { menuCategory='SAM short range', menu='HQ-7_Launcher', description='HQ-7 Launcher', dcsCargoType='container_cargo', requires={ RED_HQ7_LN_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('HQ-7_LN_SP') } +cat['RED_HQ7_STR'] = { menuCategory='SAM short range', menu='HQ-7_STR_SP', description='HQ-7 STR', dcsCargoType='container_cargo', required=1, initialStock=10, side=RED, category=Group.Category.GROUND, build=singleUnit('HQ-7_STR_SP') } +cat['RED_HQ7_SITE'] = { menuCategory='SAM short range', menu='HQ-7 - All crates', description='HQ-7 Site', dcsCargoType='container_cargo', requires={ RED_HQ7_LN=1, RED_HQ7_STR=1 }, initialStock=0, side=RED, category=Group.Category.GROUND, + build=multiUnits({ {type='HQ-7_LN_SP'}, {type='HQ-7_STR_SP', dx=10, dz=8} }) } + +-- SAM mid range (BLUE) HAWK + NASAMS +cat['BLUE_HAWK_LN'] = { menuCategory='SAM mid range', menu='HAWK Launcher', description='HAWK Launcher', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Hawk ln') } +cat['BLUE_HAWK_SR'] = { menuCategory='SAM mid range', menu='HAWK Search Radar', description='HAWK SR', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Hawk sr') } +cat['BLUE_HAWK_TR'] = { menuCategory='SAM mid range', menu='HAWK Track Radar', description='HAWK TR', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Hawk tr') } +cat['BLUE_HAWK_PCP'] = { menuCategory='SAM mid range', menu='HAWK PCP', description='HAWK PCP', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Hawk pcp') } +cat['BLUE_HAWK_CWAR'] = { menuCategory='SAM mid range', menu='HAWK CWAR', description='HAWK CWAR', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Hawk cwar') } +cat['BLUE_HAWK_SITE'] = { menuCategory='SAM mid range', menu='HAWK - All crates', description='HAWK Site', dcsCargoType='container_cargo', requires={ BLUE_HAWK_LN=1, BLUE_HAWK_SR=1, BLUE_HAWK_TR=1, BLUE_HAWK_PCP=1, BLUE_HAWK_CWAR=1 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, + build=multiUnits({ {type='Hawk ln'}, {type='Hawk sr', dx=12, dz=8}, {type='Hawk tr', dx=-12, dz=8}, {type='Hawk pcp', dx=18, dz=12}, {type='Hawk cwar', dx=-18, dz=12} }) } + +-- HAWK site repair/augment (adds +1 launcher, repairs site by respawn) +cat['BLUE_HAWK_REPAIR'] = { menuCategory='SAM mid range', menu='HAWK Repair/Launcher +1', description='HAWK Repair (adds launcher)', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, isRepair=true, build=function(point, headingDeg) + -- Build is handled specially in CTLD:BuildSpecificAtGroup for isRepair entries + return singleUnit('Ural-375')(point, headingDeg) +end } + +cat['BLUE_NASAMS_LN'] = { menuCategory='SAM mid range', menu='NASAMS Launcher 120C', description='NASAMS LN 120C', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('NASAMS_LN_C') } +cat['BLUE_NASAMS_RADAR'] = { menuCategory='SAM mid range', menu='NASAMS Search/Track Radar', description='NASAMS Radar', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('NASAMS_Radar_MPQ64F1') } +cat['BLUE_NASAMS_CP'] = { menuCategory='SAM mid range', menu='NASAMS Command Post', description='NASAMS CP', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('NASAMS_Command_Post') } +cat['BLUE_NASAMS_SITE'] = { menuCategory='SAM mid range', menu='NASAMS - All crates', description='NASAMS Site', dcsCargoType='container_cargo', requires={ BLUE_NASAMS_LN=1, BLUE_NASAMS_RADAR=1, BLUE_NASAMS_CP=1 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, + build=multiUnits({ {type='NASAMS_LN_C'}, {type='NASAMS_Radar_MPQ64F1', dx=12, dz=8}, {type='NASAMS_Command_Post', dx=-12, dz=8} }) } + +-- SAM mid range (RED) KUB +cat['RED_KUB_LN'] = { menuCategory='SAM mid range', menu='KUB Launcher', description='KUB Launcher', dcsCargoType='container_cargo', required=1, initialStock=8, side=RED, category=Group.Category.GROUND, build=singleUnit('Kub 2P25 ln') } +cat['RED_KUB_RADAR'] = { menuCategory='SAM mid range', menu='KUB Radar', description='KUB Radar', dcsCargoType='container_cargo', required=1, initialStock=8, side=RED, category=Group.Category.GROUND, build=singleUnit('Kub 1S91 str') } +cat['RED_KUB_SITE'] = { menuCategory='SAM mid range', menu='KUB - All crates', description='KUB Site', dcsCargoType='container_cargo', requires={ RED_KUB_LN=1, RED_KUB_RADAR=1 }, initialStock=0, side=RED, category=Group.Category.GROUND, + build=multiUnits({ {type='Kub 2P25 ln'}, {type='Kub 1S91 str', dx=12, dz=8} }) } + +-- KUB site repair/augment (adds +1 launcher, repairs site by respawn) +cat['RED_KUB_REPAIR'] = { menuCategory='SAM mid range', menu='KUB Repair/Launcher +1', description='KUB Repair (adds launcher)', dcsCargoType='container_cargo', required=1, initialStock=8, side=RED, category=Group.Category.GROUND, isRepair=true, build=function(point, headingDeg) + return singleUnit('Ural-375')(point, headingDeg) +end } + +-- SAM long range (BLUE) Patriot +cat['BLUE_PATRIOT_LN'] = { menuCategory='SAM long range', menu='Patriot Launcher', description='Patriot Launcher', dcsCargoType='container_cargo', required=1, initialStock=6, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Patriot ln') } +cat['BLUE_PATRIOT_RADAR'] = { menuCategory='SAM long range', menu='Patriot Radar', description='Patriot Radar', dcsCargoType='container_cargo', required=1, initialStock=6, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Patriot str') } +cat['BLUE_PATRIOT_ECS'] = { menuCategory='SAM long range', menu='Patriot ECS', description='Patriot ECS', dcsCargoType='container_cargo', required=1, initialStock=6, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Patriot ECS') } +cat['BLUE_PATRIOT_SITE'] = { menuCategory='SAM long range', menu='Patriot - All crates', description='Patriot Site', dcsCargoType='container_cargo', requires={ BLUE_PATRIOT_LN=1, BLUE_PATRIOT_RADAR=1, BLUE_PATRIOT_ECS=1 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, + build=multiUnits({ {type='Patriot ln'}, {type='Patriot str', dx=14, dz=10}, {type='Patriot ECS', dx=-14, dz=10} }) } + +-- Patriot site repair/augment (adds +1 launcher, repairs site by respawn) +cat['BLUE_PATRIOT_REPAIR'] = { menuCategory='SAM long range', menu='Patriot Repair/Launcher +1', description='Patriot Repair (adds launcher)', dcsCargoType='container_cargo', required=1, initialStock=6, side=BLUE, category=Group.Category.GROUND, isRepair=true, build=function(point, headingDeg) + return singleUnit('Ural-375')(point, headingDeg) +end } + +-- SAM long range (RED) BUK +cat['RED_BUK_LN'] = { menuCategory='SAM long range', menu='BUK Launcher', description='BUK Launcher', dcsCargoType='container_cargo', required=1, initialStock=6, side=RED, category=Group.Category.GROUND, build=singleUnit('SA-11 Buk LN 9A310M1') } +cat['RED_BUK_SR'] = { menuCategory='SAM long range', menu='BUK Search Radar', description='BUK Search Radar', dcsCargoType='container_cargo', required=1, initialStock=6, side=RED, category=Group.Category.GROUND, build=singleUnit('SA-11 Buk SR 9S18M1') } +cat['RED_BUK_CC'] = { menuCategory='SAM long range', menu='BUK CC Radar', description='BUK CC Radar', dcsCargoType='container_cargo', required=1, initialStock=6, side=RED, category=Group.Category.GROUND, build=singleUnit('SA-11 Buk CC 9S470M1') } +cat['RED_BUK_SITE'] = { menuCategory='SAM long range', menu='BUK - All crates', description='BUK Site', dcsCargoType='container_cargo', requires={ RED_BUK_LN=1, RED_BUK_SR=1, RED_BUK_CC=1 }, initialStock=0, side=RED, category=Group.Category.GROUND, + build=multiUnits({ {type='SA-11 Buk LN 9A310M1'}, {type='SA-11 Buk SR 9S18M1', dx=12, dz=8}, {type='SA-11 Buk CC 9S470M1', dx=-12, dz=8} }) } + +-- BUK site repair/augment (adds +1 launcher, repairs site by respawn) +cat['RED_BUK_REPAIR'] = { menuCategory='SAM long range', menu='BUK Repair/Launcher +1', description='BUK Repair (adds launcher)', dcsCargoType='container_cargo', required=1, initialStock=6, side=RED, category=Group.Category.GROUND, isRepair=true, build=function(point, headingDeg) + return singleUnit('Ural-375')(point, headingDeg) +end } + +-- Drones (JTAC) +cat['BLUE_MQ9'] = { menuCategory='Drones', menu='MQ-9 Reaper - JTAC', description='MQ-9 JTAC', dcsCargoType='container_cargo', required=1, initialStock=3, side=BLUE, category=Group.Category.AIRPLANE, build=singleAirUnit('MQ-9 Reaper'), roles={'JTAC'}, jtac={ platform='air' } } +cat['RED_WINGLOONG'] = { menuCategory='Drones', menu='WingLoong-I - JTAC', description='WingLoong-I JTAC', dcsCargoType='container_cargo', required=1, initialStock=3, side=RED, category=Group.Category.AIRPLANE, build=singleAirUnit('WingLoong-I'), roles={'JTAC'}, jtac={ platform='air' } } + +-- FOB crates (Support) β€” three small crates build a FOB site +cat['FOB_SMALL'] = { hidden=true, description='FOB small crate', dcsCargoType='container_cargo', required=1, initialStock=12, side=nil, category=Group.Category.GROUND, build=function(point, headingDeg) + -- spawns a harmless placeholder truck for visibility; consumed by FOB_SITE build + return singleUnit('Ural-375')(point, headingDeg) +end } +cat['FOB_SITE'] = { menuCategory='Support', menu='FOB Crates - All', description='FOB Site', isFOB=true, dcsCargoType='container_cargo', requires={ FOB_SMALL=3 }, initialStock=0, side=nil, category=Group.Category.GROUND, + build=multiUnits({ {type='HEMTT TFFT'}, {type='Ural-375 PBU', dx=10, dz=8}, {type='Ural-375', dx=-10, dz=8} }) } + +-- Mobile MASH (Support) β€” three crates build a Mobile MASH unit +cat['MOBILE_MASH_SMALL'] = { hidden=true, description='Mobile MASH crate', dcsCargoType='container_cargo', required=1, initialStock=6, side=nil, category=Group.Category.GROUND, build=function(point, headingDeg) + -- spawns placeholder truck for visibility; consumed by MOBILE_MASH build + return singleUnit('Ural-375')(point, headingDeg) +end } +cat['BLUE_MOBILE_MASH'] = { menuCategory='Support', menu='Mobile MASH - All', description='Blue Mobile MASH Unit', isMobileMASH=true, dcsCargoType='container_cargo', requires={ MOBILE_MASH_SMALL=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M-113') } +cat['RED_MOBILE_MASH'] = { menuCategory='Support', menu='Mobile MASH - All', description='Red Mobile MASH Unit', isMobileMASH=true, dcsCargoType='container_cargo', requires={ MOBILE_MASH_SMALL=3 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('BTR_D') } + +-- ========================= +-- Troop Type Definitions +-- ========================= +-- These define the composition of troop squads for Load/Unload Troops (NOT crates) +-- Structure: { label, size, unitsBlue, unitsRed, units (fallback) } +local troops = {} + +-- Assault Squad: general-purpose rifles/MG +troops['AS'] = { + label = 'Assault Squad', + size = 8, + unitsBlue = { 'Soldier M4', 'Soldier M249' }, + unitsRed = { 'Infantry AK', 'Infantry AK ver3' }, + units = { 'Infantry AK' }, +} + +-- MANPADS Team: Anti-air element +troops['AA'] = { + label = 'MANPADS Team', + size = 4, + unitsBlue = { 'Soldier stinger', 'Stinger comm' }, + unitsRed = { 'SA-18 Igla-S manpad', 'SA-18 Igla comm' }, + units = { 'Infantry AK' }, +} + +-- AT Team: Anti-tank element +troops['AT'] = { + label = 'AT Team', + size = 4, + unitsBlue = { 'Soldier RPG', 'Soldier RPG' }, + unitsRed = { 'Soldier RPG', 'Soldier RPG' }, + units = { 'Infantry AK' }, +} + +-- Mortar Team: Indirect fire element +troops['AR'] = { + label = 'Mortar Team', + size = 4, + unitsBlue = { '2B11 mortar' }, + unitsRed = { '2B11 mortar' }, + units = { '2B11 mortar' }, +} + +-- Export troop types +_CTLD_TROOP_TYPES = troops + +-- Also export as a global for mission setups that load via DO SCRIPT FILE (no return capture) +_CTLD_EXTRACTED_CATALOG = cat +return cat diff --git a/catalogs/Moose_CTLD_Catalog_LowCounts.lua b/catalogs/Moose_CTLD_Catalog_LowCounts.lua new file mode 100644 index 0000000..940e181 --- /dev/null +++ b/catalogs/Moose_CTLD_Catalog_LowCounts.lua @@ -0,0 +1,334 @@ +-- CrateCatalog_CTLD_Extract.lua +-- Auto-generated from CTLD.lua (Operation_Polar_Shield) spawnableCrates config +-- Returns a table of crate definitions suitable for CTLD:MergeCatalog() +-- Notes: +-- - Each entry has keys: description/menu, dcsCargoType, required or requires (composite), side, category, build(point, headingDeg) +-- - Single-unit entries spawn one unit by DCS type. Composite "SITE" entries spawn a multi-unit group approximating system components. + +local function singleUnit(unitType) + return function(point, headingDeg) + local name = string.format('%s-%d', unitType, math.random(100000,999999)) + local hdg = math.rad(headingDeg or 0) + return { + visible=false, lateActivation=false, tasks={}, task='Ground Nothing', route={}, + units={ { type=unitType, name=name, x=point.x, y=point.z, heading=hdg } }, + name = 'CTLD_'..name + } + end +end + +-- Build a single AIR unit that spawns in the air at a configured altitude/speed. +-- Falls back gracefully to singleUnit behavior if config is unavailable/disabled. +local function singleAirUnit(unitType) + return function(point, headingDeg) + local cfg = (rawget(_G, 'CTLD') and CTLD.Config and CTLD.Config.DroneAirSpawn) or nil + if not cfg or cfg.Enabled == false then + return singleUnit(unitType)(point, headingDeg) + end + + local name = string.format('%s-%d', unitType, math.random(100000,999999)) + local hdgDeg = headingDeg or 0 + local hdg = math.rad(hdgDeg) + local alt = tonumber(cfg.AltitudeMeters) or 1200 + local spd = tonumber(cfg.SpeedMps) or 120 + + -- Create a tiny 2-point route to ensure forward flight at the chosen altitude. + local function fwdOffset(px, pz, meters, headingRadians) + return px + math.sin(headingRadians) * meters, pz + math.cos(headingRadians) * meters + end + local p1x, p1z = point.x, point.z + local p2x, p2z = fwdOffset(point.x, point.z, 1000, hdg) -- 1 km ahead + + local group = { + visible=false, + lateActivation=false, + tasks={}, + task='CAS', + route={ + points={ + { + alt = alt, alt_type = 'BARO', + type = 'Turning Point', action = 'Turning Point', + x = p1x, y = p1z, + speed = spd, ETA = 0, ETA_locked = false, + task = {} + }, + { + alt = alt, alt_type = 'BARO', + type = 'Turning Point', action = 'Turning Point', + x = p2x, y = p2z, + speed = spd, ETA = 0, ETA_locked = false, + task = {} + } + } + }, + units={ + { + type=unitType, name=name, + x=p1x, y=p1z, + heading=hdg, + speed = spd, + alt = alt, alt_type = 'BARO' + } + }, + name = 'CTLD_'..name + } + return group + end +end + +local function multiUnits(units) + -- units: array of { type, dx, dz } + return function(point, headingDeg) + local hdg = math.rad(headingDeg or 0) + local function off(dx, dz) return { x = point.x + dx, z = point.z + dz } end + local list = {} + for i,u in ipairs(units) do + local p = off(u.dx or 0, u.dz or 3*i) + table.insert(list, { + type = u.type, name = string.format('CTLD-%s-%d', u.type, math.random(100000,999999)), + x = p.x, y = p.z, heading = hdg + }) + end + return { visible=false, lateActivation=false, tasks={}, task='Ground Nothing', route={}, units=list, name=string.format('CTLD_SITE_%d', math.random(100000,999999)) } + end +end + +local BLUE = coalition.side.BLUE +local RED = coalition.side.RED + +local cat = {} + +cat['BLUE_M1128_STRYKER_MGS_CRATE'] = { hidden=true, description='M1128 Stryker MGS crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_M1128_STRYKER_MGS'] = { menuCategory='Combat Vehicles', menu='M1128 Stryker MGS', description='M1128 Stryker MGS', dcsCargoType='container_cargo', requires={ BLUE_M1128_STRYKER_MGS_CRATE=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M1128 Stryker MGS'), unitType='M1128 Stryker MGS', MEDEVAC=true, salvageValue=3, crewSize=3 } +cat['BLUE_M60A3_PATTON_CRATE'] = { hidden=true, description='M-60A3 Patton crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_M60A3_PATTON'] = { menuCategory='Combat Vehicles', menu='M-60A3 Patton', description='M-60A3 Patton', dcsCargoType='container_cargo', requires={ BLUE_M60A3_PATTON_CRATE=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M-60'), unitType='M-60', MEDEVAC=true, salvageValue=3, crewSize=4 } +cat['BLUE_HMMWV_TOW_CRATE'] = { hidden=true, description='Humvee - TOW crate', dcsCargoType='container_cargo', required=1, initialStock=36, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_HMMWV_TOW'] = { menuCategory='Combat Vehicles', menu='Humvee - TOW', description='Humvee - TOW', dcsCargoType='container_cargo', requires={ BLUE_HMMWV_TOW_CRATE=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M1045 HMMWV TOW'), unitType='M1045 HMMWV TOW', MEDEVAC=true, salvageValue=3, crewSize=2 } +cat['BLUE_M1134_STRYKER_ATGM_CRATE']= { hidden=true, description='M1134 Stryker ATGM crate', dcsCargoType='container_cargo', required=1, initialStock=24, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_M1134_STRYKER_ATGM'] = { menuCategory='Combat Vehicles', menu='M1134 Stryker ATGM', description='M1134 Stryker ATGM', dcsCargoType='container_cargo', requires={ BLUE_M1134_STRYKER_ATGM_CRATE=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M1134 Stryker ATGM'), unitType='M1134 Stryker ATGM', MEDEVAC=true, salvageValue=3, crewSize=3 } +cat['BLUE_LAV25_CRATE'] = { hidden=true, description='LAV-25 crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_LAV25'] = { menuCategory='Combat Vehicles', menu='LAV-25', description='LAV-25', dcsCargoType='container_cargo', requires={ BLUE_LAV25_CRATE=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('LAV-25'), unitType='LAV-25', MEDEVAC=true, salvageValue=3, crewSize=3 } +cat['BLUE_M2A2_BRADLEY_CRATE'] = { hidden=true, description='M2A2 Bradley crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_M2A2_BRADLEY'] = { menuCategory='Combat Vehicles', menu='M2A2 Bradley', description='M2A2 Bradley', dcsCargoType='container_cargo', requires={ BLUE_M2A2_BRADLEY_CRATE=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M-2 Bradley'), unitType='M-2 Bradley', MEDEVAC=true, salvageValue=3, crewSize=3 } +cat['BLUE_VAB_MEPHISTO_CRATE'] = { hidden=true, description='ATGM VAB Mephisto crate', dcsCargoType='container_cargo', required=1, initialStock=24, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_VAB_MEPHISTO'] = { menuCategory='Combat Vehicles', menu='ATGM VAB Mephisto', description='ATGM VAB Mephisto', dcsCargoType='container_cargo', requires={ BLUE_VAB_MEPHISTO_CRATE=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('VAB_Mephisto'), unitType='VAB_Mephisto', MEDEVAC=true, salvageValue=3, crewSize=3 } +cat['BLUE_M1A2C_ABRAMS_CRATE'] = { hidden=true, description='M1A2C Abrams crate', dcsCargoType='container_cargo', required=1, initialStock=24, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_M1A2C_ABRAMS'] = { menuCategory='Combat Vehicles', menu='M1A2C Abrams', description='M1A2C Abrams', dcsCargoType='container_cargo', requires={ BLUE_M1A2C_ABRAMS_CRATE=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M1A2C_SEP_V3'), unitType='M1A2C_SEP_V3', MEDEVAC=true, salvageValue=3, crewSize=4 } + +-- Combat Vehicles (RED) +cat['RED_BTR82A_CRATE'] = { hidden=true, description='BTR-82A crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=RED, category=Group.Category.GROUND } +cat['RED_BTR82A'] = { menuCategory='Combat Vehicles', menu='BTR-82A', description='BTR-82A', dcsCargoType='container_cargo', requires={ RED_BTR82A_CRATE=3 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('BTR-82A'), unitType='BTR-82A', MEDEVAC=true, salvageValue=2, crewSize=3 } +cat['RED_BRDM2_CRATE'] = { hidden=true, description='BRDM-2 crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=RED, category=Group.Category.GROUND } +cat['RED_BRDM2'] = { menuCategory='Combat Vehicles', menu='BRDM-2', description='BRDM-2', dcsCargoType='container_cargo', requires={ RED_BRDM2_CRATE=3 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('BRDM-2'), unitType='BRDM-2', MEDEVAC=true, salvageValue=2, crewSize=2 } +cat['RED_BMP3_CRATE'] = { hidden=true, description='BMP-3 crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=RED, category=Group.Category.GROUND } +cat['RED_BMP3'] = { menuCategory='Combat Vehicles', menu='BMP-3', description='BMP-3', dcsCargoType='container_cargo', requires={ RED_BMP3_CRATE=3 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('BMP-3'), unitType='BMP-3', MEDEVAC=true, salvageValue=2, crewSize=3 } +cat['RED_BMP2_CRATE'] = { hidden=true, description='BMP-2 crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=RED, category=Group.Category.GROUND } +cat['RED_BMP2'] = { menuCategory='Combat Vehicles', menu='BMP-2', description='BMP-2', dcsCargoType='container_cargo', requires={ RED_BMP2_CRATE=3 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('BMP-2'), unitType='BMP-2', MEDEVAC=true, salvageValue=2, crewSize=3 } +cat['RED_BTR80_CRATE'] = { hidden=true, description='BTR-80 crate', dcsCargoType='container_cargo', required=1, initialStock=30, side=RED, category=Group.Category.GROUND } +cat['RED_BTR80'] = { menuCategory='Combat Vehicles', menu='BTR-80', description='BTR-80', dcsCargoType='container_cargo', requires={ RED_BTR80_CRATE=3 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('BTR-80'), unitType='BTR-80', MEDEVAC=true, salvageValue=2, crewSize=3 } +cat['RED_T72B3_CRATE'] = { hidden=true, description='T-72B3 crate', dcsCargoType='container_cargo', required=1, initialStock=24, side=RED, category=Group.Category.GROUND } +cat['RED_T72B3'] = { menuCategory='Combat Vehicles', menu='T-72B3', description='T-72B3', dcsCargoType='container_cargo', requires={ RED_T72B3_CRATE=3 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('T-72B3'), unitType='T-72B3', MEDEVAC=true, salvageValue=3, crewSize=3 } +cat['RED_T90M_CRATE'] = { hidden=true, description='T-90M crate', dcsCargoType='container_cargo', required=1, initialStock=24, side=RED, category=Group.Category.GROUND } +cat['RED_T90M'] = { menuCategory='Combat Vehicles', menu='T-90M', description='T-90M', dcsCargoType='container_cargo', requires={ RED_T90M_CRATE=3 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('CHAP_T90M'), unitType='CHAP_T90M', MEDEVAC=true, salvageValue=3, crewSize=3 } + +-- Support (BLUE) +cat['BLUE_MRAP_JTAC'] = { menuCategory='Support', menu='MRAP - JTAC', description='JTAC MRAP', dcsCargoType='container_cargo', required=1, initialStock=12, side=BLUE, category=Group.Category.GROUND, build=singleUnit('MaxxPro_MRAP'), MEDEVAC=true, salvageValue=1, crewSize=4, roles={'JTAC'}, jtac={ platform='ground' } } +cat['BLUE_M818_AMMO'] = { menuCategory='Support', menu='M-818 Ammo Truck', description='M-818 Ammo Truck', dcsCargoType='container_cargo', required=1, initialStock=12, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M 818'), salvageValue=1, crewSize=2 } +cat['BLUE_M978_TANKER'] = { menuCategory='Support', menu='M-978 Tanker', description='M-978 Tanker', dcsCargoType='container_cargo', required=1, initialStock=10, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M978 HEMTT Tanker'), salvageValue=1, crewSize=2 } +cat['BLUE_EWR_FPS117'] = { menuCategory='Support', menu='EWR Radar FPS-117', description='EWR Radar FPS-117', dcsCargoType='container_cargo', required=1, initialStock=6, side=BLUE, category=Group.Category.GROUND, build=singleUnit('FPS-117'), salvageValue=1, crewSize=3 } + +-- Support (RED) +cat['RED_TIGR_JTAC'] = { menuCategory='Support', menu='Tigr - JTAC', description='JTAC Tigr', dcsCargoType='container_cargo', required=1, initialStock=12, side=RED, category=Group.Category.GROUND, build=singleUnit('Tigr_233036'), MEDEVAC=true, salvageValue=1, crewSize=4, roles={'JTAC'}, jtac={ platform='ground' } } +cat['RED_URAL4320_AMMO'] = { menuCategory='Support', menu='Ural-4320-31 Ammo Truck', description='Ural-4320-31 Ammo Truck', dcsCargoType='container_cargo', required=1, initialStock=12, side=RED, category=Group.Category.GROUND, build=singleUnit('Ural-4320-31'), salvageValue=1, crewSize=2 } +cat['RED_ATZ10_TANKER'] = { menuCategory='Support', menu='ATZ-10 Refueler', description='ATZ-10 Refueler', dcsCargoType='container_cargo', required=1, initialStock=10, side=RED, category=Group.Category.GROUND, build=singleUnit('ATZ-10'), salvageValue=1, crewSize=2 } +cat['RED_EWR_1L13'] = { menuCategory='Support', menu='EWR Radar 1L13', description='EWR Radar 1L13', dcsCargoType='container_cargo', required=1, initialStock=6, side=RED, category=Group.Category.GROUND, build=singleUnit('1L13 EWR'), salvageValue=1, crewSize=3 } + +-- Artillery (BLUE) +cat['BLUE_MLRS_CRATE'] = { hidden=true, description='MLRS crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_MLRS'] = { menuCategory='Artillery', menu='MLRS', description='MLRS', dcsCargoType='container_cargo', requires={ BLUE_MLRS_CRATE=2 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('MLRS'), salvageValue=2, crewSize=3 } +cat['BLUE_SMERCH_CM_CRATE'] = { hidden=true, description='Smerch (CM) crate', dcsCargoType='container_cargo', required=1, initialStock=12, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_SMERCH_CM'] = { menuCategory='Artillery', menu='Smerch_CM', description='Smerch (CM)', dcsCargoType='container_cargo', requires={ BLUE_SMERCH_CM_CRATE=2 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Smerch'), salvageValue=2, crewSize=3 } +cat['BLUE_L118_105MM'] = { menuCategory='Artillery', menu='L118 Light Artillery 105mm', description='L118 105mm', dcsCargoType='container_cargo', required=1, initialStock=10, side=BLUE, category=Group.Category.GROUND, build=singleUnit('L118_Unit'), salvageValue=1, crewSize=5 } +cat['BLUE_SMERCH_HE_CRATE'] = { hidden=true, description='Smerch (HE) crate', dcsCargoType='container_cargo', required=1, initialStock=12, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_SMERCH_HE'] = { menuCategory='Artillery', menu='Smerch_HE', description='Smerch (HE)', dcsCargoType='container_cargo', requires={ BLUE_SMERCH_HE_CRATE=2 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Smerch_HE'), salvageValue=2, crewSize=3 } +cat['BLUE_M109_CRATE'] = { hidden=true, description='M-109 crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_M109'] = { menuCategory='Artillery', menu='M-109', description='M-109', dcsCargoType='container_cargo', requires={ BLUE_M109_CRATE=2 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M-109'), salvageValue=2, crewSize=4 } + +-- Artillery (RED) +cat['RED_GVOZDIKA_CRATE'] = { hidden=true, description='SAU Gvozdika crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=RED, category=Group.Category.GROUND } +cat['RED_GVOZDika'] = { menuCategory='Artillery', menu='SAU Gvozdika', description='SAU Gvozdika', dcsCargoType='container_cargo', requires={ RED_GVOZDIKA_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('SAU Gvozdika'), salvageValue=2, crewSize=3 } +cat['RED_2S19_MSTA_CRATE'] = { hidden=true, description='SPH 2S19 Msta crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=RED, category=Group.Category.GROUND } +cat['RED_2S19_MSTA'] = { menuCategory='Artillery', menu='SPH 2S19 Msta', description='SPH 2S19 Msta', dcsCargoType='container_cargo', requires={ RED_2S19_MSTA_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('SAU Msta'), salvageValue=2, crewSize=4 } +cat['RED_URAGAN_BM27_CRATE'] = { hidden=true, description='Uragan BM-27 crate', dcsCargoType='container_cargo', required=1, initialStock=12, side=RED, category=Group.Category.GROUND } +cat['RED_URAGAN_BM27'] = { menuCategory='Artillery', menu='Uragan_BM-27', description='Uragan BM-27', dcsCargoType='container_cargo', requires={ RED_URAGAN_BM27_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('Uragan_BM-27'), salvageValue=2, crewSize=3 } +cat['RED_BM21_GRAD_CRATE'] = { hidden=true, description='BM-21 Grad crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=RED, category=Group.Category.GROUND } +cat['RED_BM21_GRAD'] = { menuCategory='Artillery', menu='BM-21 Grad Ural', description='BM-21 Grad Ural', dcsCargoType='container_cargo', requires={ RED_BM21_GRAD_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('Grad-URAL'), salvageValue=2, crewSize=3 } +cat['RED_PLZ05_CRATE'] = { hidden=true, description='PLZ-05 crate', dcsCargoType='container_cargo', required=1, initialStock=12, side=RED, category=Group.Category.GROUND } +cat['RED_PLZ05'] = { menuCategory='Artillery', menu='PLZ-05 Mobile Artillery', description='PLZ-05', dcsCargoType='container_cargo', requires={ RED_PLZ05_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('PLZ05'), salvageValue=2, crewSize=4 } + +-- AAA (BLUE) +cat['BLUE_GEPARD'] = { menuCategory='AAA', menu='Gepard AAA', description='Gepard AAA', dcsCargoType='container_cargo', required=1, initialStock=10, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Gepard'), salvageValue=1, crewSize=3 } +cat['BLUE_CRAM'] = { menuCategory='AAA', menu='LPWS C-RAM', description='LPWS C-RAM', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('HEMTT_C-RAM_Phalanx'), salvageValue=1, crewSize=2 } +cat['BLUE_VULCAN_M163'] = { menuCategory='AAA', menu='SPAAA Vulcan M163', description='Vulcan M163', dcsCargoType='container_cargo', required=1, initialStock=10, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Vulcan'), salvageValue=1, crewSize=2 } +cat['BLUE_BOFORS40'] = { menuCategory='AAA', menu='Bofors 40mm', description='Bofors 40mm', dcsCargoType='container_cargo', required=1, initialStock=12, side=BLUE, category=Group.Category.GROUND, build=singleUnit('bofors40'), salvageValue=1, crewSize=4 } + +-- AAA (RED) +cat['RED_URAL_ZU23'] = { menuCategory='AAA', menu='Ural-375 ZU-23', description='Ural-375 ZU-23', dcsCargoType='container_cargo', required=1, initialStock=12, side=RED, category=Group.Category.GROUND, build=singleUnit('Ural-375 ZU-23'), salvageValue=1, crewSize=3 } +cat['RED_SHILKA'] = { menuCategory='AAA', menu='ZSU-23-4 Shilka', description='ZSU-23-4 Shilka', dcsCargoType='container_cargo', required=1, initialStock=10, side=RED, category=Group.Category.GROUND, build=singleUnit('ZSU-23-4 Shilka'), salvageValue=1, crewSize=3 } +cat['RED_ZSU57_2'] = { menuCategory='AAA', menu='ZSU_57_2', description='ZSU_57_2', dcsCargoType='container_cargo', required=1, initialStock=10, side=RED, category=Group.Category.GROUND, build=singleUnit('ZSU_57_2'), salvageValue=1, crewSize=3 } + +cat['BLUE_M1097_AVENGER_CRATE'] = { hidden=true, description='M1097 Avenger crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_M1097_AVENGER'] = { menuCategory='SAM short range', menu='M1097 Avenger', description='M1097 Avenger', dcsCargoType='container_cargo', requires={ BLUE_M1097_AVENGER_CRATE=2 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M1097 Avenger') } +cat['BLUE_M48_CHAPARRAL_CRATE'] = { hidden=true, description='M48 Chaparral crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_M48_CHAPARRAL'] = { menuCategory='SAM short range', menu='M48 Chaparral', description='M48 Chaparral', dcsCargoType='container_cargo', requires={ BLUE_M48_CHAPARRAL_CRATE=2 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M48 Chaparral') } +cat['BLUE_ROLAND_ADS_CRATE'] = { hidden=true, description='Roland ADS crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=BLUE, category=Group.Category.GROUND } +cat['BLUE_ROLAND_ADS'] = { menuCategory='SAM short range', menu='Roland ADS', description='Roland ADS', dcsCargoType='container_cargo', requires={ BLUE_ROLAND_ADS_CRATE=2 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Roland ADS') } +cat['BLUE_M6_LINEBACKER'] = { menuCategory='SAM short range', menu='M6 Linebacker', description='M6 Linebacker', dcsCargoType='container_cargo', required=1, initialStock=10, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M6 Linebacker') } +cat['BLUE_RAPIER_LN'] = { menuCategory='SAM short range', menu='Rapier Launcher', description='Rapier Launcher', dcsCargoType='container_cargo', required=1, initialStock=10, side=BLUE, category=Group.Category.GROUND, build=singleUnit('rapier_fsa_launcher') } +cat['BLUE_RAPIER_SR'] = { menuCategory='SAM short range', menu='Rapier SR', description='Rapier SR', dcsCargoType='container_cargo', required=1, initialStock=10, side=BLUE, category=Group.Category.GROUND, build=singleUnit('rapier_fsa_blindfire_radar') } +cat['BLUE_RAPIER_TR'] = { menuCategory='SAM short range', menu='Rapier Tracker', description='Rapier Tracker', dcsCargoType='container_cargo', required=1, initialStock=10, side=BLUE, category=Group.Category.GROUND, build=singleUnit('rapier_fsa_optical_tracker_unit') } +cat['BLUE_RAPIER_SITE'] = { menuCategory='SAM short range', menu='Rapier - All crates', description='Rapier Site', dcsCargoType='container_cargo', requires={ BLUE_RAPIER_LN=1, BLUE_RAPIER_SR=1, BLUE_RAPIER_TR=1 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, + build=multiUnits({ {type='rapier_fsa_launcher'}, {type='rapier_fsa_blindfire_radar', dx=12, dz=6}, {type='rapier_fsa_optical_tracker_unit', dx=-12, dz=6} }) } + +-- SAM short range (RED) +cat['RED_OSA_9K33_CRATE'] = { hidden=true, description='9K33 Osa crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=RED, category=Group.Category.GROUND } +cat['RED_OSA_9K33'] = { menuCategory='SAM short range', menu='9K33 Osa', description='9K33 Osa', dcsCargoType='container_cargo', requires={ RED_OSA_9K33_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('Osa 9A33 ln') } +cat['RED_STRELA1_9P31_CRATE'] = { hidden=true, description='9P31 Strela-1 crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=RED, category=Group.Category.GROUND } +cat['RED_STRELA1_9P31'] = { menuCategory='SAM short range', menu='9P31 Strela-1', description='9P31 Strela-1', dcsCargoType='container_cargo', requires={ RED_STRELA1_9P31_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('Strela-1 9P31') } +cat['RED_TUNGUSKA_2S6_CRATE'] = { hidden=true, description='2K22 Tunguska crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=RED, category=Group.Category.GROUND } +cat['RED_TUNGUSKA_2S6'] = { menuCategory='SAM short range', menu='2K22 Tunguska', description='2K22 Tunguska', dcsCargoType='container_cargo', requires={ RED_TUNGUSKA_2S6_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('2S6 Tunguska') } +cat['RED_STRELA10M3_CRATE'] = { hidden=true, description='SA-13 Strela-10M3 crate', dcsCargoType='container_cargo', required=1, initialStock=16, side=RED, category=Group.Category.GROUND } +cat['RED_STRELA10M3'] = { menuCategory='SAM short range', menu='SA-13 Strela-10M3', description='SA-13 Strela-10M3', dcsCargoType='container_cargo', requires={ RED_STRELA10M3_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('Strela-10M3') } +-- HQ-7 components and site +cat['RED_HQ7_LN_CRATE'] = { hidden=true, description='HQ-7 Launcher crate', dcsCargoType='container_cargo', required=1, initialStock=20, side=RED, category=Group.Category.GROUND } +cat['RED_HQ7_LN'] = { menuCategory='SAM short range', menu='HQ-7_Launcher', description='HQ-7 Launcher', dcsCargoType='container_cargo', requires={ RED_HQ7_LN_CRATE=2 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('HQ-7_LN_SP') } +cat['RED_HQ7_STR'] = { menuCategory='SAM short range', menu='HQ-7_STR_SP', description='HQ-7 STR', dcsCargoType='container_cargo', required=1, initialStock=10, side=RED, category=Group.Category.GROUND, build=singleUnit('HQ-7_STR_SP') } +cat['RED_HQ7_SITE'] = { menuCategory='SAM short range', menu='HQ-7 - All crates', description='HQ-7 Site', dcsCargoType='container_cargo', requires={ RED_HQ7_LN=1, RED_HQ7_STR=1 }, initialStock=0, side=RED, category=Group.Category.GROUND, + build=multiUnits({ {type='HQ-7_LN_SP'}, {type='HQ-7_STR_SP', dx=10, dz=8} }) } + +-- SAM mid range (BLUE) HAWK + NASAMS +cat['BLUE_HAWK_LN'] = { menuCategory='SAM mid range', menu='HAWK Launcher', description='HAWK Launcher', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Hawk ln') } +cat['BLUE_HAWK_SR'] = { menuCategory='SAM mid range', menu='HAWK Search Radar', description='HAWK SR', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Hawk sr') } +cat['BLUE_HAWK_TR'] = { menuCategory='SAM mid range', menu='HAWK Track Radar', description='HAWK TR', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Hawk tr') } +cat['BLUE_HAWK_PCP'] = { menuCategory='SAM mid range', menu='HAWK PCP', description='HAWK PCP', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Hawk pcp') } +cat['BLUE_HAWK_CWAR'] = { menuCategory='SAM mid range', menu='HAWK CWAR', description='HAWK CWAR', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Hawk cwar') } +cat['BLUE_HAWK_SITE'] = { menuCategory='SAM mid range', menu='HAWK - All crates', description='HAWK Site', dcsCargoType='container_cargo', requires={ BLUE_HAWK_LN=1, BLUE_HAWK_SR=1, BLUE_HAWK_TR=1, BLUE_HAWK_PCP=1, BLUE_HAWK_CWAR=1 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, + build=multiUnits({ {type='Hawk ln'}, {type='Hawk sr', dx=12, dz=8}, {type='Hawk tr', dx=-12, dz=8}, {type='Hawk pcp', dx=18, dz=12}, {type='Hawk cwar', dx=-18, dz=12} }) } + +-- HAWK site repair/augment (adds +1 launcher, repairs site by respawn) +cat['BLUE_HAWK_REPAIR'] = { menuCategory='SAM mid range', menu='HAWK Repair/Launcher +1', description='HAWK Repair (adds launcher)', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, isRepair=true, build=function(point, headingDeg) + -- Build is handled specially in CTLD:BuildSpecificAtGroup for isRepair entries + return singleUnit('Ural-375')(point, headingDeg) +end } + +cat['BLUE_NASAMS_LN'] = { menuCategory='SAM mid range', menu='NASAMS Launcher 120C', description='NASAMS LN 120C', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('NASAMS_LN_C') } +cat['BLUE_NASAMS_RADAR'] = { menuCategory='SAM mid range', menu='NASAMS Search/Track Radar', description='NASAMS Radar', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('NASAMS_Radar_MPQ64F1') } +cat['BLUE_NASAMS_CP'] = { menuCategory='SAM mid range', menu='NASAMS Command Post', description='NASAMS CP', dcsCargoType='container_cargo', required=1, initialStock=8, side=BLUE, category=Group.Category.GROUND, build=singleUnit('NASAMS_Command_Post') } +cat['BLUE_NASAMS_SITE'] = { menuCategory='SAM mid range', menu='NASAMS - All crates', description='NASAMS Site', dcsCargoType='container_cargo', requires={ BLUE_NASAMS_LN=1, BLUE_NASAMS_RADAR=1, BLUE_NASAMS_CP=1 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, + build=multiUnits({ {type='NASAMS_LN_C'}, {type='NASAMS_Radar_MPQ64F1', dx=12, dz=8}, {type='NASAMS_Command_Post', dx=-12, dz=8} }) } + +-- SAM mid range (RED) KUB +cat['RED_KUB_LN'] = { menuCategory='SAM mid range', menu='KUB Launcher', description='KUB Launcher', dcsCargoType='container_cargo', required=1, initialStock=8, side=RED, category=Group.Category.GROUND, build=singleUnit('Kub 2P25 ln') } +cat['RED_KUB_RADAR'] = { menuCategory='SAM mid range', menu='KUB Radar', description='KUB Radar', dcsCargoType='container_cargo', required=1, initialStock=8, side=RED, category=Group.Category.GROUND, build=singleUnit('Kub 1S91 str') } +cat['RED_KUB_SITE'] = { menuCategory='SAM mid range', menu='KUB - All crates', description='KUB Site', dcsCargoType='container_cargo', requires={ RED_KUB_LN=1, RED_KUB_RADAR=1 }, initialStock=0, side=RED, category=Group.Category.GROUND, + build=multiUnits({ {type='Kub 2P25 ln'}, {type='Kub 1S91 str', dx=12, dz=8} }) } + +-- KUB site repair/augment (adds +1 launcher, repairs site by respawn) +cat['RED_KUB_REPAIR'] = { menuCategory='SAM mid range', menu='KUB Repair/Launcher +1', description='KUB Repair (adds launcher)', dcsCargoType='container_cargo', required=1, initialStock=8, side=RED, category=Group.Category.GROUND, isRepair=true, build=function(point, headingDeg) + return singleUnit('Ural-375')(point, headingDeg) +end } + +-- SAM long range (BLUE) Patriot +cat['BLUE_PATRIOT_LN'] = { menuCategory='SAM long range', menu='Patriot Launcher', description='Patriot Launcher', dcsCargoType='container_cargo', required=1, initialStock=6, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Patriot ln') } +cat['BLUE_PATRIOT_RADAR'] = { menuCategory='SAM long range', menu='Patriot Radar', description='Patriot Radar', dcsCargoType='container_cargo', required=1, initialStock=6, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Patriot str') } +cat['BLUE_PATRIOT_ECS'] = { menuCategory='SAM long range', menu='Patriot ECS', description='Patriot ECS', dcsCargoType='container_cargo', required=1, initialStock=6, side=BLUE, category=Group.Category.GROUND, build=singleUnit('Patriot ECS') } +cat['BLUE_PATRIOT_SITE'] = { menuCategory='SAM long range', menu='Patriot - All crates', description='Patriot Site', dcsCargoType='container_cargo', requires={ BLUE_PATRIOT_LN=1, BLUE_PATRIOT_RADAR=1, BLUE_PATRIOT_ECS=1 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, + build=multiUnits({ {type='Patriot ln'}, {type='Patriot str', dx=14, dz=10}, {type='Patriot ECS', dx=-14, dz=10} }) } + +-- Patriot site repair/augment (adds +1 launcher, repairs site by respawn) +cat['BLUE_PATRIOT_REPAIR'] = { menuCategory='SAM long range', menu='Patriot Repair/Launcher +1', description='Patriot Repair (adds launcher)', dcsCargoType='container_cargo', required=1, initialStock=6, side=BLUE, category=Group.Category.GROUND, isRepair=true, build=function(point, headingDeg) + return singleUnit('Ural-375')(point, headingDeg) +end } + +-- SAM long range (RED) BUK +cat['RED_BUK_LN'] = { menuCategory='SAM long range', menu='BUK Launcher', description='BUK Launcher', dcsCargoType='container_cargo', required=1, initialStock=6, side=RED, category=Group.Category.GROUND, build=singleUnit('SA-11 Buk LN 9A310M1') } +cat['RED_BUK_SR'] = { menuCategory='SAM long range', menu='BUK Search Radar', description='BUK Search Radar', dcsCargoType='container_cargo', required=1, initialStock=6, side=RED, category=Group.Category.GROUND, build=singleUnit('SA-11 Buk SR 9S18M1') } +cat['RED_BUK_CC'] = { menuCategory='SAM long range', menu='BUK CC Radar', description='BUK CC Radar', dcsCargoType='container_cargo', required=1, initialStock=6, side=RED, category=Group.Category.GROUND, build=singleUnit('SA-11 Buk CC 9S470M1') } +cat['RED_BUK_SITE'] = { menuCategory='SAM long range', menu='BUK - All crates', description='BUK Site', dcsCargoType='container_cargo', requires={ RED_BUK_LN=1, RED_BUK_SR=1, RED_BUK_CC=1 }, initialStock=0, side=RED, category=Group.Category.GROUND, + build=multiUnits({ {type='SA-11 Buk LN 9A310M1'}, {type='SA-11 Buk SR 9S18M1', dx=12, dz=8}, {type='SA-11 Buk CC 9S470M1', dx=-12, dz=8} }) } + +-- BUK site repair/augment (adds +1 launcher, repairs site by respawn) +cat['RED_BUK_REPAIR'] = { menuCategory='SAM long range', menu='BUK Repair/Launcher +1', description='BUK Repair (adds launcher)', dcsCargoType='container_cargo', required=1, initialStock=6, side=RED, category=Group.Category.GROUND, isRepair=true, build=function(point, headingDeg) + return singleUnit('Ural-375')(point, headingDeg) +end } + +-- Drones (JTAC) +cat['BLUE_MQ9'] = { menuCategory='Drones', menu='MQ-9 Reaper - JTAC', description='MQ-9 JTAC', dcsCargoType='container_cargo', required=1, initialStock=3, side=BLUE, category=Group.Category.AIRPLANE, build=singleAirUnit('MQ-9 Reaper'), roles={'JTAC'}, jtac={ platform='air' } } +cat['RED_WINGLOONG'] = { menuCategory='Drones', menu='WingLoong-I - JTAC', description='WingLoong-I JTAC', dcsCargoType='container_cargo', required=1, initialStock=3, side=RED, category=Group.Category.AIRPLANE, build=singleAirUnit('WingLoong-I'), roles={'JTAC'}, jtac={ platform='air' } } + +-- FOB crates (Support) β€” three small crates build a FOB site +cat['FOB_SMALL'] = { hidden=true, description='FOB small crate', dcsCargoType='container_cargo', required=1, initialStock=12, side=nil, category=Group.Category.GROUND, build=function(point, headingDeg) + -- spawns a harmless placeholder truck for visibility; consumed by FOB_SITE build + return singleUnit('Ural-375')(point, headingDeg) +end } +cat['FOB_SITE'] = { menuCategory='Support', menu='FOB Crates - All', description='FOB Site', isFOB=true, dcsCargoType='container_cargo', requires={ FOB_SMALL=3 }, initialStock=0, side=nil, category=Group.Category.GROUND, + build=multiUnits({ {type='HEMTT TFFT'}, {type='Ural-375 PBU', dx=10, dz=8}, {type='Ural-375', dx=-10, dz=8} }) } + +-- Mobile MASH (Support) β€” three crates build a Mobile MASH unit +cat['MOBILE_MASH_SMALL'] = { hidden=true, description='Mobile MASH crate', dcsCargoType='container_cargo', required=1, initialStock=6, side=nil, category=Group.Category.GROUND, build=function(point, headingDeg) + -- spawns placeholder truck for visibility; consumed by MOBILE_MASH build + return singleUnit('Ural-375')(point, headingDeg) +end } +cat['BLUE_MOBILE_MASH'] = { menuCategory='Support', menu='Mobile MASH - All', description='Blue Mobile MASH Unit', isMobileMASH=true, dcsCargoType='container_cargo', requires={ MOBILE_MASH_SMALL=3 }, initialStock=0, side=BLUE, category=Group.Category.GROUND, build=singleUnit('M-113') } +cat['RED_MOBILE_MASH'] = { menuCategory='Support', menu='Mobile MASH - All', description='Red Mobile MASH Unit', isMobileMASH=true, dcsCargoType='container_cargo', requires={ MOBILE_MASH_SMALL=3 }, initialStock=0, side=RED, category=Group.Category.GROUND, build=singleUnit('BTR_D') } + +-- ========================= +-- Troop Type Definitions +-- ========================= +-- These define the composition of troop squads for Load/Unload Troops (NOT crates) +-- Structure: { label, size, unitsBlue, unitsRed, units (fallback) } +local troops = {} + +-- Assault Squad: general-purpose rifles/MG +troops['AS'] = { + label = 'Assault Squad', + size = 8, + unitsBlue = { 'Soldier M4', 'Soldier M249' }, + unitsRed = { 'Infantry AK', 'Infantry AK ver3' }, + units = { 'Infantry AK' }, +} + +-- MANPADS Team: Anti-air element +troops['AA'] = { + label = 'MANPADS Team', + size = 4, + unitsBlue = { 'Soldier stinger', 'Stinger comm' }, + unitsRed = { 'SA-18 Igla-S manpad', 'SA-18 Igla comm' }, + units = { 'Infantry AK' }, +} + +-- AT Team: Anti-tank element +troops['AT'] = { + label = 'AT Team', + size = 4, + unitsBlue = { 'Soldier RPG', 'Soldier RPG' }, + unitsRed = { 'Soldier RPG', 'Soldier RPG' }, + units = { 'Infantry AK' }, +} + +-- Mortar Team: Indirect fire element +troops['AR'] = { + label = 'Mortar Team', + size = 4, + unitsBlue = { '2B11 mortar' }, + unitsRed = { '2B11 mortar' }, + units = { '2B11 mortar' }, +} + +-- Export troop types +_CTLD_TROOP_TYPES = troops + +-- Also export as a global for mission setups that load via DO SCRIPT FILE (no return capture) +_CTLD_EXTRACTED_CATALOG = cat +return cat
  • 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%0AAw?(S-q0%FP1$*a%^I8u-KMtKw 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�^n+6iyBc&Z0l=@OHONy%XhEFz6CL|`vBZ9m66PPOiWGqNWQU&aS5?A zUUD@%KVxBsOki}_o5~~valCGyg!O)3EZF6d^fL4DU6z&)x2Z`BqW~w4aS*_!zP{M8b*nlkF}tO?=#{XJ z^5|n-mzONavP5ZCN(%33mHYhcf;8tvDGtlQF|=HqH#|J*S&wlE(~FGsLxb`XrrV;r zi?9qnkFJR}>I0)PjNY(xsG+IVBdW@3DF?9DR3@%7$4wUupo}08Hygj%(AeL{p$DDOETw>3*x6vu(gv2^(Q%Vc)6=uTS^CV-a59(k zj@b2XYGCI{nqiJmMW>#pyXBrC>dk`i4i1mS{{6$=Ux8xg84lbgS^UQ*J|7?c=PTknzxRiQM}lZ$x8hd)VKf)viaSMopU6!S<9{D9{V6FUkC(su zcGRBoVY$-NpMGxq$d5cGZoF|g_U;{v$;o+}QBD9hdv|x|eFo(JcYf!?y#$KzhXc~i z60c8x`r67SBs}-T&;R^0RbN|tXUGr!;A7&7uijWGI19d~gxL-DZ4%a2xkO;O~$A=#z2HHT&a@Z+ua_>QzsS7rgKihr8{zQPtBFO26`zTjEdu^gq1> zin~O%Zw zcJKb5&ZlpE>;F_X_dWc>KU@(959Y>gj$7ugkoz2#hoyL25^?YiY7^YwAw_)+VK8}8 zHdys9O=?3dY3zP%y!DL->5r0&jMObI#*@tvgj@VmvtS}H3 z{zTiRKHHtgAuz+|Y;t%Y-4(jxF|bhta|U{f8*c~UErUNXg3KU01>&=2C3;MoJR-z{ zo6km{iQ6pxw&Ekt**`i*eO;s%X4~Nd z;`m@tJQ5J=!a0tbz$v= z(G1F!+*ahUq<&M>tcti*rdv21CYF>di_x^oGTJH0AT!Z0eIS}gZi>c{+hTS2W>vFW zV|8**EKKZ=#)Z*nm>r3=S-lsSJ!gQ9JY>*Hv64WcUT#2{VPA^!ow}rWpx2Imx|kcg~jzO7YmL;Htv$HX;RdN?~0$*9Kb=0f_2|-}w zE(bPr@7&TEk3O?Ao_J1EoVIm2{`#7GcLv1t=!cmNgruoyj@Hf1<}A5lP5*)v4{j5O zHug*~>%qPhguEUp9c(nW;?bIy-ob<(>_DZZ5NGEnV{vgNRwa-%wYK}V=>;ia`-f1z z=Hm&MKQ_39d%co8_<(Xj*q)kYZ^MX`r=b{^0%-+AolvLh5tl#?peXjTsg%+ANtYGJ zv@tV69iSs)WZaco|Ale$W+sGv9tiYo0QXV2jNmA4a?%_9L`#P_@x1&Fs{VAevvjc4 z8>AN(XN5>i7x!iEH(80!R+f7yDn>iRlqYAHU0ahP+ZuiS-4^b-_zHfMqYT-(^ePR^ z(x|&pog)oQzc;u}GF!uxB^&AKSP$%DAIzfbY}QK3Q3|NSa15_U;HvssmOGTj?J~EU z-uZ7p*(*ulx>OBkP*p(!179L%mPEh;}+*_YEE z<6|Q#mr2peY*HSR%n~a6`P3CC(>noWB;Vu#XW;ipk?83kkis|}qk{)M!*t5-vyy&w ze2kvmdfip(^i-Dfvr?e;#~G*ZiruH}67BtNzom}9^IgBA$}pHWZ;$+$n8R)QM!-&m z)_{V-I(BA6xL0KBPgM^0EwD6;SqBsk%w4K0j5@L`keQK>e)LRE zp0^)z0v5}mKKzlNslF1J4f)4^{CfQU?|;;n6|&jzlvDcR)vtbl{(iCODuI674Hew^LcRs*F^@jmVW=_H45q$g!hr>A<*`>4b84tMifKjZ| zIBc%~_K)xi12Z6u=d6MAH~%Yl9>Rb-0ba}pw4!XxOtW$V{#|0noU{V)PyW1ISBe9; z0LLZY#?QBKdR4342~SwzG%lIN2N1S%b^{+795~Ul1so`O&UeiCCmjB&u%x4@ ziF^Pr%dzODGGEFAPiFuOe%pv50zDvvZ2u^&3PW7b$^evSvGgWBE1!CMUnF$u@i(EV zU(nX9FPYa^F+jg3>($2ASZr!j7?xBso6_V*nINUNH&$AEqP2I6s-xVT8tSX?)NVot zDzhW2oG~-oj+N?G?ysmGfba4c=-cG4d=~$Lv@Z^VDopXuTNRlkuH&~Ij>-tE{1i86 zE%a7)#+mtTd;;F(DL{Jxu*zrM-Ak@8R^I?}LCsyS431rc2S(T3*3E$TXjLtt-Vcx} zGT-=HcUupCgc*?9h5LVBHFMW%@Rh^>0Lw%UK;^$r*vAJKex|EKEX^xzhLmSJg zs~HfrGcc{kQU_TnB_@cGow1`Mo^(!UJnn+dIP(MvGU|B$_J(^;0U<6D#yWCF&N=0Z zWjlGa?!1J|c`wJp52Lt@WHT$kXgYg6xZWM%mgQnR2($&~Ljjh%0S0`1bUnxeV`n@n`h3Ufc&hr2QM`9KRy%FB|rl&+qOXy-**1~nF z5EGS41R}Uyv-~8rYtFg-Xxt#R_-RbjaNaafF_luh!HszK(PQRlYZRy;V?`i;Nx&uSm*{UJUv z^M^p|korkMTz>f1L)CD5mj!|=Bi0C`Y1Si8jL@sW8;3{x)vnFMcw5PV_uv&A2+}ON zz}_VJhmGXKf;+f~*hkxfRsM3h7jf$Y3!*n&NgsAafVREDLLwG zUJEV-PfWrEEkaWOdkbqyfaBs%_?;(>>O;ie*keJ|4hu^CpeC3my--5<tQ83d%Qq1!gQNI{5Tk57zWK>BYaY zU$2k&v!mV8FHpi_pZ+jAbjAx*VffB^Nq90U!wkGUFBP1gX69qcr(Mm=F}kg1fjbgX7-htl*%(f>Vwshd5AXF@Uv5=| zxQ8N8(U|IHmd8~{=^$@da@5@1mUa(fpq$vFGdj*u!b34SCM9E$rALh_qYf({1O2@c z!sqnNdK4B#5(N^V+`vH|unY(#fKd=n@2dl0qxtmAT#SrOm}zd^EJ3-gQOd}iN4MCR z#Yhk%^_{9$&B8GuobJE`FmCp2uzcQs+uTgdh8E4&i`l znlT7>Z*O;;eDYS0d^5eR$fZ!V8#kSfXKJJArZ7*cwrhbnBs38psiOl%QTKkE<;CdVv@I@q!ZV|#qf72em+}$+bP!hR zlz+`ARKm+lO@rzj$40KLF2&Lc_k`rF!rZ9NEGV-i2lnlcvBCYZ&N#V?jp4^Gt#nCQtRKQV)7sZ%7KgP>QBt#M(v|*#I6VSP<--}*Tkz{^_RZE zy&k~B4em!es`kzR#pn@_czsQw*$C`y`OV+_p1Az-Gh$$XdTfzU!|0?aJmM0@P_v zvAXWDX+{`3A}AkQxYSb$N87{VFW<4>ON`k2fA-vOqIiBQ|WASrfh&Wf&SF=1V z+d6v|JYcAA1|=8-fer>tU~HaQuwMi*3D@u{>WxujUkQuwLxgepfev^fN3pY<7P>v^ zFK+;JknUpU0kFg9HTOzWE!{lwp2~-m4)TBv;POkgCp7s7S=iyvCwgJ#Ek7A|(p&l? z0@mX8ca`UkLvewdZ^D5?AI=ZGabxK)d;6e|wxlk@W!K^XuXTX7EMLVfH|GUm$uGhS zpJ~*O@l6uuHm4ECw!#_xgS-0P?f2%-&6f6OoO5z0sil zsb%Mh(cahZL2hWH52C+cRX;=-G^?*RRP+N@Byrg-90wVMIFMUg#rY`I8XGJ{WoQTu6h!rWS)j8o_Q~63pw*t~~ zj0y-1;N;EC@#J$`;~5uq#IBv4VlRf?wJDO$|}OWp|_g#$lJ{GXkGRJ zAiR<>GzNrl6c0wrdwZ%AuJp}DbKFo){(C?+<^tpsW$kIu2Pq_t)!q*Yz#P9jG(4{adqmilly_8ePCH>n&DzYsIhU*i@ zEusi7bApo;9@0eJ-+S?l+&e>29fAmalBlX#Y~ZG^kgT50!|z7ax3DeQPTnFkMJ-@_J!oBTx&5lJ|UXc zqN}?v&U@5jqf2?79ekc{g&$*=9e{lkCv6Gm^1_rljd>-plYYP*4@c>eRClWCyao>r z#(_P1BzV-_{wu`{r3(ddW^&Rv`G+_Zsb%FwTSs@Cc=|5Sq8zy8hIrVnQ{&vT&Tu+B zih38pN(jgIa&i`m2(uy^l@JQLL3N9@$gF|q#GeyhukTFz0}Z76k&k?RZP^sS@~eOR z&`+y8>zKe%fb!&W%@a@j#Y1K+P!O)X@^#0IXCrXO#U+>gW(_Bsy?5^HkFS39R(}J` zvYd6+ws`r=pAbL&(@(8z6S!FMV;{d-e7xG|EMQjR6QB4c&)D2ux;SO*!V3?(ZP7|s z{b^M7@aw<+y!h2${SMdJ2Q{E*aDo*xeLgnV%;pH7JY+*>lY0Jvm&BjH?MCxp?mv>O zmm~42AN+YUGrS9Y{9~_&5BeJmneKRUgxpL*-|%D~w=Mp_%rSMAlcIRoX9jQP0F9(F zg&D%Zm&|7Ujg#DXXp)X6X<$?y-h~o`ssWEnD)gP?fOG;;nGy&6+R9# zp-M5}!*W!3ea?!Y0Kkz@5HgLJ!EbZ*V#Tajfh+sZJR zUYV7D%mCX>o^eBqu9Z}b0a#+1#a?Uf7wq6 zoJaC2KMt=S&z8uX`CkPPU^f2hTS4vCq{#9ZVf8cA2bDdFo=5TpR$3EzzFp9nPUoYl zG6Rb9E9zfVITx1HN49oEbN@iJ?K~;EPuL#Kn|egMGFJ6Wou>LBW=AM1fpB=%g@M7+ z|5fqumb3kuV0}1hLYjoi9?;wMzOpwSCBb3&(mTn<4+d~xFHia`ZpB}=A=yKK{8pc~ zFHik_msk@aOW$tB=O&nry7Zs3``y1k!7dFR}9?=@7Z|_iL>r`Z{ZAY(_0&@G^ zS3pQGqa;3FR|0D;yOQ$3tOw5`cLk&Xm_iPBdvto%gZ&=t_1L)Ns$|4*xc{M)C$k^y z`4}1*^6{=*5{WR(-h#fKJ}Vt7OF8q=C4s+;_yZIlWw^E`#ZyWtYj)`rIC|GN->Xv{ zlCsg&GY}{5+@d%+`gP8?^ujPvN?Y25R~=EGI;KUAeBC>!uuE~fsyRvs%Zb!4naO6Y zSA6=V5fB#&0?P)t*eN&8!*Cl^=Th0VGAst^s%E~lDn)D1Y1lNd*&UrbDdA%FZftzq z{ut3B3>}p|V$+sQ?o9a1^k)ZUyv_ssC1YSVklBkFwGr9@9dt5_Y`TQ!9uD%Ea4buF z%%d-J8*xJMrXM>D2S zObRDvargt5P%=BTw4%;`N^Mz6(DITL7ok9CAvw@Sht<{D5$8W_S8UxfV8sNtdkXJ- zmiYso7$35 z&!WK}Je)xj_stR#;l11)gz^De4|E78O%}exj3>*Q8rc9X{H4yCe+dYO9oFV@GBCj6 znDw9h2%n-2E4lM#&;mQcF$0r>ZwPz{p6YABU-3tHD!gf35y)jx@H>QK_Djf$;Btds zijP@Az+Um;58Cy|*iZ69`LClxxoLmsW$<=nD&%AY`sDW+hlN<;aA4WXn-wP9OA#!~mJc*!UUHBN!l^t!j0dcoUYSAd(+<@|ma?fSchzH+Qi(@gq{fgptMWg;tel`v zkb*(kdbNl8ffWX_HgAs3ojarX#1o^dw^tYxQhrw@53DUNMdLDfP!g#(@*5P%?3 z`A_%sg92iA>|OUWO!~oG!leDW8xL+7=b>T1TkNQ5#ok6kp|w67VB5-XKG@$;0eQol z-xBAY8gbe{M2D<86b(z-w@A`0&?P()@T#6o1GWaW}USg z<=s<2sF)DU=!utHvDtiTN@h;CnwKCoFXbbbTtOJZmTxrgTvt9iC0McKiqQ|0kHSEX z!vhDDl`o1^nX>F^c!WDlCM5hziBJcJFw8alTm;DFfe4}4!O$pc9*U4PuM2b2o~q@P zCps`Lg&H0i^(jjy?l>VHd)Z^$M8~HlVpc-=Jfm?wJq%?vnQOZ$eV^(@3(D-l(bzXN z6E~~TEQ@K)tFC2pglb;dQP2QA66gA~tj?%eoi76}oYur?R^7r)-7n$tH8L`+Iy@O& z-Tl$2hq`Ddy`i7xMMv1bbzAfdY!ZzqNnPImu;->5%*bK*%oNSda%TT(w5ooS4v{9H z!)sI7~txef#aN%6%PV zQTgMSFdl^yy#;TUozhI()*l^b@oRUbJ>!FH$~8N(yEE%?IC$rK-W@;wqpyf}{=sw9 zyL~fa`ZFoa`Qo+uI4~#kwKBrZ&m9*=obqm2+#%ujDUkN5sd-;=_>OmcsS)lj;U;x9b06uhl4F6t`l~O*5B<=4YUTLDKm6GEvp@S03ni12bMeF{{%%}- z^#KX22n2_29zWcjCimuzfjsS{;ZO&VP3>KTI9~LB%2l!j>!VmH|UEJ1j>C?P`2;jaBXKyLU z;zu^-w>V+O4KuUFqz67|U&bTe?RW$z00clPgqBql2Y3>G5W*4MBia-mJcW0`f4u~& zmR5o@b0p8aWyO-EW_|i@4P;)vD|(5~vjN~p$}B3Ope0V(Sa?mP%*&q~O}&58g+bqB zqyCbXj32&<;=oKqe$!vcm%^!ZK}H}8x0az4kK=OxpnMQ+$bg2#$;^qO6CvQqyx5!)((L}e=-j$JItTiqt-CXt+nDXbvmzJnOo9R-$SYsH(vVC6R1SD$V?4Rb zQZX##TR%z{jCs&YhmWW8#ueps@DFwZCsBWfJ0i}26oN-(r?niJ(ZCxM$i4IDf` z=XlY>FN!Ujwy50ceAKAKB-mrHAR&n5KXVHUzEqGSCYxm6BHZ08i_t0t1SRH%#pM{3 z;J>PRhLBGO%H9Po#M`oYvxVcq;URZMw2I~yj_Ktzs7BSjJYkK_#G?grrvt#u5z(8s zY>RWxJYBRmdl>{r+>$Q{;LIwtsP6V}+o51;4Z;WR!F_vU&n*&^GZ$ladQ3{ygzz?d zb_fNWQO4W@q|QQ5E;m#M=+2|b%6NBAcXj-9hx08@=6Ya(z9*q(NDzJZM~i*uTV5De zMrOa1%d-~OX9w;82z9Lz`rFQmIQ@O9UrZoxp!;3|mJt2i|M=TO?!G9%M(?kE?bnZK z|3^Jg<{K{-JklK*#|m5wSbwJoH;=#k<&Rgn9-1$-L5}O)cq=*kQ@Xo<@?Kj$Ns?^{q_a#SvN zc2FmeMd6?x(s_43CI0f=EWyk>EN0kSHZvz4i%{5XIedvxX_bfX$WmO3E8=Y|mBLP8 z7*JsuOc6}sT`o@XW&~aM9QMqTnpQooTY4joGCPbS17D*RW0%5f5o#!lEDtLZ_%Xf| z{!?inq{72OUAHn$rV4l?e*>5yt(@FcQ%t}w`ii?_mI0bg6Q~f#MXN{fIfmGDty<{k zcy?&Ygat3ZSe3gyz{L!P6$0^L`YfbTztU(rQu$G6%E{pqfAMD= z3h(?U{)(1T1{Uh^FLU~(??9;nSCw~&mx|Ew@&`#Y|4C9^>9J;VFBf3 zS^kA1=UAnLC?x4bKt~~7Tx^IXX(o-`9nrIOimTHpf~1h3$9NRzVXr|;hcV*0Rtbjgi@w3i8AB%>Il6vY=y^hrC)qye1sujap#*b z%&RDmY)ANfdk~-w5B~fqj}DJl-gZ+~%6n2&^fRi;3fh}`DoU|nrbo5_uu~bD%8=zgsOrp zNsvp$gP9NZdgwhj@8vZtS6PuefY8N-ZLGQX(YnlhNC|0^K!!cD9v+qW{{dtnKe&O$ zPbW7sH|r%w%zlhca8JgZDjydOcBtH1d}0TJb5D1t_i(^z*VJ*M0I+?VD$X4gFfAAh zN9>M_jMH@Esn2;_G%PH~(7s`hymWQ;Mo(|Q>j-rr8(rp=8Ch1f735mKvcDloO?Z4}9P! z;sr0bxca(tKmpmZTp#}MPy0TUBLTA}Ec5!<#}7YqQ4bsUfz+RdwGqf)E@-Sz z%i-WYzdUgMs)!q(Bj&~uD`u+htgRwps^J!w33s-!x%BPxQ4xe zk$HQO86h-rlY(>yGA`aJzF3;uQB zTQuv1lNAN8Ai+M(B7_d7%$x zDPmDr9MeJ`KxBMtiTbhQo@`DJ*Hpwphy1k zYzO}J?eL~kN}H69mX^*K8J&r%uDL!sySw6)lTVD^ZkDCvi#(xCOFk$h>t{W!GCLl= zjn#3ha_cR*-R%l@206gdXg9vZ{cc?5oq)>XqNRO(z+Hu8T7U#tirOb#aanvZ6 z434r{TSEAGkJue&o^yIM&#M7>lOeM$bBcqzI{IQ@U~{yK$jxqNWk!asGC*$_N&)G&=1ZVN-*zI|(K>hCk{HRN{! z6;(vIPNM)uSIYfJ@8fXS!ArDezZx<9=^TCL)@X|^8$e}hMTFUq&PRz6ULLXe$12Br z52!yk+%W9fgZI4Wv$fNvxV`%?{^Ccxm*QAq<7@-v1^Pm|kFQ?f+J$!^6h()I+&>{yu@*MJF4|XQcq$>8A1u5Fk1qZN=j! ze)5YR;9<`eGrbIgSfmx2}9+TFS>EBC^M`&NX3hAq)+0fK2c2QR@0x%3WqRUU&h!McWB6&I^h!`ojsBz`}(49 zQ-5sTv0eRoujmt!r3HDV4%6?mR8hEA>3fYrATxP@B4B^mIfx+h!Cs{hVRnfa7k1PS zy&Z?vJGN}?_R;=ZHup%b>5AUo z&ghXmoU4A=>zwqU^r-X|jv3K4$sX{<*%+RfiJ{TS7(sp-9Sg1q*m=^9*xKJ6n>P*k zuo#MQP0APt%#cqgtiHv)dY0?zI(3nB5GV2);Ci9Fh2J#EOtF3R@7@xMD*B{b98m%B zM1~X)$@7gZl%dkFwI|lL%I@M*A|AO*jGEd1MKNVnRxVd-Brpnyw6$YZK$5XgFe$7} zS@D>b&^T%3gVFIhHu_5WAa!J{?}O+l`#m`2sw+>q@{*GjVvoav2i&#<+%)dZ=aUnj z{ou_^7v;|hWt3YR<*ORm*2(=C?a@wAQt`!2P+sU%8KGh{WNu+OMn=YjXG+zrKUzDw zVs&mZcI@nz5OHF(EUl@cw|PpLQ4vl6VxP#W8t@6*cY1kO8T~mLP&-Q+HUf+-M`SR= z;FH1FLO|Nm1ms8#{{Oo{y%6x<1$=rIx2F%kOFdxO@Ov0Q2y7I;W79gvo8Cv8*6BEJ zzIiy#KmXTaL3N+C+AMXtE0^eP-19*FTv>US-**=_3hY;3{hM+2*>}8k{Af_WFQse} zKO8W!-`e`Bc+{g#jjw#=e^<6ghmHG8?o0vUBF8tq>ErR|fBu<6(#8If5B~kD?~$^0 zSYYIl)2uicfjet_L;2AFW}{BJ^>o*_XTR{P=0oN+l%pOxbC2HZP03Gwcm#<2 zuL-mO`{OJKSV+{X!U_H&VCd6k$5jW(1Mr{W47}lY5=y{PW)|=VBpw^r!w4L&X(G;y ziw98-7oaF0K*pVrR{0G|9uyzm3@YK2iqLwTPM;MeE(MeTFToo-ys^m|f5_tCc3u;< zq62(j^9Z}rYIMP_QzYLHvi&F&h7WE&*!K?!c0I5ajuShfv*d@*6 zDR%jgo-*rUyu!(B6LF@WEW-lz{hrfzt*Ro^>W(X7n z+|oBNxcEFvr@vHiO8+kUWaP_=24QMIyzAdqt_3;cK}od6;Lvn@{TnyLbvND?bMuQ* zP#M(8flQW@FNznk{LKopaIs{)tE<_HNLN>9Y}(u({r$ZjpdTF`lT1Au2M!KP#$Jr^ z@rjt!dqFZ1W#@qc#C65r(!3&m+~rjoo288H*uFJ(Z0(Pp?)GXHPRAF-Q4Cl#NW4c69|yFGX~AqgRq z3)^t_2+whN&;gBdc5yytre}Qj$HYrA-W_yUR?J zS(9ls#&#(!+qdmFgc%=)y9de0|NFx`-*85C)A|7=nvpT;WHR3bdTlYuW-&?b6=^^F zKH0oZhxz%>-w;3flYbr0c*gn1d}`FY-~E|*yDI!&K6d(p?j>^qVKwr7(uQXF?Q!5p$N{ zq?_!it`$i|aDz``_P75N$I-z4D>^VsE)^h*CzSv=a4WcspEsW}rjn6v#jn#V$8<}3 zIpE!K7>BHIwlaV{{)k&&C5{3X&QT8durQi_yo^b2;xR4}<-0u$67uC%k?pW3a3vjh zTVD<Eu1SZrw=DZ;CdrV@*D+*JhSrDm`V_RtCcv@qeo`wBz)2){K~hc7V>PJ zHUv`k6fG^La8A9_zww}?V1^dYXjG7843ERV;zssYSOjkP9{zb7lV2buUHNGRM4osX zH$Rm(!ZeBq<`~MRX)leE7jQCI$)PgjH6#A)JKZb+{9)%lOoF}S2Qo-`<8TQ7q=~lx z|3Co0B43v5;rRG-lvVs{dE`AaCz$oafAy2JVrKB1$~!bP8Q=KEjdA_;dz5#o3$o|% zfXo*HfzR_T&Qrvq6_hHagJoyzYeiwg2XrA{Iq%6YR~!^RP6AUvFK@CM3@LtAR#@(i zg0tXdXw=Ehwx;Oo>+p$`TcwO_+tME`txeI@*5P`NTn>HgKShbrE5T_ak0i%QF(HC~ z`Kvb`SpjJv589)lvm=_M1T{3b$CbCP#f|&Ldw%1)VomicI^|h9M|8Q$JL86buqsJLO7GZZvO?_Oj$EYuIsk5J5H?8pTq~ z&ds@OM_7I}KCbfR*jSFCvm-Y216U`h4rmOX>=T2awf^?tn;W!*nKW_U`WzJ2xtk3(4nANWog~I|JGClOet;jz61)no7 zrI$kh@kqUeuk7~_3~jE^A#$Yj%70px@RnnYA3v1>VmJ6Fyf!5W_-5%>lb0h{<~MKq z#jJQzuuY+^fCW`~uL-T9!*rUS#FI-l*1>p%!vb(cBS8vY3-o&DY)aw)Fr(P8jH-M$ znPy_*Zyis4IO8L%(vA?6qv7(6AEgPg$%=$NJ;R_k!a9C4PFd(7D^mf=7KPd9gp1= z03p}Ql+@2j7IkirSGeVD1$KB)JkYHt(wcw<^IM9jYg!U$ml-v8n{6rn9TVN^ytkai8)CKU{x6etheb|MyS@L@ZqT zjTJ*_HPO(~9v%H1F}czeHx9PPXRlj}n+8=bfAoDmVmVe96-WW45LF27z5+t#OncAA zw1rb1ZlC7l4rV{lzFD5*TdUY7@Hjj;fimXQDHIORevFRB_$0F* z3ueZYZyV*?-RZkIIymPW4PF&}2`yZWfkw?p3MX9+506{<=-9knOray#8$yGmec=H8 zKmxxvjcPPfGIpJ^BewT8#FFY#GDsROo>cE<=3`=VE-t?464f)94fe<3I2;?i{cRE` z*)Yt#B4sq&vmzUo&@}dlC+-lJJ{#y^Z34G(Rw09L~Gfhpe zJf!U`Expq``B;B+gCKSuyB>8tLcX+Jl<<3(3Ge^Um5v#DQ|*#ek_g>>`12ePAPA(A3MCa2RM z;p7*A)GSiMio@Vj{w#FqEsyr=a29rC04xj_p{Wvx9FzPKO!$(o7QjD(s_KXQdQXCa zBmAXsN<0=Z9S3h?lwV9Wp-Z4(B+GBpCPeUSFQ>8_sjb{?Bf=Gw@Cf&rcKMeX8WGlW zX%jIaY)ZJ4I|6nA$6w_KkK@-5vki_9JXIW!i5t{f{!@??Z>10jw{qHUC>$;m$wbI4 z>~(bBJH>!=!+)vhWxNcS`7RCtFBGhdmxu^Y{_5Ab0yMNQlVUo4o83UpLHYi&*ed-piD)RKlPnLFJaj?!tLq=OdRYvu+rdJ5S6z`&XdR1 zaXTWw`HY>u^$)$2146goC?T?ARw9q|hTw`W&t6saU3l`L9vQ9e%d#s9N!T2R!wNiG z;-y=XJMaTGaC;R7@hF&(<#E)|pmd9-JUSXY%1bFFC{`Vv?UHA>cdkXUYDaW-cUX2A z8=H}mF&;z1+HD1qLO7{O|^S(MwLtD4(=x zQT1?I> zoxtVq$AkHdo(*knFCuX2`hIXpJ1hBy{eQbuTCUOLCjRu?l{ZP6t&9R$;w zK7~OwmiEU{wcOf!U~pJk|5~(nc1MH4s%B>;rxj46{03+cYBtTSaq0>Ev9+&F@nr+Z zlPH$VXbujI#kMUw z5Mz5p&W5mY{eA-WHe7JQuN@+cmpeP|F1Rz=aI7!K+^)C7V*?bB6e{u}LX@TYnHuoz z-o4egsQ=8*yw`Tes(?KGX}@>KQO3;reB>jqiCw$4N*TK`-uBjy-y9zdxhm~@+*Jf1}qRIB8akG!AU&WA>1+|$`R_s zZfLA{cV$D!6n4OE9|q&l12+2;9^PIuM4b8uf5un*>l+#n$ovgGNi*&|@}6|+fhr4P z)l+73jE9UVIPu5qf~>$?{OjLfGjE&IJ@Xbt2h}mtLRsZL6Z|94B?4YHi#GC<&EkBw zNZ_X=!66w}{aT)kg#rMr8D6**hLLHH#LIn^&J#Qq9MgZHITf$0k0^EGL!=zg+ z4Ty8HC#oFj&wN7oB^87hO79bJ-YNhn78jSj2NMOt(yi(&Wx{L?xV-nmhRkE9gJ08t z;y_u5c5qpVVits@M+niBqe`y|3rzrFGrfvZen|;#1t);l^e0cok07sa*^^%>f21Ah zXO#_rTbYd^p|1Z*8?z`J{fnHz3X4^>_chs}gi(&nP0w64ccx&czf@$orV(2BRt+RVf(y6XOqCCmrSrB*bGCuH zGRC8U@X%%wD>?|H^iW6&i>2!m6-s8T*ziwk9^Un>L-hx-J+5wPXm5zF-qx5~Ymcwo z+!3F&w~0!smT%Xf)|f?Ll~6_DmmF^SG-YGvALIsW?E!z&kEw3zE$tXwc=CZ49@Be7=X-O^KgmxSr+(5K;$Q`C|))~9w^fPw(D9WY9`BcvL^j(WyO87YE)IvF+z%Uzq&81MGKt>svn=9UU$4;SXJL zh#*ee`kmkT-rA*rcLxwI+S-1+`l1u%2 z{Xm>@$|fr##{$fx?B4x9tFJ?W5!+9G@)z#4ix1=K^Rn#kba|D)3I`qNBgND%lhScc zJmVQ}kV6WI2!aOjqau(12s;)Egj*cYf(tINJPV3d9kO5rC>)zsapz>v4q``u2dK3T8xS0hfjTU;y zFCmoCX2Lr-!i((W9qHG!SJoDq?Ox%s0BpbVA%8MDJpgvlgKg56ZYUJB3-aU#JDwE! z^ym#b6q-cK5;(rIoUj8~jtt`gGx6mpIdS2SGQex@*&uDCF#UnUCkz363&FDL5Okoh zSbqx?yO@95B<1!a4~p125`kI)&2KbLD|TJkioBK%i=s`4US z`pbOeKp5^@F?}k^dfE_7>0=ie@s}Sf1FDPk{W+UNp2)8WD|x0Lf%9MW3q`|qP4#{m zJK-!F(-~-oM$<&S$e;%3cAPvFE^y{dLZ&Z0R`spe35f-9MaZ%s1t(|aR^dy_g+<;KibN<}=9B7%>Xy^2FepbXk%J=R!(P5gJ7q`=spQpV zus~?iubfK!RmyR7JOz^Oh)esgOZ`EQ^#|VS3cGt6;=oL6{MT*m@%fuN;`-69Xl#*^ zA>{1ZX?V+bdkL6v-0yy>2qk3IVbqqna=dVBk&M67t$42DNtTv*PF{Ag^pICwA?W~XA;X{S_-RSZ$M%@o0+@G!A#lE=&b zI2=28c4Xqis-)LOEbUi=7}7H$7xxAN)!~*CB3e&NC8Xu#h!cOSa=Yh1z1_9zwJ|a> zFW$;Un%S`xsK1r`?f~t(rDa_K$&T`l7yTU#P(XIAfnvD!Qf0&e^}tig@LBO3DIbRQ_znR! zT9#AOT2GJX{=f}ho&syJP$yx5-VIJ;n(2TMLL3%WhC)H74(c zmJ_l_5gZWH};8#IIv5+JD8F01oF1Z@rwa*n_KbbKK;oUg-znufeBXvDujrb~6^jA<|~L z9bS)fU1jZMSA^F?Iyo`2EM@W%D#ZhhPM^yv+y1g={jtwjO4;zB%y_f9+>BQb0hPV3 zPxPlK4D`X7{DOZS4|W!~WwK(VXqq@mm@?HLcX8=ocv2A}&vTR<8j`NWmG~II07xTw zibvAHg_&N)rM{Tzk;nQr#*zrjy$YrL5cZQkfbw&^mD!IfEbkPoNss)>gJ%}VNBm}j z36zBe=*Teq#&TQ11G(nrfgHQg*GY1mB;?H?vM45iaBmdMo(oQ}QuW{<9 zxMkh3t?9%u>y#60Yi4**J~D!|&N3Bl6&QF|tC_FMHr=qUfQS|Lux&(Y!}3Z)eCE2= z__wRtW8Vxbsk)-STS|t)PzRfybxyp_aR@l+mLpQtj(k40*HB8c%nQ0&qNA@RrdAr` z#yzVsw5(2b13)07Pb8d^ucjoFat8<*L*+*>W#+@mhu+@vQO$gm#{R%TRT%$mpL-{F zsiZ!F&!<>%!dcF8vG;>nEXtT=SDo!S(}g0ty3FiXPIq!k_`#u(*mqzs&OBpxJpQuF z;`CE?dj0J1*pwJvi|V23L~FYlXak*WGczLsHcY85!SJAAMc;e(-tHNfzP?_?ksH%V zZ);m?>>nJAuYcp4v3GDt%FY4#-4_RBX1@xJhGGMuH$eVjs^bZqgTbhd}<}0 z^S!SS!`mv}*sq>~qgJzH(uZCWTvvwGqurK*?7|HZ-H%Z-6nDOdK;8Y}AAXz^`o*~M z#=)4LKJ+NzGtb->&w0*;)z@8zxw)nI?ce^F>MI5NU;WkZtiFy7{_DSPjX(X<_2pJ9 z!Fu2OemqV*QF(O?@V@tbS!sMv+FMelSd)>k6EALPF%2$3hzUO-$ zX?pJwFtfG)SF;S)=Bsiou#u07GjYUZ_v7?DIiCNro8rCyZ!`s`Xp*p>%WdFEwUBi5 z{L$(2EqB-tT{!|`P0+;&alyiZqN(11xw`luzVK^hg)rbQVfD_xG+X#Uva$`o#Fug7 zR(K#ZIP8W8S=IukJsGRR=8__;pk2+O5>hPu;9H)G;KHYIDS)4v-!!MdiJkCN?&(JY zi+H<7clDR=q@&~okMWx_@{3=+Axe;a1CWBJQcZzyUS*WzR*S4R9LtmsX@bNB^Ola&k!1h6m-Xqsn+|d5X4x zP+X-4|GAuKT{tbuA#s5fJG^6ukV||B@-Dv$Zy6Y5<^yGctn|n{;fP9#gX^cm)xXA1Oz*+Me* z^6PJfV+kV7fMwrvi>om^zZA0ztejZ(AV8ibMIMo+q>cEXH{%vA)p_zL>nwg&^w?Xr z9~n)hEKRo}#N9Jz;DlcJa2>I4+DfL)ORn@G^v-|mfkx_!%OS&%Z`metNj!=v`)P7U z2|w%fk^%BAKshaGViqoGH3gL!{BBG7r;f5;$s6#i_`D~?@sgjyFMlU@jahGi^|nX} z+0+v;F&FX4Z#Bfnu5OB($C{=!9N^6famyXVuYv_!x z?`euJUAr7xPJOJA91chvNAM1fjK(kHilcWqVwv*m?q*3{dvtfUdlNbvwm9~U*^SoLHjjc$jE~3U#H1== zdt7qyqrCTry&#|c>es!r1Uxi38q>Lr<{748x0MRWm}UIV^W5D^&W{wUifg&&UuZr z{*J?OI97Q3AODYt(Z9(Pv{)?Hadf`A_Q8A~Q|L>%`N{NRNt7=RDqiSHtKByH>^VE=%R*A%)U_%X0zVMCUw zc#s@~i{zn1oj8a^e{#c)pCW7#ukG|EOv<6654@Ft)7Y?@GXP2>@ym-m$u9x1aB|qZ zEWt(bL7USiCj>F@A&4O(AP_k?-*RtO9wsdkd@2DNS2-CE{%|L*GFolCxSRe;u)?wy z#^lK@-7RckcG%40#3Af5w;*ITr*KBUf**uIr(NVa&9WnYW;KY<`Cj29yHTK6REHqX zP43JJAWVW2Hvs=hD{tyS<`clo2sBf5OgjVu`p7&;J7$3>3%+Gx{1%q!M;#>NV89O) zS^n!lny6b)1Fh6&WK^{-cah~v{R2O=VNL~^$I&>R^ryG% zy}?@1GMS5#Q)WP%f25Iki33jxuLw zM>H#tV}NeGMQN5HNtXk1k8zSH<)7QD>~JKnnc5Wn4zb zFMLIjgKGXT6DRZoVCEbDeq>?g1v@kS%me!&3?x?R$U3FmVvm_D2;)2jFF)kJ3|ST# z4{7JaGM2ufiDhX^iYo_z@kd~JbH$5z?3UbwzNI%L-$#syg?{12h)-YJ5Z4d4Mq_Kc z>^ppV7I(q9o(bR46_8eGKT;AJx;tV*%ExsFI^*-#HN`jgF2_?Jb7TbsAdyr!*3nH& zP3f7ma7W}Uz2a0PmR-Sgj>AI-*vBz5zYr5rDu>5LVpvKh9RvG#dR4*L_t7e)vPET! z;Lp-KhZ9p79-fHa-P_|a&w6Z3+;AYK_Kn2a!fH%1l6&g`wO=%2D!nTD+-$6>ZnU&@ z#H#Rc8ccI*ryC#*g~nAH!Lqdfty{OnxffhuMwcy%&a%mj<};uAq=kS>E_t*R-j?X= z>yPWM{dRo(6CaJf-c3@VM&sm@PKm9X2jbF;9_7xAM)%MHa^yHX7{L2Q#{WL|iqtD4 z?#;w(*|^?*z7&yD^Jzcl9^bZ3Tln1PZjdta+4$fGuZZvXjtk&IT0%P7eDeNo|OU$yibBa_UYNV3oMlK#sRRb0^guS{k6&;qUh-9S z#A&zioNjE|2Awd-e;&(fWmols+x1O{!XsGwm~I6}xh7u`C^7p~HpN#ITJRC4%f|{@ zshf1wic?j|r(?+s*$BQKX{Rmdk8i+c{Oj@ZuZmu9;nRB_M3b!TW+g%G5~TwL#ez0r zly>M{ZwrZo7(7EkS;}m89|cUj!dWR@vhkl#7!PhJQ5-2?jNntg;_g96gt+7O*x&C%808iVs4@wGjj@zvX}`WFA!TIvz(`C^&d1!+nwNMf!f0u2 zQ6m*&Yi`YkK%H`xDNF?B$P&LM)z@zC2idxPt7kT-b=O|??byG6ul+zvHb^$rF2vCA zf#~ey9P2fuX)@;KrsD@*_>vf4IhT~4hZg+*r5!zV(pfu6iNNttoV_3m63_?)2-WPc9F@+kX9_ z^a}^~JV0N~pUi}X_CkeE@B$xsK`!A}e;!4(j{=;YlwoWyToyWIl`|{NrVlrMeYXiw z$sc*_SRq07#EpOtokgJXpY6yu`6oQ-5E9f^!kcz**e|#Xg2=#-q0X?UMdE+^F_1&a2Q|82v;0QvOj}bwiY%p38$uc0xEK|lWI4saB z4(bC+BsXVc57@ux@Fw^wKR`eppjhSX3NvLWS}EL<@8omNxDZ}(%fh4R$}B6(`bGgE z3-Fu$Daw214}Ll77VIepP!AF6l}^&_xRXfS3cgf=DI>*AV1@AVHn~F!bVDy?gy4=W z3BPkVzH8x$SN;j3u&H>Myy{I}$N)CwD`i)<08rM7wB`;S89w91njA7NMPx+@qym>) zRZf_p7UgFVdepXD2eFj9FDo|^!cxAOcaFz-lGHFW!#R7k`%l2BI31P;isdy29NBi6bsTwKP;p+tvMKn~plqO#@|be3rK^r}$W8)I;`DZY49OMK?Kmbi7SCFYk^ zDb%2LoqXpPZ@Dl9C4p4BawX-Ue__~>X1?LQDR)6+3G zGwX1VeB`5I_gQDfuHC!inrpr(g=9}`+kTQ8&Vhq_qPM5t47anRD{i{w#@M!1G^n9a zXOF{!4IVmW;=LjtACBj|__ZQi3NFQzoPmIUqX0i7X`lV zbsvtO`l-LQ8KLNtpM0$kv#5uA-e0KxjJzje@b{GW!|Fw6WJMRhpPx+8wtZ@gV0asX^D&unsIFPYw!yToCXAgENjp7H#SSaXVyR#esIrDzX+VXylhH5 z4%WlBpQ<0lFAuX1Hq(a^AAT`9PTW(dOLOu}(<{pqRItxJnWqR80B-etbN%DxL*9=k zfmIQDi4OQo2eB(l5L_HKWvx{i7)^IPxKwlz4yeT?2hTR>8+T~6Fk8|Ge)zxQw16uw zwe|EMP&%z{SkQ)o#7!Bb%x9{w^}oCmMaBtE;bDXqyiTLz$h7cSF0(1I_{dzP0rE?D z$Dz05#h-p~W0`r*3Z!6)Jyd61(c9tI%bfDSFWS^t<#F4q=jV zF8!hv4%sn zBfMu`6}rG(W(^7yL7&=)4qVz4VcAQ;y&1$!JT8YSj~!Nz>$vc{&MF+~^ zla=GmxcT%`;VqBrJVfEw?nz^<{qdGPZ=0#>dY{%m7W*c0+0_?sPUR!X-~vw3s5Zqw zNGsbeWCn=uPz6MJ&n!r*cyDuCL+qb!j4xc@6rZ}LC9WTC@f!S&RxeqlZiN|_iM8IIG>I60p4>?g)WySK+TuD(^m{*){0qLcs{D4p)Y;!+$O9FEbc z`DovEaO?_X(e zYmeNYvLq(67*kW@(b3+ev<=4Y(@&57zCJhh<8U1ADg4Vne?dyfFGX}dLQHn2dYnFK z^Adj9tj>dS;?uMaL`?rjDk431P2k@M=bn3FJnUgR?y~X$eEZw`;;;Vd3)NS|=FMGq zSpm87%G=@}{^82%E8=<2dxU8^5^%4_pZ(eAtFMSxz3Pea!WTZO`nnh3_MeOxen-T? z-_8@vQ2czdRn_?!U@YP_O}(iI_I^h^_Xn3cMw_OXc4bzY!x38zY$Lp z6Y@ZbPwQ*KkNA`L(wf4s!XP_x1ixIeLC5V)$Pzpn)FFevxuq>y+SCD?4uk{=1PGE9 zZMD8q0%Z!<@*`x31a?y-9<>A{WO$}R_RA7Xh(9-zuH&hH7vZCPmv?bX;GJ=#TNM`D zOdv^4w~D?LR1gSLcmgx_fWubdNE1R9Bl#AGWkni2TCVVzi3j^kBlOY-kbVhmI0}#R zt441MYO=7|(aKl^P~vz0fuJk5B3J?@3I9Y$xfP*RmZXJ~l9C?b7nCT8yQYBfm`1x~ z-VoZJlV%H>2%|1Xgf{92F<@4Hpm@kF@q=JJKJp>^sLbQcbLtq53Ik5jyI$rd#K5cw zNrDzI@V20;_z=>$jXUwG9Gd7~bI*(8R9NV?QlK#28vqXS#!*!9L8O5EVAjUv$e;3C zm=%w_R5b7=D<}f!XDQX({9??_E?D8nBYIH)M4$W@MS*@F`~b0~vQgz7c=@Q2BKimm zow!x*DM+Us_?@Oo=}4s|an;JEGUFGyDBTqYrwu5MT>b?u&_NngX~8c54glJz-((eb zY*)Yw1Ggx+v=%E_Y717^y-Ut1z$4#`nICsr^>&| zjJxdtd*R3bg3LdFH{}UUjVq(^#hY^GgZ&=`@RPFH;T4cvf|Yem%7r?cfjmNMXrduL ze?xP8_U6{uH{Fp(=1PD=+getFpZ3^09>aSa{(AyUZfa&W#wNyN%eJ0)#6{;xiCBtn zT=|U{A0CqkB?c}9Vpa@emCB?}fzud;n>6^cN+ELa9Jp!pS780cj3by5u>BS@wKmA;VHqvq5ZLA`$^H!(P_nMMhaA4&w!Y~LR|8Q3**$2 zPBPOt4#(lXg15irMe9qnCO@ibJzcp7T29K%>RfJkFYFPyD}eIxgFpDE)mOxY7w(L& zfBp5<*RcV!8Lxl61pNv={NbOz!*RNF+#Dxde~BV+cj7xNpmcClGAEHO?NNkfnH3L= zL&}CXldHq)ywtNDKk+O3%%f635}&cKj}kx_c#T}D&Ycl>ck1Ff2r+c)2psmumv|zu z!aYR`b1^+J67%yjawF~(%-nffU=S@xdjd936E_ECD0D0?EQ-UfMhi^MUc~Pzp%P&c z|18rneu1^F@Ts zPN@CX;wbC#6$WQ!@|k5p0rB!;{189H2&aq+n?io(5fp$^Z}}lFvCo#nvuV^BgqzS^$+Tmz5+L`Y6#5&*NzRBDo-L9c zcql)}Hh%0K*E*fG2SoZwg`YY?TuQ6ra9JyEtS~!&^bm%yn6OK7WOkyG#sZ`j`t&kR zS6cz7v7?4k&yjN!Lp75jd&x}DE^cES1oK`DKg26f75%tj4^2S&$%sn%^9dHr4qE}f z%)_ei1xEsS5?{T&&7y(XuG{wA5H}1(jL(w3%7XwuC><=jI{Y4x?}|0fbcPpi?pL2D zC1h0n;ODMyh%ZV3*+1JFjV&FqrC$n&5HPB;ECuB0k30NDgva5b57eJh&Csmbc-}kE z5$BwHx|o}^+%H`j*I#$D%q`y3y}H7&yvyp}m)yb3sez4*jK_i)dt3k3Sdj7plVJvp zr3x@Qn9AznO7xt1Qe5q-Hxw2I ztV&IT$d23HlWFxxR%s;qU!0#aGv)-Y@A{taiqC)HGx3Q}{Ck{u!YMI1ITro>TjZWM z?;kjLyVK0QH79J{5-)h(^OCt9hvRS`!`t8X@`w=${NA*FlX@5w5rkJYw&u+_YjVoF zQW2@O%=-@B_O?&dZYBq~IPha1U*D8|Ebx23_tE&JU;1G6b;ms*FMjc#NGbW61oHL0 zRtRsedCk+~jc}c=P)oX@25m zQ&kqjRp2KGq84^+Fa9HkVrhOx_DVxV2RzQg|0?k!@+>=E1QpXIKkzS) zf(yS-J+gfYyX@hx5GFGMN%GUA85)QO9PsK4Biy|4BL4=xutT5*0eJ*&z`qhsz(Iy3 zUsjs&58XJERz0RCgVn+V4r;0qn3QhfQ(WF;FGnsY1SiLX0(ikc`Jk@HkV|Yxk7Klu z=Wo%3U+lp_UUGj1>A?qfyzyI0e}=Hx3ZwGf-$Iw}@+0S9Cx$e)OP-w5jjIiidm$nQ_RBPv{^Y z5Eu!CM+9j`)X7uI)ytm2#~V8Fr*dXb0{3-z36#PZFEpUAh%U09c(6x?Ku9$q$qhhohU(`_)euwUi86U5aM$vXxATfkTcE;Q0WIhoLC2L z!jRtFM?(I{4ZKx5$aF#_3aRqZwvJx-&~EM^`|;M|puy#m&se!O4g#Zj=IYV?zv0 zOMq-|@$p%CpvG=Qq(Mxn}*HIr9XS0tG|71TzTa;z5cSTz0D1u(FRVY$q^I@@U!zVI5ZkkC8S*J5F>1jslkz$ z*f%I9DCT2^p{B=M%!(G(bIJ*E#-q=S_Rcm(-`3WW)qQ?BR-}yF^o4K5P1oP*u-Qn~ zJd4r7-Vl8krknzVn5LH+G{%Ay5O-+uvw8Ct**C^*x7{3_T|F^4xIg;)2GlXPk^C4Q zIT&3Xo!-QE-ows}GfzL=%;Pv5hx-Gpgv?)+H?1=xGN*TPX4PM{8&1t?KUy!XAY^rrH?d&lApZ}^vZ$2&e%xg>B; z$m?GBJatekLAtx3mOQ372j3F0aJ>?P;*qlu$>dVJ^YOWz7khT;Z~pVUtO%H`z&FhG zD!vFqgICJ2wroe=X$49-0B`IgKF*iLHb5mn6qxbaWaLmum#4^iVmlsWkXKN5t^@jxt6mp5v3l+6A zKoxfRq%|9|;i>csuvbxQ;>APt#+ZXeWDaI-)=qQ!wP*PyFKo1Z5n31pH!-FQgo;m} zo^2qXh*$Nkn9EEB{tFJ?X(E0i(H9%;g&RC+r^jT0PrrnbpF9yr4g?V$l!ZT_M^%CT zC_^K_(|@378k@?o@-O^EVMPvm@Kx^EgF)n5z^8w~F2hy+9mYWvb1DiJ{0*5ed~pdO z;WMx7RK-ErSp2Q!N#-%{Omor?AG6N<`l2mi8|5idNShqh;Smw*M5O@h4i9 zhislF4&T=yH|lB%&3F?n`cd@FS1NEpScjnDOw89+JP1D<@138H2J1PV$oa3;lqC$e!7q%oo$A zSe+(tL%-glK=#W0k{ywRcwBq!jdA?ZdS!t<6+4bZ`l{dJTo)rTi3n8usM|x z%x$W}gM<5|X!phV#Ax&>A3EAQV`^$b@vlX1&p?cg55{w!@yyu1b*tk#4#(mCgt!0k z&#MA|LCpBiA{NDnSHzS(8zNxTzMPuX`z$FW=SqmaAnoq~(5?;~n2dpe4!7r*zx=P_ z{qO%u<$Cw-*?8@1KM=qF`~Oybh3_Vrnp%p{(Ygh~0+w67{N+!$%X>@?frD>|nEHgW zX*eJ9%*)wIM=4-axo17L1~-+*rtgdY_qhwi8*={zf|!L%9)+{u0iQxLa9>;DQiq*K zqGHB-;brN+@?5qgM0x2a+i}SHKC&guU z(laPi;!RT%!%|AdV^#{uf|QY!BVJwJ3k7%)f5jep0>YAS=O1;Jw98ii&<>VVx@3ig{E$EVInUuKRhim%6}g-gUUAw# z_R0hO5URbLiV$tDhtnBl70x&jt}dGSf-)xCXFbPx2# z^8BLLK6@Rt7~R6uoR5)YI=7>zD>k1b<%q^0w>5R%YDrd>X)se0GqEr~AMckht zu;|>?(Y7e9il?`yFFHGWMDISw!R9EDWd&q(^k96a>h_5{cDSA&hvV=-ft8W@Ya?dA znn%X6oXDqVsS9nYj_~ccFqdX+Uq3eY?!fb&`_}l6PhA(&)AN{;XNgU3Ln97l^?>|4Nta_ z9|v$aK3VH+sREE0MFk;xMf_`NNs0)wA#)S4Ff(Q4V`BLBm>fG0vy;Q(t>SY_3l5Xv zR$|FQ1cFEc{Wc;p-v~98$mCINgdm_^xFC6aJG{+=NMhG{w_TMK@=118cmUp9<(xq7 z2(lo>jGK%IpLj{7B?aRG7P1YQh77AWLbiomxhTIfWCb!HJg4x=K`1GZXFMsmLsQa9 z98F%DMpT4pk+9z;d516--0`M($sME6gFoD5vf=<<@a4%_`cyxJl2!J7xQ~)w$15{< z5xqg-ER~C2)H9VC$Cgq*Oe@hiD!vt#Pvg`#xD=3wRN0%-oU<@eAncDkt?)pnJlo8p zIIJiUm;8{I*_VqpDdeP;I9Jyg9IWDTev==Z0>|KEnYjZmagpxKbMOI9zx?veAF~&T zvo3RJ0(T4ankdMU@@>^zZNfQYL4IW!rJStDHqPl($Ri|1-mOqzrrM{yP>Bu%Y}aqu zS?SPwS$Gk?0pcZ={KP+a$nPAu6gJ@_AHbU)O{&Tu+lu1EO?gL2;7B@&m(AmZ;jR*B zQtbM}KX2KS1$ZEHK_c)nb8r~<`a{{Jas^P22%@r)1tc4{ESvNV)g?cP7o0^wG#!~l zD;0~-?K+pVQ1(i={W~vZ=Q1X&;-!uyB>t(ndHebJ*KYUsMj+0^DInZJ&(Y-#zxje# z+dmrdl^Y|zxlcmq`jT7|UUshYl+0O{VD_TtKCkk193C1#g;|T?j_FwF(N}kugqMz3 zVpB&)d-QDD8rwU&Vr6(V_D)R%Tgzc4?W$nQdxv7_=AoG1HyW*M3{!xN{U_~+&c5zgSy+m> z>6utX@t9wVnTbg_jg%W^NIIjdyHi3$Q!GhYq49VvZ8gp6kv6qNW~d-P<1n z{afS4o3DmA`pTnx|L6bw4xesycP>Xf1Xxye-D6VuSmACJ_Egk$j4V&{C6Bp@|BZk5@aR<= z@9N$Z?QLB?t;$EAqI?hn!K?~;2o%O7UQ*zWxrH+P7a)!7>V(by)iMiKc>fqV{T?V<|fDGU&_jYgaYJ>N|7nR zrerU_(VHY8s2~I>n&ibKrAkkZWG9#=-1#t#2s7j#7-UuPN{5tR{_t)8{;IPxo)mZx zbhvfj0+vuA)TSVxOHSb7DcCU>%B+C|M}4=nG{zE_)5;%ym?U7&!;<6@j)O(W>FeqC z!6GSiO3)z=g{STz5CfSm^*MSm*vg&>kIE{8$Rh;wcJ*PD1?gUpz>Vw!bgA!bLBWxI znf)NISslQD8#7uAh(UiV17q?>Uht}Fn{Yvg9%z$Wi)1WcXsJTsghneX5(rU}*elY} z&JyMHOJ7Hxl5q(B49D?Z-Ki`AVnB9XGTy*wh!LsP5hq+YX2B5KC0qK;C$z|ki(v%t- z)YhJHZmbKjbSk!DktU1>;;v$)F}sY^~XqEs@Q`pswU+>T6bGdhyBxNP-GaV zn4g-7#o0OgWt7B>pb{k54Bx?wj#@c9ggCgQi4ifBkooy})#cXc?cEf^Bm2ep#O#&M zuFjsAnVmK>?U6$Byk|Yz9Zxp$<8T}vJm7sIGoQ~rB2yn%17w*|1>H~3^Vo>ZuaGpg zrLw$xz(s^-pZ&koX|%>=k3J=y_xy|R@)D_r2GLppeaY(TyQ{Bz2%Knj+m9+AzAUD} zrH<= zTRt%JW$*`%EqoFvjb1+%bnO*92*7JGEq-2Gi>?QL4IalW+{8y*&=2lB&5PwN5?15~ zu^0scTIdH5thh+FSxU;()U^8t`Vf=?GL-PCxX51lh=5B}UV6pIzv5JErUyDm8@HA_ z3gM#9b6ol+jkvU`FF^@G@$<#Gs*@|~2iw|G(MI4$j#}bIe8rc-yf7m;OLQ#vj^J;0 zP68hU382}_#1s~RlD-tB2jzoh$_RoesicXtfP;f!TIC0~-1mW^v+RLn>P-sFnKpo# z8mK^lLyD#ETa=>JE`?=9ii?#jxp#GTc%wA;dd*lU<$}3X=2}HRCuX5=afk~7XJ2=Z z2mLrX6B%Li)~za!DJvVqfkHH`I?BOD9J5QFa$iJeM;;0Tom?`w7(o*t4VcZLHRy0F=?8q z>+Df&YZGqCALKRVPyL{wyH8heUt~Gm%2%D}LZ* zmCxhw&;ltMjbkx8G#owZjA`6!de4dRO-m3LEA+ZtaXV^hGB#C6SSFLPKJ7){tQB8S zg`Jz5k6AV7$;s(hRwHFY`h*)~0+qFB`~|S{h=6drmKXQhOMhy7)VJnVQ3NT3k~@lr z87WLubRbO7nEE#LM^}HhFEDg#Ga@w^Xc2zG!3aSzGd<(cBFR6k}Nh?bBDz}Jhu1t+jB%~=gtAO z6I$%C!T$Xdarx!H5ge_{C5V6g$KM|>eBs4bX6_N7c-;PKrTsdkSDl^r#?-Y_D;}F8 z+RjiOJUagJv(L8B($d_fPMiZX5QbqlcT7vMJDl6Gz~RCj%0tA@4#QIF{Tw-N{Lt^F znUQ>tTuN|RT9E)FMFd_pKQ|SV<0G*=FU4bSJjO@&#*CDbiLs%Wn;I7e_$C5y&IW)B zp_XV7HmE=Bom*aJrnuWe5sDAOl;brW>vX0tlkx%l*8&v2z%K>CgFkpgZctEHA)*oO zgh`Bf-^3h(m;^we2x8EQa7CazQdr?k4>qEW&~iqYhI~YQPC+DZHg$K|eSCUB%9c6< zrI$aB+jS~Tp9J2fR;3r^PS|CKSLg=#O@W_LWbz8Zk)=nZ51B}cn#@@+C|tRp#C@F} zlmdg@5%`r3;Q^=9LVc7CcnetAlYja~-y$zNW)ir_ungF-FT;nqC>;J#5Nr>2W_lFP zbShm|ND#I4KSKYEAB2A)|G7w_+WO0WW1?weIq)Baf zmL=6I*eSLu&7{|}8_KM#&$81)KC?%q#B0S;X53I-7vx3?$wT>2SxP=odA5lr@{Mw! zW^lKMLMl#_z04PuZW^cPBRqf^WtKFf%vk}Ee@6RB0VWU&^L%6F*DXsLKT?FCM2`-@Hp5Er4%^3DPdZ`d2^2m&;xF@#E!Il{tN^ zfAg%nDHY-q#COH@2mB2bH-P+M7LEIjRvSBF+dx-5Y-f8s{$Xoz`exB7KkKR400j~6 z^^8tJU;V>B;_u^d??EXD^7!5Y%C1y4N*j&3xoJrZVBA{&TC_$-Uw6zeFT~u~M9lUN z#Ih<$j84eA!m4sDOT%W$Y|{#iFqt6=$oRxWjEqmkl$4K&$*EYFUy3dKUUIEgfyqzfD2~qXGK%@+~#|WIomDTVfoi@-vm~JpeY6->QBF zg$u=_egI2Aw7;npLRdpbDjn?c*!&~$7yo`%w6=Ac$2Iz7E0!A|^d(O@5)^&})SHhL zlE+rOtPbk=xZU-MP2q>-1spBjbvFWF*4uor2qmkYMi0i4?3UQH&gHA(^@MMfFt{LvV``R>SP5koh@`(saopV1End1LKTTe4L>7|D z#RbA6Od%6sgHW~Ni(R1sTD!X1^_IXcM+9B`K{IZdk`yet>!4KvnwRmaFJeZT^Z@W~ z#1q!i)7L0)v`Y|g)icYcRRPLDkCcshDNghOtI(r7-_qA3VUlIRbHPpeEGg>j>@=MS zhS|j^ZV8(xC5%EN{55*%3c?j7M0qMNly>?Q1VGP{RKWUsX3dK*M%mKOK)vl8UP3h* zQw7cj+e&$my+^aF@Bp-%HoXyE+gl~LSr}h%KGQc^0mDD>2_gC9Px;3ZOw2|w;D)*6 zxx*N@;x-K^7D|tBE-O!PXE1Vhc2@SJBloqCE@*X0D=hv%Lz%g6RT&T$GYiZhw6?bU zXzc~jV{u(+k%%op6`G_JDJ(RT?sB=IFFKSR3NPuk0IZNiE0q3d$6X6f#jNG$=Fd0fJ`gkKi2QD z_ux(o;_d+DrLtqhhLIFl2@H93Vt=ftO?F7YZ{4;v=Gs(YC&pvw8@I*E6EBOon{HG8 z&xth(JGT_wGN0Pt5lxJqsKU{pQ91^PM`L7kOv=c#h5A;-*V5J!Gg2O=hQ=H{K+~d8 zk;u|ma4PkRH&80DXGhd{x9&Pw%&osWZj>AI;k{_!BQb+R6H(e?PJdh=a@5|4jNB*umEfiZ;;1O+ZHTw0uqh1qG( zh)hll$N1P_jF0S(smYO;@sYmco)tluWm(YJ_%s8qDNwekhiF`l9to6;o-;~|pr32F z+r{Hq0$b%PaoY?HN0Je3)NO{lG4A;8mLbtn%Q$eL$ai}IleZ}d;7M+lsyjxmTu8kWFm z0WA9(b-T_R3uR6x{t^Dw$LW)>;Ghj7U^X?&uk7##Mv-K?xSpiK zAUYJ5?^c#d&9Ntkep@)CD6@pk{)L+~Fzd>`P6i{m3k*eb#!LQ`vlZPeu_8S2l5ZKm z9Q8jlEBU7yxFP*yaIT`rI^c3sdh?CKM%!ufY=`&vkoU58&Wj%M&k6%MDqPM!r4>8l z2b39BOl41+XcL4dEON^l122LSrqrK&Lw44?qTHYWVV`lOqT;aNz+P|6B@M<&0MU^& zWIeT8<*%e2$k-yTym8QP+{i=X;K97S))L*Ft#R3z?eWZuy5pQv+oP{llrE~RD9q~| z@=l;cSm4r&E~-q&;obrY_}+e~xKu($0aundxdLsR&0S1=&&6VYTP&S@Qp}utMogW$ zJr>$jC3c=0?XUd)SUzJQnwG^}rlw zII^o;kjyH_qhUFE3>%>4c^&`8@RU?`H5Jql8D?2C3hs!rhP!4+sQ;vHJhVY6 zQQ3d^qqoO%pZ6GWaU<4PmZ-jt00N zsT$RXy)!((QRBNq9BLDa*y)DXDSzOFT=?3;@-vRk@9dT0&=Z|K{n69EC3<={MO%AU zG)W-y`gTT=iBBvS^j^jy0SLj4845Tf%X4Sv=7VK12=PtA&x{Ed)*+zhOcSH5EH%lI zV;+PsW;W6;m+XR*(QJeopSFadN*KblAEgDQfcKn)X!3(uh;}InJ9nNCqvI1^i_iW= zW+CAB?NUy9dV4*R%}fby3+g`*q`SMiJQ~dMT4u+Xsb5(_$V(xxqpe+v$D#+Na;NucfJP$WTGRNnkk>uPqtM`A42M!%Ey%8N8gkW zK@fcLqtZyC1-N?;i!h-Cc{#KK(;p+O5)L{jSN4#$sc&Up2aC2EQOtyAP6{3~Ys86S zN4)GWM(CbV|IIPGUVbI|^Kw4Yl|nOh1DZVJqB=-AltErf*3;P*EuyJSNa{#Bk!q(kLLTgZb3m^G0f>IXCsZ^?7#ahk~;O#Z`NG;-Ju zGkFYzfD>A?tTQcEc10KXIaB~_-s2;G6fI@RUK;OFa`_|UWLN+?$d7v7hS@SxMI&-g z(wTJ)APitSt1$S%z0}9z*E3`CgS!a^pnGcT7Chs9`L5XK|wJ`>| zo8t1_&GFO=TjJtfZPBf=X6H-5{#Q zpbxp}k#`tdc2Et`+R>gE6pk?9pb<|^Ou7-%DV8Zx63*?zK2bv*;WMA|lsNyKbKEJF zcps|p(5C)4+*7d9uJ%D^$1)K{aR2&Go*FUszVNN;><{4F&E-}sBZKbx+Rd@LP3uPwzyE8$AVE9Z_#J_cvN8(pN*gac^UmN{{T(juqtR2` zHsa^I-tI{8BcPCP@aN?f1pdWXnxB>6HLJQY7qhcdF*`L86JvuhJa~JI4(^HRiNTne zo{kwG=gX;762PR)I1b@M=*&G02-A%8GSZy!;3qe7%RhE{d>Z{9nB zd?_KyE`WZ`?n^(lo;C}92wZYw^xYes)#o5|nojv)7Q>seC2*sNHmfet9@d(qpb(GT znGM*!eY+Km1A|KY*qCsyc+~vF?b~8X-!t;V=4dutGgBb(O7V&?(PUvu?F__R7e~+fyEl2N3QVs+{tCSgVDP7>=AuNJ8iW{jX9*V38;k0??r2sBl`xc-O`=p~O)dKMJE zLyDz0(n|q_Hu85?@z1lATWL{|$FlG$V_cr>2jQ4nmuXc#D3c7f)|4XIlef9_o7tr< zn_U;w{=BS8exZf3SH{?1)*mH~$3PyJU-FavIqacXl)s$yF-~fw;;rWsn4MOAi+Y7k zJAiA<3dlnhT;MAC zB~_f;R%T;)s~F*pZZmmI2!4P@h1 zC08Rb5Lk?C)6Q)kY2c(0I$D-zp?t`*8|M;hW`zRtoH|v^{e8V=&V4<-@r1`bMjcHu z<>PQ19?DQtK=el7q{Bkknv>A^Pak+?9^E^CO~mwPCe^Que zm=6HluDEMAzt`>Y0GRP8`#c7|FaF{)&z2C;XTIPL6p1If*&U#CumuWF0qV`bM!&$} z>^8!&_yJ0M_}>^ea0fd+H=rhLeS90^u6+xag?1i^4hWDd>gZP`fN^^|ONqF^aCUk; zrY1*Ya`a#f58W0cL;GWHdLkw#My=05>T3a zauRM9sO8483o9Hv~9$-`t zWIxcEGb%Z_#SDR3joVHYrIi>2Mbb>IQtFZ}{eahgD&j3j`l-Df6K3f3AQ|bh-|XYk zE&V2)JS7iN`0%SR7?c*43-KWI+COy5ow|?02RL2Q5^yeQua%3+iZX*{D8WvjdaDfO z)tl2fS`~#yei%4ReDsSe5Y2Xi~7|0 zxp^yG03-ckcXVmVQ4ex)Jy4~~UT?BW*erdIFyVWW9>M@O`^u#`uNlKOZy zeWRF>U*5~0KQf8ENX%fM5Hq5hGi;JiI9!1AqX3Eix$0QzMtxHjxjZSAG**Nt16&5A ze|@GPONhOtaxu-+eex1P8=1yO8Y}MhmbMh`rG$|W1ojDM!ta?Rg@bDHllsR4zEmKy zY{-9>pgC=F_Yye3W!qHIDSCyMlddcqffesygEllqfcRwvoeU_r{>ncz+6*4$Rc}vE zEUK@dEZHni80>S_hv-m5IIKrXit>THbX}4=D^k1%S9bCp-@0wgQ9G<{BD&imp75}y zc;+Kpr1-r^No5u^9f!m9c!){y5|EXUD`9UyrrvDakLh(IX+D_5Wk< zzk_Yhvim-4-Ehv$_rBck_3PXdyC?JngaJqZL=H@lARFX`x$`mD9{KK|NRrtqN zQ6y!QG{O-8Gp6zJ@9UM4{Nx*&Et zlZ_L_8KBt-^;74~NgxL$J~UjlU^3y1CyU1X>80ptz<6(9AlypALcYFsH`cY;{LNqb>zyyF zUsvbf)Bx1#z;hJ5H3}o-@_$hzeyc$9z>WWhCZPW$V&{r<8u|btMiPbx-#C%6^xu8r zFKQ#i!_ei-`~c(((uIRG37&_J0mJ-VzM3{FkBU1ipK)m|zMGyKh6;oa%O9w6e5O_5 zblTcz{kjW&s_nL;=YU|giUjJs{+cuQ8|a?=Y3deJU0 zkOy+|Dh!FDR2m#?oaYyKF~F80(DJr0)vg+us{vdY!8q`9F-qryaxjuz8c!(@Ljl=S z7?C2_)n*k#rYFP3&vW({di)rXyK)9 zF*5vtM&WGOQf7rYA%98RQcUz^fN-K|FR%8wT;qYuFS2CkCgQ0FC*qHPFyf<+PQ?FkW&CS+v+3T3 zZ)fo2Mu*YN`TWX4Ts^H0a%wJi`a+Plrp|F|BNk6zjL98MIImubt*h5HZ!AP#i__U_ zug5%RV$@Mrc@^)*rti)5ZB6>|dS1@p&^Z|-_;hAEn>%>vn;r z(naVgs@+R1zXlPpCY6WQ5fidtQGv%_bxNa0hAJbT{B2s|8 zDD}*K8Sw2&rZ4g&s~Q5Jv!3gfjU=sgZ@NM+tf=xVv16n`L>=LmV}ga4BRS=As6~eUisPc7sOpx z8n1qCLVVt|n+KT)%`0GR_<8dcKnb}D08DanP{Eyve!Ox0R;(<|$AVQFLgdVJ$#)wcs~!API5eh7pBx8ne5HgF4Jx3GGSs8(+{a}^$vA?qeU{6b$CqEetvvFo)v4LN_`&z?$4@*p z84q5VjJe4f%_H*>GD2d8*QHkjWUJ9{B#_7zrSEz);``sFHA?(FA;lM8JvIIc2z+nD zw>Qw}7$Nkn9a+tH=B8s~K^D3u4F>G=?qu|2ozPEs=x|p9ar5SC^kjgXz4k^dF<5FR z$FDNgW9iUaTHtu_kjZF$eJ!|el8+Se777fKJF9nnI{<@fN0~5jF!-^;8Mq7-#Lg}) z$_QGKh0Xxae8dzJoYlaQ-;M@~^5fNr6bPdO%N`@-!3Q3Q<;BH#-;+WHI6XZLWZDdjMmg8X&|!^V|QsgSTV>Ty0qR9xV>X;0{HPXgzBya8uJR_1>0uRnM8bo9y&(4MkH zQ{`CnlkRFyZ+M}xfJ}Fp6lNVl`?g#&SU2~yvJ%dxZYQOMLbpW1n*|>tvWh^?l?Q-LfOj?hcK!yzg;>hIe zw)lB#lj($Gt>=}uRP(0x7jN9U6Q`Hvg3&##wfU|L0p>8SxGXO$XrsO1zFD8kV55)G zV>v2|uZTzwvenL^sdL{dXiYe%4CtXWx;^ux4Jsj~rT4_p8AsF(S6wn2cPi)Uk0fe8QjI2XwSKZ6lsYPS@}(?bY}l)Oyn>ni5zoZ1 zkK#5gXl)o2KIhpeET4#EyBt#1E$O@zRuXLrIrMq*fQZu7iWoD#wGVpwfP6$!w-zq} zewbfj|seeTR#^BoX3$lLHO2O8Z@9m@|&sj+v}LoiC{tkW7;QyR#$ zw9t@(BNa? z^H~RatOn!;A3WU3!7?SqLD#c9^x2!&ulp;wb26&_Sn(9FQwM=5mWJ8y0V_cGY(_WQ45Uj@4Ul#NC@$;@0(7WrVyOSFXI` zuUBuZ-Hjd1(>zSguFSV)^rmE(tOpNY^QI^s{`N*ez?_^0M(V`cQPr+xfX3;@Ca}pt zCx_*;fy)j5Ab8VU7`x>pkD3pHopV8Cn(`HW4eRKz(-Gs#IVG-y%tMP+-^u{(Y!tE#Ht0sC0m43mG>S)kt#0kc zZLQ;H<~7C@pU|eA*DKQxc_^LdMaY3KgOeA}?Qn&JyhP%?0)`Jtuc^QCC2%roo}Eyi z=1e|UP?+8(%Wyc6XBw zX|zezWtX-gEFGvTw-tH`2c55KP;SY$+UQT1MiY2!$*{3p@n(PG8z|YXxo^WMg*@bJ z04Y%>p!SNYC55>)^SLWG#)#S>_Yp9ox#gj= z5g&du;@uY{P{zju1`l(JxSoBB43IYss)T!md*}Rv54F+pJxRJA)tT(6^U9+a);ePT zsNuH?7!cKWhz?!bla8&Q<_ZloHdnktIA8C`#KQ9(++WFaDBNzcqt3j!y5+Mb>#J*V z`_Aon{EzE>+=_jaoalFe;kr~Y*O z=l|~?iN%$(F+aEDTO+3WJ>PQRTX#zNYI$*8sB=jdy0}s4DKEnZ(}^c;Fs(J52JtNZ zqvQ-3S_OvnA1D)^#EjAzTsmzS*kp8QDu35+WF7*{zM^!Pe!={@x4r3Cps(`n5E&x3 zxDs;p6+fuHy(NQoZ8dmKU|$Ws31!=|;b`<5ncD!BTwx4mN>IqAxS=A6J$k))pt2Fc+{OTRy<;!nhxl{0be z+BF$Lc~xRx)KoQ%b}`RLoY$AHS0ZQ?HLWXq6z?$IFwZDBjHa7MOQk+Hz(O2Uoi_%#zBMqQ zlG?~R$fpaUAZJ#0# z#Ukh1ur|30g7LwvSn@I2wL;HXT3Gth15Av9OBL36={!hi}bC+Uq`IHvrB`tI_z7^9G z5Py}ip1s2X)d!fv>pX6Joi7SFt)v?|yuiUVfcP*D7%W4}=UK@xC~K(91-iNe!|_p2 z<>HUJ0#X54RbK1c6MgyzK=@i?Y^>NQ(T}z^_`vMl*jT+SW8`|Q-nkxYtG8lf?M`fO zu4zNF6+7x)YW5>>IfaYApVZML(3Q$>^I zf!B$S`vGdn^%^DsH(W2Zu8fy1e%3-^f8`r`e%jo4yQZYf8%DDyUxCz3ymB?KG-{BE zfrB)QDL|}Co2gSJoj~nWm=blUvJ#&-<^r&e0LsUSi8a7yeTa~3 zkGL>w3}rxYPMo;g%oJHR$hjQ~ehe*4OcSt^?*dWs7LQYk9(z;0xOL~QztgcY&jasl zW+!58bJLsCh4~rL3X`lw1bX1}THW1v@%8J`pIr<-K)k+sSDR+`0o+QY{VE?yRKL4% z`*!rSndc-W&nz&X@b;>z3%6*qhw!tdsy{!(j*8O3Z%X4z0{u!zHr~vsHei*W55mhh zkhBSH%vWUetZ(PZ(1lqZ)bC5ro!~n-yylo!+9HQ9|8pe-Iqv()k3LUcJiyJ5O*V7$ zd~Y)DKX+F7^1`3(=y5BmDuL%~Ir%VG9?}`bb>BV4nUr5Z+f{OdB;m}c1Z>v^s*zVW7%fAP~}fS9K`ioQ-632khcP8=s(CX z&rUa_Y`ebuMmjO}tCh0j0C4FdvnO+;Ozji{RjVPh4^ubPXi^C~!Fnbi-X3 z&WE^jD*9H}g<3~drjHI+{krsRzEuo-oN;Fp#O->!JDahkezb)lBEw^2?Y8>Us*RJa ztu-4W+e+satQ{F37%Y5qB>6V;DhX#^)rON3^f@+Q>?d+VgZ`zdixTLb`whoRIoPPx za4mCJXMScBvZ)iu6>Rv(lMNMNX!Q3hcuD7^7MYT!=p<+Hlg)W|0qG?NLmGq%h><)h zJvcUfC{j0gv>j!y5}jOuNYzzgiv&klcv7nIljvd$k)pV7AA*RqJQQ(^=hQ9#oaI&m zh6KN4mu?*8TfSt22UTT=il8^2`mxysp`s;?*`15Sgv<)HH?j&%_I(9|@2$-7pb-2j z!QHiWjr(bBta~yldF?L5W;SG-stzZn;`SQPSg20bueeovmk*Q*c(8nFX-US#WL&xO zYOI_(rSu)qZ-`GDd>Fm$MYu3%7h-`XTUAFk%REcL7GS!X*K4fO~j2YGl@P*Q-7$E z`Xzr$AVDFX@!%e=A9^z4U6-{kD86%7iTMg<)2OV5U)p`!0C}q+2iWfq&{4CC02%&$ zROcAb)pr~mMsu*d2jMt*ybW)|?=N^EE3V!`!$QHroDZb0+W=YPVe}1cB-u=|Xlt?M zb&hF-(AOhg`qFm z^PxqNwOvSwE_eZ(yPQiq3!ES~RV8A^vY4?_YGE`;7H6hOX1mb^@*XuupLE_HB`3=@ z8oIPuhSpVF7hG3E@-ogQx$^iZe67=p>wx8GBc%;d8X{XZEHFB_Jqv?lYfHZR)iyZd zzS4$qB436`HA*m0xP^n)`ud89WTru)rc{{SOBy3&oQmWNWaX?Lb;c$n!vJML_uTA* z%MEf($zZwYr~)I7nYVL>*jPZ~CvXXQa=z3M}naips) z>X*`uBZO{3v8VSfY~W#3I5)FtcoY`b9cA`L51I1W)Ybl9buhiJ%%C5Tc(?6->Gy&z z51J9AYPxw6@H3-|b6XSh2F7a6AMmE5%V`X{K-<4yl%`I5G zZr29LOi#4hJS+2Bw@7ucJOi++ImutLr|*Dv9z`$BeFU;TF>Kc4*qBd5PaAbM+g#nV zYzgK=jbd;axYY=w3L}x{MI_bpq|=3`E+_?`1mKZj$=?6~|MW>jK~&4>7%9su%W?bG zE%_^&cX#9N-8(WCdcMUBqd?ugxuQZ}vtG=(%A02?_|C>GS6DPg&?}sd`NkUKfbdLDIxvnTk5*@%#BiaN>DxQ12kL|?JqvR)el8XuUt0#^qW>U|s-TRP zg`VOuKWNGwviGAfc)r+ZVzAMu+f0Hhm ze%saeJrVKPrHHeN_qLR%(m({SeMzRU|DVmjNbGI+HiJ5WybTAT_FqPg<|6s@Wrb^E zi34@e7z)oHYH;~8I218}0S+N~8-5>wg~N*kn>#rcP2NOT--xxLji8?eS+cIc2{A?*#6lUk=;{|KFz(2Bs8?`$noD^#upjbQJ{XRo_D3M6#cv}<7<|tw zGQ8jeD38a!Sh#Y*?O>#FWyCbje`OR3V=9m9d!q$(=s~@@@D-0(7)L_&^yL z6#C0!qVn`rA{4QVD??LcaHM6-0Z*C67bf{_dJ`%@E{XF)a|hDD4WKD&22x)g6$Qg& z()0m^eMYG*v7ixb8+^<<+x7<2!_ZRg;!3UkJ*{|nC7e6 zr9Zk%Y#{d0b0^lcz~8)i)!{`g{tHXX+6?dkuKtZ z0WHE54U`u6yg?)DvjXAnJUJZiLRa^<0;)Xx>bmh^Jr4r(gM2_eYkwp^d3Ym&u`1^) zB3#kH*p*QtV`5u|#g2>&Um4*l$R=0ZFh167gm7hqw9U=CHb8t8WqVx)iTGuNV2ofu z7uB@C;uaFMi}a~wgz}kRuuH9i24mB3aH&=$e-GoN~|!uulI0?5j^r#`*;1TEIg5A!7J5+ov-^O46!HjR&JfMhyC z^NczMo?=A@*M|xCpkc)AyQ_Y9n@T`uoU^PWexd8e#8-CvS#vDnzZESLj>z=PbpaWMF z?#dwG4Oq)EEWYuL7vdd{JrbACoz)z?6`L9(u=Qox1IreDi`B{ zQgGG9{X_(_(tk@8vm3=LsL zHYsnzTLiU#ve@8QC~)@5R+C-_XK4 z5vR|dic9xhjHSgDEyz5)&RN3zVy|D@DIKyGv-#xKhI}n18#d1BO-{%u%7@d~ukP%z z31w_$-as?{j|oT3g~yfGl~cp`)m0#Tw9LApt9-S5wENLIk)f{wYK)17+k4Fs<*0Xu*{uhDEk7y@KA6^mTG0m>Y0p^M?w$Ob3!4 zERbo0+0X(FrK8z4$jmD)AjRv~in6^@f6RqTJyT9}u50H}@?z7>&tU;F#8)@U*2ON3 z2L5%E2!PXeQ&p9Q2K5PzZ(|f6x*-YqHr^aox&{PkY`m%O)QkO~;>b{lFM-$kK|YW* zlVwO1NzM3O?Jv0%^vu${+ks~mwzl_!?`F`9yd5dqLOkf;U2N(D&Uq(9Sr10$c$*vbzfl9$TNEmQA$_`!Hl#?GzPbsJ0w;p)oL;zDexOluoke)E>Ed~p>| zH1PAX5>7^PvVneS&f*)&IQ;uREd#`T)ao@rtzoQAuwKZ1n3!LP{l)pXa%UoL-d0|J z^#@~rR%xf^@|h3b-#f2S!1EwnqTvA;jEm3|(hC5%P41`NxHI37tQv`aDPVO>QFhh2}B*LT9flG#F2w533IPRmO zCDq42SditU=To#=ug!zx@?2ycvJM5D#ai6S6AW4j~w1Q8$0I7mf4@MVML-IDfDWF}v zS<`~R=Ab?c!ew(`1<|7KDQ?U9L10hnGI_{W3y6quu#c z;dA4WFsAV)v}W+|`r;pr`#=0Y8iiQSF!yHqGC&q$ap_E)JAZ%Nck!XPaOsgad*9_) zIej7K=9c{}iMr5xk*92IdR4Y9ZEEk_dLzF0`QMJ4x2|cpu*gnH-jdHi&d<-s?Cf03 z`7JrKTFAAy&&+E5TNFQM!TWwI4Oc{Vwp9n(4BxtaBd)#iMqIrA;kZw_WU0#0_0jrA z!N3A7@SG%9%TZyJykTBooV-!AKo{TU0lg>5A->#zR=QC-4S>@b<1z?U?-(HTIUSim zz2Rd+;zk2m)o?`@ZhRQJ}*+969K2T;Fc~wYa#=A--Zbvr;`yPxorMu z|D5ZYqq%iPx~n{(yit~;4CvquxaZ#%NXrd2ettuWSBD2eGb{h}!mP`&rw#Ac=C00c2O01c=gMO3Q-tE6BmIy1uk&XeXS;qXU1`4ZnqUze zr6(t2+|LwuJ;FTVHct zGrV<6W9riRvvKXl^;lisR6miSqp`{DSBr~_@ygX}vB~o+iudS0Hf+<7qR(d?sK243 z9M8t2VtA?h-}`BvFJbJc4`f1;p!l8)ifOg$(oF2j0J*z87r*|@WIX+{Wd5x`qjIZ$ zs3R_>FUs(k*WAyS@cT^C+=JDdkNxR|*qfeLctNG_#m|4^NyLBqLZ=Z`Yi(TN?3nHw zrIuO%@410mq+ZBP3+>4X1}5c1C3WGY;Rt(BnZ6KIzj~r`eg+X2`h*&g z4_*iF1ti}(r2tc9UMS)~s&6DdXmH8n0Y|>DXL5!WAlxJr-g1!Gmcu-f;d}rk)zpNd zgA=F^P&!olBE!`vXj`cuT&U4t#4I0{-QAfJp1S(9BsC&Cy7-XnOcpBjEu!Cs zdjv1&szf$Jgn96HM~jU=>ZwhjuYQzgLU<)_UIoe9wR{DHjUGQ5VyH1*`kfz-So@S# zrdO24n@PqsmKxG;xBB6@{K3E9h(Rt7-cI%VHV(L@;M|1=>@ME_Se(0fIZmCq81oCu zGAOuLn0}OF3VqzCq#svoFhZ`r_-uUc3%?`Wy2`xcu{x!-so$Tn5wftbB!AHlnQ~_F z%(;tk{_MrLdGmI>`r0cpIe^i$3uIyp&)0TLn>Q0AUI z)5{rcSpd0Fl%Ka(VF+`}-?lbHYq7hii{MZNKXWZS(AH&UciD{Ml^Uco4mveryz(c-Z`z8a~U*dCr?V(cyE2fTU`e zH+4vvRo0AWJ>(meM57;*U2YQDXet$FwmogIi;iH#ig86Imdu0*yL6|0)1XK+#N=sC z(Pv(qDaV-3xambqIQ6BUXanf5CE1`$dPG$`Dx{2zh!4E}=<5x(3=`T}H6jAys$&(5 zYc8pqc=fkYP{I}fxek~Hw9k#Z8!o9>sQh$+O?~?E+Q<;c`44m-3GLbL~_a2$bNtTg`8R*!w#vf$ zN15ZDRjR9cpX$qokU=pi_wwpOeEy}m_{7&IYANB_8tFHuekvm+<}g6y z{DBjm6zMO;p4@(KG2PTm{K8isMEti7D2;2g0=4gI%p_X0pt6DFXQaaiK@BP3N-6|& zL{(}@&Ugu0j#Au>$Oj)n=;b#uh~VkKWv40^%piahba@#dHOQgJDhLNjPK&>!6GFGj z$gxh8##j@Fz46Pwli-0;#txi!>tI$<6 zkad>n2GeSKP(s#2!8MHw4oS!<>4Fs3!4&!C5)b9eG9iP1C!T@IA}FPD1K|>v6J62E zY{Z?|cA-K`Fc0`8vG7-XawdRs6PEmPp9ZbUM1pWk&aOQrHho0&Wlt zQ9zwmXG26T&qnWR^S13X%=txhZiV6Xyz=FIyNqwe%Gb;jhQ#C;#_GNrb^&L-Qi{7WZf7VtM&=oIQ6bE?jyzp97IwK7HPX zL$5!p+;XApmdj@uDU?vJ&Y}&k8V-uu>0t1Ar zA~qx%DBMz5mMr539atjx?4LZK&IiEB2J2I}x33CzSv~Jq# z2A;a0PSB~=mkkdEy_u3uoJmfdv%c!p3%US2!n$M*3khwlBXGDhc8Yv>3!c2#EK(OX zkdQBDQpSqFn?n%DEpsK~5TlBGSW9}!w{F4#%P%_NtdoA|msh7!KV+87^w08nGb=z| zeMSbbEGb7>(AlztBUisEY$E3p9OUo(92SU1Btq$6z3?XDjazr)^zvf# zCv)s^rFL@*+50iS&{tckE*Wp=n&MJd$|zYFRJpz)Fw^;xx$DaNAF`%?@?(NH>u7zb z8}c0u@YO`h<9J3gzXDYP>$*?bF!#{MDJwMwz448T=BVMU^(v$FF)C_4nRWI*e)$KP z{ZYA@#$&UQA?Gym&isi}et6Z36iYc6=bqzvK}Z8=R%H38I#au3d9Ba@IB%igddg=g&KzP5-Mh6Cn zjL?|vb6LBmF_H$zet#wQrtz0$68Ga5p1vXJ?c104rk511&U`2qK}T6@HFoUMipt zVKyBKzSbEkcnC;8*BB(G0aw!t7+*mA=CDi#MJu!09?4wlSBQbOGP0D~X@!P3kcB27 zm*G0$X1t*s4K3Q4KJ$z#M##nnw;su_&w}uA zLT<(4b{86|EYx1C-5wQWgna(5MO^y_+9j3mg+R}I#23{24@NBhKs@l&f1Bf6P}x0B zwUJ<5;X(7I*i z$-Oo4KvOnRVk{~+&!wf6SX^B8hq-2EX5#AAtMT&7FDmZ`<3k_%m<*q@GSZ}Dc||1P zv*q~iph~M$o~0oo_8eBdbxk#VO!AtF(aS;Ag~n z;zQ#f@q+VySYbQ=lFxIYRfZtRIY8w+Au774#?-*69mg8V^h(WSv9UK38{Fk5`iZ~&(=tHRuMo^_S6u_duR_EC z=@kQ{w-OVxi!mV+=jXq4x#+AzqhD7$BV0jLMHV*+nX6n0VC0i#aJU2vBCH~XGObaS z1Nruv1tZTmD4j-!*XT^cBLt5du*5kgX=>V(qX^GqLN+|UYFYtjTRND}I72B9Dwh`- zt>PJ1z)~ES1G;%0Xk~%}LI?87fucYi_zZ5>hoE>6Bbz!a#SsumlG-NSxWm~=ngt;jjsgT~VH;>t zJ5XsjWW>pkr1HBCN;RZM8%MnS<^L={T)4Nc z1>?PO`Mv+^hAyi&`$4Tkk8kzOUauc>^NX>#u;OolV0>J>{J3AmyK?$`%+D`J&kvz< zuW^>ei>Uf#E~a^V54Yaz`~Lli=f3`QeD*WHCY}xH!<9}<1k?8lA#oreP6OClJ5XdO{%XOzgpgRr#;@!<*7izm47pm-WeuZ&( zVT$9}hOI$I57n-ZxT@o@EN^bc>2A_)&1C<`&=4pAgTb}xHq<7hF-G!RBQ`>KeJ?%+ zh_8s;Eni^ISNyK8%HLY^O9?PU@;0q$M>eVrt?e16)kg9Q3HCb zh;Na}2bMY}e+;wKoAnvP48`&xV(`e|B!!>(03;*%R1T%_);V76K(@3t^vn92VDa$Yj5^HBa%@b@#+{A*_~ey$HwvX{MM25QTbUF{ zv=4Yz+GzPwmSj^(X%BMKh$LtJl3qmMI}I93a{}YZQ3f=g2ZF*NK?qVCGg^L~P)Hu= z0D>GSC7fOZwbJVq7ozT4PAh(MNI(YpcOo6giHyn0m;D7*PHorIqqhwMerQPdN$j;HRd^N5CnWR+ueGfAXjr<)C9w!Bhq;I4F<-i)4B-5&}+d zn5jb;bYRfY-yIi^>4_Q9Le>uiZBnf(YeQxOOex0{9W*+VR*|*d2chtlP{~H&LM*RM zFW>;>Ze>GM=^PfCDy}%FnsfoIRbDsEMe7izc14(=&9g()g(j&@hsS)~3K*gR2FlZc z0gNJft4abQQwjkns|>ePTL(%@KM`)4k_a_;P{fc~`2@#@YKGj8kXM$K2dfu03V*f|S$&UC@cEA8Z`b0AVBB(;D*CXTK1i`SfpT zL(8i($ui6DGtHt|TjNW>eZRVrF9-8{2)AePpysJlXXD)2OEP@s{A|j8%*bgo!s=Zb zoIb3xOBzj*i=$K(6r;Sn>TfM5~xR3(!hDu>ZtlSZBS*e&DK?V=El8)Lq=g}d^z?O zZ5d0NGOsj1P4oV`;t{DI8|AveW#h`m9A37}O+KW_K@X7KDuXyw zY{n~Crtp52g_Kg}l%ITcGj3*hsbkubqv*KB$Hsu?+oG#}W|MBW*EeHMN-Zt$YFV|n z=+-xVI^41r=eYF}UKDTZvgS)aCSC#AJ|R(fGDSv{X@r#+_9}b_1Xo2f51B-1yy2lBEZ6=qkRD!dv@^X;sdwKgyE^U6lo$>&W?u-b$f!`Ua)7<fLDS8bi?w1mam11Gq3)C>BF!3>IW~c(i9t--eXNHFTF7l zzw~=DK%SkAohi+&iwk~cgp7UVZ%$TY_o6r?56 z^fe7cD_vpGLL_PCQ=v;~K_!kXcXii0^6jOZ5++BpP_go1>+rc<|Bp#)KBk{aqMH+9)UTdb`pns0PRZ{Sj;V91_)qZob`coh9;i z5pDR&FOA;R$q%sm*`&O}fg!>R12&5hvL+)WU+Ifsa$D}M4VC&@UvDhck3EN~y(PG) z$OhAa0ibE=UsX^1dU7qVkhEoh*6E%4u+iYU7!vN=0^7RtNz$T87f7ci8pBMG9&)pd z2J)m5l}?^QCXe@I$xAla5M0He-%x9>8l=k1Co9Fr-5R%6*J4Eme}6jj(H7L3e_n#IulZ?yUIs`hYrTR1 zP-bt|6}BFPR6yd)FFZsI9!{zUhkOiLzl=)b9~?4m94SH^3Ctya*-}$Bt^l|7Liwwq z;JHV9Ois{Lz3~0=1woAiUEePQP=3hoLd~bjuVHxbdB7e#q7*HFk(0(!%>!D1a#Qa$ z%`avkEy)ZuO8L8a4MWA_*L*6p`R&KQ_u(tP@*(>o=4E{F-1(PZiTH)jO~hwj?8nxG z+I&U^$kKx5_gTxL9;SZ$z43FdP(e>jGcrCjUx%iDUv8UFq`xo~JJZwgjT=+(spt0N z3omTNqYpi-Mx}#7$LHR87kA#rNT(#8Y1xU>r_$t{&Y3WHk{;ZYIwh~6a~K}S;mwYo zbP6L^Vdq!r8<(_V>$oF8LhWR+h*g}aXCNj$U_&qR}N!dBdV>r}JCj&R`R za`=0gSXMS_N$c>|1~;w~cHB_#gcxX^NEAay;jD|}EuJ#iujv^TpgUgblrvgFEwj-I z)Vi>vz6R>1)H7lIn)U{VEA2zLwu22&@eyz9zv|(?FTP{1M=ika%W!RCQq-CojMdK@(qF48z8URsPfzk_=}{JAaUwr&HPdpJXYGeIW>tO_0KR+(6z`dffXjK%vsI=!tEBT! zc~rx}vXn#)(3gFwAvMggSfME^x{^-;%2PMxK$2OoT*|H|8Jwl^hlbm;G7Q5+Y-3Q0 zfG?dJqqJ?s@wqjWe!$5IB(k5OzEYPWqY0at$=mtn)zB;xMh^L65RsQ}Ar+nn+0%*T)0NQ!Y*gQRbKPUWgnp*&=y%Y zgt=l^`!N*IXBko+<-|xKjY+cV(dcMdIq!F&##_B>y{C+>OM-~^onQ4cA2TvQxSsX7 zZ$$jF-;Ma4=O^O&>Xg!^Wn1)o!l&NiM?O3H$xRDAN; z>G&)H@9f4??|Ixb7!Zvyp^3u}pAg3g@P;!Tb#3E8vwAx4@FXsc7dZ(?gC_Z_!J=%^ zM=#NUxA7stRlXMtYQQiGwgQ>@^PAEg(OOnfSw8g)UDEU5XaE^*vn2he6Vp z$O(aJwQ3FkwaiUIrZr_K@lJY9E+t;tXQT|lC^a*s^(jkrw1;sWHw?yi657d3zVNkw z81UU!H1U}cd`XiJs=0Je9DdVh2J{z@wa#mWwW8^WV);#=QMhHsn+3LSXYi2bBD1qcoqL`T9z8%9!EsFdTNk=uc` zZ3IO}7OaMn1xfL`C}~-T$w|$e0I?aQWh0KX3{_bftptUMGHb9;X(3{x*q>X7rRB46 z=FFv7UO6iRWY0Y6i3PnAX^t zinWam`P2D!RrMEE{LLM1xf7{)W@h==H9RSXHp_2LAVWRg;|sA_Zmyo}$jSa-#09V9 z-L^4O%SzuAA8jDtIExpaFdB&N`*t zROTwDxT*%a16-*i9eQYSirA$=mgR9hNe3IX!VyNE^P@hTPs(Whlv~S&pBD_$Febh0 zDh=UA?;$Ww|0gcoacuafza{KFm0Wxp}MD5F~ znf(;|+(h&iCu3%QDxSI0i+}y4UVQcS>A1CyGQ07SCm+uZrFd*mxG-rrq@TusjSA7( zFaR&Q#@JB8pm8BzdAko5Kf@Hh#7#p*marU+;d(Hg!YWJU8F0`#t-6CWbg&i(k8*>a z*$NOI=YY)PAQY`LG6XJDafdW!l3qak%J2s?Sa)P>$)MqKZrMThNO@hIJQ%*bV#l4qj4U5eYLeCrf>depJ8-HnZ{9UC0m zg{HnnoH0)JsE?k>i~gx|mW4dfGxKoW%K@3*mYKb69Y=r-5|^>N|CY+G%pgB93w8Qkw;XD{tXSc?mX#_>q6nsp@ZEqtzW#_mW1(n9d~I!3DB!mr8-lc!pK} zhL(Xr`((QHblE6&R!-tk%xR5-m*kY;U!}t{WVq{&1C-73iyH-|Ay5RH>?96vl>7s9 zqul(6D8B>g za>L+qI3Y`MTsTSn-fLR`F4GbG-Q)}p*Y#+Au-@p~ALbpwGg{18Xlitbk2%imBfRsJ z>yB)Y;5|1ut-f;iB{{OILx=Qp9!sJ+m%&!?Y+R7#jg0-I zF`Xtnd7Au1M;M&qUYtym^fs=DlP6&vh;tH~Gr~@j^J2&k1t`6Ig5G?1r{e@ew{J9I zFCq%_SCIPiBEwIMiWl#)C=&LWH2n}=7aM#F7y%WFZ$16%fCRa2rl!4NTwFTkXF*m@ zU2u4+r_H_VQCvmO1{_Ts<@Fl?Nhj>Z-j&Hqu!NfS+mc>>>1i#_J25kVHvZU;{2OuM zz6WD%eJj>C*W&K#E$4Ij@B|HW!KWJO5oDiPxd{ z05rs@zx0zY{nU>zv~>)m1L}sm#%q}7>VmK()Y6O#+ev`?dO!Qtx2QuKX=WZpQt*@ZM(M9&KjeDagcu*M`g`A!IzdxYLN z>V7D#ZdfaL?Bax{UDyEch>r)!xm||MF`HyI_I66k`J-*STIY;G@~ma2?Q`x>n&f)U z5N(D#dMKTI#aQ%ZlPgN*F-75HtS6N5jZCFUdSz(<*}ls~e(Hf*wJ*ZNSXN%f!-0$} zzvU>v+5L@ejjx@Z=!+I(BYFASHgD)tz3goHSrQm5+XBkQnmpvFCt8WmM)<8+(2!Tj zEX#$DE?F+};9DoDbIL-$tpCi$UrA3c*M~S$j!>jQSDl!R%ZJuw@DN5;$&<1W2M8m> zlepyhRw`9Ad1M$zdd*J}$p?i9J12`5LrvwUjnbG({VH_jD9M04u8?qr!|ewRIMXGy z=g(4le2|pCibfWF5ZtbadDh1D<#J>?Ob?&E8()4o;y1n$@g*4{`I=qQnNKnPkGcXP z#}$w{86SM?d|Mej{mNwg^WU9{&%V%$jlG@*umnugq4#_RguHXm6-DLfXmVl) z9uRO;x^wUxNzPE zBDZ1jnqX>@`eB2#vCeCJF+_Mp>}uS)aaA-*SN*V=N&``ShI-7JkqSBzXJacJ?fe@L z+1C>YyWTobAp?Jzkb$!=gMV(&I{q`qs?cqTQ_A z9JgvMEXUl!k_}&I+0atu>2l1{f(fZ#wrA0|_${yrqun!%oZMXQ#g;bPToLeQ4IY&X zS!9xJg6y1U0Jl9(B-X(!g-&u9mjJmVj(Guk>ZSIZs+-$6Lph$wPci7wuj))b=;ZvG z7;Gso+eEUM12k6PWs<^hL$2cjC0iHrr%imtqR4ZZgxi$Wz%6FW^VEB8K#`3>wza#X zcASh^ZBBWq1bR={NU@sAM}8JpGWKFqV>0v3x}kK$Y99fz-Y{3PuF}F2x@dbx0Fn&-R+GKRtw4_V8+kphy$nBK8K;_AF8Al2bu6g?)8MI%z zafGCsPoujvh*0w*L_#w!jO4tL!sNcpWZ?pSWjPemV1pN@`RVL0!u zyC>*oB&V*|kqN<@1mxIj^{nnNI0xkZ1&%PXjg#yehu?aL1$`A}VPfs_6&21XYBSG$wh(!K zp?$>7X09mc$r%w&wk(rbt~bewlb7qj^^$q9npl5yfX9avnkS#C1CxHbT=bn*@kwF5 z*yM92ntS%=v_YI-Ivop(r+oiDx7e7WLJ2l=Cvx@U3Wz0o7HGvYlJn;rK9pj=xe~ z|MipJ6`#hKbfK=K7-KC7TjzSiZ`O&F0FWVw5u!e&&C3)gN@albg1o#9Wkc3&8yrKkNlFCb)&1Y>J(+Rh}vFW;=)tE?xyryv0v=ws zp~9_`qD41u`65e~w&VrC-_|4Tnd89v$WcGEr|Xomq9647lV)By^h>|aw9 zXMFOi`L{Z>`qX}fjLHX)OxZ1ya7U)&rBaD^dGV_w4@CHOTEx)a;EMi){eZs0^%)uH zOBZt-vUF{KqC-U21EsR#J(8M?fKx*R5Vn67c^FmR1@9XgqE!uI2-Zyeci>q;2%T@$1sqH?~7BxdUYY zmx~`h`T*vs{FH^W@tiqSaz22cnPjcqb_I<`^wy#GuKhpEphTt(EUhTsHCAT!I4_3sKlE7P%)y; zpXoW2yp^wdg6PwEv*Tp^<2ZCrUcWg@8=DMklOuy@9f#pDzkJ%p?%cwP zuZVD)77w=jN(xs|boXcZI_O9HJ80)|PMXt`qVjs4C^(LUtDFX_c$1gFn@~|&=OieBq_yv(`kvzG zoWKc~?4y~M<428W{Y_Q+PjV<!FmH`Yqse^;d`U|vc?*&CMYw~PBcEDN zCzME@e+T>O%Y!T)yWjf|8Z(x#JzFb%qVy>HgTo-7B~f#~QfSvSb9eMi#pGdsIlHt4?m^4$Z*2SD242FQEk=V-$n z$>QF+FT5D>&p$7V=Cz5~-kTJItk!-S9|H!+laE`-VL%mhVT6A71jBLx^y<1{+&G{T zx^Nh67rL^$?l2&AnAW(X+`aI~<$|41Sl<-nf`KdvLm$G$b)k#L9oFvMveoh(21n8y zk_>CtRn5BL7P@g07)IrP9KE~Xvf?)`r`tBqL3t;Ue=oY66s-Tr*$x0Avcw$U0)dCX z@Hp?nVA`-ABltvbp6ZNBoPRYu(wW+hco#A$alU;gLq1kRB*PqQ964n%hDVOJ@gmPg zP|hz2(IUWlVPEsT_EK`W;BngoIG+iH2RX=NVJcULkZmZtO>bZ&Hy6t64`}Lsft<#f z+>pUsTzw`@{C+r*`}TdNddV9@;<=zQ+awR_q=e#{&0D3*QRFhPph2R;gf@`KLw(O* z@JL@T<_cqe?aJ_&o0TE*z$5YCgOA!6y0f|#tGo?MG*VTv_I#zJH^ny$W@Bq>&#&^` zSd+ox=S0@!R%1hMe?M<2=}|wah;Y(P`P(3oEN!7&uM{IUu4)j~wN_n-6^Bi_K~LFL z@6>Zo8*Ly3!C`JROj^wrV$A+c))K@9L+f39BQx~AAFNLkQD2baF1?X38 zy%|cM$bOhO=ONva7kyg1fAXC-`N-8PH8oBDmcHXg;gExj?Aw%uaw|-_`#c83l-j=^ zeHkKr$BZi<^s{;OGp>frs;zlu1UEC!D}EPbwD6pW3>VQ>*Aw1`iuORVOf)W3_pTet ztF}{~v}&`#ciFPOxC(_)&)5<|8#TsN8W`T(>F+dHENpFWTQ6VTP*wE&W-Rh3eII7(sK~Mc0;`7Kl%KIc$w-smaTQt} zQ?5nh8HO{K2} z0KQLn>1U&XnkszMoAa-9ibDg=+FMWPv#l8~3Y4}KUU9-maDT8~$Sk_!BpYsS!6J;K zl+eC>?XE%xfwV&nke~cu{2Z^}UE7NI%nK2}@l3=^H+X`b`*d@msK&=h4Uo4QP`C@| za$JD+IPT2?BD#(y>wIutToKBO*`bLtXdv{0*xNS4ll=sAiGxU#sS@v z?pvT!&;c%W1|mE>?_hZ+7i=a|5I~ zocnpf?e1zbz=F2B6T3VV%0~$Kh?~-r1}Q0#1=VYpHWk!YT}18p*+-4y%NgL&4_{dr%#Nbb_Yl9%yx^qS_ub2%-k_Ui_`j%)O7oE5Jd-wda* z!gYozm6h+4Ec(mrmmhvy`mDtI`c~Y!eLMEIx1=u{s(e1gn`qT5^}|EzYwH^_KGtJn z1A}BWwm0s`p4br2e)P+kbBvX#JsC0m=~$nblL;b$s@6#vEYrf%UNT*T%i5NDHU_5E z=*YWujx+G|E1nt22h-<$Rb+wN|8Ohm&o7*cg=K}8&&1No*;qJrF6Oy9 zC&PtjN4QN8IT$2UoAnt9J-OGH)$GQ#L=ma)zrV1yVMas#*}`X$*-G0%0;O? z0@VZ_!@?-F?9bVN)Bg!0E9-#qoV-cn9;NIEORx=JcydhmZ~D3scV1-!iY`!CT{*{V zBqghyIuu9^1!hZw>#hv?`T2Q|O2F+Tehd-%CAVOKvR)igs(trW>sgJB)PG^`NkWi0LmDv6sEa3 z?$b?&Fdo$VOF#RgrutSww_(54@Ydy>od+0{d6@i`XBZCC%imgPfR0>(0(Yn}yklj0 zVi>Q>C^%`o9f!V4LpTRY!eRVgfXC>c&ku})Ixr8yam#l+I!$n@W0k1Hj{}44dK@^e z&J|8Ze^^@_CTFnBUEbqx4d-7_ejT07G#hKb0cs<^oDL6kHf(A!nhcQ30-ZiNmVcqm ze667tUN&faIBtGn(VM)p7aod>54}4sJ@P(;dH~!yv{^@w(*)PZSYp-g2%7{=mAY0y;HL;KJ z0yR1B`wZ{g{A?^QF8S-~^D9endgVf#S-KFnuf7pCue=;*&Yh2ii;u^oHn7~+?))_W z>}f;Avn*3GLv}Y;WA)b6xc>T;c#(<-Snu!70$X*krXbQx)R2=AT|3(Zm!r=P(QS%&$|1H4Q5*1m{5O( zb_gmhVA<$1myWlkZEx}Q zb{X=L&E_vR^Yk;Wa?xMWX~!ExpJ`WpQWdr9ee4>6C;2j^t#1ld6j{ zuP9FavPs_BpN?BMugAI5OWE#Xrmnc9ZC&-Wv$LYj@4t zhGIz~j;rlS9(fgvahUzy{ep&*4Dzn|n%|XzPN|z6Qi}YH721+liNN4sl}Dc3@&BM+wVMzZ@pBjb%x-Jm) ziZa4=TJ-?mTMT3M6C9Q%B!>(Sfu|*k;_#qLzR_@KekTUxaAZO`u1oq19S=^b>%Eta zesMIU{9)Q|e0=^j<*ljzqu^VS$I*ZmgRcIDYq2a=#kHx!afP%X0>0GF;;2R2Z#(g# zmkVM`twmF@+~m?{GjBJ69Dd?+v2N4L#*v@bmU4z#3!$F}@xA)ILUl2wXXZsy-iC!B z<(Ymu`a5s8a#%EMjq?OU>Qw0@q&ULqJXVA=o&Lnpr%nLOo4z8l3$7pM?|UE~dgR@) zeCGbx(58}Gvvy=Sz3KEdE469iZyLa^NI)?TWwr7ZpXs>bS%yF#_gBC z5_{UX^6KHe>3(cZOvU=@jkx~OSL63S|2y%;&;Dk7_7lGv&p!RTapje7#OB)VnAqD? zPPs|rITPCH%4;vhi!VGE4?g%{%rBkwW{-4qa*Mi*oE7IvO0EBDNMs)Xqn6h(`v7eX zO@-_~*#`jVUF;#63hF^Aqvn^yP29`{FN}5bUPF$g3Y8D2LGzeB`Dp{w;YjD;V!4$w z4S*IhawNaPJ1J|9TeY}Fi`%TY6>x5TS#^0PuYjC7@2ekN6`5Z=9W#q7?w@{!1lomV z`AdFwi3i{L?g+03p6+usr0-3(a_N+j=Yp)BuRy60edU7@MY_wSAOBQaG2xpwM4rn8 zy^IGNoQg^)QmA{%?<-!)q-itDMMfDj-pz{9=}IXwE!*J)t`H)FzQ%^t^^HE{VfMV$ z2S60L@RMRTW*EO)GGMq}aY06gRB&0LBnUNR0W5@s!3FbC~$06IU*6gzys`{PGOQZrXxE3h==}119S$@znr! zkAsI_p|3K!22IYfk|c8Cl_pV1L%i|>!DlW3B&OUt(!ji$gdme3aMZ6 zKy9$@%ua>R2l&|F5a%pDs47<*e=dFOZN<&2FU41%{&c+l%GXsVccmX25)lbF@{qU3 zmE6q4bo3WyVt#qfS4GaQoQ-n}OEIyr5#M<2dhAZkSnic8uf)|?o{QVp--xa4EiL-U z)TTyqCwXvPVK$Y%&5DhuuXbd=p6)Nj2fzCV<9*-tqp=>^08ixY7Nq%XdD(DGTSd-F zBhDoUQ9!kc&H~R}S!j8+kMOZZ)q!v}yppo`NoU`*=|tXu(Mlj9AP z_{paWX(-9hh@HzP9`++VfR3a>kx*5Gu7ie-{2q^_uxY_X-;woc~ zA^I3)Ra-bO+6MhN$(tKwfBQmZ;f%TKUE>s=XLooT6@7<#@Y#GM(MGC9=(A5}IVf;* zCBTO)xw7^%GQ_xwQ#ZZdbed13Z18Cl#XSbZw6o2Ieg}3ss{TBb4~=U$cGYH6#8sBt ztE#*0%{YH*NhOwk^y^(l)PAh1?o^CeSeR4Ya~DGD%CYvHZhy$S$ugm1?RV7XFl71Z zuNVgkN)9+`3YqQ);0vv1!QJ+E@tNzVtIZxzW-hO@t%vjF?DM_ehveq^vwofM2TvIR96-Kj`uyL zFm(6k4u>NN-V{)V)=`1DLH%$#n*Jylly|s0E)4K>ekXz9a#a|X(xpk)G=YO)YUkg&Q7}w1>?({(tF8iJPd*t*Hx|aHdtl;^az$=8 z|E{Yrj2{}J2cYs+`Uafo2nTd%2Y3#FuKbhmoD^z4)tv;oJj1-i4s&AQXgF@ZHNUPK z1%ou1Rdu;ER2a>F9Oy1Ahe6H3!LUvpz?X+5cknzbodsmNgnX!Rsj)0oRXERe7`j+an>rcD;g%4y5#G` z;(X!&Uip>AY2+hJ&QzIh8aY*iWzR33jr$*ZA}&4f4vCoZ2MxEik)k~HEF@n;%r{$Y zYm>^u>g%zwx)JNEYkpp2PiyJY>E(F!)#u}jUjU6ja=-j^ym9pvZ634%(`MRr&IXm+ zGL-3rHvg1&Z+|-W)L6VWnHh>R%MU#Iq4>TZ{|hmD=5kEW&5JfS^mc3vrHV`z`>rJy zHoZJ%Z5dsSEl`E72E9>cbH%o?^e@+$z;V`$rn;0b?J0!oq--Z+=UXImehn}@eBWkTaeq9Kt1a4;@hl2gUN|evl?~nm z#chdvq%*(bKAYp9Cu5T{$4Z;!J16jHZ19GzNydnD=UH9Xt8{0)szB7De2SLqSsE#A z8yHW$s2%wBPJSCD-vY*!n|<(#OK52o*P!^gisFiu%l6Yjas8m);70XzPY)4 zu4`ItuN2G4*TTvO(zwstpy8sg6B-3AmU6S<_Xb&L&sQDi@_CakeZ0ZVFovD`tiZYx z7oM?Pp{855!lo;LT&g%pa?GS`^Yhjd*tsZX; z(BL>pcNR2iafUJZ_{LB9@L7iZ;xb_zkk)m_g<+mCbuaD_(M)CKP&CI^#JrO;t>2L$w%}FFzg+Jn&v`FmK&j z_m|USVp|)zZP9ZkJs(H|7oIZUzPMtcfFb}e?YkN;o(}?gw zFC&9Hws*8Q!x-u1W9qTHwHue-@qze(AOD${KXoyB3-jXDrT~4FA9DqD>Ux%s+n4Sc zDQ$^SL1W3Fv0vL+G`VTPRj-DNKMcskb3GMjT{2uZaQNPk$aRem`{p-UBcrC*aF-rM z6||rIDIJ2+t6_&qI`lPMA`R4Z==F0Rj#_@|i{9K~)wjXmw`yUK6n|Fzz_(}-m+?Wr zfChtPPDTsgCYkPGkj#lr1_=hYjElZ-z75RA%DfE_oaq#wk#T7`;BACJ&%^L(u;;6* zsYB|9t7AOqE1hkqRK3~1v8PL%ZxvI%Yz}8+bWAJ%DcqD~NnSow&$m*ux7RKYr+a)A8V0W<}*In$%(l zV8qJi@=5m=ER@{Y*@?gWvp-xY$HPD&4uM(`EgX+;jOvE2NC&&59lf#{$I0pHF(5#( zHm$4w(VDlk1Gx^VFc=+59Dvb!oCMw)zVRg=C*Sy?K60c?r9;uJ|9gdDy^v_k5PmS$ zLh_H+BNz8^aJcT8a|fW+bDSnza&MWMaaZ_i%5Zss(e;>gBgh*V#fSW|4;cx=%0?vcz+^)p~w_3owh-H4x%4Zo9FbZ6^goSoW$v*3VzQRH$v^E2MUVEy|+WhjF zSUGzsPMv?qZsqLdSUi2nA1Un5EX1TXD!%o=8<;k~dxtE$L)J^Oi+))znMVz$>y&#> zo1M_+Y!c(*dc5+&m*d&5el~7je@QrQg_=oPZtuZFpxzYc_J1~$tf@Sh3Ea4KGp^sb z=398UMThMGx8iJW?>gR><2wpFF&hs&{=xYEKk?_IH+NcNpN*mPm@2nou;FBLsIXtN zOLf_yv*M-RjFX>dR~4o&I0a}!jA?Gc;(mI{F$#Q3R~bk6)v=-MLh6?ry6PublMHsC zO(*Q5ab3QY)ynf`sk9rAh6H8o@(s!!hLTkS1O32(+}M#%eK`ZSY2_Hvm{A*Yo7UDk z-<4T!{CsWm-Pqyw#;rAfLxvYTaC;X08rk#@bR#Dlz0NalU1IZx+TeM>9ojwZ$F{d+ zyz+(cy&cJx9y}N?oqVPmsgli@&VDPy0KgWO9==TK5d`n^@53^?JaH}pfEuK*xa;F?8uWq=5tOG5`7 z{Rwb83*gDHbn+N;L-^KJ8wrx*c5^;Nk*9|$ZlXV9)L2|Fn|mc#sl9tA^cVUk`MKrdS*Uf;_X!SX6Qe z9sm-?CXNBBEh`@AHsD(YU75#~ey@5A^SL7*L)IWoTOUWkarGQW$6)lp9tBKJ$ArW5 z7)UvcZcN&7%Xkn}_p1Lcw6by{90hr)IiZ{LaBZAKud!uA#}V}py*C_V_{Kfbb1!vu zFFZiUsr)HrWQ%1tF7z~k-$^kxIa z=4*BJj-S8DqG()+Z(oMUrZ$_G-}%A#V?XuhV`lEGb(+uuKRG!=^=h%_xq;k_^O|Fx zO#$x_OSRj}28A~#mP@{g0~#Y?$N|MW0E0AL zAG~9Q20R8%O-tGemA1lQdM#6xISObYds*)ybY1W)5$&oCGncBkXP@!I+p%~P*7nAR z4TMcTV!4SilEw*!NIoN?u_c~;E^`UU-sMp_`1$X4^z7<9-G{Vc=dEZqIJP%pcXLDX zlvl}@@yhcnY+~~v?6OIv5L^L~!O@%LDonmocyd}s2v;Jw`T&gxJ;o@n3=a$|`|6(* z*bj2cr7^^HI{F)%(=;4%dl_--)~#63-jV+3a)6ZJ4W6mlRbN!!n(1-HMl$^tEg9VM zF}102UigsD#7KX}A9Id$;+dU2WTGn~X@smHr{i-qgtGft8p+7{ie8yO%)?T=)N3_5 zhWmKkykp##1}Q#cq~&p+LSC(Flq-Fb`E?ItMR*$!q9+&1Y$oAcMvE4&=qq&fNq&ej zU-GK3M_&{vx7ERu&!=R)JH3=6`4d`s8793t+S7BK6Vq5RC3w~Ajwg?ac={Vx!H$55 zc<<$Y{OJ2<<6}?G#Uqy%w64s?{+48FK0{VpvJRlgumQp)zuEp|^fk%;xj!}TA@q*8 zk&?f?fC{COT6nWcBde8X@dI#j`E-Eez`?BETv@Vijtg1lo0#@MuZHCz4D6xv)SV|7jBPHx!5=%ox103TB;rKPR6Cn_s94B$WO)e>^bGi?Jvrg+g~P6Nhuj2 zTm=z|Gr2r3i~)kt;1SEb0#0RVdV+A?LlA6>pR@(Q^T0Gda$HD3cjLpxt#01nZJe~M zvIg+QRebvPns|kSbS-a%itD;@;FQB?jL$MQB(8(R8A`B=qdy=s+cvKf8r0`~g#u%w z7z-F68(azL7z~UzvcplA^fflOR>6v>_RAP$BkeINS-c9E*ZyvAt|}}82cyKV&E`bH zmK+AqmiS!=^%eCm85=l%3EsDKEyR?J5Z`{Kycv-I`FZ@x@W@vUqbIVpX|B4I{@m85 zYDG9d-=Qj4U0scZ`FWw)d@H%U?P!O3Q5{W4ZePQh`tmo4q$?lurkpm+lA!@8Fjh<_UdE%ZTndA6pSOb1 zf4J(%Mqe>0fRT~m92+>NEADzPcytiA^{VwpS&*@-x*#8*8X)dt`d4Ew%SwLvasc>E zhaCOTl=dUdhK}<}!>3E1I_C+2q_toxTIni|x<^*URUV&`5bnz(43HVwvG<>vh(Gy} ze*ENzXJcV`PP7ZLyD^JE<#S8}WM0O{tlZATTs(AkDxP{^JKptyA1aiCP>Ns}ZrHI< zDx`&GdOQ@|Fyml2sZ``>Xo=|<6>38b!y&l}4$B9bC15yQQia2L#^*OksaOXwEM+7N zmH%*_)MHegd7|h*)6oTEs(36|zSzgHjcc2uAZew7O{}3fdK;^wB4eptD zP{$NgrHqp{iYI|GcrMj~;;-Clq4VaYY+(ErEH*M*JAQ{e8)x6%!BWS<&JP&~wcP5f zP0No3hjfesHUk(hpuJquxau5?NA5A_e)j&{vfqNWc{mV>pZ@J%jNbIF;*z8NAZLo%v+u|#xqa)Fa^TDG{e0eXntSvy zFnTTz4>_+aF2}M7&#I2*W53U)QKisfdwW@S2+s;=kq@qh?5S$VUt0v%ZI%Jw zCkbc=B6j?04gl zK$u37UpG|U^a@qqgwZq&U~S3G0+g*Q#<k2tuCO3yC$9$VYD}^*-`UypRTT^ozR1rQ#n8zsFc=_dkZ926 z)d}@8e~=NwgXc|Td`$QG+WVZ^5M!3-IjEo9Tyl$$c`**kRhPy9kwaT=mP?tbH2CQM ze)dU5^vsOO{TyjdRWl zVVS4%Lr;epix@K)O&Bc751$RQ!hSh~=qMxg;VZw=b6WN6TZ@pZJlJ4E=#v4GPyfyn z1X)Ln*J-}sUY=LMAg~_Jm;6;W$zcf;znnFC|6`agOB5!3u#|^ z{@`1%-f=$SXFfa;-}AnHET5W<$sNs2I}5QtB?E*4m1|@cF$@UD0P*{or@2pcE*?HV z7vJ@csrcZ7nlKkf8zA2%j2lDsypF(X--MdAqV79aIbn+IErTYs!0oj__rjlW5^hWqj)%z z(uFR4_o_-4KzG~iUi7Na@*dU^#>;;bS&!7)xI@O)Fub|4Cx0%~x$xpJKv)>JeLG3H zt;8FIT(rHQTY#6m)B!b$Dw&oDpS{eCG9UTgpg4>(na3ornw>6h4q8|~DWIUly4U?Pg_?ddqEA6)?!;IJYxobw@zz#7)KPJ8&0&k<^pf0O(mNM zHW=E#TzmCv@$p~$`?0>m*Gsh7(azjPo;IV4OAFTj>eXv9_I7MIOi#19;lBJCKcKrf zzYvSdOR;k5R4lJ7`_;ufL*j>f`#lw*7i(*~ar4GTJocXNj@kKHZSJk*PO+3TM4%J$MtZI`PINQCV&-{RnR|l8QX|v@J`1{_>fR_~k8NDZ4tL>(?+q z@F4E^Vf?PE;LR9iFVIap9>6OeH+UNbs#M0n01QPzV7#+&-0|&9)ThRo`hZgzdu-16 zsqbV4sz0>{JaKo=Y&b%Qv-IGkQ za0ipi$PU-MnnQLs)ijI+8B7>A7#}vQr2p1x8d=-r%8QK)#u|o#d$qz`ZJ{oum+K^r z7``1syZfqwbO7(Msj#={;^Swd!&eFtGMspSa8NPdW+lgi_?-CQN-bBC@-1l?{L)0} zb^LqNj$X=}XWR&btNkwffqa$AbD+wEfl6i=dg#jh0F9r0p`Ki3(%HDP?;uO%sd&ys zASfBBxi0}FqaIm0!yB^b3Q}fPC=&h@bdC z#P_^=A}*cj$Hw-o+C&D(#6rl@RelmCoygi^hrvp!vNQl7#JmQTn^Ayr$e)VvZ!;r6`Kv- z&ccH3GquK-MOISHr)({wY>;YhPBRT2i(@Xt;PJiqDi6iX>&<``c5Ve>ai3c_6?0q( zIeke6$o(=vcqsj%jF5BMWH0*)0kkT(GN7-Q7VI`7dX?ZoK=Cf|Af)~Y-7rw&_|n`P za^E6CxwP@{8Cf9%)zaAg>;P=F(OYc-& z_Ozi`my#RGk1?jQYJ=(RhBi!$NxDq>tz&Cf!v>5GL;61ZYFXLmkc{DCQ-?Twq)q0g ztCfZCV~HcH8y<`U-Ef6rT+843!!&*iSf>eVdNyOuPbD(8zf>FMKwlWls!8wIJOe!5 zOtN{TkEkx(huCORY0`r}M7lTnVxztoJE-Wen!(>E!7vaXoBVCYC!2Ng>~0GuBCe7^ zvm@igCk>R3+kGlux650(=wDOQ3mQkfau?}pTh|SBs4$tSkLGPq^l#}}^p-%Eecvt5 zIA9Exqu9_Tzb_*vLW#59@Btnxj!R$UV`SiDl=$|t&Gp#z)ej7cEDN+XZ?siFLF8bh zY{%x>YVs>=e#vE1&$BXn7=EfJ>XOEBT`HV&S=MdppK`I2Y>?BpH81(?WU8}#dl_#b z)3{SOjTY4abAX($Xi!i3)wu~Bvd@((5uQWywma$;W0Kp?FdS`I2Rvyd@e4nOvU#4PCPSl^c9dp=JjtmbO--&;huP0rES6QMFwzO zzIGBlNPp6+G)Lt*F7-%V+gbadj3FHcjj@(DSKb`gCjZaZwMw@|! znHg^;*En;n`rff>yz+NG7Uma%d&;?;g?sArHLrY|0s}-&1`J=?{`%LRj;pWViOUbY zTZYJY#>M*|v@yy3_GHAy1F^n3A>C|{2*KQ29cO%PgeaNPOCPz@vdLuTPaH+7i4hKIXcgV#8)?{*TA{`4iZWcvq#c40%v7|ZdZ-iKoxHQjJO z4H30_Ua^qRxPyz#*;G&S_A8#H!p~cakZS`(M+-`6j-w(cAUy7kQG27Kb-@HdA8sq; z8lP%gn^*LeR`xySsSx=tn|04NVWXW7x=YucbGwR3B z&CDJO*4L#)suQ`u$?qMKtJ07>VrJ;mD z=6S>?et0ehS{Z^er0B~y+8O=Q2qC9ZH$+^o;$_^EnX+f>`!&U$Uzsy_&3TSj=3?rf zKH#fG)Q_Cl?2`}rAs0Gi)+-?O7ObZpjQB|z9v^x%;{1~G+oH^U&3DBB>B#`8w_qJ* zfN+1?doT6lN1vLDkG*#;PA~Jd%IVlx-HxwJAHx7C{#ynfwYU-B3G&`@texZ}a4$UQ zK427dWOUI7feth-&m1J9;BXzg8FuNIh}*QTjKfqk)!6(h9tjyvxd-#{#8jXw?eMa6 zfjS;d3%(=X(9#a-($%92V`ckrJRPauZXE;T^7qv(2r&R;EG(>B_4nL!|~+%zB5jryW~2?`L(%| zk}Vx3CS>os%BS>l`f3t%gt6oiyzJhS2tvaS_F}hD`$Rb!*T6Aj2}yf z;1Nk(`WohF`e6{N!4f_|lH~$jWw{pE2r9};ZaJBwo~U+EZ{e04Z!Qp)Oz8$&0Yms{@$eP#}R5@sU(5@2cCdFOeWwlG}w%%kwPkYqN#mW}$>#@*nn^t&6YvAM|?=@nm> z<8{buck)V(4IWCL^Lk2F*7O_6Vq5^Vj)`;igIhzVWPHpmoz|FJbeuPcQBE;?E=xl} z@>LdUtm@}X5YMmF6?Nn*KFkTeYJhpQeLHVG4-V$035%jjcmXSsYZ&~9?6uS5pIi-m_ zo_XQrc;aHj54|_yqYp=1SW?fRdUwgQpSN9|!~mJ?O~kt{O~+3?)sOFaVlGa}_}JN= zkF70UYo-bA7zW566sVo-t$@R2(VA3wLYKCKJ^)PgmG+?ggOl}WKt>533MevK$D`n_ zrX8j@o_r>{adZdqE$txqT-1c|)ezC;8CuTtwP+8dI z$N=F%R1A<``$zvpY_k~<&KnNsF#tFd$p^$_RP1SE#tV7pgj>=kVN07PUcJjl>-cuV zHk$c-}FJpb%7(c|Iesh;$hl%ci~kG$iFc;d;Y;_R8r zs^dv*T-oet+cKH?*VoqqtT{xfv&67zR7m=?Qb8yD3GvFz5bP~&WP+t<%hrT z`tyPc-Y(~M*Tx(})a91*Elp;DQ0Z)5F;u}3FDEY8s59>NcC=CEfqY;6kP))Js`#ol z(D~|PHu_|m;>n9TNIl4dXFt#pRJ}sr*A(+i7IV$qa`ZbNmK0ISYc}u9W!u)z`Z_NO za|m?SJt!MkDj!!sxaz}O%kq{pm4T}wGD!0InB4eRdew^PFf?fJl;x{LDnI#biO+8m zQ!ij%r9PP}IFZ2zFBg_h#XNH-W$0_35Dm{JS$2`f!MEKpp9#-P4mQ^B$YId&hCU1= z;cq!KlP#M_`u`+xVSPei;@RO=2c`m z_;!4G`simsT!3T2F$vMO3&)m!G-T)aCWEpVxB}8CzyKQPs6z+JfRJUfY@tk6f|Hct zUdlVD`{D3b=+ecqNSIFUaLKKX2jw2dnS9AZcr(lgFkv@}9| z_6~gErJwuD&Nf08Vs`#i%<^2w%GsD-Jm;$-bMvQThUX!;9YPxfHq zN9?Z07k>AX@oT^KFN9<>w-e{iKNx@Nr~g9Scj*yHKqp)pHt2^u=Yg~$(^;_LgjNx! zDvfj~63Dy6pwEN(Dj=@g|GHOQ8e~cD0;$lLx06h3X3uFM<)^%wR~JU%fL5>8XKu}S z%ai%J=Hw_4Nb*yP!iBvl6G`sJp6lcrpI1LHKC+MFOznS$QZ~_aDIX|a#^q8+^2ijf zX4G&3X(cEaOiO4`2a|?C1Zro-P+lRSB-tlC`;>WyQnJzC=PE@J?saf=v>l5{royuC^^PEfk9R^l|jwnA?Of?Wzz_$VWgi7fo)%H*f8E#9WX}9^DOzS4|JKQ zf0{${>PucJ!C2wN1bIssa}F=JnATjm;Fnm;YaZn#AM*?OES=j@w7zAFF=-u(ai)4D z-*p*st9P!&+Ugz4=ee4786yvG{9-(OKH@&v7nm1wYML1yDPr87!~mHS?Rzgq{MZL4 z;*Y#{I+kbpvP$P;V@n3e^t{i|@Q&s$PyS%x_*Mfd7bpV}7}fCyU?6=oEsZz;%(w-P zlz&gq%Dh+cUA_bQ*GlKi~>)- zW1#AR-)tH>aGY`t(xi-vYDFr*LLnF>ada*nS;x?00LZQcD;%dRhXV`do0HMyCwyp~ zBMoSnL`Spqg&}B(b$PvbGi*4d!AfLvmX?!M=O#sQ#i%sj)gp80rw+t*sU&e+X zPG6Gov2Z$O7f;)to|O@z1#XhXlpVMA8=N-?v*D+oqAPLt*oFwL_*GO=90gT>8z445 z#@bx)A#bL)ND8~RJ^$t{{xS`Kfd=T|81?)XX5jp z`sH};3%?wf7UyGWW4CwayW?X&as$ZcGaC^nH zHb^}i8Ddh^%+8&P#~y!AyyuCJ#JP(PNp3%OwO(K*OmTbIKD!6Cee1oRLwr9~Un@6o2;5|NAmR9*J!!f(-59#E%gqcIt-BUad>Y z-kc;rcNtYW(iVP3LBNr?qx1tjm32f{l?3<;NG|=k+ow}RZuVSfj%T`$r4C!Dy`Y2} zzN&ML55i%%K|lL{%>$gVUYDg2g;tQhnp#3r0!C0T1dxMH+LtMw{hAGXOApTefB@(+ zPdmblm9j5rX$f;k`n;VgVUVUxFt$k>U?>4-+HgZr0(kBRj!ApUS$N5&PDPZSqGBQM_ zc=3Z1HK1sNV*J$nIY^?f$TTtOzyP$dq)eSB`r|ZqxdK5S@Rbaotl)}-oW{Hj5gAh8 zxsA-SFvKjGd?kaqM?74e;30lrN!iYirUFwvKCO{gKNgqI#e$3vZeay4A^KC6EQbd! z6-{rFZ00odTjw@5$tTX$o=wG1J@YqWQ6d(ZTf{b}DdSKBMDoy`YH}6;Oz(eC#>e|3 zKKl4XT#&@AHBC%=^AWwd*pq-gP3%}nUzvLA3=k^r_~4cu0psuoVK6_!qw~*!JsQU8 z+!==>p^WbXFwA$dI!QRd(@gLHovH*WZ%2_j2n_PZo&6hyKB=CA^avbZVJDG&9NJ28 zT)8dXcpY1*!*UPfIa-HN>4$S!HQGo|ulfbeQxp7ogI6~9w6BAxc_YmdF-$$09+-yNsUJs`b# zhCtxwL-IQYQ!x{L@y{`weYe`mw3a+yf6h7XQ}2`ya)9mo96s zz*$!1%TK!bA#~~BGt+tcyy(m3NxD-{#iik?0!RTiVeVnjO8;E0a;xP&bpT*0!D4^_ z)d$$5HGtd_90fM#MC0&)e{c>Up7~I&!~uhRT^~KjpC5dwBdL_nAx#`k6AwQpDvswM z;5;?&yPwM`?sW0yb010DuIG}}GW+PL4!-K>ATlyk)9jUrtZLqXf*EK1am0`w@tSvq zLLk3}nlhWT)<|OQI&BCUoaUA6DkFi!f>GbwEgw9rS5))C^KymNw`?gd_f7S6$*Rw# z?DH%ZMx1DQgBL|mkCGyk5nnSBV@qQq^^_h$XC0xNHI}{86&>kQ~6|881I^Hm{&yO*A{PKY+<}?Azb;(yqNAqe>P9# z%+4*u?CgSXE2BKt8AaWfQWu1xqf{{X*%J&lAxthD&#YYk`5%foMV2+~&d(GBLU1u@CdqeC*2r*`F!~h$hyj-$DcAWMFj- zuB!$p3htzUkgm+G(C!BQc;G%*!a!G^HS8vK;4r>>hOrwa;W~;Oph1}iI&|)e2jO0I zO}4|^>?E?Gt&`O#zG2MqWvkp{X-DK^+QZ9L;rKcvjHhq=YL|x4Q8^q(hXIO1=ns>{ z{mDncTUQ?mZ>hWigFfNN{D;PMg_G(v2;=+sN#R~)jN|hHi+WDZg|!(94ND=grvr-} zXdN7Ce6TEpEMzQ@oO#UG^ZFYGbIaa9`<5&jApQAM#?8p_ip+dHCJQtfsqIR(Y&=jC zxs=1X5bpX#X;Q&e=mZY{vb-sfUk#8w85vr6WBrZi?5Nxme5XSa zxAv!``|0?;pZwXl_|W^be-N*9=HqOWy@~kzXMZ`q{JGzZ)4i#H*Is_bexnnzY>Z6#1BYx1xH`h^QM^HmJ1!QN&&Ru-_(;6#y-&sR z>2s>T8Og+mn2GthnOI!dkKg*Oe;&W_ul~ROFdQE|#Q1pl(Z}Pj{fB=&Esj1XrtDCbu`gQM=y+Z!_xQ%j1A%XQ1Pjgi>4g+gv; zFmlBJfrb3*nqYnbQH!e*igyrbdlIt`cylq3sPJU}G}!Bwj#8Bkwhpe6A|j0n$|k5{D`P=Gi&LwWuzdQ6yTMRf zdb6GKjIGRyz`~VB--Y3gH+4>%L0M=>gRbOVQUug32w{q!WrqeH%C9JCMx%#(RkDpA z`ka2qV{XX@%e8U0QqpD0rjd1|ru{7uj20Op(0LA$!*H3L*8C~GxkB9I>W$`vY0s-T zbf99WXU!)JQsHcb30sSSG39jYl=a2oh5ze^Y;>&1#_%&B!v+XfJupC~WPnV}#zbFC z)5QQ;R@yu7i}>F6M11to&_pKz>co@#vhaFh?#loXGX@9`H&LiB|GpU@EwmjP$U!^~ zx};Qg3nX;qbfJ|wnAdoqPY+UdVhYkxMge?XwbD{f=&}sz?tU>I%7!Ub??|zXmXoMs z!*oN?4EPE#7Q|rnjF*uEwM`#2p%23W{f8h2LQPM9RC~2kTMNf)SMiB%G-YDD4sBiM1`IH21+;>NeD*WH5ug9PkH`GPR@^@~ALo1Xu_=S(g)6VdT^_1c ze&qT3>sMlReJy#59>_|^!{gN9r0PZWsI|N|!`Ii9*QD0@iN0^kID7G8JRxJ`o$vfe zEUlc0&Fx$9OaI~@#>+1}?F|Kn$Hvxny!*XR#((_R|HF9r@&y@D5`h@y%WUlY9nQ@P zrILN(dbKg4YQnM3?QBoD+}c(I`zMSizrm?A66L7QSC~BJ$t&w9A@c-9o)v06CWwZ5 zaJb^Z6d31ohe$J!}d8OPZL*wAZu}!uuEIR37*diqFXLVk=jK8^_H##C<+w%0Wcz0X}i)^ zP5&hZLYerP1j)!c5v~i+=#X{qtcvfD!zLkSX5>O(;UJBpDVjWS0`Gy8?q-6%;75UV zD`7*44B#?{tS9{m=h{j=(7phDB|{Sw+6?<1Z`K3fIw1pIZlP4(HdHiTd@>^I74TJ2 zIcHepn5}4*^+q`Bsv9>BpFA6h5zqfOPsQBK5eCTQoa_l65>dD(eI}*fBj;lO{*`=s z{hbd+TwD~b=C64kiksEM%|kYt>;?=FSyR7%&w$(;WCeb6U{E%V(l*Rta4$Ly^Dwnn z7@TZL(_krKpoZ}$n6Vl#CWC}Klg2=P9-s%yW|DzdBDUb}I%4BC49Bet=&Z&7fGGTp zj@>e(e^B!lj-9^`9ofY{2$|b>xr6vYy2CVW;W#>*hJG=UmVAnyJ{B0Fg`$fgT;s>B zH(2f67rg#5Z^v5FTD9CULQeTANWR@g zMo5pZ7IRj7%2K?YlUVY`vCl1gU8iL@dsbIJ$E^i!unz%{@1~BHlHiJ`D%VPuH3v4s~hWa_4U_dV@-><7^?wQ`J5 z;Y~k$L&a~=QoP3*Qu!0poF(nY#fy){_y5q3#}}UdbbRBvFT~lUmFUgRseUHo`+wjE z;(z`#KOOTkJUfDpj7p6j)f;;AMx%txlNi^6T=$B5w4|+gkd?eOaHwtenVGwGcNnQsJ1?mmH8u}E|5oP>I zpeygVK+gF)n4k4OnFvGMH?FA;X{)?DHRXcGrmIM%}C*AwoP2O=hZkEHth>5XX2s9o{UG{ z`9#bwpN^fW`Iuk15T`CY5-aEL*EFeqE#r#&q5XQ^;yBaIR^syg55@hLAJ#^GGG4oR zD{kMq71wXc_}IJ~Z(P3`TRS`XHk;f*>aX0T+unp0bsp07&Q+T(2viq4zBNN}lC()N zUXE{sOv?tkd-q0s`RUKc=Ekj9oS%=W3BIbnAK&?%-w}W1-~Efx7ZKalNy+wzR2j(u z$hyzE0*ixsO8L4p9`88OPK#~|mm8<7IdRZt<|T~Gww|S=)4==fUnQJvm(FCx2S%k4 zOxLD4y|Ojoq;=~OCt_UU)o@ZNb@oOU{YV3c{w2*0eTj<)y1b1FSLIn?BOg3raNG*S zrq<&Cm&*7jiE4w=i|6hRM)N&Y2ZI%DYGMbQRoN`k`}AXvQO z_p6^fd67Qgj3d;EAK^IQS^fY|t4mEcII+^S&PnBvIua{Rf4DPNj+LhN0r@%B+BCbu zk^NPHJSZ*0HlA>o9njPn=0(-rK`_msbeVQsc?l<>O*jetLE7=W zNjkdY(I1(#y4=UpBjvTStD_eSpTU^c1jH>Od~1NSw7danTAh~%VtJSrcAwP|J>lx| zY*Rs=0MNaf|a7{zL`+-AJqNcb3M8a4u@`?w2}z5XX>2p zvwos2n`kO6 zYx6r1AO6Tk;@|tX|E-wmacdidK+3mQT?1_-sZyJ48}cG12RoC1;~Z57IICz5<%gk@ zspw~8sZ~NixW*}Gn>I){6feO66p;pB!;W3U4WhE_aonBa2@a%M;ov1G`&?ZTxXd$Ht*W_P=v`Xq)ifD&6q{C+%vgNwt zMRuf(hG`km>>qKy(uRSF4AOP*vk1_aIi9O;*RQ=E3-f&$w&hs``m-}7FV&?Ta#RmO zXBj)XI7B493Z^x#P?U7~KjVgWL|=(81ZFFm$)1?+ZmyGX!r)&%CC&E_fa<;Peg*^R`xGy5m6YnCak$ zG3786dFh^g4I~yTx0~X**tkm-N12POgW0m6>HaGHpc{oWyX1`r$?NLCK^4}GH(|L0 zX~ls^TIEGN4+$mx0DcGtp?kgwKFTSp1qILBcJI85EwaK~AF1%~lm2f;x62sn(k zt2=NUc@?s+jN$=9AIeadrpq(zyzq_yr>nlErnITi9P`|BFT_{B{?&N>%Iop!Yp>e9 z{OZeb{rYvK)6e%~cCN2^N^=rDpHsMiGojz3!=N7SR|*h5*z%?@xP9@98wXvQ!)T8~ za{xqGYigLkI$#vu8ze*ZTNt2|W0v6O`RgG07&tcJTMpfv-L2h_I=BEC&c491i4npr z7TTmbJ=>o%t9e#h5&fyI+-T*di2AFW|4b`+iI_RIi5r)mT@o4GhdSv*`~#^!{gXSi zGEGutVDC@#OTN;nd%`8zWq=JG@2c6j&$P1|Q zkVOzlnUr}auAmB+amvo~YDuU5vtPCv*kO3^#x?aD-nz!gBjVsUXn`xlm3T&znpp#clNEBf^Skls|7y?xk;4G-{53lj+cVQ~W1}bIqaVNi%yfMHYQ*}M z43HmtR~jIc%>pn$EMVvgh;P5*15c8wMtWo75v%d7gsg%wPKT}o2IFnx4Ti@9Y~vh< zMs_!BXaXakFf{JofQI!VP)CR%{X2J8qu-l}nYnpC%mIj{-vNAa9BVi?eCfcj0IY9q#m&3x@oT^F+wtsk zFUD(EF+i@yE3dy6ue|npTzUO!yztThdO(H0i}CU+uf%Qj@r{iw@lVG5g8DfdDkOPv z5)4)Iz~p`4mpb7xphI=zpi6TY?O`;=NiWbH*N_e2yRIv;>+&|540kJm=&(`Tz(Ax0 zFFr%=K*f$@?&d9$>JmSWCsW3`VX(YBWV-6o1_--*<>S|1YH_O@7IqVqfw|9{YcIYS z9~Fw%#()apjF6?W-`Tz&eW#Y|89w&E-e9I0*Ar z36)E{dz0ls?cJ$ZS-CIX`JNBNWAA<aa{J zXg|xA&S7-aM$j8XZ4AzwJsamPoR1&)-tYAe01%ar?7=g9JZNcMN{6aU@8|ba#$DF8 z>@9%l@^3XssbjjMdU3QBMW8H-yDdBE1)svQU58zT8gB56p`r9{ybBeNmM&MNE56fd zhl~|J@xyW*mv1>0V8<&mYEq@Kc*`JA!_*t$Qg=<5dPtXH@R{C>h3X6Gy5(m9iaQ`a z;knwuRSxnq4}B@gjQ4F>^mY0c>55~htgYUSMa|_rlcW^qlX8+7-Ew-*ldV;kri{Yd zD>34bQ>02^ybcb_@VI;TR`mKk8SpaF(ck5-a+8jH9JVWAs2V>rP>N#kw`rDB;()`r z5_hEXjBvCpejXB1&yG&U6=$5%iGd(g5>r0{gz}dRHJ2JErBs@+rTwZPIrDN9FYd;t z|K6YhqGT>;OfRTyXQtxj`gHu(S9|fBU+c#kYtykMn*%+ke*E1sK(hQp7EEh^G{%Q~ zEZcs6KVIAY)*B!vfl`khM`ay!_YANWhnVUTd3?AR9T>QLjg~XOS8m>kfAR~z7{B+G zXX1-be(C6-ofMLNxV}IhlzUj7hoy~!miB0# zk@BoRxOVCO`(tiy&iC{BN+5DQF^(%E@iFBYLXYMj4acFY^3ol`X94L#2p2#?&(en_sTaCEJyNabCrST8FJSu$5}PS^Bw$76fJ#?{ByyD-NuKa z;Ju+?vsA;y>EHNvo%$-C@%A0g2!76e$xGs(yxK?60bdC`C=bqhSTQ;DB@UmAi78g^ zz354}uf0Qrh3z=@^|0hz8cPz?2r z#4A$ig==qdD`jomeyrYIjahAaF+hxEB9ZUB6+*w7Umd%I?bmQ|HPGUdo|*wFz5?;8 z6OcTGZrBarQy(0%GfbZ^;d03QYwOccq$fwpfT1!~M*LC-4mY6!9eoQu{`F7&muWv> zJ1C2p8M%2GATty3>>E?@tItfw$Di%R3pe|+BeH#wHTC1~J*EMo&F-WoqaAg$+nalF zd+O0F#67xi7dW67s#SLwj7hhMj&p<2pd%d&`rDNbRGm9iI^H5x<17w$);8kvU;Ij} zoIV@B@XNm$&ph{H+`PLHH*T%PE%~b(+wuI1FU7N8`&vBr{0s5g)oVUmeBXWNQlFyy zaoS;^ZVmvl5)PvSbEs>pV!&Bb1qSeq{OWgcf`*Vts~=G5Ds|O&7=L^i3j4#f5 zLpI6%=G^`%oUg)SkW6ZSIiWs(JC>Ff;`03$wCBV`(R5WiP6r0{8Kp-7I%5|~bPV-d z0;B6{u-9bYYWwP8P)ld}g2<3#4OCgRx+=wST(@3Exx?Xj-fYQP0$T|);p+bqcHGhB6`zT|SF0X@FbhVe!9>SrMFZCcWjX)8<4`4W>3=;2oc zt6!J6=|#f^uJWeu{eybG=z0EOUmGUzNh#6uAh_llE#!P>V?yKSfrs7|A9(+F$Hn^| zjP32+xN-fOKTJk>Gau0vJ)81rZQ&Ki+;-LL@x2wk7tqtDa6T@`@W2?kc;9{T&c_~8 z^@^X}S-B!iiB1a6KZEw&Rt{iPal(uiEgMcJ;LA%&0tVNSB@`NpSIT5u36FE*pqti) zOZ_$ZWg6OyrcW51=2g83``D0?N5X(C!X*km(~yE*iuU3d5H?U<7RGR3@aV!Ui?v82BKWm4%3 z>WdoZ3iDI$?#~(P!eA_gOvd)sM$FL9r)N_S(J>aukNuWO9Znv%3O=}+W}IV*t4=tl z5w6Y%R3neL7xv<&AjZ#VbnZ{>6HW+;r^jO{#IH zV@qqpwY%FgP+pF!Z@dvtyz}u`oaIb03$t?J-zjf`+Ou@Rgo=k2Crz(}`E}Duw3A0c902O0)=Bz# z`^Q0W$vX0Id5eX@NWen0Q zZbMpO_Z!?qIg8eh-~RNMk5ijhomlT7o2v$724__ zi|261U>b$5t_-h30X3@2ItGrxI0WS74Tp59Kb~=L2xG)Vl1~=Oj13SguNP>|$9#}4 z7gYLAr=F6$^>r|7NdwySS|7@!CK~c%Tb0J32>I5wu&V|Kn*xMFR?<916H#^{j3f1b ztD8Eft7YKg4|+_+efK{U?|Jeg@$lnM#NO0i+`N7>wl~&8tA*+TgP!_O#INA(`Rp^s zM<3UpiQe3N%q=a(^2%v{t^IxPdPh9|$fK@X=ZRX@F2g5<%E=p&kmnmI(FggUvT;j) z%A67u@;@=%c^@1&OBsf0a>F zTRP+x*}~QQCz{vqW?FNGKa-)zXhBzS)ah1KK%Q*wk&SVi-D_GA_lx5Eyhd@`8gkS$$-m&Uw#gidRtw)6Z6`iO!2ZK`a|{x)1;Srn^SV2$T2RT zNQ%ot2MJrzh7>#NJGmRzue}iq^NZU1YU3;VMnA@(e#xh}4zBK!4w#k%M~FjUl5`pK zu?v+abC6H{AhJo>#~d%TlJPOqk9hHV#4rBtMEu6rr{cyYS5$jS?`wX+ zz@)k{_QnD8Hck|MK42)pFWijy#Iq3}e@=KS@+RC{094{QcU+*)be(IpI4Y-ck~z*D z3M6+N#@19Au=t_O<@Ni>(1S~V1UDP>(=#n{kv^4s%>ieu+yPX37tp2-z zZ0{vX7W6YFwP|g1UcYuDzV_^Mrb(AH2Vt;}?dL?!guu_-y19BWSr&b zx*;%4l{;3kV?iz7ae#hMZ(qRK2rF(Fs@&ts2JVIDn+aWgPOO*eBtP7mUkcvc-HF|u zt=QS#i0!TQ*xFc?yBk~UckFmjds}hRws$s6pSNn&J}g=@G}~d zbJ`@##!PRpqrI?6Hq1aie3yOsige1di7P8{v1HoE6bcW zOPzHt`$`I^a;gKWpKUn`#^5b9q1zX;yn{HP8*6Cz4bzR_!{v6a)djLF8?GP)HHd8X z9?45w{i!&o7bd(WPkTx?PJHe=>=l?}s89NB*NDh?4L5XhmB#ZEJf-iu-??9tPg|aP zBF-lXI$<3gwo)2@n4kvGO%mfMb>&$R`hd}tqwD)9Cg+>=MtykL)bJ$ZhViSuqx`ls z2k^{^$2k3qeCT7MC)_~Q#d8GuNS=srS&!sb^K4x*4m+hm=W>w`w6tCN#Bmf8qcGP1 z+6%p@Z{m|>o*{3I8R}mJbJ;}CE-v%Pa`=``%LgYuXf;pprb%vyns%F}-_v~JS0OWx z$mMh3MOblJcFDAlROO?=%gqbiIr+I4BL3-TB7Xguh;PUc+0Kj5X77U39S_>W#-s#p zi0Q>!5x?~{xv$C)xdtQFOIk4Zf6FxbeQx=NYj+_xOMI=1dGnAAeSlB*TjrR}lHkKg{}r(__nX|t1OzSvA2F(eA?#pR0^Vqtzx28jAKvoty#$y@tnB^-_)gxWUM z4Fmd)awA~`|50#Q-d#8@-HBji!Kxb#1LVXzxMM@ZSlpq&RS)Ju^#d6cHbi!|WrS?n z5U~-miIX9+Awxv*oh=z3r0;ITj%fYBx^Mg8C-a!ihFrT*s`ItxWGz-+#O3$o*fi7q zG$Th}af}hp2SR&Gut?c_~&_R$_i` zHop72zcVhLztD`&+Lpz8bD%PL10-o&$L~qFRLPGhPs?d9g0CXVwHrSCtUKZsQ^KQM zP4Bvcbg51o2AXi;aj=t~kbMNmq_UY749hzJhouQ}k5FXOcS_}t)MY~XHgy6%!^2Sf zHKK9@%nw=ZCb-$alefo0>x?r!w1rpBVarXY&SzJj(IVgcP-YuO#v5;3)kbx@NJ%es zB$9aPI#R6 z4v4m&^8@Yc`9Qcd3gjc-^*30DS%2v;e44t!cRHf8POU4lbik;<(C~?lDqCf*&*eB@ zxu$G5!Zj|xF;3)|Cz^g?zsw!X8+M&JrOZKEojN5YS#&D-8D8h}ngRmv2V=iiCao*@&xmg@>!Dylj`Z$|1U`$Z@VT(x4kH zuR6;e<3`crvNEb04}&}{c<>ww<2VO_!7S^^Tb7PuT#WM@V9!5sXmNovZl)bP5LDIH>j1bvaRuPOC5~t-6CyCnR*j zWgDsvimUih4xpN<8_cUX4RAIGgXt{{_m?ho@m&Wr;YM7Q-E}#sjZVWIglzYk%Mmbw zta5jg2I6I$4?ssH_m58eXn=@&y!SQP&%`%gd?lXy#>>&uB0$^LN$n_rmRC-nJ+tfy zHow-I3c!B&xE_QqZkV>~+Cp{c(I0cKtE)2&^RgDQzz^xkY^>!=0x;UeqIB*0m@}5#nwSrhYf)AHqYEu&8!Xr5pU5;vaw;SpX5_CeW6dFtL}z@d-$GEd>1t}>QB zL*L2GxcV4AjOyFme$`WAbU0?IIu$IPg&OU2Xk7*>-*KVI zXULI3Z)P@r@0sW0pZ&@wv`BEDt~vvQOr1&nXEeYo=H1<`IDdLEzW=*Ec$kC z?cj3J32WF~{15>x>4ZBvnI<9WISi&J498mloo-wKfL3OeO17hJw61QAZZ{fUHQabtdsPWqw$P`*`0nKuiv3$>0a!Jx}F8k`_-4U~*Pwe6X%3q&h+v}I97v(UK84mHbTGlo1ci=Ya70zM`<8*m%vYNEcAO*@f{z2 zf6U6T_5;TjF42~h+*QV)ldj#k_zLTx&iWOo{4Lal9*vK7UU*jAZ547(X zsQsWRU#H!YAYH|cbE5#Q57Ktzmp%`4pKSv0@6|C#4&Z<$Q0pE~zVYa#QEbK32Q_cz zM!h@$&KdurBMxrX#M~g|hQ`0nhKacIDeXwG+rH#W*bBd8dch}O$CaijC2wW%G>%q9 zO!`MbZPyx3C_a4>9IBKs&tJvPpZ=|X8VieiF+abojn{lU{KN<1 zKlPXUao@#@c}o^$>*jY%y^n&n zBzZFqlCupID{~P@e7Aw?zw|qPl(p1H@j8&S)tSdMEg`)0jT-Ly0GvQY9q`i=WC;2$ zKhTw1o#P!xf2^)T(pjS81S>sdukkz-AY7Cl$VcIB-Y&7*G4oDgSw|_Lx)$n2A6Lgi z_2Es!MD67E1Fz_aFj3a8D_35L(`Qc0AefP@(ek%*Y|3guai_`U-(l(kwLPxna?_5H zuDz=^$-aF_1>4`>iI-k{Auiwlpv&J}^{^a4sUJH>X^*TQ-+Dy2@>ClAny~4Le&{KO z5doj+lu=iP=Y+<;q?M-Y4ge|-q~W)2fVZJ(VUTwmjOIHC;JR)MC`q|C;Q<)I*5)-Lu|iGKxR~kB z#!Iig7N7Xc7hBC*9^*HRhY29$fQv<~mmsUdUP3&siO~j3>FUBwZ;{T}dzSjGE-Svfw?}|VF zm;ZzK*vCE)51u&_PrUox@f{!fP<-eEABf8`Iv#)c;kfq3wfMqUpN^H&r{c`wa;b94 zmpQ#zNR3rDRk9Ei#Z_X1b~39y_d>4va!5LUMU8GNAz2&buKH7H)c`f8k3-Wrl$#ga+@8I41R{R~?^GQrE`gZs$D69~V;u@-sjjQi@kRn? zkS1bYjrrjZJ`sD|UNE8@u5N zCC^D-%$#`Gc(@lhy8bHUJb2K(wfej{IPQEl2+-0#)pa4|a2$4B816%(=&O6{fGq`O zRo`fC$Lc;4vKHH$+>%v%9#SW~wH~`l-`&|XJ-24OziL8jbHoKe;PM#T#4Iv*5m56yD@+If%s#8;xEL~%KdSBHR7)5RSF$b zKOBAeN5Ain#(ifl#{cv$ekDHn<)>2#b%`C9gJ06(vafI}&GDg@3&8i4BKd6YdehqE zaa*|dA>KTauJzTojVPU3Qf28V*VM-#bnB{h;Ncl`v|H`-#PPWWFUNJeZ^25!cexQJ zozhmq7mb41=7W4S|1Na(>Oy|6C2^VNjEf^&pcrZCS{W`A6Y0?U+?<^^q>l(*QnRag z_5hc>ar|8#$}N{-l_nhN{P5kU!ATYv^K(L!u>8iDcN$}8C(fKYE#pACbE_3Pnv1p& z6$XjMR%%vn2S*?IN~4c+I}^_kO^esh5UDIYo5g9`X~`f>-G>&4DXs`=Joo8TSh|*< zP8picw@fO`Sj7kD2ezvd8*Yla5G~FIMe(b#Qy=iAY_2cK%H3JzDL(Sm08>)IO=G>3 zMp(}CcEQzn*Hxe`x;Xs$%uV&HOIl8_blRkoj&q;$Jj6+wj&teK{n}R|p1qo?odjq% zcRI~ivAh(qra9x|U*q*z>0h~(LeWA04jk<0Cxh%@xbDEmwZ_fiuHJ)pEH{)#>nK}0 z@NBX&E>+ws!`I*?^)+@=U!$ZXe zF8+V){b!J6$&wz3d0w42MP-)Oy1QEI?)O?eE$0c$U}i8FfP)1Vz>+llSS)F~#vde& zZ;i_}lD4FQ3$Xx}J2QAQ7=?Lyo^GvmS9O=J$}E|sE48>Xli%kaaZcQG&%K#h-Tg2y zqi6b!I3YYdJUk-Yk3=14h&2oV8HZ3D3{ADMBwIGEmrd*Xb>rpjTaX0WqukrU`pS?r z!!qcV>IvwAFTMAZGsGc}b))Qn><`GMA_<4bVcAeeLNp$iAD7jX=~j-D5Wl+dImQ6w zTSuZDsaL_cB%xb-Ooh}U2-^4x8n81zh8+P_JM~RlVjg%Z z{SJX;^=y>x0Il`d^-ky^*>@hLl_&a=on+Ptyqr9C(up>7?X>aOA>E+02X?i< z&=g`7e6uWzbNyH?>KLSha)|!5p>EXNWHA@iVQ9!AoeJlKG~jSF7VHgK_1e5SAr(F! zLPx~jpv8~5HlUw;PK29uvq48Bb~IwAqaFQ*Zks-i6Ptg$*(WtJJZjD93>-fn$ca;O^x`Fu#*VefvRn^sEQ}5Qw%1=N7>$@7Pv&8%P$xtk5mh~>w_1|r zc)Xf6ea&`AQ)`(_ zMqu+yWyy#tr=h-S&V{Xdj5$Wf06K2YMU2#abxweM2|{Q9>s3XEOjo`%-OnK_AEBE| zVVrbgu>PwJflv{ticHfoY{J%)xw%=HnVweN3c(-w8d^UELx}hY*$E(`rMwxofr_`C zfR|UA+|#h7PJmuskqlGN)+iT8Sq~B4;a|{~5jY?7SUXk=oGbcvi6!8CUF7fuksrPT z=VL@2|m-#C#6P63p!t^98m!AY*cBOQ?l}nbR-h(;)Lk z8PLGSx>b(@9pD1nQ6HF2I+z`9MgB^2!T8m2w{CP&`}e zm(PFsH)Zp-JJ1j8KTBCSAxlyPNzWb2DQSQPOLe(p*G~E36OYSF?;Vt5W0&CnV@~U4 z#1Jg4y$sPqr?`i-G;@{> zbW9w71}Ye&IdqUprvI zYnRv!TFwL-r8Y>T8Da=r{JDttz-i!R_P8<%C3sm3Xz73kDIn~HngHG*zM^tn&8s-^RyLF%*SsT zlnB~%*m`-~_(+2!Z~mBJh_?!Uk@1VlN};7~?OQtXEh038PL7_J!^cj-spdxq?P4@4 zJ8F!!_CX&s1mYKn#S%v3_AQ&$0l{jSY(_B+RwJ9JKP^B#SuJ*8CIaRgvN>yVxjNmU zQ$N$>MEqEwO|Jv|2*8g|8nyrpCvNaCUUZkF!@#S-wTd+SRgZb%v{dJ2q`oj6A)S#% z1&#6H;hY~-YijXN|1JX$(8d&J!_=a(JZ0DyB%kH?;27-wD* zlVyRF0b=?Hx5^?T`FvKEn$z;a(?5U{#j}by&XweA-}qg5;Nj0m9dn3pnBv}3t2L!k zTN1tuRjGS%k~D%Q#}9qkxpBSx+9w~A*WP|tPF@_-wpP1tbOY-Hxi{1}+SZ47fxH@` z_xC5poV~Y){^8K#_*T(VY||$vd%vGBw5u_cpW}sb2KdqH;5#P6a!f)9S$PcGqzrw( z6p?0kQ25Z*Qy#p$85#v+jb$wEugGX#%t#B+$@8ce1pHie$lIO_!?>ZoHO}ibLi|`9 z80$YnZv=a^IpOo_^&0e#&-3|wIwxi%w>mE_`Li!eWs#Sj zTQ5QR{%K!P1;2VsU>c+&O>D3a-G95R8!96WZM(%<&om;xg-_6E!7wiIt_d|&tn>fj!F`(L+Si`2>Do!FI~t{*IzMdxkU?Oq-U8z zL=D|2T>VZE^%EHCIob8-X)TW|kNzf*<88X?`=7+P-PHi^+2)(C4jwrHqo+ssYEXhY z@zh)N$-jX{Un|-sUq}xNX`zsl-8;4+AH29SIu|;~BSiK)Ej>ci^>jj6-wIg0&UKk% zMnwWquT5tHRO52hXni91{zd&{zXJ?qghDNON&Kjxv&`8b`jLv=8S$jlXo2IPuiWJo z5IPg;T+B+9-v*hVlFHnaR1sF;kkBd7Z-y*P!6BKlsFih{8%16tykOPgIoVb4R6Jxoaf)q1NdFA;Z z$hC{3!VeBMvwiZ_Z~k3*_|Y%GA<5Yn)ib>E4&$rQBURV~yqkhf2)K+v`OTv|Dj>RZ z!+QDRV~@(yFTEv zkC^2kt|XC42btrp#i+yS1}a}?+XLNasP+-#K-G5|tS)3(Jx<2)$1CEqb2G|n+z!L` z^8VPP9{V)y59eWQ{6~(0@&w+H%3HAL@Gu_Iv@k}W$GIKH{jo<&i|fZUTa9{0H*!df zA48Up`{dEnOQv~j%hPoz&R;Qx^#Y!G>~E86X~&lZt_Dz*DuOmJXU^TUC)eqGoVXG{ z!JgFLHlT)nT)09AC!;=$7GMkb%flZM{PJehNzkyHtU?}H&Wulotc#IgNEbu9uV<%< z^6vX5<;t~5I3p$G#>{izNsHj${Z7JKg7pz^)EiRjEy-;|FI5?2l^n?x!*!%pCPkq*`;pWnG$D_EOc%vyQr z#)m<7ZemzzxnC8uh-np&raLMr=s7>8IeLCfE?l|+y)HxFIR~()@ehTx1|t4#8Jgng za0>IV-e}1BwL`!GH6}eI+x)P=MU@7nr}ers!;AzZdY^k8&CwERvOg6GlWtwOZ+=w^vcmQF~6&w-fpVNS-hR4UU_ zg`-hjn1mxT0UX!R9Fs|;qwE~YxvL}msyd$?(Ob0Oi0B#HrftaViW9wV-WpeM5$#T= zK4H8RtpvLs${-5$*Feiy4F9ILT&)Y)yj(apA_w1j9nJ+ji)>N8`ZxZzJoM=2q+aK0 z&W{%IwWO%J2n}jxq*3dUh1w#V5EvOs(*erx;axr>Qm3(te(v0|Nxt%_C*|nzlX7nC zQgpS_`WbclLjhSc{pLPTL>w6RIR-QOlc^rk`SP+&)(ejq56eU$|1|C~&NHxdtLu+F zgz*?!>k~Y`G5>K9PuHM@y0&R4Ns3V$EuwJiMBEGzKT&A$Xg(1GgSp+&WbTfzuE4_K#w$`g>^`Dq}X zFO$%h2PnU09TdSPKFh-vXCEZ0ic^JHh@ zL6>PQh+kJ`Iq9Q!J0NAqyk}l|L&oQ! z=NTA2eBKG=cupUgT9yx`)A?Xqb}uj%C5|QL2g@~}>vta5FSqU50%Na^+BBxqc|#Wj`9 z_nNUH;JA>*dv|oT2p~iFSq3@_eXYVRI!^ z&myoi-+YwCt5gi)1Yc5-<)b*;2+DbkW8{OO>3}t2eG8|y)(Gh$ZW>8mT;HuAv!c4H z)A50;i{l{8%G+^N7NGp#*oT~F7PmQv9}UU>#P~HS7V^^DJBTDJ@8?BG(}T`iYq<@5 zp4vVh*)RNP9^^kgHHCS+C~Jn+s10Qh*G;0)Vd&B5T3&m3kG?!-c~qD21jcnJVU`20 zWR+V{Ez;*tJMnB zTdpg7^)A2lmB|%^AAWpjr^sWwuzQcs%D1K#jG+)%vAYAZ{C7YSBtLQp>2q>X?7HY; zu>6GNzn{Fi88EeFm3Ifh~2;}_47m88f1 z(D@*L4Q!TNk=gr2$qC;h&yDj_kKHG?@7^eUn+rETT{ifyT}1zGiAk%(_7#Ias3Cr> z#BxXoCGdox5l+!wDwlQL(&tcoVg;1=7ph<3KED+Y^B3&#M<=Cn7 z^6uf2Fob$7gZ*Z}j?+L>S-|MQ0@Y~H@M|C+Wt5a{mAsmF*X_Gy`-UMk3VHodK?ynJ z!pTZuT7V4fCkQ?GW3rUUOBP)jgtd}_OCEoCh#WG+*m721K#`F*-h5jQA3iMS&tH)9 zXV1x*vu9*sVO}OCZmP_S#a3b2GLIqBRZQB3>9RQ<_@fi3 zI&ON7AEa^}ChtJ3P5k5kN+B#7%fjM3(iHH*4|Z{VzI3Ikd zJIj*+Y9MgG7yZy}z5r)}&Irqa67|XYmd+sCEMboO_$`4NS3qAK$4uhh!ls$Q;i9d$ z=o}D^A8i*KR$D84`znVOU>aCD^J6+m2-7*+!ZJ}@mnXl5kx}L`ZlUUci-+K8CuuHs zOt6`65atuw>ofG}K%Ea!p!0%Y^Tfh1?nA{Ojo{NgMCB4lpj|mWenU@+^!5&DyEJ^w zF10dY`A(25X!9$U+GrrX*kUHaAul6@jgByp2qRwrar z3}UoD#%yYZusmPvzsHq>YhCLE$YauKO>IHKa!olht{nRi_k&*o&A_>woSK%&>1ml; zsL1r(yj;9+N&3otSagdhlZPRY)wBL25z^9QAPtFJp`^6<8d{V_J-#U-k8$?K6w7MG zHdv{=BH3~d@z|0TJZ+!ej_#K<@J9+cI9&C5L!Np0ZJC&wMSt^JM)igz)PjJfBj7C- zTwm(-x}(7|U6st%K8m!F%Dc$;x2KVI`f{+7y0#nRwg{|3~}jpw4ZcHmi5@4 zKww|2Kb$kvL7P9=A83dmuJ=Q$Bf{IY;B?U0g_99FBaAEZ_A8WIA}+#d)(xNg3HJ~n zuL!tTMPpD9dS?7u9LOc&ad}7<_4C`7W&9zcUs^{Rd%H+ppdGreLpO5R{kf0ml@ASx zD8Vnp(-Gkn5FB%FqD~q8WUB_z+JiElk6VVII(5%R$P&3!V0eHSvnJOHjvaEfdE-HQ ze+xXc@@{b+`lKYymSc^288D>07=Q*dH48C>S~Mc6sTQR=Xv~8@N~X3Rhd`cePmRmO ze3~6(hcS<=5rY|>Za5X}*b>4pjMK96aSvgfkgOBN$>YQX91z%;u>*p+*w*(LlH)<} zG(GrsG+py7=eVqEkD-4L>->gC8 z;Fo=m(L@o)wQdr)zPaRh6=Hdww6aGROs1X=Lr({B@Ug^KQ8FIsHGebm=YRY^TCoI> z2I-fIIaxQ5mrw35$QSR;$-a$zyDm?c-J%2X)O~v#@n0d5uMX&k#4D`6+7kbmBd}(=0(sVQA*RBT6tK`&;ZQvN z+CjNAIVU}ZUfn!+n@X}G>2eGjyoXSy5@e%&fpgWY$`cRXDG%JWUltZ>DC@T$ZX}?? zO_4!BvPH&WMj9~Np-qGp0C$nFqN0P8wwLFFd2HMIq%1-|#=r{&-W$K>dV5jl2pL`KhDl#656cUFbFYLxq=J~^r@k3TpIX3 zTpGIqgYmlDxH*BvdR)q-qMqHLE|hwC_K_n(8L(Z1x^NLf-dEm_PT=JlVhmp2SPnE`@^}YG$5B9JGaa2x9`Id?^k7gmeZ;c zXx+pg320kdfIpp}Yo^jph3?fp0$5oCwndo(K}Yr4jd6ML)z@)Q&@ayODk)vuCYSym zo|Vc-t-dJZTM#y;{CSmiX8^9z&O=I%cJ2n0}g0Fb-sYp-;L=`}?CA zLg&;Gakpggje`EF$RZsRILcZc4#|>U4YBfcVn~ms8J!T-V_x~>AJzobe5XtNRlTzR z2o=a?$ zAt)8!4`6J#+B)o!$J}R<5S0n&TlpAb8tHii&Ivjo#Zp0fOFa3Cbhqwv@YTxU0h5`g z`RH4s@2tl(h8`{5IT*~RB7xZC#7(SsyyDVl%4G#L@NE&To;yZ4EfS^?$)u*WB7-#W ze1*WSShDYvA3cv2=!p%?SMNCZ^+abV&lW_3??M9Nnvb$(1F|gZ=X4$L&j)IItjDUX z<7k*VGS`khFrV1T0U?b=*w({+Ir-vUdHLe~1=+YhCwcU9vARkJga$kf-fCk}K6C$W z)@ORt9sgB3NC%gCK~-XR5qXHTC3El3;kr*ehB z_Nl-+DK!CPsd&`hWQ*CVLOUGpG8^3#X}6i*K5y-AuiJye3`JEr@hoU^RwQNhSYr~yMp63|lDSnmo^8v!W&6to|Mw0bLtmDRN`X|peoSFR{Wj-Q5u zdtGux=#(15Jj2aRhz`gn8p@(-zQIN)sRxf zcq+<@*;|2Xt&sPGT{*DE1Fdmh9&BiJt@r$n!a_+x*C#HFzg9TP{7%}~}V za~k(*;e-&cX(2{DI*7&rXy!uepA|%ar6hvrK+P{`7mrYd!&IiRG$F>n!(5#1Y1u& zehAx8=^H{ek#sa-r(Q#$#Xn7Hnq0igqeu>|9~_M=$LxdF=uK3W_2{WER{NSgR3 zZSH}*{gk(|_m=vRr5W0e$&2M3YL<&@mW5FoQ1@ArLJJy21J8@`6CZowE$hZ-EwT}JOB0AmGdFjd38GUn4zKCj*f=WK|5N;LTf`=v$5bY<1FX!&;F=` z1A>ZsHe}^X_vYj?_vU5a)`H}ga{Qc-EHzf?fbbaweoeK%xG0~zYY#=Ee1UBj#z>&} z`MYWiH7kg&3NRSF@9fRD56UlII4q+VugTd9m*wcGQTgELahaT+ksZ5tVq-2y6M|qv z9EZ3QPIXk`?Z`3ks66|;Fy4mzj|VM;MK+E}FjNqE@Qz(lE)?YQl^e34o;j4kinRdc zo`u1|zVg`*YA`pi#*J}V+utXBWjI=>tY_rFgTKXud?v?@^)*cJ<{^!54?eF` zzK3LfvNVrlT0Cy$(J=T^v9|wFVou~Sx`@(coMROs0d+Ked5C#5OagVE-*P#1c1)gs z`7K%CWGnRQB4B46FbR8T_!SVxA^_R*_N<+o*UQdr8}#*nB&+>L$lJJC&w=9s1L*HInn@mbW>pu$^wx!#Tg6BuuVAz8AZ6(za?Z*LWIpmnyTy01E z=RD!7x@sNh#D-GJp1*ku4(thykcu-@6a-qS3^%Z@k(W3W><5(RFgnGLc z=2_%y(D_(2hlFu0qfQ8Dkh&UGh;m->&u#oBcl^1(EYg_hE$Z2S;f@GAuqiSgpmGR4ol!-1-z<8v^2PLGbs^@(ZOw`aff_LU(J8t7CsDn197oO}$R9dhV3 zPvbN)^U|y}^nUGP-=GYx-6U6UOi86u!C0hmLwWH&cnm1weB;&EzW5p0x_PZ!ym(ov zv$Im}E6LCrc=*s*Iv)|FkW&$oj{aGZRW9p0W0cdiYX z8p@z62Iaz78>sNSULej(yoI8?f8?aR{Kk9o#=Gyy+4C1Algr6890?j0To^l0L%J=T zeE4_E`XTx17d|U{ckcl1M9z}*50u>8;9_qZg|_dEsx-78gLM6Bhvmz~`ANM?!b;l= z`LqK|(D~K@xXCTSq0Qxc<-HG%$T>Kr{E(^Dran;j%rVutR-zvDNPllm?z&^Y^c4%( zFIg6{=bB;7wt(-W(On&S?$hO9uNKMxSwn@E~|io#PMEn#aOX+x*3tn>)Z`UI~Gjfd55W3n0QAqMzd+-3~sDMB9Lw zc6OU~2wmL<+UN6JK378%yEz+J5Fti5AZTBm4`#9u#)XAkE!OD-x(B*8mIEF06bS2w z@lNHv0DM^uJw|}KQ4-=LrDcp?8yO~97`0`G06)eS4>BAWeg3rbX?e`1ek&0KEZ4bD zK0OE>Z_00gJ}rc_bncf|E|00Lxn_8Sz7Ccr$1qDwzfjg2yR=EQF5(PBI*hYSl!iX= zmMe2`%>g05S?sZAMo&v$U%!<5?TQQMhynZKLZHfpzrp?z#tqX!*A$03Us#W_Wg0`R z>iI{%IMMK{dpj2a%r`#Q7bC~eN`F}J(6eT#$?}rfC`ApZ&Xb z2W0c0$ZtN_BcH!NE9=(64yfj3u~I;t91sN{?`0hjo_THdz;l6dylt2dk!0i(dm+S9 zcL(IdfeD1*g|Zw{2n@NfQfxTVg^5O8VW3}*9y^UxDs>KvSq@5EgpqzzPM8(`RM z-Mmitl~_|k-k+XF+)PB$?FJzq_-Q@v0%5rvl%Y`SlUF_%mEZr~v+~B#GcX>mViSWE zs|Hp&u-|-LFVC279qyIC^=qG&J9cl9M;^ROZr{IK%H@(Onr=4yqhW?Rv@6;n=4Ux* zD;LClUQ{N?^Wf9l{vdvq)*7x_3oT8E(UFPKR|-Juy1x)Yx;*n1LYNm=0qp>ObukG6 z@-D*Rc=e5gau9}hwltudZ3c@^eyOf64WQAd{NSHDyI8BrJ{Z*x-g5_>&?*^l#0)rw z65VFJ!SXDh#0tn;;lj;s9(qiL}= zFZbNJSMI%Qzx0=~vSy%H)~*}U2hqtI`O{Hwe5O-#pqZ|mFHb&Pyc75`VL6M(>5A^J z8?2~YOO~}`v4p+_KzU`ciBC??%Ij~w4f&u2UU5TviyRY#x{*=qbVGw~(*c2%w|;m~ z9=Q8XtdI6_F4cQN7Zz^?I&Y`<32~g$-?HKuYg8Tw-%hH=(0h(n)G@Z~%A zwzYf=mfo6YR9Z?SiL#6has#WYF-33aD?LY(@i0Bg55UqirpE+2<1;gpYHtpy17c>6 zIqBwj5b1n)`Xs`*@oKb^?Rk}88GS{$OCZf_*RIO&@LDP8TNz_r59iOH2wh97I!oY)Tm*C)Oe+6KHW6&cV36 zd~-^E`NBaEStF$a&zSQ;TlOyC1!nrK(;Hp&?-pB4TnO)V@%0 z=vX;^+Yvt~uN#%aSk8>Mg707WCG8|CkCdy@kCEx*Cq!;wiix(U?D0a-1wa_0)v&EG zAoDzi`FcAF7zoj4^JN7@8V-t#vu`R_=oAVmd5DPR`K9jbQ`7SHu@Ow3qN{^UAjiFt z;p>t~i?ZSEFT5SAM{e7-8F~krh=Yttz{Qb@a!uK}d9$o7_d&I>pkl#lqT!_s#+m%^ z(k+?Qkq_6gFODx8Tcbum5Ba0x7Xt;O!qKBtP+D=x5ZNm=f|Va)k3Mie zF}olGgM-Q=Z$B%*F=3uJSUL?Y+u{B8#X^tl-nm7;@K0m8UazX7rF~GBJBsy$9+Qn6RK@M0Lz|QN>8N9fswS`bca&^n9_iTG=6G z=Z|?J17##9M^28)^eh}%w9C3WccR8o)b)>XsGxp~YSV^c$x;81rmyox<`R`h1sr4R z+OT@?oGVg(M0ea7*j76)hOK<~aWUvtFAcn`zzttk!sqB{?P9+1qhb8Qvt8w|+pZK5 z=Y#3>8rEFC5es|HBEPa;nUO|iR_gqMIzMbUds8ZNHxz4gj322Mm9o@ zk*1r>O^q0u>~&p%{^%O7Wen2*+~dy-_IBi$vmRyTj@d_E!Ku}yR%wFwC18)t&56uc zM6i|Wl?!4G$R6-%O1N7NtygK%haaO~TCX9K&&biq;O&_zW_2<=BE7ySJO`%;qWo^d zBGSzHAm3~O?YJ-rVL$&m!LNd+cn)}-f_}6h1g<004mO9dk}7hIGY3F#;mZUsFMu&= z7&`_YJslr<8isZ&vZ5N^85tND(35CNKf-kSo@QDYLVFsI(R+BoeEX#TmKxvg#NqJh z%W2%DspHEKYba-Cj7&2JCq$lTYoaX66E&{o{c0Cq?NG!YB0%e>HJ#-DqXV{K$Ro(W z{b`2-G)WkS;AI=ixPUJ092WW7y&~UuP-M$m%v&sRjcJ?TuFDbhJpbQ63G1o^!v)Cq zn8R?j*GxF1QLkvsWZ}RpTP$d{M}k*eGy)ml^fd-L+Y{=46l zy_?EXfssa6OBFg5pxoSCJJ1dLMp(%>b}wVHODl6LZJ|&{iG;8mt(N>GBY$iFsC_BsjE~h-mX-YzFd#|#@D|j`*&@X`rN$o z+4A8c=${_De#d>~F_FhXc?aEOLg4Ly+}JWp4Sfb{YQ7ZO~ljW99ju* zVdmAnEgSpgxBkYLrGP&2V}$Uqtw74S8FbdU?%<6YFNYX9HU;R|PEe_>OhO24`P~`> zZ&u#d;cVwe2xlTyrM{Xh{qwVhW54hvDp*U zsO?aXV9w8n2j6!ZsH+F^(9TCJpH3aHK6ZzguHR^ttVV4Ex6qFD`7X|H=sK@F@l9ko zY?{1fGFvD~zSJ*;-hS*!!+OH2*f%VNA`Gu$$;yKU>Bnsu?=C=3qDTvbMnDYC&_td( zj7TA}*Oq1p3~AgEypg95t~*1K#vi}U!~5lPC4Mu8w}T>tEkO0+v<@XnebIJEm&clF zK(=Yb!H2M0tJpE>knayN^$ajV>Xtrej*Xhmh(1fhJyi2p!H1n;x%|~YNGnOV^Rb_& z28{EFqv6w&`2>!f0cGK$fUqo9Di=%A@L`-rNNoopW3+b^7`V7E(-J~AEMx+ZLx*EN zv%#>XY!DJG&N9$FXhv9u^XAIsvr>nrxnt)6{W7;Y+t}Sqx2yZZ6 z3H~tz`dczNamc2vtzjD<4qEy3pql97F&K-!e4xY54yNT2l3VlqSMZB6EJm5T7WUpO8S76as^5_lR|fb^a%p0zAP8Q|hfFL=Ye zJFo*ECEg0~GFH7>lUFry? znlKPyL_u+BV0y4GLbh&`X}m`0$|yjw_(!#4%Nz&}exXp7<0mi5%dfsG`Enk%Bn(O# zSh_GLm+%lW80#!N?S|}zp}Bd>CQMu?6zcKpST_J`%AdtM(KlEwpWyr34SbofoNiVD z>Xc;M<)=alom+wBX!v|Xmlyz@$R2v*deFddVZs%Pa(?WlynE;f3=dmS&>fv{QCmE7 zhp686g{jo6&dJVgo29?cp4CZ0R1b?XKMb~e_ZG?Wss|hoa0VV|^s@}=qJ9oW&wRBm zKm6&_GIH*UK087#C|51xL8H`VF20OA8ey3PM7(qWxCdy5n-Q0fUisk237MLm$MR9= zLbWq+BW|GLhD{swb&1?Cjfd`hcwpJ(c>XA0C2e?KVxC&-wB#?_KN~ZnW5<+lPp+tM zQ=6KaR-@6Ny{!;!T{iF$%C?82hI26qXW-r8ve%t3c%3jCgqGdL#t5r zoaoQS+pSkb{cZ@cUel}a4b1Ucbw+CQlTw|Vl!e(FQkfl>DzILe!WuA-g+Q%r*V(vT zf{it^Of#Zm{P;0Q8;dZXU|Pav*dNco^^Hw?%b;(Q7Uu5 zg(az0L@ITJU_U}^U&I>3#4842G=V){Qeh0($&{r)7}F( z=c8RqRtKJMVmFBT=FmGuM4yizvJ@XXV0nE*1y7bU%=bvSkNxR^!y)qixg|MuZAoS- za45|Pi2#zLqv24U4H9#RY(#88U}rUvJvO~0Z;gNm2bTlhv zR^`*5yic}oT_+W+m>ge-2+jo;TGT1^$@oH3zWt{^mcyqmNU4vvi=Zyc(a?0BbL@bm zBhPH}mZ%7!=^m925bRmBcJ&qpSd{g}ti1Z>5m|tMd-9kZ8F=b!PJt2EHtMth>gzq+ z$h&#%x?H((NiV8mlu-k9d&E6B7_lAZ?F_A)yx3LM>?~FSbrCLX`c%gyXk7&YZt0 z3)Mw^af8t|^kDsm-eK%$tQ0Wb`}b_eB7{_sw?amrph=_wne#gYyS8tUHEZ~6Pu<1@ z`lGr5RD%M4nPN$u>R-O}s?1hudWO|VJDIZ&3`iQsMAEYE;h1MJqT^Qdx6Lr#QU-^r z=Sa-uOLAjkT8^AJtq-BI1=fimjCTR@!Veih->8zKITA%~6{_2tS($VO4g4VWMF%8@r ztbHJLn{Pa}2ca3I@dJkh$mc)oBZe^G;e_x?J8!$H%}q(2w`9#+mxbwTvVgEQKOs#R z_)9SOz1#_rOe0A0#$%M%LKa5o#@~Q+NY?=d&iFTa)(=CCvp+!p<}ZH7r%{J9!dtQy z8d8N5QibzTnG-luzslrXJUHLSw(sK5iMFsz~s3=ldiRo;>Tr-BZJZW7IyHQ~Z7Zs?1Lq=> zNg%I=0^@o{o6mfBi^z6R1GMg9D~GneL_n%uZ%n5&&M>G$WIxp@VqD9sS{UNMum|R= zJtwY{n4D*uusyIgEHz~GYF(Z_SeKu@SC14e2i|$=AR71?esK z>X|+YjDq8WONGq$_R9EtMgHi|ek?~vE=j&Th%)fJK!Xp$+5!%x>&7Ls0wgyv*pboT zVMDU{q8vGOPL7|xB!v>+)gLafXwfY;cANkjq*$0Y4)w{ljceri2S;Uk8skQ%1XaAk zI93AWw4|#-x>TGn1gce$K(%y{t)W9t(AOh^cj%?cJx*^2lOZvv8=;?uY%(oB25qJT z`2G_WTC27~H$qyGJcWQX$_1hJ1v1aW=stJxvb^>F5jc`1E9Dl#)cl!Ij(Gz$lD}(VWO@{`$dk zQ8um}lBvlF&|)ev8r2RE@U<%Z5P<3(WtIxdl@9o7>2{pXGjLqLC>ADqP4 zW30{T2NC+J>csZwWg?Ydc9aT}+~?bO%gt ze@ zIFC475h9IfJS>m8Zn*KbaltRLxQ^&qVp}*Oqu#D8&=Wv9kNFfh%QGPIxeUz5TD>Nf z1>jsA&PPKQ<`$(!lVKj~8BB>9oD4b7kbCnVw_ zjHd%-=+SZSkaD+q!&VfbBzolrMK#nvhHyH-TMo#V!*K0XY>6+yG2wZ0b3W*#u&mU% zZp}*}Hz#HI3Zob2 zW~8S%Exo;SP`)|2aCJ_8@!q`r?AZB!3{Exu6pA zto`n7+hy2nfZ_Mw12?-X$p%OEL*3jrs6!`=xKop~mrtX?f+8|YNNSkNz_U%h%0YZz~9!e7SDDrlde&&ChyK*zwxp%Z81 zXV1Q*S2^|U3$i1cwp(YS=*^G<4WRU#KsQMg#k2 zO+S8Gg;Q09w^6CU34yawtM)`#uMuIJC}Ia?s8==A7IDr7bdc!2?Lm3*883c^Mx8js zdE1r0H7vxH!g6)O{Iqgu>B%ykptan}>Lekpt(I|gke2pgAf)GYC&UnV96BUj!R3c^ zEbNil*;!r33=s0)l_PrkL_%_0Z~*0^EoWEE82Y&BvFSE-cyMry(uwpNx<>TJ9^*EM zG-@2boe*9Z zCDIX@hoL=->=~&p&dI6EbMmY@9}9B$+=4Ekzbc^6I$&a zFTH%25F0s>-x~1`*RoYb&{X~se5k=^`ine1tXz~g-+f=MOf0}qBMl5B>F~LaC3@F9 zqPI@PGP>%q0!f;~S;}YR(Fg9r@Xcb7F^$pAwocjt>A_^7tVC#>`^kbo zMAOj2viu<5+UZ_S9ilF<91WkZWn4e>fhzQ$Z!NoU;i`uLk~ey$C>CL$tFSh z%;eRA!gSDZ3rvbxxsD=#o7M|jVVa->o^DS9? zE`)E$;cZP907}T^$l$&E=g1`lc#>I~5-wufw?@ z(#c>5XN0#`Dbg`v*nnZES3&G{FEs>dv^c{t$)Cq0ELUc^d=H)SJJm@`YlU_?-JyFv z>vOD=5bC>!w6rwnR5ytsczO8#bSl>Z%!1PD8t&r6xQfLUot}n3+I~;<=-VR~F+Zj^ zUVjX5%zY7Q)G=Q+)G@|AwjMJdY5Iruz`VAHwpWX3fE?|ug;5;=FQ^SIjDMkIxc$3pp6jI{4!$EM5^|oa=}2W;`ihl$YKf$%A>Bt1QT& zGZp#%>lJzCa8<5M^2#r7y9(vs3fX_~xsBh_R>?RG*g71LW<^SUa5OSixp1{6KYy<- zKR?`*>$B`22cjvz{+S1j!e0~6w^Y%HQ|Z8K)3*Wv_+T(L=Snj#fBe0t<;dtIea?bn zaM2alV0p^(>0 zQ)B_lGs=-AUIr)fm8sm=K^u#CZ@EW~p1UUh;ji9S7lZzXwv6_5s6oUJ8m5>juIAI* zgzbz=Nb;K@2PdK@Q? z7osj69edOS{*!kXN1#`cR8EKxASb-&rHnaA#yQZXYnRN(7? z$>}05@3IY!8)M+102)`WPs+2eyel=-XP?=A7I`o+Q3!gL;T04j`pQ0_ekRAWi%mIm z_M8l?Su3^0j2s(12c4dfv1^lZ`RasRx`z0b8!|DyfVsa$8dz8w(9;^~@vUB^5}a;$ zNj&30z9G7x)?az+%*t)eW8W>-c0Z&QwWQ+3pTkq>Q=J@Q9v8Vj94%a9;hV@2O z<;wMuCqb&bg1Td~+_`^Ow8^R*QH!$bv{@Q3FV2rQ8P@gjcHlg;zPJB{;O8L`KQ49k zp!I_=1f~$Zk?u?Q^sb0LdXhfPfPMF9*H}bwq$wH9~0deTVD{5kbR(& zf`0jaFx_6~qfQuK9Zq9q5oNq_r?+GPd8?J3fyOcN=s+>Fw){^z82@Yr?ftce_D+Nx zx8=HirGfRibAAL}Xxs{fGET}nP5!1!t!Vnk>-;hB4RBMFH)U>SMz(F=BmBM-rGwJi zP0oQ3NXLgh&i0iD)xQL28I;w(raHav9ehpp?Yk5FI9o9Qw${R*@{PJ&Yx$-}F8qM* z>thP6xHt;x0&Z0}-z*G}eRqE$ge)oF;Fa7a*9S$e4-pmrNBV5rA>w|%G9IsCIC3&C zj{Gxud!#8pe0NdaKHHS3d6seOKo{tF{#*BAbu$BEsaAoPG=mLnUMh__`QUt2p8sG` zUOlxWm#0{q51i=IBY*hc{$nNZ*9B;x(LiX@0E6+8;eA)?1T>`FzgB+o%$xEbe)ghd zd;8V1(?y>~5e6Xy3N!Mk@!!zY9Om7-amY3eVUyWaGMZvTNsdbw;+X zUn2*0ZeC7j9*t9XQZn zfDga(Dh(HBm=NlK{O;GDl&2oPQ<~KoEy$Z_2x=#4%O1P}5lqF>fF;bpGKlN6#*@%3 zFAY{w-d+`K5SG^m$CQ6tXs~^0J~w(_CtiYh9CQef)^^xu58ZgQJaB=qR4U3ZUw&JD z^2&Qs>{~B+=$4)}REN_*7hM21SvEySw^pypgLmzbzxk!dWeIvxM@EJQAjYECD+%7TL>`oz$AzM>In6@*{n-1U!@5r zfe+wOhV~Kz1D4bqgHsB05ur;Q(WT z&OR487$7+~NiV&ANM3mDpcDr90Y*AQ=#$RJbYPFk2j4oUCph?OY{;uotIBOVHp#Dl z|kM$UmL|;sVVy)j_QW z=*&YJbknyGIK0*eE6?Z1#wTawM?ZZ=9pQWq>$y5`$W#`pC#@>(&ED=gOz=`tfV%KDZ8{B*7D_~mbMPgoAZzNYDq z0_7it_`?|RN|WkUj#nLfg&(3VmItNSy9VnBu)IbJy#tt2efp-vOunS|k#nx8VW#9b zK%}QfaTB)E)a_AUkPq}1zU_P(VUO0bBu3xz< zkAC8_ux)C{;oj%Z%xck8@NJT|eFQYLbz0k3hgd55_O^H4eO4a-Gk#{bQI3=MS0nZEG*UJgR?dH*}F}7 z_UNLF&uIw**Z;ryxra66;fKYK0#va2Pl{Y{&44PF`{m@hYw{OAcv>pZ7`_hFd~a^b zS``p;5e*nZe(25agR?gq&`Im*Dabs$=Sl3>TbKWSi+N$?*#_aEe|BKXiEbynykY3U0yXA4||!;~DBw zJ}aMp@?lvA2Zj$hvJ9wcIqM_A=u&x@ZxHv_AaNWVnmi4Zha~zEDS00j*b7f5q{&we zFXi+GI$g-<#rN{1^jv)4;E^FNDm21S3kNpdn!yyMMM_LJnwHaw{AJa&Jf#byJHayy zlhZSD?%bHv8{i5Cg`cc`@w2nbwjJl1Tw_WWfzcj=mpoV_e3PLD{nR+pinwNm06t`-}R0h|vw z$v2_*Prvv&htTY6Tip6&UC5y!XD0o;@#Duib$BvNAh6C)H|I%DuhlDxU$emk98Ot+VIL zwRbDvsj9pn6B=(tjKhZY>*d0wOH$=q&vIA+T;r6bG6s3Fhc+VMm-56AZP~I>Ho>u^ zj?kghY(?ZJ1Y-IWV<+(Q)z8_LLwb2l4QQ^K?s9dQcPn%gkfuKokiJGZ1`KRH&@tp% zf$?d=LDYxUYx8ix`K-u{zRH)kJ=vK@jwbgcjw04K-ZlXeqMtvuttjG?FPkNx_lyqMLd$6T1ntA8Vyo(+YbYI&EZp~jumB3k@$ zba>>V*1ka)?*Z>d@=7HnuLOq$nqXY&Ep4RqRju89c zlT@}Hcun>p>^tMpu?ziiTIkUqs|M;Jb%m%IJYqzVt<&+Hn!YLXv$L{o`)<9vM0JF9 z{9i!Zfb`-y6xlqW)?Q(MfAPgSC_e3O-@{_%TL~I$VAU$xuK#@2xB4d!(qhIpk#mj>)l8qnJ!Ha>xGNQb2kW zjgTH+0XGXn^N;`H1-U*wFNG4)d3G3SG$=hE1gZy*^|Sm;&_SoS&inW1%+zK2+BI1} zJRrks%36oc345U3WFHkRfiy_ZnsDg~zMS!>x2LR|MW>jK~$_A?33Z4 zH7aK_+HQ zPyYE4N`h(^b%Y#o?75apT`pc2mC2h^`drXpUl~(_XCAGrHqr?d+7dn_kk>S9Z7FKe z&tvUlJ6ac1%N@pl1pEEyfP16PbHqbz1G47=+tAHe*XJu5a6;gG&QQZ#45rD}eZ$ zAIAa9a~=hCLLTS@XI=SB?QPng1#9I2$w|ur+@n| z1SZ(3A^Q(LyY5?gSkXKQKUb~G+oM(a`N6upG18Q2-p2*<>=4iJ5&U5P))yXfz5msr zzvtE?!DVS4C!Rh-!H@XixX?Q&Zyq`&KY8{|$@dLnEr0_71?9PO6{s$p?hnUArRhR$ z&ottwP#iEKFHMuSDkP9Yr^5kS5RBft--Hvw>~rTYOJ6Z3x9{Wq)pgjwi;^$*$*TuX z%JZ)ulOl{xJ}qL#Bikn-gHVY$LDU#UNnT0eeX<3q$?yJ+FUrIB-6@6aA`EYy5eGkH z3moYUIOIu>$t8QKhlgJnX~-{Leiw$|q+FYrkt;W*`}V*fF2V`nS$-t|nQ;dtJ?e(VEY7|= zUhStHlHv)0a^|@3ZB$b;3o-}?h#wQYF)=0cFw*^;X$6j9RvOTSZJUOrT3L{zhmXtp zwd>%(3_+QAmYN(=D@^yYaGZ~iUXWMbJOsm@jwUE*yf{qEx z=pSjbE`M=A+3<}_TQ{$hCqMZJmZ3WOxg^8GYoHpo!Dura7^~P0Mk+$(o1w<_N1<&@ zOu^F8ep11Vi6j~%$#@K7NdPzc7qT6d)}Pgb_K{%<5?YUqe{;}r#JP|8#&3c6SNAsS z#0qdh77_A$B1?RA6w0x_cNR#IV%53i=xV4kb8&!`O#qUZu6m9`zxOb-XGmNg`xc;; zGb1fJs~XhRa#SCeXMa4lG!H%=8Am}La<#n1T%9m4$O%B}=R!=pc5ImC5*H64k7 zMo2G=Md=LV429URP5~MLX%Mt?tB}^NPh%Ly4VdPl9phvzBa@RiW$fZbIdI?}-LF)a zd14j?^^ai-#%&TgCukHe2I+c>n~VFaZnU{Lg~l$8$o3t3LD|cN^U1}1QaA<{apA8L z$TL}p+h!Cq%;ug)&PA>Vn5?RAF5TDT$w2EPe@Tt*MGOq-@;O;V`a4HX%QTFZJlZH0vxqn3r8kbM!`H)C`!4cTs%V4s1Ms)(5SgRR zQ|>@Mm$D0n!-Kc&kX_q1$j0?BT#bqg8IVgDfcQ1}w9*g3%di_Pm%keD?J44zW>SPf zn)0r3OC$1`n?1XC$d)bZ^z1wh@}*oK#-LZ;J3J!a`O(u-X=Ee^qqW&nhg@kU(zsS- zj{D&Qcgz+{#wo~r$UO~<80VSlqWt*}pOJs{`+qKPzH>+_l^Tpxw3iATYm94iK^}kT z9{JsGd`W)$n_rR5o7O>h_*!W67dpo)AKXaz@uFIDN!~hm47zAn2GkkA_?pAOHJUU{ zb_D&c)nvG@AP?SiCl;bS<}G!a>cf80`Cwh7Srw}jwH=3)9g%C}VEN)LbMGBKDlfl%NZx$^n7s4eAvoqYp*K0SZw|1RuMM`72jtm< zxwL=hHo5z@{qoqu_shOryI|aM&9E_{^nC221g{6n$^BOaAwLniyp@2jvmCHQ8**+? zOXz%Xt%n0^Us12AXB)v@oxqV!5c1ib;H8Q(9t^rm~SU0dF=CAWZ?orEFWvf zgD)TFw?afJ$Y=jn17RC0#pNI@)46WBGI5g}G z+J3-q=f1WBDP!Bw^-`@7#H~fF?@QP}(5DDB4VldM{AziNGtG3E`t0&41@NPJPR9-T z7Bzlz0{cJWJl1Cwk!P=xc4>ZI1ax_evIjfKZ1LpY@o|7}qYbs6EP(@u>~}mL-Q1(& z;Z7DPvMkpDhjAa{xFL^Q(YND~X*`)|^WEmThh#jN-wpU&o6OZjj$9OZ=9tL)W7dH} zjtv{ZkZBK0|CJ!ya@Y<*E`*~GfKp&NC^L+pU%vR7oV{|>KFY;+O~LRpRd)dTR5Esp zeXCR!gs&51K6}c|y@^FuLs!#k^DQzpeW08V&cfAj8%P7jQxnZY*WgERP=rv=_yZ z2gCb=6KCc0*bP|#ACn7pI1DVGcJ;%63*+EGQFd$`lC`C*Y##2H-aKe6@i`vwp-q5K zgvCNhPM@UFHX2)-yYezah+6oV456+ifi%F5Y~QqA3e*+wXIGD`9-pnL zV;;Z#?jgB$b6npVremSCKL&7X1veXBkvV(uG92!*WQu(l60UX5aiDr*T-6CwZoCW; z2ZJT7i$eotsaNJOm-w9{b82n;tgII7iXRUAy!O})R$A^O0k-3!%Yo-7;!lrO0g~lSXv`PROiO=B8v}c3kGBuFCBAC38l`FX(XtzjL)ceuXe8gRw&T(*Qnh!f5Iz}E*_e$guDKlS|JkHI{>D>oxo?vw~W^s$TbXQM*EvFqn z3gEbcXEYR|=g~tfdzN*&z2yv)2gPGI z$eg<=`tZo}a6V365t--92T+Gs3_?cR91ui*B^Y#s<`K;zcF7xy{N-DK;4%Rzpn1Ku z>CN{q$t&-kl0sir7JKaGw5%F#&`r<+X*J|{22-y-)aT{C+jr?(tm?e%P0CuH_u=~i zc1Tb|4t$WJGv<`mVga(s!Re^M2?57V3K~|r?(@=3&ARYocA=V^57l2WZRZ?`X;F! zID-1HHpU@a?w7ZYjmmScyes+A5DZ8A@Lo@k-2$iIIUuV3&v-+nRE#(N7kQ5=i17W~jfF)y^!_oKqYmrDh90mC#+J_mW#CNc zyr9v74p6rnpf!Lw@X$SXOD|{@mKMN|eRPw~G}YA{9T=P#1|n@*Ju~W%e~WsP5%`CG zT0dx@A`K2Nmx2bIk^TY7I3vf8p3qnL7Wmx{?Jq|dJgUV)Y)9Z%DJQ*^(6C*s8<9@)#=}RF$|VME3&o6Hz*x zeSQ7q)aam?=T#(rt=VW2( zihkIT-{s(y5ToO0MCj>S8~!*Mq?K6- z-YTr7ZrGmJ!A|vkdRjhfhB}-Zg@;v zqVb{$t`vUqFyQkL6z>60Eo1nJI{H)BvgC7|^C&x~llkw?_46PfI z!NH<5mnzsXVEinCe`B--Iw?dF(#j;MDJ>UI1Cr?87V|u&Lt6bFY_R=(WvMRZqH}Wj(pBjzmt@EG?e3mwUIF6@q^pohQ^P0@LqZX~R0EfYaio#SQPndy zppG&eV_IlEg|htY`8V`|Dv%0Q;aVtlFO!y(EsmUq5g0pkSHpq>p zJjs~uC@}QsBFZ767E%HTP&X_Zl+GIdt~(fBP3-O8j(VtMF7bH#iGfa1P} zZT>I@)bQf|Y;VW12h`zwQU`K;%{Jy>)DHXMku1dRGtRYue@x~2rE6CLnCEM;j>iy^ z`998e{W06Y0smXl<9x#~UHQ@DRlE)r8*)=PHw7Q+?*_aux9tr7uS?>(} zT?QW5MkpKnXxu}@1B7O>=5ah8EyMt^Y!Vp>NbN6>CxBFQKmgM~EWd|)7S|OX+tm!F zBjia~$E#A&(2fnQ4)f?dPfkq9_MN-b{P$o$;6Tpqh92X4C?`x*C<;E!zSAHcEMIx#c{=}{@rw3XM2 z8c$tO>$awGysfcT&}8kGD~COl+o(y+(8j18;}gNYOcFd*@S|-TQubk9j7B5Y9fR-w z#lMZ55ANw6Z2aPOS*;i5>Ft|AAMVyas|Lx!Y zO*wV?jJ*8no08=#T~(#b2x|u#9+pQgsM7q1Tw@WQHI8`;PHna>cW&Jzf9o4h%K8lh z^5f^Ee-8v6SFK~Ejf1V2on_!Ec3!Y5@MTte#ASyS$8%d zU+R_fm&fIoFTaINzZYeB+l?)LdS*DHuhfMvC!mwT4{i+&l%zg8DZPb^tQ+Rrolr{4 zW2Dgmj&ly`_=__x@)$uv$%k+Z}Y69A4Q3pyNKWaZN<)x>wDE;|{eC;cb%FuAX zOu`9&``}5rIW-LyG4q4PfECHJwH*ZtCTh(^F_Z)EdMhFl=w>%671=h>D_{K7WAgR~ z$K`|5=cU*S-P7K({~sBCNrBWGA(WG3tc3n3CPll!S$^^$3 z?OeKgO}1>_Bl3{Aef#FJ&Nk=gXXVC?YqA3lNZmb)mV+5aI|$n*LLySRZ?OTyq3%+x&dQr_ zyrTO)PyXcdS-E!Yid?^bRW@$ifI7Ttj(w|M!P*B$y{8~kQ#a)Dr7_vJ|4z{6v!b+> zxVLf-27*3ksm)Y?>xVAch;mM}I2zoCkl|(L;~ml03$P=&%p{G~DpI;0GtDC*JWj)O z_|f*G&T&gnReyk(v29dG^JZr3XgZ zVx|DyMqReiR+)p30MbA$zW`%Fx$!nD-jY#;*FkwvhB>r-&+a|)_kQQAvTOGmIePx0 z{NWE@k_wF60{t3NQ6fgWy$z5Ll%>fx1ps*YU2oSxzZ%HqO)>(TuaFzWWSf@pD_7)^ z2XB`GPa&&O$3JVuw_s^JBK^3HPGGG0a-K>ncxoR8THEOiEWtCqg=|iyDll~Qr$=OPpilPf*d|Mjs=nHlxRK+_Po*#Y?ZtxvLYHJH4undRrD_Fc9^Mfr1&yix@-l-l$gOiAV31 zFFy6C^nwvSKcT%wd0pIK-m@otg|eKya7kWx_dUtO!6`PWYfU(}G&bP!@}UG{7=X#1 zVSk{z)w(?S=w0&AgLle>u_^iS&)<;KXU(hU9c2Rb2-v&PW^nrS%1HB;~vdnvTdF6+Vu&&lt$2%tN9s|waIdtRi5 z`B2AxW>-b%mh)BM`Zl`2@h60GakI@10AWd+|4eDu4u6(2qD7@j0X67a!1p-4JfU+= z5(2)v3|hB5g04ZUgidvm>EUr4=Nu$YE2EJHTBduq9K?kf(<4{a#~~n<(QwuIh|jyM9*QdFN%= z1WPi0ov-q}BqJloW#sfp(3qDiS1!rfGpFVB$;0yAd#}r;ja#us*HQ1P?A>=KrV^-v z7T?H}Rm@{gM_bs>?V)t*gT7S?o1C6}@~BxTgZitH-*Vu`!%)Q&rALs^t>thzNUPHg zL-^?r|H#G&4hZwi7Pc$3{=xp?UXcfOh&-}aWZx!{A>M+udE@$TQP}KQ15U?E9gyGo z!b6b~fAq*di=#LEbzp-*$G{3O54^L}*@B!rdrh8y<&ez7Grm4KAu}^`C<2cd{p0(K zlLDkc#k0aQ^9wN2&gq+c_{{~o$%d|uEuNGO7hFI1%xS_1AT!y;s`T|VC2a8U#1@&zgIb~|{Di+n2?Z^~CXkd>2{KKB7&TyMcDmgV%t z>+;-d@1PEEcOWv~8}jCWxb7lUixX|v;B<&Q_3+*L7PA8Sq4#T39oQ_|t<-vX__4Z1o%5MTtON}pmvlawU%;n^+J8qMs$4BIs&%Gs= zZ_YyRV&}v7G`)((Lqj``()sW6SrfctagdF}gR*1W7Wwoi?v+O$x?5g+?QJ=F=Cb4p zy)bGaSVt>_kY*aFlrf(uCcgQnf=z?6&^#LDs8{1FN#SttcE|0TH_FDfYt<1;g6CP= zO2L>7`%OZ`tBX^{-1u@>8{Ychn7r}M5y|rwN_T<+Q&`LKsuiCR;$ZSttcAIGY>qYA zwQIY6B$HRkxSZN~J(NTJLc#Pe3*^_!y{Sf{QJpW812) zuW-Oyd^+f@SE|Qwgd27h?w&jM>i2{+-vU4!i=h+MTLV&C36htz^fXLO1X6x} zO#Qg71iF>?>+(kh{<$6g>2ZKAsRfv%`;!|gyJsHQfCEymNwdc1%FIdTTiNU*y7&)x z_HpWO1S}H_zc0hzuviEzqw;Xa1RlGX!&b1e=s{G@wZ#l3Ibxosh5_#}SpBqqdFYfE zw%rYqW1XzmiB6c_UdKfe(1}(Oe7RPscLE!q5TgG0^ni?IbtoTzmf(UNK-f-HC#5cd zCtRqrq@-&+V%`DSwPP=An~c1F=uP?l_x}XW#8J6)>72~Xj$=*b!{f8qC;9Q!oE$v( zx_tM$-z_yKkM;y1ktvV` zC(|vW((rM}m8&~Z$IN2~NF4{jO7+V_Tr&oDnlR$U$A9)$f1jQhqtDu=H=Tzf-yQWCRI2S{1W_*1AFB0$Dfo#2M@}b!^fnQw=>X5U>ZF% z8nx`JZUP)M41Cs2Fp3};N7UijXl(Y#paU`h`|iK~C;w2kukD4*=3qef>co;ZHvLkleU-MP}z_W#8^SvSw&N z&l>X0VjDIN%EnC_WC_N89yItY5z~1Kjj_xA!F;460b}w%{Oo0U=Yvzy3nzxRKGEgT z=SILav;xShR?d}0RZiPxZC>_l-5`JG*S{crS)R4DacE}XgrLpbQcf1?J#y^aC3)lB zLvsD*H0r^Lg?Q~nts9t#aYh51&m6ma#SAOS5eS6lXo%ff*L7EBd;NwHf)e}YX)WS zu5Gey^9H?=#oLJDD@`#ht6$1UT(4VsX7NLWy!GrafBv$Z9lM74jWJ)OGX$p(bofBG zje^ZA{?(y#2;|qk{5jbGJ-dAQCN|M)GPf|V4ky2BvTNsdDZu&Qtu)+(H*MM|{r!D< zR-0GR%4jDGD^nj5=NLi{=nQeL{rLIUp(oe$xs)87LmH#hHf=Nos9$`3r-xqIMG{H15hUg!&_e z(vY`XSehD12z?zN_INJ|;M4t@)lv?qC3VXMZC6e6G$jpa7{)naoX{DCr=^m`T#d|9qN1b-aTh~m5&AEXl~3r)j6_l!;&#{E+r+Z6ix9H8#8 zK2LvJ$}rBW|H=9m+O0WS21p$qzcHo`#1l_^UVHY;)8CiZUi~?AT40aXP#$%Gd90b` z-m>mF;}h56xJ)75qmBiy`tgIgq&GaYR)&U$Wqy7h`(afsT^N-D_OHceS%%jQYWsXi zO>=2pZ9v++W=jAve4e3Se)Bi~uH19)qp%Z@PMgc?yF(8=`I!_WB}DD@{ay|_>8PEI zb2J!_imjYBA-!xs+XLuR3TfPgG>l&!_sDvzy-I4>+R}lGwZ~dwqkf41mlsc$72tZ7bOtvKTW{>>yKlz!w zdE~sTf$`sf$x#)QxL;FQGR`TLIG;q?($i>Y^SSf$#ZG2P&3LE@&kd zS-y3sD0vu?yai^@w%xL0=Vn=GPQj2oCF4`v6lzdj8nZB{c-9+z-~>`7viaTX_o@XC!a^A^(jAOhB@pSpa>$PPo?yIS9wndYA;} zxAWoa=}Q1&5-srYIUt@ck2p4vNwzHi-#`5;IezYnrajeWocs~7e}y*vQ)304gK^u}o0t3UI3U|L4$1b7YvABk z!Carb_}&S5?Y+Y=qD!EQ9;&S4Ipb;ikm^IwazGnn*30M_lLBV$Z~WS4<+j~hWp-vp z<`-ai(*eQw43rB}%A>!S5Bh*2LOLJ*E8ihR{c8bV4(ZBBoZqUCzAllYwj}vtQBIDW zmG3?MI{Ix_+cLZw1ASu&J_E+(RNbg0Y=YqFf&1^5a~Chm&6_u*n9X24#oVV0r=-a@ zW-$7oX9DpDCZxaItGCMWVax(#!e_dMhWcdx?p@N~ThQ0CmazGbg6{X9ep%|7vc7pO z->5(jNRxWkVP>Np+a#eE)rx%T@%!ZdyZ1`7YOezKa%`0a!OLRh&`#slU^R5SZnZ%o z<39#(2A$>DjaJ8g0XSrSZt-k1}4+wbpkLfR=Fy{(k<@0ijI8GGVw9 z2gI&0WMpdmvb^!y%kqUUeqCSk@!YdNlviKPnAfc4*7%qm9M(zUc1-}{`vA3-cF4*RGkWQ;tjFSx05V`I42j%bloqvqJ za_#2aGWih+Y+rSXcUxdRM?;#P1o9B-o|lD(Fs}{hbtTG&kffD7?hY&)msc*>rxnl$ zdH&!1lW(d6!dvI~5#}3{{BY`mY$?~|ll$R-+_ofZ`-Pt;lbe%h5yQZ%@7eY1*MEz` zBry(dw_C7iybSk=+_72YiHG?XtPcYmKJ<%hE7S}U!iZrwBoHFl`rdYVq(irCJ zZL?6S3KZki#hY^V`nW0>m81@j`R277(x_D-7&=&9X{^mqzMM#2m<+Ww(Dwu5m5qi! z!IX&)`@yh7oM$H&7T~zfUDnGQ-qt7n* zKO;|?49Eq``B2N~7&t^>t&>0{l7fLK6?~TUqaE7wG@%7_(*sWpzRr}g<~LVh;1vsf z^76sc^3uWMh@+3Zr46(=G~_zZen1`#EC{@v4oeA~0JtKc$LA)v*zhVrM&o>A1Il2- zZa}`XwTjGR)tQ0roW5{T-aC2<6$`R=#|EiE=kjQaw@v-zl@H`3^sQW^!H3o<1MLF! z1hU7ky{^~f$xOaBmktj50h z&K)0>+Vrf#=r%gItzK# zY7IGc=As-QIWO;>I0r}nti1WbX}NUmrt++`NL?G?#zY;mwsfOXLmO?PFV-X&bI3FL zjMW;8vSq`tJoWIsBGqZQa7`&ezJ(&3d(0PJZQw`pnq1^r0YFkJX2!YES`7bm%+Q{b zk!dJ5Ig^pf+odOw>x~)mIp~}@8T`QLFW-1qCZ`tkc22II?2o6wwJC?R2K5N*=Yd_D zX7l((v-ek3E~e)*OUvtT~wE~gZ;8~(?+z< zbftjm>`hwrRvCG;f#`&+`KyC=o;`XU09R`0#K+yRD^QP6NYN#&1mZo7^5M97S;c6^ z1L?aoAEsc`w)P2W{HH#U1~N%YUxAt{>eX^0&*JKBBw7vi6nX4IH%YZ`E+5*9T>jcz zw|n1XR9cRn0o&)E<_-Z-Ifg`4R08{AyjmYXQ&S9Bo+Yf5g&wUWc`*KCr2LFZ%+sxd zjY&HAykwc~$DU7vZuHZ@_bJeTR3KdzO`-}9b$z=`A~HRS`vgW2Ps)?O9GN8Y&vFfz zhK5`|AnGfQ80R6@cIH**=jHV1G1cV1CS^_D9gU)sR6m%!&i*+H(&%0J6sZC0JvxhHbZy^o=M8TI)>5lbV* z7_5cZjtwxFDJxhUJ$!DfZ?F+C0242~Vi(5$BTR}2Fsk^8oZeCjr1 z_9H`Z!bOA&qoFe>T|Rzb6gVSp3C_nN6h;@S0yg$RdFG`<^7>ncAOI9ak5mak)9y(_ z8ieA#Rw4xzW9$2hb=>h24-4se1-Fo(uYCjXn8GBjoYKoku~d-0zLJ#7CF38|n9esl z@MC%ZbGRt&x1G4~80V*FfJeart1ieTkY*k2Aa|Kjb%IaO*?uG_oRu z;vk)dml?`2`2G^8fN99FKm)F?F?g9K(dXe8VY&+H)S!Z5B4zcKlqJa*dgbcmoIL-^ zn<&At@{=fr#uD5VT6kEXdW1I_!jXoR%8x;URae&PkOhy_yGSQsES4bC8l1(Q^CpSdx1bps-%h{TKF2H=Hv(mq zM6b^wdSE|1P0mm1GQaL#f#X|&k<4dM8dyp65ilJ6UqY`zaV%?HuJ3!O3a6I_BjBIReO z-(L{k5@p79POtva0J23`wS@Aes{s9I)tFZ3S%iV6^MJ#pBs~lmu^7+Y|M32 zBMJSn7WgVh1b{`k_wKu7bYxU6U%Ct@3TqTMA>>%`)^TB)<^gSeLi-3gmrIz_{D|t6 ztJmc8sZsdCe8u>roI7_;Uq`It6^vO3;hLt1KR#R1sMTcc&>+^HP3SB7$GPQhUkuCt z|KX#DmUT1u3xT2!#otmVfe}ClbpATs;)e$Pw?is((=t1CRpzIzAwD5ZzOonNu1!Sk z#KbuEwvO0ZqWS>+wRM2Zxq<*~GeSGIbpFK01jZx1a(T=)3~98kNiA!XqeBcK$`A6= z(g?})PUs;mo-Efbz0>h>*a?=)55do6k1@nFJiV136FfazuhRGL)dT4p>b}s#{+Y#k zOWOiE;T4{Hh2Lvfj&FYpk$VqAIx8Oa%jif~x(?YNzAQvP%BgvF8!URNadTvNwY?6* znV(gN>qcb**)Ts%Mj`mLP}nR*jX3TpB+G`! z9tob;25j?Mvqx^*Ao7)aL_P!DHY`$`hecLFLEDnqC54XK!+g&KVe_EKQ~Tk3z&Rzs z4-cg74FvouLndtZ?-p9JNTb*cW%SaFY#5liVxJs8b6uW(`H3DjLEj5_g!1{<-{%Kl-8kyYKv5 zzW0ll9gBFZOzkN2D>j^77NJ8z*f9ZLrtD~=mvKxdcdSZL()^~$dwIxZP?5Ete9&%F&fFX@}c z_=rsik(^M6eKU<=Kj26}U+%hNzdUsJepx?U#%$!7aWty`ECpSI&K*2_R4!e=p^ivX z1;tXF{8;!9QZKCu>p0sq9i^Vpd7|#N>Tih3k@A_8oq@_B$hQU8Ej0M&6%RgSZO%z7 zQ0qGM3r*z7BSI|W^4Q~#%eVjipUAKO=5MJ3&N)L`q{}(P+dLaEl$I9jQmr-Q#di+N zkDh-^e)_^&^3q#}m(ot>kXfo;gtd?9_Hbqe1Q4ITPM>%b&%^5WKQFL!|Z-|+PYzuPc>;-l1m}cXY4q=? za!xvgkZuTJT3UV@thRgzY2}mj;$!WUqCGp&>6jt$;{~rnA)gT<-^V?4JNEGqeLBJR zl@A9bMdXP&>Ls0nfqodBkd^LzwBL}%=i^j&8P_Wz47ryu4Y_cUQ|Lh}=m-JDDnVBig&@w2Sj-D6qoS0Ux1USVEy3hSi=>%UdER*EXa}=W5 z9a-9N>`UBV?ZD6GaxVWtOmK-n~`iOZUO~xJzWm8f>FzXsHII zh!S1scnem|oyp`Ss-18+p4bZq1kT3}#OJCa!&@F!S|1Ae69EpiGw2HVVW(Pwf?_wp zQxDIqW~GrW%OCv3kLCQ0X(^Wb&_jw8C7og92Sbex#8t>J)DY8DkNW4*y&*?qoW_}|r}k5?)VA3h>~^zA>A>({R7?LZJTlmWS@tNjNb`)@x0 zo2EyuT)m1eL#e_0e0@pgV5C)1WbE=)896&9C&zBck<(*x@c3yteDa)paAH(Wox3VW zPF~Qq`q!+r2UQ`H0xae%3}0R$;gt@%d!0@R&xjEzsTQf&p6ia8sd4;hHyv`aMQPyQ z$0O7~h7PTu#(n6K!t&|dr1)$Huj1qieR67STz>N08&ZWL^UZBq1oHQwbeG_OR4ekx zUHfF$=FM{c+?e#_il9k1!1RMWCQ*Ct80G@V3FsH7p}{_R>cP9@-6JREm+zdGBF{|o ztTD=(tKr%PaH1<6#zEDtL&1%LjCSwX3InxIdh>boiS6)}yC!=+4>UWwAU}TYHJNKr z-+1d8xWWLCn(1c@eo^tjnDT&s>M!|My=C0#v?6tuW6w0wL>RxVw+DHT2;p36&Z5o;KX zo}Mhd?(EzqgG2rD!prYK^K5L{ zFE7goSU07A+AFN*6#9-G+u&+AH%kd~gr)xxdy*JP#Ot83qpj$_VsUg708b~rzIa?dy8$J(PW&ul%$ z1aezzTqcYwy0ZL7VY>~I>kQiRad(U&4lHJ~0OhoP5Nem=@$>Cjc}^Wn zhvacL2-jIc`teHXf!9QR4@~tK_Q^w7Pvgt?>_t5kL5+ z9%!6^(Da>AOVjm}`=jck(-H2Q&>g+{2mR%hll}Yek#*}f>&an~^!sMqPahgEOSAQW zKg!gy7;3TAk7W~r*Im!EM-NHe?}RL;_N!t*$D__wSJus2z126$kMZfB{;3r689A_N zNuJtYm&f+hWlJCYh}otr%-Neq>*xw?H^y0wYe`23WWK^n^G(?T59afC0Phr8(@@zMES8NyK!mpzaiDUg0eSi0NqOeAgZf%jDxsDm zL82abfaqG3CJhO3oNZg2^{5b*&Q05*HW8Ul`6bb(GgRaN19=O}`E%!FVRjDrFdm>_ z>M`SwMjMrlMg?#8Id|?n4tXh(h9j@c({T7gGWYG z@o5&*$TcuITVD-0#{Q4vgcS`%u+U*HdX&dFG|Jh^M%J{^DeDAy8k@w#}gnm-~CSz_Sq@?9QgSWeF-nLyfZQTOL!uD`NqQdA(g;iqk&sMFA|WkZ5qjj~ z&^kl3&GyOtf6CC(&j7nYT6vEhfnyboS1dJ4wv!NiE`;B_f^b!jTnUx4q3Nc^QHIp? zqy{2f1DI|`n%mo(>MehhWjj<==tOrp zus#^rx@$ms9=jcPgD^jAhY%k7SW8+;JPdWeiHj&O-J=}?1KsiIgt$yfn*J^?&!{x& zu`ZD(q7%oh6_<{`Xs-fr zZDhLN3psuovJB!(=N0uj+B|UJ0ok-^C)(ux!4=7mpYJD+T{Hlev3{-)QVNH9Krmk0 zG0Y3&-B9;+&Sjg_tfl`!w@Ani5n9kn!{aZ1@~3k5mW(`gU`g)YQI|EDy3}VH(ya5! z6C4n1o$7$V6z%AMG+}HlRO@guXqYzSj*U&bkL!TFJ_`;gHdK3vWO)0B{1Blt2EjfQ z0i3vw@QpLPr9$5T1ittN85+ktTg$T{LdQt?nv87$=flsu@}c>>ZA6uTXEG7uk6!o0%?Xra z-^l~oLmICH@XY~KYfe{KBEpArn~f^ZW5Hm9K?^q2f#KW0mhv)obzD9;dPNHc+R8`JdtQ7-&nc+^`Mmd#<2Yi?UgUMajd^pNEk@Ggpy`scE@< z-Cjm9c4b^nogITiKC3cS=ew_8d1IT_H|w(pl{S(%dIi+Ea&t~zKX?p_=aOD^NRd=MQV$|QX*3u`bxm{meQ58So~ zoAU)3pMoCi7#UH|j~^SZ4D6Q4%LbS8+glx(96y}82pQc}XL#(&b=kOKy$rAE)AcQ_ ze;#}r-N2U#F$qlRjQq2Bq<@V2$SnbD8?BE9xMzj*Zke%<31S%7qz?@J#Bc$D(NJeJrZjyYd>z+r0+^qq zK}a07fTyl4xPo1Z16&!Fb?92v^sq7Ir^B(2d$b-}x^a`#Go%KGX?vM3Zz0D+5A|51 z_^}-S(+*k|q_sv+Cgi2Hofzz>ov$QtCq`whpfrGd$;gF^BeG@dZp|v@^D=VkpiEDV z+Zs#9gNU`3MlJUdu35@&fW`&U(Y6@=VtJYqZL+pKj92D4H@Me0n+)qXzpb@n$L+Fn z*IuPzbH&zHi<6GqL;*H-7HWKXQADtcqDq^6@nHzQ?IhwSiu;o~v@@6<1LGbIv@V-y zDc1_u4*jWo@<2xJ-?1bEa6WoqJ2e(yE5m8yH~3cMfbh1fDk|oB8gl!FhJ5MHrhE|& z$o4fNle4H?1;Pm-fwemxR(@_B*?9`Vj`_x)GiT4s&wlZ;ymMp}hT1e3ZtDH;e0X|z zXblV!7~zoDVy0LA><7=w2d6LV`^|H_`T-g=%FQ?hW@xxkG)O~892PCOGKu>J@yE!R0E|1AQcOQ@p9O|Dw`o?$tjEu^uGw0;W^$ERwsa!7W{Nl4-+H>lV zt`4?lDDRjvZyq|XZ~x-M=az4>)H)7Wo+l*+p(~$#>J!piD#$42*t0LaA=js7^gAEy zpKkOqpIaoc`H^)?CDj%K44t139 zkL_CJLx+|pd3XZjCV0GZ`Le!&jNc%k?Ch#DX)8%qRj@;U6hdo>j}DA(MBTBJME{!( zuKxfl&*SbjxNdv2(b3B1s)#a%)H4VrR z|CFxRKSET8<)KR~W9Uc14yo%*P}**8@yFNqz&bi=+8#BZ$2N{0!aByM)zdnRYg#&@ zP=sk|A!>d=D^B-O#5upeCk6S2yl`#TM1p443< zPd)hsSu?yAYbUf6W%WcG=MmcQ?IhzKVy;>tEaM?e=_X6KrQeD$7&eE#mHU_X`G0U{Wa3#=*{3=Zotz#AXT(lii2dCHY@ zgvT^;sSi|KHS7`R8Aj%^wkjWL^KDQpN24*RVE)(?%jj#8S2UjhWLa}gXtbFjN2TZN z;P*b11x!LZ9DXrG0orPAlAt`(F-hT(*g%6$5k?mu5T-eIZFWIUoWCq@96BK*XD>?u z2HeKAL(*3&>f|OdmCrab%lQGN5& z%>10}yyF1IrAOwcr=z+IH4fx>ynp<(oPrV9!?Wecw;oeIev`x4u^lRi3ss7c)xEdx zmWS@#D_{TIWAc?J@00uP+9iMb^xJY6de~3daIV1fP#vN(OHw3BR_Ku^IT~>}3@ytx z<*prD!2_K8o|+VpS3)^HkF$T@F4=$JHZ^ize&b!#vvJm*fFRi;LHon8dOYaQBFZ$X zvU$T04AXUTV|)h2H%p>jGQzSrvK0JA3}RfFqH#o-?8@1((YLF7NJ1Lb(~qM8%QBH= zsUxm6cWfkFI*aL_E!g@;$Bjlbj?GEoLvPe|o`HfxpwGV0fad%oW&YV)Oh{B659Dze ztPWp?%{725v3<(Gbf1n-K^?vv9PozTu66A61v!28f}9#X4?*VOc=t;$91OndnBVr$ zhI1u3e|;Lx`k2gA7O>uNAr+aOomW11OCO{uLQiDS|OxroH?pg zx-QUKuNC8(MvuZXqX|*&4{*NqJ5>6LUcN1oc|<7Z$JQNrSkYJ~ z!ReJo!}?Uh=#UX>Gv>)ME#OKS9k?-0hi*JFCoPw>I~j+`^tR&=k>}&B0RE#4$A$9A z^tf~<9t@m(+}c2(eL^}+?$+-RlI6l<#{F>=0*$NIdLhJoGc>zO*CU=B!J2gD+)3H7 zV>kBdS^4=-eem5tBbw8W$m2&^EY}~M2wr}4rpZna`WcS|NxvhYhpF`I7WdGA3ovRKI6z)F0 ztAmKY&TM{Y*f{+s!c*pp3y?H#mEucWmYf5EaqZ-Q=!XdPEiPbkv0jne*3QWjdl%%P zofX;KSCiS9C4t>13ssSM(40cZ_}(Y%LxkOgzZ`JSG@$yykjNM1{IyB>XaD~DGBe9F zp(QEx@V>u!nW)s|!Mpd#m!5n|{`k8;MY$=-m;0bR{0JR3Rr0X}g9e>kf^paI##%G0 zZ?ai}@ihP=!_*Cmr*GBbS=g!yiM`OX$y$rh17qJNEe&!iGS8UuUT>ax&ceWKG;2^? zDl??21XvtX-7LpcCF-QKR?;hVP+#fkp&pYDhUz2$)SGwdH0bCo5m<$NWoVZxc@Ma4 zGK+jg<0AS2IWWIbslib1(XUK@@$q}*@q7131G>O(s8FtaEi4~b=W9FN^4M#q-PWyoOV98?znnQcYPX#Qz_H;F+u03k zPn|`Tt1bG-(YOc7oUg|1flMEI;68cmk-PP(60f*Tpshdts~4mK2RsA)Ttqsn+uPY7 z4I06aW6QHj4B)+1>kIP0z5C?1Klds5&JX@dMkXd8dl<#gqeZF9a9=^cxV}(Xl(Uz{ zp}qsCNjf&RN$Ba}CkabfaQX4MY5DpWo{$SLs$V%cBK^HIOdStkK|@67*we`5y|O)+ z16;&y2y9`F<{%>e7Bo5_6r(!5pkd`HN28jA7G0*3=Z^hYCv`o9sH`&LnX$UQ8g%h6)F8pegU*YTFd^+Q9lf6op%aNAzl1ZR$K z<9g}Ux8(h!qcR7BomWCQr%D*7+wQ+#Zrr#o7e>!w^#ENoNsXe@;PsW8VHQr0o;=V- z$+I=i{*WIh76sPUezO0_SghCO6OTPC58Zvcz(Ge0magZE3S?!Yat0Ms{F zqp4+>!g2`1wIQORKu)XqbW7(%2MDC;LXNPbr$Ip5$v^?gzT66y=UayL zZ+!#yBJ9K(>j*s%*eO}?< zecxHB=JIm>%8VR*|CCJ3S0r01=v5952-#qLRXN1DsnZ$ZJ%v5>n*91_9+b7EtehFU zD$RVqG~w8Ao6gY)r%?{tO|#Tg8TH{|5Y59Fq3KNl=vL2-9|Fx`R`VY5!Tw%-&w36U zvYxF~Lx;CbnR0q0__&`SegYDF83S8jX;|^A+g#Xr-=pTByf4eiq!Y^>Gp}VLdbubq zc8lfsUTX{>P(SRZ6A^Te6*NfAyvmdi!-urY9!#N=2=KMXABt%~%6+ z&`OMB^i>fILK#y&+HSCksdI+E#h#Khdx|o8_Nu&hctqa%;IzE){-_*0enBc&0DG`G ztEmZk)Y&>G125k)9Zm4L5Yp4zh7c!5jb>Hu*tbLO+rLZZX6NL@g)uCd)HN)ekT=if zOiWD4EDXUO7?({rwQA7C!U~X1Z$ovrf=T}1f$j3;ryi6;?;n$~8#7|xg<#w0yvoFM zjie|6Iv3`IFxwOLzW^2lcs-&J_5N`5#B>QU(oJ9+fCn#g0?UMB&!m7w(rsF zItSM18M3DJ%kJalR5hL8f$2OqMP9DwwF<}(j)Klp(gRMQS+_;1mhbz zry&q!P*T(I!xDO1+2qaZa(aZfN}iOF(Q`6`HIHYlp*cDtc7+gqKn?bnS8M4sa*ptr zIn3jj@j=S9!-MjTFFY=Lwr`Ogo7c(CE$d|0)(x_E+a}qtZVk$zeK;k&#nXCaplvDp z_(6tU=~Bu->MHY$hv=XSSUC%Qyc75`%a`rkcIO=J(T9K!SGzNG>*p;1Wfw&m$Disc z_tk>r;b3R6{_95yb&gTi)FW5N|8V#bhT~vS%V1Ow8Fy&lPjH3e3+(k)P^zFeLRT(t3w`JGmVrh1Zbh1 zXgfakYb5IVB<49XzFe|?Cul8iL^{=FYFbvZJdYLK`ptNwQIq4x-;+|QU*3J^C8<~E zFeX?V-8xF!rhz@5VYP}qQ&}-OrVmEf+ePYdAXManjnLLbvA6mV#1hCa=sOaB-lcluAjGo{Nuz-EN)%sT@*UI78?+$ytchSz_qznGCbHucD- z?`X)qJL-CdZE+rz7xV@LJs+DSu#V4wApKU6pn{DeR1W;Y*yAlLS0)$a__+&`>*d1O zBLx_Ui;EeVt$Pd}yyY%a{ogLmwffBYLy$)k7e(QgNgoWG=J zDq+>DL6?IjW+0#}Hda1Ikp;ah(r9kl#}A=|Sgf%^ViRIC6I%+0kE;__m=IpQWYce5P+#l;9 z#tglOValr;yeL-TH!0w_E+DL6GVvBT-oB-E@W*E)ZolI$`EUN4|AQK|$B!R}Q$(WV z&Cb@-tgNCOzvR7Z^A;)et&xML&&pD+gv>me>xCZo32aTwCoVGJ0XpbdN&)lIw~dz3s`#ROhOTM`?hTdlr&|D%ir zjnBx{n^Q6aCy8h0PzXrP;s)xR7Bpe~T9op@0G2(D8+4HJqe=nEJFjlszH^6^_GTBujY*eCE}$Z?~?jy4$rHH0^!?Na<`*O%8~jA_^%?Z<#JT3${DzHG9* z(Iqcw=u4zQT6shMc7u?YBtIVxJ{nr25+QkHqKi{0sCRTa_$&~wjOeXc`eF^PA=G8o zfD~N+JPoU_|3*{u+_8rIvGN|mIKdw#(+So}3|59{yl7mVV1w3n>^Mkj$p;Aqrg6@A z@MY50sw9N<(x5FLcb3{9YL6AQ2_7TPLzlN)KRmRTYh|V- zA8|X1%Y^xid$eP&#pYm8?z3~_^5RRskUMXC82iqwT)%z=j>f#&R6G&NTd(+Ls_WNp zI67wE(9tk7y=ETi(Jmq|uKNr2M$*b)jpWM4D}np=-K~47%0|)l58X@AmenJ2UhwJ% z>T~|+;%c<@iU`ZFodn`1jwc|Q&X_;;c`f|2jbN?4N)^-4w8&ba6nC%m>ml z1>W|C{r9dt>%Vo!)(o7F9=Ux>Lk9C0=s6gz6>PvXrqEAb97sAKd z){yn(y!?Z|^(EOb)QjY%+_P`H+<)5+$D$TJfrguO3viHbyYmj2m>8FX zZy%O}M^DNW^oul#xnAfJ^a{sx6!_X&etgmvG4><{bj+ZK3-j{eZQJ1hACLx|@eObi zcVMp6s}-4=xT#JLnFJ;9Z5slgS>UZ|w%8*DeYZ39CUXr@*6W=b@sM>93vdpGD=LAO zj*iVYM8UR}x4KMovZb8EV^<~#Y3byVSN;6P5rYXgtYWk|Ch=J6a}AKa&KGqATQ@u{ zgZ}elR!Ag8{26cqW4pZEKFK#{aeZNiJ}k+8E$Kb3dA5lo%|+W#Fda8KDSGk&d?{~8 zW5_m@kY_&P1xXwVgxpB&xiM~@qyZ-~R|fLIdT1cpU`dvzqrm-=<;XKP?;4!MuYB$6 z^56Y;|2Obom-i1Hk|y+kJaNrpPv__7GCel^RNDY+8Rz$g4cq0wo%fF)&(Gczzan)6o2|5#WGEASaKWv4+fRaHi;hFwQfd{;WUia`H~Y zNu%*Zuidvr&@;+9fjFr+q3r%e8s(fwR*oSir1FeS2=sFpdw%yoCw8qWpM2;($Y4oo zG-l8y+YV77*m-rr0{#48j&Di>v)%roow#vbHE0BTZOn=4BwaB){>Q2W35+>IFF9G&Hxa>6QEL*egS824#GFQmPm; zIwEwGxF~bshjqqJ|Xwrcejj;jB2{>3gnOd zbf7XP|0*x$I^CpU&QN7;aoud7CoJmAM}YoQ@5!&_*|EiqCaL>c$}?!uNM^q%BkCQ` zkZD`K9RAFy@(w-9I{Ka#;{?{B+VIL6oi?_i&yV<$;L)5qqfX-Ok`R70jd9Fz^a6j>Fut>kjyHK@+w7P1jeX36p7sfRe)-qFCZGQ7 z=j63FUX>5tKZJQ~bBtort0my^>cqTE%+-W%M||fHKlXT0j+{KNuM0kV>8f13HZEhp zo0GG0^~N}+L=JPFZ$-mC09t$_T@LeuSN$kc%HL$^A&hr{lw#~ph|7U5vy!s60&eED z0aNuhG>ybaHk1`b(~ovwW_O6D;ztb1AO9Q+DrcRWSd*xma5#CJDR1-RG4nZ}v=+;{ z`ux{`X-0^@jF`+^9Uq#u^3a#-9A`BP5n((fi(qxEjIYkQs?{`sam#3-?_}GOwn|uu z(HDa0Q9Bx$L>iMk1X;;8t*^{9i1K-r-qG>oeW=(CtJ2}llvcdM26RHlHuX) z^7$`*U2hwl8ov%FWUbzgRq8ECxm-e6MmPWlU^6vf;j+`*bD-PmJaElI5?9r&TX)Ot za6q`<^JGmfgvb50;`j*Hm}X48Ni7h^^g5eI0G{c#dk10SaDhky?=A3PM#E$@I( z8!E`=b0BAL0I#FUU;ZBtER~8`7&c&{T9G9f>wI`b^x=;hlw(Pq4t{1me28TKiXKAm zl1F7s)YWfVpcB0EP;OSGR34On{he3jCvP5?TwkvY^!3T+^&4ejZeGrxJ1Yh7&94(T zdFFnRlMhB743OHwg6!Y2PX6nE^c%9F1mjOTZ-%DbdVtLo3R!?bNTU|4z+mH>cEAr7 z;F*~@xqfpR?1LWa=vIz4cwTlp=oShYP5+<&V+>B+!g03Uo4jhBlB z7N?QVdU*^AZ*!|=N_wXJ?yZBebN5#LdigB+#>vd@7noC!l??;Edc}tW$cZ`y=ZH=r z%nBLayh%Rw)TiaOmtK+y7!5_9(IUUvFBqt(&wJjf2zsA4>hKLtyp_oo1oB4NabW;W zp6N$h*`*pBAKuoJlP4a&TOPS%r|jFd7IkTiv;$?>1}>4UQU?AlKZGS1X-lBZ+`>{_ z9b7I7S@2a^%*y}rAD)&Y7q08ASTq{V5JP{!AA!p(ok|QP`b$alNIg@KtjeDyK#+aZ zvIMs<H`aL3|X5O*Zga7DIhu*q(goyl^XO2-jy$oyc`S11iyGq4zjCRJ1+y3OF38#q>*RwYhoKwfpM66EWQ9L$8l-EO zgpc37TYmQ|p9JsoQlmt;KtdUKHZxNw$vE_8a&|$^k6o78g^JA0*JR|v4H))zg{8(@ z%b;`Y5e;B9i6J+g8$7$-097=0@7~SwTfgxYdHLWedHRJ{pjYPj+4oPVLqPVIfQUww z24cptf`uj=>K4CQqi6f6li;6iVKhLO$27WGmZCQ2+zfNbOpQ86&E@gy@}K}+WnIXO zI#1f%aFmY8P^&V6@}x_dAplhyOXl@7sY@{Ep$~MvNr7j>>U4;FyOa-g1ILSS@;0s; zmcD^Lxp?U^8sSM2Ef#^zEze6kun&6n4-6{rH0trM2BGRDIb?0qdCpJvT}6z(kUG~h zzDjl7hK+D$`{n$_vv5i=hLi#FIOdcMPs{LoGoSt3r{%~8hvod}S-s+v=VpufUWa}x zVR7LrewoI3H8|K09TDj(mZTs3Bqd7v_WgTh^Tu^p53xT$U-;%d;}0dG@n@^H}Oe%K~Mz8b~Y8mOBCa&SWWc%Vq6sklG-#oW`jPxr z4K0)uxF_kET&xxRhEA^3rw^c)2G>h@aHI4NZjjQzS}7o%>#iAJ)OO=R>mzE&xJy@z z%Y>m{@BJ~s;;sCJ`Gl78u4o$#-OpOn4g86VI8XV5Jlo60WkNkjOIr?7^$0Tbkj(E! zdo_9fnBP*;P`m2Vg0h|Bgl@;JaUZtkb0io>bC+>N%mtTjSD#T9Ya6UKtQ}nMu>Nt~ z1I$d{kZ*tcU&`0N@|&=47UY8u4$An%P3h|^VBcuS)YObT^6*n~_dWN?bI<)!e*D8f z#TqrB&p&FTK+@8;PlA4bxmV@CxRk^Cwx}noN`)Tj?ajfyn~(!{Jt5!x_1^<889kX} z&IfG+=sovS{HfCdUGS(2Bf#s24?QH0|5Jhw!~5V1-v9yF2;8^$0D7GmKZIVP;fi58 zJ1+9>sK`6#MXtlu=z017egOL(Ot?B4=eu@mNNujb0eSMj(1vfFW!8+9*ubUfKQ=oU z`ZJXt`G5SYKbO&Kb;+0E-4+*RaLqaxa9O!|4Tcqrz#1#83hT!b!5xIKpraBCZ7;K((?aei%(Nll} z1~U^LX&#n2&(7*2^`1u>J_yv1L7hgXsAu&1m!@Uo#tkx$Zl4*uCim~zD*x4g_EjlD zD0((L0bFD{fzo%`c|8N)Bh%GIxw*iz-6Eyhyp#vlU<2%vzQUqB{l-c8_K#nKfzAi3 z+v(~kA-#r$h0Y|eD6k(*8i81Z=>q8HL}x*FeM5iMO-(oSb&)S2sME=UsyE?8pa7C# z6vOxg?Ivh9a*N=Zt+J{YTF_q@tptCl&IQWTQCZa6szA_X(%{rZ4n05tJ?pY&%^Jy+ zin3$xE}590mBVknCxbBf?1}})27lm--^3|na{uk$_%(Up_FdAPg=N&tFC zGM zfxX*hVrEkQB^<#?C_x`|oF@os*$IVN2m@R`Rpa@K{^O%eD;<~dc~B_gs|NlkejVOn2&PQJH0xFbkgA)Xw+cfzQPCm zA%lK6XuF{!ckSOH>oI40`GH5a0e%)?D3Atu=6*yKLOG4CF2P(=H zKr}a30V}UV*{_fhf|5m_Sxpn#fvS>5QRlzP@m3(M7PJBMxF+!3lV*-I8V8aVQKO9UeGf86NpG3snPxV*{TTLYPlzDesE5(V(*U zcneT(C_m^M<}yQ;h)QXBn;RsZtgR5yLZ{;{y@g2=4BBZJ~z?(AAUsE4zHJ2Uw#=*2wV>e z42J#U{EYn8XCIW`{n}&tVY+#}bK4#`C*5{vPg5lZaI>@z)X^ZVqpw&{;e7Dx>;KPx z^A~dN@}y+3cxPz1!gy0T0`(Go0+c^YJU;BsO}PQ%sya6ErjK&%!25*h1!jPx&aD8${F5Vc25tfrCw+ZomD9#@PVT*JhkWLCXMLk1SI8IT*yu(1i=RF%3z=TY*6Olh{W{sOaY*htuv>od(tC33 z!lab2V5EUMa>c$38eJSH{MqT<+Dy+0GUjO}4dh-5R-V#};`Qa@w|G2+mSXpa0-xWU{Fb z%cEbOC!T@it(8d7`t~((>K4eOToq$qud=V?v@XSBMxT4h_LSsjFTN+gc=IskU|C8% zoI^13`Sck2&8ui0T4X|{0@yDXYKAay(Rj5oBTqbXpKL-OMn=v`1q(|q4?V8bFK_oke_I3Xo^ex#0$du_J^(uw7h25f^bHbB!+QEsdH@Ax2e ziW5}VG|6p_QRgou>2l7P_ z+>CiuddtRjvS;Tu9oNBfiSKjJJ)>D?TXgUYsEPXQnKK+yflAr|RFtcL^tGrntgJkk zSRo^!4w162mTZS=(upD^wYpw-NUxedqBR)2W`Nb3Y-|v@hba$RJHJC4#nUqgF`lMXEI3jPp@w)0MRuU`=q`xTZ*Kfg| zS&%x`qIzRNre|iHy@a*J@jzM7G3hOrA&rdWO9KdVdbdKOIuHA!iFT?oFtknn_TTwO zvIY*yBKHE=N_G_l`vx5l+6B-NkIG9I2P8}**l}yx$|0;rnL5G$HG;6esSXG)WMpbm z#U6WMYDr#$^YOw_k<&L^B|y*f|Ca;knQhbRfba@Pr(3YFZ_gr*9NG7Pb3jn-qZbVZ zSeIU&jm%4?*e|cXc}z}UxG5KIPRiKTD{}efv^?lYFiW!(dSc3r+by z{cnFqZr@apx!D=1BBOhZ50J1F1&{xkBESKgOGxgTjz ze$Y09tbi(9sA*`ngYtpFsAtPEQCX7R<%axU|BJ85(Aq(ntg#)M9W)9!VL^{{V6gY} z*ex;y-sZp^&$Dhf;a}(0n%dfC6L1(9=zqbdDZbqMX;B8__ApMFudJXy7+ahUYI4PMIUwN^5er&mr>TNL$$s0nB?Yd1HWc|iX(hq~~y?5T# zt5A8~myLY#%2y`yWeI$)gRhrfKTwwYZ{I6VK76-qUB3p-<)rqT-)vE-DZfY|?_h&% z^N$CV5P?^EGUzRzyJ9Lo=*cSr{6N`tc-epOonOe!xvIWBt^hvhJoAc+fBkH7!6ncc z*B?x0+?bSne_3X*I9(jQpmM51PBRNtDdhUOa%i7;>Yi_b())Pf ztWpQz?W6DLIbVBB`O+Z)pS(|)ALMM*_&_7)9ps6*#gNWX9ga$Nu@4L3oILUHE_vvY zJLKQ}hv($xES!A3OlFdG+JKgDq{7ev&@>$k2gV_F(Z*P>ya2qerO7u;Q@)(eF;u64 zG*Lay(~{Z_8RJ@^_d)a6wd1e0al_?CPQ4`B8_8IV#sbD3GGP^t6E|qik9rflH!6_J zqO8RlvVH4D;AYveZJYEJ^Rif-#Tb~g!qpEo!Hvl(4Q$?|0n2yFLvBizmt!aJG74e2 zI?6*w9y>Y(-AJ)-f>07fw2G(tp z^3YZ(^$qHJp#26fWQTI|q0+M42rS=Hcn!ZL6JU9!w`mZjE3H62Ep@OzB+I5joNls9 zmJ8_0@><$q)HN1bI=)P@K9AFA5|VYo&{ql5 zyy34W_4EV+(~Q2)=bFJPd}||5@HFZ*ee)pqi)&ZT$nXEp|1X)HnUX=+9sT8Do>#;k zSo{C6_n%RcCE0x^c*7&Y-9w9v)H<_Lm9Flpu2$6&t-a?8JQVcx_d+L&5JSyLM%{j|HQSGvl8+W%2otg>-^ zQEgG14Gs=iHwK3inNVLbF+L{QHY=5-|4BFW{Y`3tmKT@QubPbQqT32F2A=-BGN}HP zK~|PuEzODV^VU_a*x73}d-BwZJ@ION<|9J;KlpI?4v1nak1B1x`#^`mGfKB)D{exk zzm}eC6T-iJ??Z~>-Ch1Ap270XTmS`ya_nv*U|9u!VDAol8X> zvzI6APrm+?&5Idrl4OF=?X#4`m*cpQ