@elite-dangerous-almanac/core 0.2.5 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/PROVENANCE/i18n/SOURCES.md +199 -113
  2. package/PROVENANCE/materials/SOURCES.md +22 -0
  3. package/PROVENANCE/ships/SOURCES.md +254 -59
  4. package/README.md +17 -11
  5. package/assets/ships/LakonMiner/schematic-bottom.svg +5 -3
  6. package/assets/ships/LakonMiner/schematic-top.svg +2 -4
  7. package/dist/{chunk-XM4VA2WE.js → chunk-4U7KYQGK.js} +1 -1
  8. package/dist/{chunk-XM4VA2WE.js.map → chunk-4U7KYQGK.js.map} +1 -1
  9. package/dist/{chunk-7EWZGDWY.js → chunk-7S7ZTZZY.js} +1 -1
  10. package/dist/chunk-A5TCT2AJ.js +1 -0
  11. package/dist/{chunk-AIEC3LBT.js.map → chunk-A5TCT2AJ.js.map} +1 -1
  12. package/dist/chunk-A7IVMYNF.js +1 -0
  13. package/dist/chunk-A7IVMYNF.js.map +1 -0
  14. package/dist/{chunk-2OBUSQA7.js → chunk-AAU7OM47.js} +1 -1
  15. package/dist/{chunk-2OBUSQA7.js.map → chunk-AAU7OM47.js.map} +1 -1
  16. package/dist/{chunk-KPJ77VPS.js → chunk-BJU27V6C.js} +1 -1
  17. package/dist/{chunk-KPJ77VPS.js.map → chunk-BJU27V6C.js.map} +1 -1
  18. package/dist/{chunk-DSMLYA2M.js → chunk-BMQM4JBL.js} +1 -1
  19. package/dist/{chunk-DSMLYA2M.js.map → chunk-BMQM4JBL.js.map} +1 -1
  20. package/dist/chunk-C3LLPLLD.js +1 -0
  21. package/dist/chunk-C3LLPLLD.js.map +1 -0
  22. package/dist/chunk-EHFHRQEP.js +1 -0
  23. package/dist/{chunk-GLWPSVFV.js.map → chunk-EHFHRQEP.js.map} +1 -1
  24. package/dist/{chunk-YCGISPDR.js → chunk-ETWMPMZP.js} +1 -1
  25. package/dist/{chunk-3NPVWPOV.js → chunk-F7VWRDSL.js} +1 -1
  26. package/dist/chunk-F7VWRDSL.js.map +1 -0
  27. package/dist/{chunk-4CBMQULR.js → chunk-FMA36V6A.js} +1 -1
  28. package/dist/{chunk-4CBMQULR.js.map → chunk-FMA36V6A.js.map} +1 -1
  29. package/dist/chunk-IZIIGK3W.js +1 -0
  30. package/dist/{chunk-TW7LUBHD.js.map → chunk-IZIIGK3W.js.map} +1 -1
  31. package/dist/chunk-KBCA4GEZ.js +1 -0
  32. package/dist/chunk-KLC5XT6F.js +1 -0
  33. package/dist/chunk-KLC5XT6F.js.map +1 -0
  34. package/dist/chunk-M6J7KP7G.js +1 -0
  35. package/dist/chunk-M6J7KP7G.js.map +1 -0
  36. package/dist/chunk-MRLUWHGI.js +1 -0
  37. package/dist/{chunk-FF2X4K5P.js.map → chunk-MRLUWHGI.js.map} +1 -1
  38. package/dist/chunk-MVBVXK3G.js +1 -0
  39. package/dist/chunk-MVBVXK3G.js.map +1 -0
  40. package/dist/{chunk-HBQELOBY.js → chunk-NZXSIHAW.js} +1 -1
  41. package/dist/{chunk-HBQELOBY.js.map → chunk-NZXSIHAW.js.map} +1 -1
  42. package/dist/{chunk-IWFQ4ZKF.js → chunk-OFZGNWBT.js} +1 -1
  43. package/dist/chunk-PF3HZ73R.js +1 -0
  44. package/dist/{chunk-ITKZKREP.js.map → chunk-PF3HZ73R.js.map} +1 -1
  45. package/dist/chunk-QJECDMQQ.js +1 -0
  46. package/dist/{chunk-LZYHBFJC.js.map → chunk-QJECDMQQ.js.map} +1 -1
  47. package/dist/chunk-T7IQHFQ2.js +1 -0
  48. package/dist/chunk-T7IQHFQ2.js.map +1 -0
  49. package/dist/chunk-TSEDU73T.js +1 -0
  50. package/dist/chunk-TSEDU73T.js.map +1 -0
  51. package/dist/chunk-XFDMCPDW.js +1 -0
  52. package/dist/{chunk-GRSNX36B.js.map → chunk-XFDMCPDW.js.map} +1 -1
  53. package/dist/chunk-XRGECU7S.js +1 -0
  54. package/dist/chunk-XRGECU7S.js.map +1 -0
  55. package/dist/{chunk-OLKNYGGT.js → chunk-XSLPWM5N.js} +1 -1
  56. package/dist/chunk-XSN53F7W.js +1 -0
  57. package/dist/{chunk-DBGXZF7O.js.map → chunk-XSN53F7W.js.map} +1 -1
  58. package/dist/chunk-ZEN5K3GE.js +1 -0
  59. package/dist/{chunk-WR6ZFHTO.js.map → chunk-ZEN5K3GE.js.map} +1 -1
  60. package/dist/chunk-ZZTDEDXJ.js +1 -0
  61. package/dist/{chunk-FA5JVXVG.js.map → chunk-ZZTDEDXJ.js.map} +1 -1
  62. package/dist/equipment/index.js +1 -1
  63. package/dist/equipment/upgrade-costs.js +1 -1
  64. package/dist/equipment/upgrade-costs.js.map +1 -1
  65. package/dist/i18n/experimental-effect-descriptions.d.ts +21 -6
  66. package/dist/i18n/experimental-effect-descriptions.js +1 -1
  67. package/dist/i18n/experimental-effects.js +1 -1
  68. package/dist/i18n/index.d.ts +0 -2
  69. package/dist/i18n/index.js +1 -1
  70. package/dist/i18n/materials.d.ts +7 -6
  71. package/dist/i18n/materials.js +1 -1
  72. package/dist/i18n/micro-resources.d.ts +7 -6
  73. package/dist/i18n/micro-resources.js +1 -1
  74. package/dist/i18n/modules.d.ts +10 -7
  75. package/dist/i18n/modules.js +1 -1
  76. package/dist/i18n/pre-engineered.js +1 -1
  77. package/dist/materials/index.js +1 -1
  78. package/dist/materials/materials-all.js +1 -1
  79. package/dist/materials/materials-encoded.js +1 -1
  80. package/dist/materials/materials-manufactured.js +1 -1
  81. package/dist/materials/materials.js +1 -1
  82. package/dist/materials/micro-resources-all.js +1 -1
  83. package/dist/materials/micro-resources.js +1 -1
  84. package/dist/ships/blueprint-costs.js +1 -1
  85. package/dist/ships/blueprint-journal.js +1 -1
  86. package/dist/ships/build-metrics.js +1 -1
  87. package/dist/ships/engineering-options.d.ts +12 -6
  88. package/dist/ships/engineering-options.js +1 -1
  89. package/dist/ships/engineering.js +1 -1
  90. package/dist/ships/gunsights.d.ts +2 -2
  91. package/dist/ships/gunsights.js +1 -1
  92. package/dist/ships/index.d.ts +5 -5
  93. package/dist/ships/index.js +1 -1
  94. package/dist/ships/loadout-calculations.d.ts +11 -2
  95. package/dist/ships/loadout-calculations.js +1 -1
  96. package/dist/ships/loadout-validation.js +1 -1
  97. package/dist/ships/modules-all.d.ts +2 -2
  98. package/dist/ships/modules-all.js +1 -1
  99. package/dist/ships/modules-core.d.ts +3 -3
  100. package/dist/ships/modules-core.js +1 -1
  101. package/dist/ships/modules-hardpoint.d.ts +1 -1
  102. package/dist/ships/modules-internal.d.ts +1 -1
  103. package/dist/ships/modules-internal.js +1 -1
  104. package/dist/ships/modules-utility.d.ts +1 -1
  105. package/dist/ships/modules.d.ts +9 -6
  106. package/dist/ships/modules.js +1 -1
  107. package/dist/ships/pre-engineered-stats.js +1 -1
  108. package/dist/ships/pre-engineered.js +1 -1
  109. package/dist/ships/ship-loadout.d.ts +65 -23
  110. package/dist/ships/ship-loadout.js +1 -1
  111. package/dist/ships/weapons.js +1 -1
  112. package/package.json +1 -9
  113. package/dist/chunk-3NPVWPOV.js.map +0 -1
  114. package/dist/chunk-5QSCLEEB.js +0 -1
  115. package/dist/chunk-5QSCLEEB.js.map +0 -1
  116. package/dist/chunk-5VBB5CTV.js +0 -1
  117. package/dist/chunk-5VBB5CTV.js.map +0 -1
  118. package/dist/chunk-5ZVYRX6Z.js +0 -1
  119. package/dist/chunk-5ZVYRX6Z.js.map +0 -1
  120. package/dist/chunk-AIEC3LBT.js +0 -1
  121. package/dist/chunk-DAQ3PJ4R.js +0 -1
  122. package/dist/chunk-DAQ3PJ4R.js.map +0 -1
  123. package/dist/chunk-DBGXZF7O.js +0 -1
  124. package/dist/chunk-DCB4COCL.js +0 -1
  125. package/dist/chunk-DCB4COCL.js.map +0 -1
  126. package/dist/chunk-FA5JVXVG.js +0 -1
  127. package/dist/chunk-FF2X4K5P.js +0 -1
  128. package/dist/chunk-G2VSQFD6.js +0 -1
  129. package/dist/chunk-G2VSQFD6.js.map +0 -1
  130. package/dist/chunk-GLWPSVFV.js +0 -1
  131. package/dist/chunk-GRSNX36B.js +0 -1
  132. package/dist/chunk-ITKZKREP.js +0 -1
  133. package/dist/chunk-J4PCK4RV.js +0 -1
  134. package/dist/chunk-J4PCK4RV.js.map +0 -1
  135. package/dist/chunk-JO52LYO3.js +0 -1
  136. package/dist/chunk-KJFUNIIY.js +0 -1
  137. package/dist/chunk-KJFUNIIY.js.map +0 -1
  138. package/dist/chunk-LZYHBFJC.js +0 -1
  139. package/dist/chunk-OJC6AUL7.js +0 -1
  140. package/dist/chunk-OJC6AUL7.js.map +0 -1
  141. package/dist/chunk-TW7LUBHD.js +0 -1
  142. package/dist/chunk-WR6ZFHTO.js +0 -1
  143. package/dist/i18n/engineering-groups.d.ts +0 -21
  144. package/dist/i18n/engineering-groups.js +0 -1
  145. package/dist/i18n/engineering-groups.js.map +0 -1
  146. package/dist/i18n/ships.d.ts +0 -36
  147. package/dist/i18n/ships.js +0 -1
  148. package/dist/i18n/ships.js.map +0 -1
  149. /package/dist/{chunk-7EWZGDWY.js.map → chunk-7S7ZTZZY.js.map} +0 -0
  150. /package/dist/{chunk-YCGISPDR.js.map → chunk-ETWMPMZP.js.map} +0 -0
  151. /package/dist/{chunk-JO52LYO3.js.map → chunk-KBCA4GEZ.js.map} +0 -0
  152. /package/dist/{chunk-IWFQ4ZKF.js.map → chunk-OFZGNWBT.js.map} +0 -0
  153. /package/dist/{chunk-OLKNYGGT.js.map → chunk-XSLPWM5N.js.map} +0 -0
@@ -1 +0,0 @@
1
- import{normalizeKey}from"./chunk-BKWLI44T.js";import{requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var engineering_options_default={groups:{powerPlants:{name:"Power Plants",blueprints:["PowerPlant_Armoured","PowerPlant_Boosted","PowerPlant_Stealth"],experimentals:["special_powerplant_cooled","special_powerplant_highcharge","special_powerplant_lightweight","special_powerplant_toughened"]},guardianPowerPlants:{name:"Guardian Power Plants",blueprints:["GuardianModule_Sturdy"],experimentals:[]},thrusters:{name:"Thrusters",blueprints:["Engine_Dirty","Engine_Reinforced","Engine_Tuned"],experimentals:["special_engine_cooled","special_engine_haulage","special_engine_lightweight","special_engine_overloaded","special_engine_toughened"]},frameShiftDrives:{name:"Frame Shift Drives",blueprints:["FSD_FastBoot","FSD_LongRange","FSD_Shielded"],experimentals:["special_fsd_cooled","special_fsd_fuelcapacity","special_fsd_heavy","special_fsd_lightweight","special_fsd_toughened"]},powerDistributors:{name:"Power Distributors",blueprints:["PowerDistributor_HighCapacity","PowerDistributor_HighFrequency","PowerDistributor_PriorityEngines","PowerDistributor_PrioritySystems","PowerDistributor_PriorityWeapons","PowerDistributor_Shielded"],experimentals:["special_powerdistributor_capacity","special_powerdistributor_efficient","special_powerdistributor_fast","special_powerdistributor_lightweight","special_powerdistributor_toughened"]},guardianPowerDistributors:{name:"Guardian Power Distributors",blueprints:["GuardianModule_Sturdy"],experimentals:[]},frameShiftDrivesSCO:{name:"Frame Shift Drives (SCO)",blueprints:["FSD_FastBoot","FSD_LongRange","FSD_Shielded"],experimentals:["special_fsd_cooled","special_fsd_fuelcapacity","special_fsd_heavy","special_fsd_lightweight","special_fsd_toughened"]},shieldGenerators:{name:"Shield Generators",blueprints:["ShieldGenerator_Kinetic","ShieldGenerator_Optimised","ShieldGenerator_Reinforced","ShieldGenerator_Thermic"],experimentals:["special_shield_efficient","special_shield_health","special_shield_kinetic","special_shield_lightweight","special_shield_regenerative","special_shield_resistive","special_shield_thermic","special_shield_toughened"]},shieldCellBanks:{name:"Shield Cell Banks",blueprints:["ShieldCellBank_Rapid","ShieldCellBank_Specialised"],experimentals:["special_shieldcell_efficient","special_shieldcell_gradual","special_shieldcell_lightweight","special_shieldcell_oversized","special_shieldcell_toughened"]},hullReinforcements:{name:"Hull Reinforcements",blueprints:["HullReinforcement_Advanced","HullReinforcement_Explosive","HullReinforcement_HeavyDuty","HullReinforcement_Kinetic","HullReinforcement_Thermic"],experimentals:["special_hullreinforcement_chunky","special_hullreinforcement_explosive","special_hullreinforcement_kinetic","special_hullreinforcement_thermic"]},guardianHullReinforcements:{name:"Guardian Hull Reinforcements",blueprints:["GuardianModule_Sturdy"],experimentals:[]},pulseLasers:{name:"Pulse Lasers",blueprints:["PulseLaser_ThermalPlasmaConversion","Weapon_Efficient","Weapon_Focused","Weapon_LightWeight","Weapon_LongRange","Weapon_Overcharged","Weapon_RapidFire","Weapon_ShortRange","Weapon_Sturdy"],experimentals:["special_concordant_sequence","special_emissive_munitions","special_phasing_sequence","special_scramble_spectrum","special_thermalshock","special_weapon_damage","special_weapon_efficient","special_weapon_lightweight","special_weapon_rateoffire","special_weapon_toughened"]},burstLasers:{name:"Burst Lasers",blueprints:["BurstLaser_ThermalPlasmaConversion","Weapon_Efficient","Weapon_Focused","Weapon_LightWeight","Weapon_LongRange","Weapon_Overcharged","Weapon_RapidFire","Weapon_ShortRange","Weapon_Sturdy"],experimentals:["special_concordant_sequence","special_distortion_field","special_phasing_sequence","special_scramble_spectrum","special_thermalshock","special_weapon_damage","special_weapon_efficient","special_weapon_lightweight","special_weapon_rateoffire","special_weapon_toughened"]},beamLasers:{name:"Beam Lasers",blueprints:["BeamLaser_ThermalPlasmaConversion","Weapon_Efficient","Weapon_LightWeight","Weapon_LongRange","Weapon_Overcharged","Weapon_ShortRange","Weapon_Sturdy"],experimentals:["special_concordant_sequence","special_regeneration_sequence","special_thermal_conduit","special_thermal_vent","special_thermalshock","special_weapon_damage","special_weapon_efficient","special_weapon_lightweight","special_weapon_toughened"]},cannons:{name:"Cannons",blueprints:["Weapon_Efficient","Weapon_HighCapacity","Weapon_LightWeight","Weapon_LongRange","Weapon_Overcharged","Weapon_RapidFire","Weapon_ShortRange","Weapon_Sturdy"],experimentals:["special_auto_loader","special_dispersal_field","special_force_shell","special_high_yield_shell","special_smart_rounds","special_thermal_cascade","special_weapon_damage","special_weapon_efficient","special_weapon_lightweight","special_weapon_rateoffire","special_weapon_toughened"]},fragmentCannons:{name:"Fragment Cannons",blueprints:["Weapon_DoubleShot","Weapon_Efficient","Weapon_HighCapacity","Weapon_LightWeight","Weapon_Overcharged","Weapon_RapidFire","Weapon_Sturdy"],experimentals:["special_blinding_shell","special_corrosive_shell","special_drag_munitions","special_incendiary_rounds","special_screening_shell","special_weapon_damage","special_weapon_efficient","special_weapon_lightweight","special_weapon_rateoffire","special_weapon_toughened"]},multiCannons:{name:"Multi-Cannons",blueprints:["MC_Overcharged","Weapon_Efficient","Weapon_HighCapacity","Weapon_LightWeight","Weapon_LongRange","Weapon_RapidFire","Weapon_ShortRange","Weapon_Sturdy"],experimentals:["special_auto_loader","special_corrosive_shell","special_emissive_munitions","special_incendiary_rounds","special_phasing_sequence","special_smart_rounds","special_thermalshock","special_weapon_damage","special_weapon_efficient","special_weapon_lightweight","special_weapon_rateoffire","special_weapon_toughened"]},plasmaAccelerators:{name:"Plasma Accelerators",blueprints:["Weapon_Efficient","Weapon_Focused","Weapon_LightWeight","Weapon_LongRange","Weapon_Overcharged","Weapon_RapidFire","Weapon_ShortRange","Weapon_Sturdy"],experimentals:["special_blinding_shell","special_dispersal_field","special_lock_breaker","special_phasing_sequence","special_plasma_slug","special_thermal_conduit","special_weapon_damage","special_weapon_efficient","special_weapon_lightweight","special_weapon_rateoffire","special_weapon_toughened"]},railGuns:{name:"Rail Guns",blueprints:["Weapon_HighCapacity","Weapon_LightWeight","Weapon_LongRange","Weapon_ShortRange","Weapon_Sturdy"],experimentals:["special_feedback_cascade_cooled","special_plasma_slug_cooled","special_super_penetrator","special_super_penetrator_cooled","special_weapon_damage","special_weapon_efficient","special_weapon_lightweight","special_weapon_rateoffire","special_weapon_toughened"]},missiles:{name:"Missiles",blueprints:["Weapon_HighCapacity","Weapon_LightWeight","Weapon_RapidFire","Weapon_Sturdy"],experimentals:["special_drag_munitions","special_emissive_munitions","special_fsd_interrupt","special_overload_munitions","special_penetrator_munitions","special_thermal_cascade","special_weapon_damage","special_weapon_efficient","special_weapon_lightweight","special_weapon_rateoffire","special_weapon_toughened"]},mines:{name:"Mines",blueprints:["Weapon_HighCapacity","Weapon_LightWeight","Weapon_RapidFire","Weapon_Sturdy"],experimentals:["special_choke_canister","special_emissive_munitions","special_overload_munitions","special_radiant_canister","special_reverberating_cascade","special_shiftlock_canister","special_weapon_damage","special_weapon_efficient","special_weapon_lightweight","special_weapon_toughened"]},torpedoes:{name:"Torpedoes",blueprints:["Weapon_LightWeight","Weapon_Sturdy"],experimentals:["special_deep_cut_payload","special_mass_lock","special_reverberating_cascade","special_weapon_damage","special_weapon_efficient","special_weapon_lightweight","special_weapon_toughened"]},shieldBoosters:{name:"Shield Boosters",blueprints:["ShieldBooster_Explosive","ShieldBooster_HeavyDuty","ShieldBooster_Kinetic","ShieldBooster_Resistive","ShieldBooster_Thermic"],experimentals:["special_shieldbooster_chunky","special_shieldbooster_efficient","special_shieldbooster_explosive","special_shieldbooster_kinetic","special_shieldbooster_thermic","special_shieldbooster_toughened"]},bulkheads:{name:"Bulkheads",blueprints:["Armour_Advanced","Armour_Explosive","Armour_HeavyDuty","Armour_Kinetic","Armour_Thermic"],experimentals:["special_armour_chunky","special_armour_explosive","special_armour_kinetic","special_armour_thermic"]},lifeSupports:{name:"Life Supports",blueprints:["LifeSupport_LightWeight","LifeSupport_Reinforced","LifeSupport_Shielded"],experimentals:[]},sensors:{name:"Sensors",blueprints:["Sensor_LightWeight","Sensor_LongRange","Sensor_WideAngle"],experimentals:[]},autoFieldMaintenanceUnits:{name:"Auto Field-Maintenance Units",blueprints:["AFM_Shielded"],experimentals:[]},collectionLimpets:{name:"Collection Limpets",blueprints:["CollectionLimpet_LightWeight","CollectionLimpet_Reinforced","CollectionLimpet_Shielded"],experimentals:[]},fsdBoosters:{name:"FSD Boosters",blueprints:["GuardianModule_Sturdy"],experimentals:[]},fsdInterdictors:{name:"FSD Interdictors",blueprints:["FSDinterdictor_Expanded","FSDinterdictor_LongRange"],experimentals:[]},fuelScoops:{name:"Fuel Scoops",blueprints:["FuelScoop_Efficiency","FuelScoop_Shielded"],experimentals:[]},fuelTransferLimpets:{name:"Fuel Transfer Limpets",blueprints:["FuelTransferLimpet_LightWeight","FuelTransferLimpet_Reinforced","FuelTransferLimpet_Shielded"],experimentals:[]},hatchBreakerLimpets:{name:"Hatch Breaker Limpets",blueprints:["HatchBreakerLimpet_LightWeight","HatchBreakerLimpet_Reinforced","HatchBreakerLimpet_Shielded"],experimentals:[]},moduleReinforcements:{name:"Module Reinforcements",blueprints:["GuardianModule_Sturdy"],experimentals:[]},prospectingLimpets:{name:"Prospecting Limpets",blueprints:["ProspectingLimpet_LightWeight","ProspectingLimpet_Reinforced","ProspectingLimpet_Shielded"],experimentals:[]},refineries:{name:"Refineries",blueprints:["Refineries_Shielded"],experimentals:[]},shieldReinforcements:{name:"Shield Reinforcements",blueprints:["GuardianModule_Sturdy"],experimentals:[]},surfaceScanners:{name:"Surface Scanners",blueprints:["Sensor_Expanded"],experimentals:[]},chaffLaunchers:{name:"Chaff Launchers",blueprints:["Misc_ChaffCapacity","Misc_LightWeight","Misc_Reinforced","Misc_Shielded"],experimentals:[]},ecms:{name:"ECMs",blueprints:["Misc_LightWeight","Misc_Reinforced","Misc_Shielded"],experimentals:[]},heatSinkLaunchers:{name:"Heat Sink Launchers",blueprints:["Misc_HeatSinkCapacity","Misc_LightWeight","Misc_Reinforced","Misc_Shielded"],experimentals:[]},killWarrantScanners:{name:"Kill Warrant Scanners",blueprints:["Misc_LightWeight","Misc_Reinforced","Misc_Shielded","Scanner_LongRange","Scanner_WideAngle","Sensor_FastScan"],experimentals:[]},manifestScanners:{name:"Manifest Scanners",blueprints:["Misc_LightWeight","Misc_Reinforced","Misc_Shielded","Scanner_LongRange","Scanner_WideAngle","Sensor_FastScan"],experimentals:[]},pointDefence:{name:"Point Defence",blueprints:["Misc_LightWeight","Misc_PointDefenseCapacity","Misc_Reinforced","Misc_Shielded"],experimentals:[]},wakeScanners:{name:"Wake Scanners",blueprints:["Misc_LightWeight","Misc_Reinforced","Misc_Shielded","Scanner_LongRange","Scanner_WideAngle","Sensor_FastScan"],experimentals:[]},guardianGauss:{name:"Exp - Guardian Gauss",blueprints:["GuardianModule_Sturdy"],experimentals:[]},guardianPlasma:{name:"Exp - Guardian Plasma",blueprints:["GuardianModule_Sturdy"],experimentals:[]},guardianShard:{name:"Exp - Guardian Shard",blueprints:["GuardianModule_Sturdy"],experimentals:[]}},modules:{Int_Powerplant_Size2_Class1:"powerPlants",Int_Powerplant_Size2_Class2:"powerPlants",Int_Powerplant_Size2_Class3:"powerPlants",Int_Powerplant_Size2_Class4:"powerPlants",Int_Powerplant_Size2_Class5:"powerPlants",Int_Powerplant_Size3_Class1:"powerPlants",Int_Powerplant_Size3_Class2:"powerPlants",Int_Powerplant_Size3_Class3:"powerPlants",Int_Powerplant_Size3_Class4:"powerPlants",Int_Powerplant_Size3_Class5:"powerPlants",Int_Powerplant_Size4_Class1:"powerPlants",Int_Powerplant_Size4_Class2:"powerPlants",Int_Powerplant_Size4_Class3:"powerPlants",Int_Powerplant_Size4_Class4:"powerPlants",Int_Powerplant_Size4_Class5:"powerPlants",Int_Powerplant_Size5_Class1:"powerPlants",Int_Powerplant_Size5_Class2:"powerPlants",Int_Powerplant_Size5_Class3:"powerPlants",Int_Powerplant_Size5_Class4:"powerPlants",Int_Powerplant_Size5_Class5:"powerPlants",Int_Powerplant_Size6_Class1:"powerPlants",Int_Powerplant_Size6_Class2:"powerPlants",Int_Powerplant_Size6_Class3:"powerPlants",Int_Powerplant_Size6_Class4:"powerPlants",Int_Powerplant_Size6_Class5:"powerPlants",Int_Powerplant_Size7_Class1:"powerPlants",Int_Powerplant_Size7_Class2:"powerPlants",Int_Powerplant_Size7_Class3:"powerPlants",Int_Powerplant_Size7_Class4:"powerPlants",Int_Powerplant_Size7_Class5:"powerPlants",Int_Powerplant_Size8_Class1:"powerPlants",Int_Powerplant_Size8_Class2:"powerPlants",Int_Powerplant_Size8_Class3:"powerPlants",Int_Powerplant_Size8_Class4:"powerPlants",Int_Powerplant_Size8_Class5:"powerPlants",Int_PowerPlant_Size2_Class1_free:"powerPlants",Int_GuardianPowerplant_Size2:"guardianPowerPlants",Int_GuardianPowerplant_Size3:"guardianPowerPlants",Int_GuardianPowerplant_Size4:"guardianPowerPlants",Int_GuardianPowerplant_Size5:"guardianPowerPlants",Int_GuardianPowerplant_Size6:"guardianPowerPlants",Int_GuardianPowerplant_Size7:"guardianPowerPlants",Int_GuardianPowerplant_Size8:"guardianPowerPlants",Int_Engine_Size2_Class1:"thrusters",Int_Engine_Size2_Class2:"thrusters",Int_Engine_Size2_Class3:"thrusters",Int_Engine_Size2_Class4:"thrusters",Int_Engine_Size2_Class5:"thrusters",Int_Engine_Size3_Class1:"thrusters",Int_Engine_Size3_Class2:"thrusters",Int_Engine_Size3_Class3:"thrusters",Int_Engine_Size3_Class4:"thrusters",Int_Engine_Size3_Class5:"thrusters",Int_Engine_Size4_Class1:"thrusters",Int_Engine_Size4_Class2:"thrusters",Int_Engine_Size4_Class3:"thrusters",Int_Engine_Size4_Class4:"thrusters",Int_Engine_Size4_Class5:"thrusters",Int_Engine_Size5_Class1:"thrusters",Int_Engine_Size5_Class2:"thrusters",Int_Engine_Size5_Class3:"thrusters",Int_Engine_Size5_Class4:"thrusters",Int_Engine_Size5_Class5:"thrusters",Int_Engine_Size6_Class1:"thrusters",Int_Engine_Size6_Class2:"thrusters",Int_Engine_Size6_Class3:"thrusters",Int_Engine_Size6_Class4:"thrusters",Int_Engine_Size6_Class5:"thrusters",Int_Engine_Size7_Class1:"thrusters",Int_Engine_Size7_Class2:"thrusters",Int_Engine_Size7_Class3:"thrusters",Int_Engine_Size7_Class4:"thrusters",Int_Engine_Size7_Class5:"thrusters",Int_Engine_Size8_Class1:"thrusters",Int_Engine_Size8_Class2:"thrusters",Int_Engine_Size8_Class3:"thrusters",Int_Engine_Size8_Class4:"thrusters",Int_Engine_Size8_Class5:"thrusters",Int_Engine_Size2_Class1_free:"thrusters",Int_Engine_Size3_Class5_Fast:"thrusters",Int_Engine_Size2_Class5_Fast:"thrusters",Int_Engine_Size7_Class5_GravityOptimised_MkII:"thrusters",Int_MkIIAgileBoost_Engine_Size5_Class5:"thrusters",Int_Hyperdrive_Size2_Class1:"frameShiftDrives",Int_Hyperdrive_Size2_Class2:"frameShiftDrives",Int_Hyperdrive_Size2_Class3:"frameShiftDrives",Int_Hyperdrive_Size2_Class4:"frameShiftDrives",Int_Hyperdrive_Size2_Class5:"frameShiftDrives",Int_Hyperdrive_Size3_Class1:"frameShiftDrives",Int_Hyperdrive_Size3_Class2:"frameShiftDrives",Int_Hyperdrive_Size3_Class3:"frameShiftDrives",Int_Hyperdrive_Size3_Class4:"frameShiftDrives",Int_Hyperdrive_Size3_Class5:"frameShiftDrives",Int_Hyperdrive_Size4_Class1:"frameShiftDrives",Int_Hyperdrive_Size4_Class2:"frameShiftDrives",Int_Hyperdrive_Size4_Class3:"frameShiftDrives",Int_Hyperdrive_Size4_Class4:"frameShiftDrives",Int_Hyperdrive_Size4_Class5:"frameShiftDrives",Int_Hyperdrive_Size5_Class1:"frameShiftDrives",Int_Hyperdrive_Size5_Class2:"frameShiftDrives",Int_Hyperdrive_Size5_Class3:"frameShiftDrives",Int_Hyperdrive_Size5_Class4:"frameShiftDrives",Int_Hyperdrive_Size5_Class5:"frameShiftDrives",Int_Hyperdrive_Size6_Class1:"frameShiftDrives",Int_Hyperdrive_Size6_Class2:"frameShiftDrives",Int_Hyperdrive_Size6_Class3:"frameShiftDrives",Int_Hyperdrive_Size6_Class4:"frameShiftDrives",Int_Hyperdrive_Size6_Class5:"frameShiftDrives",Int_Hyperdrive_Size7_Class1:"frameShiftDrives",Int_Hyperdrive_Size7_Class2:"frameShiftDrives",Int_Hyperdrive_Size7_Class3:"frameShiftDrives",Int_Hyperdrive_Size7_Class4:"frameShiftDrives",Int_Hyperdrive_Size7_Class5:"frameShiftDrives",Int_Hyperdrive_Size8_Class1:"frameShiftDrives",Int_Hyperdrive_Size8_Class2:"frameShiftDrives",Int_Hyperdrive_Size8_Class3:"frameShiftDrives",Int_Hyperdrive_Size8_Class4:"frameShiftDrives",Int_Hyperdrive_Size8_Class5:"frameShiftDrives",Int_Hyperdrive_Size2_Class1_free:"frameShiftDrives",Int_PowerDistributor_Size1_Class1:"powerDistributors",Int_PowerDistributor_Size1_Class2:"powerDistributors",Int_PowerDistributor_Size1_Class3:"powerDistributors",Int_PowerDistributor_Size1_Class4:"powerDistributors",Int_PowerDistributor_Size1_Class5:"powerDistributors",Int_PowerDistributor_Size2_Class1:"powerDistributors",Int_PowerDistributor_Size2_Class2:"powerDistributors",Int_PowerDistributor_Size2_Class3:"powerDistributors",Int_PowerDistributor_Size2_Class4:"powerDistributors",Int_PowerDistributor_Size2_Class5:"powerDistributors",Int_PowerDistributor_Size3_Class1:"powerDistributors",Int_PowerDistributor_Size3_Class2:"powerDistributors",Int_PowerDistributor_Size3_Class3:"powerDistributors",Int_PowerDistributor_Size3_Class4:"powerDistributors",Int_PowerDistributor_Size3_Class5:"powerDistributors",Int_PowerDistributor_Size4_Class1:"powerDistributors",Int_PowerDistributor_Size4_Class2:"powerDistributors",Int_PowerDistributor_Size4_Class3:"powerDistributors",Int_PowerDistributor_Size4_Class4:"powerDistributors",Int_PowerDistributor_Size4_Class5:"powerDistributors",Int_PowerDistributor_Size5_Class1:"powerDistributors",Int_PowerDistributor_Size5_Class2:"powerDistributors",Int_PowerDistributor_Size5_Class3:"powerDistributors",Int_PowerDistributor_Size5_Class4:"powerDistributors",Int_PowerDistributor_Size5_Class5:"powerDistributors",Int_PowerDistributor_Size6_Class1:"powerDistributors",Int_PowerDistributor_Size6_Class2:"powerDistributors",Int_PowerDistributor_Size6_Class3:"powerDistributors",Int_PowerDistributor_Size6_Class4:"powerDistributors",Int_PowerDistributor_Size6_Class5:"powerDistributors",Int_PowerDistributor_Size7_Class1:"powerDistributors",Int_PowerDistributor_Size7_Class2:"powerDistributors",Int_PowerDistributor_Size7_Class3:"powerDistributors",Int_PowerDistributor_Size7_Class4:"powerDistributors",Int_PowerDistributor_Size7_Class5:"powerDistributors",Int_PowerDistributor_Size8_Class1:"powerDistributors",Int_PowerDistributor_Size8_Class2:"powerDistributors",Int_PowerDistributor_Size8_Class3:"powerDistributors",Int_PowerDistributor_Size8_Class4:"powerDistributors",Int_PowerDistributor_Size8_Class5:"powerDistributors",Int_PowerDistributor_Size1_Class1_free:"powerDistributors",Int_GuardianPowerDistributor_Size1:"guardianPowerDistributors",Int_GuardianPowerDistributor_Size2:"guardianPowerDistributors",Int_GuardianPowerDistributor_Size3:"guardianPowerDistributors",Int_GuardianPowerDistributor_Size4:"guardianPowerDistributors",Int_GuardianPowerDistributor_Size5:"guardianPowerDistributors",Int_GuardianPowerDistributor_Size6:"guardianPowerDistributors",Int_GuardianPowerDistributor_Size7:"guardianPowerDistributors",Int_GuardianPowerDistributor_Size8:"guardianPowerDistributors",Int_Hyperdrive_Overcharge_Size5_Class3:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size7_Class3:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size6_Class3:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size4_Class3:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size3_Class3:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size2_Class3:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size2_Class1:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size2_Class2:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size2_Class4:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size2_Class5:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size3_Class1:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size3_Class2:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size3_Class4:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size3_Class5:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size4_Class1:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size4_Class2:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size4_Class4:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size4_Class5:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size5_Class1:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size5_Class2:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size5_Class4:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size5_Class5:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size6_Class1:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size6_Class2:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size6_Class4:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size6_Class5:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size7_Class1:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size7_Class2:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size7_Class4:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size7_Class5:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size8_Class1:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size8_Class2:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size8_Class3:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size8_Class4:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size8_Class5:"frameShiftDrivesSCO",Int_Hyperdrive_Overcharge_Size8_Class5_OverchargeBooster_MkII:"frameShiftDrivesSCO",Int_ShieldGenerator_Size1_Class1:"shieldGenerators",Int_ShieldGenerator_Size1_Class2:"shieldGenerators",Int_ShieldGenerator_Size1_Class3:"shieldGenerators",Int_ShieldGenerator_Size1_Class4:"shieldGenerators",Int_ShieldGenerator_Size1_Class5:"shieldGenerators",Int_ShieldGenerator_Size2_Class1:"shieldGenerators",Int_ShieldGenerator_Size2_Class2:"shieldGenerators",Int_ShieldGenerator_Size2_Class3:"shieldGenerators",Int_ShieldGenerator_Size2_Class4:"shieldGenerators",Int_ShieldGenerator_Size2_Class5:"shieldGenerators",Int_ShieldGenerator_Size3_Class1:"shieldGenerators",Int_ShieldGenerator_Size3_Class2:"shieldGenerators",Int_ShieldGenerator_Size3_Class3:"shieldGenerators",Int_ShieldGenerator_Size3_Class4:"shieldGenerators",Int_ShieldGenerator_Size3_Class5:"shieldGenerators",Int_ShieldGenerator_Size4_Class1:"shieldGenerators",Int_ShieldGenerator_Size4_Class2:"shieldGenerators",Int_ShieldGenerator_Size4_Class3:"shieldGenerators",Int_ShieldGenerator_Size4_Class4:"shieldGenerators",Int_ShieldGenerator_Size4_Class5:"shieldGenerators",Int_ShieldGenerator_Size5_Class1:"shieldGenerators",Int_ShieldGenerator_Size5_Class2:"shieldGenerators",Int_ShieldGenerator_Size5_Class3:"shieldGenerators",Int_ShieldGenerator_Size5_Class4:"shieldGenerators",Int_ShieldGenerator_Size5_Class5:"shieldGenerators",Int_ShieldGenerator_Size6_Class1:"shieldGenerators",Int_ShieldGenerator_Size6_Class2:"shieldGenerators",Int_ShieldGenerator_Size6_Class3:"shieldGenerators",Int_ShieldGenerator_Size6_Class4:"shieldGenerators",Int_ShieldGenerator_Size6_Class5:"shieldGenerators",Int_ShieldGenerator_Size7_Class1:"shieldGenerators",Int_ShieldGenerator_Size7_Class2:"shieldGenerators",Int_ShieldGenerator_Size7_Class3:"shieldGenerators",Int_ShieldGenerator_Size7_Class4:"shieldGenerators",Int_ShieldGenerator_Size7_Class5:"shieldGenerators",Int_ShieldGenerator_Size8_Class1:"shieldGenerators",Int_ShieldGenerator_Size8_Class2:"shieldGenerators",Int_ShieldGenerator_Size8_Class3:"shieldGenerators",Int_ShieldGenerator_Size8_Class4:"shieldGenerators",Int_ShieldGenerator_Size8_Class5:"shieldGenerators",Int_ShieldGenerator_Size2_Class1_free:"shieldGenerators",Int_ShieldGenerator_Size1_Class5_Strong:"shieldGenerators",Int_ShieldGenerator_Size2_Class5_Strong:"shieldGenerators",Int_ShieldGenerator_Size3_Class5_Strong:"shieldGenerators",Int_ShieldGenerator_Size4_Class5_Strong:"shieldGenerators",Int_ShieldGenerator_Size5_Class5_Strong:"shieldGenerators",Int_ShieldGenerator_Size6_Class5_Strong:"shieldGenerators",Int_ShieldGenerator_Size7_Class5_Strong:"shieldGenerators",Int_ShieldGenerator_Size8_Class5_Strong:"shieldGenerators",Int_ShieldGenerator_Size1_Class3_Fast:"shieldGenerators",Int_ShieldGenerator_Size2_Class3_Fast:"shieldGenerators",Int_ShieldGenerator_Size3_Class3_Fast:"shieldGenerators",Int_ShieldGenerator_Size4_Class3_Fast:"shieldGenerators",Int_ShieldGenerator_Size5_Class3_Fast:"shieldGenerators",Int_ShieldGenerator_Size6_Class3_Fast:"shieldGenerators",Int_ShieldGenerator_Size7_Class3_Fast:"shieldGenerators",Int_ShieldGenerator_Size8_Class3_Fast:"shieldGenerators",Int_ShieldCellBank_Size1_Class1:"shieldCellBanks",Int_ShieldCellBank_Size1_Class2:"shieldCellBanks",Int_ShieldCellBank_Size1_Class3:"shieldCellBanks",Int_ShieldCellBank_Size1_Class4:"shieldCellBanks",Int_ShieldCellBank_Size1_Class5:"shieldCellBanks",Int_ShieldCellBank_Size2_Class1:"shieldCellBanks",Int_ShieldCellBank_Size2_Class2:"shieldCellBanks",Int_ShieldCellBank_Size2_Class3:"shieldCellBanks",Int_ShieldCellBank_Size2_Class4:"shieldCellBanks",Int_ShieldCellBank_Size2_Class5:"shieldCellBanks",Int_ShieldCellBank_Size3_Class1:"shieldCellBanks",Int_ShieldCellBank_Size3_Class2:"shieldCellBanks",Int_ShieldCellBank_Size3_Class3:"shieldCellBanks",Int_ShieldCellBank_Size3_Class4:"shieldCellBanks",Int_ShieldCellBank_Size3_Class5:"shieldCellBanks",Int_ShieldCellBank_Size4_Class1:"shieldCellBanks",Int_ShieldCellBank_Size4_Class2:"shieldCellBanks",Int_ShieldCellBank_Size4_Class3:"shieldCellBanks",Int_ShieldCellBank_Size4_Class4:"shieldCellBanks",Int_ShieldCellBank_Size4_Class5:"shieldCellBanks",Int_ShieldCellBank_Size5_Class1:"shieldCellBanks",Int_ShieldCellBank_Size5_Class2:"shieldCellBanks",Int_ShieldCellBank_Size5_Class3:"shieldCellBanks",Int_ShieldCellBank_Size5_Class4:"shieldCellBanks",Int_ShieldCellBank_Size5_Class5:"shieldCellBanks",Int_ShieldCellBank_Size6_Class1:"shieldCellBanks",Int_ShieldCellBank_Size6_Class2:"shieldCellBanks",Int_ShieldCellBank_Size6_Class3:"shieldCellBanks",Int_ShieldCellBank_Size6_Class4:"shieldCellBanks",Int_ShieldCellBank_Size6_Class5:"shieldCellBanks",Int_ShieldCellBank_Size7_Class1:"shieldCellBanks",Int_ShieldCellBank_Size7_Class2:"shieldCellBanks",Int_ShieldCellBank_Size7_Class3:"shieldCellBanks",Int_ShieldCellBank_Size7_Class4:"shieldCellBanks",Int_ShieldCellBank_Size7_Class5:"shieldCellBanks",Int_ShieldCellBank_Size8_Class1:"shieldCellBanks",Int_ShieldCellBank_Size8_Class2:"shieldCellBanks",Int_ShieldCellBank_Size8_Class3:"shieldCellBanks",Int_ShieldCellBank_Size8_Class4:"shieldCellBanks",Int_ShieldCellBank_Size8_Class5:"shieldCellBanks",Int_HullReinforcement_Size1_Class1:"hullReinforcements",Int_HullReinforcement_Size1_Class2:"hullReinforcements",Int_HullReinforcement_Size2_Class1:"hullReinforcements",Int_HullReinforcement_Size2_Class2:"hullReinforcements",Int_HullReinforcement_Size3_Class1:"hullReinforcements",Int_HullReinforcement_Size3_Class2:"hullReinforcements",Int_HullReinforcement_Size4_Class1:"hullReinforcements",Int_HullReinforcement_Size4_Class2:"hullReinforcements",Int_HullReinforcement_Size5_Class1:"hullReinforcements",Int_HullReinforcement_Size5_Class2:"hullReinforcements",Int_GuardianHullReinforcement_Size1_Class1:"guardianHullReinforcements",Int_GuardianHullReinforcement_Size1_Class2:"guardianHullReinforcements",Int_GuardianHullReinforcement_Size2_Class1:"guardianHullReinforcements",Int_GuardianHullReinforcement_Size2_Class2:"guardianHullReinforcements",Int_GuardianHullReinforcement_Size3_Class1:"guardianHullReinforcements",Int_GuardianHullReinforcement_Size3_Class2:"guardianHullReinforcements",Int_GuardianHullReinforcement_Size4_Class1:"guardianHullReinforcements",Int_GuardianHullReinforcement_Size4_Class2:"guardianHullReinforcements",Int_GuardianHullReinforcement_Size5_Class1:"guardianHullReinforcements",Int_GuardianHullReinforcement_Size5_Class2:"guardianHullReinforcements",Hpt_PulseLaser_Fixed_Small:"pulseLasers",Hpt_PulseLaser_Fixed_Medium:"pulseLasers",Hpt_PulseLaser_Fixed_Large:"pulseLasers",Hpt_PulseLaser_Fixed_Huge:"pulseLasers",Hpt_PulseLaser_Gimbal_Small:"pulseLasers",Hpt_PulseLaser_Gimbal_Medium:"pulseLasers",Hpt_PulseLaser_Gimbal_Large:"pulseLasers",Hpt_PulseLaser_Turret_Small:"pulseLasers",Hpt_PulseLaser_Turret_Medium:"pulseLasers",Hpt_PulseLaser_Turret_Large:"pulseLasers",Hpt_PulseLaser_Fixed_Medium_Disruptor:"pulseLasers",Hpt_PulseLaser_Gimbal_Huge:"pulseLasers",Hpt_PulseLaserBurst_Fixed_Small:"burstLasers",Hpt_PulseLaserBurst_Fixed_Medium:"burstLasers",Hpt_PulseLaserBurst_Fixed_Large:"burstLasers",Hpt_PulseLaserBurst_Fixed_Huge:"burstLasers",Hpt_PulseLaserBurst_Gimbal_Small:"burstLasers",Hpt_PulseLaserBurst_Gimbal_Medium:"burstLasers",Hpt_PulseLaserBurst_Gimbal_Large:"burstLasers",Hpt_PulseLaserBurst_Turret_Small:"burstLasers",Hpt_PulseLaserBurst_Turret_Medium:"burstLasers",Hpt_PulseLaserBurst_Turret_Large:"burstLasers",Hpt_PulseLaserBurst_Fixed_Small_Scatter:"burstLasers",Hpt_PulseLaserBurst_Gimbal_Huge:"burstLasers",Hpt_BeamLaser_Fixed_Small:"beamLasers",Hpt_BeamLaser_Fixed_Medium:"beamLasers",Hpt_BeamLaser_Fixed_Large:"beamLasers",Hpt_BeamLaser_Fixed_Huge:"beamLasers",Hpt_BeamLaser_Gimbal_Small:"beamLasers",Hpt_BeamLaser_Gimbal_Medium:"beamLasers",Hpt_BeamLaser_Gimbal_Large:"beamLasers",Hpt_BeamLaser_Turret_Small:"beamLasers",Hpt_BeamLaser_Turret_Medium:"beamLasers",Hpt_BeamLaser_Turret_Large:"beamLasers",Hpt_BeamLaser_Fixed_Small_Heat:"beamLasers",Hpt_BeamLaser_Gimbal_Huge:"beamLasers",Hpt_Cannon_Fixed_Small:"cannons",Hpt_Cannon_Fixed_Medium:"cannons",Hpt_Cannon_Fixed_Large:"cannons",Hpt_Cannon_Fixed_Huge:"cannons",Hpt_Cannon_Gimbal_Small:"cannons",Hpt_Cannon_Gimbal_Medium:"cannons",Hpt_Cannon_Gimbal_Huge:"cannons",Hpt_Cannon_Turret_Small:"cannons",Hpt_Cannon_Turret_Medium:"cannons",Hpt_Cannon_Turret_Large:"cannons",Hpt_Cannon_Gimbal_Large:"cannons",Hpt_Cannon_Gimbal_Medium_Burst:"cannons",Hpt_Slugshot_Fixed_Small:"fragmentCannons",Hpt_Slugshot_Fixed_Medium:"fragmentCannons",Hpt_Slugshot_Fixed_Large:"fragmentCannons",Hpt_Slugshot_Gimbal_Small:"fragmentCannons",Hpt_Slugshot_Gimbal_Medium:"fragmentCannons",Hpt_Slugshot_Turret_Small:"fragmentCannons",Hpt_Slugshot_Turret_Medium:"fragmentCannons",Hpt_Slugshot_Gimbal_Large:"fragmentCannons",Hpt_Slugshot_Turret_Large:"fragmentCannons",Hpt_Slugshot_Fixed_Large_Range:"fragmentCannons",Hpt_MultiCannon_Fixed_Small:"multiCannons",Hpt_MultiCannon_Fixed_Medium:"multiCannons",Hpt_MultiCannon_Fixed_Large:"multiCannons",Hpt_MultiCannon_Fixed_Huge:"multiCannons",Hpt_MultiCannon_Gimbal_Small:"multiCannons",Hpt_MultiCannon_Gimbal_Medium:"multiCannons",Hpt_MultiCannon_Gimbal_Large:"multiCannons",Hpt_MultiCannon_Turret_Small:"multiCannons",Hpt_MultiCannon_Turret_Medium:"multiCannons",Hpt_MultiCannon_Turret_Large:"multiCannons",Hpt_MultiCannon_Fixed_Small_Strong:"multiCannons",Hpt_MultiCannon_Gimbal_Huge:"multiCannons",Hpt_MultiCannon_Fixed_Medium_Advanced:"multiCannons",Hpt_MultiCannon_Fixed_Small_Advanced:"multiCannons",Hpt_PlasmaAccelerator_Fixed_Medium:"plasmaAccelerators",Hpt_PlasmaAccelerator_Fixed_Large:"plasmaAccelerators",Hpt_PlasmaAccelerator_Fixed_Huge:"plasmaAccelerators",Hpt_PlasmaAccelerator_Fixed_Large_Advanced:"plasmaAccelerators",Hpt_Railgun_Fixed_Small:"railGuns",Hpt_Railgun_Fixed_Medium:"railGuns",Hpt_Railgun_Fixed_Medium_Burst:"railGuns",Hpt_BasicMissileRack_Fixed_Small:"missiles",Hpt_BasicMissileRack_Fixed_Medium:"missiles",Hpt_BasicMissileRack_Fixed_Large:"missiles",Hpt_DumbfireMissileRack_Fixed_Small:"missiles",Hpt_DumbfireMissileRack_Fixed_Medium:"missiles",Hpt_DrunkMissileRack_Fixed_Medium:"missiles",Hpt_DumbfireMissileRack_Fixed_Medium_Lasso:"missiles",Hpt_DumbfireMissileRack_Fixed_Large:"missiles",Hpt_DumbfireMissileRack_Fixed_Small_Advanced:"missiles",Hpt_DumbfireMissileRack_Fixed_Medium_Advanced:"missiles",Hpt_MineLauncher_Fixed_Small:"mines",Hpt_MineLauncher_Fixed_Medium:"mines",Hpt_MineLauncher_Fixed_Small_Impulse:"mines",Hpt_AdvancedTorpPylon_Fixed_Small:"torpedoes",Hpt_AdvancedTorpPylon_Fixed_Medium:"torpedoes",Hpt_AdvancedTorpPylon_Fixed_Large:"torpedoes",Hpt_ShieldBooster_Size0_Class1:"shieldBoosters",Hpt_ShieldBooster_Size0_Class2:"shieldBoosters",Hpt_ShieldBooster_Size0_Class3:"shieldBoosters",Hpt_ShieldBooster_Size0_Class4:"shieldBoosters",Hpt_ShieldBooster_Size0_Class5:"shieldBoosters",SideWinder_Armour_Grade1:"bulkheads",SideWinder_Armour_Grade2:"bulkheads",SideWinder_Armour_Grade3:"bulkheads",SideWinder_Armour_Mirrored:"bulkheads",SideWinder_Armour_Reactive:"bulkheads",Eagle_Armour_Grade1:"bulkheads",Eagle_Armour_Grade2:"bulkheads",Eagle_Armour_Grade3:"bulkheads",Eagle_Armour_Mirrored:"bulkheads",Eagle_Armour_Reactive:"bulkheads",Hauler_Armour_Grade1:"bulkheads",Hauler_Armour_Grade2:"bulkheads",Hauler_Armour_Grade3:"bulkheads",Hauler_Armour_Mirrored:"bulkheads",Hauler_Armour_Reactive:"bulkheads",Adder_Armour_Grade1:"bulkheads",Adder_Armour_Grade2:"bulkheads",Adder_Armour_Grade3:"bulkheads",Adder_Armour_Mirrored:"bulkheads",Adder_Armour_Reactive:"bulkheads",Viper_Armour_Grade1:"bulkheads",Viper_Armour_Grade2:"bulkheads",Viper_Armour_Grade3:"bulkheads",Viper_Armour_Mirrored:"bulkheads",Viper_Armour_Reactive:"bulkheads",CobraMkIII_Armour_Grade1:"bulkheads",CobraMkIII_Armour_Grade2:"bulkheads",CobraMkIII_Armour_Grade3:"bulkheads",CobraMkIII_Armour_Mirrored:"bulkheads",CobraMkIII_Armour_Reactive:"bulkheads",Type6_Armour_Grade1:"bulkheads",Type6_Armour_Grade2:"bulkheads",Type6_Armour_Grade3:"bulkheads",Type6_Armour_Mirrored:"bulkheads",Type6_Armour_Reactive:"bulkheads",Dolphin_Armour_Grade1:"bulkheads",Dolphin_Armour_Grade2:"bulkheads",Dolphin_Armour_Grade3:"bulkheads",Dolphin_Armour_Mirrored:"bulkheads",Dolphin_Armour_Reactive:"bulkheads",Type7_Armour_Grade1:"bulkheads",Type7_Armour_Grade2:"bulkheads",Type7_Armour_Grade3:"bulkheads",Type7_Armour_Mirrored:"bulkheads",Type7_Armour_Reactive:"bulkheads",Asp_Armour_Grade1:"bulkheads",Asp_Armour_Grade2:"bulkheads",Asp_Armour_Grade3:"bulkheads",Asp_Armour_Mirrored:"bulkheads",Asp_Armour_Reactive:"bulkheads",Vulture_Armour_Grade1:"bulkheads",Vulture_Armour_Grade2:"bulkheads",Vulture_Armour_Grade3:"bulkheads",Vulture_Armour_Mirrored:"bulkheads",Vulture_Armour_Reactive:"bulkheads",Empire_Trader_Armour_Grade1:"bulkheads",Empire_Trader_Armour_Grade2:"bulkheads",Empire_Trader_Armour_Grade3:"bulkheads",Empire_Trader_Armour_Mirrored:"bulkheads",Empire_Trader_Armour_Reactive:"bulkheads",Federation_Dropship_Armour_Grade1:"bulkheads",Federation_Dropship_Armour_Grade2:"bulkheads",Federation_Dropship_Armour_Grade3:"bulkheads",Federation_Dropship_Armour_Mirrored:"bulkheads",Federation_Dropship_Armour_Reactive:"bulkheads",Orca_Armour_Grade1:"bulkheads",Orca_Armour_Grade2:"bulkheads",Orca_Armour_Grade3:"bulkheads",Orca_Armour_Mirrored:"bulkheads",Orca_Armour_Reactive:"bulkheads",Type9_Armour_Grade1:"bulkheads",Type9_Armour_Grade2:"bulkheads",Type9_Armour_Grade3:"bulkheads",Type9_Armour_Mirrored:"bulkheads",Type9_Armour_Reactive:"bulkheads",Python_Armour_Grade1:"bulkheads",Python_Armour_Grade2:"bulkheads",Python_Armour_Grade3:"bulkheads",Python_Armour_Mirrored:"bulkheads",Python_Armour_Reactive:"bulkheads",BelugaLiner_Armour_Grade1:"bulkheads",BelugaLiner_Armour_Grade2:"bulkheads",BelugaLiner_Armour_Grade3:"bulkheads",BelugaLiner_Armour_Mirrored:"bulkheads",BelugaLiner_Armour_Reactive:"bulkheads",FerDeLance_Armour_Grade1:"bulkheads",FerDeLance_Armour_Grade2:"bulkheads",FerDeLance_Armour_Grade3:"bulkheads",FerDeLance_Armour_Mirrored:"bulkheads",FerDeLance_Armour_Reactive:"bulkheads",Anaconda_Armour_Grade1:"bulkheads",Anaconda_Armour_Grade2:"bulkheads",Anaconda_Armour_Grade3:"bulkheads",Anaconda_Armour_Mirrored:"bulkheads",Anaconda_Armour_Reactive:"bulkheads",Federation_Corvette_Armour_Grade1:"bulkheads",Federation_Corvette_Armour_Grade2:"bulkheads",Federation_Corvette_Armour_Grade3:"bulkheads",Federation_Corvette_Armour_Mirrored:"bulkheads",Federation_Corvette_Armour_Reactive:"bulkheads",Cutter_Armour_Grade1:"bulkheads",Cutter_Armour_Grade2:"bulkheads",Cutter_Armour_Grade3:"bulkheads",Cutter_Armour_Mirrored:"bulkheads",Cutter_Armour_Reactive:"bulkheads",DiamondBack_Armour_Grade1:"bulkheads",DiamondBack_Armour_Grade2:"bulkheads",DiamondBack_Armour_Grade3:"bulkheads",DiamondBack_Armour_Mirrored:"bulkheads",DiamondBack_Armour_Reactive:"bulkheads",Empire_Courier_Armour_Grade1:"bulkheads",Empire_Courier_Armour_Grade2:"bulkheads",Empire_Courier_Armour_Grade3:"bulkheads",Empire_Courier_Armour_Mirrored:"bulkheads",Empire_Courier_Armour_Reactive:"bulkheads",DiamondBackXL_Armour_Grade1:"bulkheads",DiamondBackXL_Armour_Grade2:"bulkheads",DiamondBackXL_Armour_Grade3:"bulkheads",DiamondBackXL_Armour_Mirrored:"bulkheads",DiamondBackXL_Armour_Reactive:"bulkheads",Empire_Eagle_Armour_Grade1:"bulkheads",Empire_Eagle_Armour_Grade2:"bulkheads",Empire_Eagle_Armour_Grade3:"bulkheads",Empire_Eagle_Armour_Mirrored:"bulkheads",Empire_Eagle_Armour_Reactive:"bulkheads",Federation_Dropship_MkII_Armour_Grade1:"bulkheads",Federation_Dropship_MkII_Armour_Grade2:"bulkheads",Federation_Dropship_MkII_Armour_Grade3:"bulkheads",Federation_Dropship_MkII_Armour_Mirrored:"bulkheads",Federation_Dropship_MkII_Armour_Reactive:"bulkheads",Federation_Gunship_Armour_Grade1:"bulkheads",Federation_Gunship_Armour_Grade2:"bulkheads",Federation_Gunship_Armour_Grade3:"bulkheads",Federation_Gunship_Armour_Mirrored:"bulkheads",Federation_Gunship_Armour_Reactive:"bulkheads",Viper_MkIV_Armour_Grade1:"bulkheads",Viper_MkIV_Armour_Grade2:"bulkheads",Viper_MkIV_Armour_Grade3:"bulkheads",Viper_MkIV_Armour_Mirrored:"bulkheads",Viper_MkIV_Armour_Reactive:"bulkheads",CobraMkIV_Armour_Grade1:"bulkheads",CobraMkIV_Armour_Grade2:"bulkheads",CobraMkIV_Armour_Grade3:"bulkheads",CobraMkIV_Armour_Mirrored:"bulkheads",CobraMkIV_Armour_Reactive:"bulkheads",Independant_Trader_Armour_Grade1:"bulkheads",Independant_Trader_Armour_Grade2:"bulkheads",Independant_Trader_Armour_Grade3:"bulkheads",Independant_Trader_Armour_Mirrored:"bulkheads",Independant_Trader_Armour_Reactive:"bulkheads",Asp_Scout_Armour_Grade1:"bulkheads",Asp_Scout_Armour_Grade2:"bulkheads",Asp_Scout_Armour_Grade3:"bulkheads",Asp_Scout_Armour_Mirrored:"bulkheads",Asp_Scout_Armour_Reactive:"bulkheads",Type9_Military_Armour_Grade1:"bulkheads",Type9_Military_Armour_Grade2:"bulkheads",Type9_Military_Armour_Grade3:"bulkheads",Type9_Military_Armour_Mirrored:"bulkheads",Type9_Military_Armour_Reactive:"bulkheads",Krait_MkII_Armour_Grade1:"bulkheads",Krait_MkII_Armour_Grade2:"bulkheads",Krait_MkII_Armour_Grade3:"bulkheads",Krait_MkII_Armour_Mirrored:"bulkheads",Krait_MkII_Armour_Reactive:"bulkheads",TypeX_Armour_Grade1:"bulkheads",TypeX_Armour_Grade2:"bulkheads",TypeX_Armour_Grade3:"bulkheads",TypeX_Armour_Mirrored:"bulkheads",TypeX_Armour_Reactive:"bulkheads",TypeX_2_Armour_Grade1:"bulkheads",TypeX_2_Armour_Grade2:"bulkheads",TypeX_2_Armour_Grade3:"bulkheads",TypeX_2_Armour_Mirrored:"bulkheads",TypeX_2_Armour_Reactive:"bulkheads",TypeX_3_Armour_Grade1:"bulkheads",TypeX_3_Armour_Grade2:"bulkheads",TypeX_3_Armour_Grade3:"bulkheads",TypeX_3_Armour_Mirrored:"bulkheads",TypeX_3_Armour_Reactive:"bulkheads",Krait_Light_Armour_Grade1:"bulkheads",Krait_Light_Armour_Grade2:"bulkheads",Krait_Light_Armour_Grade3:"bulkheads",Krait_Light_Armour_Mirrored:"bulkheads",Krait_Light_Armour_Reactive:"bulkheads",Mamba_Armour_Grade1:"bulkheads",Mamba_Armour_Grade2:"bulkheads",Mamba_Armour_Grade3:"bulkheads",Mamba_Armour_Mirrored:"bulkheads",Mamba_Armour_Reactive:"bulkheads",Python_NX_Armour_Grade1:"bulkheads",Python_NX_Armour_Grade2:"bulkheads",Python_NX_Armour_Grade3:"bulkheads",Python_NX_Armour_Mirrored:"bulkheads",Python_NX_Armour_Reactive:"bulkheads",Type8_Armour_Grade1:"bulkheads",Type8_Armour_Grade2:"bulkheads",Type8_Armour_Grade3:"bulkheads",Type8_Armour_Mirrored:"bulkheads",Type8_Armour_Reactive:"bulkheads",Mandalay_Armour_Grade1:"bulkheads",Mandalay_Armour_Grade2:"bulkheads",Mandalay_Armour_Grade3:"bulkheads",Mandalay_Armour_Mirrored:"bulkheads",Mandalay_Armour_Reactive:"bulkheads",CobraMkV_Armour_Grade1:"bulkheads",CobraMkV_Armour_Grade2:"bulkheads",CobraMkV_Armour_Grade3:"bulkheads",CobraMkV_Armour_Mirrored:"bulkheads",CobraMkV_Armour_Reactive:"bulkheads",Corsair_Armour_Grade1:"bulkheads",Corsair_Armour_Grade2:"bulkheads",Corsair_Armour_Grade3:"bulkheads",Corsair_Armour_Mirrored:"bulkheads",Corsair_Armour_Reactive:"bulkheads",PantherMkII_Armour_Grade1:"bulkheads",PantherMkII_Armour_Grade2:"bulkheads",PantherMkII_Armour_Grade3:"bulkheads",PantherMkII_Armour_Mirrored:"bulkheads",PantherMkII_Armour_Reactive:"bulkheads",LakonMiner_Armour_Grade1:"bulkheads",LakonMiner_Armour_Grade2:"bulkheads",LakonMiner_Armour_Grade3:"bulkheads",LakonMiner_Armour_Mirrored:"bulkheads",LakonMiner_Armour_Reactive:"bulkheads",Explorer_NX_Armour_Grade1:"bulkheads",Explorer_NX_Armour_Grade2:"bulkheads",Explorer_NX_Armour_Grade3:"bulkheads",Explorer_NX_Armour_Mirrored:"bulkheads",Explorer_NX_Armour_Reactive:"bulkheads",Explorer_NX_Armour_Grade1_Default:"bulkheads",SmallCombat01_NX_Armour_Grade1:"bulkheads",SmallCombat01_NX_Armour_Grade2:"bulkheads",SmallCombat01_NX_Armour_Grade3:"bulkheads",SmallCombat01_NX_Armour_Mirrored:"bulkheads",SmallCombat01_NX_Armour_Reactive:"bulkheads",MediumTransport01_Armour_Grade1:"bulkheads",MediumTransport01_Armour_Grade2:"bulkheads",MediumTransport01_Armour_Grade3:"bulkheads",MediumTransport01_Armour_Mirrored:"bulkheads",MediumTransport01_Armour_Reactive:"bulkheads",Int_LifeSupport_Size1_Class1:"lifeSupports",Int_LifeSupport_Size1_Class2:"lifeSupports",Int_LifeSupport_Size1_Class3:"lifeSupports",Int_LifeSupport_Size1_Class4:"lifeSupports",Int_LifeSupport_Size1_Class5:"lifeSupports",Int_LifeSupport_Size2_Class1:"lifeSupports",Int_LifeSupport_Size2_Class2:"lifeSupports",Int_LifeSupport_Size2_Class3:"lifeSupports",Int_LifeSupport_Size2_Class4:"lifeSupports",Int_LifeSupport_Size2_Class5:"lifeSupports",Int_LifeSupport_Size3_Class1:"lifeSupports",Int_LifeSupport_Size3_Class2:"lifeSupports",Int_LifeSupport_Size3_Class3:"lifeSupports",Int_LifeSupport_Size3_Class4:"lifeSupports",Int_LifeSupport_Size3_Class5:"lifeSupports",Int_LifeSupport_Size4_Class1:"lifeSupports",Int_LifeSupport_Size4_Class2:"lifeSupports",Int_LifeSupport_Size4_Class3:"lifeSupports",Int_LifeSupport_Size4_Class4:"lifeSupports",Int_LifeSupport_Size4_Class5:"lifeSupports",Int_LifeSupport_Size5_Class1:"lifeSupports",Int_LifeSupport_Size5_Class2:"lifeSupports",Int_LifeSupport_Size5_Class3:"lifeSupports",Int_LifeSupport_Size5_Class4:"lifeSupports",Int_LifeSupport_Size5_Class5:"lifeSupports",Int_LifeSupport_Size6_Class1:"lifeSupports",Int_LifeSupport_Size6_Class2:"lifeSupports",Int_LifeSupport_Size6_Class3:"lifeSupports",Int_LifeSupport_Size6_Class4:"lifeSupports",Int_LifeSupport_Size6_Class5:"lifeSupports",Int_LifeSupport_Size7_Class1:"lifeSupports",Int_LifeSupport_Size7_Class2:"lifeSupports",Int_LifeSupport_Size7_Class3:"lifeSupports",Int_LifeSupport_Size7_Class4:"lifeSupports",Int_LifeSupport_Size7_Class5:"lifeSupports",Int_LifeSupport_Size8_Class1:"lifeSupports",Int_LifeSupport_Size8_Class2:"lifeSupports",Int_LifeSupport_Size8_Class3:"lifeSupports",Int_LifeSupport_Size8_Class4:"lifeSupports",Int_LifeSupport_Size8_Class5:"lifeSupports",Int_LifeSupport_Size1_Class1_free:"lifeSupports",Int_Sensors_Size1_Class1:"sensors",Int_Sensors_Size1_Class2:"sensors",Int_Sensors_Size1_Class3:"sensors",Int_Sensors_Size1_Class4:"sensors",Int_Sensors_Size1_Class5:"sensors",Int_Sensors_Size2_Class1:"sensors",Int_Sensors_Size2_Class2:"sensors",Int_Sensors_Size2_Class3:"sensors",Int_Sensors_Size2_Class4:"sensors",Int_Sensors_Size2_Class5:"sensors",Int_Sensors_Size3_Class1:"sensors",Int_Sensors_Size3_Class2:"sensors",Int_Sensors_Size3_Class3:"sensors",Int_Sensors_Size3_Class4:"sensors",Int_Sensors_Size3_Class5:"sensors",Int_Sensors_Size4_Class1:"sensors",Int_Sensors_Size4_Class2:"sensors",Int_Sensors_Size4_Class3:"sensors",Int_Sensors_Size4_Class4:"sensors",Int_Sensors_Size4_Class5:"sensors",Int_Sensors_Size5_Class1:"sensors",Int_Sensors_Size5_Class2:"sensors",Int_Sensors_Size5_Class3:"sensors",Int_Sensors_Size5_Class4:"sensors",Int_Sensors_Size5_Class5:"sensors",Int_Sensors_Size6_Class1:"sensors",Int_Sensors_Size6_Class2:"sensors",Int_Sensors_Size6_Class3:"sensors",Int_Sensors_Size6_Class4:"sensors",Int_Sensors_Size6_Class5:"sensors",Int_Sensors_Size7_Class1:"sensors",Int_Sensors_Size7_Class2:"sensors",Int_Sensors_Size7_Class3:"sensors",Int_Sensors_Size7_Class4:"sensors",Int_Sensors_Size7_Class5:"sensors",Int_Sensors_Size8_Class1:"sensors",Int_Sensors_Size8_Class2:"sensors",Int_Sensors_Size8_Class3:"sensors",Int_Sensors_Size8_Class4:"sensors",Int_Sensors_Size8_Class5:"sensors",Int_Sensors_Size1_Class1_free:"sensors",Int_Repairer_Size1_Class1:"autoFieldMaintenanceUnits",Int_Repairer_Size2_Class1:"autoFieldMaintenanceUnits",Int_Repairer_Size3_Class1:"autoFieldMaintenanceUnits",Int_Repairer_Size4_Class1:"autoFieldMaintenanceUnits",Int_Repairer_Size5_Class1:"autoFieldMaintenanceUnits",Int_Repairer_Size6_Class1:"autoFieldMaintenanceUnits",Int_Repairer_Size7_Class1:"autoFieldMaintenanceUnits",Int_Repairer_Size8_Class1:"autoFieldMaintenanceUnits",Int_Repairer_Size1_Class2:"autoFieldMaintenanceUnits",Int_Repairer_Size2_Class2:"autoFieldMaintenanceUnits",Int_Repairer_Size3_Class2:"autoFieldMaintenanceUnits",Int_Repairer_Size4_Class2:"autoFieldMaintenanceUnits",Int_Repairer_Size5_Class2:"autoFieldMaintenanceUnits",Int_Repairer_Size6_Class2:"autoFieldMaintenanceUnits",Int_Repairer_Size7_Class2:"autoFieldMaintenanceUnits",Int_Repairer_Size8_Class2:"autoFieldMaintenanceUnits",Int_Repairer_Size1_Class3:"autoFieldMaintenanceUnits",Int_Repairer_Size2_Class3:"autoFieldMaintenanceUnits",Int_Repairer_Size3_Class3:"autoFieldMaintenanceUnits",Int_Repairer_Size4_Class3:"autoFieldMaintenanceUnits",Int_Repairer_Size5_Class3:"autoFieldMaintenanceUnits",Int_Repairer_Size6_Class3:"autoFieldMaintenanceUnits",Int_Repairer_Size7_Class3:"autoFieldMaintenanceUnits",Int_Repairer_Size8_Class3:"autoFieldMaintenanceUnits",Int_Repairer_Size1_Class4:"autoFieldMaintenanceUnits",Int_Repairer_Size2_Class4:"autoFieldMaintenanceUnits",Int_Repairer_Size3_Class4:"autoFieldMaintenanceUnits",Int_Repairer_Size4_Class4:"autoFieldMaintenanceUnits",Int_Repairer_Size5_Class4:"autoFieldMaintenanceUnits",Int_Repairer_Size6_Class4:"autoFieldMaintenanceUnits",Int_Repairer_Size7_Class4:"autoFieldMaintenanceUnits",Int_Repairer_Size8_Class4:"autoFieldMaintenanceUnits",Int_Repairer_Size1_Class5:"autoFieldMaintenanceUnits",Int_Repairer_Size2_Class5:"autoFieldMaintenanceUnits",Int_Repairer_Size3_Class5:"autoFieldMaintenanceUnits",Int_Repairer_Size4_Class5:"autoFieldMaintenanceUnits",Int_Repairer_Size5_Class5:"autoFieldMaintenanceUnits",Int_Repairer_Size6_Class5:"autoFieldMaintenanceUnits",Int_Repairer_Size7_Class5:"autoFieldMaintenanceUnits",Int_Repairer_Size8_Class5:"autoFieldMaintenanceUnits",Int_DroneControl_Collection_Size1_Class1:"collectionLimpets",Int_DroneControl_Collection_Size1_Class2:"collectionLimpets",Int_DroneControl_Collection_Size1_Class3:"collectionLimpets",Int_DroneControl_Collection_Size1_Class4:"collectionLimpets",Int_DroneControl_Collection_Size1_Class5:"collectionLimpets",Int_DroneControl_Collection_Size3_Class1:"collectionLimpets",Int_DroneControl_Collection_Size3_Class2:"collectionLimpets",Int_DroneControl_Collection_Size3_Class3:"collectionLimpets",Int_DroneControl_Collection_Size3_Class4:"collectionLimpets",Int_DroneControl_Collection_Size3_Class5:"collectionLimpets",Int_DroneControl_Collection_Size5_Class1:"collectionLimpets",Int_DroneControl_Collection_Size5_Class2:"collectionLimpets",Int_DroneControl_Collection_Size5_Class3:"collectionLimpets",Int_DroneControl_Collection_Size5_Class4:"collectionLimpets",Int_DroneControl_Collection_Size5_Class5:"collectionLimpets",Int_DroneControl_Collection_Size7_Class1:"collectionLimpets",Int_DroneControl_Collection_Size7_Class2:"collectionLimpets",Int_DroneControl_Collection_Size7_Class3:"collectionLimpets",Int_DroneControl_Collection_Size7_Class4:"collectionLimpets",Int_DroneControl_Collection_Size7_Class5:"collectionLimpets",Int_GuardianFSDBooster_Size1:"fsdBoosters",Int_GuardianFSDBooster_Size2:"fsdBoosters",Int_GuardianFSDBooster_Size3:"fsdBoosters",Int_GuardianFSDBooster_Size4:"fsdBoosters",Int_GuardianFSDBooster_Size5:"fsdBoosters",Int_FSDInterdictor_Size1_Class1:"fsdInterdictors",Int_FSDInterdictor_Size2_Class1:"fsdInterdictors",Int_FSDInterdictor_Size3_Class1:"fsdInterdictors",Int_FSDInterdictor_Size4_Class1:"fsdInterdictors",Int_FSDInterdictor_Size1_Class2:"fsdInterdictors",Int_FSDInterdictor_Size2_Class2:"fsdInterdictors",Int_FSDInterdictor_Size3_Class2:"fsdInterdictors",Int_FSDInterdictor_Size4_Class2:"fsdInterdictors",Int_FSDInterdictor_Size1_Class3:"fsdInterdictors",Int_FSDInterdictor_Size2_Class3:"fsdInterdictors",Int_FSDInterdictor_Size3_Class3:"fsdInterdictors",Int_FSDInterdictor_Size4_Class3:"fsdInterdictors",Int_FSDInterdictor_Size1_Class4:"fsdInterdictors",Int_FSDInterdictor_Size2_Class4:"fsdInterdictors",Int_FSDInterdictor_Size3_Class4:"fsdInterdictors",Int_FSDInterdictor_Size4_Class4:"fsdInterdictors",Int_FSDInterdictor_Size1_Class5:"fsdInterdictors",Int_FSDInterdictor_Size2_Class5:"fsdInterdictors",Int_FSDInterdictor_Size3_Class5:"fsdInterdictors",Int_FSDInterdictor_Size4_Class5:"fsdInterdictors",Int_FuelScoop_Size1_Class1:"fuelScoops",Int_FuelScoop_Size2_Class1:"fuelScoops",Int_FuelScoop_Size3_Class1:"fuelScoops",Int_FuelScoop_Size4_Class1:"fuelScoops",Int_FuelScoop_Size5_Class1:"fuelScoops",Int_FuelScoop_Size6_Class1:"fuelScoops",Int_FuelScoop_Size7_Class1:"fuelScoops",Int_FuelScoop_Size8_Class1:"fuelScoops",Int_FuelScoop_Size1_Class2:"fuelScoops",Int_FuelScoop_Size2_Class2:"fuelScoops",Int_FuelScoop_Size3_Class2:"fuelScoops",Int_FuelScoop_Size4_Class2:"fuelScoops",Int_FuelScoop_Size5_Class2:"fuelScoops",Int_FuelScoop_Size6_Class2:"fuelScoops",Int_FuelScoop_Size7_Class2:"fuelScoops",Int_FuelScoop_Size8_Class2:"fuelScoops",Int_FuelScoop_Size1_Class3:"fuelScoops",Int_FuelScoop_Size2_Class3:"fuelScoops",Int_FuelScoop_Size3_Class3:"fuelScoops",Int_FuelScoop_Size4_Class3:"fuelScoops",Int_FuelScoop_Size5_Class3:"fuelScoops",Int_FuelScoop_Size6_Class3:"fuelScoops",Int_FuelScoop_Size7_Class3:"fuelScoops",Int_FuelScoop_Size8_Class3:"fuelScoops",Int_FuelScoop_Size1_Class4:"fuelScoops",Int_FuelScoop_Size2_Class4:"fuelScoops",Int_FuelScoop_Size3_Class4:"fuelScoops",Int_FuelScoop_Size4_Class4:"fuelScoops",Int_FuelScoop_Size5_Class4:"fuelScoops",Int_FuelScoop_Size6_Class4:"fuelScoops",Int_FuelScoop_Size7_Class4:"fuelScoops",Int_FuelScoop_Size8_Class4:"fuelScoops",Int_FuelScoop_Size1_Class5:"fuelScoops",Int_FuelScoop_Size2_Class5:"fuelScoops",Int_FuelScoop_Size3_Class5:"fuelScoops",Int_FuelScoop_Size4_Class5:"fuelScoops",Int_FuelScoop_Size5_Class5:"fuelScoops",Int_FuelScoop_Size6_Class5:"fuelScoops",Int_FuelScoop_Size7_Class5:"fuelScoops",Int_FuelScoop_Size8_Class5:"fuelScoops",Int_DroneControl_FuelTransfer_Size1_Class1:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size1_Class2:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size1_Class3:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size1_Class4:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size1_Class5:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size3_Class1:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size3_Class2:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size3_Class3:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size3_Class4:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size3_Class5:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size5_Class1:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size5_Class2:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size5_Class3:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size5_Class4:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size5_Class5:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size7_Class1:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size7_Class2:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size7_Class3:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size7_Class4:"fuelTransferLimpets",Int_DroneControl_FuelTransfer_Size7_Class5:"fuelTransferLimpets",Int_DroneControl_ResourceSiphon:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size1_Class1:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size1_Class2:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size1_Class3:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size1_Class4:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size1_Class5:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size3_Class1:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size3_Class2:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size3_Class3:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size3_Class4:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size3_Class5:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size5_Class1:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size5_Class2:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size5_Class3:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size5_Class4:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size5_Class5:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size7_Class1:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size7_Class2:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size7_Class3:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size7_Class4:"hatchBreakerLimpets",Int_DroneControl_ResourceSiphon_Size7_Class5:"hatchBreakerLimpets",Int_GuardianModuleReinforcement_Size1_Class1:"moduleReinforcements",Int_GuardianModuleReinforcement_Size1_Class2:"moduleReinforcements",Int_GuardianModuleReinforcement_Size2_Class1:"moduleReinforcements",Int_GuardianModuleReinforcement_Size2_Class2:"moduleReinforcements",Int_GuardianModuleReinforcement_Size3_Class1:"moduleReinforcements",Int_GuardianModuleReinforcement_Size3_Class2:"moduleReinforcements",Int_GuardianModuleReinforcement_Size4_Class1:"moduleReinforcements",Int_GuardianModuleReinforcement_Size4_Class2:"moduleReinforcements",Int_GuardianModuleReinforcement_Size5_Class1:"moduleReinforcements",Int_GuardianModuleReinforcement_Size5_Class2:"moduleReinforcements",Int_DroneControl_Prospector_Size1_Class1:"prospectingLimpets",Int_DroneControl_Prospector_Size1_Class2:"prospectingLimpets",Int_DroneControl_Prospector_Size1_Class3:"prospectingLimpets",Int_DroneControl_Prospector_Size1_Class4:"prospectingLimpets",Int_DroneControl_Prospector_Size1_Class5:"prospectingLimpets",Int_DroneControl_Prospector_Size3_Class1:"prospectingLimpets",Int_DroneControl_Prospector_Size3_Class2:"prospectingLimpets",Int_DroneControl_Prospector_Size3_Class3:"prospectingLimpets",Int_DroneControl_Prospector_Size3_Class4:"prospectingLimpets",Int_DroneControl_Prospector_Size3_Class5:"prospectingLimpets",Int_DroneControl_Prospector_Size5_Class1:"prospectingLimpets",Int_DroneControl_Prospector_Size5_Class2:"prospectingLimpets",Int_DroneControl_Prospector_Size5_Class3:"prospectingLimpets",Int_DroneControl_Prospector_Size5_Class4:"prospectingLimpets",Int_DroneControl_Prospector_Size5_Class5:"prospectingLimpets",Int_DroneControl_Prospector_Size7_Class1:"prospectingLimpets",Int_DroneControl_Prospector_Size7_Class2:"prospectingLimpets",Int_DroneControl_Prospector_Size7_Class3:"prospectingLimpets",Int_DroneControl_Prospector_Size7_Class4:"prospectingLimpets",Int_DroneControl_Prospector_Size7_Class5:"prospectingLimpets",Int_Refinery_Size1_Class1:"refineries",Int_Refinery_Size2_Class1:"refineries",Int_Refinery_Size3_Class1:"refineries",Int_Refinery_Size4_Class1:"refineries",Int_Refinery_Size1_Class2:"refineries",Int_Refinery_Size2_Class2:"refineries",Int_Refinery_Size3_Class2:"refineries",Int_Refinery_Size4_Class2:"refineries",Int_Refinery_Size1_Class3:"refineries",Int_Refinery_Size2_Class3:"refineries",Int_Refinery_Size3_Class3:"refineries",Int_Refinery_Size4_Class3:"refineries",Int_Refinery_Size1_Class4:"refineries",Int_Refinery_Size2_Class4:"refineries",Int_Refinery_Size3_Class4:"refineries",Int_Refinery_Size4_Class4:"refineries",Int_Refinery_Size1_Class5:"refineries",Int_Refinery_Size2_Class5:"refineries",Int_Refinery_Size3_Class5:"refineries",Int_Refinery_Size4_Class5:"refineries",Int_GuardianShieldReinforcement_Size1_Class1:"shieldReinforcements",Int_GuardianShieldReinforcement_Size1_Class2:"shieldReinforcements",Int_GuardianShieldReinforcement_Size2_Class1:"shieldReinforcements",Int_GuardianShieldReinforcement_Size2_Class2:"shieldReinforcements",Int_GuardianShieldReinforcement_Size3_Class1:"shieldReinforcements",Int_GuardianShieldReinforcement_Size3_Class2:"shieldReinforcements",Int_GuardianShieldReinforcement_Size4_Class1:"shieldReinforcements",Int_GuardianShieldReinforcement_Size4_Class2:"shieldReinforcements",Int_GuardianShieldReinforcement_Size5_Class1:"shieldReinforcements",Int_GuardianShieldReinforcement_Size5_Class2:"shieldReinforcements",Int_DetailedSurfaceScanner_Tiny:"surfaceScanners",Hpt_ChaffLauncher_Tiny:"chaffLaunchers",Hpt_ElectronicCountermeasure_Tiny:"ecms",Hpt_HeatSinkLauncher_Turret_Tiny:"heatSinkLaunchers",Hpt_CausticSinkLauncher_Turret_Tiny:"heatSinkLaunchers",Hpt_CrimeScanner_Size0_Class1:"killWarrantScanners",Hpt_CrimeScanner_Size0_Class2:"killWarrantScanners",Hpt_CrimeScanner_Size0_Class3:"killWarrantScanners",Hpt_CrimeScanner_Size0_Class4:"killWarrantScanners",Hpt_CrimeScanner_Size0_Class5:"killWarrantScanners",Hpt_CargoScanner_Size0_Class1:"manifestScanners",Hpt_CargoScanner_Size0_Class2:"manifestScanners",Hpt_CargoScanner_Size0_Class3:"manifestScanners",Hpt_CargoScanner_Size0_Class4:"manifestScanners",Hpt_CargoScanner_Size0_Class5:"manifestScanners",Hpt_PlasmaPointDefence_Turret_Tiny:"pointDefence",Hpt_CloudScanner_Size0_Class1:"wakeScanners",Hpt_CloudScanner_Size0_Class2:"wakeScanners",Hpt_CloudScanner_Size0_Class3:"wakeScanners",Hpt_CloudScanner_Size0_Class4:"wakeScanners",Hpt_CloudScanner_Size0_Class5:"wakeScanners",Hpt_Guardian_GaussCannon_Fixed_Medium:"guardianGauss",Hpt_Guardian_GaussCannon_Fixed_Small:"guardianGauss",Hpt_Guardian_PlasmaLauncher_Fixed_Medium:"guardianPlasma",Hpt_Guardian_PlasmaLauncher_Turret_Medium:"guardianPlasma",Hpt_Guardian_PlasmaLauncher_Fixed_Large:"guardianPlasma",Hpt_Guardian_PlasmaLauncher_Turret_Large:"guardianPlasma",Hpt_Guardian_PlasmaLauncher_Turret_Small:"guardianPlasma",Hpt_Guardian_PlasmaLauncher_Fixed_Small:"guardianPlasma",Hpt_Guardian_ShardCannon_Fixed_Medium:"guardianShard",Hpt_Guardian_ShardCannon_Turret_Medium:"guardianShard",Hpt_Guardian_ShardCannon_Fixed_Large:"guardianShard",Hpt_Guardian_ShardCannon_Turret_Large:"guardianShard",Hpt_Guardian_ShardCannon_Turret_Small:"guardianShard",Hpt_Guardian_ShardCannon_Fixed_Small:"guardianShard"},exclusions:{Hpt_MultiCannon_Fixed_Small:["special_phasing_sequence"],Hpt_MultiCannon_Fixed_Large:["special_phasing_sequence"],Hpt_MultiCannon_Fixed_Huge:["special_phasing_sequence"],Hpt_MultiCannon_Gimbal_Small:["special_phasing_sequence"],Hpt_MultiCannon_Gimbal_Medium:["special_phasing_sequence"],Hpt_MultiCannon_Gimbal_Large:["special_phasing_sequence"],Hpt_MultiCannon_Turret_Small:["special_phasing_sequence"],Hpt_MultiCannon_Turret_Medium:["special_phasing_sequence"],Hpt_MultiCannon_Turret_Large:["special_phasing_sequence"],Hpt_MultiCannon_Fixed_Small_Strong:["special_phasing_sequence"],Hpt_MultiCannon_Gimbal_Huge:["special_phasing_sequence"],Hpt_MultiCannon_Fixed_Medium_Advanced:["special_phasing_sequence"],Hpt_MultiCannon_Fixed_Small_Advanced:["special_phasing_sequence"],Hpt_BasicMissileRack_Fixed_Small:["special_fsd_interrupt","special_penetrator_munitions"],Hpt_BasicMissileRack_Fixed_Medium:["special_penetrator_munitions"],Hpt_BasicMissileRack_Fixed_Large:["special_penetrator_munitions"],Hpt_DumbfireMissileRack_Fixed_Small:["special_drag_munitions"],Hpt_DumbfireMissileRack_Fixed_Medium:["special_drag_munitions"],Hpt_DrunkMissileRack_Fixed_Medium:["special_fsd_interrupt","special_penetrator_munitions"],Hpt_DumbfireMissileRack_Fixed_Medium_Lasso:["special_drag_munitions"],Hpt_DumbfireMissileRack_Fixed_Large:["special_drag_munitions"],Hpt_DumbfireMissileRack_Fixed_Small_Advanced:["special_drag_munitions"],Hpt_DumbfireMissileRack_Fixed_Medium_Advanced:["special_drag_munitions"]}};var DATA=deepFreeze(engineering_options_default);var ENGINEERING_OPTION_GROUPS=DATA.groups;var moduleGroup=new Map(Object.entries(DATA.modules).map(([symbol,group])=>[symbol.toLowerCase(),group]));var moduleExclusions=new Map(Object.entries(DATA.exclusions).map(([symbol,effects])=>[symbol.toLowerCase(),new Set(effects.map(e=>e.toLowerCase()))]));function getEngineeringGroup(symbol){return moduleGroup.get(normalizeKey(symbol,"getEngineeringGroup: symbol"))??null}function getBlueprintsForModule(symbol){requireStringIfPresent(symbol,"getBlueprintsForModule: symbol");const group=getEngineeringGroup(symbol);return group===null?[]:ENGINEERING_OPTION_GROUPS[group].blueprints}function getExperimentalsForModule(symbol){const normalized=normalizeKey(symbol,"getExperimentalsForModule: symbol");const group=moduleGroup.get(normalized);if(group===void 0)return[];const all=ENGINEERING_OPTION_GROUPS[group].experimentals;const excluded=moduleExclusions.get(normalized);return excluded===void 0?all:all.filter(e=>!excluded.has(e.toLowerCase()))}function getExperimentalsForBlueprint(blueprintSymbol){const normalized=normalizeKey(blueprintSymbol,"getExperimentalsForBlueprint: blueprintSymbol");const out=/* @__PURE__ */new Set;for(const group of Object.values(ENGINEERING_OPTION_GROUPS)){if(!group.blueprints.some(b=>b.toLowerCase()===normalized))continue;for(const effect of group.experimentals)out.add(effect)}return[...out].sort()}export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule};//# sourceMappingURL=chunk-GLWPSVFV.js.map
@@ -1 +0,0 @@
1
- import{getLocalizedName,createLocalizedNameIndex}from"./chunk-RVIYOHYF.js";var micro_resource_names_default={graphene:{en:"Graphene",de:"Graphen",es:"Grafeno",fr:"Graphène",pt:"Grafeno",ru:"Графен"},aerogel:{en:"Aerogel",es:"Aerogel",fr:"Aérogel",ru:"Аэрогель"},carbonfibreplating:{en:"Carbon Fibre Plating",de:"Carbonfaserplatten",es:"Placa de fibra de carbono",fr:"Plaques en fibres de carbone",pt:"Revestimento de fibra de carbono",ru:"Углеволоконная пластина"},chemicalcatalyst:{en:"Chemical Catalyst",de:"Chemischer Katalysator",es:"Catalizador químico",fr:"Catalyseur chimique",pt:"Catalisador químico",ru:"Химический катализатор"},chemicalsuperbase:{en:"Chemical Superbase",de:"Chemische Superbase",es:"Superbase química",fr:"Superbase chimique",pt:"Superbase química",ru:"Химическое супероснование"},circuitboard:{en:"Circuit Board",de:"Schaltplatte",es:"Placa base",fr:"Circuit imprimé",pt:"Placa de circuitos",ru:"Электроплата"},circuitswitch:{en:"Circuit Switch",de:"Elektroschalter",es:"Conmutador",fr:"Commutateur",pt:"Chave de circuito",ru:"Переключатель цепи"},electricalfuse:{en:"Electrical Fuse",de:"Elektrosicherung",es:"Fusible",fr:"Fusible électrique",pt:"Fusível elétrico",ru:"Предохранитель"},electricalwiring:{en:"Electrical Wiring",de:"Elektroverkabelung",es:"Cables eléctricos",fr:"Câblage électrique",pt:"Fio elétrico",ru:"Электропроводка"},encryptedmemorychip:{en:"Encrypted Memory Chip",de:"Verschlüsselter Speicherchip",es:"Chip de memoria cifrado",fr:"Puce mémoire cryptée",pt:"Chip de memória criptografado",ru:"Зашифрованная плата памяти"},epoxyadhesive:{en:"Epoxy Adhesive",de:"Epoxy-Klebstoff",es:"Resina epoxi",fr:"Colle époxy",pt:"Adesivo de epóxi",ru:"Эпоксидный клей"},memorychip:{en:"Memory Chip",de:"Speicherchip",es:"Chip de memoria",fr:"Puce mémoire",pt:"Chip de memória",ru:"Плата памяти"},metalcoil:{en:"Metal Coil",de:"Metallspule",es:"Bobina de metal",fr:"Bobine métallique",pt:"Mola de metal",ru:"Металлическая катушка"},microhydraulics:{en:"Micro Hydraulics",de:"Mikrohydraulikgeräte",es:"Microhidráulica",fr:"Micro hydraulique",pt:"Micro-hidráulica",ru:"Микрогидравлика"},microsupercapacitor:{en:"Micro Supercapacitor",de:"Mikro-Superkondensatoren",es:"Microsupercondensador",fr:"Microsupercondensateur",pt:"Microsupercapacitor",ru:"Микросуперконденсаторы"},microthrusters:{en:"Micro Thrusters",de:"Mikro-Schubdüsen",es:"Microimpulsores",fr:"Micropropulseurs",pt:"Micropropulsores",ru:"Маневровые микродвигатели"},microtransformer:{en:"Micro Transformer",de:"Mikro-Transformator",es:"Microtransformador",fr:"Microtransformateur",pt:"Microtransformador",ru:"Микротрансформатор"},motor:{en:"Motor",es:"Motor",fr:"Moteur",ru:"Мотор"},opticalfibre:{en:"Optical Fibre",de:"Glasfaser",es:"Fibra óptica",fr:"Fibre optique",pt:"Fibra ótica",ru:"Оптоволокно"},opticallens:{en:"Optical Lens",de:"Optische Linse",es:"Lente óptica",fr:"Lentille optique",pt:"Lente ótica",ru:"Оптические линзы"},scrambler:{en:"Scrambler",de:"Störsender",es:"Desmodulador",fr:"Brouilleur",pt:"Embaralhador",ru:"Шифратор"},titaniumplating:{en:"Titanium Plating",de:"Titanplatten",es:"Placa de titanio",fr:"Plaques en titane",pt:"Revestimento de titânio",ru:"Титановая пластина"},transmitter:{en:"Transmitter",de:"Sender",es:"Transmisor",fr:"Transmetteur",pt:"Transmissor",ru:"Передатчик"},tungstencarbide:{en:"Tungsten Carbide",de:"Wolframcarbid",es:"Carburo de tungsteno",fr:"Carbure de tungstène",pt:"Carboneto de tungstênio",ru:"Карбид вольфрама"},viscoelasticpolymer:{en:"Viscoelastic Polymer",de:"Viskoelastisches Polymer",es:"Polímetro viscoelástico",fr:"Polymère viscoélastique",pt:"Polímero viscoelástico",ru:"Вязкоэластичный полимер"},rdx:{en:"RDX",de:"Hexogen",es:"RDX",fr:"RDX",ru:"Гексоген"},electromagnet:{en:"Electromagnet",de:"Elektromagnet",es:"Electroimán",fr:"Électroaimant",pt:"Eletroímã",ru:"Электромагнит"},oxygenicbacteria:{en:"Oxygenic Bacteria",de:"Sauerstoffbakterien",es:"Bacterias oxigénicas",fr:"Bactérie oxygénique",pt:"Bactérias oxigênicas",ru:"Кислородные бактерии"},epinephrine:{en:"Epinephrine",de:"Epinephrin",es:"Epinefrina",fr:"Épinéphrine",pt:"Epinefrina",ru:"Эпинефрин"},phneutraliser:{en:"pH Neutraliser",de:"pH-Neutralisator",es:"Neutralizador de pH",fr:"Neutralisateur de pH",pt:"Neutralizador de pH",ru:"Нейтрализатор pH"},microelectrode:{en:"Microelectrode",de:"Mikroelektrode",es:"Microelectrodo",fr:"Microélectrode",pt:"Microeletrodo",ru:"Микроэлектрод"},ionbattery:{en:"Ion Battery",de:"Ionen-Batterie",es:"Batería de iones",fr:"Batterie ionique",pt:"Bateria iônica",ru:"Ионная батарея"},weaponcomponent:{en:"Weapon Component",de:"Waffenkomponente",es:"Componente de arma",fr:"Composant d’arme",pt:"Componente de armas",ru:"Компонент оружия"},healthpack:{en:"Medkit",de:"Medikit",es:"Botiquín",fr:"Médikit",pt:"Kit médico",ru:"Аптечка"},energycell:{en:"Energy Cell",de:"Energiezelle",es:"Célula de energía",fr:"Cellule d’énergie",pt:"Célula de energia",ru:"Энергоячейка"},amm_grenade_emp:{en:"Shield Disruptor",de:"Schildunterbrecher",es:"Supresor de escudo",fr:"Neutralisateur de bouclier",pt:"Disruptor de escudo",ru:"Разрушитель щитов"},amm_grenade_frag:{en:"Frag Grenade",de:"Splittergranate",es:"Granada de fragmentación",fr:"Grenade à fragmentation",pt:"Granada de fragmentação",ru:"Осколочная граната"},amm_grenade_shield:{en:"Shield Projector",de:"Schildgenerator",es:"Proyector de escudo",fr:"Générateur de bouclier",pt:"Projetor de escudo",ru:"Проектор щита"},bypass:{en:"E-Breach",es:"Fisura",fr:"Omnipasse",pt:"Brecha",ru:"Взломщик"},internalcorrespondence:{en:"Internal Correspondence",de:"Interne Korrespondenz",es:"Correspondencia interna",fr:"Mémo interne",pt:"Correspondência interna",ru:"Внутренняя корреспонденция"},spyware:{en:"Spyware",de:"Spyware",es:"Software espía",fr:"Programme-espion",ru:"Шпионские программы"},biometricdata:{en:"Biometric Data",de:"Biometrische Daten",es:"Datos biométricos",fr:"Données biométriques",pt:"Dados Biométricos",ru:"Биометрические данные"},nocdata:{en:"NOC Data",de:"Geheimoperation-Daten",es:"Datos del AEE",fr:"Données d’agent clandestin",pt:"Dados Operacionais sigilosos",ru:"Данные по тайным агентам"},axcombatlogs:{en:"AX Combat Logs",de:"AX-Kampf-Logs",es:"Registros de combate AX",fr:"Journaux de combat AX",pt:"Registros de combate AX",ru:"Боевой журнал АИ"},accidentlogs:{en:"Accident Logs",de:"Unfall-Logs",es:"Registros de accidentes",fr:"Journaux d’accidents",pt:"Registros de acidente",ru:"Журнал происшествий"},airqualityreports:{en:"Air Quality Reports",de:"Berichte zur Luftqualität",es:"Registros de calidad del aire",fr:"Rapports de qualité de l’air",pt:"Relatórios de qualidade do ar",ru:"Отчеты о качестве воздуха"},atmosphericdata:{en:"Atmospheric Data",de:"Atmosphärische Daten",es:"Datos atmosféricos",fr:"Données atmosphériques",pt:"Dados atmosféricos",ru:"Атмосферные данные"},audiologs:{en:"Audio Logs",de:"Audio-Logs",es:"Registros de audio",fr:"Journaux audio",pt:"Registros de áudio",ru:"Аудиозаписи"},ballisticsdata:{en:"Ballistics Data",de:"Ballistische Daten",es:"Datos balísticos",fr:"Données balistiques",pt:"Dados balísticos",ru:"Баллистические данные"},biologicalweapondata:{en:"Biological Weapon Data",de:"Biowaffen-Daten",es:"Datos de armas biológicas",fr:"Données d’arme biologique",pt:"Dados de arma biológica",ru:"Данные о биологическом оружии"},blacklistdata:{en:"Blacklist Data",de:"Daten der Schwarzen Liste",es:"Datos de lista negra",fr:"Liste noire",pt:"Dados de lista negra",ru:"Черный список"},bloodtestresults:{en:"Blood Test Results",de:"Bluttest-Ergebnisse",es:"Resultados de análisis de sangre",fr:"Résultats de tests sanguins",pt:"Resultados de exames de sangue",ru:"Результаты анализа крови"},campaignplans:{en:"Campaign Plans",de:"Kampagnenpläne",es:"Planes de campaña",fr:"Plans de campagne",pt:"Planos de campanha",ru:"План кампании"},catmedia:{en:"Cat Media",de:"Katzen-Medien",es:"Catálogo de medios",fr:"Médiathèque féline",pt:"Mídias de gatinhos",ru:"Медиаконтент с котиками"},censusdata:{en:"Census Data",de:"Zensusdaten",es:"Datos censales",fr:"Données de recensement",pt:"Dados de recenseamento",ru:"Данные переписи населения"},chemicalexperimentdata:{en:"Chemical Experiment Data",de:"Chemieexperiment-Daten",es:"Datos de experimentos químicos",fr:"Données d’expériences chimiques",pt:"Dados de experimentos químicos",ru:"Данные о химических экспериментах"},chemicalformulae:{en:"Chemical Formulae",de:"Chemische Formeln",es:"Fórmulas químicas",fr:"Formules chimiques",pt:"Fórmulas químicas",ru:"Химические формулы"},chemicalinventory:{en:"Chemical Inventory",de:"Chemische Bestandsliste",es:"Inventario químico",fr:"Inventaire chimique",pt:"Estoque químico",ru:"Опись химикатов"},chemicalpatents:{en:"Chemical Patents",de:"Chemische Patente",es:"Patentes químicas",fr:"Brevets chimiques",pt:"Patentes químicas",ru:"Химические патенты"},chemicalweapondata:{en:"Chemical Weapon Data",de:"Chemiewaffen-Daten",es:"Datos de armas químicas",fr:"Données d’armes chimiques",pt:"Dados de armas químicas",ru:"Данные о химическом оружии"},classicentertainment:{en:"Classic Entertainment",de:"Klassische Unterhaltung",es:"Entretenimiento clásico",fr:"Médiathèque classique",pt:"Entretenimento clássico",ru:"Классические развлечения"},cocktailrecipes:{en:"Cocktail Recipes",de:"Cocktail-Rezepte",es:"Recetas de cócteles",fr:"Recettes de cocktails",pt:"Receitas de coquetéis",ru:"Рецепты коктейлей"},combattrainingmaterial:{en:"Combat Training Material",de:"Kampftraining-Materialien",es:"Material de entrenamiento de combate",fr:"Méthodes d’entraînement au combat",pt:"Material de treinamento para combate",ru:"Учебные материалы по боевой подготовке"},combatantperformance:{en:"Combatant Performance",de:"Kampfleistung",es:"Rendimiento de combatiente",fr:"Performances de combat",pt:"Desempenho em combate",ru:"Боевые характеристики"},conflicthistory:{en:"Conflict History",de:"Konflikthistorie",es:"Historial de conflictos",fr:"Historique de conflit",pt:"Histórico de conflito",ru:"История конфликта"},cropyieldanalysis:{en:"Crop Yield Analysis",de:"Ernteertrag-Analyse",es:"Análisis de producción agrícola",fr:"Analyse de rendement agricole",pt:"Análise de rendimento agrícola",ru:"Анализ урожая"},culinaryrecipes:{en:"Culinary Recipes",de:"Kulinarische Rezepte",es:"Recetas culinarias",fr:"Recettes culinaires",pt:"Receitas culinárias",ru:"Кулинарные рецепты"},digitaldesigns:{en:"Digital Designs",de:"Digitale Konzepte",es:"Diseños digitales",fr:"Plans numériques",pt:"Projetos digitais",ru:"Дизайнерский проект"},dutyrota:{en:"Duty Rota",de:"Dienstpläne",es:"Turnos de guardia",fr:"Planning professionnel",pt:"Escala de trabalho",ru:"График дежурств"},employeedirectory:{en:"Employee Directory",de:"Mitarbeiterverzeichnis",es:"Directorio de empleados",fr:"Registre des employés",pt:"Lista de funcionários",ru:"Досье работников"},employeeexpenses:{en:"Employee Expenses",de:"Aufwendungen für Mitarbeiter",es:"Gastos de personal",fr:"Notes de frais",pt:"Despesas com funcionários",ru:"Расходы работников"},employeegeneticdata:{en:"Employee Genetic Data",de:"Gen-Daten von Mitarbeitern",es:"Datos genéticos de empleados",fr:"Données génétiques d’employés",pt:"Dados genéticos dos funcionários",ru:"Генетические данные работников"},employmenthistory:{en:"Employment History",de:"Beschäftigungshistorie",es:"Historial de empleo",fr:"Expérience professionnelle",pt:"Histórico profissional",ru:"История трудоустройства"},enhancedinterrogationrecordings:{en:"Enhanced Interrogation Recordings",de:"Optimierte Vernehmungsaufzeichnungen",es:"Registros de interrogatorios mejorados",fr:"Enregistrements d’interrogatoires poussés",pt:"Gravações de interrogatório avançado",ru:"Расширенный протокол допроса"},espionagematerial:{en:"Espionage Material",de:"Spionagematerial",es:"Material de espionaje",fr:"Documents confidentiels",pt:"Material de espionagem",ru:"Разведданные"},evacuationprotocols:{en:"Evacuation Protocols",de:"Evakuierungsprotokolle",es:"Protocolos de evacuación",fr:"Protocoles d’évacuation",pt:"Protocolos de evacuação",ru:"Алгоритм эвакуации"},explorationjournals:{en:"Exploration Journals",de:"Erkundungstagebücher",es:"Diarios de exploración",fr:"Journaux d’exploration",pt:"Diários de exploração",ru:"Исследовательские дневники"},extractionyielddata:{en:"Extraction Yield Data",de:"Daten zur Förderungsausbeute",es:"Datos de producción minera",fr:"Données de rendement minier",pt:"Dados de produção extrativa",ru:"Данные об объеме добычи"},factionassociates:{en:"Faction Associates",de:"Fraktionspartner",es:"Socios de facción",fr:"Affiliations d’une faction",pt:"Associados da facção",ru:"Партнеры фракции"},financialprojections:{en:"Financial Projections",de:"Finanzprognosen",es:"Previsiones financieras",fr:"Projections financières",pt:"Projeções financeiras",ru:"Финансовые прогнозы"},factionnews:{en:"Faction News",de:"Fraktionsnachrichten",es:"Noticias de facción",fr:"Actualité d’une faction",pt:"Notícias sobre a facção",ru:"Новости фракции"},fleetregistry:{en:"Fleet Registry",de:"Flottenliste",es:"Registro de flota",fr:"Registre de flotte",pt:"Registro de frota",ru:"Реестр флота"},genesequencingdata:{en:"Gene Sequencing Data",de:"Gen-Sequenzierungsdaten",es:"Datos de secuenciación genética",fr:"Données de séquençage génétique",pt:"Dados de sequenciamento genético",ru:"Данные о секвенировании генов"},geneticresearch:{en:"Genetic Research",de:"Genforschung",es:"Estudio genético",fr:"Recherches génétiques",pt:"Pesquisas genéticas",ru:"Материалы генетического исследования"},hydroponicdata:{en:"Hydroponic Data",de:"Hydrokultur-Daten",es:"Datos hidropónicos",fr:"Données hydroponiques",pt:"Dados de hidroponia",ru:"Данные о гидропонике"},incidentlogs:{en:"Incident Logs",de:"Zwischenfall-Logs",es:"Registros de incidentes",fr:"Journaux d’incidents",pt:"Registros de incidentes",ru:"Журнал событий"},influenceprojections:{en:"Influence Projections",de:"Einfluss-Projektionen",es:"Previsiones de influencia",fr:"Perspectives",pt:"Projeções de influência",ru:"Прогноз влияния"},interrogationrecordings:{en:"Interrogation Recordings",de:"Vernehmungsaufzeichnungen",es:"Registros de interrogatorios",fr:"Enregistrements d’interrogatoires",pt:"Gravações de interrogatórios",ru:"Протоколы допроса"},interviewrecordings:{en:"Interview Recordings",de:"Aufzeichnungen von Vorstellungsgesprächen",es:"Registros de entrevista",fr:"Enregistrements d’entretiens",pt:"Gravações de entrevistas",ru:"Результаты собеседования"},jobapplications:{en:"Job Applications",de:"Bewerbungen",es:"Solicitudes de empleo",fr:"Candidatures professionnelles",pt:"Candidaturas para emprego",ru:"Заявления о приеме на работу"},kompromat:{en:"Kompromat",de:"Kompromittierendes Material",es:"Material comprometedor",fr:"Kompromat",ru:"Компромат"},literaryfiction:{en:"Literary Fiction",de:"Belletristik",es:"Ficción literaria",fr:"Romans",pt:"Ficção literária",ru:"Художественная литература"},maintenancelogs:{en:"Maintenance Logs",de:"Wartungs-Logs",es:"Registros de mantenimiento",fr:"Journaux de maintenance",pt:"Registros de manutenção",ru:"Журнал обслуживания"},manufacturinginstructions:{en:"Manufacturing Instructions",de:"Herstellungsanweisungen",es:"Instrucciones de fabricación",fr:"Guides industriels",pt:"Instruções de fabricação",ru:"Производственные инструкции"},medicalrecords:{en:"Medical Records",de:"Medizinische Daten",es:"Historiales médicos",fr:"Dossiers médicaux",pt:"Registros médicos",ru:"Медицинские карты"},medicaltrialrecords:{en:"Clinical Trial Records",de:"Klinische Prüfberichte",es:"Registros de ensayos clínicos",fr:"Essais cliniques",pt:"Registros de teste clínico",ru:"Результаты клинических испытаний"},meetingminutes:{en:"Meeting Minutes",de:"Besprechungsprotokolle",es:"Actas de reuniones",fr:"Compte-rendu de réunion",pt:"Ata de reunião",ru:"Протоколы заседаний"},mineralsurvey:{en:"Mineral Survey",de:"Mineralienübersicht",es:"Estudio mineral",fr:"Rapport de prospection",pt:"Pesquisa mineral",ru:"Результаты геологической разведки"},mininganalytics:{en:"Mining Analytics",de:"Abbau-Analytik",es:"Análisis de minería",fr:"Analyses minières",pt:"Análise de mineração",ru:"Анализ горнодобывающей промышленности"},multimediaentertainment:{en:"Multimedia Entertainment",de:"Multimedia-Unterhaltung",es:"Entretenimiento multimedia",fr:"Médiathèque",pt:"Entretenimento multimídia",ru:"Мультимедийные развлечения"},networkaccesshistory:{en:"Network Access History",de:"Netzwerkzugriffshistorie",es:"Historial de acceso a la red",fr:"Historique réseau",pt:"Histórico de acesso à rede",ru:"История сетевой активности"},networksecurityprotocols:{en:"Network Security Protocols",de:"Netzwerksicherheitsprotokolle",es:"Protocolos de seguridad de red",fr:"Protocoles de sécurité réseau",pt:"Protocolos de segurança de rede",ru:"Протоколы безопасности сети"},nextofkinrecords:{en:"Next of Kin Records",de:"Angehörigen-Aufzeichnungen",es:"Registros familiares",fr:"Liste de proches",pt:"Registros familiares",ru:"Сведения о ближайших родственниках"},operationalmanual:{en:"Operational Manual",de:"Bedienungsanleitung",es:"Manual de operaciones",fr:"Mode d’emploi",pt:"Manual operacional",ru:"Руководство по эксплуатации"},opinionpolls:{en:"Opinion Polls",de:"Umfrageergebnisse",es:"Sondeos de opinión",fr:"Sondages",pt:"Pesquisas de opinião",ru:"Опросы общественного мнения"},patienthistory:{en:"Patient History",de:"Patientenhistorie",es:"Historial clínico",fr:"Antécédents médicaux",pt:"Histórico de paciente",ru:"История болезни"},patrolroutes:{en:"Patrol Routes",de:"Patrouillenrouten",es:"Rutas de patrulla",fr:"Itinéraires de patrouille",pt:"Rotas de patrulhamento",ru:"Маршруты патрулирования"},personallogs:{en:"Personal Logs",de:"Persönliche Logs",es:"Registros personales",fr:"Journaux personnels",pt:"Registros pessoais",ru:"Личные дневники"},photoalbums:{en:"Photo Albums",de:"Fotoalben",es:"Álbumes de fotos",fr:"Albums photo",pt:"Álbuns de fotografia",ru:"Фотоальбомы"},plantgrowthcharts:{en:"Plant Growth Charts",de:"Diagramme zum Pflanzenwachstum",es:"Gráficos de crecimiento de plantas",fr:"Courbes de croissance végétale",pt:"Gráficos de crescimento de plantas",ru:"График роста растений"},politicalaffiliations:{en:"Political Affiliations",de:"Politische Beziehungen",es:"Afiliaciones políticas",fr:"Affiliations politiques",pt:"Afiliações políticas",ru:"Политическая ориентация"},prisonerlogs:{en:"Prisoner Logs",de:"Gefangenen-Logs",es:"Registros de prisioneros",fr:"Dossiers pénitentiaires",pt:"Registros de prisioneiros",ru:"Списки заключенных"},productionreports:{en:"Production Reports",de:"Produktionsberichte",es:"Informes de producción",fr:"Rapports de production",pt:"Relatórios de produção",ru:"Отчеты о производстве"},productionschedule:{en:"Production Schedule",de:"Produktionszeitplan",es:"Programa de producción",fr:"Planning de production",pt:"Cronograma de produção",ru:"Производственный график"},propaganda:{en:"Propaganda",de:"Propaganda",es:"Propaganda",fr:"Propagande",ru:"Пропаганда"},purchaserecords:{en:"Purchase Records",de:"Kaufaufzeichnungen",es:"Registros de compra",fr:"Registre d’acquisitions",pt:"Registros de compras",ru:"Списки покупок"},purchaserequests:{en:"Purchase Requests",de:"Kaufanfragen",es:"Solicitudes de compra",fr:"Demandes d’achats",pt:"Pedidos de compra",ru:"Запросы на покупку"},radioactivitydata:{en:"Radioactivity Data",de:"Daten zur Radioaktivität",es:"Datos de radioactividad",fr:"Relevés de radioactivité",pt:"Dados sobre radioatividade",ru:"Информация о радиоактивности"},reactoroutputreview:{en:"Reactor Output Review",de:"Evaluierung der Reaktorleistung",es:"Informe de capacidad del reactor",fr:"Évaluation énergétique",pt:"Análise de produção do reator",ru:"Оценка выходной мощности реактора"},recyclinglogs:{en:"Recycling Logs",de:"Recycling-Logs",es:"Registros de reciclaje",fr:"Journaux de recyclage",pt:"Registros de reciclagem",ru:"Журнал утилизации отходов"},residentialdirectory:{en:"Residential Directory",de:"Einwohnerverzeichnis",es:"Directorio residencial",fr:"Annuaire résidentiel",pt:"Listagem residencial",ru:"Адресная книга"},riskassessments:{en:"Risk Assessments",de:"Gefährdungsbeurteilungen",es:"Valoración de riesgos",fr:"Évaluation des risques",pt:"Avaliações de risco",ru:"Оценка рисков"},salesrecords:{en:"Sales Records",de:"Verkaufszahlen",es:"Registros de ventas",fr:"Historique des ventes",pt:"Registros de vendas",ru:"Отчеты о продажах"},securityexpenses:{en:"Security Expenses",de:"Aufwendungen für Sicherheit",es:"Gastos de seguridad",fr:"Dépenses de sécurité",pt:"Despesas com segurança",ru:"Расходы на охрану"},seedgeneaology:{en:"Seed Geneaology",de:"Saatgut-Geneaologie",es:"Genealogía de simientes",fr:"Patrimoine génétique de semences",pt:"Genealogia de sementes",ru:"Генеалогия семенного материала"},settlementassaultplans:{en:"Settlement Assault Plans",de:"Siedlungsangriffspläne",es:"Planes de ataque del asentamiento",fr:"Plans d’assaut d’une installation",pt:"Planos de ataque a assentamento",ru:"Планы атак на поселение"},settlementdefenceplans:{en:"Settlement Defence Plans",de:"Siedlungsverteidigungspläne",es:"Planes de defensa del asentamiento",fr:"Plans de défense d’une installation",pt:"Planos de defesa do assentamento",ru:"Планы обороны поселения"},shareholderinformation:{en:"Shareholder Information",de:"Aktionärsinformationen",es:"Información de accionistas",fr:"Actionnariat",pt:"Informações sobre acionistas",ru:"Информация об акционерах"},slushfundlogs:{en:"Slush Fund Logs",de:"Schmiergeld-Logs",es:"Registros de fondos de reptiles",fr:"Caisse noire",pt:"Registros de caixa dois",ru:"Журналы подставного фонда"},smearcampaignplans:{en:"Smear Campaign Plans",de:"Pläne für Verleumdungskampagne",es:"Planes de campañas de desprestigio",fr:"Campagne de calomnie",pt:"Planos de campanha de difamação",ru:"Планы кампании по дискредитации"},spectralanalysisdata:{en:"Spectral Analysis Data",de:"Spektralanalyse-Daten",es:"Datos de análisis de espectro",fr:"Données d’analyse spectrale",pt:"Dados de análise de espectro",ru:"Результаты спектрального анализа"},stellaractivitylogs:{en:"Stellar Activity Logs",de:"Sternenaktivitäts-Logs",es:"Registros de actividad estelar",fr:"Journaux d’activité stellaire",pt:"Registros de atividade estelar",ru:"Журналы звездной активности"},surveilleancelogs:{en:"Surveillance Logs",de:"Überwachungs-Logs",es:"Registros de vigilancia",fr:"Journaux de surveillance",pt:"Registros de vigilância",ru:"Журналы наблюдения"},tacticalplans:{en:"Tactical Plans",de:"Taktikpläne",es:"Planes tácticos",fr:"Plans stratégiques",pt:"Planos táticos",ru:"Тактические планы"},taxrecords:{en:"Tax Records",de:"Steuerunterlagen",es:"Registros fiscales",fr:"Dossiers fiscaux",pt:"Registros tributários",ru:"Налоговые отчеты"},topographicalsurveys:{en:"Topographical Surveys",de:"Topographische Erhebung",es:"Estudios topográficos",fr:"Levés topographiques",pt:"Estudos topográficos",ru:"Топографические исследования"},travelpermits:{en:"Travel Permits",de:"Reiseerlaubnisse",es:"Permisos de viaje",fr:"Autorisations de déplacement",pt:"Permissões de viagem",ru:"Разрешения на поездки"},troopdeploymentrecords:{en:"Troop Deployment Records",de:"Truppeneinsatzprotokolle",es:"Registros de despliegue de tropas",fr:"Comptes-rendus opérationnels",pt:"Registros de destacamento de tropas",ru:"Отчет по развертыванию войск"},unionmembership:{en:"Union Membership",de:"Gewerkschaftsmitgliedschaft",es:"Afiliación sindical",fr:"Liste d’adhérents",pt:"Pessoal sindicalizado",ru:"Список членов союза"},vaccinationrecords:{en:"Vaccination Records",de:"Aufzeichnungen zu Impfungen",es:"Registros de vacunación",fr:"Dossiers de vaccination",pt:"Registros de vacinação",ru:"Журналы вакцинации"},vaccineresearch:{en:"Vaccine Research",de:"Impfstoffforschung",es:"Investigación sobre vacunas",fr:"Recherches vaccinales",pt:"Pesquisas de vacinas",ru:"Исследование вакцины"},vipsecuritydetail:{en:"VIP Security Detail",de:"VIP-Sicherheitsdienst",es:"Información de seguridad VIP",fr:"Protection rapprochée de VIP",pt:"Detalhes de segurança VIP",ru:"Охрана высокопоставленных лиц"},virologydata:{en:"Virology Data",de:"Virologische Daten",es:"Datos virológicos",fr:"Données de virologie",pt:"Dados de virologia",ru:"Информация о вирусах"},virus:{en:"Virus",de:"Virus",es:"Virus",pt:"Vírus",ru:"Вирус"},visitorregister:{en:"Visitor Register",de:"Besucherliste",es:"Registro de visitantes",fr:"Registre de visites",pt:"Registro de visitantes",ru:"Реестр посетителей"},weaponinventory:{en:"Weapon Inventory",de:"Waffeninventarliste",es:"Inventario de armas",fr:"Inventaire d’armement",pt:"Estoque de armas",ru:"Опись оружия и боеприпасов"},weapontestdata:{en:"Weapon Test Data",de:"Waffentestdaten",es:"Datos de pruebas armamentísticas",fr:"Données de test d’armes",pt:"Dados de testes de arma",ru:"Сведения об испытаниях вооружения"},xenodefenceprotocols:{en:"Xeno-Defence Protocols",de:"Xeno-Abwehr-Protokolle",es:"Protocolos de xenodefensa",fr:"Protocoles anti-xénomorphes",pt:"Protocolos de defesa antixeno",ru:"Алгоритм противодействия инопланетной угрозе"},payrollinformation:{en:"Payroll Information",de:"Gehaltsinformationen",es:"Información salarial",fr:"Informations salariales",pt:"Informações de folha de pagamento",ru:"Платежная ведомость"},geologicaldata:{en:"Geological Data",de:"Geologische Daten",es:"Datos geológicos",fr:"Données géologiques",pt:"Dados geológicos",ru:"Геологические данные"},criminalrecords:{en:"Criminal Records",de:"Strafakten",es:"Registros criminales",fr:"Casiers judiciaires",pt:"Registros criminais",ru:"Досье"},factiondonatorlist:{en:"Faction Donator List",de:"Spenderliste einer Fraktion",es:"Lista de donadores de facción",fr:"Liste des donateurs d’une faction",pt:"Lista de doadores da facção",ru:"Список спонсоров фракции"},pharmaceuticalpatents:{en:"Pharmaceutical Patents",de:"Pharmazeutische Patente",es:"Patentes farmacéuticas",fr:"Brevets pharmaceutiques",pt:"Patentes farmacêuticas",ru:"Фармацевтические патенты"},chemicalsample:{en:"Chemical Sample",de:"Chemieprobe",es:"Muestra química",fr:"Échantillon chimique",pt:"Amostra Química",ru:"Химический образец"},biochemicalagent:{en:"Biochemical Agent",de:"Biochemischer Wirkstoff",es:"Agente bioquímico",fr:"Agent biochimique",pt:"Agente Bioquímico",ru:"Биохимический агент"},californium:{en:"Californium",es:"Californio",fr:"Californium",pt:"Califórnio",ru:"Калифорний"},castfossil:{en:"Cast Fossil",de:"Fossilfund",es:"Molde de fósil",fr:"Moulage de fossile",pt:"Molde de Fóssil",ru:"Окаменелый отпечаток"},geneticsample:{en:"Biological Sample",de:"Biologische Probe",es:"Muestra biológica",fr:"Échantillons biologiques",pt:"Amostra biológica",ru:"Биологический образец"},gmeds:{en:"G-Meds",de:"G-Medizin",es:"Medicinas G",fr:"Traitement gravitationnel",pt:"G-Médios",ru:"G-препараты"},healthmonitor:{en:"Health Monitor",de:"Gesundheitsmonitor",es:"Monitor de salud",fr:"Moniteur médical",pt:"Monitor de Saúde",ru:"Монитор здоровья"},inertiacanister:{en:"Inertia Canister",de:"Trägheits-Container",es:"Contenedor de inercia",fr:"Conteneur inertiel",pt:"Contêiner Inerte",ru:"Инертный контейнер"},insight:{en:"Insight",es:"Insight",fr:"Insight",ru:"Insight"},insightdatabank:{en:"Insight Data Bank",de:"Insight-Datenbank",es:"Banco de datos de Insight",fr:"Banque de données d’Insight",pt:"Banco de Dados Insight",ru:"Банк данных Insight"},ionisedgas:{en:"Ionised Gas",de:"Ionisiertes Gas",es:"Gas ionizado",fr:"Gaz ionisé",pt:"Gás Ionizado",ru:"Ионизированный газ"},mutageniccatalyst:{en:"Mutagenic Catalyst",de:"Mutagen-Katalysator",es:"Catalizador mutagénico",fr:"Catalyseur mutagène",pt:"Catalisador Mutagênico",ru:"Мутагенный катализатор"},personalcomputer:{en:"Personal Computer",es:"Ordenador personal",fr:"Ordinateur personnel",pt:"Computador Pessoal",ru:"Персональный компьютер"},petrifiedfossil:{en:"Petrified Fossil",de:"Versteinertes Fossil",es:"Fósil petrificado",fr:"Fossile pétrifié",pt:"Fóssil Petrificado",ru:"Окаменелость"},syntheticgenome:{en:"Synthetic Genome",de:"Synthetisches Genom",es:"Genoma sintético",fr:"Génome de synthèse",pt:"Genoma Sintético",ru:"Синтетический геном"},trueformfossil:{en:"True Form Fossil",de:"Makelloses Fossil",es:"Fósil puro",fr:"Fossile intact",pt:"Fóssil Exemplar",ru:"Окаменелость истинной формы"},geneticrepairmeds:{en:"Genetic Repair Meds",de:"Gen-Reparatursets",es:"Medicinas de reparación genética",fr:"Traitements génétiques",pt:"Remédios para Reparo Genético",ru:"Генно-репаративные препараты"},buildingschematic:{en:"Building Schematic",de:"Gebäudeplan",es:"Esquema de edificio",fr:"Plan de bâtiment",pt:"Esquema de Construção",ru:"Чертеж здания"},compactlibrary:{en:"Compact Library",de:"Kompakt-Bibliothek",es:"Biblioteca compacta",fr:"Bibliothèque de poche",pt:"Biblioteca Compacta",ru:"Компактная библиотека"},deepmantlesample:{en:"Deep Mantle Sample",de:"Innerer-Mantel-Probe",es:"Muestra del manto profundo",fr:"Échantillon de manteau inférieur",pt:"Amostra de Manto",ru:"Образец из глубокой мантии"},hush:{en:"Hush",de:"Schnurr",es:"Hush",fr:"Chut",pt:"Silêncio",ru:"Тишина"},infinity:{en:"Infinity",de:"Unendlichkeit",es:"Infinity",fr:"Infini",pt:"Infinidade",ru:"Infinity"},insightentertainmentsuite:{en:"Insight Entertainment Suite",de:"Insight-Entertainment-Bibliothek",es:"Paquete de entretenimiento de Insight",fr:"Divertissements Insight",pt:"Suíte de Entretenimento Insight",ru:"Развлекательное устройство Insight"},lazarus:{en:"Lazarus",es:"Lazarus",fr:"Lazare",pt:"Lázaro",ru:"Лазарь"},microbialinhibitor:{en:"Microbial Inhibitor",de:"Mikrobieller Hemmstoff",es:"Inhibidor microbiano",fr:"Inhibiteur microbien",pt:"Inibidor Microbiótico",ru:"Микробный ингибитор"},nutritionalconcentrate:{en:"Nutritional Concentrate",de:"Nahrungskonzentrat",es:"Concentrado nutritivo",fr:"Concentré nutritif",pt:"Concentrado Nutricional",ru:"Питательный концентрат"},personaldocuments:{en:"Personal Documents",de:"Persönliche Dokumente",es:"Documentos personales",fr:"Documents personnels",pt:"Documentos Pessoais",ru:"Личные документы"},push:{en:"Push",es:"Push",fr:"Boost",ru:"Рывок"},shipschematic:{en:"Ship Schematic",de:"Schiffsplan",es:"Esquema de nave",fr:"Plan de vaisseau",pt:"Esquema de Nave",ru:"План корабля"},suitschematic:{en:"Suit Schematic",de:"Anzugplan",es:"Esquema de traje",fr:"Plan de combinaison",pt:"Esquema de Traje",ru:"Эскиз комбинезона"},surveillanceequipment:{en:"Surveillance Equipment",de:"Überwachungsausrüstung",es:"Equipo de supervivencia",fr:"Équipement de surveillance",pt:"Equipamento de Vigilância",ru:"Оборудование для наблюдения"},syntheticpathogen:{en:"Synthetic Pathogen",de:"Synthetischer Erreger",es:"Patógeno sintético",fr:"Pathogène de synthèse",pt:"Patógeno Sintético",ru:"Синтетический патоген"},universaltranslator:{en:"Universal Translator",de:"Universal-Übersetzer",es:"Traductor universal",fr:"Traducteur universel",pt:"Tradutor Universal",ru:"Универсальный переводчик"},vehicleschematic:{en:"Vehicle Schematic",de:"Fahrzeugplan",es:"Esquema de vehículo",fr:"Plan de véhicule",pt:"Esquema de Veículo",ru:"Чертеж транспорта"},weaponschematic:{en:"Weapon Schematic",de:"Waffenplan",es:"Esquema de arma",fr:"Plan d’arme",pt:"Esquema de Arma",ru:"Чертеж оружия"},pyrolyticcatalyst:{en:"Pyrolytic Catalyst",de:"Pyrolytischer Katalysator",es:"Catalizador pirolítico",fr:"Catalyseur pyrolytique",pt:"Catalisador Pirolítico",ru:"Пиролитический катализатор"},inorganiccontaminant:{en:"Inorganic Contaminant",de:"Anorganischer Schadstoff",es:"P. contaminante inorgánico",fr:"Contaminant inorganique",pt:"Contaminante inorgânico",ru:"Неорганический контаминант"},agriculturalprocesssample:{en:"Agricultural Process Sample",de:"Agrikulturverfahren-Probe",es:"Muestra de proceso agrícola",fr:"Échantillon de production agricole",pt:"Amostra de Processo Agrícola",ru:"Образец сельхозпроизводства"},chemicalprocesssample:{en:"Chemical Process Sample",de:"Chemieverfahren-Probe",es:"Muestra de proceso químico",fr:"Échantillon de production chimique",pt:"Amostra de Processo Químico",ru:"Образец химпроизводства"},refinementprocesssample:{en:"Refinement Process Sample",de:"Raffinerieverfahren-Probe",es:"Muestra de proceso refinado",fr:"Échantillon de production de raffinage",pt:"Amostra de Processo de Refino",ru:"Образец с очистного производства"},compressionliquefiedgas:{en:"Compression-Liquefied Gas",de:"Komprimiertes Flüssiggas",es:"Gas licuado comprimido",fr:"Gaz liquéfié",pt:"Gás Liquefeito Comprimido",ru:"Сжиженный газ"},degradedpowerregulator:{en:"Degraded Power Regulator",de:"Ausrangierter Energieregulator",es:"Regulador de potencia degradado",fr:"Régulateur de puissance endommagé",pt:"Regulador de Energia Degradado",ru:"Нерабочий регулятор мощности"},largecapacitypowerregulator:{en:"Power Regulator",de:"Energieregulator",es:"Regulador de potencia",fr:"Régulateur de puissance",pt:"Regulador de energia",ru:"Регулятор мощности"},operationscounterattackdata:{en:"Installation Intelligence Report",de:"Installation-Informationsbericht",es:"Informe de inteligencia sobre instalaciones",fr:"Rapport d’espionnage sur une installation",ru:"Разведывательный отчет об установке"},operationsstrikedata:{en:"Researcher Location Data",de:"Forscher-Standortdaten",es:"Coordenadas de investigadores",fr:"Données d’emplacement des chercheurs",ru:"Данные о местонахождении исследовательского персонала"},powerclassifieddata:{en:"Power Classified Data",de:"Geheime Daten der Macht",es:"Información clasificada de la potencia",fr:"Données classifiées de Puissance",ru:"Секретные данные державы"},poweremployeedata:{en:"Power Association Data",de:"Zugehörigkeitsdaten der Macht",es:"Información de asociación de potencia",fr:"Données d’association de Puissance",ru:"Данные о связях державы"},powerfinancialrecords:{en:"Power Industrial Data",de:"Industriedaten der Macht",es:"Datos industriales de la potencia",fr:"Données industrielles de Puissance",ru:"Данные о промышленности державы"},powermegashipdata:{en:"Power Megaship Data",de:"Macht-Megaschiff-Daten",es:"Datos de meganave de potencia",fr:"Données de méga-vaisseau de puissance",ru:"Данные о гигантском корабле державы"},powerpreparationspyware:{en:"Power Injection Malware",de:"Macht-Einspeisungs-Malware",es:"Malware de inyección de potencia",fr:"Logiciel malveillant d’injection de Puissance",ru:"ПО-инъектор"},powerpropagandadata:{en:"Power Political Data",de:"Politische Daten der Macht",es:"Información política de la potencia",fr:"Données politiques de Puissance",ru:"Данные о политической обстановке"},powerresearchdata:{en:"Power Research Data",de:"Forschungsdaten der Macht",es:"Datos de investigación de la potencia",fr:"Données de recherche de Puissance",ru:"Данные об исследованиях державы"},powerspyware:{en:"Power Tracker Malware",de:"Macht-Tracker-Malware",es:"Malware de seguimiento de potencia",fr:"Logiciel malveillant de traçage de Puissance",ru:"Отслеживающее вредоносное ПО"},powervirus:{en:"Power Virus",de:"Macht-Virus",es:"Virus de potencia",fr:"Virus de puissance",ru:"Вирусное ПО"},biomechanicalcomponent:{en:"Spire Refinery Compound",de:"Turm-Raffinerieverbindung",es:"Compuesto de refinería de agujas",fr:"Composé de raffinerie de flèche",ru:"Очищающий компонент шпиля"},nm_seed:{en:"Unica Seed",de:"Unica-Samen",es:"Semilla de Unica",fr:"Graine d’unica",ru:"Семя уники"},poweragriculture:{en:"Agricultural Sample",de:"Agrikulturverfahren-Probe",es:"Muestra de proceso agrícola",fr:"Échantillon de production agricole",ru:"Образец сельхозпроизводства"},powercomputer:{en:"Computer Parts",de:"Computerbauteile",es:"Piezas informáticas",fr:"Composants d’ordinateur",ru:"Компьютерные детали"},powerelectronics:{en:"Electronics Package",de:"Elektronikpaket",es:"Paquete de componentes electrónicos",fr:"Kit électronique",ru:"Набор электроники"},powerequipment:{en:"Personal Protective Equipment",de:"Persönliche Schutzausrüstung",es:"Equipamiento de protección personal",fr:"Équipement de protection personnel",ru:"Средства индивидуальной защиты"},powerexperiment:{en:"Experiment Prototype",de:"Experimenteller Prototyp",es:"Prototipo experimental",fr:"Prototype expérimental",ru:"Экспериментальный прототип"},powerextraction:{en:"Extraction Sample",de:"Extraktionsprobe",es:"Muestra de extracción",fr:"Échantillon d’extraction",ru:"Образец добычи"},powerindustrial:{en:"Industrial Component",de:"Industrielle Komponente",es:"Componente industrial",fr:"Composant industriel",ru:"Промышленный компонент"},powerinventory:{en:"Inventory Record",de:"Inventaraufzeichnung",es:"Registro de inventario",fr:"Registre de stock",ru:"Опись имущества"},powermedical:{en:"Medical Sample",de:"Medizinische Probe",es:"Muestra médica",fr:"Échantillon médical",ru:"Медицинский образец"},powermisccomputer:{en:"Data Storage Device",de:"Datenspeichergerät",es:"Dispositivo de almacenamiento de datos",fr:"Dispositif de stockage de données",ru:"Запоминающее устройство"},powermiscindust:{en:"Industrial Machinery",de:"Industrielle Maschinen",es:"Maquinaria industrial",fr:"Machines industrielles",ru:"Промышленные машины"},powerplaymilitary:{en:"Military Schematic",de:"Militärbauplan",es:"Plano militar",fr:"Plan militaire",ru:"Военный чертеж"},powerpower:{en:"Energy Regulator",de:"Energieregulator",es:"Regulador de energía",fr:"Régulateur énergétique",ru:"Энергорегулятор"},powerresearch:{en:"Research Notes",de:"Forschungsnotizen",es:"Notas de investigación",fr:"Notes de recherche",ru:"Исследовательские заметки"},powersecurity:{en:"Security Logs",de:"Sicherheitsprotokolle",es:"Registros de seguridad",fr:"Registres de sécurité",ru:"Журнал службы безопасности"},sabotagedcomponent:{en:"Contaminated Spire Compound",de:"Kontaminierte Turm-Komponente",es:"Compuesto de agujas contaminado",fr:"Composé de flèche contaminé",ru:"Загрязненный компонент шпиля"},smallcapacitypowerregulator:{en:"Small-Capacity Power Regulator",de:"Kleiner Energieregulator",es:"Regulador de potencia de capacidad reducida",fr:"Régulateur de puissance basse capacité",ru:"Регулятор мощности малой емкости"}};var MICRO_RESOURCE_NAMES=/* @__PURE__ */createLocalizedNameIndex(micro_resource_names_default);function getMicroResourceName(symbol,locale){return getLocalizedName(MICRO_RESOURCE_NAMES,symbol,locale,"getMicroResourceName","symbol")}export{getMicroResourceName};//# sourceMappingURL=chunk-GRSNX36B.js.map
@@ -1 +0,0 @@
1
- import{buildMaterialCatalogue}from"./chunk-GTEHRZPN.js";var materials_manufactured_default=[{symbol:"SalvagedAlloys",name:"Salvaged Alloys",elementSymbol:null,grade:1,line:"Alloys"},{symbol:"GalvanisingAlloys",name:"Galvanising Alloys",elementSymbol:null,grade:2,line:"Alloys"},{symbol:"PhaseAlloys",name:"Phase Alloys",elementSymbol:null,grade:3,line:"Alloys"},{symbol:"ProtoLightAlloys",name:"Proto Light Alloys",elementSymbol:null,grade:4,line:"Alloys"},{symbol:"ProtoRadiolicAlloys",name:"Proto Radiolic Alloys",elementSymbol:null,grade:5,line:"Alloys"},{symbol:"GridResistors",name:"Grid Resistors",elementSymbol:null,grade:1,line:"Capacitors"},{symbol:"HybridCapacitors",name:"Hybrid Capacitors",elementSymbol:null,grade:2,line:"Capacitors"},{symbol:"ElectrochemicalArrays",name:"Electrochemical Arrays",elementSymbol:null,grade:3,line:"Capacitors"},{symbol:"PolymerCapacitors",name:"Polymer Capacitors",elementSymbol:null,grade:4,line:"Capacitors"},{symbol:"MilitarySupercapacitors",name:"Military Supercapacitors",elementSymbol:null,grade:5,line:"Capacitors"},{symbol:"ChemicalStorageUnits",name:"Chemical Storage Units",elementSymbol:null,grade:1,line:"Chemical"},{symbol:"ChemicalProcessors",name:"Chemical Processors",elementSymbol:null,grade:2,line:"Chemical"},{symbol:"ChemicalDistillery",name:"Chemical Distillery",elementSymbol:null,grade:3,line:"Chemical"},{symbol:"ChemicalManipulators",name:"Chemical Manipulators",elementSymbol:null,grade:4,line:"Chemical"},{symbol:"PharmaceuticalIsolators",name:"Pharmaceutical Isolators",elementSymbol:null,grade:5,line:"Chemical"},{symbol:"CompactComposites",name:"Compact Composites",elementSymbol:null,grade:1,line:"Composite"},{symbol:"FilamentComposites",name:"Filament Composites",elementSymbol:null,grade:2,line:"Composite"},{symbol:"HighDensityComposites",name:"High Density Composites",elementSymbol:null,grade:3,line:"Composite"},{symbol:"FedProprietaryComposites",name:"Proprietary Composites",elementSymbol:null,grade:4,line:"Composite"},{symbol:"FedCoreComposites",name:"Core Dynamics Composites",elementSymbol:null,grade:5,line:"Composite"},{symbol:"BasicConductors",name:"Basic Conductors",elementSymbol:null,grade:1,line:"Conductive"},{symbol:"ConductiveComponents",name:"Conductive Components",elementSymbol:null,grade:2,line:"Conductive"},{symbol:"ConductiveCeramics",name:"Conductive Ceramics",elementSymbol:null,grade:3,line:"Conductive"},{symbol:"ConductivePolymers",name:"Conductive Polymers",elementSymbol:null,grade:4,line:"Conductive"},{symbol:"BiotechConductors",name:"Biotech Conductors",elementSymbol:null,grade:5,line:"Conductive"},{symbol:"CrystalShards",name:"Crystal Shards",elementSymbol:null,grade:1,line:"Crystals"},{symbol:"UncutFocusCrystals",name:"Flawed Focus Crystals",elementSymbol:null,grade:2,line:"Crystals"},{symbol:"FocusCrystals",name:"Focus Crystals",elementSymbol:null,grade:3,line:"Crystals"},{symbol:"RefinedFocusCrystals",name:"Refined Focus Crystals",elementSymbol:null,grade:4,line:"Crystals"},{symbol:"ExquisiteFocusCrystals",name:"Exquisite Focus Crystals",elementSymbol:null,grade:5,line:"Crystals"},{symbol:"Guardian_PowerCell",name:"Guardian Power Cell",elementSymbol:null,grade:1,line:"Guardian"},{symbol:"Guardian_Sentinel_WreckageComponents",name:"Guardian Sentinel Wreckage Components",elementSymbol:null,grade:1,line:"Guardian"},{symbol:"Guardian_PowerConduit",name:"Guardian Power Conduit",elementSymbol:null,grade:2,line:"Guardian"},{symbol:"Guardian_Sentinel_WeaponParts",name:"Guardian Sentinel Weapon Parts",elementSymbol:null,grade:3,line:"Guardian"},{symbol:"Guardian_TechComponent",name:"Guardian Technology Component",elementSymbol:null,grade:3,line:"Guardian"},{symbol:"HeatConductionWiring",name:"Heat Conduction Wiring",elementSymbol:null,grade:1,line:"Heat"},{symbol:"HeatDispersionPlate",name:"Heat Dispersion Plate",elementSymbol:null,grade:2,line:"Heat"},{symbol:"HeatExchangers",name:"Heat Exchangers",elementSymbol:null,grade:3,line:"Heat"},{symbol:"HeatVanes",name:"Heat Vanes",elementSymbol:null,grade:4,line:"Heat"},{symbol:"ProtoHeatRadiators",name:"Proto Heat Radiators",elementSymbol:null,grade:5,line:"Heat"},{symbol:"MechanicalScrap",name:"Mechanical Scrap",elementSymbol:null,grade:1,line:"Mechanical Components"},{symbol:"MechanicalEquipment",name:"Mechanical Equipment",elementSymbol:null,grade:2,line:"Mechanical Components"},{symbol:"MechanicalComponents",name:"Mechanical Components",elementSymbol:null,grade:3,line:"Mechanical Components"},{symbol:"ConfigurableComponents",name:"Configurable Components",elementSymbol:null,grade:4,line:"Mechanical Components"},{symbol:"ImprovisedComponents",name:"Improvised Components",elementSymbol:null,grade:5,line:"Mechanical Components"},{symbol:"WornShieldEmitters",name:"Worn Shield Emitters",elementSymbol:null,grade:1,line:"Shielding"},{symbol:"ShieldEmitters",name:"Shield Emitters",elementSymbol:null,grade:2,line:"Shielding"},{symbol:"ShieldingSensors",name:"Shielding Sensors",elementSymbol:null,grade:3,line:"Shielding"},{symbol:"CompoundShielding",name:"Compound Shielding",elementSymbol:null,grade:4,line:"Shielding"},{symbol:"ImperialShielding",name:"Imperial Shielding",elementSymbol:null,grade:5,line:"Shielding"},{symbol:"tg_abrasion03",name:"Hardened Surface Fragments",elementSymbol:null,grade:1,line:"Thargoid"},{symbol:"tg_causticshard",name:"Caustic Shard",elementSymbol:null,grade:2,line:"Thargoid"},{symbol:"unknowncorechip",name:"Tactical Core Chip",elementSymbol:null,grade:2,line:"Thargoid"},{symbol:"UnknownCarapace",name:"Thargoid Carapace",elementSymbol:null,grade:2,line:"Thargoid"},{symbol:"TG_BioMechanicalConduits",name:"Bio-Mechanical Conduits",elementSymbol:null,grade:3,line:"Thargoid"},{symbol:"tg_causticgeneratorparts",name:"Corrosive Mechanisms",elementSymbol:null,grade:3,line:"Thargoid"},{symbol:"tg_abrasion02",name:"Phasing Membrane Residue",elementSymbol:null,grade:3,line:"Thargoid"},{symbol:"UnknownEnergyCell",name:"Thargoid Energy Cell",elementSymbol:null,grade:3,line:"Thargoid"},{symbol:"TG_WreckageComponents",name:"Wreckage Components",elementSymbol:null,grade:3,line:"Thargoid"},{symbol:"tg_causticcrystal",name:"Caustic Crystal",elementSymbol:null,grade:4,line:"Thargoid"},{symbol:"UnknownTechnologyComponents",name:"Thargoid Technological Components",elementSymbol:null,grade:4,line:"Thargoid"},{symbol:"TG_WeaponParts",name:"Weapon Parts",elementSymbol:null,grade:4,line:"Thargoid"},{symbol:"tg_abrasion01",name:"Heat Exposure Specimen",elementSymbol:null,grade:5,line:"Thargoid"},{symbol:"TG_PropulsionElement",name:"Propulsion Elements",elementSymbol:null,grade:5,line:"Thargoid"},{symbol:"UnknownEnergySource",name:"Sensor Fragment",elementSymbol:null,grade:5,line:"Thargoid"},{symbol:"UnknownOrganicCircuitry",name:"Thargoid Organic Circuitry",elementSymbol:null,grade:5,line:"Thargoid"},{symbol:"TemperedAlloys",name:"Tempered Alloys",elementSymbol:null,grade:1,line:"Thermic"},{symbol:"HeatResistantCeramics",name:"Heat Resistant Ceramics",elementSymbol:null,grade:2,line:"Thermic"},{symbol:"PrecipitatedAlloys",name:"Precipitated Alloys",elementSymbol:null,grade:3,line:"Thermic"},{symbol:"ThermicAlloys",name:"Thermic Alloys",elementSymbol:null,grade:4,line:"Thermic"},{symbol:"MilitaryGradeAlloys",name:"Military Grade Alloys",elementSymbol:null,grade:5,line:"Thermic"}];var MANUFACTURED_MATERIALS=buildMaterialCatalogue(materials_manufactured_default,"manufactured");export{MANUFACTURED_MATERIALS};//# sourceMappingURL=chunk-ITKZKREP.js.map
@@ -1 +0,0 @@
1
- import{fixedSlotReason,validateLoadout}from"./chunk-OJC6AUL7.js";import{calculateModuleLimits}from"./chunk-KPETDYQX.js";import{publishLoadoutInternals,normalizeLoadoutEvent,preEngineeredVariantFor,moduleFitProblem,effectiveModule,moduleFitError}from"./chunk-5VBB5CTV.js";import{getShipBySymbol}from"./chunk-6UNAD74Z.js";import{parseSlef,toSlef,stringifySlef,getLoadoutModifier}from"./chunk-T4MKUKYS.js";import{getSourceModuleValue}from"./chunk-NIURLW2F.js";import{statesInertModifiers,rolledOverFixedArticle,isNonOutfittingSlot,isBuiltInHullModule,cloneLoadoutModule,cloneModuleStats,availableBlueprintsFor,availableExperimentalsFor,ownKeyIn,FITTED_ITEM,blueprintAvailableFor,blueprintRoutesFor,experimentalAvailableFor,primitiveEngineeringInputsFor,missingBaseLabels,journalModifiersFor,getPreEngineeredStats,getPreEngineeredJournalModifiers,getPreEngineeredModifiers,ordinaryEngineeringProof,unresolvedModifiers,matchingKeyIn,isCargoHatchSlot,orderBySlotLayout}from"./chunk-XM4VA2WE.js";import{builtInModuleBySymbol}from"./chunk-HBQELOBY.js";import{getPreEngineeredVariants}from"./chunk-KPJ77VPS.js";import{ALL_MODULES}from"./chunk-WR6ZFHTO.js";import{getExperimentalEffect}from"./chunk-77I24V6B.js";import{singleJumpRange}from"./chunk-VTMCSCXV.js";import{calculateUnladenMass,calculateCargoCapacity,calculateFuelCapacity}from"./chunk-DCB4COCL.js";import{resolveBlueprintForModule}from"./chunk-OLKNYGGT.js";import{getBlueprintGrade}from"./chunk-AYAKU4YA.js";import{getDefaultLoadout}from"./chunk-GRIK3EDH.js";import{getExperimentalsForModule}from"./chunk-GLWPSVFV.js";import{baseStats,computeModifiers,labelsForDamageType,scaleForLabel}from"./chunk-5QSCLEEB.js";import{ammunitionCapacity}from"./chunk-AA3K5XUE.js";import{loadoutSlotName}from"./chunk-KAA4VOOB.js";import{parseSlotName,enumerateSlots}from"./chunk-RAO35XDF.js";import{normalizeKey,CATALOGUE_KEY}from"./chunk-BKWLI44T.js";import{truncate,describeValue,requireString,requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var REBUY_FRACTION=.05;function exportLoadoutEvent(input,options){const fromSource=options.credits==="source";const source=fromSource?input.sourcePurchase:null;const totals=source!==null&&!input.sourceTotalsVoided&&sourceTotalsHold(input.modules,source)?source:null;const hullValue=fromSource?source?.hullValue??null:input.retailHullValue;const modulesValue=fromSource?totals?.modulesValue??null:computedModulesValue(input.modules,input.statsFor);const rebuy=fromSource?totals?.rebuy??null:hullValue===null||modulesValue===null?null:Math.trunc((hullValue+modulesValue)*REBUY_FRACTION);return{Ship:input.shipSymbol.toLowerCase(),...input.shipName===void 0?{}:{ShipName:input.shipName},...input.shipIdent===void 0?{}:{ShipIdent:input.shipIdent},...hullValue===null?{}:{HullValue:hullValue},...modulesValue===null?{}:{ModulesValue:modulesValue},UnladenMass:input.unladenMass,CargoCapacity:input.cargoCapacity,...input.maxJumpRange===null?{}:{MaxJumpRange:input.maxJumpRange},FuelCapacity:{Main:input.fuelCapacity.main,Reserve:input.fuelCapacity.reserve},...rebuy===null?{}:{Rebuy:rebuy},Modules:exportModules(input,options,fromSource)}}function exportModules(input,options,fromSource){const ordered=options.moduleOrder==="slots"?slotOrderedModules(input.modules,input.layout):[...input.modules.values()];return ordered.map(module=>{const on=module.On??(options.explicitPower?true:void 0);const priority=module.Priority??(options.explicitPower?0:void 0);const value=fromSource?sourceModuleValue(module,input.sourcePurchase):moduleValue(module,input.statsFor);return{Slot:module.Slot,Item:module.Item.toLowerCase(),...on===void 0?{}:{On:on},...priority===void 0?{}:{Priority:priority},...module.Health===void 0?{}:{Health:module.Health},...typeof value==="number"?{Value:value}:{},...module.Engineering===void 0?{}:{Engineering:cloneLoadoutModule(module).Engineering}}})}function slotOrderedModules(modules,layout){return orderBySlotLayout([...modules.values()],layout,module=>module.Slot)}function computedModulesValue(modules,statsFor){let sum=0;for(const module of modules.values()){const value=moduleValue(module,statsFor);if(value==="unknown")return null;if(value!=="free")sum+=value}return sum}function moduleValue(module,statsFor){const stats=statsFor(module);if(stats!==null)return stats.cost??"unknown";return isNonOutfittingSlot(module.Slot)||isBuiltInHullModule(module)?"free":"unknown"}var SOURCE_ITEM="ShipLoadout: sourcePurchase moduleValues[].item";function sourceModuleValue(module,source){const entry=source===null?null:getSourceModuleValue(source,module.Slot);if(entry===null)return"unknown";return normalizeKey(entry.item,SOURCE_ITEM)===normalizeKey(module.Item,FITTED_ITEM)?entry.value:"unknown"}function sourceTotalsHold(modules,source){for(const entry of source.moduleValues){const key=matchingKeyIn(modules,entry.slot);const fitted=key===null?void 0:modules.get(key);if(!fitted)return false;if(isCargoHatchSlot(entry.slot)&&entry.value===0)continue;if(normalizeKey(fitted.Item,FITTED_ITEM)!==normalizeKey(entry.item,SOURCE_ITEM)){return false}}return true}var SLOT_KEY="ShipLoadout: slotKey";var FITTED_SLOT="ShipLoadout: fitted module Slot";var LoadoutEditError=class extends TypeError{code;constraint;params;constructor(message,code,params,constraint){super(message);this.code=code;this.params=deepFreeze(structuredClone(params));if(constraint!==void 0)this.constraint=constraint}};var experimentalEffectUnsupported=(code,params)=>deepFreeze({kind:"unsupported",code:code,params:params});var engineeringNormalizationUnsupported=(code,params)=>deepFreeze({kind:"unsupported",code:code,params:params});function weighable(tonnes){return tonnes!==void 0&&Number.isFinite(tonnes)&&tonnes>=0?tonnes:void 0}var AGGREGATE_STATS=["mass","cargoCapacity","fuelCapacity"];var ShipLoadout=class _ShipLoadout{#ship;#shipSymbol;#modules;#moduleStats;#primitiveModifiers;#top;#sourcePurchase;#importOutcomes;#slotCache=/* @__PURE__ */new Map;#layoutCache;constructor(ship,shipSymbol,modules,top,sourcePurchase=null,moduleStats=/* @__PURE__ */new Map,primitiveModifiers=/* @__PURE__ */new Map,importOutcomes=deepFreeze([])){this.#ship=ship;this.#shipSymbol=shipSymbol;this.#modules=modules;this.#top=top;this.#sourcePurchase=sourcePurchase;this.#moduleStats=moduleStats;this.#primitiveModifiers=primitiveModifiers;this.#importOutcomes=importOutcomes;publishLoadoutInternals(this,{ship:ship,modules:()=>[...this.#modules.values()],effectiveModules:()=>this.#modulesForEffectiveStats(),effectiveModule:module=>this.#moduleForEffectiveStats(module),statsFor:module=>this.#statsFor(module),layout:()=>this.#layout(),resolveDrive:()=>this.#resolveDrive(),frameShiftDriveModule:()=>this.#frameShiftDrive()?.module,calculationModules:()=>this.#calculationModules(),statedMainFuel:()=>this.#top.FuelCapacity?.Main})}static fromSlef(input,index=0){const entries=parseSlef(input);const entry=entries[index];if(!entry){throw new TypeError(`ShipLoadout.fromSlef: no entry at index ${truncate(index)} (have ${entries.length})`)}const imported=normalizeLoadoutEvent(entry.data);const ship=getShipBySymbol(imported.shipSymbol);if(!ship){throw new TypeError(`ShipLoadout.fromSlef: unknown hull "${truncate(imported.shipSymbol)}"`)}return _ShipLoadout.#fromImported(imported,ship)}static fromLoadout(event){if(event===null||typeof event!=="object"){throw new TypeError(`ShipLoadout.fromLoadout: event must be a Loadout event, received ${describeValue(event)}`)}const imported=normalizeLoadoutEvent(event);const ship=getShipBySymbol(imported.shipSymbol);if(!ship){throw new TypeError(`ShipLoadout.fromLoadout: unknown hull "${truncate(imported.shipSymbol)}"`)}return _ShipLoadout.#fromImported(imported,ship)}static#fromImported(imported,ship){const outcomes=[...imported.outcomes];const loadout=new _ShipLoadout(ship,imported.shipSymbol,imported.modules,imported.top,imported.sourcePurchase,imported.moduleStats,imported.primitiveModifiers,outcomes);const{UnladenMass:UnladenMass,CargoCapacity:CargoCapacity,FuelCapacity:FuelCapacity}=imported.top;for(const module of[...imported.modules.values()]){const unresolved=loadout.#rollStatedRecipe(module);if(unresolved!==null)outcomes.push(unresolved)}if(UnladenMass!==void 0)loadout.#top.UnladenMass=UnladenMass;if(CargoCapacity!==void 0)loadout.#top.CargoCapacity=CargoCapacity;if(FuelCapacity!==void 0)loadout.#top.FuelCapacity=FuelCapacity;deepFreeze(outcomes);return loadout}#rollStatedRecipe(module){const engineering=module.Engineering;if(!engineering||typeof engineering.BlueprintName!=="string")return null;const stated=engineering.Modifiers;const stats=this.#statsFor(module);if(stated!==void 0&&(this.#moduleStats.has(module.Slot)||stats===null||!statesInertModifiers(stats,stated))){return null}if(stated===void 0&&this.#moduleStats.has(module.Slot)){const variant=preEngineeredVariantFor(module);if(variant?.acquisition!=="mercenary"||engineering.Level<=variant.grade){return null}}try{this.applyBlueprint(module.Slot,engineering.BlueprintName,{grade:engineering.Level,quality:engineering.Quality??1,...typeof engineering.ExperimentalEffect==="string"?{experimentalEffectSymbol:engineering.ExperimentalEffect}:{}});if(stated!==void 0){return{action:"rerolledEngineering",slot:module.Slot,sourceSymbol:module.Item,blueprintSymbol:engineering.BlueprintName}}const passedOver=rolledOverFixedArticle(module.Item,engineering);return passedOver===null?null:{action:"ambiguousEngineering",slot:module.Slot,sourceSymbol:module.Item,blueprintSymbol:engineering.BlueprintName,preEngineeredVariant:passedOver}}catch(error){if(!(error instanceof TypeError)&&!(error instanceof RangeError))throw error;return{action:"unresolvedEngineering",slot:module.Slot,sourceSymbol:module.Item,blueprintSymbol:engineering.BlueprintName}}}static empty(shipSymbol){const requested=requireString(shipSymbol,"ShipLoadout.empty: shipSymbol");const ship=getShipBySymbol(requested);if(!ship){throw new TypeError(`ShipLoadout.empty: no slot layout for hull "${truncate(shipSymbol)}"`)}const fitted=(getDefaultLoadout(ship.symbol)?.modules??[]).filter(module=>{const parsed=parseSlotName(module.slot);return parsed!==null&&fixedSlotReason(parsed)!==null});return new _ShipLoadout(ship,ship.symbol,new Map(fitted.map(module=>[module.slot,{Slot:module.slot,Item:module.symbol}])),{})}static default(shipSymbol){const requested=requireString(shipSymbol,"ShipLoadout.default: shipSymbol");const ship=getShipBySymbol(requested);if(!ship){throw new TypeError(`ShipLoadout.default: no default loadout for hull "${truncate(shipSymbol)}"`)}const loadout=getDefaultLoadout(ship.symbol);return new _ShipLoadout(ship,loadout.symbol,new Map(loadout.modules.map(module=>[module.slot,{Slot:module.slot,Item:module.symbol}])),{})}get shipSymbol(){return this.#shipSymbol}get shipName(){return this.#top.ShipName??null}get shipIdent(){return this.#top.ShipIdent??null}get unladenMass(){return this.#top.UnladenMass??this.#computedUnladenMass()}#computedUnladenMass(){return calculateUnladenMass(this.#ship.hullMass,this.#calculationModules())}get fuelCapacity(){const cap=this.#top.FuelCapacity;if(cap?.Main!==void 0&&cap.Reserve!==void 0){return Object.freeze({main:cap.Main,reserve:cap.Reserve})}const computed=this.#computedFuelCapacity();return Object.freeze({main:cap?.Main??computed.main,reserve:cap?.Reserve??computed.reserve})}get cargoCapacity(){return this.#top.CargoCapacity??this.#computedCargoCapacity()}#computedCargoCapacity(){return calculateCargoCapacity(this.#calculationModules())}#computedFuelCapacity(){return calculateFuelCapacity(this.#ship.reserveFuelCapacity,this.#calculationModules())}get hullValue(){return this.#top.HullValue??null}get modulesValue(){return this.#top.ModulesValue??null}get rebuy(){return this.#top.Rebuy??null}get sourcePurchase(){return this.#sourcePurchase}get importOutcomes(){return this.#importOutcomes}validation(){const slots=this.#layout();const byKey=new Map(slots.map(slot=>[normalizeKey(slot.key,CATALOGUE_KEY),slot]));const modules=[...this.#modules.values()].map(module=>{const stats=this.#statsFor(module);const slot=byKey.get(normalizeKey(module.Slot,FITTED_SLOT));const builtIn=stats===null&&isNonOutfittingSlot(module.Slot)||isBuiltInHullModule(module);const fitProblem=stats&&slot&&!builtIn?moduleFitProblem(this.#shipSymbol,slot,stats):null;const thrusterMaxMass=weighable(stats?.slot==="thrusters"?effectiveModule(this.#moduleForEffectiveStats(module),stats)?.maxMass:void 0);return{slot:module.Slot,symbol:module.Item,requiresKnownSlot:!builtIn,fitError:fitProblem?.message??null,...fitProblem===null?{}:{fitConstraint:fitProblem.constraint},...fitProblem?.params===void 0?{}:{fitParams:fitProblem.params},...stats?.exclusionGroup===void 0?{}:{exclusionGroup:stats.exclusionGroup},...stats?.limitGroup===void 0?{}:{limitGroup:stats.limitGroup},...stats?.limitIncrease===void 0?{}:{limitIncrease:stats.limitIncrease},...thrusterMaxMass===void 0?{}:{thrusterMaxMass:thrusterMaxMass}}});const dry=weighable(this.unladenMass);const fuel=weighable(this.fuelCapacity.main);const cargo=weighable(this.cargoCapacity);const mass=dry===void 0?void 0:{dry:dry,...fuel===void 0?{}:{fuel:fuel},...fuel===void 0||cargo===void 0?{}:{cargo:cargo}};return validateLoadout({shipSymbol:this.#shipSymbol,slots:slots,modules:modules,...mass===void 0?{}:{mass:mass}})}slots(kind){const cached=this.#slotCache.get(kind);if(cached!==void 0)return cached;const slots=kind===void 0?this.#layout():this.#layout().filter(slot=>slot.kind===kind);const currentLimits=this.#moduleLimits();const value=deepFreeze(slots.map(slot=>{const stats=this.#moduleStatsAt(slot.key);const fixedReason=fixedSlotReason(slot);const immovableReason=fixedReason!==null?fixedReason:stats?.limitIncrease!==void 0&&this.#moduleLimitRegression(slot.key,null,currentLimits,stats)!==null?"moduleLimit":null;return{...slot,name:loadoutSlotName(slot),module:this.fittedModuleAt(slot.key),removable:immovableReason===null,...immovableReason===null?{}:{immovableReason:immovableReason}}}));this.#slotCache.set(kind,value);return value}fittedModuleAt(slotKey){const module=this.#fittedModuleFor(slotKey);if(!module)return null;const raw=cloneLoadoutModule(module);const stats=this.#statsFor(module);const effective=effectiveModule(this.#moduleForEffectiveStats(module),stats);return deepFreeze({slot:module.Slot,symbol:raw.Item,on:raw.On,priority:raw.Priority,health:raw.Health,value:raw.Value,engineering:raw.Engineering,raw:raw,stats:stats===null?null:cloneModuleStats(stats),effectiveStats:effective===null?null:cloneModuleStats(effective),ammunition:ammunitionCapacity(effective),preEngineeredVariant:preEngineeredVariantFor(raw)})}fittedModules(){return deepFreeze([...this.#modules.keys()].flatMap(key=>{const fitted=this.fittedModuleAt(key);return fitted===null?[]:[fitted]}))}availableBlueprints(slotKey){const module=this.#fittedModuleFor(slotKey);return deepFreeze(module?availableBlueprintsFor(module.Item,this.#statsFor(module)):[])}availableExperimentalEffects(slotKey){const module=this.#fittedModuleFor(slotKey);return deepFreeze(module?availableExperimentalsFor(module.Item,this.#statsFor(module)):[])}modulesForSlot(slotKey){const slot=this.#requireSlot(slotKey);const occupied=new Set([...this.#modules.values()].flatMap(fitted=>{if(normalizeKey(fitted.Slot,FITTED_SLOT)===normalizeKey(slot.key,CATALOGUE_KEY))return[];const group=this.#statsFor(fitted)?.exclusionGroup;return group===void 0?[]:[group]}));const currentLimits=this.#moduleLimits();const currentStats=this.#moduleStatsAt(slot.key);return ALL_MODULES.filter(module=>module.grantOnly===void 0&&moduleFitError(this.#shipSymbol,slot,module)===null&&(module.exclusionGroup===void 0||!occupied.has(module.exclusionGroup))&&this.#moduleLimitRegression(slot.key,module,currentLimits,currentStats)===null)}repairFixedMount(slotKey){const requested=requireString(slotKey,SLOT_KEY);const wanted=normalizeKey(requested,SLOT_KEY);const slot=this.#requireSlot(requested);const fittedKey=this.#fittedKey(requested);const resultSlot=fittedKey??requested;const canonicalKey=slot.key;if(fixedSlotReason(slot)===null){return deepFreeze({status:"refused",slot:resultSlot,reason:"notFixedMount"})}const current=this.#fittedModuleFor(requested);const currentStats=current?this.#statsFor(current):null;const valid=current!==void 0&&currentStats!==null&&(slot.kind==="cargoHatch"?isBuiltInHullModule(current):moduleFitProblem(this.#shipSymbol,slot,currentStats)===null);if(valid){return deepFreeze({status:"unchanged",slot:current.Slot,symbol:current.Item})}const defaultModule=getDefaultLoadout(this.#shipSymbol)?.modules.find(module=>normalizeKey(module.slot,CATALOGUE_KEY)===wanted);if(!defaultModule){return deepFreeze({status:"defaultUnavailable",slot:resultSlot})}const ownKey=ownKeyIn(this.#modules,canonicalKey);const replacement={Slot:ownKey,Item:defaultModule.symbol,...current?.On===void 0?{}:{On:current.On},...current?.Priority===void 0?{}:{Priority:current.Priority},...current?.Health===void 0?{}:{Health:current.Health}};const replacementStats=builtInModuleBySymbol(defaultModule.symbol,"ShipLoadout.repairFixedMount")??(isBuiltInHullModule(replacement)?builtInModuleBySymbol("ModularCargoBayDoor","ShipLoadout.repairFixedMount"):null);if(!replacementStats){return deepFreeze({status:"defaultUnavailable",slot:resultSlot,symbol:defaultModule.symbol})}this.#replaceModule(ownKey,replacement,replacementStats);return deepFreeze({status:"repaired",slot:ownKey,symbol:defaultModule.symbol})}setModule(slotKey,module){const slot=this.#requireSlot(slotKey);if(module===null||module===void 0){throw new TypeError(`ShipLoadout.setModule: no module supplied for "${truncate(slotKey)}" (did the module lookup return undefined?)`)}if(typeof module.symbol!=="string"){throw new TypeError(`ShipLoadout.setModule: module for "${truncate(slotKey)}" must be an outfitting module, received ${describeValue(module)}`)}module=cloneModuleStats(module);const catalogued=builtInModuleBySymbol(module.symbol,FITTED_ITEM);if(catalogued===null){throw new TypeError(`ShipLoadout.setModule: no module is catalogued as "${truncate(module.symbol)}"`)}for(const field of AGGREGATE_STATS){const stated=module[field];if(stated===void 0){if(catalogued[field]===void 0)continue;throw new TypeError(`ShipLoadout.setModule: the supplied record for "${truncate(module.symbol)}" has no ${field}`)}if(typeof stated!=="number"||!Number.isFinite(stated)){throw new TypeError(`ShipLoadout.setModule: the supplied record for "${truncate(module.symbol)}" states a ${field} of ${describeValue(stated)}`)}}const problem=moduleFitProblem(this.#shipSymbol,slot,module);if(problem){if(problem.constraint==="immutableSlot"){throw new LoadoutEditError(`ShipLoadout.setModule: ${truncate(module.symbol)} → ${truncate(slotKey)}: ${problem.message}`,"immutableSlot",{slot:slot.key})}throw new LoadoutEditError(`ShipLoadout.setModule: ${truncate(module.symbol)} → ${truncate(slotKey)}: ${problem.message}`,"incompatibleModule",{...problem.params,slot:slot.key,symbol:module.symbol,constraint:problem.constraint},problem.constraint)}if(module.exclusionGroup!==void 0){const conflict=[...this.#modules.values()].find(fitted=>normalizeKey(fitted.Slot,FITTED_SLOT)!==normalizeKey(slot.key,CATALOGUE_KEY)&&this.#statsFor(fitted)?.exclusionGroup===module.exclusionGroup);if(conflict){throw new LoadoutEditError(`ShipLoadout.setModule: ${truncate(module.symbol)} → ${truncate(slotKey)}: ${module.exclusionGroup} is limited to one per ship (already fitted in ${truncate(conflict.Slot)})`,"duplicateExclusiveModule",{exclusionGroup:module.exclusionGroup,slot:slot.key,symbol:module.symbol,previousSlot:conflict.Slot,previousSymbol:conflict.Item})}}const limitProblem=this.#moduleLimitRegression(slot.key,module);if(limitProblem!==null){throw new LoadoutEditError(`ShipLoadout.setModule: ${truncate(module.symbol)} → ${truncate(slotKey)}: ${limitProblem.group} would have ${limitProblem.count} modules but the ship allows ${limitProblem.limit}`,"moduleLimitExceeded",{group:limitProblem.group,count:limitProblem.count,limit:limitProblem.limit,slot:slot.key,symbol:module.symbol})}const key=this.#fittedKey(slotKey)??slot.key;this.#replaceModule(key,{Slot:key,Item:module.symbol},module);return this}removeModule(slotKey){const wanted=normalizeKey(slotKey,SLOT_KEY);if(wanted==="cargohatch"){throw new LoadoutEditError("ShipLoadout.removeModule: the cargoHatch slot cannot be changed","immutableSlot",{slot:"CargoHatch"})}const parsed=parseSlotName(slotKey);const slot=this.#layout().find(candidate=>normalizeKey(candidate.key,CATALOGUE_KEY)===wanted);if(parsed!==null&&fixedSlotReason(parsed)==="requiredSlot"){const fittedKey=this.#fittedKey(slotKey);const key2=slot?.key??fittedKey??slotKey;throw new LoadoutEditError(`ShipLoadout.removeModule: the ${truncate(key2)} slot is required and cannot be emptied`,"requiredSlot",{slot:key2})}const key=this.#fittedKey(slotKey);if(key!==null){const limitProblem=this.#moduleLimitRegression(key,null);if(limitProblem!==null){const fitted=this.#modules.get(key);throw new LoadoutEditError(`ShipLoadout.removeModule: ${truncate(slotKey)}: ${limitProblem.group} would have ${limitProblem.count} modules but the ship allows ${limitProblem.limit}`,"moduleLimitExceeded",{group:limitProblem.group,count:limitProblem.count,limit:limitProblem.limit,slot:key,...fitted===void 0?{}:{symbol:fitted.Item}})}this.#replaceModule(key,null)}return this}applyBlueprint(slotKey,blueprintSymbol,options){requireString(blueprintSymbol,"ShipLoadout.applyBlueprint: blueprintSymbol");if(options===null||typeof options!=="object"){throw new TypeError(`ShipLoadout.applyBlueprint: options must be an object with a grade, received ${describeValue(options)}`)}const wantedGrade=options.grade;const wantedQuality=options.quality;const wantedExperimental=options.experimentalEffectSymbol??void 0;requireStringIfPresent(wantedExperimental,"ShipLoadout.applyBlueprint: options.experimentalEffectSymbol");const module=this.#fittedModuleFor(slotKey);if(!module){throw new RangeError(`ShipLoadout.applyBlueprint: slot "${truncate(slotKey)}" is empty`)}const fittedStats=this.#statsFor(module);if(!fittedStats){throw new TypeError(`ShipLoadout.applyBlueprint: no stats for module "${truncate(module.Item)}"`)}const recipe=resolveBlueprintForModule(module.Item,blueprintSymbol);const named=recipe===blueprintSymbol?`"${truncate(blueprintSymbol)}"`:`"${truncate(blueprintSymbol)}" (${truncate(recipe)} on this module)`;const written=blueprintSymbol.trim().toLowerCase();const resolved=recipe.trim().toLowerCase();if(getPreEngineeredVariants(module.Item).some(variant=>variant.acquisition==="eventReward"&&(variant.blueprintSymbol.toLowerCase()===written||variant.blueprintSymbol.toLowerCase()===resolved))){throw new TypeError(`ShipLoadout.applyBlueprint: ${named} is a fixed pre-engineered identity, not a craftable blueprint; use setPreEngineeredVariant to fit its fixed article`)}if(!Number.isInteger(wantedGrade)||wantedGrade<1||wantedGrade>5){throw new RangeError(`ShipLoadout.applyBlueprint: no blueprint ${named} grade ${truncate(wantedGrade)}`)}const grade=getBlueprintGrade(recipe,wantedGrade);if(!grade){throw new RangeError(`ShipLoadout.applyBlueprint: no blueprint ${named} grade ${truncate(wantedGrade)}`)}let experimental;if(wantedExperimental!==void 0){experimental=getExperimentalEffect(wantedExperimental);if(!experimental){throw new RangeError(`ShipLoadout.applyBlueprint: unknown experimental effect "${truncate(wantedExperimental)}"`)}}const quality=wantedQuality??1;if(!Number.isFinite(quality)||quality<0||quality>1){throw new RangeError(`ShipLoadout.applyBlueprint: quality must be a finite number in [0, 1]`)}if(fittedStats.engineeringLocked){throw new TypeError(`ShipLoadout.applyBlueprint: module "${truncate(module.Item)}" is a final pre-engineered article and accepts no further engineering`)}if(!blueprintAvailableFor(module.Item,blueprintSymbol)){const offered=[...blueprintRoutesFor(module.Item)].map(([blueprint,route])=>`${blueprint} (${route})`);throw new TypeError(offered.length>0?`ShipLoadout.applyBlueprint: module "${truncate(module.Item)}" is not offered blueprint ${named}; available candidates are ${offered.join(", ")}`:`ShipLoadout.applyBlueprint: no registry lists an engineering menu for module "${truncate(module.Item)}"`)}if(wantedExperimental!==void 0&&!experimentalAvailableFor(module.Item,wantedExperimental)){const offered=getExperimentalsForModule(module.Item);throw new TypeError(`ShipLoadout.applyBlueprint: module "${truncate(module.Item)}" is not offered experimental effect "${truncate(wantedExperimental)}"; it takes ${offered.length>0?offered.join(", "):"no experimental effect"}`)}const stats=this.#engineeringBaseStats(module)??fittedStats;const base=baseStats(stats);const canonical=primitiveEngineeringInputsFor(stats,grade,experimental);const missing=missingBaseLabels(stats,base,canonical.grade.features,canonical.experimental?.modifiers);if(missing.length>0){throw new TypeError(`ShipLoadout.applyBlueprint: cannot compute ${named} for module "${truncate(module.Item)}"; missing base stats for ${missing.join(", ")}`)}const damageDistribution=experimental?.damageDistribution??grade.damageDistribution;const primitiveModifiers=computeModifiers(base,canonical.grade,quality,canonical.experimental);const modifiers=journalModifiersFor(stats,primitiveModifiers);if(damageDistribution){for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];if(value===void 0)continue;const label=labelsForDamageType(type)[0];if(label===void 0)continue;const damageModifier={Label:label,Value:value*scaleForLabel(label),OriginalValue:(stats.damageDistribution?.[type]??0)*scaleForLabel(label)};modifiers.push(damageModifier);primitiveModifiers.push(damageModifier)}}const engineering={BlueprintName:blueprintSymbol,Level:wantedGrade,Quality:quality,...wantedExperimental!==void 0?{ExperimentalEffect:wantedExperimental}:{},Modifiers:modifiers};this.#replaceModule(module.Slot,{...module,Engineering:engineering},stats,primitiveModifiers);return this}setExperimentalEffect(slotKey,experimental){if(experimental!==null){requireString(experimental,"ShipLoadout.setExperimentalEffect: experimental")}const wanted=experimental;const module=this.#fittedModuleFor(slotKey);if(!module)return experimentalEffectUnsupported("emptySlot",{slot:slotKey});const stats=this.#statsFor(module);if(!stats){return experimentalEffectUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const engineering=module.Engineering;if(!engineering){return experimentalEffectUnsupported("notEngineered",{slot:module.Slot,symbol:module.Item})}if(stats.engineeringLocked){return experimentalEffectUnsupported("finalArticle",{slot:module.Slot,symbol:module.Item})}const previous=engineering.ExperimentalEffect??null;if(previous===null&&wanted===null||previous!==null&&wanted!==null&&previous.trim().toLowerCase()===wanted.trim().toLowerCase()){return deepFreeze({kind:"unchanged",experimentalEffectSymbol:previous})}const variant=preEngineeredVariantFor(module);let effect;if(wanted!==null){effect=getExperimentalEffect(wanted);if(!effect){return experimentalEffectUnsupported("unknownExperimentalEffect",{slot:module.Slot,symbol:module.Item,experimental:wanted})}const restoresBakedEffect=variant?.experimentalEffectSymbol!==void 0&&variant.acquisition!=="mercenary"&&variant.experimentalEffectSymbol.trim().toLowerCase()===wanted.trim().toLowerCase();if(!experimentalAvailableFor(module.Item,wanted)&&!restoresBakedEffect){return experimentalEffectUnsupported("unsupportedExperimentalEffect",{slot:module.Slot,symbol:module.Item,experimental:wanted})}}if(variant&&variant.acquisition!=="mercenary"){const stock=this.#engineeringBaseStats(module);if(!stock){return experimentalEffectUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const missing=missingBaseLabels(stock,baseStats(stock),[],effect?.modifiers);if(missing.length>0){return experimentalEffectUnsupported("unresolvedModifiers",{slot:module.Slot,symbol:module.Item,labels:missing})}const{experimentalEffectSymbol:originalEffect,...withoutEffect}=variant;const adjusted=wanted===null?withoutEffect:{...withoutEffect,experimentalEffectSymbol:wanted};const resolved=getPreEngineeredStats(withoutEffect);if(!resolved){return experimentalEffectUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const replacement={BlueprintName:engineering.BlueprintName,Level:engineering.Level,Quality:engineering.Quality,...wanted===null?{}:{ExperimentalEffect:wanted},Modifiers:getPreEngineeredJournalModifiers(adjusted)};this.#replaceModule(module.Slot,{...module,Engineering:replacement},cloneModuleStats(resolved),getPreEngineeredModifiers(adjusted))}else{const blueprint=engineering.BlueprintName;const grade=engineering.Level;const quality=engineering.Quality;if(typeof blueprint!=="string"||!Number.isInteger(grade)||grade<1||grade>5){return experimentalEffectUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const currentEffect=previous===null?void 0:getExperimentalEffect(previous)??null;if(ordinaryEngineeringProof(module.Item,engineering,currentEffect)==="unproven"){return experimentalEffectUnsupported("unidentifiedPreEngineeredVariant",{slot:module.Slot,symbol:module.Item,blueprint:blueprint})}const recipe=resolveBlueprintForModule(module.Item,blueprint);const blueprintGrade=getBlueprintGrade(recipe,grade);if(!blueprintGrade||!blueprintAvailableFor(module.Item,blueprint)||!Number.isFinite(quality)||quality<0||quality>1){return experimentalEffectUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item,blueprint:blueprint,grade:grade})}const base=this.#engineeringBaseStats(module)??stats;const canonical=primitiveEngineeringInputsFor(base,blueprintGrade,effect);const missing=missingBaseLabels(base,baseStats(base),canonical.grade.features,canonical.experimental?.modifiers);if(missing.length>0){return experimentalEffectUnsupported("unresolvedModifiers",{slot:module.Slot,symbol:module.Item,labels:missing})}this.applyBlueprint(module.Slot,blueprint,{grade:grade,quality:quality,...wanted===null?{}:{experimentalEffectSymbol:wanted}})}return deepFreeze({kind:"updated",previousExperimentalEffectSymbol:previous,experimentalEffectSymbol:wanted})}completeEngineeringGrade(slotKey){const module=this.#fittedModuleFor(slotKey);if(!module)return engineeringNormalizationUnsupported("emptySlot",{slot:slotKey});const stats=this.#statsFor(module);if(!stats){return engineeringNormalizationUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const engineering=module.Engineering;if(!engineering){return engineeringNormalizationUnsupported("notEngineered",{slot:module.Slot,symbol:module.Item})}if(stats.engineeringLocked){return engineeringNormalizationUnsupported("finalArticle",{slot:module.Slot,symbol:module.Item})}if(engineering.Quality===1&&engineering.Modifiers!==void 0){return deepFreeze({kind:"unchanged"})}const previousQuality=engineering.Quality;if(!Number.isFinite(previousQuality)||previousQuality<0||previousQuality>1){return engineeringNormalizationUnsupported("invalidQuality",{slot:module.Slot,symbol:module.Item})}const experimental=engineering.ExperimentalEffect??null;const effect=experimental===null?void 0:getExperimentalEffect(experimental)??void 0;if(experimental!==null&&!effect){return engineeringNormalizationUnsupported("unknownExperimentalEffect",{slot:module.Slot,symbol:module.Item,experimental:experimental})}const blueprint=engineering.BlueprintName;const grade=engineering.Level;if(typeof blueprint!=="string"||!Number.isInteger(grade)||grade<1||grade>5){return engineeringNormalizationUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const variant=preEngineeredVariantFor(module);const restoresBakedEffect=variant?.experimentalEffectSymbol!==void 0&&variant.acquisition!=="mercenary"&&variant.experimentalEffectSymbol.trim().toLowerCase()===experimental?.trim().toLowerCase();if(experimental!==null&&!experimentalAvailableFor(module.Item,experimental)&&!restoresBakedEffect){return engineeringNormalizationUnsupported("unsupportedExperimentalEffect",{slot:module.Slot,symbol:module.Item,experimental:experimental})}if(variant&&variant.acquisition!=="mercenary"){const stock=this.#engineeringBaseStats(module);if(!stock){return engineeringNormalizationUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const missing=missingBaseLabels(stock,baseStats(stock),[],effect?.modifiers);if(missing.length>0){return engineeringNormalizationUnsupported("unresolvedModifiers",{slot:module.Slot,symbol:module.Item,labels:missing})}const{experimentalEffectSymbol:originalEffect,...withoutEffect}=variant;const adjusted=experimental===null?withoutEffect:{...withoutEffect,experimentalEffectSymbol:experimental};const resolved=getPreEngineeredStats(withoutEffect);if(!resolved){return engineeringNormalizationUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item})}const replacement={BlueprintName:engineering.BlueprintName,Level:engineering.Level,Quality:1,...experimental===null?{}:{ExperimentalEffect:experimental},Modifiers:getPreEngineeredJournalModifiers(adjusted)};this.#replaceModule(module.Slot,{...module,Engineering:replacement},cloneModuleStats(resolved),getPreEngineeredModifiers(adjusted))}else{const proof=ordinaryEngineeringProof(module.Item,engineering,effect);if(proof==="unproven"||proof==="proven"&&!blueprintAvailableFor(module.Item,blueprint)){return engineeringNormalizationUnsupported("unidentifiedPreEngineeredVariant",{slot:module.Slot,symbol:module.Item,blueprint:blueprint})}const recipe=resolveBlueprintForModule(module.Item,blueprint);const blueprintGrade=getBlueprintGrade(recipe,grade);if(!blueprintGrade||!blueprintAvailableFor(module.Item,blueprint)){return engineeringNormalizationUnsupported("unsupportedEngineering",{slot:module.Slot,symbol:module.Item,blueprint:blueprint,grade:grade})}const base=this.#engineeringBaseStats(module)??stats;const canonical=primitiveEngineeringInputsFor(base,blueprintGrade,effect);const missing=missingBaseLabels(base,baseStats(base),canonical.grade.features,canonical.experimental?.modifiers);if(missing.length>0){return engineeringNormalizationUnsupported("unresolvedModifiers",{slot:module.Slot,symbol:module.Item,labels:missing})}this.applyBlueprint(module.Slot,blueprint,{grade:grade,quality:1,...experimental===null?{}:{experimentalEffectSymbol:experimental}})}return deepFreeze({kind:"normalized",previousQuality:previousQuality,quality:1})}setPreEngineeredVariant(slotKey,variant){if(variant===null||typeof variant!=="object"){throw new TypeError(`ShipLoadout.setPreEngineeredVariant: variant must be a pre-engineered variant, received ${describeValue(variant)}`)}requireString(variant.symbol,"ShipLoadout.setPreEngineeredVariant: variant.symbol");requireString(variant.blueprintSymbol,"ShipLoadout.setPreEngineeredVariant: variant.blueprintSymbol");requireString(variant.acquisition,"ShipLoadout.setPreEngineeredVariant: variant.acquisition");requireStringIfPresent(variant.experimentalEffectSymbol,"ShipLoadout.setPreEngineeredVariant: variant.experimentalEffectSymbol");const known=getPreEngineeredVariants(variant.symbol).find(candidate=>candidate.blueprintSymbol.toLowerCase()===variant.blueprintSymbol.toLowerCase()&&candidate.grade===variant.grade&&(candidate.experimentalEffectSymbol?.toLowerCase()??"")===(variant.experimentalEffectSymbol?.toLowerCase()??"")&&candidate.acquisition===variant.acquisition);if(!known){throw new RangeError(`ShipLoadout.setPreEngineeredVariant: no catalogued variant "${truncate(variant.blueprintSymbol)}" for module "${truncate(variant.symbol)}"`)}const stats=getPreEngineeredStats(known);const unresolved=unresolvedModifiers(known);if(unresolved.length>0){throw new TypeError(`ShipLoadout.setPreEngineeredVariant: cannot resolve "${truncate(variant.blueprintSymbol)}" for module "${truncate(variant.symbol)}"; missing base stats for ${unresolved.join(", ")}`)}this.setModule(slotKey,stats);const module=this.#fittedModuleFor(slotKey);const journalModifiers=getPreEngineeredJournalModifiers(known);const engineering={BlueprintName:known.blueprintSymbol,Level:known.grade,Quality:1,...known.experimentalEffectSymbol===void 0?{}:{ExperimentalEffect:known.experimentalEffectSymbol},...journalModifiers.length>0?{Modifiers:journalModifiers}:{}};this.#replaceModule(module.Slot,{...module,Engineering:engineering},cloneModuleStats(stats),getPreEngineeredModifiers(known));return this}clearEngineering(slotKey){const module=this.#fittedModuleFor(slotKey);if(module&&this.#statsFor(module)?.engineeringLocked){throw new TypeError(`ShipLoadout.clearEngineering: module "${truncate(module.Item)}" is a final pre-engineered article and its engineering cannot be removed`)}if(module?.Engineering){const baseStats2=this.#engineeringBaseStats(module);const bare={Slot:module.Slot,Item:module.Item};if(module.On!==void 0)bare.On=module.On;if(module.Priority!==void 0){bare.Priority=module.Priority}if(module.Health!==void 0)bare.Health=module.Health;if(module.Value!==void 0)bare.Value=module.Value;this.#replaceModule(module.Slot,bare,baseStats2??void 0)}return this}setModuleEnabled(slotKey,on){this.#patchModule(slotKey,{On:on});return this}setModulePriority(slotKey,priority){if(!Number.isInteger(priority)||priority<0||priority>4){throw new RangeError(`ShipLoadout: power priority must be an integer 0-4, got ${truncate(priority)}`)}this.#patchModule(slotKey,{Priority:priority});return this}#patchModule(slotKey,patch){const module=this.#fittedModuleFor(slotKey);if(!module){throw new RangeError(`ShipLoadout: slot "${truncate(slotKey)}" is empty`)}this.#modules.set(module.Slot,cloneLoadoutModule({...module,...patch}));this.#slotCache.clear()}toLoadoutEvent(options={}){const unladenMass=this.#computedUnladenMass();const cargoCapacity=this.#computedCargoCapacity();const fuel=this.#computedFuelCapacity();const maxJumpRange=this.#exportableJumpRange(unladenMass);return exportLoadoutEvent({shipSymbol:this.#shipSymbol,...this.#top.ShipName===void 0?{}:{shipName:this.#top.ShipName},...this.#top.ShipIdent===void 0?{}:{shipIdent:this.#top.ShipIdent},modules:this.#modules,layout:this.#layout(),sourcePurchase:this.#sourcePurchase,retailHullValue:this.#ship.hullCost,unladenMass:unladenMass,cargoCapacity:cargoCapacity,fuelCapacity:fuel,maxJumpRange:maxJumpRange,sourceTotalsVoided:this.#importOutcomes.some(outcome=>outcome.sourceSymbol===null&&parseSlotName(outcome.slot)?.kind==="core"),statsFor:module=>this.#statsFor(module)},options)}toSlef(options){return toSlef(this.toLoadoutEvent(options),options.header)}toSlefString(options){return stringifySlef(this.toSlef(options),{indent:options.indent??0})}#exportableJumpRange(unladenMass){let drive;try{drive=this.#resolveDrive()}catch{return null}if(drive===null)return null;const tank=this.#computedFuelCapacity();return singleJumpRange(unladenMass,Math.min(tank.main,drive.maxFuel),drive)}#layout(){if(this.#layoutCache===void 0){this.#layoutCache=Object.freeze(enumerateSlots(this.#ship))}return this.#layoutCache}#requireSlot(slotKey){const wanted=normalizeKey(slotKey,SLOT_KEY);const slot=this.#layout().find(s=>normalizeKey(s.key,CATALOGUE_KEY)===wanted);if(!slot){throw new RangeError(`ShipLoadout: hull "${truncate(this.#shipSymbol)}" has no slot "${truncate(slotKey)}"`)}return slot}#fittedKey(slotKey){return matchingKeyIn(this.#modules,normalizeKey(slotKey,SLOT_KEY))}#fittedModuleFor(slotKey){const key=this.#fittedKey(slotKey);return key===null?void 0:this.#modules.get(key)}#calculationModules(){return[...this.#modules.values()].map(module=>({mass:this.#moduleMass(module),cargoCapacity:this.#moduleCapacity(module,"CargoCapacity","cargoCapacity"),fuelCapacity:this.#moduleCapacity(module,"FuelCapacity","fuelCapacity")}))}#moduleLimits(){const entries=[...this.#modules.values()].flatMap(module=>{const stats=this.#statsFor(module);return stats===null?[]:[stats]});return calculateModuleLimits(entries)}#moduleStatsAt(slotKey){const fitted=this.#fittedModuleFor(slotKey);return fitted===void 0?null:this.#statsFor(fitted)}#engineeringBaseStats(module){const fitted=this.#statsFor(module);if(!module.Engineering||preEngineeredVariantFor(module)===null)return fitted;const stock=builtInModuleBySymbol(module.Item,FITTED_ITEM);if(!stock)return fitted;return fitted?.engineeringLocked?cloneModuleStats({...stock,engineeringLocked:true}):stock}#moduleForEffectiveStats(module){const modifiers=this.#primitiveModifiers.get(module.Slot);if(modifiers===void 0||module.Engineering===void 0)return module;return{...module,Engineering:{...module.Engineering,Modifiers:modifiers}}}#modulesForEffectiveStats(){return[...this.#modules.values()].map(module=>this.#moduleForEffectiveStats(module))}#moduleLimitRegression(slotKey,replacement,current=this.#moduleLimits(),previous=this.#moduleStatsAt(slotKey)){if(previous?.limitGroup===void 0&&previous?.limitIncrease===void 0&&replacement?.limitGroup===void 0&&replacement?.limitIncrease===void 0){return null}for(const usage of current){const count=usage.count-Number(previous?.limitGroup===usage.group)+Number(replacement?.limitGroup===usage.group);const increase=usage.increase-(previous?.limitIncrease?.group===usage.group?previous.limitIncrease.amount:0)+(replacement?.limitIncrease?.group===usage.group?replacement.limitIncrease.amount:0);const limit=usage.baseLimit+increase;const excess=Math.max(0,count-limit);if(excess>usage.excess){return{...usage,increase:increase,limit:limit,count:count,excess:excess}}}return null}#replaceModule(slotKey,replacement,replacementStats,primitiveModifiers){const previous=this.#modules.get(slotKey)??null;this.#adjustImportedFigures(previous,replacement,replacementStats);if(replacement===null){this.#modules.delete(slotKey);this.#moduleStats.delete(slotKey);this.#primitiveModifiers.delete(slotKey)}else{this.#modules.set(slotKey,cloneLoadoutModule(replacement));if(replacementStats!==void 0)this.#moduleStats.set(slotKey,replacementStats);if(primitiveModifiers===void 0)this.#primitiveModifiers.delete(slotKey);else this.#primitiveModifiers.set(slotKey,primitiveModifiers)}this.#slotCache.clear()}#adjustImportedFigures(previous,next,nextStats){if(this.#top.UnladenMass!==void 0){this.#top.UnladenMass+=this.#moduleMass(next,nextStats)-this.#moduleMass(previous)}if(this.#top.CargoCapacity!==void 0){this.#top.CargoCapacity+=this.#moduleCapacity(next,"CargoCapacity","cargoCapacity",nextStats)-this.#moduleCapacity(previous,"CargoCapacity","cargoCapacity")}if(this.#top.FuelCapacity?.Main!==void 0){const reserve=this.#top.FuelCapacity.Reserve;this.#top.FuelCapacity={Main:this.#top.FuelCapacity.Main+this.#moduleCapacity(next,"FuelCapacity","fuelCapacity",nextStats)-this.#moduleCapacity(previous,"FuelCapacity","fuelCapacity"),...reserve===void 0?{}:{Reserve:reserve}}}if(normalizeKey(previous?.Item,FITTED_ITEM)===normalizeKey(next?.Item,FITTED_ITEM)){return}if(previous!==null&&isCargoHatchSlot(previous.Slot)||next!==null&&isCargoHatchSlot(next.Slot)){return}delete this.#top.ModulesValue;delete this.#top.Rebuy}#moduleMass(module,statsOverride){if(module===null)return 0;if(isCargoHatchSlot(module.Slot))return 0;const modified=getLoadoutModifier(module,"Mass");if(modified!==null)return modified;return(statsOverride??this.#statsFor(module))?.mass??0}#moduleCapacity(module,modifierLabel,field,statsOverride){if(module===null)return 0;if(isCargoHatchSlot(module.Slot))return 0;const modified=getLoadoutModifier(module,modifierLabel);if(modified!==null)return modified;return(statsOverride??this.#statsFor(module))?.[field]??0}#frameShiftDrive(){for(const m of this.#modules.values()){const stats=this.#statsFor(m);if(stats?.slot==="frameShiftDrive")return{module:m,stats:stats}}return void 0}#resolveDrive(){const fsd=this.#frameShiftDrive();if(!fsd)return null;const{module:fsdModule,stats:base}=fsd;if(base.fuelMul===void 0||base.fuelPower===void 0){throw new TypeError(`ShipLoadout: the fitted record for frame shift drive "${truncate(fsdModule.Item)}" has no jump constants`)}const optMass=getLoadoutModifier(fsdModule,"FSDOptimalMass")??base.optMass;const maxFuel=getLoadoutModifier(fsdModule,"MaxFuelPerJump")??base.maxFuel;if(optMass===void 0||maxFuel===void 0){const missing=[...optMass===void 0?["optMass"]:[],...maxFuel===void 0?["maxFuel"]:[]];throw new TypeError(`ShipLoadout: the fitted record for frame shift drive "${truncate(fsdModule.Item)}" has no ${missing.join(" or ")}`)}return{optMass:optMass,maxFuel:maxFuel,fuelMul:base.fuelMul,fuelPower:base.fuelPower,jumpBoost:this.#resolveJumpBoost()}}#resolveJumpBoost(){for(const m of this.#modules.values()){const stats=this.#statsFor(m);if(stats?.engineeringGroup!=="fsdBoosters"&&(stats?.jumpBoost===void 0||stats.jumpBoost===0)){continue}if(m.On===false)continue;if(stats?.jumpBoost===void 0){throw new TypeError(`ShipLoadout: the fitted record for FSD booster "${truncate(m.Item)}" has no jumpBoost`)}return stats.jumpBoost}return 0}#statsFor(module){if(module===null)return null;const stats=this.#moduleStats.get(module.Slot)??builtInModuleBySymbol(module.Item,FITTED_ITEM);if(stats)return stats;return isBuiltInHullModule(module)?builtInModuleBySymbol("ModularCargoBayDoor","ShipLoadout: built-in module"):null}};export{LoadoutEditError,ShipLoadout};//# sourceMappingURL=chunk-J4PCK4RV.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ships/internal/loadout-export.ts","../src/ships/ship-loadout.ts"],"names":["fixedSlotReason","validateLoadout","calculateModuleLimits","publishLoadoutInternals","normalizeLoadoutEvent","preEngineeredVariantFor","moduleFitProblem","effectiveModule","moduleFitError","getShipBySymbol","parseSlef","toSlef","stringifySlef","getLoadoutModifier","getSourceModuleValue","statesInertModifiers","rolledOverFixedArticle","isNonOutfittingSlot","isBuiltInHullModule","cloneLoadoutModule","cloneModuleStats","availableBlueprintsFor","availableExperimentalsFor","ownKeyIn","FITTED_ITEM","blueprintAvailableFor","blueprintRoutesFor","experimentalAvailableFor","primitiveEngineeringInputsFor","missingBaseLabels","journalModifiersFor","getPreEngineeredStats","getPreEngineeredJournalModifiers","getPreEngineeredModifiers","ordinaryEngineeringProof","unresolvedModifiers","matchingKeyIn","isCargoHatchSlot","orderBySlotLayout","builtInModuleBySymbol","getPreEngineeredVariants","ALL_MODULES","getExperimentalEffect","singleJumpRange","calculateUnladenMass","calculateCargoCapacity","calculateFuelCapacity","resolveBlueprintForModule","getBlueprintGrade","getDefaultLoadout","getExperimentalsForModule","baseStats","computeModifiers","labelsForDamageType","scaleForLabel","ammunitionCapacity","loadoutSlotName","parseSlotName","enumerateSlots","normalizeKey","CATALOGUE_KEY","truncate","describeValue","requireString","requireStringIfPresent","deepFreeze","REBUY_FRACTION","exportLoadoutEvent","input","options","fromSource","credits","source","sourcePurchase","totals","sourceTotalsVoided","sourceTotalsHold","modules","hullValue","retailHullValue","modulesValue","computedModulesValue","statsFor","rebuy","Math","trunc","Ship","shipSymbol","toLowerCase","shipName","ShipName","shipIdent","ShipIdent","HullValue","ModulesValue","UnladenMass","unladenMass","CargoCapacity","cargoCapacity","maxJumpRange","MaxJumpRange","FuelCapacity","Main","fuelCapacity","main","Reserve","reserve","Rebuy","Modules","exportModules","ordered","moduleOrder","slotOrderedModules","layout","values","map","module","on","On","explicitPower","priority","Priority","value","sourceModuleValue","moduleValue","Slot","Item","Health","Value","Engineering","sum","stats","cost","SOURCE_ITEM","entry","item","moduleValues","key","slot","fitted","get","SLOT_KEY","FITTED_SLOT","LoadoutEditError","TypeError","code","constraint","params","constructor","message","super","this","structuredClone","experimentalEffectUnsupported","kind","engineeringNormalizationUnsupported","weighable","tonnes","Number","isFinite","AGGREGATE_STATS","ShipLoadout","_ShipLoadout","ship","moduleStats","primitiveModifiers","top","importOutcomes","slotCache","Map","layoutCache","effectiveModules","modulesForEffectiveStats","moduleForEffectiveStats","resolveDrive","frameShiftDriveModule","frameShiftDrive","calculationModules","statedMainFuel","fromSlef","index","entries","length","imported","data","fromImported","fromLoadout","event","outcomes","loadout","unresolved","rollStatedRecipe","push","engineering","BlueprintName","stated","Modifiers","has","variant","acquisition","Level","grade","applyBlueprint","quality","Quality","ExperimentalEffect","experimentalEffectSymbol","action","sourceSymbol","blueprintSymbol","passedOver","preEngineeredVariant","error","RangeError","empty","requested","symbol","filter","parsed","computedUnladenMass","hullMass","cap","Object","freeze","computed","computedFuelCapacity","computedCargoCapacity","reserveFuelCapacity","validation","slots","byKey","builtIn","fitProblem","thrusterMaxMass","maxMass","requiresKnownSlot","fitError","fitConstraint","fitParams","exclusionGroup","limitGroup","limitIncrease","dry","fuel","cargo","mass","cached","currentLimits","moduleLimits","moduleStatsAt","fixedReason","immovableReason","moduleLimitRegression","name","fittedModuleAt","removable","set","slotKey","fittedModuleFor","raw","effective","health","effectiveStats","ammunition","fittedModules","keys","flatMap","availableBlueprints","availableExperimentalEffects","modulesForSlot","requireSlot","occupied","Set","group","currentStats","grantOnly","repairFixedMount","wanted","fittedKey","resultSlot","canonicalKey","status","reason","current","valid","defaultModule","find","ownKey","replacement","replacementStats","replaceModule","setModule","catalogued","field","problem","conflict","previousSlot","previousSymbol","limitProblem","count","limit","removeModule","candidate","wantedGrade","wantedQuality","wantedExperimental","fittedStats","recipe","named","written","trim","resolved","some","isInteger","experimental","engineeringLocked","offered","blueprint","route","join","engineeringBaseStats","base","canonical","missing","features","modifiers","damageDistribution","type","label","damageModifier","Label","OriginalValue","setExperimentalEffect","previous","effect","restoresBakedEffect","stock","labels","originalEffect","withoutEffect","adjusted","currentEffect","blueprintGrade","previousExperimentalEffectSymbol","completeEngineeringGrade","previousQuality","proof","setPreEngineeredVariant","known","journalModifiers","clearEngineering","bare","setModuleEnabled","patchModule","setModulePriority","patch","clear","toLoadoutEvent","exportableJumpRange","hullCost","outcome","header","toSlefString","indent","drive","tank","min","maxFuel","s","moduleMass","moduleCapacity","usage","increase","amount","baseLimit","excess","max","adjustImportedFigures","delete","next","nextStats","statsOverride","modified","modifierLabel","m","fsd","fsdModule","fuelMul","fuelPower","optMass","jumpBoost","resolveJumpBoost","engineeringGroup"],"mappings":"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"}
@@ -1 +0,0 @@
1
- import{ENCODED_MATERIALS}from"./chunk-AIEC3LBT.js";import{MANUFACTURED_MATERIALS}from"./chunk-ITKZKREP.js";import{RAW_MATERIALS}from"./chunk-Q6YDPREF.js";var ALL_MATERIALS=Object.freeze([...RAW_MATERIALS,...MANUFACTURED_MATERIALS,...ENCODED_MATERIALS]);export{ALL_MATERIALS};//# sourceMappingURL=chunk-JO52LYO3.js.map
@@ -1 +0,0 @@
1
- import{getLocalizedName,createLocalizedNameIndex}from"./chunk-RVIYOHYF.js";var ship_manufacturer_names_default={SideWinder:{en:"Faulcon DeLacy"},Eagle:{en:"Core Dynamics"},Hauler:{en:"Zorgon Peterson"},Adder:{en:"Zorgon Peterson"},Viper:{en:"Faulcon DeLacy"},CobraMkIII:{en:"Faulcon DeLacy"},Type6:{en:"Lakon Spaceways"},Dolphin:{en:"Saud Kruger"},Type7:{en:"Lakon Spaceways"},Asp:{en:"Lakon Spaceways"},Vulture:{en:"Core Dynamics"},Empire_Trader:{en:"Gutamaya"},Federation_Dropship:{en:"Core Dynamics"},Orca:{en:"Saud Kruger"},Type9:{en:"Lakon Spaceways"},Python:{en:"Faulcon DeLacy"},BelugaLiner:{en:"Saud Kruger"},FerDeLance:{en:"Zorgon Peterson"},Anaconda:{en:"Faulcon DeLacy"},Federation_Corvette:{en:"Core Dynamics"},Cutter:{en:"Gutamaya"},DiamondBack:{en:"Lakon Spaceways"},Empire_Courier:{en:"Gutamaya"},DiamondBackXL:{en:"Lakon Spaceways"},Empire_Eagle:{en:"Gutamaya"},Federation_Dropship_MkII:{en:"Core Dynamics"},Federation_Gunship:{en:"Core Dynamics"},Viper_MkIV:{en:"Faulcon DeLacy"},CobraMkIV:{en:"Faulcon DeLacy"},Independant_Trader:{en:"Lakon Spaceways"},Asp_Scout:{en:"Lakon Spaceways"},Type9_Military:{en:"Lakon Spaceways"},Krait_MkII:{en:"Faulcon DeLacy"},TypeX:{en:"Lakon Spaceways"},TypeX_2:{en:"Lakon Spaceways"},TypeX_3:{en:"Lakon Spaceways"},Krait_Light:{en:"Faulcon DeLacy"},Mamba:{en:"Zorgon Peterson"},Python_NX:{en:"Faulcon DeLacy"},Type8:{en:"Lakon Spaceways"},Mandalay:{en:"Zorgon Peterson"},CobraMkV:{en:"Faulcon DeLacy"},Corsair:{en:"Gutamaya"},PantherMkII:{en:"Zorgon Peterson"},LakonMiner:{en:"Lakon Spaceways"},Explorer_NX:{en:"Zorgon Peterson"},SmallCombat01_NX:{en:"Core Dynamics"},MediumTransport01:{en:"Zorgon Peterson"}};var ship_names_default={SideWinder:{en:"Sidewinder",es:"Sidewinder",fr:"Sidewinder",pt:"Sidewinder",ru:"Sidewinder"},Eagle:{en:"Eagle",es:"Eagle",fr:"Eagle",pt:"Eagle",ru:"Eagle"},Hauler:{en:"Hauler",es:"Hauler",fr:"Hauler",pt:"Hauler",ru:"Hauler"},Adder:{en:"Adder",es:"Adder",fr:"Adder",pt:"Adder",ru:"Adder"},Viper:{en:"Viper Mk III",es:"Viper Mk III",fr:"Viper Mk III",pt:"Viper Mk III",ru:"Viper Mk III"},CobraMkIII:{en:"Cobra Mk III",es:"Cobra Mk III",fr:"Cobra Mk III",pt:"Cobra Mk III",ru:"Cobra Mk III"},Type6:{en:"Type-6 Transporter",es:"Type-6 Transporter",fr:"Type-6 Transporter",pt:"Type-6 Transporter",ru:"Type-6 Transporter"},Dolphin:{en:"Dolphin",es:"Dolphin",fr:"Dolphin",pt:"Dolphin",ru:"Dolphin"},Type7:{en:"Type-7 Transporter",es:"Type-7 Transporter",fr:"Type-7 Transporter",pt:"Type-7 Transporter",ru:"Type-7 Transporter"},Asp:{en:"Asp Explorer",es:"Asp Explorer",fr:"Asp Explorer",pt:"Asp Explorer",ru:"Asp Explorer"},Vulture:{en:"Vulture",es:"Vulture",fr:"Vulture",pt:"Vulture",ru:"Vulture"},Empire_Trader:{en:"Imperial Clipper",es:"Imperial Clipper",fr:"Imperial Clipper",pt:"Imperial Clipper",ru:"Imperial Clipper"},Federation_Dropship:{en:"Federal Dropship",es:"Federal Dropship",fr:"Federal Dropship",pt:"Federal Dropship",ru:"Federal Dropship"},Orca:{en:"Orca",es:"Orca",fr:"Orca",pt:"Orca",ru:"Orca"},Type9:{en:"Type-9 Heavy",es:"Type-9 Heavy",fr:"Type-9 Heavy",pt:"Type-9 Heavy",ru:"Type-9 Heavy"},Python:{en:"Python",es:"Python",fr:"Python",pt:"Python",ru:"Python"},BelugaLiner:{en:"Beluga Liner",es:"Beluga Liner",fr:"Beluga Liner",pt:"Beluga Liner",ru:"Beluga Liner"},FerDeLance:{en:"Fer-de-Lance",es:"Fer-de-Lance",fr:"Fer-de-Lance",pt:"Fer-de-Lance",ru:"Fer-de-Lance"},Anaconda:{en:"Anaconda",es:"Anaconda",fr:"Anaconda",pt:"Anaconda",ru:"Anaconda"},Federation_Corvette:{en:"Federal Corvette",es:"Federal Corvette",fr:"Federal Corvette",pt:"Federal Corvette",ru:"Federal Corvette"},Cutter:{en:"Imperial Cutter",es:"Imperial Cutter",fr:"Imperial Cutter",pt:"Imperial Cutter",ru:"Imperial Cutter"},DiamondBack:{en:"Diamondback Scout",es:"Diamondback Scout",fr:"Diamondback Scout",pt:"Diamondback Scout",ru:"Diamondback Scout"},Empire_Courier:{en:"Imperial Courier",es:"Imperial Courier",fr:"Imperial Courier",pt:"Imperial Courier",ru:"Imperial Courier"},DiamondBackXL:{en:"Diamondback Explorer",es:"Diamondback Explorer",fr:"Diamondback Explorer",pt:"Diamondback Explorer",ru:"Diamondback Explorer"},Empire_Eagle:{en:"Imperial Eagle",es:"Imperial Eagle",fr:"Imperial Eagle",pt:"Imperial Eagle",ru:"Imperial Eagle"},Federation_Dropship_MkII:{en:"Federal Assault Ship",es:"Federal Assault Ship",fr:"Federal Assault Ship",pt:"Federal Assault Ship",ru:"Federal Assault Ship"},Federation_Gunship:{en:"Federal Gunship",es:"Federal Gunship",fr:"Federal Gunship",pt:"Federal Gunship",ru:"Federal Gunship"},Viper_MkIV:{en:"Viper Mk IV",es:"Viper Mk IV",fr:"Viper Mk IV",pt:"Viper Mk IV",ru:"Viper Mk IV"},CobraMkIV:{en:"Cobra Mk IV",es:"Cobra Mk IV",fr:"Cobra Mk IV",pt:"Cobra Mk IV",ru:"Cobra Mk IV"},Independant_Trader:{en:"Keelback",es:"Keelback",fr:"Keelback",pt:"Keelback",ru:"Keelback"},Asp_Scout:{en:"Asp Scout",es:"Asp Scout",fr:"Asp Scout",pt:"Asp Scout",ru:"Asp Scout"},Type9_Military:{en:"Type-10 Defender",es:"Type-10 Defender",fr:"Type-10 Defender",pt:"Type-10 Defender",ru:"Type-10 Defender"},Krait_MkII:{en:"Krait Mk II",es:"Krait Mk II",fr:"Krait Mk II",pt:"Krait Mk II",ru:"Krait Mk II"},TypeX:{en:"Alliance Chieftain",es:"Alliance Chieftain",fr:"Alliance Chieftain",pt:"Alliance Chieftain",ru:"Alliance Chieftain"},TypeX_2:{en:"Alliance Crusader",es:"Alliance Crusader",fr:"Alliance Crusader",pt:"Alliance Crusader",ru:"Alliance Crusader"},TypeX_3:{en:"Alliance Challenger",es:"Alliance Challenger",fr:"Alliance Challenger",pt:"Alliance Challenger",ru:"Alliance Challenger"},Krait_Light:{en:"Krait Phantom",es:"Krait Phantom",fr:"Krait Phantom",pt:"Krait Phantom",ru:"Krait Phantom"},Mamba:{en:"Mamba",es:"Mamba",fr:"Mamba",pt:"Mamba",ru:"Mamba"},Python_NX:{en:"Python Mk II",es:"Python Mk II",fr:"Python Mk II",ru:"Python Mk II"},Type8:{en:"Type-8 Transporter",es:"Type-8 Transporter",fr:"Type-8 Transporter",ru:"Type-8 Transporter"},Mandalay:{en:"Mandalay",es:"Mandalay",fr:"Mandalay",ru:"Mandalay"},CobraMkV:{en:"Cobra Mk V",es:"Cobra Mk V",fr:"Cobra Mk V",ru:"Cobra Mk V"},Corsair:{en:"Corsair",es:"Corsair",fr:"Corsair",ru:"Corsair"},PantherMkII:{en:"Panther Clipper Mk II",es:"Panther Clipper Mk II",fr:"Panther Clipper Mk II",ru:"Panther Clipper Mk II"},LakonMiner:{en:"Type-11 Prospector",es:"Type-11 Prospector",ru:"Type-11 Prospector"},Explorer_NX:{en:"Caspian Explorer",es:"Caspian Explorer",ru:"Caspian Explorer"},SmallCombat01_NX:{en:"Kestrel Mk II",es:"Kestrel Mk II",ru:"Kestrel Mk II"},MediumTransport01:{en:"Lynx Highliner",es:"Lynx Highliner",ru:"Lynx Highliner"}};var SHIP_NAMES=/* @__PURE__ */createLocalizedNameIndex(ship_names_default);var MANUFACTURER_NAMES=/* @__PURE__ */createLocalizedNameIndex(ship_manufacturer_names_default);function getShipName(symbol,locale){return getLocalizedName(SHIP_NAMES,symbol,locale,"getShipName","symbol")}function getShipManufacturer(symbol,locale){return getLocalizedName(MANUFACTURER_NAMES,symbol,locale,"getShipManufacturer","symbol")}export{getShipManufacturer,getShipName};//# sourceMappingURL=chunk-KJFUNIIY.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/i18n/ships.ts"],"names":["getLocalizedName","createLocalizedNameIndex","ship_manufacturer_names_default","ship_names_default","SHIP_NAMES","MANUFACTURER_NAMES","getShipName","symbol","locale","getShipManufacturer"],"mappings":"O,+0MAUA,IAAMI,0BAAAH,yBAAsDE,oBAC5D,IAAME,kCAAqCJ,yBACvCC,iCAmBG,SAASI,YAAYC,OAAgBC,QACxC,OAAOR,iBAAiBI,WAAYG,OAAQC,OAAQ,cAAe,SACvE,CAiBO,SAASC,oBAAoBF,OAAgBC,QAChD,OAAOR,iBAAiBK,mBAAoBE,OAAQC,OAAQ,sBAAuB,SACvF,QAAAC,oBAAAH"}