@provable-games/dm-engine 0.3.1 → 0.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../src/rules/game.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAK9E,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,GAAG,MAAM,GAAG,SAAS,WAKpE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,IAAI,MAAM,WAGxC,CAAC;AAiDF;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,GAAI,aAAa,MAAM,EAAE,OAAO,MAAM,KAAG,MAKjF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,WAAW,MAAM,EACjB,OAAO,MAAM,EACb,cAAc,MAAM,KACnB,MAAM,GAAG,IAaX,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,WAAW,MAAM,EACjB,OAAO,MAAM,EACb,cAAc,MAAM,KACnB,MAAM,GAAG,IAKX,CAAC;AAmDF,eAAO,MAAM,yBAAyB,GACpC,UAAU,MAAM,EAChB,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,MASF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,cAAc,MAAM,EAAE,OAAM,OAAe,WAM/E,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,IAAI,MAAM,EAAE,OAAM,OAAe,WAKlE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,cAAc,SAAS,EAAE,cAAc,SAAS,WAgBnF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,SAGtD,CAAC;AAiDF,eAAO,MAAM,qBAAqB,GAChC,QAAQ,IAAI,EACZ,YAAY,UAAU,EACtB,OAAO,KAAK,GAAG,IAAI;;;CA6DpB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,eAAe,MAAM,EAAE,eAAe,MAAM,WAQpF,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,kBAAkB,MAAM,EACxB,eAAe,MAAM,EACrB,KAAK,MAAM,YAQZ,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,eAAe,MAAM,EAAE,eAAe,MAAM,WAc1F,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,OAAO,KAAK,EAAE,YAAY,UAAU,EAAE,OAAO,IAAI;;;CAqDrF,CAAC;AAyBF,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,MAAM,CAoBR;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGrE;AAGD,eAAO,MAAM,oBAAoB,GAC/B,YAAY,UAAU,EACtB,UAAU,IAAI,EAAE,EAChB,OAAO,KAAK,GAAG,IAAI,KAClB,WA4GF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,KAAK,EAAE,MAAM,IAAI,GAAG,IAAI,WAUlE,CAAC"}
1
+ {"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../src/rules/game.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAK9E,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,GAAG,MAAM,GAAG,SAAS,WAKpE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,IAAI,MAAM,WAGxC,CAAC;AAiDF;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,GAAI,aAAa,MAAM,EAAE,OAAO,MAAM,KAAG,MAKjF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,WAAW,MAAM,EACjB,OAAO,MAAM,EACb,cAAc,MAAM,KACnB,MAAM,GAAG,IAaX,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,WAAW,MAAM,EACjB,OAAO,MAAM,EACb,cAAc,MAAM,KACnB,MAAM,GAAG,IAKX,CAAC;AAmDF,eAAO,MAAM,yBAAyB,GACpC,UAAU,MAAM,EAChB,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,MASF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,cAAc,MAAM,EAAE,OAAM,OAAe,WAM/E,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,IAAI,MAAM,EAAE,OAAM,OAAe,WAKlE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,cAAc,SAAS,EAAE,cAAc,SAAS,WAgBnF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,SAGtD,CAAC;AAuDF,eAAO,MAAM,qBAAqB,GAChC,QAAQ,IAAI,EACZ,YAAY,UAAU,EACtB,OAAO,KAAK,GAAG,IAAI,EACnB,mBAAkB,MAAW;;;CA8D9B,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,eAAe,MAAM,EAAE,eAAe,MAAM,WAQpF,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,kBAAkB,MAAM,EACxB,eAAe,MAAM,EACrB,KAAK,MAAM,YAQZ,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,eAAe,MAAM,EAAE,eAAe,MAAM,WAc1F,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,KAAK,EACZ,YAAY,UAAU,EACtB,OAAO,IAAI,EACX,mBAAkB,MAAW;;;CAuD9B,CAAC;AAyBF,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,MAAM,CAoBR;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGrE;AAGD,eAAO,MAAM,oBAAoB,GAC/B,YAAY,UAAU,EACtB,UAAU,IAAI,EAAE,EAChB,OAAO,KAAK,GAAG,IAAI,KAClB,WA4GF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,KAAK,EAAE,MAAM,IAAI,GAAG,IAAI,WAUlE,CAAC"}
@@ -195,10 +195,10 @@ const critical_hit_bonus = (base_damage, ring) => {
195
195
  return total;
196
196
  };
197
197
  // Calculate weapon special bonus based on matching specials
198
- const calculateWeaponSpecialBonus = (weaponId, weaponLevel, itemSpecialsSeed, beastPrefix, beastSuffix, baseDamage, ring) => {
198
+ const calculateWeaponSpecialBonus = (weaponId, weaponLevel, itemSpecialsSeed, beastPrefix, beastSuffix, baseDamage, ring, specialsOverride) => {
199
199
  if (!beastPrefix && !beastSuffix)
200
200
  return 0;
201
- const weaponSpecials = ItemUtils.getSpecials(weaponId, weaponLevel, itemSpecialsSeed);
201
+ const weaponSpecials = ItemUtils.getSpecials(weaponId, weaponLevel, itemSpecialsSeed, specialsOverride);
202
202
  let bonus = 0;
203
203
  // Special2 (prefix) match gives 8x damage
204
204
  if (weaponSpecials.prefix && weaponSpecials.prefix === beastPrefix) {
@@ -215,7 +215,7 @@ const calculateWeaponSpecialBonus = (weaponId, weaponLevel, itemSpecialsSeed, be
215
215
  }
216
216
  return bonus;
217
217
  };
218
- export const calculateAttackDamage = (weapon, adventurer, beast) => {
218
+ export const calculateAttackDamage = (weapon, adventurer, beast, specialsOverride = 0n) => {
219
219
  if (!weapon)
220
220
  return { baseDamage: MIN_DAMAGE, criticalDamage: MIN_DAMAGE }; // Minimum damage
221
221
  const weaponLevel = calculateLevel(weapon.xp);
@@ -242,7 +242,7 @@ export const calculateAttackDamage = (weapon, adventurer, beast) => {
242
242
  }
243
243
  // Calculate special name bonus damage with ring bonus
244
244
  const ring = adventurer.equipment.ring;
245
- const specialBonus = calculateWeaponSpecialBonus(weapon.id, weaponLevel, adventurer.item_specials_salt, beast.specialPrefix, beast.specialSuffix, elementalDamage, ring);
245
+ const specialBonus = calculateWeaponSpecialBonus(weapon.id, weaponLevel, adventurer.item_specials_salt, beast.specialPrefix, beast.specialSuffix, elementalDamage, ring, specialsOverride);
246
246
  // Calculate base damage (without critical)
247
247
  const baseDamage = Math.max(MIN_DAMAGE, elementalDamage + strengthBonus + specialBonus - baseArmor);
248
248
  // Calculate critical hit bonus with ring bonus using adventurer's luck stat
@@ -283,7 +283,7 @@ export const ability_based_damage_reduction = (adventurer_xp, relevant_stat) =>
283
283
  const smooth = 3 * r2 - 2 * r3;
284
284
  return Math.floor((100 * smooth) / SCALE);
285
285
  };
286
- export const calculateBeastDamage = (beast, adventurer, armor) => {
286
+ export const calculateBeastDamage = (beast, adventurer, armor, specialsOverride = 0n) => {
287
287
  const baseAttack = beast.level * (6 - Number(beast.tier));
288
288
  let baseDamage = baseAttack;
289
289
  let critDamage = baseAttack;
@@ -297,7 +297,7 @@ export const calculateBeastDamage = (beast, adventurer, armor) => {
297
297
  let damage = elementalDamage;
298
298
  // Apply name match bonus
299
299
  if (beast.specialPrefix && beast.specialSuffix) {
300
- const itemSpecials = ItemUtils.getSpecials(armor.id, armorLevel, adventurer.item_specials_salt);
300
+ const itemSpecials = ItemUtils.getSpecials(armor.id, armorLevel, adventurer.item_specials_salt, specialsOverride);
301
301
  if (itemSpecials.suffix === beast.specialSuffix) {
302
302
  damage += elementalDamage * 2; // Suffix match
303
303
  }
@@ -1 +1 @@
1
- {"version":3,"file":"game.js","sourceRoot":"","sources":["../../src/rules/game.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAqC,EAAE,EAAE;IACvE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,QAAQ,IAAI,MAAM,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAU,EAAE,EAAE;IAC3C,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,0EAA0E;AAC1E,yCAAyC;AACzC,MAAM,oBAAoB,GAA2B;IACnD,CAAC,EAAE,gBAAgB;IACnB,CAAC,EAAE,gBAAgB;IACnB,CAAC,EAAE,gBAAgB;IACnB,CAAC,EAAE,gBAAgB;IACnB,CAAC,EAAE,gBAAgB;IACnB,CAAC,EAAE,gBAAgB;IACnB,CAAC,EAAE,gBAAgB;IACnB,CAAC,EAAE,gBAAgB;IACnB,CAAC,EAAE,gBAAgB;IACnB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,mBAAmB;IACvB,EAAE,EAAE,mBAAmB;IACvB,EAAE,EAAE,mBAAmB;IACvB,EAAE,EAAE,mBAAmB;IACvB,EAAE,EAAE,mBAAmB;IACvB,EAAE,EAAE,mBAAmB;CACxB,CAAC;AAEF,MAAM,KAAK,GAAG,oBAA0B,CAAC;AAEzC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,WAAmB,EAAE,KAAa,EAAU,EAAE;IACzF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,oBAAoB,CAAC,WAAW,CAAE,CAAC;IAClD,MAAM,SAAS,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC;IACjD,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,SAAiB,EACjB,KAAa,EACb,WAAoB,EACL,EAAE;IACjB,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAC,4BAA4B,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,CAAC;QACD,qCAAqC;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxC,OAAO,UAAU,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,KAAK,GAAG,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,SAAiB,EACjB,KAAa,EACb,WAAoB,EACL,EAAE;IACjB,MAAM,MAAM,GAAG,6BAA6B,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,WAAW,CAAC;IACxC,IAAI,SAAS,KAAK,OAAO;QAAE,OAAO,GAAG,MAAM,EAAE,CAAC;IAC9C,OAAO,GAAG,MAAM,YAAY,CAAC;AAC/B,CAAC,CAAC;AAEF,gFAAgF;AAChF,uFAAuF;AACvF,MAAM,uBAAuB,GAA2B;IACtD,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,mBAAmB;IACtB,EAAE,EAAE,oBAAoB;IACxB,EAAE,EAAE,oBAAoB;IACxB,EAAE,EAAE,oBAAoB;IACxB,EAAE,EAAE,oBAAoB;IACxB,EAAE,EAAE,oBAAoB;IACxB,EAAE,EAAE,oBAAoB;IACxB,EAAE,EAAE,oBAAoB;IACxB,EAAE,EAAE,oBAAoB;IACxB,EAAE,EAAE,oBAAoB;IACxB,EAAE,EAAE,oBAAoB;IACxB,EAAE,EAAE,oBAAoB;IACxB,EAAE,EAAE,oBAAoB;IACxB,EAAE,EAAE,oBAAoB;IACxB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,sBAAsB;IAC1B,EAAE,EAAE,sBAAsB;IAC1B,EAAE,EAAE,sBAAsB;IAC1B,EAAE,EAAE,sBAAsB;IAC1B,EAAE,EAAE,sBAAsB;IAC1B,EAAE,EAAE,sBAAsB;CAC3B,CAAC;AAEF,kFAAkF;AAClF,sFAAsF;AACtF,mFAAmF;AACnF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,QAAgB,EAChB,KAAa,EACb,MAAc,EACN,EAAE;IACV,IAAI,QAAQ,IAAI,EAAE,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,uBAAuB,CAAC,WAAW,CAAE,CAAC;IACzD,gFAAgF;IAChF,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC;IACvE,4FAA4F;IAC5F,yDAAyD;IACzD,OAAO,MAAM,CAAC,SAAS,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,YAAoB,EAAE,OAAgB,KAAK,EAAE,EAAE;IAClF,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAU,EAAE,OAAgB,KAAK,EAAE,EAAE;IACrE,MAAM,YAAY,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,oBAAoB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,YAAY,IAAI,CAAC,CAAC;IACzC,OAAO,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,WAAW,GAAG,cAAc,CAAC,CAAC,GAAG,GAAG,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,YAAuB,EAAE,YAAuB,EAAE,EAAE;IACtF,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,CAAC;IAE9C,MAAM,QAAQ,GAAW,EAAE,CAAC;IAE5B,sDAAsD;IACtD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE;QAC3D,MAAM,WAAW,GAAG,YAAY,CAAC,IAAuB,CAAC,CAAC;QAE1D,8EAA8E;QAC9E,IAAI,WAAW,CAAC,EAAE,KAAK,CAAC,IAAI,WAAW,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,EAAE,CAAC;YAC9D,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAAc,EAAE,EAAE;IACzD,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,MAAM,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;IACxF,YAAY,CAAC,OAAO,CAAC,mBAAmB,MAAM,EAAE,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnF,CAAC,CAAC;AAEF,sDAAsD;AACtD,MAAM,kBAAkB,GAAG,CAAC,WAAmB,EAAE,IAAiB,EAAU,EAAE;IAC5E,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,GAAG,WAAW,CAAC;IAEpB,0DAA0D;IAC1D,IAAI,IAAI,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,eAAe,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC5E,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,4DAA4D;AAC5D,MAAM,2BAA2B,GAAG,CAClC,QAAgB,EAChB,WAAmB,EACnB,gBAAwB,EACxB,WAA0B,EAC1B,WAA0B,EAC1B,UAAkB,EAClB,IAAU,EACV,EAAE;IACF,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW;QAAE,OAAO,CAAC,CAAC;IAE3C,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAEtF,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,0CAA0C;IAC1C,IAAI,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACnE,KAAK,IAAI,UAAU,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,0CAA0C;IAC1C,IAAI,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACnE,KAAK,IAAI,UAAU,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,4DAA4D;IAC5D,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,eAAe,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACpE,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,MAAY,EACZ,UAAsB,EACtB,KAAmB,EACnB,EAAE;IACF,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,CAAC,iBAAiB;IAE7F,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,WAAW,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAE1D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3E,OAAO;YACL,UAAU,EAAE,UAAU,GAAG,QAAQ;YACjC,cAAc,EAAE,UAAU,GAAG,CAAC,GAAG,QAAQ;SAC1C,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;IAC/B,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAE1C,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,eAAe,GAAG,uBAAuB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAE9E,2BAA2B;IAC3B,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;QAClC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;IACvF,CAAC;IAED,sDAAsD;IACtD,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;IACvC,MAAM,YAAY,GAAG,2BAA2B,CAC9C,MAAM,CAAC,EAAE,EACT,WAAW,EACX,UAAU,CAAC,kBAAkB,EAC7B,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,aAAa,EACnB,eAAe,EACf,IAAI,CACL,CAAC;IAEF,2CAA2C;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,UAAU,EACV,eAAe,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,CAC3D,CAAC;IAEF,4EAA4E;IAC5E,MAAM,SAAS,GAAG,kBAAkB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC7B,UAAU,EACV,eAAe,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,CACvE,CAAC;IAEF,OAAO;QACL,UAAU;QACV,cAAc;KACf,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,aAAqB,EAAE,aAAqB,EAAE,EAAE;IACvF,MAAM,gBAAgB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAEvD,IAAI,aAAa,IAAI,gBAAgB,EAAE,CAAC;QACtC,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,gBAAwB,EACxB,aAAqB,EACrB,GAAW,EACX,EAAE;IACF,IAAI,aAAa,IAAI,gBAAgB,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QACrD,OAAO,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,aAAqB,EAAE,aAAqB,EAAE,EAAE;IAC7F,MAAM,gBAAgB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC;IAExB,IAAI,KAAK,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,gBAAgB,CAAC;IACvD,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;QAClB,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;IACnC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;IAChC,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAE/B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAY,EAAE,UAAsB,EAAE,KAAW,EAAE,EAAE;IACxF,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,IAAI,UAAU,GAAG,UAAU,CAAC;IAC5B,IAAI,UAAU,GAAG,UAAU,CAAC;IAE5B,IAAI,KAAK,EAAE,EAAE,EAAE,CAAC;QACd,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtE,6BAA6B;QAC7B,MAAM,eAAe,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClD,MAAM,eAAe,GAAG,uBAAuB,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;QACxF,IAAI,MAAM,GAAG,eAAe,CAAC;QAE7B,yBAAyB;QACzB,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/C,MAAM,YAAY,GAAG,SAAS,CAAC,WAAW,CACxC,KAAK,CAAC,EAAE,EACR,UAAU,EACV,UAAU,CAAC,kBAAkB,CAC9B,CAAC;YACF,IAAI,YAAY,CAAC,MAAM,KAAK,KAAK,CAAC,aAAa,EAAE,CAAC;gBAChD,MAAM,IAAI,eAAe,GAAG,CAAC,CAAC,CAAC,eAAe;YAChD,CAAC;YACD,IAAI,YAAY,CAAC,MAAM,KAAK,KAAK,CAAC,aAAa,EAAE,CAAC;gBAChD,MAAM,IAAI,eAAe,GAAG,CAAC,CAAC,CAAC,eAAe;YAChD,CAAC;QACH,CAAC;QAED,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,GAAG,eAAe,GAAG,UAAU,CAAC,CAAC;QAC/E,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;QAE7D,iCAAiC;QACjC,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;QACvC,IAAI,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAC9B,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,CAC3E,CAAC;YAEF,UAAU,IAAI,aAAa,CAAC;YAC5B,UAAU,IAAI,aAAa,CAAC;QAC9B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;QAC1C,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU,CAAC;QAClD,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU,CAAC;KACvD,CAAC;AACJ,CAAC,CAAC;AAEF,oDAAoD;AACpD,MAAM,cAAc,GAAG,CAAC,KAAW,EAAE,IAAU,EAAW,EAAE;IAC1D,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAExC,IACE,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,KAAK;QAClD,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,QAAQ;QAE3C,OAAO,IAAI,CAAC;IACd,IACE,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,IAAI;QACjD,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,SAAS;QAE5C,OAAO,IAAI,CAAC;IACd,IACE,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,KAAK;QAClD,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,UAAU;QAE7C,OAAO,IAAI,CAAC;IAEd,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,UAAU,uBAAuB,CACrC,WAAmB,EACnB,WAAmB,EACnB,UAAkB;IAElB,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;IAErD,IACE,CAAC,WAAW,KAAK,QAAQ,CAAC,KAAK,IAAI,UAAU,KAAK,OAAO,CAAC;QAC1D,CAAC,WAAW,KAAK,QAAQ,CAAC,KAAK,IAAI,UAAU,KAAK,OAAO,CAAC;QAC1D,CAAC,WAAW,KAAK,QAAQ,CAAC,QAAQ,IAAI,UAAU,KAAK,MAAM,CAAC,EAC5D,CAAC;QACD,OAAO,WAAW,GAAG,gBAAgB,CAAC;IACxC,CAAC;IAED,IACE,CAAC,WAAW,KAAK,QAAQ,CAAC,KAAK,IAAI,UAAU,KAAK,MAAM,CAAC;QACzD,CAAC,WAAW,KAAK,QAAQ,CAAC,KAAK,IAAI,UAAU,KAAK,OAAO,CAAC;QAC1D,CAAC,WAAW,KAAK,QAAQ,CAAC,QAAQ,IAAI,UAAU,KAAK,OAAO,CAAC,EAC7D,CAAC;QACD,OAAO,WAAW,GAAG,gBAAgB,CAAC;IACxC,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,QAAgB;IAC3D,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,MAAM,GAAG,QAAQ,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;AACxC,CAAC;AAED,yBAAyB;AACzB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,UAAsB,EACtB,QAAgB,EAChB,KAAmB,EACN,EAAE;IACf,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,qBAAqB,CAC1D,UAAU,CAAC,SAAS,CAAC,MAAM,EAC3B,UAAU,EACV,KAAK,CACN,CAAC;IAEF,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,SAAS,GAAW,EAAE,CAAC;IAE7B,IAAI,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;IAC7C,IAAI,UAAU,GAAG,UAAU,CAAC;IAC5B,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAE/B,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;QAE/D,QAAQ;aACL,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC;aAC7D,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC;YAC7E,IAAI,UAAU,GAAG,UAAU,EAAE,CAAC;gBAC5B,UAAU,GAAG,UAAU,CAAC;gBACxB,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;QAEL,IAAI,UAAU,EAAE,CAAC;YACf,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QAED,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1D,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,IAAuB,CAAC,CAAC;YAC5D,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;gBAChE,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC5D,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACvE,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;YACrF,CAAC;iBAAM,CAAC;gBACN,wDAAwD;gBACxD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;gBAChE,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACvE,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;YACrF,CAAC;YAED,IAAI,WAAW,GAAG,YAAY,CAAC;YAC/B,IAAI,QAAQ,GAAG,IAAI,CAAC;YACpB,QAAQ;iBACL,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC;iBACvE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAChB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC1B,CAAC,EACD,SAAS,GAAG,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,UAAU,CACrE,CAAC;gBACF,IAAI,WAAW,GAAG,WAAW,EAAE,CAAC;oBAC9B,WAAW,GAAG,WAAW,CAAC;oBAC1B,QAAQ,GAAG,IAAI,CAAC;gBAClB,CAAC;YACH,CAAC,CAAC,CAAC;YAEL,YAAY,IAAI,YAAY,CAAC;YAC7B,gBAAgB,IAAI,WAAW,CAAC;YAEhC,IAAI,QAAQ,EAAE,CAAC;gBACb,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,UAAU,GAAG,GAAG,CAAC;YACjB,cAAc,GAAG,GAAG,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YACrF,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAED,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACnD,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;YAClB,SAAS,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;YAClB,SAAS,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,UAAU;QACV,UAAU;QACV,UAAU;QACV,cAAc;QACd,SAAS;QACT,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI;QACjC,cAAc;QACd,SAAS;QACT,kBAAkB;QAClB,sBAAsB;KACvB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAY,EAAE,IAAiB,EAAE,EAAE;IACrE,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE1E,oDAAoD;IACpD,IAAI,IAAI,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,WAAW,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QAC7E,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC"}
1
+ {"version":3,"file":"game.js","sourceRoot":"","sources":["../../src/rules/game.ts"],"names":[],"mappings":"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"}
@@ -108,7 +108,7 @@ export declare const isCriticalHit: (luck: number, criticalHitRnd?: number) => b
108
108
  * Delegates to calculateAttackDamage from game.ts which includes weapon specials,
109
109
  * ring name-match bonus, and ring critical hit bonus.
110
110
  */
111
- export declare const calculateAdventurerAttackDamage: (adventurer: Adventurer, beast: Beast) => {
111
+ export declare const calculateAdventurerAttackDamage: (adventurer: Adventurer, beast: Beast, specialsOverride?: bigint) => {
112
112
  normal: number;
113
113
  crit: number;
114
114
  };
@@ -125,7 +125,7 @@ export interface BeastAttackRolls {
125
125
  attackLocationRnd: number;
126
126
  criticalHitRnd: number;
127
127
  }
128
- export declare const calculateBeastCounterAttack: (beast: Beast, adventurer: Adventurer, baseDamageReduction: number, isAmbush?: boolean, rolls?: BeastAttackRolls) => {
128
+ export declare const calculateBeastCounterAttack: (beast: Beast, adventurer: Adventurer, baseDamageReduction: number, isAmbush?: boolean, rolls?: BeastAttackRolls, specialsOverride?: bigint) => {
129
129
  damage: number;
130
130
  location: string;
131
131
  critical_hit: boolean;
@@ -143,16 +143,16 @@ export declare const calculateBeastCounterAttack: (beast: Beast, adventurer: Adv
143
143
  * `itemSpecialsRnd` is the roll the salt is seeded from -- `item_specials_seed` on a beast kill,
144
144
  * the explore `rnd3` on an obstacle. Pass `undefined` to keep the old xp-only behaviour.
145
145
  */
146
- export declare const grantXpToEquippedItems: (adventurer: Adventurer, xpAmount: number, adventurerId: string | bigint, itemSpecialsRnd?: number) => void;
146
+ export declare const grantXpToEquippedItems: (adventurer: Adventurer, xpAmount: number, adventurerId: string | bigint, itemSpecialsRnd?: number, specialsOverride?: bigint) => void;
147
147
  /**
148
148
  * Equip a single item from bag into the correct equipment slot.
149
149
  * If the slot is occupied, the displaced item moves to the bag.
150
150
  */
151
- export declare const equipItem: (adventurer: Adventurer, bag: Item[], itemId: number) => void;
151
+ export declare const equipItem: (adventurer: Adventurer, bag: Item[], itemId: number, specialsOverride?: bigint) => void;
152
152
  /**
153
153
  * Drop a single item from equipment or bag.
154
154
  */
155
- export declare const dropItem: (adventurer: Adventurer, bag: Item[], itemId: number) => void;
155
+ export declare const dropItem: (adventurer: Adventurer, bag: Item[], itemId: number, specialsOverride?: bigint) => void;
156
156
  export declare const generateStartingStats: (levelSeed?: bigint, count?: number) => Stats;
157
157
  export {};
158
158
  //# sourceMappingURL=gameSimulation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gameSimulation.d.ts","sourceRoot":"","sources":["../../src/rules/gameSimulation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gameSimulation.d.ts","sourceRoot":"","sources":["../../src/rules/gameSimulation.ts"],"names":[],"mappings":"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"}
@@ -453,14 +453,14 @@ export const isCriticalHit = (luck, criticalHitRnd) => {
453
453
  * Delegates to calculateAttackDamage from game.ts which includes weapon specials,
454
454
  * ring name-match bonus, and ring critical hit bonus.
455
455
  */
456
- export const calculateAdventurerAttackDamage = (adventurer, beast) => {
457
- const { baseDamage, criticalDamage } = calculateAttackDamage(adventurer.equipment.weapon, adventurer, beast);
456
+ export const calculateAdventurerAttackDamage = (adventurer, beast, specialsOverride = 0n) => {
457
+ const { baseDamage, criticalDamage } = calculateAttackDamage(adventurer.equipment.weapon, adventurer, beast, specialsOverride);
458
458
  return { normal: baseDamage, crit: criticalDamage };
459
459
  };
460
- export const calculateBeastCounterAttack = (beast, adventurer, baseDamageReduction, isAmbush = false, rolls) => {
460
+ export const calculateBeastCounterAttack = (beast, adventurer, baseDamageReduction, isAmbush = false, rolls, specialsOverride = 0n) => {
461
461
  const slot = getAttackLocation(rolls?.attackLocationRnd);
462
462
  const armor = getArmorAtSlot(adventurer, slot);
463
- const beastDmg = calculateBeastDamage(beast, adventurer, armor);
463
+ const beastDmg = calculateBeastDamage(beast, adventurer, armor, specialsOverride);
464
464
  // Level-based crit check for beasts
465
465
  const adventurerLevel = calculateLevel(adventurer.xp);
466
466
  const critChance = Math.min(adventurerLevel, 100);
@@ -478,13 +478,13 @@ export const calculateBeastCounterAttack = (beast, adventurer, baseDamageReducti
478
478
  */
479
479
  // ─── Inventory: equip / drop ─────────────────────────────────────
480
480
  /** Get suffix name for an item if its greatness unlocks specials. */
481
- const getItemSuffix = (item, salt) => {
481
+ const getItemSuffix = (item, salt, specialsOverride) => {
482
482
  if (item.id === 0)
483
483
  return null;
484
484
  const greatness = getItemGreatness(item);
485
485
  if (greatness < SUFFIX_UNLOCK_GREATNESS)
486
486
  return null;
487
- const specials = ItemUtils.getSpecials(item.id, greatness, salt);
487
+ const specials = ItemUtils.getSpecials(item.id, greatness, salt, specialsOverride);
488
488
  return specials.special1;
489
489
  };
490
490
  /** Apply suffix boost to stats (matches contract apply_suffix_boost). */
@@ -655,7 +655,7 @@ const unlockedSpecials = (previousLevel, newLevel) => {
655
655
  * `itemSpecialsRnd` is the roll the salt is seeded from -- `item_specials_seed` on a beast kill,
656
656
  * the explore `rnd3` on an obstacle. Pass `undefined` to keep the old xp-only behaviour.
657
657
  */
658
- export const grantXpToEquippedItems = (adventurer, xpAmount, adventurerId, itemSpecialsRnd) => {
658
+ export const grantXpToEquippedItems = (adventurer, xpAmount, adventurerId, itemSpecialsRnd, specialsOverride = 0n) => {
659
659
  for (const slotKey of EQUIPMENT_SLOTS) {
660
660
  const item = adventurer.equipment[slotKey];
661
661
  if (item.id === 0)
@@ -671,6 +671,15 @@ export const grantXpToEquippedItems = (adventurer, xpAmount, adventurerId, itemS
671
671
  const { suffixUnlocked, prefixesUnlocked } = unlockedSpecials(previousLevel, newLevel);
672
672
  if (!suffixUnlocked && !prefixesUnlocked)
673
673
  continue;
674
+ // An override answers for every item in the run, so the salt is never consulted -- and
675
+ // therefore never drawn.
676
+ if (specialsOverride !== 0n) {
677
+ if (suffixUnlocked) {
678
+ const specials = ItemUtils.getSpecials(item.id, newLevel, 0, specialsOverride);
679
+ applyUnlockedSuffix(adventurer, specials.special1);
680
+ }
681
+ continue;
682
+ }
674
683
  // The salt is per-adventurer and write-once. If it is already set, the specials were fixed
675
684
  // long ago and this level-up only reveals more of them -- nothing new is rolled.
676
685
  const existingSeed = ItemUtils.getItemSpecialsSeed(adventurer.item_specials_salt, adventurerId);
@@ -731,7 +740,7 @@ const removeBagBoost = (stats, suffix) => {
731
740
  * Equip a single item from bag into the correct equipment slot.
732
741
  * If the slot is occupied, the displaced item moves to the bag.
733
742
  */
734
- export const equipItem = (adventurer, bag, itemId) => {
743
+ export const equipItem = (adventurer, bag, itemId, specialsOverride = 0n) => {
735
744
  const salt = adventurer.item_specials_salt;
736
745
  // Find and remove item from bag (preserve XP)
737
746
  const bagIndex = bag.findIndex((i) => i.id === itemId);
@@ -749,7 +758,7 @@ export const equipItem = (adventurer, bag, itemId) => {
749
758
  // Displace current item to bag if it exists
750
759
  if (current && current.id !== 0) {
751
760
  // Remove suffix boost for displaced item (contract: remove_suffix_boost)
752
- const displacedSuffix = getItemSuffix(current, salt);
761
+ const displacedSuffix = getItemSuffix(current, salt, specialsOverride);
753
762
  if (displacedSuffix) {
754
763
  removeSuffixBoost(adventurer.stats, displacedSuffix);
755
764
  }
@@ -759,7 +768,7 @@ export const equipItem = (adventurer, bag, itemId) => {
759
768
  adventurer.equipment[slotKey].id = item.id;
760
769
  adventurer.equipment[slotKey].xp = item.xp;
761
770
  // Apply suffix boost for newly equipped item (contract: apply_suffix_boost)
762
- const newSuffix = getItemSuffix(item, salt);
771
+ const newSuffix = getItemSuffix(item, salt, specialsOverride);
763
772
  if (newSuffix) {
764
773
  applySuffixBoost(adventurer.stats, newSuffix);
765
774
  }
@@ -767,7 +776,7 @@ export const equipItem = (adventurer, bag, itemId) => {
767
776
  /**
768
777
  * Drop a single item from equipment or bag.
769
778
  */
770
- export const dropItem = (adventurer, bag, itemId) => {
779
+ export const dropItem = (adventurer, bag, itemId, specialsOverride = 0n) => {
771
780
  const salt = adventurer.item_specials_salt;
772
781
  // Check equipment first
773
782
  for (const slotKey of [
@@ -783,7 +792,7 @@ export const dropItem = (adventurer, bag, itemId) => {
783
792
  const item = adventurer.equipment[slotKey];
784
793
  if (item.id === itemId) {
785
794
  // Remove suffix boost for equipped item (contract: remove_suffix_boost)
786
- const suffix = getItemSuffix(item, salt);
795
+ const suffix = getItemSuffix(item, salt, specialsOverride);
787
796
  if (suffix) {
788
797
  removeSuffixBoost(adventurer.stats, suffix);
789
798
  }
@@ -801,7 +810,7 @@ export const dropItem = (adventurer, bag, itemId) => {
801
810
  if (bagIndex >= 0) {
802
811
  const bagItem = bag[bagIndex];
803
812
  // Remove bag boost for bag item (contract: remove_bag_boost)
804
- const suffix = getItemSuffix(bagItem, salt);
813
+ const suffix = getItemSuffix(bagItem, salt, specialsOverride);
805
814
  if (suffix) {
806
815
  removeBagBoost(adventurer.stats, suffix);
807
816
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gameSimulation.js","sourceRoot":"","sources":["../../src/rules/gameSimulation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gameSimulation.js","sourceRoot":"","sources":["../../src/rules/gameSimulation.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,39 @@
1
1
  import { Adventurer, Beast, Item, Stats } from "../types.js";
2
+ /**
3
+ * A specials override table: eight slots of 17 bits, packed low-to-high in equipment-slot order
4
+ * into a single felt.
5
+ *
6
+ * ```text
7
+ * bits 0-4 special1 suffix 0..=16
8
+ * bits 5-11 special2 prefix1 0..=69
9
+ * bits 12-16 special3 prefix2 0..=18
10
+ * ```
11
+ *
12
+ * Mirrors `ImplLoot::slot_override` in `contracts/src/models/loot.cairo`. A zero table means the
13
+ * run has no override and every read falls through to the `item_specials_salt` seed. A zero
14
+ * ENTRY inside a non-zero table means that slot's items get no specials, ever.
15
+ */
16
+ export declare const SPECIALS_OVERRIDE_MAX: bigint;
17
+ /** Slot order is the `Equipment` field order the contract packs against. */
18
+ export declare const SPECIALS_OVERRIDE_SLOTS: readonly ["Weapon", "Chest", "Head", "Waist", "Foot", "Hand", "Neck", "Ring"];
19
+ export type SpecialsOverrideSlot = (typeof SPECIALS_OVERRIDE_SLOTS)[number];
20
+ export interface SpecialsOverrideEntry {
21
+ special1: number;
22
+ special2: number;
23
+ special3: number;
24
+ }
25
+ /** Reads one slot's entry out of a packed table. Slots with no entry read back all zeroes. */
26
+ export declare function slotOverride(packed: bigint, slot: string): SpecialsOverrideEntry;
27
+ /**
28
+ * Rejects a table that could never have been produced by the game.
29
+ *
30
+ * The entry fields are wider than their value ranges (5/7/5 bits for 16/69/18 values), so an
31
+ * out-of-range special has to be refused rather than masked away. The contract runs this inside
32
+ * `decode`, on the commit path.
33
+ */
34
+ export declare function assertValidSpecialsOverride(packed: bigint): void;
35
+ /** Packs per-slot entries into the single felt `encodeStart` carries. */
36
+ export declare function packSpecialsOverride(entries: Partial<Record<SpecialsOverrideSlot, Partial<SpecialsOverrideEntry>>>): bigint;
2
37
  export declare const slotIcons: {
3
38
  Weapon: string;
4
39
  Head: string;
@@ -64,7 +99,11 @@ export declare const ItemUtils: {
64
99
  getItemPrice: (tier: Tier, charisma: number) => number;
65
100
  getItemSpecialsSeed: (salt: number, adventurerId: string | bigint) => number;
66
101
  getSpecialsSeed: (itemId: number, entropy: number) => number;
67
- getSpecials: (id: number, greatness: number, seed: number) => {
102
+ /**
103
+ * `specialsOverride` changes WHICH specials an item gets, never WHEN it gets them: the
104
+ * greatness schedule below is the same either way. See `slotOverride`.
105
+ */
106
+ getSpecials: (id: number, greatness: number, seed: number, specialsOverride?: bigint) => {
68
107
  special1: null;
69
108
  prefix: null;
70
109
  suffix: null;
@@ -88,12 +127,12 @@ export declare const ItemUtils: {
88
127
  imageUrl: string;
89
128
  };
90
129
  getTierColor: (tier: Tier) => string;
91
- isNameMatch: (itemId: number, itemLevel: number, itemSeed: number, beast: Beast) => boolean;
130
+ isNameMatch: (itemId: number, itemLevel: number, itemSeed: number, beast: Beast, specialsOverride?: bigint) => boolean;
92
131
  getStatBonus: (special1: string) => "+3 STR" | "+3 VIT" | "+2 STR +1 CHA" | "+3 DEX" | "+1 STR +1 DEX +1 VIT" | "+3 INT" | "+3 WIS" | "+2 VIT +1 DEX" | "+2 STR +1 DEX" | "+1 STR +1 CHA +1 WIS" | "+1 VIT +1 CHA +1 INT" | "+2 INT +1 WIS" | "+2 DEX +1 CHA" | "+2 WIS +1 DEX" | "+1 INT +2 WIS" | "+3 CHA" | undefined;
93
- removeItemBoosts: (item: Item, item_specials_salt: number, stats: Stats) => Stats;
94
- addItemBoosts: (item: Item, item_specials_salt: number, stats: Stats) => Stats;
95
- fullItemBoost: (item: Item, item_specials_salt: number, stats: Stats) => Stats;
96
- getEquippedItemStats: (adventurer: Adventurer, bag: Item[]) => Stats;
132
+ removeItemBoosts: (item: Item, item_specials_salt: number, stats: Stats, specialsOverride?: bigint) => Stats;
133
+ addItemBoosts: (item: Item, item_specials_salt: number, stats: Stats, specialsOverride?: bigint) => Stats;
134
+ fullItemBoost: (item: Item, item_specials_salt: number, stats: Stats, specialsOverride?: bigint) => Stats;
135
+ getEquippedItemStats: (adventurer: Adventurer, bag: Item[], specialsOverride?: bigint) => Stats;
97
136
  getJewelryEffect: (id: number) => string;
98
137
  getCurrentJewelryEffect: (id: number, level: number) => string;
99
138
  };
@@ -1 +1 @@
1
- {"version":3,"file":"loot.d.ts","sourceRoot":"","sources":["../../src/rules/loot.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAI7D,eAAO,MAAM,SAAS;;;;;;;;;CASrB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;CASrB,CAAC;AAYF,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAGD,oBAAY,IAAI;IACd,EAAE,IAAI;IACN,EAAE,IAAI;IACN,EAAE,IAAI;IACN,EAAE,IAAI;IACN,EAAE,IAAI;IACN,IAAI,IAAI;CACT;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,eAAO,MAAM,SAAS;qBACH,MAAM,KAAG,OAAO;iBACpB,MAAM,KAAG,OAAO;mBACd,MAAM,KAAG,OAAO;kBAEjB,MAAM,KAAG,OAAO;iBAEjB,MAAM,KAAG,OAAO;kBAEf,MAAM,KAAG,OAAO;iBAEjB,MAAM,KAAG,OAAO;iBAEhB,MAAM,KAAG,OAAO;yBAGR,MAAM,KAAG,OAAO;wBACjB,MAAM,KAAG,OAAO;4BACZ,MAAM,KAAG,OAAO;sBAEtB,MAAM,KAAG,QAAQ;sBAWjB,MAAM,KAAG,MAAM;sBAYf,MAAM,KAAG,IAAI;6BAyCN,IAAI,KAAG,MAAM;8CAiBI,MAAM,YAAY,MAAM,KAAG,MAAM;yBAWtD,IAAI,YAAY,MAAM,KAAG,MAAM;gCAKxB,MAAM,gBAAgB,MAAM,GAAG,MAAM,KAAG,MAAM;8BAMhD,MAAM,WAAW,MAAM,KAAG,MAAM;sBA+CxC,MAAM,aAAa,MAAM,QAAQ,MAAM;;;;;;;;;;;;;0BA4BnC,MAAM;2BAIL,MAAM;2BAIN,MAAM;sBAIX,MAAM,KAAG,MAAM;2BAIV,MAAM,KAAG,MAAM;uBAInB,MAAM;sBAWP,MAAM;;;;yBAWH,IAAI,KAAG,MAAM;0BAiBZ,MAAM,aAAa,MAAM,YAAY,MAAM,SAAS,KAAK;6BAStD,MAAM;6BAoCN,IAAI,sBAAsB,MAAM,SAAS,KAAK,KAAG,KAAK;0BAoDzD,IAAI,sBAAsB,MAAM,SAAS,KAAK,KAAG,KAAK;0BAoDtD,IAAI,sBAAsB,MAAM,SAAS,KAAK,KAAG,KAAK;uCA0DzC,UAAU,OAAO,IAAI,EAAE,KAAG,KAAK;2BAoC3C,MAAM,KAAG,MAAM;kCAyBR,MAAM,SAAS,MAAM,KAAG,MAAM;CAwB7D,CAAC"}
1
+ {"version":3,"file":"loot.d.ts","sourceRoot":"","sources":["../../src/rules/loot.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAI7D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,QAAa,CAAC;AAIhD,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB,+EAS1B,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAUhF;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAUhE;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAC7E,MAAM,CAWR;AAED,eAAO,MAAM,SAAS;;;;;;;;;CASrB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;CASrB,CAAC;AAYF,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAGD,oBAAY,IAAI;IACd,EAAE,IAAI;IACN,EAAE,IAAI;IACN,EAAE,IAAI;IACN,EAAE,IAAI;IACN,EAAE,IAAI;IACN,IAAI,IAAI;CACT;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,eAAO,MAAM,SAAS;qBACH,MAAM,KAAG,OAAO;iBACpB,MAAM,KAAG,OAAO;mBACd,MAAM,KAAG,OAAO;kBAEjB,MAAM,KAAG,OAAO;iBAEjB,MAAM,KAAG,OAAO;kBAEf,MAAM,KAAG,OAAO;iBAEjB,MAAM,KAAG,OAAO;iBAEhB,MAAM,KAAG,OAAO;yBAGR,MAAM,KAAG,OAAO;wBACjB,MAAM,KAAG,OAAO;4BACZ,MAAM,KAAG,OAAO;sBAEtB,MAAM,KAAG,QAAQ;sBAWjB,MAAM,KAAG,MAAM;sBAYf,MAAM,KAAG,IAAI;6BAyCN,IAAI,KAAG,MAAM;8CAiBI,MAAM,YAAY,MAAM,KAAG,MAAM;yBAWtD,IAAI,YAAY,MAAM,KAAG,MAAM;gCAKxB,MAAM,gBAAgB,MAAM,GAAG,MAAM,KAAG,MAAM;8BAMhD,MAAM,WAAW,MAAM,KAAG,MAAM;IA+C1D;;;OAGG;sBACe,MAAM,aAAa,MAAM,QAAQ,MAAM,qBAAoB,MAAM;;;;;;;;;;;;;0BAqC7D,MAAM;2BAIL,MAAM;2BAIN,MAAM;sBAIX,MAAM,KAAG,MAAM;2BAIV,MAAM,KAAG,MAAM;uBAInB,MAAM;sBAWP,MAAM;;;;yBAWH,IAAI,KAAG,MAAM;0BAkBxB,MAAM,aACH,MAAM,YACP,MAAM,SACT,KAAK,qBACM,MAAM;6BAUD,MAAM;6BAqCvB,IAAI,sBACU,MAAM,SACnB,KAAK,qBACM,MAAM,KACvB,KAAK;0BAqDA,IAAI,sBACU,MAAM,SACnB,KAAK,qBACM,MAAM,KACvB,KAAK;0BAqDA,IAAI,sBACU,MAAM,SACnB,KAAK,qBACM,MAAM,KACvB,KAAK;uCA2DM,UAAU,OACjB,IAAI,EAAE,qBACO,MAAM,KACvB,KAAK;2BA8Ce,MAAM,KAAG,MAAM;kCAyBR,MAAM,SAAS,MAAM,KAAG,MAAM;CAwB7D,CAAC"}