{"version":3,"file":"js/982-c183300f993e50b54408.js","mappings":"iFAAA,IAAIA,EAAM,CACT,kBAAmB,KACnB,qBAAsB,KACtB,sBAAuB,KACvB,yBAA0B,KAC1B,oBAAqB,KACrB,uBAAwB,KACxB,cAAe,KACf,iBAAkB,KAClB,gBAAiB,KACjB,mBAAoB,KACpB,kBAAmB,KACnB,qBAAsB,KACtB,gBAAiB,KACjB,mBAAoB,KACpB,qBAAsB,KACtB,wBAAyB,KACzB,mBAAoB,EACpB,sBAAuB,EACvB,2BAA4B,KAC5B,8BAA+B,KAC/B,wBAAyB,KACzB,2BAA4B,KAC5B,uBAAwB,KACxB,0BAA2B,KAC3B,kBAAmB,KACnB,qBAAsB,KACtB,yBAA0B,KAC1B,4BAA6B,KAC7B,kBAAmB,KACnB,qBAAsB,KACtB,0BAA2B,KAC3B,6BAA8B,KAC9B,gCAAiC,KACjC,mCAAoC,KACpC,yBAA0B,KAC1B,4BAA6B,KAC7B,yBAA0B,KAC1B,4BAA6B,KAC7B,yBAA0B,KAC1B,4BAA6B,KAC7B,0BAA2B,KAC3B,6BAA8B,KAC9B,iCAAkC,KAClC,oCAAqC,KACrC,sBAAuB,KACvB,yBAA0B,KAC1B,oBAAqB,IACrB,uBAAwB,IACxB,wBAAyB,KACzB,2BAA4B,KAC5B,gCAAiC,KACjC,mCAAoC,KACpC,wBAAyB,KACzB,2BAA4B,KAC5B,gCAAiC,KACjC,mCAAoC,KACpC,0BAA2B,KAC3B,6BAA8B,KAC9B,wBAAyB,KACzB,2BAA4B,KAC5B,uBAAwB,KACxB,0BAA2B,KAC3B,4BAA6B,KAC7B,+BAAgC,KAChC,yBAA0B,KAC1B,4BAA6B,KAC7B,uCAAwC,KACxC,mCAAoC,KACpC,2CAA4C,KAC5C,uCAAwC,KACxC,0CAA2C,KAC3C,sCAAuC,KACvC,gBAAiB,KACjB,mBAAoB,KACpB,qBAAsB,KACtB,wBAAyB,KACzB,gBAAiB,KACjB,mBAAoB,KACpB,UAAW,KACX,aAAc,MAIf,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOG,EAAoBF,GAE5B,SAASC,EAAsBF,GAC9B,IAAIG,EAAoBC,EAAEN,EAAKE,GAAM,CACpC,IAAIK,EAAI,IAAIC,MAAM,uBAAyBN,EAAM,KAEjD,MADAK,EAAEE,KAAO,mBACHF,EAEP,OAAOP,EAAIE,GAEZD,EAAeS,KAAO,WACrB,OAAOC,OAAOD,KAAKV,IAEpBC,EAAeW,QAAUR,EACzBS,EAAOC,QAAUb,EACjBA,EAAeE,GAAK,K,6mEC9Fb,IAAMY,EAAgB,SAACC,GAAW,IAAD,IAChCC,EAAmBD,EAAMC,iBACzBC,EAASF,EAAME,OACfC,EAASH,EAAMG,QAAU,GACzBC,EAAcJ,EAAMI,aAAe,GACnCC,EAAgBL,EAAMK,eAAkB,aACxCC,EAAgBN,EAAMM,eAAkB,aAC9C,KAAwBC,EAAAA,EAAAA,WAAS,GAAjC,GAAOC,EAAP,KAAaC,EAAb,KACA,KAAgCF,EAAAA,EAAAA,WAAS,GAAzC,GAAOG,EAAP,KAAiBC,EAAjB,KACA,KAA8BJ,EAAAA,EAAAA,UAAS,MAAvC,GAAOK,EAAP,KAAgBC,EAAhB,KACA,KAAkCN,EAAAA,EAAAA,UAAS,MAA3C,GAAOO,EAAP,KAAkBC,EAAlB,KAEMC,EAAY,SAACC,GACjBC,EAAcD,GACdN,EAAYM,GACZR,GAAQ,IAGJU,EAAS,CACbC,KAAMC,EACNC,OAAQC,EACRC,QAASD,EACTE,MAAOC,GAGHR,EAAa,6BAAG,WAAOD,GAAP,sFAChBU,EAAS,MACTC,EAFgB,SAEHC,SAFG,SAEH,EAAQC,cAFL,EAEH,EAAkBb,KACF,UAAdA,GAA8B,OAAN,EAAAY,SAAA,WAAQC,UAAR,UAHvB,MAKhBF,IAAAA,EAAYG,KALI,wBAMlBlB,GAAW,GANO,UAOFmB,EAAAA,EAAAA,MAPE,cAOZC,EAPY,0BASVL,EAAWM,SAASC,KAApB,6BAAyB,WAAOC,GAAP,gFAC7BT,EAAS,IAAIU,EAAAA,GAAcJ,EAAGG,EAAenC,GADhB,SAEP0B,EAAOW,aAFA,cAEvBC,EAFuB,gBAGPZ,EAAOa,aAHA,OAGvBC,EAHuB,OAI7Bd,EAAOc,QAAUA,EACjBd,EAAOY,QAAUA,EACjBG,eAAeC,QAAQ,YAAa1B,GACpCF,EAAaY,GACbtB,EAAcsB,GACdd,GAAW,GATkB,4CAAzB,uDATU,0DAqBhBA,GAAW,GArBK,0DAAH,sDAsCnB,OAZA+B,EAAAA,EAAAA,YAAU,WACR,IAAMC,EAAiBH,eAAeI,QAAQ,aAC1CD,IACF3B,EAAc2B,GACdlC,EAAYkC,MAEb,KAEHD,EAAAA,EAAAA,YAAU,WACRtC,EAAcM,KACb,CAACA,IAGF,gCACGJ,GACC,gBAAC,KAAD,CACEuC,GAAI,CACFC,SAAU,WACVC,IAAK,EACLC,MAAO,EACPC,MAAO,SACPC,OAAQ,QACRC,OAAQ,OAEVC,QAAS,kBAAM7C,GAAQ,MAI3B,gBAAC,KAAD,CACEsC,GAAI,CACFC,SAAU,WACVO,QAASrD,EAAS,OAAS,eAC3BmD,OAAQ,QAGV,gBAAC,KAAD,CACEG,UAAU,SACVT,GAAE,OAAOU,GAAiBtD,GAC1BmD,QAAS,kBAAO1C,GAAWH,GAASD,KAEnCI,GAAW,gBAAC,KAAD,CAAS8C,KAAM,GAAIX,GAAI,CAAEY,MAAO,YAC1C/C,GAAWE,GACX,gBAAC,KAAD,CACEiC,GAAI,CACFa,oBAAqB,oBACrBC,WAAY,WAGd,6BACA,gBAAC,KAAD,CACEC,IAAK3C,EAAOT,GACZqC,GAAI,CACFI,MAAmB,SAAZzC,EAAsB,OAAS,UAG1C,uCACgB,MAATI,GAAA,SAAAA,EAAW2B,cAAX,IAAoBsB,UAAW,UADtC,EACM,EAA0CC,QAAQ,IADxD,WAGA,+BAGFpD,IAAYE,GAAa,kBAE5BN,GACC,gBAAC,KAAD,CACEuC,GAAE,GACAC,SAAU,WACVC,IAAK,OACLgB,GAAI,QACJd,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdb,OAAQ,IACRc,EAAG,OACA/D,IAGL,gBAAC,KAAD,CAAM2C,GAAIqB,EAAcd,QAAS,kBAAMtC,EAAU,UAC/C,gBAAC,KAAD,CACE8C,IAAKzC,EACL0B,GAAI,CACFI,MAAO,UAJb,QASA,gBAAC,KAAD,CAAMJ,GAAIqB,EAAcd,QAAS,kBAAMtC,EAAU,YAC/C,gBAAC,KAAD,CACE8C,IAAKvC,EACLwB,GAAI,CACFI,MAAO,UAJb,UASA,gBAAC,KAAD,CAAMJ,GAAIqB,EAAcd,QAAS,kBAAMtC,EAAU,WAC/C,gBAAC,KAAD,CACE8C,IAAKpC,EACLqB,GAAI,CACFI,MAAO,UAJb,aAgBNiB,EAAe,CACnBD,EAAG,MACHP,oBAAqB,WACrBC,WAAY,SACZK,aAAc,MACdG,OAAQ,UACRV,MAAO,QACP,UAAW,CAAEM,GAAI,cAGbR,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVuB,UAAW,OACXZ,MAAO,QACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,UACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,eACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAIjB,a,2lECtMA,IAAMC,EAAmB,CACvB,OACA,SACA,QACA,OACA,cACA,SAGWlF,EAAgB,SAACC,GAAW,IAAD,UAChCC,EAAmBiF,EAAAA,mBACnBhF,EAASF,EAAME,OACfiF,EAAUnF,EAAMmF,QAChBhF,EAASH,EAAMG,QAAU,GACzBC,EAAcJ,EAAMI,aAAe,GACnCC,EAAgBL,EAAMK,eAAkB,aACxCC,EAAgBN,EAAMM,eAAkB,aAC9C,KAAwBC,EAAAA,EAAAA,WAAS,GAAjC,GAAOC,EAAP,KAAaC,EAAb,KACA,KAAgCF,EAAAA,EAAAA,WAAS,GAAzC,GAAiBI,GAAjB,WACA,KAA8BJ,EAAAA,EAAAA,UAAS,MAAvC,GAAOK,EAAP,KAAgBC,EAAhB,KACA,KAAkCN,EAAAA,EAAAA,UAAS,MAA3C,GAAOO,EAAP,KAAkBC,EAAlB,KAUMqE,GACK,MAATtE,GAAA,SAAAA,EAAW2B,UAAX,WAAoB4C,SAApB,WAA4BC,MAAK,SAACC,GAAD,MARhB,4DAQyBA,EAAIC,gBAA9C,IACIC,WAAY,EAUdC,EAAQ,GACZT,EAAiBU,SAAQ,SAACC,GAAqB,IAAD,IACJ,MAAxC,SAAI/D,SAAJ,SAAI,EAAQC,UAAR,EAAkB8D,IACpBF,EAAMG,KAAN,SAAWhE,SAAX,SAAW,EAAQC,UAAnB,SAAW,EAAkB8D,SAA7B,EAAW,EAAoCE,SAInD,IAAM5E,EAAa,6BAAG,WAAOD,GAAP,sFAChBU,EAAS,MACTC,EAFgB,SAEHC,SAFG,SAEH,EAAQC,cAFL,EAEH,EAAkBb,KACF,UAAdA,GAA8B,OAAN,EAAAY,SAAA,WAAQC,UAAR,UAHvB,MAKhBF,IAAAA,EAAYG,KALI,wBAMlBlB,GAAW,GANO,UAOFmB,EAAAA,EAAAA,MAPE,cAOZC,EAPY,0BASVL,EAAWM,SAASC,KAApB,6BAAyB,WAAOC,GAAP,gFAC7BT,EAAS,IAAIU,EAAAA,GAAcJ,EAAGG,EAAenC,GAEvCsC,EAAUZ,EAAOW,aAHM,SAKPX,EAAOa,aALA,OAKvBC,EALuB,OAQ7Bd,EAAOc,QAAUA,EACjBd,EAAOY,QAAUA,EACjBZ,EAAOmE,KAAOlE,EAAWkE,KACzBpD,eAAeC,QAAQ,aAAc1B,GACrCF,EAAaY,GACbtB,EAAcsB,GACdd,GAAW,GAdkB,4CAAzB,uDATU,0DA0BhBA,GAAW,GA1BK,0DAAH,sDA2CnB,OAZA+B,EAAAA,EAAAA,YAAU,WACR,IAAMC,EAAiBH,eAAeI,QAAQ,cAC1CD,IACF3B,EAAc2B,GACdlC,EAAYkC,MAEb,KAEHD,EAAAA,EAAAA,YAAU,WACRtC,EAAcM,KACb,CAACA,IAGF,gCACGJ,GACC,gBAAC,KAAD,CACEuC,GAAI,CACFC,SAAU,WACVC,IAAK,EACLC,MAAO,EACPC,MAAO,SACPC,OAAQ,QACRC,OAAQ,OAEVC,QAAS,kBAAM7C,GAAQ,MAI3B,gBAAC,KAAD,CACEsC,GAAI,CACFC,SAAU,WACVO,QAASrD,EAAS,OAAS,eAC3BmD,OAAQ,QAGV,gBAAC,KAAD,CACEG,UAAU,QACVT,GAAE,OAAOU,GAAiBtD,GAC1BmD,QAAS,kBAAO1C,GAAWH,GAASD,KAEnCI,GAAW,gBAAC,KAAD,CAAS8C,KAAM,GAAIX,GAAI,CAAEY,MAAO,cAC1C/C,GAAWE,GACX,gBAAC,KAAD,CACEiC,GAAI,CACFa,oBAAqB,yBACrBC,WAAY,WAGd,6BACA,gBAAC,KAAD,CACEC,IAAKhD,EAAUgF,KACf/C,GAAI,CACFI,MAAO,UAGX,4BACGgC,GAAO,UACS,MAATrE,GAAA,SAAAA,EAAW2B,cAAX,IAAoBsB,UAAW,UAD/B,EACD,EAA0CC,QAAQ,IADjD,UAEDoB,EAAAA,SAET,+BAGFxE,IAAYE,GAAa,kBAE5BN,GACC,gBAAC,KAAD,CACEuC,GAAE,GACAC,SAAU,WACVC,IAAK,OACLgB,GAAI,QACJd,MAAO,CAAC,OAAQ,KAChBsB,OAAQ,oBACRpB,OAAQ,IACRc,EAAG,OACA/D,IAGJ6E,EAAiBjG,KAAI,SAAC4G,GAAqB,IAAD,4BACnCE,EAAI,SAAGjE,SAAH,SAAG,EAAQC,UAAX,SAAG,EAAkB8D,SAArB,EAAG,EAAoCE,KAEjD,IACQ,OAAN,EAAAjE,SAAA,WAAQC,UAAR,WAAkB8D,MAAlB,EAAoCG,eAEf,KADf,OAAN,EAAAlE,SAAA,WAAQC,UAAR,WAAkB8D,KAAlB,WAAoCG,mBAApC,IACIC,iBAKN,SACEnE,SADF,SACE,EAAQC,UADV,SACE,EAAkB8D,KADpB,SACE,EAAoC7D,QAApC,EAA0CkE,SAAS,cAKrD,OAAKH,EAGH,gBAAC,KAAD,CACE/C,GAAIqB,EACJd,QAAS,kBA/IvBpC,EADiBD,EAgJsB2E,GA9IvCjF,EAAYM,QACZR,GAAQ,GAHQ,IAACQ,IAkJH,gBAAC,KAAD,CACE6C,IAAKgC,EACL/C,GAAI,CACFI,MAAO,OACP+C,GAAI,OACJnB,cAAe,gBATrB,MAYGa,OAZH,EAYGA,EAAiBO,QAAQ,QAAS,KAfrB,QAmBH,GAAhBT,EAAMU,QACL,gBAAC,KAAD,CACErD,GAAE,OACGqB,GADH,IAEAE,UAAW,SACXI,GAAI,EACJd,oBAAqB,SALzB,2BAkBRQ,IAAY,GAChBD,EAAG,MACHP,oBAAqB,WACrBC,WAAY,OACZS,UAAW,OACXJ,aAAc,MACdmC,WAAY,kDAEZhC,OAAQ,YARQ,WASJ,SATI,EAUhBV,MAAO,UAVS,EAWhBoB,cAAe,YAXC,EAYhB,WAAW,CAAEd,GAAI,WAZD,GAeZR,EAAe,CACnBa,UAAW,SACX+B,WAAY,kDAEZrD,SAAU,WACVuB,UAAW,OACXZ,MAAO,UACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,QACJS,GAAI,OACJ4B,GAAI,GACJnD,MAAO,CAAC,OAAQ,KAChBoD,SAAU,QACVlC,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,OACTM,WAAY,SACZ2C,eAAgB,SAChB3B,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,YAIR,a,ilEClQA,IAAMgB,EAAmB,CACvB,OACA,SACA,QACA,OACA,cACA,SAGWlF,EAAgB,SAACC,GAAW,IAAD,MAChCC,EAAmBD,EAAMC,iBACzBC,EAASF,EAAME,OACfuG,EAAgBzG,EAAMyG,eAAiB,EACvCtG,EAASH,EAAMG,QAAU,GACzBC,EAAcJ,EAAMI,aAAe,GACnCC,EAAgBL,EAAMK,eAAkB,aACxCC,EAAgBN,EAAMM,eAAkB,aAC9C,KAAwBC,EAAAA,EAAAA,WAAS,GAAjC,GAAOC,EAAP,KAAaC,EAAb,KACA,KAAgCF,EAAAA,EAAAA,WAAS,GAAzC,GAAiBI,GAAjB,WACA,KAA8BJ,EAAAA,EAAAA,UAAS,MAAvC,GAAOK,EAAP,KAAgBC,EAAhB,KACA,KAAkCN,EAAAA,EAAAA,UAAS,MAA3C,GAAOO,EAAP,KAAkBC,EAAlB,KAUM2F,GACK,MAAT5F,GAAA,SAAAA,EAAW2B,UAAX,WAAoB4C,SAApB,WAA4BC,MAAK,SAACC,GAAD,MARf,4DAQwBA,EAAIC,gBAA9C,IACIC,WAAY,EAEZkB,EAAcC,SAASF,EAAQ,KAQjChB,EAAQ,GACZT,EAAiBU,SAAQ,SAACC,GAAqB,IAAD,IACJ,MAAxC,SAAI/D,SAAJ,SAAI,EAAQC,UAAR,EAAkB8D,IACpBF,EAAMG,KAAN,SAAWhE,SAAX,SAAW,EAAQC,UAAnB,SAAW,EAAkB8D,SAA7B,EAAW,EAAoCE,SAInD,IAAM5E,EAAa,6BAAG,WAAOD,GAAP,sFAChBU,EAAS,KACbkF,QAAQC,IAAI,aAAc7F,IACtBW,EAHgB,SAGHC,SAHG,SAGH,EAAQC,cAHL,EAGH,EAAkBb,KACF,UAAdA,GAA8B,OAAN,EAAAY,SAAA,WAAQC,UAAR,UAJvB,MAMhBF,IAAAA,EAAYG,KANI,wBAOlBlB,GAAW,GAPO,UAQFmB,EAAAA,EAAAA,MARE,cAQZC,EARY,0BAUVL,EAAWM,SAASC,KAApB,6BAAyB,WAAOC,GAAP,gFAC7BT,EAAS,IAAIU,EAAAA,GAAcJ,EAAGG,EAAenC,GADhB,SAGP0B,EAAOW,aAHA,cAGvBC,EAHuB,gBAKPZ,EAAOa,aALA,OAKvBC,EALuB,OAQ7Bd,EAAOc,QAAUA,EACjBd,EAAOY,QAAUA,EACjBZ,EAAOmE,KAAOlE,EAAWkE,KACzBpD,eAAeC,QAAQ,aAAc1B,GACrCF,EAAaY,GACbtB,EAAcsB,GACdd,GAAW,GAdkB,4CAAzB,uDAVU,0DA4BhBgG,QAAQC,IAAI,QAAZ,MACA/F,EAAa,MACbV,EAAc,MACdQ,GAAW,GA/BK,0DAAH,sDAgDnB,OAZA+B,EAAAA,EAAAA,YAAU,WACR,IAAMC,EAAiBH,eAAeI,QAAQ,cAC1CD,IACF3B,EAAc2B,GACdlC,EAAYkC,MAEb,CAAC4D,KAEJ7D,EAAAA,EAAAA,YAAU,WACRtC,EAAcM,KACb,CAACA,IAGF,gCACGJ,GACC,gBAAC,KAAD,CACEuC,GAAI,CACFC,SAAU,WACVC,IAAK,EACLC,MAAO,EACPC,MAAO,SACPC,OAAQ,QACRC,OAAQ,IAEVC,QAAS,kBAAM7C,GAAQ,MAI3B,gBAAC,KAAD,CACEsC,GAAI,CACFC,SAAU,WACVO,QAASrD,EAAS,OAAS,eAC3BmD,OAAQ,MAGV,gBAAC,KAAD,CACEG,UAAU,cACVT,GAAE,OAAOU,GAAiBtD,GAC1BmD,QAAS,kBAAO1C,GAAWH,GAASD,KAEnCI,GAAW,gBAAC,KAAD,CAAS8C,KAAM,GAAIX,GAAI,CAAEY,MAAO,YAC1C/C,GAAWE,GACX,gBAAC,KAAD,CACEiC,GAAI,CACFa,oBAAqB,yBACrBC,WAAY,WAGd,8BACU,MAAT/C,OAAA,EAAAA,EAAWgF,OACV,gBAAC,KAAD,CACEhC,IAAG,MAAEhD,OAAF,EAAEA,EAAWgF,KAChB/C,GAAI,CACFI,MAAO,UAKb,4BAAUwD,EAAAA,UACV,+BAGF/F,IAAYE,GAAa,kBAE5BN,GACC,gBAAC,KAAD,CACEuC,GAAE,GACAC,SAAU,WACVC,IAAK,OACLgB,GAAI,QACJd,MAAO,CAAC,OAAQ,KAChBsB,OAAQ,kBACRpB,OAAQ,IACRc,EAAG,OACA/D,GAELoD,UAAU,eAETyB,EAAiBjG,KAAI,SAAC4G,GAAqB,IAAD,4BACnCE,EAAI,SAAGjE,SAAH,SAAG,EAAQC,UAAX,SAAG,EAAkB8D,SAArB,EAAG,EAAoCE,KAEjD,IACQ,OAAN,EAAAjE,SAAA,WAAQC,UAAR,WAAkB8D,MAAlB,EAAoCG,eAC+B,KAA7D,OAAN,EAAAlE,SAAA,WAAQC,UAAR,WAAkB8D,KAAlB,WAAoCG,mBAApC,IAAkDC,iBAKnD,SAAInE,SAAJ,SAAI,EAAQC,UAAZ,SAAI,EAAkB8D,KAAtB,SAAI,EAAoC7D,QAApC,EAA0CkE,SAAS,cAIxD,OAAKH,EAGH,gBAAC,KAAD,CACE/C,GAAIqB,EACJd,QAAS,kBAjJvBpC,EADiBD,EAkJsB2E,GAhJvCjF,EAAYM,QACZR,GAAQ,GAHQ,IAACQ,IAoJH,gBAAC,KAAD,CACE6C,IAAKgC,EACL/C,GAAI,CACFI,MAAO,OACP+C,GAAI,OACJnB,cAAe,gBATrB,MAYGa,OAZH,EAYGA,EAAiBO,QAAQ,QAAS,KAfrB,QAmBH,GAAhBT,EAAMU,QACL,gBAAC,KAAD,CACErD,GAAE,OACGqB,GADH,IAEAE,UAAW,SACXI,GAAI,EACJd,oBAAqB,SALzB,2BAkBRQ,IAAY,GAChBD,EAAG,MACHP,oBAAqB,WACrBC,WAAY,OACZS,UAAW,OACXJ,aAAc,MACdG,OAAQ,YANQ,WAOJ,SAPI,EAQhBV,MAAO,QARS,EAShBoB,cAAe,YATC,EAUhB,WAAW,CAAEd,GAAI,WAVD,GAaZR,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVuB,UAAW,OACXZ,MAAO,QACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,kBACRR,GAAI,QACJS,GAAI,OACJ4B,GAAI,GACJnD,MAAO,CAAC,OAAQ,KAChBoD,SAAU,QACVlC,OAAQ,UACRM,SAAU,CAAC,OAAQ,QACnBC,WAAY,OACZrB,QAAS,OACTM,WAAY,SACZ2C,eAAgB,SAChB3B,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,YAIR,a,0FCnQO,IAAMiB,EAAqB,2C,6jCCG3B,IAAM6B,EAAc,SAAC/G,GAC1B,SAAgCO,EAAAA,EAAAA,WAAS,GAAzC,GAAOyG,EAAP,KAAiBC,EAAjB,KAEA,OACE,gBAAC,KAAD,CAAKlE,GAAI,CAAEmE,GAAI,KACb,gBAAC,KAAD,CACE1D,UAAU,SACVT,GAAI,CACFY,MAAO3D,EAAMmH,MAAQ,QAAU,QAC/B3C,WAAY,WACZG,SAAU,CAAC,QACXyC,WAAY,CAAC,QACb/C,OAAQ,WAEVf,QAAS,kBAAM2D,GAAaD,KAE3BA,EAAW,oBAAsB,oBAEnCA,GACC,gBAAC,KAAD,CACExD,UAAU,SACVT,GAAI,CACFY,MAAO3D,EAAMmH,MAAQ,QAAU,QAC/B3C,WAAY,WACZG,SAAU,CAAC,QACXyC,WAAY,CAAC,UANjB,syDAgBR,a,svDCnCO,IAAMC,EAAgB,SAACrH,GAC5B,IAAMsH,EAAatH,EAAMsH,WACzB,KAAwB/G,EAAAA,EAAAA,WAAS,GAAjC,GAAOC,EAAP,KAAaC,EAAb,KACA,KAA8BF,EAAAA,EAAAA,WAAS,GAAvC,GAAOgH,EAAP,KAAgBC,EAAhB,KACA,KAA0BjH,EAAAA,EAAAA,UAAS,IAAnC,GAAOkH,EAAP,KAAcC,EAAd,KAuBA,OArBA9E,EAAAA,EAAAA,YAAU,WAER,GAAqB,IAAjB6E,EAAMrB,OAAc,CACtB,IAAMuB,EAASf,SAASa,GACxB,GAAIE,EAAS,GAAKA,GAAU,IAAK,CAC/B,IAAMC,EAAWN,EAAWhC,MAC1B,SAACuC,GAAD,OAAUA,IAAI,cAAmBJ,KAGjCD,EADEI,EACS,kCAEA,oCAGbJ,EAAW,yCAGbA,EAAW,MAEZ,CAACC,IAGF,gCACGjH,GACC,gBAAC,KAAD,CACEuC,GAAI,CACFC,SAAU,WACVC,IAAK,EACLC,MAAO,EACPC,MAAO,SACPC,OAAQ,QACRC,OAAQ,KAEVC,QAAS,kBAAM7C,GAAQ,MAI3B,gBAAC,KAAD,CACEsC,GAAI,CACFC,SAAU,WACVO,QAAS,eACTF,OAAQ,KACRF,MAAO,SAGT,gBAAC,KAAD,CACEK,UAAU,SACVT,GAAE,KAAOU,GACTH,QAAS,kBAAM7C,GAASD,KAH1B,wBAOCA,GACC,gBAAC,KAAD,CACEuC,GAAI,CACFC,SAAU,WACVC,IAAK,OACLgB,GAAI,QACJd,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdb,OAAQ,IACRkB,UAAW,QACXJ,EAAG,SAGL,gBAAC,KAAD,CACEpB,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,QACb/C,OAAQ,WAEVf,QAAS,kBAAM2D,aAAaD,YAR9B,0EAcA,gBAAC,KAAD,CACEjE,GAAI,CACFY,MAAO,QACPc,OAAQ,kBACRqD,GAAI,QAENL,MAAOA,EACPM,SAAU,SAACxI,GAAD,OAAOmI,EAASnI,EAAEyI,OAAOP,UAGrC,gBAAC,KAAD,CACE1E,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,QACrB/C,OAAQ,WAEVf,QAAS,kBAAM2D,aAAaD,YAE3BO,OAST9D,EAAe,CACnBa,UAAW,OACXtB,SAAU,WACVI,OAAQ,OACRO,MAAO,QACPa,WAAY,SACZnB,OAAQ,OACRY,GAAI,cACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,eACTuB,eAAgB,QAGlB,a,ovDClIA,SAASmD,EAAaC,IACV,IAAIC,OACVrE,IAAMoE,EAGZ,IAAME,EAAQ,CACZ,CACEC,I,QACAC,QAAS,WA+BN,IAAMC,EAAc,SAACvI,GAAW,IAAD,IACpC,KAAqCO,EAAAA,EAAAA,UAAS,GAA9C,GAAOiI,EAAP,KAAkBC,EAAlB,KACA,KAA0ClI,EAAAA,EAAAA,UAAS6H,GAAnD,GAAOM,EAAP,KAAsBC,EAAtB,MAEA/F,EAAAA,EAAAA,YAAU,WACR,IAAMgG,EAzBV,SAAiBC,GAKf,IAJA,IACEC,EADEC,EAAeF,EAAMzC,OAIF,GAAhB2C,GAAmB,CAExBD,EAAcE,KAAKC,MAAMD,KAAKE,SAAWH,GACzCA,IAHwB,MAMqB,CAC3CF,EAAMC,GACND,EAAME,IAFNF,EAAME,GANgB,KAMDF,EAAMC,GANL,KAY1B,OAAOD,EAQYM,CAAQf,GACzBO,EAAiBC,GAECA,EAASQ,MAAM,EAAG,GAE1BzD,SAAQ,SAAC0D,GACjBpB,EAAaoB,EAAKhB,UAEnB,IAaH,OACE,gBAAC,KAAD,KACE,gBAAC,KAAD,CACE7E,UAAU,SACVT,GAAE,OAAOU,GAAP,IAAqB6F,GAAI,EAAGpC,GAAI,GAAIjE,IAAK,SAC3CK,QAhBc,WAClB,IAAIiG,EAAef,EAAY,EAC3Be,EAAenB,EAAMhC,OAAS,IAAGmD,EAAe,GACpDd,EAAgBc,GAEhB,IACsC,EADlCC,EAAehB,EAAY,EAC3BgB,GAAgBpB,EAAMhC,OAAS,GACjC6B,EAAY,MAACS,GAAD,SAACA,EAAgBc,SAAjB,EAAC,EAA+BnB,OAWzC,WAEH,gBAAC,KAAD,CACEvE,IAAG,SAAE4E,EAAcF,SAAhB,EAAE,EAA0BH,IAC/BtF,GAAI,CACFI,MAAO,CAAC,QACRH,SAAU,WACVK,OAAQ,EACRoG,SAAU,QACVC,GAAI,UAGR,gBAAC,KAAD,CACElG,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,GACJoC,GAAI,KAPR,SAUGZ,EAAcF,SAVjB,EAUG,EAA0BF,WAM7B7E,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVC,IAAK,GACLU,MAAO,mBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,kBACRR,GAAI,QACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAIjB,a,mhCC9BA,UAjGoB,SAAC,GAAsC,IAAD,IAAnClB,IAAAA,OAAmC,MAA7B,uBAA6B,EACxD,KAAkCvD,EAAAA,EAAAA,WAAS,GAA3C,GAAOoJ,EAAP,KAAkBC,EAAlB,KAEA,KAAgCrJ,EAAAA,EAAAA,WAAS,WACvC,IAAMkH,EAAQ5F,OAAOgI,aAAa/G,QAAQ,YACtCgH,GAAe,EAGnB,MAFa,QAATrC,IAAiBqC,GAAe,GACtB,OAAVrC,IAAgBqC,GAAe,GAC5BA,KALT,GAAOC,EAAP,KAAiBC,EAAjB,MAQApH,EAAAA,EAAAA,YAAU,WAqBR,GApBAqH,YAAW,WACTC,MACC,KAEHD,YAAW,WACTC,MACC,KAEHD,YAAW,WACTC,MACC,KAEHD,YAAW,WACTC,MACC,KAEHD,YAAW,WACTC,MACC,KAECH,EACF,IAAII,EAAcC,aAAY,WACbC,SAASC,eAAe,SAGpCC,OACApI,MAAK,WACJqI,cAAcL,MAHlB,OAKS,SAACM,GACN5D,QAAQC,IACN,6DAINoD,MACC,OAEJ,IAEH,IAAMA,EAAe,WACnB,IAAMQ,EAASL,SAASC,eAAe,SACvCV,IAAa,MAACc,GAAAA,EAAQC,UAGlBC,EAAc,WAClBX,YAAW,WACTC,MACC,KAEHD,YAAW,WACTC,MACC,KAEEP,GAKHK,GAAY,GACZK,SAASC,eAAe,SAASO,QACjChJ,OAAOgI,aAAalH,QAAQ,WAAY,QANxCqH,GAAY,GACZK,SAASC,eAAe,SAASC,OACjC1I,OAAOgI,aAAalH,QAAQ,YAAY,KAQ5C,OACE,gBAAC,KAAD,CAAKmI,IAAKf,EAAUhH,GAAI,CAAEsB,OAAQ,YAChC,yBAAOlF,GAAG,QAAQ2E,IAAKA,EAAKiG,SAAUA,EAAUgB,MAAI,IACnDpB,EACC,qBACErG,QAASsH,EACTpH,UAAU,cACVwH,MAAO,CAAErG,SAAU,UAGrB,qBACErB,QAASsH,EACTpH,UAAU,aACVwH,MAAO,CAAErG,SAAU,a,gqEC5E7B,IAKMxD,EAAS,CACb,eANgB,kBAOhB,cANe,iBAOf,eANgB,kBAOhB,aANa,gBAYF8J,EAAY,SAACjL,GAAW,IAAD,MAC5BC,EAAmBiF,EAAAA,mBACnBgG,EAASlL,EAAMmL,QACfC,EAASxE,SAAS5G,EAAMqL,aAAe,GACzCC,EAAOtL,EAAMsL,KAAOC,KAAKC,MAAMxL,EAAMsL,MAAQ,GAC3CG,EAAOzL,EAAMyL,KAIbC,EAAW,OAMjB,IAAKzL,EAAkB,OAAO,KAC9B,IAAKiL,EAAQ,OAAO,KAEpB,SAAkC3K,EAAAA,EAAAA,UAAS,MAA3C,GAAOO,EAAP,KAAkBC,EAAlB,KACA,KAA8BR,EAAAA,EAAAA,WAAS,GAAvC,GAAgBM,GAAhB,WACA,KAA0CN,EAAAA,EAAAA,WAAS,GAAnD,GAAsBoL,GAAtB,WACA,KAAwCpL,EAAAA,EAAAA,UAAS,IAAjD,GAAOqL,EAAP,KAAqBC,EAArB,KACA,KAA8BtL,EAAAA,EAAAA,UAAS,MAAvC,GAAOuL,EAAP,KAAgBC,EAAhB,KACA,KAAgCxL,EAAAA,EAAAA,UAAS,IAAzC,GAAOyL,EAAP,KAAiBC,EAAjB,KACA,KAA8B1L,EAAAA,EAAAA,UAAS,IAAvC,GAAO2L,EAAP,KAAgBC,EAAhB,KACA,KAAsC5L,EAAAA,EAAAA,UAAS+K,GAA/C,GAAOc,EAAP,KAAoBC,EAApB,KACA,KAAoC9L,EAAAA,EAAAA,UAAS,GAA7C,GAAO+L,EAAP,KAAmBC,EAAnB,KACA,KAAoChM,EAAAA,EAAAA,UAAS6K,GAA7C,GAAOoB,GAAP,KAAmBC,GAAnB,KAEA,MAAgCC,EAAAA,EAAAA,SAAe,SAAU,YAAzD,GAAOhM,GAAP,MAAiBC,GAAjB,MACA,MAA0B+L,EAAAA,EAAAA,UAAe,EAAO,SAAhD,GAAOC,GAAP,MAAcC,GAAd,MAEIC,GAAaT,EACD,UAAZ1L,KAQFmM,IAPAA,GAAaT,EAAYU,QAAO,SAACvH,GAC/B,IAAMwH,GAAM,IAAIC,MAAOC,UAGvB,QAFiBD,KAAKxB,MAAMjG,EAAI2H,aAAeH,GACnB,OAINI,MAAK,SAACC,EAAGC,GAC/B,OAAOL,KAAKxB,MAAM4B,EAAEF,aAAeF,KAAKxB,MAAM6B,EAAEH,iBAIpC,OAAZxM,KAaFmM,IAJAA,IARAA,GAAaT,EAAYU,QAAO,SAACvH,GAAS,IAAD,EACjCwH,GAAM,IAAIC,MAAOC,UAEjBK,EADWN,KAAKxB,MAAMjG,EAAI2H,aAAeH,GACnB,EACtBQ,EAASrC,IAAM,MAAI3F,GAAJ,SAAIA,EAAKiI,cAAT,EAAI,EAAcrC,SACvC,OAAOmC,GAAWC,MAGIJ,MAAK,SAACC,EAAGC,GAC/B,OAAOL,KAAKxB,MAAM6B,EAAEH,aAAeF,KAAKxB,MAAM4B,EAAEF,iBAG1BC,MAAK,SAACC,EAAGC,GAC/B,OAAOD,EAAEK,UAAYJ,EAAEI,QAAU,EAAIL,EAAEK,QAAU,GAAK,MAI1C,WAAZ/M,KAYFmM,IAJAA,IAPAA,GAAaT,EAAYU,QAAO,SAACvH,GAC/B,IAAMwH,GAAM,IAAIC,MAAOC,UAGvB,OAFiBD,KAAKxB,MAAMjG,EAAI2H,aAAeH,GACnB,MAINI,MAAK,SAACC,EAAGC,GAC/B,OAAOL,KAAKxB,MAAM6B,EAAEH,aAAeF,KAAKxB,MAAM4B,EAAEF,iBAG1BC,MAAK,SAACC,EAAGC,GAC/B,OAAOD,EAAEK,UAAYJ,EAAEI,QAAU,EAAIL,EAAEK,QAAU,GAAK,OAK1D7K,EAAAA,EAAAA,YAAU,WACR8K,KAEA,IAAMC,EAAWvD,aAAY,WAC3BsD,OACC,KACH,OAAO,kBAAMlD,cAAcmD,MAC1B,IAEH,IAAMD,GAAqB,WACzB,IAAIE,EAAW,GAEfxB,EAAYzG,SAAQ,SAACJ,GACnB,GAAIA,EAAI2H,YAAa,CACnB,IAAMH,GAAM,IAAIC,MAAOC,UACjBY,EAAWb,KAAKxB,MAAMjG,EAAI2H,aAAeH,EAE/C,GAAIc,IAAa,IAAM,CACrB,IAAMC,EAAO9E,KAAKC,MAAM4E,EAAQ,OAC1BE,EAAQ/E,KAAKC,MAChB4E,EAAQ,MAAT,MAEIG,EAAUhF,KAAKC,MAClB4E,EAAQ,KAAT,KAEII,EAAUjF,KAAKC,MAAO4E,EAAQ,IAAkB,MAGzC,GAATC,IAAwB,GAAVC,IAA2B,GAAZC,IAA6B,GAAZC,GAEhDC,KAGFN,EAASrI,EAAIxD,MAAQ,CACnB+L,KAAMA,EACNC,MAAOA,EACPC,QAASA,EACTC,QAASA,QAMjBpC,EAAgB+B,KAGlBhL,EAAAA,EAAAA,YAAU,WACR,IAAM+K,EAAWvD,aAAY,WAC3B8D,OACC,KACH,OAAO,kBAAM1D,cAAcmD,MAC1B,IAEH,IAKMQ,GAAc,6BAAG,WAAO5I,GAAP,4FACrB1E,EAAW0E,EAAIpG,IAETiP,EAAMxH,SAASoF,GACfqC,EAAczH,SAASrB,EAAI+I,WAAa,GACxCC,EAAW3H,UAAS,SAAArB,EAAIiI,cAAJ,IAAagB,QAAS,GAE1CpJ,IACM,MAATtE,GAAA,SAAAA,EAAW2B,UAAX,WAAoB4C,SAApB,WAA4BC,MAAK,SAACC,GAAD,MA5InB,4DA4I4BA,EAAIC,gBAA9C,IACGC,WAAY,GAAK+G,GAGlB4B,EAZgB,uBAanBjC,EAAW,iBAbQ,6BAiBhBrL,EAjBgB,wBAkBnBqL,EAAW,gDAlBQ,gCAsBjBiC,GAAOG,GAtBU,wBAuBnBpC,EAAW,uCAvBQ,gCA2BjBiC,EAAMC,GA3BW,wBA4BnBlC,EAAW,uCA5BQ,gCAgCjBiC,EAAMhJ,GAhCW,wBAiCnB+G,EAAW,uEACqE/G,EADtE,KAjCS,sDAwCAqJ,IAAAA,KACjB,QACA,CACEL,IAAK,CACHM,OAAQnJ,EAAIpG,GACZgM,QAASD,EACTsD,MAAOxC,IAGX,CACE2C,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBArDK,QAwCbC,EAxCa,OA0DnBhO,GAAW,GACXqN,KAEA,MAAIW,GAAJ,SAAIA,EAAMC,OAAN,EAAY3P,IACdgN,EAAW,aAEXlC,YAAW,WACT8B,EAAW,MACXI,EAAW,IACXF,EAAY,MACX,MAEHE,EAAU,MAAC0C,OAAD,EAACA,EAAMC,MAtEA,mDAyEnBjI,QAAQ4D,MAAR,MAzEmB,2DAAH,sDAyFdyD,GAAkB,6BAAG,sGACNO,IAAAA,IAAA,gBAA2B,CAC5CE,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBALa,OACnBC,EADmB,OASnBE,EATmB,MASLF,OATK,EASLA,EAAMC,KAGxBvD,KAAKyD,UAAU5C,IAAgBb,KAAKyD,UAAUD,IACjC,MAAIA,GAAAA,EAAazD,OAC9Be,EAAc,MAAC0C,OAAD,EAACA,EAAazD,MAC5BmB,GAAa,MAACsC,OAAD,EAACA,EAAa1D,cAfJ,2CAAH,qDAmBlB4D,GAAe,6BAAG,WAAO9P,GAAP,8EACsC,GAAxD+P,QAAQ,6CADU,0CAGCT,IAAAA,OAAA,SAAsBtP,EAAM,CAC7CwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBAPM,OAWS,IAAnB,OARFC,EAHY,SAWd,SAAAA,EAAMC,WAAN,IAAYK,SACdjB,KAEAkB,MAAK,MAACP,GAAD,SAACA,EAAMC,WAAP,EAAC,EAAYrE,OAdF,gDAiBlB5D,QAAQ4D,MAAR,MAjBkB,yDAAH,sDAsBf4E,GAAyB,aAAXnD,EACdoD,GAAkC,GAArBzC,GAAWzG,OACxBmJ,IAAkB,MAAPzD,GAAA,SAAAA,EAAS0B,cAAT,IAAkBgB,QAAS,EACtCgB,IAAqB,MAAP1D,OAAA,EAAAA,EAASwC,YAAa,EACpCmB,GAAwB,GAAZF,KAAkBF,GAC9BK,GAAcL,GAAcrD,GAAkB,MAAPF,GAAA,SAAAA,EAAS0B,cAAT,IAAkBgB,QAAS,EAExE,OACE,gBAAC,IAAD,CAAemB,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,GAAI,CACFkB,GAAI,UACJd,MAAO,OACPoB,UAAW,qBACXZ,MAAO,UACP2C,GAAI,GACJlD,OAAQ,SAGV,gBAAC,KAAD,CACEU,IAAK8L,EACL7M,GAAI,CACFI,MAAO,OACPC,OAAQ,qBACRJ,SAAU,QACV6M,UAAW,QACXC,eAAgB,MAChB7M,IAAK,GACL8M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,KAGZ,gBAAC,KAAD,CACEN,GAAI,CACFkB,GAAI,cACJwF,SAAU,OACVzG,SAAU,WACVO,QAAS,OACT0M,cAAe,SACf/L,aAAc,OACdS,SAAU,CAAC,OAAQ,QACnBuL,GAAI,OACJ7M,OAAQ,GACRD,OAAQ,SAGV,gBAAC,KAAD,CAAKL,GAAI,CAAEoN,GAAI,GAAIhN,MAAO,OAAQmB,UAAW,UAC3C,gBAAC,UAAD,CACErE,iBAAkBA,EAClBI,cAzLU,SAAC+P,GAErBrP,EAAaqP,IAwLH9P,cAAeqL,EACfxL,OAAQ,CAAE8C,IAAK,EAAGqG,GAAI,GACtBlJ,YAAa,CAAE6C,IAAK,UAGtB,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEoN,MAAM,oCACNtN,GAAI,CACF4B,SAAU,CAAC,QACXxB,MAAO,OACPmB,UAAW,QACXgF,GAAI,EACJ5E,GAAI,GACJK,cAAe,cAGjB,gBAAC,KAAD,CACEuL,WAAS,EACTC,KAAI,WAAa3J,SAAS4F,IAAtB,QACJgE,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,aAQjB9E,GACC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACE/I,GAAI,CACFC,SAAU,QACVgN,KAAM,EACN7M,MAAO,QACPC,OAAQ,QACRF,MAAO,EACPD,IAAK,EACL8M,OAAQ,EACR9L,GAAI,QACJ4M,QAAS,GACTxN,OAAQ,QAEVC,QAAS,WACPyI,EAAW,MACXI,EAAW,IACXF,EAAY,OAGhB,gBAAC,KAAD,CACEzI,UAAU,cACVT,GAAI,CACFC,SAAU,QACVG,MAAO,CAAC,MAAO,SACfF,IAAK,QACLsB,UAAW,QACXyL,KAAM,EACN9M,MAAO,EACPwG,GAAI,OACJpF,UAAW,SACXjB,OAAQ,QACRY,GAAI,QACJN,MAAO,UACPmN,QAAS,CAAC,QACVrM,OAAQ,sBAGTyH,GACC,gBAAC,KAAD,CACE1I,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,GACJoC,GAAI,KAGL4C,GAIL,gBAAC,KAAD,CACE1I,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,GACJoC,GAAI,KAGLmG,GAAS,YACM7I,SAAS4I,IADf,IAC+B9D,EAD/B,YAEM9E,SAAS8I,IAFf,IAE+BhE,GAG3C,gBAAC,KAAD,CACElI,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,GACJoC,GAAI,KAPR,sBAUyBwC,EAAQ/J,MAEjC,yBACEiJ,MAAO,CACL3E,WAAY,uCACZlD,MAAO,MACP4N,OAAQ,OACRD,QAAS,YACTrM,OAAQ,oBACRuM,WAAY,QACZC,QAAS,OACTtN,MAAO,UACPgB,SAAU,OACV,UAAW,CACTsM,QAAS,SAGbL,KAAK,SACLM,WAAS,EACTC,IAAG,SAAErF,EAAQ0B,cAAV,EAAE,EAAiBgB,MACtB/G,MAAOuE,EACPjE,SAAU,SAACxI,GAAD,OAAO0M,EAAY1M,EAAEyI,OAAOP,QACtC2J,UAAW,SAAC7R,GAAD,OAlPL,SAAC8R,EAAO9L,GAC5B,GAAkB,UAAd8L,EAAMvG,IAAiB,CACzBuG,EAAMC,iBACND,EAAME,kBAEN,IAAMnD,EAAMxH,SAASoF,GACjBW,IAASyB,GACXD,GAAe5I,IA2OaiM,CAAcjS,EAAGuM,MAGrC,gBAAC,KAAD,CACE/I,GAAI,CACFQ,QAAS,OACT+F,GAAI,GACJ1F,oBAAqB,mBACrB,WAAY,CACVD,MAAO,aAIX,gBAAC,KAAD,MACA,gBAAC,KAAD,CAAKL,QAAS,kBAAMsJ,IAAUD,MAC5B,gBAAC,KAAD,CACE5J,GAAI,CACF,oBAAqB,CACnBY,MAAO,YAGX8N,QAAS9E,MAIb,gBAAC,KAAD,CACEnJ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,QACXuC,GAAI,IANR,kFAYA,gBAAC,KAAD,OAGF,gBAAC,KAAD,CACEnE,GAAI,CACFI,MAAO,QACPuG,GAAI,OACJ/E,SAAU,CAAC,OAAQ,QACnB2E,GAAI,OACJjF,OAAQ,UACRgC,WAAY,uCACZwK,QAASlE,IAASX,EAAW,EAAI,IAEnC1I,QAAS,kBAAMqJ,IAASX,GAAYmC,GAAerC,KAVrD,YAkBN,gBAAC,KAAD,CACE/I,GAAI,CACFQ,QAAS,OACTK,oBAAqB,CAAC,MAAO,YAC7BR,OAAQ,OACRsO,QAAS,GACTxB,GAAI,SAGN,gBAAC,KAAD,CACEnN,GAAI,CACFQ,QAAS,OACTK,oBAAqB,CAAC,OACtB8N,QAAS,GACThI,GAAI,OACJJ,GAAI,GACJnG,MAAO,OACPsG,SAAU,MAGX6F,IACC,gBAAC,KAAD,CACE9L,UAAU,QACVsH,IAAKwB,EACLvJ,GAAI,CACF0B,OAAQ,oBACRtB,MAAO,OACPgB,EAAG,GACHnB,SAAU,WACVuB,UAAW,MAGb,gBAAC,KAAD,CACExB,GAAI,CACF4B,SAAU,CAAC,QACXxB,MAAO,OACP4B,cAAe,cAGjB,gBAAC,KAAD,CACEhC,GAAI,CACFC,SAAU,WACVG,MAAO,OACPF,IAAK,EACL8M,OAAQ,EACRC,KAAM,EACN9M,MAAO,EACPe,GAAI,QACJ4M,QAAS,GACTxN,QAAS,KAGb,gBAAC,KAAD,CACEiN,WAAS,EACTC,KAAM,yBACNC,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,YAOjB/D,GAAW7N,KAAI,SAACuG,EAAKoM,GAAW,IAAD,YACxBC,EAAW,MAAHrM,GAAAA,EAAKqM,OACZ,MAAHrM,OAAA,EAAAA,EAAKqM,OACL,uFACAzQ,EAAOoE,EAAIsM,YAET/D,EAAI,SAAGlC,EAAarG,EAAIxD,YAApB,EAAG,EAAwB+L,KAC/BC,EAAK,SAAGnC,EAAarG,EAAIxD,YAApB,EAAG,EAAwBgM,MAChCC,EAAO,SAAGpC,EAAarG,EAAIxD,YAApB,EAAG,EAAwBiM,QAClCC,EAAO,SAAGrC,EAAarG,EAAIxD,YAApB,EAAG,EAAwBkM,QAElClB,GAAM,IAAIC,MAAOC,UACjBY,EAAWb,KAAKxB,MAAMjG,EAAI2H,aAAeH,EACzCO,EAAUO,GAAY,EACtBiE,EAAWjE,IAAa,IACxBkE,EAAUjE,GAAQC,GAASC,GAAWC,EAIxC+D,EAAU,GACVlE,IAAMkE,GAAclE,EAAP,UACbC,IAAOiE,GAAcjE,EAAP,WACdC,IAASgE,GAAchE,EAAP,UACpBgE,GAAc/D,EAAP,OAEP,IAAMgE,EAAe/G,IAAM,MAAI3F,GAAJ,SAAIA,EAAKiI,cAAT,EAAI,EAAcrC,WAAYmC,EAEzD,OACE,gBAAC,KAAD,CACExC,IAAQvF,EAAIpG,GAAT,IAAemN,EAClB9I,UAAU,QACVT,GAAI,CACF0B,OAAQ,oBACRtB,MAAO,OACPgB,EAAG,GACHnB,SAAU,WACVkP,SAAU,SACVC,aAAc,aAGhB,gBAAC,KAAD,CACEpP,GAAI,CACFC,SAAU,WACVG,MAAO,OACPF,IAAK,EACL8M,OAAQ,EACRC,KAAM,EACN9M,MAAO,EACPe,GAAI,QACJ4M,QAAS,GACTxN,QAAS,KAGb,gBAAC,KAAD,CACEN,GAAI,CACFQ,QAAS,OACTK,oBAAqB,CAAC,MAAO,WAC7B8N,QAAS,CAAC,OAAQ,UAGpB,gBAAC,KAAD,KACE,gBAAC,KAAD,CACE5N,IAAK8N,EACL7O,GAAI,CACFI,MAAO,OACPsG,SAAU,QAIhB,gBAAC,KAAD,CACE1G,GAAI,CAAEsB,OAAQ4N,EAAe,cAAgB,SAE7C,gBAAC,KAAD,CACElP,GAAI,CACF4B,SAAU,CAAC,QACXxB,MAAO,OACPmB,UAAW,OACXI,GAAI,GACJK,cAAe,YACfP,WAAY,aAGd,gBAAC,KAAD,CACE8L,UAAWqB,GAAS,EACpBpB,KAAMhL,EAAI8K,OAAS9K,EAAIxD,KACvByO,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,WAMd,gBAAC,KAAD,CACEtN,QAAS,WACY,IAAD,EAAd2O,GACFhD,GAAe,MAAC1J,GAAD,SAACA,EAAKiI,cAAN,EAAC,EAAcrO,MAIlC,gBAAC,KAAD,CACE4D,GAAI,CACF4B,SAAU,CAAC,QACXxB,MAAO,OACPmB,UAAW,OACXE,WAAY,WACZ2L,GAAI,KAGN,gBAAC,KAAD,CACEG,UAAWqB,GAAS,EACpBpB,KACEhL,EAAIiI,QAAJ,WAEIjI,EAAI+I,UAAJ,YACY1H,SAAQ,MAACrB,OAAD,EAACA,EAAK+I,WAD1B,QAEA,UAENkC,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,WAMbrL,EAAIiI,SACH,gBAAC,KAAD,CACEzK,GAAI,CACF4B,SAAU,CAAC,QACXxB,MAAO,OACPmB,UAAW,OACXE,WAAY,WACZ0L,GAAI,KAGN,gBAAC,KAAD,CACEI,UAAWqB,GAAS,EACpBpB,KAAS3J,SACPrB,EAAIiI,QAAQgB,OADV,IAAK5H,UAEUrB,EAAIiI,QAAQ4E,KAC/B5B,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,aAQhBtD,GAAWyE,GACX,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEhP,GAAI,CACF4B,SAAU,CAAC,QACXxB,MAAO,OACPmB,UAAW,OACXE,WAAY,WACZ2L,GAAI,KAGN,gBAAC,KAAD,CACEG,UAAWqB,GAAS,EACpBpB,KAAK,aACLC,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,WAKd,gBAAC,KAAD,CACE7N,GAAI,CACF4B,SAAU,CAAC,QACXxB,MAAO,OACPmB,UAAW,OACXE,WAAY,SACZ0L,GAAI,KAGN,gBAAC,KAAD,CACEI,UAAWqB,GAAS,EACpBpB,KAAMyB,EACNxB,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,WAMb9P,GACC,gBAAC,KAAD,CACE0C,UAAU,SACVT,GAAIU,EACJH,QAAS,kBAAMyI,EAAWxG,KAE1B,gBAAC,KAAD,CACE+K,UAAWqB,GAAS,EACpBpB,KAAK,UACLC,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,YAQnBtD,GACC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEvK,GAAI,CACF4B,SAAU,CAAC,QACXxB,MAAO,OACPmB,UAAW,OACXE,WAAY,aAGd,gBAAC,KAAD,CACE8L,UAAWqB,GAAS,EACpBpB,KAAS,MAAHhL,GAAAA,EAAKkI,QAAU,UAAY,YACjC+C,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,YAOjBtD,GACCwE,GACA5G,IAAM,MAAI3F,GAAJ,SAAIA,EAAKiI,cAAT,EAAI,EAAcrC,UACtB,gBAAC,KAAD,CAAKpI,GAAI,CAAEuG,GAAI,KACb,gBAAC,KAAD,CACE+I,KAAI,iBAAmB9M,EAAIpG,GAC3B4D,GAAI,CAAE+B,eAAgB,SAEtB,gBAAC,KAAD,CAAWtB,UAAU,SAAST,GAAIU,GAChC,gBAAC,KAAD,CACE6M,UAAWqB,GAAS,EACpBpB,KACK,MAAHhL,GAAAA,EAAKkI,QAAU,cAAgB,YAEjC+C,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,oBAclC,gBAAC,KAAD,CAAK7N,GAAI,CAAEK,OAAQ,OAAQD,MAAO,SAChC,gBAAC,KAAD,CACEK,UAAU,QACVT,GAAI,CACF0G,SAAU,OACVtG,MAAO,OACPH,SAAU,SACVC,IAAK,GACLI,OAAQ,GACRM,MAAO,UACPmN,QAAS,CAAC,QACVrM,OAAQ,oBACR6E,GAAI,GACJ/E,UAAW,MAGb,gBAAC,KAAD,CACExB,GAAI,CACFC,SAAU,WACVG,MAAO,OACPF,IAAK,EACL8M,OAAQ,EACRC,KAAM,EACN9M,MAAO,EACPe,GAAI,QACJ4M,QAAS,GACTxN,QAAS,KAGb,gBAAC,KAAD,CACEN,GAAE,OACGuP,GADH,IAEA3O,MAAmB,UAAZjD,GAAuB,UAAY,YAE5C4C,QAAS,WACP3C,GAAY,UACZ4L,EAAcD,EAAa,KAG7B,gBAAC,KAAD,CACEgE,WAAS,EACTC,KAAK,kBACLC,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,WAKd,gBAAC,KAAD,CACE7N,GAAE,OACGuP,GADH,IAEA3O,MAAmB,OAAZjD,GAAoB,UAAY,YAEzC4C,QAAS,WACP3C,GAAY,OACZ4L,EAAcD,EAAa,KAG7B,gBAAC,KAAD,CACEgE,WAAS,EACTC,KAAK,eACLC,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,WAKd,gBAAC,KAAD,CACE7N,GAAE,OACGuP,GADH,IAEA3O,MAAmB,WAAZjD,GAAwB,UAAY,YAE7C4C,QAAS,WACP3C,GAAY,WACZ4L,EAAcD,EAAa,KAG7B,gBAAC,KAAD,CACEgE,WAAS,EACTC,KAAK,mBACLC,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,WAKd,gBAAC,UAAD,aAUV0B,EAAa,CACjB3N,SAAU,CAAC,OAAQ,QACnBI,cAAe,YACfmC,GAAI,GACJ7C,OAAQ,UACRV,MAAO,UACP,UAAW,CACTA,MAAO,YAILF,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVwB,WAAY,SACZP,GAAI,UACJd,MAAO,CAAC,QACRkB,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChB2E,SAAU,IACV9F,MAAO,QACPO,aAAc,EACdQ,GAAI,EACJ,UAAW,CACTT,GAAI,YAIR,a,4KC5jCasO,EAAoB,WAC/B,OACE,gBAAC,IAAD,CAAe5C,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,GAAI,CACFkB,GAAI,UACJd,MAAO,OACPoB,UAAW,qBACXZ,MAAO,UACP2C,GAAI,GACJlD,OAAQ,SAGV,gBAAC,KAAD,CACEU,IAAK8L,EACL7M,GAAI,CACFI,MAAO,OACPC,OAAQ,qBACRJ,SAAU,QACV6M,UAAW,QACXC,eAAgB,MAChB7M,IAAK,GACL8M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,KAGZ,gBAAC,KAAD,CACEN,GAAI,CACFkB,GAAI,cACJwF,SAAU,OACVzG,SAAU,WACVO,QAAS,OACT0M,cAAe,SACf/L,aAAc,OACdS,SAAU,CAAC,OAAQ,QACnBuL,GAAI,OACJ7M,OAAQ,GACRD,OAAQ,SAGV,gBAAC,KAAD,CACEL,GAAI,CACFQ,QAAS,OACTK,oBAAqB,MACrBR,OAAQ,OACRsO,QAAS,GACTxB,GAAI,SAGN,gBAAC,KAAD,CACEnN,GAAI,CACFQ,QAAS,OACTK,oBAAqB,CAAC,OACtB8N,QAAS,GACThI,GAAI,OACJJ,GAAI,CAAC,GAAI,KACTnG,MAAO,OACPsG,SAAU,MAGZ,gBAAC,KAAD,CACEjG,UAAU,QACVT,GAAI,CACF0B,OAAQ,oBACRtB,MAAO,OACPgB,EAAG,GACHnB,SAAU,WACVuB,UAAW,MAGb,gBAAC,KAAD,CACExB,GAAI,CACF4B,SAAU,CAAC,QACXxB,MAAO,OACP4B,cAAe,YACfP,WAAY,aAGd,gBAAC,KAAD,CACEzB,GAAI,CACFC,SAAU,WACVG,MAAO,OACPF,IAAK,EACL8M,OAAQ,EACRC,KAAM,EACN9M,MAAO,EACPe,GAAI,QACJ4M,QAAS,GACTxN,QAAS,KAGb,gBAAC,IAAD,CACAmP,OAAQ,SAACC,GACPA,EACGC,WAAW,6BACXC,SAAS,MACTD,WAAW,0CACXE,SAELC,QAAS,CACPC,MAAO,cAwC3B,a,mqEClIA,IAKM3R,EAAS,CACb,eANgB,kBAOhB,cANe,iBAOf,eANgB,kBAOhB,aANa,gBAYF8J,EAAY,SAACjL,GAAW,IAAD,cAC5BC,EAAmBiF,EAAAA,mBACnBgG,EAASlL,EAAMmL,QACfM,EAAOzL,EAAMyL,KAEfsH,EAAc/S,EAAMgT,cAAgB,GAKlCC,GACO,MAAXF,GAAA,SAAAA,EAAaxN,UAAb,IAAkB2N,cAClB,0GAGIC,EAAa,2DACbzH,EAAW,OAMXkG,EAAmB,MAAXmB,GAAA,SAAAA,EAAaxN,MAAb,EAAkBqM,OACjB,MAAXmB,GAAA,SAAAA,EAAaxN,UAAb,IAAkBqM,OAClB,uFACAzQ,EAAM,MAAC4R,OAAD,EAACA,EAAaxN,IAAIsM,YAE5B,IAAK5R,EAAkB,OAAO,KAC9B,IAAKiL,EAAQ,OAAO,KAEpB,SAAkC3K,EAAAA,EAAAA,UAAS,MAA3C,GAAOO,EAAP,KAAkBC,EAAlB,KACA,KAA8BR,EAAAA,EAAAA,WAAS,GAAvC,GAAOK,EAAP,KAAgBC,EAAhB,KACA,KAA0CN,EAAAA,EAAAA,WAAS,GAAnD,GAAO6S,EAAP,KAAsBzH,EAAtB,KACA,KAAsCpL,EAAAA,EAAAA,UAAS,IAA/C,GAAO8S,EAAP,KAAoBC,EAApB,KACA,KAA0B/S,EAAAA,EAAAA,UAASwS,GAAnC,GAAOQ,EAAP,KAAcC,EAAd,KACA,KAA4BjT,EAAAA,EAAAA,UAAS,MAArC,GAAOkT,EAAP,KAAeC,EAAf,KACA,KAA8BnT,EAAAA,EAAAA,UAAS,MAAvC,GAAOoT,EAAP,KAAgBC,EAAhB,KACA,KAA4BrT,EAAAA,EAAAA,WAAS,GAArC,GAAOsT,GAAP,KAAeC,GAAf,KAEMC,GAAeR,IAAK,MAAIA,OAAJ,EAAIA,EAAOS,YAAW,MAACT,GAAAA,EAAOU,eAClDC,GAAiBX,IAAK,MAAIA,OAAJ,EAAIA,EAAOS,WAAhB,MAA2BT,OAA3B,EAA2BA,EAAOU,eAEnDE,GAAI,MAAGrT,GAAH,SAAGA,EAAW2B,UAAd,SAAG,EAAoB4C,aAAvB,EAAG,EAA4BC,MACvC,SAACC,GAAD,OAASA,EAAIC,QAAU2N,KAKnBiB,IAHU,MAAGD,IAAAA,GAAM1O,SAGL8N,EAAMc,cAAgB,IAAIrH,KAAKuG,EAAMc,eAAiB,MACpEC,GAAkBF,GACjBA,GAAYG,qBADgB,MACUH,GAAYI,qBACrDJ,IAIJxR,EAAAA,EAAAA,YAAU,WAMR,GALA6R,KACIlB,IAAUA,EAAMU,eAAoC,UAAnBV,EAAMmB,WACzCzK,WAAWwK,GAAS,KAGlBlB,GAASA,EAAMoB,UAAW,CAAC,IAAD,EACtBC,GAAY,SAAArB,EAAMoB,gBAAN,IAAiBE,MAAM,QAAS,GAClDnB,EAAU,CACR,qDADO,OAEJkB,OAGN,IApE+B,SA0EnBH,KA1EmB,oEA0ElC,+FACE5N,QAAQC,IAAI,WACR,MAACyM,GAAAA,EAAOpU,IAAM,MAAC4T,GAAAA,EAAa5T,GAFlC,yCAE6C,MAF7C,uBAIqBsP,IAAAA,IAAA,kBAAqBsE,OAArB,EAAqBA,EAAa5T,IAAM,CACzDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBARd,OAIQC,EAJR,OAYQiG,EAZR,MAYoBjG,OAZpB,EAYoBA,EAAMC,KAEJvD,KAAKyD,UAAUuE,IAAUhI,KAAKyD,UAAU8F,IAE7C,MAAIA,GAAAA,EAAW3V,KAC5BqU,EAASsB,GAELA,EAAUd,SAAWT,EAAMS,SAC7BJ,EACE,0GAIAkB,EAAUb,eAAiBV,EAAMU,gBACnCL,EAAW,IAGTkB,EAAUH,YACNC,GAAY,SAAAE,EAAUH,gBAAV,IAAqBE,MAAM,QAAS,GACtDjB,EAAW,IACXF,EAAU,CACR,qDADO,OAEJkB,MAKJE,EAAUb,gBACPnB,EAAQgC,EAAUd,QAAU,IAAQ,IAC1C/J,WAAWwK,GAAS3B,IAzCxB,6CA1EkC,sBA0QlC,OACE,gBAAC,IAAD,CAAenD,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,GAAI,CACFkB,GAAI,UACJd,MAAO,OACPoB,UAAW,qBACXZ,MAAO,UACP2C,GAAI,KAGN,gBAAC,KAAD,CACEvD,GAAI,CACFI,MAAO,IACPC,OAAQ,IACRJ,SAAU,QACV+M,OAAQ,EACRC,KAAM,CAAC,KACP3M,OAAQ,EACRgB,OAAQ,WAEVf,QAAS,kBAAMzB,OAAOkT,SAAS5O,QAAQ,QAEzC,gBAAC,KAAD,CACErC,IAAK8L,EACL7M,GAAI,CACFI,MAAO,OACPC,OAAQ,qBACRJ,SAAU,QACV6M,UAAW,QACXC,eAAgB,MAChB7M,IAAK,GACL8M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,KAGZ,gBAAC,KAAD,CACEN,GAAI,CACFoB,EAAG,OACHhB,MAAO,OACPmB,UAAW,QACXtB,SAAU,WACVK,OAAQ,KAGV,gBAAC,UAAD,CACEpD,iBAAkBA,EAClBI,cApPY,SAAC+P,GACrBrP,EAAaqP,IAoPL9P,cAAeqL,EACfxL,OAAQ,CAAE8C,IAAK,EAAGqG,GAAI,GACtBlJ,YAAa,CAAE6C,IAAK,WAGxB,gBAAC,KAAD,CACEO,UAAU,QACVT,IAAE,GACA0G,SAAU,OACVzG,SAAU,WACVO,QAAS,QAHT,WAIU,CAAC,OAAQ,KAJnB,EAKAyR,GAAI,OALJ,EAMA/E,cAAe,SANf,EAOAtL,SAAU,CAAC,OAAQ,QAPnB,EAQAuL,GAAI,OARJ,EASA7M,OAAQ,GATR,EAUAM,MAAO,UAVP,EAWAmN,QAAS,CAAC,QAXV,EAYArM,OAAQ,oBAZR,EAaA6E,GAAI,GAbJ,EAcA/E,UAAW,IAdX,IAiBF,gBAAC,KAAD,CACExB,GAAI,CACFC,SAAU,WACVG,MAAO,OACPF,IAAK,EACL8M,OAAQ,EACRC,KAAM,EACN9M,MAAO,EACPe,GAAI,QACJ4M,QAAS,GACTxN,QAAS,KAGb,gBAAC,KAAD,CAAKN,GAAI,CAAEC,SAAU,WAAYE,MAAO,GAAID,IAAK,KAC/C,gBAAC,UAAD,CAAaa,IAAI,qCAEjBhD,GACA,gBAAC,KAAD,CAAKgK,IAAKsI,GACR,gBAAC,KAAD,CACE5P,UAAU,SACVT,GAAI,CACF4B,SAAU,CAAC,OAAQ,UAGrB,gBAAC,IAAD,CACE6N,OAAQ,SAACC,GACPA,EACGwC,cAAa,WACZpO,QAAQC,IAAI,kBACZgN,IAAU,MAEXpB,WACCU,EACI,wBACA,oCAELR,SAELC,QAAS,CACPC,MAAO,QAOhBhS,KAAa,MAACiS,GAAAA,EAAa5T,KAC1B,gBAAC,KAAD,CAAK2L,IAAKsI,GACR,gBAAC,KAAD,CACE5P,UAAU,SACVT,GAAI,CACF4B,SAAU,CAAC,OAAQ,QACnBH,WAAY,aAGd,gBAAC,IAAD,CACEgO,OAAQ,SAACC,GACPA,EACGwC,cAAa,WACZnB,IAAU,MAEXpB,WACC,8EAEDE,SAELC,QAAS,CACPC,MAAO,QAOhBhS,IAAS,MAAIiS,OAAJ,EAAIA,EAAa5T,KACzB,gBAAC,KAAD,KACGsU,GAAUA,EAAOrN,OAAS,GACzB,gBAAC,KAAD,WACGqN,OADH,EACGA,EAAQzU,KAAI,SAACyL,GAAD,OACX,gBAAC,KAAD,CACEjH,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,QACXL,UAAW,OACX4C,GAAI,GACJoC,GAAI,EACJI,GAAI,OACJD,SAAU,MAGXgB,OAMRkJ,GACC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEnQ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPgB,SAAU,CAAC,OAAQ,QACnBH,WAAY,WACZsD,GAAI,KAGN,gBAAC,IAAD,CACE+K,QAAS,CACPqC,QAASvB,EACTrD,WAAW,EACXwC,MAAO,QAOhBiB,KAAiBJ,GAChB,gCACE,gBAAC,KAAD,CACEnQ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KAGN,gBAAC,IAAD,CACE2L,QAAS,CACPqC,QAAQ,kHACR5E,WAAW,EACXwC,MAAO,OAIb,gBAAC,KAAD,CACEtP,UAAU,SACVT,GAAI,CACFY,MAAO,UACPgB,SAAU,CAAC,OAAQ,QACnB3B,SAAU,WACV+M,OAAQ,GACR7M,MAAO,GACP8R,GAAI,OACJ1Q,UAAW,QACXnB,MAAO,OACPkB,OAAQ,UACR,MAAO,CACLV,MAAO,aAIX,qBAAG0O,KAAI,KAAP,UAKLkB,GAAS,CAAC,KAAM,UAAUtN,SAASsN,EAAMmB,YACxC,gBAAC,KAAD,CAAK3R,GAAI,IACP,gBAAC,KAAD,CACES,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KANR,cAWA,gBAAC,KAAD,CACEpD,IAAK8N,EACL7O,GAAI,CACFI,MAAO,OAGX,gBAAC,KAAD,CACEK,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,WALf,MAQMoO,GARN,SAQMA,EAAaxN,UARnB,EAQM,EAAkBxD,MARxB,KAQiC6E,SAC7B2M,EAAM4B,OATV,IAUOzJ,IAGL0H,KACEG,EAAM6B,eAAiB7B,EAAMoB,YAC7B,gBAAC,KAAD,CACEnR,UAAU,SACVT,GAAIU,EACJH,QAAS1C,EAAU,KAlajB,WACtBC,GAAW,GACXyS,EAAe,mBAEf,IAAM+B,EAAiB,6BAAG,wIACGvU,EAAUwB,aADb,cACpBgT,EADoB,OAElBC,EAAaD,EACbE,EAAc5O,SAAS2M,EAAM4B,OAgB/BM,EAAgB,CAClB,IAAK,CACH,KAZgB,CAClBC,KAAM,CACJC,KAAM,8DACNC,UACE,8DACFC,QACE,mEAUc,EAEhBC,EAAa,CACf,CACEvT,QAAS0Q,EACT8C,OAAQ,IACR1Q,OA1BgB,CAClB,CAAE2Q,KAAS7C,EAAL,IAAmBzH,EAAYjG,SAAU+P,KA2B/C,CACEjT,QApJN,6DAqJMwT,OAAQ,MAIRE,EAAQ,KACRC,EAAQ,KACRC,EAAc,KAzCM,oBA6CNrV,EAAUsV,cA7CJ,eA6CpBH,EA7CoB,iBA8CNnV,EAAUuV,eA9CJ,eA8CpBH,EA9CoB,iBA+CApV,EAAUqV,YAAY,CACxCG,eAAgBhB,EAChBQ,WAAYA,EACZS,SAAUd,EACVe,aAAa,EACbC,SAAUR,EACVS,WAAgB,OAAL,EAAAR,QAAA,IAAO/W,KAAM,EACxBwX,IAAK,OAtDa,QA+CpBR,EA/CoB,0DA0DF,qBADdS,EAzDgB,kBAyDH,KAAKrP,WAEpBqP,EACE,sNACJ/P,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,EAAU,CAAC,6CAA8CkD,IA/DrC,gCAkEtB/V,GAAW,GACX6S,EAAU,CAAC,+CAnEW,eAsEpBmD,EAAe,KAtEK,oBAwED/V,EAAUgW,OAAOX,GAAa,GAxE7B,QAwEtBU,EAxEsB,OAyEtBvD,EAAe,qBAzEO,mDA4EtBzS,GAAW,GA5EW,YA+EpBgW,EA/EoB,kCAiFhBhI,EAAO,KAjFS,UAkFPJ,IAAAA,KAAA,mBACQ8E,EAAMpU,GACzB,CACEgX,YAAAA,EACAf,cAAeyB,EACfE,YAAaxB,GAEf,CACE5G,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBA7FM,QAkFpBC,EAlFoB,OAkGpB,SAAIA,IAAJ,SAAI,EAAMC,OAAN,EAAY6E,SACdC,EACE,yEAEF/S,GAAW,GACX6S,EAAU,IACJsD,EANiB,OAOlBzD,GAPkB,IAQrBmB,UAAW,YACXU,cAAeyB,IAEjBrD,EAASwD,GAGT/M,WAAWwK,GAAS,OAEpB5N,QAAQC,IAAR,SAAY+H,QAAZ,EAAY,EAAMC,MACZmI,GAAoB,OAAJ,EAAApI,IAAA,WAAMC,WAAN,IAAY2E,SAAU,GAC5C5S,GAAW,GACX6S,EAAU,CACR,qHADO,OAEJuD,KAvHa,mDA2HpBpQ,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,EAAU,CACR,sFADQ,OA7HU,gCAmItB7M,QAAQ4D,MAAMoM,GACdhW,GAAW,GApIW,2EAAH,qDAuIlBD,GAASyU,MAyROzU,EACGyS,EACAE,EAAMoB,UACN,aACA,WAGV,gBAAC,KAAD,CACEnR,UAAU,SACVT,GAAI,CACFY,MAAO,UACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ0L,GAAI,OACJ1Q,UAAW,QACXnB,MAAO,OACPkB,OAAQ,UACR,MAAO,CACLV,MAAO,aAIX,qBAAG0O,KAAI,KAAP,UAKL6B,IACC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACE1Q,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KAGN,gBAAC,IAAD,CACEsL,OAAQ,SAACC,GAAgB,IAAD,EACtBA,EACGC,WADH,2CAEwCa,GAFxC,SAEwCA,EAAOhO,UAF/C,EAEwC,EAAYxD,MAFpD,iCAIGkT,cAAa,WACZhL,YAAW,WACT6J,IAAU,KACT,QAEJlB,SAELC,QAAS,CACPC,MAAO,QAKXe,IACA,gBAAC,KAAD,KACE,gBAAC,KAAD,CACErQ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,UACR,MAAO,CACLV,MAAO,aAXb,YAgBE,qBACE0O,KAAI,sCAAwCkB,EAAMS,QAClDhM,OAAO,UAENuL,EAAMS,UAGX,gBAAC,KAAD,CACExQ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,UACR,MAAO,CACLV,MAAO,aAXb,uBAgBG4P,EAAMU,cACL,qBACE5B,KAAI,sCAAwCkB,EAAMU,cAClDjM,OAAO,UAENuL,EAAMU,eAGT,oBAGJ,gBAAC,KAAD,CACEzQ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,UACR6C,GAAI,KAVR,iBAaoBoN,IAEpB,gBAAC,KAAD,CACE9Q,UAAU,SACVT,GAAI,CACFY,MAAO,UACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ0L,GAAI,OACJ1Q,UAAW,QACXnB,MAAO,OACPkB,OAAQ,UACR,MAAO,CACLV,MAAO,aAIX,qBAAG0O,KAAI,KAAP,gBAclB5O,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVW,MAAO,qBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,UACJS,GAAI,MACJvB,MAAO,CAAC,QACRsG,SAAU,IACVpF,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,GACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAIjB,a,gsCCvtBA,IAKMkS,EAAW,CALD,8BAGd,mEAII/V,EAAS,CAACgW,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,GAE5BC,EAAgB,SAACzX,GAAW,IAAD,EACtC,KAA0BO,EAAAA,EAAAA,UAAS,GAAnC,GAAOoR,EAAP,KAAc+F,EAAd,MAWA9U,EAAAA,EAAAA,YAAU,WACRqH,YAAW,WACTyN,EAAS,KACR,QACF,IAEH,IAAMC,EAAe,CACnB,CAAC,YAAa,eACd,CAAC,aAAc,aACf,CAAC,WAAY,gBACb,CAAC,YAAa,gBACd,CAAC,aAAc,cACf,CAAC,cAAe,kBAGlB,OACE,gBAAC,IAAD,CAAehI,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,IAAE,GACAkB,GAAI,QACJd,MAAO,OACPC,OAAQ,CAAC,uBAHT,KAII,UAJJ,EAKAwU,gBALC,OAKuBhI,EALxB,MAMAiI,iBAAkB,YANlB,EAOAhI,UAAW,QAPX,EAQAiI,eAAgB,CAAC,YAAa,aAR9B,IAWF,gBAAC,KAAD,CAAK/U,GAAI,CAAEuD,GAAI,GAAImD,SAAU,SAAUsO,EAAG,SACxC,gBAAC,KAAD,CACEvU,UAAU,QACVT,GAAI,CACFC,SAAU,WACVyB,OAAQ,oBACRtB,MAAO,OACPgB,EAAG,GACHF,GAAI,sBACJiC,GAAI,GACJoD,GAAI,GACJ4I,SAAU,OACV3O,QAAS,OACTyU,WAAY,YACZzT,UAAW,CAAC,QAAS,SACrB,UAAW,CACTN,GAAI,yBAIR,gBAAC,KAAD,CACElB,GAAI,CACFC,SAAU,WACVE,MAAO,CAAC,MAAO,IACfD,IAAK,CAAC,MAAO,IACbU,MAAO,UACPN,OAAQ,KAGV,gBAAC,UAAD,CAAaS,IAAI,aAEnB,gBAAC,KAAD,CACEN,UAAU,SACVT,GAAI,CACFY,MAAO,UACPgB,SAAU,CAAC,OAAQ,QACnBH,WAAY,WACZ0C,GAAI,EACJ/D,MAAO,SAGT,gBAAC,KAAD,CAAKJ,GAAI,CAAEuB,UAAW,WACpB,gBAAC,KAAD,CACEgM,WAAS,EACTC,KAAM,6BACNC,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,WAKbe,EAAQ,GACP,gBAAC,IAAD,CACE7G,IAAG,cAAgB6G,EACnBkB,QAAS,CACPC,MAAO,IAETN,OAAQ,SAACC,GACPA,EACGC,WAAWwE,EAAS,IACpBvE,SAAS,MACTD,WAAWwE,EAAS,IACpBtE,cAQf,gBAAC,KAAD,CACE7P,GAAI,CACFuG,GAAI,OACJ/F,QAAS,OACTK,oBAAqB,CAAC,UAAW,eACjC8N,QAAS,OACTvO,MAAO,OACPH,SAAU,WACVa,WAAY,CAAC,gBAAiB,UAC9ByC,GAAI,GACJmD,SAAU,SACVC,GAAI,SA/Ha,CACzB,kBACA,kBACA,kBACA,kBACA,kBACA,mBA4H0B1K,KAAI,SAACiZ,EAAItG,GAAL,OACtB,gBAAC,KAAD,CACEoG,EAAE,OACFhV,GAAI,CACFI,MAAO,CAAC,IAAK,KACb6U,WAAY,YACZhV,SAAU,WACVK,OAAQ,KACR,UAAW,CACT6U,UAAW,CAAC,cAAe,eAC3B7U,OAAQ,KACR8U,UAAWR,EAAahG,MAI5B,yBACExO,MAAM,OACNC,OAAO,OACP2G,UAAQ,EACRqO,OAAK,EACLrN,MAAI,EACJsN,QAAQ,WACRC,OAAQnX,EAAOwQ,IAEf,0BAAQ7N,IAAKmU,EAAIrH,KAAK,oBAM9B,gBAAC,KAAD,CACE7N,GAAI,CACFQ,QAAS,OACTK,oBAAqB,MACrBD,MAAO,QACPR,MAAO,OACPH,SAAU,WACVC,IAAK,GACLiN,GAAI,KAGN,gBAAC,KAAD,KACE,gBAAC,KAAD,CAAMmC,KAAK,IAAItP,GAAI,CAAE+B,eAAgB,SACnC,gBAAC,KAAD,CAAKtB,UAAU,QAAQT,GAAIwV,GACzB,gBAAC,KAAD,CACEjI,WAAS,EACTC,KAAI,OACJC,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,cA6BpB,gBAAC,KAAD,CACE7N,GAAI,CACFkB,GAAI,cACJd,MAAO,CAAC,MAAO,SACfsG,SAAU,OACVzG,SAAU,WACVC,IAAK,CAAC,OAAQ,SACdC,MAAO,CAAC,GAAI,IACZgB,aAAc,OACdC,EAAG,OACHQ,SAAU,CAAC,OAAQ,QACnB+E,GAAI,CAAC,OAAQ,GACbwG,GAAI,OACJ7M,OAAQ,SAoCdkV,EAAgB,CACpBjU,UAAW,SACXtB,SAAU,WACVuB,UAAW,OACXZ,MAAO,UACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,qBACJS,GAAI,OACJ4B,GAAI,GACJoD,GAAI,OACJvG,MAAO,CAAC,MAAO,KACfoD,SAAU,CAAC,QAAS,SACpBlC,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,OACTM,WAAY,SACZ2C,eAAgB,SAChB3B,UAAW,OACXwB,WAAY,kDACZvB,eAAgB,OAChBC,cAAe,YACfiT,WAAY,YACZ,UAAW,CACT/T,GAAI,wBAIR,a,gJC3TauU,EAAW,SAACxY,GAAW,IAAD,EAC3ByY,EAAQlN,KAAKC,MAAMxL,EAAMyY,OACzBC,EAAYnN,KAAKC,MAAMxL,EAAM0Y,WAE7BC,EAAQ,MAAGF,OAAH,EAAGA,EAAOnT,MAAK,SAACsT,GAAD,MAAuB,QAAbA,EAAK7W,QACtC8W,EAAY,MAAGH,OAAH,EAAGA,EAAWpT,MAAK,SAACwT,GAAD,OAAWA,EAAMC,UAAN,MAAiBJ,OAAjB,EAAiBA,EAAUxZ,OAErE6Z,GADI,MAAGH,GAAAA,EAAcI,MACVjZ,EAAMgZ,UAKvB,OACE,gBAAC,IAAD,CAAerJ,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,IAAE,GACAkB,GAAI,QACJd,MAAO,OACPC,OAAQ,CAAC,sBAAuB,UAHhC,KAII,UAJJ,IAOF,gBAAC,KAAD,CACEU,IAAK8L,EACL7M,GAAI,CACFI,MAAO,CAAC,QAAS,SACjBH,SAAU,QACV+M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,KAGZ,gBAAC,KAAD,CACEN,GAAI,CACFkB,GAAI,cACJd,MAAO,CAAC,MAAO,SACfsG,SAAU,OACVzG,SAAU,WACVC,IAAK,CAAC,OAAQ,SACdC,MAAO,CAAC,GAAI,IACZgB,aAAc,OACdC,EAAG,OACHQ,SAAU,CAAC,OAAQ,QACnB+E,GAAI,CAAC,OAAQ,GACbwG,GAAI,OACJ7M,OAAQ,KAGV,gBAAC,KAAD,CACEG,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,UA7CnB,iCAmDL4R,GACC,gBAAC,KAAD,CACExV,UAAU,SACVT,GAAI,CACFuB,UAAW,SACXtB,SAAU,WACVC,IAAK,EACLU,MAAO,qBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,UACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAGjBqN,KAAI,iBA1BN,oBAgCJ,gBAAC,KAAD,CACEtP,GAAI,CACFC,SAAU,QACV+M,OAAQ,GACRC,KAAM,CAAC,QAAS,GAChB9M,MAAO,EACPG,OAAQ,EACRoG,SAAU,QACVC,GAAI,SAGN,gBAAC,KAAD,CACE3G,GAAI,CACFa,oBAAqB,oBACrBC,WAAY,WAGd,6BACA,gBAAC,KAAD,CAAWd,GAAI,CAAEY,MAAO,QAASa,WAAY,aAC1C,2BAEH,gBAAC,KAAD,CACEV,IAAKoV,EACLnW,GAAI,CACFI,MAAO,CAAC,WAGZ,kCAQZ,a,4zDC7HA,IAyCagW,EAAkB,SAAC,GAAoC,IAAD,UAAjCC,EAAiC,EAAjCA,KAAMC,EAA2B,EAA3BA,QAASC,EAAkB,EAAlBA,YAC/C,KAAkC/Y,EAAAA,EAAAA,UAAS,MAA3C,GAAOO,EAAP,KACA,GADA,KACA,GAA0BP,EAAAA,EAAAA,WAAS,GAAnC,IAAOgZ,EAAP,KAAcC,EAAd,KAEMC,EAAY,IAAIzM,MAAU,IAAIA,KAAKqM,GACnCK,EAAgB,IAAI1M,MAAU,IAAIA,KAAKsM,GACzC/R,EAAO,4JACPkS,IACFlS,EAAU,mEACRmS,IAAenS,EAAU,uBAI7B,IAGMoS,GACK,MAAT7Y,GAAA,SAAAA,EAAW2B,UAAX,WAAoB4C,aAApB,IAA4ByH,QAAO,SAACvH,GAAD,MAJrB,4DAI8BA,EAAIC,YAAsB,GAElEoU,GACK,MAAT9Y,GAAA,SAAAA,EAAW2B,UAAX,WAAoB4C,aAApB,IAA4ByH,QAAO,SAACvH,GAAD,MANpB,4DAM6BA,EAAIC,YAAuB,GAEnEqU,EAAU/Y,KAAsB,MAAR6Y,OAAA,EAAAA,EAAUvT,QAAS,IAAc,MAATwT,OAAA,EAAAA,EAAWxT,QAAS,GAEtEtF,IAAc+Y,IAChBtS,GAAW,gDAEb,IAAMyR,EACHS,GAAaL,GAAUK,GAAaI,GAAYH,EAEnD,OACE,gBAAC,IAAD,CAAe/J,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,IAAE,GACAkB,GAAI,QACJd,MAAO,OACPC,OAAQ,CAAC,uBAHT,KAII,UAJJ,EAKAwU,gBALC,OAKuBhI,EALxB,MAMAiI,iBAAkB,YANlB,EAOAhI,UAAW,QAPX,EAQAiI,eAAgB,CAAC,YAAa,aAR9B,IAYF,gBAAC,KAAD,CACE/U,GAAI,CACFQ,QAAS,CAAC,OAAQ,QAClB0M,cAAe,SAEfrM,oBAAqB,CAAC,OACtBT,MAAO,OACPH,SAAU,WACVI,OAAQ,OACR0W,GAAI,CAAC,EAAG,IACR5H,SAAU,WAGZ,gBAAC,KAAD,CACEnP,GAAI,CACFC,SAAU,WACVE,MAAO,CAAC,GAAI,IACZD,IAAK,CAAC,GAAI,IACVU,MAAO,UACPN,OAAQ,KAGV,gBAAC,UAAD,CAAaS,IAAI,eAEnB,gBAAC,KAAD,CACEf,GAAI,CACFC,SAAU,WACVgN,KAAM,EACN9M,MAAO,EACPD,IAAK,GACLU,MAAO,UACPoB,cAAe,cAGjB,gBAAC,KAAD,CAAKhC,GAAI,CAAEuD,GAAI,GAAImD,SAAU,QAASsO,EAAG,SACvC,gBAAC,KAAD,CACEvU,UAAU,QACVT,GAAI,CACFC,SAAU,WACVyB,OAAQ,oBACRtB,MAAO,OACPuB,GAAI,GACJT,GAAI,qBACJiC,GAAI,GACJoD,GAAI,GACJ4I,SAAU,OACV3O,QAAS,OACTyU,WAAY,YACZ,UAAW,CACT/T,GAAI,sBAIR,gBAAC,KAAD,CACET,UAAU,SACVT,GAAI,CACFY,MAAO,UACPgB,SAAU,CAAC,OAAQ,QACnBH,WAAY,WACZ0C,GAAI,EACJ/D,MAAO,SAGT,gBAAC,KAAD,CAAKJ,GAAI,CAAEuB,UAAW,WAAaiD,OAK3C,gBAAC,KAAD,CACExE,GAAI,CACFQ,QAAS,OACTK,oBACGoV,GAAaS,EAAiC,UAArB,CAAC,MAAO,WACpC9V,MAAO,QACPR,MAAO,OACPH,SAAU,WACVC,IAAK,CAAC,MAAO,OACbiN,GAAI,CAAC,OAAQ,GACbH,OAAQ,EACRzL,UAAW,WAGb,gBAAC,KAAD,KACGmV,GAAaC,EACZ,gBAAC,KAAD,CAAMrH,KAAK,aAAatP,GAAI,CAAE+B,eAAgB,SAC5C,gBAAC,KAAD,CAAKtB,UAAU,QAAQT,GAAIU,GACzB,gBAAC,KAAD,CACE6M,WAAS,EACTC,KAAI,YACJC,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,YAOhB,gBAAC,KAAD,CAAK7N,GAAI,CAAEC,SAAU,aAClBuW,GACC,gBAAC,KAAD,CACE/V,UAAU,QACVT,GAAE,OACGU,GADH,IAEAkB,SAAU,CAAC,OAAQ,QACnB3B,SAAU,WACV+M,OAAQ,GACRxL,UAAW,IACXyL,KAAM,EACN9M,MAAO,EACPwG,GAAI,OACJlF,WAAY,WACZrB,MAAO,CAAC,IAAK,KACbiE,WAAY,OACZnD,GAAI,wBAdR,+CAoBF,gBAAC,KAAD,CACET,UAAU,aACVT,GAAE,OACGU,GADH,IAEAY,OAAQ,cACR,UAAW,CACTI,OAAQ,iBACRd,MAAO,UAGXoW,YAAa,WACXP,GAAS,IAEXQ,aAAc,WACZR,GAAS,KAGX,gBAAC,KAAD,CACElJ,WAAS,EACTC,KAAI,YACJC,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,kBA6F1BnN,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVuB,UAAW,OACXZ,MAAO,UACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,qBACJS,GAAI,OACJ4B,GAAI,GACJoD,GAAI,OACJvG,MAAO,CAAC,MAAO,KACfoD,SAAU,CAAC,QAAS,SACpBlC,OAAQ,UACRM,SAAU,CAAC,OAAQ,QACnBC,WAAY,OACZrB,QAAS,OACTM,WAAY,SACZ2C,eAAgB,SAChB3B,UAAW,OACXwB,WAAY,kDACZvB,eAAgB,OAChBC,cAAe,YACfiT,WAAY,YACZ,UAAW,CACT/T,GAAI,wBAIR,a,+oEC3WA,IAAMgW,EAAkB,GAGlBC,EAAc,CAClB,uEACA,gEACA,2EACA,gEACA,yDACA,mEACA,+DACA,qDACA,yEACA,wDACA,uEACA,wDACA,+DACA,uEACA,yDACA,sEACA,gEACA,+DACA,wDACA,4DACA,mFACA,2DACA,yEACA,8EACA,0GACA,sDACA,iFACA,0EACA,4DACA,iEACA,0DACA,wDACA,sDACA,8DACA,gEACA,qDACA,8DAGWC,EAAW,SAACna,GAAW,IAAD,EAC3BC,EAAmBD,EAAMoa,OACzBlP,EAASlL,EAAMmL,QACfkP,EAASra,EAAM+Y,QACfuB,EAASta,EAAMsa,OAAS/O,KAAKC,MAAMxL,EAAMsa,QAAU,GACnD7O,EAAOzL,EAAMyL,KACb8O,EAAYva,EAAMua,UAClBC,EAAexa,EAAMya,cACrB7B,EAAO5Y,EAAM4Y,KAAOrN,KAAKC,MAAMxL,EAAM4Y,MAAQ,KAC7CU,EAAc,IAAItM,KAAJ,MAAS4L,OAAT,EAASA,EAAM8B,aAK/B3H,GAFc,IAAI/F,KAEJ,MACZ2N,EAAY,MAAGL,OAAH,EAAGA,EAAQnN,MAAK,SAACC,EAAGC,GAAJ,OAAWD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,KAC1Dyb,EAAS,MAAGD,OAAH,EAAGA,EAAe,IAC7BC,GAAa,MAACA,GAAAA,EAAWC,0BAC3B9H,EAAc6H,GAGhB,IAIME,EAAgBN,EAClB,0GACA,0GAGEO,EAAWP,EACb,2DACA,2DACEQ,EAAeR,EACjB,uFACA,uFAKJ3T,QAAQC,IAAR,oBAAgCgU,GAChCjU,QAAQC,IAAR,YAAwBiU,GAIxB,IAAME,EAAgB,MAAGX,OAAH,EAAGA,EAAQxN,QAAO,SAACyG,GAAD,OAAWA,EAAMS,WAIzD,GAFAnN,QAAQC,IAAI,WAEP7G,EAAkB,OAAO,KAC9B,IAAKiL,EAAQ,OAAO,KAEpB,IAuBIgQ,EAvBJ,KAAkC3a,EAAAA,EAAAA,UAAS,MAA3C,GAAOO,EAAP,KAAkBC,EAAlB,KACA,KAA8BR,EAAAA,EAAAA,WAAS,GAAvC,GAAOK,EAAP,KAAgBC,EAAhB,KACA,KAA0CN,EAAAA,EAAAA,WAAS,GAAnD,GAAO6S,EAAP,KAAsBzH,EAAtB,KACA,KAAsCpL,EAAAA,EAAAA,UAAS,IAA/C,GAAO8S,EAAP,KAAoBC,EAApB,KACA,KAA+B/S,EAAAA,EAAAA,UAAS,GAAxC,GAAOkF,EAAP,KAAiB0V,EAAjB,KACA,KAA0B5a,EAAAA,EAAAA,UAASwS,GAAnC,GAAOQ,EAAP,KAAcC,EAAd,KACA,KAAyCjT,EAAAA,EAAAA,UAAS0a,GAAlD,GAAOG,GAAP,KAAsBC,GAAtB,KACA,MAAoC9a,EAAAA,EAAAA,UAAS,MAA7C,GAAO+a,GAAP,MAAmBC,GAAnB,MACA,MAA4Bhb,EAAAA,EAAAA,UAAS,MAArC,GAAOkT,GAAP,MAAeC,GAAf,MACA,MAA8BnT,EAAAA,EAAAA,UAAS,MAAvC,GAAOoT,GAAP,MAAgBC,GAAhB,MACA,MAAsCrT,EAAAA,EAAAA,UAASga,GAA/C,GAAOiB,GAAP,MAAoBC,GAApB,MAEMC,GAAmB,MAAGN,QAAH,EAAGA,GAAejO,MAAK,SAACC,EAAGC,GAAJ,OAC9CD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,KAEf4U,GACJR,KAAS,MAACA,GAAAA,EAAOsH,2BAAjB,MAA4CtH,OAA5C,EAA4CA,EAAOS,SAE/C2H,GAAoB,MAALpI,GAAAA,EAAOqI,WAAa,IAAI5O,KAAJ,MAASuG,OAAT,EAASA,EAAOqI,YAAc,KACjEC,GAAe,MAAGF,QAAH,EAAGA,GAAcG,YACxB,MAAZH,QAAA,EAAAA,GAAcI,cAAe,IAK/Bb,EAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,IAQnD,IAAM/F,GAhEa,EAgEL1P,EACRuW,GAAevW,EAAAA,UAA8B0P,GAApC,QAEfvS,EAAAA,EAAAA,YAAU,WAWR,GAVA2Y,GAAcrB,EAAYlR,KAAKC,MAAMD,KAAKE,SAAWgR,EAAY9T,UAG/DmN,IACCA,EAAMsH,yBACY,UAAnBtH,EAAMmB,WAENzK,WAAWwK,GAAS,KAGlBlB,GAASA,EAAMoB,UAAW,CAAC,IAAD,EACtBC,GAAY,SAAArB,EAAMoB,gBAAN,IAAiBE,MAAM,QAAS,GAClDnB,GAAU,CACR,+DADO,OAEJkB,OAGN,IAEH,IAIMqH,GAAgB,6BAAG,6FACvBpb,GAAW,GADY,kBAGF4N,IAAAA,KACjB,oBACA,CACE8E,MAAO,CACL9N,SAAUA,EACV0F,QAASD,EACTiK,MAAOA,GACP+G,MAAM,UAAWF,GACjBG,WAAY,OACZpD,QAASsB,EACT9X,QAAO,MAAEzB,OAAF,EAAEA,EAAWyB,UAGxB,CACEoM,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBApBO,OAGfC,EAHe,OAyBrBhO,GAAW,GAEX,MAAIgO,GAAJ,SAAIA,EAAMC,OAAN,EAAY3P,IACdqU,EAAQ,MAAC3E,OAAD,EAACA,EAAMC,MACf2M,GAAeD,GAAc/V,GAC7BiO,GAAU,OAEVA,GAAS,MAAC7E,OAAD,EAACA,EAAMC,MAhCG,gDAmCrBjI,QAAQ4D,MAAR,MAnCqB,yDAAH,qDAuChB2R,GAAiB,6BAAG,WAAO9c,GAAP,sFACxBuB,GAAW,GADa,kBAGH4N,IAAAA,OAAA,WAAwBnP,EAAEH,GAAM,CACjDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBAPU,OAGhBC,EAHgB,OAWtBhO,GAAW,GAEgB,IAAnB,MAAJgO,GAAA,SAAAA,EAAMC,WAAN,IAAYK,UACdqE,EAAS,MACH,OAAN,EAAA3R,SAAA,WAAQkT,WAAR,EAAkBsH,UAElB3I,GAAU,OAAC7E,GAAD,SAACA,EAAMC,WAAP,EAAC,EAAYrE,QAjBH,gDAoBtB5D,QAAQ4D,MAAR,MApBsB,yDAAH,sDAvJU,SA+KlBgK,KA/KkB,oEA+KjC,oHACqBhG,IAAAA,IAAA,WAAqB8E,EAAMpU,GAAM,CAClDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBALd,OACQC,EADR,OASQiG,EATR,MASoBjG,OATpB,EASoBA,EAAMC,KAEJvD,KAAKyD,UAAUuE,IAAUhI,KAAKyD,UAAU8F,KAG1DtB,EAASsB,GAELA,EAAUd,SAAWT,EAAMS,UACvBgD,EADgC,OAEjCzD,GAFiC,IAGpCS,QAASc,EAAUd,QACnBK,cAAe,IAAIrH,OAErBqO,GAAgB,GAAD,OAAKD,GAAL,CAAoBpE,KACnCpD,GACE,0KAIAkB,EAAU+F,yBAA2BtH,EAAMsH,0BACvClJ,EAAQyJ,GAAckB,WAC1B,SAAC/I,GAAD,OAAWA,EAAMpU,IAAM2V,EAAU3V,MAE/Bod,EAJkE,UAIlDnB,IAChBzJ,GAAS,EACX4K,EAAU5K,GAASmD,EAEnByH,EAAS,UAAOnB,GAAP,CAAsBtG,IAGjCuG,GAAe,SAACkB,QAAD,EAAC,EAAWpP,MAAK,SAACC,EAAGC,GAAJ,OAAWD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,MAE9DyU,GACE,uFAIAkB,EAAUH,YACNC,GAAY,SAAAE,EAAUH,gBAAV,IAAqBE,MAAM,QAAS,GACtDjB,GAAW,IACXF,GAAU,CACR,+DADO,OAEJkB,MAKJE,EAAU+F,0BACP/H,EAAQgC,EAAUd,QAAU,IAAQ,IAC1C/J,WAAWwK,GAAS3B,IA1DxB,2CA/KiC,yBA8YjC,OACE,gBAAC,IAAD,CAAenD,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,GAAI,CACFkB,GAAI,UACJd,MAAO,OACPoB,UAAW,QACX2L,GAAI,CAAC,KACLvM,MAAO,YAGT,gBAAC,KAAD,CACEG,IAAK8L,EACL7M,GAAI,CACFI,MAAO,CAAC,QAAS,SACjBH,SAAU,QACV+M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,KAGZ,gBAAC,KAAD,CACEN,GAAI,CACFkB,GAAI,cACJd,MAAO,CAAC,MAAO,SACfsG,SAAU,OACVzG,SAAU,WACVO,QAAS,OACT0M,cAAe,SACf+E,GAAI,OACJ/R,IAAK,OACLC,MAAO,CAAC,GAAI,IACZgB,aAAc,OACdC,EAAG,OACHQ,SAAU,CAAC,OAAQ,QACnBuL,GAAI,OACJ7M,OAAQ,KAGV,gBAAC,UAAD,CACEpD,iBAAkBA,EAClBI,cA3UY,SAAC+P,GACrBrP,EAAaqP,IA2UL9P,cAAeqL,EACfxL,OAAQ,CAAE8C,IAAK,EAAGqG,GAAI,GACtBlJ,YAAa,CAAE6C,IAAK,UAvBxB,MAyBGwQ,QAzBH,EAyBGA,GAAQzU,KAAI,SAACyL,GAAD,OACX,gBAAC,KAAD,CACEjH,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,EACJoC,GAAI,KAGLmB,MAIJkJ,IACC,gBAAC,KAAD,KACG,IACD,gBAAC,KAAD,CACEnQ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBmD,GAAI,KAGL6L,IAEiB,aAAnBJ,EAAMmB,WACL,gBAAC,KAAD,CACElR,UAAU,SACVT,GAAE,OAAOU,GAAP,IAAqByD,GAAI,OAAQoC,GAAI,EAAGrG,IAAK,IAC/CK,QAAS,mCAAMzB,SAAN,SAAM,EAAQkT,eAAd,EAAM,EAAkBsH,WAEhC,eAMRtI,KAAiBJ,IAChB,gCACE,gBAAC,KAAD,CACEnQ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,GACJoC,GAAI,KAPR,sJAYA,gBAAC,UAAD,QAIFiK,IAAUI,KAAYI,IACtB,gBAAC,KAAD,KACGjT,GACC,gBAAC,KAAD,KACG0a,IAAeA,GAAc,EAC5B,gBAAC,KAAD,CAAKzY,GAAI,CAAEuG,GAAI,KACb,gBAAC,KAAD,CACE9F,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,UANzB,aASgBoU,GAThB,8CAYA,gBAAC,UAAD,CAAagB,UAAU,gBAEvB,gBAAC,KAAD,CACEhZ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,UANzB,yBAWA,gBAAC,KAAD,CACErE,GAAI,CACF0B,OAAQ,OACRR,GAAI,QACJC,aAAc,OACdlB,SAAU,WACVyG,SAAU,QACVpG,OAAQ,MACRsB,SAAU,OACVsM,QAAS,kBACT5K,WACE,kDACF3B,GAAI,MACJ4B,GAAI,OACJgD,GAAI,OACJhF,UAAW,UAEbmD,MAAOhC,EACPsC,SAAU,SAACxI,GAAD,OAAO4b,EAAW5b,EAAEyI,OAAOP,SAlBvC,SAoBGyT,QApBH,EAoBG,EAAclc,KAAI,SAACyd,GAAD,OACjB,8BAASA,OAGb,gBAAC,KAAD,CACEjZ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBmD,GAAI,SAGLkU,IAEH,gBAAC,KAAD,CACExY,UAAU,SACVT,GAAIU,EACJH,QAAS1C,EAAU,KAAOqb,IAEzBrb,EAAU,qBAAuB,WAItC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACE4C,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,QACrBF,GAAI,KAPR,mDAYA,gBAAC,KAAD,CACE1D,UAAU,SACVT,GAAE,OAAOU,GAAP,IAAqByD,GAAI,GAAIoC,GAAI,EAAGrG,IAAK,IAC3CK,QAAS,kBACPiY,GACErB,EACElR,KAAKC,MAAMD,KAAKE,SAAWgR,EAAY9T,YAK5C,UAEH,gBAAC,KAAD,CACEtC,IAAKwX,GACLvY,GAAI,CACFI,MAAO,CAAC,QACRH,SAAU,WACVK,OAAQ,EACRoG,SAAU,QACViT,UAAW,QACX7M,UAAW,UACXC,eAAgB,aAU/ByD,GAAS,CAAC,KAAM,UAAUtN,SAASsN,EAAMmB,YACxC,gBAAC,KAAD,CAAK3R,GAAI,CAAEuG,GAAI,KACb,gBAAC,UAAD,CAAakT,UAAU,gBAEvB,gBAAC,KAAD,CACEhZ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAIiK,EAAMoB,UAAY,EAAI,KAN9B,2BAS8BpB,EAAM9N,SATpC,YASwDkX,OACpDpJ,EAAM4B,OAVV,YAWe5B,EAAM2I,OAepBpb,IACEsS,KACCG,EAAM6B,eAAiB7B,EAAMoB,YAC7B,gBAAC,KAAD,CACEnR,UAAU,SACVT,GAAIU,EACJH,QAAS1C,EAAU,KAtab,WACtBC,GAAW,GACXyS,EAAe,mBAEf,IAAM+B,EAAiB,6BAAG,wJACGvU,EAAUwB,aADb,cACpBgT,EADoB,OAEpBsH,EAAgBC,OAAOtJ,EAAM4B,OAI7BW,EAAa,CACf,CACEvT,QALkBuY,EAMlB/E,OAAQ6G,GAEV,CACEra,QAREgT,EAAaD,EASfS,OAAQ,IACR+G,aAAY,MAAEvJ,GAAF,SAAEA,EAAOjI,WAAT,EAAE,EAAatM,KAAI,SAACuG,GAC9B,MAAO,CACLwX,UAAWxX,EACXE,SAAU,IACVsV,SAAUA,EACVC,aAAcA,QAMlBgC,EAAW,GACXC,EAAgB,GAEf,MAAL1J,GAAA,SAAAA,EAAOjI,OAAP,EAAa3F,SAAQ,SAACJ,EAAKoM,GACzB,IAAIuL,EAAY3R,KAAKC,MAAMD,KAAKyD,UAAUiL,EAAgB1U,KAC1D5F,OAAOD,KAAKwd,EAAUC,YAAYxX,SAAQ,SAACyX,GACzCF,EAAUC,WAAWC,GACnB,iEAEJF,EAAUtH,UACR,8DACFsH,EAAUrH,QACR,8DACFmH,EAASzX,GAAO0U,EAAgB1U,GAChC0X,EAAc1X,GAAO2X,KAGnB3G,EAAW,CACb,YACGwE,GAAWiC,EADd,IAKEvH,EAAgB,CAClB,YACGsF,GAAWkC,EADd,IAKII,EAAevc,EAAUwc,aAAa/G,GAExCN,EAAQ,KACRC,EAAQ,KACRC,EAAc,KA1DM,oBA6DRrV,EAAUsV,cA7DF,eA6DtBH,EA7DsB,iBA8DRnV,EAAUuV,eA9DF,eA8DtBH,EA9DsB,iBA+DFpV,EAAUqV,YAAY,CACxCG,eAAgBhB,EAChBQ,WAAYA,EACZS,SAAUd,EACV4H,aAAcA,EACd7G,aAAa,EACbC,SAAUR,EACVS,WAAgB,OAAL,EAAAR,QAAA,IAAO/W,KAAM,EACxBwX,IAAK,KACL4G,UAAU,IAxEU,QA+DtBpH,EA/DsB,0DA4EJ,qBADdS,EA3EkB,kBA2EL,KAAKrP,WAEpBqP,EACE,qEACJ/P,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,GAAU,CAAC,6CAA8CkD,IAjFnC,eAoFpBC,EAAe,KApFK,oBAsFD/V,EAAUgW,OAAOX,GAAa,GAtF7B,QAsFtBU,EAtFsB,OAuFtBvD,EAAe,qBAvFO,mDA0FtBzS,GAAW,GA1FW,YA6FpBgW,EA7FoB,kCA+FhBhI,EAAO,KA/FS,UAiGLJ,IAAAA,KAAA,mBACQ8E,EAAMpU,GACzB,CACEgX,YAAAA,EACAf,cAAeyB,EACfE,YAAaxB,GAEf,CACE5G,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBA5GI,QAiGlBC,EAjGkB,+BAiHlBA,EAAO,CAAEC,KAAM,CAAE6E,SAAS,IAjHR,QAoHpB,SAAI9E,IAAJ,SAAI,EAAMC,OAAN,EAAY6E,SACdC,GACE,uGAEF/S,GAAW,GACX6S,GAAU,IACJsD,EANiB,OAOlBzD,GAPkB,IAQrBmB,UAAW,YACXU,cAAeyB,IAEjBrD,EAASwD,GAGT/M,WAAWwK,GAAS,OAEpB5N,QAAQC,IAAR,SAAY+H,QAAZ,EAAY,EAAMC,MACZmI,GAAoB,OAAJ,EAAApI,IAAA,WAAMC,WAAN,IAAY2E,SAAU,GAC5C5S,GAAW,GACX6S,GAAU,CACR,mJADO,OAEJuD,KAzIa,mDA6IpBpQ,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,GAAU,CACR,sFADQ,OA/IU,gCAqJtB7M,QAAQ4D,MAAMoM,GACdhW,GAAW,GAtJW,2EAAH,qDAyJlBD,GAASyU,MA2QGzU,EACGyS,EACAE,EAAMoB,UACN,aACA,WAGT,IAAI3H,KAAS6O,KAAoBtI,EAAMS,SACtC,gBAAC,KAAD,CACExQ,UAAU,SACVT,GAAIU,EACJH,QAAS,WAEP8Y,GAAkB7I,KALtB,YAcQ,MAAb6H,QAAA,EAAAA,GAAehV,QAAS,GACvB,gBAAC,KAAD,CACErD,GAAI,CAAEkB,GAAI,QAASE,EAAG,OAAQD,aAAc,OAAQoF,GAAI,SAExD,gBAAC,KAAD,CACE9F,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBwL,GAAI,IANR,2CAHF,MAcGuL,QAdH,EAcGA,GAAqB1c,KAAI,SAACwe,EAAiB7L,GAAW,IAAD,MAC9CyC,EAAc,IAAIpH,KAAKwQ,EAAgBnJ,eAGvCoJ,EAFkB,IAAIzQ,KAAKwQ,EAAgBnJ,eAEVqJ,SACrCtJ,EAAYuJ,WAAa,GAErBC,EACJ,IAAI5Q,KAASyQ,GACbD,EAAgBxJ,UACfwJ,EAAgB3C,wBAEbvG,EAAqBF,EAAYG,qBAAlB,MAA4CH,EAAYI,qBACzEqJ,EAAWL,EAAgB3C,wBAC3B,YACA,UAEJ,OADI+C,IAAcC,EAAW,UAE3B,gBAAC,KAAD,CAAK/S,IAAG,MAAE0S,OAAF,EAAEA,EAAiBre,IACzB,gBAAC,KAAD,CACEqE,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAa,GAATqI,EAAa,GAAK,KAL1B,aAQgB6L,EAAgB/X,UAEhC,gBAAC,KAAD,CACEjC,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KALR,UAQaqT,OAAOa,EAAgBrI,QAEvB,aAAZ0I,GACC,gBAAC,KAAD,CACEra,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KALR,SAQYkU,EAAgBlS,KAAKwS,KAAK,OAIxC,gBAAC,KAAD,CACEta,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,WAPd,UAUasL,EAAgBtB,OAE7B,gBAAC,KAAD,CACE1Y,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,MAaSwZ,EACM,UAAZA,GACC,sCAEE,qBACEva,QAAS,WAAO,IAAD,EAEL,OAAN,EAAAzB,SAAA,EAAQqN,QACN,0KAEFrN,OAAOkT,WAEPlT,OAAOkT,SAAS1C,KAAhB,mBAA0CmL,EAAgBre,MARhE,kBAFF,4EAoBJ,gBAAC,KAAD,CACEqE,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,YAcE,qBACEgO,KAAI,sCAAwCmL,EAAgBxJ,QAC5DhM,OAAO,UAENwV,EAAgBxJ,UAGrB,gBAAC,KAAD,CACExQ,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,iBAaoBiQ,OAK1B,gBAAC,KAAD,CACE9Q,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KANR,0BAcN,gBAAC,KAAD,CACEvG,GAAI,CACFC,SAAU,QACV+M,OAAQ,GACRC,KAAM,CAAC,SAAU,KACjB9M,MAAO,EACPG,OAAQ,EACRoG,SAAU,QACVC,GAAI,SAGN,gBAAC,KAAD,CACE3G,GAAI,CACFa,oBAAqB,oBACrBC,WAAY,WAGd,6BACA,gBAAC,KAAD,CAAWd,GAAI,CAAEY,MAAO,QAASa,WAAY,aAC1C,2BAEH,gBAAC,KAAD,CACEV,IAAKoV,EACLnW,GAAI,CACFI,MAAO,CAAC,WAGZ,kCAQNM,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVC,IAAK,GACLU,MAAO,qBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,UACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAIjB,a,iqECr7BO,IAAM+Y,EAAmB,SAAC/d,GAC/B,IAAMC,EAAmBD,EAAMoa,OACzBlP,EAASlL,EAAMmL,QACfkP,EAASra,EAAM+Y,QACfuB,EAASta,EAAMsa,OAAS/O,KAAKC,MAAMxL,EAAMsa,QAAU,GACnD7O,EAAOzL,EAAMyL,KACb8O,EAAYva,EAAMua,UAIpBxH,GAHS/S,EAAM4Y,MAAOrN,KAAKC,MAAMxL,EAAM4Y,MAGzB,MACZ+B,EAAY,MAAGL,OAAH,EAAGA,EAAQnN,MAAK,SAACC,EAAGC,GAAJ,OAAWD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,KAC1Dyb,EAAS,MAAGD,OAAH,EAAGA,EAAe,IAC7BC,GAAa,MAACA,GAAAA,EAAWC,0BAC3B9H,EAAc6H,GAGhB,IAAMK,EAAgB,MAAGX,OAAH,EAAGA,EAAQxN,QAAO,SAACyG,GAAD,OAAWA,EAAMS,WAmBnD+G,EAAW,2DAMjB,GAFAlU,QAAQC,IAAR,YAAwBiU,IAEnB9a,EAAkB,OAAO,KAC9B,IAAKiL,EAAQ,OAAO,KAEpB,SAAkC3K,EAAAA,EAAAA,UAAS,MAA3C,GAAOO,EAAP,KAAkBC,EAAlB,KACA,KAA8BR,EAAAA,EAAAA,WAAS,GAAvC,GAAOK,EAAP,KAAgBC,EAAhB,KACA,KAA0CN,EAAAA,EAAAA,WAAS,GAAnD,GAAO6S,EAAP,KAAsBzH,EAAtB,KACA,KAAsCpL,EAAAA,EAAAA,UAAS,IAA/C,GAAO8S,EAAP,KAAoBC,EAApB,KACA,KAA+B/S,EAAAA,EAAAA,UAAS,IAAxC,GAAOkF,EAAP,KAAiB0V,EAAjB,KACA,KAA0B5a,EAAAA,EAAAA,UAASwS,GAAnC,GAAOQ,EAAP,KAAcC,EAAd,KACA,KAAyCjT,EAAAA,EAAAA,UAAS0a,GAAlD,GAAOG,EAAP,KAAsBC,EAAtB,KACA,KAAoC9a,EAAAA,EAAAA,UAAS,MAA7C,GAAO+a,EAAP,KACA,GADA,KACA,GAA4B/a,EAAAA,EAAAA,UAAS,MAArC,IAAOkT,EAAP,KAAeC,EAAf,KACA,KAA8BnT,EAAAA,EAAAA,UAAS,MAAvC,GAAOoT,GAAP,KAAgBC,GAAhB,KACA,MAAsCrT,EAAAA,EAAAA,UAASga,GAA/C,GAAOiB,GAAP,MAAoBC,GAApB,MAEMC,GAAmB,MAAGN,OAAH,EAAGA,EAAejO,MAAK,SAACC,EAAGC,GAAJ,OAC9CD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,KAKfwc,IAFJpI,KAAS,MAACA,GAAAA,EAAOsH,2BAAjB,MAA4CtH,GAAAA,EAAOS,SAE3B,MAALT,GAAAA,EAAOqI,WAAa,IAAI5O,KAAJ,MAASuG,OAAT,EAASA,EAAOqI,YAAc,MACjEC,GAAe,MAAGF,QAAH,EAAGA,GAAcG,YACxB,MAAZH,QAAA,EAAAA,GAAcI,cAAe,IAG3Bb,GAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGzEc,GAAevW,EAAAA,YAErB7C,EAAAA,EAAAA,YAAU,WASR,GAPE2Q,IACCA,EAAMsH,yBACY,UAAnBtH,EAAMmB,WAENzK,WAAWwK,GAAS,KAGlBlB,GAASA,EAAMoB,UAAW,CAAC,IAAD,EACtBC,GAAY,SAAArB,EAAMoB,gBAAN,IAAiBE,MAAM,QAAS,GAClDnB,EAAU,CACR,+DADO,OAEJkB,OAGN,IAEH,IAIMqH,GAAgB,6BAAG,6FACvBpb,GAAW,GADY,kBAGF4N,IAAAA,KACjB,6BACA,CACE8E,MAAO,CACL9N,SAAUA,EACV0F,QAASD,EACTiK,MAlCI,EAmCJ+G,MAAM,WACNC,WAAY,UACZpD,QAASsB,EACT9X,QAAO,MAAEzB,OAAF,EAAEA,EAAWyB,UAGxB,CACEoM,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBApBO,OAGfC,EAHe,OAyBrBhO,GAAW,GAEX,MAAIgO,GAAJ,SAAIA,EAAMC,OAAN,EAAY3P,IACdqU,EAAQ,MAAC3E,OAAD,EAACA,EAAMC,MACf2M,GAAeD,GAAc/V,GAC7BiO,EAAU,OAEVA,EAAS,MAAC7E,OAAD,EAACA,EAAMC,MAhCG,gDAmCrBjI,QAAQ4D,MAAR,MAnCqB,yDAAH,qDAuChB2R,GAAiB,6BAAG,WAAO9c,GAAP,sFACxBuB,GAAW,GADa,kBAGH4N,IAAAA,OAAA,WAAwBnP,EAAEH,GAAM,CACjDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBAPU,OAGhBC,EAHgB,OAWtBhO,GAAW,GAEgB,IAAnB,MAAJgO,GAAA,SAAAA,EAAMC,WAAN,IAAYK,UACdqE,EAAS,MACH,OAAN,EAAA3R,SAAA,WAAQkT,WAAR,EAAkBsH,UAElB3I,EAAU,OAAC7E,GAAD,SAACA,EAAMC,WAAP,EAAC,EAAYrE,QAjBH,gDAoBtB5D,QAAQ4D,MAAR,MApBsB,yDAAH,sDAtIkB,SA8J1BgK,KA9J0B,oEA8JzC,oHACqBhG,IAAAA,IAAA,WAAqB8E,EAAMpU,GAAM,CAClDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBALd,OACQC,EADR,OASQiG,EATR,MASoBjG,OATpB,EASoBA,EAAMC,KAEJvD,KAAKyD,UAAUuE,IAAUhI,KAAKyD,UAAU8F,KAG1DtB,EAASsB,GAELA,EAAUd,SAAWT,EAAMS,UACvBgD,EADgC,OAEjCzD,GAFiC,IAGpCS,QAASc,EAAUd,QACnBK,cAAe,IAAIrH,OAErBqO,EAAgB,GAAD,OAAKD,EAAL,CAAoBpE,KACnCpD,GACE,0KAIAkB,EAAU+F,yBAA2BtH,EAAMsH,0BACvClJ,EAAQyJ,EAAckB,WAC1B,SAAC/I,GAAD,OAAWA,EAAMpU,IAAM2V,EAAU3V,MAE/Bod,EAJkE,UAIlDnB,GAChBzJ,GAAS,EACX4K,EAAU5K,GAASmD,EAEnByH,EAAS,UAAOnB,EAAP,CAAsBtG,IAGjCuG,EAAe,SAACkB,QAAD,EAAC,EAAWpP,MAAK,SAACC,EAAGC,GAAJ,OAAWD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,MAE9DyU,GACE,uFAIAkB,EAAUH,YACNC,GAAY,SAAAE,EAAUH,gBAAV,IAAqBE,MAAM,QAAS,GACtDjB,GAAW,IACXF,EAAU,CACR,+DADO,OAEJkB,MAKJE,EAAU+F,0BACP/H,EAAQgC,EAAUd,QAAU,IAAQ,IAC1C/J,WAAWwK,GAAS3B,IA1DxB,2CA9JyC,yBA2ZzC,OAFAjM,QAAQC,IAAI,QAASyM,GAGnB,gBAAC,IAAD,CAAe5D,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,GAAI,CACFkB,GAAI,UACJd,MAAO,OACPoB,UAAW,QACX2L,GAAI,CAAC,KACLvM,MAAO,YAGT,gBAAC,KAAD,CACEG,IAAK8L,EACL7M,GAAI,CACFI,MAAO,CAAC,QAAS,SACjBH,SAAU,QACV+M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,KAGZ,gBAAC,KAAD,CACEN,GAAI,CACFkB,GAAI,cACJd,MAAO,CAAC,MAAO,SACfsG,SAAU,OACVzG,SAAU,WACVO,QAAS,OACT0M,cAAe,SACf+E,GAAI,OACJ/R,IAAK,OACLC,MAAO,CAAC,GAAI,IACZgB,aAAc,OACdC,EAAG,OACHQ,SAAU,CAAC,OAAQ,QACnBuL,GAAI,OACJ7M,OAAQ,KAGV,gBAAC,UAAD,CACEpD,iBAAkBA,EAClBI,cAzWY,SAAC+P,GACrBrP,EAAaqP,IAyWL9P,cAAeqL,EACfxL,OAAQ,CAAE8C,IAAK,EAAGqG,GAAI,GACtBlJ,YAAa,CAAE6C,IAAK,UAvBxB,MAyBGwQ,OAzBH,EAyBGA,EAAQzU,KAAI,SAACyL,GAAD,OACX,gBAAC,KAAD,CACEjH,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,EACJoC,GAAI,KAGLmB,MAIJkJ,IACC,gBAAC,KAAD,KACG,IACD,gBAAC,KAAD,CACEnQ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBmD,GAAI,KAGL6L,IAEiB,aAAnBJ,EAAMmB,WACL,gBAAC,KAAD,CACElR,UAAU,SACVT,GAAE,OAAOU,GAAP,IAAqByD,GAAI,OAAQoC,GAAI,EAAGrG,IAAK,IAC/CK,QAAS,mCAAMzB,SAAN,SAAM,EAAQkT,eAAd,EAAM,EAAkBsH,WAEhC,gBAMP9I,IAAUI,IACV,gBAAC,KAAD,KACG7S,GACC,gBAAC,KAAD,KACG0a,IAAeA,GAAc,EAC5B,gBAAC,KAAD,CAAKzY,GAAI,CAAEuG,GAAI,KACb,gBAAC,KAAD,CACE9F,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,UANzB,aASgBoU,GAThB,uBAYA,gBAAC,UAAD,CAAagB,UAAU,gBAEvB,gBAAC,KAAD,CACEhZ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,UANzB,yBAWA,gBAAC,KAAD,CACErE,GAAI,CACF0B,OAAQ,OACRR,GAAI,QACJC,aAAc,OACdlB,SAAU,WACVyG,SAAU,QACVpG,OAAQ,MACRsB,SAAU,OACVsM,QAAS,kBACT5K,WACE,kDACF3B,GAAI,MACJ4B,GAAI,OACJgD,GAAI,OACJhF,UAAW,UAEbmD,MAAOhC,EACPsC,SAAU,SAACxI,GAAD,OAAO4b,EAAW5b,EAAEyI,OAAOP,SAlBvC,MAoBGyT,QApBH,EAoBGA,GAAclc,KAAI,SAACyd,GAAD,OACjB,8BAASA,OAGb,gBAAC,KAAD,CACEjZ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBmD,GAAI,SAGLkU,IAEH,gBAAC,KAAD,CACExY,UAAU,SACVT,GAAIU,EACJH,QAAS1C,EAAU,KAAOqb,IAEzBrb,EAAU,qBAAuB,WAItC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACE4C,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,QACrBF,GAAI,KAPR,mDAaA,gBAAC,KAAD,CACEpD,IAAKwX,EACLvY,GAAI,CACFI,MAAO,CAAC,QACRH,SAAU,WACVK,OAAQ,EACRoG,SAAU,QACViT,UAAW,QACX7M,UAAW,UACXC,eAAgB,aAU/ByD,GAASzS,IAAcyS,EAAMS,UAAYL,IACxC,gBAAC,KAAD,CAAK5Q,GAAI,CAAEuG,GAAI,KACb,gBAAC,UAAD,CAAakT,UAAU,gBAEvB,gBAAC,KAAD,CACEhZ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAIiK,EAAMoB,UAAY,EAAI,KAN9B,2BAS8BpB,EAAM9N,SATpC,YASwDkX,OACpDpJ,EAAM4B,OAVV,YAWe5B,EAAM2I,OAGpBpb,IACEsS,KACCG,EAAM6B,eAAiB7B,EAAMoB,YAC7B,gBAAC,KAAD,CACEnR,UAAU,SACVT,GAAIU,EACJH,QAAS1C,EAAU,KA1Zb,WACtBC,GAAW,GACXyS,EAAe,mBAEf,IAAM+B,EAAiB,6BAAG,oJACDvU,EAAUwB,aADT,cACpBiT,EADoB,OAItB,0GAWEO,EAAa,CACf,CACEvT,QAbF,0GAcEwT,OAAQ,IACR+G,aAAY,MAAEvJ,GAAF,SAAEA,EAAOjI,WAAT,EAAE,EAAatM,KAAI,SAACuG,GAC9B,MAAO,CACLwX,UAAWxX,EACXE,SAAU,IACVsV,SAAUA,EACVC,aAlNV,6FAwNMgC,EAAW,GACXC,EAAgB,GAEf,MAAL1J,GAAA,SAAAA,EAAOjI,OAAP,EAAa3F,SAAQ,SAACJ,EAAKoM,GAAW,IAAD,IAC/BuL,EAAY3R,KAAKC,MAAMD,KAAKyD,UAAUiL,EAAgB1U,KAC1D2X,EAAUtL,MACR,8DACFsL,EAAUnb,KACR,8DACFmb,EAAUc,UACR,8DACFd,EAAUe,QACR,8DACFf,EAAUrH,QACR,8DACFqH,EAAUtH,UACR,8DACFsH,EAAUgB,YAAc,CACtB,8DACA,8DACA,8DACA,8DACA,+DAEFve,OAAOD,KAAKwd,EAAUC,YAAYxX,SAAQ,SAACyX,GACzCF,EAAUC,WAAWC,GACnB,kDAEJ,SAAIF,EAAUiB,QAAd,SAAI,EAAkB,KAAlB,EAAsBpc,OACxBmb,EAAUiB,MAAM,GAAGH,UACjB,8DACFd,EAAUiB,MAAM,GAAGpc,KACjB,8DACFmb,EAAUiB,MAAM,GAAGra,IACjB,+DAEJkZ,EAASzX,GAAO0U,EAAgB1U,GAChC0X,EAAc1X,GAAO2X,KAGnB3G,EAAW,CACb,YACGwE,GAAWiC,EADd,IAKEvH,EAAgB,CAClB,YACGsF,GAAWkC,EADd,IAKFpW,QAAQC,IAAI,WAAYkW,GACxBnW,QAAQC,IAAI,gBAAiBmW,GAGvBI,EAAevc,EAAUwc,aAAa/G,GAExCN,EAAQ,KACRC,EAAQ,KACRC,EAAc,KA1FM,oBA6FRrV,EAAUsV,cA7FF,eA6FtBH,EA7FsB,iBA8FRnV,EAAUuV,eA9FF,eA8FtBH,EA9FsB,iBA+FFpV,EAAUqV,YAAY,CACxCG,eAAgBf,EAChBO,WAAYA,EACZS,SAAUd,EACV4H,aAAcA,EACd7G,aAAa,EACbC,SAAUR,EACVS,WAAgB,OAAL,EAAAR,QAAA,IAAO/W,KAAM,EACxBwX,IAAK,KACL4G,UAAU,IAxGU,QA+FtBpH,EA/FsB,0DA4GJ,qBADdS,EA3GkB,kBA2GL,KAAKrP,WAEpBqP,EACE,qEACJ/P,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,EAAU,CAAC,6CAA8CkD,IAjHnC,eAoHpBC,EAAe,KApHK,oBAsHD/V,EAAUgW,OAAOX,GAAa,GAtH7B,QAsHtBU,EAtHsB,OAuHtBvD,EAAe,qBAvHO,mDA0HtBzS,GAAW,GA1HW,YA6HpBgW,EA7HoB,kCA+HhBhI,EAAO,KA/HS,UAgIPJ,IAAAA,KAAA,mBACQ8E,EAAMpU,GACzB,CACEgX,YAAAA,EACAf,cAAeyB,EACfE,YAAaxB,GAEf,CACE5G,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBA3IM,QAgIpBC,EAhIoB,OAgJpB,SAAIA,IAAJ,SAAI,EAAMC,OAAN,EAAY6E,SACdC,GACE,uGAEF/S,GAAW,GACX6S,EAAU,IACJsD,EANiB,OAOlBzD,GAPkB,IAQrBmB,UAAW,YACXU,cAAeyB,IAEjBrD,EAASwD,GAGT/M,WAAWwK,GAAS,OAEpB5N,QAAQC,IAAR,SAAY+H,QAAZ,EAAY,EAAMC,MACZmI,GAAoB,OAAJ,EAAApI,IAAA,WAAMC,WAAN,IAAY2E,SAAU,GAC5C5S,GAAW,GACX6S,EAAU,CACR,mJADO,OAEJuD,KArKa,mDAyKpBpQ,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,EAAU,CACR,sFADQ,OA3KU,gCAiLtB7M,QAAQ4D,MAAMoM,GACdhW,GAAW,GAlLW,2EAAH,qDAqLlBD,GAASyU,MAmOGzU,EACGyS,EACAE,EAAMoB,UACN,aACA,WAGT,IAAI3H,KAAS6O,KAAoBtI,EAAMS,SACtC,gBAAC,KAAD,CACExQ,UAAU,SACVT,GAAIU,EACJH,QAAS,WAEP8Y,GAAkB7I,KALtB,YAcQ,MAAb6H,OAAA,EAAAA,EAAehV,QAAS,GACvB,gBAAC,KAAD,CACErD,GAAI,CAAEkB,GAAI,QAASE,EAAG,OAAQD,aAAc,OAAQoF,GAAI,SAExD,gBAAC,KAAD,CACE9F,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBwL,GAAI,IANR,2CAHF,MAcGuL,QAdH,EAcGA,GAAqB1c,KAAI,SAACwe,EAAiB7L,GAAW,IAAD,MAC9CyC,EAAc,IAAIpH,KAAKwQ,EAAgBnJ,eAGvCoJ,EAFkB,IAAIzQ,KAAKwQ,EAAgBnJ,eAEVqJ,SACrCtJ,EAAYuJ,WAAa,GAErBC,EACJ,IAAI5Q,KAASyQ,GACbD,EAAgBxJ,UACfwJ,EAAgB3C,wBAEbvG,EAAqBF,EAAYG,qBAAlB,MAA4CH,EAAYI,qBACzEqJ,EAAWL,EAAgB3C,wBAC3B,YACA,UAEJ,OADI+C,IAAcC,EAAW,UAE3B,gBAAC,KAAD,CAAK/S,IAAG,MAAE0S,OAAF,EAAEA,EAAiBre,IACzB,gBAAC,KAAD,CACEqE,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAa,GAATqI,EAAa,GAAK,KAL1B,aAQgB6L,EAAgB/X,UAEhC,gBAAC,KAAD,CACEjC,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KALR,UAQaqT,OAAOa,EAAgBrI,QAEvB,aAAZ0I,GACC,gBAAC,KAAD,CACEra,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KALR,SAQYkU,EAAgBlS,KAAKwS,KAAK,OAIxC,gBAAC,KAAD,CACEta,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,WAPd,UAUasL,EAAgBtB,OAE7B,gBAAC,KAAD,CACE1Y,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,MAaSwZ,EACM,UAAZA,GACC,sCAEE,qBACEva,QAAS,WAAO,IAAD,EAEL,OAAN,EAAAzB,SAAA,EAAQqN,QACN,0KAEFrN,OAAOkT,WAEPlT,OAAOkT,SAAS1C,KAAhB,mBAA0CmL,EAAgBre,MARhE,kBAFF,4EAoBJ,gBAAC,KAAD,CACEqE,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,YAcE,qBACEgO,KAAI,sCAAwCmL,EAAgBxJ,QAC5DhM,OAAO,UAENwV,EAAgBxJ,UAGrB,gBAAC,KAAD,CACExQ,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,iBAaoBiQ,OAK1B,gBAAC,KAAD,CACE9Q,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KANR,0BAcN,gBAAC,KAAD,CACEvG,GAAI,CACFC,SAAU,QACV+M,OAAQ,GACRC,KAAM,CAAC,SAAU,KACjB9M,MAAO,EACPG,OAAQ,EACRoG,SAAU,QACVC,GAAI,SAGN,gBAAC,KAAD,CACE3G,GAAI,CACFa,oBAAqB,oBACrBC,WAAY,WAGd,6BACA,gBAAC,KAAD,CAAWd,GAAI,CAAEY,MAAO,QAASa,WAAY,aAC1C,2BAEH,gBAAC,KAAD,CACEV,IAAKoV,EACLnW,GAAI,CACFI,MAAO,CAAC,WAGZ,kCAQNM,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVC,IAAK,GACLU,MAAO,qBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,UACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAIjB,a,upECp3BA,IAAMiV,EAAkB,GAEX8D,EAAmB,SAAC/d,GAC/B,IAAMC,EAAmBD,EAAMoa,OACzBlP,EAASlL,EAAMmL,QACfkP,EAASra,EAAM+Y,QACfuB,EAASta,EAAMsa,OAAS/O,KAAKC,MAAMxL,EAAMsa,QAAU,GACnD7O,EAAOzL,EAAMyL,KACb8O,EAAYva,EAAMua,UAIpBxH,GAHS/S,EAAM4Y,MAAOrN,KAAKC,MAAMxL,EAAM4Y,MAGzB,MACZ+B,EAAY,MAAGL,OAAH,EAAGA,EAAQnN,MAAK,SAACC,EAAGC,GAAJ,OAAWD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,KAC1Dyb,EAAS,MAAGD,OAAH,EAAGA,EAAe,IAC7BC,GAAa,MAACA,GAAAA,EAAWC,0BAC3B9H,EAAc6H,GAGhB,IAAMK,EAAgB,MAAGX,OAAH,EAAGA,EAAQxN,QAAO,SAACyG,GAAD,OAAWA,EAAMS,WAkBnD+G,EAAW,2DAMjB,GAFAlU,QAAQC,IAAR,YAAwBiU,IAEnB9a,EAAkB,OAAO,KAC9B,IAAKiL,EAAQ,OAAO,KAEpB,SAAkC3K,EAAAA,EAAAA,UAAS,MAA3C,GAAOO,EAAP,KAAkBC,EAAlB,KACA,KAA8BR,EAAAA,EAAAA,WAAS,GAAvC,GAAOK,EAAP,KAAgBC,EAAhB,KACA,KAA0CN,EAAAA,EAAAA,WAAS,GAAnD,GAAO6S,EAAP,KAAsBzH,EAAtB,KACA,KAAsCpL,EAAAA,EAAAA,UAAS,IAA/C,GAAO8S,EAAP,KAAoBC,EAApB,KACA,KAA+B/S,EAAAA,EAAAA,UAAS,GAAxC,GAAOkF,EAAP,KAAiB0V,EAAjB,KACA,KAA0B5a,EAAAA,EAAAA,UAASwS,GAAnC,GAAOQ,EAAP,KAAcC,EAAd,KACA,KAAyCjT,EAAAA,EAAAA,UAAS0a,GAAlD,GAAOG,EAAP,KAAsBC,EAAtB,KACA,KAAoC9a,EAAAA,EAAAA,UAAS,MAA7C,GAAO+a,EAAP,KACA,GADA,KACA,GAA4B/a,EAAAA,EAAAA,UAAS,MAArC,IAAOkT,EAAP,KAAeC,EAAf,KACA,KAA8BnT,EAAAA,EAAAA,UAAS,MAAvC,GAAOoT,GAAP,KAAgBC,GAAhB,KACA,MAAsCrT,EAAAA,EAAAA,UAASga,GAA/C,GAAOiB,GAAP,MAAoBC,GAApB,MAEMC,GAAmB,MAAGN,OAAH,EAAGA,EAAejO,MAAK,SAACC,EAAGC,GAAJ,OAC9CD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,KAKfwc,IAFJpI,KAAS,MAACA,GAAAA,EAAOsH,2BAAjB,MAA4CtH,GAAAA,EAAOS,SAE3B,MAALT,GAAAA,EAAOqI,WAAa,IAAI5O,KAAJ,MAASuG,OAAT,EAASA,EAAOqI,YAAc,MACjEC,GAAe,MAAGF,QAAH,EAAGA,GAAcG,YACxB,MAAZH,QAAA,EAAAA,GAAcI,cAAe,IAG3Bb,GAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrEc,GAAevW,EAAAA,YAErB7C,EAAAA,EAAAA,YAAU,WASR,GAPE2Q,IACCA,EAAMsH,yBACY,UAAnBtH,EAAMmB,WAENzK,WAAWwK,GAAS,KAGlBlB,GAASA,EAAMoB,UAAW,CAAC,IAAD,EACtBC,GAAY,SAAArB,EAAMoB,gBAAN,IAAiBE,MAAM,QAAS,GAClDnB,EAAU,CACR,+DADO,OAEJkB,OAGN,IAEH,IAIMqH,GAAgB,6BAAG,6FACvBpb,GAAW,GADY,kBAGF4N,IAAAA,KACjB,+BACA,CACE8E,MAAO,CACL9N,SAAUA,EACV0F,QAASD,EACTiK,MAlCI,EAmCJ+G,MAAM,SACNC,WAAY,SACZpD,QAASsB,EACT9X,QAAO,MAAEzB,OAAF,EAAEA,EAAWyB,UAGxB,CACEoM,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBApBO,OAGfC,EAHe,OAyBrBhO,GAAW,GAEX,MAAIgO,GAAJ,SAAIA,EAAMC,OAAN,EAAY3P,IACdqU,EAAQ,MAAC3E,OAAD,EAACA,EAAMC,MACf2M,GAAeD,GAAc/V,GAC7BiO,EAAU,OAEVA,EAAS,MAAC7E,OAAD,EAACA,EAAMC,MAhCG,gDAmCrBjI,QAAQ4D,MAAR,MAnCqB,yDAAH,qDAuChB2R,GAAiB,6BAAG,WAAO9c,GAAP,sFACxBuB,GAAW,GADa,kBAGH4N,IAAAA,OAAA,WAAwBnP,EAAEH,GAAM,CACjDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBAPU,OAGhBC,EAHgB,OAWtBhO,GAAW,GAEgB,IAAnB,MAAJgO,GAAA,SAAAA,EAAMC,WAAN,IAAYK,UACdqE,EAAS,MACH,OAAN,EAAA3R,SAAA,WAAQkT,WAAR,EAAkBsH,UAElB3I,EAAU,OAAC7E,GAAD,SAACA,EAAMC,WAAP,EAAC,EAAYrE,QAjBH,gDAoBtB5D,QAAQ4D,MAAR,MApBsB,yDAAH,sDArIkB,SA6J1BgK,KA7J0B,oEA6JzC,oHACqBhG,IAAAA,IAAA,WAAqB8E,EAAMpU,GAAM,CAClDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBALd,OACQC,EADR,OASQiG,EATR,MASoBjG,OATpB,EASoBA,EAAMC,KAEJvD,KAAKyD,UAAUuE,IAAUhI,KAAKyD,UAAU8F,KAG1DtB,EAASsB,GAELA,EAAUd,SAAWT,EAAMS,UACvBgD,EADgC,OAEjCzD,GAFiC,IAGpCS,QAASc,EAAUd,QACnBK,cAAe,IAAIrH,OAErBqO,EAAgB,GAAD,OAAKD,EAAL,CAAoBpE,KACnCpD,GACE,0KAIAkB,EAAU+F,yBAA2BtH,EAAMsH,0BACvClJ,EAAQyJ,EAAckB,WAC1B,SAAC/I,GAAD,OAAWA,EAAMpU,IAAM2V,EAAU3V,MAE/Bod,EAJkE,UAIlDnB,GAChBzJ,GAAS,EACX4K,EAAU5K,GAASmD,EAEnByH,EAAS,UAAOnB,EAAP,CAAsBtG,IAGjCuG,EAAe,SAACkB,QAAD,EAAC,EAAWpP,MAAK,SAACC,EAAGC,GAAJ,OAAWD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,MAE9DyU,GACE,uFAIAkB,EAAUH,YACNC,GAAY,SAAAE,EAAUH,gBAAV,IAAqBE,MAAM,QAAS,GACtDjB,GAAW,IACXF,EAAU,CACR,+DADO,OAEJkB,MAKJE,EAAU+F,0BACP/H,EAAQgC,EAAUd,QAAU,IAAQ,IAC1C/J,WAAWwK,GAAS3B,IA1DxB,2CA7JyC,yBAgWzC,OACE,gBAAC,IAAD,CAAenD,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,GAAI,CACFkB,GAAI,UACJd,MAAO,OACPoB,UAAW,QACX2L,GAAI,CAAC,KACLvM,MAAO,YAGT,gBAAC,KAAD,CACEG,IAAK8L,EACL7M,GAAI,CACFI,MAAO,CAAC,QAAS,SACjBH,SAAU,QACV+M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,KAGZ,gBAAC,KAAD,CACEN,GAAI,CACFkB,GAAI,cACJd,MAAO,CAAC,MAAO,SACfsG,SAAU,OACVzG,SAAU,WACVO,QAAS,OACT0M,cAAe,SACf+E,GAAI,OACJ/R,IAAK,OACLC,MAAO,CAAC,GAAI,IACZgB,aAAc,OACdC,EAAG,OACHQ,SAAU,CAAC,OAAQ,QACnBuL,GAAI,OACJ7M,OAAQ,KAGV,gBAAC,UAAD,CACEpD,iBAAkBA,EAClBI,cA/SY,SAAC+P,GACrBrP,EAAaqP,IA+SL9P,cAAeqL,EACfxL,OAAQ,CAAE8C,IAAK,EAAGqG,GAAI,GACtBlJ,YAAa,CAAE6C,IAAK,UAvBxB,MAyBGwQ,OAzBH,EAyBGA,EAAQzU,KAAI,SAACyL,GAAD,OACX,gBAAC,KAAD,CACEjH,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,EACJoC,GAAI,KAGLmB,MAIJkJ,IACC,gBAAC,KAAD,KACG,IACD,gBAAC,KAAD,CACEnQ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBmD,GAAI,KAGL6L,IAEiB,aAAnBJ,EAAMmB,WACL,gBAAC,KAAD,CACElR,UAAU,SACVT,GAAE,OAAOU,GAAP,IAAqByD,GAAI,OAAQoC,GAAI,EAAGrG,IAAK,IAC/CK,QAAS,mCAAMzB,SAAN,SAAM,EAAQkT,eAAd,EAAM,EAAkBsH,WAEhC,gBAMP9I,IAAUI,IACV,gBAAC,KAAD,KACG7S,GACC,gBAAC,KAAD,KACG0a,IAAeA,GAAc,EAC5B,gBAAC,KAAD,CAAKzY,GAAI,CAAEuG,GAAI,KACb,gBAAC,KAAD,CACE9F,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,UANzB,aASgBoU,GAThB,uBAYA,gBAAC,UAAD,CAAagB,UAAU,gBAEvB,gBAAC,KAAD,CACEhZ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,UANzB,yBAWA,gBAAC,KAAD,CACErE,GAAI,CACF0B,OAAQ,OACRR,GAAI,QACJC,aAAc,OACdlB,SAAU,WACVyG,SAAU,QACVpG,OAAQ,MACRsB,SAAU,OACVsM,QAAS,kBACT5K,WACE,kDACF3B,GAAI,MACJ4B,GAAI,OACJgD,GAAI,OACJhF,UAAW,UAEbmD,MAAOhC,EACPsC,SAAU,SAACxI,GAAD,OAAO4b,EAAW5b,EAAEyI,OAAOP,SAlBvC,MAoBGyT,QApBH,EAoBGA,GAAclc,KAAI,SAACyd,GAAD,OACjB,8BAASA,OAGb,gBAAC,KAAD,CACEjZ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBmD,GAAI,SAGLkU,IAEH,gBAAC,KAAD,CACExY,UAAU,SACVT,GAAIU,EACJH,QAAS1C,EAAU,KAAOqb,IAEzBrb,EAAU,qBAAuB,WAItC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACE4C,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,QACrBF,GAAI,KAPR,mDAaA,gBAAC,KAAD,CACEpD,IAAKwX,EACLvY,GAAI,CACFI,MAAO,CAAC,QACRH,SAAU,WACVK,OAAQ,EACRoG,SAAU,QACViT,UAAW,QACX7M,UAAW,UACXC,eAAgB,aAU/ByD,GAASzS,IAAcyS,EAAMS,UAAYL,IACxC,gBAAC,KAAD,CAAK5Q,GAAI,CAAEuG,GAAI,KACb,gBAAC,UAAD,CAAakT,UAAU,gBAEvB,gBAAC,KAAD,CACEhZ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAIiK,EAAMoB,UAAY,EAAI,KAN9B,2BAS8BpB,EAAM9N,SATpC,YASwDkX,OACpDpJ,EAAM4B,OAVV,YAWe5B,EAAM2I,OAGpBpb,IACEsS,KACCG,EAAM6B,eAAiB7B,EAAMoB,YAC7B,gBAAC,KAAD,CACEnR,UAAU,SACVT,GAAIU,EACJH,QAAS1C,EAAU,KAhWb,WACtBC,GAAW,GACXyS,EAAe,mBAEf,IAAM+B,EAAiB,6BAAG,4IACDvU,EAAUwB,aADT,cACpBiT,EADoB,OAItB,0GAEEO,EAAa,CACf,CACEvT,QAJF,0GAKEwT,OAAQ,IACR+G,aAAY,MAAEvJ,GAAF,SAAEA,EAAOjI,WAAT,EAAE,EAAatM,KAAI,SAACuG,GAC9B,MAAO,CACLwX,UAAWxX,EACXE,SAAU,IACVsV,SAAUA,EACVC,aAzMV,6FA+MMgC,EAAW,GAEV,MAALzJ,GAAA,SAAAA,EAAOjI,OAAP,EAAa3F,SAAQ,SAACJ,GACpByX,EAASzX,GAAO0U,EAAgB1U,MAG9BgR,EAAW,CACb,YACGwE,GAAWiC,EADd,IAKE/G,EAAQ,KACRC,EAAQ,KACRC,EAAc,KAnCM,oBAsCRrV,EAAUsV,cAtCF,eAsCtBH,EAtCsB,iBAuCRnV,EAAUuV,eAvCF,eAuCtBH,EAvCsB,iBAwCFpV,EAAUqV,YAAY,CACxCG,eAAgBf,EAChBO,WAAYA,EACZS,SAAUA,EACVC,aAAa,EACbC,SAAUR,EACVS,WAAgB,OAAL,EAAAR,QAAA,IAAO/W,KAAM,EACxBwX,IAAK,KACL4G,UAAU,IAhDU,QAwCtBpH,EAxCsB,0DAoDJ,qBADdS,EAnDkB,kBAmDL,KAAKrP,WAEpBqP,EACE,qEACJ/P,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,EAAU,CAAC,6CAA8CkD,IAzDnC,eA4DpBC,EAAe,KA5DK,oBA8DD/V,EAAUgW,OAAOX,GAAa,GA9D7B,QA8DtBU,EA9DsB,OA+DtBvD,EAAe,qBA/DO,mDAkEtBzS,GAAW,GAlEW,YAqEpBgW,EArEoB,kCAuEhBhI,EAAO,KAvES,UAwEPJ,IAAAA,KAAA,mBACQ8E,EAAMpU,GACzB,CACEgX,YAAAA,EACAf,cAAeyB,EACfE,YAAaxB,GAEf,CACE5G,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBAnFM,QAwEpBC,EAxEoB,OAwFpB,SAAIA,IAAJ,SAAI,EAAMC,OAAN,EAAY6E,SACdC,GACE,uGAEF/S,GAAW,GACX6S,EAAU,IACJsD,EANiB,OAOlBzD,GAPkB,IAQrBmB,UAAW,YACXU,cAAeyB,IAEjBrD,EAASwD,GAGT/M,WAAWwK,GAAS,OAEpB5N,QAAQC,IAAR,SAAY+H,QAAZ,EAAY,EAAMC,MACZmI,GAAoB,OAAJ,EAAApI,IAAA,WAAMC,WAAN,IAAY2E,SAAU,GAC5C5S,GAAW,GACX6S,EAAU,CACR,mJADO,OAEJuD,KA7Ga,mDAiHpBpQ,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,EAAU,CACR,sFADQ,OAnHU,gCAyHtB7M,QAAQ4D,MAAMoM,GACdhW,GAAW,GA1HW,2EAAH,qDA6HlBD,GAASyU,MAiOGzU,EACGyS,EACAE,EAAMoB,UACN,aACA,WAGT,IAAI3H,KAAS6O,KAAoBtI,EAAMS,SACtC,gBAAC,KAAD,CACExQ,UAAU,SACVT,GAAIU,EACJH,QAAS,WAEP8Y,GAAkB7I,KALtB,YAcQ,MAAb6H,OAAA,EAAAA,EAAehV,QAAS,GACvB,gBAAC,KAAD,CACErD,GAAI,CAAEkB,GAAI,QAASE,EAAG,OAAQD,aAAc,OAAQoF,GAAI,SAExD,gBAAC,KAAD,CACE9F,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBwL,GAAI,IANR,2CAHF,MAcGuL,QAdH,EAcGA,GAAqB1c,KAAI,SAACwe,EAAiB7L,GAAW,IAAD,MAC9CyC,EAAc,IAAIpH,KAAKwQ,EAAgBnJ,eAGvCoJ,EAFkB,IAAIzQ,KAAKwQ,EAAgBnJ,eAEVqJ,SACrCtJ,EAAYuJ,WAAa,GAErBC,EACJ,IAAI5Q,KAASyQ,GACbD,EAAgBxJ,UACfwJ,EAAgB3C,wBAEbvG,EAAqBF,EAAYG,qBAAlB,MAA4CH,EAAYI,qBACzEqJ,EAAWL,EAAgB3C,wBAC3B,YACA,UAEJ,OADI+C,IAAcC,EAAW,UAE3B,gBAAC,KAAD,CAAK/S,IAAG,MAAE0S,OAAF,EAAEA,EAAiBre,IACzB,gBAAC,KAAD,CACEqE,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAa,GAATqI,EAAa,GAAK,KAL1B,aAQgB6L,EAAgB/X,UAEhC,gBAAC,KAAD,CACEjC,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KALR,UAQaqT,OAAOa,EAAgBrI,QAEvB,aAAZ0I,GACC,gBAAC,KAAD,CACEra,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KALR,SAQYkU,EAAgBlS,KAAKwS,KAAK,OAIxC,gBAAC,KAAD,CACEta,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,WAPd,UAUasL,EAAgBtB,OAE7B,gBAAC,KAAD,CACE1Y,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,MAaSwZ,EACM,UAAZA,GACC,sCAEE,qBACEva,QAAS,WAAO,IAAD,EAEL,OAAN,EAAAzB,SAAA,EAAQqN,QACN,0KAEFrN,OAAOkT,WAEPlT,OAAOkT,SAAS1C,KAAhB,mBAA0CmL,EAAgBre,MARhE,kBAFF,4EAoBJ,gBAAC,KAAD,CACEqE,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,YAcE,qBACEgO,KAAI,sCAAwCmL,EAAgBxJ,QAC5DhM,OAAO,UAENwV,EAAgBxJ,UAGrB,gBAAC,KAAD,CACExQ,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,iBAaoBiQ,OAK1B,gBAAC,KAAD,CACE9Q,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KANR,0BAcN,gBAAC,KAAD,CACEvG,GAAI,CACFC,SAAU,QACV+M,OAAQ,GACRC,KAAM,CAAC,SAAU,KACjB9M,MAAO,EACPG,OAAQ,EACRoG,SAAU,QACVC,GAAI,SAGN,gBAAC,KAAD,CACE3G,GAAI,CACFa,oBAAqB,oBACrBC,WAAY,WAGd,6BACA,gBAAC,KAAD,CAAWd,GAAI,CAAEY,MAAO,QAASa,WAAY,aAC1C,2BAEH,gBAAC,KAAD,CACEV,IAAKoV,EACLnW,GAAI,CACFI,MAAO,CAAC,WAGZ,kCAQNM,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVC,IAAK,GACLU,MAAO,qBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,UACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAIjB,a,spECzzBA,IAAMiV,EAAkB,GAIlBmE,EAAkB,GAKXC,EAAkB,SAACre,GAAW,IAAD,QAClCC,EAAmBD,EAAMoa,OACzBlP,EAASlL,EAAMmL,QACfkP,EAASra,EAAM+Y,QACfuB,EAASta,EAAMsa,OAAS/O,KAAKC,MAAMxL,EAAMsa,QAAU,GACnD7O,EAAOzL,EAAMyL,KACb8O,EAAYva,EAAMua,UAClBC,EAAexa,EAAMya,cACrBnT,EAAatH,EAAMse,WAErBvL,EAAc,KACZ4H,EAAY,MAAGL,OAAH,EAAGA,EAAQnN,MAAK,SAACC,EAAGC,GAAJ,OAAWD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,KAC1Dyb,EAAS,MAAGD,OAAH,EAAGA,EAAe,IAC7BC,GAAa,MAACA,GAAAA,EAAWC,0BAC3B9H,EAAc6H,GAGhB,IAeMG,EAAWP,EACb,2DACA,2DACEQ,EAAeR,EACjB,uFACA,uFAGE+D,EAAa,2DAQbtD,EAAgB,MAAGX,OAAH,EAAGA,EAAQxN,QAAO,SAACyG,GAAD,OAAWA,EAAMS,WAEzD,IAAK/T,EAAkB,OAAO,KAC9B,IAAKiL,EAAQ,OAAO,KAEpB,SAAkC3K,EAAAA,EAAAA,UAAS,MAA3C,GAAOO,EAAP,KAAkBC,EAAlB,KACA,KAA8BR,EAAAA,EAAAA,WAAS,GAAvC,GAAOK,EAAP,KAAgBC,EAAhB,KACA,KAA0CN,EAAAA,EAAAA,WAAS,GAAnD,GAAO6S,EAAP,KAAsBzH,EAAtB,KACA,KAAsCpL,EAAAA,EAAAA,UAAS,IAA/C,GAAO8S,EAAP,KAAoBC,EAApB,KACA,KAA+B/S,EAAAA,EAAAA,UAAS,GAAxC,GAAOkF,EAAP,KACA,GADA,KACA,GAA0BlF,EAAAA,EAAAA,UAASwS,GAAnC,IAAOQ,EAAP,KAAcC,EAAd,KACA,KAAyCjT,EAAAA,EAAAA,UAAS0a,GAAlD,GAAOG,GAAP,KAAsBC,GAAtB,KACA,MAA4B9a,EAAAA,EAAAA,UAAS,MAArC,GAAOkT,GAAP,MAAeC,GAAf,MACA,MAA8BnT,EAAAA,EAAAA,UAAS,MAAvC,GAAOoT,GAAP,MAAgBC,GAAhB,MACA,MAAsCrT,EAAAA,EAAAA,UAASga,GAA/C,GAAOiB,GAAP,MAAoBC,GAApB,MAEA,MAA8Clb,EAAAA,EAAAA,UAAS,IAAvD,GAAOie,GAAP,MAAwBC,GAAxB,MACA,MAA4Cle,EAAAA,EAAAA,UAAS,MAArD,GAEMmb,IAFN,YAEyB,MAAGN,QAAH,EAAGA,GAAejO,MAAK,SAACC,EAAGC,GAAJ,OAC9CD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,MAEf4U,GACJR,KAAS,MAACA,GAAAA,EAAOsH,2BAAjB,MAA4CtH,OAA5C,EAA4CA,EAAOS,SAE/C2H,GAAoB,MAALpI,GAAAA,EAAOqI,WAAa,IAAI5O,KAAJ,MAASuG,OAAT,EAASA,EAAOqI,YAAc,KACjEC,GAAe,MAAGF,QAAH,EAAGA,GAAcG,YACxB,MAAZH,QAAA,EAAAA,GAAcI,cAAe,IAG3BC,GAAY,YACZwC,GAAgBpY,SAAQ4V,IAAS,MAAUwC,GAAgBV,KAAK,QAGpE,IAAMY,GAAU,MAAG5d,GAAH,SAAGA,EAAW2B,UAAd,SAAG,EAAoB4C,aAAvB,EAAG,EAA4ByH,QAC7C,SAACvH,GAAD,MAzCA,4DAyCSA,EAAIC,UAMTmZ,IAHM,MAAVD,IAAAA,GAAY5R,QAAO,SAACvH,GAAD,OAAU+B,EAAWrB,SAASV,EAAIxD,SAG1C,MAAGjB,GAAH,SAAGA,EAAW2B,UAAd,SAAG,EAAoB4C,aAAvB,EAAG,EAA4ByH,QAC1C,SAACvH,GAAD,OAASA,EAAIC,QAAU+Y,MAKnBK,IAAoB,MAAPD,QAAA,EAAAA,GAASvY,SAAU,GAEtCxD,EAAAA,EAAAA,YAAU,WASR,GAPE2Q,IACCA,EAAMsH,yBACY,UAAnBtH,EAAMmB,WAENzK,WAAWwK,GAAS,KAGlBlB,GAASA,EAAMoB,UAAW,CAAC,IAAD,EACtBC,GAAY,SAAArB,EAAMoB,gBAAN,IAAiBE,MAAM,QAAS,GAClDnB,GAAU,CACR,6FADO,OAEJkB,OAGN,IAOH,IAwBMqH,GAAgB,6BAAG,+FACvBpb,GAAW,GACLge,EAFiB,UAEJL,IAFI,kBAIF/P,IAAAA,KACjB,4BACA,CACE8E,MAAO,CACL9N,SAAUA,EACV0F,QAASD,EACTiK,MAAO,EACP+G,MAAM,kBAAmBF,GACzBG,WAAY,UACZpD,QAASsB,EACT9X,QAAO,MAAEzB,OAAF,EAAEA,EAAWyB,QACpBsc,OAAM,MAAEA,OAAF,EAAEA,EAAQf,KAAK,OAGzB,CACEnP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBAtBO,OAIfC,EAJe,OA2BrBhO,GAAW,GAEX,MAAIgO,GAAJ,SAAIA,EAAMC,OAAN,EAAY3P,IACdqU,EAAQ,MAAC3E,OAAD,EAACA,EAAMC,MACf2M,GAAeD,GAAc/V,GAC7BiO,GAAU,OAEVA,GAAS,MAAC7E,OAAD,EAACA,EAAMC,MAlCG,kDAqCrBjI,QAAQ4D,MAAR,MArCqB,0DAAH,qDAyChB2R,GAAiB,6BAAG,WAAO9c,GAAP,sFACxBuB,GAAW,GADa,kBAGH4N,IAAAA,OAAA,WAAwBnP,EAAEH,GAAM,CACjDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBAPU,OAGhBC,EAHgB,OAWtBhO,GAAW,GAEgB,IAAnB,MAAJgO,GAAA,SAAAA,EAAMC,WAAN,IAAYK,UACdqE,EAAS,MACH,OAAN,EAAA3R,SAAA,WAAQkT,WAAR,EAAkBsH,UAElB3I,GAAU,OAAC7E,GAAD,SAACA,EAAMC,WAAP,EAAC,EAAYrE,QAjBH,gDAoBtB5D,QAAQ4D,MAAR,MApBsB,yDAAH,sDAzLiB,SAiNzBgK,KAjNyB,oEAiNxC,oHACqBhG,IAAAA,IAAA,WAAqB8E,EAAMpU,GAAM,CAClDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBALd,OACQC,EADR,OASQiG,EATR,MASoBjG,OATpB,EASoBA,EAAMC,KAEJvD,KAAKyD,UAAUuE,IAAUhI,KAAKyD,UAAU8F,KAG1DtB,EAASsB,GAELA,EAAUd,SAAWT,EAAMS,UACvBgD,EADgC,OAEjCzD,GAFiC,IAGpCS,QAASc,EAAUd,QACnBK,cAAe,IAAIrH,OAErBqO,GAAgB,GAAD,OAAKD,GAAL,CAAoBpE,KACnCpD,GACE,0KAIAkB,EAAU+F,yBAA2BtH,EAAMsH,0BACvClJ,EAAQyJ,GAAckB,WAC1B,SAAC/I,GAAD,OAAWA,EAAMpU,IAAM2V,EAAU3V,MAE/Bod,EAJkE,UAIlDnB,IAChBzJ,GAAS,EACX4K,EAAU5K,GAASmD,EAEnByH,EAAS,UAAOnB,GAAP,CAAsBtG,IAGjCuG,GAAe,SAACkB,QAAD,EAAC,EAAWpP,MAAK,SAACC,EAAGC,GAAJ,OAAWD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,MAE9DyU,GACE,yFAIAkB,EAAUH,YACNC,GAAY,SAAAE,EAAUH,gBAAV,IAAqBE,MAAM,QAAS,GACtDjB,GAAW,IACXF,GAAU,CACR,6FADO,OAEJkB,MAKJE,EAAU+F,0BACP/H,EAAQgC,EAAUd,QAAU,IAAQ,IAC1C/J,WAAWwK,GAAS3B,IA1DxB,2CAjNwC,yBAidxC,OACE,gBAAC,IAAD,CAAenD,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,GAAI,CACFkB,GAAI,UACJd,MAAO,OACPoB,UAAW,QACX2L,GAAI,CAAC,KACLvM,MAAO,UAGT,gBAAC,KAAD,CACEG,IAAK8L,EACL7M,GAAI,CACFI,MAAO,CAAC,QAAS,SACjBH,SAAU,QACV+M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,KAGZ,gBAAC,KAAD,CACEN,GAAI,CACFkB,GAAI,cACJd,MAAO,CAAC,MAAO,SACfsG,SAAU,OACVzG,SAAU,WACVO,QAAS,OACT0M,cAAe,SACf+E,GAAI,OACJ/R,IAAK,OACLC,MAAO,CAAC,GAAI,IACZgB,aAAc,OACdC,EAAG,OACHQ,SAAU,CAAC,OAAQ,QACnBuL,GAAI,OACJ7M,OAAQ,KAGV,gBAAC,UAAD,CACEpD,iBAAkBA,EAClBI,cAlYY,SAAC+P,GACrBrP,EAAaqP,IAkYL9P,cAAeqL,EACfxL,OAAQ,CAAE8C,IAAK,EAAGqG,GAAI,GACtBlJ,YAAa,CAAE6C,IAAK,UAvBxB,MAyBGwQ,QAzBH,EAyBGA,GAAQzU,KAAI,SAACyL,GAAD,OACX,gBAAC,KAAD,CACEjH,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,EACJoC,GAAI,KAGLmB,MAIJkJ,IACC,gBAAC,KAAD,KACG,IACD,gBAAC,KAAD,CACEnQ,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBmD,GAAI,KAGL6L,IAEiB,aAAnBJ,EAAMmB,WACL,gBAAC,KAAD,CACElR,UAAU,SACVT,GAAE,OAAOU,GAAP,IAAqByD,GAAI,OAAQoC,GAAI,EAAGrG,IAAK,IAC/CK,QAAS,mCAAMzB,SAAN,SAAM,EAAQkT,eAAd,EAAM,EAAkBsH,WAEhC,eAMRtI,KAAiBJ,IAChB,gCACE,gBAAC,KAAD,CACEnQ,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,GACJoC,GAAI,KAPR,sJAYA,gBAAC,UAAD,QAIFiK,IAAUI,KAAYI,IACtB,gBAAC,KAAD,KACGjT,GAAa8d,IACZ,gBAAC,KAAD,KACE,gBAAC,KAAD,CAAK7b,GAAI,CAAEuG,GAAI,KAEX,gBAAC,KAAD,MAyBF,gBAAC,KAAD,CAAKvG,GAAI,CAAEY,MAAO,UAChB,gBAAC,KAAD,CACEH,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,QACrBkC,GAAI,SAPR,4CAYA,gBAAC,KAAD,CACEvG,GAAI,CACFQ,QAAS,OACTK,oBAAqB,UACrB0F,GAAI,SAGLqV,GAAQ3f,KAAI,SAAC8f,GACZ,IAEMC,EAAQ,+BAFD9E,EAAe,MAAC6E,OAAD,EAACA,EAAQ/c,MACf6P,MAAMzL,QAAQ,UAAW,IAE/C,OACE,gBAAC,KAAD,CACE7C,QAAS,WACP,IAAM0b,EAAU,UAAOR,IACvB,GAAIA,GAAgBvY,SAAS6Y,EAAO/c,MAAO,CAEzC,IAAM4P,EAAQqN,EAAWC,SACvB,SAACld,GAAD,OAAUA,GAAQ+c,EAAO/c,QAE3Bid,EAAWE,OAAOvN,EAAO,QAChB6M,GAAgBpY,OAAS,GAElC4Y,EAAWnZ,KAAKiZ,EAAO/c,MAEzB0c,GAAmBO,IAErBjc,GAAI,CACFsB,OAAQ,UACRV,MAAO6a,GAAgBvY,SAAS6Y,EAAO/c,MACnC,QACA,UACJ,UAAW,CAAE4B,MAAO,WAGtB,gBAAC,KAAD,WAAYmb,OAAZ,EAAYA,EAAQ/c,MACpB,gBAAC,KAAD,CACE+B,IAAKib,EACLhc,GAAI,CACFI,MAAO,CAAC,OACRsG,SAAU,QACVvF,aAAc,eAS3B8X,IACC,gBAAC,KAAD,CACEjZ,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBmD,GAAI,SALR,cAQiBkU,IAIQ,GAA1BwC,GAAgBpY,QACf,gBAAC,KAAD,CACE5C,UAAU,SACVT,GAAIU,EACJH,QAAS1C,EAAU,KAAOqb,IAEzBrb,EAAU,qBAAuB,YAM3CE,IAAc8d,IACb,gBAAC,KAAD,CACEpb,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,QACrBkC,GAAI,SAPR,0EAgBLxI,GAAayS,GAAS,CAAC,KAAM,UAAUtN,SAASsN,EAAMmB,YACrD,gBAAC,KAAD,CAAK3R,GAAI,CAAEuG,GAAI,KACb,gBAAC,UAAD,CAAakT,UAAU,gBAEvB,gBAAC,KAAD,CACEhZ,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAIiK,EAAMoB,UAAY,EAAI,KAN9B,iBASoBpB,EAAM2I,OAEzBpb,IACEsS,KACCG,EAAM6B,eAAiB7B,EAAMoB,YAC7B,gBAAC,KAAD,CACEnR,UAAU,SACVT,GAAIU,EACJH,QAAS1C,EAAU,KAxcb,WACtBC,GAAW,GACXyS,EAAe,mBAEf,IAAM+B,EAAiB,6BAAG,8JACGvU,EAAUwB,aADb,UACpBgT,EADoB,OAElBC,EAAaD,EAEbuJ,EAAStL,EAAM4L,aAAe,GAChC9Z,EAAS,GACbwZ,EAAOlZ,SAAQ,SAACkC,GAAU,IAAD,IACjBuX,EAAK,MAAGte,GAAH,SAAGA,EAAW2B,UAAd,SAAG,EAAoB4C,aAAvB,EAAG,EAA4BC,MACxC,SAAC+Z,GAAD,OAAUA,EAAKtd,MAAQ8F,KAErBuX,GACEA,EAAM5Z,QAAU+Y,GAClBlZ,EAAOQ,KAAK,CAAEmQ,KAASoJ,EAAM5Z,OAAX,IAAqB4Z,EAAMrd,KAAQ0D,SAAU,OAK/DkZ,EAAUtZ,EAAOyH,QAAO,SAACsS,GAAD,mBAC5BA,GAD4B,SAC5BA,EAAOpJ,WADqB,EAC5B,EAAa/P,SAASsY,MAElBe,EAAgC,GAAlBX,EAAQvY,OAExB0P,EAAa,CACf,CACEvT,QAzRN,0GA0RMwT,OAAQ,IACR1Q,OAAQA,GAEV,CACE9C,QAASgT,EACTQ,OAAQ,IACR+G,aAAY,MAAEvJ,GAAF,SAAEA,EAAOjI,WAAT,EAAE,EAAatM,KAAI,SAACuG,GAC9B,MAAO,CACLwX,UAAWxX,EACXE,SAAU,IACVsV,SAAUA,EACVC,aAAcA,QAMlBgC,EAAW,GACXC,EAAgB,GAEf,MAAL1J,GAAA,SAAAA,EAAOjI,OAAP,EAAa3F,SAAQ,SAACJ,EAAKoM,GACzB,IAAIuL,EAAY3R,KAAKC,MAAMD,KAAKyD,UAAUoP,EAAgB7Y,KAC1D5F,OAAOD,KAAKwd,EAAUC,YAAYxX,SAAQ,SAACyX,GACzCF,EAAUC,WAAWC,GACnB,qEAEJF,EAAUnb,KACR,kEACFmb,EAAUtL,MACR,kEACFsL,EAAUc,UACR,kEACFd,EAAUgB,YAAc,CACtB,kEACA,kEACA,kEACA,mEAEFhB,EAAUtH,UACR,kEACFsH,EAAUrH,QACR,kEAEFmH,EAASzX,GAAO6Y,EAAgB7Y,GAChC0X,EAAc1X,GAAO2X,KAGnB3G,EAAW,CACb,YACGwE,GAAWiC,EADd,IAKEvH,EAAgB,CAClB,YACGsF,GAAWkC,EADd,IAKII,EAAevc,EAAUwc,aAAa/G,GAExCN,EAAQ,KACRC,EAAQ,KACRC,EAAc,MAEdmJ,EA1FoB,4CA4FNxe,EAAUsV,cA5FJ,eA4FpBH,EA5FoB,iBA6FNnV,EAAUuV,eA7FJ,eA6FpBH,EA7FoB,iBA8FApV,EAAUqV,YAAY,CACxCG,eAAgBhB,EAChBQ,WAAYA,EACZS,SAAUd,EACV4H,aAAcA,EACd7G,aAAa,EACbC,SAAUR,EACVS,WAAgB,OAAL,EAAAR,QAAA,IAAO/W,KAAM,EACxBwX,IAAK,KACL4G,UAAU,IAvGQ,QA8FpBpH,EA9FoB,0DA2GF,qBADdS,EA1GgB,kBA0GH,KAAKrP,WAEpBqP,EACE,qEACJ/P,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,GAAU,CAAC,6CAA8CkD,IAhHrC,gCAmHtB/V,GAAW,GACX6S,GAAU,CACR,iHArHoB,eAyHpBmD,EAAe,KAzHK,oBA2HD/V,EAAUgW,OAAOX,GAAa,GA3H7B,QA2HtBU,EA3HsB,OA4HtBvD,EAAe,qBA5HO,mDA+HtBzS,GAAW,GA/HW,YAkIpBgW,EAlIoB,kCAoIhBhI,EAAO,KApIS,UAqIPJ,IAAAA,KAAA,mBACQ8E,EAAMpU,GACzB,CACEgX,YAAAA,EACAf,cAAeyB,EACfE,YAAaxB,GAEf,CACE5G,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBAhJM,QAqIpBC,EArIoB,OAqJpB,SAAIA,IAAJ,SAAI,EAAMC,OAAN,EAAY6E,SACdC,GACE,yGAEF/S,GAAW,GACX6S,GAAU,IACJsD,EANiB,OAOlBzD,GAPkB,IAQrBmB,UAAW,YACXU,cAAeyB,IAEjBrD,EAASwD,GAGT/M,WAAWwK,GAAS,OAEpB5N,QAAQC,IAAR,SAAY+H,QAAZ,EAAY,EAAMC,MACZmI,GAAoB,OAAJ,EAAApI,IAAA,WAAMC,WAAN,IAAY2E,SAAU,GAC5C5S,GAAW,GACX6S,GAAU,CACR,mJADO,OAEJuD,KA1Ka,mDA8KpBpQ,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,GAAU,CACR,sFADQ,OAhLU,gCAsLtB7M,QAAQ4D,MAAMoM,GACdhW,GAAW,GAvLW,2EAAH,qDA0LlBD,GAASyU,MA4QGzU,EACGyS,EACAE,EAAMoB,UACN,aACA,WAGT,IAAI3H,KAAS6O,KAAoBtI,EAAMS,SACtC,gBAAC,KAAD,CACExQ,UAAU,SACVT,GAAIU,EACJH,QAAS,WAEP8Y,GAAkB7I,KALtB,YAcQ,MAAb6H,QAAA,EAAAA,GAAehV,QAAS,GACvB,gBAAC,KAAD,CACErD,GAAI,CAAEkB,GAAI,QAASE,EAAG,OAAQD,aAAc,OAAQoF,GAAI,SAExD,gBAAC,KAAD,CACE9F,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBwL,GAAI,IANR,2CAHF,MAcGuL,QAdH,EAcGA,GAAqB1c,KAAI,SAACwe,EAAiB7L,GAAW,IAAD,MAC9CyC,EAAc,IAAIpH,KAAKwQ,EAAgBnJ,eAGvCoJ,EAFkB,IAAIzQ,KAAKwQ,EAAgBnJ,eAEVqJ,SACrCtJ,EAAYuJ,WAAa,GAErBC,EACJ,IAAI5Q,KAASyQ,GACbD,EAAgBxJ,UACfwJ,EAAgB3C,wBAEbvG,EAAqBF,EAAYG,qBAAlB,MAA4CH,EAAYI,qBACzEqJ,EAAWL,EAAgB3C,wBAC3B,YACA,UAEJ,OADI+C,IAAcC,EAAW,UAE3B,gBAAC,KAAD,CAAK/S,IAAG,MAAE0S,OAAF,EAAEA,EAAiBre,IACzB,gBAAC,KAAD,CACEqE,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAa,GAATqI,EAAa,GAAK,KAL1B,aAQgB6L,EAAgB/X,UAEnB,aAAZoY,GACC,gBAAC,KAAD,CACEra,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KALR,SAQYkU,EAAgBlS,KAAKwS,KAAK,OAIxC,gBAAC,KAAD,CACEta,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,WAPd,UAUasL,EAAgBtB,OAE7B,gBAAC,KAAD,CACE1Y,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,MAaSwZ,EACM,UAAZA,GACC,sCAEE,qBACEva,QAAS,WAAO,IAAD,EAEL,OAAN,EAAAzB,SAAA,EAAQqN,QACN,0KAEFrN,OAAOkT,WAEPlT,OAAOkT,SAAS1C,KAAhB,mBAA0CmL,EAAgBre,MARhE,kBAFF,4EAoBJ,gBAAC,KAAD,CACEqE,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,YAcE,qBACEgO,KAAI,sCAAwCmL,EAAgBxJ,QAC5DhM,OAAO,UAENwV,EAAgBxJ,UAGrB,gBAAC,KAAD,CACExQ,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,iBAaoBiQ,OAK1B,gBAAC,KAAD,CACE9Q,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KANR,0BAcN,gBAAC,KAAD,CACEvG,GAAI,CACFC,SAAU,QACV+M,OAAQ,GACRC,KAAM,CAAC,SAAU,KACjB9M,MAAO,EACPG,OAAQ,EACRoG,SAAU,QACVC,GAAI,SAGN,gBAAC,KAAD,CACE3G,GAAI,CACFa,oBAAqB,oBACrBC,WAAY,WAGd,6BACA,gBAAC,KAAD,CAAWd,GAAI,CAAEY,MAAO,QAASa,WAAY,aAC1C,2BAEH,gBAAC,KAAD,CACEV,IAAKoV,EACLnW,GAAI,CACFI,MAAO,CAAC,WAGZ,kCAQNM,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVC,IAAK,GACLU,MAAO,qBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,UACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAIjB,a,6IC16Baua,G,gCAAkB,SAAC,GAAoC,IAAD,IAAjCnG,KAAiC,EAA3BC,QAA2B,EAAlBC,YAC/C,OACE,gBAAC,IAAD,CAAe3J,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,IAAE,GACAkB,GAAI,QACJd,MAAO,OACPC,OAAQ,CAAC,uBAHT,KAII,UAJJ,EAKAwU,gBALC,OAKuBhI,EALxB,MAMAiI,iBAAkB,YANlB,EAOAhI,UAAW,QAPX,EAQAiI,eAAgB,CAAC,YAAa,aAR9B,EASA0H,mBAAoB,aATpB,EAUAtP,GAAI,CAAC,OAAQ,OAVb,IAcF,gBAAC,KAAD,CAAKnN,GAAI,CAAEuD,GAAI,GAAImD,SAAU,CAAC,QAAS,UAAWsO,EAAG,SACnD,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEhV,GAAI,CACFQ,QAAS,OACTK,oBAAqB,UACrBD,MAAO,QACPR,MAAO,OACPH,SAAU,WACVC,IAAK,CAAC,EAAG,IACTiN,GAAI,CAAC,OAAQ,GACbH,OAAQ,EACRzL,UAAW,WAGb,gBAAC,KAAD,KACE,gBAAC,KAAD,CAAM+N,KAAK,IAAItP,GAAI,CAAE+B,eAAgB,SACnC,gBAAC,KAAD,CAAKtB,UAAU,QAAQT,GAAIU,GAA3B,eAKJ,gBAAC,KAAD,KACE,gBAAC,KAAD,CACED,UAAU,QACVT,GAAIU,EACJH,QAAS,WACPzB,OAAOkT,SAAW,mCAJtB,gBAWJ,gBAAC,KAAD,CACEvR,UAAU,QACVT,GAAI,CACFC,SAAU,WACVyB,OAAQ,oBACRtB,MAAO,OACPmD,GAAI,CAAC,GAAI,IACT5B,GAAI,CAAC,GAAI,IACTT,GAAI,qBACJiC,GAAI,GACJgB,GAAI,CAAC,GAAI,GACTjE,IAAK,CAAC,GAAI,IACVqG,GAAI,GACJ4I,SAAU,OACV3O,QAAS,OACTyU,WAAY,YACZ,UAAW,CACT/T,GAAI,sBAIR,gBAAC,KAAD,CACET,UAAU,SACVT,GAAI,CACFY,MAAO,UACPgB,SAAU,CAAC,OAAQ,QACnBH,WAAY,WACZ0C,GAAI,EACJ/D,MAAO,OACPmB,UAAW,WAGb,gBAAC,KAAD,CAAK4C,GAAI,CAAC,EAAG,GAAInE,GAAI,CAAE4B,SAAU,CAAC,OAAQ,UACvC,sCAEH,gBAAC,KAAD,CAAM5B,GAAI,CAAEa,oBAAqB,CAAC,MAAO,aACvC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEb,GAAI,CACFuB,UAAW,SACX4C,GAAI,EACJ1C,WAAY,aAGb,8BAEH,gBAAC,KAAD,CACEzB,GAAI,CACFuB,UAAW,OACX0Q,GAAI,EACJvL,SAAU,OACVC,GAAI,SAIJ,kUAIN,gBAAC,KAAD,KACE,gBAAC,KAAD,CAAK3G,GAAI,CAAEmE,GAAI,EAAGoC,GAAI,CAAC,EAAG,KACvB,uBAEH,gBAAC,KAAD,CACEvG,GAAI,CACFuB,UAAW,OACXmF,SAAU,CAAC,QAAS,SACpBC,GAAI,SAGN,gBAAC,KAAD,CACE3G,GAAI,CACFa,oBAAqB,CAAC,YACtB6b,cAAe,OACfC,WAAY,IAGd,gBAAC,KAAD,uBACA,gBAAC,KAAD,UAEA,gBAAC,KAAD,2BACA,gBAAC,KAAD,UAEA,gBAAC,KAAD,qBACA,gBAAC,KAAD,WAEA,gBAAC,KAAD,6BACA,gBAAC,KAAD,WAEA,gBAAC,KAAD,2BACA,gBAAC,KAAD,WAEA,gBAAC,KAAD,yBACA,gBAAC,KAAD,WAEA,gBAAC,KAAD,oBACA,gBAAC,KAAD,yBAclBjc,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVuB,UAAW,OACXZ,MAAO,UACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,qBACJS,GAAI,OACJ4B,GAAI,GACJoD,GAAI,OACJvG,MAAO,CAAC,MAAO,KACfoD,SAAU,CAAC,QAAS,SACpBlC,OAAQ,UACRM,SAAU,CAAC,OAAQ,QACnBC,WAAY,OACZrB,QAAS,OACTM,WAAY,SACZ2C,eAAgB,SAChB3B,UAAW,OACXwB,WAAY,kDACZvB,eAAgB,OAChBC,cAAe,YACfiT,WAAY,YACZ,UAAW,CACT/T,GAAI,wBAIR,a,usECzNO,IAAM0b,EAAkB,SAAC3f,GAAW,IAAD,0BAClCC,EAAmBiF,EAAAA,mBACnBgG,EAASlL,EAAMmL,QACfkP,EAASra,EAAM+Y,QACfH,EAAO5Y,EAAM4Y,KAAOrN,KAAKC,MAAMxL,EAAM4Y,MAAQ,GAC7C0B,EAASta,EAAMsa,OAAS/O,KAAKC,MAAMxL,EAAMsa,QAAU,GACnD7O,EAAOzL,EAAMyL,KACb8O,EAAYva,EAAMua,UAClBqF,EAAgB5f,EAAM6f,gBAExB9M,EAAc,KACZ4H,EAAY,MAAGL,OAAH,EAAGA,EAAQnN,MAAK,SAACC,EAAGC,GAAJ,OAAWD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,KAC1Dyb,EAAS,MAAGD,OAAH,EAAGA,EAAe,IAC7BC,GAAa,MAACA,GAAAA,EAAWC,0BAC3B9H,EAAc6H,GAEhB,IAAMK,EAAgB,MAAGX,OAAH,EAAGA,EAAQxN,QAAO,SAACyG,GAAD,OAAWA,EAAMS,WAEzD,KAAkCzT,EAAAA,EAAAA,UAAS,MAA3C,GAAOO,EAAP,KAAkBC,EAAlB,KACA,KAA8BR,EAAAA,EAAAA,WAAS,GAAvC,GAAOK,EAAP,KAAgBC,EAAhB,KACA,KAA0CN,EAAAA,EAAAA,WAAS,GAAnD,GAAO6S,EAAP,KAAsBzH,EAAtB,KACA,KAAsCpL,EAAAA,EAAAA,UAAS,IAA/C,GAAO8S,EAAP,KAAoBC,GAApB,KACA,MAA0B/S,EAAAA,EAAAA,UAASwS,GAAnC,GAAOQ,GAAP,MAAcC,GAAd,MACA,MAA+BjT,EAAAA,EAAAA,WAAoB,OAAX,EAAAwS,QAAA,IAAatN,WAAY,GAAjE,GAAOA,GAAP,MAAiB0V,GAAjB,MACA,MAAyC5a,EAAAA,EAAAA,UAAS0a,GAAlD,GAAOG,GAAP,MAAsBC,GAAtB,MACA,MAA4B9a,EAAAA,EAAAA,UAAS,MAArC,GAAOkT,GAAP,MAAeC,GAAf,MACA,MAA8BnT,EAAAA,EAAAA,UAAS,MAAvC,GAAOoT,GAAP,MAAgBC,GAAhB,MACA,MAAsCrT,EAAAA,EAAAA,UAASga,GAA/C,GAAOiB,GAAP,MAAoBC,GAApB,MACA,MAA4Blb,EAAAA,EAAAA,UAAS,GAArC,GAMM8Y,IANN,YAMgBrZ,EAAM8f,UAChBxG,GAActZ,EAAM+f,aACpBC,GAAQhgB,EAAMigB,OACdC,GAAQlgB,EAAMmgB,OACdC,GAAQpgB,EAAMqgB,OAOpB,IAAM5G,GAAY,IAAIzM,MAAU,IAAIA,KAAKqM,IACnCK,GAAgB,IAAI1M,MAAU,IAAIA,KAAKsM,IAEvCgH,GAAmB,MAAL/M,IAAAA,GAAOqI,WAAa,IAAI5O,KAAKuG,GAAMqI,YAAc,KAC/D2E,GAAkBD,GACpB,IAAItT,KAAKsT,GAAYrT,UAAY,KACjC,KACEuT,GAAYD,IAAmBhN,IAAS,IAAIvG,MAAUuT,GAEtDE,GAAU,2DACVC,GAAW,2DAEX/G,IACK,MAAT7Y,GAAA,SAAAA,EAAW2B,UAAX,WAAoB4C,aAApB,IAA4ByH,QAAO,SAACvH,GAAD,OAASA,EAAIC,QAAUib,QAAY,GAElE7G,IACK,MAAT9Y,GAAA,SAAAA,EAAW2B,UAAX,WAAoB4C,aAApB,IAA4ByH,QAAO,SAACvH,GAAD,OAASA,EAAIC,QAAUkb,QAAa,GAEnE7B,GAAM,mBAAOlF,GAAaC,UAApB,EAAG,EAA6B5a,KAAI,SAAC6I,GAAD,OAAUA,EAAK9F,QAEzD4e,GAA+B,GADpB,MAAG9B,QAAH,EAAGA,GAAQzY,QAetBwa,GAAiB,MAAJhI,GAAAA,EAAMpK,MAAQ5H,SAAQ,MAACgS,OAAD,EAACA,EAAMpK,OAAS,IAInDqS,GACJ,0GAaIC,GACJ,2DAIIC,GAAa,2DASnB,IAAK9gB,EAAkB,OAAO,KAC9B,IAAKiL,EAAQ,OAAO,KAEpB,IAAMwQ,GAAmB,MAAGN,QAAH,EAAGA,GAAejO,MAAK,SAACC,EAAGC,GAAJ,OAC9CD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,KAGf4U,GACJR,KAAK,MAAIA,QAAJ,EAAIA,GAAOS,YAAW,MAACT,IAAAA,GAAOsH,yBAMjCK,IAJF3H,KAAK,MAAIA,QAAJ,EAAIA,GAAOS,WAAhB,MAA2BT,IAAAA,GAAOsH,yBAIjB,IACfmG,GAAa,EACbC,GAAoB,EACpBC,GAAS,EACRzH,GAEMA,KAAcC,IACnBsG,KAAOiB,GAAoB,GAC3Bf,KAAOe,GAAoB,GAC3Bb,KAAOa,GAAoB,IAE/BC,GAASD,GAAoBrB,GAChB,IAAGsB,GAAS,GACzBF,GAAaE,IACbF,IAAcL,IACG,KAAIK,GAAa,IAClC9F,GAAeiG,MAAMC,KAAKD,MAAMH,IAAYthB,QAAQV,KAAI,SAACqiB,GAAD,OAAOA,EAAI,MAC1D3H,KACTwB,GAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAb/BA,GAAe,GAgBjB,IAAM/F,GAAQ1P,GAAWmb,GACrB5E,GAAevW,GAAN,MAAoBmb,GAApB,MAAoCzL,GAApC,OAETmM,GAAW,eAAkBV,GAAlB,YACTW,GAAe9b,GAAWyb,GAASA,GAASzb,IAE7CiU,KAAkBsG,IAASE,IAASE,MACnCA,IAASc,GACXlF,IAAS,wBAA4BuF,GAA5B,MACArB,IAASgB,GAClBlF,IAAS,wBAA4BuF,GAA5B,MACAvB,IAASkB,KAClBlF,IAAS,wBAIRtC,KACH4H,IAAe,sBAGjB,IAAME,GAAiB/b,GAAWyb,GAC9BO,GACFD,GAAiB,GACbb,GACEa,GAAiB,GAAK,EACpBxY,KAAK0Y,MAAMF,GAAiB,GAC5BxY,KAAK0Y,MAAMF,GAAiB,EAAI,GAEpC,EAEFC,KAAgB/H,KAClBsC,IAAS,WAAeyF,GAAf,QACQ,GAAfA,GAAmB,MAAQ,QADpB,YAEJ5C,IAFI,SAEJA,GAAQzV,MAAM,EAAGqY,UAFb,EAEJ,EAA+B3D,KAAK,OAFhC,KAIX,IAAM6D,GAAO,MAAGpO,IAAH,SAAGA,GAAOjI,WAAV,EAAG,EAAawB,QAAO,SAACvH,GAAD,OAASA,EAAIU,SAAS,SAAOG,QAEjExD,EAAAA,EAAAA,YAAU,WASR,GAPE2Q,KACCA,GAAMsH,yBACY,UAAnBtH,GAAMmB,WAENzK,WAAWwK,GAAS,KAGlBlB,IAASA,GAAMoB,UAAW,CAAC,IAAD,EACtBC,GAAY,SAAArB,GAAMoB,gBAAN,IAAiBE,MAAM,QAAS,GAClDnB,GAAU,GAAD,OAAKkB,OAEf,IAEH,IAIMqH,GAAgB,6BAAG,+FACvBpb,GAAW,GADY,kBAGF4N,IAAAA,KACjB,oBACA,CACE8E,MAAO,CACL9N,SAAUA,GACV0F,QAASD,EACTiK,MAAOA,GACP+G,MAAM,GAAIF,GACVG,WAAY,UACZpD,QAASsB,EACT9X,QAAO,MAAEzB,OAAF,EAAEA,EAAWyB,QACpBsc,OACEA,GAAOzY,OAAS,IAAMsT,GAAtB,MACImF,IADJ,SACIA,GAAQzV,MAAM,EAAGqY,UADrB,EACI,EAA+B3D,KAAK,KACpC,OAGV,CACEnP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBAxBO,OAGfC,EAHe,OA6BrBhO,GAAW,GAEX,MAAIgO,GAAJ,SAAIA,EAAMC,OAAN,EAAY3P,IACdqU,GAAQ,MAAC3E,OAAD,EAACA,EAAMC,MACf2M,GAAeD,GAAc/V,IAC7BiO,GAAU,OAEVA,GAAS,MAAC7E,OAAD,EAACA,EAAMC,MApCG,gDAuCrBjI,QAAQ4D,MAAR,MAvCqB,yDAAH,qDA2ChB2R,GAAiB,6BAAG,WAAO9c,GAAP,kFACxBuB,GAAW,GADa,kBAIH4N,IAAAA,OAAA,WAAwBnP,EAAEH,GAAM,CACjDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBARU,OAIhBC,EAJgB,OAYtBhO,GAAW,GAEgB,IAAnB,MAAJgO,GAAA,SAAAA,EAAMC,WAAN,IAAYK,SAIdtN,OAAOkT,SAASsH,SAEhB3I,GAAU,OAAC7E,GAAD,SAACA,EAAMC,WAAP,EAAC,EAAYrE,QApBH,gDAuBtB5D,QAAQ4D,MAAR,MAvBsB,yDAAH,sDArPiB,SAgRzBgK,KAhRyB,oEAgRxC,8GACqBhG,IAAAA,IAAA,WAAqB8E,GAAMpU,GAAM,CAClDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBALd,OACQC,EADR,OASQiG,EATR,MASoBjG,OATpB,EASoBA,EAAMC,KAEJvD,KAAKyD,UAAUuE,KAAUhI,KAAKyD,UAAU8F,KAG1DtB,GAASsB,GAELA,EAAUd,SAAWT,GAAMS,UACvBgD,EADgC,OAEjCzD,IAFiC,IAGpCS,QAASc,EAAUd,QACnBK,cAAe,IAAIrH,OAErBqO,GAAgB,GAAD,OAAKD,GAAL,CAAoBpE,KACnCpD,GACE,kKAIAkB,EAAU+F,yBAA2BtH,GAAMsH,0BAC7CjH,GACE,iEAEF3J,YAAW,WACTpI,OAAOkT,SAAW,kBACjB,MAGDD,EAAUH,YACNC,GAAY,SAAAE,EAAUH,gBAAV,IAAqBE,MAAM,QAAS,GACtDjB,GAAW,IACXF,GAAU,GAAD,OAAKkB,MAIbE,EAAU+F,0BACP/H,EAAQgC,EAAUd,QAAU,IAAQ,IAC1C/J,WAAWwK,GAAS3B,IA9CxB,4CAhRwC,sBAkkBxC,OACE,gBAAC,IAAD,CAAenD,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,IAAE,GACAkB,GAAI,QACJd,MAAO,OACPC,OAAQ,CAAC,uBAHT,KAII,UAJJ,EAKAwU,gBALC,OAKuBhI,EALxB,MAMAiI,iBAAkB,YANlB,EAOAhI,UAAW,QAPX,EAQAiI,eAAgB,CAAC,YAAa,aAR9B,IAYF,gBAAC,KAAD,CACE/U,GAAI,CACFoB,EAAG,OACHmC,GAAI,OACJnD,MAAO,OACPmB,UAAW,QACXtB,SAAU,WACVK,OAAQ,KAGV,gBAAC,UAAD,CACEpD,iBAAkBA,EAClBI,cAvZY,SAAC+P,GACrBrP,EAAaqP,IAuZL9P,cAAeqL,EACfxG,SAAO,EACPhF,OAAQ,CAAE8C,IAAK,EAAGqG,GAAI,GACtBlJ,YAAa,CAAE6C,IAAK,WAGxB,gBAAC,KAAD,CAAKF,GAAI,CAAEuD,GAAI,CAAC,OAAQ,UACtB,gBAAC,KAAD,CACE9C,UAAU,QACVT,IAAE,GACA0G,SAAU,OACVzG,SAAU,WACVO,QAAS,QAHT,WAIU,CAAC,OAAQ,KAJnB,EAKAmZ,UAAW,IALX,EAMAxK,SAAU,OANV,EAOA8C,GAAI,OAPJ,EAQA/E,cAAe,SARf,EASAtL,SAAU,CAAC,OAAQ,QATnB,EAUAuL,GAAI,OAVJ,EAWA7M,OAAQ,GAXR,EAYAM,MAAO,UAZP,EAaAmN,QAAS,CAAC,QAbV,EAcArM,OAAQ,oBAdR,EAeA6E,GAAI,GAfJ,EAgBA/E,UAAW,IAhBX,EAiBAN,GAAI,oBAjBJ,IAoBF,gBAAC,KAAD,CAAKlB,GAAI,CAAEC,SAAU,WAAYE,MAAO,GAAID,IAAK,KAC/C,gBAAC,UAAD,CAAaa,IAAI,+BAEjBhD,GACA,gBAAC,KAAD,CAAKgK,IAAKsI,GACR,gBAAC,KAAD,CACE5P,UAAU,SACVT,GAAI,CACF4B,SAAU,CAAC,OAAQ,QACnBI,cAAe,cAGhBqO,EACG,wBACA,sCAKRG,KAAUI,KAAYI,IACtB,gBAAC,KAAD,KACGjT,GACC,gBAAC,KAAD,KACG0a,IAAeA,GAAc,EAC5B,gBAAC,KAAD,CACEzY,GAAI,CACFuG,GAAI,EACJ9E,WAAY,WACZG,SAAU,CAAC,QACXI,cAAe,cAGjB,4BAAOuc,IAEN7H,KAAcC,IAAiBsH,IAAc,GAC5C,gBAAC,KAAD,KACE,gBAAC,KAAD,CACE1X,GAAI,EACJvG,GAAI,CACFsD,WACE,oDAJN,oDAYFqT,IAAkBD,IAAauH,GAAa,IAC5C,gBAAC,KAAD,KACE,gBAAC,KAAD,CAAK1X,GAAI,GACP,gBAAC,KAAD,+BAGF,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEvG,IAAE,GACA0B,OAAQ,OACRd,MAAO,WAFP,SAGQ,oBAHR,EAIAM,GAAI,QAJJ,EAKAjB,SAAU,WALV,EAMAyG,SAAU,QANV,EAOApG,OAAQ,MAPR,EAQAsB,SAAU,OARV,EASAsM,QAAS,kBATT,EAUA5K,WACE,kDAXF,EAYA3B,GAAI,MAZJ,EAaA4B,GAAI,OAbJ,EAcAgD,GAAI,OAdJ,EAeAhF,UAAW,SAfX,GAiBFmD,MAAOhC,GACPsC,SAAU,SAACxI,GAAD,OAAO4b,GAAW5b,EAAEyI,OAAOP,SAnBvC,SAqBGyT,SArBH,EAqBG,EAAclc,KAAI,SAACyd,GAAD,OACjB,0BAAQ3R,IAAK2R,GAASA,OAG1B,gBAAC,KAAD,CACEjZ,UAAU,SACVT,IAAE,GACAY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,QACX2E,GAAI,QAJJ,KAKI,GALJ,IAQD0S,IAEH,gBAAC,KAAD,CACEjZ,GAAE,KACGU,GAELH,QAAS1C,EAAU,KAAOqb,IAEzBrb,EAAU,qBAAuB,aAO5C,gBAAC,KAAD,KACE,gBAAC,IAAD,CACEiS,QAAS,CACPqC,QAAQ,oCACR5E,WAAW,EACXwC,MAAO,SAUtBhS,GAAa2S,IAAUA,GAAOrN,OAAS,GACtC,gBAAC,KAAD,WACGqN,QADH,EACGA,GAAQzU,KAAI,SAACyL,GAAD,OACX,gBAAC,KAAD,CACEjH,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,QACXL,UAAW,OACX4C,GAAI,GACJoC,GAAI,GACJI,GAAI,OACJD,SAAU,MAGXgB,OAMR3J,IAAS,MAAIyS,QAAJ,EAAIA,GAAOpU,KACnB,gBAAC,KAAD,KACGwU,IACC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEnQ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPgB,SAAU,CAAC,QACXH,WAAY,WACZsD,GAAI,KAGN,gBAAC,KAAD,KAAO6L,MAKZI,KAAiBJ,IAChB,gCACE,gBAAC,KAAD,CACEnQ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,QACXuC,GAAI,KAGN,gBAAC,KAAD,kHAKLqM,IAAS,CAAC,KAAM,UAAUtN,SAASsN,GAAMmB,YACxC,gBAAC,KAAD,CAAK3R,GAAI,IACP,gBAAC,KAAD,CACES,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,QACXuC,GAAI,GACJnC,cAAe,cAPnB,cAkBA,gBAAC,KAAD,CACEvB,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,WALf,MAQM4O,QARN,EAQMA,GAAO9N,UARb,KASuB,IAAd,MAAL8N,QAAA,EAAAA,GAAO9N,UAAgB,SAAW,WATtC,KAWIkc,GAAO,KACEA,GADF,KAEU,GAAXA,GACI,qBACA,uBAEN,IAjBR,KAkBO3F,KAGL5I,KACEG,GAAM6B,eAAiB7B,GAAMoB,YAC7B,gBAAC,KAAD,CACEnR,UAAU,SACVT,GAAE,OAAOU,GAAP,IAAqB6F,GAAI,KAC3BhG,QAAS1C,EAAU,KAvhBnB,WACtBC,GAAW,GACXyS,GAAe,mBAEf,IAAM+B,EAAiB,6BAAG,4KACGvU,EAAUwB,aADb,cACpBgT,EADoB,OAGlBsM,EAAU/E,OAAqB,IAAdtJ,GAAM4B,OACzByH,EAAgBC,OAAOtJ,GAAM4B,MAAQyM,GACnCrM,EAAaD,EAEbuJ,EAAStL,GAAM4L,aAAe,GAChC9Z,EAAS,GACbwZ,EAAOlZ,SAAQ,SAACkC,GAAU,IAAD,IACjBuX,EAAK,MAAGte,GAAH,SAAGA,EAAW2B,UAAd,SAAG,EAAoB4C,aAAvB,EAAG,EAA4BC,MACxC,SAAC+Z,GAAD,OAAUA,EAAKtd,MAAQ8F,KAErBuX,IACEA,EAAM5Z,QAAUib,IAAWrB,EAAM5Z,QAAUkb,IAC7Crb,EAAOQ,KAAK,CAAEmQ,KAASoJ,EAAM5Z,OAAX,IAAqB4Z,EAAMrd,KAAQ0D,SAAU,QAK/Doc,EAAgB,CACpBtf,QAzQJ,0GA0QIwT,OAAQ6G,GAGJkF,EAAmB,MAANzc,GAAAA,EAAQe,OACvB,CACE7D,QAASse,GACT9K,OAAQ6L,EACRvc,OAAQA,GAEV,CACE9C,QAASse,GACT9K,OAAQ6L,GAGV9L,EAAa,CACf+L,EACAC,EACA,CACEvf,QAASgT,EACTQ,OAAQ,IACR+G,aAAY,MAAEvJ,IAAF,SAAEA,GAAOjI,WAAT,EAAE,EAAatM,KAAI,SAACuG,GAC9B,IAAMwV,EAAWxV,EAAIU,SAAS,MAAQ8a,GAAaD,GAC7C9F,EAAezV,EAAIU,SAAS,MA1Q1C,uFAJA,uFAiRQ,MAAO,CACL8W,UAAWxX,EACXE,SAAU,IACVsV,SAAUA,EACVC,aAAcA,QAMlBgC,EAAW,GACXC,EAAgB,GAChB8E,EAAa,GACbC,EAAkB,GAEjB,MAALzO,IAAA,SAAAA,GAAOjI,OAAP,EAAa3F,SAAQ,SAACJ,EAAKoM,GACzB,GAAIpM,EAAIU,SAAS,MAAO,CACtB,IAAMgU,EAAkBgI,EACpB/E,EAAY3R,KAAKC,MAAMD,KAAKyD,UAAUiL,EAAgB1U,KAC1D2X,EAAUtL,MACR,8DACFsL,EAAUnb,KACR,8DACFmb,EAAUc,UACR,8DACFd,EAAUe,QACR,8DACFf,EAAUrH,QACR,8DACFqH,EAAUtH,UACR,8DACFsH,EAAUgB,YAAc,CACtB,8DACA,8DACA,+DAEF6D,EAAWxc,GAAO0U,EAAgB1U,GAClCyc,EAAgBzc,GAAO2X,MAClB,CAAC,IAAD,IACCjD,EAAkBiI,EACpBhF,EAAY3R,KAAKC,MAAMD,KAAKyD,UAAUiL,EAAgB1U,KAC1D2X,EAAUtL,MACR,8DACFsL,EAAUnb,KACR,8DACFmb,EAAUc,UACR,8DACFd,EAAUe,QACR,8DACFf,EAAUrH,QACR,8DACFqH,EAAUtH,UACR,8DACFsH,EAAUgB,YAAc,CACtB,8DACA,8DACA,8DACA,8DACA,+DAEFve,OAAOD,KAAKwd,EAAUC,YAAYxX,SAAQ,SAACyX,GACzCF,EAAUC,WAAWC,GACnB,kDAEJ,SAAIF,EAAUiB,QAAd,SAAI,EAAkB,KAAlB,EAAsBpc,OACxBmb,EAAUiB,MAAM,GAAGH,UACjB,8DACFd,EAAUiB,MAAM,GAAGpc,KACjB,8DACFmb,EAAUiB,MAAM,GAAGra,IACjB,+DAGJkZ,EAASzX,GAAO0U,EAAgB1U,GAChC0X,EAAc1X,GAAO2X,MAInBiF,EAAQxiB,OAAOD,KAAKqiB,GAAY3b,OAAS,EAE3CmQ,EAAW4L,EACX,CACE,YACGpB,IAAagB,EADhB,EAEGjB,IAAkB9D,EAFrB,IAKF,CACE,YACG8D,IAAkB9D,EADrB,IAKFvH,EAAgB0M,EAChB,CACE,YACGpB,IAAaiB,EADhB,EAEGlB,IAAkB7D,EAFrB,IAKF,CACE,YACG6D,IAAkB7D,EADrB,IAKAI,EAAevc,EAAUwc,aAAa/G,GAExCN,EAAQ,KACRC,EAAQ,KACRC,EAAc,KA7JM,oBAgKRrV,EAAUsV,cAhKF,eAgKtBH,EAhKsB,iBAiKRnV,EAAUuV,eAjKF,eAiKtBH,EAjKsB,iBAkKFpV,EAAUqV,YAAY,CACxCG,eAAgBhB,EAChBQ,WAAYA,EACZS,SAAUd,EACV4H,aAAcA,EACd7G,aAAa,EACbC,SAAUR,EACVS,WAAgB,OAAL,EAAAR,QAAA,IAAO/W,KAAM,EACxBwX,IAAK,KACL4G,UAAU,IA3KU,QAkKtBpH,EAlKsB,0DA+KJ,qBADdS,EA9KkB,kBA8KL,KAAKrP,WAEpBqP,EACE,qEACJ/P,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,GAAU,CAAC,6CAA8CkD,IApLnC,eAuLpBC,EAAe,KAvLK,oBAyLD/V,EAAUgW,OAAOX,GAAa,GAzL7B,QAyLtBU,EAzLsB,OA0LtBvD,GAAe,qBA1LO,mDA6LtBzS,GAAW,GA7LW,YAgMpBgW,EAhMoB,kCAkMhBhI,EAAO,KAlMS,UAmMPJ,IAAAA,KAAA,mBACQ8E,GAAMpU,GACzB,CACEgX,YAAAA,EACAf,cAAeyB,EACfE,YAAaxB,GAEf,CACE5G,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBA9MM,QAmMpBC,EAnMoB,OAmNpB,SAAIA,IAAJ,SAAI,EAAMC,OAAN,EAAY6E,SACdC,GACE,8FAEF/S,GAAW,GACX6S,GAAU,IACJsD,EANiB,OAOlBzD,IAPkB,IAQrBmB,UAAW,YACXU,cAAeyB,IAEjBrD,GAASwD,GAGT/M,WAAWwK,GAAS,OAEpB5N,QAAQC,IAAR,SAAY+H,QAAZ,EAAY,EAAMC,MACZmI,GAAoB,OAAJ,EAAApI,IAAA,WAAMC,WAAN,IAAY2E,SAAU,GAC5C5S,GAAW,GACX6S,GAAU,CACR,+IADO,OAEJuD,KAxOa,mDA4OpBpQ,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,GAAU,CACR,sFADQ,OA9OU,gCAoPtB7M,QAAQ4D,MAAMoM,GACdhW,GAAW,GArPW,2EAAH,qDAwPlBD,GAASyU,MA6RSzU,EACGyS,GAAe,UACfE,GAAMoB,UACN,aACA,WAGT6L,IACC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEzd,GAAIU,EACJH,QAAS,kBAAM8Y,GAAkB7I,MAEhC,mBASdzS,IAA0B,MAAbsa,QAAA,EAAAA,GAAehV,QAAS,GACpC,gBAAC,KAAD,CACErD,GAAI,CACFkB,GAAI,QACJS,GAAI,OACJR,aAAc,OACdoF,GAAI,OACJ3F,MAAO,YAGT,gBAAC,KAAD,CACEH,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,QACXwL,GAAI,IANR,yCATF,MAoBGuL,QApBH,EAoBGA,GAAqB1c,KAAI,SAACwe,EAAiB7L,GAAW,IAAD,IAC9CyC,EAAc,IAAIpH,KAAJ,MAASwQ,OAAT,EAASA,EAAiBnJ,eAKxCoJ,EAJkB,IAAIzQ,KAAJ,MACtBwQ,OADsB,EACtBA,EAAiBnJ,eAGoBqJ,SACrCtJ,EAAYuJ,WAAa,GAErBC,EACJ,IAAI5Q,KAASyQ,GACbD,EAAgBxJ,UACfwJ,EAAgB3C,wBAEfgD,EAA0B,MAAfL,GAAAA,EAAiB3C,wBAC5B,YACA,UAEJ,OADI+C,IAAcC,EAAW,UAE3B,gBAAC,KAAD,CAAK/S,IAAG,MAAE0S,OAAF,EAAEA,EAAiBre,IACZ,aAAZ0e,GACC,gBAAC,KAAD,CACEra,UAAU,SACVT,GAAI,CACFY,MAAO,UACPgB,SAAU,CAAC,QACX2E,GAAI,KALR,WAWF,gBAAC,KAAD,CACE9F,UAAU,SACVT,GAAI,CACFY,MAAO,UACPgB,SAAU,CAAC,QACX2E,GAAI,KALR,oBAQgBkU,OARhB,EAQgBA,EAAiB/X,WAEjC,gBAAC,KAAD,CACEjC,UAAU,SACVT,GAAI,CACFY,MAAO,UACPgB,SAAU,CAAC,QACX2E,GAAI,KALR,UAQaqT,OAAM,MAACa,OAAD,EAACA,EAAiBrI,QAExB,aAAZ0I,GACC,gBAAC,KAAD,CACEra,UAAU,SACVT,GAAI,CACFY,MAAO,UACPgB,SAAU,CAAC,QACX2E,GAAI,KALR,gBAQYkU,GARZ,SAQYA,EAAiBlS,WAR7B,EAQY,EAAuBwS,KAAK,QAI1C,gBAAC,KAAD,CACEta,UAAU,SACVT,GAAI,CACFY,MAAO,UACPgB,SAAU,CAAC,QACX2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,WAPd,iBAUasL,OAVb,EAUaA,EAAiBtB,QAE9B,gBAAC,KAAD,CACE1Y,UAAU,SACVT,IAAE,GACAY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,QACX2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,UARP,IAFJ,YAcE,qBACEgO,KAAI,6CAAwCmL,OAAxC,EAAwCA,EAAiBxJ,SAC7DhM,OAAO,UAENwV,EAAgBxJ,UAGrB,gBAAC,KAAD,CACExQ,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,QACX2E,GAAI,KANR,kCAuBhB7F,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVuB,UAAW,OACXZ,MAAO,UACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,qBACJS,GAAI,OACJ4B,GAAI,GACJoD,GAAI,OACJvG,MAAO,CAAC,MAAO,KACfoD,SAAU,CAAC,QAAS,SACpBlC,OAAQ,UACRM,SAAU,CAAC,QACXC,WAAY,OACZrB,QAAS,OACTM,WAAY,SACZ2C,eAAgB,SAChB3B,UAAW,OACXwB,WAAY,kDACZvB,eAAgB,OAChBC,cAAe,YAEf,UAAW,CACTd,GAAI,UACJN,MAAO,UAIX,a,+0BChjCO,IAAMye,EAAmB,SAACpiB,GAC/B,IAAMqiB,EAAariB,EAAMsiB,wBACnBC,EAAWviB,EAAMwiB,sBACjBpJ,EAAOpZ,EAAMiZ,MACbL,EAAO5Y,EAAM4Y,KAAOrN,KAAKC,MAAMxL,EAAM4Y,MAAQ,KAG7C6J,EAAY,IAAIzV,KAAKqV,GACrBK,EAAU,IAAI1V,KAAKuV,GAGnBlJ,EAAU,IAAIrM,KAAK4L,EAAKkH,UAGxBxG,EAAc,IAAItM,KAAK4L,EAAK8B,aAG5BiI,GADoBF,EAAUlO,qBAA0BkO,EAAUjO,qBAChDkO,EAAQnO,qBAAd,MAAwCmO,EAAQlO,sBAK5DoO,GAHiBvJ,EAAQ9E,qBAA0B8E,EAAQ7E,qBACtC8E,EAAY/E,qBAA0B+E,EAAY9E,qBAE3D,IAAIxH,KAASyV,GACzBI,EAAa,IAAI7V,KAAS0V,EAE1Bnb,EAAU6R,EAAI,2DAIpB,OACE,gBAAC,IAAD,CAAezJ,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,GAAI,CACFI,MAAO,OACPoB,UAAW,QACX2L,GAAI,CAAC,IAAK,GACVjM,GAAI,YAGN,gBAAC,KAAD,CACEH,IAAK8L,EACL7M,GAAI,CACFI,MAAO,CAAC,QAAS,SACjBH,SAAU,QACV+M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,KAGZ,gBAAC,KAAD,CACEN,GAAI,CACFkB,GAAI,cACJd,MAAO,CAAC,MAAO,SACfsG,SAAU,OACVzG,SAAU,WACVO,QAAS,OACT0M,cAAe,SACf+E,GAAI,OACJ/R,IAAK,EACLC,MAAO,CAAC,GAAI,IACZgB,aAAc,OACdiM,GAAI,OACJ7J,GAAI,CAAC,OAAQ,QACb4J,GAAI,OACJ7M,OAAQ,KAGTuf,GACC,gBAAC,KAAD,KACGxJ,GACC,gBAAC,KAAD,CACErW,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KALR,+BAYF,gBAAC,KAAD,CACE1D,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KAGLK,GAaH,gBAAC,KAAD,CACE/D,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KANR,0EAaH2b,GACC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACErf,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KANR,sBASyByb,EATzB,eAcJ,gBAAC,KAAD,CACEnf,UAAU,SACVT,GAAE,KAAOU,GACTH,QAAS,kBAAMwf,QAAQC,SAHzB,SAQF,gBAAC,KAAD,CACEhgB,GAAI,CACFC,SAAU,QACV+M,OAAQ,GACRC,KAAM,CAAC,QAAS,GAChB9M,MAAO,EACPG,OAAQ,EACRoG,SAAU,QACVC,GAAI,SAGN,gBAAC,KAAD,CACE3G,GAAI,CACFa,oBAAqB,oBACrBC,WAAY,WAGd,6BACA,gBAAC,KAAD,CAAWd,GAAI,CAAEY,MAAO,QAASa,WAAY,aAC1C,2BAEH,gBAAC,KAAD,CACEV,IAAKoV,EACLnW,GAAI,CACFI,MAAO,CAAC,WAGZ,kCAQNM,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVC,IAAK,GACLU,MAAO,qBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,UACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAIjB,a,+0BCzMO,IAAMod,EAAmB,SAACpiB,GAC/B,IAAMqiB,EAAariB,EAAMsiB,wBACnBC,EAAWviB,EAAMwiB,sBACjBpJ,EAAOpZ,EAAMiZ,MACbL,EAAO5Y,EAAM4Y,KAAOrN,KAAKC,MAAMxL,EAAM4Y,MAAQ,KAG7C6J,EAAY,IAAIzV,KAAKqV,GACrBK,EAAU,IAAI1V,KAAKuV,GAGnBlJ,EAAU,IAAIrM,KAAK4L,EAAKkH,UAGxBxG,EAAc,IAAItM,KAAK4L,EAAK8B,aAG5BiI,GADoBF,EAAUlO,qBAA0BkO,EAAUjO,qBAChDkO,EAAQnO,qBAAd,MAAwCmO,EAAQlO,sBAK5DoO,GAHiBvJ,EAAQ9E,qBAA0B8E,EAAQ7E,qBACtC8E,EAAY/E,qBAA0B+E,EAAY9E,qBAE3D,IAAIxH,KAASyV,GACzBI,EAAa,IAAI7V,KAAS0V,EAE1Bnb,EAAU6R,EAAI,2DAIpB,OACE,gBAAC,IAAD,CAAezJ,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,GAAI,CACFI,MAAO,OACPoB,UAAW,QACX2L,GAAI,CAAC,IAAK,GACVjM,GAAI,YAGN,gBAAC,KAAD,CACEH,IAAK8L,EACL7M,GAAI,CACFI,MAAO,CAAC,QAAS,SACjBH,SAAU,QACV+M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,KAGZ,gBAAC,KAAD,CACEN,GAAI,CACFkB,GAAI,cACJd,MAAO,CAAC,MAAO,SACfsG,SAAU,OACVzG,SAAU,WACVO,QAAS,OACT0M,cAAe,SACf+E,GAAI,OACJ/R,IAAK,EACLC,MAAO,CAAC,GAAI,IACZgB,aAAc,OACdiM,GAAI,OACJ7J,GAAI,CAAC,OAAQ,QACb4J,GAAI,OACJ7M,OAAQ,KAGTuf,GACC,gBAAC,KAAD,KACGxJ,GACC,gBAAC,KAAD,CACErW,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KALR,+BAYF,gBAAC,KAAD,CACE1D,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KAGLK,GAaH,gBAAC,KAAD,CACE/D,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KANR,0EAaH2b,GACC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACErf,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KANR,sBASyByb,EATzB,eAcJ,gBAAC,KAAD,CACEnf,UAAU,SACVT,GAAE,KAAOU,GACTH,QAAS,kBAAMwf,QAAQC,SAHzB,SAQF,gBAAC,KAAD,CACEhgB,GAAI,CACFC,SAAU,QACV+M,OAAQ,GACRC,KAAM,CAAC,QAAS,GAChB9M,MAAO,EACPG,OAAQ,EACRoG,SAAU,QACVC,GAAI,SAGN,gBAAC,KAAD,CACE3G,GAAI,CACFa,oBAAqB,oBACrBC,WAAY,WAGd,6BACA,gBAAC,KAAD,CAAWd,GAAI,CAAEY,MAAO,QAASa,WAAY,aAC1C,2BAEH,gBAAC,KAAD,CACEV,IAAKoV,EACLnW,GAAI,CACFI,MAAO,CAAC,WAGZ,kCAQNM,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVC,IAAK,GACLU,MAAO,qBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,UACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAIjB,a,i0BClNO,IAAMge,EAAe,SAAC,GAAsC,IAAD,IAAnCzS,KAAAA,OAAmC,MAA5B,aAA4B,MAAdxN,GAAAA,OAAc,MAAT,GAAS,EAChE,OACE,gBAAC,IAAD,CAAe4M,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,GAAE,GACA4B,SAAU,CAAC,QACXxB,MAAO,OACPQ,MAAO,UACPW,UAAW,SACX4C,GAAI,IACDnE,IAGL,gBAAC,KAAD,CACEuN,WAAS,EACTC,KAAMA,EACNC,MAAM,OACNC,MAAO,CACL,CACEC,KAAM,EACNC,OAAQ,IACRC,KAAM,OAER,CACED,OAAQ,IACRC,KAAM,aASpB,a,qjCCrCO,SAASlE,EAAe5C,EAAcgB,GAC3C,QAA0BmY,EAAAA,UAAe,WACvC,IAAMC,EAAcrhB,OAAOgI,aAAa/G,QAAQgI,GAChD,OAAuB,OAAhBoY,EAAuB3X,KAAKC,MAAM0X,GAAepZ,KAF1D,GAAOrC,EAAP,KAAcC,EAAd,KAOA,OAHAub,EAAAA,WAAgB,WACdphB,OAAOgI,aAAalH,QAAQmI,EAAKS,KAAKyD,UAAUvH,MAC/C,CAACqD,EAAKrD,IACF,CAACA,EAAOC,GAGjB,a,gJCAayb,EAAW,SAACnjB,GAAW,IAAD,EAC3ByY,EAAQlN,KAAKC,MAAMxL,EAAMyY,OACzBC,EAAYnN,KAAKC,MAAMxL,EAAM0Y,WAE7BE,EAAI,MAAGH,OAAH,EAAGA,EAAOnT,MAAK,SAACsT,GAAD,MAAuB,QAAbA,EAAK7W,QAClCqhB,EAAQ,MAAG1K,OAAH,EAAGA,EAAWpT,MAAK,SAACwT,GAAD,OAAWA,EAAMC,UAAN,MAAiBH,OAAjB,EAAiBA,EAAMzZ,OACzD,MAAGikB,GAAAA,EAAUnK,MAKvB,OACE,gBAAC,IAAD,CAAetJ,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,IAAE,GACAkB,GAAI,QACJd,MAAO,OACPC,OAAQ,CAAC,sBAAuB,UAHhC,KAII,UAJJ,IAOF,gBAAC,KAAD,CACEU,IAAK8L,EACL7M,GAAI,CACFI,MAAO,CAAC,QAAS,SACjBH,SAAU,QACV+M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,KAGZ,gBAAC,KAAD,CACEN,GAAI,CACFkB,GAAI,cACJd,MAAO,CAAC,MAAO,SACfsG,SAAU,OACVzG,SAAU,WACVC,IAAK,CAAC,OAAQ,SACdC,MAAO,CAAC,GAAI,IACZgB,aAAc,OACdC,EAAG,OACHQ,SAAU,CAAC,OAAQ,QACnB+E,GAAI,CAAC,OAAQ,GACbwG,GAAI,OACJ7M,OAAQ,KAGV,gBAAC,KAAD,CACEG,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,UA7CnB,6DAuBR,MA2BGqR,OA3BH,EA2BGA,EAAOzZ,KAAI,SAAC4Z,GACX,IAAMyK,EAAY,MAAG3K,OAAH,EAAGA,EAAWpT,MAC9B,SAAC8d,GAAD,OAAcA,EAASrK,SAAWH,EAAKzZ,MAEnCmkB,EAAeD,EAAY,wBAC3BE,EAAeF,EAAY,kCAIjC,OACE,gCACGA,GACC,gBAAC,KAAD,CACE7f,UAAU,SACVT,GAAI,CACFuB,UAAW,SACXtB,SAAU,WACVC,IAAK,EACLU,MAAO,qBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,UACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAGjBqN,KAAI,SAAWuG,EAAK4K,cA1BtB,cA+BAH,GACA,gBAAC,KAAD,CACE7f,UAAU,SACVT,GAAI,CACFuB,UAAW,SACXtB,SAAU,WACVC,IAAK,EACLU,MAAO,qBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,UACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAGjBqN,KAAI,IAAMkR,EAAN,IAAsB3K,EAAKzZ,GAA3B,IAAiCyZ,EAAK4K,cAEtCF,EA5BN,IA4BsB1K,EAAK7W,KA5B3B,cAmCV,gBAAC,KAAD,CACEgB,GAAI,CACFC,SAAU,QACV+M,OAAQ,GACRC,KAAM,CAAC,QAAS,GAChB9M,MAAO,EACPG,OAAQ,EACRoG,SAAU,QACVC,GAAI,SAGN,gBAAC,KAAD,CACE3G,GAAI,CACFa,oBAAqB,oBACrBC,WAAY,WAGd,6BACA,gBAAC,KAAD,CAAWd,GAAI,CAAEY,MAAO,QAASa,WAAY,aAC1C,2BAEH,gBAAC,KAAD,CACEV,IAAKoV,EACLnW,GAAI,CACFI,MAAO,CAAC,WAGZ,kCAQZ,a,uxDCnLA,IAAMsgB,EAAc,CAClB,4DACA,2DACA,qFACA,2DACA,6DACA,wDACA,oDACA,sEACA,mEACA,uDACA,8EACA,sDACA,oGACA,2DACA,uEACA,yDACA,0DACA,4DACA,qDACA,4EACA,sEACA,0DACA,qDACA,6DACA,uDACA,2DACA,kEACA,yDACA,mDACA,4DAUWC,EAAmB,SAAC1jB,GAC/B,IARuB2jB,EACnBC,EAOJ,KAAwCrjB,EAAAA,EAAAA,YAPpCqjB,EAAM5a,KAAKC,MAAMD,KAAKE,SAAWua,EAAYrd,UACtCud,IAAUC,EAAM5a,KAAKC,MAAMD,KAAKE,SAAWua,EAAYrd,SAC9Dwd,GAAOD,IAAUC,EAAM5a,KAAKC,MAAMD,KAAKE,SAAWua,EAAYrd,SAC3Dwd,IAIP,GACA,GADA,UACA,GAAoCrjB,EAAAA,EAAAA,UAAS,MAA7C,IAAOsjB,EAAP,KAAmBC,EAAnB,MAEAlhB,EAAAA,EAAAA,YAAU,WACRkhB,EAAcL,EAAYza,KAAKC,MAAMD,KAAKE,SAAWua,EAAYrd,YAChE,IAEH,IAAMic,EAAariB,EAAMsiB,wBACnBC,EAAWviB,EAAMwiB,sBACjBpJ,EAAOpZ,EAAMiZ,MACb8K,EAAQ/jB,EAAMgkB,OACdpL,EAAO5Y,EAAM4Y,KAAOrN,KAAKC,MAAMxL,EAAM4Y,MAAQ,KAG7C6J,EAAY,IAAIzV,KAAKqV,GACrBK,EAAU,IAAI1V,KAAKuV,GAGnBlJ,EAAU,IAAIrM,KAAK4L,EAAKkH,UAGxBxG,EAAc,IAAItM,KAAK4L,EAAK8B,aAE5BuJ,EAAoBxB,EAAUlO,qBAAhB,MAA0CkO,EAAUjO,qBAMlEoO,GALkBF,EAAQnO,qBAA0BmO,EAAQlO,qBAE3C6E,EAAQ9E,qBAA0B8E,EAAQ7E,qBACtC8E,EAAY/E,qBAA0B+E,EAAY9E,qBAE3D,IAAIxH,KAASyV,GACzBI,EAAa,IAAI7V,KAAS0V,EAEhC,OACE,gBAAC,IAAD,CAAe/S,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,GAAI,CACFI,MAAO,OACPoB,UAAW,QACX2L,GAAI,CAAC,IAAK,GACVjM,GAAI,YAaN,gBAAC,KAAD,CACElB,GAAI,CACFkB,GAAI,cACJd,MAAO,CAAC,MAAO,SACfsG,SAAU,OACVzG,SAAU,WACVO,QAAS,OACT0M,cAAe,SACf+E,GAAI,OACJ/R,IAAK,EACLC,MAAO,CAAC,GAAI,IACZgB,aAAc,OACdiM,GAAI,OACJ7J,GAAI,CAAC,OAAQ,QACb4J,GAAI,OACJ7M,OAAQ,KAGTuf,GACC,gBAAC,KAAD,KACGmB,GACC,gBAAC,KAAD,CACEhhB,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,QALR,eAWDkS,GACC,gBAAC,KAAD,CACErW,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,QALR,+BAWF,gBAAC,KAAD,CACE1D,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KANR,iDASoD+c,EATpD,YAWA,gBAAC,KAAD,CACEngB,IAAK+f,EACL9gB,GAAI,CACFI,MAAO,CAAC,QACRH,SAAU,WACVK,OAAQ,EACRoG,SAAU,QACViT,UAAW,QACX7M,UAAW,UACXC,eAAgB,WAKvB+S,GACC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACErf,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,GACJoC,GAAI,KAPR,sBAeJ,gBAAC,KAAD,CACE9F,UAAU,SACVT,GAAE,KAAOU,GACTH,QAAS,kBAAMwf,QAAQC,SAHzB,SAQF,gBAAC,KAAD,CACEhgB,GAAI,CACFC,SAAU,QACV+M,OAAQ,GACRC,KAAM,CAAC,QAAS,GAChB9M,MAAO,EACPG,OAAQ,EACRoG,SAAU,QACVC,GAAI,SAGN,gBAAC,KAAD,CACE3G,GAAI,CACFa,oBAAqB,oBACrBC,WAAY,WAGd,6BACA,gBAAC,KAAD,CAAWd,GAAI,CAAEY,MAAO,QAASa,WAAY,aAC1C,2BAEH,gBAAC,KAAD,CACEV,IAAKoV,EACLnW,GAAI,CACFI,MAAO,CAAC,WAGZ,kCAQNM,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVC,IAAK,GACLU,MAAO,mBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,UACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAIjB,a,+oEC3OA,IAAMkV,EAAc,CAClB,uEACA,gEACA,2EACA,gEACA,yDACA,mEACA,+DACA,qDACA,yEACA,wDACA,uEACA,wDACA,+DACA,uEACA,yDACA,sEACA,gEACA,+DACA,wDACA,4DACA,mFACA,2DACA,yEACA,8EACA,0GACA,sDACA,iFACA,0EACA,4DACA,iEACA,0DACA,wDACA,sDACA,8DACA,gEACA,qDACA,8DAMWgK,EAAW,SAAClkB,GAAW,IAAD,EAC3BC,EAAmBD,EAAMoa,OACzBlP,EAASlL,EAAMmL,QACfkP,EAASra,EAAM+Y,QACfoL,EAAYnkB,EAAMgkB,OAClBI,EAAWpkB,EAAMiZ,MACjBoL,EAAarkB,EAAMskB,YACnBhK,EAASta,EAAMsa,OAAS/O,KAAKC,MAAMxL,EAAMsa,QAAU,GACnD7O,EAAOzL,EAAMyL,KACb8O,EAAYva,EAAMua,UAClB3B,EAAO5Y,EAAM4Y,KAAOrN,KAAKC,MAAMxL,EAAM4Y,MAAQ,KAC7CU,EAAc,IAAItM,KAAJ,MAAS4L,OAAT,EAASA,EAAM8B,aAC7BrB,EAAc,MAAJT,GAAAA,EAAMkH,SAAW,IAAI9S,KAAJ,MAAS4L,OAAT,EAASA,EAAMkH,UAAY,KACtDyE,EAAe,MAAJ3L,GAAAA,EAAM4L,UAAY,IAAIxX,KAAJ,MAAS4L,OAAT,EAASA,EAAM4L,WAAa,KAEzD5B,EAAY,IAAI5V,KAASsM,EACzBmL,EAAY,IAAIzX,KAASuX,EACzBG,EAAW,IAAI1X,KAASqM,EAExB0K,EAAQI,IAAeM,GAAa7B,GAAcyB,GAClDjL,EAAOgL,IAAcM,GAAY9B,GAAcyB,GAEjDzD,EAAahI,EAAKpK,OAAS,GAC3B4K,IAAMwH,EAAahI,EAAK+L,UACxBZ,IAAOnD,EAAahI,EAAKgM,WAE7B,IAAM9J,EAAgBlC,EAAKiM,gBA5B3B,0GA6BM9J,EAAWnC,EAAKkM,UAChB9J,EAAepC,EAAKmM,cAEtBhS,EAAc,KACZ4H,EAAY,MAAGL,OAAH,EAAGA,EAAQnN,MAAK,SAACC,EAAGC,GAAJ,OAAWD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,KAC1Dyb,EAAS,MAAGD,OAAH,EAAGA,EAAe,IAC7BC,GAAa,MAACA,GAAAA,EAAWC,0BAC3B9H,EAAc6H,GAEhB,IAAMK,EAAgB,MAAGX,OAAH,EAAGA,EAAQxN,QAAO,SAACyG,GAAD,OAAWA,EAAMS,WAOzD,IAAK/T,EAAkB,OAAO,KAC9B,IAAKiL,EAAQ,OAAO,KAEpB,SAAkC3K,EAAAA,EAAAA,UAAS,MAA3C,GAAOO,EAAP,KAAkBC,EAAlB,KACA,KAA8BR,EAAAA,EAAAA,WAAS,GAAvC,GAAOK,EAAP,KAAgBC,EAAhB,KACA,KAA0CN,EAAAA,EAAAA,WAAS,GAAnD,GAAO6S,EAAP,KAAsBzH,EAAtB,KACA,KAAsCpL,EAAAA,EAAAA,UAAS,IAA/C,GAAO8S,EAAP,KAAoBC,GAApB,KACA,MAA+B/S,EAAAA,EAAAA,UAAS,GAAxC,GAAOkF,GAAP,MAAiB0V,GAAjB,MACA,MAA0B5a,EAAAA,EAAAA,UAASwS,GAAnC,GAAOQ,GAAP,MAAcC,GAAd,MACA,MAAyCjT,EAAAA,EAAAA,UAAS0a,GAAlD,GAAOG,GAAP,MAAsBC,GAAtB,MACA,MAAoC9a,EAAAA,EAAAA,UAAS,MAA7C,GAAO+a,GAAP,MAAmBC,GAAnB,MACA,MAA4Bhb,EAAAA,EAAAA,UAAS,MAArC,GAAOkT,GAAP,MAAeC,GAAf,MACA,MAA8BnT,EAAAA,EAAAA,UAAS,MAAvC,GAAOoT,GAAP,MAAgBC,GAAhB,MACA,MAAsCrT,EAAAA,EAAAA,UAASga,GAA/C,GAAOiB,GAAP,MAAoBC,GAApB,MAEMC,GAAmB,MAAGN,QAAH,EAAGA,GAAejO,MAAK,SAACC,EAAGC,GAAJ,OAC9CD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,KAEf4U,GACJR,MAAS,MAACA,IAAAA,GAAOsH,2BAAjB,MAA4CtH,QAA5C,EAA4CA,GAAOS,SAE/C2H,GAAoB,MAALpI,IAAAA,GAAOqI,WAAa,IAAI5O,KAAJ,MAASuG,QAAT,EAASA,GAAOqI,YAAc,KACjEC,GAAe,MAAGF,QAAH,EAAGA,GAAcG,YACxB,MAAZH,QAAA,EAAAA,GAAcI,cAAe,IAG3Bb,GAAe,GAGjBA,GADE0H,EACa,CAAC,EAAG,EAAG,GAEP,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAG7C,IAAMzN,GAAQ1P,GAAWmb,EACnB5E,GAAevW,GAAN,MAAoBmb,EAApB,MAAoCzL,GAApC,QAEfvS,EAAAA,EAAAA,YAAU,WAWR,GAVA2Y,GAAcrB,EAAYlR,KAAKC,MAAMD,KAAKE,SAAWgR,EAAY9T,UAG/DmN,KACCA,GAAMsH,yBACY,UAAnBtH,GAAMmB,WAENzK,WAAWwK,GAAS,KAGlBlB,IAASA,GAAMoB,UAAW,CAAC,IAAD,EACtBC,GAAY,SAAArB,GAAMoB,gBAAN,IAAiBE,MAAM,QAAS,GAClDnB,GAAU,CACR,+DADO,OAEJkB,OAGN,IAEH,IAIMqH,GAAgB,6BAAG,+FACvBpb,GAAW,GACPmkB,EAAY,OACZ5L,IAAM4L,EAAY,MAClBjB,IAAOiB,EAAY,OAJA,kBAMFvW,IAAAA,KACjB,oBACA,CACE8E,MAAO,CACL9N,SAAUA,GACV0F,QAASD,EACTiK,MAAOA,GACP+G,MAAU8I,EAAL,MAAoBhJ,GACzBG,WAAY,OACZpD,QAASsB,EACT9X,QAAO,MAAEzB,OAAF,EAAEA,EAAWyB,UAGxB,CACEoM,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBAvBO,OAMfC,EANe,OA4BrBhO,GAAW,GAEX,MAAIgO,GAAJ,SAAIA,EAAMC,OAAN,EAAY3P,IACdqU,GAAQ,MAAC3E,OAAD,EAACA,EAAMC,MACf2M,GAAeD,GAAc/V,IAC7BiO,GAAU,OAEVA,GAAS,MAAC7E,OAAD,EAACA,EAAMC,MAnCG,kDAsCrBjI,QAAQ4D,MAAR,MAtCqB,0DAAH,qDA0ChB2R,GAAiB,6BAAG,WAAO9c,GAAP,sFACxBuB,GAAW,GADa,kBAGH4N,IAAAA,OAAA,WAAwBnP,EAAEH,GAAM,CACjDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBAPU,OAGhBC,EAHgB,OAWtBhO,GAAW,GAEgB,IAAnB,MAAJgO,GAAA,SAAAA,EAAMC,WAAN,IAAYK,UACdqE,GAAS,MACH,OAAN,EAAA3R,SAAA,WAAQkT,WAAR,EAAkBsH,UAElB3I,GAAU,OAAC7E,GAAD,SAACA,EAAMC,WAAP,EAAC,EAAYrE,QAjBH,gDAoBtB5D,QAAQ4D,MAAR,MApBsB,yDAAH,sDAlJU,SA0KlBgK,KA1KkB,oEA0KjC,oHACqBhG,IAAAA,IAAA,WAAqB8E,GAAMpU,GAAM,CAClDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBALd,OACQC,EADR,OASQiG,EATR,MASoBjG,OATpB,EASoBA,EAAMC,KAEJvD,KAAKyD,UAAUuE,KAAUhI,KAAKyD,UAAU8F,KAG1DtB,GAASsB,GAELA,EAAUd,SAAWT,GAAMS,UACvBgD,EADgC,OAEjCzD,IAFiC,IAGpCS,QAASc,EAAUd,QACnBK,cAAe,IAAIrH,OAErBqO,GAAgB,GAAD,OAAKD,GAAL,CAAoBpE,KACnCpD,GACE,0KAIAkB,EAAU+F,yBAA2BtH,GAAMsH,0BACvClJ,EAAQyJ,GAAckB,WAC1B,SAAC/I,GAAD,OAAWA,EAAMpU,IAAM2V,EAAU3V,MAE/Bod,EAJkE,UAIlDnB,IAChBzJ,GAAS,EACX4K,EAAU5K,GAASmD,EAEnByH,EAAS,UAAOnB,GAAP,CAAsBtG,IAGjCuG,GAAe,SAACkB,QAAD,EAAC,EAAWpP,MAAK,SAACC,EAAGC,GAAJ,OAAWD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,MAE9DyU,GACE,uFAIAkB,EAAUH,YACNC,GAAY,SAAAE,EAAUH,gBAAV,IAAqBE,MAAM,QAAS,GACtDjB,GAAW,IACXF,GAAU,CACR,+DADO,OAEJkB,MAKJE,EAAU+F,0BACP/H,EAAQgC,EAAUd,QAAU,IAAQ,IAC1C/J,WAAWwK,GAAS3B,IA1DxB,2CA1KiC,yBAwZjC,OACE,gBAAC,IAAD,CAAenD,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,GAAI,CACFkB,GAAI,UACJd,MAAO,OACPoB,UAAW,QACX2L,GAAI,CAAC,KACLvM,MAAO,UAaT,gBAAC,KAAD,CACEZ,GAAI,CACFkB,GAAI,cACJd,MAAO,CAAC,MAAO,SACfsG,SAAU,OACVzG,SAAU,WACVO,QAAS,OACT0M,cAAe,SACf+E,GAAI,OACJ/R,IAAK,OACLC,MAAO,CAAC,GAAI,IACZgB,aAAc,OACdC,EAAG,OACHQ,SAAU,CAAC,OAAQ,QACnBuL,GAAI,OACJ7M,OAAQ,KAGV,gBAAC,UAAD,CACEpD,iBAAkBA,EAClBI,cA7VY,SAAC+P,GACrBrP,EAAaqP,IA6VL9P,cAAeqL,EACfxL,OAAQ,CAAE8C,IAAK,EAAGqG,GAAI,GACtBlJ,YAAa,CAAE6C,IAAK,UAvBxB,MAyBGwQ,QAzBH,EAyBGA,GAAQzU,KAAI,SAACyL,GAAD,OACX,gBAAC,KAAD,CACEjH,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,EACJoC,GAAI,KAGLmB,MAIJkJ,IACC,gBAAC,KAAD,KACG,IACD,gBAAC,KAAD,CACEnQ,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBmD,GAAI,KAGL6L,IAEiB,aAAnBJ,GAAMmB,WACL,gBAAC,KAAD,CACElR,UAAU,SACVT,GAAE,OAAOU,GAAP,IAAqByD,GAAI,OAAQoC,GAAI,EAAGrG,IAAK,IAC/CK,QAAS,mCAAMzB,SAAN,SAAM,EAAQkT,eAAd,EAAM,EAAkBsH,WAEhC,eAMRtI,KAAiBJ,IAChB,gCACE,gBAAC,KAAD,CACEnQ,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,GACJoC,GAAI,KAPR,sJAYA,gBAAC,UAAD,QAIFiK,KAAUI,KAAYI,IACtB,gBAAC,KAAD,KACGjT,GACC,gBAAC,KAAD,KACG0a,IAAeA,GAAc,EAC5B,gBAAC,KAAD,CAAKzY,GAAI,CAAEuG,GAAI,KACb,gBAAC,KAAD,CACE9F,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,UANzB,aASgBoU,GAThB,+BAS0DoF,EAT1D,iBAYA,gBAAC,UAAD,CAAapE,UAAU,gBAEvB,gBAAC,KAAD,CACEhZ,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,UANzB,yBAWA,gBAAC,KAAD,CACErE,GAAI,CACF0B,OAAQ,OACRR,GAAI,QACJN,MAAO,QACPO,aAAc,OACdlB,SAAU,WACVyG,SAAU,QACVpG,OAAQ,MACRsB,SAAU,OACVsM,QAAS,kBACT5K,WACE,gDACF3B,GAAI,MACJ4B,GAAI,OACJgD,GAAI,OACJhF,UAAW,UAEbmD,MAAOhC,GACPsC,SAAU,SAACxI,GAAD,OAAO4b,GAAW5b,EAAEyI,OAAOP,SAnBvC,SAqBGyT,SArBH,EAqBG,EAAclc,KAAI,SAACyd,GAAD,OACjB,8BAASA,OAGb,gBAAC,KAAD,CACEjZ,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBmD,GAAI,SAGLkU,IAEH,gBAAC,KAAD,CACExY,UAAU,SACVT,GAAIU,EACJH,QAAS1C,EAAU,KAAOqb,IAEzBrb,EAAU,qBAAuB,WAItC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACE4C,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,QACrBF,GAAI,GACJoC,GAAI,KARR,mDAaA,gBAAC,KAAD,CACE9F,UAAU,SACVT,GAAE,OAAOU,GAAP,IAAqByD,GAAI,GAAIoC,GAAI,EAAGrG,IAAK,IAC3CK,QAAS,kBACPiY,GACErB,EACElR,KAAKC,MAAMD,KAAKE,SAAWgR,EAAY9T,YAK5C,UAEH,gBAAC,KAAD,CACEtC,IAAKwX,GACLvY,GAAI,CACFI,MAAO,CAAC,QACRH,SAAU,WACVK,OAAQ,EACRoG,SAAU,QACViT,UAAW,QACX7M,UAAW,UACXC,eAAgB,aAU/ByD,IAAS,CAAC,KAAM,UAAUtN,SAASsN,GAAMmB,YACxC,gBAAC,KAAD,CAAK3R,GAAI,CAAEuG,GAAI,KACb,gBAAC,UAAD,CAAakT,UAAU,gBAEvB,gBAAC,KAAD,CACEhZ,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAIiK,GAAMoB,UAAY,EAAI,KAN9B,2BAS8BpB,GAAM9N,SATpC,YASwDkX,OACpDpJ,GAAM4B,OAVV,YAWe5B,GAAM2I,OAEpBpb,IACEsS,KACCG,GAAM6B,eAAiB7B,GAAMoB,YAC7B,gBAAC,KAAD,CACEnR,UAAU,SACVT,GAAIU,EACJH,QAAS1C,EAAU,KA1ab,WACtBC,GAAW,GACXyS,GAAe,mBAEf,IAAM+B,EAAiB,6BAAG,wJACGvU,EAAUwB,aADb,cACpBgT,EADoB,OAEpBsH,EAAgBC,OAAOtJ,GAAM4B,OAI7BW,EAAa,CACf,CACEvT,QALkBuY,EAMlB/E,OAAQ6G,GAEV,CACEra,QAREgT,EAAaD,EASfS,OAAQ,IACR+G,aAAY,MAAEvJ,IAAF,SAAEA,GAAOjI,WAAT,EAAE,EAAatM,KAAI,SAACuG,GAC9B,MAAO,CACLwX,UAAWxX,EACXE,SAAU,IACVsV,SAAUA,EACVC,aAAcA,QAMlBgC,EAAW,GACXC,EAAgB,GAEf,MAAL1J,IAAA,SAAAA,GAAOjI,OAAP,EAAa3F,SAAQ,SAACJ,EAAKoM,GAAW,IAAD,EAC/BuL,EAAY3R,KAAKC,MAAMD,KAAKyD,UAAUiL,EAAgB1U,KAE1D5F,OAAOD,KAAP,MAAYwd,OAAZ,EAAYA,EAAW+H,YAAYtf,SAAQ,SAACyX,GAC1CF,EAAU+H,WAAW7H,GACnB,kEAEJzd,OAAOD,KAAP,MAAYwd,OAAZ,EAAYA,EAAWgI,KAAKvf,SAAQ,SAACyX,GACnCF,EAAUgI,IAAI9H,GACZ,kEAEK,MAATF,GAAA,SAAAA,EAAWiB,QAAX,EAAkBxY,SAAQ,SAACwf,EAAMxT,GAC/BhS,OAAOD,KAAKwd,EAAUiB,MAAMxM,IAAQhM,SAAQ,SAACyX,GAC3CF,EAAUiB,MAAMxM,GAAOyL,GACrB,qEAINF,EAAUgB,YACR,+DACFhB,EAAUtL,MACR,+DACFsL,EAAUc,UACR,+DACFd,EAAUtH,UACR,+DACFsH,EAAUrH,QACR,+DAEFmH,EAASzX,GAAO0U,EAAgB1U,GAChC0X,EAAc1X,GAAO2X,KAGnB3G,EAAW,CACb,YACGwE,GAAWiC,EADd,IAKEvH,EAAgB,CAClB,YACGsF,GAAWkC,EADd,IAKII,EAAevc,EAAUwc,aAAa/G,GAExCN,EAAQ,KACRC,EAAQ,KACRC,EAAc,KA7EM,oBAgFRrV,EAAUsV,cAhFF,eAgFtBH,EAhFsB,iBAiFRnV,EAAUuV,eAjFF,eAiFtBH,EAjFsB,iBAkFFpV,EAAUqV,YAAY,CACxCG,eAAgBhB,EAChBQ,WAAYA,EACZS,SAAUd,EACV4H,aAAcA,EACd7G,aAAa,EACbC,SAAUR,EACVS,WAAgB,OAAL,EAAAR,QAAA,IAAO/W,KAAM,EACxBwX,IAAK,KACL4G,UAAU,IA3FU,QAkFtBpH,EAlFsB,0DA+FJ,qBADdS,EA9FkB,kBA8FL,KAAKrP,WAEpBqP,EACE,qEACJ/P,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,GAAU,CAAC,6CAA8CkD,IApGnC,eAuGpBC,EAAe,KAvGK,oBAyGD/V,EAAUgW,OAAOX,GAAa,GAzG7B,QAyGtBU,EAzGsB,OA0GtBvD,GAAe,qBA1GO,mDA6GtBzS,GAAW,GA7GW,YAgHpBgW,EAhHoB,kCAkHhBhI,EAAO,KAlHS,UAmHPJ,IAAAA,KAAA,mBACQ8E,GAAMpU,GACzB,CACEgX,YAAAA,EACAf,cAAeyB,EACfE,YAAaxB,GAEf,CACE5G,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBA9HM,QAmHpBC,EAnHoB,OAmIpB,SAAIA,IAAJ,SAAI,EAAMC,OAAN,EAAY6E,SACdC,GACE,uGAEF/S,GAAW,GACX6S,GAAU,IACJsD,EANiB,OAOlBzD,IAPkB,IAQrBmB,UAAW,YACXU,cAAeyB,IAEjBrD,GAASwD,GAGT/M,WAAWwK,GAAS,OAEpB5N,QAAQC,IAAR,SAAY+H,QAAZ,EAAY,EAAMC,MACZmI,GAAoB,OAAJ,EAAApI,IAAA,WAAMC,WAAN,IAAY2E,SAAU,GAC5C5S,GAAW,GACX6S,GAAU,CACR,mJADO,OAEJuD,KAxJa,mDA4JpBpQ,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,GAAU,CACR,sFADQ,OA9JU,gCAoKtB7M,QAAQ4D,MAAMoM,GACdhW,GAAW,GArKW,2EAAH,qDAwKlBD,GAASyU,MAgQGzU,EACGyS,EACAE,GAAMoB,UACN,aACA,WAGT,IAAI3H,KAAS6O,KAAoBtI,GAAMS,SACtC,gBAAC,KAAD,CACExQ,UAAU,SACVT,GAAIU,EACJH,QAAS,WAEP8Y,GAAkB7I,MALtB,YAcQ,MAAb6H,QAAA,EAAAA,GAAehV,QAAS,GACvB,gBAAC,KAAD,CACErD,GAAI,CAAEkB,GAAI,QAASE,EAAG,OAAQD,aAAc,OAAQoF,GAAI,SAExD,gBAAC,KAAD,CACE9F,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBwL,GAAI,IANR,2CAHF,MAcGuL,QAdH,EAcGA,GAAqB1c,KAAI,SAACwe,EAAiB7L,GAAW,IAAD,MAC9CyC,EAAc,IAAIpH,KAAKwQ,EAAgBnJ,eAGvCoJ,EAFkB,IAAIzQ,KAAKwQ,EAAgBnJ,eAEVqJ,SACrCtJ,EAAYuJ,WAAa,GAErBC,EACJ,IAAI5Q,KAASyQ,GACbD,EAAgBxJ,UACfwJ,EAAgB3C,wBAEbvG,EAAqBF,EAAYG,qBAAlB,MAA4CH,EAAYI,qBACzEqJ,EAAWL,EAAgB3C,wBAC3B,YACA,UAEJ,OADI+C,IAAcC,EAAW,UAE3B,gBAAC,KAAD,CAAK/S,IAAG,MAAE0S,OAAF,EAAEA,EAAiBre,IACzB,gBAAC,KAAD,CACEqE,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAa,GAATqI,EAAa,GAAK,KAL1B,aAQgB6L,EAAgB/X,UAEhC,gBAAC,KAAD,CACEjC,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KALR,UAQaqT,OAAOa,EAAgBrI,QAEvB,aAAZ0I,GACC,gBAAC,KAAD,CACEra,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KALR,SAQYkU,EAAgBlS,KAAKwS,KAAK,OAIxC,gBAAC,KAAD,CACEta,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,WAPd,UAUasL,EAAgBtB,OAE7B,gBAAC,KAAD,CACE1Y,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,MAaSwZ,EACM,UAAZA,GACC,sCAEE,qBACEva,QAAS,WAAO,IAAD,EAEL,OAAN,EAAAzB,SAAA,EAAQqN,QACN,0KAEFrN,OAAOkT,WAEPlT,OAAOkT,SAAS1C,KAAhB,mBAA0CmL,EAAgBre,MARhE,kBAFF,4EAoBJ,gBAAC,KAAD,CACEqE,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,YAcE,qBACEgO,KAAI,sCAAwCmL,EAAgBxJ,QAC5DhM,OAAO,UAENwV,EAAgBxJ,UAGrB,gBAAC,KAAD,CACExQ,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,iBAaoBiQ,OAK1B,gBAAC,KAAD,CACE9Q,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KANR,0BAcN,gBAAC,KAAD,CACEvG,GAAI,CACFC,SAAU,QACV+M,OAAQ,GACRC,KAAM,CAAC,SAAU,KACjB9M,MAAO,EACPG,OAAQ,EACRoG,SAAU,QACVC,GAAI,SAGN,gBAAC,KAAD,CACE3G,GAAI,CACFa,oBAAqB,oBACrBC,WAAY,WAGd,6BACA,gBAAC,KAAD,CAAWd,GAAI,CAAEY,MAAO,QAASa,WAAY,aAC1C,2BAEH,gBAAC,KAAD,CACEV,IAAKoV,EACLnW,GAAI,CACFI,MAAO,CAAC,WAGZ,kCAQNM,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVC,IAAK,GACLU,MAAO,mBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,UACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAIjB,a,upECx7BA,IAAMkV,EAAc,CAClB,uEACA,gEACA,2EACA,gEACA,yDACA,mEACA,+DACA,qDACA,yEACA,wDACA,uEACA,wDACA,+DACA,uEACA,yDACA,sEACA,gEACA,+DACA,wDACA,4DACA,mFACA,2DACA,yEACA,8EACA,0GACA,sDACA,iFACA,0EACA,4DACA,iEACA,0DACA,wDACA,sDACA,8DACA,gEACA,qDACA,8DAMWkL,EAAmB,SAACplB,GAC/B,IAAMC,EAAmBD,EAAMoa,OACzBlP,EAASlL,EAAMmL,QACfkP,EAASra,EAAM+Y,QACfuB,EAASta,EAAMsa,OAAS/O,KAAKC,MAAMxL,EAAMsa,QAAU,GACnD7O,EAAOzL,EAAMyL,KACb8O,EAAYva,EAAMua,UAClB3B,EAAO5Y,EAAM4Y,KAAOrN,KAAKC,MAAMxL,EAAM4Y,MAAQ,KAI7CkC,EAAgBlC,EAAKiM,gBAb3B,0GAcM9J,EAAWnC,EAAKkM,UAChB9J,EAAepC,EAAKmM,cAEtBhS,EAAc,KACZ4H,EAAY,MAAGL,OAAH,EAAGA,EAAQnN,MAAK,SAACC,EAAGC,GAAJ,OAAWD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,KAC1Dyb,EAAS,MAAGD,OAAH,EAAGA,EAAe,IAC7BC,GAAa,MAACA,GAAAA,EAAWC,0BAC3B9H,EAAc6H,GAEhB,IAAMK,EAAgB,MAAGX,OAAH,EAAGA,EAAQxN,QAAO,SAACyG,GAAD,OAAWA,EAAMS,WAEzD,IAAK/T,EAAkB,OAAO,KAC9B,IAAKiL,EAAQ,OAAO,KAEpB,SAAkC3K,EAAAA,EAAAA,UAAS,MAA3C,GAAOO,EAAP,KAAkBC,EAAlB,KACA,KAA8BR,EAAAA,EAAAA,WAAS,GAAvC,GAAOK,EAAP,KAAgBC,EAAhB,KACA,KAA0CN,EAAAA,EAAAA,WAAS,GAAnD,GAAO6S,EAAP,KAAsBzH,EAAtB,KACA,KAAsCpL,EAAAA,EAAAA,UAAS,IAA/C,GAAO8S,EAAP,KAAoBC,EAApB,KACA,KAA+B/S,EAAAA,EAAAA,UAAS,GAAxC,GAAOkF,EAAP,KAAiB0V,EAAjB,KACA,KAA0B5a,EAAAA,EAAAA,UAASwS,GAAnC,GAAOQ,EAAP,KAAcC,EAAd,KACA,KAAyCjT,EAAAA,EAAAA,UAAS0a,GAAlD,GAAOG,EAAP,KAAsBC,EAAtB,KACA,KAAoC9a,EAAAA,EAAAA,UAAS,MAA7C,GAAO+a,EAAP,KAAmBC,EAAnB,KACA,MAA4Bhb,EAAAA,EAAAA,UAAS,MAArC,GAAOkT,GAAP,MAAeC,GAAf,MACA,MAA8BnT,EAAAA,EAAAA,UAAS,MAAvC,GAAOoT,GAAP,MAAgBC,GAAhB,MACA,MAAsCrT,EAAAA,EAAAA,UAASga,GAA/C,GAAOiB,GAAP,MAAoBC,GAApB,MAEMC,GAAmB,MAAGN,OAAH,EAAGA,EAAejO,MAAK,SAACC,EAAGC,GAAJ,OAC9CD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,KAEf4U,GACJR,KAAS,MAACA,GAAAA,EAAOsH,2BAAjB,MAA4CtH,OAA5C,EAA4CA,EAAOS,SAE/C2H,GAAoB,MAALpI,GAAAA,EAAOqI,WAAa,IAAI5O,KAAJ,MAASuG,OAAT,EAASA,EAAOqI,YAAc,KACjEC,GAAe,MAAGF,QAAH,EAAGA,GAAcG,YACxB,MAAZH,QAAA,EAAAA,GAAcI,cAAe,IAG3Bb,GAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,IAGzDc,GAAevW,EAAN,YAEf7C,EAAAA,EAAAA,YAAU,WAWR,GAVA2Y,EAAcrB,EAAYlR,KAAKC,MAAMD,KAAKE,SAAWgR,EAAY9T,UAG/DmN,IACCA,EAAMsH,yBACY,UAAnBtH,EAAMmB,WAENzK,WAAWwK,GAAS,KAGlBlB,GAASA,EAAMoB,UAAW,CAAC,IAAD,EACtBC,GAAY,SAAArB,EAAMoB,gBAAN,IAAiBE,MAAM,QAAS,GAClDnB,GAAU,CACR,+DADO,OAEJkB,OAGN,IAEH,IAIMqH,GAAgB,6BAAG,6FACvBpb,GAAW,GACK,WAFO,kBAIF4N,IAAAA,KACjB,6BACA,CACE8E,MAAO,CACL9N,SAAUA,EACV0F,QAASD,EACTiK,MArCI,EAsCJ+G,MAAU8I,cAAehJ,GACzBG,WAAY,OACZpD,QAASsB,EACT9X,QAAO,MAAEzB,OAAF,EAAEA,EAAWyB,UAGxB,CACEoM,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBArBO,OAIfC,EAJe,OA0BrBhO,GAAW,GAEX,MAAIgO,GAAJ,SAAIA,EAAMC,OAAN,EAAY3P,IACdqU,EAAQ,MAAC3E,OAAD,EAACA,EAAMC,MACf2M,GAAeD,GAAc/V,GAC7BiO,GAAU,OAEVA,GAAS,MAAC7E,OAAD,EAACA,EAAMC,MAjCG,kDAoCrBjI,QAAQ4D,MAAR,MApCqB,0DAAH,qDAwChB2R,GAAiB,6BAAG,WAAO9c,GAAP,sFACxBuB,GAAW,GADa,kBAGH4N,IAAAA,OAAA,WAAwBnP,EAAEH,GAAM,CACjDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBAPU,OAGhBC,EAHgB,OAWtBhO,GAAW,GAEgB,IAAnB,MAAJgO,GAAA,SAAAA,EAAMC,WAAN,IAAYK,UACdqE,EAAS,MACH,OAAN,EAAA3R,SAAA,WAAQkT,WAAR,EAAkBsH,UAElB3I,GAAU,OAAC7E,GAAD,SAACA,EAAMC,WAAP,EAAC,EAAYrE,QAjBH,gDAoBtB5D,QAAQ4D,MAAR,MApBsB,yDAAH,sDAtHkB,SA8I1BgK,KA9I0B,oEA8IzC,oHACqBhG,IAAAA,IAAA,WAAqB8E,EAAMpU,GAAM,CAClDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBALd,OACQC,EADR,OASQiG,EATR,MASoBjG,OATpB,EASoBA,EAAMC,KAEJvD,KAAKyD,UAAUuE,IAAUhI,KAAKyD,UAAU8F,KAG1DtB,EAASsB,GAELA,EAAUd,SAAWT,EAAMS,UACvBgD,EADgC,OAEjCzD,GAFiC,IAGpCS,QAASc,EAAUd,QACnBK,cAAe,IAAIrH,OAErBqO,EAAgB,GAAD,OAAKD,EAAL,CAAoBpE,KACnCpD,GACE,0KAIAkB,EAAU+F,yBAA2BtH,EAAMsH,0BACvClJ,EAAQyJ,EAAckB,WAC1B,SAAC/I,GAAD,OAAWA,EAAMpU,IAAM2V,EAAU3V,MAE/Bod,EAJkE,UAIlDnB,GAChBzJ,GAAS,EACX4K,EAAU5K,GAASmD,EAEnByH,EAAS,UAAOnB,EAAP,CAAsBtG,IAGjCuG,EAAe,SAACkB,QAAD,EAAC,EAAWpP,MAAK,SAACC,EAAGC,GAAJ,OAAWD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,MAE9DyU,GACE,uFAIAkB,EAAUH,YACNC,GAAY,SAAAE,EAAUH,gBAAV,IAAqBE,MAAM,QAAS,GACtDjB,GAAW,IACXF,GAAU,CACR,+DADO,OAEJkB,MAKJE,EAAU+F,0BACP/H,EAAQgC,EAAUd,QAAU,IAAQ,IAC1C/J,WAAWwK,GAAS3B,IA1DxB,2CA9IyC,yBA4XzC,OACE,gBAAC,IAAD,CAAenD,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,GAAI,CACFkB,GAAI,UACJd,MAAO,OACPoB,UAAW,QACX2L,GAAI,CAAC,KACLvM,MAAO,UAaT,gBAAC,KAAD,CACEZ,GAAI,CACFkB,GAAI,cACJd,MAAO,CAAC,MAAO,SACfsG,SAAU,OACVzG,SAAU,WACVO,QAAS,OACT0M,cAAe,SACf+E,GAAI,OACJ/R,IAAK,OACLC,MAAO,CAAC,GAAI,IACZgB,aAAc,OACdC,EAAG,OACHQ,SAAU,CAAC,OAAQ,QACnBuL,GAAI,OACJ7M,OAAQ,KAGV,gBAAC,UAAD,CACEpD,iBAAkBA,EAClBI,cA3VY,SAAC+P,GACrBrP,EAAaqP,IA2VL9P,cAAeqL,EACfxL,OAAQ,CAAE8C,IAAK,EAAGqG,GAAI,GACtBlJ,YAAa,CAAE6C,IAAK,UAvBxB,MAyBGwQ,QAzBH,EAyBGA,GAAQzU,KAAI,SAACyL,GAAD,OACX,gBAAC,KAAD,CACEjH,UAAU,SACVT,GAAI,CACFY,MAAO,UACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,EACJoC,GAAI,KAGLmB,MAIJkJ,IACC,gBAAC,KAAD,KACG,IACD,gBAAC,KAAD,CACEnQ,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBmD,GAAI,KAGL6L,IAEiB,aAAnBJ,EAAMmB,WACL,gBAAC,KAAD,CACElR,UAAU,SACVT,GAAE,OAAOU,GAAP,IAAqByD,GAAI,OAAQoC,GAAI,EAAGrG,IAAK,IAC/CK,QAAS,mCAAMzB,SAAN,SAAM,EAAQkT,eAAd,EAAM,EAAkBsH,WAEhC,eAMRtI,KAAiBJ,IAChB,gCACE,gBAAC,KAAD,CACEnQ,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,GACJoC,GAAI,KAPR,sJAYA,gBAAC,UAAD,QAIFiK,IAAUI,KAAYI,IACtB,gBAAC,KAAD,KACGjT,GACC,gBAAC,KAAD,KACG0a,IAAeA,GAAc,EAC5B,gBAAC,KAAD,CAAKzY,GAAI,CAAEuG,GAAI,KACb,gBAAC,KAAD,CACE9F,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,UANzB,aASgBoU,GAThB,8CAYA,gBAAC,UAAD,CAAagB,UAAU,gBAEvB,gBAAC,KAAD,CACEhZ,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,UANzB,yBAWA,gBAAC,KAAD,CACErE,GAAI,CACF0B,OAAQ,OACRR,GAAI,QACJN,MAAO,QACPO,aAAc,OACdlB,SAAU,WACVyG,SAAU,QACVpG,OAAQ,MACRsB,SAAU,OACVsM,QAAS,kBACT5K,WACE,gDACF3B,GAAI,MACJ4B,GAAI,OACJgD,GAAI,OACJhF,UAAW,UAEbmD,MAAOhC,EACPsC,SAAU,SAACxI,GAAD,OAAO4b,EAAW5b,EAAEyI,OAAOP,SAnBvC,MAqBGyT,QArBH,EAqBGA,GAAclc,KAAI,SAACyd,GAAD,OACjB,8BAASA,OAGb,gBAAC,KAAD,CACEjZ,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBmD,GAAI,SAGLkU,IAEH,gBAAC,KAAD,CACExY,UAAU,SACVT,GAAIU,EACJH,QAAS1C,EAAU,KAAOqb,IAEzBrb,EAAU,qBAAuB,WAItC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACE4C,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,QACrBF,GAAI,GACJoC,GAAI,KARR,mDAaA,gBAAC,KAAD,CACE9F,UAAU,SACVT,GAAE,OAAOU,GAAP,IAAqByD,GAAI,GAAIoC,GAAI,EAAGrG,IAAK,IAC3CK,QAAS,kBACPiY,EACErB,EACElR,KAAKC,MAAMD,KAAKE,SAAWgR,EAAY9T,YAK5C,UAEH,gBAAC,KAAD,CACEtC,IAAKwX,EACLvY,GAAI,CACFI,MAAO,CAAC,QACRH,SAAU,WACVK,OAAQ,EACRoG,SAAU,QACViT,UAAW,QACX7M,UAAW,UACXC,eAAgB,aAU/ByD,GAAS,CAAC,KAAM,UAAUtN,SAASsN,EAAMmB,YACxC,gBAAC,KAAD,CAAK3R,GAAI,CAAEuG,GAAI,KACb,gBAAC,UAAD,CAAakT,UAAU,gBAEvB,gBAAC,KAAD,CACEhZ,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAIiK,EAAMoB,UAAY,EAAI,KAN9B,2BAS8BpB,EAAM9N,SATpC,YASwDkX,OACpDpJ,EAAM4B,OAVV,YAWe5B,EAAM2I,OAEpBpb,IACEsS,KACCG,EAAM6B,eAAiB7B,EAAMoB,YAC7B,gBAAC,KAAD,CACEnR,UAAU,SACVT,GAAIU,EACJH,QAAS1C,EAAU,KA1ab,WACtBC,GAAW,GACXyS,EAAe,mBAEf,IAAM+B,EAAiB,6BAAG,wJACGvU,EAAUwB,aADb,cACpBgT,EADoB,OAEpBsH,EAAgBC,OAAOtJ,EAAM4B,OAI7BW,EAAa,CACf,CACEvT,QALkBuY,EAMlB/E,OAAQ6G,GAEV,CACEra,QAREgT,EAAaD,EASfS,OAAQ,IACR+G,aAAY,MAAEvJ,GAAF,SAAEA,EAAOjI,WAAT,EAAE,EAAatM,KAAI,SAACuG,GAC9B,MAAO,CACLwX,UAAWxX,EACXE,SAAU,IACVsV,SAAUA,EACVC,aAAcA,QAMlBgC,EAAW,GACXC,EAAgB,GAEf,MAAL1J,GAAA,SAAAA,EAAOjI,OAAP,EAAa3F,SAAQ,SAACJ,EAAKoM,GAAW,IAAD,EAC/BuL,EAAY3R,KAAKC,MAAMD,KAAKyD,UAAUiL,EAAgB1U,KAE1D5F,OAAOD,KAAP,MAAYwd,OAAZ,EAAYA,EAAW+H,YAAYtf,SAAQ,SAACyX,GAC1CF,EAAU+H,WAAW7H,GACnB,kEAEJzd,OAAOD,KAAP,MAAYwd,OAAZ,EAAYA,EAAWgI,KAAKvf,SAAQ,SAACyX,GACnCF,EAAUgI,IAAI9H,GACZ,kEAEK,MAATF,GAAA,SAAAA,EAAWiB,QAAX,EAAkBxY,SAAQ,SAACwf,EAAMxT,GAC/BhS,OAAOD,KAAKwd,EAAUiB,MAAMxM,IAAQhM,SAAQ,SAACyX,GAC3CF,EAAUiB,MAAMxM,GAAOyL,GACrB,qEAINF,EAAUgB,YACR,+DACFhB,EAAUtL,MACR,+DACFsL,EAAUc,UACR,+DACFd,EAAUtH,UACR,+DACFsH,EAAUrH,QACR,+DAEFmH,EAASzX,GAAO0U,EAAgB1U,GAChC0X,EAAc1X,GAAO2X,KAGnB3G,EAAW,CACb,YACGwE,GAAWiC,EADd,IAKEvH,EAAgB,CAClB,YACGsF,GAAWkC,EADd,IAKII,EAAevc,EAAUwc,aAAa/G,GAExCN,EAAQ,KACRC,EAAQ,KACRC,EAAc,KA7EM,oBAgFRrV,EAAUsV,cAhFF,eAgFtBH,EAhFsB,iBAiFRnV,EAAUuV,eAjFF,eAiFtBH,EAjFsB,iBAkFFpV,EAAUqV,YAAY,CACxCG,eAAgBhB,EAChBQ,WAAYA,EACZS,SAAUd,EACV4H,aAAcA,EACd7G,aAAa,EACbC,SAAUR,EACVS,WAAgB,OAAL,EAAAR,QAAA,IAAO/W,KAAM,EACxBwX,IAAK,KACL4G,UAAU,IA3FU,QAkFtBpH,EAlFsB,0DA+FJ,qBADdS,EA9FkB,kBA8FL,KAAKrP,WAEpBqP,EACE,qEACJ/P,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,GAAU,CAAC,6CAA8CkD,IApGnC,eAuGpBC,EAAe,KAvGK,oBAyGD/V,EAAUgW,OAAOX,GAAa,GAzG7B,QAyGtBU,EAzGsB,OA0GtBvD,EAAe,qBA1GO,mDA6GtBzS,GAAW,GA7GW,YAgHpBgW,EAhHoB,kCAkHhBhI,EAAO,KAlHS,UAmHPJ,IAAAA,KAAA,mBACQ8E,EAAMpU,GACzB,CACEgX,YAAAA,EACAf,cAAeyB,EACfE,YAAaxB,GAEf,CACE5G,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBA9HM,QAmHpBC,EAnHoB,OAmIpB,SAAIA,IAAJ,SAAI,EAAMC,OAAN,EAAY6E,SACdC,GACE,uGAEF/S,GAAW,GACX6S,GAAU,IACJsD,EANiB,OAOlBzD,GAPkB,IAQrBmB,UAAW,YACXU,cAAeyB,IAEjBrD,EAASwD,GAGT/M,WAAWwK,GAAS,OAEpB5N,QAAQC,IAAR,SAAY+H,QAAZ,EAAY,EAAMC,MACZmI,GAAoB,OAAJ,EAAApI,IAAA,WAAMC,WAAN,IAAY2E,SAAU,GAC5C5S,GAAW,GACX6S,GAAU,CACR,mJADO,OAEJuD,KAxJa,mDA4JpBpQ,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,GAAU,CACR,sFADQ,OA9JU,gCAoKtB7M,QAAQ4D,MAAMoM,GACdhW,GAAW,GArKW,2EAAH,qDAwKlBD,GAASyU,MAgQGzU,EACGyS,EACAE,EAAMoB,UACN,aACA,WAGT,IAAI3H,KAAS6O,KAAoBtI,EAAMS,SACtC,gBAAC,KAAD,CACExQ,UAAU,SACVT,GAAIU,EACJH,QAAS,WAEP8Y,GAAkB7I,KALtB,YAcQ,MAAb6H,OAAA,EAAAA,EAAehV,QAAS,GACvB,gBAAC,KAAD,CACErD,GAAI,CAAEkB,GAAI,QAASE,EAAG,OAAQD,aAAc,OAAQoF,GAAI,SAExD,gBAAC,KAAD,CACE9F,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBwL,GAAI,IANR,2CAHF,MAcGuL,QAdH,EAcGA,GAAqB1c,KAAI,SAACwe,EAAiB7L,GAAW,IAAD,MAC9CyC,EAAc,IAAIpH,KAAKwQ,EAAgBnJ,eAGvCoJ,EAFkB,IAAIzQ,KAAKwQ,EAAgBnJ,eAEVqJ,SACrCtJ,EAAYuJ,WAAa,GAErBC,EACJ,IAAI5Q,KAASyQ,GACbD,EAAgBxJ,UACfwJ,EAAgB3C,wBAEbvG,EAAqBF,EAAYG,qBAAlB,MAA4CH,EAAYI,qBACzEqJ,EAAWL,EAAgB3C,wBAC3B,YACA,UAEJ,OADI+C,IAAcC,EAAW,UAE3B,gBAAC,KAAD,CAAK/S,IAAG,MAAE0S,OAAF,EAAEA,EAAiBre,IACzB,gBAAC,KAAD,CACEqE,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAa,GAATqI,EAAa,GAAK,KAL1B,aAQgB6L,EAAgB/X,UAEhC,gBAAC,KAAD,CACEjC,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KALR,UAQaqT,OAAOa,EAAgBrI,QAEvB,aAAZ0I,GACC,gBAAC,KAAD,CACEra,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KALR,SAQYkU,EAAgBlS,KAAKwS,KAAK,OAIxC,gBAAC,KAAD,CACEta,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,WAPd,UAUasL,EAAgBtB,OAE7B,gBAAC,KAAD,CACE1Y,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,MAaSwZ,EACM,UAAZA,GACC,sCAEE,qBACEva,QAAS,WAAO,IAAD,EAEL,OAAN,EAAAzB,SAAA,EAAQqN,QACN,0KAEFrN,OAAOkT,WAEPlT,OAAOkT,SAAS1C,KAAhB,mBAA0CmL,EAAgBre,MARhE,kBAFF,4EAoBJ,gBAAC,KAAD,CACEqE,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,YAcE,qBACEgO,KAAI,sCAAwCmL,EAAgBxJ,QAC5DhM,OAAO,UAENwV,EAAgBxJ,UAGrB,gBAAC,KAAD,CACExQ,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,iBAaoBiQ,OAK1B,gBAAC,KAAD,CACE9Q,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KANR,0BAcN,gBAAC,KAAD,CACEvG,GAAI,CACFC,SAAU,QACV+M,OAAQ,GACRC,KAAM,CAAC,SAAU,KACjB9M,MAAO,EACPG,OAAQ,EACRoG,SAAU,QACVC,GAAI,SAGN,gBAAC,KAAD,CACE3G,GAAI,CACFa,oBAAqB,oBACrBC,WAAY,WAGd,6BACA,gBAAC,KAAD,CAAWd,GAAI,CAAEY,MAAO,QAASa,WAAY,aAC1C,2BAEH,gBAAC,KAAD,CACEV,IAAKoV,EACLnW,GAAI,CACFI,MAAO,CAAC,WAGZ,kCAQNM,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVC,IAAK,GACLU,MAAO,mBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,oBACRR,GAAI,UACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAIjB,a,mhCC/sBA,UA5NoB,SAAC,GAA2D,IAAD,IAAxDlB,IAAAA,OAAwD,MAAlD,uBAAkD,EAA1BuhB,EAA0B,EAA1BA,QAASC,EAAiB,EAAjBA,WAC5D,KAAkC/kB,EAAAA,EAAAA,WAAS,GAA3C,GAAOoJ,EAAP,KAAkBC,EAAlB,KACA,KAAwBrJ,EAAAA,EAAAA,WAAS,WAC/B,OAAQ4gB,MAAMoE,QAAQzhB,MADxB,GAAOiH,EAAP,KAAaya,EAAb,KAIA,KAAsCjlB,EAAAA,EAAAA,WAAS,WAE7C,OADcqG,SAAS/E,OAAOgI,aAAa/G,QAAQ,iBACnC,KAFlB,GAAO2iB,EAAP,KAAoBC,EAApB,KAKMC,EAAOxE,MAAMoE,QAAQzhB,GAAOA,EAAI2hB,GAAe3hB,EAErD,KAAgCvD,EAAAA,EAAAA,WAAS,WACvC,IAAMkH,EAAQ5F,OAAOgI,aAAa/G,QAAQ,YACtCgH,GAAe,EAGnB,MAFa,QAATrC,IAAiBqC,GAAe,GACtB,OAAVrC,IAAgBqC,GAAe,GAC5BA,KALT,GAAOC,EAAP,KAAiBC,EAAjB,MAQApH,EAAAA,EAAAA,YAAU,WAyBR,GAxBAqH,YAAW,WACTC,MACC,KAEHD,YAAW,WACTC,MACC,KAEHD,YAAW,WACTC,MACC,KAEHD,YAAW,WACTC,MACC,KAEHD,YAAW,WACTC,MACC,KAEHD,YAAW,WACTC,MACC,MAECH,EACF,IAAII,EAAcC,aAAY,WACbC,SAASC,eAAe,SAGpCC,OACApI,MAAK,WACJqI,cAAcL,MAHlB,OAKS,SAACM,GACN5D,QAAQC,IACN,6DAINoD,MACC,OAEJ,IAEH,IAAMA,EAAe,WACnB,IAAMQ,EAASL,SAASC,eAAe,SACvCV,IAAa,MAACc,GAAAA,EAAQC,UAGlBC,EAAc,WAClBX,YAAW,WACTC,MACC,KAEHD,YAAW,WACTC,MACC,KAEH,IAAMQ,EAASL,SAASC,eAAe,SAEvC,GAAKX,EAQHK,GAAY,GACZU,EAAOG,QACPhJ,OAAOgI,aAAalH,QAAQ,YAAa+H,EAAOkb,aAChD/jB,OAAOgI,aAAalH,QAAQ,WAAY,aAX1B,CACdqH,GAAY,GACZ,IAAM6b,EACJC,WAAWjkB,OAAOgI,aAAa/G,QAAQ,eAAiB,EAC1D4H,EAAOkb,YAAcC,EACrBnb,EAAOH,OACP1I,OAAOgI,aAAalH,QAAQ,YAAY,MAyB5CC,EAAAA,EAAAA,YAAU,WACR,IAAM8H,EAASL,SAASC,eAAe,SAGjCyb,EAAc,WAClBlkB,OAAOgI,aAAalH,QAAQ,YAAa,GACzC,IAEIqjB,GADFpf,SAAS/E,OAAOgI,aAAa/G,QAAQ,iBAAmB,GAC3B,EAE3BkjB,GADe7E,MAAMoE,QAAQzhB,GAAOA,EAAIsC,OAAS,GACxB,IAAG4f,EAAY,GAC5CN,EAAeM,IAKjB,OAFAtb,EAAOub,iBAAiB,QAASF,GAE1B,kBAAMrb,EAAOwb,oBAAoB,QAASH,MAChD,KAEHnjB,EAAAA,EAAAA,YAAU,WACJmH,GAAUoc,MACb,CAACV,IAEJ,IAAMU,EAAoB,WACxBtkB,OAAOgI,aAAalH,QAAQ,cAAe8iB,GAC3C,IAAM/a,EAASL,SAASC,eAAe,SACjCub,EAAYC,WAAWjkB,OAAOgI,aAAa/G,QAAQ,eAAiB,EAC1E4H,EAAOkb,YAAcC,EACrBnb,EAAOG,QACPH,EAAO5G,IAAMqd,MAAMoE,QAAQzhB,GAAOA,EAAI2hB,GAAe3hB,EACrD4G,EAAO0b,OACP1b,EAAOH,OAEPN,YAAW,WACTC,MACC,KAEHD,YAAW,WACTC,MACC,KAEHD,YAAW,WACTC,MACC,KAEHD,YAAW,WACTC,MACC,KAEHD,YAAW,WACTC,MACC,MAGCmc,EAAoBlF,MAAMoE,QAAQzhB,GAExC,OACE,gBAAC,KAAD,KACE,gBAAC,KAAD,CAAKf,GAAI,CAAEsB,OAAQ,UAAWd,QAAS,OAAQM,WAAY,WACzD,yBAAO1E,GAAG,QAAQ2E,IAAK6hB,EAAM5b,SAAUA,EAAUgB,KAAMA,IACtDsb,GACC,qBACE/iB,QAtEa,WACrB,IAAI0iB,EAAYP,EAAc,EAC9B5jB,OAAOgI,aAAalH,QAAQ,YAAa,GACzC,IAAM2jB,EAAanF,MAAMoE,QAAQzhB,GAAOA,EAAIsC,OAAS,EAAI,EACrD4f,EAAY,IAAGA,EAAYM,GAC/BZ,EAAeM,IAkEPxiB,UAAU,iBACVwH,MAAO,CAAErG,SAAU,OAAQ4hB,YAAa,UAG5C,qBACEjjB,QAASsH,EACTpH,UAAWmG,EAAS,cAAmB,aACvCqB,MAAO,CAAErG,SAAU,UAGpB0gB,EAAU,gBAAC,KAAD,CAAK/hB,QAASsH,GAAcya,GAAiB,KACvDgB,GACC,qBACE/iB,QA5FS,WACjB,IAAI0iB,EAAYP,EAAc,EAC9B5jB,OAAOgI,aAAalH,QAAQ,YAAa,GAErCqjB,GADe7E,MAAMoE,QAAQzhB,GAAOA,EAAIsC,OAAS,GACxB,IAAG4f,EAAY,GAC5CN,EAAeM,IAwFPxiB,UAAU,gBACVwH,MAAO,CAAErG,SAAU,OAAQ6hB,WAAY,UAI1CH,GACC,qBACE/iB,QAAS,WACPkiB,GAASza,IAEXvH,UAAU,gBACVwH,MAAO,CACLrG,SAAU,OACV6hB,WAAY,OACZ7iB,MAAOoH,EAAO,QAAU,eAKrB,MAAVua,OAAA,EAAAA,EAAaG,KACZ,gBAAC,KAAD,KACE,gBAAC,KAAD,CAAK1iB,GAAI,CAAEuG,GAAI,OAAQ9E,WAAY,WAAnC,MACG8gB,OADH,EACGA,EAAaG,Q,qFC1J1B,UAvDkB,WAChB,OACE,gBAAC,KAAD,CACE1iB,GAAI,CACFC,SAAU,CAAC,WAAY,YACvBC,IAAK,CAAC,EAAG,IACT+M,KAAM,GACN3M,OAAQ,IACRoG,SAAU,CAAC,QAAS,KACpB9E,SAAU,SAGZ,gBAAC,KAAD,CACE5B,GAAI,CACFQ,QAAS,OACTyR,GAAI,OACJ1L,GAAI,OACJ3E,SAAU,OACVI,cAAe,YACf,MAAO,CACLJ,SAAU,SAGdnB,UAAU,SAEV,gBAAC,UAAD,CAAaM,IAAK2iB,EAAAA,YAAanB,WAAYA,EAAAA,cAE7C,gBAAC,KAAD,CACEviB,GAAI,CACFQ,QAAS,OACT+F,GAAI,QAEN9F,UAAU,SAEV,qBAAG6O,KAAM,KACP,gBAAC,KAAD,CACEtP,GAAI,CACFiS,GAAI,OACJ3Q,OAAQ,UACRM,SAAU,OACVhB,MAAO,WAETL,QAAS,WACP,IAAMoH,EAASL,SAASC,eAAe,SACvCzI,OAAOgI,aAAalH,QAAQ,YAA5B,MAAyC+H,OAAzC,EAAyCA,EAAQkb,eATrD,a,i3DCKH,IAAMa,EAAc,CACzB,0BACA,uBACA,uBACA,uBACA,qBACA,yBACA,uBACA,kBACA,oBACA,uBACA,sBACA,mBACA,uBACA,oBACA,uBAGWnB,EAAa,CACxB,eACA,YACA,YACA,YACA,UACA,cACA,YACA,UACA,SACA,YACA,WACA,QACA,YACA,SACA,YAGIoB,EAAY,CAChB,CACE3kB,KAAM,aACN4kB,KAAM,cACN/U,MAAOgV,EACPC,SAAU,cAEZ,CACE9kB,KAAM,gBACN4kB,KAAM,gBACN/U,MAAOkV,EACPD,SAAU,YAEZ,CAAE9kB,KAAM,QAAS4kB,KAAM,SAAU/U,MAAOmV,EAAOF,SAAU,SACzD,CACE9kB,KAAM,WACN4kB,KAAM,YACN/U,MAAOoV,EACPH,SAAU,YAEZ,CAAE9kB,KAAM,SAAU4kB,KAAM,UAAW/U,MAAOqV,EAAQJ,SAAU,WAExDK,GAAa,CACjB,CAAEnlB,KAAM,kBAAmB4kB,KAAM,iBAAkB/U,MAAOuV,GAC1D,CACEplB,KAAM,mBACN4kB,KAAM,oBACN/U,MAAOwV,GAET,CAAErlB,KAAM,kBAAmB4kB,KAAM,mBAAoB/U,MAAOyV,GAE5D,CACEtlB,KAAM,oBACN4kB,KAAM,qBACN/U,MAAO0V,GAET,CACEvlB,KAAM,mBACN4kB,KAAM,oBACN/U,MAAO2V,GAET,CAAExlB,KAAM,gBAAiB4kB,KAAM,aAAc/U,MAAO4V,GACpD,CACEzlB,KAAM,oBACN4kB,KAAM,mBACN/U,MAAO6V,GAET,CAAE1lB,KAAM,OAAQ4kB,KAAM,QAAS/U,MAAO8V,GAEtC,CAAE3lB,KAAM,qBAAsB4kB,KAAM,WAAY/U,MAAO+V,GAEvD,CAAE5lB,KAAM,qBAAsB4kB,KAAM,SAAU/U,MAAOgW,GAErD,CAAE7lB,KAAM,oBAAqB4kB,KAAM,qBAAsB/U,MAAOiW,GAEhE,CAAE9lB,KAAM,mBAAoB4kB,KAAM,iBAAkB/U,MAAOkW,GAE3D,CAAE/lB,KAAM,gBAAiB4kB,KAAM,iBAAkB/U,MAAOmW,GAExD,CAAEhmB,KAAM,mBAAoB4kB,KAAM,oBAAqB/U,MAAOoW,GAE9D,CAAEjmB,KAAM,sBAAuB4kB,KAAM,uBAAwB/U,MAAOqW,GACpE,CACElmB,KAAM,gBACN4kB,KAAM,iBACN/U,MAAOsW,GAET,CAAEnmB,KAAM,iBAAkB4kB,KAAM,aAAc/U,MAAOuW,GACrD,CAAEpmB,KAAM,aAAc4kB,KAAM,cAAe/U,MAAOwW,GAClD,CACErmB,KAAM,0BACN4kB,KAAM,2BACN/U,MAAOyW,GAET,CAAEtmB,KAAM,wBAAyB4kB,KAAM,YAAa/U,MAAO0W,GAC3D,CACEvmB,KAAM,sBACN4kB,KAAM,uBACN/U,MAAO2W,GAET,CAAExmB,KAAM,iBAAkB4kB,KAAM,YAAa/U,MAAO4W,GACpD,CACEzmB,KAAM,uBACN4kB,KAAM,wBACN/U,MAAO6W,GAET,CACE1mB,KAAM,QACN4kB,KAAM,SACN/U,MAAO8W,IAILC,GAAS,CACb,CACEtY,MAAO,MACPsW,KAAM,yEACN/U,MAAOgX,IAIEC,GAAW,SAAC7oB,GAAW,IAAD,QAC3B8oB,EAAa9oB,EAAM8oB,WAAavd,KAAKC,MAAMxL,EAAM8oB,YAAc,GAC/DC,EAAW/oB,EAAM+oB,SAAWxd,KAAKC,MAAMxL,EAAM+oB,UAAY,GACzDC,EAAQhpB,EAAMgpB,MAAQzd,KAAKC,MAAMxL,EAAMgpB,OAAS,GAChDC,EAAWjpB,EAAMipB,SAAW1d,KAAKC,MAAMxL,EAAMipB,UAAY,GACzDC,EAASlpB,EAAMkpB,OAAS3d,KAAKC,MAAMxL,EAAMkpB,QAAU,GACnDC,EAAanpB,EAAMmpB,WACrBpW,EAAc/S,EAAMgT,cAAgB,GAExC,KAAkCzS,EAAAA,EAAAA,UAAS,MAA3C,GAAOO,EAAP,KAAkBC,EAAlB,KACA,KAA0CR,EAAAA,EAAAA,WAAS,GAAnD,GAAO6S,EAAP,KAAsBzH,EAAtB,KACA,KAA0CpL,EAAAA,EAAAA,UAAS,GAAnD,GAAOkG,EAAP,KAAsB2iB,EAAtB,KAUMC,GACK,MAATvoB,GAAA,SAAAA,EAAW2B,UAAX,WAAoB4C,aAApB,IAA4ByH,QAAO,SAACvH,GAAD,MALpB,4DAK6BA,EAAIC,YAAuB,GAEnE8jB,GACK,MAATxoB,GAAA,SAAAA,EAAW2B,UAAX,WAAoB4C,aAApB,IAA4ByH,QAAO,SAACvH,GAAD,MANnC,4DAM4CA,EAAIC,YAChD,GAEI+jB,EAAWzoB,KAAiB,MAAHuoB,OAAA,EAAAA,EAAKjjB,QAAS,IAAW,MAANkjB,OAAA,EAAAA,EAAQljB,QAAS,GAQ7DojB,EAAS,CACbV,WAAAA,EACAC,SAAAA,EACAC,MAAAA,EACAC,SAAAA,EACAC,OAAAA,GAGF,KAAgC3oB,EAAAA,EAAAA,WAAS,WACvC,IAAIuJ,IAAgB,MAACiJ,IAAAA,EAAa5T,IAGlC,OAFwByH,SAAS/E,OAAOgI,aAAa/G,QAAQ,eACxCgH,GAAe,GAC7BA,KAJT,GAAO2f,EAAP,KAAiBC,EAAjB,KAMA,KAA4CnpB,EAAAA,EAAAA,WAAS,GAArD,GAAOopB,EAAP,KAAuBC,EAAvB,KACA,KAAkCrpB,EAAAA,EAAAA,WAAS,GAA3C,GAAOspB,EAAP,KAAkBC,EAAlB,KACA,MAAoCvpB,EAAAA,EAAAA,WAAS,GAA7C,GAAOwpB,GAAP,MAAmBC,GAAnB,MAEA,OACE,gBAAC,IAAD,CAAera,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,GAAI,CACFkB,GAAI,UACJd,MAAO,OACPoB,UAAW,qBACXZ,MAAO,UACP2C,GAAI,CAAC,GAAI,IACTlD,OAAQ,OACRqG,SAAU,SACVC,GAAI,SAGN,yBAAOvK,GAAG,eAAe2E,IAAK,sBAC9B,yBAAO3E,GAAG,YAAY2E,IAAK,wBAC3B,yBAAO3E,GAAG,gBAAgB2E,IAAK,mBAC/B,yBAAO3E,GAAG,eAAe2E,IAAK,qBAC9B,gBAAC,KAAD,CACEA,IAAK8L,EACL7M,GAAI,CACFI,MAAO,OACPC,OAAQ,oBACRJ,SAAU,QACV6M,UAAW,QACXC,eAAgB,MAChB7M,IAAK,EACL8M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,MAGVomB,GACA,gBAAC,KAAD,CACE1mB,GAAI,CACFkB,GAAI,QACJd,MAAO,OACPC,OAAQ,oBACRJ,SAAU,QACVC,IAAK,EACL8M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,OAEVG,UAAU,eAEV,gBAAC,KAAD,CACET,GAAI,CACFI,MAAO,CAAC,MAAO,KACfsB,OAAQ,kBACRR,GAAI,QACJM,UAAW,QACXvB,SAAU,WACVC,IAAK,MACLyG,GAAI,OACJvF,EAAG,CAAC,GAAI,IACRR,MAAO,QACPW,UAAW,SACXD,OAAQ,YAGV,gBAAC,KAAD,sCACiC,IAC/B,wBACEf,QAAS,kBAAMwmB,GAAa,IAC5B9e,MAAO,CAAErH,MAAO,WAFlB,SAKQ,IAPV,8BAQ8B,IAC5B,wBAAMqH,MAAO,CAAErH,MAAO,YAAtB,aATF,KAWA,gBAAC,KAAD,CACEG,IAAKmmB,EACLlnB,GAAI,CACFuG,GAAI,GACJG,SAAU,IACVC,GAAI,OACJ1G,SAAU,cAGd,gBAAC,KAAD,CACED,GAAI,CACFuG,GAAI,GACJ3F,MAAO,QACPM,GAAI,QACJ6M,QAAS,YACTvN,QAAS,eACTc,OAAQ,UACRI,OAAQ,kBACR,UAAW,CACTd,MAAO,QACPM,GAAI,QACJQ,OAAQ,oBAGZnB,QAAS,WACP+G,SAASC,eAAe,gBAAgBC,OACxC1I,OAAOgI,aAAalH,QAAQ,WAAY,GACxC+mB,GAAY,KAlBhB,YA0BLC,GACC,gBAAC,KAAD,CACE5mB,GAAI,CACFkB,GAAI,QACJd,MAAO,OACPC,OAAQ,oBACRJ,SAAU,QACVC,IAAK,EACL8M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,OAEVC,QAAS,WACPsmB,GAAkB,IAEpBpmB,UAAU,eAEV,gBAAC,KAAD,CACET,GAAI,CACFI,MAAO,CAAC,MAAO,KACfsB,OAAQ,kBACRR,GAAI,QACJM,UAAW,QACXvB,SAAU,WACVC,IAAK,CAAC,GAAI,IACVyG,GAAI,OACJvF,EAAG,CAAC,GAAI,IACRR,MAAO,QACPW,UAAW,SACXD,OAAQ,YAGV,gBAAC,KAAD,CAAKiF,GAAI,IAAT,wDAGA,gBAAC,KAAD,CAAKA,GAAI,IAAT,2EAIA,gBAAC,KAAD,CAAKA,GAAI,IAAT,sFAIA,gBAAC,KAAD,CAAKA,GAAI,IAAT,wIAKA,gBAAC,KAAD,CACEvG,GAAI,CACFuG,GAAI,GACJ3F,MAAO,QACPM,GAAI,QACJ6M,QAAS,YACTvN,QAAS,eACTc,OAAQ,UACRI,OAAQ,kBACR,UAAW,CACTd,MAAO,QACPM,GAAI,QACJQ,OAAQ,qBAZd,YAqBLolB,GACC,gBAAC,KAAD,CACE9mB,GAAI,CACFkB,GAAI,QACJd,MAAO,OACPC,OAAQ,oBACRJ,SAAU,QACVC,IAAK,EACL8M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,OAEVG,UAAU,eAEV,gBAAC,KAAD,CACET,GAAI,CACFI,MAAO,CAAC,MAAO,KACfsB,OAAQ,kBACRR,GAAI,QACJM,UAAW,QACXvB,SAAU,WACVC,IAAK,CAAC,GAAI,IACV0B,SAAU,CAAC,OAAQ,QACnB+E,GAAI,OACJvF,EAAG,CAAC,GAAI,IACRR,MAAO,QACPW,UAAW,SACXD,OAAQ,YAGV,gBAAC,KAAD,CAAKiF,GAAI,GAAT,SACA,gBAAC,KAAD,CAAKA,GAAI,IAAT,yIAKA,gBAAC,KAAD,CAAKA,GAAI,IAAT,2IAKA,gBAAC,KAAD,CAAKA,GAAI,IAAT,gCACA,gBAAC,KAAD,CACEvG,GAAI,CACFuG,GAAI,GACJ3F,MAAO,QACPM,GAAI,QACJ6M,QAAS,YACTvN,QAAS,eACTc,OAAQ,UACRI,OAAQ,kBACR,UAAW,CACTd,MAAO,QACPM,GAAI,QACJQ,OAAQ,oBAGZnB,QAAS,WACP+G,SAASC,eAAe,iBAAiBC,OACzCuf,GAAa,KAjBjB,aAyBLC,IACC,gBAAC,KAAD,CACEhnB,GAAI,CACFkB,GAAI,QACJd,MAAO,OACPC,OAAQ,oBACRJ,SAAU,QACVC,IAAK,EACL8M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,OAEVC,QAAS,WACP0mB,IAAc,IAEhBxmB,UAAU,eAEV,gBAAC,KAAD,CACET,GAAI,CACFI,MAAO,CAAC,MAAO,KACfsB,OAAQ,kBACRR,GAAI,QACJM,UAAW,QACXvB,SAAU,WACVC,IAAK,CAAC,GAAI,IACV0B,SAAU,CAAC,OAAQ,QACnB+E,GAAI,OACJvF,EAAG,CAAC,GAAI,IACRR,MAAO,QACPW,UAAW,SACXD,OAAQ,YAGV,gBAAC,KAAD,CAAKiF,GAAI,EAAGvG,GAAI,CAAEyB,WAAY,aAC3B,0DAEH,gBAAC,KAAD,CAAM8E,GAAI,GAAIvG,GAAI,CAAEyD,eAAgB,WAClC,gBAAC,KAAD,CACEzD,GAAI,CACFQ,QAAS,eACTiB,WAAY,WACZF,UAAW,SAIX,6EAIN,gBAAC,KAAD,CAAKgF,GAAI,IAAT,+DAGA,gBAAC,KAAD,CAAKA,GAAI,IAAT,yGAIA,gBAAC,KAAD,CACEvG,GAAI,CACFuG,GAAI,GACJ3F,MAAO,QACPM,GAAI,QACJ6M,QAAS,YACTvN,QAAS,eACTc,OAAQ,UACRI,OAAQ,kBACR,UAAW,CACTd,MAAO,QACPM,GAAI,QACJQ,OAAQ,qBAZd,YAsBN,gBAAC,KAAD,CACE1B,GAAI,CACFiS,GAAI,CAAC,EAAG,IACR1L,GAAI,CAAC,GAAI,GACT1F,oBAAqB,CAAC,MAAO,aAC7BZ,SAAU,aAGZ,gBAAC,KAAD,KACE,gBAAC,KAAD,CAAKD,GAAI,CAAEC,SAAU,WAAYK,OAAQ,OACvC,sBAAIG,UAAU,OAAO,YAAU,KAA/B,IACG,wBAAMA,UAAU,gBAAhB,KADH,MAGE,wBAAMA,UAAU,gBAAhB,QAEF,gBAAC,KAAD,CACET,GAAI,CACFQ,QAAS,CAAC,OAAQ,QAClBM,WAAY,CAAC,UACb2C,eAAgB,gBAChB5C,oBAAqB,OAEvBJ,UAAU,eAEV,gBAAC,KAAD,KACE,gBAAC,KAAD,CACET,GAAI,CACFQ,QAAS,OACTyR,GAAI,CAAC,EAAG,QACR1L,GAAI,OACJvE,cAAe,YACfJ,SAAU,CAAC,OAAQ,QACnB,MAAO,CACLA,SAAU,SAGdnB,UAAU,SAEV,gBAAC,UAAD,CAAaM,IAAK2iB,EAAanB,WAAYA,KAE7C,gBAAC,KAAD,CACEviB,GAAI,CACFQ,QAAS,OACT+F,GAAI,QAEN9F,UAAU,SAEV,gBAAC,KAAD,CACET,GAAI,CACFiS,GAAI,CAAC,EAAG,QACR3Q,OAAQ,UACRM,SAAU,CAAC,OAAQ,SAErBrB,QAAS,kBAAMwmB,GAAa,KAN9B,UAWDX,GACC,gBAAC,KAAD,CACEpmB,GAAI,CACFQ,QAAS,OACT+F,GAAI,SAGN,qBAAG+I,KAAK,YAAY7O,UAAU,SAC5B,gBAAC,KAAD,CACET,GAAI,CACFiS,GAAI,CAAC,EAAG,QACR3Q,OAAQ,UACRM,SAAU,CAAC,OAAQ,UAJvB,eAcR,gBAAC,KAAD,CACE5B,GAAI,CACFiS,GAAI,CAAC,EAAG,QACR1L,GAAI,CAAC,GAAI,IACTtG,SAAU,WACVE,MAAO,CAAC,EAAG,IACXoB,UAAW,UAEbd,UAAU,kBAEV,gBAAC,UAAD,CACEvD,iBAAkBiF,EAAAA,mBAClB7E,cAtcI,SAAC+P,GACrBrP,EAAaqP,IAscG9P,cAAeqL,EACfxL,OAAQ,CAAE8C,IAAK,EAAGqG,GAAI,GACtBlJ,YAAa,CAAE6C,IAAK,QACpBwD,cAAeA,OAMtB3F,IAAcyoB,GACb,gBAAC,KAAD,CAAKrZ,GAAI,IACP,gBAAC,KAAD,CACE1M,UAAU,cACVT,GAAI,CACFY,MAAO,QACPJ,QAAS,QACTP,SAAU,WACVK,OAAQ,EACR8M,GAAI,CAAC,OAAQ,QACbD,GAAI,OACJvL,SAAU,OACVI,cAAe,YACfT,UAAW,WAXf,oEAiBA,gBAAC,KAAD,CACEvB,GAAI,CACFa,oBAAqB,CAAC,MAAO,WAC7BZ,SAAU,WACVK,OAAQ,GACRiB,UAAW,SACXX,MAAO,SAETH,UAAU,eAEV,gBAAC,KAAD,CACET,GAAI,CAAEsB,OAAQ,WACdf,QAAS,WACP+G,SAASC,eAAe,aAAaC,OACrC1I,OAAOrB,KAAK,gDAGd,gBAAC,KAAD,CACEsD,IAAKomB,EACLnnB,GAAI,CACFuG,GAAI,GACJG,SAAU,IACVC,GAAI,OACJ1G,SAAU,WACVqB,OAAQ,aAGZ,gBAAC,KAAD,CAAKiF,GAAI,GAAT,OAEF,gBAAC,KAAD,CACEvG,GAAI,CAAEsB,OAAQ,WACdf,QAAS,WACP+G,SAASC,eAAe,aAAaC,OACrC1I,OAAOrB,KACL,sDAIJ,gBAAC,KAAD,CACEsD,IAAKqmB,EACLpnB,GAAI,CACFuG,GAAI,GACJG,SAAU,IACVC,GAAI,OACJ1G,SAAU,WACVqB,OAAQ,aAGZ,gBAAC,KAAD,CAAKiF,GAAI,GAAT,aAMPxI,GAAayoB,GACZ,gBAAC,KAAD,CAAKxmB,GAAI,CAAEC,SAAU,WAAYK,OAAQ,KACvC,gBAAC,KAAD,CACEG,UAAU,cACVT,GAAI,CACFY,MAAO,QACPJ,QAAS,QACTP,SAAU,WACVK,OAAQ,EACRiG,GAAI,CAAC,OAAQ,SACb4G,GAAI,OACJvL,SAAU,OACVL,UAAW,SACXD,OAAQ,UACR,UAAW,CACTV,MAAO,WAGXL,QAAS,WACP+G,SAASC,eAAe,gBAAgBC,OACxCyf,IAAc,KAlBlB,eAuBA,gBAAC,KAAD,CAAMjnB,GAAI,CAAE2O,QAAS,CAAC,OAAQ,UAC3BgV,EAAU1nB,KAAI,SAACorB,GACd,OACE,gBAAC,KAAD,CACEtf,IAAKsf,EAAKroB,KACVgB,GAAI,CAAE0G,SAAU,QAASvD,GAAI,OAAQ8O,GAAI,CAAC,EAAG,UAE7C,gBAAC,KAAD,CACEjS,GAAI,CACFa,oBAAqB,CAAC,MAAO,WAC7B8N,QAAS,CAAC,OAAQ,UAGpB,gBAAC,KAAD,CACElO,UAAU,cACVT,GAAI,CACFuB,UAAW,SACX4L,GAAI,CAAC,EAAG,QACR/M,MAAO,QAETG,QAAS,WACP,IAAMoH,EAASL,SAASC,eAAe,SACvCzI,OAAOgI,aAAalH,QAClB,YADF,MAEE+H,OAFF,EAEEA,EAAQkb,eAIZ,gBAAC,KAAD,CACEvT,KAAI,GAAK+X,EAAKzD,KACd5jB,GAAI,CAAE+B,eAAgB,SAEtB,gBAAC,KAAD,CACEhB,IAAKsmB,EAAKxY,MACV7O,GAAI,CACFI,MAAO,CAAC,QAAS,QACjBH,SAAU,WACVK,OAAQ,EACRoB,OAAQ,kBACRP,aAAc,UAGlB,gBAAC,KAAD,CACEV,UAAU,cACVT,GAAI,CACFY,MAAO,QACPJ,QAAS,QACTP,SAAU,WACVK,OAAQ,EACRiG,GAAI,OACJ3E,SAAU,SAGXylB,EAAKroB,QAIZ,gBAAC,KAAD,KACE,gBAAC,KAAD,CAAMyB,UAAU,eACd,gBAAC,KAAD,CACEA,UAAU,cACVT,GAAI,CACFY,MAAO,QACPJ,QAAS,QACTP,SAAU,WACVK,OAAQ,EACR6M,GAAI,MACJvL,SAAU,OACVL,UAAW,SACX+lB,aAAc,oBAVlB,eAeC,CAAC,EAAG,EAAG,EAAG,EAAG,GAAGrrB,KAAI,SAAC2S,GAAW,IAAD,IACxB2Y,EAAad,EAAOY,EAAKvD,UAC/B,OACE,gBAAC,KAAD,CACE9jB,GAAI,CACFa,oBAAqB,gBACrBD,MAAO,QACPgB,SAAU,SAGZ,gBAAC,KAAD,CACE5B,GAAI,CACF0G,SAAU,OACV0I,aAAc,WACdD,SAAU,YAGD,MAAVoY,GAAA,SAAAA,EAAa3Y,SAAb,IAAqBS,OAAQ,UAEhC,6BACA,gBAAC,KAAD,MACa,MAAVkY,GAAA,SAAAA,EAAa3Y,SAAb,IAAqB4Y,QAAS,iBAe1DzpB,GAAayoB,GACZ,gBAAC,U,+VAAD,EAEIzoB,UAAAA,EACAsS,cAAAA,EACA3M,cAAAA,EACA2iB,iBAAAA,GACGppB,KAMX,gBAAC,KAAD,CAAK+C,GAAI,CAAEC,SAAU,WAAYK,OAAQ,KACtCvC,GAAayoB,GACZ,gBAAC,KAAD,KACE,gBAAC,KAAD,CACE/lB,UAAU,cACVT,GAAI,CACFY,MAAO,QACPJ,QAAS,QACTP,SAAU,WACVK,OAAQ,EACRiG,GAAI,CAAC,OAAQ,SACbpC,GAAI,OACJvC,SAAU,OACVL,UAAW,SACXD,OAAQ,UACR,UAAW,CACTV,MAAO,WAGXL,QAAS,WACPsmB,GAAkB,KAjBtB,gBAsBA,gBAAC,KAAD,CAAKpmB,UAAU,wBACZ0jB,GAAWloB,KAAI,SAACorB,GACf,OACE,gBAAC,KAAD,CACEtf,IAAKsf,EAAKroB,KACVyB,UAAU,cACVT,GAAI,CAAEuB,UAAW,SAAU4L,GAAI,OAAQ/M,MAAO,QAC9CG,QAAS,WACP,IAAMoH,EAASL,SAASC,eAAe,SACvCzI,OAAOgI,aAAalH,QAClB,YADF,MAEE+H,OAFF,EAEEA,EAAQkb,eAIZ,gBAAC,KAAD,CACEvT,KAAI,SAAW+X,EAAKzD,KACpB5jB,GAAI,CAAE+B,eAAgB,SAEtB,gBAAC,KAAD,CACEhB,IAAKsmB,EAAKxY,MACV7O,GAAI,CACFI,MAAO,CAAC,OAAQ,QAChBH,SAAU,WACVK,OAAQ,EACRoB,OAAQ,kBACRP,aAAc,UAGlB,gBAAC,KAAD,CACEV,UAAU,cACVT,GAAI,CACFY,MAAO,QACPJ,QAAS,QACTP,SAAU,WACVK,OAAQ,EACRiG,GAAI,OACJ3E,SAAU,SAGXylB,EAAKroB,cAUxB,gBAAC,KAAD,CAAKgB,GAAI,CAAEC,SAAU,WAAYK,OAAQ,KACtCvC,GAAayoB,GACZ,gBAAC,KAAD,KACE,gBAAC,KAAD,CACE/lB,UAAU,cACVT,GAAI,CACFY,MAAO,QACPJ,QAAS,QACTP,SAAU,WACVK,OAAQ,EACRiG,GAAI,CAAC,OAAQ,SACbpC,GAAI,OACJvC,SAAU,OACVL,UAAW,SACXD,OAAQ,UACR,UAAW,CACTV,MAAO,WAGXL,QAAS,WACP+G,SAASC,eAAe,gBAAgBC,OACxC1I,OAAOrB,KACL,wDAnBN,UAyBA,gBAAC,KAAD,CAAKuC,GAAI,CAAEmN,GAAI,GAAIlN,SAAU,WAAYG,MAAO,SAC9C,gBAAC,KAAD,CACEW,IAAK0mB,EACLznB,GAAI,CACFI,MAAO,CAAC,OAAQ,QAChBE,OAAQ,EACRa,aAAc,OACdX,QAAS,CAAC,OAAQ,YAGtB,gBAAC,KAAD,CACEO,IAAK2mB,EACL1nB,GAAI,CACFI,MAAO,CAAC,OAAQ,QAChBE,OAAQ,EACRa,aAAc,OACdX,QAAS,CAAC,QAAS,QACnB2M,GAAI,UAGR,gBAAC,KAAD,CACEnN,GAAI,CACFC,SAAU,WACVY,oBAAqB,CAAC,UAAW,oBACjC8N,QAAS,OACTzO,IAAK,CAAC,MAAO,OACb+M,KAAM,CAAC,GAAI,OACX9M,MAAO,CAAC,GAAI,SAGbylB,GAAO3pB,KAAI,SAAC0rB,GACX,OACE,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEpnB,QAAS,WACP+G,SAASC,eAAe,gBAAgBC,OACxC1I,OAAOrB,KAAKkqB,EAAM/D,QAGpB,gBAAC,KAAD,CACE5jB,GAAI,CACFuB,UAAW,SACX0T,WAAY,YACZ3T,OAAQ,UAER,UAAW,CACT6T,UAAW,iBAIf,gBAAC,KAAD,CACEpU,IAAK4mB,EAAM9Y,MACX7O,GAAI,CACFI,MAAO,CAAC,OAAQ,KAChBE,OAAQ,EACR2M,KAAM,EACN9M,MAAO,EACPmB,OAAQ,aAGZ,gBAAC,KAAD,CACEtB,GAAI,CACFuB,UAAW,SACXX,MAAO,QACP2F,GAAI,GAEN9F,UAAU,eAETknB,EAAMra,oBAiBrC,c,4mECtiCO,IAAMsa,EAAgB,SAAC3qB,GAAW,IAAD,YAChCkL,EAASlL,EAAMmL,QACfM,EAAOzL,EAAMyL,KACbhF,EAAgBzG,EAAMyG,eAAiB,EACvC2iB,EAAmBppB,EAAMopB,iBAC3BrW,EAAc/S,EAAMgT,cAAgB,GAClClS,EAAYd,EAAMc,UAClBsS,EAAgBpT,EAAMoT,cACtBwX,EACJ,0GACF,KAA0BrqB,EAAAA,EAAAA,UAASwS,GAAnC,GAAOQ,EAAP,KAAcC,EAAd,KACA,KAA4BjT,EAAAA,EAAAA,UAAS,MAArC,GAAOkT,EAAP,KAAeC,EAAf,KACA,KAA8BnT,EAAAA,EAAAA,UAAS,MAAvC,GAAOoT,EAAP,KAAgBC,EAAhB,KACA,KAA8BrT,EAAAA,EAAAA,WAAS,GAAvC,GAAOK,EAAP,KAAgBC,EAAhB,KACA,KAAsCN,EAAAA,EAAAA,UAAS,SAA/C,GAAOsqB,EAAP,KAAoBC,EAApB,KACA,KAAwBvqB,EAAAA,EAAAA,WAAS,GAAjC,GAAOC,EAAP,KAAaC,EAAb,KACA,KAAsCF,EAAAA,EAAAA,UAAS,IAA/C,GAAO8S,EAAP,KAAoBC,EAApB,KACMS,EAAeR,IAAK,MAAIA,OAAJ,EAAIA,EAAOS,YAAW,MAACT,GAAAA,EAAOwX,mBAClD7W,EAAiBX,IAAK,MAAIA,OAAJ,EAAIA,EAAOS,WAAhB,MAA2BT,OAA3B,EAA2BA,EAAOwX,mBAEnDC,EAAiB,CACrB,CACEjpB,KAAM,QACNyD,OAAQ,2DACRgJ,MAAO,IACP0P,YAAa,6BAEf,CACEnc,KAAM,OACNyD,OAAQ,2DACRgJ,MAAO,KACP0P,YAAa,4BAEf,CACEnc,KAAM,QACNyD,OAAQ,2DACRgJ,MAAO,KACP0P,YAAa,8BAEf,CACEnc,KAAM,QACNyD,OAAQ,2DACRgJ,MAAO,IACP0P,YAAa,4BAEf,CACEnc,KAAM,OACNyD,OAAQ,2DACRgJ,MAAO,IACP0P,YAAa,4BAEf,CACEnc,KAAM,UACNyD,OAAQ,2DACRgJ,MAAO,KACP0P,YAAa,+BAEf,CACEnc,KAAM,OACNyD,OAAQ,2DACRgJ,MAAO,IACP0P,YAAa,2BAEf,CACEnc,KAAM,OACNyD,OAAQ,2DACRgJ,MAAO,IACP0P,YAAa,4BAEf,CACEnc,KAAM,SACNyD,OAAQ,2DACRgJ,MAAO,IACP0P,YAAa,+BAEf,CACEnc,KAAM,OACNyD,OAAQ,2DACRgJ,MAAO,IACP0P,YAAa,2BAEf,CACEnc,KAAM,OACNyD,OAAQ,2DACRgJ,MAAO,MACP0P,YAAa,8BAIX+M,EAAgBD,EAAe1lB,MACnC,SAAC4lB,GAAD,OAAWA,EAAMnpB,OAAN,MAAcwR,OAAd,EAAcA,EAAO2I,UAGlC,KAA4B3b,EAAAA,EAAAA,YAAU,SAACwS,KAAA,EAAa5T,KAApD,GAAOgsB,EAAP,KAAeC,EAAf,KACA,KAA8B7qB,EAAAA,EAAAA,WAAS,GAAvC,GAAO8qB,GAAP,KAAgBC,GAAhB,KA9FsC,SA+GvB7W,KA/GuB,oEA+GtC,+FACE5N,QAAQC,IAAI,WADd,MAEOyM,GAAAA,EAAOpU,GAFd,yCAEyB,MAFzB,uBAIqBsP,IAAAA,IAAA,kBAAqB8E,OAArB,EAAqBA,EAAOpU,IAAM,CACnDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBARd,OAIQC,EAJR,OAYQiG,EAZR,MAYoBjG,OAZpB,EAYoBA,EAAMC,KACJvD,KAAKyD,UAAUuE,IAAUhI,KAAKyD,UAAU8F,IAC7C,MAAIA,GAAAA,EAAW3V,KAC5BqU,EAASsB,GAELA,EAAUd,UAAYc,EAAUiW,mBAClCnX,EACE,oGAIAkB,EAAUiW,oBACZnX,EACE,gEAEFwV,EAAiB3iB,EAAgB,GACjC4D,SAASC,eAAe,qBAAqBihB,UAA7C,MACEzW,OADF,EACEA,EAAW0W,SAGX1W,EAAUH,YACNC,GAAY,SAAAE,EAAUH,gBAAV,IAAqBE,MAAM,QAAS,GACtDjB,EAAW,IACXF,EAAU,CACR,qDADO,OAEJkB,MAKJE,EAAUiW,oBACPjY,EAAQgC,EAAUd,QAAU,IAAQ,IAC1C/J,WAAWwK,GAAS3B,IA5CxB,6CA/GsC,uBAgGtClQ,EAAAA,EAAAA,YAAU,WAMR,GALA6R,KACS,MAALlB,GAAAA,EAAOpU,KAAOoU,EAAMwX,mBAAwC,UAAnBxX,EAAMmB,WACjDzK,WAAWwK,GAAS,KAGlBlB,GAASA,EAAMoB,UAAW,CAAC,IAAD,EACtBC,GAAY,SAAArB,EAAMoB,gBAAN,IAAiBE,MAAM,QAAS,GAClDnB,EAAU,CACR,qDADO,OAEJkB,OAGN,IAkDH,IAAMqH,GAAgB,6BAAG,WAAOwP,GAAP,gFACvB5qB,GAAW,GACX+S,EAAW,IAFY,kBAIFnF,IAAAA,KACjB,oBACA,CACE8E,MAAO,CACL9N,SAAU,GACV0F,QAASD,EACTiK,MAAoB,OAAbsW,EAAqB,GAAK,EACjCvP,MAAOuP,EACPtP,WAAY,YACZ5Z,QAAO,MAAEzB,OAAF,EAAEA,EAAWyB,UAGxB,CACEoM,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBApBO,OAIfC,EAJe,OAyBrBhO,GAAW,GAEX,MAAIgO,GAAJ,SAAIA,EAAMC,OAAN,EAAY3P,IACdqU,EAAQ,MAAC3E,OAAD,EAACA,EAAMC,MACf4E,EAAU,OAEVA,EAAS,MAAC7E,OAAD,EAACA,EAAMC,MA/BG,kDAkCrBjI,QAAQ4D,MAAR,MAlCqB,0DAAH,sDAsChB2R,GAAiB,6BAAG,WAAO9c,GAAP,kFACxBuB,GAAW,GADa,kBAGH4N,IAAAA,OAAA,WAAwBnP,EAAEH,GAAM,CACjDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBAPU,OAGhBC,EAHgB,OAWtBhO,GAAW,GAEgB,IAAnB,MAAJgO,GAAA,SAAAA,EAAMC,WAAN,IAAYK,SACdqE,EAAS,MAETE,EAAU,OAAC7E,GAAD,SAACA,EAAMC,WAAP,EAAC,EAAYrE,QAhBH,gDAmBtB5D,QAAQ4D,MAAR,MAnBsB,yDAAH,sDAgLjB4e,IACK,MAATvoB,GAAA,SAAAA,EAAW2B,UAAX,WAAoB4C,aAApB,IAA4ByH,QAAO,SAACvH,GAAD,MALpB,4DAK6BA,EAAIC,YAAuB,GAEnE8jB,IACK,MAATxoB,GAAA,SAAAA,EAAW2B,UAAX,WAAoB4C,aAApB,IAA4ByH,QAAO,SAACvH,GAAD,MANnC,4DAM4CA,EAAIC,YAChD,GAEI+jB,GAAWzoB,KAAiB,MAAHuoB,QAAA,EAAAA,GAAKjjB,QAAS,IAAW,MAANkjB,QAAA,EAAAA,GAAQljB,QAAS,GAEnE,OACE,gCACE,gBAAC,KAAD,CACErD,GAAI,CACFiS,GAAI,OACJ9O,GAAI,OACJ/C,MAAO,QACPH,SAAU,SACVK,OAAQ,GACRJ,IAAK,OACLqG,GAAI,OACJjF,OAAQ,UACRjB,OAAQ,QACR8D,GAAI,CAAC,OAAQ,KAGdpG,GAAayoB,IACZ,gBAAC,KAAD,CACEjmB,QAAS,WACP+G,SAASC,eAAe,kBAAkBC,OAC1C6gB,GAAU,IAEZM,aAAc,WACZJ,IAAW,GACXjhB,SAASC,eAAe,kBAAkBC,QAE5CyP,aAAc,WACZsR,IAAW,KAGb,gBAAC,KAAD,CACExnB,IAAK6nB,EACL5oB,GAAI,CACFI,MAAO,CAAC,SACRE,OAAQ,EACRL,SAAU,WACV6N,QAASwa,GAAU,EAAI,KAG3B,gBAAC,KAAD,CACEvnB,IAAK8nB,EACL7oB,IAAE,GACAI,MAAO,CAAC,SACRF,IAAK,EACLD,SAAU,YAHV,MAIK,SAJL,EAKAK,OAAQ,GALR,EAMAwN,QAASwa,GAAU,EAAI,EANvB,MAWR,yBAAOlsB,GAAG,iBAAiB2E,IAAK,0BAElC,gBAAC,KAAD,CACEf,GAAI,CACFkB,GAAI,QACJd,MAAO,OACPC,OAAQ,oBACRJ,SAAU,QACVO,QAAS4nB,EAAS,QAAU,OAC5BloB,IAAK,EACL8M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,OAEVG,UAAU,eAEV,gBAAC,KAAD,CACET,GAAI,CACFC,SAAU,WACVC,IAAK,EACL8M,OAAQ,EACRC,KAAM,EACN9M,MAAO,GAETI,QAAS,WACP8nB,GAAU,MAGd,gBAAC,KAAD,CACEroB,GAAI,CACFI,MAAO,CAAC,MAAO,KACfsB,OAAQ,kBACRR,GAAI,QACJM,UAAW,QACXvB,SAAU,WACVC,IAAK,KACLyG,GAAI,OACJvF,EAAG,CAAC,GAAI,IACRR,MAAO,QACPW,UAAW,SACXD,OAAQ,UACRhB,OAAQ,SAGV,gBAAC,KAAD,uBACA,gBAAC,KAAD,CAAKN,GAAI,CAAEuG,GAAI,KACZxI,IAAS,MAAIyS,OAAJ,EAAIA,EAAOpU,KACnB,gBAAC,KAAD,KACE,gBAAC,KAAD,CACE4D,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KALR,SAQYqM,EAAMpU,IAEjBsU,GAAUA,EAAOrN,OAAS,GACzB,gBAAC,KAAD,WACGqN,OADH,EACGA,EAAQzU,KAAI,SAACyL,GAAD,OACX,gBAAC,KAAD,CACE1H,GAAI,CACFY,MAAO,QAEPa,WAAY,WACZF,UAAW,SACX4C,GAAI,GACJoC,GAAI,EACJI,GAAI,OACJD,SAAU,MAGXgB,OAMRkJ,GACC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACE5Q,GAAI,CACFY,MAAO,QACPa,WAAY,WACZsD,GAAI,KAGL6L,IAKNI,IAAiBJ,GAChB,gCACE,gBAAC,KAAD,CACE5Q,GAAI,CACFyB,WAAY,WACZ0C,GAAI,KAHR,kHAWE,MAALqM,OAAA,EAAAA,EAAOpU,KAAM,CAAC,KAAM,UAAU8G,SAASsN,EAAMmB,YAC5C,gBAAC,KAAD,CAAK3R,GAAI,IACP,gBAAC,KAAD,CAAK+E,GAAI,IAAT,MACGmjB,OADH,EACGA,EAAe/M,YACA,OAAf3K,EAAM2I,OAAkB,yBAE3B,gBAAC,KAAD,CAAMnZ,GAAI,CAAEa,oBAAqB,YAC/B,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEb,GAAI,CACFuG,GAAI,GACJ3F,MAAO,QACPM,GAAI,QACJd,MAAO,OACP2N,QAAS,YACTvN,QAAS,eACTc,OAAQ,UACRI,OAAQ,kBACR,UAAW,CACTd,MAAO,QACPM,GAAI,QACJQ,OAAQ,oBAGZnB,QAAS,WACP8Y,GAAkB7I,KAjBtB,YAuBAH,KACEG,EAAM6B,eAAiB7B,EAAMoB,YAC7B,gBAAC,KAAD,CACE5R,GAAI,CACFuG,GAAI,GACJ3F,MAAO,QACPM,GAAI,QACJd,MAAO,OACP2N,QAAS,YACTvN,QAAS,eACTc,OAAQ,UACRI,OAAQ,kBACR,UAAW,CACTd,MAAO,QACPM,GAAI,QACJQ,OAAQ,oBAGZnB,QAAS1C,EAAU,KAjXvB,WACpBC,GAAW,GACXyS,EAAe,YAEf,IAAM+B,EAAiB,6BAAG,+HACpBC,EADoB,MACHxU,OADG,EACHA,EAAWyB,QAC1BgT,EAAaD,EAEbuW,EAAe,CACnB,CACE7V,MAAI,MAAKiV,OAAL,EAAKA,EAAezlB,QAApB,WAA8BylB,OAA9B,EAA8BA,EAAelpB,MACjD0D,SAAQ,MAAEwlB,OAAF,EAAEA,EAAezc,QAYzBiH,EAAgB,CAClB,IAAK,CACH,KAVgB,CAClBC,KAAM,CACJC,KAAM,yDACNC,UAAW,yDACXC,QAAS,8DAUO,EAEhBC,EAAa,GAGfA,EADEmV,EACW,CACX,CACE1oB,QAASqoB,EACT7U,OAAQ,IACR1Q,OAAQwmB,IAIC,CACX,CACEtpB,QAASqoB,EACT7U,OAAQ,OAKVE,EAAQ,KACRC,EAAQ,KACRC,EAAc,KAhDM,oBAoDNrV,EAAUsV,cApDJ,eAoDpBH,EApDoB,iBAqDNnV,EAAUuV,eArDJ,eAqDpBH,EArDoB,iBAsDApV,EAAUqV,YAAY,CACxCG,eAAgBhB,EAChBQ,WAAYA,EACZS,SAAUd,EACVe,aAAa,EACbC,SAAUR,EACVS,WAAgB,OAAL,EAAAR,QAAA,IAAO/W,KAAM,EACxBwX,IAAK,OA7Da,QAsDpBR,EAtDoB,0DAiEF,qBADdS,EAhEgB,kBAgEH,KAAKrP,WAEpBqP,EACE,uOACJ/P,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,EAAU,CAACkD,IAtES,gCAyEtB/V,GAAW,GACX6S,EAAU,CAAC,+CA1EW,eA6EpBmD,EAAe,KA7EK,oBA+ED/V,EAAUgW,OAAOX,GAAa,GA/E7B,QA+EtBU,EA/EsB,0DAkFtBhW,GAAW,GAlFW,YAqFpBgW,EArFoB,kCAuFhBhI,EAAO,KAvFS,UAwFPJ,IAAAA,KAAA,mBACQ8E,EAAMpU,GACzB,CACEgX,YAAAA,EACAf,cAAeyB,EACfE,YAAaxB,GAEf,CACE5G,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBAnGM,QAwFpBC,EAxFoB,OAwGpB,SAAIA,IAAJ,SAAI,EAAMC,OAAN,EAAY6E,SACdC,EACE,yEAEF/S,GAAW,GACX6S,EAAU,IACJsD,EANiB,OAOlBzD,GAPkB,IAQrBmB,UAAW,YACXU,cAAeyB,IAEjBrD,EAASwD,GAGT/M,WAAWwK,GAAS,OAEpB5N,QAAQC,IAAR,SAAY+H,QAAZ,EAAY,EAAMC,MACZmI,GAAoB,OAAJ,EAAApI,IAAA,WAAMC,WAAN,IAAY2E,SAAU,GAC5C5S,GAAW,GACX6S,EAAU,CACR,gHADO,OAEJuD,KA7Ha,mDAiIpBpQ,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,EAAU,CACR,kFADQ,OAnIU,gCAyItB7M,QAAQ4D,MAAMoM,GACdhW,GAAW,GA1IW,2EAAH,qDA6IlBD,GAASyU,MAkOWzU,EACGyS,EACAE,EAAMoB,UACN,UACA,cAOfT,GACC,gBAAC,KAAD,KACE,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEnR,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJpC,GAAI,GACJiL,aAAc,WACdD,SAAU,SACV7N,OAAQ,UACR,MAAO,CACLV,MAAO,aAXb,YAgBE,qBACE0O,KAAI,sCAAwCkB,EAAMS,QAClDhM,OAAO,UAENuL,EAAMS,UAIX,gBAAC,KAAD,CACEjR,GAAI,CACFY,MAAO,QACPM,GAAI,QACJ6M,QAAS,YACTvN,QAAS,eACTc,OAAQ,UACRI,OAAQ,kBACRtB,MAAO,OACP,UAAW,CACTQ,MAAO,QACPM,GAAI,QACJQ,OAAQ,oBAGZnB,QAAS,WACPkQ,EAAS,MACT4X,GAAU,GACVrY,EAAc,KAlBlB,cA6BT,MAACQ,GAAAA,EAAOpU,KACP,gBAAC,KAAD,KACE,gBAAC,KAAD,CACE4D,GAAI,CACFQ,QAAS,OACTK,oBAAqB,UACrB8N,QAAS,GACT7N,WAAY,UAEdP,QAAS,WACP7C,GAASD,KAGX,gBAAC,KAAD,eACA,gBAAC,KAAD,CAAKuC,GAAI,CAAEC,SAAU,aACnB,gBAAC,KAAD,CACED,GAAE,KACG+oB,IAGJjB,GAEFrqB,GACC,gBAAC,KAAD,CACEuC,GAAI,CACFY,MAAO,QACPR,MAAO,OACPc,GAAI,QACJ6M,QAAS,CAAC,WACVvN,QAAS,eACTc,OAAQ,UACRI,OAAQ,kBACRD,WAAY,CAAC,UACbG,SAAU,CAAC,OAAQ,QACnB3B,SAAU,WACVC,IAAK,OACL+M,KAAM,EACN9M,MAAO,EACPwZ,UAAW,IACXxK,SAAU,SAGX8Y,EAAehsB,KAAI,SAACksB,GAAD,OAClB,gBAAC,KAAD,CACEnoB,GAAI,CACF2B,GAAI,OACJvB,MAAO,OACP,UAAW,CACTQ,MAAO,QACPM,GAAI,UAGRX,QAAS,WACPwnB,EAAeI,EAAMnpB,MACrBtB,GAAQ,KAGTyqB,EAAMnpB,YAQlBipB,EAAehsB,KAAI,SAACksB,EAAOvZ,GAAR,OAClBuZ,EAAMnpB,MAAQ8oB,EACZ,gBAAC,KAAD,CACE9nB,GAAE,GACAuG,GAAI,IACDwiB,GAELxoB,QAAS,WACP2Y,GAAiBiP,EAAMnpB,QAGxBmpB,EAAMhN,aAEP,QAEN,gBAAC,KAAD,CACEnb,GAAE,GACAuG,GAAI,IACDwiB,GAELxoB,QAAS,WACP2Y,GAAiB,SANrB,yBAWA,gBAAC,KAAD,CACE5J,KAAK,+GACLrK,OAAO,UAEP,gBAAC,KAAD,CACEjF,GAAE,GACAuG,GAAI,IACDwiB,IAHP,qBAkBZA,EAAY,CAChBnoB,MAAO,QACPR,MAAO,OACPc,GAAI,QACJ6M,QAAS,CAAC,YAAa,aACvBvN,QAAS,eACTc,OAAQ,UACRI,OAAQ,kBACRD,WAAY,CAAC,UACbG,SAAU,CAAC,OAAQ,QACnB,UAAW,CACThB,MAAO,QACPM,GAAI,QACJQ,OAAQ,oBAIZ,a,iECxtBA,UAhEmB,SAAC,GAAgB,IAAd+kB,EAAa,EAAbA,OACdc,EAAad,EAASje,KAAKC,MAAMge,GAAU,GAEjD,OACE,gBAAC,KAAD,CACEzmB,GAAI,CACFC,SAAU,CAAC,WAAY,YACvBO,QAAS,CAAC,OAAQ,SAClBN,IAAK,CAAC,EAAG,IACTC,MAAO,CAAC,EAAG,IACXG,OAAQ,IACR8M,GAAI,CAAC,OAAQ,GACbY,OAAQ,CAAC,QACTtH,SAAU,CAAC,MAAO,KAClB9E,SAAU,SAGZ,gBAAC,KAAD,KACE,gBAAC,KAAD,CAAMnB,UAAU,eACd,gBAAC,KAAD,CACEA,UAAU,cACVT,GAAI,CACFY,MAAO,QACPJ,QAAS,QACTP,SAAU,WACVK,OAAQ,EACR6M,GAAI,MACJvL,SAAU,OACVL,UAAW,SACX+lB,aAAc,oBAVlB,eAeC,CAAC,EAAG,EAAG,EAAG,EAAG,GAAGrrB,KAAI,SAAC2S,GAAW,IAAD,IAC9B,OACE,gBAAC,KAAD,CACE5O,GAAI,CACFa,oBAAqB,gBACrBD,MAAO,QACPgB,SAAU,SAGZ,gBAAC,KAAD,CACE5B,GAAI,CACF0G,SAAU,OACV0I,aAAc,WACdD,SAAU,SACV1N,WAAY,YAGH,MAAV8lB,GAAA,SAAAA,EAAa3Y,SAAb,IAAqBS,OAAQ,UAEhC,6BACA,gBAAC,KAAD,MAAiB,MAAVkY,GAAA,SAAAA,EAAa3Y,SAAb,IAAqB4Y,QAAS,Y,0mCCrCrD,IAAMwB,EAAW,CACf,UACA,UACA,WAEIC,EAAQ,CACZC,EACAC,EACAC,GAEIC,EAAU,CACd,SACA,SACA,UACA,YACA,WACA,aACA,eACA,QACA,aACA,QACA,WACA,WACA,UAEIC,EAAkB,SAAC1I,GACvB,IAAIC,EAAM5a,KAAKC,MAAMD,KAAKE,SAAW8iB,EAAM5lB,QAG3C,OAFIwd,GAAOD,IAAUC,EAAM5a,KAAKC,MAAMD,KAAKE,SAAW8iB,EAAM5lB,SACxDwd,GAAOD,IAAUC,EAAM5a,KAAKC,MAAMD,KAAKE,SAAW8iB,EAAM5lB,SACrDwd,GAGI0I,EAAU,SAACtsB,GACLA,EAAMusB,SADU,IAAD,EAG1B9T,EAAQlN,KAAKC,MAAMxL,EAAMyY,OACzBC,EAAYnN,KAAKC,MAAMxL,EAAM0Y,WAE7BC,EAAQ,MAAGF,OAAH,EAAGA,EAAOnT,MAAK,SAACsT,GAAD,MAAuB,QAAbA,EAAK7W,QACtC8W,EAAY,MAAGH,OAAH,EAAGA,EAAWpT,MAAK,SAACwT,GAAD,OAAWA,EAAMC,UAAN,MAAiBJ,OAAjB,EAAiBA,EAAUxZ,OAG3E,GAFU,MAAG0Z,GAAAA,EAAcI,MAE3B,GAAwC1Y,EAAAA,EAAAA,UAAS8rB,KAAjD,IAAOG,EAAP,KAAqBC,EAArB,KACA,KAA4BlsB,EAAAA,EAAAA,UAAS,GAArC,GAAOmsB,EAAP,KAAeC,EAAf,KAEMC,EAAaZ,EAAMQ,GACnBK,EAAWd,EAASS,GAa1B,OANA5pB,EAAAA,EAAAA,YAAU,WACRopB,EAAMrmB,SAAQ,SAACmnB,GA3DnB,IAAsB5kB,EAAAA,EA4DH4kB,GA3DP,IAAI3kB,OACVrE,IAAMoE,OA4DP,IAGD,gBAAC,IAAD,CAAeyH,MAAOA,EAAAA,OAGpB,gBAAC,KAAD,CACE5M,IAAE,GACAkB,GAAI,QACJd,MAAO,OACPC,OAAQ,CAAC,sBAAuB,UAHhC,KAIIypB,EAJJ,IAOF,gBAAC,KAAD,CACE/oB,IAAK8oB,EACL7pB,GAAI,CACFI,MAAO,CAAC,QAAS,SACjBH,SAAU,QACV+M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,KAGZ,gBAAC,KAAD,CACEN,GAAI,CACFkB,GAAI,cACJd,MAAO,CAAC,MAAO,SACfsG,SAAU,OACVzG,SAAU,WACVC,IAAK,CAAC,OAAQ,SACdC,MAAO,CAAC,GAAI,IACZgB,aAAc,OACdC,EAAG,OACHQ,SAAU,CAAC,OAAQ,QACnB+E,GAAI,CAAC,OAAQ,GACbwG,GAAI,OACJ7M,OAAQ,KAGV,gBAAC,KAAD,CACEG,UAAU,SACVT,GAAI,CACFY,MAAuB,IAAhB6oB,EAAqB,QAAU,QACtChoB,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,UAGtB,mDAEH,gBAAC,KAAD,CACE5D,UAAU,SACVT,GAAI,CACFuB,UAAW,SACXtB,SAAU,WACVC,IAAK,EACL4B,UAAW,OACXlB,MAAO,QACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,kBACRR,GAAI,QACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZ,UAAW,CACTX,GAAI,UACJe,YAAa,YAGjB1B,QAnFU,WAClBmpB,EAAgBJ,EAAgBG,IAChCG,EAAUN,EAAgBK,MAmFjBN,EAAQM,IApDb,MAsDGjU,OAtDH,EAsDGA,EAAOzZ,KAAI,SAAC4Z,GAAU,IAAD,MACdyK,EAAY,MAAG3K,OAAH,EAAGA,EAAWpT,MAC9B,SAAC8d,GAAD,OAAcA,EAASrK,SAAWH,EAAKzZ,MAEnCmkB,EAAeD,EAAY,wBAC3BE,EAAeF,EAAY,kCAI3B0J,GAAO,SAAMhY,eAAN,EAAM,EAAUiY,UAAhB,KAA6BpU,EAAK4D,UAAlC,cAA+CzH,WAA/C,SAA+C,EAAUkY,WAAzD,EAA+C,EAAgB9mB,QAAQ,OAAQ,KAE5F,OACE,gCACGkd,GACC,gBAAC,KAAD,CACE7f,UAAU,SACVT,GAAI,CACFuB,UAAW,SACXtB,SAAU,WACVC,IAAK,EACLU,MAAO,mBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,kBACRR,GAAI,QACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAGjBqN,KAAS0a,EAAL,SAAqBnU,EAAK4K,cAE1B5K,EAAK7W,KA5BX,SA+BF,gBAAC,KAAD,CACEyB,UAAU,SACVT,GAAI,CACFuB,UAAW,SACXtB,SAAU,WACVC,IAAK,EACLU,MAAO,mBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,kBACRR,GAAI,QACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAGjBqN,KAAI,IAAMkR,EAAN,IAAsB3K,EAAKzZ,GAA3B,IAAiCyZ,EAAK4K,aAC1ClgB,QAAS,SAAC/D,GACW,IAAD,EAAd8jB,IAEA,SAACxhB,SAAA,EAAQqN,QACP,gHAEFrN,OAAOkT,UAEPxV,EAAE+R,oBAKJgS,EAxCN,IAwCsB1K,EAAK7W,KAxC3B,iBAiHhB,a,syDCtSA,IAAMgqB,EAAW,CACf,UACA,UACA,WAEIC,EAAQ,CACZC,EACAC,EACAC,GAgBI1I,EAAc,CAClB,4DACA,2DACA,qFACA,2DACA,6DACA,wDACA,oDACA,sEACA,mEACA,uDACA,8EACA,sDACA,oGACA,2DACA,uEACA,yDACA,0DACA,4DACA,qDACA,4EACA,sEACA,0DACA,qDACA,6DACA,uDACA,2DACA,kEACA,yDACA,mDACA,4DAGIvJ,EAAc,CAClB,uEACA,gEACA,2EACA,gEACA,yDACA,mEACA,+DACA,qDACA,yEACA,wDACA,uEACA,wDACA,+DACA,uEACA,yDACA,sEACA,gEACA,+DACA,wDACA,4DACA,mFACA,2DACA,yEACA,8EACA,0GACA,sDACA,iFACA,0EACA,4DACA,iEACA,0DACA,wDACA,sDACA,8DACA,gEACA,qDACA,8DAUWgT,EAAe,SAACltB,GAAW,IAAD,EAPd2jB,EACnBC,EAOJ,KAAwCrjB,EAAAA,EAAAA,YAPpCqjB,EAAM5a,KAAKC,MAAMD,KAAKE,SAAW8iB,EAAM5lB,UAChCud,IAAUC,EAAM5a,KAAKC,MAAMD,KAAKE,SAAW8iB,EAAM5lB,SACxDwd,GAAOD,IAAUC,EAAM5a,KAAKC,MAAMD,KAAKE,SAAW8iB,EAAM5lB,SACrDwd,IAIP,GAAO4I,EAAP,KACA,GADA,KACA,GAAoCjsB,EAAAA,EAAAA,UAAS,MAA7C,IAAmBujB,GAAnB,WACA,KAAoCvjB,EAAAA,EAAAA,UAAS,MAA7C,GAAO+a,EAAP,KAAmBC,EAAnB,KACM8G,EAAariB,EAAMsiB,wBACnBC,EAAWviB,EAAMwiB,sBAEjBoK,EAAaZ,EAAMQ,GACnBK,EAAWd,EAASS,IAE1B5pB,EAAAA,EAAAA,YAAU,WACRopB,EAAMrmB,SAAQ,SAACmnB,GAxHnB,IAAsB5kB,EAAAA,EAyHH4kB,GAxHP,IAAI3kB,OACVrE,IAAMoE,KAyHR4b,EAAcL,EAAYza,KAAKC,MAAMD,KAAKE,SAAWua,EAAYrd,UACjEmV,EAAcrB,EAAYlR,KAAKC,MAAMD,KAAKE,SAAWgR,EAAY9T,YAChE,IAEH,IAAMqc,EAAY,IAAIzV,KAAKqV,GACrBK,EAAU,IAAI1V,KAAKuV,GAECE,EAAUlO,qBAA0BkO,EAAUjO,qBAEhDkO,EAAQnO,qBAA0BmO,EAAQlO,qBAEhD,IAAIxH,KACH,IAAIA,KAEvB,OACE,gBAAC,IAAD,CAAe2C,MAAOA,EAAAA,OACpB,gBAAC,KAAD,CACE5M,IAAE,GACAkB,GAAI,QACJd,MAAO,OACPoB,UAAW,QACX2L,GAAI,CAAC,IAAK,IAJV,KAKI2c,EALJ,IAQF,gBAAC,KAAD,CACE/oB,IAAK8oB,EACL7pB,GAAI,CACFI,MAAO,CAAC,QAAS,SACjBH,SAAU,QACV+M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,KAGZ,gBAAC,KAAD,CACEN,GAAI,CACFkB,GAAI,cACJd,MAAO,CAAC,MAAO,SACfsG,SAAU,OACVzG,SAAU,WACVO,QAAS,OACT0M,cAAe,SACf+E,GAAI,OACJ/R,IAAK,EACLC,MAAO,CAAC,GAAI,IACZgB,aAAc,OACdC,EAAG,OACH+L,GAAI,OACJ7M,OAAQ,KAGV,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEG,UAAU,SACVT,GAAI,CACFY,MAAuB,IAAhB6oB,EAAqB,QAAU,QACtChoB,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KANR,+BAWA,gBAAC,KAAD,CACE1D,UAAU,SACVT,GAAE,OAAOU,GAAP,IAAqByD,GAAI,GAAIoC,GAAI,EAAGrG,IAAK,IAC3CK,QAAS,kBACPiY,EACErB,EAAYlR,KAAKC,MAAMD,KAAKE,SAAWgR,EAAY9T,YAItD,UAEH,gBAAC,KAAD,CACEtC,IAAKwX,EACLvY,GAAI,CACFI,MAAO,CAAC,QACRH,SAAU,WACVK,OAAQ,EACRoG,SAAU,QACViT,UAAW,QACX7M,UAAW,UACXC,eAAgB,WAKtB,gBAAC,KAAD,CACEtM,UAAU,SACVT,GAAI,CACFuB,UAAW,SACXtB,SAAU,WACVC,IAAK,GACLU,MAAO,mBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,kBACRR,GAAI,QACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAGjBqN,KAAM,QA1BR,YAoCJ5O,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVC,IAAK,GACLU,MAAO,mBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,kBACRR,GAAI,QACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAIjB,a,iqECnRA,IAAMmoB,EAAc,GAOpB,IAAMpB,EAAW,CACf,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEIC,EAAQ,CACZC,EACAC,EACAC,GAIIjS,EAAc,CAClB,uEACA,gEACA,2EACA,gEACA,yDACA,mEACA,+DACA,qDACA,yEACA,wDACA,uEACA,wDACA,+DACA,uEACA,yDACA,sEACA,gEACA,+DACA,wDACA,4DACA,mFACA,2DACA,yEACA,8EACA,0GACA,sDACA,iFACA,0EACA,4DACA,iEACA,0DACA,wDACA,sDACA,8DACA,gEACA,qDACA,8DAUWkT,EAAU,SAACptB,GAAW,IAAD,QAC1BC,EAAmBD,EAAMoa,OACzBlP,EAASlL,EAAMmL,QACfkiB,EAAkBrtB,EAAMstB,kBACxBhT,EAASta,EAAMsa,OAAS/O,KAAKC,MAAMxL,EAAMsa,QAAU,GACnD7O,EAAOzL,EAAMyL,KACb8O,EAAYva,EAAMua,UAClBgT,EAAYvtB,EAAMutB,UAClBC,EAAWxtB,EAAMwtB,SACjB5N,EAAgB5f,EAAM6f,gBACtB4N,EAAkBztB,EAAM0tB,cACxBlT,EAAexa,EAAMya,cAGvB1H,EAAc,KACZ4H,EAAY,MAAGL,OAAH,EAAGA,EAAQnN,MAAK,SAACC,EAAGC,GAAJ,OAAWD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,KAC1Dyb,EAAS,MAAGD,OAAH,EAAGA,EAAe,IAC7BC,GAAa,MAACA,GAAAA,EAAWC,0BAC3B9H,EAAc6H,GAGhB/T,QAAQC,IAAR,SAAqB2mB,GAErB,IAAM7M,EAAapG,EAAe,GAAK,EAEjCmT,EAAO,SAAG9rB,SAAH,SAAG,EAAQC,cAAX,EAAG,EAAiBV,KAE3B0Z,EAAgBN,EAClB,0GACA,0GAGEO,EAAWP,EACb,2DACA,2DACEQ,EAAeR,EACjB,uFACA,uFAEJ3T,QAAQC,IAAR,oBAAgCgU,GAChCjU,QAAQC,IAAR,YAAwBiU,GAIxB,IAAME,EAAgB,MAAGX,OAAH,EAAGA,EAAQxN,QAAO,SAACyG,GAAD,OAAWA,EAAMS,WAIzD,GAFAnN,QAAQC,IAAI,WAEP7G,EAAkB,OAAO,KAC9B,IAAKiL,EAAQ,OAAO,KAEpB,IA1DuByY,EACnBC,EAyDJ,KAAwCrjB,EAAAA,EAAAA,YAzDpCqjB,EAAM5a,KAAKC,MAAMD,KAAKE,SAAW8iB,EAAM5lB,UAChCud,IAAUC,EAAM5a,KAAKC,MAAMD,KAAKE,SAAW8iB,EAAM5lB,SACxDwd,GAAOD,IAAUC,EAAM5a,KAAKC,MAAMD,KAAKE,SAAW8iB,EAAM5lB,SACrDwd,IAsDP,GAAO4I,EAAP,KACA,GADA,KACA,GAAkCjsB,EAAAA,EAAAA,YAAlC,IAAOO,EAAP,KAAkBC,EAAlB,KACA,KAA8BR,EAAAA,EAAAA,WAAS,GAAvC,GAAOK,EAAP,KAAgBC,EAAhB,KACA,KAAsCN,EAAAA,EAAAA,UAAS,IAA/C,GAAO8S,EAAP,KAAoBC,GAApB,KACA,MAA+B/S,EAAAA,EAAAA,UAAS,GAAxC,GAAOkF,GAAP,MAAiB0V,GAAjB,MACA,MAA0B5a,EAAAA,EAAAA,UAASwS,GAAnC,GAAOQ,GAAP,MAAcC,GAAd,MACA,MAAyCjT,EAAAA,EAAAA,UAAS0a,GAAlD,GAAOG,GAAP,MAAsBC,GAAtB,MACA,MAAoC9a,EAAAA,EAAAA,UAAS,MAA7C,GAAO+a,GAAP,MAAmBC,GAAnB,MACA,MAA4Bhb,EAAAA,EAAAA,UAAS,MAArC,GAAOkT,GAAP,MAAeC,GAAf,MACA,MAA8BnT,EAAAA,EAAAA,UAAS,MAAvC,GAAOoT,GAAP,MAAgBC,GAAhB,MACA,MAAsCrT,EAAAA,EAAAA,UAASga,GAA/C,GAAOiB,GAAP,MAAoBC,GAApB,MAEMC,GAAmB,MAAGN,QAAH,EAAGA,GAAejO,MAAK,SAACC,EAAGC,GAAJ,OAC9CD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,KAEf4U,GACJR,MAAS,MAACA,IAAAA,GAAOsH,2BAAjB,MAA4CtH,QAA5C,EAA4CA,GAAOS,SAE/C2H,GAAoB,MAALpI,IAAAA,GAAOqI,WAAa,IAAI5O,KAAJ,MAASuG,QAAT,EAASA,GAAOqI,YAAc,KACjEC,GAAe,MAAGF,QAAH,EAAGA,GAAcG,YACxB,MAAZH,QAAA,EAAAA,GAAcI,cAAe,IAG3Bb,GAAe,GACb0S,GAAgBH,EAAkB7N,EACxC,GAAIgO,GAAgB,EAClB1S,GAAe,CAAC,EAAG,EAAG,EAAG,EAAG,QAE5B,IAAK,IAAI2S,GAAI,EAAGA,IAAKD,GAAeC,KAAK3S,GAAarV,KAAKgoB,IAG7D,IA0BIzsB,GA1BE+T,GAAQ1P,GAAWmb,EACnB5E,GAAevW,GAAN,MAAoBmb,EAApB,MAAoCzL,GAApC,OAETyX,GAAaZ,EAAMQ,GACnBK,GAAWd,EAASS,IAE1B5pB,EAAAA,EAAAA,YAAU,WAWR,GAVA2Y,GAAcrB,EAAYlR,KAAKC,MAAMD,KAAKE,SAAWgR,EAAY9T,UAG/DmN,KACCA,GAAMsH,yBACY,UAAnBtH,GAAMmB,WAENzK,WAAWwK,GAAS,KAGlBlB,IAASA,GAAMoB,UAAW,CAAC,IAAD,EACtBC,GAAY,SAAArB,GAAMoB,gBAAN,IAAiBE,MAAM,QAAS,GAClDnB,GAAU,CACR,oEADO,OAEJkB,OAGN,KAGHhS,EAAAA,EAAAA,YAAU,WAAM,kCACd,uGACkBZ,EAAAA,EAAAA,MADlB,cACQC,EADR,OAEEb,GAAO,IAAI0sB,EAAAA,GAAc7rB,EAAlB,SAAqBJ,aAArB,EAAqB,EAAQC,QAAS7B,GAF/C,SAIYmB,GAAK2sB,cAJjB,kDAKU3sB,GAAK4sB,YAAY7rB,KAAjB,6BAAsB,WAAO8rB,GAAP,qEACtBA,EADsB,gBAExBltB,EAAaK,IAFW,sCAIlBA,GAAKc,SAASC,MAAK,SAAC+rB,GACxBntB,EAAaK,OALS,2CAAtB,uDALV,2CADc,yBAAC,WAAD,wBAkBd+sB,KACC,IAEH,IAAMlS,GAAgB,6BAAG,6FACvBpb,GAAW,GADY,kBAGF4N,IAAAA,KACjB,mBACA,CACE8E,MAAO,CACL9N,SAAUA,GACV0F,QAASD,EACTiK,MAAOA,GACP+G,MAAM,SAAUF,GAChBG,WAAY,QAGhB,CACExN,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBAlBO,OAGfC,EAHe,OAuBrBhO,GAAW,GAEX,MAAIgO,GAAJ,SAAIA,EAAMC,OAAN,EAAY3P,IACdqU,GAAQ,MAAC3E,OAAD,EAACA,EAAMC,MACf2M,GAAeD,GAAc/V,IAC7BiO,GAAU,OAEVA,GAAS,MAAC7E,OAAD,EAACA,EAAMC,MA9BG,gDAiCrBjI,QAAQ4D,MAAR,MAjCqB,yDAAH,qDA4EhB2R,GAAiB,6BAAG,WAAO9c,GAAP,sFACxBuB,GAAW,GADa,kBAGH4N,IAAAA,OAAA,WAAwBnP,EAAEH,GAAM,CACjDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBAPU,OAGhBC,EAHgB,OAWtBhO,GAAW,GAEgB,IAAnB,MAAJgO,GAAA,SAAAA,EAAMC,WAAN,IAAYK,UACdqE,GAAS,MACH,OAAN,EAAA3R,SAAA,WAAQkT,WAAR,EAAkBsH,UAElB3I,GAAU,OAAC7E,GAAD,SAACA,EAAMC,WAAP,EAAC,EAAYrE,QAjBH,gDAoBtB5D,QAAQ4D,MAAR,MApBsB,yDAAH,sDA9MS,SAsOjBgK,KAtOiB,oEAsOhC,oHACqBhG,IAAAA,IAAA,WAAqB8E,GAAMpU,GAAM,CAClDwP,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBALd,OACQC,EADR,OASQiG,EATR,MASoBjG,OATpB,EASoBA,EAAMC,KAEJvD,KAAKyD,UAAUuE,KAAUhI,KAAKyD,UAAU8F,KAG1DtB,GAASsB,GAELA,EAAUd,SAAWT,GAAMS,UACvBgD,EADgC,OAEjCzD,IAFiC,IAGpCS,QAASc,EAAUd,QACnBK,cAAe,IAAIrH,OAErBqO,GAAgB,GAAD,OAAKD,GAAL,CAAoBpE,KACnCpD,GACE,8KAIAkB,EAAU+F,yBAA2BtH,GAAMsH,0BACvClJ,EAAQyJ,GAAckB,WAC1B,SAAC/I,GAAD,OAAWA,EAAMpU,IAAM2V,EAAU3V,MAE/Bod,EAJkE,UAIlDnB,IAChBzJ,GAAS,EACX4K,EAAU5K,GAASmD,EAEnByH,EAAS,UAAOnB,GAAP,CAAsBtG,IAGjCuG,GAAe,SAACkB,QAAD,EAAC,EAAWpP,MAAK,SAACC,EAAGC,GAAJ,OAAWD,EAAEjO,GAAKkO,EAAElO,IAAM,EAAI,MAE9DyU,GACE,sFAIAkB,EAAUH,YACNC,GAAY,SAAAE,EAAUH,gBAAV,IAAqBE,MAAM,QAAS,GACtDjB,GAAW,IACXF,GAAU,CACR,oEADO,OAEJkB,MAKJE,EAAU+F,0BACP/H,EAAQgC,EAAUd,QAAU,IAAQ,IAC1C/J,WAAWwK,GAAS3B,IA1DxB,2CAtOgC,yBAsbhC,OACE,gBAAC,IAAD,CAAenD,MAAOA,EAAAA,OAGpB,gBAAC,KAAD,CACE5M,IAAE,GACAkB,GAAI,QACJd,MAAO,OACPoB,UAAW,QACX2L,GAAI,CAAC,MAJL,KAKI2c,GALJ,IAQF,gBAAC,KAAD,CACE/oB,IAAK8oB,GACL7pB,GAAI,CACFI,MAAO,CAAC,QAAS,SACjBH,SAAU,QACV+M,OAAQ,EACRC,KAAM,CAAC,GACP3M,OAAQ,KAGZ,gBAAC,KAAD,CACEN,GAAI,CACFkB,GAAI,cACJd,MAAO,CAAC,MAAO,SACfsG,SAAU,OACVzG,SAAU,WACVO,QAAS,OACT0M,cAAe,SACf+E,GAAI,OACJ/R,IAAK,OACLC,MAAO,CAAC,GAAI,IACZgB,aAAc,OACdC,EAAG,OACHQ,SAAU,CAAC,OAAQ,QACnBuL,GAAI,OACJ7M,OAAQ,KAfZ,MAkBGoQ,QAlBH,EAkBGA,GAAQzU,KAAI,SAACyL,GAAD,OACX,gBAAC,KAAD,CACEjH,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KAGLuD,MAIJkJ,IACC,gBAAC,KAAD,KACG,IACD,gBAAC,KAAD,CACEnQ,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBmD,GAAI,KAGL6L,IAEiB,aAAnBJ,GAAMmB,WACL,gBAAC,KAAD,CACElR,UAAU,SACVT,GAAE,OAAOU,GAAP,IAAqByD,GAAI,OAAQoC,GAAI,EAAGrG,IAAK,IAC/CK,QAAS,mCAAMzB,SAAN,SAAM,EAAQkT,eAAd,EAAM,EAAkBsH,WAEhC,WAMRtI,KAAiBJ,IAChB,gCACE,gBAAC,KAAD,CACEnQ,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KANR,8IAWA,gBAAC,UAAD,QAIFqM,KAAUI,KAAYI,IACtB,gBAAC,KAAD,KACGyH,IACDA,GAAc,GACdiS,EAAkB7N,EAAgB,EAChC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEpc,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,UANzB,aASgBoU,GAThB,+BAS0DoF,EAT1D,cASkF2M,EATlF,UASqGC,EATrG,YAYA,gBAAC,UAAD,MAEA,gBAAC,KAAD,CACEhqB,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,UANzB,sBAWA,gBAAC,KAAD,CACErE,GAAI,CACF0B,OAAQ,OACRR,GAAI,QACJC,aAAc,OACdlB,SAAU,WACVyG,SAAU,QACVpG,OAAQ,MACRsB,SAAU,OACVypB,QAAS,cACTnd,QAAS,kBACTvM,GAAI,MACJ4B,GAAI,OACJgD,GAAI,OACJhF,UAAW,UAEbmD,MAAOhC,GACPsC,SAAU,SAACxI,GAAD,OAAO4b,GAAW5b,EAAEyI,OAAOP,SAjBvC,SAmBGyT,SAnBH,EAmBG,EAAclc,KAAI,SAACyd,GAAD,OACjB,8BAASA,OAGb,gBAAC,KAAD,CACEjZ,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBmD,GAAI,SAGLkU,IAEH,gBAAC,KAAD,CACExY,UAAU,SACVT,GAAIU,EACJH,QAAS1C,EAAU,KAAOqb,IAEzBrb,EAAU,qBAAuB,WAItC,gBAAC,KAAD,KACE,gBAAC,KAAD,CACE4C,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnByC,WAAY,CAAC,OAAQ,QACrBF,GAAI,KAGL0Y,GAAiB6N,GAAmBjS,GAAc,EAAlD,oHAIH,gBAAC,KAAD,CACEhY,UAAU,SACVT,GAAE,OAAOU,GAAP,IAAqByD,GAAI,GAAIoC,GAAI,EAAGrG,IAAK,IAC3CK,QAAS,kBACPiY,GACErB,EACElR,KAAKC,MAAMD,KAAKE,SAAWgR,EAAY9T,YAK5C,UAEH,gBAAC,KAAD,CACEtC,IAAKwX,GACLvY,GAAI,CACFI,MAAO,CAAC,QACRH,SAAU,WACVK,OAAQ,EACRoG,SAAU,QACViT,UAAW,QACX7M,UAAW,UACXC,eAAgB,YAO3B6D,IAAW,CAAC,KAAM,YAAa,WAAW1N,SAASsN,GAAMmB,YACxD,gCACE,gBAAC,KAAD,CACElR,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KANR,8BAYA,gBAAC,UAAD,CAAmByM,QAAAA,MAItBJ,IAAS,CAAC,KAAM,UAAUtN,SAASsN,GAAMmB,YACxC,gBAAC,KAAD,KACE,gBAAC,UAAD,MAEA,gBAAC,KAAD,CACElR,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAIiK,GAAMoB,UAAY,EAAI,KAN9B,2BAS8BpB,GAAM9N,SATpC,YASwDkX,OACpDpJ,GAAM4B,OAVV,YAWe5B,GAAM2I,QAEnByR,GACA,gBAAC,KAAD,CACEnqB,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KANR,yBAYDqkB,KAAapa,GAAM6B,eAAiB7B,GAAMoB,YACzC,gBAAC,KAAD,CACEnR,UAAU,SACVT,GAAIU,EACJH,QAAS1C,EAAU,KA9ZX,WACtB0S,GAAe,mBACf,IAAM+B,EAAiB,6BAAG,qIACxBxU,GAAW,GADa,SAEGC,EAAUwB,aAFb,cAEpBgT,EAFoB,OAQpBsH,EAAgBC,OAAOtJ,GAAM4B,OAM7BW,EAAa,CACf,CACEvT,QANkBuY,EAOlB/E,OAAQ6G,GAEV,CACEra,QAREgT,EAAaD,EASfS,OAAQ,IACR+G,aAAY,MAAEvJ,IAAF,SAAEA,GAAOjI,WAAT,EAAE,EAAatM,KAAI,SAACuG,GAC9B,MAAO,CACLwX,UAAWxX,EACXE,SAAU,IACVsV,SAAUA,EACVC,aAAcA,QAMlBgC,EAAW,GAEV,MAALzJ,IAAA,SAAAA,GAAOjI,OAAP,EAAa3F,SAAQ,SAACJ,EAAKoM,GACzBqL,EAASzX,GAAO4nB,EAAY5nB,MAG1BgR,EAAW,CACb,YACGwE,GAAWiC,EADd,IAKIK,EAAevc,EAAUwc,aAAa/G,GA7CpB,UA+CNzV,EAAUsV,cA/CJ,eA+CpBH,EA/CoB,iBAgDNnV,EAAUuV,eAhDJ,eAgDpBH,EAhDoB,iBAiDApV,EAAUqV,YAAY,CAC5CG,eAAgBhB,EAChBQ,WAAYA,EACZS,SAAUA,EACV8G,aAAcA,EACd7G,aAAa,EACbC,SAAUR,EACVS,WAAgB,MAALR,OAAA,EAAAA,EAAO/W,KAAM,EACxBwX,IAAK,MACL4G,UAAU,IA1DY,eAiDpBpH,EAjDoB,OA6DpBU,EAAe,KA7DK,oBA+DD/V,EAAUgW,OAAOX,GAAa,GA/D7B,QA+DtBU,EA/DsB,OAgEtBvD,GAAe,qBAhEO,mDAmEtBzS,GAAW,GAnEW,WAsEP,CACfsV,YAAAA,EACAU,aAAAA,EACAtB,WAAAA,EACApK,QAASD,EACTmjB,SAAQ,MAAE9a,QAAF,EAAEA,GAAOpU,GACjBmM,KAAI,MAAEiI,QAAF,EAAEA,GAAOjI,KACbgiB,kBAAmBD,IAGjBxW,EAhFoB,kCAkFhBhI,EAAO,KAlFS,UAoFLJ,IAAAA,KAAA,mBACQ8E,GAAMpU,GACzB,CACEgX,YAAAA,EACAf,cAAeyB,EACfE,YAAaxB,GAEf,CACE5G,QAAS,CACP,eAAgBlD,EAChB,eAAgB,mBAChBmD,OAAQ,sBA/FI,QAoFlBC,EApFkB,+BAoGlBA,EAAO,CAAEC,KAAM,CAAE6E,SAAS,IApGR,QAuGpB,SAAI9E,IAAJ,SAAI,EAAMC,OAAN,EAAY6E,SACdC,GACE,sGAEF/S,GAAW,GACX6S,GAAU,IACJsD,EANiB,OAOlBzD,IAPkB,IAQrBmB,UAAW,YACXU,cAAeyB,IAEjBrD,GAASwD,GAGT/M,WAAWwK,GAAS,OAEpB5N,QAAQC,IAAR,SAAY+H,QAAZ,EAAY,EAAMC,MACZmI,GAAoB,OAAJ,EAAApI,IAAA,WAAMC,WAAN,IAAY2E,SAAU,GAC5C5S,GAAW,GACX6S,GAAU,CACR,wJADO,OAEJuD,KA5Ha,mDAgIpBpQ,QAAQ4D,MAAR,MACA5J,GAAW,GACX6S,GAAU,CACR,2FADQ,OAlIU,gCAwItB7M,QAAQ4D,MAAMoM,GACdhW,GAAW,GAzIW,mEAAH,qDA4IvBwU,MAkRezU,EACGyS,EACAE,GAAMoB,UACN,oBACA,kBAGP,IAAI3H,KAAS6O,KAAoBtI,GAAMS,SACtC,gBAAC,KAAD,CACExQ,UAAU,SACVT,GAAIU,EACJH,QAAS,WAEP8Y,GAAkB7I,MALtB,YAcQ,MAAb6H,QAAA,EAAAA,GAAehV,QAAS,GACvB,gBAAC,KAAD,CACErD,GAAI,CAAEkB,GAAI,QAASE,EAAG,OAAQD,aAAc,OAAQoF,GAAI,SAExD,gBAAC,KAAD,CACE9F,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBwL,GAAI,IANR,2CAHF,MAcGuL,QAdH,EAcGA,GAAqB1c,KAAI,SAACwe,EAAiB7L,GAAW,IAAD,MAC9CyC,EAAc,IAAIpH,KAAKwQ,EAAgBnJ,eAGvCoJ,EAFkB,IAAIzQ,KAAKwQ,EAAgBnJ,eAEVqJ,SACrCtJ,EAAYuJ,WAAa,GAErBC,EACJ,IAAI5Q,KAASyQ,GACbD,EAAgBxJ,UACfwJ,EAAgB3C,wBAEbvG,EAAqBF,EAAYG,qBAAlB,MAA4CH,EAAYI,qBACzEqJ,EAAWL,EAAgB3C,wBAC3B,YACA,UAEJ,OADI+C,IAAcC,EAAW,UAE3B,gBAAC,KAAD,CAAK/S,IAAG,MAAE0S,OAAF,EAAEA,EAAiBre,IACzB,gBAAC,KAAD,CACEqE,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAa,GAATqI,EAAa,GAAK,KAL1B,aAQgB6L,EAAgB/X,UAEhC,gBAAC,KAAD,CACEjC,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KALR,UAQaqT,OAAOa,EAAgBrI,QAEvB,aAAZ0I,GACC,gBAAC,KAAD,CACEra,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KALR,SAQYkU,EAAgBlS,KAAKwS,KAAK,OAIxC,gBAAC,KAAD,CACEta,UAAU,SACVT,GAAI,CACFY,MAAO,QACPgB,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,WAPd,UAUasL,EAAgBtB,OAE7B,gBAAC,KAAD,CACE1Y,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,MAaSwZ,EACM,UAAZA,GACC,sCAEE,qBACEva,QAAS,WAAO,IAAD,EAEL,OAAN,EAAAzB,SAAA,EAAQqN,QACN,0KAEFrN,OAAOkT,WAEPlT,OAAOkT,SAAS1C,KAAhB,mBAA0CmL,EAAgBre,MARhE,kBAFF,4EAoBJ,gBAAC,KAAD,CACEqE,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,YAcE,qBACEgO,KAAI,sCAAwCmL,EAAgBxJ,QAC5DhM,OAAO,UAENwV,EAAgBxJ,UAGrB,gBAAC,KAAD,CACExQ,UAAU,SACVT,IAAE,GACAY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,GACJ6I,aAAc,WACdD,SAAU,SACV7N,OAAQ,WAPR,QAQO,QARP,IAFJ,iBAaoBiQ,OAK1B,gBAAC,KAAD,CACE9Q,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnB2E,GAAI,KANR,0BAcFqK,KAAwB,MAAbyH,QAAA,EAAAA,GAAehV,QAAS,GACnC,gBAAC,KAAD,CAAKrD,GAAI,CAAEuG,GAAI,KACb,gBAAC,KAAD,CACE9F,UAAU,SACVT,GAAI,CACFY,MAAO,QACPa,WAAY,WACZG,SAAU,CAAC,OAAQ,QACnBuC,GAAI,KANR,sBAWA,gBAAC,UAAD,CAAa4D,IAAK,EAAS6I,QAAAA,UASnClQ,EAAe,CACnBa,UAAW,SACXtB,SAAU,WACVC,IAAK,GACLU,MAAO,mBACPa,WAAY,SACZnB,OAAQ,KACRoB,OAAQ,kBACRR,GAAI,QACJS,GAAI,OACJvB,MAAO,CAAC,OAAQ,KAChBe,aAAc,MACdG,OAAQ,UACRM,SAAU,OACVC,WAAY,OACZrB,QAAS,QACTsB,UAAW,OACXC,eAAgB,OAChBC,cAAe,YACf,UAAW,CACTd,GAAI,UACJe,YAAa,YAIjB,a,6ECngCO,IAAM2K,EAAQ,CACnB2e,MAAO,CACLC,KAAM,+BACNC,QAAS,4BACTC,UAAW,oBAEbC,OAAQ,CACNne,KAAM,OACNS,WAAY,OACZ2d,QAAS,QAEXpe,KAAM,CACJqe,OAAQ,CACNvoB,WAAY,+BAEdwoB,KAAM,CACJxoB,WAAY,yB,qZClBZyoB,EAAAA,WAAAA,SAAAA,KAAAA,I,MAYH,OAZGA,EAAAA,UACE1I,KAAAA,WAAAA,I,EAAAA,G,EAAAA,IAAAA,MAAN,kFACM2I,KAAKC,MADX,iEAMqB,qDANrB,OAMED,KAAKC,MANP,sD,+KAAA,kDAAM5I,G,EAAN,G,EAAA,oBASA,WACE,OAAO2I,KAAKC,W,8EACb,EAZGF,GAeN,MAAmBA,E,yHCTnB,I,EA2Ne,EA3NTG,EAA2B,qBAAXptB,QAA0BA,OAAOotB,OA8LnDC,EAAqB,KAMnBC,EAAgB,CAQpBC,sBAAuB,SAACC,EAASC,EAASC,EAASC,GACjDN,EAAqB,CACnBG,QAASA,EACTC,QAASA,EACTC,QAASA,EACTC,UAAWA,IAUfC,e,EAAa,UAAE,WAAOC,EAAQC,EAASC,GAAxB,gFACRV,EADQ,sBAEL,IAAI1vB,MACR,6DAHS,uBAMPsvB,EAAAA,OANO,cAQPe,EACJZ,EAAOU,EAAQG,OAASb,EAAOC,EAAmBG,SAGhDU,EAAgB,CAClBC,UAAW,GACXC,UAAU,GAAD,OAAMP,GACfQ,OAAQ,GACRna,OAAQ+Y,EAAAA,QAAAA,MAAAA,IAAyBA,EAAAA,QAAAA,OAAAA,SAA+B,OAG9DqB,EAAuBC,EAAoBT,IAG3CU,EAAsBC,EAAaH,IAGnBxqB,SAAQ,SAAC4qB,GAC3BC,EAAaT,EAAeQ,GAE5B,IACER,EAAgBU,EACdC,EAAmBX,GACnBQ,EACAX,EAAQG,EAAcC,UAAU5pB,OAChCypB,GAEF,MAAOtwB,GACP,GAAkB,yBAAdA,EAAEgI,QASJ,MAAMhI,EAPNwwB,EAAgBY,EACdZ,EACAQ,EACAX,EAAQG,EAAcC,UAAU5pB,OAChCypB,QASRQ,EAAsBO,EAAeP,IAEjB1qB,SAAQ,SAAC4qB,GAC3BC,EAAaT,EAAeQ,GAE5B,IAAIM,EAAQ,GACZA,EAAMC,MAAQhC,EAAAA,QAAAA,MAAAA,IACZA,EAAAA,QAAAA,OAAAA,SAA+B,MAE9BiC,YAAYR,GACZQ,YAAYR,GACfM,EAAMG,QAAUlC,EAAAA,QAAAA,MAAAA,IACdA,EAAAA,QAAAA,OAAAA,SAA+B,MAE9BiC,YAAYF,EAAMC,OAClBC,YAAYR,GAEfU,EACElB,EACAQ,EACAX,EAAQG,EAAcC,UAAU5pB,OAChCyqB,MAxES,kBA4EN,CACLK,MAAOnB,EAAcC,UACrBO,OAAQZ,EACRM,UAAWF,EAAcE,UACzBla,OAAQga,EAAcha,OACtBob,OAAQpB,EAAcha,OAAOqb,YAAYjB,KAjF9B,2CAAF,E,8KAAA,kDAiGf,SAASM,EAAaV,EAAesB,EAAczB,EAAO0B,GACxD,IAAIC,EAAaxB,EAAcG,OAAO9pB,OAEtC,GACEorB,EAAeH,EAActB,EAAcha,OAAQub,EAAcC,GAOjE,OALAxB,EAAcE,UAAd,UACKF,EAAcE,UACdF,EAAcG,QAEnBH,EAAcG,OAAS,GAChBH,EAGT,GAAIH,GAAS,EACX,MAAM,IAAIpwB,MAAM,wBAGlB,GAAI+xB,GAAc,EAAG,CACnB,GAAIC,EAAeH,EAActB,EAAcha,OAAQ,EAAG,GACxD,MAAM,IAAIvW,MAAM,kBAElB,MAAM,IAAIA,MAAM,oBAIlB,IAAIiyB,EAAO1B,EAAcG,OACtBhR,OAAOlW,KAAKC,MAAMD,KAAKE,SAAWqoB,GAAa,GAC/CG,MAQH,OANA3B,EAAcC,UAAUnqB,KAAK4rB,GAC7B1B,EAAcha,OAAS4b,EACrBF,EAAKlB,SAASxa,SACdga,EAAcha,QAGT0a,EAAaV,EAAesB,EAAczB,EAAQ,EAAG0B,GAc9D,SAASX,EAAWZ,EAAesB,EAAczB,EAAO0B,GAEtDvB,EAAcG,OAASH,EAAcG,OAAO/iB,MAAK,SAACykB,EAAOC,GAAR,OAC/CA,EAAMtB,SAASxa,SAAS+b,QAAQF,EAAMrB,SAASxa,aAGjD,EAAG,CACD,GAAI6Z,GAAS,EACX,MAAM,IAAIpwB,MAAM,wBAGlB,GAAIuwB,EAAcG,OAAO9pB,QAAU,EAAG,CACpC,GAAIorB,EAAeH,EAActB,EAAcha,OAAQ,EAAG,GACxD,MAAM,IAAIvW,MAAM,kBAElB,MAAM,IAAIA,MAAM,oBAIlB,IAAIiyB,EAAO1B,EAAcG,OAAOhR,OAAO,EAAG,GAAGwS,MAE7C3B,EAAcC,UAAUnqB,KAAK4rB,GAC7B1B,EAAcha,OAAS4b,EACrBF,EAAKlB,SAASxa,SACdga,EAAcha,QAGhB6Z,WAEC4B,EACCH,EACAtB,EAAcha,OACdub,EACAvB,EAAcG,OAAO9pB,OAAS,IAWlC,OANA2pB,EAAcE,UAAd,UACKF,EAAcE,UACdF,EAAcG,QAEnBH,EAAcG,OAAS,GAEhBH,EAUT,SAASkB,EAAQlB,EAAesB,EAAczB,EAAOiB,GACnD,IAAIU,EAAaxB,EAAcG,OAAO9pB,OAEtC,GACE2pB,EAAcha,OAAO+b,QAAQjB,EAAMC,QAAU,GAC7CS,GAAc,GACd3B,GAAS,EAST,OANAG,EAAcE,UAAd,UACKF,EAAcE,UACdF,EAAcG,aAEnBH,EAAcG,OAAS,IAMzB,IAAMuB,EAAO1B,EAAcG,OACxBhR,OAAOlW,KAAKC,MAAMD,KAAKE,SAAWqoB,GAAa,GAC/CG,MAEGK,EAAYjD,EAAAA,QAAAA,MAAAA,IAChBA,EAAAA,QAAAA,OAAAA,SAA+B,MAE9BiC,YAAYU,EAAKlB,SAASxa,UAC1Bgb,YAAYM,GAiBf,OAdEW,EAAIC,EAAepB,EAAMC,OAASmB,EAAeF,IAC/CC,EAAIC,EAAepB,EAAMC,OAASmB,EAAeZ,KACnDU,EAAUD,QAAQjB,EAAMG,UAAY,GAEpCjB,EAAcC,UAAUnqB,KAAK4rB,GAC7B1B,EAAcha,OAAS4b,EACrBF,EAAKlB,SAASxa,SACdga,EAAcha,QAEhB6Z,KAEAG,EAAcE,UAAUpqB,KAAK4rB,GAGxBR,EAAQlB,EAAesB,EAAczB,EAAOiB,GAQrD,SAAST,EAAoBT,GAK3B,IAJA,IAAIuC,EAAqBpD,EAAAA,QAAAA,MAAAA,IACvBA,EAAAA,QAAAA,OAAAA,SAA+B,MAGxBjB,EAAI,EAAGA,EAAI8B,EAAQG,MAAOjC,IACjCqE,EAAqBP,EACnBhC,EAAQwC,IAAItE,GAAG9X,SACfmc,GAIJ,OAAOA,EAST,SAASP,EAAWS,EAASC,GAC3B,OAAOA,EAAgBtB,YAAYqB,GASrC,SAAS9B,EAAa8B,GACpB,IAAI9B,EAAe,GAEnB,GAAI8B,EAAQE,aAGV,IAFA,IAAIC,EAAKH,EAAQE,aAERzE,EAAI,EAAGA,EAAI0E,EAAG7yB,OAAOowB,MAAOjC,IAGnC,IAFA,IAAI2E,EAAaD,EAAG7yB,OAAOyyB,IAAItE,GAEtB4E,EAAI,EAAGA,EAAIF,EAAGJ,IAAIK,GAAY9yB,OAAOowB,MAAO2C,IAAK,CACxD,IAAIC,EAAU5D,EAAAA,QAAAA,OAAAA,MACV/R,EAAYwV,EAAGJ,IAAIK,GAAY9yB,OAAOyyB,IAAIM,GAE9CC,EAAQC,OACN7D,EAAAA,QAAAA,UAAAA,WAAoC/R,EAAU6V,YAC9C9D,EAAAA,QAAAA,OAAAA,WACEyD,EAAGJ,IAAIK,GAAYL,IAAIpV,GAAW6V,aAItC,IAAIC,EAAc/D,EAAAA,QAAAA,WAAAA,MAClB+D,EAAYF,OACV7D,EAAAA,QAAAA,WAAAA,WAAqC0D,EAAWI,YAChDF,GAEF,IAAII,EAAShE,EAAAA,QAAAA,MAAAA,IACXA,EAAAA,QAAAA,OAAAA,SAA+B,MAEjCgE,EAAOC,eAAeF,GAEtBvC,EAAazqB,KAAKitB,GAexB,OATAxC,EAAeM,EAAeN,EAAc,SAG/BzqB,KACXipB,EAAAA,QAAAA,MAAAA,IACEA,EAAAA,QAAAA,OAAAA,WAAiCsD,EAAQY,OAAOJ,cAI7CtC,EAST,SAASM,EAAeqC,EAAYC,GAClC,YADqD,IAAnBA,IAAAA,EAAY,OACvCD,EAAW9lB,MAAK,SAACC,EAAGC,GACzB,IAAI8lB,EAAiClE,EAAT,SAAdiE,GAA+B,EAAY,GACzD,OAAOvW,QAAQsV,EAAe7kB,GAAK6kB,EAAe5kB,IAAM8lB,MAS5D,SAASlB,EAAelc,GACtB,IAAIqd,EAAMnE,EAAO,GACblrB,EAAWkrB,EAAOlZ,EAAOid,OAAOK,UAEpC,GAAItvB,EAAW,EACbqvB,EAAMrvB,OACD,GAAIgS,EAAOuc,cAAgBvc,EAAOuc,aAAaxC,MAAQ,EAAG,CAC/D,IAAI0C,EAAazc,EAAOuc,aAAa5yB,OAAOyyB,IAAI,GAC5CpV,EAAYhH,EAAOuc,aAAaH,IAAIK,GAAY9yB,OAAOyyB,IAAI,GAC/DiB,EAAMnE,EAAOlZ,EAAOuc,aAAaH,IAAIK,GAAYL,IAAIpV,GAAWsW,UAGlE,OAAOD,EAQT,SAAS5C,EAAaT,EAAeQ,GAC/BtB,EAAOsB,EAAOyC,OAAOK,UAAYpE,EAAO,GAC1Cc,EAAcE,UAAUtqB,SAAQ,SAAC8rB,EAAM9f,QACU2hB,IAA3C/C,EAAOuB,QAAQL,EAAKlB,SAASxa,WAC/Bga,EAAcG,OAAOrqB,KACnBkqB,EAAcE,UAAU/Q,OAAOvN,EAAO,GAAG+f,UAK/C3B,EAAcG,OAASH,EAAcE,UAAU/Q,OAC7C,EACA6Q,EAAcE,UAAU7pB,QAa9B,SAASorB,EACPH,EACAkC,EACAjC,EACAC,GAEA,IAAIxb,EAASsb,EAEb,GAAIC,GAAgBrC,EAAOoC,EAAa2B,OAAOK,UAAY,EAAG,CAC5D,IAAIG,EAAY1E,EAAAA,QAAAA,MAAAA,IACdA,EAAAA,QAAAA,iBACEyE,EACAzE,EAAAA,QAAAA,OAAAA,SAA+BwC,EAAamC,cAKhD,GAAIF,EAAgBzB,QAAQ0B,GAAa,EAAG,OAAO,EAYnD,GATInC,EAAaS,QAAQ0B,GAAa,IACpCzd,EAASyd,EAAUzC,YACjBjC,EAAAA,QAAAA,MAAAA,IACEA,EAAAA,QAAAA,OAAAA,SAA+BI,EAAmBG,YAMpDkC,EAAa,EAAG,CAClB,IAAImC,EACFzE,EAAOC,EAAmBI,SACxBL,EAAOC,EAAmBM,WAC5BP,EAAOC,EAAmBK,SAE5BmE,EAAS5E,EAAAA,QAAAA,MAAAA,IACPA,EAAAA,QAAAA,OAAAA,SAA+B4E,EAAOD,aAGxC1d,EAASA,EAAOgb,YAAY2C,IAIhC,OAAOH,EAAgBzB,QAAQ/b,IAAW,EAQ5C,SAAS2a,EAAmBX,GAC1B,MAAO,CACLC,UAAW2D,EAAc5D,EAAcC,WACvCC,UAAW0D,EAAc5D,EAAcE,WACvCC,OAAQyD,EAAc5D,EAAcG,QACpCna,OAAQ6d,EAAW7D,EAAcha,SASrC,IAAM4d,EAAgB,SAACE,GAAD,OACpBA,EAAS70B,KAAI,SAACyyB,GAAD,OACX3C,EAAAA,QAAAA,yBAAAA,WAAmD2C,EAAKmB,gBAQtDgB,EAAa,SAACnsB,GAAD,OAAWqnB,EAAAA,QAAAA,MAAAA,WAAgCrnB,EAAMmrB,aAGpE,SAASZ,EAAI8B,GACX,OAAOA,EAAM,EAAIA,EAAM7E,GAAQ,GAAK6E,EAGtC,Q,24ECzrBO,SAAe9xB,IAAtB,4CAAO,OAAP,cAAO,8FACC8sB,EAAAA,OADD,gCAEEA,EAAAA,SAFF,kEAKP,IAAMiF,EAAQ,CACZC,0BACE,oDACFC,WAAY,uBAGR5xB,EAAAA,WACJ,WAAY6xB,EAAiBvyB,EAAQyY,GACnC2U,KAAK3U,OAASA,EACd2U,KAAKptB,OAASA,EACdotB,KAAK9sB,EAAIiyB,EACTnF,KAAKtsB,QAAU,K,kBAm7BjB,O,EAh7BMsrB,YAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,kFACMgB,KAAKptB,OADX,0CAC0B,GAD1B,iCAEc,GAFd,kGAAMosB,GAAN,EAKMC,UAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,wGACS,GADT,6FAAMA,GAAN,EAIM9rB,OAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,8FACc6sB,KAAKf,YADnB,2DAGmBe,KAAKptB,OAAOO,SAH/B,8LAAMA,GAAN,EAUMI,WAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,yFACOysB,KAAKf,YADZ,sBAC+B+F,EAAMI,cADrC,mBAGqBC,EAAAA,GAHrB,SAIWrF,KAAKptB,OAAO0yB,mBAJvB,0BAI2C,GADnCC,EAHR,KAG4BlT,KAH5B,eAKI,OAGI7e,EAAUwsB,KAAK9sB,EAAEsyB,YAAYC,aACjCzF,KAAK9sB,EAAEwyB,QAAQC,WAAWJ,IAEzBK,aACAC,YAZL,kBAcSryB,GAdT,kGAAMD,GAAN,EAgBMuyB,cAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,gGACqBT,EAAAA,GADrB,SAEWvyB,OAAOC,QAAQuyB,mBAF1B,0BAE8C,GADtCC,EADR,KAC4BlT,KAD5B,eAGI,OAHJ,kBAKSkT,GALT,6FAAMO,GAAN,EAQMxe,aAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,uFACO0Y,KAAKf,YADZ,sBAC+B+F,EAAMI,cADrC,uBAEwBpF,KAAKptB,OAAO0U,eAFpC,cAEMK,EAFN,yBAGS,CACLvX,GAAIuX,EACJoe,QAAuB,IAAdpe,EAAkB,UAAY,YAL3C,kGAAML,GAAN,EASM7T,WAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,0IAEOusB,KAAKf,YAFZ,gCAGUe,KAAK7sB,SAHf,uBAKwB6sB,KAAK1Y,eAL7B,cAKMK,EALN,gBAMgCqY,KAAKgG,sBAAsBre,EAAUvX,IANrE,cAMM61B,EANN,iBAO0BjG,KAAKptB,OAAOa,aAPtC,eAOQyyB,EAPR,OAQQxtB,EAAQsnB,KAAK9sB,EAAEizB,MAAMR,WAAWN,EAAAA,GAAAA,KAAYa,EAAW,QAR/D,UASsBlG,KAAKptB,OAAOwzB,WATlC,QAyBE,GAhBMlf,EATR,OAUQmf,EAAcnf,EAAMjX,KAAI,SAACyyB,GAAD,OAC5B,EAAKxvB,EAAEozB,yBAAyBX,WAAWN,EAAAA,GAAAA,KAAY3C,EAAM,WAE3D6D,EAAevG,KAAK9sB,EAAEizB,MAAP,IAAiBnG,KAAK9sB,EAAEszB,OAAOC,SAAS,MAC3DJ,EAAYzvB,SAAQ,SAAC8vB,GACnBH,EAAeA,EAAavE,YAAY0E,EAAQlF,SAASxa,aAErD2f,EAAS3G,KAAK9sB,EAAE0zB,iBACpBL,EACAvG,KAAK9sB,EAAEszB,OAAOC,SAASR,EAAkBY,UAErCC,EAAeP,EAAatC,OAAO5B,YAAYsE,GAC/C3xB,EAAW8xB,EAAaxC,SAExBhuB,EAAS,GACXoC,EAAM6qB,aAER,IADMwD,EAAcruB,EAAM6qB,aAAa5yB,OAC9B+yB,EAAI,EAAGA,EAAIqD,EAAYhG,MAAO2C,IAIrC,IAHMjtB,EAASswB,EAAY3D,IAAIM,GACzBsD,EAAetuB,EAAM6qB,aAAaH,IAAI3sB,GACtCwwB,EAAaD,EAAar2B,OACvBu2B,EAAI,EAAGA,EAAID,EAAWlG,MAAOmG,IAC9BC,EAAcF,EAAW7D,IAAI8D,GAC7BxwB,EAAWswB,EAAa5D,IAAI+D,GAC5B9W,EACJgV,EAAAA,GAAAA,KAAY5uB,EAAOotB,WAAY,OAAOa,SAAS,OAC/CW,EAAAA,GAAAA,KAAY8B,EAAYn0B,OAAQ,OAAO0xB,SAAS,OAC5C0C,EAAU/W,EAAMhW,MAAM,EAAG,IACzBgtB,EAAQhX,EAAMhW,MAAM,IACpBitB,EAAc,IAAIC,IAAJ,CAClBlC,EAAAA,GAAAA,KAAY+B,EAAS,OACrB/B,EAAAA,GAAAA,KAAYgC,EAAO,QACnBC,cACFhxB,EAAOQ,KAAK,CACVmQ,KAAMoJ,EACN3Z,SAAUA,EAAS4tB,SACnB7tB,OAAQ2wB,EACRp0B,MA03Bew0B,EA13BEH,EA23BpBI,EAAYD,GAAQ9C,SAAS,UA13B1B4C,YAAAA,IAhDV,yBAsDS,CAAEtyB,SAAUA,EAAUsB,OAAQA,IAtDvC,kCAy6BK,IAAoBkxB,IAz6BzB,8DAAM/zB,GAAN,EAyDAi0B,UAAA,SAAU/f,GACR,OAAiB,GAAbA,EACKqY,KAAK3U,OAAO,GAEZ2U,KAAK3U,OAAO,IAEtB,EAEKsc,eAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,WAAqBlxB,GAArB,iEACEmxB,MAAM,mCAAmCnxB,EAAOrG,GAAM,CACpDy3B,OAAQ,OACRjoB,QAAS,CACP,eAAgB,oBAElB4f,KAAMhjB,KAAKyD,UAAU,CACnB4B,KAAM,MACNimB,QAAS,CACP,CACEC,QAAStxB,EAAOuxB,eAChBnmB,KAAM,OAER,CAAEomB,KAAMxxB,EAAOmR,IAAK/F,KAAM,eAI7BzO,MAAK,SAAC80B,GAAD,OAASA,EAAIC,UAClB/0B,KAAK0E,QAAQC,KAlBlB,8FAAM4vB,GAAN,EAoBMvB,SAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,WAAelf,GAAf,wFAKE,IAJIkhB,EAAQlhB,EAAMjX,KAAI,SAACo4B,GAAD,OACpB,EAAKn1B,EAAEozB,yBAAyBX,WAAWN,EAAAA,GAAAA,KAAYgD,EAAG,WAExDC,EAAQ,GACZ,IAAiBF,KAAjB,aAAS1F,EAAe,QAClBpsB,EAAS0pB,KAAKuI,cAAc7F,GAEhC4F,EAAMxxB,KAAK,CACT0xB,OAAQnD,EAAAA,GAAAA,KACN3C,EAAKP,QAAQsG,iBAAiB5E,WAC9B,OACAa,SAAS,OACXgE,KAAMhG,EAAKP,QAAQvf,QACnBoE,OAAQ1Q,IAdd,yBAiBSgyB,GAjBT,mGAAMlC,GAAN,EAoBM/e,YAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,8FACe2Y,KAAKptB,OAAOwzB,WAD3B,0IAAM/e,GAAN,EAIMD,YAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,+JACEG,eAAAA,OADF,MACmB,GADnB,MAEER,WAAAA,OAFF,MAEe,GAFf,MAGES,SAAAA,OAHF,MAGa,KAHb,MAIE8G,aAAAA,OAJF,MAIiB,KAJjB,MAKE7G,YAAAA,OALF,aAMEC,SAAAA,OANF,MAMa,GANb,MAOEC,UAAAA,OAPF,MAOc,EAPd,MAQEC,IAAAA,OARF,MAQQ,KARR,MASE4G,SAAAA,OATF,SAWMtH,EAAQQ,EAASzX,KAAI,SAACo4B,GAAD,OACvB,EAAKn1B,EAAEozB,yBAAyBX,WAAWN,EAAAA,GAAAA,KAAYgD,EAAG,WAZ9D,SAcgCrI,KAAKgG,sBAAsBre,GAd3D,OAqBE,IAPIse,EAdN,OAeM0C,EAAoB,GACpB/H,EAAUZ,KAAK9sB,EAAE01B,mBAAP,MAEVC,EAAU,EACVC,EAAe,GACfC,EAAa,GApBnB,iBAqBWC,EArBX,QAsBQh0B,EAAWiF,KAAKC,MAAgC,KAAzB8uB,EAAUhiB,QAAU,IAAc0d,WACzDuE,EAAiBD,EAAUx1B,QAC3B01B,EAAa,EAAKC,iBAAyB,MAATH,OAAA,EAAAA,EAAW1yB,SAAU,IACvDyX,EAAe,EAAKqb,mBAA2B,MAATJ,OAAA,EAAAA,EAAWjb,eAAgB,IAEjEsb,EAAc,EAAKn2B,EAAEizB,MAAP,IAAiB,EAAKjzB,EAAEszB,OAAOC,SAASzxB,IACtDs0B,EAAa,EAAKp2B,EAAEizB,MAAP,IAAiB,EAAKjzB,EAAEszB,OAAOC,SAAS,MAEzD,KAAc,MAATuC,OAAA,EAAAA,EAAW1yB,SAAU,IAAIe,OAAS,EAAG,CACxCgyB,EAAYrF,eAAekF,GAC3B,IAAIvC,EAAS,EAAKzzB,EAAE0zB,iBAClByC,EACA,EAAKn2B,EAAEszB,OAAOC,SAASR,EAAkBY,UAGvC,EAAK3zB,EAAEszB,OAAOC,SAASzxB,GAAU+tB,QAAQ4D,GAAU,GACrD0C,EAAYE,SAAS5C,GAazB,KAXW,MAATqC,OAAA,EAAAA,EAAWjb,eAAgB,IAAI9d,KAAI,SAACogB,GACpCwY,GAAW,EACXF,EAAkB7xB,KAAlB,OACKuZ,GADL,IAEE7c,QAASw1B,EAAUx1B,cAInBqE,SAASwxB,EAAYpF,OAAOK,UAAY,IAC1CwE,EAAaE,EAAUx1B,SAAW61B,IAE/BL,EAAUjb,cAAgB,IAAI1W,OAAS,EAAG,CAC7CiyB,EAAa,EAAKp2B,EAAE0zB,iBAClB7Y,EACA,EAAK7a,EAAEszB,OAAOC,SAASR,EAAkBY,UAG3C,IAAI2C,EAAkB,EAAKt2B,EAAEizB,MAAP,IAAiB,EAAKjzB,EAAEszB,OAAOC,SAAS,MAC9D+C,EAAgBD,SAASD,GAEvBD,EADiC,GAA/BA,EAAYpF,OAAOK,SACPkF,EAEAH,EAAYrH,YAAYwH,GAGtCP,GAAkB1hB,IACpBwhB,EAAWE,GAAkBI,GAC/BP,EAAaG,GAAkBI,EAC3BxxB,SAASwxB,EAAYpF,OAAOK,UAAY,GAC1C1D,EAAQ6I,IACN,EAAKv2B,EAAEw2B,kBAAP,IACE,EAAKx2B,EAAEwyB,QAAQiE,YAAYV,GAC3BI,KAnDR,IAAsBtiB,KAAtB,aAAmC,IArBrC,GA6EM6iB,EAAiB,OACjBf,EAAU,GA9EhB,wBA+EIC,EAAavhB,GAAkByY,KAAK9sB,EAAEizB,MAAP,IAC7BnG,KAAK9sB,EAAEszB,OAAOC,SAAS,MAhF7B,UAmF2BzG,KAAK6J,kBAAkB,CAC5CtiB,eAAgBA,EAChB6gB,MAAOlhB,EACP4iB,QAASlJ,EACT+H,kBAAmBA,EACnBG,aAAcA,EACdiB,kBAAmB9D,EACnBze,SAAUA,EACV8G,aAAcA,EACd7G,YAAaA,EACb+G,SAAUA,EACV5G,IAAKA,EACLmhB,WAAYA,IA/FlB,QAmFIa,EAnFJ,gDAkG2B5J,KAAKgK,WAAW,CACrCziB,eAAgBA,EAChB6gB,MAAOlhB,EACP4iB,QAASlJ,EACTmJ,kBAAmB9D,EACnBgE,SAAUziB,EAEV0iB,WAAY,OAzGlB,QAkGIN,EAlGJ,wCA4GSvE,EAAAA,GAAAA,KAAYuE,EAAgB,OAAOlF,SAAS,QA5GrD,oGAAMtd,GAAN,EA+GM+iB,0BAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,WAAgC32B,EAASmU,EAAWyiB,GAApD,oGACMpsB,EAAM,IAAIC,KADhB,SAGmC+hB,KAAKgG,sBAAsBre,GAH9D,cAGQwY,EAHR,OAKQ8H,EAAOpwB,SAASsoB,EAAmB8H,MACnCoC,EAAWD,EAAelsB,UAAYF,EAAIE,UAE1C0J,EAAMqgB,EAAOoC,EAEbrC,EAAiBhI,KAAK9sB,EAAEsyB,YAAYC,aACxCzF,KAAK9sB,EAAEwyB,QAAQC,WAAWN,EAAAA,GAAAA,KAAY7xB,EAAS,SAE9C82B,eACAC,aAEGC,EAAgBxK,KAAK9sB,EAAEu3B,cAAP,MAChBC,EAAS1K,KAAK9sB,EAAEy3B,aAAP,IAAwB3C,GACjC4C,EAAe5K,KAAK9sB,EAAE23B,aAAaC,kBAAkBJ,GACrDK,EAAa/K,KAAK9sB,EAAE23B,aAAaG,oBACrChL,KAAK9sB,EAAE+3B,eAAP,IAA0BrjB,IAE5B4iB,EAAcf,IAAImB,GAClBJ,EAAcf,IAAIsB,GACZG,EAAclL,KAAK9sB,EAAE23B,aAAaM,eACtCnL,KAAK9sB,EAAEk4B,UAAP,IAAqBZ,IAEjBxe,EAAWqZ,EAAAA,GAAAA,KACfrF,KAAK9sB,EAAEm4B,WAAW1F,WAAWuF,EAAYI,OAAOzH,YAAYA,WAC5D,OACAa,SAAS,OA9Bb,kBA+BS,CACLt0B,GAAI4b,EACJ0e,OAAQrF,EAAAA,GAAAA,KAAY6F,EAAYrH,YAAYa,SAAS,OACrDsD,eAAgB3C,EAAAA,GAAAA,KAAY2C,EAAenE,WAAY,OAAOa,SAC5D,OAEF9c,IAAAA,IArCJ,wGAAMuiB,GAAN,EAyCMpiB,OAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,WAAaX,EAAamkB,GAA1B,6EAA0BA,IAAAA,GAAc,GACjCvL,KAAKf,YADZ,sBAC+B+F,EAAMI,cADrC,uBAEepF,KAAKptB,OAAOmV,OAAOX,EAAamkB,GAF/C,6IAAMxjB,GAAN,EAKMyjB,SAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,WAAehE,GAAf,yFACsBiE,gBADtB,cACMj4B,EADN,gBAE2BwsB,KAAKptB,OAAO44B,SACnCh4B,EACA6xB,EAAAA,GAAAA,KAAYmC,EAAQ,SAAS9C,SAAS,QAJ1C,cAEMgH,EAFN,yBAMSA,GANT,mGAAMF,GAAN,EASAjd,aAAA,SAAa/G,GAAW,IAAD,OACjBmkB,EAAM3L,KAAK9sB,EAAE04B,cAAP,MAEJC,EAAkB7L,KAAK9sB,EAAE44B,2BAAP,MACxBl7B,OAAOm7B,QAAQvkB,GAAUvX,KAAI,YAAgC,IAAD,SAA7B+7B,EAA6B,KAAd/B,EAAc,KAC1D4B,EAAgBjI,OACd,EAAK1wB,EAAEszB,OAAOC,SAASuF,GACvB,EAAK94B,EAAE+4B,6BAA6BzvB,KAAKyD,UAAUgqB,GAAW,OAIlE0B,EAAIO,aAAaL,GAEjB,IAAMvd,EAAe0R,KAAK9sB,EAAEi5B,oBAAoBR,GAChD,OAAOtG,EAAAA,GAAAA,KAAY/W,EAAauV,WAAY,OAAOa,SAAS,Q,EAI9D0E,kBAAA,SAAkBrb,GAGhB,IAFA,IAEA,EAFIqe,EAAY,GAEhB,IAAkBre,KAAlB,aAAgC,CAAC,IAAxBsC,EAAuB,QAC1BrC,EAAYqC,EAAMrC,UAClBtX,EAAW2Z,EAAM3Z,SAChB0b,MAAMoE,QAAQ4V,EAAU/b,EAAMrE,aACjCogB,EAAU/b,EAAMrE,UAAY,IAE9BogB,EAAU/b,EAAMrE,UAAUlV,KAAK,CAC7BmQ,KAAMoe,EAAAA,GAAAA,KAAYrX,EAAW,SAAS0W,SAAS,OAC/ChuB,SAAUA,IAGd,IAAIwyB,EAAalJ,KAAK9sB,EAAEm5B,WAAP,MAEjB,IAAK,IAAM51B,KAAU21B,EAAW,CAQ9B,IAPA,IAOA,EAPMf,EAAarL,KAAK9sB,EAAEm4B,WAAW1F,WACnCN,EAAAA,GAAAA,KAAY5uB,EAAQ,QAEhB61B,EAAStM,KAAK9sB,EAAEo5B,OAAP,MAIf,IAFgBF,EAAU31B,MAE1B,aAA6B,CAAC,IAAnB4Z,EAAkB,QACrBkc,EAAYvM,KAAK9sB,EAAEq5B,UAAP,IAAqBlH,EAAAA,GAAAA,KAAYhV,EAAMpJ,KAAM,QACzDuf,EAASxG,KAAK9sB,EAAEszB,OAAOC,SAASpW,EAAM3Z,UAE5C41B,EAAO1I,OAAO2I,EAAW/F,GAG3B0C,EAAWtF,OAAOyH,EAAYiB,GAEhC,IAAM5zB,EAAQsnB,KAAK9sB,EAAEizB,MAAP,IAAiBnG,KAAK9sB,EAAEszB,OAAOC,SAAS,MAGtD,OADA/tB,EAAMsrB,eAAekF,GACdxwB,GACR,EAEDywB,gBAAA,SAAgB7yB,GAEd,IADA,IACA,EADI81B,EAAY,GAChB,IAAkB91B,KAAlB,aAA0B,CAAC,IAAlB+Z,EAAiB,QACxB,IAA0BA,EAAMpJ,KAAKnB,MAAM,KAA3C,GAAKrP,EAAL,KAAauX,EAAb,KACItX,EAAW2Z,EAAM3Z,SAChB0b,MAAMoE,QAAQ4V,EAAU31B,MAC3B21B,EAAU31B,GAAU,IAEtB21B,EAAU31B,GAAQK,KAAK,CACrBmQ,KAAMoe,EAAAA,GAAAA,KAAYrX,EAAW,SAAS0W,SAAS,OAC/ChuB,SAAUA,IAId,IAAIwyB,EAAalJ,KAAK9sB,EAAEm5B,WAAP,MAEjB,IAAK,IAAM51B,KAAU21B,EAAW,CAQ9B,IAPA,IAOA,EAPMf,EAAarL,KAAK9sB,EAAEm4B,WAAW1F,WACnCN,EAAAA,GAAAA,KAAY5uB,EAAQ,QAEhB61B,EAAStM,KAAK9sB,EAAEo5B,OAAP,MAIf,IAFgBF,EAAU31B,MAE1B,aAA6B,CAAC,IAAnB4Z,EAAkB,QACrBkc,EAAYvM,KAAK9sB,EAAEq5B,UAAP,IAAqBlH,EAAAA,GAAAA,KAAYhV,EAAMpJ,KAAM,QACzDuf,EAASxG,KAAK9sB,EAAEszB,OAAOC,SAASpW,EAAM3Z,SAASguB,YAErD4H,EAAO1I,OAAO2I,EAAW/F,GAG3B0C,EAAWtF,OAAOyH,EAAYiB,GAGhC,OAAOpD,GACR,EAEDX,cAAA,SAAc7F,GACZ,IAAIhqB,EAAQgqB,EAAKlB,SAASxa,SACpB1Q,EAAS,GAKf,GAJAA,EAAOQ,KAAK,CACVmQ,KAAM,WACNvQ,SAAUgC,EAAMurB,OAAOK,WAErB5rB,EAAM6qB,aAER,IADA,IAAMwD,EAAcruB,EAAM6qB,aAAa5yB,OAC9B+yB,EAAI,EAAGA,EAAIqD,EAAYhG,MAAO2C,IAIrC,IAHA,IAAMjtB,EAASswB,EAAY3D,IAAIM,GACzBsD,EAAetuB,EAAM6qB,aAAaH,IAAI3sB,GACtCwwB,EAAaD,EAAar2B,OACvBu2B,EAAI,EAAGA,EAAID,EAAWlG,MAAOmG,IAAK,CACzC,IAAMC,EAAcF,EAAW7D,IAAI8D,GAC7BxwB,EAAWswB,EAAa5D,IAAI+D,GAC5B9W,EACJgV,EAAAA,GAAAA,KAAY5uB,EAAOotB,YAAYa,SAAS,OACxC,IACAW,EAAAA,GAAAA,KAAY8B,EAAYn0B,QAAQ0xB,SAAS,SAE3CpuB,EAAOQ,KAAK,CACVmQ,KAAMoJ,EACN3Z,SAAUA,EAAS4tB,WAK3B,OAAOhuB,GACR,EACKuzB,kBAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,gNACEtiB,EADF,EACEA,eACA6gB,EAFF,EAEEA,MACA0B,EAHF,EAGEA,QACAC,EAJF,EAIEA,kBAJF,IAKEpB,kBAAAA,OALF,MAKsB,GALtB,MAOEG,aAAAA,OAPF,MAOiB,GAPjB,MAQEthB,SAAAA,OARF,MAQa,KARb,MASE8G,aAAAA,OATF,MASiB,KATjB,MAUE7G,YAAAA,OAVF,aAWEG,IAAAA,OAXF,MAWQ,KAXR,MAYE4G,SAAAA,OAZF,aAaEua,WAAAA,OAbF,MAae,GAbf,EAe0B,IACL,IACC,EAEpB3I,EAAAA,sBACE2J,EAAkBlD,QAAQnC,WAC1BqF,EAAkByC,UAAUjM,QAAQmE,WACpCqF,EAAkByC,UAAUhM,QAAQkE,WACpCqF,EAAkBtJ,UAAUiE,YAvBhC,SAyB0BtE,EAAAA,cACtBgI,EACA0B,EACA,IA5BJ,OAoCE,IAXM7I,EAzBR,OA+BQuJ,EAAgBxK,KAAK9sB,EAAEu3B,cAAP,MAClB5gB,EAAOmW,KAAK9sB,EAAEu5B,KAAP,MAEPC,EAAmB,GACnBC,EAAa,GACjB,IAAkBhE,KAAlB,aAAStY,EAA4B,QACO,oBAA/Bsc,EAAWtc,EAAMrC,aAC1B2e,EAAWtc,EAAMrC,WAAa,GAC9B2e,EAAWtc,EAAMrC,WAAWtX,SAAW,EACvCi2B,EAAWtc,EAAMrC,WAAW/B,aAAeoE,EAAMpE,cAEnD0gB,EAAWtc,EAAMrC,WAAWtX,SAC1Bi2B,EAAWtc,EAAMrC,WAAWtX,SAAWmB,SAASwY,EAAM3Z,UAmB1D,IAhBA9F,OAAOm7B,QAAQY,GAAY18B,KAAI,YAAyB,IAAD,SAAtB+d,EAAsB,KAAXqC,EAAW,KAClC,GAAKnd,EAAE05B,WAAP,MACRhJ,OACT,GAAK1wB,EAAEq5B,UAAP,IAAqBlH,EAAAA,GAAAA,KAAYrX,IACjC,GAAK9a,EAAE25B,IAAP,IAAe,GAAK35B,EAAEszB,OAAOC,SAASpW,EAAM3Z,SAASguB,cAGJ,oBAAxCgI,EAAiBrc,EAAMpE,gBAChCygB,EAAiBrc,EAAMpE,cAAgB,GAAK/Y,EAAE05B,WAAP,OAEzCF,EAAiBrc,EAAMpE,cAAc2X,OACnC,GAAK1wB,EAAEq5B,UAAP,IAAqBlH,EAAAA,GAAAA,KAAYrX,IACjC,GAAK9a,EAAE25B,IAAP,IAAe,GAAK35B,EAAEszB,OAAOC,SAASpW,EAAM3Z,SAASguB,iBAIzD,IAAkBiE,KAAlB,aAAStY,EAA4B,QAC7B6Y,EAAalJ,KAAK9sB,EAAEm5B,WAAP,MACbte,EAAeiS,KAAK9sB,EAAEo5B,OAAP,MAEfrgB,EAAe+T,KAAK9sB,EAAE23B,aAAalF,WACvCN,EAAAA,GAAAA,KAAYhV,EAAMpE,aAAc,QAElCue,EAAcf,IAAIxd,GAElB8B,EAAa6V,OACX5D,KAAK9sB,EAAEq5B,UAAP,IAAqBlH,EAAAA,GAAAA,KAAYhV,EAAMrC,YACvCgS,KAAK9sB,EAAEszB,OAAOC,SAASpW,EAAM3Z,SAASguB,aAGxCwE,EAAWtF,OACT5D,KAAK9sB,EAAEm4B,WAAW1F,WAChB1Z,EAAaqf,KAAKtL,KAAK9sB,EAAE45B,oBAAoBjC,cAAchH,YAE7D9V,IAEIgf,EAAc/M,KAAK9sB,EAAEizB,MAAP,IAAiBnG,KAAK9sB,EAAEszB,OAAOC,SAAS,OAChDzC,eAAekF,GACe,oBAA/BJ,EAAazY,EAAM7c,WAC5Bs1B,EAAazY,EAAM7c,SAAWwsB,KAAK9sB,EAAEizB,MAAP,IAC5BnG,KAAK9sB,EAAEszB,OAAOC,SAAS,OAW3BqC,EAAazY,EAAM7c,SACjBs1B,EAAazY,EAAM7c,SAASwuB,YAAY+K,GAlG9C,GAqGEn8B,OAAOm7B,QAAQW,GAAkBz8B,KAAI,YAAoC,IAAD,SAAjC+8B,EAAiC,KAAhBC,EAAgB,KAChEhhB,EAAe,GAAK/Y,EAAE23B,aAAalF,WACvCN,EAAAA,GAAAA,KAAY2H,EAAiB,QAE/BnjB,EAAK+Z,OACH,GAAK1wB,EAAEm4B,WAAW1F,WAChB1Z,EAAaqf,KAAK,GAAKp4B,EAAE45B,oBAAoBjC,cAAchH,YAE7DoJ,MAIEtM,EAASX,KAAK9sB,EAAEg6B,kBAAP,MAEfjM,EAAUkB,MAAMvrB,SAAQ,SAAC8rB,GACvB/B,EAAO8I,IACL,GAAKv2B,EAAEi6B,iBAAP,IACEzK,EAAKP,QAAQsG,iBACb/F,EAAKP,QAAQvf,UAGjBkmB,EAAavhB,GAAkBuhB,EAAavhB,GAAgBya,YAC1DU,EAAKlB,SAASxa,aAIZomB,EAAapN,KAAK9sB,EAAE01B,mBAAP,MAEnBh4B,OAAOm7B,QAAQjD,GAAc74B,KAAI,YAAuB,IAAD,SAApBuD,EAAoB,KAAXkF,EAAW,KACrD00B,EAAW3D,IACT,GAAKv2B,EAAEw2B,kBAAP,IAA6B,GAAKx2B,EAAEwyB,QAAQiE,YAAYn2B,GAAUkF,OAIhE20B,EAAMrN,KAAK9sB,EAAEszB,OAAOC,SAAS,MAC7B6G,EAAYtN,KAAK9sB,EAAEq6B,gBAAP,IAChB5M,EACAyM,EACAC,EACAzlB,EAAMmiB,EAAkB9B,OAEhBuF,SAAS3jB,GAEf8hB,EAAM3L,KAAK9sB,EAAE04B,cAAP,MAENpkB,IACIqkB,EAAkB7L,KAAK9sB,EAAE44B,2BAAP,MACxBl7B,OAAOm7B,QAAQvkB,GAAUvX,KAAI,YAAgC,IAAD,SAA7B+7B,EAA6B,KAAd/B,EAAc,KAC1D4B,EAAgBjI,OACd,GAAK1wB,EAAEszB,OAAOC,SAASuF,GACvB,GAAK94B,EAAE+4B,6BAA6BzvB,KAAKyD,UAAUgqB,GAAW,OAIlE0B,EAAIO,aAAaL,IAEfvd,GACImf,EAAczN,KAAK9sB,EAAEw6B,kBAAkB/H,WAC3CN,EAAAA,GAAAA,KAAY/W,EAAc,QAE5BxW,QAAQC,IAAI01B,GACZH,EAAUK,wBAAwBF,IAC7BH,EAAUK,wBAAwB3N,KAAK9sB,EAAEi5B,oBAAoBR,KAC9DiC,EAAY5N,KAAK9sB,EAAE26B,sBAAP,OACRC,mBAAmBtD,GAEvBuD,EACJ,8MAEIC,EAAQhO,KAAK9sB,EAAE+6B,cAAP,OACRxE,IACJzJ,KAAK9sB,EAAEg7B,YAAYvI,WAAWN,EAAAA,GAAAA,KAAY0I,EAAkB,SAG9DC,EAAMvE,IACJzJ,KAAK9sB,EAAEg7B,YAAYvI,WAAWN,EAAAA,GAAAA,KAAY0I,EAAkB,SAE1Dvf,GACFwf,EAAMvE,IACJzJ,KAAK9sB,EAAEg7B,YAAYvI,WAAWN,EAAAA,GAAAA,KAAY0I,EAAkB,SAGhEH,EAAUO,UAAUH,GAEdI,EAAQpO,KAAK9sB,EAAEm7B,YAAP,IAAuBf,EAAWM,EAAWjC,GAEvD2C,GAAStO,KAAK9sB,EAAEq7B,QAClBH,EACApO,KAAK9sB,EAAEs7B,UAAP,IACExO,KAAK9sB,EAAEszB,OAAOC,SAASsD,EAAkByC,UAAUjM,SACnDP,KAAK9sB,EAAEszB,OAAOC,SAASsD,EAAkByC,UAAUhM,WAIvDsI,EAAavhB,GAAkBuhB,EAAavhB,GAAgB8a,YAC1DrC,KAAK9sB,EAAEizB,MAAP,IAAiBmI,KAEnB19B,OAAOm7B,QAAQhD,GAAY94B,KAAI,YAAuB,IAAD,SAAXyI,GAAW,WACnDowB,EAAavhB,GACXuhB,EAAavhB,GAAgB8a,YAAY3pB,MAGvCkoB,GAAUZ,KAAK9sB,EAAE01B,mBAAP,MAChBh4B,OAAOm7B,QAAQjD,GAAc74B,KAAI,YAAuB,IAAD,SAApBuD,EAAoB,KAAXkF,EAAW,KACrDkoB,GAAQ6I,IACN,GAAKv2B,EAAEw2B,kBAAP,IAA6B,GAAKx2B,EAAEwyB,QAAQiE,YAAYn2B,GAAUkF,QAIhE+1B,GAAczO,KAAK9sB,EAAEq6B,gBAAP,IAClB5M,EACAC,GACA0N,GACA1mB,EAAMmiB,EAAkB9B,OAGduF,SAASF,EAAUoB,eAE/BD,GAAYd,wBAAwBL,EAAUqB,wBAExCC,GAAiB5O,KAAK9sB,EAAE26B,sBAAP,OACRC,mBAAmBtD,GAEjBqE,GAAbpnB,EAAwB2mB,EAAMU,iBAClB9O,KAAK9sB,EAAE04B,cAAP,MACVxkB,GAAc4Y,KAAK9sB,EAAEm7B,YAAP,IAClBI,GACAG,GACAC,MAG2C,EAAhCznB,GAAYyc,WAAWxsB,OACzB0yB,EAAkBtJ,WAzO/B,uBAyOgDuE,EAAME,WAzOtD,iCA2OS9d,GAAYyc,YA3OrB,oGAAMgG,GAAN,EA6OMG,WAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,+IACEziB,EADF,EACEA,eACA6gB,EAFF,EAEEA,MACA0B,EAHF,EAGEA,QACAC,EAJF,EAIEA,kBAJF,IAMEviB,SAAAA,OANF,MAMa,KANb,EAQQunB,EAAkB,IAClBC,EAAa,IACC,EAEpB5O,EAAAA,sBACE2J,EAAkBlD,QAAQnC,WAC1BqF,EAAkByC,UAAUjM,QAAQmE,WACpCqF,EAAkByC,UAAUhM,QAAQkE,WACpCqF,EAAkBtJ,UAAUiE,YAhBhC,SAmB0BtE,EAAAA,cACtBgI,EACA0B,EACA,IAtBJ,OAsCE,IAnBM7I,EAnBR,OAwBEnpB,QAAQC,IAAIkpB,GACNN,EAASM,EAAUkB,MACnB8M,EAAYjP,KAAK9sB,EAAEg8B,mBAAP,IAChBlP,KAAK9sB,EAAEs7B,UAAP,IACExO,KAAK9sB,EAAEszB,OAAOC,SAASsD,EAAkByC,UAAUjM,SACnDP,KAAK9sB,EAAEszB,OAAOC,SAASsD,EAAkByC,UAAUhM,UAErDR,KAAK9sB,EAAEszB,OAAOC,SAASsD,EAAkBlD,QAAQnC,YACjD1E,KAAK9sB,EAAEszB,OAAOC,SAASsD,EAAkBoF,YAAYzK,YACrD1E,KAAK9sB,EAAEszB,OAAOC,SAASsD,EAAkBqF,WAAW1K,YACpDqK,EACAA,GAGOjQ,EAAI,EAAGA,EAAI6B,EAAOtpB,OAAQynB,IAC3B4D,EAAO/B,EAAO7B,GACpBmQ,EAAUI,UACR3M,EAAKlB,SAAShuB,UACdkvB,EAAKP,QACLO,EAAKlB,SAASxa,UAoBlB,IAfIQ,IACF8nB,EAAiBtP,KAAK9sB,EAAE04B,cAAP,MACXC,EAAkB7L,KAAK9sB,EAAE44B,2BAAP,MACxBl7B,OAAOm7B,QAAQ9B,UAAUh6B,KAAI,YAAgC,IAAD,SAA7B+7B,EAA6B,KAAd/B,EAAc,KAC1D4B,EAAgBjI,OACd,EAAK1wB,EAAEszB,OAAOC,SAASuF,GACvB,EAAK94B,EAAE+4B,6BAA6BzvB,KAAKyD,UAAUgqB,GAAW,OAIlE0B,IAAIO,aAAaL,GAEjBoD,EAAUM,mBAAmBD,IAGtBxQ,EAAI,EAAGA,EAAIgL,EAAQ/I,MAAOjC,IACjCmQ,EAAUO,WAAW1F,EAAQ1G,IAAItE,IAhErC,GAmEQsD,EAASnB,EAAUmB,QACnBqN,EAAoBrN,EAAOmB,eAEmB,EAA3BnB,EAAOyB,WAAWxsB,OAAa23B,IAChDU,EAAgB1P,KAAK9sB,EAAEizB,MAAP,IAAiBnG,KAAK9sB,EAAEszB,OAAOC,SAAS,MAExDkJ,EAAqB3P,KAAK9sB,EAAEm5B,WAAP,MACrBuD,EAAWH,EAAkB9+B,OACjB,WAChB,IAAK,IAAI+yB,EAAI,EAAGA,EAAI+L,EAAkB1O,MAAO2C,IAAK,CAKhD,IAJA,IAAMjtB,EAASm5B,EAASxM,IAAIM,GACtBsD,EAAeyI,EAAkBrM,IAAI3sB,GACrCwwB,EAAaD,EAAar2B,OAC1B2F,EAAS,EAAKpD,EAAEo5B,OAAP,MACNpF,EAAI,EAAGA,EAAID,EAAWlG,MAAOmG,IAAK,CACzC,IAAMC,EAAcF,EAAW7D,IAAI8D,GAC7BxwB,EAAWswB,EAAa5D,IAAI+D,GAClC7wB,EAAOstB,OAAOuD,EAAazwB,GAE3B,IAAMm5B,EAAmB,EAAK38B,EAAEm5B,WAAW1G,WACzCgK,EAAmB9L,YAErBgM,EAAiBjM,OAAOntB,EAAQH,GAChC,IAAMw5B,EAAa,EAAK58B,EAAEizB,MAAP,IAAiB,EAAKjzB,EAAEszB,OAAOC,SAAS,MAE3D,GADAqJ,EAAW9L,eAAe6L,GACS,EAA/BC,EAAWjM,WAAWxsB,QAAc23B,EAEtC,YADAW,EAAmB/L,OAAOntB,EAAQH,GAItCq5B,EAAmB/L,OAAOntB,EAAQH,IAItCy5B,GACAL,EAAc1L,eAAe2L,GAEvBhJ,EAAS3G,KAAK9sB,EAAE0zB,iBACpB8I,EACA1P,KAAK9sB,EAAEszB,OAAOC,SAASsD,EAAkBlD,UAE3C6I,EAAcnG,SAAS5C,GAEvBsI,EAAUO,WACRxP,KAAK9sB,EAAEw2B,kBAAP,IACE1J,KAAK9sB,EAAEwyB,QAAQiE,YAAYpiB,GAC3BmoB,KAINT,EAAUe,qBAAqBhQ,KAAK9sB,EAAEwyB,QAAQiE,YAAYpiB,IACpDH,EAAc4Y,KAAK9sB,EAAEm7B,YAAP,IAClBY,EAAUgB,QACVjQ,KAAK9sB,EAAE26B,sBAAP,MACAyB,KAG2C,EAAhCloB,EAAYyc,WAAWxsB,OACzB0yB,EAAkBtJ,WA7H/B,uBA6HgDuE,EAAME,WA7HtD,iCA+HS9d,EAAYyc,YA/HrB,oGAAMmG,GAAN,EAkIMkG,SAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,sIAkBE,GAlBeC,EAAjB,EAAiBA,eAAgBvC,EAAjC,EAAiCA,UAAjC,EAA4C9F,QAASngB,EAArD,EAAqDA,UAAWH,EAAhE,EAAgEA,SAC1DJ,EAAc4Y,KAAK9sB,EAAEm7B,YAAY1I,WACnCN,EAAAA,GAAAA,KAAY8K,EAAgB,QAGxBC,EAAchpB,EAAYipB,cAC1BC,EAAUF,EAAYpC,QACtBuC,EAAYH,EAAYI,iBAExBC,EAAezQ,KAAK9sB,EAAE26B,sBAAsBlI,WAChDN,EAAAA,GAAAA,KAAYuI,EAAU,GAAI,QAEtB8C,EAAWD,EAAazC,QACxB2C,EAAaF,EAAaD,iBAE1BI,EAAa5Q,KAAK9sB,EAAE+6B,cAAP,MACb4C,EAAe7Q,KAAK9sB,EAAEu3B,cAAP,MAEjB6F,EACF,IAASxR,EAAI,EAAGA,EAAIwR,EAAQvP,MAAOjC,IACjC8R,EAAWnH,IAAI6G,EAAQlN,IAAItE,IAG/B,GAAIyR,EACF,IAASzR,EAAI,EAAGA,EAAIyR,EAAUxP,MAAOjC,IACnC+R,EAAapH,IAAI8G,EAAUnN,IAAItE,IAGnC,GAAI4R,EACF,IAAS5R,EAAI,EAAGA,EAAI4R,EAAS3P,MAAOjC,IAClC8R,EAAWnH,IAAIiH,EAAStN,IAAItE,IAGhC,GAAI6R,EACF,IAAS7R,EAAI,EAAGA,EAAI6R,EAAW5P,MAAOjC,IACpC+R,EAAapH,IAAIkH,EAAWvN,IAAItE,IAnCtC,OAuCQgS,EAAiB9Q,KAAK9sB,EAAE26B,sBAAP,OACRM,UAAUyC,GACzBE,EAAehD,mBAAmB+C,GAE9BrpB,GACFmkB,EAAM3L,KAAK9sB,EAAE04B,cAAP,MACAC,EAAkB7L,KAAK9sB,EAAE44B,2BAAP,MACxBl7B,OAAOm7B,QAAQvkB,GAAUvX,KAAI,YAAgC,IAAD,SAA7B+7B,EAA6B,KAAd/B,EAAc,KAC1D4B,EAAgBjI,OACd,EAAK1wB,EAAEszB,OAAOC,SAASuF,GACvB,EAAK94B,EAAE+4B,6BAA6BzvB,KAAKyD,UAAUgqB,GAAW,OAIlE0B,EAAIO,aAAaL,IAEjBF,EAAMvkB,EAAY0nB,iBAvDtB,UAyDyB9O,KAAK9sB,EAAEm7B,YAAP,IACrBjnB,EAAYoY,OACZsR,EACAnF,GA5DJ,eAyDQoF,EAzDR,iBA+DuB/Q,KAAKgR,mBAAmB,CAC3CC,SAAS,aACTrxB,QAAS,CACP,eAAgB,oBAElB4f,KAAM6F,EAAAA,GAAAA,KAAY0L,EAASlN,WAAY,OACvClc,UAAWA,EACXkgB,OAAQ,SAtEZ,eA+DQqJ,EA/DR,yBAyESA,GAzET,oGAAMhB,GAAN,EA2EMlK,sBAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,WAA4Bre,GAA5B,yFAC0BqY,KAAKgR,mBAAmB,CAC9CC,SAAU,iBACVtpB,UAAWA,EACXkgB,OAAQ,QAJZ,UACMsJ,EADN,6BAM0BnM,EAAMC,0BANhC,uBAQgBjF,KAAKgR,mBAAmB,CACpCC,SAAS,WAAYE,EAAYC,MAAzB,cACRzpB,UAAWA,EACXkgB,OAAQ,QAXZ,cAQMzyB,EARN,yBAcS,CACLo3B,UAAW,CACTjM,QAASnrB,EAAEi8B,UAAU3M,WACrBlE,QAASprB,EAAEk8B,UAAU5M,YAEvBmC,QAAS,UACTsI,YAAa/5B,EAAEm8B,aACfnC,WAAYh6B,EAAEo8B,YACd/Q,UAAWrrB,EAAEq8B,YACbxJ,KAAMkJ,EAAYlJ,OAvBtB,mGAAMjC,GAAN,EA0BM0L,eAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,WAAqBlS,GAArB,yFAC0BQ,KAAKgR,mBAAmB,CAC9CC,SAAU,iBACVlL,QAASpe,YAHb,UACMwpB,EADN,6BAK0BnM,EAAMC,0BALhC,uBAOgBjF,KAAKgR,mBAAmB,CACpCC,SAAS,WAAYE,EAAYC,MAAzB,cACRzpB,UAAWA,YATf,UAOMvS,EAPN,8BAWgB4vB,EAAMC,0BAXtB,iCAaS,CACLuH,UAAW,CACTjM,QAASnrB,EAAEi8B,UAAU3M,WACrBlE,QAASprB,EAAEk8B,UAAU5M,YAEvBmC,QAAS,UACTsI,YAAa/5B,EAAEm8B,aACfnC,WAAYh6B,EAAEo8B,YACd/Q,UAAWrrB,EAAEq8B,YACbxJ,KAAMkJ,EAAYlJ,OAtBtB,oGAAMyJ,GAAN,EAyBMV,mBAAAA,WAAAA,IAAAA,EAAAA,EAAAA,IAAAA,MAAN,gHACExR,EADF,EACEA,KADF,IAEEyR,SAAAA,OAFF,MAEa,GAFb,MAGEtpB,UAAAA,OAHF,MAGc,EAHd,MAIE/H,QAAAA,OAJF,MAIY,GAJZ,MAKEioB,OAAAA,OALF,MAKW,MALX,EAOM8J,EACW,GAAbhqB,EACI,+CACA,+CACFzW,EAAmB8uB,KAAK3U,OAX9B,kBAeYuc,MAAM,GAAG+J,EAAkBV,EAAY,CAC3CrxB,QAAQ,EAAD,CACLgyB,WAAY1gC,GACT0O,GAELioB,OAAQA,EACRrI,KAAAA,IArBR,8BAuBM2I,OAvBN,iFAyBIrwB,QAAQC,IAAR,MAzBJ,kBA0BW,MA1BX,6GAAMi5B,GAAN,EAx7BI19B,GA69BN,SAASm0B,EAAYD,GACnB,OAAOnC,EAAAA,GAAAA,KAAYmC,EAAQ,OAmB7B,S","sources":["webpack://app//tmp/build_51bde0c4/app/javascript/components|sync|/^\\.\\/.*$/","webpack://app/./app/javascript/components/ConnectWallet.js","webpack://app/./app/javascript/components/ConnectWalletDrrs.js","webpack://app/./app/javascript/components/ConnectWalletGt.js","webpack://app/./app/javascript/components/Constants.js","webpack://app/./app/javascript/components/MintingTips.js","webpack://app/./app/javascript/components/PassesChecker.js","webpack://app/./app/javascript/components/RandomMemes.js","webpack://app/./app/javascript/components/drrs/AudioPlayer.js","webpack://app/./app/javascript/components/drrs/DRRSStore.js","webpack://app/./app/javascript/components/drrs/DRRSStoreInactive.js","webpack://app/./app/javascript/components/drrs/DRRSStoreOrder.js","webpack://app/./app/javascript/components/drrs/DrrsWeaponsCC.js","webpack://app/./app/javascript/components/drrs/HomeDRRS.js","webpack://app/./app/javascript/components/drrs/HomeDrrsWeapons.js","webpack://app/./app/javascript/components/drrs/MintDRRS.js","webpack://app/./app/javascript/components/drrs/MintDRRSReserved.js","webpack://app/./app/javascript/components/drrs/MintDRRSReservedCustom.js","webpack://app/./app/javascript/components/drrs/MintDRRSSupreme.js","webpack://app/./app/javascript/components/drrs/MintDrrsSuccess.js","webpack://app/./app/javascript/components/drrs/MintDrrsWeapons.js","webpack://app/./app/javascript/components/drrs/MintInactiveDRRS.js","webpack://app/./app/javascript/components/drrs/MintInactiveDrrsWeapons.js","webpack://app/./app/javascript/components/drrs/ScrambleText.js","webpack://app/./app/javascript/components/drrs/StickyHook.js","webpack://app/./app/javascript/components/famouswolf/HomeWolf.js","webpack://app/./app/javascript/components/famouswolf/MintInactiveWolf.js","webpack://app/./app/javascript/components/famouswolf/MintWolf.js","webpack://app/./app/javascript/components/famouswolf/MintWolfReserved.js","webpack://app/./app/javascript/components/goatTribe/AudioPlayer.js","webpack://app/./app/javascript/components/goatTribe/GameMusic.js","webpack://app/./app/javascript/components/goatTribe/Goatcade.js","webpack://app/./app/javascript/components/goatTribe/GrassRegister.js","webpack://app/./app/javascript/components/goatTribe/HighScores.js","webpack://app/./app/javascript/components/sgs/HomeSgs.js","webpack://app/./app/javascript/components/sgs/MintInactive.js","webpack://app/./app/javascript/components/sgs/MintSgs.js","webpack://app/./app/javascript/components/theme.js","webpack://app/./app/javascript/nami-js/loader.js","webpack://app/./app/javascript/nami-js/coinSelection.js","webpack://app/./app/javascript/nami-js/nami.js"],"sourcesContent":["var map = {\n\t\"./ConnectWallet\": 2137,\n\t\"./ConnectWallet.js\": 2137,\n\t\"./ConnectWalletDrrs\": 3394,\n\t\"./ConnectWalletDrrs.js\": 3394,\n\t\"./ConnectWalletGt\": 8352,\n\t\"./ConnectWalletGt.js\": 8352,\n\t\"./Constants\": 2219,\n\t\"./Constants.js\": 2219,\n\t\"./MintingTips\": 6892,\n\t\"./MintingTips.js\": 6892,\n\t\"./PassesChecker\": 1873,\n\t\"./PassesChecker.js\": 1873,\n\t\"./RandomMemes\": 5170,\n\t\"./RandomMemes.js\": 5170,\n\t\"./drrs/AudioPlayer\": 3270,\n\t\"./drrs/AudioPlayer.js\": 3270,\n\t\"./drrs/DRRSStore\": 7,\n\t\"./drrs/DRRSStore.js\": 7,\n\t\"./drrs/DRRSStoreInactive\": 9025,\n\t\"./drrs/DRRSStoreInactive.js\": 9025,\n\t\"./drrs/DRRSStoreOrder\": 9948,\n\t\"./drrs/DRRSStoreOrder.js\": 9948,\n\t\"./drrs/DrrsWeaponsCC\": 4149,\n\t\"./drrs/DrrsWeaponsCC.js\": 4149,\n\t\"./drrs/HomeDRRS\": 9433,\n\t\"./drrs/HomeDRRS.js\": 9433,\n\t\"./drrs/HomeDrrsWeapons\": 1289,\n\t\"./drrs/HomeDrrsWeapons.js\": 1289,\n\t\"./drrs/MintDRRS\": 2025,\n\t\"./drrs/MintDRRS.js\": 2025,\n\t\"./drrs/MintDRRSReserved\": 3282,\n\t\"./drrs/MintDRRSReserved.js\": 3282,\n\t\"./drrs/MintDRRSReservedCustom\": 6077,\n\t\"./drrs/MintDRRSReservedCustom.js\": 6077,\n\t\"./drrs/MintDRRSSupreme\": 8238,\n\t\"./drrs/MintDRRSSupreme.js\": 8238,\n\t\"./drrs/MintDrrsSuccess\": 1297,\n\t\"./drrs/MintDrrsSuccess.js\": 1297,\n\t\"./drrs/MintDrrsWeapons\": 5754,\n\t\"./drrs/MintDrrsWeapons.js\": 5754,\n\t\"./drrs/MintInactiveDRRS\": 6473,\n\t\"./drrs/MintInactiveDRRS.js\": 6473,\n\t\"./drrs/MintInactiveDrrsWeapons\": 8569,\n\t\"./drrs/MintInactiveDrrsWeapons.js\": 8569,\n\t\"./drrs/ScrambleText\": 4433,\n\t\"./drrs/ScrambleText.js\": 4433,\n\t\"./drrs/StickyHook\": 383,\n\t\"./drrs/StickyHook.js\": 383,\n\t\"./famouswolf/HomeWolf\": 7401,\n\t\"./famouswolf/HomeWolf.js\": 7401,\n\t\"./famouswolf/MintInactiveWolf\": 8144,\n\t\"./famouswolf/MintInactiveWolf.js\": 8144,\n\t\"./famouswolf/MintWolf\": 9586,\n\t\"./famouswolf/MintWolf.js\": 9586,\n\t\"./famouswolf/MintWolfReserved\": 9674,\n\t\"./famouswolf/MintWolfReserved.js\": 9674,\n\t\"./goatTribe/AudioPlayer\": 7317,\n\t\"./goatTribe/AudioPlayer.js\": 7317,\n\t\"./goatTribe/GameMusic\": 8223,\n\t\"./goatTribe/GameMusic.js\": 8223,\n\t\"./goatTribe/Goatcade\": 7238,\n\t\"./goatTribe/Goatcade.js\": 7238,\n\t\"./goatTribe/GrassRegister\": 4650,\n\t\"./goatTribe/GrassRegister.js\": 4650,\n\t\"./goatTribe/HighScores\": 4779,\n\t\"./goatTribe/HighScores.js\": 4779,\n\t\"./metadata/drrs-metadata-cc-dev.json\": 3797,\n\t\"./metadata/drrs-metadata-cc.json\": 2319,\n\t\"./metadata/drrs-metadata-weapon-dev.json\": 8691,\n\t\"./metadata/drrs-metadata-weapon.json\": 4073,\n\t\"./metadata/famouswolf-metadata-dev.json\": 6697,\n\t\"./metadata/famouswolf-metadata.json\": 5371,\n\t\"./sgs/HomeSgs\": 7878,\n\t\"./sgs/HomeSgs.js\": 7878,\n\t\"./sgs/MintInactive\": 6875,\n\t\"./sgs/MintInactive.js\": 6875,\n\t\"./sgs/MintSgs\": 9427,\n\t\"./sgs/MintSgs.js\": 9427,\n\t\"./theme\": 4515,\n\t\"./theme.js\": 4515\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 982;","import React, { useEffect, useState } from \"react\"\nimport { Box, Grid, Spinner, Image } from \"theme-ui\"\nimport CardanoWallet, { Cardano } from \"../nami-js/nami\"\nimport NamiLogo from \"images/nami-logo.svg\"\nimport EternlLogo from \"images/eternl-logo.svg\"\nimport FlintLogo from \"images/flint-logo.svg\"\n\nexport const ConnectWallet = (props) => {\n const blockfrostApiKey = props.blockfrostApiKey\n const hidden = props.hidden\n const styles = props.styles || {}\n const popupStyles = props.popupStyles || {}\n const handleConnect = props.handleConnect || (() => {})\n const handleLoading = props.handleLoading || (() => {})\n const [open, setOpen] = useState(false)\n const [selected, setSelected] = useState(false)\n const [loading, setLoading] = useState(null)\n const [connected, setConnected] = useState(null)\n\n const setWallet = (walletName) => {\n connectWallet(walletName)\n setSelected(walletName)\n setOpen(false)\n }\n\n const images = {\n nami: NamiLogo,\n eternl: EternlLogo,\n ccvault: EternlLogo,\n flint: FlintLogo,\n }\n\n const connectWallet = async (walletName) => {\n let wallet = null\n let walletData = window?.cardano?.[walletName]\n if (!walletData && walletName == \"eternl\") window?.cardano?.[\"ccvault\"]\n\n if (walletData?.name) {\n setLoading(true)\n const S = await Cardano()\n try {\n await walletData.enable().then(async (enabledWallet) => {\n wallet = new CardanoWallet(S, enabledWallet, blockfrostApiKey)\n const address = await wallet.getAddress()\n const balance = await wallet.getBalance()\n wallet.balance = balance\n wallet.address = address\n sessionStorage.setItem(\"sgsWallet\", walletName)\n setConnected(wallet)\n handleConnect(wallet)\n setLoading(false)\n })\n } catch {\n setLoading(false)\n }\n }\n }\n\n useEffect(() => {\n const existingWallet = sessionStorage.getItem(\"sgsWallet\")\n if (existingWallet) {\n connectWallet(existingWallet)\n setSelected(existingWallet)\n }\n }, [])\n\n useEffect(() => {\n handleLoading(loading)\n }, [loading])\n\n return (\n <>\n {open && (\n setOpen(false)}\n >\n )}\n\n \n !loading && setOpen(!open)}\n >\n {loading && }\n {!loading && connected && (\n \n \n \n \n {`${(connected?.balance?.lovelace / 1000000)?.toFixed(1)} ₳`}\n \n \n \n )}\n {!loading && !connected && \"CONNECT WALLET\"}\n \n {open && (\n \n setWallet(\"nami\")}>\n \n Nami\n \n setWallet(\"eternl\")}>\n \n Eternl\n \n setWallet(\"flint\")}>\n \n Flint\n \n \n )}\n \n >\n )\n}\n\nconst selectStyles = {\n p: \"8px\",\n gridTemplateColumns: \"auto 1fr\",\n alignItems: \"center\",\n borderRadius: \"3px\",\n cursor: \"pointer\",\n color: \"black\",\n \"&:hover\": { bg: \"lightgrey\" },\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n minHeight: \"60px\",\n color: \"white\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"4px solid #1c1c1c\",\n bg: \"#1c1c1c\",\n py: \"12px\",\n width: [\"100%\", 300],\n borderRadius: \"8px\",\n cursor: \"pointer\",\n fontSize: \"22px\",\n userSelect: \"none\",\n display: \"inline-block\",\n marginTop: \"25px\",\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n \"&:hover\": {\n bg: \"#2f2f2f\",\n borderColor: \"#2f2f2f\",\n },\n}\n\nexport default ConnectWallet\n","import React, { useEffect, useState } from \"react\"\nimport { Box, Grid, Spinner, Image } from \"theme-ui\"\nimport CardanoWallet, { Cardano, HexToAscii } from \"../nami-js/nami\"\nimport { BLOCKFROST_API_KEY } from \"./Constants\"\n\nconst supportedWallets = [\n \"nami\",\n \"eternl\",\n \"flint\",\n \"lace\",\n \"typhoncip30\",\n \"vespr\",\n]\n\nexport const ConnectWallet = (props) => {\n const blockfrostApiKey = BLOCKFROST_API_KEY\n const hidden = props.hidden\n const showAda = props.showAda\n const styles = props.styles || {}\n const popupStyles = props.popupStyles || {}\n const handleConnect = props.handleConnect || (() => {})\n const handleLoading = props.handleLoading || (() => {})\n const [open, setOpen] = useState(false)\n const [selected, setSelected] = useState(false)\n const [loading, setLoading] = useState(null)\n const [connected, setConnected] = useState(null)\n\n // real policies\n const deadPolicy = \"6194158d24d71eca5cc5601c45de123bf78d02c297e851be2608810a\"\n const deadName = \"DEAD\"\n\n // test policies\n // const deadPolicy = \"a0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235\" // hosky\n // const deadName = \"HOSKY\"\n\n const deadAmount =\n connected?.balance?.assets?.find((nft) => nft.policy == deadPolicy)\n ?.quantity || 0\n\n // console.log(deadAmount)\n\n const setWallet = (walletName) => {\n connectWallet(walletName)\n setSelected(walletName)\n setOpen(false)\n }\n\n let icons = []\n supportedWallets.forEach((supportedWallet) => {\n if (window?.cardano?.[supportedWallet]) {\n icons.push(window?.cardano?.[supportedWallet]?.icon)\n }\n })\n\n const connectWallet = async (walletName) => {\n let wallet = null\n let walletData = window?.cardano?.[walletName]\n if (!walletData && walletName == \"eternl\") window?.cardano?.[\"ccvault\"]\n\n if (walletData?.name) {\n setLoading(true)\n const S = await Cardano()\n try {\n await walletData.enable().then(async (enabledWallet) => {\n wallet = new CardanoWallet(S, enabledWallet, blockfrostApiKey)\n\n const address = wallet.getAddress()\n // console.log(\"address\", address)\n const balance = await wallet.getBalance()\n // console.log(\"balance\", balance)\n\n wallet.balance = balance\n wallet.address = address\n wallet.icon = walletData.icon\n sessionStorage.setItem(\"walletName\", walletName)\n setConnected(wallet)\n handleConnect(wallet)\n setLoading(false)\n })\n } catch {\n setLoading(false)\n }\n }\n }\n\n useEffect(() => {\n const existingWallet = sessionStorage.getItem(\"walletName\")\n if (existingWallet) {\n connectWallet(existingWallet)\n setSelected(existingWallet)\n }\n }, [])\n\n useEffect(() => {\n handleLoading(loading)\n }, [loading])\n\n return (\n <>\n {open && (\n setOpen(false)}\n >\n )}\n\n \n !loading && setOpen(!open)}\n >\n {loading && }\n {!loading && connected && (\n \n \n \n \n {showAda\n ? `${(connected?.balance?.lovelace / 1000000)?.toFixed(1)} ₳`\n : `${deadAmount} ${deadName}`}\n \n \n \n )}\n {!loading && !connected && \"CONNECT WALLET\"}\n \n {open && (\n \n {supportedWallets.map((supportedWallet) => {\n const icon = window?.cardano?.[supportedWallet]?.icon\n\n if (\n window?.cardano?.[supportedWallet]?.experimental &&\n window?.cardano?.[supportedWallet]?.experimental\n ?.vespr_compat === true\n ) {\n return\n }\n\n if (\n window?.cardano?.[supportedWallet]?.name?.includes(\"via VESPR\")\n ) {\n return\n }\n\n if (!icon) return null\n\n return (\n setWallet(supportedWallet)}\n >\n \n {supportedWallet?.replace(\"cip30\", \"\")}\n \n )\n })}\n {icons.length == 0 && (\n \n No Wallets Detected\n \n )}\n \n )}\n \n >\n )\n}\n\nconst selectStyles = {\n p: \"8px\",\n gridTemplateColumns: \"auto 1fr\",\n alignItems: \"left\",\n textAlign: \"left\",\n borderRadius: \"3px\",\n fontFamily: '\"Electrolize\", system-ui, sans-serif !important',\n\n cursor: \"pointer\",\n alignItems: \"center\",\n color: \"#e0400f\",\n textTransform: \"uppercase\",\n \"&:hover\": { bg: \"#1c1c1c\" },\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n fontFamily: '\"Electrolize\", system-ui, sans-serif !important',\n\n position: \"relative\",\n minHeight: \"60px\",\n color: \"#e0400f\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"3px solid #e0400f\",\n bg: \"black\",\n py: \"12px\",\n px: 15,\n width: [\"100%\", 300],\n minWidth: \"200px\",\n cursor: \"pointer\",\n fontSize: \"22px\",\n userSelect: \"none\",\n display: \"grid\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginTop: \"25px\",\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n \"&:hover\": {\n bg: \"#1c1c1c\",\n },\n}\n\nexport default ConnectWallet\n","import React, { useEffect, useState } from \"react\"\nimport { Box, Grid, Spinner, Image } from \"theme-ui\"\nimport CardanoWallet, { Cardano } from \"../nami-js/nami\"\n\nconst supportedWallets = [\n \"nami\",\n \"eternl\",\n \"flint\",\n \"lace\",\n \"typhoncip30\",\n \"vespr\",\n]\n\nexport const ConnectWallet = (props) => {\n const blockfrostApiKey = props.blockfrostApiKey\n const hidden = props.hidden\n const walletRefresh = props.walletRefresh || 1\n const styles = props.styles || {}\n const popupStyles = props.popupStyles || {}\n const handleConnect = props.handleConnect || (() => {})\n const handleLoading = props.handleLoading || (() => {})\n const [open, setOpen] = useState(false)\n const [selected, setSelected] = useState(false)\n const [loading, setLoading] = useState(null)\n const [connected, setConnected] = useState(null)\n\n // real policies\n const grassPolicy = \"32cc9c6c3456bc048d14a4a8e4ee3592e9664e8daac921a8ef52d92a\"\n const tokenName = \"GRASS\"\n\n // test policies\n // const deadPolicy = \"a0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235\" // hosky\n // const deadName = \"HOSKY\"\n\n const grass =\n connected?.balance?.assets?.find((nft) => nft.policy == grassPolicy)\n ?.quantity || 0\n\n const grassAmount = parseInt(grass / 1000000)\n\n const setWallet = (walletName) => {\n connectWallet(walletName)\n setSelected(walletName)\n setOpen(false)\n }\n\n let icons = []\n supportedWallets.forEach((supportedWallet) => {\n if (window?.cardano?.[supportedWallet]) {\n icons.push(window?.cardano?.[supportedWallet]?.icon)\n }\n })\n\n const connectWallet = async (walletName) => {\n let wallet = null\n console.log(\"walletName\", walletName)\n let walletData = window?.cardano?.[walletName]\n if (!walletData && walletName == \"eternl\") window?.cardano?.[\"ccvault\"]\n\n if (walletData?.name) {\n setLoading(true)\n const S = await Cardano()\n try {\n await walletData.enable().then(async (enabledWallet) => {\n wallet = new CardanoWallet(S, enabledWallet, blockfrostApiKey)\n\n const address = await wallet.getAddress()\n // console.log(\"address\", address)\n const balance = await wallet.getBalance()\n // console.log(\"balance\", balance)\n\n wallet.balance = balance\n wallet.address = address\n wallet.icon = walletData.icon\n sessionStorage.setItem(\"walletName\", walletName)\n setConnected(wallet)\n handleConnect(wallet)\n setLoading(false)\n // console.log(\"wallet-end\", wallet)\n })\n } catch (e) {\n console.log(\"error\", e)\n setConnected(null)\n handleConnect(null)\n setLoading(false)\n }\n }\n }\n\n useEffect(() => {\n const existingWallet = sessionStorage.getItem(\"walletName\")\n if (existingWallet) {\n connectWallet(existingWallet)\n setSelected(existingWallet)\n }\n }, [walletRefresh])\n\n useEffect(() => {\n handleLoading(loading)\n }, [loading])\n\n return (\n <>\n {open && (\n setOpen(false)}\n >\n )}\n\n \n !loading && setOpen(!open)}\n >\n {loading && }\n {!loading && connected && (\n \n \n {connected?.icon && (\n \n )}\n\n {`${grassAmount} ${tokenName}`}\n \n \n )}\n {!loading && !connected && \"CONNECT WALLET\"}\n \n {open && (\n \n {supportedWallets.map((supportedWallet) => {\n const icon = window?.cardano?.[supportedWallet]?.icon\n\n if (\n window?.cardano?.[supportedWallet]?.experimental &&\n window?.cardano?.[supportedWallet]?.experimental?.vespr_compat === true\n ) {\n return;\n }\n \n if (window?.cardano?.[supportedWallet]?.name?.includes(\"via VESPR\")) {\n return;\n }\n\n if (!icon) return null\n\n return (\n setWallet(supportedWallet)}\n >\n \n {supportedWallet?.replace(\"cip30\", \"\")}\n \n )\n })}\n {icons.length == 0 && (\n \n No Wallets Detected\n \n )}\n \n )}\n \n >\n )\n}\n\nconst selectStyles = {\n p: \"8px\",\n gridTemplateColumns: \"auto 1fr\",\n alignItems: \"left\",\n textAlign: \"left\",\n borderRadius: \"3px\",\n cursor: \"pointer\",\n alignItems: \"center\",\n color: \"white\",\n textTransform: \"uppercase\",\n \"&:hover\": { bg: \"#1c1c1c\" },\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n minHeight: \"60px\",\n color: \"white\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"3px solid white\",\n bg: \"black\",\n py: \"12px\",\n px: 15,\n width: [\"100%\", 400],\n minWidth: \"200px\",\n cursor: \"pointer\",\n fontSize: [\"18px\", \"22px\"],\n userSelect: \"none\",\n display: \"grid\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginTop: \"25px\",\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n \"&:hover\": {\n bg: \"#1c1c1c\",\n },\n}\n\nexport default ConnectWallet\n","export const BLOCKFROST_API_KEY = \"mainnetTReeSC5Ff5GPBdS2WMZ7BWN57K3MHZ9b\"","import React, { useState } from \"react\"\nimport { Box, Paragraph } from \"theme-ui\"\n\nexport const MintingTips = (props) => {\n const [showTips, setShowTips] = useState(false)\n\n return (\n \n setShowTips(!showTips)}\n >\n {showTips ? \"Hide minting tips\" : \"See minting tips\"}\n \n {showTips && (\n \n {`\\n- If the tx is building or validating, just give it a minute or two. It's been several minutes (3 to 5) and the tx is still \"building\", then refresh the page and try again.\\n\\n- If the tx is \"validating\", just wait it out. If it's been several minutes, there may have been an error. Refresh and try again.\\n\\n- If you get an error, screenshot it and ask a MOD to help you out. If you don't see an error, check the Developer Tools console and screenshot any relevant errors from there. Ie right click -> inspect -> Console tab -> pink/red errors.\\n\\n- If the blockchain is congested, don't sumbit lots of pending txs at once (JPG, CNFT, SGS). New txs update the utxos and if they change before the next tx it can cause other txs to fail.\\n\\n- If your tx has been pending for more than 2 hours and still hasn't been confirmed, you can reset the tx in your \"Successful Orders\" below by clicking the \"Reset tx\" link. Then you can re-sign a new tx and try again.\\n\\n- Reach out to MODs via Discord if you're having issues.\\n\\n\\nNotes on the minting process:\\n\\n- The minting process is a multi-signature tx. Everything is done in 1 tx with 2 outputs (your wallet gets the NFT, our payment wallet gets the ADA)\\n\\n- The frontend/website creates the tx and you sign it (sig 1). Then that tx is sent to our backend/wallet where we validate that the order and tx are correct (sig 2). If correct, the backend wallet submits the tx to the blockchain/Blockfrost.\\n\\n- The tx could take a few minutes (5-30) or a couple hours (1-2) depending on blockchain load. If the tx takes longer than 2 hours, you will be able to reset the tx yourself using the website. Re-sign the order and submit again.\\n\\n- It doesn't matter if you're using a different node for Nami. The tx is always submitted by our backend, not by your Nami node.`}\n \n )}\n \n )\n}\n\nexport default MintingTips\n","import React, { useEffect, useState } from \"react\"\nimport { Box, Paragraph, Input } from \"theme-ui\"\n\nexport const PassesChecker = (props) => {\n const usedPasses = props.usedPasses\n const [open, setOpen] = useState(false)\n const [message, setMessage] = useState(false)\n const [value, setValue] = useState(\"\")\n\n useEffect(() => {\n //TBOIGenesis047\n if (value.length === 3) {\n const number = parseInt(value)\n if (number > 0 && number <= 100) {\n const passUsed = usedPasses.find(\n (pass) => pass === `TBOIGenesis${value}`\n )\n if (passUsed) {\n setMessage(\"This pass has already been used\")\n } else {\n setMessage(\"This pass has not been used\")\n }\n } else {\n setMessage(\"This Genesis Pass does not exist\")\n }\n } else {\n setMessage(\"\")\n }\n }, [value])\n\n return (\n <>\n {open && (\n setOpen(false)}\n >\n )}\n\n \n setOpen(!open)}\n >\n Check Genesis Passes\n \n {open && (\n \n setShowTips(!showTips)}\n >\n Enter the 3 digit number of your Genesis Pass to see if it's been\n used\n \n\n setValue(e.target.value)}\n />\n\n setShowTips(!showTips)}\n >\n {message}\n \n \n )}\n \n >\n )\n}\n\nconst buttonStyles = {\n textAlign: \"left\",\n position: \"relative\",\n height: \"60px\",\n color: \"white\",\n whiteSpace: \"nowrap\",\n zIndex: 100005,\n bg: \"transparent\",\n py: \"12px\",\n width: [\"100%\", 300],\n borderRadius: \"8px\",\n cursor: \"pointer\",\n fontSize: \"22px\",\n userSelect: \"none\",\n display: \"inline-block\",\n textDecoration: \"none\",\n}\n\nexport default PassesChecker\n","import React, { useEffect, useState } from \"react\"\nimport { Box, Image as Img, Paragraph } from \"theme-ui\"\n\nimport Meme1 from \"images/sgs-1.jpeg\"\n\nfunction preloadImage(url) {\n var img = new Image()\n img.src = url\n}\n\nconst memes = [\n {\n img: Meme1,\n caption: \"SHHHHH\",\n }\n]\n\nconst getRandomMemeNumber = (previous) => {\n let num = Math.floor(Math.random() * memes.length)\n if (num == previous) num = Math.floor(Math.random() * memes.length)\n if (num == previous) num = Math.floor(Math.random() * memes.length)\n return num\n}\n\nfunction shuffle(array) {\n let currentIndex = array.length,\n randomIndex\n\n // While there remain elements to shuffle...\n while (currentIndex != 0) {\n // Pick a remaining element...\n randomIndex = Math.floor(Math.random() * currentIndex)\n currentIndex--\n\n // And swap it with the current element.\n ;[array[currentIndex], array[randomIndex]] = [\n array[randomIndex],\n array[currentIndex],\n ]\n }\n\n return array\n}\n\nexport const RandomMemes = (props) => {\n const [memeIndex, setSetMemeIndex] = useState(0)\n const [shuffledMemes, setShuffledMemes] = useState(memes)\n\n useEffect(() => {\n const newMemes = shuffle(memes)\n setShuffledMemes(newMemes)\n\n const firstFive = newMemes.slice(0, 5)\n\n firstFive.forEach((meme) => {\n preloadImage(meme.img)\n })\n }, [])\n\n const updateIndex = () => {\n let newMemeIndex = memeIndex + 1\n if (newMemeIndex > memes.length - 1) newMemeIndex = 0\n setSetMemeIndex(newMemeIndex)\n\n let preloadIndex = memeIndex + 5\n if (preloadIndex <= memes.length - 1) {\n preloadImage(shuffledMemes?.[preloadIndex]?.img)\n }\n }\n\n return (\n \n \n {\"MEME ME\"}\n \n
\n \n {shuffledMemes[memeIndex]?.caption}\n \n \n )\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n top: 10,\n color: \"white !important\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"4px solid black\",\n bg: \"black\",\n py: \"12px\",\n width: [\"100%\", 300],\n borderRadius: \"8px\",\n cursor: \"pointer\",\n fontSize: \"24px\",\n userSelect: \"none\",\n display: \"block\",\n marginTop: \"25px\",\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n \"&:hover\": {\n bg: \"#1c1c1c\",\n borderColor: \"#1c1c1c\",\n },\n}\n\nexport default RandomMemes\n","import React, { useState, useEffect } from \"react\"\nimport { Box } from \"theme-ui\"\n\nconst AudioPlayer = ({ src = \"/Stranger_Danger.wav\" }) => {\n const [isPlaying, setIsPlaying] = useState(false)\n\n const [autoPlay, setAutoPlay] = useState(() => {\n const value = window.localStorage.getItem(\"autoPlay\")\n let defaultValue = false\n if (value == \"true\") defaultValue = true\n if (value === null) defaultValue = true\n return defaultValue\n })\n\n useEffect(() => {\n setTimeout(() => {\n checkPlaying()\n }, 100)\n\n setTimeout(() => {\n checkPlaying()\n }, 250)\n\n setTimeout(() => {\n checkPlaying()\n }, 500)\n\n setTimeout(() => {\n checkPlaying()\n }, 750)\n\n setTimeout(() => {\n checkPlaying()\n }, 1000)\n\n if (autoPlay) {\n let playAttempt = setInterval(() => {\n const player = document.getElementById(\"audio\")\n\n player\n .play()\n .then(() => {\n clearInterval(playAttempt)\n })\n .catch((error) => {\n console.log(\n \"Unable to play the video, User has not interacted yet.\"\n )\n })\n\n checkPlaying()\n }, 1000)\n }\n }, [])\n\n const checkPlaying = () => {\n const player = document.getElementById(\"audio\")\n setIsPlaying(!player?.paused)\n }\n\n const handleClick = () => {\n setTimeout(() => {\n checkPlaying()\n }, 250)\n\n setTimeout(() => {\n checkPlaying()\n }, 500)\n\n if (!isPlaying) {\n setAutoPlay(true)\n document.getElementById(\"audio\").play()\n window.localStorage.setItem(\"autoPlay\", true)\n } else {\n setAutoPlay(false)\n document.getElementById(\"audio\").pause()\n window.localStorage.setItem(\"autoPlay\", null)\n }\n }\n\n return (\n \n \n {isPlaying ? (\n \n ) : (\n \n )}\n \n )\n}\n\nexport default AudioPlayer\n","import React, { useEffect, useState } from \"react\"\nimport {\n ThemeProvider,\n Box,\n Image as Img,\n Paragraph,\n Checkbox,\n Link,\n} from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport Image1 from \"images/deadstore.jpg\"\nimport Scramble from \"react-scramble\"\n\nimport AudioPlayer from \"./AudioPlayer\"\nimport useStickyState from \"./StickyHook\"\nimport { BLOCKFROST_API_KEY } from \"../Constants\"\n\nconst ArmoryKey = \"/armory-key.gif\"\nconst DepotKey = \"/depot-key.gif\"\nconst KismetKey = \"/kismet-key.gif\"\nconst MoleHq = \"/mole-hq.gif\"\n\nconst images = {\n \"STORE-ARMORY\": ArmoryKey,\n \"STORE-DEPOT\": DepotKey,\n \"STORE-KISMET\": KismetKey,\n \"STORE-MOLE\": MoleHq,\n}\n\nimport axios from \"axios\"\nimport ConnectWallet from \"../ConnectWalletDrrs\"\n\nexport const DRRSStore = (props) => {\n const blockfrostApiKey = BLOCKFROST_API_KEY\n const userId = props.user_id\n const locked = parseInt(props.locked_coin || 0)\n let nfts = props.nfts ? JSON.parse(props.nfts) : []\n const csrf = props.csrf\n\n // real policies\n const deadPolicy = \"6194158d24d71eca5cc5601c45de123bf78d02c297e851be2608810a\"\n const deadName = \"DEAD\"\n\n // test policies\n // const deadPolicy = \"a0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235\" // hosky\n // const deadName = \"HOSKY\"\n\n if (!blockfrostApiKey) return null\n if (!userId) return null\n\n const [connected, setConnected] = useState(null)\n const [loading, setLoading] = useState(false)\n const [walletLoading, setWalletLoading] = useState(false)\n const [auctionTimes, setAuctionTimes] = useState({})\n const [openBid, setOpenBid] = useState(null)\n const [bidValue, setBidValue] = useState(\"\")\n const [bidText, setBidText] = useState(\"\")\n const [auctionNfts, setAuctionNfts] = useState(nfts)\n const [rescramble, setRescramble] = useState(1)\n const [lockedCoin, setLockedCoin] = useState(locked)\n\n const [selected, setSelected] = useStickyState(\"active\", \"selected\")\n const [agree, setAgree] = useStickyState(false, \"agree\")\n\n let sortedNfts = auctionNfts\n if (selected == \"active\") {\n sortedNfts = auctionNfts.filter((nft) => {\n const now = new Date().getTime()\n const timeleft = Date.parse(nft.auction_end) - now\n const expired = timeleft <= 0\n return !expired\n })\n\n sortedNfts = sortedNfts.sort((a, b) => {\n return Date.parse(a.auction_end) - Date.parse(b.auction_end)\n })\n }\n\n if (selected == \"won\") {\n sortedNfts = auctionNfts.filter((nft) => {\n const now = new Date().getTime()\n const timeleft = Date.parse(nft.auction_end) - now\n const expired = timeleft <= 0\n const isUser = userId == nft?.top_bid?.user_id\n return expired && isUser\n })\n\n sortedNfts = sortedNfts.sort((a, b) => {\n return Date.parse(b.auction_end) - Date.parse(a.auction_end)\n })\n\n sortedNfts = sortedNfts.sort((a, b) => {\n return a.claimed === b.claimed ? 0 : a.claimed ? 1 : -1\n })\n }\n\n if (selected == \"expired\") {\n sortedNfts = auctionNfts.filter((nft) => {\n const now = new Date().getTime()\n const timeleft = Date.parse(nft.auction_end) - now\n const expired = timeleft <= 0\n return expired\n })\n\n sortedNfts = sortedNfts.sort((a, b) => {\n return Date.parse(b.auction_end) - Date.parse(a.auction_end)\n })\n\n sortedNfts = sortedNfts.sort((a, b) => {\n return a.claimed === b.claimed ? 0 : a.claimed ? 1 : -1\n })\n }\n\n // update auction times\n useEffect(() => {\n updateAuctionTimes()\n\n const interval = setInterval(() => {\n updateAuctionTimes()\n }, 1000)\n return () => clearInterval(interval)\n }, [])\n\n const updateAuctionTimes = () => {\n let newTimes = {}\n\n auctionNfts.forEach((nft) => {\n if (nft.auction_end) {\n const now = new Date().getTime()\n const timeleft = Date.parse(nft.auction_end) - now\n\n if (timeleft >= -3000) {\n const days = Math.floor(timeleft / (1000 * 60 * 60 * 24))\n const hours = Math.floor(\n (timeleft % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)\n )\n const minutes = Math.floor(\n (timeleft % (1000 * 60 * 60)) / (1000 * 60)\n )\n const seconds = Math.floor((timeleft % (1000 * 60)) / 1000)\n\n // if an auction ends, refresh the data to get the top bid\n if (days == -1 && hours == -1 && minutes == -1 && seconds == -1) {\n // console.log(`refreshing for ${nft.name} auction end`)\n refreshAuctionData()\n }\n\n newTimes[nft.name] = {\n days: days,\n hours: hours,\n minutes: minutes,\n seconds: seconds,\n }\n }\n }\n })\n\n setAuctionTimes(newTimes)\n }\n\n useEffect(() => {\n const interval = setInterval(() => {\n refreshAuctionData()\n }, 60000)\n return () => clearInterval(interval)\n }, [])\n\n const handleConnect = (connectedWallet) => {\n // console.log(\"connectedWallet\", connectedWallet)\n setConnected(connectedWallet)\n }\n\n const handleBidClick = async (nft) => {\n setLoading(nft.id)\n\n const bid = parseInt(bidValue)\n const nftMinPrice = parseInt(nft.min_price || 0)\n const minPrice = parseInt(nft.top_bid?.price || 0)\n\n const deadAmount =\n (connected?.balance?.assets?.find((nft) => nft.policy == deadPolicy)\n ?.quantity || 0) - lockedCoin\n // console.log(\"deadAmount\", deadAmount)\n\n if (!bid) {\n setBidText(\"Invalid value\")\n return\n }\n\n if (!connected) {\n setBidText(\"Your wallet must be connected to place a bid\")\n return\n }\n\n if (bid <= minPrice) {\n setBidText(`Bid must be higher than the top bid`)\n return\n }\n\n if (bid < nftMinPrice) {\n setBidText(`Bid must be higher than bid minimum`)\n return\n }\n\n if (bid > deadAmount) {\n setBidText(\n `The bid is higher than the amount of avialable ${deadName} in your wallet (${deadAmount})`\n )\n return\n }\n\n try {\n const resp = await axios.post(\n \"/bids\",\n {\n bid: {\n nft_id: nft.id,\n user_id: userId,\n price: bidValue,\n },\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n setLoading(false)\n refreshAuctionData()\n\n if (resp?.data?.id) {\n setBidText(\"CONFIRMED\")\n\n setTimeout(() => {\n setOpenBid(null)\n setBidText(\"\")\n setBidValue(\"\")\n }, 1000)\n } else {\n setBidText(resp?.data)\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n const handleKeyDown = (event, nft) => {\n if (event.key === \"Enter\") {\n event.preventDefault()\n event.stopPropagation()\n\n const bid = parseInt(bidValue)\n if (agree && bid) {\n handleBidClick(nft)\n }\n }\n }\n\n const refreshAuctionData = async () => {\n const resp = await axios.get(`/auction-data`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n const auctionData = resp?.data\n\n const isDifferent =\n JSON.stringify(auctionNfts) != JSON.stringify(auctionData)\n if (isDifferent && auctionData?.nfts) {\n setAuctionNfts(auctionData?.nfts)\n setLockedCoin(auctionData?.locked_coin)\n }\n }\n\n const handleBidDelete = async (id) => {\n if (confirm(\"Are you sure you want to delete this bid?\") == true) {\n try {\n const resp = await axios.delete(`/bids/${id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n if (resp?.data?.deleted == true) {\n refreshAuctionData()\n } else {\n alert(resp?.data?.error)\n }\n } catch (err) {\n console.error(err)\n }\n }\n }\n\n const isConfirmed = bidText == \"CONFIRMED\"\n const noAuctions = sortedNfts.length == 0\n const topPrice = openBid?.top_bid?.price || 0\n const minBidPrice = openBid?.min_price || 0\n const hasNoBids = topPrice == 0 && !isConfirmed\n const topBidPrice = isConfirmed ? bidValue : openBid?.top_bid?.price || 0\n\n return (\n \n \n
\n \n \n \n\n \n \n \n \n \n \n\n {openBid && (\n \n {\n setOpenBid(null)\n setBidText(\"\")\n setBidValue(\"\")\n }}\n >\n \n {bidText && (\n \n {bidText}\n \n )}\n\n \n {hasNoBids\n ? `Min Bid: ${parseInt(minBidPrice)} ${deadName}`\n : `Top Bid: ${parseInt(topBidPrice)} ${deadName}`}\n \n\n \n {`Place your bid for ${openBid.name}`}\n \n setBidValue(e.target.value)}\n onKeyDown={(e) => handleKeyDown(e, openBid)}\n />\n\n \n \n setAgree(!agree)}>\n \n \n\n \n If I win this auction, I pledge to claim it, or lose my\n $DEADSTORE privileges.\n \n \n \n\n agree && bidValue && handleBidClick(openBid)}\n >\n SUBMIT\n \n \n \n )}\n\n \n \n {noAuctions && (\n \n \n \n \n \n \n )}\n {sortedNfts.map((nft, index) => {\n const image = nft?.image\n ? nft?.image +\n \"?pinataGatewayToken=Z6fVNonkqUQxdxwNN1robHyrswH6-opcZo9G3ufqstE-dQfTej-YtpuO1zDaFm8C\"\n : images[nft.token_type]\n\n const days = auctionTimes[nft.name]?.days\n const hours = auctionTimes[nft.name]?.hours\n const minutes = auctionTimes[nft.name]?.minutes\n const seconds = auctionTimes[nft.name]?.seconds\n\n const now = new Date().getTime()\n const timeleft = Date.parse(nft.auction_end) - now\n const expired = timeleft <= 0\n const canClaim = timeleft <= -10000\n const hasTime = days || hours || minutes || seconds\n\n // console.log(\"nft.name\", timeleft)\n\n let bidTime = \"\"\n if (days) bidTime += `${days} Days `\n if (hours) bidTime += `${hours} Hours `\n if (minutes) bidTime += `${minutes} Mins `\n bidTime += `${seconds} Sec`\n\n const userIsTopBid = userId == nft?.top_bid?.user_id && !expired\n\n return (\n \n \n \n \n
\n \n \n \n \n \n\n {\n if (userIsTopBid) {\n handleBidDelete(nft?.top_bid?.id)\n }\n }}\n >\n \n \n \n\n {nft.top_bid && (\n \n \n \n )}\n \n\n {!expired && hasTime && (\n \n \n \n \n \n \n \n\n {connected && (\n setOpenBid(nft)}\n >\n \n \n )}\n \n )}\n {expired && (\n \n \n \n \n \n )}\n {expired &&\n canClaim &&\n userId == nft?.top_bid?.user_id && (\n \n \n \n \n \n \n \n )}\n \n \n \n )\n })}\n \n \n \n \n {\n setSelected(\"active\")\n setRescramble(rescramble + 1)\n }}\n >\n \n \n {\n setSelected(\"won\")\n setRescramble(rescramble + 1)\n }}\n >\n \n \n {\n setSelected(\"expired\")\n setRescramble(rescramble + 1)\n }}\n >\n \n \n \n \n \n \n \n \n \n )\n}\n\nconst linkStyles = {\n fontSize: [\"22px\", \"26px\"],\n textTransform: \"uppercase\",\n mb: 20,\n cursor: \"pointer\",\n color: \"#962a0c\",\n \"&:hover\": {\n color: \"#e0400f\",\n },\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n whiteSpace: \"nowrap\",\n bg: \"#962a0c\",\n width: [\"100%\"],\n cursor: \"pointer\",\n fontSize: \"20px\",\n userSelect: \"none\",\n display: \"block\",\n marginTop: \"10px\",\n textDecoration: \"none\",\n maxWidth: 200,\n color: \"black\",\n borderRadius: 5,\n py: 2,\n \"&:hover\": {\n bg: \"#e0400f\",\n },\n}\n\nexport default DRRSStore\n","import React from \"react\"\nimport { ThemeProvider, Box, Image as Img, Paragraph } from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport Image1 from \"images/deadstore.jpg\"\nimport Scramble from \"react-scramble\"\nimport Typewriter from \"typewriter-effect\"\n\nexport const DRRSStoreInactive = () => {\n return (\n \n \n
\n \n \n \n \n \n \n {\n typewriter\n .typeString(\"Loading store details ...\")\n .pauseFor(1500)\n .typeString('\\n\\nPermissions not met\\nAccess Denied')\n .start()\n }}\n options={{\n delay: 35,\n }}\n />\n \n {/* */}\n \n \n \n \n \n \n )\n}\n\nconst linkStyles = {\n fontSize: [\"22px\", \"26px\"],\n textTransform: \"uppercase\",\n mb: 20,\n cursor: \"pointer\",\n color: \"#962a0c\",\n \"&:hover\": {\n color: \"#e0400f\",\n },\n}\n\nexport default DRRSStoreInactive\n","import React, { useEffect, useState } from \"react\"\nimport {\n ThemeProvider,\n Box,\n Grid,\n Image as Img,\n Paragraph,\n Input,\n Select,\n Link,\n} from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport Image1 from \"images/deadstore.jpg\"\nimport Typewriter from \"typewriter-effect\"\nimport AudioPlayer from \"./AudioPlayer\"\n\nimport { BLOCKFROST_API_KEY } from \"../Constants\"\n\nconst ArmoryKey = \"/armory-key.gif\"\nconst DepotKey = \"/depot-key.gif\"\nconst KismetKey = \"/kismet-key.gif\"\nconst MoleHq = \"/mole-hq.gif\"\n\nconst images = {\n \"STORE-ARMORY\": ArmoryKey,\n \"STORE-DEPOT\": DepotKey,\n \"STORE-KISMET\": KismetKey,\n \"STORE-MOLE\": MoleHq,\n}\n\nimport axios from \"axios\"\nimport ConnectWallet from \"../ConnectWalletDrrs\"\n\nexport const DRRSStore = (props) => {\n const blockfrostApiKey = BLOCKFROST_API_KEY\n const userId = props.user_id\n const csrf = props.csrf\n\n let activeOrder = props.active_order || {}\n // console.log(\"activeOrder\", activeOrder)\n\n const storeWallet =\n \"addr1v80z5zth5nfmtnjncwttmv7a0unl3e6nl509smeg9qcyg9qaf6f8y\"\n const deadWallet =\n activeOrder?.nft?.pay_address ||\n \"addr1q97hx4ywp0ww5qewlta074y9jnylns56u6cd87e4s8pal2x05g9rc4gpjpennnmf7288y6lz4y8ywtqgy46lmzet6hpsfxmm33\"\n\n // real policies\n const deadPolicy = \"6194158d24d71eca5cc5601c45de123bf78d02c297e851be2608810a\"\n const deadName = \"DEAD\"\n\n // test policies\n // const deadPolicy = \"a0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235\" // hosky\n // const deadName = \"HOSKY\"\n\n const image = activeOrder?.nft?.image\n ? activeOrder?.nft?.image +\n \"?pinataGatewayToken=Z6fVNonkqUQxdxwNN1robHyrswH6-opcZo9G3ufqstE-dQfTej-YtpuO1zDaFm8C\"\n : images[activeOrder?.nft.token_type]\n\n if (!blockfrostApiKey) return null\n if (!userId) return null\n\n const [connected, setConnected] = useState(null)\n const [loading, setLoading] = useState(false)\n const [walletLoading, setWalletLoading] = useState(false)\n const [loadingText, setLoadingText] = useState(\"\")\n const [order, setOrder] = useState(activeOrder)\n const [errors, setErrors] = useState(null)\n const [success, setSuccess] = useState(null)\n const [typing, setTyping] = useState(false)\n\n const hasPendingTx = order && order?.tx_hash && !order?.asset_tx_hash\n const orderCompleted = order && order?.tx_hash && order?.asset_tx_hash\n\n const dead = connected?.balance?.assets?.find(\n (nft) => nft.policy == deadPolicy\n )\n const deadAmount = dead?.quantity\n const hasMinDead = true\n\n const txSubmitted = order.tx_created_at ? new Date(order.tx_created_at) : null\n const txSubmittedText = txSubmitted\n ? `${txSubmitted.toLocaleDateString()} - ${txSubmitted.toLocaleTimeString()}`\n : txSubmitted\n\n const txStatus = orderCompleted ? \"Confirmed\" : \"Pending\"\n\n useEffect(() => {\n refresh()\n if (order && !order.asset_tx_hash && order.tx_status != \"failed\") {\n setTimeout(refresh, 5000)\n }\n\n if (order && order.tx_errors) {\n const newErrors = order.tx_errors?.split(\";;\") || []\n setErrors([\n \"There was an error. Re-sign the tx and try again.\",\n ...newErrors,\n ])\n }\n }, [])\n\n const handleConnect = (connectedWallet) => {\n setConnected(connectedWallet)\n }\n\n async function refresh() {\n console.log(\"refresh\")\n if (!order?.id || !activeOrder?.id) return null\n\n const resp = await axios.get(`/orders/${activeOrder?.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n const orderData = resp?.data\n\n const isDifferent = JSON.stringify(order) != JSON.stringify(orderData)\n\n if (isDifferent && orderData?.id) {\n setOrder(orderData)\n\n if (orderData.tx_hash != order.tx_hash) {\n setSuccess(\n \"Your transaction was successfully submitted\\n\\nIt is pending. The asset should be sent to you shortly\"\n )\n }\n\n if (orderData.asset_tx_hash || order.asset_tx_hash) {\n setSuccess(\"\")\n }\n\n if (orderData.tx_errors) {\n const newErrors = orderData.tx_errors?.split(\";;\") || []\n setSuccess(\"\")\n setErrors([\n \"There was an error. Re-sign the tx and try again.\",\n ...newErrors,\n ])\n }\n }\n\n if (!orderData.asset_tx_hash) {\n const delay = orderData.tx_hash ? 30000 : 10000\n setTimeout(refresh, delay)\n }\n }\n\n const handleMintClick = () => {\n setLoading(true)\n setLoadingText(\"Building TX ...\")\n\n const createTransaction = async () => {\n let paymentAddress = await connected.getAddress() // wallet address\n const userWallet = paymentAddress\n const priceAmount = parseInt(order.total)\n\n const deadPayment = [\n { unit: `${deadPolicy}.${deadName}`, quantity: priceAmount },\n ]\n\n let dummyNftsMeta = {\n TEST: {\n Test: \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\",\n Publisher:\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\",\n Twitter:\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\",\n },\n }\n\n let dummyMetadata = {\n 721: {\n 1234: dummyNftsMeta,\n },\n }\n\n const assetsValid = true\n\n let recipients = [\n {\n address: deadWallet,\n amount: \"0\",\n assets: deadPayment,\n },\n {\n address: storeWallet,\n amount: \"2\",\n },\n ]\n\n let utxos = null\n let netId = null\n let transaction = null\n\n if (assetsValid) {\n try {\n utxos = await connected.getUtxosHex()\n netId = await connected.getNetworkId()\n transaction = await connected.transaction({\n PaymentAddress: paymentAddress,\n recipients: recipients,\n metadata: dummyMetadata,\n addMetadata: false,\n utxosRaw: utxos,\n networkId: netId?.id || 1,\n ttl: 7200,\n })\n } catch (err) {\n let errMessage = err?.message\n if (errMessage == \"INPUTS_EXHAUSTED\")\n errMessage =\n \"UXTOs exhausted - You don't have enough funds or it's too many utxos.\\n\\nTry sending yourself all/most of your DEAD to your same wallet. That will put all the DEAD on one utxo. Then resign the tx and try again.\"\n console.error(err)\n setLoading(false)\n setErrors([\"Oh no! There was an error building the tx.\", errMessage])\n }\n } else {\n setLoading(false)\n setErrors([\"Oh no! There was an error building the tx.\"])\n }\n\n let witnessBuyer = null\n try {\n witnessBuyer = await connected.signTx(transaction, true)\n setLoadingText(\"Validating TX ...\")\n } catch {\n // if user clicks cancel or Nami throws an error\n setLoading(false)\n }\n\n if (witnessBuyer) {\n try {\n let resp = null\n resp = await axios.post(\n `/orders/process/${order.id}`,\n {\n transaction,\n witness_buyer: witnessBuyer,\n user_wallet: userWallet,\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n if (resp?.data?.success) {\n setSuccess(\n \"Confirmed ...\\n\\nYour transaction has been submitted to be processed.\"\n )\n setLoading(false)\n setErrors([])\n const newOrder = {\n ...order,\n tx_status: \"submitted\",\n witness_buyer: witnessBuyer,\n }\n setOrder(newOrder)\n\n // start polling for order status\n setTimeout(refresh, 5000)\n } else {\n console.log(resp?.data)\n const backendErrors = resp?.data?.errors || []\n setLoading(false)\n setErrors([\n \"Something went wrong and we couldn't create the transaction. Try again or contact the DRRS team to let them know.\",\n ...backendErrors,\n ])\n }\n } catch (err) {\n console.error(err)\n setLoading(false)\n setErrors([\n \"Oh no! Something went wrong. Try it again or contact the SGS team to let them know.\",\n err,\n ])\n }\n } else {\n console.error(witnessBuyer)\n setLoading(false)\n }\n }\n if (!loading) createTransaction()\n // send transaction, witnessBuyer, order, and user to backend\n }\n\n // console.log(\"success\", success)\n // console.log(\"hasPendingTx\", hasPendingTx)\n // console.log(\"orderCompleted\", orderCompleted)\n\n return (\n \n \n window.location.replace(\"/\")}\n />\n
\n \n \n \n \n \n \n \n \n {!connected && (\n \n \n {\n typewriter\n .callFunction(() => {\n console.log(\"started typing\")\n setTyping(true)\n })\n .typeString(\n walletLoading\n ? \"Connecting wallet ...\"\n : \"You must connect your wallet ...\"\n )\n .start()\n }}\n options={{\n delay: 35,\n }}\n />\n \n \n )}\n\n {connected && !activeOrder?.id && (\n \n \n {\n typewriter\n .callFunction(() => {\n setTyping(true)\n })\n .typeString(\n \"There was an issue creating your order\\n\\nContact support to let them know\"\n )\n .start()\n }}\n options={{\n delay: 35,\n }}\n />\n \n \n )}\n\n {connected && activeOrder?.id && (\n \n {errors && errors.length > 0 && (\n \n {errors?.map((error) => (\n \n {error}\n \n ))}\n \n )}\n\n {success && (\n \n \n \n \n \n )}\n\n {hasPendingTx && !success && (\n <>\n \n \n \n \n Back\n \n >\n )}\n\n {order && [null, \"errors\"].includes(order.tx_status) && (\n \n \n {`Open Order`}\n \n
\n \n {`${activeOrder?.nft?.name}\\n${parseInt(\n order.total\n )} ${deadName}`}\n \n\n {!walletLoading &&\n (!order.witness_buyer || order.tx_errors) && (\n \n {loading\n ? loadingText\n : order.tx_errors\n ? \"Re-sign Tx\"\n : \"Sign Tx\"}\n \n )}\n \n Back\n \n \n )}\n\n {orderCompleted && (\n \n \n {\n typewriter\n .typeString(\n `Your order has been confirmed\\n\\n${order?.nft?.name} was sent to your wallet ... `\n )\n .callFunction(() => {\n setTimeout(() => {\n setTyping(false)\n }, 500)\n })\n .start()\n }}\n options={{\n delay: 35,\n }}\n />\n \n\n {!typing && (\n \n \n {`Tx Hash: `}\n \n {order.tx_hash}\n \n \n \n {`Asset Sent Tx Hash: `}\n {order.asset_tx_hash ? (\n \n {order.asset_tx_hash}\n \n ) : (\n \"Asset Tx Pending\"\n )}\n \n \n {`Tx Submitted: ${txSubmittedText}`}\n \n \n Back\n \n \n )}\n \n )}\n \n )}\n \n \n \n )\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n color: \"#e0400f !important\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"4px solid #1c1c1c\",\n bg: \"#1c1c1c\",\n py: \"4px\",\n width: [\"100%\"],\n maxWidth: 400,\n cursor: \"pointer\",\n fontSize: \"20px\",\n userSelect: \"none\",\n display: \"block\",\n marginTop: 25,\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n \"&:hover\": {\n bg: \"#2f2f2f\",\n borderColor: \"#2f2f2f\",\n },\n}\n\nexport default DRRSStore\n","import React, { useEffect, useState } from \"react\"\nimport {\n ThemeProvider,\n Box,\n Grid,\n Image as Img,\n Paragraph,\n Link,\n} from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport Image1 from \"images/drrs-armory-interior.jpg\"\nimport Scramble from \"react-scramble\"\nimport Typewriter from \"typewriter-effect\"\nimport AudioPlayer from \"./AudioPlayer\"\n\nimport CC1 from \"images/cc1.jpg\"\nimport CC2 from \"images/cc2.jpg\"\nimport CC3 from \"images/cc3.jpg\"\nimport CC4 from \"images/cc4.jpg\"\nimport CC5 from \"images/cc5.jpg\"\nimport CC6 from \"images/cc6.jpg\"\n\nconst message = \"CONCLAVE JUMP NOTES — \"\n\nconst message2 =\n \"\\nEACH TIME YOU MINT 3 WEAPONS YOU RECEIVE 1 CRAFTING COMPONENT\"\n\nconst messages = [message, message2]\n\nconst images = [CC1, CC2, CC3, CC4, CC5, CC6]\n\nexport const DrrsWeaponsCC = (props) => {\n const [index, setIndex] = useState(0)\n\n const craftingComponemts = [\n \"Crafting_01.mp4\",\n \"Crafting_02.mp4\",\n \"Crafting_03.mp4\",\n \"Crafting_04.mp4\",\n \"Crafting_05.mp4\",\n \"Crafting_06.mp4\",\n ]\n\n useEffect(() => {\n setTimeout(() => {\n setIndex(1)\n }, 1500)\n }, [])\n\n const translations = [\n [\"50px 50px\", \"100px 100px\"],\n [\"-50px 50px\", \"0px 100px\"],\n [\"50px 0px\", \"-100px 100px\"],\n [\"-50px 0px\", \"100px -100px\"],\n [\"50px -50px\", \"0px -100px\"],\n [\"-50px -50px\", \"-100px -100px\"],\n ]\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n {index > 0 && (\n {\n typewriter\n .typeString(messages[0])\n .pauseFor(1500)\n .typeString(messages[1])\n .start()\n }}\n />\n )}\n \n \n \n\n \n {craftingComponemts.map((cc, index) => (\n \n \n \n ))}\n \n\n \n \n \n \n \n \n \n \n {/* \n \n \n \n */}\n \n\n \n \n \n )\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n color: \"#e0400f\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"3px solid #e0400f\",\n bg: \"rgba(0, 0, 0, 0.7)\",\n py: \"12px\",\n px: 25,\n mx: \"auto\",\n minWidth: \"200px\",\n cursor: \"pointer\",\n fontSize: \"20px\",\n userSelect: \"none\",\n display: \"inline-block\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginTop: \"25px\",\n fontFamily: '\"Electrolize\", system-ui, sans-serif !important',\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n transition: \"all 750ms\",\n \"&:hover\": {\n bg: \"rgba(0, 0, 0, 0.90)\",\n },\n}\n\nconst buttonStyles2 = {\n textAlign: \"center\",\n position: \"relative\",\n minHeight: \"60px\",\n color: \"#e0400f\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"3px solid #e0400f\",\n bg: \"rgba(0, 0, 0, 0.7)\",\n py: \"12px\",\n px: 15,\n mx: \"auto\",\n width: [\"80%\", 250],\n minWidth: [\"unset\", \"200px\"],\n cursor: \"pointer\",\n fontSize: \"18px\",\n userSelect: \"none\",\n display: \"grid\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginTop: \"25px\",\n fontFamily: '\"Electrolize\", system-ui, sans-serif !important',\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n transition: \"all 750ms\",\n \"&:hover\": {\n bg: \"rgba(0, 0, 0, 0.90)\",\n },\n}\n\nexport default DrrsWeaponsCC\n","import React, { useEffect, useState } from \"react\"\nimport {\n ThemeProvider,\n Box,\n Grid,\n Image as Img,\n Paragraph,\n Link,\n} from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport Image1 from \"images/rabbit-8.png\"\nimport SGSLogo from \"images/sgs-logo-trans.png\"\n\nexport const HomeDRRS = (props) => {\n const mints = JSON.parse(props.mints)\n const userMints = JSON.parse(props.userMints)\n\n const drrsMint = mints?.find((mint) => mint.name == \"DRRS\")\n const drrsUserMint = userMints?.find((uMint) => uMint.mint_id == drrsMint?.id)\n const isWl = drrsUserMint?.is_wl\n const showLink = props.showLink\n\n let message = \"\\nSupremes are coming ...\\n\\n\"\n // if (isWl) message += \"You're on the WL\"\n\n return (\n \n \n
\n \n \n {message}\n \n\n {showLink && (\n \n {`RABBIT SUPREMES`}\n \n )}\n \n \n \n \n \n {\"Powered by\\nSGS Minting\"}\n \n
\n \n \n \n \n \n )\n}\n\nexport default HomeDRRS\n","import React, { useEffect, useState } from \"react\"\nimport {\n ThemeProvider,\n Box,\n Grid,\n Image as Img,\n Paragraph,\n Link,\n} from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport Image1 from \"images/drrs-armory-interior.jpg\"\nimport Scramble from \"react-scramble\"\nimport Typewriter from \"typewriter-effect\"\nimport AudioPlayer from \"./AudioPlayer\"\nimport ConnectWallet from \"../ConnectWalletDrrs\"\n\nconst stren =\n \"WEAPON FOCUS | STR\\n\\\nWEAPON CLASS\\n\\\nBRUTE\\n\\\nRONIN\\n\\\nLIFELEECH\\n\\\nFANATIC\\n\\\nTEMPLAR\\n\\\nKENSAI\\n\\\nSAMURAI ...\"\n\nconst agil =\n \"\\n\\nWEAPON FOCUS | AGIL\\n\\\nWEAPON CLASS\\n\\\nCUTPURSE\\n\\\nOUTLAW\\n\\\nPHLEBOTOMIST\\n\\\nSTIMFREAK\\n\\\nYAMABUSHI\\n\\\nPRESDIGITATOR\\n\\\nMECHINJA ...\"\n\nconst wit =\n \"\\n\\nWEAPON FOCUS | WIT\\n\\\nWEAPON CLASS\\n\\\nNOVICE\\n\\\nDISCIPLE\\n\\\nVAMPYRE\\n\\\nFLAGELLANT\\n\\\nSHUKENJA\\n\\\nNEUROMANCER\\n\\\nSTREET SEER ...\"\n\nconst legendary =\n \"\\n\\nSPECIAL WEAPON CLASS\\nL3G3ND4RY\"\n\nconst crafted =\n \"\\n\\nSPECIAL WEAPON CLASS\\nCR4F73D\"\n\nconst messages = [stren, agil, wit, legendary, crafted]\n\nexport const HomeDrrsWeapons = ({ isWl, wlStart, publicStart }) => {\n const [connected, setConnected] = useState(null)\n const [hover, setHover] = useState(false)\n\n const isWlStart = new Date() >= new Date(wlStart)\n const isPublicStart = new Date() >= new Date(publicStart)\n let message = `THE MINT IS NOT ACTIVE YET\\n\\nMINT GOES LIVE APRIL 22nd\\n\\nWL: 10am PST | 1pm EST | 5pm UTC\\nPUBLIC: 1pm PST | 4pm EST | 8pm UTC`\n if (isWlStart)\n message = \"WL MINT IS ACTIVE\\n\\nPUBLIC: 1pm PST | 4pm EST | 8pm UTC\"\n if (isPublicStart) message = \"PUBLIC MINT IS OVER\"\n\n // # Mole Federation Armory Key: 8dc65bb6a57ef18b7e97a1ee379b5c0af003cb92f01c4c3910281bb6\n // # Dead Rabbit Depot Key: f60ee3ef108c483e03e4c59109e4438bed8d3d2138a6350a58fcf906\n const moleKey = \"8dc65bb6a57ef18b7e97a1ee379b5c0af003cb92f01c4c3910281bb6\"\n const depotKey = \"f60ee3ef108c483e03e4c59109e4438bed8d3d2138a6350a58fcf906\"\n\n const moleKeys =\n connected?.balance?.assets?.filter((nft) => nft.policy == moleKey) || []\n\n const depotKeys =\n connected?.balance?.assets?.filter((nft) => nft.policy == depotKey) || []\n\n const hasKeys = connected && (moleKeys?.length > 0 || depotKeys?.length > 0)\n\n if (connected && !hasKeys)\n message += \"\\n\\nWallet connected but no WL keys detected\"\n\n const showLink =\n (isWlStart && isWl) || (isWlStart && hasKeys) || isPublicStart\n\n return (\n \n \n \n \n \n \n \n \n \n \n {message}\n \n \n \n \n \n \n {isWlStart || isPublicStart ? (\n \n \n \n \n \n ) : (\n \n {hover && (\n \n {`Nice try.\\nDiscover the secret on Mint Day.`}\n \n )}\n {\n setHover(true)\n }}\n onMouseLeave={() => {\n setHover(false)\n }}\n >\n \n \n \n )}\n \n \n {/* \n \n \n \n \n \n {\n typewriter\n .typeString(index == 0 ? \"LOADING ...\" : \"\")\n .pauseFor(index == 0 ? 3000 : 0)\n .deleteAll()\n .typeString(messages[0])\n .pauseFor(2500)\n .typeString(messages[1])\n .pauseFor(2500)\n .typeString(messages[2])\n .pauseFor(2500)\n .typeString(messages[3])\n .pauseFor(1500)\n .typeString(messages[4])\n .pauseFor(1500)\n .typeString(\"\\n\\nINITIATE RELOAD ...\")\n .pauseFor(2500)\n .callFunction(() => {\n setIndex(index + 1)\n })\n .start()\n }}\n />\n \n \n */}\n \n \n \n )\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n minHeight: \"60px\",\n color: \"#e0400f\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"3px solid #e0400f\",\n bg: \"rgba(0, 0, 0, 0.7)\",\n py: \"12px\",\n px: 15,\n mx: \"auto\",\n width: [\"80%\", 300],\n minWidth: [\"unset\", \"200px\"],\n cursor: \"pointer\",\n fontSize: [\"18px\", \"22px\"],\n userSelect: \"none\",\n display: \"grid\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginTop: \"25px\",\n fontFamily: '\"Electrolize\", system-ui, sans-serif !important',\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n transition: \"all 750ms\",\n \"&:hover\": {\n bg: \"rgba(0, 0, 0, 0.90)\",\n },\n}\n\nexport default HomeDrrsWeapons\n","import React, { useEffect, useState } from \"react\"\nimport {\n ThemeProvider,\n Box,\n Grid,\n Image as Img,\n Paragraph,\n Select,\n} from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport Image1 from \"images/rabbit-9.png\"\nimport SGSLogo from \"images/sgs-logo-trans.png\"\n\nimport axios from \"axios\"\nimport ConnectWallet from \"../ConnectWallet\"\n\nimport MintingTips from \"../MintingTips\"\n// import projectMetadata from \"../metadata/drrs-metadata.json\"\nconst projectMetadata = {}\n\n\nconst soldOutGifs = [\n \"https://c.tenor.com/sKg02SlxaoQAAAAC/red-goobler-solar-opposites.gif\",\n \"https://c.tenor.com/0hNIHb95iDMAAAAC/no-more-rebel-wilson.gif\",\n \"https://c.tenor.com/WejWsIlk3_cAAAAd/thats-enough-okay-jason-bateman.gif\",\n \"https://c.tenor.com/hKsgsuQ5N8MAAAAC/cymbals-monkey-brain.gif\",\n \"https://c.tenor.com/98QJc8KJsMkAAAAC/gimme-no-more.gif\",\n \"https://c.tenor.com/N2ibf5aQj2gAAAAC/dragrace-bitch-you-done.gif\",\n \"https://c.tenor.com/3DGYbblZUasAAAAd/youre-done-done-son.gif\",\n \"https://c.tenor.com/ig55vSh4xHwAAAAC/throw-dog.gif\",\n \"https://c.tenor.com/VJz7OLQ8DkQAAAAM/heather-dubrow-shannon-beador.gif\",\n \"https://c.tenor.com/MPsGPP25j70AAAAC/good-day-fez.gif\",\n \"https://c.tenor.com/J3mNIbj6A4wAAAAd/empty-shelves-john-travolta.gif\",\n \"https://c.tenor.com/UbGii9oGosoAAAAC/money-wallet.gif\",\n \"https://c.tenor.com/nd2wxsrTXYEAAAAd/level-up-next-level.gif\",\n \"https://c.tenor.com/WS9TNssQALkAAAAd/roughneck-rabbits-roughneck.gif\",\n \"https://c.tenor.com/Q6BU4RC5zQsAAAAd/sold-out-what.gif\",\n \"https://c.tenor.com/TK5hcjkNr_cAAAAC/gordon-ramsey-you-are-done.gif\",\n \"https://c.tenor.com/MC7K9jo7V0YAAAAC/survivor-jeff-probst.gif\",\n \"https://c.tenor.com/qYrv7LSWFFIAAAAC/finn-adventure-time.gif\",\n \"https://c.tenor.com/gKcLWQAVD8sAAAAC/done-annoyed.gif\",\n \"https://c.tenor.com/jhJp2A-K5HwAAAAd/gollum-leave-now.gif\",\n \"https://c.tenor.com/TbGZDsVxx0wAAAAC/i-dont-need-you-anymore-kyle-broflovski.gif\",\n \"https://c.tenor.com/VGmgyUMNP88AAAAC/toy-story-woody.gif\",\n \"https://c.tenor.com/FqdTy04G6m4AAAAC/i-dont-need-you-anymore-satan.gif\",\n \"https://c.tenor.com/JLpNtvfer7wAAAAM/you-need-to-go-saturday-night-live.gif\",\n \"https://c.tenor.com/JWTW52xCLycAAAAd/i-think-you-should-leave-before-i-call-the-police-eric-cartman.gif\",\n \"https://c.tenor.com/6aZotD1Q0SkAAAAC/tigger-sad.gif\",\n \"https://c.tenor.com/ipXfNs5DnFIAAAAd/get-the-hell-out-of-here-sung-won-cho.gif\",\n \"https://c.tenor.com/0Ar7aEuIPT4AAAAC/get-the-fudge-out-eric-cartman.gif\",\n \"https://c.tenor.com/Wl0r-dwasLYAAAAC/sad-the-simpsons.gif\",\n \"https://c.tenor.com/L2T_fqCrWyMAAAAC/theres-no-more-scared.gif\",\n \"https://c.tenor.com/dlJSiLUJNmsAAAAC/math-calculate.gif\",\n \"https://c.tenor.com/18sqCWkrm9oAAAAC/confused-wtf.gif\",\n \"https://c.tenor.com/3yyytNGYC7cAAAAC/empty-tank.gif\",\n \"https://c.tenor.com/q-E5wj1K6OYAAAAC/monsters-inc-sully.gif\",\n \"https://c.tenor.com/65QP-lH9krMAAAAC/no-money-donald-duck.gif\",\n \"https://c.tenor.com/lQNf6C6HDYQAAAAC/angry-kid.gif\",\n \"https://c.tenor.com/sGzHvagmSugAAAAC/staredown-forreal.gif\",\n]\n\nexport const MintDRRS = (props) => {\n const blockfrostApiKey = props.apiKey\n const userId = props.user_id\n const mintId = props.mint_id\n const orders = props.orders ? JSON.parse(props.orders) : []\n const csrf = props.csrf\n const mintCount = props.mintCount\n const isProduction = props.is_production\n const mint = props.mint ? JSON.parse(props.mint) : null\n const publicStart = new Date(mint?.token_start)\n const sendToNami = true\n\n const isPreMint = new Date() < publicStart\n\n let activeOrder = null\n const sortedOrders = orders?.sort((a, b) => (a.id > b.id ? -1 : 1))\n const lastOrder = sortedOrders?.[0]\n if (lastOrder && !lastOrder?.confirmed_on_blockchain) {\n activeOrder = lastOrder\n }\n\n const tokenPrice = 1\n\n const hasWallet = !!connected\n\n const walletAddress = isProduction\n ? \"addr1q9hyxr0wemghp3mlu8c7t23vfk8470t65ax6yuq3fe6d9ne7qy0gupkc78tmxslltp2wyz2lxusg5j3l34vmwv7fs6gqtr5y3y\"\n : \"addr1qyrke3hmuw29c56c8f0vmg0vzarcht70m6a2788lyp7et22mlcy7y7703za4cy7zh789jnjffstkgsgk5vhr5ks6vj5qrsvlkh\"\n\n // set dev vs prod attributes\n const policyId = isProduction\n ? \"de2340edc45629456bf695200e8ea32f948a653b21ada10bc6f0c554\"\n : \"544e179570e18d2b1bc39a752bd3cb693840b0612a88a48557176a34\"\n const policyScript = isProduction\n ? \"8201828200581cd61d3656a176f8541db88d17af1806b096aa12bb4d68c619b046dc3482051a074326b8\"\n : \"8201828200581cd61d3656a176f8541db88d17af1806b096aa12bb4d68c619b046dc3482051a072b8151\"\n\n // prod policy id - de2340edc45629456bf695200e8ea32f948a653b21ada10bc6f0c554\n // prod script - 8201828200581cd61d3656a176f8541db88d17af1806b096aa12bb4d68c619b046dc3482051a074326b8\n\n console.log(`Patment wallet - ${walletAddress}`)\n console.log(`Policy - ${policyId}`)\n // console.log(`Send to Nami - ${sendToNami}`)\n // console.log(nftMetadata)\n\n const successfulOrders = orders?.filter((order) => order.tx_hash)\n\n console.log(\"loaded\")\n\n if (!blockfrostApiKey) return null\n if (!userId) return null\n\n const [connected, setConnected] = useState(null)\n const [loading, setLoading] = useState(false)\n const [walletLoading, setWalletLoading] = useState(false)\n const [loadingText, setLoadingText] = useState(\"\")\n const [quantity, setQuanity] = useState(1)\n const [order, setOrder] = useState(activeOrder)\n const [successOrders, setSucessOrders] = useState(successfulOrders)\n const [soldOutGif, setSoldOutGif] = useState(null)\n const [errors, setErrors] = useState(null)\n const [success, setSuccess] = useState(null)\n const [tokenAmount, setTokenAmount] = useState(mintCount)\n\n const sortedSuccessOrders = successOrders?.sort((a, b) =>\n a.id > b.id ? -1 : 1\n )\n const hasPendingTx =\n order && !order?.confirmed_on_blockchain && order?.tx_hash\n\n const orderCreated = order?.created_at ? new Date(order?.created_at) : null\n const allowResetOrder = orderCreated?.setMinutes(\n orderCreated?.getMinutes() + 30\n )\n\n let orderOptions = []\n // orderOptions = [1, 2]\n orderOptions = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30]\n\n // if (isPreMint) {\n // orderOptions = [1, 2]\n // } else {\n // orderOptions = [1, 2, 3, 4, 5]\n // }\n\n const total = quantity * tokenPrice\n const priceText = `${quantity} x ${tokenPrice} = ${total} ADA`\n\n useEffect(() => {\n setSoldOutGif(soldOutGifs[Math.floor(Math.random() * soldOutGifs.length)])\n\n if (\n order &&\n !order.confirmed_on_blockchain &&\n order.tx_status != \"failed\"\n ) {\n setTimeout(refresh, 5000)\n }\n\n if (order && order.tx_errors) {\n const newErrors = order.tx_errors?.split(\";;\") || []\n setErrors([\n \"Oh no! Something went wrong and the tx couldn't be created.\",\n ...newErrors,\n ])\n }\n }, [])\n\n const handleConnect = (connectedWallet) => {\n setConnected(connectedWallet)\n }\n\n const handleOrderClick = async () => {\n setLoading(true)\n try {\n const resp = await axios.post(\n \"/orders/mint-drrs\",\n {\n order: {\n quantity: quantity,\n user_id: userId,\n total: total,\n notes: `DRRS - ${priceText}`,\n order_type: \"DRRS\",\n mint_id: mintId,\n address: connected?.address,\n },\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n setLoading(false)\n\n if (resp?.data?.id) {\n setOrder(resp?.data)\n setTokenAmount(tokenAmount - quantity)\n setErrors(null)\n } else {\n setErrors(resp?.data)\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n const handleOrderDelete = async (o) => {\n setLoading(true)\n try {\n const resp = await axios.delete(`/orders/${o.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n setLoading(false)\n\n if (resp?.data?.deleted == true) {\n setOrder(null)\n window?.location?.reload()\n } else {\n setErrors([resp?.data?.error])\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n async function refresh() {\n const resp = await axios.get(`/orders/${order.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n const orderData = resp?.data\n\n const isDifferent = JSON.stringify(order) != JSON.stringify(orderData)\n\n if (isDifferent) {\n setOrder(orderData)\n\n if (orderData.tx_hash != order.tx_hash) {\n const newOrder = {\n ...order,\n tx_hash: orderData.tx_hash,\n tx_created_at: new Date(),\n }\n setSucessOrders([...successOrders, newOrder])\n setSuccess(\n \"Rad!\\n\\nYour transaction was successfully submitted to the blockchain.\\n\\nYou can find the tx below. It is pending but should show up in your wallet in a few minutes\"\n )\n }\n\n if (orderData.confirmed_on_blockchain != order.confirmed_on_blockchain) {\n const index = successOrders.findIndex(\n (order) => order.id == orderData.id\n )\n let newOrders = [...successOrders]\n if (index >= 0) {\n newOrders[index] = orderData\n } else {\n newOrders = [...successOrders, orderData]\n }\n\n setSucessOrders(newOrders?.sort((a, b) => (a.id > b.id ? -1 : 1)))\n\n setSuccess(\n \"Awesome!\\nYour transaction is confirmed and on the blockchain. You can mint again!\"\n )\n }\n\n if (orderData.tx_errors) {\n const newErrors = orderData.tx_errors?.split(\";;\") || []\n setSuccess(\"\")\n setErrors([\n \"Oh no! Something went wrong and the tx couldn't be created.\",\n ...newErrors,\n ])\n }\n }\n\n if (!orderData.confirmed_on_blockchain) {\n const delay = orderData.tx_hash ? 60000 : 10000\n setTimeout(refresh, delay)\n }\n }\n\n const handleMintClick = () => {\n setLoading(true)\n setLoadingText(\"Building TX ...\")\n\n const createTransaction = async () => {\n let paymentAddress = await connected.getAddress() // wallet address\n let paymentAmount = String(order.total)\n const paymentWallet = walletAddress\n const userWallet = paymentAddress\n\n let recipients = [\n {\n address: paymentWallet,\n amount: paymentAmount,\n }, // Seller Wallet, NFT price 2ADA\n {\n address: userWallet,\n amount: \"0\",\n mintedAssets: order?.nfts?.map((nft) => {\n return {\n assetName: nft,\n quantity: \"1\",\n policyId: policyId,\n policyScript: policyScript,\n }\n }),\n }, // NFTs to be minted\n ] // list of recipients\n\n let nftsMeta = {}\n let dummyNftsMeta = {}\n\n order?.nfts?.forEach((nft, index) => {\n let dummyMeta = JSON.parse(JSON.stringify(projectMetadata[nft]))\n Object.keys(dummyMeta.Attributes).forEach((attribute) => {\n dummyMeta.Attributes[attribute] =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n })\n dummyMeta.Publisher =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.Twitter =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n nftsMeta[nft] = projectMetadata[nft]\n dummyNftsMeta[nft] = dummyMeta\n })\n\n let metadata = {\n 721: {\n [policyId]: nftsMeta,\n },\n }\n\n let dummyMetadata = {\n 721: {\n [policyId]: dummyNftsMeta,\n },\n }\n\n const metadataHash = connected.hashMetadata(metadata)\n\n let utxos = null\n let netId = null\n let transaction = null\n\n try {\n utxos = await connected.getUtxosHex()\n netId = await connected.getNetworkId()\n transaction = await connected.transaction({\n PaymentAddress: paymentAddress,\n recipients: recipients,\n metadata: dummyMetadata,\n metadataHash: metadataHash,\n addMetadata: false,\n utxosRaw: utxos,\n networkId: netId?.id || 1,\n ttl: 7200,\n multiSig: true,\n })\n } catch (err) {\n let errMessage = err?.message\n if (errMessage == \"INPUTS_EXHAUSTED\")\n errMessage =\n \"INPUTS_EXHAUSTED - You don't have enough funds or utxos available\"\n console.error(err)\n setLoading(false)\n setErrors([\"Oh no! There was an error building the tx.\", errMessage])\n }\n\n let witnessBuyer = null\n try {\n witnessBuyer = await connected.signTx(transaction, true)\n setLoadingText(\"Validating TX ...\")\n } catch {\n // if user clicks cancel or Nami throws an error\n setLoading(false)\n }\n\n if (witnessBuyer) {\n try {\n let resp = null\n if (sendToNami) {\n resp = await axios.post(\n `/orders/process/${order.id}`,\n {\n transaction,\n witness_buyer: witnessBuyer,\n user_wallet: userWallet,\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n } else {\n resp = { data: { success: true } }\n }\n\n if (resp?.data?.success) {\n setSuccess(\n \"Awesome!\\nYour transaction has been submitted to be processed. This page will update automatically.\"\n )\n setLoading(false)\n setErrors([])\n const newOrder = {\n ...order,\n tx_status: \"submitted\",\n witness_buyer: witnessBuyer,\n }\n setOrder(newOrder)\n\n // start polling for order status\n setTimeout(refresh, 5000)\n } else {\n console.log(resp?.data)\n const backendErrors = resp?.data?.errors || []\n setLoading(false)\n setErrors([\n \"Oh no! Something went wrong and Nami couldn't create the transaction. Cancel the order and try again. Or contact the SGS team to let them know.\",\n ...backendErrors,\n ])\n }\n } catch (err) {\n console.error(err)\n setLoading(false)\n setErrors([\n \"Oh no! Something went wrong. Try it again or contact the SGS team to let them know.\",\n err,\n ])\n }\n } else {\n console.error(witnessBuyer)\n setLoading(false)\n }\n }\n if (!loading) createTransaction()\n // send transaction, witnessBuyer, order, and user to backend\n }\n\n return (\n \n \n
\n \n \n {errors?.map((error) => (\n \n {error}\n \n ))}\n\n {success && (\n \n {\" \"}\n \n {success}\n \n {order.tx_status == \"confirmed\" && (\n window?.location?.reload()}\n >\n {\"Mint Again\"}\n \n )}\n \n )}\n\n {hasPendingTx && !success && (\n <>\n \n {`You have a pending tx/order. Wait or handle that order first before creating another.\\n\\nOur system checks the blockchain every couple of minutes.`}\n \n \n >\n )}\n\n {!order && !success && !hasPendingTx && (\n \n {connected && (\n \n {tokenAmount && tokenAmount > 0 ? (\n \n \n {`There are ${tokenAmount} tokens available\\nThey are ${tokenPrice} ADA each\\n\\n`}\n \n\n \n\n \n {`How many do you want?`}\n \n \n \n {priceText}\n \n \n {loading ? \"Creating Order ...\" : \"Submit\"}\n \n \n ) : (\n \n \n {`ALL THE TOKENS HAVE BEEN RESERVED!\\n\\nSOLD OUT!`}\n \n \n setSoldOutGif(\n soldOutGifs[\n Math.floor(Math.random() * soldOutGifs.length)\n ]\n )\n }\n >\n {\"Hit Me\"}\n \n
\n \n )}\n \n )}\n \n )}\n\n {order && [null, \"errors\"].includes(order.tx_status) && (\n \n \n\n \n {`Active Order\\nQuantity: ${order.quantity}\\nTotal: ${Number(\n order.total\n )}\\nNotes: ${order.notes}`}\n \n {/* {!hasWallet && (\n \n You need Nami or Eternl to mint\n \n )} */}\n {connected &&\n !walletLoading &&\n (!order.witness_buyer || order.tx_errors) && (\n \n {loading\n ? loadingText\n : order.tx_errors\n ? \"Re-sign Tx\"\n : \"Sign Tx\"}\n \n )}\n {new Date() > allowResetOrder && !order.tx_hash && (\n {\n // handleNamiSuccess(\"123456abc\")\n handleOrderDelete(order)\n }}\n >\n Cancel\n \n )}\n \n )}\n\n {successOrders?.length > 0 && (\n \n \n {`Successful Orders\\n--------------------`}\n \n {sortedSuccessOrders?.map((successfulOrder, index) => {\n const txSubmitted = new Date(successfulOrder.tx_created_at)\n const txSubmittedCopy = new Date(successfulOrder.tx_created_at)\n\n const allowResetTime = txSubmittedCopy.setHours(\n txSubmitted.getHours() + 3\n )\n const allowResetTx =\n new Date() > allowResetTime &&\n successfulOrder.tx_hash &&\n !successfulOrder.confirmed_on_blockchain\n\n const txSubmittedText = `${txSubmitted.toLocaleDateString()} - ${txSubmitted.toLocaleTimeString()}`\n let txStatus = successfulOrder.confirmed_on_blockchain\n ? \"Confirmed\"\n : \"Pending\"\n if (allowResetTx) txStatus = \"Failed\"\n return (\n \n \n {`Quantity: ${successfulOrder.quantity}`}\n \n \n {`Total: ${Number(successfulOrder.total)}`}\n \n {txStatus == \"Confirmed\" && (\n \n {`NFTs: ${successfulOrder.nfts.join(\", \")}`}\n \n )}\n\n \n {`Notes: ${successfulOrder.notes}`}\n \n \n {`Tx ${txStatus}`}\n {txStatus == \"Failed\" && (\n <>\n {` - `}\n {\n if (\n window?.confirm(\n \"Are you sure you want to reset the TX hash? This should only be done for broken or failed TXs. Only do this if it's been more than 2 hours since you submitted the tx\"\n ) &&\n window.location\n ) {\n window.location.href = `/reset-order-tx/${successfulOrder.id}`\n }\n }}\n >\n Reset Order Tx\n \n {` - Only do this if it's been more than 3 hrs since you submitted the tx`}\n >\n )}\n \n \n {`Tx Hash: `}\n \n {successfulOrder.tx_hash}\n \n \n \n {`Tx Submitted: ${txSubmittedText}`}\n \n \n )\n })}\n \n {`--------------------`}\n \n \n )}\n \n \n \n \n \n {\"Powered by\\nSGS Minting\"}\n \n
\n \n \n \n \n \n )\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n top: 10,\n color: \"#f25100 !important\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"4px solid #1c1c1c\",\n bg: \"#1c1c1c\",\n py: \"12px\",\n width: [\"100%\", 300],\n borderRadius: \"8px\",\n cursor: \"pointer\",\n fontSize: \"24px\",\n userSelect: \"none\",\n display: \"block\",\n marginTop: \"25px\",\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n \"&:hover\": {\n bg: \"#2f2f2f\",\n borderColor: \"#2f2f2f\",\n },\n}\n\nexport default MintDRRS\n","import React, { useEffect, useState } from \"react\"\nimport {\n ThemeProvider,\n Box,\n Grid,\n Image as Img,\n Paragraph,\n Select,\n} from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport Image1 from \"images/rabbit-9.png\"\nimport SGSLogo from \"images/sgs-logo-trans.png\"\n\nimport axios from \"axios\"\nimport ConnectWallet from \"../ConnectWallet\"\n\nimport MintingTips from \"../MintingTips\"\n// import projectMetadata from \"../metadata/drrs-metadata-depot.json\"\n// import projectMetadata from \"../metadata/drrs-metadata-mole.json\"\nimport projectMetadata from \"../metadata/drrs-metadata-weapon.json\"\n// const projectMetadata = {}\n\nexport const MintDRRSReserved = (props) => {\n const blockfrostApiKey = props.apiKey\n const userId = props.user_id\n const mintId = props.mint_id\n const orders = props.orders ? JSON.parse(props.orders) : []\n const csrf = props.csrf\n const mintCount = props.mintCount\n const mint = props.mint ? JSON.parse(props.mint) : null\n const sendToNami = true\n\n let activeOrder = null\n const sortedOrders = orders?.sort((a, b) => (a.id > b.id ? -1 : 1))\n const lastOrder = sortedOrders?.[0]\n if (lastOrder && !lastOrder?.confirmed_on_blockchain) {\n activeOrder = lastOrder\n }\n\n const successfulOrders = orders?.filter((order) => order.tx_hash)\n\n // Mole HQ CodeCard\n // {\n // id: 'fc681d152d6d2b01b783520a4ba59b27951b8337056b87b3ee604ee1',\n // script: '8201828200581cd61d3656a176f8541db88d17af1806b096aa12bb4d68c619b046dc3482051a08810c92',\n // paymentKeyHash: 'd61d3656a176f8541db88d17af1806b096aa12bb4d68c619b046dc34',\n // ttl: 142675090\n // }\n\n // Kismet SecScreen Key\n // {\n // id: '15cc6a303cf04f5976da5ee57e68b935a57764d420ea242848355537',\n // script: '8201828200581cd61d3656a176f8541db88d17af1806b096aa12bb4d68c619b046dc3482051a08810cc7',\n // paymentKeyHash: 'd61d3656a176f8541db88d17af1806b096aa12bb4d68c619b046dc34',\n // ttl: 142675143\n // }\n\n // set dev vs prod attributes\n const policyId = \"9335141aeacd6a707b5768d47183e60bc0bb810b2262786dfb1fa92a\"\n const policyScript =\n \"8201828200581cd61d3656a176f8541db88d17af1806b096aa12bb4d68c619b046dc3482051a091ee0ef\"\n\n console.log(`Policy - ${policyId}`)\n\n if (!blockfrostApiKey) return null\n if (!userId) return null\n\n const [connected, setConnected] = useState(null)\n const [loading, setLoading] = useState(false)\n const [walletLoading, setWalletLoading] = useState(false)\n const [loadingText, setLoadingText] = useState(\"\")\n const [quantity, setQuanity] = useState(10)\n const [order, setOrder] = useState(activeOrder)\n const [successOrders, setSucessOrders] = useState(successfulOrders)\n const [soldOutGif, setSoldOutGif] = useState(null)\n const [errors, setErrors] = useState(null)\n const [success, setSuccess] = useState(null)\n const [tokenAmount, setTokenAmount] = useState(mintCount)\n\n const sortedSuccessOrders = successOrders?.sort((a, b) =>\n a.id > b.id ? -1 : 1\n )\n const hasPendingTx =\n order && !order?.confirmed_on_blockchain && order?.tx_hash\n\n const orderCreated = order?.created_at ? new Date(order?.created_at) : null\n const allowResetOrder = orderCreated?.setMinutes(\n orderCreated?.getMinutes() + 30\n )\n\n let orderOptions = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 45, 50]\n\n const total = 0\n const priceText = `${quantity} = ${total} ADA`\n\n useEffect(() => {\n if (\n order &&\n !order.confirmed_on_blockchain &&\n order.tx_status != \"failed\"\n ) {\n setTimeout(refresh, 5000)\n }\n\n if (order && order.tx_errors) {\n const newErrors = order.tx_errors?.split(\";;\") || []\n setErrors([\n \"Oh no! Something went wrong and the tx couldn't be created.\",\n ...newErrors,\n ])\n }\n }, [])\n\n const handleConnect = (connectedWallet) => {\n setConnected(connectedWallet)\n }\n\n const handleOrderClick = async () => {\n setLoading(true)\n try {\n const resp = await axios.post(\n \"/orders/mint-drrs-reserved\",\n {\n order: {\n quantity: quantity,\n user_id: userId,\n total: total,\n notes: `RESERVED`,\n order_type: \"WEAPONS\",\n mint_id: mintId,\n address: connected?.address,\n },\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n setLoading(false)\n\n if (resp?.data?.id) {\n setOrder(resp?.data)\n setTokenAmount(tokenAmount - quantity)\n setErrors(null)\n } else {\n setErrors(resp?.data)\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n const handleOrderDelete = async (o) => {\n setLoading(true)\n try {\n const resp = await axios.delete(`/orders/${o.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n setLoading(false)\n\n if (resp?.data?.deleted == true) {\n setOrder(null)\n window?.location?.reload()\n } else {\n setErrors([resp?.data?.error])\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n async function refresh() {\n const resp = await axios.get(`/orders/${order.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n const orderData = resp?.data\n\n const isDifferent = JSON.stringify(order) != JSON.stringify(orderData)\n\n if (isDifferent) {\n setOrder(orderData)\n\n if (orderData.tx_hash != order.tx_hash) {\n const newOrder = {\n ...order,\n tx_hash: orderData.tx_hash,\n tx_created_at: new Date(),\n }\n setSucessOrders([...successOrders, newOrder])\n setSuccess(\n \"Rad!\\n\\nYour transaction was successfully submitted to the blockchain.\\n\\nYou can find the tx below. It is pending but should show up in your wallet in a few minutes\"\n )\n }\n\n if (orderData.confirmed_on_blockchain != order.confirmed_on_blockchain) {\n const index = successOrders.findIndex(\n (order) => order.id == orderData.id\n )\n let newOrders = [...successOrders]\n if (index >= 0) {\n newOrders[index] = orderData\n } else {\n newOrders = [...successOrders, orderData]\n }\n\n setSucessOrders(newOrders?.sort((a, b) => (a.id > b.id ? -1 : 1)))\n\n setSuccess(\n \"Awesome!\\nYour transaction is confirmed and on the blockchain. You can mint again!\"\n )\n }\n\n if (orderData.tx_errors) {\n const newErrors = orderData.tx_errors?.split(\";;\") || []\n setSuccess(\"\")\n setErrors([\n \"Oh no! Something went wrong and the tx couldn't be created.\",\n ...newErrors,\n ])\n }\n }\n\n if (!orderData.confirmed_on_blockchain) {\n const delay = orderData.tx_hash ? 60000 : 10000\n setTimeout(refresh, delay)\n }\n }\n\n const handleMintClick = () => {\n setLoading(true)\n setLoadingText(\"Building TX ...\")\n\n const createTransaction = async () => {\n let userWallet = await connected.getAddress() // wallet address\n\n const addressToSend =\n \"addr1q8dza5dkatvy98j2k5atnvww8549gfr4jl9ru4yeu4kkyrh8mz04z9shndfpdmypwmeaecydhdra72tkmz74kugdxzrsx2mlup\"\n // const storeWallet =\n // \"addr1qxq9ez9sugu7njdw676mhx02verz8gzhx3vyxnkjwquyjyhmz9evk87kkvczhkux3jmnhrmns3kfxucw0fad2eqqsndssdm0g3\"\n\n // We need 1000 of each of these.\n\n // MOLE HQ CODECARD\n // KISMET SECSCREEN KEY\n\n // 500 of each will be going in the store, 500 of each going here:\n\n let recipients = [\n {\n address: addressToSend,\n amount: \"0\",\n mintedAssets: order?.nfts?.map((nft) => {\n return {\n assetName: nft,\n quantity: \"1\",\n policyId: policyId,\n policyScript: policyScript,\n }\n }),\n }, // NFTs to be minted\n ] // list of recipients\n\n let nftsMeta = {}\n let dummyNftsMeta = {}\n\n order?.nfts?.forEach((nft, index) => {\n let dummyMeta = JSON.parse(JSON.stringify(projectMetadata[nft]))\n dummyMeta.image =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.name =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.mediaType =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.Project =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.Twitter =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.Publisher =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.description = [\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\",\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\",\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\",\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\",\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\",\n ]\n Object.keys(dummyMeta.Attributes).forEach((attribute) => {\n dummyMeta.Attributes[attribute] =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbits\"\n })\n if (dummyMeta.files?.[0]?.name) {\n dummyMeta.files[0].mediaType =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.files[0].name =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.files[0].src =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n }\n nftsMeta[nft] = projectMetadata[nft]\n dummyNftsMeta[nft] = dummyMeta\n })\n\n let metadata = {\n 721: {\n [policyId]: nftsMeta,\n },\n }\n\n let dummyMetadata = {\n 721: {\n [policyId]: dummyNftsMeta,\n },\n }\n\n console.log('nftsMeta', nftsMeta),\n console.log('dummyNftsMeta', dummyNftsMeta)\n debugger;\n\n const metadataHash = connected.hashMetadata(metadata)\n\n let utxos = null\n let netId = null\n let transaction = null\n\n try {\n utxos = await connected.getUtxosHex()\n netId = await connected.getNetworkId()\n transaction = await connected.transaction({\n PaymentAddress: userWallet,\n recipients: recipients,\n metadata: dummyMetadata,\n metadataHash: metadataHash,\n addMetadata: false,\n utxosRaw: utxos,\n networkId: netId?.id || 1,\n ttl: 7200,\n multiSig: true,\n })\n } catch (err) {\n let errMessage = err?.message\n if (errMessage == \"INPUTS_EXHAUSTED\")\n errMessage =\n \"INPUTS_EXHAUSTED - You don't have enough funds or utxos available\"\n console.error(err)\n setLoading(false)\n setErrors([\"Oh no! There was an error building the tx.\", errMessage])\n }\n\n let witnessBuyer = null\n try {\n witnessBuyer = await connected.signTx(transaction, true)\n setLoadingText(\"Validating TX ...\")\n } catch {\n // if user clicks cancel or Nami throws an error\n setLoading(false)\n }\n\n if (witnessBuyer) {\n try {\n let resp = null\n resp = await axios.post(\n `/orders/process/${order.id}`,\n {\n transaction,\n witness_buyer: witnessBuyer,\n user_wallet: userWallet,\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n if (resp?.data?.success) {\n setSuccess(\n \"Awesome!\\nYour transaction has been submitted to be processed. This page will update automatically.\"\n )\n setLoading(false)\n setErrors([])\n const newOrder = {\n ...order,\n tx_status: \"submitted\",\n witness_buyer: witnessBuyer,\n }\n setOrder(newOrder)\n\n // start polling for order status\n setTimeout(refresh, 5000)\n } else {\n console.log(resp?.data)\n const backendErrors = resp?.data?.errors || []\n setLoading(false)\n setErrors([\n \"Oh no! Something went wrong and Nami couldn't create the transaction. Cancel the order and try again. Or contact the SGS team to let them know.\",\n ...backendErrors,\n ])\n }\n } catch (err) {\n console.error(err)\n setLoading(false)\n setErrors([\n \"Oh no! Something went wrong. Try it again or contact the SGS team to let them know.\",\n err,\n ])\n }\n } else {\n console.error(witnessBuyer)\n setLoading(false)\n }\n }\n if (!loading) createTransaction()\n // send transaction, witnessBuyer, order, and user to backend\n }\n\n console.log('order', order)\n\n return (\n \n \n
\n \n \n {errors?.map((error) => (\n \n {error}\n \n ))}\n\n {success && (\n \n {\" \"}\n \n {success}\n \n {order.tx_status == \"confirmed\" && (\n window?.location?.reload()}\n >\n {\"Mint Again\"}\n \n )}\n \n )}\n\n {!order && !success && (\n \n {connected && (\n \n {tokenAmount && tokenAmount > 0 ? (\n \n \n {`There are ${tokenAmount} tokens available\\n`}\n \n\n \n\n \n {`How many do you want?`}\n \n \n \n {priceText}\n \n \n {loading ? \"Creating Order ...\" : \"Submit\"}\n \n \n ) : (\n \n \n {`ALL THE TOKENS HAVE BEEN RESERVED!\\n\\nSOLD OUT!`}\n \n\n
\n \n )}\n \n )}\n \n )}\n\n {order && connected && !order.tx_hash && !success && (\n \n \n\n \n {`Active Order\\nQuantity: ${order.quantity}\\nTotal: ${Number(\n order.total\n )}\\nNotes: ${order.notes}`}\n \n\n {connected &&\n !walletLoading &&\n (!order.witness_buyer || order.tx_errors) && (\n \n {loading\n ? loadingText\n : order.tx_errors\n ? \"Re-sign Tx\"\n : \"Sign Tx\"}\n \n )}\n {new Date() > allowResetOrder && !order.tx_hash && (\n {\n // handleNamiSuccess(\"123456abc\")\n handleOrderDelete(order)\n }}\n >\n Cancel\n \n )}\n \n )}\n\n {successOrders?.length > 0 && (\n \n \n {`Successful Orders\\n--------------------`}\n \n {sortedSuccessOrders?.map((successfulOrder, index) => {\n const txSubmitted = new Date(successfulOrder.tx_created_at)\n const txSubmittedCopy = new Date(successfulOrder.tx_created_at)\n\n const allowResetTime = txSubmittedCopy.setHours(\n txSubmitted.getHours() + 3\n )\n const allowResetTx =\n new Date() > allowResetTime &&\n successfulOrder.tx_hash &&\n !successfulOrder.confirmed_on_blockchain\n\n const txSubmittedText = `${txSubmitted.toLocaleDateString()} - ${txSubmitted.toLocaleTimeString()}`\n let txStatus = successfulOrder.confirmed_on_blockchain\n ? \"Confirmed\"\n : \"Pending\"\n if (allowResetTx) txStatus = \"Failed\"\n return (\n \n \n {`Quantity: ${successfulOrder.quantity}`}\n \n \n {`Total: ${Number(successfulOrder.total)}`}\n \n {txStatus == \"Confirmed\" && (\n \n {`NFTs: ${successfulOrder.nfts.join(\", \")}`}\n \n )}\n\n \n {`Notes: ${successfulOrder.notes}`}\n \n \n {`Tx ${txStatus}`}\n {txStatus == \"Failed\" && (\n <>\n {` - `}\n {\n if (\n window?.confirm(\n \"Are you sure you want to reset the TX hash? This should only be done for broken or failed TXs. Only do this if it's been more than 2 hours since you submitted the tx\"\n ) &&\n window.location\n ) {\n window.location.href = `/reset-order-tx/${successfulOrder.id}`\n }\n }}\n >\n Reset Order Tx\n \n {` - Only do this if it's been more than 3 hrs since you submitted the tx`}\n >\n )}\n \n \n {`Tx Hash: `}\n \n {successfulOrder.tx_hash}\n \n \n \n {`Tx Submitted: ${txSubmittedText}`}\n \n \n )\n })}\n \n {`--------------------`}\n \n \n )}\n \n \n \n \n \n {\"Powered by\\nSGS Minting\"}\n \n
\n \n \n \n \n \n )\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n top: 10,\n color: \"#f25100 !important\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"4px solid #1c1c1c\",\n bg: \"#1c1c1c\",\n py: \"12px\",\n width: [\"100%\", 300],\n borderRadius: \"8px\",\n cursor: \"pointer\",\n fontSize: \"24px\",\n userSelect: \"none\",\n display: \"block\",\n marginTop: \"25px\",\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n \"&:hover\": {\n bg: \"#2f2f2f\",\n borderColor: \"#2f2f2f\",\n },\n}\n\nexport default MintDRRSReserved\n","import React, { useEffect, useState } from \"react\"\nimport {\n ThemeProvider,\n Box,\n Grid,\n Image as Img,\n Paragraph,\n Select,\n} from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport Image1 from \"images/rabbit-9.png\"\nimport SGSLogo from \"images/sgs-logo-trans.png\"\n\nimport axios from \"axios\"\nimport ConnectWallet from \"../ConnectWallet\"\n\nimport MintingTips from \"../MintingTips\"\n// import projectMetadata from \"../metadata/cryptoheadz-meta.json\"\n// import projectMetadata from \"../metadata/drmz-meta.json\"\nconst projectMetadata = {}\n\nexport const MintDRRSReserved = (props) => {\n const blockfrostApiKey = props.apiKey\n const userId = props.user_id\n const mintId = props.mint_id\n const orders = props.orders ? JSON.parse(props.orders) : []\n const csrf = props.csrf\n const mintCount = props.mintCount\n const mint = props.mint ? JSON.parse(props.mint) : null\n const sendToNami = true\n\n let activeOrder = null\n const sortedOrders = orders?.sort((a, b) => (a.id > b.id ? -1 : 1))\n const lastOrder = sortedOrders?.[0]\n if (lastOrder && !lastOrder?.confirmed_on_blockchain) {\n activeOrder = lastOrder\n }\n\n const successfulOrders = orders?.filter((order) => order.tx_hash)\n\n // DRMZ\n // {\n // \"id\": \"4721ad102e9ae3f052d98068fe05756debf17e06afa5bc1c01000da7\",\n // \"script\": \"8201828200581ce69fec68f5145a1ef74018908fb9a4d99f86b48b98aab9fc1e49769082051a08abebf7\",\n // \"paymentKeyHash\": \"e69fec68f5145a1ef74018908fb9a4d99f86b48b98aab9fc1e497690\",\n // \"ttl\": 145484791\n // }\n\n // Crypto Headz\n // {\n // \"id\": \"a701def2536a4dfcb6e0b3c49baef20c581d309a7a3c01907b102f56\",\n // \"script\": \"8201828200581ce69fec68f5145a1ef74018908fb9a4d99f86b48b98aab9fc1e49769082051a08abec10\",\n // \"paymentKeyHash\": \"e69fec68f5145a1ef74018908fb9a4d99f86b48b98aab9fc1e497690\",\n // \"ttl\": 145484816\n // }\n\n const policyId = \"4721ad102e9ae3f052d98068fe05756debf17e06afa5bc1c01000da7\"\n const policyScript =\n \"8201828200581ce69fec68f5145a1ef74018908fb9a4d99f86b48b98aab9fc1e49769082051a08abebf7\"\n\n console.log(`Policy - ${policyId}`)\n\n if (!blockfrostApiKey) return null\n if (!userId) return null\n\n const [connected, setConnected] = useState(null)\n const [loading, setLoading] = useState(false)\n const [walletLoading, setWalletLoading] = useState(false)\n const [loadingText, setLoadingText] = useState(\"\")\n const [quantity, setQuanity] = useState(1)\n const [order, setOrder] = useState(activeOrder)\n const [successOrders, setSucessOrders] = useState(successfulOrders)\n const [soldOutGif, setSoldOutGif] = useState(null)\n const [errors, setErrors] = useState(null)\n const [success, setSuccess] = useState(null)\n const [tokenAmount, setTokenAmount] = useState(mintCount)\n\n const sortedSuccessOrders = successOrders?.sort((a, b) =>\n a.id > b.id ? -1 : 1\n )\n const hasPendingTx =\n order && !order?.confirmed_on_blockchain && order?.tx_hash\n\n const orderCreated = order?.created_at ? new Date(order?.created_at) : null\n const allowResetOrder = orderCreated?.setMinutes(\n orderCreated?.getMinutes() + 30\n )\n\n let orderOptions = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 25, 30, 35, 40, 45, 50]\n\n const total = 0\n const priceText = `${quantity} = ${total} ADA`\n\n useEffect(() => {\n if (\n order &&\n !order.confirmed_on_blockchain &&\n order.tx_status != \"failed\"\n ) {\n setTimeout(refresh, 5000)\n }\n\n if (order && order.tx_errors) {\n const newErrors = order.tx_errors?.split(\";;\") || []\n setErrors([\n \"Oh no! Something went wrong and the tx couldn't be created.\",\n ...newErrors,\n ])\n }\n }, [])\n\n const handleConnect = (connectedWallet) => {\n setConnected(connectedWallet)\n }\n\n const handleOrderClick = async () => {\n setLoading(true)\n try {\n const resp = await axios.post(\n \"/orders/mint-custom-reserved\",\n {\n order: {\n quantity: quantity,\n user_id: userId,\n total: total,\n notes: `CUSTOM`,\n order_type: \"CUSTOM\",\n mint_id: mintId,\n address: connected?.address,\n },\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n setLoading(false)\n\n if (resp?.data?.id) {\n setOrder(resp?.data)\n setTokenAmount(tokenAmount - quantity)\n setErrors(null)\n } else {\n setErrors(resp?.data)\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n const handleOrderDelete = async (o) => {\n setLoading(true)\n try {\n const resp = await axios.delete(`/orders/${o.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n setLoading(false)\n\n if (resp?.data?.deleted == true) {\n setOrder(null)\n window?.location?.reload()\n } else {\n setErrors([resp?.data?.error])\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n async function refresh() {\n const resp = await axios.get(`/orders/${order.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n const orderData = resp?.data\n\n const isDifferent = JSON.stringify(order) != JSON.stringify(orderData)\n\n if (isDifferent) {\n setOrder(orderData)\n\n if (orderData.tx_hash != order.tx_hash) {\n const newOrder = {\n ...order,\n tx_hash: orderData.tx_hash,\n tx_created_at: new Date(),\n }\n setSucessOrders([...successOrders, newOrder])\n setSuccess(\n \"Rad!\\n\\nYour transaction was successfully submitted to the blockchain.\\n\\nYou can find the tx below. It is pending but should show up in your wallet in a few minutes\"\n )\n }\n\n if (orderData.confirmed_on_blockchain != order.confirmed_on_blockchain) {\n const index = successOrders.findIndex(\n (order) => order.id == orderData.id\n )\n let newOrders = [...successOrders]\n if (index >= 0) {\n newOrders[index] = orderData\n } else {\n newOrders = [...successOrders, orderData]\n }\n\n setSucessOrders(newOrders?.sort((a, b) => (a.id > b.id ? -1 : 1)))\n\n setSuccess(\n \"Awesome!\\nYour transaction is confirmed and on the blockchain. You can mint again!\"\n )\n }\n\n if (orderData.tx_errors) {\n const newErrors = orderData.tx_errors?.split(\";;\") || []\n setSuccess(\"\")\n setErrors([\n \"Oh no! Something went wrong and the tx couldn't be created.\",\n ...newErrors,\n ])\n }\n }\n\n if (!orderData.confirmed_on_blockchain) {\n const delay = orderData.tx_hash ? 60000 : 10000\n setTimeout(refresh, delay)\n }\n }\n\n const handleMintClick = () => {\n setLoading(true)\n setLoadingText(\"Building TX ...\")\n\n const createTransaction = async () => {\n let userWallet = await connected.getAddress() // wallet address\n\n const wallet =\n \"addr1qx9a3gyy6gwamwrwp8r3up2ey6rd50uhjwcr8zmgngxjdl8eke7eylgpw4x84frdg2fgh9juydtsevr6cxchuam7qtjqmv64t5\"\n\n let recipients = [\n {\n address: wallet,\n amount: \"0\",\n mintedAssets: order?.nfts?.map((nft) => {\n return {\n assetName: nft,\n quantity: \"1\",\n policyId: policyId,\n policyScript: policyScript,\n }\n }),\n }, // NFTs to be minted\n ] // list of recipients\n\n let nftsMeta = {}\n\n order?.nfts?.forEach((nft) => {\n nftsMeta[nft] = projectMetadata[nft]\n })\n\n let metadata = {\n 721: {\n [policyId]: nftsMeta,\n },\n }\n\n let utxos = null\n let netId = null\n let transaction = null\n\n try {\n utxos = await connected.getUtxosHex()\n netId = await connected.getNetworkId()\n transaction = await connected.transaction({\n PaymentAddress: userWallet,\n recipients: recipients,\n metadata: metadata,\n addMetadata: true,\n utxosRaw: utxos,\n networkId: netId?.id || 1,\n ttl: 7200,\n multiSig: true,\n })\n } catch (err) {\n let errMessage = err?.message\n if (errMessage == \"INPUTS_EXHAUSTED\")\n errMessage =\n \"INPUTS_EXHAUSTED - You don't have enough funds or utxos available\"\n console.error(err)\n setLoading(false)\n setErrors([\"Oh no! There was an error building the tx.\", errMessage])\n }\n\n let witnessBuyer = null\n try {\n witnessBuyer = await connected.signTx(transaction, true)\n setLoadingText(\"Validating TX ...\")\n } catch {\n // if user clicks cancel or Nami throws an error\n setLoading(false)\n }\n\n if (witnessBuyer) {\n try {\n let resp = null\n resp = await axios.post(\n `/orders/process/${order.id}`,\n {\n transaction,\n witness_buyer: witnessBuyer,\n user_wallet: userWallet,\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n if (resp?.data?.success) {\n setSuccess(\n \"Awesome!\\nYour transaction has been submitted to be processed. This page will update automatically.\"\n )\n setLoading(false)\n setErrors([])\n const newOrder = {\n ...order,\n tx_status: \"submitted\",\n witness_buyer: witnessBuyer,\n }\n setOrder(newOrder)\n\n // start polling for order status\n setTimeout(refresh, 5000)\n } else {\n console.log(resp?.data)\n const backendErrors = resp?.data?.errors || []\n setLoading(false)\n setErrors([\n \"Oh no! Something went wrong and Nami couldn't create the transaction. Cancel the order and try again. Or contact the SGS team to let them know.\",\n ...backendErrors,\n ])\n }\n } catch (err) {\n console.error(err)\n setLoading(false)\n setErrors([\n \"Oh no! Something went wrong. Try it again or contact the SGS team to let them know.\",\n err,\n ])\n }\n } else {\n console.error(witnessBuyer)\n setLoading(false)\n }\n }\n if (!loading) createTransaction()\n // send transaction, witnessBuyer, order, and user to backend\n }\n\n return (\n \n \n
\n \n \n {errors?.map((error) => (\n \n {error}\n \n ))}\n\n {success && (\n \n {\" \"}\n \n {success}\n \n {order.tx_status == \"confirmed\" && (\n window?.location?.reload()}\n >\n {\"Mint Again\"}\n \n )}\n \n )}\n\n {!order && !success && (\n \n {connected && (\n \n {tokenAmount && tokenAmount > 0 ? (\n \n \n {`There are ${tokenAmount} tokens available\\n`}\n \n\n \n\n \n {`How many do you want?`}\n \n \n \n {priceText}\n \n \n {loading ? \"Creating Order ...\" : \"Submit\"}\n \n \n ) : (\n \n \n {`ALL THE TOKENS HAVE BEEN RESERVED!\\n\\nSOLD OUT!`}\n \n\n
\n \n )}\n \n )}\n \n )}\n\n {order && connected && !order.tx_hash && !success && (\n \n \n\n \n {`Active Order\\nQuantity: ${order.quantity}\\nTotal: ${Number(\n order.total\n )}\\nNotes: ${order.notes}`}\n \n\n {connected &&\n !walletLoading &&\n (!order.witness_buyer || order.tx_errors) && (\n \n {loading\n ? loadingText\n : order.tx_errors\n ? \"Re-sign Tx\"\n : \"Sign Tx\"}\n \n )}\n {new Date() > allowResetOrder && !order.tx_hash && (\n {\n // handleNamiSuccess(\"123456abc\")\n handleOrderDelete(order)\n }}\n >\n Cancel\n \n )}\n \n )}\n\n {successOrders?.length > 0 && (\n \n \n {`Successful Orders\\n--------------------`}\n \n {sortedSuccessOrders?.map((successfulOrder, index) => {\n const txSubmitted = new Date(successfulOrder.tx_created_at)\n const txSubmittedCopy = new Date(successfulOrder.tx_created_at)\n\n const allowResetTime = txSubmittedCopy.setHours(\n txSubmitted.getHours() + 3\n )\n const allowResetTx =\n new Date() > allowResetTime &&\n successfulOrder.tx_hash &&\n !successfulOrder.confirmed_on_blockchain\n\n const txSubmittedText = `${txSubmitted.toLocaleDateString()} - ${txSubmitted.toLocaleTimeString()}`\n let txStatus = successfulOrder.confirmed_on_blockchain\n ? \"Confirmed\"\n : \"Pending\"\n if (allowResetTx) txStatus = \"Failed\"\n return (\n \n \n {`Quantity: ${successfulOrder.quantity}`}\n \n \n {`Total: ${Number(successfulOrder.total)}`}\n \n {txStatus == \"Confirmed\" && (\n \n {`NFTs: ${successfulOrder.nfts.join(\", \")}`}\n \n )}\n\n \n {`Notes: ${successfulOrder.notes}`}\n \n \n {`Tx ${txStatus}`}\n {txStatus == \"Failed\" && (\n <>\n {` - `}\n {\n if (\n window?.confirm(\n \"Are you sure you want to reset the TX hash? This should only be done for broken or failed TXs. Only do this if it's been more than 2 hours since you submitted the tx\"\n ) &&\n window.location\n ) {\n window.location.href = `/reset-order-tx/${successfulOrder.id}`\n }\n }}\n >\n Reset Order Tx\n \n {` - Only do this if it's been more than 3 hrs since you submitted the tx`}\n >\n )}\n \n \n {`Tx Hash: `}\n \n {successfulOrder.tx_hash}\n \n \n \n {`Tx Submitted: ${txSubmittedText}`}\n \n \n )\n })}\n \n {`--------------------`}\n \n \n )}\n \n \n \n \n \n {\"Powered by\\nSGS Minting\"}\n \n
\n \n \n \n \n \n )\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n top: 10,\n color: \"#f25100 !important\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"4px solid #1c1c1c\",\n bg: \"#1c1c1c\",\n py: \"12px\",\n width: [\"100%\", 300],\n borderRadius: \"8px\",\n cursor: \"pointer\",\n fontSize: \"24px\",\n userSelect: \"none\",\n display: \"block\",\n marginTop: \"25px\",\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n \"&:hover\": {\n bg: \"#2f2f2f\",\n borderColor: \"#2f2f2f\",\n },\n}\n\nexport default MintDRRSReserved\n","import React, { useEffect, useState } from \"react\"\nimport {\n ThemeProvider,\n Box,\n Grid,\n Image as Img,\n Paragraph,\n Select,\n} from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport Image1 from \"images/rabbit-9.png\"\nimport SGSLogo from \"images/sgs-logo-trans.png\"\n\nimport axios from \"axios\"\nimport ConnectWallet from \"../ConnectWallet\"\n\nimport MintingTips from \"../MintingTips\"\n// import projectMetadata from \"../metadata/drrs-metadata.json\"\nconst projectMetadata = {}\n\n// import supremeMetadata from \"../metadata/drrs-metadata-supreme-dev.json\"\n// import supremeMetadata from \"../metadata/drs-metadata.json\"\nconst supremeMetadata = {}\n\n// enable dummy attributes below\n// enable real ticket instead of HTP\n\nexport const MintDRRSSupreme = (props) => {\n const blockfrostApiKey = props.apiKey\n const userId = props.user_id\n const mintId = props.mint_id\n const orders = props.orders ? JSON.parse(props.orders) : []\n const csrf = props.csrf\n const mintCount = props.mintCount\n const isProduction = props.is_production\n const usedPasses = props.nft_passes\n\n let activeOrder = null\n const sortedOrders = orders?.sort((a, b) => (a.id > b.id ? -1 : 1))\n const lastOrder = sortedOrders?.[0]\n if (lastOrder && !lastOrder?.confirmed_on_blockchain) {\n activeOrder = lastOrder\n }\n\n const tradeWallet =\n \"addr1qxyl8jrhf4sj8dzsz4ytrks2xp8ldhxpu2mscju9epzvk9yaq56l7ncnayt495593p8ed2c4hxwcvqv4qhmxpwu27n5seuw76s\"\n\n const ticketWallet =\n \"addr1qyygvqk9uk52cdchmvdrsd53tjymjrcpnrhwl2j66h64valeke7eylgpw4x84frdg2fgh9juydtsevr6cxchuam7qtjqhvcy6t\"\n\n // set dev vs prod attributes\n // const policyId = isProduction\n // ? \"544e179570e18d2b1bc39a752bd3cb693840b0612a88a48557176a34\"\n // : \"544e179570e18d2b1bc39a752bd3cb693840b0612a88a48557176a34\"\n // const policyScript = isProduction\n // ? \"8201828200581cd61d3656a176f8541db88d17af1806b096aa12bb4d68c619b046dc3482051a072b8151\"\n // : \"8201828200581cd61d3656a176f8541db88d17af1806b096aa12bb4d68c619b046dc3482051a072b8151\"\n\n // real policy and script\n const policyId = isProduction\n ? \"85c6a29c993863d020ccce88c8a5dfc114392da6f5949a3cd462216c\"\n : \"544e179570e18d2b1bc39a752bd3cb693840b0612a88a48557176a34\"\n const policyScript = isProduction\n ? \"8201828200581cd61d3656a176f8541db88d17af1806b096aa12bb4d68c619b046dc3482051a07d6e04f\"\n : \"8201828200581cd61d3656a176f8541db88d17af1806b096aa12bb4d68c619b046dc3482051a072b8151\"\n\n // real\n const drrsPolicy = \"de2340edc45629456bf695200e8ea32f948a653b21ada10bc6f0c554\"\n const ticketPolicy =\n \"6e7bd53adc62886cb404a7368c54c7940f5838e0a456512df04e96e7\"\n\n // test\n // const ticketPolicy =\n // \"9f5fd88debd4c78b9fef94610db89f8a547679b057cfb03a2ef44c6b\"\n\n const successfulOrders = orders?.filter((order) => order.tx_hash)\n\n if (!blockfrostApiKey) return null\n if (!userId) return null\n\n const [connected, setConnected] = useState(null)\n const [loading, setLoading] = useState(false)\n const [walletLoading, setWalletLoading] = useState(false)\n const [loadingText, setLoadingText] = useState(\"\")\n const [quantity, setQuanity] = useState(1)\n const [order, setOrder] = useState(activeOrder)\n const [successOrders, setSucessOrders] = useState(successfulOrders)\n const [errors, setErrors] = useState(null)\n const [success, setSuccess] = useState(null)\n const [tokenAmount, setTokenAmount] = useState(mintCount)\n\n const [selectedRabbits, setSelectedRabbits] = useState([])\n const [selectedTicket, setSelectedTicket] = useState(null)\n\n const sortedSuccessOrders = successOrders?.sort((a, b) =>\n a.id > b.id ? -1 : 1\n )\n const hasPendingTx =\n order && !order?.confirmed_on_blockchain && order?.tx_hash\n\n const orderCreated = order?.created_at ? new Date(order?.created_at) : null\n const allowResetOrder = orderCreated?.setMinutes(\n orderCreated?.getMinutes() + 30\n )\n\n let priceText = \"No ticket\"\n if (selectedRabbits.length) priceText += ` + ${selectedRabbits.join(\" + \")}`\n\n // tickets policy - 6e7bd53adc62886cb404a7368c54c7940f5838e0a456512df04e96e7\n const allTickets = connected?.balance?.assets?.filter(\n (nft) => nft.policy == ticketPolicy\n )\n const tickets =\n allTickets?.filter((nft) => !usedPasses.includes(nft.name)) || []\n\n // drrs policy - de2340edc45629456bf695200e8ea32f948a653b21ada10bc6f0c554\n const rabbits = connected?.balance?.assets?.filter(\n (nft) => nft.policy == drrsPolicy\n )\n // const rabbits =\n // allRabbits?.filter((nft) => !usedPasses.includes(nft.name)) || []\n\n const hasRabbits = rabbits?.length >= 2\n\n useEffect(() => {\n if (\n order &&\n !order.confirmed_on_blockchain &&\n order.tx_status != \"failed\"\n ) {\n setTimeout(refresh, 5000)\n }\n\n if (order && order.tx_errors) {\n const newErrors = order.tx_errors?.split(\";;\") || []\n setErrors([\n \"Oh no! Something went wrong and the tx couldn't be created. Re-sign the tx and try again.\",\n ...newErrors,\n ])\n }\n }, [])\n\n // useEffect(() => {\n // localStorage.setItem(\"selectedTicket\", selectedTicket)\n // localStorage.setItem(\"selectedRabbits\", selectedRabbits.join(\"|\"))\n // }, [selectedTicket, selectedRabbits])\n\n const handleConnect = (connectedWallet) => {\n setConnected(connectedWallet)\n\n // const prevSelectedTicket = localStorage.getItem(\"selectedTicket\")\n // const selectedRabbits = localStorage.getItem(\"selectedRabbits\").split(\"|\")\n\n // const assets =\n // connectedWallet?.balance?.assets?.map((asset) => asset.name) || []\n // const hasTicket =\n // assets.includes(prevSelectedTicket) && !usedPasses.includes(rabbit)\n // if (hasTicket) {\n // setSelectedTicket(prevSelectedTicket)\n // }\n\n // const hasSelectedRabbits = selectedRabbits.filter(\n // (rabbit) => assets.includes(rabbit) && !usedPasses.includes(rabbit)\n // )\n // if (hasSelectedRabbits.length) {\n // setSelectedRabbits(hasSelectedRabbits)\n // }\n\n // debugger\n }\n\n const handleOrderClick = async () => {\n setLoading(true)\n const passes = [...selectedRabbits]\n try {\n const resp = await axios.post(\n \"/orders/mint-drrs-supreme\",\n {\n order: {\n quantity: quantity,\n user_id: userId,\n total: 0,\n notes: `DRRS Supreme - ${priceText}`,\n order_type: \"SUPREME\",\n mint_id: mintId,\n address: connected?.address,\n passes: passes?.join(\"|\"),\n },\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n setLoading(false)\n\n if (resp?.data?.id) {\n setOrder(resp?.data)\n setTokenAmount(tokenAmount - quantity)\n setErrors(null)\n } else {\n setErrors(resp?.data)\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n const handleOrderDelete = async (o) => {\n setLoading(true)\n try {\n const resp = await axios.delete(`/orders/${o.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n setLoading(false)\n\n if (resp?.data?.deleted == true) {\n setOrder(null)\n window?.location?.reload()\n } else {\n setErrors([resp?.data?.error])\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n async function refresh() {\n const resp = await axios.get(`/orders/${order.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n const orderData = resp?.data\n\n const isDifferent = JSON.stringify(order) != JSON.stringify(orderData)\n\n if (isDifferent) {\n setOrder(orderData)\n\n if (orderData.tx_hash != order.tx_hash) {\n const newOrder = {\n ...order,\n tx_hash: orderData.tx_hash,\n tx_created_at: new Date(),\n }\n setSucessOrders([...successOrders, newOrder])\n setSuccess(\n \"Rad!\\n\\nYour transaction was successfully submitted to the blockchain.\\n\\nYou can find the tx below. It is pending but should show up in your wallet in a few minutes\"\n )\n }\n\n if (orderData.confirmed_on_blockchain != order.confirmed_on_blockchain) {\n const index = successOrders.findIndex(\n (order) => order.id == orderData.id\n )\n let newOrders = [...successOrders]\n if (index >= 0) {\n newOrders[index] = orderData\n } else {\n newOrders = [...successOrders, orderData]\n }\n\n setSucessOrders(newOrders?.sort((a, b) => (a.id > b.id ? -1 : 1)))\n\n setSuccess(\n \"Awesome!\\n\\nYour transaction is confirmed and on the blockchain. You can mint again!\"\n )\n }\n\n if (orderData.tx_errors) {\n const newErrors = orderData.tx_errors?.split(\";;\") || []\n setSuccess(\"\")\n setErrors([\n \"Oh no! Something went wrong and the tx couldn't be created. Re-sign the tx and try again.\",\n ...newErrors,\n ])\n }\n }\n\n if (!orderData.confirmed_on_blockchain) {\n const delay = orderData.tx_hash ? 60000 : 10000\n setTimeout(refresh, delay)\n }\n }\n\n const handleMintClick = () => {\n setLoading(true)\n setLoadingText(\"Building TX ...\")\n\n const createTransaction = async () => {\n let paymentAddress = await connected.getAddress() // wallet address\n const userWallet = paymentAddress\n\n const passes = order.access_nfts || []\n let assets = []\n passes.forEach((pass) => {\n const asset = connected?.balance?.assets?.find(\n (item) => item.name == pass\n )\n if (asset) {\n if (asset.policy == drrsPolicy) {\n assets.push({ unit: `${asset.policy}.${asset.name}`, quantity: 1 })\n }\n }\n })\n\n const rabbits = assets.filter((asset) =>\n asset?.unit?.includes(drrsPolicy)\n )\n const assetsValid = rabbits.length == 2\n\n let recipients = [\n {\n address: tradeWallet,\n amount: \"0\",\n assets: assets,\n },\n {\n address: userWallet,\n amount: \"0\",\n mintedAssets: order?.nfts?.map((nft) => {\n return {\n assetName: nft,\n quantity: \"1\",\n policyId: policyId,\n policyScript: policyScript,\n }\n }),\n },\n ]\n\n let nftsMeta = {}\n let dummyNftsMeta = {}\n\n order?.nfts?.forEach((nft, index) => {\n let dummyMeta = JSON.parse(JSON.stringify(supremeMetadata[nft]))\n Object.keys(dummyMeta.Attributes).forEach((attribute) => {\n dummyMeta.Attributes[attribute] =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabb\"\n })\n dummyMeta.name =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabb\"\n dummyMeta.image =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabb\"\n dummyMeta.mediaType =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabb\"\n dummyMeta.description = [\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabb\",\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabb\",\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabb\",\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabb\",\n ]\n dummyMeta.Publisher =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabb\"\n dummyMeta.Twitter =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabb\"\n\n nftsMeta[nft] = supremeMetadata[nft]\n dummyNftsMeta[nft] = dummyMeta\n })\n\n let metadata = {\n 721: {\n [policyId]: nftsMeta,\n },\n }\n\n let dummyMetadata = {\n 721: {\n [policyId]: dummyNftsMeta,\n },\n }\n\n const metadataHash = connected.hashMetadata(metadata)\n\n let utxos = null\n let netId = null\n let transaction = null\n\n if (assetsValid) {\n try {\n utxos = await connected.getUtxosHex()\n netId = await connected.getNetworkId()\n transaction = await connected.transaction({\n PaymentAddress: paymentAddress,\n recipients: recipients,\n metadata: dummyMetadata,\n metadataHash: metadataHash,\n addMetadata: false,\n utxosRaw: utxos,\n networkId: netId?.id || 1,\n ttl: 7200,\n multiSig: true,\n })\n } catch (err) {\n let errMessage = err?.message\n if (errMessage == \"INPUTS_EXHAUSTED\")\n errMessage =\n \"INPUTS_EXHAUSTED - You don't have enough funds or utxos available\"\n console.error(err)\n setLoading(false)\n setErrors([\"Oh no! There was an error building the tx.\", errMessage])\n }\n } else {\n setLoading(false)\n setErrors([\n \"Oh no! There was an error building the tx. You need 2 rabbits and 1 ticket in your wallet to claim a Supreme\",\n ])\n }\n\n let witnessBuyer = null\n try {\n witnessBuyer = await connected.signTx(transaction, true)\n setLoadingText(\"Validating TX ...\")\n } catch {\n // if user clicks cancel or Nami throws an error\n setLoading(false)\n }\n\n if (witnessBuyer) {\n try {\n let resp = null\n resp = await axios.post(\n `/orders/process/${order.id}`,\n {\n transaction,\n witness_buyer: witnessBuyer,\n user_wallet: userWallet,\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n if (resp?.data?.success) {\n setSuccess(\n \"Awesome!\\n\\nYour transaction has been submitted to be processed. This page will update automatically.\"\n )\n setLoading(false)\n setErrors([])\n const newOrder = {\n ...order,\n tx_status: \"submitted\",\n witness_buyer: witnessBuyer,\n }\n setOrder(newOrder)\n\n // start polling for order status\n setTimeout(refresh, 5000)\n } else {\n console.log(resp?.data)\n const backendErrors = resp?.data?.errors || []\n setLoading(false)\n setErrors([\n \"Oh no! Something went wrong and Nami couldn't create the transaction. Cancel the order and try again. Or contact the SGS team to let them know.\",\n ...backendErrors,\n ])\n }\n } catch (err) {\n console.error(err)\n setLoading(false)\n setErrors([\n \"Oh no! Something went wrong. Try it again or contact the SGS team to let them know.\",\n err,\n ])\n }\n } else {\n console.error(witnessBuyer)\n setLoading(false)\n }\n }\n if (!loading) createTransaction()\n // send transaction, witnessBuyer, order, and user to backend\n }\n\n return (\n \n \n
\n \n \n {errors?.map((error) => (\n \n {error}\n \n ))}\n\n {success && (\n \n {\" \"}\n \n {success}\n \n {order.tx_status == \"confirmed\" && (\n window?.location?.reload()}\n >\n {\"Mint Again\"}\n \n )}\n \n )}\n\n {hasPendingTx && !success && (\n <>\n \n {`You have a pending tx/order. Wait or handle that order first before creating another.\\n\\nOur system checks the blockchain every couple of minutes.`}\n \n \n >\n )}\n\n {!order && !success && !hasPendingTx && (\n \n {connected && hasRabbits && (\n \n \n {\n \n {/* \n {`Select the ticket you want to use`}\n \n \n\n */}\n \n }\n\n \n \n {`Select the rabbits you wish to sacrifice`}\n \n \n {rabbits.map((rabbit) => {\n const ipfs = projectMetadata[rabbit?.name]\n const ipfsHash = ipfs.image.replace(\"ipfs://\", \"\")\n const imageUrl = `https://infura-ipfs.io/ipfs/${ipfsHash}`\n return (\n {\n const newRabbits = [...selectedRabbits]\n if (selectedRabbits.includes(rabbit.name)) {\n // remove rabbit\n const index = newRabbits.indexOf(\n (name) => name == rabbit.name\n )\n newRabbits.splice(index, 1)\n } else if (selectedRabbits.length < 2) {\n // add rabbit\n newRabbits.push(rabbit.name)\n }\n setSelectedRabbits(newRabbits)\n }}\n sx={{\n cursor: \"pointer\",\n color: selectedRabbits.includes(rabbit.name)\n ? \"white\"\n : \"#707070\",\n \"&:hover\": { color: \"white\" },\n }}\n >\n {rabbit?.name}\n
\n \n )\n })}\n \n \n\n {priceText && (\n \n {`Selected:\\n${priceText}`}\n \n )}\n\n {selectedRabbits.length == 2 && (\n \n {loading ? \"Creating Order ...\" : \"Submit\"}\n \n )}\n \n \n )}\n {connected && !hasRabbits && (\n \n {`You must have 1 Dead Rabbit Supreme Ticket and 2 Dead Rabbits to burn`}\n \n )}\n \n )}\n\n {connected && order && [null, \"errors\"].includes(order.tx_status) && (\n \n \n\n \n {`Active Order\\n${order.notes}`}\n \n {connected &&\n !walletLoading &&\n (!order.witness_buyer || order.tx_errors) && (\n \n {loading\n ? loadingText\n : order.tx_errors\n ? \"Re-sign Tx\"\n : \"Sign Tx\"}\n \n )}\n {new Date() > allowResetOrder && !order.tx_hash && (\n {\n // handleNamiSuccess(\"123456abc\")\n handleOrderDelete(order)\n }}\n >\n Cancel\n \n )}\n \n )}\n\n {successOrders?.length > 0 && (\n \n \n {`Successful Orders\\n--------------------`}\n \n {sortedSuccessOrders?.map((successfulOrder, index) => {\n const txSubmitted = new Date(successfulOrder.tx_created_at)\n const txSubmittedCopy = new Date(successfulOrder.tx_created_at)\n\n const allowResetTime = txSubmittedCopy.setHours(\n txSubmitted.getHours() + 3\n )\n const allowResetTx =\n new Date() > allowResetTime &&\n successfulOrder.tx_hash &&\n !successfulOrder.confirmed_on_blockchain\n\n const txSubmittedText = `${txSubmitted.toLocaleDateString()} - ${txSubmitted.toLocaleTimeString()}`\n let txStatus = successfulOrder.confirmed_on_blockchain\n ? \"Confirmed\"\n : \"Pending\"\n if (allowResetTx) txStatus = \"Failed\"\n return (\n \n \n {`Quantity: ${successfulOrder.quantity}`}\n \n {txStatus == \"Confirmed\" && (\n \n {`NFTs: ${successfulOrder.nfts.join(\", \")}`}\n \n )}\n\n \n {`Notes: ${successfulOrder.notes}`}\n \n \n {`Tx ${txStatus}`}\n {txStatus == \"Failed\" && (\n <>\n {` - `}\n {\n if (\n window?.confirm(\n \"Are you sure you want to reset the TX hash? This should only be done for broken or failed TXs. Only do this if it's been more than 2 hours since you submitted the tx\"\n ) &&\n window.location\n ) {\n window.location.href = `/reset-order-tx/${successfulOrder.id}`\n }\n }}\n >\n Reset Order Tx\n \n {` - Only do this if it's been more than 3 hrs since you submitted the tx`}\n >\n )}\n \n \n {`Tx Hash: `}\n \n {successfulOrder.tx_hash}\n \n \n \n {`Tx Submitted: ${txSubmittedText}`}\n \n \n )\n })}\n \n {`--------------------`}\n \n \n )}\n \n \n \n \n \n {\"Powered by\\nSGS Minting\"}\n \n
\n \n \n \n \n \n )\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n top: 10,\n color: \"#f25100 !important\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"4px solid #1c1c1c\",\n bg: \"#1c1c1c\",\n py: \"12px\",\n width: [\"100%\", 300],\n borderRadius: \"8px\",\n cursor: \"pointer\",\n fontSize: \"24px\",\n userSelect: \"none\",\n display: \"block\",\n marginTop: \"25px\",\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n \"&:hover\": {\n bg: \"#2f2f2f\",\n borderColor: \"#2f2f2f\",\n },\n}\n\nexport default MintDRRSSupreme\n","import React, { useEffect, useState } from \"react\"\nimport {\n ThemeProvider,\n Box,\n Grid,\n Image as Img,\n Paragraph,\n Link,\n} from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport Image1 from \"images/post-mint-bg.jpg\"\nimport Scramble from \"react-scramble\"\nimport Typewriter from \"typewriter-effect\"\nimport AudioPlayer from \"./AudioPlayer\"\nimport ConnectWallet from \"../ConnectWalletDrrs\"\n\nconst stren =\n \"WEAPON FOCUS | STR\\n\\\nWEAPON CLASS\\n\\\nBRUTE\\n\\\nRONIN\\n\\\nLIFELEECH\\n\\\nFANATIC\\n\\\nTEMPLAR\\n\\\nKENSAI\\n\\\nSAMURAI ...\"\n\nconst agil =\n \"\\n\\nWEAPON FOCUS | AGIL\\n\\\nWEAPON CLASS\\n\\\nCUTPURSE\\n\\\nOUTLAW\\n\\\nPHLEBOTOMIST\\n\\\nSTIMFREAK\\n\\\nYAMABUSHI\\n\\\nPRESDIGITATOR\\n\\\nMECHINJA ...\"\n\nconst wit =\n \"\\n\\nWEAPON FOCUS | WIT\\n\\\nWEAPON CLASS\\n\\\nNOVICE\\n\\\nDISCIPLE\\n\\\nVAMPYRE\\n\\\nFLAGELLANT\\n\\\nSHUKENJA\\n\\\nNEUROMANCER\\n\\\nSTREET SEER ...\"\n\nconst legendary =\n \"\\n\\nSPECIAL WEAPON CLASS\\nL3G3ND4RY\"\n\nconst crafted =\n \"\\n\\nSPECIAL WEAPON CLASS\\nCR4F73D\"\n\nconst messages = [stren, agil, wit, legendary, crafted]\n\nexport const MintDrrsSuccess = ({ isWl, wlStart, publicStart }) => {\n return (\n \n \n \n \n \n \n \n \n MAIN PAGE\n \n \n \n \n {\n window.location = \"/mint/otrSami5XRj9yuZb/weapons\"\n }}\n >\n MINT AGAIN\n \n \n \n \n \n \n {\"Thank you for minting DRRS Weapons\"}\n \n \n \n \n {\"YOUR WEAPONS HOLD THE KEYS\"}\n \n \n {\n \"*Transform any Cardano NFT into a Hero in #MoleWars.\\n*Stake in the DRRS pool for $DEAD.\\n*Craft Forged Weapons. The Foundry opens soon.\\n*Whitelist: For every 5 Weapons you hold, you are Whitelisted to mint 1 Mole.\\n\\nBoth the art and the concept behind the upcoming Mole Federation of Kreeb mint break new ground.\"\n }\n \n \n \n \n {\"WEAPON HOLDER ROLES\"}\n \n \n \n Brash Partisan\n 3\n\n Munitions Smuggler\n 5\n\n Forge Master\n 10\n\n Resistance Commander\n 20\n\n Demolitions Zealot\n 35\n\n Obsidian Templar\n 50\n\n Lord of War\n 100+\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n minHeight: \"60px\",\n color: \"#e0400f\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"3px solid #e0400f\",\n bg: \"rgba(0, 0, 0, 0.7)\",\n py: \"12px\",\n px: 15,\n mx: \"auto\",\n width: [\"80%\", 250],\n minWidth: [\"unset\", \"200px\"],\n cursor: \"pointer\",\n fontSize: [\"18px\", \"22px\"],\n userSelect: \"none\",\n display: \"grid\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginTop: \"25px\",\n fontFamily: '\"Electrolize\", system-ui, sans-serif !important',\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n transition: \"all 750ms\",\n \"&:hover\": {\n bg: \"rgba(0, 0, 0, 0.90)\",\n },\n}\n\nexport default MintDrrsSuccess\n","import React, { useEffect, useState } from \"react\"\nimport {\n ThemeProvider,\n Box,\n Grid,\n Text,\n Image as Img,\n Paragraph,\n Select,\n} from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport Image1 from \"images/drrs-armory-interior.jpg\"\nimport Typewriter from \"typewriter-effect\"\n\nimport axios from \"axios\"\nimport AudioPlayer from \"./AudioPlayer\"\nimport ConnectWallet from \"../ConnectWalletDrrs\"\nimport MintingTips from \"../MintingTips\"\nimport { BLOCKFROST_API_KEY } from \"../Constants\"\n\n// dev\n// import weaponsMetadata from \"../metadata/drrs-metadata-weapon-dev.json\"\n// import ccMetadata from \"../metadata/drrs-metadata-cc-dev.json\"\n// prod\nimport weaponsMetadata from \"../metadata/drrs-metadata-weapon.json\"\nimport ccMetadata from \"../metadata/drrs-metadata-cc.json\"\n\n// console.log(\"weaponsMetadata\", weaponsMetadata)\n// console.log(\"ccMetadata\", ccMetadata)\n// console.log(\"weaponsMetadata2\", weaponsMetadata2)\n// console.log(\"ccMetadata2\", ccMetadata2)\n\nexport const MintDRRSWeapons = (props) => {\n const blockfrostApiKey = BLOCKFROST_API_KEY\n const userId = props.user_id\n const mintId = props.mint_id\n const mint = props.mint ? JSON.parse(props.mint) : {}\n const orders = props.orders ? JSON.parse(props.orders) : []\n const csrf = props.csrf\n const mintCount = props.mintCount\n const userMintCount = props.user_mint_count\n\n let activeOrder = null\n const sortedOrders = orders?.sort((a, b) => (a.id > b.id ? -1 : 1))\n const lastOrder = sortedOrders?.[0]\n if (lastOrder && !lastOrder?.confirmed_on_blockchain) {\n activeOrder = lastOrder\n }\n const successfulOrders = orders?.filter((order) => order.tx_hash)\n\n const [connected, setConnected] = useState(null)\n const [loading, setLoading] = useState(false)\n const [walletLoading, setWalletLoading] = useState(false)\n const [loadingText, setLoadingText] = useState(\"\")\n const [order, setOrder] = useState(activeOrder)\n const [quantity, setQuanity] = useState(activeOrder?.quantity || 1)\n const [successOrders, setSucessOrders] = useState(successfulOrders)\n const [errors, setErrors] = useState(null)\n const [success, setSuccess] = useState(null)\n const [tokenAmount, setTokenAmount] = useState(mintCount)\n const [typing, setTyping] = useState(0)\n\n // console.log(\"successOrders\", successOrders)\n\n // console.log(\"orders\", orders)\n\n const wlStart = props.wl_start\n const publicStart = props.public_start\n const isWl1 = props.is_wl1\n const isWl2 = props.is_wl2\n const isWl3 = props.is_wl3\n\n let discordWlCount = 0\n if (isWl1) discordWlCount = 1\n if (isWl2) discordWlCount = 2\n if (isWl3) discordWlCount = 3\n\n const isWlStart = new Date() >= new Date(wlStart)\n const isPublicStart = new Date() >= new Date(publicStart)\n\n const createdDate = order?.created_at ? new Date(order.created_at) : null\n const allowDeleteTime = createdDate\n ? new Date(createdDate.getTime() + 1 * 60000)\n : null\n const canDelete = allowDeleteTime && order && new Date() >= allowDeleteTime\n\n const moleKey = \"8dc65bb6a57ef18b7e97a1ee379b5c0af003cb92f01c4c3910281bb6\"\n const depotKey = \"f60ee3ef108c483e03e4c59109e4438bed8d3d2138a6350a58fcf906\"\n\n const moleKeys =\n connected?.balance?.assets?.filter((nft) => nft.policy == moleKey) || []\n\n const depotKeys =\n connected?.balance?.assets?.filter((nft) => nft.policy == depotKey) || []\n\n const passes = [...moleKeys, ...depotKeys]?.map((pass) => pass.name)\n const passesCount = passes?.length\n const newPassesCount = passesCount * 3\n\n // console.log(\"connected\", connected)\n // console.log(\"moleKeys\", moleKeys)\n // console.log(\"depotKeys\", depotKeys)\n // console.log(\"passes\", passes)\n // console.log(\"order\", order)\n\n // const genesisMaxAllowed = usedPassesCount + newPassesCount\n // const wlMaxAllowed = 5\n // const maxAllowed = isGen ? genesisMaxAllowed : wlMaxAllowed\n // // const userMaxMinted = userMintCount >= maxAllowed && isPreMint\n // const userMaxMinted = !isGenesis\n\n const tokenPrice = mint?.price ? parseInt(mint?.price) : 165\n\n const drrsAddress =\n \"addr1q8v3mpjrzqdwua3fthjyvzkv4csvw6c6aczd8xewlgvsth9fj23yg27m90rrjcyj2yhldergq6msrfl9gg29svwhccgszmkxgt\"\n const dAddress =\n \"addr1q8sf8uw8a4necvj7a3r46ccup8vm6qd03chl5yqfqk4tye7pse5aqz3nnxs4468te22v6h6lpvs7h8axvk77nrv08y7qva07hv\"\n\n // dev\n // const weaponsPolicyId =\n // \"9b3e06ad68b423e950db9a303ec26f6cc5a77f4f321b3d33bc881c54\"\n // const weaponsPolicyScript =\n // \"8201828200581cd61d3656a176f8541db88d17af1806b096aa12bb4d68c619b046dc3482051a091ee10f\"\n\n // const ccPolicyId = \"6003515f307f4a27336c2be57b27e5da83e820e0e110f60cf7a45b72\"\n // const ccPolicyScript =\n // \"8201828200581cd61d3656a176f8541db88d17af1806b096aa12bb4d68c619b046dc3482051a091ee0de\"\n\n // prod\n const weaponsPolicyId =\n \"9335141aeacd6a707b5768d47183e60bc0bb810b2262786dfb1fa92a\"\n const weaponsPolicyScript =\n \"8201828200581cd61d3656a176f8541db88d17af1806b096aa12bb4d68c619b046dc3482051a091ee0ef\"\n\n const ccPolicyId = \"cc0d8f431afe7bc4ad9a2cb8c285fa221642f42df4b57ad72cc7c837\"\n const ccPolicyScript =\n \"8201828200581cd61d3656a176f8541db88d17af1806b096aa12bb4d68c619b046dc3482051a091ee03d\"\n\n // console.log(`drrsAddress - ${drrsAddress}`)\n // console.log(`dAddress - ${dAddress}`)\n // console.log(`weaponsPolicyId - ${weaponsPolicyId}`)\n // console.log(`ccPolicyId - ${ccPolicyId}`)\n\n if (!blockfrostApiKey) return null\n if (!userId) return null\n\n const sortedSuccessOrders = successOrders?.sort((a, b) =>\n a.id > b.id ? -1 : 1\n )\n\n const hasPendingTx =\n order && order?.tx_hash && !order?.confirmed_on_blockchain\n const orderCompleted =\n order && order?.tx_hash && order?.confirmed_on_blockchain\n\n // console.log(\"successOrders\", successOrders)\n\n let orderOptions = []\n let max_amount = 0\n let discord_wl_amount = 0\n let wlOwed = 0\n if (!isWlStart) {\n orderOptions = []\n } else if (isWlStart && !isPublicStart) {\n if (isWl1) discord_wl_amount = 1\n if (isWl2) discord_wl_amount = 2\n if (isWl3) discord_wl_amount = 3\n\n wlOwed = discord_wl_amount - userMintCount\n if (wlOwed < 0) wlOwed = 0\n max_amount = wlOwed\n max_amount += newPassesCount\n if (max_amount > 12) max_amount = 12\n orderOptions = Array.from(Array(max_amount).keys()).map((x) => x + 1)\n } else if (isPublicStart) {\n orderOptions = [1, 2, 3, 4, 5, 6]\n }\n\n const total = quantity * tokenPrice\n let priceText = `${quantity} x ${tokenPrice} = ${total} ADA`\n\n let pricingText = `WEAPONS ARE ${tokenPrice} ADA EACH`\n const usingWlCount = quantity > wlOwed ? wlOwed : quantity\n\n if (!isPublicStart && (isWl1 || isWl2 || isWl3)) {\n if (isWl3 && wlOwed) {\n priceText += `\\nUsing Discord WL3 [${usingWlCount}/3]`\n } else if (isWl2 && wlOwed) {\n priceText += `\\nUsing Discord WL2 [${usingWlCount}/2]`\n } else if (isWl1 && wlOwed) {\n priceText += `\\nUSING Discord WL1`\n }\n }\n\n if (!isPublicStart) {\n pricingText += \"\\nMax of 12 per tx\"\n }\n\n const passesQuantity = quantity - wlOwed\n let usingPasses =\n passesQuantity > 0\n ? newPassesCount\n ? passesQuantity % 3 == 0\n ? Math.trunc(passesQuantity / 3)\n : Math.trunc(passesQuantity / 3 + 1)\n : 0\n : 0\n\n if (usingPasses && !isPublicStart)\n priceText += `\\nUsing ${usingPasses} WL ${\n usingPasses == 1 ? \"Key\" : \"Keys\"\n } [${passes?.slice(0, usingPasses)?.join(\", \")}]`\n\n const ccCount = order?.nfts?.filter((nft) => nft.includes(\"CC\")).length\n\n useEffect(() => {\n if (\n order &&\n !order.confirmed_on_blockchain &&\n order.tx_status != \"failed\"\n ) {\n setTimeout(refresh, 5000)\n }\n\n if (order && order.tx_errors) {\n const newErrors = order.tx_errors?.split(\";;\") || []\n setErrors([...newErrors])\n }\n }, [])\n\n const handleConnect = (connectedWallet) => {\n setConnected(connectedWallet)\n }\n\n const handleOrderClick = async () => {\n setLoading(true)\n try {\n const resp = await axios.post(\n \"/orders/mint-drrs\",\n {\n order: {\n quantity: quantity,\n user_id: userId,\n total: total,\n notes: `${priceText}`,\n order_type: \"WEAPONS\",\n mint_id: mintId,\n address: connected?.address,\n passes:\n passes.length > 0 && !isPublicStart\n ? passes?.slice(0, usingPasses)?.join(\"|\")\n : null,\n },\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n setLoading(false)\n\n if (resp?.data?.id) {\n setOrder(resp?.data)\n setTokenAmount(tokenAmount - quantity)\n setErrors(null)\n } else {\n setErrors(resp?.data)\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n const handleOrderDelete = async (o) => {\n setLoading(true)\n\n try {\n const resp = await axios.delete(`/orders/${o.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n setLoading(false)\n\n if (resp?.data?.deleted == true) {\n // setTokenAmount(tokenAmount + o.quantity)\n // setOrder(null)\n // setTyping(1)\n window.location.reload()\n } else {\n setErrors([resp?.data?.error])\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n async function refresh() {\n const resp = await axios.get(`/orders/${order.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n const orderData = resp?.data\n\n const isDifferent = JSON.stringify(order) != JSON.stringify(orderData)\n\n if (isDifferent) {\n setOrder(orderData)\n\n if (orderData.tx_hash != order.tx_hash) {\n const newOrder = {\n ...order,\n tx_hash: orderData.tx_hash,\n tx_created_at: new Date(),\n }\n setSucessOrders([...successOrders, newOrder])\n setSuccess(\n \"Your transaction was successfully submitted to the blockchain.\\n\\nYou can find the tx below. It is pending but should show up in your wallet in a few minutes\"\n )\n }\n\n if (orderData.confirmed_on_blockchain != order.confirmed_on_blockchain) {\n setSuccess(\n \"SUCCESS\\nYour transaction has been verified on the blockchain\"\n )\n setTimeout(() => {\n window.location = \"/mint-success\"\n }, 5000)\n }\n\n if (orderData.tx_errors) {\n const newErrors = orderData.tx_errors?.split(\";;\") || []\n setSuccess(\"\")\n setErrors([...newErrors])\n }\n }\n\n if (!orderData.confirmed_on_blockchain) {\n const delay = orderData.tx_hash ? 60000 : 10000\n setTimeout(refresh, delay)\n }\n }\n\n const handleMintClick = () => {\n setLoading(true)\n setLoadingText(\"Building TX ...\")\n\n const createTransaction = async () => {\n let paymentAddress = await connected.getAddress() // wallet address\n\n const dAmount = String(order.total * 0.05)\n let paymentAmount = String(order.total - dAmount)\n const userWallet = paymentAddress\n\n const passes = order.access_nfts || []\n let assets = []\n passes.forEach((pass) => {\n const asset = connected?.balance?.assets?.find(\n (item) => item.name == pass\n )\n if (asset) {\n if (asset.policy == moleKey || asset.policy == depotKey) {\n assets.push({ unit: `${asset.policy}.${asset.name}`, quantity: 1 })\n }\n }\n })\n\n const drrsRecipient = {\n address: drrsAddress,\n amount: paymentAmount,\n }\n\n const dRecipient = assets?.length\n ? {\n address: dAddress,\n amount: dAmount,\n assets: assets,\n }\n : {\n address: dAddress,\n amount: dAmount,\n }\n\n let recipients = [\n drrsRecipient,\n dRecipient,\n {\n address: userWallet,\n amount: \"0\",\n mintedAssets: order?.nfts?.map((nft) => {\n const policyId = nft.includes(\"CC\") ? ccPolicyId : weaponsPolicyId\n const policyScript = nft.includes(\"CC\")\n ? ccPolicyScript\n : weaponsPolicyScript\n return {\n assetName: nft,\n quantity: \"1\",\n policyId: policyId,\n policyScript: policyScript,\n }\n }),\n },\n ]\n\n let nftsMeta = {}\n let dummyNftsMeta = {}\n let nftsMetaCC = {}\n let dummyNftsMetaCC = {}\n\n order?.nfts?.forEach((nft, index) => {\n if (nft.includes(\"CC\")) {\n const projectMetadata = ccMetadata\n let dummyMeta = JSON.parse(JSON.stringify(projectMetadata[nft]))\n dummyMeta.image =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.name =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.mediaType =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.Project =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.Twitter =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.Publisher =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.description = [\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\",\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\",\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\",\n ]\n nftsMetaCC[nft] = projectMetadata[nft]\n dummyNftsMetaCC[nft] = dummyMeta\n } else {\n const projectMetadata = weaponsMetadata\n let dummyMeta = JSON.parse(JSON.stringify(projectMetadata[nft]))\n dummyMeta.image =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.name =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.mediaType =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.Project =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.Twitter =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.Publisher =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.description = [\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\",\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\",\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\",\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\",\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\",\n ]\n Object.keys(dummyMeta.Attributes).forEach((attribute) => {\n dummyMeta.Attributes[attribute] =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbits\"\n })\n if (dummyMeta.files?.[0]?.name) {\n dummyMeta.files[0].mediaType =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.files[0].name =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n dummyMeta.files[0].src =\n \"DeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDeadRabbitsDead\"\n }\n\n nftsMeta[nft] = projectMetadata[nft]\n dummyNftsMeta[nft] = dummyMeta\n }\n })\n\n const hasCC = Object.keys(nftsMetaCC).length > 0\n\n let metadata = hasCC\n ? {\n 721: {\n [ccPolicyId]: nftsMetaCC,\n [weaponsPolicyId]: nftsMeta,\n },\n }\n : {\n 721: {\n [weaponsPolicyId]: nftsMeta,\n },\n }\n\n let dummyMetadata = hasCC\n ? {\n 721: {\n [ccPolicyId]: dummyNftsMetaCC,\n [weaponsPolicyId]: dummyNftsMeta,\n },\n }\n : {\n 721: {\n [weaponsPolicyId]: dummyNftsMeta,\n },\n }\n\n const metadataHash = connected.hashMetadata(metadata)\n\n let utxos = null\n let netId = null\n let transaction = null\n\n try {\n utxos = await connected.getUtxosHex()\n netId = await connected.getNetworkId()\n transaction = await connected.transaction({\n PaymentAddress: paymentAddress,\n recipients: recipients,\n metadata: dummyMetadata,\n metadataHash: metadataHash,\n addMetadata: false,\n utxosRaw: utxos,\n networkId: netId?.id || 1,\n ttl: 7200,\n multiSig: true,\n })\n } catch (err) {\n let errMessage = err?.message\n if (errMessage == \"INPUTS_EXHAUSTED\")\n errMessage =\n \"INPUTS_EXHAUSTED - You don't have enough funds or utxos available\"\n console.error(err)\n setLoading(false)\n setErrors([\"Oh no! There was an error building the tx.\", errMessage])\n }\n\n let witnessBuyer = null\n try {\n witnessBuyer = await connected.signTx(transaction, true)\n setLoadingText(\"Validating TX ...\")\n } catch {\n // if user clicks cancel or Nami throws an error\n setLoading(false)\n }\n\n if (witnessBuyer) {\n try {\n let resp = null\n resp = await axios.post(\n `/orders/process/${order.id}`,\n {\n transaction,\n witness_buyer: witnessBuyer,\n user_wallet: userWallet,\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n if (resp?.data?.success) {\n setSuccess(\n \"Your transaction has been submitted to be processed.\\nThis page will update automatically.\"\n )\n setLoading(false)\n setErrors([])\n const newOrder = {\n ...order,\n tx_status: \"submitted\",\n witness_buyer: witnessBuyer,\n }\n setOrder(newOrder)\n\n // start polling for order status\n setTimeout(refresh, 5000)\n } else {\n console.log(resp?.data)\n const backendErrors = resp?.data?.errors || []\n setLoading(false)\n setErrors([\n \"Oh no! Something went wrong and Nami couldn't create the transaction. Cancel the order and try again. Or contact the team to let them know.\",\n ...backendErrors,\n ])\n }\n } catch (err) {\n console.error(err)\n setLoading(false)\n setErrors([\n \"Oh no! Something went wrong. Try it again or contact the SGS team to let them know.\",\n err,\n ])\n }\n } else {\n console.error(witnessBuyer)\n setLoading(false)\n }\n }\n if (!loading) createTransaction()\n // send transaction, witnessBuyer, order, and user to backend\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n {!connected && (\n \n \n {walletLoading\n ? \"Connecting wallet ...\"\n : \"You must connect your wallet ...\"}\n \n \n )}\n\n {!order && !success && !hasPendingTx && (\n \n {connected && (\n \n {tokenAmount && tokenAmount > 0 ? (\n \n {pricingText}\n\n {isWlStart && !isPublicStart && max_amount <= 0 && (\n \n \n {`You've minted the max amount until public mint`}\n \n \n )}\n\n {(isPublicStart || (isWlStart && max_amount > 0)) && (\n \n \n {`HOW MANY DO YOU WANT?`}\n \n\n \n \n \n {priceText}\n \n \n {loading ? \"Creating Order ...\" : \"Submit\"}\n \n \n \n )}\n \n ) : (\n \n \n \n )}\n \n )}\n \n )}\n\n {connected && errors && errors.length > 0 && (\n \n {errors?.map((error) => (\n \n {error}\n \n ))}\n \n )}\n\n {connected && order?.id && (\n \n {success && (\n \n \n {success}\n \n \n )}\n\n {hasPendingTx && !success && (\n <>\n \n {`You have a pending tx\\nWait for the tx to be confirmed\\n\\nOur system checks the blockchain every minute`}\n \n >\n )}\n\n {order && [null, \"errors\"].includes(order.tx_status) && (\n \n \n {`Open Order`}\n \n {/*
*/}\n \n {`${order?.quantity} ${\n order?.quantity == 1 ? \"WEAPON\" : \"WEAPONS\"\n } ${\n ccCount\n ? `+ ${ccCount} ${\n ccCount == 1\n ? \"CRAFTING COMPONENT\"\n : \"CRAFTING COMPONENTS\"\n }`\n : \"\"\n }\\n${priceText}`}\n \n\n {!walletLoading &&\n (!order.witness_buyer || order.tx_errors) && (\n \n {loading\n ? loadingText || \"Sign Tx\"\n : order.tx_errors\n ? \"Re-sign Tx\"\n : \"Sign Tx\"}\n \n )}\n {canDelete && (\n \n handleOrderDelete(order)}\n >\n {\"Delete Order\"}\n \n \n )}\n \n )}\n \n )}\n\n {connected && successOrders?.length > 0 && (\n \n \n {`Previous Orders\\n--------------------`}\n \n {sortedSuccessOrders?.map((successfulOrder, index) => {\n const txSubmitted = new Date(successfulOrder?.tx_created_at)\n const txSubmittedCopy = new Date(\n successfulOrder?.tx_created_at\n )\n\n const allowResetTime = txSubmittedCopy.setHours(\n txSubmitted.getHours() + 3\n )\n const allowResetTx =\n new Date() > allowResetTime &&\n successfulOrder.tx_hash &&\n !successfulOrder.confirmed_on_blockchain\n\n let txStatus = successfulOrder?.confirmed_on_blockchain\n ? \"Confirmed\"\n : \"Pending\"\n if (allowResetTx) txStatus = \"Failed\"\n return (\n \n {txStatus != \"Confirmed\" && (\n \n Pending\n \n )}\n \n {`Quantity: ${successfulOrder?.quantity}`}\n \n \n {`Total: ${Number(successfulOrder?.total)}`}\n \n {txStatus == \"Confirmed\" && (\n \n {`NFTs: ${successfulOrder?.nfts?.join(\", \")}`}\n \n )}\n\n \n {`Notes: ${successfulOrder?.notes}`}\n \n \n {`Tx Hash: `}\n \n {successfulOrder.tx_hash}\n \n \n \n {`--------------------`}\n \n \n )\n })}\n \n )}\n \n \n \n \n )\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n minHeight: \"60px\",\n color: \"#e0400f\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"3px solid #e0400f\",\n bg: \"rgba(0, 0, 0, 0.7)\",\n py: \"10px\",\n px: 15,\n mx: \"auto\",\n width: [\"80%\", 250],\n minWidth: [\"unset\", \"200px\"],\n cursor: \"pointer\",\n fontSize: [\"20px\"],\n userSelect: \"none\",\n display: \"grid\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginTop: \"25px\",\n fontFamily: '\"Electrolize\", system-ui, sans-serif !important',\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n // transition: \"all 750ms\",\n \"&:hover\": {\n bg: \"#e0400f\",\n color: \"black\",\n },\n}\n\nexport default MintDRRSWeapons\n","import React, { useEffect, useState } from \"react\"\nimport { ThemeProvider, Box, Grid, Image as Img, Paragraph } from \"theme-ui\"\nimport { theme } from \"../theme\"\n\nimport Image1 from \"images/rabbit-7.png\"\nimport SGSLogo from \"images/sgs-logo-trans.png\"\n\n// The WL Mint isn't active yet...\n// The 24 hour WL Mint goes live at:\n// 4/20/22 - 5pm UTC - 1pm EST - 10am PST\n\n// The Public Mint goes live at:\n// 4/21/22 - 5pm UTC - 1pm EST - 10am PST\n\nexport const MintInactiveDRRS = (props) => {\n const tokenStart = props.mint_access_token_start\n const tokenEnd = props.mint_access_token_end\n const isWl = props.is_wl\n const mint = props.mint ? JSON.parse(props.mint) : null\n\n // user\n const mintStart = new Date(tokenStart)\n const mintEnd = new Date(tokenEnd)\n\n // wl\n const wlStart = new Date(mint.wl_start)\n\n // public\n const publicStart = new Date(mint.token_start)\n\n const mintTokenStart = `${mintStart.toLocaleDateString()} - ${mintStart.toLocaleTimeString()}`\n const mintTokenEnd = `${mintEnd.toLocaleDateString()} - ${mintEnd.toLocaleTimeString()}`\n\n const mintWlStart = `${wlStart.toLocaleDateString()} - ${wlStart.toLocaleTimeString()}`\n const mintPublicStart = `${publicStart.toLocaleDateString()} - ${publicStart.toLocaleTimeString()}`\n\n const isPreMint = new Date() < mintStart\n const isPostMint = new Date() > mintEnd\n\n const message = isWl\n ? `The WL mint isn't active yet`\n : `The mint isn't active yet`\n\n return (\n \n \n
\n \n {isPreMint && (\n \n {isWl && (\n \n Congrats, you're on the WL!\n \n )}\n\n \n {message}\n \n {/* \n {`The 24 hour WL Mint goes live at:\\n4/20/22 - 5pm UTC - 1pm EST - 10am PST`}\n */}\n \n {`The Public Mint goes live at:\\n4/21/22 - 5pm UTC - 1pm EST - 10am PST`}\n \n \n )}\n {isPostMint && (\n \n \n {`The mint ended at\\n${mintTokenEnd}\\nGo home!`}\n \n \n )}\n\n history.back()}\n >\n Back\n \n \n \n \n \n \n {\"Powered by\\nSGS Minting\"}\n \n
\n \n \n \n \n \n )\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n top: 10,\n color: \"#f25100 !important\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"4px solid #1c1c1c\",\n bg: \"#1c1c1c\",\n py: \"12px\",\n width: [\"100%\", 300],\n borderRadius: \"8px\",\n cursor: \"pointer\",\n fontSize: \"24px\",\n userSelect: \"none\",\n display: \"block\",\n marginTop: \"25px\",\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n \"&:hover\": {\n bg: \"#2f2f2f\",\n borderColor: \"#2f2f2f\",\n },\n}\n\nexport default MintInactiveDRRS\n","import React, { useEffect, useState } from \"react\"\nimport { ThemeProvider, Box, Grid, Image as Img, Paragraph } from \"theme-ui\"\nimport { theme } from \"../theme\"\n\nimport Image1 from \"images/rabbit-7.png\"\nimport SGSLogo from \"images/sgs-logo-trans.png\"\n\n// The WL Mint isn't active yet...\n// The 24 hour WL Mint goes live at:\n// 4/20/22 - 5pm UTC - 1pm EST - 10am PST\n\n// The Public Mint goes live at:\n// 4/21/22 - 5pm UTC - 1pm EST - 10am PST\n\nexport const MintInactiveDRRS = (props) => {\n const tokenStart = props.mint_access_token_start\n const tokenEnd = props.mint_access_token_end\n const isWl = props.is_wl\n const mint = props.mint ? JSON.parse(props.mint) : null\n\n // user\n const mintStart = new Date(tokenStart)\n const mintEnd = new Date(tokenEnd)\n\n // wl\n const wlStart = new Date(mint.wl_start)\n\n // public\n const publicStart = new Date(mint.token_start)\n\n const mintTokenStart = `${mintStart.toLocaleDateString()} - ${mintStart.toLocaleTimeString()}`\n const mintTokenEnd = `${mintEnd.toLocaleDateString()} - ${mintEnd.toLocaleTimeString()}`\n\n const mintWlStart = `${wlStart.toLocaleDateString()} - ${wlStart.toLocaleTimeString()}`\n const mintPublicStart = `${publicStart.toLocaleDateString()} - ${publicStart.toLocaleTimeString()}`\n\n const isPreMint = new Date() < mintStart\n const isPostMint = new Date() > mintEnd\n\n const message = isWl\n ? `The WL mint isn't active yet`\n : `The mint isn't active yet`\n\n return (\n \n \n
\n \n {isPreMint && (\n \n {isWl && (\n \n Congrats, you're on the WL!\n \n )}\n\n \n {message}\n \n {/* \n {`The 24 hour WL Mint goes live at:\\n4/20/22 - 5pm UTC - 1pm EST - 10am PST`}\n */}\n \n {`The Public Mint goes live at:\\n4/21/22 - 5pm UTC - 1pm EST - 10am PST`}\n \n \n )}\n {isPostMint && (\n \n \n {`The mint ended at\\n${mintTokenEnd}\\nGo home!`}\n \n \n )}\n\n history.back()}\n >\n Back\n \n \n \n \n \n \n {\"Powered by\\nSGS Minting\"}\n \n
\n \n \n \n \n \n )\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n top: 10,\n color: \"#f25100 !important\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"4px solid #1c1c1c\",\n bg: \"#1c1c1c\",\n py: \"12px\",\n width: [\"100%\", 300],\n borderRadius: \"8px\",\n cursor: \"pointer\",\n fontSize: \"24px\",\n userSelect: \"none\",\n display: \"block\",\n marginTop: \"25px\",\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n \"&:hover\": {\n bg: \"#2f2f2f\",\n borderColor: \"#2f2f2f\",\n },\n}\n\nexport default MintInactiveDRRS\n","import React from \"react\"\nimport { ThemeProvider, Paragraph } from \"theme-ui\"\nimport Scramble from \"react-scramble\"\nimport { theme } from \"../theme\"\n\nexport const ScrambleText = ({ text = \"$DEADSTORE\", sx = {} }) => {\n return (\n \n \n \n \n \n )\n}\n\nexport default ScrambleText\n","import React from \"react\"\n\nexport function useStickyState(defaultValue, key) {\n const [value, setValue] = React.useState(() => {\n const stickyValue = window.localStorage.getItem(key)\n return stickyValue !== null ? JSON.parse(stickyValue) : defaultValue\n })\n React.useEffect(() => {\n window.localStorage.setItem(key, JSON.stringify(value))\n }, [key, value])\n return [value, setValue]\n}\n\nexport default useStickyState\n","import React, { useEffect, useState } from \"react\"\nimport {\n ThemeProvider,\n Box,\n Grid,\n Image as Img,\n Paragraph,\n Link,\n} from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport Image1 from \"images/wolf-1.png\"\nimport SGSLogo from \"images/sgs-logo-trans.png\"\n\nexport const HomeWolf = (props) => {\n const mints = JSON.parse(props.mints)\n const userMints = JSON.parse(props.userMints)\n\n const mint = mints?.find((mint) => mint.name == \"WOLF\")\n const userMint = userMints?.find((uMint) => uMint.mint_id == mint?.id)\n const isWl = userMint?.is_wl\n\n let message = \"You made it! \\n\\nWelcome to the Famous Wolf Club mint\\n\\n\"\n // if (isWl) message += \"You're on the WL\"\n\n return (\n \n \n
\n \n \n {message}\n \n {mints?.map((mint) => {\n const isRegistered = userMints?.find(\n (userMint) => userMint.mint_id == mint.id\n )\n const registerText = isRegistered ? `Unregister` : `Register`\n const registerPath = isRegistered\n ? `unregister-mint`\n : `register-mint`\n\n return (\n <>\n {isRegistered && (\n \n {`Mint Link`}\n \n )}\n {!isRegistered && (\n \n {`${registerText} ${mint.name} Mint`}\n \n )}\n >\n )\n })}\n \n \n \n \n \n {\"Powered by\\nSGS Minting\"}\n \n
\n \n \n \n \n \n )\n}\n\nexport default HomeWolf\n","import React, { useEffect, useState } from \"react\"\nimport { ThemeProvider, Box, Grid, Image as Img, Paragraph } from \"theme-ui\"\nimport { theme } from \"../theme\"\n\nimport SGSLogo from \"images/sgs-logo-trans.png\"\n\nconst waitingGifs = [\n \"https://c.tenor.com/-P-xeHYEY9QAAAAd/sad-pablo-lonely.gif\",\n \"https://c.tenor.com/rec5dlPBK2cAAAAd/mr-bean-waiting.gif\",\n \"https://c.tenor.com/DijuQ74YJnwAAAAC/hitmans-bodyguard-hitmans-bodyguard-gi-fs.gif\",\n \"https://c.tenor.com/vTY0qobiAtsAAAAC/judge-judy-time.gif\",\n \"https://c.tenor.com/WSDlnEeAG48AAAAC/waiting-spongebob.gif\",\n \"https://c.tenor.com/fyylSNGrZ80AAAAd/well-waiting.gif\",\n \"https://c.tenor.com/ZhnTD1C2eJsAAAAd/dog-cute.gif\",\n \"https://c.tenor.com/1qYRipB8yqwAAAAC/will-ferrell-say-something.gif\",\n \"https://c.tenor.com/89P_KY3375QAAAAC/stone-cold-steve-austin.gif\",\n \"https://c.tenor.com/S8H2f8iDMKYAAAAC/waiting-aiw.gif\",\n \"https://c.tenor.com/MWUQNMa9qXYAAAAC/lisa-simpson-waiting-for-an-answer.gif\",\n \"https://c.tenor.com/2v8EwMyAny8AAAAC/please-hmm.gif\",\n \"https://c.tenor.com/CKxw634NBOMAAAAC/rick-and-morty-i-cant-take-it-anymore-i-just-want-to-die.gif\",\n \"https://c.tenor.com/iIR6arMpYCIAAAAC/forever-sandlot.gif\",\n \"https://c.tenor.com/sKg02SlxaoQAAAAC/red-goobler-solar-opposites.gif\",\n \"https://c.tenor.com/NMLAWSo-mqIAAAAd/yoda-patience.gif\",\n \"https://c.tenor.com/WrGifwMDFugAAAAC/patience-young.gif\",\n \"https://c.tenor.com/U78pJ-UPQ3kAAAAC/cat-patience-cat.gif\",\n \"https://c.tenor.com/o6r7p0Dhr9AAAAAC/im-isaiah.gif\",\n \"https://c.tenor.com/F02lwzSKPSAAAAAd/horse-man-drunk-carrying-a-horse.gif\",\n \"https://c.tenor.com/ycKJas-YT0UAAAAM/im-waiting-aki-and-paw-paw.gif\",\n \"https://c.tenor.com/btU_dDhCocIAAAAC/waiting-cookie.gif\",\n \"https://c.tenor.com/lQNf6C6HDYQAAAAC/angry-kid.gif\",\n \"https://c.tenor.com/sGzHvagmSugAAAAC/staredown-forreal.gif\",\n \"https://c.tenor.com/PX6i9045kWAAAAAC/daddy-chill.gif\",\n \"https://c.tenor.com/alnE0X0fbV8AAAAC/chill-chill-out.gif\",\n \"https://c.tenor.com/oWvq12gtjDIAAAAC/high-pineapple-express.gif\",\n \"https://c.tenor.com/FKn-8Ac5M7oAAAAC/no-bugs-bunny.gif\",\n \"https://c.tenor.com/zK6-iEBjjcEAAAAC/no-nooo.gif\",\n \"https://c.tenor.com/1FR4o42djy8AAAAC/spiderman-magic.gif\",\n]\n\nconst getRandomNumber = (previous) => {\n let num = Math.floor(Math.random() * waitingGifs.length)\n if (num == previous) num = Math.floor(Math.random() * waitingGifs.length)\n if (num == previous) num = Math.floor(Math.random() * waitingGifs.length)\n return num\n}\n\nexport const MintInactiveWolf = (props) => {\n const [randomNumber, setRandomNumber] = useState(getRandomNumber())\n const [waitingGif, setWaitingGif] = useState(null)\n\n useEffect(() => {\n setWaitingGif(waitingGifs[Math.floor(Math.random() * waitingGifs.length)])\n }, [])\n\n const tokenStart = props.mint_access_token_start\n const tokenEnd = props.mint_access_token_end\n const isWl = props.is_wl\n const isVip = props.is_vip\n const mint = props.mint ? JSON.parse(props.mint) : null\n\n // user\n const mintStart = new Date(tokenStart)\n const mintEnd = new Date(tokenEnd)\n\n // wl\n const wlStart = new Date(mint.wl_start)\n\n // public\n const publicStart = new Date(mint.token_start)\n\n const mintTokenStart = `${mintStart.toLocaleDateString()} - ${mintStart.toLocaleTimeString()}`\n const mintTokenEnd = `${mintEnd.toLocaleDateString()} - ${mintEnd.toLocaleTimeString()}`\n\n const mintWlStart = `${wlStart.toLocaleDateString()} - ${wlStart.toLocaleTimeString()}`\n const mintPublicStart = `${publicStart.toLocaleDateString()} - ${publicStart.toLocaleTimeString()}`\n\n const isPreMint = new Date() < mintStart\n const isPostMint = new Date() > mintEnd\n\n return (\n \n \n {/*
*/}\n \n {isPreMint && (\n \n {isVip && (\n \n You're VIP!\n \n )}\n {isWl && (\n \n Congrats, you're on the WL!\n \n )}\n \n {`The mint isn't active yet\\nThe mint starts at ${mintTokenStart} (local)`}\n \n
\n \n )}\n {isPostMint && (\n \n \n {`The mint is over!`}\n \n \n )}\n\n history.back()}\n >\n Back\n \n \n \n \n \n \n {\"Powered by\\nSGS Minting\"}\n \n
\n \n \n \n \n \n )\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n top: 10,\n color: \"white !important\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"4px solid #1c1c1c\",\n bg: \"#1c1c1c\",\n py: \"12px\",\n width: [\"100%\", 300],\n borderRadius: \"8px\",\n cursor: \"pointer\",\n fontSize: \"24px\",\n userSelect: \"none\",\n display: \"block\",\n marginTop: \"25px\",\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n \"&:hover\": {\n bg: \"#2f2f2f\",\n borderColor: \"#2f2f2f\",\n },\n}\n\nexport default MintInactiveWolf\n","import React, { useEffect, useState } from \"react\"\nimport {\n ThemeProvider,\n Box,\n Grid,\n Image as Img,\n Paragraph,\n Select,\n} from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport SGSLogo from \"images/sgs-logo-trans.png\"\n\nimport axios from \"axios\"\nimport ConnectWallet from \"../ConnectWallet\"\n\nimport MintingTips from \"../MintingTips\"\nimport projectMetadata from \"../metadata/famouswolf-metadata.json\"\n\nconst soldOutGifs = [\n \"https://c.tenor.com/sKg02SlxaoQAAAAC/red-goobler-solar-opposites.gif\",\n \"https://c.tenor.com/0hNIHb95iDMAAAAC/no-more-rebel-wilson.gif\",\n \"https://c.tenor.com/WejWsIlk3_cAAAAd/thats-enough-okay-jason-bateman.gif\",\n \"https://c.tenor.com/hKsgsuQ5N8MAAAAC/cymbals-monkey-brain.gif\",\n \"https://c.tenor.com/98QJc8KJsMkAAAAC/gimme-no-more.gif\",\n \"https://c.tenor.com/N2ibf5aQj2gAAAAC/dragrace-bitch-you-done.gif\",\n \"https://c.tenor.com/3DGYbblZUasAAAAd/youre-done-done-son.gif\",\n \"https://c.tenor.com/ig55vSh4xHwAAAAC/throw-dog.gif\",\n \"https://c.tenor.com/VJz7OLQ8DkQAAAAM/heather-dubrow-shannon-beador.gif\",\n \"https://c.tenor.com/MPsGPP25j70AAAAC/good-day-fez.gif\",\n \"https://c.tenor.com/J3mNIbj6A4wAAAAd/empty-shelves-john-travolta.gif\",\n \"https://c.tenor.com/UbGii9oGosoAAAAC/money-wallet.gif\",\n \"https://c.tenor.com/nd2wxsrTXYEAAAAd/level-up-next-level.gif\",\n \"https://c.tenor.com/WS9TNssQALkAAAAd/roughneck-rabbits-roughneck.gif\",\n \"https://c.tenor.com/Q6BU4RC5zQsAAAAd/sold-out-what.gif\",\n \"https://c.tenor.com/TK5hcjkNr_cAAAAC/gordon-ramsey-you-are-done.gif\",\n \"https://c.tenor.com/MC7K9jo7V0YAAAAC/survivor-jeff-probst.gif\",\n \"https://c.tenor.com/qYrv7LSWFFIAAAAC/finn-adventure-time.gif\",\n \"https://c.tenor.com/gKcLWQAVD8sAAAAC/done-annoyed.gif\",\n \"https://c.tenor.com/jhJp2A-K5HwAAAAd/gollum-leave-now.gif\",\n \"https://c.tenor.com/TbGZDsVxx0wAAAAC/i-dont-need-you-anymore-kyle-broflovski.gif\",\n \"https://c.tenor.com/VGmgyUMNP88AAAAC/toy-story-woody.gif\",\n \"https://c.tenor.com/FqdTy04G6m4AAAAC/i-dont-need-you-anymore-satan.gif\",\n \"https://c.tenor.com/JLpNtvfer7wAAAAM/you-need-to-go-saturday-night-live.gif\",\n \"https://c.tenor.com/JWTW52xCLycAAAAd/i-think-you-should-leave-before-i-call-the-police-eric-cartman.gif\",\n \"https://c.tenor.com/6aZotD1Q0SkAAAAC/tigger-sad.gif\",\n \"https://c.tenor.com/ipXfNs5DnFIAAAAd/get-the-hell-out-of-here-sung-won-cho.gif\",\n \"https://c.tenor.com/0Ar7aEuIPT4AAAAC/get-the-fudge-out-eric-cartman.gif\",\n \"https://c.tenor.com/Wl0r-dwasLYAAAAC/sad-the-simpsons.gif\",\n \"https://c.tenor.com/L2T_fqCrWyMAAAAC/theres-no-more-scared.gif\",\n \"https://c.tenor.com/dlJSiLUJNmsAAAAC/math-calculate.gif\",\n \"https://c.tenor.com/18sqCWkrm9oAAAAC/confused-wtf.gif\",\n \"https://c.tenor.com/3yyytNGYC7cAAAAC/empty-tank.gif\",\n \"https://c.tenor.com/q-E5wj1K6OYAAAAC/monsters-inc-sully.gif\",\n \"https://c.tenor.com/65QP-lH9krMAAAAC/no-money-donald-duck.gif\",\n \"https://c.tenor.com/lQNf6C6HDYQAAAAC/angry-kid.gif\",\n \"https://c.tenor.com/sGzHvagmSugAAAAC/staredown-forreal.gif\",\n]\n\nconst defaultWallet =\n \"addr1qyrke3hmuw29c56c8f0vmg0vzarcht70m6a2788lyp7et22mlcy7y7703za4cy7zh789jnjffstkgsgk5vhr5ks6vj5qrsvlkh\"\n\nexport const MintWolf = (props) => {\n const blockfrostApiKey = props.apiKey\n const userId = props.user_id\n const mintId = props.mint_id\n const userIsVip = props.is_vip\n const userIsWl = props.is_wl\n const isOverride = props.is_override\n const orders = props.orders ? JSON.parse(props.orders) : []\n const csrf = props.csrf\n const mintCount = props.mintCount\n const mint = props.mint ? JSON.parse(props.mint) : null\n const publicStart = new Date(mint?.token_start)\n const wlStart = mint?.wl_start ? new Date(mint?.wl_start) : null\n const vipStart = mint?.vip_start ? new Date(mint?.vip_start) : null\n\n const isPreMint = new Date() < publicStart\n const isPostVip = new Date() > vipStart\n const isPostWl = new Date() > wlStart\n\n const isVip = userIsVip && ((isPostVip && isPreMint) || isOverride)\n const isWl = userIsWl && ((isPostWl && isPreMint) || isOverride)\n\n let tokenPrice = mint.price || 80\n if (isWl) tokenPrice = mint.wl_price\n if (isVip) tokenPrice = mint.vip_price\n\n const walletAddress = mint.payment_wallet || defaultWallet\n const policyId = mint.policy_id\n const policyScript = mint.policy_script\n\n let activeOrder = null\n const sortedOrders = orders?.sort((a, b) => (a.id > b.id ? -1 : 1))\n const lastOrder = sortedOrders?.[0]\n if (lastOrder && !lastOrder?.confirmed_on_blockchain) {\n activeOrder = lastOrder\n }\n const successfulOrders = orders?.filter((order) => order.tx_hash)\n\n // console.log(`Patment wallet - ${walletAddress}`)\n // console.log(`Policy - ${policyId}`)\n // console.log(\"loaded\")\n // console.log(successfulOrders)\n\n if (!blockfrostApiKey) return null\n if (!userId) return null\n\n const [connected, setConnected] = useState(null)\n const [loading, setLoading] = useState(false)\n const [walletLoading, setWalletLoading] = useState(false)\n const [loadingText, setLoadingText] = useState(\"\")\n const [quantity, setQuanity] = useState(1)\n const [order, setOrder] = useState(activeOrder)\n const [successOrders, setSucessOrders] = useState(successfulOrders)\n const [soldOutGif, setSoldOutGif] = useState(null)\n const [errors, setErrors] = useState(null)\n const [success, setSuccess] = useState(null)\n const [tokenAmount, setTokenAmount] = useState(mintCount)\n\n const sortedSuccessOrders = successOrders?.sort((a, b) =>\n a.id > b.id ? -1 : 1\n )\n const hasPendingTx =\n order && !order?.confirmed_on_blockchain && order?.tx_hash\n\n const orderCreated = order?.created_at ? new Date(order?.created_at) : null\n const allowResetOrder = orderCreated?.setMinutes(\n orderCreated?.getMinutes() + 30\n )\n\n let orderOptions = []\n\n if (isPreMint) {\n orderOptions = [1, 2, 3]\n } else {\n orderOptions = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n }\n\n const total = quantity * tokenPrice\n const priceText = `${quantity} x ${tokenPrice} = ${total} ADA`\n\n useEffect(() => {\n setSoldOutGif(soldOutGifs[Math.floor(Math.random() * soldOutGifs.length)])\n\n if (\n order &&\n !order.confirmed_on_blockchain &&\n order.tx_status != \"failed\"\n ) {\n setTimeout(refresh, 5000)\n }\n\n if (order && order.tx_errors) {\n const newErrors = order.tx_errors?.split(\";;\") || []\n setErrors([\n \"Oh no! Something went wrong and the tx couldn't be created.\",\n ...newErrors,\n ])\n }\n }, [])\n\n const handleConnect = (connectedWallet) => {\n setConnected(connectedWallet)\n }\n\n const handleOrderClick = async () => {\n setLoading(true)\n let notesText = \"WOLF\"\n if (isWl) notesText = \"WL\"\n if (isVip) notesText = \"VIP\"\n try {\n const resp = await axios.post(\n \"/orders/mint-wolf\",\n {\n order: {\n quantity: quantity,\n user_id: userId,\n total: total,\n notes: `${notesText} - ${priceText}`,\n order_type: \"WOLF\",\n mint_id: mintId,\n address: connected?.address,\n },\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n setLoading(false)\n\n if (resp?.data?.id) {\n setOrder(resp?.data)\n setTokenAmount(tokenAmount - quantity)\n setErrors(null)\n } else {\n setErrors(resp?.data)\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n const handleOrderDelete = async (o) => {\n setLoading(true)\n try {\n const resp = await axios.delete(`/orders/${o.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n setLoading(false)\n\n if (resp?.data?.deleted == true) {\n setOrder(null)\n window?.location?.reload()\n } else {\n setErrors([resp?.data?.error])\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n async function refresh() {\n const resp = await axios.get(`/orders/${order.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n const orderData = resp?.data\n\n const isDifferent = JSON.stringify(order) != JSON.stringify(orderData)\n\n if (isDifferent) {\n setOrder(orderData)\n\n if (orderData.tx_hash != order.tx_hash) {\n const newOrder = {\n ...order,\n tx_hash: orderData.tx_hash,\n tx_created_at: new Date(),\n }\n setSucessOrders([...successOrders, newOrder])\n setSuccess(\n \"Rad!\\n\\nYour transaction was successfully submitted to the blockchain.\\n\\nYou can find the tx below. It is pending but should show up in your wallet in a few minutes\"\n )\n }\n\n if (orderData.confirmed_on_blockchain != order.confirmed_on_blockchain) {\n const index = successOrders.findIndex(\n (order) => order.id == orderData.id\n )\n let newOrders = [...successOrders]\n if (index >= 0) {\n newOrders[index] = orderData\n } else {\n newOrders = [...successOrders, orderData]\n }\n\n setSucessOrders(newOrders?.sort((a, b) => (a.id > b.id ? -1 : 1)))\n\n setSuccess(\n \"Awesome!\\nYour transaction is confirmed and on the blockchain. You can mint again!\"\n )\n }\n\n if (orderData.tx_errors) {\n const newErrors = orderData.tx_errors?.split(\";;\") || []\n setSuccess(\"\")\n setErrors([\n \"Oh no! Something went wrong and the tx couldn't be created.\",\n ...newErrors,\n ])\n }\n }\n\n if (!orderData.confirmed_on_blockchain) {\n const delay = orderData.tx_hash ? 60000 : 10000\n setTimeout(refresh, delay)\n }\n }\n\n const handleMintClick = () => {\n setLoading(true)\n setLoadingText(\"Building TX ...\")\n\n const createTransaction = async () => {\n let paymentAddress = await connected.getAddress() // wallet address\n let paymentAmount = String(order.total)\n const paymentWallet = walletAddress\n const userWallet = paymentAddress\n\n let recipients = [\n {\n address: paymentWallet,\n amount: paymentAmount,\n }, // Seller Wallet, NFT price 2ADA\n {\n address: userWallet,\n amount: \"0\",\n mintedAssets: order?.nfts?.map((nft) => {\n return {\n assetName: nft,\n quantity: \"1\",\n policyId: policyId,\n policyScript: policyScript,\n }\n }),\n }, // NFTs to be minted\n ] // list of recipients\n\n let nftsMeta = {}\n let dummyNftsMeta = {}\n\n order?.nfts?.forEach((nft, index) => {\n let dummyMeta = JSON.parse(JSON.stringify(projectMetadata[nft]))\n\n Object.keys(dummyMeta?.attributes).forEach((attribute) => {\n dummyMeta.attributes[attribute] =\n \"FamousWolfFamousWolfFamousWolfFamousWolfFamousWolfFamousWolf\"\n })\n Object.keys(dummyMeta?.fwc).forEach((attribute) => {\n dummyMeta.fwc[attribute] =\n \"FamousWolfFamousWolfFamousWolfFamousWolfFamousWolfFamousWolf\"\n })\n dummyMeta?.files?.forEach((file, index) => {\n Object.keys(dummyMeta.files[index]).forEach((attribute) => {\n dummyMeta.files[index][attribute] =\n \"FamousWolfFamousWolfFamousWolfFamousWolfFamousWolfFamousWolf\"\n })\n })\n\n dummyMeta.description =\n \"FamousWolfFamousWolfFamousWolfFamousWolfFamousWolfFamousWolf\"\n dummyMeta.image =\n \"FamousWolfFamousWolfFamousWolfFamousWolfFamousWolfFamousWolf\"\n dummyMeta.mediaType =\n \"FamousWolfFamousWolfFamousWolfFamousWolfFamousWolfFamousWolf\"\n dummyMeta.Publisher =\n \"FamousWolfFamousWolfFamousWolfFamousWolfFamousWolfFamousWolf\"\n dummyMeta.Twitter =\n \"FamousWolfFamousWolfFamousWolfFamousWolfFamousWolfFamousWolf\"\n\n nftsMeta[nft] = projectMetadata[nft]\n dummyNftsMeta[nft] = dummyMeta\n })\n\n let metadata = {\n 721: {\n [policyId]: nftsMeta,\n },\n }\n\n let dummyMetadata = {\n 721: {\n [policyId]: dummyNftsMeta,\n },\n }\n\n const metadataHash = connected.hashMetadata(metadata)\n\n let utxos = null\n let netId = null\n let transaction = null\n\n try {\n utxos = await connected.getUtxosHex()\n netId = await connected.getNetworkId()\n transaction = await connected.transaction({\n PaymentAddress: paymentAddress,\n recipients: recipients,\n metadata: dummyMetadata,\n metadataHash: metadataHash,\n addMetadata: false,\n utxosRaw: utxos,\n networkId: netId?.id || 1,\n ttl: 7200,\n multiSig: true,\n })\n } catch (err) {\n let errMessage = err?.message\n if (errMessage == \"INPUTS_EXHAUSTED\")\n errMessage =\n \"INPUTS_EXHAUSTED - You don't have enough funds or utxos available\"\n console.error(err)\n setLoading(false)\n setErrors([\"Oh no! There was an error building the tx.\", errMessage])\n }\n\n let witnessBuyer = null\n try {\n witnessBuyer = await connected.signTx(transaction, true)\n setLoadingText(\"Validating TX ...\")\n } catch {\n // if user clicks cancel or Nami throws an error\n setLoading(false)\n }\n\n if (witnessBuyer) {\n try {\n let resp = null\n resp = await axios.post(\n `/orders/process/${order.id}`,\n {\n transaction,\n witness_buyer: witnessBuyer,\n user_wallet: userWallet,\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n if (resp?.data?.success) {\n setSuccess(\n \"Awesome!\\nYour transaction has been submitted to be processed. This page will update automatically.\"\n )\n setLoading(false)\n setErrors([])\n const newOrder = {\n ...order,\n tx_status: \"submitted\",\n witness_buyer: witnessBuyer,\n }\n setOrder(newOrder)\n\n // start polling for order status\n setTimeout(refresh, 5000)\n } else {\n console.log(resp?.data)\n const backendErrors = resp?.data?.errors || []\n setLoading(false)\n setErrors([\n \"Oh no! Something went wrong and Nami couldn't create the transaction. Cancel the order and try again. Or contact the SGS team to let them know.\",\n ...backendErrors,\n ])\n }\n } catch (err) {\n console.error(err)\n setLoading(false)\n setErrors([\n \"Oh no! Something went wrong. Try it again or contact the SGS team to let them know.\",\n err,\n ])\n }\n } else {\n console.error(witnessBuyer)\n setLoading(false)\n }\n }\n if (!loading) createTransaction()\n // send transaction, witnessBuyer, order, and user to backend\n }\n\n return (\n \n \n {/*
*/}\n \n \n {errors?.map((error) => (\n \n {error}\n \n ))}\n\n {success && (\n \n {\" \"}\n \n {success}\n \n {order.tx_status == \"confirmed\" && (\n window?.location?.reload()}\n >\n {\"Mint Again\"}\n \n )}\n \n )}\n\n {hasPendingTx && !success && (\n <>\n \n {`You have a pending tx/order. Wait or handle that order first before creating another.\\n\\nOur system checks the blockchain every couple of minutes.`}\n \n \n >\n )}\n\n {!order && !success && !hasPendingTx && (\n \n {connected && (\n \n {tokenAmount && tokenAmount > 0 ? (\n \n \n {`There are ${tokenAmount} tokens available\\nThey are ${tokenPrice} ADA each\\n\\n`}\n \n\n \n\n \n {`How many do you want?`}\n \n \n \n {priceText}\n \n \n {loading ? \"Creating Order ...\" : \"Submit\"}\n \n \n ) : (\n \n \n {`ALL THE TOKENS HAVE BEEN RESERVED!\\n\\nSOLD OUT!`}\n \n \n setSoldOutGif(\n soldOutGifs[\n Math.floor(Math.random() * soldOutGifs.length)\n ]\n )\n }\n >\n {\"Hit Me\"}\n \n
\n \n )}\n \n )}\n \n )}\n\n {order && [null, \"errors\"].includes(order.tx_status) && (\n \n \n\n \n {`Active Order\\nQuantity: ${order.quantity}\\nTotal: ${Number(\n order.total\n )}\\nNotes: ${order.notes}`}\n \n {connected &&\n !walletLoading &&\n (!order.witness_buyer || order.tx_errors) && (\n \n {loading\n ? loadingText\n : order.tx_errors\n ? \"Re-sign Tx\"\n : \"Sign Tx\"}\n \n )}\n {new Date() > allowResetOrder && !order.tx_hash && (\n {\n // handleNamiSuccess(\"123456abc\")\n handleOrderDelete(order)\n }}\n >\n Cancel\n \n )}\n \n )}\n\n {successOrders?.length > 0 && (\n \n \n {`Successful Orders\\n--------------------`}\n \n {sortedSuccessOrders?.map((successfulOrder, index) => {\n const txSubmitted = new Date(successfulOrder.tx_created_at)\n const txSubmittedCopy = new Date(successfulOrder.tx_created_at)\n\n const allowResetTime = txSubmittedCopy.setHours(\n txSubmitted.getHours() + 3\n )\n const allowResetTx =\n new Date() > allowResetTime &&\n successfulOrder.tx_hash &&\n !successfulOrder.confirmed_on_blockchain\n\n const txSubmittedText = `${txSubmitted.toLocaleDateString()} - ${txSubmitted.toLocaleTimeString()}`\n let txStatus = successfulOrder.confirmed_on_blockchain\n ? \"Confirmed\"\n : \"Pending\"\n if (allowResetTx) txStatus = \"Failed\"\n return (\n \n \n {`Quantity: ${successfulOrder.quantity}`}\n \n \n {`Total: ${Number(successfulOrder.total)}`}\n \n {txStatus == \"Confirmed\" && (\n \n {`NFTs: ${successfulOrder.nfts.join(\", \")}`}\n \n )}\n\n \n {`Notes: ${successfulOrder.notes}`}\n \n \n {`Tx ${txStatus}`}\n {txStatus == \"Failed\" && (\n <>\n {` - `}\n {\n if (\n window?.confirm(\n \"Are you sure you want to reset the TX hash? This should only be done for broken or failed TXs. Only do this if it's been more than 2 hours since you submitted the tx\"\n ) &&\n window.location\n ) {\n window.location.href = `/reset-order-tx/${successfulOrder.id}`\n }\n }}\n >\n Reset Order Tx\n \n {` - Only do this if it's been more than 3 hrs since you submitted the tx`}\n >\n )}\n \n \n {`Tx Hash: `}\n \n {successfulOrder.tx_hash}\n \n \n \n {`Tx Submitted: ${txSubmittedText}`}\n \n \n )\n })}\n \n {`--------------------`}\n \n \n )}\n \n \n \n \n \n {\"Powered by\\nSGS Minting\"}\n \n
\n \n \n \n \n \n )\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n top: 10,\n color: \"white !important\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"4px solid #1c1c1c\",\n bg: \"#1c1c1c\",\n py: \"12px\",\n width: [\"100%\", 300],\n borderRadius: \"8px\",\n cursor: \"pointer\",\n fontSize: \"24px\",\n userSelect: \"none\",\n display: \"block\",\n marginTop: \"25px\",\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n \"&:hover\": {\n bg: \"#2f2f2f\",\n borderColor: \"#2f2f2f\",\n },\n}\n\nexport default MintWolf\n","import React, { useEffect, useState } from \"react\"\nimport {\n ThemeProvider,\n Box,\n Grid,\n Image as Img,\n Paragraph,\n Select,\n} from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport SGSLogo from \"images/sgs-logo-trans.png\"\n\nimport axios from \"axios\"\nimport ConnectWallet from \"../ConnectWallet\"\n\nimport MintingTips from \"../MintingTips\"\nimport projectMetadata from \"../metadata/famouswolf-metadata.json\"\n\nconst soldOutGifs = [\n \"https://c.tenor.com/sKg02SlxaoQAAAAC/red-goobler-solar-opposites.gif\",\n \"https://c.tenor.com/0hNIHb95iDMAAAAC/no-more-rebel-wilson.gif\",\n \"https://c.tenor.com/WejWsIlk3_cAAAAd/thats-enough-okay-jason-bateman.gif\",\n \"https://c.tenor.com/hKsgsuQ5N8MAAAAC/cymbals-monkey-brain.gif\",\n \"https://c.tenor.com/98QJc8KJsMkAAAAC/gimme-no-more.gif\",\n \"https://c.tenor.com/N2ibf5aQj2gAAAAC/dragrace-bitch-you-done.gif\",\n \"https://c.tenor.com/3DGYbblZUasAAAAd/youre-done-done-son.gif\",\n \"https://c.tenor.com/ig55vSh4xHwAAAAC/throw-dog.gif\",\n \"https://c.tenor.com/VJz7OLQ8DkQAAAAM/heather-dubrow-shannon-beador.gif\",\n \"https://c.tenor.com/MPsGPP25j70AAAAC/good-day-fez.gif\",\n \"https://c.tenor.com/J3mNIbj6A4wAAAAd/empty-shelves-john-travolta.gif\",\n \"https://c.tenor.com/UbGii9oGosoAAAAC/money-wallet.gif\",\n \"https://c.tenor.com/nd2wxsrTXYEAAAAd/level-up-next-level.gif\",\n \"https://c.tenor.com/WS9TNssQALkAAAAd/roughneck-rabbits-roughneck.gif\",\n \"https://c.tenor.com/Q6BU4RC5zQsAAAAd/sold-out-what.gif\",\n \"https://c.tenor.com/TK5hcjkNr_cAAAAC/gordon-ramsey-you-are-done.gif\",\n \"https://c.tenor.com/MC7K9jo7V0YAAAAC/survivor-jeff-probst.gif\",\n \"https://c.tenor.com/qYrv7LSWFFIAAAAC/finn-adventure-time.gif\",\n \"https://c.tenor.com/gKcLWQAVD8sAAAAC/done-annoyed.gif\",\n \"https://c.tenor.com/jhJp2A-K5HwAAAAd/gollum-leave-now.gif\",\n \"https://c.tenor.com/TbGZDsVxx0wAAAAC/i-dont-need-you-anymore-kyle-broflovski.gif\",\n \"https://c.tenor.com/VGmgyUMNP88AAAAC/toy-story-woody.gif\",\n \"https://c.tenor.com/FqdTy04G6m4AAAAC/i-dont-need-you-anymore-satan.gif\",\n \"https://c.tenor.com/JLpNtvfer7wAAAAM/you-need-to-go-saturday-night-live.gif\",\n \"https://c.tenor.com/JWTW52xCLycAAAAd/i-think-you-should-leave-before-i-call-the-police-eric-cartman.gif\",\n \"https://c.tenor.com/6aZotD1Q0SkAAAAC/tigger-sad.gif\",\n \"https://c.tenor.com/ipXfNs5DnFIAAAAd/get-the-hell-out-of-here-sung-won-cho.gif\",\n \"https://c.tenor.com/0Ar7aEuIPT4AAAAC/get-the-fudge-out-eric-cartman.gif\",\n \"https://c.tenor.com/Wl0r-dwasLYAAAAC/sad-the-simpsons.gif\",\n \"https://c.tenor.com/L2T_fqCrWyMAAAAC/theres-no-more-scared.gif\",\n \"https://c.tenor.com/dlJSiLUJNmsAAAAC/math-calculate.gif\",\n \"https://c.tenor.com/18sqCWkrm9oAAAAC/confused-wtf.gif\",\n \"https://c.tenor.com/3yyytNGYC7cAAAAC/empty-tank.gif\",\n \"https://c.tenor.com/q-E5wj1K6OYAAAAC/monsters-inc-sully.gif\",\n \"https://c.tenor.com/65QP-lH9krMAAAAC/no-money-donald-duck.gif\",\n \"https://c.tenor.com/lQNf6C6HDYQAAAAC/angry-kid.gif\",\n \"https://c.tenor.com/sGzHvagmSugAAAAC/staredown-forreal.gif\",\n]\n\nconst defaultWallet =\n \"addr1qyrke3hmuw29c56c8f0vmg0vzarcht70m6a2788lyp7et22mlcy7y7703za4cy7zh789jnjffstkgsgk5vhr5ks6vj5qrsvlkh\"\n\nexport const MintWolfReserved = (props) => {\n const blockfrostApiKey = props.apiKey\n const userId = props.user_id\n const mintId = props.mint_id\n const orders = props.orders ? JSON.parse(props.orders) : []\n const csrf = props.csrf\n const mintCount = props.mintCount\n const mint = props.mint ? JSON.parse(props.mint) : null\n\n let tokenPrice = 0\n\n const walletAddress = mint.payment_wallet || defaultWallet\n const policyId = mint.policy_id\n const policyScript = mint.policy_script\n\n let activeOrder = null\n const sortedOrders = orders?.sort((a, b) => (a.id > b.id ? -1 : 1))\n const lastOrder = sortedOrders?.[0]\n if (lastOrder && !lastOrder?.confirmed_on_blockchain) {\n activeOrder = lastOrder\n }\n const successfulOrders = orders?.filter((order) => order.tx_hash)\n\n if (!blockfrostApiKey) return null\n if (!userId) return null\n\n const [connected, setConnected] = useState(null)\n const [loading, setLoading] = useState(false)\n const [walletLoading, setWalletLoading] = useState(false)\n const [loadingText, setLoadingText] = useState(\"\")\n const [quantity, setQuanity] = useState(1)\n const [order, setOrder] = useState(activeOrder)\n const [successOrders, setSucessOrders] = useState(successfulOrders)\n const [soldOutGif, setSoldOutGif] = useState(null)\n const [errors, setErrors] = useState(null)\n const [success, setSuccess] = useState(null)\n const [tokenAmount, setTokenAmount] = useState(mintCount)\n\n const sortedSuccessOrders = successOrders?.sort((a, b) =>\n a.id > b.id ? -1 : 1\n )\n const hasPendingTx =\n order && !order?.confirmed_on_blockchain && order?.tx_hash\n\n const orderCreated = order?.created_at ? new Date(order?.created_at) : null\n const allowResetOrder = orderCreated?.setMinutes(\n orderCreated?.getMinutes() + 30\n )\n\n let orderOptions = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50]\n\n const total = 2\n const priceText = `${quantity} = 2 ADA`\n\n useEffect(() => {\n setSoldOutGif(soldOutGifs[Math.floor(Math.random() * soldOutGifs.length)])\n\n if (\n order &&\n !order.confirmed_on_blockchain &&\n order.tx_status != \"failed\"\n ) {\n setTimeout(refresh, 5000)\n }\n\n if (order && order.tx_errors) {\n const newErrors = order.tx_errors?.split(\";;\") || []\n setErrors([\n \"Oh no! Something went wrong and the tx couldn't be created.\",\n ...newErrors,\n ])\n }\n }, [])\n\n const handleConnect = (connectedWallet) => {\n setConnected(connectedWallet)\n }\n\n const handleOrderClick = async () => {\n setLoading(true)\n let notesText = \"RESERVED\"\n try {\n const resp = await axios.post(\n \"/orders/mint-wolf-reserved\",\n {\n order: {\n quantity: quantity,\n user_id: userId,\n total: total,\n notes: `${notesText} - ${priceText}`,\n order_type: \"WOLF\",\n mint_id: mintId,\n address: connected?.address,\n },\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n setLoading(false)\n\n if (resp?.data?.id) {\n setOrder(resp?.data)\n setTokenAmount(tokenAmount - quantity)\n setErrors(null)\n } else {\n setErrors(resp?.data)\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n const handleOrderDelete = async (o) => {\n setLoading(true)\n try {\n const resp = await axios.delete(`/orders/${o.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n setLoading(false)\n\n if (resp?.data?.deleted == true) {\n setOrder(null)\n window?.location?.reload()\n } else {\n setErrors([resp?.data?.error])\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n async function refresh() {\n const resp = await axios.get(`/orders/${order.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n const orderData = resp?.data\n\n const isDifferent = JSON.stringify(order) != JSON.stringify(orderData)\n\n if (isDifferent) {\n setOrder(orderData)\n\n if (orderData.tx_hash != order.tx_hash) {\n const newOrder = {\n ...order,\n tx_hash: orderData.tx_hash,\n tx_created_at: new Date(),\n }\n setSucessOrders([...successOrders, newOrder])\n setSuccess(\n \"Rad!\\n\\nYour transaction was successfully submitted to the blockchain.\\n\\nYou can find the tx below. It is pending but should show up in your wallet in a few minutes\"\n )\n }\n\n if (orderData.confirmed_on_blockchain != order.confirmed_on_blockchain) {\n const index = successOrders.findIndex(\n (order) => order.id == orderData.id\n )\n let newOrders = [...successOrders]\n if (index >= 0) {\n newOrders[index] = orderData\n } else {\n newOrders = [...successOrders, orderData]\n }\n\n setSucessOrders(newOrders?.sort((a, b) => (a.id > b.id ? -1 : 1)))\n\n setSuccess(\n \"Awesome!\\nYour transaction is confirmed and on the blockchain. You can mint again!\"\n )\n }\n\n if (orderData.tx_errors) {\n const newErrors = orderData.tx_errors?.split(\";;\") || []\n setSuccess(\"\")\n setErrors([\n \"Oh no! Something went wrong and the tx couldn't be created.\",\n ...newErrors,\n ])\n }\n }\n\n if (!orderData.confirmed_on_blockchain) {\n const delay = orderData.tx_hash ? 60000 : 10000\n setTimeout(refresh, delay)\n }\n }\n\n const handleMintClick = () => {\n setLoading(true)\n setLoadingText(\"Building TX ...\")\n\n const createTransaction = async () => {\n let paymentAddress = await connected.getAddress() // wallet address\n let paymentAmount = String(order.total)\n const paymentWallet = walletAddress\n const userWallet = paymentAddress\n\n let recipients = [\n {\n address: paymentWallet,\n amount: paymentAmount,\n }, // Seller Wallet, NFT price 2ADA\n {\n address: userWallet,\n amount: \"0\",\n mintedAssets: order?.nfts?.map((nft) => {\n return {\n assetName: nft,\n quantity: \"1\",\n policyId: policyId,\n policyScript: policyScript,\n }\n }),\n }, // NFTs to be minted\n ] // list of recipients\n\n let nftsMeta = {}\n let dummyNftsMeta = {}\n\n order?.nfts?.forEach((nft, index) => {\n let dummyMeta = JSON.parse(JSON.stringify(projectMetadata[nft]))\n\n Object.keys(dummyMeta?.attributes).forEach((attribute) => {\n dummyMeta.attributes[attribute] =\n \"FamousWolfFamousWolfFamousWolfFamousWolfFamousWolfFamousWolf\"\n })\n Object.keys(dummyMeta?.fwc).forEach((attribute) => {\n dummyMeta.fwc[attribute] =\n \"FamousWolfFamousWolfFamousWolfFamousWolfFamousWolfFamousWolf\"\n })\n dummyMeta?.files?.forEach((file, index) => {\n Object.keys(dummyMeta.files[index]).forEach((attribute) => {\n dummyMeta.files[index][attribute] =\n \"FamousWolfFamousWolfFamousWolfFamousWolfFamousWolfFamousWolf\"\n })\n })\n\n dummyMeta.description =\n \"FamousWolfFamousWolfFamousWolfFamousWolfFamousWolfFamousWolf\"\n dummyMeta.image =\n \"FamousWolfFamousWolfFamousWolfFamousWolfFamousWolfFamousWolf\"\n dummyMeta.mediaType =\n \"FamousWolfFamousWolfFamousWolfFamousWolfFamousWolfFamousWolf\"\n dummyMeta.Publisher =\n \"FamousWolfFamousWolfFamousWolfFamousWolfFamousWolfFamousWolf\"\n dummyMeta.Twitter =\n \"FamousWolfFamousWolfFamousWolfFamousWolfFamousWolfFamousWolf\"\n\n nftsMeta[nft] = projectMetadata[nft]\n dummyNftsMeta[nft] = dummyMeta\n })\n\n let metadata = {\n 721: {\n [policyId]: nftsMeta,\n },\n }\n\n let dummyMetadata = {\n 721: {\n [policyId]: dummyNftsMeta,\n },\n }\n\n const metadataHash = connected.hashMetadata(metadata)\n\n let utxos = null\n let netId = null\n let transaction = null\n\n try {\n utxos = await connected.getUtxosHex()\n netId = await connected.getNetworkId()\n transaction = await connected.transaction({\n PaymentAddress: paymentAddress,\n recipients: recipients,\n metadata: dummyMetadata,\n metadataHash: metadataHash,\n addMetadata: false,\n utxosRaw: utxos,\n networkId: netId?.id || 1,\n ttl: 7200,\n multiSig: true,\n })\n } catch (err) {\n let errMessage = err?.message\n if (errMessage == \"INPUTS_EXHAUSTED\")\n errMessage =\n \"INPUTS_EXHAUSTED - You don't have enough funds or utxos available\"\n console.error(err)\n setLoading(false)\n setErrors([\"Oh no! There was an error building the tx.\", errMessage])\n }\n\n let witnessBuyer = null\n try {\n witnessBuyer = await connected.signTx(transaction, true)\n setLoadingText(\"Validating TX ...\")\n } catch {\n // if user clicks cancel or Nami throws an error\n setLoading(false)\n }\n\n if (witnessBuyer) {\n try {\n let resp = null\n resp = await axios.post(\n `/orders/process/${order.id}`,\n {\n transaction,\n witness_buyer: witnessBuyer,\n user_wallet: userWallet,\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n if (resp?.data?.success) {\n setSuccess(\n \"Awesome!\\nYour transaction has been submitted to be processed. This page will update automatically.\"\n )\n setLoading(false)\n setErrors([])\n const newOrder = {\n ...order,\n tx_status: \"submitted\",\n witness_buyer: witnessBuyer,\n }\n setOrder(newOrder)\n\n // start polling for order status\n setTimeout(refresh, 5000)\n } else {\n console.log(resp?.data)\n const backendErrors = resp?.data?.errors || []\n setLoading(false)\n setErrors([\n \"Oh no! Something went wrong and Nami couldn't create the transaction. Cancel the order and try again. Or contact the SGS team to let them know.\",\n ...backendErrors,\n ])\n }\n } catch (err) {\n console.error(err)\n setLoading(false)\n setErrors([\n \"Oh no! Something went wrong. Try it again or contact the SGS team to let them know.\",\n err,\n ])\n }\n } else {\n console.error(witnessBuyer)\n setLoading(false)\n }\n }\n if (!loading) createTransaction()\n // send transaction, witnessBuyer, order, and user to backend\n }\n\n return (\n \n \n {/*
*/}\n \n \n {errors?.map((error) => (\n \n {error}\n \n ))}\n\n {success && (\n \n {\" \"}\n \n {success}\n \n {order.tx_status == \"confirmed\" && (\n window?.location?.reload()}\n >\n {\"Mint Again\"}\n \n )}\n \n )}\n\n {hasPendingTx && !success && (\n <>\n \n {`You have a pending tx/order. Wait or handle that order first before creating another.\\n\\nOur system checks the blockchain every couple of minutes.`}\n \n \n >\n )}\n\n {!order && !success && !hasPendingTx && (\n \n {connected && (\n \n {tokenAmount && tokenAmount > 0 ? (\n \n \n {`There are ${tokenAmount} tokens available\\nThey are ${tokenPrice} ADA each\\n\\n`}\n \n\n \n\n \n {`How many do you want?`}\n \n \n \n {priceText}\n \n \n {loading ? \"Creating Order ...\" : \"Submit\"}\n \n \n ) : (\n \n \n {`ALL THE TOKENS HAVE BEEN RESERVED!\\n\\nSOLD OUT!`}\n \n \n setSoldOutGif(\n soldOutGifs[\n Math.floor(Math.random() * soldOutGifs.length)\n ]\n )\n }\n >\n {\"Hit Me\"}\n \n
\n \n )}\n \n )}\n \n )}\n\n {order && [null, \"errors\"].includes(order.tx_status) && (\n \n \n\n \n {`Active Order\\nQuantity: ${order.quantity}\\nTotal: ${Number(\n order.total\n )}\\nNotes: ${order.notes}`}\n \n {connected &&\n !walletLoading &&\n (!order.witness_buyer || order.tx_errors) && (\n \n {loading\n ? loadingText\n : order.tx_errors\n ? \"Re-sign Tx\"\n : \"Sign Tx\"}\n \n )}\n {new Date() > allowResetOrder && !order.tx_hash && (\n {\n // handleNamiSuccess(\"123456abc\")\n handleOrderDelete(order)\n }}\n >\n Cancel\n \n )}\n \n )}\n\n {successOrders?.length > 0 && (\n \n \n {`Successful Orders\\n--------------------`}\n \n {sortedSuccessOrders?.map((successfulOrder, index) => {\n const txSubmitted = new Date(successfulOrder.tx_created_at)\n const txSubmittedCopy = new Date(successfulOrder.tx_created_at)\n\n const allowResetTime = txSubmittedCopy.setHours(\n txSubmitted.getHours() + 3\n )\n const allowResetTx =\n new Date() > allowResetTime &&\n successfulOrder.tx_hash &&\n !successfulOrder.confirmed_on_blockchain\n\n const txSubmittedText = `${txSubmitted.toLocaleDateString()} - ${txSubmitted.toLocaleTimeString()}`\n let txStatus = successfulOrder.confirmed_on_blockchain\n ? \"Confirmed\"\n : \"Pending\"\n if (allowResetTx) txStatus = \"Failed\"\n return (\n \n \n {`Quantity: ${successfulOrder.quantity}`}\n \n \n {`Total: ${Number(successfulOrder.total)}`}\n \n {txStatus == \"Confirmed\" && (\n \n {`NFTs: ${successfulOrder.nfts.join(\", \")}`}\n \n )}\n\n \n {`Notes: ${successfulOrder.notes}`}\n \n \n {`Tx ${txStatus}`}\n {txStatus == \"Failed\" && (\n <>\n {` - `}\n {\n if (\n window?.confirm(\n \"Are you sure you want to reset the TX hash? This should only be done for broken or failed TXs. Only do this if it's been more than 2 hours since you submitted the tx\"\n ) &&\n window.location\n ) {\n window.location.href = `/reset-order-tx/${successfulOrder.id}`\n }\n }}\n >\n Reset Order Tx\n \n {` - Only do this if it's been more than 3 hrs since you submitted the tx`}\n >\n )}\n \n \n {`Tx Hash: `}\n \n {successfulOrder.tx_hash}\n \n \n \n {`Tx Submitted: ${txSubmittedText}`}\n \n \n )\n })}\n \n {`--------------------`}\n \n \n )}\n \n \n \n \n \n {\"Powered by\\nSGS Minting\"}\n \n
\n \n \n \n \n \n )\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n top: 10,\n color: \"white !important\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"4px solid #1c1c1c\",\n bg: \"#1c1c1c\",\n py: \"12px\",\n width: [\"100%\", 300],\n borderRadius: \"8px\",\n cursor: \"pointer\",\n fontSize: \"24px\",\n userSelect: \"none\",\n display: \"block\",\n marginTop: \"25px\",\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n \"&:hover\": {\n bg: \"#2f2f2f\",\n borderColor: \"#2f2f2f\",\n },\n}\n\nexport default MintWolfReserved\n","import React, { useState, useEffect } from \"react\"\nimport { Box } from \"theme-ui\"\n\nconst AudioPlayer = ({ src = \"/Stranger_Danger.wav\", content, songTitles }) => {\n const [isPlaying, setIsPlaying] = useState(false)\n const [loop, setLoop] = useState(() => {\n return !Array.isArray(src)\n })\n\n const [trackNumber, setTrackNumber] = useState(() => {\n const value = parseInt(window.localStorage.getItem(\"trackNumber\"))\n return value || 0\n })\n\n const song = Array.isArray(src) ? src[trackNumber] : src\n\n const [autoPlay, setAutoPlay] = useState(() => {\n const value = window.localStorage.getItem(\"autoPlay\")\n let defaultValue = false\n if (value == \"true\") defaultValue = true\n if (value === null) defaultValue = true\n return defaultValue\n })\n\n useEffect(() => {\n setTimeout(() => {\n checkPlaying()\n }, 100)\n\n setTimeout(() => {\n checkPlaying()\n }, 250)\n\n setTimeout(() => {\n checkPlaying()\n }, 500)\n\n setTimeout(() => {\n checkPlaying()\n }, 750)\n\n setTimeout(() => {\n checkPlaying()\n }, 1000)\n\n setTimeout(() => {\n checkPlaying()\n }, 1500)\n\n if (autoPlay) {\n let playAttempt = setInterval(() => {\n const player = document.getElementById(\"audio\")\n\n player\n .play()\n .then(() => {\n clearInterval(playAttempt)\n })\n .catch((error) => {\n console.log(\n \"Unable to play the video, User has not interacted yet.\"\n )\n })\n\n checkPlaying()\n }, 1000)\n }\n }, [])\n\n const checkPlaying = () => {\n const player = document.getElementById(\"audio\")\n setIsPlaying(!player?.paused)\n }\n\n const handleClick = () => {\n setTimeout(() => {\n checkPlaying()\n }, 250)\n\n setTimeout(() => {\n checkPlaying()\n }, 500)\n\n const player = document.getElementById(\"audio\")\n\n if (!isPlaying) {\n setAutoPlay(true)\n const trackTime =\n parseFloat(window.localStorage.getItem(\"trackTime\")) || 0\n player.currentTime = trackTime\n player.play()\n window.localStorage.setItem(\"autoPlay\", true)\n } else {\n setAutoPlay(false)\n player.pause()\n window.localStorage.setItem(\"trackTime\", player.currentTime)\n window.localStorage.setItem(\"autoPlay\", \"false\")\n }\n }\n\n const handleNext = () => {\n let nextTrack = trackNumber + 1\n window.localStorage.setItem(\"trackTime\", 0)\n const trackCount = Array.isArray(src) ? src.length : 1\n if (nextTrack > trackCount - 1) nextTrack = 0\n setTrackNumber(nextTrack)\n }\n\n const handlePrevious = () => {\n let nextTrack = trackNumber - 1\n window.localStorage.setItem(\"trackTime\", 0)\n const trackCount = Array.isArray(src) ? src.length - 1 : 1\n if (nextTrack < 0) nextTrack = trackCount\n setTrackNumber(nextTrack)\n }\n\n useEffect(() => {\n const player = document.getElementById(\"audio\")\n // window.localStorage.setItem(\"trackTime\", 0)\n\n const handleEnded = () => {\n window.localStorage.setItem(\"trackTime\", 0)\n const currentTrack =\n parseInt(window.localStorage.getItem(\"trackNumber\")) || 0\n let nextTrack = currentTrack + 1\n const trackCount = Array.isArray(src) ? src.length : 1\n if (nextTrack > trackCount - 1) nextTrack = 0\n setTrackNumber(nextTrack)\n }\n\n player.addEventListener(\"ended\", handleEnded)\n\n return () => player.removeEventListener(\"ended\", handleEnded)\n }, [])\n\n useEffect(() => {\n if (autoPlay) handleTrackChange()\n }, [trackNumber])\n\n const handleTrackChange = () => {\n window.localStorage.setItem(\"trackNumber\", trackNumber)\n const player = document.getElementById(\"audio\")\n const trackTime = parseFloat(window.localStorage.getItem(\"trackTime\")) || 0\n player.currentTime = trackTime\n player.pause()\n player.src = Array.isArray(src) ? src[trackNumber] : src\n player.load()\n player.play()\n\n setTimeout(() => {\n checkPlaying()\n }, 100)\n\n setTimeout(() => {\n checkPlaying()\n }, 250)\n\n setTimeout(() => {\n checkPlaying()\n }, 500)\n\n setTimeout(() => {\n checkPlaying()\n }, 750)\n\n setTimeout(() => {\n checkPlaying()\n }, 1000)\n }\n\n const hasMultipleTracks = Array.isArray(src)\n\n return (\n \n \n \n {hasMultipleTracks && (\n \n )}\n \n\n {content ? {content} : null}\n {hasMultipleTracks && (\n \n )}\n\n {hasMultipleTracks && (\n {\n setLoop(!loop)\n }}\n className=\"fa fa-retweet\"\n style={{\n fontSize: \"25px\",\n marginLeft: \"10px\",\n color: loop ? \"white\" : \"#ffd5ff\",\n }}\n >\n )}\n \n {songTitles?.[trackNumber] && (\n \n \n {songTitles?.[trackNumber]}\n \n \n )}\n \n )\n}\n\nexport default AudioPlayer\n","import React from \"react\"\nimport { Box } from \"theme-ui\"\nimport { arcadeSongs, songTitles } from \"./Goatcade\"\n\nimport AudioPlayer from \"./AudioPlayer\"\n\nconst GameMusic = () => {\n return (\n \n \n \n \n \n \n {\n const player = document.getElementById(\"audio\")\n window.localStorage.setItem(\"trackTime\", player?.currentTime)\n }}\n >\n BACK\n \n \n \n \n )\n}\n\nexport default GameMusic\n","import React, { useState } from \"react\"\nimport { ThemeProvider, Box, Image as Img, Text, Link, Grid } from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport AudioPlayer from \"./AudioPlayer\"\nimport Image1 from \"images/arcade-bg-2.jpg\"\nimport Goateroids from \"images/goateroids.png\"\nimport GoatInvaders from \"images/goatinvaders.jpg\"\nimport Breakout from \"images/breakout.png\"\nimport Snake from \"images/snake-2.jpg\"\nimport Pacman from \"images/pacman-2.jpg\"\nimport MortalKombat from \"images/mortal-kombat.jpeg\"\nimport SuperSmashBros from \"images/super-smash-bros.png\"\nimport Sonic from \"images/sonic.png\"\nimport MarvelVsCapcom from \"images/marvel-vs-capcom.png\"\nimport CrashTeamRacing from \"images/crash-team-racing.jpeg\"\nimport Pokemon from \"images/pokemon.png\"\nimport Bomberman from \"images/bomberman.gif\"\nimport GoldenEye from \"images/goldeneye.jpg\"\nimport Conker from \"images/conkers-bad-fur-day.jpeg\"\nimport Diddy from \"images/diddy-kong-racing.jpg\"\nimport Doom from \"images/doom.jpeg\"\nimport MarioKart from \"images/mario-kart.jpeg\"\nimport StreetFighter from \"images/street-fighter-2.webp\"\nimport Mario64 from \"images/mario-64.jpeg\"\nimport Yugi from \"images/yugi.jpeg\"\nimport TwistedMetal from \"images/twisted-metal.jpg\"\nimport Crash from \"images/crash-bandicoot.jpg\"\nimport Dbz from \"images/dbz-supersonic-warriors.png\"\nimport SuperMario from \"images/super-mario-snes.png\"\nimport DonkeyKong from \"images/donkey-kong-country.jpeg\"\nimport TonyHawk from \"images/tony-hawk-pro-skater.jpeg\"\nimport Xmen from \"images/xmen.png\"\nimport NinjaTurtles from \"images/tmnt.png\"\n\nimport KillerInstinct from \"images/killer-instinct.jpeg\"\nimport PixelGoat1 from \"images/pixel-goat-1.png\"\nimport PixelGoat2 from \"images/pixel-goat-2.png\"\nimport PixelGoat4 from \"images/pixel-goat-4.png\"\nimport ComicBg from \"images/comics-bg.jpg\"\nimport ComicBgMobile from \"images/comics-bg-mobile.jpg\"\nimport Comic1 from \"images/comic-cover-1.jpg\"\n\nimport ConnectWallet from \"../ConnectWalletGt\"\nimport GrassRegister from \"./GrassRegister\"\nimport { BLOCKFROST_API_KEY } from \"../Constants\"\n\nexport const arcadeSongs = [\n \"/songs/arcade-champ.mp3\",\n \"/songs/game-time.mp3\",\n \"/songs/synthwave.mp3\",\n \"/songs/cyberpunk.mp3\",\n \"/songs/drop-it.mp3\",\n \"/songs/neon-gaming.mp3\",\n \"/songs/no-limits.mp3\",\n \"/songs/next.mp3\",\n \"/songs/lfgoat.mp3\",\n \"/songs/get-funky.mp3\",\n \"/songs/be-chill.mp3\",\n \"/songs/dream.mp3\",\n \"/songs/cyber-war.mp3\",\n \"/songs/bounce.mp3\",\n \"/songs/last-one.mp3\",\n]\n\nexport const songTitles = [\n \"Arcade Champ\",\n \"Game Time\",\n \"Synthwave\",\n \"Cyberpunk\",\n \"Drop It\",\n \"Neon Gaming\",\n \"No Limits\",\n \"Send It\",\n \"LFGOAT\",\n \"Get Funky\",\n \"Be Chill\",\n \"Dream\",\n \"Cyber War\",\n \"Bounce\",\n \"Last One\",\n]\n\nconst payToPlay = [\n {\n name: \"GOATEROIDS\",\n link: \"/goateroids\",\n image: Goateroids,\n gameName: \"goateriods\",\n },\n {\n name: \"GOAT INVADERS\",\n link: \"/goatinvaders\",\n image: GoatInvaders,\n gameName: \"invaders\",\n },\n { name: \"SNAKE\", link: \"/snake\", image: Snake, gameName: \"snake\" },\n {\n name: \"BREAKOUT\",\n link: \"/breakout\",\n image: Breakout,\n gameName: \"breakout\",\n },\n { name: \"PACMAN\", link: \"/pacman\", image: Pacman, gameName: \"pacman\" },\n]\nconst freeToPlay = [\n { name: \"MORTAL KOMBAT 3\", link: \"/mortal-kombat\", image: MortalKombat },\n {\n name: \"SUPER SMASH BROS\",\n link: \"/super-smash-bros\",\n image: SuperSmashBros,\n },\n { name: \"CRASH BANDICOOT\", link: \"/crash-bandicoot\", image: Crash },\n\n {\n name: \"CRASH TEAM RACING\",\n link: \"/crash-team-racing\",\n image: CrashTeamRacing,\n },\n {\n name: \"MARVEL VS CAPCOM\",\n link: \"/marvel-vs-capcom\",\n image: MarvelVsCapcom,\n },\n { name: \"NEO BOMBERMAN\", link: \"/bomberman\", image: Bomberman },\n {\n name: \"KILLER INSTINCT 2\",\n link: \"/killer-instinct\",\n image: KillerInstinct,\n },\n { name: \"DOOM\", link: \"/doom\", image: Doom },\n\n { name: \"POKEMON FIRE X RED\", link: \"/pokemon\", image: Pokemon },\n\n { name: \"SONIC THE HEDGEHOG\", link: \"/sonic\", image: Sonic },\n\n { name: \"DIDDY KONG RACING\", link: \"/diddy-kong-racing\", image: Diddy },\n\n { name: \"STREETFIGHTER II\", link: \"/streetfighter\", image: StreetFighter },\n\n { name: \"TWISTED METAL\", link: \"/twisted-metal\", image: TwistedMetal },\n\n { name: \"SUPER MARIO BROS\", link: \"/super-mario-snes\", image: SuperMario },\n\n { name: \"CONKERS BAD FUR DAY\", link: \"/conkers-bad-fur-day\", image: Conker },\n {\n name: \"Ninja Turtles\",\n link: \"/ninja-turtles\",\n image: NinjaTurtles,\n },\n { name: \"007 Golden Eye\", link: \"/goldeneye\", image: GoldenEye },\n { name: \"MARIO KART\", link: \"/mario-kart\", image: MarioKart },\n {\n name: \"DBZ SUPERSONIC WARRIORS\",\n link: \"/dbz-supersonic-warriors\",\n image: Dbz,\n },\n { name: \"YU-GI-OH SACRED CARDS\", link: \"/yu-gi-oh\", image: Yugi },\n {\n name: \"DONKEY KONG COUNTRY\",\n link: \"/donkey-kong-country\",\n image: DonkeyKong,\n },\n { name: \"SUPER MARIO 64\", link: \"/mario-64\", image: Mario64 },\n {\n name: \"TONY HAWK PRO SKATER\",\n link: \"/tony-hawk-pro-skater\",\n image: TonyHawk,\n },\n {\n name: \"X-MEN\",\n link: \"/x-men\",\n image: Xmen,\n },\n]\n\nconst comics = [\n {\n title: \"001\",\n link: \"https://drive.google.com/file/d/1z3UFbBZmjOSdX2zxpaxG7f-iUYcaOSsx/view\",\n image: Comic1,\n },\n]\n\nexport const Goatcade = (props) => {\n const goateriods = props.goateriods ? JSON.parse(props.goateriods) : []\n const invaders = props.invaders ? JSON.parse(props.invaders) : []\n const snake = props.snake ? JSON.parse(props.snake) : []\n const breakout = props.breakout ? JSON.parse(props.breakout) : []\n const pacman = props.pacman ? JSON.parse(props.pacman) : []\n const show_admin = props.show_admin\n let activeOrder = props.active_order || {}\n\n const [connected, setConnected] = useState(null)\n const [walletLoading, setWalletLoading] = useState(false)\n const [walletRefresh, setWalletRefresh] = useState(1)\n\n const handleConnect = (connectedWallet) => {\n setConnected(connectedWallet)\n }\n\n const ogPolicy = \"c281975562f394761771f13f599881517fa8455946e7e30454de22da\"\n const goatiaPolicy =\n \"bbb6c713c497b8a9c3390a2157bac72d730ce842b27b5672d3b3d51f\"\n\n const ogs =\n connected?.balance?.assets?.filter((nft) => nft.policy == ogPolicy) || []\n\n const goatia =\n connected?.balance?.assets?.filter((nft) => nft.policy == goatiaPolicy) ||\n []\n\n const hasGoats = connected && (ogs?.length > 0 || goatia?.length > 0)\n\n // console.log(\"goateriods\", goateriods)\n // console.log(\"invaders\", invaders)\n // console.log(\"snake\", snake)\n // console.log(\"breakout\", breakout)\n // console.log(\"pacman\", pacman)\n\n const scores = {\n goateriods,\n invaders,\n snake,\n breakout,\n pacman,\n }\n\n const [accepted, setAccepted] = useState(() => {\n let defaultValue = !!activeOrder?.id\n const alreadyAccepted = parseInt(window.localStorage.getItem(\"accepted\"))\n if (alreadyAccepted) defaultValue = true\n return defaultValue\n })\n const [showDisclaimer, setShowDisclaimer] = useState(false)\n const [showRules, setShowRules] = useState(false)\n const [showPrizes, setShowPrizes] = useState(false)\n\n return (\n \n \n \n \n \n \n
\n {!accepted && (\n \n \n \n I agree to abide by all arcade{\" \"}\n setShowRules(true)}\n style={{ color: \"yellow\" }}\n >\n RULES\n {\" \"}\n and believe GOAT Tribe is a{\" \"}\n BLUE CHIP.\n \n
\n {\n document.getElementById(\"agree-button\").play()\n window.localStorage.setItem(\"accepted\", 1)\n setAccepted(true)\n }}\n >\n LFGOAT\n \n \n \n )}\n {showDisclaimer && (\n {\n setShowDisclaimer(false)\n }}\n className=\"press_start\"\n >\n \n \n All of the free games are provided via retrogames.cc\n \n \n We have no affliation with retrogames or the games found on\n their site.\n \n \n Many titles may resemble popular games but are actually\n recreated versions online.\n \n \n Retrogames relies on ads to run their site. If you don't want to\n view the ads, we recommend installing a simple Ad Blocker\n extension\n \n \n LFGOAT\n \n \n \n )}\n {showRules && (\n \n \n Rules\n \n 1. Do not try to cheat or use the Goatcade in unintended ways.\n Anyone caught cheating will immediately have their account\n blacklisted\n \n \n 2. The free games and popular titles are provided via\n retrogames.cc. We have no affiliation with retrogames or the\n titles on their site\n \n 3. GOAT Tribe is a blue chip\n {\n document.getElementById(\"goatia-button\").play()\n setShowRules(false)\n }}\n >\n I AGREE\n \n \n \n )}\n {showPrizes && (\n {\n setShowPrizes(false)\n }}\n className=\"press_start\"\n >\n \n \n {\"JUNE REWARDS POOL\\n\\n5000 $GRASS\\n5 DNA Kits\\n5 GOATIA\"}\n \n \n \n {\n \"1st - 30% + DNA Kit\\n2nd - 25% + Goatia\\n3rd - 20%\\n4th - 15%\\n5th - 10%\"\n }\n \n \n \n Arcade prizes will be distributed at the end of every month\n \n \n Monthly rewards vary, but generally the top of the leaderboard\n gets a higher % GRASS or valuable NFTs\n \n \n LFGOAT\n \n \n \n )}\n\n \n \n \n \n GO\n ATC\n ADE\n
\n \n \n \n \n \n \n setShowRules(true)}\n >\n RULES\n \n \n {show_admin && (\n \n \n \n GT ADMIN\n \n \n \n )}\n \n\n \n \n \n \n \n\n {connected && !hasGoats && (\n \n \n You must have an unstaked OG GOAT or Goatia to access the\n arcade\n \n \n {\n document.getElementById(\"og-button\").play()\n window.open(\"https://www.jpg.store/collection/goattribe\")\n }}\n >\n
\n OG\n \n {\n document.getElementById(\"og-button\").play()\n window.open(\n \"https://www.jpg.store/collection/goattribegoatia\"\n )\n }}\n >\n
\n GOATIA\n \n \n \n )}\n\n {connected && hasGoats && (\n \n {\n document.getElementById(\"agree-button\").play()\n setShowPrizes(true)\n }}\n >\n PAY TO PLAY\n \n \n {payToPlay.map((game) => {\n return (\n \n \n {\n const player = document.getElementById(\"audio\")\n window.localStorage.setItem(\n \"trackTime\",\n player?.currentTime\n )\n }}\n >\n \n
\n \n {game.name}\n \n \n \n \n \n \n High Scores\n \n {[0, 1, 2, 3, 4].map((index) => {\n const gameScores = scores[game.gameName]\n return (\n \n \n {gameScores?.[index]?.user || \"LFGOAT\"}\n \n \n \n {gameScores?.[index]?.score || 0}\n \n \n )\n })}\n \n \n \n \n )\n })}\n \n \n )}\n \n {connected && hasGoats && (\n \n )}\n \n\n \n {connected && hasGoats && (\n \n {\n setShowDisclaimer(true)\n }}\n >\n FREE TO PLAY\n \n \n {freeToPlay.map((game) => {\n return (\n {\n const player = document.getElementById(\"audio\")\n window.localStorage.setItem(\n \"trackTime\",\n player?.currentTime\n )\n }}\n >\n \n
\n \n {game.name}\n \n \n \n )\n })}\n \n \n )}\n \n \n {connected && hasGoats && (\n \n {\n document.getElementById(\"paper-button\").play()\n window.open(\n \"https://www.jpg.store/collection/goatgeneration001\"\n )\n }}\n >\n COMICS\n \n \n
\n
\n \n {comics.map((comic) => {\n return (\n \n {\n document.getElementById(\"paper-button\").play()\n window.open(comic.link)\n }}\n >\n \n
\n \n {comic.title}\n \n \n \n \n )\n })}\n \n \n \n )}\n \n \n \n )\n}\n\nexport default Goatcade\n","import React, { useState, useEffect } from \"react\"\nimport { Box, Image as Img, Link, Grid, Select } from \"theme-ui\"\nimport axios from \"axios\"\n\nimport Grass1 from \"images/grass-machine.png\"\nimport Grass2 from \"images/grass-machine-2.png\"\n\nexport const GrassRegister = (props) => {\n const userId = props.user_id\n const csrf = props.csrf\n const walletRefresh = props.walletRefresh || 1\n const setWalletRefresh = props.setWalletRefresh\n let activeOrder = props.active_order || {}\n const connected = props.connected\n const walletLoading = props.walletLoading\n const arcadeWallet =\n \"addr1qxwdpzm7y8vskurs6llm330lk0xpu9xwdrrjaqywxcrm08zwlr38q99p23p3747m2zqdlznpm3zc8sec90exfe2ua8fs6k9s8t\"\n const [order, setOrder] = useState(activeOrder)\n const [errors, setErrors] = useState(null)\n const [success, setSuccess] = useState(null)\n const [loading, setLoading] = useState(false)\n const [tokenSelect, setTokenSelect] = useState(\"GRASS\")\n const [open, setOpen] = useState(false)\n const [loadingText, setLoadingText] = useState(\"\")\n const hasPendingTx = order && order?.tx_hash && !order?.tx_hash_confirmed\n const orderCompleted = order && order?.tx_hash && order?.tx_hash_confirmed\n\n const acceptedTokens = [\n {\n name: \"GRASS\",\n policy: \"32cc9c6c3456bc048d14a4a8e4ee3592e9664e8daac921a8ef52d92a\",\n price: 100 * 1000000,\n description: \"10 CREDITS FOR 100 $GRASS\",\n },\n {\n name: \"SNEK\",\n policy: \"279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f\",\n price: 25000,\n description: \"10 CREDITS FOR 25k $SNEK\",\n },\n {\n name: \"HOSKY\",\n policy: \"a0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235\",\n price: 250000000,\n description: \"10 CREDITS FOR 250M $HOSKY\",\n },\n {\n name: \"$DERP\",\n policy: \"961f2cac0bb1967d74691af179350c1e1062c7298d1f7be1e4696e31\",\n price: 400,\n description: \"10 CREDITS FOR 400 $DERP\",\n },\n {\n name: \"CLAY\",\n policy: \"38ad9dc3aec6a2f38e220142b9aa6ade63ebe71f65e7cc2b7d8a8535\",\n price: 500 * 10000,\n description: \"10 CREDITS FOR 500 $CLAY\",\n },\n {\n name: \"SOCIETY\",\n policy: \"25f0fc240e91bd95dcdaebd2ba7713fc5168ac77234a3d79449fc20c\",\n price: 150 * 1000000,\n description: \"10 CREDITS FOR 150 $SOCIETY\",\n },\n {\n name: \"DEAD\",\n policy: \"6194158d24d71eca5cc5601c45de123bf78d02c297e851be2608810a\",\n price: 2000,\n description: \"10 CREDITS FOR 2k $DEAD\",\n },\n {\n name: \"DING\",\n policy: \"ce5b9e0f8a88255b65f2e4d065c6e716e9fa9a8a86dfb86423dd1ac0\",\n price: 500 * 1000000,\n description: \"10 CREDITS FOR 500 $DING\",\n },\n {\n name: \"KNIGHT\",\n policy: \"c0a36422d825edad4dabf658d127d681f1c53935b500c0a1b6d0499e\",\n price: 100000000,\n description: \"10 CREDITS FOR 100M $KNIGHT\",\n },\n {\n name: \"SACT\",\n policy: \"4fd6d8b1eac12b029cd68acd25220c20dd13b9c4b0d0b585d49135d3\",\n price: 2000,\n description: \"10 CREDITS FOR 2k $SACT\",\n },\n {\n name: \"UGLY\",\n policy: \"95a15fafc24be11478735df6fa4eaba6e6319c27f24ced13f39bea44\",\n price: 1.25 * 1000000,\n description: \"10 CREDITS FOR 1.25 $UGLY\",\n },\n ]\n\n const selectedToken = acceptedTokens.find(\n (token) => token.name == order?.notes\n )\n\n const [showTx, setShowTx] = useState(!!activeOrder?.id)\n const [hovered, setHovered] = useState(false)\n\n useEffect(() => {\n refresh()\n if (order?.id && !order.tx_hash_confirmed && order.tx_status != \"failed\") {\n setTimeout(refresh, 5000)\n }\n\n if (order && order.tx_errors) {\n const newErrors = order.tx_errors?.split(\";;\") || []\n setErrors([\n \"There was an error. Re-sign the tx and try again.\",\n ...newErrors,\n ])\n }\n }, [])\n\n async function refresh() {\n console.log(\"refresh\")\n if (!order?.id) return null\n\n const resp = await axios.get(`/orders/${order?.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n const orderData = resp?.data\n const isDifferent = JSON.stringify(order) != JSON.stringify(orderData)\n if (isDifferent && orderData?.id) {\n setOrder(orderData)\n\n if (orderData.tx_hash && !orderData.tx_hash_confirmed) {\n setSuccess(\n \"Your tx was successfully submitted\\n\\nCredits will be added to your account once it is confirmed\"\n )\n }\n\n if (orderData.tx_hash_confirmed) {\n setSuccess(\n \"Order was confirmed. Credits should be added to your account\"\n )\n setWalletRefresh(walletRefresh + 1)\n document.getElementById(\"gt-credits-number\").innerHTML =\n orderData?.credits\n }\n\n if (orderData.tx_errors) {\n const newErrors = orderData.tx_errors?.split(\";;\") || []\n setSuccess(\"\")\n setErrors([\n \"There was an error. Re-sign the tx and try again.\",\n ...newErrors,\n ])\n }\n }\n\n if (!orderData.tx_hash_confirmed) {\n const delay = orderData.tx_hash ? 30000 : 10000\n setTimeout(refresh, delay)\n }\n }\n\n const handleOrderClick = async (tokenType) => {\n setLoading(true)\n setSuccess(\"\")\n try {\n const resp = await axios.post(\n \"/orders/gt-arcade\",\n {\n order: {\n quantity: 10,\n user_id: userId,\n total: tokenType == \"ADA\" ? 20 : 0,\n notes: tokenType,\n order_type: \"GT-ARCADE\",\n address: connected?.address,\n },\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n setLoading(false)\n\n if (resp?.data?.id) {\n setOrder(resp?.data)\n setErrors(null)\n } else {\n setErrors(resp?.data)\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n const handleOrderDelete = async (o) => {\n setLoading(true)\n try {\n const resp = await axios.delete(`/orders/${o.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n setLoading(false)\n\n if (resp?.data?.deleted == true) {\n setOrder(null)\n } else {\n setErrors([resp?.data?.error])\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n const handleTxClick = () => {\n setLoading(true)\n setLoadingText(\"BUILDING\")\n\n const createTransaction = async () => {\n let paymentAddress = connected?.address\n const userWallet = paymentAddress\n\n const tokenPayment = [\n {\n unit: `${selectedToken?.policy}.${selectedToken?.name}`,\n quantity: selectedToken?.price,\n },\n ]\n\n let dummyNftsMeta = {\n TEST: {\n Test: \"GoatTribeGoatTribeGoatTribeGoatTribeGoatTribeGoatTribe\",\n Publisher: \"GoatTribeGoatTribeGoatTribeGoatTribeGoatTribeGoatTribe\",\n Twitter: \"GoatTribeGoatTribeGoatTribeGoatTribeGoatTribeGoatTribe\",\n },\n }\n\n let dummyMetadata = {\n 721: {\n 1234: dummyNftsMeta,\n },\n }\n\n const assetsValid = true\n\n let recipients = []\n\n if (selectedToken) {\n recipients = [\n {\n address: arcadeWallet,\n amount: \"0\",\n assets: tokenPayment,\n },\n ]\n } else {\n recipients = [\n {\n address: arcadeWallet,\n amount: \"20\",\n },\n ]\n }\n\n let utxos = null\n let netId = null\n let transaction = null\n\n if (assetsValid) {\n try {\n utxos = await connected.getUtxosHex()\n netId = await connected.getNetworkId()\n transaction = await connected.transaction({\n PaymentAddress: paymentAddress,\n recipients: recipients,\n metadata: dummyMetadata,\n addMetadata: false,\n utxosRaw: utxos,\n networkId: netId?.id || 1,\n ttl: 7200,\n })\n } catch (err) {\n let errMessage = err?.message\n if (errMessage == \"INPUTS_EXHAUSTED\")\n errMessage =\n \"UXTOs exhausted - You don't have enough funds or it's too many utxos.\\n\\nTry sending yourself all/most of your selected tokens to your same wallet address. That will put everything on one utxo. Then resign the tx and try again.\"\n console.error(err)\n setLoading(false)\n setErrors([errMessage])\n }\n } else {\n setLoading(false)\n setErrors([\"Oh no! There was an error building the tx.\"])\n }\n\n let witnessBuyer = null\n try {\n witnessBuyer = await connected.signTx(transaction, true)\n } catch {\n // if user clicks cancel or Nami throws an error\n setLoading(false)\n }\n\n if (witnessBuyer) {\n try {\n let resp = null\n resp = await axios.post(\n `/orders/process/${order.id}`,\n {\n transaction,\n witness_buyer: witnessBuyer,\n user_wallet: userWallet,\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n if (resp?.data?.success) {\n setSuccess(\n \"Confirmed ...\\n\\nYour transaction has been submitted to be processed.\"\n )\n setLoading(false)\n setErrors([])\n const newOrder = {\n ...order,\n tx_status: \"submitted\",\n witness_buyer: witnessBuyer,\n }\n setOrder(newOrder)\n\n // start polling for order status\n setTimeout(refresh, 5000)\n } else {\n console.log(resp?.data)\n const backendErrors = resp?.data?.errors || []\n setLoading(false)\n setErrors([\n \"Something went wrong and we couldn't create the transaction. Try again or contact the team to let them know.\",\n ...backendErrors,\n ])\n }\n } catch (err) {\n console.error(err)\n setLoading(false)\n setErrors([\n \"Oh no! Something went wrong. Try it again or contact the team to let them know.\",\n err,\n ])\n }\n } else {\n console.error(witnessBuyer)\n setLoading(false)\n }\n }\n if (!loading) createTransaction()\n // send transaction, witnessBuyer, order, and user to backend\n }\n\n const ogPolicy = \"c281975562f394761771f13f599881517fa8455946e7e30454de22da\"\n const goatiaPolicy =\n \"bbb6c713c497b8a9c3390a2157bac72d730ce842b27b5672d3b3d51f\"\n\n const ogs =\n connected?.balance?.assets?.filter((nft) => nft.policy == ogPolicy) || []\n\n const goatia =\n connected?.balance?.assets?.filter((nft) => nft.policy == goatiaPolicy) ||\n []\n\n const hasGoats = connected && (ogs?.length > 0 || goatia?.length > 0)\n\n return (\n <>\n \n {connected && hasGoats && (\n {\n document.getElementById(\"grass-register\").play()\n setShowTx(true)\n }}\n onMouseEnter={() => {\n setHovered(true)\n document.getElementById(\"grass-register\").play()\n }}\n onMouseLeave={() => {\n setHovered(false)\n }}\n >\n
\n
\n \n )}\n \n \n \n {\n setShowTx(false)\n }}\n >\n \n GRASS REGISTER\n \n {connected && order?.id && (\n \n \n {`Order ${order.id}`}\n \n {errors && errors.length > 0 && (\n \n {errors?.map((error) => (\n \n {error}\n \n ))}\n \n )}\n\n {success && (\n \n \n {success}\n \n \n )}\n\n {hasPendingTx && !success && (\n <>\n \n {`You have a pending tx\\nWait for the tx to be confirmed\\n\\nOur system checks the blockchain every few seconds`}\n \n >\n )}\n\n {order?.id && [null, \"errors\"].includes(order.tx_status) && (\n \n \n {selectedToken?.description}\n {order.notes == \"ADA\" && \"10 CREDITS FOR 20 ADA\"}\n \n \n \n {\n handleOrderDelete(order)\n }}\n >\n CANCEL\n \n \n {!walletLoading &&\n (!order.witness_buyer || order.tx_errors) && (\n \n {loading\n ? loadingText\n : order.tx_errors\n ? \"RE-SIGN\"\n : \"BUILD TX\"}\n \n )}\n \n \n )}\n\n {orderCompleted && (\n \n \n \n {`Tx Hash: `}\n \n {order.tx_hash}\n \n \n\n {\n setOrder(null)\n setShowTx(false)\n activeOrder = {}\n }}\n >\n CLEAR\n \n \n \n )}\n \n )}\n\n {!order?.id && (\n \n {\n setOpen(!open)\n }}\n >\n TOKEN:\n \n \n {tokenSelect}\n \n {open && (\n \n {acceptedTokens.map((token) => (\n {\n setTokenSelect(token.name)\n setOpen(false)\n }}\n >\n {token.name}\n \n ))}\n \n )}\n \n \n\n {acceptedTokens.map((token, index) =>\n token.name == tokenSelect ? (\n {\n handleOrderClick(token.name)\n }}\n >\n {token.description}\n \n ) : null\n )}\n {\n handleOrderClick(\"ADA\")\n }}\n >\n 10 CREDITS FOR 20 ADA\n \n \n \n BUY $GRASS\n \n \n \n )}\n \n \n \n >\n )\n}\n\nconst btnStyles = {\n color: \"black\",\n width: \"100%\",\n bg: \"white\",\n padding: [\"12px 10px\", \"12px 40px\"],\n display: \"inline-block\",\n cursor: \"pointer\",\n border: \"4px solid black\",\n whiteSpace: [\"nowrap\"],\n fontSize: [\"12px\", \"14px\"],\n \"&:hover\": {\n color: \"white\",\n bg: \"black\",\n border: \"4px solid white\",\n },\n}\n\nexport default GrassRegister\n","import React from \"react\"\nimport { Box, Grid, Text } from \"theme-ui\"\n\nconst GameScores = ({ scores }) => {\n const gameScores = scores ? JSON.parse(scores) : []\n\n return (\n \n \n \n \n High Scores\n \n {[0, 1, 2, 3, 4].map((index) => {\n return (\n \n \n {gameScores?.[index]?.user || \"LFGOAT\"}\n \n \n {gameScores?.[index]?.score || 0}\n \n )\n })}\n \n \n \n )\n}\n\nexport default GameScores\n","import React, { useEffect, useState } from \"react\"\nimport {\n ThemeProvider,\n Box,\n Grid,\n Image as Img,\n Paragraph,\n Input,\n Link,\n} from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport Goat2 from \"images/goat-2.png\"\nimport Goat3 from \"images/goat-3.png\"\nimport Goat4 from \"images/goat-4.png\"\n\nfunction preloadImage(url) {\n var img = new Image()\n img.src = url\n}\n\nconst bgColors = [\n \"#8fabdc\",\n \"#fb1420\",\n \"#1d77eb\",\n]\nconst goats = [\n Goat2,\n Goat3,\n Goat4,\n]\nconst phrases = [\n \"HIT ME\",\n \"LFGOAT\",\n \"BLEEEAT\",\n \"BLUE CHIP\",\n \"F*CK ETH\",\n \"GOAT TRIBE\",\n \"CLICKY CLICK\",\n \"BAAAH\",\n \"BILO RULES\",\n \"DO IT\",\n \"LFINVEST\",\n \"BLEAT IT\",\n \"SHHHHH\",\n]\nconst getRandomNumber = (previous) => {\n let num = Math.floor(Math.random() * goats.length)\n if (num == previous) num = Math.floor(Math.random() * goats.length)\n if (num == previous) num = Math.floor(Math.random() * goats.length)\n return num\n}\n\nexport const SgsHome = (props) => {\n const mintLink = props.mintLink\n\n const mints = JSON.parse(props.mints)\n const userMints = JSON.parse(props.userMints)\n\n const drrsMint = mints?.find((mint) => mint.name == \"DRRS\")\n const drrsUserMint = userMints?.find((uMint) => uMint.mint_id == drrsMint?.id)\n const isWl = drrsUserMint?.is_wl\n\n const [randomNumber, setRandomNumber] = useState(getRandomNumber())\n const [phrase, setPhrase] = useState(0)\n\n const randomGoat = goats[randomNumber]\n const randomBg = bgColors[randomNumber]\n\n const handleClick = () => {\n setRandomNumber(getRandomNumber(randomNumber))\n setPhrase(getRandomNumber(phrase))\n }\n\n useEffect(() => {\n goats.forEach((goat) => {\n preloadImage(goat)\n })\n }, [])\n\n return (\n \n {/* */}\n\n \n
\n \n \n {\"You made it! \\n\\nWelcome to the SGS \\n\\nLFGOAT!\"}\n \n \n {phrases[phrase]}\n \n {mints?.map((mint) => {\n const isRegistered = userMints?.find(\n (userMint) => userMint.mint_id == mint.id\n )\n const registerText = isRegistered ? `Unregister` : `Register`\n const registerPath = isRegistered\n ? `unregister-mint`\n : `register-mint`\n\n const baseUrl = `${location?.protocol}//${mint.subdomain}.${location?.host?.replace('www.', '')}`\n\n return (\n <>\n {isRegistered && (\n \n {`${mint.name} Mint`}\n \n )}\n {\n if (isRegistered) {\n if (\n !window?.confirm(\n \"Are you sure you want to unregister from the mint?\\n\\nThis will remove any WL status you have for the mint\"\n ) &&\n window.location\n ) {\n e.preventDefault()\n }\n }\n }}\n >\n {`${registerText} ${mint.name} Mint`}\n \n >\n )\n })}\n {/* {mintLink && (\n \n Mint Link\n \n )} */}\n {/* \n Claim Drops\n */}\n \n \n \n )\n}\n\nexport default SgsHome\n","import React, { useEffect, useState } from \"react\"\nimport {\n ThemeProvider,\n Box,\n Image as Img,\n Paragraph,\n Input,\n Link,\n} from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport Goat2 from \"images/goat-2.png\"\nimport Goat3 from \"images/goat-3.png\"\nimport Goat4 from \"images/goat-4.png\"\n\nfunction preloadImage(url) {\n var img = new Image()\n img.src = url\n}\n\nconst bgColors = [\n \"#8fabdc\",\n \"#fb1420\",\n \"#1d77eb\",\n]\nconst goats = [\n Goat2,\n Goat3,\n Goat4,\n\n]\nconst phrases = [\n \"HIT ME\",\n \"LFGOAT\",\n \"BLEEEAT\",\n \"BLUE CHIP\",\n \"F*CK ETH\",\n \"GOAT TRIBE\",\n \"CLICK ME\",\n \"BAAAH\",\n \"BILO RULES\",\n \"DO IT\",\n \"LFINVEST\",\n]\nconst waitingGifs = [\n \"https://c.tenor.com/-P-xeHYEY9QAAAAd/sad-pablo-lonely.gif\",\n \"https://c.tenor.com/rec5dlPBK2cAAAAd/mr-bean-waiting.gif\",\n \"https://c.tenor.com/DijuQ74YJnwAAAAC/hitmans-bodyguard-hitmans-bodyguard-gi-fs.gif\",\n \"https://c.tenor.com/vTY0qobiAtsAAAAC/judge-judy-time.gif\",\n \"https://c.tenor.com/WSDlnEeAG48AAAAC/waiting-spongebob.gif\",\n \"https://c.tenor.com/fyylSNGrZ80AAAAd/well-waiting.gif\",\n \"https://c.tenor.com/ZhnTD1C2eJsAAAAd/dog-cute.gif\",\n \"https://c.tenor.com/1qYRipB8yqwAAAAC/will-ferrell-say-something.gif\",\n \"https://c.tenor.com/89P_KY3375QAAAAC/stone-cold-steve-austin.gif\",\n \"https://c.tenor.com/S8H2f8iDMKYAAAAC/waiting-aiw.gif\",\n \"https://c.tenor.com/MWUQNMa9qXYAAAAC/lisa-simpson-waiting-for-an-answer.gif\",\n \"https://c.tenor.com/2v8EwMyAny8AAAAC/please-hmm.gif\",\n \"https://c.tenor.com/CKxw634NBOMAAAAC/rick-and-morty-i-cant-take-it-anymore-i-just-want-to-die.gif\",\n \"https://c.tenor.com/iIR6arMpYCIAAAAC/forever-sandlot.gif\",\n \"https://c.tenor.com/sKg02SlxaoQAAAAC/red-goobler-solar-opposites.gif\",\n \"https://c.tenor.com/NMLAWSo-mqIAAAAd/yoda-patience.gif\",\n \"https://c.tenor.com/WrGifwMDFugAAAAC/patience-young.gif\",\n \"https://c.tenor.com/U78pJ-UPQ3kAAAAC/cat-patience-cat.gif\",\n \"https://c.tenor.com/o6r7p0Dhr9AAAAAC/im-isaiah.gif\",\n \"https://c.tenor.com/F02lwzSKPSAAAAAd/horse-man-drunk-carrying-a-horse.gif\",\n \"https://c.tenor.com/ycKJas-YT0UAAAAM/im-waiting-aki-and-paw-paw.gif\",\n \"https://c.tenor.com/btU_dDhCocIAAAAC/waiting-cookie.gif\",\n \"https://c.tenor.com/lQNf6C6HDYQAAAAC/angry-kid.gif\",\n \"https://c.tenor.com/sGzHvagmSugAAAAC/staredown-forreal.gif\",\n \"https://c.tenor.com/PX6i9045kWAAAAAC/daddy-chill.gif\",\n \"https://c.tenor.com/alnE0X0fbV8AAAAC/chill-chill-out.gif\",\n \"https://c.tenor.com/oWvq12gtjDIAAAAC/high-pineapple-express.gif\",\n \"https://c.tenor.com/FKn-8Ac5M7oAAAAC/no-bugs-bunny.gif\",\n \"https://c.tenor.com/zK6-iEBjjcEAAAAC/no-nooo.gif\",\n \"https://c.tenor.com/1FR4o42djy8AAAAC/spiderman-magic.gif\",\n]\n\nconst soldOutGifs = [\n \"https://c.tenor.com/sKg02SlxaoQAAAAC/red-goobler-solar-opposites.gif\",\n \"https://c.tenor.com/0hNIHb95iDMAAAAC/no-more-rebel-wilson.gif\",\n \"https://c.tenor.com/WejWsIlk3_cAAAAd/thats-enough-okay-jason-bateman.gif\",\n \"https://c.tenor.com/hKsgsuQ5N8MAAAAC/cymbals-monkey-brain.gif\",\n \"https://c.tenor.com/98QJc8KJsMkAAAAC/gimme-no-more.gif\",\n \"https://c.tenor.com/N2ibf5aQj2gAAAAC/dragrace-bitch-you-done.gif\",\n \"https://c.tenor.com/3DGYbblZUasAAAAd/youre-done-done-son.gif\",\n \"https://c.tenor.com/ig55vSh4xHwAAAAC/throw-dog.gif\",\n \"https://c.tenor.com/VJz7OLQ8DkQAAAAM/heather-dubrow-shannon-beador.gif\",\n \"https://c.tenor.com/MPsGPP25j70AAAAC/good-day-fez.gif\",\n \"https://c.tenor.com/J3mNIbj6A4wAAAAd/empty-shelves-john-travolta.gif\",\n \"https://c.tenor.com/UbGii9oGosoAAAAC/money-wallet.gif\",\n \"https://c.tenor.com/nd2wxsrTXYEAAAAd/level-up-next-level.gif\",\n \"https://c.tenor.com/WS9TNssQALkAAAAd/roughneck-rabbits-roughneck.gif\",\n \"https://c.tenor.com/Q6BU4RC5zQsAAAAd/sold-out-what.gif\",\n \"https://c.tenor.com/TK5hcjkNr_cAAAAC/gordon-ramsey-you-are-done.gif\",\n \"https://c.tenor.com/MC7K9jo7V0YAAAAC/survivor-jeff-probst.gif\",\n \"https://c.tenor.com/qYrv7LSWFFIAAAAC/finn-adventure-time.gif\",\n \"https://c.tenor.com/gKcLWQAVD8sAAAAC/done-annoyed.gif\",\n \"https://c.tenor.com/jhJp2A-K5HwAAAAd/gollum-leave-now.gif\",\n \"https://c.tenor.com/TbGZDsVxx0wAAAAC/i-dont-need-you-anymore-kyle-broflovski.gif\",\n \"https://c.tenor.com/VGmgyUMNP88AAAAC/toy-story-woody.gif\",\n \"https://c.tenor.com/FqdTy04G6m4AAAAC/i-dont-need-you-anymore-satan.gif\",\n \"https://c.tenor.com/JLpNtvfer7wAAAAM/you-need-to-go-saturday-night-live.gif\",\n \"https://c.tenor.com/JWTW52xCLycAAAAd/i-think-you-should-leave-before-i-call-the-police-eric-cartman.gif\",\n \"https://c.tenor.com/6aZotD1Q0SkAAAAC/tigger-sad.gif\",\n \"https://c.tenor.com/ipXfNs5DnFIAAAAd/get-the-hell-out-of-here-sung-won-cho.gif\",\n \"https://c.tenor.com/0Ar7aEuIPT4AAAAC/get-the-fudge-out-eric-cartman.gif\",\n \"https://c.tenor.com/Wl0r-dwasLYAAAAC/sad-the-simpsons.gif\",\n \"https://c.tenor.com/L2T_fqCrWyMAAAAC/theres-no-more-scared.gif\",\n \"https://c.tenor.com/dlJSiLUJNmsAAAAC/math-calculate.gif\",\n \"https://c.tenor.com/18sqCWkrm9oAAAAC/confused-wtf.gif\",\n \"https://c.tenor.com/3yyytNGYC7cAAAAC/empty-tank.gif\",\n \"https://c.tenor.com/q-E5wj1K6OYAAAAC/monsters-inc-sully.gif\",\n \"https://c.tenor.com/65QP-lH9krMAAAAC/no-money-donald-duck.gif\",\n \"https://c.tenor.com/lQNf6C6HDYQAAAAC/angry-kid.gif\",\n \"https://c.tenor.com/sGzHvagmSugAAAAC/staredown-forreal.gif\",\n]\n\nconst getRandomNumber = (previous) => {\n let num = Math.floor(Math.random() * goats.length)\n if (num == previous) num = Math.floor(Math.random() * goats.length)\n if (num == previous) num = Math.floor(Math.random() * goats.length)\n return num\n}\n\nexport const MintInactive = (props) => {\n const [randomNumber, setRandomNumber] = useState(getRandomNumber())\n const [waitingGif, setWaitingGif] = useState(null)\n const [soldOutGif, setSoldOutGif] = useState(null)\n const tokenStart = props.mint_access_token_start\n const tokenEnd = props.mint_access_token_end\n\n const randomGoat = goats[randomNumber]\n const randomBg = bgColors[randomNumber]\n\n useEffect(() => {\n goats.forEach((goat) => {\n preloadImage(goat)\n })\n setWaitingGif(waitingGifs[Math.floor(Math.random() * waitingGifs.length)])\n setSoldOutGif(soldOutGifs[Math.floor(Math.random() * soldOutGifs.length)])\n }, [])\n\n const mintStart = new Date(tokenStart)\n const mintEnd = new Date(tokenEnd)\n\n const mintTokenStart = `${mintStart.toLocaleDateString()} - ${mintStart.toLocaleTimeString()}`\n\n const mintTokenEnd = `${mintEnd.toLocaleDateString()} - ${mintEnd.toLocaleTimeString()}`\n\n const isPreMint = new Date() < mintStart\n const isPostMint = new Date() > mintEnd\n\n return (\n \n \n
\n \n \n \n {`SGS isn't minting right now`}\n \n \n setSoldOutGif(\n soldOutGifs[Math.floor(Math.random() * soldOutGifs.length)]\n )\n }\n >\n {\"LFGOAT\"}\n \n
\n \n\n \n Back\n \n \n \n \n )\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n top: 10,\n color: \"white !important\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"4px solid black\",\n bg: \"black\",\n py: \"12px\",\n width: [\"100%\", 300],\n borderRadius: \"8px\",\n cursor: \"pointer\",\n fontSize: \"24px\",\n userSelect: \"none\",\n display: \"block\",\n marginTop: \"25px\",\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n \"&:hover\": {\n bg: \"#1c1c1c\",\n borderColor: \"#1c1c1c\",\n },\n}\n\nexport default MintInactive\n\n// {isPreMint && (\n// \n// \n// {`Your access token isn't active yet\\nCome back at\\n${mintTokenStart}`}\n// \n// \n\n// \n// setWaitingGif(\n// waitingGifs[Math.floor(Math.random() * waitingGifs.length)]\n// )\n// }\n// >\n// {\"LFGOAT\"}\n// \n//
\n// \n// )}\n// {isPostMint && (\n// \n// \n// {`Your access token ended at\\n${mintTokenEnd}\\nGo home!`}\n// \n// \n// setSoldOutGif(\n// soldOutGifs[Math.floor(Math.random() * soldOutGifs.length)]\n// )\n// }\n// >\n// {\"LFGOAT\"}\n// \n//
\n// \n// )}\n","import React, { useEffect, useState } from \"react\"\nimport { ThemeProvider, Box, Image as Img, Paragraph, Select } from \"theme-ui\"\nimport { theme } from \"../theme\"\nimport Goat2 from \"images/goat-2.png\"\nimport Goat3 from \"images/goat-3.png\"\nimport Goat4 from \"images/goat-4.png\"\nimport NamiWalletApi, { Cardano } from \"../../nami-js/nami\"\nimport axios from \"axios\"\n\nimport RandomMemes from \"../RandomMemes\"\nimport MintingTips from \"../MintingTips\"\n// import sgsMetadata from \"../metadata/sgs-metadata.json\"\nconst sgsMetadata = {}\n\nfunction preloadImage(url) {\n var img = new Image()\n img.src = url\n}\n\nconst bgColors = [\n \"#8fabdc\",\n \"#fb1420\",\n \"#1d77eb\",\n \"#ae2644\",\n \"#3c45b2\",\n \"#873cc4\",\n \"#c344d4\",\n \"#d86039\",\n \"#35ec80\",\n \"#7be53c\",\n]\nconst goats = [\n Goat2,\n Goat3,\n Goat4,\n\n]\n\nconst soldOutGifs = [\n \"https://c.tenor.com/sKg02SlxaoQAAAAC/red-goobler-solar-opposites.gif\",\n \"https://c.tenor.com/0hNIHb95iDMAAAAC/no-more-rebel-wilson.gif\",\n \"https://c.tenor.com/WejWsIlk3_cAAAAd/thats-enough-okay-jason-bateman.gif\",\n \"https://c.tenor.com/hKsgsuQ5N8MAAAAC/cymbals-monkey-brain.gif\",\n \"https://c.tenor.com/98QJc8KJsMkAAAAC/gimme-no-more.gif\",\n \"https://c.tenor.com/N2ibf5aQj2gAAAAC/dragrace-bitch-you-done.gif\",\n \"https://c.tenor.com/3DGYbblZUasAAAAd/youre-done-done-son.gif\",\n \"https://c.tenor.com/ig55vSh4xHwAAAAC/throw-dog.gif\",\n \"https://c.tenor.com/VJz7OLQ8DkQAAAAM/heather-dubrow-shannon-beador.gif\",\n \"https://c.tenor.com/MPsGPP25j70AAAAC/good-day-fez.gif\",\n \"https://c.tenor.com/J3mNIbj6A4wAAAAd/empty-shelves-john-travolta.gif\",\n \"https://c.tenor.com/UbGii9oGosoAAAAC/money-wallet.gif\",\n \"https://c.tenor.com/nd2wxsrTXYEAAAAd/level-up-next-level.gif\",\n \"https://c.tenor.com/WS9TNssQALkAAAAd/roughneck-rabbits-roughneck.gif\",\n \"https://c.tenor.com/Q6BU4RC5zQsAAAAd/sold-out-what.gif\",\n \"https://c.tenor.com/TK5hcjkNr_cAAAAC/gordon-ramsey-you-are-done.gif\",\n \"https://c.tenor.com/MC7K9jo7V0YAAAAC/survivor-jeff-probst.gif\",\n \"https://c.tenor.com/qYrv7LSWFFIAAAAC/finn-adventure-time.gif\",\n \"https://c.tenor.com/gKcLWQAVD8sAAAAC/done-annoyed.gif\",\n \"https://c.tenor.com/jhJp2A-K5HwAAAAd/gollum-leave-now.gif\",\n \"https://c.tenor.com/TbGZDsVxx0wAAAAC/i-dont-need-you-anymore-kyle-broflovski.gif\",\n \"https://c.tenor.com/VGmgyUMNP88AAAAC/toy-story-woody.gif\",\n \"https://c.tenor.com/FqdTy04G6m4AAAAC/i-dont-need-you-anymore-satan.gif\",\n \"https://c.tenor.com/JLpNtvfer7wAAAAM/you-need-to-go-saturday-night-live.gif\",\n \"https://c.tenor.com/JWTW52xCLycAAAAd/i-think-you-should-leave-before-i-call-the-police-eric-cartman.gif\",\n \"https://c.tenor.com/6aZotD1Q0SkAAAAC/tigger-sad.gif\",\n \"https://c.tenor.com/ipXfNs5DnFIAAAAd/get-the-hell-out-of-here-sung-won-cho.gif\",\n \"https://c.tenor.com/0Ar7aEuIPT4AAAAC/get-the-fudge-out-eric-cartman.gif\",\n \"https://c.tenor.com/Wl0r-dwasLYAAAAC/sad-the-simpsons.gif\",\n \"https://c.tenor.com/L2T_fqCrWyMAAAAC/theres-no-more-scared.gif\",\n \"https://c.tenor.com/dlJSiLUJNmsAAAAC/math-calculate.gif\",\n \"https://c.tenor.com/18sqCWkrm9oAAAAC/confused-wtf.gif\",\n \"https://c.tenor.com/3yyytNGYC7cAAAAC/empty-tank.gif\",\n \"https://c.tenor.com/q-E5wj1K6OYAAAAC/monsters-inc-sully.gif\",\n \"https://c.tenor.com/65QP-lH9krMAAAAC/no-money-donald-duck.gif\",\n \"https://c.tenor.com/lQNf6C6HDYQAAAAC/angry-kid.gif\",\n \"https://c.tenor.com/sGzHvagmSugAAAAC/staredown-forreal.gif\",\n]\n\nconst getRandomNumber = (previous) => {\n let num = Math.floor(Math.random() * goats.length)\n if (num == previous) num = Math.floor(Math.random() * goats.length)\n if (num == previous) num = Math.floor(Math.random() * goats.length)\n return num\n}\n\nexport const MintSgs = (props) => {\n const blockfrostApiKey = props.apiKey\n const userId = props.user_id\n const accessMintToken = props.mint_access_token\n const orders = props.orders ? JSON.parse(props.orders) : []\n const csrf = props.csrf\n const mintCount = props.mintCount\n const esgsCount = props.esgsCount\n const sgsCount = props.sgsCount\n const userMintCount = props.user_mint_count\n const maxTokensAmount = props.user_mint_max\n const isProduction = props.is_production\n const sendToNami = true\n\n let activeOrder = null\n const sortedOrders = orders?.sort((a, b) => (a.id > b.id ? -1 : 1))\n const lastOrder = sortedOrders?.[0]\n if (lastOrder && !lastOrder?.confirmed_on_blockchain) {\n activeOrder = lastOrder\n }\n\n console.log(`max - ${maxTokensAmount}`)\n\n const tokenPrice = isProduction ? 60 : 1\n\n const hasNami = window?.cardano?.nami\n\n const walletAddress = isProduction\n ? \"addr1qxteyf82c6ywfl6u9vjzd55dkju5frqmrwxvaansfj3u7zq7jcwua87zadf0gt6tcqh9uug9mjdk8qqwyayntl92kpwq0a4mrz\"\n : \"addr1qyrke3hmuw29c56c8f0vmg0vzarcht70m6a2788lyp7et22mlcy7y7703za4cy7zh789jnjffstkgsgk5vhr5ks6vj5qrsvlkh\"\n\n // set dev vs prod attributes\n const policyId = isProduction\n ? \"6531354d2f96f3b6d8436c563a550edbf2ad810cf2109a1b5897d609\"\n : \"908ae3f484818d4b2e36322af628c3617cb7023fe956376d79496bbf\"\n const policyScript = isProduction\n ? \"8201828200581c60d681f9d5f802510b75c57e09255eff09c95ef12be9e7a51341293c82051a06dc130a\"\n : \"8201828200581c395f56ad222119a33b3db31b61d4f1ccf8af2a266731be3973d4e41582051a04f0c01e\"\n\n console.log(`Patment wallet - ${walletAddress}`)\n console.log(`Policy - ${policyId}`)\n // console.log(`Send to Nami - ${sendToNami}`)\n // console.log(nftMetadata)\n\n const successfulOrders = orders?.filter((order) => order.tx_hash)\n\n console.log(\"loaded\")\n\n if (!blockfrostApiKey) return null\n if (!userId) return null\n\n const [randomNumber, setRandomNumber] = useState(getRandomNumber())\n const [connected, setConnected] = useState()\n const [loading, setLoading] = useState(false)\n const [loadingText, setLoadingText] = useState(\"\")\n const [quantity, setQuanity] = useState(1)\n const [order, setOrder] = useState(activeOrder)\n const [successOrders, setSucessOrders] = useState(successfulOrders)\n const [soldOutGif, setSoldOutGif] = useState(null)\n const [errors, setErrors] = useState(null)\n const [success, setSuccess] = useState(null)\n const [tokenAmount, setTokenAmount] = useState(mintCount)\n\n const sortedSuccessOrders = successOrders?.sort((a, b) =>\n a.id > b.id ? -1 : 1\n )\n const hasPendingTx =\n order && !order?.confirmed_on_blockchain && order?.tx_hash\n\n const orderCreated = order?.created_at ? new Date(order?.created_at) : null\n const allowResetOrder = orderCreated?.setMinutes(\n orderCreated?.getMinutes() + 30\n )\n\n let orderOptions = []\n const allowedToMint = maxTokensAmount - userMintCount\n if (allowedToMint > 5) {\n orderOptions = [1, 2, 3, 4, 5]\n } else {\n for (var i = 1; i <= allowedToMint; i++) orderOptions.push(i)\n }\n\n const total = quantity * tokenPrice\n const priceText = `${quantity} x ${tokenPrice} = ${total} ADA`\n\n const randomGoat = goats[randomNumber]\n const randomBg = bgColors[randomNumber]\n\n useEffect(() => {\n setSoldOutGif(soldOutGifs[Math.floor(Math.random() * soldOutGifs.length)])\n\n if (\n order &&\n !order.confirmed_on_blockchain &&\n order.tx_status != \"failed\"\n ) {\n setTimeout(refresh, 5000)\n }\n\n if (order && order.tx_errors) {\n const newErrors = order.tx_errors?.split(\";;\") || []\n setErrors([\n \"Oh BLEEEAT! Something went wrong and the tx couldn't be created.\",\n ...newErrors,\n ])\n }\n }, [])\n\n let nami\n useEffect(() => {\n async function t() {\n const S = await Cardano()\n nami = new NamiWalletApi(S, window?.cardano, blockfrostApiKey)\n\n if (await nami.isInstalled()) {\n await nami.isEnabled().then(async (result) => {\n if (result) {\n setConnected(nami)\n } else {\n await nami.enable().then((result2) => {\n setConnected(nami)\n })\n }\n })\n }\n }\n\n t()\n }, [])\n\n const handleOrderClick = async () => {\n setLoading(true)\n try {\n const resp = await axios.post(\n \"/orders/mint-sgs\",\n {\n order: {\n quantity: quantity,\n user_id: userId,\n total: total,\n notes: `SGS - ${priceText}`,\n order_type: \"SGS\",\n },\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n setLoading(false)\n\n if (resp?.data?.id) {\n setOrder(resp?.data)\n setTokenAmount(tokenAmount - quantity)\n setErrors(null)\n } else {\n setErrors(resp?.data)\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n const handleNamiSuccess = async (txHash) => {\n try {\n const resp = await axios.post(\n `/orders/success/${order.id}`,\n {\n tx_hash: txHash,\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n\n setLoading(false)\n\n if (resp?.data?.success) {\n const newOrder = {\n ...order,\n tx_hash: txHash,\n tx_created_at: new Date(),\n }\n setSucessOrders([...successOrders, newOrder])\n\n setOrder(null)\n\n setSuccess(\n \"LFGOAT!\\nYour transaction has been submitted to the blockchain. It should show up in your wallet in a few minutes/hours depending on network load\"\n )\n } else {\n setErrors([resp?.data?.error])\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n const handleOrderDelete = async (o) => {\n setLoading(true)\n try {\n const resp = await axios.delete(`/orders/${o.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n setLoading(false)\n\n if (resp?.data?.deleted == true) {\n setOrder(null)\n window?.location?.reload()\n } else {\n setErrors([resp?.data?.error])\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n async function refresh() {\n const resp = await axios.get(`/orders/${order.id}`, {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n })\n\n const orderData = resp?.data\n\n const isDifferent = JSON.stringify(order) != JSON.stringify(orderData)\n\n if (isDifferent) {\n setOrder(orderData)\n\n if (orderData.tx_hash != order.tx_hash) {\n const newOrder = {\n ...order,\n tx_hash: orderData.tx_hash,\n tx_created_at: new Date(),\n }\n setSucessOrders([...successOrders, newOrder])\n setSuccess(\n \"BLEEEAT!\\n\\nYour transaction was successfully submitted to the blockchain.\\n\\nYou can find the tx below. It is pending but should show up in your wallet in a few minutes\"\n )\n }\n\n if (orderData.confirmed_on_blockchain != order.confirmed_on_blockchain) {\n const index = successOrders.findIndex(\n (order) => order.id == orderData.id\n )\n let newOrders = [...successOrders]\n if (index >= 0) {\n newOrders[index] = orderData\n } else {\n newOrders = [...successOrders, orderData]\n }\n\n setSucessOrders(newOrders?.sort((a, b) => (a.id > b.id ? -1 : 1)))\n\n setSuccess(\n \"LFGOAT!\\nYour transaction is confirmed and on the blockchain. You can mint again!\"\n )\n }\n\n if (orderData.tx_errors) {\n const newErrors = orderData.tx_errors?.split(\";;\") || []\n setSuccess(\"\")\n setErrors([\n \"Oh BLEEEAT! Something went wrong and the tx couldn't be created.\",\n ...newErrors,\n ])\n }\n }\n\n if (!orderData.confirmed_on_blockchain) {\n const delay = orderData.tx_hash ? 60000 : 10000\n setTimeout(refresh, delay)\n }\n }\n\n const handleMintClick = () => {\n setLoadingText(\"Building TX ...\")\n const createTransaction = async () => {\n setLoading(true)\n let paymentAddress = await connected.getAddress() // nami wallet address\n\n // let paymentAmount = String(\n // Math.round(tokenPrice * order.quantity * 100000) / 100000\n // )\n\n let paymentAmount = String(order.total)\n\n const paymentWallet = walletAddress\n\n const userWallet = paymentAddress\n\n let recipients = [\n {\n address: paymentWallet,\n amount: paymentAmount,\n }, // Seller Wallet, NFT price 2ADA\n {\n address: userWallet,\n amount: \"0\",\n mintedAssets: order?.nfts?.map((nft) => {\n return {\n assetName: nft,\n quantity: \"1\",\n policyId: policyId,\n policyScript: policyScript,\n }\n }),\n }, // NFTs to be minted\n ] // list of recipients\n\n let nftsMeta = {}\n\n order?.nfts?.forEach((nft, index) => {\n nftsMeta[nft] = sgsMetadata[nft]\n })\n\n let metadata = {\n 721: {\n [policyId]: nftsMeta,\n },\n }\n\n const metadataHash = connected.hashMetadata(metadata)\n\n let utxos = await connected.getUtxosHex()\n let netId = await connected.getNetworkId()\n let transaction = await connected.transaction({\n PaymentAddress: paymentAddress,\n recipients: recipients,\n metadata: metadata,\n metadataHash: metadataHash,\n addMetadata: false,\n utxosRaw: utxos,\n networkId: netId?.id || 1,\n ttl: 10800,\n multiSig: true,\n })\n\n let witnessBuyer = null\n try {\n witnessBuyer = await connected.signTx(transaction, true)\n setLoadingText(\"Validating TX ...\")\n } catch {\n // if user clicks cancel or Nami throws an error\n setLoading(false)\n }\n\n const mintData = {\n transaction,\n witnessBuyer,\n userWallet,\n user_id: userId,\n order_id: order?.id,\n nfts: order?.nfts,\n mint_access_token: accessMintToken,\n }\n\n if (witnessBuyer) {\n try {\n let resp = null\n if (sendToNami) {\n resp = await axios.post(\n `/orders/process/${order.id}`,\n {\n transaction,\n witness_buyer: witnessBuyer,\n user_wallet: userWallet,\n },\n {\n headers: {\n \"X-CSRF-Token\": csrf,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n }\n )\n } else {\n resp = { data: { success: true } }\n }\n\n if (resp?.data?.success) {\n setSuccess(\n \"LFGOAT!\\nYour transaction has been submitted to be processed. This page will update automatically.\"\n )\n setLoading(false)\n setErrors([])\n const newOrder = {\n ...order,\n tx_status: \"submitted\",\n witness_buyer: witnessBuyer,\n }\n setOrder(newOrder)\n\n // start polling for order status\n setTimeout(refresh, 5000)\n } else {\n console.log(resp?.data)\n const backendErrors = resp?.data?.errors || []\n setLoading(false)\n setErrors([\n \"Oh BLEEEAT! Something went wrong and Nami couldn't create the transaction. Cancel the order and try again. Or contact the SGS team to let them know.\",\n ...backendErrors,\n ])\n }\n } catch (err) {\n console.error(err)\n setLoading(false)\n setErrors([\n \"Oh BLEEEAT! Something went wrong. Try it again or contact the SGS team to let them know.\",\n err,\n ])\n }\n } else {\n console.error(witnessBuyer)\n setLoading(false)\n }\n }\n createTransaction()\n // send transaction, witnessBuyer, order, and user to backend\n }\n\n return (\n \n {/* */}\n\n \n
\n \n {errors?.map((error) => (\n \n {error}\n \n ))}\n\n {success && (\n \n {\" \"}\n \n {success}\n \n {order.tx_status == \"confirmed\" && (\n window?.location?.reload()}\n >\n {\"LFGOAT\"}\n \n )}\n \n )}\n\n {hasPendingTx && !success && (\n <>\n \n {`You have a pending tx/order. Wait or handle that order first before creating another.\\n\\nOur system checks the blockchain every 2 minutes.`}\n \n \n >\n )}\n\n {!order && !success && !hasPendingTx && (\n \n {tokenAmount &&\n tokenAmount > 0 &&\n maxTokensAmount - userMintCount > 0 ? (\n \n \n {`There are ${tokenAmount} tokens available\\nThey are ${tokenPrice} ADA each\\n${esgsCount} ESGS\\n${sgsCount} SGS\\n\\n`}\n \n\n \n\n \n {`How many you want?`}\n \n \n \n {priceText}\n \n \n {loading ? \"Creating Order ...\" : \"Submit\"}\n \n \n ) : (\n \n \n {userMintCount >= maxTokensAmount && tokenAmount > 0\n ? `You've reach the max limit of tokens for your account`\n : `ALL THE TOKENS HAVE BEEN MINTED!\\n\\nSOLD OUT BLEEEATCHES`}\n \n \n setSoldOutGif(\n soldOutGifs[\n Math.floor(Math.random() * soldOutGifs.length)\n ]\n )\n }\n >\n {\"LFGOAT\"}\n \n
\n \n )}\n \n )}\n {success && [null, \"submitted\", \"pending\"].includes(order.tx_status) && (\n <>\n \n Take a meme while you wait\n \n\n \n >\n )}\n\n {order && [null, \"errors\"].includes(order.tx_status) && (\n \n \n\n \n {`Active Order\\nQuantity: ${order.quantity}\\nTotal: ${Number(\n order.total\n )}\\nNotes: ${order.notes}`}\n \n {!hasNami && (\n \n You need Nami to mint\n \n )}\n {hasNami && (!order.witness_buyer || order.tx_errors) && (\n \n {loading\n ? loadingText\n : order.tx_errors\n ? \"Re-sign with Nami\"\n : \"Sign with Nami\"}\n \n )}\n {new Date() > allowResetOrder && !order.tx_hash && (\n {\n // handleNamiSuccess(\"123456abc\")\n handleOrderDelete(order)\n }}\n >\n Cancel\n \n )}\n \n )}\n\n {successOrders?.length > 0 && (\n \n \n {`Successful Orders\\n--------------------`}\n \n {sortedSuccessOrders?.map((successfulOrder, index) => {\n const txSubmitted = new Date(successfulOrder.tx_created_at)\n const txSubmittedCopy = new Date(successfulOrder.tx_created_at)\n\n const allowResetTime = txSubmittedCopy.setHours(\n txSubmitted.getHours() + 3\n )\n const allowResetTx =\n new Date() > allowResetTime &&\n successfulOrder.tx_hash &&\n !successfulOrder.confirmed_on_blockchain\n\n const txSubmittedText = `${txSubmitted.toLocaleDateString()} - ${txSubmitted.toLocaleTimeString()}`\n let txStatus = successfulOrder.confirmed_on_blockchain\n ? \"Confirmed\"\n : \"Pending\"\n if (allowResetTx) txStatus = \"Failed\"\n return (\n \n \n {`Quantity: ${successfulOrder.quantity}`}\n \n \n {`Total: ${Number(successfulOrder.total)}`}\n \n {txStatus == \"Confirmed\" && (\n \n {`NFTs: ${successfulOrder.nfts.join(\", \")}`}\n \n )}\n\n \n {`Notes: ${successfulOrder.notes}`}\n \n \n {`Tx ${txStatus}`}\n {txStatus == \"Failed\" && (\n <>\n {` - `}\n {\n if (\n window?.confirm(\n \"Are you sure you want to reset the TX hash? This should only be done for broken or failed TXs. Only do this if it's been more than 2 hours since you submitted the tx\"\n ) &&\n window.location\n ) {\n window.location.href = `/reset-order-tx/${successfulOrder.id}`\n }\n }}\n >\n Reset Order Tx\n \n {` - Only do this if it's been more than 3 hrs since you submitted the tx`}\n >\n )}\n \n \n {`Tx Hash: `}\n \n {successfulOrder.tx_hash}\n \n \n \n {`Tx Submitted: ${txSubmittedText}`}\n \n \n )\n })}\n \n {`--------------------`}\n \n \n )}\n\n {!success && successOrders?.length > 0 && (\n \n \n Back for more huh?\n \n \n \n )}\n \n \n \n )\n}\n\nconst buttonStyles = {\n textAlign: \"center\",\n position: \"relative\",\n top: 10,\n color: \"white !important\",\n whiteSpace: \"nowrap\",\n zIndex: 1005,\n border: \"4px solid black\",\n bg: \"black\",\n py: \"12px\",\n width: [\"100%\", 300],\n borderRadius: \"8px\",\n cursor: \"pointer\",\n fontSize: \"24px\",\n userSelect: \"none\",\n display: \"block\",\n marginTop: \"25px\",\n textDecoration: \"none\",\n textTransform: \"uppercase\",\n \"&:hover\": {\n bg: \"#1c1c1c\",\n borderColor: \"#1c1c1c\",\n },\n}\n\nexport default MintSgs\n","import { Theme } from \"theme-ui\"\n\nexport const theme = {\n fonts: {\n body: '\"Lato\",system-ui, sans-serif',\n heading: '\"Avenir Next\", sans-serif',\n monospace: \"Menlo, monospace\",\n },\n colors: {\n text: \"#000\",\n background: \"#fff\",\n primary: \"#33e\",\n },\n text: {\n marker: {\n fontFamily: '\"Permanent Marker\", cursive',\n },\n lato: {\n fontFamily: '\"Lato\", sans-serif',\n },\n },\n}\n","class Loader {\n async load() {\n if (this._wasm) return\n /**\n * @private\n */\n // this._wasm = await import(\"@emurgo/cardano-serialization-lib-browser/\")\n this._wasm = await import(\"@emurgo/cardano-serialization-lib-browser\")\n }\n\n get Cardano() {\n return this._wasm\n }\n}\n\nexport default new Loader()\n","import {\n TransactionUnspentOutput,\n TransactionOutputs,\n Value,\n} from \"@emurgo/cardano-serialization-lib-browser/cardano_serialization_lib\";\nimport Loader from \"./loader\";\nconst BigInt = typeof window !== \"undefined\" && window.BigInt;\n/**\n * BerryPool implementation of the __Random-Improve__ coin selection algorithm.\n *\n * = Overview\n *\n * The __Random-Improve__ coin selection algorithm works in __two phases__, by\n * /first/ selecting UTxO entries /at random/ to pay for each of the given\n * outputs, and /then/ attempting to /improve/ upon each of the selections.\n *\n * === Phase 1: Random Selection\n *\n * __In this phase, the algorithm randomly selects a minimal set of UTxO__\n * __entries to pay for each of the given outputs.__\n *\n * During this phase, the algorithm:\n *\n * * processes outputs in /descending order of coin value/.\n *\n * * maintains a /remaining UTxO set/, initially equal to the given\n * /UTxO set/ parameter.\n *\n * * based on every output nature, generate a /native token UTxO subset/\n * to narrow down to useful UTxO\n *\n * * maintains an /accumulated coin selection/, which is initially /empty/.\n *\n * For each output of value __/v/__, the algorithm /randomly/ selects entries\n * from the /remaining UTxO set/, until the total value of selected entries is\n * greater than or equal to __/v/__. The selected entries are then associated\n * with that output, and removed from the /remaining UTxO set/.\n *\n * This phase ends when every output has been associated with a selection of\n * UTxO entries.\n *\n * However, if the remaining UTxO set is completely exhausted before all\n * outputs can be processed, the algorithm terminates with an error.\n *\n * === Phase 2: Improvement\n *\n * __In this phase, the algorithm attempts to improve upon each of the UTxO__\n * __selections made in the previous phase, by conservatively expanding the__\n * __selection made for each output.__\n *\n * During this phase, the algorithm:\n *\n * * processes outputs in /ascending order of coin value/.\n *\n * * continues to maintain the /remaining UTxO set/ produced by the previous\n * phase.\n *\n * * maintains an /accumulated coin selection/, initiated from previous phase.\n *\n * For each output of value __/v/__, the algorithm:\n *\n * 1. __Calculates a /target range/__ for the total value of inputs used to\n * pay for that output, defined by the triplet:\n *\n * (/minimum/, /ideal/, /maximum/) = (/v/, /2v/, /3v/)\n *\n * 2. __Attempts to /improve/ upon the /existing UTxO selection/__ for that\n * output, by repeatedly selecting additional entries at random from the\n * /remaining UTxO set/, stopping when the selection can be improved upon\n * no further.\n *\n * A selection with value /v1/ is considered to be an /improvement/ over a\n * selection with value /v0/ if __all__ of the following conditions are\n * satisfied:\n *\n * * __Condition 1__: we have moved closer to the /ideal/ value:\n *\n * abs (/ideal/ − /v1/) < abs (/ideal/ − /v0/)\n *\n * * __Condition 2__: we have not exceeded the /maximum/ value:\n *\n * /v1/ ≤ /maximum/\n *\n * * __Condition 3__: when counting cumulatively across all outputs\n * considered so far, we have not selected more than the /maximum/ number\n * of UTxO entries specified by 'limit'.\n *\n * 3. __Creates a /change value/__ for the output, equal to the total value\n * of the /final UTxO selection/ for that output minus the value /v/ of\n * that output.\n *\n * 4. __Updates the /accumulated coin selection/__:\n *\n * * Adds the /output/ to 'outputs'.\n * * Adds the /improved UTxO selection/ to 'inputs'.\n * * Adds the /change value/ to 'change'.\n *\n * This phase ends when every output has been processed, __or__ when the\n * /remaining UTxO set/ has been exhausted, whichever occurs sooner.\n *\n * = Termination\n *\n * When both phases are complete, the algorithm terminates.\n *\n * The /accumulated coin selection/ and /remaining UTxO set/ are returned to\n * the caller.\n *\n * === Failure Modes\n *\n * The algorithm terminates with an __error__ if:\n *\n * 1. The /total value/ of the initial UTxO set (the amount of money\n * /available/) is /less than/ the total value of the output list (the\n * amount of money /required/).\n *\n * See: __'InputsExhaustedError'__.\n *\n * 2. The /number/ of UTxO entries needed to pay for the requested outputs\n * would /exceed/ the upper limit specified by 'limit'.\n *\n * See: __'InputLimitExceededError'__.\n *\n * == Motivating Principles\n *\n * There are several motivating principles behind the design of the algorithm.\n *\n * === Principle 1: Dust Management\n *\n * The probability that random selection will choose dust entries from a UTxO\n * set increases with the proportion of dust in the set.\n *\n * Therefore, for a UTxO set with a large amount of dust, there's a high\n * probability that a random subset will include a large amount of dust.\n *\n * === Principle 2: Change Management\n *\n * Ideally, coin selection algorithms should, over time, create a UTxO set that\n * has /useful/ outputs: outputs that will allow us to process future payments\n * with a minimum number of inputs.\n *\n * If for each payment request of value __/v/__ we create a change output of\n * /roughly/ the same value __/v/__, then we will end up with a distribution of\n * change values that matches the typical value distribution of payment\n * requests.\n *\n * === Principle 3: Performance Management\n *\n * Searching the UTxO set for additional entries to improve our change outputs\n * is /only/ useful if the UTxO set contains entries that are sufficiently\n * small enough. But it is precisely when the UTxO set contains many small\n * entries that it is less likely for a randomly-chosen UTxO entry to push the\n * total above the upper bound.\n */\n\n/**\n * @typedef {Value[]} AmountList - List of 'Value' object\n */\n\n/**\n * @typedef {TransactionUnspentOutput[]} UTxOList - List of UTxO\n */\n\n/**\n * @typedef {Object} UTxOSelection - Coin Selection algorithm core object\n * @property {UTxOList} selection - Accumulated UTxO set.\n * @property {UTxOList} remaining - Remaining UTxO set.\n * @property {UTxOList} subset - Remaining UTxO set.\n * @property {Value} amount - UTxO amount of each requested token\n */\n\n/**\n * @typedef {Object} ImproveRange - ImproveRange\n * @property {Value} ideal - Requested amount * 2\n * @property {Value} maximum - Requested amount * 3\n */\n\n/**\n * @typedef {Object} SelectionResult - Coin Selection algorithm return\n * @property {UTxOList} input - Accumulated UTxO set.\n * @property {OutputList} output - Requested outputs.\n * @property {UTxOList} remaining - Remaining UTxO set.\n * @property {Value} amount - UTxO amount of each requested token\n * @property {Value} change - Accumulated change amount.\n */\n\n/**\n * @typedef {Object} ProtocolParameters\n * @property {int} minUTxO\n * @property {int} minFeeA\n * @property {int} minFeeB\n * @property {int} maxTxSize\n */\n\n/**\n * @type {ProtocolParameters}\n */\nlet protocolParameters = null;\n\n/**\n * CoinSelection Module.\n * @module src/lib/CoinSelection\n */\nconst CoinSelection = {\n /**\n * Set protocol parameters required by the algorithm\n * @param {string} minUTxO\n * @param {string} minFeeA\n * @param {string} minFeeB\n * @param {string} maxTxSize\n */\n setProtocolParameters: (minUTxO, minFeeA, minFeeB, maxTxSize) => {\n protocolParameters = {\n minUTxO: minUTxO,\n minFeeA: minFeeA,\n minFeeB: minFeeB,\n maxTxSize: maxTxSize,\n };\n },\n /**\n * Random-Improve coin selection algorithm\n * @param {UTxOList} inputs - The set of inputs available for selection.\n * @param {TransactionOutputs} outputs - The set of outputs requested for payment.\n * @param {int} limit - A limit on the number of inputs that can be selected.\n * @return {SelectionResult} - Coin Selection algorithm return\n */\n randomImprove: async (inputs, outputs, limit) => {\n if (!protocolParameters)\n throw new Error(\n \"Protocol parameters not set. Use setProtocolParameters().\"\n );\n\n await Loader.load();\n\n const _minUTxOValue =\n BigInt(outputs.len()) * BigInt(protocolParameters.minUTxO);\n\n /** @type {UTxOSelection} */\n let utxoSelection = {\n selection: [],\n remaining: [...inputs], // Shallow copy\n subset: [],\n amount: Loader.Cardano.Value.new(Loader.Cardano.BigNum.from_str(\"0\")),\n };\n\n let mergedOutputsAmounts = mergeOutputsAmounts(outputs);\n\n // Explode amount in an array of unique asset amount for comparison's sake\n let splitOutputsAmounts = splitAmounts(mergedOutputsAmounts);\n\n // Phase 1: RandomSelect\n splitOutputsAmounts.forEach((output) => {\n createSubSet(utxoSelection, output); // Narrow down for NatToken UTxO\n\n try {\n utxoSelection = randomSelect(\n cloneUTxOSelection(utxoSelection), // Deep copy in case of fallback needed\n output,\n limit - utxoSelection.selection.length,\n _minUTxOValue\n );\n } catch (e) {\n if (e.message === \"INPUT_LIMIT_EXCEEDED\") {\n // Limit reached : Fallback on DescOrdAlgo\n utxoSelection = descSelect(\n utxoSelection,\n output,\n limit - utxoSelection.selection.length,\n _minUTxOValue\n );\n } else {\n throw e;\n }\n }\n });\n\n // Phase 2: Improve\n splitOutputsAmounts = sortAmountList(splitOutputsAmounts);\n\n splitOutputsAmounts.forEach((output) => {\n createSubSet(utxoSelection, output); // Narrow down for NatToken UTxO\n\n let range = {};\n range.ideal = Loader.Cardano.Value.new(\n Loader.Cardano.BigNum.from_str(\"0\")\n )\n .checked_add(output)\n .checked_add(output);\n range.maximum = Loader.Cardano.Value.new(\n Loader.Cardano.BigNum.from_str(\"0\")\n )\n .checked_add(range.ideal)\n .checked_add(output);\n\n improve(\n utxoSelection,\n output,\n limit - utxoSelection.selection.length,\n range\n );\n });\n\n return {\n input: utxoSelection.selection,\n output: outputs,\n remaining: utxoSelection.remaining,\n amount: utxoSelection.amount,\n change: utxoSelection.amount.checked_sub(mergedOutputsAmounts),\n };\n },\n};\n\n/**\n * Randomly select enough UTxO to fulfill requested outputs\n * @param {UTxOSelection} utxoSelection - The set of selected/available inputs.\n * @param {Value} outputAmount - Single compiled output qty requested for payment.\n * @param {int} limit - A limit on the number of inputs that can be selected.\n * @param {int} minUTxOValue - Network protocol 'minUTxOValue' current value.\n * @throws INPUT_LIMIT_EXCEEDED if the number of randomly picked inputs exceed 'limit' parameter.\n * @throws INPUTS_EXHAUSTED if all UTxO doesn't hold enough funds to pay for output.\n * @throws MIN_UTXO_ERROR if lovelace change is under 'minUTxOValue' parameter.\n * @return {UTxOSelection} - Successful random utxo selection.\n */\nfunction randomSelect(utxoSelection, outputAmount, limit, minUTxOValue) {\n let nbFreeUTxO = utxoSelection.subset.length;\n // If quantity is met, return subset into remaining list and exit\n if (\n isQtyFulfilled(outputAmount, utxoSelection.amount, minUTxOValue, nbFreeUTxO)\n ) {\n utxoSelection.remaining = [\n ...utxoSelection.remaining,\n ...utxoSelection.subset,\n ];\n utxoSelection.subset = [];\n return utxoSelection;\n }\n\n if (limit <= 0) {\n throw new Error(\"INPUT_LIMIT_EXCEEDED\");\n }\n\n if (nbFreeUTxO <= 0) {\n if (isQtyFulfilled(outputAmount, utxoSelection.amount, 0, 0)) {\n throw new Error(\"MIN_UTXO_ERROR\");\n }\n throw new Error(\"INPUTS_EXHAUSTED\");\n }\n\n /** @type {TransactionUnspentOutput} utxo */\n let utxo = utxoSelection.subset\n .splice(Math.floor(Math.random() * nbFreeUTxO), 1)\n .pop();\n\n utxoSelection.selection.push(utxo);\n utxoSelection.amount = addAmounts(\n utxo.output().amount(),\n utxoSelection.amount\n );\n\n return randomSelect(utxoSelection, outputAmount, limit - 1, minUTxOValue);\n}\n\n/**\n * Select enough UTxO in DESC order to fulfill requested outputs\n * @param {UTxOSelection} utxoSelection - The set of selected/available inputs.\n * @param {Value} outputAmount - Single compiled output qty requested for payment.\n * @param {int} limit - A limit on the number of inputs that can be selected.\n * @param {int} minUTxOValue - Network protocol 'minUTxOValue' current value.\n * @throws INPUT_LIMIT_EXCEEDED if the number of randomly picked inputs exceed 'limit' parameter.\n * @throws INPUTS_EXHAUSTED if all UTxO doesn't hold enough funds to pay for output.\n * @throws MIN_UTXO_ERROR if lovelace change is under 'minUTxOValue' parameter.\n * @return {UTxOSelection} - Successful random utxo selection.\n */\nfunction descSelect(utxoSelection, outputAmount, limit, minUTxOValue) {\n // Sort UTxO subset in DESC order for required Output unit type\n utxoSelection.subset = utxoSelection.subset.sort((utxoA, utxoB) =>\n utxoB.output().amount().compare(utxoA.output().amount())\n );\n\n do {\n if (limit <= 0) {\n throw new Error(\"INPUT_LIMIT_EXCEEDED\");\n }\n\n if (utxoSelection.subset.length <= 0) {\n if (isQtyFulfilled(outputAmount, utxoSelection.amount, 0, 0)) {\n throw new Error(\"MIN_UTXO_ERROR\");\n }\n throw new Error(\"INPUTS_EXHAUSTED\");\n }\n\n /** @type {TransactionUnspentOutput} utxo */\n let utxo = utxoSelection.subset.splice(0, 1).pop();\n\n utxoSelection.selection.push(utxo);\n utxoSelection.amount = addAmounts(\n utxo.output().amount(),\n utxoSelection.amount\n );\n\n limit--;\n } while (\n !isQtyFulfilled(\n outputAmount,\n utxoSelection.amount,\n minUTxOValue,\n utxoSelection.subset.length - 1\n )\n );\n\n // Quantity is met, return subset into remaining list and return selection\n utxoSelection.remaining = [\n ...utxoSelection.remaining,\n ...utxoSelection.subset,\n ];\n utxoSelection.subset = [];\n\n return utxoSelection;\n}\n\n/**\n * Try to improve selection by increasing input amount in [2x,3x] range.\n * @param {UTxOSelection} utxoSelection - The set of selected/available inputs.\n * @param {Value} outputAmount - Single compiled output qty requested for payment.\n * @param {int} limit - A limit on the number of inputs that can be selected.\n * @param {ImproveRange} range - Improvement range target values\n */\nfunction improve(utxoSelection, outputAmount, limit, range) {\n let nbFreeUTxO = utxoSelection.subset.length;\n\n if (\n utxoSelection.amount.compare(range.ideal) >= 0 ||\n nbFreeUTxO <= 0 ||\n limit <= 0\n ) {\n // Return subset in remaining\n utxoSelection.remaining = [\n ...utxoSelection.remaining,\n ...utxoSelection.subset,\n ];\n utxoSelection.subset = [];\n\n return;\n }\n\n /** @type {TransactionUnspentOutput} utxo */\n const utxo = utxoSelection.subset\n .splice(Math.floor(Math.random() * nbFreeUTxO), 1)\n .pop();\n\n const newAmount = Loader.Cardano.Value.new(\n Loader.Cardano.BigNum.from_str(\"0\")\n )\n .checked_add(utxo.output().amount())\n .checked_add(outputAmount);\n\n if (\n abs(getAmountValue(range.ideal) - getAmountValue(newAmount)) <\n abs(getAmountValue(range.ideal) - getAmountValue(outputAmount)) &&\n newAmount.compare(range.maximum) <= 0\n ) {\n utxoSelection.selection.push(utxo);\n utxoSelection.amount = addAmounts(\n utxo.output().amount(),\n utxoSelection.amount\n );\n limit--;\n } else {\n utxoSelection.remaining.push(utxo);\n }\n\n return improve(utxoSelection, outputAmount, limit, range);\n}\n\n/**\n * Compile all required outputs to a flat amounts list\n * @param {TransactionOutputs} outputs - The set of outputs requested for payment.\n * @return {Value} - The compiled set of amounts requested for payment.\n */\nfunction mergeOutputsAmounts(outputs) {\n let compiledAmountList = Loader.Cardano.Value.new(\n Loader.Cardano.BigNum.from_str(\"0\")\n );\n\n for (let i = 0; i < outputs.len(); i++) {\n compiledAmountList = addAmounts(\n outputs.get(i).amount(),\n compiledAmountList\n );\n }\n\n return compiledAmountList;\n}\n\n/**\n * Add up an Amounts List values to another Amounts List\n * @param {Value} amounts - Set of amounts to be added.\n * @param {Value} compiledAmounts - The compiled set of amounts.\n * @return {Value}\n */\nfunction addAmounts(amounts, compiledAmounts) {\n return compiledAmounts.checked_add(amounts);\n}\n\n/**\n * Split amounts contained in a single {Value} object in separate {Value} objects\n * @param {Value} amounts - Set of amounts to be split.\n * @throws MIN_UTXO_ERROR if lovelace change is under 'minUTxOValue' parameter.\n * @return {AmountList}\n */\nfunction splitAmounts(amounts) {\n let splitAmounts = [];\n\n if (amounts.multiasset()) {\n let mA = amounts.multiasset();\n\n for (let i = 0; i < mA.keys().len(); i++) {\n let scriptHash = mA.keys().get(i);\n\n for (let j = 0; j < mA.get(scriptHash).keys().len(); j++) {\n let _assets = Loader.Cardano.Assets.new();\n let assetName = mA.get(scriptHash).keys().get(j);\n\n _assets.insert(\n Loader.Cardano.AssetName.from_bytes(assetName.to_bytes()),\n Loader.Cardano.BigNum.from_bytes(\n mA.get(scriptHash).get(assetName).to_bytes()\n )\n );\n\n let _multiasset = Loader.Cardano.MultiAsset.new();\n _multiasset.insert(\n Loader.Cardano.ScriptHash.from_bytes(scriptHash.to_bytes()),\n _assets\n );\n let _value = Loader.Cardano.Value.new(\n Loader.Cardano.BigNum.from_str(\"0\")\n );\n _value.set_multiasset(_multiasset);\n\n splitAmounts.push(_value);\n }\n }\n }\n\n // Order assets by qty DESC\n splitAmounts = sortAmountList(splitAmounts, \"DESC\");\n\n // Insure lovelace is last to account for min ada requirement\n splitAmounts.push(\n Loader.Cardano.Value.new(\n Loader.Cardano.BigNum.from_bytes(amounts.coin().to_bytes())\n )\n );\n\n return splitAmounts;\n}\n\n/**\n * Sort a mismatched AmountList ASC/DESC\n * @param {AmountList} amountList - Set of mismatched amounts to be sorted.\n * @param {string} [sortOrder=ASC] - Order\n * @return {AmountList} - The sorted AmountList\n */\nfunction sortAmountList(amountList, sortOrder = \"ASC\") {\n return amountList.sort((a, b) => {\n let sortInt = sortOrder === \"DESC\" ? BigInt(-1) : BigInt(1);\n return Number((getAmountValue(a) - getAmountValue(b)) * sortInt);\n });\n}\n\n/**\n * Return BigInt amount value\n * @param amount\n * @return {bigint}\n */\nfunction getAmountValue(amount) {\n let val = BigInt(0);\n let lovelace = BigInt(amount.coin().to_str());\n\n if (lovelace > 0) {\n val = lovelace;\n } else if (amount.multiasset() && amount.multiasset().len() > 0) {\n let scriptHash = amount.multiasset().keys().get(0);\n let assetName = amount.multiasset().get(scriptHash).keys().get(0);\n val = BigInt(amount.multiasset().get(scriptHash).get(assetName).to_str());\n }\n\n return val;\n}\n\n/**\n * Narrow down remaining UTxO set in case of native token, use full set for lovelace\n * @param {UTxOSelection} utxoSelection - The set of selected/available inputs.\n * @param {Value} output - Single compiled output qty requested for payment.\n */\nfunction createSubSet(utxoSelection, output) {\n if (BigInt(output.coin().to_str()) < BigInt(1)) {\n utxoSelection.remaining.forEach((utxo, index) => {\n if (output.compare(utxo.output().amount()) !== undefined) {\n utxoSelection.subset.push(\n utxoSelection.remaining.splice(index, 1).pop()\n );\n }\n });\n } else {\n utxoSelection.subset = utxoSelection.remaining.splice(\n 0,\n utxoSelection.remaining.length\n );\n }\n}\n\n/**\n * Is Quantity Fulfilled Condition - Handle 'minUTxOValue' protocol parameter.\n * @param {Value} outputAmount - Single compiled output qty requested for payment.\n * @param {Value} cumulatedAmount - Single compiled accumulated UTxO qty.\n * @param {int} minUTxOValue - Network protocol 'minUTxOValue' current value.\n * @param {int} nbFreeUTxO - Number of free UTxO available.\n * @return {boolean}\n */\nfunction isQtyFulfilled(\n outputAmount,\n cumulatedAmount,\n minUTxOValue,\n nbFreeUTxO\n) {\n let amount = outputAmount;\n\n if (minUTxOValue && BigInt(outputAmount.coin().to_str()) > 0) {\n let minAmount = Loader.Cardano.Value.new(\n Loader.Cardano.min_ada_required(\n cumulatedAmount,\n Loader.Cardano.BigNum.from_str(minUTxOValue.toString())\n )\n );\n\n // Lovelace min amount to cover assets and number of output need to be met\n if (cumulatedAmount.compare(minAmount) < 0) return false;\n\n // If requested Lovelace lower than minAmount, plan for change\n if (outputAmount.compare(minAmount) < 0) {\n amount = minAmount.checked_add(\n Loader.Cardano.Value.new(\n Loader.Cardano.BigNum.from_str(protocolParameters.minUTxO)\n )\n );\n }\n\n // Try covering the max fees\n if (nbFreeUTxO > 0) {\n let maxFee =\n BigInt(protocolParameters.minFeeA) *\n BigInt(protocolParameters.maxTxSize) +\n BigInt(protocolParameters.minFeeB);\n\n maxFee = Loader.Cardano.Value.new(\n Loader.Cardano.BigNum.from_str(maxFee.toString())\n );\n\n amount = amount.checked_add(maxFee);\n }\n }\n\n return cumulatedAmount.compare(amount) >= 0;\n}\n\n/**\n * Return a deep copy of UTxOSelection\n * @param {UTxOSelection} utxoSelection\n * @return {UTxOSelection} Clone - Deep copy\n */\nfunction cloneUTxOSelection(utxoSelection) {\n return {\n selection: cloneUTxOList(utxoSelection.selection),\n remaining: cloneUTxOList(utxoSelection.remaining),\n subset: cloneUTxOList(utxoSelection.subset),\n amount: cloneValue(utxoSelection.amount),\n };\n}\n\n/**\n * Return a deep copy of an UTxO List\n * @param {UTxOList} utxoList\n * @return {UTxOList} Cone - Deep copy\n */\nconst cloneUTxOList = (utxoList) =>\n utxoList.map((utxo) =>\n Loader.Cardano.TransactionUnspentOutput.from_bytes(utxo.to_bytes())\n );\n\n/**\n * Return a deep copy of a Value object\n * @param {Value} value\n * @return {Value} Cone - Deep copy\n */\nconst cloneValue = (value) => Loader.Cardano.Value.from_bytes(value.to_bytes());\n\n// Helper\nfunction abs(big) {\n return big < 0 ? big * BigInt(-1) : big;\n}\n\nexport default CoinSelection;\n","import Loader from \"./loader\"\nimport CoinSelection from \"./coinSelection\"\nimport { Buffer } from \"buffer\"\nimport AssetFingerprint from \"@emurgo/cip14-js\"\n\nexport async function Cardano() {\n await Loader.load()\n return Loader.Cardano\n}\n\nconst ERROR = {\n FAILED_PROTOCOL_PARAMETER:\n \"Couldnt fetch protocol parameters from blockfrost\",\n TX_TOO_BIG: \"Transaction too big\",\n}\n\nclass CardanoWallet {\n constructor(serilizationLib, wallet, apiKey) {\n this.apiKey = apiKey\n this.wallet = wallet\n this.S = serilizationLib\n this.balance = null\n }\n // Nami Wallet Endpoints\n async isInstalled() {\n if (this.wallet) return true\n else return false\n }\n\n async isEnabled() {\n return true\n }\n\n async enable() {\n if (!(await this.isEnabled())) {\n try {\n return await this.wallet.enable()\n } catch (error) {\n throw error\n }\n }\n }\n\n async getAddress() {\n if (!this.isEnabled()) throw ERROR.NOT_CONNECTED\n\n const addressHex = Buffer.from(\n (await this.wallet.getUsedAddresses())[0],\n \"hex\"\n )\n\n const address = this.S.BaseAddress.from_address(\n this.S.Address.from_bytes(addressHex)\n )\n .to_address()\n .to_bech32()\n\n return address\n }\n async getHexAddress() {\n const addressHex = Buffer.from(\n (await window.cardano.getUsedAddresses())[0],\n \"hex\"\n )\n return addressHex\n }\n\n async getNetworkId() {\n if (!this.isEnabled()) throw ERROR.NOT_CONNECTED\n let networkId = await this.wallet.getNetworkId()\n return {\n id: networkId,\n network: networkId === 1 ? \"mainnet\" : \"testnet\",\n }\n }\n\n async getBalance() {\n // get balance of Nami Wallet\n if (!this.isEnabled()) {\n await this.enable()\n }\n let networkId = await this.getNetworkId()\n let protocolParameter = await this._getProtocolParameter(networkId.id)\n const valueCBOR = await this.wallet.getBalance()\n const value = this.S.Value.from_bytes(Buffer.from(valueCBOR, \"hex\"))\n const utxos = await this.wallet.getUtxos()\n const parsedUtxos = utxos.map((utxo) =>\n this.S.TransactionUnspentOutput.from_bytes(Buffer.from(utxo, \"hex\"))\n )\n let countedValue = this.S.Value.new(this.S.BigNum.from_str(\"0\"))\n parsedUtxos.forEach((element) => {\n countedValue = countedValue.checked_add(element.output().amount())\n })\n const minAda = this.S.min_ada_required(\n countedValue,\n this.S.BigNum.from_str(protocolParameter.minUtxo)\n )\n const availableAda = countedValue.coin().checked_sub(minAda)\n const lovelace = availableAda.to_str()\n // console.log(\"assets\", protocolParameter.minUtxo)\n const assets = []\n if (value.multiasset()) {\n const multiAssets = value.multiasset().keys()\n for (let j = 0; j < multiAssets.len(); j++) {\n const policy = multiAssets.get(j)\n const policyAssets = value.multiasset().get(policy)\n const assetNames = policyAssets.keys()\n for (let k = 0; k < assetNames.len(); k++) {\n const policyAsset = assetNames.get(k)\n const quantity = policyAssets.get(policyAsset)\n const asset =\n Buffer.from(policy.to_bytes(), \"hex\").toString(\"hex\") +\n Buffer.from(policyAsset.name(), \"hex\").toString(\"hex\")\n const _policy = asset.slice(0, 56)\n const _name = asset.slice(56)\n const fingerprint = new AssetFingerprint(\n Buffer.from(_policy, \"hex\"),\n Buffer.from(_name, \"hex\")\n ).fingerprint()\n assets.push({\n unit: asset,\n quantity: quantity.to_str(),\n policy: _policy,\n name: HexToAscii(_name),\n fingerprint,\n })\n }\n }\n }\n\n return { lovelace: lovelace, assets: assets }\n }\n\n getApiKey(networkId) {\n if (networkId == 0) {\n return this.apiKey[0]\n } else {\n return this.apiKey[1]\n }\n }\n\n async registerPolicy(policy) {\n fetch(`https://pool.pm/register/policy/${policy.id}`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n type: \"all\",\n scripts: [\n {\n keyHash: policy.paymentKeyHash,\n type: \"sig\",\n },\n { slot: policy.ttl, type: \"before\" },\n ],\n }),\n })\n .then((res) => res.json())\n .then(console.log)\n }\n async getUtxos(utxos) {\n let Utxos = utxos.map((u) =>\n this.S.TransactionUnspentOutput.from_bytes(Buffer.from(u, \"hex\"))\n )\n let UTXOS = []\n for (let utxo of Utxos) {\n let assets = this._utxoToAssets(utxo)\n\n UTXOS.push({\n txHash: Buffer.from(\n utxo.input().transaction_id().to_bytes(),\n \"hex\"\n ).toString(\"hex\"),\n txId: utxo.input().index(),\n amount: assets,\n })\n }\n return UTXOS\n }\n\n async getUtxosHex() {\n return await this.wallet.getUtxos()\n }\n\n async transaction({\n PaymentAddress = \"\",\n recipients = [],\n metadata = null,\n metadataHash = null,\n addMetadata = true,\n utxosRaw = [],\n networkId = 0,\n ttl = 2700,\n multiSig = false,\n }) {\n let utxos = utxosRaw.map((u) =>\n this.S.TransactionUnspentOutput.from_bytes(Buffer.from(u, \"hex\"))\n )\n let protocolParameter = await this._getProtocolParameter(networkId)\n let mintedAssetsArray = []\n let outputs = this.S.TransactionOutputs.new()\n\n let minting = 0\n let outputValues = {}\n let costValues = {}\n for (let recipient of recipients) {\n let lovelace = Math.floor((recipient.amount || 0) * 1000000).toString()\n let ReceiveAddress = recipient.address\n let multiAsset = this._makeMultiAsset(recipient?.assets || [])\n let mintedAssets = this._makeMintedAssets(recipient?.mintedAssets || [])\n\n let outputValue = this.S.Value.new(this.S.BigNum.from_str(lovelace))\n let minAdaMint = this.S.Value.new(this.S.BigNum.from_str(\"0\"))\n\n if ((recipient?.assets || []).length > 0) {\n outputValue.set_multiasset(multiAsset)\n let minAda = this.S.min_ada_required(\n outputValue,\n this.S.BigNum.from_str(protocolParameter.minUtxo)\n )\n\n if (this.S.BigNum.from_str(lovelace).compare(minAda) < 0)\n outputValue.set_coin(minAda)\n }\n ;(recipient?.mintedAssets || []).map((asset) => {\n minting += 1\n mintedAssetsArray.push({\n ...asset,\n address: recipient.address,\n })\n })\n\n if (parseInt(outputValue.coin().to_str()) > 0) {\n outputValues[recipient.address] = outputValue\n }\n if ((recipient.mintedAssets || []).length > 0) {\n minAdaMint = this.S.min_ada_required(\n mintedAssets,\n this.S.BigNum.from_str(protocolParameter.minUtxo)\n )\n\n let requiredMintAda = this.S.Value.new(this.S.BigNum.from_str(\"0\"))\n requiredMintAda.set_coin(minAdaMint)\n if (outputValue.coin().to_str() == 0) {\n outputValue = requiredMintAda\n } else {\n outputValue = outputValue.checked_add(requiredMintAda)\n }\n }\n if (ReceiveAddress != PaymentAddress)\n costValues[ReceiveAddress] = outputValue\n outputValues[ReceiveAddress] = outputValue\n if (parseInt(outputValue.coin().to_str()) > 0) {\n outputs.add(\n this.S.TransactionOutput.new(\n this.S.Address.from_bech32(ReceiveAddress),\n outputValue\n )\n )\n }\n }\n let RawTransaction = null\n if (minting > 0) {\n outputValues[PaymentAddress] = this.S.Value.new(\n this.S.BigNum.from_str(\"0\")\n )\n\n RawTransaction = await this._txBuilderMinting({\n PaymentAddress: PaymentAddress,\n Utxos: utxos,\n Outputs: outputs,\n mintedAssetsArray: mintedAssetsArray,\n outputValues: outputValues,\n ProtocolParameter: protocolParameter,\n metadata: metadata,\n metadataHash: metadataHash,\n addMetadata: addMetadata,\n multiSig: multiSig,\n ttl: ttl,\n costValues: costValues,\n })\n } else {\n RawTransaction = await this._txBuilder({\n PaymentAddress: PaymentAddress,\n Utxos: utxos,\n Outputs: outputs,\n ProtocolParameter: protocolParameter,\n Metadata: metadata,\n\n Delegation: null,\n })\n }\n return Buffer.from(RawTransaction, \"hex\").toString(\"hex\")\n }\n\n async createLockingPolicyScript(address, networkId, expirationTime) {\n var now = new Date()\n\n const protocolParameters = await this._getProtocolParameter(networkId)\n\n const slot = parseInt(protocolParameters.slot)\n const duration = expirationTime.getTime() - now.getTime()\n\n const ttl = slot + duration\n\n const paymentKeyHash = this.S.BaseAddress.from_address(\n this.S.Address.from_bytes(Buffer.from(address, \"hex\"))\n )\n .payment_cred()\n .to_keyhash()\n\n const nativeScripts = this.S.NativeScripts.new()\n const script = this.S.ScriptPubkey.new(paymentKeyHash)\n const nativeScript = this.S.NativeScript.new_script_pubkey(script)\n const lockScript = this.S.NativeScript.new_timelock_expiry(\n this.S.TimelockExpiry.new(ttl)\n )\n nativeScripts.add(nativeScript)\n nativeScripts.add(lockScript)\n const finalScript = this.S.NativeScript.new_script_all(\n this.S.ScriptAll.new(nativeScripts)\n )\n const policyId = Buffer.from(\n this.S.ScriptHash.from_bytes(finalScript.hash().to_bytes()).to_bytes(),\n \"hex\"\n ).toString(\"hex\")\n return {\n id: policyId,\n script: Buffer.from(finalScript.to_bytes()).toString(\"hex\"),\n paymentKeyHash: Buffer.from(paymentKeyHash.to_bytes(), \"hex\").toString(\n \"hex\"\n ),\n ttl,\n }\n }\n\n async signTx(transaction, partialSign = false) {\n if (!this.isEnabled()) throw ERROR.NOT_CONNECTED\n return await this.wallet.signTx(transaction, partialSign)\n }\n\n async signData(string) {\n let address = await getAddressHex()\n let coseSign1Hex = await this.wallet.signData(\n address,\n Buffer.from(string, \"ascii\").toString(\"hex\")\n )\n return coseSign1Hex\n }\n\n hashMetadata(metadata) {\n let aux = this.S.AuxiliaryData.new()\n\n const generalMetadata = this.S.GeneralTransactionMetadata.new()\n Object.entries(metadata).map(([MetadataLabel, Metadata]) => {\n generalMetadata.insert(\n this.S.BigNum.from_str(MetadataLabel),\n this.S.encode_json_str_to_metadatum(JSON.stringify(Metadata), 0)\n )\n })\n\n aux.set_metadata(generalMetadata)\n\n const metadataHash = this.S.hash_auxiliary_data(aux)\n return Buffer.from(metadataHash.to_bytes(), \"hex\").toString(\"hex\")\n }\n //////////////////////////////////////////////////\n\n _makeMintedAssets(mintedAssets) {\n let AssetsMap = {}\n\n for (let asset of mintedAssets) {\n let assetName = asset.assetName\n let quantity = asset.quantity\n if (!Array.isArray(AssetsMap[asset.policyId])) {\n AssetsMap[asset.policyId] = []\n }\n AssetsMap[asset.policyId].push({\n unit: Buffer.from(assetName, \"ascii\").toString(\"hex\"),\n quantity: quantity,\n })\n }\n let multiAsset = this.S.MultiAsset.new()\n\n for (const policy in AssetsMap) {\n const ScriptHash = this.S.ScriptHash.from_bytes(\n Buffer.from(policy, \"hex\")\n )\n const Assets = this.S.Assets.new()\n\n const _assets = AssetsMap[policy]\n\n for (const asset of _assets) {\n const AssetName = this.S.AssetName.new(Buffer.from(asset.unit, \"hex\"))\n const BigNum = this.S.BigNum.from_str(asset.quantity)\n\n Assets.insert(AssetName, BigNum)\n }\n\n multiAsset.insert(ScriptHash, Assets)\n }\n const value = this.S.Value.new(this.S.BigNum.from_str(\"0\"))\n\n value.set_multiasset(multiAsset)\n return value\n }\n\n _makeMultiAsset(assets) {\n let AssetsMap = {}\n for (let asset of assets) {\n let [policy, assetName] = asset.unit.split(\".\")\n let quantity = asset.quantity\n if (!Array.isArray(AssetsMap[policy])) {\n AssetsMap[policy] = []\n }\n AssetsMap[policy].push({\n unit: Buffer.from(assetName, \"ascii\").toString(\"hex\"),\n quantity: quantity,\n })\n }\n\n let multiAsset = this.S.MultiAsset.new()\n\n for (const policy in AssetsMap) {\n const ScriptHash = this.S.ScriptHash.from_bytes(\n Buffer.from(policy, \"hex\")\n )\n const Assets = this.S.Assets.new()\n\n const _assets = AssetsMap[policy]\n\n for (const asset of _assets) {\n const AssetName = this.S.AssetName.new(Buffer.from(asset.unit, \"hex\"))\n const BigNum = this.S.BigNum.from_str(asset.quantity.toString())\n\n Assets.insert(AssetName, BigNum)\n }\n\n multiAsset.insert(ScriptHash, Assets)\n }\n\n return multiAsset\n }\n\n _utxoToAssets(utxo) {\n let value = utxo.output().amount()\n const assets = []\n assets.push({\n unit: \"lovelace\",\n quantity: value.coin().to_str(),\n })\n if (value.multiasset()) {\n const multiAssets = value.multiasset().keys()\n for (let j = 0; j < multiAssets.len(); j++) {\n const policy = multiAssets.get(j)\n const policyAssets = value.multiasset().get(policy)\n const assetNames = policyAssets.keys()\n for (let k = 0; k < assetNames.len(); k++) {\n const policyAsset = assetNames.get(k)\n const quantity = policyAssets.get(policyAsset)\n const asset =\n Buffer.from(policy.to_bytes()).toString(\"hex\") +\n \".\" +\n Buffer.from(policyAsset.name()).toString(\"ascii\")\n\n assets.push({\n unit: asset,\n quantity: quantity.to_str(),\n })\n }\n }\n }\n return assets\n }\n async _txBuilderMinting({\n PaymentAddress,\n Utxos,\n Outputs,\n ProtocolParameter,\n mintedAssetsArray = [],\n\n outputValues = {},\n metadata = null,\n metadataHash = null,\n addMetadata = true,\n ttl = 2700,\n multiSig = false,\n costValues = {},\n }) {\n const MULTIASSET_SIZE = 5000\n const VALUE_SIZE = 5000\n const totalAssets = 0\n\n CoinSelection.setProtocolParameters(\n ProtocolParameter.minUtxo.toString(),\n ProtocolParameter.linearFee.minFeeA.toString(),\n ProtocolParameter.linearFee.minFeeB.toString(),\n ProtocolParameter.maxTxSize.toString()\n )\n const selection = await CoinSelection.randomImprove(\n Utxos,\n Outputs,\n 20 + totalAssets\n )\n\n const nativeScripts = this.S.NativeScripts.new()\n let mint = this.S.Mint.new()\n\n let mintedAssetsDict = {}\n let assetsDict = {}\n for (let asset of mintedAssetsArray) {\n if (typeof assetsDict[asset.assetName] == \"undefined\") {\n assetsDict[asset.assetName] = {}\n assetsDict[asset.assetName].quantity = 0\n assetsDict[asset.assetName].policyScript = asset.policyScript\n }\n assetsDict[asset.assetName].quantity =\n assetsDict[asset.assetName].quantity + parseInt(asset.quantity)\n }\n\n Object.entries(assetsDict).map(([assetName, asset]) => {\n const mintAssets = this.S.MintAssets.new()\n mintAssets.insert(\n this.S.AssetName.new(Buffer.from(assetName)),\n this.S.Int.new(this.S.BigNum.from_str(asset.quantity.toString()))\n )\n\n if (typeof mintedAssetsDict[asset.policyScript] == \"undefined\") {\n mintedAssetsDict[asset.policyScript] = this.S.MintAssets.new()\n }\n mintedAssetsDict[asset.policyScript].insert(\n this.S.AssetName.new(Buffer.from(assetName)),\n this.S.Int.new(this.S.BigNum.from_str(asset.quantity.toString()))\n )\n })\n\n for (let asset of mintedAssetsArray) {\n const multiAsset = this.S.MultiAsset.new()\n const mintedAssets = this.S.Assets.new()\n\n const policyScript = this.S.NativeScript.from_bytes(\n Buffer.from(asset.policyScript, \"hex\")\n )\n nativeScripts.add(policyScript)\n\n mintedAssets.insert(\n this.S.AssetName.new(Buffer.from(asset.assetName)),\n this.S.BigNum.from_str(asset.quantity.toString())\n )\n\n multiAsset.insert(\n this.S.ScriptHash.from_bytes(\n policyScript.hash(this.S.ScriptHashNamespace.NativeScript).to_bytes()\n ),\n mintedAssets\n )\n const mintedValue = this.S.Value.new(this.S.BigNum.from_str(\"0\"))\n mintedValue.set_multiasset(multiAsset)\n if (typeof outputValues[asset.address] == \"undefined\") {\n outputValues[asset.address] = this.S.Value.new(\n this.S.BigNum.from_str(\"0\")\n )\n }\n // if (asset.address != PaymentAddress) {\n // let minAdaMint = this.S.min_ada_required(\n // mintedValue,\n // this.S.BigNum.from_str(ProtocolParameter.minUtxo)\n // );\n\n // mintedValue.set_coin(minAdaMint)\n // }\n outputValues[asset.address] =\n outputValues[asset.address].checked_add(mintedValue)\n }\n\n Object.entries(mintedAssetsDict).map(([policyScriptHex, mintAssets]) => {\n const policyScript = this.S.NativeScript.from_bytes(\n Buffer.from(policyScriptHex, \"hex\")\n )\n mint.insert(\n this.S.ScriptHash.from_bytes(\n policyScript.hash(this.S.ScriptHashNamespace.NativeScript).to_bytes()\n ),\n mintAssets\n )\n })\n\n const inputs = this.S.TransactionInputs.new()\n\n selection.input.forEach((utxo) => {\n inputs.add(\n this.S.TransactionInput.new(\n utxo.input().transaction_id(),\n utxo.input().index()\n )\n )\n outputValues[PaymentAddress] = outputValues[PaymentAddress].checked_add(\n utxo.output().amount()\n )\n })\n\n const rawOutputs = this.S.TransactionOutputs.new()\n\n Object.entries(outputValues).map(([address, value]) => {\n rawOutputs.add(\n this.S.TransactionOutput.new(this.S.Address.from_bech32(address), value)\n )\n })\n\n const fee = this.S.BigNum.from_str(\"0\")\n const rawTxBody = this.S.TransactionBody.new(\n inputs,\n rawOutputs,\n fee,\n ttl + ProtocolParameter.slot\n )\n rawTxBody.set_mint(mint)\n\n let aux = this.S.AuxiliaryData.new()\n\n if (metadata) {\n const generalMetadata = this.S.GeneralTransactionMetadata.new()\n Object.entries(metadata).map(([MetadataLabel, Metadata]) => {\n generalMetadata.insert(\n this.S.BigNum.from_str(MetadataLabel),\n this.S.encode_json_str_to_metadatum(JSON.stringify(Metadata), 0)\n )\n })\n\n aux.set_metadata(generalMetadata)\n }\n if (metadataHash) {\n const auxDataHash = this.S.AuxiliaryDataHash.from_bytes(\n Buffer.from(metadataHash, \"hex\")\n )\n console.log(auxDataHash)\n rawTxBody.set_auxiliary_data_hash(auxDataHash)\n } else rawTxBody.set_auxiliary_data_hash(this.S.hash_auxiliary_data(aux))\n const witnesses = this.S.TransactionWitnessSet.new()\n witnesses.set_native_scripts(nativeScripts)\n\n const dummyVkeyWitness =\n \"8258208814c250f40bfc74d6c64f02fc75a54e68a9a8b3736e408d9820a6093d5e38b95840f04a036fa56b180af6537b2bba79cec75191dc47419e1fd8a4a892e7d84b7195348b3989c15f1e7b895c5ccee65a1931615b4bdb8bbbd01e6170db7a6831310c\"\n\n const vkeys = this.S.Vkeywitnesses.new()\n vkeys.add(\n this.S.Vkeywitness.from_bytes(Buffer.from(dummyVkeyWitness, \"hex\"))\n )\n\n vkeys.add(\n this.S.Vkeywitness.from_bytes(Buffer.from(dummyVkeyWitness, \"hex\"))\n )\n if (multiSig) {\n vkeys.add(\n this.S.Vkeywitness.from_bytes(Buffer.from(dummyVkeyWitness, \"hex\"))\n )\n }\n witnesses.set_vkeys(vkeys)\n\n const rawTx = this.S.Transaction.new(rawTxBody, witnesses, aux)\n\n let minFee = this.S.min_fee(\n rawTx,\n this.S.LinearFee.new(\n this.S.BigNum.from_str(ProtocolParameter.linearFee.minFeeA),\n this.S.BigNum.from_str(ProtocolParameter.linearFee.minFeeB)\n )\n )\n\n outputValues[PaymentAddress] = outputValues[PaymentAddress].checked_sub(\n this.S.Value.new(minFee)\n )\n Object.entries(costValues).map(([address, value]) => {\n outputValues[PaymentAddress] =\n outputValues[PaymentAddress].checked_sub(value)\n })\n\n const outputs = this.S.TransactionOutputs.new()\n Object.entries(outputValues).map(([address, value]) => {\n outputs.add(\n this.S.TransactionOutput.new(this.S.Address.from_bech32(address), value)\n )\n })\n\n const finalTxBody = this.S.TransactionBody.new(\n inputs,\n outputs,\n minFee,\n ttl + ProtocolParameter.slot\n )\n\n finalTxBody.set_mint(rawTxBody.multiassets())\n\n finalTxBody.set_auxiliary_data_hash(rawTxBody.auxiliary_data_hash())\n\n const finalWitnesses = this.S.TransactionWitnessSet.new()\n finalWitnesses.set_native_scripts(nativeScripts)\n let auxFinal\n if (addMetadata) auxFinal = rawTx.auxiliary_data()\n else auxFinal = this.S.AuxiliaryData.new()\n const transaction = this.S.Transaction.new(\n finalTxBody,\n finalWitnesses,\n auxFinal\n )\n\n const size = transaction.to_bytes().length * 2\n if (size > ProtocolParameter.maxTxSize) throw ERROR.TX_TOO_BIG\n\n return transaction.to_bytes()\n }\n async _txBuilder({\n PaymentAddress,\n Utxos,\n Outputs,\n ProtocolParameter,\n\n metadata = null,\n }) {\n const MULTIASSET_SIZE = 50000\n const VALUE_SIZE = 50000\n const totalAssets = 0\n\n CoinSelection.setProtocolParameters(\n ProtocolParameter.minUtxo.toString(),\n ProtocolParameter.linearFee.minFeeA.toString(),\n ProtocolParameter.linearFee.minFeeB.toString(),\n ProtocolParameter.maxTxSize.toString()\n )\n\n const selection = await CoinSelection.randomImprove(\n Utxos,\n Outputs,\n 20 + totalAssets\n )\n console.log(selection)\n const inputs = selection.input\n const txBuilder = this.S.TransactionBuilder.new(\n this.S.LinearFee.new(\n this.S.BigNum.from_str(ProtocolParameter.linearFee.minFeeA),\n this.S.BigNum.from_str(ProtocolParameter.linearFee.minFeeB)\n ),\n this.S.BigNum.from_str(ProtocolParameter.minUtxo.toString()),\n this.S.BigNum.from_str(ProtocolParameter.poolDeposit.toString()),\n this.S.BigNum.from_str(ProtocolParameter.keyDeposit.toString()),\n MULTIASSET_SIZE,\n MULTIASSET_SIZE\n )\n\n for (let i = 0; i < inputs.length; i++) {\n const utxo = inputs[i]\n txBuilder.add_input(\n utxo.output().address(),\n utxo.input(),\n utxo.output().amount()\n )\n }\n\n let AUXILIARY_DATA\n if (metadata) {\n AUXILIARY_DATA = this.S.AuxiliaryData.new()\n const generalMetadata = this.S.GeneralTransactionMetadata.new()\n Object.entries(Metadata).map(([MetadataLabel, Metadata]) => {\n generalMetadata.insert(\n this.S.BigNum.from_str(MetadataLabel),\n this.S.encode_json_str_to_metadatum(JSON.stringify(Metadata), 0)\n )\n })\n\n aux.set_metadata(generalMetadata)\n\n txBuilder.set_auxiliary_data(AUXILIARY_DATA)\n }\n\n for (let i = 0; i < Outputs.len(); i++) {\n txBuilder.add_output(Outputs.get(i))\n }\n\n const change = selection.change\n const changeMultiAssets = change.multiasset()\n // check if change value is too big for single output\n if (changeMultiAssets && change.to_bytes().length * 2 > VALUE_SIZE) {\n const partialChange = this.S.Value.new(this.S.BigNum.from_str(\"0\"))\n\n const partialMultiAssets = this.S.MultiAsset.new()\n const policies = changeMultiAssets.keys()\n const makeSplit = () => {\n for (let j = 0; j < changeMultiAssets.len(); j++) {\n const policy = policies.get(j)\n const policyAssets = changeMultiAssets.get(policy)\n const assetNames = policyAssets.keys()\n const assets = this.S.Assets.new()\n for (let k = 0; k < assetNames.len(); k++) {\n const policyAsset = assetNames.get(k)\n const quantity = policyAssets.get(policyAsset)\n assets.insert(policyAsset, quantity)\n //check size\n const checkMultiAssets = this.S.MultiAsset.from_bytes(\n partialMultiAssets.to_bytes()\n )\n checkMultiAssets.insert(policy, assets)\n const checkValue = this.S.Value.new(this.S.BigNum.from_str(\"0\"))\n checkValue.set_multiasset(checkMultiAssets)\n if (checkValue.to_bytes().length * 2 >= VALUE_SIZE) {\n partialMultiAssets.insert(policy, assets)\n return\n }\n }\n partialMultiAssets.insert(policy, assets)\n }\n }\n\n makeSplit()\n partialChange.set_multiasset(partialMultiAssets)\n\n const minAda = this.S.min_ada_required(\n partialChange,\n this.S.BigNum.from_str(ProtocolParameter.minUtxo)\n )\n partialChange.set_coin(minAda)\n\n txBuilder.add_output(\n this.S.TransactionOutput.new(\n this.S.Address.from_bech32(PaymentAddress),\n partialChange\n )\n )\n }\n txBuilder.add_change_if_needed(this.S.Address.from_bech32(PaymentAddress))\n const transaction = this.S.Transaction.new(\n txBuilder.build(),\n this.S.TransactionWitnessSet.new(),\n AUXILIARY_DATA\n )\n\n const size = transaction.to_bytes().length * 2\n if (size > ProtocolParameter.maxTxSize) throw ERROR.TX_TOO_BIG\n\n return transaction.to_bytes()\n }\n\n async submitTx({ transactionRaw, witnesses, scripts, networkId, metadata }) {\n let transaction = this.S.Transaction.from_bytes(\n Buffer.from(transactionRaw, \"hex\")\n )\n\n const txWitnesses = transaction.witness_set()\n const txVkeys = txWitnesses.vkeys()\n const txScripts = txWitnesses.native_scripts()\n\n const addWitnesses = this.S.TransactionWitnessSet.from_bytes(\n Buffer.from(witnesses[0], \"hex\")\n )\n const addVkeys = addWitnesses.vkeys()\n const addScripts = addWitnesses.native_scripts()\n\n const totalVkeys = this.S.Vkeywitnesses.new()\n const totalScripts = this.S.NativeScripts.new()\n\n if (txVkeys) {\n for (let i = 0; i < txVkeys.len(); i++) {\n totalVkeys.add(txVkeys.get(i))\n }\n }\n if (txScripts) {\n for (let i = 0; i < txScripts.len(); i++) {\n totalScripts.add(txScripts.get(i))\n }\n }\n if (addVkeys) {\n for (let i = 0; i < addVkeys.len(); i++) {\n totalVkeys.add(addVkeys.get(i))\n }\n }\n if (addScripts) {\n for (let i = 0; i < addScripts.len(); i++) {\n totalScripts.add(addScripts.get(i))\n }\n }\n\n const totalWitnesses = this.S.TransactionWitnessSet.new()\n totalWitnesses.set_vkeys(totalVkeys)\n totalWitnesses.set_native_scripts(totalScripts)\n let aux\n if (metadata) {\n aux = this.S.AuxiliaryData.new()\n const generalMetadata = this.S.GeneralTransactionMetadata.new()\n Object.entries(metadata).map(([MetadataLabel, Metadata]) => {\n generalMetadata.insert(\n this.S.BigNum.from_str(MetadataLabel),\n this.S.encode_json_str_to_metadatum(JSON.stringify(Metadata), 0)\n )\n })\n\n aux.set_metadata(generalMetadata)\n } else {\n aux = transaction.auxiliary_data()\n }\n const signedTx = await this.S.Transaction.new(\n transaction.body(),\n totalWitnesses,\n aux\n )\n\n const txhash = await this._blockfrostRequest({\n endpoint: `/tx/submit`,\n headers: {\n \"Content-Type\": \"application/cbor\",\n },\n body: Buffer.from(signedTx.to_bytes(), \"hex\"),\n networkId: networkId,\n method: \"POST\",\n })\n\n return txhash\n }\n async _getProtocolParameter(networkId) {\n let latestBlock = await this._blockfrostRequest({\n endpoint: \"/blocks/latest\",\n networkId: networkId,\n method: \"GET\",\n })\n if (!latestBlock) throw ERROR.FAILED_PROTOCOL_PARAMETER\n\n let p = await this._blockfrostRequest({\n endpoint: `/epochs/${latestBlock.epoch}/parameters`,\n networkId: networkId,\n method: \"GET\",\n }) // if(!p) throw ERROR.FAILED_PROTOCOL_PARAMETER\n\n return {\n linearFee: {\n minFeeA: p.min_fee_a.toString(),\n minFeeB: p.min_fee_b.toString(),\n },\n minUtxo: \"1000000\", //p.min_utxo, minUTxOValue protocol paramter has been removed since Alonzo HF. Calulation of minADA works differently now, but 1 minADA still sufficient for now\n poolDeposit: p.pool_deposit,\n keyDeposit: p.key_deposit,\n maxTxSize: p.max_tx_size,\n slot: latestBlock.slot,\n }\n }\n async _submitRequest(body) {\n let latestBlock = await this._blockfrostRequest({\n endpoint: \"/blocks/latest\",\n network: networkId,\n })\n if (!latestBlock) throw ERROR.FAILED_PROTOCOL_PARAMETER\n\n let p = await this._blockfrostRequest({\n endpoint: `/epochs/${latestBlock.epoch}/parameters`,\n networkId: networkId,\n }) //\n if (!p) throw ERROR.FAILED_PROTOCOL_PARAMETER\n\n return {\n linearFee: {\n minFeeA: p.min_fee_a.toString(),\n minFeeB: p.min_fee_b.toString(),\n },\n minUtxo: \"1000000\", //p.min_utxo, minUTxOValue protocol paramter has been removed since Alonzo HF. Calulation of minADA works differently now, but 1 minADA still sufficient for now\n poolDeposit: p.pool_deposit,\n keyDeposit: p.key_deposit,\n maxTxSize: p.max_tx_size,\n slot: latestBlock.slot,\n }\n }\n async _blockfrostRequest({\n body,\n endpoint = \"\",\n networkId = 0,\n headers = {},\n method = \"GET\",\n }) {\n let networkEndpoint =\n networkId == 0\n ? \"https://cardano-testnet.blockfrost.io/api/v0\"\n : \"https://cardano-mainnet.blockfrost.io/api/v0\"\n let blockfrostApiKey = this.apiKey\n\n try {\n return await (\n await fetch(`${networkEndpoint}${endpoint}`, {\n headers: {\n project_id: blockfrostApiKey,\n ...headers,\n },\n method: method,\n body,\n })\n ).json()\n } catch (error) {\n console.log(error)\n return null\n }\n }\n}\n//////////////////////////////////////////////////\n//Auxiliary\n\nfunction AsciiToBuffer(string) {\n return Buffer.from(string, \"ascii\")\n}\n\nfunction HexToBuffer(string) {\n return Buffer.from(string, \"hex\")\n}\n\nfunction AsciiToHex(string) {\n return AsciiToBuffer(string).toString(\"hex\")\n}\n\nexport function HexToAscii(string) {\n return HexToBuffer(string).toString(\"ascii\")\n}\n\nfunction BufferToAscii(buffer) {\n return buffer.toString(\"ascii\")\n}\n\nfunction BufferToHex(buffer) {\n return buffer.toString(\"hex\")\n}\n\nexport default CardanoWallet\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","ConnectWallet","props","blockfrostApiKey","hidden","styles","popupStyles","handleConnect","handleLoading","useState","open","setOpen","selected","setSelected","loading","setLoading","connected","setConnected","setWallet","walletName","connectWallet","images","nami","NamiLogo","eternl","EternlLogo","ccvault","flint","FlintLogo","wallet","walletData","window","cardano","name","Cardano","S","enable","then","enabledWallet","CardanoWallet","getAddress","address","getBalance","balance","sessionStorage","setItem","useEffect","existingWallet","getItem","sx","position","top","right","width","height","zIndex","onClick","display","className","buttonStyles","size","color","gridTemplateColumns","alignItems","src","lovelace","toFixed","bg","borderRadius","p","selectStyles","cursor","textAlign","minHeight","whiteSpace","border","py","fontSize","userSelect","marginTop","textDecoration","textTransform","borderColor","supportedWallets","BLOCKFROST_API_KEY","showAda","deadAmount","assets","find","nft","policy","quantity","icons","forEach","supportedWallet","push","icon","experimental","vespr_compat","includes","mr","replace","length","fontFamily","px","minWidth","justifyContent","walletRefresh","grass","grassAmount","parseInt","console","log","MintingTips","showTips","setShowTips","mb","black","lineHeight","PassesChecker","usedPasses","message","setMessage","value","setValue","number","passUsed","pass","my","onChange","target","preloadImage","url","Image","memes","img","caption","RandomMemes","memeIndex","setSetMemeIndex","shuffledMemes","setShuffledMemes","newMemes","array","randomIndex","currentIndex","Math","floor","random","shuffle","slice","meme","mt","newMemeIndex","preloadIndex","maxWidth","mx","isPlaying","setIsPlaying","localStorage","defaultValue","autoPlay","setAutoPlay","setTimeout","checkPlaying","playAttempt","setInterval","document","getElementById","play","clearInterval","error","player","paused","handleClick","pause","key","loop","style","DRRSStore","userId","user_id","locked","locked_coin","nfts","JSON","parse","csrf","deadName","setWalletLoading","auctionTimes","setAuctionTimes","openBid","setOpenBid","bidValue","setBidValue","bidText","setBidText","auctionNfts","setAuctionNfts","rescramble","setRescramble","lockedCoin","setLockedCoin","useStickyState","agree","setAgree","sortedNfts","filter","now","Date","getTime","auction_end","sort","a","b","expired","isUser","top_bid","claimed","updateAuctionTimes","interval","newTimes","timeleft","days","hours","minutes","seconds","refreshAuctionData","handleBidClick","bid","nftMinPrice","min_price","minPrice","price","axios","nft_id","headers","Accept","resp","data","auctionData","stringify","handleBidDelete","confirm","deleted","alert","isConfirmed","noAuctions","topPrice","minBidPrice","hasNoBids","topBidPrice","theme","Image1","objectFit","objectPosition","bottom","left","flexDirection","pb","pt","connectedWallet","title","autoStart","text","speed","steps","roll","action","type","opacity","padding","margin","background","outline","autoFocus","min","onKeyDown","event","preventDefault","stopPropagation","handleKeyDown","checked","gridGap","index","image","token_type","canClaim","hasTime","bidTime","userIsTopBid","overflow","textOverflow","user","href","linkStyles","DRRSStoreInactive","onInit","typewriter","typeString","pauseFor","start","options","delay","activeOrder","active_order","deadWallet","pay_address","deadPolicy","walletLoading","loadingText","setLoadingText","order","setOrder","errors","setErrors","success","setSuccess","typing","setTyping","hasPendingTx","tx_hash","asset_tx_hash","orderCompleted","dead","txSubmitted","tx_created_at","txSubmittedText","toLocaleDateString","toLocaleTimeString","refresh","tx_status","tx_errors","newErrors","split","orderData","location","ml","callFunction","strings","total","witness_buyer","createTransaction","paymentAddress","userWallet","priceAmount","dummyMetadata","TEST","Test","Publisher","Twitter","recipients","amount","unit","utxos","netId","transaction","getUtxosHex","getNetworkId","PaymentAddress","metadata","addMetadata","utxosRaw","networkId","ttl","errMessage","witnessBuyer","signTx","user_wallet","newOrder","backendErrors","messages","CC1","CC2","CC3","CC4","CC5","CC6","DrrsWeaponsCC","setIndex","translations","backgroundImage","backgroundRepeat","backgroundSize","m","transition","cc","transform","translate","muted","preload","poster","buttonStyles2","HomeDRRS","mints","userMints","drrsMint","mint","drrsUserMint","uMint","mint_id","showLink","is_wl","SGSLogo","HomeDrrsWeapons","isWl","wlStart","publicStart","hover","setHover","isWlStart","isPublicStart","moleKeys","depotKeys","hasKeys","pr","onMouseOver","onMouseLeave","projectMetadata","soldOutGifs","MintDRRS","apiKey","mintId","orders","mintCount","isProduction","is_production","token_start","sortedOrders","lastOrder","confirmed_on_blockchain","walletAddress","policyId","policyScript","successfulOrders","orderOptions","setQuanity","successOrders","setSucessOrders","soldOutGif","setSoldOutGif","tokenAmount","setTokenAmount","sortedSuccessOrders","orderCreated","created_at","allowResetOrder","setMinutes","getMinutes","priceText","handleOrderClick","notes","order_type","handleOrderDelete","reload","findIndex","newOrders","subdomain","option","maxHeight","Number","paymentAmount","String","mintedAssets","assetName","nftsMeta","dummyNftsMeta","dummyMeta","Attributes","attribute","metadataHash","hashMetadata","multiSig","successfulOrder","allowResetTime","setHours","getHours","allowResetTx","txStatus","join","MintDRRSReserved","mediaType","Project","description","files","supremeMetadata","MintDRRSSupreme","nft_passes","drrsPolicy","selectedRabbits","setSelectedRabbits","allTickets","rabbits","hasRabbits","passes","rabbit","imageUrl","newRabbits","indexOf","splice","access_nfts","asset","item","assetsValid","MintDrrsSuccess","backgroundPosition","gridColumnGap","gridRowGap","MintDRRSWeapons","userMintCount","user_mint_count","wl_start","public_start","isWl1","is_wl1","isWl2","is_wl2","isWl3","is_wl3","createdDate","allowDeleteTime","canDelete","moleKey","depotKey","newPassesCount","tokenPrice","dAddress","weaponsPolicyId","ccPolicyId","max_amount","discord_wl_amount","wlOwed","Array","from","x","pricingText","usingWlCount","passesQuantity","usingPasses","trunc","ccCount","dAmount","drrsRecipient","dRecipient","nftsMetaCC","dummyNftsMetaCC","ccMetadata","weaponsMetadata","hasCC","MintInactiveDRRS","tokenStart","mint_access_token_start","tokenEnd","mint_access_token_end","mintStart","mintEnd","mintTokenEnd","isPreMint","isPostMint","history","back","ScrambleText","React","stickyValue","HomeWolf","userMint","isRegistered","registerText","registerPath","access_token","waitingGifs","MintInactiveWolf","previous","num","waitingGif","setWaitingGif","isVip","is_vip","mintTokenStart","MintWolf","userIsVip","userIsWl","isOverride","is_override","vipStart","vip_start","isPostVip","isPostWl","wl_price","vip_price","payment_wallet","policy_id","policy_script","notesText","attributes","fwc","file","MintWolfReserved","content","songTitles","isArray","setLoop","trackNumber","setTrackNumber","song","currentTime","trackTime","parseFloat","handleEnded","nextTrack","addEventListener","removeEventListener","handleTrackChange","load","hasMultipleTracks","trackCount","marginRight","marginLeft","arcadeSongs","payToPlay","link","Goateroids","gameName","GoatInvaders","Snake","Breakout","Pacman","freeToPlay","MortalKombat","SuperSmashBros","Crash","CrashTeamRacing","MarvelVsCapcom","Bomberman","KillerInstinct","Doom","Pokemon","Sonic","Diddy","StreetFighter","TwistedMetal","SuperMario","Conker","NinjaTurtles","GoldenEye","MarioKart","Dbz","Yugi","DonkeyKong","Mario64","TonyHawk","Xmen","comics","Comic1","Goatcade","goateriods","invaders","snake","breakout","pacman","show_admin","setWalletRefresh","ogs","goatia","hasGoats","scores","accepted","setAccepted","showDisclaimer","setShowDisclaimer","showRules","setShowRules","showPrizes","setShowPrizes","PixelGoat4","PixelGoat2","PixelGoat1","game","borderBottom","gameScores","score","ComicBg","ComicBgMobile","comic","GrassRegister","arcadeWallet","tokenSelect","setTokenSelect","tx_hash_confirmed","acceptedTokens","selectedToken","token","showTx","setShowTx","hovered","setHovered","innerHTML","credits","tokenType","onMouseEnter","Grass1","Grass2","tokenPayment","btnStyles","bgColors","goats","Goat2","Goat3","Goat4","phrases","getRandomNumber","SgsHome","mintLink","randomNumber","setRandomNumber","phrase","setPhrase","randomGoat","randomBg","goat","baseUrl","protocol","host","MintInactive","sgsMetadata","MintSgs","accessMintToken","mint_access_token","esgsCount","sgsCount","maxTokensAmount","user_mint_max","hasNami","allowedToMint","i","NamiWalletApi","isInstalled","isEnabled","result","result2","t","variant","order_id","fonts","body","heading","monospace","colors","primary","marker","lato","Loader","this","_wasm","BigInt","protocolParameters","CoinSelection","setProtocolParameters","minUTxO","minFeeA","minFeeB","maxTxSize","randomImprove","inputs","outputs","limit","_minUTxOValue","len","utxoSelection","selection","remaining","subset","mergedOutputsAmounts","mergeOutputsAmounts","splitOutputsAmounts","splitAmounts","output","createSubSet","randomSelect","cloneUTxOSelection","descSelect","sortAmountList","range","ideal","checked_add","maximum","improve","input","change","checked_sub","outputAmount","minUTxOValue","nbFreeUTxO","isQtyFulfilled","utxo","pop","addAmounts","utxoA","utxoB","compare","newAmount","abs","getAmountValue","compiledAmountList","get","amounts","compiledAmounts","multiasset","mA","scriptHash","j","_assets","insert","to_bytes","_multiasset","_value","set_multiasset","coin","amountList","sortOrder","sortInt","val","to_str","undefined","cumulatedAmount","minAmount","toString","maxFee","cloneUTxOList","cloneValue","utxoList","big","ERROR","FAILED_PROTOCOL_PARAMETER","TX_TOO_BIG","serilizationLib","NOT_CONNECTED","Buffer","getUsedAddresses","addressHex","BaseAddress","from_address","Address","from_bytes","to_address","to_bech32","getHexAddress","network","_getProtocolParameter","protocolParameter","valueCBOR","Value","getUtxos","parsedUtxos","TransactionUnspentOutput","countedValue","BigNum","from_str","element","minAda","min_ada_required","minUtxo","availableAda","multiAssets","policyAssets","assetNames","k","policyAsset","_policy","_name","fingerprint","AssetFingerprint","string","HexToBuffer","getApiKey","registerPolicy","fetch","method","scripts","keyHash","paymentKeyHash","slot","res","json","Utxos","u","UTXOS","_utxoToAssets","txHash","transaction_id","txId","mintedAssetsArray","TransactionOutputs","minting","outputValues","costValues","recipient","ReceiveAddress","multiAsset","_makeMultiAsset","_makeMintedAssets","outputValue","minAdaMint","set_coin","requiredMintAda","add","TransactionOutput","from_bech32","RawTransaction","_txBuilderMinting","Outputs","ProtocolParameter","_txBuilder","Metadata","Delegation","createLockingPolicyScript","expirationTime","duration","payment_cred","to_keyhash","nativeScripts","NativeScripts","script","ScriptPubkey","nativeScript","NativeScript","new_script_pubkey","lockScript","new_timelock_expiry","TimelockExpiry","finalScript","new_script_all","ScriptAll","ScriptHash","hash","partialSign","signData","getAddressHex","coseSign1Hex","aux","AuxiliaryData","generalMetadata","GeneralTransactionMetadata","entries","MetadataLabel","encode_json_str_to_metadatum","set_metadata","hash_auxiliary_data","AssetsMap","MultiAsset","Assets","AssetName","linearFee","Mint","mintedAssetsDict","assetsDict","MintAssets","Int","ScriptHashNamespace","mintedValue","policyScriptHex","mintAssets","TransactionInputs","TransactionInput","rawOutputs","fee","rawTxBody","TransactionBody","set_mint","auxDataHash","AuxiliaryDataHash","set_auxiliary_data_hash","witnesses","TransactionWitnessSet","set_native_scripts","dummyVkeyWitness","vkeys","Vkeywitnesses","Vkeywitness","set_vkeys","rawTx","Transaction","minFee","min_fee","LinearFee","finalTxBody","multiassets","auxiliary_data_hash","finalWitnesses","auxFinal","auxiliary_data","MULTIASSET_SIZE","VALUE_SIZE","txBuilder","TransactionBuilder","poolDeposit","keyDeposit","add_input","AUXILIARY_DATA","set_auxiliary_data","add_output","changeMultiAssets","partialChange","partialMultiAssets","policies","checkMultiAssets","checkValue","makeSplit","add_change_if_needed","build","submitTx","transactionRaw","txWitnesses","witness_set","txVkeys","txScripts","native_scripts","addWitnesses","addVkeys","addScripts","totalVkeys","totalScripts","totalWitnesses","signedTx","_blockfrostRequest","endpoint","txhash","latestBlock","epoch","min_fee_a","min_fee_b","pool_deposit","key_deposit","max_tx_size","_submitRequest","networkEndpoint","project_id"],"sourceRoot":""}