diff --git a/arms.json b/arms.json index 7c3a313..574bd10 100644 --- a/arms.json +++ b/arms.json @@ -5568,26 +5568,5 @@ }, "slots": 0, "type": 0 - }, - { - "category": 2, - "defense": { - "base": 55, - "max": 80 - }, - "name": "Broken Dragon Gauntlets", - "rarity": 7, - "resistance": [ - -2, - 0, - 0, - -2, - 5 - ], - "skills": { - "20": 5 - }, - "slots": 3, - "type": 0 } ] \ No newline at end of file diff --git a/chest.json b/chest.json index 90c8de8..615848d 100644 --- a/chest.json +++ b/chest.json @@ -5643,27 +5643,5 @@ }, "slots": 1, "type": 0 - }, - { - "category": 1, - "defense": { - "base": 55, - "max": 80 - }, - "name": "Guild Hero Mail", - "rarity": 7, - "resistance": [ - 0, - 2, - 0, - 2, - -5 - ], - "skills": { - "20": 4, - "46": 5 - }, - "slots": 0, - "type": 0 } ] \ No newline at end of file diff --git a/head.json b/head.json index d5f4062..39a7f8b 100644 --- a/head.json +++ b/head.json @@ -5649,26 +5649,5 @@ }, "slots": 2, "type": 0 - }, - { - "category": 0, - "defense": { - "base": 55, - "max": 55 - }, - "name": "Flared Earrings", - "rarity": 7, - "resistance": [ - 2, - 2, - 2, - 2, - 2 - ], - "skills": { - "47": 11 - }, - "slots": 0, - "type": 0 } ] \ No newline at end of file diff --git a/index.html b/index.html index 064fa1a..c47c57c 100644 --- a/index.html +++ b/index.html @@ -1 +1,108 @@ -MH2 Armor Set Searcher
\ No newline at end of file + + + + + + + + MH2 Armor Set Searcher + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + +
+ + +
+
    +
  • +
  • +
  • +
+
+ + +
+
+ + +
+
+
+
+ + + diff --git a/legs.json b/legs.json index 1bdb0bf..22ea10a 100644 --- a/legs.json +++ b/legs.json @@ -5487,27 +5487,5 @@ }, "slots": 2, "type": 2 - }, - { - "category": 4, - "defense": { - "base": 55, - "max": 80 - }, - "name": "Banded Metal Boots", - "rarity": 7, - "resistance": [ - 0, - 2, - 0, - 2, - 5 - ], - "skills": { - "21": 5, - "46": 5 - }, - "slots": 0, - "type": 0 } ] \ No newline at end of file diff --git a/pages.77de5100.js b/pages.77de5100.js index c0fdcfb..b228643 100644 --- a/pages.77de5100.js +++ b/pages.77de5100.js @@ -2840,7 +2840,7 @@ var parent = module.bundle.parent; if ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') { var hostname = "" || location.hostname; var protocol = location.protocol === 'https:' ? 'wss' : 'ws'; - var ws = new WebSocket(protocol + '://' + hostname + ':' + "65067" + '/'); + var ws = new WebSocket(protocol + '://' + hostname + ':' + "55875" + '/'); ws.onmessage = function (event) { checkedAssets = {}; assetsToAccept = []; diff --git a/pages.77de5100.js.map b/pages.77de5100.js.map index 7e913b4..e24f925 100644 --- a/pages.77de5100.js.map +++ b/pages.77de5100.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../data-provider/models/equipment/EquipmentSkills.ts","../../data-provider/data-provider.module.ts","../../data-provider/models/equipment/EquipmentCategory.ts","../../data-provider/models/user/UserEquipmentSettings.ts","../../helper/html.helper.ts","../ui/eq-settings.component.ts","../ui/navbar.component.ts","../ui/picker.component.ts","../../scorer/models/ArmorEvaluation.ts","../../searcher/models/ArmorSet.ts","../../data-provider/models/equipment/ArmorType.ts","../../data-filter/data-filter.module.ts","../../scorer/scorer.module.ts","../../scorer/models/DecoEvaluation.ts","../../scorer/models/DecoMinSlotMap.ts","../../searcher/searcher.module.ts","../ui/global-settings.component.ts","../ui/search-results.component.ts","../ui/search-controls.component.ts","index.ts"],"names":[],"mappings":";;;;;AUAA,ARAA,AEAa,AYIA,AVJb,ACEA,IDFM,ACEN,GHFa,AYIA,CZJA,AYIA,QVJK,CCElB,EDFqB,CCErB,CHF0B,GAAG,CYIC,ETF9B,CSEiC,AVJ3B,ACEN,MHF8B,IAAY,EAAU,AYIE,AVJpC,CAAI,GAAY,EAAI,QCEtC,CAAA;AGDA,ARAA,AKGA,EHHE,AYIA,AVJA,EIAG,ARAA,AKGC,EHHE,AYIA,AVJF,CAAC,GAAG,CAAC,EIIV,CNJe,GAAG,AYIA,GAAG,AVJF,CJQnB,AIRoB,IFAM,AGGA,CHHC,EYIE,ATDA,CSCC,AVJF,CAAC,OCGxB,EHHmC,CAAC,GYIG,CAAC,GVJC,CAAC,EFAI,AEAF,CFAG,KYIK,CAAsB,CTDrD,GAAQ;AGHnC,ARAA,CQAA,ARAA,CECE,AYIA,ATDA,EDHE,EFAE,AYIE,CVJD,CAAC,CFAC,AGGA,EGJJ,ARAA,EECQ,CAAC,AGGA,CAAC,ESCI,AVJF,CFAC,AEAA,CCGC,CGJL,ANCM,AYIE,ATDF,CDHC,CIDP,AJCQ,MJDA,AcKQ,ATDF,CSCG,ATDF,CLJP,MICc,CAAC,MUIQ,CAAC,OTDK,CAAC,EOD1C,IEEkD,CAAsB,mBTDJ,CAAC,CAAC,IODtE;AAAA,APEV,CAAC,CGJC,ARAA,AECA,AYIA,IAAM,IZJE,CMDR,ANCS,CMDT,KMKiB,EdLjB,CAAA,AECkB,AYIE,CNLpB,CAAA,CNCqB,IMDrB,ANCyB,CMDzB,AMK4B,CAAC,ENL7B,CAAA,CAAA,GAAA,CRAA,CAAA,GQAO,EMKoC,CdL3C,AcK4C,CdL5C,GAAA,CAAA,CAAA,GAAA,KcK0D,CdLlD,AcKwE;AFHxE,ARAV,ACIA,CDJC,CIDC,ARAA,AECA,AYIA,IAAM,GZJC,EMDP,CAAA,IMKgB,CZJD,CAAC,CFDhB,AcKmB,CdLnB,CQAA,CAAA,GNCuB,CAAC,CYIG,CAAC,ONL5B,CAAA,ANC0C,CFD1C,CAAA,CQAA,CAAA,CAAA,CMK0C,CAAC,CNL3C,CRAA,CAAA,GAAA,CAAA,CAAA,GAAA,EcKwD,CNLzC,AMK+D,IdLrE;AEEX,AUDU,AREV,ACGA,CHJC,CMDC,ARAA,AcKA,EVHI,ACGA,ESAE,KNLN,AMKW,CNLX,EMKc,EVHE,GJFhB,AIEmB,CJFnB,CQAA,CAAA,AMKsB,CAAC,ETAE,GDHrB,ACGwB,EGL5B,CAAA,GAAA,CAAA,CAAA,CRAA,AcKqC,ATAjC,CLLJ,AcKsC,CNLtC,CJEgB,CAAI,GJFpB,AIEgC,CJFhC,CIEoC,CIF1B,CRAV,CAAA,CAAA,EcKoD,CdLpD,AcKyE,KTAhD,CLLjB,EKKyB;AGJnC,CAAC,CRAC,AcMA,AVJA,ACGA,CGTG,EJMA,CAAC,ACGE,GSCC,GNVK,GJMC,CAAC,CINX,AHSc,ELLjB,CAAA,AKKoB,EDHA,CAAC,GINT,GAAA,CAAA,CAAA,CAAA,CAAA,IRIZ,AIEmC,CJFnC,AIEoC,GCGK,EAAE,ELL3C,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;AQEX,AJCA,CAAC,CJFC,AKMA,ESAE,GNLJ,CAAA,KMKa,ATAA,CAAC,CGLd,AMKe,GNLA,CRDb,CAAA,CKMmB,CAAC,CSAC,CAAC,GNLA,KHKD,GSAY,CAAC,CdNlC,CAAA,CKM4B,ESAW,ATAP,CSAQ,EdNxC,CAAA,GAAA,CAAA,CAAA,GAAA,Ca2GQ,Kb3GA,ea2GA;AZjHV,AGUA,EJHE,Aa0GQ,EZjHV,AaaI,AVHE,ACGF,IAAM,GDHG,GAAG,CUGD,CTAG,CSAD,EdNf,AKMmB,CLNnB,GCPF,AGUM,EUGmB,CbbzB,Aaa0B,ATAE,CAAC,GDHhB,CAAI,ICGoB,CAAC,CLNpC,AcMmC,AVHL,ACGO,CLNrC,AcMoC,ATAsB,CDH1B,EHVlC,CAAA,AGU8C,CUGH,CAAU,AVHH,CJHhD,CAAA,GAAA,ACPF,CDOE,ACPF,CDOE,Ea0IQ,Cb1IR,OAAS,Wa0ID,UZjJV,CAAA,CAAA;AAA8D,AWI9D,AC6IU,EbzIR,AIGA,EHRF,AaWI,ATAA,IAAM,COVA,GPUI,GSAC,ATAE,ESAA,EdNf,CAAA,EKMsB,CAAC,EJXzB,AaWyB,CAAC,KTAO,CAAC,CDHf,ACGgB,CAAgB,GLNjD,AcMmC,CdNnC,AcMoC,AVHd,CQPd,AROe,CQNvB,GESyC,AVHd,CUGyB,AVHxB,EJH5B,CAAA,GAAA,AIGkC,CJHlC,AIGmC,CJHnC,AYH0B,EAC1B,CZEA,IIG2C,CAAC,CQL7B,EZEL,AYDV,cAAsB,EACtB,aAAqB,CRGyB,CQF9C,cAAsB;AZAxB,AawIU,CbxIT,CCIC,AWJsB,CZRnB,CccD,AVJG,ACKH,IDLS,EAAE,ECKH,CAAC,CSDC,EAAE,IddM,AKeF,GAAG,CSDC,CddnB,AccoB,GTCG,OJH1B,AaEiC,CAAC,KAAK,CddnB,Acc8B,Gdd9B,CAAA,CAAA,CAAA,CAAA,KeQL,kBAAA;ANTjB,ATWA,AasIU,EDxIc,EHTxB,ARaE,AaGE,AVJA,ACKA,EDLE,CJDN,AICO,CJDP,AKMQ,CSDC,ATCA,ESDE,IdLX,CICgB,CAAC,CJDF,AKMG,CSDC,ATCA,CSDC,GVJG,CAAC,CUIC,ATCA,CIjBzB,AKgB0B,ATCA,GIjB1B,EKgB+B,IdLC,CSXhC,CAAA,EJiBuC,CAAC,CDLC,CAAC,kCKZ1C,CAAA;AAEA,ANFA,EEkBE,CSDC,ATCA,CIhBH,ARWE,AWJsB,ATTxB,ACaI,ACKA,EDLE,CAAC,QKXP,CLWgB,CAAC,CKXjB,KNFA,ACauB,CAAC,EDbxB,OMEA,CAAA,ILWsC,CAAC,EKXvC,ANFA,CMEA,ANFA,OAAA,CAAA,qCMEA,CAAA,CAAA,iBNFA,CAAA,CAAA;AMIA,ANHA,AWiBA,ATCA,CSDC,ATCA,GIfD,ARUI,AEbJ,ESQwB,EXKhB,CAAC,IAAI,GAAG,EAAE,KQVlB,GAAA,CNHA,GAAA,WMGA,CAAA,GNHA,CAAA,GMGA,CAAA,GNHA,CAAA,iDMGA,CAAA,CAAA,INHA,CAAA,CAAA;AMKA,ANJA,AE4GE,ED/FA,EKTF,ARSI,AEbJ,CCaK,CAAC,CC+FJ,CJ/FM,AWNgB,APqGtB,CJ/FO,MGAM,CAAC,CDbhB,EFamB,AGAA,CDbnB,ACaoB,CKTpB,CRSsB,EQTtB,ARSwB,GEbxB,CAAA,CE4GE,GAAA,KD/FmC,CAAC,CKTtC,CAAA,OAAA,CAAA,KJwGE,CF5GF,CAAA,4CMIA,CAAA,CAAA;AAMA,AHZA,AKCA,ARIA,AEgBA,EDJE,EKLI,ARKF,AKjBJ,AKCA,ARIM,ECYE,EHAE,EWRc,IHGR,CNPC,ACYA,EKLE,CNPC,ACYA,GOhBpB,APgBuB,CAAC,EOhBxB,EFWM,AHZN,CLiB6B,EKjB7B,CLiBgC,CAC1B,GGD8B,CDZC,ACYA,CKLrB,AHZhB,CGYoB,AHZpB,EKCA,CAAA,EFWqC,EAAE,GEXvC,CFWsD,AEXtD,CCUqB,CHCqC,ARMpD,CAAA,AGD+C,CAAC,MHC/B,CAAC,EWPS,EXOL,EACtB,cKnBN,CAAA,ILmBM,CAAA,OAAiB,CAAC,KAAK,EACvB,EUnBN,CAAA,CAAA,eVmBM,CAAA,OAAiB,CAAC,IAAI,EACtB,mBAAA,CAAA,OAAiB,CAAC,KAAK,EACvB,mBAAA,CAAA,OAAiB,CAAC,IAAI,CACvB;AKtBL,AKAkF,ADDlF,APOA,AEeA,EITE,ALKA,EHOE,AKxBJ,AKKA,ADNA,APOM,AEeA,EDJE,GKLC,CGFwB,EROnB,EKLA,CAAC,ALKE,EDXE,CQDnB,CFOmB,CNNG,GFkBC,AKxBvB,AFiByB,ACIA,CITD,ARYA,AGPE,EEjB1B,AIDA,ALsB4B,GKtB5B,APOM,EFkByB,CAAC,GQZR,AJSlB,CITkB,ACbxB,CAAA,IJCA,CLwBiC,AKxBjC,AHMmB,CMMc,ARYC,CQZA,CRYI,AElBX,CCWqB,CKLX,ALKY,EEjBjD,CAAA,CGYyC,GLKe,ACI/B,CDJgC,CKLX,CAAC,AJSK,IITD,KAAK,IAAI,MCb5D,CAAA,6BJCA,CAAA,CAAA;AGaA,AHZA,AIAA,CDYC,CEDC,ARLA,ACYA,ACGA,ECrBF,AIAA,ETwBM,AIHE,EFfA,CAAC,CSGwB,CXevB,CAAC,IAAI,CAAC,AIHG,GAAG,CJGF,AKxBpB,AIAA,APMqB,CFkBA,AElBC,EGNtB,AIAA,ECYI,GRNyB,CACzB,CFiB0B,CAAC,GGNT,IElBtB,AIAA,CJAA,AKYkC,ADZlC,ANkB2B,CDXZ,ACWa,ACGe,CMRvC,CRLA,AEayC,EDHb,CAAC,CElBjC,AIAA,CJAA,AIAA,INkBuC,CAAC,GOLd,EACtB,QRNA,CAAA,IQM8B,EAC9B,CRPqB,CAAC,GQOF,EACpB,GRR8B,CAAC,KCUO,IOFhB,ARRkB,EQQlB,ARRoB,CAC3C,GOTH,CAAA,CAAA,CJAA,CAAA,CAAA;AGyIE,AHzIgF,AIKlF,APKA,CAAC,CEaC,ECpBF,AKa0B,APEnB,EHOD,CQgHJ,CAAA,AGhI+B,ARSpB,CCKJ,EJEC,CAAC,CGPO,KKuHhB,CHtIF,EGsIE,CRhHmB,CAAC,IAAI,CAAC,EAAE,CQgH3B,ARhH4B;AQX9B,ACRA,AHPA,AJaA,AYXA,ETSE,ADcE,EIVE,ARYF,AUlBF,ADFI,AHPN,AJaM,ACOF,AWlBJ,CdyBK,CAAC,EUlBJ,APWQ,COXR,CCC+B,IDD1B,GAAiB,CRIJ,CQJM,APWL,CKLC,CFftB,AJauB,CCOC,CKLC,CCRC,AHP1B,GDYI,AILyB,ANaA,AWlB7B,CXkB8B,EDPxB,AYXN,ENaM,IHHiC,AILjC,EJMF,CCbJ,CAAA,AHoB0C,CAAC,GEPf,AHAR,CYXpB,CTYI,ASZJ,CRFA,AJa4B,CMEN,AFftB,CEe0B,EHDR,EACd,ASbJ,CNa2C,AMb3C,ENa6C,ACRnB,CAAI,CAAkB,EAAE,ANaY,CMbM,ANaL,EELxC,AIRyD,EJS5E,KGDiE,EAAI,AHCrD,EAAA,4BChBpB,CAAA,CAAA,KQEA,CAAA,CAAA;ARQA,AMXA,AEIA,ENaE,ACRA,APMA,AEWE,CACC,CJGD,AKbgB,AKNlB,AJAF,AMXA,ATsBI,AWlBJ,ELKM,ETqBE,AUnBN,APWM,CKLC,ARaA,AUnBP,ARIO,AEYE,CIVD,AJUE,CKlBD,CEEsB,EFFnB,CAAC,APMA,CAAC,CFeC,AGRA,AWlBjB,Gd0BoB,AIHP,AUvBb,EJOe,APWO,CGXtB,CEMwB,CAAC,ARaA,AUnBC,CAAC,AJA3B,AMXA,CR2BoB,AUvBpB,CZW4B,AYX5B,CFJA,AVe6B,AEYL,IIVS,ALKA,CKLC,CLKC,CStBnC,AVeoC,CUfpC,AVeqC,EMEE,CAAC,CFNxC,CAAA,EEM4C,CAAC,GNFG,CIJhD,AJIiD,CIJjD,IQPA,CAAA,qBFJA,CAAA,6BNWA,CAAA,CAAA;AEOA,AFPsF,AMNtF,AVWA,AYTA,CNWC,ANFA,CFeC,AStBa,EJFb,AKaE,AJPJ,AMRA,ARuBM,AUrBN,EXgBM,EEhBJ,AKaM,ANQI,CCrBV,AKaO,EPGE,CQZsB,ALEjC,AHUY,GEhBJ,CDqBY,ECrBQ,CDqBL,EDLF,CEhBW,AFgBV,COHC,AEfvB,GFe0B,AEf1B,ARuB8B,CAAC,AUrB/B,CXgB4B,CAAC,CWhB7B,KVqBuC,CAAC,CDLH,ACKI,AUrBzC,CXgBsC,ACKwB,AUrB9D,CTAgC,CAAA,AKaQ,CEfxC,CAAA,GHKsB,CAAC,CJHwB,EAAE,AOFjD,CAAA,aEEA,CAAA,uCFFA,CAAA,CAAA;AJeA,AIdA,AVYA,AYTA,EdsBG,AMPD,EEJI,AHZJ,AKaE,ADXmB,AGJvB,AVYM,AEWA,CDLD,GEhBH,AKaM,CLbN,AKaO,AIZQ,CHEgB,CRatB,ACKE,GCrBN,EGYW,CHZA,CAAC,CGYE,AJSA,CEJjB,AFIkB,CQvBtB,EFeuB,ARHE,CUZzB,EFe0B,ARHE,CEWC,AUpBZ,CNWX,AMXgC,CRgBR,EAC1B,IJRE,IIQsB,AMpB5B,CJckB,AECsB,AEfxC,CJcsB,AFOlB,GQlBsE,CNWnC,EAAE,AIdzC,CAAA,KJcuD,CNF9B,CMEkC,ANF9B,CAAe,CISJ,CJTQ,CISR,wCMrBxC,CAAA,CAAA;AAIA,EJWE,ACXqB,APSrB,AEWE,AUrBsE,CVqBrE,CP3BL,AG4BG,AKtBD,AKaE,AJKoC,AMjBxC,EVSQ,ACMF,EEhBJ,AKaM,CFDC,AHZP,AKaO,CCXI,ATQD,CCMD,CAAC,CKJC,ANFE,CMED,AGVG,KdRoB,AQMzB,CGYQ,CIXpB,AVSuB,ACMF,CEhBE,AKaD,ARHE,ACMF,CEhBE,CGYA,AIXxB,CFYyB,APGA,CAAC,IKJI,ILII,CDNG,ACMF,CDNG,EQGA,CEZtC,CAAA,CVS2C,CAAC,KUT5C,CAAA,kCAAA,CAAA,CAAA;AJYA,AIXA,CJWC,CXnBoC,AKiBnC,AEWE,AUtBsE,EdsBvE,AKrBD,AKaE,ADbF,AHmBE,AMlBJ,EVSM,CAAC,CGVL,AKaM,AJME,CDnBR,CMEQ,CXyBR,CEjBU,CQGC,AJME,AJTF,CUTb,CFYe,CLbN,ACmBS,CMlBlB,EPDoB,AKaD,CLbE,AKaD,ERHE,GQGG,AJME,AJTF,CISG,CKjBD,CDWC,ECXE,CTQC,CUT/B,CFYiC,AEZjC,ENkBqC,CAAC,IMlBtC,CAAA,GDC4C,GAAG,IAAI,CAAC,GLiBd,CGnBb,AHmBa,EKjBoB,CAAC,CCD3D,CAAA,CDC8D,ACD9D,CDC+D,ALiBR,CAAC,KAAK,CKjBS,ALiBiB,CKjBf;AHgItE,AI7HF,EfZqC,AKkBnC,AEUE,CACC,CJMH,AKnBE,AKKA,AJOA,AMhBJ,AEN0E,ELCjD,APWnB,AEWE,CI4GN,ANvHK,AEWE,CI4GP,AHzHM,AKKA,AJOA,CDZC,AKKA,AJOA,CKlBC,ILkBI,GAAG,AFCP,CCbQ,CHEC,CMuHjB,ARtGQ,AEjBU,CFiBK,AKnBJ,CKKC,CFoHpB,ARtGuB,CYvBzB,ARiBiB,CMRQ,CCXC,ALkBA,AFCL,CEDM,AMhB3B,EDF6B,CNMC,CHEC,EAAE,CIUC,AMhBlC,AVMkC,CMuHhC,AI7HF,AVMmC,EIUE,CIPC,AJOA,CJVC,CAAC,CIUC,CIPC,ACXA,GAAG,CDWC,CAAC,ECXE,ALkBA,CKlBC,ALkBA,aKlBa,MDWM,AJOA,CAAC,AMhBtE,CFSuE,AETvE,INgB2E,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,KAAK;AEPvG,AIRA,ATYA,CAAC,CNzBoC,AasBnC,ARHA,EMEI,AHJF,ACYA,AMhBJ,ARiBM,EJMF,AEjBE,AYboE,CZanE,CGFC,AIVM,AHsBN,AFCI,CEDH,CNOD,AW1BuD,CX0BtD,AS7BQ,CLuBD,CEDH,CDZC,CLmBD,AINM,CJML,AKnBE,AMLR,ALiBQ,AJVA,CFiBD,AEjBE,CMEG,AReJ,CYvBhB,CPIoB,AHEA,CMEG,AHJF,AHEA,CUNrB,ARiB0B,CAAC,EEDF,CNOD,AMPE,CNOD,AKnBE,EOJ3B,CJQM,AResB,AKnBE,AOJ9B,CZuB6B,EWxBJ,CPkBc,CEDJ,AFCK,CCbJ,ACYA,CKjBP,ETOU,AEWK,CFXJ,CEWM,GIT1B,CAAI,IAAiB,EAAE,AGTA,ILiBP,AMhBpC,CNgBoC,AMhBpC,ONgBqD,CERsB,AFQrB,EERyB,EFQrB,CAA0B;AMfpF,ATaA,Aa9BA,ERyBE,AEAC,ARDD,ELrBmC,AGqCnC,AKnBE,ACYA,AMhBJ,ARiBM,AYlCN,EPWI,APaI,EGHA,ACYA,AFCI,AUzB8D,CNgBjE,AFQA,CFCK,CKvBL,CEIkC,CNM9B,ACYA,AJTE,AEUE,ECbF,AIVF,CAAC,AHsBE,AJTE,CObH,EJUI,CAAC,AIVF,AGMlB,CHNmB,ALuBM,CITH,AJSI,CITH,AIRvB,CHNsB,CJUG,AIVF,AHsBE,CAAC,AUjC1B,CRyB2B,CAAC,AHJA,CIVD,APaT,AEUe,AYlCjC,CPW4B,APaV,AEUgB,GCbD,ECYE,CAAC,AUjCpC,CAAA,CRyB6B,AIR7B,CAAA,EJQgC,CJSc,CITV,ANDL,AEUgB,GQjB/C,CAAA,KRiBwD,CAAE,CAAC,CEDvB,CAAA,IJTK,CAAC,CAAC,CISU,CAAC,EJTP,EISW,CAA0B,UJT3B,AcxBzD,CJiBA,AIjBA,CJiBA,CAAA;AACA,ATaa,Aa7Bb,EduBE,EMCE,AXvBiC,AGuCnC,AKpBE,AKGD,AJSC,AMhBJ,ARiBM,AYjCN,EduBQ,CCMK,CKLH,AHJF,ACYA,AHHK,ACID,CITD,AFQF,CQxBD,ENgBM,AGX6B,ATU7B,EISA,CJTG,CMCC,CAAC,AFQF,CDZC,EAAE,AOJpB,AERkB,CVyBO,CDJE,CKLF,AIRzB,AERqB,CNgBK,AHJF,ADaI,CCbH,AFSK,CGGJ,CERG,AFQF,AUhC3B,CRwB8B,ANDb,CAAA,CcvBjB,CRwBiC,CAAC,AJSE,CAAC,ECbF,CCYC,CAAC,AHHF,Aa7BnC,CXoBsC,AOJtC,AIhBA,CJgBA,CRiB4C,CAAC,CFVf,CAAC,EMCgB,CAAC,AIRhD,CAAA,CPIgD,ESZA,EAAE,CVyBO,CAAC,EEDrB,CAAA,EJTU,CAAoB,IISb,CAAC,CFCe,CAAE,AYjCxE,CZiCyE,AYjCzE,EVgC4D,CAA0B,SMhBtF,CAAA,CAAA;AAEA,AIjBA,EnBAqC,AGuCnC,AS9BC,APcD,ACMA,EKLE,AHJA,AKED,AJUC,AFCE,AYjCN,Eb6BQ,EETA,ACYA,AJTA,ACME,ACIE,CEDH,AJTA,CSXkC,AGJnC,CNgBG,AEAT,APKW,CKLD,CFQC,EDZE,CGIC,AFQA,CERC,AHJA,CSZD,CXqBK,CKLD,ALKE,CKLD,AHJA,ASZF,CTYG,ADaI,AYjC1B,GVgCyB,AJTA,AEUI,AYjC7B,CVgC0B,AJTA,CQCpB,ELJuB,ASZF,CAAC,ETYI,AWpBhC,CduBiC,AEUI,AYjCrC,Cb6BoC,ACIE,CEDH,AJTA,ACME,CGGD,GDZG,EDaM,CAAC,CUzBL,CAAC,KAAK,CAAC,GXqBO,CAAE,ACIC,CEDtB,AHF/B,ACGsD,CEDvB,CUhCpC,CAAA,KVgCqD,AHFxC,CGEyC,AHFxC,CAAC,CAAgB,EGE2B,AFCc,CEDY,AFCV,CAAC;AQf3E,AIjBA,ERwBE,AXzBmC,AQqBnC,AFS6B,CKL5B,CAAC,ARcF,AS9BC,AHwBC,AJV+B,AEW7B,AYjCN,ENwBI,EJQI,AFCI,CEDH,CKrBkC,AGHzC,CZcuC,EQE9B,CJQG,EFCM,CMTL,AJQE,CJVwB,CAAA,AEWlB,CUzBX,CAAC,CERb,GAAA,CVgC0B,CAAC,AFCI,CAAC,GMTH,CACvB,AIjBkB,AERxB,CdsBuD,AYd9B,AERzB,CdsBwD,CAAC,AEWlB,CMR7B,AJO0B,AJVsB,AEWlB,CMR7B,AJO0B,IQxBJ,CAAC,OVyBoB,CAAC,CMR9B,EACnB,GJM+B,CIN3B,AJM2B,AUhCrC,CN0BW,AM1BX,IZiCmE,CAAC,CEDd,CAAC,KAAK,CAAqB,CINxD,EACnB,IAAI,ANMyE,CAAE,CAAC,eMN5E,CAAA,OAAe,CAAC,IAAI,CAAC,aAAa,CAAC,EACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC;AFHtB,AIPA,AIjBA,CRwBC,CHLE,AIZA,APcuD,ELvBrB,AGuCnC,AMLE,AMfE,AVIqD,ACSpD,ACID,AYlCN,IN2BsB,AJKd,AHFK,CGEJ,CKrBH,ARmBS,AWrBP,Cd6BN,AIJW,GEFC,CILY,CAAC,CChBf,ALqBK,MMfQ,AERJ,ERuBI,CAAC,AMfE,AERJ,Id6BX,CMNkB,AQvBF,AET7B,CFS8B,Cd6BK,AW3BP,CKX5B,ChBsCmC,AYrB7B,CER4B,CAAC,IETnC,CAAA,WFSmD,CFQ1B,AER2B,CFQvB,IAAe,CERc,CFQV,CERY,CAAC,CACxD,MAAM,CAAC,IEVZ,CAAA,KFUa,GAAG,EAAE,CAAC;AN8HjB,AV3IF,AkBKA,EJgBE,AVIA,EJzBF,ADCqC,AQqBlC,AIZA,AH0BC,AHFA,Aa7BE,EhBqCF,AUZuB,AETnB,ATaF,ACIE,CIqGN,ALzGK,CKyGL,AE7G0B,AChBA,ALsBpB,AJXA,AEaE,AYjCA,CV+BD,AJXA,CFiBD,AUXF,ANOE,CPpCN,AGwCO,AgBrCI,CZiCH,AUzBS,EJkBT,ARNI,CFiBD,AUXF,ARNI,CFiBD,GAAG,AMNE,AMfE,AERG,Cd6BN,AgBrCZ,ClBLN,CU2IE,AFvGoB,AMfE,AERG,Cd6BN,AYpBjB,ATYmB,CLlCvB,ADEO,AMgCiB,Aa7Bd,CRsIR,AM9H4B,CRuBJ,AJXA,AYZK,CjBXb,ASkCS,AQvBK,CJkBR,Cb7BN,Aa8Bb,ARPwB,GFiBC,Cc7BQ,CZYJ,CIWC,CAAC,AHFA,EAAE,CKyGpC,AV3IF,CAAA,EcsBI,CAAA,ENcyC,ERpC7C,AQoC+C,CRpC/C,EcsBqB,CAAC,INciC,AMd7B,ENc+B,AMbrD,gBNaqE,CAAC,EMbtE,CAAA,OdvBJ,AcuBqB,CdvBrB,AcuBsB,CdvBtB,IcuB2B,EACvB,mBAAA,CAAA,OAAiB,CAAC,IAAI,EACtB,mBAAA,CAAA,OAAiB,CAAC,KAAK,EACvB,mBAAA,CAAA,OAAiB,CAAC,IAAI,EACtB,mBAAA,CAAA,OAAiB,CAAC,KAAK,CACxB;AJCH,AVtBA,EWGG,AH2BD,AMPA,AVJA,AcrBQ,ERwBJ,AVtBA,AEoCJ,AKrBC,AKWD,Eb9BE,Ae2BI,ATI8B,ACK9B,EFbA,CAAC,AcrBe,CLSI,APyBhB,AU1B0B,CTWpC,COMY,ARSN,CPpCG,AM+BiC,AWrBJ,ChBNxB,AImBF,AYb2B,CFiBE,AVJ5B,AYb2B,CV0B9B,CNhCO,CAAC,AkBFI,CAAA,ERwBD,GAAG,AQxBF,CdqBC,ACQ+B,CAAC,Aa7BjC,EJyBgC,AVJ5B,ACQ+B,CSJF,ATIG,EEVlD,AWnBc,CJyBoC,AIzBpC,CRwBlB,AICuD,AVJ5B,CcrBT,KAAA,CAAA,GJyBsC,CAAC,EAAI,IJD5C,CAAI,KAAoB,EAAE,MAAc,EAAI,gBQxB3C,InBFH,GAAG,KAAK,CAAC;AC0G5B,EU/EA,AEGC,ADrBD,AHyBC,AJVD,ELvBA,AGyCA,AYdE,ATGwD,Aa7BpC,ERyBlB,AHLF,AFSyD,ACMrD,CNqEN,CAAA,AIlFM,COfC,APeA,CSbmB,AGCjB,CFgBP,AEhBQ,CNeA,CHLD,CIbG,APeA,AYZC,CZYA,AYZC,ENeC,AHLF,AOMX,Cd8EF,AOpFc,AOMZ,ERSkB,CNqEpB,AIlFmB,CEab,EQTJ,AVJoB,CUIpB,CAAA,CPNqB,AOMrB,CPLG,COME,Ed6EP,AOnFQ,CAAC,CHCsB,GEaX,GIVL,CAAA,EHJN,CAAC,OGIe,CIElB,CJFoB,AIEpB,OJF2B,IIEhB,CJFqB,CIErB;AdvBpB,AWIA,CAAC,CDkBC,AX3BC,AGyCD,AEhBA,EJpBI,AYwBH,AJIA,AHFC,Aa9BoB,EJ4BlB,AVJA,ACMA,ACME,CFZD,ACMA,CETK,AMZgB,AGCZ,CNgBP,CIEC,EAAJ,EJFQ,CAAC,AVtBE,AOiBD,CAAC,AOOP,CPPQ,CPjBE,AIoBF,CAAC,AEYE,CNhCC,CUsBD,AJUb,CIVc,AHLC,CFSA,CAAC,CDNC,CAAC,MMEJ,CAAC,CJUF,EDNe,EAAE;AL2EpC,AWDA,AM3GF,Eb4BE,EMCqB,AX3BpB,AGyCD,AUZC,AJIA,ASnCH,EVwBuB,AOQjB,AVJA,ACKgC,ACO9B,AYrCgB,ClByGtB,AWDA,AP/EK,CJgFL,AOpFsB,AImFtB,CJlFK,CMXD,AGDU,CNgBW,AEIzB,AJaA,EHb0C,CSD9B,CPPD,CAAC,AOOE,ARQE,AU3BA,CFmBD,AEnBE,CZeD,AEYE,CNoElB,AIhFiB,CYfG,CCbtB,CjB4GE,CU/EqC,CAAC,AO7BxC,CP6ByC,ALIe,CER1C,AHGY,ACK+B,CKJd,AHJ5B,AHGY,CO+EzB,AN1EyD,CAAC,EM0E1D,AM3GF,CT8CW,AFNuB,AWxClC,CP6BiD,AV+E/C,AgB/FiC,CNgBe,CJWb,CAAC,IO1BxB,KDmBU,MD0EtB,aM3GF,CAAA,KJc4C,CACpC,YAAY,EACZ,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,iBAAiB,CAClB;AbXP,AWIA,AMZA,EP4BkD,ANAhD,EMAiD,AVpB7C,ADPH,AGyCD,AS9BI,ANoBsD,AYhC5D,ELiCI,AJaA,AMdE,ATAuD,ACQrD,EChBO,AMLR,AKjBiB,Cd0Bf,CQKD,Cb9BN,AGwCA,AYXS,CEpBwB,CRkCxB,AMdE,AVJA,CImBP,AFPU,CNhCC,AOgBE,CAAC,ADgBZ,ENhCwB,AQuCtB,CDvBa,ACuBZ,CDvBa,EIZA,CHmCT,CT5CR,CYSoB,AHoCrB,CIfkB,Cb9BN,EAAE,Aa8Be,AJezB,CIf0B,AJezB,CShDX,ClBG8B,CGwCd,CHxCc,AGwCC,AS/BzB,AMZN,CTgDgB,CNLe,CMMzB,IAAI,ASjDV,CTiDW,ASjDX,ITiDe,EACT,IGtCkB,AHsCd,CGtCkB,AHsCjB,KGtC8C,AHsCzC,EGtC2C,AHuCrD,IAAI,CAAC,IAAI,CACV,CSpDL,CAAA,CNYgF,EAAI;ADiBpF,ANAA,Aa5BA,CP4BC,ANAA,CJpBC,AWIA,EHwCA,AMrBY,ATCV,AYhCJ,CH+Bc,ARSP,CNhCD,ADLF,AGwCA,AKpBoB,AKSY,ADpB9B,AGmBQ,ATCR,CAAC,CLxBC,AOeiB,ERpBjB,AGwCA,AWzBD,AKjBiB,CnBEf,AGwCA,AS/BE,CAAC,AKDuB,EhBHrB,ADLF,CAAC,GAAG,AYSE,CAAC,CZTD,CGwCC,CAAC,AS/BE,AMZtB,ClBGqB,AGwCA,AS/BE,ANoBA,CHWD,AGXE,CYhCxB,ClBGwB,IAAI,CAAC,AM6BE,CHWD,Ae3C9B,Cf2C+B,AGXE,AYhCjC,ClBGgC,AGwCA,CHxCC,GAAG,AGwCA,CHxCC,AGwCA,CHxCC,AGwCA,CAAC,IS/BhB,CAAA,GCqBH,IAAI,AKjCxB,CLiCyB,AKjCzB,GNYkC,CAAC,EAAE,OCqBC;AFuGpC,AN1GF,Aa7BA,EjBQE,AQ2CC,AMnBD,ARQE,CQRD,ARQE,CPrCH,AGwCA,AKpBA,AIXE,AGoBA,AVHE,AEWA,AWxCN,EjBQM,AKuB2B,CKwG/B,CAAA,AV/HM,AYwB8B,ADpB5B,CXJD,CAAC,AaSH,AGP4B,EETjC,Cb8BqC,GMnBrB,APiBA,GOjBA,APiBG,CCEyB,CAAC,EAAE,EKwG/C,AC3HgB,ANmBiC,CMnBjC,CNmBmC,CKwGnD,AN1GI,ACEgD,EY/BtD,ENYkB,CAAA,AMZlB,CNYkB,CAAA,EACT,GPgBS,Aa7BlB,Cb6BsB,Aa7BtB,CNac,EAAA,APgB8B,CM0G1C,CN1G4C,EAAkB,EAAI,mBa7BpE,CAAA;AP6BA,AJYA,AWvCA,CXuCC,CNhCC,ADNC,AQoBA,AOWD,AVLkE,EMA9D,ARgBJ,AMMC,AHpBmD,AY7BtD,EL8BsC,ADlBhC,ANiBiD,EQdhD,CbRE,AcyBA,CEvBL,ChBFO,AWKA,COZT,CPYW,AGoBA,KEvBD,CAAC,CNkBS,GAAG,IO3BzB,CDSsB,EFuBT,AGhCb,ACAE,CJgCW,AIhCX,CR2BI,MIKsB,CAAC,MAAM,AGhCnC,ACAgB,CJgCoB,AGhCpC,CCAkB,CR2BI,CAAI,AMlBU,CAAC,GCTrC,CAAA,CP2ByC,EAAE,MAAyB,EAAI,UMlBb,kCCT3D,CAAA,CAAA;AHiCA,ARmEE,AWjGF,CH8BC,CJNuE,ARgBtE,AEfA,ACCqD,ELtB1C,ADNV,AQoBA,AITuB,AHqCvB,AS9CG,CNSoB,CACrB,APeG,CEwEN,CN7Fe,AYuBb,ANsEF,EN7FiB,AaQZ,ATaK,AYnB+C,ChBFvC,AQ4ClB,CUjDA,Cd0Ba,QAAQ,CAAC,IazBI,CXiG1B,EEhDE,ASjD2B,CXiG7B,KFxEmC,CAAC,EIwBR,ASjDxB,ETkDF,CJzBuC,CAAC,MIyBhB,CF+C1B,CE9CE,UIxBoC,AK3BZ,CTmDO,ASnDH,ETmDG,ESnD+B,EAAE,UAA4B,EAAa;AHgC7G,ARMA,EIbE,ANCA,ACHA,AYtBA,EjBGoB,ADNnB,AG0CD,AKtBC,AINC,AL0BE,EEeF,AJ3BE,CJtBmB,AIsBlB,EJtBoB,AiBHlB,CjBGmB,AYuBY,ACfjC,ALyCG,AQ9CN,CjBPF,AQoBA,AIRS,CPcC,Ac3BV,Cd2BW,AazBA,CL0BE,AK1BD,CL0BE,EIpBN,CCNQ,ADMP,CLKQ,AMXA,CXqCG,EEeA,AJ3BA,CEYG,EEeS,AJ3BT,IazBN,ClBDN,AkBCO,ClBDW,AK0BA,CEYzB,CPtCyB,EMuBZ,KAAK,CAAC,CEHJ,GFGQ,CAAC,EAAE,ACeV,CDfW,ACeP,QDfe,CAAC,MCeS,EAAI,4BDfX;ASU5C,EJPE,ANEA,AEWA,ENnC4B,AEoC5B,AYPI,ATVsC,AYtBxB,EPyBZ,AX1BuB,AQqB3B,AHOI,CEWD,CO3BA,ALyC6B,AQ9CzB,ChBHwB,CYwB7B,CZxB+B,AEqCnC,AIFW,AWtCW,CToDgB,ASpDf,ACArB,CXoBO,AHOI,CQAH,AJyB8B,CAAC,CJzBzB,AEWA,CClBH,AKOA,AK3Be,CVoBd,CWpBN,CN2BQ,ANWI,CMXH,CAAC,CFFK,AEEJ,CAAC,ARAI,CAAC,CMFU,AOzBE,CVoBd,CGKc,AHJhC,MAAM,CAAC,ADiBuB,CJElB,CAAe,AIFK,CFXC,CFaN,AYRO,AVLA,Ec3B/B,CJgCkC,AIhClC,GXqBI,CAAC,CHMkC,CAAC,CL3BzB,AmBAR,CnBAS,CegCpB,AIhCa,mCJgCsB,CACvC,WAAyB,EACzB,YAA6B,EACI;EJVI,AVtBD,AWWpC,AGsBA,AVRA,Aa5BqC,CjBGC,CMoCpC,AWvCoC,EfyCpC,EHzCsB,AQqBX,AC+B8B,AFbnC,AWvCkC,CNcnC,APcA,CFaC,AUbJ,ACjBC,ATiBG,AYxB2B,AEJlB,CVoD6B,AQhDV,EdqCzB,AMWqC,AQhDV,CJwB5B,ADdE,CJOK,CLoBH,AKpBI,CAAC,CKOL,AK5BsC,CAAC,CfyCnC,AIFE,CJED,AUbF,CAAC,ARAE,CQAD,ARAE,AEWE,AWvCkC,CL4BrC,AK5BsC,CVqB/B,AKON,ERAI,GGPO,CLoBH,CAAC,CAAC,CAAC,AezC0B,EAAE,EXuCtB,CAAC,GJEC,AEbP,CFaQ,CIFG,CFXR,AEWS,IClBb,CAAA,OAAiB,CAAC,IHOA,CGPK;AINzD,CAAC,CXXC,AciCA,AVRA,ACDA,EKFK,AJcH,AWxC0D,ElBApC,AG0CtB,AKrBqD,AC+BN,AMf3C,CNe6C,CE1BxC,AHL6C,ADmBhD,CClBH,AHOE,ACDA,CHcC,AUbJ,AClBC,ATkBG,ACDA,AWxB8B,CCJ0B,CjBItD,AOkBF,AFME,ACYE,AYxCK,CR0BD,AHJP,AUtByD,CjBItD,AKwBA,AY5BuD,CjBItD,AEsCA,AEbA,AEWE,CNpCD,AIyBA,ACDA,CSSG,ATTF,CLxBC,AEsCA,CFtCC,CciCG,AGrCqD,CjBItD,AEsCA,AEbA,CJzBC,AEsCA,CKpBX,AUtBmE,CjBItD,AOkBZ,AHOY,Aa7BuD,CjBItD,AKwBA,COCH,APDI,CLxBC,AKwBA,CLxBC,AKwBA,ACYX,CNpCY,AIyBA,ACDA,ACYZ,CMXS,CVaK,AYLE,CZKD,AYLE,EFRJ,CAAC,GEQS,CAAC,GZKR,AIFH,CJEI,MUbW,AEQJ,CFRK,AEQJ,2BFR+B,CAAC,GAAG,EAAE,IAAI,CAAC,uCNYb,KAAK,gCAAoB,KAAK,6EAC1C,YAAY,gCAEjE;AKuDJ,ANtEF,CAAC,CLxBC,AIwB2B,Aa7BkD,EP2B3E,AIUsC,ARQtC,AW7C4E,ETqD5E,CG8CF,CDxEQ,AX3BN,AG0C8B,AKpBtB,AI6EV,CDxES,CVtBD,AaMH,AL0CC,AQjDgC,CFiCM,CJVhC,AVtBF,AcgCmC,ARQnC,AY7CO,ClBKN,AcgCmC,ARQnC,CNxCC,CEqCyB,AKpBvB,CLoBwB,AKpBvB,CLoBwB,AKpBvB,CGKE,CAAC,ERewB,CKpBtB,CGKE,CAAC,CF0BH,CNX2B,ASyDhD,AG9D2D,CZKV,AIGxB,CJHyB,AMWd,AFRV,CKsD1B,AH9CqC,CAAC,CMhB0B,CZKV,AMWd,AMhByB,CNgBxB,CE1BjB,CAAC,AF0BkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EJvBnC,EOqEhB,ELtD+C,CAAE,CAAC,GFfjC,ML9BS,EO6CmC,CAAC,IAAI,CAAC;AK5BrE,AMhBA,CAAC,CjBKC,Ac+BiE,EAAC,EJVzC,ARe6B,AKpBjC,AKQlB,AJyBD,AJzBiB,CJxBd,CEoCkD,AKpBjC,AMXjB,AGPiC,ChBE/B,AOiBF,CPjBG,ADNkB,AK8BH,EAAE,Ac7BvB,CR0B2B,CAAC,CAAC,AHJpB,CAAC,EHOmB,Cc7BvB,CR0B4B,KAAK,CHJ7B,CAAC,GGIiC,WQ1BtC,CAAA,QAAQ,EAAE;APiBpB,AL6BA,AW5CA,CX4CC,CNxCC,Ac+BA,EJX8C,ACT1C,AMfA,EPwB2C,ARgB7C,AMYA,AMjBI,AVR2B,EJvB3B,AOgBO,AKOV,AI1BmC,EhBG9B,AEoCF,AWhCD,AKVa,ClBMT,AEoCF,CH3CO,CAAC,CK8B0B,CGPxB,CAAC,AHOyB,CUQ1B,EPfI,CAAC,AOeF,CZKH,AexCI,CfwCH,CAAC,ASzBI,CTyBH,AexCI,ENeE,KGoBK,CZKH,AYLI,CZKH,AexCzB,CfwC0B,CSzB1B,GGoBkC,CAAC,CZKH,CAAC,KAAK,EAAE,CAAC,AMavB,AMlBiB,CZKO,AYLN,AGnCnB,GTqDK,ASrDG,CNeN,AHsCI,CGtCA,KAAmB,EAAE,CHsCZ,EAAE,SGtCuC,EAAqB;AL+BpG,ENzCE,AWWA,AMfA,EPwBE,ARgBF,AYNwC,AVRM,AEmB1C,CFnB4C,CGP1B,AKOnB,ADXG,APW2C,EMF3C,AVpBA,AOeiB,ACiCe,AJ1BY,CMF3C,CVpBC,AaGH,AGPiC,CNwB7B,AIUmC,CftC3B,AesC4B,AIrC3B,CnBDA,AesC4B,Cd9BlC,AWWE,APW0C,GOXtB,IAAI,AL8BjB,GAAG,EQXmC,Kd9B/C,Ac8BoD,Cd9BpD,Ac8BqD,CRW7D,KK9BkC,CXXX,AWWW,EXXT,KWWwB,APWO,EOXL,APWO,EAAC,AEmB1C,CAAI,eAAmC,EAAI;ENxChE,AWWA,AGkBiE,ARYjE,AW7CA,EfyCA,AKtBA,AOckE,AVRH,EMD3D,AF2BkC,ASnDhC,ADDgC,CLgBjC,CCUF,ADVG,EDSI,AX5BN,AcUC,CbFI,CkBRS,ClBQP,CUoBG,AX5BN,CAAC,AYmBI,CAAC,CDSU,AJqBT,CPjDH,AOiDI,CPjDH,CAAC,AkBIM,ElBJJ,CAAC,AkBIM,ClBJL,COiDK,CK9BT,AL8BU,IK9BN,ML8BO,cAAc,AW7ChB,CAAA,CX6CoB,gBW7CH,EAAE;CjBK3C,CEoCC,AKtBC,AOeD,AVT+D,AaxB/D,ENckB,AL+BhB,AU/CoC,EJ0BnC,AESG,AGjCA,EPwBA,AGnBD,AL6CH,GGpCoB,CDUZ,AQ5BR,MZiDc,CK/Bc,AGmBX,ARad,AYlDG,CPkBuB,EGmBT,AGjCA,EPwBP,CJsBJ,AW9Cc,CX8Cb,GItBQ,ACVoB,CAAC,GGmBR,CHnBY,AGmBX,CHnBY,CLgClC,IQb4B,CHnBY,AGmBX,AIrCjC,CPkB6C,AOlB7C,CDIiB,CAAA,CPwBQ,CJsBX,GYlDP,EJqC0B,AIrCxB,CJqCyB,QNiBF,GSlDI,EAAE;AjB8F9C,EWhFqD,AMZrD,ADJsC,Ed0CtC,AKtBC,AIJqD,AGmBZ,AVT1C,EL5BG,Aa6BD,ANqBoB,CNgDtB,CUrEM,AVqEN,AazFK,EDoBC,AJyBkC,AUtDvB,CN6BV,AEQuC,CAAC,CJRpC,AIQqC,ARatB,CEIb,CEzBA,IVqEb,AQ5CkB,CEzBS,EVqE3B,CMhDoC,CMrBhB,ANqBiB,EQbwB,CFRtC,IEQ2C,CAAC,Cd6DnE,CMhD+C,SMrBR,aRD0B;AJlBnE,AgBRwC,ELkBtC,AGiBmE,AG9BnE,EfqCA,AKtBC,AOemE,ARarB,EMpB7C,ARF+D,AEsBjB,AW3C5C,CX4CC,CIrBC,AX9BH,EcSE,AL8CD,AJ3BO,CFiBX,AKrBA,AHIY,Cc5BK,CN8BR,CNqBG,EIrBE,AJqBA,CACT,CItBW,IFyBA,AShDI,CTgDH,AShDI,CX6CT,CAAC,EJPL,AKrBJ,AC+BiB,CNVc,CUfV,AKvBE,CfsCQ,CMUV,GShDO,CX6ClB,AW7CmB,CTgDH,CEzBd,AFyBe,AShDI,CPuBnB,MFyBsB,CEzBL,AFyBM,AFHf,CItBU,CJsBN,EEGe,EEzBJ;AVnBzC,AgBjBA,EL2BE,AGkBA,Ed5BI,AYoBJ,AKvBE,ElBRC,AG8CD,AKrBA,AMhBG,AToBH,AEwBI,CU3DR,CNqCQ,AMrCR,EdoDQ,AMUF,AFHQ,CJPL,CAAC,AgB9CS,CXyBR,AHIA,CMEG,AVpBE,AEmCJ,AEjBA,AEwBM,EItBF,CAAC,AVpBE,AOcJ,AD4BM,IJPF,CMUD,CAAC,EJ3BI,CJlBjB,AEmCkB,AMUF,AJ1BhB,AYpCN,GAAA,CR8D0B,AFHL,CAAA,CC5BS,CACxB,EC8ByB,CR7Cf,AQ6CgB,CR7CN,AOehB,CAAC,CHIL,CJnB+B,AImB/B,GI0BiC,CAAC,AFHN,GC3Bd,AC8BuB,AQ9D3C,CTgCqB,GAAG,CAAC,CHIN,SGJM,CAAC,iBHIY,CAAC,CAAC,IAAI,gBAAK,CAAC,CAAC,IAAI,YEwBO,GFxBK,CAC9D,MEuBmE,CAAC,aAAa,8BAAkB,UAAU,CAAC,cAAc,0BAAc,UAAU,CAAC,EAAE,wIAEnG,UAAU,CAAC,IAAI,wCAE9D;AUlDV,EhBGqC,AYoBlC,ADTD,AGkBA,ED/BK,AGDD,EduCF,ASzBI,AGkBA,ARmBA,EI3BA,AXhCH,AQ0BqB,CPfe,CEoCjC,AMUF,CNVG,AYPI,CZOH,AgB9CN,ER+BU,AIQc,ARmBZ,AUnDA,CTkBc,ADiCb,CI3BD,AHNe,CSlBZ,ChBGsB,CAAA,AWWpB,AOrBX,CR+BU,CReD,CSzBK,CTyBH,CFpCoB,CQ8CpB,CR9CoB,AgBHnC,ERiDkB,CFEO,CJZH,CFpCa,CAAA,CQ8CZ,CR9CY,AQ8CX,CNVG,CcvCjB,CNwBI,AMxBA,CNwBA,CVrBqB,CAAA,CkBV/B,CPqBkC,AOrBlC,CPqBmC,AKdb,CRiDQ,CEzBL,AFyBM,AQjDP,GRiDU,CAAC,CUxD3B,CPqBmC,COrBjC,CPqBmC,EKdC,EAAI,ERiDd,GAAG,CFES,CEFP,CGnCgB,AHmCf,CGnCgB,OLqCA,CAAC,QNhD5B,AMgDoC,EAAI,CAAC,WAAW,CAAC,IAAI,CAAC;EOlD5F,AFcL,APSC,AarBD,ADFA,EhBEuC,AYoBtC,AEUC,ARmBE,CAAC,CP5DF,AGiDD,AKvB2B,AIHvB,ALqCA,AUnDA,CNwBD,CHPyB,AOexB,EZQE,AKtBJ,AOcI,AIxCU,EVwDgC,CNRvC,CKtBH,ASlBM,EdwCA,AYRA,CEhCG,CLcC,CHkCqC,CNRrC,CAAC,AS1BE,CHkCqC,CQhDnC,CAAC,CdwCD,AS1BE,AHkCoC,CNRrC,AS1BE,CT0BD,CAAC,CS1BG,EJIrB,CAAA,ESlB0B,EdwCA,AS1Bb,CT0Bc,EKtBZ,CAAC,AIJC,AHkCmD,CAAC,CAAC,CAAC,CD9BnD,CAAC,MAAM,CAAC,EAChC,IAAI,CAAC,EILwB,GJKnB,EACV,AINkC,CAAC,GJM/B,CAAC,AINkC,CAAC,QAAQ,CJMjC,AINkC,EJOjD,IAAI,AIPmD,CJOlD,CIPoD,CAAC,EAAC,GJO/C,CACb;AMtBE,EFeL,ALqCA,AWjDA,ADFA,CVmDC,CP5DD,AQ+BA,AKDC,AEWC,AVVD,AE6BC,EI3BE,AVvBmC,AEuCrC,AS1BI,AMZA,ADFA,IdwCA,AMOyE,AMfvE,CZQD,AUjBP,ADTW,CHiCqE,AMftE,AIzCQ,CJyCP,CZQD,AS1BK,CKdA,CdwCH,ES1BO,AKdD,CLcE,GAAG,CDUF,ARgBF,AS1BK,CDUF,EMxBI,CAAC,CNwBD,ARgBF,AUjBf,CFCkB,EOtBI,CLqBD,CFCC,CAAC,AEDA,AKrBE,CDFC,CLcE,AKdD,ELcG,IKdG,CJuBM,EAAA,AIvBH,CAAC,CAAwB,GLcnB,AMZD,CNYG,AMXlD,MAAM,CAAC,UAAC,OAAO,EAAE,CAAC,EAAI;AJC3B,APgDA,CAAC,CP7DE,AQ+BA,AIND,APMC,AYpBD,EF+BE,AG7BE,EfqCF,AUlB8C,EZtBT,CWehC,EMZI,CCbO,ChBkDT,GAAG,CAAC,AYRE,EAAE,CAAC,CZQD,KAAK,CAAC,AerCI,CfqCH,AerCI,IfqCA,CerCK,CAAC,UAAC,UAAU,EAAE,CAAC,EAAI;AJAtD,APkDA,EI7BK,AMtBH,EjBZC,AGmDD,AKpBC,AMjBH,AFYI,AGiBA,AVZD,AEgCG,EM9BF,AKnBI,ADFF,ER+CF,ERjDqC,AYuBjC,ADPE,AGiBA,AG7BE,CLmBH,AKnBI,CNYD,AGiBA,AI1CR,GFWW,CF+BC,AG7BE,ADFF,CCEG,CJAnB,CIAqB,ACbX,CPyBU,GLqCK,EM9BF,AIrBE,CVmDG,AWjDA,ADFF,GJqBC,CKnBK,GH6BhB,CAAA,AE/BkB,CVmD5B,AUnD6B,GJqBC,GEUL,AI1CrB,CAAA,OAAO,EAAE,GZ8DM,CUnD8B,CAAC,CVmDvB,CUnDyB;ENWxD,AGHA,ATWC,AEiCD,CQpBC,Cf5CA,AGqDD,AKtBC,AIJC,AKdA,EJqBA,AJyBA,AFKI,AWjDA,GNYC,CMZG,ACdO,CnBCjB,AQ+BA,AINE,CXjBqC,CgBG5B,CVmDG,AUnDF,ELcL,CLqCU,AWjDA,CAAC,IXiDI,CAAC,AUnDF,CAAC,CJqBhB,CFXc,AEWb,ACdM,CHGQ,AJyCM,CIzCL,AJyCM,CC/BlB,CGVc,AXrBb,AiBWiB,CNUH,AEWb,AKnBmB,ADFF,ENUF,AXrBL,AagCT,CFXe,AHUW,AMbJ,CHGN,AXrBL,CQ+Be,AMbF,AP4CD,AWjDA,CLmBnB,AN8BoB,CP9DH,CiBWG,CjBXH,AiBWI,MCEQ,CAAC,CJKmB,EAAA,SP4CP,CAAC,AWjDA,CPQ7B,COR+B,OAAO,IAAI,GLmBpD,IAAI,CAAC,KAAK,AN8BuD,CAAC,CM9BvD,AN8BwD;EJXxF,AYPA,AVdA,AEgCwF,EIzCzD,AGHmC,AFQhE,AKdA,EjBXA,AQ+BA,AKEA,AKnBI,ET0CJ,CG/BK,APIA,CL7BD,AQ+BA,AHFE,CL7BD,AYyBL,CXjBM,AkBVS,CDgBJ,ClBdH,CAAC,AQ+BA,CAAC,ER/BE,CCQA,CDRE,AkBcI,CAAC,CViBH,CR/BC,AQ+BA,CPvBA,CAAC,CDRE,AQ+BA,AHFE,CGED,AHFE,CJrBF,CAAC,CDRE,CAAC,GAAG,CAAC,AK6BE,AafE,EbeA,CL7BD,CAAC,AkBcI,ClBdH,SQ+Bb,AHFiB,AafS,CViB1B,AUjB2B,WViBhB,CAAC,EAAE,AUjB2B,IViBvB,CAAC,OAAO,EAAE,CAAA,KAC5C;EOYP,CHlBC,CZzBD,AGiDA,AWjCkE,ATahE,AEgCG,AW/CD,CAAC,CLmBH,AJsBA,AMZI,AG7BA,EVkBF,AD6BO,ENtDa,CIsBtB,CGGM,AHHN,AEgCa,AYrET,KXwCO,AWxCF,CXwCG,AHHN,CAAC,IUcc,GPXD,AOWI,KPXC,MOWU,CAAC,GAAG,CAAC,QPXf,CAAA,COWe,CAAC,KPXC,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;AIN1E,CAAC,CDOC,AXjCC,AkBeC,ADFF,CCEG,CfkCH,AWpCQ,AC8BmC,ARmBzC,AW/CE,ELmBF,ARLS,EShBH,AL0CN,AFOI,COjDE,APiDD,CC9BiE,AKElE,ARLS,CFqBf,AYP+C,CdpCvB,AcoCwB,AVd/B,AcrCN,CJmDsC,CAAC,KVd1B,CAAC,KAAK,AEiCP,CM5BD,AN4BE,GM5BS,CAAC,ACrBL,GXqCf,AWrC6C,APiD5B,CJZF,CIYI,CJZJ,CWrCkC,GAAG,EAAE,GPiDlC,KAAK,EAAI,CC7BhB,KAAK,CP1BN,AO0BO,IP1BH,EO0BS;AI4DvC,ED3DA,AISkD,AG1BlD,ADHA,EjBdC,AccO,AC6B2C,CAAC,CJT9C,ARiBJ,AUjBgC,AJqBhC,AJ1B8B,AEkC5B,CK8BJ,CE/EQ,AF+ER,AK/EM,CHAE,AGAD,ChBPuB,CcoC4B,CJT9C,AHD2B,AOUoB,AI5CvC,ChBoDX,AYRmD,CZQlD,AYRmD,AVdrB,CMKzB,ARiBJ,CEtB+B,GFsB3B,AYRmD,AI5CxC,ChBoDV,AYRmD,AE7BjD,CHAE,AC6BgD,AE7BjD,CF6BkD,ED7BZ,GF+EzD,CE/E6D,EXqCnC,AS0C1B,CT1C2B,AWrCqC,AGAnC,CdqCD,CQjBb,ARiBc,AWrCqC,AGAnC,CAAC,KNoBX,CAClB,CRgBkC,AgBpDX,ChBoDY,AgBpDZ,ChBoDa,GQhB9B,CAAC,ARgBiC,CAAC,CS0C5C,CC1DkB,IAAI,CAAC,CMpCiB,CRoC9B,CAAC,ARgBiC,AgBpDF,ChBoDG,SUhBT;ADPtC,AKbA,CAAC,CF6BC,AG1BA,EPiBW,AXnCV,AcciE,ATerB,CAAE,CI2B7C,AMZI,AVf0C,AEmC5C,AW9CE,EfiCuC,AUhBT,EZ5BN,AO0BS,ACuB/B,AFQE,AYjEgC,CRoC3B,AXjCf,IGiDiD,CAAC,AIalC,CJbmC,CejCjC,CX8CC,CERD,CNLqC,AejCf,CH0BlB,CNYD,CFQG,CI7BK,AISJ,ARoBA,CI7BK,ARgB8B,CQhB7B,ARgB8B,AMKpC,CNLqC,CQhB7B,EJ6BS,CJbwB,GQhB3B,CAAC,AXjCvB,CAAkB,EAAA,Ce0CV,CAAA,GNYA,CAAA,GKvCP,ILuCsB,EAAE,MKvCZ,EC2BgB,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAA,CAAC;AE3BxE,ENkB0C,ANLxC,CAAC,CMKwC,AIS6B,AVdpE,AaXA,ADFE,ENmBD,AXlCgC,AGiD+B,AUhB9B,AClBN,ALwC5B,AFQE,EJd+D,EIczD,CQrBgE,CJRjE,AV7BqB,AO0BxB,AWlCA,EV0DI,CAAC,AFQI,AW9CF,EAAE,CX8CqB,EERpB,CAAC,CFQuB,CAAC,AYlExB,GJ6CyD,CAAA,CNalD,CAAC,CQxCK,CVgDmB,AW9CpB,CX8CqB,AW9CpB,CX8CqB,AUhDlB,CVgDuC,CI7B3D,IFqBY,CAAC,GStCe,GHyBoD,AE3B5D,CF2B6D,AE3B7D,CF2B8D,EfzCxE,AeyC0E,CfzCzE,CWiCM,CAAC,OMnBe,EF2B+D,CAAC,CPXrE,iMSZzC;AAEF,ENeE,AIM8G,AVb9G,EFqBA,AWnC8B,AC2BiF,AGxB7G,ADGE,EFqB6G,AVb3G,AEmCF,EN3D0B,ADJN,AagCtB,AJsBwB,EFSlB,EFnCI,AchCK,CDqBN,CVa8B,CCwBX,AJ1Bf,AaXF,CX8CC,CAAC,CQtB8G,CAAC,AErB3G,GAAG,EV2CA,CETkB,CAAC,EJ1B1B,CAAA,AEmCY,AW9CA,CAAC,CDGxB,IRkC8C,CAAC,AFSjB,CETkB,CAAC,AFSjB,CW9CC,GbWT,CAAC,CI0B8B,CAAC,CQlCzC,CAAI,GAAa,EAAE,OZQO,CAAoB,CYRD,EJY1B,AIZ4B,YAA+B,EAAI;ENgBrG,AIMA,AVbA,AYRA,Ed8BA,AejCE,EPkBE,AVhC0B,ADJN,AccM,ALwC8B,AMZtD,ENYuD,AJzBvD,AEmCA,CFnCC,CQG+B,EFI5B,AQpCG,CRoCF,AJ4BA,CMhCE,ANgCD,CMhCE,AKdD,CVYK,CAAC,AUZJ,EPkBE,AQpCE,EZgEA,GI5BG,AJ4BA,CI5BC,ANPA,AEmCA,CFnCC,CMOC,EIMI,CRsBD,CAAC,AW9CA,CHwBG,AGxBF,CbWC,EAAE,GEmCG,GYhEjB,CAAA,CDkBsB,KHwBO,CAAC,GAAG,CAAC,II1CnB,EAAE,IJ0CiB,CAAC;AHbxD,ETsBE,Ac7BA,ENeE,AVjC4B,AWyB1B,AGakD,AVbrB,AaV/B,EToCA,AQjCI,EjBtBJ,Acc4B,EDmB1B,AJsBI,AUvD4B,CRqC3B,AIKiD,AVbnB,CMQ9B,AGvBI,AC4B8C,AEpB/C,CHRE,AC4B8C,CFTlD,AKdE,CDGG,CTQM,ACyBP,ASpCA,CVWQ,AKGT,CFIJ,AIKwD,AVb1B,CMQ9B,AFkBQ,AJ1BsB,CQIvB,CAAC,CAAC,CAAC,AJsBE,CItBD,CFIX,CAAA,CAAA,CAAA,ANRuC,AYPjC,CZOkC,AYPlC,CNgBR,AOnBqB,CbUuB,AaVtB,CbUuB,CAAC,CAAC,COAnB,APAoB,GOAjB,EH0BjB,CAAA,ASpCkB,CDGX,CZOmC,CAAC,GOA5D,CH0BgC,CAAC,GEjB9B,CAAA,KFiBuC,CAAC,ITvDrB,CWsCR,CFiBmC,CEjBnC,AFiBoC,YG1BnB,CAAI,IAAqB,EAAE,UAA2B,EAAE,YAA6B,EAAI,kVKM1H;EhB/B4B,AW0B9B,AGYiE,AVbD,AYQhE,ChBhCD,CE8CC,AYTkE,AVbD,AaT/D,CjBfH,CUkCK,ACTE,AH0BJ,AFWE,EOpDA,CFeK,AMVF,ClBpBmB,AakCtB,CKdK,CJLC,AFeE,AH0BJ,AUxD4B,CVwD3B,CEjBG,AHRJ,AKGE,ADJI,CEfD,AIKA,CPmBC,AOnBA,EVWF,AKGE,ACnBE,CNgBH,AMhBI,AIKA,CJLC,AIKA,CLcD,ACnBE,CDmBD,ACnBE,ALyCF,CItBC,AJsBA,CItBC,AKdE,CVWH,AKGE,AKdE,CVWH,CCyBG,CSpCG,CVWH,AUXI,CVWH,CAAC,EAAE,CAAC,CGQd,CAAA,EHRkB,IAAI,CGQL,AHRM,AUXI,CPmBT,AFiBT,ASpCmB,CToCnB,ISpCwB,CVWH,CUXK,CToCX,ASpCY,CVWH,ACyBR,ASpCY,CVWH,CAAC,AUXI,CVWH,GUXO,CAAC,GToCT,CAAC,CAAC;ARnDpD,EW0BC,AGaA,AVdA,AYQA,ENCqC,ARYrC,Ae9BE,CPkBmC,CAAA,AFmBnC,AFUE,AU9BE,CNEF,CGvBA,ATaE,CAAC,CQMH,ANgCM,CJhBV,CHpDc,AmBAsB,CnBArB,CaoCL,ARNE,AEsCE,CFtCD,AYQE,EV8BE,CU9BC,EJFF,AKfE,CX+CG,CAAC,AW/CF,CLeD,AIEI,CAAC,EZRA,CQMD,CIEK,CZRD,AYQE,CJFH,ANgCI,CAAC,CJhBtB,AIgBuB,AU9BA,CV8BC,AU9BA,CJFH,ADLd,APDgB,CQMD,IDLV,CAAC,CCKe,CAAC,CIEM,CLPlB,AKOmB,CJFJ,ADLd,CCKe,CKfG,ELeA,CAAC,AIEK,CAAC,MLPb,CAAC,AKOmB,EAAE,CAAC,CAC3D,GLR4C,CKQxC,CLR0C,AKQzC,CLR0C,mCAAE;AXxBtD,EcsCE,AVdA,EOAK,AMTH,ADiBM,EdcN,AMMA,AMdI,ARwBF,EOnDA,AFaO,APAL,AaTA,CNSM,APAL,CGCA,AKKH,AJsBI,ASrCA,CTqCC,AFUA,CPrEQ,AckBP,APmDA,AYpES,CnBDD,AGqDT,CUhBD,AJsBuB,AJ5BnB,CQMH,ARNI,CI4BoB,CNNpB,CAAC,CIgBG,AYpEQ,GZoEL,EOnDE,CTaC,CEsCC,CJhBD,AWnCE,APmDA,CJhBD,AUhBF,ARNI,CQMH,CEQO,EFRJ,CAAC,AEQM,AVdF,AaTvB,CAAA,CJJyB,AC2BE,CFRL,AClBvB,APkD2B,CAAC,CMhCH,ENgCM,CAAC,AW/CV,ACrBJ,CLkBZ,AIGiB,ACrBL,CLkBX,CDkBwB,CAAC,KKfD,CAAC,EJHzB,CAAC,APkDqC,CAAC,AW/CV,GX+Ca,IAAI,CAAC,AYpEf,EAAE,OZoEsB,CAAC,MAAM,CAAC,aAAa,CAAC;AN7D9F,EUmCE,AIGA,AVdA,EJxBI,AWwBF,ALsCA,AW/CA,CX+CC,CEX8B,AFW7B,AU/BM,CFOL,CZOqB,ASrBlB,APAF,AYOM,CNIL,ANXA,CL/BH,AaqCA,ACnBW,AKlBiC,CP+BrC,AGcF,CZOqB,AKrBvB,AOcG,Ef7CF,AGoDwB,ASrBlB,APAF,AaTA,CPoBC,AX1CJ,AY+BM,AGcF,AVdA,COAG,AGcF,AGvBA,CJJK,AFaF,CTqBmB,AWlChB,AFaF,AGcF,CZOqB,AWlChB,AC2BJ,EVdE,CUcC,CZOqB,CHpDvB,AK+BI,CL/BH,AckBQ,CdlBP,AaqCA,ACnBQ,EdlBN,CAAC,AckBQ,CdlBP,AaqCA,ACnBQ,GAAG,ATaJ,CJxBG,AY8BN,ACnBQ,CDmBP,EZ9BQ,AaWE,CAAC,CII1B,CAAA,KHuB6B,CdtCvC,AcsCwC,CGvBT,CAAC,CLeO,CAAC,AJsBhB,EMdsB,EAAE,CAAC,CNcnB,ASrCU,CHuBW,AGvBV,EHuBY,iBdtCvB,CAAU,AY8B2B,CAAC,EZ9BjB,CY8BoB,EAAE,MAAM,CAAC;AFMtF,CAAC,CVpCwD,AI0BvD,AEoCI,CW9CH,CNSC,AGcA,EVbE,AYKU,CZLT,AYKU,Cdc4B,AWlCH,AFchC,AH2B0B,AMb1B,CdvCyF,AWyBxF,AGcA,CPfF,AMbkC,CAClC,CFaK,AGcA,AI9CoC,GLmBrC,CAAC,AFaI,CAAC,CXzBgF,AE6C5C,AEnBrC,CJ1BiF,AI0BhF,CFmBsC,GSpBhC,CXzB0E,AE6CtC,ASpBnC,CToBoC,AEnBrC,CJ1B0E,AaYpF,ATcW,CSdV,AFaa,CAAC,CEbZ,CAAC,CbZgF,AWyBlE,CXzBkE,AWyBjE,EXzBiE,CcuC9D,CAAC,CAAC,CAAC,CdvC2D,CAAA,0CAAA;AUgHjG,ENrFA,AEuBA,AWhCA,EjBlBiG,AW0B/F,AGcA,AETa,EjBrCZ,AGmDmE,AUdnE,AJqB+B,AJzB9B,CMqFJ,ARnEwE,AElBnE,CMqFL,ARnEyE,ASnBjE,CAAC,AGcF,AGtBA,CJNU,ENYV,AIEK,AOjCoC,CJ+CrC,CAAC,GD5BU,AC4BP,CD5BQ,ATeP,CSfQ,ATeP,EUaE,AGtBA,CNQG,AGcF,CHdG,CDsFvB,CGpG8B,AC4BP,CD5BQ,AC4BP,AVbA,CMqFxB,AIxEyB,AVbA,CUaC,CD5BQ,AFcL,CEdM,AFcL,AGcF,CAAC,ARUV,EOtCmB,AFcL,CEdM,AFcL,AGcF,GD5BU,AFcL,CEdM,AFcL,CEdM,APsCjB,II8D3B,EGpGkD,CAAC,GAAG,CAAC,GAAG,CAAC,GC4BJ,CAAC,MAAM,EAAE,CAAC,EAAE,CRUtC,CQVwC;AJFvE,AOnBA,CAAC,CbSC,EMUI,AVtC6F,AE8CjG,ASlBE,ALsB2B,EQTzB,AEVe,EjBrChB,AaqCA,ACnBwD,AFgBrD,AHwB4B,AQrBb,CLHd,APAA,CGJA,AMZqD,AC6BlD,CAAC,CHbD,AOlCS,CPkCR,APAA,CUaG,CHbD,IOlCY,CR4CL,ECVA,CDUG,ACVF,SDUjB,KIGiC,CAAC,CAAC,CAAC,CI/Cf,CAAA,MR4CL,CACpB,MAAoB,EACpB,GQ9C2C,EAAE,CR8C/B,EACd,IAAe,EACf,QAA2B,EAC3B,GAA6B,EAC7B,UAA0B,EAC1B,MAAyB,EACvB;ANjBJ,AaRA,CbQC,CMiBG,EREF,ASnBE,AMRE,EjBrB6F,ADN9F,AaqCA,AEWC,AEXmB,CAAC,CHlBpB,AFgBE,CJJD,AIIE,CHuB2B,AU1DW,GLmBrC,CAAC,AFgBG,CJJD,AIIE,AMRE,ENQA,CMRG,ENQA,CAAC,IAAI,CAAC,CAAC,AMRrB,CNQsB,CAAA,CGaE,CAAC,GHZtB,CEjBuB,AC6BG,CD7BF,AC6BG,CHZxB,AGYyB,CHZxB,AGYyB,AGrBrB,CJRmB,AIQf,CJRgB,EFiBpB,CEjBuB,AFiBtB,CAAC,AGYyB,CD7BF,AFiBtB,AGYyB,CAAC,AGrBG,CHqBF,CAAC,AGrBG,SJRG,AIQuB,CJRtB,CIQ0B;AbUjF,AEiCA,CAAC,CIjBC,ARCA,Ae1BA,EbSI,AYAoB,ENgBpB,AOzBE,EjBtB2F,ADN9F,AaqCA,AChBC,CHgCG,CHrBD,CGqBG,AMhBqB,CRqBhB,AQrBiB,AErCc,EXgCnC,CAAC,AC0BM,AQrBiB,CAAC,CZAlB,CMgBD,AOzBE,CPyBD,CNhBG,CGLH,AUJI,CVIH,GGqBK,CAAC,GNhBpB,CMgBwB,CAAC,AHrBF,CAAC,KAAK,CAAC,AUJI,EAAE,CPyBX,CAAC,ANhBb,CAAI,CGLmB,CAAC,GHKG,EAAI;AEmClD,EKlCE,APAA,AaRA,ADOmC,ENgBL,ARC9B,AcjBoC,CACjC,CjBtCA,AaqCA,ARCG,AaRF,CAAC,CJRD,AGgBE,CLAC,AKAA,ChBhC0F,CU+C/D,CAAC,AFKhB,AJpBP,AczCN,CRwD8B,AG/B5B,AFgBG,CEhBF,AFgBG,CPAG,CIoBQ,CELiB,ACfzB,EMRE,EAAE,ACjCJ,CRwD8B,CNftB,COAhB,APAiB,CMewB,CAAC,AG/B5B,AGgBE,CHhBD,CFgBX,EDe0C,AG/B5B,AFgBN,CEhBO,EFgBJ,CEhBO,AFgBN,EEhBQ,ETgBO,CAAC,CShBJ,GAAG,EAAE,CAAC,OTgBY,CAAC;AOCxD,ALkCA,CKlCC,CDcsD,AIFrD,AVZA,EMcuD,AXpDvD,AGqDA,AImBI,AW1CF,ADOqB,CNeiC,CEdtD,ACjBuC,AC6BnC,GGpBC,CLQD,AJoBF,AS5BI,CfwBR,AUhBO,CZjC0F,EQqDzF,AU7DN,IV6DU,CAAC,EFcQ,CEdL,CAAC,AMRM,AIrDZ,CNyCS,ANkCI,EQtBE,AVZP,CQAI,AJoBF,AJnBnB,CImBoB,AJnBnB,GImBsB,CNJZ,CMIc,AFcvB,EJlBoB,AMIK,ENJL,AYJa,CAClC,GAAG,CAAC,CFbgC,CKRG,CAAC,EbSxC,CAAA,EEiCkB,CACrB,CQtBO,CAAC,EVZY,CAAC,IAAI,EAAE,IEkCQ,EFlCF,AEmCjC,EFnCmC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC1C,CAAC,CEkCsB,EACvB,gBFnCC,CAAA,OAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAC5C,CAAC,mBAAA,CAAA,OAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAC1C,CAAC,mBAAA,CAAA,OAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAC5C,CAAC,mBAAA,CAAA,OAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAC3C,0BAAE;AO4CH,EDlCA,AXtDC,AO4ED,EMrCA,AEYQ,AVbH,AaPH,EPuBI,ARCJ,AKrBA,AMvBA,AG0BO,CLmDT,CAAA,APlDW,CYDC,CdkBJ,AKrBF,CAAC,AOiBK,Cd7CA,AQqDN,AMRO,AVbE,CUaD,CAAC,AIrDb,EhByDY,EIqBE,CItBG,AVhDD,AEiDD,AIqBA,CC1CD,CAAC,CGoBK,CRCD,CAAC,EKrBA,CAAC,EP5BK,AEiDD,AgBzDV,ClBQY,AEiDD,EQDI,CAAC,AVhDD,AEiDD,CFjDE,AEqD9B,AIiB6B,CC1CD,AD0CE,CItBG,AHpBJ,CGoBK,EHpBF,AIsDnC,GAAA,EJtDwC,GGoBH,CAAC,aG3CN,YF6EhC;AAhDF,ECDG,AEYc,AR0Bf,EIvBsC,AXtDrC,AemDe,AVNd,CUOC,CZQD,AKzBA,ASEY,EH1BkB,ATkCxB,EJvCyB,AEsD3B,AKzBA,ASEY,CNiBwB,ARMnC,AKzBA,AOiBE,AVPE,CMSgC,AIFjC,CJEkC,CNT9B,Ac9CZ,ChB6DS,CKzBC,CGmBoC,CRMlC,AEfI,CGVH,AHUI,AEgCF,CFhCG,AEgCF,CFhCwB,EGVvB,CLyBC,AKzBA,CLyBC,IAAI,AKzBA,AWpCR,GXoCW,GD0CK,CQzBC,ARyBA,CC1CD,AOiBE,CPjBD,KAAK;AIMzC,EDakD,AEf/C,AEcD,ARyBA,AW5CA,EPoBiD,AXtDhD,AYyCG,APKF,AYRE,EduBF,AKzBA,AOiBI,EVPE,AYRE,CAAC,CduBL,AKzBA,AC0BF,CT5DJ,AG2DO,AKzBA,CP9BD,AIwCM,AYRE,AEvCG,EV+DP,CRxDD,AIwCM,IAAI,CAAC,AYRE,CduBL,AKzBA,AHUI,AEgCF,AUxCI,CFeD,AVPU,COLT,ALqCF,CJjBD,AKzBA,COiBK,CHZC,EJLF,CRlCd,AQkCe,CLyBC,CAAC,CMCC,EQxBQ,CjBpCZ,AYuCpB,AHqB2B,AQxBM,EjBpCb,EQkCW,ASEM,CFehB,AEfiB,CduBL,AYRZ,CPjBa,IC0BI,CD1BC,AC0BA,CD1BC,EC0BE,CAAC,ED1BE,CIK1B,AHqB2B,CGrBvB,AHqByB,CAC7C,MAAM,AMViC,CNUhC,AMViC,UNUjC,GAAG,EAAG,EMV4C,CAAC,EHZqB,CGYlB,CHZ2C,AGY1C,UAAA,CAAC;AFdrE,ANwCH,CAAC,CIvBC,ACdA,AMPA,Ef2BA,AKzBA,AMfG,AC+BmE,AVNpE,AYPE,ENgBE,AXtDkB,AYwClB,AMPA,CNOC,CPKC,AYPE,ELEA,APKA,CUMgE,Cd/CjE,AQ0DD,AS7BI,ACjCZ,Cd6Ca,COLC,CMPC,ENOE,APKA,COLC,APKA,CIiBH,AJjBI,CMSC,ANTkB,EIiBpB,CERK,ACdA,AHsBJ,CGtBK,CKFG,CFa+C,CAAA,CHX9C,AKFE,CLED,EKFI,CCLlB,ADKmB,CRwBL,AS7Bd,GT8BH,CQzB2B,CAChC,CCNc,CPqBmB,AFSxB,AS7Bd,CPoBuC,AMf/B,CAAC,ERwBS,ER1Db,Ac8CsF,CJG9C,AFSxB,AMZuE,AGjBrF,CT6Be,AMZuE,AGjBrF,CPoBuC,AVjDvC,CAAC,ADJY,AekD0E,EEZtF,ChBlCG,AiB6BC,ADKH,ChBlCG,ADJY,CWqD4B,AOnBrD,CPmBsE,CCdf,CAAC,IHuBpB,AMZuE,AGhBpG,CHgBqG,AGhBpG,CjB9BM,CWmCiD,AHwBrD,EGxBuD,CXnC1C,AWmC2C,CAAC,AHwBrD,CR3Da,EWmC2C,CAAC,AHwBrD,CS7BC,ET6BE,AS5BrB,CT4BsB,CS5BpB,EACF,SNGiG,EHwB7D,CS3BxB,EACZ,SAAS,CACV;AL7DH,ANsGE,EIzBA,ARKC,AKzBA,AOgB6G,AGV9G,ENDmG,AGWY,AVJ7G,EMQI,AGnCH,AC+B8G,AEZrG,CJ7Dd,ANsGE,CP/E2B,AavB7B,ARqEU,AEiCR,EEfM,CAAC,CAAC,AJlBI,Ac9CZ,CFsCgB,ChBjCd,AgBiCe,CJ7DnB,ARqEiB,AYRG,GNgBA,AVjDV,AY5BV,AEyE+H,CAAC,EJIzG,AMhBG,CAAC,GVyCzB,AUzC4B,ChBjCZ,AgBiCa,EZQd,AEiCf,CN1EoC,AIyCrB,AYRiB,CAAE,AEtClC,CAAA,CNvBF,CZ4B0C,EUiDL,CAAC,MAAM,ANRd,CMQe,EJyB3C,GY/EiB,CAAC,ClBKsB,CAAA,EUiDG,CAAC,IVjDW,AkBL5B,CAAC,ClBK6B,ckBLd,EAAE,SAAS,CAAC,cd8CqB,Cc9CN,CAAC,Cd8CQ,eAAW;EGZzF,AOkBD,AGXA,EPa4C,ARK3C,AWxCE,AT6BD,AYVgC,EjBtCP,AYuCgD,AKDxC,CAC5B,GR0BH,CEX4C,AFW3C,CAAC,AUhEN,CFsCa,ChBjCX,AgBiCY,CLAsE,CH0B1E,GR3DH,EUgDmD,CAAC,CAAC,AVhD/C,AQ2DT,CR3DU,AQ2DT,AQ1BU,CNe+C,EMf5C,ChBjCA,AiBmClB,CPakE,AOblE,ADFoB,CNe+C,AMf9C,EhBjCC,CAAC,EkBLvB,CAAA,GlBK6B,EAAE,CiBmClB,CAAC,ETwBA,ISxBM,EAAE,CCxCN,CAAC,KAAK,CAAC,CDwCQ,EAAE,CTwBD,EAAC,SSxBY,EAAE,sBAAsB,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;AVPjH,AUQH,CAAC,CPYoE,AIDnE,EJCoE,ARKnE,AEVC,ES9BC,AFoBmF,AGchF,AEde,EjBvCnB,ASiE+B,AJhBzB,CF7CD,GgBDP,CFoC0B,CLAoE,EXhC1F,AgBgCyB,CZUZ,EYVe,ChBhCtB,AI0CU,AYVa,IdnCP,CFGX,GAAU,IAAI,Ac8CG,Cd9CF,AI0CV,CAAA,CUIe,EAAE,Ed9CD,CAAC,CAAC,CAAC,KI0CN,gBLjDJ,0CKiDqD,IAAI,mBAAgB;AGzExG,AUoEA,EPWE,AIDA,EDnCG,AFqBD,APUA,AaNE,ADL6B,ENgB3B,ARlDJ,CK7BJ,AO8EO,AEf8B,CT/DrC,AC8EI,AJJM,AYX4B,CAAC,CjBvCR,CYwCpB,AGcA,CHdC,AOpCV,ChBCS,AYiDC,EP9EZ,CPgCM,Ac8CS,CZjDA,AYiDC,CZjDA,AK7BhB,AH0EoB,CUIF,AGVG,ENJA,AGcF,AVJI,CaNC,CPWC,ACfF,CXhCT,Ac8CQ,Cd9CP,CU+Ca,CRlDH,ASmCE,CXhCT,AWgCU,CXhCT,EWgCY,AMIzB,CfvCwB,CK7B9B,CH0EuB,CAAA,CF7CW,CFGP,AEHQ,CQkDK,AV/CZ,AWgCL,CDekB,AV/CZ,AkBJ3B,ClBI4B,AkBJ5B,ElBI8B,AWgCL,GDeoB,CAAC,ARlDJ,AeuCvB,CjBpCgB,Ac8CQ,AGVd,CjBpCO,Ac8CQ,AVJV,CF7CW,AE6CV,IF7Cc,CYiDC,AGVO,EPWX,AIDM,AGVO,CPWZ,ARlDM,CYiDA,CZjDE,CAAC,AYiDD,EAAE,AIlDnC,CPoCW,AHcG,AUlDb,EDwC8D,MNJ5C,CAAC,GAAG,CAAC,UAAA,CAAC,8BPUwD,CAAC;ES9BxG,AIwBqF,EPWtC,ARjD/C,AYiDE,AVJA,AYVE,CAAC,CLD0C,AKCzC,EFcE,AVJA,CaPiF,CTUrD,AMC3B,CJA0C,CXvDrC,CAAC,AYwCoC,AGevC,CHfwC,AOpC3B,CPoC4B,EKCpC,CZUC,AaPuE,ADHvE,CCGuE,ACxC3D,CPoC4B,CPWrC,Ac/CI,GDwCgE,EAAA,ACxC3D,CRmDqC,CAAC,CAAC,EAAE,AOXkB,ADHvE,CCGuE,ADHvE,CZUe,CAAC,AaPuD,EHWtD,CAAC,AVJC,EUIA,AVJE,AaPkD,CHWnD,AGXmD,CbOhD,CAAC,EMI0C,CAAC,AMdtD,eAAQ,SAAS,CAAC,SAAS,CAAC,ECG8B,CDH3B,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,EAAE,WAAQ,CAAC;ENc5B,ARjDpF,AWcA,EHmCqF,ACf5B,AGgBxD,AVJA,AaRuF,ADFrF,CAAC,CLFsD,AKErD,ELFsD,CAAC,AGgBtD,CNF6B,ETtDnB,CAAC,AewDP,Cd9CT,AI0CU,AchDoB,CJoDpB,AVJC,EYVI,CFcF,AEdG,GhBhChB,Cc8CiB,CAAC,EIpDuB,CJoDpB,AVJC,CJ1CtB,Ac8CsB,AVJC,AchDO,ClBM9B,Cc8CuB,CAAC,CEdR,CFcU,AEdV,EhBhChB,Ac8C2B,Cd9C3B,AQ8CI,CR9CJ,CAAA,Ac8C8B,AVJG,CAAC,CJzC7B,IAAI,EAAA,AgB+BoB,CAAC,WAAW,CAAC,CAAC,CAAA,CFcW,AEdV,CFcW,MAAM,EAAE,EAAC,EAAE,EAAE;EJAtE,ARlDC,ASmCD,CAAC,CErBA,AFqBC,APaA,AaVuF,ADF3C,CLD3C,CDeG,AICF,IfxDA,AewDM,EJDE,AICD,AIrDgC,CAAE,CnBHrC,CWuDO,AXvDN,AewDK,AIrDiC,ClBQ3C,EDXQ,CAAC,CAAC,ECWJ,ADXM,CAAC,CCWL,AkBR4C,CAAC,CnBHrC,MWuDY,AXvDN,CWuDO,AXvDN,IWuDU,CAAC,CICA,CAAC,EAAC,CAAC,IEdrB,CNamB,CAAC,CMbjB,CNamB,AMblB,CNamB,QMbV,EAAE;AdrClC,ESoCD,CAAC,CDc0C,AGpC1C,AFsBC,APaA,EUGE,AGdqF,ADDtD,CLD9B,CAAC,AH0BJ,AJbM,CObD,COtCkD,CRoDT,AGlCxC,AFoBC,CDcwC,ACdvC,CDcwC,ACdvC,CX9BS,CAAA,CAAA,IU4CqC,CAAC,ENDnC,CMCsC,ENDnC,CMCsC,CAAC,CAAC,GIEpC,CAAC,GJF0C,CAAC,AIEvC,CAAC,CVHV,CMCmD,AIExC,AVHX,CUGY,KDpCH,CCoCS,CAAC,EAAC,CAAC,CAAC,CDpCE,ATiCX,ESjCa,WAAmB,EAAA,2CTiCiB,IAAI,qBAAkB;AFjFhH,EQkF+E,ACZ7E,EDY8E,ANA5E,AYbiC,EjBzChC,AcqBD,AL6CA,CN9FJ,CAAA,AEkFU,AaZiF,CNAlF,CErBC,AFqBA,AOxCiD,ElBUzD,CAAC,CAAC,CExCJ,GAAA,IWiDsB,ETiCI,CSjCD,ETiCI,ESjCA,CAAC,SXjD9B,CEkF6B,CAAA,USjCsB,CAAC,ETiCV,CSjCa,CAAC,OAAO,CAAE,cTiCP,GAAG,wFAAkF;AOX/I,CAAC,CDaC,ENAE,ESlCA,AGmBE,EjBzCD,ASkED,AJVI,CAAC,CJ5CL,AaUI,AIoBmF,ECxChC,QdsDvC,CAAC,CSlCD,CAAC,MAAM,CTkCG,CAAC,GSlCC,CAAC,EAAE,OAAO,cAAc,AGmBjB,CHnBkB,WAAW;AF8DlE,ED3BA,AIEA,EVFE,EMAI,AXzDH,AcwBD,AL0CA,AMPI,CHyBN,CAAA,AP3BM,AYhB+B,AEvCoB,CduDlD,CJ7CL,AaYI,EImBA,ADFS,CAAC,OZgBE,CAAC,EMAI,COdL,EPcsB,AGjClB,CF4DtB,AMzCqB,CPcqB,CGjCjB,CF4DzB,CP3B6B,CAAC,CUEG,GAAG,EAAE,KDnCC,CAAC,AImBF,EAAE,GNyCxC,ME5DmD;AFqBrD,EDY4C,AIEJ,EVDpC,ESlCiD,AKtBM,EnBFtD,ASkED,AJRI,AYhBA,CZgBC,AYhBA,CAAC,EhB9BN,AiB+BsC,IAEnC,ADHS,CAAC,GZgBG,CAAC,OabF,EDHF,CAAA,KZgBmB,CAAC,OYhBP,CFkBN,KDnCG,MCmCQ,GElBG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CHjBD,AGiBE,CHjBD,AGiBE,MAAM,CAAC,GAAG,CAAC,CHjBD,EAAE,AGiBE,CAAE,GAAG,EAAE,CHjBF,EAAE,QGiBQ,CAAC,EHjBE,EAAE,CAAC,EAAE,CAAC,CAAC;AFqBnG,IDYO,ACZD,AGc6B,AVD/B,AczDuD,EnBFtD,ASkED,EERS,AV9CT,Aaa+F,ATkC3F,CAAC,IMDS,CObC,MbcC,CAAC,IObM,GAAG,SAAxB,APa+B,CAAC,oBObX,CAAI,QAA2B,EAAE,YAA6B,EAAuB;EAC9G,AGaiC,AI1DwB,CAC1D,CRwDG,AX1DF,AK2DE,AYjBG,CExCN,ClBSG,Aaa+F,AL0C/F,EERM,CAAC,CFQD,AJPC,CAAC,CMDE,EOdK,IPcC,AFQF,CERG,EFQY,CJPV,CMDE,ANCD,CMDE,GNCE,CAAC,MMDH,CAAC;AQxD1B,EnBFE,AY+CD,EXpCE,AcgDF,EJDyB,AMhBpB,EHlBH,AL2CE,ISvBa,CPcY,CAAC,CAAC,AFSpB,EAAE,GETuB,KAAK,IFShB,CETqB,0BICX,ODnCgE;ATqCrG,AczDA,CdyDC,CJlDG,ADXD,AYgDD,CXpCD,CU8C+C,AMhBzC,AEtCH,ClBQH,CU8CgD,AICZ,AIvD/B,EVgEA,EK5C+F,ACmCxF,EGdT,EJrBW,GCmCK,AGdX,CTuBO,ASvBN,ETuBQ,EK5CK,aL4CU,iBSvBW,CAAC;AjBjC5C,ADZE,AK+DH,EOdE,EDUE,ANIE,EUJc,AEjBb,ENiBC,AFUF,CEVG,CGlCH,CHkCK,COdkC,EJpBnC,GTsCS,EIMF,CJNK,CIMH,CK5CD,AL4CE,GK5CC,ITsCf,IL5FuC,GAAkB,KcsD1B,CTsClB,CStCoB,ATsChB,CAAe,EAAI,IUHhB,SDnC6B,ECmClB,CDnCqB,QAAQ;AbXlE,AD3CA,EY+EE,APcA,EYtBK,ENkBD,ANIE,CL7FR,CAAA,ASmGM,AMV+B,EJAzB,AOfiC,CPehC,CNIC,EMJc,AFUhB,CTnGZ,AK6FiB,CIMX,ETnGN,ISmGY,CJNa,CAAC,SL7F1B,KK6FwC,cAAO,CAAC,CAAC,QAAQ,gBAAa;AJjDtE,EWoCE,APcA,EJlDI,AgB4BA,CAAC,CHjBF,AFyBG,AGS6B,AEjB7B,ENkBA,AFUF,AJNG,COdE,APcD,EJlDG,CU8CD,ACVE,AMFN,ADNM,CAAC,CNkBD,AV9CE,CU8CD,AFUF,CEVG,CFUD,GEVK,ACVE,APcD,CObhB,APaiB,EJlDhB,GQwDkB,AQ5BT,CLSJ,AHmBc,AStBF,ADNR,CLSH,EXrCC,AiBkCgC,EAAE,MNGlC,CAAC,CPa2B,AYtBb,CLSZ,APa0B,CObzB,APa0B,CAAC,CObvB,APawB,WYtBT,iBAAiB,IAAI,EAAE,WAAQ,CAAC;AZuBpE,CAAC,CJnDY,EWsCP,AKTA,CAAC,CAAC,CR4BH,CEVG,AGpCH,AF2BK,AGON,Cd7C8C,GiBoC1C,ADPM,CAAC,ENkBA,EAAE,CAAC,AV/CgC,CU+C/B,AV/C+B,KAAA,AWsCxB,EDSA,AV/CwB,AiBoC5B,ADPP,CLSuB,AKTvB,ECOU,EjBpCyB,CAAA,AWsCP,EXtCO,KAAA,CAAA,AgB6BtB,eCOH,ADPW,CCOX,GDPe,IFgBD,OEhBS,CAAC,GCON,CAAC,OjBpCM,EiBoCG,CAAC,eAAe,CAAC;AbiBzD,IJrDqC,AWwC5C,AKVA,EHnBD,AL+CD,CJLS,CMLL,ANKK,AYvBD,CLUD,CHkBH,AMb+B,CNa9B,CStB6D,CNIvD,CAAC,AGKD,GHLI,CDQD,ACRE,CKVG,CNkBH,ACRE,CDQD,ACRE,AHkBJ,AMbG,CJGA,ANKK,AYvBD,ELUA,AHkBJ,CJLQ,AYvBD,CAAC,MNkBE,ACRE,AHkBJ,CGlBK,EPaJ,CAAe,AYvBL,CAAC,CZuBQ,CObT,EAAE,CAAC,EAAE,EAAE,EKVK,CAAC,ECQ/B,EDRmC,CAAC,MCQ3B,CAAC,GDR0B,CAAC,WCQZ;EbgB9C,IJtDgD,AWyC1C,AHkBJ,AJLI,AYxBoD,ENmBpD,AGtCH,CT2CM,CObC,AGKN,CHLO,CDQD,ANKE,AahBkC,CTqBrC,AQ7BqD,CAAC,CAAC,CLWhD,CAAC,APaA,CAAC,CObC,EHkBF,CJLK,CAAC,CMLR,IMnB8D,CNmBzD,ENKW,CAAC,CYxBkD,GAAG,CFgBtD,CAAC,IAAI,CAAC,CAAC,CJGL,MIHY,EAAE,CVQO,CAAC,KURD,CAAC,CAAC,WVQiB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,EAAI;IIMvF,AJLE,AYzBmF,EHnBlF,AFgCG,AKbgF,ENoBhF,AVlD0C,AIuDxC,CAAC,COZG,CAAC,CPYD,AajBkC,CPYnC,ANKiB,COZZ,CDOH,KAAc,ECPH,CAAC,CAAC,CAAC;EHiB1B,EJJC,AYzBE,EHlBF,AF+BI,AGGH,EJIG,AMpBE,EhB/BwC,AW4CpC,AMNkC,CNMjC,APYJ,CAAC,CS3CD,AT2CE,COZK,EDOF,EAAE,CAAC,AMpBE,CNoBD,CMpBG,CAAC,CAAC,EZyBA,CAAC,EMLE,CGtCD,AGkBI,CAAC,OZyBK,CAAC,KAAK,AYzBX,CZyBY,AYzBZ,CLaiB,APYJ,COZK,CAAC,EAAE,APYJ,COZK,EAAE,KKbX,OLauB,CAAC,OKbhB,CAAC,WAAW,CAAC,UAAU,GAAG,mBAAmB,GAAG,EAAE,iBAAM,WAAW,CAAC,IAAI,WAAQ,CAAC;EZ0BpI,CAAC,CS3CD,AL8CC,AJHgB,AYzBb,ELcE,EDMA,AILH,EHDO,CAAC,AKdA,ChBhCqC,AiBsCF,ADNlC,ENoBA,EAAE,ACNE,CDMD,ACNE,CDMD,CCNG,KDMG,sBVnDf,8BAA8B,CAAC,aAAa,CAA4B;Eaa9E,AT4CD,AYzBE,CAAC,CR2BF,AQ3BG,EFcD,AVWC,CAAC,CMLC,ACNE,EX9CuE,AIyDvE,CIhEA,CJgEE,EMLE,AOfkC,EPehC,IAAI,ICNM,GAAG,IAAI,MDMb,CAAA,EF3DkB,KE2DH,AF3DoB,EE2DlB,AF3DoB,OAAe,EAAA;EJkEtE,AYzBA,EHrBC,CT8CE,CIjED,AJiEE,EMNE,ACNE,AGDL,Ed9C4E,AQNvE,EJiEE,EAAE,AatBkC,GPgB/B,EAAE,AF3DA,GAAG,IAAI,iBAAA,CAAA,OAAe,CAAC,KAAK,CAAC,MAAM,CAAC;EJkErD,AYzBA,EHtBC,ELlBC,AMmDC,AEXG,CNmBD,IGvCL,Cbf+E,AiBqCjC,CDFjC,ERxCF,CAAC,AQwCI,QRxCI,AQwCI,CRxCH,AJiErB,AYzByB,CZyBzB,MIjE4B,CJiEP,CAAC,CIjES,CAAC,CAAC,CQwCK,CAAC,GZyBT,CAAC,AYzBY,CAAC,IHpBf,OAAe,EAAE,CT6CA,CAAC,CAAC,CAAC,OS7CgB,EAAA;ET8CjE,AYzBA,INmBI,AGvCF,AFkCI,AHtDJ,ERI6E,CgBoCxE,CNmBC,AGvCA,AFkCE,AKdF,CHpBC,AFkCE,CMbA,CTzCT,CKoBU,AFkCE,CAAC,APWF,EAAE,CS7CC,AIqBC,CJrBA,AFkCE,AHtDjB,CGsDkB,AHtDlB,CQwCiB,CAAC,GLcK,CDKD,ACLE,AHtDxB,CE2DuB,AF3DvB,CE2DwB,ACLE,AHtD1B,CAAA,CE2D0B,CGvCC,ALnBtB,CKmBuB,GAAG,AGoBb,CHpBc,ALnBtB,AQuCQ,ERvCR,KE0D6B,AGvCA,CHuCC,AGvCC,EHuCC,GMnBX,CAAC,aNmB2B,CAAC,EMnBZ,CAAC,CNmBe,AMnBd,CNmBe,CAAC,CAAC;ANOvE,CAAC,CUfE,AEVD,IhBrC+E,AakB7E,AGmBI,ELcE,AHrDJ,EKoBE,EIoBE,ETxCE,EAAE,CSwCC,ADDI,GCCD,CJpBC,AGmBI,GLcG,CEjCH,CAAC,AIoBA,CNaK,AMbJ,CJpBC,AIoBA,CAAC,ENaM,EKdE,CAAC,CHnBH,CAAC,SGmBa,4BAAK,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC;AZ2B5D,EMRR,EVxD4E,Ac+C9E,AEVsE,EHlBrE,ALrBmB,CAAA,AJkEV,COZH,AHtDa,AJkEV,ES7CL,CAAC,AGkBoE,CHlBnE,AIqBA,ADHoE,CAAC,EHlBlE,CAAC,CT6CQ,CY3B8D,EZ2B3D,KaxBF,EJrBE,CAAC,AIqBA,EJrBE,AT6CF,GAAsB,AaxBjB,CACxB,CbuB6C,ES7CjB,CAAC,CAAC,CIsBxB,CAAC,CJtB0B,CAAC,QIsB3B,GJtBsC,AIsBnC,CJtBqC;EHsBpD,AVzC+E,Ac+C9E,AVkBD,AY5BkF,ChBpCnF,CQDC,AQqCmF,ChBpCpF,CaoBG,AT4CI,AY5B8E,GZ4B3E,CS5CD,ET4CI,EaxBG,GJpBA,GAAG,AT4CE,CAAC,AaxBF,GJpBG,AIoBA,CJpBC,AIoBA,GPAH,CAAC,CAAC,EAAE,CAAC,EAAE,ANwBQ,CMxBP,CAAC,EOAQ,IAAI,CAAC,KbwBA,CS5CM,CAAC,CT4CJ,MS5CW,EAAE,MHoB3B,GNwBiD,ES5CX,CAAC;AbpBvE,EQDE,AJkED,AY5BA,ENG+B,AIM9B,EDzBC,CAAC,CAAC,GAAG,CAAC,AImBkC,CDH/B,CCGgC,ADH/B,CCIP,MAAM,ADJQ,CCIP,ADJQ,CHhBD,EAAE,AT4CrB,CAAA,MS5C4B,AIoBhB,ADJQ,CHhBS,AT4CR,AY5BA,CZ4BC,CaxBP,ObwBe,CAAC,SAAS,CAAC,GAAG,CAAC;AJA7C,EQlEC,AM+CA,AVoBD,EOXI,AKlBiB,CZ6BlB,CS5CD,AT4CE,CJDJ,CAAA,GWVW,AKlBc,CLkBb,CEjCH,CImBM,CjBwBf,GAAA,AgB5BgC,CZ6Bf,AY7BgB,CHfjB,CImBG,CbyBC,AazBA,CbyBC,EJDrB,GWV4B,EKlBgB,CAAC,GCIb,CAAC,SDJY,CAAA,MCII,CAAC,GAAG,CAAC,EDJI,QCIJ,CAAC,MDJW,CAAC,WAAQ,CAAC;AhBnC9E,AQHG,EE2DD,ACFE,AGTF,AVoBA,AY9B4E,CLmBzE,CEjCH,AFiCI,AKnByE,EFUvE,SVoBO,Ca1B0C,Cb0BxC,Ma1B4C,CAAC,CHMnC,AGNoC,EAAE,CHMnC,aAAa,CACtC,GAAG,CAAC,UAAA,CAAC;Ad7CV,AQvCA,AJwGA,CAAC,CMTC,AGpCC,AFmCD,AKnBA,EhBpCI,Ac6CI,EJWF,CF/FR,CAAA,CG8FS,EGVK,Cd7CA,AWuDF,AGVG,CAAC,CAAC,AGPgD,CjBtChD,AQvCjB,CS6EkE,CAAC,CT7EnE,CE+FqB,GAAiB,CAAC,CVxDjC,CiBsCqE,CT7E3E,AS6E4E,GPkB/B,AOlBkC,CPkBjC,AOlBkC,EjBtClE,AiBsCoE,CAAC,CPkBjC,CAAC,UAAA,CAAC;ACApD,APWa,COXZ,CXxDa,AaoBX,ACyBc,AERf,ENmBkD,AIXlC,CACb,CETG,CZ8BK,CAAA,CJnEsC,EUwDK,AIV7C,CJU8C,AIV7C,AGRuE,CPkBzB,COlB0B,CAC7E,CDFW,EhBrCiC,CUwDa,AVxDb,AgBqC9B,CNmB4C,ANWxC,Ca5BZ,CAAC,CPiBsD,ANWxC,CMXyC,AVxDlB,EAAA,KAAA,CAAA,AiBuCrC,ADFO,CZ8BQ,AY9BR,ChBrC8B,AImEP,Ca5B3B,Cb4B+B,GJnEG,Ac8CZ,Cd9CY,Ac8CX,CACnC,KJSgE,AMnBnC,CNmBmC,AIT1D,AEVwB,CFUvB,UJSoE,CAAC,eIT3C,CAAC,Od/CY,agBqCgC,CAAC;AHjBjF,AF4CD,EDR+E,AIR/E,AVoBA,AY9BA,ENkBgF,AVxD/B,CUwDgC,CAC9E,AITG,AVoBF,COJJ,CAAA,IDPS,AMnBC,CNmBA,AMnBC,CCCI,OAAI,CAAC,CPkBV,CAAC,AITa,AEVF,CAAC,EFUI,EHgB3B,APII,CAAA,CY9ByB,CL0B7B,AK1B8B,ECCE,CAAC,Eb6BR,CAAC,IUpBC,CAAA,GVoBO,CAAC,Ia7Bc,CAAC,CNyBlD,GMzBsD,CAAC,Eb6BR,CAAC,CAAC,CAAC,EUpBF,AVoBI,CUpBH,EGTM,CAAC,gBHSY,CAAC,GAAG,CAAC,UAAA,CAAC;ADrElD,ET0FxB,AY9BA,ENkBW,AIT+D,EdhDzB,KUyDlC,AIT+D,AETrE,CNkBO,AMlBN,EH5Dc,CAAA,CI4DgC,CPkBnC,EMlBJ,CAAC,GCA0C,Eb8B5D,CMZ8B,AG9EK,ACqE2C,AVqB9E,Aa9B+D,CHSe,AGTd,EJ5D1B,CG4DpB,CAAC,EH5DuB,AT0FrB,CAAC,Ma9BuD,Eb8B/C,CAAC,Ea9BmD,CHSe,AGTd,CHSe,AGTd,CHSe,EAAE,KVqB1D,CAAC,CAAC,CAAC,Ea9BmD,EHSgB,CAAC,CGTb,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc;AJ7D5I,EH+EgC,AIToF,AVsBlH,EMb+B,AIToF,AEThG,CNmBhB,CIVkH,CDtEvH,CHgFQ,AV1D2C,AatBnD,CHgFS,EMnBgB,GCAmH,CJ7D5I,AT4Fe,CAAC,Aa/B6H,Cb+B5H,CS5FjB,ACsEmI,AVsBjH,CMZT,AIV2H,CJU1H,CMnByB,CNmBtB,AMnBuB,UH7DpC,CG6D+C,CAAC,CAAC,CAAC;EFWhD,AVqBA,AYhCgD,ENoB5C,AMpB6C,INoBvC,EV3DuC,EiBuC0F,EAAC,CPoB3H,ANYJ,Aa/BR,Eb+BU,CMZE,COnBR,CAAC,IPmBO,CAAA,KOnBN,CPmBM,AOnBL,CPmBK,CAAA,AOnBH,CPmBG,AOnBF,EPoBN,CAAE,EAAA;ANYb,CAAC,CUrBC,AEXA,INqBM,GIVC,CJUG,EAAE,AV7DqC,AgBwCvC,CFWC,AEXA,CCAI,EHWD,CAAC,CACb,CAAC,CAAC,CGZgB,CHYd,AGZe,CAAC,CHYd,AEZc,CFYb,AEZc,EFarB,CJQ0B,AIRzB,CAAC,EAAE,CEbwB,CAAC,ICAK,GAAG,CAAC,CAAC,IjBvClC,CcoDe,CAAC,EACrB,CAAC,CAAC,EAAE,EGdiD,cHcjC,CAAC,EACrB,CAAC,CAAC,CdtDiC,CAAC,AcsDhC,cdtD8C,CAA4B,GcsDxD,CAAC,CACxB,CAAC;AACJ,AViBa,CUjBZ,CEfC,INoBM,CNYK,CAAA,EJzEqE,EiBuCzB,EbkCtC,AalCuC,CPsBzC,EAAE,ANYG,UAAC,CAAe,EAAI;AUhB1C,EViBE,AYhCA,ENmBqB,CAAA,CAChB,ANYD,AYhCE,CZgCD,CAAC,EJ1E0E,EI0EtE,AajCJ,KbiCS,AYhCE,GAAwB,CCD1B,EbiCM,CajCH,ADC2B,CZgCtB,EYhCyB,ECDzB,ADC2B;AFiBpD,EEjBoD,ENqB9C,ANYF,OMZS,CV/DqE,AiByCzD,MPsBL,SNYhB,CAAA,OAAqB,CAAC,QAAQ,CAAC,CYhCd,GAAG,CAAC,ECDH,EbiCsB,CAAC,AYhCf,CZgCgB,CAAC,QAAQ,AajCpB,CbiCqB;AUfxD,EJII,CAAC,CAAC,ANYF,AYjC0B,CNsBzB,GVjE6E,Cc4DxE,EJKC,CAAC,AOvBuB,KbkClB,EAAE,GMXP,CAAC,MILH,CACR,SAAqC,EACrC,YAA6B,EAC7B,qBAA+B,EAC/B,aAAqB,EACrB,aAAqB;EAAA,AEtBO,ENsBjB,ANYT,EJ7E8E,KUiEjE,COvBkB,ePuBF,CAAC,CAAC,EAAE,aAAa,CAAC;EAAA,AIA5B,EJA6C,AVjEc,AgB2ChF,UCDiC,6CDCH;ENwB9B,AVnEgF,AIgFhF,CJ/ED,CcgEsB,CdhEtB,CgB0C+B,IAAnB,ICDsB,ADClB,WZqCf,CAAA,OAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AJ/EzC,EUmEC,ANaA,IMbM,AIHe,AErBnB,IAAM,ENwBI,EMxBA,CNwBG,ANaF,CavCoB,CbuClB,AYrCA,IAAI,CAAC,IAAI,gCNwBT,MAAM,CAClB,MAAM,CAAC,UAAA,CAAC;AVPX,EIoBA,EMbW,ENaL,AYrCJ,ChBiBF,CAAA,AcGqB,GJIN,CNaH,GAAG,CJpBf,CgBjBa,CCHoB,ADGnB,ChBiBd,EgBjBiB,CAAC,CZqCK,CAAC,CMbK,CAAC,AMxBR,CNwBS,AVP/B,CgBjBwB,CNwBS,AMxBR,IAAI,ENwBU,CAAC,ENaF,MYrCE,CAAC,GAAG,CAAC,GZsCrC,CAAC,AYtCwC,CZsCvC,AYtCwC,IAAI,CAAC,CAAC,CAAC,CZsCvC,iBACI;AJjFxB,EUkE0C,ANgBxC,EMhByC,EACtC,ENeG,CAAC,CUpBc,EJKZ,ENeG,GAAG,CAAC,CAAC,Ca3CgB,Gb2CZ,YMfR,eIHO,EJGU,CAAC,EAC5B,IIJ0B,CAAC,CJIrB,YIJkC,CAAC,oCJI/B,aAAa,EAAC;AVnE7B,AIkFA,CAAC,CMbC,AM3BC,EhB1CG,Mc+DwC,Cd/DjC,GAAG,QiBsCD,CjBtCT,EiBsCY,KjBtCL;AIoFA,EMdX,AVtEW,EgB0CV,EN4BG,CNcO,CAAA,CJpFqC,Cc+DJ,EJOlC,CAAC,KVtEqC,CUsE/B,AVtE+B,GiBuC5C,EP+BkB,AVtE0B,AIoFrB,CMdJ,CVtEyB,CUsEvB,ANcK,IJpFkB,CAAA,EAAA,EiBuC9B,Cb6Ca,Aa7CZ,EjBvC6B,CAAA,CiBuCzB,Cb6C+B,Ca7C7B,Cb6CiC,sCJpFV;EIqFhD,AY3CC,EN6BC,AVvE8C,Ic+DJ,GJQnC,CAAA,GNcI,CAAC,EMdL,CAAA,ENcU,CAAC,Aa9CK,GPgChB,CAAA,CAAA,AO/BD,CP+BC,EACF,MOhCU,gBPgCV,CAAA,WAAW,EAAA;ENelB,EY7CC,EN+BG,AVzE4C,AIuF1C,GAAG,CMdD,AIVoC,EJUxC,ANcQ,IMdJ,QOjCS,Eb+CS,EAAE;EAC5B,AY9CC,INgCG,ANcA,EJxF4C,CIwFzC,EAAE,CUzBmC,EJWhC,EAAR,QOlCa,UbgDR,CAAA,OAAqB,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC;EAAA,AY7CxD,EN+BY,CAAA,CAAA,AM/BN,CNgCF,GV3E4C,Ec+DJ,MEpB1B,GAAG,CCHJ,IDGS,CAAC,IAAI,CAAC,WAAW,CAAC,EZ+ChB,KY/CuB,EAAE,CAAC,CACnD,GAAG,CAAC,UZ8CqB,CAAA,OAAqB,CAAC,QAAQ,CAAC,UAAU;IAAA,AY9C9D,MFmBqC,Ed/DI,UiBwC/B,wBjBvCV,8BAA8B,CAAC,aAAa,CAA4B;EU6E/E,ANYqE,IY9C5D,GNkCF,CV7EwE,Ac8DpE,AEnBE,KNkCA,AIfG,KGvBC;APuCnB,CAAC,GNWC,EY9Ce,IhB3CgE,Ac+D7E,EEpBmB,UCFX,SAAS,GAAA,MAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EACV,Ob+C8D,Ka/ClD,EAAA;AP4CrB,IM3CqB,EZ8CkD,CMHvE,CAAA,EItBQ,AVyBG,EJzFoE,McgE/D,GAAG,AErBW,EZ8CN,CMHxB,AO3CM,GP2CN,AM3CoC,ECAzB,EAAE,CAAC,CHqBiB,CAAC,IAAI,EAAE,GJsBtC,AM3C0C,IAAI;EAAA,CAAE,CAAC,EZ8CzB,EJzFuD,EciE7E,QAAQ,CAAC,KGrBL,GHqBa,CAAC,KAAK,CAAC,MGrBJ,EAAE,Qb8CN,Ia9CkB,CAAC,Qb8CN,Qa9CsB,CAAC,MAAM,CAAC,GAAG;EDAhE,IhB5C+E,AgB4CzE,EZ8CyB,EUvB7B,UEvBkB,ECA6C,CAAA,ADA1C,CCClB,WDD8B,CAAC,IAAI,CAAC,IAAI,CAAC;EAC9C,EhB7C+E,EI0FhD,AY7CzB,IFsBJ,MACI,MGvBD,CDAkB,CFuBT,CAAC,CEvBW,IFuBN,IAAI,KEvBE,CAAA,OFuBW,MEvBE,4BACxB,cAAc,uBAC3B;EhB/C6E,AgBiD/E,ChBhDD,EAAA,GIyFG,IUtBmC,UGrBvB,OAAM,IAAI,OAAO,CAAa,UAAC,OAAO,EAAE,Gb2CrB,Ia3C4B,EAAI;AjB9ClE,EgBiDC,IAAM,IZwC2B,EUtBI,EVsBxB,CAAC,CYxCE,GAAG,KCFb,QDEa,CAAA,CCFH,CAAC,WDEe,CCFV,ADEW,gDAAgD,CAAC;AhBQlF,EgBPA,IAAM,ChBON,CAAA,EcUqC,AVuBjC,KJjCJ,GAAA,IgBPsB,CZwCL,CAAC,CJjClB,AIiCmB,AYxCM,CZwCL,Aa1CZ,IAAM,MAAM,EDEK,CCFF,ADEE,aAAa,CAAC,GCFhB,CAAA,MAAM,CACnB,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,WAAW,EACnB,EAAE,EACF,SAAS,EACT,ADH2F,CAAC,QCGnF,CACV;AjBpDX,EgBiDE,QFgBqC,EEhB3B,CAAC,WAAW,CAAC,CCIf,OAAO,CAAC,MAAM,CAAC,ADJgB,CAAC;AhBhD1C,EgBgD0C,EhBhDpC,EIwFD,IUxBoC,EdhE3B,GAAG,EcgE8B,OdhEzC,AiBqDE,CHW+C,AGX9C,CAAC,MjBrDI,cgBiDQ,GAAG,CAAC,SAAS,EAAE;EhBjDvB,EgBiDuB,IFekB,AVwBlD,CJxF8C,SAAA,CAAA,GiBsD7C,CAAC,CjBtD4C,AiBsD3C,EjBtD2C,KAAA,CAAA,EAAA,KAAA,CAAA,0CAAA;EgBiDd,EhBjDc,EIwF9C,IUxBkD,UGV/C;IDL6B,EhBjDc,EIwF9C,EUxBkD,YGrB3C,CAAC;Mb6CR,AYvCgC,EhBjDc,AcgEI,EEf1C,KAAK,OCOZ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA,KAC/B,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;MDPhC,IhBlD+C,AcgEI,AEd7C,MFiBC,IGVyB,GDPb,CFiBJ,CAAC,CEjBM,IFiBD,GAAG,CEjBM,CAAC,aAAa,CAAC,IAAI,CFiBJ,AEjBK,CFiBJ,aAAa,CAAC,GAAI,aAAa;EVsB9E,IYtCC,IAAM,EhBnDyC,AcmE8B,QGV7C,GDNb,GAAG,aAAA,CAAA,MhBlDjB,OgBkD8B,uBhBlDA,CAAC,agBkD2B,ChBlDb,CAA4B,GgBkDV,CAAC,OAAO,C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E5C,IAAM,AcoEC,EEOH,MC5BgC,MjB/ChB,CgB2EH,CAAC,ChB3EK,SAAjB,CgB2EuB,CAAC,YhB3EV,EgB2EwB,CAAC;EhB3EzB,AcoEb,IEQH,GhB5EqD,GiB+CrB,ID6BtB,CAAC,ChB5E0C,CAAA,KAAA,EAAA,EgB4E/B,CAAC,EhB5E8B,CAAA,EAAA,KAAA,CAAA,EgB4EjB,CAAC,uChB5EgB;AcoElD,IdpEkD,AgB4EhB,MC7BL;AH0BpC,IElCE,EhBvCuD,GcyE/C,GG1B0B,gBH0B1B,CACR,4BAA2D,EAC3D,AEpCqC,YFoChB,EACrB,YAA4B,EAC5B,SAAiB;EAAA,IEtCoB,EhBvCkB,IiB+CrB;EH8BjB,Qd7EsC,EiB+CrB;IH8BjB,AEEjB,MChCkC,EjB/CqB,kCAChD,8BAA8B,CAAC,oBAAoB,CAA4B;EgB8EtF,IFFiB,Id5EqE,EiB8CpD;IDgClC,IFFiB,Ed5EqE,EiB8CpD;EDgClC,QFAM,AGhC4B,EjB9CoD,Oc8EvE,GAAG,YAAY,CAAC,SAAS,CAAC;IEAzC,IhB9EsF,Ec8E7C,EGhCP,sCHiCf,4BAA4B,CAAC,GAAG,CAAC,SAAS,CAAE;EED/D,IhB9EsF,Ic+EvB,EGjC7B;EDiClC,EhB/EsF,EgB+EhF,EAAE,EFAuD,AGjC7B,CDiCvB,aAAA,CAAA,aAAa,CAAC,sCAAsC,CAAC;EhB/EsB,AgBgFtF,ChB/ED,EAAA,CgB+EO,EFDyD,AECvD,GAAG,CClCuB,YDkCvB,CAAA,aAAa,CAAC,wBAAwB,CAAC;AhB/EnD,EgBgFC,IAAM,CAAC,GFFwD,AEErD,ECnCwB,WDmCxB,CAAA,aAAa,CAAC,kDAAkD,CAAC;AhBnC3E,EgBoCA,EAAE,CAAC,EhBpCH,CAAA,IciC+D,AGjC7B,IDoCpB,CAAC,CAAC,CAAC,GhBpCjB,GAAA,cAAA;AA3CF,EgBgFE,EAAE,CAAC,KCrC+B,EHiC6B,IEIjD,CAAC,EAAE,CAAC;AhB/EpB,EgBgFE,CAAC,ChBhFG,AgBgFF,MFL6D,EGjC7B,GDsCrB,CAAC,GhBhFK,GAAG,IgBgFE,CAAC,IhBhFrB,eAAe;EAAA,AgBiFnB,CAAC,CAAC,KhBjFsD,Cc2E7C,EGjCuB,EHiCnB,CEMF,CAAC,EhBjF0C,CAAA,KAAA,EAAA,AgBiFhC,CAAC,IhBjF+B,CAAA,EAAA,KAAA,CAAA,0CAAA;EgBkFxD,CAAC,ChBlFuD,AgBkFtD,MFNA,EGlCgC,GDwCrB,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA,CAAC;EAC7C,CAAC,ChBnFuD,AgBmFtD,MFNM,AGnC0B,KDyCrB,CAAC,EFNE,GAAG,YAAY,AEMA,CFNC,AEMA,IFNI,EAAE;EEOtC,IhBpFwD,GgBoFjD,CFNL,CEMO,CCtCT,MHgCU,CAAC,OAAO,CAAC,IAAI,EAAE,KGhCzB,CAAA,GHgCkC,CAAC,YGhCnB,CAAC,eAAe,EAAE,sBAAsB,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;ADuCvG,CAAC,OhBrFyD,EcgFtD,AGlCmG;ADyCvG,IAAM,MhBvFoD,AcgFtD,AGlCmG,MHmC/F,CEMW,GAAG,IFNN,CAAC,IEMX,SFNwB,IAAI,AEMf,CFNgB,AEMZ,GAAa,EAAE,SAA0B,EAAE,YAA+B,EAAI;EACnG,UhBxFwD,AciFvB,AGnCoE;ED2CrG,IAAM,EC3C+F,IjB7CzF,AcgFqB,OdhFf,MgBwFO,GAAG,ChBxFA,CAAC,UgBwFW,CAAC,ShBxFQ,CAAC,MgBwFO;EACzD,IC5CqG,AD4C/F,IhBzF4C,AcgFjB,gBESP,GAAG,GAAG,CAAC,UAAW,CAAC,WAAW,CAAC,MAAM,CAAC,UAAC,GAAG,EAAI;IC5C6B,AD6CnG,MFV+B,CEUxB,ChB1FH,AgB0FI,GhB1FD,AgB0FI,CAAC,UAAU;EC7C6E,CACtG,CD4C6B,CC5C7B,KHkCoC,Ed/E7B,GAAG,Ec+EgC,Cd/ER,IAAI,GAAG,Ac+ES,Ed/EP;AiB6C3C,ID6CK,CAAC,GFX4C,Id9EjD,KAAW,EAAE,IAAI,CgByFO,CAAC,ChBzFL,EAAE,CgByFO,CAAC,UAAA,GAAG;AC3CnC,IAAM,ED2C6B,IFXgB,GEWZ,ChBxFnC,AiB6CY,ED2C0B,ChBxFnC,AiB6CY,AD2CwB,ChBxFnC,GAAG,CAAC,IiB6CN,IjB7Cc,AgBwFoC,ChBxFnC,EAAE,CAAC,CgBwFqC,ChBxFnC,AiB6CV,ED2CgD,ChBxFnC,AiB6CL,AD2CyC,ChBxFnC,EAAE,CAAC,CAAC,QgBwF4C;EC1C5E,ED0C4E,EAAC,IFX5B,UG/BjD,CAAA,qBAAqB,EAAE;AACzB,CAAC,GDyCkF,IFXhC,Id5EhD,kCACM,GAAG;AiB+CZ,IDwCM,MhBvFM,Ac2EuC,MAGzC,OESe,CFTP,AESQ,CFTP,GESW,CAAC,UFTE,AESF,GFTK,AESF,QFTU,CAAC,aAAa;AG9B7C,MDuCqB,CCvCrB,CAAA,EjBhDD,Ec8E8C,CESpB,GAAG,CAAC,aCvCP,ADuCoB,GCvCjB,EDuCsB,GAAG,CAAC,ICvCzB,OAA4B,EAAE,ADuCQ,IAAI,GAAG,CAAC,CCvCU,EAAI,WDuCA,GAAG,GAAG,CAAC,cAAc;ECtCtH,EDsCsH,ECtChH,ADsCiH,CAAA,CAAC,IhBvF9G,Ac8E8C,GG7BzC,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAsB;EAC5E,ADsCA,CAAC,CAAC,ECtCI,EjBlDI,Ec8E8C,SG5BrC,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAsB;EAC9E,IjBnDU,AiBmDJ,IH2BkD,IG3B1C,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAsB;EAE1E,ADoCA,EhBzFU,EgByFJ,EFXkD,GGzB/C,CAAC,cDoCgB,ECpCA,CAAC,ADoCE,OCpCK,EAAE,WDoCa,CCpCR,ADqCtC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;EhB1FH,CACX,CiBqDG,ADoCW,ChBzFd,Kc6EyD,CEYtC,CAAC,CAAC,ECpCP,CH4BP,AG5BQ,OAAO,EH4BN,AG5BQ,EDoCW,CFRhB,CAAC,CEQkB,CAAC,CAAC,ECpCP,CAAC,WDoCoB;AhBzFtD,EiBsDC,ADmCqD,CCnCpD,CAAC,ADmCoD,CACnD,GAAG,CAAC,GFTY,OESX,CAAC,EAAI;AhBtDb,EiBmBA,EDoCI,GhBvDJ,CAAA,Ic6CmB,GG1BN,CAAC,OjBnBd,GAAA,MiBmB8B,CAAC,OAAO,CjBnBtC,CiBmBwC,YAAK,QDoCS,CAAC,CAAC,CAAC,UAAU,GAAG,WAAW,GAAG,EAAE,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","file":"pages.77de5100.js","sourceRoot":"..\\src\\app\\pages","sourcesContent":["import GameID from '../GameId'\r\nimport Skill from '../skills/Skill'\r\n\r\nexport default class EquipmentSkills extends Map {\r\n get (key: GameID): Skill {\r\n return super.get(key) || 0\r\n }\r\n\r\n add (key: GameID, val: Skill) {\r\n this.set(key, val + this.get(key))\r\n }\r\n\r\n addSkills (m: EquipmentSkills) {\r\n for (const [k, v] of m) {\r\n this.add(k, v)\r\n }\r\n }\r\n\r\n substract (key: GameID, val: Skill) {\r\n this.set(key, val + this.get(key))\r\n }\r\n\r\n substractSkills (m: EquipmentSkills) {\r\n for (const [k, v] of m) {\r\n this.substract(k, v)\r\n }\r\n }\r\n\r\n multiply (factor: number) {\r\n for (const [k, v] of this) {\r\n this.set(k, v * factor)\r\n }\r\n }\r\n}\r\n","import ArmorPiece from './models/equipment/ArmorPiece'\r\nimport Decoration from './models/equipment/Decoration'\r\nimport EquipmentSkills from './models/equipment/EquipmentSkills'\r\nimport GameID from './models/GameId'\r\nimport SkillActivation from './models/skills/SkillActivation'\r\nimport SkillActivationMap from './models/skills/SkillActivationMap'\r\nimport Skill from './models/skills/Skill'\r\nimport SkillNameMap from './models/skills/SkillNameMap'\r\n\r\nconst MAX_RARITY = 7\r\n\r\nconst TORSO_UP_ID = 65\r\n\r\nconst DUMMY_PIECE: ArmorPiece = {\r\n name: 'None',\r\n type: -1,\r\n defense: { base: 0, max: 0, maxLr: 0 },\r\n resistance: [0, 0, 0, 0, 0],\r\n category: -1,\r\n slots: 0,\r\n rarity: 0,\r\n skills: new EquipmentSkills(),\r\n isGeneric: true,\r\n}\r\n\r\n/** fetch from data directory */\r\nconst getRawData = async (url: string) => {\r\n return (await fetch(url)).json()\r\n}\r\n\r\n/** fetch and parse generic equipment data */\r\nconst getDataWithTransformedSkillMap = async (url: string): Promise<{skills: EquipmentSkills}[]> => {\r\n const raw = await getRawData(url)\r\n return raw.map((rawX: any) => {\r\n const skillMap: EquipmentSkills = new EquipmentSkills()\r\n for (const x in rawX.skills) {\r\n const skill: Skill = rawX.skills[x]\r\n skillMap.set(parseInt(x), skill)\r\n }\r\n return {\r\n ...rawX,\r\n skills: skillMap,\r\n }\r\n })\r\n}\r\n\r\n/** get a list of all head armor pieces */\r\nconst getHead = async (): Promise => {\r\n return getDataWithTransformedSkillMap('./head.json') as unknown as ArmorPiece[]\r\n}\r\n\r\n/** get a list of all chest armor pieces */\r\nconst getChest = async (): Promise => {\r\n return getDataWithTransformedSkillMap('./chest.json') as unknown as ArmorPiece[]\r\n}\r\n\r\n/** get a list of all arms armor pieces */\r\nconst getArms = async (): Promise => {\r\n return getDataWithTransformedSkillMap('./arms.json') as unknown as ArmorPiece[]\r\n}\r\n\r\n/** get a list of all waist armor pieces */\r\nconst getWaist = async (): Promise => {\r\n return getDataWithTransformedSkillMap('./waist.json') as unknown as ArmorPiece[]\r\n}\r\n\r\n/** get a list of all legs armor pieces */\r\nconst getLegs = async (): Promise => {\r\n return getDataWithTransformedSkillMap('./legs.json') as unknown as ArmorPiece[]\r\n}\r\n\r\n/** get a list of all decorations */\r\nconst getDecorations = async (): Promise => {\r\n return getDataWithTransformedSkillMap('./decorations.json') as unknown as Decoration[]\r\n}\r\n\r\n/** get a mapping of internal id to name for all skills */\r\nconst getSkillNameMap = async (): Promise => {\r\n const raw = await getRawData('./skill-names.json')\r\n const map: Map = new Map()\r\n for (const id in raw) {\r\n map.set(parseInt(id), raw[id])\r\n }\r\n return map\r\n}\r\n\r\n/** get a list of skill category names, as used in the UI */\r\nconst getSkillCategories = async (): Promise => {\r\n return getRawData('./skill-categories.json')\r\n}\r\n\r\n/** get a mapping of internal id of skill to all activations (positive and negative) of that skill */\r\nconst getSkillActivationMap = async (): Promise => {\r\n const raw = await getRawData('./skills.json')\r\n const map: Map = new Map()\r\n for (const id in raw) {\r\n const parsedId = parseInt(id)\r\n map.set(\r\n parsedId,\r\n raw[id].map((activation: any) => {\r\n return {\r\n ...activation,\r\n requiredSkill: parsedId,\r\n }\r\n }),\r\n )\r\n }\r\n return map\r\n}\r\n\r\nexport {\r\n MAX_RARITY,\r\n TORSO_UP_ID,\r\n DUMMY_PIECE,\r\n getHead,\r\n getChest,\r\n getArms,\r\n getWaist,\r\n getLegs,\r\n getDecorations,\r\n getSkillNameMap,\r\n getSkillCategories,\r\n getSkillActivationMap,\r\n}\r\n","/* eslint-disable no-unused-vars */\r\nenum EquipmentCategory {\r\n HEAD = 0,\r\n CHEST = 1,\r\n ARMS = 2,\r\n WAIST = 3,\r\n LEGS = 4,\r\n CHARM = 5,\r\n WEAPON = 6,\r\n}\r\n\r\nexport default EquipmentCategory\r\n","import EquipmentCategory from '../equipment/EquipmentCategory'\r\nimport EquipmentMin from '../equipment/EquipmentMin'\r\n\r\nexport default class UserEquipmentSettings {\r\n // eslint-disable-next-line no-use-before-define\r\n private static _instance: UserEquipmentSettings\r\n\r\n pins: (EquipmentMin | undefined)[]\r\n\r\n exclusions: EquipmentMin[][]\r\n\r\n isActive: boolean\r\n\r\n private constructor () {\r\n this.pins = []\r\n this.exclusions = []\r\n\r\n const supportedCategoires = [\r\n EquipmentCategory.HEAD,\r\n EquipmentCategory.CHEST,\r\n EquipmentCategory.ARMS,\r\n EquipmentCategory.WAIST,\r\n EquipmentCategory.LEGS,\r\n ]\r\n\r\n supportedCategoires.forEach((_) => {\r\n this.pins.push(undefined)\r\n this.exclusions.push([])\r\n })\r\n\r\n this.isActive = false\r\n }\r\n\r\n public static get Instance () {\r\n return this._instance || (this._instance = new this())\r\n }\r\n\r\n /** pins given equipment to corresponding category */\r\n addPin (x: EquipmentMin): void {\r\n this.pins[x.category] = x\r\n }\r\n\r\n /** removes pin of category */\r\n removePin (cat: EquipmentCategory): void {\r\n this.pins[cat] = undefined\r\n }\r\n\r\n /** adds given equipment to exclusion list of corresponding category */\r\n addExclusion (x: EquipmentMin): void {\r\n this.exclusions[x.category].push(x)\r\n }\r\n\r\n /** removes equipment from exclusion list */\r\n removeExclusion (x: EquipmentMin): void {\r\n const arr = this.exclusions[x.category]\r\n const index = arr.findIndex((y) => y.name === x.name)\r\n this.exclusions[x.category].splice(index, 1)\r\n }\r\n\r\n /** returns true if pin is same as given element */\r\n hasPin (x: EquipmentMin | undefined): boolean {\r\n if (!x) return false\r\n if (x.isGeneric) return false\r\n\r\n const pin = this.pins[x.category]\r\n if (!pin) return false\r\n return pin.name === x.name\r\n }\r\n\r\n /** returns true if piece is already excluded */\r\n hasExclusion (x: EquipmentMin): boolean {\r\n return !!this.exclusions[x.category].find(y => y.name === x.name)\r\n }\r\n\r\n /** serializes settings as json */\r\n serialize (): string {\r\n return JSON.stringify({ pins: this.pins, exclusions: this.exclusions })\r\n }\r\n\r\n /** populate settings from json */\r\n deserialize (raw: string): void {\r\n const parsed = JSON.parse(raw) as {\r\n pins: (EquipmentMin | undefined)[];\r\n exclusions: EquipmentMin[][];\r\n\r\n }\r\n this.pins = parsed.pins\r\n this.exclusions = parsed.exclusions\r\n }\r\n}\r\n","export const htmlToElement = (html: string): Node => {\r\n const template = document.createElement('template')\r\n html = html.trim()\r\n template.innerHTML = html\r\n return template.content.firstChild as Node\r\n}\r\n","import EquipmentCategory from '../../data-provider/models/equipment/EquipmentCategory'\r\nimport UserEquipmentSettings from '../../data-provider/models/user/UserEquipmentSettings'\r\nimport { htmlToElement } from '../../helper/html.helper'\r\nimport EquipmentMin from '../../data-provider/models/equipment/EquipmentMin'\r\n\r\nconst STORAGE_KEY = 'dos-eq-settings'\r\n\r\nconst saveToStorage = () => {\r\n window.localStorage.setItem(\r\n STORAGE_KEY,\r\n UserEquipmentSettings.Instance.serialize(),\r\n )\r\n}\r\n\r\nconst getFromStorage = () => {\r\n return window.localStorage.getItem(STORAGE_KEY)\r\n}\r\n\r\nconst getExclusionElement = (x: EquipmentMin) => {\r\n const root = document.createElement('div')\r\n root.style.textAlign = 'left'\r\n root.setAttribute('data-name', x.name)\r\n root.classList.add('eq-exclusion-ele')\r\n\r\n const content = htmlToElement(`${x.name}`)\r\n const remove = htmlToElement('X') as HTMLSpanElement\r\n remove.addEventListener('click', () => removeExlusion(x))\r\n remove.style.marginRight = '1em'\r\n remove.style.marginLeft = '1em'\r\n remove.style.cursor = 'pointer'\r\n\r\n root.appendChild(remove)\r\n root.appendChild(content)\r\n return root\r\n}\r\n\r\nconst getPinPicker = (cat: EquipmentCategory, eq: EquipmentMin[]) => {\r\n const root = document.createElement('div')\r\n root.style.textAlign = 'left'\r\n\r\n const content = document.createElement('select')\r\n content.setAttribute('id', `eq-${cat}-pin-picker`)\r\n content.style.width = '72%'\r\n for (const x of [{ name: 'None', category: cat }].concat(...eq)) {\r\n content.appendChild(\r\n htmlToElement(``),\r\n )\r\n }\r\n content.addEventListener('change', () => {\r\n addPin({ name: content.value, category: cat })\r\n })\r\n const remove = htmlToElement('X') as HTMLSpanElement\r\n remove.addEventListener('click', () => removePin(eq[0].category))\r\n remove.style.marginRight = '1em'\r\n remove.style.marginLeft = '1em'\r\n remove.style.cursor = 'pointer'\r\n\r\n root.appendChild(remove)\r\n root.appendChild(content)\r\n return root\r\n}\r\n\r\nconst renderColumns = (armor: EquipmentMin[][]) => {\r\n const parent = document.getElementById('eq-container')\r\n for (const item of [\r\n [EquipmentCategory.HEAD, 'Head', armor[0]],\r\n [EquipmentCategory.CHEST, 'Chest', armor[1]],\r\n [EquipmentCategory.ARMS, 'Arms', armor[2]],\r\n [EquipmentCategory.WAIST, 'Waist', armor[3]],\r\n [EquipmentCategory.LEGS, 'Legs', armor[4]],\r\n ]) {\r\n const cat = item[0] as EquipmentCategory\r\n const name = item[1] as string\r\n const eq = item[2] as EquipmentMin[]\r\n\r\n const root = htmlToElement(`
`)\r\n\r\n // pins\r\n const pinHeader = htmlToElement(`
${name} Pinned
`)\r\n const pinContent = htmlToElement('
')\r\n const pinElement = getPinPicker(cat, eq)\r\n pinContent.appendChild(pinElement)\r\n\r\n // exclusions\r\n const exclusionHeader = htmlToElement(`
${name} Excluded
`)\r\n const exclusionContent = htmlToElement(`
`)\r\n\r\n root.appendChild(pinHeader)\r\n root.appendChild(pinContent)\r\n root.appendChild(exclusionHeader)\r\n root.appendChild(exclusionContent)\r\n parent!.appendChild(root)\r\n }\r\n}\r\n\r\nconst _addExclusion = (x: EquipmentMin) => {\r\n const parent = document.getElementById(`eq-${x.category}-exclusion`)\r\n parent!.appendChild(getExclusionElement(x))\r\n}\r\n\r\nexport const removeExlusion = (x: EquipmentMin) => {\r\n const ele = Array.from(document.getElementsByClassName('eq-exclusion-ele')).find((a) => {\r\n const b = a as HTMLElement\r\n return b.getAttribute('data-name') === x.name\r\n }) as HTMLElement\r\n if (!ele) return\r\n\r\n ele.remove()\r\n UserEquipmentSettings.Instance.removeExclusion(x)\r\n saveToStorage()\r\n}\r\n\r\nexport const removePin = (cat: EquipmentCategory) => {\r\n const ele = document.getElementById(`eq-${cat}-pin-picker`) as HTMLSelectElement\r\n UserEquipmentSettings.Instance.removePin(cat)\r\n ele.selectedIndex = 0\r\n saveToStorage()\r\n}\r\n\r\nexport const addExclusion = (x: EquipmentMin) => {\r\n if (UserEquipmentSettings.Instance.hasExclusion(x)) return\r\n UserEquipmentSettings.Instance.addExclusion(x)\r\n _addExclusion(x)\r\n saveToStorage()\r\n}\r\n\r\nexport const addPin = (x: EquipmentMin) => {\r\n if (x.name === 'None') {\r\n UserEquipmentSettings.Instance.removePin(x.category)\r\n saveToStorage()\r\n return\r\n }\r\n\r\n UserEquipmentSettings.Instance.addPin(x)\r\n saveToStorage()\r\n const select = document.getElementById(\r\n `eq-${x.category}-pin-picker`,\r\n ) as HTMLSelectElement\r\n select.value = x.name\r\n}\r\n\r\nexport const renderEqSettings = (armor: EquipmentMin[][]) => {\r\n renderColumns(armor)\r\n\r\n const raw = getFromStorage()\r\n if (raw) UserEquipmentSettings.Instance.deserialize(raw)\r\n\r\n for (const exclusionList of UserEquipmentSettings.Instance.exclusions) {\r\n for (const x of exclusionList) {\r\n _addExclusion(x)\r\n }\r\n }\r\n UserEquipmentSettings.Instance.pins.forEach((x, i) => {\r\n if (x) addPin(x)\r\n else removePin(i)\r\n })\r\n}\r\n","const onMouseEnter = (ele: Element) => {\r\n if (!ele.classList.contains('navbar-selected')) {\r\n ele.classList.add('navbar-hover')\r\n }\r\n}\r\n\r\nconst onMouseLeave = (ele: Element) => {\r\n ele.classList.remove('navbar-hover')\r\n}\r\n\r\nconst onClick = (parent: Element, ele: Element) => {\r\n for (const li of Array.from(parent.children)) {\r\n li.classList.remove('navbar-selected')\r\n li.classList.remove('navbar-hover')\r\n }\r\n ele.classList.add('navbar-selected')\r\n\r\n const selection = ele.getAttribute('data-selection')\r\n const panels = document.getElementsByClassName('panel')\r\n\r\n for (const panel of Array.from(panels)) {\r\n const panelNumber = panel.getAttribute('data-panel-number')\r\n if (selection === panelNumber) {\r\n panel.classList.remove('hidden')\r\n } else {\r\n panel.classList.add('hidden')\r\n }\r\n }\r\n}\r\n\r\n/** initiate navbar state and attaches handlers */\r\nexport const initiateNavbar = () => {\r\n const ul = document.getElementById('navbar-container')!\r\n .children[0] as HTMLElement\r\n\r\n for (const li of Array.from(ul.children)) {\r\n li.addEventListener('mouseenter', () => onMouseEnter(li))\r\n li.addEventListener('mouseleave', () => onMouseLeave(li))\r\n li.addEventListener('click', () => onClick(ul, li))\r\n }\r\n\r\n onClick(ul, ul.children[0])\r\n}\r\n","import SkillActivationMap from '../../data-provider/models/skills/SkillActivationMap'\r\nimport SkillActivation from '../../data-provider/models/skills/SkillActivation'\r\nimport { htmlToElement } from '../../helper/html.helper'\r\n\r\nconst getActivationElements = () => {\r\n return Array.from(document.getElementsByClassName('search-picker-activation'))\r\n}\r\n\r\n/** uncheck all selected skill activations */\r\nconst resetSkillActivations = () => {\r\n const activations = getActivationElements()\r\n\r\n activations.forEach((element) => {\r\n const checkbox = element.children[0] as HTMLInputElement\r\n const text = element.children[1] as HTMLElement\r\n\r\n checkbox.checked = false\r\n text.classList.remove('highlighted')\r\n })\r\n}\r\n\r\n/** get list of currently selected skill activations */\r\nconst getSkillActivations = (): SkillActivation[] => {\r\n const activations = getActivationElements()\r\n\r\n return activations\r\n // get only checked skills\r\n .filter((element) => {\r\n const checkbox = element.children[0] as HTMLInputElement\r\n return checkbox.checked\r\n })\r\n // map to proper data model\r\n .map((element) => {\r\n const name = element.textContent!.trim()\r\n const id = parseInt(element.getAttribute('data-id')!)\r\n const requiredSkill = parseInt(element.getAttribute('data-skill')!)\r\n const requiredPoints = parseInt(element.getAttribute('data-points')!)\r\n const category = parseInt(element.parentElement!.getAttribute('data-category')!)\r\n\r\n return {\r\n id,\r\n name,\r\n requiredPoints,\r\n requiredSkill,\r\n isPositive: requiredPoints > 0,\r\n category,\r\n }\r\n })\r\n}\r\n\r\nconst renderCategories = (skillCategories: string[]) => {\r\n for (const index in skillCategories) {\r\n const categoryName = skillCategories[index]\r\n const node = htmlToElement(`\r\n
\r\n
${categoryName}
\r\n
\r\n `)\r\n document.getElementById('search-skill-picker')!.appendChild(node)\r\n }\r\n}\r\n\r\nconst renderActivations = (skillActivation: SkillActivationMap) => {\r\n skillActivation.forEach((activationList) => {\r\n activationList\r\n .filter(activation => activation.isPositive)\r\n .reverse()\r\n .forEach((activation) => {\r\n const node = htmlToElement(`\r\n
\r\n \r\n
${activation.name}
\r\n
\r\n `)\r\n document.getElementById(`search-picker-category-${activation.category}`)!.appendChild(node)\r\n })\r\n })\r\n}\r\n\r\nconst attachClickListener = () => {\r\n const elements = Array.from(document.getElementsByClassName('search-picker-activation'))\r\n for (const item of elements) {\r\n item.addEventListener('click', (event) => {\r\n // tick checkbox\r\n const target = event.target as Element\r\n const input: HTMLInputElement = item.children[0] as HTMLInputElement\r\n if (target.tagName !== 'INPUT') {\r\n input.checked = !input.checked\r\n }\r\n\r\n // add highlight class\r\n const text = item.children[1]\r\n input.checked ? text.classList.add('highlighted') : text.classList.remove('highlighted')\r\n })\r\n }\r\n}\r\n\r\n/** render all components of skillpicker and attach handlers */\r\nconst renderSkillPicker = (\r\n skillActivation: SkillActivationMap,\r\n skillCategories: string[],\r\n) => {\r\n renderCategories(skillCategories)\r\n renderActivations(skillActivation)\r\n attachClickListener()\r\n}\r\n\r\nexport {\r\n renderSkillPicker,\r\n getSkillActivations,\r\n resetSkillActivations,\r\n}\r\n","import { TORSO_UP_ID } from '../../data-provider/data-provider.module'\r\nimport EquipmentCategory from '../../data-provider/models/equipment/EquipmentCategory'\r\nimport EquipmentSkills from '../../data-provider/models/equipment/EquipmentSkills'\r\nimport ScoredSkilledEquipment from './ScoredSkilledEquipment'\r\n\r\nexport default class ArmorEvaluation {\r\n equipment: ScoredSkilledEquipment[]\r\n skills: EquipmentSkills = new EquipmentSkills()\r\n score: number = 0\r\n totalSlots: number = 0\r\n torsoUp: number = 0\r\n\r\n constructor (\r\n equipment: ScoredSkilledEquipment[],\r\n skills?: EquipmentSkills,\r\n score?: number,\r\n totalSlots?: number,\r\n torsoUp?: number,\r\n ) {\r\n this.equipment = equipment\r\n if (skills) this.skills = skills\r\n if (score) this.score = score\r\n if (totalSlots) this.totalSlots = totalSlots\r\n if (torsoUp) this.torsoUp = torsoUp\r\n }\r\n\r\n getSlots () {\r\n return this.equipment\r\n .map(x => x.slots)\r\n .filter(x => x > 0)\r\n }\r\n\r\n getSlotsExceptChest () {\r\n return this.equipment\r\n .filter(x => x.category !== EquipmentCategory.CHEST)\r\n .map(x => x.slots)\r\n .filter(x => x > 0)\r\n }\r\n\r\n copy () {\r\n return new ArmorEvaluation(\r\n this.equipment.map(x => x),\r\n new EquipmentSkills(this.skills),\r\n this.score,\r\n this.totalSlots,\r\n this.torsoUp,\r\n )\r\n }\r\n\r\n addPiece (piece: ScoredSkilledEquipment) {\r\n if (piece.skills.has(TORSO_UP_ID)) this.torsoUp++\r\n else {\r\n if (piece.category === EquipmentCategory.CHEST && this.torsoUp > 0) {\r\n for (const [k, v] of piece.skills) {\r\n this.skills.add(k, v * (this.torsoUp + 1))\r\n }\r\n } else {\r\n this.skills.addSkills(piece.skills)\r\n }\r\n }\r\n this.equipment[piece.category] = piece\r\n this.score = this.score + piece.score\r\n this.totalSlots = this.totalSlots + piece.slots\r\n }\r\n}\r\n","import Defense from '../../data-provider/models/equipment/Defense'\r\nimport EquipmentSkills from '../../data-provider/models/equipment/EquipmentSkills'\r\nimport Resistance from '../../data-provider/models/equipment/Resistance'\r\nimport Evaluation from './Evaluation'\r\nimport ArmorPiece from '../../data-provider/models/equipment/ArmorPiece'\r\nimport Decoration from '../../data-provider/models/equipment/Decoration'\r\nimport Charm from '../../data-provider/models/equipment/Charm'\r\nimport SkillActivationMap from '../../data-provider/models/skills/SkillActivationMap'\r\nimport SkillActivation from '../../data-provider/models/skills/SkillActivation'\r\nimport ArmorEvaluation from '../../scorer/models/ArmorEvaluation'\r\nimport DecoEvaluation from '../../scorer/models/DecoEvaluation'\r\nimport EquipmentCategory from '../../data-provider/models/equipment/EquipmentCategory'\r\n\r\nexport default class ArmorSet {\r\n readonly head: ArmorPiece\r\n readonly chest: ArmorPiece\r\n readonly arms: ArmorPiece\r\n readonly waist: ArmorPiece\r\n readonly legs: ArmorPiece\r\n readonly charm: Charm\r\n readonly decos: Decoration[]\r\n\r\n evaluation: Evaluation\r\n\r\n constructor (\r\n armorEval: ArmorEvaluation,\r\n decoEval: DecoEvaluation,\r\n skillActivations: SkillActivationMap,\r\n ) {\r\n const chest = armorEval.equipment[EquipmentCategory.CHEST] as unknown as ArmorPiece\r\n\r\n this.chest = armorEval.torsoUp > 0 ? ArmorSet.applyTorsoUpToChest(chest, armorEval.torsoUp) : chest\r\n this.head = armorEval.equipment[EquipmentCategory.HEAD] as unknown as ArmorPiece\r\n this.arms = armorEval.equipment[EquipmentCategory.ARMS] as unknown as ArmorPiece\r\n this.waist = armorEval.equipment[EquipmentCategory.WAIST] as unknown as ArmorPiece\r\n this.legs = armorEval.equipment[EquipmentCategory.LEGS] as unknown as ArmorPiece\r\n this.charm = armorEval.equipment[EquipmentCategory.CHARM] as unknown as Charm\r\n this.decos = decoEval.decos\r\n this.evaluation = this.evaluate(armorEval, decoEval, skillActivations)\r\n }\r\n\r\n private static applyTorsoUpToChest (chest: ArmorPiece, torsoUp: number): ArmorPiece {\r\n const newSkills = new EquipmentSkills(chest.skills)\r\n newSkills.multiply(torsoUp + 1)\r\n return {\r\n ...chest,\r\n skills: newSkills,\r\n }\r\n }\r\n\r\n getPieces (): ArmorPiece[] {\r\n return [\r\n this.head,\r\n this.chest,\r\n this.arms,\r\n this.waist,\r\n this.legs,\r\n ]\r\n }\r\n\r\n evaluate (\r\n armorEval: ArmorEvaluation,\r\n decoEval: DecoEvaluation,\r\n activations: SkillActivationMap,\r\n ): Evaluation {\r\n const totalDefense: Defense = { base: 0, max: 0 }\r\n let totalResistance: Resistance = [0, 0, 0, 0, 0]\r\n\r\n // iterate over all armor pieces\r\n for (const piece of this.getPieces()) {\r\n totalDefense.base += piece.defense.base\r\n totalDefense.max += piece.defense.max\r\n totalResistance = piece.resistance.map((res, i) => res + totalResistance[i])\r\n }\r\n\r\n // get total skills\r\n const decoSkills = new EquipmentSkills()\r\n decoEval.decos.forEach(d => decoSkills.addSkills(d.skills))\r\n const skills = new EquipmentSkills(armorEval.skills)\r\n skills.addSkills(new EquipmentSkills(decoSkills))\r\n\r\n // get activations\r\n const a: SkillActivation[] = []\r\n for (const [sId, sVal] of skills) {\r\n if (Math.abs(sVal) < 10) {\r\n continue\r\n }\r\n\r\n const activationsOfSkill = activations.get(sId)!\r\n .filter(act => {\r\n return act.isPositive\r\n ? sVal >= act.requiredPoints\r\n : sVal <= act.requiredPoints\r\n })\r\n a.push(...activationsOfSkill)\r\n }\r\n\r\n // build, save and return model\r\n const thisEval: Evaluation = {\r\n defense: totalDefense,\r\n resistance: totalResistance,\r\n activations: a,\r\n skills,\r\n torsoUp: armorEval.torsoUp,\r\n }\r\n this.evaluation = thisEval\r\n return thisEval\r\n }\r\n}\r\n","/* eslint-disable no-unused-vars */\r\nenum ArmorType {\r\n ALL = 0,\r\n BLADEMASTER = 1,\r\n GUNNER = 2,\r\n}\r\n\r\nexport default ArmorType\r\n","import { DUMMY_PIECE, MAX_RARITY, TORSO_UP_ID } from '../data-provider/data-provider.module'\r\nimport ArmorPiece from '../data-provider/models/equipment/ArmorPiece'\r\nimport ArmorType from '../data-provider/models/equipment/ArmorType'\r\nimport Charm from '../data-provider/models/equipment/Charm'\r\nimport EquipmentCategory from '../data-provider/models/equipment/EquipmentCategory'\r\nimport EquipmentMin from '../data-provider/models/equipment/EquipmentMin'\r\nimport EquipmentSkills from '../data-provider/models/equipment/EquipmentSkills'\r\nimport Rarity from '../data-provider/models/equipment/Rarity'\r\nimport SkilledItem from '../data-provider/models/equipment/SkilledItem'\r\nimport Slots from '../data-provider/models/equipment/Slots'\r\nimport SkillActivation from '../data-provider/models/skills/SkillActivation'\r\n\r\nconst filterType = (piece: ArmorPiece, type: ArmorType) => {\r\n return piece.type === ArmorType.ALL || piece.type === type\r\n}\r\n\r\nconst filterExclusions = (piece: ArmorPiece, exclusionNames: string[]) => {\r\n return !exclusionNames.includes(piece.name)\r\n}\r\n\r\nconst filterRarity = (item: SkilledItem, rarity: Rarity) => {\r\n return item.rarity <= rarity\r\n}\r\n\r\nconst filterHasSkill = (item: SkilledItem, desiredSkills: SkillActivation[]) => {\r\n return desiredSkills.some((act) => {\r\n const s = item.skills.get(act.requiredSkill)\r\n return s && s > 0\r\n })\r\n}\r\n\r\nconst applyRarityFilter = (items: SkilledItem[], rarity: Rarity) => {\r\n if (rarity === MAX_RARITY) return items\r\n return items.filter(x => filterRarity(x, rarity))\r\n}\r\n\r\nconst applyCharmFilter = (charms: Charm[], skills: SkillActivation[]) => {\r\n // find generic slot charms\r\n const genericSlotCharms: Charm[] = []\r\n for (const slots of [3, 2, 1]) {\r\n const x = charms.find(c => c.slots === slots)\r\n if (x) {\r\n const newC: Charm = {\r\n name: `${slots} Slot Charm`,\r\n slots: slots as Slots,\r\n category: EquipmentCategory.CHARM,\r\n rarity: 0,\r\n skills: new EquipmentSkills(),\r\n }\r\n genericSlotCharms.push(newC)\r\n }\r\n }\r\n\r\n // build list of charms with wanted skills or with slots\r\n const result = charms\r\n .filter(x => filterHasSkill(x, skills))\r\n .concat(...genericSlotCharms)\r\n\r\n // return list with dummy charm if there are no pieces\r\n if (result.length === 0) {\r\n return [{\r\n ...DUMMY_PIECE,\r\n category: EquipmentCategory.CHARM,\r\n }]\r\n }\r\n\r\n return result\r\n}\r\n\r\nconst applyArmorFilter = (\r\n pieces: ArmorPiece[],\r\n rarity: Rarity,\r\n type: ArmorType,\r\n category: EquipmentCategory,\r\n pin: EquipmentMin | undefined,\r\n exclusions: EquipmentMin[],\r\n skills: SkillActivation[],\r\n) => {\r\n if (pin) return [pieces.find(x => x.name === pin.name)!]\r\n\r\n const excludedNames = exclusions.map(e => e.name)\r\n\r\n const rarityFiltered = applyRarityFilter(pieces, rarity) as ArmorPiece[]\r\n const typeFiltered = rarityFiltered.filter(p => filterType(p, type))\r\n const exclusionFiltered = typeFiltered.filter(p => filterExclusions(p, excludedNames))\r\n const sorted = exclusionFiltered.sort((a, b) => b.defense.max - a.defense.max)\r\n\r\n // find generic slot pieces with highest defense\r\n const genericSlotPieces: ArmorPiece[] = []\r\n for (const slots of [3, 2, 1]) {\r\n const x = sorted.find(p => p.slots === slots)\r\n if (x) {\r\n const p: ArmorPiece = {\r\n type: x.type,\r\n defense: x.defense,\r\n resistance: x.resistance,\r\n name: `${slots} Slot Piece`,\r\n slots: slots as Slots,\r\n category: x.category,\r\n rarity: x.rarity,\r\n skills: new EquipmentSkills(),\r\n isGeneric: true,\r\n }\r\n if (filterExclusions(p, excludedNames)) genericSlotPieces.push(p)\r\n }\r\n }\r\n\r\n // find piece with torso up with highest defense\r\n const torsoUpPieces: ArmorPiece[] = [sorted.find(p => p.skills.has(TORSO_UP_ID))]\r\n .filter(x => x !== undefined)\r\n .map(x => {\r\n const renamed: ArmorPiece = {\r\n ...x!,\r\n name: 'Torso Up Piece',\r\n isGeneric: true,\r\n }\r\n return renamed\r\n })\r\n .filter(x => filterExclusions(x, excludedNames)) as ArmorPiece[]\r\n\r\n // build list of pieces with wanted skills, with slots, or with torso up\r\n const result = sorted\r\n .filter(x => filterHasSkill(x, skills))\r\n .concat(...genericSlotPieces)\r\n .concat(...torsoUpPieces)\r\n\r\n // return list with dummy element if there are no pieces\r\n if (result.length === 0) {\r\n return [{\r\n ...DUMMY_PIECE,\r\n type,\r\n category,\r\n }]\r\n }\r\n\r\n return result\r\n}\r\n\r\nexport {\r\n filterType,\r\n filterRarity,\r\n filterHasSkill,\r\n applyRarityFilter,\r\n applyCharmFilter,\r\n applyArmorFilter,\r\n}\r\n","import { TORSO_UP_ID } from '../data-provider/data-provider.module'\r\nimport Decoration from '../data-provider/models/equipment/Decoration'\r\nimport EquipmentSkills from '../data-provider/models/equipment/EquipmentSkills'\r\nimport Slots from '../data-provider/models/equipment/Slots'\r\nimport DecoPermutation from './models/DecoPermutation'\r\nimport ScoredSkilledEquipment from './models/ScoredSkilledEquipment'\r\n\r\n/** get score of a skill map relative to wanted skills */\r\nconst getScoreFromSkillMap = (m: EquipmentSkills, w: EquipmentSkills): number => {\r\n let score = 0\r\n for (const [sId] of w) {\r\n score += m.get(sId) || 0\r\n }\r\n\r\n return score\r\n}\r\n\r\nconst scoreTorsoUpPieces = (piece: ScoredSkilledEquipment, maxTorsoScore: number) => {\r\n if (piece.skills.has(TORSO_UP_ID)) {\r\n const newPiece: ScoredSkilledEquipment = {\r\n ...piece,\r\n score: maxTorsoScore,\r\n }\r\n\r\n return newPiece\r\n }\r\n\r\n return piece\r\n}\r\n\r\n/** apply score to a list of decos */\r\nconst evaluateListOfDecos = (decos: Decoration[], wantedSkills: EquipmentSkills): DecoPermutation => {\r\n const skillMap: EquipmentSkills = new EquipmentSkills()\r\n decos.forEach(deco => skillMap.addSkills(deco.skills))\r\n\r\n // get max of default and computed score\r\n // default score can only be higher than computed when the decos of 2 wanted skills cancel each other out (e.g. handicraft and sharpness)\r\n const computedScore = getScoreFromSkillMap(skillMap, wantedSkills)\r\n const defaultScore = Math.max(...Array.from(skillMap.values()))\r\n const score = (Math.max(computedScore, defaultScore))\r\n\r\n return {\r\n skills: skillMap,\r\n decos,\r\n score,\r\n }\r\n}\r\n\r\n/**\r\n * checks if deco permutation is the same or better than comparison in respect to wanted skills\r\n * returns 0 if better/different, returns 1 if same, returns 2 if worse\r\n */\r\nconst decoPermWorseOrSameAsComparison = (perm: DecoPermutation, comparison: DecoPermutation, wantedSkills: EquipmentSkills) => {\r\n const arr = []\r\n for (const w of Array.from(wantedSkills.entries())) {\r\n const wId = w[0]\r\n const a = perm.skills.get(wId)\r\n const b = comparison.skills.get(wId)\r\n\r\n if (a > b) return 0\r\n if (a === b) arr.push(1)\r\n else arr.push(2)\r\n }\r\n return Math.max(...arr)\r\n}\r\n\r\n/** returns a mapping of slot level to the amount of score it is worth */\r\nconst getDecoSlotScoreMap = (decoPermutationsPerSlotLevel: Map): Map => {\r\n const m = new Map(Array.from(decoPermutationsPerSlotLevel.entries()).map(([slotLevel, permList]) => {\r\n return [slotLevel, Math.max(...permList.map(x => x.score))]\r\n }))\r\n m.set(0, 0)\r\n\r\n return m\r\n}\r\n\r\n/** prune a list of deco permutations of all duplicates and downgrades */\r\nconst pruneDecoPermutations = (permList: DecoPermutation[], wantedSkills: EquipmentSkills): DecoPermutation[] => {\r\n // we go through entire list left through right => x\r\n // for each ele, we check the entire list again => y\r\n // if y is an upgrade of x, then x will be filtered out\r\n // if y is the same as x, and y is further right in the list, then x will be filtered\r\n // only if x has no upgrade, and no element right of it that is the same will it remain in the list\r\n const res = permList\r\n .filter((x, i) => {\r\n let shouldBeFiltered: boolean = false\r\n\r\n for (let j = 0; j < permList.length; j++) {\r\n if (i === j) continue\r\n\r\n const y = permList[j]\r\n const v = decoPermWorseOrSameAsComparison(x, y, wantedSkills)\r\n\r\n if (v === 2) {\r\n shouldBeFiltered = true\r\n break\r\n }\r\n\r\n if (j > i && v === 1) {\r\n shouldBeFiltered = true\r\n break\r\n }\r\n }\r\n\r\n return !shouldBeFiltered\r\n })\r\n\r\n return res\r\n}\r\n\r\nexport {\r\n getScoreFromSkillMap,\r\n scoreTorsoUpPieces,\r\n evaluateListOfDecos,\r\n decoPermWorseOrSameAsComparison,\r\n getDecoSlotScoreMap,\r\n pruneDecoPermutations,\r\n}\r\n","import Decoration from '../../data-provider/models/equipment/Decoration'\r\nimport EquipmentSkills from '../../data-provider/models/equipment/EquipmentSkills'\r\nimport Slots from '../../data-provider/models/equipment/Slots'\r\nimport DecoMinSlotMap from './DecoMinSlotMap'\r\nimport DecoPermutation from './DecoPermutation'\r\n\r\nexport default class DecoEvaluation {\r\n decoMinSlotMap: DecoMinSlotMap\r\n unusedSlotsSum: number\r\n missingSkills: EquipmentSkills\r\n decos: Decoration[] = []\r\n requiredSlots: number = 0\r\n\r\n constructor (\r\n decoMinSlotMap: DecoMinSlotMap,\r\n unusedSlotsSum: number,\r\n missingSkills: EquipmentSkills,\r\n decos?: Decoration[],\r\n requiredSlots?: number,\r\n ) {\r\n this.decoMinSlotMap = decoMinSlotMap\r\n this.unusedSlotsSum = unusedSlotsSum\r\n this.missingSkills = missingSkills\r\n if (decos) this.decos = decos\r\n this.requiredSlots = requiredSlots || this.calculateRequiredSlots()\r\n }\r\n\r\n copy () {\r\n return new DecoEvaluation(\r\n this.decoMinSlotMap,\r\n this.unusedSlotsSum,\r\n new EquipmentSkills(this.missingSkills),\r\n this.decos.map(x => x),\r\n this.requiredSlots,\r\n )\r\n }\r\n\r\n calculateRequiredSlots (): number {\r\n let newRequiredSlots: number = 0\r\n for (const w of this.missingSkills) {\r\n const sId = w[0]\r\n const sVal = w[1]\r\n newRequiredSlots += this.decoMinSlotMap.getMinRequiredSlotsForSkill(sId, sVal)\r\n }\r\n this.requiredSlots = newRequiredSlots\r\n return newRequiredSlots\r\n }\r\n\r\n addPerm (perm: DecoPermutation, slotLevel: Slots) {\r\n this.unusedSlotsSum -= slotLevel\r\n this.decos.push(...perm.decos)\r\n\r\n // use custom loop instead of EquipmentSkills.substractSkills and DecoEvaluation.calculateRequiredSlots\r\n // to save on processing because this method is called a lot\r\n let newRequiredSlots: number = 0\r\n for (const w of this.missingSkills) {\r\n const sId = w[0]\r\n const sVal = w[1]\r\n\r\n const newVal = sVal - perm.skills.get(sId)\r\n this.missingSkills.set(sId, newVal)\r\n newRequiredSlots += this.decoMinSlotMap.getMinRequiredSlotsForSkill(sId, newVal)\r\n }\r\n\r\n this.requiredSlots = newRequiredSlots\r\n }\r\n}\r\n","import Decoration from '../../data-provider/models/equipment/Decoration'\r\nimport EquipmentSkills from '../../data-provider/models/equipment/EquipmentSkills'\r\nimport GameID from '../../data-provider/models/GameId'\r\n\r\nfunction * decoVariationMinSlotsGenerator (\r\n decosOfSkill: Decoration[],\r\n skillId: GameID,\r\n requiredPoints: number,\r\n requiredSlots: number,\r\n existingPoints: number,\r\n): Generator {\r\n for (const deco of decosOfSkill) {\r\n const newExistingPoints = existingPoints + deco.skills.get(skillId)!\r\n const newRequiredSlots = requiredSlots + deco.requiredSlots\r\n\r\n if (newExistingPoints >= requiredPoints) {\r\n yield newRequiredSlots\r\n } else {\r\n yield * decoVariationMinSlotsGenerator(\r\n decosOfSkill,\r\n skillId,\r\n requiredPoints,\r\n newRequiredSlots,\r\n newExistingPoints,\r\n )\r\n }\r\n }\r\n}\r\n\r\n/** calculates and saves how many slots are required to get x points of a certain skill */\r\nexport default class DecoMinSlotMap {\r\n private static readonly DUMMY_SCORE = 1000\r\n\r\n private decorationsOfSkillMap: Map = new Map()\r\n private calculations: Map> = new Map()\r\n\r\n constructor (allDecos: Decoration[], wantedSkills: EquipmentSkills) {\r\n for (const w of wantedSkills) {\r\n const sId = w[0]\r\n\r\n // set decorations of skill\r\n const decosOfSkill = allDecos\r\n .filter(x => x.skills.get(sId) > 0)\r\n .sort((a, b) => b.skills.get(sId) - a.skills.get(sId))\r\n this.decorationsOfSkillMap.set(sId, decosOfSkill)\r\n\r\n // init calculation map of that skill\r\n this.calculations.set(sId, new Map())\r\n }\r\n }\r\n\r\n private calculateMinRequiredSlots (skillId: GameID, skillPoints: number): number {\r\n const decosOfSkill = this.decorationsOfSkillMap.get(skillId)!\r\n if (decosOfSkill.length === 0) return DecoMinSlotMap.DUMMY_SCORE\r\n\r\n let minRequiredSlots = DecoMinSlotMap.DUMMY_SCORE\r\n for (const reqSlots of decoVariationMinSlotsGenerator(decosOfSkill, skillId, skillPoints, 0, 0)) {\r\n if (reqSlots < minRequiredSlots) minRequiredSlots = reqSlots\r\n }\r\n\r\n return minRequiredSlots\r\n }\r\n\r\n getMinRequiredSlotsForSkill (skillId: GameID, skillPoints: number): number {\r\n const m = this.calculations.get(skillId)!\r\n\r\n if (skillPoints <= 0) return 0\r\n if (m.has(skillPoints)) return m.get(skillPoints)!\r\n\r\n const newCalc = this.calculateMinRequiredSlots(skillId, skillPoints)\r\n m.set(skillPoints, newCalc)\r\n return newCalc\r\n }\r\n}\r\n","import { DUMMY_PIECE } from '../data-provider/data-provider.module'\r\nimport ArmorPiece from '../data-provider/models/equipment/ArmorPiece'\r\nimport ArmorType from '../data-provider/models/equipment/ArmorType'\r\nimport Charm from '../data-provider/models/equipment/Charm'\r\nimport Decoration from '../data-provider/models/equipment/Decoration'\r\nimport EquipmentCategory from '../data-provider/models/equipment/EquipmentCategory'\r\nimport EquipmentSkills from '../data-provider/models/equipment/EquipmentSkills'\r\nimport SkilledEquipment from '../data-provider/models/equipment/SkilledEquipment'\r\nimport Slots from '../data-provider/models/equipment/Slots'\r\nimport StaticSkillData from '../data-provider/models/skills/StaticSkillData'\r\nimport ArmorEvaluation from '../scorer/models/ArmorEvaluation'\r\nimport ArmorSet from './models/ArmorSet'\r\nimport DecoPermutation from '../scorer/models/DecoPermutation'\r\nimport SearchConstraints from './models/SearchConstraints'\r\nimport ScoredSkilledEquipment from '../scorer/models/ScoredSkilledEquipment'\r\nimport { applyArmorFilter, applyCharmFilter, applyRarityFilter, filterHasSkill } from '../data-filter/data-filter.module'\r\nimport { pruneDecoPermutations, evaluateListOfDecos, getDecoSlotScoreMap, getScoreFromSkillMap, scoreTorsoUpPieces } from '../scorer/scorer.module'\r\nimport DecoEvaluation from '../scorer/models/DecoEvaluation'\r\nimport DecoMinSlotMap from '../scorer/models/DecoMinSlotMap'\r\n\r\n// #region initial search data\r\n/** get initial armor eval with all dummy pieces */\r\nconst getIntiailArmorEval = (type: ArmorType) => {\r\n const categoryArray = [\r\n EquipmentCategory.HEAD,\r\n EquipmentCategory.CHEST,\r\n EquipmentCategory.ARMS,\r\n EquipmentCategory.WAIST,\r\n EquipmentCategory.LEGS,\r\n EquipmentCategory.CHARM,\r\n ]\r\n\r\n const pieces: ScoredSkilledEquipment[] = categoryArray.map((x) => {\r\n return {\r\n ...DUMMY_PIECE,\r\n type,\r\n category: x,\r\n score: 0,\r\n }\r\n })\r\n\r\n return new ArmorEvaluation(pieces)\r\n}\r\n\r\n/** returns all the ways you can possibly arrange the viable decorations on a given slot level (1, 2, 3) */\r\nconst getDecorationVariationsPerSlotLevel = (\r\n decorations: Decoration[],\r\n wantedSkills: EquipmentSkills,\r\n): Map => {\r\n // get all decorations of specific slot\r\n const rawOneSlots = decorations.filter(d => d.requiredSlots === 1)\r\n const rawTwoSlots = decorations.filter(d => d.requiredSlots === 2)\r\n const rawThreeSlots = decorations.filter(d => d.requiredSlots === 3)\r\n\r\n // create dummy for unused slots\r\n const dummy: Decoration = {\r\n name: 'None',\r\n rarity: 0,\r\n requiredSlots: 0,\r\n skills: new EquipmentSkills(),\r\n }\r\n\r\n // get all variations for 1 slot\r\n const oneSlotVariations = rawOneSlots.map(x => [x]).concat([[dummy]])\r\n const oneSlotEvaluated = pruneDecoPermutations(oneSlotVariations.map(x => evaluateListOfDecos(x, wantedSkills)), wantedSkills)\r\n const prunedOneSlotVariations = oneSlotEvaluated.map(x => x.decos)\r\n\r\n // get all variations for 2 slots\r\n const twoOneSlotDecoVariations = []\r\n for (let i = 0; i < prunedOneSlotVariations.length; i++) {\r\n const x = prunedOneSlotVariations[i]\r\n for (let j = Math.abs(i); j < prunedOneSlotVariations.length; j++) {\r\n const y = prunedOneSlotVariations[j]\r\n twoOneSlotDecoVariations.push(x.concat(y))\r\n }\r\n }\r\n const twoSlotVariations = rawTwoSlots\r\n .map(x => [x])\r\n .concat(twoOneSlotDecoVariations)\r\n const twoSlotEvaluated = pruneDecoPermutations(twoSlotVariations.map(x => evaluateListOfDecos(x, wantedSkills)), wantedSkills)\r\n\r\n // get all variations for 3 slots\r\n const threeOneSlotDecoVariations = []\r\n for (let i = 0; i < prunedOneSlotVariations.length; i++) {\r\n const x = prunedOneSlotVariations[i]\r\n for (let j = Math.abs(i); j < twoOneSlotDecoVariations.length; j++) {\r\n const y = twoOneSlotDecoVariations[j]\r\n threeOneSlotDecoVariations.push(x.concat(y))\r\n }\r\n }\r\n const oneAndTwoSlotDecoVariations = []\r\n for (const oneSlot of rawOneSlots) {\r\n for (const twoSlot of rawTwoSlots) {\r\n oneAndTwoSlotDecoVariations.push([oneSlot, twoSlot])\r\n }\r\n }\r\n const threeSlotVariations = rawThreeSlots\r\n .map(x => [x])\r\n .concat(oneAndTwoSlotDecoVariations)\r\n .concat(threeOneSlotDecoVariations)\r\n const threeSlotEvaluated = pruneDecoPermutations(threeSlotVariations.map(x => evaluateListOfDecos(x, wantedSkills)), wantedSkills)\r\n\r\n // return pruned evaluations\r\n return new Map([\r\n [0, []],\r\n [1, oneSlotEvaluated],\r\n [2, twoSlotEvaluated],\r\n [3, threeSlotEvaluated],\r\n ])\r\n}\r\n// #endregion\r\n\r\n// #region search logic\r\nfunction * getArmorPermutations (\r\n equipment: ScoredSkilledEquipment[][],\r\n previousEval: ArmorEvaluation,\r\n maximumRemainingScore: number[],\r\n requiredScore: number,\r\n categoryIndex: number,\r\n): Generator {\r\n for (const piece of equipment[categoryIndex]) {\r\n // create and eval new set\r\n const thisEval = previousEval.copy()\r\n thisEval.addPiece(piece)\r\n\r\n // yield it if score is sufficient\r\n if (thisEval.score >= requiredScore) yield thisEval\r\n // otherwise check if its possible to still find sets on this branch and break if not\r\n else {\r\n if ((thisEval.score + maximumRemainingScore[categoryIndex]) < requiredScore) break\r\n }\r\n\r\n // then yield the next loop if there is one\r\n if (categoryIndex > 0) {\r\n yield * getArmorPermutations(\r\n equipment,\r\n thisEval,\r\n maximumRemainingScore,\r\n requiredScore,\r\n categoryIndex - 1,\r\n )\r\n }\r\n }\r\n}\r\n\r\nfunction * getDecoPermutations (\r\n decoPermutationsPerSlotLevel: Map,\r\n slotsOfArmor: Slots[],\r\n previousEval: DecoEvaluation,\r\n slotIndex: number,\r\n): Generator {\r\n const slotLevel = slotsOfArmor[slotIndex]\r\n for (const perm of decoPermutationsPerSlotLevel.get(slotLevel)!) {\r\n // create and eval new set\r\n const thisEval = previousEval.copy()\r\n thisEval.addPerm(perm, slotLevel)\r\n\r\n // yield it if score is sufficient\r\n if (thisEval.requiredSlots <= 0) yield thisEval\r\n // otherwise check if its possible to still find sets on this branch and break if not\r\n else {\r\n if (thisEval.unusedSlotsSum < thisEval.requiredSlots) continue\r\n }\r\n\r\n // then yield the next loop if there is one\r\n if (slotIndex > 0) {\r\n yield * getDecoPermutations(\r\n decoPermutationsPerSlotLevel,\r\n slotsOfArmor,\r\n thisEval,\r\n slotIndex - 1,\r\n )\r\n }\r\n }\r\n}\r\n\r\nconst transformTorsoUpDecoPermutation = (perm: DecoPermutation, torsoUp: number): DecoPermutation => {\r\n const factor = torsoUp + 1\r\n\r\n const score = perm.score * factor\r\n const decos = perm.decos.map(d => {\r\n const newSkills = new EquipmentSkills(d.skills)\r\n newSkills.multiply(factor)\r\n const newDeco: Decoration = {\r\n ...d,\r\n affectedByTorsoUp: true,\r\n name: d.name.concat(' (TorsoUp)'),\r\n skills: newSkills,\r\n }\r\n\r\n return newDeco\r\n })\r\n const newTotalSkills = new EquipmentSkills(perm.skills)\r\n newTotalSkills.multiply(factor)\r\n const skills = newTotalSkills\r\n\r\n return {\r\n score,\r\n decos,\r\n skills,\r\n }\r\n}\r\n\r\nconst findSufficientDecoPermutation = (\r\n armorEval: ArmorEvaluation,\r\n constraints: SearchConstraints,\r\n wantedSkills: EquipmentSkills,\r\n decoMinSlotMap: DecoMinSlotMap,\r\n decoPermutationsPerSlotLevel: Map,\r\n): DecoEvaluation | undefined => {\r\n const _inner = (\r\n _slotList: Slots[],\r\n _initialEval: DecoEvaluation,\r\n ): DecoEvaluation | undefined => {\r\n if (_initialEval.requiredSlots <= 0) return _initialEval\r\n if (_initialEval.unusedSlotsSum < _initialEval.requiredSlots) return undefined\r\n if (_slotList.length === 0) return undefined\r\n\r\n const decoEvaluation = getDecoPermutations(\r\n decoPermutationsPerSlotLevel,\r\n _slotList,\r\n _initialEval,\r\n _slotList.length - 1,\r\n ).next().value\r\n\r\n if (decoEvaluation) return decoEvaluation\r\n return undefined\r\n }\r\n\r\n let r: DecoEvaluation | undefined\r\n const torsoSlots = armorEval.equipment[EquipmentCategory.CHEST].slots\r\n const missingSkills = new EquipmentSkills(Array.from(wantedSkills).map(([sId, sVal]) => {\r\n return [sId, sVal - armorEval.skills.get(sId)]\r\n }))\r\n const slotSum = armorEval.totalSlots + constraints.weaponSlots\r\n\r\n if (armorEval.torsoUp > 0 && torsoSlots > 0) {\r\n // if torso up, fill the chest slots and then iterate over permutations from there\r\n const slotList = armorEval.getSlotsExceptChest().concat(constraints.weaponSlots ? constraints.weaponSlots : [])\r\n const slotSumWithoutTorso = slotSum - torsoSlots\r\n const initialEval = new DecoEvaluation(decoMinSlotMap, slotSumWithoutTorso, missingSkills)\r\n for (const chestPerm of decoPermutationsPerSlotLevel.get(torsoSlots)!) {\r\n const transformedPerm = transformTorsoUpDecoPermutation(chestPerm, armorEval.torsoUp)\r\n const copiedEval = initialEval.copy()\r\n copiedEval.addPerm(transformedPerm, torsoSlots)\r\n const temp = _inner(slotList, copiedEval)\r\n if (temp) {\r\n r = temp\r\n break\r\n }\r\n }\r\n } else {\r\n // otherwise just iterate over permutations\r\n const slotList = armorEval.getSlots().concat(constraints.weaponSlots ? constraints.weaponSlots : [])\r\n r = _inner(slotList, new DecoEvaluation(decoMinSlotMap, armorEval.totalSlots + constraints.weaponSlots, missingSkills))\r\n }\r\n\r\n return r\r\n}\r\n\r\nconst findSets = (\r\n armorPieces: ArmorPiece[][],\r\n decorations: Decoration[],\r\n charms: Charm[],\r\n constraints: SearchConstraints,\r\n skillData: StaticSkillData,\r\n) => {\r\n const wantedSkills: EquipmentSkills = new EquipmentSkills(constraints.skillActivations.map(x => [x.requiredSkill, x.requiredPoints]))\r\n const decoPermutationsPerSlotLevel = getDecorationVariationsPerSlotLevel(decorations, wantedSkills)\r\n const slotScoreMap = getDecoSlotScoreMap(decoPermutationsPerSlotLevel)\r\n const initialArmorEval = getIntiailArmorEval(constraints.armorType)\r\n const wantedScore = getScoreFromSkillMap(wantedSkills, wantedSkills) - slotScoreMap.get(constraints.weaponSlots)!\r\n const decoMinSlotMap = new DecoMinSlotMap(decorations, wantedSkills)\r\n\r\n const skilledEquipment: SkilledEquipment[][] = armorPieces\r\n skilledEquipment.push(charms)\r\n\r\n // score equipment\r\n const scoredEquipment: ScoredSkilledEquipment[][] = skilledEquipment\r\n .map(equList => equList.map((equ) => {\r\n const score = slotScoreMap.get(equ.slots)! + getScoreFromSkillMap(equ.skills, wantedSkills)\r\n return {\r\n ...equ,\r\n score,\r\n }\r\n }))\r\n\r\n // reorder equipment and manually rescore torso up pieces\r\n const maxTorsoScore = Math.max(...scoredEquipment[1].map(x => x.score))\r\n const readjustedEquipment = [\r\n scoredEquipment[1], // chest first to simplify torso up calculation\r\n scoredEquipment[0].map(x => scoreTorsoUpPieces(x, maxTorsoScore)),\r\n scoredEquipment[2], // arms cant have torso up\r\n scoredEquipment[3].map(x => scoreTorsoUpPieces(x, maxTorsoScore)),\r\n scoredEquipment[4].map(x => scoreTorsoUpPieces(x, maxTorsoScore)),\r\n scoredEquipment[5], // charm cant have torso up\r\n ]\r\n\r\n // sort equipment by score\r\n const sorted = readjustedEquipment.map(l => l.sort((a, b) => b.score - a.score))\r\n\r\n // get list of maximum score of remaining iterations\r\n const maximumRemainingScore = [0]\r\n let sumOfAllIterations = 0\r\n sorted.map(x => x[0].score).forEach((m) => {\r\n sumOfAllIterations += m\r\n maximumRemainingScore.push(sumOfAllIterations)\r\n })\r\n\r\n let length = 0\r\n const validSets: ArmorSet[] = []\r\n // try all viable armor permuations\r\n for (const armorEvaluation of getArmorPermutations(\r\n sorted,\r\n initialArmorEval,\r\n maximumRemainingScore,\r\n wantedScore,\r\n sorted.length - 1,\r\n )) {\r\n // find first sufficient deco eval\r\n const decoEvaluation = findSufficientDecoPermutation(\r\n armorEvaluation,\r\n constraints,\r\n wantedSkills,\r\n decoMinSlotMap,\r\n decoPermutationsPerSlotLevel,\r\n )\r\n\r\n // build and append set if there is any deco eval\r\n if (decoEvaluation) {\r\n const set = new ArmorSet(armorEvaluation, decoEvaluation, skillData.skillActivation)\r\n validSets.push(set)\r\n\r\n // exit if enough sets found\r\n if (length === constraints.limit - 1) break\r\n length++\r\n }\r\n }\r\n\r\n return validSets\r\n}\r\n// #endregion\r\n\r\n// #region entrypoint\r\nconst search = (\r\n armorPieces: ArmorPiece[][],\r\n decorations: Decoration[],\r\n charms: Charm[],\r\n constraints: SearchConstraints,\r\n skillData: StaticSkillData,\r\n) => {\r\n const a = armorPieces\r\n .map((piecesOfCategory, i) => {\r\n return applyArmorFilter(piecesOfCategory, constraints.armorRarity, constraints.armorType, i, constraints.pins[i], constraints.exclusions[i], constraints.skillActivations)\r\n })\r\n const c = applyCharmFilter(charms, constraints.skillActivations)\r\n const d = applyRarityFilter(decorations, constraints.decoRarity)\r\n .filter(x => filterHasSkill(x, constraints.skillActivations))\r\n\r\n return findSets(\r\n a,\r\n d as Decoration[],\r\n c,\r\n constraints,\r\n skillData,\r\n )\r\n}\r\n// #endregion\r\n\r\nexport { search }\r\n","import Rarity from '../../data-provider/models/equipment/Rarity'\r\nimport Slots from '../../data-provider/models/equipment/Slots'\r\nimport GlobalSettings from '../models/GlobalSettings'\r\n\r\nexport const getGlobalSettings = (): GlobalSettings => {\r\n const armorSelect = document.getElementById('armor-type') as HTMLSelectElement\r\n const weaponSlots = document.getElementById('weapon-slots') as HTMLSelectElement\r\n const armorRarity = document.getElementById('armor-rarity') as HTMLSelectElement\r\n const decoRarity = document.getElementById('deco-rarity') as HTMLSelectElement\r\n const limit = document.getElementById('search-limit') as HTMLInputElement\r\n\r\n return {\r\n armorType: parseInt(armorSelect.value),\r\n weaponSlots: parseInt(weaponSlots.value) as Slots,\r\n armorRarity: parseInt(armorRarity.value) as Rarity,\r\n decoRarity: parseInt(decoRarity.value) as Rarity,\r\n limit: parseInt(limit.value),\r\n }\r\n}\r\n","import ArmorSet from '../../searcher/models/ArmorSet'\r\nimport SearchConstraints from '../../searcher/models/SearchConstraints'\r\nimport StaticSkillData from '../../data-provider/models/skills/StaticSkillData'\r\nimport UserEquipmentSettings from '../../data-provider/models/user/UserEquipmentSettings'\r\nimport { htmlToElement } from '../../helper/html.helper'\r\nimport SkillActivation from '../../data-provider/models/skills/SkillActivation'\r\nimport SkillActivationMap from '../../data-provider/models/skills/SkillActivationMap'\r\nimport { addExclusion, addPin, removeExlusion, removePin } from './eq-settings.component'\r\n\r\nexport function * moreSkillsIterator (skillActivations: SkillActivationMap) {\r\n const rContainer = clearAndGetResultsContainer()\r\n const countDiv = document.createElement('div')\r\n rContainer.appendChild(countDiv)\r\n\r\n const totalActCount = Array.from(skillActivations.values())\r\n .reduce((sum, c) => sum + c.length, 0)\r\n\r\n for (let i = 0; i < totalActCount; i++) {\r\n countDiv.innerHTML = `Checked ${i} possible skills ...`\r\n yield i\r\n }\r\n}\r\n\r\nconst onSetClick = (tbNode: Node, viewGetter: () => Node) => {\r\n const children = tbNode.childNodes\r\n const finalNode = children[children.length - 1] as HTMLTableRowElement\r\n\r\n // toggle if details have already been rendered\r\n if (finalNode.classList.contains('result-set-details')) {\r\n finalNode.classList.toggle('hidden')\r\n return\r\n }\r\n\r\n // render and append them otherwise\r\n tbNode.appendChild(viewGetter())\r\n}\r\n\r\nconst PINS_OR_EXCL_ACTIVE_BANNER = htmlToElement(`\r\n
\r\n You have some pins or exclusions active, which may be limiting results. You may find some results by removing those pins or exclusions.\r\n
\r\n`)\r\n\r\nconst getExpandedView = (set: ArmorSet, skillData: StaticSkillData, searchParams: SearchConstraints) => {\r\n // build header\r\n const header = htmlToElement(`\r\n \r\n Skill\r\n Weapon\r\n Head\r\n Chest\r\n Arms\r\n Waist\r\n Legs\r\n Deco\r\n Total\r\n Active\r\n \r\n `)\r\n\r\n // build skills rows\r\n const skillRows = Array.from(set.evaluation!.skills.entries())\r\n .sort(([_a, a], [_b, b]) => b - a)\r\n .map(([sId, sVal]) => {\r\n const r = document.createElement('tr')\r\n\r\n const computedDecoValue = set.decos\r\n .map(d => d.skills.get(sId)!)\r\n .reduce((sum, c) => sum + c, 0)\r\n\r\n r.appendChild(htmlToElement(`${skillData.skillName.get(sId) ? skillData.skillName.get(sId)! : ''}`))\r\n r.appendChild(htmlToElement('')) // weapon\r\n for (const p of set.getPieces()) {\r\n r.append(htmlToElement(`${p.skills.get(sId) ? p.skills.get(sId)! : ''}`))\r\n }\r\n r.append(htmlToElement(`${computedDecoValue || ''}`))\r\n r.append(htmlToElement(`${sVal}`))\r\n const possibleAct = set.evaluation!.activations.find(a => a.requiredSkill === sId)\r\n if (possibleAct) r.append(htmlToElement(`${possibleAct.name}`))\r\n return r\r\n })\r\n\r\n // build slot list\r\n const slotRow = document.createElement('tr')\r\n slotRow.appendChild(htmlToElement('Slots'))\r\n const rawSlowList = [searchParams.weaponSlots, ...set.getPieces().map(x => x.slots)]\r\n rawSlowList.forEach(s => slotRow.appendChild(htmlToElement(`${s}`)))\r\n\r\n // append elements to table\r\n const skillTable = htmlToElement('
')\r\n skillTable.appendChild(header)\r\n skillRows.forEach(x => skillTable.appendChild(x))\r\n skillTable.appendChild(slotRow)\r\n\r\n // build deco list\r\n const decoNameMap: Map = new Map()\r\n for (const deco of set.decos) {\r\n const name = deco.name\r\n decoNameMap.set(name, 1 + (decoNameMap.get(name) || 0))\r\n }\r\n const decoNameList = Array.from(decoNameMap.entries())\r\n .map(([name, amount]) => `${amount} x ${name}`)\r\n const decoNameString = decoNameList.join(', ')\r\n const decoNameContainer = htmlToElement(`\r\n
${decoNameString}
\r\n `)\r\n\r\n // build piece table\r\n const pieceTable = htmlToElement('
')\r\n const pieceTableHeader = htmlToElement('DefPiecePinExcl')\r\n pieceTable.appendChild(pieceTableHeader)\r\n for (const piece of set.getPieces()) {\r\n const pieceTableEle = document.createElement('tr')\r\n const pieceTableDef = htmlToElement(`${piece.defense.max}`)\r\n const pieceTableName = htmlToElement(`${piece.name}`)\r\n\r\n const pieceTablePin = (piece.isGeneric\r\n ? htmlToElement('')\r\n : htmlToElement('✓')) as HTMLElement\r\n const pieceTableExcl = htmlToElement('X') as HTMLElement\r\n if (UserEquipmentSettings.Instance.hasPin(piece)) pieceTablePin.classList.add('pin-highlighted')\r\n if (UserEquipmentSettings.Instance.hasExclusion(piece)) pieceTableExcl.classList.add('excl-highlighted')\r\n\r\n pieceTablePin.addEventListener('click', () => {\r\n if (piece.isGeneric) return\r\n\r\n if (UserEquipmentSettings.Instance.hasPin(piece)) {\r\n removePin(piece.category)\r\n pieceTablePin.classList.remove('pin-highlighted')\r\n } else {\r\n addPin(piece)\r\n pieceTablePin.classList.add('pin-highlighted')\r\n }\r\n })\r\n pieceTableExcl.addEventListener('click', () => {\r\n if (UserEquipmentSettings.Instance.hasExclusion(piece)) {\r\n removeExlusion(piece)\r\n pieceTableExcl.classList.remove('excl-highlighted')\r\n } else {\r\n addExclusion(piece)\r\n pieceTableExcl.classList.add('excl-highlighted')\r\n }\r\n })\r\n\r\n pieceTableEle.appendChild(pieceTableDef)\r\n pieceTableEle.appendChild(pieceTableName)\r\n pieceTableEle.appendChild(pieceTablePin)\r\n pieceTableEle.appendChild(pieceTableExcl)\r\n pieceTable.appendChild(pieceTableEle)\r\n }\r\n\r\n // return final div\r\n const tr = htmlToElement('')\r\n const td = htmlToElement('')\r\n const d = htmlToElement('
')\r\n td.appendChild(d)\r\n tr.appendChild(td)\r\n d.appendChild(pieceTable)\r\n d.appendChild(skillTable)\r\n d.appendChild(document.createElement('div')) // dummy for easy grid\r\n d.appendChild(decoNameContainer)\r\n return tr\r\n}\r\n\r\nconst getSetElement = (set: ArmorSet, skillData: StaticSkillData, searchParams: SearchConstraints) => {\r\n // get bonus and negative skills\r\n const requiredActivations = searchParams.skillActivations\r\n const unrelatedActivations = set.evaluation!.activations.filter((act) => {\r\n return !act.isPositive || // negative skill\r\n !requiredActivations.find(req => req.requiredSkill === act.requiredSkill) || // skill is not in required\r\n requiredActivations.find(req => req.requiredSkill === act.requiredSkill && act.requiredPoints > req.requiredPoints) // skill is upgrade of smth required\r\n })\r\n const unrelatedHtmlStrings = unrelatedActivations\r\n .sort((a, b) => b.requiredPoints - a.requiredPoints)\r\n .map((x) => {\r\n return `${x.name}`\r\n })\r\n\r\n // get basic display components\r\n const tb = htmlToElement('')\r\n const row1 = htmlToElement(`\r\n \r\n ${set.head.name}\r\n ${set.chest.name}\r\n ${set.arms.name}\r\n ${set.waist.name}\r\n ${set.legs.name}\r\n `)\r\n const row2 = htmlToElement(`\r\n \r\n \r\n

DEF ${set.evaluation.defense.max}

\r\n

FIR ${set.evaluation.resistance[0]}

\r\n

WAT ${set.evaluation.resistance[1]}

\r\n

ICE ${set.evaluation.resistance[2]}

\r\n

THN ${set.evaluation.resistance[3]}

\r\n

DRG ${set.evaluation.resistance[4]}

\r\n ${unrelatedHtmlStrings.join('')}\r\n \r\n `)\r\n\r\n // append basic display components\r\n const getter = () => { return getExpandedView(set, skillData, searchParams) }\r\n for (const row of [row1, row2]) {\r\n tb.appendChild(row)\r\n row.addEventListener('click', () => onSetClick(tb, getter))\r\n }\r\n\r\n return tb\r\n}\r\n\r\nconst onMoreSkillsActClick = (d: HTMLDivElement) => {\r\n const id = parseInt(d.getAttribute('data-id')!)\r\n\r\n for (const ele of Array.from(document.getElementsByClassName('search-picker-activation'))) {\r\n const thisId = parseInt(ele.getAttribute('data-id')!)\r\n if (id === thisId) {\r\n (ele as HTMLDivElement).click()\r\n break\r\n }\r\n }\r\n}\r\n\r\nconst clearAndGetResultsContainer = () => {\r\n const resultContainer = document.getElementById('search-results')!\r\n for (const c of Array.from(resultContainer.children)) c.remove()\r\n return resultContainer\r\n}\r\n\r\nexport const renderMoreSkills = (activations: SkillActivation[], pinsOrExclActive: boolean) => {\r\n const resultContainer = clearAndGetResultsContainer()\r\n\r\n if (activations.length === 0) {\r\n resultContainer.appendChild(htmlToElement(`\r\n
\r\n Can't fit more skills\r\n
\r\n `))\r\n\r\n if (pinsOrExclActive) resultContainer.appendChild(PINS_OR_EXCL_ACTIVE_BANNER)\r\n\r\n return\r\n }\r\n\r\n for (const act of activations) {\r\n const d = htmlToElement(`
`) as HTMLDivElement\r\n d.appendChild(htmlToElement(`${act.name}`))\r\n d.addEventListener('click', () => { onMoreSkillsActClick(d) })\r\n resultContainer.appendChild(d)\r\n }\r\n}\r\n\r\nexport const renderResults = (sets: ArmorSet[], skillData: StaticSkillData, searchParams: SearchConstraints, pinsOrExclActive: boolean) => {\r\n const resultContainer = clearAndGetResultsContainer()\r\n\r\n // add search param element\r\n resultContainer.appendChild(htmlToElement(`\r\n
Results for ${searchParams.skillActivations.map(x => x.name).join(', ')} (${sets.length} matches)
\r\n `))\r\n\r\n // return if no results\r\n if (sets.length === 0) {\r\n resultContainer.appendChild(htmlToElement(`\r\n
\r\n No matching armor sets\r\n
\r\n `))\r\n\r\n if (pinsOrExclActive) resultContainer.appendChild(PINS_OR_EXCL_ACTIVE_BANNER)\r\n\r\n return\r\n }\r\n\r\n // build table and table header\r\n const table = htmlToElement('
')\r\n const header = htmlToElement('HeadTorsoArmsWaistLegs')\r\n resultContainer.appendChild(table)\r\n table.appendChild(header)\r\n\r\n // build and append html elements for each armor set\r\n sets\r\n .sort((a, b) => b.evaluation.defense.max - a.evaluation.defense.max)\r\n .map(set => getSetElement(set, skillData, searchParams))\r\n .forEach(ele => table.appendChild(ele))\r\n}\r\n","import ArmorSet from '../../searcher/models/ArmorSet'\r\nimport SearchConstraints from '../../searcher/models/SearchConstraints'\r\nimport StaticEquipmentData from '../../data-provider/models/equipment/StaticEquipmentData'\r\nimport StaticSkillData from '../../data-provider/models/skills/StaticSkillData'\r\nimport { search } from '../../searcher/searcher.module'\r\nimport { getGlobalSettings } from './global-settings.component'\r\nimport { getSkillActivations, resetSkillActivations } from './picker.component'\r\nimport { moreSkillsIterator, renderMoreSkills, renderResults } from './search-results.component'\r\nimport SkillActivation from '../../data-provider/models/skills/SkillActivation'\r\nimport UserEquipmentSettings from '../../data-provider/models/user/UserEquipmentSettings'\r\nimport EquipmentMin from '../../data-provider/models/equipment/EquipmentMin'\r\n\r\nconst pinsOrExclusionsActive = (pins: (EquipmentMin | undefined)[], exclusions: EquipmentMin[][]): boolean => {\r\n return pins.some(p => p !== undefined) || exclusions.some(eL => eL.length > 0)\r\n}\r\n\r\nconst arrangeSearchData = () => {\r\n // build params\r\n const globalSettings = getGlobalSettings()\r\n const skillActivations = getSkillActivations()\r\n\r\n // return if no skill selected\r\n if (skillActivations.length === 0) {\r\n return\r\n }\r\n\r\n // sanitize activation input to only include highest version of each skill\r\n const sanitizedSkillActivations = skillActivations\r\n .filter((thisAct, i) => {\r\n return skillActivations.every((compareAct, j) => {\r\n if (i === j) return true\r\n if (thisAct.requiredSkill !== compareAct.requiredSkill) return true\r\n\r\n return thisAct.requiredPoints >= compareAct.requiredPoints\r\n })\r\n })\r\n\r\n // create search params\r\n const searchParams: SearchConstraints = {\r\n weaponSlots: globalSettings.weaponSlots,\r\n armorType: globalSettings.armorType,\r\n armorRarity: globalSettings.armorRarity,\r\n decoRarity: globalSettings.decoRarity,\r\n limit: Math.min(Math.max(globalSettings.limit, 1), 1000),\r\n skillActivations: sanitizedSkillActivations,\r\n pins: UserEquipmentSettings.Instance.pins,\r\n exclusions: UserEquipmentSettings.Instance.exclusions,\r\n }\r\n\r\n return searchParams\r\n}\r\n\r\nconst searchLogic = (equData: StaticEquipmentData, skillData: StaticSkillData) => {\r\n const searchParams = arrangeSearchData()\r\n\r\n if (!searchParams) {\r\n alert('Please select at least one skill')\r\n return\r\n }\r\n\r\n // search for sets\r\n const result = search(\r\n equData.armor,\r\n equData.decorations,\r\n [],\r\n searchParams,\r\n skillData,\r\n )\r\n\r\n // render results\r\n renderResults(result, skillData, searchParams, pinsOrExclusionsActive(searchParams.pins, searchParams.exclusions))\r\n}\r\n\r\nconst moreSkillsLogic = async (equData: StaticEquipmentData, skillData: StaticSkillData) => {\r\n const searchParams = arrangeSearchData()\r\n\r\n if (!searchParams) {\r\n alert('Please select at least one skill')\r\n return\r\n }\r\n\r\n const aquirableSkills: SkillActivation[] = []\r\n\r\n const outputIterator = moreSkillsIterator(skillData.skillActivation)\r\n\r\n for (const actMap of skillData.skillActivation) {\r\n const sActs = actMap[1]\r\n\r\n const processedActs = sActs\r\n .filter(act => act.requiredPoints >= 0)\r\n .filter(act => !searchParams.skillActivations.map(x => x.id).includes(act.id))\r\n .filter(act => !searchParams.skillActivations.find(x => act.requiredSkill === x.requiredSkill && act.requiredPoints < x.requiredPoints))\r\n .sort((a, b) => a.requiredPoints - b.requiredPoints)\r\n\r\n let breakFlag = false\r\n for (const act of processedActs) {\r\n outputIterator.next()\r\n if (breakFlag) continue\r\n\r\n const newParams: SearchConstraints = {\r\n ...searchParams,\r\n limit: 1,\r\n skillActivations: searchParams.skillActivations.concat(act),\r\n }\r\n\r\n const r = await new Promise((resolve, _reject) => {\r\n setTimeout(() => {\r\n const innerR = search(\r\n equData.armor,\r\n equData.decorations,\r\n [],\r\n newParams,\r\n skillData,\r\n )\r\n resolve(innerR)\r\n })\r\n })\r\n\r\n if (r.length === 0) breakFlag = true\r\n else aquirableSkills.push(act)\r\n }\r\n }\r\n\r\n renderMoreSkills(aquirableSkills, pinsOrExclusionsActive(searchParams.pins, searchParams.exclusions))\r\n}\r\n\r\nconst resetLogic = () => {\r\n resetSkillActivations()\r\n}\r\n\r\n/** attach handlers for control buttons */\r\nexport const attachControlListeners = (equData: StaticEquipmentData, skillData: StaticSkillData) => {\r\n const searchBtn = document.getElementById('search-btn') as HTMLButtonElement\r\n const moreSkillsBtn = document.getElementById('more-btn') as HTMLButtonElement\r\n const resetBtn = document.getElementById('reset-btn') as HTMLButtonElement\r\n\r\n searchBtn.addEventListener('click', () => {\r\n searchLogic(equData, skillData)\r\n })\r\n moreSkillsBtn.addEventListener('click', () => {\r\n moreSkillsLogic(equData, skillData)\r\n })\r\n resetBtn.addEventListener('click', () => {\r\n resetLogic()\r\n })\r\n}\r\n","import { getArms, getChest, getDecorations, getHead, getLegs, getSkillActivationMap, getSkillCategories, getSkillNameMap, getWaist } from '../../data-provider/data-provider.module'\r\nimport StaticSkillData from '../../data-provider/models/skills/StaticSkillData'\r\nimport { renderEqSettings } from '../ui/eq-settings.component'\r\nimport { initiateNavbar } from '../ui/navbar.component'\r\nimport { renderSkillPicker } from '../ui/picker.component'\r\nimport { attachControlListeners } from '../ui/search-controls.component'\r\n\r\nconst main = async () => {\r\n // initiate static components\r\n initiateNavbar()\r\n\r\n // load remaining data\r\n const armor = [\r\n await getHead(),\r\n await getChest(),\r\n await getArms(),\r\n await getWaist(),\r\n await getLegs(),\r\n ]\r\n const decorations = await getDecorations()\r\n\r\n // load skill data and render skill picker with it\r\n const skillData: StaticSkillData = {\r\n skillName: await getSkillNameMap(),\r\n skillActivation: await getSkillActivationMap(),\r\n skillCategories: await getSkillCategories(),\r\n }\r\n\r\n // render ui\r\n renderSkillPicker(skillData.skillActivation, skillData.skillCategories)\r\n renderEqSettings(armor)\r\n\r\n // initialize search controls\r\n attachControlListeners({ armor, decorations }, skillData)\r\n}\r\n\r\nmain()\r\n"]} \ No newline at end of file +{"version":3,"sources":["../../data-provider/models/equipment/EquipmentSkills.ts","../../data-provider/data-provider.module.ts","../../data-provider/models/equipment/EquipmentCategory.ts","../../data-provider/models/user/UserEquipmentSettings.ts","../../helper/html.helper.ts","../ui/eq-settings.component.ts","../ui/navbar.component.ts","../ui/picker.component.ts","../../scorer/models/ArmorEvaluation.ts","../../searcher/models/ArmorSet.ts","../../data-provider/models/equipment/ArmorType.ts","../../data-filter/data-filter.module.ts","../../scorer/scorer.module.ts","../../scorer/models/DecoEvaluation.ts","../../scorer/models/DecoMinSlotMap.ts","../../searcher/searcher.module.ts","../ui/global-settings.component.ts","../ui/search-results.component.ts","../ui/search-controls.component.ts","index.ts","../../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js"],"names":["OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","handled","assets","forEach","asset","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","every","generated","js","console","clear","hmrApply","v","hmrAcceptRun","reload","close","onclose","log","removeErrorOverlay","error","message","stack","overlay","createErrorOverlay","document","body","appendChild","getElementById","remove","createElement","stackTrace","innerText","innerHTML","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","deps","cached","cache","some","cb"],"mappings":"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","file":"pages.77de5100.js","sourceRoot":"..\\src\\app\\pages","sourcesContent":["import GameID from '../GameId'\r\nimport Skill from '../skills/Skill'\r\n\r\nexport default class EquipmentSkills extends Map {\r\n get (key: GameID): Skill {\r\n return super.get(key) || 0\r\n }\r\n\r\n add (key: GameID, val: Skill) {\r\n this.set(key, val + this.get(key))\r\n }\r\n\r\n addSkills (m: EquipmentSkills) {\r\n for (const [k, v] of m) {\r\n this.add(k, v)\r\n }\r\n }\r\n\r\n substract (key: GameID, val: Skill) {\r\n this.set(key, val + this.get(key))\r\n }\r\n\r\n substractSkills (m: EquipmentSkills) {\r\n for (const [k, v] of m) {\r\n this.substract(k, v)\r\n }\r\n }\r\n\r\n multiply (factor: number) {\r\n for (const [k, v] of this) {\r\n this.set(k, v * factor)\r\n }\r\n }\r\n}\r\n","import ArmorPiece from './models/equipment/ArmorPiece'\r\nimport Decoration from './models/equipment/Decoration'\r\nimport EquipmentSkills from './models/equipment/EquipmentSkills'\r\nimport GameID from './models/GameId'\r\nimport SkillActivation from './models/skills/SkillActivation'\r\nimport SkillActivationMap from './models/skills/SkillActivationMap'\r\nimport Skill from './models/skills/Skill'\r\nimport SkillNameMap from './models/skills/SkillNameMap'\r\n\r\nconst MAX_RARITY = 7\r\n\r\nconst TORSO_UP_ID = 65\r\n\r\nconst DUMMY_PIECE: ArmorPiece = {\r\n name: 'None',\r\n type: -1,\r\n defense: { base: 0, max: 0, maxLr: 0 },\r\n resistance: [0, 0, 0, 0, 0],\r\n category: -1,\r\n slots: 0,\r\n rarity: 0,\r\n skills: new EquipmentSkills(),\r\n isGeneric: true,\r\n}\r\n\r\n/** fetch from data directory */\r\nconst getRawData = async (url: string) => {\r\n return (await fetch(url)).json()\r\n}\r\n\r\n/** fetch and parse generic equipment data */\r\nconst getDataWithTransformedSkillMap = async (url: string): Promise<{skills: EquipmentSkills}[]> => {\r\n const raw = await getRawData(url)\r\n return raw.map((rawX: any) => {\r\n const skillMap: EquipmentSkills = new EquipmentSkills()\r\n for (const x in rawX.skills) {\r\n const skill: Skill = rawX.skills[x]\r\n skillMap.set(parseInt(x), skill)\r\n }\r\n return {\r\n ...rawX,\r\n skills: skillMap,\r\n }\r\n })\r\n}\r\n\r\n/** get a list of all head armor pieces */\r\nconst getHead = async (): Promise => {\r\n return getDataWithTransformedSkillMap('./head.json') as unknown as ArmorPiece[]\r\n}\r\n\r\n/** get a list of all chest armor pieces */\r\nconst getChest = async (): Promise => {\r\n return getDataWithTransformedSkillMap('./chest.json') as unknown as ArmorPiece[]\r\n}\r\n\r\n/** get a list of all arms armor pieces */\r\nconst getArms = async (): Promise => {\r\n return getDataWithTransformedSkillMap('./arms.json') as unknown as ArmorPiece[]\r\n}\r\n\r\n/** get a list of all waist armor pieces */\r\nconst getWaist = async (): Promise => {\r\n return getDataWithTransformedSkillMap('./waist.json') as unknown as ArmorPiece[]\r\n}\r\n\r\n/** get a list of all legs armor pieces */\r\nconst getLegs = async (): Promise => {\r\n return getDataWithTransformedSkillMap('./legs.json') as unknown as ArmorPiece[]\r\n}\r\n\r\n/** get a list of all decorations */\r\nconst getDecorations = async (): Promise => {\r\n return getDataWithTransformedSkillMap('./decorations.json') as unknown as Decoration[]\r\n}\r\n\r\n/** get a mapping of internal id to name for all skills */\r\nconst getSkillNameMap = async (): Promise => {\r\n const raw = await getRawData('./skill-names.json')\r\n const map: Map = new Map()\r\n for (const id in raw) {\r\n map.set(parseInt(id), raw[id])\r\n }\r\n return map\r\n}\r\n\r\n/** get a list of skill category names, as used in the UI */\r\nconst getSkillCategories = async (): Promise => {\r\n return getRawData('./skill-categories.json')\r\n}\r\n\r\n/** get a mapping of internal id of skill to all activations (positive and negative) of that skill */\r\nconst getSkillActivationMap = async (): Promise => {\r\n const raw = await getRawData('./skills.json')\r\n const map: Map = new Map()\r\n for (const id in raw) {\r\n const parsedId = parseInt(id)\r\n map.set(\r\n parsedId,\r\n raw[id].map((activation: any) => {\r\n return {\r\n ...activation,\r\n requiredSkill: parsedId,\r\n }\r\n }),\r\n )\r\n }\r\n return map\r\n}\r\n\r\nexport {\r\n MAX_RARITY,\r\n TORSO_UP_ID,\r\n DUMMY_PIECE,\r\n getHead,\r\n getChest,\r\n getArms,\r\n getWaist,\r\n getLegs,\r\n getDecorations,\r\n getSkillNameMap,\r\n getSkillCategories,\r\n getSkillActivationMap,\r\n}\r\n","/* eslint-disable no-unused-vars */\r\nenum EquipmentCategory {\r\n HEAD = 0,\r\n CHEST = 1,\r\n ARMS = 2,\r\n WAIST = 3,\r\n LEGS = 4,\r\n CHARM = 5,\r\n WEAPON = 6,\r\n}\r\n\r\nexport default EquipmentCategory\r\n","import EquipmentCategory from '../equipment/EquipmentCategory'\r\nimport EquipmentMin from '../equipment/EquipmentMin'\r\n\r\nexport default class UserEquipmentSettings {\r\n // eslint-disable-next-line no-use-before-define\r\n private static _instance: UserEquipmentSettings\r\n\r\n pins: (EquipmentMin | undefined)[]\r\n\r\n exclusions: EquipmentMin[][]\r\n\r\n isActive: boolean\r\n\r\n private constructor () {\r\n this.pins = []\r\n this.exclusions = []\r\n\r\n const supportedCategoires = [\r\n EquipmentCategory.HEAD,\r\n EquipmentCategory.CHEST,\r\n EquipmentCategory.ARMS,\r\n EquipmentCategory.WAIST,\r\n EquipmentCategory.LEGS,\r\n ]\r\n\r\n supportedCategoires.forEach((_) => {\r\n this.pins.push(undefined)\r\n this.exclusions.push([])\r\n })\r\n\r\n this.isActive = false\r\n }\r\n\r\n public static get Instance () {\r\n return this._instance || (this._instance = new this())\r\n }\r\n\r\n /** pins given equipment to corresponding category */\r\n addPin (x: EquipmentMin): void {\r\n this.pins[x.category] = x\r\n }\r\n\r\n /** removes pin of category */\r\n removePin (cat: EquipmentCategory): void {\r\n this.pins[cat] = undefined\r\n }\r\n\r\n /** adds given equipment to exclusion list of corresponding category */\r\n addExclusion (x: EquipmentMin): void {\r\n this.exclusions[x.category].push(x)\r\n }\r\n\r\n /** removes equipment from exclusion list */\r\n removeExclusion (x: EquipmentMin): void {\r\n const arr = this.exclusions[x.category]\r\n const index = arr.findIndex((y) => y.name === x.name)\r\n this.exclusions[x.category].splice(index, 1)\r\n }\r\n\r\n /** returns true if pin is same as given element */\r\n hasPin (x: EquipmentMin | undefined): boolean {\r\n if (!x) return false\r\n if (x.isGeneric) return false\r\n\r\n const pin = this.pins[x.category]\r\n if (!pin) return false\r\n return pin.name === x.name\r\n }\r\n\r\n /** returns true if piece is already excluded */\r\n hasExclusion (x: EquipmentMin): boolean {\r\n return !!this.exclusions[x.category].find(y => y.name === x.name)\r\n }\r\n\r\n /** serializes settings as json */\r\n serialize (): string {\r\n return JSON.stringify({ pins: this.pins, exclusions: this.exclusions })\r\n }\r\n\r\n /** populate settings from json */\r\n deserialize (raw: string): void {\r\n const parsed = JSON.parse(raw) as {\r\n pins: (EquipmentMin | undefined)[];\r\n exclusions: EquipmentMin[][];\r\n\r\n }\r\n this.pins = parsed.pins\r\n this.exclusions = parsed.exclusions\r\n }\r\n}\r\n","export const htmlToElement = (html: string): Node => {\r\n const template = document.createElement('template')\r\n html = html.trim()\r\n template.innerHTML = html\r\n return template.content.firstChild as Node\r\n}\r\n","import EquipmentCategory from '../../data-provider/models/equipment/EquipmentCategory'\r\nimport UserEquipmentSettings from '../../data-provider/models/user/UserEquipmentSettings'\r\nimport { htmlToElement } from '../../helper/html.helper'\r\nimport EquipmentMin from '../../data-provider/models/equipment/EquipmentMin'\r\n\r\nconst STORAGE_KEY = 'dos-eq-settings'\r\n\r\nconst saveToStorage = () => {\r\n window.localStorage.setItem(\r\n STORAGE_KEY,\r\n UserEquipmentSettings.Instance.serialize(),\r\n )\r\n}\r\n\r\nconst getFromStorage = () => {\r\n return window.localStorage.getItem(STORAGE_KEY)\r\n}\r\n\r\nconst getExclusionElement = (x: EquipmentMin) => {\r\n const root = document.createElement('div')\r\n root.style.textAlign = 'left'\r\n root.setAttribute('data-name', x.name)\r\n root.classList.add('eq-exclusion-ele')\r\n\r\n const content = htmlToElement(`${x.name}`)\r\n const remove = htmlToElement('X') as HTMLSpanElement\r\n remove.addEventListener('click', () => removeExlusion(x))\r\n remove.style.marginRight = '1em'\r\n remove.style.marginLeft = '1em'\r\n remove.style.cursor = 'pointer'\r\n\r\n root.appendChild(remove)\r\n root.appendChild(content)\r\n return root\r\n}\r\n\r\nconst getPinPicker = (cat: EquipmentCategory, eq: EquipmentMin[]) => {\r\n const root = document.createElement('div')\r\n root.style.textAlign = 'left'\r\n\r\n const content = document.createElement('select')\r\n content.setAttribute('id', `eq-${cat}-pin-picker`)\r\n content.style.width = '72%'\r\n for (const x of [{ name: 'None', category: cat }].concat(...eq)) {\r\n content.appendChild(\r\n htmlToElement(``),\r\n )\r\n }\r\n content.addEventListener('change', () => {\r\n addPin({ name: content.value, category: cat })\r\n })\r\n const remove = htmlToElement('X') as HTMLSpanElement\r\n remove.addEventListener('click', () => removePin(eq[0].category))\r\n remove.style.marginRight = '1em'\r\n remove.style.marginLeft = '1em'\r\n remove.style.cursor = 'pointer'\r\n\r\n root.appendChild(remove)\r\n root.appendChild(content)\r\n return root\r\n}\r\n\r\nconst renderColumns = (armor: EquipmentMin[][]) => {\r\n const parent = document.getElementById('eq-container')\r\n for (const item of [\r\n [EquipmentCategory.HEAD, 'Head', armor[0]],\r\n [EquipmentCategory.CHEST, 'Chest', armor[1]],\r\n [EquipmentCategory.ARMS, 'Arms', armor[2]],\r\n [EquipmentCategory.WAIST, 'Waist', armor[3]],\r\n [EquipmentCategory.LEGS, 'Legs', armor[4]],\r\n ]) {\r\n const cat = item[0] as EquipmentCategory\r\n const name = item[1] as string\r\n const eq = item[2] as EquipmentMin[]\r\n\r\n const root = htmlToElement(`
`)\r\n\r\n // pins\r\n const pinHeader = htmlToElement(`
${name} Pinned
`)\r\n const pinContent = htmlToElement('
')\r\n const pinElement = getPinPicker(cat, eq)\r\n pinContent.appendChild(pinElement)\r\n\r\n // exclusions\r\n const exclusionHeader = htmlToElement(`
${name} Excluded
`)\r\n const exclusionContent = htmlToElement(`
`)\r\n\r\n root.appendChild(pinHeader)\r\n root.appendChild(pinContent)\r\n root.appendChild(exclusionHeader)\r\n root.appendChild(exclusionContent)\r\n parent!.appendChild(root)\r\n }\r\n}\r\n\r\nconst _addExclusion = (x: EquipmentMin) => {\r\n const parent = document.getElementById(`eq-${x.category}-exclusion`)\r\n parent!.appendChild(getExclusionElement(x))\r\n}\r\n\r\nexport const removeExlusion = (x: EquipmentMin) => {\r\n const ele = Array.from(document.getElementsByClassName('eq-exclusion-ele')).find((a) => {\r\n const b = a as HTMLElement\r\n return b.getAttribute('data-name') === x.name\r\n }) as HTMLElement\r\n if (!ele) return\r\n\r\n ele.remove()\r\n UserEquipmentSettings.Instance.removeExclusion(x)\r\n saveToStorage()\r\n}\r\n\r\nexport const removePin = (cat: EquipmentCategory) => {\r\n const ele = document.getElementById(`eq-${cat}-pin-picker`) as HTMLSelectElement\r\n UserEquipmentSettings.Instance.removePin(cat)\r\n ele.selectedIndex = 0\r\n saveToStorage()\r\n}\r\n\r\nexport const addExclusion = (x: EquipmentMin) => {\r\n if (UserEquipmentSettings.Instance.hasExclusion(x)) return\r\n UserEquipmentSettings.Instance.addExclusion(x)\r\n _addExclusion(x)\r\n saveToStorage()\r\n}\r\n\r\nexport const addPin = (x: EquipmentMin) => {\r\n if (x.name === 'None') {\r\n UserEquipmentSettings.Instance.removePin(x.category)\r\n saveToStorage()\r\n return\r\n }\r\n\r\n UserEquipmentSettings.Instance.addPin(x)\r\n saveToStorage()\r\n const select = document.getElementById(\r\n `eq-${x.category}-pin-picker`,\r\n ) as HTMLSelectElement\r\n select.value = x.name\r\n}\r\n\r\nexport const renderEqSettings = (armor: EquipmentMin[][]) => {\r\n renderColumns(armor)\r\n\r\n const raw = getFromStorage()\r\n if (raw) UserEquipmentSettings.Instance.deserialize(raw)\r\n\r\n for (const exclusionList of UserEquipmentSettings.Instance.exclusions) {\r\n for (const x of exclusionList) {\r\n _addExclusion(x)\r\n }\r\n }\r\n UserEquipmentSettings.Instance.pins.forEach((x, i) => {\r\n if (x) addPin(x)\r\n else removePin(i)\r\n })\r\n}\r\n","const onMouseEnter = (ele: Element) => {\r\n if (!ele.classList.contains('navbar-selected')) {\r\n ele.classList.add('navbar-hover')\r\n }\r\n}\r\n\r\nconst onMouseLeave = (ele: Element) => {\r\n ele.classList.remove('navbar-hover')\r\n}\r\n\r\nconst onClick = (parent: Element, ele: Element) => {\r\n for (const li of Array.from(parent.children)) {\r\n li.classList.remove('navbar-selected')\r\n li.classList.remove('navbar-hover')\r\n }\r\n ele.classList.add('navbar-selected')\r\n\r\n const selection = ele.getAttribute('data-selection')\r\n const panels = document.getElementsByClassName('panel')\r\n\r\n for (const panel of Array.from(panels)) {\r\n const panelNumber = panel.getAttribute('data-panel-number')\r\n if (selection === panelNumber) {\r\n panel.classList.remove('hidden')\r\n } else {\r\n panel.classList.add('hidden')\r\n }\r\n }\r\n}\r\n\r\n/** initiate navbar state and attaches handlers */\r\nexport const initiateNavbar = () => {\r\n const ul = document.getElementById('navbar-container')!\r\n .children[0] as HTMLElement\r\n\r\n for (const li of Array.from(ul.children)) {\r\n li.addEventListener('mouseenter', () => onMouseEnter(li))\r\n li.addEventListener('mouseleave', () => onMouseLeave(li))\r\n li.addEventListener('click', () => onClick(ul, li))\r\n }\r\n\r\n onClick(ul, ul.children[0])\r\n}\r\n","import SkillActivationMap from '../../data-provider/models/skills/SkillActivationMap'\r\nimport SkillActivation from '../../data-provider/models/skills/SkillActivation'\r\nimport { htmlToElement } from '../../helper/html.helper'\r\n\r\nconst getActivationElements = () => {\r\n return Array.from(document.getElementsByClassName('search-picker-activation'))\r\n}\r\n\r\n/** uncheck all selected skill activations */\r\nconst resetSkillActivations = () => {\r\n const activations = getActivationElements()\r\n\r\n activations.forEach((element) => {\r\n const checkbox = element.children[0] as HTMLInputElement\r\n const text = element.children[1] as HTMLElement\r\n\r\n checkbox.checked = false\r\n text.classList.remove('highlighted')\r\n })\r\n}\r\n\r\n/** get list of currently selected skill activations */\r\nconst getSkillActivations = (): SkillActivation[] => {\r\n const activations = getActivationElements()\r\n\r\n return activations\r\n // get only checked skills\r\n .filter((element) => {\r\n const checkbox = element.children[0] as HTMLInputElement\r\n return checkbox.checked\r\n })\r\n // map to proper data model\r\n .map((element) => {\r\n const name = element.textContent!.trim()\r\n const id = parseInt(element.getAttribute('data-id')!)\r\n const requiredSkill = parseInt(element.getAttribute('data-skill')!)\r\n const requiredPoints = parseInt(element.getAttribute('data-points')!)\r\n const category = parseInt(element.parentElement!.getAttribute('data-category')!)\r\n\r\n return {\r\n id,\r\n name,\r\n requiredPoints,\r\n requiredSkill,\r\n isPositive: requiredPoints > 0,\r\n category,\r\n }\r\n })\r\n}\r\n\r\nconst renderCategories = (skillCategories: string[]) => {\r\n for (const index in skillCategories) {\r\n const categoryName = skillCategories[index]\r\n const node = htmlToElement(`\r\n
\r\n
${categoryName}
\r\n
\r\n `)\r\n document.getElementById('search-skill-picker')!.appendChild(node)\r\n }\r\n}\r\n\r\nconst renderActivations = (skillActivation: SkillActivationMap) => {\r\n skillActivation.forEach((activationList) => {\r\n activationList\r\n .filter(activation => activation.isPositive)\r\n .reverse()\r\n .forEach((activation) => {\r\n const node = htmlToElement(`\r\n
\r\n \r\n
${activation.name}
\r\n
\r\n `)\r\n document.getElementById(`search-picker-category-${activation.category}`)!.appendChild(node)\r\n })\r\n })\r\n}\r\n\r\nconst attachClickListener = () => {\r\n const elements = Array.from(document.getElementsByClassName('search-picker-activation'))\r\n for (const item of elements) {\r\n item.addEventListener('click', (event) => {\r\n // tick checkbox\r\n const target = event.target as Element\r\n const input: HTMLInputElement = item.children[0] as HTMLInputElement\r\n if (target.tagName !== 'INPUT') {\r\n input.checked = !input.checked\r\n }\r\n\r\n // add highlight class\r\n const text = item.children[1]\r\n input.checked ? text.classList.add('highlighted') : text.classList.remove('highlighted')\r\n })\r\n }\r\n}\r\n\r\n/** render all components of skillpicker and attach handlers */\r\nconst renderSkillPicker = (\r\n skillActivation: SkillActivationMap,\r\n skillCategories: string[],\r\n) => {\r\n renderCategories(skillCategories)\r\n renderActivations(skillActivation)\r\n attachClickListener()\r\n}\r\n\r\nexport {\r\n renderSkillPicker,\r\n getSkillActivations,\r\n resetSkillActivations,\r\n}\r\n","import { TORSO_UP_ID } from '../../data-provider/data-provider.module'\r\nimport EquipmentCategory from '../../data-provider/models/equipment/EquipmentCategory'\r\nimport EquipmentSkills from '../../data-provider/models/equipment/EquipmentSkills'\r\nimport ScoredSkilledEquipment from './ScoredSkilledEquipment'\r\n\r\nexport default class ArmorEvaluation {\r\n equipment: ScoredSkilledEquipment[]\r\n skills: EquipmentSkills = new EquipmentSkills()\r\n score: number = 0\r\n totalSlots: number = 0\r\n torsoUp: number = 0\r\n\r\n constructor (\r\n equipment: ScoredSkilledEquipment[],\r\n skills?: EquipmentSkills,\r\n score?: number,\r\n totalSlots?: number,\r\n torsoUp?: number,\r\n ) {\r\n this.equipment = equipment\r\n if (skills) this.skills = skills\r\n if (score) this.score = score\r\n if (totalSlots) this.totalSlots = totalSlots\r\n if (torsoUp) this.torsoUp = torsoUp\r\n }\r\n\r\n getSlots () {\r\n return this.equipment\r\n .map(x => x.slots)\r\n .filter(x => x > 0)\r\n }\r\n\r\n getSlotsExceptChest () {\r\n return this.equipment\r\n .filter(x => x.category !== EquipmentCategory.CHEST)\r\n .map(x => x.slots)\r\n .filter(x => x > 0)\r\n }\r\n\r\n copy () {\r\n return new ArmorEvaluation(\r\n this.equipment.map(x => x),\r\n new EquipmentSkills(this.skills),\r\n this.score,\r\n this.totalSlots,\r\n this.torsoUp,\r\n )\r\n }\r\n\r\n addPiece (piece: ScoredSkilledEquipment) {\r\n if (piece.skills.has(TORSO_UP_ID)) this.torsoUp++\r\n else {\r\n if (piece.category === EquipmentCategory.CHEST && this.torsoUp > 0) {\r\n for (const [k, v] of piece.skills) {\r\n this.skills.add(k, v * (this.torsoUp + 1))\r\n }\r\n } else {\r\n this.skills.addSkills(piece.skills)\r\n }\r\n }\r\n this.equipment[piece.category] = piece\r\n this.score = this.score + piece.score\r\n this.totalSlots = this.totalSlots + piece.slots\r\n }\r\n}\r\n","import Defense from '../../data-provider/models/equipment/Defense'\r\nimport EquipmentSkills from '../../data-provider/models/equipment/EquipmentSkills'\r\nimport Resistance from '../../data-provider/models/equipment/Resistance'\r\nimport Evaluation from './Evaluation'\r\nimport ArmorPiece from '../../data-provider/models/equipment/ArmorPiece'\r\nimport Decoration from '../../data-provider/models/equipment/Decoration'\r\nimport Charm from '../../data-provider/models/equipment/Charm'\r\nimport SkillActivationMap from '../../data-provider/models/skills/SkillActivationMap'\r\nimport SkillActivation from '../../data-provider/models/skills/SkillActivation'\r\nimport ArmorEvaluation from '../../scorer/models/ArmorEvaluation'\r\nimport DecoEvaluation from '../../scorer/models/DecoEvaluation'\r\nimport EquipmentCategory from '../../data-provider/models/equipment/EquipmentCategory'\r\n\r\nexport default class ArmorSet {\r\n readonly head: ArmorPiece\r\n readonly chest: ArmorPiece\r\n readonly arms: ArmorPiece\r\n readonly waist: ArmorPiece\r\n readonly legs: ArmorPiece\r\n readonly charm: Charm\r\n readonly decos: Decoration[]\r\n\r\n evaluation: Evaluation\r\n\r\n constructor (\r\n armorEval: ArmorEvaluation,\r\n decoEval: DecoEvaluation,\r\n skillActivations: SkillActivationMap,\r\n ) {\r\n const chest = armorEval.equipment[EquipmentCategory.CHEST] as unknown as ArmorPiece\r\n\r\n this.chest = armorEval.torsoUp > 0 ? ArmorSet.applyTorsoUpToChest(chest, armorEval.torsoUp) : chest\r\n this.head = armorEval.equipment[EquipmentCategory.HEAD] as unknown as ArmorPiece\r\n this.arms = armorEval.equipment[EquipmentCategory.ARMS] as unknown as ArmorPiece\r\n this.waist = armorEval.equipment[EquipmentCategory.WAIST] as unknown as ArmorPiece\r\n this.legs = armorEval.equipment[EquipmentCategory.LEGS] as unknown as ArmorPiece\r\n this.charm = armorEval.equipment[EquipmentCategory.CHARM] as unknown as Charm\r\n this.decos = decoEval.decos\r\n this.evaluation = this.evaluate(armorEval, decoEval, skillActivations)\r\n }\r\n\r\n private static applyTorsoUpToChest (chest: ArmorPiece, torsoUp: number): ArmorPiece {\r\n const newSkills = new EquipmentSkills(chest.skills)\r\n newSkills.multiply(torsoUp + 1)\r\n return {\r\n ...chest,\r\n skills: newSkills,\r\n }\r\n }\r\n\r\n getPieces (): ArmorPiece[] {\r\n return [\r\n this.head,\r\n this.chest,\r\n this.arms,\r\n this.waist,\r\n this.legs,\r\n ]\r\n }\r\n\r\n evaluate (\r\n armorEval: ArmorEvaluation,\r\n decoEval: DecoEvaluation,\r\n activations: SkillActivationMap,\r\n ): Evaluation {\r\n const totalDefense: Defense = { base: 0, max: 0 }\r\n let totalResistance: Resistance = [0, 0, 0, 0, 0]\r\n\r\n // iterate over all armor pieces\r\n for (const piece of this.getPieces()) {\r\n totalDefense.base += piece.defense.base\r\n totalDefense.max += piece.defense.max\r\n totalResistance = piece.resistance.map((res, i) => res + totalResistance[i])\r\n }\r\n\r\n // get total skills\r\n const decoSkills = new EquipmentSkills()\r\n decoEval.decos.forEach(d => decoSkills.addSkills(d.skills))\r\n const skills = new EquipmentSkills(armorEval.skills)\r\n skills.addSkills(new EquipmentSkills(decoSkills))\r\n\r\n // get activations\r\n const a: SkillActivation[] = []\r\n for (const [sId, sVal] of skills) {\r\n if (Math.abs(sVal) < 10) {\r\n continue\r\n }\r\n\r\n const activationsOfSkill = activations.get(sId)!\r\n .filter(act => {\r\n return act.isPositive\r\n ? sVal >= act.requiredPoints\r\n : sVal <= act.requiredPoints\r\n })\r\n a.push(...activationsOfSkill)\r\n }\r\n\r\n // build, save and return model\r\n const thisEval: Evaluation = {\r\n defense: totalDefense,\r\n resistance: totalResistance,\r\n activations: a,\r\n skills,\r\n torsoUp: armorEval.torsoUp,\r\n }\r\n this.evaluation = thisEval\r\n return thisEval\r\n }\r\n}\r\n","/* eslint-disable no-unused-vars */\r\nenum ArmorType {\r\n ALL = 0,\r\n BLADEMASTER = 1,\r\n GUNNER = 2,\r\n}\r\n\r\nexport default ArmorType\r\n","import { DUMMY_PIECE, MAX_RARITY, TORSO_UP_ID } from '../data-provider/data-provider.module'\r\nimport ArmorPiece from '../data-provider/models/equipment/ArmorPiece'\r\nimport ArmorType from '../data-provider/models/equipment/ArmorType'\r\nimport Charm from '../data-provider/models/equipment/Charm'\r\nimport EquipmentCategory from '../data-provider/models/equipment/EquipmentCategory'\r\nimport EquipmentMin from '../data-provider/models/equipment/EquipmentMin'\r\nimport EquipmentSkills from '../data-provider/models/equipment/EquipmentSkills'\r\nimport Rarity from '../data-provider/models/equipment/Rarity'\r\nimport SkilledItem from '../data-provider/models/equipment/SkilledItem'\r\nimport Slots from '../data-provider/models/equipment/Slots'\r\nimport SkillActivation from '../data-provider/models/skills/SkillActivation'\r\n\r\nconst filterType = (piece: ArmorPiece, type: ArmorType) => {\r\n return piece.type === ArmorType.ALL || piece.type === type\r\n}\r\n\r\nconst filterExclusions = (piece: ArmorPiece, exclusionNames: string[]) => {\r\n return !exclusionNames.includes(piece.name)\r\n}\r\n\r\nconst filterRarity = (item: SkilledItem, rarity: Rarity) => {\r\n return item.rarity <= rarity\r\n}\r\n\r\nconst filterHasSkill = (item: SkilledItem, desiredSkills: SkillActivation[]) => {\r\n return desiredSkills.some((act) => {\r\n const s = item.skills.get(act.requiredSkill)\r\n return s && s > 0\r\n })\r\n}\r\n\r\nconst applyRarityFilter = (items: SkilledItem[], rarity: Rarity) => {\r\n if (rarity === MAX_RARITY) return items\r\n return items.filter(x => filterRarity(x, rarity))\r\n}\r\n\r\nconst applyCharmFilter = (charms: Charm[], skills: SkillActivation[]) => {\r\n // find generic slot charms\r\n const genericSlotCharms: Charm[] = []\r\n for (const slots of [3, 2, 1]) {\r\n const x = charms.find(c => c.slots === slots)\r\n if (x) {\r\n const newC: Charm = {\r\n name: `${slots} Slot Charm`,\r\n slots: slots as Slots,\r\n category: EquipmentCategory.CHARM,\r\n rarity: 0,\r\n skills: new EquipmentSkills(),\r\n }\r\n genericSlotCharms.push(newC)\r\n }\r\n }\r\n\r\n // build list of charms with wanted skills or with slots\r\n const result = charms\r\n .filter(x => filterHasSkill(x, skills))\r\n .concat(...genericSlotCharms)\r\n\r\n // return list with dummy charm if there are no pieces\r\n if (result.length === 0) {\r\n return [{\r\n ...DUMMY_PIECE,\r\n category: EquipmentCategory.CHARM,\r\n }]\r\n }\r\n\r\n return result\r\n}\r\n\r\nconst applyArmorFilter = (\r\n pieces: ArmorPiece[],\r\n rarity: Rarity,\r\n type: ArmorType,\r\n category: EquipmentCategory,\r\n pin: EquipmentMin | undefined,\r\n exclusions: EquipmentMin[],\r\n skills: SkillActivation[],\r\n) => {\r\n if (pin) return [pieces.find(x => x.name === pin.name)!]\r\n\r\n const excludedNames = exclusions.map(e => e.name)\r\n\r\n const rarityFiltered = applyRarityFilter(pieces, rarity) as ArmorPiece[]\r\n const typeFiltered = rarityFiltered.filter(p => filterType(p, type))\r\n const exclusionFiltered = typeFiltered.filter(p => filterExclusions(p, excludedNames))\r\n const sorted = exclusionFiltered.sort((a, b) => b.defense.max - a.defense.max)\r\n\r\n // find generic slot pieces with highest defense\r\n const genericSlotPieces: ArmorPiece[] = []\r\n for (const slots of [3, 2, 1]) {\r\n const x = sorted.find(p => p.slots === slots)\r\n if (x) {\r\n const p: ArmorPiece = {\r\n type: x.type,\r\n defense: x.defense,\r\n resistance: x.resistance,\r\n name: `${slots} Slot Piece`,\r\n slots: slots as Slots,\r\n category: x.category,\r\n rarity: x.rarity,\r\n skills: new EquipmentSkills(),\r\n isGeneric: true,\r\n }\r\n if (filterExclusions(p, excludedNames)) genericSlotPieces.push(p)\r\n }\r\n }\r\n\r\n // find piece with torso up with highest defense\r\n const torsoUpPieces: ArmorPiece[] = [sorted.find(p => p.skills.has(TORSO_UP_ID))]\r\n .filter(x => x !== undefined)\r\n .map(x => {\r\n const renamed: ArmorPiece = {\r\n ...x!,\r\n name: 'Torso Up Piece',\r\n isGeneric: true,\r\n }\r\n return renamed\r\n })\r\n .filter(x => filterExclusions(x, excludedNames)) as ArmorPiece[]\r\n\r\n // build list of pieces with wanted skills, with slots, or with torso up\r\n const result = sorted\r\n .filter(x => filterHasSkill(x, skills))\r\n .concat(...genericSlotPieces)\r\n .concat(...torsoUpPieces)\r\n\r\n // return list with dummy element if there are no pieces\r\n if (result.length === 0) {\r\n return [{\r\n ...DUMMY_PIECE,\r\n type,\r\n category,\r\n }]\r\n }\r\n\r\n return result\r\n}\r\n\r\nexport {\r\n filterType,\r\n filterRarity,\r\n filterHasSkill,\r\n applyRarityFilter,\r\n applyCharmFilter,\r\n applyArmorFilter,\r\n}\r\n","import { TORSO_UP_ID } from '../data-provider/data-provider.module'\r\nimport Decoration from '../data-provider/models/equipment/Decoration'\r\nimport EquipmentSkills from '../data-provider/models/equipment/EquipmentSkills'\r\nimport Slots from '../data-provider/models/equipment/Slots'\r\nimport DecoPermutation from './models/DecoPermutation'\r\nimport ScoredSkilledEquipment from './models/ScoredSkilledEquipment'\r\n\r\n/** get score of a skill map relative to wanted skills */\r\nconst getScoreFromSkillMap = (m: EquipmentSkills, w: EquipmentSkills): number => {\r\n let score = 0\r\n for (const [sId] of w) {\r\n score += m.get(sId) || 0\r\n }\r\n\r\n return score\r\n}\r\n\r\nconst scoreTorsoUpPieces = (piece: ScoredSkilledEquipment, maxTorsoScore: number) => {\r\n if (piece.skills.has(TORSO_UP_ID)) {\r\n const newPiece: ScoredSkilledEquipment = {\r\n ...piece,\r\n score: maxTorsoScore,\r\n }\r\n\r\n return newPiece\r\n }\r\n\r\n return piece\r\n}\r\n\r\n/** apply score to a list of decos */\r\nconst evaluateListOfDecos = (decos: Decoration[], wantedSkills: EquipmentSkills): DecoPermutation => {\r\n const skillMap: EquipmentSkills = new EquipmentSkills()\r\n decos.forEach(deco => skillMap.addSkills(deco.skills))\r\n\r\n // get max of default and computed score\r\n // default score can only be higher than computed when the decos of 2 wanted skills cancel each other out (e.g. handicraft and sharpness)\r\n const computedScore = getScoreFromSkillMap(skillMap, wantedSkills)\r\n const defaultScore = Math.max(...Array.from(skillMap.values()))\r\n const score = (Math.max(computedScore, defaultScore))\r\n\r\n return {\r\n skills: skillMap,\r\n decos,\r\n score,\r\n }\r\n}\r\n\r\n/**\r\n * checks if deco permutation is the same or better than comparison in respect to wanted skills\r\n * returns 0 if better/different, returns 1 if same, returns 2 if worse\r\n */\r\nconst decoPermWorseOrSameAsComparison = (perm: DecoPermutation, comparison: DecoPermutation, wantedSkills: EquipmentSkills) => {\r\n const arr = []\r\n for (const w of Array.from(wantedSkills.entries())) {\r\n const wId = w[0]\r\n const a = perm.skills.get(wId)\r\n const b = comparison.skills.get(wId)\r\n\r\n if (a > b) return 0\r\n if (a === b) arr.push(1)\r\n else arr.push(2)\r\n }\r\n return Math.max(...arr)\r\n}\r\n\r\n/** returns a mapping of slot level to the amount of score it is worth */\r\nconst getDecoSlotScoreMap = (decoPermutationsPerSlotLevel: Map): Map => {\r\n const m = new Map(Array.from(decoPermutationsPerSlotLevel.entries()).map(([slotLevel, permList]) => {\r\n return [slotLevel, Math.max(...permList.map(x => x.score))]\r\n }))\r\n m.set(0, 0)\r\n\r\n return m\r\n}\r\n\r\n/** prune a list of deco permutations of all duplicates and downgrades */\r\nconst pruneDecoPermutations = (permList: DecoPermutation[], wantedSkills: EquipmentSkills): DecoPermutation[] => {\r\n // we go through entire list left through right => x\r\n // for each ele, we check the entire list again => y\r\n // if y is an upgrade of x, then x will be filtered out\r\n // if y is the same as x, and y is further right in the list, then x will be filtered\r\n // only if x has no upgrade, and no element right of it that is the same will it remain in the list\r\n const res = permList\r\n .filter((x, i) => {\r\n let shouldBeFiltered: boolean = false\r\n\r\n for (let j = 0; j < permList.length; j++) {\r\n if (i === j) continue\r\n\r\n const y = permList[j]\r\n const v = decoPermWorseOrSameAsComparison(x, y, wantedSkills)\r\n\r\n if (v === 2) {\r\n shouldBeFiltered = true\r\n break\r\n }\r\n\r\n if (j > i && v === 1) {\r\n shouldBeFiltered = true\r\n break\r\n }\r\n }\r\n\r\n return !shouldBeFiltered\r\n })\r\n\r\n return res\r\n}\r\n\r\nexport {\r\n getScoreFromSkillMap,\r\n scoreTorsoUpPieces,\r\n evaluateListOfDecos,\r\n decoPermWorseOrSameAsComparison,\r\n getDecoSlotScoreMap,\r\n pruneDecoPermutations,\r\n}\r\n","import Decoration from '../../data-provider/models/equipment/Decoration'\r\nimport EquipmentSkills from '../../data-provider/models/equipment/EquipmentSkills'\r\nimport Slots from '../../data-provider/models/equipment/Slots'\r\nimport DecoMinSlotMap from './DecoMinSlotMap'\r\nimport DecoPermutation from './DecoPermutation'\r\n\r\nexport default class DecoEvaluation {\r\n decoMinSlotMap: DecoMinSlotMap\r\n unusedSlotsSum: number\r\n missingSkills: EquipmentSkills\r\n decos: Decoration[] = []\r\n requiredSlots: number = 0\r\n\r\n constructor (\r\n decoMinSlotMap: DecoMinSlotMap,\r\n unusedSlotsSum: number,\r\n missingSkills: EquipmentSkills,\r\n decos?: Decoration[],\r\n requiredSlots?: number,\r\n ) {\r\n this.decoMinSlotMap = decoMinSlotMap\r\n this.unusedSlotsSum = unusedSlotsSum\r\n this.missingSkills = missingSkills\r\n if (decos) this.decos = decos\r\n this.requiredSlots = requiredSlots || this.calculateRequiredSlots()\r\n }\r\n\r\n copy () {\r\n return new DecoEvaluation(\r\n this.decoMinSlotMap,\r\n this.unusedSlotsSum,\r\n new EquipmentSkills(this.missingSkills),\r\n this.decos.map(x => x),\r\n this.requiredSlots,\r\n )\r\n }\r\n\r\n calculateRequiredSlots (): number {\r\n let newRequiredSlots: number = 0\r\n for (const w of this.missingSkills) {\r\n const sId = w[0]\r\n const sVal = w[1]\r\n newRequiredSlots += this.decoMinSlotMap.getMinRequiredSlotsForSkill(sId, sVal)\r\n }\r\n this.requiredSlots = newRequiredSlots\r\n return newRequiredSlots\r\n }\r\n\r\n addPerm (perm: DecoPermutation, slotLevel: Slots) {\r\n this.unusedSlotsSum -= slotLevel\r\n this.decos.push(...perm.decos)\r\n\r\n // use custom loop instead of EquipmentSkills.substractSkills and DecoEvaluation.calculateRequiredSlots\r\n // to save on processing because this method is called a lot\r\n let newRequiredSlots: number = 0\r\n for (const w of this.missingSkills) {\r\n const sId = w[0]\r\n const sVal = w[1]\r\n\r\n const newVal = sVal - perm.skills.get(sId)\r\n this.missingSkills.set(sId, newVal)\r\n newRequiredSlots += this.decoMinSlotMap.getMinRequiredSlotsForSkill(sId, newVal)\r\n }\r\n\r\n this.requiredSlots = newRequiredSlots\r\n }\r\n}\r\n","import Decoration from '../../data-provider/models/equipment/Decoration'\r\nimport EquipmentSkills from '../../data-provider/models/equipment/EquipmentSkills'\r\nimport GameID from '../../data-provider/models/GameId'\r\n\r\nfunction * decoVariationMinSlotsGenerator (\r\n decosOfSkill: Decoration[],\r\n skillId: GameID,\r\n requiredPoints: number,\r\n requiredSlots: number,\r\n existingPoints: number,\r\n): Generator {\r\n for (const deco of decosOfSkill) {\r\n const newExistingPoints = existingPoints + deco.skills.get(skillId)!\r\n const newRequiredSlots = requiredSlots + deco.requiredSlots\r\n\r\n if (newExistingPoints >= requiredPoints) {\r\n yield newRequiredSlots\r\n } else {\r\n yield * decoVariationMinSlotsGenerator(\r\n decosOfSkill,\r\n skillId,\r\n requiredPoints,\r\n newRequiredSlots,\r\n newExistingPoints,\r\n )\r\n }\r\n }\r\n}\r\n\r\n/** calculates and saves how many slots are required to get x points of a certain skill */\r\nexport default class DecoMinSlotMap {\r\n private static readonly DUMMY_SCORE = 1000\r\n\r\n private decorationsOfSkillMap: Map = new Map()\r\n private calculations: Map> = new Map()\r\n\r\n constructor (allDecos: Decoration[], wantedSkills: EquipmentSkills) {\r\n for (const w of wantedSkills) {\r\n const sId = w[0]\r\n\r\n // set decorations of skill\r\n const decosOfSkill = allDecos\r\n .filter(x => x.skills.get(sId) > 0)\r\n .sort((a, b) => b.skills.get(sId) - a.skills.get(sId))\r\n this.decorationsOfSkillMap.set(sId, decosOfSkill)\r\n\r\n // init calculation map of that skill\r\n this.calculations.set(sId, new Map())\r\n }\r\n }\r\n\r\n private calculateMinRequiredSlots (skillId: GameID, skillPoints: number): number {\r\n const decosOfSkill = this.decorationsOfSkillMap.get(skillId)!\r\n if (decosOfSkill.length === 0) return DecoMinSlotMap.DUMMY_SCORE\r\n\r\n let minRequiredSlots = DecoMinSlotMap.DUMMY_SCORE\r\n for (const reqSlots of decoVariationMinSlotsGenerator(decosOfSkill, skillId, skillPoints, 0, 0)) {\r\n if (reqSlots < minRequiredSlots) minRequiredSlots = reqSlots\r\n }\r\n\r\n return minRequiredSlots\r\n }\r\n\r\n getMinRequiredSlotsForSkill (skillId: GameID, skillPoints: number): number {\r\n const m = this.calculations.get(skillId)!\r\n\r\n if (skillPoints <= 0) return 0\r\n if (m.has(skillPoints)) return m.get(skillPoints)!\r\n\r\n const newCalc = this.calculateMinRequiredSlots(skillId, skillPoints)\r\n m.set(skillPoints, newCalc)\r\n return newCalc\r\n }\r\n}\r\n","import { DUMMY_PIECE } from '../data-provider/data-provider.module'\r\nimport ArmorPiece from '../data-provider/models/equipment/ArmorPiece'\r\nimport ArmorType from '../data-provider/models/equipment/ArmorType'\r\nimport Charm from '../data-provider/models/equipment/Charm'\r\nimport Decoration from '../data-provider/models/equipment/Decoration'\r\nimport EquipmentCategory from '../data-provider/models/equipment/EquipmentCategory'\r\nimport EquipmentSkills from '../data-provider/models/equipment/EquipmentSkills'\r\nimport SkilledEquipment from '../data-provider/models/equipment/SkilledEquipment'\r\nimport Slots from '../data-provider/models/equipment/Slots'\r\nimport StaticSkillData from '../data-provider/models/skills/StaticSkillData'\r\nimport ArmorEvaluation from '../scorer/models/ArmorEvaluation'\r\nimport ArmorSet from './models/ArmorSet'\r\nimport DecoPermutation from '../scorer/models/DecoPermutation'\r\nimport SearchConstraints from './models/SearchConstraints'\r\nimport ScoredSkilledEquipment from '../scorer/models/ScoredSkilledEquipment'\r\nimport { applyArmorFilter, applyCharmFilter, applyRarityFilter, filterHasSkill } from '../data-filter/data-filter.module'\r\nimport { pruneDecoPermutations, evaluateListOfDecos, getDecoSlotScoreMap, getScoreFromSkillMap, scoreTorsoUpPieces } from '../scorer/scorer.module'\r\nimport DecoEvaluation from '../scorer/models/DecoEvaluation'\r\nimport DecoMinSlotMap from '../scorer/models/DecoMinSlotMap'\r\n\r\n// #region initial search data\r\n/** get initial armor eval with all dummy pieces */\r\nconst getIntiailArmorEval = (type: ArmorType) => {\r\n const categoryArray = [\r\n EquipmentCategory.HEAD,\r\n EquipmentCategory.CHEST,\r\n EquipmentCategory.ARMS,\r\n EquipmentCategory.WAIST,\r\n EquipmentCategory.LEGS,\r\n EquipmentCategory.CHARM,\r\n ]\r\n\r\n const pieces: ScoredSkilledEquipment[] = categoryArray.map((x) => {\r\n return {\r\n ...DUMMY_PIECE,\r\n type,\r\n category: x,\r\n score: 0,\r\n }\r\n })\r\n\r\n return new ArmorEvaluation(pieces)\r\n}\r\n\r\n/** returns all the ways you can possibly arrange the viable decorations on a given slot level (1, 2, 3) */\r\nconst getDecorationVariationsPerSlotLevel = (\r\n decorations: Decoration[],\r\n wantedSkills: EquipmentSkills,\r\n): Map => {\r\n // get all decorations of specific slot\r\n const rawOneSlots = decorations.filter(d => d.requiredSlots === 1)\r\n const rawTwoSlots = decorations.filter(d => d.requiredSlots === 2)\r\n const rawThreeSlots = decorations.filter(d => d.requiredSlots === 3)\r\n\r\n // create dummy for unused slots\r\n const dummy: Decoration = {\r\n name: 'None',\r\n rarity: 0,\r\n requiredSlots: 0,\r\n skills: new EquipmentSkills(),\r\n }\r\n\r\n // get all variations for 1 slot\r\n const oneSlotVariations = rawOneSlots.map(x => [x]).concat([[dummy]])\r\n const oneSlotEvaluated = pruneDecoPermutations(oneSlotVariations.map(x => evaluateListOfDecos(x, wantedSkills)), wantedSkills)\r\n const prunedOneSlotVariations = oneSlotEvaluated.map(x => x.decos)\r\n\r\n // get all variations for 2 slots\r\n const twoOneSlotDecoVariations = []\r\n for (let i = 0; i < prunedOneSlotVariations.length; i++) {\r\n const x = prunedOneSlotVariations[i]\r\n for (let j = Math.abs(i); j < prunedOneSlotVariations.length; j++) {\r\n const y = prunedOneSlotVariations[j]\r\n twoOneSlotDecoVariations.push(x.concat(y))\r\n }\r\n }\r\n const twoSlotVariations = rawTwoSlots\r\n .map(x => [x])\r\n .concat(twoOneSlotDecoVariations)\r\n const twoSlotEvaluated = pruneDecoPermutations(twoSlotVariations.map(x => evaluateListOfDecos(x, wantedSkills)), wantedSkills)\r\n\r\n // get all variations for 3 slots\r\n const threeOneSlotDecoVariations = []\r\n for (let i = 0; i < prunedOneSlotVariations.length; i++) {\r\n const x = prunedOneSlotVariations[i]\r\n for (let j = Math.abs(i); j < twoOneSlotDecoVariations.length; j++) {\r\n const y = twoOneSlotDecoVariations[j]\r\n threeOneSlotDecoVariations.push(x.concat(y))\r\n }\r\n }\r\n const oneAndTwoSlotDecoVariations = []\r\n for (const oneSlot of rawOneSlots) {\r\n for (const twoSlot of rawTwoSlots) {\r\n oneAndTwoSlotDecoVariations.push([oneSlot, twoSlot])\r\n }\r\n }\r\n const threeSlotVariations = rawThreeSlots\r\n .map(x => [x])\r\n .concat(oneAndTwoSlotDecoVariations)\r\n .concat(threeOneSlotDecoVariations)\r\n const threeSlotEvaluated = pruneDecoPermutations(threeSlotVariations.map(x => evaluateListOfDecos(x, wantedSkills)), wantedSkills)\r\n\r\n // return pruned evaluations\r\n return new Map([\r\n [0, []],\r\n [1, oneSlotEvaluated],\r\n [2, twoSlotEvaluated],\r\n [3, threeSlotEvaluated],\r\n ])\r\n}\r\n// #endregion\r\n\r\n// #region search logic\r\nfunction * getArmorPermutations (\r\n equipment: ScoredSkilledEquipment[][],\r\n previousEval: ArmorEvaluation,\r\n maximumRemainingScore: number[],\r\n requiredScore: number,\r\n categoryIndex: number,\r\n): Generator {\r\n for (const piece of equipment[categoryIndex]) {\r\n // create and eval new set\r\n const thisEval = previousEval.copy()\r\n thisEval.addPiece(piece)\r\n\r\n // yield it if score is sufficient\r\n if (thisEval.score >= requiredScore) yield thisEval\r\n // otherwise check if its possible to still find sets on this branch and break if not\r\n else {\r\n if ((thisEval.score + maximumRemainingScore[categoryIndex]) < requiredScore) break\r\n }\r\n\r\n // then yield the next loop if there is one\r\n if (categoryIndex > 0) {\r\n yield * getArmorPermutations(\r\n equipment,\r\n thisEval,\r\n maximumRemainingScore,\r\n requiredScore,\r\n categoryIndex - 1,\r\n )\r\n }\r\n }\r\n}\r\n\r\nfunction * getDecoPermutations (\r\n decoPermutationsPerSlotLevel: Map,\r\n slotsOfArmor: Slots[],\r\n previousEval: DecoEvaluation,\r\n slotIndex: number,\r\n): Generator {\r\n const slotLevel = slotsOfArmor[slotIndex]\r\n for (const perm of decoPermutationsPerSlotLevel.get(slotLevel)!) {\r\n // create and eval new set\r\n const thisEval = previousEval.copy()\r\n thisEval.addPerm(perm, slotLevel)\r\n\r\n // yield it if score is sufficient\r\n if (thisEval.requiredSlots <= 0) yield thisEval\r\n // otherwise check if its possible to still find sets on this branch and break if not\r\n else {\r\n if (thisEval.unusedSlotsSum < thisEval.requiredSlots) continue\r\n }\r\n\r\n // then yield the next loop if there is one\r\n if (slotIndex > 0) {\r\n yield * getDecoPermutations(\r\n decoPermutationsPerSlotLevel,\r\n slotsOfArmor,\r\n thisEval,\r\n slotIndex - 1,\r\n )\r\n }\r\n }\r\n}\r\n\r\nconst transformTorsoUpDecoPermutation = (perm: DecoPermutation, torsoUp: number): DecoPermutation => {\r\n const factor = torsoUp + 1\r\n\r\n const score = perm.score * factor\r\n const decos = perm.decos.map(d => {\r\n const newSkills = new EquipmentSkills(d.skills)\r\n newSkills.multiply(factor)\r\n const newDeco: Decoration = {\r\n ...d,\r\n affectedByTorsoUp: true,\r\n name: d.name.concat(' (TorsoUp)'),\r\n skills: newSkills,\r\n }\r\n\r\n return newDeco\r\n })\r\n const newTotalSkills = new EquipmentSkills(perm.skills)\r\n newTotalSkills.multiply(factor)\r\n const skills = newTotalSkills\r\n\r\n return {\r\n score,\r\n decos,\r\n skills,\r\n }\r\n}\r\n\r\nconst findSufficientDecoPermutation = (\r\n armorEval: ArmorEvaluation,\r\n constraints: SearchConstraints,\r\n wantedSkills: EquipmentSkills,\r\n decoMinSlotMap: DecoMinSlotMap,\r\n decoPermutationsPerSlotLevel: Map,\r\n): DecoEvaluation | undefined => {\r\n const _inner = (\r\n _slotList: Slots[],\r\n _initialEval: DecoEvaluation,\r\n ): DecoEvaluation | undefined => {\r\n if (_initialEval.requiredSlots <= 0) return _initialEval\r\n if (_initialEval.unusedSlotsSum < _initialEval.requiredSlots) return undefined\r\n if (_slotList.length === 0) return undefined\r\n\r\n const decoEvaluation = getDecoPermutations(\r\n decoPermutationsPerSlotLevel,\r\n _slotList,\r\n _initialEval,\r\n _slotList.length - 1,\r\n ).next().value\r\n\r\n if (decoEvaluation) return decoEvaluation\r\n return undefined\r\n }\r\n\r\n let r: DecoEvaluation | undefined\r\n const torsoSlots = armorEval.equipment[EquipmentCategory.CHEST].slots\r\n const missingSkills = new EquipmentSkills(Array.from(wantedSkills).map(([sId, sVal]) => {\r\n return [sId, sVal - armorEval.skills.get(sId)]\r\n }))\r\n const slotSum = armorEval.totalSlots + constraints.weaponSlots\r\n\r\n if (armorEval.torsoUp > 0 && torsoSlots > 0) {\r\n // if torso up, fill the chest slots and then iterate over permutations from there\r\n const slotList = armorEval.getSlotsExceptChest().concat(constraints.weaponSlots ? constraints.weaponSlots : [])\r\n const slotSumWithoutTorso = slotSum - torsoSlots\r\n const initialEval = new DecoEvaluation(decoMinSlotMap, slotSumWithoutTorso, missingSkills)\r\n for (const chestPerm of decoPermutationsPerSlotLevel.get(torsoSlots)!) {\r\n const transformedPerm = transformTorsoUpDecoPermutation(chestPerm, armorEval.torsoUp)\r\n const copiedEval = initialEval.copy()\r\n copiedEval.addPerm(transformedPerm, torsoSlots)\r\n const temp = _inner(slotList, copiedEval)\r\n if (temp) {\r\n r = temp\r\n break\r\n }\r\n }\r\n } else {\r\n // otherwise just iterate over permutations\r\n const slotList = armorEval.getSlots().concat(constraints.weaponSlots ? constraints.weaponSlots : [])\r\n r = _inner(slotList, new DecoEvaluation(decoMinSlotMap, armorEval.totalSlots + constraints.weaponSlots, missingSkills))\r\n }\r\n\r\n return r\r\n}\r\n\r\nconst findSets = (\r\n armorPieces: ArmorPiece[][],\r\n decorations: Decoration[],\r\n charms: Charm[],\r\n constraints: SearchConstraints,\r\n skillData: StaticSkillData,\r\n) => {\r\n const wantedSkills: EquipmentSkills = new EquipmentSkills(constraints.skillActivations.map(x => [x.requiredSkill, x.requiredPoints]))\r\n const decoPermutationsPerSlotLevel = getDecorationVariationsPerSlotLevel(decorations, wantedSkills)\r\n const slotScoreMap = getDecoSlotScoreMap(decoPermutationsPerSlotLevel)\r\n const initialArmorEval = getIntiailArmorEval(constraints.armorType)\r\n const wantedScore = getScoreFromSkillMap(wantedSkills, wantedSkills) - slotScoreMap.get(constraints.weaponSlots)!\r\n const decoMinSlotMap = new DecoMinSlotMap(decorations, wantedSkills)\r\n\r\n const skilledEquipment: SkilledEquipment[][] = armorPieces\r\n skilledEquipment.push(charms)\r\n\r\n // score equipment\r\n const scoredEquipment: ScoredSkilledEquipment[][] = skilledEquipment\r\n .map(equList => equList.map((equ) => {\r\n const score = slotScoreMap.get(equ.slots)! + getScoreFromSkillMap(equ.skills, wantedSkills)\r\n return {\r\n ...equ,\r\n score,\r\n }\r\n }))\r\n\r\n // reorder equipment and manually rescore torso up pieces\r\n const maxTorsoScore = Math.max(...scoredEquipment[1].map(x => x.score))\r\n const readjustedEquipment = [\r\n scoredEquipment[1], // chest first to simplify torso up calculation\r\n scoredEquipment[0].map(x => scoreTorsoUpPieces(x, maxTorsoScore)),\r\n scoredEquipment[2], // arms cant have torso up\r\n scoredEquipment[3].map(x => scoreTorsoUpPieces(x, maxTorsoScore)),\r\n scoredEquipment[4].map(x => scoreTorsoUpPieces(x, maxTorsoScore)),\r\n scoredEquipment[5], // charm cant have torso up\r\n ]\r\n\r\n // sort equipment by score\r\n const sorted = readjustedEquipment.map(l => l.sort((a, b) => b.score - a.score))\r\n\r\n // get list of maximum score of remaining iterations\r\n const maximumRemainingScore = [0]\r\n let sumOfAllIterations = 0\r\n sorted.map(x => x[0].score).forEach((m) => {\r\n sumOfAllIterations += m\r\n maximumRemainingScore.push(sumOfAllIterations)\r\n })\r\n\r\n let length = 0\r\n const validSets: ArmorSet[] = []\r\n // try all viable armor permuations\r\n for (const armorEvaluation of getArmorPermutations(\r\n sorted,\r\n initialArmorEval,\r\n maximumRemainingScore,\r\n wantedScore,\r\n sorted.length - 1,\r\n )) {\r\n // find first sufficient deco eval\r\n const decoEvaluation = findSufficientDecoPermutation(\r\n armorEvaluation,\r\n constraints,\r\n wantedSkills,\r\n decoMinSlotMap,\r\n decoPermutationsPerSlotLevel,\r\n )\r\n\r\n // build and append set if there is any deco eval\r\n if (decoEvaluation) {\r\n const set = new ArmorSet(armorEvaluation, decoEvaluation, skillData.skillActivation)\r\n validSets.push(set)\r\n\r\n // exit if enough sets found\r\n if (length === constraints.limit - 1) break\r\n length++\r\n }\r\n }\r\n\r\n return validSets\r\n}\r\n// #endregion\r\n\r\n// #region entrypoint\r\nconst search = (\r\n armorPieces: ArmorPiece[][],\r\n decorations: Decoration[],\r\n charms: Charm[],\r\n constraints: SearchConstraints,\r\n skillData: StaticSkillData,\r\n) => {\r\n const a = armorPieces\r\n .map((piecesOfCategory, i) => {\r\n return applyArmorFilter(piecesOfCategory, constraints.armorRarity, constraints.armorType, i, constraints.pins[i], constraints.exclusions[i], constraints.skillActivations)\r\n })\r\n const c = applyCharmFilter(charms, constraints.skillActivations)\r\n const d = applyRarityFilter(decorations, constraints.decoRarity)\r\n .filter(x => filterHasSkill(x, constraints.skillActivations))\r\n\r\n return findSets(\r\n a,\r\n d as Decoration[],\r\n c,\r\n constraints,\r\n skillData,\r\n )\r\n}\r\n// #endregion\r\n\r\nexport { search }\r\n","import Rarity from '../../data-provider/models/equipment/Rarity'\r\nimport Slots from '../../data-provider/models/equipment/Slots'\r\nimport GlobalSettings from '../models/GlobalSettings'\r\n\r\nexport const getGlobalSettings = (): GlobalSettings => {\r\n const armorSelect = document.getElementById('armor-type') as HTMLSelectElement\r\n const weaponSlots = document.getElementById('weapon-slots') as HTMLSelectElement\r\n const armorRarity = document.getElementById('armor-rarity') as HTMLSelectElement\r\n const decoRarity = document.getElementById('deco-rarity') as HTMLSelectElement\r\n const limit = document.getElementById('search-limit') as HTMLInputElement\r\n\r\n return {\r\n armorType: parseInt(armorSelect.value),\r\n weaponSlots: parseInt(weaponSlots.value) as Slots,\r\n armorRarity: parseInt(armorRarity.value) as Rarity,\r\n decoRarity: parseInt(decoRarity.value) as Rarity,\r\n limit: parseInt(limit.value),\r\n }\r\n}\r\n","import ArmorSet from '../../searcher/models/ArmorSet'\r\nimport SearchConstraints from '../../searcher/models/SearchConstraints'\r\nimport StaticSkillData from '../../data-provider/models/skills/StaticSkillData'\r\nimport UserEquipmentSettings from '../../data-provider/models/user/UserEquipmentSettings'\r\nimport { htmlToElement } from '../../helper/html.helper'\r\nimport SkillActivation from '../../data-provider/models/skills/SkillActivation'\r\nimport SkillActivationMap from '../../data-provider/models/skills/SkillActivationMap'\r\nimport { addExclusion, addPin, removeExlusion, removePin } from './eq-settings.component'\r\n\r\nexport function * moreSkillsIterator (skillActivations: SkillActivationMap) {\r\n const rContainer = clearAndGetResultsContainer()\r\n const countDiv = document.createElement('div')\r\n rContainer.appendChild(countDiv)\r\n\r\n const totalActCount = Array.from(skillActivations.values())\r\n .reduce((sum, c) => sum + c.length, 0)\r\n\r\n for (let i = 0; i < totalActCount; i++) {\r\n countDiv.innerHTML = `Checked ${i} possible skills ...`\r\n yield i\r\n }\r\n}\r\n\r\nconst onSetClick = (tbNode: Node, viewGetter: () => Node) => {\r\n const children = tbNode.childNodes\r\n const finalNode = children[children.length - 1] as HTMLTableRowElement\r\n\r\n // toggle if details have already been rendered\r\n if (finalNode.classList.contains('result-set-details')) {\r\n finalNode.classList.toggle('hidden')\r\n return\r\n }\r\n\r\n // render and append them otherwise\r\n tbNode.appendChild(viewGetter())\r\n}\r\n\r\nconst PINS_OR_EXCL_ACTIVE_BANNER = htmlToElement(`\r\n
\r\n You have some pins or exclusions active, which may be limiting results. You may find some results by removing those pins or exclusions.\r\n
\r\n`)\r\n\r\nconst getExpandedView = (set: ArmorSet, skillData: StaticSkillData, searchParams: SearchConstraints) => {\r\n // build header\r\n const header = htmlToElement(`\r\n \r\n Skill\r\n Weapon\r\n Head\r\n Chest\r\n Arms\r\n Waist\r\n Legs\r\n Deco\r\n Total\r\n Active\r\n \r\n `)\r\n\r\n // build skills rows\r\n const skillRows = Array.from(set.evaluation!.skills.entries())\r\n .sort(([_a, a], [_b, b]) => b - a)\r\n .map(([sId, sVal]) => {\r\n const r = document.createElement('tr')\r\n\r\n const computedDecoValue = set.decos\r\n .map(d => d.skills.get(sId)!)\r\n .reduce((sum, c) => sum + c, 0)\r\n\r\n r.appendChild(htmlToElement(`${skillData.skillName.get(sId) ? skillData.skillName.get(sId)! : ''}`))\r\n r.appendChild(htmlToElement('')) // weapon\r\n for (const p of set.getPieces()) {\r\n r.append(htmlToElement(`${p.skills.get(sId) ? p.skills.get(sId)! : ''}`))\r\n }\r\n r.append(htmlToElement(`${computedDecoValue || ''}`))\r\n r.append(htmlToElement(`${sVal}`))\r\n const possibleAct = set.evaluation!.activations.find(a => a.requiredSkill === sId)\r\n if (possibleAct) r.append(htmlToElement(`${possibleAct.name}`))\r\n return r\r\n })\r\n\r\n // build slot list\r\n const slotRow = document.createElement('tr')\r\n slotRow.appendChild(htmlToElement('Slots'))\r\n const rawSlowList = [searchParams.weaponSlots, ...set.getPieces().map(x => x.slots)]\r\n rawSlowList.forEach(s => slotRow.appendChild(htmlToElement(`${s}`)))\r\n\r\n // append elements to table\r\n const skillTable = htmlToElement('
')\r\n skillTable.appendChild(header)\r\n skillRows.forEach(x => skillTable.appendChild(x))\r\n skillTable.appendChild(slotRow)\r\n\r\n // build deco list\r\n const decoNameMap: Map = new Map()\r\n for (const deco of set.decos) {\r\n const name = deco.name\r\n decoNameMap.set(name, 1 + (decoNameMap.get(name) || 0))\r\n }\r\n const decoNameList = Array.from(decoNameMap.entries())\r\n .map(([name, amount]) => `${amount} x ${name}`)\r\n const decoNameString = decoNameList.join(', ')\r\n const decoNameContainer = htmlToElement(`\r\n
${decoNameString}
\r\n `)\r\n\r\n // build piece table\r\n const pieceTable = htmlToElement('
')\r\n const pieceTableHeader = htmlToElement('DefPiecePinExcl')\r\n pieceTable.appendChild(pieceTableHeader)\r\n for (const piece of set.getPieces()) {\r\n const pieceTableEle = document.createElement('tr')\r\n const pieceTableDef = htmlToElement(`${piece.defense.max}`)\r\n const pieceTableName = htmlToElement(`${piece.name}`)\r\n\r\n const pieceTablePin = (piece.isGeneric\r\n ? htmlToElement('')\r\n : htmlToElement('✓')) as HTMLElement\r\n const pieceTableExcl = htmlToElement('X') as HTMLElement\r\n if (UserEquipmentSettings.Instance.hasPin(piece)) pieceTablePin.classList.add('pin-highlighted')\r\n if (UserEquipmentSettings.Instance.hasExclusion(piece)) pieceTableExcl.classList.add('excl-highlighted')\r\n\r\n pieceTablePin.addEventListener('click', () => {\r\n if (piece.isGeneric) return\r\n\r\n if (UserEquipmentSettings.Instance.hasPin(piece)) {\r\n removePin(piece.category)\r\n pieceTablePin.classList.remove('pin-highlighted')\r\n } else {\r\n addPin(piece)\r\n pieceTablePin.classList.add('pin-highlighted')\r\n }\r\n })\r\n pieceTableExcl.addEventListener('click', () => {\r\n if (UserEquipmentSettings.Instance.hasExclusion(piece)) {\r\n removeExlusion(piece)\r\n pieceTableExcl.classList.remove('excl-highlighted')\r\n } else {\r\n addExclusion(piece)\r\n pieceTableExcl.classList.add('excl-highlighted')\r\n }\r\n })\r\n\r\n pieceTableEle.appendChild(pieceTableDef)\r\n pieceTableEle.appendChild(pieceTableName)\r\n pieceTableEle.appendChild(pieceTablePin)\r\n pieceTableEle.appendChild(pieceTableExcl)\r\n pieceTable.appendChild(pieceTableEle)\r\n }\r\n\r\n // return final div\r\n const tr = htmlToElement('')\r\n const td = htmlToElement('')\r\n const d = htmlToElement('
')\r\n td.appendChild(d)\r\n tr.appendChild(td)\r\n d.appendChild(pieceTable)\r\n d.appendChild(skillTable)\r\n d.appendChild(document.createElement('div')) // dummy for easy grid\r\n d.appendChild(decoNameContainer)\r\n return tr\r\n}\r\n\r\nconst getSetElement = (set: ArmorSet, skillData: StaticSkillData, searchParams: SearchConstraints) => {\r\n // get bonus and negative skills\r\n const requiredActivations = searchParams.skillActivations\r\n const unrelatedActivations = set.evaluation!.activations.filter((act) => {\r\n return !act.isPositive || // negative skill\r\n !requiredActivations.find(req => req.requiredSkill === act.requiredSkill) || // skill is not in required\r\n requiredActivations.find(req => req.requiredSkill === act.requiredSkill && act.requiredPoints > req.requiredPoints) // skill is upgrade of smth required\r\n })\r\n const unrelatedHtmlStrings = unrelatedActivations\r\n .sort((a, b) => b.requiredPoints - a.requiredPoints)\r\n .map((x) => {\r\n return `${x.name}`\r\n })\r\n\r\n // get basic display components\r\n const tb = htmlToElement('')\r\n const row1 = htmlToElement(`\r\n \r\n ${set.head.name}\r\n ${set.chest.name}\r\n ${set.arms.name}\r\n ${set.waist.name}\r\n ${set.legs.name}\r\n `)\r\n const row2 = htmlToElement(`\r\n \r\n \r\n

DEF ${set.evaluation.defense.max}

\r\n

FIR ${set.evaluation.resistance[0]}

\r\n

WAT ${set.evaluation.resistance[1]}

\r\n

ICE ${set.evaluation.resistance[2]}

\r\n

THN ${set.evaluation.resistance[3]}

\r\n

DRG ${set.evaluation.resistance[4]}

\r\n ${unrelatedHtmlStrings.join('')}\r\n \r\n `)\r\n\r\n // append basic display components\r\n const getter = () => { return getExpandedView(set, skillData, searchParams) }\r\n for (const row of [row1, row2]) {\r\n tb.appendChild(row)\r\n row.addEventListener('click', () => onSetClick(tb, getter))\r\n }\r\n\r\n return tb\r\n}\r\n\r\nconst onMoreSkillsActClick = (d: HTMLDivElement) => {\r\n const id = parseInt(d.getAttribute('data-id')!)\r\n\r\n for (const ele of Array.from(document.getElementsByClassName('search-picker-activation'))) {\r\n const thisId = parseInt(ele.getAttribute('data-id')!)\r\n if (id === thisId) {\r\n (ele as HTMLDivElement).click()\r\n break\r\n }\r\n }\r\n}\r\n\r\nconst clearAndGetResultsContainer = () => {\r\n const resultContainer = document.getElementById('search-results')!\r\n for (const c of Array.from(resultContainer.children)) c.remove()\r\n return resultContainer\r\n}\r\n\r\nexport const renderMoreSkills = (activations: SkillActivation[], pinsOrExclActive: boolean) => {\r\n const resultContainer = clearAndGetResultsContainer()\r\n\r\n if (activations.length === 0) {\r\n resultContainer.appendChild(htmlToElement(`\r\n
\r\n Can't fit more skills\r\n
\r\n `))\r\n\r\n if (pinsOrExclActive) resultContainer.appendChild(PINS_OR_EXCL_ACTIVE_BANNER)\r\n\r\n return\r\n }\r\n\r\n for (const act of activations) {\r\n const d = htmlToElement(`
`) as HTMLDivElement\r\n d.appendChild(htmlToElement(`${act.name}`))\r\n d.addEventListener('click', () => { onMoreSkillsActClick(d) })\r\n resultContainer.appendChild(d)\r\n }\r\n}\r\n\r\nexport const renderResults = (sets: ArmorSet[], skillData: StaticSkillData, searchParams: SearchConstraints, pinsOrExclActive: boolean) => {\r\n const resultContainer = clearAndGetResultsContainer()\r\n\r\n // add search param element\r\n resultContainer.appendChild(htmlToElement(`\r\n
Results for ${searchParams.skillActivations.map(x => x.name).join(', ')} (${sets.length} matches)
\r\n `))\r\n\r\n // return if no results\r\n if (sets.length === 0) {\r\n resultContainer.appendChild(htmlToElement(`\r\n
\r\n No matching armor sets\r\n
\r\n `))\r\n\r\n if (pinsOrExclActive) resultContainer.appendChild(PINS_OR_EXCL_ACTIVE_BANNER)\r\n\r\n return\r\n }\r\n\r\n // build table and table header\r\n const table = htmlToElement('
')\r\n const header = htmlToElement('HeadTorsoArmsWaistLegs')\r\n resultContainer.appendChild(table)\r\n table.appendChild(header)\r\n\r\n // build and append html elements for each armor set\r\n sets\r\n .sort((a, b) => b.evaluation.defense.max - a.evaluation.defense.max)\r\n .map(set => getSetElement(set, skillData, searchParams))\r\n .forEach(ele => table.appendChild(ele))\r\n}\r\n","import ArmorSet from '../../searcher/models/ArmorSet'\r\nimport SearchConstraints from '../../searcher/models/SearchConstraints'\r\nimport StaticEquipmentData from '../../data-provider/models/equipment/StaticEquipmentData'\r\nimport StaticSkillData from '../../data-provider/models/skills/StaticSkillData'\r\nimport { search } from '../../searcher/searcher.module'\r\nimport { getGlobalSettings } from './global-settings.component'\r\nimport { getSkillActivations, resetSkillActivations } from './picker.component'\r\nimport { moreSkillsIterator, renderMoreSkills, renderResults } from './search-results.component'\r\nimport SkillActivation from '../../data-provider/models/skills/SkillActivation'\r\nimport UserEquipmentSettings from '../../data-provider/models/user/UserEquipmentSettings'\r\nimport EquipmentMin from '../../data-provider/models/equipment/EquipmentMin'\r\n\r\nconst pinsOrExclusionsActive = (pins: (EquipmentMin | undefined)[], exclusions: EquipmentMin[][]): boolean => {\r\n return pins.some(p => p !== undefined) || exclusions.some(eL => eL.length > 0)\r\n}\r\n\r\nconst arrangeSearchData = () => {\r\n // build params\r\n const globalSettings = getGlobalSettings()\r\n const skillActivations = getSkillActivations()\r\n\r\n // return if no skill selected\r\n if (skillActivations.length === 0) {\r\n return\r\n }\r\n\r\n // sanitize activation input to only include highest version of each skill\r\n const sanitizedSkillActivations = skillActivations\r\n .filter((thisAct, i) => {\r\n return skillActivations.every((compareAct, j) => {\r\n if (i === j) return true\r\n if (thisAct.requiredSkill !== compareAct.requiredSkill) return true\r\n\r\n return thisAct.requiredPoints >= compareAct.requiredPoints\r\n })\r\n })\r\n\r\n // create search params\r\n const searchParams: SearchConstraints = {\r\n weaponSlots: globalSettings.weaponSlots,\r\n armorType: globalSettings.armorType,\r\n armorRarity: globalSettings.armorRarity,\r\n decoRarity: globalSettings.decoRarity,\r\n limit: Math.min(Math.max(globalSettings.limit, 1), 1000),\r\n skillActivations: sanitizedSkillActivations,\r\n pins: UserEquipmentSettings.Instance.pins,\r\n exclusions: UserEquipmentSettings.Instance.exclusions,\r\n }\r\n\r\n return searchParams\r\n}\r\n\r\nconst searchLogic = (equData: StaticEquipmentData, skillData: StaticSkillData) => {\r\n const searchParams = arrangeSearchData()\r\n\r\n if (!searchParams) {\r\n alert('Please select at least one skill')\r\n return\r\n }\r\n\r\n // search for sets\r\n const result = search(\r\n equData.armor,\r\n equData.decorations,\r\n [],\r\n searchParams,\r\n skillData,\r\n )\r\n\r\n // render results\r\n renderResults(result, skillData, searchParams, pinsOrExclusionsActive(searchParams.pins, searchParams.exclusions))\r\n}\r\n\r\nconst moreSkillsLogic = async (equData: StaticEquipmentData, skillData: StaticSkillData) => {\r\n const searchParams = arrangeSearchData()\r\n\r\n if (!searchParams) {\r\n alert('Please select at least one skill')\r\n return\r\n }\r\n\r\n const aquirableSkills: SkillActivation[] = []\r\n\r\n const outputIterator = moreSkillsIterator(skillData.skillActivation)\r\n\r\n for (const actMap of skillData.skillActivation) {\r\n const sActs = actMap[1]\r\n\r\n const processedActs = sActs\r\n .filter(act => act.requiredPoints >= 0)\r\n .filter(act => !searchParams.skillActivations.map(x => x.id).includes(act.id))\r\n .filter(act => !searchParams.skillActivations.find(x => act.requiredSkill === x.requiredSkill && act.requiredPoints < x.requiredPoints))\r\n .sort((a, b) => a.requiredPoints - b.requiredPoints)\r\n\r\n let breakFlag = false\r\n for (const act of processedActs) {\r\n outputIterator.next()\r\n if (breakFlag) continue\r\n\r\n const newParams: SearchConstraints = {\r\n ...searchParams,\r\n limit: 1,\r\n skillActivations: searchParams.skillActivations.concat(act),\r\n }\r\n\r\n const r = await new Promise((resolve, _reject) => {\r\n setTimeout(() => {\r\n const innerR = search(\r\n equData.armor,\r\n equData.decorations,\r\n [],\r\n newParams,\r\n skillData,\r\n )\r\n resolve(innerR)\r\n })\r\n })\r\n\r\n if (r.length === 0) breakFlag = true\r\n else aquirableSkills.push(act)\r\n }\r\n }\r\n\r\n renderMoreSkills(aquirableSkills, pinsOrExclusionsActive(searchParams.pins, searchParams.exclusions))\r\n}\r\n\r\nconst resetLogic = () => {\r\n resetSkillActivations()\r\n}\r\n\r\n/** attach handlers for control buttons */\r\nexport const attachControlListeners = (equData: StaticEquipmentData, skillData: StaticSkillData) => {\r\n const searchBtn = document.getElementById('search-btn') as HTMLButtonElement\r\n const moreSkillsBtn = document.getElementById('more-btn') as HTMLButtonElement\r\n const resetBtn = document.getElementById('reset-btn') as HTMLButtonElement\r\n\r\n searchBtn.addEventListener('click', () => {\r\n searchLogic(equData, skillData)\r\n })\r\n moreSkillsBtn.addEventListener('click', () => {\r\n moreSkillsLogic(equData, skillData)\r\n })\r\n resetBtn.addEventListener('click', () => {\r\n resetLogic()\r\n })\r\n}\r\n","import { getArms, getChest, getDecorations, getHead, getLegs, getSkillActivationMap, getSkillCategories, getSkillNameMap, getWaist } from '../../data-provider/data-provider.module'\r\nimport StaticSkillData from '../../data-provider/models/skills/StaticSkillData'\r\nimport { renderEqSettings } from '../ui/eq-settings.component'\r\nimport { initiateNavbar } from '../ui/navbar.component'\r\nimport { renderSkillPicker } from '../ui/picker.component'\r\nimport { attachControlListeners } from '../ui/search-controls.component'\r\n\r\nconst main = async () => {\r\n // initiate static components\r\n initiateNavbar()\r\n\r\n // load remaining data\r\n const armor = [\r\n await getHead(),\r\n await getChest(),\r\n await getArms(),\r\n await getWaist(),\r\n await getLegs(),\r\n ]\r\n const decorations = await getDecorations()\r\n\r\n // load skill data and render skill picker with it\r\n const skillData: StaticSkillData = {\r\n skillName: await getSkillNameMap(),\r\n skillActivation: await getSkillActivationMap(),\r\n skillCategories: await getSkillCategories(),\r\n }\r\n\r\n // render ui\r\n renderSkillPicker(skillData.skillActivation, skillData.skillCategories)\r\n renderEqSettings(armor)\r\n\r\n // initialize search controls\r\n attachControlListeners({ armor, decorations }, skillData)\r\n}\r\n\r\nmain()\r\n","var OVERLAY_ID = '__parcel__error__overlay__';\n\nvar OldModule = module.bundle.Module;\n\nfunction Module(moduleName) {\n OldModule.call(this, moduleName);\n this.hot = {\n data: module.bundle.hotData,\n _acceptCallbacks: [],\n _disposeCallbacks: [],\n accept: function (fn) {\n this._acceptCallbacks.push(fn || function () {});\n },\n dispose: function (fn) {\n this._disposeCallbacks.push(fn);\n }\n };\n\n module.bundle.hotData = null;\n}\n\nmodule.bundle.Module = Module;\nvar checkedAssets, assetsToAccept;\n\nvar parent = module.bundle.parent;\nif ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {\n var hostname = process.env.HMR_HOSTNAME || location.hostname;\n var protocol = location.protocol === 'https:' ? 'wss' : 'ws';\n var ws = new WebSocket(protocol + '://' + hostname + ':' + process.env.HMR_PORT + '/');\n ws.onmessage = function(event) {\n checkedAssets = {};\n assetsToAccept = [];\n\n var data = JSON.parse(event.data);\n\n if (data.type === 'update') {\n var handled = false;\n data.assets.forEach(function(asset) {\n if (!asset.isNew) {\n var didAccept = hmrAcceptCheck(global.parcelRequire, asset.id);\n if (didAccept) {\n handled = true;\n }\n }\n });\n\n // Enable HMR for CSS by default.\n handled = handled || data.assets.every(function(asset) {\n return asset.type === 'css' && asset.generated.js;\n });\n\n if (handled) {\n console.clear();\n\n data.assets.forEach(function (asset) {\n hmrApply(global.parcelRequire, asset);\n });\n\n assetsToAccept.forEach(function (v) {\n hmrAcceptRun(v[0], v[1]);\n });\n } else if (location.reload) { // `location` global exists in a web worker context but lacks `.reload()` function.\n location.reload();\n }\n }\n\n if (data.type === 'reload') {\n ws.close();\n ws.onclose = function () {\n location.reload();\n }\n }\n\n if (data.type === 'error-resolved') {\n console.log('[parcel] ✨ Error resolved');\n\n removeErrorOverlay();\n }\n\n if (data.type === 'error') {\n console.error('[parcel] 🚨 ' + data.error.message + '\\n' + data.error.stack);\n\n removeErrorOverlay();\n\n var overlay = createErrorOverlay(data);\n document.body.appendChild(overlay);\n }\n };\n}\n\nfunction removeErrorOverlay() {\n var overlay = document.getElementById(OVERLAY_ID);\n if (overlay) {\n overlay.remove();\n }\n}\n\nfunction createErrorOverlay(data) {\n var overlay = document.createElement('div');\n overlay.id = OVERLAY_ID;\n\n // html encode message and stack trace\n var message = document.createElement('div');\n var stackTrace = document.createElement('pre');\n message.innerText = data.error.message;\n stackTrace.innerText = data.error.stack;\n\n overlay.innerHTML = (\n '
' +\n 'ERROR' +\n '🚨' +\n '
' + message.innerHTML + '
' +\n '
' + stackTrace.innerHTML + '
' +\n '
'\n );\n\n return overlay;\n\n}\n\nfunction getParents(bundle, id) {\n var modules = bundle.modules;\n if (!modules) {\n return [];\n }\n\n var parents = [];\n var k, d, dep;\n\n for (k in modules) {\n for (d in modules[k][1]) {\n dep = modules[k][1][d];\n if (dep === id || (Array.isArray(dep) && dep[dep.length - 1] === id)) {\n parents.push(k);\n }\n }\n }\n\n if (bundle.parent) {\n parents = parents.concat(getParents(bundle.parent, id));\n }\n\n return parents;\n}\n\nfunction hmrApply(bundle, asset) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n\n if (modules[asset.id] || !bundle.parent) {\n var fn = new Function('require', 'module', 'exports', asset.generated.js);\n asset.isNew = !modules[asset.id];\n modules[asset.id] = [fn, asset.deps];\n } else if (bundle.parent) {\n hmrApply(bundle.parent, asset);\n }\n}\n\nfunction hmrAcceptCheck(bundle, id) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n\n if (!modules[id] && bundle.parent) {\n return hmrAcceptCheck(bundle.parent, id);\n }\n\n if (checkedAssets[id]) {\n return;\n }\n checkedAssets[id] = true;\n\n var cached = bundle.cache[id];\n\n assetsToAccept.push([bundle, id]);\n\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n return true;\n }\n\n return getParents(global.parcelRequire, id).some(function (id) {\n return hmrAcceptCheck(global.parcelRequire, id)\n });\n}\n\nfunction hmrAcceptRun(bundle, id) {\n var cached = bundle.cache[id];\n bundle.hotData = {};\n if (cached) {\n cached.hot.data = bundle.hotData;\n }\n\n if (cached && cached.hot && cached.hot._disposeCallbacks.length) {\n cached.hot._disposeCallbacks.forEach(function (cb) {\n cb(bundle.hotData);\n });\n }\n\n delete bundle.cache[id];\n bundle(id);\n\n cached = bundle.cache[id];\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n cached.hot._acceptCallbacks.forEach(function (cb) {\n cb();\n });\n return true;\n }\n}\n"]} \ No newline at end of file diff --git a/styles.8986bff4.js b/styles.8986bff4.js index c27664f..d8a1cb0 100644 --- a/styles.8986bff4.js +++ b/styles.8986bff4.js @@ -197,7 +197,7 @@ var parent = module.bundle.parent; if ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') { var hostname = "" || location.hostname; var protocol = location.protocol === 'https:' ? 'wss' : 'ws'; - var ws = new WebSocket(protocol + '://' + hostname + ':' + "65067" + '/'); + var ws = new WebSocket(protocol + '://' + hostname + ':' + "55875" + '/'); ws.onmessage = function (event) { checkedAssets = {}; assetsToAccept = []; diff --git a/styles.8986bff4.js.map b/styles.8986bff4.js.map index 0c27847..0ef7480 100644 --- a/styles.8986bff4.js.map +++ b/styles.8986bff4.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../../node_modules/parcel-bundler/src/builtins/bundle-url.js","../../../node_modules/parcel-bundler/src/builtins/css-loader.js"],"names":["bundleURL","getBundleURLCached","getBundleURL","Error","err","matches","stack","match","getBaseURL","url","replace","exports","bundle","require","updateLink","link","newLink","cloneNode","onload","remove","href","split","Date","now","parentNode","insertBefore","nextSibling","cssTimeout","reloadCSS","setTimeout","links","document","querySelectorAll","i","length","module"],"mappings":"AAAA,ACAA,IDAIA,ACAAY,MAAM,GDAG,ACAAC,GDAG,IAAI,ACAA,CAAC,cAAc,CAAC;ADCpC,ACCA,SDDSZ,ACCAa,UAAU,CAACC,IAAI,EAAE,CDDC,GAAG;EAC5B,ACCA,IDDI,ACCAC,CDDChB,MCCM,GDDG,ACCAe,EDDE,ECCE,CAACE,SAAS,EAAE;EAC9BD,EDDEhB,KCCK,CAACkB,GDDG,GAAGhB,ACCA,GAAG,SDDS,EAAE,CCCC;EDA7B,ECCEa,IAAI,CAACI,MAAM,EAAE;EDCf,ACAA,CAAC,MDAMnB,SAAS;AAClB,ECAEgB,OAAO,CAACI,IAAI,GAAGL,IAAI,CAACK,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAGC,IAAI,CAACC,GAAG,EAAE;ADE3D,ECDER,IAAI,CAACS,EDCEtB,QCDQ,CAACuB,GDCG,GAAG,MCDM,CAACT,OAAO,EAAED,IAAI,CAACW,WAAW,CAAC;AACzD,EDCE;ACCF,EDAE,ECAEC,EDAE,QCAQ,GAAG,IAAI;AACrB,IDAI,KCAKC,CDAC,IAAIzB,ICAI,CDAC,ECAE;EDCnB,ACAA,CDAC,CAAC,ECAEwB,KDAKvB,GAAG,EAAE,ACAA,EAAE;IDCd,ACAA,IDAIC,OAAO,GAAG,CAAC,EAAE,GAAGD,GAAG,CAACE,KAAK,EAAEC,KAAK,CAAC,+DAA+D,CAAC;ECCvG,EDAE,IAAIF,OAAO,EAAE;ECEfsB,IDDI,MCCM,CDDCnB,ECCEqB,QDDQ,CAACxB,CCCC,CAAC,KDDK,CAAC,CAAC,CAAC,CAAC,GCCG;IDAlC,ACCA,IAAIyB,KAAK,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,wBAAwB,CAAC;EDAjE,ECCE,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;EDCzC,ICAI,GDAG,CCACrB,EDAE,ICAI,CAACJ,UAAU,CAACsB,KAAK,CAACG,CAAC,CAAC,CAACb,IAAI,CAAC,KAAKR,MAAM,CAACV,YAAY,EAAE,EAAE;ADCtE,QCAQY,UAAU,CAACgB,KAAK,CAACG,CAAC,CAAC,CAAC;ADE5B,MCDM,GDCGzB,UAAU,CAACC,GAAG,EAAE;EACvB,ECDE,KDCK,CAAC,EAAE,GAAGA,GAAG,EAAEC,OAAO,CAAC,gFAAgF,EAAE,IAAI,CAAC,GAAG,GAAG;AACzH,ICAIiB,UAAU,GAAG,IAAI;ADErBhB,ECDE,CAAC,EAAE,EDCE,ACDA,CDCCT,ACDA,YDCY,GAAGD,kBAAkB;AACzCU,ACDA,ODCO,CAACH,UAAU,GAAGA,UAAU;ACC/B2B,MAAM,CAACxB,OAAO,GAAGiB,SAAS","file":"styles.8986bff4.js","sourceRoot":"..\\src\\app\\pages","sourcesContent":["var bundleURL = null;\nfunction getBundleURLCached() {\n if (!bundleURL) {\n bundleURL = getBundleURL();\n }\n\n return bundleURL;\n}\n\nfunction getBundleURL() {\n // Attempt to find the URL of the current script and use that as the base URL\n try {\n throw new Error;\n } catch (err) {\n var matches = ('' + err.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\\/\\/[^)\\n]+/g);\n if (matches) {\n return getBaseURL(matches[0]);\n }\n }\n\n return '/';\n}\n\nfunction getBaseURL(url) {\n return ('' + url).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\\/\\/.+)?\\/[^/]+(?:\\?.*)?$/, '$1') + '/';\n}\n\nexports.getBundleURL = getBundleURLCached;\nexports.getBaseURL = getBaseURL;\n","var bundle = require('./bundle-url');\n\nfunction updateLink(link) {\n var newLink = link.cloneNode();\n newLink.onload = function () {\n link.remove();\n };\n newLink.href = link.href.split('?')[0] + '?' + Date.now();\n link.parentNode.insertBefore(newLink, link.nextSibling);\n}\n\nvar cssTimeout = null;\nfunction reloadCSS() {\n if (cssTimeout) {\n return;\n }\n\n cssTimeout = setTimeout(function () {\n var links = document.querySelectorAll('link[rel=\"stylesheet\"]');\n for (var i = 0; i < links.length; i++) {\n if (bundle.getBaseURL(links[i].href) === bundle.getBundleURL()) {\n updateLink(links[i]);\n }\n }\n\n cssTimeout = null;\n }, 50);\n}\n\nmodule.exports = reloadCSS;\n"]} \ No newline at end of file +{"version":3,"sources":["../../../node_modules/parcel-bundler/src/builtins/bundle-url.js","../../../node_modules/parcel-bundler/src/builtins/css-loader.js","../../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js"],"names":["bundleURL","getBundleURLCached","getBundleURL","Error","err","matches","stack","match","getBaseURL","url","replace","exports","bundle","require","updateLink","link","newLink","cloneNode","onload","remove","href","split","Date","now","parentNode","insertBefore","nextSibling","cssTimeout","reloadCSS","setTimeout","links","document","querySelectorAll","i","length","module","OVERLAY_ID","OldModule","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","handled","assets","forEach","asset","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","every","generated","js","console","clear","hmrApply","v","hmrAcceptRun","reload","close","onclose","log","removeErrorOverlay","error","message","overlay","createErrorOverlay","body","appendChild","getElementById","createElement","stackTrace","innerText","innerHTML","getParents","modules","parents","k","d","dep","Array","isArray","concat","Function","deps","cached","cache","some","cb"],"mappings":"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","file":"styles.8986bff4.js","sourceRoot":"..\\src\\app\\pages","sourcesContent":["var bundleURL = null;\nfunction getBundleURLCached() {\n if (!bundleURL) {\n bundleURL = getBundleURL();\n }\n\n return bundleURL;\n}\n\nfunction getBundleURL() {\n // Attempt to find the URL of the current script and use that as the base URL\n try {\n throw new Error;\n } catch (err) {\n var matches = ('' + err.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\\/\\/[^)\\n]+/g);\n if (matches) {\n return getBaseURL(matches[0]);\n }\n }\n\n return '/';\n}\n\nfunction getBaseURL(url) {\n return ('' + url).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\\/\\/.+)?\\/[^/]+(?:\\?.*)?$/, '$1') + '/';\n}\n\nexports.getBundleURL = getBundleURLCached;\nexports.getBaseURL = getBaseURL;\n","var bundle = require('./bundle-url');\n\nfunction updateLink(link) {\n var newLink = link.cloneNode();\n newLink.onload = function () {\n link.remove();\n };\n newLink.href = link.href.split('?')[0] + '?' + Date.now();\n link.parentNode.insertBefore(newLink, link.nextSibling);\n}\n\nvar cssTimeout = null;\nfunction reloadCSS() {\n if (cssTimeout) {\n return;\n }\n\n cssTimeout = setTimeout(function () {\n var links = document.querySelectorAll('link[rel=\"stylesheet\"]');\n for (var i = 0; i < links.length; i++) {\n if (bundle.getBaseURL(links[i].href) === bundle.getBundleURL()) {\n updateLink(links[i]);\n }\n }\n\n cssTimeout = null;\n }, 50);\n}\n\nmodule.exports = reloadCSS;\n","var OVERLAY_ID = '__parcel__error__overlay__';\n\nvar OldModule = module.bundle.Module;\n\nfunction Module(moduleName) {\n OldModule.call(this, moduleName);\n this.hot = {\n data: module.bundle.hotData,\n _acceptCallbacks: [],\n _disposeCallbacks: [],\n accept: function (fn) {\n this._acceptCallbacks.push(fn || function () {});\n },\n dispose: function (fn) {\n this._disposeCallbacks.push(fn);\n }\n };\n\n module.bundle.hotData = null;\n}\n\nmodule.bundle.Module = Module;\nvar checkedAssets, assetsToAccept;\n\nvar parent = module.bundle.parent;\nif ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {\n var hostname = process.env.HMR_HOSTNAME || location.hostname;\n var protocol = location.protocol === 'https:' ? 'wss' : 'ws';\n var ws = new WebSocket(protocol + '://' + hostname + ':' + process.env.HMR_PORT + '/');\n ws.onmessage = function(event) {\n checkedAssets = {};\n assetsToAccept = [];\n\n var data = JSON.parse(event.data);\n\n if (data.type === 'update') {\n var handled = false;\n data.assets.forEach(function(asset) {\n if (!asset.isNew) {\n var didAccept = hmrAcceptCheck(global.parcelRequire, asset.id);\n if (didAccept) {\n handled = true;\n }\n }\n });\n\n // Enable HMR for CSS by default.\n handled = handled || data.assets.every(function(asset) {\n return asset.type === 'css' && asset.generated.js;\n });\n\n if (handled) {\n console.clear();\n\n data.assets.forEach(function (asset) {\n hmrApply(global.parcelRequire, asset);\n });\n\n assetsToAccept.forEach(function (v) {\n hmrAcceptRun(v[0], v[1]);\n });\n } else if (location.reload) { // `location` global exists in a web worker context but lacks `.reload()` function.\n location.reload();\n }\n }\n\n if (data.type === 'reload') {\n ws.close();\n ws.onclose = function () {\n location.reload();\n }\n }\n\n if (data.type === 'error-resolved') {\n console.log('[parcel] ✨ Error resolved');\n\n removeErrorOverlay();\n }\n\n if (data.type === 'error') {\n console.error('[parcel] 🚨 ' + data.error.message + '\\n' + data.error.stack);\n\n removeErrorOverlay();\n\n var overlay = createErrorOverlay(data);\n document.body.appendChild(overlay);\n }\n };\n}\n\nfunction removeErrorOverlay() {\n var overlay = document.getElementById(OVERLAY_ID);\n if (overlay) {\n overlay.remove();\n }\n}\n\nfunction createErrorOverlay(data) {\n var overlay = document.createElement('div');\n overlay.id = OVERLAY_ID;\n\n // html encode message and stack trace\n var message = document.createElement('div');\n var stackTrace = document.createElement('pre');\n message.innerText = data.error.message;\n stackTrace.innerText = data.error.stack;\n\n overlay.innerHTML = (\n '
' +\n 'ERROR' +\n '🚨' +\n '
' + message.innerHTML + '
' +\n '
' + stackTrace.innerHTML + '
' +\n '
'\n );\n\n return overlay;\n\n}\n\nfunction getParents(bundle, id) {\n var modules = bundle.modules;\n if (!modules) {\n return [];\n }\n\n var parents = [];\n var k, d, dep;\n\n for (k in modules) {\n for (d in modules[k][1]) {\n dep = modules[k][1][d];\n if (dep === id || (Array.isArray(dep) && dep[dep.length - 1] === id)) {\n parents.push(k);\n }\n }\n }\n\n if (bundle.parent) {\n parents = parents.concat(getParents(bundle.parent, id));\n }\n\n return parents;\n}\n\nfunction hmrApply(bundle, asset) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n\n if (modules[asset.id] || !bundle.parent) {\n var fn = new Function('require', 'module', 'exports', asset.generated.js);\n asset.isNew = !modules[asset.id];\n modules[asset.id] = [fn, asset.deps];\n } else if (bundle.parent) {\n hmrApply(bundle.parent, asset);\n }\n}\n\nfunction hmrAcceptCheck(bundle, id) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n\n if (!modules[id] && bundle.parent) {\n return hmrAcceptCheck(bundle.parent, id);\n }\n\n if (checkedAssets[id]) {\n return;\n }\n checkedAssets[id] = true;\n\n var cached = bundle.cache[id];\n\n assetsToAccept.push([bundle, id]);\n\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n return true;\n }\n\n return getParents(global.parcelRequire, id).some(function (id) {\n return hmrAcceptCheck(global.parcelRequire, id)\n });\n}\n\nfunction hmrAcceptRun(bundle, id) {\n var cached = bundle.cache[id];\n bundle.hotData = {};\n if (cached) {\n cached.hot.data = bundle.hotData;\n }\n\n if (cached && cached.hot && cached.hot._disposeCallbacks.length) {\n cached.hot._disposeCallbacks.forEach(function (cb) {\n cb(bundle.hotData);\n });\n }\n\n delete bundle.cache[id];\n bundle(id);\n\n cached = bundle.cache[id];\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n cached.hot._acceptCallbacks.forEach(function (cb) {\n cb();\n });\n return true;\n }\n}\n"]} \ No newline at end of file diff --git a/waist.json b/waist.json index f587228..73f5331 100644 --- a/waist.json +++ b/waist.json @@ -5534,26 +5534,5 @@ }, "slots": 2, "type": 2 - }, - { - "category": 3, - "defense": { - "base": 55, - "max": 80 - }, - "name": "Master Belt", - "rarity": 7, - "resistance": [ - 0, - 2, - 0, - 2, - 5 - ], - "skills": { - "20": 5 - }, - "slots": 3, - "type": 0 } ] \ No newline at end of file