{"version":3,"file":"js/6153.4d614a98.js","mappings":";uPAwBaA,EAAsB,CACjCC,GAAI,GACJC,KAAM,GACNC,MAAO,GACPC,KAAM,GACNC,KAAM,GACNC,SAAS,EACTC,aAAa,EACbC,UAAU,EACVC,YAAY,EACZC,UAAU,EACVC,KAAM,KACNC,KAAM,IAGKC,EAAmB,SAACC,GAAC,uCAAAC,OAE5BD,EAAEE,SAAW,cAAgB,GAAE,UAAAD,OAC/BD,EAAET,KAAO,eAAHU,OAAkBD,EAAET,MAAS,GAAE,UAAAU,OACrCD,EAAEN,SAAW,cAAgB,GAAE,UAAAO,OAC/BD,EAAEG,MAAQ,OAAHF,OAAUD,EAAEG,OAAU,GAAE,UAAAF,OAC/BD,EAAEP,YAAc,kBAAoB,GAAE,UAAAQ,OACtCD,EAAEL,WAAa,gBAAkB,GAAE,UAAAM,OACnCD,EAAEJ,SAAW,YAAc,GAAE,UAAAK,OAC7BD,EAAEI,SAAWJ,EAAEI,QAAQC,gBAAkB,gCAAkC,GAAE,UAAAJ,OAC7ED,EAAEM,aAAeN,EAAEM,aAAe,GAAE,6EAAAL,OAG9BD,EAAEb,GAAE,mBAAAc,OACFD,EAAEZ,KAAI,oBAAAa,OACLD,EAAEX,MAAK,wBAAAY,OACHD,EAAEV,KAAKiB,QAAQ,KAAM,KAAK,aAAAN,OACrCD,EAAEN,SAAW,cAAgB,GAAE,YAAAO,OAC/BD,EAAER,QAAU,aAAe,GAAE,YAAAS,OAC7BD,EAAEE,SAAW,cAAgB,GAAE,YAAAD,OAC/BD,EAAEI,QAAUI,OAAOC,KAAKT,EAAEI,SAASM,KAAI,SAAAC,GAAC,cAAAV,QAAYW,EAAAA,EAAAA,IAAcD,GAAE,MAAAV,OAAKD,EAAEI,QAAQO,GAAE,QAAKE,KAAK,KAAO,GAAE,gDAAAZ,OACtED,EAAEb,GAAE,YAAAc,OACxCD,EAAEI,SAAWJ,EAAEI,QAAQC,gBAAe,oDAAAJ,OACgBD,EAAEI,QAAQC,gBAAe,WAAAJ,OAAUD,EAAEI,QAAQU,gBAAe,2DAEhH,GAAE,0IAAAb,OAGmCD,EAAEF,KAAO,kCAAoC,GAAE,gBAAAG,OAClFD,EAAEI,SAAWJ,EAAEI,QAAQW,SAAW,2CAAHd,OAA8CD,EAAEI,QAAQW,SAAQ,WAAAd,OAAUD,EAAEI,QAAQY,SAAQ,QAAS,GAAE,cAAAf,OACtID,EAAEF,KACAE,EAAEF,KAAI,kDAAAG,OAEFD,EAAEV,KAAI,oBAAAW,OACND,EAAEH,KAAO,YAAHI,OAAeD,EAAEH,KAAKoB,KAAI,cAAAhB,OAAaD,EAAEH,KAAKqB,OAAM,MAAAjB,OAAKD,EAAEH,KAAKP,KAAI,QAAS,GAAE,uCAAAW,OAEvFD,EAAEmB,MAAQ,mCAAHlB,OAAsCD,EAAEmB,MAAK,WAAY,IAAI,0BAAAlB,OAE1ED,EAAEoB,eAAiB,6CAAHnB,OAAgDD,EAAEoB,eAAc,WAAY,GAAE,sBAAAnB,OAEhGD,EAAEI,SAAWJ,EAAEI,QAAQC,gBAAkB,SAAW,GAAE,k6CC3D5D,IAAMgB,EAAeC,EAAAA,MAAAA,EACfC,EAAe,WACnB,IACE,OAAOD,OAAAA,WAAAA,IAAAA,EAAAA,IAAAA,MAAAA,mGAAAA,MAAAA,EAAAA,KAAAA,mBAAAA,CAAAA,CAAAA,GACT,CAAE,MAAOE,GACP,MAAO,CAAC,CACV,CACF,CANqB,GAOfC,EAAMC,EAAAA,EAAA,GAAQL,GAAiBE,GAExBI,EAAkB,CAC7BrB,aAAc,GACdsB,QAAS,UACTtC,KAAM,GACND,WAAOwC,EACPnC,UAAU,EACVoC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,WAAW,EACXpC,KAAM,GACNqC,WAAY,CAAC,GAGFC,EAAe,SAACnC,GAE3B,OADAA,EAAC0B,EAAAA,EAAA,GAAQC,GAAoB3B,GACtB,8BAAPC,OAEID,EAAE+B,UAAY,oBAAsB,GAAE,UAAA9B,OACtCD,EAAEgC,SAAW,mBAAqB,GAAE,UAAA/B,OACpCD,EAAE8B,YAAc,sBAAwB,GAAE,UAAA7B,OAC1CD,EAAEN,SAAW,cAAgB,GAAE,UAAAO,OAC/BD,EAAE4B,SAAUQ,EAAAA,EAAAA,GAAc,UAAWpC,EAAE4B,QAASH,GAAU,GAAE,UAAAxB,OAC5DD,EAAEiC,UAAY,oBAAsB,GAAE,UAAAhC,OACtCD,EAAEM,aAAeN,EAAEM,aAAe,GAAE,SAAAL,OACtCD,EAAEN,SAAW,cAAgB,GAAE,QAAAO,OAC/BD,EAAEX,MAAQ,eAAHY,OAAkBD,EAAEX,MAAK,KAAM,GAAE,QAAAY,OACxCD,EAAEkC,YAAaG,EAAAA,EAAAA,IAAiBrC,EAAEkC,YAAc,GAAE,SAAAjC,OAClDD,EAAEgC,SAAW,GAAK,GAAH/B,OAAMD,EAAEV,MAAM,QAAAW,OAC7BD,EAAE+B,UACA,2GACA,GAAE,QAAA9B,OACJD,EAAEgC,SAAQ,iCAAA/B,OACyBD,EAAEH,KAAI,gBAAAI,OACnCD,EAAEV,KAAI,yGAGV,GAAE,aAGR,kwEC/DA,IAAMgD,EAAyB,CAC7BhC,aAAc,0BAmBHiC,EAAwB,CACnCpD,GAAI,GACJqD,MAAO,GACPZ,QAAS,UACTa,OAAQ,SACRC,MAAO,GACPC,MAAO,GACPrC,aAAc,GACdsC,QAAS,KACTC,gBAAgB,EAChBC,cAAc,EACdC,oBAAoB,GAGTC,EAA4B,CACvC7D,GAAI,GACJC,KAAM,GACNI,SAAS,EACTE,UAAU,EACVQ,UAAU,EACV+C,0BAA2B,IAGvBC,EAAgC,SAACC,EAAiBC,GACtD,IAAMC,EAA6BF,EAAgB7C,aAAe6C,EAAgB7C,aAAagD,MAAM,KAAO,GACtGC,EAAsBH,EAAS9C,aAAe8C,EAAS9C,aAAagD,MAAM,KAAO,GAGvF,OAF0BE,EAAI,IAAIC,IAAI,GAADxD,OAAAuD,EAAKH,GAA0BG,EAAKD,MAAuBG,QAAO,SAAAC,GAAC,OAAIA,CAAC,IAEpF9C,KAAK,IAChC,EAEa+C,EAAe,SAAC5D,EAAG6D,EAAMC,EAAiBC,GACrD,IACMC,EAAiB,CACrB7E,GAAI0E,EAAK1E,GAAKa,EAAEb,GAAK0E,EAAK1E,IAAK8E,EAAAA,EAAAA,GAAI,GAADhE,OAAID,EAAEb,GAAE,MAC1CC,KAAMY,EAAEZ,MAAQyE,EAAKzE,KACrBM,SAAUM,EAAEN,UAAYmE,EAAKnE,UAS/B,MANiB,WAAbM,EAAEyC,QACOyB,EAAAA,EAAAA,GAAmBxC,EAAAA,EAAAA,EAAAA,EAAC,CAAC,EAAIoC,GAAoBD,GAASG,GAAmB,CAAE1D,aAAc4C,EAA8BY,EAAiBD,OAExI9D,EAAAA,EAAAA,GAAgB2B,EAAAA,EAAAA,EAAAA,EAAC,CAAC,EAAIqC,GAAiBF,GAASG,GAAmB,CAAE1D,aAAc4C,EAA8Ba,EAAcF,KAI9I,EAEaM,EAAmB,SAACnE,EAAG6D,EAAMC,EAAiBC,GACzD/D,EAAC0B,EAAAA,EAAA,GAAQsB,GAA8BhD,GACvC,IAAIoE,EAA8BP,EAAKZ,0BAA4BY,EAAKZ,0BAA0BK,MAAM,KAAO,GAC/Gc,EAA8BA,EAA4BV,QAAO,SAAAW,GAAC,MAAU,eAANA,CAAkB,IAExF,IAAMC,EAAyBd,EAAI,IAAIC,IAAQ,CAAC,8BAA6BxD,OAAAuD,EAAKY,MAA+BV,QAAO,SAAAC,GAAC,OAAIA,CAAC,IAAE9C,KAAK,KACrI,MAAO,qBAAPZ,OACgBqE,EAAsB,KAAArE,OAAI4D,EAAKrE,QAAU,aAAe,GAAE,qEAAAS,OAElE2D,EAAa5D,EAAG6D,EAAMC,EAAiBC,GAAa,wEAAA9D,OAERD,EAAEb,GAAK0E,EAAK1E,GAAE,8HAAAc,OAExD4D,EAAKU,iBAAgB,mDAKjC,EAEaC,EAAiB,SAACxE,GAC7B,IAAM+D,EAAYrC,EAAAA,EAAA,GAAQxC,EAAAA,GAAwBoD,GAC5CwB,EAAepC,EAAAA,EAAA,GAAQ+C,EAAAA,GAA2BnC,GAExD,OAAOtC,EAAE6C,eACL7C,EAAE2C,MAAMjC,KAAI,SAAAmD,GAAI,OAAIM,EAAiBnE,EAAG6D,EAAMC,EAAiBC,EAAa,IAC5E/D,EAAE2C,MAAMjC,KAAI,SAAAmD,GAAI,OAAID,EAAa5D,EAAG6D,EAAMC,EAAiBC,EAAa,GAC9E,EAEaW,EAAqB,SAAC1E,GACjC,MAAO,iBAAPC,OAEMD,EAAEb,GAAE,iCAAAc,OAERD,EAAE4B,QAAU,kBAAH3B,OAAqBD,EAAE4B,SAAY,GAAE,QAAA3B,OAC9CD,EAAE8C,aAAe,6BAA+B,GAAE,QAAA7C,OAClDD,EAAE6C,eAAiB,8BAAgC,GAAE,QAAA5C,OACrDD,EAAEE,SAAW,cAAgB,GAAE,QAAAD,OAC/BD,EAAE+C,mBAAqB,yCAA2C,GAAE,QAAA9C,OACpED,EAAEM,aAAeN,EAAEM,aAAe,GAAE,SAAAL,OACpCD,EAAEE,SAAW,YAAc,GAAE,QAAAD,OAC7BD,EAAE2E,UAAY,cAAH1E,OAAiBD,EAAE2E,WAAc,GAAE,oCAAA1E,OAClBD,EAAEyC,OAAM,SAAAxC,OACpCD,EAAEwC,MAAQ,cAAHvC,OAAiBD,EAAEwC,OAAU,GAAE,QAAAvC,OACtCD,EAAE8C,aAAe,qCAAuC,GAAE,QAAA7C,OAC1DD,EAAE4B,QAAU,+BAAH3B,OAAkCD,EAAE4B,SAAY,GAAE,6CAAA3B,OAE3DD,EAAEkC,YAAaG,EAAAA,EAAAA,IAAiBrC,EAAEkC,YAAc,GAAE,SAAAjC,OAClDD,EAAE0C,MAAK,GAAAzC,OACFD,EAAE4C,QAAU,wCAA0C,GAAE,iEAAA3C,OACJD,EAAEb,GAAE,KAAAc,OAAID,EAAE0C,MAAK,kBAAAzC,OACtED,EAAE4C,QAAU,GAAH3C,QAAM2E,EAAAA,EAAAA,GAAelD,EAAAA,EAAC,CAAC,EAAImD,EAAAA,GAAuB7E,EAAE4C,UAAU,WAAY,GAAE,QAEvF,GAAE,kDAAA3C,OAGCD,EAAE8C,aACDgC,EAAsC9E,GACtCwE,EAAexE,GAAGa,KAAK,IAAG,0EAOlC,EAEaiE,EAAwC,SAAC9E,GACpD,OAAO+E,EAAAA,EAAAA,IAAe,CACpB5F,GAAI,sBACJmB,aAAc,8BACd0E,QAAQ,EACRC,SAAS,EACTC,WAAY,QACZC,iBAAiB,EACjBC,cAAc,EACdlD,WAAY,CACV,aAAa,EACb,6BAA6B,EAC7B,kBAAmB,kBACnB,cAAe,MAEjBS,MAAO6B,EAAexE,IAE1B,82FCjJA,IAAMqF,GAAgBC,EAAAA,EAAAA,GAAS,sBAADrF,OAAuBsF,EAAAA,EAAQ,YAEvDC,EACG,aAGHC,EAAa,CAEjBrG,KAAM,gBACNsG,MAAO,CACL,CACEtG,KAAM,SACNuG,KAAM,SACNH,KAAM,6BACNI,cAAe,CACb,SACA,WACA,YAGJ,CACExG,KAAM,UACNuG,KAAM,SACNH,KAAM,8BACNI,cAAe,CACb,UACA,SAEFC,aAAc,WAEhB,CACEzG,KAAM,UACNuG,KAAM,cAER,CACEvG,KAAM,QACNuG,KAAM,SACNE,aAAc,IAEhB,CACEzG,KAAM,WACNuG,KAAM,UACNH,KAAM,WACNK,cAAc,GAEhB,CACEzG,KAAM,eACNuG,KAAM,UACNH,KAAM,qCACNK,cAAc,KAKdvD,EAAyB,CAC7BhC,aAAc,0BAOKwF,EAAU,SAAAC,yRAAAC,CAAAF,EAAAC,GAAA,cAAAE,KAAAH,+jBAO7B,SAAAA,EAAaI,GAAS,IAAAC,EAiClB,mGAjCkBC,CAAA,KAAAN,IACpBK,EAAAF,EAAAI,KAAA,KAAMH,EAAST,EAAWrG,OACrBkH,cAAe,EAEpBH,EAAKI,eAAiBJ,EAAKK,+BAE3BL,EAAKM,eAGLN,EAAKO,OAAOC,GAAG,eAAe,SAACC,GACR,WAAjBA,EAAQxH,MAAqB+G,EAAKU,QAAQ,UAAWV,EAAKT,MAAMoB,QAAS,CAAEC,QAAQ,EAAMC,aAAa,GAC5G,IAEAb,EAAKc,gBAAkBd,EAAKD,QAAQgB,cAAc,4BAClDf,EAAKgB,gBAAkB,KACnBjB,EAAQkB,aAAa,yBACvBjB,EAAKgB,gBAAkBjB,EAAQkB,aAAa,yBAE5CjB,EAAKgB,gBAAkBhB,EAAKkB,oBAAoBD,aAAa,yBAE/DjB,EAAKmB,aAAenB,EAAKD,QAAQgB,cAAc,yBAE/Cf,EAAKD,QAAQT,EAAWrG,MAAMmI,kBAAqBpB,EAAKoB,kBAAmBC,KAAIC,EAAAtB,IAC/EA,EAAKD,QAAQT,EAAWrG,MAAMsI,oCAAuCvB,EAAKuB,oCAAqCF,KAAIC,EAAAtB,IACnHA,EAAKD,QAAQT,EAAWrG,MAAMuI,iBAAoBxB,EAAKwB,iBAAkBH,KAAIC,EAAAtB,IAC7EA,EAAKD,QAAQT,EAAWrG,MAAMwI,gBAAmBzB,EAAKyB,gBAAiBJ,KAAIC,EAAAtB,IAC3EA,EAAKD,QAAQT,EAAWrG,MAAMyI,SAAW1B,EAAK0B,SAASL,KAAIC,EAAAtB,IAC3DA,EAAKD,QAAQT,EAAWrG,MAAM0I,aAAe3B,EAAK2B,aAAaN,KAAIC,EAAAtB,IACnEA,EAAKD,QAAQT,EAAWrG,MAAM2I,cAAgB5B,EAAK4B,cAAcP,KAAIC,EAAAtB,IACrEA,EAAKD,QAAQT,EAAWrG,MAAM4I,sBAAwB7B,EAAK6B,sBAAsBR,KAAIC,EAAAtB,IAErF8B,EAAAA,EAAiBC,wBAAwBzC,EAAWrG,KAAM+G,EAAKO,OAAMhF,EAAA,GAChEyE,EAAKD,QAAQiC,aAAa3C,IAAe,CAAEhD,MAAO2D,EAAKD,QAAQhE,WAAWsD,GAAYnG,SACzF8G,CACJ,CA0aC,SA1aAL,IAAA,EAAAsC,IAAA,eAAA/I,MAED,WAAgB,IAAAgJ,EAAA,KACR3B,EAAS,GACD4B,KAAKpC,QAAQqC,iBAAiB,iGACtCC,SAAQ,SAAA3E,GACZ6C,EAAO+B,KAAK,CAAC5E,EAAM,CAAE6E,OAAQ,SAACC,GAAE,OAAKN,EAAKO,SAASD,EAAG,IACxD,IAEIL,KAAKO,cACPnC,EAAO+B,KAAK,CAACH,KAAKO,aAAc,CAAEC,MAAO,SAACH,GAAE,OAAKN,EAAKU,QAAQJ,EAAG,KAEnEK,EAAAA,EAAgBvC,aAAaC,EAAQjB,EAAWrG,KAClD,GAAC,CAAAgJ,IAAA,oBAAA/I,MAED,WAEE,OADAiJ,KAAKW,eAAiBX,KAAKW,gBAAkBX,KAAKpC,QAAQgB,cAAc,2BACjEoB,KAAKW,cACd,GAAC,CAAAb,IAAA,kBAAA/I,MAED,WACE,OAAOiJ,KAAKpC,QAAQiC,aAAa,wCAAyC,CAC5E,GAEA,CAAAC,IAAA,aAAA/I,MAKA,WACE,IAAM6J,EAA6C,WAA3BZ,KAAKa,QAAQ,UAAyB,4BAA8B,wBAG5F,OAF2Bb,KAAKc,kBAAiB5F,EAAO8E,KAAKjB,oBAAoBkB,iBAAiB,gDAA8C/E,EAAQ8E,KAAKjB,oBAAoBgC,WAEvJ3F,QAAO,SAAA4F,GAAE,OAAKA,EAAGC,QAAQL,EAAgB,IAChExI,KAAI,SAAA4I,GAAE,OAAIxD,EAAW0D,+BAA+BF,EAAG,GAC5D,GAEA,CAAAlB,IAAA,mBAAA/I,MAGA,WACEiJ,KAAKzB,QAAQ,UAAWyB,KAAKa,QAAQ,WAAWzI,KAAI,SAAC+I,GAAM,OAAA/H,EAAAA,EAAA,GAAW+H,GAAM,IAAE/J,UAAU,GAAI,IAC9F,GAEA,CAAA0I,IAAA,kBAAA/I,MAGA,WACEiJ,KAAKzB,QAAQ,UAAWyB,KAAKa,QAAQ,WAAWzI,KAAI,SAAC+I,GAAM,OAAA/H,EAAAA,EAAA,GAAW+H,GAAM,IAAE/J,UAAU,GAAK,IAC/F,GAEA,CAAA0I,IAAA,WAAA/I,MAGA,SAAUC,GACJgJ,KAAKhB,eACPgB,KAAKhB,aAAaoC,UAAYpK,EAElC,GAEA,CAAA8I,IAAA,WAAA/I,MAGA,WACE,OAAOiJ,KAAKhB,aAAegB,KAAKhB,aAAaoC,UAAY,EAC3D,GAAC,CAAAtB,IAAA,mBAAA/I,MAED,SAAkBsK,GAChB,IAAMC,EAAgBtB,KAAKa,QAAQ,WAAWzI,KAAI,SAAC+I,GAAM,OAAA/H,EAAAA,EAAA,GAAW+H,GAAM,IAAEjK,QAAUiK,EAAOpK,QAAUsK,EAAMtK,OAAM,IACnHiJ,KAAKzB,QAAQ,UAAW+C,EAAe,CAAEC,UAAU,IAE3BrG,EAAO8E,KAAKjB,oBAAoBkB,iBAAiB,gDAEtDC,SAAQ,SAAAsB,GACzB,IAAMC,EAAeD,EAAkB5C,cAAc,SACjD6C,IACEA,EAAa1K,QAAUsK,EAAMtK,OAASsK,EAAMnK,QAC9CsK,EAAkBE,UAAUC,IAAI,eAEhCF,EAAavK,SAAU,EACvBsK,EAAkBE,UAAUE,OAAO,eAGzC,GACF,GAEA,CAAA9B,IAAA,aAAA/I,MASA,SAAYsD,EAAOmE,EAASqD,GAAU,IAAAC,EAAA,KACpCzH,EAAQA,GAAS,GACZmE,EAAQ+C,WACXvB,KAAK+B,uBAaL/B,KAAKjB,oBAAoBiD,YAZD,SAAlBC,EAAmB5H,GACvB,IAAM6H,EAAWC,SAASC,yBAS1B,OARA/H,EAAM6F,SAAQ,SAAA3E,GAEZ,GADA2G,EAASF,YAAYF,EAAKO,kBAAkB9G,IACxCA,EAAKlB,MAAO,CACd,IAAMiI,GAAcC,EAAAA,EAAAA,IAAkB,4CACtCD,EAAYN,YAAYC,EAAgB1G,EAAKlB,QAC7C6H,EAASF,YAAYM,EACvB,CACF,IACOJ,CACT,CACqCD,CAAgB5H,KAEvD2F,KAAKwC,mCACLxC,KAAK/B,eAAiB+B,KAAK9B,+BACvBM,EAAQiE,WAAmC,WAAtBzC,KAAK5C,MAAMjD,QAAuB6F,KAAK/B,eAAeyE,OAAS,IACtF1C,KAAKO,aAAeP,KAAK2C,oBAAoB5F,GAC7CiD,KAAKpC,QAAQoE,YAAYhC,KAAKO,eAEhCP,KAAK7B,eACAK,EAAQC,QACXuB,KAAK5B,OAAOwE,KAAK,gBAAiB5C,KAAK5C,MAAMoB,QAASqD,EAAU7B,KAAK5C,MAAMjD,OAE/E,GAEA,CAAA2F,IAAA,oBAAA/I,MAKA,WACE,OAAOiJ,KAAK/B,cACd,GAEA,CAAA6B,IAAA,+BAAA/I,MAKA,WAUE,OAT2B,SAArB8L,EAAsBrE,GAC1B,IAAMP,EAAiB,GAMvB,OALAO,EACG0B,SAAQ,SAAAiB,GACHA,EAAOjK,SAAS+G,EAAekC,KAAKgB,EAAOpK,OAC3CoK,EAAO9G,OAAO4D,EAAekC,KAAI2C,MAAnB7E,EAAc/C,EAAS2H,EAAmB1B,EAAO9G,QACrE,IACK4D,CACT,CACO4E,CAAmB7C,KAAK5C,MAAMoB,QACvC,GAEA,CAAAsB,IAAA,sCAAA/I,MAMA,WAUE,OAT2B,SAArB8L,EAAsBrE,GAC1B,IAAMP,EAAiB,GAMvB,OALAO,EACG0B,SAAQ,SAAAiB,GACHA,EAAOjK,SAAS+G,EAAekC,KAAKgB,EAAOpK,QAC1CoK,EAAOjK,SAAWiK,EAAO9G,OAAO4D,EAAekC,KAAI2C,MAAnB7E,EAAc/C,EAAS2H,EAAmB1B,EAAO9G,QACxF,IACK4D,CACT,CACO4E,CAAmB7C,KAAK5C,MAAMoB,QACvC,GAEA,CAAAsB,IAAA,WAAA/I,MAGA,SAAUsJ,GAAI,IAAA0C,EAAA,KACN1B,EAAQhB,EAAGzH,OAGjB,GAFAoH,KAAK5B,OAAOwE,KAAK,QAASvB,GAEK,WAA3BrB,KAAKa,QAAQ,UACf,OAAIb,KAAKc,uBACPd,KAAKgD,iBAAiB3B,QAGxBrB,KAAKzB,QAAQ,UAAWyB,KAAKa,QAAQ,WAAWzI,KAAI,SAAC+I,GAAM,OAAA/H,EAAAA,EAAA,GAAW+H,GAAM,IAAEjK,QAAUiK,EAAOpK,QAAUsK,EAAMtK,OAAM,KAKvH,IAAMkM,EAAcjD,KAAKkD,kBAAkB7B,EAAMtK,OACjD,GAAKkM,EAAL,CAGA,GAFAA,EAAY/L,QAAUmK,EAAMnK,QAExB8I,KAAKmD,qBAAsB,CAC7B,IASMC,EATiB,SAACpC,GACtB,IAAIqC,EAAQ,EACZ,EAAG,CACD,GAAIrC,IAAO+B,EAAKhE,oBAAqB,OAAOsE,EACxCrC,EAAGC,QAAQ,0BAA0BoC,IACzCrC,EAAKA,EAAGsC,eAAiBtC,EAAGuC,UAC9B,OAAgB,OAAPvC,GAAeA,IAAO+B,EAAKhE,qBAAuC,IAAhBiC,EAAGwC,UAC9D,OAAOH,CACT,CACoBI,CAAepC,GAC7BF,EAASnB,KAAKkD,kBAAkB7B,EAAMtK,OAC5CiJ,KAAK0D,sBAAsBvC,EAAQE,EAAMnK,SACrB,IAAhBkM,GAAmBpD,KAAK2D,mBAAmBtC,EAAMtK,OAAO2K,UAAUE,OAAO,mBACzEwB,EAAc,GAAGpD,KAAKwC,kCAC5B,CAEAxC,KAAK/B,eAAiB+B,KAAK9B,+BAC3B8B,KAAK5B,OAAOwE,KAAK,gBAAiB5C,KAAK5C,MAAMoB,SAC7C6B,EAAGuD,iBAtBqB,CAuB1B,GAAC,CAAA9D,IAAA,UAAA/I,MAED,SAASsJ,GACPL,KAAK5C,MAAMoB,QAAQ0B,SAAQ,SAAAiB,GAAYA,EAAOjK,SAAU,CAAM,IAC9D8I,KAAK/B,eAAiB+B,KAAK9B,+BAC3B8B,KAAK5B,OAAOwE,KAAK,gBAAiB5C,KAAK5C,MAAMoB,QAC/C,GAAC,CAAAsB,IAAA,qBAAA/I,MAED,WACE,IAAI8M,GAAS,EAKb,OAJA7D,KAAK5C,MAAMoB,QAAQ0B,SAAQ,SAAAiB,GACrB0C,IACJA,IAAW1C,EAAO9G,MACpB,IACOwJ,CACT,GAAC,CAAA/D,IAAA,wBAAA/I,MAED,SAAuBoK,GAAwB,IAAA2C,EAAA,KAAhB5M,IAAO6M,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,KAAAA,UAAA,GAC/B5C,EAAO9G,OACZ8G,EAAO9G,MAAM6F,SAAQ,SAAA8D,GACnBF,EAAKG,iBAAiBD,EAAW9M,GAC7B8M,EAAU3J,OAAOyJ,EAAKJ,sBAAsBM,EAAW9M,EAC7D,GACF,GAEA,CAAA4I,IAAA,mCAAA/I,MAGA,WAAoC,IAAAmN,EAAA,KA6BlC,OATAlE,KAAK5C,MAAMoB,QAAQ0B,SAAQ,SAAAiB,GACpBA,EAAO9G,QAXgB,SAAC8G,GAC7B,IAAKA,EAAO9G,MAAO,OAAO,EAC1B,IAAI8J,GAAgB,EAKpB,OAJAhD,EAAO9G,MAAM6F,SAAQ,SAAA8D,GACdG,IACAH,EAAU9M,UAASiN,GAAgB,GAC1C,IACOA,CACT,CAIMC,CAAsBjD,GACxB+C,EAAKD,iBAAiB9C,GAGxB+C,EAAKG,qBAAqBlD,EAzBA,SAACA,GAC3B,IAAKA,EAAO9G,MAAO,OAAO,EAC1B,IAAIiK,GAAgB,EAKpB,OAJAnD,EAAO9G,MAAM6F,SAAQ,SAAA8D,GACfM,GACAN,EAAU9M,UAASoN,GAAgB,EACzC,IACOA,CACT,CAiBoCC,CAAoBpD,IACxD,IAEOnB,IACT,GAEA,CAAAF,IAAA,mBAAA/I,MAGA,SAAkBoK,GAAwB,IAAhBjK,IAAO6M,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,KAAAA,UAAA,GAC3B5C,EAAOjK,UAAYA,IACvBiK,EAAOjK,QAAUA,EACjB8I,KAAKwE,iBAAiBrD,EAAOpK,OAAOG,QAAUA,EAC1C8I,KAAKmD,sBACPnD,KAAK2D,mBAAmBxC,EAAOpK,OAC5B2K,UAAUE,OAAO,mBAExB,GAEA,CAAA9B,IAAA,uBAAA/I,MAGA,SAAsBoK,GAA4B,IAApBhK,IAAW4M,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,KAAAA,UAAA,GACvC5C,EAAOjK,SAAU,EACjB8I,KAAKwE,iBAAiBrD,EAAOpK,OAAOG,SAAU,EAC9C8I,KAAK2D,mBAAmBxC,EAAOpK,OAC5B2K,UAAUvK,EAAc,MAAQ,UAAU,kBAC/C,GAEA,CAAA2I,IAAA,oBAAA/I,MAGA,SAAmBA,GASjB,OAR0B,SAApBmM,EAAqBnM,EAAOyH,GAChC,IAAIyE,EAKJ,OAJAzE,EAAQ0B,SAAQ,SAAAiB,GACVA,EAAOpK,QAAUA,IAAOkM,EAAc9B,IACrC8B,GAAe9B,EAAO9G,QAAO4I,EAAcC,EAAkBnM,EAAOoK,EAAO9G,OAClF,IACO4I,CACT,CACOC,CAAkBnM,EAAOiJ,KAAK5C,MAAMoB,QAC7C,GAEA,CAAAsB,IAAA,qBAAA/I,MAGA,SAAoBA,GAClB,IAAMsK,EAAQrB,KAAKwE,iBAAiBzN,GACpC,OAAOsK,EACHA,EAAMoD,QAAQ,gCACdpD,CACN,GAEA,CAAAvB,IAAA,mBAAA/I,MAGA,SAAkBA,GAChB,OAAOiJ,KAAKjB,oBAAoBH,cAAc,gBAADjH,OAAiBZ,EAAK,MACrE,GAEA,CAAA+I,IAAA,uBAAA/I,MAKA,WACE,KAAOiJ,KAAKjB,oBAAoB2F,YAC9B1E,KAAKjB,oBAAoB4F,YAAY3E,KAAKjB,oBAAoB2F,YAEhE,GAAI1E,KAAKrB,gBACP,KAAOqB,KAAKrB,gBAAgB+F,YAC1B1E,KAAKrB,gBAAgBgG,YAAY3E,KAAKrB,gBAAgB+F,YAO1D,OAJI1E,KAAKO,cACPP,KAAKO,aAAaqB,SAEpB5B,KAAKpC,QAAQ8D,UAAUE,OAAO,aACvB5B,IACT,GAEA,CAAAF,IAAA,oBAAA/I,MAQA,SAAmBoK,GACjB,IAAM1F,EAAYrC,EAAAA,EAAA,GAAQxC,EAAAA,GAAwBoD,GAC5CwB,EAAepC,EAAAA,EAAA,GAAQ+C,EAAAA,GAA2BnC,GAClDtC,EAAI,CAAEyC,OAAQ6F,KAAK5C,MAAMjD,OAAQtD,GAAImJ,KAAKpC,QAAQ/G,IAExD,OAAO0L,EAAAA,EAAAA,IACLpB,EAAOyD,cACH/I,EAAAA,EAAAA,IAAiBnE,EAAGyJ,EAAQ3F,EAAiBC,IAC7CH,EAAAA,EAAAA,IAAa5D,EAAGyJ,EAAQ3F,EAAiBC,GAEjD,GAAC,CAAAqE,IAAA,sBAAA/I,MAED,SAAqB8N,GACnB,OAAOtC,EAAAA,EAAAA,KACLuC,EAAAA,EAAAA,GAAY,CACVxL,QAAS,eACTM,WAAY,CAAE,4BAA6B,SAC3C5C,KAAM6N,EAAQE,YACd/M,aAAc,qCAEpB,GAEA,CAAA8H,IAAA,eAAA/I,MAkDA,WACEiJ,KAAKhC,cAAe,CACtB,GAAC,CAAA8B,IAAA,WAAA/I,MAED,WAAgC,IAAtBiO,EAAYjB,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,IAAAA,UAAA,GAChBkB,GAAU,EACRC,EAAWlF,KAAKmF,aACtB,GAAInF,KAAKoF,+BACP,GAAIpF,KAAK5C,MAAMxF,SAAU,CACvB,IAAMyN,EAAkBH,EAASI,MAAK,SAAA1H,GAAO,OAAIA,EAAQ1G,OAAO,IAChE+N,IAAaI,CACf,MACK,CACL,IAAMhJ,EAAY2D,KAAKpC,QAAQkB,aAAa,aACxCzC,EACF4I,EAAUM,SAASlJ,IAAc6I,EAAS9J,QAAO,SAAAwC,GAAO,OAAIA,EAAQ1G,OAAO,IAAEwL,OAE7EwC,EAAShF,SAAQ,SAAAtC,GACf,IAAM4H,EAAiB5H,EAAQ6H,SAASC,MACxCT,IAAUO,GAAiBP,CAC7B,GAEJ,CAEA,IAAIU,EAAW,GACVX,GAAiBhF,KAAKhC,eACpBiH,IACHU,EAAW3F,KAAKN,yBAElBM,KAAKP,cAAcwF,EAASU,IAG9B,IAAMC,EAAqB5F,KAAKjB,oBAAoBH,cAAc,SAE5DiH,EAAmB,CACvBZ,QAAAA,EACAa,cAAeH,EACfI,UAAWH,EAAqBA,EAAmB9O,KAAO,GAC1DkP,UAAWJ,EAAqBA,EAAmBvI,KAAO,IAK5D,OAHK4H,GACHjF,KAAK5B,OAAOwE,KAAKqD,EAAAA,GAAiBC,6BAA8BL,GAE3DA,CACT,GAAC,CAAA/F,IAAA,wBAAA/I,MAED,WACE,IAAM4O,EAAW,GACb9G,EAAkB,GACtB,GAA0B,WAAtBmB,KAAK5C,MAAMjD,OAAqB,CAClC,IAAMgM,EAAcnG,KAAKmF,aAAa,GAClCnF,KAAKnB,gBACPA,EAAkBmB,KAAKnB,gBACdsH,GAAeA,EAAYtH,kBACpCA,EAAkBsH,EAAYtH,gBAElC,MAAWmB,KAAKnB,kBACdA,EAAkBmB,KAAKnB,iBAGzB,OADA8G,EAASxF,KAAKtB,GACP8G,CACT,GAAC,CAAA7F,IAAA,gBAAA/I,MAED,SAAekO,EAASU,GCplBgB,IAACjO,EDqlBlCuN,GASHjF,KAAKpC,QAAQ8D,UAAUE,OAAO,aAC9BwE,MAAMC,KAAKrG,KAAKjB,oBAAoBgC,UAAUb,SAAQ,SAAAtC,GACpDA,EAAQ8D,UAAUE,OAAO,YAC3B,IAC6B,OAAzB5B,KAAKrB,sBAAqDpF,IAAzByG,KAAKrB,kBACxCqB,KAAKrB,gBAAgB2H,UAAY,MAbnCtG,KAAKpC,QAAQ8D,UAAUC,IAAI,aAC3ByE,MAAMC,KAAKrG,KAAKjB,oBAAoBgC,UAAUb,SAAQ,SAAAtC,GACpDA,EAAQ8D,UAAUC,IAAI,YACxB,IAC6B,OAAzB3B,KAAKrB,sBAAqDpF,IAAzByG,KAAKrB,kBACxCqB,KAAKrB,gBAAgB2H,UC3lBe,OAAA3O,QAADD,ED2lByBiO,GC1lB/D,aAAAhO,OAEKD,EAAEU,KAAI,SAAAmO,GAAO,wIAAA5O,OAGH4O,EAAO,sCAEpBhO,KAAK,IAAG,YAET,GAAE,OD4lBN,GAAC,CAAAuH,IAAA,8BAAA/I,MAED,WACE,MAA6B,WAAtBiJ,KAAK5C,MAAMjD,MACpB,MAAC,EAAA2F,IAAA,iCAAA/I,MA/HD,SAAuCyP,GACrC,IAAMnF,EAAQmF,EAAc5H,cAAc,SACpC/F,EAAQ2N,EAAc5H,cAAc,8CACpC9F,EAAiB0N,EAAc5H,cAAc,kEAC7C6H,EAAeD,EAAc5H,cAAc,wCAC3C8H,EAA0BF,EAAc5H,cAAc,iDACtDmC,EAAWyF,EAAcG,oBAAsBH,EAAcG,mBAAmB1F,QAAQ,yBACxF2F,EAAgBJ,EAAc5H,cAAc,mCAC5CiI,EAAcL,EAAc5H,cAAc,oCAC1CgG,EAAe4B,EAAc9E,UAAUoF,SAAS,8BAItD,OAFKzF,EAAMnK,SAAWsP,EAAc9E,UAAUE,OAAO,cAE9C,CACL/K,GAAIwK,EAAMxK,GACVC,KAAMuK,EAAMvK,KACZC,MAAOsK,EAAMtK,MACbC,KAAMqK,EAAMvJ,QAAQd,KACpBE,QAASmK,EAAMnK,QACfE,SAAUoP,EAAc9E,UAAUoF,SAAS,eAC3CxP,WAAYyJ,EACZ1J,WAAYmP,EAAc9E,UAAUoF,SAAS,iBAC7CjO,MAAOA,EAAQ0M,SAAS1M,EAAMkO,kBAAexN,EAC7CT,eAAgBA,EAAkBA,EAAeiO,aAAejO,EAAewN,eAAa/M,EAC5FzB,QAAOsB,EAAAA,EAAA,GAAOiI,EAAMvJ,SAAO,IAAEd,UAAMuC,IACnCqN,cAAeA,EAAgBA,EAAcG,iBAAcxN,EAC3Dc,MAAO0G,EACH7F,EAAIsL,EAAcG,mBAAmB5F,UAClC3F,QAAO,SAAA4F,GAAE,OAAKA,EAAGC,QAAQ,wBAAwB,IACjD7I,KAAI,SAAA4I,GAAE,OAAIxD,EAAW0D,+BAA+BF,EAAG,SAC1DzH,EACJkM,SAAUpE,EAAMoE,SAChB5G,gBAAiBwC,EAAMvC,aAAa,yBACpCkI,sBAAuBP,EACvBzO,aAAe4M,EAAwD,GAAzC1J,EAAIsL,EAAc9E,WAAWnJ,KAAK,KAChEoC,0BAA2BiK,EAAe1J,EAAIsL,EAAc9E,WAAWnJ,KAAK,KAAO,GACnFqM,aAAAA,EACA3I,iBAAkByK,EAA0BA,EAAwBJ,eAAY/M,EAChF/B,KAAMqP,EAAcA,EAAYP,eAAY/M,EAEhD,qFAACiE,CAAA,CAnd4B,CAASyJ,EAAAA,IA6iBxCC,EAAAA,EAAAA,GAAkB1J,EAAYL,EAAWrG,KAAMqG,+3CExmBxC,IAAMgK,EAAsB,CACjCtQ,GAAI,GACJW,KAAM,GACN4P,WAAW,EACXC,eAAgB,KAChBrP,aAAc,GACdsP,SAAU,KACVC,QAAQ,EACRC,gBAAiB,KACjBpQ,UAAU,EACVqQ,aAAc,GACdvN,MAAO,GACPN,WAAY,CAAC,GAGF8N,EAAmB,SAAChQ,GAE/B,OADAA,EAAC0B,EAAAA,EAAA,GAAQ+N,GAAwBzP,GAC1B,wCAAPC,OACmCD,EAAE6P,OAAS,KAAO,GAAE,WAAA5P,OACnDD,EAAE+P,aAAe,oBAAH9P,OAAuBD,EAAE+P,cAAiB,GAAE,WAAA9P,OAC1DD,EAAEM,aAAY,iDAAAL,OAEbD,EAAEb,GAAK,OAAHc,OAAUD,EAAEb,GAAE,KAAM,GAAE,WAAAc,OAC1BD,EAAE+P,aAAe,0BAAH9P,OAA6BD,EAAE+P,aAAY,KAAM,GAAE,WAAA9P,OACjED,EAAE0P,UAAY,gCAAHzP,OAAmCD,EAAE0P,UAAS,KAAM,GAAE,WAAAzP,OACjED,EAAE2P,eAAiB,qCAAH1P,OAAwCD,EAAE2P,eAAc,KAAM,GAAE,WAAA1P,OAChFD,EAAE4P,UAAa5P,EAAE4P,SAAW,EAAK,+BAAH3P,OAAkCD,EAAE4P,SAAQ,KAAM,GAAE,WAAA3P,OAClFD,EAAE8P,gBAAkB,qCAAH7P,OAAwCD,EAAE8P,iBAAoB,GAAE,WAAA7P,OACjFD,EAAEiQ,QAAU,6BAAHhQ,OAAgCD,EAAEiQ,SAAY,GAAE,WAAAhQ,OACzDD,EAAEN,SAAW,4BAA8B,GAAE,WAAAO,OAC7CD,EAAEwC,MAAQ,cAAHvC,OAAiBD,EAAEwC,OAAU,GAAE,WAAAvC,OACtCD,EAAEkC,YAAaG,EAAAA,EAAAA,IAAiBrC,EAAEkC,YAAc,GAAE,SAAAjC,OACrDD,EAAEF,KAAI,aAGV,+3CCpCA,IAAMuB,EAAeC,EAAAA,OAAAA,EACfC,EAAe,WACnB,IACE,OAAOD,OAAAA,WAAAA,IAAAA,EAAAA,IAAAA,MAAAA,2GAAAA,MAAAA,EAAAA,KAAAA,mBAAAA,CAAAA,CAAAA,GACT,CAAE,MAAOE,GACP,MAAO,CAAC,CACV,CACF,CANqB,GAOfC,EAAMC,EAAAA,EAAA,GAAQL,GAAiBE,GAExB2O,EAA6B,CACxC/Q,GAAI,GACJgR,OAAQ,GACR7P,aAAc,GACd8P,QAAQ,EACRC,YAAa,GACb/Q,KAAM,GACNgR,OAAO,EACPC,UAAW,IAGAC,EAA0B,SAACxQ,GAEtC,OADAA,EAAC0B,EAAAA,EAAA,GAAQwO,GAA+BlQ,GACjC,sEAAPC,OACiED,EAAEoQ,OAAS,8BAAgC,GAAE,KAAAnQ,OAAID,EAAEM,aAAY,aAAAL,OAC1HD,EAAEb,GAAK,uBAAHc,OAA0BD,EAAEb,IAAO,GAAE,YAAAc,OACzCD,EAAEmQ,OAAS,2BAAHlQ,OAA8BD,EAAEmQ,QAAW,GAAE,YAAAlQ,OACrDD,EAAEqQ,YAAc,iCAAHpQ,OAAoCD,EAAEqQ,aAAgB,GAAE,YAAApQ,OACrED,EAAEuQ,UAAY,cAAHtQ,OAAiBD,EAAEuQ,WAAc,GAAE,aAAAtQ,OAC9CD,EAAEV,KAAI,0CAAAW,OACsCD,EAAEV,KAAI,WAChD,GAAE,YAAAW,OAEJD,EAAEsQ,MAAK,kDAAArQ,QAC6CmC,EAAAA,EAAAA,GAAc,gBAAiB,OAAQX,GAAO,sCAChG,GAAE,mBAIZ,omDC9CA,IAAMgP,EACI,KADJA,EAEK,aAFLA,EAGK,aASLhL,EAAa,CACjBrG,KAAM,aACNsG,MAAO,CAAC,CACNtG,KAAM,OACNoG,KAAM,MACNG,KAAM,UACNE,cAAc,GACb,CACDzG,KAAM,WACNuG,KAAM,SACNH,KAAM,6BACNK,aAAc,GACb,CACDzG,KAAM,kBACNuG,KAAM,SACNH,KAAM,oCACNK,aAAc,MAEhB,CACEzG,KAAM,UACNuG,KAAM,SACNH,KAAM,4BACNK,aAAc,MAEhB,CACEzG,KAAM,WACNuG,KAAM,UACNH,KAAM,4BACNK,cAAc,GAEhB,CACEzG,KAAM,aACNuG,KAAM,UACNH,KAAM,8BACNK,cAAc,GAEhB,CACEzG,KAAM,uBACNuG,KAAM,SACNH,KAAM,2CACNK,aAAc,GAEhB,CACEzG,KAAM,eACNuG,KAAM,SACNH,KAAM,wBACNK,aAAc,OAEhB6K,gBAAgB,GAGZlL,EACG,aAOYmL,EAAQ,SAAA5K,yRAAAC,CAAA2K,EAAA5K,GAAA,YAAAE,KAAA0K,+jBAO3B,SAAAA,EAAazK,GAAS,IAAAC,EA+BlB,mGA/BkBC,CAAA,KAAAuK,IACpBxK,EAAAF,EAAAI,KAAA,KAAMH,EAAST,EAAWrG,OACrBwR,uBAAyBzK,EAAKgD,QAAQ,mBACvChD,EAAKD,QAAQgB,cAAcf,EAAKgD,QAAQ,oBACxChD,EAAKD,QAETC,EAAKwJ,eAAiBzJ,EAAQkB,aAAa,oCAC3CjB,EAAK4J,aAAe5J,EAAKgD,QAAQ,gBAEjChD,EAAK0K,eACL1K,EAAK2K,qBACL3K,EAAK4K,4BACL5K,EAAK6K,kBAAiB,GACtB7K,EAAK8K,wBACL9K,EAAK+K,gBACL/K,EAAKgL,kCACLhL,EAAKiL,gCAELlL,EAAQC,EAAK/G,MAAMiS,KAAOlL,EAAKkL,KAAK7J,KAAIC,EAAAtB,IACxCD,EAAQC,EAAK/G,MAAMkS,MAAQnL,EAAKmL,MAAM9J,KAAIC,EAAAtB,IAC1CD,EAAQC,EAAK/G,MAAMmS,OAASpL,EAAKoL,OAAO/J,KAAIC,EAAAtB,IAC5CD,EAAQC,EAAK/G,MAAMoS,OAASrL,EAAKqL,OAAOhK,KAAIC,EAAAtB,IAC5CD,EAAQC,EAAK/G,MAAMqS,SAAWtL,EAAKsL,SAASjK,KAAIC,EAAAtB,IAEhDA,EAAKO,OAAOC,GAAG,eAAe,SAACC,GACR,aAAjBA,EAAQxH,MAAuB+G,EAAKiL,+BAC1C,IAEAjL,EAAKuL,UAAYvL,EAAKwL,gBACtB1J,EAAAA,EAAiBC,wBAAwBzC,EAAWrG,KAAM+G,EAAKO,sdAAMhF,CAAA,GAChEyE,EAAKD,QAAQiC,aAAa3C,IAAe,CAAEhD,MAAO2D,EAAKD,QAAQhE,WAAWsD,GAAYnG,SACzF8G,CACJ,CAiRC,SA/QDwK,IAAA,EAAAvI,IAAA,UAAA/I,MAMA,SAASuS,EAAK9K,GAAW,OAAO8K,EAAMtJ,KAAKuJ,MAAM/K,GAAWwB,KAAKwJ,OAAOhL,EAAS,GAEjF,CAAAsB,IAAA,cAAA/I,MAKA,SAAaA,GACXiJ,KAAKyJ,sBAAsB1S,GACtBiJ,KAAKa,QAAQ,SAAWb,KAAK0I,kBAAiB,GACnD1I,KAAK2I,wBACL3I,KAAK6I,iCACP,GAEA,CAAA/I,IAAA,OAAA/I,MAGA,SAAMyH,GAAW,OAAOwB,KAAKzB,QAAQ,QAAQ,EAAMC,EAAS,GAE5D,CAAAsB,IAAA,QAAA/I,MAGA,SAAOyH,GAAW,OAAOwB,KAAKzB,QAAQ,QAAQ,EAAOC,EAAS,GAE9D,CAAAsB,IAAA,SAAA/I,MAGA,SAAQyH,GAAW,OAAOwB,KAAKa,QAAQ,QAAUb,KAAKgJ,MAAMxK,GAAWwB,KAAK+I,KAAKvK,EAAS,GAE1F,CAAAsB,IAAA,SAAA/I,MAGA,WAEE,OADAiJ,KAAK6I,kCACE7I,KAAK0J,YAAY1J,KAAKa,QAAQ,YACvC,GAEA,CAAAf,IAAA,WAAA/I,MAKA,WACE,OAAOiJ,KAAKa,QAAQ,OACtB,GAAC,CAAAf,IAAA,gBAAA/I,MAED,WACE,IAAMqS,EAAY,CAAC,EAInB,OAHIpJ,KAAKpC,UACPwL,EAAUlM,KAAO8C,KAAKpC,QAAQ9F,SAEzBsR,CACT,GAAC,CAAAtJ,IAAA,QAAA/I,MAED,WAAoC,IAAAgJ,EAAA,KAA7BvB,EAAOuF,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,GAAAA,UAAA,GAAG,CAAEtF,QAAQ,GACpBD,EAAQC,QACXuB,KAAK5B,OAAOwE,KAAK+G,EAAAA,GAAeC,KAAM5J,KAAKoJ,WAE7CpJ,KAAK2I,wBACL3I,KAAK6J,uBAEL,IAAMC,GAAiBC,EAAAA,EAAAA,KAAYC,EAAAA,EAAAA,IAAShK,KAAKpC,QAAS,wBAC1DoC,KAAKpC,QAAQqM,MAAMC,mBAAqB,IACxClK,KAAKpC,QAAQqM,MAAME,UAAYnK,KAAKpC,QAAQwM,aAAe,KAC3DpK,KAAKpC,QAAQqM,MAAMC,mBAAqB,KACxClK,KAAK0I,mBACL1I,KAAKpC,QAAQqM,MAAME,UAAYnK,KAAKpC,QAAQyM,aAAe,KAC3DrK,KAAKpC,QAAQ8D,UAAUC,IAAIwG,GAC3B,IAAMmC,EAAetK,KAAKa,QAAQ,cAC5B0J,EAAavK,KAAKa,QAAQ,wBAChCb,KAAKwK,wBAAwBF,EAAcC,GAEvCvK,KAAKyK,mBAAmBC,OAAOC,aAAa3K,KAAKyK,mBACrDzK,KAAKyK,kBAAoBG,YAAW,WAClC7K,EAAKnC,QAAQqM,MAAME,UAAY,KAC/BpK,EAAK8I,kCACL9I,EAAKnC,QAAQ8D,UAAUC,IAAIwG,GAC3BpI,EAAKnC,QAAQ8D,UAAUE,OAAOuG,GACzB3J,EAAQC,QACXsB,EAAK3B,OAAOwE,KAAK+G,EAAAA,GAAekB,OAAQ9K,EAAKqJ,UAEjD,GAAGU,EACL,GAAC,CAAAhK,IAAA,SAAA/I,MAED,WAAqC,IAAA+K,EAAA,KAA7BtD,EAAOuF,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,GAAAA,UAAA,GAAG,CAAEtF,QAAQ,GACrBD,EAAQC,QACXuB,KAAK5B,OAAOwE,KAAK+G,EAAAA,GAAemB,MAAO9K,KAAKoJ,WAE9CpJ,KAAK2I,wBAEL,IAAMmB,GAAiBC,EAAAA,EAAAA,KAAYC,EAAAA,EAAAA,IAAShK,KAAKpC,QAAS,wBAG1DoC,KAAKpC,QAAQqM,MAAMC,mBAAqB,IACxClK,KAAKpC,QAAQqM,MAAME,UAAYnK,KAAKpC,QAAQyM,aAAe,KAC3DrK,KAAKpC,QAAQqM,MAAMC,mBAAqB,MACxCa,EAAAA,EAAAA,IAAa/K,KAAKpC,SAElBoC,KAAK0I,kBAAiB,GACtB1I,KAAKpC,QAAQqM,MAAME,WAAanK,KAAKgL,aAAehL,KAAKpC,QAAQyM,aAAgBrK,KAAKqH,gBAAmB,GAAK,KAC9GrH,KAAK0I,mBACL1I,KAAKpC,QAAQ8D,UAAUE,OAAOuG,GAC9BnI,KAAKpC,QAAQ8D,UAAUC,IAAIwG,GAGvBnI,KAAKyK,mBAAmBC,OAAOC,aAAa3K,KAAKyK,mBACrDzK,KAAKyK,kBAAoBG,YAAW,WAClC9I,EAAK4G,kBAAiB,GACtB5G,EAAKlE,QAAQqM,MAAME,UAAY,KAC/BrI,EAAK+G,kCACL/G,EAAKlE,QAAQ8D,UAAUE,OAAOuG,GACzB3J,EAAQC,QACXqD,EAAK1D,OAAOwE,KAAK+G,EAAAA,GAAesB,OAAQnJ,EAAKsH,UAEjD,GAAGU,EACL,GAAC,CAAAhK,IAAA,0BAAA/I,MAED,WAAyD,IAAZwT,EAAUxG,UAAArB,OAAA,EAAAqB,UAAA,QAAAxK,EACrD,GADiCwK,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,IAAAA,UAAA,GACjB,CACd,IAEImH,EAFEC,EAA2BhJ,SAASiJ,kBAAoBjJ,SAASkJ,gBACjEC,EAA0BtL,KAAKpC,QAAQ2N,wBAG3CL,EADEC,EAAyBK,UAAYF,EAAwBG,EAAIzL,KAAKpC,QAAQyM,cAAgBc,EAAyBK,UAAYL,EAAyBf,aACrJe,EAAyBK,UAAYF,EAAwBG,EAAIlB,EAEjEY,EAAyBK,WAEpC1D,EAAAA,EAAAA,IAAOqD,EAA0BA,EAAyBO,WAAYR,EACxE,CACA,OAAOlL,IACT,GAEA,CAAAF,IAAA,qBAAA/I,MAKA,WAKE,OAJAiJ,KAAK2L,gBAAkB3L,KAAK2L,kBAAoB3L,KAAKpC,QAAQ/G,GACzDuP,MAAMC,KAAKqE,OAAOvI,SAASlC,iBAAiB,SAADtI,OAAUqI,KAAKlJ,KAAI,UAAAa,OAASqI,KAAKpC,QAAQ/G,GAAE,YAAAc,OAAWqI,KAAKlJ,KAAI,OAC1G,IAEGkJ,KAAK2L,eACd,GAEA,CAAA7L,IAAA,4BAAA/I,MAKA,WAA6B,IAAAgM,EAAA,KAI3B,OAHA/C,KAAK4L,uBAAyB5L,KAAK4L,yBAA2B5L,KAAKa,QAAQ,WACvEuF,MAAMC,KAAKqE,OAAOvI,SAASlC,iBAAiB,SAADtI,OAAUqI,KAAKlJ,KAAI,gBAAAa,OAAeqI,KAAKa,QAAQ,WAAU,QAAOzF,QAAO,SAAAwC,GAAO,OAAIA,IAAYmF,EAAKnF,OAAO,IACrJ,MACGoC,KAAK4L,sBACd,GAAC,CAAA9L,IAAA,aAAA/I,MAED,WAAgB,OAAQiJ,KAAKa,QAAQ,YAAc,CAAG,GAAC,CAAAf,IAAA,wBAAA/I,MAEvD,SAAuBA,GACrBiJ,KAAKpC,SAAS7G,EAAQ,MAAQ,UAAY,aAAa,QAADY,OAASqI,KAAKlJ,KAAI,eAAeC,EACzF,GAEA,CAAA+I,IAAA,mBAAA/I,MAKA,WAA8B,IAAZuS,IAAGvF,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,KAAAA,UAAA,GACbuD,EAAWtH,KAAKa,QAAQ,YAC1ByG,EAAW,GACblB,MAAMC,KAAKrG,KAAKsI,uBAAuBvH,UACpCb,SAAQ,SAACtC,EAASiO,GAAK,OAAMjO,EAAQqM,MAAM6B,QAAWxC,GAAQuC,EAAQvE,EAAa,GAAK,MAAM,GAErG,GAAC,CAAAxH,IAAA,gBAAA/I,MAED,WAAiB,IAAA+M,EAAA,KACTiI,EAAU,WACdjI,EAAK+E,kCACL/E,EAAKlG,QAAQ8D,UAAUE,OArSjB,cAsSR,EACI5B,KAAKa,QAAQ,SACfb,KAAKpC,QAAQ8D,UAAUE,OAAOuG,GAC9ByC,YAAW,WACT9G,EAAKkI,QAAUlI,EAAKlG,QAAQwM,aAC5BtG,EAAKlG,QAAQ8D,UAAUC,IAAIwG,GAC3B4D,GACF,GAAG/L,KAAKiM,kBACDF,GACX,GAAC,CAAAjM,IAAA,wBAAA/I,MAED,WACE,OAAOiJ,KACJkM,6BACAC,2BACL,GAAC,CAAArM,IAAA,gCAAA/I,MAED,WAAiC,IAAAmN,EAAA,KAI/B,OAHAlE,KAAK2L,gBAAgBzL,SAAQ,SAAAtC,GAC3BA,EAAQsG,EAAKrD,QAAQ,YAAc,eAAiB,mBAAmB,YAAY,EACrF,IACOb,IACT,GAAC,CAAAF,IAAA,6BAAA/I,MAED,WAA8B,IAAAqV,EAAA,KAI5B,OAHApM,KAAK2L,gBAAgBzL,SAAQ,SAAAtC,GAC3BA,EAAQwO,EAAKvL,QAAQ,QAAU,eAAiB,mBAAmB,QAADlJ,OAASyU,EAAKtV,KAAI,aAAY,EAClG,IACOkJ,IACT,GAAC,CAAAF,IAAA,kCAAA/I,MAED,WACE,IAAIsV,GAAqB,EACnBC,EAActM,KAAKpC,QAAQiC,aAAa,+BAC9C,GAAIG,KAAKgL,aAAc,CACrB,IAAMuB,EAAcvM,KAAKsI,uBAAuBkE,kBAAoBxM,KAAKa,QAAQ,YACjFwL,EAAsBE,EAAc,CACtC,MAAWD,GAAetM,KAAKsI,uBAAuB+B,aAAe,EAC/DrK,KAAKsI,uBAAuB+B,aAAerK,KAAKqH,gBAClDgF,GAAqB,EACrBrM,KAAKpC,QAAQ8D,UAAUC,IAAI,OAE3B3B,KAAKpC,QAAQqM,MAAMwC,UAAYzM,KAAKqH,eAAiB,MAGlDrH,KAAKa,QAAQ,UAAWb,KAAKgM,QAAUhM,KAAKpC,QAAQwM,cACzDiC,EAAsBrM,KAAKgM,QAAUhM,KAAKpC,QAAQyM,cAQpD,OANArK,KAAK2L,gBAAgBzL,SAAQ,SAACtC,GAAcA,EAAQ8D,UAAU2K,EAAqB,SAAW,OAAO,YAAa,IAE7GC,GACHtM,KAAKpC,QAAQ8D,UAAU2K,EAAqB,SAAW,OAAO,WAGzDrM,IACT,GAAC,CAAAF,IAAA,4BAAA/I,MAED,WAA6B,IAAA2V,EAAA,KAC3B,GAAI1M,KAAKgL,aAAc,CACrB,IAAMuB,EAAcvM,KAAKsI,uBAAuBkE,kBAAoBxM,KAAKa,QAAQ,YAC7E0L,EAAc,GAChBvM,KAAK2L,gBAAgBzL,SAAQ,SAACtC,GAC5B,IAAMmK,EAAcnK,EAAQkB,aAAa,QAADnH,OAAS+U,EAAK5V,KAAI,mBACtDiR,IAAanK,EAAQwD,UAAY2G,EAAY9P,QAjW1C,MAiW0EsU,EAAYI,YAC/F,GAEJ,CACA,OAAO3M,IACT,GAAC,CAAAF,IAAA,uBAAA/I,MAED,WAAwB,IAAA6V,EAAA,KAClB5M,KAAK4L,wBACP5L,KAAK4L,uBAAuB1L,SAAQ,SAAAtC,GAClC,IAAMiP,EAAYjP,EAAQgP,EAAK9V,MAC3B+V,GACFA,EAAU7D,OAEd,GAEJ,GAAC,CAAAlJ,IAAA,eAAA/I,MAED,WAAgB,IAAA+V,EAAA,KAGd,OAFA9M,KAAK+M,QAAU,CAAC,CAACrC,OAAQ,CAAEsC,OAAQC,EAAAA,GAAqB,kBAAMH,EAAK5D,QAAQ,GAnXhE,QAoXXxI,EAAAA,EAAgBvC,aAAa6B,KAAK+M,QAAS5P,EAAWrG,MAC/CkJ,IACT,2EAACqI,CAAA,CAxT0B,CAASpB,EAAAA,IA2TtCC,EAAAA,EAAAA,GAAkBmB,EAAUlL,EAAWrG,KAAMqG,w5CCtX7C,IAAM+P,EAAqB,WACzB,IACE,OAAOlU,EAAAA,OAAAA,EACT,CAAE,MAAOE,GACP,MAAO,CAAC,CACV,CACF,CAN2B,GAQdiU,EAA6B,CACxCC,MAAM,EACNC,QAAS,GAGEC,EAA4B,CACvCC,SAAU,KACVC,WAAY,GACZC,MAAO,GACPC,SAAU,GACVnW,KAAM,KACNoW,MAAO,CAAC,EACR3V,aAAc,GACd4B,WAAY,CAAC,GAGFgU,EAAyB,SAAAlW,GAEpC,IAAMmW,GADNnW,EAAC0B,EAAAA,EAAA,GAAQkU,GAA8B5V,IAChB8V,WAAa9V,EAAE8V,WAAW3W,GAAK,GAChDiX,GAAkBC,EAAAA,EAAAA,GAAS,aAAcF,EAAcX,SAAsB3T,EAEnF,MAAO,6CAAP5B,OAEImW,EAAkB,qCAAuC,GAAE,UAAAnW,OAC3DD,EAAEM,aAAY,WAAAL,OACdD,EAAEH,KAAO,SAAHI,OAAYD,EAAEH,KAAKoB,KAAI,cAAAhB,OAAaD,EAAEH,KAAKqB,OAAM,aAAAjB,OAAYD,EAAEH,KAAKkW,MAAK,KAAM,GAAE,UAAA9V,OACvFD,EAAEkC,YAAaG,EAAAA,EAAAA,IAAiBrC,EAAEkC,YAAc,GAAE,yDAAAjC,QAElDqW,EAAAA,EAAAA,IAAW5U,EAAAA,EAAAA,EAAC,CAAC,EAAI6U,EAAAA,IAAmBd,GAA+BzV,EAAEiW,QAAQ,kEAAAhW,OAG7EkW,GAAgBC,EAAkBA,EAAgBI,YAAc,iBAAgB,aAAAvW,OAC/ED,EAAE6V,SAAQ,0CAAA5V,OAAyCD,EAAE+V,MAAK,MAAA9V,OAAKD,EAAE6V,SAAQ,WAAA5V,OAC1ED,EAAEgW,SAAW,8CAAH/V,OAAiDD,EAAEgW,SAAQ,QAAS,GAAE,mIAOtF,u3CCpDO,IAAMS,EAA2B,CACtC3W,KAAM,GACN4W,aAAc,GACdC,SAAS,EACTC,uBAAuB,EACvBC,UAAW,GACXvW,aAAc,GACd4B,WAAY,CAAC,GAGF4U,EAAwB,SAAA9W,GAEnC,OADAA,EAAC0B,EAAAA,EAAA,GAAQ+U,GAA6BzW,GAC/B,yCAAPC,OAEID,EAAE2W,QAAU,4BAA8B,GAAE,UAAA1W,OAC5CD,EAAE4W,sBAAwB,iCAAmC,GAAE,UAAA3W,OAC/DD,EAAE0W,aAAe,mCAAHzW,OAAsCD,EAAE0W,cAAiB,GAAE,WAAAzW,OACzED,EAAE6W,UAAY,gCAAH5W,OAAmCD,EAAE6W,WAAc,GAAE,UAAA5W,OAChED,EAAEM,aAAY,WAAAL,OACdD,EAAEkC,YAAaG,EAAAA,EAAAA,IAAiBrC,EAAEkC,YAAc,GAAE,SAAAjC,OACpDD,EAAEF,KAAI,aAGV,k8CCLA,IAAMiX,GAAmBzR,EAAAA,EAAAA,GAAS,sBAADrF,OAAuBsF,EAAAA,EAAQ,kBAEnDyR,EAA0B,CACrC7X,GAAI,KACJmB,aAAc,GACd2W,eAAe,EACfC,KAAM,KACNC,QAAS,KACTC,QAAS,KACT1X,UAAU,EACV2X,YAAa,CAAC,SAAU,cACxBC,UAAW,UACXC,iBAAiB,EACjBC,UAAW,GACXC,eAAgBV,EAAiBU,eACjCC,iBAAkBX,EAAiBW,iBACnCC,gBAAiBZ,EAAiBY,gBAClCzV,WAAY,CAAC,EACb0V,eAAgB,GAChBzQ,gBAAiB,GACjB0Q,mBAAoB,GACpBC,eAAgB,CACdC,YAAa,GACbC,mBAAmB,EACnB7X,MAAO,GACP2B,aAAa,EACbmW,aAAa,EACbC,gBAAgB,EAChBC,MAAM,EACNC,sBAAuB,CACrB,yBAA0B,KAG9BrV,oBAAoB,EACpBH,QAAS,MAGEyV,EAAuB,SAACrY,GAGnC,OAFAA,EAAC0B,EAAAA,EAAA,GAAQsV,GAA4BhX,IACnCb,GAAKa,EAAEb,IAAM,oBAAqB8E,EAAAA,EAAAA,KAC7B,4CAAPhE,OACYD,EAAEE,SAAW,cAAgB,GAAE,kBAAAD,OAC/BD,EAAEiX,cAAgB,yBAA2B,GAAE,kBAAAhX,OAC/CD,EAAE+C,mBAAqB,2CAA6C,GAAE,kBAAA9C,OACtED,EAAEM,cAAgB,GAAE,kBAAAL,OACrBD,EAAEb,GAAE,2DAAAc,OAEPD,EAAEkX,KAAO,+BAAHjX,OAAkCD,EAAEkX,KAAI,KAAM,GAAE,cAAAjX,OACtDD,EAAEmX,QAAU,mCAAHlX,OAAsCD,EAAEmX,QAAO,KAAM,GAAE,cAAAlX,OAChED,EAAEG,MAAQ,gBAAkB,GAAE,cAAAF,OAC9BD,EAAEqX,YAAc,sCAAHpX,OAAyCD,EAAEqX,YAAYxW,KAAK,KAAI,KAAM,GAAE,cAAAZ,OACrFD,EAAEoX,QAAU,mCAAHnX,OAAsCD,EAAEoX,QAAO,KAAM,GAAE,cAAAnX,OAChED,EAAEsX,UAAY,qCAAHrX,OAAwCD,EAAEsX,UAAS,KAAM,GAAE,cAAArX,OACtED,EAAEE,SAAW,WAAa,GAAE,cAAAD,OAC5BD,EAAEmH,iBAAyC,KAAtBnH,EAAEmH,gBAAyB,0BAAHlH,OAA6BD,EAAEmH,gBAAe,KAAM,GAAE,cAAAlH,OACnGD,EAAE4X,gBAAuC,KAArB5X,EAAE4X,eAAwB,yBAAH3X,OAA4BD,EAAE4X,eAAc,KAAM,GAAE,cAAA3X,OAC/FD,EAAE6X,oBAA+C,KAAzB7X,EAAE6X,mBAA4B,+BAAH5X,OAAkCD,EAAE6X,mBAAkB,KAAM,GAAE,cAAA5X,OACjHD,EAAEkC,YAAaG,EAAAA,EAAAA,IAAiBrC,EAAEkC,YAAc,GAAE,eAAAjC,OAEpDD,EAAEuX,gBAAe,yCAAAtX,OACsBD,EAAEwX,UAAS,WAAAvX,OAAUD,EAAEb,GAAK,QAAO,iBAAAc,OACzED,EAAEwX,UAAS,GAAAvX,OACTD,EAAE4C,QAAU,wCAA0C,GAAE,4BAAA3C,OAC3CD,EAAEb,GAAK,QAAO,kDAAAc,OAAiDD,EAAEwX,UAAS,wBAAAvX,OACtFD,EAAE4C,QAAU,GAAH3C,QAAM2E,EAAAA,EAAAA,GAAelD,EAAAA,EAAC,CAAC,EAAImD,EAAAA,GAAuB7E,EAAE4C,UAAU,WAAY,IACvF,GAAE,YACH,uDAAA3C,QAGCqY,EAAAA,EAAAA,GAAgB5W,EAAAA,EAAC,CAAC,EACf1B,EAAE8X,gBAAc,IACnB3Y,GAAI,GAAFc,OAAKD,EAAEb,GAAE,SACX4Y,YAAa/X,EAAEyX,eACf/X,SAAUM,EAAEN,SACZwC,WAAY,CAAE,6BAA8B,UAC5C,YAAAjC,QACAqY,EAAAA,EAAAA,GAAgB5W,EAAAA,EAAC,CAAC,EACf1B,EAAE8X,gBAAc,IACnB3Y,GAAI,GAAFc,OAAKD,EAAEb,GAAE,WACX4Y,YAAa/X,EAAE0X,iBACfhY,SAAUM,EAAEN,SACZwC,WAAY,CAAE,6BAA8B,YAC5C,YAAAjC,QACAqY,EAAAA,EAAAA,GAAgB5W,EAAAA,EAAC,CAAC,EACf1B,EAAE8X,gBAAc,IACnB3Y,GAAI,GAAFc,OAAKD,EAAEb,GAAE,UACX4Y,YAAa/X,EAAE2X,gBACfjY,SAAUM,EAAEN,SACZwC,WAAY,CAAE,6BAA8B,WAC5C,qEAAAjC,QAGAsY,EAAAA,EAAAA,GAA6BvY,EAAEiO,UAAS,yBAGhD,0DCtHasK,EAA+B,SAAAvY,GAC1C,OAAOA,EACHA,EAAEU,KAAI,SAAAmO,GAAO,gJAAA5O,OAGG4O,EAAO,kCAEvBhO,KAAK,IACL,EACN,2FCpBO,IAAM2X,EAAK,CAChBf,eAAgB,MAChBC,iBAAkB,QAClBC,gBAAiB,MAGNc,EAAK,CAChBhB,eAAgB,MAChBC,iBAAkB,QAClBC,gBAAiB,QAGNe,EAAK,CAChBjB,eAAgB,MAChBC,iBAAkB,QAClBC,gBAAiB,QAGNgB,EAAK,CAChBlB,eAAgB,MAChBC,iBAAkB,QAClBC,gBAAiB,MAENiB,EAAK,CAChBnB,eAAgB,OAChBC,iBAAkB,OAClBC,gBAAiB,SAGNkB,EAAK,CAChBpB,eAAgB,MAChBC,iBAAkB,QAClBC,gBAAiB,QAGNmB,EAAK,CAChBrB,eAAgB,MAChBC,iBAAkB,QAClBC,gBAAiB,8hHCtBnB,IAAMoB,GAAczT,EAAAA,EAAAA,GAAS,sBAADrF,OAAuBsF,EAAAA,EAAQ,WACrDwR,GAAmBzR,EAAAA,EAAAA,GAAS,sBAADrF,OAAuBsF,EAAAA,EAAQ,kBAGhEjE,EAAQ,OAER,IAAMmP,EAAgC,oBAChCuI,EAAa,CACjBC,QAASF,EAAYG,OACrBC,MAAOJ,EAAYK,cAGfC,EAAQ,IAAIC,KAUZ7T,EAAa,CAEjBrG,KAAM,kBAaNsG,MAAO,CACL,CACEtG,KAAM,OACNuG,KAAM,SACNH,KAAM,8BACL,CACDpG,KAAM,UACNuG,KAAM,UACL,CACDvG,KAAM,cACNuG,KAAM,QACNH,KAAM,oCACNK,aAAc,CAAC,SAAU,eACxB,CACDzG,KAAM,UACNuG,KAAM,SACNH,KAAM,iCACNK,cAAc0T,EAAAA,EAAAA,IAAa,IAAID,KAAKD,EAAMG,cAAgB,IAAKH,EAAMI,WAAYJ,EAAMK,aACtF,CACDta,KAAM,UACNuG,KAAM,SACNH,KAAM,iCACNK,cAAc0T,EAAAA,EAAAA,IAAaF,IAC1B,CACDja,KAAM,YACNuG,KAAM,SACNH,KAAM,mCACNK,aAAc,UACdD,cAAe,CACb,UACA,UAGJ,CACExG,KAAM,WACNuG,KAAM,UACNH,KAAM,eACNK,cAAc,GAEhB,CACEzG,KAAM,QACNuG,KAAM,SACNH,KAAM,QACNI,cAAe,CACb,GACA,SAEFC,aAAc,MASC8T,EAAY,SAAA5T,yRAAAC,CAAA2T,EAAA5T,GAAA,YAAAE,KAAA0T,+jBAO/B,SAAAA,EAAazT,GAAS,IAAAC,EAgBa,mGAhBbC,CAAA,KAAAuT,IACpBxT,EAAAF,EAAAI,KAAA,KAAMH,EAAST,EAAWrG,OACrBwa,WAAa,CAAC,EACnBzT,EAAKG,cAAe,EACpBH,EAAK0T,QAEL1T,EAAKD,QAAQT,EAAWrG,MAAMyI,SAAY1B,EAAK0B,SAAUL,KAAIC,EAAAtB,IAC7DA,EAAKD,QAAQT,EAAWrG,MAAM0a,aAAgB3T,EAAK2T,aAActS,KAAIC,EAAAtB,IACrEA,EAAKD,QAAQT,EAAWrG,MAAM0I,aAAe3B,EAAK2B,aAAaN,KAAIC,EAAAtB,IAEnEA,EAAK4T,iBAAmB,CACtBC,OAAQ7T,EAAKD,QAAQkB,aAAa,wBAClC6S,WAAY9T,EAAKD,QAAQkB,aAAa,8BAAgCjB,EAAKD,QAAQkB,aAAa,8BAAgC2R,EAAYmB,cAC5I3M,QAASpH,EAAKD,QAAQkB,aAAa,0BAGrCjB,EAAKgU,6BAA4BhU,CACnC,CAoWC,SAlWDwT,IAAA,EAAAvR,IAAA,YAAA/I,MAKA,SAAW+a,GACT,IAAMC,EAAW/R,KAAKgS,iBAAiB,QACvC,IAAKD,EAASE,eAAe/S,KAAK6S,EAA7BA,CAAuCD,GAAe,OAAO,EAClE,IAAMI,EAA2B,MAAdJ,GAAqC,KAAfA,EACzCK,EAAgCnS,KAAKoS,aAAaN,GAA1C7M,EAAOkN,EAAPlN,QAAS0M,EAAUQ,EAAVR,WAMjB,OALKO,IACEjN,EAEO0M,GAAcU,EAAQC,KAAK,qDADrCD,EAAQC,KAAK,wBAGVJ,GAAejN,GAAW0M,CACnC,GAEA,CAAA7R,IAAA,UAAA/I,MAOA,SAAS+a,GAA0B,IAAdtT,EAAOuF,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,GAAAA,UAAA,GAAG,CAAC,EACxB6K,EAAOkD,GAAaS,EAAAA,EAAAA,IAAWT,IAAcU,EAAAA,EAAAA,IAAe,IAIlE,GAHAxS,KAAKyS,yBAAyB,OAAQzS,KAAK0S,WAAW9D,IACtD5O,KAAKzB,QAAQ,UAAWuT,IAEnBtT,EAAQmU,UAAW,CACtB,IAAAC,EAA2B,CAAChE,EAAKwC,UAAWxC,EAAKuC,WAAYvC,EAAKsC,eAA3D2B,EAAGD,EAAA,GAAEE,EAAKF,EAAA,GAAEG,EAAIH,EAAA,GACjBI,EAAgBhT,KAAKiT,oBACrBC,EAAuB,SAACnc,GAAK,OAAKoc,MAAMpc,GAAS,GAAKA,EAAM4V,UAAU,EAC5EqG,EAAcH,IAAItU,QAAQ,QAAS2U,EAAqBL,GAAM,CAAEpU,QAAQ,IACxEuU,EAAcF,MAAMvU,QAAQ,QAAS2U,EAAqBJ,GAAQ,CAAErU,QAAQ,IAC5EuU,EAAcD,KAAKxU,QAAQ,QAAS2U,EAAqBH,GAAO,CAAEtU,QAAQ,IAC1EuB,KAAKoT,qBACP,CACF,GAEA,CAAAtT,IAAA,cAAA/I,MAMA,WAAiC,IAApBsc,EAAUtP,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,IAAAA,UAAA,GACrB/D,KAAK5C,MAAMhG,SAAWic,EACtB,IAAML,EAAgBhT,KAAKiT,oBAC3BD,EAAcH,IAAItU,QAAQ,WAAY8U,GACtCL,EAAcF,MAAMvU,QAAQ,WAAY8U,GACxCL,EAAcD,KAAKxU,QAAQ,WAAY8U,EACzC,GAEA,CAAAvT,IAAA,aAAA/I,MAKA,WAA6C,IAAjC+a,EAAU/N,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,GAAAA,UAAA,GAAG/D,KAAK5C,MAAMyR,QAClC7O,KAAKsT,eAAe,UAAWxB,EACjC,GAEA,CAAAhS,IAAA,aAAA/I,MAKA,WAA6C,IAAjC+a,EAAU/N,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,GAAAA,UAAA,GAAG/D,KAAK5C,MAAM0R,QAClC9O,KAAKsT,eAAe,UAAWxB,EACjC,GAEA,CAAAhS,IAAA,eAAA/I,MAKA,SAAcuS,GACZtJ,KAAKyS,yBAAyB,YAAanJ,GAC3C,IAAM0J,EAAgBhT,KAAKiT,oBACrBzU,EAAOtD,EAAO8X,EAAcF,MAAMjS,QAAQ,YAChDrC,EAAQ0B,SAAQ,SAACqT,GAAS,OAAMA,EAAUvc,KAAQ0Z,EAAWpH,GAAKiK,EAAUxc,QAAUwc,EAAUvc,IAAK,IACrGgc,EAAcF,MAAMvU,QAAQ,UAAWC,EACzC,GAAC,CAAAsB,IAAA,eAAA/I,MAED,WACEiJ,KAAKhC,cAAe,CACtB,GAEA,CAAA8B,IAAA,WAAA/I,MAOA,WAAgC,IAAtBiO,EAAYjB,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,IAAAA,UAAA,GACdgL,EAAc/O,KAAKoS,eACnBoB,EAAaxT,KAAKpC,QAAQiC,aAAa,YACvC4T,EAAUzT,KAAK0T,mBACfC,GAAgBH,GAAcC,GAAYvb,OAAO0b,OAAO7E,GAAa8E,OAAM,SAACtY,GAAI,OAAKA,CAAI,IAC3FoK,EAAW,GACXmO,EAAe,KACb9O,IAAiBhF,KAAKhC,cAAiBgC,KAAK+T,gBAChD/T,KAAKoT,oBAAoBO,EAAc,GAAK,SAC5ChO,EAAW3F,KAAKgU,qBAAqBjF,GACrC+E,EAAe9T,KAAKiU,2BAA2BlF,IAGjD,IAAMiE,EAAgBhT,KAAKiT,oBAC3B,MAAO,CACLhO,QAAS0O,EACT7N,cAAeH,EACfuO,WAAYJ,EACZ/N,UAAWiN,EAAcH,IAAIjV,QAAQgB,cAAc,UAAU9H,KAAO,IAClEkc,EAAcF,MAAMlV,QAAQgB,cAAc,UAAU9H,KAAO,IAC3Dkc,EAAcD,KAAKnV,QAAQgB,cAAc,UAAU9H,KAEzD,GAEA,CAAAgJ,IAAA,eAAA/I,MAKA,WACE,OAAOka,EAAAA,EAAAA,KAAasB,EAAAA,EAAAA,IAAWvS,KAAKmU,sBACtC,GAEA,CAAArU,IAAA,eAAA/I,MAOA,WAAsD,IAAxC+a,EAAU/N,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,GAAAA,UAAA,GAAG/D,KAAKmU,qBACxBvF,GAAO4D,EAAAA,EAAAA,IAAeV,GAAc,IACpC/C,EAAc/O,KAAKa,QAAQ,eAAeuT,QAAO,SAACC,EAAKtd,GAAK,OAAAqC,EAAAA,EAAA,GAAWib,GAAG,GAAAC,EAAA,GAAGvd,GAAQ,GAAI,GAAK,CAAC,GAC/Fyc,EAAaxT,KAAKpC,QAAQiC,aAAa,YACvC4T,EAAUzT,KAAK0T,mBACrB,MAAO,CACLzO,SAAWuO,GAAcC,KAAac,EAAAA,EAAAA,IAAc3F,GACpD+C,YAAc6B,GAAcC,IAAa1E,EAAY4C,YAAgB/C,GAAQ5O,KAAKsR,WAAWzC,SAAaD,GAAQ5O,KAAKsR,WAAWxC,QAClI4C,QAAU8B,GAAcC,IAAa1E,EAAY2C,SAAU8C,EAAAA,EAAAA,IAAkB1C,GAEjF,GAAC,CAAAhS,IAAA,QAAA/I,MAED,WAGE,GAFAiJ,KAAKyU,kBACLzU,KAAK0U,gBACD1U,KAAK5C,MAAMwR,KAAM,CACnB,IAAMA,EAAO5O,KAAK5C,MAAMwR,KACxB5O,KAAK5C,MAAMwR,KAAO,KAClB5O,KAAKzB,QAAQ,OAAQqQ,EACvB,CACF,GAAC,CAAA9O,IAAA,aAAA/I,MAED,SAAY6X,GACV,OAAQA,aAAgBoC,MAAQC,EAAAA,EAAAA,IAAarC,GAASA,GAAQ,EAChE,GAAC,CAAA9O,IAAA,uBAAA/I,MAED,SAAsBgY,GACpB,IAAI4F,EAAiBzc,OAAO0c,QAAQ7F,GAAazJ,MAAK,SAAAuP,GAAA,IAAAC,EAAAC,EAAAF,EAAA,GAAe,OAATC,EAAA,IAASA,EAAA,EAAc,IAKnF,GAJAH,EAAiBA,GAAkBA,EAAe,GAC7B3U,KAAKgV,mBACb1O,UAAY,QAEF/M,IAAnBob,EAA8B,CAChC,IAAMM,EAAejV,KAAKkV,uBAAuBP,GAC7CM,GACwB,OAAtBjV,KAAKmV,mBAA+C5b,IAAtByG,KAAKmV,eACrCnV,KAAKmV,aAAa7O,WAAY2J,EAAAA,EAAAA,GAA6BgF,GAGjE,CACA,MATiB,EAUnB,GAAC,CAAAnV,IAAA,yBAAA/I,MAED,SAAwB4d,GAAgB,IAAAS,EAAAC,EAAAC,EAChC3P,EAAW,GAUjB,MATuB,WAAnBgP,GAAoD,QAAzBS,EAAIpV,KAAKyR,wBAAgB,IAAA2D,GAArBA,EAAuB1D,QACxD/L,EAASxF,KAAKH,KAAKyR,iBAAiBC,QAEf,eAAnBiD,GAAwD,QAAzBU,EAAIrV,KAAKyR,wBAAgB,IAAA4D,GAArBA,EAAuB1D,YAC5DhM,EAASxF,KAAKH,KAAKyR,iBAAiBE,YAEf,YAAnBgD,GAAqD,QAAzBW,EAAItV,KAAKyR,wBAAgB,IAAA6D,GAArBA,EAAuBrQ,SACzDU,EAASxF,KAAKH,KAAKyR,iBAAiBxM,SAE/BU,CACT,GAAC,CAAA7F,IAAA,6BAAA/I,MAED,SAA4BgY,GAC1B,IAAM+E,EAAe,GACjBa,EAAiBzc,OAAO0c,QAAQ7F,GAAazJ,MAAK,SAAAiQ,GAAA,IAAAC,EAAAT,EAAAQ,EAAA,GAAe,OAATC,EAAA,IAASA,EAAA,EAAc,IAKnF,OAJAb,EAAiBA,GAAkBA,EAAe,KAEhDb,EAAa3T,KAAKwU,GAEbb,CACT,GAAC,CAAAhU,IAAA,2BAAA/I,MAED,SAA0B0e,EAAU1e,GAClCiJ,KAAK5C,MAAMqY,GAAY1e,EACvBiJ,KAAKpC,QAAQ8X,aAAa,QAAD/d,OAASwQ,GAA0BxQ,QAAGW,EAAAA,EAAAA,IAAcmd,IAAa1e,EAC5F,GAAC,CAAA+I,IAAA,iBAAA/I,MAED,SAAgBuS,EAAKwI,GACnB,IAAM6D,GAAWnD,EAAAA,EAAAA,IAAeV,GAE1BlD,EAAsB,MAAdkD,IAAsByC,EAAAA,EAAAA,IAAcoB,IAC9CnD,EAAAA,EAAAA,IAAuB,YAARlJ,EAAoB,OAAI/P,GACvCoc,EAEJ3V,KAAK4V,YAAWxc,EAAAA,EAAC,CAAC,EAAI4G,KAAKsR,YAAU,GAAAgD,EAAA,GAAGhL,EAAMsF,IAAQtF,GACtDtJ,KAAKsR,WAAWhI,GAAOsF,EACvB5O,KAAKyS,yBAAyBnJ,EAAKtJ,KAAK0S,WAAW9D,IACnD5O,KAAK6V,2BACL7V,KAAK8V,oBACP,GAAC,CAAAhW,IAAA,qBAAA/I,MAED,WACE,IAAMic,EAAgBhT,KAAKiT,oBACrB8C,EAAqB/C,EAAcF,MAAMjS,QAAQ,SAEvDmV,EAA2B,CAAChD,EAAcH,IAAIhS,QAAQ,SACpDkV,EAAsBE,OAAOF,GAFK,EAEgD,GAClF/C,EAAcD,KAAKlS,QAAQ,UAFtBgS,EAAGmD,EAAA,GAAElD,EAAKkD,EAAA,GAAEjD,EAAIiD,EAAA,GAIjBE,EAAkB,SAACnf,GAAK,OAAgB,IAAVA,GAAeA,CAAK,EACxD,OAAQmf,EAAgBrD,IAAQqD,EAAgBpD,IAAUoD,EAAgBnD,GAAK,GAAApb,OAAOob,EAAI,KAAApb,OAAImb,EAAK,KAAAnb,OAAIkb,GAAQ,IACjH,GAAC,CAAA/S,IAAA,mBAAA/I,MAED,WACE,IAAMic,EAAgBhT,KAAKiT,oBACrBJ,EAAMG,EAAcH,IAAIhS,QAAQ,SAChCiS,EAAQE,EAAcF,MAAMjS,QAAQ,SACpCkS,EAAOC,EAAcD,KAAKlS,QAAQ,SACxC,MAAe,KAARgS,GAAwB,KAAVC,GAAyB,KAATC,CACvC,GAAC,CAAAjT,IAAA,oBAAA/I,MAED,WAKE,OAJAiJ,KAAKgT,cAAgBhT,KAAKgT,eACxB5M,MAAMC,KAAKrG,KAAKpC,QAAQqC,iBAAiB,SAADtI,OAAUwQ,EAA0B,WACzE/P,KAAI,SAAC+d,GAAe,MAAK,CAACA,EAAgBrX,aAAa,QAADnH,OAASwQ,EAA0B,SAASgO,EAAgB,IAClH/B,QAAO,SAACC,EAAG+B,GAAA,IAAAC,EAAAtB,EAAAqB,EAAE,GAAC/Y,EAAIgZ,EAAA,GAAEF,EAAeE,EAAA,UAAAjd,EAAAA,EAAA,GAAYib,GAAG,GAAAC,EAAA,GAAGjX,EAAO8Y,EAAgB,eAAa,GAAK,CAAC,GAC7FnW,KAAKgT,aACd,GAAC,CAAAlT,IAAA,mBAAA/I,MAED,WAEE,OADAiJ,KAAKmV,aAAenV,KAAKmV,cAAgBnV,KAAKpC,QAAQgB,cAAc,8BAC7DoB,KAAKmV,YACd,GAAC,CAAArV,IAAA,kBAAA/I,MAED,WACEiJ,KAAKsW,aACLtW,KAAKuW,YACP,GAAC,CAAAzW,IAAA,cAAA/I,MAED,WAA4C,IAA/Byf,EAAMzS,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,GAAAA,UAAA,GAAG/D,KAAKsR,WAAYhI,EAAGvF,UAAArB,OAAA,EAAAqB,UAAA,QAAAxK,EAChCsV,EAA2B2H,EAA3B3H,QAASC,EAAkB0H,EAAlB1H,QAASF,EAAS4H,EAAT5H,KAC1B,GAAIC,GAAWC,GAAYD,EAAUC,EAAU,CAC7C,IAAM2H,EAAwB,YAARnN,EAAqB,UAAY,UACvD+I,EAAQC,KAAK,2DAAD3a,OAA4D8e,EAAY,QAAA9e,OAAO2R,IAC3FtJ,KAAKzB,QAAQkY,EAAczW,KAAKa,QAAQyI,GAC1C,MAAWsF,IAAUC,GAAWD,EAAOC,GAAaC,GAAWF,EAAOE,IACpEuD,EAAQC,KAAK,sEAAD3a,OAAuE2R,GAEvF,GAAC,CAAAxJ,IAAA,gBAAA/I,MAED,WAAiB,IAAAgJ,EAAA,KACf7H,OAAO0b,OAAO5T,KAAKiT,qBAChB/S,SAAQ,SAACwW,GAAiB,OAAKA,EAAkBtY,OAAOC,GAAG,eAAe,SAACC,GAC1E,GAAqB,UAAjBA,EAAQxH,KAAkB,CAC5B,IAAM6f,EAAiB5W,EAAKoU,qBACtBlP,EAAUlF,EAAKR,WAAW0F,QAChClF,EAAKxB,QAAQ,OAAQ0G,EAAU0R,EAAiB,GAAI,CAAEhE,WAAW,GACnE,CACF,GAAE,GACN,GAAC,CAAA7S,IAAA,sBAAA/I,MAED,SAAqB6f,GACnB5W,KAAK+T,eAAiB6C,EACtB5W,KAAKzB,QAAQ,QAASqY,GAAc,GACtC,GAAC,CAAA9W,IAAA,qBAAA/I,MAED,WAAsB,IAAA+K,EAAA,KACpB+U,EAA6B7W,KAAKsR,WAA1BzC,EAAOgI,EAAPhI,QAASC,EAAO+H,EAAP/H,QAEjB,GAAID,GAAWC,EAAS,CACtB,IAAIgI,GAAOC,EAAAA,EAAAA,GAAM,IACbnG,GAASmG,EAAAA,EAAAA,GAAM,EAAG,IAChBC,GAAQD,EAAAA,EAAAA,GAAMlI,EAAQqC,cAAepC,EAAQoC,eAAe+F,WAC9DC,EAAAA,EAAAA,IAAmBrI,EAASC,KAC9B8B,GAASmG,EAAAA,EAAAA,GAAMlI,EAAQsC,WAAYrC,EAAQqC,aACvCgG,EAAAA,EAAAA,IAAoBtI,EAASC,KAAYgI,GAAOC,EAAAA,EAAAA,GAAMlI,EAAQuC,UAAWtC,EAAQsC,aAEvF,IAAMgG,EAAqB,CAAEpgB,KAAM,GAAID,MAAO,GAAI4Z,SAAS,EAAMvZ,UAAU,GACrE4b,EAAgBhT,KAAKiT,oBAC3BD,EAAcH,IAAItU,QAAQ,UAAW,CAAC6Y,GAAkBzf,OAAAuD,EAAK4b,EAAK1e,KAAI,SAACrB,GAAK,MAAM,CAAEA,MAAOA,EAAM4V,WAAY3V,KAAMD,EAAO,OAC1Hic,EAAcF,MAAMvU,QAAQ,UAAW,CAAC6Y,GAAkBzf,OAAAuD,EAAK0V,EAAOxY,KAAI,SAACrB,GAAK,MAAM,CAAEA,MAAOA,EAAM4V,WAAY3V,KAAM0Z,EAAW5O,EAAKjB,QAAQ,cAAc9J,GAAQ,OACrKic,EAAcD,KAAKxU,QAAQ,UAAW,CAAC6Y,GAAkBzf,OAAAuD,EAAK8b,EAAM5e,KAAI,SAACrB,GAAK,MAAM,CAAEA,MAAOA,EAAM4V,WAAY3V,KAAMD,EAAO,MAC9H,CACF,GAAC,CAAA+I,IAAA,2BAAA/I,MAED,WACE,IAAMic,EAAgBhT,KAAKiT,oBAC3BoE,EAA4D,CAC1DrE,EAAcH,IAAIhS,QAAQ,eAC1BmS,EAAcF,MAAMjS,QAAQ,eAC5BmS,EAAcD,KAAKlS,QAAQ,gBAHNuO,EAAgBiI,EAAA,GAAEhI,EAAegI,EAAA,GAAnCA,EAAA,IAMHrE,EAAcH,IAAItU,QAAQ,cAAekQ,EAAiBU,gBAC5EC,GAAoB4D,EAAcF,MAAMvU,QAAQ,cAAekQ,EAAiBW,kBAChFC,GAAmB2D,EAAcD,KAAKxU,QAAQ,cAAekQ,EAAiBY,gBAChF,GAAC,CAAAvP,IAAA,6BAAA/I,MAED,WAA8B,IAAAgM,EAAA,KAC5B/C,KAAKsX,OAAS,GACdtX,KAAKuX,YAAcvG,KAAKwG,MAExB,IAAMC,EAAgBzX,KAAKiT,oBAAoBH,MAE/CpS,EAAAA,EAAgBvC,aAAa,CAC3B,CAACsZ,EAAc7Z,QAAS,CAAE8Z,QAAS,SAACrX,GAAE,OAAK0C,EAAK4U,UAAUtX,EAAIoX,EAAc,KAC3Eta,EAAWrG,KAChB,GAAC,CAAAgJ,IAAA,YAAA/I,MAED,SAAWsJ,EAAIoX,GACb,IACM3X,EAAMO,EAAGP,IAAI8X,cAGnB,IAA+B,IAJd,aAIJC,QAAQ/X,GAArB,CAEA,IAAMgY,EAAc9G,KAAKwG,MACrBM,EAAc9X,KAAKuX,YAAc,MACnCvX,KAAKsX,OAAS,IAGhBtX,KAAKsX,OAAOnX,KAAKL,GACjBE,KAAKuX,YAAcO,EACnB,IACMC,EAAsB9B,OAAOjW,KAAKsX,OAAO/e,KAAK,KAAO,GAAK0d,OAAOjW,KAAKsX,OAAO/e,KAAK,KADxD,GACwFoU,WAAasJ,OAAO,GAAGtJ,YAEvH3M,KAAKsX,OAAO/e,KAAK,KAAOwf,GAAuB,EAAIN,EAAc7Z,QAAQgB,cAAc,WAADjH,OAAYogB,EAAmB,OAAQN,EAAc7Z,QAAQ8G,aAEzK+S,EAAclZ,QAAQ,QAASwZ,GAEjC1X,EAAGuD,kBACHvD,EAAG2X,gBAjBqC,CAkB1C,2EAAC3G,CAAA,CA5X8B,CAASpK,EAAAA,IA+X1CC,EAAAA,EAAAA,GAAkBmK,EAAclU,EAAWrG,KAAMqG,uFCpepC8a,EAAsB,SAAUzZ,GAC3C,IAAI0Z,GAAc,EAIlB,OAHI1Z,IACF0Z,EAAc1Z,EAAQ2Z,MAAK,SAAAC,GAAC,OAAU,OAANA,GAAcA,EAAEC,QAAQ,KAEnDH,CACT,EAOaI,EAAqB,SAAUnX,GAC1C,MAAO,2CAAPxJ,OAAkDwJ,EAAOpK,MAAQ,cAAgBoK,EAAOpK,MAAQ,GAAE,KAAAY,OAAIwJ,EAAOnK,KAAOmK,EAAOnK,KAAO,GAAE,UACtI,EAOauhB,EAA6B,SAAU/Z,GAClD,IAAIga,EAAgB,GAepB,OAdIha,GACFA,EAAQ0B,SAAQ,SAAAiB,GACVA,EAAOkX,WACTG,GAAiBF,EAAmBnX,IAEV,MAAxBA,EAAOsX,eAAyBtX,EAAOsX,cAAcN,MAAK,SAAAO,GAAC,OAAIA,EAAEL,QAAQ,KAC3ElX,EAAOsX,cAAcvY,SAAQ,SAAAwY,GACvBA,EAAEL,WACJG,GAAiBF,EAAmBI,GAExC,GAEJ,IAEKF,CACT,EAOaG,EAAgB,SAAUxX,GACrC,IAAIwX,GAAgB,EAIpB,OAHIxX,EAAOkX,UAAoC,MAAxBlX,EAAOsX,eAAyBtX,EAAOsX,cAAcN,MAAK,SAAAO,GAAC,OAAIA,EAAEL,QAAQ,MAAMlX,EAAOyX,cAAc/E,OAAM,SAAA6E,GAAC,OAAIA,EAAEL,QAAQ,MAC9IM,GAAgB,GAEXA,CACT,EASaE,EAAuC,SAAUC,EAAYC,EAAava,GACrF,IAAMia,EAAgB,GACtB,GAAIja,EAAS,CACX,IAAIqN,EAAQ,EACZrN,EAAQ0B,SAAQ,SAAAiB,GACd,IAAM5F,EAAO,CACXxE,MAAOoK,EAAOpK,MACdC,KAAMmK,EAAOnK,KACbI,SAAU+J,EAAO/J,SACjBF,QAASiK,EAAOkX,SAChBxhB,GAAIiiB,EAAa,cAAgBC,EAAc,cAAgBlN,EAC/D/U,KAAMgiB,EAAa,cAAgBC,EAAc,eACjDlgB,MAAOsI,EAAOtI,OAEhB4f,EAActY,KAAK5E,GACnBsQ,GACF,GACF,CACA,OAAO4M,CACT,EAQaO,EAAsB,SAAUxa,EAASsa,GACpD,IAAMG,EAAkB,GACxB,GAAIza,EAAS,CACX,IAAIqN,EAAQ,EACZrN,EAAQ0B,SAAQ,SAAAiB,GACd,IAAM5F,EAAO,CACXxE,MAAOoK,EAAOpK,MACdC,KAAMmK,EAAOnK,KACbI,SAAU+J,EAAO/J,SACjBF,QAASiK,EAAOkX,SAChBxhB,GAAIiiB,EAAa,IAAMjN,EACvB/U,KAAMgiB,EAAa,eACnBze,MAAOwe,EAAqCC,EAAa,UAAWjN,EAAO1K,EAAOsX,eAClFE,cAAeA,EAAcxX,GAC7BtI,MAAOsI,EAAOtI,OAEhBogB,EAAgB9Y,KAAK5E,GACrBsQ,GACF,GACF,CACA,OAAOoN,CACT,48CCnGO,IAAMC,EAA8B,CACzCriB,GAAI,GACJ4Y,YAAa,GACbnW,QAAS,UACTuW,MAAM,EACNrR,QAAS,GACT2a,mBAAoB,IA8DTC,EAA2B,SAAC1hB,GAEvC,OADAA,EAAC0B,EAAAA,EAAA,GAAQ8f,GAAgCxhB,GAClC,4CAAPC,OACoB,YAAdD,EAAE4B,QAAwB,qDAAH3B,OAAwDD,EAAEb,GAAE,6BAAAc,OAA4BD,EAAE0C,MAAK,YAAa,GAAE,YAAAzC,OACrID,EAAEmY,KAAO,yCAAHlY,OAA4CD,EAAEmY,KAAI,aAAc,GAAE,+SAAAlY,OAGR,YAAdD,EAAE4B,SAC9Cif,EAAAA,EAAAA,IAA2B7gB,EAAE8G,SAAQ,GAAA7G,OAClCD,EAAE8G,QAAQpD,QAAO,SAAAgd,GAAC,OAAIA,EAAEC,QAAQ,IAAEjgB,KAAI,SAAA+I,GAAM,OAAItH,EAAAA,EAAAA,GAAasH,EAAO,IAAE5I,KAAK,KAAK,kXAAAZ,OAO7CD,EAAE+X,YAAW,oIAAA9X,OAIvDD,EAAEyhB,mBACJzhB,EAAEyhB,oBACFE,EAAAA,EAAAA,GACA,CACE9R,QAAQ,EACR+R,UAAU,EACVC,WAAY,KACZvhB,aAAc,2BACd4B,WAAY,CACV,gCAAiC,KAnFT,SAAUlC,GAC5C,IAAI8hB,EAAkB,GAkBtB,OAjBI9hB,IACF8hB,GAAkBC,EAAAA,EAAAA,GAChB,CACEzhB,aAAc,GACd4B,WAAY,CAAC,IAEfwC,EAAAA,EAAAA,IACE,CACEvF,GAAIa,EAAEb,GACNsD,OAAQ,WACRC,MAAO,GACPR,WAAY,CAAE,+BAAgC,IAC9CS,OAAO2e,EAAAA,EAAAA,IAAoBthB,EAAE8G,QAAS9G,EAAEb,QAKzC2iB,CACT,CAkEQE,CAAqBhiB,GA3DS,SAAUA,GAC9C,IAAIiiB,EAAoB,GAuBxB,OAtBIjiB,IACFiiB,GAAoBC,EAAAA,EAAAA,GAClB,CACE5hB,aAAc,GACd4B,WAAY,CAAC,IAEfkL,EAAAA,EAAAA,GAAW1L,EAAAA,EAAC,CAAC,EACRygB,EAAAA,GACA,CACD7iB,KAAMU,EAAEoiB,iBACRxgB,QAAS,eACTM,WAAY,CAAE,0BAA2B,cAExCkL,EAAAA,EAAAA,GAAW1L,EAAAA,EAAC,CAAC,EACbygB,EAAAA,GACA,CACD7iB,KAAMU,EAAEqiB,aACRngB,WAAY,CAAE,0BAA2B,eAK1C+f,CACT,CAkCkCK,CAAuBtiB,IAClD,iBAEP,w2CC5GO,IAAMuiB,EAAkC,CAC7CjjB,KAAM,GACND,MAAO,GACP8B,WAAOU,EACPoX,SAAS,EACTvZ,UAAU,EACVihB,UAAU,GAGC6B,EAA+B,SAACxiB,GAE3C,OADAA,EAAC0B,EAAAA,EAAA,GAAQ6gB,GAAoCviB,GACtC,kBAAPC,OAAyBD,EAAEiZ,QAAU,6BAA+B,qBAAoB,iBAAAhZ,OAC9ED,EAAEN,SAAW,WAAa,GAAE,gBAAAO,OAC5BD,EAAE2gB,SAAW,WAAa,GAAE,uBAAA1gB,OACrBD,EAAEX,MAAK,MAAAY,OAAKD,EAAEV,MAAQ,GAAE,KAAAW,OAAID,EAAEmB,MAAQ,IAAHlB,OAAOD,EAAEmB,MAAK,KAAM,GAAE,gBAE5E,+5CCfO,IAAMshB,EAA4B,CACvCtjB,GAAI,GACJ4Y,YAAa,GACbrY,UAAU,EACVkC,QAAS,UACTuW,MAAM,EACNrR,QAAS,IAGE4b,EAAyB,SAAC1iB,GAErC,OADAA,EAAC0B,EAAAA,EAAA,GAAQ+gB,GAA8BziB,GAChC,4CAAPC,OACoB,YAAdD,EAAE4B,QAAwB,qDAAH3B,OAAwDD,EAAEb,GAAE,6BAAAc,OAA4BD,EAAE0C,MAAK,YAAa,GAAE,YAAAzC,OACrID,EAAEmY,KAAO,yCAAHlY,OAA4CD,EAAEmY,KAAI,aAAc,GAAE,4FAAAlY,OAG1DD,EAAEb,GAAE,UAAAc,OAASD,EAAEb,GAAE,MAAAc,OAAKD,EAAEN,SAAW,WAAa,GAAE,qBAAAO,OACvDD,EAAE2iB,mBAAoBtgB,EAAAA,EAAAA,IAAiBrC,EAAE2iB,mBAAqB,GAAE,yBAAA1iB,OAEvED,EAAE+X,YAAW,yEAAA9X,OACoDD,EAAE+X,YAAW,aAC7D,YAAd/X,EAAE4B,SAAyB5B,EAAE0C,MAAK,yEAAAzC,OAA6ED,EAAE0C,MAAK,aAAc,GAAE,cAAAzC,OAEzID,EAAE8G,QAAQpG,KAAI,SAAA+I,GAAM,OAAI+Y,EAAAA,EAAAA,GAA6B/Y,EAAO,IAAE5I,KAAK,IAAG,6BAAAZ,OAExED,EAAEkY,gBACF9K,EAAAA,EAAAA,GAAW1L,EAAAA,EAAC,CAAC,EACVygB,EAAAA,GACA,CACD7iB,KAAM,GACNsC,QAAS,YACTuW,KAAM,QACNyK,aAAc,OACdtiB,aAAc,oBACd4B,WAAYlC,EAAEoY,yBAGhB,GAAE,0FAGV,uiDC7CO,IAAMyK,EAAyC,CACpDvjB,KAAM,GACND,MAAO,igECFTiC,EAAQ,OACRA,EAAQ,OAER,IAEMkE,EACG,aAGHC,EAAa,CACjBrG,KAPmB,sBAQnBsG,MAAO,CACL,CACEtG,KAAM,WACNuG,KAAM,UACNH,KAAM,eACNK,cAAc,GAEhB,CACEzG,KAAM,UACNuG,KAAM,cAER,CACEvG,KAAM,cACNuG,KAAM,cAER,CACEvG,KAAM,UACNuG,KAAM,SACNH,KAAM,eACNK,aAAc,WAEhB,CACEzG,KAAM,iBACNuG,KAAM,UACNH,KAAM,sBACNK,cAAc,KAKdid,EAWO,aAQPC,EAAc,IAAI/P,OAAOgQ,YAAY,SAAU,CAAEC,SAAS,EAAMC,YAAY,IAM7DC,EAAgB,SAAApd,yRAAAC,CAAAmd,EAAApd,GAAA,YAAAE,KAAAkd,+jBAOnC,SAAAA,EAAajd,GAAS,IAAAC,EA8DlB,mGA9DkBC,CAAA,KAAA+c,IACpBhd,EAAAF,EAAAI,KAAA,KAAMH,EAAST,EAAWrG,OACrByQ,QAAS,EAGd1J,EAAKid,YAAcjd,EAAKD,QAAQgB,cAjCrB,mCAkCXf,EAAKkd,eAAiBld,EAAKid,YAAY,kBACvCjd,EAAKkd,eAAexc,QAAQ,YAxBnB,QAwBoD,CAAEE,QAAQ,IACvEZ,EAAKkd,eAAexc,QAAQ,YAxBnB,QAwBoD,CAAEE,QAAQ,IAEvEZ,EAAKmK,MAAQnK,EAAKD,QAAQgB,cAjCrB,sBAoCLf,EAAKmd,UAAYnd,EAAKD,QAAQgB,cAxCpB,kCAyCVf,EAAKod,aAAepd,EAAKmd,UAAU,iBAGnCnd,EAAKT,MAAMoB,QAAOtD,EAAO2C,EAAKsH,cAC9BtH,EAAKT,MAAM8d,YAAWhgB,EAAO2C,EAAKsd,kBAClCtd,EAAKI,eAAc/C,EAAO2C,EAAKod,aAAahc,qBAG5CpB,EAAKud,aAAevd,EAAKD,QAAQgB,cArDrB,wBAsDZf,EAAKwd,mBAAqBxd,EAAKD,QAAQgB,cArD5B,mCAsDXf,EAAKyd,cAAgBzd,EAAKD,QAAQgB,cAlD5B,sCAmDNf,EAAK0d,cAAgB1d,EAAKD,QAAQgB,cAlD5B,sCAmDN8B,EAAAA,EAAgBvC,aAAa,CAC3B,CAACN,EAAKD,QAAS,CAAE8Z,QAAS,SAACrX,GAAE,OAAKxC,EAAK8Z,UAAUtX,EAAG,IACpD,CAACxC,EAAKud,aAAc,CAAEI,MAAO,SAACnb,GAAE,OAAKxC,EAAK4d,QAAQpb,EAAG,IACrD,CAACxC,EAAKwd,mBAAoB,CAAEK,UAAW,SAACrb,GAAE,OAAKxC,EAAK8d,gBAAgBtb,EAAG,IACvE,CAACxC,EAAKyd,cAAe,CAAE9a,MAAO,SAACH,GAAE,OAAKxC,EAAK+d,SAASvb,EAAG,IACvD,CAACxC,EAAK0d,cAAe,CAAE/a,MAAO,SAACH,GAAE,OAAKxC,EAAKge,SAASxb,EAAG,KACtDlD,EAAWrG,MAEd+G,EAAKie,UAxDE,YAwDUje,EAAKD,QAAQkB,aAAa,gBAG3CjB,EAAKod,aAAa7c,OAAOC,GAAG,iBAAiB,SAAAG,GAC3CX,EAAKT,MAAMoB,QAAUud,KAAKC,MAAMD,KAAKE,UAAUzd,IAC/CX,EAAKT,MAAM8d,YAAWhgB,EAAO2C,EAAKsd,kBAClCtd,EAAKI,eAAc/C,EAAO2C,EAAKod,aAAahc,qBAC5CpB,EAAKqe,iBAELre,EAAKD,QAAQ8D,UAAUuH,OAAO,SACC,IAA/BpL,EAAKI,eAAeyE,OAAe7E,EAAKD,QAAQ8D,UAAUC,IAAI6Y,GAA8B3c,EAAKD,QAAQ8D,UAAUE,OAAO4Y,GAC1H3c,EAAKse,gBACLte,EAAKO,OAAOwE,KAAK,gBAAiB/E,EAAKT,MAAMoB,QAC/C,IAGAX,EAAKmK,MAAMoU,iBAAiB,QAASve,EAAKwe,kBAAkBnd,KAAIC,EAAAtB,KAEhED,EAAQC,EAAK/G,MAAMmI,kBAAqBpB,EAAKoB,kBAAmBC,KAAIC,EAAAtB,IACpED,EAAQC,EAAK/G,MAAMwlB,qBAAwBze,EAAKye,qBAAsBpd,KAAIC,EAAAtB,IAC1ED,EAAQC,EAAK/G,MAAMylB,YAAe1e,EAAK0e,YAAard,KAAIC,EAAAtB,IACxDD,EAAQC,EAAK/G,MAAM0lB,yBAA4B3e,EAAK2e,yBAA0Btd,KAAIC,EAAAtB,IAClFD,EAAQC,EAAK/G,MAAM2lB,gBAAmB5e,EAAK4e,gBAAiBvd,KAAIC,EAAAtB,IAChED,EAAQC,EAAK/G,MAAM4lB,SAAY7e,EAAK6e,SAAUxd,KAAIC,EAAAtB,IAClDD,EAAQC,EAAK/G,MAAMiS,KAAQlL,EAAKkL,KAAM7J,KAAIC,EAAAtB,IAE1C8B,EAAAA,EAAiBC,wBAAwBzC,EAAWrG,KAAM+G,EAAKO,sdAAMhF,CAAA,GAChEyE,EAAKD,QAAQiC,aAAa3C,IAAe,CAAEhD,MAAO2D,EAAKD,QAAQhE,WAAWsD,GAAYnG,SACzF8G,CACJ,CAqaC,SAnaDgd,IAAA,EAAA/a,IAAA,OAAA/I,MAcA,WAAoB,IAAAgJ,EAAA,KAAdvB,EAAOuF,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,GAAAA,UAAA,GAAG,CAAC,EACf,OAAI/D,KAAKuH,SACTvH,KAAKob,aAAa1Z,UAAUC,IAAI,cAChC3B,KAAK2c,eAAczhB,EAAO8E,KAAK/B,gBAC/B+B,KAAK+a,eAAexc,QAAQ,UAAU,GACtCyB,KAAK4c,cAAgB,CACnB,CAACza,SAAU,CAAEuZ,UAAW,SAACrb,GAAE,OAAKN,EAAK8c,gBAAgBxc,EAAG,KAE1DK,EAAAA,EAAgBvC,aAAa6B,KAAK4c,cAAezf,EAAWrG,MAE5DkJ,KAAK8c,0BACL9c,KAAKuH,QAAS,EACdvH,KAAK+c,gBACAve,EAAQC,QAAQuB,KAAK5B,OAAOwE,KAAK,SAZd5C,IAc1B,GAAC,CAAAF,IAAA,0BAAA/I,MAED,WACEiJ,KAAKgd,iBAAmBhd,KAAKgb,UAAU/a,iBAAiB,SACnDD,KAAKgd,iBAAiBta,SAC3B1C,KAAKgd,iBAAiB,GAAGxB,QACzBxb,KAAKid,mBAAqBjd,KAAKgd,iBAAiB,GAChDhd,KAAKkd,iBAAmB,EAC1B,GAEA,CAAApd,IAAA,QAAA/I,MAkBA,WAAqB,IAAA+K,EAAA,KAAdtD,EAAOuF,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,GAAAA,UAAA,GAAG,CAAC,EAChB,IAAK/D,KAAKuH,OAAQ,OAAOvH,KACzBU,EAAAA,EAAgByc,aAAand,KAAK4c,cAAezf,EAAWrG,MAC5DkJ,KAAKob,aAAa1Z,UAAUE,OAAO,cACnC5B,KAAK+a,eAAexc,QAAQ,UAAU,GACtC,IAAI6e,GAAa,EACjB,GAAK5e,EAAQ6e,KAQXD,GAAa5e,EAAQC,QAEhBsd,KAAKE,UAAUjc,KAAK2c,kBAAoBZ,KAAKE,UAAUjc,KAAK/B,oBAVhD,CACjB,IAAMqf,EAAavB,KAAKC,MAAMD,KAAKE,UAAUjc,KAAK5C,MAAMoB,UACrDpG,KAAI,SAAA+I,GAEH,OADAA,EAAOjK,QAAU4K,EAAK6a,eAAeY,SAASpc,EAAOpK,OAC9CoK,CACT,IACFnB,KAAKib,aAAa1c,QAAQ,UAAW+e,EACvC,CAeA,OAVAtd,KAAK2c,oBAAiBpjB,EACtByG,KAAKgd,sBAAmBzjB,EACxByG,KAAKid,wBAAqB1jB,EAC1ByG,KAAKkd,sBAAmB3jB,EACxByG,KAAKuH,QAAS,EACdvH,KAAK+c,gBACDK,GACFpd,KAAK5B,OAAOwE,KAAK,SAAU5C,KAAK5C,MAAMoB,SAEnCA,EAAQC,QAAQuB,KAAK5B,OAAOwE,KAAK,SAC/B5C,IACT,GAAC,CAAAF,IAAA,oBAAA/I,MAED,WACMiJ,KAAKuH,OACPvH,KAAKgJ,QAELhJ,KAAK+I,MAET,GAAC,CAAAjJ,IAAA,gBAAA/I,MAED,WACMiJ,KAAKuH,QACPvH,KAAKgI,MAAMtG,UAAUE,OAAO,wBAC5B5B,KAAKgI,MAAMtG,UAAUC,IAAI,wBAEzB3B,KAAKgI,MAAMtG,UAAUE,OAAO,sBAC5B5B,KAAKgI,MAAMtG,UAAUC,IAAI,wBAE7B,GAEA,CAAA7B,IAAA,aAAA/I,MAGA,WACE,OAAOiJ,KAAKib,aAAejb,KAAKib,aAAa7d,MAAMoB,QAAU,EAC/D,GAEA,CAAAsB,IAAA,aAAA/I,MAQA,SAAYsD,EAAOmE,GACjBwB,KAAKib,aAAa1c,QAAQ,UAAWlE,EAAOmE,EAC9C,GAEA,CAAAsB,IAAA,iBAAA/I,MAKA,WAaE,OAZkC,SAA5BymB,EAA6Bhf,GACjC,IAAM0c,EAAc,GASpB,OARA1c,EACG0B,SAAQ,SAAAiB,GACP+Z,EAAY/a,KAAK,CACfpJ,MAAOoK,EAAOpK,MACdC,KAAMmK,EAAOnK,OAEXmK,EAAO9G,OAAO6gB,EAAY/a,KAAI2C,MAAhBoY,EAAWhgB,EAASsiB,EAA0Brc,EAAO9G,QACzE,IACK6gB,CACT,CACOsC,CAA0Bxd,KAAK5C,MAAMoB,QAC9C,GAEA,CAAAsB,IAAA,iBAAA/I,MAQA,SAAgBmkB,EAAa1c,GAC3BwB,KAAKkc,gBACP,GAEA,CAAApc,IAAA,oBAAA/I,MAKA,WACE,OAAOiJ,KAAK/B,cACd,GAEA,CAAA6B,IAAA,uBAAA/I,MAKA,WACE,OAAOiJ,KAAKub,cAAc,SAASkC,SACrC,GAEA,CAAA3d,IAAA,cAAA/I,MAKA,WACE,OAAOiJ,KAAKub,aACd,GAEA,CAAAzb,IAAA,2BAAA/I,MAKA,WACE,OAAOiJ,KAAKsb,cAAc,SAASmC,SACrC,GAEA,CAAA3d,IAAA,kBAAA/I,MAKA,WACE,OAAOiJ,KAAKsb,aACd,GAEA,CAAAxb,IAAA,WAAA/I,MAKA,WACE,OAAOiJ,KAAKpC,QAAQgB,cA1Sf,4BA0SqD0H,SAC5D,GAEA,CAAAxG,IAAA,kBAAA/I,MAGA,SAAiBsJ,GACf,GAAKA,EAAGzH,OAAOqI,QAtTL,kCAsTV,CAIA,IAAMyc,EAAard,EAAGzH,OAAO0K,cAAcxL,QAAQf,MAC7C4mB,EAAa3d,KAAKgb,UAAUpc,cAAc,gBAADjH,OAAiB+lB,EAAU,OACrEC,IACLA,EAAWzmB,SAAU,EACrBymB,EAAWC,cAAcnD,GAGpBza,KAAKuH,QACRvH,KAAK5B,OAAOwE,KAAK,SAAU5C,KAAK5C,MAAMoB,SAExC6B,EAAG2X,iBACH3X,EAAGuD,kBAZH,MAFE5D,KAAKyb,SAeT,GAEA,CAAA3b,IAAA,YAAA/I,MAaA,SAAWsJ,GAET,GAAKL,KAAK+a,eAAe3d,MAAMmK,OAA/B,CAEA,IAAMzH,EAAMO,EAAGwd,QAGf,GAAY,KAAR/d,GAAsB,KAARA,EAAY,CAC5B,IAAMge,EAAsB5iB,EAAI8E,KAAKgd,kBAAkBO,SAASpb,SAAS4b,eACrE7iB,EAAI8E,KAAKgd,kBAAkBnF,QAAQ1V,SAAS4b,eAC5C/d,KAAKkd,iBACHc,EAAsB,KAARle,EAChBE,KAAKgd,iBAAiBta,OAASob,EAAsB,EACnD9d,KAAKgd,iBAAiBc,EAAsB,GAC5C9d,KAAKgd,iBAAiBc,GACvBA,EAAsB,GAAM,EACzB9d,KAAKgd,iBAAiBc,EAAsB,GAC5C9d,KAAKgd,iBAAiBc,GAC9B,GAAIE,IAAgBhe,KAAKid,mBAAoB,CAC3C,IAAMgB,EAAW/iB,EAAI8E,KAAKgd,kBAAkBnF,QAAQmG,GACpDhe,KAAKgd,iBAAiBiB,GAAUzC,QAChCxb,KAAKid,mBAAqBjd,KAAKgd,iBAAiBiB,GAChDje,KAAKkd,iBAAmBe,CAC1B,CACA5d,EAAG2X,gBACL,CAGY,KAARlY,GAAsB,IAARA,GAAaE,KAAKgJ,MAAM,CAAEqU,MAAM,IAGtC,KAARvd,GAAcE,KAAKgJ,OA7BsB,CA8B/C,GAEA,CAAAlJ,IAAA,WAAA/I,MAGA,WACEiJ,KAAKgJ,OACP,GAEA,CAAAlJ,IAAA,UAAA/I,MAGA,WACEiJ,KAAK+I,MACP,GAEA,CAAAjJ,IAAA,WAAA/I,MAGA,WACEiJ,KAAKgJ,MAAM,CAAEqU,MAAM,GACrB,GAEA,CAAAvd,IAAA,kBAAA/I,MAGA,SAAiBsJ,GAAI,IAAA0C,EAAA,KACbmb,EAAale,KAAKa,QAAQ,kBAC1Buc,EAAcrB,KAAKE,UAAUjc,KAAK2c,kBAAoBZ,KAAKE,UAAUjc,KAAK/B,gBAShF,IARAkgB,EAAAA,EAAAA,GACE9d,EACAL,KAAKpC,SACL,kBAAMmF,EAAKiG,MAAM,CAAEvK,QAAS2e,EAAYC,KAAMa,GAAa,GAC3Dd,GAIE/c,EAAGzH,OAAO6L,QAAQ,0BAA2B,CAC/C,IAAM2Z,EAAgB/d,EAAGzH,OAAO6L,QAAQ,0BAA0B7F,cAAc,sBAChF,GAAI1D,EAAI8E,KAAKgd,kBAAkBO,SAASa,GAAgB,CACtD,IAAMH,EAAW/iB,EAAI8E,KAAKgd,kBAAkBnF,QAAQuG,GACpDpe,KAAKgd,iBAAiBiB,GAAUzC,QAChCxb,KAAKid,mBAAqBjd,KAAKgd,iBAAiBiB,GAChDje,KAAKkd,iBAAmBe,CAC1B,CACF,CACF,GAEA,CAAAne,IAAA,gBAAA/I,MAKA,WACE,OAAKiJ,KAAK+a,eAAe3d,MAAMmK,QAC/BvH,KAAKgd,iBAAmBhd,KAAKgb,UAAU/a,iBAAiB,SACpDD,KAAKgd,iBAAiBhd,KAAKkd,oBAC7Bld,KAAKgd,iBAAiBhd,KAAKkd,kBAAkB1B,QAC7Cxb,KAAKid,mBAAqBjd,KAAKgd,iBAAiBhd,KAAKkd,mBAEhDld,MANuCA,IAOhD,GAEA,CAAAF,IAAA,wBAAA/I,MAKA,WACE,KAAOiJ,KAAKqb,mBAAmB3W,YAC7B1E,KAAKqb,mBAAmB1W,YAAY3E,KAAKqb,mBAAmB3W,YAE9D,OAAO1E,IACT,GAEA,CAAAF,IAAA,iBAAA/I,MAOA,WAA8C,IAAA+M,EAAA,KAe5C,OAfqBC,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,IAAG/D,KAAK5C,MAAMoB,QACnCwB,KAAKqe,wBACDre,KAAK8b,UACP9b,KAAKib,aAAa7b,sCACfc,SAAQ,SAAAnJ,GACP,IAAMunB,EAAUxa,EAAKya,gBAAgBxnB,GACjCunB,GAAWxa,EAAKuX,mBAAmBrZ,YAAYsc,EACrD,IAEFte,KAAKib,aAAa7b,sCACfc,SAAQ,SAAAnJ,GACP,IAAMynB,EAAU1a,EAAK2a,gBAAgB1nB,GACjCynB,GAAW1a,EAAKuX,mBAAmBrZ,YAAYwc,EACrD,IAEGxe,IACT,GAEA,CAAAF,IAAA,kBAAA/I,MAQA,SAAiBA,GACf,IAAM2nB,EAAW1e,KAAK5C,MAAM8d,YACzB5V,MAAK,SAAAqZ,GAAI,OAAIA,EAAK5nB,QAAUA,CAAK,IACpC,GAAK2nB,EAAL,CAGA,IAAME,EAAc,CAClB7nB,MAAO2nB,EAAS3nB,MAChBC,KAAM0nB,EAAS1nB,MAEjB,OAAOuL,EAAAA,EAAAA,KAAkB1I,EAAAA,EAAAA,GAAa+kB,GALtC,CAMF,GAEA,CAAA9e,IAAA,kBAAA/I,MAQA,SAAiBA,GACf,IAAM8nB,EAAW7e,KAAK5C,MAAM8d,YACzB5V,MAAK,SAAAqZ,GAAI,OAAIA,EAAK5nB,QAAUA,CAAK,IACpC,GAAK8nB,EAAL,CAGA,IDliBgDnnB,ECkiB1ConB,EAAc,CAClB/nB,MAAO8nB,EAAS9nB,MAChBC,KAAM6nB,EAAS7nB,MAEjB,OAAOuL,EAAAA,EAAAA,KDtiByC7K,ECsiBaonB,EDriB/DpnB,EAAC0B,EAAAA,EAAA,GAAQmhB,GAA2C7iB,GAC7C,2CAAPC,OAAkDD,EAAEX,MAAQ,eAAHY,OAAkBD,EAAEX,MAAK,KAAM,GAAE,MAAAY,OAAKD,EAAEV,MAAQ,GAAE,kBC+hBzG,CAMF,2EAAC6jB,CAAA,CA3ekC,CAAS5T,EAAAA,IA8e9CC,EAAAA,EAAAA,GAAkB2T,EAAkB1d,EAAWrG,KAAMqG,64CCzjBrD4hB,EAAA,kBAAA1jB,CAAA,MAAA2jB,EAAA3jB,EAAA,GAAA4jB,EAAA/mB,OAAAgnB,UAAAxG,EAAAuG,EAAAE,eAAA/G,EAAAlgB,OAAAknB,gBAAA,SAAAJ,EAAA3jB,EAAA4jB,GAAAD,EAAA3jB,GAAA4jB,EAAAloB,KAAA,EAAAsoB,EAAA,mBAAAC,OAAAA,OAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAC,EAAAb,EAAA3jB,EAAA4jB,GAAA,OAAA/mB,OAAAknB,eAAAJ,EAAA3jB,EAAA,CAAAtE,MAAAkoB,EAAAa,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAhB,EAAA3jB,EAAA,KAAAwkB,EAAA,aAAAb,GAAAa,EAAA,SAAAb,EAAA3jB,EAAA4jB,GAAA,OAAAD,EAAA3jB,GAAA4jB,CAAA,WAAAgB,EAAAjB,EAAA3jB,EAAA4jB,EAAAvG,GAAA,IAAA2G,EAAAhkB,GAAAA,EAAA6jB,qBAAAgB,EAAA7kB,EAAA6kB,EAAAX,EAAArnB,OAAAioB,OAAAd,EAAAH,WAAAO,EAAA,IAAAW,EAAA1H,GAAA,WAAAN,EAAAmH,EAAA,WAAAxoB,MAAAspB,EAAArB,EAAAC,EAAAQ,KAAAF,CAAA,UAAAe,EAAAtB,EAAA3jB,EAAA4jB,GAAA,WAAA5hB,KAAA,SAAAkjB,IAAAvB,EAAAjhB,KAAA1C,EAAA4jB,GAAA,OAAAD,GAAA,OAAA3hB,KAAA,QAAAkjB,IAAAvB,EAAA,EAAA3jB,EAAA4kB,KAAAA,EAAA,IAAAO,EAAA,iBAAAC,EAAA,iBAAAC,EAAA,YAAA3kB,EAAA,YAAA0P,EAAA,YAAAyU,IAAA,UAAAS,IAAA,UAAAC,IAAA,KAAAC,EAAA,GAAAhB,EAAAgB,EAAAtB,GAAA,8BAAA7nB,EAAAQ,OAAA4oB,eAAAC,EAAArpB,GAAAA,EAAAA,EAAAkc,EAAA,MAAAmN,GAAAA,IAAA9B,GAAAvG,EAAA3a,KAAAgjB,EAAAxB,KAAAsB,EAAAE,GAAA,IAAAC,EAAAJ,EAAA1B,UAAAgB,EAAAhB,UAAAhnB,OAAAioB,OAAAU,GAAA,SAAAI,EAAAjC,GAAA,0BAAA9e,SAAA,SAAA7E,GAAAwkB,EAAAb,EAAA3jB,GAAA,SAAA2jB,GAAA,YAAAkC,QAAA7lB,EAAA2jB,EAAA,gBAAAmC,EAAAnC,EAAA3jB,GAAA,SAAA+lB,EAAAnC,EAAA7G,EAAAiH,EAAAE,GAAA,IAAAE,EAAAa,EAAAtB,EAAAC,GAAAD,EAAA5G,GAAA,aAAAqH,EAAApiB,KAAA,KAAAsiB,EAAAF,EAAAc,IAAAC,EAAAb,EAAA5oB,MAAA,OAAAypB,GAAA,UAAAa,EAAAb,IAAA9H,EAAA3a,KAAAyiB,EAAA,WAAAnlB,EAAAgS,QAAAmT,EAAAc,SAAAC,MAAA,SAAAvC,GAAAoC,EAAA,OAAApC,EAAAK,EAAAE,EAAA,aAAAP,GAAAoC,EAAA,QAAApC,EAAAK,EAAAE,EAAA,IAAAlkB,EAAAgS,QAAAmT,GAAAe,MAAA,SAAAvC,GAAAW,EAAA5oB,MAAAioB,EAAAK,EAAAM,EAAA,aAAAX,GAAA,OAAAoC,EAAA,QAAApC,EAAAK,EAAAE,EAAA,IAAAA,EAAAE,EAAAc,IAAA,KAAAtB,EAAA7G,EAAA,gBAAArhB,MAAA,SAAAioB,EAAAtG,GAAA,SAAA8I,IAAA,WAAAnmB,GAAA,SAAAA,EAAA4jB,GAAAmC,EAAApC,EAAAtG,EAAArd,EAAA4jB,EAAA,WAAAA,EAAAA,EAAAA,EAAAsC,KAAAC,EAAAA,GAAAA,GAAA,aAAAnB,EAAAhlB,EAAA4jB,EAAAvG,GAAA,IAAAN,EAAAoI,EAAA,gBAAAnB,EAAAE,GAAA,GAAAnH,IAAAsI,EAAA,UAAAe,MAAA,mCAAArJ,IAAArc,EAAA,cAAAsjB,EAAA,MAAAE,EAAA,OAAAxoB,MAAAioB,EAAA0C,MAAA,OAAAhJ,EAAAve,OAAAklB,EAAA3G,EAAA6H,IAAAhB,IAAA,KAAAE,EAAA/G,EAAAiJ,SAAA,GAAAlC,EAAA,KAAAE,EAAAiC,EAAAnC,EAAA/G,GAAA,GAAAiH,EAAA,IAAAA,IAAAlU,EAAA,gBAAAkU,CAAA,cAAAjH,EAAAve,OAAAue,EAAAmJ,KAAAnJ,EAAAoJ,MAAApJ,EAAA6H,SAAA,aAAA7H,EAAAve,OAAA,IAAAie,IAAAoI,EAAA,MAAApI,EAAArc,EAAA2c,EAAA6H,IAAA7H,EAAAqJ,kBAAArJ,EAAA6H,IAAA,gBAAA7H,EAAAve,QAAAue,EAAAsJ,OAAA,SAAAtJ,EAAA6H,KAAAnI,EAAAsI,EAAA,IAAAG,EAAAP,EAAAjlB,EAAA4jB,EAAAvG,GAAA,cAAAmI,EAAAxjB,KAAA,IAAA+a,EAAAM,EAAAgJ,KAAA3lB,EAAA0kB,EAAAI,EAAAN,MAAA9U,EAAA,gBAAA1U,MAAA8pB,EAAAN,IAAAmB,KAAAhJ,EAAAgJ,KAAA,WAAAb,EAAAxjB,OAAA+a,EAAArc,EAAA2c,EAAAve,OAAA,QAAAue,EAAA6H,IAAAM,EAAAN,IAAA,YAAAqB,EAAAvmB,EAAA4jB,GAAA,IAAAvG,EAAAuG,EAAA9kB,OAAAie,EAAA/c,EAAAmkB,SAAA9G,GAAA,GAAAN,IAAA4G,EAAA,OAAAC,EAAA0C,SAAA,eAAAjJ,GAAArd,EAAAmkB,SAAAyC,SAAAhD,EAAA9kB,OAAA,SAAA8kB,EAAAsB,IAAAvB,EAAA4C,EAAAvmB,EAAA4jB,GAAA,UAAAA,EAAA9kB,SAAA,WAAAue,IAAAuG,EAAA9kB,OAAA,QAAA8kB,EAAAsB,IAAA,IAAA2B,UAAA,oCAAAxJ,EAAA,aAAAjN,EAAA,IAAA4T,EAAAiB,EAAAlI,EAAA/c,EAAAmkB,SAAAP,EAAAsB,KAAA,aAAAlB,EAAAhiB,KAAA,OAAA4hB,EAAA9kB,OAAA,QAAA8kB,EAAAsB,IAAAlB,EAAAkB,IAAAtB,EAAA0C,SAAA,KAAAlW,EAAA,IAAA8T,EAAAF,EAAAkB,IAAA,OAAAhB,EAAAA,EAAAmC,MAAAzC,EAAA5jB,EAAA8mB,YAAA5C,EAAAxoB,MAAAkoB,EAAAmD,KAAA/mB,EAAAgnB,QAAA,WAAApD,EAAA9kB,SAAA8kB,EAAA9kB,OAAA,OAAA8kB,EAAAsB,IAAAvB,GAAAC,EAAA0C,SAAA,KAAAlW,GAAA8T,GAAAN,EAAA9kB,OAAA,QAAA8kB,EAAAsB,IAAA,IAAA2B,UAAA,oCAAAjD,EAAA0C,SAAA,KAAAlW,EAAA,UAAA6W,EAAAtD,GAAA,IAAA3jB,EAAA,CAAAknB,OAAAvD,EAAA,SAAAA,IAAA3jB,EAAAmnB,SAAAxD,EAAA,SAAAA,IAAA3jB,EAAAonB,WAAAzD,EAAA,GAAA3jB,EAAAqnB,SAAA1D,EAAA,SAAA2D,WAAAxiB,KAAA9E,EAAA,UAAAunB,EAAA5D,GAAA,IAAA3jB,EAAA2jB,EAAA6D,YAAA,GAAAxnB,EAAAgC,KAAA,gBAAAhC,EAAAklB,IAAAvB,EAAA6D,WAAAxnB,CAAA,UAAA+kB,EAAApB,GAAA,KAAA2D,WAAA,EAAAJ,OAAA,SAAAvD,EAAA9e,QAAAoiB,EAAA,WAAAQ,OAAA,YAAAlP,EAAAvY,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA4jB,EAAA5jB,EAAAkkB,GAAA,GAAAN,EAAA,OAAAA,EAAAlhB,KAAA1C,GAAA,sBAAAA,EAAA+mB,KAAA,OAAA/mB,EAAA,IAAA8X,MAAA9X,EAAAqH,QAAA,KAAA0V,GAAA,EAAAiH,EAAA,SAAA+C,IAAA,OAAAhK,EAAA/c,EAAAqH,QAAA,GAAAgW,EAAA3a,KAAA1C,EAAA+c,GAAA,OAAAgK,EAAArrB,MAAAsE,EAAA+c,GAAAgK,EAAAV,MAAA,EAAAU,EAAA,OAAAA,EAAArrB,MAAAioB,EAAAoD,EAAAV,MAAA,EAAAU,CAAA,SAAA/C,EAAA+C,KAAA/C,CAAA,YAAA6C,UAAAb,EAAAhmB,GAAA,2BAAAslB,EAAAzB,UAAA0B,EAAAxI,EAAA4I,EAAA,eAAAjqB,MAAA6pB,EAAAb,cAAA,IAAA3H,EAAAwI,EAAA,eAAA7pB,MAAA4pB,EAAAZ,cAAA,IAAAY,EAAAoC,YAAAlD,EAAAe,EAAAjB,EAAA,qBAAAtkB,EAAA2nB,oBAAA,SAAAhE,GAAA,IAAA3jB,EAAA,mBAAA2jB,GAAAA,EAAAiE,YAAA,QAAA5nB,IAAAA,IAAAslB,GAAA,uBAAAtlB,EAAA0nB,aAAA1nB,EAAAvE,MAAA,EAAAuE,EAAA6nB,KAAA,SAAAlE,GAAA,OAAA9mB,OAAAirB,eAAAjrB,OAAAirB,eAAAnE,EAAA4B,IAAA5B,EAAAoE,UAAAxC,EAAAf,EAAAb,EAAAW,EAAA,sBAAAX,EAAAE,UAAAhnB,OAAAioB,OAAAa,GAAAhC,CAAA,EAAA3jB,EAAAgoB,MAAA,SAAArE,GAAA,OAAAsC,QAAAtC,EAAA,EAAAiC,EAAAE,EAAAjC,WAAAW,EAAAsB,EAAAjC,UAAAO,GAAA,0BAAApkB,EAAA8lB,cAAAA,EAAA9lB,EAAAioB,MAAA,SAAAtE,EAAAC,EAAAvG,EAAAN,EAAAiH,QAAA,IAAAA,IAAAA,EAAAkE,SAAA,IAAAhE,EAAA,IAAA4B,EAAAlB,EAAAjB,EAAAC,EAAAvG,EAAAN,GAAAiH,GAAA,OAAAhkB,EAAA2nB,oBAAA/D,GAAAM,EAAAA,EAAA6C,OAAAb,MAAA,SAAAvC,GAAA,OAAAA,EAAA0C,KAAA1C,EAAAjoB,MAAAwoB,EAAA6C,MAAA,KAAAnB,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAAzB,GAAA,0BAAAM,EAAAmB,EAAA,qDAAA3lB,EAAAlD,KAAA,SAAA6mB,GAAA,IAAA3jB,EAAAnD,OAAA8mB,GAAAC,EAAA,WAAAvG,KAAArd,EAAA4jB,EAAA9e,KAAAuY,GAAA,OAAAuG,EAAAhI,UAAA,SAAAmL,IAAA,KAAAnD,EAAAvc,QAAA,KAAAsc,EAAAC,EAAAuE,MAAA,GAAAxE,KAAA3jB,EAAA,OAAA+mB,EAAArrB,MAAAioB,EAAAoD,EAAAV,MAAA,EAAAU,CAAA,QAAAA,EAAAV,MAAA,EAAAU,CAAA,GAAA/mB,EAAAuY,OAAAA,EAAAwM,EAAAlB,UAAA,CAAA+D,YAAA7C,EAAA0C,MAAA,SAAAznB,GAAA,QAAAooB,KAAA,OAAArB,KAAA,OAAAP,KAAA,KAAAC,MAAA9C,EAAA,KAAA0C,MAAA,OAAAC,SAAA,UAAAxnB,OAAA,YAAAomB,IAAAvB,EAAA,KAAA2D,WAAAziB,QAAA0iB,IAAAvnB,EAAA,QAAA4jB,KAAA,WAAAA,EAAAyE,OAAA,IAAAhL,EAAA3a,KAAA,KAAAkhB,KAAA9L,OAAA8L,EAAA0E,MAAA,WAAA1E,GAAAD,EAAA,EAAA4E,KAAA,gBAAAlC,MAAA,MAAA1C,EAAA,KAAA2D,WAAA,GAAAE,WAAA,aAAA7D,EAAA3hB,KAAA,MAAA2hB,EAAAuB,IAAA,YAAAsD,IAAA,EAAA9B,kBAAA,SAAA1mB,GAAA,QAAAqmB,KAAA,MAAArmB,EAAA,IAAA4jB,EAAA,cAAA6E,EAAApL,EAAAN,GAAA,OAAAmH,EAAAliB,KAAA,QAAAkiB,EAAAgB,IAAAllB,EAAA4jB,EAAAmD,KAAA1J,EAAAN,IAAA6G,EAAA9kB,OAAA,OAAA8kB,EAAAsB,IAAAvB,KAAA5G,CAAA,SAAAA,EAAA,KAAAuK,WAAAjgB,OAAA,EAAA0V,GAAA,IAAAA,EAAA,KAAAiH,EAAA,KAAAsD,WAAAvK,GAAAmH,EAAAF,EAAAwD,WAAA,YAAAxD,EAAAkD,OAAA,OAAAuB,EAAA,UAAAzE,EAAAkD,QAAA,KAAAkB,KAAA,KAAAhE,EAAA/G,EAAA3a,KAAAshB,EAAA,YAAAM,EAAAjH,EAAA3a,KAAAshB,EAAA,iBAAAI,GAAAE,EAAA,SAAA8D,KAAApE,EAAAmD,SAAA,OAAAsB,EAAAzE,EAAAmD,UAAA,WAAAiB,KAAApE,EAAAoD,WAAA,OAAAqB,EAAAzE,EAAAoD,WAAA,SAAAhD,GAAA,QAAAgE,KAAApE,EAAAmD,SAAA,OAAAsB,EAAAzE,EAAAmD,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAgC,KAAApE,EAAAoD,WAAA,OAAAqB,EAAAzE,EAAAoD,WAAA,KAAAT,OAAA,SAAAhD,EAAA3jB,GAAA,QAAA4jB,EAAA,KAAA0D,WAAAjgB,OAAA,EAAAuc,GAAA,IAAAA,EAAA,KAAA7G,EAAA,KAAAuK,WAAA1D,GAAA,GAAA7G,EAAAmK,QAAA,KAAAkB,MAAA/K,EAAA3a,KAAAqa,EAAA,oBAAAqL,KAAArL,EAAAqK,WAAA,KAAApD,EAAAjH,EAAA,OAAAiH,IAAA,UAAAL,GAAA,aAAAA,IAAAK,EAAAkD,QAAAlnB,GAAAA,GAAAgkB,EAAAoD,aAAApD,EAAA,UAAAE,EAAAF,EAAAA,EAAAwD,WAAA,UAAAtD,EAAAliB,KAAA2hB,EAAAO,EAAAgB,IAAAllB,EAAAgkB,GAAA,KAAAllB,OAAA,YAAAioB,KAAA/C,EAAAoD,WAAAhX,GAAA,KAAAsY,SAAAxE,EAAA,EAAAwE,SAAA,SAAA/E,EAAA3jB,GAAA,aAAA2jB,EAAA3hB,KAAA,MAAA2hB,EAAAuB,IAAA,gBAAAvB,EAAA3hB,MAAA,aAAA2hB,EAAA3hB,KAAA,KAAA+kB,KAAApD,EAAAuB,IAAA,WAAAvB,EAAA3hB,MAAA,KAAAwmB,KAAA,KAAAtD,IAAAvB,EAAAuB,IAAA,KAAApmB,OAAA,cAAAioB,KAAA,kBAAApD,EAAA3hB,MAAAhC,IAAA,KAAA+mB,KAAA/mB,GAAAoQ,CAAA,EAAAuY,OAAA,SAAAhF,GAAA,QAAA3jB,EAAA,KAAAsnB,WAAAjgB,OAAA,EAAArH,GAAA,IAAAA,EAAA,KAAA4jB,EAAA,KAAA0D,WAAAtnB,GAAA,GAAA4jB,EAAAwD,aAAAzD,EAAA,YAAA+E,SAAA9E,EAAA4D,WAAA5D,EAAAyD,UAAAE,EAAA3D,GAAAxT,CAAA,GAAAwY,MAAA,SAAAjF,GAAA,QAAA3jB,EAAA,KAAAsnB,WAAAjgB,OAAA,EAAArH,GAAA,IAAAA,EAAA,KAAA4jB,EAAA,KAAA0D,WAAAtnB,GAAA,GAAA4jB,EAAAsD,SAAAvD,EAAA,KAAAtG,EAAAuG,EAAA4D,WAAA,aAAAnK,EAAArb,KAAA,KAAA+a,EAAAM,EAAA6H,IAAAqC,EAAA3D,EAAA,QAAA7G,CAAA,YAAAqJ,MAAA,0BAAAyC,cAAA,SAAA7oB,EAAA4jB,EAAAvG,GAAA,YAAAiJ,SAAA,CAAAnC,SAAA5L,EAAAvY,GAAA8mB,WAAAlD,EAAAoD,QAAA3J,GAAA,cAAAve,SAAA,KAAAomB,IAAAvB,GAAAvT,CAAA,GAAApQ,CAAA,UAAA8oB,EAAAC,EAAA/W,EAAAgX,EAAAC,EAAAC,EAAAzkB,EAAAygB,GAAA,QAAAiE,EAAAJ,EAAAtkB,GAAAygB,GAAAxpB,EAAAytB,EAAAztB,KAAA,OAAAmC,GAAA,YAAAmrB,EAAAnrB,EAAA,CAAAsrB,EAAA9C,KAAArU,EAAAtW,GAAAwsB,QAAAlW,QAAAtW,GAAAwqB,KAAA+C,EAAAC,EAAA,UAAAE,EAAAppB,EAAA4jB,GAAA,IAAAD,EAAA9mB,OAAAC,KAAAkD,GAAA,GAAAnD,OAAAwsB,sBAAA,KAAAtM,EAAAlgB,OAAAwsB,sBAAArpB,GAAA4jB,IAAA7G,EAAAA,EAAAhd,QAAA,SAAA6jB,GAAA,OAAA/mB,OAAAysB,yBAAAtpB,EAAA4jB,GAAAa,UAAA,KAAAd,EAAA7e,KAAA2C,MAAAkc,EAAA5G,EAAA,QAAA4G,CAAA,UAAA5lB,EAAAiC,GAAA,QAAA4jB,EAAA,EAAAA,EAAAlb,UAAArB,OAAAuc,IAAA,KAAAD,EAAA,MAAAjb,UAAAkb,GAAAlb,UAAAkb,GAAA,GAAAA,EAAA,EAAAwF,EAAAvsB,OAAA8mB,IAAA,GAAA9e,SAAA,SAAA+e,GAAA,IAAA5K,EAAAvU,EAAA/I,EAAAsd,EAAAhZ,EAAAyE,EAAAmf,EAAAloB,EAAAioB,EAAAC,IAAAnf,EAAA8kB,EAAA9kB,MAAAuU,EAAAnc,OAAAknB,eAAA/K,EAAAvU,EAAA,CAAA/I,MAAAA,EAAA+oB,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAA3L,EAAAvU,GAAA/I,CAAA,IAAAmB,OAAA2sB,0BAAA3sB,OAAA4sB,iBAAAzpB,EAAAnD,OAAA2sB,0BAAA7F,IAAAyF,EAAAvsB,OAAA8mB,IAAA9e,SAAA,SAAA+e,GAAA/mB,OAAAknB,eAAA/jB,EAAA4jB,EAAA/mB,OAAAysB,yBAAA3F,EAAAC,GAAA,WAAA5jB,CAAA,UAAA0pB,EAAAnsB,EAAAwE,GAAA,QAAAiiB,EAAA,EAAAA,EAAAjiB,EAAAsF,OAAA2c,IAAA,KAAA2F,EAAA5nB,EAAAiiB,GAAA2F,EAAAlF,WAAAkF,EAAAlF,aAAA,EAAAkF,EAAAjF,cAAA,YAAAiF,IAAAA,EAAAhF,UAAA,GAAA9nB,OAAAknB,eAAAxmB,EAAAgsB,EAAAI,EAAAllB,KAAAklB,EAAA,WAAAJ,EAAArE,GAAA,IAAAzgB,EAAA,SAAAuB,EAAA4jB,GAAA,cAAA5D,EAAAhgB,IAAA,OAAAA,EAAA,OAAAA,EAAA,IAAA6jB,EAAA7jB,EAAAie,OAAA6F,aAAA,QAAA5rB,IAAA2rB,EAAA,KAAAE,EAAAF,EAAAnnB,KAAAsD,EAAA4jB,UAAA,cAAA5D,EAAA+D,GAAA,OAAAA,EAAA,UAAAlD,UAAA,uDAAAmD,OAAAhkB,EAAA,CAAAikB,CAAA/E,GAAA,iBAAAc,EAAAvhB,GAAAA,EAAAulB,OAAAvlB,EAAA,UAAAylB,EAAAnN,EAAAyI,GAAA,OAAA0E,EAAArtB,OAAAirB,eAAAjrB,OAAAirB,eAAAjkB,OAAA,SAAAkZ,EAAAyI,GAAA,OAAAzI,EAAAgL,UAAAvC,EAAAzI,CAAA,EAAAmN,EAAAnN,EAAAyI,EAAA,UAAA1hB,EAAAqmB,GAAA,YAAAA,EAAA,UAAAC,eAAA,oEAAAD,CAAA,UAAAE,EAAAtN,GAAA,OAAAsN,EAAAxtB,OAAAirB,eAAAjrB,OAAA4oB,eAAA5hB,OAAA,SAAAkZ,GAAA,OAAAA,EAAAgL,WAAAlrB,OAAA4oB,eAAA1I,EAAA,EAAAsN,EAAAtN,EAAA,CAgBA,IAAMlb,EACG,aAOHC,EAAa,CAEjBrG,KAAM,aAcNsG,MAAO,CACL,CACEtG,KAAM,QACNuG,KAAM,UACL,CACDvG,KAAM,UACNuG,KAAM,cACL,CACDvG,KAAM,cACNuG,KAAM,SACNH,KAAM,gCACL,CACDpG,KAAM,WACNuG,KAAM,UACNH,KAAM,eACNK,cAAc,GACb,CACDzG,KAAM,QACNuG,KAAM,SACNH,KAAM,QACNI,cAAe,CACb,GACA,UACA,UACA,SAEFC,aAAc,IAEhB,CACEzG,KAAM,QACNuG,KAAM,SACNE,aAAc,IAEhB,CACEzG,KAAM,gBACNuG,KAAM,UACNH,KAAM,6BACNK,cAAc,GAEhB,CACEzG,KAAM,iBACNuG,KAAM,UACNH,KAAM,sBACNK,cAAc,KAUCooB,EAAQ,SAAAloB,EAAAmoB,IA7F7B,SAAAC,EAAAC,GAAA,sBAAAA,GAAA,OAAAA,EAAA,UAAA5D,UAAA,sDAAA2D,EAAA3G,UAAAhnB,OAAAioB,OAAA2F,GAAAA,EAAA5G,UAAA,CAAA+D,YAAA,CAAAlsB,MAAA8uB,EAAA7F,UAAA,EAAAD,cAAA,KAAA7nB,OAAAknB,eAAAyG,EAAA,aAAA7F,UAAA,IAAA8F,GAAAP,EAAAM,EAAAC,EAAA,CA6F6BpoB,CAAAioB,EAAAloB,GAAA,IA7F7BsoB,EAAAC,EAAAC,EAAAC,EA6F6BvoB,GA7F7BsoB,EA6F6BN,EA7F7BO,EAAA,kCAAAC,UAAAA,QAAAC,UAAA,YAAAD,QAAAC,UAAAC,KAAA,+BAAAC,MAAA,oBAAAC,QAAArH,UAAAsH,QAAAzoB,KAAAooB,QAAAC,UAAAG,QAAA,6BAAAlrB,GAAA,UAAAorB,GAAA,eAAAC,EAAAC,EAAAjB,EAAAO,GAAA,GAAAC,EAAA,KAAAU,EAAAlB,EAAA,MAAAzC,YAAAyD,EAAAP,QAAAC,UAAAO,EAAA5iB,UAAA6iB,EAAA,MAAAF,EAAAC,EAAA7jB,MAAA,KAAAiB,WAAA,gBAAAyhB,EAAAznB,GAAA,GAAAA,IAAA,WAAAsjB,EAAAtjB,IAAA,mBAAAA,GAAA,OAAAA,EAAA,YAAAA,EAAA,UAAAmkB,UAAA,mEAAA/iB,EAAAqmB,EAAA,CAAAqB,CAAA,KAAAH,EAAA,GAoGE,SAAAf,EAAa/nB,GAAS,IAAAC,GApGxB,SAAAipB,EAAAf,GAAA,KAAAe,aAAAf,GAAA,UAAA7D,UAAA,qCAoGwBpkB,CAAA,KAAA6nB,IACpB9nB,EAAAF,EAAAI,KAAA,KAAMH,EAAST,EAAWrG,OAErBkH,cAAe,EACpBH,EAAK0J,QAAS,EAEd1J,EAAKmK,MAAQnK,EAAKD,QAAQgB,cArFrB,sBAuFsBf,EAAKgD,QAAQ,mBAEtCkmB,EAAAA,EAAAA,IAAsB,kBAAMlpB,EAAKmpB,cAAc,IAGjD,IAAMC,EAAYppB,EAAKqpB,cAActpB,GACjCqpB,GACFA,EAAU7K,iBAAiB,SAAS,SAAC/gB,GAClB,KACbwC,EAAKT,MAAMrG,OAAoB8G,EAAKU,QAAQ,QAD/B,GAEnB,IAGFV,EAAK2V,WAAa3V,EAAKD,QAAQiC,aAAa,YAC5ChC,EAAKc,gBAAkBd,EAAKD,QAAQgB,cAAc,yBAClDf,EAAKgB,gBAAkB,KACnBjB,EAAQkB,aAAa,yBACvBjB,EAAKgB,gBAAkBjB,EAAQkB,aAAa,yBAE5CjB,EAAKgB,gBAAkBhB,EAAKspB,gBAAgBroB,aAAa,yBAE3DjB,EAAKmB,aAAenB,EAAKD,QAAQgB,cAAc,sBAE/Cf,EAAKD,QAAQT,EAAWrG,MAAMyI,SAAW1B,EAAK0B,SAASL,KAAIC,EAAAtB,IAC3DA,EAAKD,QAAQT,EAAWrG,MAAM0I,aAAe3B,EAAK2B,aAAaN,KAAIC,EAAAtB,IACnEA,EAAKD,QAAQT,EAAWrG,MAAMswB,SAAWvpB,EAAKupB,SAASloB,KAAIC,EAAAtB,IAC3DA,EAAKD,QAAQT,EAAWrG,MAAMiS,KAAQlL,EAAKkL,KAAM7J,KAAIC,EAAAtB,IACrDA,EAAKD,QAAQT,EAAWrG,MAAMuwB,eAAiBxpB,EAAKwpB,eAAenoB,KAAIC,EAAAtB,IACvEA,EAAKD,QAAQT,EAAWrG,MAAM4lB,SAAW7e,EAAK6e,SAASxd,KAAIC,EAAAtB,IAC3DA,EAAKD,QAAQT,EAAWrG,MAAMqwB,cAAgBtpB,EAAKspB,cAAcjoB,KAAIC,EAAAtB,IAErE,IAAMypB,EAAazpB,EAAKspB,cAAcvpB,GAUpC,OARF8C,EAAAA,EAAgBvC,aAAa,CAC3B,CAACmpB,EAAY,CAAElnB,OAAQ,SAACC,GAAE,OAAKxC,EAAKyC,SAASD,EAAG,IAChD,CAACinB,EAAY,CAAE9mB,MAAO,SAACH,GAAE,OAAKxC,EAAK0pB,QAAQlnB,EAAG,IAC9C,CAACinB,EAAY,CAAEE,SAAU,SAACnnB,GAAE,OAAKxC,EAAK4pB,WAAWpnB,EAAG,KACnDlD,EAAWrG,MAEd6I,EAAAA,EAAiBC,wBAAwBzC,EAAWrG,KAAM+G,EAAKO,OAAMhF,EAAA,GAChEyE,EAAKD,QAAQiC,aAAa3C,IAAe,CAAEhD,MAAO2D,EAAKD,QAAQhE,WAAWsD,GAAYnG,SACzF8G,CACJ,CAuOC,OA7XHkoB,EAsJGJ,EAtJHK,EAsJG,EAAAlmB,IAAA,WAAA/I,MAED,SAAUsJ,GACRL,KAAKzB,QAAQ,QAAS8B,EAAGzH,OAAO7B,OAChCiJ,KAAKgJ,OACP,GAAC,CAAAlJ,IAAA,UAAA/I,MAED,WACMiJ,KAAKuH,OACPvH,KAAKgJ,QAELhJ,KAAK+I,MAET,GAAC,CAAAjJ,IAAA,aAAA/I,MAED,WACMiJ,KAAKuH,QACPvH,KAAKgJ,OAET,GAAC,CAAAlJ,IAAA,OAAA/I,MAED,WACEiJ,KAAKuH,QAAS,EACdvH,KAAK+c,eACP,GAAC,CAAAjd,IAAA,QAAA/I,MAED,WACEiJ,KAAKuH,QAAS,EACdvH,KAAK+c,eACP,GAAC,CAAAjd,IAAA,gBAAA/I,MAED,WACMiJ,KAAKuH,QACPvH,KAAKgI,MAAMtG,UAAUE,OAAO,wBAC5B5B,KAAKgI,MAAMtG,UAAUC,IAAI,wBAEzB3B,KAAKgI,MAAMtG,UAAUE,OAAO,sBAC5B5B,KAAKgI,MAAMtG,UAAUC,IAAI,wBAE7B,GAAC,CAAA7B,IAAA,WAAA/I,MAED,WACE,OAAOiJ,KAAKmnB,cAAcnnB,KAAKpC,SAAS7G,KAC1C,GAAC,CAAA+I,IAAA,iBAAA/I,MAED,WACE,OAAOiJ,KAAKpC,QAAQ9F,QAAQ4vB,sBAC9B,GAAC,CAAA5nB,IAAA,WAAA/I,MAAA,SAAA4wB,GAAA,OAAA/B,EAAAA,IArMHgC,EAqMG7I,IAAAmE,MAED,SAAA2E,EAAgB9wB,GAAK,IAAAyH,EAAAspB,EAAA/jB,UAAA,OAAAgb,IAAAkB,MAAA,SAAA8H,GAAA,cAAAA,EAAAtE,KAAAsE,EAAA3F,MAAA,OAC+H,GAD7H5jB,EAAOspB,EAAAplB,OAAA,QAAAnJ,IAAAuuB,EAAA,GAAAA,EAAA,GAAG,CAAC,IACR/wB,EAAQiJ,KAAKmnB,cAAcnnB,KAAKpC,SAASgB,cAAc,WAADjH,OAAYZ,EAAK,OAAQiJ,KAAKmnB,cAAcnnB,KAAKpC,SAAS8G,YACnH,CAAFqjB,EAAA3F,KAAA,SAShB,OARDpiB,KAAKmnB,cAAcnnB,KAAKpC,SAAS7G,MAAQA,EACzCiJ,KAAKpC,QAAQ8D,UAAU3K,EAAQ,MAAQ,UAAU,aAC5CyH,EAAQoF,iBACX5D,KAAKzB,QAAQ,UAAWyB,KAAK5C,MAAMoB,QAAQpG,KAAI,SAAAggB,GAAC,OAAAhf,EAAAA,EAAA,GAAUgf,GAAC,IAAEC,SAAUD,EAAErhB,QAAUA,GAAK,IAAIqC,EAAAA,EAAA,GAAOoF,GAAO,IAAEoF,iBAAiB,KAG1HpF,EAAQC,QACXuB,KAAK5B,OAAOwE,KAAK,SAAU7L,GAC5BgxB,EAAA/F,OAAA,SACMjrB,GAAK,QAE8B,MAA1CiJ,KAAKpC,QAAQ8D,UAAUE,OAAO,aACxB,IAAI6f,MAAM,GAAD9pB,OAAIZ,EAAK,8BAA8BiJ,KAAKpC,SAAQ,yBAAAmqB,EAAAnE,OAAA,GAAAiE,EAAA,SAtNzE,eAAArC,EAAA,KAAAwC,EAAAjkB,UAAA,WAAAwf,SAAA,SAAAlW,EAAAgX,GAAA,IAAAD,EAAAwD,EAAA9kB,MAAA0iB,EAAAwC,GAAA,SAAA1D,EAAAvtB,GAAAotB,EAAAC,EAAA/W,EAAAgX,EAAAC,EAAAC,EAAA,OAAAxtB,EAAA,UAAAwtB,EAAA0D,GAAA9D,EAAAC,EAAA/W,EAAAgX,EAAAC,EAAAC,EAAA,QAAA0D,EAAA,CAAA3D,OAAA/qB,EAAA,OAwNGuJ,MAAA,KAAAiB,WAxNH,IAAA6jB,CAwNG,GAED,CAAA9nB,IAAA,aAAA/I,MAKA,WACE,OAAOqP,MAAMC,KAAKrG,KAAKmnB,gBAAgB3oB,SACpCpD,QAAO,SAAC+F,GAAM,OAAKA,EAAOO,UAAUoF,SAAS,qBAAqB,IAClEsN,QAAO,SAAC8T,EAAO/mB,GAAM,SAAAxJ,OAAAuD,EAAUgtB,GAAK,CAAE,CACrClxB,KAAMmK,EAAOnK,KACbD,MAAOoK,EAAOpK,MACdshB,SAAUlX,EAAOkX,SACjBjhB,SAAU+J,EAAO/J,WAClB,GAAI,GACT,GAEA,CAAA0I,IAAA,aAAA/I,MAQA,SAAYsD,GAA+B,IAAxBmE,EAAOuF,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGlC,EAAQkC,UAAArB,OAAA,EAAAqB,UAAA,QAAAxK,EACvCc,EAAQA,GAAS,GACjB+L,MAAMC,KAAKrG,KAAKmnB,gBAAgB3oB,SAAS0B,SAAQ,SAACiB,GAAM,OAAKA,EAAOS,QAAQ,IAE5E,IAAM6N,EAAczP,KAAKa,QAAQ,eACjC,GAAI4O,GAA+B,KAAhBA,EAAoB,CACrC,IAAM0Y,EAAiB9tB,EAAMe,QAAO,SAACG,GAAI,OAAMA,EAAKoV,OAAO,IAC3DtW,EAAQ,CAAC,CACPsW,SAAS,EACT3Z,KAAMyY,EACN4I,UAAWhe,EAAMiL,MAAK,SAAC/J,GAAI,OAAKA,EAAKoV,OAAO,KAAK,CAAC,GAAG0H,WAAa8P,EAAehQ,MAAK,SAAA5c,GAAI,OAAIA,EAAK8c,QAAQ,MAC5G1gB,OAAAuD,EAAKitB,GACR,CAaA,GAFAnoB,KAAKmnB,gBAAgBnlB,YATG,SAAC3H,GACvB,IAAM6H,EAAWC,SAASC,yBAK1B,OAJA/H,EAAM6F,SAAQ,SAAA3E,GACRA,EAAKoV,UAAWpV,EAAInC,EAAAA,EAAA,GAAQmC,GAAI,IAAExE,MAAO,GAAIK,UAAU,KAC3D8K,EAASF,aAAYO,EAAAA,EAAAA,KAAkB2X,EAAAA,EAAAA,GAA6B3e,IACtE,IACO2G,CACT,CAEiCD,CAAgB5H,KAE5CmE,EAAQoF,gBAAiB,CAC5B,IAAMwkB,EAAiBpoB,KAAK5C,MAAMoB,QAAQ8G,MAAK,SAAA8S,GAAC,OAAIA,EAAEC,QAAQ,IACxDgQ,EAAgBD,EAAiBA,EAAerxB,MAAQ,GAC9DiJ,KAAKzB,QAAQ,QAAS8pB,EAAajvB,EAAAA,EAAA,GAAOoF,GAAO,IAAEoF,iBAAiB,IACtE,CAEKpF,EAAQC,QACXuB,KAAK5B,OAAOwE,KAAK,iBAAkB5C,KAAK5C,MAAMoB,QAASqD,EAE3D,GAAC,CAAA/B,IAAA,gBAAA/I,MAED,WAEE,OADAiJ,KAAKsnB,WAAatnB,KAAKsnB,YAActnB,KAAKpC,QAAQgB,cAAc,wBACzDoB,KAAKsnB,UACd,GAAC,CAAAxnB,IAAA,gBAAA/I,MAED,WAEE,OADAiJ,KAAKinB,UAAYjnB,KAAKinB,WAAajnB,KAAKpC,QAAQgB,cAAc,sBACvDoB,KAAKinB,SACd,GAAC,CAAAnnB,IAAA,cAAA/I,MAED,SAAaA,GACX,IAAMuxB,EAAgBtoB,KAAKpC,QAAQgB,cAAc,0BAC7C7H,GACFiJ,KAAKpC,QAAQ8D,UAAUC,IAAI,eACvB2mB,GAAeA,EAAc5S,aAAa,WAAY,MAE1D1V,KAAKpC,QAAQ8D,UAAUE,OAAO,eAC1B0mB,GAAeA,EAAcC,gBAAgB,WAAY,IAEjE,GAAC,CAAAzoB,IAAA,eAAA/I,MAED,WACEiJ,KAAKhC,cAAe,CACtB,GAAC,CAAA8B,IAAA,WAAA/I,MAED,WAAgC,IAAtBiO,EAAYjB,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,IAAAA,UAAA,GACdykB,EAAyC,KAApBxoB,KAAKonB,YAAqBpnB,KAAKwT,WACtDvO,EAAUjF,KAAKmnB,gBAAgB1hB,SAASC,MACxC8iB,IACFvjB,GAAU,GAEZ,IAAIU,EAAW,GACXmO,EAAe,GAQnB,OAPK9O,GAAiBhF,KAAKhC,eACpBiH,IACHU,EAAW3F,KAAKkV,yBAChBpB,EAAe9T,KAAKiU,8BAEtBjU,KAAKyoB,eAAexjB,EAASU,IAExB,CACLV,QAAAA,EACAa,cAAeH,EACfuO,WAAYJ,EACZ/N,UAAW/F,KAAKmnB,cAAcnnB,KAAKpC,SAAS9G,KAEhD,GAEA,CAAAgJ,IAAA,WAAA/I,MAGA,SAAUC,GACJgJ,KAAKhB,eACPgB,KAAKhB,aAAaoC,UAAYpK,EAElC,GAEA,CAAA8I,IAAA,WAAA/I,MAGA,WACE,OAAOiJ,KAAKhB,aAAegB,KAAKhB,aAAaoC,UAAY,EAC3D,GAAC,CAAAtB,IAAA,eAAA/I,MAED,WACE,IAAMqxB,EAAiBpoB,KAAKpC,QAAQgB,cAAc,cAC9CwpB,GAAkBA,EAAerxB,QACnCiJ,KAAKmnB,gBAAgBpwB,MAAQqxB,EAAerxB,MAC5CiJ,KAAKzB,QAAQ,QAAS6pB,EAAerxB,OAEzC,GAAC,CAAA+I,IAAA,yBAAA/I,MAED,WACE,IAAM4O,EAAW,GAKjB,MAHiB,KADA3F,KAAKonB,YACCpnB,KAAKnB,iBAC1B8G,EAASxF,KAAKH,KAAKnB,iBAEd8G,CACT,GAAC,CAAA7F,IAAA,6BAAA/I,MAED,WACE,IAAM+c,EAAe,GAMrB,MAJiB,KADA9T,KAAKonB,YACCpnB,KAAKnB,iBAC1BiV,EAAa3T,KAAK,gBAGb2T,CACT,GAAC,CAAAhU,IAAA,iBAAA/I,MAED,SAAgBkO,EAASU,GCtWa,IAACjO,EDuWhCuN,GAMHjF,KAAKpC,QAAQ8D,UAAUE,OAAO,aACD,OAAzB5B,KAAKrB,sBAAqDpF,IAAzByG,KAAKrB,kBACxCqB,KAAKrB,gBAAgB2H,UAAY,MAPnCtG,KAAKpC,QAAQ8D,UAAUC,IAAI,aACE,OAAzB3B,KAAKrB,sBAAqDpF,IAAzByG,KAAKrB,kBACxCqB,KAAKrB,gBAAgB2H,UC1Wa,OAAA3O,QAADD,ED0WyBiO,GCzW7D,aAAAhO,OAEKD,EAAEU,KAAI,SAAAmO,GAAO,qIAAA5O,OAGH4O,EAAO,sCAEpBhO,KAAK,IAAG,YAET,GAAE,ODwWN,IA7XFytB,GAAAjB,EAAAgB,EAAA7G,UAAA8G,GAAA9tB,OAAAknB,eAAA2G,EAAA,aAAA/F,UAAA,IA6XG2F,CAAA,CAhS0B,CAAS1e,EAAAA,IAmStCC,EAAAA,EAAAA,GAAkBye,EAAUxoB,EAAWrG,KAAMqG,g1BEhY7C4hB,EAAA,kBAAA1jB,CAAA,MAAA2jB,EAAA3jB,EAAA,GAAA4jB,EAAA/mB,OAAAgnB,UAAAxG,EAAAuG,EAAAE,eAAA/G,EAAAlgB,OAAAknB,gBAAA,SAAAJ,EAAA3jB,EAAA4jB,GAAAD,EAAA3jB,GAAA4jB,EAAAloB,KAAA,EAAAsoB,EAAA,mBAAAC,OAAAA,OAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAC,EAAAb,EAAA3jB,EAAA4jB,GAAA,OAAA/mB,OAAAknB,eAAAJ,EAAA3jB,EAAA,CAAAtE,MAAAkoB,EAAAa,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAhB,EAAA3jB,EAAA,KAAAwkB,EAAA,aAAAb,GAAAa,EAAA,SAAAb,EAAA3jB,EAAA4jB,GAAA,OAAAD,EAAA3jB,GAAA4jB,CAAA,WAAAgB,EAAAjB,EAAA3jB,EAAA4jB,EAAAvG,GAAA,IAAA2G,EAAAhkB,GAAAA,EAAA6jB,qBAAAgB,EAAA7kB,EAAA6kB,EAAAX,EAAArnB,OAAAioB,OAAAd,EAAAH,WAAAO,EAAA,IAAAW,EAAA1H,GAAA,WAAAN,EAAAmH,EAAA,WAAAxoB,MAAAspB,EAAArB,EAAAC,EAAAQ,KAAAF,CAAA,UAAAe,EAAAtB,EAAA3jB,EAAA4jB,GAAA,WAAA5hB,KAAA,SAAAkjB,IAAAvB,EAAAjhB,KAAA1C,EAAA4jB,GAAA,OAAAD,GAAA,OAAA3hB,KAAA,QAAAkjB,IAAAvB,EAAA,EAAA3jB,EAAA4kB,KAAAA,EAAA,IAAAO,EAAA,iBAAAC,EAAA,iBAAAC,EAAA,YAAA3kB,EAAA,YAAA0P,EAAA,YAAAyU,IAAA,UAAAS,IAAA,UAAAC,IAAA,KAAAC,EAAA,GAAAhB,EAAAgB,EAAAtB,GAAA,8BAAA7nB,EAAAQ,OAAA4oB,eAAAC,EAAArpB,GAAAA,EAAAA,EAAAkc,EAAA,MAAAmN,GAAAA,IAAA9B,GAAAvG,EAAA3a,KAAAgjB,EAAAxB,KAAAsB,EAAAE,GAAA,IAAAC,EAAAJ,EAAA1B,UAAAgB,EAAAhB,UAAAhnB,OAAAioB,OAAAU,GAAA,SAAAI,EAAAjC,GAAA,0BAAA9e,SAAA,SAAA7E,GAAAwkB,EAAAb,EAAA3jB,GAAA,SAAA2jB,GAAA,YAAAkC,QAAA7lB,EAAA2jB,EAAA,gBAAAmC,EAAAnC,EAAA3jB,GAAA,SAAA+lB,EAAAnC,EAAA7G,EAAAiH,EAAAE,GAAA,IAAAE,EAAAa,EAAAtB,EAAAC,GAAAD,EAAA5G,GAAA,aAAAqH,EAAApiB,KAAA,KAAAsiB,EAAAF,EAAAc,IAAAC,EAAAb,EAAA5oB,MAAA,OAAAypB,GAAA,UAAAa,EAAAb,IAAA9H,EAAA3a,KAAAyiB,EAAA,WAAAnlB,EAAAgS,QAAAmT,EAAAc,SAAAC,MAAA,SAAAvC,GAAAoC,EAAA,OAAApC,EAAAK,EAAAE,EAAA,aAAAP,GAAAoC,EAAA,QAAApC,EAAAK,EAAAE,EAAA,IAAAlkB,EAAAgS,QAAAmT,GAAAe,MAAA,SAAAvC,GAAAW,EAAA5oB,MAAAioB,EAAAK,EAAAM,EAAA,aAAAX,GAAA,OAAAoC,EAAA,QAAApC,EAAAK,EAAAE,EAAA,IAAAA,EAAAE,EAAAc,IAAA,KAAAtB,EAAA7G,EAAA,gBAAArhB,MAAA,SAAAioB,EAAAtG,GAAA,SAAA8I,IAAA,WAAAnmB,GAAA,SAAAA,EAAA4jB,GAAAmC,EAAApC,EAAAtG,EAAArd,EAAA4jB,EAAA,WAAAA,EAAAA,EAAAA,EAAAsC,KAAAC,EAAAA,GAAAA,GAAA,aAAAnB,EAAAhlB,EAAA4jB,EAAAvG,GAAA,IAAAN,EAAAoI,EAAA,gBAAAnB,EAAAE,GAAA,GAAAnH,IAAAsI,EAAA,UAAAe,MAAA,mCAAArJ,IAAArc,EAAA,cAAAsjB,EAAA,MAAAE,EAAA,OAAAxoB,MAAAioB,EAAA0C,MAAA,OAAAhJ,EAAAve,OAAAklB,EAAA3G,EAAA6H,IAAAhB,IAAA,KAAAE,EAAA/G,EAAAiJ,SAAA,GAAAlC,EAAA,KAAAE,EAAAiC,EAAAnC,EAAA/G,GAAA,GAAAiH,EAAA,IAAAA,IAAAlU,EAAA,gBAAAkU,CAAA,cAAAjH,EAAAve,OAAAue,EAAAmJ,KAAAnJ,EAAAoJ,MAAApJ,EAAA6H,SAAA,aAAA7H,EAAAve,OAAA,IAAAie,IAAAoI,EAAA,MAAApI,EAAArc,EAAA2c,EAAA6H,IAAA7H,EAAAqJ,kBAAArJ,EAAA6H,IAAA,gBAAA7H,EAAAve,QAAAue,EAAAsJ,OAAA,SAAAtJ,EAAA6H,KAAAnI,EAAAsI,EAAA,IAAAG,EAAAP,EAAAjlB,EAAA4jB,EAAAvG,GAAA,cAAAmI,EAAAxjB,KAAA,IAAA+a,EAAAM,EAAAgJ,KAAA3lB,EAAA0kB,EAAAI,EAAAN,MAAA9U,EAAA,gBAAA1U,MAAA8pB,EAAAN,IAAAmB,KAAAhJ,EAAAgJ,KAAA,WAAAb,EAAAxjB,OAAA+a,EAAArc,EAAA2c,EAAAve,OAAA,QAAAue,EAAA6H,IAAAM,EAAAN,IAAA,YAAAqB,EAAAvmB,EAAA4jB,GAAA,IAAAvG,EAAAuG,EAAA9kB,OAAAie,EAAA/c,EAAAmkB,SAAA9G,GAAA,GAAAN,IAAA4G,EAAA,OAAAC,EAAA0C,SAAA,eAAAjJ,GAAArd,EAAAmkB,SAAAyC,SAAAhD,EAAA9kB,OAAA,SAAA8kB,EAAAsB,IAAAvB,EAAA4C,EAAAvmB,EAAA4jB,GAAA,UAAAA,EAAA9kB,SAAA,WAAAue,IAAAuG,EAAA9kB,OAAA,QAAA8kB,EAAAsB,IAAA,IAAA2B,UAAA,oCAAAxJ,EAAA,aAAAjN,EAAA,IAAA4T,EAAAiB,EAAAlI,EAAA/c,EAAAmkB,SAAAP,EAAAsB,KAAA,aAAAlB,EAAAhiB,KAAA,OAAA4hB,EAAA9kB,OAAA,QAAA8kB,EAAAsB,IAAAlB,EAAAkB,IAAAtB,EAAA0C,SAAA,KAAAlW,EAAA,IAAA8T,EAAAF,EAAAkB,IAAA,OAAAhB,EAAAA,EAAAmC,MAAAzC,EAAA5jB,EAAA8mB,YAAA5C,EAAAxoB,MAAAkoB,EAAAmD,KAAA/mB,EAAAgnB,QAAA,WAAApD,EAAA9kB,SAAA8kB,EAAA9kB,OAAA,OAAA8kB,EAAAsB,IAAAvB,GAAAC,EAAA0C,SAAA,KAAAlW,GAAA8T,GAAAN,EAAA9kB,OAAA,QAAA8kB,EAAAsB,IAAA,IAAA2B,UAAA,oCAAAjD,EAAA0C,SAAA,KAAAlW,EAAA,UAAA6W,EAAAtD,GAAA,IAAA3jB,EAAA,CAAAknB,OAAAvD,EAAA,SAAAA,IAAA3jB,EAAAmnB,SAAAxD,EAAA,SAAAA,IAAA3jB,EAAAonB,WAAAzD,EAAA,GAAA3jB,EAAAqnB,SAAA1D,EAAA,SAAA2D,WAAAxiB,KAAA9E,EAAA,UAAAunB,EAAA5D,GAAA,IAAA3jB,EAAA2jB,EAAA6D,YAAA,GAAAxnB,EAAAgC,KAAA,gBAAAhC,EAAAklB,IAAAvB,EAAA6D,WAAAxnB,CAAA,UAAA+kB,EAAApB,GAAA,KAAA2D,WAAA,EAAAJ,OAAA,SAAAvD,EAAA9e,QAAAoiB,EAAA,WAAAQ,OAAA,YAAAlP,EAAAvY,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA4jB,EAAA5jB,EAAAkkB,GAAA,GAAAN,EAAA,OAAAA,EAAAlhB,KAAA1C,GAAA,sBAAAA,EAAA+mB,KAAA,OAAA/mB,EAAA,IAAA8X,MAAA9X,EAAAqH,QAAA,KAAA0V,GAAA,EAAAiH,EAAA,SAAA+C,IAAA,OAAAhK,EAAA/c,EAAAqH,QAAA,GAAAgW,EAAA3a,KAAA1C,EAAA+c,GAAA,OAAAgK,EAAArrB,MAAAsE,EAAA+c,GAAAgK,EAAAV,MAAA,EAAAU,EAAA,OAAAA,EAAArrB,MAAAioB,EAAAoD,EAAAV,MAAA,EAAAU,CAAA,SAAA/C,EAAA+C,KAAA/C,CAAA,YAAA6C,UAAAb,EAAAhmB,GAAA,2BAAAslB,EAAAzB,UAAA0B,EAAAxI,EAAA4I,EAAA,eAAAjqB,MAAA6pB,EAAAb,cAAA,IAAA3H,EAAAwI,EAAA,eAAA7pB,MAAA4pB,EAAAZ,cAAA,IAAAY,EAAAoC,YAAAlD,EAAAe,EAAAjB,EAAA,qBAAAtkB,EAAA2nB,oBAAA,SAAAhE,GAAA,IAAA3jB,EAAA,mBAAA2jB,GAAAA,EAAAiE,YAAA,QAAA5nB,IAAAA,IAAAslB,GAAA,uBAAAtlB,EAAA0nB,aAAA1nB,EAAAvE,MAAA,EAAAuE,EAAA6nB,KAAA,SAAAlE,GAAA,OAAA9mB,OAAAirB,eAAAjrB,OAAAirB,eAAAnE,EAAA4B,IAAA5B,EAAAoE,UAAAxC,EAAAf,EAAAb,EAAAW,EAAA,sBAAAX,EAAAE,UAAAhnB,OAAAioB,OAAAa,GAAAhC,CAAA,EAAA3jB,EAAAgoB,MAAA,SAAArE,GAAA,OAAAsC,QAAAtC,EAAA,EAAAiC,EAAAE,EAAAjC,WAAAW,EAAAsB,EAAAjC,UAAAO,GAAA,0BAAApkB,EAAA8lB,cAAAA,EAAA9lB,EAAAioB,MAAA,SAAAtE,EAAAC,EAAAvG,EAAAN,EAAAiH,QAAA,IAAAA,IAAAA,EAAAkE,SAAA,IAAAhE,EAAA,IAAA4B,EAAAlB,EAAAjB,EAAAC,EAAAvG,EAAAN,GAAAiH,GAAA,OAAAhkB,EAAA2nB,oBAAA/D,GAAAM,EAAAA,EAAA6C,OAAAb,MAAA,SAAAvC,GAAA,OAAAA,EAAA0C,KAAA1C,EAAAjoB,MAAAwoB,EAAA6C,MAAA,KAAAnB,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAAzB,GAAA,0BAAAM,EAAAmB,EAAA,qDAAA3lB,EAAAlD,KAAA,SAAA6mB,GAAA,IAAA3jB,EAAAnD,OAAA8mB,GAAAC,EAAA,WAAAvG,KAAArd,EAAA4jB,EAAA9e,KAAAuY,GAAA,OAAAuG,EAAAhI,UAAA,SAAAmL,IAAA,KAAAnD,EAAAvc,QAAA,KAAAsc,EAAAC,EAAAuE,MAAA,GAAAxE,KAAA3jB,EAAA,OAAA+mB,EAAArrB,MAAAioB,EAAAoD,EAAAV,MAAA,EAAAU,CAAA,QAAAA,EAAAV,MAAA,EAAAU,CAAA,GAAA/mB,EAAAuY,OAAAA,EAAAwM,EAAAlB,UAAA,CAAA+D,YAAA7C,EAAA0C,MAAA,SAAAznB,GAAA,QAAAooB,KAAA,OAAArB,KAAA,OAAAP,KAAA,KAAAC,MAAA9C,EAAA,KAAA0C,MAAA,OAAAC,SAAA,UAAAxnB,OAAA,YAAAomB,IAAAvB,EAAA,KAAA2D,WAAAziB,QAAA0iB,IAAAvnB,EAAA,QAAA4jB,KAAA,WAAAA,EAAAyE,OAAA,IAAAhL,EAAA3a,KAAA,KAAAkhB,KAAA9L,OAAA8L,EAAA0E,MAAA,WAAA1E,GAAAD,EAAA,EAAA4E,KAAA,gBAAAlC,MAAA,MAAA1C,EAAA,KAAA2D,WAAA,GAAAE,WAAA,aAAA7D,EAAA3hB,KAAA,MAAA2hB,EAAAuB,IAAA,YAAAsD,IAAA,EAAA9B,kBAAA,SAAA1mB,GAAA,QAAAqmB,KAAA,MAAArmB,EAAA,IAAA4jB,EAAA,cAAA6E,EAAApL,EAAAN,GAAA,OAAAmH,EAAAliB,KAAA,QAAAkiB,EAAAgB,IAAAllB,EAAA4jB,EAAAmD,KAAA1J,EAAAN,IAAA6G,EAAA9kB,OAAA,OAAA8kB,EAAAsB,IAAAvB,KAAA5G,CAAA,SAAAA,EAAA,KAAAuK,WAAAjgB,OAAA,EAAA0V,GAAA,IAAAA,EAAA,KAAAiH,EAAA,KAAAsD,WAAAvK,GAAAmH,EAAAF,EAAAwD,WAAA,YAAAxD,EAAAkD,OAAA,OAAAuB,EAAA,UAAAzE,EAAAkD,QAAA,KAAAkB,KAAA,KAAAhE,EAAA/G,EAAA3a,KAAAshB,EAAA,YAAAM,EAAAjH,EAAA3a,KAAAshB,EAAA,iBAAAI,GAAAE,EAAA,SAAA8D,KAAApE,EAAAmD,SAAA,OAAAsB,EAAAzE,EAAAmD,UAAA,WAAAiB,KAAApE,EAAAoD,WAAA,OAAAqB,EAAAzE,EAAAoD,WAAA,SAAAhD,GAAA,QAAAgE,KAAApE,EAAAmD,SAAA,OAAAsB,EAAAzE,EAAAmD,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAgC,KAAApE,EAAAoD,WAAA,OAAAqB,EAAAzE,EAAAoD,WAAA,KAAAT,OAAA,SAAAhD,EAAA3jB,GAAA,QAAA4jB,EAAA,KAAA0D,WAAAjgB,OAAA,EAAAuc,GAAA,IAAAA,EAAA,KAAA7G,EAAA,KAAAuK,WAAA1D,GAAA,GAAA7G,EAAAmK,QAAA,KAAAkB,MAAA/K,EAAA3a,KAAAqa,EAAA,oBAAAqL,KAAArL,EAAAqK,WAAA,KAAApD,EAAAjH,EAAA,OAAAiH,IAAA,UAAAL,GAAA,aAAAA,IAAAK,EAAAkD,QAAAlnB,GAAAA,GAAAgkB,EAAAoD,aAAApD,EAAA,UAAAE,EAAAF,EAAAA,EAAAwD,WAAA,UAAAtD,EAAAliB,KAAA2hB,EAAAO,EAAAgB,IAAAllB,EAAAgkB,GAAA,KAAAllB,OAAA,YAAAioB,KAAA/C,EAAAoD,WAAAhX,GAAA,KAAAsY,SAAAxE,EAAA,EAAAwE,SAAA,SAAA/E,EAAA3jB,GAAA,aAAA2jB,EAAA3hB,KAAA,MAAA2hB,EAAAuB,IAAA,gBAAAvB,EAAA3hB,MAAA,aAAA2hB,EAAA3hB,KAAA,KAAA+kB,KAAApD,EAAAuB,IAAA,WAAAvB,EAAA3hB,MAAA,KAAAwmB,KAAA,KAAAtD,IAAAvB,EAAAuB,IAAA,KAAApmB,OAAA,cAAAioB,KAAA,kBAAApD,EAAA3hB,MAAAhC,IAAA,KAAA+mB,KAAA/mB,GAAAoQ,CAAA,EAAAuY,OAAA,SAAAhF,GAAA,QAAA3jB,EAAA,KAAAsnB,WAAAjgB,OAAA,EAAArH,GAAA,IAAAA,EAAA,KAAA4jB,EAAA,KAAA0D,WAAAtnB,GAAA,GAAA4jB,EAAAwD,aAAAzD,EAAA,YAAA+E,SAAA9E,EAAA4D,WAAA5D,EAAAyD,UAAAE,EAAA3D,GAAAxT,CAAA,GAAAwY,MAAA,SAAAjF,GAAA,QAAA3jB,EAAA,KAAAsnB,WAAAjgB,OAAA,EAAArH,GAAA,IAAAA,EAAA,KAAA4jB,EAAA,KAAA0D,WAAAtnB,GAAA,GAAA4jB,EAAAsD,SAAAvD,EAAA,KAAAtG,EAAAuG,EAAA4D,WAAA,aAAAnK,EAAArb,KAAA,KAAA+a,EAAAM,EAAA6H,IAAAqC,EAAA3D,EAAA,QAAA7G,CAAA,YAAAqJ,MAAA,0BAAAyC,cAAA,SAAA7oB,EAAA4jB,EAAAvG,GAAA,YAAAiJ,SAAA,CAAAnC,SAAA5L,EAAAvY,GAAA8mB,WAAAlD,EAAAoD,QAAA3J,GAAA,cAAAve,SAAA,KAAAomB,IAAAvB,GAAAvT,CAAA,GAAApQ,CAAA,UAAA8oB,EAAAC,EAAA/W,EAAAgX,EAAAC,EAAAC,EAAAzkB,EAAAygB,GAAA,QAAAiE,EAAAJ,EAAAtkB,GAAAygB,GAAAxpB,EAAAytB,EAAAztB,KAAA,OAAAmC,GAAA,YAAAmrB,EAAAnrB,EAAA,CAAAsrB,EAAA9C,KAAArU,EAAAtW,GAAAwsB,QAAAlW,QAAAtW,GAAAwqB,KAAA+C,EAAAC,EAAA,UAAAQ,EAAAnsB,EAAAwE,GAAA,QAAAiiB,EAAA,EAAAA,EAAAjiB,EAAAsF,OAAA2c,IAAA,KAAA2F,EAAA5nB,EAAAiiB,GAAA2F,EAAAlF,WAAAkF,EAAAlF,aAAA,EAAAkF,EAAAjF,cAAA,YAAAiF,IAAAA,EAAAhF,UAAA,GAAA9nB,OAAAknB,eAAAxmB,EAAAgsB,EAAAI,EAAAllB,KAAAklB,EAAA,WAAAJ,EAAArE,GAAA,IAAAzgB,EAAA,SAAAuB,EAAA4jB,GAAA,cAAA5D,EAAAhgB,IAAA,OAAAA,EAAA,OAAAA,EAAA,IAAA6jB,EAAA7jB,EAAAie,OAAA6F,aAAA,QAAA5rB,IAAA2rB,EAAA,KAAAE,EAAAF,EAAAnnB,KAAAsD,EAAA4jB,UAAA,cAAA5D,EAAA+D,GAAA,OAAAA,EAAA,UAAAlD,UAAA,uDAAAmD,OAAAhkB,EAAA,CAAAikB,CAAA/E,GAAA,iBAAAc,EAAAvhB,GAAAA,EAAAulB,OAAAvlB,EAAA,UAAAylB,EAAAnN,EAAAyI,GAAA,OAAA0E,EAAArtB,OAAAirB,eAAAjrB,OAAAirB,eAAAjkB,OAAA,SAAAkZ,EAAAyI,GAAA,OAAAzI,EAAAgL,UAAAvC,EAAAzI,CAAA,EAAAmN,EAAAnN,EAAAyI,EAAA,UAAA6E,EAAAtN,GAAA,OAAAsN,EAAAxtB,OAAAirB,eAAAjrB,OAAA4oB,eAAA5hB,OAAA,SAAAkZ,GAAA,OAAAA,EAAAgL,WAAAlrB,OAAA4oB,eAAA1I,EAAA,EAAAsN,EAAAtN,EAAA,CASA,IAAMjb,EAAa,CACjBrG,KAAM,iBACNsG,MAAO,CACL,CACEtG,KAAM,SACNuG,KAAM,UACNH,KAAM,cAER,CACEpG,KAAM,SACNuG,KAAM,SACNH,KAAM,0BAER,CACEpG,KAAM,kBACNuG,KAAM,SACNH,KAAM,mCAER,CACEpG,KAAM,kBACNuG,KAAM,SACNH,KAAM,qCAINwrB,EACO,aAaQC,EAAc,SAAAlrB,IAhDnC,SAAAooB,EAAAC,GAAA,sBAAAA,GAAA,OAAAA,EAAA,UAAA5D,UAAA,sDAAA2D,EAAA3G,UAAAhnB,OAAAioB,OAAA2F,GAAAA,EAAA5G,UAAA,CAAA+D,YAAA,CAAAlsB,MAAA8uB,EAAA7F,UAAA,EAAAD,cAAA,KAAA7nB,OAAAknB,eAAAyG,EAAA,aAAA7F,UAAA,IAAA8F,GAAAP,EAAAM,EAAAC,EAAA,CAgDmCpoB,CAAAirB,EAAAlrB,GAAA,IAhDnCsoB,EAAAC,EAAAC,EAAAC,EAgDmCvoB,GAhDnCsoB,EAgDmC0C,EAhDnCzC,EAAA,kCAAAC,UAAAA,QAAAC,UAAA,YAAAD,QAAAC,UAAAC,KAAA,+BAAAC,MAAA,oBAAAC,QAAArH,UAAAsH,QAAAzoB,KAAAooB,QAAAC,UAAAG,QAAA,6BAAAlrB,GAAA,UAAAorB,GAAA,eAAAC,EAAAC,EAAAjB,EAAAO,GAAA,GAAAC,EAAA,KAAAU,EAAAlB,EAAA,MAAAzC,YAAAyD,EAAAP,QAAAC,UAAAO,EAAA5iB,UAAA6iB,EAAA,MAAAF,EAAAC,EAAA7jB,MAAA,KAAAiB,WAAA,gBAAAyhB,EAAAznB,GAAA,GAAAA,IAAA,WAAAsjB,EAAAtjB,IAAA,mBAAAA,GAAA,OAAAA,EAAA,YAAAA,EAAA,UAAAmkB,UAAA,4EAAAsD,GAAA,YAAAA,EAAA,UAAAC,eAAA,oEAAAD,CAAA,CAAArmB,CAAAqmB,EAAA,CAAAqB,CAAA,KAAAH,EAAA,GAuDE,SAAAiC,EAAa/qB,GAAS,IAAAgV,EAAA/U,EAmClB,OA1FN,SAAAipB,EAAAf,GAAA,KAAAe,aAAAf,GAAA,UAAA7D,UAAA,qCAuDwBpkB,CAAA,KAAA6qB,IACpB9qB,EAAAF,EAAAI,KAAA,KAAMH,EAAST,EAAWrG,OAErB8xB,WAAa/qB,EAAKgrB,gBAEvBC,EAAAA,EAAU1qB,OAAOC,GAAG,QAAQ,WAC1BR,EAAKU,QAAQ,SAAUuqB,EAAAA,EAAUC,QAAQlrB,EAAKT,MAAM4rB,QAAS,CAAEvqB,QAAQ,GACzE,IAEAb,EAAQwe,iBAAiB,SAAS,SAAFuL,GAAA,OAAA/U,EAAAA,IAhEpCgV,EAgEoC7I,IAAAmE,MAAE,SAAA2E,EAAOxnB,GAAE,IAAA4oB,EAAAC,EAAAC,EAAA,OAAApK,IAAAkB,MAAA,SAAA8H,GAAA,cAAAA,EAAAtE,KAAAsE,EAAA3F,MAAA,WACrC0G,EAAAA,EAAUM,qBAAsB,CAAFrB,EAAA3F,KAAA,QAChCvkB,EAAKwrB,YAAWtB,EAAA3F,KAAA,gBAGqC,GAA/C8G,EAAgBrrB,EAAKgD,QAAQ,oBAE/BhD,EAAKT,MAAMksB,OAAQ,CAAFvB,EAAA3F,KAAA,gBAAA2F,EAAA3F,KAAA,EACC0G,EAAAA,EAAUS,gBAAgB1rB,EAAKT,MAAM4rB,OAAQE,EAAerrB,EAAKT,MAAMosB,iBAAgB,OAA3GP,EAAWlB,EAAAlG,KACXsH,EAAgB,kBAAMtrB,EAAKO,OAAOwE,KAAK6mB,EAAAA,GAAeC,gBAAiB,CAAE7yB,GAAIgH,EAAKgD,QAAQ,UAAW+nB,WAAY/qB,EAAK+qB,YAAa,EAAAb,EAAA3F,KAAA,wBAAA2F,EAAA3F,KAAA,GAE/G0G,EAAAA,EAAUa,aAAa9rB,EAAKT,MAAM4rB,OAAQE,EAAerrB,EAAKT,MAAMosB,iBAAgB,QAAxGP,EAAWlB,EAAAlG,KACXsH,EAAgB,kBAAMtrB,EAAKO,OAAOwE,KAAK6mB,EAAAA,GAAeG,aAAc,CAAE/yB,GAAIgH,EAAKgD,QAAQ,UAAW+nB,WAAY/qB,EAAK+qB,YAAa,UAG9HK,GACFprB,EAAKU,QAAQ,UAAWV,EAAKT,MAAMksB,OAAQ,CAAE7qB,QAAQ,IACrD0qB,KACSL,EAAAA,EAAUM,sBACnBvrB,EAAKwrB,YACN,yBAAAtB,EAAAnE,OAAA,GAAAiE,EAAA,IApFT,eAAArC,EAAA,KAAAwC,EAAAjkB,UAAA,WAAAwf,SAAA,SAAAlW,EAAAgX,GAAA,IAAAD,EAAAwD,EAAA9kB,MAAA0iB,EAAAwC,GAAA,SAAA1D,EAAAvtB,GAAAotB,EAAAC,EAAA/W,EAAAgX,EAAAC,EAAAC,EAAA,OAAAxtB,EAAA,UAAAwtB,EAAA0D,GAAA9D,EAAAC,EAAA/W,EAAAgX,EAAAC,EAAAC,EAAA,QAAA0D,EAAA,CAAA3D,OAAA/qB,EAAA,OAsFKuJ,MAAA,KAAAiB,WAtFL,IAAA6jB,CAsFK,IAEDjoB,EAAAA,EAAiBkqB,qBAAqB1sB,EAAWrG,KAAM+G,EAAKO,sdAAMhF,CAAA,GAC7DyE,EAAKD,QAAQiC,aAAa6oB,IAA8B,CAAExuB,MAAO2D,EAAKD,QAAQhE,WAAW8uB,GAA2B3xB,SACvH8G,CACJ,CAiGC,OA5LHkoB,EA2FG4C,GA3FH3C,EA2FG,EAAAlmB,IAAA,YAAA/I,MAED,WACOiJ,KAAK8pB,QACR9pB,KAAK8pB,OAAQvnB,EAAAA,EAAAA,IAAkBvC,KAAK+pB,eACpC5nB,SAAS6nB,KAAKhoB,YAAYhC,KAAK8pB,OAC/B7iB,EAAAA,EAAUgjB,8BAA8BjqB,KAAK8pB,OAC7C9pB,KAAKkqB,kBAAkBlqB,KAAK8pB,MAAM,aAEpC9pB,KAAK8pB,MAAM,WAAW/gB,MACxB,GAAC,CAAAjJ,IAAA,cAAA/I,MAED,WACE,IAAMF,GAAKszB,EAAAA,EAAAA,KACLC,EAAU,GAAHzyB,OAAMd,EAAE,UACrB,MAAO,GAAPc,QAAU0yB,EAAAA,EAAAA,GAAc,CACtBxzB,GAAIuzB,EACJnzB,KAAM,QACNwW,MAAOqb,EAAAA,EAAUwB,YAvEd,2BAwEHrgB,MAAO,UACPrQ,WAAY,CAAE,yBAA0B,IACxC2wB,YAAavqB,KAAKwqB,eAClBC,cAAezqB,KAAK0qB,iBACpB1yB,aAAc,qBACd2yB,WAAY,WAEhB,GAAC,CAAA7qB,IAAA,eAAA/I,MAED,WACE,MAAO,8CAAPY,OACEmxB,EAAAA,EAAU8B,eAlFR,8CAkF2C,eAEjD,GAAC,CAAA9qB,IAAA,iBAAA/I,MAED,WACE,IAAM8zB,EAAW,GAAHlzB,OAAMmxB,EAAAA,EAAU+B,WAAU,eAAAlzB,OAAcmzB,mBAAmB3oB,SAAS4oB,MAClF,MAAO,0DAAPpzB,QACEmN,EAAAA,EAAAA,GAAY,CACZvN,KAAM,CACJoB,KAAMkyB,EACNpd,MAAO,SAETzW,KAAM8xB,EAAAA,EAAUkC,sBA7FV,QA8FN1xB,QAAS,OACTtB,aAAc,iCACd,kGAAAL,OAE2CmxB,EAAAA,EAAUmC,iBAjGjD,yBAiGwF,eAAAtzB,QAC5FmN,EAAAA,EAAAA,GAAY,CACZvN,KAAM,CACJoB,KAAMkyB,EACNpd,MAAO,SAETnU,QAAS,eACTtC,KAAM8xB,EAAAA,EAAUoC,qBAvGT,oBAwGPlzB,aAAc,kCACd,2BAGJ,GAAC,CAAA8H,IAAA,oBAAA/I,MAED,SAAmBo0B,GAAU,IAAAprB,EAAA,KAC3BorB,EAAS/sB,OAAOC,GAAG,QAAQ,WACzB0B,EAAK3B,OAAOwE,KAAK6mB,EAAAA,GAAe2B,oBAAqB,CAAEv0B,GAAIkJ,EAAKc,QAAQ,UAAW+nB,WAAY7oB,EAAK6oB,YACtG,IACAuC,EAAS/sB,OAAOC,GAAG,SAAS,WAC1B0B,EAAK3B,OAAOwE,KAAK6mB,EAAAA,GAAe4B,qBAAsB,CAAEx0B,GAAIkJ,EAAKc,QAAQ,UAAW+nB,WAAY7oB,EAAK6oB,YACvG,IAE2B5oB,KAAK8pB,MAAMlrB,cAAc,kCACjCwd,iBACjB,SAAS,kBAAMrc,EAAK3B,OAAOwE,KAAK6mB,EAAAA,GAAe6B,gBAAiB,CAAEz0B,GAAIkJ,EAAKc,QAAQ,UAAW+nB,WAAY7oB,EAAK6oB,YAAa,IAEpG5oB,KAAK8pB,MAAMlrB,cAAc,iCACjCwd,iBAChB,SAAS,kBAAMrc,EAAK3B,OAAOwE,KAAK6mB,EAAAA,GAAe8B,eAAgB,CAAE10B,GAAIkJ,EAAKc,QAAQ,UAAW+nB,WAAY7oB,EAAK6oB,YAAa,GAC/H,GAAC,CAAA9oB,IAAA,gBAAA/I,MAED,WACE,IAAMy0B,EAAoBrpB,SAASvD,cAAc,0BAC7C6sB,EAAO,KAgBX,OAfID,IACFC,EAAOD,EAAkB1zB,QACrB,CACEjB,GAAI20B,EAAkB1zB,QAAQ4zB,qBAC9B50B,KAAM00B,EAAkB1zB,QAAQ6zB,uBAChCC,UAAWJ,EAAkB1zB,QAAQ+zB,gCACrCC,OAAQN,EAAkB1zB,QAAQi0B,+BAClCC,OAAQR,EAAkB1zB,QAAQm0B,yBAClCC,OAAQV,EAAkB1zB,QAAQq0B,yBAClCC,SAAUZ,EAAkB1zB,QAAQu0B,2BACpCC,SAAUd,EAAkB1zB,QAAQy0B,6BACpCC,WAAYhB,EAAkB1zB,QAAQ20B,6BAExC,MAEChB,CACT,MA5LF1G,EAAAgB,EAAA7G,UAAA8G,GAAA9tB,OAAAknB,eAAA2G,EAAA,aAAA/F,UAAA,IA4LG2I,CAAA,CA5IgC,CAAS1hB,EAAAA,IA+I5CC,EAAAA,EAAAA,GAAkByhB,EAAgBxrB,EAAWrG,KAAMqG,ogBC/LnD4hB,EAAA,kBAAA1jB,CAAA,MAAA2jB,EAAA3jB,EAAA,GAAA4jB,EAAA/mB,OAAAgnB,UAAAxG,EAAAuG,EAAAE,eAAA/G,EAAAlgB,OAAAknB,gBAAA,SAAAJ,EAAA3jB,EAAA4jB,GAAAD,EAAA3jB,GAAA4jB,EAAAloB,KAAA,EAAAsoB,EAAA,mBAAAC,OAAAA,OAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAC,EAAAb,EAAA3jB,EAAA4jB,GAAA,OAAA/mB,OAAAknB,eAAAJ,EAAA3jB,EAAA,CAAAtE,MAAAkoB,EAAAa,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAhB,EAAA3jB,EAAA,KAAAwkB,EAAA,aAAAb,GAAAa,EAAA,SAAAb,EAAA3jB,EAAA4jB,GAAA,OAAAD,EAAA3jB,GAAA4jB,CAAA,WAAAgB,EAAAjB,EAAA3jB,EAAA4jB,EAAAvG,GAAA,IAAA2G,EAAAhkB,GAAAA,EAAA6jB,qBAAAgB,EAAA7kB,EAAA6kB,EAAAX,EAAArnB,OAAAioB,OAAAd,EAAAH,WAAAO,EAAA,IAAAW,EAAA1H,GAAA,WAAAN,EAAAmH,EAAA,WAAAxoB,MAAAspB,EAAArB,EAAAC,EAAAQ,KAAAF,CAAA,UAAAe,EAAAtB,EAAA3jB,EAAA4jB,GAAA,WAAA5hB,KAAA,SAAAkjB,IAAAvB,EAAAjhB,KAAA1C,EAAA4jB,GAAA,OAAAD,GAAA,OAAA3hB,KAAA,QAAAkjB,IAAAvB,EAAA,EAAA3jB,EAAA4kB,KAAAA,EAAA,IAAAO,EAAA,iBAAAC,EAAA,iBAAAC,EAAA,YAAA3kB,EAAA,YAAA0P,EAAA,YAAAyU,IAAA,UAAAS,IAAA,UAAAC,IAAA,KAAAC,EAAA,GAAAhB,EAAAgB,EAAAtB,GAAA,8BAAA7nB,EAAAQ,OAAA4oB,eAAAC,EAAArpB,GAAAA,EAAAA,EAAAkc,EAAA,MAAAmN,GAAAA,IAAA9B,GAAAvG,EAAA3a,KAAAgjB,EAAAxB,KAAAsB,EAAAE,GAAA,IAAAC,EAAAJ,EAAA1B,UAAAgB,EAAAhB,UAAAhnB,OAAAioB,OAAAU,GAAA,SAAAI,EAAAjC,GAAA,0BAAA9e,SAAA,SAAA7E,GAAAwkB,EAAAb,EAAA3jB,GAAA,SAAA2jB,GAAA,YAAAkC,QAAA7lB,EAAA2jB,EAAA,gBAAAmC,EAAAnC,EAAA3jB,GAAA,SAAA+lB,EAAAnC,EAAA7G,EAAAiH,EAAAE,GAAA,IAAAE,EAAAa,EAAAtB,EAAAC,GAAAD,EAAA5G,GAAA,aAAAqH,EAAApiB,KAAA,KAAAsiB,EAAAF,EAAAc,IAAAC,EAAAb,EAAA5oB,MAAA,OAAAypB,GAAA,UAAAa,EAAAb,IAAA9H,EAAA3a,KAAAyiB,EAAA,WAAAnlB,EAAAgS,QAAAmT,EAAAc,SAAAC,MAAA,SAAAvC,GAAAoC,EAAA,OAAApC,EAAAK,EAAAE,EAAA,aAAAP,GAAAoC,EAAA,QAAApC,EAAAK,EAAAE,EAAA,IAAAlkB,EAAAgS,QAAAmT,GAAAe,MAAA,SAAAvC,GAAAW,EAAA5oB,MAAAioB,EAAAK,EAAAM,EAAA,aAAAX,GAAA,OAAAoC,EAAA,QAAApC,EAAAK,EAAAE,EAAA,IAAAA,EAAAE,EAAAc,IAAA,KAAAtB,EAAA7G,EAAA,gBAAArhB,MAAA,SAAAioB,EAAAtG,GAAA,SAAA8I,IAAA,WAAAnmB,GAAA,SAAAA,EAAA4jB,GAAAmC,EAAApC,EAAAtG,EAAArd,EAAA4jB,EAAA,WAAAA,EAAAA,EAAAA,EAAAsC,KAAAC,EAAAA,GAAAA,GAAA,aAAAnB,EAAAhlB,EAAA4jB,EAAAvG,GAAA,IAAAN,EAAAoI,EAAA,gBAAAnB,EAAAE,GAAA,GAAAnH,IAAAsI,EAAA,UAAAe,MAAA,mCAAArJ,IAAArc,EAAA,cAAAsjB,EAAA,MAAAE,EAAA,OAAAxoB,MAAAioB,EAAA0C,MAAA,OAAAhJ,EAAAve,OAAAklB,EAAA3G,EAAA6H,IAAAhB,IAAA,KAAAE,EAAA/G,EAAAiJ,SAAA,GAAAlC,EAAA,KAAAE,EAAAiC,EAAAnC,EAAA/G,GAAA,GAAAiH,EAAA,IAAAA,IAAAlU,EAAA,gBAAAkU,CAAA,cAAAjH,EAAAve,OAAAue,EAAAmJ,KAAAnJ,EAAAoJ,MAAApJ,EAAA6H,SAAA,aAAA7H,EAAAve,OAAA,IAAAie,IAAAoI,EAAA,MAAApI,EAAArc,EAAA2c,EAAA6H,IAAA7H,EAAAqJ,kBAAArJ,EAAA6H,IAAA,gBAAA7H,EAAAve,QAAAue,EAAAsJ,OAAA,SAAAtJ,EAAA6H,KAAAnI,EAAAsI,EAAA,IAAAG,EAAAP,EAAAjlB,EAAA4jB,EAAAvG,GAAA,cAAAmI,EAAAxjB,KAAA,IAAA+a,EAAAM,EAAAgJ,KAAA3lB,EAAA0kB,EAAAI,EAAAN,MAAA9U,EAAA,gBAAA1U,MAAA8pB,EAAAN,IAAAmB,KAAAhJ,EAAAgJ,KAAA,WAAAb,EAAAxjB,OAAA+a,EAAArc,EAAA2c,EAAAve,OAAA,QAAAue,EAAA6H,IAAAM,EAAAN,IAAA,YAAAqB,EAAAvmB,EAAA4jB,GAAA,IAAAvG,EAAAuG,EAAA9kB,OAAAie,EAAA/c,EAAAmkB,SAAA9G,GAAA,GAAAN,IAAA4G,EAAA,OAAAC,EAAA0C,SAAA,eAAAjJ,GAAArd,EAAAmkB,SAAAyC,SAAAhD,EAAA9kB,OAAA,SAAA8kB,EAAAsB,IAAAvB,EAAA4C,EAAAvmB,EAAA4jB,GAAA,UAAAA,EAAA9kB,SAAA,WAAAue,IAAAuG,EAAA9kB,OAAA,QAAA8kB,EAAAsB,IAAA,IAAA2B,UAAA,oCAAAxJ,EAAA,aAAAjN,EAAA,IAAA4T,EAAAiB,EAAAlI,EAAA/c,EAAAmkB,SAAAP,EAAAsB,KAAA,aAAAlB,EAAAhiB,KAAA,OAAA4hB,EAAA9kB,OAAA,QAAA8kB,EAAAsB,IAAAlB,EAAAkB,IAAAtB,EAAA0C,SAAA,KAAAlW,EAAA,IAAA8T,EAAAF,EAAAkB,IAAA,OAAAhB,EAAAA,EAAAmC,MAAAzC,EAAA5jB,EAAA8mB,YAAA5C,EAAAxoB,MAAAkoB,EAAAmD,KAAA/mB,EAAAgnB,QAAA,WAAApD,EAAA9kB,SAAA8kB,EAAA9kB,OAAA,OAAA8kB,EAAAsB,IAAAvB,GAAAC,EAAA0C,SAAA,KAAAlW,GAAA8T,GAAAN,EAAA9kB,OAAA,QAAA8kB,EAAAsB,IAAA,IAAA2B,UAAA,oCAAAjD,EAAA0C,SAAA,KAAAlW,EAAA,UAAA6W,EAAAtD,GAAA,IAAA3jB,EAAA,CAAAknB,OAAAvD,EAAA,SAAAA,IAAA3jB,EAAAmnB,SAAAxD,EAAA,SAAAA,IAAA3jB,EAAAonB,WAAAzD,EAAA,GAAA3jB,EAAAqnB,SAAA1D,EAAA,SAAA2D,WAAAxiB,KAAA9E,EAAA,UAAAunB,EAAA5D,GAAA,IAAA3jB,EAAA2jB,EAAA6D,YAAA,GAAAxnB,EAAAgC,KAAA,gBAAAhC,EAAAklB,IAAAvB,EAAA6D,WAAAxnB,CAAA,UAAA+kB,EAAApB,GAAA,KAAA2D,WAAA,EAAAJ,OAAA,SAAAvD,EAAA9e,QAAAoiB,EAAA,WAAAQ,OAAA,YAAAlP,EAAAvY,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA4jB,EAAA5jB,EAAAkkB,GAAA,GAAAN,EAAA,OAAAA,EAAAlhB,KAAA1C,GAAA,sBAAAA,EAAA+mB,KAAA,OAAA/mB,EAAA,IAAA8X,MAAA9X,EAAAqH,QAAA,KAAA0V,GAAA,EAAAiH,EAAA,SAAA+C,IAAA,OAAAhK,EAAA/c,EAAAqH,QAAA,GAAAgW,EAAA3a,KAAA1C,EAAA+c,GAAA,OAAAgK,EAAArrB,MAAAsE,EAAA+c,GAAAgK,EAAAV,MAAA,EAAAU,EAAA,OAAAA,EAAArrB,MAAAioB,EAAAoD,EAAAV,MAAA,EAAAU,CAAA,SAAA/C,EAAA+C,KAAA/C,CAAA,YAAA6C,UAAAb,EAAAhmB,GAAA,2BAAAslB,EAAAzB,UAAA0B,EAAAxI,EAAA4I,EAAA,eAAAjqB,MAAA6pB,EAAAb,cAAA,IAAA3H,EAAAwI,EAAA,eAAA7pB,MAAA4pB,EAAAZ,cAAA,IAAAY,EAAAoC,YAAAlD,EAAAe,EAAAjB,EAAA,qBAAAtkB,EAAA2nB,oBAAA,SAAAhE,GAAA,IAAA3jB,EAAA,mBAAA2jB,GAAAA,EAAAiE,YAAA,QAAA5nB,IAAAA,IAAAslB,GAAA,uBAAAtlB,EAAA0nB,aAAA1nB,EAAAvE,MAAA,EAAAuE,EAAA6nB,KAAA,SAAAlE,GAAA,OAAA9mB,OAAAirB,eAAAjrB,OAAAirB,eAAAnE,EAAA4B,IAAA5B,EAAAoE,UAAAxC,EAAAf,EAAAb,EAAAW,EAAA,sBAAAX,EAAAE,UAAAhnB,OAAAioB,OAAAa,GAAAhC,CAAA,EAAA3jB,EAAAgoB,MAAA,SAAArE,GAAA,OAAAsC,QAAAtC,EAAA,EAAAiC,EAAAE,EAAAjC,WAAAW,EAAAsB,EAAAjC,UAAAO,GAAA,0BAAApkB,EAAA8lB,cAAAA,EAAA9lB,EAAAioB,MAAA,SAAAtE,EAAAC,EAAAvG,EAAAN,EAAAiH,QAAA,IAAAA,IAAAA,EAAAkE,SAAA,IAAAhE,EAAA,IAAA4B,EAAAlB,EAAAjB,EAAAC,EAAAvG,EAAAN,GAAAiH,GAAA,OAAAhkB,EAAA2nB,oBAAA/D,GAAAM,EAAAA,EAAA6C,OAAAb,MAAA,SAAAvC,GAAA,OAAAA,EAAA0C,KAAA1C,EAAAjoB,MAAAwoB,EAAA6C,MAAA,KAAAnB,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAAzB,GAAA,0BAAAM,EAAAmB,EAAA,qDAAA3lB,EAAAlD,KAAA,SAAA6mB,GAAA,IAAA3jB,EAAAnD,OAAA8mB,GAAAC,EAAA,WAAAvG,KAAArd,EAAA4jB,EAAA9e,KAAAuY,GAAA,OAAAuG,EAAAhI,UAAA,SAAAmL,IAAA,KAAAnD,EAAAvc,QAAA,KAAAsc,EAAAC,EAAAuE,MAAA,GAAAxE,KAAA3jB,EAAA,OAAA+mB,EAAArrB,MAAAioB,EAAAoD,EAAAV,MAAA,EAAAU,CAAA,QAAAA,EAAAV,MAAA,EAAAU,CAAA,GAAA/mB,EAAAuY,OAAAA,EAAAwM,EAAAlB,UAAA,CAAA+D,YAAA7C,EAAA0C,MAAA,SAAAznB,GAAA,QAAAooB,KAAA,OAAArB,KAAA,OAAAP,KAAA,KAAAC,MAAA9C,EAAA,KAAA0C,MAAA,OAAAC,SAAA,UAAAxnB,OAAA,YAAAomB,IAAAvB,EAAA,KAAA2D,WAAAziB,QAAA0iB,IAAAvnB,EAAA,QAAA4jB,KAAA,WAAAA,EAAAyE,OAAA,IAAAhL,EAAA3a,KAAA,KAAAkhB,KAAA9L,OAAA8L,EAAA0E,MAAA,WAAA1E,GAAAD,EAAA,EAAA4E,KAAA,gBAAAlC,MAAA,MAAA1C,EAAA,KAAA2D,WAAA,GAAAE,WAAA,aAAA7D,EAAA3hB,KAAA,MAAA2hB,EAAAuB,IAAA,YAAAsD,IAAA,EAAA9B,kBAAA,SAAA1mB,GAAA,QAAAqmB,KAAA,MAAArmB,EAAA,IAAA4jB,EAAA,cAAA6E,EAAApL,EAAAN,GAAA,OAAAmH,EAAAliB,KAAA,QAAAkiB,EAAAgB,IAAAllB,EAAA4jB,EAAAmD,KAAA1J,EAAAN,IAAA6G,EAAA9kB,OAAA,OAAA8kB,EAAAsB,IAAAvB,KAAA5G,CAAA,SAAAA,EAAA,KAAAuK,WAAAjgB,OAAA,EAAA0V,GAAA,IAAAA,EAAA,KAAAiH,EAAA,KAAAsD,WAAAvK,GAAAmH,EAAAF,EAAAwD,WAAA,YAAAxD,EAAAkD,OAAA,OAAAuB,EAAA,UAAAzE,EAAAkD,QAAA,KAAAkB,KAAA,KAAAhE,EAAA/G,EAAA3a,KAAAshB,EAAA,YAAAM,EAAAjH,EAAA3a,KAAAshB,EAAA,iBAAAI,GAAAE,EAAA,SAAA8D,KAAApE,EAAAmD,SAAA,OAAAsB,EAAAzE,EAAAmD,UAAA,WAAAiB,KAAApE,EAAAoD,WAAA,OAAAqB,EAAAzE,EAAAoD,WAAA,SAAAhD,GAAA,QAAAgE,KAAApE,EAAAmD,SAAA,OAAAsB,EAAAzE,EAAAmD,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAgC,KAAApE,EAAAoD,WAAA,OAAAqB,EAAAzE,EAAAoD,WAAA,KAAAT,OAAA,SAAAhD,EAAA3jB,GAAA,QAAA4jB,EAAA,KAAA0D,WAAAjgB,OAAA,EAAAuc,GAAA,IAAAA,EAAA,KAAA7G,EAAA,KAAAuK,WAAA1D,GAAA,GAAA7G,EAAAmK,QAAA,KAAAkB,MAAA/K,EAAA3a,KAAAqa,EAAA,oBAAAqL,KAAArL,EAAAqK,WAAA,KAAApD,EAAAjH,EAAA,OAAAiH,IAAA,UAAAL,GAAA,aAAAA,IAAAK,EAAAkD,QAAAlnB,GAAAA,GAAAgkB,EAAAoD,aAAApD,EAAA,UAAAE,EAAAF,EAAAA,EAAAwD,WAAA,UAAAtD,EAAAliB,KAAA2hB,EAAAO,EAAAgB,IAAAllB,EAAAgkB,GAAA,KAAAllB,OAAA,YAAAioB,KAAA/C,EAAAoD,WAAAhX,GAAA,KAAAsY,SAAAxE,EAAA,EAAAwE,SAAA,SAAA/E,EAAA3jB,GAAA,aAAA2jB,EAAA3hB,KAAA,MAAA2hB,EAAAuB,IAAA,gBAAAvB,EAAA3hB,MAAA,aAAA2hB,EAAA3hB,KAAA,KAAA+kB,KAAApD,EAAAuB,IAAA,WAAAvB,EAAA3hB,MAAA,KAAAwmB,KAAA,KAAAtD,IAAAvB,EAAAuB,IAAA,KAAApmB,OAAA,cAAAioB,KAAA,kBAAApD,EAAA3hB,MAAAhC,IAAA,KAAA+mB,KAAA/mB,GAAAoQ,CAAA,EAAAuY,OAAA,SAAAhF,GAAA,QAAA3jB,EAAA,KAAAsnB,WAAAjgB,OAAA,EAAArH,GAAA,IAAAA,EAAA,KAAA4jB,EAAA,KAAA0D,WAAAtnB,GAAA,GAAA4jB,EAAAwD,aAAAzD,EAAA,YAAA+E,SAAA9E,EAAA4D,WAAA5D,EAAAyD,UAAAE,EAAA3D,GAAAxT,CAAA,GAAAwY,MAAA,SAAAjF,GAAA,QAAA3jB,EAAA,KAAAsnB,WAAAjgB,OAAA,EAAArH,GAAA,IAAAA,EAAA,KAAA4jB,EAAA,KAAA0D,WAAAtnB,GAAA,GAAA4jB,EAAAsD,SAAAvD,EAAA,KAAAtG,EAAAuG,EAAA4D,WAAA,aAAAnK,EAAArb,KAAA,KAAA+a,EAAAM,EAAA6H,IAAAqC,EAAA3D,EAAA,QAAA7G,CAAA,YAAAqJ,MAAA,0BAAAyC,cAAA,SAAA7oB,EAAA4jB,EAAAvG,GAAA,YAAAiJ,SAAA,CAAAnC,SAAA5L,EAAAvY,GAAA8mB,WAAAlD,EAAAoD,QAAA3J,GAAA,cAAAve,SAAA,KAAAomB,IAAAvB,GAAAvT,CAAA,GAAApQ,CAAA,UAAA8oB,EAAAC,EAAA/W,EAAAgX,EAAAC,EAAAC,EAAAzkB,EAAAygB,GAAA,QAAAiE,EAAAJ,EAAAtkB,GAAAygB,GAAAxpB,EAAAytB,EAAAztB,KAAA,OAAAmC,GAAA,YAAAmrB,EAAAnrB,EAAA,CAAAsrB,EAAA9C,KAAArU,EAAAtW,GAAAwsB,QAAAlW,QAAAtW,GAAAwqB,KAAA+C,EAAAC,EAAA,UAAAmI,EAAA9E,GAAA,sBAAApC,EAAA,KAAAwC,EAAAjkB,UAAA,WAAAwf,SAAA,SAAAlW,EAAAgX,GAAA,IAAAD,EAAAwD,EAAA9kB,MAAA0iB,EAAAwC,GAAA,SAAA1D,EAAAvtB,GAAAotB,EAAAC,EAAA/W,EAAAgX,EAAAC,EAAAC,EAAA,OAAAxtB,EAAA,UAAAwtB,EAAA0D,GAAA9D,EAAAC,EAAA/W,EAAAgX,EAAAC,EAAAC,EAAA,QAAA0D,EAAA,CAAA3D,OAAA/qB,EAAA,cAAAgsB,EAAAnN,EAAAyI,GAAA,OAAA0E,EAAArtB,OAAAirB,eAAAjrB,OAAAirB,eAAAjkB,OAAA,SAAAkZ,EAAAyI,GAAA,OAAAzI,EAAAgL,UAAAvC,EAAAzI,CAAA,EAAAmN,EAAAnN,EAAAyI,EAAA,UAAA6E,EAAAtN,GAAA,OAAAsN,EAAAxtB,OAAAirB,eAAAjrB,OAAA4oB,eAAA5hB,OAAA,SAAAkZ,GAAA,OAAAA,EAAAgL,WAAAlrB,OAAA4oB,eAAA1I,EAAA,EAAAsN,EAAAtN,EAAA,CAGA,IAAMjb,EAAa,CACjBrG,KAAM,sBAOa61B,EAAe,SAAAlvB,IAXpC,SAAAooB,EAAAC,GAAA,sBAAAA,GAAA,OAAAA,EAAA,UAAA5D,UAAA,sDAAA2D,EAAA3G,UAAAhnB,OAAAioB,OAAA2F,GAAAA,EAAA5G,UAAA,CAAA+D,YAAA,CAAAlsB,MAAA8uB,EAAA7F,UAAA,EAAAD,cAAA,KAAA7nB,OAAAknB,eAAAyG,EAAA,aAAA7F,UAAA,IAAA8F,GAAAP,EAAAM,EAAAC,EAAA,CAWoCpoB,CAAAivB,EAAAlvB,GAAA,IAXpCsoB,EAAAE,EAAAC,EAWoCvoB,GAXpCsoB,EAWoC0G,EAXpCzG,EAAA,kCAAAC,UAAAA,QAAAC,UAAA,YAAAD,QAAAC,UAAAC,KAAA,+BAAAC,MAAA,oBAAAC,QAAArH,UAAAsH,QAAAzoB,KAAAooB,QAAAC,UAAAG,QAAA,6BAAAlrB,GAAA,UAAAorB,GAAA,eAAAC,EAAAC,EAAAjB,EAAAO,GAAA,GAAAC,EAAA,KAAAU,EAAAlB,EAAA,MAAAzC,YAAAyD,EAAAP,QAAAC,UAAAO,EAAA5iB,UAAA6iB,EAAA,MAAAF,EAAAC,EAAA7jB,MAAA,KAAAiB,WAAA,gBAAAyhB,EAAAznB,GAAA,GAAAA,IAAA,WAAAsjB,EAAAtjB,IAAA,mBAAAA,GAAA,OAAAA,EAAA,YAAAA,EAAA,UAAAmkB,UAAA,4EAAAsD,GAAA,YAAAA,EAAA,UAAAC,eAAA,oEAAAD,CAAA,CAAArmB,CAAAqmB,EAAA,CAAAqB,CAAA,KAAAH,EAAA,GAkBE,SAAAiG,EAAa/uB,GAAS,IAAAC,GAlBxB,SAAAipB,EAAAf,GAAA,KAAAe,aAAAf,GAAA,UAAA7D,UAAA,qCAkBwBpkB,CAAA,KAAA6uB,GACpB9uB,EAAAF,EAAAI,KAAA,KAAMH,EAAST,EAAWrG,MAG1B,IAAM81B,EAAMhvB,EAAQgB,cAAc,uBAC5BiuB,EAAS1qB,SAASvD,cAAc,cAChCkuB,EAAiB3qB,SAASvD,cAAc,uBAM5C,OALFguB,GAAOA,EAAIxQ,iBAAiB,QAAOsQ,EAAA3N,IAAAmE,MAAE,SAAA2E,IAAA,OAAA9I,IAAAkB,MAAA,SAAA8H,GAAA,cAAAA,EAAAtE,KAAAsE,EAAA3F,MAAA,cAAA2F,EAAA3F,KAAA,EAC7B0G,EAAAA,EAAUhG,MAAM,IAAG,OACzB8J,EAAIlrB,UAAUC,IAAI,YAClBkrB,GAAUA,EAAOnrB,UAAUC,IAAI,YAC/BmrB,GAAkBA,EAAeprB,UAAUE,OAAO,YAAW,wBAAAmmB,EAAAnE,OAAA,GAAAiE,EAAA,MAC7DhqB,CACJ,CAAC,OA/BHkoB,EA+BG4G,EA/BHz0B,OAAAknB,eAAA2G,EAAA,aAAA/F,UAAA,IAAA+F,CA+BG,CApBiC,CAAS9e,EAAAA,IAuB7CC,EAAAA,EAAAA,GAAkBylB,EAAiBxvB,EAAWrG,KAAMqG,6rBC9BpD,IAAMA,EAAa,CACjBrG,KAAM,uBACNsG,MAAO,CACL,CACEtG,KAAM,QACNuG,KAAM,SACNH,KAAM,sCASS6vB,EAAiB,SAAAtvB,yRAAAC,CAAAqvB,EAAAtvB,GAAA,UAAAE,KAAAovB,urBAOpC,SAAAA,EAAanvB,GAAS,IAAAC,EAiBlB,mGAjBkBC,CAAA,KAAAivB,IACpBlvB,EAAAF,EAAAI,KAAA,KAAMH,EAAST,EAAWrG,OAGrByH,QAAQ,QAASuqB,EAAAA,EAAUkE,cAAe,CAAEvuB,QAAQ,IACzDqqB,EAAAA,EAAU1qB,OAAOC,GAAG,QAAQ,WAC1BR,EAAKU,QAAQ,QAASuqB,EAAAA,EAAUkE,cAAe,CAAEvuB,QAAQ,GAC3D,IAGAqqB,EAAAA,EAAU1qB,OAAOC,GAAG,UAAU,WAC5B,IAAM4uB,EAAWnE,EAAAA,EAAUkE,cACvBC,IAAapvB,EAAKT,MAAMvE,QAC5BgF,EAAKD,QAAQ8D,UAAUE,OAAO,kBAAmB,oBACjDmJ,EAAAA,EAAAA,IAAalN,EAAKD,SAClBC,EAAKD,QAAQ8D,UAAUC,IAAIsrB,EAAWpvB,EAAKT,MAAMvE,MAAQ,kBAAoB,mBAC7EgF,EAAKU,QAAQ,QAASuqB,EAAAA,EAAUkE,eAClC,IAAEnvB,CACJ,CAAC,SAAAkvB,sDAAA,CAzBmC,CAAS9lB,EAAAA,IA4B/CC,EAAAA,EAAAA,GAAkB6lB,EAAmB5vB,EAAWrG,KAAMqG,giBC/CtD4hB,EAAA,kBAAA1jB,CAAA,MAAA2jB,EAAA3jB,EAAA,GAAA4jB,EAAA/mB,OAAAgnB,UAAAxG,EAAAuG,EAAAE,eAAA/G,EAAAlgB,OAAAknB,gBAAA,SAAAJ,EAAA3jB,EAAA4jB,GAAAD,EAAA3jB,GAAA4jB,EAAAloB,KAAA,EAAAsoB,EAAA,mBAAAC,OAAAA,OAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAC,EAAAb,EAAA3jB,EAAA4jB,GAAA,OAAA/mB,OAAAknB,eAAAJ,EAAA3jB,EAAA,CAAAtE,MAAAkoB,EAAAa,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAhB,EAAA3jB,EAAA,KAAAwkB,EAAA,aAAAb,GAAAa,EAAA,SAAAb,EAAA3jB,EAAA4jB,GAAA,OAAAD,EAAA3jB,GAAA4jB,CAAA,WAAAgB,EAAAjB,EAAA3jB,EAAA4jB,EAAAvG,GAAA,IAAA2G,EAAAhkB,GAAAA,EAAA6jB,qBAAAgB,EAAA7kB,EAAA6kB,EAAAX,EAAArnB,OAAAioB,OAAAd,EAAAH,WAAAO,EAAA,IAAAW,EAAA1H,GAAA,WAAAN,EAAAmH,EAAA,WAAAxoB,MAAAspB,EAAArB,EAAAC,EAAAQ,KAAAF,CAAA,UAAAe,EAAAtB,EAAA3jB,EAAA4jB,GAAA,WAAA5hB,KAAA,SAAAkjB,IAAAvB,EAAAjhB,KAAA1C,EAAA4jB,GAAA,OAAAD,GAAA,OAAA3hB,KAAA,QAAAkjB,IAAAvB,EAAA,EAAA3jB,EAAA4kB,KAAAA,EAAA,IAAAO,EAAA,iBAAAC,EAAA,iBAAAC,EAAA,YAAA3kB,EAAA,YAAA0P,EAAA,YAAAyU,IAAA,UAAAS,IAAA,UAAAC,IAAA,KAAAC,EAAA,GAAAhB,EAAAgB,EAAAtB,GAAA,8BAAA7nB,EAAAQ,OAAA4oB,eAAAC,EAAArpB,GAAAA,EAAAA,EAAAkc,EAAA,MAAAmN,GAAAA,IAAA9B,GAAAvG,EAAA3a,KAAAgjB,EAAAxB,KAAAsB,EAAAE,GAAA,IAAAC,EAAAJ,EAAA1B,UAAAgB,EAAAhB,UAAAhnB,OAAAioB,OAAAU,GAAA,SAAAI,EAAAjC,GAAA,0BAAA9e,SAAA,SAAA7E,GAAAwkB,EAAAb,EAAA3jB,GAAA,SAAA2jB,GAAA,YAAAkC,QAAA7lB,EAAA2jB,EAAA,gBAAAmC,EAAAnC,EAAA3jB,GAAA,SAAA+lB,EAAAnC,EAAA7G,EAAAiH,EAAAE,GAAA,IAAAE,EAAAa,EAAAtB,EAAAC,GAAAD,EAAA5G,GAAA,aAAAqH,EAAApiB,KAAA,KAAAsiB,EAAAF,EAAAc,IAAAC,EAAAb,EAAA5oB,MAAA,OAAAypB,GAAA,UAAAa,EAAAb,IAAA9H,EAAA3a,KAAAyiB,EAAA,WAAAnlB,EAAAgS,QAAAmT,EAAAc,SAAAC,MAAA,SAAAvC,GAAAoC,EAAA,OAAApC,EAAAK,EAAAE,EAAA,aAAAP,GAAAoC,EAAA,QAAApC,EAAAK,EAAAE,EAAA,IAAAlkB,EAAAgS,QAAAmT,GAAAe,MAAA,SAAAvC,GAAAW,EAAA5oB,MAAAioB,EAAAK,EAAAM,EAAA,aAAAX,GAAA,OAAAoC,EAAA,QAAApC,EAAAK,EAAAE,EAAA,IAAAA,EAAAE,EAAAc,IAAA,KAAAtB,EAAA7G,EAAA,gBAAArhB,MAAA,SAAAioB,EAAAtG,GAAA,SAAA8I,IAAA,WAAAnmB,GAAA,SAAAA,EAAA4jB,GAAAmC,EAAApC,EAAAtG,EAAArd,EAAA4jB,EAAA,WAAAA,EAAAA,EAAAA,EAAAsC,KAAAC,EAAAA,GAAAA,GAAA,aAAAnB,EAAAhlB,EAAA4jB,EAAAvG,GAAA,IAAAN,EAAAoI,EAAA,gBAAAnB,EAAAE,GAAA,GAAAnH,IAAAsI,EAAA,UAAAe,MAAA,mCAAArJ,IAAArc,EAAA,cAAAsjB,EAAA,MAAAE,EAAA,OAAAxoB,MAAAioB,EAAA0C,MAAA,OAAAhJ,EAAAve,OAAAklB,EAAA3G,EAAA6H,IAAAhB,IAAA,KAAAE,EAAA/G,EAAAiJ,SAAA,GAAAlC,EAAA,KAAAE,EAAAiC,EAAAnC,EAAA/G,GAAA,GAAAiH,EAAA,IAAAA,IAAAlU,EAAA,gBAAAkU,CAAA,cAAAjH,EAAAve,OAAAue,EAAAmJ,KAAAnJ,EAAAoJ,MAAApJ,EAAA6H,SAAA,aAAA7H,EAAAve,OAAA,IAAAie,IAAAoI,EAAA,MAAApI,EAAArc,EAAA2c,EAAA6H,IAAA7H,EAAAqJ,kBAAArJ,EAAA6H,IAAA,gBAAA7H,EAAAve,QAAAue,EAAAsJ,OAAA,SAAAtJ,EAAA6H,KAAAnI,EAAAsI,EAAA,IAAAG,EAAAP,EAAAjlB,EAAA4jB,EAAAvG,GAAA,cAAAmI,EAAAxjB,KAAA,IAAA+a,EAAAM,EAAAgJ,KAAA3lB,EAAA0kB,EAAAI,EAAAN,MAAA9U,EAAA,gBAAA1U,MAAA8pB,EAAAN,IAAAmB,KAAAhJ,EAAAgJ,KAAA,WAAAb,EAAAxjB,OAAA+a,EAAArc,EAAA2c,EAAAve,OAAA,QAAAue,EAAA6H,IAAAM,EAAAN,IAAA,YAAAqB,EAAAvmB,EAAA4jB,GAAA,IAAAvG,EAAAuG,EAAA9kB,OAAAie,EAAA/c,EAAAmkB,SAAA9G,GAAA,GAAAN,IAAA4G,EAAA,OAAAC,EAAA0C,SAAA,eAAAjJ,GAAArd,EAAAmkB,SAAAyC,SAAAhD,EAAA9kB,OAAA,SAAA8kB,EAAAsB,IAAAvB,EAAA4C,EAAAvmB,EAAA4jB,GAAA,UAAAA,EAAA9kB,SAAA,WAAAue,IAAAuG,EAAA9kB,OAAA,QAAA8kB,EAAAsB,IAAA,IAAA2B,UAAA,oCAAAxJ,EAAA,aAAAjN,EAAA,IAAA4T,EAAAiB,EAAAlI,EAAA/c,EAAAmkB,SAAAP,EAAAsB,KAAA,aAAAlB,EAAAhiB,KAAA,OAAA4hB,EAAA9kB,OAAA,QAAA8kB,EAAAsB,IAAAlB,EAAAkB,IAAAtB,EAAA0C,SAAA,KAAAlW,EAAA,IAAA8T,EAAAF,EAAAkB,IAAA,OAAAhB,EAAAA,EAAAmC,MAAAzC,EAAA5jB,EAAA8mB,YAAA5C,EAAAxoB,MAAAkoB,EAAAmD,KAAA/mB,EAAAgnB,QAAA,WAAApD,EAAA9kB,SAAA8kB,EAAA9kB,OAAA,OAAA8kB,EAAAsB,IAAAvB,GAAAC,EAAA0C,SAAA,KAAAlW,GAAA8T,GAAAN,EAAA9kB,OAAA,QAAA8kB,EAAAsB,IAAA,IAAA2B,UAAA,oCAAAjD,EAAA0C,SAAA,KAAAlW,EAAA,UAAA6W,EAAAtD,GAAA,IAAA3jB,EAAA,CAAAknB,OAAAvD,EAAA,SAAAA,IAAA3jB,EAAAmnB,SAAAxD,EAAA,SAAAA,IAAA3jB,EAAAonB,WAAAzD,EAAA,GAAA3jB,EAAAqnB,SAAA1D,EAAA,SAAA2D,WAAAxiB,KAAA9E,EAAA,UAAAunB,EAAA5D,GAAA,IAAA3jB,EAAA2jB,EAAA6D,YAAA,GAAAxnB,EAAAgC,KAAA,gBAAAhC,EAAAklB,IAAAvB,EAAA6D,WAAAxnB,CAAA,UAAA+kB,EAAApB,GAAA,KAAA2D,WAAA,EAAAJ,OAAA,SAAAvD,EAAA9e,QAAAoiB,EAAA,WAAAQ,OAAA,YAAAlP,EAAAvY,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA4jB,EAAA5jB,EAAAkkB,GAAA,GAAAN,EAAA,OAAAA,EAAAlhB,KAAA1C,GAAA,sBAAAA,EAAA+mB,KAAA,OAAA/mB,EAAA,IAAA8X,MAAA9X,EAAAqH,QAAA,KAAA0V,GAAA,EAAAiH,EAAA,SAAA+C,IAAA,OAAAhK,EAAA/c,EAAAqH,QAAA,GAAAgW,EAAA3a,KAAA1C,EAAA+c,GAAA,OAAAgK,EAAArrB,MAAAsE,EAAA+c,GAAAgK,EAAAV,MAAA,EAAAU,EAAA,OAAAA,EAAArrB,MAAAioB,EAAAoD,EAAAV,MAAA,EAAAU,CAAA,SAAA/C,EAAA+C,KAAA/C,CAAA,YAAA6C,UAAAb,EAAAhmB,GAAA,2BAAAslB,EAAAzB,UAAA0B,EAAAxI,EAAA4I,EAAA,eAAAjqB,MAAA6pB,EAAAb,cAAA,IAAA3H,EAAAwI,EAAA,eAAA7pB,MAAA4pB,EAAAZ,cAAA,IAAAY,EAAAoC,YAAAlD,EAAAe,EAAAjB,EAAA,qBAAAtkB,EAAA2nB,oBAAA,SAAAhE,GAAA,IAAA3jB,EAAA,mBAAA2jB,GAAAA,EAAAiE,YAAA,QAAA5nB,IAAAA,IAAAslB,GAAA,uBAAAtlB,EAAA0nB,aAAA1nB,EAAAvE,MAAA,EAAAuE,EAAA6nB,KAAA,SAAAlE,GAAA,OAAA9mB,OAAAirB,eAAAjrB,OAAAirB,eAAAnE,EAAA4B,IAAA5B,EAAAoE,UAAAxC,EAAAf,EAAAb,EAAAW,EAAA,sBAAAX,EAAAE,UAAAhnB,OAAAioB,OAAAa,GAAAhC,CAAA,EAAA3jB,EAAAgoB,MAAA,SAAArE,GAAA,OAAAsC,QAAAtC,EAAA,EAAAiC,EAAAE,EAAAjC,WAAAW,EAAAsB,EAAAjC,UAAAO,GAAA,0BAAApkB,EAAA8lB,cAAAA,EAAA9lB,EAAAioB,MAAA,SAAAtE,EAAAC,EAAAvG,EAAAN,EAAAiH,QAAA,IAAAA,IAAAA,EAAAkE,SAAA,IAAAhE,EAAA,IAAA4B,EAAAlB,EAAAjB,EAAAC,EAAAvG,EAAAN,GAAAiH,GAAA,OAAAhkB,EAAA2nB,oBAAA/D,GAAAM,EAAAA,EAAA6C,OAAAb,MAAA,SAAAvC,GAAA,OAAAA,EAAA0C,KAAA1C,EAAAjoB,MAAAwoB,EAAA6C,MAAA,KAAAnB,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAAzB,GAAA,0BAAAM,EAAAmB,EAAA,qDAAA3lB,EAAAlD,KAAA,SAAA6mB,GAAA,IAAA3jB,EAAAnD,OAAA8mB,GAAAC,EAAA,WAAAvG,KAAArd,EAAA4jB,EAAA9e,KAAAuY,GAAA,OAAAuG,EAAAhI,UAAA,SAAAmL,IAAA,KAAAnD,EAAAvc,QAAA,KAAAsc,EAAAC,EAAAuE,MAAA,GAAAxE,KAAA3jB,EAAA,OAAA+mB,EAAArrB,MAAAioB,EAAAoD,EAAAV,MAAA,EAAAU,CAAA,QAAAA,EAAAV,MAAA,EAAAU,CAAA,GAAA/mB,EAAAuY,OAAAA,EAAAwM,EAAAlB,UAAA,CAAA+D,YAAA7C,EAAA0C,MAAA,SAAAznB,GAAA,QAAAooB,KAAA,OAAArB,KAAA,OAAAP,KAAA,KAAAC,MAAA9C,EAAA,KAAA0C,MAAA,OAAAC,SAAA,UAAAxnB,OAAA,YAAAomB,IAAAvB,EAAA,KAAA2D,WAAAziB,QAAA0iB,IAAAvnB,EAAA,QAAA4jB,KAAA,WAAAA,EAAAyE,OAAA,IAAAhL,EAAA3a,KAAA,KAAAkhB,KAAA9L,OAAA8L,EAAA0E,MAAA,WAAA1E,GAAAD,EAAA,EAAA4E,KAAA,gBAAAlC,MAAA,MAAA1C,EAAA,KAAA2D,WAAA,GAAAE,WAAA,aAAA7D,EAAA3hB,KAAA,MAAA2hB,EAAAuB,IAAA,YAAAsD,IAAA,EAAA9B,kBAAA,SAAA1mB,GAAA,QAAAqmB,KAAA,MAAArmB,EAAA,IAAA4jB,EAAA,cAAA6E,EAAApL,EAAAN,GAAA,OAAAmH,EAAAliB,KAAA,QAAAkiB,EAAAgB,IAAAllB,EAAA4jB,EAAAmD,KAAA1J,EAAAN,IAAA6G,EAAA9kB,OAAA,OAAA8kB,EAAAsB,IAAAvB,KAAA5G,CAAA,SAAAA,EAAA,KAAAuK,WAAAjgB,OAAA,EAAA0V,GAAA,IAAAA,EAAA,KAAAiH,EAAA,KAAAsD,WAAAvK,GAAAmH,EAAAF,EAAAwD,WAAA,YAAAxD,EAAAkD,OAAA,OAAAuB,EAAA,UAAAzE,EAAAkD,QAAA,KAAAkB,KAAA,KAAAhE,EAAA/G,EAAA3a,KAAAshB,EAAA,YAAAM,EAAAjH,EAAA3a,KAAAshB,EAAA,iBAAAI,GAAAE,EAAA,SAAA8D,KAAApE,EAAAmD,SAAA,OAAAsB,EAAAzE,EAAAmD,UAAA,WAAAiB,KAAApE,EAAAoD,WAAA,OAAAqB,EAAAzE,EAAAoD,WAAA,SAAAhD,GAAA,QAAAgE,KAAApE,EAAAmD,SAAA,OAAAsB,EAAAzE,EAAAmD,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAgC,KAAApE,EAAAoD,WAAA,OAAAqB,EAAAzE,EAAAoD,WAAA,KAAAT,OAAA,SAAAhD,EAAA3jB,GAAA,QAAA4jB,EAAA,KAAA0D,WAAAjgB,OAAA,EAAAuc,GAAA,IAAAA,EAAA,KAAA7G,EAAA,KAAAuK,WAAA1D,GAAA,GAAA7G,EAAAmK,QAAA,KAAAkB,MAAA/K,EAAA3a,KAAAqa,EAAA,oBAAAqL,KAAArL,EAAAqK,WAAA,KAAApD,EAAAjH,EAAA,OAAAiH,IAAA,UAAAL,GAAA,aAAAA,IAAAK,EAAAkD,QAAAlnB,GAAAA,GAAAgkB,EAAAoD,aAAApD,EAAA,UAAAE,EAAAF,EAAAA,EAAAwD,WAAA,UAAAtD,EAAAliB,KAAA2hB,EAAAO,EAAAgB,IAAAllB,EAAAgkB,GAAA,KAAAllB,OAAA,YAAAioB,KAAA/C,EAAAoD,WAAAhX,GAAA,KAAAsY,SAAAxE,EAAA,EAAAwE,SAAA,SAAA/E,EAAA3jB,GAAA,aAAA2jB,EAAA3hB,KAAA,MAAA2hB,EAAAuB,IAAA,gBAAAvB,EAAA3hB,MAAA,aAAA2hB,EAAA3hB,KAAA,KAAA+kB,KAAApD,EAAAuB,IAAA,WAAAvB,EAAA3hB,MAAA,KAAAwmB,KAAA,KAAAtD,IAAAvB,EAAAuB,IAAA,KAAApmB,OAAA,cAAAioB,KAAA,kBAAApD,EAAA3hB,MAAAhC,IAAA,KAAA+mB,KAAA/mB,GAAAoQ,CAAA,EAAAuY,OAAA,SAAAhF,GAAA,QAAA3jB,EAAA,KAAAsnB,WAAAjgB,OAAA,EAAArH,GAAA,IAAAA,EAAA,KAAA4jB,EAAA,KAAA0D,WAAAtnB,GAAA,GAAA4jB,EAAAwD,aAAAzD,EAAA,YAAA+E,SAAA9E,EAAA4D,WAAA5D,EAAAyD,UAAAE,EAAA3D,GAAAxT,CAAA,GAAAwY,MAAA,SAAAjF,GAAA,QAAA3jB,EAAA,KAAAsnB,WAAAjgB,OAAA,EAAArH,GAAA,IAAAA,EAAA,KAAA4jB,EAAA,KAAA0D,WAAAtnB,GAAA,GAAA4jB,EAAAsD,SAAAvD,EAAA,KAAAtG,EAAAuG,EAAA4D,WAAA,aAAAnK,EAAArb,KAAA,KAAA+a,EAAAM,EAAA6H,IAAAqC,EAAA3D,EAAA,QAAA7G,CAAA,YAAAqJ,MAAA,0BAAAyC,cAAA,SAAA7oB,EAAA4jB,EAAAvG,GAAA,YAAAiJ,SAAA,CAAAnC,SAAA5L,EAAAvY,GAAA8mB,WAAAlD,EAAAoD,QAAA3J,GAAA,cAAAve,SAAA,KAAAomB,IAAAvB,GAAAvT,CAAA,GAAApQ,CAAA,UAAA8oB,EAAAC,EAAA/W,EAAAgX,EAAAC,EAAAC,EAAAzkB,EAAAygB,GAAA,QAAAiE,EAAAJ,EAAAtkB,GAAAygB,GAAAxpB,EAAAytB,EAAAztB,KAAA,OAAAmC,GAAA,YAAAmrB,EAAAnrB,EAAA,CAAAsrB,EAAA9C,KAAArU,EAAAtW,GAAAwsB,QAAAlW,QAAAtW,GAAAwqB,KAAA+C,EAAAC,EAAA,UAAAmI,EAAA9E,GAAA,sBAAApC,EAAA,KAAAwC,EAAAjkB,UAAA,WAAAwf,SAAA,SAAAlW,EAAAgX,GAAA,IAAAD,EAAAwD,EAAA9kB,MAAA0iB,EAAAwC,GAAA,SAAA1D,EAAAvtB,GAAAotB,EAAAC,EAAA/W,EAAAgX,EAAAC,EAAAC,EAAA,OAAAxtB,EAAA,UAAAwtB,EAAA0D,GAAA9D,EAAAC,EAAA/W,EAAAgX,EAAAC,EAAAC,EAAA,QAAA0D,EAAA,CAAA3D,OAAA/qB,EAAA,cAAAwrB,EAAAnsB,EAAAwE,GAAA,QAAAiiB,EAAA,EAAAA,EAAAjiB,EAAAsF,OAAA2c,IAAA,KAAA2F,EAAA5nB,EAAAiiB,GAAA2F,EAAAlF,WAAAkF,EAAAlF,aAAA,EAAAkF,EAAAjF,cAAA,YAAAiF,IAAAA,EAAAhF,UAAA,GAAA9nB,OAAAknB,eAAAxmB,QAAAkH,IAAA,SAAAuB,EAAA4jB,GAAA,cAAA5D,EAAAhgB,IAAA,OAAAA,EAAA,OAAAA,EAAA,IAAA6jB,EAAA7jB,EAAAie,OAAA6F,aAAA,QAAA5rB,IAAA2rB,EAAA,KAAAE,EAAAF,EAAAnnB,KAAAsD,EAAA4jB,UAAA,cAAA5D,EAAA+D,GAAA,OAAAA,EAAA,UAAAlD,UAAA,uDAAAmD,OAAAhkB,EAAA,CAAAikB,CAAAN,EAAAllB,KAAA,WAAAuhB,EAAAvhB,GAAAA,EAAAulB,OAAAvlB,IAAAklB,EAAA,KAAAllB,CAAA,CAIA,IAAMotB,EAAel0B,EAAQ,MASvBm0B,EAAa,OACbC,EAAgB,GAAHz1B,OAAMw1B,EAAU,QAC7BE,EAAqB,GAAH11B,OAAMw1B,EAAU,aAElCG,EAAiB,CACrBC,eAAgB,IAChBC,KAAM,KA4OR,QADkB,IAxOH,SAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAMb,SAAAC,IAAe,IAAArwB,EAAA,KAKb,GAjCJ,SAAAipB,EAAAf,GAAA,KAAAe,aAAAf,GAAA,UAAA7D,UAAA,qCA4BiBpkB,CAAA,KAAAowB,GACbluB,KAAK5B,OAAS,IAAI8uB,EAClBltB,KAAKmuB,kBAAoBhsB,SAASvD,cAAc,OAADjH,OAxBjC,0BAwBwE,MACtFqI,KAAKouB,gBAAiB,EACtBpuB,KAAKquB,OAAoC,OAA3BruB,KAAKmuB,kBACfnuB,KAAKquB,OACPruB,KAAKmuB,kBAAkBG,KAAO,CAC5BC,OAAQvuB,KAAKmuB,kBAAkBrvB,aA5B7B,mCA6BF0vB,UAAWxuB,KAAKmuB,kBAAkBrvB,aA5B7B,sCA6BL2vB,aAAczuB,KAAKmuB,kBAAkBrvB,aA5B7B,0CA6BR4vB,OAAQ1uB,KAAKmuB,kBAAkBrvB,aA5B7B,mCA6BF+rB,SAAU7qB,KAAKmuB,kBAAkBrvB,aA5B7B,sCA8BNkB,KAAK2uB,sBAAsBpN,MAAK,SAAAqN,GAC9B,GAAMA,IAAaA,EAASC,qBAAuBhxB,EAAKuwB,eACtDvwB,EAAK0T,MAAM,CAAEud,MAAOF,EAASG,SAASC,UAElCJ,EAASK,qBACXpxB,EAAKqxB,cAAc/B,GACnBtvB,EAAKsxB,sBAGPtxB,EAAKuxB,cAAchC,QACd,GAAMwB,GAAY/wB,EAAKwxB,mBAAoB,CAChD,IAAMC,EAAazxB,EAAK0xB,WAAWpC,GACnCtvB,EAAK0T,MAAM+d,EACb,CACF,QACK,CACL,IAAIA,EAAatvB,KAAKuvB,WAAWpC,GAE7BntB,KAAKwvB,sBACPF,EAAatvB,KAAKuvB,WAAWnC,GAE7BptB,KAAKkvB,cAAc9B,GACnBptB,KAAKkvB,cAAc7B,IAGrBrtB,KAAKuR,MAAM+d,EACb,CACF,CApEF,IAAAvJ,EAAAC,EA2PG,OA3PHD,EAoEGmI,EApEHlI,EAoEG,EAAAlmB,IAAA,QAAA/I,MAED,SAAO04B,GACL,IAAMX,EAAQW,GAAeA,EAAYX,MACrCW,EAAYX,MAAM12B,KAAI,SAAAs3B,GAAC,MAAK,CAAE74B,GAAI64B,EAAE/iB,WAAY,IAChD,GAEJ3M,KAAKyrB,KAAO,IAAIkE,EAAAA,EAAWb,GAC3B9uB,KAAK5B,OAAOwE,KAAK,OACnB,GAAC,CAAA9C,IAAA,aAAA/I,MAED,WACE,OAAOiJ,KAAKquB,SAAWruB,KAAKqvB,kBAC9B,GAAC,CAAAvvB,IAAA,qBAAA/I,MAED,WACE,OAAOiJ,KAAK4vB,eAAiB5vB,KAAKouB,cACpC,GAAC,CAAAtuB,IAAA,cAAA/I,MAED,WAAe,IAAA84B,EACb,OAAgB,QAATA,EAAA7vB,KAAKyrB,YAAI,IAAAoE,OAAA,EAATA,EAAWC,OAAOptB,SAAU,CACrC,GAAC,CAAA5C,IAAA,WAAA/I,MAED,WAAY,IAAAg5B,EACV,OAA6B,QAAtBA,EAAA/vB,KAAKmuB,yBAAiB,IAAA4B,GAAM,QAANA,EAAtBA,EAAwBzB,YAAI,IAAAyB,OAAA,EAA5BA,EAA8BlF,WAAY,EACnD,GAAC,CAAA/qB,IAAA,eAAA/I,MAAA,SAAA4wB,EAAAqI,EAAAC,GAAA,OAAAxC,EAAAA,GAAAf,EAAA3N,IAAAmE,MAED,SAAA2E,EAAoBmB,EAAQE,EAAeM,GAAe,IAAA0G,EAAA,OAAAnR,IAAAkB,MAAA,SAAA8H,GAAA,cAAAA,EAAAtE,KAAAsE,EAAA3F,MAAA,OACvC,GAAb8N,GAAQ,GAERlwB,KAAK4vB,aAAc,CAAF7H,EAAA3F,KAAA,eAAA2F,EAAA3F,KAAA,EACEpiB,KAAKmwB,mBAAmBnH,EAAQE,EAAeM,GAAgB,OAAxEzB,EAAAlG,KAEDuO,UACTpwB,KAAKyrB,KAAK4E,QAAQ,CAAEx5B,GAAImyB,IACxBhpB,KAAKovB,cAAchC,GACnB8C,GAAQ,GACTnI,EAAA3F,KAAA,gBAEDpiB,KAAKyrB,KAAK4E,QAAQ,CAAEx5B,GAAImyB,IACxBhpB,KAAKovB,cAAcjC,GACnB+C,GAAQ,EAAI,QAKb,OAFGA,GACFlwB,KAAK5B,OAAOwE,KAAK,SAAUomB,GAC5BjB,EAAA/F,OAAA,SAEMkO,GAAK,yBAAAnI,EAAAnE,OAAA,GAAAiE,EAAA,WACb/kB,MAAA,KAAAiB,UAAA,IAAAjE,IAAA,kBAAA/I,MAAA,SAAAu5B,EAAAC,EAAAC,GAAA,OAAA9C,EAAAA,GAAAhB,EAAA3N,IAAAmE,MAED,SAAAuN,EAAuBzH,EAAQE,EAAeM,GAAe,IAAAkH,EAAAC,EAAA,OAAA5R,IAAAkB,MAAA,SAAA2Q,GAAA,cAAAA,EAAAnN,KAAAmN,EAAAxO,MAAA,OAEL,GADlDsO,GAAU,IACRC,EAAe3wB,KAAKyrB,KAAKoF,UAAU,KAAM7H,IAE7B,CAAF4H,EAAAxO,KAAA,aACVpiB,KAAK4vB,aAAc,CAAFgB,EAAAxO,KAAA,gBAAAwO,EAAAxO,KAAA,EACEpiB,KAAK8wB,sBAAsB9H,EAAQE,EAAeM,GAAgB,OAA3EoH,EAAA/O,KAEDuO,UACTpwB,KAAKyrB,KAAK7pB,OAAO+uB,GACjB3wB,KAAKovB,cAAchC,GACnBsD,GAAU,GACXE,EAAAxO,KAAA,iBAEDpiB,KAAKyrB,KAAK7pB,OAAO+uB,GACjB3wB,KAAKovB,cAAcjC,GACnBuD,GAAU,EAAI,QAGZA,GACF1wB,KAAK5B,OAAOwE,KAAK,SAAUomB,GAC5B,eAAA4H,EAAA5O,OAAA,SAGI0O,GAAO,yBAAAE,EAAAhN,OAAA,GAAA6M,EAAA,WACf3tB,MAAA,KAAAiB,UAAA,IAAAjE,IAAA,UAAA/I,MAED,SAASiyB,GACP,QAAShpB,KAAKyrB,KAAKoF,UAAU,KAAM7H,EACrC,GAAC,CAAAlpB,IAAA,aAAA/I,MAED,SAAYD,GACV,OAAOi6B,EAAAA,EAAQC,OAAOC,IAAIn6B,EAC5B,GAAC,CAAAgJ,IAAA,gBAAA/I,MAED,SAAeD,GACbi6B,EAAAA,EAAQC,OAAOE,IAAIp6B,EAAM,CACvBg4B,MAAO9uB,KAAKyrB,KAAKqE,OAAO13B,KAAI,SAAAs3B,GAAC,OAAIA,EAAE91B,WAAW/C,EAAE,KAC/Cy2B,EACL,GAAC,CAAAxtB,IAAA,gBAAA/I,MAED,SAAeD,GACbi6B,EAAAA,EAAQC,OAAOG,OAAOr6B,EACxB,GAAC,CAAAgJ,IAAA,qBAAA/I,MAED,WACEg6B,EAAAA,EAAQC,OAAOE,IAAI7D,GAAoB,EAAMC,EAC/C,GAAC,CAAAxtB,IAAA,oBAAA/I,MAED,WAGE,OAA8B,IAFHg6B,EAAAA,EAAQC,OAAOC,IAAI5D,EAGhD,GAAC,CAAAvtB,IAAA,QAAA/I,MAAA,SAAAq6B,GAAA,OAAAzD,EAAAA,GAAAjB,EAAA3N,IAAAmE,MAED,SAAAmO,EAAah3B,GAAK,OAAA0kB,IAAAkB,MAAA,SAAAqR,GAAA,cAAAA,EAAA7N,KAAA6N,EAAAlP,MAAA,WACZpiB,KAAK4vB,aAAc,CAAF0B,EAAAlP,KAAA,eAAAkP,EAAAlP,KAAA,EACbpiB,KAAKuxB,4BAA2B,OAExCvxB,KAAKyrB,KAAK3I,MAAMzoB,GAChB2F,KAAKovB,cAAcjC,GACnBntB,KAAK5B,OAAOwE,KAAK,UAAS,wBAAA0uB,EAAA1N,OAAA,GAAAyN,EAAA,WAC3BvuB,MAAA,KAAAiB,UAAA,GAED,CAAAjE,IAAA,sBAAA/I,MAAA,kBAAA62B,EAAAA,GAAAlB,EAAA3N,IAAAmE,MACA,SAAAsO,IAAA,IAAA5C,EAAA6C,EAAAC,EAAA,OAAA3S,IAAAkB,MAAA,SAAA0R,GAAA,cAAAA,EAAAlO,KAAAkO,EAAAvP,MAAA,cAAAuP,EAAAvP,KAAA,EACyBpiB,KAAK4xB,2BAA2B5xB,KAAKmuB,kBAAkBG,KAAKI,QAAO,OAA5E,IAARE,EAAQ+C,EAAA9P,OAEI+M,EAASG,SAAQ,CAAA4C,EAAAvP,KAAA,eAAAuP,EAAA3P,OAAA,SAAS,MAAI,OAcuC,OAZvFhiB,KAAKqvB,mBAAqBT,EAASG,SAASM,mBACxCT,EAASG,SAASX,eACpBpuB,KAAKouB,gBAAiB,GAEtBpuB,KAAKsqB,WAAasE,EAASG,SAASzE,WACpCtqB,KAAK4qB,cAAgBgE,EAASG,SAASnE,cACvC5qB,KAAKgrB,qBAAuB4D,EAASG,SAAS/D,qBAC9ChrB,KAAKirB,gBAAkB2D,EAASG,SAAS9D,gBACzCjrB,KAAKkrB,oBAAsB0D,EAASG,SAAS7D,qBAGzCuG,EAA2B7C,EAASiD,QAAQZ,IAAI,sCAChDS,EAA4B9C,EAASiD,QAAQZ,IAAI,iCAAgCU,EAAA3P,OAAA,SAEhF,CACL+M,SAAUH,EAASG,SACnBE,mBAAoB,QAAQ6C,KAAKL,GACjC5C,sBAAuB6C,IACxB,yBAAAC,EAAA/N,OAAA,GAAA4N,EAAA,WACF1uB,MAAA,KAAAiB,UAAA,IAAAjE,IAAA,qBAAA/I,MAAA,SAAAg7B,EAAAC,EAAAC,GAAA,OAAApE,EAAAA,GAAAnB,EAAA3N,IAAAmE,MAED,SAAAgP,EAA0BC,EAAiBjJ,EAAeM,GAAe,IAAA9C,EAAA,OAAA3H,IAAAkB,MAAA,SAAAmS,GAAA,cAAAA,EAAA3O,KAAA2O,EAAAhQ,MAAA,cAAAgQ,EAAAhQ,KAAA,EAClDpiB,KAAKqyB,4BAA4BryB,KAAKmuB,kBAAkBG,KAAKC,OAAQ4D,EAAiBjJ,EAAeM,GAAgB,OAC/F,OADrC9C,EAAM0L,EAAAvQ,KACZ7hB,KAAKouB,eAAiB1H,EAAO0H,eAAcgE,EAAApQ,OAAA,SACpC0E,GAAM,wBAAA0L,EAAAxO,OAAA,GAAAsO,EAAA,WACdpvB,MAAA,KAAAiB,UAAA,IAAAjE,IAAA,wBAAA/I,MAAA,SAAAu7B,EAAAC,EAAAC,GAAA,OAAA1E,EAAAA,GAAApB,EAAA3N,IAAAmE,MAED,SAAAuP,EAA6BN,EAAiBjJ,EAAeM,GAAe,IAAA9C,EAAA,OAAA3H,IAAAkB,MAAA,SAAAyS,GAAA,cAAAA,EAAAjP,KAAAiP,EAAAtQ,MAAA,cAAAsQ,EAAAtQ,KAAA,EACrDpiB,KAAKqyB,4BAA4BryB,KAAKmuB,kBAAkBG,KAAKE,UAAW2D,EAAiBjJ,EAAeM,GAAgB,OAClG,OADrC9C,EAAMgM,EAAA7Q,KACZ7hB,KAAKouB,eAAiB1H,EAAO0H,eAAcsE,EAAA1Q,OAAA,SACpC0E,GAAM,wBAAAgM,EAAA9O,OAAA,GAAA6O,EAAA,WACd3vB,MAAA,KAAAiB,UAAA,IAAAjE,IAAA,4BAAA/I,MAAA,kBAAAg3B,EAAAA,GAAArB,EAAA3N,IAAAmE,MAED,SAAAyP,IAAA,IAAAjM,EAAA,OAAA3H,IAAAkB,MAAA,SAAA2S,GAAA,cAAAA,EAAAnP,KAAAmP,EAAAxQ,MAAA,cAAAwQ,EAAAxQ,KAAA,EACuBpiB,KAAKqyB,4BAA4BryB,KAAKmuB,kBAAkBG,KAAKG,cAAa,OACpD,OADrC/H,EAAMkM,EAAA/Q,KACZ7hB,KAAKouB,eAAiB1H,EAAO0H,eAAcwE,EAAA5Q,OAAA,SACpC0E,GAAM,wBAAAkM,EAAAhP,OAAA,GAAA+O,EAAA,WACd7vB,MAAA,KAAAiB,UAAA,IAAAjE,IAAA,8BAAA/I,MAAA,SAAA87B,EAAAC,EAAAC,EAAAC,GAAA,OAAAhF,EAAAA,GAAAtB,EAAA3N,IAAAmE,MAED,SAAA+P,EAAmCC,EAAKf,EAAiBjJ,EAAeM,GAAe,IAAA2J,EAAAzM,EAAA,OAAA3H,IAAAkB,MAAA,SAAAmT,GAAA,cAAAA,EAAA3P,KAAA2P,EAAAhR,MAAA,OAEU,OAFVgR,EAAA3P,KAAA,EAE7E0P,GAAaE,EAAAA,EAAAA,IAAiBH,EAAK,CAAEf,gBAAAA,EAAiBjJ,cAAAA,EAAeM,gBAAAA,IAAkB4J,EAAAhR,KAAA,GACxEkR,EAAAA,EAAAA,IAAcH,EAAY,CAAEI,2BAA2B,IAAO,OAAvE,OAAN7M,EAAM0M,EAAAvR,KAAAuR,EAAApR,OAAA,SAEL0E,GAAM,OAAA0M,EAAA3P,KAAA,EAAA2P,EAAAI,GAAAJ,EAAA,SAEb/gB,EAAQohB,IAAGL,EAAAI,IAAO,yBAAAJ,EAAAxP,OAAA,GAAAqP,EAAA,mBAErBnwB,MAAA,KAAAiB,UAAA,IAAAjE,IAAA,6BAAA/I,MAAA,SAAA28B,GAAA,OAAAzF,EAAAA,GAAAvB,EAAA3N,IAAAmE,MAED,SAAAyQ,EAAkCT,GAAG,IAAAC,EAAAzM,EAAA,OAAA3H,IAAAkB,MAAA,SAAA2T,GAAA,cAAAA,EAAAnQ,KAAAmQ,EAAAxR,MAAA,OAEO,OAFPwR,EAAAnQ,KAAA,EAE3B0P,GAAaE,EAAAA,EAAAA,IAAiBH,GAAIU,EAAAxR,KAAA,GACnByR,EAAAA,EAAAA,IAAwBV,EAAY,CAAEI,2BAA2B,IAAO,OAAjF,OAAN7M,EAAMkN,EAAA/R,KAAA+R,EAAA5R,OAAA,SAEL,CACL+M,SAAUrI,EAAOqI,SACjB8C,QAASnL,EAAOmL,UACjB,OAAA+B,EAAAnQ,KAAA,EAAAmQ,EAAAJ,GAAAI,EAAA,SAEDvhB,EAAQohB,IAAGG,EAAAJ,IAAO,yBAAAI,EAAAhQ,OAAA,GAAA+P,EAAA,mBAErB7wB,MAAA,KAAAiB,UAAA,IA3PHiiB,GAAAjB,EAAAgB,EAAA7G,UAAA8G,GAAA9tB,OAAAknB,eAAA2G,EAAA,aAAA/F,UAAA,IA2PGkO,CAAA,CArOY,y3CCNR,IAAM4F,EAAyB,CACpCvsB,QAAQ,EACR+R,UAAU,EACVC,WAAY,KACZvhB,aAAc,GACd4B,WAAY,CAAC,GAGFyf,EAAsB,SAAC3hB,EAAGq8B,GAErC,OADAr8B,EAAC0B,EAAAA,EAAA,GAAQ06B,GAA2Bp8B,GAC7B,mCAAPC,OACID,EAAE6P,OAAS,KAAO,GAAE,UAAA5P,OACpBD,EAAE4hB,SAAW,gCAAkC,GAAE,UAAA3hB,OACjDD,EAAE6hB,WAAa,+BAAH5hB,OAAkCD,EAAE6hB,YAAe,GAAE,UAAA5hB,OACjED,EAAEM,aAAeN,EAAEM,aAAe,GAAE,SAAAL,OACtCD,EAAEkC,YAAaG,EAAAA,EAAAA,IAAiBrC,EAAEkC,YAAc,GAAE,+CAAAjC,OAElDo8B,EAAO,WAEX,u3CCxBO,IAAMC,EAA6B,CACxCh8B,aAAc,GACd4B,WAAY,CAAC,GAGF6f,EAA0B,SAAC/hB,EAAGq8B,GAEzC,OADAr8B,EAAC0B,EAAAA,EAAA,GAAQ46B,GAA+Bt8B,GACjC,yCAAPC,OACID,EAAEM,aAAeN,EAAEM,aAAe,GAAE,SAAAL,OACtCD,EAAEkC,YAAaG,EAAAA,EAAAA,IAAiBrC,EAAEkC,YAAc,GAAE,mFAAAjC,OAEhDo8B,EAAO,qBAGb,u3CCdO,IAAME,EAA+B,CAC1Cj8B,aAAc,GACd4B,WAAY,CAAC,GAGFggB,EAA4B,SAACliB,EAAGq8B,GAE3C,OADAr8B,EAAC0B,EAAAA,EAAA,GAAQ66B,GAAiCv8B,GACnC,2CAAPC,OACID,EAAEM,aAAeN,EAAEM,aAAe,GAAE,SAAAL,OACtCD,EAAEkC,YAAaG,EAAAA,EAAAA,IAAiBrC,EAAEkC,YAAc,GAAE,SAAAjC,OAClDo8B,EAAO,WAEX,u3CCZO,IAAMG,EAA+B,CAC1Cl8B,aAAc,GACd4B,WAAY,CAAC,GAGFu6B,EAA4B,SAACz8B,EAAGq8B,GAE3C,OADAr8B,EAAC0B,EAAAA,EAAA,GAAQ86B,GAAiCx8B,GACnC,2CAAPC,OACID,EAAEM,aAAeN,EAAEM,aAAe,GAAE,SAAAL,OACtCD,EAAEkC,YAAaG,EAAAA,EAAAA,IAAiBrC,EAAEkC,YAAc,GAAE,SAAAjC,OAClDo8B,EAAO,WAEX,2vCCbA,IAAM52B,EAAa,CAEjBrG,KAAM,iBAcNsG,MAAO,CACL,CACEtG,KAAM,SACNuG,KAAM,UACNE,aAAc,SACb,CACDzG,KAAM,YACNuG,KAAM,SACNH,KAAM,kCACNK,aAAc,IACb,CACDzG,KAAM,YACNuG,KAAM,SACNH,KAAM,kCACNK,aAAc,MAUC62B,EAAW,SAAA32B,yRAAAC,CAAA02B,EAAA32B,GAAA,YAAAE,KAAAy2B,+jBAO9B,SAAAA,EAAax2B,GAAS,IAAAC,EAIgC,mGAJhCC,CAAA,KAAAs2B,IACpBv2B,EAAAF,EAAAI,KAAA,KAAMH,EAAST,EAAWrG,OACrB8G,QAAQT,EAAWrG,MAAMu9B,WAAax2B,EAAKw2B,WAAWn1B,KAAIC,EAAAtB,IAC/DA,EAAKD,QAAQT,EAAWrG,MAAMw9B,oBAAsBz2B,EAAK02B,QAAQr1B,KAAIC,EAAAtB,IACrE6M,OAAO0R,iBAAiB,SAAUve,EAAKw2B,cAAax2B,CACtD,CAqIC,SArIAu2B,KAAA,EAAAt0B,IAAA,YAAA/I,MAED,WACE,YAAyBwC,IAAlByG,KAAKmJ,SAAyBnJ,KAAKmJ,SAAWnJ,KAAKpC,QAAQ8D,UAAUoF,SAAS,KACvF,GAAC,CAAAhH,IAAA,YAAA/I,MAED,SAAWwQ,GACT,OAAOvH,KAAKuH,EAAS,OAAS,UAChC,GAAC,CAAAzH,IAAA,OAAA/I,MAED,WAAQ,IAAAgJ,EAAA,KACN,OAAO,IAAIwjB,SAAQ,SAAClW,GAClBtN,EAAKs0B,aACDt0B,EAAKoJ,UAAUkE,IACnBtN,EAAKnC,QAAQ8D,UAAUC,IAAI,eAC3BoJ,EAAAA,EAAAA,IAAahL,EAAKnC,SAClBmC,EAAKnC,QAAQ8D,UAAUC,IAAI,MAE3B5B,EAAKy0B,mBAAkB,WACrBz0B,EAAKnC,QAAQ8D,UAAUE,OAAO,cAC9B7B,EAAKoJ,UAAW,EAChBkE,GACF,GACF,GACF,GAAC,CAAAvN,IAAA,QAAA/I,MAED,WAAS,IAAA+K,EAAA,KACP,OAAO,IAAIyhB,SAAQ,SAAClW,GAClBvL,EAAKqH,UAAW,EAChBrH,EAAKlE,QAAQ8D,UAAUC,IAAI,cAC3BG,EAAKlE,QAAQ8D,UAAUE,OAAO,cAC9BE,EAAKlE,QAAQ8D,UAAUE,OAAO,MAC9BE,EAAK2yB,cAAgBpnB,EACrBvL,EAAK4yB,YAAc5yB,EAAK4yB,aAAe5yB,EAAKyyB,QAAQr1B,KAAK4C,GACzDA,EAAK0yB,kBAAkB1yB,EAAK4yB,YAC9B,GACF,GAAC,CAAA50B,IAAA,UAAA/I,MAED,WACEiJ,KAAKpC,QAAQ8D,UAAUE,OAAO,cAC1B5B,KAAKy0B,eAA+C,mBAAvBz0B,KAAKy0B,eAA8Bz0B,KAAKy0B,uBAClEz0B,KAAKy0B,aACd,GAAC,CAAA30B,IAAA,oBAAA/I,MAED,SAAmB49B,GACjB,IAAM7qB,GAAiBC,EAAAA,EAAAA,KAAYC,EAAAA,EAAAA,IAAShK,KAAKpC,QAAS,wBACtDoC,KAAKyK,mBAAmBC,OAAOC,aAAa3K,KAAKyK,mBACrDzK,KAAKyK,kBAAoBG,YAAW,WAClC+pB,GACF,GAAG7qB,EACL,GAAC,CAAAhK,IAAA,aAAA/I,MAED,WACE,IAAM0V,EAAYzM,KAAKa,QAAQ,aACzBsJ,EAAYnK,KAAKa,QAAQ,aAEzB+zB,EAAW50B,KAAK60B,eAChB1rB,EAAWnJ,KAAKpC,QAAQ8D,UAAUoF,SAAS,MAEjD,GAA2C,WAAvCkD,EAAAA,EAAAA,IAAShK,KAAKpC,QAAS,YAGzBg3B,EAAS3qB,MAAM6qB,OAAS,KACxB90B,KAAKpC,QAAQqM,MAAM8qB,MAAQ,KAC3B/0B,KAAKpC,QAAQqM,MAAM+qB,KAAO,SACrB,CAILJ,EAAS3qB,MAAM6qB,OAAS3qB,GAAa,KACrCnK,KAAKpC,QAAQqM,MAAMgrB,QAAU,IAC7Bj1B,KAAKpC,QAAQqM,MAAM8qB,MAAQ,KAC3B/0B,KAAKpC,QAAQqM,MAAM+qB,KAAO,KACrB7rB,GAAUnJ,KAAKpC,QAAQ8D,UAAUC,IAAI,OAC1CoJ,EAAAA,EAAAA,IAAa/K,KAAKpC,SAGlB,IAAIs3B,EAAcl1B,KAAKpC,QAAQ2N,wBACzB4pB,EAAsBD,EAAYH,MAAQ,GAAMG,EAAYH,MAAQrqB,OAAO0qB,WAKjF,GAJAp1B,KAAKpC,QAAQqM,MAAM8qB,MAAQI,EAAqB,IAAM,KACtDn1B,KAAKpC,QAAQqM,MAAM+qB,KAAOG,EAAqB,IAAM,KAGjD1oB,GAAatC,EAAW,CAE1B,IAAMkrB,EAAar1B,KAAKs1B,iBAClBC,EAAav1B,KAAKw1B,iBAClBC,EAAcz1B,KAAK01B,kBACnBC,EAAeN,EAAa9vB,SAAS8vB,EAAW9pB,wBAAwBupB,QAAU,EAClFc,EAAeL,EAAahwB,SAASgwB,EAAWhqB,wBAAwBupB,QAAU,EAClFe,EAAgBJ,EAAclwB,SAASkwB,EAAYlqB,wBAAwBupB,QAAU,EACvFgB,EAAiBvwB,SAAS4E,GAAawrB,EAAeC,EAC1DE,EAAiBD,EAAgBC,EAAiBD,EAAgBC,EAClElB,EAAS3qB,MAAM6qB,OAAS,GAAHn9B,OAAMm+B,EAAc,OACzC/qB,EAAAA,EAAAA,IAAa/K,KAAKpC,SAGlB,IAAMm4B,EAAkBrrB,OAAOsrB,aAAe7zB,SAASkJ,gBAAgBjB,aAIvE,GAAK2rB,EAHc,IACnBb,EAAcl1B,KAAKpC,QAAQ2N,yBAEqB0qB,OAAQ,CAEtD,IAAIC,EAAe3wB,SAASwwB,EAAiBb,EAAYiB,IALxC,IAMjBD,EAAeA,GAAgB3wB,SAASkH,GAAaypB,EAAe3wB,SAASkH,GAC7EmoB,EAAS3qB,MAAM6qB,OAAS,GAAHn9B,OAAMu+B,EAAeP,EAAeC,EAAY,KACvE,CACF,CAGKzsB,GAAUnJ,KAAKpC,QAAQ8D,UAAUE,OAAO,MAC7C5B,KAAKpC,QAAQqM,MAAMgrB,QAAU,KAC7Bj1B,KAAKpC,QAAQqM,MAAMC,mBAAqB,MACxCa,EAAAA,EAAAA,IAAa/K,KAAKpC,QACpB,CAEA,OAAOoC,IACT,GAAC,CAAAF,IAAA,eAAA/I,MAED,WACE,OAAOiJ,KAAKpC,QAAQgB,cAAc,wBACpC,GAAC,CAAAkB,IAAA,kBAAA/I,MAED,WACE,OAAOiJ,KAAKpC,QAAQgB,cAAc,gCACpC,GAAC,CAAAkB,IAAA,iBAAA/I,MAED,WACE,OAAOiJ,KAAKpC,QAAQgB,cAAc,0BACpC,GAAC,CAAAkB,IAAA,iBAAA/I,MAED,WACE,OAAOiJ,KAAKpC,QAAQgB,cAAc,0BACpC,0EAACw1B,CAAA,CAjJ6B,CAASntB,EAAAA,IAoJzCC,EAAAA,EAAAA,GAAkBktB,EAAaj3B,EAAWrG,KAAMqG,g8CCtLzC,IAAMi5B,EAA0B,CACvC,EAEaC,EAAuB,SAAC3+B,GAEnC,OADAA,EAAC0B,EAAAA,EAAA,GAAQg9B,GAA4B1+B,GAC9B,sCAAPC,OACiCD,EAAEM,aAAeN,EAAEM,aAAe,GAAE,gBAAAL,OAC7DD,EAAE+V,OAAS/V,EAAE4+B,YAAW,iEAAA3+B,OAElBD,EAAE+V,MAAK,GAAA9V,QACF4+B,EAAAA,EAAAA,GAAc,CACjBv/B,KAAMU,EAAE+V,MACRxW,KAAM,OACNqC,QAAS,MAET,GAAE,sCAAA3B,OAEJD,EAAE4+B,YAAW,6CAAA3+B,OACoCD,EAAE4+B,YAAW,UAC1D,GAAE,sBAEZ,GAAE,oEAAA3+B,OAIFD,EAAEF,KAAOE,EAAEF,KAAO,GAAE,mBAAAG,OAEpBD,EAAE8+B,WACE9+B,EAAE8+B,WAAWp+B,KAAI,SAAAyU,GAAS,OACxB4pB,EAAc5pB,EAAU,IACtBtU,KAAK,IACT,GAAE,qCAIhB,EAEMm+B,EAAmB,CACvBz/B,KAAM,QACNw0B,KAAM,CACJzzB,aAAc,KAIZy+B,EAAgB,SAAC/+B,GAIrB,OAHAA,EAAC0B,EAAAA,EAAA,GAAQs9B,GAAqBh/B,IAC5B+zB,KAAKzzB,aAAeN,EAAE+zB,KAAKzzB,aAAe,+BAAiCN,EAAET,KAExE,SAAPU,OACe,cAAXD,EAAE2F,MACFs5B,EAAAA,EAAAA,GAAgBj/B,EAAE+zB,MAClB,GAAE,cAAA9zB,OAES,eAAXD,EAAE2F,MACF2S,EAAAA,EAAAA,GAAiBtY,EAAE+zB,MACnB,GAAE,cAAA9zB,OAES,oBAAXD,EAAE2F,MACF0S,EAAAA,EAAAA,GAAqBrY,EAAE+zB,MACvB,GAAE,cAAA9zB,OAES,kBAAXD,EAAE2F,MACFjB,EAAAA,EAAAA,IAAkBhD,EAAAA,EAAC,CAAC,EAAIa,EAAAA,IAA0BvC,EAAE+zB,OACpD,GAAE,YAAA9zB,OAES,kBAAXD,EAAE2F,MACFu5B,EAAAA,EAAAA,GAAmBl/B,EAAE+zB,MACrB,GAAE,WAGR,8yBCvFA,IAAMoL,EAAiB,CACrBC,QAAS,4CASUC,EAAe,WAOlC,SAAAA,EAAan5B,GAAuB,IAAdY,EAAOuF,UAAArB,OAAA,QAAAnJ,IAAAwK,UAAA,GAAAA,UAAA,GAAG,CAAC,+FAACjG,CAAA,KAAAi5B,GAChC/2B,KAAKpC,QAAUA,EACfoC,KAAKxB,QAAUtG,OAAO8+B,OAAO,CAAC,EAAGH,EAAgBr4B,GACjDwB,KAAKi3B,UAAY,CAAC,EAClBj3B,KAAKuR,OACP,WAwEC,SAtEDwlB,IAuGC,EAAAj3B,IAAA,6BAAA/I,MAnGD,WAGE,IAFA,IAAMmgC,EAAqB,GACrBC,EAAoBJ,EAAgBK,0BACjC/X,EAAI,EAAGA,EAAI8X,EAAkBz0B,OAAQ2c,IAAK,CACjD,IAAMgY,EAAUF,EAAkB9X,GAC5B7gB,EAAUu4B,EAAgB5xB,WAAWkyB,GACrCvQ,EAAWiQ,EAAgBO,sBAAsBD,EAAS74B,GAEhE04B,EAAmB/2B,KAAK2mB,EAC1B,CAEA,OAAOoQ,CACT,GAAC,CAAAp3B,IAAA,0BAAA/I,MAED,WACE,OAAO2T,OAAOvI,SAASlC,iBAAiB,kCAC1C,GAEA,CAAAH,IAAA,wBAAA/I,MAMA,SAA8B6G,EAASY,GACrC,OAAO,IAAIu4B,EAAgBn5B,EAASY,EACtC,GAEA,CAAAsB,IAAA,aAAA/I,MAIA,SAAmB6G,GACjB,IAAMY,EAAUq4B,EACVC,EAAUl5B,EAAQkB,aAAa,mCAIrC,OAHIg4B,GAAuB,KAAZA,IACbt4B,EAAQs4B,QAAUA,GAEbt4B,CACT,GAEA,CAAAsB,IAAA,wBAAA/I,MAGA,WACE,YAAoC,IAAtB2T,OAAO6sB,YAA8B7sB,OAAO6sB,UAC5D,GAEA,CAAAz3B,IAAA,wBAAA/I,MAGA,SAA8BygC,GAE5B,GAD0BT,EAAgBK,0BACpB10B,OAAS,EAAG,CAEhC,IAAI+0B,EAAM,kDAAoDD,EAAe,mBACvEv6B,EAAWkF,SAASkJ,gBAAgBvM,aAAa,QACnD7B,GAAyB,KAAbA,IACdw6B,EAAMA,EAAM,OAASx6B,GAIvB,IAAMy6B,EAAMv1B,SAASw1B,cAAc,UACnCx1B,SAASy1B,KAAK51B,YAAY01B,GAC1BA,EAAID,IAAMA,CACZ,CACF,OAtEA,EAAA33B,IAAA,QAAA/I,MA4EA,WACEiJ,KAAKi3B,UAAUY,aAAe73B,KAAKpC,QAAQgB,cAAc,mBACzDoB,KAAKpC,QAAQwe,iBAAiB,yBAA0Bpc,KAAK2tB,OAAOzuB,KAAKc,OACzEA,KAAK83B,gBACP,GAAC,CAAAh4B,IAAA,iBAAA/I,MAED,WAUE,OATIggC,EAAgBgB,0BAClB/3B,KAAKg4B,YAActtB,OAAO6sB,WAAWU,OAAOj4B,KAAKi3B,UAAUY,aAAc,CACvEK,QAASl4B,KAAKxB,QAAQs4B,QACtB7/B,KAAM,YACNkhC,SAAU,SAAUC,GAClBp4B,KAAKq4B,aACP,EAAEn5B,KAAKc,SAGJA,IACT,GAAC,CAAAF,IAAA,cAAA/I,MAED,WACEiJ,KAAKpC,QAAQggB,cAAc,IAAIlT,OAAOgQ,YAAY,yBACpD,GAAC,CAAA5a,IAAA,SAAA/I,MAED,WACMggC,EAAgBgB,yBAClBrtB,OAAO6sB,WAAWzU,MAAM9iB,KAAKg4B,YAEjC,oFAjCCjB,CAAA,CApFiC,GCPpCuB,EAAAA,KAAoB,WAClB5tB,OAAO6tB,2BAA6BxB,EAAgBwB,2BACpDxB,EAAgByB,sBAAsB,6BACxC,GAAG","sources":["webpack://@sunwebgroup/design-system/./shared/modules/components/checkbox/c-checkbox.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/chip/c-chip.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/choice-list/c-choice-list.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/choice-list/main.js","webpack://@sunwebgroup/design-system/./shared/modules/components/choice-list/c-choice-list__messages.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/collapse/c-collapse.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/collapse/c-collapse__trigger.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/collapse/main.js","webpack://@sunwebgroup/design-system/./shared/modules/components/collection-row/c-collection-item.js","webpack://@sunwebgroup/design-system/./shared/modules/components/collection-row/c-collection-row.js","webpack://@sunwebgroup/design-system/./shared/modules/components/date-selector/c-date-selector.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/date-selector/c-date-selector__messages.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/date-selector/locales.js","webpack://@sunwebgroup/design-system/./shared/modules/components/date-selector/main.js","webpack://@sunwebgroup/design-system/./shared/modules/components/dropdown/c-dropdown_helper.js","webpack://@sunwebgroup/design-system/./shared/modules/components/dropdown/c-dropdown_multiple.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/dropdown/c-dropdown_single-option.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/dropdown/c-dropdown_single.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/dropdown/dropdown-multiple/c-dropdown__multiple__compact-item.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/dropdown/dropdown-multiple/main.js","webpack://@sunwebgroup/design-system/./shared/modules/components/dropdown/main.js","webpack://@sunwebgroup/design-system/./shared/modules/components/dropdown/c-dropdown__messages.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/favorite/button.js","webpack://@sunwebgroup/design-system/./shared/modules/components/favorite/cleaner.js","webpack://@sunwebgroup/design-system/./shared/modules/components/favorite/collector.js","webpack://@sunwebgroup/design-system/./shared/modules/components/favorite/main.js","webpack://@sunwebgroup/design-system/./shared/modules/components/floating-box/c-floating-box.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/floating-box/c-floating-box__body.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/floating-box/c-floating-box__footer.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/floating-box/c-floating-box__header.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/floating-box/main.js","webpack://@sunwebgroup/design-system/./shared/modules/components/form/c-form__fieldset.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/form/recaptcha.js","webpack://@sunwebgroup/design-system/./shared/modules/components/form/data-js-api.js"],"sourcesContent":["import { fromCamelCase } from '../../../js/helpers/string'\n\n/**\n * The CheckboxData contains all data needed to hydrate a Checkbox view\n *\n * @typedef {Object} CheckboxData\n *\n * @property {String} id - The element id\n * @property {String} name - The element/group name\n * @property {String} value - The form element value\n * @property {String} text - Option text\n * @property {String} [size]\n * @property {Boolean} [checked]\n * @property {Boolean} [halfChecked]\n * @property {Boolean} [disabled]\n * @property {Boolean} [unresolved]\n * @property {Boolean} [hasChild]\n * @property {String} [count] - The count additional text\n * @property {String} [additionalText] - The additional text\n * @property {String} [state] - Component state, eg. validation\n * @property {String} [extraClasses] - Extra classes to append to the view\n * @property {Object} [dataset] - Extra attributes\n */\n\nexport const defaultCheckboxData = {\n id: '',\n name: '',\n value: '',\n text: '',\n size: '',\n checked: false,\n halfChecked: false,\n disabled: false,\n unresolved: false,\n hasChild: false,\n link: null,\n html: ''\n}\n\nexport const CheckboxTemplate = (d) => `\n
\n `data-${fromCamelCase(k)}=\"${d.dataset[k]}\"`).join(' ') : ''}/>\n \n
`\n","/**\n * The ChipData contains all data needed to hydrate a Chip view\n *\n * @typedef {Object} ChipData\n *\n * @property {String} text - Chip text\n * @property {String} [value] - Associated value if it belongs to any other component\n * @property {Boolean} [disabled]\n * @property {Boolean} [highlighted]\n * @property {String} [extraClasses] - Extra classes to append to the view\n * @property {Object} [attributes] - Chip's element attributes\n * @property {String} [variant] - Chip's variant\n * @property {Boolean} [linkable] - Chip is linkable\n * @property {String} [link] - Chip's link if linkable\n */\n\nimport { encodeAttributes } from '../../../js/helpers/string'\nimport { getTokenClass } from '../../../js/helpers/tokens'\n\n// Import tokens\nconst tokensShared = require('./data/c-chip__tokens.json')['c-chip']\nconst tokensBrand = (() => {\n try {\n return require(`../../../../brands/${WEBPACK_BRAND}/modules/components/chip/data/c-chip__tokens.json`)['c-chip'] // eslint-disable-line\n } catch (error) {\n return {}\n }\n})()\nconst tokens = { ...tokensShared, ...tokensBrand }\n\nexport const defaultChipData = {\n extraClasses: '',\n variant: 'default',\n text: '',\n value: undefined,\n disabled: false,\n highlighted: false,\n removable: true,\n linkable: false,\n mandatory: false,\n link: '',\n attributes: {}\n}\n\nexport const ChipTemplate = (d) => {\n d = { ...defaultChipData, ...d }\n return `\n
\n ${d.linkable ? '' : `${d.text}`}\n ${d.removable\n ? ''\n : ''}\n ${d.linkable\n ? `\n ${d.text}\n \n `\n : ''}\n
\n`\n}\n","import { CheckboxTemplate, defaultCheckboxData } from '../checkbox/c-checkbox.template'\nimport { RadioButtonTemplate, defaultRadioButtonData } from '../radio-button/c-radio-button.template'\nimport { TooltipTemplate, defaultTooltipData } from '../../components/tooltip/c-tooltip.template'\nimport { SliderTemplate } from '../slider/c-slider.template'\nimport { encodeAttributes } from '../../../js/helpers/string'\nimport uid from '../../../js/core/uid'\n\nconst ChoiceListExtraClasses = {\n extraClasses: 'c-choice-list__option '\n}\n\n/**\n * The ChoiceListData contains all data needed to hydrate a ChoiceList view\n *\n * @typedef {Object} ChoiceListData\n *\n * @property {String} id - The element id\n * @property {String} variant - The variant (default | boxed)\n * @property {String} method - The method (single | multiple)\n * @property {String} [label] - Label text\n * @property {String} [track] - Track for tracking (e.g. datalayers)\n * @property {CheckboxData[]|RadioButtonData[]} [items] - The option items\n * @property {String} [extraClasses] - Extra classes to append to the view\n * @property {Object} [dataset] - Extra attributes\n * @property {Object} [tooltip] - data for the tooltip label\n */\n\nexport const defaultChoiceListData = {\n id: '',\n track: '',\n variant: 'default',\n method: 'single',\n label: '',\n items: [],\n extraClasses: '',\n tooltip: null,\n hasRichOptions: false,\n showInSlider: false,\n hideRequiredSymbol: false\n}\n\nexport const defaultRichChoiceItemData = {\n id: '',\n name: '',\n checked: false,\n disabled: false,\n required: false,\n extraClassesForRichOption: ''\n}\n\nconst retrieveExtraClassesForOption = (defaultItemData, itemData) => {\n const arrDefaultItemExtraClasses = defaultItemData.extraClasses ? defaultItemData.extraClasses.split(' ') : []\n const arrItemExtraClasses = itemData.extraClasses ? itemData.extraClasses.split(' ') : []\n const extraClassesArray = [...new Set([...arrDefaultItemExtraClasses, ...arrItemExtraClasses])].filter(e => e)\n\n return extraClassesArray.join(' ')\n}\n\nexport const renderOption = (d, item, radioButtonData, checkBoxData) => {\n let template = ''\n const dataFromParent = {\n id: item.id ? d.id + item.id : uid(`${d.id}-`),\n name: d.name || item.name,\n disabled: d.disabled || item.disabled\n }\n\n if (d.method === 'single') {\n template = RadioButtonTemplate({ ...radioButtonData, ...item, ...dataFromParent, ...{ extraClasses: retrieveExtraClassesForOption(radioButtonData, item) } })\n } else {\n template = CheckboxTemplate({ ...checkBoxData, ...item, ...dataFromParent, ...{ extraClasses: retrieveExtraClassesForOption(checkBoxData, item) } })\n }\n\n return template\n}\n\nexport const renderRichOption = (d, item, radioButtonData, checkBoxData) => {\n d = { ...defaultRichChoiceItemData, ...d }\n let richOptionExtraClassesArray = item.extraClassesForRichOption ? item.extraClassesForRichOption.split(' ') : []\n richOptionExtraClassesArray = richOptionExtraClassesArray.filter(s => s !== 'is-checked')\n\n const richOptionExtraClasses = [...new Set([...['c-choice-list__option-rich'], ...richOptionExtraClassesArray])].filter(e => e).join(' ')\n return `\n
\n
\n ${renderOption(d, item, radioButtonData, checkBoxData)}\n
\n \n
\n `\n}\n\nexport const getOptionItems = (d) => {\n const checkBoxData = { ...defaultCheckboxData, ...ChoiceListExtraClasses }\n const radioButtonData = { ...defaultRadioButtonData, ...ChoiceListExtraClasses }\n\n return d.hasRichOptions\n ? d.items.map(item => renderRichOption(d, item, radioButtonData, checkBoxData))\n : d.items.map(item => renderOption(d, item, radioButtonData, checkBoxData))\n}\n\nexport const ChoiceListTemplate = (d) => {\n return `\n\n ${d.label\n ? `${d.tooltip ? '
' : ''}\n \n ${d.tooltip ? `${TooltipTemplate({ ...defaultTooltipData, ...d.tooltip })}
` : ''}\n `\n : ''}\n
\n ${\n (d.showInSlider)\n ? ChoiceListOptionTemplateVerticalBoxed(d)\n : getOptionItems(d).join('')\n }\n
\n
\n
\n\n`\n}\n\nexport const ChoiceListOptionTemplateVerticalBoxed = (d) => {\n return SliderTemplate({\n id: 'choice-list--slider',\n extraClasses: 'c-choice-list--boxed-slider',\n center: true,\n stretch: true,\n luminosity: 'light',\n outerNavigation: true,\n withGradient: true,\n attributes: {\n 'data-loop': false,\n 'data-resolve-on-intersect': false,\n 'data-responsive': 'xs:1,sml:2,md:3',\n 'data-gutter': '12'\n },\n items: getOptionItems(d)\n })\n}\n","import Component from '../../../js/core/component/component'\nimport { defaultCheckboxData } from '../checkbox/c-checkbox.template'\nimport { defaultRadioButtonData } from '../radio-button/c-radio-button.template'\nimport { BtnTemplate } from '../btn/c-btn.template'\nimport { elementFromString } from '../../../js/document/html-helper'\nimport { registerComponent } from '../../../js/core/component/component-directory'\nimport domEventsHelper from '../../../js/document/dom-events-helper'\nimport { ChoicelistMessagesTemplate } from './c-choice-list__messages.template'\nimport registeredEvents from '../../../js/helpers/registered-events'\nimport { choiceListEvents } from '../../../js/document/event-types'\nimport { register } from '../../../js/document/namespace'\nimport { language } from '../../../js/user/locale-settings'\nimport { renderOption, renderRichOption } from './c-choice-list.template'\n\nconst globalLocales = register(`window.sundio.i18n.${language}.global`)\n\nconst attr = {\n track: 'data-track'\n}\n\nconst definition = {\n\n name: 'c-choice-list',\n props: [\n {\n name: 'method',\n type: 'string',\n attr: 'data-c-choice-list__method',\n allowedValues: [\n 'single',\n 'multiple',\n 'dynamic'\n ]\n },\n {\n name: 'variant',\n type: 'string',\n attr: 'data-c-choice-list__variant',\n allowedValues: [\n 'default',\n 'boxed'\n ],\n defaultValue: 'default'\n },\n {\n name: 'options',\n type: 'collection'\n },\n {\n name: 'label',\n type: 'string',\n defaultValue: ''\n },\n {\n name: 'required',\n type: 'boolean',\n attr: 'required',\n defaultValue: false\n },\n {\n name: 'showInSlider',\n type: 'boolean',\n attr: 'data-c-choice-list__show-in-slider',\n defaultValue: false\n }\n ]\n}\n\nconst ChoiceListExtraClasses = {\n extraClasses: 'c-choice-list__option '\n}\n\n/**\n * Choice list content\n *\n */\nexport default class ChoiceList extends Component {\n /**\n * Creates a new choice list behaviour, exposes an API to the element.\n *\n * @constructor\n * @param {HTMLElement} element - The HTML element.\n */\n constructor (element) {\n super(element, definition.name)\n this.silentErrors = true\n\n this.selectedValues = this.getSelectedValuesFromOptions()\n\n this.attachEvents()\n\n // Update all elements when method changes\n this.events.on('propChanged', (changes) => {\n if (changes.name === 'method') { this.setProp('options', this.props.options, { silent: true, forceUpdate: true }) }\n })\n\n this.messagesElement = this.element.querySelector('.c-choice-list__messages')\n this.messageRequired = null\n if (element.getAttribute('data-message-required')) {\n this.messageRequired = element.getAttribute('data-message-required')\n } else {\n this.messageRequired = this.getOptionsElement().getAttribute('data-message-required')\n }\n this.labelElement = this.element.querySelector('.c-choice-list__label')\n\n this.element[definition.name].getSelectedValues = (this.getSelectedValues).bind(this)\n this.element[definition.name].getReducedSelectedValuesFromOptions = (this.getReducedSelectedValuesFromOptions).bind(this)\n this.element[definition.name].disableComponent = (this.disableComponent).bind(this)\n this.element[definition.name].enableComponent = (this.enableComponent).bind(this)\n this.element[definition.name].validate = this.validate.bind(this)\n this.element[definition.name].enableErrors = this.enableErrors.bind(this)\n this.element[definition.name].styleValidity = this.styleValidity.bind(this)\n this.element[definition.name].getValidationMessages = this.getValidationMessages.bind(this)\n\n registeredEvents.registerComponentEvents(definition.name, this.events, {\n ...this.element.hasAttribute(attr.track) && { track: this.element.attributes[attr.track].value }\n })\n }\n\n attachEvents () {\n const events = []\n const items = this.element.querySelectorAll('.c-choice-list__option > .c-radio-button__input , .c-choice-list__option > .c-checkbox__input')\n items.forEach(item => {\n events.push([item, { change: (ev) => this.onChange(ev) }])\n })\n\n if (this.clearElement) {\n events.push([this.clearElement, { click: (ev) => this.onClear(ev) }])\n }\n domEventsHelper.attachEvents(events, definition.name)\n }\n\n getOptionsElement () {\n this.optionsElement = this.optionsElement || this.element.querySelector('.c-choice-list__options')\n return this.optionsElement\n }\n\n getShowInSlider () {\n return this.element.hasAttribute('data-c-choice-list__show-in-slider') || false\n }\n\n /**\n * Get the whole array of options from current DOM\n *\n * @return {RadioButtonData[]|CheckboxData[]} The parsed options data\n */\n getOptions () {\n const optionsSelector = this.getProp('method') === 'single' ? '.c-radio-button__children' : '.c-checkbox__children'\n const optionItemElements = this.getShowInSlider() ? [...this.getOptionsElement().querySelectorAll('.c-slider__item .c-choice-list__option-rich')] : [...this.getOptionsElement().children]\n\n return optionItemElements.filter(el => !el.matches(optionsSelector))\n .map(el => ChoiceList.getOptionDataFromOptionElement(el))\n }\n\n /**\n * Disable the component\n */\n disableComponent () {\n this.setProp('options', this.getProp('options').map((option) => ({ ...option, disabled: true })))\n }\n\n /**\n * Enable the component\n */\n enableComponent () {\n this.setProp('options', this.getProp('options').map((option) => ({ ...option, disabled: false })))\n }\n\n /**\n * Set the label text\n */\n setLabel (text) {\n if (this.labelElement) {\n this.labelElement.innerText = text\n }\n }\n\n /**\n * Get the label text\n */\n getLabel () {\n return this.labelElement ? this.labelElement.innerText : ''\n }\n\n setSliderOptions (input) {\n const mappedOptions = this.getProp('options').map((option) => ({ ...option, checked: (option.value === input.value) }))\n this.setProp('options', mappedOptions, { isSlider: true })\n\n const optionItemElements = [...this.getOptionsElement().querySelectorAll('.c-slider__item .c-choice-list__option-rich')]\n\n optionItemElements.forEach(optionItemElement => {\n const inputElement = optionItemElement.querySelector('input')\n if (inputElement) {\n if (inputElement.value === input.value && input.checked) {\n optionItemElement.classList.add('is-checked')\n } else {\n inputElement.checked = false\n optionItemElement.classList.remove('is-checked')\n }\n }\n })\n }\n\n /**\n * Set the array of options the choice-list will have\n *\n * @param {Object[]} items - Items to be set\n * @param {Object} options - Options object\n * @param {Boolean} options.silent - If true, does not fire events\n * @param {Boolean} options.isSlider - If true, does forceRepaint\n * @param {Object[]} oldItems - Old value of the items\n */\n setOptions (items, options, oldItems) {\n items = items || []\n if (!options.isSlider) {\n this._flushOptionElements()\n const itemsToElements = (items) => {\n const fragment = document.createDocumentFragment()\n items.forEach(item => {\n fragment.appendChild(this._newOptionElement(item))\n if (item.items) {\n const subFragment = elementFromString('
')\n subFragment.appendChild(itemsToElements(item.items))\n fragment.appendChild(subFragment)\n }\n })\n return fragment\n }\n this.getOptionsElement().appendChild(itemsToElements(items))\n }\n this.updateSelectedOptionsAndElements()\n this.selectedValues = this.getSelectedValuesFromOptions()\n if (options.isDynamic && this.props.method === 'single' && this.selectedValues.length > 0) {\n this.clearElement = this._clearButtonElement(globalLocales)\n this.element.appendChild(this.clearElement)\n }\n this.attachEvents()\n if (!options.silent) {\n this.events.emit('changeOptions', this.props.options, oldItems, this.props.method)\n }\n }\n\n /**\n * Get selected values\n *\n * @return {String[]} values\n */\n getSelectedValues () {\n return this.selectedValues\n }\n\n /**\n * Get selected values from options prop\n *\n * @return {String[]} values\n */\n getSelectedValuesFromOptions () {\n const getSelectedOptions = (options) => {\n const selectedValues = []\n options\n .forEach(option => {\n if (option.checked) selectedValues.push(option.value)\n if (option.items) selectedValues.push(...getSelectedOptions(option.items))\n })\n return selectedValues\n }\n return getSelectedOptions(this.props.options)\n }\n\n /**\n * Get reduced selected values from options prop\n * - Reduced means on nested choice lists, lower level values will be skipped if parent is selected\n *\n * @return {String[]} values\n */\n getReducedSelectedValuesFromOptions () {\n const getSelectedOptions = (options) => {\n const selectedValues = []\n options\n .forEach(option => {\n if (option.checked) selectedValues.push(option.value)\n if (!option.checked && option.items) selectedValues.push(...getSelectedOptions(option.items))\n })\n return selectedValues\n }\n return getSelectedOptions(this.props.options)\n }\n\n /**\n * Handle element change events\n */\n onChange (ev) {\n const input = ev.target\n this.events.emit('click', input)\n // Handle single choice list\n if (this.getProp('method') === 'single') {\n if (this.getShowInSlider()) {\n this.setSliderOptions(input)\n return\n }\n this.setProp('options', this.getProp('options').map((option) => ({ ...option, checked: (option.value === input.value) })))\n return\n }\n\n // Handle multiple (and nested) choice list\n const matchOption = this.findOptionByValue(input.value)\n if (!matchOption) return\n matchOption.checked = input.checked\n\n if (this.isNestedChoiceList()) {\n const getOptionLevel = (el) => {\n let level = 1\n do {\n if (el === this.getOptionsElement()) return level\n if (el.matches('.c-checkbox__children')) level++\n el = el.parentElement || el.parentNode\n } while (el !== null && el !== this.getOptionsElement() && el.nodeType === 1)\n return level\n }\n const optionLevel = getOptionLevel(input)\n const option = this.findOptionByValue(input.value)\n this.setEveryChildSelected(option, input.checked)\n if (optionLevel === 1) this.findElementByValue(input.value).classList.remove('is-half-checked')\n if (optionLevel > 1) this.updateSelectedOptionsAndElements()\n }\n\n this.selectedValues = this.getSelectedValuesFromOptions()\n this.events.emit('changeOptions', this.props.options)\n ev.stopPropagation()\n }\n\n onClear (ev) {\n this.props.options.forEach(option => { option.checked = false })\n this.selectedValues = this.getSelectedValuesFromOptions()\n this.events.emit('changeOptions', this.props.options)\n }\n\n isNestedChoiceList () {\n let nested = false\n this.props.options.forEach(option => {\n if (nested) return\n nested = !!option.items\n })\n return nested\n }\n\n setEveryChildSelected (option, checked = true) {\n if (!option.items) return\n option.items.forEach(subOption => {\n this.setOptionChecked(subOption, checked)\n if (subOption.items) this.setEveryChildSelected(subOption, checked)\n })\n }\n\n /**\n * Updates selected options and elements with nested values\n */\n updateSelectedOptionsAndElements () {\n const hasAnySelectedChild = (option) => {\n if (!option.items) return false\n let childSelected = false\n option.items.forEach(subOption => {\n if (childSelected) return\n if (subOption.checked) childSelected = true\n })\n return childSelected\n }\n const hasEverySelectedChild = (option) => {\n if (!option.items) return false\n let everySelected = true\n option.items.forEach(subOption => {\n if (!everySelected) return\n if (!subOption.checked) everySelected = false\n })\n return everySelected\n }\n\n this.props.options.forEach(option => {\n if (!option.items) return\n if (hasEverySelectedChild(option)) {\n this.setOptionChecked(option)\n return\n }\n this.setOptionHalfChecked(option, hasAnySelectedChild(option))\n })\n\n return this\n }\n\n /**\n * Set checked prop to certain option\n */\n setOptionChecked (option, checked = true) {\n if (option.checked === checked) return\n option.checked = checked\n this.findInputByValue(option.value).checked = checked\n if (this.isNestedChoiceList()) {\n this.findElementByValue(option.value)\n .classList.remove('is-half-checked')\n }\n }\n\n /**\n * Set checked prop to certain option\n */\n setOptionHalfChecked (option, halfChecked = true) {\n option.checked = false\n this.findInputByValue(option.value).checked = false\n this.findElementByValue(option.value)\n .classList[halfChecked ? 'add' : 'remove']('is-half-checked')\n }\n\n /**\n * Find an option by value\n */\n findOptionByValue (value) {\n const findOptionByValue = (value, options) => {\n let matchOption\n options.forEach(option => {\n if (option.value === value) matchOption = option\n if (!matchOption && option.items) matchOption = findOptionByValue(value, option.items)\n })\n return matchOption\n }\n return findOptionByValue(value, this.props.options)\n }\n\n /**\n * Find an element by value\n */\n findElementByValue (value) {\n const input = this.findInputByValue(value)\n return input\n ? input.closest('.c-checkbox, .c-radio-button')\n : input\n }\n\n /**\n * Find an input by value\n */\n findInputByValue (value) {\n return this.getOptionsElement().querySelector(`input[value=\"${value}\"]`)\n }\n\n /**\n * Flush all option elements for this component\n *\n * @return {ChoiceList} self instance\n */\n _flushOptionElements () {\n while (this.getOptionsElement().firstChild) {\n this.getOptionsElement().removeChild(this.getOptionsElement().firstChild)\n }\n if (this.messagesElement) {\n while (this.messagesElement.firstChild) {\n this.messagesElement.removeChild(this.messagesElement.firstChild)\n }\n }\n if (this.clearElement) {\n this.clearElement.remove()\n }\n this.element.classList.remove('has-error')\n return this\n }\n\n /**\n * Creates an option element from option data\n *\n * @param {RadioButtonData|CheckboxData} option - The data to create the view with\n *\n * @return {HTMLElement}\n *\n */\n _newOptionElement (option) {\n const checkBoxData = { ...defaultCheckboxData, ...ChoiceListExtraClasses }\n const radioButtonData = { ...defaultRadioButtonData, ...ChoiceListExtraClasses }\n const d = { method: this.props.method, id: this.element.id }\n\n return elementFromString(\n option.isRichOption\n ? renderRichOption(d, option, radioButtonData, checkBoxData)\n : renderOption(d, option, radioButtonData, checkBoxData)\n )\n }\n\n _clearButtonElement (locales) {\n return elementFromString(\n BtnTemplate({\n variant: 'flat-neutral',\n attributes: { 'data-c-choice-list-action': 'clear' },\n text: locales.clearFilter,\n extraClasses: 'c-choice-list__dynamic-clear-btn'\n }))\n }\n\n /**\n * Gets the option data from an existent element, RadioButton or Checkbox\n *\n * @param {HTMLElement} optionElement - The option element to get data from\n *\n * @return {RadioButtonData|CheckboxData}\n *\n */\n static getOptionDataFromOptionElement (optionElement) {\n const input = optionElement.querySelector('input')\n const count = optionElement.querySelector('.c-checkbox__count, .c-radio-button__count')\n const additionalText = optionElement.querySelector('.c-checkbox__additional-text, .c-radio-button__additional-text')\n const extraContent = optionElement.querySelector('[data-c-radio-button__extra-content]')\n const extraRichContentElement = optionElement.querySelector('[data-choice-list__option-rich-item__content]')\n const children = optionElement.nextElementSibling && optionElement.nextElementSibling.matches('.c-checkbox__children')\n const highlightText = optionElement.querySelector('.c-radio-button__highlight-text')\n const htmlContent = optionElement.querySelector('.c-checkbox__text-custom-content')\n const isRichOption = optionElement.classList.contains('c-choice-list__option-rich')\n\n if (!input.checked) { optionElement.classList.remove('is-checked') }\n\n return {\n id: input.id,\n name: input.name,\n value: input.value,\n text: input.dataset.text,\n checked: input.checked,\n disabled: optionElement.classList.contains('is-disabled'),\n hasChild: !!children,\n unresolved: optionElement.classList.contains('is-unresolved'),\n count: count ? parseInt(count.textContent) : undefined,\n additionalText: additionalText ? (additionalText.textContent || additionalText.innerHTML) : undefined,\n dataset: { ...input.dataset, text: undefined },\n highlightText: highlightText ? highlightText.textContent : undefined,\n items: children\n ? [...optionElement.nextElementSibling.children]\n .filter(el => !el.matches('.c-checkbox__children'))\n .map(el => ChoiceList.getOptionDataFromOptionElement(el))\n : undefined,\n validity: input.validity,\n messageRequired: input.getAttribute('data-message-required'),\n showExtraContentDiv: !!extraContent,\n extraClasses: !isRichOption ? [...optionElement.classList].join(' ') : '',\n extraClassesForRichOption: isRichOption ? [...optionElement.classList].join(' ') : '',\n isRichOption,\n extraRichContent: extraRichContentElement ? extraRichContentElement.innerHTML : undefined,\n html: htmlContent ? htmlContent.innerHTML : undefined\n }\n }\n\n enableErrors () {\n this.silentErrors = false\n }\n\n validate (validateOnly = false) {\n let isValid = true\n const elements = this.getOptions()\n if (this._isSingleSelectionChoceList()) {\n if (this.props.required) {\n const selectedElement = elements.find(element => element.checked)\n isValid = !!(selectedElement)\n }\n } else {\n const minlength = this.element.getAttribute('minlength')\n if (minlength) {\n isValid = parseInt(minlength) <= elements.filter(element => element.checked).length\n } else {\n elements.forEach(element => {\n const elementIsValid = element.validity.valid\n isValid = elementIsValid ? isValid : false\n })\n }\n }\n\n let messages = []\n if (!validateOnly && !this.silentErrors) {\n if (!isValid) {\n messages = this.getValidationMessages()\n }\n this.styleValidity(isValid, messages)\n }\n\n const firstOptionElement = this.getOptionsElement().querySelector('input')\n\n const validationObject = {\n isValid,\n errorMessages: messages,\n fieldName: firstOptionElement ? firstOptionElement.name : '',\n fieldType: firstOptionElement ? firstOptionElement.type : ''\n }\n if (!isValid) {\n this.events.emit(choiceListEvents.CHOICE_LIST_VALIDATION_ERROR, validationObject)\n }\n return validationObject\n }\n\n getValidationMessages () {\n const messages = []\n let messageRequired = ''\n if (this.props.method === 'single') {\n const firstOption = this.getOptions()[0]\n if (this.messageRequired) {\n messageRequired = this.messageRequired\n } else if (firstOption && firstOption.messageRequired) {\n messageRequired = firstOption.messageRequired\n }\n } else if (this.messageRequired) {\n messageRequired = this.messageRequired\n }\n messages.push(messageRequired)\n return messages\n }\n\n styleValidity (isValid, messages) {\n if (!isValid) {\n this.element.classList.add('has-error')\n Array.from(this.getOptionsElement().children).forEach(element => {\n element.classList.add('has-error')\n })\n if (this.messagesElement !== null && this.messagesElement !== undefined) {\n this.messagesElement.innerHTML = ChoicelistMessagesTemplate(messages)\n }\n } else {\n this.element.classList.remove('has-error')\n Array.from(this.getOptionsElement().children).forEach(element => {\n element.classList.remove('has-error')\n })\n if (this.messagesElement !== null && this.messagesElement !== undefined) {\n this.messagesElement.innerHTML = ''\n }\n }\n }\n\n _isSingleSelectionChoceList () {\n return this.props.method === 'single'\n }\n}\n\nregisterComponent(ChoiceList, definition.name, definition)\n","/**\n * The ChoicelistMessagesTemplate contains all the data needed to hydrate a messages component\n *\n * @typedef {Object} defaultChoicelistMessagesData\n *\n * @property {String} extraClasses - Extra classes if needed\n */\n\nexport const defaultChoicelistMessagesData = {\n extraClasses: ''\n}\n\nexport const ChoicelistMessagesTemplate = (d) => `\n ${d\n ? `\n ${d.map(message => `\n
\n \n ${message}\n
\n `).join('')}\n `\n : ''}\n`\n","/**\n * The CollapseData contains all data needed to hydrate a Collapse selector view\n *\n * @typedef {Object} CollapseData\n *\n * @property {String} id - Collapse's id\n * @property {String} html - HTML snippet\n * @property {String} extraClasses\n * @property {Number} maxItems - Number of items to be visible when collapsed\n * @property {Boolean} opened - If true, content is expanded\n * @property {Boolean} childrenWrapper\n * @property {Boolean} disabled\n * @property {Object} attributes - HTML attributes\n */\n\nimport { encodeAttributes } from '../../../js/helpers/string'\n\nexport const defaultCollapseData = {\n id: '',\n html: '',\n blockText: false,\n collapseHeight: null,\n extraClasses: '',\n maxItems: null,\n opened: false,\n childrenWrapper: null,\n disabled: false,\n collapseFrom: '',\n track: '',\n attributes: {}\n}\n\nexport const CollapseTemplate = (d) => {\n d = { ...defaultCollapseData, ...d }\n return `\n
0) ? `data-c-collapse__max-items=\"${d.maxItems}\"` : ''}\n ${d.childrenWrapper ? `data-c-collapse__children-wrapper=${d.childrenWrapper}` : ''}\n ${d.groupId ? `data-c-collapse__group-id=${d.groupId}` : ''}\n ${d.disabled ? 'data-c-collapse__disabled' : ''}\n ${d.track ? `data-track=${d.track}` : ''}\n ${d.attributes ? encodeAttributes(d.attributes) : ''}>\n ${d.html}\n
\n`\n}\n","/**\n * The CollapseTriggerTemplate contains all data needed to hydrate a Collapse selector view\n *\n * @typedef {Object} CollapseTriggerTemplate\n *\n * @property {String} id - Collapse Trigger's id\n * @property {String} action - Action to be done\n * @property {String} extraClasses - ExtraClasses if needed\n * @property {Number} smooth - Smooth\n * @property {Boolean} textPattern - Text pattern\n * @property {Boolean} text - Text shown\n * @property {Object} arrow - Arrow of collapse\n */\nimport { getTokenClass } from '../../../js/helpers/tokens'\n\n// Import tokens\nconst tokensShared = require('./data/c-collapse__tokens.json')['c-collapse']\nconst tokensBrand = (() => {\n try {\n return require(`../../../../brands/${WEBPACK_BRAND}/modules/components/collapse/data/c-collapse__tokens.json`)['c-collapse'] // eslint-disable-line\n } catch (error) {\n return {}\n }\n})()\nconst tokens = { ...tokensShared, ...tokensBrand }\n\nexport const defaultCollapseTriggerData = {\n id: '',\n action: '',\n extraClasses: '',\n smooth: false,\n textPattern: '',\n text: '',\n arrow: false,\n ariaLabel: ''\n}\n\nexport const CollapseTriggerTemplate = (d) => {\n d = { ...defaultCollapseTriggerData, ...d }\n return `\n \n`\n}\n","import Component from '../../../js/core/component/component'\nimport { registerComponent } from '../../../js/core/component/component-directory'\nimport * as utilsHelper from '../../../js/utils'\nimport domEventsHelper from '../../../js/document/dom-events-helper'\nimport { getStyle, cssTimeToMs, forceRepaint } from '../../../js/document/css'\nimport { smooth } from '../../../js/document/scroll'\nimport { collapseEvents } from '../../../js/document/event-types'\nimport registeredEvents from '../../../js/helpers/registered-events'\n\nconst classNames = {\n opened: 'in',\n opening: 'is-opening',\n closing: 'is-closing',\n checking: 'is-checking'\n}\n\nconst settings = {\n numberPattern: '{N}',\n resizeDelay: 200\n}\n\nconst definition = {\n name: 'c-collapse',\n props: [{\n name: 'open',\n attr: '.in',\n type: 'boolean',\n defaultValue: false\n }, {\n name: 'maxItems',\n type: 'number',\n attr: 'data-c-collapse__max-items',\n defaultValue: 0\n }, {\n name: 'childrenWrapper',\n type: 'string',\n attr: 'data-c-collapse__children-wrapper',\n defaultValue: null\n },\n {\n name: 'groupId',\n type: 'string',\n attr: 'data-c-collapse__group-id',\n defaultValue: null\n },\n {\n name: 'disabled',\n type: 'boolean',\n attr: 'data-c-collapse__disabled',\n defaultValue: false\n },\n {\n name: 'scrollable',\n type: 'boolean',\n attr: 'data-c-collapse__scrollable',\n defaultValue: false\n },\n {\n name: 'scrollableSafeMargin',\n type: 'number',\n attr: 'data-c-collapse__scrollable--safe-margin',\n defaultValue: 0\n },\n {\n name: 'collapseFrom',\n type: 'string',\n attr: 'data-c-collapse__from',\n defaultValue: null\n }],\n actionElements: true\n}\n\nconst attr = {\n track: 'data-track'\n}\n\n/**\n * Collapse content\n *\n */\nexport default class Collapse extends Component {\n /**\n * Creates a new Collapse behaviour, exposes an API to the element.\n *\n * @constructor\n * @param {HTMLElement} element - The HTML element.\n */\n constructor (element) {\n super(element, definition.name)\n this.childrenWrapperElement = this.getProp('childrenWrapper')\n ? this.element.querySelector(this.getProp('childrenWrapper'))\n : this.element\n\n this.collapseHeight = element.getAttribute('data-c-collapse__collapse-height')\n this.collapseFrom = this.getProp('collapseFrom')\n\n this._buildEvents()\n this._getActionElements()\n this._getGroupCollapseElements()\n this._showHiddenItems(false)\n this._updateActionElements()\n this._updateHeight()\n this._updateActionElementsVisibility()\n this._updateActionElementsDisabled()\n\n element[this.name].open = this.open.bind(this)\n element[this.name].close = this.close.bind(this)\n element[this.name].toggle = this.toggle.bind(this)\n element[this.name].update = this.update.bind(this)\n element[this.name].isOpened = this.isOpened.bind(this)\n\n this.events.on('propChanged', (changes) => {\n if (changes.name === 'disabled') { this._updateActionElementsDisabled() }\n })\n\n this.eventData = this._getEventData()\n registeredEvents.registerComponentEvents(definition.name, this.events, {\n ...this.element.hasAttribute(attr.track) && { track: this.element.attributes[attr.track].value }\n })\n }\n\n /**\n * Set if content expands or collapses\n *\n * @param {boolean} opc - True for expanding; False for collapsing\n * @param options - Object with silent property: boolean\n */\n setOpen (opc, options) { return opc ? this._open(options) : this._close(options) }\n\n /**\n * Set the max number of items to be shown when collapsed\n *\n * @param {number} value - Number of items\n */\n setMaxItems (value) {\n this._setMaxItemsAttribute(value)\n if (!this.getProp('open')) { this._showHiddenItems(false) }\n this._updateActionElements()\n this._updateActionElementsVisibility()\n }\n\n /**\n * Expands the content\n */\n open (options) { return this.setProp('open', true, options) }\n\n /**\n * Collapses the content\n */\n close (options) { return this.setProp('open', false, options) }\n\n /**\n * Expand or collapses the content\n */\n toggle (options) { return this.getProp('open') ? this.close(options) : this.open(options) }\n\n /**\n * Updates collapse component\n */\n update () {\n this._updateActionElementsVisibility()\n return this.setMaxItems(this.getProp('maxItems'))\n }\n\n /**\n * Return if collapse is opened\n *\n * @returns {Boolean}\n */\n isOpened () {\n return this.getProp('open')\n }\n\n _getEventData () {\n const eventData = {}\n if (this.element) {\n eventData.attr = this.element.dataset\n }\n return eventData\n }\n\n _open (options = { silent: false }) {\n if (!options.silent) {\n this.events.emit(collapseEvents.OPEN, this.eventData)\n }\n this._updateActionElements()\n this._closeGroupCollapses()\n\n const transitionTime = cssTimeToMs(getStyle(this.element, 'transition-duration'))\n this.element.style.transitionDuration = '0'\n this.element.style.maxHeight = this.element.clientHeight + 'px'\n this.element.style.transitionDuration = null\n this._showHiddenItems()\n this.element.style.maxHeight = this.element.scrollHeight + 'px'\n this.element.classList.add(classNames.opening)\n const isScrollable = this.getProp('scrollable')\n const safeMargin = this.getProp('scrollableSafeMargin')\n this._showAllItemsOfCollapse(isScrollable, safeMargin)\n\n if (this.currentTransition) window.clearTimeout(this.currentTransition)\n this.currentTransition = setTimeout(() => {\n this.element.style.maxHeight = null\n this._updateActionElementsVisibility()\n this.element.classList.add(classNames.opened)\n this.element.classList.remove(classNames.opening)\n if (!options.silent) {\n this.events.emit(collapseEvents.OPENED, this.eventData)\n }\n }, transitionTime)\n }\n\n _close (options = { silent: false }) {\n if (!options.silent) {\n this.events.emit(collapseEvents.CLOSE, this.eventData)\n }\n this._updateActionElements()\n\n const transitionTime = cssTimeToMs(getStyle(this.element, 'transition-duration'))\n\n // Collapsing method affects how the element technically collapses, so do it by case\n this.element.style.transitionDuration = '0'\n this.element.style.maxHeight = this.element.scrollHeight + 'px'\n this.element.style.transitionDuration = null\n forceRepaint(this.element)\n\n this._showHiddenItems(false)\n this.element.style.maxHeight = (this._isByItems() ? this.element.scrollHeight : (this.collapseHeight) || 0) + 'px'\n this._showHiddenItems()\n this.element.classList.remove(classNames.opened)\n this.element.classList.add(classNames.closing)\n\n // Once transition is done, remove transitioning class, restore natural height and emit closed event\n if (this.currentTransition) window.clearTimeout(this.currentTransition)\n this.currentTransition = setTimeout(() => {\n this._showHiddenItems(false)\n this.element.style.maxHeight = null\n this._updateActionElementsVisibility()\n this.element.classList.remove(classNames.closing)\n if (!options.silent) {\n this.events.emit(collapseEvents.CLOSED, this.eventData)\n }\n }, transitionTime)\n }\n\n _showAllItemsOfCollapse (scrollable = false, safeMargin) {\n if (scrollable) {\n const documentScrollingElement = document.scrollingElement || document.documentElement\n const collapsibleBoundingRect = this.element.getBoundingClientRect()\n let scroll\n if (documentScrollingElement.scrollTop + collapsibleBoundingRect.y + this.element.scrollHeight >= documentScrollingElement.scrollTop + documentScrollingElement.clientHeight) {\n scroll = documentScrollingElement.scrollTop + collapsibleBoundingRect.y - safeMargin\n } else {\n scroll = documentScrollingElement.scrollTop\n }\n smooth(documentScrollingElement, documentScrollingElement.scrollLeft, scroll)\n }\n return this\n }\n\n /**\n * Search for ActionElements on document.\n *\n * @returns {HTMLElement[]} Array of action elements.\n */\n _getActionElements () {\n this._actionElements = this._actionElements || (this.element.id\n ? Array.from(window.document.querySelectorAll(`[data-${this.name}__id=\"${this.element.id}\"]:not(.${this.name})`))\n : []\n )\n return this._actionElements\n }\n\n /**\n * Search for Collapse components of same group on document.\n *\n * @returns {Collapse[]} Array of collapse components.\n */\n _getGroupCollapseElements () {\n this._groupCollapseElements = this._groupCollapseElements || (this.getProp('groupId')\n ? Array.from(window.document.querySelectorAll(`[data-${this.name}__group-id=\"${this.getProp('groupId')}\"]`)).filter(element => element !== this.element)\n : null)\n return this._groupCollapseElements\n }\n\n _isByItems () { return (this.getProp('maxItems') > 0) }\n\n _setMaxItemsAttribute (value) {\n this.element[(value ? 'set' : 'remove') + 'Attribute'](`data-${this.name}__max-items`, value)\n }\n\n /**\n * Show more or less items when collapse depends on item's count\n *\n * @param {boolean} opc - if true, all items are shown\n */\n _showHiddenItems (opc = true) {\n const maxItems = this.getProp('maxItems')\n if (maxItems > 0) {\n Array.from(this.childrenWrapperElement.children)\n .forEach((element, index) => (element.style.display = (opc || (index < maxItems)) ? '' : 'none'))\n }\n }\n\n _updateHeight () {\n const finalFn = () => {\n this._updateActionElementsVisibility()\n this.element.classList.remove(classNames.checking)\n }\n if (this.getProp('open')) {\n this.element.classList.remove(classNames.opened)\n setTimeout(() => {\n this._height = this.element.clientHeight\n this.element.classList.add(classNames.opened)\n finalFn()\n }, this._transitionTime)\n } else { finalFn() }\n }\n\n _updateActionElements () {\n return this\n ._updateActionElementsState()\n ._updateActionElementsText()\n }\n\n _updateActionElementsDisabled () {\n this._actionElements.forEach(element => {\n element[this.getProp('disabled') ? 'setAttribute' : 'removeAttribute']('disabled', true)\n })\n return this\n }\n\n _updateActionElementsState () {\n this._actionElements.forEach(element => {\n element[this.getProp('open') ? 'setAttribute' : 'removeAttribute'](`data-${this.name}__opened`, true)\n })\n return this\n }\n\n _updateActionElementsVisibility () {\n let showActionElements = true\n const isBlockText = this.element.hasAttribute('data-c-collapse__block-text')\n if (this._isByItems()) {\n const hiddenItems = this.childrenWrapperElement.childElementCount - this.getProp('maxItems')\n showActionElements = (hiddenItems > 0)\n } else if (isBlockText && this.childrenWrapperElement.scrollHeight > 0) {\n if (this.childrenWrapperElement.scrollHeight < this.collapseHeight) {\n showActionElements = false\n this.element.classList.add('in')\n } else {\n this.element.style.minHeight = this.collapseHeight + 'px'\n }\n } else {\n if (!this.getProp('open')) { this._height = this.element.clientHeight }\n showActionElements = (this._height < this.element.scrollHeight)\n }\n this._actionElements.forEach((element) => { element.classList[showActionElements ? 'remove' : 'add']('is-hidden') })\n // Adds or remove the state class is-idle to in order to identify that the collapse is not needed at this moment\n if (!isBlockText) {\n this.element.classList[showActionElements ? 'remove' : 'add']('is-idle')\n }\n\n return this\n }\n\n _updateActionElementsText () {\n if (this._isByItems()) {\n const hiddenItems = this.childrenWrapperElement.childElementCount - this.getProp('maxItems')\n if (hiddenItems > 0) {\n this._actionElements.forEach((element) => {\n const textPattern = element.getAttribute(`data-${this.name}__text-pattern`)\n if (textPattern) element.innerText = textPattern.replace(settings.numberPattern, hiddenItems.toString())\n })\n }\n }\n return this\n }\n\n _closeGroupCollapses () {\n if (this._groupCollapseElements) {\n this._groupCollapseElements.forEach(element => {\n const component = element[this.name]\n if (component) {\n component.close()\n }\n })\n }\n }\n\n _buildEvents () {\n this._events = [[window, { resize: utilsHelper.debounce(() => this.update(), settings.resizeDelay) }]]\n domEventsHelper.attachEvents(this._events, definition.name)\n return this\n }\n}\n\nregisterComponent(Collapse, definition.name, definition)\n","import { getToken } from '../../../js/helpers/tokens'\nimport { ImgTemplate, defaultImgData } from '../img/c-img.template'\n\n/**\n * The CollectionItemData contains all data needed to hydrate a Collection Item view\n *\n * @typedef {Object} CollectionItemData\n *\n\n * @property {String} titleTag - Title tag\n * @property {String} collection - Collection\n * @property {String} title - Title\n * @property {String} subTitle - Subtitle\n * @property {String} link - Link\n * @property {String} image - Image\n * @property {String} extraClasses - Extra classes\n */\n\nimport { encodeAttributes } from '../../../js/helpers/string'\n\n// Import cross-component shared tokens.\nconst tokensCollections = (() => {\n try {\n return require(`../../../../brands/${WEBPACK_BRAND}/data/ds-tokens-shared.json`)['collections']; // eslint-disable-line\n } catch (error) {\n return {}\n }\n})()\n\nexport const defaultCollectionImageData = {\n sync: true,\n resolve: 3 // intersect\n}\n\nexport const defaultCollectionItemData = {\n titleTag: 'h5',\n collection: '',\n title: '',\n subTitle: '',\n link: null,\n image: {},\n extraClasses: '',\n attributes: {}\n}\n\nexport const CollectionItemTemplate = d => {\n d = { ...defaultCollectionItemData, ...d }\n const collectionId = d.collection ? d.collection.id : ''\n const collectionToken = getToken('collection', collectionId, tokensCollections) || undefined\n\n return `\n\n
\n ${ImgTemplate({ ...defaultImgData, ...defaultCollectionImageData, ...d.image })}\n
\n
\n <${d.titleTag} class=\"c-collection-row__item-title\">${d.title}\n ${d.subTitle ? `

${d.subTitle}

` : ''}\n
\n \n
\n
\n
\n`\n}\n","/**\n * The CollectionRawData contains all data needed to hydrate a Collection Row view\n *\n * @typedef {Object} CollectionRowData\n *\n\n * @property {String} html - HTML snippet\n * @property {String} expandedFrom - Expanded from\n * @property {Boolean} neutral\n * @property {Boolean} collectionLabelHidden\n * @property {String} tiledFrom - Tiled from\n * @property {String} extraClasses\n * @property {Object} attributes - HTML attributes\n */\n\nimport { encodeAttributes } from '../../../js/helpers/string'\n\nexport const defaultCollectionRowData = {\n html: '',\n expandedFrom: '',\n neutral: false,\n collectionLabelHidden: false,\n tiledFrom: '',\n extraClasses: '',\n attributes: {}\n}\n\nexport const CollectionRowTemplate = d => {\n d = { ...defaultCollectionRowData, ...d }\n return `\n
\n ${d.html}\n
\n`\n}\n","/**\n * The Dropdown Single Option contains all data needed to hydrate a Dropdown Single\n *\n * @typedef {Object} DateSelectorData\n *\n * @property {String} [extraClasses]\n * @property {Boolean} [blockModifier]\n * @property {DateString} [date] - Current date\n * @property {DateString} [minDate] - Min date selectable\n * @property {DateString} [maxDate] - Max date selectable\n * @property {Boolean} [disabled]\n * @property {String[]} [validations] - Validations to bear in mind (isReal, isInBounds)\n * @property {DateString} [monthType] - Short (Jan, Feb...) or default (January, february)\n * @property {Boolean} [hiddenMainLabel] - True if label should be hidden\n * @property {String} [mainLabel]\n * @property {Object} [attributes]\n * @property {Object} [dropdownConfig]\n * @property {String} [dropdownConfig.placeholder]\n * @property {Boolean} [dropdownConfig.showDefaultOption]\n * @property {Boolean} [dropdownConfig.state]\n * @property {Boolean} [dropdownConfig.highlighted]\n * @property {Boolean} [dropdownConfig.hiddenLabel]\n * @property {String} [dropdownConfig.hasClearButton]\n * @property {Boolean} [dropdownConfig.icon]\n * @property {Object} [tooltip] - data for the tooltip label\n */\n\nimport uid from '../../../js/core/uid'\nimport { DropdownTemplate } from '../dropdown/c-dropdown.template'\nimport { TooltipTemplate, defaultTooltipData } from '../../components/tooltip/c-tooltip.template'\nimport { encodeAttributes } from '../../../js/helpers/string'\n\nimport { language } from '../../../js/user/locale-settings'\nimport { register } from '../../../js/document/namespace'\nimport { DateSelectorMessagesTemplate } from './c-date-selector__messages.template'\nconst componentLocales = register(`window.sundio.i18n.${language}.dateSelector`)\n\nexport const defaultDateSelectorData = {\n id: null,\n extraClasses: '',\n blockModifier: false,\n date: null,\n minDate: null,\n maxDate: null,\n disabled: false,\n validations: ['isReal', 'isInBounds'],\n monthType: 'default',\n hiddenMainLabel: false,\n mainLabel: '',\n dayPlaceholder: componentLocales.dayPlaceholder,\n monthPlaceholder: componentLocales.monthPlaceholder,\n yearPlaceholder: componentLocales.yearPlaceholder,\n attributes: {},\n messageInvalid: '',\n messageRequired: '',\n messageOutOfBounds: '',\n dropdownConfig: {\n placeholder: '',\n showDefaultOption: true,\n state: '',\n highlighted: false,\n hiddenLabel: true,\n hasClearButton: false,\n icon: false,\n clearButtonAttributes: {\n 'data-c-dropdown__clear': ''\n }\n },\n hideRequiredSymbol: false,\n tooltip: null\n}\n\nexport const DateSelectorTemplate = (d) => {\n d = { ...defaultDateSelectorData, ...d }\n d.id = d.id || 'my-date-selector' + uid()\n return `
\n\n ${d.hiddenMainLabel\n ? ``\n : `${d.mainLabel\n ? `${d.tooltip ? '
' : ''}\n \n ${d.tooltip ? `${TooltipTemplate({ ...defaultTooltipData, ...d.tooltip })}
` : ''}`\n : ''}\n `}\n\n
\n ${DropdownTemplate({\n ...d.dropdownConfig,\n id: `${d.id}__day`,\n placeholder: d.dayPlaceholder,\n disabled: d.disabled,\n attributes: { 'data-c-date-selector__type': 'day' }\n })}\n ${DropdownTemplate({\n ...d.dropdownConfig,\n id: `${d.id}__month`,\n placeholder: d.monthPlaceholder,\n disabled: d.disabled,\n attributes: { 'data-c-date-selector__type': 'month' }\n })}\n ${DropdownTemplate({\n ...d.dropdownConfig,\n id: `${d.id}__year`,\n placeholder: d.yearPlaceholder,\n disabled: d.disabled,\n attributes: { 'data-c-date-selector__type': 'year' }\n })}\n
\n
\n ${DateSelectorMessagesTemplate(d.messages)}\n
\n
`\n}\n","/**\n * The DateSelectorMessagesTemplate contains all the data needed to hydrate a date selector messages component\n *\n * @typedef {Object} defaultDateSelectorMessagesData\n *\n * @property {String} extraClasses - Extra classes if needed\n */\n\nexport const defaultDateSelectorMessagesData = {\n extraClasses: ''\n}\n\nexport const DateSelectorMessagesTemplate = d => {\n return d\n ? d.map(message => `\n
\n \n ${message}\n
`\n ).join('')\n : ''\n}\n","\nexport const da = {\n dayPlaceholder: 'Dag',\n monthPlaceholder: 'Måned',\n yearPlaceholder: 'År'\n}\n\nexport const de = {\n dayPlaceholder: 'Tag',\n monthPlaceholder: 'Monat',\n yearPlaceholder: 'Jahr'\n}\n\nexport const en = {\n dayPlaceholder: 'Day',\n monthPlaceholder: 'Month',\n yearPlaceholder: 'Year'\n}\n\nexport const nb = {\n dayPlaceholder: 'Dag',\n monthPlaceholder: 'Måned',\n yearPlaceholder: 'År'\n}\nexport const fr = {\n dayPlaceholder: 'Jour',\n monthPlaceholder: 'Mois',\n yearPlaceholder: 'Année'\n}\n\nexport const nl = {\n dayPlaceholder: 'Dag',\n monthPlaceholder: 'Maand',\n yearPlaceholder: 'Jaar'\n}\n\nexport const sv = {\n dayPlaceholder: 'Dag',\n monthPlaceholder: 'Månad',\n yearPlaceholder: 'År'\n}\n","import Component from '../../../js/core/component/component'\r\nimport { registerComponent } from '../../../js/core/component/component-directory'\r\nimport {\r\n areDatesInSameMonth,\r\n areDatesInSameYear,\r\n dateToString,\r\n isInvalidDate,\r\n isValidDateString,\r\n createDate,\r\n noTimeZoneDate\r\n} from '../../../js/helpers/dates'\r\nimport { range } from '../../../js/utils'\r\nimport { register } from '../../../js/document/namespace'\r\nimport { language } from '../../../js/user/locale-settings'\r\nimport { fromCamelCase } from '../../../js/helpers/string'\r\nimport domEventsHelper from '../../../js/document/dom-events-helper'\r\nimport { DateSelectorMessagesTemplate } from './c-date-selector__messages.template'\r\nconst dateLocales = register(`window.sundio.i18n.${language}.dates`)\r\nconst componentLocales = register(`window.sundio.i18n.${language}.dateSelector`)\r\n\r\n// Ensure other child component APIs are loaded on time\r\nrequire('../dropdown/main')\r\n\r\nconst classNames = { dropdownElement: 'c-date-selector__' }\r\nconst monthNames = {\r\n default: dateLocales.months,\r\n short: dateLocales.months_short\r\n}\r\n\r\nconst today = new Date()\r\n\r\n/**\r\n * Props & State\r\n *\r\n * There are two types of data that control a component: props and state.\r\n * Props are set on instantiation and they are fixed throughout the lifetime\r\n * of a component. For data that is going to change, we have to use state.\r\n */\r\n\r\nconst definition = {\r\n\r\n name: 'c-date-selector',\r\n\r\n /**\r\n * Props\r\n *\r\n * Most components can be customized with different parameters when they\r\n * are created. These creation parameters are called props.\r\n *\r\n * This lets you make a single component that is used in many different\r\n * places in your app, with slightly different properties in each place.\r\n *\r\n *\r\n */\r\n props: [\r\n {\r\n name: 'date',\r\n type: 'string',\r\n attr: 'data-c-date-selector__date'\r\n }, {\r\n name: 'rawDate',\r\n type: 'string'\r\n }, {\r\n name: 'validations',\r\n type: 'array',\r\n attr: 'data-c-date-selector__validations',\r\n defaultValue: ['isReal', 'isInBounds']\r\n }, {\r\n name: 'minDate',\r\n type: 'string',\r\n attr: 'data-c-date-selector__min-date',\r\n defaultValue: dateToString(new Date(today.getFullYear() - 100, today.getMonth(), today.getDate()))\r\n }, {\r\n name: 'maxDate',\r\n type: 'string',\r\n attr: 'data-c-date-selector__max-date',\r\n defaultValue: dateToString(today)\r\n }, {\r\n name: 'monthType',\r\n type: 'string',\r\n attr: 'data-c-date-selector__month-type',\r\n defaultValue: 'default',\r\n allowedValues: [\r\n 'default',\r\n 'short'\r\n ]\r\n },\r\n {\r\n name: 'disabled',\r\n type: 'boolean',\r\n attr: '.is-disabled',\r\n defaultValue: false\r\n },\r\n {\r\n name: 'state',\r\n type: 'string',\r\n attr: '.has-',\r\n allowedValues: [\r\n '',\r\n 'error'\r\n ],\r\n defaultValue: ''\r\n }\r\n ]\r\n}\r\n\r\n/**\r\n * Dropdown content\r\n *\r\n */\r\nexport default class DateSelector extends Component {\r\n /**\r\n * Creates a new date selector behaviour, exposes an API to the element.\r\n *\r\n * @constructor\r\n * @param {HTMLElement} element - The HTML element.\r\n */\r\n constructor (element) {\r\n super(element, definition.name)\r\n this.dateConfig = {}\r\n this.silentErrors = true\r\n this._init()\r\n\r\n this.element[definition.name].validate = (this.validate).bind(this)\r\n this.element[definition.name].getShownDate = (this.getShownDate).bind(this)\r\n this.element[definition.name].enableErrors = this.enableErrors.bind(this)\r\n\r\n this.validationErrors = {\r\n isReal: this.element.getAttribute('data-message-invalid'),\r\n isInBounds: this.element.getAttribute('data-message-out-of-bounds') ? this.element.getAttribute('data-message-out-of-bounds') : dateLocales.isOutOfBounds,\r\n isValid: this.element.getAttribute('data-message-required')\r\n }\r\n\r\n this._attachMonthEventListeners()\r\n }\r\n\r\n /**\r\n * Checks first if date is valid and within min-max boundaries\r\n *\r\n * @param {string} dateString - Date in format 'YYYY-MM-DD'\r\n */\r\n checkDate (dateString) {\r\n const property = this._getPropInstance('date')\r\n if (!property.isAllowedValue.bind(property)(dateString)) { return false }\r\n const isNullable = dateString == null || dateString === ''\r\n const { isValid, isInBounds } = this._validateAll(dateString)\r\n if (!isNullable) {\r\n if (!isValid) {\r\n console.warn('The date is invalid')\r\n } else if (!isInBounds) { console.warn('The date cannot be out of min-max date boundaries') }\r\n }\r\n return isNullable || (isValid && isInBounds)\r\n }\r\n\r\n /**\r\n * Set date for the date-selector component\r\n *\r\n * @param {DateString|Date} dateString - Following built-in new Date(dateString) behaviour\r\n * @param {Object} options - Options object\r\n * @param {Boolean} options.justCheck - If true, does not set the dropdowns (case when the user sets it)\r\n */\r\n setDate (dateString, options = {}) {\r\n const date = dateString ? createDate(dateString) : noTimeZoneDate('') // Creates invalid date to set dropdowns to blank\r\n this._setDatePropAndAttribute('date', this._parseDate(date))\r\n this.setProp('rawDate', dateString)\r\n\r\n if (!options.justCheck) {\r\n const [day, month, year] = [date.getDate(), date.getMonth(), date.getFullYear()]\r\n const dateDropdowns = this._getDateDropdowns()\r\n const valueToStringOrEmpty = (value) => isNaN(value) ? '' : value.toString()\r\n dateDropdowns.day.setProp('value', valueToStringOrEmpty(day), { silent: true })\r\n dateDropdowns.month.setProp('value', valueToStringOrEmpty(month), { silent: true })\r\n dateDropdowns.year.setProp('value', valueToStringOrEmpty(year), { silent: true })\r\n this._setValidationState()\r\n }\r\n }\r\n\r\n /**\r\n * Set disabled property for the dropdowns component\r\n *\r\n * @param {Boolean} isDisabled - If true, the dropdowns will be disabled\r\n */\r\n\r\n setDisabled (isDisabled = false) {\r\n this.props.disabled = isDisabled\r\n const dateDropdowns = this._getDateDropdowns()\r\n dateDropdowns.day.setProp('disabled', isDisabled)\r\n dateDropdowns.month.setProp('disabled', isDisabled)\r\n dateDropdowns.year.setProp('disabled', isDisabled)\r\n }\r\n\r\n /**\r\n * Set minimum date for the date-selector component\r\n *\r\n * @param {string|Date} dateString - if incorrect, minimum computable date\r\n */\r\n setMinDate (dateString = this.props.minDate) {\r\n this._setDateConfig('minDate', dateString)\r\n }\r\n\r\n /**\r\n * Set maximum date for the date-selector component\r\n *\r\n * @param {string|Date} dateString - if incorrect, today's date\r\n */\r\n setMaxDate (dateString = this.props.maxDate) {\r\n this._setDateConfig('maxDate', dateString)\r\n }\r\n\r\n /**\r\n * Set month type (short or long month name)\r\n *\r\n * @param {string} opc - short or default\r\n */\r\n setMonthType (opc) {\r\n this._setDatePropAndAttribute('monthType', opc)\r\n const dateDropdowns = this._getDateDropdowns()\r\n const options = [...dateDropdowns.month.getProp('options')]\r\n options.forEach((monthItem) => (monthItem.text = (monthNames[opc][monthItem.value] || monthItem.text)))\r\n dateDropdowns.month.setProp('options', options)\r\n }\r\n\r\n enableErrors () {\r\n this.silentErrors = false\r\n }\r\n\r\n /**\r\n * Validates the current date, adding error validation if date is invalid\r\n *\r\n * @param {Object} validateOnly - If true, we only validate\r\n * @return {boolean} - true if Date is valid\r\n */\r\n\r\n validate (validateOnly = false) {\r\n const validations = this._validateAll()\r\n const isRequired = this.element.hasAttribute('required')\r\n const isEmpty = this._fullDateIsEmpty()\r\n const isValidDate = (!isRequired && isEmpty) || Object.values(validations).every((item) => item)\r\n let messages = []\r\n let messageTypes = []\r\n if ((!validateOnly && !this.silentErrors) || this.isErrorState) {\r\n this._setValidationState(isValidDate ? '' : 'error')\r\n messages = this._setValidationErrors(validations)\r\n messageTypes = this._getValidationMessageTypes(validations)\r\n }\r\n\r\n const dateDropdowns = this._getDateDropdowns()\r\n return {\r\n isValid: isValidDate,\r\n errorMessages: messages,\r\n errorTypes: messageTypes,\r\n fieldName: dateDropdowns.day.element.querySelector('select').name + '-' +\r\n dateDropdowns.month.element.querySelector('select').name + '-' +\r\n dateDropdowns.year.element.querySelector('select').name\r\n }\r\n }\r\n\r\n /**\r\n * Returns the current date shown in date selector (even if date is not within boundaries)\r\n *\r\n * @return {DateString}\r\n */\r\n getShownDate () {\r\n return dateToString(createDate(this._getFullDateString()))\r\n }\r\n\r\n /**\r\n * Check if date is valid, within min-max boundaries and real date (Unreal date example: 31/02/2010)\r\n *\r\n * @param {DateString} [dateString] - if not specified, we take the component's date\r\n *\r\n * @return {Object} - with the different validations\r\n */\r\n _validateAll (dateString = this._getFullDateString()) {\r\n const date = noTimeZoneDate(dateString || '')\r\n const validations = this.getProp('validations').reduce((obj, value) => ({ ...obj, [value]: true }), {})\r\n const isRequired = this.element.hasAttribute('required')\r\n const isEmpty = this._fullDateIsEmpty()\r\n return {\r\n isValid: (!isRequired && isEmpty) || !isInvalidDate(date),\r\n isInBounds: (!isRequired && isEmpty) || !validations.isInBounds || ((date >= this.dateConfig.minDate) && (date <= this.dateConfig.maxDate)),\r\n isReal: (!isRequired && isEmpty) || !validations.isReal || isValidDateString(dateString)\r\n }\r\n }\r\n\r\n _init () {\r\n this._normalizeDates()\r\n this._setListeners()\r\n if (this.props.date) {\r\n const date = this.props.date\r\n this.props.date = null\r\n this.setProp('date', date)\r\n }\r\n }\r\n\r\n _parseDate (date) {\r\n return (date instanceof Date) ? dateToString(date) : (date || '')\r\n }\r\n\r\n _setValidationErrors (validations) {\r\n let validationType = Object.entries(validations).find(([type, isValid]) => !isValid)\r\n validationType = validationType && validationType[0]\r\n const errorElement = this._getErrorElement()\r\n errorElement.innerHTML = ''\r\n const messages = []\r\n if (validationType !== undefined) {\r\n const errorMessage = this._getValidationMessages(validationType)\r\n if (errorMessage) {\r\n if (this.errorElement !== null && this.errorElement !== undefined) {\r\n this.errorElement.innerHTML = DateSelectorMessagesTemplate(errorMessage)\r\n }\r\n }\r\n }\r\n return messages\r\n }\r\n\r\n _getValidationMessages (validationType) {\r\n const messages = []\r\n if (validationType === 'isReal' && this.validationErrors?.isReal) {\r\n messages.push(this.validationErrors.isReal)\r\n }\r\n if (validationType === 'isInBounds' && this.validationErrors?.isInBounds) {\r\n messages.push(this.validationErrors.isInBounds)\r\n }\r\n if (validationType === 'isValid' && this.validationErrors?.isValid) {\r\n messages.push(this.validationErrors.isValid)\r\n }\r\n return messages\r\n }\r\n\r\n _getValidationMessageTypes (validations) {\r\n const messageTypes = []\r\n let validationType = Object.entries(validations).find(([type, isValid]) => !isValid)\r\n validationType = validationType && validationType[0]\r\n if (validationType) {\r\n messageTypes.push(validationType)\r\n }\r\n return messageTypes\r\n }\r\n\r\n _setDatePropAndAttribute (propName, value) {\r\n this.props[propName] = value\r\n this.element.setAttribute(`data-${classNames.dropdownElement}${fromCamelCase(propName)}`, value)\r\n }\r\n\r\n _setDateConfig (opc, dateString) {\r\n const dateTemp = noTimeZoneDate(dateString)\r\n // If invalid date, we set min/max date to its minimun/maximun, respectively\r\n const date = (dateString == null || isInvalidDate(dateTemp))\r\n ? noTimeZoneDate(opc === 'minDate' ? 0 : undefined)\r\n : dateTemp\r\n\r\n this._checkDates({ ...this.dateConfig, [opc]: date }, opc)\r\n this.dateConfig[opc] = date\r\n this._setDatePropAndAttribute(opc, this._parseDate(date))\r\n this._setDropdownPlaceholders()\r\n this._populateDropdowns()\r\n }\r\n\r\n _getFullDateString () {\r\n const dateDropdowns = this._getDateDropdowns()\r\n const monthDropdownValue = dateDropdowns.month.getProp('value')\r\n const incrementNumberForRealMonth = 1\r\n const [day, month, year] = [dateDropdowns.day.getProp('value'),\r\n monthDropdownValue ? (Number(monthDropdownValue) + incrementNumberForRealMonth) : '',\r\n dateDropdowns.year.getProp('value')]\r\n\r\n const isNumberNotNull = (value) => (value === 0 || value)\r\n return (isNumberNotNull(day) && isNumberNotNull(month) && isNumberNotNull(year)) ? `${year}-${month}-${day}` : null\r\n }\r\n\r\n _fullDateIsEmpty () {\r\n const dateDropdowns = this._getDateDropdowns()\r\n const day = dateDropdowns.day.getProp('value')\r\n const month = dateDropdowns.month.getProp('value')\r\n const year = dateDropdowns.year.getProp('value')\r\n return day === '' && month === '' && year === ''\r\n }\r\n\r\n _getDateDropdowns () {\r\n this.dateDropdowns = this.dateDropdowns ||\r\n Array.from(this.element.querySelectorAll(`[data-${classNames.dropdownElement}type]`))\r\n .map((dropdownElement) => [dropdownElement.getAttribute(`data-${classNames.dropdownElement}type`), dropdownElement])\r\n .reduce((obj, [type, dropdownElement]) => ({ ...obj, [type]: dropdownElement['c-dropdown'] }), {})\r\n return this.dateDropdowns\r\n }\r\n\r\n _getErrorElement () {\r\n this.errorElement = this.errorElement || this.element.querySelector('.c-date-selector__messages')\r\n return this.errorElement\r\n }\r\n\r\n _normalizeDates () {\r\n this.setMinDate()\r\n this.setMaxDate()\r\n }\r\n\r\n _checkDates (config = this.dateConfig, opc) {\r\n const { minDate, maxDate, date } = config\r\n if (minDate && maxDate && (minDate > maxDate)) {\r\n const dateToChange = (opc === 'maxDate') ? 'minDate' : 'maxDate'\r\n console.warn(`The minDate cannot be greater than the maxDate, setting ${dateToChange} to ${opc}`)\r\n this.setProp(dateToChange, this.getProp(opc))\r\n } else if (date && ((minDate && date < minDate) || (maxDate && date > maxDate))) {\r\n console.warn(`The date cannot be out of min-max date boundaries, setting date to ${opc}`)\r\n }\r\n }\r\n\r\n _setListeners () {\r\n Object.values(this._getDateDropdowns())\r\n .forEach((dropdownComponent) => dropdownComponent.events.on('propChanged', (changes) => {\r\n if (changes.name === 'value') {\r\n const fullDateString = this._getFullDateString()\r\n const isValid = this.validate().isValid\r\n this.setProp('date', isValid ? fullDateString : '', { justCheck: true })\r\n }\r\n }))\r\n }\r\n\r\n _setValidationState (stateValue) {\r\n this.isErrorState = !!stateValue\r\n this.setProp('state', stateValue || '')\r\n }\r\n\r\n _populateDropdowns () {\r\n const { minDate, maxDate } = this.dateConfig\r\n\r\n if (minDate && maxDate) {\r\n let days = range(31)\r\n let months = range(0, 11)\r\n const years = range(minDate.getFullYear(), maxDate.getFullYear()).reverse()\r\n if (areDatesInSameYear(minDate, maxDate)) {\r\n months = range(minDate.getMonth(), maxDate.getMonth())\r\n if (areDatesInSameMonth(minDate, maxDate)) { days = range(minDate.getDate(), maxDate.getDate()) }\r\n }\r\n const defaultEmptyOption = { text: '', value: '', default: true, disabled: true }\r\n const dateDropdowns = this._getDateDropdowns()\r\n dateDropdowns.day.setProp('options', [defaultEmptyOption, ...days.map((value) => ({ value: value.toString(), text: value }))])\r\n dateDropdowns.month.setProp('options', [defaultEmptyOption, ...months.map((value) => ({ value: value.toString(), text: monthNames[this.getProp('monthType')][value] }))])\r\n dateDropdowns.year.setProp('options', [defaultEmptyOption, ...years.map((value) => ({ value: value.toString(), text: value }))])\r\n }\r\n }\r\n\r\n _setDropdownPlaceholders () {\r\n const dateDropdowns = this._getDateDropdowns()\r\n const [dayPlaceholder, monthPlaceholder, yearPlaceholder] = [\r\n dateDropdowns.day.getProp('placeholder'),\r\n dateDropdowns.month.getProp('placeholder'),\r\n dateDropdowns.year.getProp('placeholder')\r\n ]\r\n\r\n dayPlaceholder || dateDropdowns.day.setProp('placeholder', componentLocales.dayPlaceholder)\r\n monthPlaceholder || dateDropdowns.month.setProp('placeholder', componentLocales.monthPlaceholder)\r\n yearPlaceholder || dateDropdowns.year.setProp('placeholder', componentLocales.yearPlaceholder)\r\n }\r\n\r\n _attachMonthEventListeners () {\r\n this.buffer = []\r\n this.lastKeyTime = Date.now()\r\n\r\n const monthDropdown = this._getDateDropdowns().month\r\n\r\n domEventsHelper.attachEvents([\r\n [monthDropdown.element, { keydown: (ev) => this.onKeyDown(ev, monthDropdown) }]\r\n ], definition.name)\r\n }\r\n\r\n onKeyDown (ev, monthDropdown) {\r\n const charList = '0123456789'\r\n const key = ev.key.toLowerCase()\r\n\r\n // we are only interested in numeric keys\r\n if (charList.indexOf(key) === -1) return\r\n\r\n const currentTime = Date.now()\r\n if (currentTime - this.lastKeyTime > 1000) {\r\n this.buffer = []\r\n }\r\n\r\n this.buffer.push(key)\r\n this.lastKeyTime = currentTime\r\n const decrementNumberForMonth = 1\r\n const valueForMonthOption = Number(this.buffer.join('')) > 0 ? (Number(this.buffer.join('')) - decrementNumberForMonth).toString() : Number(0).toString()\r\n\r\n const optionCandidate = this.buffer.join('') && valueForMonthOption >= 0 ? monthDropdown.element.querySelector(`[value=\"${valueForMonthOption}\"]`) : monthDropdown.element.firstChild\r\n if (optionCandidate) {\r\n monthDropdown.setProp('value', valueForMonthOption)\r\n }\r\n ev.stopPropagation()\r\n ev.preventDefault()\r\n }\r\n}\r\n\r\nregisterComponent(DateSelector, definition.name, definition)\r\n","/**\n * C-Dropdown Helper for the Dropdown template\n */\n\n/**\n *\n * @param {options} options from dropdown\n * @returns {boolean} if any option is selected\n */\nexport const isAnyOptionSelected = function (options) {\n let anySelected = false\n if (options) {\n anySelected = options.some(o => o !== null && o.selected)\n }\n return anySelected\n}\n\n/**\n *\n * @param {option} option from dropdown\n * @returns {String} content with the rendered items\n */\nexport const selectedItemSingle = function (option) {\n return `${option.text ? option.text : ''}`\n}\n\n/**\n *\n * @param {options} options from dropdown\n * @returns {String} content with the rendered items\n */\nexport const renderSelectedItemsCompact = function (options) {\n let selectedItems = ''\n if (options) {\n options.forEach(option => {\n if (option.selected) {\n selectedItems += selectedItemSingle(option)\n }\n if (option.nestedOptions != null && option.nestedOptions.some(n => n.selected)) {\n option.nestedOptions.forEach(n => {\n if (n.selected) {\n selectedItems += selectedItemSingle(n)\n }\n })\n }\n })\n }\n return selectedItems\n}\n\n/**\n *\n * @param {options} option from dropdown (item)\n * @returns {bool} if item is half checked\n */\nexport const isHalfChecked = function (option) {\n let isHalfChecked = false\n if (option.selected && option.nestedOptions != null && option.nestedOptions.some(n => n.selected) && !option.NestedOptions.every(n => n.selected)) {\n isHalfChecked = true\n }\n return isHalfChecked\n}\n\n/**\n *\n * @param {options} dropdownId dropdown's id\n * @param {options} indexParent index from the parent loop it is in\n * @param {options} options from dropdown\n * @returns {Array} All content in a item nested option\n */\nexport const mapNestedOptionsToCheckboxViewModels = function (dropdownId, indexParent, options) {\n const nestedOptions = []\n if (options) {\n let index = 0\n options.forEach(option => {\n const item = {\n value: option.value,\n text: option.text,\n disabled: option.disabled,\n checked: option.selected,\n id: dropdownId + 'choice-list' + indexParent + 'nested-item' + index,\n name: dropdownId + 'choice-list' + indexParent + 'nested-items',\n count: option.count\n }\n nestedOptions.push(item)\n index++\n })\n }\n return nestedOptions\n}\n\n/**\n *\n * @param {options} dropdownId dropdown's id\n * @param {options} options from dropdown\n * @returns {Array} All the items in the choicelist\n */\nexport const buildChoiceListItem = function (options, dropdownId) {\n const choiceListItems = []\n if (options) {\n let index = 0\n options.forEach(option => {\n const item = {\n value: option.value,\n text: option.text,\n disabled: option.disabled,\n checked: option.selected,\n id: dropdownId + '-' + index,\n name: dropdownId + '-choice-list',\n items: mapNestedOptionsToCheckboxViewModels(dropdownId + '-nested', index, option.nestedOptions),\n isHalfChecked: isHalfChecked(option),\n count: option.count\n }\n choiceListItems.push(item)\n index++\n })\n }\n return choiceListItems\n}\n","/**\n * The Dropdown Multiple Option contains all data needed to hydrate a Dropdown Multiple\n *\n * @typedef {Object} DropdownData\n *\n * @property {String} [id] Form element id\n * @property {String} [placeholder] Form element placeholder\n * @property {Boolean} [icon]\n * @property {Object} [attributes] Extra attributes to be shown\n */\n\nimport { ChipTemplate } from '../chip/c-chip.template'\nimport { FloatingBoxTemplate } from '../floating-box/c-floating-box.template'\nimport { renderSelectedItemsCompact, buildChoiceListItem } from './c-dropdown_helper'\nimport { FloatingBoxBodyTemplate } from '../floating-box/c-floating-box__body.template'\nimport { BtnTemplate, defaultButtonData } from '../../components/btn/c-btn.template'\nimport { FloatingBoxFooterTemplate } from '../floating-box/c-floating-box__footer.template'\nimport { ChoiceListTemplate } from '../choice-list/c-choice-list.template'\n\nexport const defaultDropdownMultipleData = {\n id: '',\n placeholder: '',\n variant: 'default',\n icon: false,\n options: [],\n floatingBoxContent: ''\n}\n\n/**\n *\n * @param {options} d dropdown's data\n * @returns {String} Body content for the dropdown\n */\nexport const buildFloatingBoxBody = function (d) {\n let floatingBoxBody = ''\n if (d) {\n floatingBoxBody = FloatingBoxBodyTemplate(\n {\n extraClasses: '',\n attributes: {}\n },\n ChoiceListTemplate(\n {\n id: d.id,\n method: 'multiple',\n label: '',\n attributes: { 'data-c-dropdown__choice-list': '' },\n items: buildChoiceListItem(d.options, d.id)\n }\n )\n )\n }\n return floatingBoxBody\n}\n\n/**\n *\n * @param {options} d dropdown's data\n * @returns {String} Footer content for the dropdown\n */\nexport const buildFloatingBoxFooter = function (d) {\n let floatingBoxFooter = ''\n if (d) {\n floatingBoxFooter = FloatingBoxFooterTemplate(\n {\n extraClasses: '',\n attributes: {}\n },\n BtnTemplate({\n ...defaultButtonData,\n ...{\n text: d.cancelButtonText,\n variant: 'flat-neutral',\n attributes: { 'data-c-dropdown__action': 'cancel' }\n }\n }) + BtnTemplate({\n ...defaultButtonData,\n ...{\n text: d.okButtonText,\n attributes: { 'data-c-dropdown__action': 'submit' }\n }\n })\n )\n }\n return floatingBoxFooter\n}\n\nexport const DropdownMultipleTemplate = (d) => {\n d = { ...defaultDropdownMultipleData, ...d }\n return `
\n ${d.variant === 'compact' ? `` : ''}\n ${d.icon ? `` : ''}\n
\n
\n
${d.variant === 'compact'\n ? renderSelectedItemsCompact(d.options)\n : `${d.options.filter(o => o.selected).map(option => ChipTemplate(option)).join('')}`}
\n \n \n ${d.placeholder}\n
\n
\n \n ${d.floatingBoxContent\n ? d.floatingBoxContent\n : FloatingBoxTemplate(\n {\n opened: false,\n gradient: true,\n floatsFrom: 'xs',\n extraClasses: 'c-dropdown__floating-box',\n attributes: {\n 'data-c-dropdown__floating-box': ''\n }\n },\n buildFloatingBoxBody(d) + buildFloatingBoxFooter(d)\n )}\n
`\n}\n","\n/**\n * The Dropdown Single Option contains all data needed to hydrate a Dropdown Single\n *\n * @typedef {Object} DropdownSingleOptionData\n *\n * @property {String} text - Option text\n * @property {String} value - Associated option's value\n * @property {String} [count] - Extra string for option\n * @property {Boolean} [default] - Is option default value?\n * @property {Boolean} [disabled]\n * @property {Boolean} [selected]\n */\n\nexport const defaultDropdownSingleOptionData = {\n text: '',\n value: '',\n count: undefined,\n default: false,\n disabled: false,\n selected: false\n}\n\nexport const DropdownSingleOptionTemplate = (d) => {\n d = { ...defaultDropdownSingleOptionData, ...d }\n return `\n `\n}\n","/**\n * The Dropdown Single Option contains all data needed to hydrate a Dropdown Single\n *\n * @typedef {Object} DropdownData\n *\n * @property {String} [id] Form element id\n * @property {String} [placeholder] Form element placeholder\n * @property {Boolean} [disabled] When true any change cannot be done\n * @property {Boolean} [icon]\n * @property {Object} [options] all optins for the dropdown to build\n */\nimport { encodeAttributes } from '../../../js/helpers/string'\nimport { BtnTemplate, defaultButtonData } from '../btn/c-btn.template'\nimport { DropdownSingleOptionTemplate } from './c-dropdown_single-option.template'\n\nexport const defaultDropdownSingleData = {\n id: '',\n placeholder: '',\n disabled: false,\n variant: 'default',\n icon: false,\n options: []\n}\n\nexport const DropdownSingleTemplate = (d) => {\n d = { ...defaultDropdownSingleData, ...d }\n return `
\n ${d.variant === 'compact' ? `` : ''}\n ${d.icon ? `` : ''}\n\n \n ${d.hasClearButton\n ? BtnTemplate({\n ...defaultButtonData,\n ...{\n text: '',\n variant: 'icon-only',\n icon: 'cross',\n iconPosition: 'left',\n extraClasses: 'c-dropdown__clear',\n attributes: d.clearButtonAttributes\n }\n })\n : ''}\n \n
`\n}\n","\n/**\n * The Dropdown Multiple Compact Item contains all data needed to hydrate a Dropdown Multiple when it is compact\n *\n * @typedef {Object} DropdownMultipleCompactItemData\n *\n * @property {String} text - Option text\n * @property {String} value - Associated option's value\n */\n\nexport const defaultDropdownMultipleCompactItemData = {\n text: '',\n value: ''\n\n}\n\nexport const DropdownMultipleCompactItemTemplate = (d) => {\n d = { ...defaultDropdownMultipleCompactItemData, ...d }\n return `${d.text || ''}\n `\n}\n","import Component from '../../../../js/core/component/component'\nimport { ChipTemplate } from '../../chip/c-chip.template'\nimport { registerComponent } from '../../../../js/core/component/component-directory'\nimport domEventsHelper from '../../../../js/document/dom-events-helper'\nimport { elementFromString } from '../../../../js/document/html-helper'\nimport { queueFilterEvent } from '../../../../js/helpers/queue-filter-event'\nimport registeredEvents from '../../../../js/helpers/registered-events'\nimport { DropdownMultipleCompactItemTemplate } from './c-dropdown__multiple__compact-item.template'\n\n// Ensure other child component APIs are loaded on time\nrequire('../../choice-list/main')\nrequire('../../floating-box/main')\n\nconst componentApi = 'c-dropdown-multiple'\n\nconst attr = {\n track: 'data-track'\n}\n\nconst definition = {\n name: componentApi,\n props: [\n {\n name: 'disabled',\n type: 'boolean',\n attr: '.is-disabled',\n defaultValue: false\n },\n {\n name: 'options',\n type: 'collection'\n },\n {\n name: 'optionsData',\n type: 'collection'\n },\n {\n name: 'variant',\n type: 'string',\n attr: 'data-variant',\n defaultValue: 'default'\n },\n {\n name: 'saveOnDomClick',\n type: 'boolean',\n attr: 'data-save-dom-click',\n defaultValue: false\n }\n ]\n}\n\nconst componentQueries = {\n focusElement: '.c-dropdown__element',\n optionsList: '.c-dropdown__selected-item-list',\n chipRemove: '[data-c-chip__action=\"remove\"]',\n floatingBox: '[data-c-dropdown__floating-box]',\n choiceList: '[data-c-dropdown__choice-list]',\n cancel: '[data-c-dropdown__action=\"cancel\"]',\n submit: '[data-c-dropdown__action=\"submit\"]',\n label: '[data-c-dropdown__label]',\n arrow: '.c-dropdown__arrow',\n compact: 'compact',\n hasValues: 'has-values'\n}\n\nconst defaults = {\n minHeight: '260px',\n maxHeight: '400px'\n}\n\nconst changeEvent = new window.CustomEvent('change', { bubbles: true, cancelable: false })\n\n/**\n * DropdownMultiple content\n *\n */\nexport default class DropdownMultiple extends Component {\n /**\n * Creates a new dropdown behaviour, exposes an API to the element.\n *\n * @constructor\n * @param {HTMLElement} element - The HTML element.\n */\n constructor (element) {\n super(element, definition.name)\n this.opened = false\n\n // Access to floatingBox element and it's API\n this.floatingBox = this.element.querySelector(componentQueries.floatingBox)\n this.floatingBoxApi = this.floatingBox['c-floating-box']\n this.floatingBoxApi.setProp('minHeight', defaults.minHeight, { silent: true })\n this.floatingBoxApi.setProp('maxHeight', defaults.maxHeight, { silent: true })\n\n this.arrow = this.element.querySelector(componentQueries.arrow)\n\n // Access to ChoiceList element and it's API\n this.xoiceList = this.element.querySelector(componentQueries.choiceList)\n this.xoiceListApi = this.xoiceList['c-choice-list']\n\n // Populate missing props\n this.props.options = [...this.getOptions()]\n this.props.optionsData = [...this.getOptionsData()]\n this.selectedValues = [...this.xoiceListApi.getSelectedValues()]\n\n // Find for child elements and bind some DOM events associated\n this.focusElement = this.element.querySelector(componentQueries.focusElement)\n this.optionsListElement = this.element.querySelector(componentQueries.optionsList)\n this.cancelElement = this.element.querySelector(componentQueries.cancel)\n this.submitElement = this.element.querySelector(componentQueries.submit)\n domEventsHelper.attachEvents([\n [this.element, { keydown: (ev) => this.onKeyDown(ev) }],\n [this.focusElement, { focus: (ev) => this.onFocus(ev) }],\n [this.optionsListElement, { mousedown: (ev) => this.onClickChipList(ev) }],\n [this.cancelElement, { click: (ev) => this.onCancel(ev) }],\n [this.submitElement, { click: (ev) => this.onSubmit(ev) }]\n ], definition.name)\n\n this.isCompact = this.element.getAttribute('data-variant') === componentQueries.compact\n\n // Bind ChoiceList events\n this.xoiceListApi.events.on('changeOptions', options => {\n this.props.options = JSON.parse(JSON.stringify(options))\n this.props.optionsData = [...this.getOptionsData()]\n this.selectedValues = [...this.xoiceListApi.getSelectedValues()]\n this._updateOptions()\n // IE/Edge bug does not update the :empty state on time, by toggling a fake class forces a repaint solving the bug that overlaps placeholder on the filters selected\n this.element.classList.toggle('weird')\n this.selectedValues.length !== 0 ? this.element.classList.add(componentQueries.hasValues) : this.element.classList.remove(componentQueries.hasValues)\n this._recoverFocus()\n this.events.emit('changeOptions', this.props.options)\n })\n // Bind chevron event\n\n this.arrow.addEventListener('click', this.toggleFloatingBox.bind(this))\n\n element[this.name].getSelectedValues = (this.getSelectedValues).bind(this)\n element[this.name].getOkButtonLabelText = (this.getOkButtonLabelText).bind(this)\n element[this.name].getOkButton = (this.getOkButton).bind(this)\n element[this.name].getCancelButtonLabelText = (this.getCancelButtonLabelText).bind(this)\n element[this.name].getCancelButton = (this.getCancelButton).bind(this)\n element[this.name].getLabel = (this.getLabel).bind(this)\n element[this.name].open = (this.open).bind(this)\n\n registeredEvents.registerComponentEvents(definition.name, this.events, {\n ...this.element.hasAttribute(attr.track) && { track: this.element.attributes[attr.track].value }\n })\n }\n\n /**\n * Opens the Dropdown\n *\n * - Init the fallback values to handle cancel events\n * - Opens the FloatingBox\n * - Bind documentClick event\n * - Set focus on first option\n * - Emit OPEN event\n *\n * @param {Object} options - Options object\n * @param {Boolean} [options.silent] - If true, does not fire events\n *\n * @return {DropdownMultiple} self instance\n */\n open (options = {}) {\n if (this.opened) return this\n this.focusElement.classList.add('is-focused')\n this.fallbackValues = [...this.selectedValues]\n this.floatingBoxApi.setProp('opened', true)\n this._openedEvents = [\n [document, { mousedown: (ev) => this.onDocumentClick(ev) }]\n ]\n domEventsHelper.attachEvents(this._openedEvents, definition.name)\n // Move the focus to first element\n this.moveFocusToFirstElement()\n this.opened = true\n this.updateChevron()\n if (!options.silent) this.events.emit('open')\n return this\n }\n\n moveFocusToFirstElement () {\n this.focusableOptions = this.xoiceList.querySelectorAll('input')\n if (!this.focusableOptions.length) return\n this.focusableOptions[0].focus()\n this.lastFocusedElement = this.focusableOptions[0]\n this.lastFocusedIndex = 0\n }\n\n /**\n * Closes the Dropdown\n *\n * - UnBind documentClick event\n * - Closes the FloatingBox\n * - Set focus on first option\n * - If SAVE is TRUE:\n * - Emit SUBMIT event\n * - If SAVE is FALSE:\n * - Restore fallback options\n * - Emit CLOSE event\n *\n * @param {Object} options - Options object\n * @param {Boolean} [options.silent] - If true, does not fire events\n * @param {Boolean} [options.save] - If true, save the changes\n *\n * @return {DropdownMultiple} self instance\n */\n close (options = {}) {\n if (!this.opened) return this\n domEventsHelper.detachEvents(this._openedEvents, definition.name)\n this.focusElement.classList.remove('is-focused')\n this.floatingBoxApi.setProp('opened', false)\n let shouldEmit = false\n if (!options.save) {\n const newOptions = JSON.parse(JSON.stringify(this.props.options))\n .map(option => {\n option.checked = this.fallbackValues.includes(option.value)\n return option\n })\n this.xoiceListApi.setProp('options', newOptions)\n } else {\n shouldEmit = options.silent\n ? false\n : (JSON.stringify(this.fallbackValues) !== JSON.stringify(this.selectedValues))\n }\n this.fallbackValues = undefined\n this.focusableOptions = undefined\n this.lastFocusedElement = undefined\n this.lastFocusedIndex = undefined\n this.opened = false\n this.updateChevron()\n if (shouldEmit) {\n this.events.emit('submit', this.props.options)\n }\n if (!options.silent) this.events.emit('close')\n return this\n }\n\n toggleFloatingBox () {\n if (this.opened) {\n this.close()\n } else {\n this.open()\n }\n }\n\n updateChevron () {\n if (this.opened) {\n this.arrow.classList.remove('m-icon--chevron-down')\n this.arrow.classList.add('m-icon--chevron-up')\n } else {\n this.arrow.classList.remove('m-icon--chevron-up')\n this.arrow.classList.add('m-icon--chevron-down')\n }\n }\n\n /**\n * Get the whole array of options from ChoiceList\n */\n getOptions () {\n return this.xoiceListApi ? this.xoiceListApi.props.options : []\n }\n\n /**\n * Set the array of options to Dropdown and ChoiceList\n *\n * @param {Object[]} items - Items to be set\n * @param {Object} options - Options object\n * @param {Boolean}[options.silent]- If true, does not fire events\n *\n */\n setOptions (items, options) {\n this.xoiceListApi.setProp('options', items, options)\n }\n\n /**\n * Get optionsData from props\n *\n * @returns {OptionsData[]}\n */\n getOptionsData () {\n const getOptionsDataFromOptions = (options) => {\n const optionsData = []\n options\n .forEach(option => {\n optionsData.push({\n value: option.value,\n text: option.text\n })\n if (option.items) optionsData.push(...getOptionsDataFromOptions(option.items))\n })\n return optionsData\n }\n return getOptionsDataFromOptions(this.props.options)\n }\n\n /**\n * Set optionsData collection, expecting a value and text for every one\n *\n * @param {OptionsData[]} optionsData\n * @param {Object} options - Options object\n * @param {Boolean}[options.silent]- If true, does not fire events\n * @param {Boolean}[options.forceUpdate]- If true, also updates the items\n */\n setOptionsData (optionsData, options) {\n this._updateOptions()\n }\n\n /**\n * Get selected values\n *\n * @return {String[]} values\n */\n getSelectedValues () {\n return this.selectedValues\n }\n\n /**\n * Get 'OK' button label text\n *\n * @return {String} Ok button label text\n */\n getOkButtonLabelText () {\n return this.submitElement['c-btn'].getText()\n }\n\n /**\n * Get 'OK' button\n *\n * @return {String} Ok button\n */\n getOkButton () {\n return this.submitElement\n }\n\n /**\n * Get 'Cancel' button label text\n *\n * @return {String} Cancel button label text\n */\n getCancelButtonLabelText () {\n return this.cancelElement['c-btn'].getText()\n }\n\n /**\n * Get 'Cancel' button\n *\n * @return {String} Cancel button\n */\n getCancelButton () {\n return this.cancelElement\n }\n\n /**\n * Get label text\n *\n * @return {String} label text\n */\n getLabel () {\n return this.element.querySelector(componentQueries.label).innerHTML\n }\n\n /**\n * Handle clicks on chipsElement, by mousedown to handle before other events like blur\n */\n onClickChipList (ev) {\n if (!ev.target.matches(componentQueries.chipRemove)) {\n this.onFocus()\n return\n }\n const matchValue = ev.target.parentElement.dataset.value\n const matchInput = this.xoiceList.querySelector(`input[value='${matchValue}']`)\n if (!matchInput) return\n matchInput.checked = false\n matchInput.dispatchEvent(changeEvent)\n\n // Removing a chip must only trigger a submit event if the dropdown is closed\n if (!this.opened) {\n this.events.emit('submit', this.props.options)\n }\n ev.preventDefault()\n ev.stopPropagation()\n }\n\n /**\n * Handled by keyDOWN on element\n *\n * - For UP and DOWN arrow keys\n * - Focus next/prev input\n * - Ensure result visibility\n *\n * - For ENTER and TAB keys\n * - Submit tempSelection\n *\n * - For ESC key\n * - Cancel tempSelection\n */\n onKeyDown (ev) {\n // Ignore event if the FloatingBox is not opened\n if (!this.floatingBoxApi.props.opened) return\n\n const key = ev.keyCode\n\n // Change keys: Down (40), Up (38)\n if (key === 40 || key === 38) {\n const currentElementIndex = [...this.focusableOptions].includes(document.activeElement)\n ? [...this.focusableOptions].indexOf(document.activeElement)\n : this.lastFocusedIndex\n const nextElement = key === 40\n ? this.focusableOptions.length > currentElementIndex + 1\n ? this.focusableOptions[currentElementIndex + 1]\n : this.focusableOptions[currentElementIndex]\n : (currentElementIndex - 1) >= 0\n ? this.focusableOptions[currentElementIndex - 1]\n : this.focusableOptions[currentElementIndex]\n if (nextElement !== this.lastFocusedElement) {\n const newIndex = [...this.focusableOptions].indexOf(nextElement)\n this.focusableOptions[newIndex].focus()\n this.lastFocusedElement = this.focusableOptions[newIndex]\n this.lastFocusedIndex = newIndex\n }\n ev.preventDefault()\n }\n\n // Submit keys: Enter (13), Tab (9)\n if (key === 13 || key === 9) { this.close({ save: true }) }\n\n // Discard keys: Esc (27)\n if (key === 27) { this.close() }\n }\n\n /**\n * Handle cancel events\n */\n onCancel () {\n this.close()\n }\n\n /**\n * Handle element focus events\n */\n onFocus () {\n this.open()\n }\n\n /**\n * Handle submit events\n */\n onSubmit () {\n this.close({ save: true })\n }\n\n /**\n * Handle document click event\n */\n onDocumentClick (ev) {\n const shouldSave = this.getProp('saveOnDomClick')\n const shouldEmit = (JSON.stringify(this.fallbackValues) !== JSON.stringify(this.selectedValues))\n queueFilterEvent(\n ev,\n this.element,\n () => this.close({ silent: !shouldEmit, save: shouldSave }),\n shouldEmit\n )\n\n // Handle input clicks to focus there\n if (ev.target.closest('.c-choice-list__option')) {\n const targetClicked = ev.target.closest('.c-choice-list__option').querySelector('.c-checkbox__input')\n if ([...this.focusableOptions].includes(targetClicked)) {\n const newIndex = [...this.focusableOptions].indexOf(targetClicked)\n this.focusableOptions[newIndex].focus()\n this.lastFocusedElement = this.focusableOptions[newIndex]\n this.lastFocusedIndex = newIndex\n }\n }\n }\n\n /**\n * Recover focus after a change on ChoiceList\n *\n * @return {DropdownMultiple} self instance\n */\n _recoverFocus () {\n if (!this.floatingBoxApi.props.opened) return this\n this.focusableOptions = this.xoiceList.querySelectorAll('input')\n if (this.focusableOptions[this.lastFocusedIndex]) {\n this.focusableOptions[this.lastFocusedIndex].focus()\n this.lastFocusedElement = this.focusableOptions[this.lastFocusedIndex]\n }\n return this\n }\n\n /**\n * Flush all item elements for this component\n *\n * @return {DropdownMultiple} self instance\n */\n _flushOptionsElements () {\n while (this.optionsListElement.firstChild) {\n this.optionsListElement.removeChild(this.optionsListElement.firstChild)\n }\n return this\n }\n\n /**\n * Renew all item elements for this component\n *\n * @param {Object[]} options - Options from where to update items\n *\n * @return {DropdownMultiple} self instance\n */\n _updateOptions (options = this.props.options) {\n this._flushOptionsElements()\n if (this.isCompact) {\n this.xoiceListApi.getReducedSelectedValuesFromOptions()\n .forEach(value => {\n const newItem = this._newItemElement(value)\n if (newItem) { this.optionsListElement.appendChild(newItem) }\n })\n } else {\n this.xoiceListApi.getReducedSelectedValuesFromOptions()\n .forEach(value => {\n const newChip = this._newChipElement(value)\n if (newChip) { this.optionsListElement.appendChild(newChip) }\n })\n }\n return this\n }\n\n /**\n * Creates a chip element from option data\n *\n * @param {String} value - The associated value to create the view with\n *\n * @return {HTMLElement}\n *\n */\n _newChipElement (value) {\n const chipData = this.props.optionsData\n .find(chip => chip.value === value)\n if (!chipData) {\n return undefined\n }\n const newChipData = {\n value: chipData.value,\n text: chipData.text\n }\n return elementFromString(ChipTemplate(newChipData))\n }\n\n /**\n * Creates a item element from option data when multiple option is compact\n *\n * @param {String} value - The associated value to create the view with\n *\n * @return {HTMLElement}\n *\n */\n _newItemElement (value) {\n const ItemData = this.props.optionsData\n .find(chip => chip.value === value)\n if (!ItemData) {\n return undefined\n }\n const newItemData = {\n value: ItemData.value,\n text: ItemData.text\n }\n return elementFromString(DropdownMultipleCompactItemTemplate(newItemData))\n }\n}\n\nregisterComponent(DropdownMultiple, definition.name, definition)\n","import Component from '../../../js/core/component/component'\r\nimport { registerComponent } from '../../../js/core/component/component-directory'\r\nimport { elementFromString } from '../../../js/document/html-helper'\r\nimport domEventsHelper from '../../../js/document/dom-events-helper'\r\nimport { DropdownSingleOptionTemplate } from './c-dropdown_single-option.template'\r\nimport { DropdownMessagesTemplate } from './c-dropdown__messages.template'\r\nimport registeredEvents from '../../../js/helpers/registered-events'\r\nimport { requestAnimationFrame } from '../../../js/document/requestAnimationFrame'\r\n\r\n/**\r\n * Props & State\r\n *\r\n * There are two types of data that control a component: props and state.\r\n * Props are set on instantiation and they are fixed throughout the lifetime\r\n * of a component. For data that is going to change, we have to use state.\r\n */\r\n\r\nconst attr = {\r\n track: 'data-track'\r\n}\r\n\r\nconst componentQueries = {\r\n arrow: '.c-dropdown__arrow'\r\n}\r\n\r\nconst definition = {\r\n\r\n name: 'c-dropdown',\r\n\r\n /**\r\n * Props\r\n *\r\n * Most components can be customized with different parameters when they\r\n * are created. These creation parameters are called props.\r\n *\r\n * This lets you make a single component that is used in many different\r\n * places in your app, with slightly different properties in each place.\r\n *\r\n *\r\n */\r\n\r\n props: [\r\n {\r\n name: 'value',\r\n type: 'string'\r\n }, {\r\n name: 'options',\r\n type: 'collection'\r\n }, {\r\n name: 'placeholder',\r\n type: 'string',\r\n attr: 'data-c-dropdown__placeholder'\r\n }, {\r\n name: 'disabled',\r\n type: 'boolean',\r\n attr: '.is-disabled',\r\n defaultValue: false\r\n }, {\r\n name: 'state',\r\n type: 'string',\r\n attr: '.has-',\r\n allowedValues: [\r\n '',\r\n 'success',\r\n 'warning',\r\n 'error'\r\n ],\r\n defaultValue: ''\r\n },\r\n {\r\n name: 'label',\r\n type: 'string',\r\n defaultValue: ''\r\n },\r\n {\r\n name: 'sync-selected',\r\n type: 'boolean',\r\n attr: 'data-sync-selected-on-load',\r\n defaultValue: false\r\n },\r\n {\r\n name: 'saveOnDomClick',\r\n type: 'boolean',\r\n attr: 'data-save-dom-click',\r\n defaultValue: false\r\n }\r\n ]\r\n\r\n}\r\n\r\n/**\r\n * Dropdown content\r\n *\r\n */\r\nexport default class Dropdown extends Component {\r\n /**\r\n * Creates a new dropdown behaviour, exposes an API to the element.\r\n *\r\n * @constructor\r\n * @param {HTMLElement} element - The HTML element.\r\n */\r\n constructor (element) {\r\n super(element, definition.name)\r\n\r\n this.silentErrors = true\r\n this.opened = false\r\n\r\n this.arrow = this.element.querySelector(componentQueries.arrow)\r\n\r\n const syncSelectedOnLoad = this.getProp('sync-selected')\r\n if (syncSelectedOnLoad) {\r\n requestAnimationFrame(() => this.syncSelected())\r\n }\r\n\r\n const clearNode = this._getClearNode(element)\r\n if (clearNode) {\r\n clearNode.addEventListener('click', (e) => {\r\n const newValue = ''\r\n if (this.props.value !== newValue) this.setProp('value', newValue)\r\n })\r\n }\r\n\r\n this.isRequired = this.element.hasAttribute('required')\r\n this.messagesElement = this.element.querySelector('.c-dropdown__messages')\r\n this.messageRequired = null\r\n if (element.getAttribute('data-message-required')) {\r\n this.messageRequired = element.getAttribute('data-message-required')\r\n } else {\r\n this.messageRequired = this.getSelectNode().getAttribute('data-message-required')\r\n }\r\n this.labelElement = this.element.querySelector('.c-dropdown__label')\r\n\r\n this.element[definition.name].validate = this.validate.bind(this)\r\n this.element[definition.name].enableErrors = this.enableErrors.bind(this)\r\n this.element[definition.name].getValue = this.getValue.bind(this)\r\n this.element[definition.name].open = (this.open).bind(this)\r\n this.element[definition.name].getPlaceholder = this.getPlaceholder.bind(this)\r\n this.element[definition.name].getLabel = this.getLabel.bind(this)\r\n this.element[definition.name].getSelectNode = this.getSelectNode.bind(this)\r\n\r\n const selectNode = this.getSelectNode(element)\r\n\r\n domEventsHelper.attachEvents([\r\n [selectNode, { change: (ev) => this.onChange(ev) }],\r\n [selectNode, { click: (ev) => this.onClick(ev) }],\r\n [selectNode, { focusout: (ev) => this.onFocusOut(ev) }]\r\n ], definition.name)\r\n\r\n registeredEvents.registerComponentEvents(definition.name, this.events, {\r\n ...this.element.hasAttribute(attr.track) && { track: this.element.attributes[attr.track].value }\r\n })\r\n }\r\n\r\n onChange (ev) {\r\n this.setProp('value', ev.target.value)\r\n this.close()\r\n }\r\n\r\n onClick () {\r\n if (this.opened) {\r\n this.close()\r\n } else {\r\n this.open()\r\n }\r\n }\r\n\r\n onFocusOut () {\r\n if (this.opened) {\r\n this.close()\r\n }\r\n }\r\n\r\n open () {\r\n this.opened = true\r\n this.updateChevron()\r\n }\r\n\r\n close () {\r\n this.opened = false\r\n this.updateChevron()\r\n }\r\n\r\n updateChevron () {\r\n if (this.opened) {\r\n this.arrow.classList.remove('m-icon--chevron-down')\r\n this.arrow.classList.add('m-icon--chevron-up')\r\n } else {\r\n this.arrow.classList.remove('m-icon--chevron-up')\r\n this.arrow.classList.add('m-icon--chevron-down')\r\n }\r\n }\r\n\r\n getValue () {\r\n return this.getSelectNode(this.element).value\r\n }\r\n\r\n getPlaceholder () {\r\n return this.element.dataset.cDropdown__placeholder\r\n }\r\n\r\n async setValue (value, options = {}) {\r\n const optionCandidate = value ? this.getSelectNode(this.element).querySelector(`[value=\"${value}\"]`) : this.getSelectNode(this.element).firstChild\r\n if (optionCandidate) {\r\n this.getSelectNode(this.element).value = value\r\n this.element.classList[value ? 'add' : 'remove']('has-value')\r\n if (!options.stopPropagation) {\r\n this.setProp('options', this.props.options.map(o => ({ ...o, selected: o.value === value })), { ...options, stopPropagation: true })\r\n }\r\n\r\n if (!options.silent) {\r\n this.events.emit('change', value)\r\n }\r\n return value\r\n } else {\r\n this.element.classList.remove('has-value')\r\n throw new Error(`${value} is not a valid option for`, this.element)\r\n }\r\n }\r\n\r\n /**\r\n * Get the whole array of options from current DOM\r\n *\r\n * @return {HTMLElement[]} The parsed options data\r\n */\r\n getOptions () {\r\n return Array.from(this.getSelectNode().options)\r\n .filter((option) => option.classList.contains('c-dropdown__option'))\r\n .reduce((array, option) => ([...array, {\r\n text: option.text,\r\n value: option.value,\r\n selected: option.selected,\r\n disabled: option.disabled\r\n }]), [])\r\n }\r\n\r\n /**\r\n * Set the array of options the dropdown will have\r\n * If option selected is provided, that will be set, else, the previous value before the options changed\r\n *\r\n * @param {Object[]} items - Items to be set\r\n * @param {Object} options - Options object\r\n * @param {Boolean} options.silent - If true, does not fire events\r\n */\r\n setOptions (items, options = {}, oldItems) {\r\n items = items || []\r\n Array.from(this.getSelectNode().options).forEach((option) => option.remove())\r\n\r\n const placeholder = this.getProp('placeholder')\r\n if (placeholder && placeholder !== '') {\r\n const noDefaultItems = items.filter((item) => !item.default)\r\n items = [{\r\n default: true,\r\n text: placeholder,\r\n selected: (items.find((item) => item.default) || {}).selected || !noDefaultItems.some(item => item.selected)\r\n }, ...noDefaultItems]\r\n }\r\n\r\n const itemsToElements = (items) => {\r\n const fragment = document.createDocumentFragment()\r\n items.forEach(item => {\r\n if (item.default) { item = { ...item, value: '', disabled: true } }\r\n fragment.appendChild(elementFromString(DropdownSingleOptionTemplate(item)))\r\n })\r\n return fragment\r\n }\r\n\r\n this.getSelectNode().appendChild(itemsToElements(items))\r\n\r\n if (!options.stopPropagation) {\r\n const selectedOption = this.props.options.find(o => o.selected)\r\n const selectedValue = selectedOption ? selectedOption.value : ''\r\n this.setProp('value', selectedValue, { ...options, stopPropagation: true })\r\n }\r\n\r\n if (!options.silent) {\r\n this.events.emit('changedOptions', this.props.options, oldItems)\r\n }\r\n }\r\n\r\n getSelectNode () {\r\n this.selectNode = this.selectNode || this.element.querySelector('.c-dropdown__element')\r\n return this.selectNode\r\n }\r\n\r\n _getClearNode () {\r\n this.clearNode = this.clearNode || this.element.querySelector('.c-dropdown__clear')\r\n return this.clearNode\r\n }\r\n\r\n setDisabled (value) {\r\n const selectElement = this.element.querySelector('[data-dropdown-select]')\r\n if (value) {\r\n this.element.classList.add('is-disabled')\r\n if (selectElement) selectElement.setAttribute('disabled', '')\r\n } else {\r\n this.element.classList.remove('is-disabled')\r\n if (selectElement) selectElement.removeAttribute('disabled', '')\r\n }\r\n }\r\n\r\n enableErrors () {\r\n this.silentErrors = false\r\n }\r\n\r\n validate (validateOnly = false) {\r\n const isEmptyAndRequired = this.getValue() === '' && this.isRequired\r\n let isValid = this.getSelectNode().validity.valid\r\n if (isEmptyAndRequired) {\r\n isValid = false\r\n }\r\n let messages = []\r\n let messageTypes = []\r\n if (!validateOnly && !this.silentErrors) {\r\n if (!isValid) {\r\n messages = this._getValidationMessages()\r\n messageTypes = this._getValidationMessageTypes()\r\n }\r\n this._styleValidity(isValid, messages)\r\n }\r\n return {\r\n isValid,\r\n errorMessages: messages,\r\n errorTypes: messageTypes,\r\n fieldName: this.getSelectNode(this.element).name\r\n }\r\n }\r\n\r\n /**\r\n * Set the label text\r\n */\r\n setLabel (text) {\r\n if (this.labelElement) {\r\n this.labelElement.innerText = text\r\n }\r\n }\r\n\r\n /**\r\n * Get the label text\r\n */\r\n getLabel () {\r\n return this.labelElement ? this.labelElement.innerText : ''\r\n }\r\n\r\n syncSelected () {\r\n const selectedOption = this.element.querySelector('[selected]')\r\n if (selectedOption && selectedOption.value) {\r\n this.getSelectNode().value = selectedOption.value\r\n this.setProp('value', selectedOption.value)\r\n }\r\n }\r\n\r\n _getValidationMessages () {\r\n const messages = []\r\n const validity = this.getValue()\r\n if (validity === '' && this.messageRequired) {\r\n messages.push(this.messageRequired)\r\n }\r\n return messages\r\n }\r\n\r\n _getValidationMessageTypes () {\r\n const messageTypes = []\r\n const validity = this.getValue()\r\n if (validity === '' && this.messageRequired) {\r\n messageTypes.push('ValueMissing')\r\n }\r\n\r\n return messageTypes\r\n }\r\n\r\n _styleValidity (isValid, messages) {\r\n if (!isValid) {\r\n this.element.classList.add('has-error')\r\n if (this.messagesElement !== null && this.messagesElement !== undefined) {\r\n this.messagesElement.innerHTML = DropdownMessagesTemplate(messages)\r\n }\r\n } else {\r\n this.element.classList.remove('has-error')\r\n if (this.messagesElement !== null && this.messagesElement !== undefined) {\r\n this.messagesElement.innerHTML = ''\r\n }\r\n }\r\n }\r\n}\r\n\r\nregisterComponent(Dropdown, definition.name, definition)\r\n","/**\n * The DropdownMessagesTemplate contains all the data needed to hydrate a dropdown messages component\n *\n * @typedef {Object} defaultDropdownMessagesData\n *\n * @property {String} extraClasses - Extra classes if needed\n */\n\nexport const defaultDropdownMessagesData = {\n extraClasses: ''\n}\n\nexport const DropdownMessagesTemplate = (d) => `\n ${d\n ? `\n ${d.map(message => `\n
\n \n ${message}\n
\n `).join('')}\n `\n : ''}\n`\n","import Component from '../../../js/core/component/component'\nimport { registerComponent } from '../../../js/core/component/component-directory'\nimport { newGUID } from '../../../js/helpers/guid'\nimport { ModalTemplate } from '../modal/c-modal.template'\nimport { BtnTemplate } from '../btn/c-btn.template'\nimport { elementFromString } from '../../../js/document/html-helper'\nimport { favoriteEvents } from '../../../js/document/event-types'\nimport registeredEvents from '../../../js/helpers/registered-events'\nimport favorites from './main'\n\nconst definition = {\n name: 'c-favorite-btn',\n props: [\n {\n name: 'active',\n type: 'boolean',\n attr: '.is-active'\n },\n {\n name: 'itemId',\n type: 'string',\n attr: 'data-favorite__item-id'\n },\n {\n name: 'publicationCode',\n type: 'string',\n attr: 'data-favorite__publication-code'\n },\n {\n name: 'parentContextId',\n type: 'string',\n attr: 'data-favorite__parent-contextId'\n }\n ]\n}\nconst ELEMENT_QUERIES = {\n trackAttr: 'data-track'\n}\nconst fallbackTexts = {\n title: 'Log in to add favourites',\n body: 'You need to be logged in to add a favourite',\n loginBtn: 'Login',\n footer: \"Don't have an account?\",\n footerBtn: 'Create an account'\n}\n\n/**\n * FavoriteButton content\n */\nexport default class FavoriteButton extends Component {\n /**\n * Creates a new FavoriteCollector behaviour, exposes an API to the element.\n *\n * @constructor\n * @param {HTMLElement} element - The HTML element.\n */\n constructor (element) {\n super(element, definition.name)\n\n this.staticData = this.getStaticData()\n // Update active prop with current favorites\n favorites.events.on('init', () => {\n this.setProp('active', favorites.hasItem(this.props.itemId), { silent: true })\n })\n // Bind click event\n element.addEventListener('click', async (ev) => {\n if (favorites.shouldDisplayModal()) {\n this.openModal()\n } else {\n let itemToggled\n const contextItemId = this.getProp('parentContextId')\n let eventCallback\n if (this.props.active) {\n itemToggled = await favorites.removeItemAsync(this.props.itemId, contextItemId, this.props.publicationCode)\n eventCallback = () => this.events.emit(favoriteEvents.FAVORITE_REMOVE, { id: this.getProp('itemId'), staticData: this.staticData })\n } else {\n itemToggled = await favorites.addItemAsync(this.props.itemId, contextItemId, this.props.publicationCode)\n eventCallback = () => this.events.emit(favoriteEvents.FAVORITE_ADD, { id: this.getProp('itemId'), staticData: this.staticData })\n }\n\n if (itemToggled) {\n this.setProp('active', !this.props.active, { silent: true })\n eventCallback()\n } else if (favorites.shouldDisplayModal()) {\n this.openModal()\n }\n }\n })\n\n registeredEvents.registerWidgetEvents(definition.name, this.events, {\n ...this.element.hasAttribute(ELEMENT_QUERIES.trackAttr) && { track: this.element.attributes[ELEMENT_QUERIES.trackAttr].value }\n })\n }\n\n openModal () {\n if (!this.modal) {\n this.modal = elementFromString(this.renderModal())\n document.body.appendChild(this.modal)\n Component.initDocumentComponentsFromAPI(this.modal)\n this.attachModalEvents(this.modal['c-modal'])\n }\n this.modal['c-modal'].open()\n }\n\n renderModal () {\n const id = newGUID()\n const modalId = `${id}_modal`\n return `${ModalTemplate({\n id: modalId,\n size: 'small',\n title: favorites.modalTitle || fallbackTexts.title,\n style: 'neutral',\n attributes: { 'data-c-favorite__modal': '' },\n bodyContent: this.getModalBody(),\n footerContent: this.getModalFooter(),\n extraClasses: 'c-modal__favorites',\n headerSize: 'medium'\n })}`\n }\n\n getModalBody () {\n return `
\n ${favorites.modalBodyText || fallbackTexts.body}\n
`\n }\n\n getModalFooter () {\n const loginUrl = `${favorites.loginUrl()}?returnurl=${encodeURIComponent(document.URL)}`\n return ``\n }\n\n attachModalEvents (modalApi) {\n modalApi.events.on('open', () => {\n this.events.emit(favoriteEvents.FAVORITE_MODAL_OPEN, { id: this.getProp('itemId'), staticData: this.staticData })\n })\n modalApi.events.on('close', () => {\n this.events.emit(favoriteEvents.FAVORITE_MODAL_CLOSE, { id: this.getProp('itemId'), staticData: this.staticData })\n })\n\n const modalSignUpElement = this.modal.querySelector('.c-modal__favorites-signup-btn')\n modalSignUpElement.addEventListener(\n 'click', () => this.events.emit(favoriteEvents.FAVORITE_SIGNUP, { id: this.getProp('itemId'), staticData: this.staticData }))\n\n const modalLoginElement = this.modal.querySelector('.c-modal__favorites-login-btn')\n modalLoginElement.addEventListener(\n 'click', () => this.events.emit(favoriteEvents.FAVORITE_LOGIN, { id: this.getProp('itemId'), staticData: this.staticData }))\n }\n\n getStaticData () {\n const staticDataElement = document.querySelector('.w-static-data-content')\n let data = null\n if (staticDataElement) {\n data = staticDataElement.dataset\n ? {\n id: staticDataElement.dataset.wStaticContentDataId,\n name: staticDataElement.dataset.wStaticContentDataName,\n countryId: staticDataElement.dataset.wStaticContentDataAccoCountryId,\n cityId: staticDataElement.dataset.wStaticContentDataAccoRegionId,\n rating: staticDataElement.dataset.wStaticContentDataRating,\n badges: staticDataElement.dataset.wStaticContentDataBadges,\n category: staticDataElement.dataset.wStaticContentDataCategory,\n location: staticDataElement.dataset.wStaticContentDataLocationId,\n accoStarts: staticDataElement.dataset.wStaticContentDataAccoStars\n }\n : null\n }\n return data\n }\n}\n\nregisterComponent(FavoriteButton, definition.name, definition)\n","import Component from '../../../js/core/component/component'\nimport { registerComponent } from '../../../js/core/component/component-directory'\nimport favorites from './main'\n\nconst definition = {\n name: 'c-favorite-cleaner'\n}\n\n/**\n * FavoriteCleaner content\n *\n */\nexport default class FavoriteCleaner extends Component {\n /**\n * Creates a new FavoriteCleaner behaviour, exposes an API to the element.\n *\n * @constructor\n * @param {HTMLElement} element - The HTML element.\n */\n constructor (element) {\n super(element, definition.name)\n\n // Bind click event\n const btn = element.querySelector('.c-favorite-cleaner')\n const search = document.querySelector('.fr-search')\n const emptyFavorites = document.querySelector('.fr-empty-favorites')\n btn && btn.addEventListener('click', async () => {\n await favorites.reset([])\n btn.classList.add('u-hidden')\n search && search.classList.add('u-hidden')\n emptyFavorites && emptyFavorites.classList.remove('u-hidden')\n })\n }\n}\n\nregisterComponent(FavoriteCleaner, definition.name, definition)\n","import Component from '../../../js/core/component/component'\nimport { registerComponent } from '../../../js/core/component/component-directory'\nimport favorites from './main'\nimport { forceRepaint } from '../../../js/document/css'\n\nconst definition = {\n name: 'c-favorite-collector',\n props: [\n {\n name: 'count',\n type: 'number',\n attr: 'data-c-favorite-collector__count'\n }\n ]\n}\n\n/**\n * FavoriteCollector content\n *\n */\nexport default class FavoriteCollector extends Component {\n /**\n * Creates a new FavoriteCollector behaviour, exposes an API to the element.\n *\n * @constructor\n * @param {HTMLElement} element - The HTML element.\n */\n constructor (element) {\n super(element, definition.name)\n\n // Update counter with current value\n this.setProp('count', favorites.itemsLength(), { silent: true })\n favorites.events.on('init', () => {\n this.setProp('count', favorites.itemsLength(), { silent: true })\n })\n\n // Bind favorites change event\n favorites.events.on('change', () => {\n const newCount = favorites.itemsLength()\n if (newCount === this.props.count) return\n this.element.classList.remove('is-incrementing', 'is-decrementing')\n forceRepaint(this.element)\n this.element.classList.add(newCount > this.props.count ? 'is-incrementing' : 'is-decrementing')\n this.setProp('count', favorites.itemsLength())\n })\n }\n}\n\nregisterComponent(FavoriteCollector, definition.name, definition)\n","import Collection from '../../../js/core/collection'\nimport storage from '../../../js/document/web-storage'\nimport { fetchJsonData, fetchJsonDataAndHeaders } from '../../../js/helpers/json-fetch'\nimport { getUrlFromString } from '../../../js/document/url'\n\nconst EventEmitter = require('eventemitter3')\nconst componentQueries = {\n favoriteToggle: 'data-product-favourites',\n addUrl: 'data-product-favourites-add-url',\n removeUrl: 'data-product-favourites-remove-url',\n removeAllUrl: 'data-product-favourites-remove-all-url',\n getUrl: 'data-product-favourites-get-url',\n loginUrl: 'data-product-favourites-login-url'\n}\nconst cookieName = 'favs'\nconst cookieApiName = `${cookieName}_api`\nconst cookieMigratedName = `${cookieName}_migrated`\n\nconst cookieSettings = {\n expirationDays: 365,\n path: '/'\n}\n\nclass Favorites {\n /**\n * Favorites manager\n *\n * @constructor\n */\n constructor () {\n this.events = new EventEmitter()\n this.favouritesElement = document.querySelector(`div[${componentQueries.favoriteToggle}]`)\n this.isUserLoggedIn = false\n this.useApi = this.favouritesElement !== null\n if (this.useApi) {\n this.favouritesElement.urls = {\n addUrl: this.favouritesElement.getAttribute(componentQueries.addUrl),\n removeUrl: this.favouritesElement.getAttribute(componentQueries.removeUrl),\n removeAllUrl: this.favouritesElement.getAttribute(componentQueries.removeAllUrl),\n getUrl: this.favouritesElement.getAttribute(componentQueries.getUrl),\n loginUrl: this.favouritesElement.getAttribute(componentQueries.loginUrl)\n }\n this._getFavouritesAsync().then(response => {\n if (!!response && !response.favouritesException && this.isUserLoggedIn) {\n this._init({ accos: response.jsonData.accoIds })\n\n if (response.favouritesMigrated) {\n this._deleteCookie(cookieName)\n this._setCookieMigrated()\n }\n\n this._updateCookie(cookieApiName)\n } else if (!!response && this.isSunwebCeLoggedIn) {\n const cookieData = this._getCookie(cookieName)\n this._init(cookieData)\n }\n })\n } else {\n let cookieData = this._getCookie(cookieName)\n\n if (this._isCookieMigrated()) {\n cookieData = this._getCookie(cookieApiName)\n\n this._deleteCookie(cookieApiName)\n this._deleteCookie(cookieMigratedName)\n }\n\n this._init(cookieData)\n }\n }\n\n _init (currentData) {\n const accos = currentData && currentData.accos\n ? currentData.accos.map(m => ({ id: m.toString() }))\n : []\n\n this.data = new Collection(accos)\n this.events.emit('init')\n }\n\n _canUseApi () {\n return this.useApi && !this.isSunwebCeLoggedIn\n }\n\n shouldDisplayModal () {\n return this._canUseApi() && !this.isUserLoggedIn\n }\n\n itemsLength () {\n return this.data?.models.length || 0\n }\n\n loginUrl () {\n return this.favouritesElement?.urls?.loginUrl || ''\n }\n\n async addItemAsync (itemId, contextItemId, publicationCode) {\n let added = false\n\n if (this._canUseApi()) {\n const result = await this._addFavouriteAsync(itemId, contextItemId, publicationCode)\n\n if (result.success) {\n this.data.addItem({ id: itemId })\n this._updateCookie(cookieApiName)\n added = true\n }\n } else {\n this.data.addItem({ id: itemId })\n this._updateCookie(cookieName)\n added = true\n }\n\n if (added) {\n this.events.emit('change', itemId)\n }\n\n return added\n }\n\n async removeItemAsync (itemId, contextItemId, publicationCode) {\n let removed = false\n const itemToRemove = this.data.findWhere('id', itemId)\n\n if (itemToRemove) {\n if (this._canUseApi()) {\n const result = await this._removeFavouriteAsync(itemId, contextItemId, publicationCode)\n\n if (result.success) {\n this.data.remove(itemToRemove)\n this._updateCookie(cookieApiName)\n removed = true\n }\n } else {\n this.data.remove(itemToRemove)\n this._updateCookie(cookieName)\n removed = true\n }\n\n if (removed) {\n this.events.emit('change', itemId)\n }\n }\n\n return removed\n }\n\n hasItem (itemId) {\n return !!this.data.findWhere('id', itemId)\n }\n\n _getCookie (name) {\n return storage.cookie.get(name)\n }\n\n _updateCookie (name) {\n storage.cookie.set(name, {\n accos: this.data.models.map(m => m.attributes.id)\n }, cookieSettings)\n }\n\n _deleteCookie (name) {\n storage.cookie.delete(name)\n }\n\n _setCookieMigrated () {\n storage.cookie.set(cookieMigratedName, true, cookieSettings)\n }\n\n _isCookieMigrated () {\n const favouritedMigrated = storage.cookie.get(cookieMigratedName)\n\n return favouritedMigrated === true\n }\n\n async reset (items) {\n if (this._canUseApi()) {\n await this._removeAllFavouritesAsync()\n }\n this.data.reset(items)\n this._updateCookie(cookieName)\n this.events.emit('change')\n }\n\n // Async Favourites\n async _getFavouritesAsync () {\n const response = await this._getFavouritesApiCallAsync(this.favouritesElement.urls.getUrl)\n\n if (!response || !response.jsonData) return null\n\n this.isSunwebCeLoggedIn = response.jsonData.isSunwebCeLoggedIn\n if (response.jsonData.isUserLoggedIn) {\n this.isUserLoggedIn = true\n } else {\n this.modalTitle = response.jsonData.modalTitle\n this.modalBodyText = response.jsonData.modalBodyText\n this.modalLoginButtonText = response.jsonData.modalLoginButtonText\n this.modalFooterText = response.jsonData.modalFooterText\n this.modalFooterLinkText = response.jsonData.modalFooterLinkText\n }\n\n const favouritesMigratedHeader = response.headers.get('x-productfavourites-cookiemigrated')\n const favouritesExceptionHeader = response.headers.get('x-productfavourites-exception')\n\n return {\n jsonData: response.jsonData,\n favouritesMigrated: /true/i.test(favouritesMigratedHeader),\n favouritesException: !!favouritesExceptionHeader\n }\n }\n\n async _addFavouriteAsync (accommodationId, contextItemId, publicationCode) {\n const result = await this._editFavouritesApiCallAsync(this.favouritesElement.urls.addUrl, accommodationId, contextItemId, publicationCode)\n this.isUserLoggedIn = result.isUserLoggedIn\n return result\n }\n\n async _removeFavouriteAsync (accommodationId, contextItemId, publicationCode) {\n const result = await this._editFavouritesApiCallAsync(this.favouritesElement.urls.removeUrl, accommodationId, contextItemId, publicationCode)\n this.isUserLoggedIn = result.isUserLoggedIn\n return result\n }\n\n async _removeAllFavouritesAsync () {\n const result = await this._editFavouritesApiCallAsync(this.favouritesElement.urls.removeAllUrl)\n this.isUserLoggedIn = result.isUserLoggedIn\n return result\n }\n\n async _editFavouritesApiCallAsync (url, accommodationId, contextItemId, publicationCode) {\n try {\n const requestUrl = getUrlFromString(url, { accommodationId, contextItemId, publicationCode })\n const result = await fetchJsonData(requestUrl, { fullReferrerOnCrossOrigin: true })\n\n return result\n } catch (error) {\n console.log(error)\n }\n }\n\n async _getFavouritesApiCallAsync (url) {\n try {\n const requestUrl = getUrlFromString(url)\n const result = await fetchJsonDataAndHeaders(requestUrl, { fullReferrerOnCrossOrigin: true })\n\n return {\n jsonData: result.jsonData,\n headers: result.headers\n }\n } catch (error) {\n console.log(error)\n }\n }\n}\n\nconst favorites = new Favorites()\nexport default favorites\n","/**\n * The FloatingBoxData contains all data needed to hydrate the view\n *\n * @typedef {Object} FloatingBoxData\n *\n * @property {Boolean} opened - True if opened\n * @property {Boolean} gradient - True if gradient\n * @property {String} floatsFrom - Breakpoint where should start floating\n * @property {String} [minHeight] - Minimum height\n * @property {String} [maxHeight] - Maximum height\n * @property {String} [extraClasses]\n * @property {Object} [attributes]\n *\n */\n\nimport { encodeAttributes } from '../../../js/helpers/string'\n\nexport const defaultFloatingBoxData = {\n opened: false,\n gradient: false,\n floatsFrom: 'xs',\n extraClasses: '',\n attributes: {}\n}\n\nexport const FloatingBoxTemplate = (d, content) => {\n d = { ...defaultFloatingBoxData, ...d }\n return `
\n ${content}\n
`\n}\n","/**\n * The FloatingBoxBodyData contains all data needed to hydrate the view\n *\n * @typedef {Object} FloatingBoxBodyData\n *\n * @property {String} [extraClasses]\n * @property {Object} [attributes]\n *\n */\n\nimport { encodeAttributes } from '../../../js/helpers/string'\n\nexport const defaultFloatingBoxBodyData = {\n extraClasses: '',\n attributes: {}\n}\n\nexport const FloatingBoxBodyTemplate = (d, content) => {\n d = { ...defaultFloatingBoxBodyData, ...d }\n return `
\n
\n ${content}\n
\n
`\n}\n","/**\n * The FloatingBoxFooterData contains all data needed to hydrate the view\n *\n * @typedef {Object} FloatingBoxFooterData\n *\n * @property {String} [extraClasses]\n * @property {Object} [attributes]\n *\n */\n\nimport { encodeAttributes } from '../../../js/helpers/string'\n\nexport const defaultFloatingBoxFooterData = {\n extraClasses: '',\n attributes: {}\n}\n\nexport const FloatingBoxFooterTemplate = (d, content) => {\n d = { ...defaultFloatingBoxFooterData, ...d }\n return `
\n ${content}\n
`\n}\n","/**\n * The FloatingBoxHeaderData contains all data needed to hydrate the view\n *\n * @typedef {Object} FloatingBoxHeaderData\n *\n * @property {String} [extraClasses]\n * @property {Object} [attributes]\n *\n */\n\nimport { encodeAttributes } from '../../../js/helpers/string'\n\nexport const defaultFloatingBoxHeaderData = {\n extraClasses: '',\n attributes: {}\n}\n\nexport const FloatingBoxHeaderTemplate = (d, content) => {\n d = { ...defaultFloatingBoxHeaderData, ...d }\n return `
\n ${content}\n
`\n}\n","import Component from '../../../js/core/component/component'\nimport { registerComponent } from '../../../js/core/component/component-directory'\nimport { forceRepaint, getStyle, cssTimeToMs } from '../../../js/document/css'\n/**\n * Props & State\n *\n * There are two types of data that control a component: props and state.\n * Props are set on instantiation and they are fixed throughout the lifetime\n * of a component. For data that is going to change, we have to use state.\n */\n\nconst definition = {\n\n name: 'c-floating-box',\n\n /**\n * Props\n *\n * Most components can be customized with different parameters when they\n * are created. These creation parameters are called props.\n *\n * This lets you make a single component that is used in many different\n * places in your app, with slightly different properties in each place.\n *\n *\n */\n\n props: [\n {\n name: 'opened',\n type: 'boolean',\n defaultValue: 'false'\n }, {\n name: 'minHeight',\n type: 'string',\n attr: 'data-c-floating-box__min-height',\n defaultValue: ''\n }, {\n name: 'maxHeight',\n type: 'string',\n attr: 'data-c-floating-box__max-height',\n defaultValue: ''\n }\n ]\n\n}\n\n/**\n * FloatingBox content\n *\n */\nexport default class FloatingBox extends Component {\n /**\n * Creates a new FloatingBox behaviour, exposes an API to the element.\n *\n * @constructor\n * @param {HTMLElement} element - The HTML element.\n */\n constructor (element) {\n super(element, definition.name)\n this.element[definition.name].adjustSize = this.adjustSize.bind(this)\n this.element[definition.name].forceClosedCallback = this._closed.bind(this)\n window.addEventListener('resize', this.adjustSize())\n }\n\n getOpened () {\n return this.isOpened !== undefined ? this.isOpened : this.element.classList.contains('in')\n }\n\n setOpened (opened) {\n return this[opened ? 'open' : 'close']()\n }\n\n open () {\n return new Promise((resolve) => {\n this.adjustSize()\n if (this.isOpened) resolve()\n this.element.classList.add('is-opening')\n forceRepaint(this.element)\n this.element.classList.add('in')\n\n this.transitionTimeout(() => {\n this.element.classList.remove('is-opening')\n this.isOpened = true\n resolve()\n })\n })\n }\n\n close () {\n return new Promise((resolve) => {\n this.isOpened = false\n this.element.classList.add('is-closing')\n this.element.classList.remove('is-opening')\n this.element.classList.remove('in')\n this.closedResolve = resolve\n this.closedBound = this.closedBound || this._closed.bind(this)\n this.transitionTimeout(this.closedBound)\n })\n }\n\n _closed () {\n this.element.classList.remove('is-closing')\n if (this.closedResolve && typeof this.closedResolve === 'function') this.closedResolve()\n delete this.closedResolve\n }\n\n transitionTimeout (cb) {\n const transitionTime = cssTimeToMs(getStyle(this.element, 'transition-duration'))\n if (this.currentTransition) window.clearTimeout(this.currentTransition)\n this.currentTransition = setTimeout(() => {\n cb()\n }, transitionTime)\n }\n\n adjustSize () {\n const minHeight = this.getProp('minHeight')\n const maxHeight = this.getProp('maxHeight')\n\n const bodyNode = this._getBodyNode()\n const isOpened = this.element.classList.contains('in')\n\n if (getStyle(this.element, 'position') === 'fixed') {\n // Fixed position does not need to deal with min and max heights\n // Remove overridden properties if position is fixed\n bodyNode.style.height = null\n this.element.style.right = null\n this.element.style.left = null\n } else {\n // NonFixed position needs to deal with min and max heights, horizontal overflow as well\n\n // Force a transparent display to get the computed heights\n bodyNode.style.height = maxHeight || null\n this.element.style.opacity = '0'\n this.element.style.right = null\n this.element.style.left = null\n if (!isOpened) this.element.classList.add('in')\n forceRepaint(this.element)\n\n // Fix horizontal overflow\n let elementRect = this.element.getBoundingClientRect()\n const horizontalOverflow = (elementRect.right < 0 || (elementRect.right > window.innerWidth))\n this.element.style.right = horizontalOverflow ? '0' : null\n this.element.style.left = horizontalOverflow ? '0' : null\n\n // Fix vertical sizes\n if (minHeight && maxHeight) {\n // Get header and footer heights to adjust a more real height for the body\n const headerNode = this._getHeaderNode()\n const footerNode = this._getFooterNode()\n const contentNode = this._getContentNode()\n const headerHeight = headerNode ? parseInt(headerNode.getBoundingClientRect().height) : 0\n const footerHeight = footerNode ? parseInt(footerNode.getBoundingClientRect().height) : 0\n const contentHeight = contentNode ? parseInt(contentNode.getBoundingClientRect().height) : 0\n let idealMaxHeight = parseInt(maxHeight) - headerHeight - footerHeight\n idealMaxHeight = contentHeight < idealMaxHeight ? contentHeight : idealMaxHeight\n bodyNode.style.height = `${idealMaxHeight}px`\n forceRepaint(this.element)\n\n // Get other numbers to make final calculations\n const viewportHeight = (window.innerHeight || document.documentElement.clientHeight)\n const edgeMargin = 20\n elementRect = this.element.getBoundingClientRect()\n\n if ((viewportHeight - edgeMargin) < elementRect.bottom) {\n // Overflows, a better height is necessary\n let betterHeight = parseInt(viewportHeight - elementRect.top - edgeMargin)\n betterHeight = betterHeight >= parseInt(minHeight) ? betterHeight : parseInt(minHeight)\n bodyNode.style.height = `${betterHeight - headerHeight - footerHeight}px`\n }\n }\n\n // Restore previous properties\n if (!isOpened) this.element.classList.remove('in')\n this.element.style.opacity = null\n this.element.style.transitionDuration = null\n forceRepaint(this.element)\n }\n\n return this\n }\n\n _getBodyNode () {\n return this.element.querySelector('.c-floating-box__body')\n }\n\n _getContentNode () {\n return this.element.querySelector('.c-floating-box__body-content')\n }\n\n _getHeaderNode () {\n return this.element.querySelector('.c-floating-box__header')\n }\n\n _getFooterNode () {\n return this.element.querySelector('.c-floating-box__footer')\n }\n}\n\nregisterComponent(FloatingBox, definition.name, definition)\n","import { TitleTemplate } from '../../components/title/c-title.template'\nimport { TextboxTemplate } from '../textbox/c-textbox.template'\nimport { DropdownTemplate } from '../dropdown/c-dropdown.template'\nimport { DateSelectorTemplate } from '../date-selector/c-date-selector.template'\nimport { ChoiceListTemplate, defaultChoiceListData } from '../choice-list/c-choice-list.template'\nimport { PhoneInputTemplate } from '../phone-input/c-phone-input.template'\n\n/**\n * The FormFieldset contains all data needed to hydrate a Form Fieldset view\n *\n * @typedef {Object} FormFieldsetData\n *\n * @property {String} title - Title of the field set\n * @property {String} extraClasses - Extra classes to be rendered\n * @property {String} html - Content of the field set\n * @property {String} components - List of components to render automatically in replacement of html field\n */\nexport const defaultFormFieldsetData = {\n}\n\nexport const FormFieldsetTemplate = (d) => {\n d = { ...defaultFormFieldsetData, ...d }\n return `\n
\n ${d.title || d.description\n ? `
\n ${d.title\n ? `${TitleTemplate({\n text: d.title,\n size: 'tiny',\n variant: ''\n })}`\n : ''}\n \n ${d.description\n ? `
${d.description}
`\n : ''}\n
`\n : ''}\n\n
\n\n ${d.html ? d.html : ''}\n \n ${d.components\n ? d.components.map(component =>\n FieldTemplate(component)\n ).join('')\n : ''}\n
\n
\n `\n}\n\nconst defaultFieldData = {\n size: 'small',\n data: {\n extraClasses: ''\n }\n}\n\nconst FieldTemplate = (d) => {\n d = { ...defaultFieldData, ...d }\n d.data.extraClasses = d.data.extraClasses + ' c-form__item c-form__item--' + d.size\n\n return `\n ${d.type === 'c-textbox'\n ? TextboxTemplate(d.data)\n : ''}\n \n ${d.type === 'c-dropdown'\n ? DropdownTemplate(d.data)\n : ''}\n \n ${d.type === 'c-date-selector'\n ? DateSelectorTemplate(d.data)\n : ''}\n \n ${d.type === 'c-choice-list'\n ? ChoiceListTemplate({ ...defaultChoiceListData, ...d.data })\n : ''}\n\n ${d.type === 'c-phone-input'\n ? PhoneInputTemplate(d.data)\n : ''}\n \n `\n}\n","const defaultOptions = {\n siteKey: '6LeAy1cUAAAAALiBq30Rt-gcDYnZGCgEWq-anpg-'\n}\n\n/**\n * An engine to include reCAPTCHA in c-form components that are setup to have one.\n * Types supported:\n * * reCAPTCHA v2 Invisible. Validates requests in the background.\n * It attaches to the button submit of the c-form and *needs* post-processing of event 'recaptcha-form-submit'.\n */\nexport default class RecaptchaEngine {\n /**\n * Creates a new recaptcha in the form provided as element with the options provided.\n * @constructor\n * @param {Element} element - The targeted HTML form element\n * @param {Object} options - The recaptcha options\n */\n constructor (element, options = {}) {\n this.element = element\n this.options = Object.assign({}, defaultOptions, options)\n this.selectors = {}\n this._init()\n }\n\n /**\n * Creates a recaptchas in all forms that have the attribute data-c-form__recaptcha to true.\n * @returns {RecaptchaEngine[]} The created instances\n */\n static createRecaptchasOnDocument () {\n const recaptchaInstances = []\n const currentComponents = RecaptchaEngine.getRecaptchasOnDocument()\n for (let i = 0; i < currentComponents.length; i++) {\n const current = currentComponents[i]\n const options = RecaptchaEngine.getOptions(current)\n const instance = RecaptchaEngine.createRecaptchaOnForm(current, options)\n\n recaptchaInstances.push(instance)\n }\n\n return recaptchaInstances\n }\n\n static getRecaptchasOnDocument () {\n return window.document.querySelectorAll('.c-form[data-c-form__recaptcha]')\n }\n\n /**\n * Creates a new RecaptchaEngine in the form provided as element.\n * @param {Element} element - The targeted HTML form element\n * @param {Object} options - The options of the recaptcha\n * @returns {RecaptchaEngine} The created instance\n */\n static createRecaptchaOnForm (element, options) {\n return new RecaptchaEngine(element, options)\n }\n\n /**\n * Resolves the recaptcha options for the element provided.\n * @param {Element} element - the element for which options will be resolved.\n */\n static getOptions (element) {\n const options = defaultOptions\n const siteKey = element.getAttribute('data-c-form__recaptcha-site-key')\n if (siteKey && siteKey !== '') {\n options.siteKey = siteKey\n }\n return options\n }\n\n /**\n * Indicates if grecaptcha script is available or not.\n */\n static isGRecaptchaAvailable () {\n return typeof window.grecaptcha !== 'undefined' && window.grecaptcha\n }\n\n /**\n * Injects the recaptcha API script into the document.\n */\n static injectRecaptchaScript (callbackName) {\n const currentComponents = RecaptchaEngine.getRecaptchasOnDocument()\n if (currentComponents.length > 0) {\n // resolve the src\n let src = 'https://www.google.com/recaptcha/api.js?onload=' + callbackName + '&render=explicit'\n const language = document.documentElement.getAttribute('lang')\n if (language && language !== '') {\n src = src + '&hl=' + language\n }\n\n // Inject the script\n const tag = document.createElement('script')\n document.head.appendChild(tag)\n tag.src = src\n }\n }\n\n /**\n * Initialization of the RecaptchaEngine, creating the recaptcha inside the form with the options provided.\n * @returns {RecaptchaEngine} self instance\n */\n _init () {\n this.selectors.submitButton = this.element.querySelector('[type=\"submit\"]')\n this.element.addEventListener('form-validation-failed', this._reset.bind(this))\n this._initRecaptcha()\n }\n\n _initRecaptcha () {\n if (RecaptchaEngine.isGRecaptchaAvailable()) {\n this.recaptchaId = window.grecaptcha.render(this.selectors.submitButton, {\n sitekey: this.options.siteKey,\n size: 'invisible',\n callback: function (token) {\n this._submitForm()\n }.bind(this)\n })\n }\n return this\n }\n\n _submitForm () {\n this.element.dispatchEvent(new window.CustomEvent('recaptcha-form-submit'))\n }\n\n _reset () {\n if (RecaptchaEngine.isGRecaptchaAvailable()) {\n window.grecaptcha.reset(this.recaptchaId)\n }\n }\n}\n","import * as loadQueueHelper from '../../../js/document/load-queue'\nimport RecaptchaEngine from './recaptcha'\n\nloadQueueHelper.add(function () {\n window.createRecaptchasOnDocument = RecaptchaEngine.createRecaptchasOnDocument\n RecaptchaEngine.injectRecaptchaScript('createRecaptchasOnDocument')\n}, 3)\n"],"names":["defaultCheckboxData","id","name","value","text","size","checked","halfChecked","disabled","unresolved","hasChild","link","html","CheckboxTemplate","d","concat","required","state","dataset","illustrationSrc","extraClasses","replace","Object","keys","map","k","fromCamelCase","join","illustrationAlt","imageSrc","imageAlt","href","target","count","additionalText","tokensShared","require","tokensBrand","error","tokens","_objectSpread","defaultChipData","variant","undefined","highlighted","removable","linkable","mandatory","attributes","ChipTemplate","getTokenClass","encodeAttributes","ChoiceListExtraClasses","defaultChoiceListData","track","method","label","items","tooltip","hasRichOptions","showInSlider","hideRequiredSymbol","defaultRichChoiceItemData","extraClassesForRichOption","retrieveExtraClassesForOption","defaultItemData","itemData","arrDefaultItemExtraClasses","split","arrItemExtraClasses","_toConsumableArray","Set","filter","e","renderOption","item","radioButtonData","checkBoxData","dataFromParent","uid","RadioButtonTemplate","renderRichOption","richOptionExtraClassesArray","s","richOptionExtraClasses","extraRichContent","getOptionItems","defaultRadioButtonData","ChoiceListTemplate","minlength","TooltipTemplate","defaultTooltipData","ChoiceListOptionTemplateVerticalBoxed","SliderTemplate","center","stretch","luminosity","outerNavigation","withGradient","globalLocales","register","language","attr","definition","props","type","allowedValues","defaultValue","ChoiceList","_Component","_inherits","_super","element","_this","_classCallCheck","call","silentErrors","selectedValues","getSelectedValuesFromOptions","attachEvents","events","on","changes","setProp","options","silent","forceUpdate","messagesElement","querySelector","messageRequired","getAttribute","getOptionsElement","labelElement","getSelectedValues","bind","_assertThisInitialized","getReducedSelectedValuesFromOptions","disableComponent","enableComponent","validate","enableErrors","styleValidity","getValidationMessages","registeredEvents","registerComponentEvents","hasAttribute","key","_this2","this","querySelectorAll","forEach","push","change","ev","onChange","clearElement","click","onClear","domEventsHelper","optionsElement","optionsSelector","getProp","getShowInSlider","children","el","matches","getOptionDataFromOptionElement","option","innerText","input","mappedOptions","isSlider","optionItemElement","inputElement","classList","add","remove","oldItems","_this3","_flushOptionElements","appendChild","itemsToElements","fragment","document","createDocumentFragment","_newOptionElement","subFragment","elementFromString","updateSelectedOptionsAndElements","isDynamic","length","_clearButtonElement","emit","getSelectedOptions","apply","_this4","setSliderOptions","matchOption","findOptionByValue","isNestedChoiceList","optionLevel","level","parentElement","parentNode","nodeType","getOptionLevel","setEveryChildSelected","findElementByValue","stopPropagation","nested","_this5","arguments","subOption","setOptionChecked","_this6","everySelected","hasEverySelectedChild","setOptionHalfChecked","childSelected","hasAnySelectedChild","findInputByValue","closest","firstChild","removeChild","isRichOption","locales","BtnTemplate","clearFilter","validateOnly","isValid","elements","getOptions","_isSingleSelectionChoceList","selectedElement","find","parseInt","elementIsValid","validity","valid","messages","firstOptionElement","validationObject","errorMessages","fieldName","fieldType","choiceListEvents","CHOICE_LIST_VALIDATION_ERROR","firstOption","Array","from","innerHTML","message","optionElement","extraContent","extraRichContentElement","nextElementSibling","highlightText","htmlContent","contains","textContent","showExtraContentDiv","Component","registerComponent","defaultCollapseData","blockText","collapseHeight","maxItems","opened","childrenWrapper","collapseFrom","CollapseTemplate","groupId","defaultCollapseTriggerData","action","smooth","textPattern","arrow","ariaLabel","CollapseTriggerTemplate","classNames","actionElements","Collapse","childrenWrapperElement","_buildEvents","_getActionElements","_getGroupCollapseElements","_showHiddenItems","_updateActionElements","_updateHeight","_updateActionElementsVisibility","_updateActionElementsDisabled","open","close","toggle","update","isOpened","eventData","_getEventData","opc","_open","_close","_setMaxItemsAttribute","setMaxItems","collapseEvents","OPEN","_closeGroupCollapses","transitionTime","cssTimeToMs","getStyle","style","transitionDuration","maxHeight","clientHeight","scrollHeight","isScrollable","safeMargin","_showAllItemsOfCollapse","currentTransition","window","clearTimeout","setTimeout","OPENED","CLOSE","forceRepaint","_isByItems","CLOSED","scroll","documentScrollingElement","scrollingElement","documentElement","collapsibleBoundingRect","getBoundingClientRect","scrollTop","y","scrollLeft","_actionElements","_groupCollapseElements","index","display","finalFn","_height","_transitionTime","_updateActionElementsState","_updateActionElementsText","_this7","showActionElements","isBlockText","hiddenItems","childElementCount","minHeight","_this8","toString","_this9","component","_this10","_events","resize","utilsHelper","tokensCollections","defaultCollectionImageData","sync","resolve","defaultCollectionItemData","titleTag","collection","title","subTitle","image","CollectionItemTemplate","collectionId","collectionToken","getToken","ImgTemplate","defaultImgData","colorScheme","defaultCollectionRowData","expandedFrom","neutral","collectionLabelHidden","tiledFrom","CollectionRowTemplate","componentLocales","defaultDateSelectorData","blockModifier","date","minDate","maxDate","validations","monthType","hiddenMainLabel","mainLabel","dayPlaceholder","monthPlaceholder","yearPlaceholder","messageInvalid","messageOutOfBounds","dropdownConfig","placeholder","showDefaultOption","hiddenLabel","hasClearButton","icon","clearButtonAttributes","DateSelectorTemplate","DropdownTemplate","DateSelectorMessagesTemplate","da","de","en","nb","fr","nl","sv","dateLocales","monthNames","default","months","short","months_short","today","Date","dateToString","getFullYear","getMonth","getDate","DateSelector","dateConfig","_init","getShownDate","validationErrors","isReal","isInBounds","isOutOfBounds","_attachMonthEventListeners","dateString","property","_getPropInstance","isAllowedValue","isNullable","_this$_validateAll","_validateAll","console","warn","createDate","noTimeZoneDate","_setDatePropAndAttribute","_parseDate","justCheck","_ref","day","month","year","dateDropdowns","_getDateDropdowns","valueToStringOrEmpty","isNaN","_setValidationState","isDisabled","_setDateConfig","monthItem","isRequired","isEmpty","_fullDateIsEmpty","isValidDate","values","every","messageTypes","isErrorState","_setValidationErrors","_getValidationMessageTypes","errorTypes","_getFullDateString","reduce","obj","_defineProperty","isInvalidDate","isValidDateString","_normalizeDates","_setListeners","validationType","entries","_ref2","_ref3","_slicedToArray","_getErrorElement","errorMessage","_getValidationMessages","errorElement","_this$validationError","_this$validationError2","_this$validationError3","_ref4","_ref5","propName","setAttribute","dateTemp","_checkDates","_setDropdownPlaceholders","_populateDropdowns","monthDropdownValue","_ref6","Number","isNumberNotNull","dropdownElement","_ref7","_ref8","setMinDate","setMaxDate","config","dateToChange","dropdownComponent","fullDateString","stateValue","_this$dateConfig","days","range","years","reverse","areDatesInSameYear","areDatesInSameMonth","defaultEmptyOption","_ref9","buffer","lastKeyTime","now","monthDropdown","keydown","onKeyDown","toLowerCase","indexOf","currentTime","valueForMonthOption","preventDefault","isAnyOptionSelected","anySelected","some","o","selected","selectedItemSingle","renderSelectedItemsCompact","selectedItems","nestedOptions","n","isHalfChecked","NestedOptions","mapNestedOptionsToCheckboxViewModels","dropdownId","indexParent","buildChoiceListItem","choiceListItems","defaultDropdownMultipleData","floatingBoxContent","DropdownMultipleTemplate","FloatingBoxTemplate","gradient","floatsFrom","floatingBoxBody","FloatingBoxBodyTemplate","buildFloatingBoxBody","floatingBoxFooter","FloatingBoxFooterTemplate","defaultButtonData","cancelButtonText","okButtonText","buildFloatingBoxFooter","defaultDropdownSingleOptionData","DropdownSingleOptionTemplate","defaultDropdownSingleData","DropdownSingleTemplate","elementAttributes","iconPosition","defaultDropdownMultipleCompactItemData","componentQueries","changeEvent","CustomEvent","bubbles","cancelable","DropdownMultiple","floatingBox","floatingBoxApi","xoiceList","xoiceListApi","optionsData","getOptionsData","focusElement","optionsListElement","cancelElement","submitElement","focus","onFocus","mousedown","onClickChipList","onCancel","onSubmit","isCompact","JSON","parse","stringify","_updateOptions","_recoverFocus","addEventListener","toggleFloatingBox","getOkButtonLabelText","getOkButton","getCancelButtonLabelText","getCancelButton","getLabel","fallbackValues","_openedEvents","onDocumentClick","moveFocusToFirstElement","updateChevron","focusableOptions","lastFocusedElement","lastFocusedIndex","detachEvents","shouldEmit","save","newOptions","includes","getOptionsDataFromOptions","getText","matchValue","matchInput","dispatchEvent","keyCode","currentElementIndex","activeElement","nextElement","newIndex","shouldSave","queueFilterEvent","targetClicked","_flushOptionsElements","newItem","_newItemElement","newChip","_newChipElement","chipData","chip","newChipData","ItemData","newItemData","_regeneratorRuntime","t","r","prototype","hasOwnProperty","defineProperty","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","h","l","f","GeneratorFunction","GeneratorFunctionPrototype","p","getPrototypeOf","v","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","_typeof","__await","then","callInvokeWithMethodAndArg","Error","done","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","info","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","_toPropertyKey","getOwnPropertyDescriptors","defineProperties","_defineProperties","descriptor","hint","prim","toPrimitive","res","String","_toPrimitive","_setPrototypeOf","self","ReferenceError","_getPrototypeOf","Dropdown","_setValue","subClass","superClass","Constructor","protoProps","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","result","Super","NewTarget","_possibleConstructorReturn","instance","requestAnimationFrame","syncSelected","clearNode","_getClearNode","getSelectNode","getValue","getPlaceholder","selectNode","onClick","focusout","onFocusOut","cDropdown__placeholder","_x","fn","_callee","_args","_context","args","err","array","noDefaultItems","selectedOption","selectedValue","selectElement","removeAttribute","isEmptyAndRequired","_styleValidity","ELEMENT_QUERIES","FavoriteButton","staticData","getStaticData","favorites","hasItem","itemId","itemToggled","contextItemId","eventCallback","shouldDisplayModal","openModal","active","removeItemAsync","publicationCode","favoriteEvents","FAVORITE_REMOVE","addItemAsync","FAVORITE_ADD","registerWidgetEvents","modal","renderModal","body","initDocumentComponentsFromAPI","attachModalEvents","newGUID","modalId","ModalTemplate","modalTitle","bodyContent","getModalBody","footerContent","getModalFooter","headerSize","modalBodyText","loginUrl","encodeURIComponent","URL","modalLoginButtonText","modalFooterText","modalFooterLinkText","modalApi","FAVORITE_MODAL_OPEN","FAVORITE_MODAL_CLOSE","FAVORITE_SIGNUP","FAVORITE_LOGIN","staticDataElement","data","wStaticContentDataId","wStaticContentDataName","countryId","wStaticContentDataAccoCountryId","cityId","wStaticContentDataAccoRegionId","rating","wStaticContentDataRating","badges","wStaticContentDataBadges","category","wStaticContentDataCategory","location","wStaticContentDataLocationId","accoStarts","wStaticContentDataAccoStars","_asyncToGenerator","FavoriteCleaner","btn","search","emptyFavorites","FavoriteCollector","itemsLength","newCount","EventEmitter","cookieName","cookieApiName","cookieMigratedName","cookieSettings","expirationDays","path","_addItemAsync","_removeItemAsync","_reset","_getFavouritesAsync2","_addFavouriteAsync2","_removeFavouriteAsync2","_removeAllFavouritesAsync2","_editFavouritesApiCallAsync2","_getFavouritesApiCallAsync2","Favorites","favouritesElement","isUserLoggedIn","useApi","urls","addUrl","removeUrl","removeAllUrl","getUrl","_getFavouritesAsync","response","favouritesException","accos","jsonData","accoIds","favouritesMigrated","_deleteCookie","_setCookieMigrated","_updateCookie","isSunwebCeLoggedIn","cookieData","_getCookie","_isCookieMigrated","currentData","m","Collection","_canUseApi","_this$data","models","_this$favouritesEleme","_x2","_x3","added","_addFavouriteAsync","success","addItem","_x4","_x5","_x6","_callee2","removed","itemToRemove","_context2","findWhere","_removeFavouriteAsync","storage","cookie","get","set","delete","_x7","_callee3","_context3","_removeAllFavouritesAsync","_callee4","favouritesMigratedHeader","favouritesExceptionHeader","_context4","_getFavouritesApiCallAsync","headers","test","_x8","_x9","_x10","_callee5","accommodationId","_context5","_editFavouritesApiCallAsync","_x11","_x12","_x13","_callee6","_context6","_callee7","_context7","_x14","_x15","_x16","_x17","_callee8","url","requestUrl","_context8","getUrlFromString","fetchJsonData","fullReferrerOnCrossOrigin","t0","log","_x18","_callee9","_context9","fetchJsonDataAndHeaders","defaultFloatingBoxData","content","defaultFloatingBoxBodyData","defaultFloatingBoxFooterData","defaultFloatingBoxHeaderData","FloatingBoxHeaderTemplate","FloatingBox","adjustSize","forceClosedCallback","_closed","transitionTimeout","closedResolve","closedBound","cb","bodyNode","_getBodyNode","height","right","left","opacity","elementRect","horizontalOverflow","innerWidth","headerNode","_getHeaderNode","footerNode","_getFooterNode","contentNode","_getContentNode","headerHeight","footerHeight","contentHeight","idealMaxHeight","viewportHeight","innerHeight","bottom","betterHeight","top","defaultFormFieldsetData","FormFieldsetTemplate","description","TitleTemplate","components","FieldTemplate","defaultFieldData","TextboxTemplate","PhoneInputTemplate","defaultOptions","siteKey","RecaptchaEngine","assign","selectors","recaptchaInstances","currentComponents","getRecaptchasOnDocument","current","createRecaptchaOnForm","grecaptcha","callbackName","src","tag","createElement","head","submitButton","_initRecaptcha","isGRecaptchaAvailable","recaptchaId","render","sitekey","callback","token","_submitForm","loadQueueHelper","createRecaptchasOnDocument","injectRecaptchaScript"],"sourceRoot":""}