@elite-dangerous-almanac/core 0.1.0-beta.1
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.
- package/LICENSE +48 -0
- package/PROVENANCE/SNAPSHOTS.md +36 -0
- package/PROVENANCE/astro/SOURCES.md +94 -0
- package/PROVENANCE/commodities/SOURCES.md +41 -0
- package/PROVENANCE/materials/SOURCES.md +69 -0
- package/PROVENANCE/ships/SOURCES.md +1580 -0
- package/README.md +148 -0
- package/THIRD_PARTY_NOTICES.md +202 -0
- package/dist/astro/codex-region-lookup.d.ts +169 -0
- package/dist/astro/codex-region-lookup.js +1 -0
- package/dist/astro/codex-region-lookup.js.map +1 -0
- package/dist/astro/codex-region.d.ts +149 -0
- package/dist/astro/codex-region.js +1 -0
- package/dist/astro/codex-region.js.map +1 -0
- package/dist/astro/galaxy-grid.d.ts +83 -0
- package/dist/astro/galaxy-grid.js +1 -0
- package/dist/astro/galaxy-grid.js.map +1 -0
- package/dist/astro/hand-authored-regions.d.ts +121 -0
- package/dist/astro/hand-authored-regions.js +1 -0
- package/dist/astro/hand-authored-regions.js.map +1 -0
- package/dist/astro/index.d.ts +140 -0
- package/dist/astro/index.js +1 -0
- package/dist/astro/index.js.map +1 -0
- package/dist/astro/mass-code.d.ts +55 -0
- package/dist/astro/mass-code.js +1 -0
- package/dist/astro/mass-code.js.map +1 -0
- package/dist/astro/naming-region-origins.d.ts +4 -0
- package/dist/astro/naming-region-origins.js +1 -0
- package/dist/astro/naming-region-origins.js.map +1 -0
- package/dist/astro/nebulae-all.d.ts +40 -0
- package/dist/astro/nebulae-all.js +1 -0
- package/dist/astro/nebulae-all.js.map +1 -0
- package/dist/astro/nebulae-planetary.d.ts +37 -0
- package/dist/astro/nebulae-planetary.js +1 -0
- package/dist/astro/nebulae-planetary.js.map +1 -0
- package/dist/astro/nebulae-procgen.d.ts +36 -0
- package/dist/astro/nebulae-procgen.js +1 -0
- package/dist/astro/nebulae-procgen.js.map +1 -0
- package/dist/astro/nebulae-real.d.ts +37 -0
- package/dist/astro/nebulae-real.js +1 -0
- package/dist/astro/nebulae-real.js.map +1 -0
- package/dist/astro/nebulae.d.ts +169 -0
- package/dist/astro/nebulae.js +1 -0
- package/dist/astro/nebulae.js.map +1 -0
- package/dist/astro/permit-locked-regions.d.ts +54 -0
- package/dist/astro/permit-locked-regions.js +1 -0
- package/dist/astro/permit-locked-regions.js.map +1 -0
- package/dist/astro/permit-locked-systems.d.ts +74 -0
- package/dist/astro/permit-locked-systems.js +1 -0
- package/dist/astro/permit-locked-systems.js.map +1 -0
- package/dist/astro/permit-locks.d.ts +130 -0
- package/dist/astro/permit-locks.js +1 -0
- package/dist/astro/permit-locks.js.map +1 -0
- package/dist/astro/procedural-system.d.ts +228 -0
- package/dist/astro/procedural-system.js +1 -0
- package/dist/astro/procedural-system.js.map +1 -0
- package/dist/astro/sector-name.d.ts +87 -0
- package/dist/astro/sector-name.js +1 -0
- package/dist/astro/sector-name.js.map +1 -0
- package/dist/astro/system-address-input.d.ts +76 -0
- package/dist/astro/system-address-input.js +1 -0
- package/dist/astro/system-address-input.js.map +1 -0
- package/dist/astro/system-address.d.ts +4 -0
- package/dist/astro/system-address.js +1 -0
- package/dist/astro/system-address.js.map +1 -0
- package/dist/astro/system-name.d.ts +187 -0
- package/dist/astro/system-name.js +1 -0
- package/dist/astro/system-name.js.map +1 -0
- package/dist/chunk-2FHHMYDC.js +1 -0
- package/dist/chunk-2FHHMYDC.js.map +1 -0
- package/dist/chunk-462OKHXR.js +1 -0
- package/dist/chunk-462OKHXR.js.map +1 -0
- package/dist/chunk-5H74FKY7.js +1 -0
- package/dist/chunk-5H74FKY7.js.map +1 -0
- package/dist/chunk-6LUEKHO5.js +1 -0
- package/dist/chunk-6LUEKHO5.js.map +1 -0
- package/dist/chunk-76XKY2Y2.js +1 -0
- package/dist/chunk-76XKY2Y2.js.map +1 -0
- package/dist/chunk-7EE5VIHR.js +1 -0
- package/dist/chunk-7EE5VIHR.js.map +1 -0
- package/dist/chunk-A3NM7SAJ.js +1 -0
- package/dist/chunk-A3NM7SAJ.js.map +1 -0
- package/dist/chunk-A6XPYSVR.js +1 -0
- package/dist/chunk-A6XPYSVR.js.map +1 -0
- package/dist/chunk-AA3K5XUE.js +1 -0
- package/dist/chunk-AA3K5XUE.js.map +1 -0
- package/dist/chunk-AVZI6VKA.js +1 -0
- package/dist/chunk-AVZI6VKA.js.map +1 -0
- package/dist/chunk-B5TT26XE.js +1 -0
- package/dist/chunk-B5TT26XE.js.map +1 -0
- package/dist/chunk-BNILZXJD.js +1 -0
- package/dist/chunk-BNILZXJD.js.map +1 -0
- package/dist/chunk-BRDQUJXV.js +1 -0
- package/dist/chunk-BRDQUJXV.js.map +1 -0
- package/dist/chunk-BTPV5CIF.js +1 -0
- package/dist/chunk-BTPV5CIF.js.map +1 -0
- package/dist/chunk-CI3ACMRA.js +1 -0
- package/dist/chunk-CI3ACMRA.js.map +1 -0
- package/dist/chunk-COE5ADYJ.js +1 -0
- package/dist/chunk-COE5ADYJ.js.map +1 -0
- package/dist/chunk-CWAX3BSH.js +1 -0
- package/dist/chunk-CWAX3BSH.js.map +1 -0
- package/dist/chunk-DACZE3HX.js +1 -0
- package/dist/chunk-DACZE3HX.js.map +1 -0
- package/dist/chunk-DURKO7JU.js +1 -0
- package/dist/chunk-DURKO7JU.js.map +1 -0
- package/dist/chunk-E45EDCYH.js +1 -0
- package/dist/chunk-E45EDCYH.js.map +1 -0
- package/dist/chunk-ELIZXUMI.js +1 -0
- package/dist/chunk-ELIZXUMI.js.map +1 -0
- package/dist/chunk-EYGVDJ2I.js +1 -0
- package/dist/chunk-EYGVDJ2I.js.map +1 -0
- package/dist/chunk-FGXWVFN6.js +1 -0
- package/dist/chunk-FGXWVFN6.js.map +1 -0
- package/dist/chunk-GJCB2Z72.js +1 -0
- package/dist/chunk-GJCB2Z72.js.map +1 -0
- package/dist/chunk-HI7FCS3G.js +1 -0
- package/dist/chunk-HI7FCS3G.js.map +1 -0
- package/dist/chunk-HKXXFIRI.js +1 -0
- package/dist/chunk-HKXXFIRI.js.map +1 -0
- package/dist/chunk-HTB52N6S.js +1 -0
- package/dist/chunk-HTB52N6S.js.map +1 -0
- package/dist/chunk-I7PIDRMU.js +1 -0
- package/dist/chunk-I7PIDRMU.js.map +1 -0
- package/dist/chunk-IH4NXKVW.js +1 -0
- package/dist/chunk-IH4NXKVW.js.map +1 -0
- package/dist/chunk-INNFH37U.js +1 -0
- package/dist/chunk-INNFH37U.js.map +1 -0
- package/dist/chunk-J2PNZQY4.js +1 -0
- package/dist/chunk-J2PNZQY4.js.map +1 -0
- package/dist/chunk-JQG4C67D.js +1 -0
- package/dist/chunk-JQG4C67D.js.map +1 -0
- package/dist/chunk-JTQVWIGL.js +1 -0
- package/dist/chunk-JTQVWIGL.js.map +1 -0
- package/dist/chunk-JWJ7RSZC.js +1 -0
- package/dist/chunk-JWJ7RSZC.js.map +1 -0
- package/dist/chunk-K3AMV27L.js +1 -0
- package/dist/chunk-K3AMV27L.js.map +1 -0
- package/dist/chunk-K7F6WC4T.js +1 -0
- package/dist/chunk-K7F6WC4T.js.map +1 -0
- package/dist/chunk-K7L7SMIR.js +1 -0
- package/dist/chunk-K7L7SMIR.js.map +1 -0
- package/dist/chunk-KG4EWDZZ.js +1 -0
- package/dist/chunk-KG4EWDZZ.js.map +1 -0
- package/dist/chunk-KMFUCORC.js +1 -0
- package/dist/chunk-KMFUCORC.js.map +1 -0
- package/dist/chunk-L2ZZXEZM.js +1 -0
- package/dist/chunk-L2ZZXEZM.js.map +1 -0
- package/dist/chunk-L747RVPO.js +1 -0
- package/dist/chunk-L747RVPO.js.map +1 -0
- package/dist/chunk-MFV4VZFP.js +1 -0
- package/dist/chunk-MFV4VZFP.js.map +1 -0
- package/dist/chunk-NWPK6Q3S.js +1 -0
- package/dist/chunk-NWPK6Q3S.js.map +1 -0
- package/dist/chunk-PMJG7PHU.js +1 -0
- package/dist/chunk-PMJG7PHU.js.map +1 -0
- package/dist/chunk-PP2VSA6M.js +1 -0
- package/dist/chunk-PP2VSA6M.js.map +1 -0
- package/dist/chunk-Q22LXT53.js +1 -0
- package/dist/chunk-Q22LXT53.js.map +1 -0
- package/dist/chunk-Q5MR36RW.js +1 -0
- package/dist/chunk-Q5MR36RW.js.map +1 -0
- package/dist/chunk-Q5XOGATC.js +1 -0
- package/dist/chunk-Q5XOGATC.js.map +1 -0
- package/dist/chunk-QTDBO7R2.js +1 -0
- package/dist/chunk-QTDBO7R2.js.map +1 -0
- package/dist/chunk-R4OD62HV.js +1 -0
- package/dist/chunk-R4OD62HV.js.map +1 -0
- package/dist/chunk-RD73TFGS.js +1 -0
- package/dist/chunk-RD73TFGS.js.map +1 -0
- package/dist/chunk-RIT6MOO5.js +1 -0
- package/dist/chunk-RIT6MOO5.js.map +1 -0
- package/dist/chunk-RVSXKQHE.js +1 -0
- package/dist/chunk-RVSXKQHE.js.map +1 -0
- package/dist/chunk-S4DBNX2B.js +1 -0
- package/dist/chunk-S4DBNX2B.js.map +1 -0
- package/dist/chunk-S4UWCHL6.js +1 -0
- package/dist/chunk-S4UWCHL6.js.map +1 -0
- package/dist/chunk-SQS7672E.js +1 -0
- package/dist/chunk-SQS7672E.js.map +1 -0
- package/dist/chunk-TLNHETGC.js +1 -0
- package/dist/chunk-TLNHETGC.js.map +1 -0
- package/dist/chunk-U6TMCYA6.js +1 -0
- package/dist/chunk-U6TMCYA6.js.map +1 -0
- package/dist/chunk-V4C6FIE2.js +1 -0
- package/dist/chunk-V4C6FIE2.js.map +1 -0
- package/dist/chunk-VXVUEF5U.js +1 -0
- package/dist/chunk-VXVUEF5U.js.map +1 -0
- package/dist/chunk-VZXL5KBR.js +1 -0
- package/dist/chunk-VZXL5KBR.js.map +1 -0
- package/dist/chunk-VZZ2XIRE.js +1 -0
- package/dist/chunk-VZZ2XIRE.js.map +1 -0
- package/dist/chunk-WV5YM7H5.js +1 -0
- package/dist/chunk-WV5YM7H5.js.map +1 -0
- package/dist/chunk-Y2MUIE5W.js +1 -0
- package/dist/chunk-Y2MUIE5W.js.map +1 -0
- package/dist/chunk-Z43DN4PY.js +1 -0
- package/dist/chunk-Z43DN4PY.js.map +1 -0
- package/dist/chunk-Z4GTTB7I.js +1 -0
- package/dist/chunk-Z4GTTB7I.js.map +1 -0
- package/dist/chunk-Z4OUB4SJ.js +1 -0
- package/dist/chunk-Z4OUB4SJ.js.map +1 -0
- package/dist/chunk-ZFT56QFR.js +1 -0
- package/dist/chunk-ZFT56QFR.js.map +1 -0
- package/dist/chunk-ZNCXENNB.js +1 -0
- package/dist/chunk-ZNCXENNB.js.map +1 -0
- package/dist/commodities/commodities-all.d.ts +25 -0
- package/dist/commodities/commodities-all.js +1 -0
- package/dist/commodities/commodities-all.js.map +1 -0
- package/dist/commodities/commodities-rare.d.ts +34 -0
- package/dist/commodities/commodities-rare.js +1 -0
- package/dist/commodities/commodities-rare.js.map +1 -0
- package/dist/commodities/commodities-standard.d.ts +34 -0
- package/dist/commodities/commodities-standard.js +1 -0
- package/dist/commodities/commodities-standard.js.map +1 -0
- package/dist/commodities/commodities.d.ts +142 -0
- package/dist/commodities/commodities.js +1 -0
- package/dist/commodities/commodities.js.map +1 -0
- package/dist/commodities/index.d.ts +30 -0
- package/dist/commodities/index.js +1 -0
- package/dist/commodities/index.js.map +1 -0
- package/dist/galactic-position-shLkm4Qg.d.ts +30 -0
- package/dist/materials/index.d.ts +47 -0
- package/dist/materials/index.js +1 -0
- package/dist/materials/index.js.map +1 -0
- package/dist/materials/materials-all.d.ts +26 -0
- package/dist/materials/materials-all.js +1 -0
- package/dist/materials/materials-all.js.map +1 -0
- package/dist/materials/materials-encoded.d.ts +31 -0
- package/dist/materials/materials-encoded.js +1 -0
- package/dist/materials/materials-encoded.js.map +1 -0
- package/dist/materials/materials-manufactured.d.ts +32 -0
- package/dist/materials/materials-manufactured.js +1 -0
- package/dist/materials/materials-manufactured.js.map +1 -0
- package/dist/materials/materials-raw.d.ts +31 -0
- package/dist/materials/materials-raw.js +1 -0
- package/dist/materials/materials-raw.js.map +1 -0
- package/dist/materials/materials.d.ts +277 -0
- package/dist/materials/materials.js +1 -0
- package/dist/materials/materials.js.map +1 -0
- package/dist/materials/micro-resources-all.d.ts +28 -0
- package/dist/materials/micro-resources-all.js +1 -0
- package/dist/materials/micro-resources-all.js.map +1 -0
- package/dist/materials/micro-resources-component.d.ts +29 -0
- package/dist/materials/micro-resources-component.js +1 -0
- package/dist/materials/micro-resources-component.js.map +1 -0
- package/dist/materials/micro-resources-consumable.d.ts +29 -0
- package/dist/materials/micro-resources-consumable.js +1 -0
- package/dist/materials/micro-resources-consumable.js.map +1 -0
- package/dist/materials/micro-resources-data.d.ts +29 -0
- package/dist/materials/micro-resources-data.js +1 -0
- package/dist/materials/micro-resources-data.js.map +1 -0
- package/dist/materials/micro-resources-item.d.ts +29 -0
- package/dist/materials/micro-resources-item.js +1 -0
- package/dist/materials/micro-resources-item.js.map +1 -0
- package/dist/materials/micro-resources.d.ts +136 -0
- package/dist/materials/micro-resources.js +1 -0
- package/dist/materials/micro-resources.js.map +1 -0
- package/dist/ship-loadout-Ba63RDf-.d.ts +1059 -0
- package/dist/ships/ammunition.d.ts +107 -0
- package/dist/ships/ammunition.js +1 -0
- package/dist/ships/ammunition.js.map +1 -0
- package/dist/ships/armour.d.ts +134 -0
- package/dist/ships/armour.js +1 -0
- package/dist/ships/armour.js.map +1 -0
- package/dist/ships/blueprint-costs.d.ts +128 -0
- package/dist/ships/blueprint-costs.js +1 -0
- package/dist/ships/blueprint-costs.js.map +1 -0
- package/dist/ships/blueprint-journal.d.ts +116 -0
- package/dist/ships/blueprint-journal.js +1 -0
- package/dist/ships/blueprint-journal.js.map +1 -0
- package/dist/ships/blueprints.d.ts +103 -0
- package/dist/ships/blueprints.js +1 -0
- package/dist/ships/blueprints.js.map +1 -0
- package/dist/ships/decorative-modifications.d.ts +176 -0
- package/dist/ships/decorative-modifications.js +1 -0
- package/dist/ships/decorative-modifications.js.map +1 -0
- package/dist/ships/engineering-options.d.ts +246 -0
- package/dist/ships/engineering-options.js +1 -0
- package/dist/ships/engineering-options.js.map +1 -0
- package/dist/ships/engineering.d.ts +229 -0
- package/dist/ships/engineering.js +1 -0
- package/dist/ships/engineering.js.map +1 -0
- package/dist/ships/experimental-effect-costs.d.ts +56 -0
- package/dist/ships/experimental-effect-costs.js +1 -0
- package/dist/ships/experimental-effect-costs.js.map +1 -0
- package/dist/ships/experimental-effects.d.ts +62 -0
- package/dist/ships/experimental-effects.js +1 -0
- package/dist/ships/experimental-effects.js.map +1 -0
- package/dist/ships/index.d.ts +205 -0
- package/dist/ships/index.js +1 -0
- package/dist/ships/index.js.map +1 -0
- package/dist/ships/jump-range.d.ts +115 -0
- package/dist/ships/jump-range.js +1 -0
- package/dist/ships/jump-range.js.map +1 -0
- package/dist/ships/loadout-calculations.d.ts +109 -0
- package/dist/ships/loadout-calculations.js +1 -0
- package/dist/ships/loadout-calculations.js.map +1 -0
- package/dist/ships/loadout-validation.d.ts +80 -0
- package/dist/ships/loadout-validation.js +1 -0
- package/dist/ships/loadout-validation.js.map +1 -0
- package/dist/ships/module-capabilities.d.ts +205 -0
- package/dist/ships/module-capabilities.js +1 -0
- package/dist/ships/module-capabilities.js.map +1 -0
- package/dist/ships/modules-all.d.ts +43 -0
- package/dist/ships/modules-all.js +1 -0
- package/dist/ships/modules-all.js.map +1 -0
- package/dist/ships/modules-core.d.ts +40 -0
- package/dist/ships/modules-core.js +1 -0
- package/dist/ships/modules-core.js.map +1 -0
- package/dist/ships/modules-hardpoint.d.ts +42 -0
- package/dist/ships/modules-hardpoint.js +1 -0
- package/dist/ships/modules-hardpoint.js.map +1 -0
- package/dist/ships/modules-internal.d.ts +40 -0
- package/dist/ships/modules-internal.js +1 -0
- package/dist/ships/modules-internal.js.map +1 -0
- package/dist/ships/modules-utility.d.ts +40 -0
- package/dist/ships/modules-utility.js +1 -0
- package/dist/ships/modules-utility.js.map +1 -0
- package/dist/ships/modules.d.ts +755 -0
- package/dist/ships/modules.js +1 -0
- package/dist/ships/modules.js.map +1 -0
- package/dist/ships/power.d.ts +168 -0
- package/dist/ships/power.js +1 -0
- package/dist/ships/power.js.map +1 -0
- package/dist/ships/pre-engineered-stats.d.ts +147 -0
- package/dist/ships/pre-engineered-stats.js +1 -0
- package/dist/ships/pre-engineered-stats.js.map +1 -0
- package/dist/ships/pre-engineered.d.ts +215 -0
- package/dist/ships/pre-engineered.js +1 -0
- package/dist/ships/pre-engineered.js.map +1 -0
- package/dist/ships/resistances.d.ts +208 -0
- package/dist/ships/resistances.js +1 -0
- package/dist/ships/resistances.js.map +1 -0
- package/dist/ships/shields.d.ts +221 -0
- package/dist/ships/shields.js +1 -0
- package/dist/ships/shields.js.map +1 -0
- package/dist/ships/ship-loadout.d.ts +16 -0
- package/dist/ships/ship-loadout.js +1 -0
- package/dist/ships/ship-loadout.js.map +1 -0
- package/dist/ships/ships.d.ts +191 -0
- package/dist/ships/ships.js +1 -0
- package/dist/ships/ships.js.map +1 -0
- package/dist/ships/slef.d.ts +318 -0
- package/dist/ships/slef.js +1 -0
- package/dist/ships/slef.js.map +1 -0
- package/dist/ships/slots.d.ts +418 -0
- package/dist/ships/slots.js +1 -0
- package/dist/ships/slots.js.map +1 -0
- package/dist/ships/source-purchase.d.ts +132 -0
- package/dist/ships/source-purchase.js +1 -0
- package/dist/ships/source-purchase.js.map +1 -0
- package/dist/ships/weapons.d.ts +380 -0
- package/dist/ships/weapons.js +1 -0
- package/dist/ships/weapons.js.map +1 -0
- package/dist/system-address-DYsN1qOT.d.ts +313 -0
- package/package.json +375 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/materials/materials-encoded.ts"],"names":["buildMaterialCatalogue","materials_encoded_default","ENCODED_MATERIALS"],"mappings":"O,ooKA8BO,IAAME,kBAAyCF,uBAClDC,0BACA,kBACJC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{requireStringIfPresent}from"./chunk-B5TT26XE.js";import{deepFreeze}from"./chunk-DURKO7JU.js";function sourcePurchaseFromLoadout(event){const bySlot=/* @__PURE__ */new Map;for(const module of event.Modules){if(module.Value===void 0)continue;bySlot.set(module.Slot,{slot:module.Slot,item:module.Item,value:module.Value})}if(event.HullValue===void 0&&event.ModulesValue===void 0&&event.Rebuy===void 0&&bySlot.size===0){return null}return deepFreeze({hullValue:event.HullValue??null,modulesValue:event.ModulesValue??null,rebuy:event.Rebuy??null,moduleValues:[...bySlot.values()],moduleCount:event.Modules.length})}function getSourceModuleValue(record,slotKey){requireStringIfPresent(slotKey,"getSourceModuleValue: slotKey");for(const entry of record.moduleValues){if(entry.slot===slotKey)return entry}const wanted=slotKey?.toLowerCase();for(const entry of record.moduleValues){if(entry.slot.toLowerCase()===wanted)return entry}return null}function sumSourceModuleValues(record){let sum=0;for(const entry of record.moduleValues)sum+=entry.value;return sum}export{getSourceModuleValue,sourcePurchaseFromLoadout,sumSourceModuleValues};//# sourceMappingURL=chunk-QTDBO7R2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ships/source-purchase.ts"],"names":["requireStringIfPresent","deepFreeze","sourcePurchaseFromLoadout","event","bySlot","Map","module","Modules","Value","set","Slot","slot","item","Item","value","HullValue","ModulesValue","Rebuy","size","hullValue","modulesValue","rebuy","moduleValues","values","moduleCount","length","getSourceModuleValue","record","slotKey","entry","wanted","toLowerCase","sumSourceModuleValues","sum"],"mappings":"O,6FA0FO,SAASE,0BAA0BC,OACtC,MAAMC,sBAAA,IAAaC,IACnB,IAAA,MAAWC,UAAUH,MAAMI,QAAS,CAChC,GAAID,OAAOE,aAAU,EAAW,SAChCJ,OAAOK,IAAIH,OAAOI,KAAM,CACpBC,KAAML,OAAOI,KACbE,KAAMN,OAAOO,KACbC,MAAOR,OAAOE,OAEtB,CACA,GACIL,MAAMY,iBAAc,GACpBZ,MAAMa,oBAAiB,GACvBb,MAAMc,aAAU,GAChBb,OAAOc,OAAS,EAClB,CACE,OAAO,IACX,CACA,OAAOjB,WAAW,CACdkB,UAAWhB,MAAMY,WAAa,KAC9BK,aAAcjB,MAAMa,cAAgB,KACpCK,MAAOlB,MAAMc,OAAS,KACtBK,aAAc,IAAIlB,OAAOmB,UACzBC,YAAarB,MAAMI,QAAQkB,QAEnC,CAuBO,SAASC,qBACZC,OACAC,SAEA5B,uBAAuB4B,QAAS,iCAChC,IAAA,MAAWC,SAASF,OAAOL,aAAc,CACrC,GAAIO,MAAMlB,OAASiB,QAAS,OAAOC,KACvC,CACA,MAAMC,OAASF,SAASG,cACxB,IAAA,MAAWF,SAASF,OAAOL,aAAc,CACrC,GAAIO,MAAMlB,KAAKoB,gBAAkBD,OAAQ,OAAOD,KACpD,CACA,OAAO,IACX,CAsBO,SAASG,sBAAsBL,QAClC,IAAIM,IAAM,EACV,IAAA,MAAWJ,SAASF,OAAOL,aAAcW,KAAOJ,MAAMf,MACtD,OAAOmB,GACX,QAAAP,qBAAAxB,0BAAA8B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{normalizeKey}from"./chunk-S4DBNX2B.js";import{truncate}from"./chunk-B5TT26XE.js";var SYNTHETIC_HEADER=Object.freeze({appName:"",appVersion:""});var isRecord=value=>typeof value==="object"&&value!==null&&!Array.isArray(value);var isOptionalString=value=>value===void 0||typeof value==="string";var isOptionalFiniteNumber=value=>value===void 0||typeof value==="number"&&Number.isFinite(value);var isOptionalNumberInRange=(value,minimum,maximum=Number.POSITIVE_INFINITY)=>value===void 0||typeof value==="number"&&Number.isFinite(value)&&value>=minimum&&value<=maximum;var isOptionalIntegerInRange=(value,minimum,maximum)=>{if(value===void 0)return true;return typeof value==="number"&&Number.isInteger(value)&&value>=minimum&&value<=maximum};var invalid=(code,path,reason)=>({code:code,path:path,reason:reason});function diagnoseEngineering(value,path){if(!isRecord(value))return invalid("invalidEngineering",path,"must be an object");if(typeof value.BlueprintName!=="string")return invalid("invalidEngineering",`${path}.BlueprintName`,"must be a string");if(!isOptionalIntegerInRange(value.Level,1,5)||value.Level===void 0)return invalid("invalidEngineering",`${path}.Level`,"must be an integer from 1 to 5");if(!isOptionalNumberInRange(value.Quality,0,1)||value.Quality===void 0)return invalid("invalidEngineering",`${path}.Quality`,"must be a number from 0 to 1");if(!isOptionalString(value.ExperimentalEffect))return invalid("invalidEngineering",`${path}.ExperimentalEffect`,"must be a string");if(!isOptionalString(value.ExperimentalEffect_Localised))return invalid("invalidEngineering",`${path}.ExperimentalEffect_Localised`,"must be a string");if(value.Modifiers!==void 0){if(!Array.isArray(value.Modifiers))return invalid("invalidEngineering",`${path}.Modifiers`,"must be an array");for(let index=0;index<value.Modifiers.length;index+=1){const modifier=value.Modifiers[index];const modifierPath=`${path}.Modifiers[${index}]`;if(!isRecord(modifier))return invalid("invalidEngineering",modifierPath,"must be an object");if(typeof modifier.Label!=="string")return invalid("invalidEngineering",`${modifierPath}.Label`,"must be a string");if(!isOptionalFiniteNumber(modifier.Value))return invalid("invalidEngineering",`${modifierPath}.Value`,"must be a finite number");if(!isOptionalFiniteNumber(modifier.OriginalValue))return invalid("invalidEngineering",`${modifierPath}.OriginalValue`,"must be a finite number");if(!isOptionalString(modifier.ValueStr))return invalid("invalidEngineering",`${modifierPath}.ValueStr`,"must be a string");if(!isOptionalIntegerInRange(modifier.LessIsGood,0,1))return invalid("invalidEngineering",`${modifierPath}.LessIsGood`,"must be 0 or 1")}}return null}function diagnoseModule(value,path){if(!isRecord(value))return invalid("invalidModule",path,"must be an object");if(typeof value.Slot!=="string")return invalid("invalidModule",`${path}.Slot`,"must be a string");if(typeof value.Item!=="string")return invalid("invalidModule",`${path}.Item`,"must be a string");if(value.On!==void 0&&typeof value.On!=="boolean")return invalid("invalidModule",`${path}.On`,"must be a boolean");if(!isOptionalIntegerInRange(value.Priority,0,4))return invalid("invalidModule",`${path}.Priority`,"must be an integer from 0 to 4");if(!isOptionalNumberInRange(value.Health,0,1))return invalid("invalidModule",`${path}.Health`,"must be a number from 0 to 1");if(!isOptionalNumberInRange(value.Value,0))return invalid("invalidModule",`${path}.Value`,"must be a non-negative number");if(value.Engineering!==void 0)return diagnoseEngineering(value.Engineering,`${path}.Engineering`);return null}function diagnoseHeader(value,path){if(!isRecord(value))return invalid("invalidHeader",path,"must be an object");if(typeof value.appName!=="string")return invalid("invalidHeader",`${path}.appName`,"must be a string");if(typeof value.appVersion!=="string"&&!(typeof value.appVersion==="number"&&Number.isFinite(value.appVersion)))return invalid("invalidHeader",`${path}.appVersion`,"must be a string or finite number");if(!isOptionalString(value.appURL))return invalid("invalidHeader",`${path}.appURL`,"must be a string");if(value.appCustomProperties!==void 0&&!isRecord(value.appCustomProperties))return invalid("invalidHeader",`${path}.appCustomProperties`,"must be an object");return null}function diagnoseLoadout(value,path){if(!isRecord(value))return invalid("invalidLoadout",path,"must be an object");if(typeof value.Ship!=="string")return invalid("invalidLoadout",`${path}.Ship`,"must be a string");if(!Array.isArray(value.Modules))return invalid("invalidLoadout",`${path}.Modules`,"must be an array");if(value.event!==void 0&&value.event!=="Loadout")return invalid("invalidLoadout",`${path}.event`,'must be "Loadout"');for(const field of["ShipName","ShipIdent"]){if(!isOptionalString(value[field]))return invalid("invalidLoadout",`${path}.${field}`,"must be a string")}for(const field of["HullValue","ModulesValue","UnladenMass","CargoCapacity","MaxJumpRange","Rebuy"]){if(!isOptionalNumberInRange(value[field],0))return invalid("invalidLoadout",`${path}.${field}`,"must be a non-negative number")}if(value.FuelCapacity!==void 0){if(!isRecord(value.FuelCapacity))return invalid("invalidLoadout",`${path}.FuelCapacity`,"must be an object");for(const field of["Main","Reserve"]){if(!isOptionalNumberInRange(value.FuelCapacity[field],0)||value.FuelCapacity[field]===void 0)return invalid("invalidLoadout",`${path}.FuelCapacity.${field}`,"must be a non-negative number")}}for(let index=0;index<value.Modules.length;index+=1){const moduleDiagnostic=diagnoseModule(value.Modules[index],`${path}.Modules[${index}]`);if(moduleDiagnostic!==null)return moduleDiagnostic}return null}function isSlefHeader(value){return diagnoseHeader(value,"header")===null}function isLoadout(value){return diagnoseLoadout(value,"loadout")===null}function duplicateSlot(loadout){const seen=/* @__PURE__ */new Set;for(let moduleIndex=0;moduleIndex<loadout.Modules.length;moduleIndex+=1){const module=loadout.Modules[moduleIndex];const slot=module.Slot.toLowerCase();if(seen.has(slot))return{slot:module.Slot,moduleIndex:moduleIndex};seen.add(slot)}return null}function inspectSlef(input){const root=typeof input==="string"?JSON.parse(input):input;const rawEntries=Array.isArray(root)?root:[root];const entries=[];const diagnostics=[];rawEntries.forEach((raw,index)=>{const entryPath=`entries[${index}]`;let header=null;let loadout=null;if(isLoadout(raw)){header=SYNTHETIC_HEADER;loadout=raw}else if(isRecord(raw)&&isLoadout(raw.data)){if(isSlefHeader(raw.header)){header=raw.header;loadout=raw.data}}if(header===null||loadout===null){const envelope=isRecord(raw)&&("header"in raw||"data"in raw);const detail=envelope?diagnoseHeader(isRecord(raw)?raw.header:null,`${entryPath}.header`)??diagnoseLoadout(isRecord(raw)?raw.data:null,`${entryPath}.data`):diagnoseLoadout(raw,entryPath);diagnostics.push({index:index,code:detail?.code??"invalidLoadout",path:detail?.path??entryPath,message:`${detail?.path??entryPath} ${detail?.reason??"is not a valid Loadout event"}`});return}const duplicate=duplicateSlot(loadout);if(duplicate!==null){diagnostics.push({index:index,code:"duplicateSlot",path:`${entryPath}${isLoadout(raw)?"":".data"}.Modules[${duplicate.moduleIndex}].Slot`,message:`Entry ${index} contains duplicate slot "${truncate(duplicate.slot)}"`});return}entries.push({header:header,data:loadout})});return Object.freeze({entries:Object.freeze(entries),diagnostics:Object.freeze(diagnostics)})}function parseSlef(input){const inspected=inspectSlef(input);if(inspected.diagnostics.length>0){throw new TypeError(`parseSlef: ${inspected.diagnostics[0].message}`)}if(inspected.entries.length===0){throw new TypeError("parseSlef: input holds no entries")}return[...inspected.entries]}function toSlef(data,header){if(!isSlefHeader(header)){throw new TypeError("toSlef: header needs a string `appName` and an `appVersion`")}const events=Array.isArray(data)?data:[data];if(events.length===0){throw new TypeError("toSlef: needs at least one Loadout")}return events.map((event,index)=>{if(!isLoadout(event)){throw new TypeError(`toSlef: entry ${index} is not a valid Loadout (needs a \`Ship\` and \`Modules\`)`)}const duplicate=duplicateSlot(event);if(duplicate!==null){throw new TypeError(`toSlef: entry ${index} contains duplicate slot "${truncate(duplicate.slot)}"`)}return{header:header,data:event}})}function stringifySlef(slef,options={}){return JSON.stringify(slef,null,options.indent??0)}function getLoadoutModifier(module,label){const wanted=normalizeKey(label,"getLoadoutModifier: label");const mod=module.Engineering?.Modifiers?.find(m=>m.Label.toLowerCase()===wanted);return typeof mod?.Value==="number"?mod.Value:null}export{getLoadoutModifier,inspectSlef,parseSlef,stringifySlef,toSlef};//# sourceMappingURL=chunk-R4OD62HV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ships/slef.ts"],"names":["normalizeKey","truncate","SYNTHETIC_HEADER","Object","freeze","appName","appVersion","isRecord","value","Array","isArray","isOptionalString","isOptionalFiniteNumber","Number","isFinite","isOptionalNumberInRange","minimum","maximum","POSITIVE_INFINITY","isOptionalIntegerInRange","isInteger","invalid","code","path","reason","diagnoseEngineering","BlueprintName","Level","Quality","ExperimentalEffect","ExperimentalEffect_Localised","Modifiers","index","length","modifier","modifierPath","Label","Value","OriginalValue","ValueStr","LessIsGood","diagnoseModule","Slot","Item","On","Priority","Health","Engineering","diagnoseHeader","appURL","appCustomProperties","diagnoseLoadout","Ship","Modules","event","field","FuelCapacity","moduleDiagnostic","isSlefHeader","isLoadout","duplicateSlot","loadout","seen","Set","moduleIndex","module","slot","toLowerCase","has","add","inspectSlef","input","root","JSON","parse","rawEntries","entries","diagnostics","forEach","raw","entryPath","header","data","envelope","detail","push","message","duplicate","parseSlef","inspected","TypeError","toSlef","events","map","stringifySlef","slef","options","stringify","indent","getLoadoutModifier","label","wanted","mod","find","m"],"mappings":"O,iFAgMA,IAAME,iBAA+BC,OAAOC,OAAO,CAAEC,QAAS,GAAIC,WAAY,KAE9E,IAAMC,SAAYC,cACPA,QAAU,UAAYA,QAAU,OAASC,MAAMC,QAAQF,OAElE,IAAMG,iBAAoBH,OACtBA,aAAU,UAAoBA,QAAU,SAE5C,IAAMI,uBAA0BJ,OAC5BA,aAAU,UAAqBA,QAAU,UAAYK,OAAOC,SAASN,OAEzE,IAAMO,wBAA0B,CAC5BP,MACAQ,QACAC,QAAUJ,OAAOK,oBAEjBV,aAAU,UACFA,QAAU,UAAYK,OAAOC,SAASN,QAAUA,OAASQ,SAAWR,OAASS,QAEzF,IAAME,yBAA2B,CAC7BX,MACAQ,QACAC,WAEA,GAAIT,aAAU,EAAW,OAAO,KAChC,cACWA,QAAU,UAAYK,OAAOO,UAAUZ,QAAUA,OAASQ,SAAWR,OAASS,SAU7F,IAAMI,QAAU,CACZC,KACAC,KACAC,UAAA,CACsBF,UAAMC,UAAMC,gBAEtC,SAASC,oBAAoBjB,MAAgBe,MACzC,IAAKhB,SAASC,OAAK,OAAUa,QAAQ,qBAAsBE,KAAM,qBACjE,UAAWf,MAAMkB,gBAAkB,SAC/B,OAAOL,QAAQ,qBAAsB,GAAGE,qBAAsB,oBAClE,IAAKJ,yBAAyBX,MAAMmB,MAAO,EAAG,IAAMnB,MAAMmB,aAAU,EAChE,OAAON,QAAQ,qBAAsB,GAAGE,aAAc,kCAC1D,IAAKR,wBAAwBP,MAAMoB,QAAS,EAAG,IAAMpB,MAAMoB,eAAY,EACnE,OAAOP,QAAQ,qBAAsB,GAAGE,eAAgB,gCAC5D,IAAKZ,iBAAiBH,MAAMqB,oBACxB,OAAOR,QAAQ,qBAAsB,GAAGE,0BAA2B,oBACvE,IAAKZ,iBAAiBH,MAAMsB,8BACxB,OAAOT,QACH,qBACA,GAAGE,oCACH,oBAER,GAAIf,MAAMuB,iBAAc,EAAW,CAC/B,IAAKtB,MAAMC,QAAQF,MAAMuB,WACrB,OAAOV,QAAQ,qBAAsB,GAAGE,iBAAkB,oBAC9D,IAAA,IAASS,MAAQ,EAAGA,MAAQxB,MAAMuB,UAAUE,OAAQD,OAAS,EAAG,CAC5D,MAAME,SAAW1B,MAAMuB,UAAUC,OACjC,MAAMG,aAAe,GAAGZ,kBAAkBS,SAC1C,IAAKzB,SAAS2B,UACV,OAAOb,QAAQ,qBAAsBc,aAAc,qBACvD,UAAWD,SAASE,QAAU,SAC1B,OAAOf,QAAQ,qBAAsB,GAAGc,qBAAsB,oBAClE,IAAKvB,uBAAuBsB,SAASG,OACjC,OAAOhB,QACH,qBACA,GAAGc,qBACH,2BAER,IAAKvB,uBAAuBsB,SAASI,eACjC,OAAOjB,QACH,qBACA,GAAGc,6BACH,2BAER,IAAKxB,iBAAiBuB,SAASK,UAC3B,OAAOlB,QACH,qBACA,GAAGc,wBACH,oBAER,IAAKhB,yBAAyBe,SAASM,WAAY,EAAG,GAClD,OAAOnB,QACH,qBACA,GAAGc,0BACH,iBAEZ,CACJ,CACA,OAAO,IACX,CAEA,SAASM,eAAejC,MAAgBe,MACpC,IAAKhB,SAASC,OAAK,OAAUa,QAAQ,gBAAiBE,KAAM,qBAC5D,UAAWf,MAAMkC,OAAS,SACtB,OAAOrB,QAAQ,gBAAiB,GAAGE,YAAa,oBACpD,UAAWf,MAAMmC,OAAS,SACtB,OAAOtB,QAAQ,gBAAiB,GAAGE,YAAa,oBACpD,GAAIf,MAAMoC,UAAO,UAAoBpC,MAAMoC,KAAO,UAC9C,OAAOvB,QAAQ,gBAAiB,GAAGE,UAAW,qBAClD,IAAKJ,yBAAyBX,MAAMqC,SAAU,EAAG,GAC7C,OAAOxB,QAAQ,gBAAiB,GAAGE,gBAAiB,kCACxD,IAAKR,wBAAwBP,MAAMsC,OAAQ,EAAG,GAC1C,OAAOzB,QAAQ,gBAAiB,GAAGE,cAAe,gCACtD,IAAKR,wBAAwBP,MAAM6B,MAAO,GACtC,OAAOhB,QAAQ,gBAAiB,GAAGE,aAAc,iCACrD,GAAIf,MAAMuC,mBAAgB,EACtB,OAAOtB,oBAAoBjB,MAAMuC,YAAa,GAAGxB,oBACrD,OAAO,IACX,CAEA,SAASyB,eAAexC,MAAgBe,MACpC,IAAKhB,SAASC,OAAK,OAAUa,QAAQ,gBAAiBE,KAAM,qBAC5D,UAAWf,MAAMH,UAAY,SACzB,OAAOgB,QAAQ,gBAAiB,GAAGE,eAAgB,oBACvD,UACWf,MAAMF,aAAe,mBACnBE,MAAMF,aAAe,UAAYO,OAAOC,SAASN,MAAMF,aAEhE,OAAOe,QAAQ,gBAAiB,GAAGE,kBAAmB,qCAC1D,IAAKZ,iBAAiBH,MAAMyC,QACxB,OAAO5B,QAAQ,gBAAiB,GAAGE,cAAe,oBACtD,GAAIf,MAAM0C,2BAAwB,IAAc3C,SAASC,MAAM0C,qBAC3D,OAAO7B,QAAQ,gBAAiB,GAAGE,2BAA4B,qBACnE,OAAO,IACX,CAEA,SAAS4B,gBAAgB3C,MAAgBe,MACrC,IAAKhB,SAASC,OAAK,OAAUa,QAAQ,iBAAkBE,KAAM,qBAC7D,UAAWf,MAAM4C,OAAS,SACtB,OAAO/B,QAAQ,iBAAkB,GAAGE,YAAa,oBACrD,IAAKd,MAAMC,QAAQF,MAAM6C,SACrB,OAAOhC,QAAQ,iBAAkB,GAAGE,eAAgB,oBACxD,GAAIf,MAAM8C,aAAU,GAAa9C,MAAM8C,QAAU,UAC7C,OAAOjC,QAAQ,iBAAkB,GAAGE,aAAc,qBACtD,IAAA,MAAWgC,QAAS,CAAC,WAAY,aAAuB,CACpD,IAAK5C,iBAAiBH,MAAM+C,QACxB,OAAOlC,QAAQ,iBAAkB,GAAGE,QAAQgC,QAAS,mBAC7D,CACA,IAAA,MAAWA,QAAS,CAChB,YACA,eACA,cACA,gBACA,eACA,SACQ,CACR,IAAKxC,wBAAwBP,MAAM+C,OAAQ,GACvC,OAAOlC,QAAQ,iBAAkB,GAAGE,QAAQgC,QAAS,gCAC7D,CACA,GAAI/C,MAAMgD,oBAAiB,EAAW,CAClC,IAAKjD,SAASC,MAAMgD,cAChB,OAAOnC,QAAQ,iBAAkB,GAAGE,oBAAqB,qBAC7D,IAAA,MAAWgC,QAAS,CAAC,OAAQ,WAAqB,CAC9C,IACKxC,wBAAwBP,MAAMgD,aAAaD,OAAQ,IACpD/C,MAAMgD,aAAaD,cAAW,EAE9B,OAAOlC,QACH,iBACA,GAAGE,qBAAqBgC,QACxB,gCAEZ,CACJ,CACA,IAAA,IAASvB,MAAQ,EAAGA,MAAQxB,MAAM6C,QAAQpB,OAAQD,OAAS,EAAG,CAC1D,MAAMyB,iBAAmBhB,eAAejC,MAAM6C,QAAQrB,OAAQ,GAAGT,gBAAgBS,UACjF,GAAIyB,mBAAqB,KAAM,OAAOA,gBAC1C,CACA,OAAO,IACX,CAGA,SAASC,aAAalD,OAClB,OAAOwC,eAAexC,MAAO,YAAc,IAC/C,CAGA,SAASmD,UAAUnD,OACf,OAAO2C,gBAAgB3C,MAAO,aAAe,IACjD,CAEA,SAASoD,cAAcC,SACnB,MAAMC,oBAAA,IAAWC,IACjB,IAAA,IAASC,YAAc,EAAGA,YAAcH,QAAQR,QAAQpB,OAAQ+B,aAAe,EAAG,CAC9E,MAAMC,OAASJ,QAAQR,QAAQW,aAC/B,MAAME,KAAOD,OAAOvB,KAAKyB,cACzB,GAAIL,KAAKM,IAAIF,MAAI,MAAU,CAAEA,KAAMD,OAAOvB,KAAMsB,yBAChDF,KAAKO,IAAIH,KACb,CACA,OAAO,IACX,CAwCO,SAASI,YAAYC,OACxB,MAAMC,YAAuBD,QAAU,SAAWE,KAAKC,MAAMH,OAASA,MACtE,MAAMI,WAAwBlE,MAAMC,QAAQ8D,MAAQA,KAAO,CAACA,MAC5D,MAAMI,QAAuB,GAC7B,MAAMC,YAAgC,GAEtCF,WAAWG,QAAQ,CAACC,IAAK/C,SACrB,MAAMgD,UAAY,WAAWhD,SAC7B,IAAIiD,OAA4B,KAChC,IAAIpB,QAA+B,KACnC,GAAIF,UAAUoB,KAAM,CAChBE,OAAS/E,iBACT2D,QAAUkB,GACd,MAAA,GAAWxE,SAASwE,MAAQpB,UAAUoB,IAAIG,MAAO,CAC7C,GAAIxB,aAAaqB,IAAIE,QAAS,CAC1BA,OAASF,IAAIE,OACbpB,QAAUkB,IAAIG,IAClB,CACJ,CAEA,GAAID,SAAW,MAAQpB,UAAY,KAAM,CACrC,MAAMsB,SAAW5E,SAASwE,OAAS,WAAYA,KAAO,SAAUA,KAChE,MAAMK,OAASD,SACRnC,eAAezC,SAASwE,KAAOA,IAAIE,OAAS,KAAM,GAAGD,qBACtD7B,gBAAgB5C,SAASwE,KAAOA,IAAIG,KAAO,KAAM,GAAGF,kBACpD7B,gBAAgB4B,IAAKC,WAC3BH,YAAYQ,KAAK,CACbrD,YACAV,KAAM8D,QAAQ9D,MAAQ,iBACtBC,KAAM6D,QAAQ7D,MAAQyD,UACtBM,QAAS,GAAGF,QAAQ7D,MAAQyD,aAAaI,QAAQ5D,QAAU,mCAE/D,MACJ,CACA,MAAM+D,UAAY3B,cAAcC,SAChC,GAAI0B,YAAc,KAAM,CACpBV,YAAYQ,KAAK,CACbrD,YACAV,KAAM,gBACNC,KAAM,GAAGyD,YAAYrB,UAAUoB,KAAO,GAAK,mBAAmBQ,UAAUvB,oBACxEsB,QAAS,SAAStD,kCAAkC/B,SAASsF,UAAUrB,WAE3E,MACJ,CACAU,QAAQS,KAAK,CAAEJ,cAAQC,KAAMrB,YAGjC,OAAO1D,OAAOC,OAAO,CACjBwE,QAASzE,OAAOC,OAAOwE,SACvBC,YAAa1E,OAAOC,OAAOyE,cAEnC,CA6BO,SAASW,UAAUjB,OACtB,MAAMkB,UAAYnB,YAAYC,OAC9B,GAAIkB,UAAUZ,YAAY5C,OAAS,EAAG,CAClC,MAAM,IAAIyD,UAAU,cAAcD,UAAUZ,YAAY,GAAIS,UAChE,CACA,GAAIG,UAAUb,QAAQ3C,SAAW,EAAG,CAChC,MAAM,IAAIyD,UAAU,oCACxB,CACA,MAAO,IAAID,UAAUb,QACzB,CAiCO,SAASe,OAAOT,KAA8CD,QACjE,IAAKvB,aAAauB,QAAS,CACvB,MAAM,IAAIS,UAAU,8DACxB,CAEA,MAAME,OAASnF,MAAMC,QAAQwE,MAAQA,KAAO,CAACA,MAC7C,GAAIU,OAAO3D,SAAW,EAAG,CAGrB,MAAM,IAAIyD,UAAU,qCACxB,CACA,OAAOE,OAAOC,IAAI,CAACvC,MAAOtB,SACtB,IAAK2B,UAAUL,OAAQ,CACnB,MAAM,IAAIoC,UACN,iBAAiB1D,kEAEzB,CACA,MAAMuD,UAAY3B,cAAcN,OAChC,GAAIiC,YAAc,KAAM,CACpB,MAAM,IAAIG,UACN,iBAAiB1D,kCAAkC/B,SAASsF,UAAUrB,SAE9E,CACA,MAAO,CAAEe,cAAQC,KAAM5B,QAE/B,CAkBO,SAASwC,cAAcC,KAAYC,QAAgC,CAAA,GACtE,OAAOvB,KAAKwB,UAAUF,KAAM,KAAMC,QAAQE,QAAU,EACxD,CAuBO,SAASC,mBAAmBlC,OAAuBmC,OACtD,MAAMC,OAASrG,aAAaoG,MAAO,6BACnC,MAAME,IAAMrC,OAAOlB,aAAahB,WAAWwE,KAAMC,GAAMA,EAAEpE,MAAM+B,gBAAkBkC,QACjF,cAAcC,KAAKjE,QAAU,SAAWiE,IAAIjE,MAAQ,IACxD,QAAA8D,mBAAA7B,YAAAkB,UAAAM,cAAAH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getShipSlots,getShipBySymbol}from"./chunk-462OKHXR.js";import{parseSlef,toSlef,stringifySlef,getLoadoutModifier}from"./chunk-R4OD62HV.js";import{enumerateSlots,parseSlotName,SLOT_RESTRICTION_LABELS}from"./chunk-I7PIDRMU.js";import{sourcePurchaseFromLoadout,getSourceModuleValue}from"./chunk-QTDBO7R2.js";import{powerBudget}from"./chunk-76XKY2Y2.js";import{identifyPreEngineeredVariant,getPreEngineeredStats,scaleDamageComponents}from"./chunk-TLNHETGC.js";import{weaponMetrics,sumWeaponMetrics,combinedRateOfFire}from"./chunk-INNFH37U.js";import{builtInModuleBySymbol,getBulkheadsForShip}from"./chunk-BRDQUJXV.js";import{getPreEngineeredVariants}from"./chunk-GJCB2Z72.js";import{shieldMetrics}from"./chunk-2FHHMYDC.js";import{singleJumpRange,fuelPerJump,totalRange}from"./chunk-KG4EWDZZ.js";import{completeResult,calculateUnladenMass,calculateCargoCapacity,calculateFuelCapacity}from"./chunk-PP2VSA6M.js";import{validateLoadout}from"./chunk-COE5ADYJ.js";import{ALL_MODULES}from"./chunk-CWAX3BSH.js";import{CORE_MODULES}from"./chunk-K3AMV27L.js";import{resolveBlueprintForModule}from"./chunk-L2ZZXEZM.js";import{getBlueprintGrade,BLUEPRINTS,getBlueprint}from"./chunk-Q5MR36RW.js";import{isDecorativeModification}from"./chunk-6LUEKHO5.js";import{getBlueprintsForModule,getExperimentalsForModule,getEngineeringGroup}from"./chunk-BNILZXJD.js";import{getExperimentalEffect,EXPERIMENTAL_EFFECTS}from"./chunk-PMJG7PHU.js";import{ammunitionCapacity}from"./chunk-AA3K5XUE.js";import{armourMetrics}from"./chunk-FGXWVFN6.js";import{baseStats,computeModifiers,labelsForDamageType,scaleForLabel,fieldForLabel,labelsForField,capabilityValueForLabel,damageTypeForLabel}from"./chunk-VZZ2XIRE.js";import{normalizeKey}from"./chunk-S4DBNX2B.js";import{truncate,describeValue,requireString,requireStringIfPresent}from"./chunk-B5TT26XE.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var FITTED_ITEM="ShipLoadout: fitted module Item";function isNonOutfittingSlot(slotKey){return/^(paintjob|shipname\d+|shipid\d+|bobble\d+|decal\d+|shipkit.+|weaponcolour|enginecolour|vesselvoice|shipcockpit|stringlights)$/i.test(slotKey)}function isBuiltInHullModule(module){return module.Slot.toLowerCase()==="cargohatch"&&module.Item.toLowerCase().startsWith("modularcargobaydoor")}function cloneLoadoutModule(module){return{Slot:module.Slot,Item:module.Item,...module.On===void 0?{}:{On:module.On},...module.Priority===void 0?{}:{Priority:module.Priority},...module.Health===void 0?{}:{Health:module.Health},...module.Value===void 0?{}:{Value:module.Value},...module.Engineering===void 0?{}:{Engineering:{BlueprintName:module.Engineering.BlueprintName,Level:module.Engineering.Level,Quality:module.Engineering.Quality,...module.Engineering.ExperimentalEffect===void 0?{}:{ExperimentalEffect:module.Engineering.ExperimentalEffect},...module.Engineering.ExperimentalEffect_Localised===void 0?{}:{ExperimentalEffect_Localised:module.Engineering.ExperimentalEffect_Localised},...module.Engineering.Modifiers===void 0?{}:{Modifiers:module.Engineering.Modifiers.map(modifier=>({...modifier}))}}}}}function matchingKeyIn(keyed,slotKey){if(keyed.has(slotKey))return slotKey;const wanted=slotKey.toLowerCase();for(const key of keyed.keys()){if(key.toLowerCase()===wanted)return key}return null}function cloneModuleStats(module){return deepFreeze({...module,...module.restrictedToShips===void 0?{}:{restrictedToShips:[...module.restrictedToShips]},...module.damageDistribution===void 0?{}:{damageDistribution:{...module.damageDistribution}},...module.damageComponents===void 0?{}:{damageComponents:{...module.damageComponents,...module.damageComponents.unclassified===void 0?{}:{unclassified:[...module.damageComponents.unclassified]}}},...module.projectileRange===void 0?{}:{projectileRange:{...module.projectileRange}}})}var GUARDIAN_WEAPON_GROUPS=/* @__PURE__ */new Set(["guardianGauss","guardianPlasma","guardianShard"]);function missingBaseLabels(stats,base,features,experimental){const contributions=[...features,...experimental??[]];return[...new Set(contributions.map(contribution=>contribution.label).filter(label=>{if(base[label]!==void 0)return false;return fieldForLabel(label,stats)===null}))]}function recipeSignature(fdname){const blueprint=getBlueprint(fdname);if(!blueprint)return null;const grades=Object.entries(blueprint.grades).map(([grade,{features:features}])=>`${grade}:${features.map(feature=>`${feature.label}/${feature.method??""}`).sort().join(",")}`).sort().join(";");return`${blueprint.name.toLowerCase()}|${grades}`}var isGenericSpelling=fdname=>fdname.toLowerCase().startsWith("misc_");function isSoldWithBlueprint(item,wanted){return getPreEngineeredVariants(item).some(variant=>!variant.engineeringLocked&&variant.blueprint.toLowerCase()===wanted)}function blueprintAvailableFor(item,fdname){const offered=getBlueprintsForModule(item);const asWritten=normalizeKey(fdname,"ShipLoadout.applyBlueprint: fdname");const resolved=resolveBlueprintForModule(item,fdname).trim();const wanted=resolved.toLowerCase();if(offered.some(id=>id.toLowerCase()===wanted))return true;if(isSoldWithBlueprint(item,wanted)||isSoldWithBlueprint(item,asWritten))return true;if(!isGenericSpelling(wanted))return false;const signature=recipeSignature(resolved);if(signature===null)return false;return offered.some(id=>recipeSignature(id)===signature&&!isGenericSpelling(id))}function experimentalAvailableFor(item,fdname){const wanted=normalizeKey(fdname,"ShipLoadout.applyBlueprint: options.experimental");return getExperimentalsForModule(item).some(id=>id.toLowerCase()===wanted)}function isEngineerable(item){return getEngineeringGroup(item)!==null}function isFinalGuardianWeaponEngineering(item,blueprint){const group=getEngineeringGroup(item);if(group===null||!GUARDIAN_WEAPON_GROUPS.has(group))return false;const resolved=resolveBlueprintForModule(item,blueprint);return getBlueprint(resolved)!==null&&!blueprintAvailableFor(item,blueprint)}function engineerableBase(item,statsOverride){const stats=statsOverride??builtInModuleBySymbol(item,FITTED_ITEM);if(!stats||stats.engineeringLocked)return null;return{stats:stats,base:baseStats(stats)}}function availableBlueprintsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;const available=[];for(const fdname of getBlueprintsForModule(item)){const blueprint=BLUEPRINTS[fdname];if(!blueprint)continue;const grades=Object.entries(blueprint.grades).filter(([,grade])=>missingBaseLabels(stats,base,grade.features).length===0).map(([grade])=>Number(grade)).filter(Number.isFinite).sort((a,b)=>a-b);if(grades.length>0)available.push({fdname:fdname,grades:grades})}return available}function availableExperimentalsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;return getExperimentalsForModule(item).filter(fdname=>{const effect=EXPERIMENTAL_EFFECTS[fdname];return effect!==void 0&&missingBaseLabels(stats,base,effect.modifiers).length===0})}var PREFIX={powerPlant:["int_powerplant","int_guardianpowerplant"],shieldGenerator:["int_shieldgenerator"],shieldBooster:["hpt_shieldbooster"],shieldReinforcement:["int_guardianshieldreinforcement"],hullReinforcement:["int_hullreinforcement","int_guardianhullreinforcement","int_metaalloyhullreinforcement"],moduleReinforcement:["int_modulereinforcement","int_guardianmodulereinforcement"]};var startsWithAny=(symbol,prefixes)=>prefixes.some(prefix=>symbol.toLowerCase().startsWith(prefix));function isEnabled(module){return module.On!==false}function priorityOf(module){return(module.Priority??0)+1}function effectiveStat(module,field,stats){const stated=statedModifier(module,field);if(stated!==void 0)return stated;const base=stats?.[field];return typeof base==="number"?base:void 0}function statedModifier(module,field){for(const label of labelsForField(field)){if(capabilityValueForLabel(label)!==null)continue;const modified=getLoadoutModifier(module,label);if(modified!==null)return modified/scaleForLabel(label)}return void 0}function effectiveCapability(module,field,stats){for(const label of labelsForField(field)){if(capabilityValueForLabel(label)===null)continue;if(module.Engineering?.Modifiers?.some(modifier=>modifier.Label.toLowerCase()===label.toLowerCase())){return true}}const base=stats[field];return typeof base==="boolean"?base:void 0}function effectiveDamageDistribution(module,stats){const fromEffect=module.Engineering?.ExperimentalEffect?getExperimentalEffect(module.Engineering.ExperimentalEffect)?.damageDistribution:void 0;const distribution={...fromEffect??stats.damageDistribution};let resolved=fromEffect!==void 0||stats.damageDistribution!==void 0;for(const modifier of module.Engineering?.Modifiers??[]){if(modifier.Value===void 0)continue;const type=damageTypeForLabel(modifier.Label);if(type===null)continue;distribution[type]=modifier.Value/scaleForLabel(modifier.Label);resolved=true}return resolved?distribution:void 0}function convertsDamage(module){if(module.Engineering?.ExperimentalEffect&&getExperimentalEffect(module.Engineering.ExperimentalEffect)?.damageDistribution){return true}return(module.Engineering?.Modifiers??[]).some(modifier=>damageTypeForLabel(modifier.Label)!==null)}function modifierRatio(module,stats,field){const base=stats?.[field];if(typeof base!=="number"||base===0)return 1;const effective=effectiveStat(module,field,stats);return effective===void 0?1:effective/base}function relatedStat(module,stats,field,ratio){const stated=statedModifier(module,field);if(stated!==void 0)return stated;const base=stats?.[field];return typeof base==="number"?base*ratio:void 0}function effectiveModule(module,stats){if(!stats||!module.Engineering)return stats;const merged={...stats};const fields=new Set(Object.keys(stats));for(const modifier of module.Engineering.Modifiers??[]){const field=fieldForLabel(modifier.Label,stats);if(field)fields.add(field)}for(const key of fields){const capability=effectiveCapability(module,key,stats);if(capability!==void 0){merged[key]=capability;continue}const value=effectiveStat(module,key,stats);if(value!==void 0)merged[key]=value}if(stats.engineeringGroup==="thrusters"){const massRatio=modifierRatio(module,stats,"optMass");const minMass=relatedStat(module,stats,"minMass",massRatio);const maxMass=relatedStat(module,stats,"maxMass",massRatio);if(minMass!==void 0)merged.minMass=minMass;if(maxMass!==void 0)merged.maxMass=maxMass}const damageDistribution=effectiveDamageDistribution(module,stats);if(damageDistribution)merged.damageDistribution=damageDistribution;if(stats.category==="hardpoint")normalizeEffectiveWeapon(module,merged);if(convertsDamage(module)){delete merged.damageComponents}else if(stats.damageComponents){merged.damageComponents=scaleDamageComponents(stats.damageComponents,stats.damage,typeof merged.damage==="number"?merged.damage:void 0)}return merged}function powerConsumerFor(module,stats){const draw=effectiveStat(module,"powerDraw",stats);const parsedSlot=parseSlotName(module.Slot);const mounted=stats?.category==="hardpoint"||stats?.category==="utility";const deployedOnly=stats!==null?mounted&&stats.alwaysPowered!==true:parsedSlot?.kind==="hardpoint"?true:parsedSlot?.kind==="utility"?void 0:false;const common={priority:priorityOf(module),enabled:isEnabled(module),...deployedOnly===void 0?{}:{deployedOnly:deployedOnly},label:module.Slot};if(draw===void 0){const inherentlyPassiveSlot=parsedSlot?.kind==="armour"||parsedSlot?.kind==="core"&&(parsedSlot.core==="powerPlant"||parsedSlot.core==="fuelTank");if(stats!==null||inherentlyPassiveSlot||isNonOutfittingSlot(module.Slot))return null;return{drawUnknown:true,...common}}if(draw===0)return null;return{draw:draw,...common}}function powerAvailable(modules,statsFor){for(const module of modules){const stats=statsFor(module);const isPlant=stats?.slot?stats.slot==="powerPlant":startsWithAny(module.Item,PREFIX.powerPlant);if(!isPlant)continue;if(!isEnabled(module))return 0;return effectiveStat(module,"powerCapacity",stats)??0}return 0}function mapResistanceFields(read){return{kineticResistance:read("kineticResistance")??0,thermalResistance:read("thermalResistance")??0,explosiveResistance:read("explosiveResistance")??0,causticResistance:read("causticResistance")??0}}function resistancesOf(module,stats){return mapResistanceFields(field=>effectiveStat(module,field,stats))}function shieldInputFor(shipSymbol,modules,systemsPips,statsFor){const hull=getShipBySymbol(shipSymbol);let generator=null;const boosters=[];let reinforcement=0;for(const module of modules){if(!isEnabled(module))continue;const stats=statsFor(module);if(!generator&&startsWithAny(module.Item,PREFIX.shieldGenerator)){const massRatio=modifierRatio(module,stats,"optMass");const strengthRatio=modifierRatio(module,stats,"optMultiplier");const optMass=effectiveStat(module,"optMass",stats);const minMass=relatedStat(module,stats,"minMass",massRatio);const maxMass=relatedStat(module,stats,"maxMass",Math.max(1,massRatio));const optMultiplier=effectiveStat(module,"optMultiplier",stats);const minMultiplier=relatedStat(module,stats,"minMultiplier",strengthRatio);const maxMultiplier=relatedStat(module,stats,"maxMultiplier",strengthRatio);generator={...optMass===void 0?{}:{optMass:optMass},...minMass===void 0?{}:{minMass:minMass},...maxMass===void 0?{}:{maxMass:maxMass},...optMultiplier===void 0?{}:{optMultiplier:optMultiplier},...minMultiplier===void 0?{}:{minMultiplier:minMultiplier},...maxMultiplier===void 0?{}:{maxMultiplier:maxMultiplier},...resistancesOf(module,stats)}}else if(startsWithAny(module.Item,PREFIX.shieldBooster)){boosters.push({shieldBoost:effectiveStat(module,"shieldBoost",stats)??0,...resistancesOf(module,stats)})}else if(startsWithAny(module.Item,PREFIX.shieldReinforcement)){reinforcement+=effectiveStat(module,"shieldAddition",stats)??0}}return{hullMass:hull?.hullMass??0,baseShieldStrength:hull?.baseShieldStrength??0,generator:generator,boosters:boosters,reinforcement:reinforcement,systemsPips:systemsPips}}function stockBulkhead(shipSymbol){const hull=getShipBySymbol(shipSymbol);if(!hull)return null;const variants=getBulkheadsForShip(hull.name,CORE_MODULES);return variants.find(v=>v.symbol.toLowerCase().endsWith("_default"))??variants.find(v=>v.mass===0)??variants[0]??null}function armourInputFor(shipSymbol,modules,statsFor){const hull=getShipBySymbol(shipSymbol);const reinforcements=[];const moduleReinforcements=[];let bulkhead=null;for(const module of modules){if(!isEnabled(module))continue;const stats=statsFor(module);if(module.Slot.toLowerCase()==="armour"){bulkhead={hullBoost:effectiveStat(module,"hullBoost",stats)??0,...resistancesOf(module,stats)}}else if(startsWithAny(module.Item,PREFIX.hullReinforcement)){const boost=getLoadoutModifier(module,"DefenceModifierHealthMultiplier");reinforcements.push({hullReinforcement:effectiveStat(module,"hullReinforcement",stats)??0,hullBoost:boost===null?0:boost/scaleForLabel("DefenceModifierHealthMultiplier"),...resistancesOf(module,stats)})}else if(startsWithAny(module.Item,PREFIX.moduleReinforcement)){moduleReinforcements.push({moduleProtection:effectiveStat(module,"moduleProtection",stats)??0,integrity:effectiveStat(module,"integrity",stats)??0})}}if(!bulkhead){const stock=stockBulkhead(shipSymbol);bulkhead=stock?{hullBoost:stock.hullBoost??0,...mapResistanceFields(field=>stock[field])}:null}return{baseArmour:hull?.baseArmour??0,bulkhead:bulkhead,reinforcements:reinforcements,moduleReinforcements:moduleReinforcements}}var WEAPON_FIELDS=["damage","roundsPerShot","rateOfFire","burstInterval","burstRounds","burstRateOfFire","chargeTime","clipSize","ammoMaximum","reloadTime","distributorDraw","thermalLoad","powerDraw","maximumRange","falloffRange","armourPiercing"];function weaponStatsFor(module,stats){if(!stats||stats.category!=="hardpoint")return null;const weapon={};for(const field of WEAPON_FIELDS){const value=effectiveStat(module,field,stats);if(value!==void 0)weapon[field]=value}normalizeEffectiveWeapon(module,weapon);const damageDistribution=effectiveDamageDistribution(module,stats);if(damageDistribution)weapon.damageDistribution=damageDistribution;if(stats.damageComponents&&!convertsDamage(module)){weapon.damageComponents=scaleDamageComponents(stats.damageComponents,stats.damage,typeof weapon.damage==="number"?weapon.damage:void 0)}if(stats.projectileRange)weapon.projectileRange={...stats.projectileRange};return weapon}function burstAdjustedRateOfFire(module,weapon){if(getLoadoutModifier(module,"RateOfFire")!==null)return void 0;const touched=["BurstSize","BurstRateOfFire","BurstInterval"].some(label=>getLoadoutModifier(module,label)!==null);if(!touched)return void 0;return combinedRateOfFire(weapon)}function normalizeEffectiveWeapon(module,weapon){const rate=burstAdjustedRateOfFire(module,weapon);if(rate!==void 0)weapon.rateOfFire=rate;const statedDamagePerSecond=getLoadoutModifier(module,"DamagePerSecond");const firingFactor=Number(weapon.roundsPerShot??1)*Number(weapon.rateOfFire??1);if(statedDamagePerSecond!==null&&firingFactor>0){weapon.damage=statedDamagePerSecond/firingFactor}const{maximumRange:maximumRange,falloffRange:falloffRange}=weapon;if(maximumRange!==void 0&&falloffRange!==void 0&&falloffRange>maximumRange){weapon.falloffRange=maximumRange}}var CORE_NAMES={powerPlant:"Power Plant",thrusters:"Thrusters",frameShiftDrive:"Frame Shift Drive",lifeSupport:"Life Support",powerDistributor:"Power Distributor",sensors:"Sensors",fuelTank:"Fuel Tank"};var RESTRICTED_OPTIONAL_NAMES={military:"Military Slot",cargo:"Cargo Slot",limpetController:"Limpet Controller Slot",vesselHangar:"Vessel Hangar Slot",passenger:"Passenger Slot"};function trailingDigits(key){let start=key.length;while(start>0){const code=key.charCodeAt(start-1);if(code<48||code>57)break;start--}return start===key.length?null:key.slice(start)}function loadoutSlotName(slot){switch(slot.kind){case"core":return CORE_NAMES[slot.core];case"hardpoint":{const match=/^(Small|Medium|Large|Huge)(Mining)?Hardpoint(\d+)$/.exec(slot.key);if(!match)return slot.key;return`${match[1]}${match[2]?" Mining":""} Hardpoint ${Number(match[3])}`}case"utility":{const match=/^TinyHardpoint(\d+)$/.exec(slot.key);return match?`Utility Mount ${Number(match[1])}`:slot.key}case"optional":{if(slot.restriction==="planetaryApproachSuite")return"Planetary Approach Suite";if(slot.restriction){const numbered=trailingDigits(slot.key);const label=RESTRICTED_OPTIONAL_NAMES[slot.restriction];return label&&numbered?`${label} ${Number(numbered)}`:slot.key}const optional=/^Slot(\d+)_Size(\d+)$/.exec(slot.key);return optional?`Optional Internal ${Number(optional[1])} (Size ${slot.size})`:slot.key}case"armour":return"Armour";case"cargoHatch":return"Cargo Hatch"}}var MILITARY_PREFIXES=["int_hullreinforcement","int_metaalloyhullreinforcement","int_modulereinforcement","int_shieldcellbank","int_guardianhullreinforcement","int_guardianmodulereinforcement","int_guardianshieldreinforcement"];var MINING_PREFIXES=["hpt_mininglaser","hpt_mining_abrblstr","hpt_mining_seismchrgwarhd","hpt_mining_subsurfdispmisle","hpt_human_extraction","hpt_miningtoolv2"];var CARGO_PREFIXES=["int_cargorack","int_largecargorack","int_corrosionproofcargorack","int_fueltank"];var RESTRICTED_SLOT_PREFIXES={mining:MINING_PREFIXES,military:MILITARY_PREFIXES,cargo:CARGO_PREFIXES,limpetController:["int_dronecontrol","int_multidronecontrol"],vesselHangar:["int_fighterbay"],passenger:["int_passengercabin","int_mkii_passengercabin"],planetaryApproachSuite:["int_planetapproachsuite"]};function restrictionError(slot,symbol){const restriction=slot.restriction;if(!restriction)return null;if(RESTRICTED_SLOT_PREFIXES[restriction].some(prefix=>symbol.startsWith(prefix))){return null}return`slot only takes ${SLOT_RESTRICTION_LABELS[restriction]}`}function moduleSlotError(slot,module){const required=module.restrictedToSlot;if(!required||slot.restriction===required)return null;return`module only fits a mount that takes ${SLOT_RESTRICTION_LABELS[required]}`}function moduleFitError(shipSymbol,slot,module){if(slot.kind==="cargoHatch"){return"the cargoHatch slot cannot be changed"}if(slot.kind==="armour"){const hull=getShipBySymbol(shipSymbol);if(module.slot!=="armour"||module.ship===void 0){return"not a ship armour module"}if(!hull||module.ship.toLowerCase()!==hull.name.toLowerCase()){return`armour belongs to ${truncate(module.ship)}, not ${truncate(hull?.name??shipSymbol)}`}return null}const restricted=module.restrictedToShips;if(restricted&&!restricted.some(symbol2=>symbol2.toLowerCase()===shipSymbol.toLowerCase())){const hulls=restricted.map(symbol2=>{const hull=getShipBySymbol(symbol2);return hull?`${hull.name} (${symbol2})`:symbol2});return`module is restricted to ${truncate(hulls.join(", "))}`}const wrongMount=moduleSlotError(slot,module);if(wrongMount)return wrongMount;const symbol=module.symbol.toLowerCase();const moduleSlot=module.slot;switch(slot.kind){case"core":if(moduleSlot!==slot.core)return`not a ${slot.core} module`;break;case"hardpoint":{if(module.category!=="hardpoint")return"not a hardpoint weapon";const problem=restrictionError(slot,symbol);if(problem)return problem;break}case"utility":if(module.category!=="utility")return"not a utility module";return null;case"optional":{const isFuelTank=moduleSlot==="fuelTank";if(module.category!=="internal"&&!isFuelTank){return"not an optional-internal module"}if(moduleSlot&&!isFuelTank)return"a core module only fits its core slot";const problem=restrictionError(slot,symbol);if(problem)return problem;break}}return module.class>slot.size?`module size ${truncate(module.class)} exceeds slot size ${slot.size}`:null}var REBUY_FRACTION=.05;function exportLoadoutEvent(input,options){const fromSource=options.credits==="source";const source=fromSource?input.sourcePurchase:null;const totals=source!==null&&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{event:"Loadout",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},...input.unladenMass===null?{}:{UnladenMass:input.unladenMass},...input.cargoCapacity===null?{}:{CargoCapacity:input.cargoCapacity},...input.maxJumpRange===null?{}:{MaxJumpRange:input.maxJumpRange},...input.fuelCapacity===null?{}:{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.shipSymbol,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(shipSymbol,modules,layout){if(!layout){throw new TypeError(`ShipLoadout.toLoadoutEvent: no slot layout for hull "${truncate(shipSymbol)}", so modules cannot be ordered by slot`)}const remaining=new Map(modules);const ordered=[];for(const slot of layout){const key=matchingKeyIn(remaining,slot.key);const module=key===null?void 0:remaining.get(key);if(module&&key!==null){ordered.push(module);remaining.delete(key)}}return[...ordered,...remaining.values()]}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||normalizeKey(fitted.Item,FITTED_ITEM)!==normalizeKey(entry.item,SOURCE_ITEM)){return false}}return true}function captureLoadoutEvent(event){const modules=event.Modules;const shipName=event.ShipName;const shipIdent=event.ShipIdent;const hullValue=event.HullValue;const modulesValue=event.ModulesValue;const rebuy=event.Rebuy;const unladenMass=event.UnladenMass;const cargoCapacity=event.CargoCapacity;const fuelCapacity=event.FuelCapacity;return{Ship:event.Ship,Modules:Array.isArray(modules)?captureEach(modules,captureModule):modules,...shipName===void 0?{}:{ShipName:shipName},...shipIdent===void 0?{}:{ShipIdent:shipIdent},...hullValue===void 0?{}:{HullValue:hullValue},...modulesValue===void 0?{}:{ModulesValue:modulesValue},...rebuy===void 0?{}:{Rebuy:rebuy},...unladenMass===void 0?{}:{UnladenMass:unladenMass},...cargoCapacity===void 0?{}:{CargoCapacity:cargoCapacity},...fuelCapacity===void 0?{}:{FuelCapacity:{...fuelCapacity}}}}function captureEach(values,capture){const captured=[];const{length:length}=values;for(let index=0;index<length;index++)captured.push(capture(values[index]));return captured}function captureModule(module){if(module===null||typeof module!=="object")return module;const on=module.On;const priority=module.Priority;const health=module.Health;const value=module.Value;const engineering=module.Engineering;return{Slot:module.Slot,Item:module.Item,...on===void 0?{}:{On:on},...priority===void 0?{}:{Priority:priority},...health===void 0?{}:{Health:health},...value===void 0?{}:{Value:value},...engineering===void 0?{}:{Engineering:captureEngineering(engineering)}}}function captureEngineering(engineering){if(engineering===null||typeof engineering!=="object")return engineering;const experimental=engineering.ExperimentalEffect;const experimentalLocalised=engineering.ExperimentalEffect_Localised;const modifiers=engineering.Modifiers;return{BlueprintName:engineering.BlueprintName,Level:engineering.Level,Quality:engineering.Quality,...experimental===void 0?{}:{ExperimentalEffect:experimental},...experimentalLocalised===void 0?{}:{ExperimentalEffect_Localised:experimentalLocalised},...modifiers===void 0?{}:{Modifiers:Array.isArray(modifiers)?captureEach(modifiers,modifier=>modifier!==null&&typeof modifier==="object"?{...modifier}:modifier):modifiers}}}function normalizeLoadoutEvent(rawEvent){const event=captureLoadoutEvent(rawEvent);requireStringIfPresent(event.Ship,"ShipLoadout.fromLoadout: event.Ship");if(!Array.isArray(event.Modules)){throw new TypeError(`ShipLoadout.fromLoadout: event.Modules must be an array, received ${describeValue(event.Modules)}`)}const modules=/* @__PURE__ */new Map;const slots=/* @__PURE__ */new Set;for(const module of event.Modules){if(module===null||typeof module!=="object"){throw new TypeError(`ShipLoadout.fromLoadout: event.Modules[] must hold module objects, received ${describeValue(module)}`)}requireString(module.Slot,"ShipLoadout.fromLoadout: module.Slot");requireString(module.Item,"ShipLoadout.fromLoadout: module.Item");if(module.Engineering!==void 0){if(module.Engineering===null||typeof module.Engineering!=="object"){throw new TypeError(`ShipLoadout.fromLoadout: module.Engineering must be an object, received ${describeValue(module.Engineering)}`)}requireStringIfPresent(module.Engineering.BlueprintName,"ShipLoadout.fromLoadout: module.Engineering.BlueprintName");requireStringIfPresent(module.Engineering.ExperimentalEffect,"ShipLoadout.fromLoadout: module.Engineering.ExperimentalEffect");if(module.Engineering.Modifiers!==void 0&&!Array.isArray(module.Engineering.Modifiers)){throw new TypeError(`ShipLoadout.fromLoadout: module.Engineering.Modifiers must be an array, received ${describeValue(module.Engineering.Modifiers)}`)}for(const[index,modifier]of(module.Engineering.Modifiers??[]).entries()){if(modifier===null||typeof modifier!=="object"){throw new TypeError(`ShipLoadout.fromLoadout: module.Engineering.Modifiers[${index}] must be an object, received ${describeValue(modifier)}`)}requireString(modifier.Label,`ShipLoadout.fromLoadout: module.Engineering.Modifiers[${index}].Label`)}}const normalizedSlot=module.Slot.toLowerCase();if(slots.has(normalizedSlot)){throw new TypeError(`ShipLoadout.fromLoadout: duplicate slot "${truncate(module.Slot)}"`)}slots.add(normalizedSlot);modules.set(module.Slot,cloneLoadoutModule(module))}const top={};if(event.ShipName!==void 0)top.ShipName=event.ShipName;if(event.ShipIdent!==void 0)top.ShipIdent=event.ShipIdent;if(event.HullValue!==void 0)top.HullValue=event.HullValue;if(event.ModulesValue!==void 0)top.ModulesValue=event.ModulesValue;if(event.Rebuy!==void 0)top.Rebuy=event.Rebuy;if(event.UnladenMass!==void 0)top.UnladenMass=event.UnladenMass;if(event.CargoCapacity!==void 0)top.CargoCapacity=event.CargoCapacity;if(event.FuelCapacity!==void 0)top.FuelCapacity={...event.FuelCapacity};const moduleStats=/* @__PURE__ */new Map;for(const module of modules.values()){const engineering=module.Engineering;const variant=identifyPreEngineeredVariant(module);const variantStats=variant?getPreEngineeredStats(variant):null;if(variantStats)moduleStats.set(module.Slot,cloneModuleStats(variantStats));if(variantStats?.engineeringLocked||typeof engineering?.BlueprintName!=="string"||!isFinalGuardianWeaponEngineering(module.Item,engineering.BlueprintName)){continue}const normalizedBlueprint=normalizeKey(engineering.BlueprintName,"ShipLoadout.fromLoadout: module.Engineering.BlueprintName");const normalizedExperimental=normalizeKey(engineering.ExperimentalEffect,"ShipLoadout.fromLoadout: module.Engineering.ExperimentalEffect");const exact=getPreEngineeredVariants(module.Item).find(candidate=>candidate.blueprint.toLowerCase()===normalizedBlueprint&&candidate.grade===engineering.Level&&candidate.experimental?.toLowerCase()===normalizedExperimental);const stats=exact?getPreEngineeredStats(exact):builtInModuleBySymbol(module.Item,"ShipLoadout.fromLoadout: module.Item");if(stats){moduleStats.set(module.Slot,cloneModuleStats({...stats,engineeringLocked:true}))}}return{shipSymbol:event.Ship,modules:modules,moduleStats:moduleStats,top:top,sourcePurchase:sourcePurchaseFromLoadout(event)}}var SLOT_KEY="ShipLoadout: slotKey";var FSD_PREFIX="int_hyperdrive";var BOOSTER_PREFIX="int_guardianfsdbooster";var FUEL_TANK_PREFIX="int_fueltank";var ShipLoadout=class _ShipLoadout{#shipSymbol;#modules;#moduleStats;#top;#sourcePurchase;#version=0;#viewVersion=0;#layoutCache;#calculationCache=null;#validationCache=null;#fittedModuleCache=null;#slotCache=null;constructor(shipSymbol,modules,top,sourcePurchase=null,moduleStats=/* @__PURE__ */new Map){this.#shipSymbol=shipSymbol;this.#modules=modules;this.#top=top;this.#sourcePurchase=sourcePurchase;this.#moduleStats=moduleStats}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})`)}return _ShipLoadout.fromLoadout(entry.data)}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);return new _ShipLoadout(imported.shipSymbol,imported.modules,imported.top,imported.sourcePurchase,imported.moduleStats)}static empty(shipSymbol){const layout=getShipSlots(requireString(shipSymbol,"ShipLoadout.empty: shipSymbol"));if(!layout){throw new TypeError(`ShipLoadout.empty: no slot layout for hull "${truncate(shipSymbol)}"`)}return new _ShipLoadout(layout.symbol,/* @__PURE__ */new Map,{})}get shipSymbol(){return this.#shipSymbol}get shipName(){return this.#top.ShipName??null}get shipIdent(){return this.#top.ShipIdent??null}get unladenMass(){return this.unladenMassResult.value}get unladenMassResult(){return this.#top.UnladenMass===void 0?this.#computedUnladenMass():completeResult(this.#top.UnladenMass)}#computedUnladenMass(){return calculateUnladenMass(getShipBySymbol(this.#shipSymbol)?.hullMass??null,this.#calculationModules())}get fuelCapacity(){return this.fuelCapacityResult.value}get fuelCapacityResult(){const cap=this.#top.FuelCapacity;if(cap?.Main!==void 0&&cap.Reserve!==void 0){return completeResult(Object.freeze({main:cap.Main,reserve:cap.Reserve}))}const computed=this.#computedFuelCapacity();if(computed.value===null)return computed;return completeResult(Object.freeze({main:cap?.Main??computed.value.main,reserve:cap?.Reserve??computed.value.reserve}))}get cargoCapacity(){return this.cargoCapacityResult.value}get cargoCapacityResult(){return this.#top.CargoCapacity===void 0?this.#computedCargoCapacity():completeResult(this.#top.CargoCapacity)}#computedCargoCapacity(){return calculateCargoCapacity(this.#calculationModules())}#computedFuelCapacity(){return calculateFuelCapacity(getShipBySymbol(this.#shipSymbol)?.reserveFuelCapacity??null,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 validation(){const cached=this.#validationCache;if(cached!==null&&cached.version===this.#version)return cached.value;const slots=this.#layoutOrNull();const byKey=new Map(slots?.map(slot=>[slot.key.toLowerCase(),slot])??[]);const modules=[...this.#modules.values()].map(module=>{const stats=this.#statsFor(module);const slot=byKey.get(module.Slot.toLowerCase());const builtIn=stats===null&&isNonOutfittingSlot(module.Slot)||isBuiltInHullModule(module);return{slot:module.Slot,symbol:module.Item,known:stats!==null||builtIn,requiresKnownSlot:!builtIn,fitError:stats&&slot&&!builtIn?moduleFitError(this.#shipSymbol,slot,stats):null}});const value=validateLoadout({shipSymbol:this.#shipSymbol,slots:slots,modules:modules});this.#validationCache={version:this.#version,value:value};return value}slots(kind){let cached=this.#slotCache;if(cached===null||cached.version!==this.#viewVersion){cached={version:this.#viewVersion,value:/* @__PURE__ */new Map};this.#slotCache=cached}const existing=cached.value.get(kind);if(existing!==void 0)return existing;const slots=kind===void 0?this.#layout():this.#layout().filter(slot=>slot.kind===kind);const value=deepFreeze(slots.map(slot=>({...slot,name:loadoutSlotName(slot),module:this.fittedModuleAt(slot.key)})));cached.value.set(kind,value);return value}fittedModuleAt(slotKey){const module=this.#fittedModuleFor(slotKey);if(!module)return null;let cached=this.#fittedModuleCache;if(cached===null||cached.version!==this.#viewVersion){cached={version:this.#viewVersion,value:/* @__PURE__ */new Map};this.#fittedModuleCache=cached}const existing=cached.value.get(module.Slot);if(existing!==void 0)return existing;const raw=cloneLoadoutModule(module);const stats=this.#statsFor(module);const effective=effectiveModule(raw,stats);const value=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:identifyPreEngineeredVariant(raw)});cached.value.set(module.Slot,value);return value}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);return ALL_MODULES.filter(module=>moduleFitError(this.#shipSymbol,slot,module)===null)}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)}`)}const problem=moduleFitError(this.#shipSymbol,slot,module);if(problem){throw new TypeError(`ShipLoadout.setModule: ${truncate(module.symbol)} → ${truncate(slotKey)}: ${problem}`)}const key=this.#fittedKey(slotKey)??slot.key;this.#replaceModule(key,{Slot:key,Item:module.symbol},cloneModuleStats(module));return this}removeModule(slotKey){if(requireString(slotKey,SLOT_KEY).toLowerCase()==="cargohatch"){throw new TypeError("ShipLoadout.removeModule: the cargoHatch slot cannot be changed")}const key=this.#fittedKey(slotKey);if(key!==null)this.#replaceModule(key,null);return this}applyBlueprint(slotKey,fdname,options){requireString(fdname,"ShipLoadout.applyBlueprint: fdname");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.experimental??void 0;requireStringIfPresent(wantedExperimental,"ShipLoadout.applyBlueprint: options.experimental");const module=this.#fittedModuleFor(slotKey);if(!module){throw new RangeError(`ShipLoadout.applyBlueprint: slot "${truncate(slotKey)}" is empty`)}const stats=this.#statsFor(module);if(!stats){throw new TypeError(`ShipLoadout.applyBlueprint: no stats for module "${truncate(module.Item)}"`)}const recipe=resolveBlueprintForModule(module.Item,fdname);const named=recipe===fdname?`"${truncate(fdname)}"`:`"${truncate(fdname)}" (${truncate(recipe)} on this module)`;if(isDecorativeModification(recipe)){throw new TypeError(`ShipLoadout.applyBlueprint: ${named} is a decorative modification, not a blueprint; no engineer applies one, and the stat changes it arrives with are in DECORATIVE_MODIFICATIONS`)}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(stats.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,fdname)){throw new TypeError(isEngineerable(module.Item)?`ShipLoadout.applyBlueprint: module "${truncate(module.Item)}" is not offered blueprint ${named}; it takes ${getBlueprintsForModule(module.Item).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 base=baseStats(stats);const missing=missingBaseLabels(stats,base,grade.features,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 modifiers=computeModifiers(base,grade,quality,experimental);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;modifiers.push({Label:label,Value:value*scaleForLabel(label),OriginalValue:(stats.damageDistribution?.[type]??0)*scaleForLabel(label)})}}const engineering={BlueprintName:fdname,Level:wantedGrade,Quality:quality,...wantedExperimental!==void 0?{ExperimentalEffect:wantedExperimental}:{},Modifiers:modifiers};this.#replaceModule(module.Slot,{...module,Engineering:engineering});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 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)}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.#viewVersion++}toLoadoutEvent(options={}){const hull=getShipBySymbol(this.#shipSymbol);const unladenMass=this.#computedUnladenMass().value;const cargoCapacity=this.#computedCargoCapacity().value;const fuel=this.#computedFuelCapacity().value;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,...options.moduleOrder==="slots"?{layout:this.#layoutOrNull()}:{},sourcePurchase:this.#sourcePurchase,retailHullValue:hull?.hullCost??null,unladenMass:unladenMass,cargoCapacity:cargoCapacity,fuelCapacity:fuel,maxJumpRange:maxJumpRange,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){if(unladenMass===null)return null;let drive;try{drive=this.#resolveDrive()}catch{return null}if(drive===null)return null;const tank=this.#computedFuelCapacity().value;if(tank===null)return null;return singleJumpRange(unladenMass,Math.min(tank.main,drive.maxFuel),drive)}get frameShiftDrive(){const drive=this.#resolveDrive();if(drive===null)throw new TypeError("ShipLoadout: build has no frame shift drive");return drive}maxJumpRange(){const fsd=this.frameShiftDrive;const fuel=Math.min(this.#requireFuelCapacity().main,fsd.maxFuel);return singleJumpRange(this.#requireMass(0),fuel,fsd)}jumpRange(options={}){const fsd=this.frameShiftDrive;const fuel=options.fuel??this.#requireFuelCapacity().main;return singleJumpRange(this.#requireMass(options.cargo??0),fuel,fsd)}ladenJumpRange(){return this.jumpRange({cargo:this.#requireCargoCapacity()})}fuelPerJump(distance,options={}){const fsd=this.frameShiftDrive;const fuel=options.fuel??this.#requireFuelCapacity().main;return fuelPerJump(distance,this.#requireMass(options.cargo??0),fuel,fsd)}totalRange(options={}){return totalRange(this.#requireMass(options.cargo??0),this.#requireFuelCapacity().main,this.frameShiftDrive)}jumpRangeSummary(){const cargo=this.#requireCargoCapacity();return{max:this.maxJumpRange(),unladen:this.jumpRange(),laden:this.jumpRange({cargo:cargo}),totalUnladen:this.totalRange(),totalLaden:this.totalRange({cargo:cargo})}}powerBudget(){const modules=[...this.#modules.values()];const consumers=[];for(const module of modules){const consumer=powerConsumerFor(module,this.#statsFor(module));if(consumer)consumers.push(consumer)}return powerBudget(powerAvailable(modules,module=>this.#statsFor(module)),consumers)}shieldMetrics(options={}){const input=shieldInputFor(this.#shipSymbol,[...this.#modules.values()],options.systemsPips??0,module=>this.#statsFor(module));if(!input.generator)return null;return shieldMetrics(input)}armourMetrics(){return armourMetrics(armourInputFor(this.#shipSymbol,[...this.#modules.values()],module=>this.#statsFor(module)))}weaponMetrics(){const weapons=[];for(const module of this.#modules.values()){const record=this.#statsFor(module);const stats=weaponStatsFor(module,record);if(!stats)continue;weapons.push({slot:module.Slot,symbol:module.Item,name:record?.name??module.Item,enabled:module.On!==false,metrics:weaponMetrics(stats),ammunition:ammunitionCapacity(stats)})}return{weapons:weapons,total:sumWeaponMetrics(weapons.filter(weapon=>weapon.enabled).map(weapon=>weapon.metrics))}}#layoutOrNull(){if(this.#layoutCache===void 0){const layout=getShipSlots(this.#shipSymbol);this.#layoutCache=layout===null?null:Object.freeze(enumerateSlots(layout))}return this.#layoutCache}#invalidate(){this.#version++;this.#viewVersion++}#layout(){const layout=this.#layoutOrNull();if(!layout){throw new TypeError(`ShipLoadout: no slot layout for hull "${truncate(this.#shipSymbol)}"`)}return layout}#requireSlot(slotKey){const wanted=requireString(slotKey,SLOT_KEY).toLowerCase();const slot=this.#layout().find(s=>s.key.toLowerCase()===wanted);if(!slot){throw new RangeError(`ShipLoadout: hull "${truncate(this.#shipSymbol)}" has no slot "${truncate(slotKey)}"`)}return slot}#fittedKey(slotKey){return matchingKeyIn(this.#modules,requireString(slotKey,SLOT_KEY))}#fittedModuleFor(slotKey){const key=this.#fittedKey(slotKey);return key===null?void 0:this.#modules.get(key)}#require(result,what){if(result.value===null){throw new TypeError(`ShipLoadout: cannot determine ${what} (${result.issues.map(i=>i.message).join("; ")})`)}return result.value}#requireMass(cargo){return this.#require(this.unladenMassResult,"mass")+cargo}#requireFuelCapacity(){return this.#require(this.fuelCapacityResult,"fuel capacity")}#requireCargoCapacity(){return this.#require(this.cargoCapacityResult,"cargo capacity")}#calculationModules(){const cached=this.#calculationCache;if(cached!==null&&cached.version===this.#version)return cached.value;const value=this.#resolveCalculationModules();this.#calculationCache={version:this.#version,value:value};return value}#resolveCalculationModules(){return[...this.#modules.values()].map(module=>{const stats=this.#statsFor(module);const symbol=module.Item.toLowerCase();const parsedSlot=parseSlotName(module.Slot);const unresolvedOutfitting=stats===null&&!isNonOutfittingSlot(module.Slot)&&!isBuiltInHullModule(module);const isCargoRack=stats?.cargoCapacity!==void 0||stats?.engineeringGroup==="cargoRacks"||symbol.includes("cargorack");const isFuelTank=stats?.fuelCapacity!==void 0||stats?.slot==="fuelTank"||symbol.startsWith(FUEL_TANK_PREFIX);const mayCarryCapacity=unresolvedOutfitting&&(parsedSlot===null||parsedSlot.kind==="optional");const mayCarryFuel=mayCarryCapacity||unresolvedOutfitting&&parsedSlot?.kind==="core"&&parsedSlot.core==="fuelTank";return{slot:module.Slot,symbol:module.Item,mass:this.#moduleMass(module),...isCargoRack||mayCarryCapacity?{cargoCapacity:isCargoRack?this.#moduleCapacity(module,"CargoCapacity","cargoCapacity"):null}:{},...isFuelTank||mayCarryFuel?{fuelCapacity:isFuelTank?this.#moduleCapacity(module,"FuelCapacity","fuelCapacity"):null}:{}}})}#replaceModule(slotKey,replacement,replacementStats){const previous=this.#modules.get(slotKey)??null;this.#adjustImportedFigures(previous,replacement,replacementStats);if(replacement===null){this.#modules.delete(slotKey);this.#moduleStats.delete(slotKey)}else{this.#modules.set(slotKey,cloneLoadoutModule(replacement));if(replacementStats!==void 0)this.#moduleStats.set(slotKey,replacementStats)}this.#invalidate()}#adjustImportedFigures(previous,next,nextStats){const previousMass=this.#moduleMass(previous);const nextMass=this.#moduleMass(next,nextStats);if(this.#top.UnladenMass!==void 0){if(previousMass===null||nextMass===null)delete this.#top.UnladenMass;else this.#top.UnladenMass+=nextMass-previousMass}const previousCargo=this.#moduleCapacity(previous,"CargoCapacity","cargoCapacity");const nextCargo=this.#moduleCapacity(next,"CargoCapacity","cargoCapacity",nextStats);if(this.#top.CargoCapacity!==void 0){if(previousCargo===null||nextCargo===null)delete this.#top.CargoCapacity;else this.#top.CargoCapacity+=nextCargo-previousCargo}const previousFuel=this.#moduleCapacity(previous,"FuelCapacity","fuelCapacity");const nextFuel=this.#moduleCapacity(next,"FuelCapacity","fuelCapacity",nextStats);if(this.#top.FuelCapacity?.Main!==void 0){const reserve=this.#top.FuelCapacity.Reserve;if(previousFuel===null||nextFuel===null){if(reserve===void 0)delete this.#top.FuelCapacity;else this.#top.FuelCapacity={Reserve:reserve}}else{this.#top.FuelCapacity={Main:this.#top.FuelCapacity.Main+nextFuel-previousFuel,...reserve===void 0?{}:{Reserve:reserve}}}}if(normalizeKey(previous?.Item,FITTED_ITEM)===normalizeKey(next?.Item,FITTED_ITEM)){return}delete this.#top.ModulesValue;delete this.#top.Rebuy}#moduleMass(module,statsOverride){if(module===null)return 0;const modified=getLoadoutModifier(module,"Mass");if(modified!==null)return modified;const stats=statsOverride??this.#statsFor(module);if(stats?.mass!==void 0)return stats.mass;if(isBuiltInHullModule(module))return 0;return stats===null&&isNonOutfittingSlot(module.Slot)?0:null}#moduleCapacity(module,modifierLabel,field,statsOverride){if(module===null)return 0;const modified=getLoadoutModifier(module,modifierLabel);if(modified!==null)return modified;const stats=statsOverride??this.#statsFor(module);if(stats?.[field]!==void 0)return stats[field];const symbol=module.Item.toLowerCase();const isFuelTank=stats?.slot?stats.slot==="fuelTank":symbol.startsWith(FUEL_TANK_PREFIX);const shouldCarryCapacity=field==="cargoCapacity"?symbol.includes("cargorack"):isFuelTank;return shouldCarryCapacity?null:0}#resolveDrive(){let fsdModule;for(const m of this.#modules.values()){const stats=this.#statsFor(m);const isDrive=stats?.slot?stats.slot==="frameShiftDrive":m.Item.toLowerCase().startsWith(FSD_PREFIX);if(isDrive){fsdModule=m;break}}if(!fsdModule)return null;const base=this.#statsFor(fsdModule);if(!base||base.fuelMul===void 0||base.fuelPower===void 0){throw new TypeError(`ShipLoadout: no jump constants in the stats catalogue for frame shift drive "${truncate(fsdModule.Item)}"`)}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: frame shift drive "${truncate(fsdModule.Item)}" has no ${missing.join(" or ")} in the stats catalogue`)}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"&&!m.Item.toLowerCase().startsWith(BOOSTER_PREFIX)){continue}if(m.On===false)continue;if(stats?.jumpBoost===void 0){throw new TypeError(`ShipLoadout: FSD booster "${truncate(m.Item)}" has no jumpBoost in the stats catalogue`)}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{ShipLoadout};//# sourceMappingURL=chunk-RD73TFGS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ships/internal/loadout-state.ts","../src/ships/internal/loadout-engineering.ts","../src/ships/internal/loadout-metrics.ts","../src/ships/internal/loadout-views.ts","../src/ships/internal/loadout-fitting.ts","../src/ships/internal/loadout-export.ts","../src/ships/internal/loadout-import.ts","../src/ships/ship-loadout.ts"],"names":["getShipSlots","getShipBySymbol","parseSlef","toSlef","stringifySlef","getLoadoutModifier","enumerateSlots","parseSlotName","SLOT_RESTRICTION_LABELS","sourcePurchaseFromLoadout","getSourceModuleValue","powerBudget","identifyPreEngineeredVariant","getPreEngineeredStats","scaleDamageComponents","weaponMetrics","sumWeaponMetrics","combinedRateOfFire","builtInModuleBySymbol","getBulkheadsForShip","getPreEngineeredVariants","shieldMetrics","singleJumpRange","fuelPerJump","totalRange","completeResult","calculateUnladenMass","calculateCargoCapacity","calculateFuelCapacity","validateLoadout","ALL_MODULES","CORE_MODULES","resolveBlueprintForModule","getBlueprintGrade","BLUEPRINTS","getBlueprint","isDecorativeModification","getBlueprintsForModule","getExperimentalsForModule","getEngineeringGroup","getExperimentalEffect","EXPERIMENTAL_EFFECTS","ammunitionCapacity","armourMetrics","baseStats","computeModifiers","labelsForDamageType","scaleForLabel","fieldForLabel","labelsForField","capabilityValueForLabel","damageTypeForLabel","normalizeKey","truncate","describeValue","requireString","requireStringIfPresent","deepFreeze","FITTED_ITEM","isNonOutfittingSlot","slotKey","test","isBuiltInHullModule","module","Slot","toLowerCase","Item","startsWith","cloneLoadoutModule","On","Priority","Health","Value","Engineering","BlueprintName","Level","Quality","ExperimentalEffect","ExperimentalEffect_Localised","Modifiers","map","modifier","matchingKeyIn","keyed","has","wanted","key","keys","cloneModuleStats","restrictedToShips","damageDistribution","damageComponents","unclassified","projectileRange","GUARDIAN_WEAPON_GROUPS","Set","missingBaseLabels","stats","base","features","experimental","contributions","contribution","label","filter","recipeSignature","fdname","blueprint","grades","Object","entries","grade","feature","method","sort","join","name","isGenericSpelling","isSoldWithBlueprint","item","some","variant","engineeringLocked","blueprintAvailableFor","offered","asWritten","resolved","trim","id","signature","experimentalAvailableFor","isEngineerable","isFinalGuardianWeaponEngineering","group","engineerableBase","statsOverride","availableBlueprintsFor","engineerable","available","length","Number","isFinite","a","b","push","availableExperimentalsFor","effect","modifiers","PREFIX","powerPlant","shieldGenerator","shieldBooster","shieldReinforcement","hullReinforcement","moduleReinforcement","startsWithAny","symbol","prefixes","prefix","isEnabled","priorityOf","effectiveStat","field","stated","statedModifier","modified","effectiveCapability","Label","effectiveDamageDistribution","fromEffect","distribution","type","convertsDamage","modifierRatio","effective","relatedStat","ratio","effectiveModule","merged","fields","add","capability","value","engineeringGroup","massRatio","minMass","maxMass","category","normalizeEffectiveWeapon","damage","powerConsumerFor","draw","parsedSlot","mounted","deployedOnly","alwaysPowered","kind","common","priority","enabled","inherentlyPassiveSlot","core","drawUnknown","powerAvailable","modules","statsFor","isPlant","slot","mapResistanceFields","read","kineticResistance","thermalResistance","explosiveResistance","causticResistance","resistancesOf","shieldInputFor","shipSymbol","systemsPips","hull","generator","boosters","reinforcement","strengthRatio","optMass","Math","max","optMultiplier","minMultiplier","maxMultiplier","shieldBoost","hullMass","baseShieldStrength","stockBulkhead","variants","find","v","endsWith","mass","armourInputFor","reinforcements","moduleReinforcements","bulkhead","hullBoost","boost","moduleProtection","integrity","stock","baseArmour","WEAPON_FIELDS","weaponStatsFor","weapon","burstAdjustedRateOfFire","touched","rate","rateOfFire","statedDamagePerSecond","firingFactor","roundsPerShot","maximumRange","falloffRange","CORE_NAMES","thrusters","frameShiftDrive","lifeSupport","powerDistributor","sensors","fuelTank","RESTRICTED_OPTIONAL_NAMES","military","cargo","limpetController","vesselHangar","passenger","trailingDigits","start","code","charCodeAt","slice","loadoutSlotName","match","exec","restriction","numbered","optional","size","MILITARY_PREFIXES","MINING_PREFIXES","CARGO_PREFIXES","RESTRICTED_SLOT_PREFIXES","mining","planetaryApproachSuite","restrictionError","moduleSlotError","required","restrictedToSlot","moduleFitError","ship","restricted","hulls","wrongMount","moduleSlot","problem","isFuelTank","class","REBUY_FRACTION","exportLoadoutEvent","input","options","fromSource","credits","source","sourcePurchase","totals","sourceTotalsHold","hullValue","retailHullValue","modulesValue","computedModulesValue","rebuy","trunc","event","Ship","shipName","ShipName","shipIdent","ShipIdent","HullValue","ModulesValue","unladenMass","UnladenMass","cargoCapacity","CargoCapacity","maxJumpRange","MaxJumpRange","fuelCapacity","FuelCapacity","Main","main","Reserve","reserve","Rebuy","Modules","exportModules","ordered","moduleOrder","slotOrderedModules","layout","values","on","explicitPower","sourceModuleValue","moduleValue","TypeError","remaining","Map","get","delete","sum","cost","SOURCE_ITEM","entry","moduleValues","fitted","captureLoadoutEvent","Array","isArray","captureEach","captureModule","capture","captured","index","health","engineering","captureEngineering","experimentalLocalised","normalizeLoadoutEvent","rawEvent","slots","normalizedSlot","set","top","moduleStats","variantStats","normalizedBlueprint","normalizedExperimental","exact","candidate","SLOT_KEY","FSD_PREFIX","BOOSTER_PREFIX","FUEL_TANK_PREFIX","ShipLoadout","_ShipLoadout","version","viewVersion","layoutCache","calculationCache","validationCache","fittedModuleCache","slotCache","constructor","this","fromSlef","fromLoadout","data","imported","empty","unladenMassResult","computedUnladenMass","calculationModules","fuelCapacityResult","cap","freeze","computed","computedFuelCapacity","cargoCapacityResult","computedCargoCapacity","reserveFuelCapacity","validation","cached","layoutOrNull","byKey","builtIn","known","requiresKnownSlot","fitError","existing","fittedModuleAt","fittedModuleFor","raw","effectiveStats","ammunition","preEngineeredVariant","fittedModules","flatMap","availableBlueprints","availableExperimentalEffects","modulesForSlot","requireSlot","setModule","fittedKey","replaceModule","removeModule","applyBlueprint","wantedGrade","wantedQuality","quality","wantedExperimental","RangeError","recipe","named","isInteger","missing","OriginalValue","clearEngineering","bare","setModuleEnabled","patchModule","setModulePriority","patch","toLoadoutEvent","fuel","exportableJumpRange","hullCost","header","toSlefString","indent","drive","resolveDrive","tank","min","maxFuel","fsd","requireFuelCapacity","requireMass","jumpRange","ladenJumpRange","requireCargoCapacity","distance","jumpRangeSummary","unladen","laden","totalUnladen","totalLaden","consumers","consumer","weapons","record","metrics","total","invalidate","s","require","result","what","issues","i","message","resolveCalculationModules","unresolvedOutfitting","isCargoRack","includes","mayCarryCapacity","mayCarryFuel","moduleMass","moduleCapacity","replacement","replacementStats","previous","adjustImportedFigures","next","nextStats","previousMass","nextMass","previousCargo","nextCargo","previousFuel","nextFuel","modifierLabel","shouldCarryCapacity","fsdModule","m","isDrive","fuelMul","fuelPower","jumpBoost","resolveJumpBoost"],"mappings":"O,s0DAYO,IAAM0D,YAAc,kCAGpB,SAASC,oBAAoBC,SAChC,MAAO,kIAAkIC,KACrID,QAER,CAGO,SAASE,oBAAoBC,QAChC,OACIA,OAAOC,KAAKC,gBAAkB,cAC9BF,OAAOG,KAAKD,cAAcE,WAAW,sBAE7C,CAGO,SAASC,mBAAmBL,QAC/B,MAAO,CACHC,KAAMD,OAAOC,KACbE,KAAMH,OAAOG,QACTH,OAAOM,UAAO,EAAY,CAAA,EAAK,CAAEA,GAAIN,OAAOM,OAC5CN,OAAOO,gBAAa,EAAY,CAAA,EAAK,CAAEA,SAAUP,OAAOO,aACxDP,OAAOQ,cAAW,EAAY,CAAA,EAAK,CAAEA,OAAQR,OAAOQ,WACpDR,OAAOS,aAAU,EAAY,CAAA,EAAK,CAAEA,MAAOT,OAAOS,UAClDT,OAAOU,mBAAgB,EACrB,CAAA,EACA,CACIA,YAAa,CACTC,cAAeX,OAAOU,YAAYC,cAClCC,MAAOZ,OAAOU,YAAYE,MAC1BC,QAASb,OAAOU,YAAYG,WACxBb,OAAOU,YAAYI,0BAAuB,EACxC,CAAA,EACA,CAAEA,mBAAoBd,OAAOU,YAAYI,uBAC3Cd,OAAOU,YAAYK,oCAAiC,EAClD,CAAA,EACA,CACIA,6BACIf,OAAOU,YAAYK,iCAE7Bf,OAAOU,YAAYM,iBAAc,EAC/B,CAAA,EACA,CACIA,UAAWhB,OAAOU,YAAYM,UAAUC,IAAKC,WAAA,IACtCA,eAMvC,CAaO,SAASC,cAAcC,MAAqCvB,SAC/D,GAAIuB,MAAMC,IAAIxB,SAAU,OAAOA,QAC/B,MAAMyB,OAASzB,QAAQK,cACvB,IAAA,MAAWqB,OAAOH,MAAMI,OAAQ,CAC5B,GAAID,IAAIrB,gBAAkBoB,OAAQ,OAAOC,GAC7C,CACA,OAAO,IACX,CAGO,SAASE,iBAAiBzB,QAC7B,OAAON,WAAW,IACXM,UACCA,OAAO0B,yBAAsB,EAC3B,CAAA,EACA,CAAEA,kBAAmB,IAAI1B,OAAO0B,uBAClC1B,OAAO2B,0BAAuB,EAC5B,CAAA,EACA,CAAEA,mBAAoB,IAAK3B,OAAO2B,wBACpC3B,OAAO4B,wBAAqB,EAC1B,CAAA,EACA,CACIA,iBAAkB,IACX5B,OAAO4B,oBACN5B,OAAO4B,iBAAiBC,oBAAiB,EACvC,CAAA,EACA,CAAEA,aAAc,IAAI7B,OAAO4B,iBAAiBC,oBAG5D7B,OAAO8B,uBAAoB,EACzB,CAAA,EACA,CAAEA,gBAAiB,IAAK9B,OAAO8B,mBAE7C,CCvFA,IAAMC,sCAAA,IAAkDC,IAAI,CACxD,gBACA,iBACA,kBAeG,SAASC,kBACZC,MACAC,KACAC,SACAC,cAEA,MAAMC,cAAgB,IAAIF,YAAcC,cAAgB,IACxD,MAAO,IACA,IAAIL,IACHM,cACKrB,IAAKsB,cAAiBA,aAAaC,OACnCC,OAAQD,QACL,GAAIL,KAAKK,cAAW,EAAW,OAAO,MACtC,OAAOvD,cAAcuD,MAAON,SAAW,QAI3D,CAeA,SAASQ,gBAAgBC,QACrB,MAAMC,UAAYxE,aAAauE,QAC/B,IAAKC,UAAW,OAAO,KACvB,MAAMC,OAASC,OAAOC,QAAQH,UAAUC,QACnC5B,IACG,EAAE+B,OAASZ,sBACP,GAAGY,SAASZ,SACPnB,IAAKgC,SAAY,GAAGA,QAAQT,SAASS,QAAQC,QAAU,MACvDC,OACAC,KAAK,QAEjBD,OACAC,KAAK,KACV,MAAO,GAAGR,UAAUS,KAAKnD,iBAAiB2C,QAC9C,CAGA,IAAMS,kBAAqBX,QAA4BA,OAAOzC,cAAcE,WAAW,SA0BvF,SAASmD,oBAAoBC,KAAclC,QACvC,OAAOjE,yBAAyBmG,MAAMC,KACjCC,UAAaA,QAAQC,mBAAqBD,QAAQd,UAAU1C,gBAAkBoB,OAEvF,CA+DO,SAASsC,sBAAsBJ,KAAcb,QAChD,MAAMkB,QAAUvF,uBAAuBkF,MACvC,MAAMM,UAAYzE,aAAasD,OAAQ,sCACvC,MAAMoB,SAAW9F,0BAA0BuF,KAAMb,QAAQqB,OACzD,MAAM1C,OAASyC,SAAS7D,cACxB,GAAI2D,QAAQJ,KAAMQ,IAAOA,GAAG/D,gBAAkBoB,QAAS,OAAO,KAE9D,GAAIiC,oBAAoBC,KAAMlC,SAAWiC,oBAAoBC,KAAMM,WAAY,OAAO,KACtF,IAAKR,kBAAkBhC,QAAS,OAAO,MACvC,MAAM4C,UAAYxB,gBAAgBqB,UAClC,GAAIG,YAAc,KAAM,OAAO,MAE/B,OAAOL,QAAQJ,KAAMQ,IAAOvB,gBAAgBuB,MAAQC,YAAcZ,kBAAkBW,IACxF,CAaO,SAASE,yBAAyBX,KAAcb,QACnD,MAAMrB,OAASjC,aAAasD,OAAQ,oDACpC,OAAOpE,0BAA0BiF,MAAMC,KAAMQ,IAAOA,GAAG/D,gBAAkBoB,OAC7E,CAGO,SAAS8C,eAAeZ,MAC3B,OAAOhF,oBAAoBgF,QAAU,IACzC,CAYO,SAASa,iCAAiCb,KAAcZ,WAC3D,MAAM0B,MAAQ9F,oBAAoBgF,MAClC,GAAIc,QAAU,OAASvC,uBAAuBV,IAAIiD,OAAQ,OAAO,MACjE,MAAMP,SAAW9F,0BAA0BuF,KAAMZ,WACjD,OAAOxE,aAAa2F,YAAc,OAASH,sBAAsBJ,KAAMZ,UAC3E,CAOA,SAAS2B,iBACLf,KACAgB,eAEA,MAAMtC,MAAQsC,eAAiBrH,sBAAsBqG,KAAM7D,aAC3D,IAAKuC,OAASA,MAAMyB,kBAAmB,OAAO,KAC9C,MAAO,CAAEzB,YAAOC,KAAMtD,UAAUqD,OACpC,CAGO,SAASuC,uBACZjB,KACAgB,eAEA,MAAME,aAAeH,iBAAiBf,KAAMgB,eAC5C,IAAKE,aAAc,MAAO,GAC1B,MAAMxC,MAAEA,MAAAC,KAAOA,MAASuC,aACxB,MAAMC,UAAkC,GACxC,IAAA,MAAWhC,UAAUrE,uBAAuBkF,MAAO,CAC/C,MAAMZ,UAAYzE,WAAWwE,QAC7B,IAAKC,UAAW,SAChB,MAAMC,OAASC,OAAOC,QAAQH,UAAUC,QACnCJ,OAAO,EAAC,CAAGO,SAAWf,kBAAkBC,MAAOC,KAAMa,MAAMZ,UAAUwC,SAAW,GAChF3D,IAAI,EAAE+B,SAAW6B,OAAO7B,QACxBP,OAAOoC,OAAOC,UACd3B,KAAK,CAAC4B,EAAGC,IAAMD,EAAIC,GACxB,GAAInC,OAAO+B,OAAS,EAAGD,UAAUM,KAAK,CAAEtC,cAAQE,eACpD,CACA,OAAO8B,SACX,CAGO,SAASO,0BACZ1B,KACAgB,eAEA,MAAME,aAAeH,iBAAiBf,KAAMgB,eAC5C,IAAKE,aAAc,MAAO,GAC1B,MAAMxC,MAAEA,MAAAC,KAAOA,MAASuC,aACxB,OAAOnG,0BAA0BiF,MAAMf,OAAQE,SAC3C,MAAMwC,OAASzG,qBAAqBiE,QACpC,OACIwC,cAAW,GAAalD,kBAAkBC,MAAOC,KAAMgD,OAAOC,WAAWR,SAAW,GAGhG,CCvOA,IAAMS,OAAS,CACXC,WAAY,CAAC,iBAAkB,0BAC/BC,gBAAiB,CAAC,uBAClBC,cAAe,CAAC,qBAChBC,oBAAqB,CAAC,mCACtBC,kBAAmB,CACf,wBACA,gCACA,kCAEJC,oBAAqB,CAAC,0BAA2B,oCAGrD,IAAMC,cAAgB,CAACC,OAAgBC,WACnCA,SAASrC,KAAMsC,QAAWF,OAAO3F,cAAcE,WAAW2F,SAG9D,SAASC,UAAUhG,QACf,OAAOA,OAAOM,KAAO,KACzB,CAGA,SAAS2F,WAAWjG,QAEhB,OAAQA,OAAOO,UAAY,GAAK,CACpC,CASA,SAAS2F,cACLlG,OACAmG,MACAjE,OAEA,MAAMkE,OAASC,eAAerG,OAAQmG,OACtC,GAAIC,cAAW,EAAW,OAAOA,OACjC,MAAMjE,KAAOD,QAAQiE,OACrB,cAAchE,OAAS,SAAWA,UAAO,CAC7C,CAWA,SAASkE,eAAerG,OAAuBmG,OAC3C,IAAA,MAAW3D,SAAStD,eAAeiH,OAAQ,CACvC,GAAIhH,wBAAwBqD,SAAW,KAAM,SAC7C,MAAM8D,SAAWhK,mBAAmB0D,OAAQwC,OAC5C,GAAI8D,WAAa,KAAM,OAAOA,SAAWtH,cAAcwD,MAC3D,CACA,YAAO,CACX,CAGA,SAAS+D,oBACLvG,OACAmG,MACAjE,OAEA,IAAA,MAAWM,SAAStD,eAAeiH,OAAQ,CACvC,GAAIhH,wBAAwBqD,SAAW,KAAM,SAC7C,GACIxC,OAAOU,aAAaM,WAAWyC,KAC1BvC,UAAaA,SAASsF,MAAMtG,gBAAkBsC,MAAMtC,eAE3D,CACE,OAAO,IACX,CACJ,CACA,MAAMiC,KAAOD,MAAMiE,OACnB,cAAchE,OAAS,UAAYA,UAAO,CAC9C,CAGA,SAASsE,4BACLzG,OACAkC,OAEA,MAAMwE,WAAa1G,OAAOU,aAAaI,mBACjCrC,sBAAsBuB,OAAOU,YAAYI,qBAAqBa,wBAC9D,EACN,MAAMgF,aAAuC,IACrCD,YAAcxE,MAAMP,oBAE5B,IAAIoC,SAAW2C,kBAAe,GAAaxE,MAAMP,0BAAuB,EACxE,IAAA,MAAWT,YAAYlB,OAAOU,aAAaM,WAAa,GAAI,CACxD,GAAIE,SAAST,aAAU,EAAW,SAClC,MAAMmG,KAAOxH,mBAAmB8B,SAASsF,OACzC,GAAII,OAAS,KAAM,SACnBD,aAAaC,MAAQ1F,SAAST,MAAQzB,cAAckC,SAASsF,OAC7DzC,SAAW,IACf,CACA,OAAOA,SAAY4C,kBAAsC,CAC7D,CAGA,SAASE,eAAe7G,QACpB,GACIA,OAAOU,aAAaI,oBACpBrC,sBAAsBuB,OAAOU,YAAYI,qBAAqBa,mBAChE,CACE,OAAO,IACX,CACA,OAAQ3B,OAAOU,aAAaM,WAAa,IAAIyC,KACxCvC,UAAa9B,mBAAmB8B,SAASsF,SAAW,KAE7D,CAMA,SAASM,cACL9G,OACAkC,MACAiE,OAEA,MAAMhE,KAAOD,QAAQiE,OACrB,UAAWhE,OAAS,UAAYA,OAAS,EAAG,OAAO,EACnD,MAAM4E,UAAYb,cAAclG,OAAQmG,MAAOjE,OAC/C,OAAO6E,iBAAc,EAAY,EAAIA,UAAY5E,IACrD,CAaA,SAAS6E,YACLhH,OACAkC,MACAiE,MACAc,OAEA,MAAMb,OAASC,eAAerG,OAAQmG,OACtC,GAAIC,cAAW,EAAW,OAAOA,OACjC,MAAMjE,KAAOD,QAAQiE,OACrB,cAAchE,OAAS,SAAWA,KAAO8E,WAAQ,CACrD,CAMO,SAASC,gBACZlH,OACAkC,OAEA,IAAKA,QAAUlC,OAAOU,YAAa,OAAOwB,MAC1C,MAAMiF,OAAkC,IAAKjF,OAG7C,MAAMkF,OAAS,IAAIpF,IACfc,OAAOtB,KAAKU,QAIhB,IAAA,MAAWhB,YAAYlB,OAAOU,YAAYM,WAAa,GAAI,CACvD,MAAMmF,MAAQlH,cAAciC,SAASsF,MAAOtE,OAC5C,GAAIiE,MAAOiB,OAAOC,IAAIlB,MAC1B,CACA,IAAA,MAAW5E,OAAO6F,OAAQ,CACtB,MAAME,WAAaf,oBAAoBvG,OAAQuB,IAAKW,OACpD,GAAIoF,kBAAe,EAAW,CAC1BH,OAAO5F,KAAO+F,WACd,QACJ,CACA,MAAMC,MAAQrB,cAAclG,OAAQuB,IAAKW,OACzC,GAAIqF,aAAU,EAAWJ,OAAO5F,KAAOgG,KAC3C,CACA,GAAIrF,MAAMsF,mBAAqB,YAAa,CACxC,MAAMC,UAAYX,cAAc9G,OAAQkC,MAAO,WAC/C,MAAMwF,QAAUV,YAAYhH,OAAQkC,MAAO,UAAWuF,WACtD,MAAME,QAAUX,YAAYhH,OAAQkC,MAAO,UAAWuF,WACtD,GAAIC,eAAY,EAAWP,OAAOO,QAAUA,QAC5C,GAAIC,eAAY,EAAWR,OAAOQ,QAAUA,OAChD,CACA,MAAMhG,mBAAqB8E,4BAA4BzG,OAAQkC,OAC/D,GAAIP,mBAAAwF,OAA2BxF,mBAAqBA,mBACpD,GAAIO,MAAM0F,WAAa,YAAaC,yBAAyB7H,OAAQmH,QAGrE,GAAIN,eAAe7G,QAAS,QACjBmH,OAAOvF,gBAClB,MAAA,GAAWM,MAAMN,iBAAkB,CAC/BuF,OAAOvF,iBAAmB7E,sBACtBmF,MAAMN,iBACNM,MAAM4F,cACCX,OAAOW,SAAW,SAAWX,OAAOW,YAAS,EAE5D,CACA,OAAOX,MACX,CAGO,SAASY,iBACZ/H,OACAkC,OAEA,MAAM8F,KAAO9B,cAAclG,OAAQ,YAAakC,OAChD,MAAM+F,WAAazL,cAAcwD,OAAOC,MAGxC,MAAMiI,QAAUhG,OAAO0F,WAAa,aAAe1F,OAAO0F,WAAa,UACvE,MAAMO,aACFjG,QAAU,KACJgG,SAAWhG,MAAMkG,gBAAkB,KACnCH,YAAYI,OAAS,YACnB,KACAJ,YAAYI,OAAS,eACnB,EACA,MACd,MAAMC,OAAS,CACXC,SAAUtC,WAAWjG,QACrBwI,QAASxC,UAAUhG,WACfmI,oBAAiB,EAAY,CAAA,EAAK,CAAEA,2BACxC3F,MAAOxC,OAAOC,MAElB,GAAI+H,YAAS,EAAW,CAIpB,MAAMS,sBACFR,YAAYI,OAAS,UACpBJ,YAAYI,OAAS,SACjBJ,WAAWS,OAAS,cAAgBT,WAAWS,OAAS,YACjE,GAAIxG,QAAU,MAAQuG,uBAAyB7I,oBAAoBI,OAAOC,MACtE,OAAO,KACX,MAAO,CAAE0I,YAAa,QAASL,OACnC,CACA,GAAIN,OAAS,EAAG,OAAO,KACvB,MAAO,CAAEA,aAASM,OACtB,CAGO,SAASM,eACZC,QACAC,UAEA,IAAA,MAAW9I,UAAU6I,QAAS,CAC1B,MAAM3G,MAAQ4G,SAAS9I,QAKvB,MAAM+I,QAAU7G,OAAO8G,KACjB9G,MAAM8G,OAAS,aACfpD,cAAc5F,OAAOG,KAAMkF,OAAOC,YACxC,IAAKyD,QAAS,SACd,IAAK/C,UAAUhG,QAAS,OAAO,EAC/B,OAAOkG,cAAclG,OAAQ,gBAAiBkC,QAAU,CAC5D,CACA,OAAO,CACX,CAWA,SAAS+G,oBACLC,MAEA,MAAO,CACHC,kBAAmBD,KAAK,sBAAwB,EAChDE,kBAAmBF,KAAK,sBAAwB,EAChDG,oBAAqBH,KAAK,wBAA0B,EACpDI,kBAAmBJ,KAAK,sBAAwB,EAExD,CAMA,SAASK,cAAcvJ,OAAuBkC,OAC1C,OAAO+G,oBAAqB9C,OAAUD,cAAclG,OAAQmG,MAAOjE,OACvE,CAGO,SAASsH,eACZC,WACAZ,QACAa,YACAZ,UAEA,MAAMa,KAAOzN,gBAAgBuN,YAC7B,IAAIG,UAA0C,KAC9C,MAAMC,SAAkC,GACxC,IAAIC,cAAgB,EAEpB,IAAA,MAAW9J,UAAU6I,QAAS,CAC1B,IAAK7C,UAAUhG,QAAS,SACxB,MAAMkC,MAAQ4G,SAAS9I,QACvB,IAAK4J,WAAahE,cAAc5F,OAAOG,KAAMkF,OAAOE,iBAAkB,CAClE,MAAMkC,UAAYX,cAAc9G,OAAQkC,MAAO,WAC/C,MAAM6H,cAAgBjD,cAAc9G,OAAQkC,MAAO,iBACnD,MAAM8H,QAAU9D,cAAclG,OAAQ,UAAWkC,OACjD,MAAMwF,QAAUV,YAAYhH,OAAQkC,MAAO,UAAWuF,WAEtD,MAAME,QAAUX,YAAYhH,OAAQkC,MAAO,UAAW+H,KAAKC,IAAI,EAAGzC,YAClE,MAAM0C,cAAgBjE,cAAclG,OAAQ,gBAAiBkC,OAC7D,MAAMkI,cAAgBpD,YAAYhH,OAAQkC,MAAO,gBAAiB6H,eAClE,MAAMM,cAAgBrD,YAAYhH,OAAQkC,MAAO,gBAAiB6H,eAIlEH,UAAY,IACJI,eAAY,EAAY,CAAA,EAAK,CAAEA,oBAC/BtC,eAAY,EAAY,CAAA,EAAK,CAAEA,oBAC/BC,eAAY,EAAY,CAAA,EAAK,CAAEA,oBAC/BwC,qBAAkB,EAAY,CAAA,EAAK,CAAEA,gCACrCC,qBAAkB,EAAY,CAAA,EAAK,CAAEA,gCACrCC,qBAAkB,EAAY,CAAA,EAAK,CAAEA,gCACtCd,cAAcvJ,OAAQkC,OAEjC,MAAA,GAAW0D,cAAc5F,OAAOG,KAAMkF,OAAOG,eAAgB,CACzDqE,SAAS5E,KAAK,CACVqF,YAAapE,cAAclG,OAAQ,cAAekC,QAAU,KACzDqH,cAAcvJ,OAAQkC,QAEjC,MAAA,GAAW0D,cAAc5F,OAAOG,KAAMkF,OAAOI,qBAAsB,CAC/DqE,eAAiB5D,cAAclG,OAAQ,iBAAkBkC,QAAU,CACvE,CACJ,CAEA,MAAO,CACHqI,SAAUZ,MAAMY,UAAY,EAC5BC,mBAAoBb,MAAMa,oBAAsB,EAChDZ,oBACAC,kBACAC,4BACAJ,wBAER,CAMA,SAASe,cAAchB,YACnB,MAAME,KAAOzN,gBAAgBuN,YAC7B,IAAKE,KAAM,OAAO,KAClB,MAAMe,SAAWtN,oBAAoBuM,KAAKtG,KAAMrF,cAGhD,OACI0M,SAASC,KAAMC,GAAMA,EAAE/E,OAAO3F,cAAc2K,SAAS,cACrDH,SAASC,KAAMC,GAAMA,EAAEE,OAAS,IAChCJ,SAAS,IACT,IAER,CAGO,SAASK,eACZtB,WACAZ,QACAC,UAEA,MAAMa,KAAOzN,gBAAgBuN,YAC7B,MAAMuB,eAA4C,GAClD,MAAMC,qBAAoD,GAC1D,IAAIC,SAAkC,KAEtC,IAAA,MAAWlL,UAAU6I,QAAS,CAC1B,IAAK7C,UAAUhG,QAAS,SACxB,MAAMkC,MAAQ4G,SAAS9I,QAGvB,GAAIA,OAAOC,KAAKC,gBAAkB,SAAU,CACxCgL,SAAW,CACPC,UAAWjF,cAAclG,OAAQ,YAAakC,QAAU,KACrDqH,cAAcvJ,OAAQkC,OAEjC,MAAA,GAAW0D,cAAc5F,OAAOG,KAAMkF,OAAOK,mBAAoB,CAI7D,MAAM0F,MAAQ9O,mBAAmB0D,OAAQ,mCACzCgL,eAAe/F,KAAK,CAChBS,kBAAmBQ,cAAclG,OAAQ,oBAAqBkC,QAAU,EACxEiJ,UACIC,QAAU,KAAO,EAAIA,MAAQpM,cAAc,sCAC5CuK,cAAcvJ,OAAQkC,QAEjC,MAAA,GAAW0D,cAAc5F,OAAOG,KAAMkF,OAAOM,qBAAsB,CAC/DsF,qBAAqBhG,KAAK,CACtBoG,iBAAkBnF,cAAclG,OAAQ,mBAAoBkC,QAAU,EACtEoJ,UAAWpF,cAAclG,OAAQ,YAAakC,QAAU,GAEhE,CACJ,CAEA,IAAKgJ,SAAU,CACX,MAAMK,MAAQd,cAAchB,YAC5ByB,SAAWK,MACL,CACIJ,UAAWI,MAAMJ,WAAa,KAC3BlC,oBAAqB9C,OAAUoF,MAAMpF,SAE5C,IACV,CAEA,MAAO,CACHqF,WAAY7B,MAAM6B,YAAc,EAChCN,kBACAF,8BACAC,0CAER,CAGA,IAAMQ,cAAgB,CAClB,SACA,gBACA,aACA,gBACA,cACA,kBACA,aACA,WACA,cACA,aACA,kBACA,cACA,YACA,eACA,eACA,kBAsBG,SAASC,eACZ1L,OACAkC,OAEA,IAAKA,OAASA,MAAM0F,WAAa,YAAa,OAAO,KACrD,MAAM+D,OAAkC,CAAA,EACxC,IAAA,MAAWxF,SAASsF,cAAe,CAC/B,MAAMlE,MAAQrB,cAAclG,OAAQmG,MAAOjE,OAC3C,GAAIqF,aAAU,EAAWoE,OAAOxF,OAASoB,KAC7C,CAEAM,yBAAyB7H,OAAQ2L,QAEjC,MAAMhK,mBAAqB8E,4BAA4BzG,OAAQkC,OAC/D,GAAIP,mBAAAgK,OAA2BhK,mBAAqBA,mBACpD,GAAIO,MAAMN,mBAAqBiF,eAAe7G,QAAS,CACnD2L,OAAO/J,iBAAmB7E,sBACtBmF,MAAMN,iBACNM,MAAM4F,cACC6D,OAAO7D,SAAW,SAAW6D,OAAO7D,YAAS,EAE5D,CACA,GAAI5F,MAAMJ,gBAAiB6J,OAAO7J,gBAAkB,IAAKI,MAAMJ,iBAC/D,OAAO6J,MACX,CAUA,SAASC,wBACL5L,OACA2L,QAEA,GAAIrP,mBAAmB0D,OAAQ,gBAAkB,KAAM,YAAO,EAC9D,MAAM6L,QAAU,CAAC,YAAa,kBAAmB,iBAAiBpI,KAC7DjB,OAAUlG,mBAAmB0D,OAAQwC,SAAW,MAErD,IAAKqJ,QAAS,YAAO,EACrB,OAAO3O,mBAAmByO,OAC9B,CAWA,SAAS9D,yBAAyB7H,OAAuB2L,QACrD,MAAMG,KAAOF,wBAAwB5L,OAAQ2L,QAC7C,GAAIG,YAAS,EAAWH,OAAOI,WAAaD,KAE5C,MAAME,sBAAwB1P,mBAAmB0D,OAAQ,mBACzD,MAAMiM,aAAepH,OAAO8G,OAAOO,eAAiB,GAAKrH,OAAO8G,OAAOI,YAAc,GACrF,GAAIC,wBAA0B,MAAQC,aAAe,EAAG,CACpDN,OAAO7D,OAASkE,sBAAwBC,YAC5C,CAEA,MAAME,aAAEA,aAAAC,aAAcA,cAAiBT,OACvC,GAAIQ,oBAAiB,GAAaC,oBAAiB,GAAaA,aAAeD,aAAc,CACzFR,OAAOS,aAAeD,YAC1B,CACJ,CC/kBA,IAAME,WAA2C,CAC7C/G,WAAY,cACZgH,UAAW,YACXC,gBAAiB,oBACjBC,YAAa,eACbC,iBAAkB,oBAClBC,QAAS,UACTC,SAAU,aAGd,IAAMC,0BAAsE,CACxEC,SAAU,gBACVC,MAAO,aACPC,iBAAkB,yBAClBC,aAAc,qBACdC,UAAW,kBAGf,SAASC,eAAe3L,KACpB,IAAI4L,MAAQ5L,IAAIqD,OAChB,MAAOuI,MAAQ,EAAG,CACd,MAAMC,KAAO7L,IAAI8L,WAAWF,MAAQ,GACpC,GAAIC,KAAO,IAAQA,KAAO,GAAM,MAChCD,OACJ,CACA,OAAOA,QAAU5L,IAAIqD,OAAS,KAAOrD,IAAI+L,MAAMH,MACnD,CAGO,SAASI,gBAAgBvE,MAC5B,OAAQA,KAAKX,MACT,IAAK,OACD,OAAOgE,WAAWrD,KAAKN,MAC3B,IAAK,YAAa,CACd,MAAM8E,MAAQ,qDAAqDC,KAAKzE,KAAKzH,KAC7E,IAAKiM,MAAO,OAAOxE,KAAKzH,IACxB,MAAO,GAAGiM,MAAM,KAAKA,MAAM,GAAK,UAAY,gBAAgB3I,OAAO2I,MAAM,KAC7E,CACA,IAAK,UAAW,CACZ,MAAMA,MAAQ,uBAAuBC,KAAKzE,KAAKzH,KAC/C,OAAOiM,MAAQ,iBAAiB3I,OAAO2I,MAAM,MAAQxE,KAAKzH,GAC9D,CACA,IAAK,WAAY,CACb,GAAIyH,KAAK0E,cAAgB,yBAA0B,MAAO,2BAC1D,GAAI1E,KAAK0E,YAAa,CAClB,MAAMC,SAAWT,eAAelE,KAAKzH,KACrC,MAAMiB,MAAQoK,0BAA0B5D,KAAK0E,aAC7C,OAAOlL,OAASmL,SAAW,GAAGnL,SAASqC,OAAO8I,YAAc3E,KAAKzH,GACrE,CACA,MAAMqM,SAAW,wBAAwBH,KAAKzE,KAAKzH,KACnD,OAAOqM,SACD,qBAAqB/I,OAAO+I,SAAS,aAAa5E,KAAK6E,QACvD7E,KAAKzH,GACf,CACA,IAAK,SACD,MAAO,SACX,IAAK,aACD,MAAO,cAEnB,CCvDA,IAAMuM,kBAAuC,CACzC,wBACA,iCACA,0BACA,qBACA,gCACA,kCACA,mCAUJ,IAAMC,gBAAqC,CACvC,kBACA,sBACA,4BACA,8BACA,uBACA,oBAOJ,IAAMC,eAAoC,CACtC,gBACA,qBACA,8BACA,gBAUJ,IAAMC,yBAAuE,CACzEC,OAAQH,gBACRlB,SAAUiB,kBACVhB,MAAOkB,eAEPjB,iBAAkB,CAAC,mBAAoB,yBAEvCC,aAAc,CAAC,kBAEfC,UAAW,CAAC,qBAAsB,2BAElCkB,uBAAwB,CAAC,4BAG7B,SAASC,iBAAiBpF,KAAiBnD,QACvC,MAAM6H,YAAc1E,KAAK0E,YACzB,IAAKA,YAAa,OAAO,KACzB,GAAIO,yBAAyBP,aAAajK,KAAMsC,QAAWF,OAAOzF,WAAW2F,SAAU,CACnF,OAAO,IACX,CACA,MAAO,mBAAmBtJ,wBAAwBiR,cACtD,CAEA,SAASW,gBAAgBrF,KAAiBhJ,QACtC,MAAMsO,SAAWtO,OAAOuO,iBACxB,IAAKD,UAAYtF,KAAK0E,cAAgBY,SAAU,OAAO,KACvD,MAAO,uCAAuC7R,wBAAwB6R,WAC1E,CASO,SAASE,eACZ/E,WACAT,KACAhJ,QAEA,GAAIgJ,KAAKX,OAAS,aAAc,CAC5B,MAAO,uCACX,CACA,GAAIW,KAAKX,OAAS,SAAU,CACxB,MAAMsB,KAAOzN,gBAAgBuN,YAC7B,GAAIzJ,OAAOgJ,OAAS,UAAYhJ,OAAOyO,YAAS,EAAW,CACvD,MAAO,0BACX,CACA,IAAK9E,MAAQ3J,OAAOyO,KAAKvO,gBAAkByJ,KAAKtG,KAAKnD,cAAe,CAChE,MAAO,qBAAqBZ,SAASU,OAAOyO,cAAcnP,SAASqK,MAAMtG,MAAQoG,aACrF,CACA,OAAO,IACX,CAKA,MAAMiF,WAAa1O,OAAO0B,kBAC1B,GACIgN,aACCA,WAAWjL,KAAMoC,SAAWA,QAAO3F,gBAAkBuJ,WAAWvJ,eACnE,CACE,MAAMyO,MAAQD,WAAWzN,IAAK4E,UAC1B,MAAM8D,KAAOzN,gBAAgB2J,SAC7B,OAAO8D,KAAO,GAAGA,KAAKtG,SAASwC,WAAYA,UAE/C,MAAO,2BAA2BvG,SAASqP,MAAMvL,KAAK,QAC1D,CAIA,MAAMwL,WAAaP,gBAAgBrF,KAAMhJ,QACzC,GAAI4O,WAAY,OAAOA,WACvB,MAAM/I,OAAS7F,OAAO6F,OAAO3F,cAG7B,MAAM2O,WAAa7O,OAAOgJ,KAE1B,OAAQA,KAAKX,MACT,IAAK,OACD,GAAIwG,aAAe7F,KAAKN,KAAM,MAAO,SAASM,KAAKN,cACnD,MACJ,IAAK,YAAa,CACd,GAAI1I,OAAO4H,WAAa,YAAa,MAAO,yBAC5C,MAAMkH,QAAUV,iBAAiBpF,KAAMnD,QACvC,GAAIiJ,QAAS,OAAOA,QACpB,KACJ,CACA,IAAK,UACD,GAAI9O,OAAO4H,WAAa,UAAW,MAAO,uBAC1C,OAAO,KACX,IAAK,WAAY,CACb,MAAMmH,WAAaF,aAAe,WAClC,GAAI7O,OAAO4H,WAAa,aAAemH,WAAY,CAC/C,MAAO,iCACX,CACA,GAAIF,aAAeE,WAAY,MAAO,wCACtC,MAAMD,QAAUV,iBAAiBpF,KAAMnD,QACvC,GAAIiJ,QAAS,OAAOA,QACpB,KACJ,EAGJ,OAAO9O,OAAOgP,MAAQhG,KAAK6E,KACrB,eAAevO,SAASU,OAAOgP,4BAA4BhG,KAAK6E,OAChE,IACV,CCvHA,IAAMoB,eAAiB,IAGhB,SAASC,mBACZC,MACAC,SAEA,MAAMC,WAAaD,QAAQE,UAAY,SACvC,MAAMC,OAASF,WAAaF,MAAMK,eAAiB,KACnD,MAAMC,OAASF,SAAW,MAAQG,iBAAiBP,MAAMtG,QAAS0G,QAAUA,OAAS,KACrF,MAAMI,UAAYN,WAAcE,QAAQI,WAAa,KAAQR,MAAMS,gBACnE,MAAMC,aAAeR,WACdI,QAAQI,cAAgB,KACzBC,qBAAqBX,MAAMtG,QAASsG,MAAMrG,UAChD,MAAMiH,MAAQV,WACPI,QAAQM,OAAS,KAClBJ,YAAc,MAAQE,eAAiB,KACrC,KACA5F,KAAK+F,OAAOL,UAAYE,cAAgBZ,gBAEhD,MAAO,CACHgB,MAAO,UACPC,KAAMf,MAAM1F,WAAWvJ,iBACnBiP,MAAMgB,gBAAa,EAAY,CAAA,EAAK,CAAEC,SAAUjB,MAAMgB,aACtDhB,MAAMkB,iBAAc,EAAY,CAAA,EAAK,CAAEC,UAAWnB,MAAMkB,cACxDV,YAAc,KAAO,CAAA,EAAK,CAAEY,UAAWZ,cACvCE,eAAiB,KAAO,CAAA,EAAK,CAAEW,aAAcX,iBAC7CV,MAAMsB,cAAgB,KAAO,CAAA,EAAK,CAAEC,YAAavB,MAAMsB,gBACvDtB,MAAMwB,gBAAkB,KAAO,CAAA,EAAK,CAAEC,cAAezB,MAAMwB,kBAC3DxB,MAAM0B,eAAiB,KAAO,CAAA,EAAK,CAAEC,aAAc3B,MAAM0B,iBACzD1B,MAAM4B,eAAiB,KACrB,CAAA,EACA,CACIC,aAAc,CACVC,KAAM9B,MAAM4B,aAAaG,KACzBC,QAAShC,MAAM4B,aAAaK,aAGtCrB,QAAU,KAAO,CAAA,EAAK,CAAEsB,MAAOtB,OACnCuB,QAASC,cAAcpC,MAAOC,QAASC,YAE/C,CAEA,SAASkC,cACLpC,MACAC,QACAC,YAEA,MAAMmC,QACFpC,QAAQqC,cAAgB,QAClBC,mBAAmBvC,MAAM1F,WAAY0F,MAAMtG,QAASsG,MAAMwC,QAC1D,IAAIxC,MAAMtG,QAAQ+I,UAC5B,OAAOJ,QAAQvQ,IAAKjB,SAChB,MAAM6R,GAAK7R,OAAOM,KAAO8O,QAAQ0C,cAAgB,UAAO,GACxD,MAAMvJ,SAAWvI,OAAOO,WAAa6O,QAAQ0C,cAAgB,OAAI,GACjE,MAAMvK,MAAQ8H,WACR0C,kBAAkB/R,OAAQmP,MAAMK,gBAChCwC,YAAYhS,OAAQmP,MAAMrG,UAChC,MAAO,CACH7I,KAAMD,OAAOC,KACbE,KAAMH,OAAOG,KAAKD,iBACd2R,UAAO,EAAY,CAAA,EAAK,CAAEvR,GAAIuR,OAC9BtJ,gBAAa,EAAY,CAAA,EAAK,CAAEhI,SAAUgI,aAC1CvI,OAAOQ,cAAW,EAAY,CAAA,EAAK,CAAEA,OAAQR,OAAOQ,kBAC7C+G,QAAU,SAAW,CAAE9G,MAAO8G,OAAU,CAAA,KAC/CvH,OAAOU,mBAAgB,EACrB,CAAA,EACA,CAAEA,YAAaL,mBAAmBL,QAAQU,eAG5D,CAEA,SAASgR,mBACLjI,WACAZ,QACA8I,QAEA,IAAKA,OAAQ,CACT,MAAM,IAAIM,UACN,wDAAwD3S,SAASmK,qDAEzE,CACA,MAAMyI,UAAY,IAAIC,IAAItJ,SAC1B,MAAM2I,QAA2B,GACjC,IAAA,MAAWxI,QAAQ2I,OAAQ,CACvB,MAAMpQ,IAAMJ,cAAc+Q,UAAWlJ,KAAKzH,KAC1C,MAAMvB,OAASuB,MAAQ,UAAO,EAAY2Q,UAAUE,IAAI7Q,KACxD,GAAIvB,QAAUuB,MAAQ,KAAM,CACxBiQ,QAAQvM,KAAKjF,QACbkS,UAAUG,OAAO9Q,IACrB,CACJ,CACA,MAAO,IAAIiQ,WAAYU,UAAUN,SACrC,CAEA,SAAS9B,qBACLjH,QACAC,UAEA,IAAIwJ,IAAM,EACV,IAAA,MAAWtS,UAAU6I,QAAQ+I,SAAU,CACnC,MAAMrK,MAAQyK,YAAYhS,OAAQ8I,UAClC,GAAIvB,QAAU,UAAW,OAAO,KAChC,GAAIA,QAAU,OAAQ+K,KAAO/K,KACjC,CACA,OAAO+K,GACX,CAEA,SAASN,YACLhS,OACA8I,UAEA,MAAM5G,MAAQ4G,SAAS9I,QACvB,GAAIkC,QAAU,KAAM,OAAOA,MAAMqQ,MAAQ,UACzC,OAAO3S,oBAAoBI,OAAOC,OAASF,oBAAoBC,QAAU,OAAS,SACtF,CAGA,IAAMwS,YAAc,kDAEpB,SAAST,kBACL/R,OACAuP,QAEA,MAAMkD,MAAQlD,SAAW,KAAO,KAAO5S,qBAAqB4S,OAAQvP,OAAOC,MAC3E,GAAIwS,QAAU,KAAM,MAAO,UAC3B,OAAOpT,aAAaoT,MAAMjP,KAAMgP,eAAiBnT,aAAaW,OAAOG,KAAMR,aACrE8S,MAAMlL,MACN,SACV,CAEA,SAASmI,iBACL7G,QACA0G,QAEA,IAAA,MAAWkD,SAASlD,OAAOmD,aAAc,CACrC,MAAMnR,IAAMJ,cAAc0H,QAAS4J,MAAMzJ,MACzC,MAAM2J,OAASpR,MAAQ,UAAO,EAAYsH,QAAQuJ,IAAI7Q,KACtD,IACKoR,QACDtT,aAAasT,OAAOxS,KAAMR,eAAiBN,aAAaoT,MAAMjP,KAAMgP,aACtE,CACE,OAAO,KACX,CACJ,CACA,OAAO,IACX,CCrIA,SAASI,oBAAoB3C,OACzB,MAAMpH,QAAUoH,MAAMqB,QACtB,MAAMnB,SAAWF,MAAMG,SACvB,MAAMC,UAAYJ,MAAMK,UACxB,MAAMX,UAAYM,MAAMM,UACxB,MAAMV,aAAeI,MAAMO,aAC3B,MAAMT,MAAQE,MAAMoB,MACpB,MAAMZ,YAAcR,MAAMS,YAC1B,MAAMC,cAAgBV,MAAMW,cAC5B,MAAMG,aAAed,MAAMe,aAC3B,MAAO,CACHd,KAAMD,MAAMC,KACZoB,QAASuB,MAAMC,QAAQjK,SAAWkK,YAAYlK,QAASmK,eAAiBnK,WACpEsH,gBAAa,EAAY,CAAA,EAAK,CAAEC,SAAUD,aAC1CE,iBAAc,EAAY,CAAA,EAAK,CAAEC,UAAWD,cAC5CV,iBAAc,EAAY,CAAA,EAAK,CAAEY,UAAWZ,cAC5CE,oBAAiB,EAAY,CAAA,EAAK,CAAEW,aAAcX,iBAClDE,aAAU,EAAY,CAAA,EAAK,CAAEsB,MAAOtB,UACpCU,mBAAgB,EAAY,CAAA,EAAK,CAAEC,YAAaD,gBAChDE,qBAAkB,EAAY,CAAA,EAAK,CAAEC,cAAeD,kBACpDI,oBAAiB,EAAY,CAAA,EAAK,CAAEC,aAAc,IAAKD,eAEnE,CAUA,SAASgC,YAAkBnB,OAAsBqB,SAC7C,MAAMC,SAAgB,GACtB,MAAMtO,OAAEA,QAAWgN,OACnB,IAAA,IAASuB,MAAQ,EAAGA,MAAQvO,OAAQuO,QAASD,SAASjO,KAAKgO,QAAQrB,OAAOuB,SAC1E,OAAOD,QACX,CAGA,SAASF,cAAchT,QACnB,GAAIA,SAAW,aAAeA,SAAW,SAAU,OAAOA,OAC1D,MAAM6R,GAAK7R,OAAOM,GAClB,MAAMiI,SAAWvI,OAAOO,SACxB,MAAM6S,OAASpT,OAAOQ,OACtB,MAAM+G,MAAQvH,OAAOS,MACrB,MAAM4S,YAAcrT,OAAOU,YAC3B,MAAO,CACHT,KAAMD,OAAOC,KACbE,KAAMH,OAAOG,QACT0R,UAAO,EAAY,CAAA,EAAK,CAAEvR,GAAIuR,OAC9BtJ,gBAAa,EAAY,CAAA,EAAK,CAAEhI,SAAUgI,aAC1C6K,cAAW,EAAY,CAAA,EAAK,CAAE5S,OAAQ4S,WACtC7L,aAAU,EAAY,CAAA,EAAK,CAAE9G,MAAO8G,UACpC8L,mBAAgB,EAAY,CAAA,EAAK,CAAE3S,YAAa4S,mBAAmBD,cAE/E,CAGA,SAASC,mBAAmBD,aACxB,GAAIA,cAAgB,aAAeA,cAAgB,SAAU,OAAOA,YACpE,MAAMhR,aAAegR,YAAYvS,mBACjC,MAAMyS,sBAAwBF,YAAYtS,6BAC1C,MAAMqE,UAAYiO,YAAYrS,UAC9B,MAAO,CACHL,cAAe0S,YAAY1S,cAC3BC,MAAOyS,YAAYzS,MACnBC,QAASwS,YAAYxS,WACjBwB,oBAAiB,EAAY,CAAA,EAAK,CAAEvB,mBAAoBuB,iBACxDkR,6BAA0B,EACxB,CAAA,EACA,CAAExS,6BAA8BwS,0BAClCnO,iBAAc,EACZ,CAAA,EACA,CACIpE,UAAW6R,MAAMC,QAAQ1N,WACnB2N,YAAY3N,UAAYlE,UACpBA,WAAa,aAAeA,WAAa,SACnC,IAAKA,UACLA,UAEVkE,WAGxB,CAGO,SAASoO,sBAAsBC,UAClC,MAAMxD,MAAQ2C,oBAAoBa,UAClChU,uBAAuBwQ,MAAMC,KAAM,uCACnC,IAAK2C,MAAMC,QAAQ7C,MAAMqB,SAAU,CAC/B,MAAM,IAAIW,UACN,qEAAqE1S,cAAc0Q,MAAMqB,WAEjG,CACA,MAAMzI,uBAAA,IAAcsJ,IACpB,MAAMuB,qBAAA,IAAY1R,IAClB,IAAA,MAAWhC,UAAUiQ,MAAMqB,QAAS,CAMhC,GAAItR,SAAW,aAAeA,SAAW,SAAU,CAC/C,MAAM,IAAIiS,UACN,+EAA+E1S,cAAcS,UAErG,CACAR,cAAcQ,OAAOC,KAAM,wCAC3BT,cAAcQ,OAAOG,KAAM,wCAC3B,GAAIH,OAAOU,mBAAgB,EAAW,CAOlC,GAAIV,OAAOU,cAAgB,aAAeV,OAAOU,cAAgB,SAAU,CACvE,MAAM,IAAIuR,UACN,2EAA2E1S,cAAcS,OAAOU,eAExG,CACAjB,uBACIO,OAAOU,YAAYC,cACnB,6DAEJlB,uBACIO,OAAOU,YAAYI,mBACnB,kEAKJ,GACId,OAAOU,YAAYM,iBAAc,IAChC6R,MAAMC,QAAQ9S,OAAOU,YAAYM,WACpC,CACE,MAAM,IAAIiR,UACN,oFAAoF1S,cAAcS,OAAOU,YAAYM,aAE7H,CAQA,IAAA,MAAYmS,MAAOjS,YAAclB,OAAOU,YAAYM,WAAa,IAAI+B,UAAW,CAC5E,GAAI7B,WAAa,aAAeA,WAAa,SAAU,CACnD,MAAM,IAAI+Q,UACN,yDAAyDkB,sCAAsC5T,cAAc2B,YAErH,CACA1B,cACK0B,SAAiCsF,MAClC,yDAAyD2M,eAEjE,CACJ,CACA,MAAMQ,eAAiB3T,OAAOC,KAAKC,cACnC,GAAIwT,MAAMrS,IAAIsS,gBAAiB,CAC3B,MAAM,IAAI1B,UACN,4CAA4C3S,SAASU,OAAOC,SAEpE,CACAyT,MAAMrM,IAAIsM,gBACV9K,QAAQ+K,IAAI5T,OAAOC,KAAMI,mBAAmBL,QAChD,CAEA,MAAM6T,IAA0B,CAAA,EAChC,GAAI5D,MAAMG,gBAAa,EAAWyD,IAAIzD,SAAWH,MAAMG,SACvD,GAAIH,MAAMK,iBAAc,EAAWuD,IAAIvD,UAAYL,MAAMK,UACzD,GAAIL,MAAMM,iBAAc,EAAWsD,IAAItD,UAAYN,MAAMM,UACzD,GAAIN,MAAMO,oBAAiB,EAAWqD,IAAIrD,aAAeP,MAAMO,aAC/D,GAAIP,MAAMoB,aAAU,EAAWwC,IAAIxC,MAAQpB,MAAMoB,MACjD,GAAIpB,MAAMS,mBAAgB,EAAWmD,IAAInD,YAAcT,MAAMS,YAC7D,GAAIT,MAAMW,qBAAkB,EAAWiD,IAAIjD,cAAgBX,MAAMW,cACjE,GAAIX,MAAMe,oBAAiB,EAAW6C,IAAI7C,aAAe,IAAKf,MAAMe,cAEpE,MAAM8C,2BAAA,IAAkB3B,IAKxB,IAAA,MAAWnS,UAAU6I,QAAQ+I,SAAU,CACnC,MAAMyB,YAAcrT,OAAOU,YAC3B,MAAMgD,QAAU7G,6BAA6BmD,QAC7C,MAAM+T,aAAerQ,QAAU5G,sBAAsB4G,SAAW,KAChE,GAAIqQ,aAAcD,YAAYF,IAAI5T,OAAOC,KAAMwB,iBAAiBsS,eAChE,GACIA,cAAcpQ,0BAGP0P,aAAa1S,gBAAkB,WACrC0D,iCAAiCrE,OAAOG,KAAMkT,YAAY1S,eAC7D,CACE,QACJ,CAEA,MAAMqT,oBAAsB3U,aACxBgU,YAAY1S,cACZ,6DAEJ,MAAMsT,uBAAyB5U,aAC3BgU,YAAYvS,mBACZ,kEAEJ,MAAMoT,MAAQ7W,yBAAyB2C,OAAOG,MAAMwK,KAC/CwJ,WACGA,UAAUvR,UAAU1C,gBAAkB8T,qBACtCG,UAAUnR,QAAUqQ,YAAYzS,OAChCuT,UAAU9R,cAAcnC,gBAAkB+T,wBAElD,MAAM/R,MAAQgS,MACRpX,sBAAsBoX,OACtB/W,sBAAsB6C,OAAOG,KAAM,wCACzC,GAAI+B,MAAO,CACP4R,YAAYF,IAAI5T,OAAOC,KAAMwB,iBAAiB,IAAKS,MAAOyB,kBAAmB,OACjF,CACJ,CAEA,MAAO,CACH8F,WAAYwG,MAAMC,KAClBrH,gBACAiL,wBACAD,QACArE,eAAgB9S,0BAA0BuT,OAElD,CCrHA,IAAMmE,SAAW,uBA6IjB,IAAMC,WAAa,iBACnB,IAAMC,eAAiB,yBACvB,IAAMC,iBAAmB,eAsElB,IAAMC,YAAN,MAAMC,aACAhL,YACAZ,SACAiL,aACAD,KACArE,gBAWTkF,SAAW,EAEXC,aAAe,EAMfC,aACAC,kBACI,KACJC,iBAAyE,KACzEC,mBAAmF,KACnFC,WAGW,KAEH,WAAAC,CACJxL,WACAZ,QACAgL,IACArE,eAA8C,KAC9CsE,2BAAc,IAAI3B,KAElB+C,MAAKzL,WAAcA,WACnByL,MAAKrM,QAAWA,QAChBqM,MAAKrB,IAAOA,IACZqB,MAAK1F,eAAkBA,eACvB0F,MAAKpB,YAAeA,WACxB,CAcA,eAAOqB,CAAShG,MAAgBgE,MAAQ,GACpC,MAAMpQ,QAAU5G,UAAUgT,OAC1B,MAAMsD,MAAQ1P,QAAQoQ,OACtB,IAAKV,MAAO,CACR,MAAM,IAAIR,UACN,2CAA2C3S,SAAS6T,gBAAgBpQ,QAAQ6B,UAEpF,CACA,OAAO6P,aAAYW,YAAY3C,MAAM4C,KACzC,CAkDA,kBAAOD,CAAYnF,OASf,GAAIA,QAAU,aAAeA,QAAU,SAAU,CAC7C,MAAM,IAAIgC,UACN,oEAAoE1S,cAAc0Q,SAE1F,CACA,MAAMqF,SAAW9B,sBAAsBvD,OACvC,OAAO,IAAIwE,aACPa,SAAS7L,WACT6L,SAASzM,QACTyM,SAASzB,IACTyB,SAAS9F,eACT8F,SAASxB,YAEjB,CAkBA,YAAOyB,CAAM9L,YACT,MAAMkI,OAAS1V,aAAauD,cAAciK,WAAY,kCACtD,IAAKkI,OAAQ,CAKT,MAAM,IAAIM,UACN,+CAA+C3S,SAASmK,eAEhE,CACA,OAAO,IAAIgL,aAAY9C,OAAO9L,sBAAA,IAAYsM,IAAO,CAAA,EACrD,CAGA,cAAI1I,GACA,OAAOyL,MAAKzL,UAChB,CAGA,YAAI0G,GACA,OAAO+E,MAAKrB,IAAKzD,UAAY,IACjC,CAGA,aAAIC,GACA,OAAO6E,MAAKrB,IAAKvD,WAAa,IAClC,CAYA,eAAIG,GACA,OAAOyE,KAAKM,kBAAkBjO,KAClC,CAQA,qBAAIiO,GACA,OAAON,MAAKrB,IAAKnD,mBAAgB,EAC3BwE,MAAKO,sBACL/X,eAAewX,MAAKrB,IAAKnD,YACnC,CAMA,oBAAA+E,GACI,OAAO9X,qBACHzB,gBAAgBgZ,MAAKzL,aAAcc,UAAY,KAC/C2K,MAAKQ,qBAEb,CAQA,gBAAI3E,GACA,OAAOmE,KAAKS,mBAAmBpO,KACnC,CAGA,sBAAIoO,GACA,MAAMC,IAAMV,MAAKrB,IAAK7C,aACtB,GAAI4E,KAAK3E,YAAS,GAAa2E,IAAIzE,eAAY,EAAW,CACtD,OAAOzT,eAAeoF,OAAO+S,OAAO,CAAE3E,KAAM0E,IAAI3E,KAAMG,QAASwE,IAAIzE,UACvE,CACA,MAAM2E,SAAWZ,MAAKa,uBACtB,GAAID,SAASvO,QAAU,KAAM,OAAOuO,SACpC,OAAOpY,eACHoF,OAAO+S,OAAO,CACV3E,KAAM0E,KAAK3E,MAAQ6E,SAASvO,MAAM2J,KAClCE,QAASwE,KAAKzE,SAAW2E,SAASvO,MAAM6J,UAGpD,CAOA,iBAAIT,GACA,OAAOuE,KAAKc,oBAAoBzO,KACpC,CAGA,uBAAIyO,GACA,OAAOd,MAAKrB,IAAKjD,qBAAkB,EAC7BsE,MAAKe,wBACLvY,eAAewX,MAAKrB,IAAKjD,cACnC,CAOA,sBAAAqF,GACI,OAAOrY,uBAAuBsX,MAAKQ,qBACvC,CAMA,qBAAAK,GACI,OAAOlY,sBACH3B,gBAAgBgZ,MAAKzL,aAAcyM,qBAAuB,KAC1DhB,MAAKQ,qBAEb,CAUA,aAAI/F,GACA,OAAOuF,MAAKrB,IAAKtD,WAAa,IAClC,CAQA,gBAAIV,GACA,OAAOqF,MAAKrB,IAAKrD,cAAgB,IACrC,CAOA,SAAIT,GACA,OAAOmF,MAAKrB,IAAKxC,OAAS,IAC9B,CAqCA,kBAAI7B,GACA,OAAO0F,MAAK1F,cAChB,CAUA,cAAI2G,GACA,MAAMC,OAASlB,MAAKJ,gBACpB,GAAIsB,SAAW,MAAQA,OAAO1B,UAAYQ,MAAKR,QAAA,OAAiB0B,OAAO7O,MACvE,MAAMmM,MAAQwB,MAAKmB,eACnB,MAAMC,MAAQ,IAAInE,IAAIuB,OAAOzS,IAAK+H,MAAS,CAACA,KAAKzH,IAAIrB,cAAe8I,QAAU,IAC9E,MAAMH,QAA8B,IAAIqM,MAAKrM,QAAS+I,UAAU3Q,IAAKjB,SACjE,MAAMkC,MAAQgT,MAAKpM,SAAU9I,QAC7B,MAAMgJ,KAAOsN,MAAMlE,IAAIpS,OAAOC,KAAKC,eACnC,MAAMqW,QACDrU,QAAU,MAAQtC,oBAAoBI,OAAOC,OAAUF,oBAAoBC,QAChF,MAAO,CACHgJ,KAAMhJ,OAAOC,KACb4F,OAAQ7F,OAAOG,KACfqW,MAAOtU,QAAU,MAAQqU,QACzBE,mBAAoBF,QACpBG,SACIxU,OAAS8G,OAASuN,QACZ/H,eAAe0G,MAAKzL,WAAaT,KAAM9G,OACvC,QAGlB,MAAMqF,MAAQzJ,gBAAgB,CAAE2L,WAAYyL,MAAKzL,WAAaiK,YAAO7K,kBACrEqM,MAAKJ,gBAAmB,CAAEJ,QAASQ,MAAKR,QAAUnN,aAClD,OAAOA,KACX,CAkBA,KAAAmM,CAAMrL,MACF,IAAI+N,OAASlB,MAAKF,UAClB,GAAIoB,SAAW,MAAQA,OAAO1B,UAAYQ,MAAKP,YAAc,CACzDyB,OAAS,CAAE1B,QAASQ,MAAKP,YAAcpN,qBAAO,IAAI4K,KAClD+C,MAAKF,UAAaoB,MACtB,CACA,MAAMO,SAAWP,OAAO7O,MAAM6K,IAAI/J,MAClC,GAAIsO,gBAAa,EAAW,OAAOA,SAEnC,MAAMjD,MACFrL,YAAS,EACH6M,MAAKvD,SACLuD,MAAKvD,SAAUlP,OAAQuG,MAASA,KAAKX,OAASA,MACxD,MAAMd,MAAQ7H,WACVgU,MAAMzS,IAAK+H,OAAA,IACJA,KACH3F,KAAMkK,gBAAgBvE,MACtBhJ,OAAQkV,KAAK0B,eAAe5N,KAAKzH,SAGzC6U,OAAO7O,MAAMqM,IAAIvL,KAAMd,OACvB,OAAOA,KACX,CAWA,cAAAqP,CAAe/W,SACX,MAAMG,OAASkV,MAAK2B,gBAAiBhX,SACrC,IAAKG,OAAQ,OAAO,KACpB,IAAIoW,OAASlB,MAAKH,kBAClB,GAAIqB,SAAW,MAAQA,OAAO1B,UAAYQ,MAAKP,YAAc,CACzDyB,OAAS,CAAE1B,QAASQ,MAAKP,YAAcpN,qBAAO,IAAI4K,KAClD+C,MAAKH,kBAAqBqB,MAC9B,CACA,MAAMO,SAAWP,OAAO7O,MAAM6K,IAAIpS,OAAOC,MACzC,GAAI0W,gBAAa,EAAW,OAAOA,SACnC,MAAMG,IAAMzW,mBAAmBL,QAC/B,MAAMkC,MAAQgT,MAAKpM,SAAU9I,QAC7B,MAAM+G,UAAYG,gBAAgB4P,IAAK5U,OACvC,MAAMqF,MAAQ7H,WAAW,CACrBsJ,KAAMhJ,OAAOC,KACb4F,OAAQiR,IAAI3W,KACZ0R,GAAIiF,IAAIxW,GACRiI,SAAUuO,IAAIvW,SACd6S,OAAQ0D,IAAItW,OACZ+G,MAAOuP,IAAIrW,MACX4S,YAAayD,IAAIpW,YACjBoW,QACA5U,MAAOA,QAAU,KAAO,KAAOT,iBAAiBS,OAChD6U,eAAgBhQ,YAAc,KAAO,KAAOtF,iBAAiBsF,WAC7DiQ,WAAYrY,mBAAmBoI,WAC/BkQ,qBAAsBpa,6BAA6Bia,OAEvDV,OAAO7O,MAAMqM,IAAI5T,OAAOC,KAAMsH,OAC9B,OAAOA,KACX,CAgBA,aAAA2P,GACI,OAAOxX,WACH,IAAIwV,MAAKrM,QAASrH,QAAQ2V,QAAS5V,MAC/B,MAAMoR,OAASuC,KAAK0B,eAAerV,KACnC,OAAOoR,SAAW,KAAO,GAAK,CAACA,UAG3C,CAkBA,mBAAAyE,CAAoBvX,SAChB,MAAMG,OAASkV,MAAK2B,gBAAiBhX,SACrC,OAAOH,WACHM,OAASyE,uBAAuBzE,OAAOG,KAAM+U,MAAKpM,SAAU9I,SAAW,GAE/E,CAmBA,4BAAAqX,CAA6BxX,SACzB,MAAMG,OAASkV,MAAK2B,gBAAiBhX,SACrC,OAAOH,WACHM,OAASkF,0BAA0BlF,OAAOG,KAAM+U,MAAKpM,SAAU9I,SAAW,GAElF,CAkBA,cAAAsX,CAAezX,SACX,MAAMmJ,KAAOkM,MAAKqC,YAAa1X,SAC/B,OAAO9B,YAAY0E,OACdzC,QAAWwO,eAAe0G,MAAKzL,WAAaT,KAAMhJ,UAAY,KAEvE,CA8BA,SAAAwX,CAAU3X,QAAiBG,QACvB,MAAMgJ,KAAOkM,MAAKqC,YAAa1X,SAC/B,GAAIG,SAAW,MAAQA,cAAW,EAAW,CAIzC,MAAM,IAAIiS,UACN,kDAAkD3S,SAASO,sDAEnE,CAGA,UAAYG,OAAgC6F,SAAW,SAAU,CAC7D,MAAM,IAAIoM,UACN,sCAAsC3S,SAASO,oDAAoDN,cAAcS,UAEzH,CACA,MAAM8O,QAAUN,eAAe0G,MAAKzL,WAAaT,KAAMhJ,QACvD,GAAI8O,QAAS,CACT,MAAM,IAAImD,UACN,0BAA0B3S,SAASU,OAAO6F,aAAavG,SAASO,aAAaiP,UAErF,CAGA,MAAMvN,IAAM2T,MAAKuC,UAAW5X,UAAYmJ,KAAKzH,IAC7C2T,MAAKwC,cAAenW,IAAK,CAAEtB,KAAMsB,IAAKpB,KAAMH,OAAO6F,QAAUpE,iBAAiBzB,SAC9E,OAAOkV,IACX,CAWA,YAAAyC,CAAa9X,SAET,GAAIL,cAAcK,QAASuU,UAAUlU,gBAAkB,aAAc,CACjE,MAAM,IAAI+R,UAAU,kEACxB,CACA,MAAM1Q,IAAM2T,MAAKuC,UAAW5X,SAC5B,GAAI0B,MAAQ,KAAM2T,MAAKwC,cAAenW,IAAK,MAC3C,OAAO2T,IACX,CA4DA,cAAA0C,CAAe/X,QAAiB8C,OAAgByM,SAI5C5P,cAAcmD,OAAQ,sCACtB,GAAIyM,UAAY,aAAeA,UAAY,SAAU,CACjD,MAAM,IAAI6C,UACN,gFAAgF1S,cAAc6P,WAEtG,CAOA,MAAMyI,YAAczI,QAAQpM,MAC5B,MAAM8U,cAAgB1I,QAAQ2I,QAG9B,MAAMC,mBAAqB5I,QAAQ/M,mBAAgB,EACnD5C,uBACIuY,mBACA,oDAEJ,MAAMhY,OAASkV,MAAK2B,gBAAiBhX,SACrC,IAAKG,OAAQ,CACT,MAAM,IAAIiY,WACN,qCAAqC3Y,SAASO,qBAEtD,CACA,MAAMqC,MAAQgT,MAAKpM,SAAU9I,QAC7B,IAAKkC,MAAO,CACR,MAAM,IAAI+P,UACN,oDAAoD3S,SAASU,OAAOG,SAE5E,CAKA,MAAM+X,OAASja,0BAA0B+B,OAAOG,KAAMwC,QAGtD,MAAMwV,MACFD,SAAWvV,OACL,IAAIrD,SAASqD,WACb,IAAIrD,SAASqD,aAAarD,SAAS4Y,0BAO7C,GAAI7Z,yBAAyB6Z,QAAS,CAClC,MAAM,IAAIjG,UACN,+BAA+BkG,qJAEvC,CACA,IAAKtT,OAAOuT,UAAUP,cAAgBA,YAAc,GAAKA,YAAc,EAAG,CACtE,MAAM,IAAII,WACN,4CAA4CE,eAAe7Y,SAASuY,eAE5E,CACA,MAAM7U,MAAQ9E,kBAAkBga,OAAQL,aACxC,IAAK7U,MAAO,CACR,MAAM,IAAIiV,WACN,4CAA4CE,eAAe7Y,SAASuY,eAE5E,CACA,IAAIxV,aACJ,GAAI2V,0BAAuB,EAAW,CAClC3V,aAAe5D,sBAAsBuZ,oBACrC,IAAK3V,aAAc,CACf,MAAM,IAAI4V,WACN,4DAA4D3Y,SAAS0Y,uBAE7E,CACJ,CACA,MAAMD,QAAUD,eAAiB,EACjC,IAAKjT,OAAOC,SAASiT,UAAYA,QAAU,GAAKA,QAAU,EAAG,CACzD,MAAM,IAAIE,WACN,wEAER,CACA,GAAI/V,MAAMyB,kBAAmB,CACzB,MAAM,IAAIsO,UACN,uCAAuC3S,SAASU,OAAOG,8EAE/D,CAKA,IAAKyD,sBAAsB5D,OAAOG,KAAMwC,QAAS,CAC7C,MAAM,IAAIsP,UACN7N,eAAepE,OAAOG,MAChB,uCAAuCb,SAASU,OAAOG,mCAAmCgY,mBAAmB7Z,uBAAuB0B,OAAOG,MAAMiD,KAAK,QACtJ,iFAAiF9D,SAASU,OAAOG,SAE/G,CACA,GACI6X,0BAAuB,IACtB7T,yBAAyBnE,OAAOG,KAAM6X,oBACzC,CACE,MAAMnU,QAAUtF,0BAA0ByB,OAAOG,MACjD,MAAM,IAAI8R,UACN,uCAAuC3S,SAASU,OAAOG,8CAA8Cb,SAAS0Y,kCAAkCnU,QAAQe,OAAS,EAAIf,QAAQT,KAAK,MAAQ,2BAElM,CACA,MAAMjB,KAAOtD,UAAUqD,OACvB,MAAMmW,QAAUpW,kBAAkBC,MAAOC,KAAMa,MAAMZ,SAAUC,cAAc+C,WAC7E,GAAIiT,QAAQzT,OAAS,EAAG,CACpB,MAAM,IAAIqN,UACN,8CAA8CkG,qBAAqB7Y,SAASU,OAAOG,kCAAkCkY,QAAQjV,KAAK,QAE1I,CAIA,MAAMzB,mBAAqBU,cAAcV,oBAAsBqB,MAAMrB,mBACrE,MAAMyD,UAAYtG,iBAAiBqD,KAAMa,MAAO+U,QAAS1V,cACzD,GAAIV,mBAAoB,CACpB,IAAA,MAAWiF,OAAQ,CAAC,UAAW,UAAW,YAAa,YAAsB,CACzE,MAAMW,MAAQ5F,mBAAmBiF,MACjC,GAAIW,aAAU,EAAW,SACzB,MAAM/E,MAAQzD,oBAAoB6H,MAAM,GACxC,GAAIpE,aAAU,EAAW,SACzB4C,UAAUH,KAAK,CACXuB,MAAOhE,MACP/B,MAAO8G,MAAQvI,cAAcwD,OAC7B8V,eAAgBpW,MAAMP,qBAAqBiF,OAAS,GAAK5H,cAAcwD,QAE/E,CACJ,CACA,MAAM6Q,YAAiC,CACnC1S,cAAegC,OACf/B,MAAOiX,YACPhX,QAASkX,WACLC,0BAAuB,EAAY,CAAElX,mBAAoBkX,oBAAuB,CAAA,EACpFhX,UAAWoE,WAEf8P,MAAKwC,cAAe1X,OAAOC,KAAM,IAAKD,OAAQU,YAAa2S,cAC3D,OAAO6B,IACX,CAWA,gBAAAqD,CAAiB1Y,SACb,MAAMG,OAASkV,MAAK2B,gBAAiBhX,SACrC,GAAIG,QAAUkV,MAAKpM,SAAU9I,SAAS2D,kBAAmB,CACrD,MAAM,IAAIsO,UACN,yCAAyC3S,SAASU,OAAOG,iFAEjE,CACA,GAAIH,QAAQU,YAAa,CACrB,MAAM8X,KAAsB,CAAEvY,KAAMD,OAAOC,KAAME,KAAMH,OAAOG,MAC9D,GAAIH,OAAOM,UAAO,EAAYkY,KAA0BlY,GAAKN,OAAOM,GACpE,GAAIN,OAAOO,gBAAa,EAAW,CAC9BiY,KAA+BjY,SAAWP,OAAOO,QACtD,CACA,GAAIP,OAAOQ,cAAW,EAAYgY,KAA6BhY,OAASR,OAAOQ,OAC/E,GAAIR,OAAOS,aAAU,EAAY+X,KAA4B/X,MAAQT,OAAOS,MAC5EyU,MAAKwC,cAAe1X,OAAOC,KAAMuY,KACrC,CACA,OAAOtD,IACX,CAoBA,gBAAAuD,CAAiB5Y,QAAiBgS,IAC9BqD,MAAKwD,YAAa7Y,QAAS,CAAES,GAAIuR,KACjC,OAAOqD,IACX,CAaA,iBAAAyD,CAAkB9Y,QAAiB0I,UAC/B,IAAK1D,OAAOuT,UAAU7P,WAAaA,SAAW,GAAKA,SAAW,EAAG,CAC7D,MAAM,IAAI0P,WACN,2DAA2D3Y,SAASiJ,YAE5E,CACA2M,MAAKwD,YAAa7Y,QAAS,CAAEU,SAAUgI,WACvC,OAAO2M,IACX,CAWA,YAAAwD,CAAa7Y,QAAiB+Y,OAC1B,MAAM5Y,OAASkV,MAAK2B,gBAAiBhX,SACrC,IAAKG,OAAQ,CACT,MAAM,IAAIiY,WAAW,sBAAsB3Y,SAASO,qBACxD,CACAqV,MAAKrM,QAAS+K,IAAI5T,OAAOC,KAAMI,mBAAmB,IAAKL,UAAW4Y,SAClE1D,MAAKP,aACT,CAgCA,cAAAkE,CAAezJ,QAAgC,CAAA,GAC3C,MAAMzF,KAAOzN,gBAAgBgZ,MAAKzL,YAClC,MAAMgH,YAAcyE,MAAKO,sBAAuBlO,MAChD,MAAMoJ,cAAgBuE,MAAKe,wBAAyB1O,MACpD,MAAMuR,KAAO5D,MAAKa,uBAAwBxO,MAC1C,MAAMsJ,aAAeqE,MAAK6D,oBAAqBtI,aAC/C,OAAOvB,mBACH,CACIzF,WAAYyL,MAAKzL,cACbyL,MAAKrB,IAAKzD,gBAAa,EAAY,CAAA,EAAK,CAAED,SAAU+E,MAAKrB,IAAKzD,aAC9D8E,MAAKrB,IAAKvD,iBAAc,EAAY,CAAA,EAAK,CAAED,UAAW6E,MAAKrB,IAAKvD,WACpEzH,QAASqM,MAAKrM,WACVuG,QAAQqC,cAAgB,QAAU,CAAEE,OAAQuD,MAAKmB,gBAAoB,CAAA,EACzE7G,eAAgB0F,MAAK1F,eACrBI,gBAAiBjG,MAAMqP,UAAY,KACnCvI,wBACAE,4BACAI,aAAc+H,KACdjI,0BACA/H,SAAW9I,QAAWkV,MAAKpM,SAAU9I,SAEzCoP,QAER,CAUA,MAAAhT,CAAOgT,SACH,OAAOhT,OAAe8Y,KAAK2D,eAAezJ,SAAUA,QAAQ6J,OAChE,CAeA,YAAAC,CAAa9J,SACT,OAAO/S,cAAc6Y,KAAK9Y,OAAOgT,SAAU,CAAE+J,OAAQ/J,QAAQ+J,QAAU,GAC3E,CAGA,oBAAAJ,CAAqBtI,aACjB,GAAIA,cAAgB,KAAM,OAAO,KACjC,IAAI2I,MACJ,IACIA,MAAQlE,MAAKmE,cACjB,CAAA,MAEI,OAAO,IACX,CACA,GAAID,QAAU,KAAM,OAAO,KAG3B,MAAME,KAAOpE,MAAKa,uBAAwBxO,MAC1C,GAAI+R,OAAS,KAAM,OAAO,KAC1B,OAAO/b,gBAAgBkT,YAAaxG,KAAKsP,IAAID,KAAKpI,KAAMkI,MAAMI,SAAUJ,MAC5E,CASA,mBAAI7M,GACA,MAAM6M,MAAQlE,MAAKmE,eACnB,GAAID,QAAU,KAAM,MAAM,IAAInH,UAAU,+CACxC,OAAOmH,KACX,CAcA,YAAAvI,GACI,MAAM4I,IAAMvE,KAAK3I,gBACjB,MAAMuM,KAAO7O,KAAKsP,IAAIrE,MAAKwE,sBAAuBxI,KAAMuI,IAAID,SAC5D,OAAOjc,gBAAgB2X,MAAKyE,YAAa,GAAIb,KAAMW,IACvD,CAYA,SAAAG,CAAUxK,QAAuB,CAAA,GAC7B,MAAMqK,IAAMvE,KAAK3I,gBACjB,MAAMuM,KAAO1J,QAAQ0J,MAAQ5D,MAAKwE,sBAAuBxI,KACzD,OAAO3T,gBAAgB2X,MAAKyE,YAAavK,QAAQtC,OAAS,GAAIgM,KAAMW,IACxE,CASA,cAAAI,GACI,OAAO3E,KAAK0E,UAAU,CAAE9M,MAAOoI,MAAK4E,wBACxC,CAaA,WAAAtc,CAAYuc,SAAkB3K,QAAuB,CAAA,GACjD,MAAMqK,IAAMvE,KAAK3I,gBACjB,MAAMuM,KAAO1J,QAAQ0J,MAAQ5D,MAAKwE,sBAAuBxI,KACzD,OAAO1T,YAAYuc,SAAU7E,MAAKyE,YAAavK,QAAQtC,OAAS,GAAIgM,KAAMW,IAC9E,CAWA,UAAAhc,CAAW2R,QAAuC,CAAA,GAC9C,OAAO3R,WACHyX,MAAKyE,YAAavK,QAAQtC,OAAS,GACnCoI,MAAKwE,sBAAuBxI,KAC5BgE,KAAK3I,gBAEb,CAuBA,gBAAAyN,GACI,MAAMlN,MAAQoI,MAAK4E,uBACnB,MAAO,CACH5P,IAAKgL,KAAKrE,eACVoJ,QAAS/E,KAAK0E,YACdM,MAAOhF,KAAK0E,UAAU,CAAE9M,cACxBqN,aAAcjF,KAAKzX,aACnB2c,WAAYlF,KAAKzX,WAAW,CAAEqP,cAEtC,CA2BA,WAAAlQ,GACI,MAAMiM,QAAU,IAAIqM,MAAKrM,QAAS+I,UAClC,MAAMyI,UAA6B,GACnC,IAAA,MAAWra,UAAU6I,QAAS,CAC1B,MAAMyR,SAAWvS,iBAAiB/H,OAAQkV,MAAKpM,SAAU9I,SACzD,GAAIsa,SAAUD,UAAUpV,KAAKqV,SACjC,CACA,OAAO1d,YACHgM,eAAeC,QAAU7I,QAAWkV,MAAKpM,SAAU9I,SACnDqa,UAER,CA2BA,aAAA/c,CAAc8R,QAA0B,CAAA,GACpC,MAAMD,MAAQ3F,eACV0L,MAAKzL,WACL,IAAIyL,MAAKrM,QAAS+I,UAClBxC,QAAQ1F,aAAe,EACtB1J,QAAWkV,MAAKpM,SAAU9I,SAE/B,IAAKmP,MAAMvF,UAAW,OAAO,KAC7B,OAAOtM,cAAc6R,MACzB,CAqBA,aAAAvQ,GACI,OAAOA,cACHmM,eAAemK,MAAKzL,WAAa,IAAIyL,MAAKrM,QAAS+I,UAAY5R,QAC3DkV,MAAKpM,SAAU9I,SAG3B,CAyBA,aAAAhD,GACI,MAAMud,QAAiC,GACvC,IAAA,MAAWva,UAAUkV,MAAKrM,QAAS+I,SAAU,CACzC,MAAM4I,OAAStF,MAAKpM,SAAU9I,QAC9B,MAAMkC,MAAQwJ,eAAe1L,OAAQwa,QACrC,IAAKtY,MAAO,SACZqY,QAAQtV,KAAK,CACT+D,KAAMhJ,OAAOC,KACb4F,OAAQ7F,OAAOG,KACfkD,KAAMmX,QAAQnX,MAAQrD,OAAOG,KAC7BqI,QAASxI,OAAOM,KAAO,MACvBma,QAASzd,cAAckF,OACvB8U,WAAYrY,mBAAmBuD,QAEvC,CACA,MAAO,CACHqY,gBACAG,MAAOzd,iBACHsd,QAAQ9X,OAAQkJ,QAAWA,OAAOnD,SAASvH,IAAK0K,QAAWA,OAAO8O,UAG9E,CASA,aAAApE,GACI,GAAInB,MAAKN,mBAAiB,EAAW,CACjC,MAAMjD,OAAS1V,aAAaiZ,MAAKzL,YACjCyL,MAAKN,YAAejD,SAAW,KAAO,KAAO7O,OAAO+S,OAAOtZ,eAAeoV,QAC9E,CACA,OAAOuD,MAAKN,WAChB,CAGA,WAAA+F,GACIzF,MAAKR,UACLQ,MAAKP,aACT,CAEA,OAAAhD,GACI,MAAMA,OAASuD,MAAKmB,eACpB,IAAK1E,OAAQ,CACT,MAAM,IAAIM,UACN,yCAAyC3S,SAAS4V,MAAKzL,eAE/D,CACA,OAAOkI,MACX,CAEA,YAAA4F,CAAa1X,SACT,MAAMyB,OAAS9B,cAAcK,QAASuU,UAAUlU,cAChD,MAAM8I,KAAOkM,MAAKvD,SAAUhH,KAAMiQ,GAAMA,EAAErZ,IAAIrB,gBAAkBoB,QAChE,IAAK0H,KAAM,CACP,MAAM,IAAIiP,WACN,sBAAsB3Y,SAAS4V,MAAKzL,6BAA8BnK,SAASO,YAEnF,CACA,OAAOmJ,IACX,CAMA,UAAAyO,CAAW5X,SACP,OAAOsB,cAAc+T,MAAKrM,QAAUrJ,cAAcK,QAASuU,UAC/D,CAGA,gBAAAyC,CAAiBhX,SACb,MAAM0B,IAAM2T,MAAKuC,UAAW5X,SAC5B,OAAO0B,MAAQ,UAAO,EAAY2T,MAAKrM,QAASuJ,IAAI7Q,IACxD,CAGA,QAAAsZ,CAAYC,OAA8BC,MACtC,GAAID,OAAOvT,QAAU,KAAM,CACvB,MAAM,IAAI0K,UACN,iCAAiC8I,SAASD,OAAOE,OAAO/Z,IAAKga,GAAMA,EAAEC,SAAS9X,KAAK,SAE3F,CACA,OAAO0X,OAAOvT,KAClB,CAGA,YAAAoS,CAAa7M,OACT,OAAOoI,MAAK2F,QAAS3F,KAAKM,kBAAmB,QAAU1I,KAC3D,CAGA,oBAAA4M,GACI,OAAOxE,MAAK2F,QAAS3F,KAAKS,mBAAoB,gBAClD,CAGA,qBAAAmE,GACI,OAAO5E,MAAK2F,QAAS3F,KAAKc,oBAAqB,iBACnD,CAGA,mBAAAN,GACI,MAAMU,OAASlB,MAAKL,iBACpB,GAAIuB,SAAW,MAAQA,OAAO1B,UAAYQ,MAAKR,QAAA,OAAiB0B,OAAO7O,MACvE,MAAMA,MAAQ2N,MAAKiG,4BACnBjG,MAAKL,iBAAoB,CAAEH,QAASQ,MAAKR,QAAUnN,aACnD,OAAOA,KACX,CAEA,0BAAA4T,GACI,MAAO,IAAIjG,MAAKrM,QAAS+I,UAAU3Q,IAAKjB,SACpC,MAAMkC,MAAQgT,MAAKpM,SAAU9I,QAC7B,MAAM6F,OAAS7F,OAAOG,KAAKD,cAC3B,MAAM+H,WAAazL,cAAcwD,OAAOC,MACxC,MAAMmb,qBACFlZ,QAAU,OAAStC,oBAAoBI,OAAOC,QAAUF,oBAAoBC,QAChF,MAAMqb,YACFnZ,OAAOyO,qBAAkB,GACzBzO,OAAOsF,mBAAqB,cAC5B3B,OAAOyV,SAAS,aACpB,MAAMvM,WACF7M,OAAO6O,oBAAiB,GACxB7O,OAAO8G,OAAS,YAChBnD,OAAOzF,WAAWmU,kBACtB,MAAMgH,iBACFH,uBAAyBnT,aAAe,MAAQA,WAAWI,OAAS,YACxE,MAAMmT,aACFD,kBACCH,sBACGnT,YAAYI,OAAS,QACrBJ,WAAWS,OAAS,WAC5B,MAAO,CACHM,KAAMhJ,OAAOC,KACb4F,OAAQ7F,OAAOG,KACf2K,KAAMoK,MAAKuG,WAAYzb,WACnBqb,aAAeE,iBACb,CACI5K,cAAe0K,YACTnG,MAAKwG,eAAgB1b,OAAQ,gBAAiB,iBAC9C,MAEV,CAAA,KACF+O,YAAcyM,aACZ,CACIzK,aAAchC,WACRmG,MAAKwG,eAAgB1b,OAAQ,eAAgB,gBAC7C,MAEV,CAAA,IAGlB,CAGA,cAAA0X,CACI7X,QACA8b,YACAC,kBAEA,MAAMC,SAAW3G,MAAKrM,QAASuJ,IAAIvS,UAAY,KAC/CqV,MAAK4G,sBAAuBD,SAAUF,YAAaC,kBACnD,GAAID,cAAgB,KAAM,CACtBzG,MAAKrM,QAASwJ,OAAOxS,SACrBqV,MAAKpB,YAAazB,OAAOxS,QAC7B,KAAO,CACHqV,MAAKrM,QAAS+K,IAAI/T,QAASQ,mBAAmBsb,cAC9C,GAAIC,wBAAqB,EAAW1G,MAAKpB,YAAaF,IAAI/T,QAAS+b,iBACvE,CACA1G,MAAKyF,YACT,CAMA,sBAAAmB,CACID,SACAE,KACAC,WAEA,MAAMC,aAAe/G,MAAKuG,WAAYI,UACtC,MAAMK,SAAWhH,MAAKuG,WAAYM,KAAMC,WACxC,GAAI9G,MAAKrB,IAAKnD,mBAAgB,EAAW,CACrC,GAAIuL,eAAiB,MAAQC,WAAa,YAAahH,MAAKrB,IAAKnD,iBAC5DwE,MAAKrB,IAAKnD,aAAewL,SAAWD,YAC7C,CAEA,MAAME,cAAgBjH,MAAKwG,eAAgBG,SAAU,gBAAiB,iBACtE,MAAMO,UAAYlH,MAAKwG,eAAgBK,KAAM,gBAAiB,gBAAiBC,WAC/E,GAAI9G,MAAKrB,IAAKjD,qBAAkB,EAAW,CACvC,GAAIuL,gBAAkB,MAAQC,YAAc,YAAalH,MAAKrB,IAAKjD,mBAC9DsE,MAAKrB,IAAKjD,eAAiBwL,UAAYD,aAChD,CAEA,MAAME,aAAenH,MAAKwG,eAAgBG,SAAU,eAAgB,gBACpE,MAAMS,SAAWpH,MAAKwG,eAAgBK,KAAM,eAAgB,eAAgBC,WAC5E,GAAI9G,MAAKrB,IAAK7C,cAAcC,YAAS,EAAW,CAC5C,MAAMG,QAAU8D,MAAKrB,IAAK7C,aAAaG,QACvC,GAAIkL,eAAiB,MAAQC,WAAa,KAAM,CAC5C,GAAIlL,eAAY,SAAkB8D,MAAKrB,IAAK7C,kBACvCkE,MAAKrB,IAAK7C,aAAe,CAAEG,QAASC,QAC7C,KAAO,CACH8D,MAAKrB,IAAK7C,aAAe,CACrBC,KAAMiE,MAAKrB,IAAK7C,aAAaC,KAAOqL,SAAWD,gBAC3CjL,eAAY,EAAY,CAAA,EAAK,CAAED,QAASC,SAEpD,CACJ,CAIA,GAAI/R,aAAawc,UAAU1b,KAAMR,eAAiBN,aAAa0c,MAAM5b,KAAMR,aAAc,CACrF,MACJ,QAGOuV,MAAKrB,IAAKrD,oBACV0E,MAAKrB,IAAKxC,KACrB,CASA,WAAAoK,CAAYzb,OAA8BwE,eACtC,GAAIxE,SAAW,KAAM,OAAO,EAC5B,MAAMsG,SAAWhK,mBAAmB0D,OAAQ,QAC5C,GAAIsG,WAAa,KAAM,OAAOA,SAC9B,MAAMpE,MAAQsC,eAAiB0Q,MAAKpM,SAAU9I,QAC9C,GAAIkC,OAAO4I,YAAS,EAAW,OAAO5I,MAAM4I,KAM5C,GAAI/K,oBAAoBC,QAAS,OAAO,EACxC,OAAOkC,QAAU,MAAQtC,oBAAoBI,OAAOC,MAAQ,EAAI,IACpE,CAMA,eAAAyb,CACI1b,OACAuc,cACApW,MACA3B,eAEA,GAAIxE,SAAW,KAAM,OAAO,EAC5B,MAAMsG,SAAWhK,mBAAmB0D,OAAQuc,eAC5C,GAAIjW,WAAa,KAAM,OAAOA,SAC9B,MAAMpE,MAAQsC,eAAiB0Q,MAAKpM,SAAU9I,QAC9C,GAAIkC,QAAQiE,cAAW,EAAW,OAAOjE,MAAMiE,OAC/C,MAAMN,OAAS7F,OAAOG,KAAKD,cAI3B,MAAM6O,WAAa7M,OAAO8G,KACpB9G,MAAM8G,OAAS,WACfnD,OAAOzF,WAAWmU,kBACxB,MAAMiI,oBACFrW,QAAU,gBAAkBN,OAAOyV,SAAS,aAAevM,WAC/D,OAAOyN,oBAAsB,KAAO,CACxC,CAEA,aAAAnD,GACI,IAAIoD,UACJ,IAAA,MAAWC,KAAKxH,MAAKrM,QAAS+I,SAAU,CAIpC,MAAM1P,MAAQgT,MAAKpM,SAAU4T,GAC7B,MAAMC,QAAUza,OAAO8G,KACjB9G,MAAM8G,OAAS,kBACf0T,EAAEvc,KAAKD,cAAcE,WAAWiU,YACtC,GAAIsI,QAAS,CACTF,UAAYC,EACZ,KACJ,CACJ,CACA,IAAKD,UAAW,OAAO,KACvB,MAAMta,KAAO+S,MAAKpM,SAAU2T,WAC5B,IAAKta,MAAQA,KAAKya,eAAY,GAAaza,KAAK0a,iBAAc,EAAW,CAIrE,MAAM,IAAI5K,UACN,gFAAgF3S,SAASmd,UAAUtc,SAE3G,CAEA,MAAM6J,QAAU1N,mBAAmBmgB,UAAW,mBAAqBta,KAAK6H,QACxE,MAAMwP,QAAUld,mBAAmBmgB,UAAW,mBAAqBta,KAAKqX,QACxE,GAAIxP,eAAY,GAAawP,eAAY,EAAW,CAChD,MAAMnB,QAAU,IACRrO,eAAY,EAAY,CAAC,WAAa,MACtCwP,eAAY,EAAY,CAAC,WAAa,IAE9C,MAAM,IAAIvH,UACN,mCAAmC3S,SAASmd,UAAUtc,iBAAiBkY,QAAQjV,KAAK,iCAE5F,CAEA,MAAO,CACH4G,gBACAwP,gBACAoD,QAASza,KAAKya,QACdC,UAAW1a,KAAK0a,UAChBC,UAAW5H,MAAK6H,mBAExB,CAGA,iBAAAA,GACI,IAAA,MAAWL,KAAKxH,MAAKrM,QAAS+I,SAAU,CACpC,MAAM1P,MAAQgT,MAAKpM,SAAU4T,GAC7B,GACIxa,OAAOsF,mBAAqB,gBAC3BkV,EAAEvc,KAAKD,cAAcE,WAAWkU,gBACnC,CACE,QACJ,CACA,GAAIoI,EAAEpc,KAAO,MAAO,SACpB,GAAI4B,OAAO4a,iBAAc,EAAW,CAChC,MAAM,IAAI7K,UACN,6BAA6B3S,SAASod,EAAEvc,iDAEhD,CACA,OAAO+B,MAAM4a,SACjB,CACA,OAAO,CACX,CAGA,SAAAhU,CAAU9I,QACN,GAAIA,SAAW,KAAM,OAAO,KAC5B,MAAMkC,MACFgT,MAAKpB,YAAa1B,IAAIpS,OAAOC,OAAS9C,sBAAsB6C,OAAOG,KAAMR,aAC7E,GAAIuC,MAAO,OAAOA,MAIlB,OAAOnC,oBAAoBC,QACrB7C,sBAAsB,sBAAuB,gCAC7C,IACV,UACJqX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{buildMicroResourceCatalogue}from"./chunk-S4UWCHL6.js";var micro_resources_data_default=[{symbol:"internalcorrespondence",name:"Internal Correspondence"},{symbol:"spyware",name:"Spyware"},{symbol:"biometricdata",name:"Biometric Data"},{symbol:"nocdata",name:"NOC Data"},{symbol:"axcombatlogs",name:"AX Combat Logs"},{symbol:"accidentlogs",name:"Accident Logs"},{symbol:"airqualityreports",name:"Air Quality Reports"},{symbol:"atmosphericdata",name:"Atmospheric Data"},{symbol:"audiologs",name:"Audio Logs"},{symbol:"ballisticsdata",name:"Ballistics Data"},{symbol:"biologicalweapondata",name:"Biological Weapon Data"},{symbol:"blacklistdata",name:"Blacklist Data"},{symbol:"bloodtestresults",name:"Blood Test Results"},{symbol:"campaignplans",name:"Campaign Plans"},{symbol:"catmedia",name:"Cat Media"},{symbol:"censusdata",name:"Census Data"},{symbol:"chemicalexperimentdata",name:"Chemical Experiment Data"},{symbol:"chemicalformulae",name:"Chemical Formulae"},{symbol:"chemicalinventory",name:"Chemical Inventory"},{symbol:"chemicalpatents",name:"Chemical Patents"},{symbol:"chemicalweapondata",name:"Chemical Weapon Data"},{symbol:"classicentertainment",name:"Classic Entertainment"},{symbol:"cocktailrecipes",name:"Cocktail Recipes"},{symbol:"combattrainingmaterial",name:"Combat Training Material"},{symbol:"combatantperformance",name:"Combatant Performance"},{symbol:"conflicthistory",name:"Conflict History"},{symbol:"cropyieldanalysis",name:"Crop Yield Analysis"},{symbol:"culinaryrecipes",name:"Culinary Recipes"},{symbol:"digitaldesigns",name:"Digital Designs"},{symbol:"dutyrota",name:"Duty Rota"},{symbol:"employeedirectory",name:"Employee Directory"},{symbol:"employeeexpenses",name:"Employee Expenses"},{symbol:"employeegeneticdata",name:"Employee Genetic Data"},{symbol:"employmenthistory",name:"Employment History"},{symbol:"enhancedinterrogationrecordings",name:"Enhanced Interrogation Recordings"},{symbol:"espionagematerial",name:"Espionage Material"},{symbol:"evacuationprotocols",name:"Evacuation Protocols"},{symbol:"explorationjournals",name:"Exploration Journals"},{symbol:"extractionyielddata",name:"Extraction Yield Data"},{symbol:"factionassociates",name:"Faction Associates"},{symbol:"financialprojections",name:"Financial Projections"},{symbol:"factionnews",name:"Faction News"},{symbol:"fleetregistry",name:"Fleet Registry"},{symbol:"genesequencingdata",name:"Gene Sequencing Data"},{symbol:"geneticresearch",name:"Genetic Research"},{symbol:"hydroponicdata",name:"Hydroponic Data"},{symbol:"incidentlogs",name:"Incident Logs"},{symbol:"influenceprojections",name:"Influence Projections"},{symbol:"interrogationrecordings",name:"Interrogation Recordings"},{symbol:"interviewrecordings",name:"Interview Recordings"},{symbol:"jobapplications",name:"Job Applications"},{symbol:"kompromat",name:"Kompromat"},{symbol:"literaryfiction",name:"Literary Fiction"},{symbol:"maintenancelogs",name:"Maintenance Logs"},{symbol:"manufacturinginstructions",name:"Manufacturing Instructions"},{symbol:"medicalrecords",name:"Medical Records"},{symbol:"medicaltrialrecords",name:"Clinical Trial Records"},{symbol:"meetingminutes",name:"Meeting Minutes"},{symbol:"mineralsurvey",name:"Mineral Survey"},{symbol:"mininganalytics",name:"Mining Analytics"},{symbol:"multimediaentertainment",name:"Multimedia Entertainment"},{symbol:"networkaccesshistory",name:"Network Access History"},{symbol:"networksecurityprotocols",name:"Network Security Protocols"},{symbol:"nextofkinrecords",name:"Next of Kin Records"},{symbol:"operationalmanual",name:"Operational Manual"},{symbol:"opinionpolls",name:"Opinion Polls"},{symbol:"patienthistory",name:"Patient History"},{symbol:"patrolroutes",name:"Patrol Routes"},{symbol:"personallogs",name:"Personal Logs"},{symbol:"photoalbums",name:"Photo Albums"},{symbol:"plantgrowthcharts",name:"Plant Growth Charts"},{symbol:"politicalaffiliations",name:"Political Affiliations"},{symbol:"prisonerlogs",name:"Prisoner Logs"},{symbol:"productionreports",name:"Production Reports"},{symbol:"productionschedule",name:"Production Schedule"},{symbol:"propaganda",name:"Propaganda"},{symbol:"purchaserecords",name:"Purchase Records"},{symbol:"purchaserequests",name:"Purchase Requests"},{symbol:"radioactivitydata",name:"Radioactivity Data"},{symbol:"reactoroutputreview",name:"Reactor Output Review"},{symbol:"recyclinglogs",name:"Recycling Logs"},{symbol:"residentialdirectory",name:"Residential Directory"},{symbol:"riskassessments",name:"Risk Assessments"},{symbol:"salesrecords",name:"Sales Records"},{symbol:"securityexpenses",name:"Security Expenses"},{symbol:"seedgeneaology",name:"Seed Geneaology"},{symbol:"settlementassaultplans",name:"Settlement Assault Plans"},{symbol:"settlementdefenceplans",name:"Settlement Defence Plans"},{symbol:"shareholderinformation",name:"Shareholder Information"},{symbol:"slushfundlogs",name:"Slush Fund Logs"},{symbol:"smearcampaignplans",name:"Smear Campaign Plans"},{symbol:"spectralanalysisdata",name:"Spectral Analysis Data"},{symbol:"stellaractivitylogs",name:"Stellar Activity Logs"},{symbol:"surveilleancelogs",name:"Surveillance Logs"},{symbol:"tacticalplans",name:"Tactical Plans"},{symbol:"taxrecords",name:"Tax Records"},{symbol:"topographicalsurveys",name:"Topographical Surveys"},{symbol:"travelpermits",name:"Travel Permits"},{symbol:"troopdeploymentrecords",name:"Troop Deployment Records"},{symbol:"unionmembership",name:"Union Membership"},{symbol:"vaccinationrecords",name:"Vaccination Records"},{symbol:"vaccineresearch",name:"Vaccine Research"},{symbol:"vipsecuritydetail",name:"VIP Security Detail"},{symbol:"virologydata",name:"Virology Data"},{symbol:"virus",name:"Virus"},{symbol:"visitorregister",name:"Visitor Register"},{symbol:"weaponinventory",name:"Weapon Inventory"},{symbol:"weapontestdata",name:"Weapon Test Data"},{symbol:"xenodefenceprotocols",name:"Xeno-Defence Protocols"},{symbol:"payrollinformation",name:"Payroll Information"},{symbol:"geologicaldata",name:"Geological Data"},{symbol:"criminalrecords",name:"Criminal Records"},{symbol:"factiondonatorlist",name:"Faction Donator List"},{symbol:"pharmaceuticalpatents",name:"Pharmaceutical Patents"}];var DATA_MICRO_RESOURCES=buildMicroResourceCatalogue(micro_resources_data_default,"data");export{DATA_MICRO_RESOURCES};//# sourceMappingURL=chunk-RIT6MOO5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/materials/micro-resources-data.ts"],"names":["buildMicroResourceCatalogue","micro_resources_data_default","DATA_MICRO_RESOURCES"],"mappings":"O,qhMA+BO,IAAME,qBAAiDF,4BAC1DC,6BACA,eACJC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{deepFreeze}from"./chunk-DURKO7JU.js";function buildNebulaCatalogue(records,type){return deepFreeze(records.map(record=>({name:record.name,system:record.system??record.name,x:record.x,y:record.y,z:record.z,type:type,regionId:record.regionId})))}export{buildNebulaCatalogue};//# sourceMappingURL=chunk-RVSXKQHE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/astro/internal/nebula-catalogue.ts"],"names":["deepFreeze","buildNebulaCatalogue","records","type","map","record","name","system","x","y","z","regionId"],"mappings":"O,qCA8BO,SAASC,qBACZC,QACAC,MAEA,OAAOH,WACHE,QAAQE,IAAKC,SAAA,CACTC,KAAMD,OAAOC,KACbC,OAAQF,OAAOE,QAAUF,OAAOC,KAChCE,EAAGH,OAAOG,EACVC,EAAGJ,OAAOI,EACVC,EAAGL,OAAOK,EACVP,UACAQ,SAAUN,OAAOM,YAG7B,QAAAV"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{requireString}from"./chunk-B5TT26XE.js";var CATALOGUE_KEY="catalogue key";function normalizeKey(value,label){return value==null?void 0:requireString(value,label).trim().toLowerCase()}function createKeyIndex(catalogue,field){const index=/* @__PURE__ */Object.create(null);for(const record of catalogue){const raw=stringField(record,field);if(raw===null)continue;const key=normalizeKey(raw,CATALOGUE_KEY);if(!Object.hasOwn(index,key))index[key]=record}return Object.freeze(index)}function findInKeyIndex(index,wanted,label){return index[normalizeKey(wanted,label)]??null}function findByRawKey(catalogue,wanted,label){const key=normalizeKey(wanted,label);if(Object.hasOwn(catalogue,wanted))return catalogue[wanted];for(const candidate of Object.keys(catalogue)){if(normalizeKey(candidate,CATALOGUE_KEY)===key)return catalogue[candidate]}return null}function findByKey(catalogue,field,wanted,label){const key=normalizeKey(wanted,label);return catalogue.find(record=>matches(stringField(record,field),key))??null}function filterByKey(catalogue,field,wanted,label){const key=normalizeKey(wanted,label);return catalogue.filter(record=>matches(stringField(record,field),key))}function stringField(record,field){const value=record[field];return typeof value==="string"?value:null}function matches(raw,key){return raw!==null&&normalizeKey(raw,CATALOGUE_KEY)===key}export{CATALOGUE_KEY,createKeyIndex,filterByKey,findByKey,findByRawKey,findInKeyIndex,normalizeKey};//# sourceMappingURL=chunk-S4DBNX2B.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/registry-index.ts"],"names":["requireString","CATALOGUE_KEY","normalizeKey","value","label","trim","toLowerCase","createKeyIndex","catalogue","field","index","Object","create","record","raw","stringField","key","hasOwn","freeze","findInKeyIndex","wanted","findByRawKey","candidate","keys","findByKey","find","matches","filterByKey","filter"],"mappings":"O,wCAqBO,IAAMC,cAAgB,gBA2BtB,SAASC,aAAaC,MAA2BC,OACpD,OAAOD,OAAS,UAAO,EAAYH,cAAcG,MAAOC,OAAOC,OAAOC,aAC1E,CAWO,SAASC,eACZC,UACAC,OAEA,MAAMC,qBAAQC,OAAOC,OAAO,MAC5B,IAAA,MAAWC,UAAUL,UAAW,CAC5B,MAAMM,IAAMC,YAAYF,OAAQJ,OAChC,GAAIK,MAAQ,KAAM,SAClB,MAAME,IAAMd,aAAaY,IAAKb,eAC9B,IAAKU,OAAOM,OAAOP,MAAOM,KAAMN,MAAMM,KAAOH,MACjD,CACA,OAAOF,OAAOO,OAAOR,MACzB,CAOO,SAASS,eAAkBT,MAAoBU,OAAgBhB,OAClE,OAAOM,MAAMR,aAAakB,OAAQhB,SAAW,IACjD,CAkBO,SAASiB,aACZb,UACAY,OACAhB,OAEA,MAAMY,IAAMd,aAAakB,OAAQhB,OACjC,GAAIO,OAAOM,OAAOT,UAAWY,QAAS,OAAOZ,UAAUY,QACvD,IAAA,MAAWE,aAAaX,OAAOY,KAAKf,WAAY,CAC5C,GAAIN,aAAaoB,UAAWrB,iBAAmBe,IAAK,OAAOR,UAAUc,UACzE,CACA,OAAO,IACX,CAOO,SAASE,UACZhB,UACAC,MACAW,OACAhB,OAEA,MAAMY,IAAMd,aAAakB,OAAQhB,OACjC,OAAOI,UAAUiB,KAAMZ,QAAWa,QAAQX,YAAYF,OAAQJ,OAAQO,OAAS,IACnF,CAOO,SAASW,YACZnB,UACAC,MACAW,OACAhB,OAEA,MAAMY,IAAMd,aAAakB,OAAQhB,OACjC,OAAOI,UAAUoB,OAAQf,QAAWa,QAAQX,YAAYF,OAAQJ,OAAQO,KAC5E,CAEA,SAASD,YAA8BF,OAAWJ,OAC9C,MAAMN,MAAQU,OAAOJ,OACrB,cAAcN,QAAU,SAAWA,MAAQ,IAC/C,CAEA,SAASuB,QAAQZ,IAAoBE,KACjC,OAAOF,MAAQ,MAAQZ,aAAaY,IAAKb,iBAAmBe,GAChE,QAAAf,cAAAM,eAAAoB,YAAAH,UAAAH,aAAAF,eAAAjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{deepFreeze}from"./chunk-DURKO7JU.js";function buildMicroResourceCatalogue(records,category){return deepFreeze(records.map(record=>({symbol:record.symbol,category:category,name:record.name})))}export{buildMicroResourceCatalogue};//# sourceMappingURL=chunk-S4UWCHL6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/materials/internal/micro-resource-catalogue.ts"],"names":["deepFreeze","buildMicroResourceCatalogue","records","category","map","record","symbol","name"],"mappings":"O,qCASO,SAASC,4BACZC,QACAC,UAEA,OAAOH,WACHE,QAAQE,IAAKC,SAAA,CACTC,OAAQD,OAAOC,OACfH,kBACAI,KAAMF,OAAOE,QAGzB,QAAAN"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{buildMaterialCatalogue}from"./chunk-Z43DN4PY.js";var materials_raw_default=[{symbol:"Carbon",name:"Carbon",elementSymbol:"C",grade:1,line:"Carbon"},{symbol:"Vanadium",name:"Vanadium",elementSymbol:"V",grade:2,line:"Carbon"},{symbol:"Niobium",name:"Niobium",elementSymbol:"Nb",grade:3,line:"Carbon"},{symbol:"Yttrium",name:"Yttrium",elementSymbol:"Y",grade:4,line:"Carbon"},{symbol:"Iron",name:"Iron",elementSymbol:"Fe",grade:1,line:"Iron"},{symbol:"Zinc",name:"Zinc",elementSymbol:"Zn",grade:2,line:"Iron"},{symbol:"Tin",name:"Tin",elementSymbol:"Sn",grade:3,line:"Iron"},{symbol:"Selenium",name:"Selenium",elementSymbol:"Se",grade:4,line:"Iron"},{symbol:"Lead",name:"Lead",elementSymbol:"Pb",grade:1,line:"Lead"},{symbol:"Zirconium",name:"Zirconium",elementSymbol:"Zr",grade:2,line:"Lead"},{symbol:"Boron",name:"Boron",elementSymbol:"B",grade:3,line:"Lead"},{symbol:"Antimony",name:"Antimony",elementSymbol:"Sb",grade:4,line:"Lead"},{symbol:"Nickel",name:"Nickel",elementSymbol:"Ni",grade:1,line:"Nickel"},{symbol:"Germanium",name:"Germanium",elementSymbol:"Ge",grade:2,line:"Nickel"},{symbol:"Tungsten",name:"Tungsten",elementSymbol:"W",grade:3,line:"Nickel"},{symbol:"Tellurium",name:"Tellurium",elementSymbol:"Te",grade:4,line:"Nickel"},{symbol:"Phosphorus",name:"Phosphorus",elementSymbol:"P",grade:1,line:"Phosphorus"},{symbol:"Chromium",name:"Chromium",elementSymbol:"Cr",grade:2,line:"Phosphorus"},{symbol:"Molybdenum",name:"Molybdenum",elementSymbol:"Mo",grade:3,line:"Phosphorus"},{symbol:"Technetium",name:"Technetium",elementSymbol:"Tc",grade:4,line:"Phosphorus"},{symbol:"Rhenium",name:"Rhenium",elementSymbol:"Re",grade:1,line:"Rhenium"},{symbol:"Arsenic",name:"Arsenic",elementSymbol:"As",grade:2,line:"Rhenium"},{symbol:"Mercury",name:"Mercury",elementSymbol:"Hg",grade:3,line:"Rhenium"},{symbol:"Polonium",name:"Polonium",elementSymbol:"Po",grade:4,line:"Rhenium"},{symbol:"Sulphur",name:"Sulphur",elementSymbol:"S",grade:1,line:"Sulphur"},{symbol:"Manganese",name:"Manganese",elementSymbol:"Mn",grade:2,line:"Sulphur"},{symbol:"Cadmium",name:"Cadmium",elementSymbol:"Cd",grade:3,line:"Sulphur"},{symbol:"Ruthenium",name:"Ruthenium",elementSymbol:"Ru",grade:4,line:"Sulphur"}];var RAW_MATERIALS=buildMaterialCatalogue(materials_raw_default,"raw");export{RAW_MATERIALS};//# sourceMappingURL=chunk-SQS7672E.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/materials/materials-raw.ts"],"names":["buildMaterialCatalogue","materials_raw_default","RAW_MATERIALS"],"mappings":"O,kpEA8BO,IAAME,cAAqCF,uBAC9CC,sBACA,cACJC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{combinedRateOfFire}from"./chunk-INNFH37U.js";import{getModuleBySymbol}from"./chunk-BRDQUJXV.js";import{getPreEngineeredVariants}from"./chunk-GJCB2Z72.js";import{ALL_MODULES}from"./chunk-CWAX3BSH.js";import{getExperimentalEffect}from"./chunk-PMJG7PHU.js";import{fieldForLabel,scaleForLabel,capabilityValueForLabel,computeModifiers,baseStats}from"./chunk-VZZ2XIRE.js";import{normalizeKey}from"./chunk-S4DBNX2B.js";import{requireStringIfPresent}from"./chunk-B5TT26XE.js";function scaleDamageComponents(components,baseDamage,effectiveDamage){const scale=baseDamage!==void 0&&baseDamage!==0&&effectiveDamage!==void 0?effectiveDamage/baseDamage:1;return{...components.kinetic===void 0?{}:{kinetic:components.kinetic*scale},...components.thermal===void 0?{}:{thermal:components.thermal*scale},...components.explosive===void 0?{}:{explosive:components.explosive*scale},...components.absolute===void 0?{}:{absolute:components.absolute*scale},...components.antiXeno===void 0?{}:{antiXeno:components.antiXeno*scale},...components.unclassified===void 0?{}:{unclassified:components.unclassified.map(value=>value*scale)}}}function asFeatures(modifiers){return modifiers.map(m=>({label:m.label,method:m.method,min:m.value,max:m.value}))}function modifiersWithExperimental(variant,experimental){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);const effectName=experimental??variant.experimental;if(!module||!variant.modifiers?.length&&effectName===void 0)return null;const effect=effectName===void 0?void 0:getExperimentalEffect(effectName);if(effectName!==void 0&&!effect)return null;return computeModifiers(baseStats(module),asFeatures(variant.modifiers??[]),1,effect??void 0)}function getPreEngineeredModifiers(variant){return modifiersWithExperimental(variant)??[]}function sameJournalNumber(actual,expected){return Math.abs(actual-expected)<=Math.max(1e-5,Math.abs(expected)*1e-6)}function modifierKey(modifier,module){return fieldForLabel(modifier.Label,module)??`label:${normalizeKey(modifier.Label,"identifyPreEngineeredVariant: module.Engineering.Modifiers[].Label")}`}function sameModifier(actual,expected){if(expected.Value!==void 0){return actual.Value!==void 0&&sameJournalNumber(actual.Value,expected.Value)}return expected.ValueStr!==void 0&&actual.ValueStr!==void 0}function identifyPreEngineeredVariant(module){const engineering=module.Engineering;if(!engineering?.Modifiers?.length)return null;requireStringIfPresent(module.Item,"identifyPreEngineeredVariant: module.Item");const stock=getModuleBySymbol(module.Item,ALL_MODULES);if(!stock)return null;const actualByKey=/* @__PURE__ */new Map;for(const modifier of engineering.Modifiers){actualByKey.set(modifierKey(modifier,stock),modifier)}const capturedExperimental=normalizeKey(engineering.ExperimentalEffect,"identifyPreEngineeredVariant: module.Engineering.ExperimentalEffect");const matches=[];for(const candidate of getPreEngineeredVariants(module.Item)){if(!candidate.modifiers?.length)continue;if(candidate.experimental!==void 0&&candidate.experimental.toLowerCase()!==capturedExperimental){continue}const expected=modifiersWithExperimental(candidate,engineering.ExperimentalEffect);if(!expected?.length)continue;let matched=0;let disagrees=false;for(const predicted of expected){const actual=actualByKey.get(modifierKey(predicted,stock));if(!actual)continue;if(!sameModifier(actual,predicted)){disagrees=true;break}matched++}if(!disagrees&&matched>=Math.max(1,expected.length-1))matches.push(candidate)}return matches.length===1?matches[0]:null}function unresolvedModifiers(variant){const resolved=new Set(getPreEngineeredModifiers(variant).map(modifier=>modifier.Label));return(variant.modifiers??[]).map(modifier=>modifier.label).filter(label=>!resolved.has(label))}function getPreEngineeredStats(variant){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);if(!module)return null;if(!variant.modifiers?.length&&!variant.engineeringLocked&&variant.experimental===void 0)return module;const modifiers=variant.modifiers??[];const resolved={...module,...variant.engineeringLocked?{engineeringLocked:true}:{}};for(const{Label:Label,Value:Value,ValueStr:ValueStr}of getPreEngineeredModifiers(variant)){const field=fieldForLabel(Label,module);if(field&&field!=="damageDistribution"&&Value!==void 0){Object.assign(resolved,{[field]:Value/scaleForLabel(Label)})}else if(field&&ValueStr!==void 0&&capabilityValueForLabel(Label)!==null){Object.assign(resolved,{[field]:true})}}const experimentalDamageDistribution=variant.experimental?getExperimentalEffect(variant.experimental)?.damageDistribution:void 0;if(experimentalDamageDistribution){resolved.damageDistribution={...experimentalDamageDistribution};delete resolved.damageComponents}if(resolved.rateOfFire!==void 0&&!modifiers.some(m=>m.label==="RateOfFire")&&modifiers.some(m=>m.label==="BurstSize"||m.label==="BurstRateOfFire"||m.label==="BurstInterval")){const rate=combinedRateOfFire(resolved);if(rate!==void 0)resolved.rateOfFire=rate}if(module.damageComponents&&!experimentalDamageDistribution){resolved.damageComponents=scaleDamageComponents(module.damageComponents,module.damage,resolved.damage)}return resolved}export{getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,scaleDamageComponents,unresolvedModifiers};//# sourceMappingURL=chunk-TLNHETGC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ships/internal/damage-components.ts","../src/ships/pre-engineered-stats.ts"],"names":["combinedRateOfFire","getModuleBySymbol","getPreEngineeredVariants","ALL_MODULES","getExperimentalEffect","fieldForLabel","scaleForLabel","capabilityValueForLabel","computeModifiers","baseStats","normalizeKey","requireStringIfPresent","scaleDamageComponents","components","baseDamage","effectiveDamage","scale","kinetic","thermal","explosive","absolute","antiXeno","unclassified","map","value","asFeatures","modifiers","m","label","method","min","max","modifiersWithExperimental","variant","experimental","module","symbol","effectName","length","effect","getPreEngineeredModifiers","sameJournalNumber","actual","expected","Math","abs","modifierKey","modifier","Label","sameModifier","Value","ValueStr","identifyPreEngineeredVariant","engineering","Engineering","Modifiers","Item","stock","actualByKey","Map","set","capturedExperimental","ExperimentalEffect","matches","candidate","toLowerCase","matched","disagrees","predicted","get","push","unresolvedModifiers","resolved","Set","filter","has","getPreEngineeredStats","engineeringLocked","field","Object","assign","experimentalDamageDistribution","damageDistribution","damageComponents","rateOfFire","some","rate","damage"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{sectorNameFromGridPosition}from"./chunk-J2PNZQY4.js";import{describeValue}from"./chunk-B5TT26XE.js";var GALAXY_ORIGIN=Object.freeze({x:-49985,y:-40985,z:-24105});var SECTOR_EDGE_LY=1280;function sectorGridPositionFromGalacticPosition(position){const sector={sectorX:Math.floor((position.x-GALAXY_ORIGIN.x)/SECTOR_EDGE_LY),sectorY:Math.floor((position.y-GALAXY_ORIGIN.y)/SECTOR_EDGE_LY),sectorZ:Math.floor((position.z-GALAXY_ORIGIN.z)/SECTOR_EDGE_LY)};for(const v of[sector.sectorX,sector.sectorY,sector.sectorZ]){if(!Number.isInteger(v)||v<0||v>127){throw new RangeError(`Galactic position outside the sector grid: ${describeValue(position)}`)}}return sector}function sectorNameFromGalacticPosition(position){return sectorNameFromGridPosition(sectorGridPositionFromGalacticPosition(position))}export{GALAXY_ORIGIN,SECTOR_EDGE_LY,sectorGridPositionFromGalacticPosition,sectorNameFromGalacticPosition};//# sourceMappingURL=chunk-U6TMCYA6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/astro/galaxy-grid.ts"],"names":["sectorNameFromGridPosition","describeValue","GALAXY_ORIGIN","Object","freeze","x","y","z","SECTOR_EDGE_LY","sectorGridPositionFromGalacticPosition","position","sector","sectorX","Math","floor","sectorY","sectorZ","v","Number","isInteger","RangeError","sectorNameFromGalacticPosition"],"mappings":"O,oGAqCO,IAAME,cAA4CC,OAAOC,OAAO,CACnEC,GAAG,MACHC,GAAG,MACHC,GAAG,QAIA,IAAMC,eAAiB,KAoBvB,SAASC,uCACZC,UAEA,MAAMC,OAAS,CACXC,QAASC,KAAKC,OAAOJ,SAASL,EAAIH,cAAcG,GAAKG,gBACrDO,QAASF,KAAKC,OAAOJ,SAASJ,EAAIJ,cAAcI,GAAKE,gBACrDQ,QAASH,KAAKC,OAAOJ,SAASH,EAAIL,cAAcK,GAAKC,iBAEzD,IAAA,MAAWS,IAAK,CAACN,OAAOC,QAASD,OAAOI,QAASJ,OAAOK,SAAU,CAC9D,IAAKE,OAAOC,UAAUF,IAAMA,EAAI,GAAKA,EAAI,IAAK,CAC1C,MAAM,IAAIG,WACN,8CAA8CnB,cAAcS,YAEpE,CACJ,CACA,OAAOC,MACX,CAwBO,SAASU,+BAA+BX,UAC3C,OAAOV,2BAA2BS,uCAAuCC,UAC7E,QAAAR,cAAAM,eAAAC,uCAAAY"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ENCODED_MATERIALS}from"./chunk-Q5XOGATC.js";import{MANUFACTURED_MATERIALS}from"./chunk-HKXXFIRI.js";import{RAW_MATERIALS}from"./chunk-SQS7672E.js";var ALL_MATERIALS=Object.freeze([...RAW_MATERIALS,...MANUFACTURED_MATERIALS,...ENCODED_MATERIALS]);export{ALL_MATERIALS};//# sourceMappingURL=chunk-V4C6FIE2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/materials/materials-all.ts"],"names":["ENCODED_MATERIALS","MANUFACTURED_MATERIALS","RAW_MATERIALS","ALL_MATERIALS","Object","freeze"],"mappings":"O,mJA0BO,IAAMG,cAAqCC,OAAOC,OAAO,IACzDH,iBACAD,0BACAD,2BACNG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{parseSystemName,boxelCodeToLetters,formatSystemName}from"./chunk-JWJ7RSZC.js";import{isPermitLockedRegionName}from"./chunk-VZXL5KBR.js";import{findHandAuthoredRegionAt}from"./chunk-AVZI6VKA.js";import{sizeClassToMassCode}from"./chunk-DACZE3HX.js";import{getHandAuthoredRegionOrigin,resolveNamingRegionOrigin}from"./chunk-Z4GTTB7I.js";import{encodeSystemAddress,decodeSystemAddress,decodeModSystemAddress,encodeModSystemAddress,absoluteBoxelToBoxelCode}from"./chunk-BTPV5CIF.js";import{toSystemAddress}from"./chunk-IH4NXKVW.js";import{sectorGridPositionFromName,sectorNameFromGridPosition}from"./chunk-J2PNZQY4.js";import{requireString,truncate}from"./chunk-B5TT26XE.js";function tryEncodeModAddress(parts){const origin=resolveNamingRegionOrigin(parts.regionName);if(!origin)return null;try{return encodeModSystemAddress(parts,origin)}catch(error){if(error instanceof RangeError)return null;throw error}}function applyHaOverride(parts,decoded,position){if(!position)return{parts:parts,handAuthored:false,requiresPermit:false};const region=findHandAuthoredRegionAt(position);if(!region)return{parts:parts,handAuthored:false,requiresPermit:false};const origin=resolveNamingRegionOrigin(region.name);if(!origin||origin.x0<0||origin.y0<0||origin.z0<0){return{parts:parts,handAuthored:false,requiresPermit:false}}const boxelCode=absoluteBoxelToBoxelCode(decoded.sizeClass,decoded.absoluteBoxel,origin);if(boxelCode===null)return{parts:parts,handAuthored:false,requiresPermit:false};const{l1:l1,l2:l2,l3:l3,n1:n1}=boxelCodeToLetters(boxelCode);return{parts:{...parts,regionName:region.name,l1:l1,l2:l2,l3:l3,n1:n1},handAuthored:true,requiresPermit:isPermitLockedRegionName(region.name)}}var ProceduralSystem=class _ProceduralSystem{#parts;#position;#id64;#modId64;usesHandAuthoredRegion;requiresRegionPermit;constructor(parts,opts){this.#parts={...parts};this.#position=opts.position?{...opts.position}:void 0;this.#id64=opts.id64;this.#modId64=opts.modId64;this.usesHandAuthoredRegion=opts.handAuthored;this.requiresRegionPermit=opts.requiresPermit}static fromName(name){const parts=parseSystemName(requireString(name,"ProceduralSystem.fromName: name"));if(!parts)return null;const sectorPosition=sectorGridPositionFromName(parts.regionName);const namedOrigin=sectorPosition?null:getHandAuthoredRegionOrigin(parts.regionName);const named=namedOrigin!==null;const regionName=sectorPosition?sectorNameFromGridPosition(sectorPosition):namedOrigin?.name??parts.regionName;const canonicalParts={...parts,regionName:regionName};const origin=resolveNamingRegionOrigin(regionName);if(!origin)throw new RangeError(`Unknown sector: ${truncate(regionName)}`);return new _ProceduralSystem(canonicalParts,{id64:encodeSystemAddress(canonicalParts,origin),modId64:tryEncodeModAddress(canonicalParts),handAuthored:named,requiresPermit:named&&isPermitLockedRegionName(regionName)})}static fromSystemAddress(id64,position){const address=toSystemAddress(id64);return _ProceduralSystem.#fromDecoded(decodeSystemAddress(address),address,position)}static fromModSystemAddress(id64,position){const address=toSystemAddress(id64);return _ProceduralSystem.#fromDecoded(decodeModSystemAddress(address),void 0,position,address)}static#fromDecoded(decoded,id64,position,modId64){const{l1:l1,l2:l2,l3:l3,n1:n1}=boxelCodeToLetters(decoded.boxelCode);const base={regionName:sectorNameFromGridPosition(decoded.sectorGridPosition),l1:l1,l2:l2,l3:l3,massCode:decoded.sizeClass,n1:n1,n2:decoded.sequence};const overridden=applyHaOverride(base,decoded,position);const origin=resolveNamingRegionOrigin(overridden.parts.regionName);if(!origin){throw new RangeError(`Unknown sector: ${truncate(overridden.parts.regionName)}`)}const normalAddress=id64??encodeSystemAddress(overridden.parts,origin);const opts={id64:normalAddress,modId64:modId64??tryEncodeModAddress(overridden.parts),handAuthored:overridden.handAuthored,requiresPermit:overridden.requiresPermit,...position?{position:position}:{}};return new _ProceduralSystem(overridden.parts,opts)}get name(){return formatSystemName(this.#parts)}get namingRegionName(){return this.#parts.regionName}get massCode(){return sizeClassToMassCode(this.#parts.massCode)}get sequence(){return this.#parts.n2}get position(){return this.#position?{...this.#position}:null}get parts(){return{...this.#parts}}get systemAddress(){return this.#id64}get modSystemAddress(){return this.#modId64}};export{ProceduralSystem};//# sourceMappingURL=chunk-VXVUEF5U.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/astro/procedural-system.ts"],"names":["parseSystemName","boxelCodeToLetters","formatSystemName","isPermitLockedRegionName","findHandAuthoredRegionAt","sizeClassToMassCode","getHandAuthoredRegionOrigin","resolveNamingRegionOrigin","encodeSystemAddress","decodeSystemAddress","decodeModSystemAddress","encodeModSystemAddress","absoluteBoxelToBoxelCode","toSystemAddress","sectorGridPositionFromName","sectorNameFromGridPosition","requireString","truncate","tryEncodeModAddress","parts","origin","regionName","error","RangeError","applyHaOverride","decoded","position","handAuthored","requiresPermit","region","name","x0","y0","z0","boxelCode","sizeClass","absoluteBoxel","l1","l2","l3","n1","ProceduralSystem","_ProceduralSystem","id64","modId64","usesHandAuthoredRegion","requiresRegionPermit","constructor","opts","this","fromName","sectorPosition","namedOrigin","named","canonicalParts","fromSystemAddress","address","fromDecoded","fromModSystemAddress","base","sectorGridPosition","massCode","n2","sequence","overridden","normalAddress","namingRegionName","systemAddress","modSystemAddress"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{normalizeKey}from"./chunk-S4DBNX2B.js";var permit_locked_regions_default=["Bleia1","Bleia2","Bleia3","Bleia4","Bleia5","Bovomit","Col 121 Sector","Col 70 Sector","Col 97 Sector","Cone Sector","Dryman","Froadik","Horsehead Dark Region","Hyponia","IC 4673 Sector","M41 Sector","NGC 1647 Sector","NGC 2264 Sector","NGC 2286 Sector","NGC 3603 Sector","Praei1","Praei2","Praei3","Praei4","Praei5","Praei6","Regor Sector","Sidgoir"];var PERMIT_LOCKED_REGIONS=Object.freeze([...permit_locked_regions_default]);var REGION_INDEX=new Map(PERMIT_LOCKED_REGIONS.map(name=>[name.toLowerCase(),name]));function isPermitLockedRegionName(name){return REGION_INDEX.has(normalizeKey(name,"isPermitLockedRegionName: name"))}function permitLockedRegionForSystemName(systemName){const normalized=normalizeKey(systemName,"permitLockedRegionForSystemName: systemName");if(!normalized)return null;for(const[key,region]of REGION_INDEX){if(normalized===key||normalized.startsWith(`${key} `))return region}return null}export{PERMIT_LOCKED_REGIONS,isPermitLockedRegionName,permitLockedRegionForSystemName};//# sourceMappingURL=chunk-VZXL5KBR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/astro/permit-locked-regions.ts"],"names":["normalizeKey","permit_locked_regions_default","PERMIT_LOCKED_REGIONS","Object","freeze","REGION_INDEX","Map","map","name","toLowerCase","isPermitLockedRegionName","has","permitLockedRegionForSystemName","systemName","normalized","key","region","startsWith"],"mappings":"O,2aA0BO,IAAME,sBAA2CC,OAAOC,OAAO,IAC9DH,gCAIR,IAAMI,aAA4C,IAAIC,IAClDJ,sBAAsBK,IAAKC,MAAS,CAACA,KAAKC,cAAeD,QAatD,SAASE,yBAAyBF,MACrC,OAAOH,aAAaM,IAAIX,aAAaQ,KAAM,kCAC/C,CAmBO,SAASI,gCAAgCC,YAC5C,MAAMC,WAAad,aAAaa,WAAY,+CAC5C,IAAKC,WAAY,OAAO,KAExB,IAAA,MAAYC,IAAKC,UAAWX,aAAc,CACtC,GAAIS,aAAeC,KAAOD,WAAWG,WAAW,GAAGF,QAAS,OAAOC,MACvE,CACA,OAAO,IACX,QAAAd,sBAAAQ,yBAAAE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var percent=100;var STAT_LABELS=[{label:"Mass",field:"mass"},{label:"Integrity",field:"integrity"},{label:"PowerDraw",field:"powerDraw"},{label:"BootTime",field:"bootTime"},{label:"FSDOptimalMass",field:"optMass"},{label:"EngineOptimalMass",field:"optMass"},{label:"EngineMinimumMass",field:"minMass"},{label:"MaximumMass",field:"maxMass"},{label:"ShieldGenOptimalMass",field:"optMass"},{label:"ShieldGenMinimumMass",field:"minMass"},{label:"ShieldGenMaximumMass",field:"maxMass"},{label:"EngineOptPerformance",field:"optMultiplier",scale:percent},{label:"EngineMinPerformance",field:"minMultiplier",scale:percent},{label:"EngineMaxPerformance",field:"maxMultiplier",scale:percent},{label:"ShieldGenStrength",field:"optMultiplier",scale:percent},{label:"ShieldGenMinStrength",field:"minMultiplier",scale:percent},{label:"ShieldGenMaxStrength",field:"maxMultiplier",scale:percent},{label:"EngineHeatRate",field:"engineHeatRate"},{label:"FSDHeatRate",field:"fsdHeatRate"},{label:"MaxFuelPerJump",field:"maxFuel"},{label:"PowerCapacity",field:"powerCapacity"},{label:"HeatEfficiency",field:"heatEfficiency"},{label:"EnginesCapacity",field:"enginesCapacity"},{label:"EnginesRecharge",field:"enginesRecharge"},{label:"SystemsCapacity",field:"systemsCapacity"},{label:"SystemsRecharge",field:"systemsRecharge"},{label:"WeaponsCapacity",field:"weaponsCapacity"},{label:"WeaponsRecharge",field:"weaponsRecharge"},{label:"RefuelRate",field:"refuelRate"},{label:"FuelScoopRate",field:"refuelRate"},{label:"FuelCapacity",field:"fuelCapacity"},{label:"CargoCapacity",field:"cargoCapacity"},{label:"RegenRate",field:"shieldRegenRate"},{label:"BrokenRegenRate",field:"shieldBrokenRegenRate"},{label:"EnergyPerRegen",field:"distributorDraw"},{label:"ShieldBankReinforcement",field:"shieldBankReinforcement"},{label:"ShieldBankHeat",field:"shieldBankHeat"},{label:"ShieldBankHeat",field:"thermalLoad"},{label:"ShieldBankSpinUp",field:"shieldBankSpinUp"},{label:"ShieldBankDuration",field:"shieldBankDuration"},{label:"ScannerRange",field:"scannerRange"},{label:"SensorTargetScanAngle",field:"scanAngle"},{label:"MaxAngle",field:"scanAngle"},{label:"ScannerTimeToScan",field:"scanTime"},{label:"ProbeRadius",field:"probeRadius"},{label:"DSS_PatchRadius",field:"probeRadius"},{label:"FSDInterdictorFacingLimit",field:"interdictorFacingLimit"},{label:"FSDInterdictorRange",field:"interdictorRange"},{label:"DefenceModifierShieldMultiplier",field:"shieldBoost",scale:percent,multiplierBase:percent},{label:"DefenceModifierHealthMultiplier",field:"hullBoost",scale:percent,multiplierBase:percent},{label:"DefenceModifierHealthAddition",field:"hullReinforcement"},{label:"DefenceModifierShieldAddition",field:"shieldAddition"},{label:"GuardianModuleResistance",field:"guardianZoneResistance",capabilityValue:"Active"},{label:"KineticResistance",field:"kineticResistance",scale:percent,multiplierBase:-percent},{label:"ThermicResistance",field:"thermalResistance",scale:percent,multiplierBase:-percent},{label:"ExplosiveResistance",field:"explosiveResistance",scale:percent,multiplierBase:-percent},{label:"CausticResistance",field:"causticResistance",scale:percent,multiplierBase:-percent},{label:"DamageProtection",field:"moduleProtection",scale:percent},{label:"ModuleDefenceAbsorption",field:"moduleProtection",scale:percent},{label:"Damage",field:"damage"},{label:"Rounds",field:"roundsPerShot",defaultBase:1},{label:"RoundsPerShot",field:"roundsPerShot",defaultBase:1},{label:"RateOfFire",field:"rateOfFire"},{label:"BurstInterval",field:"burstInterval"},{label:"BurstSize",field:"burstRounds",defaultBase:1},{label:"BurstRateOfFire",field:"burstRateOfFire",defaultBase:1},{label:"AmmoClipSize",field:"clipSize"},{label:"AmmoMaximum",field:"ammoMaximum"},{label:"ReloadTime",field:"reloadTime"},{label:"DistributorDraw",field:"distributorDraw"},{label:"ThermalLoad",field:"thermalLoad"},{label:"ArmourPenetration",field:"armourPiercing"},{label:"Range",field:"maximumRange"},{label:"Range",field:"scannerRange"},{label:"MaximumRange",field:"maximumRange"},{label:"FalloffRange",field:"falloffRange"},{label:"DamageFalloffRange",field:"falloffRange"},{label:"ShotSpeed",field:"shotSpeed"},{label:"$Kinetic;",field:"damageDistribution",damageType:"kinetic",scale:percent,defaultBase:0},{label:"$Thermal;",field:"damageDistribution",damageType:"thermal",scale:percent,defaultBase:0},{label:"$Explosive;",field:"damageDistribution",damageType:"explosive",scale:percent,defaultBase:0},{label:"$Absolute;",field:"damageDistribution",damageType:"absolute",scale:percent,defaultBase:0},{label:"Jitter",field:"jitter",defaultBase:0}];var BY_LABEL=(()=>{const entries=/* @__PURE__ */new Map;for(const entry of STAT_LABELS){const forLabel=entries.get(entry.label)??[];forLabel.push(entry);entries.set(entry.label,forLabel)}return entries})();var LABELS_BY_FIELD=(()=>{const labels=/* @__PURE__ */new Map;for(const entry of STAT_LABELS){if(entry.damageType!==void 0)continue;const fieldLabels=labels.get(entry.field)??[];fieldLabels.push(entry.label);labels.set(entry.field,fieldLabels)}return labels})();function baseStats(stats){const base={};for(const{label:label,field:field,damageType:damageType,scale:scale,defaultBase:defaultBase}of STAT_LABELS){if(base[label]!==void 0)continue;const value=damageType===void 0?stats[field]:stats.damageDistribution?.[damageType];if(typeof value==="number")base[label]=value*(scale??1);else if(defaultBase!==void 0&&isWeapon(stats))base[label]=defaultBase}return base}function isWeapon(stats){return stats.damage!==void 0}function fieldForLabel(label,stats){const entries=BY_LABEL.get(label);if(!entries||entries.length===0)return null;if(stats&&entries.length>1){const carried=entries.find(entry=>typeof stats[entry.field]==="number");if(carried)return carried.field}return entries[0].field}function damageTypeForLabel(label){return BY_LABEL.get(label)?.[0]?.damageType??null}function labelsForDamageType(type){return STAT_LABELS.filter(entry=>entry.damageType===type).map(entry=>entry.label)}function scaleForLabel(label){return BY_LABEL.get(label)?.[0]?.scale??1}function multiplierBaseForLabel(label){return BY_LABEL.get(label)?.[0]?.multiplierBase??null}function capabilityValueForLabel(label){return BY_LABEL.get(label)?.[0]?.capabilityValue??null}function labelsForField(field){return LABELS_BY_FIELD.get(field)??[]}var round6=n=>Math.round(n*1e6)/1e6;function computeModifiers(base,grade,quality=1,experimental){if(!Number.isFinite(quality)||quality<0||quality>1){throw new RangeError(`computeModifiers: quality must be a finite number in [0, 1]`)}const roll=quality;const byLabel=/* @__PURE__ */new Map;const add=(label,method,value,stated)=>{const list=byLabel.get(label)??[];list.push({method:method,value:value,stated:stated});byLabel.set(label,list)};const features="features"in grade?grade.features:grade;for(const f of features){add(f.label,f.method,f.min+(f.max-f.min)*roll,f.min===f.max||roll===0||roll===1)}const experimentalModifiers=experimental&&"modifiers"in experimental?experimental.modifiers:experimental;for(const e of experimentalModifiers??[])add(e.label,e.method,e.value,true);const modifiers=[];let clipIsOverwritten=false;for(const[label,contributions]of byLabel){const capabilityValue=capabilityValueForLabel(label);if(capabilityValue!==null){modifiers.push({Label:label,ValueStr:capabilityValue});continue}const original=base[label];const overwrite=contributions.find(c=>c.method==="overwrite");const multiplierBase=multiplierBaseForLabel(label);const baseless=original===void 0&&(multiplierBase!==null||overwrite!==void 0||contributions.some(c=>c.method==="additive"));if(original===void 0&&!baseless)continue;let value=original??0;if(multiplierBase===null){for(const c of contributions)if(c.method==="multiplicative")value*=1+c.value;for(const c of contributions)if(c.method==="additive")value+=c.value}else{let factor=1+value/multiplierBase;for(const c of contributions){if(c.method==="overwrite")continue;factor*=1+c.value*100/multiplierBase}value=(factor-1)*multiplierBase}if(overwrite)value=overwrite.value;if(label==="AmmoClipSize"){if(overwrite)clipIsOverwritten=true;else if(original!==void 0&&contributions.every(c=>c.stated)){value=snapToStatedWhole(value,original)}}else if(label==="AmmoMaximum"&&!overwrite){value=Math.round(value)}modifiers.push({Label:label,Value:round6(value),...original===void 0&&multiplierBase===null?{}:{OriginalValue:original??0}})}const resolved=resolveFalloffFromRange(modifiers,base);return clipIsOverwritten?resolved:roundClipToWholeBursts(resolved,base)}function roundClipToWholeBursts(modifiers,base){const clip=modifiers.find(m=>m.Label==="AmmoClipSize");if(!clip?.Value||clip.Value===clip.OriginalValue)return modifiers;const burst=modifiers.find(m=>m.Label==="BurstSize")?.Value||base["BurstSize"]||1;const rounded=Math.ceil(clip.Value/burst)*burst;if(rounded===clip.Value)return modifiers;return modifiers.map(m=>m===clip?{...m,Value:rounded}:m)}function snapToStatedWhole(value,base){const whole=Math.round(value);return Math.abs(value-whole)<=Math.abs(base)*5e-4?whole:value}function resolveFalloffFromRange(modifiers,base){const falloff=modifiers.find(m=>m.Label==="FalloffRange");if(!falloff||falloff.Value===void 0)return modifiers;const range=modifiers.find(m=>m.Label==="Range"||m.Label==="MaximumRange")?.Value??base["Range"]??base["MaximumRange"];if(range===void 0){return falloff.Value<=1?modifiers.filter(m=>m!==falloff):modifiers}if(falloff.Value<=1||falloff.Value>range){return modifiers.map(m=>m===falloff?{...m,Value:round6(range)}:m)}return modifiers}function rollsForGrade(grade){if(!Number.isInteger(grade)||grade<1||grade>5){throw new RangeError(`rollsForGrade: grade must be an integer in [1, 5]`)}return grade}function sumMaterials(...lists){const totals=/* @__PURE__ */new Map;for(const list of lists){for(const material of list){const key=material.symbol.toLowerCase();const previous=totals.get(key);totals.set(key,{symbol:previous?.symbol??material.symbol,name:previous?.name??material.name,count:(previous?.count??0)+material.count})}}return[...totals.values()]}export{baseStats,capabilityValueForLabel,computeModifiers,damageTypeForLabel,fieldForLabel,labelsForDamageType,labelsForField,rollsForGrade,scaleForLabel,sumMaterials};//# sourceMappingURL=chunk-VZZ2XIRE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ships/internal/module-stat-labels.ts","../src/ships/engineering.ts"],"names":["percent","STAT_LABELS","label","field","scale","multiplierBase","capabilityValue","defaultBase","damageType","BY_LABEL","entries","Map","entry","forLabel","get","push","set","LABELS_BY_FIELD","labels","fieldLabels","baseStats","stats","base","value","damageDistribution","isWeapon","damage","fieldForLabel","length","carried","find","damageTypeForLabel","labelsForDamageType","type","filter","map","scaleForLabel","multiplierBaseForLabel","capabilityValueForLabel","labelsForField","round6","n","Math","round","computeModifiers","grade","quality","experimental","Number","isFinite","RangeError","roll","byLabel","add","method","stated","list","features","f","min","max","experimentalModifiers","modifiers","e","clipIsOverwritten","contributions","Label","ValueStr","original","overwrite","c","baseless","some","factor","every","snapToStatedWhole","Value","OriginalValue","resolved","resolveFalloffFromRange","roundClipToWholeBursts","clip","m","burst","rounded","ceil","whole","abs","falloff","range","rollsForGrade","isInteger","sumMaterials","lists","totals","material","key","symbol","toLowerCase","previous","name","count","values"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{tryToSystemAddress}from"./chunk-IH4NXKVW.js";import{normalizeKey,CATALOGUE_KEY}from"./chunk-S4DBNX2B.js";var permit_locked_systems_default=[{name:"4 Sextantis",id64:"663329196387"},{name:"Achenar",id64:"164098653"},{name:"Alioth",id64:"1109989017963"},{name:"Alpha Hydri",id64:"1797200529771"},{name:"Bellica",id64:"358730437314"},{name:"Beta Hydri",id64:"10494151019"},{name:"CD-43 11917",id64:"3107576615650"},{name:"CD-44 1695",id64:"358864622282"},{name:"Crom",id64:"633675453138"},{name:"Dryio Flyuae IC-B c1-377",id64:"103698260271370"},{name:"Exbeur",id64:"1006909786467"},{name:"Facece",id64:"1384883652971"},{name:"HIP 10332",id64:"2037685160291"},{name:"HIP 104941",id64:"633272799954"},{name:"HIP 22182",id64:"670149191025"},{name:"HIP 22460",id64:"319715002691"},{name:"HIP 39425",id64:"1110022555995"},{name:"HIP 51073",id64:"358931829458"},{name:"HIP 54530",id64:"3107710898898"},{name:"HIP 87621",id64:"147882789259"},{name:"Hodack",id64:"1350523947371"},{name:"Hors",id64:"633675420378"},{name:"HR 4413",id64:"869487610219"},{name:"Isinor",id64:"2415675853163"},{name:"Jotun",id64:"670685799809"},{name:"Kamba",id64:"7780702294746"},{name:"LFT 509",id64:"7268561135001"},{name:"LHS 2894",id64:"4207021167322"},{name:"LHS 2921",id64:"2869441078697"},{name:"LHS 3091",id64:"11665802470833"},{name:"LTT 198",id64:"633608278738"},{name:"Luyten 347-14",id64:"9467047454129"},{name:"Mbooni",id64:"1733119939282"},{name:"Mingfu",id64:"5068732442025"},{name:"Nastrond",id64:"869454039395"},{name:"Peregrina",id64:"869470816603"},{name:"Phekda",id64:"61440263348"},{name:"Pi Mensae",id64:"938207070571"},{name:"Plaa Ain HA-Z d46",id64:"1591209954571"},{name:"PLX 695",id64:"1733052863178"},{name:"Polaris",id64:"388367419731"},{name:"Ross 128",id64:"670954497449"},{name:"Ross 354",id64:"491496933723"},{name:"Scheau Bli NB-O d6-1409",id64:"48423868601915"},{name:"Shinrarta Dezhra",id64:"3932277478106"},{name:"Sirius",id64:"121569805492"},{name:"Sol",id64:"10477373803"},{name:"Summerland",id64:"972566792555"},{name:"Terra Mater",id64:"44837112163"},{name:"Tiliala",id64:"251012319595"},{name:"van Maanen's Star",id64:"670685996457"},{name:"Vega",id64:"301958431924"},{name:"Witch's Reach",id64:"1659761592683"},{name:"Wolf 262",id64:"633675453098"}];var PERMIT_LOCKED_SYSTEMS=Object.freeze(permit_locked_systems_default.map(system=>Object.freeze({name:system.name,id64:BigInt(system.id64)})));var SYSTEM_BY_NAME=new Map(PERMIT_LOCKED_SYSTEMS.map(system=>[normalizeKey(system.name,CATALOGUE_KEY),system]));var SYSTEM_BY_ADDRESS=new Map(PERMIT_LOCKED_SYSTEMS.map(system=>[system.id64,system]));function permitLockedSystemForName(name){return SYSTEM_BY_NAME.get(normalizeKey(name,"permitLockedSystemForName: name"))??null}function permitLockedSystemForAddress(address){const normalized=tryToSystemAddress(address);return normalized===null?null:SYSTEM_BY_ADDRESS.get(normalized)??null}export{PERMIT_LOCKED_SYSTEMS,permitLockedSystemForAddress,permitLockedSystemForName};//# sourceMappingURL=chunk-WV5YM7H5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/astro/permit-locked-systems.ts"],"names":["tryToSystemAddress","normalizeKey","CATALOGUE_KEY","permit_locked_systems_default","name","id64","PERMIT_LOCKED_SYSTEMS","Object","freeze","map","system","BigInt","SYSTEM_BY_NAME","Map","SYSTEM_BY_ADDRESS","permitLockedSystemForName","get","permitLockedSystemForAddress","address","normalized"],"mappings":"O,qtEAmDO,IAAMM,sBAAuDC,OAAOC,OACtEL,8BAAkDM,IAAKC,QACpDH,OAAOC,OAAO,CAAEJ,KAAMM,OAAON,KAAMC,KAAMM,OAAOD,OAAOL,UAI/D,IAAMO,eAA0D,IAAIC,IAChEP,sBAAsBG,IAAKC,QAAW,CAACT,aAAaS,OAAON,KAAMF,eAAgBQ,UAGrF,IAAMI,kBAA6D,IAAID,IACnEP,sBAAsBG,IAAKC,QAAW,CAACA,OAAOL,KAAMK,UAYjD,SAASK,0BAA0BX,MACtC,OAAOQ,eAAeI,IAAIf,aAAaG,KAAM,qCAAuC,IACxF,CAqBO,SAASa,6BACZC,SAEA,MAAMC,WAAanB,mBAAmBkB,SACtC,OAAOC,aAAe,KAAO,KAAQL,kBAAkBE,IAAIG,aAAe,IAC9E,QAAAb,sBAAAW,6BAAAF"}
|