{"version":3,"file":"js/2974-0187995e29fce9fed862.js","mappings":"2KAMaA,EAAiB,SAACC,GAC7B,IAAMC,EAAe,IAAIC,SAYzB,OAVAC,OAAOC,KAAKJ,GAAeK,KAAI,SAAAC,GACzBC,MAAMC,QAAQR,EAAcM,IAC9BN,EAAcM,GAAMD,KAAI,SAAAI,GAAO,OAAIR,EAAaS,OAAO,GAADC,OAAIL,EAAI,MAAMG,EAAQ,IAEjD,MAAvBT,EAAcM,IAChBL,EAAaS,OAAOJ,EAAMN,EAAcM,GAG9C,IAEOL,CACT,EAGMW,EAAW,oBAAAA,KAAAC,EAAAA,EAAAA,GAAA,KAAAD,EAAA,CAyCd,OAzCcE,EAAAA,EAAAA,GAAAF,EAAA,OAAAG,IAAA,oBAAAC,MAEf,SAAyBC,GACvB,IAGMC,EAFM,oCADGC,aAAaC,QAAQ,UACuB,IAC5CH,EAAaI,QAAO,SAACC,EAAKC,GAAI,OAAKD,EAAM,SAAWC,EAAO,GAAG,GAAE,IAC9CC,MAAM,GAAI,GAE3C,OAAOC,EAAAA,EAAYC,OAAOR,EAC5B,GAAC,CAAAH,IAAA,wBAAAC,MAGD,SAA6BW,EAAKC,EAAMC,GAEtC,IACEC,EAQEF,EARFE,KACAC,EAOEH,EAPFG,MACSC,EAMPJ,EANFK,QACAC,EAKEN,EALFM,oBACOC,EAILP,EAJFQ,MAEAC,EAEET,EAFFS,QACAC,EACEV,EADFU,QAGIC,EAAQ,CACZA,MAAO,CACLC,cAAeX,EACfY,aAAaC,EAAAA,EAAAA,IAAaZ,GAC1BE,aAAAA,EACAG,aAAAA,EACAJ,MAAAA,EACAG,oBAAAA,EAEAG,QAAAA,EACAC,QAAAA,GAEFK,YAAa,GAGf,OAAOlB,EAAAA,EAAYmB,KAAKjB,EAAKY,EAC/B,KAAC3B,CAAA,CAzCc,GA4CjB,K,yDC3DMiC,EAAa,SAAHC,GAA4C,IAAtCC,EAAWD,EAAXC,YAAaC,EAAIF,EAAJE,KAAMC,EAAWH,EAAXG,YAEjCC,EAAYH,EAAY1C,KAAK,SAAC8C,EAAYC,GAAK,OACnDC,EAAAA,cAAA,OAAKC,UAAU,4BAA4BvC,IAAMoC,EAAWI,OACxDH,IAAUL,EAAYS,OAAS,EAC7BH,EAAAA,cAAA,OAAKC,UAAU,4EAA6EH,EAAWI,OACvGF,EAAAA,cAAA,OAAKC,UAAU,6BACbD,EAAAA,cAAA,KAAGC,UAAU,oBAAoBG,KAAON,EAAWO,MAC/CP,EAAWI,OAEfF,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,+BAA+B8B,KAAM,MAGpD,IAGR,OACEP,EAAAA,cAAA,OAAKC,UAAS,eAAA3C,OAAmBqC,GAAc,GAAE,KAAArC,OAAKsC,EAAc,eAAiB,KACnFI,EAAAA,cAAA,OAAKC,UAAU,aACbD,EAAAA,cAAA,OAAKC,UAAU,wBAAyBJ,IAIhD,EAEAL,EAAWgB,aAAe,CACxBd,YAAa,IAQf,W,orBC/BA,IAAMe,EAAY,WAEhB,IAAAC,GAQIC,EAAAA,EAAAA,YAAWC,EAAAA,SAPbC,EAAUH,EAAVG,WACAC,EAAYJ,EAAZI,aACAC,EAAQL,EAARK,SACApE,EAAa+D,EAAb/D,cACAqE,EAAaN,EAAbM,cACAC,EAAOP,EAAPO,QACAC,EAAOR,EAAPQ,QAGMC,EAAkFN,EAAlFM,sBAAuBC,EAA2DP,EAA3DO,oBAAqBC,EAAsCR,EAAtCQ,OAAQC,EAA8BT,EAA9BS,WAAYC,EAAkBV,EAAlBU,cAChEC,EAAmEH,EAAnEG,SAAUC,EAAyDJ,EAAzDI,WAAYC,EAA6CL,EAA7CK,iBAAkBC,EAA2BN,EAA3BM,WAAYC,EAAeP,EAAfO,WACpDC,EAAYd,EAAZc,QAERC,GAAkDC,EAAAA,EAAAA,UAAS,MAAKC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAzDI,EAAiBF,EAAA,GAAEG,EAAoBH,EAAA,GAExCI,GAAgBZ,EAChBa,EAAgBvB,GAAwC,IAAxBA,EAAaX,OAAe,IAAMW,EAAa,GAAK,GACpFwB,EAAyC,IAAjC3F,EAAc4F,eAAuB,MAAQ,QAGrDC,EAAOC,KAAKC,EAAE,+BAADpF,OAAgC+E,GAAa/E,OAAqB,aAAlB+E,EAA+B,kBAAoB,YAChHM,EAAkBH,EAAKF,GAASE,EAAKF,GAASE,EAC9CI,EAAiBH,KAAKC,EAAE,sBAAuB,CACnDG,eAAgBF,EAChBG,cAAejB,IAIXkB,EAA4B,OAAZ7B,GAAsC,eAAlBmB,IAAkC,EACtEW,EACJD,EACIN,KAAKC,EAAE,+BAADpF,OAAgC+E,EAAa,oBACnDM,EAEAM,EAA6BR,KAAKC,EACtC,4CACA,CACEQ,SAAU3B,GAAiBA,EAAc4B,iBACzCC,eAAgBJ,EAChBK,SAAUxB,IAIRyB,EAA6Bb,KAAKC,EACtC,2DACA,CACEa,gBAAiBhC,GAAiBA,EAAciC,UAAUrD,OAC1DiD,eAAgBJ,EAChBK,SAAUxB,IAEZ4B,QAAQ,UAAW,MAGrBC,EAAAA,EAAAA,YAAU,WACRC,GACF,GAAG,IAGH,IAAMC,EAAmB,SAACC,GACxB,IAAMlH,EAAgB,CACpB6F,KAAM,YACNsB,kBAAmB,QACnBC,GAAItC,EACJoC,MAAAA,GAGFzF,EAAAA,EACGmB,KAAKmC,GAAkBhF,EAAAA,EAAAA,GAAeC,IACtCqH,MAAK,SAAAC,GAAQ,OAAIA,GAChBjD,GAAc,SAAAkD,GAAQ,OAAAC,EAAAA,EAAA,GACjBD,GAAQ,IACX7C,OAAM8C,EAAAA,EAAA,GACDD,EAAS7C,QAAM,IAClBG,SAAUyC,EAASG,YAAYC,UAC/BzC,WAAYqC,EAASG,YAAYE,eAClC,GACA,GAET,EAGMC,EAAoB,SAACC,GAAC,OAC1BrC,EAAqBqC,EAAEC,OAAOV,GAAI,EAG9BW,EAAkB,WAAH,OACnBvC,EAAqB,KAAM,EAGvBwB,EAAoB,WACxB,IAAMgB,EAAe,SAACC,GACpB,IAAMC,EAASC,SAASC,cAAc,UACtCF,EAAOG,aAAa,MAAO,iCAAmCJ,EAAIK,QAAQlB,GAAK,qBAC/Ec,EAAOG,aAAa,cAAe,KACnCH,EAAOG,aAAa,kBAAmB,KACvCH,EAAOG,aAAa,WAAY,KAChCH,EAAOG,aAAa,QAAS,2EAC7BJ,EAAIM,WAAWC,aAAaN,EAAQD,EACtC,EAEMQ,EAAiBN,SAASO,uBAAuB,kBAEvD,GAAID,GAAkBA,EAAejF,OACnC,IAAK,IAAImF,EAAI,EAAGA,EAAIF,EAAejF,OAAQmF,IAAK,CAC9C,IAAMC,EAAUH,EAAeE,GAAGL,QAAQlB,GACpCa,EAAME,SAASC,cAAc,OAEnCH,EAAII,aAAa,UAAWO,GAE5B,IAAMC,EAAYV,SAASC,cAAc,OAEzCS,EAAUC,IAAM,0CAA0ChC,QAAQ,KAAM8B,GACxEX,EAAIc,YAAYF,GAEhB,IAAMG,EAAab,SAASC,cAAc,OAE1CY,EAAWX,aAAa,QAAS,QACjCJ,EAAIc,YAAYC,GAChBf,EAAIgB,QAAU,WACZjB,EAAakB,KACf,EAEAT,EAAeE,GAAGI,YAAYd,EAChC,CAEJ,EAGMkB,EAAa,SAACC,GAAI,OACtBA,EAAKC,OAAO,GAAGC,cAAgBF,EAAKG,UAAU,EAAG,EAgBnD,OAAIjF,IAAYK,EAEZtB,EAAAA,cAAA,OAAKC,UAAU,wBACX0B,EACA3B,EAAAA,cAAA,OAAKC,UAAU,6BACbD,EAAAA,cAAA,OAAKC,UAAU,aACbD,EAAAA,cAAA,OAAKC,UAAU,+BAEbD,EAAAA,cAAA,QAAMC,UAAU,8BACb2C,GAGH5C,EAAAA,cAAA,OAAKC,UAAU,2BACbD,EAAAA,cAAA,QACEC,UAAU,yBACV8D,GAAG,IACHoC,QAAS,SAAC3B,GAAC,OAAKZ,EAAiBY,EAAEC,OAAOV,GAAG,EAC7CqC,YAAa7B,EACb8B,WAAY3B,GACZ1E,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,OAAO8B,KAAM,MAG5BP,EAAAA,cAAA,QACEC,UAAU,yBACV8D,GAAG,IACHoC,QAAS,SAAC3B,GAAC,OAAKZ,EAAiBY,EAAEC,OAAOV,GAAG,EAC7CqC,YAAa7B,EACb8B,WAAY3B,GACTxC,EAEClC,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAOyD,GAAqB,EAAI,OAAS,gBAAkB3B,KAAM,KADzEP,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAO2D,GAAgB,EAAI,OAASA,EAAe,EAAI,YAAc,gBAAkB7B,KAAM,MAI3GP,EAAAA,cAAA,QACEC,UAAU,yBACV8D,GAAG,IACHoC,QAAS,SAAC3B,GAAC,OAAKZ,EAAiBY,EAAEC,OAAOV,GAAG,EAC7CqC,YAAa7B,EACb8B,WAAY3B,GACTxC,EAEClC,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAOyD,GAAqB,EAAI,OAAS,gBAAkB3B,KAAM,KADzEP,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAO2D,GAAgB,EAAI,OAASA,EAAe,EAAI,YAAc,gBAAkB7B,KAAM,MAI3GP,EAAAA,cAAA,QACEC,UAAU,yBACV8D,GAAG,IACHoC,QAAS,SAAC3B,GAAC,OAAKZ,EAAiBY,EAAEC,OAAOV,GAAG,EAC7CqC,YAAa7B,EACb8B,WAAY3B,GAETxC,EAEClC,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAOyD,GAAqB,EAAI,OAAS,gBAAkB3B,KAAM,KADzEP,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAO2D,GAAgB,EAAI,OAASA,EAAe,EAAI,YAAc,gBAAkB7B,KAAM,MAI3GP,EAAAA,cAAA,QACEC,UAAU,yBACV8D,GAAG,IACHoC,QAAS,SAAC3B,GAAC,OAAKZ,EAAiBY,EAAEC,OAAOV,GAAG,EAC7CqC,YAAa7B,EACb8B,WAAY3B,GAETxC,EAEClC,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAOyD,GAAqB,EAAI,OAAS,gBAAkB3B,KAAM,KADzEP,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAwB,IAAjB2D,EAAqB,OAASA,EAAe,EAAI,YAAc,gBAAkB7B,KAAM,MAI5GP,EAAAA,cAAA,QAAMC,UAAU,0BACZmC,EAAY,KAAA9E,OAAQsE,EAAU,KAAAtE,OAAImF,KAAKC,EAAE,6BAA4B,UAM/E,KAEFvB,GAAyBA,EAAsBhB,OAAS,EAEtDH,EAAAA,cAAA,OAAK+D,GAAG,wBACJ5C,EAAsBnE,KAAI,SAACI,EAAS2C,GAAK,OACzCC,EAAAA,cAAA,OAAKC,UAAU,0BAA0BvC,IAAKqC,GAC5CC,EAAAA,cAAA,MAAIC,UAAU,2DACV7C,EAAQkJ,UAEZtG,EAAAA,cAAA,OAAKC,UAAU,yCACX7C,EAAQmJ,OACRnJ,EAAQmJ,MAAMjI,MACU,QAAvBlB,EAAQmJ,MAAMC,MACU,QAAvBpJ,EAAQmJ,MAAMC,OACdxG,EAAAA,cAAA,OACEC,UAAU,2BACV,WAAU7C,EAAQmJ,MAAMjI,IACxBmI,IAAKrJ,EAAQmJ,MAAME,IACnB,aAAW,OACX,cAAY,QAGlBzG,EAAAA,cAAA,OAAKC,UAAU,2BAA2ByG,wBAAyB,CAAEC,OAAQvJ,EAAQ2I,QACnF3I,EAAQmJ,OACRnJ,EAAQmJ,MAAMjI,KACS,UAAvBlB,EAAQmJ,MAAMC,MACZxG,EAAAA,cAAA,OAAKC,UAAU,8BA7GjB3B,EA8GiBlB,EAAQmJ,MAAMjI,IA7G3CiH,EAAUjH,EAAIsI,MAAM,KAAKC,MAExB7G,EAAAA,cAAA,OAAKC,UAAU,iBAAiB,UAASsF,QAH/B,IAACjH,EACZiH,CAiHY,KAGVnE,GACEpB,EAAAA,cAAA,OAAK+D,GAAG,uBAAuB9D,UAAU,uBACvCD,EAAAA,cAAA,OAAK0G,wBAAyB,CAAEC,OAAQvF,MAI9CG,GACAvB,EAAAA,cAAA,OAAKC,UAAU,iCACbD,EAAAA,cAAA,MAAIC,UAAU,2DACV8C,EACEN,KAAKC,EACH,oDACA,CAAEU,eAAgBT,EAAiBU,SAAUxB,IAE/CY,KAAKC,EAAE,6CAA8C,CACnDU,eAAgBT,EAChBU,SAAUxB,KAKlB7B,EAAAA,cAAA,OAAKC,UAAU,aACbD,EAAAA,cAAA,OAAKC,UAAU,OACbD,EAAAA,cAAA,OAAKC,UAAU,uCACbD,EAAAA,cAAA,KAAGC,UAAU,uCACT8C,EACEN,KAAKC,EACH,8DACA,CACEU,eAAgBT,EAChBU,SAAUxB,IAGdY,KAAKC,EACH,uDACA,CACEU,eAAgBT,EAChBU,SAAUxB,QAQ1B7B,EAAAA,cAAA,OAAKC,UAAU,mEACbD,EAAAA,cAAA,OAAKC,UAAU,6BACbD,EAAAA,cAAA,SAAOC,UAAU,qBACfD,EAAAA,cAAA,aACEA,EAAAA,cAAA,UACEA,EAAAA,cAAA,MAAI8G,MAAM,MAAM7G,UAAU,eACtB6F,EAAWnD,GAAkB,KAAGd,GAEpC7B,EAAAA,cAAA,MAAI8G,MAAM,MAAM7G,UAAU,sBACtBsB,EAAc+E,SAAS,KAG3B/E,EAAcwF,YAAY/J,KAAI,SAACgK,EAASC,GAAS,OACjDjH,EAAAA,cAAA,MAAItC,IAAKuJ,GACPjH,EAAAA,cAAA,MAAI8G,MAAM,OAAOE,EAAQE,aACvBF,EAAQG,MAAMnK,KACd,SAACoK,EAAMrH,GAAK,OACA,IAAVA,GAAeC,EAAAA,cAAA,MAAItC,IAAKqC,GAAQqH,EAAU,IAE3C,MAKXpH,EAAAA,cAAA,SAAOC,UAAU,gDACfD,EAAAA,cAAA,aAEEA,EAAAA,cAAA,UACEA,EAAAA,cAAA,MAAI8G,MAAM,MAAM7G,UAAU,eACtB6F,EAAWnD,GAAkB,KAAId,GAGnCN,EAAc+E,SAAStJ,KAAI,SAACsJ,EAAUvG,GAAK,OAC3CC,EAAAA,cAAA,MAAI8G,MAAM,MAAMpJ,IAAKqC,GACjBA,IAAUwB,EAAc+E,SAASnG,OAAS,EAExCH,EAAAA,cAACqH,EAAAA,SAAQ,KACPrH,EAAAA,cAAA,YACIyC,KAAKC,EAAE,6CAEX1C,EAAAA,cAAA,QAAMC,UAAU,+BAA8B,IACzCqG,EAAU,MAIjBA,EAED,KAIP/E,EAAcwF,YAAY/J,KAAI,SAACgK,EAASC,GAAS,OACjDjH,EAAAA,cAAA,MAAItC,IAAKuJ,GACPjH,EAAAA,cAAA,MAAI8G,MAAM,OAAOE,EAAQE,aACvBF,EAAQG,MAAMnK,KAAI,SAACoK,EAAMrH,GAAK,OAC9BA,IAAUiH,EAAQG,MAAMhH,OAAS,EAE7BH,EAAAA,cAAA,MAAItC,IAAKqC,GACLqH,EAAM,KAlOpBE,EAkOgCN,EAAQO,kBAjOjD,EACHvH,EAAAA,cAAA,QAAMC,UAAU,YAAW,UAC1BqH,EAAO,EAAItH,EAAAA,cAAA,QAAMC,UAAU,YAAW,UAAgBD,EAAAA,cAAA,QAAMC,UAAU,iBAkOjDD,EAAAA,cAAA,MAAItC,IAAKqC,GAAQqH,GArO5B,IAACE,CAqOqC,IAG9B,OAKbtH,EAAAA,cAAA,KACEC,UAAU,kCACVyG,wBAAyB,CACvBC,OAAQ1D,MAKdjD,EAAAA,cAAA,OAAKC,UAAU,kFACbD,EAAAA,cAAA,MAAIC,UAAU,8BACVqD,GAEJtD,EAAAA,cAAA,MAAIC,UAAU,qBACVsB,EAAciC,UAAUxG,KAAI,SAACwK,EAAMzH,GAAK,OACxCC,EAAAA,cAAA,MAAItC,IAAKqC,GACPC,EAAAA,cAAA,KAAGI,KAAMoH,EAAK,GAAI/C,OAAO,UACrB+C,EAAK,IAEN,KAGTxH,EAAAA,cAAA,KAAGC,UAAU,yCACXD,EAAAA,cAAA,KAAGI,KAAMmB,EAAckG,uBAAwBhD,OAAO,UAClDhC,KAAKC,EAAE,oDAAqD,CAAEU,eAAgBJ,KAEhFP,KAAKC,EAAE,iDAAkD,CAAEW,SAAUxB,QAQ5E,IAEX,EAEA,YAMApB,EAAUD,aAAe,CACvBS,SAAS,E,+0BCraW,IAGhByG,EAAoB,SAAAC,IAAAC,EAAAA,EAAAA,GAAAF,EAAAC,GAAA,IAAAE,EAAAC,EAAAJ,GAAA,SAAAA,IAAA,IAAAK,GAAAvK,EAAAA,EAAAA,GAAA,KAAAkK,GAAA,QAAAM,EAAAC,UAAA9H,OAAA+H,EAAA,IAAAhL,MAAA8K,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAAD,EAAAC,GAAAF,UAAAE,GAuHvB,OAvHuBJ,EAAAF,EAAAO,KAAAC,MAAAR,EAAA,OAAAvK,OAAA4K,KAAAI,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,QAEhB,CACNS,SAAUT,EAAKU,MAAMD,WAAY,EACjCE,mBAAoB,GACpBC,YAAa,GACbC,gBAAgB,EAChBC,UAAW,MACZP,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,sBAiBoB,SAACe,GACpB,IAAMC,EAA0C,QAAzBD,EAAMrE,OAAOuE,SAAqBjB,EAAKkB,aAAelB,EAAKkB,WAAWC,SAASJ,EAAMrE,QACtG0E,EAAYL,EAAMrE,SAAWsD,EAAKqB,SAAWrB,EAAKqB,QAAQF,SAASJ,EAAMrE,QAE/EsE,IAAmBI,GAAapB,EAAKsB,SAAS,CAAEb,UAAU,EAAOE,mBAAoB,IACvF,KAACJ,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,aAEW,SAACuB,GAEXvB,EAAKU,MAAMc,UAAUD,EAAUvB,EAAKU,MAAMe,YAC5C,KAAClB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,gBAEc,SAAC0B,EAAQC,GAAM,OAC5B3B,EAAKU,MAAMkB,aAAaF,EAAQC,EAAQ,KAADpB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,iBAEzB,SAAC6B,GAAI,OACnB7B,EAAKkB,WAAaW,CAAK,KAADtB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,iBAER,kBACdA,EAAKsB,SAAS,CAAEb,UAAWT,EAAK8B,MAAMrB,SAAUE,mBAAoB,IAAM,KAADJ,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,uBAErD,SAAChE,GACrB,IAAA+F,EAA4C/B,EAAK8B,MAAzClB,EAAWmB,EAAXnB,YAAaD,EAAkBoB,EAAlBpB,mBACf3I,EAAQ2I,EAAmBqB,QAAQhG,GACnCiG,EAAoBjK,GAAS,EAC7BkK,EACJtB,EACKqB,EAAoBE,IAAOxB,EAAoB,CAACyB,QAAS,CAAC,CAACpK,EAAO,MAASmK,IAAOxB,EAAoB,CAAC0B,MAAO,CAACrG,KAChHiG,EAAoB,GAAK,CAACjG,GAEhCgE,EAAKsB,SAAS,CAAEX,mBAAoBuB,IAAuB,kBAAOtB,IAAgBqB,GAAqBK,YAAW,kBAAMtC,EAAKuC,eAAevG,EAAG,GAAE,IAAI,GACvJ,KAACuE,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,kBAEgB,SAAChE,GAChB,IAAQwG,EAAiBxC,EAAKU,MAAtB8B,aACFC,EAAa1F,SAAS2F,eAAeF,EAAe,iBAAmB,iBACvEG,EAAe5F,SAAS2F,eAAe,WAADnN,OAAYyG,IAClD4G,EAAe7F,SAAS2F,eAAe,iBACvCG,EAAkBF,EAAaG,WAAaN,EAAeI,EAAaE,UAAY,GAE1FL,EAAWM,UAAYF,CACzB,KAACtC,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,gBAEc,SAACgD,GACdhD,EAAKsB,SAAS,CAAEV,YAAaoC,EAAMC,cAAetC,mBAAoB,KAAM,WAC1EqC,EACIhD,EAAKkD,kBACLlD,EAAKsB,SAAS,CAAER,UAAW,IACjC,GACF,KAACP,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,mBAEiB,WAChB,IAAQY,EAAgBZ,EAAK8B,MAArBlB,YACAa,EAAgBzB,EAAKU,MAArBe,YACF0B,EAAiB,GAEjBrC,EAAYF,GAAea,EAAY2B,QAAO,SAAA5M,GAClD,IAAM6M,EAAgB7M,EAAK8M,MAAMC,MAAK,SAAAC,GAAI,OAAIA,EAAK9M,KAAKuM,cAAcQ,SAAS7C,IAAgB4C,EAAKE,UAAY,CAAC,IAEjH,SAAUlN,EAAKE,KAAKuM,cAAcQ,SAAS7C,KAAgByC,IAAkB7M,EAAK+D,MAAQ,CAC5F,IAAGtF,KAAI,SAAA0O,GACL,IAAMC,E,qWAAQxH,CAAA,GAAQuH,GAKtB,OAHAC,EAASN,MAAQK,EAAaL,MAAMF,QAAO,SAAAI,GAAI,OAAIA,EAAK9M,KAAKuM,cAAcQ,SAAS7C,IAAgB4C,EAAKE,UAAY,CAAC,IACtHE,EAASN,MAAMlL,QAAU+K,EAAeU,KAAKD,EAAS5H,IAE/C4H,CACT,IAEA5D,EAAKsB,SAAS,CAAER,UAAAA,EAAWH,mBAAoBwC,GACjD,KAAC5C,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,oBAEkB,WACjB,IAAA8D,EAA4D9D,EAAK8B,MAAzDlB,EAAWkD,EAAXlD,YAAaD,EAAkBmD,EAAlBnD,mBAAoBE,EAAciD,EAAdjD,eAEzC,IAAKD,GAAeD,EAAmBvI,OAAQ,CAC7C,IAAQoK,EAAiBxC,EAAKU,MAAtB8B,aACFG,EAAe5F,SAAS2F,eAAe,sBAADnN,OAAuBoL,EAAmB,KAChFiC,EAAe7F,SAAS2F,eAAeF,EAAe,iBAAmB,iBAE/E,GAAIG,GAAgBC,EAAc,CAChC,IAAMmB,EAAapB,GAAgBA,EAAaqB,wBAC1CC,EAAWrB,GAAgBA,EAAaoB,wBACxCE,EAAYH,EAAWI,IACvBC,EAAU5B,EAAeyB,EAASE,IAAM,GAAKF,EAASE,IACtDE,EAAeN,EAAWO,OAC1BC,EAAaN,EAASK,OACtBE,EAAiBC,OAAOC,YACxBC,EAAWT,GAAaE,IAAYC,EAAeE,GAAcF,EAAeG,IAErFG,GAAY9D,GAAkBb,EAAKsB,SAAS,CAAET,gBAAgB,IAC/D8D,IAAa9D,GAAkBb,EAAKsB,SAAS,CAAET,gBAAgB,GACjE,CACF,CACF,IAACb,CAAC,CA2JD,OA3JAtK,EAAAA,EAAAA,GAAAiK,EAAA,EAAAhK,IAAA,oBAAAC,MA7GD,WACEmH,SAAS6H,iBAAiB,QAAS9G,KAAK+G,mBAC1C,GAAC,CAAAlP,IAAA,qBAAAC,MAED,SAAmBkP,EAAWC,GAC5B,IAAQC,EAAiBlH,KAAK4C,MAAtBsE,aAERA,GAAgBF,EAAUE,eAAiBA,GAAgBlH,KAAKmH,kBAClE,GAAC,CAAAtP,IAAA,uBAAAC,MAGD,WACEmH,SAASmI,oBAAoB,QAASpH,KAAK+G,mBAC7C,GAAC,CAAAlP,IAAA,SAAAC,MAmGD,WAAU,IAADuP,EAAA,KACPC,EAAiFtH,KAAKgE,MAA9ErB,EAAQ2E,EAAR3E,SAAUG,EAAWwE,EAAXxE,YAAaD,EAAkByE,EAAlBzE,mBAAoBE,EAAcuE,EAAdvE,eAAgBC,EAASsE,EAATtE,UACnEuE,EAA8EvH,KAAK4C,MAA3E4E,EAAWD,EAAXC,YAAa7D,EAAW4D,EAAX5D,YAAa8D,EAAWF,EAAXE,YAAaC,EAAYH,EAAZG,aAAchD,EAAY6C,EAAZ7C,aACvDiD,EAAoBC,IAAW,iCAAkC,CAAE,KAAQjF,IAC3EkF,EAAcD,IAAW,0BAA2B,CAAE,gCAAiCjF,IACvFmF,EAAqBF,IAAW,iCAAkC,CAAE,OAAUjF,IAC9EoF,EAAiBH,IAAW,6BAA8B,CAAE,qCAAsCjF,IAEpGqF,EAAQ,GACRC,EAAc,GAClBhR,OAAOC,KAAKwQ,GAAcvQ,KAAI,SAAAuB,GAAI,OAAIuP,EAAW,GAAAxQ,QAAAyQ,EAAAA,EAAAA,GAAOD,IAAWC,EAAAA,EAAAA,GAAKR,EAAahP,IAAM,IAC3FuP,EAAYE,SAAQ,SAAAC,GAAkB,OAAIzE,EAAYwE,SAAQ,SAAAzC,GAAI,OAAIA,EAAKF,MAAM2C,SAAQ,SAAArC,GAAQ,OAAIA,EAAS5H,KAAOkK,GAAsBJ,EAAMjC,KAAKD,EAASlN,KAAK,GAAC,GAAC,IAEtK,IAAMF,EAAOoK,EAAcE,EAAYW,EAEjC0E,EAAwB,SAACzP,GAC7B,GAAIA,EAAKuM,cAAcQ,SAAS7C,GAAc,CAC5C,IAAMwF,EAAa1P,EAAKuM,cAClBoD,EAAaD,EAAWpE,QAAQpB,GAChC0F,EAAWF,EAAWpE,QAAQpB,GAAeA,EAAYxI,OACzDmO,EAAe,WAAAhR,OAAemB,EAAKyH,UAAUkI,EAAYC,GAAS,aAGxE,OAF0B5P,EAAKgF,QAAQhF,EAAKyH,UAAUkI,EAAYC,GAAWC,GAAiBC,WAAW,IAAK,QAGhH,CACE,OAAO9P,CAEX,EAIA,OACEuB,EAAAA,cAAA,OAAKC,UAAU,qBACbD,EAAAA,cAAA,OAAKC,UAAW2N,EAAgBzH,QAASN,KAAK2I,cAAeC,IAAK,SAAAC,GAAE,OAAIxB,EAAK9D,QAAUsF,CAAE,GACvF1O,EAAAA,cAAA,OAAKC,UAAW0N,GACZL,EACFtN,EAAAA,cAAA,QAAMC,UAAU,mCACZ4N,EAAM1N,OAAS,GAAC,KAAA7C,OAASuQ,EAAM1N,OAAM,OAG3CH,EAAAA,cAAA,OAAKC,UAAU,oCACX4N,EAAM1N,OAAS,GACfH,EAAAA,cAAA,OAAKC,UAAU,uCACX4N,EAAMc,KAAK,OAGjB3O,EAAAA,cAAA,OAAKC,UAAWuN,GACXhF,EAAqDxI,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,cAAc8B,KAAM,KAA3EP,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,cAAc8B,KAAM,SAKlDiI,GAAY+B,IACbvK,EAAAA,cAAA,OAAKC,UAAWyN,EAAae,IAAK5I,KAAK+I,cAAeC,SAAUhJ,KAAKmH,iBAAkBjJ,GAAG,iBAExF/D,EAAAA,cAAA,OAAKC,UAAU,4BACbD,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,SAAS8B,KAAM,KAC5BP,EAAAA,cAAA,SACEC,UAAU,yBACV6O,SAAU,SAACtK,GAAC,OAAK0I,EAAK6B,aAAavK,EAAEC,OAAO9G,MAAM,EAClD2P,YAAW,GAAAhQ,OAAKmF,KAAKC,EAAE,sDAAqD,OAC5E8D,KAAK,OACL7I,MAAOgL,KAIX3I,EAAAA,cAAA,OAAKC,UAAU,6BACX1B,EAAKvB,KAAI,SAACkB,GACV,IAAM8L,EAAoBtB,EAAmBqB,QAAQ7L,EAAK6F,KAAO,EAC3DiL,EAAmB9Q,EAAKmN,MAAM4D,MAAK,SAACC,EAAEC,GAAC,OAAKD,EAAEzQ,KAAK2Q,cAAcD,EAAE1Q,KAAK,IACxE4Q,EAAiB9B,EAAarP,EAAK6F,KAAOwJ,EAAarP,EAAK6F,IAAI5D,OAAS,EACzEmP,EAAkBD,EAAiB,uCAAyC,mCAC5EE,EAAiB9B,IAAW,kCAAmC,CAAC,OAAUzD,IAC1EwF,EAAgBxF,EAAoB,CAACyF,UAAU,GAADnS,OAA+B,IAAzBY,EAAKmN,MAAMlL,OAAS,GAAO,OAAQ,CAAC,EACxFuP,EAAcjC,IAAW,+BAC7B,CAAE,oCAAqCzD,GACvC,CAAE,OAAUpB,GAAkBoB,GAC9B,CAAE,kCAAmCuD,EAAarP,EAAK6F,MAEzD,OACE/D,EAAAA,cAAA,OAAKtC,IAAKQ,EAAK6F,GAAIA,GAAE,sBAAAzG,OAAwBY,EAAK6F,KAC9C7F,EAAKoE,MAAQ,GACbtC,EAAAA,cAAA,OAAKC,UAAWyP,EAAa3L,GAAE,WAAAzG,OAAaY,EAAK6F,KAC/C/D,EAAAA,cAAA,OAAKC,UAAU,gCACbD,EAAAA,cAAA,OAAKmG,QAAUkJ,EAAiB,kBAAMhC,EAAYnP,EAAK6F,GAAG,EAAG,kBAAMmJ,EAAK3D,UAAUrL,EAAK,EAAE+B,UAAWqP,GAClGtP,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,QAAQ8B,KAAM,MAE7BP,EAAAA,cAAA,OAAKC,UAAU,gCAAgCkG,QAAS,kBAAM6I,EAAiB7O,OAAS+M,EAAKyC,oBAAoBzR,EAAK6F,IAAM,IAAI,GAC9H/D,EAAAA,cAAA,QAAMC,UAAS,GAAA3C,OAAKqL,EAAc,aAAe,IAAMjC,wBAAyB,CAAEC,OAAO,GAADrJ,OAAMqL,EAAcuF,EAAsBhQ,EAAKO,MAAQP,EAAKO,KAAI,MAAAnB,OAAMY,EAAKoE,MAAK,QACtK+M,GACArP,EAAAA,cAAA,QAAMC,UAAU,qCAAoC,IAAGsN,EAAarP,EAAK6F,IAAI5D,OAAQ,IAAEsC,KAAKC,EAAE,uCAIpG1C,EAAAA,cAAA,QAAMC,UAAS,cAAA3C,OAAiB0R,EAAiB7O,OAAsB,GAAb,YAAmBgG,QAAS,kBAAM+G,EAAKyC,oBAAoBzR,EAAK6F,GAAG,GACzHiG,EAAoBhK,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,cAAc8B,KAAM,KAASP,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,cAAc8B,KAAM,OAKvGP,EAAAA,cAAA,OAAKC,UAAWsP,EAAgBK,MAAOJ,GACrCxP,EAAAA,cAAA,OAAKC,UAAU,qCACbD,EAAAA,cAAA,KAAGmG,QAAS,kBAAM+G,EAAK3D,UAAUrL,EAAK,GAAIuE,KAAKC,EAAE,4BACjD1C,EAAAA,cAAA,KAAGmG,QAAS,kBAAMkH,EAAYnP,EAAK6F,GAAG,GAAItB,KAAKC,EAAE,+BAGjDsM,EAAiBhS,KAAI,SAAAuO,GACrB,IAAM8D,EAAiB9B,EAAarP,EAAK6F,KAAOwJ,EAAarP,EAAK6F,IAAIgG,QAAQwB,EAAKxH,KAAO,EACpF8L,EAAqBpC,IAAW,0BAA2B,CAAC,mCAAoC4B,IAChGS,EAAyBT,EAAiB,uCAAyC,mCAGzF,OACErP,EAAAA,cAACqH,EAAAA,SAAQ,CAAC3J,IAAK6N,EAAKxH,IAChBwH,EAAKE,UAAY,GACjBzL,EAAAA,cAAA,OAAKC,UAAW4P,EAAoB1J,QAAS,kBAAM+G,EAAKvD,aAAazL,EAAK6F,GAAIwH,EAAKxH,GAAG,GACpF/D,EAAAA,cAAA,OAAKC,UAAU,gCACbD,EAAAA,cAAA,OAAKC,UAAW6P,GACd9P,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,QAAQ8B,KAAM,OAG/BP,EAAAA,cAAA,OAAKC,UAAU,+BACVyG,wBAAyB,CAAEC,OAAO,GAADrJ,OAAKqL,EAAcuF,EAAsB3C,EAAK9M,MAAQ8M,EAAK9M,KAAI,MAAAnB,OAAKiO,EAAKE,UAAS,SAMlI,IACAzL,EAAAA,cAAA,OAAKC,UAAU,kCAIvB,IACE0I,IAAgBpK,EAAK4B,QACrBH,EAAAA,cAAA,OAAKC,UAAU,qBACbD,EAAAA,cAAA,OAAKC,UAAU,6BACbD,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,aAAa8B,KAAM,KAChCP,EAAAA,cAAA,SAAKyC,KAAKC,EAAE,4DAEd1C,EAAAA,cAAA,OAAKC,UAAU,gCACXwC,KAAKC,EAAE,8DAKjB1C,EAAAA,cAAA,OAAKC,UAAU,kCAMzB,KAACyH,CAAA,CAlRuB,CAASqI,EAAAA,WAqRnC,W,oECrRMC,EAAiB,WAErB,IAAAtP,GAWIC,EAAAA,EAAAA,YAAWC,EAAAA,SAVbqP,EAAgBvP,EAAhBuP,iBACAC,EAA2BxP,EAA3BwP,4BACAC,EAAOzP,EAAPyP,QACAtP,EAAUH,EAAVG,WACAE,EAAQL,EAARK,SACApE,EAAa+D,EAAb/D,cACAsE,EAAOP,EAAPO,QACAC,EAAOR,EAAPQ,QACAkP,EAAO1P,EAAP0P,QACAC,EAAmB3P,EAAnB2P,oBAGM9N,EAA6BxB,EAA7BwB,eAAgB+N,EAAavP,EAAbuP,SAGtBpJ,EAMErG,EANFqG,YACA/F,EAKEN,EALFM,sBACAC,EAIEP,EAJFO,oBACAkF,EAGEzF,EAHFyF,SACAhF,EAEET,EAFFS,WACAiP,EACE1P,EADF0P,SA6CIjO,EAAQ,SAACC,GACb,QAAQ,GACN,KAAwB,IAAnBA,EACH,MAAO,MACT,KAAKA,EAAiB,GAAKA,EAAiB,EAC1C,MAAO,MACT,KAAKA,GAAkB,EACrB,MAAO,OACT,QACE,MAAO,QAEb,EAGMF,EAAgB1F,EAAc6T,OAAwC,IAA/B7T,EAAc6T,MAAMrQ,OAAe,IAAMxD,EAAc6T,MAAM,GAAK,GACzGhO,EAAOC,KAAKC,EAAE,+BAADpF,OAAgC+E,EAAa,YAE1DoO,EAA6BJ,GAA+C,IAAxBA,EAA4BA,EAAsB9N,EACtGI,EAAkBH,EAAKF,EAAMmO,IAA+BjO,EAAKF,EAAMmO,IAA+BjO,EAAY,MAClHkO,EAA0B,WAAZxP,EAAuB+O,EAAmBC,EAG9D,OACElQ,EAAAA,cAAA,OAAKC,UAAU,sBACbD,EAAAA,cAAA,OAAKC,UAAU,uBACbD,EAAAA,cAAA,OAAKC,UAAU,wBACbD,EAAAA,cAAA,OAAKC,UAAU,OACXqG,EACAtG,EAAAA,cAACqH,EAAAA,SAAQ,KACPrH,EAAAA,cAAA,OAAKC,UAAU,8BACbD,EAAAA,cAAA,MAAIC,UAAS,uBAAA3C,OAAqC,OAAZ4D,EAAmB,8BAAgC,KAEvFlB,EAAAA,cAAA,QAAMC,UAAU,eAAgBwQ,EAA4B,KAAQzQ,EAAAA,cAAA,YAAQiB,GAAgBjB,EAAAA,cAAA,YAAM,IAAG2C,GArDpF,WACjC,GAAgB,UAAZyN,EAeF,OAAO,KAdP,QAAQ,GACN,IAAsB,gBAAhBE,EAAS,IAAwBA,EAASnQ,OAAS,EACvD,MAAO,+BAET,IAAsB,YAAhBmQ,EAAS,IAAoBA,EAASnQ,OAAS,EACnD,MAAO,6BAET,IAAsB,eAAhBmQ,EAAS,IAAuBA,EAASnQ,OAAS,EACtD,MAAO,kBAET,QACE,MAAO,WAKf,CAoCoBwQ,GACA1P,EAAU,KAAO,IAChBK,GAAc3E,EAAciU,UAAatP,EAAciP,IAAuBtP,EAAUqF,EAAW7D,KAAKC,EAAE,sCAE5GpB,IAAeiP,GAChBvQ,EAAAA,cAAA,OAAKC,UAAU,0BACXgB,EAAUiG,EAAczE,KAAKC,EAAE,qCAC/BzB,IAAYG,GAAwBD,GAAyBA,EAAsBhB,OAAS,IAC5FH,EAAAA,cAAA,OAAKC,UAAU,uBAAuBkG,QAtEpC,WACtB,IAAM0K,EAAiB/L,SAAS2F,eAAe,wBACzCqG,EAAgBhM,SAAS2F,eAAe,YAAYsG,aACpD9E,EAfQ,SAAC+E,GACf,IAAIC,EAAS,EACb,GAAID,EAAIE,aAAc,CACpB,GACED,GAAUD,EAAInG,gBACPmG,EAAMA,EAAIE,cACnB,OAAOD,CACT,CAEF,CAMoBE,CAAQN,GAAkBC,EAAgB,IAC5DM,SAAS,CAAElF,IAAKD,EAAWoF,KAAMvM,SAASwM,KAAMC,SAAU,UAC5D,GAkE0B9O,KAAKC,EAAE,wBAOnB1C,EAAAA,cAAA,OAAKC,UAAU,4DACbD,EAAAA,cAAA,OAAKC,UAAU,6BACbD,EAAAA,cAAA,OAAKC,UAAU,0BACbD,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,QAAQ8B,KAAM,KAC3BP,EAAAA,cAAA,QAAMC,UAAU,+BACZwC,KAAKC,EAAE,2DAIVuN,GACDjQ,EAAAA,cAAA,OAAKC,UAAU,0BACbD,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,QAAQ8B,KAAM,KAC3BP,EAAAA,cAAA,QAAMC,UAAU,+BACZwC,KAAKC,EAAE,0DAKf1C,EAAAA,cAAA,OAAKC,UAAU,0BACbD,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,QAAQ8B,KAAM,KAC3BP,EAAAA,cAAA,QAAMC,UAAU,+BACA,OAAZiB,EACElB,EAAAA,cAAA,OAAK0G,wBAAyB,CAACC,OAAQlE,KAAKC,EAAE,4DAC9CD,KAAKC,EAAE,wDAAyD,CAAC,aAAgByN,MAKvFF,GACAjQ,EAAAA,cAAA,OAAKC,UAAU,wDACbD,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,cAAc8B,KAAM,KACjCP,EAAAA,cAAA,QAAMC,UAAU,+BACZwC,KAAKC,EAAE,mBAAoB,QAAO1C,EAAAA,cAAA,KAAGI,KAAI,SAAA9C,OAAW2S,IAAsBS,QAQtF1Q,EAAAA,cAAA,KAAGC,UAAU,2BAA4BwC,KAAKC,EAAE,0DAOhE,EAGA,YAMAsN,EAAexP,aAAe,CAC5BS,SAAS,E,wkBCtL2B,IAEhCuQ,EAAe,SAAA7J,IAAAC,EAAAA,EAAAA,GAAA4J,EAAA7J,GAAA,IAAAE,EAAAC,EAAA0J,GAAA,SAAAA,IAAA,IAAAzJ,GAAAvK,EAAAA,EAAAA,GAAA,KAAAgU,GAAA,QAAAxJ,EAAAC,UAAA9H,OAAA+H,EAAA,IAAAhL,MAAA8K,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAAD,EAAAC,GAAAF,UAAAE,GAgClB,OAhCkBJ,EAAAF,EAAAO,KAAAC,MAAAR,EAAA,OAAAvK,OAAA4K,KAAAI,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,QAEZ,CACL0J,gBAAiB,KACjBC,eAAe,KAChBpJ,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,yBAauB,WACtB,IAAKA,EAAK8B,MAAM8H,gBAAkB,CAChC,IAAQF,EAAoB1J,EAAK8B,MAAzB4H,gBACFG,EAAiBpF,OAAOqF,YAK9BrF,OAAOqF,YAAcrF,OAAOC,YAAc3H,SAASwM,KAAKQ,cACxD/J,EAAKsB,SAAS,CACZqI,cAAeD,EAAkBG,EACjCH,gBAAiBG,GAErB,CACF,IAAC7J,CAAC,CAcD,OAdAtK,EAAAA,EAAAA,GAAA+T,EAAA,EAAA9T,IAAA,oBAAAC,MAzBD,WACEkI,KAAKwD,SAAS,CAACoI,gBAAiBjF,OAAOqF,cACvCrF,OAAOG,iBAAiB,SAAU9G,KAAKkM,sBACzC,GAAC,CAAArU,IAAA,qBAAAC,MAED,SAAmBkP,EAAWC,GAC5B,IAAckF,EAAcnM,KAAK4C,MAAMwJ,WAA/BC,KAERF,IAAcnF,EAAUoF,WAAWC,OAASF,GAAanM,KAAKwD,SAAS,CAAEqI,eAAe,GAC1F,GAAC,CAAAhU,IAAA,SAAAC,MAmBD,WACE,OACEqC,EAAAA,cAACmS,IAAM,CACLjG,IAAI,YACJkG,eAAe,WACfC,OAAQ,IACRC,SAAWzM,KAAK4C,MAAMwJ,WAAWC,MAAQrM,KAAKgE,MAAM6H,gBAAkB7L,KAAK4C,MAAMkJ,iBAEhF9L,KAAK4C,MAAM8J,SAGlB,KAACf,CAAA,CA9CkB,CAASzB,EAAAA,WAiD9B,W,23BClCA,IAAMyC,EAAoBxS,EAAAA,MAAW,kBAAM,+BAAkD,IACvFyS,EAAmBzS,EAAAA,MAAW,kBAAM,+BAA6B,IACjE0S,EAAqB1S,EAAAA,MAAW,kBAAM,+BAA+B,IACrE2S,EAAmB3S,EAAAA,MAAW,kBAAM,+BAA6B,IACjE4S,EAAsB5S,EAAAA,MAAW,kBAAM,wDAAuD,IAC9F6S,EAAgB7S,EAAAA,MAAW,kBAAM,kEAA8C,IAC/E8S,EAAkB9S,EAAAA,MAAW,kBAAM,+BAAgD,IACnF+S,EAAoB/S,EAAAA,MAAW,kBAAM,+BAA8B,IAYzE,IAAMgT,EAAqB,WAEzB,IAAMC,GAAgBC,EAAAA,EAAAA,UAAS,KAAK,SAACC,GACnCA,GACF,IAEAzS,GAmCIC,EAAAA,EAAAA,YAAWC,EAAAA,SAlCb8I,EAAMhJ,EAANgJ,OACA0J,EAAQ1S,EAAR0S,SACAC,EAAW3S,EAAX2S,YACAC,EAAc5S,EAAd4S,eACAC,EAAsB7S,EAAtB6S,uBACAC,EAAuB9S,EAAvB8S,wBACAC,EAAiC/S,EAAjC+S,kCACAC,EAAgBhT,EAAhBgT,iBACAC,EAAQjT,EAARiT,SACAC,EAAiBlT,EAAjBkT,kBACAC,EAA8BnT,EAA9BmT,+BACAC,EAA4BpT,EAA5BoT,6BACAC,EAAmBrT,EAAnBqT,oBACAC,EAAyBtT,EAAzBsT,0BACAC,EAAyBvT,EAAzBuT,0BACAlT,EAAQL,EAARK,SACAmT,EAAgBxT,EAAhBwT,iBACAC,EAAazT,EAAbyT,cACAC,EAAU1T,EAAV0T,WACAnC,EAAUvR,EAAVuR,WACAoC,EAAqB3T,EAArB2T,sBACA1X,EAAa+D,EAAb/D,cACA2X,GAAqB5T,EAArB4T,sBACAC,GAAkB7T,EAAlB6T,mBACAC,GAAmB9T,EAAnB8T,oBACAC,GAAgB/T,EAAhB+T,iBACAC,GAAwBhU,EAAxBgU,yBACAC,GAAqBjU,EAArBiU,sBACAC,GAAsBlU,EAAtBkU,uBACA1T,GAAOR,EAAPQ,QACAkP,GAAO1P,EAAP0P,QACAyE,GAA0BnU,EAA1BmU,2BACAC,GAASpU,EAAToU,UACAC,GAAWrU,EAAXqU,YAIAC,GAQErY,EARFqY,SACAC,GAOEtY,EAPFsY,SACAC,GAMEvY,EANFuY,cACAC,GAKExY,EALFwY,WACA3E,GAIE7T,EAJF6T,MACA4E,GAGEzY,EAHFyY,SACAC,GAEE1Y,EAFF0Y,SACAC,GACE3Y,EADF2Y,aAIAC,GAYExU,EAZFwU,oBACAC,GAWEzU,EAXFyU,cACAC,GAUE1U,EAVF0U,aACAC,GASE3U,EATF2U,oBACAC,GAQE5U,EARF4U,yBACAC,GAOE7U,EAPF6U,QACAC,GAME9U,EANF8U,mBACAC,GAKE/U,EALF+U,WACAC,GAIEhV,EAJFgV,aACAzF,GAGEvP,EAHFuP,SACA0F,GAEEjV,EAFFiV,gCACAC,GACElV,EADFkV,oBAGFnU,IAA8CC,EAAAA,EAAAA,WAAS,GAAMC,IAAAC,EAAAA,EAAAA,GAAAH,GAAA,GAAtDoU,GAAelU,GAAA,GAAEmU,GAAkBnU,GAAA,GAC1CoU,IAAgDrU,EAAAA,EAAAA,WAAS,GAAMsU,IAAApU,EAAAA,EAAAA,GAAAmU,GAAA,GAAxDE,GAAgBD,GAAA,GAAEE,GAAmBF,GAAA,GAC5CG,IAAsDzU,EAAAA,EAAAA,UAAS,GAAE0U,IAAAxU,EAAAA,EAAAA,GAAAuU,GAAA,GAA1DE,GAAmBD,GAAA,GAAEE,GAAsBF,GAAA,GAClDG,IAAoD7U,EAAAA,EAAAA,WAAS,GAAM8U,IAAA5U,EAAAA,EAAAA,GAAA2U,GAAA,GAA5DE,GAAkBD,GAAA,GAAEE,GAAqBF,GAAA,GAChDG,IAA8CjV,EAAAA,EAAAA,WAAS,GAAMkV,IAAAhV,EAAAA,EAAAA,GAAA+U,GAAA,GAAtDrF,GAAesF,GAAA,GAAEC,GAAkBD,GAAA,GAC1CE,IAAoCpV,EAAAA,EAAAA,UAAS,IAAGqV,IAAAnV,EAAAA,EAAAA,GAAAkV,GAAA,GAAzCE,GAAUD,GAAA,GAAEE,GAAaF,GAAA,GAChCG,IAA4DxV,EAAAA,EAAAA,UAAS,MAAKyV,IAAAvV,EAAAA,EAAAA,GAAAsV,GAAA,GAAnEE,GAAsBD,GAAA,GAAEE,GAAyBF,GAAA,GACxDG,IAAsD5V,EAAAA,EAAAA,UAAS,CAAC,GAAE6V,IAAA3V,EAAAA,EAAAA,GAAA0V,GAAA,GAA3DE,GAAmBD,GAAA,GAAEE,GAAsBF,GAAA,GAClDG,IAA8ChW,EAAAA,EAAAA,UAAS,CAAC,GAAEiW,IAAA/V,EAAAA,EAAAA,GAAA8V,GAAA,GAAnDE,GAAeD,GAAA,GAAEE,GAAkBF,GAAA,GAC1CG,IAA4CpW,EAAAA,EAAAA,UAAS,CAAEqW,IAAKC,OAAOrD,KAAa,OAAQsD,IAAKD,OAAOpD,KAAa,IAAIsD,IAAAtW,EAAAA,EAAAA,GAAAkW,GAAA,GAA9GK,GAAcD,GAAA,GAAEE,GAAiBF,GAAA,GACxCG,IAA0C3W,EAAAA,EAAAA,UAAS,CAAEqW,IAAKC,OAAOjD,KAAa,IAAMkD,IAAKD,OAAOhD,KAAa,IAAIsD,IAAA1W,EAAAA,EAAAA,GAAAyW,GAAA,GAA1GE,GAAaD,GAAA,GAAEE,GAAgBF,GAAA,GACtCG,IAA0C/W,EAAAA,EAAAA,UAAS,IAAGgX,IAAA9W,EAAAA,EAAAA,GAAA6W,GAAA,GAA/CE,GAAaD,GAAA,GAAEE,GAAgBF,GAAA,GACtCG,IAA4DnX,EAAAA,EAAAA,WAAS,GAAMoX,IAAAlX,EAAAA,EAAAA,GAAAiX,GAAA,GAApEE,GAAsBD,GAAA,GAAEE,GAAyBF,GAAA,GACxDG,IAA4DvX,EAAAA,EAAAA,WAAS,GAAMwX,IAAAtX,EAAAA,EAAAA,GAAAqX,GAAA,GAApEE,GAAsBD,GAAA,GAAEE,GAAyBF,GAAA,GAElDG,IAAgBC,EAAAA,EAAAA,WAGtBjW,EAAAA,EAAAA,YAAU,WAER,IAQAkW,EARMC,EAAQ,CACZ,kBAAMlG,EAAShX,EAAc,EAC7B,kBAAM+W,EAAiB/W,EAAc,EACrC,kBAAM0W,GAAa,EACnB,kBAAMU,EAAoBpX,EAAc,EACxC,kBAAMiX,EAAkBjX,EAAc,IAGxCid,GAAAE,EAAAA,EAAAA,GAAAC,IAAAA,MAAC,SAAAC,IAAA,OAAAD,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,YACQN,EAAM1Z,OAAS,GAAC,CAAA8Z,EAAAE,KAAA,QAOrB,OALaN,EAAMO,OAGnBC,GAEAJ,EAAAE,KAAA,EA/GC,IAAIG,SAAQ,SAAAC,GACjBlQ,WAAWkQ,EAAS,EACtB,IA8G0B,KAAD,EAAAN,EAAAE,KAAA,gCAAAF,EAAAO,OAAA,GAAAR,EAAA,KAEtB,WAX2B,OAAAJ,EAAAvR,MAAA,KAAAJ,UAAA,IAY9B,GAAG,KAGHvE,EAAAA,EAAAA,YAAU,WAIR,OAHA8I,OAAOiO,WAAa,kBAAMC,IAAoB,EAC9ClO,OAAOG,iBAAiB,oBAAqBgO,IAEtC,WACLnO,OAAOS,oBAAoB,oBAAqB0N,GAClD,CACF,GAAG,KAGHjX,EAAAA,EAAAA,YAAU,YACP2U,OAAOjD,MAAciD,OAAOO,GAAcR,MAAQC,OAAOhD,MAAcgD,OAAOO,GAAcN,OAC1FO,GAAiB,CAAET,IAAKC,OAAOjD,IAAWkD,IAAKD,OAAOhD,KAC3D,GAAG,CAACD,GAAUC,MAGd3R,EAAAA,EAAAA,YAAU,YACP2U,OAAOrD,MAAcqD,OAAOG,GAAeJ,MAAQC,OAAOpD,MAAcoD,OAAOG,GAAeF,OAC5FG,GAAkB,CAAEL,IAAKC,OAAOrD,IAAWsD,IAAKD,OAAOpD,KAC5D,GAAG,CAACD,GAAUC,MAGdvR,EAAAA,EAAAA,YAAU,WACRuV,GAAiBzI,GACbA,GAAMxT,KAAI,SAAAC,GACV,IAAM2d,EAAiBnY,KAAKC,EAAE,gCAADpF,OAAiCL,EAAI,YAElE,MAAO,CAAE8G,GAAI9G,EAAMwB,KADNmc,EAAoB,IAAIA,EAAoB,IAAIA,EAE/D,IACE,GACN,GAAG,CAACpK,MAGJ9M,EAAAA,EAAAA,YAAU,WAGJiO,KACFmG,GAAuB,CACrBkB,cAAe6B,KAAKC,MAAMD,KAAKE,UAAU/B,KACzCf,gBAAiB4C,KAAKC,MAAMD,KAAKE,UAAU9C,KAC3CW,cAAeiC,KAAKC,MAAMD,KAAKE,UAAUnC,KACzCJ,eAAgBqC,KAAKC,MAAMD,KAAKE,UAAUvC,KAC1ClE,sBAAAA,KAEFoD,GAA0B,CAAElD,oBAAAA,GAAqBD,mBAAAA,KACjDyG,KAEJ,GAAG,CAACrJ,MAGJjO,EAAAA,EAAAA,YAAU,WACJiO,KACFqJ,KACAC,KAEJ,GAAG,CAACte,KAGJ+G,EAAAA,EAAAA,YAAU,WACR,IASM2T,EATUva,OAAOoe,OAAO5H,GAEYtV,QAAO,SAACf,EAAMke,GACtD,IAAMC,EAAmBD,EAAaE,iBAAiBlQ,QAAO,SAAAI,GAAI,OAAKA,EAAKE,UAAY,CAAC,IACnF6P,EAAOnX,EAAAA,EAAA,GAAOgX,GAAY,IAAEE,iBAAkBD,IAEpD,OADAne,EAAK2O,KAAK0P,GACHre,CACT,GAAG,IAE0CD,KAAI,SAAAC,GAC/C,IAAMse,EAActe,EAAKoe,iBAAiBrd,QAAO,SAACwd,EAAOL,GACvD,OAAOK,EAAQL,EAAa1P,SAC9B,GAAG,GACCgQ,EAAKtX,EAAAA,EAAA,GAAQlH,GAAI,IAAEqF,MAAOiZ,IAE9B,OAAApX,EAAA,CAASkH,MADoCoQ,EAArCJ,mBAAgCK,EAAAA,EAAAA,GAAKD,EAAKE,GAEpD,IAIA,GAFArE,GAAcD,GAETvB,GAOE,CAEL,IAAI8F,EAAiB,CAAC,EAEtBvE,EAAWra,KAAI,SAAAkB,GACb,IAAM4P,EAAc,GAEpB5P,EAAKmN,MAAMrO,KAAI,SAAAuO,GAAI,OAAI0I,EAA0BlK,QAAQwB,EAAKxH,KAAO,GAAK+J,EAAYlC,KAAKL,EAAKxH,GAAG,IAE/F+J,EAAY3N,SAAQyb,EAAe1d,EAAK6F,IAAM+J,EACpD,IAEAoK,GAAmB0D,EACrB,KApBiB,CACf,IAAMC,EAAiBxE,EAAWrZ,QAAO,SAACwd,EAAOL,GAE/C,OADAK,EAAML,EAAapX,IAAMoX,EAAa9P,MAAMrO,KAAI,SAAAC,GAAI,OAAIA,EAAK8G,EAAE,IACxDyX,CACT,GAAG,CAAC,GAEJtD,GAAmB2D,EACrB,CAcF,GAAG,CAACvI,EAAgBW,IAGpB,IAAMyG,GAAoB,WACxB,IAAMoB,EAAUje,EAAAA,MAAkB2O,OAAOnJ,SAAS0Y,QAC5CC,EAAcC,QAAQpS,MAAQhM,EAAAA,MAAkBoe,QAAQpS,MAAMkB,OAAS,CAAC,EAC1EmR,EAAgB/X,EAAA,GAAQxH,GAGxBwf,EAAgB,CAClB7L,SAAUA,GACV+E,SAAU,EACVD,SAAU9E,GAAS9E,SAAS,SAAWyK,GAAsBF,GAC7Dd,SAAU,EACVD,SAAUY,GACVyF,iBAAkB1F,GAClBnF,MAAOiF,GACP2G,KAAM,EACNlH,cAAe,IAGjBgH,EAAiBb,iBAAmBve,OAAOC,KAAK4Y,IAA0B3X,QAAO,SAACqe,EAAK/S,GAAQ,OAAK+S,EAAI/e,OAAOqY,GAAyBrM,GAAU,GAAE,WAC7I4S,EAAiB5G,oBACjB4G,EAAiB/G,WACxBgH,GAAgBG,EAAAA,EAAAA,GAAiBH,EAAeL,IAE3Chf,OAAOC,KAAK+e,GAAS3b,OAAS,IACjC+b,EAAiBb,iBAAgC,aAAbjI,EAChCY,EAA0BtK,GACb,mBAAb0J,EACA,CAAC1J,GACD2N,GAAWrZ,QAAO,SAACqe,EAAK/S,GAAQ,OAAK+S,EAAI/e,OAAOgM,EAAS+B,MAAMrO,KAAI,SAAA2O,GAAQ,OAAIA,EAAS5H,EAAE,IAAE,GAAE,WAE3FmY,EAAiB5G,oBACjB4G,EAAiB/G,YAG1B+G,GAAmBI,EAAAA,EAAAA,GAAiBJ,EAAkBF,GAAa,EAAMG,GACzE1I,EAAkCyI,EAAkBF,EAAYO,WAAW,GAC3EnI,EAAW8H,GACXzH,GAAgBtQ,EAAC,CAAC,EAAI+X,IAEtB,IAAMlD,EAAgBkD,EAAiB1L,MACnCgM,GAAiBN,EAAiB1L,MAAMhF,SAAS,QAAU,CAAC,SAAU0Q,EAAiB1L,OACvF,GAEJyI,GAAiBD,GACjBH,IAAiB,SAAA3U,GAAQ,OAAAC,EAAAA,EAAA,GAASD,GAAQ,IAAEkU,IAAKC,OAAO6D,EAAiB9G,UAAWkD,IAAKD,OAAO6D,EAAiB7G,WAAS,IAC1HoD,IAAkB,SAAAvU,GAAQ,OAAAC,EAAAA,EAAA,GAASD,GAAQ,IAAEkU,IAAKC,OAAO6D,EAAiBlH,UAAWsD,IAAKD,OAAO6D,EAAiBjH,WAAS,IAC3HP,IAAwB3G,EAAAA,EAAAA,GAAMmO,EAAiBhH,eACjD,EAGMsH,GAAmB,SAACC,GACxB,OAAOA,EAAczf,KAAI,SAAAC,GACvB,IAAM2d,EAAiBnY,KAAKC,EAAE,gCAADpF,OAAiCL,EAAI,YAGlE,MAAO,CAAE8G,GAAI9G,EAAMwB,KAFNmc,EAAoB,IAAIA,EAAoB,IAAIA,EAG/D,GACF,EAwBM8B,GAAyB,SAACC,EAAQC,GACtC,IAAMC,EAAgBF,GAAUnE,GAEhCmE,GAAUlE,GAAkBkE,GAExBC,IACFjL,GACI8C,IAAiB,SAAAqI,GAAU,OAAA3Y,EAAAA,EAAA,GAAU2Y,GAAU,IAAE7H,SAAU4H,EAAcvE,IAAKtD,SAAU6H,EAAczE,KAAG,IACzG5E,EAAwBqJ,GAEhC,EAGME,GAAuB,SAACC,GAC5B,IAAMC,EAAsB,GAE5B/E,GAAmB8E,GACnBlgB,OAAOC,KAAKigB,GAAchgB,KAAI,SAAAC,GAAI,OAAI+f,EAAa/f,GAAMD,KAAI,SAAAkB,GAAI,OAAI+e,EAAoBrR,KAAK1N,EAAK,GAAC,IACpGyT,GACI8C,IAAiB,SAAAqI,GAAU,OAAA3Y,EAAAA,EAAA,GAAU2Y,GAAU,IAAEzB,iBAAkB4B,GAAmB,IACtFpJ,EAA+BoJ,EACrC,EAkDMC,GAAmB,SAACC,EAAUC,GAClC,IAAIC,EAAalZ,EAAA,GAAQ8T,IACrBqF,EAAmBD,EAAcF,GAErCG,EACGA,EAAiBvT,QAAQqT,IAAW,EAAIE,EAAiBC,OAAOD,EAAiBvT,QAAQqT,GAAS,GAAKE,EAAiB1R,KAAKwR,GAC9HC,EAAcF,GAAY,CAACC,GAEM,IAAnCC,EAAcF,GAAUhd,eAAuBkd,EAAcF,GAC7DJ,GAAqBM,EACvB,EAGM9T,GAAY,SAACD,EAAU+N,GAC3B,IAAIgG,EAAalZ,EAAA,GAAQ8T,IAEzBZ,EAAWrJ,SAAQ,SAAA5Q,GACdA,EAAQ2G,KAAOuF,EAASvF,KACzBsZ,EAAc/T,EAASvF,IAAM3G,EAAQiO,MAAMrO,KAAI,SAAAuO,GAAI,OAAIA,EAAKxH,EAAE,IAElE,IAEAgZ,GAAqBM,EACvB,EAGMhQ,GAAc,SAAC8P,GACnB,IAAIE,EAAalZ,EAAA,GAAQ8T,WAElBoF,EAAcF,GACrBJ,GAAqBM,EACvB,EAGM1C,GAAyB,WAC7BtQ,YAAW,WACLmC,OAAOgR,WAAa,KAAO7L,IAC7B8L,IAAoB,EAExB,GAAG,EACL,EAeMA,GAAsB,SAACvL,GAE3B,IAAMwL,EAA8B5Y,SAAS2F,eAAe,kBACtDkT,EAAiB7Y,SAAS2F,eAAe,kBACzCmT,EAAuB1L,EAI7B,GAFAgF,GAAmB0G,GAEfA,EACF9Y,SAAS2F,eAAe,YAAYoT,UAAUC,IAAI,WAClDC,EAAAA,EAAAA,IAAkBJ,GAGlBnR,OAAOwR,UAAYxR,OAAOwR,WAAa,GACvCxR,OAAOwR,UAAUpS,KAAK,CACpB9C,MAAO,qBACPmV,cAAe,2BACfC,YAAa,iCAEV,CACL7E,IAA0B,GAE1B,IAAM8E,EAAmB,GAEzBtG,GAAoBI,iBAAmBnb,OAAOC,KAAK8a,GAAoBI,iBACpEjb,KAAI,SAAAC,GAAI,OAAI4a,GAAoBI,gBAAgBhb,GAAMD,KAAI,SAAAkB,GAAI,OAAIigB,EAAiBvS,KAAK1N,EAAK,GAAC,IAEjG,IAAM4e,EAAU3Y,EAAAA,EAAA,GACXxH,GAAa,IAChB2T,SAAUvP,EAASuP,SACnB+E,SAAUwC,GAAoBe,cAAcN,IAC5ClD,SAAUyC,GAAoBe,cAAcR,IAC5CnD,SAAU4C,GAAoBW,eAAeF,IAC7CtD,SAAU6C,GAAoBW,eAAeJ,IAC7CiD,iBAAkB8C,EAClB3N,MAAOqH,GAAoBmB,cAAchc,KAAI,SAAAwJ,GAAI,OAAIA,EAAKzC,EAAE,IAC5DuR,aAAcmC,GAAuBjD,oBACrCW,WAAYsC,GAAuBlD,mBACnCW,cAAe2C,GAAoBvD,wBAGrCG,IAAiB,SAAA3H,GAAS,OAAA3I,EAAAA,EAAA,GAAU2I,GAAcgQ,EAAU,IAC5DnI,GAAsBQ,IAAc,IACpCP,GAAuBU,IAAgB,IACvCxQ,SAAS2F,eAAe,YAAYoT,UAAUO,OAAO,WACrDC,EAAAA,EAAAA,IAAiBX,EACnB,CACF,EA6BM1C,GAA2B,WAC/B,IAAMxB,KACDR,GAAc7Y,QACd+U,GAAc/U,QACdrD,OAAOC,KAAKkb,IAAiB9X,QAC7ByY,GAAcN,IAAM,GACpBM,GAAcR,OAAS9H,GAAS9E,SAAS,SAAWyK,GAAsBF,KAC1EyC,GAAeF,IAAM,GACrBE,GAAeJ,MAAQxC,IACtBN,IAAgBA,GAAanV,QAC7BgV,IAAcA,GAAWhV,QAE/BsZ,GAA0BD,EAC5B,EAIMyB,GAA2B,WAC/B,IAAMoC,EAAgB,GAChBiB,EAAoB,GACpBC,EAAcjJ,IAAgB,GAC9BkJ,EAAoBrJ,IAAc,GAClCb,EAAwBY,GAE9BpY,OAAOC,KAAKkb,IAAiBjb,KAAI,SAAAC,GAAI,OAAIgb,GAAgBhb,GAAMD,KAAI,SAAAkB,GAAI,OAAImf,EAAczR,KAAK1N,EAAK,GAAC,IACpG2Z,GAAoBI,iBAAmBnb,OAAOC,KAAK8a,GAAoBI,iBAAiBjb,KAAI,SAAAC,GAAI,OAAI4a,GAAoBI,gBAAgBhb,GAAMD,KAAI,SAAAkB,GAAI,OAAIogB,EAAkB1S,KAAK1N,EAAK,GAAC,IAEvL,IAAMkb,IACDJ,GAAc7Y,SAAW0X,GAAoBmB,cAAc7Y,QAC3D6Y,GAAcyF,OAAM,SAAAjY,GAAI,OAAIqR,GAAoBmB,cAAc0F,MAAK,SAAAC,GAAQ,OAAIA,EAAS5a,KAAOyC,EAAKzC,EAAE,GAAC,KACvGsZ,EAAcld,SAAWme,EAAkBne,QAC3Ckd,EAAcoB,OAAM,SAAAlT,GAAI,OAAI+S,EAAkBvU,QAAQwB,IAAS,CAAC,KAChEqN,GAAcN,MAAQT,GAAoBe,cAAcN,KACxDM,GAAcR,MAAQP,GAAoBe,cAAcR,KACxDI,GAAeF,MAAQT,GAAoBW,eAAeF,KAC1DE,GAAeJ,MAAQP,GAAoBW,eAAeJ,KAC1DmG,EAAYpe,SAAWsX,GAAuBjD,oBAAoBrU,QAClEoe,EAAYE,OAAM,SAAAF,GAAW,OAAI9G,GAAuBjD,oBAAoBzK,QAAQwU,IAAgB,CAAC,KACrGC,EAAkBre,SAAWsX,GAAuBlD,mBAAmBpU,QACvEqe,EAAkBC,OAAM,SAAAG,GAAQ,OAAInH,GAAuBlD,mBAAmBxK,QAAQ6U,IAAa,CAAC,KACpGtK,EAAsBnU,SAAW0X,GAAoBvD,sBAAsBnU,QAC3EmU,EAAsBmK,OAAM,SAAApd,GAAM,OAAIwW,GAAoBvD,sBAAsBvK,QAAQ1I,IAAW,CAAC,KAGzGgY,GAA0BD,EAC5B,EAkBMyF,GAAoB,WACxB9H,IAAsB,GACtBvK,OAAOS,oBAAoB,QAASL,IACpC9H,SAASwM,KAAKuM,UAAUiB,OAAO,aACjC,EAGMlS,GAAqB,SAACpI,GAC1B,GAAIkV,IAAiBA,GAAcqF,QAAS,CAC1C,IAAMta,EAASD,EAAEC,OACXua,EAAUtF,GAAcqF,QAAQ7V,SAASzE,GACzCwa,EAAena,SAAS2F,eAAe,gBACvCyU,EAAiBD,IAAiBxa,GAAUwa,EAAa/V,SAASzE,IAEvEua,IAAYE,GAAkBL,IACjC,CACF,EAoCM7M,GAAYC,EAAWC,KACvBiN,GAA2B,UAAhB7O,GAAS,GAAiB2F,GAAsBF,GAC3DqJ,GAAoB3R,IAAW,cAAe,CAAE,mBAAoBuE,KACpEqN,GAAwB5R,IAAW,6BAA8B,CAAE,gBAAiBkE,IAAmB,CAAE,cAAeyH,KACxHkG,GAA0B,OAAlB9J,GACR+J,GAAiBD,GAAQ,WAAa,UACtCE,GAAWF,GAAQ,SAAQ,QAC3BG,GAAkBH,GAAQ7c,KAAKC,EAAE,wCAA0CD,KAAKC,EAAE,uCAClFgd,GAAiBJ,GAAQ7c,KAAKC,EAAE,uCAAyCD,KAAKC,EAAE,sCAChF6H,GAAewK,GAAc,IAC7B4K,GAAuBjK,KAAwBkD,GAAcN,IAAM,GAAKM,GAAcR,MAAQ+G,KAAS,GAAA7hB,OAAOsb,GAAcN,IAAG,OAAAhb,OAAMsb,GAAcR,IAAG,KAAA9a,OAAI0Y,IAC1J4J,IAAuBpH,GAAeF,IAAM,GAAKE,GAAeJ,MAAQxC,KAAO,GAAAtY,OAC7Ekb,GAAeF,IAAG,OAAAhb,OAAMkb,GAAeJ,IAAG,YAAA9a,OAAQuiB,KAAKC,MAAMtH,GAAeF,IAAM,IAAG,OAAAhb,OAAMuiB,KAAKC,MAAMtH,GAAeJ,IAAM,IAAG,KAAA9a,OAAImF,KAAKC,EAAE,2DAE7Iqd,GAAsBlF,KAAKC,MAAMD,KAAKE,UAAU1D,KAChDoF,GAAgB9f,EAAc6T,MAC5BwP,GAAmBvD,IAA0C,IAAzBA,GAActc,QAAqC,YAArBsc,GAAc,GAChFwD,GAAwC,OAAZ/e,KAA8C,IAAzBub,GAActc,QAAgBsc,GAAcjR,SAAS,WAW5G,YATkB0U,IAAlBzD,IAAwD,IAAzBA,GAActc,OACzCkX,GAAWra,KAAI,SAAAC,GAAI,OAAIA,EAAKqF,MAAQrF,EAAKoO,MAAMrN,QAAO,SAACwd,EAAOL,GAAY,OAAKK,EAAML,EAAa1P,SAAS,GAAE,EAAE,IAC/GsU,GAAoB/iB,KAAI,SAAAC,GAGtB,OAFAA,EAAKoO,MAAMrO,KAAI,SAAAC,GAAI,OAAIA,EAAKwO,WAAY0U,EAAAA,EAAAA,uBAAsB1D,GAAexf,EAAKmjB,KAAK,IACvFnjB,EAAKqF,MAAQrF,EAAKoO,MAAMrN,QAAO,SAACwd,EAAOL,GAAY,OAAKK,EAAQL,EAAa1P,SAAS,GAAE,GACjFxO,CACX,IAIA+C,EAAAA,cAAA,OAAKC,UAAWmf,GAAmBrb,GAAG,eACpC/D,EAAAA,cAACwR,EAAAA,QAAe,CAACS,WAAYA,EAAYN,gBAAiBA,IACxD3R,EAAAA,cAAA,OAAKC,UAAS,wBAAA3C,OAA0B0U,GAAY,MAAQ,KAC1DhS,EAAAA,cAAA,OAAKC,UAAU,uBACbD,EAAAA,cAAA,OAAKC,UAAU,sBACbD,EAAAA,cAAA,OAAKC,UAAU,aACbD,EAAAA,cAAA,OAAKC,UAAU,qBAEbD,EAAAA,cAAA,OAAKC,UAAU,wCACbD,EAAAA,cAACqgB,EAAAA,QAAc,CACb9K,oBAAqBA,GACrBjI,YAAa7K,KAAKC,EAAE,6CACpBsW,cAAeA,GACfsH,qBAAqB,EACrBpf,QAASA,MAIblB,EAAAA,cAAA,OAAKC,UAAU,yBACbD,EAAAA,cAAA,OAAKC,UAAU,qCACbD,EAAAA,cAAC0H,EAAAA,QAAoB,CACnB2F,YAAaA,GACb7D,YAAauW,GACbxV,cAAc,EACd+C,YAAa7K,KAAKC,EAAE,yCACpB6K,aAAc0K,GACdtO,aAAcuT,GACd3T,UAAW,SAAC/E,GAAC,OAAK+E,GAAU/E,EAAGub,GAAoB,KAIvD/f,EAAAA,cAAA,OAAKC,UAAU,qCACbD,EAAAA,cAAA,OAAKC,UAAS,4BAA+B8D,GAAG,eAAeoC,QAASoE,GAAe,kBAAMkT,IAAoB,EAAK,EAhIjH,WACvB1G,IAAsB,GACtBvK,OAAOG,iBAAiB,QAASC,IACjC9H,SAASwM,KAAKuM,UAAUiB,OAAO,cAG/BtS,OAAOwR,UAAYxR,OAAOwR,WAAa,GACvCxR,OAAOwR,UAAUpS,KAAK,CACpB9C,MAAO,qBACPmV,cAAe,2BACfC,YAAa,4BAEjB,GAqHsBle,EAAAA,cAAA,OAAKC,UAAU,iCACbD,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,OAAO8B,KAAM,KAC1BP,EAAAA,cAAA,SAAKyC,KAAKC,EAAE,0CAIdud,IACAjgB,EAAAA,cAACugB,EAAAA,SAAQ,CAACC,SAAU,IAClBxgB,EAAAA,cAAC8S,EAAe,SAKlBuB,GAAyBrC,KAAeqC,IAC1CrU,EAAAA,cAAA,OAAKC,UAAU,8BAA8BkG,QAAS2O,IAClD9C,GACEhS,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,uBAAuB8B,KAAM,KAC1CP,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,aAAa8B,KAAM,KAEpCP,EAAAA,cAAA,KAAGC,UAAU,YAAa+R,GAAY,OAASvP,KAAKC,EAAE,2CAYrEoU,IAAsBnF,KAEvB3R,EAAAA,cAAA,OAAKC,UAAU,mBAAmB4O,SAzGb,WACzB,IAAM4R,EAAsB3b,SAAS2F,eAAe,gCAC9CiW,EAAOD,GAAuBA,EAAoB1U,wBAClD4U,EAAaD,GAAQA,EAAKxU,IAEhCwU,GAAQ/J,GAAuBgK,EACjC,EAmGsE5c,GAAG,uBACjE/D,EAAAA,cAAA,OAAKC,UAAU,8BACbD,EAAAA,cAAA,OAAKC,UAAU,2BACbD,EAAAA,cAACM,EAAAA,OAAM,CACL7B,KAAM8L,GAAe,aAAe,QACpCpE,QAASoE,GAAe,kBAAMkT,IAAoB,EAAM,EAAG,kBAAMoB,EAAiB,EAClFte,KAAMgK,GAAe,GAAK,KAE5BvK,EAAAA,cAAA,OAAKC,UAAU,6BAA8BwC,KAAKC,EAAE,wCAClD8W,IACAxZ,EAAAA,cAAA,OAAKC,UAAU,gCAAgCkG,QAtPlC,WACzB,IAAMgW,EAAahY,EAAAA,EAAA,GACdxH,GAAa,IAChB2T,SAAUA,GACV+E,SAAU,EACVD,SAAU9E,GAAS9E,SAAS,SAAWyK,GAAsBF,GAC7Dd,SAAU,EACVD,SAAUY,GACVyF,iBAAkB,GAClB7K,MAAO,GACP8E,aAAc,GACdH,WAAY,GACZD,cAAe,KAGjBuD,GAAkB,CAAEH,IAAK,EAAGF,IAAKxC,KACjCiD,GAAiB,CAAEP,IAAK,EAAGF,IAAK9H,GAAS9E,SAAS,SAAWyK,GAAsBF,KACnFkD,GAAiB,IACjBf,GAAmB,CAAC,GACpBzD,IAAiB,SAAAqI,GAAU,OAAA3Y,EAAAA,EAAA,GAAU2Y,GAAeX,EAAa,IACjEhG,IAAmB,SAAArJ,GAAS,OAAKA,CAAS,IAC1CyJ,IAAoB,SAAAzJ,GAAS,OAAKA,CAAS,GAC7C,GAiOkBrK,KAAKC,EAAE,4CAKf1C,EAAAA,cAAA,OAAKC,UAAWof,GAAuBtb,GAAG,iBAAiB0K,IAAKiL,IAE9D1Z,EAAAA,cAACugB,EAAAA,SAAQ,CAACC,SACExgB,EAAAA,cAAA,OAAKC,UAAU,mBACbD,EAAAA,cAAA,OAAKC,UAAU,uBAI3BD,EAAAA,cAAA,OAAKC,UAAU,6BACbD,EAAAA,cAACyS,EAAgB,CACfjJ,YAAa2K,EACb5J,aAAcA,GACd+C,YAAa7K,KAAKC,EAAE,gDACpBke,sBAAuBne,KAAKC,EAAE,gDAC9B6K,aAAcyL,GACdrP,aAnaC,SAACnF,EAAGtG,GACrB,IAAM6B,GAAQ8gB,EAAAA,EAAAA,uBAAsB7H,GAAe,KAAM9a,EAAK6F,IACxD+c,EAAkB/gB,GAAS,EAC3Bmc,EAAgB/X,EAAA,GAAQxH,GACxBokB,EAAmBD,EAAiB5W,IAAO8O,GAAe,CAAC7O,QAAS,CAAC,CAACpK,EAAO,MAASmK,IAAO8O,GAAe,CAAC5O,MAAO,CAAClM,KAE3H+a,GAAiB8H,GAEjB,IAAMC,EAAc,WAClB,IAAMC,EAA8BF,EAAiBzV,MAAK,SAAA9E,GAAI,MAChD,WAAZA,EAAKzC,IAA+B,cAAZyC,EAAKzC,IAAkC,cAAZyC,EAAKzC,IAAkC,UAAZyC,EAAKzC,IAA8B,oBAAZyC,EAAKzC,EAAwB,IAGpI,GAAIgd,GAAoBA,EAAiB5gB,QAAUxD,EAAc2Y,cAAgB2L,EAA6B,CAC5G,IAAIC,EACAC,EAA2B,GAE/BJ,EACG/jB,KAAI,SAAAwJ,GAAI,OACPqO,GAA2BrO,EAAKzC,KAAO8Q,GAA2BrO,EAAKzC,IAAI/G,KAAI,SAAAokB,GAAe,OAC3FD,EAAyB3V,SAAS4V,IAAoBD,EAAyBvV,KAAKwV,EAAgB,GAAC,IAG5GF,EAAqBvkB,EAAc2Y,aAAanK,QAAO,SAAAlO,GAAI,OAAIkkB,EAAyB3V,SAASvO,EAAK,IACtGwX,IAAiB,SAAAqI,GAAU,OAAA3Y,EAAAA,EAAA,GAAU2Y,GAAU,IAAExH,aAAc4L,GAAkB,IACjFhF,EAAiB5G,aAAe4L,EAChCtM,GAAuBsM,EACzB,EAIKD,GAA+BtkB,EAAc2Y,cAAgB3Y,EAAc2Y,aAAanV,QAAU4gB,EAAiB5gB,OAAS,IAC/HsU,IAAiB,SAAAqI,GAAU,OAAA3Y,EAAAA,EAAA,GAAU2Y,GAAU,IAAExH,aAAc,IAAE,WAC1D4G,EAAiB5G,aACxBV,GAAuB,MAGxBjD,IAAmBuC,EAAiB6M,EAAkB7E,GACvDzH,IAAiB,SAAAqI,GAAU,OAAA3Y,EAAAA,EAAA,GAAU2Y,GAAU,IAAEtM,MAAOuQ,EAAiB/jB,KAAI,SAAAC,GAAI,OAAIA,EAAK8G,EAAE,KAAC,IAC7FmY,EAAiB1L,MAAQuQ,EAAiB/jB,KAAI,SAAAC,GAAI,OAAIA,EAAK8G,EAAE,GAC/D,EAGA4N,GAAkBqP,IAAgB/N,GAAc,kBAAM+N,GAAa,GACrE,KA2XchhB,EAAAA,cAAC+S,EAAiB,CAChBuD,iBAAkBA,GAClB/L,aAAcA,GACd8W,6BAA8B,kBAAM9K,IAAoB,SAAAzJ,GAAS,OAAKA,CAAS,GAAC,IAGlF9M,EAAAA,cAAA,OAAKC,UAAU,oCACbD,EAAAA,cAAC0H,EAAAA,QAAoB,CACnB2F,YAAaA,GACb7D,YAAauW,GACbxV,aAAcA,GACd+C,YAAa7K,KAAKC,EAAE,yCACpBqK,aAAc2J,GACdnJ,aAAc0K,GACdtO,aAAcuT,GACd3T,UAAW,SAAC/E,GAAC,OAAK+E,GAAU/E,EAAGub,GAAoB,KAIrDrK,GACE1V,EAAAA,cAAA,OAAKC,UAAU,8BACfD,EAAAA,cAACwS,EAAiB,CAChBjI,aAAcA,GACd9L,KAAK,QACL6iB,gBAAiB3B,GACjB5Z,KAAMtD,KAAKC,EAAE,oCACb1C,EAAAA,cAAC6S,EAAa,CACZ0O,UAAWvL,GACXwL,WAAW,QACXC,qBAjfQ,SAACC,EAAO9E,GACpC,IAAM+E,EAAeD,GAAS9I,GAE9B8I,GAAS7I,GAAiB6I,GAEtB9E,IAEFpQ,OAAOwR,UAAYxR,OAAOwR,WAAa,GACvCxR,OAAOwR,UAAUpS,KAAK,CACpB9C,MAAO,0BACPmV,cAAe,gCACfC,YAAa,kCAGfvM,GACI8C,IAAiB,SAAAqI,GAAU,OAAA3Y,EAAAA,EAAA,GAAU2Y,GAAU,IAAEzH,SAAUsM,EAAarJ,IAAKlD,SAAUuM,EAAavJ,KAAG,IACvG7E,EAAuBoO,GAE/B,EAgesBC,SAAUzC,GACV0C,SAAU,EACVC,iBAAkBvX,GAClBwX,iBAAiB,EACjBC,wBAAwB,EACxBrkB,MAAOib,OAIX,MAGDoH,IACDhgB,EAAAA,cAAA,OAAKC,UAAU,+BAEbD,EAAAA,cAACwS,EAAiB,CAChBjI,aAAcA,GACd9L,KAAM8gB,GACN+B,gBAAiB1B,GACjB7Z,KAAMtD,KAAKC,EAAE,mCACb1C,EAAAA,cAAA,OAAKC,UAAU,+DACbD,EAAAA,cAAA,SAAIyf,IACJzf,EAAAA,cAAC4S,EAAmB,CAClB2O,UAAW/B,GACXgC,WAAW,SACXC,qBAAsB/E,GACtBkF,SAAUhM,GACViM,SAAU,EACVE,iBAAiB,EACjBC,wBAAwB,EACxBrkB,MAAO6a,MAIXxY,EAAAA,cAAA,OAAKC,UAAU,6BACbD,EAAAA,cAAA,SAAKyC,KAAKC,EAAE,0DACZ1C,EAAAA,cAAA,OAAKC,UAAU,qBAAqByf,IAEpC1f,EAAAA,cAAC4S,EAAmB,CAClB2O,UAAW9e,KAAKC,EAAE,0DAClBuf,qBAAqB,EACrBT,WAAW,SACXC,qBAAsB/E,GACtBkF,SAAUhM,GACViM,SAAU,EACVE,iBAAiB,EACjBC,wBAAwB,EACxBrkB,MAAO6a,QAOjBxY,EAAAA,cAAA,OAAKC,UAAU,oCAEbD,EAAAA,cAAC0S,EAAkB,CAACnI,aAAcA,KAElCvK,EAAAA,cAAC2S,EAAgB,CACfuD,gBAAiBA,GACjB3L,aAAcA,GACd2X,4BAA6B,kBAAM/L,IAAmB,SAAArJ,GAAS,OAAKA,CAAS,GAAC,IAI9E6E,IACA3R,EAAAA,cAACqH,EAAAA,SAAQ,KACPrH,EAAAA,cAAA,OAAKC,UAAU,uCAAuC8D,GAAG,gCACvD/D,EAAAA,cAAA,KAAGI,KAAOyV,GArQN,WACxB,IAAMiG,EAAUje,EAAAA,MAAkB2O,OAAOnJ,SAAS0Y,QAC1C/G,EAAsD8G,EAAtD9G,SAAUC,EAA4C6G,EAA5C7G,SAAUG,EAAkC0G,EAAlC1G,SAAUC,EAAwByG,EAAxBzG,SAAUkH,EAAcT,EAAdS,UAC1C4F,EAAexQ,GAAmBkG,IAAuBA,GAAoBmB,eAAiBnB,GAAoBmB,eAAkB,KAAOA,GAE3IoJ,GAAwB9Z,EAAAA,EAAAA,GAAA,CAC5B0M,SAAAA,EACAC,SAAAA,EACAG,SAAAA,EACAC,SAAAA,GACC,UAAa8M,GAAgBrlB,OAAOC,KAAKolB,GAAchiB,QAAUgiB,EAAanlB,KAAI,SAAAwJ,GAAI,OAAIA,EAAKzC,EAAE,KAAM,MAG1GwY,IAAc6F,EAAyB7F,UAAYA,GACvC,UAAZnM,IAAuBE,GAASnQ,OAAS,IAAMiiB,EAAyB,cAAgB9R,IAExF,IAAM+R,EAAoBvlB,OAAOwlB,YAAYxlB,OAAOylB,QAAQH,GAA0BjX,QAAO,SAAA1L,GAAA,IAAA+iB,GAAAvgB,EAAAA,EAAAA,GAAAxC,EAAA,GAAK+iB,EAAA,GAAO,QAAAA,EAAA,EAAa,KAChHC,EAAyB,IAAIC,gBAAgBL,GAAmBM,WAEtE,OAAOF,EAAsB,GAAAnlB,OAAkB,UAAZ8S,GAAsB,IAAM,KAAG9S,OAAGmlB,GAA2B,EAClG,CAiPqDG,GAAsB3iB,UAAU,gCAC7DD,EAAAA,cAAA,YAAQyC,KAAKC,EAAE,qDACf1C,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,mCAAmC8B,KAAM,OAIxD6Y,IACApZ,EAAAA,cAAA,OAAKC,UAAU,6BACbD,EAAAA,cAAA,OAAKC,UAAU,2BAA2B8D,GAAG,2BAA2BoC,QAvb7D,WACjC+Q,IAAmB,GACnBmC,IAA0B,GAC1BvU,SAAS2F,eAAe,YAAYoT,UAAUO,OAAO,WACrDC,EAAAA,EAAAA,IAAiBvZ,SAAS2F,eAAe,mBACzCqJ,IACAa,GAAsBQ,IAAc,IACpCP,GAAuBU,IAAgB,IACvC9I,OAAOqW,OAAO,CAAE3W,IAAK,EAAGqF,SAAU,UACpC,GA+a0BvR,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,OAAO8B,KAAM,KAC1BP,EAAAA,cAAA,YAAQyC,KAAKC,EAAE,oDAe3C,EAMAsQ,EAAmBxS,aAAe,CAChC7D,cAAe,CAAC,GAGlB,UAAeqD,EAAAA,KAAWgT,E,oIC7pB1B,UAvOwB,WAEtB,IAAAtS,GAaIC,EAAAA,EAAAA,YAAWC,EAAAA,SAZbkiB,EAAapiB,EAAboiB,cACA/hB,EAAQL,EAARK,SACAgiB,EAAcriB,EAAdqiB,eACA9Q,EAAUvR,EAAVuR,WACAoC,EAAqB3T,EAArB2T,sBACA1X,EAAa+D,EAAb/D,cACAS,EAAOsD,EAAPtD,QACA4lB,EAAiBtiB,EAAjBsiB,kBAEAC,EAAeviB,EAAfuiB,gBACAC,EAAYxiB,EAAZwiB,aACApO,EAASpU,EAAToU,UAGsCqO,GAA6BxmB,EAA7D6T,MAA6D7T,EAAvCymB,UAA4BC,EAAW1mB,EAApB2mB,QAC1B5N,GAAyB3U,EAAxCyU,cAAwCzU,EAAzB2U,qBAGjB6N,EAA0B9V,IAAW,iCAAkC,CAAE,OAAUsV,IACnFS,EAA0B/V,IAAW,iCAAkC,CAAE,QAAWsV,IACpF/Q,EAAYC,EAAWC,KAEvBuR,EAAkB,CACtB,CAAC9lB,MAAO,KAAMuC,MAAM,MAAD5C,OAAQmF,KAAKC,EAAE,wCAClC,CAAC/E,MAAO,KAAMuC,MAAM,MAAD5C,OAAQmF,KAAKC,EAAE,wCAClC,CAAC/E,MAAO,KAAMuC,MAAM,MAAD5C,OAAQmF,KAAKC,EAAE,wCAClC,CAAC/E,MAAO,KAAMuC,MAAM,MAAD5C,OAAQmF,KAAKC,EAAE,yCAG9BghB,EAAkB,CACtB,CAAC/lB,MAAO,kBAAmBuC,MAAOuC,KAAKC,EAAE,iBACzC,CAAC/E,MAAO,gBAAiBuC,MAAM,GAAD5C,OAAKmF,KAAKC,EAAE,gBAAe,MAAApF,OAAKmF,KAAKC,EAAE,yBACrE,CAAC/E,MAAO,iBAAkBuC,MAAM,GAAD5C,OAAKmF,KAAKC,EAAE,gBAAe,MAAApF,OAAKmF,KAAKC,EAAE,yBACtE,CAAC/E,MAAO,qBAAsBuC,MAAM,GAAD5C,OAAKmF,KAAKC,EAAE,mBAAkB,KAAApF,OAAImF,KAAKC,EAAE,4BAC5E,CAAC/E,MAAO,sBAAuBuC,MAAM,GAAD5C,OAAKmF,KAAKC,EAAE,mBAAkB,KAAApF,OAAImF,KAAKC,EAAE,oCAC7E,CAAC/E,MAAO,oBAAqBuC,MAAMuC,KAAKC,EAAE,kCAC1C,CAAC/E,MAAO,oBAAqBuC,MAAM,GAAD5C,OAAKmF,KAAKC,EAAE,kDAAiD,aAC/F,CAAC/E,MAAO,qBAAsBuC,MAAM,GAAD5C,OAAKmF,KAAKC,EAAE,kDAAiD,aAChG,CAAC/E,MAAO,aAAcuC,MAAMuC,KAAKC,EAAE,2BAA4BzC,UAAY0jB,EAAoC,GAAjB,iBAG1FC,EAAoC,UAAZxmB,EAAsB,iCAAmC,aAEvFsY,GAAuBgO,EAAgBnG,OAAO,EAAG,EAC/C,CAAC5f,MAAOimB,EAAwB,OAAQ1jB,MAAM,GAAD5C,OAAKmF,KAAKC,EAAE,iBAAgB,MAAApF,OAAKmF,KAAKC,EAAE,yBACrF,CAAC/E,MAAOimB,EAAwB,QAAS1jB,MAAM,GAAD5C,OAAKmF,KAAKC,EAAE,iBAAgB,MAAApF,OAAKmF,KAAKC,EAAE,0BAGxF,IAAAZ,GAAgDC,EAAAA,EAAAA,UAASshB,EAASK,EAAgBvY,QAAO,SAAA0Y,GAAM,OAAIR,IAAWQ,EAAOlmB,KAAK,IAAE,GAAK+lB,EAAgB,IAAG1hB,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA7I6hB,EAAgB3hB,EAAA,GAAE8hB,EAAmB9hB,EAAA,GAC5CoU,GAA8CrU,EAAAA,EAAAA,UAASohB,EAAUM,EAAgBtY,QAAO,SAAA0Y,GAAM,OAAIA,EAAOlmB,QAAUwlB,CAAO,IAAE,GAAKM,EAAgB,IAAGpN,GAAApU,EAAAA,EAAAA,GAAAmU,EAAA,GAA7I2N,EAAe1N,EAAA,GAAE2N,EAAkB3N,EAAA,IAG1C3S,EAAAA,EAAAA,YAAU,WAER,IAAMugB,EAAenf,SAASC,cAAc,KACtCmf,EAAsBpf,SAASqf,eAAe,GAAD7mB,OAAImF,KAAKC,EAAE,uCAAsC,MAC9F0hB,EAActf,SAASC,cAAc,KACrCsf,EAAqBvf,SAASqf,eAAe,GAAD7mB,OAAImF,KAAKC,EAAE,qCAAoC,MAEjGuhB,EAAave,YAAYwe,GACzBpf,SAASwf,cAAc,sBAAsBC,aAAaN,EAAcnf,SAASwf,cAAc,sBAAsBE,WAAW,IAEhIJ,EAAY1e,YAAY2e,GACxBvf,SAASwf,cAAc,qBAAqBC,aAAaH,EAAatf,SAASwf,cAAc,qBAAqBE,WAAW,GAC/H,GAAG,KAGH9gB,EAAAA,EAAAA,YAAU,WACR2f,IAAWM,EAAiBhmB,OAASmmB,EAAoBT,EAASK,EAAgBvY,QAAO,SAAA0Y,GAAM,OAAIR,IAAWQ,EAAOlmB,KAAK,IAAE,GAAK+lB,EAAgB,GACnJ,GAAG,CAACL,KAEJ3f,EAAAA,EAAAA,YAAU,WACRyf,IAAYQ,EAAiBhmB,OAASqmB,EAAmBb,EAAUM,EAAgBtY,QAAO,SAAA0Y,GAAM,OAAIA,EAAOlmB,QAAUwlB,CAAO,IAAE,GAAKM,EAAgB,GACrJ,GAAG,CAACN,KAGJzf,EAAAA,EAAAA,YAAU,WAER,GAAIwf,EAAc,CAGhB,IAAIuB,EAAU,KAEd,SAAUC,IACR,IACMC,SAASC,SACX5S,EAAY2S,SAASE,aAAeF,SAASG,aAE7B,IAAZL,IACFA,IAAYA,EACZpa,WAAWqa,EAAY,KAG7B,CAAE,MAAOK,GACS,IAAZN,IACFA,IAAYA,EACZpa,WAAWqa,EAAY,KAE3B,CACD,CAhBD,EAiBF,CACF,GAAG,CAACxB,IAGJ,IAsCM8B,EAAmBrB,GAdM,WAE7B,IAAMsB,EAAuBvB,EAAgBvY,QAAO,SAAA0Y,GAAM,OAAIF,IAAqBE,EAAOlmB,KAAK,IACzFunB,EAAwBvB,GAAoBA,EAAiBhmB,MAEnE,GAAIsnB,EAAqB9kB,OACvB,OAAO8kB,EAAqB,GAE5B,IAAME,EAAiBzB,EAAgBvY,QAAO,SAAA0Y,GAAM,OAAIA,EAAOlmB,MAAM6N,SAAS0Z,EAAsB/mB,MAAM,EAAG+mB,EAAsBnb,QAAQ,MAAM,IACjJ,OAAOob,EAAehlB,OAASglB,EAAe,GAAK,IAEvD,CAG6CC,IAA6B1B,EAAgBA,EAAgBvjB,OAAS,GAC7GklB,EAAkBlC,EAAUM,EAAgBtY,QAAO,SAAA0Y,GAAM,OAAIA,EAAOlmB,QAAUwlB,CAAO,IAAE,GAAKM,EAAgB,GAGlH,OACEzjB,EAAAA,cAAA,OAAKC,UAAU,+BACbD,EAAAA,cAAA,OAAKC,UAAU,uBACbD,EAAAA,cAAA,OAAKC,UAAU,2BACVqlB,EAAAA,KAAiBtT,GAClBhS,EAAAA,cAAA,OAAKC,UAAU,uBACbD,EAAAA,cAAA,OAAKC,UAAU,6BACbD,EAAAA,cAAA,OAAKC,UAAWujB,EAAyBrd,QA3ChC,WACrB6c,GAAkB,GAClBllB,cAAgBA,aAAaynB,QAAQ,eAAgB,QACvD,GAyCgBvlB,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,SAAS8B,KAAM,MAE9BP,EAAAA,cAAA,OAAKC,UAAWsjB,EAAyBpd,QApDhC,WACrB6c,GAAkB,GAClBllB,cAAgBA,aAAaynB,QAAQ,eAAgB,OACvD,GAkDgBvlB,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,uBAAuB8B,KAAM,QAMlDP,EAAAA,cAAA,OAAKC,UAAU,wBAEbD,EAAAA,cAAA,OAAKC,UAAU,8BACbD,EAAAA,cAAA,OAAKC,UAAU,6BACbD,EAAAA,cAAA,OAAKC,UAAU,+BACbD,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,OAAO8B,KAAM,GAAIN,UAAU,6BACxCD,EAAAA,cAACwlB,EAAAA,GAAM,CACLvlB,UAAU,UACVwlB,gBAAgB,UAChBC,aAAcV,EACdW,cAAc,EACd7W,SA1DK,SAACtK,GACtBsf,EAAoBJ,EAAgBvY,QAAO,SAAA0Y,GAAM,OAAIrf,EAAE7G,QAAUkmB,EAAOlmB,KAAK,IAAE,IAC/EslB,EAAgBze,EAAE7G,MACpB,EAwDkBioB,QAASlC,EACT/lB,MAAOgmB,KAIX3jB,EAAAA,cAAA,OAAKC,UAAU,sCAEfD,EAAAA,cAAA,OAAKC,UAAU,8CACbD,EAAAA,cAACwlB,EAAAA,GAAM,CACLvlB,UAAU,WACVwlB,gBAAgB,WAChBC,aAAcL,EACdM,cAAc,EACd7W,SAlEU,SAACtK,GAC3Bwf,EAAmBP,EAAgBtY,QAAO,SAAA0Y,GAAM,OAAIA,EAAOlmB,QAAU6G,EAAE7G,KAAK,IAAE,IAC9EmlB,EAActe,EAAE7G,MAClB,EAgEkBioB,QAASnC,EACT9lB,MAAOomB,QAMX1P,GAAyBrC,IAAeqC,IAC1CrU,EAAAA,cAAA,OAAKC,UAAS,wBAAA3C,OAA0B0U,EAAY,KAAO,KACzDhS,EAAAA,cAAA,aACEA,EAAAA,cAAC6lB,EAAAA,EAAM,CACLC,QAAS9T,EACT+T,aAAa,EACb9lB,UAAU,8BACV+lB,eAAgB,EAChBC,OAAQ,GACRC,eAAe,UACfpX,SAAU,kBAAMgG,GAAU,EAAM,EAChCqR,QAAQ,UACRC,SAAS,UACTC,cAAc,UACdC,MAAO,GACPC,eAAe,IAGjBvmB,EAAAA,cAAA,OAAKC,UAAU,8BACXwC,KAAKC,EAAE,uCAU7B,C,wHCvOM8jB,EAAaxmB,EAAAA,MAAW,kBAAM,6DAAuB,IACrDymB,EAAmBzmB,EAAAA,MAAW,kBAAM,iEAA0C,IAC9E0mB,EAAoB1mB,EAAAA,MAAW,kBAAM,2EAA4C,IA+MvF,UA5MsB,WAEpB,IAAAU,GAcIC,EAAAA,EAAAA,YAAWC,EAAAA,SAbb+lB,EAAUjmB,EAAVimB,WACAC,EAAiBlmB,EAAjBkmB,kBACAC,EAAQnmB,EAARmmB,SACA9lB,EAAQL,EAARK,SACAgiB,EAAcriB,EAAdqiB,eACA+D,EAA0BpmB,EAA1BomB,2BACA7U,EAAUvR,EAAVuR,WACA8U,EAAoBrmB,EAApBqmB,qBACApqB,EAAa+D,EAAb/D,cACAqqB,EAAmBtmB,EAAnBsmB,oBACAC,EAAoBvmB,EAApBumB,qBACA5W,EAAmB3P,EAAnB2P,oBACA0E,EAAWrU,EAAXqU,YAGFjT,GAAwDC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAhEolB,EAAoBllB,EAAA,GAAEmlB,EAAuBnlB,EAAA,GAE5C6T,EAAuB9U,EAAvB8U,oBAGRnS,EAAAA,EAAAA,YAAU,WACR8I,OAAOG,iBAAiB,UAAUuG,EAAAA,EAAAA,UAAS,IAAI,kBAAMkU,GAAwB,IAC/E,GAAG,IAGH,IAAMA,EAAyB,WAC7B,IAAMC,EAAiBviB,SAAS2F,eAAe,mBACzC6c,EAAmBD,GAAkBA,EAAetb,wBAAwBM,OAC5Ekb,EAAmB/a,OAAOgb,UAG5BL,EADJI,EAAmBD,EAGrB,EAiBMtV,EAAYC,EAAWC,KACvBuV,EAAYxV,EAAWyV,OACvBvE,EAAUxmB,EAAcymB,SAAWzmB,EAAcymB,SAH3B,GAItBuE,EAAchrB,EAAcyf,KAAQ/D,OAAO1b,EAAcyf,MAAQ,EAAK,EACtEwL,EAAiBd,GAA8BA,EAA2B3mB,OAAS,GAAKkQ,EAAsB0W,EAAuB5D,EACrI0E,EAAQ,iBAAAvqB,OAAqB2U,EAAWtS,KAAI,KAAArC,OAAK0U,EAAY,kBAAoB,UACjF8V,EAAS,CACbC,cAAgBhF,EAA6C,KAA5B,CAAEiF,cAAe,QAClDC,gBAAkBlF,GAAkB6E,EAAmB,CAAEM,UAAW,QAAW,CAACA,UAAW,SAGvFC,EAAiB,SAAH1oB,GAAA,IAAMQ,EAASR,EAATQ,UAAWqC,EAAK7C,EAAL6C,MAAK,OACxCtC,EAAAA,cAAA,OAAKC,UAAS,wBAAA3C,OAA0B2C,IACpC/C,MAAMmL,MAAM,OAAQnL,MAAMoF,IAAQtF,KAAI,SAACC,EAAM8C,GAAK,OAClDC,EAAAA,cAAA,OAAKC,UAAS,8BAAA3C,OAAgCyC,EAAQ,GAAKrC,IAAKuC,EAAYF,GAAS,IAElF,EAGHqoB,EACJpoB,EAAAA,cAAA,OAAKC,UAAU,iCACbD,EAAAA,cAAA,OAAKC,UAAU,OACX/C,MAAMmL,MAAM,OAAQnL,MAAMimB,IAAUnmB,KAAI,SAACU,EAAKqC,GAAK,OACnDC,EAAAA,cAAA,OAAKC,UAAS,iDAAA3C,OAAmD0U,EAAY,EAAI,EAAC,YAAA1U,OAAW0U,EAAY,EAAI,GAAKtU,IAAKqC,EAAQ,iBAC7HC,EAAAA,cAACmoB,EAAc,CAACloB,UAAS,wBAA2BqC,MAAO,GAAI5E,IAAKqC,IAChE,MAMRsoB,EACJroB,EAAAA,cAAA,OAAKC,UAAU,2BACX/C,MAAMmL,MAAM,OAAQnL,MAAMimB,IAAUnmB,KAAI,SAACU,EAAKqC,GAAK,OACnDC,EAAAA,cAAA,OAAKC,UAAU,gCAAgCvC,IAAKqC,EAAQ,iBAC1DC,EAAAA,cAAA,OAAKC,UAAU,mCACbD,EAAAA,cAAA,OAAKC,UAAU,qEACbD,EAAAA,cAACmoB,EAAc,CAACloB,UAAS,4BAA+BqC,MAAO,EAAG5E,IAAKqC,KAEzEC,EAAAA,cAAA,OAAKC,UAAU,4EACbD,EAAAA,cAACmoB,EAAc,CAACloB,UAAS,4BAA+BqC,MAAO,EAAG5E,IAAKqC,EAAQ,OAEjFC,EAAAA,cAAA,OAAKC,UAAU,uEACbD,EAAAA,cAACmoB,EAAc,CAACloB,UAAS,4BAA+BqC,MAAO,EAAG5E,IAAKqC,EAAO,QAG9E,KAKNuoB,EACJtoB,EAAAA,cAACugB,EAAAA,SAAQ,CAACC,SAAU4H,GAClBpoB,EAAAA,cAACymB,EAAgB,CACfG,kBAAmBA,EACnBK,qBAAsBA,KAKtBsB,EACJvoB,EAAAA,cAACqH,EAAAA,SAAQ,KACL0N,GAAe,IACb/U,EAAAA,cAACugB,EAAAA,SAAQ,CAACC,SAAU6H,GAClBroB,EAAAA,cAAC0mB,EAAiB,OAEpB4B,GAKFE,EAAaZ,GACjB5nB,EAAAA,cAAA,OAAKC,UAAU,sBACbD,EAAAA,cAACyoB,IAAa,CACZC,gBAAiB,SACjBC,WAAY,MACZC,mBAAoB,aACpBC,qBAAsB,EACtBC,UAAWnB,EACXoB,UAAW/oB,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,mCAAmC8B,KAAM,KACjEyoB,cAAehpB,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,kCAAkC8B,KAAM,KACpE0oB,aA/FkB,SAAC1qB,GACvBooB,EAAWpoB,EAAK2qB,SAAW,GAC3B7e,YAAW,kBAAMmC,OAAO4E,SAAS,EAAG,EAAE,GAAE,GAC1C,EA6FM+X,UAAWtJ,KAAKuJ,MAAM/Y,EAAsB0W,GAAwB5D,GACpEkG,mBAAoB/D,EAAAA,GAAe,EAAI,EACvCgE,YAAa,SAAClN,GAAI,OA5FO,SAACA,GAC9B,IAAAmN,EAA6B/c,OAAOnJ,SAA5BmmB,EAAMD,EAANC,OAAQC,EAAQF,EAARE,SAEhB,MAAM,GAANnsB,OAAUksB,GAAMlsB,OAAGmsB,GAAQnsB,OAAG8e,EAAO,EAAC,SAAA9e,OAAY8e,GAAS,GAC7D,CAwF6BsN,CAAuBtN,EAAK,KAKzD,OACEpc,EAAAA,cAAA,OAAKC,UAAS,uBAAA3C,OAAyB0U,EAAY,MAAQ,KAEzDhS,EAAAA,cAAA,OAAKC,UAAS,0BAAA3C,OAA4B0U,EAAY,2BAA6B,KAE/E6U,EACIC,EAA2B3mB,OAEvB4iB,IAAmB/Q,EAAYuW,EAAkBD,EAEnDtoB,EAAAA,cAAA,OAAKC,UAAS,8CAAA3C,OAAgD0U,EAAY,WAAa,KACrFhS,EAAAA,cAAA,OAAKC,UAAU,+CACbD,EAAAA,cAAA,KAAGC,UAAU,SAAUwC,KAAKC,EAAE,iDAC9B1C,EAAAA,cAAA,KAAGC,UAAU,cAAcyG,wBAAyB,CAACC,OAAQlE,KAAKC,EAAE,qDAAsD,CAAC,kBAAqBmT,SAItJmR,EAEEhnB,EAAAA,cAAA,KAAGC,UAAS,sBAAA3C,OAAwB0U,EAAY,WAAa,KACjC,WAAxBgV,EACEvkB,KAAKC,EAAE,yBACPD,KAAKC,EAAE,gCAEX1C,EAAAA,cAAA,KAAGI,KAAMoM,OAAOnJ,SAASjD,MACrBqC,KAAKC,EAAE,0BAGZqgB,GAAmB/Q,EAEpBqW,EADAD,EAKRpoB,EAAAA,cAAA,OAAKC,UAAU,YAAY2P,MAAOkY,EAAOG,gBAAiBlkB,GAAG,mBACzDykB,GAGFtB,IAAyBlV,GAAa4V,GACtC5nB,EAAAA,cAAA,OAAKC,UAAU,+BACXuoB,KAKLxW,GAAayV,IACdznB,EAAAA,cAAA,OAAKC,UAAW4nB,GACd7nB,EAAAA,cAACugB,EAAAA,SAAQ,CAACC,SACRxgB,EAAAA,cAAA,OAAKC,UAAS,wBACZD,EAAAA,cAAA,OAAKC,UAAS,mBAGhBD,EAAAA,cAACwmB,EAAU,QAOvB,C,+ECxNO,IAAMmD,EAAoB,CAC/BC,YAAa,CACXC,eAAe,EACfC,cAAc,EACdC,WAAYtnB,KAAKC,EAAE,uCACnBsnB,kBAAmBvnB,KAAKC,EAAE,wCAC1BunB,MAAOxnB,KAAKC,EAAE,mDACdwE,YAAazE,KAAKC,EAAE,oDACpBwnB,kBAAmBznB,KAAKC,EAAE,qDAC1BynB,eAAgB1nB,KAAKC,EAAE,0CACvBqB,GAAI,YAENqmB,OAAQ,CACNP,eAAe,EACfC,cAAc,EACdC,WAAYtnB,KAAKC,EAAE,4CACnBsnB,kBAAmBvnB,KAAKC,EAAE,wCAC1BunB,MAAOxnB,KAAKC,EAAE,+CACdwE,YAAazE,KAAKC,EAAE,gDACpBwnB,kBAAmBznB,KAAKC,EAAE,iDAC1BynB,eAAgB1nB,KAAKC,EAAE,wEACvBqB,GAAI,Y,k5BCMR,IAAMsmB,EAAkBrqB,EAAAA,MAAW,kBAAM,2EAA2B,IAEvDY,GAAU0pB,EAAAA,EAAAA,eAAc,CAAC,GAmBlCC,EAAa,KACbC,EAAS,KAGPC,EAAW,SAAChiB,GAEhB,IACE/I,EASE+I,EATF/I,YACAgrB,EAQEjiB,EARFiiB,cACAC,EAOEliB,EAPFkiB,uBACA5pB,EAME0H,EANF1H,SACA6pB,EAKEniB,EALFmiB,iBACAC,EAIEpiB,EAJFoiB,cACAC,EAGEriB,EAHFqiB,qBACA5pB,EAEEuH,EAFFvH,QACA6pB,EACEtiB,EADFsiB,SAIAvV,EAmBEzU,EAnBFyU,cACAC,EAkBE1U,EAlBF0U,aACA5T,EAiBEd,EAjBFc,QACAmpB,EAgBEjqB,EAhBFiqB,kBACArV,EAeE5U,EAfF4U,yBACAsV,EAcElqB,EAdFkqB,wBACAC,EAaEnqB,EAbFmqB,wBACAC,EAYEpqB,EAZFoqB,mBACAC,EAWErqB,EAXFqqB,8BACAC,EAUEtqB,EAVFsqB,kBACAC,EASEvqB,EATFuqB,uBACA1V,EAQE7U,EARF6U,QACAC,EAOE9U,EAPF8U,mBACA0V,EAMExqB,EANFwqB,yBACAC,EAKEzqB,EALFyqB,aACAC,EAIE1qB,EAJF0qB,aACA1V,EAGEhV,EAHFgV,aACAzF,GAEEvP,EAFFuP,SACA2F,GACElV,EADFkV,oBAGFnU,IAAsDC,EAAAA,EAAAA,UAAS,CAAC,GAAEC,IAAAC,EAAAA,EAAAA,GAAAH,GAAA,GAA3D4pB,GAAmB1pB,GAAA,GAAE2pB,GAAsB3pB,GAAA,GAClDoU,IAAoCrU,EAAAA,EAAAA,UAAQoC,EAAAA,EAAC,CAAC,EAAIumB,GAAa,IAAEpkB,SAAUzE,KAAUwU,IAAApU,EAAAA,EAAAA,GAAAmU,GAAA,GAA9EvV,GAAUwV,GAAA,GAAErV,GAAaqV,GAAA,GAChCG,IAA0CzU,EAAAA,EAAAA,UAAS,IAAG0U,IAAAxU,EAAAA,EAAAA,GAAAuU,GAAA,GAA/CoV,GAAanV,GAAA,GAAEoV,GAAgBpV,GAAA,GACtCG,IAA4C7U,EAAAA,EAAAA,UAAS,IAAG8U,IAAA5U,EAAAA,EAAAA,GAAA2U,GAAA,GAAjDkV,GAAcjV,GAAA,GAAEkV,GAAiBlV,GAAA,GACxCG,IAA0DjV,EAAAA,EAAAA,UAAS,IAAGkV,IAAAhV,EAAAA,EAAAA,GAAA+U,GAAA,GAA/DgV,GAAqB/U,GAAA,GAAEgV,GAAwBhV,GAAA,GACtDE,IAA4CpV,EAAAA,EAAAA,UAAS,IAAGqV,IAAAnV,EAAAA,EAAAA,GAAAkV,GAAA,GAAjD7D,GAAc8D,GAAA,GAAE8U,GAAiB9U,GAAA,GACxCG,IAAkDxV,EAAAA,EAAAA,UAAS,MAAKyV,IAAAvV,EAAAA,EAAAA,GAAAsV,GAAA,GAAzDqP,GAAiBpP,GAAA,GAAEyP,GAAoBzP,GAAA,GAC9CG,IAAwC5V,EAAAA,EAAAA,UAAS,IAAG6V,IAAA3V,EAAAA,EAAAA,GAAA0V,GAAA,GAA7C7W,GAAY8W,GAAA,GAAEuU,GAAevU,GAAA,GACpCG,IAAkEhW,EAAAA,EAAAA,UAAS,IAAGiW,IAAA/V,EAAAA,EAAAA,GAAA8V,GAAA,GAAvE9D,GAAyB+D,GAAA,GAAEoU,GAA4BpU,GAAA,GAC9DG,IAAgCpW,EAAAA,EAAAA,WAAS,GAAMwW,IAAAtW,EAAAA,EAAAA,GAAAkW,GAAA,GAAxC0O,GAAQtO,GAAA,GAAE8T,GAAW9T,GAAA,GAC5BG,IAA4C3W,EAAAA,EAAAA,UAASyK,OAAOgR,YAAc,KAAI7E,IAAA1W,EAAAA,EAAAA,GAAAyW,GAAA,GAAvEqK,GAAcpK,GAAA,GAAEqK,GAAiBrK,GAAA,GACxCG,IAA0C/W,EAAAA,EAAAA,UAAS,IAAGgX,IAAA9W,EAAAA,EAAAA,GAAA6W,GAAA,GAA/C3E,GAAa4E,GAAA,GAAEuT,GAAgBvT,GAAA,GACtCG,IAAoEnX,EAAAA,EAAAA,UAAS,IAAGoX,IAAAlX,EAAAA,EAAAA,GAAAiX,GAAA,GAAzE4N,GAA0B3N,GAAA,GAAEoT,GAA6BpT,GAAA,GAChEG,IAAoCvX,EAAAA,EAAAA,UAAS,CAAEmQ,MAAM,EAAOvS,KAAM,GAAI+nB,QAAQ,IAAQnO,IAAAtX,EAAAA,EAAAA,GAAAqX,GAAA,GAA/ErH,GAAUsH,GAAA,GAAEiT,GAAajT,GAAA,GAChCkT,IAAwC1qB,EAAAA,EAAAA,UAAS,IAAG2qB,IAAAzqB,EAAAA,EAAAA,GAAAwqB,GAAA,GAA7CE,GAAYD,GAAA,GAAEE,GAAeF,GAAA,GACpCG,IAAwD9qB,EAAAA,EAAAA,UAAS,GAAE+qB,IAAA7qB,EAAAA,EAAAA,GAAA4qB,GAAA,GAA5D9F,GAAoB+F,GAAA,GAAEC,GAAuBD,GAAA,GACpDE,IAA8CjrB,EAAAA,EAAAA,UAAS,MAAKkrB,IAAAhrB,EAAAA,EAAAA,GAAA+qB,GAAA,GAArDE,GAAeD,GAAA,GAAEE,GAAkBF,GAAA,GAC1CG,IAA0DrrB,EAAAA,EAAAA,WAAS,GAAKsrB,IAAAprB,EAAAA,EAAAA,GAAAmrB,GAAA,GAAjE/Y,GAAqBgZ,GAAA,GAAEC,GAAwBD,GAAA,GACtDE,IAAgDxrB,EAAAA,EAAAA,UAAS,IAAGyrB,IAAAvrB,EAAAA,EAAAA,GAAAsrB,GAAA,GAArDE,GAAgBD,GAAA,GAAEE,GAAmBF,GAAA,GAC5CG,IAA8D5rB,EAAAA,EAAAA,WAAS,GAAK6rB,IAAA3rB,EAAAA,EAAAA,GAAA0rB,GAAA,GAArEE,GAAuBD,GAAA,GAAEE,GAA0BF,GAAA,GAC1DG,IAA0DhsB,EAAAA,EAAAA,UAAS,IAAGisB,IAAA/rB,EAAAA,EAAAA,GAAA8rB,GAAA,GAA/DzZ,GAAqB0Z,GAAA,GAAEtZ,GAAwBsZ,GAAA,GACtDC,IAAoDlsB,EAAAA,EAAAA,UAAS,IAAGmsB,IAAAjsB,EAAAA,EAAAA,GAAAgsB,GAAA,GAAzD1Z,GAAkB2Z,GAAA,GAAEvZ,GAAqBuZ,GAAA,GAChDC,IAAsDpsB,EAAAA,EAAAA,UAAS,IAAGqsB,IAAAnsB,EAAAA,EAAAA,GAAAksB,GAAA,GAA3D3Z,GAAmB4Z,GAAA,GAAExZ,GAAsBwZ,GAAA,GAClDC,IAAsDtsB,EAAAA,EAAAA,UAAS,IAAGusB,IAAArsB,EAAAA,EAAAA,GAAAosB,GAAA,GAA3DrH,GAAmBsH,GAAA,GAAEC,GAAsBD,GAAA,GAClDE,IAA8BzsB,EAAAA,EAAAA,WAAS,GAAK0sB,IAAAxsB,EAAAA,EAAAA,GAAAusB,GAAA,GAArCvtB,GAAOwtB,GAAA,GAAEC,GAAUD,GAAA,GAE1BE,IAA8C5sB,EAAAA,EAAAA,UAAS,IAAG6sB,IAAA3sB,EAAAA,EAAAA,GAAA0sB,GAAA,GAAnDE,GAAeD,GAAA,GAAEE,GAAkBF,GAAA,GAC1CG,IAAwChtB,EAAAA,EAAAA,WAAS,GAAMitB,IAAA/sB,EAAAA,EAAAA,GAAA8sB,GAAA,GAAhD7L,GAAY8L,GAAA,GAAEC,GAAeD,GAAA,GACpCE,IAAsDntB,EAAAA,EAAAA,UAAS,IAAGotB,IAAAltB,EAAAA,EAAAA,GAAAitB,GAAA,GAA3D7e,GAAmB8e,GAAA,GAAEC,GAAsBD,GAAA,GAClDE,IAA8CttB,EAAAA,EAAAA,UAAS,IAAGutB,IAAArtB,EAAAA,EAAAA,GAAAotB,GAAA,GAAnDE,GAAeD,GAAA,GAAEE,GAAkBF,GAAA,GAC1CG,IAAsC1tB,EAAAA,EAAAA,UAASyK,OAAOgR,YAAWkS,IAAAztB,EAAAA,EAAAA,GAAAwtB,GAAA,GAA1D1a,GAAW2a,GAAA,GAAEC,GAAcD,GAAA,GAElCE,IAA0C7tB,EAAAA,EAAAA,UAAS,CACjD8tB,2BAA4BnF,EAAcoF,wBAC1CC,oBAAqBrF,EAAcsF,kBACnC1f,SAAAA,GACA+E,SAAU,EACVD,SAAU9E,GAAS9E,SAAS,SAAWyK,GAAsBF,EAC7Dd,SAAU,EACVD,SAAUY,EACVyF,iBAAkBve,OAAOC,KAAK4Y,GAA0B3X,QAAO,SAACqe,EAAK/S,GAAQ,OAAK+S,EAAI/e,OAAOqY,EAAyBrM,GAAU,GAAE,IAClI8S,KAAM,EACN6T,iBAAkBra,EAClBsa,iBAAkB5f,GAAS9E,SAAS,SAAWyK,GAAsBF,EACrEvF,MAAOiF,GAAgB,GACvB0a,eAAgB3a,EAChB4a,SAAU3a,EAAa,IAAM,GAC7BP,cAAe,KACfmb,IAAApuB,EAAAA,EAAAA,GAAA2tB,GAAA,GAhBKjzB,GAAa0zB,GAAA,GAAE5b,GAAgB4b,GAAA,GA0BhCjzB,GAAUkT,GAAS9E,SAAS,SAAW,QAAU,QAGvD9H,EAAAA,EAAAA,YAAU,WACR,IAAMoY,EAAUje,EAAAA,MAAkB2O,OAAOnJ,SAAS0Y,QAC5CuU,EAAWzyB,EAAAA,MAAkB2O,OAAOnJ,SAAS0Y,QAAQQ,UACvDL,EAAgB/X,EAAA,GAAQxH,IAE5BouB,IAAa7O,EAAiBtL,UAAYma,GAC1CS,IAAiBtP,EAAiBqU,YAAc/E,EAAagF,YAC7D/E,IAAiBvP,EAAiBuU,YAAchF,EAAaiF,YAC7D1F,GAAqBA,EAAkB7qB,SAAW+b,EAAiB/G,WAAa6V,GAChFC,GAA2BA,EAAwB9qB,SAAW+b,EAAiB5G,aAAe2V,GAC9FnuB,OAAOC,KAAK+e,GAAS3b,OAAS,IAAM+b,GAAmBI,EAAAA,EAAAA,GAAiBJ,EAAkBJ,IAE1FrH,GAAiByH,GACjBiQ,GAAgBxvB,GAAc6T,OAC9BiD,GAAkCyI,EAAkBoU,EACtD,GAAG,KAGH5sB,EAAAA,EAAAA,YAAU,WACRitB,IAAAA,WACAnkB,OAAOgR,YAAc,KAAOoT,MAC5BC,EAAAA,EAAAA,YAAW3vB,EAAS+tB,IAAgB,GACtC,GAAG,KAGHvrB,EAAAA,EAAAA,YAAU,WACR8I,OAAOG,iBAAiB,SAAUmkB,GACpC,GAAG,KAGHptB,EAAAA,EAAAA,YAAU,WACR,GAAI5F,aAAc,CAChB,IAAMizB,EAA8BjzB,aAAaC,QAAQ,gBAADT,OAAiBF,GAAO,KAAAE,OAAI4D,IAC9E8vB,EAA+BlzB,aAAaC,QAAQ,iBAADT,OAAkBF,GAAO,KAAAE,OAAI4D,IAChF8qB,EAAwBnR,KAAKC,MAAMiW,IAAgC,GACnErF,EAAsB7Q,KAAKC,MAAMkW,IAAiC,CAAC,EAEzElzB,aAAaynB,QAAQ,SAAU9c,EAAMwoB,QACrCnzB,aAAaC,QAAQ,iBAA4D,UAAzCD,aAAaC,QAAQ,iBAA+BilB,IAAkB,GAC9GllB,aAAaC,QAAQ,wBAA0B2vB,GAAoBwD,EAAAA,sBAAwBpzB,aAAaynB,QAAQ,uBAAwB1K,KAAKE,UAAU,CAAC,IACxJkR,GAAyBD,GACzBL,GAAuBD,GAEnBlf,OAAOgR,YAAc,MACvBwF,IAAkB,GAClBllB,aAAaynB,QAAQ,eAAgB,SAEzC,CAEI4L,eAAepzB,QAAQ,iCACzBqT,SAAS,CAAElF,IAAKilB,eAAepzB,QAAQ,+BAAgCsT,KAAMvM,SAASwM,KAAMC,SAAU,WACtG4f,eAAeC,WAAW,+BAE9B,GAAG,IAGH,IAAMN,GAAuB,WAAH,OAASnB,GAAenjB,OAAOgR,WAAY,EAG/DoT,GAAqB,WACzB,IAAMS,EAAkBvzB,cAAgBA,aAAaC,QAAQ,aAADT,OAAcF,GAAO,KAAAE,OAAI4D,IAC/EowB,EAAqBzW,KAAKC,MAAMuW,IAAoB,GAE1DC,EAAmBnxB,QAAU5C,EAAAA,EAC1Bg0B,kBAAkBD,EAAoBA,GACtCttB,MAAK,SAACC,GACLA,EAAS9D,SAAWmxB,EAAmBnxB,QACpCrC,cACAA,aAAaynB,QAAQ,aAADjoB,OAAcF,GAAO,KAAAE,OAAI4D,GAAW2Z,KAAKE,UAAU9W,EAASjH,KAAI,SAAAqG,GAAQ,SAAA/F,OAAO+F,EAASU,GAAE,MAEjHyrB,GAAmBvrB,EACrB,GACJ,EAGMwP,GAAoC,SAAC9W,EAAe2zB,EAAUkB,GAClE,IAAMtV,EAAgB/X,EAAA,GAAQxH,GAE9BkqB,IAAYwF,IAAY,GACxBiE,IAAapU,EAAiBK,UAAY+T,GAE1ClyB,EAAAA,EACGmB,KAAK4rB,GAAoBzuB,EAAAA,EAAAA,GAAewf,IAAmB,GAC3DlY,MAAK,SAAAC,GACJ,GAAIA,EAAS8gB,MACXwJ,GAAuBtqB,EAASwtB,QAAU,IAAM,SAAW,eACtD,CAeL,GAFAC,GAAeztB,EAAUiY,GAXA,SAACjY,GACxBA,GAAYA,EAAS0tB,WAAapF,GAA8BtoB,EAAS0tB,WACzEvC,GAAuBnrB,EAAS2tB,OAChCvF,IAAY,GACZqC,GAAWzqB,EAAS4tB,UACpBjd,GAAuB3Q,EAAS6tB,oBAAsBjD,IACtDla,GAAsB1Q,EAASkR,YAAc2W,IAC7CM,GAA6BnoB,EAAS8tB,qBAAuBp1B,EAAc0e,kBAC3EiS,GAAyBrpB,EAAS+tB,wBACpC,IAE6D,GAEzDR,EAGFS,GAFqB,CAACte,GAAUD,GAAkBE,GAAmBG,IAElCmI,EAAkBjY,EAAS8tB,oBAElE,CACF,GACJ,EAGMpe,GAAW,SAAChX,GAChB,IAAQ2T,EAA+B3T,EAA/B2T,SAAU+K,EAAqB1e,EAArB0e,iBAElBjd,EAAAA,EACGmB,KAAK8rB,GAAmB3uB,EAAAA,EAAAA,GAAe,CAAC4T,SAAAA,EAAU+K,iBAAAA,KAClDrX,MAAK,SAAAC,GAAQ,OAAIA,GAAYqoB,GAAiBroB,EAAS,GAC5D,EAGMyP,GAAmB,SAAC/W,GACxB,IAAQ2T,EAAsC3T,EAAtC2T,SAAU+K,EAA4B1e,EAA5B0e,iBAAkB7K,EAAU7T,EAAV6T,MAEpCpS,EAAAA,EACGmB,KAAK,gDAAgD7C,EAAAA,EAAAA,GAAe,CAAC4T,SAAAA,EAAU+K,iBAAAA,EAAkB7K,MAAAA,KACjGxM,MAAK,SAAAC,GAAQ,OAAIA,GAAY4nB,GAAiB5nB,EAAS,GAC5D,EAGM2P,GAAoB,SAACjX,GACzB,IACMuf,EAAmB,CAAE5L,SADmB3T,EAAtC2T,SAC6B+K,iBADS1e,EAA5B0e,iBACqC7K,MADT7T,EAAV6T,OAGpCpS,EAAAA,EACGmB,KAAK2rB,GAAyBxuB,EAAAA,EAAAA,GAAewf,IAC7ClY,MAAK,SAAAC,GAAQ,OAAIA,GAAY8nB,GAAkB9nB,EAAS,GAC7D,EAGM8P,GAAsB,SAACpX,GAC3B,IACMuf,EAAmB,CAAE5L,SADmB3T,EAAtC2T,SAC6B+K,iBADS1e,EAA5B0e,iBACqC7K,MADT7T,EAAV6T,OAGpCpS,EAAAA,EACGmB,KAAK6rB,GAA+B1uB,EAAAA,EAAAA,GAAewf,IACnDlY,MAAK,SAAAC,GAAQ,OAAIA,GAAY6qB,GAAmB7qB,EAAS,GAC9D,EAGMguB,GAAuB,SAACC,EAAiBv1B,EAAew1B,GAC5DA,IAAsBx1B,EAAc0e,iBAAmB8W,GACvDD,EAAgBl1B,KAAI,SAAAmW,GAAI,OAAIA,EAAKxW,EAAc,GACjD,EAGM+0B,GAAiB,SAACztB,EAAUtH,EAAey1B,EAAkBC,GACjE,IAAMC,EAAc31B,EAAcyf,KAKlCnY,EAAS2tB,MAAQ,KAAOj1B,EAAc41B,gBAClCD,GAAe,GAAKE,GAAmB71B,EAAesH,GAAU,kBAAMmuB,EAAiBnuB,EAAS,IAChGmuB,EAAiBnuB,IAEpBouB,GAAoB5d,GAAiB9X,EACxC,EAQM61B,GAAqB,SAAC71B,EAAesH,EAAUmuB,GAEnD,IAAyBK,EAAuB1xB,EAAxC2xB,gBACAf,EAA6G1tB,EAA7G0tB,UAAkBgB,EAA2F1uB,EAAlG2tB,MAA6CG,EAAqD9tB,EAArD8tB,oBAAqBa,EAAgC3uB,EAAhC2uB,4BAC/EC,IAA4BlB,EAAUxxB,OAG1CmV,EAYE3Y,EAZF2Y,aACAH,EAWExY,EAXFwY,WACAF,EAUEtY,EAVFsY,SACAD,EASErY,EATFqY,SACAib,EAQEtzB,EARFszB,iBACA5a,EAOE1Y,EAPF0Y,SACAD,EAMEzY,EANFyY,SACA8a,EAKEvzB,EALFuzB,iBACA1f,EAIE7T,EAJF6T,MACA4L,EAGEzf,EAHFyf,KACAgH,EAEEzmB,EAFFymB,SACAgN,EACEzzB,EADFyzB,SAgBF,IAbU,IAAThU,GAAcyW,IAA4BT,OAGvCjd,IAAeA,EAAWhV,WACvBmV,IAAiBA,EAAanV,SACnB,IAAb8U,GACAD,IAAaib,GACA,IAAb5a,GACAD,IAAa8a,GACI,IAAjB1f,EAAMrQ,QAAiC,IAAjBqQ,EAAMrQ,QAAgBqQ,EAAM,KAAO4f,KAIpCvF,EAAe,CAEvC,IACM4F,EAAcmC,IAAgCC,EAA0BlB,EAAU,GAAG5tB,GAAK,MAC1Fof,EAAUC,EAAW/K,OAAO+K,GAAY,GACxC0P,EAA2B,KAAZ3P,GAAmC,IAAjB9K,OAAO+D,GACxC2W,EAAgCJ,EAAuC,GAAK,GAAKA,EAAuC,EAC1HK,EALwB,GAKML,EAC9BM,EAAS,EAETH,IACFE,EAT0B,GASIL,EAAuCI,EACrEE,EAASF,GAGX,IAAMG,EAAgBrT,KAAKsT,KAAKH,GAE1BI,EAAS,CACb3C,YAAAA,EACAjgB,MAAO7T,EAAc6T,MACrBwiB,MAAOE,GAAiB,EAAIF,EAAQ,EACpC51B,QAAST,EAAc2T,SAAS,GAChC6f,eAAgBxzB,EAAcwzB,eAC9B8C,OAAAA,EACAlB,oBAAAA,EACA5c,WAAY,GACZG,aAAc,IAGhBmb,EACIryB,EAAAA,EAAYi1B,YAAY,CAAE/0B,IAAKm0B,EAAoBa,OAAQ,MAAOC,iBAAiB,EAAMH,OAAAA,IAAU,GAClGpvB,MAAK,SAAAzF,GACJ,GAAIA,EAAKwmB,MACNxmB,EAAKkzB,QAAU,KAAQ+B,QAAQC,IAAI,QAASl1B,EAAKwmB,WAC7C,CAQL,IAAQxI,EAAiChe,EAAjCge,UAAWmX,EAAsBn1B,EAAtBm1B,kBACbnxB,EAAiBmxB,EAAkBvzB,OAGzC,GAF6B2yB,EAAevwB,EAAiB0wB,EAAS1wB,EAE5C,CACxB,IAAMoxB,EAAoBhC,EAAUxxB,OAASwxB,EAAUxmB,QAAO,SAAA9H,GAAQ,OAAKA,EAASwmB,aAAa,IAAI,GAC/F+J,GAA0B7lB,EAAAA,EAAAA,GAAQ2lB,GAExCE,EAA2BhoB,KAAK+d,EAAAA,kBAAkBS,QAClDwJ,EAA2BzzB,OAAS,EAChCyzB,EAA2BrW,OAAOqW,EAA2BzzB,OAAS,EAAG,EAAGwpB,EAAAA,kBAAkBC,aAC9FgK,EAA2BC,QAAQlK,EAAAA,kBAAkBC,aAGzD,IAAM8I,EACJI,GAA4B,KAAZ3P,GAAcpV,EAAAA,EAAAA,GACrB6lB,GACLA,EAA2BrW,OAAO,EAAGwV,GAGhC,IAAXE,GAAgBP,EAAgBvyB,QAAUuyB,EAAgBmB,QAAQ,CAAE9vB,GAAI,iBACxEwoB,GAA8B,GAADjvB,QAAAyQ,EAAAA,EAAAA,GAAM4lB,IAAiB5lB,EAAAA,EAAAA,GAAK2kB,KACzD3F,GAAwB+F,EAAevwB,EAAiB0wB,EAAS1wB,GACjE4qB,GAAmB5Q,GACnB6S,GAAuBuD,GACvBtG,IAAY,EACd,MACEyH,KACA1B,GAEJ,CACF,IACAA,GACN,MACGrL,IAAwBmG,KAAoB4G,KAC7C1B,GAEJ,EA8MMhe,GAAa,SAACzX,GAClBmxB,IAA2B,GAE3B1vB,EAAAA,EACGmB,KAAK+rB,GAAwB5uB,EAAAA,EAAAA,GAAeC,IAC5CqH,MAAK,SAAAC,GAAQ,OAAIA,GAAY2oB,GAAgB3oB,EAAS0tB,UAAU,GACrE,EA0GMoC,GAA0B,SAACx1B,GAC/BguB,GAA8BhuB,EAAKozB,WACnCtF,IAAY,EACd,EAGM2H,GAA8B,SAACz1B,GACnCguB,GAA8BhuB,EAAKozB,WACnCvC,GAAuB7wB,EAAKqzB,OAC5BlD,GAAWnwB,EAAK0C,SAChBorB,IAAY,GACZiB,GAAyB/uB,EAAKyzB,wBAChC,EAGM8B,GAAuB,WAC3B/G,GAAwB,MACxBI,GAAmB,GACrB,EAGMtjB,GAAK1F,EAAAA,EAAA,GACNsE,GAAK,IACRijB,oBAAAA,GACAE,cAAAA,GACAE,eAAAA,GACAE,sBAAAA,GACA1Y,eAAAA,GACAzS,WAAAA,GACA+lB,kBAAAA,GACA9lB,aAAAA,GACAmT,0BAAAA,GACA4S,SAAAA,GACA9D,eAAAA,GACA5O,cAAAA,GACA2S,2BAAAA,GACA1S,WAAAA,GACAnC,WAAAA,GACA0a,aAAAA,GACA5F,qBAAAA,GACA1S,sBAAAA,GACAoZ,iBAAAA,GACAI,wBAAAA,GACAlxB,cAAAA,GACAS,QAAAA,GACAkX,sBAAAA,GACAC,mBAAAA,GACAC,oBAAAA,GACAwS,oBAAAA,GACA2E,uBAAAA,GACAE,iBAAAA,GACAE,kBAAAA,GACAE,yBAAAA,GACAC,kBAAAA,GACAlrB,cAAAA,GACAimB,qBAAAA,GACAmF,6BAAAA,GACAC,YAAAA,GACArJ,kBAAAA,GACAsJ,iBAAAA,GACAC,8BAAAA,GACAK,gBAAAA,GACAG,wBAAAA,GACAO,yBAAAA,GACAI,oBAAAA,GACAI,2BAAAA,GACArZ,iBAAAA,GACAC,yBAAAA,GACAC,sBAAAA,GACAC,uBAAAA,GACA2Z,uBAAAA,GACAG,WAAAA,GACAI,mBAAAA,GACAM,uBAAAA,GACAnuB,QAAAA,GACA4tB,gBAAAA,GACAha,2BAprBiC,CACjCof,OAAQ,CAAE,OAAQ,SAAU,YAAa,uBAAwB,cAAe,aAAc,WAAY,gBAAiB,YAC3HC,UAAW,CAAE,SAAU,YAAa,uBAAwB,cAAe,aAAc,WAAY,gBAAiB,YACtHC,UAAW,CAAE,SAAU,YAAa,aAAc,WAAY,gBAAiB,YAC/EC,MAAO,CAAE,OAAQ,SAAU,YAAa,aAAc,cAAe,YACrEC,gBAAiB,CAAE,SAAU,YAAa,cAAe,aAgrBzD9E,gBAAAA,GACArM,aAAAA,GACA7S,oBAAAA,GACA0E,YAAAA,GACAuf,uBA1H6B,SAAC/f,GAC9B,IAAM2H,EAAgB/X,EAAA,GAAQxH,IAE9BkqB,IAAYwF,IAAY,GACxBnQ,EAAiB/G,WAAaZ,EAC9B2H,EAAiBE,KAAO,EACxBhI,GAAW8H,GAEX9d,EAAAA,EACGmB,KAAK4rB,GAAoBzuB,EAAAA,EAAAA,GAAewf,IACxClY,MAAK,SAAAC,GACAA,KACFswB,EAAAA,EAAAA,GAAatwB,EAASuwB,cACtB9C,GAAeztB,EAAUiY,EAAkB8X,IAE/C,GACJ,EA2GES,wBAzL8B,SAACjgB,GAC/B,IAAM0H,EAAgB/X,EAAA,GAAQxH,IAE9BkqB,IAAYwF,IAAY,GACxBnQ,EAAiB5G,aAAed,EAChC0H,EAAiBE,KAAO,EACxBhI,GAAW8H,GAEX9d,EAAAA,EACGmB,KAAK4rB,GAAoBzuB,EAAAA,EAAAA,GAAewf,IACxClY,MAAK,SAAAC,GACAA,KACFswB,EAAAA,EAAAA,GAAatwB,EAASuwB,cACtB9C,GAAeztB,EAAUiY,EAAkB8X,IAE/C,GACJ,EA0KErN,WA9YiB,SAACvK,GAElB,IAAMF,EAAgB/X,EAAA,GAAQxH,IAE9BkqB,IAAYwF,IAAY,GACxBnQ,EAAiBE,KAAOA,EACxB8Q,KAAoBhR,EAAiBK,UAAY2Q,IAEjD9uB,EAAAA,EACGmB,KAAK4rB,GAAoBzuB,EAAAA,EAAAA,GAAewf,IAAmB,GAC3DlY,MAAK,SAAAC,GACJ,GAAIA,EAAS8gB,MACXwJ,GAAuBtqB,EAASwtB,QAAU,IAAM,SAAW,eACtD,EAYL8C,EAAAA,EAAAA,GAX6B,WAC3B,GAAIrH,GAAiB,CACnB,IAAMwH,EAAc72B,EAAAA,MAAkBoG,EAASuwB,cAG/C,OADAE,EAAYnY,UAAY2Q,GACjBrvB,EAAAA,UAAsB62B,EAC/B,CACE,OAAOzwB,EAASuwB,YAEpB,CAEaG,IACbtqB,YAAW,kBAAMmC,OAAOqW,OAAO,EAAG,EAAE,GAAE,IACtC6O,GAAeztB,EAAUiY,EAAkB8X,GAC7C,CACF,GACJ,EAiXElR,cA9WoB,SAACK,GACrB,IAAMjH,EAAgB/X,EAAA,GAAQxH,IAE9BkqB,IAAYwF,IAAY,GACxBnQ,EAAiBkH,SAAWD,EAC5BjH,EAAiBE,KAAO,EAExBhe,EAAAA,EACGmB,KAAK4rB,GAAoBzuB,EAAAA,EAAAA,GAAewf,IACxClY,MAAK,SAAAC,GACAA,IACFswB,EAAAA,EAAAA,GAAatwB,EAASuwB,cACtB9C,GAAeztB,EAAUiY,EAAkB6X,KAE3CxF,GAAuB,UAE3B,GACJ,EA8VElb,YA3GkB,WAClB,IAAMuhB,EAAa/2B,EAAAA,UAAsB,CACvC,eAAkB2X,EAClB,aAAclF,KAGhBlS,EAAAA,EACGC,OAAO,GAADf,OAAIiuB,EAAwB,KAAAjuB,OAAIs3B,IACtC5wB,MAAK,SAAAC,GAAQ,OAAIA,GAAYioB,GAAkBjoB,GAAYqP,GAAe,GAC/E,EAmGEC,uBA1U6B,SAACshB,GAC9B,IAAM3Y,EAAgB/X,EAAA,GAAQxH,IAE9BkqB,IAAYwF,IAAY,GACxBnQ,EAAiB7G,SAAWwf,EAAWvc,IACvC4D,EAAiB9G,SAAWyf,EAAWzc,IACvC8D,EAAiBE,KAAO,EACxBhI,GAAW8H,GAEX9d,EAAAA,EACGmB,KAAK4rB,GAAoBzuB,EAAAA,EAAAA,GAAewf,IACxClY,MAAK,SAAAC,GACAA,IACFswB,EAAAA,EAAAA,GAAatwB,EAASuwB,cACtB9C,GAAeztB,EAAUiY,EAAkB8X,KAE3CzF,GAAuB,UAE3B,GACJ,EAwTE/a,wBArT8B,SAACshB,GAC/B,IAAM5Y,EAAgB/X,EAAA,GAAQxH,IAE9BkqB,IAAYwF,IAAY,GACxBnQ,EAAiBjH,SAAW6f,EAAYxc,IACxC4D,EAAiBlH,SAAW8f,EAAY1c,IACxC8D,EAAiBE,KAAO,EACxBhI,GAAW8H,GAEX9d,EAAAA,EACGmB,KAAK4rB,GAAoBzuB,EAAAA,EAAAA,GAAewf,IACxClY,MAAK,SAAAC,GACAA,IACFswB,EAAAA,EAAAA,GAAatwB,EAASuwB,cACtB9C,GAAeztB,EAAUiY,EAAkB8X,KAE3CzF,GAAuB,UAE3B,GACJ,EAmSE9a,kCAAAA,GACAC,iBAAAA,GACAC,SAAAA,GACAC,kBAAAA,GACAC,+BAnQqC,SAACsK,GACtC,IAAMjC,EAAgB/X,EAAA,GAAQxH,IAE9BkqB,IAAYwF,IAAY,UAGjBnQ,EAAiBtL,UACxBsL,EAAiBb,iBAAmB8C,EACpCjC,EAAiBE,KAAO,EACxBhI,GAAW8H,GAEX9d,EAAAA,EACGmB,KAAK4rB,GAAoBzuB,EAAAA,EAAAA,GAAewf,IAAmB,GAC3DlY,MAAK,SAAAC,GACJ,GAAIA,EAAS8gB,MACXwJ,GAAuBtqB,EAASwtB,QAAU,IAAM,SAAW,eACtD,CACL,IAAMsD,EAAe,CAACphB,GAAUD,GAAkBE,GAAmBG,GAAqB,SAACihB,GAAS,OAAKvgB,IAAiB,SAAAqI,GAAU,OAAA3Y,EAAAA,EAAA,GAAU2Y,GAAekY,EAAS,GAAI,IAE1KT,EAAAA,EAAAA,GAAatwB,EAASuwB,cAElBvwB,EAAS2tB,MAAQ,GACnBY,GAAmBtW,EAAkBjY,GAAU,kBAAM+vB,GAA4B/vB,EAAS,MAEzF8iB,IAAwBmG,KAAoB4G,KAC7CE,GAA4B/vB,IAG9BguB,GAAqB8C,EAAc7Y,EAAkBjY,EAAS8tB,oBAChE,CACF,GACJ,EAqOEje,6BAlOmC,WACnC,IAAMoI,EAAgB/X,EAAA,GAAQxH,IAE9BkqB,IAAYwF,IAAY,GACxBnQ,EAAiBE,KAAO,EACxBhI,GAAW8H,GAEX9d,EAAAA,EACGmB,KAAK4rB,GAAoBzuB,EAAAA,EAAAA,GAAewf,IACxClY,MAAK,SAAAC,GACAA,IACFswB,EAAAA,EAAAA,GAAatwB,EAASuwB,cACtBR,GAA4B/vB,GAC5BwQ,IAAiB,SAAAqI,GAAU,OAAA3Y,EAAAA,EAAA,GAAU2Y,GAAeZ,EAAgB,KAEpEqS,GAAuB,UAE3B,GACJ,EAiNE0G,qBA7J2B,SAAC1C,GAC5B,IAAMrW,EAAgB/X,EAAAA,EAAA,GAAQxH,IAAa,IAAE0e,iBAAkB,GAAIkX,gBAAAA,IAEnE1L,IAAYwF,IAAY,GACxBnQ,EAAiBE,KAAO,EAExBhe,EAAAA,EACGmB,KAAK4rB,GAAoBzuB,EAAAA,EAAAA,GAAewf,IAAmB,GAC3DlY,MAAK,SAAAC,GACJ,GAAIA,EAAS8gB,MACXwJ,GAAuBtqB,EAASwtB,QAAU,IAAM,SAAW,eACtD,CACL,IAAMsD,EAAe,CAACphB,GAAUD,GAAkBE,GAAmBG,KAErEwgB,EAAAA,EAAAA,GAAatwB,EAASuwB,cACtB9C,GAAeztB,EAAUiY,EAAkB8X,IAC3C/B,GAAqB8C,EAAc7Y,EAAkBjY,EAAS8tB,oBAChE,CACF,GACJ,EA2IEhe,oBAAAA,GACA6c,mBAAAA,GACAsE,yBArL+B,SAAC5gB,GAChC,IAAM4H,EAAgB/X,EAAA,GAAQxH,IAE9BkqB,IAAYwF,IAAY,GACxBnQ,EAAiBhH,cAAgBZ,EACjC4H,EAAiBE,KAAO,EACxBhI,GAAW8H,GAEX9d,EAAAA,EACGmB,KAAK4rB,GAAoBzuB,EAAAA,EAAAA,GAAewf,IAAmB,GAC3DlY,MAAK,SAAAC,GACAA,EAAS8gB,MACXwJ,GAAuBtqB,EAASwtB,QAAU,IAAM,SAAW,aAE3D8C,EAAAA,EAAAA,GAAatwB,EAASuwB,cACtB9C,GAAeztB,EAAUiY,EAAkB8X,IAE/C,GACJ,EAoKE9f,iBA1SuB,SAACuI,EAAe9f,GACvC6tB,GAAUD,EAAW4K,QAErB,IAAMjZ,EAAgB/X,EAAA,GAAQxH,GAE9B4tB,EAAa,IAAI6K,gBACjB5K,EAASD,EAAWC,OAEpB3D,IAAYwF,IAAY,GACxBnQ,EAAiB1L,MAAQiM,EAAczf,KAAI,SAAAC,GAAI,OAAIA,EAAK8G,EAAE,IAC1DmY,EAAiBE,KAAO,EACxBhI,GAAW8H,GAEX9d,EAAAA,EACGmB,KAAK4rB,GAAoBzuB,EAAAA,EAAAA,GAAewf,IAAmB,EAAMsO,GACjExmB,MAAK,SAAAC,GAKJ,GAHAsmB,EAAa,KACbC,EAAS,KAELvmB,EAAS8gB,MACXwJ,GAAuBtqB,EAASwtB,QAAU,IAAM,SAAW,eACtD,CACL,IAAMsD,EAAe,CAACrhB,GAAkBE,GAAmBG,KAE3DwgB,EAAAA,EAAAA,GAAatwB,EAASuwB,cACtB9C,GAAeztB,EAAUiY,EAAkB8X,IAC3C/B,GAAqB8C,EAAc7Y,EAAkBjY,EAAS8tB,oBAChE,CACF,GACJ,EA6QE9O,gBAzWsB,SAACI,GACvB,IAAMnH,EAAgB/X,EAAA,GAAQxH,IAE9BkqB,IAAYwF,IAAY,GACxBnQ,EAAiBoH,QAAUD,EAC3BnH,EAAiBE,KAAO,EAExBhe,EAAAA,EACGmB,KAAK4rB,GAAoBzuB,EAAAA,EAAAA,GAAewf,IACxClY,MAAK,SAAAC,GACAA,KACFswB,EAAAA,EAAAA,GAAatwB,EAASuwB,cACtB9C,GAAeztB,EAAUiY,EAAkB6X,IAE/C,GACJ,EA2VEjf,UA9GgB,SAACnV,GACdsS,GAAWC,KAEZsa,IAAc,SAAC6I,GAAW,OAAAlxB,EAAAA,EAAA,GAAWkxB,GAAW,IAAEnjB,MAAM,EAAOvS,KAAM,IAAE,IAEvE6sB,GAAc,CAAEta,MAAM,EAAMvS,KAAAA,EAAM+nB,QAAQ,GAE9C,IA2GA,OACE1nB,EAAAA,cAACY,EAAQ00B,SAAQ,CAAC33B,MAAOkM,IACvB7J,EAAAA,cAAA,OAAKC,UAAU,aAEbD,EAAAA,cAACR,EAAAA,QAAU,CAACE,YAAaA,EAAaC,KAAM,0BAE5CK,EAAAA,cAACgQ,EAAAA,QAAc,MAEfhQ,EAAAA,cAACgT,EAAAA,QAAkB,MAEnBhT,EAAAA,cAACu1B,EAAAA,QAAe,MAEhBv1B,EAAAA,cAACw1B,EAAAA,QAAa,MAEZjG,IAAmBA,GAAgBpvB,OAAS,GAC5CH,EAAAA,cAACugB,EAAAA,SAAQ,CAACC,SAAU,IAClBxgB,EAAAA,cAACqqB,EAAe,OAIpBrqB,EAAAA,cAACy1B,EAAAA,QAAW,CACV5f,mBAAoBA,EACpB6f,gBAAiBjzB,KAAKC,EAAE,iDACxBizB,oBAAqBlzB,KAAKC,EAAE,8CAC5BxB,QAASA,OAGN0pB,IAAoBA,EAAiBzqB,SACxCH,EAAAA,cAAC41B,EAAAA,QAAY,CACXjL,uBAAwBA,EACxBC,iBAAkBA,IAItB5qB,EAAAA,cAACS,EAAAA,QAAS,MAEVT,EAAAA,cAAC61B,EAAAA,YAAW,MAEV/K,GAAwBA,EAAqB3qB,OAAS,GACtDH,EAAAA,cAAC81B,EAAAA,QAAU,CACTC,QAAS90B,GACT+0B,YAAa,EACbrL,uBAAwBA,EACxBG,qBAAsBA,EACtBb,MAAOxnB,KAAKC,EAAE,+CAO1B,EAGA,YAOA+nB,EAASjqB,aAAe,CACtBsqB,qBAAsB,G,ojBCx5BiB,IAInCmL,EAAgB,SAAAtuB,IAAAC,EAAAA,EAAAA,GAAAquB,EAAAtuB,GAAA,IAAAE,EAAAC,EAAAmuB,GACpB,SAAAA,EAAYxtB,GAAQ,IAADV,EAMf,OANevK,EAAAA,EAAAA,GAAA,KAAAy4B,GACjBluB,EAAAF,EAAAO,KAAA,KAAMK,IAAOH,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,eA8BD,SAAAxJ,GACZ,IAAM23B,EAAW33B,EAAK43B,QAAQh2B,OAC1B5B,EAAK43B,QAAQn5B,KAAI,SAAA0R,GAAE,OAAIA,EAAG6T,QAAQpiB,MAAM,IAAEnC,QAAO,SAACwG,EAAGc,GAAC,OAAKd,EAAIc,CAAC,IAAI,EACpE,EACJyC,EAAKsB,SAAS,CAAE6sB,SAAAA,GAClB,KAAC5tB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,cAEY,SAACkiB,GAAK,OAAKjqB,EAAAA,cAAA,OAAKC,UAAU,yBAA0BgqB,EAAc,KAAD3hB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,aAElE,SAACquB,EAASr2B,GACpB,IAAMs2B,EAAatuB,EAAK8B,MAAMysB,gBAAkBv2B,EAAQ,WAAa,GAMrE,OALIs2B,GACFtuB,EAAKU,MAAM8tB,QAAQH,EAAQ/1B,MAK3BL,EAAAA,cAAA,KACEtC,IAAK04B,EAAQ/1B,KAAKN,EAClBK,KAAMg2B,EAAQ/1B,KACdJ,UAAS,wBAAA3C,OAA0B+4B,EAAU,MAE7Cr2B,EAAAA,cAAA,YAAOo2B,EAAQI,MACfx2B,EAAAA,cAAA,YAAwB,aAAjBo2B,EAAQ5vB,KAAsB4vB,EAAQK,OAAM,IAAAn5B,OAAO84B,EAAQK,OAAM,MAG9E,KAACnuB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,sBAEoB,SAAC2uB,GACpB,OACE12B,EAAAA,cAAA,OAAKtC,IAAKg5B,EAAYx2B,OACnB6H,EAAK4uB,WAAWD,EAAYx2B,OAC5Bw2B,EAAYnU,QAAQvlB,KAAI,SAAAkB,GAAI,OAAI6J,EAAK6uB,UAAU14B,EAAM6J,EAAKhI,QAAQ,IAGzE,KAACuI,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,iBAEe,WAEd,OADAA,EAAKhI,MAAQ,EACNgI,EAAKU,MAAM0tB,QAAQn5B,KAAI,SAAAkB,GAAI,OAAI6J,EAAK8uB,mBAAmB34B,EAAK,GACrE,KAACoK,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,cAEY,mBAAQA,EAAKU,MAAM0tB,QAAQh2B,MAAO,IAvE7C4H,EAAK8B,MAAQ,CACXysB,cAAe,EACfJ,SAAU,EACVY,cAAc,GACd/uB,CACJ,CA0EC,OA1EAtK,EAAAA,EAAAA,GAAAw4B,EAAA,EAAAv4B,IAAA,qBAAAC,MAED,SAAmBkP,EAAWC,EAAWiqB,GAEnClxB,KAAK4C,QAAUoE,IACjBhH,KAAKwD,SAAS,CAAEitB,cAAe,IAC/BzwB,KAAKmxB,YAAYnxB,KAAK4C,OAEW,SAA7B5C,KAAK4C,MAAMwuB,cACbpxB,KAAKwD,SAAS,CACZitB,cAAezwB,KAAKgE,MAAMysB,cAAgBzwB,KAAKgE,MAAMqsB,SAChDrwB,KAAKgE,MAAMysB,cAAgB,EAC5BzwB,KAAKgE,MAAMysB,cAAgB,IAEK,OAA7BzwB,KAAK4C,MAAMwuB,eACpBpxB,KAAKwD,SAAS,CACZitB,cAAezwB,KAAKgE,MAAMysB,cAAgB,EACtCzwB,KAAKgE,MAAMqsB,SACXrwB,KAAKgE,MAAMysB,cAAgB,IAIvC,GAAC,CAAA54B,IAAA,SAAAC,MA8CD,WACE,OACEqC,EAAAA,cAAA,OAAKC,UAAU,2BACX4F,KAAKqxB,aAAerxB,KAAKsxB,gBAAkB,KAGnD,KAAClB,CAAA,CAlFmB,CAASlmB,EAAAA,WAyF/B,UAAe/P,EAAAA,KAAWi2B,E,wmBCtFJ,IAGhB5V,EAAc,SAAA1Y,IAAAC,EAAAA,EAAAA,GAAAyY,EAAA1Y,GAAA,IAAAE,EAAAC,EAAAuY,GAClB,SAAAA,EAAY5X,GAAQ,IAADV,EAW6C,OAX7CvK,EAAAA,EAAAA,GAAA,KAAA6iB,GACjBtY,EAAAF,EAAAO,KAAA,KAAMK,IAAOH,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,sBA4BM,SAACvD,GACpBuD,EAAKsB,SAAS,CAAE+tB,YAAa5yB,EAAEC,SAAWsD,EAAKsvB,eAAiBtvB,EAAKsvB,cAAcnuB,SAAS1E,EAAEC,SAChG,KAAC6D,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,eAEa,WACRA,EAAKuvB,aAAevvB,EAAKU,MAAM0tB,SAAyC,IAA9BpuB,EAAKU,MAAM0tB,QAAQh2B,SAC/D4H,EAAKwvB,aACL/qB,OAAO0F,KAAKnK,EAAKuvB,YAAa,SAElC,KAAChvB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,gBAEc,SAAA2G,GAAE,OAAI3G,EAAKyvB,aAAe9oB,CAAG,KAADpG,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,UAElC,SAAA0G,GACP1G,EAAKuvB,YAAc7oB,EACnB1G,EAAK0vB,aAAa1vB,EAAKuvB,YACzB,KAAChvB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,iBAEe,SAAAvD,GACd,OAAQA,EAAEkzB,OACR,KAAK,GACH3vB,EAAKsB,SAAS,CAAEsuB,UAAW,OAC3B,MACF,KAAK,GACH5vB,EAAKsB,SAAS,CAAEsuB,UAAW,SAC3B,MACF,KAAK,GACH5vB,EAAKsB,SAAS,CAAEsuB,UAAW,IAC3B5vB,EAAKwvB,aACL,MACF,KAAK,GACHxvB,EAAK6vB,cACL,MACF,QACE7vB,EAAKsB,SAAS,CAAEsuB,UAAW,OAGjC,KAACrvB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,qBAEmB,SAAAe,GAClB,IAAMiC,EAAQjC,EAAMrE,OAAO9G,MAC3BoK,EAAKsB,SAAS,CAAE0B,MAAAA,IAEZ,KAAK8sB,KAAK/uB,EAAMrE,OAAO9G,OACzBoK,EAAK+vB,oBAEL/vB,EAAKsB,SAAS,CAAC8sB,QAAS,GAAI4B,oBAAoB,GAEpD,KAACzvB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,cAEY,kBAAMA,EAAKsB,SAAS,CAAE0B,MAAO,GAAIorB,QAAS,IAAM,KAAD7tB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,aAEhD,IAAIiwB,MAAOC,UAAY,aAAU3vB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,YAElC,SAAAmwB,GAAQ,OAAIA,EAASl7B,KAAI,SAAAm7B,GAAO,OAAIA,EAAQp0B,EAAE,GAAE,KAADuE,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,qBAEtC,WACd,KAAK8vB,KAAK9vB,EAAK8B,MAAMkB,OACvBhD,EAAKqwB,WAAWrwB,EAAK8B,MAAMkB,OAE3BhD,EAAKsB,SAAS,CAAC8sB,QAAS,IAE5B,KAAC7tB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAR,GAAA,cAEY,SAAAgD,GACX,IAAQwK,EAAwBxN,EAAKU,MAA7B8M,oBACF/E,EAAQzI,EAAKswB,SAAStwB,EAAKU,MAAMuQ,eACjCsf,EAAiB9rB,OAAOgR,YAAc,IACtC4V,EAAS,CACbroB,MAAAA,EACAyF,MAAAA,EACA+L,UAAWxU,EAAKwU,UAChBjM,SAAU,CAAC9D,OAAO+rB,IAAIn7B,SACtBo7B,YAAaF,EAAiB,EAAI,KAGpCG,EAAAA,EAAAA,IAAeljB,EAAqB6d,GAAQpvB,MAAK,SAAAzF,GAC/C,IAAM43B,EAAU53B,EAAKA,KACjB,KAAKs5B,KAAK9vB,EAAK8B,MAAMkB,QACvBhD,EAAKsB,SAAS,CAAE8sB,QAAAA,EAAS4B,oBAAqB5B,EAAQh2B,QAE1D,GACF,IA7GE4H,EAAK8B,MAAQ,CACX8tB,UAAW,KACXP,aAAa,EACbjB,QAAS,GACT4B,oBAAoB,EACpBhtB,MAAO,IAEThD,EAAKuvB,YAAc,KAEnBvvB,EAAK+vB,kBAAoB5kB,IAASnL,EAAK+vB,kBAAmB,KAAI/vB,CAChE,CA6JC,OA7JAtK,EAAAA,EAAAA,GAAA4iB,EAAA,EAAA3iB,IAAA,oBAAAC,MAED,WACE6O,OAAOG,iBAAiB,QAAS9G,KAAK+G,mBACxC,GAAC,CAAAlP,IAAA,qBAAAC,MAED,SAAmBkP,EAAWC,GAC5B,IAAQ/B,EAAUlF,KAAKgE,MAAfkB,MAERlF,KAAK4C,MAAMuQ,gBAAkBnM,EAAUmM,eAAiBjO,GAASlF,KAAKuyB,WAAWrtB,EACnF,GAAC,CAAArN,IAAA,uBAAAC,MAGD,WACE6O,OAAOS,oBAAoB,QAASpH,KAAK+G,mBAC3C,GAAC,CAAAlP,IAAA,SAAAC,MAsFD,WAAU,IAADuP,EAAA,KACPE,EAAsDvH,KAAK4C,MAAnD6E,EAAWF,EAAXE,YAAagT,EAAmBlT,EAAnBkT,oBAAqBpf,EAAOkM,EAAPlM,QAC1C4I,EAA+CjE,KAAKgE,MAA5CkB,EAAKjB,EAALiB,MAAOorB,EAAOrsB,EAAPqsB,QAAS4B,EAAkBjuB,EAAlBiuB,mBAClBW,IAAkB3tB,EAAM5K,QAAU0F,KAAKgE,MAAM8uB,aAC7CC,EAAwB/yB,KAAKgE,MAAMutB,YAEzC,OACEp3B,EAAAA,cAACqH,EAAAA,SAAQ,KACPrH,EAAAA,cAAA,OAAKC,UAAU,qCAAqCwO,IAAK,SAAAC,GAAE,OAAIxB,EAAKmqB,cAAgB3oB,CAAE,GAEpF1O,EAAAA,cAAA,SACEC,UAAS,sCAAA3C,OAAwCo7B,EAAgB,UAAY,IAC7E30B,GAAG,aACHyC,KAAK,OACL7I,MAAOoN,EACP+D,SAAUjJ,KAAKgzB,kBACfvrB,YAAaA,GAAe7K,KAAKC,EAAE,4CACnCo2B,UAAWjzB,KAAKkzB,cAChBC,UAAU,SAGT1Y,IAAwBoY,IACzB14B,EAAAA,cAAA,OAAKC,UAAU,cACbD,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,SAAS8B,KAAM,MAI9Bm4B,GACA14B,EAAAA,cAAA,OAAKC,UAAU,4BAA4BkG,QAASN,KAAK0xB,YACvDv3B,EAAAA,cAACM,EAAAA,OAAM,CAAC7B,KAAK,QAAQ8B,KAAM,MAI7Bm4B,GAAiBvC,EAAQh2B,QAAUy4B,EACnC54B,EAAAA,cAACi2B,EAAAA,QAAgB,CACfE,QAASA,EACTc,cAAepxB,KAAKgE,MAAM8tB,UAC1BpB,QAAS1wB,KAAKozB,SAEd,MAGJP,GAAiBX,GAAsB5B,EACvCn2B,EAAAA,cAAA,OAAKC,UAAU,iBACbD,EAAAA,cAAA,OAAKC,UAAU,cACXwC,KAAKC,EAAE,oCAAqC,OAChC,WAAZxB,GACAlB,EAAAA,cAAA,KAAGI,KAAK,+BACJqC,KAAKC,EAAE,gDAKf,KAGV,KAAC2d,CAAA,CA1KiB,CAAStQ,EAAAA,WA8K7B,UAAe/P,EAAAA,KAAWqgB,E,kFCxLnB,IAAM6Q,EAAuB,WAClC,IAAIgI,EAAY,IAAIlB,KAChBmB,EAAa,IAAInB,KAAKkB,EAAUE,QAAQF,EAAUG,UAAW,IAE7DC,EAAoBze,KAAKC,MAAMhd,aAAaC,QAAQ,yBAWxD,OAVoBjB,OAAOC,KAAKu8B,GAEQt8B,KAAI,SAAAC,GAC1C,IAAIs8B,EAAc,IAAIvB,KAAKsB,EAAkB,GAADh8B,OAAIL,IAAQ,GAAGu8B,WAC3D,GAAIL,EAAaI,EACf,OAAOt8B,CAEX,IAC6CkO,QAAO,SAAAlO,GAAI,YAAaijB,IAATjjB,CAAkB,GAGhF,C,mFChBO,IAAMkjB,EAAuB,SAAC3P,EAAO4P,GAI1C,IAHA,IAAI9d,EAAQ,EACNm3B,EAAW,CAAC,EAElBC,EAAA,EAAAC,EAAiBz8B,MAAM08B,KAAKppB,GAAMkpB,EAAAC,EAAAx5B,OAAAu5B,IAAE,CAA/B,IAAIl3B,EAAIm3B,EAAAD,GAKX,IAAK,IAAIG,KAJLzZ,EAAK5d,KACPF,GAAS8d,EAAK5d,GAAc,QAAK,GAGX4d,EAAM,CAC5B,IAAM0Z,EAAW1Z,EAAKyZ,GAGtB,IAAK,IAAIE,KAFTN,EAASI,GAAeJ,EAASI,IAAgB,GAEjCC,EAAoB,UAAG,CACrC,IAAME,EAA2BF,EAAoB,UAAEC,IAClDvpB,EAAMhF,SAASquB,KAAyD,IAAxCJ,EAASI,GAAa9vB,QAAQgwB,IAAiBC,EAAyBC,cAAgB/8B,OAAU88B,EAAyBxuB,SAAShJ,KACvKi3B,EAASI,GAAajuB,KAAKmuB,GAC3Bz3B,GAAS,EAEb,CACF,CACF,CAEA,OAAOA,CACT,C,wDCxBO,IAAMga,EAAmB,SAAC3f,EAAe0D,EAAM65B,EAAY/d,GAiFhE,OAhFArf,OAAOC,KAAKsD,GAAMrD,KAAI,SAAAC,GACpB,OAAOA,GACL,IAAK,UACHN,EAAc6T,MAAQ,GAAGlT,OAAO+C,EAAKpD,IACrC,MACF,IAAK,kBACHN,EAAcuY,cAAgB,GAAG5X,OAAO+C,EAAKpD,IAC7C,MACF,IAAK,OACHN,EAAcyf,KAAO/b,EAAKpD,GAC1B,MACF,IAAK,WACHN,EAAc0Y,SAAWhV,EAAKpD,GAC9B,MACF,IAAK,WACHN,EAAcyY,SAAW/U,EAAKpD,GAC9B,MACF,IAAK,WACHN,EAAcsY,SAAW5U,EAAKpD,GAC9B,MACF,IAAK,WACHN,EAAcqY,SAAW3U,EAAKpD,GAC9B,MACF,IAAK,WACHN,EAAcymB,SAAW/iB,EAAKpD,GAC9B,MACF,IAAK,UACHN,EAAc2mB,QAAUjjB,EAAKpD,GAC7B,MACF,IAAK,YACHN,EAAciU,UAAYvQ,EAAKpD,GAGrC,IAEIi9B,IACG75B,EAAK,aACR1D,EAAc6T,MAAQ2L,EAAc3L,MAAQ2L,EAAc3L,MAAQ,IAG/DnQ,EAAK,qBACR1D,EAAcuY,cAAgBiH,EAAcjH,cAAgBiH,EAAcjH,cAAgB,IAGvF7U,EAAK+b,OACRzf,EAAcyf,KAAOD,EAAcC,MAGhC/b,EAAKgV,WACR1Y,EAAc0Y,SAAW8G,EAAc9G,UAGpChV,EAAK+U,WACRzY,EAAcyY,SAAW+G,EAAc/G,UAGpC/U,EAAK4U,WACRtY,EAAcsY,SAAWkH,EAAclH,UAGpC5U,EAAK2U,WACRrY,EAAcqY,SAAWmH,EAAcnH,UAGpC3U,EAAK+iB,WACRzmB,EAAcymB,SAAW,MAGtB/iB,EAAKijB,UACR3mB,EAAc2mB,QAAU,IAErBjjB,EAAKuQ,YACJuL,EAAcvL,UAChBjU,EAAciU,UAAYuL,EAAcvL,iBAEjCjU,EAAciU,YAKpBjU,CACT,C","sources":["webpack:///./app/javascript/api/httpService.js","webpack:///./app/javascript/components/Breadcrumb/index.jsx","webpack:///./app/javascript/components/ListView/BottomSeo/index.jsx","webpack:///./app/javascript/components/ListView/ListViewAreaSelector/index.jsx","webpack:///./app/javascript/components/ListView/ListViewHeader/index.jsx","webpack:///./app/javascript/components/ListView/ListViewMainFilter/StickyFilterBar.jsx","webpack:///./app/javascript/components/ListView/ListViewMainFilter/index.jsx","webpack:///./app/javascript/components/ListView/ListViewSortBar/index.jsx","webpack:///./app/javascript/components/ListView/SortComponent/index.jsx","webpack:///./app/javascript/components/ListView/data.js","webpack:///./app/javascript/components/ListView/index.jsx","webpack:///./app/javascript/components/LocationSearch/ResultsContainer.jsx","webpack:///./app/javascript/components/LocationSearch/index.jsx","webpack:///./app/javascript/components/helpers/checkOrderedLocation.js","webpack:///./app/javascript/components/helpers/coundByKindLocation.js","webpack:///./app/javascript/utils/queryParseHelper.js"],"sourcesContent":["// import ES6Promise from 'es6-promise';\nimport { apiProvider } from './core';\nimport { camelizeName } from '../utils/helpers';\n// ES6Promise.polyfill();\n\n\nexport const requestBuilder = (requestParams) => {\n const bodyFormData = new FormData();\n\n Object.keys(requestParams).map(elem => {\n if (Array.isArray(requestParams[elem])) {\n requestParams[elem].map(section => bodyFormData.append(`${elem}[]`, section));\n } else {\n if (requestParams[elem] != null) {\n bodyFormData.append(elem, requestParams[elem]);\n }\n }\n });\n\n return bodyFormData;\n};\n\n\nclass httpService {\n\n static getLocationsByIds(locationsIds) {\n const locale = localStorage.getItem('locale');\n const url = '/api/locations/get_by_ids?locale=' + locale + '&';\n const params = locationsIds.reduce((sum, item) => sum + 'ids[]=' + item + '&', '');\n const queryString = url + params.slice(0, -1);\n\n return apiProvider.getAll(queryString);\n }\n\n\n static orderInfoListViewForm(url, data, uuid) {\n\n const {\n name,\n email,\n company: company_name,\n option_parking_lots,\n phone: phone_number,\n // jeudan_policy,\n comment,\n ab_code\n } = data;\n\n const order = {\n order: {\n location_uuid: uuid,\n person_name: camelizeName(name),\n company_name,\n phone_number,\n email,\n option_parking_lots,\n // jeudan_policy,\n comment,\n ab_code,\n },\n api_version: 2\n };\n\n return apiProvider.post(url, order);\n }\n}\n\nexport default httpService;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { SvgIco } from \"../SharedComponents/Icons\";\n\nimport './index.sass';\n\n\nconst Breadcrumb = ({ breadcrumbs, root, detailsPage }) => {\n\n const linksList = breadcrumbs.map( (breadcrumb, index) => (\n
\n { index === breadcrumbs.length - 1\n ?
{ breadcrumb.label }
\n :
\n \n { breadcrumb.label }\n \n \n
\n }\n
\n ));\n\n return (\n
\n
\n
{ linksList }
\n
\n
\n );\n};\n\nBreadcrumb.defaultProps = {\n breadcrumbs: [],\n};\n\nBreadcrumb.propTypes = {\n breadcrumbs: PropTypes.array,\n};\n\n\nexport default Breadcrumb;\n","import React, { Fragment, useContext, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { apiProvider } from \"../../../api/core\";\nimport { requestBuilder } from \"../../../api/httpService\";\nimport { SvgIco } from '../../SharedComponents/Icons';\nimport { Context } from \"../index\";\n\nimport './index.sass';\n\n\nconst BottomSeo = () => {\n\n const {\n headerData,\n initialKinds,\n keywords,\n requestParams,\n setHeaderData,\n showSeo,\n siteKey,\n } = useContext(Context);\n\n const { descriptionWithAssets, extendedDescription, rating, streetName, seoStatistics } = headerData;\n const { avgScore, rateableId, ratingCreatePath, showRating, votesCount } = rating;\n const { geoName } = keywords;\n\n const [hoveredRatingStar, setHoveredRatingStar] = useState(null);\n\n const currentScore = +avgScore;\n const locationsKind = initialKinds && initialKinds.length === 1 ? '.' + initialKinds[0] : '';\n const count = requestParams.locationsCount === 1 ? 'one' : 'other';\n\n // {locationsKind === '.parking'} Related to Danish translation aspects\n const kind = I18n.t(`global.models.location.kinds${locationsKind}${locationsKind === '.parking' ? '.seo_statistics' : '.normal'}`);\n const translatedKinds = kind[count] ? kind[count] : kind;\n const ratingHeadline = I18n.t('generic.rating_text', {\n selected_kinds: translatedKinds,\n selected_area: geoName,\n });\n\n // isCoworkingDk - related to Danish translation aspects\n const isCoworkingDk = siteKey === 'dk' && locationsKind === '.coworking' && true;\n const declinedLocationKinds =\n isCoworkingDk\n ? I18n.t(`global.models.location.kinds${locationsKind}.seo_statistics`)\n : translatedKinds;\n\n const availableLocationsLinkI18n = I18n.t(\n 'apps.lb_showroom.bottom_seo.overview_link',\n {\n pdf_link: seoStatistics && seoStatistics.fullOverviewLink,\n location_kinds: declinedLocationKinds,\n location: geoName,\n },\n );\n\n const topVievedLocationsHeadline = I18n.t(\n 'apps.lb_showroom.bottom_seo.table_top_locations_headline',\n {\n locations_count: seoStatistics && seoStatistics.topViewed.length,\n location_kinds: declinedLocationKinds,\n location: geoName,\n },\n ).replace(/\\u00A0/g, ' ');\n\n\n useEffect(() => {\n initYouTubeVideos();\n }, []);\n\n\n const updateAreaRating = (score) => {\n const requestParams = {\n kind: 'list_view',\n load_stars_widget: 'false',\n id: rateableId,\n score,\n };\n\n apiProvider\n .post(ratingCreatePath, requestBuilder(requestParams))\n .then(response => response &&\n setHeaderData(prevData => ({\n ...prevData,\n rating: {\n ...prevData.rating,\n avgScore: response.rating_data.avg_score,\n votesCount: response.rating_data.votes_count,\n }\n }))\n );\n };\n\n\n const handleRatingHover = (e) =>\n setHoveredRatingStar(e.target.id);\n\n\n const handleRatingOut = () =>\n setHoveredRatingStar(null);\n\n\n const initYouTubeVideos = () => {\n const labnolIframe = (div) => {\n const iframe = document.createElement('iframe');\n iframe.setAttribute('src', 'https://www.youtube.com/embed/' + div.dataset.id + '?autoplay=1&rel=0');\n iframe.setAttribute('frameborder', '0');\n iframe.setAttribute('allowfullscreen', '1');\n iframe.setAttribute('autoplay', '1');\n iframe.setAttribute('allow', 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture');\n div.parentNode.replaceChild(iframe, div);\n };\n\n const playerElements = document.getElementsByClassName('youtube-player');\n\n if (playerElements && playerElements.length) {\n for (let n = 0; n < playerElements.length; n++) {\n const videoId = playerElements[n].dataset.id;\n const div = document.createElement('div');\n\n div.setAttribute('data-id', videoId);\n\n const thumbNode = document.createElement('img');\n\n thumbNode.src = 'https://i.ytimg.com/vi/ID/hqdefault.jpg'.replace('ID', videoId);\n div.appendChild(thumbNode);\n\n const playButton = document.createElement('div');\n\n playButton.setAttribute('class', 'play');\n div.appendChild(playButton);\n div.onclick = function () {\n labnolIframe(this);\n };\n\n playerElements[n].appendChild(div);\n }\n }\n };\n\n\n const capitalize = (text) =>\n text.charAt(0).toUpperCase() + text.substring(1);\n\n\n const diffIcon = (diff) =>\n diff > 0\n ? \n : (diff < 0 ? : );\n\n\n const videoFrame = (url) => {\n const videoId = url.split('/').pop();\n\n return
;\n };\n\n\n if (showSeo && !streetName) {\n return (\n
\n { showRating ? (\n
\n
\n
\n\n \n {ratingHeadline}\n \n\n
\n updateAreaRating(e.target.id)}\n onMouseOver={handleRatingHover}\n onMouseOut={handleRatingOut}>\n \n \n\n updateAreaRating(e.target.id)}\n onMouseOver={handleRatingHover}\n onMouseOut={handleRatingOut}>\n { !hoveredRatingStar\n ? = 2 ? 'star' : currentScore > 1 ? 'star-half' : 'star-outlined' } size={20} />\n : = 2 ? 'star' : 'star-outlined' } size={20} />\n }\n \n updateAreaRating(e.target.id)}\n onMouseOver={handleRatingHover}\n onMouseOut={handleRatingOut}>\n { !hoveredRatingStar\n ? = 3 ? 'star' : currentScore > 2 ? 'star-half' : 'star-outlined' } size={20} />\n : = 3 ? 'star' : 'star-outlined' } size={20} />\n }\n \n updateAreaRating(e.target.id)}\n onMouseOver={handleRatingHover}\n onMouseOut={handleRatingOut}\n >\n { !hoveredRatingStar\n ? = 4 ? 'star' : currentScore > 3 ? 'star-half' : 'star-outlined' } size={20} />\n : = 4 ? 'star' : 'star-outlined' } size={20} />\n }\n \n updateAreaRating(e.target.id)}\n onMouseOver={handleRatingHover}\n onMouseOut={handleRatingOut}\n >\n { !hoveredRatingStar\n ? 4 ? 'star-half' : 'star-outlined' } size={20} />\n : = 5 ? 'star' : 'star-outlined' } size={20} />\n }\n \n \n { currentScore + ` (${votesCount} ${I18n.t('generic.star_rating_votes')})`}\n \n
\n
\n
\n
\n ) : null }\n\n { descriptionWithAssets && descriptionWithAssets.length > 0\n ?\n
\n { descriptionWithAssets.map((section, index) => (\n
\n

\n { section.headline }\n

\n
\n { section.asset &&\n section.asset.url &&\n (section.asset.type === 'img' ||\n section.asset.type === 'map') && (\n \n )}\n
\n { section.asset &&\n section.asset.url &&\n section.asset.type === 'video' && (\n
\n { videoFrame(section.asset.url) }\n
\n )}\n
\n
\n ))}\n
\n : extendedDescription &&\n
\n
\n
\n }\n\n { seoStatistics && (\n
\n

\n { isCoworkingDk\n ? I18n.t(\n 'apps.lb_showroom.bottom_seo.headline_coworking_dk',\n { location_kinds: translatedKinds, location: geoName },\n )\n : I18n.t('apps.lb_showroom.bottom_seo.table_headline', {\n location_kinds: translatedKinds,\n location: geoName,\n })\n }\n

\n\n
\n
\n
\n

\n { isCoworkingDk\n ? I18n.t(\n 'apps.lb_showroom.bottom_seo.headline_paragraph_coworking_dk',\n {\n location_kinds: translatedKinds,\n location: geoName,\n },\n )\n : I18n.t(\n 'apps.lb_showroom.bottom_seo.table_headline_paragraph',\n {\n location_kinds: translatedKinds,\n location: geoName,\n },\n )}\n

\n
\n
\n
\n\n
\n
\n \n \n \n \n \n \n { seoStatistics.rowsContent.map((content, indexRows) => (\n \n \n { content.cells.map(\n (cell, index) =>\n index === 0 && ,\n )}\n \n ))}\n \n
\n { capitalize(translatedKinds) }: {geoName}\n \n { seoStatistics.headline[0] }\n
{content.description}{cell}
\n\n \n \n\n \n \n\n { seoStatistics.headline.map((headline, index) => (\n \n ))}\n \n\n { seoStatistics.rowsContent.map((content, indexRows) => (\n \n \n { content.cells.map((cell, index) =>\n index === content.cells.length - 1\n ?\n \n :\n \n ,\n )}\n \n ))}\n \n
\n { capitalize(translatedKinds) }: { geoName }\n \n { index === seoStatistics.headline.length - 1\n ?\n \n \n { I18n.t('apps.lb_showroom.bottom_seo.table_change') }\n \n \n ({ headline })\n \n \n :\n headline\n }\n
{content.description}\n { cell } { diffIcon(content.percentageChange) }\n {cell}
\n
\n

\n
\n\n
\n

\n { topVievedLocationsHeadline }\n

\n
    \n { seoStatistics.topViewed.map((link, index) => (\n
  1. \n \n { link[0] }\n \n
  2. \n ))}\n
\n

\n \n { I18n.t('apps.lb_showroom.bottom_seo.viewed_locations_link', { location_kinds: declinedLocationKinds }) }\n \n { I18n.t('apps.lb_showroom.bottom_seo.viewed_locations_p', { location: geoName }) }\n

\n
\n
\n )}\n
\n );\n } else {\n return null;\n }\n}\n\nexport default BottomSeo;\n\nBottomSeo.propTypes = {\n showSeo: PropTypes.bool,\n};\n\nBottomSeo.defaultProps = {\n showSeo: true,\n};\n","import React, { Component, Fragment } from 'react';\nimport update from 'immutability-helper';\nimport classNames from 'classnames';\n\nimport { SvgIco } from '../../SharedComponents/Icons';\n\nimport './index.sass';\n\n\nclass ListViewAreaSelector extends Component {\n\n state = {\n isOpened: this.props.isOpened || false,\n selectedSectionIds: [],\n searchQuery: '',\n toggleIsSticky: false,\n queryData: [],\n };\n\n componentDidMount() {\n document.addEventListener('click', this.handleClickOutside)\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { scrollToggle } = this.props;\n\n scrollToggle && prevProps.scrollToggle !== scrollToggle && this.handleBodyScroll();\n }\n\n\n componentWillUnmount() {\n document.removeEventListener('click', this.handleClickOutside);\n }\n\n handleClickOutside = (event) => {\n const isOutsideClick = event.target.tagName !== 'svg' && this.wrapperRef && !this.wrapperRef.contains(event.target);\n const isTrigger = event.target === this.trigger || this.trigger.contains(event.target);\n\n isOutsideClick && !isTrigger && this.setState({ isOpened: false, selectedSectionIds: [] });\n };\n\n selectAll = (province) => {\n // this.state.selectedSectionIds.indexOf(province.id) < 0 && this.setState({ selectedSectionIds: update(this.state.selectedSectionIds, {$push: [province.id]})});\n this.props.selectAll(province, this.props.dynamicData);\n };\n\n selectAction = (itemId, areaId) =>\n this.props.selectAction(itemId, areaId);\n\n setWrapperRef = (node) =>\n this.wrapperRef = node;\n\n handleOpening = () =>\n this.setState({ isOpened: !this.state.isOpened, selectedSectionIds: [] });\n\n toggleSelectSection = (id) => {\n const { searchQuery, selectedSectionIds } = this.state;\n const index = selectedSectionIds.indexOf(id);\n const sectionIsSelected = index >= 0;\n const newSelectedSections =\n searchQuery\n ? (sectionIsSelected ? update(selectedSectionIds, {$splice: [[index, 1]] }) : update(selectedSectionIds, {$push: [id]}))\n : sectionIsSelected ? [] : [id];\n\n this.setState({ selectedSectionIds: newSelectedSections }, () => !searchQuery && !sectionIsSelected && setTimeout(() => this.scrollToTarget(id), 300));\n };\n\n scrollToTarget = (id) => {\n const { isMobileMenu } = this.props;\n const scrollBody = document.getElementById(isMobileMenu ? 'filtersWrapper' : 'dropdown-body');\n const scrollTarget = document.getElementById(`trigger-${id}`);\n const dropdownBody = document.getElementById('dropdown-body');\n const scrollTargetTop = scrollTarget.offsetTop + (isMobileMenu ? dropdownBody.offsetTop : 0);\n\n scrollBody.scrollTop = scrollTargetTop;\n };\n\n handleSearch = (query) => {\n this.setState({ searchQuery: query.toLowerCase(), selectedSectionIds: [] }, () => {\n query\n ? this.handleQueryData()\n : this.setState({ queryData: [] });\n });\n };\n\n handleQueryData = () => {\n const { searchQuery } = this.state;\n const { dynamicData } = this.props;\n const openedSections = [];\n\n const queryData = searchQuery && dynamicData.filter(data => {\n const areasHasQuery = data.areas.some(area => area.name.toLowerCase().includes(searchQuery) && area.total_sum > 0);\n\n return !!(data.name.toLowerCase().includes(searchQuery) || areasHasQuery) && data.count > 0;\n }).map(filteredData => {\n const district = { ...filteredData };\n\n district.areas = filteredData.areas.filter(area => area.name.toLowerCase().includes(searchQuery) && area.total_sum > 0);\n district.areas.length && openedSections.push(district.id);\n\n return district;\n });\n\n this.setState({ queryData, selectedSectionIds: openedSections });\n };\n\n handleBodyScroll = () => {\n const { searchQuery, selectedSectionIds, toggleIsSticky } = this.state;\n\n if (!searchQuery && selectedSectionIds.length) {\n const { isMobileMenu } = this.props;\n const scrollTarget = document.getElementById(`body-scroll-target-${selectedSectionIds[0]}`);\n const dropdownBody = document.getElementById(isMobileMenu ? 'filtersWrapper' : 'dropdown-body');\n\n if (scrollTarget && dropdownBody) {\n const targetRect = scrollTarget && scrollTarget.getBoundingClientRect();\n const bodyRect = dropdownBody && dropdownBody.getBoundingClientRect();\n const targetTop = targetRect.top;\n const bodyTop = isMobileMenu ? bodyRect.top + 55 : bodyRect.top;\n const targetBottom = targetRect.bottom;\n const bodyBottom = bodyRect.bottom;\n const viewportBottom = window.innerHeight;\n const isSticky = targetTop <= bodyTop && (targetBottom > bodyBottom || targetBottom > viewportBottom);\n\n !isSticky && toggleIsSticky && this.setState({ toggleIsSticky: false });\n isSticky && !toggleIsSticky && this.setState({ toggleIsSticky: true });\n }\n }\n };\n\n\n render() {\n const { isOpened, searchQuery, selectedSectionIds, toggleIsSticky, queryData } = this.state;\n const { deselectAll, dynamicData, placeholder, selectedData, isMobileMenu } = this.props;\n const actionIconClasses = classNames('dropdown-selector__action-icon', { 'open': isOpened });\n const bodyClasses = classNames('dropdown-selector__body', { 'dropdown-selector__body--open': isOpened });\n const placeholderClasses = classNames('dropdown-selector__placeholder', { 'active': isOpened });\n const triggerClasses = classNames('dropdown-selector__trigger', { 'dropdown-selector__trigger--active': isOpened });\n\n let names = [];\n let selectedIds = [];\n Object.keys(selectedData).map(data => selectedIds = [...selectedIds, ...selectedData[data]]);\n selectedIds.forEach(selectedDistrictId => dynamicData.forEach(area => area.areas.forEach(district => district.id === selectedDistrictId && names.push(district.name))));\n\n const data = searchQuery ? queryData : dynamicData;\n\n const highlightSearchOutput = (name) => {\n if (name.toLowerCase().includes(searchQuery)) {\n const originName = name.toLowerCase();\n const startIndex = originName.indexOf(searchQuery);\n const endIndex = originName.indexOf(searchQuery) + searchQuery.length;\n const originSubstring = `${ name.substring(startIndex, endIndex) }`;\n const highlightedOutput = name.replace(name.substring(startIndex, endIndex), originSubstring).replaceAll(' ', ' ');\n\n return highlightedOutput;\n } else {\n return name;\n }\n };\n\n\n\n return (\n
\n
this.trigger = el}>\n
\n { placeholder }\n \n { names.length > 0 && ` (${names.length})` }\n \n
\n
\n { names.length > 0 &&\n
\n { names.join(', ') }\n
\n }\n
\n { !isOpened ? : }\n
\n
\n
\n\n { (isOpened || isMobileMenu) &&\n
\n\n
\n \n this.handleSearch(e.target.value)}\n placeholder={`${I18n.t('apps.lb_showroom.showroom.area_filter.search_label')}...`}\n type=\"text\"\n value={searchQuery}\n />\n
\n\n
\n { data.map((item) => {\n const sectionIsSelected = selectedSectionIds.indexOf(item.id) >= 0;\n const sortedAreasArray = item.areas.sort((a,b) => a.name.localeCompare(b.name));\n const areaIsSelected = selectedData[item.id] && selectedData[item.id].length > 0;\n const checkboxClasses = areaIsSelected ? 'dropdown-selector__item-icon-checked' : 'dropdown-selector__item-checkbox';\n const submenuClasses = classNames('dropdown-selector__item-submenu', {'opened': sectionIsSelected});\n const submenuStyles = sectionIsSelected ? {maxHeight: `${(item.areas.length + 1) * 60}px`} : {};\n const itemClasses = classNames('dropdown-selector__item main',\n { 'dropdown-selector__item--selected': sectionIsSelected },\n { 'sticky': toggleIsSticky && sectionIsSelected },\n { 'dropdown-selector__item--active': selectedData[item.id] });\n\n return (\n
\n { item.count > 0 && (\n
\n
\n
deselectAll(item.id) : () => this.selectAll(item)} className={checkboxClasses}>\n \n
\n
sortedAreasArray.length ? this.toggleSelectSection(item.id) : null}>\n \n { areaIsSelected &&\n { selectedData[item.id].length } {I18n.t('lb_showroom.showroom.list.chosen')}\n }\n
\n
\n this.toggleSelectSection(item.id)}>\n { sectionIsSelected ? : }\n \n
\n )}\n\n
\n
\n

this.selectAll(item)}>{ I18n.t('search_agent.select_all') }

\n

deselectAll(item.id)}>{ I18n.t('search_agent.deselect_all') }

\n
\n\n { sortedAreasArray.map(area => {\n const areaIsSelected = selectedData[item.id] && selectedData[item.id].indexOf(area.id) >= 0;\n const submenuItemClasses = classNames('dropdown-selector__item', {'dropdown-selector__item--checked': areaIsSelected});\n const submenuCheckboxClasses = areaIsSelected ? 'dropdown-selector__item-icon-checked' : 'dropdown-selector__item-checkbox';\n\n\n return (\n \n { area.total_sum > 0 && (\n
this.selectAction(item.id, area.id)}>\n
\n
\n \n
\n
\n
\n
\n
)\n }\n
\n )\n })}\n
\n
\n
\n )\n })}\n { searchQuery && !data.length &&\n
\n
\n \n

{ I18n.t('apps.lb_showroom.showroom.area_filter.no_results.first') }

\n
\n
\n { I18n.t('apps.lb_showroom.showroom.area_filter.no_results.second') }\n
\n
\n }\n
\n
\n
\n }\n\n
\n );\n }\n}\n\nexport default ListViewAreaSelector;\n","import React, { useContext, Fragment } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { SvgIco } from '../../SharedComponents/Icons';\nimport { Context } from \"../index\";\n\nimport './index.sass';\n\n\nconst ListViewHeader = () => {\n\n const {\n contactInfoPhone,\n contactInfoPhoneWithoutCode,\n country,\n headerData,\n keywords,\n requestParams,\n showSeo,\n siteKey,\n subSite,\n totalLocationsCount,\n } = useContext(Context);\n\n const { locationsCount, sections } = keywords;\n\n const {\n description,\n descriptionWithAssets,\n extendedDescription,\n headline,\n streetName,\n cityName\n } = headerData;\n\n\n const findPos = (obj) => {\n let curtop = 0;\n if (obj.offsetParent) {\n do {\n curtop += obj.offsetTop;\n } while (obj = obj.offsetParent);\n return curtop\n }\n return undefined;\n };\n\n\n const scrollToSeoText = () => {\n const seoTextElement = document.getElementById('seo-text-description');\n const topMenuHeight = document.getElementById('top-menu').offsetHeight;\n const targetTop = findPos(seoTextElement) - topMenuHeight - 100;\n scrollTo({ top: targetTop, left: document.body, behavior: \"smooth\" });\n };\n\n\n const additionalTextSalesSection = () => {\n if (subSite === 'sales') {\n switch (true) {\n case (sections[0] === 'foreclosure' && sections.length < 2):\n return 'til salg på tvangsauktion';\n break;\n case (sections[0] === 'own_use' && sections.length < 2):\n return '- brugerejendomme til salg';\n break;\n case (sections[0] === 'investment' && sections.length < 2):\n return 'til investering';\n break;\n default:\n return 'til salg'\n }\n } else {\n return null\n }\n };\n\n\n const count = (locationsCount) => {\n switch (true) {\n case locationsCount === 1:\n return \"one\";\n case locationsCount > 1 && locationsCount < 5:\n return \"few\";\n case locationsCount >= 5:\n return \"many\";\n default:\n return \"other\";\n }\n };\n\n\n const locationsKind = requestParams.kinds && requestParams.kinds.length === 1 ? '.' + requestParams.kinds[0] : '';\n const kind = I18n.t(`global.models.location.kinds${locationsKind}.normal`);\n // const currentTotalLocationsCount = totalLocationsCount || locationsCount;\n const currentTotalLocationsCount = totalLocationsCount || totalLocationsCount === 0 ? totalLocationsCount : locationsCount;\n const translatedKinds = kind[count(currentTotalLocationsCount)] ? kind[count(currentTotalLocationsCount)] : kind['other'];\n const phoneNumber = siteKey === 'global' ? contactInfoPhone : contactInfoPhoneWithoutCode;\n\n\n return (\n
\n
\n
\n
\n { headline ?\n \n
\n

\n {/*{ !(totalLocationsCount === 0) ? totalLocationsCount : locationsCount } */}\n { currentTotalLocationsCount } { showSeo } { translatedKinds }\n { additionalTextSalesSection() }\n { showSeo ? ': ' : ' ' }\n {((streetName && requestParams.street_id) ? streetName : (cityName ? cityName : (showSeo ? headline : I18n.t(`apps.lb_showroom.header.results`))))}\n

\n { !streetName && !cityName &&\n
\n { showSeo ? description : I18n.t('apps.lb_showroom.header.subheader') }\n { showSeo && (extendedDescription || (descriptionWithAssets && descriptionWithAssets.length > 0)) && (\n
\n { I18n.t('generic.read_more') }\n
\n )}\n
\n }\n
\n\n
\n
\n
\n \n \n { I18n.t(`apps.entry_page.search_area.value_points.lease.first`) }\n \n
\n\n { !contactInfoPhone &&\n
\n \n \n { I18n.t(`apps.entry_page.search_area.value_points.lease.third`) }\n \n
\n }\n\n
\n \n \n { siteKey === 'dk'\n ?
\n : I18n.t(`apps.entry_page.search_area.value_points.lease.second`, {'country_name': country})\n }\n \n
\n\n { contactInfoPhone &&\n
\n \n \n { I18n.t(`generic.call_us`) }: { phoneNumber }\n \n
\n }\n\n
\n
\n \n :

{ I18n.t('apps.lb_showroom.showroom.list.empty_search_result') }

\n }\n
\n
\n
\n
\n );\n}\n\n\nexport default ListViewHeader;\n\nListViewHeader.propTypes = {\n showSeo: PropTypes.bool,\n};\n\nListViewHeader.defaultProps = {\n showSeo: true,\n}\n","import React, { Component } from 'react';\nimport Sticky from 'react-stickynode';\n\nclass StickyFilterBar extends Component {\n\n state ={\n previousScrollY: null,\n showStickyBar: false,\n };\n\n componentDidMount() {\n this.setState({previousScrollY: window.pageYOffset})\n window.addEventListener('scroll', this.handleStickyBarRender);\n };\n\n componentDidUpdate(prevProps, prevState) {\n const { open: mapIsOpen } = this.props.mapOptions;\n\n mapIsOpen !== prevProps.mapOptions.open && !mapIsOpen && this.setState({ showStickyBar: false });\n };\n\n handleStickyBarRender = () => {\n if (!this.state.mobileFiltersOn) {\n const { previousScrollY } = this.state;\n const currentScrollY = window.pageYOffset;\n\n\n // We need this additional check for Safari and Firefox\n // to prevent appearance of Sticky-bar at the end of the page caused by overscroll\n window.pageYOffset + window.innerHeight < document.body.clientHeight &&\n this.setState({\n showStickyBar: previousScrollY > currentScrollY,\n previousScrollY: currentScrollY,\n });\n }\n };\n\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nexport default StickyFilterBar;\n","import React, { useContext, useEffect, useRef, useState, Fragment, Suspense } from 'react';\nimport \"scroll-behavior-polyfill\";\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport update from 'immutability-helper';\nimport classNames from 'classnames';\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { debounce } from \"throttle-debounce\";\n\nimport { queryParseHelper } from '../../../utils/queryParseHelper';\nimport { SvgIco } from '../../SharedComponents/Icons';\nimport { getObjectIndexInArray } from '../../helpers/array';\nimport { locationsCountByKinds } from '../../helpers/coundByKindLocation';\nimport LocationSearch from '../../LocationSearch/index';\nimport ListViewAreaSelector from '../ListViewAreaSelector';\nimport StickyFilterBar from './StickyFilterBar';\nimport { Context } from \"../index\";\n\nconst DropDownContainer = React.lazy(() => import('../../SharedComponents/DropDownContainer'));\nconst DropdownSelector = React.lazy(() => import('../DropdownSelector'));\nconst EnergyRatingFilter = React.lazy(() => import('../EnergyRatingFilter'));\nconst FacilitiesFilter = React.lazy(() => import('../FacilitiesFilter'));\nconst NoLinearRangeSlider = React.lazy(() => import('../../SharedComponents/NonLinearRangeSelector'));\nconst RangeSelector = React.lazy(() => import('../../SharedComponents/RangeSelector'));\nconst SpaceCalculator = React.lazy(() => import('../../SharedComponents/SpaceCalculator'));\nconst SuitableForFilter = React.lazy(() => import('../SuitableForFilter'));\n\nimport './index.sass';\n\n\nfunction yieldToMain () {\n return new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n}\n\n\nconst ListViewMainFilter = () => {\n\n const debounceKinds = debounce(600, (func) => {\n func();\n });\n\n const {\n areaId,\n areaType,\n filterAreas,\n filterAreaList,\n filterLocationsByPrice,\n filterLocationsBySquare,\n getInitialListLocationByDistricts,\n getEnergyRatings,\n getKinds,\n getFacilitiesList,\n getListLocationByDistrictsArea,\n getListLocationMobileFilters,\n getSuitableForKinds,\n groupedPostalDistrictsIds,\n initialPostalDistrictsIds,\n keywords,\n kindFilterToggle,\n locationKinds,\n mapMarkers,\n mapOptions,\n onlyInternalLocations,\n requestParams,\n selectedEnergyRatings,\n selectedFacilities,\n selectedSuitableFor,\n setRequestParams,\n setSelectedEnergyRatings,\n setSelectedFacilities,\n setSelectedSuitableFor,\n siteKey,\n subSite,\n suitableForStructuredTypes,\n toggleMap,\n windowWidth,\n } = useContext(Context);\n\n const {\n area_max,\n area_min,\n energy_rating,\n facilities,\n kinds,\n rent_max,\n rent_min,\n suitable_for,\n } = requestParams;\n\n const {\n apiAutocompletePath,\n countryAlpha2,\n defaultKinds,\n frontendLeasePrices,\n initialPostalDistrictIds,\n maxArea,\n newSearchAgentPath,\n provinceId,\n saleMaxPrice,\n sections,\n slidersDefaultCurrencyFormatted,\n yearlyPerM2MaxPrice,\n } = keywords;\n\n const [clearFacilities, setClearFacilities] = useState(false);\n const [clearSuitableFor, setClearSuitableFor] = useState(false);\n const [filtersMobileScroll, setFiltersMobileScroll] = useState(0);\n const [filtersModalIsOpen, setFiltersModalIsOpen] = useState(false);\n const [mobileFiltersOn, setMobileFiltersOn] = useState(false);\n const [parsedData, setParsedData] = useState([]);\n const [prevSelectedFacilities, setPrevSelectedFacilities] = useState(null);\n const [prevSelectedFilters, setPrevSelectedFilters] = useState({});\n const [selectedAreaIds, setSelectedAreaIds] = useState({});\n const [selectedMeters, setSelectedMeters] = useState({ max: Number(area_max) || 999999, min: Number(area_min) || 0 });\n const [selectedPrice, setSelectedPrice] = useState({ max: Number(rent_max) || 1000, min: Number(rent_min) || 0 });\n const [selectedTypes, setSelectedTypes] = useState([]);\n const [showApplyFiltersButton, setShowApplyFiltersButton] = useState(false);\n const [showClearFiltersButton, setShowClearFiltersButton] = useState(false);\n\n const filterWrapper = useRef();\n\n\n useEffect(() => {\n // An approach to avoid long tasks\n const tasks = [\n () => getKinds(requestParams),\n () => getEnergyRatings(requestParams),\n () => filterAreas(),\n () => getSuitableForKinds(requestParams),\n () => getFacilitiesList(requestParams),\n ];\n\n (async function saveSettings () {\n while (tasks.length > 0) {\n // Shift the first task off the tasks array:\n const task = tasks.shift();\n\n // Run the task:\n task();\n\n // Yield to the main thread:\n await yieldToMain();\n }\n })();\n }, []);\n\n\n useEffect(() => {\n window.onpopstate = () => onBackButtonEvent();\n window.addEventListener(\"orientationchange\", handleMobilesFiltersOn);\n\n return () => {\n window.removeEventListener(\"orientationchange\", handleMobilesFiltersOn);\n };\n }, []);\n\n\n useEffect(() => {\n (Number(rent_max) !== Number(selectedPrice.max) || Number(rent_min) !== Number(selectedPrice.min))\n && setSelectedPrice({ max: Number(rent_max), min: Number(rent_min) });\n }, [rent_max, rent_min]);\n\n\n useEffect(() => {\n (Number(area_max) !== Number(selectedMeters.max) || Number(area_min) !== Number(selectedMeters.min))\n && setSelectedMeters({ max: Number(area_max), min: Number(area_min) });\n }, [area_max, area_min]);\n\n\n useEffect(() => {\n setSelectedTypes(kinds\n ? kinds.map(elem => {\n const translatedKind = I18n.t(`global.models.location.kinds.${elem}.normal`);\n const name = translatedKind['one'] ? translatedKind['one'] : translatedKind;\n return { id: elem, name };\n })\n : []);\n }, [kinds]);\n\n\n useEffect(() => {\n // We need to save default data for mobile menu in case we shut down the menu without applying filters,\n // and to have an ability to compare states in order to show/not show Apply Filters Button\n if (mobileFiltersOn) {\n setPrevSelectedFilters({\n selectedTypes: JSON.parse(JSON.stringify(selectedTypes)),\n selectedAreaIds: JSON.parse(JSON.stringify(selectedAreaIds)),\n selectedPrice: JSON.parse(JSON.stringify(selectedPrice)),\n selectedMeters: JSON.parse(JSON.stringify(selectedMeters)),\n selectedEnergyRatings,\n });\n setPrevSelectedFacilities({ selectedSuitableFor, selectedFacilities });\n handleClearFiltersButton();\n }\n }, [mobileFiltersOn]);\n\n\n useEffect(() => {\n if (mobileFiltersOn) {\n handleClearFiltersButton();\n handleApplyFiltersButton();\n }\n }, [requestParams]);\n\n\n useEffect(() => {\n const newData = Object.values(filterAreaList);\n\n const filterEmptyPostalDistrict = newData.reduce((elem, currentValue) => {\n const filterByTotalSum = currentValue.postal_districts.filter(area => (area.total_sum > 0));\n const updated = {...currentValue, postal_districts: filterByTotalSum};\n elem.push(updated);\n return elem;\n }, []);\n\n const parsedData = filterEmptyPostalDistrict.map(elem => {\n const getTotalSum = elem.postal_districts.reduce((accum, currentValue) => {\n return accum + currentValue.total_sum\n }, 0);\n let added = { ...elem, count: getTotalSum };\n const { postal_districts: areas, ...rest } = added;\n return { areas, ...rest }\n });\n\n setParsedData(parsedData);\n\n if (!provinceId) {\n const selectedAllIds = parsedData.reduce((accum, currentValue) => {\n accum[currentValue.id] = currentValue.areas.map(elem => elem.id)\n return accum\n }, {});\n\n setSelectedAreaIds(selectedAllIds);\n } else {\n\n let newSelectedIds = {};\n\n parsedData.map(item => {\n const selectedIds = [];\n\n item.areas.map(area => initialPostalDistrictsIds.indexOf(area.id) >= 0 && selectedIds.push(area.id));\n\n if (selectedIds.length) newSelectedIds[item.id] = selectedIds;\n });\n\n setSelectedAreaIds(newSelectedIds);\n }\n }, [filterAreaList, initialPostalDistrictsIds]);\n\n\n const onBackButtonEvent = () => {\n const getPath = queryString.parse(window.location.search);\n const getPathBack = history.state ? queryString.parse(history.state.query) : {};\n let newRequestParams = { ...requestParams };\n\n\n let defaultParams = {\n sections: sections,\n rent_min: 0,\n rent_max: sections.includes('lease') ? yearlyPerM2MaxPrice : saleMaxPrice,\n area_min: 0,\n area_max: maxArea,\n postal_districts: initialPostalDistrictIds,\n kinds: defaultKinds,\n page: 1,\n energy_rating: [],\n };\n\n newRequestParams.postal_districts = Object.keys(initialPostalDistrictIds).reduce((acc, province) => acc.concat(initialPostalDistrictIds[province]), []);\n delete newRequestParams.suitable_for;\n delete newRequestParams.facilities;\n defaultParams = queryParseHelper(defaultParams, getPath)\n\n if (!Object.keys(getPath).length > 0) {\n newRequestParams.postal_districts = areaType === 'Province'\n ? groupedPostalDistrictsIds[areaId]\n : areaType === \"PostalDistrict\"\n ? [areaId]\n : parsedData.reduce((acc, province) => acc.concat(province.areas.map(district => district.id)), []);\n\n delete newRequestParams.suitable_for;\n delete newRequestParams.facilities;\n }\n\n newRequestParams = queryParseHelper(newRequestParams, getPathBack, true, defaultParams);\n getInitialListLocationByDistricts(newRequestParams, getPathBack.search_id, true);\n mapMarkers(newRequestParams);\n setRequestParams({ ...newRequestParams });\n\n const selectedTypes = newRequestParams.kinds\n ? mapSelectedKinds(newRequestParams.kinds.includes('cafe') ? ['store']: newRequestParams.kinds)\n : [];\n\n setSelectedTypes(selectedTypes);\n setSelectedPrice(prevData =>({ ...prevData, max: Number(newRequestParams.rent_max), min: Number(newRequestParams.rent_min) }));\n setSelectedMeters(prevData =>({ ...prevData, max: Number(newRequestParams.area_max), min: Number(newRequestParams.area_min) }));\n setSelectedEnergyRatings([ ...newRequestParams.energy_rating ]);\n };\n\n\n const mapSelectedKinds = (selectedKinds) => {\n return selectedKinds.map(elem => {\n const translatedKind = I18n.t(`global.models.location.kinds.${elem}.normal`);\n const name = translatedKind['one'] ? translatedKind['one'] : translatedKind;\n\n return { id: elem, name };\n });\n };\n\n\n const filterLocationByPrice = (price, shouldSubmit) => {\n const currentPrice = price || selectedPrice;\n\n price && setSelectedPrice(price);\n\n if (shouldSubmit) {\n // Google Analytics\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'ga4-price-filter-change',\n eventCategory: 'price-filter-change-list-view',\n eventAction: 'price-filter-change-list-view',\n });\n\n mobileFiltersOn\n ? setRequestParams(prevParams => ({ ...prevParams, rent_min: currentPrice.min, rent_max: currentPrice.max }))\n : filterLocationsByPrice(currentPrice);\n };\n };\n\n\n const filterLocationBySquare = (square, shouldSubmit) => {\n const currentSquare = square || selectedMeters;\n\n square && setSelectedMeters(square);\n\n if (shouldSubmit) {\n mobileFiltersOn\n ? setRequestParams(prevParams => ({ ...prevParams, area_min: currentSquare.min, area_max: currentSquare.max, }))\n : filterLocationsBySquare(currentSquare);\n }\n };\n\n\n const filterLocationByArea = (updatedAreas) => {\n const newSelectedAreasIds = [];\n\n setSelectedAreaIds(updatedAreas);\n Object.keys(updatedAreas).map(elem => updatedAreas[elem].map(item => newSelectedAreasIds.push(item)));\n mobileFiltersOn\n ? setRequestParams(prevParams => ({ ...prevParams, postal_districts: newSelectedAreasIds }))\n : getListLocationByDistrictsArea(newSelectedAreasIds);\n };\n\n\n const selectType = (e, item) => {\n const index = getObjectIndexInArray(selectedTypes, 'id', item.id);\n const typeIsSelected = (index >= 0);\n const newRequestParams = { ...requestParams };\n const newSelectedTypes = typeIsSelected ? update(selectedTypes, {$splice: [[index, 1]] }) : update(selectedTypes, {$push: [item]});\n\n setSelectedTypes(newSelectedTypes);\n\n const filterKinds = () => {\n const suitableForTypesAreSelected = newSelectedTypes.some(type =>\n type.id === 'office' || type.id === 'warehouse' || type.id === 'coworking' || type.id === 'store' || type.id === 'business_center'\n );\n\n if (newSelectedTypes && newSelectedTypes.length && requestParams.suitable_for && suitableForTypesAreSelected) {\n let newSuitableForList = [];\n let sortedSuitableForByKinds = [];\n\n newSelectedTypes\n .map(type =>\n suitableForStructuredTypes[type.id] && suitableForStructuredTypes[type.id].map(suitableForKind =>\n !sortedSuitableForByKinds.includes(suitableForKind) && sortedSuitableForByKinds.push(suitableForKind))\n );\n\n newSuitableForList = requestParams.suitable_for.filter(elem => sortedSuitableForByKinds.includes(elem));\n setRequestParams(prevParams => ({ ...prevParams, suitable_for: newSuitableForList }));\n newRequestParams.suitable_for = newSuitableForList;\n setSelectedSuitableFor(newSuitableForList);\n };\n\n\n // In case last of the suitable_for type is deleted while there are others selected\n if (!suitableForTypesAreSelected && requestParams.suitable_for && requestParams.suitable_for.length && newSelectedTypes.length > 0) {\n setRequestParams(prevParams => ({ ...prevParams, suitable_for: [] }));\n delete newRequestParams.suitable_for;\n setSelectedSuitableFor([]);\n }\n\n !mobileFiltersOn && kindFilterToggle(newSelectedTypes, newRequestParams);\n setRequestParams(prevParams => ({ ...prevParams, kinds: newSelectedTypes.map(elem => elem.id) }));\n newRequestParams.kinds = newSelectedTypes.map(elem => elem.id);\n };\n\n // Debounce kinds filtering on desktop to prevent unnecessary requests and rendering in case of multiple kinds selection\n mobileFiltersOn ? filterKinds() : debounceKinds(() => filterKinds());\n };\n\n\n const toggleAreaSelect = (parentID, areaID) => {\n let selectedAreas = { ...selectedAreaIds };\n let selectedProvince = selectedAreas[parentID];\n\n selectedProvince\n ? (selectedProvince.indexOf(areaID) >= 0 ? selectedProvince.splice(selectedProvince.indexOf(areaID), 1) : selectedProvince.push(areaID))\n : selectedAreas[parentID] = [areaID];\n\n selectedAreas[parentID].length === 0 && delete selectedAreas[parentID];\n filterLocationByArea(selectedAreas);\n };\n\n\n const selectAll = (province, parsedData) => {\n let selectedAreas = { ...selectedAreaIds };\n\n parsedData.forEach(section => {\n if(section.id === province.id) {\n selectedAreas[province.id] = section.areas.map(area => area.id);\n }\n });\n\n filterLocationByArea(selectedAreas);\n };\n\n\n const deselectAll = (parentID) => {\n let selectedAreas = { ...selectedAreaIds };\n\n delete selectedAreas[parentID];\n filterLocationByArea(selectedAreas);\n };\n\n\n const handleMobilesFiltersOn = () => {\n setTimeout(() => {\n if (window.innerWidth > 992 && mobileFiltersOn) {\n toggleMobileFilters(false);\n }\n }, 1);\n };\n\n\n const handleMobilesFiltersSubmit = () => {\n setMobileFiltersOn(false);\n setShowApplyFiltersButton(false);\n document.getElementById('top-menu').classList.remove('hidden');\n enableBodyScroll(document.getElementById('filtersWrapper'));\n getListLocationMobileFilters();\n setSelectedFacilities(facilities || []);\n setSelectedSuitableFor(suitable_for || [])\n window.scroll({ top: 0, behavior: 'smooth' });\n };\n\n\n const toggleMobileFilters = (open) => {\n // we take this element before user close mobile filter because after react don't render it and it will be null\n const removeScrollListenerElement = document.getElementById('filtersWrapper');\n const filtersWrapper = document.getElementById('filtersWrapper');\n const mobileFiltersOnState = open;\n\n setMobileFiltersOn(mobileFiltersOnState);\n\n if (mobileFiltersOnState) {\n document.getElementById('top-menu').classList.add('hidden');\n disableBodyScroll(filtersWrapper);\n\n // Google Analytics\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'ga4-filters-toggle',\n eventCategory: 'filters-toggle-list-view',\n eventAction: 'filters-toggle-list-view',\n });\n } else {\n setShowApplyFiltersButton(false);\n\n const selectedAreasIds = [];\n\n prevSelectedFilters.selectedAreaIds && Object.keys(prevSelectedFilters.selectedAreaIds)\n .map(elem => prevSelectedFilters.selectedAreaIds[elem].map(item => selectedAreasIds.push(item)));\n\n const prevParams = {\n ...requestParams,\n sections: keywords.sections,\n rent_min: prevSelectedFilters.selectedPrice.min,\n rent_max: prevSelectedFilters.selectedPrice.max,\n area_min: prevSelectedFilters.selectedMeters.min,\n area_max: prevSelectedFilters.selectedMeters.max,\n postal_districts: selectedAreasIds,\n kinds: prevSelectedFilters.selectedTypes.map(type => type.id),\n suitable_for: prevSelectedFacilities.selectedSuitableFor,\n facilities: prevSelectedFacilities.selectedFacilities,\n energy_rating: prevSelectedFilters.selectedEnergyRatings,\n };\n\n setRequestParams(prevState => ({ ...prevState, ...prevParams }));\n setSelectedFacilities(facilities || []);\n setSelectedSuitableFor(suitable_for || []);\n document.getElementById('top-menu').classList.remove('hidden');\n enableBodyScroll(removeScrollListenerElement);\n }\n };\n\n\n const handleClearFilters = () => {\n const defaultParams = {\n ...requestParams,\n sections: sections,\n rent_min: 0,\n rent_max: sections.includes('lease') ? yearlyPerM2MaxPrice : saleMaxPrice,\n area_min: 0,\n area_max: maxArea,\n postal_districts: [],\n kinds: [],\n suitable_for: [],\n facilities: [],\n energy_rating: [],\n };\n\n setSelectedMeters({ min: 0, max: maxArea });\n setSelectedPrice({ min: 0, max: sections.includes('lease') ? yearlyPerM2MaxPrice : saleMaxPrice });\n setSelectedTypes([]);\n setSelectedAreaIds({});\n setRequestParams(prevParams => ({ ...prevParams, ...defaultParams }));\n setClearFacilities(prevState => !prevState);\n setClearSuitableFor(prevState => !prevState);\n };\n\n\n // For Clear Filters button, show if any filter is selected\n const handleClearFiltersButton = () => {\n const showClearFiltersButton = !!(\n selectedTypes.length\n || energy_rating.length\n || Object.keys(selectedAreaIds).length\n || selectedPrice.min > 0\n || selectedPrice.max !== (sections.includes('lease') ? yearlyPerM2MaxPrice : saleMaxPrice)\n || selectedMeters.min > 0\n || selectedMeters.max !== maxArea\n || (suitable_for && suitable_for.length)\n || (facilities && facilities.length));\n\n setShowClearFiltersButton(showClearFiltersButton);\n };\n\n\n // For apply filters button, show if there is any difference between before-opening chosen filters and current\n const handleApplyFiltersButton = () => {\n const selectedAreas = [];\n const prevSelectedAreas = [];\n const suitableFor = suitable_for || [];\n const currentFacilities = facilities || [];\n const selectedEnergyRatings = energy_rating;\n\n Object.keys(selectedAreaIds).map(elem => selectedAreaIds[elem].map(item => selectedAreas.push(item)));\n prevSelectedFilters.selectedAreaIds && Object.keys(prevSelectedFilters.selectedAreaIds).map(elem => prevSelectedFilters.selectedAreaIds[elem].map(item => prevSelectedAreas.push(item)));\n\n const showApplyFiltersButton = !(\n selectedTypes.length === prevSelectedFilters.selectedTypes.length\n && selectedTypes.every(type => prevSelectedFilters.selectedTypes.find(prevType => prevType.id === type.id))\n && selectedAreas.length === prevSelectedAreas.length\n && selectedAreas.every(area => prevSelectedAreas.indexOf(area) >= 0)\n && selectedPrice.min === prevSelectedFilters.selectedPrice.min\n && selectedPrice.max === prevSelectedFilters.selectedPrice.max\n && selectedMeters.min === prevSelectedFilters.selectedMeters.min\n && selectedMeters.max === prevSelectedFilters.selectedMeters.max\n && suitableFor.length === prevSelectedFacilities.selectedSuitableFor.length\n && suitableFor.every(suitableFor => prevSelectedFacilities.selectedSuitableFor.indexOf(suitableFor) >= 0)\n && currentFacilities.length === prevSelectedFacilities.selectedFacilities.length\n && currentFacilities.every(facility => prevSelectedFacilities.selectedFacilities.indexOf(facility) >= 0)\n && selectedEnergyRatings.length === prevSelectedFilters.selectedEnergyRatings.length\n && selectedEnergyRatings.every(rating => prevSelectedFilters.selectedEnergyRatings.indexOf(rating) >= 0)\n );\n\n setShowApplyFiltersButton(showApplyFiltersButton);\n };\n\n\n const openFiltersModal = () => {\n setFiltersModalIsOpen(true);\n window.addEventListener('click', handleClickOutside);\n document.body.classList.toggle('modal-open');\n\n // Google Analytics\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'ga4-filters-toggle',\n eventCategory: 'filters-toggle-list-view',\n eventAction: 'filters-toggle-list-view',\n });\n };\n\n\n const closeFiltersModal = () => {\n setFiltersModalIsOpen(false);\n window.removeEventListener('click', handleClickOutside);\n document.body.classList.toggle('modal-open');\n };\n\n\n const handleClickOutside = (e) => {\n if (filterWrapper && filterWrapper.current) {\n const target = e.target;\n const isModal = filterWrapper.current.contains(target);\n const filterToggle = document.getElementById('filterToggle');\n const isFilterButton = filterToggle === target || filterToggle.contains(target);\n\n !isModal && !isFilterButton && closeFiltersModal();\n }\n };\n\n\n const setSearchAgentUrl = () => {\n const getPath = queryString.parse(window.location.search);\n const { area_max, area_min, rent_max, rent_min, search_id } = getPath;\n const currentKinds = mobileFiltersOn ? (prevSelectedFilters && prevSelectedFilters.selectedTypes && prevSelectedFilters.selectedTypes) || null : selectedTypes;\n\n const searchAgentDefaultParams = {\n area_max,\n area_min,\n rent_max,\n rent_min,\n ['kinds[]']: (currentKinds && Object.keys(currentKinds).length && currentKinds.map(type => type.id)) || null ,\n };\n\n search_id && (searchAgentDefaultParams.search_id = search_id);\n subSite === 'sales' && sections.length < 3 && (searchAgentDefaultParams['sections[]'] = sections);\n\n const searchAgentParams = Object.fromEntries(Object.entries(searchAgentDefaultParams).filter(([key, value]) => !!value));\n const searchAgentQueryString = new URLSearchParams(searchAgentParams).toString();\n\n return searchAgentQueryString ? `${subSite === 'sales' ? '&' : '?'}${searchAgentQueryString}` : '';\n };\n\n\n const handleMobileScroll = () => {\n const modalFiltersWrapper = document.getElementById('mobile-filters-scroll-target');\n const rect = modalFiltersWrapper && modalFiltersWrapper.getBoundingClientRect();\n const wrapperTop = rect && rect.top;\n\n rect && setFiltersMobileScroll(wrapperTop);\n };\n\n\n // const disableMap = onlyInternalLocations && (siteKey === 'dk' || countryAlpha2 === 'dk');\n const mapIsOpen = mapOptions.open;\n const maxPrice = sections[0] === 'lease' ? yearlyPerM2MaxPrice : saleMaxPrice;\n const mainFilterClasses = classNames('main-filter', { 'main-filter--top': mapIsOpen });\n const filtersWrapperClasses = classNames('lv-filter__filters-wrapper', { 'mobile-active': mobileFiltersOn }, { 'with-button': showApplyFiltersButton });\n const isUsa = countryAlpha2 === 'us';\n const areaFilterIcon = isUsa ? 'area_ft2' : 'area_m2';\n const areaUnit = isUsa ? 'ft²' : 'm²';\n const areaFilterTitle = isUsa ? I18n.t('apps.list_view.filter.area.title.ft2') : I18n.t('apps.list_view.filter.area.title.m2');\n const areaFilterText = isUsa ? I18n.t('apps.list_view.filter.area.text.ft2') : I18n.t('apps.list_view.filter.area.text.m2');\n const isMobileMenu = windowWidth < 992;\n const selectedPriceTooltip = frontendLeasePrices && (selectedPrice.min > 0 || selectedPrice.max !== maxPrice) && `${selectedPrice.min} - ${selectedPrice.max} ${slidersDefaultCurrencyFormatted}`;\n const selectedSizeTooltip = (selectedMeters.min > 0 || selectedMeters.max !== maxArea)\n && `${selectedMeters.min} - ${selectedMeters.max} m², ${Math.round(selectedMeters.min / 15)} - ${Math.round(selectedMeters.max / 15)} ${I18n.t('search_agent.configuration.employees.selector_currency')}`;\n\n let duplicateParsedData = JSON.parse(JSON.stringify(parsedData));\n let selectedKinds = requestParams.kinds;\n const hideSquareFilter = selectedKinds && selectedKinds.length === 1 && selectedKinds[0] === 'parking';\n const showOfficeSpaceCalculator = siteKey === 'dk' && (selectedKinds.length === 0 || selectedKinds.includes('office'));\n\n selectedKinds === undefined || selectedKinds.length === 0\n ? parsedData.map(elem => elem.count = elem.areas.reduce((accum, currentValue) => accum+currentValue.total_sum, 0))\n : duplicateParsedData.map(elem => {\n elem.areas.map(elem => elem.total_sum = locationsCountByKinds(selectedKinds, elem.sums));\n elem.count = elem.areas.reduce((accum, currentValue) => accum + currentValue.total_sum, 0);\n return elem;\n });\n\n\n return (\n
\n \n
\n
\n
\n
\n
\n\n
\n \n
\n\n
\n
\n selectAll(e, duplicateParsedData)}\n />\n
\n\n
\n
toggleMobileFilters(true) : openFiltersModal}>\n
\n \n

{ I18n.t('properties.filter.tab_toggle_button') }

\n
\n
\n\n { showOfficeSpaceCalculator &&\n \n \n \n }\n
\n\n { ((onlyInternalLocations && mapIsOpen) || !onlyInternalLocations) &&\n
\n { mapIsOpen\n ? \n : \n }\n

{ mapIsOpen ? 'List' : I18n.t(\"lb_showroom.showroom.list.map\") }

\n
\n }\n\n
\n
\n
\n
\n
\n
\n
\n\n { (filtersModalIsOpen || mobileFiltersOn) &&\n\n
\n
\n
\n toggleMobileFilters(false) : () => closeFiltersModal}\n size={isMobileMenu ? 24 : 32}\n />\n
{ I18n.t('properties.filter.tab_toggle_button') }
\n { showClearFiltersButton &&\n
\n { I18n.t('apps.lb_showroom.filters.clear_filters') }\n
\n }\n
\n\n
\n\n \n
\n
\n }>\n\n
\n \n
\n\n setClearSuitableFor(prevState => !prevState)}\n />\n\n
\n selectAll(e, duplicateParsedData)}\n />\n
\n\n { frontendLeasePrices\n ?
\n \n \n \n
\n : null\n }\n\n { !hideSquareFilter &&\n
\n\n \n
\n

{areaFilterTitle}

\n \n
\n\n
\n

{ I18n.t('activemodel.attributes.service_request.employee_count') }

\n
{areaFilterText}
\n\n \n
\n \n
\n }\n\n
\n\n \n\n setClearFacilities(prevState => !prevState)}\n />\n\n\n { mobileFiltersOn &&\n \n \n\n { showApplyFiltersButton &&\n
\n
\n \n { I18n.t('lb_showroom.showroom.list.apply_filters') }\n
\n
\n }\n
\n }\n
\n\n
\n
\n
\n
\n }\n
\n );\n};\n\nListViewMainFilter.propTypes = {\n requestedParams: PropTypes.oneOfType([PropTypes.object]),\n};\n\nListViewMainFilter.defaultProps = {\n requestParams: {}\n};\n\nexport default React.memo(ListViewMainFilter);\n","import React, { Suspense, useContext, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport Select from \"react-select\";\nimport Switch from \"react-switch\";\nimport { isMobileOnly } from 'react-device-detect';\nimport 'react-dropdown/style.css';\n\nimport { SvgIco } from '../../SharedComponents/Icons';\nimport { Context } from \"../index\";\n\nimport './index.sass';\n\n\nconst ListViewSortBar = () => {\n\n const {\n changePerPage,\n keywords,\n listViewAsList,\n mapOptions,\n onlyInternalLocations,\n requestParams,\n section,\n setListViewAsList,\n // siteKey,\n sortLocationsBy,\n tawkIsLoaded,\n toggleMap,\n } = useContext(Context);\n\n const { kinds: selectedKinds, per_page: perPage, sort_by: sortBy } = requestParams;\n const { countryAlpha2, frontendLeasePrices, } = keywords;\n\n // const disableMap = onlyInternalLocations && (siteKey === 'dk' || countryAlpha2 === 'dk');\n const listViewSwitcherClasses = classNames(\"sort-bar__layout-switcher-pill\", { \"active\": listViewAsList });\n const gridViewSwitcherClasses = classNames(\"sort-bar__layout-switcher-pill\", { \"active\": !listViewAsList });\n const mapIsOpen = mapOptions.open;\n\n const quantityOptions = [\n {value: \"12\", label:`12 ${ I18n.t('lb_showroom.showroom.list.per_page') }`},\n {value: \"30\", label:`30 ${ I18n.t('lb_showroom.showroom.list.per_page') }`},\n {value: \"60\", label:`60 ${ I18n.t('lb_showroom.showroom.list.per_page') }`},\n {value: \"90\", label:`90 ${ I18n.t('lb_showroom.showroom.list.per_page') }`},\n ];\n\n const sortTypeOptions = [\n {value: 'created_at|desc', label: I18n.t('generic.date')},\n {value: 'area_from|asc', label: `${I18n.t('generic.area')}, ${I18n.t('generic.low_to_high')}`},\n {value: 'area_from|desc', label: `${I18n.t('generic.area')}, ${I18n.t('generic.high_to_low')}`},\n {value: 'address_line_1|asc', label: `${I18n.t('generic.address')} ${I18n.t('generic.alphabet_order')}`},\n {value: 'address_line_1|desc', label: `${I18n.t('generic.address')} ${I18n.t('generic.alphabet_order_reverse')}`},\n {value: 'virtual_tour|desc', label:I18n.t('locations.scores.virtual_tour')},\n {value: 'energy_rating|asc', label: `${I18n.t('activerecord.attributes.property.energy_rating')}, A -> G`},\n {value: 'energy_rating|desc', label: `${I18n.t('activerecord.attributes.property.energy_rating')}, G -> A`},\n {value: 'score|desc', label:I18n.t('locations.sort_by.score'), className: !selectedSortType ? ' is-selected' : '' },\n ];\n\n const sortingPriceFieldName = section === 'lease' ? 'yearly_rent_per_m2_amount_from' : 'sale_price';\n\n frontendLeasePrices && sortTypeOptions.splice(3, 0,\n {value: sortingPriceFieldName + '|asc', label: `${I18n.t('generic.price')}, ${I18n.t('generic.low_to_high')}`},\n {value: sortingPriceFieldName + '|desc', label: `${I18n.t('generic.price')}, ${I18n.t('generic.high_to_low')}`},\n );\n\n const [selectedSortType, setSelectedSortType] = useState(sortBy ? sortTypeOptions.filter(option => sortBy === option.value)[0] : sortTypeOptions[0]);\n const [selectedPerPage, setSelectedPerPage] = useState(perPage ? quantityOptions.filter(option => option.value === perPage)[0] : quantityOptions[0]);\n\n\n useEffect(() => {\n // need to rewrite and remove react-select\n const perPageLabel = document.createElement(\"P\");\n const perPageLabelContent = document.createTextNode(`${I18n.t('views.locations.show.per_page_label')}:`);\n const sortByLabel = document.createElement(\"P\");\n const sortByLabelContent = document.createTextNode(`${I18n.t('lb_showroom.showroom.list.sort_by')}:`);\n\n perPageLabel.appendChild(perPageLabelContent);\n document.querySelector('.per-page__control').insertBefore(perPageLabel, document.querySelector('.per-page__control').childNodes[0]);\n\n sortByLabel.appendChild(sortByLabelContent);\n document.querySelector('.sort-by__control').insertBefore(sortByLabel, document.querySelector('.sort-by__control').childNodes[0]);\n }, []);\n\n\n useEffect(() => {\n sortBy !== selectedSortType.value && setSelectedSortType(sortBy ? sortTypeOptions.filter(option => sortBy === option.value)[0] : sortTypeOptions[0]);\n }, [sortBy]);\n\n useEffect(() => {\n perPage !== selectedSortType.value && setSelectedPerPage(perPage ? quantityOptions.filter(option => option.value === perPage)[0] : quantityOptions[0]);\n }, [perPage]);\n\n\n useEffect(() => {\n // remove-tawk-chat-when-open-map\n if (tawkIsLoaded) {\n // In case there's going to be a problem with API or internet\n // to avoid main thread overwork\n let counter = 200;\n\n (function toggleTawk() {\n try {\n if (Tawk_API.onLoaded) {\n mapIsOpen ? Tawk_API.hideWidget() : Tawk_API.showWidget();\n } else {\n if (counter !== 0) {\n counter = --counter;\n setTimeout(toggleTawk, 100);\n }\n }\n } catch (error) {\n if (counter !== 0) {\n counter = --counter;\n setTimeout(toggleTawk, 100);\n }\n }\n })();\n }\n }, [tawkIsLoaded]);\n\n\n const handleListView = () => {\n setListViewAsList(true);\n localStorage && localStorage.setItem('viewedAsList', 'true');\n };\n\n\n const handleGridView = () => {\n setListViewAsList(false);\n localStorage && localStorage.setItem('viewedAsList', 'false');\n };\n\n\n const changeSortType = (e) => {\n setSelectedSortType(sortTypeOptions.filter(option => e.value === option.value)[0]);\n sortLocationsBy(e.value);\n };\n\n\n const handleChangePerPage = (e) => {\n setSelectedPerPage(quantityOptions.filter(option => option.value === e.value)[0]);\n changePerPage(e.value);\n };\n\n\n const selectedSortTypeOption = () => {\n // To prevent page fall in case sort decrease change in url string\n const strictSelectedOption = sortTypeOptions.filter(option => selectedSortType === option.value);\n const selectedSortTypeValue = selectedSortType && selectedSortType.value;\n\n if (strictSelectedOption.length) {\n return strictSelectedOption[0];\n } else {\n const optionalSelect = sortTypeOptions.filter(option => option.value.includes(selectedSortTypeValue.slice(0, selectedSortTypeValue.indexOf('|'))));\n return optionalSelect.length ? optionalSelect[0] : null;\n }\n };\n\n\n const defaultSortType = (selectedSortType && selectedSortTypeOption()) || sortTypeOptions[sortTypeOptions.length - 1];\n const defaultQuantity = perPage ? quantityOptions.filter(option => option.value === perPage)[0] : quantityOptions[0];\n\n\n return (\n
\n
\n
\n { !isMobileOnly && !mapIsOpen &&\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
\n
\n\n { ((onlyInternalLocations && mapIsOpen) || !onlyInternalLocations) &&\n
\n \n
\n }\n
\n
\n
\n
\n );\n};\n\n\nexport default ListViewSortBar;\n","import React, { Fragment, Suspense, useContext, useEffect, useState } from 'react';\nimport ReactPaginate from 'react-paginate';\nimport { debounce } from 'throttle-debounce';\nimport { isMobileOnly } from 'react-device-detect';\n\nimport { SvgIco } from '../../SharedComponents/Icons';\nimport { Context } from \"../index\";\n\nimport './index.sass';\n\nconst MapSection = React.lazy(() => import('../MapSection'));\nconst GridViewItemList = React.lazy(() => import('../GridViewItem/GridViewItemList'));\nconst ListViewItemsList = React.lazy(() => import('../ListViewItems/ListViewItemsList'));\n\n\nconst SortComponent = () => {\n\n const {\n changePage,\n hoveredLocationId,\n isLoaded,\n keywords,\n listViewAsList,\n locationsByPostalDistricts,\n mapOptions,\n nearbyLocationsLimit,\n requestParams,\n serverErrorListView,\n setHoveredLocationId,\n totalLocationsCount,\n windowWidth,\n } = useContext(Context);\n\n const [showBottomPagination, setShowBottomPagination] = useState(false);\n\n const { newSearchAgentPath } = keywords;\n\n\n useEffect(() => {\n window.addEventListener('scroll', debounce(15, () => handleBottomPagination()));\n }, []);\n\n\n const handleBottomPagination = () => {\n const paginationElem = document.getElementById('main-pagination');\n const paginationBottom = paginationElem && paginationElem.getBoundingClientRect().bottom;\n const currentScreenTop = window.screenTop;\n\n currentScreenTop > paginationBottom\n ? setShowBottomPagination(true)\n : setShowBottomPagination(false);\n };\n\n\n const handlePageClick = (data) => {\n changePage(data.selected + 1);\n setTimeout(() => window.scrollTo(0, 0), 10);\n };\n\n\n const generatePaginationLink = (page) => {\n const { origin, pathname } = window.location;\n\n return `${origin}${pathname}${page > 1 ? `?page=${page}` : ''}`;\n };\n\n\n const defaultItemsPerPage = 12;\n const mapIsOpen = mapOptions.open;\n const mapLoaded = mapOptions.loaded;\n const perPage = requestParams.per_page ? requestParams.per_page : defaultItemsPerPage;\n const initialPage = requestParams.page ? (Number(requestParams.page) - 1) : 1;\n const showPagination = locationsByPostalDistricts && locationsByPostalDistricts.length > 0 && totalLocationsCount + nearbyLocationsLimit > perPage;\n const mapClass = `list-view-map ${ mapOptions.root } ${mapIsOpen ? 'col-12 col-lg-4' : 'hidden'}`;\n const styles = {\n spinnerMargin: !listViewAsList ? { paddingBottom: '30px' } : null,\n containerMargin: (listViewAsList && showPagination) ? { marginTop: '32px' } : {marginTop: '64px'}\n };\n\n const SkeletonLoader = ({ className, count }) =>\n
\n { Array.apply('test', Array(count)).map((elem, index) =>\n
\n )}\n
;\n\n\n const skeletonGridViewLoader =\n
\n
\n { Array.apply('test', Array(perPage)).map((key, index) =>\n
\n \n
\n )}\n
\n
;\n\n\n const skeletonListViewLoader =\n
\n { Array.apply('test', Array(perPage)).map((key, index) =>\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n )}\n
;\n\n\n const locationsAsGrid =\n \n \n ;\n\n\n const locationsAsList =\n \n { windowWidth >= 768\n ? \n \n \n : locationsAsGrid\n }\n ;\n\n\n const pagination = showPagination &&\n
\n }\n previousLabel={}\n onPageChange={handlePageClick}\n pageCount={Math.ceil((totalLocationsCount + nearbyLocationsLimit) / perPage)}\n pageRangeDisplayed={isMobileOnly ? 1 : 2}\n hrefBuilder={(page) => generatePaginationLink(page)}\n />\n
;\n\n\n return (\n
\n\n
\n\n { isLoaded\n ? ( locationsByPostalDistricts.length\n ?\n ( listViewAsList && !mapIsOpen ? locationsAsList : locationsAsGrid )\n :\n
\n
\n

{ I18n.t('apps.lb_showroom.seach_area.no_results_title') }

\n

\n

\n
\n )\n : ( serverErrorListView\n ?\n

\n { serverErrorListView === 'server'\n ? I18n.t('generic.network-error')\n : I18n.t('generic.internet-issue-error')\n }\n \n { I18n.t('general.refresh-page') }\n \n

\n : !listViewAsList && !mapIsOpen\n ? skeletonGridViewLoader\n : skeletonListViewLoader\n )\n }\n\n
\n { pagination }\n
\n\n { showBottomPagination && !mapIsOpen && showPagination &&\n
\n { pagination }\n
\n }\n
\n\n { (mapIsOpen || mapLoaded) &&\n
\n \n
\n
\n }>\n \n
\n
\n }\n\n
\n )\n};\n\n\nexport default SortComponent;\n","export const advertBannersData = {\n searchAgent: {\n advertisement: true,\n search_agent: true,\n image_text: I18n.t('list-view.advertisement.create-text'),\n image_text_bottom: I18n.t('list-view.advertisement.search_agent'),\n title: I18n.t('list-view.advertisement.search_agent-main-title'),\n description: I18n.t('list-view.advertisement.search_agent-description'),\n text_above_button: I18n.t('list-view.advertisement.search_agent_above_button'),\n text_on_button: I18n.t('search_agents.edit.create_search_agent'),\n id: 2147483646,\n },\n signUp: {\n advertisement: true,\n search_agent: false,\n image_text: I18n.t('list-view.advertisement.list_your_office'),\n image_text_bottom: I18n.t('list-view.advertisement.match_office'),\n title: I18n.t('list-view.advertisement.provider-main-title'),\n description: I18n.t('list-view.advertisement.provider-description'),\n text_above_button: I18n.t('list-view.advertisement.provider_above_button'),\n text_on_button: I18n.t('apps.entry_page.entry_pages.become_provider_text.become_provider_now'),\n id: 2147483647,\n },\n}\n","import React, { createContext, useEffect, useState, Suspense } from 'react';\nimport queryString from 'query-string';\nimport smoothscroll from 'smoothscroll-polyfill';\nimport PropTypes from \"prop-types\";\n\nimport { queryParseHelper } from '../../utils/queryParseHelper';\nimport httpService, { requestBuilder } from \"../../api/httpService\";\nimport { apiProvider } from \"../../api/core\";\nimport { queryBuilder } from \"../../utils/urlQueryBuilder\";\nimport { checkOrderedLocation } from \"../helpers/checkOrderedLocation\";\nimport { loadTawkTo } from \"../TawkTo/TawkTo\";\nimport SearchAgent from \"../EntryPage/SearchAgent\";\nimport { ToTheTopBtn } from \"../SharedComponents/Buttons\";\nimport FAQSection from \"../SharedComponents/FAQSection\";\nimport PopularAreas from \"../SharedComponents/PopularAreas\";\nimport Breadcrumb from \"../Breadcrumb\";\nimport BottomSeo from \"./BottomSeo\";\nimport ListViewHeader from \"./ListViewHeader\";\nimport ListViewMainFilter from \"./ListViewMainFilter\";\nimport ListViewSortBar from \"./ListViewSortBar\";\nimport SortComponent from \"./SortComponent\";\nimport { advertBannersData } from './data';\n\nimport '../SharedComponents/TrustLogos.sass';\nimport './index.sass';\n\n\nconst ViewedLocations = React.lazy(() => import('./ViewedLocations'));\n\nexport const Context = createContext({});\n\n\n/* <----------------------- WHY-DID-YOU-RENDER - REACT DEBUGGER\n(uncomment & copy => \"static whyDidYouRender = true;\" to the child component after state to see logs in console) */\n\n/* if (process.env.NODE_ENV !== 'production') {\n const whyDidYouRender = require('@welldone-software/why-did-you-render');\n whyDidYouRender(React, {\n // include: [/^pure/, /^Connect/, /^ConnectFunction/],\n // onlyLogs: true,\n titleColor: \"green\",\n diffNameColor: \"aqua\",\n logOnDifferentValues: true\n });\n} */\n\n// ------------------------------------------------>\n\nlet controller = null;\nlet signal = null;\n\n\nconst ListView = (props) => {\n\n const {\n breadcrumbs,\n headerContent,\n isRequestFromPrerender,\n keywords,\n popularDistricts,\n providersPage,\n richSnippetQuestions,\n siteKey,\n streetId\n } = props;\n\n const {\n countryAlpha2,\n defaultKinds,\n geoName,\n initialFacilities,\n initialPostalDistrictIds,\n initialSuitableForKinds,\n locationsFacilitiesPath,\n locationServiceUrl,\n locationsSuitableForKindsPath,\n locationsKindsUrl,\n locationsMapMarkersUrl,\n maxArea,\n newSearchAgentPath,\n postalDistrictServiceUrl,\n providerInfo,\n locationInfo,\n saleMaxPrice,\n sections,\n yearlyPerM2MaxPrice,\n } = keywords;\n\n const [comparableLocations, setComparableLocations] = useState({});\n const [headerData, setHeaderData] = useState({ ...headerContent, headline: geoName });\n const [energyRatings, setEnergyRatings] = useState([]);\n const [facilitiesList, setFacilitiesList] = useState([]);\n const [favouriteLocationsIds, setFavouriteLocationsIds] = useState([]);\n const [filterAreaList, setFilterAreaList] = useState([]);\n const [hoveredLocationId, setHoveredLocationId] = useState(null);\n const [initialKinds, setInitialKinds] = useState([]);\n const [initialPostalDistrictsIds, setInitialPostalDistrictsIds] = useState([]);\n const [isLoaded, setIsLoaded] = useState(false);\n const [listViewAsList, setListViewAsList] = useState(window.innerWidth >= 768);\n const [locationKinds, setLocationKinds] = useState([]);\n const [locationsByPostalDistricts, setLocationsByPostalDistricts] = useState([]);\n const [mapOptions, setMapOptions] = useState({ open: false, root: '', loaded: false });\n const [markersArray, setMarkersArray] = useState([]);\n const [nearbyLocationsLimit, setNearbyLocationsLimit] = useState(0);\n const [nearestSearchId, setNearestSearchId] = useState(null);\n const [onlyInternalLocations, setOnlyInternalLocations] = useState(true);\n const [orderedLocations, setOrderedLocations] = useState([]);\n const [preventRequestOnDragEnd, setPreventRequestOnDragEnd] = useState(true);\n const [selectedEnergyRatings, setSelectedEnergyRatings] = useState([]);\n const [selectedFacilities, setSelectedFacilities] = useState([]);\n const [selectedSuitableFor, setSelectedSuitableFor] = useState([]);\n const [serverErrorListView, setServerErrorListView] = useState('');\n const [showSeo, setShowSeo] = useState(true);\n // const [showSearchButton, setShowSearchButton] = useState(true);\n const [suitableForList, setSuitableForList] = useState([]);\n const [tawkIsLoaded, setTawkIsLoaded] = useState(false);\n const [totalLocationsCount, setTotalLocationsCount] = useState('');\n const [viewedLocations, setViewedLocations] = useState([]);\n const [windowWidth, setWindowWidth] = useState(window.innerWidth);\n\n const [requestParams, setRequestParams] = useState({\n initial_postal_district_id: headerContent.initialPostalDistrictId,\n initial_province_id: headerContent.initialProvinceId,\n sections,\n rent_min: 0,\n rent_max: sections.includes('lease') ? yearlyPerM2MaxPrice : saleMaxPrice,\n area_min: 0,\n area_max: maxArea,\n postal_districts: Object.keys(initialPostalDistrictIds).reduce((acc, province) => acc.concat(initialPostalDistrictIds[province]), []),\n page: 1,\n area_max_default: maxArea,\n rent_max_default: sections.includes('lease') ? yearlyPerM2MaxPrice : saleMaxPrice,\n kinds: defaultKinds || [],\n country_alpha2: countryAlpha2,\n uri_kind: defaultKinds[0] || '',\n energy_rating: [],\n });\n\n const suitableForStructuredTypes = {\n office: [ 'cafe', 'clinic', 'education', 'high_ceiling_storage', 'popup_store', 'production', 'showroom', 'storage_hotel', 'workshop' ],\n warehouse: [ 'clinic', 'education', 'high_ceiling_storage', 'popup_store', 'production', 'showroom', 'storage_hotel', 'workshop' ],\n coworking: [ 'clinic', 'education', 'production', 'showroom', 'storage_hotel', 'workshop' ],\n store: [ 'cafe', 'clinic', 'education', 'hair_salon', 'popup_store', 'showroom' ],\n business_center: [ 'clinic', 'education', 'popup_store', 'showroom' ],\n };\n\n const section = sections.includes('lease') ? 'lease' : 'sale';\n\n\n useEffect(() => {\n const getPath = queryString.parse(window.location.search);\n const searchId = queryString.parse(window.location.search).search_id;\n let newRequestParams = { ...requestParams };\n\n streetId && (newRequestParams.street_id = streetId);\n providerInfo && (newRequestParams.provider_id = providerInfo.providerId);\n locationInfo && (newRequestParams.location_id = locationInfo.locationId);\n initialFacilities && initialFacilities.length && (newRequestParams.facilities = initialFacilities);\n initialSuitableForKinds && initialSuitableForKinds.length && (newRequestParams.suitable_for = initialSuitableForKinds);\n Object.keys(getPath).length > 0 && (newRequestParams = queryParseHelper(newRequestParams, getPath));\n\n setRequestParams(newRequestParams);\n setInitialKinds(requestParams.kinds);\n getInitialListLocationByDistricts(newRequestParams, searchId);\n }, []);\n\n\n useEffect(() => {\n smoothscroll.polyfill();\n window.innerWidth >= 992 && getViewedLocations();\n loadTawkTo(siteKey, setTawkIsLoaded(true));\n }, []);\n\n\n useEffect(() => {\n window.addEventListener('resize', calculateWindowWidth);\n }, []);\n\n\n useEffect(() => {\n if (localStorage) {\n const retrievedFavouriteLocations = localStorage.getItem(`my.favourite_${section}_${siteKey}`);\n const retrievedComparableLocations = localStorage.getItem(`my.comparable_${section}_${siteKey}`);\n const favouriteLocationsIds = JSON.parse(retrievedFavouriteLocations) || [];\n const comparableLocations = JSON.parse(retrievedComparableLocations) || {};\n\n localStorage.setItem('locale', props.locale);\n localStorage.getItem('viewedAsList') && localStorage.getItem('viewedAsList') === 'false' && setListViewAsList(false);\n localStorage.getItem('my.ordered_locations') ? setOrderedLocations(checkOrderedLocation) : localStorage.setItem('my.ordered_locations', JSON.stringify({}));\n setFavouriteLocationsIds(favouriteLocationsIds);\n setComparableLocations(comparableLocations);\n\n if (window.innerWidth <= 767) {\n setListViewAsList(false);\n localStorage.setItem('viewedAsList', 'false')\n }\n }\n\n if (sessionStorage.getItem('location_items.scroll_value')) {\n scrollTo({ top: sessionStorage.getItem('location_items.scroll_value'), left: document.body, behavior: \"smooth\" });\n sessionStorage.removeItem('location_items.scroll_value');\n }\n }, []);\n\n\n const calculateWindowWidth = () => setWindowWidth(window.innerWidth);\n\n\n const getViewedLocations = () => {\n const retrievedViewed = localStorage && localStorage.getItem(`my.viewed_${section}_${siteKey}`);\n const viewedLocationsIds = JSON.parse(retrievedViewed) || [];\n\n viewedLocationsIds.length && httpService\n .getLocationsByIds(viewedLocationsIds, viewedLocationsIds)\n .then((response) => {\n response.length !== viewedLocationsIds.length\n && localStorage\n && localStorage.setItem(`my.viewed_${section}_${siteKey}`, JSON.stringify(response.map(location => `${location.id}`)));\n\n setViewedLocations(response);\n });\n };\n\n\n const getInitialListLocationByDistricts = (requestParams, searchId, onPopState) => {\n const newRequestParams = { ...requestParams };\n\n isLoaded && setIsLoaded(false);\n searchId && (newRequestParams.search_id = searchId);\n\n apiProvider\n .post(locationServiceUrl, requestBuilder(newRequestParams), true)\n .then(response => {\n if (response.error) {\n setServerErrorListView(response.status >= 500 ? 'server' : 'network');\n } else {\n\n const callbackFunction = (response) => {\n response && response.locations && setLocationsByPostalDistricts(response.locations);\n setTotalLocationsCount(response.total);\n setIsLoaded(true);\n setShowSeo(response.show_seo);\n setSelectedSuitableFor(response.suitable_for_kinds || suitableForList);\n setSelectedFacilities(response.facilities || facilitiesList);\n setInitialPostalDistrictsIds(response.postal_district_ids || requestParams.postal_districts);\n setOnlyInternalLocations(response.only_internal_locations);\n };\n\n handleResponse(response, newRequestParams, callbackFunction, true);\n\n if (onPopState) {\n const dispatchList = [getKinds, getEnergyRatings, getFacilitiesList, getSuitableForKinds];\n\n updateFiltersOptions(dispatchList, newRequestParams, response.postal_district_ids);\n }\n }\n });\n };\n\n\n const getKinds = (requestParams) => {\n const { sections, postal_districts } = requestParams;\n\n apiProvider\n .post(locationsKindsUrl, requestBuilder({sections, postal_districts}))\n .then(response => response && setLocationKinds(response));\n };\n\n\n const getEnergyRatings = (requestParams) => {\n const { sections, postal_districts, kinds } = requestParams;\n\n apiProvider\n .post('/lease/api/frontend/locations/energy_ratings', requestBuilder({sections, postal_districts, kinds}))\n .then(response => response && setEnergyRatings(response));\n };\n\n\n const getFacilitiesList = (requestParams) => {\n const { sections, postal_districts, kinds } = requestParams;\n const newRequestParams = { sections, postal_districts, kinds };\n\n apiProvider\n .post(locationsFacilitiesPath, requestBuilder(newRequestParams))\n .then(response => response && setFacilitiesList(response));\n };\n\n\n const getSuitableForKinds = (requestParams) => {\n const { sections, postal_districts, kinds } = requestParams;\n const newRequestParams = { sections, postal_districts, kinds };\n\n apiProvider\n .post(locationsSuitableForKindsPath, requestBuilder(newRequestParams))\n .then(response => response && setSuitableForList(response));\n };\n\n\n const updateFiltersOptions = (updateFunctions, requestParams, postalDistrictIds) => {\n postalDistrictIds && (requestParams.postal_districts = postalDistrictIds);\n updateFunctions.map(func => func(requestParams));\n };\n\n\n const handleResponse = (response, requestParams, callbackFunction, isInitialRequest) => {\n const currentPage = requestParams.page;\n\n // Request nearby locations if total locations count < 24\n // We need to check current page in case user will manually input page # in url\n // to handle error in this case\n response.total < 24 && !requestParams.viewport_string\n ? currentPage <= 2 && getNearbyLocations(requestParams, response, () => callbackFunction(response))\n : callbackFunction(response);\n\n !isInitialRequest && setRequestParams(requestParams);\n };\n\n\n // Nearby locations should be requested in case no filters are selected and response.locations.length < 24\n // In this case we will join response.locations with nearby locations (and nearby locations banner)\n // in quantity we need for each page depends on the quantity of response.locations.\n // The total quantity of locations (response.locations + nearby locations) should be <= 24 (two standard pages 12 per page).\n // There might be cases when there's no nearby locations at all.\n const getNearbyLocations = (requestParams, response, callbackFunction) => {\n\n const { nearbyLocations: nearbyLocationsUrl } = keywords;\n const { locations, total: byPostalDistrictsLocationsTotalCount, postal_district_ids, loc_id_for_nearby_locations } = response;\n const initialLocationsPresent = !!locations.length;\n\n const {\n suitable_for,\n facilities,\n area_min,\n area_max,\n area_max_default,\n rent_min,\n rent_max,\n rent_max_default,\n kinds,\n page,\n per_page,\n uri_kind,\n } = requestParams;\n\n (page === 1 || initialLocationsPresent) && callbackFunction();\n\n const noFiltersSelected =\n (!facilities || !facilities.length)\n && (!suitable_for || !suitable_for.length)\n && area_min === 0\n && area_max === area_max_default\n && rent_min === 0\n && rent_max === rent_max_default\n && kinds.length === 0 || kinds.length === 1 && kinds[0] === uri_kind;\n\n // Show nearby locations only in case no filters are selected & it's not a provider list view page\n // Else clear nearby locations if present, dispatch response\n if (noFiltersSelected && !providersPage) {\n\n const totalLocationsLimit = 24;\n const location_id = loc_id_for_nearby_locations || (initialLocationsPresent ? locations[0].id : null);\n const perPage = per_page ? Number(per_page) : 12;\n const isSecondPage = perPage === 12 && Number(page) === 2;\n const firstPageNearbyLocationsLimit = byPostalDistrictsLocationsTotalCount < 12 ? 12 - byPostalDistrictsLocationsTotalCount : 0;\n let limit = totalLocationsLimit - byPostalDistrictsLocationsTotalCount;\n let offset = 0;\n\n if (isSecondPage) {\n limit = totalLocationsLimit - byPostalDistrictsLocationsTotalCount - firstPageNearbyLocationsLimit;\n offset = firstPageNearbyLocationsLimit;\n }\n\n const limitMathSign = Math.sign(limit);\n\n const params = {\n location_id,\n kinds: requestParams.kinds,\n limit: limitMathSign >= 0 ? limit : 0,\n section: requestParams.sections[0],\n country_alpha2: requestParams.country_alpha2,\n offset,\n postal_district_ids,\n facilities: [],\n suitable_for: [],\n };\n\n location_id\n ? apiProvider.withOptions({ url: nearbyLocationsUrl, method: 'get', withCredentials: true, params }, true)\n .then(data => {\n if (data.error) {\n (data.status >= 500) && console.log('error', data.error);\n } else {\n\n // In case of the first page we need to request nearby locations\n // with max limit, to receive the possible \"total\" count that can be found,\n // as we need to pass this number to pagination component and\n // understand if we need to show pagination(there are cases where there's no nearby locations at all).\n // In case of the second page we can limit location to required number.\n\n const { search_id, nearest_locations } = data;\n const locationsCount = nearest_locations.length;\n const nearbyLocationsLimit = isSecondPage ? locationsCount + offset : locationsCount;\n\n if (nearbyLocationsLimit) {\n const filteredLocations = locations.length ? locations.filter(location => !location.advertisement) : [];\n const nearestLocationsWithAdvert = [ ...nearest_locations ];\n\n nearestLocationsWithAdvert.push(advertBannersData.signUp);\n nearestLocationsWithAdvert.length > 2\n ? nearestLocationsWithAdvert.splice(nearestLocationsWithAdvert.length - 2, 0, advertBannersData.searchAgent)\n : nearestLocationsWithAdvert.unshift(advertBannersData.searchAgent);\n\n // Read the comment above\n const nearbyLocations =\n isSecondPage || perPage !== 12\n ? [ ...nearestLocationsWithAdvert ]\n : nearestLocationsWithAdvert.splice(0, firstPageNearbyLocationsLimit);\n\n // If these are the first nearby locations - insert banner object\n offset === 0 && nearbyLocations.length && nearbyLocations.unshift({ id: 'nearByBanner' });\n setLocationsByPostalDistricts([ ...filteredLocations, ...nearbyLocations ]);\n setNearbyLocationsLimit(isSecondPage ? locationsCount + offset : locationsCount);\n setNearestSearchId(search_id);\n setTotalLocationsCount(byPostalDistrictsLocationsTotalCount);\n setIsLoaded(true);\n } else {\n clearNearbyLocations();\n callbackFunction();\n }\n }\n })\n : callbackFunction();\n } else {\n (nearbyLocationsLimit || nearestSearchId) && clearNearbyLocations();\n callbackFunction();\n }\n };\n\n\n const changePage = (page) => {\n\n const newRequestParams = { ...requestParams };\n\n isLoaded && setIsLoaded(false);\n newRequestParams.page = page;\n nearestSearchId && (newRequestParams.search_id = nearestSearchId);\n\n apiProvider\n .post(locationServiceUrl, requestBuilder(newRequestParams), true)\n .then(response => {\n if (response.error) {\n setServerErrorListView(response.status >= 500 ? 'server' : 'network');\n } else {\n const formattedQueryString = () => {\n if (nearestSearchId) {\n const parsedQuery = queryString.parse(response.query_string);\n\n parsedQuery.search_id = nearestSearchId;\n return queryString.stringify(parsedQuery);\n } else {\n return response.query_string;\n }\n };\n\n queryBuilder(formattedQueryString());\n setTimeout(() => window.scroll(1, 0), 10);\n handleResponse(response, newRequestParams, handleReceivedLocationState);\n }\n });\n };\n\n\n const changePerPage = (perPage) => {\n const newRequestParams = { ...requestParams };\n\n isLoaded && setIsLoaded(false);\n newRequestParams.per_page = perPage;\n newRequestParams.page = 1;\n\n apiProvider\n .post(locationServiceUrl, requestBuilder(newRequestParams))\n .then(response => {\n if (response) {\n queryBuilder(response.query_string);\n handleResponse(response, newRequestParams, receivedSortedLocations);\n } else {\n setServerErrorListView('network');\n }\n });\n };\n\n\n const sortLocationsBy = (sortBy) => {\n const newRequestParams = { ...requestParams };\n\n isLoaded && setIsLoaded(false);\n newRequestParams.sort_by = sortBy;\n newRequestParams.page = 1;\n\n apiProvider\n .post(locationServiceUrl, requestBuilder(newRequestParams))\n .then(response => {\n if (response) {\n queryBuilder(response.query_string);\n handleResponse(response, newRequestParams, receivedSortedLocations);\n }\n });\n };\n\n\n const filterLocationsByPrice = (priceRange) => {\n const newRequestParams = { ...requestParams };\n\n isLoaded && setIsLoaded(false);\n newRequestParams.rent_min = priceRange.min;\n newRequestParams.rent_max = priceRange.max;\n newRequestParams.page = 1;\n mapMarkers(newRequestParams);\n\n apiProvider\n .post(locationServiceUrl, requestBuilder(newRequestParams))\n .then(response => {\n if (response) {\n queryBuilder(response.query_string);\n handleResponse(response, newRequestParams, handleReceivedLocationState);\n } else {\n setServerErrorListView('network');\n }\n });\n };\n\n\n const filterLocationsBySquare = (squareRange) => {\n const newRequestParams = { ...requestParams };\n\n isLoaded && setIsLoaded(false);\n newRequestParams.area_min = squareRange.min;\n newRequestParams.area_max = squareRange.max;\n newRequestParams.page = 1;\n mapMarkers(newRequestParams);\n\n apiProvider\n .post(locationServiceUrl, requestBuilder(newRequestParams))\n .then(response => {\n if (response) {\n queryBuilder(response.query_string);\n handleResponse(response, newRequestParams, handleReceivedLocationState);\n } else {\n setServerErrorListView('network');\n }\n });\n };\n\n\n const kindFilterToggle = (selectedKinds, requestParams) => {\n signal && controller.abort();\n\n const newRequestParams = { ...requestParams };\n\n controller = new AbortController();\n signal = controller.signal;\n\n isLoaded && setIsLoaded(false);\n newRequestParams.kinds = selectedKinds.map(elem => elem.id);\n newRequestParams.page = 1;\n mapMarkers(newRequestParams);\n\n apiProvider\n .post(locationServiceUrl, requestBuilder(newRequestParams), true, signal)\n .then(response => {\n\n controller = null;\n signal = null;\n\n if (response.error) {\n setServerErrorListView(response.status >= 500 ? 'server' : 'network');\n } else {\n const dispatchList = [getEnergyRatings, getFacilitiesList, getSuitableForKinds];\n\n queryBuilder(response.query_string);\n handleResponse(response, newRequestParams, handleReceivedLocationState);\n updateFiltersOptions(dispatchList, newRequestParams, response.postal_district_ids);\n }\n })\n };\n\n\n const getListLocationByDistrictsArea = (selectedAreasIds) => {\n const newRequestParams = { ...requestParams };\n\n isLoaded && setIsLoaded(false);\n\n // remove street_ when applied area filter\n delete newRequestParams.street_id\n newRequestParams.postal_districts = selectedAreasIds;\n newRequestParams.page = 1;\n mapMarkers(newRequestParams);\n\n apiProvider\n .post(locationServiceUrl, requestBuilder(newRequestParams), true)\n .then(response => {\n if (response.error) {\n setServerErrorListView(response.status >= 500 ? 'server' : 'network');\n } else {\n const dispatchList = [getKinds, getEnergyRatings, getFacilitiesList, getSuitableForKinds, (newParams) => setRequestParams(prevParams => ({ ...prevParams, ...newParams }))];\n\n queryBuilder(response.query_string);\n\n if (response.total < 24) {\n getNearbyLocations(newRequestParams, response, () => handleReceivedLocationState(response));\n } else {\n (nearbyLocationsLimit || nearestSearchId) && clearNearbyLocations();\n handleReceivedLocationState(response);\n }\n\n updateFiltersOptions(dispatchList, newRequestParams, response.postal_district_ids);\n }\n });\n };\n\n\n const getListLocationMobileFilters = () => {\n const newRequestParams = { ...requestParams };\n\n isLoaded && setIsLoaded(false);\n newRequestParams.page = 1;\n mapMarkers(newRequestParams);\n\n apiProvider\n .post(locationServiceUrl, requestBuilder(newRequestParams))\n .then(response => {\n if (response) {\n queryBuilder(response.query_string);\n handleReceivedLocationState(response);\n setRequestParams(prevParams => ({ ...prevParams, ...newRequestParams }))\n } else {\n setServerErrorListView('network');\n }\n });\n };\n\n\n const mapMarkers = (requestParams) => {\n setPreventRequestOnDragEnd(true);\n\n apiProvider\n .post(locationsMapMarkersUrl, requestBuilder(requestParams))\n .then(response => response && setMarkersArray(response.locations));\n };\n\n\n const applySuitableForFilters = (selectedSuitableFor) => {\n const newRequestParams = { ...requestParams };\n\n isLoaded && setIsLoaded(false);\n newRequestParams.suitable_for = selectedSuitableFor;\n newRequestParams.page = 1;\n mapMarkers(newRequestParams);\n\n apiProvider\n .post(locationServiceUrl, requestBuilder(newRequestParams))\n .then(response => {\n if (response) {\n queryBuilder(response.query_string);\n handleResponse(response, newRequestParams, handleReceivedLocationState);\n }\n });\n };\n\n\n const handleEnergyRatingSelect = (selectedEnergyRatings) => {\n const newRequestParams = { ...requestParams };\n\n isLoaded && setIsLoaded(false);\n newRequestParams.energy_rating = selectedEnergyRatings;\n newRequestParams.page = 1;\n mapMarkers(newRequestParams);\n\n apiProvider\n .post(locationServiceUrl, requestBuilder(newRequestParams), true)\n .then(response => {\n if (response.error) {\n setServerErrorListView(response.status >= 500 ? 'server' : 'network');\n } else {\n queryBuilder(response.query_string);\n handleResponse(response, newRequestParams, handleReceivedLocationState);\n }\n });\n };\n\n\n const getLocationsByCoords = (viewport_string) => {\n const newRequestParams = { ...requestParams, postal_districts: [], viewport_string };\n\n isLoaded && setIsLoaded(false);\n newRequestParams.page = 1;\n\n apiProvider\n .post(locationServiceUrl, requestBuilder(newRequestParams), true)\n .then(response => {\n if (response.error) {\n setServerErrorListView(response.status >= 500 ? 'server' : 'network');\n } else {\n const dispatchList = [getKinds, getEnergyRatings, getFacilitiesList, getSuitableForKinds];\n\n queryBuilder(response.query_string);\n handleResponse(response, newRequestParams, handleReceivedLocationState);\n updateFiltersOptions(dispatchList, newRequestParams, response.postal_district_ids);\n }\n });\n };\n\n\n const applyFacilitiesFilters = (selectedFacilities) => {\n const newRequestParams = { ...requestParams };\n\n isLoaded && setIsLoaded(false);\n newRequestParams.facilities = selectedFacilities;\n newRequestParams.page = 1;\n mapMarkers(newRequestParams);\n\n apiProvider\n .post(locationServiceUrl, requestBuilder(newRequestParams))\n .then(response => {\n if (response) {\n queryBuilder(response.query_string);\n handleResponse(response, newRequestParams, handleReceivedLocationState);\n }\n });\n };\n\n\n const filterAreas = () => {\n const searchData = queryString.stringify({\n \"country_alpha2\": countryAlpha2,\n \"sections[]\": sections,\n });\n\n apiProvider\n .getAll(`${postalDistrictServiceUrl}?${searchData}`)\n .then(response => response && setFilterAreaList(response || filterAreaList));\n };\n\n\n const toggleMap = (root) => {\n if(mapOptions.open) {\n // setMarkersArray([]);\n setMapOptions((prevOptions) => ({ ...prevOptions, open: false, root: '', }));\n } else {\n setMapOptions({ open: true, root, loaded: true });\n }\n };\n\n\n const receivedSortedLocations = (data) => {\n setLocationsByPostalDistricts(data.locations);\n setIsLoaded(true);\n };\n\n\n const handleReceivedLocationState = (data) => {\n setLocationsByPostalDistricts(data.locations);\n setTotalLocationsCount(data.total);\n setShowSeo(data.showSeo);\n setIsLoaded(true);\n setOnlyInternalLocations(data.only_internal_locations);\n };\n\n\n const clearNearbyLocations = () => {\n setNearbyLocationsLimit(null);\n setNearestSearchId('');\n };\n\n\n const state = {\n ...props,\n comparableLocations,\n energyRatings,\n facilitiesList,\n favouriteLocationsIds,\n filterAreaList,\n headerData,\n hoveredLocationId,\n initialKinds,\n initialPostalDistrictsIds,\n isLoaded,\n listViewAsList,\n locationKinds,\n locationsByPostalDistricts,\n mapMarkers,\n mapOptions,\n markersArray,\n nearbyLocationsLimit,\n onlyInternalLocations,\n orderedLocations,\n preventRequestOnDragEnd,\n requestParams,\n section,\n selectedEnergyRatings,\n selectedFacilities,\n selectedSuitableFor,\n serverErrorListView,\n setComparableLocations,\n setEnergyRatings,\n setFacilitiesList,\n setFavouriteLocationsIds,\n setFilterAreaList,\n setHeaderData,\n setHoveredLocationId,\n setInitialPostalDistrictsIds,\n setIsLoaded,\n setListViewAsList,\n setLocationKinds,\n setLocationsByPostalDistricts,\n setMarkersArray,\n setNearbyLocationsLimit,\n setOnlyInternalLocations,\n setOrderedLocations,\n setPreventRequestOnDragEnd,\n setRequestParams,\n setSelectedEnergyRatings,\n setSelectedFacilities,\n setSelectedSuitableFor,\n setServerErrorListView,\n setShowSeo,\n setSuitableForList,\n setTotalLocationsCount,\n showSeo,\n suitableForList,\n suitableForStructuredTypes,\n viewedLocations,\n tawkIsLoaded,\n totalLocationsCount,\n windowWidth,\n applyFacilitiesFilters,\n applySuitableForFilters,\n changePage,\n changePerPage,\n filterAreas,\n filterLocationsByPrice,\n filterLocationsBySquare,\n getInitialListLocationByDistricts,\n getEnergyRatings,\n getKinds,\n getFacilitiesList,\n getListLocationByDistrictsArea,\n getListLocationMobileFilters,\n getLocationsByCoords,\n getSuitableForKinds,\n getViewedLocations,\n handleEnergyRatingSelect,\n kindFilterToggle,\n sortLocationsBy,\n toggleMap,\n };\n\n\n return (\n \n
\n\n \n\n \n\n \n\n \n\n \n\n { viewedLocations && viewedLocations.length > 0 &&\n \n \n \n }\n\n \n\n { !!(popularDistricts && popularDistricts.length) &&\n \n }\n\n \n\n \n\n { richSnippetQuestions && richSnippetQuestions.length > 0 &&\n
\n
\n );\n};\n\n\nexport default ListView;\n\n\nListView.propTypes = {\n richSnippetQuestions: PropTypes.array,\n};\n\nListView.defaultProps = {\n richSnippetQuestions: [],\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n\nclass ResultsContainer extends Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedIndex: 0,\n maxIndex: 0,\n emptyResults: false,\n };\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n\n if (this.props !== prevProps) {\n this.setState({ selectedIndex: 0 });\n this.getMaxItems(this.props);\n\n if (this.props.moveDirection === 'down') {\n this.setState({\n selectedIndex: this.state.selectedIndex > this.state.maxIndex\n ? (this.state.selectedIndex = 0)\n : this.state.selectedIndex + 1,\n });\n } else if (this.props.moveDirection === 'up') {\n this.setState({\n selectedIndex: this.state.selectedIndex < 0\n ? this.state.maxIndex\n : this.state.selectedIndex - 1,\n });\n }\n }\n }\n\n getMaxItems = data => {\n const maxIndex = data.results.length\n ? data.results.map(el => el.entries.length).reduce((e, n) => e + n) - 1\n : 0;\n this.setState({ maxIndex });\n };\n\n buildLabel = (title) =>
{ title }
;\n\n buildItem = (itemObj, index) => {\n const isSelected = this.state.selectedIndex === index ? 'selected' : '';\n if (isSelected) {\n this.props.refElem(itemObj.path)\n }\n\n\n return (\n \n {itemObj.line}\n {itemObj.type === 'location' ? itemObj.teaser : `(${itemObj.teaser})`}\n \n );\n };\n\n buildLocationBlock = (locationObj) => {\n return(\n
\n {this.buildLabel(locationObj.label)}\n {locationObj.entries.map(item => this.buildItem(item, this.index++))}\n
\n )\n };\n\n renderResults = () => {\n this.index = 0;\n return this.props.results.map(item => this.buildLocationBlock(item));\n };\n\n anyResults = () => !!this.props.results.length;\n\n render() {\n return (\n
\n { this.anyResults() ? this.renderResults() : null }\n
\n );\n }\n}\n\nResultsContainer.propTypes = {\n results: PropTypes.array.isRequired,\n};\n\nexport default React.memo(ResultsContainer);\n","import React, { Component, Fragment } from 'react';\nimport debounce from 'lodash.debounce';\n\nimport { fetchLocations } from '../../utils/api';\nimport { SvgIco } from '../SharedComponents/Icons';\nimport ResultsContainer from './ResultsContainer';\n\nimport './index.sass';\n\n\nclass LocationSearch extends Component {\n constructor(props) {\n super(props);\n this.state = {\n direction: null,\n showResults: true,\n results: [],\n showNoResultsError: false,\n query: '',\n };\n this.linkElement = null;\n\n this.onChangeDebounced = debounce(this.onChangeDebounced, 300)\n }\n\n componentDidMount() {\n window.addEventListener('click', this.handleClickOutside);\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { query } = this.state;\n\n this.props.selectedTypes !== prevProps.selectedTypes && query && this.fetchItems(query);\n }\n\n\n componentWillUnmount() {\n window.removeEventListener('click', this.handleClickOutside);\n }\n\n handleClickOutside = (e) => {\n this.setState({ showResults: e.target === this.searchWrapper || this.searchWrapper.contains(e.target) });\n };\n\n handleEnter = () => {\n if (this.linkElement && this.props.results && this.props.results.length !== 0) {\n this.clearInput();\n window.open(this.linkElement, \"_self\")\n }\n };\n\n selectedLink = el => this.selectedElem = el;\n\n setRef = ref => {\n this.linkElement = ref;\n this.selectedLink(this.linkElement);\n };\n\n handleKeyDown = e => {\n switch (e.which) {\n case 38:\n this.setState({ direction: 'up' });\n break;\n case 40:\n this.setState({ direction: 'down' });\n break;\n case 27:\n this.setState({ direction: 0 });\n this.clearInput();\n break;\n case 13:\n this.handleEnter();\n break;\n default:\n this.setState({ direction: null });\n break;\n }\n };\n\n handleInputChange = event => {\n const query = event.target.value;\n this.setState({ query });\n\n if (/\\S/.test(event.target.value)) {\n this.onChangeDebounced();\n } else {\n this.setState({results: [], showNoResultsError: false})\n }\n };\n\n clearInput = () => this.setState({ query: '', results: [] });\n\n search_id = new Date().getTime() % 2147483647;\n\n mapTypes = typesObj => typesObj.map(typeChk => typeChk.id);\n\n onChangeDebounced = () => {\n if (/\\S/.test(this.state.query)) {\n this.fetchItems(this.state.query);\n } else {\n this.setState({results: []})\n }\n };\n\n fetchItems = query => {\n const { apiAutocompletePath } = this.props;\n const kinds = this.mapTypes(this.props.selectedTypes);\n const tabletOrMobile = window.innerWidth <= 960;\n const params = {\n query,\n kinds,\n search_id: this.search_id,\n sections: [window.env.section],\n max_entries: tabletOrMobile ? 8 : 12\n };\n\n fetchLocations(apiAutocompletePath, params).then(data => {\n const results = data.data;\n if (/\\S/.test(this.state.query)) {\n this.setState({ results, showNoResultsError: !results.length });\n }\n });\n };\n\n render() {\n const { placeholder, showFixedSearchIcon, siteKey } = this.props;\n const { query, results, showNoResultsError } = this.state;\n const isInputFilled = !!query.length || this.state.translations;\n const showResultsContainer = this.state.showResults;\n\n return (\n \n
this.searchWrapper = el}>\n\n \n\n { (showFixedSearchIcon || !isInputFilled) &&\n
\n \n
\n }\n\n { isInputFilled && (\n
\n \n
\n )}\n\n { isInputFilled && results.length && showResultsContainer ? (\n \n ) : null}\n
\n\n { isInputFilled && showNoResultsError && results ? (\n
\n
\n { I18n.t('apps.lb_showroom.goto.no_results') } \n { siteKey !== 'global' && (\n \n { I18n.t('apps.lb_showroom.goto.link_to_global_site') }\n \n )}\n
\n
\n ) : null }\n
\n );\n }\n}\n\n\nexport default React.memo(LocationSearch);\n","export const checkOrderedLocation = () => {\n let todayDate = new Date();\n let oneWeekAgo = new Date(todayDate.setDate(todayDate.getDate() -7));\n\n let allOrderedObjects = JSON.parse(localStorage.getItem('my.ordered_locations'));\n const orderedKeys = Object.keys(allOrderedObjects);\n\n const orderedLocationsAll = orderedKeys.map(elem => {\n let orderedDate = new Date(allOrderedObjects[`${elem}`][0].timestamp);\n if (oneWeekAgo < orderedDate) {\n return elem\n }\n });\n const orderedLocations = orderedLocationsAll.filter(elem => elem !== undefined);\n\n return orderedLocations;\n};","export const locationsCountByKinds =(kinds, sums) => {\n let count = 0;\n const filtered = {};\n\n for (let kind of Array.from(kinds)) {\n if (sums[kind]) {\n count += sums[kind]['direct'] || 0;\n }\n\n for (let direct_kind in sums) {\n const sums_obj = sums[direct_kind];\n filtered[direct_kind] = filtered[direct_kind] || [];\n\n for (let idx in sums_obj['secondary']) {\n const location_secondary_kinds = sums_obj['secondary'][idx];\n if (!kinds.includes(direct_kind) && (filtered[direct_kind].indexOf(idx) === -1) && (location_secondary_kinds.constructor === Array) && location_secondary_kinds.includes(kind)) {\n filtered[direct_kind].push(idx);\n count += 1;\n }\n }\n }\n }\n\n return count;\n};","export const queryParseHelper = (requestParams, path, backButton, defaultParams) => {\n Object.keys(path).map(elem => {\n switch(elem) {\n case 'kinds[]':\n requestParams.kinds = [].concat(path[elem]);\n break;\n case 'energy_rating[]':\n requestParams.energy_rating = [].concat(path[elem]);\n break;\n case 'page':\n requestParams.page = path[elem];\n break;\n case 'rent_min':\n requestParams.rent_min = path[elem];\n break;\n case 'rent_max':\n requestParams.rent_max = path[elem];\n break;\n case 'area_min':\n requestParams.area_min = path[elem];\n break;\n case 'area_max':\n requestParams.area_max = path[elem];\n break;\n case 'per_page':\n requestParams.per_page = path[elem];\n break;\n case 'sort_by':\n requestParams.sort_by = path[elem];\n break;\n case 'street_id':\n requestParams.street_id = path[elem];\n break;\n }\n });\n\n if (backButton) {\n if (!path['kinds[]']) {\n requestParams.kinds = defaultParams.kinds ? defaultParams.kinds : [];\n }\n\n if (!path['energy_rating[]']) {\n requestParams.energy_rating = defaultParams.energy_rating ? defaultParams.energy_rating : [];\n }\n\n if (!path.page) {\n requestParams.page = defaultParams.page\n }\n\n if (!path.rent_min) {\n requestParams.rent_min = defaultParams.rent_min\n }\n\n if (!path.rent_max) {\n requestParams.rent_max = defaultParams.rent_max\n }\n\n if (!path.area_min) {\n requestParams.area_min = defaultParams.area_min\n }\n\n if (!path.area_max) {\n requestParams.area_max = defaultParams.area_max\n }\n\n if (!path.per_page) {\n requestParams.per_page = '12'\n }\n\n if (!path.sort_by) {\n requestParams.sort_by = '';\n }\n if (!path.street_id) {\n if (defaultParams.street_id) {\n requestParams.street_id = defaultParams.street_id\n } else {\n delete requestParams.street_id\n }\n }\n }\n\n return requestParams;\n};\n"],"names":["requestBuilder","requestParams","bodyFormData","FormData","Object","keys","map","elem","Array","isArray","section","append","concat","httpService","_classCallCheck","_createClass","key","value","locationsIds","queryString","localStorage","getItem","reduce","sum","item","slice","apiProvider","getAll","url","data","uuid","name","email","company_name","company","option_parking_lots","phone_number","phone","comment","ab_code","order","location_uuid","person_name","camelizeName","api_version","post","Breadcrumb","_ref","breadcrumbs","root","detailsPage","linksList","breadcrumb","index","React","className","label","length","href","path","SvgIco","size","defaultProps","BottomSeo","_useContext","useContext","Context","headerData","initialKinds","keywords","setHeaderData","showSeo","siteKey","descriptionWithAssets","extendedDescription","rating","streetName","seoStatistics","avgScore","rateableId","ratingCreatePath","showRating","votesCount","geoName","_useState","useState","_useState2","_slicedToArray","hoveredRatingStar","setHoveredRatingStar","currentScore","locationsKind","count","locationsCount","kind","I18n","t","translatedKinds","ratingHeadline","selected_kinds","selected_area","isCoworkingDk","declinedLocationKinds","availableLocationsLinkI18n","pdf_link","fullOverviewLink","location_kinds","location","topVievedLocationsHeadline","locations_count","topViewed","replace","useEffect","initYouTubeVideos","updateAreaRating","score","load_stars_widget","id","then","response","prevData","_objectSpread","rating_data","avg_score","votes_count","handleRatingHover","e","target","handleRatingOut","labnolIframe","div","iframe","document","createElement","setAttribute","dataset","parentNode","replaceChild","playerElements","getElementsByClassName","n","videoId","thumbNode","src","appendChild","playButton","onclick","this","capitalize","text","charAt","toUpperCase","substring","onClick","onMouseOver","onMouseOut","headline","asset","type","alt","dangerouslySetInnerHTML","__html","split","pop","scope","rowsContent","content","indexRows","description","cells","cell","Fragment","diff","percentageChange","link","mostViewedOverviewLink","ListViewAreaSelector","_Component","_inherits","_super","_createSuper","_this","_len","arguments","args","_key","call","apply","_defineProperty","_assertThisInitialized","isOpened","props","selectedSectionIds","searchQuery","toggleIsSticky","queryData","event","isOutsideClick","tagName","wrapperRef","contains","isTrigger","trigger","setState","province","selectAll","dynamicData","itemId","areaId","selectAction","node","state","_this$state","indexOf","sectionIsSelected","newSelectedSections","update","$splice","$push","setTimeout","scrollToTarget","isMobileMenu","scrollBody","getElementById","scrollTarget","dropdownBody","scrollTargetTop","offsetTop","scrollTop","query","toLowerCase","handleQueryData","openedSections","filter","areasHasQuery","areas","some","area","includes","total_sum","filteredData","district","push","_this$state2","targetRect","getBoundingClientRect","bodyRect","targetTop","top","bodyTop","targetBottom","bottom","bodyBottom","viewportBottom","window","innerHeight","isSticky","addEventListener","handleClickOutside","prevProps","prevState","scrollToggle","handleBodyScroll","removeEventListener","_this2","_this$state3","_this$props","deselectAll","placeholder","selectedData","actionIconClasses","classNames","bodyClasses","placeholderClasses","triggerClasses","names","selectedIds","_toConsumableArray","forEach","selectedDistrictId","highlightSearchOutput","originName","startIndex","endIndex","originSubstring","replaceAll","handleOpening","ref","el","join","setWrapperRef","onScroll","onChange","handleSearch","sortedAreasArray","sort","a","b","localeCompare","areaIsSelected","checkboxClasses","submenuClasses","submenuStyles","maxHeight","itemClasses","toggleSelectSection","style","submenuItemClasses","submenuCheckboxClasses","Component","ListViewHeader","contactInfoPhone","contactInfoPhoneWithoutCode","country","subSite","totalLocationsCount","sections","cityName","kinds","currentTotalLocationsCount","phoneNumber","additionalTextSalesSection","street_id","seoTextElement","topMenuHeight","offsetHeight","obj","curtop","offsetParent","findPos","scrollTo","left","body","behavior","StickyFilterBar","previousScrollY","showStickyBar","mobileFiltersOn","currentScrollY","pageYOffset","clientHeight","handleStickyBarRender","mapIsOpen","mapOptions","open","Sticky","bottomBoundary","innerZ","enabled","children","DropDownContainer","DropdownSelector","EnergyRatingFilter","FacilitiesFilter","NoLinearRangeSlider","RangeSelector","SpaceCalculator","SuitableForFilter","ListViewMainFilter","debounceKinds","debounce","func","areaType","filterAreas","filterAreaList","filterLocationsByPrice","filterLocationsBySquare","getInitialListLocationByDistricts","getEnergyRatings","getKinds","getFacilitiesList","getListLocationByDistrictsArea","getListLocationMobileFilters","getSuitableForKinds","groupedPostalDistrictsIds","initialPostalDistrictsIds","kindFilterToggle","locationKinds","mapMarkers","onlyInternalLocations","selectedEnergyRatings","selectedFacilities","selectedSuitableFor","setRequestParams","setSelectedEnergyRatings","setSelectedFacilities","setSelectedSuitableFor","suitableForStructuredTypes","toggleMap","windowWidth","area_max","area_min","energy_rating","facilities","rent_max","rent_min","suitable_for","apiAutocompletePath","countryAlpha2","defaultKinds","frontendLeasePrices","initialPostalDistrictIds","maxArea","newSearchAgentPath","provinceId","saleMaxPrice","slidersDefaultCurrencyFormatted","yearlyPerM2MaxPrice","clearFacilities","setClearFacilities","_useState3","_useState4","clearSuitableFor","setClearSuitableFor","_useState5","_useState6","filtersMobileScroll","setFiltersMobileScroll","_useState7","_useState8","filtersModalIsOpen","setFiltersModalIsOpen","_useState9","_useState10","setMobileFiltersOn","_useState11","_useState12","parsedData","setParsedData","_useState13","_useState14","prevSelectedFacilities","setPrevSelectedFacilities","_useState15","_useState16","prevSelectedFilters","setPrevSelectedFilters","_useState17","_useState18","selectedAreaIds","setSelectedAreaIds","_useState19","max","Number","min","_useState20","selectedMeters","setSelectedMeters","_useState21","_useState22","selectedPrice","setSelectedPrice","_useState23","_useState24","selectedTypes","setSelectedTypes","_useState25","_useState26","showApplyFiltersButton","setShowApplyFiltersButton","_useState27","_useState28","showClearFiltersButton","setShowClearFiltersButton","filterWrapper","useRef","_saveSettings","tasks","_asyncToGenerator","_regeneratorRuntime","_callee","_context","prev","next","shift","task","Promise","resolve","stop","onpopstate","onBackButtonEvent","handleMobilesFiltersOn","translatedKind","JSON","parse","stringify","handleClearFiltersButton","handleApplyFiltersButton","values","currentValue","filterByTotalSum","postal_districts","updated","getTotalSum","accum","added","_objectWithoutProperties","_excluded","newSelectedIds","selectedAllIds","getPath","search","getPathBack","history","newRequestParams","defaultParams","page","acc","queryParseHelper","search_id","mapSelectedKinds","selectedKinds","filterLocationBySquare","square","shouldSubmit","currentSquare","prevParams","filterLocationByArea","updatedAreas","newSelectedAreasIds","toggleAreaSelect","parentID","areaID","selectedAreas","selectedProvince","splice","innerWidth","toggleMobileFilters","removeScrollListenerElement","filtersWrapper","mobileFiltersOnState","classList","add","disableBodyScroll","dataLayer","eventCategory","eventAction","selectedAreasIds","remove","enableBodyScroll","prevSelectedAreas","suitableFor","currentFacilities","every","find","prevType","facility","closeFiltersModal","toggle","current","isModal","filterToggle","isFilterButton","maxPrice","mainFilterClasses","filtersWrapperClasses","isUsa","areaFilterIcon","areaUnit","areaFilterTitle","areaFilterText","selectedPriceTooltip","selectedSizeTooltip","Math","round","duplicateParsedData","hideSquareFilter","showOfficeSpaceCalculator","undefined","locationsCountByKinds","sums","LocationSearch","showFixedSearchIcon","Suspense","fallback","modalFiltersWrapper","rect","wrapperTop","selectedCounterPhrase","getObjectIndexInArray","typeIsSelected","newSelectedTypes","filterKinds","suitableForTypesAreSelected","newSuitableForList","sortedSuitableForByKinds","suitableForKind","toggleClearSuitableForFilter","selectedTooltip","dimension","filterType","handleSelectorChange","price","currentPrice","maxValue","minValue","showInputLabels","showMaxMoreIcon","submitOnChangeComplete","employeeCalculation","toggleClearFacilitiesFilter","currentKinds","searchAgentDefaultParams","searchAgentParams","fromEntries","entries","_ref2","searchAgentQueryString","URLSearchParams","toString","setSearchAgentUrl","scroll","changePerPage","listViewAsList","setListViewAsList","sortLocationsBy","tawkIsLoaded","perPage","per_page","sortBy","sort_by","listViewSwitcherClasses","gridViewSwitcherClasses","quantityOptions","sortTypeOptions","selectedSortType","sortingPriceFieldName","option","setSelectedSortType","selectedPerPage","setSelectedPerPage","perPageLabel","perPageLabelContent","createTextNode","sortByLabel","sortByLabelContent","querySelector","insertBefore","childNodes","counter","toggleTawk","Tawk_API","onLoaded","hideWidget","showWidget","error","defaultSortType","strictSelectedOption","selectedSortTypeValue","optionalSelect","selectedSortTypeOption","defaultQuantity","isMobileOnly","setItem","Select","classNamePrefix","defaultValue","isSearchable","options","Switch","checked","checkedIcon","handleDiameter","height","offHandleColor","onColor","offColor","onHandleColor","width","uncheckedIcon","MapSection","GridViewItemList","ListViewItemsList","changePage","hoveredLocationId","isLoaded","locationsByPostalDistricts","nearbyLocationsLimit","serverErrorListView","setHoveredLocationId","showBottomPagination","setShowBottomPagination","handleBottomPagination","paginationElem","paginationBottom","currentScreenTop","screenTop","mapLoaded","loaded","initialPage","showPagination","mapClass","styles","spinnerMargin","paddingBottom","containerMargin","marginTop","SkeletonLoader","skeletonGridViewLoader","skeletonListViewLoader","locationsAsGrid","locationsAsList","pagination","ReactPaginate","activeClassName","breakLabel","containerClassName","marginPagesDisplayed","forcePage","nextLabel","previousLabel","onPageChange","selected","pageCount","ceil","pageRangeDisplayed","hrefBuilder","_window$location","origin","pathname","generatePaginationLink","advertBannersData","searchAgent","advertisement","search_agent","image_text","image_text_bottom","title","text_above_button","text_on_button","signUp","ViewedLocations","createContext","controller","signal","ListView","headerContent","isRequestFromPrerender","popularDistricts","providersPage","richSnippetQuestions","streetId","initialFacilities","initialSuitableForKinds","locationsFacilitiesPath","locationServiceUrl","locationsSuitableForKindsPath","locationsKindsUrl","locationsMapMarkersUrl","postalDistrictServiceUrl","providerInfo","locationInfo","comparableLocations","setComparableLocations","energyRatings","setEnergyRatings","facilitiesList","setFacilitiesList","favouriteLocationsIds","setFavouriteLocationsIds","setFilterAreaList","setInitialKinds","setInitialPostalDistrictsIds","setIsLoaded","setLocationKinds","setLocationsByPostalDistricts","setMapOptions","_useState29","_useState30","markersArray","setMarkersArray","_useState31","_useState32","setNearbyLocationsLimit","_useState33","_useState34","nearestSearchId","setNearestSearchId","_useState35","_useState36","setOnlyInternalLocations","_useState37","_useState38","orderedLocations","setOrderedLocations","_useState39","_useState40","preventRequestOnDragEnd","setPreventRequestOnDragEnd","_useState41","_useState42","_useState43","_useState44","_useState45","_useState46","_useState47","_useState48","setServerErrorListView","_useState49","_useState50","setShowSeo","_useState51","_useState52","suitableForList","setSuitableForList","_useState53","_useState54","setTawkIsLoaded","_useState55","_useState56","setTotalLocationsCount","_useState57","_useState58","viewedLocations","setViewedLocations","_useState59","_useState60","setWindowWidth","_useState61","initial_postal_district_id","initialPostalDistrictId","initial_province_id","initialProvinceId","area_max_default","rent_max_default","country_alpha2","uri_kind","_useState62","searchId","provider_id","providerId","location_id","locationId","smoothscroll","getViewedLocations","loadTawkTo","calculateWindowWidth","retrievedFavouriteLocations","retrievedComparableLocations","locale","checkOrderedLocation","sessionStorage","removeItem","retrievedViewed","viewedLocationsIds","getLocationsByIds","onPopState","status","handleResponse","locations","total","show_seo","suitable_for_kinds","postal_district_ids","only_internal_locations","updateFiltersOptions","updateFunctions","postalDistrictIds","callbackFunction","isInitialRequest","currentPage","viewport_string","getNearbyLocations","nearbyLocationsUrl","nearbyLocations","byPostalDistrictsLocationsTotalCount","loc_id_for_nearby_locations","initialLocationsPresent","isSecondPage","firstPageNearbyLocationsLimit","limit","offset","limitMathSign","sign","params","withOptions","method","withCredentials","console","log","nearest_locations","filteredLocations","nearestLocationsWithAdvert","unshift","clearNearbyLocations","receivedSortedLocations","handleReceivedLocationState","office","warehouse","coworking","store","business_center","applyFacilitiesFilters","queryBuilder","query_string","applySuitableForFilters","parsedQuery","formattedQueryString","searchData","priceRange","squareRange","dispatchList","newParams","getLocationsByCoords","handleEnergyRatingSelect","abort","AbortController","prevOptions","Provider","ListViewSortBar","SortComponent","SearchAgent","searchAgentText","searchAgentHeadline","PopularAreas","ToTheTopBtn","FAQSection","hidden","indentation","ResultsContainer","maxIndex","results","itemObj","isSelected","selectedIndex","refElem","line","teaser","locationObj","buildLabel","buildItem","buildLocationBlock","emptyResults","snapshot","getMaxItems","moveDirection","anyResults","renderResults","showResults","searchWrapper","linkElement","clearInput","selectedElem","selectedLink","which","direction","handleEnter","test","onChangeDebounced","showNoResultsError","Date","getTime","typesObj","typeChk","fetchItems","mapTypes","tabletOrMobile","env","max_entries","fetchLocations","isInputFilled","translations","showResultsContainer","handleInputChange","onKeyDown","handleKeyDown","maxLength","setRef","todayDate","oneWeekAgo","setDate","getDate","allOrderedObjects","orderedDate","timestamp","filtered","_i","_Array$from","from","direct_kind","sums_obj","idx","location_secondary_kinds","constructor","backButton"],"sourceRoot":""}