{"version":3,"file":"static/chunks/42-c2ac08fd5ee065e5.js","mappings":"wMA0BO,SAASA,EAAU,CAAEC,QAAAA,CAAO,CAAuD,EACxF,IAAMC,EAAgBC,CAAAA,EAAAA,EAAAA,MAAAA,EAAO,IACvB,CAACC,EAAcC,EAAgB,CAAGC,CAAAA,EAAAA,EAAAA,QAAAA,EACL,CAAC,CAACC,OAAOC,UAAU,EAAEC,OAElDC,EAAYC,CAAAA,EAAAA,EAAAA,EAAAA,EAAI,4BAmDtB,CAjDAC,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR,GAAI,CAACV,EAAcW,OAAO,EAAIT,GAAgBH,EAAS,CACrD,GAAM,CACJa,UAAAA,CAAS,CACTC,UAAAA,CAAS,CACTC,QAAAA,CAAO,CACPC,SAAAA,CAAQ,CACRC,QAAAA,CAAO,CACPC,UAAAA,CAAS,CACTC,gBAAAA,CAAe,CACfC,cAAAA,CAAa,CACbC,mBAAAA,CAAkB,CACnB,CAAGrB,CACJC,CAAAA,EAAcW,OAAO,CAAG,GAoD5BN,OAAOgB,WAAW,CAAG,CACnBC,MAAO,EAAE,CACTC,KAAM,CACJC,WAAY,CACVC,QAAS,aACTC,eAAgB,IAChBC,QAASlB,CAAAA,EAAAA,EAAAA,EAAAA,EAAI,UACf,EACAmB,SAAU,CACRC,IAAK,UACLC,SAAU,GACZ,EACAC,SAAU,CACRC,eAAgB3B,OAAO4B,QAAQ,CAACC,IAAI,CACpCC,SAAU,QACZ,CACF,CACF,EAnEQpC,EAA+BqC,gBAAgB,CACjDC,EACE,yBACA,CAAC,QAAQ,EAAEtB,EAASuB,WAAW,GAAG,CAAC,EAAEzB,EAAU,CAAC,EAAEK,EAAgB,QAAQ,EACxEnB,EAA+BqC,gBAAgB,CAChD,CAAC,EAGJC,EACE,yBACA,CAAC,QAAQ,EAAEtB,EAASuB,WAAW,GAAG,CAAC,EAAEzB,EAAU,CAAC,EAAEK,EAAgB,OAAO,EACvEF,EAAU,UAAY,GACvB,CAAC,EAINqB,EAAe,yBAA0BtB,GACzCsB,EAAe,sBAAuBzB,GACtCyB,EAAe,gCAAiCnB,GAC5CE,GACFiB,EAAe,4BAA6BjB,GAE9CiB,EAAe,2BAA4B,CAAC,EAAEnB,EAAgBqB,iBAAiB,GAAG,OAAO,CAAC,EAC1F,GAAaF,EAAe,4BAA6BrB,GACzD,GACIC,GACFoB,EAAe,0BAA2B,CAAC,EAAErB,EAAQ,CAAC,EAAEC,EAAU,CAAC,EACrE,GAAaoB,EAAe,mCAAoCvB,GAoDpET,QAAQgB,aAAaC,OAAOkB,KAAK,CAAEC,UAAW,CAAEC,YAlDnC,gBAkDqD,CAAE,GAJpErC,QAAQC,YAAYC,QA7CVY,EACR,CACF,EAAG,CAACpB,EAASG,EAAa,EAEtBM,GAEA,GAAAmC,EAAAC,GAAA,EAACC,IAAMA,CACLC,SAAS,mBACTC,IAAKvC,EACLwC,OAAQ,KACN7C,EAAgB,GAClB,IAKC,IACT,CAuBA,SAASkC,EAAeY,CAAY,CAAEC,CAAc,EAClD7C,QAAQgB,aAAe8B,IAAI9C,OAAOgB,WAAW,CAAE4B,EAAMC,EACvD,gICvFO,IAAME,EAASC,EAAAA,UAAgB,CACpC,CACE,CACEC,oBAAAA,CAAmB,CACnBC,QAAAA,EAAU,EAAK,CACfC,WAAAA,CAAU,CACVC,MAAOC,EAAc,EAAE,CACvBC,iBAAAA,CAAgB,CAChBC,YAAAA,CAAW,CACXC,MAAAA,CAAK,CACL,GAAGC,EACJ,CACDC,KAEA,IAAMC,EAAWC,CAAAA,EAAAA,EAAAA,EAAAA,IACXC,EAAeb,EAAAA,MAAY,CAAiB,MAC5C,CAAEc,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,cACvBX,EAAQJ,EAAAA,OAAa,CACzB,IACE,IACKK,EACHM,EACK,CACCK,GAAI,YACJC,IAAK,GACLC,IAAKL,CACP,EACA,KACL,CAACM,MAAM,CAACC,SACX,CAACf,EAAaM,EAAS,EAGnBU,EAAkBjB,EAAMkB,MAAM,CAC9BC,EAAqBF,EAAkB,EAAIG,KAAKC,IAAI,CAACJ,GAAAA,GAAyB,EAC9EK,EAAqBtB,EAAMuB,KAAK,CAAC,EAAGJ,GACpCK,EAAsBxB,EAAMuB,KAAK,CAACJ,EAAoBF,GAEtDQ,EAASrB,SAAAA,EAiBf,OAfAR,EAAAA,SAAe,CAAC,KACd,GAAI,CAACW,GACD,CAACE,EAAavD,OAAO,CADV,OASf,IAAMwE,EAAW,IAAIC,iBAPc,IACjC,IAAK,IAAMC,KAAYC,EACC,cAAlBD,EAASE,IAAI,EACfrB,EAAavD,OAAO,EAAE6E,eAAeC,gBAAgB,cAG3D,GAGA,OADAN,EAASO,OAAO,CAACxB,EAAavD,OAAO,CAAE,CAAEgF,UAAW,GAAMC,QAAS,EAAK,GACjE,IAAMT,EAASU,UAAU,EAClC,EAAG,CAAC7B,EAAS,EAGX,GAAA8B,EAAAlD,GAAA,EAACmD,SAAAA,CACCC,UAAWC,IAAG,sCAAuC,CACnD,+BAAgCf,CAClC,GACAgB,cAAY,aACZ3B,IAAKR,EACJ,GAAGD,CAAI,UAER,GAAAgC,EAAAK,IAAA,EAACC,MAAAA,CACCJ,UAAWC,IAAG,YAAa,CACzB,kBAAmB1C,EACnB8C,UAAW,CAAC9C,CACd,aAEA,GAAAuC,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,4CACb,GAAAF,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,qBACb,GAAAF,EAAAlD,GAAA,EAAC0D,KAAAA,CAAGC,mBAAiB,oBAAoBP,UAAU,mBAChD7B,EAAE,iBAEL,GAAA2B,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,2EACZ,CAAC,CAACrC,GACD,GAAAmC,EAAAK,IAAA,EAACC,MAAAA,CACCJ,UAAWC,IACT,oEACA,CACE,wVACEf,CACJ,GAED,GAAIlB,GAAY,CAAEK,GAAI,gBAAiB,CAAC,WAEzC,GAAAyB,EAAAK,IAAA,EAACK,EAAAA,EAAIA,CAAAA,CACF,GAAG7C,CAAgB,CACpB8C,UAAW,GACXT,UAAWC,IAAG,sCAAuC,CACnD,sCAAuC,CAACpC,EACxC,sCAAuCqB,CACzC,aAEA,GAAAY,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAW7B,EAAE,WAC7B,GAAA2B,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,qBAAarC,EAAiBgD,KAAK,MAEpD,GAAAb,EAAAlD,GAAA,EAACwD,MAAAA,UACC,GAAAN,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACHlC,IAAI,6GACJsC,YAAa,GACbZ,UAAWC,IAAG,UAAW,CACvB,sCAAuC,CAACpC,EACxC,oBAAqBqB,CACvB,YAECf,EAAE,sBAKV,CAAC,CAACb,GACD,GAAAwC,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,iCACb,GAAAF,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACF,GAAGlD,CAAmB,CACvBmD,UAAW,GACXT,UAAU,mFAET1C,EAAoBqD,KAAK,EAAIxC,EAAE,qBAElC,GAAA2B,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,iCAAyB7B,EAAE,sBAI7CP,GAAeA,GAAae,OAAS,GACpC,GAAAmB,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,wBACb,GAAAF,EAAAlD,GAAA,EAACkE,KAAAA,CAAGd,UAAU,2DACXpC,EAAYmD,GAAG,CAAC,CAAC,CAAEC,QAAAA,CAAO,CAAE1C,IAAAA,CAAG,CAAE,GAE9B,GAAAwB,EAAAlD,GAAA,EAACqE,KAAAA,UACC,GAAAnB,EAAAK,IAAA,EAACe,IAAAA,CACChF,KAAMoC,EACN0B,UAAU,QACVmB,OAAO,SACPC,IAAI,sBACJC,aAAY,CAAC,EAAEL,EAAQ,EAAE,EAAE7C,EAAE,UAAU,CAAC,WAExC,GAAA2B,EAAAlD,GAAA,EAAC0E,MAAAA,CACCC,IAAKP,EACLhB,UAAU,SACVjD,IAAK,CAAC,4BAA4B,EAAEiE,EAAQ,IAAI,CAAC,GAEnD,GAAAlB,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAU,oBAAU,KAAG7B,EAAE,iBAb1B,CAAC,cAAc,EAAE6C,EAAQ,CAAC,UAsB/C,GAAAlB,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,+GACZjB,EAAmBJ,MAAM,CAAG,GAC3B,GAAAmB,EAAAlD,GAAA,EAACkE,KAAAA,UACE/B,EAAmBgC,GAAG,CACrB,CAAC,CACCS,eAAAA,CAAc,CACdZ,YAAAA,CAAW,CACXD,MAAAA,CAAK,CACLc,6BAAAA,CAA4B,CAC5B,GAAGC,EACJ,GACC,GAAA5B,EAAAlD,GAAA,EAACqE,KAAAA,CACCjB,UAAU,OAET,GAAG2B,EAA2BD,EAAM,UAErC,GAAA5B,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACF,GAAGkB,CAAK,CACTE,gBAAiB3B,IAAGyB,EAAME,eAAe,CAAE,CACzC,yCAA0C1C,CAC5C,GACAsC,eAAgBA,EAChBZ,YAAaA,EACbiB,wBAAuBJ,GAA8BK,KACrDC,yBAAwBN,GAA8BvE,eAErDyD,KAbEA,GAASe,GAAOrD,IAAMqD,GAAOpD,QAoB3CW,EAAoBN,MAAM,CAAG,GAC5B,GAAAmB,EAAAlD,GAAA,EAACkE,KAAAA,UACE7B,EAAoB8B,GAAG,CACtB,CAAC,CACCS,eAAAA,CAAc,CACdZ,YAAAA,CAAW,CACXD,MAAAA,CAAK,CACLc,6BAAAA,CAA4B,CAC5B,GAAGC,EACJ,GACC,GAAA5B,EAAAlD,GAAA,EAACqE,KAAAA,CACCjB,UAAU,OAET,GAAG2B,EAA2BD,EAAM,UAErC,GAAA5B,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACF,GAAGkB,CAAK,CACT1B,UAAWC,IAAG,8CAA+C,CAC3D,iBAAkB,CAACpC,EACnB,sBAAuBqB,CACzB,GACA0C,gBAAiB3B,IAAG,CAClB,yCAA0Cf,CAC5C,GACAsC,eAAgBA,EAChBZ,YAAaA,EACbiB,wBAAuBJ,GAA8BK,KACrDC,yBAAwBN,GAA8BvE,eAErDyD,KAjBEA,GAASe,EAAMpD,GAAG,EAAIoD,GAAOrD,aA0B/Cb,GAAcA,EAAWmB,MAAM,CAAG,GACjC,GAAAmB,EAAAlD,GAAA,EAACwD,MAAAA,UACC,GAAAN,EAAAlD,GAAA,EAACkE,KAAAA,CAAGd,UAAU,sEACXxC,EAAWuD,GAAG,CAAC,CAAC,CAAES,eAAAA,CAAc,CAAEb,MAAAA,CAAK,CAAEC,YAAAA,CAAW,CAAE,GAAGc,EAAO,GAC/D,GAAA5B,EAAAlD,GAAA,EAACqE,KAAAA,CACCjB,UAAU,iEAGV,GAAAF,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACF,GAAGkB,CAAK,CACT1B,UAAWC,IAAG,CACZ,oBAAqBf,CACvB,GACAsC,eAAgBA,EAChBZ,YAAaA,WAEZD,KAVEA,GAASe,EAAMpD,GAAG,EAAIoD,GAAOrD,SAiB5C,GAAAyB,EAAAK,IAAA,EAACU,IAAAA,CACCb,UAAWC,IAAG,wBAAyB,CACrC,OAAQzC,GAAcA,EAAWmB,MAAM,CAAG,EAC1C,oBAAqBO,CACvB,GACA8C,yBAAwB,aACzB,OACQ,IAAIC,OAAOC,WAAW,GAAG,iBAK1C,GAGF,SAASP,EAA2BD,CAAW,EAC7C,GAAIA,cAAAA,EAAMrD,EAAE,CACV,MAAO,CACL,cAAe,EACjB,CAEJ,CAEAjB,EAAO+E,WAAW,CAAG,uBGzSd,SAASC,EAAa,CAAExH,UAAAA,CAAS,CAAEG,SAAAA,CAAQ,CAA2C,EAC3F,GAAM,CAAEsH,KAAAA,CAAI,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAmB,CAAE1H,UAAAA,EAAWG,SAAUA,GAAY,IAAK,GAC5E,MACE,GAAA+E,EAAAlD,GAAA,EAACQ,EAAMA,CACLK,MAAO4E,GAAME,OAAOxC,QAAQyC,UAAUC,OAAO,CAACC,EAAMC,IAC3CD,EAAKE,MAAM,CAACD,EAAKlF,KAAK,EAC5B,EAAE,EACLE,iBAAkB,CAChBW,IAAK,sBACLqC,MAAO,gBACT,EACArD,oBAAqB,CACnBgB,IAAK,6BACLsC,YAAa,EACf,GAGN,8LCXO,IAAMiC,EAA2C,CACtDC,cAAe,iBACfC,gBAAiB,CAAC;;;;;CAKnB,CAAC,CACAC,eAAgB,kCAClB,EA2BaC,EAAuC,CAClDH,cAAe,QACfC,gBAAiB,CAAC;;;;;;;;;;;CAWnB,CAAC,CACAC,eAAgB,8BAClB,CCpDEC,CAAAA,EAAqCD,cAAc,CAEnDH,EAAyCG,cAAc,CCXlD,IAAME,EAAsB,CACjCC,GAAI,UACJC,GAAI,YACJC,GAAI,QACJC,GAAI,QACJC,GAAI,UACJC,GAAI,UACJC,GAAI,aACJC,GAAI,QACJC,GAAI,cACJtF,GAAI,mBACJuF,GAAI,WACJC,GAAI,MACJC,GAAI,MACJC,GAAI,aACJC,GAAI,QACJC,GAAI,SACJC,GAAI,eACJC,GAAI,YACJC,GAAI,UACJC,GAAI,UACJC,GAAI,MACJC,GAAI,eACJ,UAAW,OACX,UAAW,MACb,0BCuKO,SAASC,EAAoBC,CAAY,EAC9C,GAAIA,UAAAA,EACF,MAAO,UAET,GAAIA,UAAAA,EACF,MAAO,UAET,IAAMC,EAAeD,EAAKE,KAAK,CAAC,IAAI,CAAC,EAAE,CACvC,OAAOD,GAAcE,eAAiB,IACxC,CAEO,SAASC,EAAgBC,CAAiB,CAAEC,CAAyB,EAC1E,IAAMC,EAAcC,EAAAA,CAASA,CACzB5K,OAAO4B,QAAQ,CAACC,IAAI,CAACgJ,OAAO,CAC1BC,OAAO,CAAC,CAAC,EAAE9K,OAAO4B,QAAQ,CAACmJ,QAAQ,CAACT,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EACpD,CAAC,CAAC,EAAEG,EAAU,CAAC,CAAC,EAElB,GACJ,OAAOC,EAAkBC,EAAYL,KAAK,CAAC,IAAI,CAAC,EAAE,CAAGK,CACvD,CAEO,SAASK,EAAaC,CAAwB,EAGnD,MAAO,IAFUA,EAAU9G,MAAM,CAAC,GAAU+G,CAAAA,EAAAA,EAAAA,CAAAA,EAAMC,EAAKtI,KAAK,MAC3CoI,EAAU9G,MAAM,CAAC,GAAU,CAAC+G,CAAAA,EAAAA,EAAAA,CAAAA,EAAMC,EAAKtI,KAAK,GAC5B,4CCxN5B,IAAMuI,EAAqB,IAChC,YAAiC,OAAOpL,OAAOqL,UAAU,EACrDrL,OAAOqL,UAAU,CAAC,oCAAoCC,OAAO,CAGtDC,EACX,CAA0B,CACxBC,SAAAA,CAAQ,CACRC,cAAAA,CAAa,CACbC,gBAAAA,CAAe,CACfC,YAAAA,CAAW,CAMZ,GACD,IAiBE,IAAMC,EAAYC,YAAAA,EAAEC,GAAG,CACjBC,EAAcF,cAAAA,EAAEC,GAAG,CACnBE,EAAcH,cAAAA,EAAEC,GAAG,CACnBG,EAAeJ,eAAAA,EAAEC,GAAG,CACtBF,CAAAA,GAAaI,CAAAA,IACfH,EAAEK,cAAc,GAChBC,CAtBoB,IACpB,IAAMC,EAAeZ,EAASa,SAAS,CAAC,GAAcb,IAAac,GACnE,GAAIF,IAAAA,EAAoB,CACtBX,GAAenL,SAASiM,QACxB,MACF,CACA,IAAMC,EAAUhB,EAASiB,EAAE,CAACL,EAAe,IAAM,KACjDI,GAASD,QACTb,IAAkBc,EACpB,GAagBX,EAAE/E,MAAM,GAEpBiF,CAAAA,GAAeE,CAAAA,IACjBJ,EAAEK,cAAc,GAChBQ,CAhBgB,IAChB,IAAMN,EAAeZ,EAASa,SAAS,CAAC,GAAcb,IAAac,GAC7DE,EAAUhB,EAASiB,EAAE,CAACL,EAAe,IAAM,KACjDI,GAASD,QACTZ,IAAca,EAChB,GAWYX,EAAE/E,MAAM,EAEtB,eCEK,SAAS6F,EAAiB,CAC/BC,QAAAA,EAAU,EAAE,CACZC,cAAAA,CAAa,CACbpM,QAAAA,EAAU,EAAE,CACZqM,OAAAA,EAAS,IAAI,CACbC,aAAAA,CAAY,CACZC,aAAAA,CAAY,CACZC,iBAAAA,CAAgB,CAChBC,aAAAA,CAAY,CACZ1J,MAAAA,CAAK,CACL2J,oBAAAA,CAAmB,CACnB,GAAG1J,EACmB,EACtB,GAAM,CAAC2J,EAAkBC,EAAoB,CAAGrK,EAAAA,QAAc,GAIxD,CAACsK,EAAaC,EAAe,CAAGvK,EAAAA,QAAc,CAAC,IAC/C,CAAEc,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,yBACvByJ,EAAiB5N,CAAAA,EAAAA,EAAAA,MAAAA,EAA6B,MAC9C6N,EAAoB7N,CAAAA,EAAAA,EAAAA,MAAAA,EAA0B,MAC9C,CAAE8N,QAAAA,CAAO,CAAEC,aAAAA,CAAY,CAAEC,wBAAAA,CAAuB,CAAEC,uBAAAA,CAAsB,CAAE,CAC9EC,SFlDyC,CAC3ClB,QAAAA,CAAO,CACPnM,QAAAA,CAAO,CACPiK,gBAAAA,CAAe,CACfwC,aAAAA,CAAY,CAMb,MHoCCa,EACAC,EGpCA,GAAM,CAAEhG,KAAMiG,CAAkB,CAAEC,WAAYC,CAAqB,CAAE,CHD9DC,CAAAA,EAAAA,EAAAA,CAAAA,EAAqE,CAC1EC,SAAU,CAAC7F,EAPbuF,KAAAA,EAOiE,GGE3D,CAAE/F,KAAMsG,CAAS,CAAEJ,WAAYK,CAAgB,CAAE,EHiCvDR,EGhCE,CACEtN,QAASA,EAAQwB,WAAW,EAC9B,EH+BF+L,EG9BE,CACEQ,QAAS,CAAC,CAAC/N,CACb,EHiCK2N,CAAAA,EAAAA,EAAAA,CAAAA,EAAiE,CACtEC,SAAU,CAACzF,EAAsCmF,EAAU,CAC3D,GAAGC,CAAO,IGjCNrK,EAAWC,CAAAA,EAAAA,EAAAA,EAAAA,IAGX6K,EAAwCR,GAAoBS,gBAAgBC,KAChF,GAAQC,gCAAAA,EAAGC,IAAI,GACdC,OAECC,EAA6B,EAAE,CAG7BC,EAAeP,GAAwBQ,WAAW,CAACrC,EAAQ,CAC3DsC,EAAeT,GAAwBxD,UACvCkE,EAAqBH,EACvBI,OAAQC,IAAI,CAACL,GAAgD7K,MAAM,CACjE,GAAc,CAAC6K,GAAc,CAACtO,EAAS,EAAE4O,SAAS7O,EAAQwB,WAAW,KAEvE,EAAE,CAC+B2K,GAAasC,GAEhDH,CAAAA,EAAmBK,OAAOG,OAAO,CAACL,GAC/B/K,MAAM,CACL,CAAC,CAACgH,EAAMqE,EAAU,GAAKA,GAAWF,SAAS1C,IAAY,CAACuC,EAAmBG,QAAQ,CAACnE,IAErFzE,GAAG,CAAC,CAAC,CAACyE,EAAK,GAAKA,EAAAA,EAKrB,IAAMsE,EAAahB,GAAwBgB,WACrCC,EAAqBjB,GAAwBiB,mBAC7CC,EAAaF,EACf,IAAIG,EAAAA,UAAUA,CAAC,CAAEf,KAAM,4BAA6BY,WAAAA,CAAW,GAC/D,KACEI,EAA2B,CAAC,CAACjD,GAAW,CAAC,CAAC6C,GAAc,CAAC,CAACC,GAAsBC,EAChF1L,EAAM2G,EAAAA,CAASA,CAAG5K,OAAO4B,QAAQ,CAACC,IAAI,CAAG,GAC3CgO,GACFd,CAAAA,EAAmBW,EAAmBvL,MAAM,CAAC,GAC3CwL,EAAWG,GAAG,CAAC,CAAElD,QAAAA,EAASlM,SAAAA,EAAUuD,IAAAA,CAAI,KAK5C,IAAM8L,EAAezB,GAAW0B,OAAOC,cAAcC,gBACjD5B,GAAW0B,OAAOC,cAAcC,gBAAgB9H,OAAO,CAAC+H,EAAKzP,KAExDqO,GAAkBO,SAASnF,EAAoBzJ,GAAU0J,MAAQ,MAClED,OAAAA,EAAoBzJ,GAAU0J,MAAQ,KAEtC+F,EAAIhO,IAAI,CAAC,CACP,GAAGzB,CAAQ,CACX0J,KAAMD,EAAoBzJ,GAAU0J,MAAQ,GAC9C,GAEK+F,GACN,EAAE,EACJ,EAAE,CAEDC,EAAuBL,EAAa5L,MAAM,CAAC,GAAUgH,GAAMkF,SAC3DC,EAAsBP,EAAa5L,MAAM,CAAC,GAAUgH,GAAMoF,YAC1DC,EAAatD,GAAcuD,UAAW,GACtCC,EAAmC,CACvC,CACEpK,MAAOuC,EAAoB,EAAK,CAChChG,MAAO,KACPhB,KAAM,CAAC2O,GAAchG,EAAgB,KAAME,EAAAA,GAAqB,GAChEiG,YAAa,CAAC,CAACH,CACjB,KACGzB,EAAiBrI,GAAG,CAAC,IACtB,IAAMkK,EAAW1D,GAAcuD,UAAU,CAACtF,EAAyC,CAEnF,MAAO,CACL7E,MAAOuC,CAAmB,CAACsC,EAAyC,CACpEtI,MAAOsI,EACPtJ,KAAM,CAAC+O,GAAYpG,EAAgBW,EAAMT,EAAAA,GAAqB,GAC9DiG,YALkB,CAAC,CAACC,CAMtB,CACF,MACGR,EAAqB1J,GAAG,CAAC,GAAW,EACrCJ,MAAOuC,CAAmB,CAACsC,GAAMf,KAAyC,EAAIe,EAAK7E,KAAK,CACxFzD,MAAOsI,GAAMf,MAAQ,GACrBvI,KACEqL,GAAcuD,UAAU,CAACtF,GAAMf,KAAyC,EACxEe,GAAMkF,SACN,GACFM,YAAa,EACf,IACD,CACKE,EAAkC,IACnCP,EAAoB5J,GAAG,CAAC,GAAW,EACpCJ,MAAOuC,CAAmB,CAACsC,GAAMf,KAAyC,EAAIe,EAAK7E,KAAK,CACxFzD,MAAOsI,GAAMf,MAAQ,GACrBvI,KACEqL,GAAc4D,SAAS,CAAC3F,EAAKf,IAAI,CAAqC,EACtEe,GAAMoF,YACN,GACFI,YAAa,EACf,IACD,CAEKI,EAA6BL,EAAkBhK,GAAG,CAAC,GAAUyE,EAAKtI,KAAK,EACvEmO,EAA0B5B,OAAOC,IAAI,CAACnC,GAAcuD,UAAY,CAAC,GAAGtM,MAAM,CAC9E,GAAU,CAAC4M,EAA2BzB,QAAQ,CAACnE,GAG7C6F,CAAAA,EAAwB1M,MAAM,EAChCoM,EAAkBvO,IAAI,IACjB6O,EAAwBtK,GAAG,CAAC,GAAW,EACxCJ,MAAOuC,CAAmB,CAACsC,EAAyC,CACpEtI,MAAOsI,EACPtJ,KAAMqL,GAAcuD,UAAU,CAACtF,EAAyC,EAAI,GAC5EwF,YAAa,EACf,KAIJ,IAAMM,EAA4BJ,EAAiBnK,GAAG,CAAC,GAAUyE,EAAKtI,KAAK,EACrEqO,EAAyB9B,OAAOC,IAAI,CAACnC,GAAc4D,SAAW,CAAC,GAAG3M,MAAM,CAC5E,GACE,CAAC8M,EAA0B3B,QAAQ,CAACnE,IAAS,CAAC4F,EAA2BzB,QAAQ,CAACnE,GAGlF+F,CAAAA,EAAuB5M,MAAM,EAC/BuM,EAAiB1O,IAAI,IAChB+O,EAAuBxK,GAAG,CAAC,GAAW,EACvCJ,MAAOuC,CAAmB,CAACsC,EAAyC,CACpEtI,MAAOsI,EACPtJ,KAAMqL,GAAc4D,SAAS,CAAC3F,EAAyC,EAAI,GAC3EwF,YAAa,EACf,KAIJ,IAAM/C,EAA0B5C,EAC9B0F,EAAkBS,IAAI,CAAC,CAACtK,EAAGuK,IAAMvK,EAAEP,KAAK,CAAC+K,aAAa,CAACD,EAAE9K,KAAK,IAE1DuH,EAAyB7C,EAC7B6F,EAAiBM,IAAI,CAAC,CAACtK,EAAGuK,IAAMvK,EAAEP,KAAK,CAAC+K,aAAa,CAACD,EAAE9K,KAAK,IAO/D,MAAO,CACLqH,aANmB2D,CAAAA,EAAAA,EAAAA,OAAAA,EACnB,IAAM,IAAI1D,KAA4BC,EAAuB,CAC7D,CAACD,EAAyBC,EAAuB,EAKjDH,QAhJc,CAAC/J,GAAYwK,GAAyBI,EAiJpDX,wBAAAA,EACAC,uBAAAA,CACF,CACF,EExHiC,CAC3BjB,QAAAA,EACAnM,QAAAA,EACAiK,gBAAiBsC,GAActC,gBAC/BwC,aAAAA,CACF,GAEF7M,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR,GAAI,CAACqN,GAAW,CAACN,GAAkBhD,KAAM,KACV0C,EAK7BO,EALiD,CAC/CjD,IAAAA,CAD2B0C,EAKWyE,CAAAA,EAAAA,EAAAA,EAAAA,EAAgBzE,IAAW,GAHjEjL,KAAM8L,EAAagB,IAAI,CAAC,GAAUxD,EAAKtI,KAAK,GAAKiK,IAASjL,MAAQ,EACpE,EAGF,CACF,EAAG,CAAC8L,EAAcD,EAASZ,EAAQM,GAAkBhD,KAAK,EAE1D,IAAMoH,EAAiBxO,EAAAA,WAAiB,CAAC,KACvCyK,EAAkBnN,OAAO,EAAEmR,cAAc,MAAMlF,OACjD,EAAG,EAAE,EAECmF,EAAoBnG,EAAqB,CAC7CC,SAAUmG,MAAMC,IAAI,CAACnE,EAAkBnN,OAAO,EAAEuR,iBAAiB,MAAQ,EAAE,EAC3EpG,cAAe+B,CACjB,GAEMsE,EAAiB9O,EAAAA,WAAiB,CAAC,IACnChD,QAAQgB,aAAehB,QAAQC,YACjC6C,IAAI9C,OAAOgB,WAAW,CAAE,iBAAkB,kBAC1C8B,IAAI9C,OAAOgB,WAAW,CAAE,yBAA0BN,GAClDV,OAAOC,UAAU,EAAEC,QAAQ,iBAE3B6R,QAAQC,IAAI,CAAC,sCAEjB,EAAG,EAAE,EAEL,MACE,GAAAvM,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAWsM,IAAW,kCAAmChF,GAAoB,GAAGxJ,CAAI,UACvF,GAAAgC,EAAAlD,GAAA,EAAC2P,EAAAA,EAAKA,CAAAA,UACJ,GAAAzM,EAAAlD,GAAA,EAAC4P,EAAAA,UACE,CAAC,CAAEC,OAAAA,CAAM,CAAE,GACV,GAAA3M,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,sCACb,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,CACCV,UAAWsM,IAAW,qBAAsBlF,GAAcpH,UAAW,CACnE,oBAAqBnC,SAAAA,CACvB,GACA8O,MAAOvF,GAAcwF,OACrBC,cAAY,gBAEX1O,EAAE,cAEJ4J,EACC,GAAAjI,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,iDAEf,GAAAF,EAAAK,IAAA,EAAC2M,EAAAA,EAAWA,CAAAA,CACVvO,IAAKsJ,EACL7H,UAAWsM,IAAW,2BAA4BpF,GAAelH,UAAW,CAC1E,oBAAqBnC,SAAAA,CACvB,GACAkP,QAAS,IAAMC,CAAAA,EAAAA,EAAAA,EAAAA,EAAW,6BAC1BC,oBAAqBpB,EACrBc,MAAO,CACL,GAAGzF,GAAe0F,MAAM,CACxB,GAAIjF,EAAcT,GAAegG,YAAc,IAAI,EAErDC,aAAc,IAAMvF,EAAe,IACnCwF,aAAc,IAAMxF,EAAe,cAEnC,GAAA9H,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAW7B,EAAE,cAC5BsJ,GAAkBhD,KACfvB,CAAmB,CACjBuE,EAAiBhD,IAAI,CACtB,CACD,KAAM,IACV,GAAA3E,EAAAlD,GAAA,EAACyQ,EAAAA,CACCrN,UAAWsM,IAAW,wBAAyB,CAC7C,eAAgBG,EAChB,oBAAqB5O,SAAAA,CACvB,WAKPkK,EAAU,KACT,GAAAjI,EAAAlD,GAAA,EAAC0Q,EAAAA,EAAYA,CAAAA,CAACC,YAAa,CAAEC,UAAW,MAAOC,UAAW,MAAO,WAC/D,GAAA3N,EAAAK,IAAA,EAACC,MAAAA,CACC7B,IAAKuJ,EACL9H,UAAU,+DAETiI,EAAwBtJ,MAAM,CAC7B,GAAAmB,EAAAK,IAAA,EAACC,MAAAA,WACEiH,GAAcqG,cACb,GAAA5N,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,sDACV7B,EAAE,eAEH,KACJ,GAAA2B,EAAAlD,GAAA,EAACkE,KAAAA,CAAGd,UAAU,kCACXiI,EAAwBlH,GAAG,CAAC,GAC3B,GAAAjB,EAAAlD,GAAA,EAAC+Q,EAAAA,CAEChN,MAAO6E,EAAK7E,KAAK,CACjB5F,SAAUyK,EAAKtI,KAAK,CACpB0Q,UAAW,CACTb,QAAS,KACPZ,EAAe3G,EAAKtI,KAAK,EACzBsK,IAAsBhC,EAAKtI,KAAK,CAClC,EACA2Q,UAAW9B,EACXnL,YAAa4E,EAAKwF,WAAW,CAC7B1M,IAAKkH,EAAKtJ,IAAI,GAVXsJ,EAAKtI,KAAK,QAgBrB,KACHgL,EAAuBvJ,MAAM,CAC5B,GAAAmB,EAAAK,IAAA,EAACC,MAAAA,WACEiH,GAAcqG,cACb,GAAA5N,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,sDACV7B,EAAE,iBAEH,KACJ,GAAA2B,EAAAlD,GAAA,EAACkE,KAAAA,UACEoH,EAAuBnH,GAAG,CAAC,GAC1B,GAAAjB,EAAAlD,GAAA,EAAC+Q,EAAAA,CAEChN,MAAO6E,EAAK7E,KAAK,CACjB5F,SAAUyK,EAAKtI,KAAK,CACpB0Q,UAAW,CACTb,QAAS,IAAMZ,EAAe3G,EAAKtI,KAAK,EACxC2Q,UAAW9B,EACXnL,YAAa4E,EAAKwF,WAAW,CAC7B1M,IAAKkH,EAAKtJ,IAAI,GAPXsJ,EAAKtI,KAAK,QAarB,kBAUxB,CAEA,SAASyQ,EAAS,CAChBhN,MAAAA,CAAK,CACL5F,SAAAA,CAAQ,CACR6S,UAAAA,CAAS,CAKV,EACC,MACE,GAAA9N,EAAAlD,GAAA,EAACqE,KAAAA,CAECjB,UAAWsM,IAAW,YAAa,CACjC,cAAe/G,CAAAA,EAAAA,EAAAA,CAAAA,EAAMxK,EACvB,GACAyK,KAAMzK,WAEN,GAAA+E,EAAAlD,GAAA,EAACkR,MAAAA,UACC,GAAAhO,EAAAK,IAAA,EAACK,EAAAA,EAAIA,CAAAA,CAACY,IAAI,sBAAuB,GAAGwM,CAAS,WAC1CjN,EAAO,UARP,CAAC,MAAM,EAAE5F,EAAS,CAAC,CAa9B,CAEA,SAASyR,EAAkB,CAAEuB,SAAAA,CAAQ,CAA0D,EAE7F,OAAOA,EADSC,CAAAA,EAAAA,EAAAA,EAAAA,IAElB,CAEA,SAASX,EAAc3L,CAAkC,EACvD,MACE,GAAA5B,EAAAlD,GAAA,EAACqR,MAAAA,CAAIC,QAAQ,YAAYvS,QAAQ,MAAO,GAAG+F,CAAK,UAC9C,GAAA5B,EAAAlD,GAAA,EAACuR,IAAAA,CAAEC,OAAO,OAAOC,YAAY,IAAIC,KAAK,cAAcC,SAAS,mBAC3D,GAAAzO,EAAAlD,GAAA,EAACuR,IAAAA,CAAEK,UAAU,kBAAkBH,YAAY,IAAID,OAAO,wBACpD,GAAAtO,EAAAlD,GAAA,EAAC6R,WAAAA,CAASC,cAAc,QAAQC,OAAO,4BAKjD,eEhPO,IAAMC,EAAc,CAAC,CAC1BnC,OAAAA,CAAM,CACNsB,SAAAA,CAAQ,CACRc,UAAAA,CAAS,CACTC,aAAAA,CAAY,CACZC,4BAAAA,CAA2B,CAC3BC,WAAAA,CAAU,CACVC,YAAAA,CAAW,CACM,IACjB,GAAM,CAACC,EAAqBC,EAAuB,CAAG/U,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IAC/DM,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR,GAAK+R,EASE,CACL2C,SAASC,IAAI,CAAC1C,KAAK,CAAC2C,QAAQ,CAAG,SAC/B,IAAMC,EAAsBH,UAAUlD,iBAEpC,CAAC,CAAC,EAAE4C,EAAa,QAAQ,EAAEC,EAA4B,GAAG,EAAEA,EAA4B,6BAA6B,CAAC,EAExHQ,EAAoBC,OAAO,CAAC,IACtBC,GACFA,EAAsBC,YAAY,CAAC,cAAe,OAEtD,GAIA,IAAIC,EAAgCP,UAAUtD,cAC5C,CAAC,CAAC,EAAEiD,EAA4B,CAAC,EAE7Ba,EAAiB,EAAE,CACzB,KAAOD,GACLC,EAAIpT,IAAI,CAACmT,GACTA,EAAgBA,EAAcnQ,aAAa,CAE7CoQ,GAAKJ,QAAQ,IACPK,GACFA,EAAiBpQ,eAAe,CAAC,cAErC,GACAqQ,EAAuBnV,OAAO,CAAG4U,CACnC,KApCoB,UAAdV,GAAuBM,EAAuB,IAClDC,SAASC,IAAI,CAAC1C,KAAK,CAAC2C,QAAQ,CAAG,OAC3BQ,EAAuBnV,OAAO,EAChCmV,EAAuBnV,OAAO,CAAC6U,OAAO,CAAC,IACjCC,GACFA,EAAsBhQ,eAAe,CAAC,cAE1C,EA8BN,EAAG,CAACgN,EAAQoC,EAAWC,EAAcC,EAA4B,EAEjE,IAAMe,EAAyB7V,CAAAA,EAAAA,EAAAA,MAAAA,IAE/B,MACE,GAAA6F,EAAAlD,GAAA,EAACmT,EAAAA,EAASA,CAAAA,CAACC,SAAU,CAACvD,EAAQwC,YAAaA,CAAAA,GAAcA,WACvD,GAAAnP,EAAAlD,GAAA,EAACwD,MAAAA,CACCJ,UAAWC,IACT,sGACA,CACE,2EACEwM,GAAUoC,SAAAA,EACZ,2EACEpC,GAAUoC,UAAAA,EACZ,QAASA,UAAAA,EACT,2BAA4B,CAACpC,CAC/B,GAEFwD,eAAgB,KACI,UAAdpB,GAAuBM,EAAuB,GACpD,EACAe,OAAQ,CAACzD,EACTvM,cAAa,CAAC,YAAY,EAAE2O,EAAU,CAAC,CACtC,GAAGG,CAAU,UAGbH,UAAAA,EACCK,GAAwBzJ,KAAwBgH,EAC9C,GAAA3M,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,0BAAkB+N,IAC/B,KAEJA,KAKV,EEnGaoC,EAAgC,CAC3CrN,cAAe,kBACfC,gBAAiB,CAAC;;;;;;;;CAQnB,CAAC,CACAC,eAAgB,uBAClB,EAwBaoN,EAAmC,CAC9CtN,cAAe,uBACfC,gBAAiB,CAAC;;;;;;;;;;CAUnB,CAAC,CACAC,eAAgB,0BAClB,0BC7CO,IAAMqN,EAAwB,KACnCrD,CAAAA,EAAAA,EAAAA,EAAAA,EAHgC,eAIlC,EAMO,SAASsD,EAA0B3P,CAAa,CAAE4P,CAAsB,EAG7EC,EANOC,CAIkC,GAAG,EAAEF,EAAgB,CAAC,EAAEA,EAAc,CAAC,CAAC,CAAG,GAAG,EAAE5P,EAAM,CAAC,CAJrFuE,OAAO,CAAC,SAAU,IAAIN,WAAW,GAO9C,CAEO,SAAS4L,EAActT,CAAa,EACrC7C,QAAQgB,aAAehB,QAAQC,YAAc4C,IAC/CC,IAAI9C,OAAOgB,WAAW,CAAE,gBAAiB6B,GACzC7C,OAAOC,UAAU,EAAEC,QAAQ,gBAE/B,CAEA,IAAMmW,EAAc,CAACC,EAAqBnL,IAAiBmL,GAAazL,QAAQ,WAAYM,GCjC/EoL,EAAuD,CAAC,CAAErO,MAAAA,CAAK,CAAE1E,MAAAA,CAAK,CAAE,IACnF,GAAM,CAAEM,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,cACvByS,EACJtO,OAAAA,EAAMkC,IAAI,CACNtG,EAAE,oBACFoE,OAAAA,EAAMkC,IAAI,CACV,CAAC,EAAEtG,EAAE,oBAAoB,EAAE,EAAEoE,EAAM2G,IAAI,CAAC,CAAC,CACzC3G,OAAAA,EAAMkC,IAAI,CACV,CAAC,EAAEtG,EAAE,oBAAoB,KAAK,CAAC,CAC/BoE,EAAM2G,IAAI,CAEhB,MACE,GAAApJ,EAAAlD,GAAA,EAAC0E,MAAAA,CACCvE,IACEc,SAAAA,EACI,CAAC,2BAA2B,EAAE0E,EAAMkC,IAAI,CAAC,aAAa,CAAC,CACvD,CAAC,2BAA2B,EAAElC,EAAMkC,IAAI,CAAC,IAAI,CAAC,CAGpDlD,IAAKsP,EACL7Q,UAAU,eAGhB,EAEa8Q,EAET,CAAC,CAAEvO,MAAAA,CAAK,CAAEvC,UAAAA,CAAS,CAAEnC,MAAAA,CAAK,CAAEkT,QAAAA,CAAO,CAAE,IACvC,GAAM,CAAE5S,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,cAI7B,MACE,GAAA0B,EAAAlD,GAAA,EAHcmU,EAAU,KAAO,OAG9BC,CAAQ3P,aAAY0P,GAAoBE,KAAAA,EAAWjR,UAAWA,WAC7D,GAAAF,EAAAK,IAAA,EAACe,IAAAA,CACChB,cAAY,kBACZhE,KAAMqG,EAAMjE,GAAG,CACf0B,UAAU,6EACT,GAAI,CAAC,CAACuC,EAAMwK,OAAO,EAAI,CAAEA,QAASxK,EAAMwK,OAAO,CAAE,CACjD,GAAI,CAAC,CAACxK,EAAMpB,MAAM,EAAI,CAAEA,OAAQoB,EAAMpB,MAAM,CAAE,CAC9C,GAAIoB,GAAOpB,SAAW,UAAY,CAAEC,IAAK,YAAa,CAAC,WAExD,GAAAtB,EAAAlD,GAAA,EAACgU,EAAAA,CAAK/S,MAAOA,EAAO0E,MAAOA,IAC3B,GAAAzC,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAWuC,GAAOpB,SAAW,SAAW,CAAC,EAAE,EAAEhD,EAAE,UAAU,CAAC,CAAG,SAIrF,gBC3BO,SAAS+S,EAAQ,CAAEnD,SAAAA,CAAQ,CAAElQ,MAAAA,CAAK,CAAE4O,OAAAA,EAAS,EAAK,CAAE,GAAG0E,EAA6B,EACzF,IAAMjS,EAASrB,SAAAA,EAETuT,EAAc/T,EAAAA,YAAkB,CAAC0Q,EAAU,CAC/C/N,UAAWC,IAAG8N,EAASrM,KAAK,CAAC1B,SAAS,CAAE,sBAC1C,GAEA,MACE,GAAAF,EAAAlD,GAAA,EAACqE,KAAAA,CACE,GAAGkQ,CAAa,CACjBnR,UAAWC,IAAG,mDAAoD,CAChE,gBAAiB,CAACpC,EAClB,qBAAsBqB,EACtB,uBAAwBuN,GAAU,CAAC5O,EACnC,4BAA6B4O,GAAUvN,CACzC,YAECkS,GAGP,CAEO,SAASC,EAAc,CAC5B1Q,MAAAA,CAAK,CACL2Q,KAAAA,CAAI,CACJC,UAAAA,CAAS,CACTC,oBAAAA,CAAmB,CACnB3T,MAAAA,CAAK,CACL4T,QAAAA,CAAO,CAQR,EACC,IAAMvS,EAASrB,SAAAA,EAEf,MACE,GAAAiC,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAWC,IAAG,gBAAiBwR,SAAAA,EAAqB,gBAAkB,eACzE9Q,IAGF2Q,EACC,GAAAxR,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAWC,IAAG,kBACjB,GAAAH,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CACHxI,KAAMoI,EACNtR,UAAWC,IACTf,EAAS,gBAAkB,WAC3B,gDAEFyS,QAAQ,SAEV,GAAA7R,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CACHxI,KAAMoI,EACNM,QAAQ,QACR5R,UAAWC,IACTf,EAAS,uBAAyB,kBAClC,qDAEFyS,QAAQ,YAGV,KAEHJ,EACC,GAAAzR,EAAAK,IAAA,EAACC,MAAAA,WACC,GAAAN,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CACHxI,KAAMqI,EACNvR,UAAWC,IACTuR,EAAsB,aAAe,KACrC,gDAEFG,QAAQ,SAEV,GAAA7R,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CACHxI,KAAMqI,EACNvR,UAAWC,IACTuR,EAAsB,aAAe,KACrC,qDAEFG,QAAQ,YAGV,OAGV,CAaO,IAAME,EAAkD,CAAC,CAC9DhU,MAAAA,CAAK,CACLiU,UAAAA,CAAS,CACTL,QAAAA,CAAO,CACP9Q,MAAAA,CAAK,CACLoR,OAAAA,CAAM,CACNtQ,6BAAAA,CAA4B,CAC5B,GAAG3D,EACJ,GAEG,GAAAgC,EAAAlD,GAAA,EAACsU,EAAAA,CAAQrT,MAAOA,EAAOqC,cAAY,qBACjC,GAAAJ,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACHC,UAAW,GACV,GAAG3C,CAAI,CACR+D,wBAAuBJ,GAA8BK,KACrDC,yBAAwBN,GAA8BvE,MACtD8C,UAAWC,IAAG,sCAAuC8R,EAAS,MAAQ,MAAO,CAC3E,gBAAiBN,eAAAA,CACnB,YAEA,GAAA3R,EAAAlD,GAAA,EAACyU,EAAAA,CAAcI,QAASA,EAAS5T,MAAOA,EAAO8C,MAAOA,EAAO2Q,KAAMQ,QAqB9DE,EAAyE,CAAC,CACrFC,WAAAA,CAAU,CACVpU,MAAAA,CAAK,CACL4T,QAAAA,CAAO,CACPS,YAAAA,CAAW,CACXC,WAAAA,CAAU,CACVpF,QAAAA,CAAO,CACPqF,MAAAA,CAAK,CACLC,eAAAA,CAAc,CACdtE,SAAAA,CAAQ,CACT,IACC,GAAM,CAACuE,EAAYC,EAAc,CAAGlV,EAAAA,QAAc,CAAU,IAMtDmV,EAAQ,IAAMD,EAAc,IAE5BE,EAAc,IAClBJ,IAAiBK,GACZA,EAASC,KAAK,EACjBH,GAEJ,EAEMI,EAAgBvV,EAAAA,QAAc,CAACwV,OAAO,CAAC9E,GAEvC,CAAC5P,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,cAE3B,MACE,GAAA0B,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAACsU,EAAAA,CAAQrT,MAAOA,EAAOqC,cAAY,sBACjC,GAAAJ,EAAAlD,GAAA,EAACkW,SAAAA,CACC5S,cAAY,aACZX,KAAK,SACLS,UAAU,gEACVqB,aAAY6Q,GAAeD,GAAc9T,EAAE,UAC3C4O,QA1BK,KACXsD,IACAtD,MACAwF,EAAc,GAChB,WAwBQ,GAAAzS,EAAAlD,GAAA,EAACyU,EAAAA,CAAc1Q,MAAOuR,EAAaZ,KAAMa,EAAYtU,MAAOA,EAAO4T,QAASA,QAGhF,GAAA3R,EAAAlD,GAAA,EAACmW,EAAAA,EAAMA,CAAAA,CAACtG,OAAQ6F,EAAYU,UAAWR,EAAOS,KAAK,KAAKb,MAAOA,WAC5D/U,EAAAA,QAAc,CAAC0D,GAAG,CAAC6R,EAAe,GACjC,EAAIvV,cAAoB,CAAC6V,IAAUA,EAAM3T,IAAI,GAAK4T,EAAAA,EAAWA,CACpD9V,EAAAA,YAAkB,CACvB6V,EACA,CACEb,eAAgBI,EAChBW,QAASZ,CACX,GAGGU,OAKjB,EAcaG,EAAyE,CAAC,CACrFtF,SAAAA,CAAQ,CACRpN,MAAAA,CAAK,CACL2Q,KAAAA,CAAI,CACJgC,aAAAA,CAAY,CACZvG,QAAAA,CAAO,CACPlP,MAAAA,CAAK,CACLgK,eAAAA,CAAc,CACd4J,QAAAA,CAAO,CACPF,UAAAA,CAAS,CACT9P,6BAAAA,CAA4B,CAC7B,IACC,GAAM,CAAEgL,OAAAA,CAAM,CAAE,CAAGuB,CAAAA,EAAAA,EAAAA,EAAAA,IAEnB,MACE,GAAAlO,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAACsU,EAAAA,CAAQrT,MAAOA,EAAO4O,OAAQA,EAAQvM,cAAY,sBACjD,GAAAJ,EAAAlD,GAAA,EAACkQ,EAAAA,EAAWA,CAAAA,CACVvO,IAAKsJ,EACLhG,wBAAuBJ,GAA8BK,KACrDC,yBAAwBN,GAA8BvE,MACtD6P,QAAS,KACPsD,IACAtD,KACF,EACA/M,UAAWC,IAAG,0CAA2C,CACvD,gBAAiBwR,eAAAA,CACnB,YAEA,GAAA3R,EAAAlD,GAAA,EAACyU,EAAAA,CACCxT,MAAOA,EACP8C,MAAOA,EACP8Q,QAASA,EACTF,UAAWA,EACXD,KAAMA,EACNE,oBAAqB,CAAC/E,GAAU6G,QAItC,GAAAxT,EAAAlD,GAAA,EAAC0Q,EAAAA,EAAYA,CAAAA,CACXtN,UAAU,0DACVuN,YAAa,CAAEgG,KAAM,CAAE,WAEtBxF,MAIT,eCpRO,SAASyF,GAAwB,CACtCC,QAAAA,CAAO,CACP9S,MAAAA,CAAK,CAIN,EACC,MACE,GAAAb,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,iCACb,GAAAF,EAAAlD,GAAA,EAAC8W,GAAAA,UACED,EAAQ1S,GAAG,CACV,CAAC,CAAEJ,MAAOgT,CAAY,CAAEC,KAAM,CAAEnS,6BAAAA,CAA4B,CAAE,GAAGmS,EAAM,CAAE7G,QAAAA,CAAO,CAAE,GAChF,GAAAjN,EAAAlD,GAAA,EAACiX,GAAAA,UACC,GAAA/T,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACF,GAAGoT,CAAI,CACR/R,wBAAuBJ,GAA8BK,KACrDC,yBAAwBN,GAA8BvE,MACtDuD,UAAW,GACXT,UAAU,uBACV4B,gBAAgB,yMAChBmL,QAAS,KACPuD,EAA0BqD,EAAchT,GACxCoM,KACF,WAEC4G,KAbcA,OAqB/B,CAYe,SAASG,GAAkB,CACxCC,KAAAA,CAAI,CACJC,UAAAA,CAAS,CACTC,kCAAAA,CAAiC,CACjCC,iCAAAA,CAAgC,CAChCC,UAAAA,CAAS,CACc,EACvB,GAAM,CAAEhN,OAAAA,EAAS,IAAI,CAAE,CAAGiN,CAAAA,EAAAA,EAAAA,SAAAA,IACpB,CAACjW,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,cAErBiW,EAA6BC,CAAAA,EAAAA,EAAAA,EAAAA,EAAyBP,GAAMQ,aAAc,CAAEpN,OAAAA,CAAO,GAEzF,MACE,GAAArH,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,gCACb,GAAAF,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,8BACb,GAAAF,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,wFACb,GAAAF,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,OAAO+J,KAAK,UAEzB,GAAAnT,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,iBACb,GAAAF,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,uDACV7B,EAAE,YAAa,CAAEqW,SAAUT,EAAK7K,IAAI,KAEvC,GAAApJ,EAAAK,IAAA,EAACU,IAAAA,CAAEb,UAAU,4BACX,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,4DACb+T,EAAKU,UAAU,GACV,IACPtW,EAAE,aAEL,GAAA2B,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,6CACV7B,EAAE,oBAAqB,CAAEuW,kBAAmBL,CAA2B,KAEzEN,EAAKY,aAAa,CACjB,GAAA7U,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,6CACV7B,EAAE,qBAAsB,CAAEwW,cAAeZ,EAAKY,aAAa,KAE5D,WAGR,GAAA7U,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,gCACb,GAAAF,EAAAK,IAAA,EAACuT,GAAAA,WACEM,GAAWY,YACV,GAAA9U,EAAAlD,GAAA,EAACiY,GAAAA,CACCvW,IAAK0V,GAAWY,YAAYtW,IAC5ByO,QAAS,KACPyD,EAAc,iCAChB,EACA5P,YAAaqT,WAEZ9V,EAAE,sBAEH,KACH6V,GAAWc,oBAAsB,CAACZ,EACjC,GAAApU,EAAAlD,GAAA,EAACiY,GAAAA,CACCvW,IAAK0V,GAAWc,mBAAmBxW,IACnCyO,QAAS,KACPyD,EAAc,qCAChB,EACA5P,YAAaqT,WAEZ9V,EAAE,cAEH,KAEH6V,GAAWe,kBAAkBzW,KAAO,CAAC4V,EACpC,GAAApU,EAAAlD,GAAA,EAACiY,GAAAA,CACCvW,IAAK0V,EAAUe,gBAAgB,CAACzW,GAAG,CACnCyO,QAAS,KACPyD,EAAc,mCAChB,EACA5P,YAAaqT,WAEZ9V,EAAE,iBAEH,KAEH6V,GAAWgB,mBAAmB1W,KAAO,CAAC4V,EACrC,GAAApU,EAAAlD,GAAA,EAACiY,GAAAA,CACCvW,IAAK0V,EAAUgB,iBAAiB,CAAC1W,GAAG,CACpCyO,QAAS,KACPyD,EAAc,oCAChB,EACA5P,YAAaqT,WAEZ9V,EAAE,aAEH,KAEH6V,GAAWiB,cAAc3W,IACxB,GAAAwB,EAAAlD,GAAA,EAACiY,GAAAA,CACCvW,IAAK0V,EAAUiB,YAAY,CAAC3W,GAAG,CAC/ByO,QAAS,KACPyD,EAAc,uCAChB,EACA5P,YAAaqT,WAEZ9V,EAAE,4BAEH,KAEH6V,GAAWkB,sBAAsB5W,IAChC,GAAAwB,EAAAlD,GAAA,EAACiY,GAAAA,CACCvW,IAAK0V,EAAUkB,oBAAoB,CAAC5W,GAAG,CACvCyO,QAAS,KACPyD,EAAc,uCAChB,EACA5P,YAAaqT,WAEZ9V,EAAE,4BAEH,KAEH6V,GAAWmB,YAAY7W,IACtB,GAAAwB,EAAAlD,GAAA,EAACiY,GAAAA,CACCvW,IAAK0V,EAAUmB,UAAU,CAAC7W,GAAG,CAC7ByO,QAAS,KACPyD,EAAc,kCAChB,EACA5P,YAAaqT,WAEZ9V,EAAE,uBAEH,KAEH6V,GAAWoB,eAAe9W,IACzB,GAAAwB,EAAAlD,GAAA,EAACiY,GAAAA,CACCvW,IAAK0V,EAAUoB,aAAa,CAAC9W,GAAG,CAChCyO,QAAS,KACPyD,EAAc,wCAChB,EACA5P,YAAaqT,WAEZ9V,EAAE,6BAEH,KACJ,GAAA2B,EAAAlD,GAAA,EAACiX,GAAAA,UACC,GAAA/T,EAAAlD,GAAA,EAACkW,SAAAA,CACC9S,UAAU,kOACV+M,QAAS,UACPyD,EAAc,yBACd,MAAM2D,GACR,EACA5U,KAAK,kBAEJpB,EAAE,sBAOjB,CAEA,SAASuV,GAAS,CAAE3F,SAAAA,CAAQ,CAAE,GAAGsH,EAAuC,EACtE,MACE,GAAAvV,EAAAlD,GAAA,EAACkE,KAAAA,CAAI,GAAGuU,CAAS,CAAErV,UAAWC,IAAG,kBAAmBoV,EAAUrV,SAAS,WACpE+N,GAGP,CAEA,SAAS8F,GAAa,CAAE9F,SAAAA,CAAQ,CAAE,GAAGoD,EAA2C,EAC9E,MACE,GAAArR,EAAAlD,GAAA,EAACqE,KAAAA,CAAI,GAAGkQ,CAAa,CAAEjR,cAAY,iBAAiBF,UAAU,gBAC5D,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,oOACb+N,KAIT,CAEA,SAAS8G,GAAa,CACpBvW,IAAAA,CAAG,CACHyO,QAAAA,CAAO,CACPgB,SAAAA,CAAQ,CACRnN,YAAAA,CAAW,CAMZ,EACC,MACE,GAAAd,EAAAlD,GAAA,EAACiX,GAAAA,UACC,GAAA/T,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACHlC,IAAKA,EACLmC,UAAW,GACXT,UAAU,yCACV4B,gBAAgB,0KAChBmL,QAASA,EACTnM,YAAaA,WAEZmN,KAIT,CC7HA,SAASuH,GAAQ,CACfC,aAAAA,CAAY,CACZC,gBAAAA,CAAe,CACfrB,UAAAA,CAAS,CACTJ,KAAAA,CAAI,CACJ0B,wBAAAA,CAAuB,CACvBzB,UAAAA,CAAS,CACTnW,MAAAA,CAAK,CACLqW,iCAAAA,CAAgC,CAChCwB,uBAAAA,CAAsB,CACtBC,4BAAAA,CAA2B,CAC3B1B,kCAAAA,CAAiC,CACjC2B,gBAAAA,CAAe,CACF,EACb,GAAM,CAACzX,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,cAErByX,EAA2D,CAC/DC,SAAU9B,GAAW+B,YAAYzX,KAAO,GACxC8T,MAAOjU,EAAE,UACTkU,eAAgBmD,CAClB,EAEMQ,EAAoB/b,CAAAA,EAAAA,EAAAA,MAAAA,EAA0B,MAE9CiF,EAASrB,SAAAA,EAEf,MACE,GAAAiC,EAAAlD,GAAA,EAACqZ,MAAAA,CAAIjW,UAAU,uCAAuCqB,aAAYlD,EAAE,yBAClE,GAAA2B,EAAAK,IAAA,EAACW,KAAAA,CAAGd,UAAU,iBACXyV,EACC,GAAA3V,EAAAlD,GAAA,EAACqE,KAAAA,CAAGjB,UAAU,4CACZ,GAAAF,EAAAlD,GAAA,EAACoK,EAAgBA,CAACnJ,MAAOA,EAAQ,GAAG4X,CAAuB,KAE3D,KACHzB,GAAWkC,cAAgB,CAACR,EAC3B,GAAA5V,EAAAlD,GAAA,EAACiV,EAAeA,CACd9E,QAAS,KACPsD,IACArD,CAAAA,EAAAA,EAAAA,EAAAA,EAAW,mBACXwD,EAAc,cAChB,EACAlS,IAAK0V,GAAWkC,aAAa5X,IAC7BsC,YAAaqT,EACbkC,kBAAmB,GACnBtY,MAAOA,EACP4T,QAAQ,OACRM,OAAM,GACND,UAAU,WACVnR,MAAOxC,EAAE,cAET,KACH4V,EACC,GAAAjU,EAAAlD,GAAA,EAAC2P,EAAAA,EAAKA,CAAAA,UACJ,GAAAzM,EAAAlD,GAAA,EAACyW,EAAgBA,CACf5B,QAAQ,OACR5T,MAAOA,EACPgK,eAAgBmO,EAChBjJ,QAAS,KACPyD,EAAc,iBACdxD,CAAAA,EAAAA,EAAAA,EAAAA,EAAW,qBACb,EACArM,MAAOxC,EAAE,YAAa,CAAEqW,SAAUT,EAAK7K,IAAI,GAC3CoI,KAAK,uBAEL,GAAAxR,EAAAlD,GAAA,EAACkX,GAAiBA,CAChBC,KAAMA,EACNC,UAAWA,EACXC,kCAAmCA,EACnCC,iCAAkCA,EAClCC,UAAWA,QAIf,CAACH,GAAW+B,YAAc/B,GAAWoC,YAAcR,CAAAA,GACrD,CAACD,EACD,GAAA7V,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACGsH,GAAWoC,YAAcR,EACxBA,EACE,GAAA9V,EAAAlD,GAAA,EAACgZ,EAAAA,CACCS,kBAAmBL,EACnBhW,UAAU,8BAET7B,EAAE,YAEH6V,GAAWoC,WACb,GAAAtW,EAAAlD,GAAA,EAACiV,EAAeA,CACdJ,QAAQ,OACP,GAAGuC,EAAUoC,UAAU,CACxB3V,UAAW,GACX0V,kBAAmB,GACnBxV,MAAOxC,EAAE,UACTN,MAAOA,EACPkP,QAAS,KACPsD,IACArD,CAAAA,EAAAA,EAAAA,EAAAA,EAAW,kBACXwD,EAAc,iBAChB,IAEA,KACF,KAEFwD,CAAAA,GAAWoC,YAAcpC,GAAWsC,eAAAA,GAAoBtC,GAAW+B,WACnE,GAAAjW,EAAAlD,GAAA,EAACwD,MAAAA,CACCyM,cAAa,GACb7M,UAAU,kFAEV,GAAAF,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAWd,EAAS,wBAA0B,uBAEnD,KAEH8U,GAAW+B,WACV,GAAAjW,EAAAlD,GAAA,EAACoV,EAAgBA,CACfP,QAAQ,OACR5T,MAAOA,EACPwU,eAAgBwD,EAAexD,cAAc,CAC7CD,MAAOyD,EAAezD,KAAK,CAC3BrF,QAAS,KACPyD,EAAc,kBACdxD,CAAAA,EAAAA,EAAAA,EAAAA,EAAW,oBACb,EACAmF,WAAW,cACXD,YAAa/T,EAAE,mBAEf,GAAA2B,EAAAlD,GAAA,EAACuW,EAAAA,EAAWA,CAAAA,CAACoD,WAAS,cAAe,GAAGV,CAAc,CAAG,GAAGN,CAAY,KAExE,QAEJ,SAIZ,CAMA,SAASiB,GAAQ,CAAEC,aAAAA,CAAY,CAAE5Y,MAAAA,CAAK,CAAgB,EACpD,MACE,GAAAiC,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,4CACb,GAAAF,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,wCACb,GAAAF,EAAAlD,GAAA,EAACkE,KAAAA,CAAGd,UAAU,wDACXyW,EAAa1V,GAAG,CAAC,CAAC,CAAEJ,MAAAA,CAAK,CAAE8S,QAAAA,CAAO,CAAEG,KAAAA,CAAI,CAAE7G,QAAAA,CAAO,CAAE,GAClD,CAAK0G,GAAS9U,QAAUiV,GAAMtV,IAE1B,GAAAoY,EAAAC,aAAA,EAAC9E,EAAeA,CACb,GAAG+B,CAAI,CACRnC,QAAQ,aACR9Q,MAAOA,EACPoR,OAAM,GACN5L,IAAKxF,EACL9C,MAAOA,EACPkP,QAAS,KACPsD,IACAC,EAA0B3P,GAC1BoM,KACF,IAIF0G,GAAS9U,OAET,GAAAmB,EAAAlD,GAAA,EAAC2P,EAAAA,EAAKA,CAAAA,UACJ,GAAAzM,EAAAlD,GAAA,EAACyW,EAAgBA,CACf5B,QAAQ,aACR9Q,MAAOA,EACP4Q,UAAU,qBACV+B,aAAY,GACZzV,MAAOA,EACPkP,QAAS,KACPuD,EAA0B3P,EAC5B,EACAc,6BAA8BmS,GAAMnS,sCAEpC,GAAA3B,EAAAlD,GAAA,EAAC4W,GAAuBA,CAACC,QAASA,EAAS9S,MAAOA,OAZ1CA,GAiBT,WAMnB,CAEA,IAAAiW,GAtSO,SAAkB,CACvBrZ,QAAAA,CAAO,CACPsZ,aAAAA,EAAe,EAAK,CACpB3C,iCAAAA,CAAgC,CAChCwB,uBAAAA,CAAsB,CACtBC,4BAAAA,CAA2B,CAC3B1B,kCAAAA,CAAiC,CACjC1R,MAAAA,CAAK,CACLkU,aAAAA,CAAY,CACZ1C,KAAAA,CAAI,CACJ0B,wBAAAA,CAAuB,CACvBF,aAAAA,CAAY,CACZC,gBAAAA,CAAe,CACfxB,UAAAA,CAAS,CACTG,UAAAA,CAAS,CACTpD,QAAAA,CAAO,CACPlT,MAAAA,CAAK,CACL+X,gBAAAA,CAAe,CACD,EAed,IAAM1W,EAASrB,SAAAA,EASf,MACE,GAAAiC,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,2BACb,GAAAF,EAAAlD,GAAA,EAACwD,MAAAA,CACCJ,UAAWC,IAAG,CACZ,kBAAmB1C,EACnB8C,UAAW,CAAC9C,CACd,YAEA,GAAAuC,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,oCACZ6W,EAAe,KACd,GAAA/W,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,mCAZpB,GANqB+Q,EACtB,CACE+F,KAAM,UACN,aAAc,EACd,aAAc/F,CAChB,EACA,CAAC,CAYwD,UACjD,GAAAjR,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACHlC,IAAKiE,EAAMjE,GAAG,CACd6C,OAAQoB,EAAMpB,MAAM,CACpB4L,QAASsD,EAETzO,gBAAgB,kEAChBuU,kBAAmB,YAEnB,GAAArW,EAAAlD,GAAA,EAACgU,EAAIA,CAAC/S,MAAOA,EAAO0E,MAAOA,QAIjC,GAAAzC,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,gCACb,GAAAF,EAAAlD,GAAA,EAAC0Y,GAAAA,CA9CTvB,KAAAA,EACAC,UAAAA,EACAwB,gBAAAA,EACArB,UAAAA,EACAoB,aAAAA,EACAE,wBAAAA,EACA5X,MAAAA,EACAqW,iCAAAA,EACAwB,uBAAAA,EACAC,4BAAAA,EACA1B,kCAAAA,EACA2B,gBAAAA,WAuCE,GAAA9V,EAAAlD,GAAA,EAACwD,MAAAA,CACCJ,UAAWC,IAAG,CACZ,uBAAwB,CAACf,EACzB,4BAA6BA,CAC/B,YAEA,GAAAY,EAAAlD,GAAA,EAACwD,MAAAA,CACCJ,UAAWC,IAAG,CACZ,kBAAmB1C,EACnB8C,UAAW,CAAC9C,CACd,YAEA,GAAAuC,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,qBAAqBE,cAAY,kCAC7CuW,GAAc9X,OAAS,GAAAmB,EAAAlD,GAAA,EAAC4Z,GAAAA,CAAQ3Y,MAAOA,EAAO4Y,aAAcA,IAAmB,aAM5F,ECnGO,IAAMM,GAAa,CAAC,CAAEC,UAAAA,CAAS,CAAEvK,OAAAA,CAAM,CAAE2G,QAAAA,CAAO,CAAe,IACpE,GAAM,CAAC6D,EAAUC,EAAY,CAAG9c,CAAAA,EAAAA,EAAAA,QAAAA,IAC1B,CAAC+c,EAAeC,EAAiB,CAAGhd,CAAAA,EAAAA,EAAAA,QAAAA,IACpC,CAACid,EAAcC,EAAgB,CAAGld,CAAAA,EAAAA,EAAAA,QAAAA,IAClC,CAACmd,EAAmBC,EAAqB,CAAGpd,CAAAA,EAAAA,EAAAA,QAAAA,IAC5Cqd,EAAgBxd,CAAAA,EAAAA,EAAAA,MAAAA,EAA0B,MAC1C,CAACyd,EAAaC,EAAe,CAAGvd,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACzCwd,EAAqB3d,CAAAA,EAAAA,EAAAA,MAAAA,EAA0B,MAC/C,CAAEkE,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,cAE7B1D,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACH+R,GAAQ6K,EAAgBrG,KAAAA,EAC/B,EAAG,CAACxE,EAAO,EAUX,IAAMoL,EAAc,KAClBC,WAAW,KACTL,GAAe9c,SAASiM,OAC1B,EAAG,GACL,EAEMmR,EAAe,CAACC,EAAuBC,KAC3CN,EAAe,IACfT,EAAYc,GACZZ,EAAiBa,EACnB,EAEA,MACE,GAAAnY,EAAAK,IAAA,EAACC,MAAAA,CACCJ,UAAW0X,EAAc,4BAA8B,iBACvDzH,eAAgB,KACVyH,IACFC,EAAe,IACfL,EAAgBL,GAChBO,EAAqBL,GACrBU,IAEJ,YAEA,GAAA/X,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,6GACb,GAAAF,EAAAK,IAAA,EAAC2S,SAAAA,CAAO/F,QAASqG,EAAS7T,KAAK,SAASS,UAAU,iBAChD,GAAAF,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,QAAQlJ,UAAU,WAC7B,GAAAF,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAU,4EACb7B,EAAE,SACH,GAAA2B,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAW7B,EAAE,kBAIlCkZ,EACC,GAAAvX,EAAAK,IAAA,EAAC2S,SAAAA,CACCvU,IAAKkZ,EACL1K,QA5CO,KACb4K,EAAe,IACfT,EAAYjG,KAAAA,GACZ6G,WAAW,KACTF,GAAoBjd,SAASiM,OAC/B,EAAG,IACL,EAuCQ5G,UAAWC,IACT,sGACA,2EACA,+BACA,uBACA,oEAEFiY,gBAAc,OACd3Y,KAAK,mBAEL,GAAAO,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,wBAAwBlJ,UAAU,iCAC7C,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,UAAM2W,EAAa1W,KAAK,MAEzB,KAEH0W,EACC,GAAAvX,EAAAlD,GAAA,EAACkE,KAAAA,UACEuW,EAAa5D,OAAO,EAAE1S,IAAI,GACzBiX,EAASpE,IAAI,EAAEtV,IACb,EAAA1B,GAAA,CAACqE,KAAAA,UACC,EAAArE,GAAA,CAAC4D,EAAAA,EAAIA,CAAAA,CACHoB,gBAAgB,6GAChBnB,UAAW,GACXT,UAAWC,IACT,qDACA,+DACA,wEACA,6BACA,wDAEF3B,IAAK0Z,EAASpE,IAAI,CAACtV,GAAG,CACtBsC,YAAaoX,EAASpE,IAAI,CAAChT,WAAW,CACtCmM,QAAS,KACPuD,EAA0B0H,EAASrX,KAAK,CAAE0W,EAAa1W,KAAK,EAC5DqX,EAASjL,OAAO,IAClB,EACAlL,wBAAuBmW,EAASpE,IAAI,CAACnS,4BAA4B,EAAEK,KACnEC,yBAAwBiW,EAASpE,IAAI,CAACnS,4BAA4B,EAAEvE,eAEnE8a,EAASrX,KAAK,IApBVqX,EAASrX,KAAK,EAuBrB,QAKR,GAAAb,EAAAlD,GAAA,EAACkE,KAAAA,UACEkW,EAAUjW,GAAG,CAAC,CAACiX,EAAUC,IACxB,GAAcxE,SAAS9U,OAEnB,GAAAmB,EAAAlD,GAAA,EAACqE,KAAAA,UACC,GAAAnB,EAAAK,IAAA,EAAC2S,SAAAA,CACCvU,IAAKgZ,IAAsBU,EAAQL,EAAqB,KACxD7K,QAAS,KACPgL,EAAaC,EAAUC,GACvB3H,EAA0B0H,EAASrX,KAAK,CAC1C,EACAX,UAAWC,IACT,mHACA,8FACA,wEACA,wDACA,mFAEFiY,gBAAc,QACd3Y,KAAK,SACLsC,wBAAuBmW,EAASpE,IAAI,EAAEnS,8BAA8BK,KACpEC,yBAAwBiW,EAASpE,IAAI,EAAEnS,8BAA8BvE,gBAErE,GAAA4C,EAAAlD,GAAA,EAAC8D,OAAAA,UAAMsX,EAASrX,KAAK,GACrB,GAAAb,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,wBAAwBlJ,UAAU,oCApBxCgY,EAASrX,KAAK,EAwBhBqX,EAASpE,IAAI,EAAEtV,IAEtB,GAAAwB,EAAAlD,GAAA,EAACqE,KAAAA,UACC,GAAAnB,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACHoB,gBAAgB,kEAChBnB,UAAW,GACXT,UAAWC,IACT,mEACA,+DACA,wEACA,wDAEF3B,IAAK0Z,EAASpE,IAAI,CAACtV,GAAG,CACtBsC,YAAaoX,EAASpE,IAAI,CAAChT,WAAW,CACtCmM,QAAS,KACPuD,EAA0B0H,EAASrX,KAAK,EACxCqX,EAASjL,OAAO,IAClB,EACAlL,wBAAuBmW,EAASpE,IAAI,CAACnS,4BAA4B,EAAEK,KACnEC,yBAAwBiW,EAASpE,IAAI,CAACnS,4BAA4B,EAAEvE,eAEnE8a,EAASrX,KAAK,IAnBVqX,EAASrX,KAAK,EAwBpB,UAMnB,ECzKawX,GAAqB,KAChC,GAAM,CAAEC,UAAAA,CAAS,CAAEC,gBAAAA,CAAe,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,IACjC,CAAEnR,OAAAA,CAAM,CAAEoR,OAAAA,CAAM,CAAE,CAAGnE,CAAAA,EAAAA,EAAAA,SAAAA,IAErBoE,EAAWC,SNgCoBjT,CAAY,CAAE6S,CAAwB,EAC3E,IAAMK,EAAYhI,EAChBjW,CAAAA,EAAAA,EAAAA,EAAAA,EAAI,aAAc,sDAClB+K,GAEImT,EAAYjI,EAChBjW,CAAAA,EAAAA,EAAAA,EAAAA,EAAI,kBAAmB,iDACrB,eACF+K,GAGIoT,EAAqBne,CAAAA,EAAAA,EAAAA,EAAAA,EAAI,eAAgB,2BAE/C,MAAO,CACLsb,WAAY,CAAEzX,IAAKoa,CAAU,EAC7BtC,WAAY,CAAE9X,IAAKqa,CAAU,EAC7B/D,YAAa,CAAEtW,IAAK,CAAC,EAAEsa,EAAmB,EAAEpT,EAAK,gCAAgC,CAAC,EAClFsP,mBAAoB,CAAExW,IAAK,CAAC,EAAEsa,EAAmB,EAAEpT,EAAK,8BAA8B,CAAC,EACvF4P,cAAe,CAAE9W,IAAK,CAAC,EAAEsa,EAAmB,EAAEpT,EAAK,iBAAiB,CAAC,EACrEuP,iBAAkB,CAAEzW,IAAK,CAAC,EAAEsa,EAAmB,EAAEpT,EAAK,4BAA4B,CAAC,EACnFwP,kBAAmB,CAAE1W,IAAK,CAAC,EAAEsa,EAAmB,EAAEpT,EAAK,6BAA6B,CAAC,EACrF0P,qBAAsB,CACpB5W,IAAK7D,CAAAA,EAAAA,EAAAA,EAAAA,EAAI,sCAAuC,yCAClD,EACA0a,WAAY,CACV7W,IAAK7D,CAAAA,EAAAA,EAAAA,EAAAA,EACH,mCACA,iDAEJ,EACAwa,aAAc,CACZ3W,IAAK7D,CAAAA,EAAAA,EAAAA,EAAAA,EACH,oCACA,2EAEJ,EACAyb,aAAc,CACZ5X,IAAK+Z,EACD,CAAC,EAAEO,EAAmB,EAAEpT,EAAK,8BAA8B,CAAC,CAC5D,CAAC,EAAEoT,EAAmB,EAAEpT,EAAK,uBAAuB,CAAC,CAE7D,CACF,EM1E0C2B,GAAU,KAAMkR,GAElDQ,EAASC,SN0EgB,CAC/BC,iBAAAA,CAAgB,CAChBC,gCAAAA,EAAkC,EAAK,CAIvC,CAAG,CAAC,CAAC,MDhEL5Q,EACAC,EAqCAD,EACAC,EC0BA,GAAM,CAAE4Q,QAAAA,CAAO,CAAEb,UAAAA,CAAS,CAAE,CAAGE,CAAAA,EAAAA,EAAAA,EAAAA,IACzB,CAAEnR,OAAAA,EAAS,IAAI,CAAE+R,MAAAA,CAAK,CAAE,CAAG9E,CAAAA,EAAAA,EAAAA,SAAAA,IAE3B+E,EAAwBC,MAAMC,OAAOH,GAAOH,mBAC9C9H,KAAAA,EACAoI,OAAOH,GAAOH,kBAEZO,EAAYP,GAAoBI,EAEhC,CAAE9W,KAAAA,CAAI,CAAEkX,UAAAA,CAAS,CAAE,ED1EzBnR,EC2EE,CAAE6Q,QAASA,EAAmBle,SAAUoM,CAAO,ED1EjDkB,EC2EE,CACEQ,QAAS,CAAC,CAACoQ,GAAY,EAAC,CAACb,GAAWoB,SAASC,aAAeT,CAAAA,CAC9D,ED3EKvQ,CAAAA,EAAAA,EAAAA,CAAAA,EAA0D,CAC/DC,SAAU,CAACyH,EAA+B/H,EAAU,CACpD,GAAGC,CAAO,IC4ERqR,EAA6BrX,GAAMsX,iBAAiB,CAAC,EAAE,CAEtDtX,CAAAA,GAAMsX,iBAAiBhb,QAAU,GAAK,GAAK2a,GAC9CI,CAAAA,EAA6BrX,GAAMsX,gBAAgBnb,OACjD,GAAoBob,GAAgBN,YAAcA,IACjD,CAAC,EAAE,EAGR,GAAM,CAAEjX,KAAMwX,CAAkB,CAAEN,UAAWO,CAAiB,CAAE,EDnDhE1R,ECqDI,CACE6Q,QAASA,EACTle,SAAUoM,EACV4S,MAAO,CACLT,UAAWA,GAAcI,GAA4BJ,UACrDU,SAAUN,GAA4BM,QACxC,CACF,ED3DJ3R,EC4DI,CACEQ,QACE,CAAC,CAACoQ,GACF,CAAC,CAACS,GAA4BM,UAC9Bvb,CAAAA,CAAQ6a,CAAAA,GAAaI,GAA4BJ,SAAAA,CACrD,ED/DG7Q,CAAAA,EAAAA,EAAAA,CAAAA,EAA6D,CAClEC,SAAU,CAAC0H,EAAkChI,EAAU,CACvD,GAAGC,CAAO,ICsEZ,MANe,CACbiR,UAAAA,EACA,GAAGO,GAAoBI,oBAAoB,CAC3CH,kBAAAA,EACAP,UAAAA,CACF,CAEF,EMlIkC,CAC9BR,iBAAkBX,GAAWoB,SAASU,uBAAuB,CAAC,EAAE,EAAEZ,SACpE,GAEMG,EAAchb,CAAAA,CAAQoa,CAAAA,GAAQ/B,MAAQ,CAAC,QAAS,QAAS,WAAW,CAACnN,QAAQ,CAACkP,EAAO/B,IAAI,GACzFqD,EAAW1b,CAAAA,CAAQ2Z,GAAWoB,SAASY,eAAkB7B,EAAO5O,QAAQ,CAAC,WAEzE0Q,EACJjC,GAAWoB,SAASc,SACpBlC,GAAWoB,SAASe,cACpBnC,GAAWoB,SAASgB,WAEhBC,EACJrC,GAAWoB,SAASkB,oBACpBtC,GAAWoB,SAASmB,oBACpBvC,GAAWoB,SAASoB,gBACpBxC,GAAWoB,SAASqB,eAEtB,MAAO,CACL,GAAGrC,CAAQ,CACXpD,cAAeqE,EAAcjB,GAAUpD,cAAgBnE,KAAAA,EACvDiE,qBAAsBmF,EAAmB7B,GAAUtD,qBAAuBjE,KAAAA,EAC1EgE,aAAcwF,GAAuBJ,EAAmB7B,GAAUvD,aAAehE,KAAAA,EACjFkE,WAAYgF,EAAW3B,GAAUrD,WAAalE,KAAAA,CAChD,CACF,ECjBa6J,GAAkB,CAAC,CAC9B9D,UAAAA,CAAS,CACTzU,MAAAA,CAAK,CACLgT,aAAAA,CAAY,CACZxB,KAAAA,CAAI,CACJ6B,gBAAAA,CAAe,CACfmF,UAAAA,CAAS,CACTvF,gBAAAA,CAAe,CACfC,wBAAAA,CAAuB,CACvBtB,UAAAA,CAAS,CACT5W,QAAAA,CAAO,CACPsZ,aAAAA,CAAY,CACZnB,uBAAAA,CAAsB,CACtBC,4BAAAA,CAA2B,CAC3B1B,kCAAAA,CAAiC,CACjCC,iCAAAA,CAAgC,CAChCnD,QAAAA,CAAO,CACPlT,MAAAA,CAAK,CACY,IACjB,GAAM,CAACmd,EAAYC,EAAc,CAAG7gB,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACvC,CAAC8gB,EAAeC,EAAiB,CAAG/gB,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IAC7C,CAAE+D,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,cACvBgd,EAAwBnhB,CAAAA,EAAAA,EAAAA,MAAAA,EAA0B,MAElDohB,EAAkBlD,KAElBmD,EAAa,KACjBL,EAAc,IACdE,EAAiB,IACjB/L,SAASmM,mBAAmB,CAAC,UAAWC,EAC1C,EAEMA,EAAgB,IACN,WAAVtV,EAAEC,GAAG,EACPmV,GAEJ,EAEMG,EAAuB,KAC3BrM,SAASsM,gBAAgB,CAAC,UAAWF,EACvC,EAEMG,EAA0B,KAC9BvM,SAASmM,mBAAmB,CAAC,UAAWC,EAC1C,EAcMI,EAAiB,KACrBvL,IACArD,CAAAA,EAAAA,EAAAA,EAAAA,EAAW,sBACXiO,EAAc,IACVC,GACFC,EAAiB,IACjBQ,MAEAR,EAAiB,IACjBM,IAEJ,EAUMvc,EAASrB,SAAAA,EAETge,EAAoB5b,IACxB,0IACA,CACE,oBAAqBf,CACvB,GAEF,MACE,GAAAY,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAK,IAAA,EAAC8V,MAAAA,CACC5X,GAAG,aACH2B,UAAWC,IAAG,uBAAwB,CACpC,8BAA+B,CAACpC,EAChC,aAAcqB,CAChB,aAEA,GAAAY,EAAAK,IAAA,EAACC,MAAAA,CACCJ,UAAWC,IAAG,wDAAyD,CACrE,UAAW,CAAC,CAACwV,EACb,kBAAmB,CAACA,CACtB,aAECuB,GAAaA,EAAUrY,MAAM,CAAG,EAC/B,GAAAmB,EAAAK,IAAA,EAAC2S,SAAAA,CACC9S,UAAWC,IAAG,YAAa,CACzB,0BAA2B,CAAC,CAACwV,CAC/B,GACA1I,QA7DQ,KAClBsD,IACI6K,GAAeC,EAAiB,IAChCH,GACFC,EAAc,IACdU,MAEAF,IACAR,EAAc,IAElB,EAoDY1b,KAAK,SACL2Y,gBAAe8C,EACf3c,GAAG,6BAEH,GAAAyB,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CACHxI,KAAK,OACL+J,KAAK,KACLjT,UAAWC,IAAG,eAAgB,CAC5B,oBAAqBf,CACvB,KAEF,GAAAY,EAAAK,IAAA,EAACO,OAAAA,CACCV,UAAWC,IAAG,kEAAmE,CAC/E,oBAAqBf,CACvB,aAEA,GAAAY,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAW7B,EAAE,UAC5BA,EAAE,cAGL,KACH,EASG,KARF,GAAA2B,EAAAlD,GAAA,EAACkU,EAAcA,CACbjT,MAAOA,EACP0E,MAAOA,EACPvC,UAAWC,IAAG,CACZ,0BAA2B,CAAC,CAACwV,CAC/B,GACA1E,QAASA,IAGb,GAAAjR,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,mEACZyV,EACC,GAAA3V,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,wBACb,GAAAF,EAAAlD,GAAA,EAACoK,EAAgBA,CAACnJ,MAAOA,EAAQ,GAAG4X,CAAuB,KAE3D,KACJ,GAAA3V,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,8CACZqb,GAAiBnF,cAAgB,CAACR,EACjC,GAAA5V,EAAAK,IAAA,EAACK,EAAAA,EAAIA,CAAAA,CACHR,UAAU,OACV4B,gBAAgB,0CAChBnB,UAAW,GACXnC,IAAK+c,GAAiBnF,aAAa5X,IACnCsC,YAAaqT,EACbkC,kBAAmB,GACnBpJ,QAAS,KACPsD,IACArD,CAAAA,EAAAA,EAAAA,EAAAA,EAAW,mBACXwD,EAAc,cAChB,YAEA,GAAA1Q,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CACHxI,KAAK,WACL+J,KAAK,KACLjT,UAAWC,IAAG,eAAgB,CAC5B,WAAY,CAACpC,EACb,oBAAqBqB,CACvB,KAEF,GAAAY,EAAAlD,GAAA,EAAC8D,OAAAA,CACCV,UAAWC,IACT,+EACA,CACE,oBAAqBf,CACvB,YAGDf,EAAE,iBAGL,KACH4V,EACC,GAAAjU,EAAAK,IAAA,EAAC2S,SAAAA,CACC9S,UAAU,eACV+M,QAAS,KACPyD,EAAc,iBACdoL,GACF,EACA1D,gBAAegD,EACf3b,KAAK,mBAEL,GAAAO,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CACHxI,KAAK,cACL+J,KAAK,KACLjT,UAAWC,IAAG,eAAgB,CAC5B,WAAY,CAACpC,EACb,gBAAiBqB,CACnB,KAEF,GAAAY,EAAAlD,GAAA,EAAC8D,OAAAA,CACCV,UAAWC,IACT,4EACA,CACE,oBAAqBf,CACvB,YAGDf,EAAE,YAAa,CAAEqW,SAAUT,EAAK7K,IAAI,QAGvC,CAACmS,GAAiBtF,YAAcsF,GAAiBjF,UAAAA,GACnD,CAACT,EACD,GAAA7V,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,8BACb,GAAAF,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,8BACZqb,GAAiBjF,YAAc,CAACR,EAC/B,GAAA9V,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,iBACb,GAAAF,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACF,GAAG6a,EAAgBjF,UAAU,CAC9BD,kBAAmB,GACnB1V,UAAW,GACXT,UAAW6b,EACX9O,QAAS,KACPsD,IACArD,CAAAA,EAAAA,EAAAA,EAAAA,EAAW,kBACXwD,EAAc,iBAChB,WAECrS,EAAE,cAGL,KACHyX,EACC,GAAA9V,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,iBACb,GAAAF,EAAAlD,GAAA,EAACgZ,EAAAA,CACC5V,UAAW6b,EACXxF,kBAAmB+E,WAElBjd,EAAE,cAGL,KACHkd,EAAgBtF,UAAU,CACzB,GAAAjW,EAAAK,IAAA,EAACC,MAAAA,CACCJ,UAAU,OACV+M,QAAS,KACPsD,IACAG,EAAc,iBAChB,YAEA,GAAA1Q,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CACHxI,KAAK,cACL+J,KAAK,KACLjT,UAAWC,IAAG,yBAA0B,CACtC,WAAY,CAACpC,EACb,gBAAiBqB,CACnB,KAEF,GAAAY,EAAAlD,GAAA,EAACkf,EAAAA,EAAKA,CAAAA,CACJhG,SAAUuF,GAAiBtF,YAAYzX,KAAO,GAC9C8T,MAAOjU,EAAE,UACTkU,eAAgBmD,EAChBuG,SAAU,GACVC,OAAQ,KACNf,EAAc,IACdE,EAAiB,GACnB,EACAc,gBAAiBhc,IACf,mEACA,CACE,oBAAqBf,CACvB,GAED,GAAGqW,CAAY,MAGlB,UAGN,cAIRyF,CAAAA,GAAcE,CAAAA,GACd,GAAApb,EAAAlD,GAAA,EAACwD,MAAAA,CACCJ,UAAU,oGACVE,cAAY,oBACZ6M,QAASuO,IAGZtE,GAAaA,EAAUrY,MAAM,CAAG,EAC/B,GAAAmB,EAAAlD,GAAA,EAACwD,MAAAA,CACCF,cAAY,aACZF,UAAWC,IAAG,CAAEic,QAASlB,EAAYmB,UAAW,CAACnB,CAAW,YAE5D,GAAAlb,EAAAlD,GAAA,EAACgS,EAAWA,CACVnC,OAAQuO,EACRnM,UAAU,OACVC,aAAciM,EACdhM,4BAA4B,aAC5BE,YAAa,KACXG,SAASgN,cAAc,CAAC,qBAAqBxV,QACtC,aAGT,GAAA9G,EAAAlD,GAAA,EAACma,GAAUA,CAACtK,OAAQuO,EAAYhE,UAAWA,EAAW5D,QAxO5C,KACpB6H,EAAc,GAChB,QAyOU,KACJ,GAAAnb,EAAAlD,GAAA,EAACgS,EAAWA,CACVnC,OAAQyO,EACRrM,UAAU,QACVC,aAAciM,EACdhM,4BAA4B,sBAE3BgF,GAAQmH,EACP,GAAApb,EAAAlD,GAAA,EAACyf,GAAAA,CACCtI,KAAMA,EACNC,UAAWqH,EACXjI,QAlPS,KACnB+H,EAAiB,GACnB,EAiPYhH,UAAWA,EACXD,iCAAkCA,EAClCD,kCAAmCA,IAEnC,UAIR,GAAAnU,EAAAlD,GAAA,EAACqZ,MAAAA,CAAIjW,UAAU,2BACb,GAAAF,EAAAlD,GAAA,EAAC0f,GAAQA,CACP/e,QAASA,EACTsZ,aAAcA,EACd3C,iCAAkCA,EAClCwB,uBAAwBA,EACxBC,4BAA6BA,EAC7B1B,kCAAmCA,EACnC1R,MAAOA,EACPiT,gBAAiBA,EACjBrB,UAAWA,EACXJ,KAAMA,EACNC,UAAWqH,EACX5E,aAAcO,EACdvB,wBAAyBA,EACzBF,aAAcA,EACdxE,QAASA,EACTlT,MAAOA,EACP+X,gBAAiBA,QAK3B,EAaM2G,GAAkB,CAAC,CACvBje,IAAAA,CAAG,CACHyO,QAAAA,CAAO,CACPgB,SAAAA,CAAQ,CACRnN,YAAAA,CAAW,CAMZ,GAEG,GAAAd,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACHoB,gBAAiB3B,IACf,gCACA,4FACA,wEACA,wDACA,iFAEFD,UAAU,wJACVS,UAAW,GACXnC,IAAKA,EACLyO,QAASA,EACTnM,YAAaA,WAEZmN,IAKDsO,GAAiB,CAAC,CACtBtI,KAAAA,CAAI,CACJC,UAAAA,CAAS,CACTZ,QAAAA,CAAO,CACPe,UAAAA,CAAS,CACTD,iCAAAA,CAAgC,CAChCD,kCAAAA,CAAiC,CACjB,IAChB,GAAM,CAAE9M,OAAAA,EAAS,IAAI,CAAE,CAAGiN,CAAAA,EAAAA,EAAAA,SAAAA,IAEpB,CAAEjW,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,cACvBiW,EAA6BC,CAAAA,EAAAA,EAAAA,EAAAA,EAAyBP,EAAKQ,YAAY,CAAE,CAAEpN,OAAAA,CAAO,GAExF,MACE,GAAArH,EAAAK,IAAA,EAAC4P,EAAAA,EAASA,CAAAA,CAACd,YAAW,aACpB,GAAAnP,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,8GACb,GAAAF,EAAAK,IAAA,EAAC2S,SAAAA,CAAO/F,QAASqG,EAAS7T,KAAK,SAASS,UAAU,iBAChD,GAAAF,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,QAAQ+J,KAAK,KAAKjT,UAAU,WACvC,GAAAF,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAU,4EACb7B,EAAE,SACH,GAAA2B,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAW7B,EAAE,iCAInC,GAAA2B,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,iBACb,GAAAF,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,gBACb,GAAAF,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,mFACb,GAAAF,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,OAAO+J,KAAK,WAG3B,GAAAnT,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,wJACb,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,UAAMvC,EAAE,YAAa,CAAEqW,SAAUT,EAAK7K,IAAI,KAC3C,GAAApJ,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,uBACb,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,qBAAa+T,EAAKU,UAAU,GAAQ,IAAEtW,EAAE,aAE1D,GAAA2B,EAAAlD,GAAA,EAACwD,MAAAA,UAAKjC,EAAE,oBAAqB,CAAEuW,kBAAmBL,CAA2B,KAC5EN,EAAKY,aAAa,CACjB,GAAA7U,EAAAlD,GAAA,EAACwD,MAAAA,UAAKjC,EAAE,qBAAsB,CAAEwW,cAAeZ,EAAKY,aAAa,KAC/D,WAGR,GAAA7U,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,kHACZgU,GAAWY,aAAatW,IACvB,GAAAwB,EAAAlD,GAAA,EAAC2f,GAAAA,CACCje,IAAK0V,EAAUY,WAAW,CAACtW,GAAG,CAC9ByO,QAAS,KACPyD,EAAc,iCAChB,EACA5P,YAAaqT,WAEZ9V,EAAE,sBAEH,KACH6V,GAAWgB,mBAAmB1W,IAC7B,GAAAwB,EAAAlD,GAAA,EAAC2f,GAAAA,CACCje,IAAK0V,EAAUgB,iBAAiB,CAAC1W,GAAG,CACpCyO,QAAS,KACPyD,EAAc,oCAChB,EACA5P,YAAaqT,WAEZ9V,EAAE,aAEH,KAEH6V,GAAWc,oBAAoBxW,KAAO,CAAC4V,EACtC,GAAApU,EAAAlD,GAAA,EAAC2f,GAAAA,CACCje,IAAK0V,EAAUc,kBAAkB,CAACxW,GAAG,CACrCyO,QAAS,KACPyD,EAAc,qCAChB,EACA5P,YAAaqT,WAEZ9V,EAAE,cAEH,KAEH6V,GAAWe,kBAAkBzW,KAAO,CAAC4V,EACpC,GAAApU,EAAAlD,GAAA,EAAC2f,GAAAA,CACCje,IAAK0V,EAAUe,gBAAgB,CAACzW,GAAG,CACnCyO,QAAS,KACPyD,EAAc,mCAChB,EACA5P,YAAaqT,WAEZ9V,EAAE,iBAEH,KAEH6V,GAAWiB,cAAc3W,IACxB,GAAAwB,EAAAlD,GAAA,EAAC2f,GAAAA,CACCje,IAAK0V,EAAUiB,YAAY,CAAC3W,GAAG,CAC/ByO,QAAS,KACPyD,EAAc,uCAChB,EACA5P,YAAaqT,WAEZ9V,EAAE,4BAEH,KAEH6V,GAAWkB,sBAAsB5W,IAChC,GAAAwB,EAAAlD,GAAA,EAAC2f,GAAAA,CACCje,IAAK0V,EAAUkB,oBAAoB,CAAC5W,GAAG,CACvCyO,QAAS,KACPyD,EAAc,uCAChB,EACA5P,YAAaqT,WAEZ9V,EAAE,4BAEH,KAEH6V,GAAWmB,YAAY7W,IACtB,GAAAwB,EAAAlD,GAAA,EAAC2f,GAAAA,CACCje,IAAK0V,EAAUmB,UAAU,CAAC7W,GAAG,CAC7ByO,QAAS,KACPyD,EAAc,kCAChB,EACA5P,YAAaqT,WAEZ9V,EAAE,uBAEH,KAEH6V,GAAWoB,eAAe9W,IACzB,GAAAwB,EAAAlD,GAAA,EAAC2f,GAAAA,CACCje,IAAK0V,EAAUoB,aAAa,CAAC9W,GAAG,CAChCyO,QAAS,KACPyD,EAAc,wCAChB,EACA5P,YAAaqT,WAEZ9V,EAAE,6BAEH,KAEJ,GAAA2B,EAAAlD,GAAA,EAACkW,SAAAA,CACC9S,UAAWC,IACT,oFACA,iHACA,0CACA,qGACA,wDACA,0CACA,iFAEF8M,QAAS,UACPyD,EAAc,yBACd4C,IACA,MAAMe,GACR,EACA5U,KAAK,kBAEJpB,EAAE,kBAKb,gBC9iBA,IAAMqe,GAAqB/S,OAAOgT,MAAM,CAAC,CACvC9J,MAAO,YACP+J,QAAS,SACTC,OAAQ,QACV,GAKaC,GAAqB,CAAC,CACjCC,OAAAA,CAAM,CACN9O,SAAAA,CAAQ,CACR/N,UAAAA,CAAS,CACT8c,WAAAA,CAAU,CACV,GAAGhf,EACqB,GAEtB,GAAAgC,EAAAK,IAAA,EAACC,MAAAA,CACCJ,UAAWC,IACT,+CACA,CACE,4BAA6B4c,UAAAA,EAC7B,8BAA+BA,YAAAA,EAC/B,4BAA6BA,WAAAA,CAC/B,EACA7c,GAEF+c,YAAWP,EAAkB,CAACK,EAAO,CACrCG,cAAa,GACb9c,cAAY,qBACX,GAAGpC,CAAI,WAEPgf,EACC,GAAAhd,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAAE,GAAGoL,CAAU,GAEpB,GAAAhd,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACGmQ,UAAAA,GAAsB,GAAA/c,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,eAAe0I,QAAQ,UACxDiL,YAAAA,GAAwB,GAAA/c,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,eAAe0I,QAAQ,aAG9D7D,yCE1CA,IAAMkP,GAAmC,CAC9Cna,cAAe,2BACfC,gBAAiB,CAAC;;;;;;;;;;;;;;;CAenB,CAAC,CACAC,eAAgB,0BAClB,EAwBaka,GAAkB,CAC7Bpa,cAAe,UACfC,gBAAiB,CAAC;;;;;;;;;CASnB,CAAC,CACAC,eAAgB,SAClB,EAqBama,GAA0B,CACrCra,cAAe,kBACfC,gBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDnB,CAAC,CACAC,eAAgB,iBAClB,EAqBaoa,GAAsB,CACjCta,cAAe,cACfC,gBAAiB,CAAC;;;;;;;;;;;;;;;;;CAiBnB,CAAC,CACAC,eAAgB,aAClB,EAkBaqa,GAAuC,CAClDva,cAAe,+BACfC,gBAAiB,CAAC;;;;CAInB,CAAC,CACAC,eAAgB,8BAClB,EChNasa,GAAe,CAC1BC,aAAc,gBACdC,aAAc,gBACdC,KAAM,iBACNC,QAAS,UAETC,MAAO,QACPC,WAAY,cACZC,UAAW,aAEXC,YAAa,eAEbC,WAAY,cACZC,MAAO,iBAEPC,IAAK,KAIP,ECXMC,GAAkB,IACtB,OAAQhV,GACN,IAAK,eACL,IAAK,uBACH,OAAOoU,GAAaC,YAAY,KAC7B,eACL,IAAK,uBACH,OAAOD,GAAaE,YAAY,KAC7B,OACH,OAAOF,GAAaG,IAAI,KACrB,QACH,OAAOH,GAAaU,KAAK,KACtB,aACH,OAAOV,GAAaS,UAAU,SAE9B,MAAO,EACX,CACF,EAEaI,GAAQ,CACnBC,IAAK,MACLC,KAAM,MACR,EAIO,SAASC,GAAc,CAC5B7Z,KAAAA,EAAO,IAAI,CACX1J,SAAAA,EAAW,IAAI,CACfwE,KAAAA,EAAO,aAAa,CACpBgf,UAAAA,CAAS,CACTC,eAAAA,EAAiBL,GAAMC,GAAG,CAC1BK,kBAAAA,CAAiB,CAQlB,MFbCrW,EACAC,EAiCAD,EACAC,EErBA,GAAM,CAAClK,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,sBACrB,CACJsgB,SAAAA,CAAQ,CACRC,YAAAA,CAAW,CACXC,SAAAA,CAAQ,CACRC,MAAAA,CAAK,CACLC,UAAW,CAAEC,cAAAA,CAAa,CAAE,CAC5BC,SAAAA,CAAQ,CACRC,cAAAA,CAAa,CACd,CAAGC,CAAAA,EAAAA,GAAAA,EAAAA,IAEE,CAACC,EAAcC,EAAgB,CAAGhlB,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IAE3CilB,EACJ5a,OAAAA,GAAiB,CAAC0a,GAAgBX,IAAmBL,GAAMC,GAAG,CAE1DkB,EAAcC,CAAAA,EAAAA,EAAAA,WAAAA,EAClB,GAA4BhB,EAAY,CAAC,EAAEA,EAAU,CAAC,EAAEiB,EAAM,CAAC,CAAGA,EAClE,CAACjB,EAAU,EAGPkB,EAAsBR,EAAcK,EAAY,gBAAgBI,UAEhEC,EAAUd,EAAMS,EAAY,eAC5BM,EAAOf,EAAMS,EAAY,SACzBO,EAAQhB,EAAMS,EAAY,UAE1B,CAAEjd,KAAMyd,CAAgB,CAAE,EFzChC1X,EE0CE,CAAErN,SAAAA,EAAU0J,KAAAA,EAAMlF,KAAAA,CAAK,EFzCzB8I,EE0CE,CAAEQ,QAAS,CAAC,CAACpE,CAAK,EFxCbgE,CAAAA,EAAAA,EAAAA,CAAAA,EAA6D,CAClEC,SAAU,CAACuU,GAAkC7U,EAAU,CACvD,GAAGC,CAAO,IEwCN0X,EAASD,GAAkBE,WAAW,CAAC,EAAE,EAAED,QAAU,EAAE,CAG7DrlB,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACJ8jB,IAAmBL,GAAMC,GAAG,EACzBW,CAAa,CAACO,EAAY,SAAS,EACtCV,EAASU,EAAY,SAAUS,EAAOphB,MAAM,CAAG,EAAI,eAAiB,GAG1E,EAAG,CAAC2gB,EAAaV,EAAUmB,EAAQhB,EAAeP,EAAe,EAEjE,GAAM,CACJnc,KAAM4d,CAAe,CACrB1G,UAAAA,CAAS,CACT5G,MAAAA,CAAK,CACN,EF1BDvK,EE2BE,CACErN,SAAAA,EACAmlB,WAAYrB,EAAMS,EAAY,cAChC,EF7BFjX,EE8BE,CACEQ,QACE,CAAC,CAAC,4BAA4BsX,IAAI,CAACR,IACnClb,OAAAA,GACA,CAAE+Z,CAAAA,IAAmBL,GAAME,IAAI,EAAI,CAACoB,CAAAA,CACxC,EFjCKhX,CAAAA,EAAAA,EAAAA,CAAAA,EAA4C,CACjDC,SAAU,CAACwU,GAAiB9U,EAAU,CACtC,GAAGC,CAAO,IEkCZ3N,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR,GAAIulB,EAEA,GAAkBG,SAASC,OAAOC,SAASV,MAC1CK,GAAiBG,SAASC,OAAOC,SAAST,OAU3ClB,EAAYW,EAAY,eACxBX,EAAYW,EAAY,SACxBV,EAASU,EAAY,QAASW,GAAiBG,SAASC,OAAOC,SAASV,MACxEhB,EAASU,EAAY,SAAUW,GAAiBG,SAASC,OAAOC,SAAST,OACzET,EAAgB,MAZhBA,EAAgB,IAChBR,EAASU,EAAY,QAAS,IAC9BV,EAASU,EAAY,SAAU,gBAC/BZ,EAASY,EAAY,cAAe,CAClC/f,KAAM,WACNghB,QAASpiB,EAAE,+BACb,SAQG,GAAIwU,EAET,IAAK,IAAMA,KAAS6N,KADAC,KAAK,CAACC,KAAKC,SAAS,CAAChO,IACdiO,aAAa,CAClCjO,GAAO4N,UAAY,cACrBnB,EAAgB,IAChBR,EAASU,EAAY,QAAS,IAC9BV,EAASU,EAAY,SAAU,gBAC/BZ,EAASY,EAAY,cAAe,CAClC/f,KAAM,WACNghB,QAASpiB,EAAE,+BACb,GAIR,EAAG,CAAC8hB,EAAiBrB,EAAUU,EAAaZ,EAAUvgB,EAAGwgB,EAAahM,EAAM,EAE5EjY,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KAEJ+jB,IACElF,EAAWkF,EAAkB,IAC5BA,EAAkB,IAE3B,EAAG,CAAClF,EAAWkF,EAAkB,EAEjC,IAAMoC,EAASf,GAAkBE,WAAW,CAAC,EAAE,EAAEc,sBACjD,GAAgB,UAAUX,IAAI,CAAC1b,GAK7B,GAAA3E,EAAAlD,GAAA,EAAAkD,EAAA4M,QAAA,WACGmU,EAAO9f,GAAG,CAAC,CAAC,CAAEmI,KAAAA,CAAI,CAAEvI,MAAAA,CAAK,CAAEogB,SAAAA,CAAQ,CAAE,GACpC,GAAqC7X,CAAAA,UAAAA,GAAoBA,SAAAA,CAAS,EACzD,GAAApJ,EAAAlD,GAAA,EAACmd,QAAAA,CAA8Bxa,KAAK,SAAU,GAAGyf,EAASM,EAAYpW,GAAM,EAAhEoW,EAAYpW,IAG7BA,UAAAA,GAAoB6W,EAAOphB,MAAM,CAAG,EAEpC,GAAAmB,EAAAK,IAAA,EAAC6gB,GAAAA,EAAUA,CAAAA,CACTrgB,MAAOA,EACPsgB,eAAe,SACf/X,KAAMoW,EAAYpW,GAElBgY,aAAc5D,GAAaU,KAAK,CAChCmD,SAAU,CAACJ,EACXK,gBAAiB,CACfC,SAAU,GACR,CAAKN,GAGE7jB,iBAAAA,KAA6BA,GAChCuH,CAAAA,OAAAA,EACEtG,EAAE,uBACFA,EAAE,0BAGZ,YAEA,GAAA2B,EAAAlD,GAAA,EAAC0kB,SAAAA,CAAOtR,SAAQ,GAACE,OAAM,GAAChT,MAAM,wBAC3BiB,EAAE,kBAEJ4hB,EAAOhf,GAAG,CAAC,GACV,GAAAjB,EAAAlD,GAAA,EAAC0kB,SAAAA,CAAOpkB,MAAO2iB,EAAM3iB,KAAK,UACvB2iB,EAAM3W,IAAI,EADoB2W,EAAM3iB,KAAK,KApBzCoiB,EAAYpW,IA6BrB,GAAApJ,EAAAlD,GAAA,EAAC2kB,GAAAA,EAASA,CAAAA,CACR5gB,MAAOA,EACPsgB,eAAe,mBACf/X,KAAMoW,EAAYpW,GAClBgY,aAAchD,GAAgBhV,GAC9BnB,QAASmB,eAAAA,GAAyBqQ,EAClC4H,SAAU,CAACJ,EAEXK,gBAAiB,CACfC,SAAU,IACR,GAAI,CAACN,GAAa,GAAW7X,eAAAA,EAC3B,MAAO,GAET,OAAQA,GACN,IAAK,eACL,IAAK,uBACH,GAAIzE,OAAAA,EACF,OAAOtG,EAAE,0BAEX,OAAOA,EAAE,6BACX,KAAK,QACH,OAAOA,EAAE,yBACX,KAAK,OACH,GAAIsG,OAAAA,EACF,OAAOtG,EAAE,sBAEX,OAAOA,EAAE,qBACX,KAAK,aACH,GAAIsG,OAAAA,EAAe,CACjB,GAAI,4BAA4B0b,IAAI,CAACjjB,GAAQ,CAC3C,GAAI,CAACiiB,GAAgB,CAACc,GAAiBG,OAAAA,GAAa,EAACR,GAAQ,CAACC,CAAAA,EAC5D,OAAO1hB,EAAE,gCAEX,MAAO,EACT,CACA,GAAIjB,KAAAA,GAAiB,EAAC0iB,GAAQ,CAACC,CAAAA,GAAUtgB,gBAAAA,EACvC,OAAOpB,EAAE,2BAEX,MAAOjB,KAAAA,EACHiB,EAAE,yBACFA,EAAE,0BACR,CACA,MAAO4iB,EAAAA,KAAY7jB,GAAeiB,EAAE,2BACtC,SACE,GAAI+K,yBAAAA,EAAiC,OAAO/K,EAAE,8BAC9C,GAAI+K,yBAAAA,EAAiC,OAAO/K,EAAE,8BAC9C,OAAOA,EAAE,CAAC,QAAQ,EAAE+K,EAAK,MAAM,CAAC,CACpC,CACF,CACF,EACC,GAAIA,iBAAAA,GACLA,yBAAAA,GACAA,iBAAAA,GACAA,yBAAAA,GACAA,SAAAA,EACI,CAAEsY,UAAW,EAAG,EAChB,CAAC,CAAC,EAjDDlC,EAAYpW,OApDlB,IA2GX,CCvPO,IAAMuY,GAIT,CAAC,CACH9gB,MAAAA,CAAK,CACLuI,KAAAA,CAAI,CACJ6X,SAAAA,CAAQ,CACRI,SAAAA,CAAQ,CACRC,gBAAAA,CAAe,CACfH,eAAAA,CAAc,CACdjhB,UAAAA,CAAS,CACT0hB,mBAAAA,CAAkB,CAClBC,0BAAAA,CAAyB,CACzB,GAAG7jB,EACJ,IACC,IAAMO,EAAKujB,CAAAA,EAAAA,EAAAA,KAAAA,IACLC,EAAW,CAAC,aAAa,EAAExjB,EAAG,CAAC,CAC/B,CAACF,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,sBACrB,CACJ4gB,SAAAA,CAAQ,CACRF,UAAW,CAAE0B,OAAAA,CAAM,CAAEzB,cAAAA,CAAa,CAAE,CACrC,CAAGG,CAAAA,EAAAA,GAAAA,EAAAA,IAEE4C,EAAyBC,CAAAA,EAAAA,GAAAA,EAAAA,EAAIvB,EAAQtX,GACrC8Y,EAAeD,CAAAA,EAAAA,GAAAA,EAAAA,EAAIhD,EAAe7V,GAClC+Y,EAAW,CAAC,CAACH,EAEbI,EAAmB,CACvB,CAAE3iB,KAAM,SAAUghB,QAASpiB,EAAE,+BAAgC,EAC7D,CAAEoB,KAAM,eAAgBghB,QAASpiB,EAAE,qCAAsC,EACzE,CAAEoB,KAAM,eAAgBghB,QAASpiB,EAAE,qCAAsC,EACzE,CAAEoB,KAAM,mBAAoBghB,QAASpiB,EAAE,yCAA0C,EAClF,CAED,MACE,GAAA2B,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAWC,IAAG,CAAE,CAACyhB,EAA6B,CAAE,CAAC,CAACA,CAAmB,aACxE,GAAA5hB,EAAAlD,GAAA,EAACulB,GAAAA,EAASA,CAAAA,CACRxhB,MAAOA,EACPogB,SAAUA,EACVI,SAAUA,EACVc,SAAUA,EACVjiB,UAAWC,IAAG,aAAc,CAC1B,CAACghB,EAAyB,CAAE,CAAC,CAACA,CAChC,YAEA,GAAAnhB,EAAAlD,GAAA,EAACmd,QAAAA,CACE,GAAGjc,CAAI,CACRkC,UAAWC,IAAG,aAAc,CAC1B,CAACD,EAAoB,CAAE,CAAC,CAACA,EACzB,aAAciiB,CAChB,GACAG,eAAcH,EACdI,mBAAkBR,EACjB,GAAG7C,EAAS9V,EAAM,CACjBmY,SAAU,CACRN,SAAU,GACR,kEAAkEZ,IAAI,CAACjjB,IACvEiB,EAAE,kBACJmkB,OAAQ,GAAmB,UAAUnC,IAAI,CAACjjB,IAAUiB,EAAE,gCACtDokB,aAAc,GACZ,cAAcpC,IAAI,CAACjjB,IAAUiB,EAAE,sCACjCqkB,aAAc,GACZ,cAAcrC,IAAI,CAACjjB,IAAUiB,EAAE,sCACjCskB,iBAAkB,GAChB,iCAAiCtC,IAAI,CAACjjB,IACtCiB,EAAE,yCACN,EACA,GAAGijB,CAAe,EAClB,KAGN,GAAAthB,EAAAlD,GAAA,EAACkE,KAAAA,CACCzC,GAAIwjB,EACJ7hB,UAAWC,IAAG,yCAA0C,CACtD,CAAC0hB,EAAoC,CAAE,CAAC,CAACA,CAC3C,YAECO,EAAiBnhB,GAAG,CAAC,CAAC,CAAEwf,QAAAA,CAAO,CAAEhhB,KAAAA,CAAI,CAAE,IACtC,IAAMmjB,EAAsBZ,GAAYa,OAAO,CAACpjB,EAAK,CACrD,MACE,GAAAO,EAAAK,IAAA,EAACc,KAAAA,CAECjB,UAAWC,IAAG,kDAAmD,CAC/D,cAAeyiB,EACf,eAAgB,CAACA,GAAuBV,CAC1C,aAECU,GAAuB,GAAA5iB,EAAAlD,GAAA,EAACgmB,GAAAA,EAAaA,CAAAA,CAAC5iB,UAAU,oBAChD,CAAC0iB,GAAuB,CAACV,GACxB,GAAAliB,EAAAlD,GAAA,EAACqR,MAAAA,CACC6I,KAAK,MACLjK,cAAW,GACXqB,QAAQ,WACR2U,OAAO,KACPC,MAAM,KACN9iB,UAAU,2BAEV,GAAAF,EAAAlD,GAAA,EAACmmB,SAAAA,CAAO9iB,GAAG,IAAI+iB,GAAG,IAAIC,EAAE,IAAI3U,KAAK,cAGpC,CAACoU,GAAuBV,GACvB,GAAAliB,EAAAlD,GAAA,EAACqR,MAAAA,CACC6I,KAAK,MACLjK,cAAW,GACXqB,QAAQ,WACR4U,MAAM,KACND,OAAO,KACP7iB,UAAU,2BAEV,GAAAF,EAAAlD,GAAA,EAACK,OAAAA,CACCimB,EAAE,eACF9U,OAAO,UACPE,KAAK,OACLC,SAAS,UACTG,cAAc,QACdyU,eAAe,YAIrB,GAAArjB,EAAAlD,GAAA,EAAC8D,OAAAA,UAAM6f,MAtCF,CAAC,gBAAgB,EAAEhhB,EAAK,CAAC,CAyCpC,OAIR,EC7Ia6jB,GACX,yFACWC,GAAQ,qBC4BRC,GAA2D,CAAC,CACvEvC,SAAAA,CAAQ,CACR1Y,QAAAA,CAAO,CACPqZ,mBAAAA,CAAkB,CAClB6B,UAAAA,CAAS,CACTtC,eAAAA,CAAc,CACduC,aAAAA,CAAY,CACZ7iB,MAAAA,CAAK,CACLoH,QAAAA,CAAO,CACP0b,wBAAAA,CAAuB,CACvBva,KAAAA,EAAO,OAAO,CACdwa,iBAAAA,CAAgB,CAChBC,WAAAA,CAAU,CACVC,kBAAAA,CAAiB,CAClB,IACC,IAAMvlB,EAAKujB,CAAAA,EAAAA,EAAAA,KAAAA,IACLC,EAAW,CAAC,aAAa,EAAExjB,EAAG,CAAC,CAC/BwlB,EAAgB,CAAC,mBAAmB,EAAExlB,EAAG,CAAC,CAC1CylB,EAAU,CAAC,YAAY,EAAEzlB,EAAG,CAAC,CAC7B,CAACF,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,sBACrB,CACJ4gB,SAAAA,CAAQ,CACRF,UAAW,CAAE0B,OAAAA,CAAM,CAAE,CACtB,CAAGtB,CAAAA,EAAAA,GAAAA,EAAAA,IAEE6E,EAAoChC,CAAAA,EAAAA,GAAAA,EAAAA,EAAIvB,EAAQ,CAAC,EAAEtX,EAAK,YAAY,CAAC,EACrE8a,EAAqCjC,CAAAA,EAAAA,GAAAA,EAAAA,EAAIvB,EAAQ,CAAC,EAAEtX,EAAK,aAAa,CAAC,EACvE+Y,EAAW,CAAC,CAAC8B,GAAyB,CAAC,CAACC,EAExCC,EAAatY,CAAAA,EAAAA,EAAAA,OAAAA,EACjB,IACEtD,GAAStH,IAAI,CAAC,CAAEmI,KAAAA,CAAI,CAAEzE,KAAAA,CAAI,CAAEyf,YAAAA,CAAW,CAAE,GACvC,EAAAtnB,GAAA,CAAC0kB,SAAAA,CAECpkB,MAAO,CAAC,EAAEgnB,EAAY,EAAEzf,EAAK,CAAC,CAC7B,GAAI,CAAC,EAAEyf,EAAY,EAAEzf,EAAK,CAAC,GAAK+e,EAAe,CAAEW,SAAU,EAAK,EAAI,CAAC,CAAC,UACvE,CAAC,CAAC,EAAED,EAAY,CAAC,EAAEhb,EAAK,CAAC,EAHpB,CAAC,OAAO,EAAEzE,EAAK,CAAC,GAK3B,CAAC+e,EAAcnb,EAAQ,EAGzB,MACE,GAAAvI,EAAAK,IAAA,EAACC,MAAAA,CACCJ,UAAWC,IAAG,CACZ,CAACyhB,EAA6B,CAAE,CAAC,CAACA,CACpC,aAEA,GAAA5hB,EAAAK,IAAA,EAACC,MAAAA,CACCJ,UAAWC,IAAG,wBAAyB,CACrC,YAAawjB,EACbvT,OAAQ,CAACuT,CACX,aAEA,GAAA3jB,EAAAlD,GAAA,EAACulB,GAAAA,EAASA,CAAAA,CACRxhB,MAAOxC,EAAE,2BACT4iB,SAAUA,EACVkB,SAAU,CAAC,CAAC+B,EACZhkB,UAAWC,IAAG,CACZ,CAACghB,EAAyB,CAAE,CAAC,CAACA,CAChC,YAEA,GAAAnhB,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAWC,IAAG,kCAClB,GAAAH,EAAAK,IAAA,EAACikB,SAAAA,CACCZ,aAAcA,EACdtC,aAAc5D,GAAaI,OAAO,CAClC1d,UAAWC,IAAG,6DAA8D,CAC1E,QAAS,CAACwjB,EACV,kBAAmBA,EACnB,aAAc,CAAC,CAACO,EAChBhU,SAAUjI,EACV,CAACwb,EAAoB,CAAE,CAAC,CAACA,CAC3B,GACAvT,SAAUjI,EACV7H,cAAY,qBACZkiB,eAAc,CAAC,CAAC4B,EAChB3B,mBAAkBR,EACjB,GAAG7C,EAAS,CAAC,EAAE9V,EAAK,aAAa,CAAC,CAAE,CACnC6X,SAAU,CAAE7jB,MAAO,GAAMqjB,QAASpiB,EAAE,0BAA2B,CACjE,EAAE,WAEDulB,EACC,GAAA5jB,EAAAlD,GAAA,EAAC0kB,SAAAA,CAA2BpkB,MAAM,GAAG8S,SAAQ,YAC1C7R,EAAE,mCADO,iBAGV,KAEHkK,GAAStH,IAAI,CAAC,CAAEmI,KAAAA,CAAI,CAAEzE,KAAAA,CAAI,CAAEyf,YAAAA,CAAW,CAAE,GACxC,EAAAtnB,GAAA,CAAC0kB,SAAAA,CAECpkB,MAAO,CAAC,EAAEgnB,EAAY,EAAEzf,EAAK,CAAC,UAC9B,CAAC,CAAC,EAAEyf,EAAY,CAAC,EAAEhb,EAAK,CAAC,EAFpB,CAAC,OAAO,EAAEzE,EAAK,CAAC,UAO9Buf,GAA0B,GAAAlkB,EAAAlD,GAAA,EAACynB,GAAAA,EAASA,CAAAA,CAAChmB,GAAIylB,EAASnR,MAAOqR,IAE1D,GAAAlkB,EAAAlD,GAAA,EAACulB,GAAAA,EAASA,CAAAA,CACRxhB,MAAOA,GAASxC,EAAE,eAClB4iB,SAAUA,EACVkB,SAAU,CAAC,CAAC8B,EACZ/jB,UAAWC,IAAG,CACZ,CAACghB,EAAyB,CAAE,CAAC,CAACA,CAChC,YAEA,GAAAnhB,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAWC,IAAG,8CAClB,GAAAH,EAAAlD,GAAA,EAACmd,QAAAA,CACCmH,aAAc5D,GAAaW,GAAG,CAC9B1e,KAAK,MACLS,UAAWC,IAAG,mEAAoE,CAChF,aAAc,CAAC,CAAC8jB,EAChB,CAACR,EAAoB,CAAE,CAAC,CAACA,CAC3B,GACAnB,eAAc,CAAC,CAAC2B,EAChB1B,mBAAkB,CAAC,EAAEyB,EAAQ,CAAC,EAAEjC,EAAS,CAAC,CAC1C3hB,cAAY,oBACZshB,UAAW,GACV,GAAGxC,EAAS,CAAC,EAAE9V,EAAK,YAAY,CAAC,CAAE,CAClC6X,SAAU,CAAE7jB,MAAO,GAAMqjB,QAASpiB,EAAE,yBAA0B,EAC9DmmB,QAAS,CAAEpnB,MAAOmmB,GAAO9C,QAASpiB,EAAE,yBAA0B,CAChE,EAAE,OAIP4lB,GAAyB,GAAAjkB,EAAAlD,GAAA,EAACynB,GAAAA,EAASA,CAAAA,CAAChmB,GAAIylB,EAASnR,MAAOoR,IACzD,GAAAjkB,EAAAlD,GAAA,EAAC2nB,GAAAA,EAAeA,CAAAA,CAAClmB,GAAIwjB,EAAU9Z,QAASA,OAE1C,GAAAjI,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAWC,IAAG,CAAE,kBAAmBwjB,CAAwB,aAC9D,GAAA3jB,EAAAlD,GAAA,EAACulB,GAAAA,EAASA,CAAAA,CACRxhB,MAAOA,GAASxC,EAAE,eAClB4iB,SAAUA,EACVkB,SAAUA,EACVjiB,UAAWC,IAAG,CACZ,CAACghB,EAAyB,CAAE,CAAC,CAACA,CAChC,YAEA,GAAAnhB,EAAAK,IAAA,EAACO,OAAAA,CACCV,UAAWC,IAAG,OAAQ,CACpB,WAAY,CAACwjB,EACb,+BAAgCA,CAClC,aAEA,GAAA3jB,EAAAK,IAAA,EAACikB,SAAAA,CACCZ,aAAcA,EACdtC,aAAc5D,GAAaI,OAAO,CAClC1d,UAAWC,IAAG,6DAA8D,CAC1E,QAAS,CAACwjB,EACV,kBAAmBA,EACnB,aAAc,CAAC,CAACO,EAChBhU,SAAUjI,GAAW4b,EACrB,CAACJ,EAAoB,CAAE,CAAC,CAACA,CAC3B,GACAvT,SAAUjI,GAAW4b,EACrBzjB,cAAY,qBACZkiB,eAAc,CAAC,CAAC4B,EAChB3B,mBAAkBR,EACjB,GAAG7C,EAAS,CAAC,EAAE9V,EAAK,aAAa,CAAC,CAAE,CACnC6X,SAAU,CACR7jB,MAAO,GACPqjB,QAASqD,GAAwCzlB,EAAE,0BACrD,CACF,EAAE,WAEDulB,EACC,GAAA5jB,EAAAlD,GAAA,EAAC0kB,SAAAA,CAA2BpkB,MAAM,GAAG8S,SAAQ,YAC1C7R,EAAE,mCADO,iBAGV,KACH8lB,KAGH,GAAAnkB,EAAAlD,GAAA,EAACmd,QAAAA,CACCmH,aAAc5D,GAAaW,GAAG,CAC9B1e,KAAK,MACLS,UAAWC,IAAG,qDAAsD,CAClE,gBAAiBwjB,EACjB,aAAc,CAAC,CAACM,EAChB,CAACR,EAAoB,CAAE,CAAC,CAACA,CAC3B,GACAnB,eAAc,CAAC,CAAC2B,EAChB1B,mBAAkB,CAAC,EAAEyB,EAAQ,CAAC,EAAED,EAAc,CAAC,CAC/C3jB,cAAY,oBACZshB,UAAW,GACV,GAAGxC,EAAS,CAAC,EAAE9V,EAAK,YAAY,CAAC,CAAE,CAClC6X,SAAU,CAAE7jB,MAAO,GAAMqjB,QAASpiB,EAAE,yBAA0B,EAC9DmmB,QAAS,CAAEpnB,MAAOmmB,GAAO9C,QAASpiB,EAAE,yBAA0B,CAChE,EAAE,CACF6R,SAAU2T,SAIfK,GAA0B,GAAAlkB,EAAAlD,GAAA,EAACynB,GAAAA,EAASA,CAAAA,CAAChmB,GAAIylB,EAASnR,MAAOqR,IACzDD,GAAyB,GAAAjkB,EAAAlD,GAAA,EAACynB,GAAAA,EAASA,CAAAA,CAAChmB,GAAIylB,EAASnR,MAAOoR,IACzD,GAAAjkB,EAAAlD,GAAA,EAAC2nB,GAAAA,EAAeA,CAAAA,CAAClmB,GAAIwjB,EAAU9Z,QAASA,IACxC,GAAAjI,EAAAlD,GAAA,EAAC2nB,GAAAA,EAAeA,CAAAA,CACdlmB,GAAIwlB,EACJ9b,QAASA,EACTwY,QAAS5f,GAASxC,EAAE,eACpB6B,UAAU,iBAKpB,4DC1MA,IAAMwkB,GAAgE,CAAC,CACrEzW,SAAAA,CAAQ,CACR0W,KAAAA,CAAI,CACJ1pB,SAAAA,CAAQ,CACR2pB,OAAAA,CAAM,CACNxoB,KAAAA,CAAI,CACJ,GAAGwF,EACJ,IACC,GAAM,CAAEijB,OAAAA,CAAM,CAAEC,OAAAA,CAAM,CAAEC,UAAAA,CAAS,CAAEC,WAAAA,CAAU,CAAEC,UAAAA,CAAS,CAAE,CAAGC,CAAAA,EAAAA,GAAAA,EAAAA,EAAajqB,GAC1E,GAAI,CAACmB,EACH,OAAO,KAET,IAAM0R,EAAkB,CAAEtP,IAAKpC,CAAK,EACpC,GAAIuoB,EAAM,CACR,IAAMza,EAAa,IAAIC,GAAAA,CAAUA,CAACwa,GAC5BpiB,EAAO4iB,CAAAA,EAAAA,GAAAA,CAAAA,EAAajb,EAAY9N,EAAMwoB,EAAQ3pB,EACpD6S,CAAAA,EAAUtP,GAAG,CAAG+D,EAAK/D,GAAG,CACpB+D,EAAK6iB,SAAS,EAChBtX,CAAAA,EAAUb,OAAO,CAAG4X,CAAAA,CAExB,CACA,MACE,GAAA7kB,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CAAE,GAAGoN,CAAS,CAAG,GAAGlM,CAAK,UAC3BqM,IAEFgX,GAAa,GAAAjlB,EAAAlD,GAAA,EAACuoB,GAAAA,EAASA,CAAAA,CAACC,UAAWP,EAAWC,WAAYA,EAAY1R,QAASwR,MAGtF,EAQaS,GAA+B,CAAC,CAC3CtX,SAAAA,CAAQ,CACR1F,QAAAA,CAAO,CACPtN,SAAAA,CAAQ,CACR2pB,OAAAA,CAAM,CACND,KAAAA,CAAI,CACJ,GAAG/iB,EACJ,IAcC,IAAM4jB,EAAgBC,KAbC,CACrBC,UAAW,CACTtkB,EAAG,CACDukB,UAAWjB,GACX9iB,MAAO,CACL+iB,KAAAA,EACA1pB,SAAAA,EACA2pB,OAAAA,EACA1kB,UAAW,YACb,CACF,CACF,CACF,EAC4CqI,GAC5C,MACE,GAAAvI,EAAAlD,GAAA,EAAC8oB,GAAAA,CAAaA,CAAAA,CAACrd,QAASid,EAAgB,GAAG5jB,CAAK,UAC7CqM,GAGP,EExFM4X,GAAY,CAAC,CAAE5X,SAAAA,CAAQ,CAA2B,GAAK,GAAAjO,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,gBAAQ+N,IAC5E6X,GAAc,CAAC,CAAE1pB,KAAAA,CAAI,CAAE,GAAG4B,EAAwB,GAAK,GAAAgC,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CAAClC,IAAKpC,EAAO,GAAG4B,CAAI,GAChF+nB,GAA4B,CAAC,CAAE9X,SAAAA,CAAQ,CAA2B,GACtE,GAAAjO,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,8BAAsB+N,IAGxB+X,GAAmB,CAAC,CAC/BC,gBAAAA,CAAe,CACfC,2BAAAA,CAA0B,CAC1BjrB,SAAAA,CAAQ,CACR2pB,OAAAA,CAAM,CAMP,IACC,IAAMuB,EAAiBF,GAAiBE,eAClCC,EAAQD,GAAgBE,mBAAmB,CAAC,EAAE,CAC9CC,EAASza,CAAAA,EAAAA,EAAAA,OAAAA,EACb,IAAMua,GAAOE,OAAO5nB,OAAO,GAAW,CAAC6nB,GAAOC,YAAc,EAAE,CAC9D,CAACJ,GAAOE,OAAO,EAEXG,EAAqB5a,CAAAA,EAAAA,EAAAA,OAAAA,EACzB,IACEua,GAAOE,OAAOpd,KAAK,GAAWqd,GAAOG,yBAAyBA,wBAA0B,GAC1F,CAACN,GAAOE,OAAO,EAGXK,EAA6B,CACjCnrB,EACA2c,KAEA+N,EAA2B,GAEzB,EADwB7kB,MAAM,EAAEulB,QAEvB,IAAIC,EAAc1O,EAAM,CAExB0O,EAAanoB,MAAM,CAAC,GAAOooB,IAAM3O,GAG9C,EAEA,MACE,GAAAnY,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACG0Z,GACCA,EAAOrlB,GAAG,CAAC,CAACslB,EAAOpO,KACjB,GAAM,CAAEqO,UAAAA,CAAS,CAAEO,qBAAAA,CAAoB,CAAE3d,KAAAA,CAAI,CAAE,CAAGmd,SAClD,EACS,KAGP,GAAAvmB,EAAAK,IAAA,EAACsR,UAAAA,WACC,GAAA3R,EAAAlD,GAAA,EAAC2kB,GAAAA,EAASA,CAAAA,CACRrY,KAAM,CAAC,UAAU,EAAE+O,EAAM,CAAC,CAC1BtX,MAAOuI,EACP3J,KAAK,WACL0hB,eAAe,SACfE,SAAU,GACVkB,mBAAkB,CAAC,UAAU,EAAEpK,EAAM,CAAC,CACtCmJ,gBAAiB,CACf0F,SAAU,GAAWL,EAA2BnrB,EAAO2c,EACzD,IAED4O,GACC,GAAA/mB,EAAAlD,GAAA,EAACyoB,GAAQA,CACPtqB,SAAUA,EACV2pB,OAAQA,EACRrc,QAAS,CACP0e,WAAY,GACZvB,UAAW,CACT3kB,EAAGglB,GACH3kB,EAAG,CACDukB,UAAWG,GACXlkB,MAAO,CACL1B,UAAW,0DACXY,YAAa,EACf,CACF,CACF,CACF,WAECimB,MA9BOR,EAAMW,GAAG,CAmC3B,GACF,GAAAlnB,EAAAlD,GAAA,EAACyoB,GAAQA,CACPX,OAAQA,EACR3pB,SAAUA,EACVsN,QAAS,CACP0e,WAAY,GACZvB,UAAW,CACT3kB,EAAG8kB,GACHzkB,EAAG,CACDukB,UAAWG,GACXlkB,MAAO,CACL1B,UAAW,0DACXY,YAAa,EACf,CACF,CACF,CACF,WAEC2lB,MAIT,ECjGaT,GAAmB,CAAC,CAC/BmB,MAAAA,CAAK,CACLC,QAAAA,CAAO,CACPnB,gBAAAA,CAAe,CACfoB,2BAAAA,CAA0B,CAC1BC,8BAAAA,CAA6B,CAC7BrsB,SAAAA,CAAQ,CACR2pB,OAAAA,CAAM,CACA,IACN,GAAM,CAACvmB,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,sBACrBipB,EAAOnI,CAAAA,EAAAA,GAAAA,EAAAA,WAEb,GACM6G,GAAiBuB,iBAAmB,sBAgGxC,GAAAxnB,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACGqZ,GAAiBwB,sBAChB,GAAAznB,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAAC2kB,GAAAA,EAASA,CAAAA,CACRrY,KAAK,0BACLvI,MAAOxC,EAAE,kCACToB,KAAK,WACL0hB,eAAe,SACfE,SAAU,GACVkB,mBAAiB,6BAEnB,GAAAviB,EAAAlD,GAAA,EAACiE,IAAAA,CAAExC,GAAG,2BAA2B2B,UAAU,8BACzC,GAAAF,EAAAlD,GAAA,EAAC4qB,EAAAA,EAAKA,CAAAA,CAACrpB,EAAGA,EAAGspB,QAAQ,8CACnB,GAAA3nB,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CAAClC,IAAI,8DAA8DsC,YAAW,SAGvF,GAAAd,EAAAlD,GAAA,EAACiE,IAAAA,UAAG1C,EAAE,gBAGV,GAAA2B,EAAAlD,GAAA,EAACiE,IAAAA,UACC,GAAAf,EAAAK,IAAA,EAACqnB,EAAAA,EAAKA,CAAAA,CAACrpB,EAAGA,EAAGspB,QAASR,EAAQ,eAAiB,sBAC7C,GAAAnnB,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACHlC,IAAK,CAAC,CAAC,EAAEvD,EAAS,qBAAqB,CAAC,CACxCiF,UAAU,gDACVY,YAAW,KAEb,GAAAd,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACHlC,IAAK,CAAC,EAAEomB,EAAO,CAAC,EAAE3pB,EAAS,4BAA4B,CAAC,CACxDiF,UAAU,gDACVY,YAAW,KAEb,GAAAd,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACHlC,IAAK,CAAC,EAAEomB,EAAO,CAAC,EAAE3pB,EAAS,6CAA6C,CAAC,CACzEiF,UAAU,gDACVY,YAAW,aAhIf,GAAAd,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAAC2kB,GAAAA,EAASA,CAAAA,CACRrY,KAAK,mBACLvI,MAAOxC,EAAE,mBACToB,KAAK,WACL0hB,eAAe,SACfE,SAAU,GACVkB,mBAAiB,cAEnB,GAAAviB,EAAAlD,GAAA,EAACiE,IAAAA,CAAExC,GAAG,YAAY2B,UAAU,8BAC1B,GAAAF,EAAAlD,GAAA,EAAC4qB,EAAAA,EAAKA,CAAAA,CAACrpB,EAAGA,EAAGspB,QAASP,EAAU,4BAA8B,+BAC5D,GAAApnB,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CAAClC,IAAK,CAAC,EAAEomB,EAAO,CAAC,EAAE3pB,EAAS,4BAA4B,CAAC,CAAE6F,YAAW,SAI9E,EAyDG,KAxDF,GAAAd,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAAC2kB,GAAAA,EAASA,CAAAA,CACRrY,KAAK,kBACLvI,MAAOxC,EAAE,0BACToB,KAAK,WACL0hB,eAAe,SACfE,SAAU,GACVkB,mBAAiB,qBAEnB,GAAAviB,EAAAlD,GAAA,EAACiE,IAAAA,CAAExC,GAAG,mBAAmB2B,UAAU,8BACjC,GAAAF,EAAAlD,GAAA,EAAC4qB,EAAAA,EAAKA,CAAAA,CAACrpB,EAAGA,EAAGspB,QAAQ,sCACnB,GAAA3nB,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CAAClC,IAAK,CAAC,EAAEomB,EAAO,CAAC,EAAE3pB,EAAS,4BAA4B,CAAC,CAAE6F,YAAW,SAG/E,GAAAd,EAAAlD,GAAA,EAAC2kB,GAAAA,EAASA,CAAAA,CACRrY,KAAK,0BACLvI,MAAOxC,EAAE,kCACToB,KAAK,WACL0hB,eAAe,SACfE,SAAU,GACVkB,mBAAiB,6BAEnB,GAAAviB,EAAAlD,GAAA,EAACiE,IAAAA,CAAExC,GAAG,2BAA2B2B,UAAU,8BACzC,GAAAF,EAAAlD,GAAA,EAAC4qB,EAAAA,EAAKA,CAAAA,CAACrpB,EAAGA,EAAGspB,QAAQ,8CACnB,GAAA3nB,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACHlC,IAAI,8DACJsC,YAAW,SAIjB,GAAAd,EAAAK,IAAA,EAACunB,EAAAA,EAAYA,CAAAA,CACXxgB,cAAe,CACbygB,OAAQ,CACNhnB,MAAOxC,EAAE,iBACX,EACAypB,QAAS,CACPjnB,MAAOxC,EAAE,eACX,CACF,EACA0pB,UAAW,IAAMT,EAA8B,IAC/CU,SAAU,KACRV,EAA8B,IAC9BC,EAAKzI,QAAQ,CAAC,kBAAmB,GACnC,EACAxM,MAAOjU,EAAE,gBACTsO,OAAQ0a,EACRnU,UAAW,KACToU,EAA8B,CAACD,GAC/BE,EAAKzI,QAAQ,CAAC,kBAAmB,GACnC,EACA3L,KAAK,eAEL,GAAAnT,EAAAlD,GAAA,EAACiE,IAAAA,UAAG1C,EAAE,iBACN,GAAA2B,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,wBAAgB7B,EAAE,6BAIrC,GAAA2B,EAAAlD,GAAA,EAACiE,IAAAA,UAAG1C,EAAE+oB,EAAU,gBAAkB,aAClC,GAAApnB,EAAAlD,GAAA,EAACiE,IAAAA,UACC,GAAAf,EAAAK,IAAA,EAACqnB,EAAAA,EAAKA,CAAAA,CAACrpB,EAAGA,EAAGspB,QAASP,EAAU,kBAAoB,sBAClD,GAAApnB,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACHlC,IAAK,CAAC,CAAC,EAAEvD,EAAS,qBAAqB,CAAC,CACxCiF,UAAU,gDACVY,YAAW,KAEb,GAAAd,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACHlC,IAAK,CAAC,EAAEomB,EAAO,CAAC,EAAE3pB,EAAS,4BAA4B,CAAC,CACxDiF,UAAU,gDACVY,YAAW,YAkD3B,gBC1IA,IAAMmnB,GAAe,CAMnBC,uBAAwB,IACxBC,6CAA8C,GAChD,EAEMC,GAAoB,CACxBC,oBAAqB,OACrBC,iBAAkB,QAClBC,gBAAiB,OACjBC,cAAe,MAEjB,EAEMC,GAAmB,CACvBC,qBAAsB,CACpBN,GAAkBI,aAAa,CAC/BJ,GAAkBE,gBAAgB,CAClCF,GAAkBC,mBAAmB,CACrCD,GAAkBG,eAAe,CAClC,CACDI,QAAS,CAAC,CACZ,EAEMC,GAAS,CACb,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACD,CA0CM,SAASC,GAAS,CACvBC,0BAAAA,EAA4B,EAAK,CACjC7tB,SAAAA,CAAQ,CACR8tB,MAAAA,CAAK,CACLC,UAAAA,CAAS,CACT/uB,QAAAA,CAAO,CACPgvB,SAAAA,CAAQ,CACRrE,OAAAA,CAAM,CACA,MV4ENtc,EAvEAA,EUJA,GAAM,CAACjK,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,sBACrB,CAAED,EAAG6qB,CAAK,CAAE,CAAG5qB,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,sBAC9B,CAAC6qB,EAAeC,EAAiB,CAAG9uB,CAAAA,EAAAA,EAAAA,QAAAA,EAAwB,MAC5D,CAAC+uB,EAAyBnD,EAA2B,CAAG5rB,CAAAA,EAAAA,EAAAA,QAAAA,EAAmB,EAAE,EAC7E,CAAC+sB,EAA4BC,EAA8B,CAAGhtB,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACvE,CAAEiI,KAAM+mB,CAAsB,CAAE,EVsEtChhB,EUtE8E,CAC5ErN,SAAAA,CACF,EV0EO0N,CAAAA,EAAAA,EAAAA,CAAAA,EAAiE,CACtEC,SAAU,CAAC2U,GAAsCjV,EAAU,IUzEvDihB,EAAiBtuB,OAAAA,EAEjBssB,EAAOiC,CAAAA,EAAAA,GAAAA,EAAAA,EAAmB,CAC9BC,KAAM,YACNC,aAAc,MACdC,cAAe,CACbnJ,QAAS,CAAC,EACVoJ,QAASN,GAAwB9jB,WAAW,CAAC,EAAE,EAAEqkB,oBAAsB,KACvEtG,MAAO,CACLuG,aAAc,KAChB,CACF,CACF,GAEM,CAAE/K,MAAAA,CAAK,CAAEC,UAAAA,CAAS,CAAEF,SAAAA,CAAQ,CAAEiL,aAAAA,CAAY,CAAE,CAAGxC,EAC/C,CAAE7G,OAAAA,CAAM,CAAEsJ,YAAAA,CAAW,CAAE,CAAGhL,EAE1BiL,EAAYtgB,OAAOC,IAAI,CAAC8W,GAAQ7hB,MAAM,CAAG,EAE/CjE,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACJ0uB,GAAwB9jB,WAAW,CAAC,EAAE,EAAEqkB,oBAC1C/K,EAAS,UAAWwK,GAAwB9jB,WAAW,CAAC,EAAE,EAAEqkB,oBAE1DN,GACFzK,EAAS,qBAAsB,OAEnC,EAAG,CAACwK,EAAwBC,EAAgBzK,EAAS,EAErDlkB,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR,GAAIqvB,EAAW,CACb,IAAMC,EAAavgB,OAAOC,IAAI,CAAC8W,GAAQyJ,OAAO,CAAC,GAAS9jB,GAClD+jB,EAAqBzgB,OAAQC,IAAI,CAAC8W,GAAoCyJ,OAAO,CACjF,GAASzJ,CAAM,CAACra,EAAI,EAAEoa,SAExBxmB,EAAQowB,WAAW,CAAC,eAAgBH,GACpCjwB,EAAQqwB,UAAU,CAAC,gBACnBrwB,EAAQswB,aAAa,CAAC,CAAC,CAAE7J,OAAQwJ,EAAWM,IAAI,CAAC,IAAK,EAAE,EACxDvwB,EAAQwwB,oBAAoB,CAACL,EAAmBI,IAAI,CAAC,MACrDvwB,EAAQywB,WAAW,CAAC,+BAAgC,aACpDzwB,EAAQqwB,UAAU,CAAC,iBACrB,CACF,EAAG,CAAC5J,EAAQzmB,EAASgwB,EAAU,EAE/B,IAAMU,EAAuB5L,EAAM,mBACnCnkB,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR,GAAI+vB,EACF,OAAOrD,EAA8B,GAEzC,EAAG,CAACqD,EAAqB,EAEzB,IAAMC,EAAoBhC,IAAQ/e,SAASkf,GAErC,CAAC8B,EAAgBlM,EAAkB,CAAGrkB,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IAE/C,CAAEiI,KAAAA,CAAI,CAAEkX,UAAWqR,CAAkB,CAAE,EV3D7CxiB,EU2DwE,CACtErN,SAAAA,EACA8vB,aAAc,GACdC,gBAAiBlC,EACjBmC,cAAe,CAAEC,WAAY,EAAM,CACrC,EV7DOviB,CAAAA,EAAAA,EAAAA,CAAAA,EAAoD,CACzDC,SAAU,CAACyU,GAAyB/U,EAAU,IU8D1C6iB,EAAcC,SVxBpB7iB,EAKI,CAAC,CAAC,EAEN,MAAO8iB,CAAAA,EAAAA,GAAAA,CAAAA,EAKL,CACA,GAAG9iB,CAAO,EAEd,IUWQ2X,EACJ,IAAK3d,GAAM2d,WAAa,EAAE,CAAE,CAACxU,IAAI,CAAC,CAACtK,EAAGuK,IAAM2f,KAAKC,QAAQ,CAACtwB,GAAUuwB,OAAO,CAACpqB,EAAEgI,IAAI,CAAEuC,EAAEvC,IAAI,IAC1F,EAAE,CAEE6c,EAAkB/F,EAAUhX,IAAI,CAAC,CAAC,CAAEvE,KAAAA,CAAI,CAAE,GAAKA,IAASoa,EAAM,YAC9D0M,EAAkBxF,GAAiBE,gBAAgBE,qBAAqB,CAAC,EAAE,EAAEC,OAE7Ec,EAAUnB,GAAiBthB,OAAS,KACpCwiB,EAAQlB,GAAiBthB,OAAS,KAqBlC+mB,EAA4B,CAAC,CACjClL,QAAAA,CAAO,CACP8C,MAAAA,CAAK,CACLla,KAAAA,CAAI,CACJuiB,SAAAA,CAAQ,CACRpI,MAAAA,CAAK,CACLqG,QAAAA,CAAO,CACPgC,wBAAAA,CAAuB,CACvBC,gBAAAA,CAAe,CACfC,iBAAAA,CAAgB,CACN,IACV,IAAIpD,EAAiC,EAAE,CACvC,GAAII,EAA2B,CAC7B,IAAMiD,EAA4BN,GAAiB/sB,OAAO,GAAWstB,GAAOxF,WACxEuF,GAA6BA,EAA0BltB,MAAM,EAC/D6pB,CAAAA,EAAuBqD,EAA0B5B,OAAO,CACtD,GAAW6B,EAAMC,iBAAiB,GAGlC5C,EAAwBxqB,MAAM,EAAI4sB,GAAmBA,EAAgB5sB,MAAM,EAC7EwqB,EAAwB3Z,OAAO,CAAC,IAC9B,IAAMwc,EAAQT,CAAe,CAAC3E,EAAE,EAAEmF,mBAAqB,EAAE,CAEzDvD,EAAuB,IADNA,KAAyBwD,EACV,EAGtC,MACgCjG,GAAiBuB,iBAAmB,uBAEhEkB,EAAuB,IAClBA,EACHN,GAAkBC,mBAAmB,CACrCD,GAAkBE,gBAAgB,CACnC,CACGrC,GAAiBwB,qBACnBmE,GAA2BlD,EAAqBhsB,IAAI,CAAC0rB,GAAkBG,eAAe,EAEtFG,EAAqBhsB,IAAI,CAAC0rB,GAAkBG,eAAe,IAG7DsD,GAAmBnD,EAAqBhsB,IAAI,CAAC0rB,GAAkBC,mBAAmB,EAClFyD,GAAoBpD,EAAqBhsB,IAAI,CAAC0rB,GAAkBE,gBAAgB,EAChFsD,GAA2BlD,EAAqBhsB,IAAI,CAAC0rB,GAAkBG,eAAe,GAExFG,EAAqBhsB,IAAI,CAAC0rB,GAAkBI,aAAa,CAE3DhI,CAAAA,EAAQoJ,OAAO,CAAGA,EAClB,IAAM3P,EAA+C,CACnDuG,QAAS,CACP,GAAGA,CAAO,CACV,GAAIA,YAAAA,EAAQT,KAAK,EAAkB,CAAEA,MAAOS,EAAQT,KAAK,CAAE,CAC3DoM,YAAa,MACf,EACA7I,MAAAA,EACA8I,iBAAkBrD,EAClB3f,KAAAA,EACAuiB,SAAAA,EACApI,MAAO,CACL8I,YAAa9I,GAAO8I,aAAe,GACnCvC,aAAcvG,GAAOuG,cAAc1kB,QAAQ,MAAO,IAClDknB,UAAW,MACb,EACAC,kBAAmBtxB,OAAAA,EAAoB,KAAOA,EAC9CuxB,iBAAkB,GAClBC,cACE,CAAC3D,GAA6B3B,EAC1BsB,GACA,CAAEC,qBAAAA,EAAsBC,QAAS,CAAC,CAAE,CAC5C,EAEA,OAAO,IAAI+D,QAAQ,IACjBvB,GAAawB,OAAO,CAACrP,GAAqB,CAAEriB,SAAAA,EAAUgf,MAAAA,CAAM,EAAE,CAAE,CAC9D+O,UAAW,IACT,IAAM4D,EAAYrqB,GAAM4oB,aAAatY,OAAOlO,KAC5C,GAAIioB,EACF,OAAQA,GACN,KAAK3E,GAAaE,4CAA4C,CAC9D,KAAKF,GAAaC,sBAAsB,CACtC,OAAOkB,EAAiB,CACtB3I,QAASpiB,EAAE,CAAC,cAAc,EAAEuuB,EAAU,CAAC,EACvCntB,KAAM,OACR,EACF,MAAK,IACH,GACE8pB,GACAhnB,GAAM4oB,aAAatY,OAAOga,eAAeC,KAAK,CAAC,CAAEnoB,KAAAA,CAAI,CAAE,GAAKA,MAAAA,GAE5D,OAAOykB,EAAiB,CACtB3I,QAASpiB,EAAE,qBACXoB,KAAM,OACR,GAEF,OAAO2pB,EAAiB,CACtB3I,QAASpiB,EAAE,qBACXoB,KAAM,OACR,EACF,SACE,OAAO2pB,EAAiB,CACtB3I,QAASpiB,EAAE,qBACXoB,KAAM,OACR,EACJ,CAGF,IAAMstB,EAAgBxqB,GAAM4oB,aAAa5oB,MAAMsS,cACzCmY,EAAczyB,OAAO0yB,IAAI,CAACC,mBAAmB9jB,EAAK+jB,SAAS,GAC3DC,EAAa7yB,OAAO0yB,IAAI,CAACF,GAAiB,IAC1CM,EAAe9yB,OAAO0yB,IAAI,CAACC,mBAAmB5J,EAAMgK,YAAY,GAChEC,EAAgBhzB,OAAO0yB,IAAI,CAAC,QAElCO,eAAeC,OAAO,CAAC,aAAcT,GACrCQ,eAAeC,OAAO,CAAC,UAAWL,GAClCI,eAAeC,OAAO,CAAC,QAASJ,GAChCG,eAAeC,OAAO,CAAC,cAAeF,GACtCvE,EAAUzmB,EACZ,EACAmrB,QAAS,KACPtE,EAAiB,CACf3I,QAASpiB,EAAE,qBACXoB,KAAM,OACR,EACF,CACF,EACF,EACF,EAEMkuB,EAAmB,MAAOC,IAC9B,MAAMlC,EAA0BkC,EAClC,EAEA,MACE,GAAA5tB,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,sBACZipB,EACC,GAAAnpB,EAAAlD,GAAA,EAACggB,GAAkBA,CAACC,OAAQoM,GAAe1pB,cACzC,GAAAO,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,gCAAwBipB,GAAe1I,YAEpD,KACJ,GAAAzgB,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,oCACZ+oB,EACAgB,GAAaD,GACZ,GAAAhqB,EAAAK,IAAA,EAACC,MAAAA,CACC0W,KAAK,QACL5W,cAAY,cACZF,UAAWC,IAAG,mCAAoC,CAChD,WAAY8pB,GAAaD,CAC3B,aAEA,GAAAhqB,EAAAK,IAAA,EAACG,KAAAA,CAAGN,UAAU,sFACZ,GAAAF,EAAAlD,GAAA,EAACgmB,GAAAA,EAAaA,CAAAA,CAAAA,GACd,GAAA9iB,EAAAlD,GAAA,EAAC8D,OAAAA,UAAMvC,EAAE,mBAEX,GAAA2B,EAAAlD,GAAA,EAACkE,KAAAA,CAAGd,UAAU,iDAAyC2tB,CA1K/C,KAChB,IAAM9nB,EAAwB,EAAE,CAehC,OAdA4D,OAAOG,OAAO,CAAC4W,GAAQhR,OAAO,CAAC,CAAC,CAACrJ,EAAKjJ,EAAM,IAC1C,GAAIA,EAAMqjB,OAAO,CAAE,CACjB,IAAMA,EAAUrjB,EAAMqjB,OAAO,CAC7B1a,EAASrJ,IAAI,CAAC,GAAAsD,EAAAlD,GAAA,EAACqE,KAAAA,UAAmCsf,GAA3B,CAAC,gBAAgB,EAAEpa,EAAI,CAAC,EACjD,CAGAsD,OAAOG,OAAO,CAAC1M,GAAOsS,OAAO,CAAC,CAAC,CAACoe,EAAUC,EAAW,IACnD,GAAIA,EAA2BtN,OAAO,CAAE,CACtC,IAAMA,EAAUsN,EAA2BtN,OAAO,CAClD1a,EAASrJ,IAAI,CAAC,GAAAsD,EAAAlD,GAAA,EAACqE,KAAAA,UAAwCsf,GAAhC,CAAC,gBAAgB,EAAEqN,EAAS,CAAC,EACtD,CACF,EACF,GACO/nB,CACT,UA4JM,GAAA/F,EAAAlD,GAAA,EAACkxB,GAAAA,EAAYA,CAAAA,CAAE,GAAGzG,CAAI,UACpB,GAAAvnB,EAAAK,IAAA,EAACknB,OAAAA,CACC0G,WAAU,GACVC,OAAO,OACPC,SAAUpE,EAAa4D,GACvBztB,UAAU,2CAEV,GAAAF,EAAAlD,GAAA,EAACiE,IAAAA,UAAGmoB,EAAM,oBACTK,EAAiB,GAAAvpB,EAAAlD,GAAA,EAACiE,IAAAA,UAAGmoB,EAAM,6BAAkC,KAC9D,GAAAlpB,EAAAlD,GAAA,EAAC2kB,GAAAA,EAASA,CAAAA,CACRrY,KAAK,iBACLgY,aAAc5D,GAAaO,SAAS,CACpCld,MAAOqoB,EAAM,mBACb/H,eAAe,SACfE,SAAU,GACVK,UAAW,GACXJ,gBAAiB,CACfL,SAAU,CAAE7jB,MAAO,GAAMqjB,QAASyI,EAAM,kBAAmB,EAC3DkF,UAAW,CAAEhxB,MAAO,EAAGqjB,QAASyI,EAAM,4BAA6B,EACnE1E,QAAS,CAAEpnB,MAAO,QAASqjB,QAASyI,EAAM,2BAA4B,CACxE,IAEF,GAAAlpB,EAAAlD,GAAA,EAAC2kB,GAAAA,EAASA,CAAAA,CACRrY,KAAK,gBACLgY,aAAc5D,GAAaM,UAAU,CACrCjd,MAAOqoB,EAAM,kBACb/H,eAAe,SACfE,SAAU,GACVK,UAAW,GACXJ,gBAAiB,CACfL,SAAU,CAAE7jB,MAAO,GAAMqjB,QAASyI,EAAM,iBAAkB,EAC1DkF,UAAW,CAAEhxB,MAAO,EAAGqjB,QAASyI,EAAM,2BAA4B,EAClE1E,QAAS,CAAEpnB,MAAO,QAASqjB,QAASyI,EAAM,0BAA2B,CACvE,IAGF,GAAAlpB,EAAAlD,GAAA,EAAC0mB,GAAcA,CACbjb,QAAS2X,EACTwD,aAAa,MACbzb,QAAS6iB,EACT3J,eAAe,WAGjB,GAAAnhB,EAAAlD,GAAA,EAAC2kB,GAAAA,EAASA,CAAAA,CACRrY,KAAK,qBACLgY,aAAc5D,GAAaK,KAAK,CAChChd,MAAOqoB,EAAM,eACbzpB,KAAK,QACL0hB,eAAe,SACfE,SAAU,GACVK,UAAW,GACXJ,gBAAiB,CACfL,SAAU,CAAE7jB,MAAO,GAAMqjB,QAASyI,EAAM,cAAe,EACvD1E,QAAS,CAAEpnB,MAAOkmB,GAAO7C,QAASyI,EAAM,cAAe,CACzD,IAGF,GAAAlpB,EAAAlD,GAAA,EAACokB,GAAAA,EAAUA,CAAAA,CACTE,aAAc5D,GAAaI,OAAO,CAClCuD,eAAe,SACftgB,MAAOqoB,EAAM,yBACb9f,KAAK,UACLnB,QAAS6iB,EACT5a,SAAU4a,WAET5K,EAAUjf,GAAG,CAAC,CAAC,CAAEmI,KAAAA,CAAI,CAAEzE,KAAAA,CAAI,CAAE,GAC5B,GAAA3E,EAAAlD,GAAA,EAAC0kB,SAAAA,CAECpkB,MAAOuH,EACN,GAAIA,IAASoa,EAAM,WAAa,CAAEsF,SAAU,EAAK,EAAI,CAAC,CAAC,UAEvDjb,GAJI,CAAC,OAAO,EAAEzE,EAAK,CAAC,KAS3B,GAAA3E,EAAAlD,GAAA,EAAC0hB,GAAaA,CACZ7Z,KAAMoa,EAAM,WACZN,UAAU,UACVE,kBAAmBA,IAGpBiM,GACC,GAAA5qB,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAAC6kB,GAAiBA,CAChBP,aAAc5D,GAAaQ,WAAW,CACtCve,KAAK,WACL2J,KAAK,WACLvI,MAAOqoB,EAAM,kBACb/H,eAAe,WAEjB,GAAAnhB,EAAAlD,GAAA,EAAC2kB,GAAAA,EAASA,CAAAA,CACRL,aAAc5D,GAAaQ,WAAW,CACtCve,KAAK,WACL2J,KAAK,kBACLvI,MAAOqoB,EAAM,yBACb/H,eAAe,SACfE,SAAU,GACVO,mBAAmB,SACnBN,gBAAiB,CACfC,SAAU,CACR8M,YAAa,GACX,CAAE,CAACjxB,GAASA,IAAU2hB,EAAM,aAAgBmK,EAAM,wBACtD,CACF,OAIN,GAAAlpB,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,uBACZ4oB,EACC,GAAA9oB,EAAAlD,GAAA,EAACwxB,GAAmBA,CAClBrI,gBAAiBA,EACjBC,2BAA4BA,EAC5BjrB,SAAUA,EACV2pB,OAAQA,IAGV,GAAA5kB,EAAAlD,GAAA,EAACkpB,GAAgBA,CACfmB,MAAOA,EACPC,QAASA,EACTnB,gBAAiBA,EACjBoB,2BAA4BA,EAC5BC,8BAA+BA,EAC/BrsB,SAAUA,EACV2pB,OAAQA,IAIZ,GAAA5kB,EAAAlD,GAAA,EAACkW,SAAAA,CACCvT,KAAK,SACLS,UAAU,iCACVgQ,SAAU2a,GAAkBM,EAAYoD,SAAS,UAEhDpD,EAAYoD,SAAS,CACpB,GAAAvuB,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACGsc,EAAM,cAAc,IAAC,GAAAlpB,EAAAlD,GAAA,EAAC0xB,GAAAA,CAAOA,CAAAA,CAACtuB,UAAU,cAAciT,KAAK,UAG9D9U,EAAE,SAAU,CAAEowB,QAAS,IAAK,KAIhC,GAAAzuB,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,mBACX,GAAAF,EAAAlD,GAAA,EAAC4qB,EAAAA,EAAKA,CAAAA,CAACrpB,EAAGA,EAAGspB,QAAQ,yCACnB,GAAA3nB,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACHlC,IAAK,CAAC,CAAC,EAAEvD,EAAS,qCAAqC,CAAC,CACxDiF,UAAU,8CACVY,YAAW,SAIjB,GAAAd,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,yBAAiB7B,EAAE,qBAC9B4nB,CAAAA,GAAiB6F,kBAAoB7F,GAAiBuB,cAAAA,GACtD,GAAAxnB,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,iCAAyB7B,EAAE,kBACxC,GAAA2B,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,uCAA+B7B,EAAE,mCAShE,gBGniBO,SAASqwB,GAAgB,CAC9BzgB,SAAAA,CAAQ,CACR/N,UAAAA,CAAS,CACTjF,SAAAA,CAAQ,CACR0zB,eAAAA,CAAc,CACd10B,QAAAA,CAAO,CACPgvB,SAAAA,CAAQ,CACRF,MAAAA,EAAQ,OAAO,CACf6F,kBAAAA,CAAiB,CACjBC,iBAAAA,CAAgB,CAChB5hB,QAAAA,CAAO,CAcR,EACC,GAAM,CAAC6hB,EAAaC,EAAe,CAAGz0B,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACzC,CAAC00B,EAAqBC,EAAuB,CAAG30B,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACzD,CAAC40B,EAAiBC,EAAmB,CAAG70B,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACjD,CAAC80B,EAAiBC,EAAmB,CAAG/0B,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACjD,CAAEg1B,MAAAA,CAAK,CAAE,CAAG9W,CAAAA,EAAAA,EAAAA,EAAAA,IACZ+W,EAAYp1B,CAAAA,EAAAA,EAAAA,MAAAA,EAA0B,MACtCq1B,EAAoBr1B,CAAAA,EAAAA,EAAAA,MAAAA,EAA6B,MACjD,CAAEkE,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,yBACvBsmB,EAAS6K,WA0Ff,GAAM,CAAC7K,EAAQ8K,EAAU,CAAGp1B,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,0BAQrC,MAPAM,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR,GAAIuK,EAAAA,CAASA,EAAI5K,OAAO4B,QAAQ,CAAE,CAChC,GAAM,CAAEwzB,SAAAA,CAAQ,CAAEC,SAAAA,CAAQ,CAAEC,KAAAA,CAAI,CAAE,CAAGt1B,OAAO4B,QAAQ,CAEpDuzB,EADe,CAAC,EAAEC,EAAS,EAAE,EAAEC,EAAS,EAAEC,EAAO,CAAC,CAAC,EAAEA,EAAK,CAAC,CAAG,GAAG,CAAC,CAEpE,CACF,EAAG,EAAE,EACEjL,CACT,IA3FQkL,EAAwB,KAC5BX,EAAmB,GACrB,EAEMY,EAAmB,KACvBhB,EAAe,IACfI,EAAmB,GACrB,EAEA,MACE,GAAAnvB,EAAAK,IAAA,EAAC4S,EAAAA,EAAMA,CAAAA,CACLC,UAAW6c,EACXpjB,OAAQmiB,EACR3b,KAAM+b,EAAkB,KAAO,MAC/B5c,KAAAA,CAAyBjU,EAAE,WAAc,eACzC2xB,cACE,GAAAhwB,EAAAlD,GAAA,EAACkW,SAAAA,CAAOvT,KAAK,SAASS,UAAWA,EAAW+M,QAtB1B,KACtB8hB,EAAe,IACfE,EAAuB,IACvBhiB,KACF,EAkB4ExO,IAAK8wB,WACxEthB,cAIJ+gB,EACC,GAAAhvB,EAAAlD,GAAA,EAAC+rB,GAAQA,CACP5tB,SAAUA,EACV8tB,MAAOA,EACPnE,OAAQA,EACRqE,SACEA,GACE,GAAAjpB,EAAAlD,GAAA,EAACmzB,KAAAA,CAAG/vB,UAAU,mDAA2C7B,EAAE,sBAG/D2qB,UAAW,IACT,IAAMkH,EAAe3tB,GAAM4oB,aAAa5oB,MAAMsS,cAC1Cqb,IACFrB,MACAQ,EAAmBa,GACnBjB,EAAuB,IACvBa,IAEJ,EACA71B,QAASA,IAET,KACHi1B,EACC,GAAAlvB,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAK,IAAA,EAACC,MAAAA,CAAI7B,IAAK+wB,EAAmBtvB,UAAU,sDACrC,GAAAF,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,eAAe0I,QAAQ,UAClC,GAAA9R,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,gBAAQ7B,EAAE,uBAExB+wB,EACC,GAAApvB,EAAAlD,GAAA,EAACuW,EAAAA,EAAWA,CAAAA,CACV2C,SAAU2Y,EACVrc,MAAOjU,EAAE,UACTkK,QAAS,CACPmM,SAAU0a,CACZ,EACA7c,eAAgB,IACV4d,EAAO5tB,IAAI,EACb+sB,EAAMa,GACHC,IAAI,CAAC,KACJL,IACAZ,EAAmB,IACnBP,KACF,GACCyB,KAAK,CAAC,IACLC,CAAAA,EAAAA,GAAAA,CAAAA,EACE,wBACAzd,EACA,yCAEJ,EAEN,IAEA,QAEJ,OAGV,CE3GA,IAAM0d,GAEF,IACF,GAAM,CAAClyB,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,cAC3B,MACE,GAAA0B,EAAAlD,GAAA,EAAC0zB,EAAAA,EAAiB,EAACC,QAAS,YAC1B,GAAAzwB,EAAAK,IAAA,EAACe,IAAAA,CACChF,KAAM0X,EAAKtV,GAAG,CACdyO,QAAS6G,EAAK7G,OAAO,CACrB/M,UAAWC,IACT,sEACA2T,EAAK5T,SAAS,EAEf,GAAI4T,EAAKpS,cAAc,EAAI,CAC1B,aAAc,CAAC,EAAEoS,EAAKpS,cAAc,CAAC,EAAEoS,EAAKhT,WAAW,CAAG,CAAC,EAAE,EAAEzC,EAAE,UAAU,CAAC,CAAG,GAAG,CAAC,CACpF,CACA,GAAIyV,EAAKhT,WAAW,EAAI,CAAEO,OAAQ,SAAUC,IAAK,qBAAsB,CAAC,CACzES,wBAAuB+R,EAAKnS,4BAA4B,EAAEK,KAC1DC,yBAAwB6R,EAAKnS,4BAA4B,EAAEvE,gBAE1D0W,EAAKjT,KAAK,CACViT,EAAKhT,WAAW,EAAI,CAACgT,EAAKpS,cAAc,CACvC,GAAA1B,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAU,oBAAU,KACtB,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,UAAMvC,EAAE,eAEX,SAIZ,EAEMqyB,GAAgC,iBACtC,SAASC,KACFC,CAAAA,EAAAA,EAAAA,EAAAA,EAA0BF,GACjC,CAEO,IAAMG,GAAStzB,EAAAA,UAAgB,CACpC,CACE,CACEuzB,aAAAA,CAAY,CACZruB,MAAAA,CAAK,CACLhF,QAAAA,CAAO,CACPkZ,aAAAA,CAAY,CACZtC,UAAAA,CAAS,CACTqB,gBAAAA,CAAe,CACfqB,aAAAA,EAAe,EAAK,CACpB3C,iCAAAA,CAAgC,CAChCwB,uBAAAA,CAAsB,CACtBC,4BAAAA,CAA2B,CAC3B1B,kCAAAA,CAAiC,CACjCF,KAAAA,CAAI,CACJC,UAAAA,CAAS,CACTuB,aAAAA,CAAY,CACZxH,SAAAA,CAAQ,CACR0H,wBAAAA,CAAuB,CACvBob,cAAAA,CAAa,CACbhzB,MAAAA,CAAK,CACLkT,QAAAA,CAAO,CACPgK,UAAAA,EAAY,QAAQ,CACpB,GAAGjd,EACJ,CACDC,KAEA,GAAM,CAACI,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,cACrByX,EAAiB,CACrBC,SAAU9B,GAAW+B,YAAYzX,KAAO,GACxC8T,MAAOjU,EAAE,UACTkU,eAAgBmD,CAClB,EACMsb,EAAwB,CAC5BvuB,MAAAA,EACAhF,QAAAA,EACAkZ,aAAAA,EACAtC,UAAAA,EACAqB,gBAAAA,EACAqB,aAAAA,EACA9C,KAAAA,EACAC,UAAAA,EACAuB,aAAAA,EACAxH,SAAAA,EACAgD,QAAAA,CACF,EAGMggB,EAAgBC,WA6WxB,GAAM,CAAEC,UAAAA,CAAS,CAAEC,SAAAA,CAAQ,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAC9BX,GACAY,EAAAA,EAAMA,CAACC,OAAO,EAEhB,OAAOH,GAAYD,GAAWK,SAAW,GAC3C,WAhXQtd,GAAWoC,aACbpC,EAAUoC,UAAU,CAACmb,WAAW,CAAGd,GACnCzc,EAAUoC,UAAU,CAACvI,SAAS,CAAG,SAAmBvS,CAAK,EACnDA,CAAAA,UAAAA,EAAM6K,GAAG,EAAgB7K,MAAAA,EAAM6K,GAAG,GACpCsqB,IAEJ,GAqCA,GAAA3wB,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAACsE,IAAAA,CAAEhF,KAAK,WAAW8D,UAAU,6DAC1B7B,EAAE,mBAEL,GAAA2B,EAAAlD,GAAA,EAAC40B,SAAAA,CACCxxB,UAAWC,IAAG,sCAAuC,CACnD,aApDOpC,SAAAA,CAqDT,GACAqC,cAAY,gBACZ3B,IAAKR,EACJ,GAAGD,CAAI,UAEP8yB,GAAgBC,EACf,GAAA/wB,EAAAlD,GAAA,EAACke,GAAeA,CACd9D,UAAW4Z,EACXruB,MAAOA,EACPiT,gBAAiBA,EACjBrB,UAAWA,EACX4G,UAAWA,EACXhH,KAAMA,EACN6B,gBAAiBmb,EAtDH,CAAC,CACvBhjB,SAAAA,CAAQ,CACR/N,UAAAA,CAAS,CACTqW,kBAAAA,CAAiB,CAKlB,GAEG,GAAAvW,EAAAlD,GAAA,EAAC4xB,GAAeA,CACdzhB,QAAS0jB,GACTzwB,UAAWA,EACXjF,SAAU0a,GAAyBtO,QAAU,KAC7CsnB,eAAgBza,GAAW+B,YAAYzX,KAAO,GAC9CqwB,iBAAkB,IAAM3hB,CAAAA,EAAAA,EAAAA,EAAAA,EAAW,gBACnC0hB,kBAAmB,KACjB1hB,CAAAA,EAAAA,EAAAA,EAAAA,EAAW,gBACX8K,WAAW,IAAMzB,GAAmB1b,SAASiM,QAAS,IACxD,EACA7M,QAAS,CACPowB,YAAa,KAAO,EACpBC,WAAY,KAAO,EACnBC,cAAe,KAAO,EACtBG,YAAa,KAAO,EACpBD,qBAAsB,KAAO,CAC/B,WAECxc,IA0BsDkD,KAAAA,EACnDsE,aAAcA,EACdE,wBAAyBA,EACzBlY,QAASA,EACTsZ,aAAcA,EACd3C,iCAAkCA,EAClCwB,uBAAwBA,EACxBC,4BAA6BA,EAC7B1B,kCAAmCA,EACnClD,QAASA,EACTlT,MAAOA,IAEP4X,EACF,GAAA3V,EAAAlD,GAAA,EAAC60B,GAAAA,CACE,GAAGX,CAAqB,CACzBjb,eAAgBA,EAChBJ,wBAAyBA,IAG3B,GAAA3V,EAAAlD,GAAA,EAAC80B,GAAAA,CAAe,GAAGZ,CAAqB,CAAEjb,eAAgBA,MAG7D9H,EACD,GAAAjO,EAAAlD,GAAA,EAACwD,MAAAA,CAAI/B,GAAG,UAAUszB,SAAU,OAGlC,GAsBF,SAASD,GAAc,CACrBnvB,MAAAA,CAAK,CACLhF,QAAAA,CAAO,CACPkZ,aAAAA,CAAY,CACZtC,UAAAA,CAAS,CACT0C,aAAAA,CAAY,CACZ9C,KAAAA,CAAI,CACJC,UAAAA,CAAS,CACTuB,aAAAA,CAAY,CACZM,eAAAA,CAAc,CACd9E,QAAAA,CAAO,CACG,EACV,MACE,GAAAjR,EAAAK,IAAA,EAACC,MAAAA,CACCJ,UAAWC,IAAG,2CAA4C,CACxD,kBAAmB1C,EACnB8C,UAAW,CAAC9C,CACd,aAECsZ,EAAe,KAAO,GAAA/W,EAAAlD,GAAA,EAACkU,EAAcA,CAACvO,MAAOA,EAAOwO,QAASA,IAC7D0F,GAAc9X,OAAS,GAAAmB,EAAAlD,GAAA,EAAC4Z,GAAOA,CAAC/Y,MAAOgZ,EAAcI,aAAcA,IAAmB,KACvF,GAAA/W,EAAAlD,GAAA,EAAC0Y,GAAOA,CACNvB,KAAMA,EACNC,UAAWA,EACXG,UAAWA,EACXoB,aAAcA,EACdM,eAAgBA,MAIxB,CAEA,SAAS4b,GAAc,CACrBlvB,MAAAA,CAAK,CACLhF,QAAAA,CAAO,CACPkZ,aAAAA,CAAY,CACZtC,UAAAA,CAAS,CACT0C,aAAAA,CAAY,CACZ9C,KAAAA,CAAI,CACJC,UAAAA,CAAS,CACTuB,aAAAA,CAAY,CACZM,eAAAA,CAAc,CACdJ,wBAAAA,CAAuB,CACvB1E,QAAAA,CAAO,CAGR,EACC,MACE,GAAAjR,EAAAK,IAAA,EAACC,MAAAA,CACCJ,UAAWC,IAAG,wBAAyB,CACrC,kBAAmB1C,EACnB8C,UAAW,CAAC9C,CACd,aAEA,GAAAuC,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,uHACb,GAAAF,EAAAlD,GAAA,EAACoK,EAAgBA,CAAE,GAAGyO,CAAuB,GAC7C,GAAA3V,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,kFACb,GAAAF,EAAAlD,GAAA,EAAC0Y,GAAOA,CACNvB,KAAMA,EACNC,UAAWA,EACXG,UAAWA,EACXoB,aAAcA,EACdM,eAAgBA,SAItB,GAAA/V,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,gDACZ6W,EAAe,KAAO,GAAA/W,EAAAlD,GAAA,EAACkU,EAAcA,CAACvO,MAAOA,EAAOwO,QAASA,IAC7D0F,GAAc9X,OAAS,GAAAmB,EAAAlD,GAAA,EAAC4Z,GAAOA,CAAC/Y,MAAOgZ,EAAcI,aAAcA,IAAmB,UAI/F,CAEA,SAASvB,GAAQ,CACfvB,KAAAA,CAAI,CACJC,UAAAA,CAAS,CACTG,UAAAA,CAAS,CACToB,aAAAA,CAAY,CACZM,eAAAA,CAAc,CAC0E,EACxF,GAAM,CAAE+b,KAAAA,CAAI,CAAEzzB,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,cAC7B,CAAE+I,OAAAA,EAAS,IAAI,CAAE,CAAGiN,CAAAA,EAAAA,EAAAA,SAAAA,IACpBC,EAA6BC,CAAAA,EAAAA,EAAAA,EAAAA,EAAyBP,GAAMQ,aAAc,CAAEpN,OAAAA,CAAO,GACzF,MACE,GAAArH,EAAAlD,GAAA,EAACqZ,MAAAA,CAAI5U,aAAW,gBAAgBrB,UAAU,4BACvC+T,EACC,GAAAjU,EAAAK,IAAA,EAACmwB,EAAAA,EAAiB,EAACuB,IAAKD,EAAKC,GAAG,GAAIC,MAAO,aACzC,GAAAhyB,EAAAlD,GAAA,EAAC0zB,EAAAA,EAAoB,EAACC,QAAO,YAC3B,GAAAzwB,EAAAK,IAAA,EAAC2S,SAAAA,CACC/F,QAAS,KACPsD,IACArD,CAAAA,EAAAA,EAAAA,EAAAA,EAAW,qBACb,EACAhN,UAAU,yCACVT,KAAK,mBAEL,GAAAO,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,gCACb7B,EAAE,YAAa,CAAEqW,SAAUT,EAAK7K,IAAI,KAEvC,GAAApJ,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,cAAc+J,KAAK,KAAKrB,QAAQ,QAAQ5R,UAAU,cAGjE,GAAAF,EAAAlD,GAAA,EAAC0zB,EAAAA,EAAmB,WAClB,GAAAxwB,EAAAK,IAAA,EAACmwB,EAAAA,EAAoB,EACnByB,MAAM,MACN/xB,UAAU,uIAEV,GAAAF,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,mCACb,GAAAF,EAAAK,IAAA,EAACU,IAAAA,CAAEb,UAAU,0BACX,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,2BAAmB+T,EAAKU,UAAU,GAClD,GAAA3U,EAAAlD,GAAA,EAAC8D,OAAAA,UACEvC,EAAE,SAAU,CACX6zB,MAAOje,EAAKQ,YAAY,CACxB5F,OAAQ0F,CACV,UAILL,GAAWY,aAAatW,IACvB,GAAAwB,EAAAlD,GAAA,EAACyzB,GAAAA,CACCtjB,QAAS,IACPiH,EAAUY,WAAW,EAAE7H,UAAU7G,GACjCmK,GACF,EACC,GAAG2D,EAAUY,WAAW,CACzBjU,MAAOxC,EAAE,aAET,KAEH6V,GAAWie,iBAAiBtzB,OACzBqV,EAAUie,eAAe,CAAClxB,GAAG,CAAC,GAC5B,GAAAjB,EAAAlD,GAAA,EAACyzB,GAAAA,CACCtjB,QAAS,IACP6G,EAAK7G,OAAO,GAAG7G,GACfmK,GACF,EAEC,GAAGuD,CAAI,EADHA,EAAKjT,KAAK,GAInB,KACJ,GAAAb,EAAAlD,GAAA,EAACkW,SAAAA,CACC9S,UAAWC,IACT,mFAEF8M,QAASoH,EACT9V,GAAG,WACHkB,KAAK,kBAEJpB,EAAE,qBAKT6V,GAAW+B,YAAc/B,GAAWoC,WACtC,GAAAtW,EAAAK,IAAA,EAACW,KAAAA,CAAGd,UAAU,4EACXgU,EAAUoC,UAAU,CACnB,GAAAtW,EAAAlD,GAAA,EAACqE,KAAAA,CAAGjB,UAAU,6CACZ,GAAAF,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACF,GAAGwT,EAAUoC,UAAU,CACxBD,kBAAmB,GACnB5V,mBAAiB,qBACjBE,UAAW,GACXT,UAAU,qFACV+M,QAAS,IACPiH,EAAUoC,UAAU,EAAErJ,UAAU7G,GAChC8G,CAAAA,EAAAA,EAAAA,EAAAA,EAAW,kBACXqD,GACF,WAEClS,EAAE,cAGL,KACH6V,EAAU+B,UAAU,CACnB,GAAAjW,EAAAlD,GAAA,EAACqE,KAAAA,CAAGjB,UAAU,6CACZ,GAAAF,EAAAlD,GAAA,EAACkf,EAAAA,EAAKA,CAAAA,CAACE,OAAQ3L,EAA6B,GAAGwF,CAAc,CAAE,GAAGN,CAAY,KAE9E,QAEJ,MAGV,CAEA,SAASiB,GAAQ,CACf/Y,MAAAA,CAAK,CACLoZ,aAAAA,CAAY,CAIb,EACC,IAAMqb,EAAS70B,EAAAA,MAAY,CAA0B,MAC/C,CAAC80B,EAAiBC,EAAiB,CAAG/0B,EAAAA,QAAc,CAAC,IACrD,CAACg1B,EAAgBC,EAAgB,CAAGj1B,EAAAA,QAAc,CAAC,IAEnDypB,EAAWzpB,EAAAA,WAAiB,CAAC,IACjC,IAAMk1B,EAAaL,EAAOv3B,OAAO,EAAE43B,YAAc,EAG3CC,EAAYC,CAFEP,EAAOv3B,OAAO,EAAE83B,aAAe,GAClCC,CAAAA,GAAM5P,OAAS,GAIhCsP,EAFkBG,EAAa,GAAKC,EAAY,GAGhDF,EAFiBE,EAAY,GAAKA,EAAYD,EAAa,EAG7D,EAAG,EAAE,EACCI,EAAUC,CAAAA,EAAAA,GAAAA,CAAAA,EAAQ,CAAEr0B,IAAK2zB,EAAQW,SAAU/L,CAAS,GACpDgM,EAAcz1B,EAAAA,WAAiB,CAAC,IAAMs1B,GAAW7L,EAAS6L,GAAU,CAAC7L,EAAU6L,EAAQ,EAC7F,MACE,GAAA7yB,EAAAlD,GAAA,EAACqZ,MAAAA,CACCjW,UAAWC,IACT,gOACA,CACE,UAAW4W,EACX,oBAAqBsb,EACrB,mBAAoBE,CACtB,YAGF,GAAAvyB,EAAAlD,GAAA,EAACwD,MAAAA,CACC7B,IAAK2zB,EACLa,SAAUD,EACV9yB,UAAU,uEAEV,GAAAF,EAAAlD,GAAA,EAACkE,KAAAA,CAAGd,UAAU,uEACXvC,EAAMsD,GAAG,CAAC,CAAC,CAAEJ,MAAAA,CAAK,CAAEc,6BAAAA,CAA4B,CAAE,GAAGmM,EAAW,GAC/D,GAAA9N,EAAAlD,GAAA,EAACqE,KAAAA,CAECjB,UAAU,oEAEV,GAAAF,EAAAlD,GAAA,EAAC4D,EAAAA,EAAIA,CAAAA,CACF,GAAGoN,CAAS,CACbnN,UAAW,GACXT,UAAU,6DACV+M,QAAS,IACPa,EAAUb,OAAO,GAAG7G,GACpBmK,GACF,EACAxO,wBAAuBJ,GAA8BK,KACrDC,yBAAwBN,GAA8BvE,eAErDyD,KAdE,CAAC,cAAc,EAAEA,EAAM,CAAC,QAsB3C,CASAgwB,GAAOxuB,WAAW,CAAG,mCExdrB,IAAM6wB,GAAoB,CAAC,CAAEp4B,UAAAA,CAAS,CAAEG,SAAAA,CAAQ,CAA4C,IAC1F,GAAM,CAAEsH,KAAAA,CAAI,CAAE,CAAGC,CAAAA,EAAAA,GAAAA,EAAAA,EAAmB,CAAE1H,UAAAA,EAAWG,SAAUA,GAAY,IAAK,UAC5E,GAAUwH,OAAOivB,QAAQhvB,SAAS7D,SAAW,EACpC0D,GAAME,OAAOivB,QAAQhvB,UAAU,CAAC,EAAE,EAAE/E,MAAMsD,IAAI,GAC5C,EACLJ,MAAOiT,EAAKjT,KAAK,CACjBiT,KAAM,CAAE,GAAGA,CAAI,EACfH,QAASG,EAAKqf,cAAc,CAAClyB,GAAG,CAAC,GACxB,EAAEJ,MAAOuyB,EAAcvyB,KAAK,CAAEiT,KAAM,CAAE,GAAGsf,CAAa,CAAG,GAEpE,IAEO7wB,GAAME,OAAOivB,QAAQhvB,SAAS7D,QAAU0D,GAAME,OAAOivB,QAAQhvB,SAAS7D,OAAS,EACjF0D,GAAME,OAAOivB,QAAQhvB,UAAUynB,QAAQ,GACrCxY,EAAQhU,KAAK,CAACsD,GAAG,CAAC,GAChB,EACLJ,MAAOiT,EAAKjT,KAAK,CACjBiT,KAAM,CAAE,GAAGA,CAAI,EACfH,QAASG,EAAKqf,cAAc,CAAClyB,GAAG,CAAC,GACxB,EAAEJ,MAAOuyB,EAAcvyB,KAAK,CAAEiT,KAAM,CAAE,GAAGsf,CAAa,CAAG,GAEpE,WAIR,EAEO,SAASC,GAAa,CAC3Bv4B,UAAAA,EAAY,IAAI,CAChBC,UAAAA,EAAY,QAAQ,CACpBu4B,SAAAA,EAAW,EAAE,CACbr4B,SAAAA,EAAW,IAAI,CAChB,EACC,GAAM,CAAEq0B,MAAAA,CAAK,CAAEhX,UAAAA,CAAS,CAAEib,OAAAA,CAAM,CAAE,CAAG/a,CAAAA,EAAAA,EAAAA,EAAAA,IAC/B,CAAEna,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,UAEvBk1B,EAAWN,GAAkB,CAAEp4B,UAAAA,EAAWG,SAAAA,CAAS,GAEzD,MACE,GAAA+E,EAAAlD,GAAA,EAAC+zB,GAAMA,CACLC,aAAc0C,EACdvf,KACEqE,EACI,CACElP,KAAMkP,EAAUmb,YAAY,EAAErqB,MAAM+jB,UACpCxY,WAAY2D,GAAWoB,SAASga,SAASC,UAAY,GACrDlf,aAAc6D,GAAWoB,SAASga,SAASE,aAAe,EAC1DC,gBAAiBvb,GAAWoB,SAASga,SAASI,gBAAkB,EAClE,EACA3iB,KAAAA,EAENkD,UAAW,UACT,MAAMkf,GACR,EACA7d,gBAAiB,MAAO,CAAEnT,KAAAA,CAAI,CAAE,IAC1BA,GACF,MAAM+sB,EAAM,CAAE/sB,KAAAA,CAAK,EAEvB,EACAE,MAAO,CACLjE,IAAK80B,GAAY,yBACjB3uB,KAAM7J,EACNsO,KAAMtO,OAAAA,EAAqBuD,EAAE,cAAgBtD,CAC/C,EACAmZ,UAAW,CACT+B,WAAY,CACVzX,IAAKu1B,GAAAA,EAAUA,EAAE3uB,QAAQ,WAAYnK,EACvC,EACA6Z,YAAa,CACXtW,IAAK,CAAC,EAAEw1B,GAAAA,EAAoBA,CAAC,CAAC,EAAE/4B,EAAS,gCAAgC,CAAC,EAE5Eqb,WAAY,CACV9X,IAAK,CAAC,EAAEw1B,GAAAA,EAAoBA,CAAC,CAAC,EAAE/4B,EAAS,oBAAoB,CAAC,CAElE,GAGN,uECqDO,IAAMg5B,EAAqB,CAChCjxB,cAAe,QACfC,gBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BnB,CAAC,CACAC,eAAgB,YAClB,EACO,SAASV,EACd8F,CAAyC,CACzCC,CAAiF,EAEjF,MAAOI,CAAAA,EAAAA,EAAAA,CAAAA,EAA+C,CACpDC,SAAU,CAACqrB,EAAoB3rB,EAAU,CACzC,GAAGC,CAAO,EAEd,qOC/KO,SAAS2rB,EAAK,CAAEjmB,SAAAA,CAAQ,CAAE/N,UAAAA,CAAS,CAAE,GAAGlC,EAAoC,EACjF,MACE,GAAAgC,EAAAlD,GAAA,EAAC8D,OAAAA,CACCV,UAAWC,IACTD,EACA,wEAED,GAAGlC,CAAI,UAEPiQ,GAGP,iCC4BO,IAAMkmB,EAA4D,CAAC,CACxEC,SAAAA,CAAQ,CACRC,KAAAA,CAAI,CACJrN,SAAAA,CAAQ,CACRsN,gBAAAA,CAAe,CACfC,YAAAA,CAAW,CACXC,UAAAA,CAAS,CACT35B,QAAAA,EAAU,CAAC,CACX45B,MAAAA,EAAQ,CAAC,CACT5zB,MAAAA,CAAK,CACL6zB,QAAAA,CAAO,CACR,IACC,GAAM,CAAEr2B,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,kBAEvBq2B,EAAczoB,MAAM0oB,KAAK,CAAC,KAAM1oB,MAAMuoB,IACtCI,EAAeR,CAAAA,GAAex5B,IAAAA,EAC9Bi6B,EAAeT,CAAAA,GAAex5B,IAAY45B,EAAQ,EAElDM,EAAkBl0B,GAASxC,EAAE,gBAEnC,MACE,GAAA2B,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,2EACb,GAAAF,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,UAAU+c,YAAU,kBAAU,CAAC,EAAE8X,EAAgB,CAAC,EAAE12B,EAAE,QAAS,CAC5ExD,QAASA,EAAU,EACnB45B,MAAAA,CACF,GAAG,CAAC,GACJ,GAAAz0B,EAAAlD,GAAA,EAACk4B,EAAAA,EAAWA,CAAAA,CACVz2B,GAAIm2B,EAAU,CAAC,gBAAgB,EAAEA,EAAQ,CAAC,CAAG,kBAC7CvhB,KAAK,KACL8hB,gBAAeb,EACfnnB,QAASqnB,EACTpkB,SAAU2kB,EACVh0B,MAAO,CAAC,EAAExC,EAAE,gBAAiB,CAAEwC,MAAOk0B,CAAgB,GAAG,EAAE,EAAE12B,EAAE,QAAS,CACtExD,QAASA,EAAU,EAAI,EAAI45B,EAAQ55B,EACnC45B,MAAAA,CACF,GAAG,CAAC,GAEN,GAAAz0B,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,4CACZ8mB,EACC,GAAAhnB,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACG,CAAC4nB,GAAa,GAAAx0B,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,gBAAQ60B,IACvC,GAAA/0B,EAAAK,IAAA,EAACQ,QAAAA,WACC,GAAAb,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAW7B,EAAE,SAAU,CAAEwC,MAAOk0B,CAAgB,KAChE,GAAA/0B,EAAAlD,GAAA,EAACwnB,SAAAA,CACC2Q,gBAAeb,EACfl0B,UAAU,cACV9C,MAAOvC,EACPq6B,OAAQ,GAAOlO,EAASmO,SAAS/uB,EAAEgvB,aAAa,CAACh4B,KAAK,CAAE,KACxD4pB,SAAU,GAAOA,EAASmO,SAAS/uB,EAAEgvB,aAAa,CAACh4B,KAAK,CAAE,cAEzDu3B,EAAY1zB,GAAG,CAAC,CAACo0B,EAAGld,IAEnB,GAAAnY,EAAAlD,GAAA,EAAC0kB,SAAAA,CAAmBpkB,MAAO+a,WACxBA,EAAQ,GADEA,SAMnB,GAAAnY,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,gBAAQ7B,EAAE,QAAS,CAAExD,QAASsW,KAAAA,EAAWsjB,MAAAA,CAAM,QAGjE,GAAAz0B,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAU,wBACb,CAACs0B,GAAa,CAAC,EAAEO,EAAgB,CAAC,CAAC,CACpC,GAAA/0B,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,wBAAgB7B,EAAE,QAAS,CAAExD,QAASA,EAAU,EAAG45B,MAAAA,CAAM,UAI/E,GAAAz0B,EAAAlD,GAAA,EAACw4B,EAAAA,EAAWA,CAAAA,CACV/2B,GAAIm2B,EAAU,CAAC,iBAAiB,EAAEA,EAAQ,CAAC,CAAG,mBAC9CvhB,KAAK,KACL8hB,gBAAeb,EACfnnB,QAASsnB,EACTrkB,SAAU4kB,EACVj0B,MAAO,CAAC,EAAExC,EAAE,YAAa,CAAEwC,MAAOk0B,CAAgB,GAAG,EAAE,EAAE12B,EAAE,QAAS,CAClExD,QAASA,EAAU,GAAK45B,EAAQ,EAAI55B,EAAU,EAC9C45B,MAAAA,CACF,GAAG,CAAC,KAIZ,gBE5HO,SAASc,EAAax6B,CAAkB,SAC7C,EAGOA,EACJ+J,WAAW,GACXM,OAAO,CAAC,kBAAmB,KAC3BA,OAAO,CAAC,iBAAkB,IALpB,EAMX,CCCO,IAAMowB,EAA0B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuCpC,CAAC,CACQC,EAAyB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgFnC,CAAC,CACQC,EAA4B,CACvC1yB,cAAe,gCACfC,gBAAiB,CAAC;;;;;;;;;;;;;;;;;;;MAmBd,EAAEuyB,EAAwB,CAAC,CAC/BtyB,eAAgB,mBAClB,EAqBayyB,EAA4B,CACvC3yB,cAAe,sCACfC,gBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;MAyBd,EAAEuyB,EAAwB,CAAC,CAC/BtyB,eAAgB,mBAClB,EAqBa0yB,EAAsB,CACjC5yB,cAAe,0BACfC,gBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;MAoBd,EAAEwyB,EAAuB,CAAC,CAC9BvyB,eAAgB,aAClB,gBCjPO,IAAM2yB,EAAc,CAAC,CAAEC,YAAAA,CAAW,CAAE,GAAG93B,EAAwB,IACpE,GAAM,CAAEK,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,0BAE7B,GAAkBO,OAGhB,GAAAmB,EAAAlD,GAAA,EAACqZ,MAAAA,CAAI5U,aAAYlD,EAAE,cAAe+B,cAAY,kBAAmB,GAAGpC,CAAI,UACtE,GAAAgC,EAAAlD,GAAA,EAACi5B,KAAAA,CAAG71B,UAAU,2DACX41B,EAAY70B,GAAG,CAAC,CAAC+0B,EAAYC,KAC5B,IAAMC,EAAmBD,IAAQH,EAAYj3B,MAAM,CAAG,EACtD,MACE,GAAAmB,EAAAlD,GAAA,EAACqE,KAAAA,UACE+0B,EACC,GAAAl2B,EAAAlD,GAAA,EAACsE,IAAAA,CAAE+0B,eAAa,OAAO/5B,KAAM45B,EAAWI,GAAG,EAAI,YAC5CJ,EAAW5sB,IAAI,GAGlB,GAAApJ,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAACsE,IAAAA,CAAElB,UAAU,YAAY9D,KAAM45B,EAAWI,GAAG,EAAI,YAC9CJ,EAAW5sB,IAAI,GAElB,GAAApJ,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKmM,cAAa,GAAM7M,UAAU,gBAAO,UAVvC81B,EAAWI,GAAG,CAiB3B,OAzB2B,IA6BnC,EE1BMC,EAAcC,CAAAA,EAAAA,EAAAA,aAAAA,EAA2B,CAC7CC,YAAa,EACbrE,MAAO,CACT,GAEMsE,EAAU,IAAMC,CAAAA,EAAAA,EAAAA,UAAAA,EAAWJ,GClB1B,SAASK,EAAWn4B,CAAW,EACpC,OAAOA,GAAI6G,QAAQ,MAAO,IAC5B,CCYA,IAAMuxB,EAA0D,CAAC,CAC/DC,gBAAAA,CAAe,CACfC,kBAAAA,CAAiB,CACjBt4B,GAAAA,CAAE,CACF2B,UAAAA,CAAS,CACT42B,cAAAA,CAAa,CACb,GAAG94B,EACJ,IACC,GAAM,CAAE+4B,OAAAA,CAAM,CAAEC,OAAAA,CAAM,CAAEC,aAAAA,CAAY,CAAEC,YAAAA,CAAW,CAAE,CAAGV,IAChDW,EAAST,EAAWn4B,GACpB64B,EAAWL,IAAWI,EAO5B,MACE,GAAAn3B,EAAAlD,GAAA,EAACkW,SAAAA,CACCzU,GAAI44B,EACJlC,gBAAe,CAAC,UAAU,EAAEkC,EAAO,CAAC,CACpCngB,KAAK,MACLqgB,gBAAeD,EACfvF,SAAUuF,EAAW,EAAI,GACzBnqB,QAZqB,IACvB6pB,IAAgBt7B,GAChB07B,EAAYC,EACd,EAUIppB,UAAW,GAAOkpB,EAAa7wB,EAAG+wB,GAClC14B,IAAK,GAASu4B,EAAOv4B,GACrByB,UAAWC,IAAG,kBAAmBD,EAAW,CAC1C,CAAC02B,EAA0B,CAAEQ,GAAY,CAAC,CAACR,EAC3C,CAACC,EAA4B,CAAE,CAACO,GAAY,CAAC,CAACP,CAChD,GACAp3B,KAAK,SACJ,GAAGzB,CAAI,EAGd,EC1CMs5B,EAAkE,CAAC,CAAE,GAAGt5B,EAAM,GAClF,GAAAgC,EAAAlD,GAAA,EAAC65B,EAASA,CACRz2B,UAAU,qKACV02B,gBAAgB,0DAChBC,kBAAkB,mCACjB,GAAG74B,CAAI,GCJNu5B,EAAUh6B,EAAAA,UAAgB,CAC9B,CAAC,CAAE2C,UAAAA,CAAS,CAAE,GAAGlC,EAAM,CAAEC,IACvB,GAAA+B,EAAAlD,GAAA,EAACwD,MAAAA,CACC0W,KAAK,UACL9W,UAAWC,IAAG,+CAAgDD,GAC9DzB,IAAKR,EACJ,GAAGD,CAAI,GAKdu5B,CAAAA,EAAQl1B,WAAW,CAAG,wCKXtB,IAAMm1B,EAAc,CAKlBC,GAAI,IAMN,4CIyRAC,CAzR0Bn6B,EAAAA,UAAgB,CACxC,CACE,CACE2C,UAAAA,CAAS,CACTwF,KAAAA,EAAO,IAAI,CACXiyB,0BAAAA,CAAyB,CACzBC,2BAAAA,CAA0B,CAC1B3pB,SAAAA,CAAQ,CACR1P,GAAAA,CAAE,CACF,GAAGP,EACJ,CACDC,KAEA,IAAM6U,EAAgBvV,EAAAA,QAAc,CAACwV,OAAO,CAAC9E,GACvC,CAAE+U,MAAAA,EAAQ,CAAC,CAAE,CAAG6U,CAAAA,EAAAA,EAAAA,EAAAA,IAChB,CAAEx5B,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,uBACvBmH,EAAQqyB,CAAAA,EAAAA,EAAAA,CAAAA,EAAMpyB,GACdqyB,EAAax6B,EAAAA,MAAY,CAA0B,MACnDkB,EAAMu5B,CAAAA,EAAAA,EAAAA,CAAAA,EAAa/5B,EAAc85B,GACjC,CAACE,EAAwBC,EAAwB,CAAG36B,EAAAA,QAAc,CAAC,IACnE,CAAC46B,EAAuBC,EAAuB,CAAG76B,EAAAA,QAAc,CAAC,IAEjE,CAAC86B,EAAcC,EAAgB,CAAG/6B,EAAAA,QAAc,CAAgB,MAGtEg7B,CAAAA,EAAAA,EAAAA,EAAAA,EAAkB,CAChB95B,IAAKs5B,EACLS,IAAK,aACLzF,SAAU,KACR,GAAIgF,EAAWl9B,OAAO,EAAIw9B,EAAc,CACtC,IAAMI,EAAanpB,SAASgN,cAAc,CAAC+b,GAE3C,GAAII,EAAY,CACd,GAAM,CAAEhG,WAAAA,CAAU,CAAE,CAAGsF,EAAWl9B,OAAO,CAGnC69B,EACJD,EAAWE,UAAU,CAAGZ,EAAWl9B,OAAO,CAAC43B,UAAU,CACjDmG,EAAcH,EAAWI,WAAW,CAEpCC,EAAef,EAAWl9B,OAAO,CAACg+B,WAAW,CAEnDd,EAAWl9B,OAAO,CAAC43B,UAAU,CAAGsG,EAC9BL,EACAE,EACAE,EACArG,EAEJ,CACF,CACF,CACF,GAEA,IAAMuG,EAAwBz7B,EAAAA,WAAiB,CAC7C,IAEE,IAAMk1B,EAAasF,EAAWl9B,OAAO,EAAE43B,YAAc,EAM/CC,EAAYC,CAJEoF,EAAWl9B,OAAO,EAAE83B,aAAe,GAElCC,CAAAA,GAAM5P,OAAS,GAiBpCkV,EAXgCzyB,EAC5BgtB,EAAa,IAAMC,EAAY,EAC/BD,EAAa,GAAKC,EAAY,GAUlC0F,EAL+B3yB,EAC3BitB,EAAY,GAAKA,EAAY,CAACD,EAAa,EAC3CC,EAAY,GAAKA,EAAYD,EAAa,EAIhD,EACA,CAAChtB,EAAM,EAGHwzB,EAAcnG,CAAAA,EAAAA,EAAAA,CAAAA,EAAQ,CAAEr0B,IAAKs5B,EAAYhF,SAAUiG,CAAsB,GACzEE,EAAkB37B,EAAAA,WAAiB,CACvC,IAAM07B,GAAeD,EAAsBC,GAC3C,CAACD,EAAuBC,EAAY,EAGhCE,EAAarmB,IAAAA,EAAcjU,MAAM,CACjCu6B,EAAYtmB,IAAAA,EAAcjU,MAAM,CAEhCw6B,EAAsB,IAE1B,GAAkBD,GAAapW,GAASwU,EAAY,EAAK,CAEhD,GAGA,GAIL8B,EAAgB,CAAC7G,EAAoBoG,IAClCpG,EAAaoG,EAAcQ,IAE9BE,EAAiB,CAAC9G,EAAoBoG,IACnCpG,EAAaoG,EAAcQ,IAyBpC,SAASN,EACPL,CAAiD,CACjDE,CAAmB,CACnBE,CAAoB,CACpBrG,CAAkB,EAIlB,IAAM+G,EACJC,IAAcC,WAAWC,iBAAiBrqB,SAASsqB,eAAe,EAAEC,QAAQ,SAI9E,EAC8CjB,GAC5CE,EAAeU,EAGb/G,EACCiG,CAAAA,EACCE,EACAY,EACAV,CAAAA,EAMFJ,EAA4Cc,EAE5C/G,EAAc+G,CAAAA,EAA6Bd,CAAAA,EAIxCjG,CACT,CAEA,IAAMqH,EAAsB,IAE1B,GADAxB,EAAgBlyB,EAAE/E,MAAM,CAAC9C,EAAE,EACvBw5B,EAAWl9B,OAAO,CAAE,CACtB,GAAM,CAAE43B,WAAAA,CAAU,CAAE,CAAGsF,EAAWl9B,OAAO,CAGnC69B,EACJtyB,EAAE/E,MAAM,CAACs3B,UAAU,CAAGZ,EAAWl9B,OAAO,CAAC43B,UAAU,CAC/CmG,EAAcxyB,EAAE/E,MAAM,CAACw3B,WAAW,CAElCC,EAAef,EAAWl9B,OAAO,CAACg+B,WAAW,CAEnDd,EAAWl9B,OAAO,CAAC43B,UAAU,CAAGsG,EAC9BL,EACAE,EACAE,EACArG,EAEJ,CACF,EAEA,GAAI3f,EAAcjU,MAAM,CAAG,EAAG,OAAO,KACrC,IAAMk7B,EAAejnB,EAAcjU,MAAM,EAAI,EACvCm7B,EAAelnB,EAAcjU,MAAM,EAAI,EAE7C,MAEE,GAAAmB,EAAAlD,GAAA,EAACwD,MAAAA,CACCJ,UAAWC,IAAG,WAAY,CACxB,oBAAqB,CAAC45B,EACtB,mBAAoBA,GAAgB,CAACC,EACrC,MAAOA,CACT,YAEA,GAAAh6B,EAAAK,IAAA,EAACC,MAAAA,CACC0W,KAAK,UACL9W,UAAWC,IACT,yEACAD,GAEFzB,IAAKA,EACLw0B,SAAUiG,EACVe,kBAAiB17B,EAChB,GAAGP,CAAI,WAEPi6B,EACC,GAAAj4B,EAAAlD,GAAA,EAACwD,MAAAA,CACCJ,UAAWC,IACT,kLACA,CAAE,kBAAmB45B,GAAgB,CAACC,EAAc5pB,OAAQ4pB,CAAa,EACzErC,YAGF,GAAA33B,EAAAK,IAAA,EAAC2S,SAAAA,CACC9S,UAAU,sBACV+M,QAvGa,KACvB,GAAI8qB,EAAWl9B,OAAO,CAAE,CACtB,GAAM,CAAE43B,WAAAA,CAAU,CAAEoG,YAAAA,CAAW,CAAE,CAAGd,EAAWl9B,OAAO,CAClD4K,EACFsyB,EAAWl9B,OAAO,CAAC43B,UAAU,CAAG6G,EAAc7G,EAAYoG,GAE1Dd,EAAWl9B,OAAO,CAAC43B,UAAU,CAAG8G,EAAe9G,EAAYoG,EAE/D,CACF,EA+FY9rB,cAAW,GACX8kB,SAAU,GACVzxB,cAAY,iBACZX,KAAK,mBAEJgG,EACC,GAAAzF,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,kBAAkB+J,KAAK,OAElC,GAAAnT,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,iBAAiB+J,KAAK,OAEnC,GAAAnT,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAW7B,EAAE,yBAG/B,KAEHd,EAAAA,QAAc,CAAC0D,GAAG,CAAC6R,EAAe,IACjC,GAAIvV,EAAAA,cAAoB,CAAC6V,IAAUA,EAAM3T,IAAI,GAAK63B,EAChD,OAAO/5B,EAAAA,YAAkB,CAAC6V,EAA6B,CACrD8mB,QAAS,IACP9mB,EAAMxR,KAAK,EAAEs4B,YACbJ,EAAoB1zB,EACtB,CACF,EACJ,GAEC+xB,EACC,GAAAn4B,EAAAlD,GAAA,EAACwD,MAAAA,CACCJ,UAAWC,IACT,yKACA,CAAE,kBAAmB45B,GAAgB,CAACC,EAAc5pB,OAAQ4pB,CAAa,EACzEpC,YAGF,GAAA53B,EAAAK,IAAA,EAAC2S,SAAAA,CACC/F,QArJc,KACxB,GAAI8qB,EAAWl9B,OAAO,CAAE,CACtB,GAAM,CAAE43B,WAAAA,CAAU,CAAEoG,YAAAA,CAAW,CAAE,CAAGd,EAAWl9B,OAAO,CAClD4K,EACFsyB,EAAWl9B,OAAO,CAAC43B,UAAU,CAAG8G,EAAe9G,EAAYoG,GAE3Dd,EAAWl9B,OAAO,CAAC43B,UAAU,CAAG6G,EAAc7G,EAAYoG,EAE9D,CACF,EA6IY34B,UAAU,sBACV6M,cAAW,GACX8kB,SAAU,GACVzxB,cAAY,gBACZX,KAAK,mBAEJgG,EACC,GAAAzF,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,iBAAiB+J,KAAK,OAEjC,GAAAnT,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,kBAAkB+J,KAAK,OAEpC,GAAAnT,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAW7B,EAAE,wBAG/B,SAIZ,GAGgBgE,WAAW,CAAG,oBCjShC,IAAM83B,EAAWC,CAAAA,EAAAA,EAAAA,UAAAA,EACf,CAAC,CAAE77B,GAAAA,CAAE,CAAE2B,UAAAA,CAAS,CAAE,GAAGlC,EAAM,CAAEC,KAC3B,GAAM,CAAE84B,OAAAA,CAAM,CAAE,CAAGP,IACbW,EAAST,EAAWn4B,GACpB64B,EAAWL,IAAWI,EAE5B,MACE,GAAAn3B,EAAAlD,GAAA,EAACwD,MAAAA,CACC/B,GAAI,CAAC,UAAU,EAAE44B,EAAO,CAAC,CACzB8C,kBAAiB9C,EACjBpqB,cAAa,CAACqqB,EACdpgB,KAAK,WACL6a,SAAU,EACV3xB,UAAWC,IAAG,SAAUD,EAAW,CACjCkQ,OAAQ,CAACgnB,CACX,GACA34B,IAAKR,EACJ,GAAGD,CAAI,EAGd,EAGFm8B,CAAAA,EAAS93B,WAAW,CAAG,WCxBvB,IAAMg4B,EAA0D,CAAC,CAC/DpsB,SAAAA,CAAQ,CACR/N,UAAAA,CAAS,CACT,GAAGlC,EACJ,IACC,GAAM,CAAEs8B,SAAAA,CAAQ,CAAE,CAAG9D,IAKrB,MAJA57B,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR0/B,EAAS/8B,EAAAA,QAAc,CAAC20B,KAAK,CAACjkB,GAChC,EAAG,CAACA,EAAUqsB,EAAS,EAGrB,GAAAt6B,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAWC,IAAG,uBAAwBD,GAAa,GAAGlC,CAAI,UAC5DiQ,GAGP,CAEAosB,CAAAA,EAAUh4B,WAAW,CAAG,YCkBjB,IAAMk4B,EAAOH,CAAAA,EAAAA,EAAAA,UAAAA,EAClB,CACE,CACEI,gBAAAA,CAAe,CACfC,gBAAAA,CAAe,CACf/0B,KAAAA,EAAO,IAAI,CACXg1B,cAAAA,CAAa,CACbC,YAAAA,CAAW,CACXz6B,UAAAA,CAAS,CACT+N,SAAAA,CAAQ,CACR,GAAGjQ,EACJ,CACDC,KAEA,GAAM,CAAC84B,EAAQ6D,EAAU,CAAGtgC,CAAAA,EAAAA,EAAAA,QAAAA,EAASo8B,EAAWgE,IAC1C,CAACnE,EAAasE,EAAe,CAAGvgC,CAAAA,EAAAA,EAAAA,QAAAA,EAAiB,GACjD,CAAC43B,EAAOoI,EAAS,CAAGhgC,CAAAA,EAAAA,EAAAA,QAAAA,EAAiB,GACrCmL,EAAQqyB,CAAAA,EAAAA,EAAAA,CAAAA,EAAMpyB,GACdo1B,EAA4Bv9B,EAAAA,OAAa,CAAC,IAAM,EAAE,CAAE,EAAE,EAItDw9B,EAAkBx9B,EAAAA,WAAiB,CACvC,IACEq9B,EAAUr8B,GACVs8B,EAAeC,EAAKl0B,SAAS,CAAC,GAASnI,EAAIF,EAAE,GAAKA,IAE9Co8B,GACFA,EAAYp8B,EAEhB,EACA,CAACo8B,EAAaG,EAAK,EAGfE,EAAe,GACnBr0B,EAAe,GAAKurB,EAAQ,EAAIvrB,EAAe,EAAI,EAC/Cs0B,EAAmB,GACvBt0B,EAAe,GAAK,EAAIA,EAAe,EAAIurB,EAAQ,EAE/CgJ,EAAsB,GAC1Bv8B,CAAAA,CAAQyH,CAAAA,EAAE+0B,QAAQ,EAAI/0B,EAAEg1B,MAAM,EAAIh1B,EAAEi1B,OAAO,EAAIj1B,EAAEk1B,OAAO,EAyD1D,MANA1gC,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACJ,CAAC8/B,GACHI,EAAKj8B,MAAM,CAAG,GAAKk8B,EAAgBD,CAAI,CAAC,EAAE,EAAEv8B,GAEhD,EAAG,CAACw8B,EAAiBL,EAAeI,EAAK,EAGvC,GAAA96B,EAAAlD,GAAA,EAACu5B,EAAYkF,QAAQ,EACnBn+B,MAAO,CACL25B,OAAAA,EACAR,YAAAA,EACAS,OAnFoC,GACxCv4B,EAAOq8B,EAAKjxB,QAAQ,CAACpL,GAAOq8B,EAAOA,EAAKp+B,IAAI,CAAC+B,GAAQq8B,EAmFjD5I,MAAAA,EACA+E,aA9DgD,CAAC7wB,EAAG7H,KACxD,GAAI28B,EAAoB90B,GACtB,MAAO,GAGT,IAAM+R,EAAQ2iB,EAAKl0B,SAAS,CAAC,GAASnI,EAAIF,EAAE,GAAKA,GAC7Ci9B,EAAS,EACb,OAAQp1B,EAAEC,GAAG,EACX,IAAK,UACL,IAAK,YACH,GAAID,YAAAA,EAAEC,GAAG,EAAkB,CAACo0B,EAC1B,MAEFr0B,EAAEK,cAAc,GAChB+0B,EAAS/1B,EAAQu1B,EAAa7iB,GAAS8iB,EAAiB9iB,GACpDqiB,GACFO,EAAgBD,CAAI,CAACU,EAAO,EAAEC,aAAa,OAASl9B,GAEtDu8B,CAAI,CAACU,EAAO,EAAE10B,QACd,KACF,KAAK,YACL,IAAK,aACH,GAAIV,cAAAA,EAAEC,GAAG,EAAoB,CAACo0B,EAC5B,MAEFr0B,EAAEK,cAAc,GAChB+0B,EAAS/1B,EAAQw1B,EAAiB9iB,GAAS6iB,EAAa7iB,GACpDqiB,GACFO,EAAgBD,CAAI,CAACU,EAAO,EAAEC,aAAa,OAASl9B,GAEtDu8B,CAAI,CAACU,EAAO,EAAE10B,QACd,KACF,KAAK,QACL,IAAK,IACHi0B,EAAgBx8B,GAChB,KACF,KAAK,MACH6H,EAAEK,cAAc,GAChBq0B,CAAI,CAAC5I,EAAQ,EAAE,EAAEprB,QACjB,KACF,KAAK,OACHV,EAAEK,cAAc,GAChBq0B,CAAI,CAAC,EAAE,EAAEh0B,OAGb,CACF,EAiBMowB,YAhB8C,GAAQ6D,EAAgBx8B,GAiBtE+7B,SAAAA,CACF,WAEA,GAAAt6B,EAAAlD,GAAA,EAACwD,MAAAA,CAAI7B,IAAKR,EAAciC,UAAWC,IAAG,WAAYD,GAAa,GAAGlC,CAAI,UACnEiQ,KAIT,EAGFssB,CAAAA,EAAKl4B,WAAW,CAAG,OGhKZ,IAAMq5B,EAA8D,CACzEC,aAAc,MACdC,MAAO,MACPC,YAAa,MACbC,WAAY,KACZC,OAAQ,MACRC,SAAU,MACVC,WAAY,MACZC,cAAe,OACfC,KAAM,MACNC,OAAQ,OACRC,YAAa,OACbC,WAAY,MACZC,QAAS,MACTC,IAAK,MACLC,OAAQ,OACRC,SAAU,MACVC,IAAK,KACP,gBCyBA,SAASC,EAAah7B,CAAkC,EACtD,OAAOA,KAAsCuP,IAAtCvP,EAAwB9G,SAAS,CAG1C,SAAS+hC,EACPt6B,CAAqD,EAErD,OAAOA,KAA6D4O,IAA7D5O,EAAiCu6B,uBAAuB,CAGjE,SAASC,EAAcjiC,EAAY,EAAE,EACnC,MAAOA,OAAAA,CACT,CAqBO,SAASkiC,EAAap7B,CAA8D,EACzF,GAAM,CAAEW,KAAAA,CAAI,CAAEkX,UAAAA,CAAS,CAAE,CAAG9Q,CAAAA,EAAAA,EAAAA,CAAAA,EAA0D,CACpFC,SAAU,CACRg0B,EAAah7B,GAAS8zB,EAA4BC,EAClDiH,EAAah7B,GACT,CACE9G,UAAW8G,EAAM9G,SAAS,CAC1BG,SAAU2G,EAAM3G,QAAQ,EAE1B,CACED,QAAS4G,EAAM5G,OAAO,CACtBC,SAAU2G,EAAM3G,QAAQ,EAE/B,GAEH,OAAOwe,EACL,GAAAzZ,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,iDACb,GAAAF,EAAAlD,GAAA,EAAC0xB,EAAAA,CAAOA,CAAAA,CAACrb,KAAK,KAAKjT,UAAU,mBAG/B,GAAAF,EAAAlD,GAAA,EAACmgC,EAAAA,CAAqB,GAAGr7B,CAAK,CAAEW,KAAMA,GAE1C,CAEO,SAAS06B,EAAoB,CAClC16B,KAAAA,CAAI,CACJ26B,2BAAAA,CAA0B,CAC1BC,cAAAA,CAAa,CACb,GAAGv7B,EAIF,MA6TmBw7B,EA5TpB,GAAM,CAAE/+B,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,UACvB,CAAC++B,EAAaC,EAAS,CA4WtBC,CAAAA,EAAAA,EAAAA,UAAAA,EAAWC,EAAS,CACzBC,WAAY,EAAE,CACdC,OAAQ,EAAE,GA7WN,CAACC,EAAaC,EAAe,CAAGtjC,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACzCujC,EAAYj8B,EAAMk8B,UAAU,EAAK,IAAO18B,CAAAA,EACxC+uB,EACJ5tB,GAASs6B,CAAAA,EAAct6B,GAAQA,GAAMu6B,wBAA0Bv6B,GAAMw7B,uBAAAA,EACjEX,EAASjN,GAAQiN,QAsTHA,EAtTyBS,EAAU1N,GAAQiN,QAuTxDA,GAAQ1+B,OAAO,IACpB,GAAI,CAAC2+B,EAAYI,UAAU,CAAC5+B,MAAM,EAAI,CAACw+B,EAAYK,MAAM,CAAC7+B,MAAM,CAC9D,MAAO,GAET,IAAMm/B,EACJX,IAAAA,EAAYK,MAAM,CAAC7+B,MAAM,EACzBo/B,EAAMP,MAAM,CAAC5Q,IAAI,CAAC,GAAWuQ,EAAYK,MAAM,CAAC7zB,QAAQ,CAACpH,IACrDy7B,EACJb,IAAAA,EAAYI,UAAU,CAAC5+B,MAAM,EAC7Bo/B,EAAMviC,UAAU,CAACoxB,IAAI,CAAC,GAAUuQ,EAAYI,UAAU,CAAC5zB,QAAQ,CAACs0B,EAAK5/B,EAAE,GACzE,OAAOy/B,GAAaE,CACtB,IAlUuF,EAAE,CACnFE,EAAkBjO,GAAQiN,QAAQ,CAAC,EAAE,EAAEiB,QAAQ,CAAC,EAAE,EAAEC,SAAW,GAC/DC,EAAyB3B,EAAah7B,IAAUm7B,EAAcn7B,EAAM9G,SAAS,EAEnF,SAAS0jC,EAAkBC,CAAuD,EAC5ElkC,OAAOC,UAAU,EAAID,OAAOgB,WAAW,GACzC8B,IAAI9C,OAAOgB,WAAW,CAAE,gBAAiBkjC,GACrCA,CAAAA,iBAAAA,GAAgCA,kBAAAA,CAAc,GAChDphC,IACE9C,OAAOgB,WAAW,CAClB,gCACAkjC,iBAAAA,EACIC,SAtEe,CAC3BrB,YAAAA,CAAW,CACXkB,uBAAAA,CAAsB,CACtBI,iBAAAA,CAAgB,CAKjB,EACC,IAAM7jC,EACJ6jC,GAAoB9B,EAAc8B,GAC9BA,EAAiBl8B,KAAK,EAAEkC,KACxBg6B,GAAkBp0B,OAAO9H,OAAOkC,KAChC+4B,EAASa,EAAyBlB,EAAYK,MAAM,CAAG5iC,EAAY,CAACA,EAAU,CAAG,EAAE,CAGzF,MAAO,IAFkBuiC,EAAYI,UAAU,CAACx8B,GAAG,CAAC,GAAQy6B,CAAmB,CAACn9B,EAAG,KAC9Dm/B,EAAOz8B,GAAG,CAAC,GAAgB87B,EAAcjiC,GAAa,KAAOA,GACrC,CAAC0vB,IAAI,CAAC,IACrD,EAqDkC,CAClB6S,YAAAA,EACAkB,uBAAAA,EACAI,iBAAkBp8B,CACpB,GACA,IAGRhI,OAAOC,UAAU,CAACC,KAAK,GAAG,gBAE9B,CAOA,SAASmkC,IACPJ,EAAkB,gBAClBZ,EAAe,GACjB,CAQA,MACE,GAAA59B,EAAAK,IAAA,EAACC,MAAAA,WACE48B,GAA8BA,EAA2B,CAAE,GAAG36B,CAAI,CAAE67B,gBAAAA,CAAgB,GACrF,GAAAp+B,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,aACb,GAAAF,EAAAlD,GAAA,EAAC+hC,EAAAA,CAAmB1O,OAAQ5tB,EAAM8E,OAAQzF,EAAM3G,QAAQ,CAAEoD,EAAGA,IAC7D,GAAA2B,EAAAlD,GAAA,EAACmzB,KAAAA,CAAG/vB,UAAU,uDACXqC,GAAQs6B,EAAct6B,IAAS,CAACw6B,EAAcn7B,EAAwB9G,SAAS,EAC5EuD,EAAE,sBAAuB,CAAEtD,UAAWwH,GAAME,OAAO2G,IAAK,GACxD/K,EAAE,oBAER,GAAA2B,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,qFACb,GAAAF,EAAAlD,GAAA,EAACwD,MAAAA,CAAI2c,YAAU,kBACZ,CAACmgB,GAAQv+B,QAAU,GAAK,GACvB,GAAAmB,EAAAK,IAAA,EAACG,KAAAA,CAAGN,UAAU,sBACZ,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKmM,cAAW,YACd1O,EAAE,gBAAiB,CAClBygC,SAAU,EACVC,UAAW3B,GAAQv+B,QAAU,EAC7B41B,MAAO2I,GAAQv+B,QAAU,CAC3B,KAEF,GAAAmB,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBACb7B,EAAE,oBAAqB,CACtBygC,SAAU,EACVC,UAAW3B,GAAQv+B,QAAU,EAC7B41B,MAAO2I,GAAQv+B,QAAU,CAC3B,UAKR,GAAAmB,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,mCACb,GAAAF,EAAAlD,GAAA,EAACmW,EAAAA,EAAMA,CAAAA,CACLtG,OAAQgxB,EACRqB,UAAW3gC,EAAE,gBACb6U,UAAW0rB,EACX5O,cACE,GAAAhwB,EAAAlD,GAAA,EAACmiC,EAAAA,CAAWA,CAAAA,CACV/+B,UAAU,YACV4R,QAAQ,UACR7E,QAxDhB,WACEuxB,EAAkB,WAClBZ,EAAe,GACjB,EAsDgB/8B,MACE,GAAAb,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAW7B,EAAE,WAC5BA,EAAE,gBACH,GAAA2B,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBACb7B,EAAE,kBAAmB,CACpB6zB,MAAOmL,EAAYI,UAAU,CAAC5+B,MAAM,CAAGw+B,EAAYK,MAAM,CAAC7+B,MAAM,mBAQ5E,GAAAmB,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,gBACb,GAAAF,EAAAlD,GAAA,EAACoiC,EAAAA,CACCC,kBAAmB/B,GAAQv+B,QAAU,EACrC4+B,WACE77B,EAAMw9B,mBAAmB,CACrBjP,GAAQz0B,WAAWgD,OAAO,GAAO0C,EAAEqzB,KAAK,CAAG,GAC3CtE,GAAQz0B,WAEdgiC,OAAQa,EAAyBpO,GAAQuN,OAASvsB,KAAAA,EAClDkuB,YAAaT,EACbU,aAvEhB,WACEd,EAAkB,iBAClBlB,EAAS,CAAE79B,KAAM,OAAQ,GACzBm+B,EAAe,GACjB,EAoEgBP,YAAaA,EACbkC,iBAAkB,CAACzjC,EAAU8qB,IAC3B0W,EAAS,CACP79B,KAAM,aACNrC,MAAOtB,EAASyC,EAAE,CAClBqoB,QAAAA,CACF,GAEF4Y,cAAe,CAAC/8B,EAAOmkB,IACrB0W,EAAS,CACP79B,KAAM,SACNrC,MAAOqF,EAAM3H,SAAS,CACtB8rB,QAAAA,CACF,GAEF6Y,SAAU79B,EAAM69B,QAAQ,eAOnCrC,GAAQv+B,SAAW,GAAK,GAAAmB,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,gBAAQ7B,EAAE,sBAClD,GAAA2B,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,iDACZk9B,GAAQn8B,IAAI,IACX,IAAMO,EAAMy8B,GAAOI,QAAQ,CAAC,EAAE,CAE9B,OACE,EAAAh+B,IAAA,CAACC,MAAAA,CAECJ,UAAWC,IAAG,eAAgB,CAC5B,QAAS,CAAC,CAACqB,CACb,aAECA,GACC,EAAA1E,GAAA,CAACwD,MAAAA,CAAIJ,UAAU,oBACZ,CAAC+9B,GAAOI,QAAQ,CAAC,EAAE,CAAC,CAACp9B,GAAG,CAAC,IACxB,IAAMy+B,EAAQl+B,GAAKm+B,UAAUz2B,KAAK,GAAO02B,OAAAA,EAAEzsB,IAAI,EAC/C,OACE,EAAArW,GAAA,CAAC0E,MAAAA,CACCtB,UAAU,6BAEVjD,IAAKyiC,GAAOlhC,KAAO,GACnBiD,IAAKD,GAAKuP,SAAW,IAFhB2uB,GAAOlhC,IAKlB,KAIJ,EAAA6B,IAAA,CAACC,MAAAA,CAAIJ,UAAU,6BACb,EAAApD,GAAA,CAAC0D,KAAAA,CAAGN,UAAU,qEACX+9B,EAAMhV,QAAQ,GAEjB,EAAAnsB,GAAA,CAACiE,IAAAA,UAAGk9B,EAAM4B,gBAAgB,GACzB5B,GAAO6B,YAAc7B,GAAO8B,YAC3B,EAAA1/B,IAAA,CAACC,MAAAA,CAAIJ,UAAU,2BACb,EAAAG,IAAA,CAACqnB,EAAAA,EAAKA,CAAAA,CAACrpB,EAAGA,EAAGspB,QAAQ,SAASqY,OAAQ,CAAEC,WAAYhC,GAAO6B,UAAW,YACpE,EAAAhjC,GAAA,CAAC8D,OAAAA,CAAKV,UAAU,qBAAY,iBAAmB,IAAE+9B,GAAO6B,cAG1D,EAAAhjC,GAAA,CAACwD,MAAAA,UACC,EAAAD,IAAA,CAACqnB,EAAAA,EAAKA,CAAAA,CAACrpB,EAAGA,EAAGspB,QAAQ,SAASqY,OAAQ,CAAEE,WAAYjC,GAAO8B,UAAW,YACpE,EAAAjjC,GAAA,CAAC8D,OAAAA,CAAKV,UAAU,qBAAY,mBAAqB,IAAE+9B,GAAO8B,mBAKjE9B,GAAOviC,YAAYmD,OAClB,EAAA/B,GAAA,CAACwD,MAAAA,CAAIJ,UAAU,qBACZ+9B,EAAMviC,UAAU,CAACuF,GAAG,CAAC,GACpB,EAAAnE,GAAA,CAACo3B,EAAIA,CAAoB9zB,cAAY,4BAClC+/B,EAAU/2B,IAAI,EADN+2B,EAAU5hC,EAAE,KAKzB,KACH0/B,GAAOmC,aACN,EAAAtjC,GAAA,CAACujC,EAAAA,CAASA,CAAAA,CACRv+B,gBAAgB,eAChBtD,IAAKy/B,EAAMmC,YAAY,EAAE5hC,KAAO,GAChCsC,YAAam9B,EAAMmC,YAAY,EAAEt/B,aAAe,GAChDuV,kBAAmB,GACnB/U,IAAI,aACJ2L,QAAS,IAAMkwB,IAAgBc,GAC/Bp9B,MAAOo9B,EAAMmC,YAAY,EAAEv/B,OAAS,GACpCiR,QAAQ,UAERlQ,EAAM0+B,uBAAuB,CAC/B1+B,EAAM0+B,uBAAuB,GAAGrC,GAEhC,EAAAnhC,GAAA,CAACmiC,EAAAA,CAAWA,CAAAA,CACV/+B,UAAU,gCACVW,MAAOxC,EAAE,eACTyT,QAAQ,eAjETmsB,EAAM1/B,EAAE,CAuEnB,GACA,GAAAyB,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,gBACb,GAAAF,EAAAlD,GAAA,EAACq3B,EAAUA,CAACt5B,QAAS,EAAG45B,MAAO,WAKzC,CAEA,SAASyK,EAAmB,CAC1BzB,WAAAA,CAAU,CACVC,OAAAA,CAAM,CACN2B,YAAAA,CAAW,CACXC,aAAAA,CAAY,CACZjC,YAAAA,CAAW,CACXkC,iBAAAA,CAAgB,CAChBC,cAAAA,CAAa,CACbC,SAAAA,EAAW,EAAE,CACbN,kBAAAA,CAAiB,CAWlB,EACC,GAAM,CAAE9gC,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,UACvBiiC,EAAkB9C,GAAYx8B,IAAI,GACtC,EAAAnE,GAAA,CAACwD,MAAAA,CAAiBJ,UAAU,8DAC1B,EAAAG,IAAA,CAACQ,QAAAA,CAAMX,UAAU,8CACf,EAAApD,GAAA,CAAC8D,OAAAA,UAAM4/B,EAAIp3B,IAAI,GACf,EAAAtM,GAAA,CAACmd,QAAAA,CACC/Z,UAAU,gBACVT,KAAK,WACLmnB,QAASyW,EAAYI,UAAU,CAAC5zB,QAAQ,CAAC22B,EAAIjiC,EAAE,EAC/CyoB,SAAU,GAAOuY,EAAiBiB,EAAKp6B,EAAE/E,MAAM,CAACulB,OAAO,QAPnD4Z,EAAIjiC,EAAE,GAYlB,MACE,GAAAyB,EAAAK,IAAA,EAACC,MAAAA,WACC,GAAAN,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,8BACb,GAAAF,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,UAAUlJ,UAAU,oBAAoBiT,KAAK,OACxD,GAAAnT,EAAAlD,GAAA,EAAC0D,KAAAA,CAAGN,UAAU,6BAAqB7B,EAAE,gBAEtC,CAACq/B,GAAQ7+B,QAAU4+B,GAAY5+B,QAAU,GAAAmB,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,gBAAQqgC,IAChE9C,GAAY5+B,QAAU6+B,GAAQ7+B,QAC7B,GAAAmB,EAAAK,IAAA,EAACk6B,EAAIA,CAACG,cAAc,uBAClB,GAAA16B,EAAAK,IAAA,EAACk3B,EAAOA,CAACr3B,UAAWC,IAAG,6DACrB,GAAAH,EAAAlD,GAAA,EAACw6B,EAAaA,CAAC/4B,GAAG,sBAAcF,EAAE,gBAClC,GAAA2B,EAAAlD,GAAA,EAACw6B,EAAaA,CAAC/4B,GAAG,kBAAUF,EAAE,eAEhC,GAAA2B,EAAAK,IAAA,EAACg6B,EAASA,CAACn6B,UAAU,iBACnB,GAAAF,EAAAlD,GAAA,EAACq9B,EAAQA,CAAC57B,GAAG,sBACX,GAAAyB,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,qBAAaqgC,MAE9B,GAAAvgC,EAAAlD,GAAA,EAACq9B,EAAQA,CAAC57B,GAAG,kBACX,GAAAyB,EAAAlD,GAAA,EAACwD,MAAAA,UACEo9B,GAAQz8B,IAAI,GACX,EAAAnE,GAAA,CAACwD,MAAAA,CAAqBJ,UAAU,gDAC9B,EAAAG,IAAA,CAACQ,QAAAA,CAAMX,UAAU,8CACf,EAAApD,GAAA,CAAC8D,OAAAA,UAAM6B,EAAM2G,IAAI,GACjB,EAAAtM,GAAA,CAAC0E,MAAAA,CACCuL,cAAY,OACZ7M,UAAU,SACVjD,IAAK,CAAC,EAAEwiC,EAAS,+BAA+B,EAAEh9B,EAAM3H,SAAS,CAAC,IAAI,CAAC,CACvE2G,IAAKgB,EAAM2G,IAAI,GAEjB,EAAAtM,GAAA,CAACmd,QAAAA,CACC/Z,UAAU,gBACVT,KAAK,WACLmnB,QAASyW,EAAYK,MAAM,CAAC7zB,QAAQ,CAACpH,EAAM3H,SAAS,EACpDksB,SAAU,GAAOwY,EAAc/8B,EAAO2D,EAAE/E,MAAM,CAACulB,OAAO,QAblDnkB,EAAM2G,IAAI,aAwBhC,GAAApJ,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,sCACZ7B,EAAE,YAAa,CAAE6zB,MAAOiN,CAAkB,KAG7C,GAAAn/B,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,sCACb,GAAAF,EAAAlD,GAAA,EAACkW,SAAAA,CAAO9S,UAAU,0BAA0B+M,QAASqyB,EAAc7/B,KAAK,kBACrEpB,EAAE,kBAEL,GAAA2B,EAAAlD,GAAA,EAACkW,SAAAA,CAAO9S,UAAU,kBAAkB+M,QAASoyB,EAAa5/B,KAAK,kBAC5DpB,EAAE,eAKb,CA4BA,SAASm/B,EAAQzd,CAAY,CAAE0gB,CAAc,EAC3C,GAAIA,UAAAA,EAAOhhC,IAAI,CACb,MAAO,CACLi+B,OAAQ,EAAE,CACVD,WAAY,EAAE,EAIlB,IAAIiD,EAAe,IADK3gB,CAAK,CAAC0gB,EAAOhhC,IAAI,CAAC,CACH,CAQvC,OAPIghC,EAAO7Z,OAAO,EAAI6Z,EAAOrjC,KAAK,EAChCsjC,EAAahkC,IAAI,CAAC+jC,EAAOrjC,KAAK,EAE5B,CAACqjC,EAAO7Z,OAAO,EAAI6Z,EAAOrjC,KAAK,EACjCsjC,CAAAA,EAAeA,EAAahiC,MAAM,CAAC,GAAUiiC,IAASF,EAAOrjC,KAAK,GAG7D,CACL,GAAG2iB,CAAK,CACR,CAAC0gB,EAAOhhC,IAAI,CAAC,CAAEihC,CACjB,CACF,CASA,SAAS7B,EAAmB,CAC1B1O,OAAAA,CAAM,CACN9oB,OAAAA,CAAM,CACNhJ,CAAC,CAKF,EACC,GAAM,CAAEoa,OAAAA,CAAM,CAAE,CAAGnE,CAAAA,EAAAA,EAAAA,SAAAA,IAEnB,GAAI,CAAC6b,EACH,OAAO,KAGT,IAAMyQ,EAAgB,CACpBx3B,KAAM/K,EAAE,yBACR+3B,IAAK,CAAC,CAAC,EAAE/uB,EAAO,QAAQ,CAAC,SAE3B,EAAkB8oB,GAChB,EAAkBA,GAAQ1tB,OAAOkC,MAE7B,GAAA3E,EAAAlD,GAAA,EAAC+4B,EAAWA,CACVC,YAAa,CAAC,CAAE1sB,KAAM/K,EAAE,yBAA0B+3B,IAAK,CAAC,CAAC,EAAE/uB,EAAO,EAAEoR,EAAO,CAAC,EAAG,GAKnF,GAAAzY,EAAAlD,GAAA,EAAC+4B,EAAWA,CACVC,YAAa,CACX8K,EACA,CACEx3B,KAAM/K,EAAE,0BAA2B,CACjCoE,MAAO0tB,GAAQ1tB,OAAO2G,IACxB,GACAgtB,IAAK,CAAC,CAAC,EAAE/uB,EAAO,EAAEoR,EAAO,CAAC,EAE7B,GAMH,GAAAzY,EAAAlD,GAAA,EAAC+4B,EAAWA,CACVC,YAAa,CACX8K,EACA,CACExK,IAAK,CAAC,CAAC,EAAE/uB,EAAO,QAAQ,EAAEkuB,EAAapF,GAAQ5lB,OAAO9H,OAAO2G,MAAM,CAAC,CAAC,CACrEA,KAAM/K,EAAE,0BAA2B,CACjCoE,MAAO0tB,GAAQ5lB,OAAO9H,OAAO2G,IAC/B,EACF,EACA,CACEA,KAAM/K,EAAE,0BAA2B,CACjCwiC,UAAW1Q,GAAQ5lB,OAAOnB,IAC5B,GACAgtB,IAAK,CAAC,CAAC,EAAE/uB,EAAO,EAAEoR,EAAO,CAAC,EAE7B,EAIT,eCzcA,IAAMqoB,EAA+B,CAACC,EAAerd,IACnD,UAAI,OAAOA,EAEF,CADYA,IAAiBqd,CAAK,CAAC,EAAE,EAAE16B,IAC3B,CAEd6F,MAAMC,IAAI,CAAC,CAAEtN,OAAQkiC,EAAMliC,MAAM,EAAI,CAACw2B,EAAGY,IACvCt3B,CAAAA,CAAQ+kB,GAAc7Z,SAASk3B,GAAO,CAAC9K,EAAI,EAAE5vB,KAAO,KAQlD26B,EAAY,CAAC,CACxB9gC,UAAAA,CAAS,CACT6gC,MAAAA,CAAK,CACLnf,mBAAAA,CAAkB,CAClBqf,uBAAAA,CAAsB,CACtBC,+BAAAA,CAA8B,CAE9BC,cAAAA,CAAa,CACbrvB,QAAAA,EAAU,QAAQ,CAClBsvB,mCAAAA,EAAqC,EAAK,CAC1CC,aAAAA,CAAY,CACZ,GAAGrjC,EACY,IACf,GAAM,CAACsjC,EAA+BC,EAAiC,CAAGhkC,EAAAA,QAAc,CACtFujC,EAA6BC,EAAO/iC,EAAK0lB,YAAY,GAGjD8d,EAA0B,CAACxjC,GAAMZ,MAEjC,CAAEiB,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,iBACvB,CAAE+I,OAAAA,EAAS,IAAI,CAAE,CAAGiN,CAAAA,EAAAA,EAAAA,SAAAA,IACpBmtB,EAAoBC,CAAAA,EAAAA,EAAAA,CAAAA,EAAqBr6B,GAEzCs6B,EAAqB7vB,YAAAA,EACrB8vB,EAAiBD,EAAqB,wBAA0B,uBAChEE,EAAWF,EAAqB,KAAO,YAoB7C,EAAW9iC,MAAM,CAGf,GAAAmB,EAAAlD,GAAA,EAACglC,EAAAA,EAAmB,EACjB,GAAG9jC,CAAI,CACR+zB,IAAK0P,EACJ,GAAIzjC,WAAAA,EAAKyB,IAAI,EAAiB,CAAEsiC,YAAa,EAAK,CAAC,CACpDZ,cArBsB,IACpB,iBAAOnB,EACTwB,GACED,EAAiC,CAAC,CAACD,CAA6B,CAAC,EAAE,CAAC,EAGtEE,GACED,EACED,EAA8BrgC,GAAG,CAAC,CAACo0B,EAAGY,IAAQ+J,EAAOn2B,QAAQ,CAACk3B,GAAO,CAAC9K,EAAI,EAAE5vB,KAAO,MAEtF86B,IAA8CnB,EAEnD,WAWKe,EAAM9/B,GAAG,CAAC,CAAC0/B,EAAM1K,KAChB,IAAM+L,EAAaR,EACfF,CAA6B,CAACrL,EAAI,CAClC,iBAAOj4B,GAAMZ,MACbY,GAAMZ,QAAUujC,EAAKt6B,GAAG,CACxB,CAAC,CAACrI,GAAMZ,OAAOyM,SAAS82B,EAAKt6B,GAAG,EAE9B+L,EAAc4vB,EAChBrB,GAAMsB,qBAAuB5jC,EAAE,SAC/BsiC,GAAMuB,sBAAwB7jC,EAAE,QAE9B8jC,EAAwBH,EAC1BrB,GAAMyB,+BAAiCzB,GAAMsB,qBAAuB5jC,EAAE,SACtEsiC,GAAM0B,gCAAkC1B,GAAMuB,sBAAwB7jC,EAAE,QAEtEikC,EAAcX,GAAsBK,EAAa,QAAU,UAC3DO,EACJ,EAACP,IAAcZ,EAEjB,MACE,GAAAphC,EAAAK,IAAA,EAACyhC,EAAAA,EAAmB,EAElB1kC,MAAOujC,EAAKt6B,GAAG,CACfnG,UAAWygC,EAAK6B,sBAAsB,CACtCC,WAAS,2BAET,GAAAziC,EAAAlD,GAAA,EAACglC,EAAAA,EAAqB,EAACrR,QAAS,CAAC,CAAC4Q,WAChC,GAAArhC,EAAAlD,GAAA,EAAC4lC,EAAAA,CAAeC,GAAItB,WAClB,GAAArhC,EAAAlD,GAAA,EAACglC,EAAAA,EAAsB,EAACrR,QAAO,YAC7B,GAAAzwB,EAAAK,IAAA,EAAC2S,SAAAA,CACCvT,KAAK,SACLS,UAAWC,IAAG,eAAgBD,EAAW,CACvC,CAACygC,GAAMiC,kBAA4B,CAAEZ,GAAc,CAAC,CAACrB,GAAMiC,kBAC3D,CAACjC,GAAMkC,mBAA6B,CAClC,CAACb,GAAc,CAAC,CAACrB,GAAMkC,kBAC3B,GACAJ,WAAU,CAAC,kBAAkB,EAAE9B,EAAKt6B,GAAG,CAAC,CAAC,WAEzC,GAAArG,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKmM,cAAY,gBAAQqF,IAC1B,GAAApS,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAWiiC,IAC3B,GAAAniC,EAAAlD,GAAA,EAAC8D,OAAAA,CACCV,UAAWC,IACT,8EACA,CACE,cAAe6hC,CACjB,GAEFS,WAAS,uCAET,GAAAziC,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CACHxI,KAAMw4B,EACN9vB,QAASwwB,EACTnvB,KAAM0uB,EACN3hC,UAAWC,IAAG8gC,EAAwB,CACpC,CAACC,EAAyC,CACxCc,GAAc,CAAC,CAACd,CACpB,gBAOZ,GAAAlhC,EAAAlD,GAAA,EAACglC,EAAAA,EAAsB,EAAC5hC,UAAW0hB,EAAoB6gB,WAAS,2BAC7DF,EAAuB5B,EAAKmC,OAAO,CAAG,SA3CpCnC,EAAKt6B,GAAG,CA+CnB,KA7EsB,IAgF5B,EAEA,SAASq8B,EAAe,CACtBC,GAAIzxB,EAAU,MAAM,CACpBjD,SAAAA,CAAQ,CACR,GAAGjQ,EAIJ,EACC,MAAO,GAAAgC,EAAAlD,GAAA,EAACoU,EAAAA,CAAS,GAAGlT,CAAI,UAAGiQ,GAC7B,CElOA,IAAM80B,EAAezM,CAAAA,EAAAA,EAAAA,aAAAA,EAA4B,CAAC,GAErC0M,GAAW,KACtB,IAAMvU,EAAUgI,CAAAA,EAAAA,EAAAA,UAAAA,EAAWsM,GAC3B,GAAItU,KAAYtd,IAAZsd,EACF,MAAM,MAAU,yDAElB,OAAOA,CACT,EGAawU,GAAkD,CAAC,CAC9D/iC,UAAAA,CAAS,CACT6c,OAAAA,EAAS,QAAQ,CACjBzK,MAAAA,CAAK,CACL6F,MAAAA,EAAQ,CAAC,CACT+qB,YAAAA,EAAc,EAAI,CAClBj1B,SAAAA,CAAQ,CACR,GAAGjQ,EACJ,IACC,GAAM,CAACK,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,aACrB,CAAEy4B,OAAAA,CAAM,CAAEtC,MAAAA,CAAK,CAAE0O,UAAAA,CAAS,CAAE,CAAGH,KAC/BI,EAAmDD,EACrD,CACEnsB,KAAM,QACN,uBAAwB,QACxB,aAAc,CAAC,EAAEmB,EAAQ,EAAE,IAAI,EAAEsc,EAAM,CAAC,EAE1C,CAAC,EAEL,MACE,GAAAz0B,EAAAlD,GAAA,EAACwD,MAAAA,CACCJ,UAAWC,IACT,cACA,CACE,eAAgB4c,WAAAA,EAChB,eAAgBA,WAAAA,EAChB,kBAAmBA,cAAAA,EACnB3M,OAAQ+yB,GAAahrB,IAAU4e,EAC/B,eAAgBoM,CAClB,EACAjjC,GAED,GAAGkjC,CAAU,CACb,GAAGplC,CAAI,UAER,GAAAgC,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,iEACZ6c,WAAAA,GACC,GAAA/c,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,mBAAW7B,EAAE,YAC1B,GAAA2B,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,iBAAiB+J,KAAK,KAAKjT,UAAU,oBAAoB4R,QAAQ,aAG/EiL,cAAAA,GACC,GAAA/c,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,mBAAW7B,EAAE,eAC1B,GAAA2B,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,eAAe+J,KAAK,KAAKjT,UAAU,uBAAuB4R,QAAQ,aAGhF,CAAC,CAACQ,GACD,GAAAtS,EAAAlD,GAAA,EAACiE,IAAAA,CACCN,mBAAiB,cACjBP,UAAWC,IAAG,gCAAiC,CAC7CkjC,SAAUH,EACV,wBAAyBC,CAC3B,YAEC7wB,IAGJrE,MAIT,2HOtDA,IAAMq1B,GAAWC,KAAQ,IAAM7W,QAAA8W,OAAA,GAAApT,IAAA,CAAAqT,EAAAC,IAAA,CAAAD,EAAA,OAA8BrT,IAAI,CAAC,GAASuT,EAAIL,QAAQ,0CACrFM,IAAK,KAGA,SAASC,GAAe,CAC7B5yB,QAAAA,CAAO,CACPhD,SAAAA,CAAQ,CAIT,EACC,MACE,GAAAjO,EAAAlD,GAAA,EAACwD,MAAAA,UACC,GAAAN,EAAAlD,GAAA,EAACkkC,EAASA,CACRD,MAAO,CACL,CACEmB,qBAAsBjxB,EACtB6xB,QAAS,GAAA9iC,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,mBAAW+N,IACnCg0B,oBAAqBhxB,EACrB5K,IAAK,SACP,EACD,CACDnG,UAAU,iEACVT,KAAK,cAIb,CAoBO,SAASqkC,GAAaliC,CAAuB,MpC+KlD0G,EoC9KA,GAAM,CAAE/F,KAAAA,CAAI,CAAEkX,UAAAA,CAAS,CAAE,EpC8KzBnR,EoC9K6F,CAC3FpN,QAAS0G,EAAM1G,OAAO,CACtBD,SAAU2G,EAAM3G,QAAQ,CACxBD,QAAS4G,EAAM5G,OAAO,EAAI,GAC1B+oC,aAAcniC,KAAkBuP,IAAlBvP,EAAM5G,OAAO,CAC3BF,UAAW8G,EAAM9G,SAAS,EAAI,EAChC,EpC2KO6N,CAAAA,EAAAA,EAAAA,CAAAA,EAAgD,CACrDC,SAAU,CAACgtB,EAAqBttB,EAAU,IoC3KtC,CAAEjK,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,UACvB,CAAEgxB,MAAAA,CAAK,CAAE/W,gBAAAA,CAAe,CAAE,CAAGC,CAAAA,EAAAA,GAAAA,EAAAA,IACnC,MACE,GAAAxY,EAAAlD,GAAA,EAACknC,GAAAA,CACCzhC,KAAMA,EACNkX,UAAWA,EACX3e,UAAW8G,EAAM9G,SAAS,CAC1BmpC,gBAAiBriC,EAAMsiC,eAAe,CACtC78B,OAAQzF,EAAM3G,QAAQ,CACtBkpC,QAASviC,EAAMuiC,OAAO,CACtBnpC,QAAS4G,EAAM5G,OAAO,CACtBs0B,MAAOA,EACP/W,gBAAiBA,EACjBla,EAAGA,EACH+lC,gBAAiBxiC,EAAMwiC,eAAe,CACtClH,2BAA4Bt7B,EAAMs7B,0BAA0B,EAGlE,CAEO,SAAS8G,GAAqB,CACnCzhC,KAAAA,CAAI,CACJvH,QAAAA,CAAO,CACPye,UAAAA,CAAS,CACT3e,UAAAA,CAAS,CACTuM,OAAAA,CAAM,CACN88B,QAAAA,CAAO,CACPF,gBAAAA,CAAe,CACf3U,MAAAA,CAAK,CACL/W,gBAAAA,CAAe,CACfla,EAAAA,CAAC,CACD+lC,gBAAAA,CAAe,CACflH,2BAAAA,CAA0B,CAc3B,EACC,GAAM,CAACmH,EAAkBC,EAAoB,CAAGhqC,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IAEzD,GAAImf,EACF,MACE,GAAAzZ,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,iDACb,GAAAF,EAAAlD,GAAA,EAAC0xB,EAAAA,CAAOA,CAAAA,CAACrb,KAAK,KAAKjT,UAAU,mBAInC,IAAMqkC,EAAchiC,GAAMgiC,YAC1B,GAAI,CAACA,EACH,MAAO,GAAAvkC,EAAAlD,GAAA,EAACmmC,GAAKA,CAAC3wB,MAAM,kBAAkByK,OAAO,WAE/C,IAAMynB,EAAajiC,GAAMgiC,aAAalG,QAAQ,CAAC,EAAE,EAAEC,SAAW,GACxDmG,EAAsBzpC,GAAWupC,GAAaG,UAAU76B,SAAS7O,GACjEwG,EAAM+iC,GAAalG,QAAQ,CAAC,EAAE,CAC9BsG,EAASnjC,GAAKuP,SAAW,GACzB6zB,EAASpjC,GAAKm+B,UAAUz2B,KAAK,GAAO02B,OAAAA,EAAEzsB,IAAI,GAAY3U,KAAO,GACnE,MACE,GAAAwB,EAAAK,IAAA,EAACC,MAAAA,WACE48B,GACCA,EAA2B,CAAE,GAAG36B,CAAI,CAAE67B,gBAAiBoG,CAAW,GACpE,GAAAxkC,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,wDACZsB,EACC,GAAAxB,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,8CACb,GAAAF,EAAAlD,GAAA,EAAC0E,MAAAA,CAAIpB,cAAY,aAAaF,UAAU,SAASjD,IAAK2nC,EAAQnjC,IAAKkjC,MAEnE,KACJ,GAAA3kC,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,+CACb,GAAAF,EAAAlD,GAAA,EAAC+nC,GAAAA,CAAmBtiC,KAAMA,EAAMzH,UAAWA,EAAWuM,OAAQA,EAAQhJ,EAAGA,MAG3E,GAAA2B,EAAAlD,GAAA,EAACmW,EAAAA,EAAMA,CAAAA,CACLtG,OAAQ03B,EACR/xB,MAAOjU,EAAE,UACT6U,UAAW,IAAMoxB,EAAoB,aAErC,GAAAtkC,EAAAlD,GAAA,EAACuW,GAAAA,EAAWA,CAAAA,CACV2C,SAAUouB,EACV77B,QAAS4I,KAAAA,EACTsF,WAAS,cACTlE,eAAgB,MAAO,CAAEhQ,KAAAA,CAAI,CAAE,IACzBA,IACF,MAAM+sB,EAAM,CAAE/sB,KAAAA,CAAK,GACnB+hC,EAAoB,IAExB,EACAhxB,QAAS,IAAMgxB,EAAoB,IACnChyB,MAAOjU,EAAE,cAGb,GAAA2B,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,wCACb,GAAAF,EAAAlD,GAAA,EAAC0D,KAAAA,CAAGN,UAAU,2CAAmCqkC,GAAatb,WAC9D,GAAAjpB,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,sBACb,GAAAF,EAAAlD,GAAA,EAACiE,IAAAA,UAAGwjC,GAAaO,iBAAmBP,GAAa1E,mBAChD0E,GAAaQ,iBAAiBlmC,OAC7B,GAAAmB,EAAAlD,GAAA,EAACkE,KAAAA,CAAGd,UAAU,uCACXqkC,GAAaQ,gBAAgB9jC,IAAI,GAChC,EAAAnE,GAAA,CAACqE,KAAAA,UAAYJ,GAAJA,MAGX,KACFwjC,CAAAA,GAAaS,cAAgBT,GAAaU,YAAAA,GAC1C,GAAAjlC,EAAAK,IAAA,EAACC,MAAAA,WACC,GAAAN,EAAAK,IAAA,EAACC,MAAAA,WACC,GAAAN,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBACb7B,EAAE,gBAAiB,CAClB6mC,MAAOX,GAAaY,iBACpBC,IAAKb,GAAac,cACpB,KAGF,GAAArlC,EAAAlD,GAAA,EAACwD,MAAAA,CAAIyM,cAAY,gBACf,GAAA/M,EAAAK,IAAA,EAACqnB,EAAAA,EAAKA,CAAAA,CACJrpB,EAAGA,EACHspB,QAAQ,cACRqY,OAAQ,CACNsF,UAAWf,GAAaS,aACxBO,QAAShB,EAAYzE,UAAU,YAGjC,GAAA9/B,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,0BAAiB,mBACjC,GAAAF,EAAAK,IAAA,EAACO,OAAAA,WACE2jC,GAAaS,aAAa,MAAIT,EAAYzE,UAAU,YAK7D,GAAA9/B,EAAAK,IAAA,EAACC,MAAAA,WACC,GAAAN,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBACb7B,EAAE,gBAAiB,CAClB6mC,MAAOX,GAAaiB,iBACpBJ,IAAKb,GAAakB,cACpB,KAEF,GAAAzlC,EAAAlD,GAAA,EAACwD,MAAAA,CAAIyM,cAAY,gBACf,GAAA/M,EAAAK,IAAA,EAACqnB,EAAAA,EAAKA,CAAAA,CACJrpB,EAAGA,EACHspB,QAAQ,cACRqY,OAAQ,CACN0F,UAAWnB,EAAYU,YAAY,CACnCU,QAASpB,GAAaxE,UACxB,YAEA,GAAA//B,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,0BAAiB,gBACjC,GAAAF,EAAAK,IAAA,EAACO,OAAAA,WACE2jC,GAAaU,aAAa,MAAIV,GAAaxE,yBAOxD,GAAA//B,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,qBACZqkC,GAAa7oC,YAAYuF,IAAI,GAC5B,EAAAnE,GAAA,CAACo3B,EAAIA,UAAgBiK,GAAM/0B,MAAhB+0B,EAAK5/B,EAAE,KAGrBgmC,GAAanI,QACZ,GAAAp8B,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,sBACZqY,GAAmBla,EAAE,mCACrB,CAACka,GACA,GAAAvY,EAAAK,IAAA,EAACqnB,EAAAA,EAAKA,CAAAA,CAACrpB,EAAGA,EAAGspB,QAAQ,6CAAmC,sCAEtD,GAAA3nB,EAAAlD,GAAA,EAACsE,IAAAA,CACChF,KAAK,gDACL8D,UAAU,6BACVmB,OAAO,SACPC,IAAI,+BACL,SAEI,IAAI,gBAET,GAAAtB,EAAAlD,GAAA,EAACkW,SAAAA,CACC9S,UAAU,6BACV+M,QAAS,IAAMq3B,EAAoB,IACnC7kC,KAAK,kBACN,YAEQ,UAMhBglC,EACC,GAAAzkC,EAAAlD,GAAA,EAACsE,IAAAA,CACClB,UAAU,yBACV9D,KAAMwpC,SAoJG,CACvB5qC,QAAAA,CAAO,CACP6qC,KAAAA,CAAI,CACJ5qC,SAAAA,CAAQ,CACRC,QAAAA,CAAO,CACP4qC,WAAAA,CAAU,CAOX,EACC,IAAMC,EAAUC,CAAAA,EAAAA,GAAAA,CAAAA,EAASH,GACzB,MAAOI,CAAAA,EAAAA,GAAAA,EAAAA,EAAe,CACpB5+B,OAAQpM,EACRkpC,QAAS2B,EACTrqC,KAAM,gBAENyqC,UAAW,CACTlrC,QAAAA,EACAmrC,MAAO,CACLC,YAAaL,EACbM,cAAeC,CAAAA,EAAAA,GAAAA,CAAAA,EAAQP,EAAS,EAClC,EACAQ,MAAO,CACLrrC,QAASqe,OAAOre,EAClB,CACF,CACF,EACF,EAlLsC,CACpBF,QAAAA,EACAC,SAAUoM,EACVy+B,WAAY3B,EACZ0B,KAAMtB,GAAamB,WAAac,CAAAA,EAAAA,GAAAA,EAAAA,EAAOC,CAAAA,EAAAA,GAAAA,CAAAA,IAAgB,cACvDvrC,QAASqpC,EAAYhmC,EAAE,CAACmoC,QAAQ,EAClC,GACArlC,OAAO,SACPslC,eAAe,cACfrlC,IAAI,sBAEHjD,EAAE,wBAGL,GAAA2B,EAAAlD,GAAA,EAACwmC,GAAAA,CACC3Z,cAAe,CACb7uB,UAAAA,EACAqrC,MAAO,CACLC,YAAa,IAAIjkC,KACjBkkC,cAAeC,CAAAA,EAAAA,GAAAA,CAAAA,EAAQ,IAAInkC,KAAQ,EACrC,EACAykC,aAAc,CACZ1rC,QAAS,CACPqD,GAAIgmC,EAAYhmC,EAAE,EAEpBsoC,WAAY,EACd,CACF,EACA5rC,SAAUoM,EACVG,iBAAiB,WACjB2U,gBAAgB,gEAChBgS,SAAU,CAAC,CAAE3vB,IAAAA,CAAG,CAAE,IAChB,GAAIA,EAAK,CACP,IAAMsoC,EAAU,IAAIC,IAAI,CAAC,EAAE5C,EAAQ,EAAE3lC,EAAI,CAAC,EAC1CjE,OAAO4B,QAAQ,CAAC6qC,MAAM,CAACF,GACvB,MACF,CACF,EACAG,cAAc,SACdC,+BAAgC,YAEhC,GAAAlnC,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,sBACb,GAAAF,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,oCACb,GAAAF,EAAAlD,GAAA,EAACqqC,GAAAA,gBAAgBA,CAAAA,CAACjD,gBAAiBD,EAAiBhpC,SAAUoM,MAEhE,GAAArH,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,+BACb,GAAAF,EAAAlD,GAAA,EAACsqC,GAAAA,aAAaA,CAAAA,CAACnsC,SAAUoM,WAKhCk9B,EAAY8C,MAAM,EACjB,GAAArnC,EAAAlD,GAAA,EAAC+mC,GAAAA,CAAe5yB,QAAS5S,EAAE,+BACzB,GAAA2B,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,qBACb,GAAAF,EAAAlD,GAAA,EAACwqC,GAAAA,CAA0BrJ,MAAOsG,mBASpD,CAEA,SAAS+C,GAA0B,CAAErJ,MAAAA,CAAK,CAAkC,EAE1E,IAAMsJ,EAAQtJ,EAAMoJ,MAAM,EAAEE,MAEtBC,EACJD,GAAOC,YAAYvmC,IAAI,IACrB,IAAM1C,EAAKonB,EAAUpnB,EAAE,CACjB,CAAC6K,EAAK,CAAGuc,EAAUpnB,EAAE,CAACsG,KAAK,CAAC,KAE5B4iC,EAAiBF,GAAO,CAC5Bn+B,EACD,CAIKs+B,EAAiBD,GAAgBv+B,KACrC,GAAuBy+B,EAAkBppC,EAAE,GAAKA,GAElD,OAAQ6K,GACN,IAAK,UACH,MAAO,CACLuc,UAAY+hB,GAAiEtqC,MAC7EmB,GAAAA,CACF,CACF,KAAK,cACH,MAAO,CACLonB,UACE,EAAA7oB,GAAA,CAACyoB,GAAAA,CAAQA,CAAAA,CACPhd,QAAS,CACPq/B,aAAc,GACdliB,UAAW,CACTtkB,EAAG,CACDQ,MAAO,CACL1B,UAAW,wBACb,CACF,CACF,CACF,WAECwnC,GAAkEtqC,OAAS,KAGhFmB,GAAAA,CACF,CACF,KAAK,cACH,MAAO,CACLonB,UACE,EAAA7oB,GAAA,CAACkE,KAAAA,CAAGd,UAAU,qBACXwnC,GAAkEtqC,MAAM6D,IACvE,GACE,EAAAnE,GAAA,CAACqE,KAAAA,UAAYy+B,GAAJA,MAKjBrhC,GAAAA,CACF,CACF,KAAK,gBACH,MAAO,CACLonB,UACE,EAAA7oB,GAAA,CAACi5B,KAAAA,CAAG71B,UAAU,wBACXwnC,GAAoEtqC,MAAM6D,IACzE,GACE,EAAAnE,GAAA,CAACqE,KAAAA,UAAYy+B,GAAJA,MAKjBrhC,GAAAA,CACF,CACF,SACE,MAAO,CACLonB,UAAW,GACXpnB,GAAAA,CACF,CACJ,CACF,GAEF,OAAOipC,GAAYvmC,IAAI,CAAC,CAAE0kB,UAAAA,CAAS,CAAEpnB,GAAAA,CAAE,CAAE,GAChC,EAAAzB,GAAA,CAACwD,MAAAA,UAAcqlB,GAALpnB,GAErB,CAkCA,SAASsmC,GAAmB,CAC1BtiC,KAAAA,CAAI,CACJzH,UAAAA,CAAS,CACTuM,OAAAA,CAAM,CACNhJ,EAAAA,CAAC,CAMF,EACC,GAAM,CAAEoa,OAAAA,CAAM,CAAE,CAAGnE,CAAAA,EAAAA,EAAAA,SAAAA,IACnB,GAAI,CAAC/R,GAAQ,CAACA,GAAMgiC,aAAan7B,KAC/B,OAAO,KAGT,IAAMw3B,EAAgB,CACpBx3B,KAAM/K,EAAE,yBACR+3B,IAAK,CAAC,CAAC,EAAE/uB,EAAO,QAAQ,CAAC,QAG3B,OAAIvM,EAEA,GAAAkF,EAAAlD,GAAA,EAAC+4B,EAAWA,CAACC,YAAa,CAAC8K,EAAe,CAAEx3B,KAAM7G,EAAKgiC,WAAW,CAACn7B,IAAI,CAAEgtB,IAAK3d,CAAO,EAAE,GAIvFlW,GAAME,OAAO2G,MAAQ,CAAC7G,GAAMgI,OAAOnB,KAGnC,GAAApJ,EAAAlD,GAAA,EAAC+4B,EAAWA,CACVC,YAAa,CACX8K,EACA,CACExK,IAAK,CAAC,CAAC,EAAE/uB,EAAO,QAAQ,EAAEkuB,EAAahzB,GAAME,OAAO2G,MAAM,CAAC,CAAC,CAC5DA,KAAM/K,EAAE,0BAA2B,CACjCoE,MAAOF,GAAME,OAAO2G,IACtB,EACF,EACA,CAAEA,KAAM7G,EAAKgiC,WAAW,CAACn7B,IAAI,CAAEgtB,IAAK3d,CAAO,EAC5C,GAOL,GAAAzY,EAAAlD,GAAA,EAAC+4B,EAAWA,CACVC,YAAa,CACX8K,EACA,CACExK,IAAK,CAAC,CAAC,EAAE/uB,EAAO,QAAQ,EAAEkuB,EAAahzB,GAAME,OAAO2G,MAAM,CAAC,CAAC,CAC5DA,KAAM/K,EAAE,0BAA2B,CACjCoE,MAAOF,GAAME,OAAO2G,IACtB,EACF,EACA,CACEgtB,IAAK,CAAC,CAAC,EAAE/uB,EAAO,QAAQ,EAAE9E,GAAMgI,OAAOvP,QAAQ8J,cAAc,CAAC,EAAEywB,EAC9DhzB,GAAMgI,OAAOnB,MAAQ,IACrB,QAAQ,CAAC,CACXA,KAAM/K,EAAE,0BAA2B,CACjCwiC,UAAWt+B,GAAMgI,OAAOnB,IAC1B,EACF,EACA,CAAEA,KAAM7G,EAAKgiC,WAAW,CAACn7B,IAAI,CAAEgtB,IAAK,CAAC,CAAC,EAAE/uB,EAAO,EAAEoR,EAAO,CAAC,EAC1D,EAGP,CC1gBO,SAASovB,GAAiB5J,CAAY,EAC3C,IAAM6J,EAAgB,CAAC7J,GAAO70B,MAAQ,IAAI3M,iBAAiB,GAAG2I,OAAO,CAAC,cAAe,KACrF,MAAO,CAAC,EAAE0iC,EAAc,CAAC,EAAE7J,GAAO1/B,GAAG,CAAC,CAGjC,SAASwpC,GAAcC,CAAwB,CAAEC,CAA+B,QAKrF,CAJmC,MAA/BD,EAAiB9oC,KAAK,CAAC,KACzB8oC,CAAAA,GAAsC,KAGpCC,GACK,CAAC,EAAED,EAAiB,KAAK,EAAEC,EAAgB,CAAC,CAE9CD,CACT,mqCEhBO,IAAME,EAAsB,CACjCC,eAAgB,EAChBrtC,UAAW,KACXqrC,MAAO,CACLC,YAAa,KACbgC,UAAW,GACX/B,cAAe,IACjB,EACA3sB,QAAS,KACT2uB,UAAW,KACXC,SAAU,KACVC,aAAc,KACdC,aAAc,GACdC,QAAS,GACTrvB,MAAO,GACPsvB,MAAO,CACL,CACEC,OAAQ,EACR16B,SAAU,EAAE,EAEf,CACD26B,aAAc,GACdhC,aAAc,CACZiC,QAAS,GACTC,SAAU,GACVC,cAAe,GACfC,aAAc,GACdC,qBAAsB,GACtBC,yBAA0B,GAC1BC,UAAW,GACXjuC,QAAS,KACTkuC,aAAc,GACdC,aAAc,GACdC,IAAK,KACLC,UAAW,GACXC,UAAW,GACXC,mBAAoB,GACpBC,4BAA6B,GAC7BC,WAAY,GACZC,QAAS,GACTC,cAAe,GACfhD,WAAY,GACZiD,OAAQ,GACRC,sBAAuB,GACvBC,gBAAiB,EACnB,CACF,6CC3CO,IAAMvvB,EAAe,GAC1B9b,CAAAA,CAAQ+a,CAAAA,GAASe,cAAgBf,GAASkB,oBAAsBlB,GAASqB,cAAAA,EAE9DkvB,EAAqB,GAChCtrC,CAAAA,CAAQ+a,CAAAA,GAASmB,oBAAsBnB,GAASoB,cAAAA,EAErCN,EAAU,GAAuB7b,CAAAA,CAAQ+a,CAAAA,GAASc,SAAWd,GAASgB,UAAAA,EAEtEL,EAAW,GAAuB1b,CAAAA,CAAQ+a,GAASY,cAEnD4vB,EAAsB,GACjCzvB,EAAaf,IAAYuwB,EAAmBvwB,IAAYc,EAAQd,GAErDywB,EAAc,GAAuBxrC,CAAAA,CAAQ+a,GAASC,YAEtDywB,EAAqB,GAChCzrC,CAAAA,CAAQioC,GAAcoC,cACtBrqC,CAAAA,CAAQioC,GAAcqC,sBACtBtqC,CAAAA,CAAQioC,GAAcyC,aAEXgB,EAAuB,GAClC1rC,CAAAA,CAAQioC,GAAcwC,8CCpBjB,IAAMkB,EAA4B,IACvC,GAAM,CAAEhyB,UAAAA,CAAS,CAAE,CAAGE,CAAAA,EAAAA,EAAAA,EAAAA,IAChB,CAAC+xB,EAAYC,EAAc,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,EAAuC,aAAc,MAYzF,MAVA7vC,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KAEN0d,GAAWoB,SAASC,aAAe,CAAC4wB,GAAcxhC,GAIlDyhC,EAAc,WAElB,EAAG,CAACzhC,EAASuP,GAAWoB,SAASC,YAAa6wB,EAAeD,EAAW,EAEjE,CAAEG,gBAAiB/rC,CAAAA,CAAQ4rC,EAAaA,WAAAA,EAAYC,cAAAA,CAAc,CAC3E,EE4CaG,EAAe,CAAC,CAC3BC,oBAAAA,EAAsB,EAAK,CAC3BC,iCAAAA,EAAmC,EAAK,CAMzC,IACC,GAAM,CAACxsC,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,qBACrB,CAAEygB,MAAAA,CAAK,CAAE,CAAGK,CAAAA,EAAAA,EAAAA,EAAAA,IACZ,CAAEmrB,WAAAA,CAAU,CAAE,CAAGD,EAA0BO,GAE3CtB,EAAYxqB,EAAM,0BAClBoqB,EAAYpqB,EAAM,0BAClBgqB,EAAgBhqB,EAAM,8BACtB+rB,EAAoB/rB,EAAM,2BAC1BgsB,EAAgBhsB,EAAM,uBACtB6qB,EAAU7qB,EAAM,wBAChBrF,EAAUqF,EAAM,WAChB7jB,EAAU6jB,EAAM,wBAChBuqB,EAAMvqB,EAAM,oBACZ2qB,EAA8B3qB,EAAM,4CACpC0qB,EAAqB1qB,EAAM,mCAC3BisB,EAA6BjsB,EAAM,sCACnCksB,EAAsBV,aAAAA,EACtBW,EAAoBL,CAAAA,GAAmCI,EAEvDE,EACJ,CACE,CAAC,CAAC5B,EACF,CAAC,CAACJ,EACF,CAAC,CAACJ,EACF,CAAC,CAACgC,EACF,CAAC,CAACD,EACF,CAAC,CAACE,EACH,CAACtsC,MAAM,CAACC,SAASE,MAAM,CAAG,EAEvBusC,EAAkBjB,EAAYzwB,IAAYwxB,EAC1CG,EACJ,CAAC,CAACN,GACD,CAACI,GAAW,CAAC,CAACvB,CAAAA,GAAY,CAACb,GAC3B8B,GAAoCI,EAEvC,MACE,GAAAjrC,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,mBAAmBE,cAAY,0BAC5C,GAAAJ,EAAAK,IAAA,EAACC,MAAAA,CACCG,mBAAiB,qBACjBP,UAAU,4DAEV,GAAAF,EAAAlD,GAAA,EAAC2kB,EAAAA,EAASA,CAAAA,CACRvR,SAAU06B,EACVnrC,KAAK,WACLoB,MAAOxC,EAAE,aACT+K,KAAK,2BAEP,GAAApJ,EAAAlD,GAAA,EAAC2kB,EAAAA,EAASA,CAAAA,CAAChiB,KAAK,WAAWoB,MAAOxC,EAAE,gBAAiB+K,KAAK,iCAC1D,GAAApJ,EAAAlD,GAAA,EAAC2kB,EAAAA,EAASA,CAAAA,CAAChiB,KAAK,WAAWoB,MAAOxC,EAAE,WAAY+K,KAAK,yBACrD,GAAApJ,EAAAlD,GAAA,EAAC2kB,EAAAA,EAASA,CAAAA,CAAChiB,KAAK,WAAWoB,MAAOxC,EAAE,YAAa+K,KAAK,0BACtD,GAAApJ,EAAAlD,GAAA,EAAC2kB,EAAAA,EAASA,CAAAA,CAAChiB,KAAK,WAAWoB,MAAOxC,EAAE,cAAe+K,KAAK,4BACxD,GAAApJ,EAAAlD,GAAA,EAAC2kB,EAAAA,EAASA,CAAAA,CACRhiB,KAAK,WACLoB,MAAOxC,EAAE,aACT+K,KAAK,0CAELoR,CAAAA,EAAQd,IAAYe,EAAaf,EAAAA,GACjC,GAAA1Z,EAAAlD,GAAA,EAAC2kB,EAAAA,EAASA,CAAAA,CAAChiB,KAAK,WAAWoB,MAAOxC,EAAE,gBAAiB+K,KAAK,8BAE1DoR,CAAAA,EAAQd,IAAYe,EAAaf,IAAYuwB,EAAmBvwB,EAAAA,GAChE,GAAA1Z,EAAAlD,GAAA,EAAC2kB,EAAAA,EAASA,CAAAA,CACRhiB,KAAK,WACLoB,MAAOxC,EAAE,wBACT+K,KAAK,sCAGRoR,EAAQd,IACP,GAAA1Z,EAAAlD,GAAA,EAAC2kB,EAAAA,EAASA,CAAAA,CAAChiB,KAAK,WAAWoB,MAAOxC,EAAE,gBAAiB+K,KAAK,8BAE3DiR,EAASX,IACR,GAAA1Z,EAAAlD,GAAA,EAAC2kB,EAAAA,EAASA,CAAAA,CAAChiB,KAAK,WAAWoB,MAAOxC,EAAE,cAAe+K,KAAK,8BAEzDgiC,EACC,GAAAprC,EAAAlD,GAAA,EAAC+D,QAAAA,CAAMX,UAAU,iBACf,GAAAF,EAAAlD,GAAA,EAAC2kB,EAAAA,EAASA,CAAAA,CAAChiB,KAAK,WAAWoB,MAAOxC,EAAE,WAAY+K,KAAK,2BAErD,QAEN,GAAApJ,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,sBACZhF,GAASkO,MAAQkgC,GAAKlgC,MAAQqgC,EAC7B,GAAAzpC,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,qDACZhF,GAASkO,MAAQqgC,EAChB,GAAAzpC,EAAAK,IAAA,EAACQ,QAAAA,CAAMX,UAAU,kBACf,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,oBAAY7B,EAAE,eAC9B,GAAA2B,EAAAlD,GAAA,EAAC2kB,EAAAA,EAASA,CAAAA,CACRhiB,KAAK,WACLoB,MACE6oC,GAEID,CAAAA,EACAprC,EAAE,gBACFnD,GAASkO,IAAAA,EAEfA,KACEqgC,EACI,qCACA,+BAIR,KACHH,GAAKlgC,KACJ,GAAApJ,EAAAK,IAAA,EAACQ,QAAAA,CAAMX,UAAU,kBACf,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,oBAAY7B,EAAE,iBAC9B,GAAA2B,EAAAlD,GAAA,EAAC2kB,EAAAA,EAASA,CAAAA,CAAChiB,KAAK,WAAWoB,MAAOyoC,GAAKlgC,KAAMA,KAAK,2BAElD,QAEJ,KACJ,GAAApJ,EAAAK,IAAA,EAACC,MAAAA,CACCG,mBAAiB,sBACjBP,UAAU,qDAET,GAAUkJ,MAASqgC,EAchB,KAbF,GAAAzpC,EAAAlD,GAAA,EAAC2kB,EAAAA,EAASA,CAAAA,CACR5gB,MAAOxC,EAAE,aACT8iB,eAAe,SACf/X,KAAK,yBACL8G,SAAU,CAAC,CAAC46B,GAAsBK,GAAW,CAAC5B,EAC9C7nB,UAAW,EACXJ,gBAAiB,CACfkD,QAAS,CACPpnB,MAAO,qBACPqjB,QAASpiB,EAAE,iBACb,CACF,IAGJ,GAAA2B,EAAAlD,GAAA,EAAC2kB,EAAAA,EAASA,CAAAA,CACR5gB,MAAOxC,EAAE,aACT8iB,eAAe,SACf/X,KAAK,yBACL8G,SAAUi7B,GAAW,CAAChC,EACtBznB,UAAW,EACXJ,gBAAiB,CACfkD,QAAS,CACPpnB,MAAO,qBACPqjB,QAASpiB,EAAE,iBACb,CACF,IAEF,GAAA2B,EAAAlD,GAAA,EAACwD,MAAAA,UACE,GAAM8I,KAcH,KAbF,GAAApJ,EAAAlD,GAAA,EAAC2kB,EAAAA,EAASA,CAAAA,CACR5gB,MAAOxC,EAAE,eACT8iB,eAAe,SACf/X,KAAK,6BACL8G,SAAUm7B,EACV3pB,UAAW,GACXJ,gBAAiB,CACfkD,QAAS,CACPpnB,MAAO,sBACPqjB,QAASpiB,EAAE,mBACb,CACF,YAMV,GAAA2B,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,gBAAgB+c,YAAU,kBACtCkuB,GACC,GAAAnrC,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,uBACb,GAAAF,EAAAK,IAAA,EAAC8N,MAAAA,CACCm9B,MAAM,6BACNl9B,QAAQ,YACRrB,cAAY,OACZw+B,UAAU,QACVrrC,UAAU,+CAEV,GAAAF,EAAAlD,GAAA,EAACmmB,SAAAA,CAAOzU,KAAK,OAAOrO,GAAG,KAAK+iB,GAAG,KAAKC,EAAE,SACtC,GAAAnjB,EAAAlD,GAAA,EAACmmB,SAAAA,CAAOzU,KAAK,eAAerO,GAAG,KAAK+iB,GAAG,KAAKC,EAAE,OAC9C,GAAAnjB,EAAAlD,GAAA,EAACK,OAAAA,CACCqR,KAAK,OACL4U,EAAE,+KAEJ,GAAApjB,EAAAlD,GAAA,EAACK,OAAAA,CAAKqR,KAAK,OAAO4U,EAAE,6DACf,IACN/kB,EAAE,uBAMf,gBExPO,IAAMmtC,EAAyB,CACpCxoC,cAAe,gCACfC,gBAAiB,CAAC;;;;;;;;;;CAUnB,CAAC,CACAC,eAAgB,gBAClB,EAqBaka,EAAkB,CAC7Bpa,cAAe,UACfC,gBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCnB,CAAC,CACAC,eAAgB,SAClB,oCCtCA,IAAMuoC,EAAmB,GACvB,MAAUC,OAAO,CAACC,GAAeA,EAAMnhB,IAAI,CAAC,MACxCjR,OAAOqyB,QAAQ,CAACD,GACbE,OAAOF,IAGVG,EAAiB,MAAO,CAC5BC,UAAAA,EAAYC,OAAOC,UAAU,EAAE,CAC/BC,WAAAA,CAAU,CACV9V,IAAAA,CAAG,CACH,GAAG+V,EACe,IAClB,IAAM3tC,EAAM,IAAIuoC,IAAI3Q,EAAK77B,OAAO4B,QAAQ,CAACyoB,MAAM,EAEzCwnB,EAAkB,IAAIC,gBAAgB,CAC1C,GAAIF,GAAQlyB,OAAS,CAAEA,MAAOkyB,EAAOlyB,KAAK,CAAE,CAC5C,GAAIkyB,GAAQlxC,UAAY,CAAEA,SAAUkxC,EAAOlxC,QAAQ,CAAE,CACrD,GAAIkxC,GAAQ1sC,MAAQ,CAAEA,KAAMgsC,EAAiBU,GAAQ1sC,KAAM,CAAC,CAC5D,GAAI0sC,GAAQja,OAAS,CAAEA,MAAOuZ,EAAiBU,EAAOja,KAAK,CAAE,CAAC,CAC9D,GAAIia,GAAQG,iBAAmB,CAAEA,gBAAiBb,EAAiBU,EAAOG,eAAe,CAAE,CAAC,CAC5F,GAAIJ,GAAc,CAChB/vC,SAAUsvC,EAAiB,CAAC,EAAES,EAAWK,QAAQ,CAAC,CAAC,EAAEL,EAAWM,SAAS,CAAC,CAAC,CAC7E,CAAC,GAGH,GAAI,CACF,IAAM55B,EAAW,MAAM65B,MAAMjuC,EAAIpC,IAAI,CAAG,CAAC,CAAC,EAAEgwC,EAAgB1F,QAAQ,GAAG,CAAC,CAAE,CACxExY,OAAQ,MACRwe,QAAS,CACP,uBAAwBX,CAC1B,CACF,GACMY,EAAsB,MAAM/5B,EAASg6B,IAAI,GAM/C,OAJID,GAAqB5vB,SAAW,sBAClC8vB,EAAAA,EAASA,EAAEC,sBAAsB,CAAEC,YAAa,CAAEC,iBAAkB,IAAK,CAAE,GAGtEL,CACT,CAAE,KAAM,CACN,OAAO,IACT,CACF,EAKaM,EAAwB,CAAC,CACpChoB,UAAAA,EAAY,EAAI,CAChBmJ,UAAAA,EAAY,CAAC,CACb8e,eAAAA,CAAc,CACa,IAC3B,IAAMC,EAAiB,CAAC,CAACD,GAAgBjzB,OAASizB,EAAejzB,KAAK,EAAEpb,QAAUuvB,EAE5E,CAAE3lB,WAAAA,CAAU,CAAElG,KAAM6qC,CAAoB,CAAE,CAAGzkC,CAAAA,EAAAA,EAAAA,CAAAA,EAAsC,CACvFC,SAAU,CAAC,eAAgBskC,EAAe,CAC1CG,QAAS,IAAMvB,EAAeoB,GAC9BnkC,QAASkc,GAAakoB,EACtBG,gBAAiBC,EAAAA,EAAgBA,GAGnC,MAAO,CACLC,YAAaJ,GAAsBI,aAAe,KAClDvlC,QAASQ,EACTsU,OAAQqwB,GAAsBrwB,QAAU,IAC1C,CACF,EClFM0wB,EAAsB,GAED,EACzBC,SAAUC,EAAWC,SAAS,CAC9BC,cAAeF,EAAWG,cAAc,CAC1C,EAEaC,EAAqC,CAAC,CAAEP,YAAAA,CAAW,CAAE,IAChE,GAAM,CAACQ,EAAaC,EAAe,CAAG3zC,CAAAA,EAAAA,EAAAA,QAAAA,EAAyC,EAAE,EAsBjF,MApBAM,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR,GAAI,CAAC4yC,GAAeA,IAAAA,EAAY3uC,MAAM,CAAQ,CAC5CovC,EAAe,EAAE,EACjB,MACF,CAaAA,EAZgBT,EAAYvsC,GAAG,CAAC,CAACF,EAAGk1B,IAAS,EAC3C13B,GAAIwC,EAAEmtC,QAAQ,CACdC,YAAaptC,EAAEotC,WAAW,CAC1B1F,QAAS1nC,EAAEmtC,QAAQ,CACnBnX,OAAQ,GACR5e,MAAO8d,EACPwX,oBAAqBA,EAAoB1sC,EAAEqtC,qBAAqB,EAChEC,kBAAmBttC,EAAEutC,kBAAkB,CACvC/G,MAAOxmC,EAAEwmC,KAAK,CACd9nC,KAAMsB,EAAEtB,IAAI,CACZojB,MAAO9hB,EAAE8hB,KAAK,CAChB,GAEF,EAAG,CAAC2qB,EAAY,EAET,CAAEQ,YAAAA,CAAY,CACvB,yBGNAO,EAlDmC,CAAC,CAClCC,YAAAA,CAAW,CAIZ,IACC,GAAM,CAAEnwC,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,gBACvBmwC,EAAWD,GAAajuB,OAAOC,SAASV,MAAQ,GAElD4uB,EAAeF,GAAajuB,OAAOC,SAASmuB,UAUhD,OATID,EACFA,GAAgBF,GAAajuB,OAAOC,SAASoJ,QACzC,CAAC,EAAE,EAAE4kB,GAAajuB,OAAOC,SAASoJ,QAAQ,CAAC,CAC3C,CAAC,EAAE4kB,GAAajuB,OAAOC,SAASoJ,QAAQ,CAAC,CAE7C8kB,GAAgBF,GAAajuB,OAAOC,SAASoJ,QACzC,CAAC,CAAC,EAAE4kB,GAAajuB,OAAOC,SAASoJ,QAAQ,CAAC,CAC1C,GAEC4kB,GAAeC,EACpB,GAAAzuC,EAAAK,IAAA,EAACC,MAAAA,WACC,GAAAN,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,2DACb,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,yBAAiB7B,EAAE,kCAErC,GAAA2B,EAAAlD,GAAA,EAAC8xC,EAAAA,EAAcA,CAAAA,CAEbxxC,MAAOqxC,EACPvuC,UAAU,qEACV2uC,eAAc,EACdC,gBAAe,WAEf,GAAA9uC,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,+BACb,GAAAF,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,sBAAsB6M,cAAW,YAC9C,GAAA/M,EAAAlD,GAAA,EAAC0E,MAAAA,CACCtB,UAAU,wBACVuB,IAAI,gBACJxE,IAAI,sDAGR,GAAA+C,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,0DACb,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,qBAAauuC,IAC7B,GAAAzuC,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,iCAAyBwuC,WAhBxCD,MAqBP,IACN,EClCO,SAASM,IACd,GAAM,CAAC3xC,EAAO0hB,EAAS,CAAG2rB,CAAAA,EAAAA,EAAAA,CAAAA,EAAgD,iBAAkB,EAAE,CAAE,CAC9FuE,oBAAqB,GAErBC,WAAY,GACVruB,KAAKC,SAAS,CAAC,CACbquB,SAAAA,EACAC,WAAY,IAAIhtC,OAAOitC,OAAO,GA3BZ,OA4BpB,GAEFC,aAAc,IACZ,GAAI,CACF,IAAMC,EAAe1uB,KAAKD,KAAK,CAAC4uB,GAChC,GACED,GACA,iBAAOA,GACP,eAAgBA,GAChB,iBAAOA,EAAIH,UAAU,EACrB,aAAcG,EACd,CACA,GAAM,CAAEH,WAAAA,CAAU,CAAED,SAAAA,CAAQ,CAAE,CAAGI,EAGjC,GAAIE,IAFYrtC,KAAKgtC,GAAYC,OAAO,GAAK,IAAIjtC,OAAOitC,OAAO,IAEpD,EACT,MAAO,EAAE,CAGX,GAAIF,GAAYhjC,MAAMw/B,OAAO,CAACwD,GAC5B,OAAOA,CAEX,CACA,MAAO,EAAE,CACT,KAAM,CACN,MAAO,EAAE,CAEb,CACF,GAIA,MAAO,CAFoB,CAAC9xC,GAAS,EAAE,EAAE8B,KAAK,CAAC,EAzD3B,GA2DQ4f,EAAS,CC5DhC,IAAM2wB,EAAwE,CACnFjvB,QAAS,WACTkvB,QAAS,UACTpvB,QAAS,WACTqvB,gBAAiB,oBACjBC,SAAU,OACZ,gBCIA,IAAMC,EAAsC,CAAC,CAC3C7B,YAAAA,CAAW,CACXtc,OAAAA,EAAS,EAAE,CAIZ,GACC,EAEE,GAAA1xB,EAAAlD,GAAA,EAACwD,MAAAA,UACE0tC,EAAY/sC,GAAG,CAAC,CAAC6uC,EAAY33B,IAE1B,GAAAnY,EAAAlD,GAAA,EAAC8xC,EAAAA,EAAcA,CAAAA,CAEbxxC,MAAO0yC,EAAW3B,WAAW,CAC7BjuC,UAAU,qEACV2uC,eAAcb,EAAYnvC,MAAM,CAChCiwC,gBAAe32B,EAAQ,EACvB/X,cAAasxB,GAAkBvgB,KAAAA,WAE/B,GAAAnR,EAAAlD,GAAA,EAACizC,EAAAA,CACCC,SAAUF,GAAYrwC,KACtBiyB,OAAQA,GAAYsc,EAAYnvC,MAAM,EAAIsZ,IAAAA,EAAcuZ,EAASvgB,KAAAA,WAEjE,GAAAnR,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,YAAYE,cAAY,6BACrC0vC,EAAWrC,mBAAmB,CAACC,QAAQ,GAE1C,GAAA1tC,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,iCACb4vC,EAAWrC,mBAAmB,CAACI,aAAa,SAhB9CiC,EAAW3B,WAAW,KANZ,KAiCrB4B,EAAuC,CAAC,CAC5Cre,OAAAA,CAAM,CACNse,SAAAA,CAAQ,CACR/hC,SAAAA,CAAQ,CAKT,IACC,IAAMgiC,EACJD,GAAYA,KAAYP,EAAgBA,CAAa,CAACO,EAA0B,CAAG,WACrF,MACE,GAAAhwC,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACG8kB,EACC,GAAA1xB,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,+DACb,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,yBAAiBwxB,MAEjC,KACJ,GAAA1xB,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,+BACb,GAAAF,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,+BAA+B6M,cAAW,YACvD,GAAA/M,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAM6mC,EAAkB98B,KAAK,SAErC,GAAAnT,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,4CAAoC+N,SAI3D,ECpCA,IAAAiiC,EAhC0C,CAAC,CACzCC,gBAAAA,CAAe,CACfC,oBAAAA,CAAmB,CACnBC,yBAAAA,EAA2B,CAAC,CAC5BC,uBAAAA,EAAyB,EAAK,CAM/B,IACC,GAAM,CAAEjyC,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,gBACvBiyC,EAAuBxB,IAIvByB,EAA6BJ,GAAqBlxC,MACtD,EAHmBixC,EAAkB,EAAIE,GAS3C,OAAOI,GAHqBH,CAAAA,EAAyBC,EAAuB,EAAE,GACK1xC,OAO/E,KAJF,GAAAmB,EAAAlD,GAAA,ED+CW+yC,EC/CyBA,CAClCne,OAAQrzB,EAAE,qCACV2vC,YAAawC,GAGnB,ECdAE,EAhBqC,CAAC,CAAEP,gBAAAA,CAAe,CAAiC,IACtF,GAAM,CAAE9xC,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,gBAEvB,CAACqyC,EAAoB,CAAG5B,IAExB6B,EAAiBD,GAAqBzxC,MAAM,EAD7BixC,EAAkB,EAAI,GAG3C,MACE,GAAAnwC,EAAAlD,GAAA,EAAC+yC,EAAmCA,CAClCne,OAAQrzB,EAAE,gCACV2vC,YAAa4C,GAGnB,ECbO,IAAMC,EAAyC,CACpD7tC,cAAe,iBACfC,gBAAiB,CAAC;;;;;CAKnB,CAAC,CACAC,eAAgB,gCAClB,EA2Ba4tC,EAA4B,CACvC9tC,cAAe,UACfC,gBAAiB,CAAC;;;;;;;;;;CAUnB,CAAC,CACAC,eAAgB,mBAClB,ECKM6tC,EAAa,GACV,8BAA8B1wB,IAAI,CAAC2wB,GAG/BC,EAAkE,CAAC,CAC9E/E,WAAAA,CAAU,CACVgF,mBAAAA,EAAqB,EAAK,CAC1BC,qBAAAA,EAAuB,EAAK,CAC5B/nC,KAAAA,CAAI,CACJokC,YAAAA,CAAW,CACXvsB,SAAAA,CAAQ,CACRI,SAAAA,CAAQ,CACRpZ,QAAAA,CAAO,CACPpH,MAAAA,CAAK,CACLsgB,eAAAA,CAAc,CACdlmB,SAAAA,CAAQ,CACRiF,UAAAA,CAAS,CACTohB,gBAAAA,CAAe,CACfyqB,UAAAA,CAAS,CACTqF,mBAAAA,EAAqB,CAAC,CACtBC,iBAAAA,EAAmB,SAAS,CAC5Bt0B,OAAAA,CAAM,CACNu0B,wBAAAA,EAA0B,EAAI,CAC9BC,0BAAAA,CAAyB,CACzB,GAAGvzC,EACJ,QD5BCsK,EACAC,EC4BA,GAAM,CAAElK,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,gBACvB0lB,EAAU,uBACV,CACJ7E,cAAAA,CAAa,CACbD,SAAAA,CAAQ,CACRJ,SAAAA,CAAQ,CACR0yB,QAAAA,CAAO,CACPxyB,UAAW,CAAE0B,OAAAA,CAAM,CAAE,CACtB,CAAGtB,CAAAA,EAAAA,EAAAA,EAAAA,IAEE,CAACqyB,EAAmBC,EAAqB,CAAGp3C,CAAAA,EAAAA,EAAAA,QAAAA,EAChD,MAEI,CAACs2C,EAAgBe,EAAkB,CAAG5C,IACtC,CAAE6C,aAAAA,CAAY,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,IAEzBt0C,EAAAA,SAAe,CAAC,KACVq0C,GAAgBH,GAClBE,EAAkB,GAChBG,CNxGD,SACLC,CAAsC,EAEtC,IAAMC,EAAoB,IAAIC,IAE9B,OAAOF,EACJrzC,MAAM,CAAC,GACN,CAAIszC,EAAkBE,GAAG,CAACC,EAAMhE,WAAW,IAGzC6D,EAAkBI,GAAG,CAACD,EAAMhE,WAAW,EAChC,KAGVjvC,KAAK,CAAC,EAhBW,EAiBtB,GMyF8C,CAACuyC,KAAsBb,EAAe,EAGlF,EAAG,CAACa,EAAmBG,EAAcD,EAAkB,EAEvD,GAAM,CAACU,EAAeC,EAAiB,CAAG/0C,EAAAA,QAAc,CAAC,IACnD,CAAEywC,YAAAA,EAAW,CAAE,CAAGD,EAAe,CAAEP,YAAAA,CAAY,GAE/C+E,GAAaC,CAAAA,EAAAA,EAAAA,EAAAA,EAAS,CAAEppC,KAAAA,CAAK,GAC7B4Y,GAAaC,CAAAA,EAAAA,EAAAA,EAAAA,EAAIvB,EAAQtX,GACzB+Y,GAAW,CAAC,CAACH,GACbywB,GAAgB,CAAC,CAACF,IAAcA,GAAW1zC,MAAM,EAAIuyC,EACrDsB,GAAiB1E,GAAYnvC,MAAM,CAAG,EACtC8zC,GAAgC51B,uBAAAA,GAAmCu0B,EAEnE,CAAE/uC,KAAAA,EAAI,CAAEkG,WAAYmqC,EAAiB,CAAE,ED/D7CtqC,ECgEE,CAAErN,SAAAA,EAAUkB,SAAU+vC,EAAYtD,aAAcmD,CAAU,ED/D5DxjC,ECgEE,CAAEQ,QAAS,CAAC,CAACmjC,GAAcgF,CAAmB,ED9DzCvoC,CAAAA,EAAAA,EAAAA,CAAAA,EAAsD,CAC3DC,SAAU,CAACkoC,EAA2BxoC,EAAU,CAChD,GAAGC,CAAO,IC+DNimC,GAAcjsC,IAAM+d,QACpBuyB,GAA4B,CAAC,CAACtB,EAC9BuB,GAAiC,CACrC5B,CAAAA,GACA2B,IACA1B,CAAAA,EAEI,CAAC4B,GAAiBC,GAAmB,CAAGz1C,EAAAA,QAAc,CAAC,CAACu1C,IAyBxDG,GAAmB,CAAC,CAAE/B,CAAAA,GAAsB,CAACuB,IAAiBjE,EAAAA,EAC9DiC,GAA0BoC,IAA6B,CAACJ,GACxDS,GAAqB/B,GAAwB,CAACsB,IAAiB7B,EAAe/xC,MAAM,CAAG,EAEvFs0C,GAA8B,CAClCF,CAAAA,IACAxC,IACAyC,EAAAA,EAEIE,GACJL,IAAmBE,IAAoBxC,IAA2ByC,GAC9DG,GACJN,IACCL,CAAAA,IAAkBO,IAAoBxC,IAA2ByC,EAAAA,EAE9DI,GAAW,MAAOC,IACtBz0B,EA7DgB1V,EA6DImqC,GACpB,IAAMC,EAAqBC,GAAsBF,GAEjDz0B,EAASuyB,EAAkBmC,GAAoB/K,SAAW,IAC1DuK,GAAmB,IACf7B,GAAwBqC,GAC1B9B,EAAqB8B,GAEvB,MAAMhC,EArEUpoC,GAuEZupC,IAA+B,MAAMnB,EAvEzBpoC,EAwElB,EAEMqqC,GAAwB,GAC5B,IAA0B7C,GAAgB/xC,OACjC+xC,EAAe1nC,IAAI,CAAC,GAAgB4mC,EAAW3B,WAAW,GAAKoF,GAC7D9C,GACFc,GAA2BroC,KAChC,GAAgB4mC,GAAY3B,cAAgBoF,GAElCvF,IAAa9kC,KAAK,GAAgB4mC,EAAW3B,WAAW,GAAKoF,GAgCvEG,GAAcn2C,EAAAA,MAAY,CAAC,IAC3Bo2C,GACJ,CAAC14C,OAAAA,GAAqB,QAAQolB,IAAI,CAACplB,EAAAA,GACnC,oBAAO24C,WACP7C,EAAW6C,UAAU5C,SAAS,EAO1B6C,GAAc,CAACf,IAAkC,CAAC3wB,GAExD,MACE,GAAAniB,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,SAASO,mBAAiB,+BACvC,GAAAT,EAAAlD,GAAA,EAACulB,EAAAA,EAASA,CAAAA,CACRxhB,MAAOA,EACPogB,SAAUA,EACVI,SAAUA,EACVc,SAAUA,GACVjiB,UAAWC,IAAG,qDAAsDghB,YAEpE,GAAAnhB,EAAAK,IAAA,EAACyzC,EAAAA,EAAQA,CAAAA,CAAC5zC,UAAU,WAAWozC,SAAUA,GAAUO,YAAaA,aAC9D,GAAA7zC,EAAAlD,GAAA,EAACi3C,EAAAA,EAAaA,CAAAA,CACX,GAAG/1C,CAAI,CACRkC,UAAWC,IACT,4KACAD,EACA,CACE,aAAciiB,EAChB,GAEFf,aAAa,MACb4yB,YAAY,MACZC,eAAe,MACfC,WAAY,GACZ3yC,aAAYlD,EAAE,YAAa,CAAEwC,MAAAA,CAAM,GACnCyhB,eAAcH,GACdI,mBAAkByB,EAClBvjB,mBAAiB,2BACjBwgB,SAAUA,EACT,GAAG/B,EA1JI9V,EA0JgB,CACtB,GAAGkY,CAAe,CAClBL,SAAUA,EAAAA,GAAY,CAAC0xB,IAAgCt0C,EAAE,cACzDkjB,SACEoxB,IArDc,IAEnBwB,GAD+BrnB,IAAI,CAAC,GAAgBgjB,EAAW3B,WAAW,GAAK/wC,IAC1DiB,EAAE,mBAChC,GAkDwEijB,GAAiBC,SAC7E2T,OAAQ,IAAMod,EAAiB,GACjC,EAAE,CACFpY,QA/HM,KACd,GAAI4Y,IAAkC,CAACL,GACrCO,GAAmB,QACd,CACL,IAAMoB,EAAqBj1B,EAAc/V,GACZgrC,GAAoBvhC,OAAO4N,SAChCuyB,GAAmB,GAC7C,CACAV,EAAiB,GACnB,EAuHU+B,QA7IM,IACA,UAAVjuC,EAAEC,GAAG,EAEP2sC,GAAmB,CADKF,CAAAA,IAAkC,CAACL,EAAAA,GAI7D3zB,EACEuyB,EACArD,GAAY9kC,IAAI,CAAC,GAAgB4mC,EAAW3B,WAAW,GAAK/nC,EAAEgvB,aAAa,CAACh4B,KAAK,GAAGqrC,SAClF,GAEN,EAoIUrrC,MAAOu2C,IAAeD,GAAY74C,OAAO,CAAGsW,KAAAA,EAAYohC,GACxD+B,iBA/CmB,KAC3BZ,GAAY74C,OAAO,CAAG,EACxB,EA8CU05C,mBA7CqB,KAC7Bb,GAAY74C,OAAO,CAAG,EACxB,IA8CQ,GAAAmF,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,UAAU+c,YAAU,qBAC9Bu3B,CAtFS,KAClB,GAAI,CAAC/B,IAAiB,CAACJ,EACrB,MAAO,GAET,OAAQ,IACN,KAAKpqC,EACH,OAAO5J,EAAE,UACX,MAAKs0C,IAAiCD,GACpC,OAAOr0C,EAAE,yBAA0B,CACjCo2C,uBAAwBp2C,EAAE,oBAC1Bq2C,gBAAiBr2C,EAAE,kBAAmB,CAAE6zB,MAAO8b,GAAYnvC,MAAM,EACnE,EACF,MAAK6zC,GACH,OAAOr0C,EAAE,kBAAmB,CAAE6zB,MAAO8b,GAAYnvC,MAAM,EACzD,MAAK8zC,IAAiC,CAACD,GACrC,OAAOr0C,EAAE,sBACX,SACE,OAAOA,EAAE,gBACb,CACF,OAqEQ,GAAA2B,EAAAK,IAAA,EAACs0C,EAAAA,EAAeA,CAAAA,CACdC,OAAQ,GACR10C,UAAWC,IACT,sHACA,CAAEiQ,OAAQ,CAACgjC,EAAuB,aAGnCT,GACC,GAAA3yC,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,iCACb,GAAAF,EAAAlD,GAAA,EAACizC,EAAoCA,CAACC,SAAS,iBAC7C,GAAAhwC,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,sBAAsB6M,cAAW,YAC9C2lC,GAAiBr0C,EAAE,oBAAsBA,EAAE,6BAIhD,KAEHg1C,GACC,GAAArzC,EAAAK,IAAA,EAACw0C,EAAAA,EAAYA,CAAAA,WACV5B,IAAoB,CAACL,GACpB,GAAA5yC,EAAAlD,GAAA,EAACg4C,EAAkBA,CACjBtG,YAAaA,IACR,CAAC,cAAc,EAAE,CAAC,CAACA,GAAY,CAAC,EAErC,KACHiC,GACC,GAAAzwC,EAAAlD,GAAA,EAACi4C,EAA0BA,CACzB5E,gBAAiB8C,GACjB7C,oBAAqBmB,EACrBjB,uBAAwB4C,KAExB,KACHA,GACC,GAAAlzC,EAAAlD,GAAA,EAACk4C,EAAqBA,CAAC7E,gBAAiB8C,KACtC,KACHE,GACC,GAAAnzC,EAAAlD,GAAA,EJnPH+yC,EImPuCA,CAAC7B,YAAaA,KAChD,QAEJ,IAAoB7rB,GAIpB,KAHF,GAAAniB,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,MAAM6M,cAAW,YAC7B9E,EAAU,GAAAjI,EAAAlD,GAAA,EAAC0xB,EAAAA,CAAOA,CAAAA,CAACrb,KAAK,KAAK8hC,MAAO,IAAQ52C,EAAE,2BAMzD,GAAA2B,EAAAlD,GAAA,EAACynB,EAAAA,EAASA,CAAAA,CAAChmB,GAAIylB,EAASnR,MAAOsP,IAAYH,GAAY9hB,UAAU,kBAGvE,CAEA+wC,CAAAA,EAAc5uC,WAAW,CAAG,gBChUrB,IAAM6yC,EAAwD,CAAC,CACpEhJ,WAAAA,CAAU,CACVzsC,KAAAA,CAAI,CACJyyB,MAAAA,CAAK,CACL6Z,UAAAA,CAAS,CACTlrC,MAAAA,CAAK,CACL5F,SAAAA,CAAQ,CACRqxC,gBAAAA,CAAe,CACfljC,KAAAA,EAAO,OAAO,CACd86B,gBAAAA,EAAkB,2BAA2B,CAC7CkN,mBAAAA,EAAqB,CAAC,CACtB,GAAGpzC,EACJ,IACC,IAAMu0C,EAAaC,CAAAA,EAAAA,EAAAA,EAAAA,EAAS,CAAEppC,KAAAA,CAAK,GAE7B,CAAC+rC,EAAoB,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAyB7C,EAAY,KAC7D8C,EACJ,CAAC,CAACF,GAAuBA,EAAoBt2C,MAAM,EAAIuyC,EACnD,CAAE7uC,KAAAA,CAAI,CAAE+yC,UAAWC,CAA+B,CAAE,CFTnD5sC,CAAAA,EAAAA,EAAAA,CAAAA,EAAmE,CACxEC,SAAU,CAACioC,EAPbvoC,KAAAA,EAO+D,GEUzDktC,EAAkBjzC,GAAM0G,gBAAgB,CAAC,EAAE,EAAEI,QAAQ7D,UACrDiwC,EACJF,GACA,CAAC,CAACC,GAAiB32C,QACnB22C,EAAgB3rC,QAAQ,CAAC5O,GAErB,CAAEgN,QAAAA,CAAO,CAAEulC,YAAAA,CAAW,CAAEzwB,OAAAA,CAAM,CAAE,CAAGkwB,EAAsB,CAC7DhoB,UAAWowB,GAA4BE,EACvCnnB,UAAWgjB,EACXlE,eAAgB,CACdhB,WAAAA,EACA9V,IAAK8N,EACLjqB,MAAOk7B,EACP11C,KAAAA,EACA6sC,gBAAAA,EACApa,MAAAA,EACAj3B,SAAUw6C,EAAsBx6C,EAAW,KAC3C8wC,UAAAA,CACF,CACF,GAEA,MACE,GAAA/rC,EAAAlD,GAAA,EAACm0C,EAAaA,CACZ/E,WAAYA,EACZ9iC,KAAMA,EACNokC,YAAaA,EACbvlC,QAASA,EACT8U,OAAQA,EACRlc,MAAOA,EACP5F,SAAUA,EACVm2C,mBAAoBA,EACpBrF,UAAWA,EACV,GAAG/tC,CAAI,EAGd,CAEAk3C,CAAAA,EAAS7yC,WAAW,CAAG,WE9EhB,IAAMqzC,GAAiB,yCCqCjBC,GAAgB,CAC3BC,oBAAqB,SACrBC,KAAM,QACNC,OAAQ,SACRC,IAAK,QACLC,WAAY,OACd,EAEaC,GAAgB,CAC3B1zC,EACA0kC,KAEA,GAAImD,EAAmB7nC,GAAMqkC,eAAiBsD,EAAoB3nC,EAAKmX,OAAO,EAAG,CAC/E,GAAIutB,WAAAA,EACF,MAAO,YACF,GAAIA,gBAAAA,EACT,MAAO,uBAEX,MAAO,GAAI5sB,EAAS9X,EAAKmX,OAAO,GAAK2wB,EAAqB9nC,GAAMqkC,cAAe,CAC7E,GAAIK,WAAAA,EACF,MAAO,UACF,GAAI5sB,EAAS9X,EAAKmX,OAAO,GAAKutB,gBAAAA,EACnC,MAAO,qBAEX,MAAO,GAAIA,WAAAA,EACT,MAAO,cACF,GAAIA,oBAAAA,EACT,MAAO,eAET,MAAO,aACT,EA0BaiP,GAAiE,CAC5E,oBACA,sBACA,YACA,MACA,UACA,kBACA,eACA,iBACA,eACA,UACA,uBACA,SACA,YACA,YACA,qBACA,SACA,WACA,qBACA,QACD,CAEM,SAASC,GACdC,CAAkB,EAElB,MAAOz3C,CAAAA,CAAQu3C,GAA0BhtC,IAAI,CAAC,GAASktC,IAAe/vC,EACxE,CAEA,IAAMgwC,GAAc,GACX/N,MAAAA,GAAoBhvB,MAAMgvB,GAAY,KAAOA,EAGzCgO,GAAsB,MAAO,CACxCC,uBAAAA,CAAsB,CACtB3oB,SAAAA,CAAQ,CACRvmB,OAAAA,CAAM,CACN4/B,cAAAA,CAAa,CACbuP,4BAAAA,EAA8B,EAAK,CACnChI,YAAAA,CAAW,CACXiI,OAAAA,CAAM,CASP,IACC,IAAMC,EAAQH,GAAwBG,MAgBtC,GAV8BC,GAAwB,CACpDp0C,KAAMqrB,EACNvsB,OAAQ4lC,EACR2P,mBAAoBJ,EACpBhI,YAAAA,CACF,GAME,OAAO,MAAMqI,GAAkC,CAC7CjpB,SAAAA,EACA3yB,SAAUoM,EACVkvC,uBAAAA,EACA/H,YAAAA,EACAiI,OAAAA,CACF,GAEF,GACExP,WAAAA,GACAA,gBAAAA,GACAA,oBAAAA,EACA,CACA,IAAM6P,EAAiBP,GAAwBz7C,UAC/C,MAAOi8C,CAAAA,EAAAA,EAAAA,EAAAA,EAAiB,CACtBj8C,UAAWg8C,GAAmBlpB,EAAS9yB,SAAS,CAChDuM,OAAQA,EACRlK,KAAM84C,GAAcroB,EAAUqZ,GAC9B+P,SAAU,GACV9Q,UAAW,CACT+Q,kBAAmBV,GAAwBU,kBAC3CnU,QAASyT,GAAwBzT,QACjCqD,MAAO,CACLC,YAAaxY,GAAUuY,OAAOC,YAC9BC,cAAezY,GAAUuY,OAAOE,cAChC6Q,cAAetpB,GAAUuY,OAAOiC,SAClC,EACA+O,gBAAiBZ,GAAwBY,gBACzC1O,QAAS7a,GAAU6a,QACnBrvB,MAAOwU,GAAUxU,MACjBg+B,UAAWxpB,GAAUgZ,cAAc4C,UAAY+M,GAAwBa,UAAY,KACnF7O,aAAc3a,GAAUua,eACxBkP,oBAAqBd,GAAwBc,oBAC7CC,aAAcf,GAAwBe,aACtCC,eAAgBhB,GAAwBgB,eACxCC,aAAcjB,GAAwBiB,aACtCC,QAASlB,GAAwBkB,QACjCC,qBAAsBnB,GAAwBmB,qBAC9CC,OAAQpB,GAAwBoB,OAEhCrP,SACErB,oBAAAA,GAAwCrZ,GAAU0a,UAAY1a,GAAU0a,SAAW,GAC/E1a,GAAU0a,SACV1a,GAAU8a,OAAO7pC,OACvB0nC,MAAO,CACLqR,KAAMhqB,GAAUgZ,cAAckC,SAC9B+O,iBAAkBjqB,GAAUgZ,cAAcmC,cAC1CC,aAAcpb,GAAUgZ,cAAcoC,aACtCC,qBAAsBrb,GAAUgZ,cAAcqC,qBAC9C6O,OAAQvB,GAAwBuB,OAChCC,WAAYnqB,GAAUgZ,cAAcsC,yBACpCC,UAAWvb,GAAUgZ,cAAcuC,UACnCjuC,QAAS0yB,GAAUgZ,cAAcC,WAAajZ,GAAUgZ,cAAc1rC,SAASqD,GAAK,KACpF6qC,aAAcxb,GAAUgZ,cAAcwC,aACtCC,aAAczb,GAAUgZ,cAAcyC,aACtCC,IAAK1b,GAAUgZ,cAAckD,OAASlc,GAAUgZ,cAAc0C,KAAKA,IAAM,KACzEC,UAAW3b,GAAUgZ,cAAc2C,UACnCE,mBAAoB8M,GAAwB9M,mBAC5CuO,OAAQpqB,GAAUgZ,cAAc+C,WAChCC,QAAShc,GAAUgZ,cAAcgD,QACjCqO,aAAcrqB,GAAUgZ,cAAcoD,gBACtCkO,QAAStqB,GAAUgZ,cAAciC,QACjCsP,UAAW5B,GAAwB6B,UAAU5tB,KAAK,KAElD6tB,UACE3B,GAAO7sC,SAAS8rC,GAAcK,UAAU,GACxCpoB,GAAUgZ,cAAc4C,WACxB+M,GAAwB/M,SAC5B,EACAd,MAAO9a,GAAU8a,MACjBE,aAAchb,GAAUgb,aACxB0P,kBAAmB/B,GAAwBgC,oBAAoB1zC,MAAM,KACrE2zC,IAAKjC,GAAwBiC,GAC/B,CACF,EACF,CAIA,MAAOvS,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,CACpB5+B,OAAQA,EACR5L,KAAMmyB,GAAUuY,OAAOiC,UAAY,gBAAkB,QACrD4O,SAAU,GACV9Q,UAAW,CACTuS,aAAc,CACZtB,gBAAiBZ,GAAwBY,gBACzC1N,mBAAoB8M,GAAwB9M,mBAC5C0O,UAAW5B,GAAwB6B,UAAU5tB,KAAK,KAClD8tB,kBAAmB/B,GAAwBgC,mBAC3CG,QAASnC,GAAwBgC,kBACnC,EACAtB,kBAAmBV,GAAwBU,kBAC3Cj8C,QAAS4yB,EAASxU,KAAK,EAAI,GAC3B+sB,MAAO,CACLC,YAAaxY,GAAUuY,OAAOC,YAC9BC,cAAezY,GAAUuY,OAAOE,cAChC6Q,cAAetpB,GAAUuY,OAAOiC,SAClC,EACA7B,MAAO,CACLsC,QAASjb,GAAUgZ,cAAciC,QACjCC,SAAUlb,GAAUgZ,cAAckC,SAClCC,cAAenb,GAAUgZ,cAAcmC,cACvCC,aAAcpb,GAAUgZ,cAAcoC,aACtCC,qBAAsBrb,GAAUgZ,cAAcqC,qBAC9C6O,OAAQvB,GAAwBuB,OAChCa,eAAgB/qB,GAAUgZ,cAAcsC,yBACxCC,UAAWvb,GAAUgZ,cAAcuC,UACnCjuC,QAAS0yB,GAAUgZ,cAAc1rC,SAASqD,GAC1C6qC,aAAcxb,GAAUgZ,cAAcwC,aACtCC,aAAczb,GAAUgZ,cAAcyC,aACtCC,IAAK1b,GAAUgZ,cAAc0C,KAAKA,IAClCsP,cAAehrB,GAAUgZ,cAAc2C,UACvCC,UAAW5b,GAAUgZ,cAAc4C,UACnCG,WAAY/b,GAAUgZ,cAAc+C,WACpCC,QAAShc,GAAUgZ,cAAcgD,QACjCiP,YAAajrB,GAAUgZ,cAAcoD,gBACrCH,cAAejc,GAAUgZ,cAAciD,aACzC,EACAnB,MAAO9a,GAAU8a,MACjBJ,SAAU+N,GAAYzoB,EAAS0a,QAAQ,EACvCC,aAAc3a,GAAU2a,YAC1B,CACF,EACF,EAEauQ,GAAiC,IAC5C,IAAMC,EAAgCtzB,IAAM,CAAC,EAAGyiB,EAAqBve,GA4BrE,OA1BIovB,GAAe5S,OAAOC,aACxB2S,CAAAA,EAAc5S,KAAK,CAACC,WAAW,CAAG4S,CAAAA,EAAAA,EAAAA,CAAAA,EAAWD,EAAc5S,KAAK,CAACC,WAAW,GAE1E2S,GAAe5S,OAAOE,eACxB0S,CAAAA,EAAc5S,KAAK,CAACE,aAAa,CAAG2S,CAAAA,EAAAA,EAAAA,CAAAA,EAAWD,EAAc5S,KAAK,CAACE,aAAa,GAI7EhsB,EAAS0+B,GAAer/B,UAC3Bq/B,CAAAA,EAAc,YAAe,CAAC,YAAe,CAAG,IAI7Cv+B,EAAQu+B,GAAer/B,WACtBe,EAAas+B,GAAer/B,SAC9Bq/B,EAAc,YAAe,CAAC,YAAe,CAAG,GACvC9O,EAAmB8O,GAAer/B,UAC3Cq/B,EAAc,YAAe,CAAC,YAAe,CAAG,GAChDA,EAAc,YAAe,CAAC,YAAe,CAAG,KAEhDA,EAAc,YAAe,CAAC,YAAe,CAAG,GAChDA,EAAc,YAAe,CAAC,YAAe,CAAG,GAChDA,EAAc,YAAe,CAAC,oBAAuB,CAAG,KAIrDA,CACT,EAEapC,GAA0B,CAAC,CACtCp0C,KAAAA,CAAI,CACJlB,OAAAA,CAAM,CACNu1C,mBAAAA,CAAkB,CAClBpI,YAAAA,CAAW,CAMZ,QAC+C5H,EAa9C,IAAMqS,EAAa,CAAE12C,CAAAA,GAAM4jC,OAAOC,aAAe7jC,GAAM4jC,OAAOE,aAAAA,EAC9D,OAEEuQ,GAGA,CAAC,CAACpI,GACF,CAAC,CAACA,GAAaluB,SAASC,OAAO24B,UAC9B73C,CAAAA,WAAAA,GAAuBA,gBAAAA,CAAW,OArBSulC,EAsBPrkC,GAAMqkC,eApBtBj9B,IAAAA,OAAOq2B,MAAM,CAAC4G,GAAcloC,MAAM,CAACC,SAASE,MAAM,EAAW,CAAC+nC,GAIjFA,EAAAA,GACAj9B,OAAOq2B,MAAM,CAAC4G,GAAcloC,MAAM,CAACC,SAASE,MAAM,CAAG,KACrD+nC,EAAa4C,SAAS,GAgBvByP,CAAAA,GACE,CAAC,CAAC12C,GAAM4jC,OAAOC,aACd7jC,GAAM4jC,OAAOiC,WACb+Q,IAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB52C,GAAM4jC,OAAOC,YAAa,IAAIjkC,KAAW,CAElE,EACa00C,GAAoC,MAAO,CACtDjpB,SAAAA,CAAQ,CACR3yB,SAAAA,CAAQ,CACRs7C,uBAAAA,CAAsB,CACtB/H,YAAAA,CAAW,CACXiI,OAAAA,CAAM,CAOP,IACC,IAAI2C,EAA+B,GACnC,GAAI,CACF,GAAI3C,EAAQ,KhBhVdnuC,EgBiVI,GAAM,CAAE+wC,eAAAA,CAAc,CAAE,CAAG,OhBjV/B/wC,EgBiV2E,CACrEgxC,MAAO5D,EACT,EhBhVG6D,EAAYC,UAAU,CAA4B,CACvD5wC,SAAU,CAAC4iC,EAAwBljC,EAAU,IgBgV3C8wC,EACEC,EAAenwC,IAAI,CAAC,CAAC,CAAEE,KAAAA,CAAI,CAAE,GAAKssC,KAAmBtsC,IAAOL,SAAW,EAC3E,CACF,CAAE,MAAO8J,EAAO,CAEdvG,QAAQuG,KAAK,CAACA,EAChB,CAEA,IAAM4mC,EAAsB,CAC1BhR,QAAS+F,GAAaluB,SAASC,OAAOhiB,GACtCpC,SAAUqyC,GAAaluB,SAASC,OAAOm5B,UAAUv9C,SACjDw9C,OAAQnL,GAAaluB,SAASC,OAAOm5B,UAAUC,OAC/CC,YAAapL,GAAaluB,SAASC,OAAO9gB,KAC1C2Z,MAAOwU,GAAUxU,KACnB,EACM8sB,EAA+B,CACnCiR,gBAAiBZ,GAAwBY,gBACzCF,kBAAmBV,GAAwBU,kBAC3CU,OAAQpB,GAAwBoB,OAChCL,aAAcf,GAAwBe,aACtCE,aAAcjB,GAAwBiB,aACtCC,QAASlB,GAAwBkB,QACjCC,qBAAsBnB,GAAwBmB,qBAC9ClO,UAAW5b,GAAUgZ,cAAc4C,WAAa+M,GAAwB/M,UACxE0P,SAAU1K,GAAaluB,SAASC,OAAO24B,SACvCV,IAAKjC,GAAwBiC,IAC7B1V,QAASyT,GAAwBzT,QACjC,GAAIsW,GAAgCK,CAAmB,EAEnD3C,EAAiBP,GAAwBz7C,UAO/C,MAN0B++C,CAAAA,EAAAA,EAAAA,EAAAA,EAAmB,CAC3CxyC,OAAQpM,EACRH,UAAWg8C,GAAmBlpB,GAAU9yB,UACxCorC,UAAAA,EACA8Q,SAAU,EACZ,EAEF,EAEa8C,GAA8B,CACzCC,EAAAA,EAAkCA,CAAC72C,cAAc,CACjD2tC,EAAuC3tC,cAAc,CACrDsoC,EAAuBtoC,cAAc,CACtC,CACY82C,GAG0C,CAACT,EAAahxC,EAAU,CAAC,CAAC,IAC/E,GAAM,CAAE0xC,yBAAAA,EAA2B,EAAK,CAAE,CAAG1xC,EACvC2xC,EAAyBC,CAAAA,EAAAA,EAAAA,EAAAA,EAA0BZ,GAAalpB,KAAK,CAAC,IAE1E/jB,QAAQuG,KAAK,CAAC,uCAAwCzM,EACxD,GAMA,OAJI6zC,GACFG,ELvYiBZ,UAAU,CAA4C,CACvE5wC,SAAU,CAACioC,EAJbvoC,KAAAA,EAI+D,GKsYF+nB,KAAK,CAAC,IAC/D/jB,QAAQuG,KAAK,CAAC,2CAA4CzM,EAC5D,GACK8zC,CACT,iBCtaA,IAAMG,GAAmB,CAACC,EAAkBj8C,IAC1Ci8C,IAAAA,EAAiBj8C,EAAE,oBAAsBi8C,EAE9BC,GAAyB,CAAC,CACrCnU,YAAAA,CAAW,CACXC,cAAAA,CAAa,CACbprC,SAAAA,CAAQ,CACRu/C,cAAAA,CAAa,CACb9R,MAAAA,CAAK,CAQN,IACC,GAAM,CAAErqC,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,aACvB,CAAEm8C,mBAAAA,CAAkB,CAAEC,sBAAAA,CAAqB,CAAEC,aAAAA,CAAY,CAAE,CAAGC,SA2FhC,CACpC3/C,SAAAA,CAAQ,CACRmrC,YAAAA,CAAW,CACXC,cAAAA,CAAa,CAKd,EACC,IAAMh/B,EAASwzC,SAwDS,CAAE5/C,SAAAA,CAAQ,CAAwB,EAC1D,OAAO,IAAIqwB,KAAKwvB,MAAM,CAAC7/C,EAAU,CAC/B,GAAG8a,EAAc,CACjB,GAAGglC,EAAa,CAAC9/C,EAAS,EAE9B,EA7D2B,CAAEA,SAAAA,CAAS,GAC9B,CAAEoD,EAAAA,CAAC,CAAE28C,MAAOC,CAAS,CAAE,CAAG38C,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,aAE/C,MAAO,CACLm8C,mBACE,GAAmBpU,GAAmBh/B,EAClC6zC,GAAY9U,EAAaC,EAAeh/B,GACxC,GACNqzC,sBACE,GAAmBrU,GAAmBh/B,EAClChJ,EAAE,yBAA0B,CAC1B+nC,YAAaA,EAAY+U,kBAAkB,CAAC9zC,EAAQ,CAClD+zC,UAAW,MACb,GACA/U,cAAeA,EAAc8U,kBAAkB,CAAC9zC,EAAQ,CAAE+zC,UAAW,MAAO,EAC9E,GACA,GACNT,aACE,GAAmBtU,EAAgB8S,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB9S,EAAeD,GAAe,EACpF6U,UAAAA,CACF,CACF,EAzH4F,CACxF7U,YAAAA,EACAC,cAAAA,EACAprC,SAAAA,CACF,GACMqtC,EAAWI,EAAM7pC,MAAM,CACvB,CAAEw8C,UAAAA,CAAS,CAAEC,YAAAA,CAAW,CAAEC,aAAAA,CAAY,CAAE,CAAG7S,EAAM/lC,MAAM,CAC3D,CAAC+H,EAAK8wC,KACJ9wC,EAAI2wC,SAAS,CAAG3wC,EAAI2wC,SAAS,CAAGG,EAAK7S,MAAM,CAC3Cj+B,EAAI4wC,WAAW,CAAG5wC,EAAI4wC,WAAW,CAAGE,EAAKvtC,QAAQ,CAACpP,MAAM,CACxD6L,EAAI6wC,YAAY,CAAG,IACd7wC,EAAI6wC,YAAY,IAChBC,EAAKvtC,QAAQ,CAACvP,MAAM,CAAC,GAAO,iBAAO+8C,EAAEC,GAAG,EAAez6C,GAAG,CAAC,GAAOw6C,EAAEC,GAAG,EAC3E,CACMhxC,GAET,CAAE2wC,UAAW,EAAGC,YAAa,EAAGC,aAAc,EAAE,GAE5CI,EAAsBJ,GAAct6C,IAAI,GAAco5C,GAAiBC,EAAUj8C,IACjFu9C,EAAYv9C,EAAE,kBAAmB,CAAE6zB,MAAOoW,CAAS,GACnDuT,EAAax9C,EAAE,kBAAmB,CAAE6zB,MAAOmpB,GAAalqC,KAAAA,CAAU,GAClE2qC,EAAU,CAACR,GAAe,GAAK,EAC/BS,EAAWD,EAAUz9C,EAAE,iBAAkB,CAAE6zB,MAAOopB,GAAenqC,KAAAA,CAAU,GAAK,GAElF6qC,EAA8B,KAElC,GAAIxB,GAAiBsB,GAAWH,GAAqB98C,OAAQ,CAC3D,IAAMo9C,EAAeN,GAAqBz8C,MAAM,EAAG,CAAC,GAAGsrB,KAAK,MAE5DwxB,EAAe39C,EAAE,wBAAyB,CACxC6zB,MAAOypB,EAAoB98C,MAAM,CACjCo9C,aAAcN,EAAoB98C,MAAM,CAAG,EAAIo9C,EAAeA,EAAe,IAC7EC,WAAYP,GAAqBz8C,MAAM,CAAC,EAAE,CAAC,EAAE,CAC7Ci9C,OAAQR,CAAmB,CAAC,EAAE,EAElC,CAEA,IAAMS,EAAsB3B,EAAqBp8C,EAAE,qBAAuBA,EAAE,qBAE5E,MAAO,CACL8nC,MAAOsU,EACP4B,SAAU3B,EACVsB,aAAAA,EACAM,UAAWj+C,EAAE09C,EAAW,8BAAgC,sBAAuB,CAC7EpT,OAAQkT,EACRU,KAAMR,EACNrT,MAAOkT,CACT,GACAjB,aACEA,IAAAA,EACIyB,EACA/9C,EAAE,+BAAgC,CAAE6zB,MAAOyoB,CAAa,EAChE,CACF,EAEaO,GAAc,CAAC9U,EAAmBC,EAAqBh/B,KAClE,IAAMm1C,EAAWC,CAAAA,EAAAA,GAAAA,CAAAA,EAAWrW,EAAaC,GACnCqW,EAAQC,GAAQt1C,GAKhBkB,EAAsC,CAC1Cq0C,QAJc,QAKdC,MANYC,GAAUz1C,GAAW,OAAoB,QAOrD01C,IALU,SAMZ,EACMC,EAA8C,CAAE,GAAGz0C,CAAO,CAAE00C,KANrD,SAM0D,EAEjEC,EAAoB9W,EAAY+U,kBAAkB,CACtD9zC,EACA,CAACm1C,GAAYE,EAAQM,EAAkBz0C,GAEnC40C,EAAsB9W,EAAc8U,kBAAkB,CAC1D9zC,EACAm1C,GAAYE,EAAQn0C,EAAUy0C,GAGhC,MAAO,CAAC,EAAEE,EAAkB,QAAQ,EAAEC,EAAoB,CAAC,EA6ChDR,GAAU,GAEd,CAAC,KAAM,KAAM,UAAW,UAAU,CAAC9yC,QAAQ,CADjCuzC,GAAiB/1C,IAIvBy1C,GAAY,GAEhB,CAAC,KAAK,CAACjzC,QAAQ,CADLuzC,GAAiB/1C,IAIpC,SAAS+1C,GAAiB/1C,CAA4B,EACpD,MAAO,CACLg2C,GAK2BC,UALPj2C,GAAQi2C,SAAWj2C,EAAOi2C,QAAQ,CAAIj2C,CAAAA,EAC1DvC,WAAW,EACf,CASA,IAAMiR,GAA6C,CACjDwnC,SAAU,SACZ,EAEMxC,GAA4D,CAChE13C,GAAI,CACFm6C,gBAAiB,MACnB,CACF,ECjKO,SAASC,GAAgB,CAC9BrX,YAAAA,CAAW,CACXlmC,UAAAA,CAAS,CACTmmC,cAAAA,CAAa,CACbqX,cAAAA,CAAa,CACb1b,WAAAA,CAAU,CACVvoB,UAAWkkC,CAAa,CACxB1iD,SAAAA,CAAQ,CACRkB,SAAAA,CAAQ,CACRyhD,YAAAA,CAAW,CACXlV,MAAAA,CAAK,CACL8R,cAAAA,CAAa,CACbqD,YAAAA,CAAW,CACXC,gBAAAA,CAAe,CACM,EACrB,IAAMC,EAAcC,CAAAA,EAAAA,EAAAA,EAAAA,EAAc,uBAE5B,CAAE3/C,EAAAA,CAAC,CAAE28C,MAAAA,CAAK,CAAE,CAAG18C,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,iBAC9B,CAAE6nC,MAAAA,CAAK,CAAEkW,SAAAA,CAAQ,CAAEL,aAAAA,CAAY,CAAEM,UAAAA,CAAS,CAAE3B,aAAAA,CAAY,CAAE,CAAGJ,GAAuB,CACxFnU,YAAAA,EACAC,cAAAA,EACAprC,SAAAA,EACAytC,MAAAA,EACA8R,cAAAA,CACF,GACMyD,EAAuC5/C,EAAE,WAA7Bw/C,EAA6B,sBAA2B,qBACpEK,EAAsC7/C,EAAE,WAA7Bw/C,EAA6B,sBAA2B,qBACnEM,EACJN,WAAAA,EACIx/C,EAAE,oBAAqB,CAAElC,SAAAA,EAAUgqC,MAAOkW,EAAUC,UAAAA,CAAU,GAC9Dj+C,EAAE,kBAAmB,CAAElC,SAAUA,GAAYgV,KAAAA,EAAWg1B,MAAOkW,EAAUC,UAAAA,CAAU,GAEnF7iC,EAAYkkC,GAAiB,CAAC3C,EAE9BoD,EACJ,GAAAp+C,EAAAlD,GAAA,EAACkW,SAAAA,CACCvU,IAAKi/C,EACLx9C,UAAU,mBACVT,KAAK,SACL2Y,gBAAe4pB,EACfzgC,aAAY48C,EACZlxC,QAAS2wC,EACTx9C,cAAY,8BAEX89C,IAIL,MACE,GAAAl+C,EAAAK,IAAA,EAACC,MAAAA,CACCJ,UAAWC,IACT,wGACAD,GAEFE,cAAY,2BAEZ,GAAAJ,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,iCACZuZ,EAAY,GAAAzZ,EAAAlD,GAAA,EAACuhD,GAAAA,CAAen+C,UAAU,aAAgB+9C,IAExDxkC,EACC,GAAAzZ,EAAAlD,GAAA,EAACuhD,GAAAA,CAAen+C,UAAU,uBACxBo+C,EAEA,KADFF,EAEF,GAAAp+C,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,8OACZuZ,GAAatd,EACZ,GAAA6D,EAAAlD,GAAA,EAACuhD,GAAAA,CAAen+C,UAAU,4BACxB/D,EACF,GAAA6D,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,mDACb,GAAAF,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,iBAAiB0I,QAAQ,QAAQ5R,UAAU,WACtD,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,cAAcoS,MAAOnW,WAClCA,OAGH,KACJ,GAAA6D,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,0CAA0CE,cAAY,iCACnE,GAAAJ,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,WAAW0I,QAAQ,QAAQ5R,UAAU,WAC/CuZ,EACC,GAAAzZ,EAAAlD,GAAA,EAACuhD,GAAAA,CAAen+C,UAAU,aAE1B,GAAAF,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAU,OAAO6M,cAAa,aACjCo5B,EAAO,IACR,GAAAnmC,EAAAK,IAAA,EAACO,OAAAA,CACCV,UAAU,+CACVE,cAAY,kCACb,IACGu6C,EAAa,UAGnB,GAAA36C,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAU,oBACbm8C,EAAS,IAAE1B,WAKnBmD,EAAkB,KACjB,GAAA99C,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,mDACb,GAAAF,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,QAAQlJ,UAAU,WAC5BuZ,EACC,GAAAzZ,EAAAlD,GAAA,EAACuhD,GAAAA,CAAen+C,UAAU,aAE1B,GAAAF,EAAAK,IAAA,EAACO,OAAAA,CACCV,UAAU,cACVoS,MAAO,CAAC,EAAEgqC,EAAU,EAAEN,GAA8B,GAAG,CAAC,WAEvDM,EACAN,EAAe,GAAAh8C,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAU,0BAAgB,IAAE87C,KAAuB,cAMlFviC,EACC,GAAAzZ,EAAAlD,GAAA,EAACuhD,GAAAA,CAAen+C,UAAU,6BACxB69C,EACFK,EACE,OAGV,CAEA,SAASC,GAAe,CACtBn+C,UAAAA,CAAS,CACT,GAAGlC,EAC6E,EAChF,MACE,GAAAgC,EAAAlD,GAAA,EAAC8D,OAAAA,CACCV,UAAWC,IAAG,oDAAqDD,GAClE,GAAGlC,CAAI,EAGd,gDEzJO,IAAMugD,GAAmB,CAAC,CAC/BC,eAAAA,CAAc,CACdC,kBAAAA,CAAiB,CACjBzuB,cAAAA,CAAa,CAKd,IACC,GAAM,CAAE3xB,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,iBAE7B,MACE,GAAA0B,EAAAK,IAAA,EAAC4S,GAAAA,EAAMA,CAAAA,CACLtG,OAAQ6xC,EACRrrC,KAAK,KACLD,UAAW,IAAMurC,EAAkB,IACnCnsC,MAAOjU,EAAE,yBACT2xB,cAAeA,YAEf,GAAAhwB,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,4BACb,GAAAF,EAAAlD,GAAA,EAACwD,MAAAA,UAAKjC,EAAE,+BAEV,GAAA2B,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,+EACb,GAAAF,EAAAlD,GAAA,EAACkW,SAAAA,CACC9S,UAAU,yBACV+M,QAAS,IAAMwxC,EAAkB,IACjCh/C,KAAK,kBAEJpB,EAAE,gCAKb,gBC4EO,IAAMqgD,GAA0B,CACrC,YACA,WACA,OACA,YACA,YACA,iBACA,QACA,WACA,iBACD,CAEYC,GAAsC,IAAID,GAAyB,UAAU,CAe7Epb,GAAwD,CAAC,CACpEiT,uBAAAA,CAAsB,CACtBp6B,gBAAAA,CAAe,CACflO,SAAAA,CAAQ,CACR2wC,IAAAA,CAAG,CACHj1B,cAAAA,CAAa,CACbk1B,gBAAAA,CAAe,CACfplC,UAAWkkC,CAAa,CACxB1iD,SAAAA,CAAQ,CACRqY,QAAAA,CAAO,CACP6a,SAAAA,CAAQ,CACR2wB,oBAAAA,EAAsB,EAAK,CAC3BC,cAAAA,CAAa,CACbC,gBAAAA,EAAkB,EAAK,CACvBC,kBAAAA,CAAiB,CACjBC,eAAAA,CAAc,CACdjY,cAAAA,CAAa,CACb30B,MAAAA,CAAK,CACL9K,iBAAAA,CAAgB,CAChBgvC,4BAAAA,EAA8B,EAAK,CACnC2I,wBAAAA,CAAuB,CACvBjY,+BAAAA,EAAiC,EAAK,CACtCkY,eAAAA,CAAc,CACdC,aAAAA,CAAY,CACZ,GAAGrhD,EACJ,IACC,IAAMy4C,EAAS6I,CAAAA,EAAAA,GAAAA,EAAAA,IACTC,EAAiBhiD,EAAAA,MAAY,CAAwB,MACrDmgD,EAAgBngD,EAAAA,MAAY,CAA2B,MACvD,CACJ,CACEiiD,iBAAAA,CAAgB,CAChBC,eAAAA,CAAc,CACdC,sBAAAA,CAAqB,CACrBC,kBAAAA,CAAiB,CACjBC,sBAAAA,CAAqB,CACtB,CACDC,EACD,CAAGtiD,EAAAA,QAAc,CAAqCuiD,GAAgBP,EAAe1kD,OAAO,GACvF,CAAEwD,EAAAA,CAAC,CAAE28C,MAAAA,CAAK,CAAE,CAAG18C,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,CAAC,WAAY,gBAAgB,EAC3Dmb,EAAY,CAACuhC,GAAS2C,EACtB,CAAC3b,EAAY+d,EAAc,CAAGxiD,EAAAA,QAAc,CAChD,CAAC,CAAC2hD,GAAgBc,mBAAqB,CAACd,GAEpC,CAACV,EAAgBC,EAAkB,CAAGlhD,EAAAA,QAAc,CAAC,IACrD0iD,EAAW,CAAC,CAACf,GAAgBe,UAAYje,EACzC36B,EAAS9J,EAAAA,OAAa,CAAC,IAAMuO,CAAAA,EAAAA,GAAAA,EAAAA,EAAgB7Q,GAAW,CAACA,EAAS,EAClE,CACJilD,mBAAAA,CAAkB,CAClBC,qBAAAA,CAAoB,CACpBC,wBAAAA,CAAuB,CACvBC,oBAAAA,CAAmB,CACnBC,iBAAAA,EAAgB,CACjB,CAAGC,SFxL+B,CACnCl5C,OAAAA,CAAM,CACN8mB,SAAAA,CAAQ,CACR8Y,cAAAA,CAAa,CAGd,EACC,GAAM,CAACuZ,EAAeF,EAAiB,CAAG/iD,EAAAA,QAAc,CAG9C,MACJ,CAAEkjD,eAAAA,CAAc,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAsB,CAAEz7B,UAAW,CAAC,CAACgiB,CAAc,GAGxE0Z,EAAiB,KACrBL,EAAiB,KACnB,EA8BA,MAAO,CACLJ,mBAlCyBM,OAAAA,EAmCzBL,qBA9B2B,KAC3BQ,GACF,EA6BEP,wBA5B8B,KAC9B,IAAM5hD,EAAMgiD,GAAehiD,KAAK4G,QAAQ,CAAC,CAAC,EAAEiC,EAAO,CAAC,CAAC,CAAE,SAA4B,IACnFm5C,CAAAA,GACEryB,IAAW,CACTP,SAAU4yB,EAAc5yB,QAAQ,CAChCpvB,IAAAA,EACA6I,OA7BiB,IA8BnB,GACFs5C,GACF,EAoBEN,oBAlB0B,IAC1B,GAAI7hD,GAAO6I,GAAUA,OAAAA,EACnB,GAAI,CACF,IAAM6C,EAAa,IAAIC,GAAAA,UAAUA,CAACs2C,GAElC,OAAOv2C,GAAYG,IAAI,CAAEpP,SAAUoM,EAAQ7I,IAAAA,CAAI,KAAgB,EACjE,CAAE,MAAO4H,EAAG,CAEV,OADAkG,QAAQC,IAAI,CAAC,yDAA0DnG,GAChE,EACT,CAEF,MAAO,EACT,EAOEk6C,iBAAAA,CACF,CACF,EEmI2B,CAAEj5C,OAAAA,EAAQ8mB,SAAAA,EAAU8Y,cAAAA,CAAc,GAGrD2Z,GAA4BrjD,EAAAA,OAAa,CAC7C,IAAMu7C,GAA+BnvB,GACrC,CAACA,EAAc,EAGX,CAACk3B,GAAsBC,GAAwB,CACnDvjD,EAAAA,QAAc,CAAiBqjD,IAC3BG,GAAe7B,GAAgBn/B,OAAS8gC,GAExCG,GAAe,MAAOz+C,IAC1B,IAAMqrB,EAAW,CACf,GAAGrrB,CAAI,CACPmmC,MAAOnmC,EAAKmmC,KAAK,CAACznC,GAAG,CAAC,GAAW,EAC/B0nC,OAAQ6S,EAAK7S,MAAM,CACnB16B,SAAUutC,EAAKvtC,QAAQ,CAAChN,GAAG,CAAC,GACnB,EAAEy6C,IAAKniC,OAAOD,KAAK,CAACmiC,EAAEC,GAAG,EAAI,KAAOD,EAAEC,GAAG,CAAC,EAErD,GACF,EACAoF,GAAwBlzB,GAExB,IAAMqzB,EAAkBrzB,EAASxU,KAAK,EAAIwU,EAAS6a,OAAO,CACpDyY,EAAetzB,EAASuY,KAAK,CAACiC,SAAS,EAAIoO,EAI7ChI,EAA4B,CAAC,EAEjC,GAJEyS,GAAoBC,CAAAA,GAAgBha,CAAAA,EAKpC,GAAI,KrB3HR5+B,EqBmIM,GAPAkmC,EAAc,OrB5HpBlmC,EqB4HyD,CACjDkY,QAASoN,GAAUxU,MACnBqvB,QAAS7a,GAAU6a,QACnBG,aAAchb,GAAUgb,aACxB3tC,SAAUoM,GAAU,IACtB,ErB9HCkyC,EAAYC,UAAU,CAAqB,CAChD5wC,SAAU,CAACwU,EAAiB9U,EAAU,IqB+H9B,CAACkmC,GAAaluB,SAAW4mB,EAAgC,OAAOuX,EAAkB,GACxF,CAAE,MAAO5rC,EAAO,CAGd,GAFIA,CAAAA,aAAiBsuC,OAAS,iBAAOtuC,CAAU,GAC7Cyd,CAAAA,EAAAA,EAAAA,CAAAA,EAAS,gBAAiBzd,EAAO,gCAC/Bq0B,EACF,OAAOuX,EAAkB,GAE7B,CAGF,GAAItwB,EAAU,CACZ,IAAM3vB,EAAMyoC,EACR,MAAMqP,GAAoB,CACxBC,uBAAAA,EACA3oB,SAAAA,EACAvmB,OAAAA,EACA4/B,cAAAA,EACAuP,4BAAAA,EACAhI,YAAAA,EACAiI,OAAAA,CACF,GACA,KAEJ,GAAI4J,EAAoB7hD,GAAM,CAC5B8hD,GAAiB,CAAE1yB,SAAAA,EAAUpvB,IAAAA,CAAI,GACjC,MACF,CACA2vB,EAAS,CAAEP,SAAAA,EAAUpvB,IAAAA,EAAK6I,OAAAA,CAAO,EACnC,CACF,EAQA,SAAS+5C,KACPrB,EAAc,IACdzsC,MACAoqC,GAAe7iD,SAASiM,OAC1B,CAVAvJ,EAAAA,SAAe,CAAC,KACV,CAACkc,GAAawmC,GAChBJ,EAAgBC,GAAgBP,EAAe1kD,OAAO,EAE1D,EAAG,CAAColD,EAAUxmC,EAAU,EAOxB,IAAM4nC,GACJ,GAAArhD,EAAAlD,GAAA,EAACwkD,EAAAA,EAAaA,CAAAA,UACX,CAAC,CAAEtiC,UAAAA,CAAS,CAAE,IACb,GAAM,CAAEuiC,QAAAA,CAAO,CAAEC,QAAAA,CAAO,CAAE,CAAGxiC,EACvByiC,EACJzC,GAAoBE,CAAAA,GAAkBJ,EAAsByC,GAAWC,EAAUD,CAAAA,EAEnF,MACE,GAAAvhD,EAAAK,IAAA,EAACC,MAAAA,WACC,GAAAN,EAAAlD,GAAA,EAACyhD,GAAgBA,CACfC,eAAgBA,EAChBC,kBAAmBA,IAEpBS,EACC,GAAAl/C,EAAAlD,GAAA,EAACwD,MAAAA,CACCJ,UAAWC,IAAG++C,EAAewC,uBAAuB,CAAE,CACpD,8BAA+BzB,CACjC,YAEA,GAAAjgD,EAAAlD,GAAA,EAAC2gD,GAAeA,CACdv9C,UAAWg/C,EAAeyC,gBAAgB,EAAI,YAC9Cvb,YAAa2a,GAAa5a,KAAK,CAACC,WAAW,CAC3CC,cAAe0a,GAAa5a,KAAK,CAACE,aAAa,CAC/C5sB,UAAWA,EACXxe,SAAUA,EACVkB,SAAU4kD,GAAa3nC,KAAK,CAC5BwkC,YAAa,KACXsB,GAAgBtB,gBACZsB,GAAgBe,WAAa9uC,KAAAA,GAC/B4uC,EAAc,GAElB,EACArX,MAAOqY,GAAarY,KAAK,CACzB8R,cAAe0E,EAAe1E,aAAa,CAC3CqD,YAAaqB,EAAez/C,IAAI,CAChCq+C,gBAAiBoB,EAAepB,eAAe,CAC/C9b,WAAYie,EACZvC,cAAeA,MAGjB,KACH,CAACjkC,GAAawmC,EACb,GAAAjgD,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAWC,IAAG,CAAE,OAAQ++C,CAAe,aACzC,CAAC,CAAC5sC,GACD,GAAAtS,EAAAlD,GAAA,EAAC0D,KAAAA,CAAGN,UAAU,uDAA+CoS,IAE/D,GAAAtS,EAAAK,IAAA,EAACC,MAAAA,CACC7B,IAAK8gD,EACLr/C,UACEsH,GACArH,OAAMu+C,GAAyB,CAC7B,iBACE,CAACe,GACD,CAACC,GACD,CAACC,GACD,CAACC,CACL,aAGDV,CAAAA,GAAmBA,EAAe0C,cAAc,EAAKpC,EAWlD,KAVF,GAAAx/C,EAAAlD,GAAA,EAAC40B,SAAAA,CACCxxB,UAAU,uCACV3B,GAAG,mBACH6B,cAAY,mBACZyxB,SAAU,YAETqtB,WAAAA,EAAez/C,IAAI,CAChBpB,EAAE,qCACFA,EAAE,qCAGT4P,EACD,GAAAjO,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,wEACb,GAAAF,EAAAK,IAAA,EAAC2S,SAAAA,CACCvS,mBAAiB,mBACjBL,cAAY,uBACZ8P,SAAU,CAACuxC,EACV,GAAI1C,GAAiB,CAAE9xC,QAAS,IAAM8xC,EAAc//B,EAAW,CAAC,CACjE9e,UACEic,GACA,yFAEF1c,KAAK,mBAEJm/C,GAAOvgD,EAAE,2BACT4gD,EACC,GAAAj/C,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAW7B,EAAE,qBAC3B,UAGP8gD,EACAD,EACC,GAAAl/C,EAAAlD,GAAA,EAAC+kD,GAAAA,EAAYA,CAAAA,CACX50C,QAASm0C,GACTlhD,UAAU,iEACViT,KAAK,KACLtS,MAAOxC,EAAE,yBAET,WAGN,KACH6hD,EACC,GAAAlgD,EAAAlD,GAAA,EAACuoB,EAAAA,EAASA,CAAAA,CACRC,UAAW,GACXhS,QAAS6sC,EACTn7B,WAAYo7B,IAEZ,OAGV,WAIJ,EAEI,GAAApgD,EAAAlD,GAAA,EAACwkD,EAAAA,EAAaA,CAAAA,UACX,CAAC,CAAEv3B,aAAAA,CAAY,CAAE,GAChB,GAAA/pB,EAAAlD,GAAA,EAACyqB,OAAAA,CAAK2G,OAAO,OAAQ,GAAGlwB,CAAI,CAAEiwB,WAAU,GAACE,SAAUpE,EAAai3B,aAC7DK,OAQT,GAAArhD,EAAAlD,GAAA,EAACglD,EAAAA,EAAIA,CAAAA,CACH3zB,SAAU6yB,GACV3B,aAAc,CACZ,GAAGA,CAAY,CACf11B,cAAei3B,EACjB,EACC,GAAG5iD,CAAI,CACRohD,eAAgBA,WAEfiC,IAGP,EAEA,SAASvB,GAAgBiC,CAAyC,EAChE,MAAO,CACLvC,iBAAkBuC,GAAoB/1C,cAAc,yBACpDyzC,eAAgBsC,GAAoB/1C,cAAc,4CAClD0zC,sBAAuBqC,GAAoB/1C,cACzC,4CAEF2zC,kBAAmBoC,GAAoB/1C,cAAc,uBACrD4zC,sBAAuBmC,GAAoB/1C,cAAc,0BAC3D,CACF,2BIzZO,SAASg2C,GAAiB,CAAE/zC,SAAAA,CAAQ,CAAE,GAAGg0C,EAAmC,EACjF,IAAMrB,EAA4B/0C,CAAAA,EAAAA,EAAAA,OAAAA,EAChC,IAAMitC,GAA+BmJ,EAAUt4B,aAAa,EAC5D,CAACs4B,EAAUt4B,aAAa,CAAC,EAErBu4B,EAAwBC,SHpBO/kD,CAAQ,EAC7C,IAAMqB,EAAMtE,CAAAA,EAAAA,EAAAA,MAAAA,EAAUiD,GAMtB,MAJAxC,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR6D,EAAI5D,OAAO,CAAGuC,CAChB,EAAG,CAACA,EAAM,EAEHqB,EAAI5D,OAAO,EGa6B+lD,GACzCwB,EAAU54B,CAAAA,EAAAA,EAAAA,EAAAA,EAAwB,CACtCC,KAAM,YACNC,aAAc,MACd,GAAGu4B,CAAS,CACZt4B,cAAei3B,CACjB,GACMyB,EAAQD,EAAQC,KAAK,CACrB,CAAE14B,cAAAA,CAAa,CAAE24B,yBAAAA,CAAwB,CAAE,CAAGC,KAiBpD,MAfA3nD,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACH4nD,KAAQ74B,EAAei3B,IAC1B0B,EAAyB1B,GAEtB4B,KAAQN,EAAuBtB,IAClCyB,EAAMzB,EAEV,EAAG,CACDj3B,EACAi3B,EACAyB,EACAH,EACAI,EACD,EAEM,GAAAtiD,EAAAlD,GAAA,EAACkxB,EAAAA,EAAYA,CAAAA,CAAE,GAAGo0B,CAAO,UAAGn0C,GACrC,CAEO,SAASs0C,KACd,IAAMhJ,EAAc+F,CAAAA,EAAAA,GAAAA,EAAAA,IACd12C,EAAW,CAAC,2BAA2B,CACvC,CAAErG,KAAMonB,CAAa,CAAE,CAAGhhB,CAAAA,EAAAA,EAAAA,CAAAA,EAAyB,CAAEC,SAAAA,EAAUG,QAAS,EAAM,GAIpF,MAAO,CACL4gB,cAAAA,EACA24B,yBAL+B,IAC/B/I,EAAYkJ,YAAY,CAAC75C,EAAU+gB,EACrC,CAIA,CACF,CCtDO,IAAMwd,GAET,CAAC,CAAEtmC,MAAAA,CAAK,CAAE5F,SAAAA,CAAQ,CAAEynD,YAAAA,CAAW,CAAE,GAAG1kD,EAAM,IAC5C,GAAM,CAACK,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,gBAC3B,MACE,GAAA0B,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,yCACb,GAAAF,EAAAlD,GAAA,EAACo4C,EAAQA,CACPr0C,MAAOA,GAASxC,EAAE,SAClBpD,SAAUA,EACVynD,YAAaA,GAAerkD,EAAE,eAC9B+K,KAAK,QACJ,GAAGpL,CAAI,IAIhB,6FCRO,IAAM2kD,GAAmB,KAEnBC,GAAyB,CACpCrF,SAAU,SACZ,EAEasF,GAET,CACFx/C,GAAI,CACFm6C,gBAAiB,MACnB,CACF,EAEasF,GAAe,IAC1B,IAAMz8C,EAAM,CAAC,EAAEgB,EAAOpM,QAAQ,CAAC,EAAEoM,EAAO07C,MAAM,CAAG,CAAC,CAAC,EAAE17C,EAAO07C,MAAM,CAACtmD,iBAAiB,GAAG,CAAC,CAAG,GAAG,CAAC,CAC/F,OAAO4J,EAAM28C,EAAkB,CAAC38C,EAAI,CAAG,CACzC,EAwBas2C,GAAU,GACrBt1C,GAAQpM,UAAY,CAAC,KAAM,KAAM,KAAK,CAAC4O,QAAQ,CAACxC,GAAQpM,UAG7CgoD,GAAW,GACtB57C,GAAQpM,UAAY,CAAC,KAAK,CAAC4O,QAAQ,CAACxC,GAAQpM,UAExC+nD,GAAgE,CACpEt/C,GAAI,EACJL,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJI,GAAI,EACJC,GAAI,EACJtF,GAAI,EACJ0F,GAAI,EACJR,GAAI,EACJK,GAAI,EACJC,GAAI,EACJC,GAAI,EACJE,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJX,GAAI,EACJY,GAAI,EACJC,GAAI,EACJC,GAAI,EACJ,UAAW,EACX,UAAW,CACb,ECzDay+C,GAAgB,CAAC,CAC5B77C,OAAAA,CAAM,CACNm/B,OAAAA,EAAS,OAAO,CAChBr7B,SAAAA,EAAW,EAAI,CACD,GACdU,CAAAA,EAAAA,EAAAA,OAAAA,EAAQ,SAOFs3C,EANJ,GAAI,CAAC97C,EACH,MAAO,EAAE,CAEX,IAAMkB,EAAU,CACdq0C,QAASqG,GAAS57C,GAAU,OAASm/B,CACvC,EAKA,GAHe,UAAXA,GAAsBr7B,GACxBg4C,CAAAA,EAAO97C,EAAOi2C,QAAQ,CAAG8F,EAAsB,CAAC/7C,EAAOi2C,QAAQ,CAAC,CAAGnsC,KAAAA,CAAAA,EAEjE,CAACgyC,EAAM,CACT,IAAME,EAAYC,CAAAA,EAAAA,GAAAA,CAAAA,EAAY,IAAInhD,KAAQ,CACxC2gD,aAAcA,GAAaz7C,EAC7B,GACA87C,EAAO,IAAIj3C,MAAM,GAAG,CAACjL,GAAG,CAAC,CAACsiD,EAAGz8B,IAIpBi2B,CAHKzW,EAAAA,GAAAA,CAAAA,EAAQ+c,EAAWv8B,GAGpBq0B,kBAAkB,CAAC9zC,EAAQkB,GAE1C,CACA,OAAO46C,CACT,EAAG,CAAC97C,EAAQm/B,EAAQr7B,EAAS,EAGzBi4C,GAAwD,CAC5D9/C,GAAI,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAM,CACrDC,GAAI,CAAC,MAAO,SAAO,MAAO,MAAO,SAAO,MAAO,MAAM,CACrDe,GAAI,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAM,CACrDE,GAAI,CAAC,UAAW,SAAU,SAAU,MAAO,WAAY,QAAS,QAAQ,2BClDnE,IAAMg/C,GAA+C,CAC1DzG,IAAK,UACLF,MAAO,UACPI,KAAM,UACNL,QAAS,QACT6G,UAAW,OACb,EA2BO,SAASC,GACd7d,CAAiB,CACjBx+B,CAAmB,CACnBs8C,CAA4B,CAC5Bp7C,CAA6B,MAUzBq7C,EACAC,EATJ,IAAMx6C,EAAS,CACb,GAAGu5C,EAAsB,CACzB,GAAGC,EAAc,CAACx7C,EAAOi2C,QAAQ,EAAI,GAAG,CACxC,GAAG/0C,CAAO,EAENu7C,EAAY,IAAIx4B,KAAKy4B,cAAc,CAAC18C,EAAOq/B,QAAQ,GAAIr9B,GACvD26C,EAAQne,GAAQie,EAAUG,aAAa,CAACpe,GAI9C,GAHkBt9B,YAAAA,CAAO,CAACo7C,EAAK,CAGhB,CACbC,EAAUI,GAAO96C,KAAK,CAAC,CAAEzJ,KAAAA,CAAI,CAAE,GAAKA,IAASkkD,IAAOvmD,OAAS,GAC7D,IAAMA,EAAQ4mD,GAAO96C,KAAK,CAAC,CAAEzJ,KAAAA,CAAI,CAAE,GAAKA,YAAAA,IAAqBrC,OAAO8mD,QAAU,GAC9EL,EAAOzmD,EAAMmjB,KAAK,CAAC,UAAY,GAAKnjB,CACtC,MACEwmD,EAAU,GACVC,EAAOG,GAAO96C,KAAK,CAAC,CAAEzJ,KAAAA,CAAI,CAAE,GAAKA,IAASkkD,IAAOvmD,OAAO8mD,QAAU,GAEpE,MAAO,CAAEN,QAAAA,EAASC,KAAAA,CAAK,CACzB,CAeO,IAAMM,GAAgB,CAAC,CAC5Bte,KAAAA,CAAI,CACJx+B,OAAAA,CAAM,CACNkB,QAAAA,EAAUi7C,EAAsB,CACf,IACjB,IAAMn6C,EAASwC,CAAAA,EAAAA,EAAAA,OAAAA,EACb,IAAO,EACL,GAAG23C,EAAsB,CACzB,GAAGj7C,CAAO,CACZ,EACA,CAACA,EAAQ,EAEPo0C,GAAQt1C,IACVgC,CAAAA,EAAOuzC,OAAO,CAAG,QAEnB,IAAMwH,EAAalB,GAAc,CAAE77C,OAAAA,EAAQm/B,OAAQn9B,EAAOuzC,OAAO,GACjE,MAAO/wC,CAAAA,EAAAA,EAAAA,OAAAA,EAAQ,KACb,GAAI,CAACg6B,EACH,MAAO,CACLkX,IAAK,CAAE6G,QAAS,GAAIC,KAAM,EAAG,EAC7BhH,MAAO,CAAE+G,QAAS,GAAIC,KAAM,EAAG,EAC/B5G,KAAM,CAAE2G,QAAS,GAAIC,KAAM,EAAG,EAC9BjH,QAAS,EACX,EAGF,IAAMG,EAAM2G,GAAkB7d,EAAMx+B,EAAQ,MAAO,CAAE01C,IAAK1zC,EAAO0zC,GAAG,GAC9DF,EAAQ6G,GAAkB7d,EAAMx+B,EAAQ,QAAS,CACrDw1C,MAAOxzC,EAAOwzC,KAAK,GAEfI,EAAOyG,GAAkB7d,EAAMx+B,EAAQ,OAAQ,CAAE41C,KAAM5zC,EAAO4zC,IAAI,GAElEoH,EAAWC,CAAAA,EAAAA,GAAAA,CAAAA,EAAOze,GAElB0e,EAAYzB,GAAaz7C,IAAW,EAEpCu1C,EAAUwH,EAAWp9C,EAAE,CADfq9C,EAAWE,IACe,GAGxC,GAAI1H,KAAAA,EAAMgH,IAAI,CAACK,IAAI,KACjBrH,EAAMgH,IAAI,CAAGH,GAAkB7d,EAAMx+B,EAAQ,QAAS,CACpDw1C,MAAOxzC,EAAOo6C,SAAS,GACtBI,IAAI,CAGHx8C,OAAAA,EAAOi2C,QAAQ,EAAW,CAC5B,IAAMkH,EAAc,CAClB,GAAGn7C,CAAM,CACJwzC,MAAOxzC,EAAOo6C,SAAS,CAAE7G,QAAS,MACzC,CACAC,CAAAA,EAAMgH,IAAI,CAAGH,GAAkB7d,EAAMx+B,EAAQ,QAASm9C,GAAaX,IAAI,CAQ3E,MAJI,CAAC,KAAM,KAAK,CAACh6C,QAAQ,CAACxC,EAAOi2C,QAAQ,GACvCT,CAAAA,EAAMgH,IAAI,CAAGY,KAAW5H,EAAMgH,IAAI,GAG7B,CACL9G,IAAAA,EACAF,MAAAA,EACAI,KAAAA,EACAL,QAAAA,CACF,CACF,EAAG,CAACvzC,EAAQw8B,EAAMue,EAAY/8C,EAAO,CACvC,EC3IawzC,GAAY,CAAC,CACxB5/C,SAAAA,EAAW0nD,EAAgB,CAC3Bp6C,QAAAA,EAAUq6C,EAAsB,CACtB,GACV/2C,CAAAA,EAAAA,EAAAA,OAAAA,EACE,IACE,IAAIyf,KAAKwvB,MAAM,CAAC7/C,EAAU,CACxB,GAAG2nD,EAAsB,CACzB,GAAGC,EAAc,CAAC5nD,EAAS,CAC3B,GAAGsN,CAAO,GAEd,CAACtN,EAAUsN,EAAQ,EGuGvB,IAAAm8C,GAjHwF,CAAC,CACvFxkD,UAAAA,CAAS,CACT+N,SAAAA,CAAQ,CACR8uC,IAAAA,CAAG,CACH4H,sBAAAA,EAAwB,cAAc,CACtC1pD,SAAAA,CAAQ,CACR2pD,cAAAA,CAAa,CACd,IACC,IAAMv9C,EAASwzC,GAAU,CAAE5/C,SAAAA,CAAS,GAC9ByhD,EAAQC,GAAQt1C,GAEhBw9C,EAAkBV,GAAc,CAAEte,KAAMkX,EAAK11C,OAAAA,EAAQkB,QAD3Cm0C,EAAQ,CAAEE,QAAS,MAAgD,EAAI,CAAC,CACrB,GAC7D1+C,EAAWC,CAAAA,EAAAA,EAAAA,EAAAA,IAEX2mD,EAAqB,CACzB,UAAWF,EACX,YAAa,CAACA,CAChB,SAEA,EAaK1mD,EAQEw+C,EACL,GAAA18C,EAAAK,IAAA,EAACO,OAAAA,CACCmM,cAAW,GACX7M,UAAWC,IACT,mFACAD,aAGF,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,kCACd,GAAAF,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAWC,IAAG,4CAA6C2kD,aAC9DD,EAAgBhI,KAAK,CAAC+G,OAAO,CAC7BiB,EAAgBhI,KAAK,CAACgH,IAAI,MAG/B,GAAA7jD,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAU,mCACd,GAAAF,EAAAK,IAAA,EAACO,OAAAA,CACCV,UAAWC,IAAG,2CAA4CwkD,EAAuB,CAC/E,mCAAoCC,EACpC,mCAAoC,CAACA,CACvC,aAECC,EAAgB9H,GAAG,CAAC6G,OAAO,CAC5B,GAAA5jD,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,kCAA0B2kD,EAAgB9H,GAAG,CAAC8G,IAAI,MAEpE,GAAA7jD,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAWC,IAAG,4CAA6C2kD,YAC9DD,EAAgBjI,OAAO,SAK9B,GAAA58C,EAAAK,IAAA,EAACO,OAAAA,CACCmM,cAAW,GACX7M,UAAWC,IACT,6EACAD,EACA,CACE,MAAO0kD,EACP,OAAQ,CAACA,CACX,aAGF,GAAA5kD,EAAAlD,GAAA,EAAC8D,OAAAA,CACCV,UAAWC,IACT,qJACAwkD,EACA,CACE,WAAYC,EACZ,WAAY,CAACA,CACf,YAGDC,EAAgB9H,GAAG,CAAC6G,OAAO,GAE9B,GAAA5jD,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAU,0BACd,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,CACCV,UAAWC,IACT,wHACA2kD,YAGDD,EAAgBhI,KAAK,CAACgH,IAAI,GAE7B,GAAA7jD,EAAAlD,GAAA,EAAC8D,OAAAA,CACCV,UAAWC,IAAG,qDAAsD2kD,YAEnED,EAAgBjI,OAAO,SAvE5B,GAAA58C,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,2GACd,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAWC,IAAG,yBAA0Bu8C,EAAQ,OAAS,YAdjE,GAAA18C,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAU,4GACd,GAAAF,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,WAAW+J,KAAK,KAAKrB,QAAQ,QAAQ5R,UAAU,iBACzD+N,EACC,GAAAjO,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKH,mBAAiB,sBAAsBP,UAAU,sCACpD+N,IAED,OAmFZ,wHCpGA,IAAM82C,GAAcxnD,EAAAA,UAAgB,CAClC,CAAC,CAAE2C,UAAAA,CAAS,CAAE8kD,QAAAA,CAAO,CAAEC,QAAAA,CAAO,CAAE5gC,SAAAA,CAAQ,CAAE6gC,YAAAA,CAAW,CAAE,GAAGlnD,EAAM,CAAEC,IAChE,GAAA+B,EAAAlD,GAAA,EAACkW,SAAAA,CACC9S,UAAWC,IACT,wNACA,oHACA,CACE,sBAAuB,CAACkkB,GAAY2gC,EACpC,YAAa,CAAC3gC,GAAY,CAAC2gC,GAAWC,EACtC,+HACE5gC,EACF,YAAa4gC,EACb,sBAAuBC,EACvBhlD,UAAAA,CACF,GAED,GAAGlC,CAAI,CACRyB,KAAK,SACLhB,IAAKR,IAKX8mD,CAAAA,GAAY1iD,WAAW,CAAG,cCyB1B,IAAM8iD,GAAS,aAKTC,GAAgB7nD,EAAAA,UAAgB,CACpC,CACE,CACEw/C,IAAAA,CAAG,CACHsI,OAAAA,CAAM,CACNC,QAAAA,EAAU,GAAG,CACbC,cAAAA,CAAa,CACb1I,MAAO2I,CAAW,CAClBC,YAAAA,CAAW,CACXp+C,OAAAA,CAAM,CACNnH,UAAAA,CAAS,CACTwlD,mBAAAA,CAAkB,CAClBC,eAAAA,CAAc,CACdC,SAAAA,CAAQ,CACRC,MAAAA,EAAQ,IAAI1jD,IAAM,CAClB2jD,iBAAkBC,EAAyB,EAAE,CAC7CC,aAAcC,EAAqB,EAAE,CACtC,CACDhoD,KAEA,IAAM4+C,EAAQ2I,GAAeU,CAAAA,EAAAA,GAAAA,CAAAA,EAAaL,GAEpCM,EAAe,IACnB,IAAMC,EAAShjC,aAAajhB,KACtBkkD,EAAaD,EAAS,CAAC,GAAI,GAAI,GAAG,CAAGhjC,EAAEve,KAAK,CAAC,KAC7CghC,EAAaugB,EACfhjC,EACA,IAAIjhB,KACFgzB,SAASkxB,CAAU,CAAC,EAAE,EAAI,GAAI,IAC9BlxB,SAASkxB,CAAU,CAAC,EAAE,EAAI,GAAI,IAAM,EACpClxB,SAASkxB,CAAU,CAAC,EAAE,EAAI,GAAI,KAEpC,MAAO7f,CAAAA,EAAAA,GAAAA,EAAAA,EAAOX,EAAMsf,GACtB,EAEMW,EAAmBvoD,EAAAA,OAAa,CACpC,IAAMwoD,EAAuB9kD,GAAG,CAACklD,GACjC,CAACJ,EAAuB,EAGpBC,EAAezoD,EAAAA,OAAa,CAChC,IAAM0oD,EAAmBhlD,GAAG,CAACklD,GAC7B,CAACF,EAAmB,EAGhBK,EAAkB/oD,EAAAA,OAAa,CACnC,IAAMgpD,CR3FL,SAA6B,CAClC1gB,KAAAA,CAAI,CACJx+B,OAAAA,CAAM,CAIP,EACC,IAAMm/C,EAAWC,CAAAA,EAAAA,GAAAA,CAAAA,EACf5gB,EACAyd,CAAAA,EAAAA,GAAAA,CAAAA,EAAYzd,EAAM,CAAEid,aAAcA,GAAaz7C,EAAQ,IAEnD87C,EAAOuD,CAAAA,EAAAA,GAAAA,CAAAA,EAAkB,CAC7BxhB,MAAOyhB,CAAAA,EAAAA,GAAAA,CAAAA,EAAQ9gB,EAAM2gB,GACrBphB,IAAKkB,CAAAA,EAAAA,GAAAA,CAAAA,EAAQsgB,CAAAA,EAAAA,GAAAA,CAAAA,EAAW/gB,GAAOghB,GAAqBvC,CAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAOze,GAAQihB,CAAAA,EAAAA,GAAAA,CAAAA,EAAejhB,EAAAA,EACpF,GACMkhB,EAAc,EAAE,CACtB,KAAO5D,EAAKtkD,MAAM,CAAG,GACnBkoD,EAAErqD,IAAI,CAACymD,EAAK6D,MAAM,CAAC,EAAG,IAExB,OAAOD,CACT,GQuEgC,CAAElhB,KAAMgX,EAAOx1C,OAAAA,CAAO,GAChD,CAACw1C,EAAOx1C,EAAO,EAEX4/C,EAAO/D,GAAc,CAAE77C,OAAAA,CAAO,GAC9B6/C,EAAgB/C,GAAc,CAClCte,KAAMgX,EACNx1C,OAAAA,EACAkB,QAAS,CAAEk7C,UAAW,MAAO,CAC/B,GACM/xB,EAASirB,GAAQt1C,GACnB,CAAC,EAAE6/C,EAAcjK,IAAI,CAAC2G,OAAO,CAAC,EAAEsD,EAAcjK,IAAI,CAAC4G,IAAI,CAAC,CAAC,EAAEqD,EAAcrK,KAAK,CAAC+G,OAAO,CAAC,EAAEsD,EAAcrK,KAAK,CAACgH,IAAI,CAAC,CAAC,CACnH,CAAC,EAAEqD,EAAcrK,KAAK,CAACgH,IAAI,CAAC,CAAC,EAAEqD,EAAcjK,IAAI,CAAC2G,OAAO,CAAC,CAAC,CACzDrlD,EAAKhB,EAAAA,KAAW,GAChB4pD,EAAU,CAAC,eAAe,EAAE5oD,EAAG,CAAC,CAEtC,MACE,GAAAyB,EAAAK,IAAA,EAACC,MAAAA,CAAI7B,IAAKR,EAAciC,UAAWC,IAAG,+BAAgCD,aACpE,GAAAF,EAAAlD,GAAA,EAAC0D,KAAAA,CACCN,UAAU,gDACV3B,GAAI4oD,EACJ/mD,cAAY,wBACZ6c,YAAU,kBAETyU,IAEH,GAAA1xB,EAAAK,IAAA,EAAC+mD,QAAAA,CAAMpwC,KAAK,OAAO9W,UAAU,SAAS+5B,kBAAiBktB,YACrD,GAAAnnD,EAAAlD,GAAA,EAACuqD,QAAAA,UACC,GAAArnD,EAAAlD,GAAA,EAAC2H,KAAAA,UACEwiD,EAAKhmD,GAAG,CAAC,GACR,GAAAjB,EAAAlD,GAAA,EAAC0H,KAAAA,CAAG8iD,MAAM,MAAoBpnD,UAAU,yCACtC,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKmM,cAAW,YAAE6vC,KADAA,QAM3B,GAAA58C,EAAAlD,GAAA,EAACyqD,QAAAA,UACEjB,EAAMrlD,GAAG,CAAC,CAAC8lD,EAAGjgC,IACb,GAAA9mB,EAAAlD,GAAA,EAAC2H,KAAAA,UACEsiD,EAAE9lD,GAAG,CAAC,IACL,GAAImiB,EAAG,CACL,IAAMiB,EAAW04B,GAAQyK,CAAAA,EAAAA,GAAAA,CAAAA,EAAUpkC,EAAG25B,IAAUsI,GAAUmC,CAAAA,EAAAA,GAAAA,CAAAA,EAAUpkC,EAAGiiC,GACjEoC,EACJpjC,GAAYmjC,CAAAA,EAAAA,GAAAA,CAAAA,EAAUpkC,EAAGyiC,IAAWF,GAAkB+B,CAAAA,EAAAA,GAAAA,CAAAA,EAAkBtkC,GACpElT,EAAW81C,EAAannD,MAAM,CAChC,CAACmnD,EAAan8C,QAAQ,CAAC28B,CAAAA,EAAAA,GAAAA,EAAAA,EAAOpjB,EAAG+hC,KACjCI,CAAAA,GAEAoC,CAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAASvkC,EAAG41B,CAAAA,EAAAA,EAAAA,CAAAA,EAAW6M,KAAW+B,CAAAA,EAAAA,GAAAA,CAAAA,EAAQxkC,EAAGkjB,CAAAA,EAAAA,GAAAA,CAAAA,EAAQuf,EAAOP,GAAAA,EAC1DN,EACJjI,EAAAA,KAAOsI,GAASwC,CAAAA,EAAAA,GAAAA,CAAAA,EAAiBzkC,EAAG,CAAE8hB,MAAO6X,EAAK3X,IAAKigB,CAAO,GAC1DH,EAAcY,EAAiBj8C,QAAQ,CAAC28B,CAAAA,EAAAA,GAAAA,EAAAA,EAAOpjB,EAAG+hC,KAElD2C,EAAY,IAAMrC,EAAYriC,GAyCpC,MACE,GAAApjB,EAAAlD,GAAA,EAACirD,KAAAA,CAAqB7nD,UAAU,eAC7B8nD,CAAAA,EAAAA,GAAAA,CAAAA,EAAY5kC,EAAGy5B,GACd,GAAA78C,EAAAK,IAAA,EAAC0kD,GAAWA,CACVxmD,GAAI,CAAC,IAAI,EAAE6kB,EAAEgsB,OAAO,GAAG,CAAC,CACxBl/B,SAAUA,EACVmU,SAAUA,EACV2gC,QAASA,EACTE,YAAaA,EACbD,QAASuC,CAAAA,EAAAA,GAAAA,CAAAA,EAAUpkC,EAAGyiC,GACtB93C,UAlDU,IAChB,IAAIk6C,EAAO,GACX,OAAQ7hD,EAAEC,GAAG,EACX,IAAK,IACL,IAAK,QACHyhD,IACAG,EAAO,GACP,KACF,KAAK,aACHvC,EAAmBtiC,EAAEgsB,OAAO,GAAI9I,CAAAA,EAAAA,GAAAA,CAAAA,EAAQljB,EAAG,GAAGgsB,OAAO,IACrD,KACF,KAAK,YACHsW,EAAmBtiC,EAAEgsB,OAAO,GAAIuX,CAAAA,EAAAA,GAAAA,CAAAA,EAAQvjC,EAAG,GAAGgsB,OAAO,IACrD6Y,EAAO,GACP,KACF,KAAK,YACHvC,EAAmBtiC,EAAEgsB,OAAO,GAAI9I,CAAAA,EAAAA,GAAAA,CAAAA,EAAQljB,EAAG,GAAGgsB,OAAO,IACrD6Y,EAAO,GACP,KACF,KAAK,UACHvC,EAAmBtiC,EAAEgsB,OAAO,GAAIuX,CAAAA,EAAAA,GAAAA,CAAAA,EAAQvjC,EAAG,GAAGgsB,OAAO,IACrD6Y,EAAO,GACP,KACF,KAAK,OACHvC,EAAmBtiC,EAAEgsB,OAAO,GAAIkU,CAAAA,EAAAA,GAAAA,CAAAA,EAAYlgC,GAAGgsB,OAAO,IACtD6Y,EAAO,GACP,KACF,KAAK,MACHvC,EAAmBtiC,EAAEgsB,OAAO,GAAI8Y,CAAAA,EAAAA,GAAAA,CAAAA,EAAc9kC,GAAGgsB,OAAO,IACxD6Y,EAAO,EAIX,CACIA,IACF7hD,EAAE+hD,eAAe,GACjB/hD,EAAEK,cAAc,GAEpB,EAaQwG,QAAS,IACHm7C,EAAIC,OAAO,EAAID,EAAIE,OAAO,EAC5BR,GAEJ,EACA5tB,QAAS,IAAMwrB,EAAmBtiC,EAAEgsB,OAAO,IAC3Cvd,SAAU41B,EAAO,EAAI,aAErB,GAAAznD,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAW0lD,EAAWA,EAASxiC,GAAK,KACpD,GAAApjB,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKmM,cAAW,YACdqW,EAAE+3B,kBAAkB,CAACwH,GAAkB,CACtC5F,IAAK,SACP,QAGF,MAzBG35B,EAAEgsB,OAAO,GA4BtB,CACA,OAAO,IACT,IAvFO2X,CAAC,CAAC,EAAE,EAAE3X,WAAatoB,WA8FxC,EAGFs+B,CAAAA,GAAc/iD,WAAW,CAAG,+BC/O5B,IAAMkmD,GAAe,aAsDRC,GAAwD,CAAC,CACpEC,aAAAA,CAAY,CACZlD,cAAAA,CAAa,CACbt3C,SAAAA,CAAQ,CACR5G,OAAAA,CAAM,CACN01C,IAAAA,CAAG,CACHsI,OAAAA,CAAM,CACNC,QAAAA,CAAO,CACPG,YAAAA,CAAW,CACXiD,eAAAA,CAAc,CACd9C,SAAAA,CAAQ,CACR+C,aAAAA,CAAY,CACZloC,QAAAA,CAAO,CACPmoC,OAAAA,CAAM,CACNC,MAAAA,CAAK,CACLC,SAAAA,CAAQ,CACRhD,iBAAAA,CAAgB,CAChBE,aAAAA,CAAY,CACZH,MAAAA,EAAQ,IAAI1jD,IAAM,CAClB4mD,2BAAAA,CAA0B,CAC1B,GAAG/qD,EACJ,IACC,IAAMS,EAAMlB,EAAAA,MAAY,CAAiB,MACnCyrD,EAAYzrD,EAAAA,MAAY,CAAiB,MACzC0rD,EAAY1rD,EAAAA,MAAY,CAAiB,MACzC,CAAC2rD,EAAYC,EAAc,CAAG5rD,EAAAA,QAAc,GAC5C6rD,EAAmB7rD,EAAAA,MAAY,CAAoB,MACnD8rD,EAAe9rD,EAAAA,MAAY,CAAoB,MAC/C,CAACs/C,EAAOyM,EAAS,CAAG/rD,EAAAA,QAAc,CAAC2oD,CAAAA,EAAAA,GAAAA,CAAAA,EAAanJ,GAAO8I,IACvD,CAACxnD,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,gBACrBirD,EAAUxM,EAAMzW,CAAAA,EAAAA,GAAAA,CAAAA,EAAQyW,EAAK,GAAKA,EAClCloB,EAAe0wB,CAAAA,GAAwByC,CAAAA,EAAAA,GAAAA,CAAAA,EAAYnL,EAAOgJ,GAC1D2D,EAAkBjsD,EAAAA,MAAY,CAACw/C,GAAO8I,GAEtC4D,EAAc,IACdf,GAAkBtlC,EAChB25B,GAAO,CAACsI,EACNoD,EAIEjB,CAAAA,EAAAA,GAAAA,CAAAA,EAAUpkC,EAAG25B,IAAQ6K,CAAAA,EAAAA,GAAAA,CAAAA,EAAQxkC,EAAG25B,GAClC2L,EAAetlC,GACNukC,CAAAA,EAAAA,GAAAA,CAAAA,EAASvkC,EAAG25B,IACrB0I,EAAYriC,GAOVwkC,CAAAA,EAAAA,GAAAA,CAAAA,EAAQxkC,EAAG25B,GACb2L,EAAetlC,GACNukC,CAAAA,EAAAA,GAAAA,CAAAA,EAASvkC,EAAG25B,IACrB0I,EAAYriC,IAIhBqiC,EAAYriC,GACZslC,EAAev3C,KAAAA,IAGjBs0C,EAAYriC,GAEV2lC,GAA8B3lC,GAChComC,CAAAA,EAAgB3uD,OAAO,CAAGuoB,CAAAA,EAE5BlW,CAAAA,EAAAA,GAAAA,EAAAA,EAAW,oCACb,EAEMw8C,EAAc,IAClB,GAAI9D,EAAU,CACZ,IAAI8C,IAAkBtlC,IAChB25B,GAAQsI,EAoBZ,OAAOO,EAASxiC,EAAG,IAnBjB,GAAIqlC,EAAc,CAChB,GAAIjB,CAAAA,EAAAA,GAAAA,CAAAA,EAAUpkC,EAAG25B,IAAQ6K,CAAAA,EAAAA,GAAAA,CAAAA,EAAQxkC,EAAG25B,GAClC,OAAO6I,EAASxiC,EAAG,IAErB,GAAIukC,CAAAA,EAAAA,GAAAA,CAAAA,EAASvkC,EAAG25B,GACd,OAAO6I,EAASxiC,EAAG,GAEvB,KAAO,CACL,GAAIwkC,CAAAA,EAAAA,GAAAA,CAAAA,EAAQxkC,EAAG25B,GACb,OAAO6I,EAASxiC,EAAG,IAErB,GAAIukC,CAAAA,EAAAA,GAAAA,CAAAA,EAASvkC,EAAG25B,GACd,OAAO6I,EAASxiC,EAAG,GAEvB,CAOJ,OAAOwiC,EAASxiC,EAClB,CAGA,OAAOA,EAAE+3B,kBAAkB,CAAC9zC,EAAQ,CAAE+zC,UAAW,MAAO,EAC1D,EAEMuO,EAAgB,IACpBL,EAASlmC,EACX,EAEMsiC,EAAqB,CAACtiC,EAAWwmC,EAAeC,KACpD,GAAID,EAAM,CACRT,EAAcS,GACd,IAAME,EAAeD,IAAAA,EAAoBhN,EAAQkN,CAAAA,EAAAA,GAAAA,CAAAA,EAAUlN,EAAO,GAClE,GAAI,CAACmL,CAAAA,EAAAA,GAAAA,CAAAA,EAAY8B,EAAcF,GAAO,CACpC,GAAIA,EAAOxmC,EAAG,CACZ,GAAIymC,IAAAA,GAAuBZ,EAAUpuD,OAAO,EAAEmvD,aAAc,OAC5DL,EAAcI,CAAAA,EAAAA,GAAAA,CAAAA,EAAUlN,EAAO,GACjC,CACI+M,EAAOxmC,GAAKymC,IAAAA,GACdF,EAAcM,CAAAA,EAAAA,GAAAA,CAAAA,EAAUpN,EAAO,GAEnC,CACF,CACF,EAaA,OAXAt/C,EAAAA,SAAe,CAAC,KACVkB,EAAI5D,OAAO,EACbqvD,sBAAsB,KACpB,IAAMnjD,EAAUtI,EAAI5D,OAAO,EAAEmR,cAAiC,CAAC,KAAK,EAAEk9C,EAAW,CAAC,EAC9EniD,GACFA,EAAQD,KAAK,EAEjB,EAEJ,EAAG,CAACoiD,EAAYzqD,EAAI,EAGlB,GAAAuB,EAAAK,IAAA,EAACC,MAAAA,CAAI7B,IAAKA,EAAKyB,UAAU,mBAAmBE,cAAY,+BACrD,CAAC,CAAC28C,GACD,GAAA/8C,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAACmd,QAAAA,CACCxa,KAAK,SACL2J,KAAMy/C,EACNtqD,GAAI,CAAC,EAAEqqD,EAAO,CAAC,EAAEC,EAAM,CAAC,CACxBzrD,MAAO2/C,GAAOvW,CAAAA,EAAAA,GAAAA,EAAAA,EAAOuW,EAAKwL,MAE5B,GAAAvoD,EAAAlD,GAAA,EAACmd,QAAAA,CACCxa,KAAK,SACL2J,KAAM0/C,EACNvqD,GAAI,CAAC,EAAEqqD,EAAO,CAAC,EAAEE,EAAS,CAAC,CAC3B1rD,MACEioD,EAAS7e,CAAAA,EAAAA,GAAAA,EAAAA,EAAO6e,EAAQkD,IAAgBxL,GAAOvW,CAAAA,EAAAA,GAAAA,EAAAA,EAAOF,CAAAA,EAAAA,GAAAA,CAAAA,EAAQyW,EAAK,GAAIwL,SAK9EQ,EACC,GAAA/oD,EAAAlD,GAAA,EAACisD,EAAAA,CACCoB,qBAAsBX,EAAgB3uD,OAAO,CAC7CuvD,cAAeT,IAEf,KACJ,GAAA3pD,EAAAK,IAAA,EAACC,MAAAA,CACCJ,UAAWC,IAAG,uBAAwB,CACpCiQ,OAAQ,CAAC,CAAC24C,CACZ,aAEA,GAAA/oD,EAAAlD,GAAA,EAACk4B,GAAAA,EAAWA,CAAAA,CACV/nB,QAAS,IAAM08C,EAAcM,CAAAA,EAAAA,GAAAA,CAAAA,EAAUpN,EAAO,IAC9Cp+C,IAAK2qD,EACLl5C,SAAU2kB,EACVh0B,MAAOxC,EAAE,mBAEX,GAAA2B,EAAAlD,GAAA,EAACw4B,GAAAA,EAAWA,CAAAA,CACVroB,QAAS,IAAM08C,EAAcI,CAAAA,EAAAA,GAAAA,CAAAA,EAAUlN,EAAO,IAC9Cp+C,IAAK4qD,EACLxoD,MAAOxC,EAAE,kBAKb,GAAA2B,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,YAAY8W,KAAK,cAAczV,aAAYonD,EAAe,GAAG3qD,CAAI,WAC9E,GAAAgC,EAAAlD,GAAA,EAACwD,MAAAA,CAAI2c,YAAU,SAAS/c,UAAU,mBAC/BugB,IAEH,GAAAzgB,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,sCACb,GAAAF,EAAAlD,GAAA,EAACsoD,GAAaA,CACZ3mD,IAAKuqD,EACLvD,YAAagE,EACbpiD,OAAQA,EACR01C,IAAKA,EACLsI,OAAQA,GAAUkE,EAClB1M,MAAOA,EACPyI,QAASA,EACT4D,WAAYA,EACZxD,mBAAoB,CAACtiC,EAAGwmC,IAASlE,EAAmBtiC,EAAGwmC,EAAM,GAC7DjE,eAAc,GACdC,SAAU8D,EACVnE,cAAeA,EACfM,MAAOA,EACPC,iBAAkBA,EAClBE,aAAcA,IAEhB,GAAAhmD,EAAAlD,GAAA,EAACsoD,GAAaA,CACZ3mD,IAAKwqD,EACLxD,YAAagE,EACbpiD,OAAQA,EACR01C,IAAKA,EACLsI,OAAQA,GAAUkE,EAClBjE,QAASA,EACTzI,MAAOkN,CAAAA,EAAAA,GAAAA,CAAAA,EAAUlN,EAAO,GACxB38C,UAAU,kBACVgpD,WAAYA,EACZxD,mBAAoB,CAACtiC,EAAGwmC,IAASlE,EAAmBtiC,EAAGwmC,EAAM,GAC7DhE,SAAU8D,EACVnE,cAAeA,EACfM,MAAOA,EACPC,iBAAkBA,EAClBE,aAAcA,IAEf/3C,UAKX,EEvQao8C,GAAqB,CAAC,CACjC9E,cAAAA,CAAa,CACbkD,aAAAA,CAAY,CACZ1L,IAAAA,CAAG,CACHuN,aAAAA,CAAY,CACZ1E,SAAAA,CAAQ,CACR2E,SAAAA,CAAQ,CACRlF,OAAAA,CAAM,CACNmF,gBAAAA,CAAe,CACfxE,aAAAA,CAAY,CACZ/qD,SAAAA,CAAQ,CACRqqD,QAAAA,CAAO,CACPyD,2BAAAA,CAA0B,CACF,IACxB,GAAM,CAAE1qD,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,mBACvB,CAACmiB,EAASgqC,EAAW,CAAGnwD,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACjC,CAAEwkB,SAAAA,CAAQ,CAAE,CAAGM,CAAAA,EAAAA,EAAAA,EAAAA,IACf/X,EAASwzC,GAAU,CAAE5/C,SAAAA,CAAS,GA2BpC,MACE,GAAA+E,EAAAlD,GAAA,EAAC0rD,GAAQA,CACPI,OAAO,uBACPC,MAAM,cACNC,SAAS,gBACTvD,cAAeA,EACfkD,aAAcA,EACdnD,QAASA,EACTj+C,OAAQA,EACR01C,IAAKA,EACLsI,OAAQA,EACRI,YArCgB,IACdriC,IACFtE,EAASwrC,EAAclnC,EAAG,CAAEsnC,YAAa,GAAMC,eAAgB,EAAK,GAEpE7rC,EAAS0rC,EADaD,EAAWnnC,EAAIiiC,GAAUsC,CAAAA,EAAAA,GAAAA,CAAAA,EAAStC,EAAQjiC,GAAKkjB,CAAAA,EAAAA,GAAAA,CAAAA,EAAQljB,EAAG,GAAKiiC,EAC5C,CAAEqF,YAAa,GAAMC,eAAgB,EAAK,GACnFF,EACEpsD,EAAEksD,EAAW,wBAA0B,sBAAuB,CAC5DK,SAAUxnC,EAAE+3B,kBAAkB,CAAC9zC,EAAQ,CAAE+zC,UAAW,MAAO,EAC7D,IAGN,EA2BIsN,eA1BmB,IACrB5pC,EAAS0rC,EAAiBpnC,EAAG,CAAEsnC,YAAa,GAAMC,eAAgB,EAAK,GACnEvnC,GACFqnC,EACEpsD,EAAE,yBAA0B,CAC1BusD,SAAU7N,GAAK5B,mBAAmB9zC,EAAQ,CACxC+zC,UAAW,MACb,GACAyP,OAAQznC,EAAE+3B,kBAAkB,CAAC9zC,EAAQ,CAAE+zC,UAAW,MAAO,EAC3D,GAGN,EAeIuN,aAActqD,EAAE,gBAChBoiB,QAASA,EACTulC,aAAcA,EACdJ,SAAUA,EACVmD,2BAA4BA,GAGlC,4BCxCO,IAAM+B,GAAa,CAAC,CACzBC,qBAAAA,CAAoB,CACpBhC,2BAAAA,CAA0B,CAC1BxD,cAAAA,CAAa,CACbkD,aAAAA,EAAe,EAAI,CACnBuC,qBAAAA,EAAuB,EAAK,CAC5BT,SAAAA,EAAW,EAAK,CAChBU,oBAAAA,EAAsB,OAAO,CAC7BC,cAAAA,CAAa,CACb5jD,aAAAA,CAAY,CACZrM,SAAAA,CAAQ,CACRqqD,QAAAA,EAAU,GAAG,CACb6F,kBAAAA,EAAoB,EAAI,CACxBnF,aAAAA,EAAe,EAAE,CACjB/3C,SAAAA,CAAQ,CACR8Z,UAAAA,CAAS,CACTqjC,gBAAAA,CAAe,CACflvC,OAAAA,CAAM,CACNhJ,UAAAA,CAAS,CACTm4C,aAAAA,CAAY,CACZ1+C,OAAQ2+C,CAAQ,CAEhBC,eAAAA,CAAc,CACE,IAChB,GAAM,CAAEltD,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,mBACvB+I,EAASwzC,GAAU,CAAE5/C,SAAAA,CAAS,GAC9B,CAACuwD,EAAMC,EAAQ,CAAGluD,EAAAA,QAAc,CAAC+tD,GACjC/7B,EAAYhyB,EAAAA,MAAY,CAAoB,MAC5C,CAAEuhB,SAAAA,CAAQ,CAAEujC,MAAAA,CAAK,CAAEqJ,UAAAA,CAAS,CAAE,CAAGtsC,CAAAA,EAAAA,EAAAA,EAAAA,IAEjCkrC,EAAe,CAAC,EAAEW,EAAoB,YAAY,CAAC,CACnDT,EAAkB,CAAC,EAAES,EAAoB,cAAc,CAAC,CAExDlO,EAAMvK,CAAAA,EAAAA,EAAAA,EAAAA,EAAS,CAAEppC,KAAMkhD,CAAa,GACpCjF,EAAS7S,CAAAA,EAAAA,EAAAA,EAAAA,EAAS,CAAEppC,KAAMohD,CAAgB,GAE1C,CAACzR,EAAe4S,EAAiB,CAAGpuD,EAAAA,QAAc,CAI9C,MAEJquD,EAAiB,CAACT,GAAqB,CAAEpO,CAAAA,GAAOsI,CAAAA,EACtD9nD,EAAAA,SAAe,CAAC,KACd,GAAI,CAACw/C,GAAOoO,EAAmB,CAC7B,IAAMU,EAAa7S,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAI72C,MAC5B2pD,EAAgBvB,EAAWsB,EAAavlB,CAAAA,EAAAA,GAAAA,CAAAA,EAAQulB,EAAY,GAElE/sC,EAASwrC,EAAcuB,EAAY,CAAEnB,YAAa,EAAK,GACvD5rC,EAAS0rC,EAAiBsB,EAAe,CAAEpB,YAAa,EAAK,EAC/D,CACF,EAAG,CAAC3N,EAAKuN,EAAcC,EAAUC,EAAiB1rC,EAAUqsC,EAAkB,EAE9E,IAAMvF,EAAW7I,EAAMA,EAAI5B,kBAAkB,CAAC9zC,EAAQ,CAAE+zC,UAAW,MAAO,GAAK,GACzE2Q,EAAcxB,EAChB3E,EACAP,EACAA,EAAOlK,kBAAkB,CAAC9zC,EAAQ,CAAE+zC,UAAW,MAAO,GACtD,GAEEmO,EAAUxM,EAAMzW,CAAAA,EAAAA,GAAAA,CAAAA,EAAQyW,EAAK,GAAKA,EAElCiP,EAAY7H,GAAc,CAAEte,KAAMkX,EAAK11C,OAAAA,CAAO,GAC9C4kD,EAAe9H,GAAc,CAAEte,KAAMwf,EAAQh+C,OAAAA,CAAO,GAQpD6kD,EAAiC,KACrCT,EAAQ,IACRpJ,EAAM,CAAE,GAAGqJ,GAAW,CAAEvlB,MAAO,CAAE,GAAG4S,CAAa,CAAG,EAAG,CAAEoT,kBAAmB,EAAK,GACjFj5C,KACF,EAcM,CAACk5C,EAAeC,EAAiB,CAAG9uD,EAAAA,QAAc,CAAC,IAanD+uD,EAAiB,CACrBrnC,UAAW,CAACkmC,EACZtqD,MAAOxC,EAAE,cACTkuD,UAAWH,EAAgB/tD,EAAE,sBAAwB8S,KAAAA,CACvD,EAEMjT,EAAWC,CAAAA,EAAAA,EAAAA,EAAAA,IAEjB,MACE,GAAA6B,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,6BACZoH,GAAcklD,WAAaZ,EAC1B,GAAA5rD,EAAAlD,GAAA,EAACulB,EAAAA,EAASA,CAAAA,CACRxhB,MAAOxC,EAAE,QACT4iB,SAAU3Z,GAAcmlD,cACxBvsD,UAAU,yHACVO,mBAAiB,uBAEjB,KACJ,GAAAT,EAAAK,IAAA,EAACunB,GAAAA,EAAYA,CAAAA,CACX8kC,qBAAqB,uBACrBxsD,UAAU,SACVoS,MAAOyqC,EAAM1+C,EAAE,UAAYA,EAAE,YAC7BsO,OAAQ6+C,EACRt4C,UAAWg5C,EACXlkC,SAAUkkC,EACV/4C,KAAK,MACL4U,UApDuB,KAC3B0jC,EAAQ,IAEJ1O,GAAO,CAACsI,GACVvmC,EAAS0rC,EAAiBD,EAAWxN,EAAMzW,CAAAA,EAAAA,GAAAA,CAAAA,EAAQyW,EAAK,GAAI,CAC1D2N,YAAa,GACbC,eAAgB,EAClB,GAEF5iC,KACF,EA2CM4kC,QAvCa,KACjBN,EAAiB,IACjBhK,EACE,CACE,GAAGqJ,GAAW,CACdvlB,MAAO,CAAEC,YAAa,KAAMC,cAAe,KAAM+B,UAAW,EAAM,CACpE,EACA,CAAE+jB,kBAAmB,EAAK,GAE5Bn0C,WAAW,IAAMq0C,EAAiB,IAAQ,KACtChB,GAAcA,GACpB,EA6BMjkD,cAAe,CAAEi7C,MAAOiK,CAAe,EACvCt8B,cACE,GAAAhwB,EAAAlD,GAAA,EAACkW,SAAAA,CACC9S,UAAU,gKACVO,mBAAiB,kBACjBlC,GAAG,kBACHE,IAAK8wB,EACL9vB,KAAK,SACL8B,aAAY,CAAC,EAAElD,EAAE,WAAW,CAAC,EAAEunD,GAAsBvnD,EAAE,YAAY,EAAE,EAAEA,EAAE,YAAY,CAAC,EACpF0tD,GAA4B1tD,EAAE,YAC/B,CAAC,CACF4O,QA5EQ,KAChBw+C,EAAQ,IACRE,EAAiBiB,KAAUlB,IAAYvlB,KAAK,GAC5CjqB,KACF,EAyEU9b,cAAY,sBAGZ8P,SAAU,CAAChS,WAEV+P,EACCA,EAAS,CAAE8uC,IAAKiP,EAAW3G,OAAQ4G,CAAa,GAEhD,GAAAjsD,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAK,IAAA,EAACwsD,GAAqBA,CAAC9P,IAAKA,EAAK9hD,SAAUA,YACzC,GAAA+E,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,iDAAyC7B,EAAE,aAC3D,GAAA2B,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,+CAAuC7B,EAAE,iBAE1D,EAKG,KAJF,GAAA2B,EAAAK,IAAA,EAACwsD,GAAqBA,CAAC9P,IAAKsI,GAAUkE,EAAStuD,SAAUA,YACvD,GAAA+E,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,iDAAyC7B,EAAE,cAC3D,GAAA2B,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,+CAAuC7B,EAAE,gCAQrE,GAAA2B,EAAAlD,GAAA,EAACwD,MAAAA,CACCG,mBAAiB,eACjBP,UAAU,0DAEV,GAAAF,EAAAlD,GAAA,EAACutD,GAAkBA,CACjB9E,cAAeA,EACfkD,aAAcA,EACd1L,IAAKA,EACLuN,aAAcA,EACdC,SAAUA,EACVlF,OAAQkF,EAAWxN,EAAMsI,EACzBmF,gBAAiBA,EACjBlF,QAASA,EACTU,aAAcA,EACdJ,SAAU,CAACxiC,EAAG0pC,IACZzuD,EAAE,WAAY,CACZwnC,KAAMziB,EAAE+3B,kBAAkB,CAAC9zC,EAAQ,CAAE+zC,UAAW,MAAO,GACvD37C,KAAMpB,EAAEyuD,EAAU,UAAY,WAChC,GAEF7xD,SAAUA,EACV8tD,2BAA4BA,MAG/B,CAACmC,GAAiBH,EACjB,GAAA/qD,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,sCACZ,EAQG,KAPF,GAAAF,EAAAlD,GAAA,EAAC2kB,EAAAA,EAASA,CAAAA,CACR5gB,MAAO0qD,GAAkBltD,EAAE,qBAC3BoB,KAAK,WACL2J,KAAK,kBACL8G,SAAU86C,EACV/9C,QAASm+C,IAGZL,GAA8C,QAE/C,UAIZ,EGzPa3jB,GAAgB,GAA4B,GAAApnC,EAAAlD,GAAA,EAACguD,GAAUA,CAAE,GAAGlpD,CAAK,GCRxEmrD,GAAwB,CAAC,CAAE9+C,SAAAA,CAAQ,CAAiC,GAAKA,CAE/E8+C,CAAAA,GAAsB1qD,WAAW,CAAG,uCCL7B,IAAM2qD,GAAqB,IAAM5tC,CAAAA,EAAAA,EAAAA,EAAAA,ICAlC6tC,GAAwF,CAAC,CAC7Fp6C,MAAAA,CAAK,CACLq6C,KAAAA,CAAI,CACJ,GAAGlvD,EACJ,GACC,GAAakvD,OAAAA,EAET,GAAAltD,EAAAlD,GAAA,EAACwD,MAAAA,CACCJ,UAAWC,IACT,8FACA,CACE,YAAa,CAAC,CAAC0S,EACf,aAAc,CAAC,CAACq6C,GAAQ,CAACr6C,CAC3B,GAED,GAAI7U,GAAM,CAAC,cAAc,EAAI,CAAE,cAAe,CAAC,EAAEA,GAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAE,UAEhF,GAAAgC,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKmM,cAAY,gBAAQ8F,EAAQ,IAAMq6C,OAAAA,EAAgBA,EAAO,SAK9D,KAWIC,GAAiB5vD,EAAAA,UAAgB,CAC5C,CAAC,CAAE6vD,QAAAA,CAAO,CAAEn/C,SAAAA,CAAQ,CAAEpN,MAAAA,CAAK,CAAEshB,SAAAA,CAAQ,CAAE+qC,KAAAA,EAAO,IAAI,CAAE,GAAGtrD,EAAO,CAAEnD,IAE5D,GAAAuB,EAAAK,IAAA,EAACC,MAAAA,CAAIG,mBAAkB2sD,EAASltD,UAAU,wBACxC,GAAAF,EAAAK,IAAA,EAAC2S,SAAAA,CACCvS,mBAAiB,6BACjBP,UAAWC,IACT,+EACAyB,EAAM1B,SAAS,EAEjBzB,IAAKA,EACLgB,KAAK,SACJ,GAAGmC,CAAK,WAET,GAAA5B,EAAAlD,GAAA,EAAC8D,OAAAA,UAAMC,IACP,GAAAb,EAAAlD,GAAA,EAACmwD,GAAAA,CAAWp6C,MAAOsP,EAAU+qC,KAAMA,EAAM9sD,cAAawB,GAAO,CAAC,cAAc,MAE7EqM,KAMTk/C,CAAAA,GAAe9qD,WAAW,CAAG,gEC7CtB,IAAMgrD,GAAsD,CAAC,CAClEp/C,SAAAA,CAAQ,CACR/N,UAAAA,CAAS,CACTugB,QAAAA,CAAO,CACP6sC,eAAAA,CAAc,CACd,GAAGtvD,EACJ,IACC,GAAM,CAAEK,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,eACvBC,EAAKhB,EAAAA,KAAW,GAChBgwD,EAAQ,CAAC,QAAQ,EAAEhvD,EAAG,CAAC,CACvB,CAACivD,EAAcC,EAAgB,CAAGlwD,EAAAA,QAAc,CAAe,WAC/D,CAAC6e,EAASsxC,EAAW,CAAGnwD,EAAAA,QAAc,CAAC,IAEvCgyB,EAAYhyB,EAAAA,MAAY,CAAC,MACzBowD,EAAapwD,EAAAA,MAAY,CAAC,MAC1BqwD,EAAc96B,CAAAA,EAAAA,GAAAA,CAAAA,EAAQ,CAAEr0B,IAAKkvD,CAAW,GACxCE,EAAa/6B,CAAAA,EAAAA,GAAAA,CAAAA,EAAQ,CAAEr0B,IAAK8wB,CAAU,GACtCziB,EAASghD,CAAAA,EAAAA,GAAAA,EAAAA,EAAeD,EAAYD,GAEpCG,EAAOxwD,EAAAA,WAAiB,CAC5B,IACMywD,CAAAA,WAAAA,GAAsBR,IAAiBQ,CAAAA,IACzCN,EAAW,IACXD,EAAgB,WAEpB,EACA,CAACD,EAAa,EAEVS,EAAO,IACU,UAAjBT,IACJE,EAAW,IACXD,EAAgBO,GAClB,EAcA,OAZAzwD,EAAAA,SAAe,CAAC,KACd,IAAMwQ,EAAY,IACZqO,GAAWhW,WAAAA,EAAEC,GAAG,EAClB0nD,EAAK,SAET,EAEA,OADAxzD,OAAOqhB,gBAAgB,CAAC,UAAW7N,GAC5B,KACLxT,OAAOkhB,mBAAmB,CAAC,UAAW1N,EACxC,CACF,EAAG,CAACggD,EAAM3xC,EAAQ,EAGhB,GAAApc,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAU,qBACd,GAAAF,EAAAlD,GAAA,EAACkW,SAAAA,CACCvT,KAAK,SACLS,UAAWA,EACXzB,IAAK8wB,EACLhN,mBAAkBgrC,EAClBr4B,OAAQ,IAAM64B,EAAK,SACnB7zB,QAAS,IAAM+zB,EAAK,SACpBC,YAAa,IAAMD,EAAK,SACxBE,WAAY,IAAMJ,EAAK,SACtB,GAAG/vD,CAAI,UAEPiQ,IAEH,GAAAjO,EAAAlD,GAAA,EAAC8D,OAAAA,CACCrC,GAAIgvD,EACJ9uD,IAAKkvD,EACL32C,KAAK,UACLjK,cAAa,CAACqP,EACdlc,UAAWC,IACT,kGACAmtD,EACA,CAAEc,MAAOhyC,EAAShM,OAAQ,CAACgM,CAAQ,GAErCvP,MAAOC,EACPvL,aAAYlD,EAAE,kBAEboiB,MAIT,EE1Ca4tC,GAAsD,CAAC,CAClEnuD,UAAAA,CAAS,CACTouD,QAAAA,CAAO,CACPC,UAAAA,CAAS,CACTC,IAAAA,CAAG,CACHC,IAAAA,CAAG,CACHC,aAAAA,CAAY,CACZC,YAAAA,CAAW,CACXvxD,MAAAA,EAAQ,CAAC,CACTwxD,WAAAA,EAAa,EAAE,CACfC,WAAAA,CAAU,CACVC,YAAAA,CAAW,CACXC,UAAAA,CAAS,CACTC,WAAAA,CAAU,CACV,GAAGhxD,EACJ,IACC,IAAMixD,EAAgB7xD,IAAUqxD,EAC1BS,EAAe9xD,IAAUoxD,EACzB,CAAEnwD,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,eAC7B,MACE,GAAA0B,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAWC,IAAG,mCAAoCD,GAAa,GAAGlC,CAAI,WACxE,CAAC,CAACswD,GAAW,CAAC,CAACC,GACd,GAAAvuD,EAAAlD,GAAA,EAACmd,QAAAA,CAAM1b,GAAI+vD,EAAS7uD,KAAK,SAAS2J,KAAMmlD,EAAWnxD,MAAOA,IAE5D,GAAA4C,EAAAK,IAAA,EAAC2S,SAAAA,CACCvT,KAAK,SACLS,UAAU,kDACV+M,QAASyhD,EACTx+C,SAAU++C,EACV1tD,aAAYstD,GAAcxwD,EAAE,cAC5B+B,cAAa0uD,YAEb,GAAA9uD,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAW2uD,GAAcxwD,EAAE,gBAC3C,GAAA2B,EAAAlD,GAAA,EAACqR,MAAAA,CACC6I,KAAK,MACLjK,cAAW,GACXqB,QAAQ,YACRlO,UAAWC,IAAG,SAAU,CACtB,uBAAwB8uD,EACxB,iBAAkB,CAACA,CACrB,YAEA,GAAAjvD,EAAAK,IAAA,EAACgO,IAAAA,CAAEG,KAAK,OAAOC,SAAS,UAAUC,UAAU,6BAC1C,GAAA1O,EAAAlD,GAAA,EAACqyD,UAAAA,CAAQhvD,GAAG,OAAO+iB,GAAG,SAASksC,GAAG,OAAOC,GAAG,WAC5C,GAAArvD,EAAAlD,GAAA,EAACK,OAAAA,CAAKyR,cAAc,SAASwU,EAAE,2CAIrC,GAAApjB,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAU,qDACd,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,UAAU+c,YAAU,kBACjC2xC,GAAcxxD,IAEjB,GAAA4C,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKmM,cAAW,YAAE3P,OAErB,GAAA4C,EAAAK,IAAA,EAAC2S,SAAAA,CACCvT,KAAK,SACLS,UAAU,kDACV+M,QAAS0hD,EACTz+C,SAAUg/C,EACV3tD,aAAYwtD,GAAa1wD,EAAE,aAC3B+B,cAAa4uD,YAEb,GAAAhvD,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAW6uD,GAAa1wD,EAAE,eAC1C,GAAA2B,EAAAlD,GAAA,EAACqR,MAAAA,CACC6I,KAAK,MACLjK,cAAW,GACXqB,QAAQ,YACRlO,UAAWC,IAAG,SAAU,CACtB,uBAAwB+uD,EACxB,iBAAkB,CAACA,CACrB,YAEA,GAAAlvD,EAAAK,IAAA,EAACgO,IAAAA,CAAEG,KAAK,OAAOC,SAAS,UAAUC,UAAU,6BAC1C,GAAA1O,EAAAlD,GAAA,EAACqyD,UAAAA,CAAQhvD,GAAG,OAAO+iB,GAAG,SAASksC,GAAG,OAAOC,GAAG,WAC5C,GAAArvD,EAAAlD,GAAA,EAACK,OAAAA,CAAKyR,cAAc,SAASwU,EAAE,mDAM3C,EG7FMksC,GAA0D,CAAC,CAC/DC,SAAUC,CAAY,CACtBC,aAAAA,CAAY,CACZC,aAAAA,CAAY,CACZC,SAAAA,CAAQ,CACRx3C,MAAAA,CAAK,CACLy3C,aAAAA,CAAY,CACZC,aAAAA,EAAe,CAAC,CACjB,IACC,GAAM,CAACxxD,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,aACrB,CAAEwgB,SAAAA,CAAQ,CAAEC,MAAAA,CAAK,CAAE+wC,QAAAA,CAAO,CAAEte,QAAAA,CAAO,CAAE,CAAGpyB,CAAAA,EAAAA,EAAAA,EAAAA,IAExC2wC,EAAW,CAAC,MAAM,EAAE53C,EAAM,OAAO,CAAC,CAClC63C,EAAa,CAAC,MAAM,EAAE73C,EAAM,SAAS,CAAC,CACtCo3C,EAAWC,GAAgBG,GAAUnB,IACrCyB,EAAYV,EAAWlxD,EAAE,sBAAuB,CAAEkxD,SAAAA,CAAS,GAAK,GAChE,CAAExuC,OAAAA,CAAM,CAAEmvC,OAAAA,CAAM,CAAEC,OAAAA,CAAM,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAc,CAC/CN,QAAAA,EACA1mD,KAAM4mD,CACR,GACMK,EAAatxC,EAAM,SACnBupB,EAAW+nB,GAAYxxD,QAAU,EACjC8pC,EAAS5pB,EAAMgxC,GACf9hD,EAAW8Q,EAAMixC,IAAe,EAAE,CAClCM,EAAUn4C,EAAQ,EAClBo4C,EAAa,CAAC,WAAW,EAAED,EAAQ,CAAC,CAgB1C,OAdA/yD,EAAAA,SAAe,CAAC,KASdizD,CARsC,UACpC,GAAIzvC,EAAOliB,MAAM,CAAG,GAAK6wD,EAAc,CAErC,IAAMpW,EAAQv4B,EAAO9f,GAAG,CAAC,CAACye,EAAOoH,IAAM,CAAC,EAAEkpC,EAAW,CAAC,EAAElpC,EAAE,IAAI,CAAC,CAE/D,OAAM0qB,EAAQ8H,EAChB,CACF,KACgCjpB,KAAK,CAAC,GACpCC,CAAAA,EAAAA,EAAAA,CAAAA,EAAS,YAAazd,EAAO,oCAGjC,EAAG,CAACkO,EAAQ2uC,EAAa,EAEvB,GAAA1vD,EAAAK,IAAA,EAACC,MAAAA,CAAIF,cAAamwD,YAChB,GAAAvwD,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,UAAU+c,YAAU,kBACjC,GAAAjd,EAAAlD,GAAA,EAAC8D,OAAAA,UAAM,CAAC,EAAE0nC,EAAW,EAAI,CAAC,EAAEjqC,EAAE,oBAAqB,CAAEoyD,IAAKH,CAAQ,GAAG,CAAC,CAAC,CAAG,GAAG,CAAC,EAAEjyD,EAC9E,kBACA,CACE6zB,MAAOyW,CACT,GACA,EAAE,EAAEtqC,EAAE,kBAAmB,CAAE6zB,MAAOjkB,EAASpP,MAAM,GAAI,CAAC,KAE1D,GAAAmB,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,wCACb,GAAAF,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,oCACZooC,EAAW,GACV,GAAAtoC,EAAAK,IAAA,EAAC2S,SAAAA,CACC5S,cAAa,CAAC,EAAEmwD,EAAW,OAAO,CAAC,CACnC9wD,KAAK,SACLS,UAAU,+FACV+M,QAAS,IAAM2iD,EAAaz3C,aAE5B,GAAAnY,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAW7B,EAAE,uBAAwB,CAAEoyD,IAAKH,CAAQ,KACpE,GAAAtwD,EAAAlD,GAAA,EAACqR,MAAAA,CAAI6I,KAAK,MAAMjK,cAAW,GAACqB,QAAQ,YAAYlO,UAAU,iCACxD,GAAAF,EAAAK,IAAA,EAACgO,IAAAA,CAAEG,KAAK,OAAOC,SAAS,UAAUC,UAAU,iCAC1C,GAAA1O,EAAAlD,GAAA,EAACqyD,UAAAA,CACCzgD,UAAU,2BACVvO,GAAG,SACH+iB,GAAG,SACHksC,GAAG,OACHC,GAAG,WAEL,GAAArvD,EAAAlD,GAAA,EAACK,OAAAA,CAAKimB,EAAE,8DAKhB,GAAApjB,EAAAlD,GAAA,EAAC8D,OAAAA,UAAMvC,EAAE,iBAAkB,CAAEoyD,IAAKH,CAAQ,QAE5C,GAAAtwD,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,iBACb,GAAAF,EAAAlD,GAAA,EAACuxD,GAAOA,CACNK,aAAc,KACZ5vC,EAASixC,EAAUpnB,EAAS,EAAG,CAAE+hB,YAAa,GAAMC,eAAgB,EAAK,EAC3E,EACAgE,YAAa,KACX7vC,EAASixC,EAAUpnB,EAAS,EAAG,CAAE+hB,YAAa,GAAMC,eAAgB,EAAK,EAC3E,EACA8D,IAAK,EACLD,IAAKqB,EAAe5hD,EAASpP,MAAM,CACnCzB,MAAOurC,EACPimB,WAAYvwD,EAAE,kBAAmB,CAAE6zB,MAAOyW,CAAO,GACjDomB,UAAW1wD,EAAE,qBAAsB,CAAEoyD,IAAKH,EAASL,UAAAA,CAAU,GAC7DpB,WAAYxwD,EAAE,wBAAyB,CAAEoyD,IAAKH,EAASL,UAAAA,CAAU,OAGrE,GAAAjwD,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,iBACb,GAAAF,EAAAlD,GAAA,EAACuxD,GAAOA,CACNK,aAAc,KACZwB,EAAOnvC,EAAOliB,MAAM,CAAG,EACzB,EACA8vD,YAAa,KAEXwB,EAAO,CAAEzU,IAAK,IAAK,EAAG,CAAEgV,YAAa,EAAM,EAC7C,EACAjC,IAAK,EACLD,IAAKiB,EAAe,EAAII,EAAelnB,EACvCvrC,MAAO6Q,EAASpP,MAAM,CACtB+vD,WAAYvwD,EAAE,kBAAmB,CAAE6zB,MAAOjkB,EAASpP,MAAM,GACzDkwD,UAAW1wD,EAAE,qBAAsB,CAAEoyD,IAAKH,CAAQ,GAClDzB,WAAYxwD,EAAE,wBAAyB,CAAEoyD,IAAKH,CAAQ,UAK3DK,CArGsBhyD,CAAQgxD,GAqGR1hD,EAASpP,MAAM,CAAG,GACvC,GAAAmB,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,OAAOE,cAAY,4BAChC,GAAAJ,EAAAK,IAAA,EAACG,KAAAA,CAAGN,UAAU,+DACZ,GAAAF,EAAAlD,GAAA,EAAC8D,OAAAA,UAAMvC,EAAE,yBACT,GAAA2B,EAAAlD,GAAA,EAACuwD,GAAOA,CAAC5sC,QAASpiB,EAAE,0BAA2B6B,UAAU,uCACvD,GAAAF,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,cAAc0I,QAAQ,UAAUqB,KAAK,YAGpD,GAAAnT,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,iDACZ6gB,EAAO9f,GAAG,CAAC,CAACye,EAAOoH,KAClB,IAAM8pC,EAAY,CAAC,EAAEZ,EAAW,CAAC,EAAElpC,EAAE,IAAI,CAAC,CACpC+pC,EAAQ/pC,EAAI,EAEZxF,EAAmC,CACvC0F,SAAU,UACR,MAAMwqB,EAAQof,EAChB,CACF,EAIA,OAHIlB,GACFpuC,CAAAA,EAAgBL,QAAQ,CAAG5iB,EAAE,4BAG7B,GAAA2B,EAAAK,IAAA,EAAC6gB,EAAAA,EAAUA,CAAAA,CAET9gB,cAAa,CAAC,EAAEmwD,EAAW,UAAU,EAAEM,EAAM,CAAC,CAC9CznD,KAAMwnD,EACNzvC,eAAe,0BACfS,mBAAmB,aACnB/gB,MAAOxC,EAAE,qBAAsB,CAAEoyD,IAAKI,CAAM,GAC5CvvC,gBAAiB,CACfwvC,cAAe,GACf,GAAGxvC,CAAe,YAGpB,GAAAthB,EAAAlD,GAAA,EAAC0kB,SAAAA,CAAOtR,SAAQ,GAAC9S,MAAM,KACtB8O,MAAMC,IAAI,CAAC,CAAEtN,OAAQ8wD,EAAUnB,GAAG,CAAGmB,EAAUlB,GAAG,GAAIxtD,GAAG,CAAC,CAAC8vD,EAAIC,KAC9D,IAAM5zD,EAAQ4zD,EAAIrB,EAAUlB,GAAG,CAC/B,MACE,GAAAzuD,EAAAlD,GAAA,EAAC0kB,SAAAA,CAA2DpkB,MAAOA,WAChEA,IAAAA,EAAciB,EAAE,sBAAwBjB,GAD9BA,IAAAA,EAAciB,EAAE,sBAAwBjB,EAIzD,KAnBKsiB,EAAMnhB,EAAE,CAsBnB,UAMZ,EChLa0yD,GAAUtnD,OAAOgT,MAAM,CAAC,CAAEgsB,OAAQ,EAAG16B,SAAU,EAAE,GACjDijD,GAAkD,CAAC,CAC9D3B,SAAUC,CAAY,CACtBE,aAAAA,CAAY,CACZC,SAAAA,CAAQ,CACRwB,SAAAA,EAAW,CAAC,CACZtB,aAAAA,EAAe,CAAC,CAChBuB,sBAAAA,CAAqB,CACrB3B,aAAAA,CAAY,CACb,IACC,IAAMF,EAAWC,GAAgBG,GAAUnB,IACrC,CAACnwD,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,aACrBixB,EAAYhyB,EAAAA,MAAY,CAAoB,MAC5C,CAAEwjB,OAAAA,CAAM,CAAEovC,OAAAA,CAAM,CAAED,OAAAA,CAAM,CAAE,CAAGE,CAAAA,EAAAA,EAAAA,EAAAA,EAAc,CAAEhnD,KAAM,OAAQ,GAC3Ds/B,EAAwB8J,CAAAA,EAAAA,EAAAA,EAAAA,EAAS,CAAEppC,KAAM,OAAQ,GACjDioD,EACJD,GACA1oB,GAAO5b,KAAK,GAAU0uB,EAAK7S,MAAM,CAAG6S,EAAKvtC,QAAQ,CAACpP,MAAM,GAAKgxD,GAGzDyB,EAAmB,IACvBpB,EAAO5gB,GACH/f,EAAU10B,OAAO,EACnB00B,EAAU10B,OAAO,CAACiM,KAAK,EAE3B,EAEA,MACE,GAAA9G,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,kBACb,GAAAF,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,OAAO6M,cAAW,aAC/B,GAAA/M,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,wDACb7B,EAAE,0BAEL,GAAA2B,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAU,wCACb7B,EAAE,yBACFkxD,GAAY,GAAAvvD,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAU,qCAA2B,IAAEqvD,EAAS,WAErE,GAAAvvD,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,uCAA+B7B,EAAE,gCAGrD,GAAA2B,EAAAlD,GAAA,EAACwD,MAAAA,CAAIG,mBAAiB,QAAQP,UAAU,wBAAwBE,cAAY,iBACzE2gB,EAAO9f,GAAG,CAAC,CAACye,EAAOvH,IAClB,GAAAnY,EAAAlD,GAAA,EAACwyD,GAASA,CAERn3C,MAAOA,EACPw3C,SAAUA,EACVC,aAAc0B,EACd5B,aAAcA,EACdG,aAAcA,EACdJ,aAAcA,EACdF,SAAUA,GAPL7vC,EAAMnhB,EAAE,KAWlBkxD,GAAgBF,EACf,GAAAvvD,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,wBAAgB7B,EAAE,2BAA4B,CAAEkxD,SAAAA,CAAS,KACpE,KACH8B,EACC,GAAArxD,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,0CACb,GAAAF,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,sBAAsB+c,YAAU,YAAYjG,KAAK,iBAC3Do6C,MAGH,KACJ,GAAApxD,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,8DACZqxD,IAhDuBJ,EAiDtB,GAAAnxD,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAU,mBAAW7B,EAAE,8BAE1B,GAAA2B,EAAAK,IAAA,EAAC2S,SAAAA,CACCvT,KAAK,SACLW,cAAY,iBACZ3B,IAAK8wB,EACLrvB,UAAU,mKACV+M,QAAS,KACPkjD,EAAO,CAAE,GAAGc,EAAO,EACrB,EACA/gD,SAAU6Q,EAAOliB,MAAM,EAAIsyD,YAE3B,GAAAnxD,EAAAlD,GAAA,EAACqR,MAAAA,CAAI6I,KAAK,MAAMjK,cAAW,GAACqB,QAAQ,YAAYlO,UAAU,oCACxD,GAAAF,EAAAK,IAAA,EAACgO,IAAAA,CAAEG,KAAK,OAAOC,SAAS,UAAUC,UAAU,6BAC1C,GAAA1O,EAAAlD,GAAA,EAACqyD,UAAAA,CAAQhvD,GAAG,OAAO+iB,GAAG,SAASksC,GAAG,OAAOC,GAAG,WAC5C,GAAArvD,EAAAlD,GAAA,EAACK,OAAAA,CAAKyR,cAAc,SAASwU,EAAE,8CAGlC/kB,EAAE,4BAMf,EGhFamzD,GAAkE,CAAC,CAC9EC,cAAAA,CAAa,CACb1pC,UAAAA,CAAS,CACTyjC,KAAMF,CAAQ,CACdoG,iBAAAA,CAAgB,CAChBx1C,OAAAA,CAAM,CACNhJ,UAAAA,CAAS,CACT,GAAGlV,EACJ,IACC,GAAM,CAAEK,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,CAAC,YAAa,gBAAgB,EACrD,CAACktD,EAAMC,EAAQ,CAAGluD,EAAAA,QAAc,CAAC,IACjC,CACJyhB,UAAW,CAAE0B,OAAAA,CAAM,CAAE,CACrBgrC,UAAAA,CAAS,CACTrJ,MAAAA,CAAK,CACN,CAAG2K,KACE,CAAEmD,OAAAA,CAAM,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAc,CAAEhnD,KAAM,OAAQ,GAC3C+Y,EAAWxjB,CAAAA,CAAQ+hB,EAAOgoB,KAAK,CAC/B2nB,EAAa7d,CAAAA,EAAAA,EAAAA,EAAAA,EAAS,CAAEppC,KAAM,OAAQ,GACtCk/B,EAAW+nB,GAAYxxD,QAAU,EAEjC8yD,EAAY,CAACtB,GAAc,EAAE,EAAE1tD,MAAM,CACzC,CAACuvB,EAAe,CAAEyW,OAAAA,CAAM,CAAE16B,SAAAA,CAAQ,CAA0C,GAC1EikB,EAAQyW,EAAS16B,EAASpP,MAAM,CAClC,GAEI,CAACk6C,EAAe4S,EAAiB,CAAGpuD,EAAAA,QAAc,CAAiB,CACvE,CACEorC,OAAQ,EACR16B,SAAU,EAAE,EAEf,EAED1Q,EAAAA,SAAe,CAAC,KACV8yD,GAAcA,IAAAA,EAAWxxD,MAAM,EACjCsxD,EAAO,CAAE,GAAGc,EAAO,EAGvB,EAAG,CAACZ,EAAW,EAEf9yD,EAAAA,SAAe,CAAC,KACV+tD,GACFK,EAAiBiB,KAAUyD,GAG/B,EAAG,CAAC/E,EAAS,EAYb,IAAMsG,EAAqC,KACrC7Y,GACFsJ,EAAM,CAAE,GAAGqJ,GAAW,CAAEhjB,MAAO,IAAIqQ,EAAc,EAAI,CAAEoT,kBAAmB,EAAK,GAEjFV,EAAQ,IACRv4C,KACF,EAGMpY,EAAY03C,CAAAA,EAAAA,EAAAA,EAAAA,EAAyC,CAAEppC,KAAM,WAAY,GACzEg9B,EAAcoM,CAAAA,EAAAA,EAAAA,EAAAA,EAAiD,CACnEppC,KAAM,mBACR,GACMi9B,EAAgBmM,CAAAA,EAAAA,EAAAA,EAAAA,EAAmD,CACvEppC,KAAM,qBACR,GACMq/B,EAAU+J,CAAAA,EAAAA,EAAAA,EAAAA,EAAuC,CAAEppC,KAAM,SAAU,GACnEgQ,EAAQo5B,CAAAA,EAAAA,EAAAA,EAAAA,EAAqC,CAAEppC,KAAM,OAAQ,GAC7DyoD,EAAgBrf,CAAAA,EAAAA,EAAAA,EAAAA,EAA8C,CAAEppC,KAAM,gBAAiB,GAEvF0oD,EAAa/a,CAAAA,EAAAA,EAAAA,EAAAA,EAAiB,CAClCj8C,UAAWA,EACXuM,OAAQ,KACR6+B,UAAW,CACTC,MAAO,CACLC,YAAAA,EACAC,cAAAA,CACF,EACAkC,aAAcspB,EACdppB,QAAAA,EACArvB,MAAAA,EACAkvB,SAAU,EACZ,EACA0O,SAAU,EACZ,GAEMn2C,EAAQ,CAAC,EAAExC,EAAE,qBAAsB,CAAE6zB,MAAOoW,CAAS,GAAG,EAAE,EAAEjqC,EAAE,sBAAuB,CACzF6zB,MAAOy/B,CACT,GAAG,CAAC,CACE3yB,EAAY,CAAC,EAAE3gC,EAAE,qBAAsB,CAAE6zB,MAAOoW,CAAS,GAAG,EAAE,EAAEjqC,EAAE,sBAAuB,CAC7F6zB,MAAOy/B,CACT,GAAG,EAAE,EAAEtzD,EAAE,yBAAyB,CAAC,EACjC8jB,EAAW9jB,EAAE,4BAA6B,CAAE6zB,MAAO,CAAE,GAAK,GAC3D,CAAC,CAEF,MACE,GAAAlyB,EAAAK,IAAA,EAACunB,GAAAA,EAAYA,CAAAA,CACX1nB,UAAU,SACVoS,MAAOjU,EAAE,mBACTsO,OAAQ2+C,GAAYE,EACpBt4C,UAAW0+C,EACX5pC,SAAU4pC,EACV7pC,UAxDyB,KAC3B0jC,EAAQ,IACR1jC,KACF,EAsDI5U,KAAK,KACL/L,cAAe,CACb0gB,QAAS,CACP5X,SAAUiS,CACZ,CACF,EACAuqC,qBAAqB,2BACrB18B,cACE,GAAAhwB,EAAAlD,GAAA,EV5FOqwD,GU4FM4E,CACX3E,QAAQ,sBACRngD,QAzEU,KAChB0+C,EAAiBiB,KAAUyD,IAC3B5E,EAAQ,IACRvvC,KACF,EAsEQiG,SAAUA,EACVthB,MAAOA,EACPU,aAAYy9B,EACZ5+B,cAAY,kCAIhB,GAAAJ,EAAAlD,GAAA,EAACo0D,GAAKA,CAAE,GAAGc,KAAKh0D,EAAM,cAAc,GACnCyzD,EAAgB,KACf,GAAAzxD,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,2DACb,GAAAF,EAAAlD,GAAA,EAAC4D,GAAAA,EAAIA,CAAAA,CACHlC,IAAKszD,EACL5xD,UAAU,mDACT,GAAGwxD,CAAgB,UAEnBrzD,EAAE,6BAMf,EClKa4zD,GAAiE,CAAC,CAC7EhkD,SAAAA,CAAQ,CACRikD,OAAAA,CAAM,CACNrxD,MAAOsxD,CAAS,CAChBllD,QAAAA,CAAO,CACPmlD,KAAAA,CAAI,CACL,IACC,GAAM,CAAEC,WAAAA,CAAU,CAAE,CAAGnkD,CAAAA,EAAAA,GAAAA,EAAAA,IACjB,CAAE7P,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,kBACvBg0D,EAAcn4D,CAAAA,EAAAA,EAAAA,MAAAA,EAA0B,MACxC0G,EAAQsxD,GAAa9zD,EAAE,YAE7B,MACE,GAAA2B,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAK,IAAA,EAAC2M,GAAAA,EAAWA,CAAAA,CACV9M,UAAU,6BACVE,cAAa,CAAC,YAAY,EAAE8xD,EAAS,CAAC,CAAC,EAAEA,EAAO,CAAC,CAAG,GAAG,CAAC,CACxDzzD,IAAK6zD,EACLrlD,QAASA,YAET,GAAAjN,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAWW,IAC3B,GAAAb,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CACHxI,KAAK,cACL0I,QAAQ,UACRqB,KAAK,KACLjT,UAAU,wDAEZ,GAAAF,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CACHxI,KAAK,cACL0I,QAAQ,QACRqB,KAAK,KACLjT,UAAU,gEAGd,GAAAF,EAAAK,IAAA,EAACmN,GAAAA,EAAYA,CAAAA,CACXtN,UAAU,oBACVE,cAAa,CAAC,aAAa,EAAE8xD,EAAS,CAAC,CAAC,EAAEA,EAAO,CAAC,CAAG,GAAG,CAAC,CACzDE,KAAMA,YAEN,GAAApyD,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,4BACb,GAAAF,EAAAlD,GAAA,EAAC+kD,GAAAA,EAAYA,CAAAA,CAAChhD,MAAOxC,EAAE,QAAS,CAAEwC,MAAAA,CAAM,GAAIoM,QAASolD,EAAYl/C,KAAK,SAExE,GAAAnT,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,wDAAgD+N,SAIvE,EAEaskD,GAA0D,CAAC,CACtEL,OAAAA,CAAM,CACNjkD,SAAAA,CAAQ,CACRpN,MAAAA,CAAK,CACLoM,QAAAA,CAAO,CACPmlD,KAAAA,CAAI,CACJ,GAAGp0D,EACJ,GACC,GAAAgC,EAAAlD,GAAA,EAAC2P,GAAAA,EAAKA,CAAAA,CAAE,GAAGzO,CAAI,UACb,GAAAgC,EAAAlD,GAAA,EAACm1D,GAAAA,CAAiBpxD,MAAOA,EAAOqxD,OAAQA,EAAQjlD,QAASA,EAASmlD,KAAMA,WACrEnkD,ME1DDukD,GAOD,CAAC,CAAEj0D,GAAAA,CAAE,CAAEsC,MAAAA,CAAK,CAAEqsD,KAAAA,CAAI,CAAEr6C,MAAAA,CAAK,CAAE4/C,WAAAA,CAAU,CAAExkD,SAAAA,CAAQ,CAAE,GAElD,GAAAjO,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,mBACb,GAAAF,EAAAK,IAAA,EAACC,MAAAA,CACCJ,UAAWC,IAAG,mDAAoD,CAChE,cAAe,CAACsyD,EAChB,kBAAmBA,EACnB,cAAe5/C,CACjB,aAEA,GAAA7S,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,8BACZW,EACC,GAAAb,EAAAlD,GAAA,EAAC+D,QAAAA,CACCJ,mBAAiB,mBACjBiyD,QAASn0D,EACT2B,UAAU,kCAETW,IAED,KACHqsD,EAAO,GAAAltD,EAAAlD,GAAA,EAACy1D,GAASA,UAAErF,IAAoB,QAEzCj/C,KAEH,GAAAjO,EAAAlD,GAAA,EAACynB,EAAAA,EAASA,CAAAA,CAAC1R,MAAOA,EAAO3S,UAAU,mBAQ5ByyD,GAAuE,IAGlF,GAAM,CAAEt0D,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,aACvB,CACJ4gB,SAAAA,CAAQ,CACRJ,SAAAA,CAAQ,CACR4sC,UAAAA,CAAS,CACT1sC,UAAW,CAAE0B,OAAAA,CAAM,CAAE,CACrB8wB,QAAAA,CAAO,CACR,CAAGpyB,CAAAA,EAAAA,EAAAA,EAAAA,IAEEwzC,EAAwB,CAACtqB,EAAkBojB,KAC/C,IAAMnjB,EAAepT,SAASu2B,EAAU,wBACxC,EAAIv2B,SAASmT,GAAsBjqC,EAAE,uCACjCqtD,EAAU,iBAAmBnjB,EAAe,IAC5C,EAACmjB,EAAU,iBAAoBv2B,CAAAA,IAAAA,SAASmT,IAAmBhvB,MAAM6b,SAASmT,GAAAA,CAAS,GAC9EjqC,EAAE,oCAEb,EAEMw0D,EAA4B,CAChCtqB,EACAmjB,IAEA,SAAanjB,GAAgB,GAAK,CAACmjB,EAAU,iBACtCrtD,EAAE,wCAGX,MACE,GAAA2B,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,+DACb,GAAAF,EAAAlD,GAAA,EAAC01D,GAAAA,CACCj0D,GAAG,qBACHsC,MAAOxC,EAAE,2BACTwU,MAAO6N,GAAQ4nB,kBAEf,GAAAtoC,EAAAlD,GAAA,EAACmd,QAAAA,CACC1b,GAAG,qBACHkB,KAAK,SACLgvD,IAAK,EACLvuD,UAAWC,IAAG,oBAAqB,CACjC,aAAcugB,GAAQ4nB,UAAU7nB,OAClC,GACC,GAAGvB,EAAS,WAAY,CACvB9hB,MArFQ,GAsFRmkB,SAAU,CACRuxC,mBAAoB,GAAcF,EAAsBtqB,EAAUojB,EACpE,EACAoF,cAAe,EACjB,EAAE,KAGLlvD,EAAMmxD,gBAAgB,CACrB,GAAA/yD,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAAC01D,GAAAA,CAAWC,WAAU,GAACl0D,GAAG,yBAAyBsU,MAAO6N,GAAQ8nB,sBAChE,GAAAxoC,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,oDACb,GAAAF,EAAAlD,GAAA,EAAC+D,QAAAA,CAAM6xD,QAAQ,yBAAyBxyD,UAAU,kCAC/C7B,EAAE,iCAEL,GAAA2B,EAAAlD,GAAA,EAACmd,QAAAA,CACC1b,GAAG,yBACHkB,KAAK,WACLS,UAAWC,IAAG,gBAAiB,CAC7B,aAAcugB,GAAQ8nB,YACxB,GACAv7B,QAAS,KACFy+C,EAAU,gBACV5sC,EAAS,eAAgB,GADEA,EAAS,eAAgB,EAE3D,EACC,GAAGI,EAAS,eAAgB,CAC3B8H,SAAU,UACR,MAAMwqB,EAAQ,YACd,MAAMA,EAAQ,eAChB,CACF,EAAE,QAIR,GAAAxxC,EAAAlD,GAAA,EAAC01D,GAAAA,CACCj0D,GAAG,yBACHsU,MAAO6N,GAAQ6nB,aACf1nC,MAAOxC,EAAE,wCAET,GAAA2B,EAAAlD,GAAA,EAACmd,QAAAA,CACC1b,GAAG,yBACHkB,KAAK,SACLS,UAAWC,IAAG,oBAAqB,CACjC,aAAcugB,GAAQ6nB,YACxB,GACAkmB,IAAK,EACJ,GAAGvvC,EAAS,eAAgB,CAC3B8H,SAAU,IAAMwqB,EAAQ,YACxBjwB,SAAU,CACRyxC,uBAAwB,GACtBH,EAA0BtqB,EAAcmjB,EAC5C,CACF,EAAE,CACFx7C,SAAU,CAACw7C,EAAU,uBAIzB,OAGV,EChIauH,GAAqF,CAAC,CACjGpoB,iCAAAA,CAAgC,CAChCqoB,cAAAA,CAAa,CACb1H,KAAMF,CAAQ,CACdvjC,UAAAA,CAAS,CACT7L,OAAAA,CAAM,CACNhJ,UAAAA,CAAS,CACT03B,oBAAAA,CAAmB,CACpB,IACC,GAAM,CAACvsC,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,CAAC,gBAAiB,oBAAoB,EAC3D,CAACktD,EAAMC,EAAQ,CAAGluD,EAAAA,QAAc,CAAC,IACjCgyB,EAAYhyB,EAAAA,MAAY,CAAoB,MAC5C,CACJyhB,UAAW,CAAE0B,OAAAA,CAAM,CAAE,CACrB2hC,MAAAA,CAAK,CACLqJ,UAAAA,CAAS,CACV,CAAGsB,KACE7qC,EAAW,CAAC,CAACzB,EAAOkmB,YAAY,CAChCusB,EAAa3gB,CAAAA,EAAAA,EAAAA,EAAAA,EAAS,CAAEppC,KAAM,cAAe,GAC7C0hC,EAAoB0H,CAAAA,EAAAA,EAAAA,EAAAA,EAAS,CAAEppC,KAAM,yBAA0B,GAC/D2hC,EAAgByH,CAAAA,EAAAA,EAAAA,EAAAA,EAAS,CAAEppC,KAAM,qBAAsB,GACvDgqD,EAAgB5gB,CAAAA,EAAAA,EAAAA,EAAAA,EAAS,CAAEppC,KAAM,sBAAuB,GACxDuQ,EAAc64B,CAAAA,EAAAA,EAAAA,EAAAA,EAAS,CAAEppC,KAAM,qBAAsB,GACrDlO,EAAUs3C,CAAAA,EAAAA,EAAAA,EAAAA,EAAS,CAAEppC,KAAM,sBAAuB,GAClDkgC,EAAMkJ,CAAAA,EAAAA,EAAAA,EAAAA,EAAS,CAAEppC,KAAM,kBAAmB,GAC1C2/B,EAAgByJ,CAAAA,EAAAA,EAAAA,EAAAA,EAAS,CAAEppC,KAAM,4BAA6B,GAC9D,CAAC2vC,EAAe4S,EAAiB,CAAGpuD,EAAAA,QAAc,GAClD81D,EAAgB1pD,OAAOC,IAAI,CAACupD,GAAc,CAAC,GAAGxwD,MAAM,CAAC,CAACuvB,EAAO7rB,IAUjE,CACIitD,CATF,MACA,SACA,UACA,aACA,qBACA,8BACA,gBACD,CAEgBzpD,QAAQ,CAACxD,IAAgB8sD,CAAU,CAAC9sD,EAA+B,EACjFA,WAAAA,GAA4B8sD,CAAU,CAAC9sD,EAAI,EAAK8sD,GAAY7pB,KAAKlgC,MACjE/C,eAAAA,GAAgC8sD,CAAU,CAAC9sD,EAAI,EAAK8sD,GAAYj4D,SAASkO,KAEnE8oB,EAAQ,EAEVA,EACN,GAaGqhC,EAAgC,KAChCxa,GACFsJ,EAAM,CAAE,GAAGqJ,GAAW,CAAE9kB,aAAc,CAAE,GAAGmS,CAAa,CAAG,EAAG,CAAEoT,kBAAmB,EAAK,GAE1Fj5C,MACAu4C,EAAQ,GACV,EA2BA,OAzBAluD,EAAAA,SAAe,CAAC,KACVwtC,GAAiB,CAACzB,GAAKlgC,MACzBi5C,EAAM,CAAE,GAAGqJ,GAAW,CAAE9kB,aAAc,CAAE,GAAG8kB,IAAY9kB,YAAY,CAAEkD,OAAQ,EAAM,CAAE,GAEnFgB,GAAqB,CAAC5vC,GAASkO,MACjCi5C,EAAM,CAAE,GAAGqJ,GAAW,CAAE9kB,aAAc,CAAE,GAAG8kB,IAAY9kB,YAAY,CAAEC,WAAY,EAAM,CAAE,GAEvFusB,GAAiB,CAACz5C,GACpB0oC,EAAM,CAAE,GAAGqJ,GAAW,CAAE9kB,aAAc,CAAE,GAAG8kB,IAAY9kB,YAAY,CAAEgD,QAAS,EAAM,CAAE,GAEpFwpB,GAAiBrqB,GACnBsZ,EAAM,CAAE,GAAGqJ,GAAW,CAAE9kB,aAAc,CAAE,GAAG8kB,IAAY9kB,YAAY,CAAEmC,cAAe,EAAG,CAAE,EAE7F,EAAG,CACDA,EACA2iB,EACA5gB,EACAC,EACApxB,EACAy5C,EACAl4D,GAASkO,KACTkgC,GAAKlgC,KACLi5C,EACD,EAGC,GAAAriD,EAAAlD,GAAA,EAAC8qB,GAAAA,EAAYA,CAAAA,CACX1nB,UAAU,SACVoS,MAAOjU,EAAE,4BACTsO,OAAQ2+C,GAAYE,EACpBt4C,UAAWqgD,EACXvrC,SAAUurC,EACVxrC,UA7CyB,KAC3B0jC,EAAQ,IACR1jC,KACF,EA2CI5U,KAAK,KACL/L,cAAe,CACb0gB,QAAS,CACP5X,SAAU,CAAC,CAACgjD,GAAiB/wC,CAC/B,CACF,EACAuqC,qBAAqB,mCACrB18B,cACE,GAAAhwB,EAAAlD,GAAA,Ed5EOqwD,Gc4EM4E,CACX3E,QAAQ,sBACR3uD,IAAK8wB,EACLtiB,QA/DU,KAChB0+C,EAAiBiB,KAAUuG,IAC3B1H,EAAQ,IACRvvC,KACF,EA4DQiG,SAAUA,EACV+qC,KAAMmG,IAAAA,EAAsB,KAAOA,EAAgB,GACnDxyD,MAAOxC,EAAE,4BACTkD,aAAY,CAAC,EAAElD,EAAE,iCAAiC,CAAC,EACjDqiB,EAAOkmB,YAAY,CACfvoC,EAAE,4BAA6B,CAAE6zB,MAAO,CAAE,GAC1CmhC,EAAgB,EAChBh1D,EAAE,qCAAsC,CAAE6zB,MAAOmhC,CAAc,GAC/D,GACL,CAAC,CACFjzD,cAAY,iCAIhB,GAAAJ,EAAAlD,GAAA,EAAC6tC,EAAYA,CACXE,iCAAkCA,EAClCD,oBAAqBA,KAI7B,EC9IM4oB,GAAyE,CAAC,CAC9E/E,IAAAA,EAAM,CAAC,CACPD,IAAAA,EAAM,EAAE,CACT,IACC,GAAM,CAACnwD,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,aACrB,CAACktD,EAAMC,EAAQ,CAAGluD,EAAAA,QAAc,CAAC,IACjCgyB,EAAYhyB,EAAAA,MAAY,CAAoB,MAC5C,CACJyhB,UAAW,CAAE0B,OAAAA,CAAM,CAAE,CACrB5B,SAAAA,CAAQ,CACR4sC,UAAAA,CAAS,CACTrJ,MAAAA,CAAK,CACN,CAAG2K,KACE3kB,EAAYmK,CAAAA,EAAAA,EAAAA,EAAAA,EAAsC,CAAEppC,KAAM,WAAY,GACtEi9B,EAAgBmM,CAAAA,EAAAA,EAAAA,EAAAA,EAAgD,CACpEppC,KAAM,qBACR,GACM,CAACqqD,EAAkBC,EAAoB,CAAGn2D,EAAAA,QAAc,GACxD,CAACo2D,EAAsBC,EAAwB,CACnDr2D,EAAAA,QAAc,GAUVs2D,EAAe,KAEnB,GADApI,EAAQ,IACJgI,GAAoBE,EAAsB,CAC5C,IAAM/lC,EAAW89B,IACjBrJ,EACE,CACE,GAAGz0B,CAAQ,CACXya,UAAWorB,EACXttB,MAAO,CAAE,GAAGvY,EAASuY,KAAK,CAAEE,cAAestB,CAAqB,CAClE,EACA,CAAExH,kBAAmB,EAAK,EAE9B,CACF,EAEA,GAAI9jB,OAAAA,GAAsB,CAAChC,EACzB,OAAO,KAGT,IAAMxlC,EACJwnC,IAAAA,EACIhqC,EAAE,kBAAmB,CAAE6zB,MAAO,CAAE,GAChC7zB,EAAE,qBAAsB,CAAE6zB,MAAOmW,CAAU,GAC3CyrB,EAAcz1D,EAAE,wBAEtB,MACE,GAAA2B,EAAAlD,GAAA,EAAC8qB,GAAAA,EAAYA,CAAAA,CACX1nB,UAAU,SACVoS,MAAOwhD,EACPnnD,OAAQ6+C,EACRt4C,UAAW2gD,EACX7rC,SAAU6rC,EACV9rC,UAnCyB,KAC3B0jC,EAAQ,GACV,EAkCIt4C,KAAK,KACL6c,cACE,GAAAhwB,EAAAlD,GAAA,EftBOqwD,GesBM4E,CACX3E,QAAQ,uBACR3uD,IAAK8wB,EACLtiB,QA/CU,KAChBymD,EAAoBrrB,GACpBurB,EAAwBvtB,GACxBolB,EAAQ,GACV,EA4CQtpC,SAAUxjB,CAAAA,CAAQ+hB,EAAO2nB,SAAS,CAClCxnC,MAAOA,EACPU,aAAYV,EACZT,cAAY,kCAIhB,GAAAJ,EAAAlD,GAAA,EAACuxD,GAAOA,CACNK,aAAc,KACZ5vC,EAAS,YAAaupB,EAAY,EAAG,CAAEqiB,YAAa,EAAK,GACzD5rC,EAAS,sBAAuB6nC,CAAAA,EAAAA,GAAAA,CAAAA,EAAQtgB,EAAe,GAAI,CACzDqkB,YAAa,EACf,EACF,EACAiE,YAAa,KACX7vC,EAAS,YAAaupB,EAAY,EAAG,CAAEqiB,YAAa,EAAK,GACzD5rC,EAAS,sBAAuBwnB,CAAAA,EAAAA,GAAAA,CAAAA,EAAQD,EAAe,GAAI,CACzDqkB,YAAa,EACf,EACF,EACA+D,IAAKA,EACLD,IAAKA,EACLpxD,MAAOirC,EACPumB,WAAY/tD,EACZkuD,UAAW1wD,EAAE,mBACb2wD,WAAW,mBACXH,WAAYxwD,EAAE,sBACdywD,YAAY,sBACZ5uD,UAAU,YAIlB,+KGrGO,IAAMoxB,EAAS,CACpByiC,GAAI,KACJxiC,QAAS,GACX,EAwFA,SAASyiC,WACP,EAAK7uD,CAASA,CAGP5K,OAAO05D,iBAAiB,CAFtB,IAGX,CA4BO,SAASC,EACdC,CAAuB,CACvBp3C,CAAoB,EAEpB,IAAMq3C,EAAiBJ,WACvB,EAIO,IAAItnC,QAAQ,CAAC8W,EAAS6wB,KAC3B,IAAMC,EAlBD,iBAkB0BH,EAjB7B,CAAC,CAAE/yD,EAiB0B+yD,EAjBhB,GAAI,CAAC,CAiBkBp3C,GAjBZ,CAAEwyB,EAiBUxyB,CAjBR,CAAC,EAAI,CACjCo3C,EAAMlzD,GAAG,CAAC,CAAC,CAAEszD,QAAAA,CAAO,CAAEx3C,OAAAA,CAAM,CAAE,GAAM,EAClC3b,EAAGmzD,EACH,GAAI,CAAC,CAACx3C,GAAU,CAAEwyB,EAAGxyB,CAAO,CAAC,CAC/B,GAcFq3C,GAAgBI,KAAKF,EAAQ,CAACzhD,EAAOsd,KAC/Btd,GACFwhD,EAAOxhD,GAET2wB,EAAQrT,EACV,EACF,GAXSzD,QAAQ8W,OAAO,CAAC,KAY3B,CAEO,SAAS5S,EAA0BujC,CAAuB,EAC/D,OAAOD,EAAwBC,EAAO7iC,EAAOyiC,EAAE,CACjD,CAoBO,SAAS7mD,EAAWunD,CAAc,CAAEr3D,CAAc,EACvD,IAAMg3D,EAAiBJ,IAClBI,GAILA,GAAgBI,KAAK,CAAC,CAAEnmD,EAAGomD,EAAQ70B,EAAGxiC,CAAM,EAAE,CAAE,IAAM,KACxD,mCClKA,IAAMs3D,EAAa,IAAM,kBAAqBvvD,CAAAA,EAAAA,CAASA,CAAG5K,OAAO4B,QAAQ,CAACmJ,QAAQ,CAAG,IAE/EqvD,EAAY,CAChBC,QAASF,IACTG,SAAU,uBACZ,EAEMC,EAAkC,CACtCC,cAAe,GACft7C,UAAW,GACX5G,MAAO,IACT,EAEA,SAASmiD,EACPV,CAAe,CACfW,CAA2D,EAE3D,OAAOX,EAAO3xD,MAAM,CAAC,CAAC+H,EAAK,CAAE6pD,QAAAA,CAAO,CAAE,IACpC,IAAMx0C,EACJ,mBAAOk1C,EAAoCA,EAAmBV,GAAWU,EAC3E,MAAO,CAAE,GAAGvqD,CAAG,CAAE,CAAC6pD,EAAQ,CAAEx0C,CAAM,CACpC,EAAG,CAAC,EACN,CAEA,SAASm1C,IACP,MAAOvsD,CAAAA,EAAAA,EAAAA,CAAAA,EAAsB,CAC3BC,SAAU,CAAC8rD,IAAa,CACxBS,YAAaL,EACbM,OAAQC,IACRC,UAAWD,IACXtsD,QAAS,EACX,EACF,CAqEO,SAASsoB,EAAwBkjC,CAAyB,CAAEx3C,CAAoB,EAErF,OAAOw4C,SA1CajB,CAAe,CAAEv3C,CAAoB,EACzD,IAAMy4C,EAAgBlB,GAAQz1D,SAAW,EACnC,CAAE0D,KAAAA,CAAI,CAAEsQ,MAAAA,CAAK,CAAE4G,UAAAA,CAAS,CAAE,CAAGg8C,SA7BCnB,CAAe,CAAEv3C,CAAoB,EACzE,GAAM,CAAExa,KAAMmzD,CAAW,CAAE,CAAGR,IACxB,CACJ3yD,KAAAA,CAAI,CACJozD,UAAAA,CAAS,CACT9iD,MAAO+iD,CAAU,CACjBn8C,UAAWo8C,CAAc,CAC1B,CAAGltD,CAAAA,EAAAA,EAAAA,CAAAA,EAAsD,CACxDC,SAAU,CAAC+rD,EAAUE,QAAQ,CAAEP,EAAQv3C,EAAO,CAC9CswB,QAAS,IAAM6mB,EAAwBI,EAAQv3C,GAC/ChU,QAAS2sD,EAAYX,aAAa,CAClCe,MAAO,EACT,GAYA,MAVAl7D,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACJ+6D,GAAapzD,GAAMwzD,MACrBpsD,OAAOG,OAAO,CAACvH,EAAKwzD,IAAI,EAAErmD,OAAO,CAAC,CAAC,CAAC6kD,EAAS/iC,EAAO,KAClDwkC,SDwC4BxkC,CAAe,CAAE2iC,CAAc,EAIjE,IAAM8B,EAAgBjS,CAHRzpD,OAAO27D,eAAe,EAAErxD,MAAM,KAAKnG,OAAOC,UAAY,EAAE,EAG1CD,MAAM,CAAC,GAAUilD,EAAK9+C,KAAK,CAAC,MAAM,CAAC,EAAE,GAAKsvD,GAEtE8B,EAAcv5D,IAAI,CAAC,CAAC,EAAEy3D,EAAM,CAAC,EAAE3iC,EAAO,CAAC,EACvCj3B,OAAO27D,eAAe,CAAGD,EAAczrC,IAAI,CAAC,IAC9C,EChD4BgH,EAAQ+iC,EAC9B,EAEJ,EAAG,CAACoB,EAAWpzD,EAAK,EAIb,CAAEA,KAAAA,EAAMsQ,MAFD6iD,EAAY7iD,KAAK,EAAI+iD,EAEbn8C,UADJi8C,EAAYj8C,SAAS,EAAKi8C,EAAYX,aAAa,EAAIc,CACzC,CAClC,EAIkEvB,EAAQv3C,GAElEqU,EAAW,CAAC3X,EACZ08C,EAAqC,CAAEhlC,UAAW,KAAMC,SAAAA,EAAUve,MAAAA,CAAM,EACxEujD,EAAe,IACnB,IAAMz1B,EAAOp+B,GAAMw+B,OAAO73B,KAAK,CAAC,CAAE9H,CAAC,CAAE,GAAKA,IAAMmzD,GAChD,MAAO,CACL/iC,OAAQjvB,GAAMwzD,MAAM,CAACxB,EAAQ,CAC7Bx3C,OAAQ4jB,GAAM4O,EACd8mB,KAAM11B,GAAM21B,EACd,CACF,EAGA,GAAIzjD,EACF,OAAO2iD,EAAgBW,EAAenB,EAAaV,EAAQ6B,GAG7D,IAAMI,EAAsBvB,EAAaV,EAAQ,GAExC,EAAEzhD,MAAAA,EAAOue,SAAAA,EAAUD,UADRilC,EAAa7B,EACK,IAGhCiC,EAAsDplC,EACxDmlC,EACAvB,EAAaV,EAAQ6B,GAGnBM,EAAanC,CAAM,CAAC,EAAE,CAC5B,OAAOkB,GAAiBiB,EAAaD,CAAW,CAACC,GAAYlC,QAAQ,CAAGiC,CAC1E,EASiB,iBAAOjC,EAAuB,CAAC,CAAEA,QAAAA,EAASx3C,OAAAA,CAAO,EAAE,CAAGw3C,EACzCx3C,EAC9B,CAEO,SAAS25C,IACd,IAAMjgB,EAAS6I,CAAAA,EAAAA,EAAAA,EAAAA,IAYf,OATA4V,IAEI/vD,EAAAA,CAASA,EACP5K,OAAOo8D,mBAAmB,GAAKp8D,OAAO4B,QAAQ,CAACmJ,QAAQ,GACzD/K,OAAOo8D,mBAAmB,CAAGp8D,OAAO4B,QAAQ,CAACmJ,QAAQ,CACrD/K,OAAO27D,eAAe,CAAG/kD,KAAAA,GAItB,IDvDP,GAAKhM,CAASA,CAGP,CAAC,CAAC5K,QAAQq8D,YAFR,IACT,GCuDIC,SDnD0B1qB,CAA0B,EACxD,GAAI,CAAChnC,EAAAA,CAASA,CACZ,OAEF,IAAM8uD,EACJ15D,QAASq8D,aAAe,IAAIr8D,OAAOq8D,WAAW,CAACE,SAAS,CAAC3qB,IAAY,IACvE5xC,CAAAA,OAAO05D,iBAAiB,CAAGA,CAE7B,EC2CsB9nB,GAChBsK,EAAOgM,YAAY,CAAC,CAACiS,IAAa,CAAE,CAClCK,cAAe,GACft7C,UAAW,GACX5G,MAAO,IACT,IAEA4jC,EAAOgM,YAAY,CAAC,CAACiS,IAAa,CAAE,CAClCK,cAAe,GACft7C,UAAW,GACX5G,MAAO,MAAU,iBACnB,EAEJ,CACF,uGG/JO,IAAMkkD,EAAyD,CACpEC,GAAI,gBACJC,GAAI,uBACJC,GAAI,iBACJC,GAAI,mBACJC,GAAI,oBACJC,GAAI,kBACJC,GAAI,yBACJC,GAAI,KACJC,GAAI,gBACJC,GAAI,oBACJC,GAAI,eACJC,GAAI,kBACJC,GAAI,0BACJC,GAAI,eACJC,GAAI,aACJC,GAAI,iBACJC,GAAI,kBACJC,GAAI,kBACJC,GAAI,mBACJC,GAAI,mBACJC,GAAI,gBACJC,GAAI,gBACJC,GAAI,kBACJC,GAAI,sBACJC,GAAI,kBACJC,GAAI,IACN,ECiFaC,EAAoB,CAC/B9gB,KAAM,WACNC,iBAAkB,gBAClB7O,aAAc,eACdC,qBAAsB,uBACtB6O,OAAQ,SACRC,WAAY,2BACZ5O,UAAW,YACXjuC,QAAS,UACTkuC,aAAc,eACdC,aAAc,eACdC,IAAK,MACLC,UAAW,gBACXE,mBAAoB,qBACpBuO,OAAQ,aACRpO,QAAS,UACTuO,UAAW,YACXtO,cAAe,gBACfoO,aAAc,kBACdC,QAAS,UACTG,UAAW,WACb,eC7HO,IAAMsgB,EAAmB,CAACxsB,EAAyB5F,KACxD58B,OAAOC,IAAI,CAAC28B,GAAO72B,OAAO,CAAC,IACrB62B,CAAK,CAACqyB,EAAQ,EAChBzsB,EAAOgkB,MAAM,CACXuI,CAAiB,CAACE,EAA0C,CAC5DC,UAAUtyB,CAAK,CAACqyB,EAAQ,EAG9B,EACF,EAOME,EAA2B,GAC/BpwB,EAAM/lC,MAAM,CAAC,CAACo2D,EAAOl2D,KAEnB,IAAM8lC,EACJ,iBAAO9lC,EAAK8lC,MAAM,CAAgBz8B,MAAMrJ,EAAK8lC,MAAM,EAAEn6B,IAAI,CAAC,CAAEktC,IAAKvqC,KAAAA,CAAU,GAAKtO,EAAK8lC,MAAM,CACvF16B,EACJ,iBAAOpL,EAAKoL,QAAQ,CAChB/B,MAAMrJ,EAAKoL,QAAQ,EAAEO,IAAI,CAAC,CAAEktC,IAAKvqC,KAAAA,CAAU,GAC3CtO,EAAKoL,QAAQ,CAEnB,OADA8qD,EAAMr8D,IAAI,CAAC,CAAEisC,OAAAA,EAAQ16B,SAAAA,CAAS,GACvB8qD,CACT,EAAG,EAAE,EAOMC,EAAmB,CAAC7sB,EAAyB7D,EAAmBI,KAC3E,GAAI,GAAWJ,GAEf,GAAII,EAAO,CACT,IAAMuwB,EAAkBH,EAAyBpwB,EAC7CuwB,CAAAA,EAAgBp6D,MAAM,GAAKypC,EAC7B6D,EAAOgkB,MAAM,CAAC,WAAYtkB,OAAOvD,IAI1B2wB,IAAAA,EAAgBp6D,MAAM,EAAUo6D,CAAe,CAAC,EAAE,EACzD9sB,EAAOgkB,MAAM,CAAC,WAAYtkB,OAAOotB,EAAgBp6D,MAAM,GACvDstC,EAAOgkB,MAAM,CAAC,YAAatkB,OAAOotB,CAAe,CAAC,EAAE,CAACtwB,MAAM,CAAC9pC,MAAM,GAClEstC,EAAOgkB,MAAM,CAAC,cAAetkB,OAAOotB,CAAe,CAAC,EAAE,CAAChrD,QAAQ,CAACpP,MAAM,GACtEstC,EAAOgkB,MAAM,CACX,iBACA8I,CAAe,CAAC,EAAE,CAAChrD,QAAQ,CACxBvP,MAAM,CAAC,GAAO+8C,KAAUtqC,IAAVsqC,EAAEC,GAAG,EACnBz6C,GAAG,CAAC,GAAOw6C,EAAEC,GAAG,EAChBlxB,IAAI,CAAC,MAEV2hB,EAAOgkB,MAAM,CACX,iBACA8I,CAAe,CAAC,EAAE,CAACtwB,MAAM,CACtBjqC,MAAM,CAAC,GAAO0C,KAAU+P,IAAV/P,EAAEs6C,GAAG,EACnBz6C,GAAG,CAAC,GAAOG,EAAEs6C,GAAG,EAChBlxB,IAAI,CAAC,QAGV2hB,EAAOgkB,MAAM,CAAC,WAAYtkB,OAAOotB,EAAgBp6D,MAAM,GACvDo6D,EAAgBvpD,OAAO,CAAC,CAAC8rC,EAAM10B,KAC7B,IAAMoyC,EAAcD,CAAe,CAACnyC,EAAE,CACtCqlB,EAAOgkB,MAAM,CAAC,CAAC,IAAI,EAAErpC,EAAI,EAAE,SAAS,CAAC,CAAE+kB,OAAO2P,EAAK7S,MAAM,CAAC9pC,MAAM,GAChEstC,EAAOgkB,MAAM,CAAC,CAAC,IAAI,EAAErpC,EAAI,EAAE,WAAW,CAAC,CAAE+kB,OAAO2P,EAAKvtC,QAAQ,CAACpP,MAAM,GAChEq6D,GACF/sB,EAAOgkB,MAAM,CACX,CAAC,IAAI,EAAErpC,EAAI,EAAE,SAAS,CAAC,CACvBoyC,EAAYvwB,MAAM,CACfjqC,MAAM,CAAC,GAAO0C,KAAU+P,IAAV/P,EAAEs6C,GAAG,EACnBz6C,GAAG,CAAC,GAAOG,EAAEs6C,GAAG,EAChBlxB,IAAI,CAAC,MAER0uC,GACF/sB,EAAOgkB,MAAM,CACX,CAAC,IAAI,EAAErpC,EAAI,EAAE,SAAS,CAAC,CACvBoyC,EAAYjrD,QAAQ,CACjBvP,MAAM,CAAC,GAAO+8C,KAAUtqC,IAAVsqC,EAAEC,GAAG,EACnBz6C,GAAG,CAAC,GAAOw6C,EAAEC,GAAG,EAChBlxB,IAAI,CAAC,KAEd,GAEJ,MAAW8d,GAAU6D,EAAOgkB,MAAM,CAAC,WAAYtkB,OAAOvD,IACxD,EAQa6wB,EAAmB,CAAChtB,EAAyBhG,KACnDA,IAEDA,GAAOC,aAAa+F,EAAOgkB,MAAM,CAAC,cAAe3pB,CAAAA,EAAAA,EAAAA,EAAAA,EAAOL,GAAOC,YAAa,eAC5ED,GAAOE,eACT8F,EAAOgkB,MAAM,CAAC,gBAAiB3pB,CAAAA,EAAAA,EAAAA,EAAAA,EAAOL,GAAOE,cAAe,eAC1DF,GAAO+Q,gBAAkB/lC,KAAAA,GAC3Bg7B,EAAOgkB,MAAM,CAAC,gBAAiBhqB,GAAO+Q,cAAcxQ,YACxD,EAea0yB,EAA6B,CAAC,CACzCC,WAAAA,CAAU,CACV9wB,aAAAA,CAAY,CACZD,SAAAA,CAAQ,CACRgxB,cAAAA,CAAa,CACmB,GACzBhxB,GAAY,IAAMC,EAAe,EAAI8wB,EAAaC,ECyB9CviB,EAAmB,CAAC,CAC/Bj8C,UAAAA,EAAY,IAAI,CAChBuM,OAAAA,EAAS,IAAI,CACblK,KAAAA,EAAO,QAAQ,CACf+oC,UAAAA,CAAS,CACT8Q,SAAAA,CAAQ,CACR7S,QAAAA,CAAO,CACPo1B,UAAAA,CAAS,CACTC,YAAAA,CAAW,CACiC,IAC5C,GAAM,CACJviB,kBAAAA,CAAiB,CACjBI,oBAAAA,CAAmB,CACnBvU,QAAAA,CAAO,CACPqD,MAAAA,CAAK,CACLgR,gBAAAA,CAAe,CACfG,aAAAA,CAAY,CACZC,eAAAA,CAAc,CACdC,aAAAA,CAAY,CACZC,QAAAA,CAAO,CACPC,qBAAAA,CAAoB,CACpBN,UAAAA,CAAS,CACT7O,aAAAA,CAAY,CACZD,SAAAA,CAAQ,CACRG,QAAAA,CAAO,CACPxvB,iBAAAA,CAAgB,CAChBG,MAAAA,EAAQ,EAAE,CACVmtB,MAAAA,CAAK,CACLmC,MAAAA,CAAK,CACLE,aAAAA,CAAY,CACZ+O,OAAAA,CAAM,CACNW,kBAAAA,CAAiB,CACjBE,IAAAA,CAAG,CACJ,CAAGtS,GAAa,CAAC,EAGd1nC,EAAMw4C,CAAAA,GAAa,IAAc7S,CAAAA,EAA0B,CAAC,EAAEA,EAAQ,CAAC,EAAE98B,EAAO,CAAC,CAArC,CAAC,CAAC,EAAEA,EAAO,CAAC,CACtDoyD,EAAa,CAAEtzB,CAAAA,GAAOC,aAAeD,GAAOE,aAAAA,EAC5CqzB,EAAWN,EAA2B,CAC1C7wB,aAAcA,GAAgB,EAC9BD,SAAUA,GAAY,EACtBgxB,cAAen8D,EACfk8D,WAAY,cACd,GAGA,OAAQK,GACN,IAAK,YACHl7D,GAAO,qBACP,KACF,KAAK,UACHA,GAAO,mBACP,KACF,KAAK,cACCg7D,GACFh7D,CAAAA,GAAO,CAAC,CAAC,EAAEg7D,EAAY,CAAC,EAE1Bh7D,GAAO,UACH+6D,GACF/6D,CAAAA,GAAO,CAAC,CAAC,EAAE+6D,EAAU,CAAC,EAExB/6D,GAAO,gBACP,KACF,KAAK,wBACHA,GAAO,0BACP,KACF,KAAK,sBACHA,GAAO,+BACP,KACF,KAAK,eACHA,GAAO,iBACP,KACF,SAEEA,GAAO,UACX,CAOA,GAJiB,WAAbk7D,GAAyB3C,CAA0B,CAACj8D,EAAU,EAChE0D,CAAAA,GAAO,CAAC,EAAEu4D,CAA0B,CAACj8D,EAAU,CAAC,CAAC,CAAC,EAGhD,CAACorC,GAAa,CAACv8B,OAAOC,IAAI,CAACs8B,GAAY,OAAO1nC,EAElD,IAAM2tC,EAAS,IAAIE,gBACf5D,GAAS0D,EAAOgkB,MAAM,CAAC,UAAW1nB,GAClCtC,GAAOgzB,EAAiBhtB,EAAQhG,GAEhCuzB,iBAAAA,GACEhxB,GAAOswB,EAAiB7sB,EAAQ7D,GAAsBI,EAAM7pC,MAAM,CAAE6pC,GACpEnC,GAAOoyB,EAAiBxsB,EAAQ5F,GAChC+R,GAAmBnM,EAAOgkB,MAAM,CAAC,oBAAqB7X,EAAkB9tB,IAAI,CAAC,MAC7E2sB,GAAiBhL,EAAOgkB,MAAM,CAAC,kBAAmBhZ,GAClDF,GAAmB9K,EAAOgkB,MAAM,CAAC,oBAAqBtkB,OAAOoL,IAC7DwiB,GAAc,iBAAOriB,GACvBjL,EAAOgkB,MAAM,CAAC,YAAa/Y,EAAU1Q,QAAQ,IAC3CiR,GAAQxL,EAAOgkB,MAAM,CAAC,SAAUxY,GAChCL,GAAcnL,EAAOgkB,MAAM,CAAC,eAAgB7Y,EAAa9sB,IAAI,CAAC,MAC9D+sB,GAAkBA,GAAgB14C,QACpCstC,EAAOgkB,MAAM,CAAC,iBAAkB5Y,EAAe/sB,IAAI,CAAC,MAClDgtB,GAAcrL,EAAOgkB,MAAM,CAAC,eAAgB3Y,EAAahtB,IAAI,CAAC,MAC9DitB,GAAStL,EAAOgkB,MAAM,CAAC,UAAW1Y,EAAQjtB,IAAI,CAAC,MAC/CktB,GAAsBvL,EAAOgkB,MAAM,CAAC,uBAAwBzY,GAC5DL,GAAqBlL,EAAOgkB,MAAM,CAAC,sBAAuBtkB,OAAOwL,IACjEp+B,GAAkBkzB,EAAOgkB,MAAM,CAAC,mBAAoBl3C,EAAiBytB,QAAQ,MAI7E5rC,GAAWqxC,EAAOgkB,MAAM,CAAC,YAAar1D,GACtCwtC,GAAU6D,EAAOgkB,MAAM,CAAC,WAAY7nB,EAAS5B,QAAQ,IACrD6B,GAAc4D,EAAOgkB,MAAM,CAAC,iBAAkB5nB,EAAa7B,QAAQ,KAGrEkC,GAAcuD,EAAOgkB,MAAM,CAAC,eAAgBvnB,GAC5C4P,GAAKrM,EAAOgkB,MAAM,CAAC,MAAO3X,GAC1B1V,GAASqJ,EAAOgkB,MAAM,CAAC,UAAWrtB,GAEtC,IAAM62B,EAAcxtB,EAAOzF,QAAQ,GAEnC,MAAO,CAAC,EAAEloC,EAAI,OAAO,EAAE0uB,mBAAmB9T,GAAO,EAAEugD,EAAc,IAAM,GAAG,EAAEA,EAAY,CAAC,EE/M9E9f,EAAqB,CAAC,CACjCxyC,OAAAA,EAAS,IAAI,CACblK,KAAAA,EAAO,WAAW,CAClBrC,UAAAA,CAAS,CACTorC,UAAAA,CAAS,CACT8Q,SAAAA,CAAQ,CACR7S,QAAAA,CAAO,CAC2C,IAClD,GAAM,CACJgT,gBAAAA,CAAe,CACf3N,UAAAA,CAAS,CACTZ,aAAAA,CAAY,CACZ+O,OAAAA,CAAM,CACNL,aAAAA,CAAY,CACZE,aAAAA,CAAY,CACZC,QAAAA,CAAO,CACPC,qBAAAA,CAAoB,CACpBT,kBAAAA,CAAiB,CACjBiC,SAAAA,CAAQ,CACRzQ,QAAAA,CAAO,CACPtsC,SAAAA,CAAQ,CACRy9C,YAAAA,CAAW,CACXD,OAAAA,CAAM,CACNvgC,MAAAA,CAAK,CACLo/B,IAAAA,CAAG,CACH1V,QAAAA,CAAO,CACR,CAAGoD,GAAa,CAAC,EAGd0zB,EACF5iB,CAAAA,GAAa,IAAc7S,CAAAA,EAGvB,CAAC,EAAEA,EAAQ,EAAEA,GAAS01B,SAAS,KAAO,GAAK,IAAI,EAAExyD,EAAO,CAAC,CAFzD,CAAC,CAAC,EAAEA,EAAO,CAAC,CAMX,oBADClK,EAEJy8D,GAAY,oBAIZA,GAAY,cAGZ1gB,GACF0gB,CAAAA,GAAY1gB,EAAS2gB,QAAQ,CAAC,KAAO3gB,EAAW,CAAC,EAAEA,EAAS,CAAC,CAAC,EAGhE,IAAM4gB,EACJ,CAACtiB,GAAiBA,IAAAA,EAAa34C,MAAM,EAAU24C,CAAY,CAAC,EAAE,GAAK18C,EAGnEA,GACEi8D,CAA0B,CAACj8D,EAAU,EACvCqC,cAAAA,GACA28D,GAEAF,CAAAA,GAAY,CAAC,EAAE7C,CAA0B,CAACj8D,EAAU,CAAC,CAAC,CAAC,EAGzD,IAAMqxC,EAAS,IAAIE,eACN,qBAATlvC,IACEg6C,GAAiBhL,EAAO9uC,GAAG,CAAC,kBAAmB85C,GAC/C3N,GAAW2C,EAAOgkB,MAAM,CAAC,YAAatkB,OAAOrC,IAC7CmO,GAAQxL,EAAOgkB,MAAM,CAAC,SAAUxY,GAChCL,GAAcnL,EAAOgkB,MAAM,CAAC,eAAgB7Y,EAAa9sB,IAAI,CAAC,MAC9DgtB,GAAcrL,EAAOgkB,MAAM,CAAC,eAAgB3Y,EAAahtB,IAAI,CAAC,MAC9DitB,GAAStL,EAAOgkB,MAAM,CAAC,UAAWtkB,OAAO4L,IACzCC,GAAsBvL,EAAOgkB,MAAM,CAAC,uBAAwBzY,GAC5DT,GAAmB9K,EAAOgkB,MAAM,CAAC,oBAAqBtkB,OAAOoL,IAC7DxO,GAAS0D,EAAOgkB,MAAM,CAAC,UAAW1nB,GAClCrvB,GAAO+yB,EAAOgkB,MAAM,CAAC,QAAS/2C,GAC9Bjd,IACFgwC,EAAOgkB,MAAM,CAAC,SAAU,CAAC,EAAEh0D,EAASowC,QAAQ,CAAC,CAAC,EAAEpwC,EAASqwC,SAAS,CAAC,CAAC,EAChEoN,GAAazN,EAAOgkB,MAAM,CAAC,cAAevW,IAE5CD,GACFxN,EAAOgkB,MAAM,CACX,SACA,CAAC,EAAExW,EAAOogB,SAAS,CAACxtB,QAAQ,CAAC,CAAC,EAAEoN,EAAOogB,SAAS,CAACvtB,SAAS,CAAC,CAAC,EAAEmN,EAAOqgB,SAAS,CAACztB,QAAQ,CAAC,CAAC,EAAEoN,EAAOqgB,SAAS,CAACxtB,SAAS,CAAC,CAAC,EAGvH1J,GACFqJ,EAAOgkB,MAAM,CAAC,UAAWrtB,IAIzB8F,GAAcuD,EAAOgkB,MAAM,CAAC,eAAgBvnB,GAC5C4P,GAAKrM,EAAOgkB,MAAM,CAAC,MAAO3X,GAE9B,IAAMyhB,EAAc9tB,EAAOzF,QAAQ,GAEnC,OADAkzB,EAAYK,CAAAA,EAAc,CAAC,CAAC,EAAEA,EAAY,CAAC,CAAG,GAEhD,0BErHO,SAASh0B,EAAe,CAC7B5+B,OAAAA,EAAS,IAAI,CACblK,KAAAA,EAAO,MAAM,CACb+oC,UAAAA,CAAS,CACT8Q,SAAAA,CAAQ,CACR7S,QAAAA,CAAO,CACP1oC,KAAAA,EAAO,OAAO,CAGf,EACC,IAAMy+D,EAAqB,CAACC,SAkFR,CACpBnjB,SAAAA,CAAQ,CACR7S,QAAAA,CAAO,CACP98B,OAAAA,CAAM,CAKP,EACC,MAAO2vC,CAAAA,GAAa,IAAc7S,CAAAA,EAA0B,CAAC,EAAEA,EAAQ,CAAC,EAAE98B,EAAO,CAAC,CAArC,CAAC,CAAC,EAAEA,EAAO,CAAC,EA3FhB,CAAE2vC,SAAAA,EAAU7S,QAAAA,EAAS98B,OAAAA,CAAO,GAAG,CAElEihC,EAAWpC,GAAWoC,UAAYpC,GAAWwC,OAAO7pC,QAAU,EAC9D0pC,EAAerC,GAAWqC,aAAerC,GAAWqC,aAAe,EAkBzE,MAhBIprC,WAAAA,EACF+8D,EAASx9D,IAAI,CAAC,UAEdw9D,EAASx9D,IAAI,CAAC,QAGhBw9D,EAASx9D,IAAI,CACX08D,EAA2B,CACzB7wB,aAAcA,GAAgB,EAC9BD,SAAUA,GAAY,EACtBgxB,cAAe,cACfD,WAAY,OACd,GACA59D,GAGK,CAAC,EAAEy+D,EAAS1vC,IAAI,CAAC,KAAK,EAAE,EAAE4vC,SAIjCl0B,CAAqE,EAErE,GAAM,CACJlrC,QAAAA,CAAO,CACPm8C,gBAAAA,CAAe,CACfF,kBAAAA,CAAiB,CACjB9Q,MAAAA,CAAK,CACLuC,MAAAA,CAAK,CACLnC,MAAAA,EAAQ,CAAC,CAAC,CACVkS,aAAAA,EAAe,CAAC,CAAC,CACjBnQ,SAAAA,CAAQ,CACRC,aAAAA,CAAY,CACZtvB,iBAAAA,CAAgB,CACjB,CAAGitB,GAAa,CAAC,EAEZE,EAAcD,GAAOC,aAAeK,CAAAA,EAAAA,EAAAA,CAAAA,IACpCJ,EAAgBF,GAAOE,eAAiBC,CAAAA,EAAAA,EAAAA,CAAAA,EAAQG,CAAAA,EAAAA,EAAAA,CAAAA,IAAgB,GAChE4zB,EAAuB1wD,OAAO2wD,WAAW,CAC7C3wD,OAAOG,OAAO,CAAC2uC,GAAc/5C,MAAM,CAAC,CAAC,EAAGkhC,EAAE,GAAKjhC,CAAAA,CAAQihC,GAAMA,CAAM,IAANA,IAGzD26B,EAA4B,CAChCv/D,QAAAA,EACAorC,YAAao0B,EAAWp0B,GACxBC,cAAem0B,EAAWn0B,GAC1B,GAAGE,CAAK,CACR,GAAI+B,MAAAA,GAAoB,CAACC,GAgD3B,IAAY1pC,OAKR,CAAC6pC,GAAO7pC,QAAU,IAAM,GACnB,CACLypC,SAvDiDI,GAuDhC7pC,MACnB,EAEK6pC,EAAM/lC,MAAM,CAAC,CAACC,EAAMC,EAAMsV,KAC/B,IAAMwwB,EACJ,iBAAO9lC,EAAK8lC,MAAM,CAAgBz8B,MAAMrJ,EAAK8lC,MAAM,EAAEn6B,IAAI,CAAC,CAAEktC,IAAK,IAAK,GAAK74C,EAAK8lC,MAAM,CAClF16B,EACJ,iBAAOpL,EAAKoL,QAAQ,CAAgB/B,MAAMrJ,EAAKoL,QAAQ,EAAEO,IAAI,CAAC,CAAEktC,IAAK,IAAK,GAAK74C,EAAKoL,QAAQ,CAExFwsD,EAAatiD,EAAQ,EAC3B,GAAIwwB,EAAO9pC,MAAM,CAAE,CACjB+D,CAAI,CAAC,CAAC,IAAI,EAAE63D,EAAW,SAAS,CAAC,CAAC,CAAG9xB,EAAO9pC,MAAM,CAClD,IAAMoxD,EAAYtnB,EACfjqC,MAAM,CAAC,GAAO0C,KAAU+P,IAAV/P,EAAEs6C,GAAG,EAAkBt6C,OAAAA,EAAEs6C,GAAG,EAC1Cz6C,GAAG,CAAC,GAAOG,EAAEs6C,GAAG,CACfuU,CAAAA,EAAUpxD,MAAM,EAClB+D,CAAAA,CAAI,CAAC,CAAC,IAAI,EAAE63D,EAAW,SAAS,CAAC,CAAC,CAAGxK,EAAUzlC,IAAI,CAAC,KAExD,CACA,GAAIvc,EAASpP,MAAM,CAAE,CACnB+D,CAAI,CAAC,CAAC,IAAI,EAAE63D,EAAW,WAAW,CAAC,CAAC,CAAGxsD,EAASpP,MAAM,CACtD,IAAM67D,EAAYzsD,EAASvP,MAAM,CAAC,GAAO+8C,OAAAA,EAAEC,GAAG,EAAWz6C,GAAG,CAAC,GAAOw6C,EAAEC,GAAG,CACrEgf,CAAAA,EAAU77D,MAAM,EAClB+D,CAAAA,CAAI,CAAC,CAAC,IAAI,EAAE63D,EAAW,SAAS,CAAC,CAAC,CAAGC,EAAUlwC,IAAI,CAAC,KAExD,CAEA,OAAO5nB,CACT,EAAG,CAAC,GAlCK,CACL+3D,eAAgB,CAClB,CACF,CApD2D,CACzD,GAAGN,CAAoB,EAWzB,OARIljB,GAAiBojB,CAAAA,EAAepjB,eAAe,CAAGA,CAAAA,EAClDF,GAAmBsjB,CAAAA,EAAetjB,iBAAiB,CAAGA,CAAAA,EAC1C,MAAZ3O,GAAkBiyB,CAAAA,EAAejyB,QAAQ,CAAGA,CAAAA,EAChC,MAAZA,GAAoBC,GAAcgyB,CAAAA,EAAejyB,QAAQ,CAAG,GAC5DC,GAAcgyB,CAAAA,EAAehyB,YAAY,CAAGA,CAAAA,EAC5CkQ,EAAaD,GAAG,EAAE+hB,CAAAA,EAAe/hB,GAAG,CAAGC,EAAaD,GAAG,EACvDv/B,GAAkBshD,CAAAA,EAAethD,gBAAgB,CAAGA,CAAAA,EAEjD,IAAIozB,gBAKJ1iC,OAAOG,OAAO,CALgBywD,GAKP53D,MAAM,CAAC,CAACwpC,EAAQ,CAAC9lC,EAAKjJ,EAAM,GACxD,WAAI,OAAOA,EACF,CAAE,GAAG+uC,CAAM,CAAE,CAAC9lC,EAAI,CAAEwlC,OAAOzuC,EAAO,EAEvC,iBAAOA,EACF,CAAE,GAAG+uC,CAAM,CAAE,CAAC9lC,EAAI,CAAEulC,SAASxuC,GAASyuC,OAAOzuC,GAAS,EAAG,EAE9D,iBAAOA,EACF,CAAE,GAAG+uC,CAAM,CAAE,CAAC9lC,EAAI,CAAEjJ,CAAM,EAE5B,CAAE,GAAG+uC,CAAM,CAAE,CAAC9lC,EAAI,CAAE,EAAG,EAC7B,CAAC,IAhBkDqgC,QAAQ,EAChE,EA3CoDR,GAAW,CAAC,CAyEhE,SAASs0B,EAAW30B,CAAU,EAC5B,MAAOW,CAAAA,EAAAA,EAAAA,EAAAA,EAAOX,EAAM,aACtB,8IKrJO,SAAS+0B,EAAUh5D,CAAgB,EACxC,MACE,GAAA5B,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,oCACd,GAAAF,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAAE,GAAGhQ,CAAK,CAAE1B,UAAWsM,IAAW,OAAQ5K,EAAM1B,SAAS,KAGpE,CCDO,SAAS26D,EAAc,CAAEC,oBAAqB/8D,CAAK,CAAE+T,QAAAA,CAAO,CAAkB,EACnF,IAAM1S,EAASrB,SAAAA,EACTg9D,EAAUh9D,UAAAA,EACVi9D,EAAUlpD,UAAAA,EACVmpD,EAAYnpD,YAAAA,EAClB,OAAOtF,IAAW,mCAAoC,CACpD,kBAAmBwuD,GAAW,CAACD,GAAW,CAAC37D,EAC3C,oBAAqB67D,GAAa,CAACF,GAAW,CAAC37D,EAC/C,iBAAkBA,GAAU,CAAC47D,GAAW,CAACC,EACzC,yBAA0B77D,GAAU67D,EACpC,uBAAwB77D,GAAU47D,EAClC,kBAAmBD,GAAW,CAACC,GAAW,CAACC,EAC3C,0BAA2BF,GAAWE,EACtC,wBAAyBF,GAAWC,CACtC,EACF,CCHO,IAAM36B,EAAYjG,CAAAA,EAAAA,EAAAA,UAAAA,EACvB,CAAC,CAAEv5B,MAAAA,CAAK,CAAEq6D,UAAAA,CAAS,CAAEJ,oBAAAA,CAAmB,CAAEhpD,QAAAA,CAAO,CAAE7E,QAAAA,CAAO,CAAE,GAAGa,EAAW,CAAErP,IAC1E,GAAAuB,EAAAK,IAAA,EAACK,EAAAA,EAAIA,CAAAA,CACF,GAAGoN,CAAS,CACbrP,IAAKA,EACLqD,gBAAiB3B,IACf2N,EAAUhM,eAAe,CACzB+4D,EAAc,CAAEC,oBAAAA,EAAqBhpD,QAAAA,CAAQ,IAE/C5R,UAAW4N,EAAU5N,SAAS,EAAI,GAClCY,YAAagN,EAAUhN,WAAW,EAAI,GACtCtC,IAAKsP,EAAUtP,GAAG,CAClB6X,kBAAmBvI,EAAWuI,iBAAiB,EAAIvI,EAAUhN,WAAW,EAAK,GAC7EH,UAAW,GACXP,cAAY,iBACZ6M,QAASA,YAERiuD,EAAY,GAAAl7D,EAAAlD,GAAA,EAAC89D,EAASA,CAAE,GAAGM,CAAS,GAAO,KAC5C,GAAAl7D,EAAAlD,GAAA,EAAC8D,OAAAA,UAAMC,OAKbw/B,CAAAA,EAAUh+B,WAAW,CAAG,YC1BjB,IAAM48B,EAAc7E,CAAAA,EAAAA,EAAAA,UAAAA,EACzB,CAAC,CAAEv5B,MAAAA,CAAK,CAAEiR,QAAAA,CAAO,CAAEopD,UAAAA,CAAS,CAAEJ,oBAAAA,CAAmB,CAAE,GAAGK,EAAa,CAAE18D,IACnE,GAAAuB,EAAAlD,GAAA,EAACkW,SAAAA,CACCvT,KAAK,SACJ,GAAG07D,CAAW,CACf18D,IAAKA,EACLyB,UAAWC,IAAGg7D,EAAYj7D,SAAS,CAAE26D,EAAc,CAAEC,oBAAAA,EAAqBhpD,QAAAA,CAAQ,IAClF1R,cAAY,4BAEZ,GAAAJ,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAU,iBACbg7D,EAAY,GAAAl7D,EAAAlD,GAAA,EAAC89D,EAASA,CAAE,GAAGM,CAAS,GAAO,KAC3Cr6D,OAMTo+B,CAAAA,EAAY58B,WAAW,CAAG,yKGrBnB,IAAM2yB,EAAcz3B,EAAAA,UAAgB,CACzC,CAAC,CAAE2C,UAAAA,CAAS,CAAEgQ,SAAAA,CAAQ,CAAErP,MAAAA,CAAK,CAAEsS,KAAAA,EAAO,IAAI,CAAE,GAAGnV,EAAM,CAAEC,IAEnD,GAAA+B,EAAAK,IAAA,EAAC2S,SAAAA,CACCvU,IAAKR,EACLwB,KAAK,SACLS,UAAWC,IAAG,4DAA6DD,GAC3EgQ,SAAUA,EACT,GAAGlS,CAAI,WAER,GAAAgC,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAWW,IAC3B,GAAAb,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,iBAAiB+J,KAAMA,OAM1C6hB,CAAAA,EAAY3yB,WAAW,CAAG,cCjBnB,IAAMw/C,EAAetkD,EAAAA,UAAgB,CAC1C,CAAC,CAAE2C,UAAAA,CAAS,CAAEW,MAAAA,CAAK,CAAEqP,SAAAA,CAAQ,CAAEiD,KAAAA,EAAO,IAAI,CAAE,GAAGnV,EAAM,CAAEC,IACrD,GAAA+B,EAAAK,IAAA,EAAC2S,SAAAA,CACCvU,IAAKR,EACLwB,KAAK,SACLS,UAAWC,IAAG,8BAA+BD,GAC7CgQ,SAAUA,EACT,GAAGlS,CAAI,WAER,GAAAgC,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAWW,IAC3B,GAAAb,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,QAAQ+J,KAAMA,OAK/B0uC,CAAAA,EAAax/C,WAAW,CAAG,eCfpB,IAAMizB,EAAc/3B,EAAAA,UAAgB,CACzC,CAAC,CAAE2C,UAAAA,CAAS,CAAEgQ,SAAAA,CAAQ,CAAErP,MAAAA,CAAK,CAAEsS,KAAAA,EAAO,IAAI,CAAE,GAAGnV,EAAM,CAAEC,IAEnD,GAAA+B,EAAAK,IAAA,EAAC2S,SAAAA,CACCvU,IAAKR,EACLwB,KAAK,SACLS,UAAWC,IAAG,4DAA6DD,GAC3EgQ,SAAUA,EACT,GAAGlS,CAAI,WAER,GAAAgC,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAWW,IAC3B,GAAAb,EAAAlD,GAAA,EAAC8U,EAAAA,EAAIA,CAAAA,CAACxI,KAAK,kBAAkB+J,KAAMA,OAM3CmiB,CAAAA,EAAYjzB,WAAW,CAAG,6LEmBnB,IAAM+4D,EAAcnoD,EAAAA,EAAY,CAE1BooD,EAAa99D,EAAAA,UAAgB,CAIxC,CACE,CACEyhC,UAAAA,CAAS,CACT/wB,SAAAA,CAAQ,CACR/N,UAAAA,CAAS,CACTo7D,qBAAAA,CAAoB,CACpBC,gBAAAA,CAAe,CACfC,uBAAAA,CAAsB,CACtBC,qBAAAA,CAAoB,CACpBzrC,cAAAA,CAAa,CACbrjB,OAAAA,CAAM,CACN2F,MAAAA,CAAK,CACLa,KAAAA,EAAO,IAAI,CACXuoD,cAAAA,CAAa,CACbxoD,UAAAA,CAAS,CACTyoD,qBAAAA,CAAoB,CACpBC,aAAAA,EAAe,EAAK,CACpBlP,qBAAAA,CAAoB,CACrB,CACDzuD,KAEA,IAAM49D,EAAWt+D,EAAAA,MAAY,CAA0B,MACjDu+D,EAAYv+D,EAAAA,MAAY,CAA0B,MAIxD,OAFAA,EAAAA,mBAAyB,CAACU,EAAc,IAAM69D,EAAUjhE,OAAO,EAG7D,GAAAmF,EAAAK,IAAA,EAAC4S,EAAAA,EAAW,EAACu4C,KAAM7+C,YAChBqjB,EAAgB,GAAAhwB,EAAAlD,GAAA,EAACmW,EAAAA,EAAc,EAACwd,QAAO,YAAET,IAAkC,KAC5E,GAAAhwB,EAAAlD,GAAA,EAACmW,EAAAA,EAAa,WACZ,GAAAjT,EAAAlD,GAAA,EAACmW,EAAAA,EAAc,EAAC/S,UAAWC,IAAG,kCAAmCq7D,YAC/D,GAAAx7D,EAAAlD,GAAA,EAACmW,EAAAA,EAAc,EAEbsP,mBAAkBpR,KAAAA,EAClBjR,UAAWC,IACT,0EACA,CACE,WAAYgT,OAAAA,EACZ,WAAYA,OAAAA,EACZ,WAAYA,OAAAA,EACZ,WAAYA,OAAAA,EACZ,WAAYA,OAAAA,EACZ,YAAaA,QAAAA,EACb,YAAaA,QAAAA,EACb,YAAaA,QAAAA,EACb,YAAaA,QAAAA,EACb,YAAaA,QAAAA,EACb,aAAcA,SAAAA,EACd,+CAAgDA,cAAAA,EAChD,OAAQyoD,EACR,OAAQF,CACV,EACAH,GAEFQ,kBAAmB7oD,EACnB8oD,gBAAiB9oD,EAChB,GAAIw5C,EAAuB,CAAE,CAACA,EAAqB,CAAE,EAAK,EAAI,IAAI,UAEnE,GAAA1sD,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAU,SAASzB,IAAKo9D,YAC1BF,EAAuB,KAAOrpD,EAC7B,GAAAtS,EAAAK,IAAA,EAACC,MAAAA,CACCJ,UAAWC,IAAG,8CAA+C,CAC3D,+BAAgCy7D,CAClC,aAEA,GAAA57D,EAAAlD,GAAA,EAACmW,EAAAA,EAAY,EACX/S,UAAWC,IACT,gIACAs7D,GAEFh7D,mBAAiB,4BAEhB6R,IAEFY,GACC,GAAAlT,EAAAlD,GAAA,EAACm/D,EAAAA,CACC/7D,UAAWo7D,EACXpoD,UAAWA,EACX0oD,aAAcA,OAKpB,GAAA57D,EAAAlD,GAAA,EAACmW,EAAAA,EAAY,EAAC1R,aAAYy9B,EAAW9+B,UAAU,WAEhD,CAACoS,GAASY,EACT,GAAAlT,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,yBACb,GAAAF,EAAAlD,GAAA,EAACm/D,EAAAA,CAAY/oD,UAAWA,EAAW0oD,aAAcA,MAEjD,KACJ,GAAA57D,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAWC,IAAG,MAAOD,YAAa+N,IACtCytD,aAOf,GAKF,SAASO,EAAY,CACnB/oD,UAAAA,CAAS,CACT0oD,aAAAA,CAAY,CACZ17D,UAAAA,CAAS,CACoE,EAC7E,GAAM,CAAE7B,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,cAC7B,MACE,GAAA0B,EAAAlD,GAAA,EAACmW,EAAAA,EAAY,EAACwd,QAAO,YACnB,GAAAzwB,EAAAlD,GAAA,EAAC+kD,EAAAA,EAAYA,CAAAA,CACX50C,QAASiG,EACThT,UAAWC,IACT,kBACA,CACE,WAAY,CAACy7D,EACb,QAASA,CACX,EACA17D,GAEFW,MAAOxC,EAAE,YAIjB,CAxBAg9D,EAAWh5D,WAAW,CAAG,aClJlB,IAAM4Q,EAAmF,IAG9F,IAAM6oD,EAAYv+D,EAAAA,MAAY,CAA0B,MACxD,MAAO,GAAAyC,EAAAlD,GAAA,EAACu+D,EAAUA,CAAE,GAAGz5D,CAAK,CAAEnD,IAAKq9D,GACrC,EEWMI,EAAS9hC,CAAAA,EAAAA,EAAAA,UAAAA,EACb,CAAC,CAAEv5B,MAAAA,CAAK,CAAEa,eAAAA,CAAc,CAAExB,UAAAA,CAAS,CAAE,GAAGlC,EAAM,CAAEC,IAE5C,GAAA+B,EAAAK,IAAA,EAAC2S,SAAAA,CAAQ,GAAGhV,CAAI,CAAEkC,UAAWC,IAAG,aAAcD,GAAYzB,IAAKR,EAAcwB,KAAK,mBAC/EoB,EACAa,EAAiB,GAAA1B,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,mBAAWwB,IAAyB,SAQvE,SAASy6D,EAAc,CAC5B/0D,cAAAA,EAAgB,CAAC,CAAC,CAClBulD,QAAAA,CAAO,CACP5kC,UAAAA,CAAS,CACTC,SAAAA,CAAQ,CACU,EAClB,GAAM,CAAE3pB,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,cACvB,CAAEupB,OAAAA,CAAM,CAAEC,QAAAA,CAAO,CAAEu6B,MAAAA,CAAK,CAAE,CAAGj7C,EAC7Bg1D,EAAkB/Z,GAAOp9B,WAAao9B,GAAOxhD,MAE7Cw7D,EAAU,CACd,CACE,GAAGv0C,CAAO,CACV7a,QAAS8a,EACTlnB,MAAOinB,GAASjnB,OAASxC,EAAE,QAC3B6B,UAAW,cACX,cAAe,sBACfzB,IAAKqpB,GAASrpB,GAChB,EACA,CACE,GAAGopB,CAAM,CACT5a,QAAS+a,EACTnnB,MAAOgnB,GAAQhnB,OAASxC,EAAE,UAC1B6B,UAAW,sBACXzB,IAAKopB,GAAQppB,GACf,EACD,CAACwC,GAAG,CAAC,GACJ,GAAAjB,EAAAlD,GAAA,EAACmW,EAAAA,EAAY,EAAmBwd,QAAO,YACrC,GAAA7Z,EAAAC,aAAA,EAACqlD,EAAAA,CAAQ,GAAGt6D,CAAK,CAAEyE,IAAKzE,EAAMf,KAAK,IADlBe,EAAMf,KAAK,GAKhC,MACE,GAAAb,EAAAK,IAAA,EAACC,MAAAA,CACCJ,UAAWC,IAAG,uEAAwE,CACpF,qBAAsBi8D,EACtB,iBAAkB,CAACA,CACrB,aAECA,EACC,GAAAp8D,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,0BACb,GAAAF,EAAAK,IAAA,EAAC2S,SAAAA,CACC9S,UAAU,kDACVE,cAAY,uBACZ6M,QAAS,IAAM0/C,MACfluD,IAAK4jD,GAAO5jD,IACZgB,KAAK,mBAEJ4iD,GAAOxhD,MACPwhD,GAAO3gD,eACN,GAAA1B,EAAAlD,GAAA,EAAC8D,OAAAA,CAAKV,UAAU,UAAU+c,YAAU,YAAYjG,KAAK,iBAClDqrC,GAAO3gD,iBAER,UAGN,KACJ,GAAA1B,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,4CAAoCm8D,MAGzD,CCzFO,SAASz0C,EAAa,CAC3BxgB,cAAAA,CAAa,CACb4gB,SAAAA,CAAQ,CACRD,UAAAA,CAAS,CACT7U,UAAAA,CAAS,CACTy5C,QAAAA,CAAO,CACP,GAAG2P,EACe,EAClB,IAAMR,EAAYv+D,EAAAA,MAAY,CAA0B,MAUlDm+D,EACJ,GAAA17D,EAAAlD,GAAA,EAACq/D,EAAaA,CACZ/0D,cAAeA,EACfulD,QAASA,EACT3kC,SAZiB,IACnBA,IAAWxsB,EACb,EAWIusB,UATkB,IACpBA,IAAYvsB,EACd,IAUA,MACE,GAAAwE,EAAAlD,GAAA,EAACu+D,EAAUA,CACR,GAAGiB,CAAW,CACfppD,UAAWA,EACXwoD,cAAeA,EACfj9D,IAAKq9D,GAGX,CDPAI,EAAO75D,WAAW,CAAG,sSIpCrB,IAAMygB,EAAgBsX,CAAAA,EAAAA,EAAAA,UAAAA,EACpB,CAAC,CAAEpX,MAAAA,EAAQ,EAAE,CAAED,OAAAA,EAAS,EAAE,CAAE,GAAG/kB,EAAM,CAAES,IACrC,GAAAuB,EAAAK,IAAA,EAAC8N,MAAAA,CACC1P,IAAKA,EACLuY,KAAK,MACLjK,cAAW,GACXgW,OAAQA,EACRC,MAAOA,EACP5U,QAAQ,YACP,GAAGpQ,CAAI,WAER,GAAAgC,EAAAlD,GAAA,EAACuR,IAAAA,CAAEG,KAAK,wBACN,GAAAxO,EAAAlD,GAAA,EAACmmB,SAAAA,CAAO9iB,GAAG,KAAK+iB,GAAG,KAAKC,EAAE,SAE5B,GAAAnjB,EAAAK,IAAA,EAACgO,IAAAA,CAAEK,UAAU,gCAAgCJ,OAAO,UAAUM,cAAc,mBAC1E,GAAA5O,EAAAlD,GAAA,EAACK,OAAAA,CAAKimB,EAAE,8BAA8B7U,YAAY,MAClD,GAAAvO,EAAAlD,GAAA,EAACK,OAAAA,CAAKimB,EAAE,+BAA+B7U,YAAY,YAM3DuU,CAAAA,EAAczgB,WAAW,CAAG,gBCZ5B,IAAMkiB,EAAYhnB,EAAAA,UAAgB,CAChC,CAAC,CAAEsV,MAAAA,CAAK,CAAE3S,UAAAA,CAAS,CAAE,GAAGlC,EAAM,CAAES,KAC9B,IAAM89D,EAAW,CAAC1pD,GAAOgQ,MAAQlZ,OAAOq2B,MAAM,CAACntB,EAAMgQ,KAAK,EAAI,CAAChQ,GAAO4N,QAAQ,EAAE/hB,MAAM,CACpF,GAAO,iBAAOkhC,GAEVzd,EAAWo6C,EAAS19D,MAAM,CAAG,EAEnC,MACE,GAAAmB,EAAAlD,GAAA,EAACwD,MAAAA,CACC7B,IAAKA,EACLyB,UAAWC,IAAGD,EAAW,CACvBkQ,OAAQ,CAAC+R,EACT,cAAeA,CACjB,GACC,GAAGnkB,CAAI,UAEPmkB,GACC,GAAAniB,EAAAlD,GAAA,EAACwD,MAAAA,CAAIJ,UAAU,mCACZq8D,EAASt7D,GAAG,CAAC,GACZ,GAAAjB,EAAAK,IAAA,EAACC,MAAAA,CAECJ,UAAU,kFAEV,GAAAF,EAAAlD,GAAA,EAACgmB,EAAaA,CAAAA,GACd,GAAA9iB,EAAAlD,GAAA,EAAC8D,OAAAA,UAAM6f,MAJForB,OAAOprB,QAW1B,EAGF8D,CAAAA,EAAUliB,WAAW,CAAG,YChBjB,IAAMy/C,EAAqD,CAAC,CACjE0a,aAAAA,CAAY,CACZruC,SAAAA,CAAQ,CACRlgB,SAAAA,CAAQ,CACRoxC,aAAAA,EAAe,CAAE51B,KAAM,YAAaC,aAAc,KAAM,CAAC,CACzD01B,eAAAA,EAAiB,EAAI,CACrBlxB,OAAAA,EAAS,MAAM,CACf,GAAGlwB,EACJ,IACC,GAAM,CAACK,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,YACrBm+D,EAAoBl/D,EAAAA,OAAa,CAAC,IAAM8hD,EAAc,CAACA,EAAa,EAEpE+C,EAAU54B,CAAAA,EAAAA,EAAAA,EAAAA,EAA2B,CACzCC,KAAM,YACNC,aAAc,MACd,GAAG+yC,CAAiB,GAEhB,CACJz9C,UAAW,CAAE0B,OAAAA,CAAM,CAAEsJ,YAAAA,CAAW,CAAE,CACnC,CAAGo4B,EACEn4B,EAAYtgB,OAAOC,IAAI,CAAC8W,GAAQ7hB,MAAM,CAAG,EAQ/C,MACE,GAAAmB,EAAAK,IAAA,EAAC2tB,EAAAA,EAAYA,CAAAA,CAAE,GAAGo0B,CAAO,WACtBhD,GACC,GAAAp/C,EAAAlD,GAAA,EAACwD,MAAAA,CACC0W,KAAK,QACL9W,UAAWC,IAAG,4BAA6B,CACzC,WAAY8pB,GAAaD,CAC3B,YAECC,GAAaD,GACZ,GAAAhqB,EAAAlD,GAAA,EAAC0D,KAAAA,UACC,GAAAR,EAAAlD,GAAA,EAACynB,EAASA,CACRrkB,UAAU,qBACV2S,MAAO,CAAE4N,QAAS+7C,GAAgBn+D,EAAE,eAAgB,QAM9D,GAAA2B,EAAAlD,GAAA,EAACyqB,OAAAA,CAAK2G,OAAQA,EAAS,GAAGlwB,CAAI,CAAEiwB,WAAU,GAACE,SAAUi0B,EAAQr4B,YAAY,CAzBtB,IACjDoE,GACFA,EAAS5rB,EAAM6/C,EAEnB,YAsBOn0C,MAIT,EC3EMqzC,EAAgB,CAAwB,CAAErzC,SAAAA,CAAQ,CAAoB,IAC1E,IAAMm0C,EAAUhjC,CAAAA,EAAAA,EAAAA,EAAAA,IAChB,MAAO,mBAAOnR,EAA0BA,EAASm0C,GAAWn0C,CAC9D,eCAA,IAAMwW,EAAkBlnB,EAAAA,UAAgB,CACtC,CAAC,CAAE2C,UAAAA,CAAS,CAAEugB,QAAAA,CAAO,CAAExY,QAAAA,CAAO,CAAE,GAAGjK,EAAM,CAAES,KACzC,GAAM,CAAEJ,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,YACvBo+D,EAAa,CAAC,CAACj8C,GAAWxY,EAEhC,MACE,GAAAjI,EAAAK,IAAA,EAACC,MAAAA,CACC7B,IAAKA,EACLyB,UAAWC,IAAG,+CAAgDD,EAAW,CACvEkQ,OAAQ,CAACssD,EACT,YAAaA,CACf,GACC,GAAG1+D,CAAI,WAEPiK,GACC,GAAAjI,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACE,GAAA5M,EAAAlD,GAAA,EAAC0xB,EAAAA,CAAOA,CAAAA,CAACrb,KAAK,OACd,GAAAnT,EAAAlD,GAAA,EAACiE,IAAAA,CAAEb,UAAWC,IAAG,CAAE,UAAW,CAAC,CAACsgB,CAAQ,YAAKpiB,EAAE,gBAGlDoiB,GAAW,GAAAzgB,EAAAlD,GAAA,EAACiE,IAAAA,UAAG0f,MAGtB,EAGFgE,CAAAA,EAAgBpiB,WAAW,CAAG,kBC9B9B,IAAMs6D,EAAsE,CAAC,CAC3E17C,SAAAA,CAAQ,CACRI,SAAAA,CAAQ,CACT,IACC,GAAM,CAAChjB,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,YAErBs+D,EAAe37C,GAAY5iB,EAAE,YAC7Bw+D,EAAex7C,GAAYhjB,EAAE,YAE7BwlD,EAAO+Y,GAAgBC,EAE7B,OAAOhZ,EACL,GAAA7jD,EAAAK,IAAA,EAAAL,EAAA4M,QAAA,YACG,IACD,GAAA5M,EAAAK,IAAA,EAACO,OAAAA,CAAKV,UAAU,sCAA4B,IAAE2jD,EAAK,UAEnD,IACN,EChBMxhC,EAA0D,CAAC,CAC/DxhB,MAAAA,CAAK,CACLogB,SAAAA,CAAQ,CACRI,SAAAA,CAAQ,CACRc,SAAAA,CAAQ,CACRjiB,UAAAA,CAAS,CACT+N,SAAAA,CAAQ,CACR,GAAGjQ,EACJ,GAEG,GAAAgC,EAAAK,IAAA,EAACQ,QAAAA,CACCX,UAAWC,IAAG,QAASD,EAAW,CAChC,cAAeiiB,CACjB,GACC,GAAGnkB,CAAI,WAER,GAAAgC,EAAAK,IAAA,EAACO,OAAAA,WACEC,EACD,GAAAb,EAAAlD,GAAA,EAAC6/D,EAAeA,CAAC17C,SAAUA,EAAUI,SAAUA,OAEhDpT,KCfMwT,EAET,CAAC,CACH5gB,MAAAA,CAAK,CACLuI,KAAAA,CAAI,CACJ6X,SAAAA,CAAQ,CACRI,SAAAA,CAAQ,CACRC,gBAAAA,CAAe,CACfH,eAAAA,CAAc,CACd27C,YAAAA,CAAW,CACX70D,QAAAA,CAAO,CACP/H,UAAAA,CAAS,CACT0hB,mBAAAA,CAAkB,CAClB,GAAG5jB,EACJ,IACC,IAAMO,EAAKhB,EAAAA,KAAW,GAChBymB,EAAU,CAAC,YAAY,EAAEzlB,EAAG,CAAC,CAC7BwjB,EAAW,CAAC,aAAa,EAAExjB,EAAG,CAAC,CAC/B,CAACF,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,YACrB,CACJ4gB,SAAAA,CAAQ,CACRF,UAAW,CAAE0B,OAAAA,CAAM,CAAE,CACtB,CAAGtB,CAAAA,EAAAA,EAAAA,EAAAA,IACE4C,EAAaC,CAAAA,EAAAA,EAAAA,EAAAA,EAAIvB,EAAQtX,GACzB+Y,EAAW,CAAC,CAACH,EAEf+6C,EAAiB,GACjBC,EAAa,GACjB,OAAQh/D,EAAKyB,IAAI,EACf,IAAK,WACHs9D,EAAiB,gBACjBC,EAAa,uBACb,KACF,KAAK,QACHD,EAAiB,aACjBC,EAAa,eACb,KACF,SACED,EAAiB,mBAErB,CAEA,MACE,GAAA/8D,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAW0hB,YACd,GAAA5hB,EAAAlD,GAAA,EAACulB,EAASA,CACRxhB,MAAOA,EACPogB,SAAUA,EACVI,SAAUA,EACVc,SAAUA,EACVjiB,UAAWC,IAAG,aAAc68D,EAAY77C,YAExC,GAAAnhB,EAAAlD,GAAA,EAACmd,QAAAA,CACCxa,KAAK,OACJ,GAAGzB,CAAI,CACRkC,UAAWC,IAAG48D,EAAgB78D,EAAW,CACvC,aAAciiB,CAChB,GACAG,eAAcH,EACdlB,SAAUA,EACVsB,mBAAkB,CAAC,EAAEyB,EAAQ,CAAC,EAAEjC,EAAS,CAAC,EAAE/jB,GAAM,CAAC,mBAAmB,EAAI,GAAG,CAAC,CAC7E,GAAGkhB,EAAS9V,EAAM,CACjB6X,SAAUA,EAAAA,GAAW5iB,EAAE,iBACvB,GAAGijB,CAAe,EAClB,KAGN,GAAAthB,EAAAlD,GAAA,EAAC2nB,EAAeA,CAAClmB,GAAIwjB,EAAUtB,QAASq8C,EAAa70D,QAASA,IAC9D,GAAAjI,EAAAlD,GAAA,EAACynB,EAASA,CAAChmB,GAAIylB,EAASnR,MAAOmP,MAGrC,UGtEA,IAAMd,EAEF,CAAC,CACHrgB,MAAAA,CAAK,CACLuI,KAAAA,CAAI,CACJiY,SAAAA,CAAQ,CACRJ,SAAAA,CAAQ,CACRK,gBAAAA,CAAe,CACfH,eAAAA,CAAc,CACd27C,YAAAA,CAAW,CACX70D,QAAAA,CAAO,CACP/H,UAAAA,CAAS,CACT0hB,mBAAAA,CAAkB,CAClB3T,SAAAA,CAAQ,CACR,GAAGjQ,EACJ,IACC,IAAMO,EAAKhB,EAAAA,KAAW,GAChBymB,EAAU,CAAC,YAAY,EAAEzlB,EAAG,CAAC,CAC7BwjB,EAAW,CAAC,aAAa,EAAExjB,EAAG,CAAC,CAC/B,CAACF,EAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,YACrB,CACJ4gB,SAAAA,CAAQ,CACRF,UAAW,CAAE0B,OAAAA,CAAM,CAAE,CACtB,CAAGtB,CAAAA,EAAAA,EAAAA,EAAAA,IACE4C,EAAaC,CAAAA,EAAAA,EAAAA,EAAAA,EAAIvB,EAAQtX,GACzB+Y,EAAW,CAAC,CAACH,EAEnB,MACE,GAAAhiB,EAAAK,IAAA,EAACC,MAAAA,CAAIJ,UAAW0hB,YACd,GAAA5hB,EAAAlD,GAAA,EAACulB,EAASA,CACRxhB,MAAOA,EACPogB,SAAUA,EACVI,SAAUA,EACVc,SAAUA,EACVjiB,UAAWC,IAAG,aAAcghB,YAE5B,GAAAnhB,EAAAlD,GAAA,EAACwnB,SAAAA,CACE,GAAGtmB,CAAI,CACRkC,UAAWC,IAAGD,EAAW,CACvB,cAAe,CAAClC,EAAKi/D,QAAQ,CAC7B,mBAAoBj/D,EAAKi/D,QAAQ,CACjC,aAAc96C,CAChB,GACAlB,SAAUA,EACVqB,eAAcH,EACdI,mBAAkB,CAAC,EAAEyB,EAAQ,CAAC,EAAEjC,EAAS,CAAC,CACzC,GAAG7C,EAAS9V,EAAM,CACjB6X,SAAUA,EAAAA,GAAW5iB,EAAE,iBACvB,GAAGijB,CAAe,EAClB,UAEDrT,MAGL,GAAAjO,EAAAlD,GAAA,EAAC2nB,EAAeA,CAAClmB,GAAIwjB,EAAUtB,QAASq8C,EAAa70D,QAASA,IAC9D,GAAAjI,EAAAlD,GAAA,EAACynB,EAASA,CAAChmB,GAAIylB,EAASnR,MAAOmP,MAGrC,yGG8QO,IAAMk7C,EAAe,IAAIjrB,IAAI,CAjVlC,WACA,SACA,gBACA,aACA,YACA,aACA,MACA,kBACA,UACA,eACA,iBACA,gBACA,SACA,MACA,oBACA,oBACA,aACA,oBACA,oBACA,aACA,qBACA,qBACA,cACA,oBACA,kBACA,kBACA,WACA,wBACA,wBACA,iBACA,wBACA,wBACA,iBACA,yBACA,yBACA,kBACA,uBACA,uBACA,wBACA,qBACA,sBACA,sBACA,eACA,oBACA,YACA,eACA,KACA,iBACA,QACA,MACA,QACA,UACA,SACA,OACA,WACA,QACA,MACA,OACA,MACA,kBACA,YACA,uBACA,kBACA,aACA,kBACA,WACA,eACA,aACA,OACA,SACA,YACA,eACA,WACA,YACA,eACA,oBACA,QACA,sBACA,kBACA,oBACA,mBACA,iBACA,gBACA,OACA,qBACA,WACA,QACA,QACA,eACA,eACA,QACA,kBACA,YACA,SACA,iBACA,UACA,YACA,mBACA,UACA,iBACA,SACA,OACA,YACA,cACA,eACA,WACA,UACA,mBACA,cACA,SACA,WACA,OACA,WACA,UACA,gBACA,OACA,cACA,oBACA,QACA,UACA,gBACA,gBACA,WACA,SACA,eACA,iBACA,WACA,UACA,aACA,WACA,YACA,OACA,SACA,kBACA,cACA,eACA,UACA,cACA,OACA,cACA,WACA,YACA,aACA,oBACA,gBACA,OACA,aACA,QACA,mBACA,MACA,YACA,QACA,SACA,QACA,cACA,cACA,OACA,OACA,OACA,gBACA,UACA,iBACA,iBACA,QACA,QACA,QACA,kBACA,cACA,oBACA,cACA,YACA,YACA,OACA,gBACA,OACA,eACA,YACA,UACA,yBACA,SACA,WACA,OACA,OACA,eACA,WACA,OACA,SACA,UACA,SACA,OACA,OACA,eACA,UACA,qBACA,UACA,YACA,OACA,gBACA,YACA,4BACA,cACA,UACA,aACA,SACA,QACA,SACA,QACA,gBACA,YACA,aACA,QACA,gBACA,WACA,UACA,aACA,aACA,cACA,UACA,kBACA,eACA,eACA,UACA,eACA,QACA,oBACA,SACA,eACA,YACA,cACA,OACA,oBACA,mBACA,oBACA,SACA,WACA,cACA,OACA,QACA,eACA,iBACA,UACA,SACA,wBACA,0BACA,OACA,MACA,UACA,SACA,gBACA,gBACA,SACA,kBACA,YACA,SACA,UACA,aACA,UACA,SACA,YACA,eACA,gBACA,kBACA,iBACA,YACA,eACA,oBACA,eACA,OACA,UACA,OACA,SACA,WACA,QACA,WACA,SACA,kBACA,MACA,YACA,eACA,WACA,UACA,SACA,UACA,YACA,WACA,MACA,oBACA,mBACA,OACA,eACA,UACA,aACA,qBACA,cACA,YACA,OACA,eACA,WACA,SACA,UACA,YACA,YACA,SACA,UACA,aACA,SACA,SACA,cACA,WACA,cACA,UACA,mBACA,KACA,cACA,UACA,SACA,SACA,cACA,YACA,cACA,OACA,QACA,QACA,aACA,SACA,eACA,YACA,eACA,eACA,UACA,WACA,OACA,IACA,OACA,UAGgD,EC7TrCkrB,EAAiB,IAAIlrB,IAAI,CApBpC,YACA,UACA,QACA,UACA,UACA,eACA,SAcoD,EAEzCmrB,EAAiB,IAAInrB,IAAI,CAZpC,YACA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","sources":["webpack://_N_E/./components/analytics.tsx","webpack://_N_E/../../libs/osc/footer/src/lib/footer.tsx","webpack://_N_E/../../libs/osc/footer/src/lib/index.ts","webpack://_N_E/../../libs/osc/footer/src/index.ts","webpack://_N_E/./components/footer.tsx","webpack://_N_E/../../libs/queries/osc-language-selector/src/generated/queries.ts","webpack://_N_E/../../libs/queries/osc-language-selector/src/index.ts","webpack://_N_E/../../libs/osc/language-selector/src/lib/osc-language-code-names.tsx","webpack://_N_E/../../libs/osc/language-selector/src/lib/hooks/useLanguageSelectorLanguages.ts","webpack://_N_E/../../libs/utilities/accessibility/src/lib/index.ts","webpack://_N_E/../../libs/osc/language-selector/src/lib/osc-language-selector.tsx","webpack://_N_E/../../libs/osc/language-selector/src/index.ts","webpack://_N_E/../../libs/osc/drawer/src/lib/drawer.tsx","webpack://_N_E/../../libs/osc/drawer/src/index.ts","webpack://_N_E/../../libs/osc/header/src/lib/gql/queries.ts","webpack://_N_E/../../libs/osc/header/src/lib/header.utilities.tsx","webpack://_N_E/../../libs/osc/header/src/lib/header.logo.tsx","webpack://_N_E/../../libs/osc/header/src/lib/brand-header-body/nav-items.tsx","webpack://_N_E/../../libs/osc/header/src/lib/brand-header-body/popup-contents.tsx","webpack://_N_E/../../libs/osc/header/src/lib/brand-header-body/mega-menu.tsx","webpack://_N_E/../../libs/osc/header/src/lib/brand-header-body/nav-drawer-list.tsx","webpack://_N_E/../../libs/osc/header/src/lib/hooks/useActiveUserLinks.ts","webpack://_N_E/../../libs/osc/header/src/lib/brand-header-body/brand-header-body.tsx","webpack://_N_E/../../libs/osc/banner-notification/src/lib/banner-notification.tsx","webpack://_N_E/../../libs/osc/banner-notification/src/index.ts","webpack://_N_E/../../libs/osc/join-form/src/lib/queries/generated/queries.ts","webpack://_N_E/../../libs/osc/join-form/src/lib/auto-complete.ts","webpack://_N_E/../../libs/osc/join-form/src/lib/address-fields.tsx","webpack://_N_E/../../libs/osc/join-form/src/lib/password-fields.tsx","webpack://_N_E/../../libs/osc/join-form/src/lib/form-validation-regex.ts","webpack://_N_E/../../libs/osc/join-form/src/lib/phone-fields.tsx","webpack://_N_E/../../libs/osc/markdown/src/lib/markdown.tsx","webpack://_N_E/../../libs/osc/markdown/src/index.ts","webpack://_N_E/../../libs/osc/join-form/src/lib/marketing-content-css.tsx","webpack://_N_E/../../libs/osc/join-form/src/lib/marketing-content.tsx","webpack://_N_E/../../libs/osc/join-form/src/lib/join-form.tsx","webpack://_N_E/../../libs/osc/join-form/src/lib/index.ts","webpack://_N_E/../../libs/osc/join-form/src/index.ts","webpack://_N_E/../../libs/osc/join-modal-button/src/lib/osc-join-modal-button.tsx","webpack://_N_E/../../libs/osc/join-modal-button/src/index.ts","webpack://_N_E/../../libs/osc/header/src/lib/header.tsx","webpack://_N_E/../../libs/osc/header/src/index.ts","webpack://_N_E/./components/header.tsx","webpack://_N_E/./generated/react-query.ts","webpack://_N_E/../../libs/content/offers-components/src/lib/pill.tsx","webpack://_N_E/../../libs/osc/pagination/src/lib/pagination.tsx","webpack://_N_E/../../libs/osc/pagination/src/index.ts","webpack://_N_E/../../libs/content/offers-components/src/lib/slugify-brand.ts","webpack://_N_E/../../libs/content/offers-components/src/generated/queries.ts","webpack://_N_E/../../libs/osc/breadcrumbs/src/lib/breadcrumbs.tsx","webpack://_N_E/../../libs/osc/breadcrumbs/src/index.ts","webpack://_N_E/../../libs/osc/tabs/src/lib/tabs.context.tsx","webpack://_N_E/../../libs/osc/tabs/src/lib/tabs.utils.ts","webpack://_N_E/../../libs/osc/tabs/src/lib/tab.button.tsx","webpack://_N_E/../../libs/osc/tabs/src/lib/tab.list.button.tsx","webpack://_N_E/../../libs/osc/tabs/src/lib/tab.list.tsx","webpack://_N_E/../../libs/osc/caption/src/lib/caption.tsx","webpack://_N_E/../../libs/osc/caption/src/lib/index.ts","webpack://_N_E/../../libs/osc/caption/src/index.ts","webpack://_N_E/../../libs/osc/responsive-image/src/lib/utils/element-selector.tsx","webpack://_N_E/../../libs/osc/responsive-image/src/lib/responsive-image.tsx","webpack://_N_E/../../libs/osc/responsive-image/src/lib/utils/get-current-aspect-ratio-and-url.ts","webpack://_N_E/../../libs/osc/responsive-image/src/lib/index.ts","webpack://_N_E/../../libs/osc/responsive-image/src/index.ts","webpack://_N_E/../../libs/osc/tabs/src/lib/scrollable/tab.list.tsx","webpack://_N_E/../../libs/osc/tabs/src/lib/tab.panel.tsx","webpack://_N_E/../../libs/osc/tabs/src/lib/tab.panels.tsx","webpack://_N_E/../../libs/osc/tabs/src/lib/tabs.tsx","webpack://_N_E/../../libs/osc/tabs/src/lib/index.ts","webpack://_N_E/../../libs/osc/tabs/src/index.ts","webpack://_N_E/../../libs/content/offers-components/src/lib/offer-category-mapper.ts","webpack://_N_E/../../libs/content/offers-components/src/lib/offer-listing.tsx","webpack://_N_E/../../libs/osc/accordion/src/lib/accordion.tsx","webpack://_N_E/../../libs/osc/accordion/src/index.ts","webpack://_N_E/../../libs/osc/cycle/src/lib/cycle.context.tsx","webpack://_N_E/../../libs/osc/cycle/src/lib/cycle.tsx","webpack://_N_E/../../libs/osc/cycle/src/index.ts","webpack://_N_E/../../libs/osc/alert/src/lib/alert.tsx","webpack://_N_E/../../libs/osc/alert/src/lib/alert.dialog.tsx","webpack://_N_E/../../libs/osc/alert/src/lib/alerts.content.tsx","webpack://_N_E/../../libs/osc/alert/src/lib/alerts.controls.tsx","webpack://_N_E/../../libs/osc/alert/src/lib/alerts.tsx","webpack://_N_E/../../libs/osc/alert/src/lib/index.ts","webpack://_N_E/../../libs/osc/alert/src/index.ts","webpack://_N_E/../../libs/content/offers-components/src/lib/offer-details.tsx","webpack://_N_E/../../libs/content/offers-components/src/lib/slugify-offer.ts","webpack://_N_E/../../libs/content/offers-components/src/index.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.constants.ts","webpack://_N_E/../../libs/osc/special-rates/src/lib/utils.ts","webpack://_N_E/../../libs/utilities/use-smb-context-local-storage/src/lib/use-smb-context-local-storage.tsx","webpack://_N_E/../../libs/utilities/use-smb-context-local-storage/src/index.ts","webpack://_N_E/../../libs/osc/special-rates/src/lib/special-rates.tsx","webpack://_N_E/../../libs/osc/special-rates/src/index.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/gql/queries.ts","webpack://_N_E/../../libs/framework/places-autocomplete/src/lib/use-places-autocomplete.tsx","webpack://_N_E/../../libs/framework/places-autocomplete/src/lib/use-suggestions.tsx","webpack://_N_E/../../libs/framework/places-autocomplete/src/lib/index.ts","webpack://_N_E/../../libs/framework/places-autocomplete/src/index.ts","webpack://_N_E/../../libs/osc/location/src/lib/location-options/hotels-near-me-option.tsx","webpack://_N_E/../../libs/osc/location/src/lib/location-options/location-options-utils.ts","webpack://_N_E/../../libs/osc/location/src/lib/icons.constant.ts","webpack://_N_E/../../libs/osc/location/src/lib/autoComplete-suggestion-options.tsx","webpack://_N_E/../../libs/osc/location/src/lib/location-options/popular-destinations.tsx","webpack://_N_E/../../libs/osc/location/src/lib/location-options/recent-searches.tsx","webpack://_N_E/../../libs/osc/location/src/lib/gql/queries.ts","webpack://_N_E/../../libs/osc/location/src/lib/location.input.tsx","webpack://_N_E/../../libs/osc/location/src/lib/location.tsx","webpack://_N_E/../../libs/osc/location/src/index.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/constants/featureToggles.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.utils.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.summary.utils.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.summary.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/hooks/use-shop-form-speedbump.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.geocode-fail-modal.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.tsx","webpack://_N_E/../../libs/utilities/use-previous-value/src/lib/use-previous-value.tsx","webpack://_N_E/../../libs/utilities/use-previous-value/src/lib/index.ts","webpack://_N_E/../../libs/utilities/use-previous-value/src/index.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.provider.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.location.tsx","webpack://_N_E/../../libs/utilities/dates/src/lib/utils.tsx","webpack://_N_E/../../libs/utilities/dates/src/lib/use-days-of-week.tsx","webpack://_N_E/../../libs/utilities/dates/src/lib/use-date-format.tsx","webpack://_N_E/../../libs/utilities/dates/src/lib/use-locale.tsx","webpack://_N_E/../../libs/utilities/dates/src/lib/index.ts","webpack://_N_E/../../libs/utilities/dates/src/index.ts","webpack://_N_E/../../libs/osc/date-picker/src/lib/date-picker.dates-button.tsx","webpack://_N_E/../../libs/osc/calendar/src/lib/calendar.day.tsx","webpack://_N_E/../../libs/osc/calendar/src/lib/calendar.month.tsx","webpack://_N_E/../../libs/osc/calendar/src/lib/calendar.tsx","webpack://_N_E/../../libs/osc/calendar/src/index.ts","webpack://_N_E/../../libs/osc/date-picker/src/lib/date-picker.calendar.tsx","webpack://_N_E/../../libs/osc/date-picker/src/lib/date-picker.tsx","webpack://_N_E/../../libs/osc/date-picker/src/lib/date-picker.screenreader.tsx","webpack://_N_E/../../libs/osc/date-picker/src/index.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.dates.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.info-container.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/use-shop-form-context.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.button.tsx","webpack://_N_E/../../libs/osc/tooltip/src/lib/tooltip.tsx","webpack://_N_E/../../libs/osc/tooltip/src/index.ts","webpack://_N_E/../../libs/osc/stepper/src/lib/stepper.tsx","webpack://_N_E/../../libs/osc/stepper/src/lib/index.ts","webpack://_N_E/../../libs/osc/stepper/src/index.ts","webpack://_N_E/../../libs/osc/rooms/src/lib/rooms.room.tsx","webpack://_N_E/../../libs/osc/rooms/src/lib/rooms.tsx","webpack://_N_E/../../libs/osc/rooms/src/lib/rooms.modal.tsx","webpack://_N_E/../../libs/osc/rooms/src/index.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.rooms.tsx","webpack://_N_E/../../libs/osc/info-popup/src/lib/info-popup.tsx","webpack://_N_E/../../libs/osc/info-popup/src/index.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.group.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.special-rates.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.nights.tsx","webpack://_N_E/../../libs/osc/shop-form/src/index.ts","webpack://_N_E/../../libs/content/offers-components/src/lib/shop-form-imports.tsx","webpack://_N_E/../../libs/framework/conductrics/src/lib/conductrics.ts","webpack://_N_E/../../libs/framework/conductrics/src/lib/conductrics-hooks.tsx","webpack://_N_E/../../libs/framework/conductrics/src/lib/index.ts","webpack://_N_E/../../libs/framework/conductrics/src/index.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/constants.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/types.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/uri-builder-utils/uri-builder.utils.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/search-uri-builder/search-uri-builder.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/search-uri-builder/index.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/location-uri-builder/location-uri-builder.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/location-uri-builder/index.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/book-uri-builder/index.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/property-uri-builder/property-uri-builder.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/property-uri-builder/index.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/index.ts","webpack://_N_E/../../libs/framework/uri-builder/src/index.ts","webpack://_N_E/../../libs/osc/brand-buttons/src/lib/brand-icon.tsx","webpack://_N_E/../../libs/osc/brand-buttons/src/lib/util/button.ts","webpack://_N_E/../../libs/osc/brand-buttons/src/lib/brand-link.tsx","webpack://_N_E/../../libs/osc/brand-buttons/src/lib/brand-button.tsx","webpack://_N_E/../../libs/osc/brand-buttons/src/lib/index.ts","webpack://_N_E/../../libs/osc/brand-buttons/src/index.ts","webpack://_N_E/../../libs/osc/controls/src/lib/control-back.tsx","webpack://_N_E/../../libs/osc/controls/src/lib/control-close.tsx","webpack://_N_E/../../libs/osc/controls/src/lib/control-next.tsx","webpack://_N_E/../../libs/osc/controls/src/index.ts","webpack://_N_E/../../libs/osc/dialog-v2/src/lib/dialog.base.tsx","webpack://_N_E/../../libs/osc/dialog-v2/src/lib/dialog.tsx","webpack://_N_E/../../libs/osc/dialog-v2/src/lib/dialog-alert.tsx","webpack://_N_E/../../libs/osc/dialog-v2/src/lib/dialog-action-buttons.tsx","webpack://_N_E/../../libs/osc/dialog-v2/src/lib/dialog-action.tsx","webpack://_N_E/../../libs/osc/dialog-v2/src/lib/index.ts","webpack://_N_E/../../libs/osc/dialog-v2/src/index.ts","webpack://_N_E/../../libs/osc/form/src/lib/form.error-icon.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.error.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.connector.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.help-message.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.label-helper.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.label.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.input.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.legend.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.card-number-input.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.select.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.textarea.tsx","webpack://_N_E/../../libs/osc/form/src/index.ts","webpack://_N_E/../../libs/osc/icon/src/lib/osc-icon-map.tsx","webpack://_N_E/../../libs/osc/icon/src/lib/osc-brand-icon-map.tsx","webpack://_N_E/../../libs/osc/icon/src/lib/osc-icon.tsx","webpack://_N_E/../../libs/osc/icon/src/lib/osc-amenity-icon-map.tsx","webpack://_N_E/../../libs/osc/icon/src/index.ts","webpack://_N_E/../../libs/osc/link/src/lib/link.ad-choices.tsx","webpack://_N_E/../../libs/osc/link/src/lib/link.new-window.tsx","webpack://_N_E/../../libs/osc/link/src/lib/link.utils.ts","webpack://_N_E/../../libs/osc/link/src/lib/link.tsx","webpack://_N_E/../../libs/osc/link/src/index.ts","webpack://_N_E/../../libs/osc/login/src/lib/login.types.ts","webpack://_N_E/../../libs/osc/login/src/lib/frame.tsx","webpack://_N_E/../../libs/osc/login/src/lib/login.icon.tsx","webpack://_N_E/../../libs/osc/login/src/lib/login.tsx","webpack://_N_E/../../libs/osc/login/src/index.ts","webpack://_N_E/../../libs/osc/popup/src/lib/popup.context.tsx","webpack://_N_E/../../libs/osc/popup/src/lib/popup.utils.ts","webpack://_N_E/../../libs/osc/popup/src/lib/popup.tsx","webpack://_N_E/../../libs/osc/popup/src/lib/popup.button.tsx","webpack://_N_E/../../libs/osc/popup/src/lib/popup.content.tsx","webpack://_N_E/../../libs/osc/popup/src/index.ts","webpack://_N_E/../../libs/osc/speedbump/src/lib/gql/queries.ts","webpack://_N_E/../../libs/osc/speedbump/src/lib/hooks/useFeatureConfigs.ts","webpack://_N_E/../../libs/osc/speedbump/src/lib/use-speedbump.tsx","webpack://_N_E/../../libs/osc/speedbump/src/lib/speedbump.tsx","webpack://_N_E/../../libs/osc/speedbump/src/lib/index.ts","webpack://_N_E/../../libs/osc/speedbump/src/index.ts","webpack://_N_E/../../libs/osc/spinner/src/lib/spinner.tsx","webpack://_N_E/../../libs/osc/spinner/src/lib/spinner-dialog.tsx","webpack://_N_E/../../libs/osc/spinner/src/lib/index.ts","webpack://_N_E/../../libs/osc/spinner/src/index.ts","webpack://_N_E/../../libs/utilities/get-language-direction/src/lib/get-language-direction.ts","webpack://_N_E/../../libs/utilities/url-config/src/lib/url-config.ts","webpack://_N_E/../../libs/utilities/url-config/src/lib/index.ts","webpack://_N_E/../../libs/utilities/url-config/src/index.ts","webpack://_N_E/../../libs/utilities/use-forked-ref/src/lib/use-forked-ref.tsx","webpack://_N_E/../../libs/utilities/use-forked-ref/src/index.ts","webpack://_N_E/../../libs/utilities/use-rect/src/lib/oberserve-rect.tsx","webpack://_N_E/../../libs/utilities/use-rect/src/lib/use-rect.tsx","webpack://_N_E/../../libs/utilities/use-rect/src/lib/index.ts","webpack://_N_E/../../libs/utilities/use-rect/src/index.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport set from 'lodash/set';\nimport { env } from '@dx-ui/framework-env';\nimport Script from 'next/script';\n\nexport interface PageMetrics {\n brandCode: string;\n brandName: string;\n ctyhocn?: string;\n language: string;\n primaryCategory: 'Portfolio' | 'Brand' | 'Property';\n trackCallName: string;\n categoryPageDetail?: string;\n}\n\nexport interface PageMetricsListing extends PageMetrics {\n offerId?: number;\n offerName?: string;\n}\n\nexport interface PageMetricsDetail extends PageMetrics {\n offerId: string;\n offerName: string;\n explicitPageName?: string;\n}\n\nexport function Analytics({ metrics }: { metrics: PageMetricsListing | PageMetricsDetail }) {\n const hasSetMetrics = useRef(false);\n const [metricsReady, setMetricsReady] = useState(\n typeof window !== 'undefined' && !!window._satellite?.track\n );\n const scriptSrc = env('TRACKING_SEED_FILE');\n\n useEffect(() => {\n if (!hasSetMetrics.current && metricsReady && metrics) {\n const {\n brandCode,\n brandName,\n ctyhocn,\n language,\n offerId,\n offerName,\n primaryCategory,\n trackCallName,\n categoryPageDetail,\n } = metrics;\n hasSetMetrics.current = true;\n setDefaultData();\n if ((metrics as PageMetricsDetail).explicitPageName) {\n setDigitalData(\n 'page.pageInfo.pageName',\n `Browser:${language.toUpperCase()}:${brandName}:${primaryCategory}:Offers:${\n (metrics as PageMetricsDetail).explicitPageName\n }`\n );\n } else {\n setDigitalData(\n 'page.pageInfo.pageName',\n `Browser:${language.toUpperCase()}:${brandName}:${primaryCategory}:Offers${\n offerId ? ':Detail' : ''\n }`\n );\n }\n\n setDigitalData('page.pageInfo.language', language);\n setDigitalData('page.category.brand', brandCode);\n setDigitalData('page.category.primaryCategory', primaryCategory);\n if (categoryPageDetail) {\n setDigitalData('page.category.pageDetail1', categoryPageDetail);\n }\n setDigitalData('page.category.subSection', `${primaryCategory.toLocaleLowerCase()}:offers`);\n !!offerId && setDigitalData('page.pageInfo.pageDetail1', offerId);\n !!offerId &&\n !!offerName &&\n setDigitalData('page.attributes.offerId', `${offerId}:${offerName}`);\n !!ctyhocn && setDigitalData('product[0].productInfo.productID', ctyhocn);\n\n addEvent('OffersPageView');\n track(trackCallName);\n }\n }, [metrics, metricsReady]);\n\n if (scriptSrc) {\n return (\n {\n setMetricsReady(true);\n }}\n />\n );\n }\n\n return null;\n}\n\nfunction setDefaultData() {\n window.digitalData = {\n event: [],\n page: {\n attributes: {\n expType: 'New Hilton',\n siteExperience: 'R',\n version: env('APP_VER'),\n },\n category: {\n exp: 'Browser',\n siteType: 'B',\n },\n pageInfo: {\n destinationURL: window.location.href,\n pageType: 'Offers',\n },\n },\n };\n}\n\nfunction setDigitalData(path: string, value: unknown) {\n window?.digitalData && set(window.digitalData, path, value);\n}\n\nfunction track(name: string) {\n window?._satellite?.track?.(name);\n}\n\nfunction addEvent(name: string) {\n window?.digitalData?.event?.push({ eventInfo: { eventAction: name } });\n}\n","import cx from 'classnames';\nimport * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport { Link } from '@dx-ui/osc-link';\nimport type { SocialMediaLink } from './footer.types';\nimport { useIsClient } from 'usehooks-ts';\n\ntype LinkWithExperimentationConfiguration = Link & {\n experimentationConfiguration?: CmsExperimentationConfiguration;\n};\n\nexport type Footer = {\n /** Allows for a fluid width layout */\n isFluid?: boolean;\n /** The customer support link to use. */\n customerSupportLink?: Link;\n /** The contact number for the help desk */\n contactPhoneLink?: Link;\n /** The links displayed horizontally at bottom */\n legalLinks?: Link[];\n /** The main footer links to be displayed in vertical columns divided equally */\n links?: LinkWithExperimentationConfiguration[];\n /** Social media links to be displayed horizontally under contact information */\n socialLinks?: SocialMediaLink[];\n /** Theme choice for footer */\n theme?: Exclude;\n} & React.HTMLAttributes;\n\n/**\n * A shared footer implementation that is intended to used across OHW UI apps to give a consistent experience for customers to navigate key links.\n *\n * All links within the footer are [Link](/docs/library-components-link--default-story) components.\n */\nexport const Footer = React.forwardRef(\n (\n {\n customerSupportLink,\n isFluid = false,\n legalLinks,\n links: footerLinks = [],\n contactPhoneLink,\n socialLinks,\n theme,\n ...rest\n },\n forwardedRef\n ) => {\n const isClient = useIsClient();\n const teConsentRef = React.useRef(null);\n const { t } = useTranslation('osc-footer');\n const links = React.useMemo(\n () =>\n [\n ...footerLinks,\n isClient\n ? ({\n id: 'teconsent',\n url: '',\n ref: teConsentRef,\n } as unknown as Link)\n : null,\n ].filter(Boolean) as LinkWithExperimentationConfiguration[],\n [footerLinks, isClient]\n );\n\n const footerNavLength = links.length;\n const footerNavHalfPoint = footerNavLength > 6 ? Math.ceil(footerNavLength * 0.5) : 0;\n const footerNavFirstHalf = links.slice(0, footerNavHalfPoint);\n const footerNavSecondHalf = links.slice(footerNavHalfPoint, footerNavLength);\n\n const isDark = theme === 'dark';\n\n React.useEffect(() => {\n if (!isClient) return;\n if (!teConsentRef.current) return;\n const callback: MutationCallback = (mutationList) => {\n for (const mutation of mutationList) {\n if (mutation.type === 'childList') {\n teConsentRef.current?.parentElement?.removeAttribute('aria-hidden');\n }\n }\n };\n const observer = new MutationObserver(callback);\n observer.observe(teConsentRef.current, { childList: true, subtree: true });\n return () => observer.disconnect();\n }, [isClient]);\n\n return (\n \n \n
\n
\n

\n {t('helpMessage')}\n

\n
\n {!!contactPhoneLink && (\n \n \n {t('phone')}\n
{contactPhoneLink.label}
\n \n
\n \n {t('callMessage')}\n \n
\n
\n )}\n {!!customerSupportLink && (\n
\n \n {customerSupportLink.label || t('customerSupport')}\n \n

{t('assistance')}

\n
\n )}\n
\n {socialLinks && socialLinks?.length > 0 && (\n
\n
    \n {socialLinks.map(({ channel, url }) => {\n return (\n
  • \n \n \n , {t('newTab')}\n \n
  • \n );\n })}\n
\n
\n )}\n
\n
\n {footerNavFirstHalf.length > 0 && (\n
    \n {footerNavFirstHalf.map(\n ({\n adaDescription,\n isNewWindow,\n label,\n experimentationConfiguration,\n ...props\n }) => (\n \n \n {label}\n \n \n )\n )}\n
\n )}\n {footerNavSecondHalf.length > 0 && (\n
    \n {footerNavSecondHalf.map(\n ({\n adaDescription,\n isNewWindow,\n label,\n experimentationConfiguration,\n ...props\n }) => (\n \n \n {label}\n \n \n )\n )}\n
\n )}\n
\n \n {legalLinks && legalLinks.length > 0 && (\n
\n
    \n {legalLinks.map(({ adaDescription, label, isNewWindow, ...props }) => (\n \n \n {label}\n \n \n ))}\n
\n
\n )}\n 0,\n 'text-text-inverse': isDark,\n })}\n suppressHydrationWarning\n >\n ©{new Date().getFullYear()} Hilton\n

\n \n \n );\n }\n);\n\nfunction handleTeconsentParentProps(props: Link) {\n if (props.id === 'teconsent') {\n return {\n 'aria-hidden': true,\n };\n }\n}\n\nFooter.displayName = 'Footer';\n\nexport default Footer;\n","export * from './footer';\nexport * from './footer.types';\n","export * from './lib/index';\n","import type { Link } from '@dx-ui/osc-link';\nimport { Footer } from '@dx-ui/osc-footer';\nimport { useNavigationQuery } from '../generated/react-query';\n\nexport function OffersFooter({ brandCode, language }: { brandCode: string; language: string }) {\n const { data } = useNavigationQuery({ brandCode, language: language || 'en' });\n return (\n {\n return prev.concat(curr.links as unknown as Link[]);\n }, [] as Link[])}\n contactPhoneLink={{\n url: 'tel:+1-800-446-6677',\n label: '+1-800-4honors',\n }}\n customerSupportLink={{\n url: 'https://help.hilton.com/s/',\n isNewWindow: true,\n }}\n />\n );\n}\n","import type * as Types from './types';\n\nimport {\n useQuery,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\n\nexport const GetLanguageSelectorOneLinkConfigDocument = {\n operationName: 'featureConfigs',\n operationString: `query featureConfigs {\n featureConfigs(names: [\"config-ui-translate-onelink\"]) {\n config\n name\n }\n}`,\n originalOpName: 'getLanguageSelectorOneLinkConfig',\n};\nexport function useGetLanguageSelectorOneLinkConfigQuery<\n TData = Types.GetLanguageSelectorOneLinkConfigQuery,\n TError = DXError\n>(\n variables?: Types.GetLanguageSelectorOneLinkConfigQueryVariables,\n options?: Omit<\n UseQueryOptions,\n 'queryKey'\n >\n) {\n return useQuery({\n queryKey: [GetLanguageSelectorOneLinkConfigDocument, variables],\n ...options,\n });\n}\nexport function serverSideGetLanguageSelectorOneLinkConfigQuery(\n queryClient: QueryClient,\n variables?: Types.GetLanguageSelectorOneLinkConfigQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [GetLanguageSelectorOneLinkConfigDocument, variables],\n ...options,\n });\n}\n\nexport const GetLanguageSelectorHotelDataDocument = {\n operationName: 'hotel',\n operationString: `query hotel($ctyhocn: String!) {\n hotel(ctyhocn: $ctyhocn, language: \"en\") {\n localization {\n languageSupport {\n label\n bookingUrl\n code\n siteUrl\n }\n }\n }\n}`,\n originalOpName: 'getLanguageSelectorHotelData',\n};\nexport function useGetLanguageSelectorHotelDataQuery<\n TData = Types.GetLanguageSelectorHotelDataQuery,\n TError = DXError\n>(\n variables: Types.GetLanguageSelectorHotelDataQueryVariables,\n options?: Omit<\n UseQueryOptions,\n 'queryKey'\n >\n) {\n return useQuery({\n queryKey: [GetLanguageSelectorHotelDataDocument, variables],\n ...options,\n });\n}\nexport function serverSideGetLanguageSelectorHotelDataQuery(\n queryClient: QueryClient,\n variables: Types.GetLanguageSelectorHotelDataQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [GetLanguageSelectorHotelDataDocument, variables],\n ...options,\n });\n}\n","import {\n GetLanguageSelectorHotelDataDocument,\n GetLanguageSelectorOneLinkConfigDocument,\n} from './generated/queries';\n\nexport * from './generated/queries';\nexport * from './generated/types';\n\nexport const GET_HOTEL_LANGUAGE_SELECTOR_DATA_ORIGINAL_OP_NAME =\n GetLanguageSelectorHotelDataDocument.originalOpName;\nexport const GET_LANGUAGE_SELECTOR_ONE_LINK_CONFIG_DOCUMENT_ORIGINAL_OP_NAME =\n GetLanguageSelectorOneLinkConfigDocument.originalOpName;\n\nexport const LANGUAGE_SELECTOR_ORIGINAL_OP_NAMES = [\n GET_HOTEL_LANGUAGE_SELECTOR_DATA_ORIGINAL_OP_NAME,\n GET_LANGUAGE_SELECTOR_ONE_LINK_CONFIG_DOCUMENT_ORIGINAL_OP_NAME,\n];\n","export const LANGUAGE_CODE_NAMES = {\n ar: 'العربية',\n bg: 'Български',\n cs: 'Česky',\n da: 'Dansk',\n de: 'Deutsch',\n en: 'English',\n es: 'Español',\n fi: 'Suomi',\n fr: 'Français',\n id: 'Bahasa Indonesia',\n it: 'Italiano',\n ja: '日本語',\n ko: '한국어',\n nl: 'Nederlands',\n no: 'Norsk',\n pl: 'Polski',\n pt: 'Português',\n ro: 'Română',\n ru: 'Pусский',\n sv: 'Svenska',\n th: 'ไทย',\n tr: 'Türkçe',\n 'zh-hans': '简体中文',\n 'zh-hant': '繁體中文',\n} as const;\n","import { useMemo } from 'react';\nimport type { OneLinkConfig } from '@dx-ui/framework-i18n';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\nimport { useIsClient } from 'usehooks-ts';\nimport {\n useGetLanguageSelectorOneLinkConfigQuery,\n useGetLanguageSelectorHotelDataQuery,\n} from '@dx-ui/queries-osc-language-selector';\nimport type { GetLanguageSelectorHotelDataQuery } from '@dx-ui/queries-osc-language-selector';\nimport { LANGUAGE_CODE_NAMES } from '../osc-language-code-names';\nimport type { LanguageSelectorPropsBase } from '../osc-language-selector';\nimport { isRtl } from '@dx-ui/utilities-get-language-direction';\nimport { RuleEngine } from '@dx-shared/rule-engine';\n\ntype LanguagesDict = { label: string; value: string; href: string; opensNewTab: boolean }[];\n\ntype SupportedLanguages = NonNullable<\n NonNullable['localization']\n>['languageSupport'];\n\nexport function useLanguageSelectorLanguages({\n appName,\n ctyhocn,\n removeUrlParams,\n urlOverrides,\n}: {\n appName: string;\n ctyhocn: string;\n removeUrlParams?: boolean;\n urlOverrides?: LanguageSelectorPropsBase['urlOverrides'];\n}) {\n const { data: featureConfigsData, isFetching: featureConfigsLoading } =\n useGetLanguageSelectorOneLinkConfigQuery();\n const { data: hotelData, isFetching: hotelDataLoading } = useGetLanguageSelectorHotelDataQuery(\n {\n ctyhocn: ctyhocn.toUpperCase(),\n },\n {\n enabled: !!ctyhocn,\n }\n );\n const isClient = useIsClient();\n const loading = !isClient || featureConfigsLoading || hotelDataLoading;\n\n const oneLinkLanguagesConfig: OneLinkConfig = featureConfigsData?.featureConfigs?.find(\n (fc) => fc.name === 'config-ui-translate-onelink'\n )?.config;\n\n let oneLinkLanguages: string[] = [];\n\n // begin old config logic - Deprecated\n const appWhitelist = oneLinkLanguagesConfig?.whitelist?.[appName];\n const languagesObj = oneLinkLanguagesConfig?.languages;\n const languagesToExclude = appWhitelist\n ? (Object.keys(appWhitelist) as (keyof typeof appWhitelist)[]).filter(\n (language) => !appWhitelist?.[language]?.includes(ctyhocn.toUpperCase())\n )\n : [];\n const supportsLanguagesObjConfig = !!appName && !!languagesObj;\n if (supportsLanguagesObjConfig) {\n oneLinkLanguages = Object.entries(languagesObj)\n .filter(\n ([lang, appsArray]) => appsArray?.includes(appName) && !languagesToExclude.includes(lang)\n )\n .map(([lang]) => lang);\n }\n // end old config logic\n\n // begin new config logic\n const conditions = oneLinkLanguagesConfig?.conditions;\n const supportedLanguages = oneLinkLanguagesConfig?.supportedLanguages;\n const ruleEngine = conditions\n ? new RuleEngine({ name: 'onelink-language-selector', conditions })\n : null;\n const supportsRuleEngineConfig = !!appName && !!conditions && !!supportedLanguages && ruleEngine;\n const url = isBrowser ? window.location.href : '';\n if (supportsRuleEngineConfig) {\n oneLinkLanguages = supportedLanguages.filter((language) =>\n ruleEngine.run({ appName, language, url })\n );\n }\n // end new config logic\n\n const cmsLanguages = hotelData?.hotel?.localization?.languageSupport\n ? hotelData?.hotel?.localization?.languageSupport.reduce((acc, language) => {\n if (\n !oneLinkLanguages?.includes(getI18nSafeLangCode(language?.code || '')) &&\n getI18nSafeLangCode(language?.code || '') !== 'en'\n ) {\n acc.push({\n ...language,\n code: getI18nSafeLangCode(language?.code || ''),\n });\n }\n return acc;\n }, [] as SupportedLanguages)\n : ([] as SupportedLanguages);\n\n const cmsFullSiteLanguages = cmsLanguages.filter((lang) => lang?.siteUrl);\n const cmsResOnlyLanguages = cmsLanguages.filter((lang) => lang?.bookingUrl);\n const ENOverride = urlOverrides?.fullSite?.['en'];\n const fullSiteLanguages: LanguagesDict = [\n {\n label: LANGUAGE_CODE_NAMES['en'],\n value: 'en',\n href: (ENOverride || makeLanguageUrl('en', removeUrlParams)) ?? '',\n opensNewTab: !!ENOverride,\n },\n ...oneLinkLanguages.map((lang) => {\n const override = urlOverrides?.fullSite?.[lang as keyof typeof LANGUAGE_CODE_NAMES];\n const hasOverride = !!override;\n return {\n label: LANGUAGE_CODE_NAMES[lang as keyof typeof LANGUAGE_CODE_NAMES],\n value: lang,\n href: (override || makeLanguageUrl(lang, removeUrlParams)) ?? '',\n opensNewTab: hasOverride,\n };\n }),\n ...cmsFullSiteLanguages.map((lang) => ({\n label: LANGUAGE_CODE_NAMES[lang?.code as keyof typeof LANGUAGE_CODE_NAMES] || lang.label,\n value: lang?.code || '',\n href:\n urlOverrides?.fullSite?.[lang?.code as keyof typeof LANGUAGE_CODE_NAMES] ||\n lang?.siteUrl ||\n '',\n opensNewTab: true,\n })),\n ];\n const resOnlyLanguages: LanguagesDict = [\n ...cmsResOnlyLanguages.map((lang) => ({\n label: LANGUAGE_CODE_NAMES[lang?.code as keyof typeof LANGUAGE_CODE_NAMES] || lang.label,\n value: lang?.code || '',\n href:\n urlOverrides?.resOnly?.[lang.code as keyof typeof LANGUAGE_CODE_NAMES] ||\n lang?.bookingUrl ||\n '',\n opensNewTab: true,\n })),\n ];\n\n const supportedFullSiteLanguages = fullSiteLanguages.map((lang) => lang.value);\n const netNewFullSiteLanguages = Object.keys(urlOverrides?.fullSite || {}).filter(\n (lang) => !supportedFullSiteLanguages.includes(lang)\n );\n\n if (netNewFullSiteLanguages.length) {\n fullSiteLanguages.push(\n ...netNewFullSiteLanguages.map((lang) => ({\n label: LANGUAGE_CODE_NAMES[lang as keyof typeof LANGUAGE_CODE_NAMES],\n value: lang,\n href: urlOverrides?.fullSite?.[lang as keyof typeof LANGUAGE_CODE_NAMES] || '',\n opensNewTab: true,\n }))\n );\n }\n\n const supportedResOnlyLanguages = resOnlyLanguages.map((lang) => lang.value);\n const netNewResOnlyLanguages = Object.keys(urlOverrides?.resOnly || {}).filter(\n (lang) =>\n !supportedResOnlyLanguages.includes(lang) && !supportedFullSiteLanguages.includes(lang)\n );\n\n if (netNewResOnlyLanguages.length) {\n resOnlyLanguages.push(\n ...netNewResOnlyLanguages.map((lang) => ({\n label: LANGUAGE_CODE_NAMES[lang as keyof typeof LANGUAGE_CODE_NAMES],\n value: lang,\n href: urlOverrides?.resOnly?.[lang as keyof typeof LANGUAGE_CODE_NAMES] || '',\n opensNewTab: true,\n }))\n );\n }\n\n const sortedFullSiteLanguages = sortRtlFirst(\n fullSiteLanguages.sort((a, b) => a.label.localeCompare(b.label))\n );\n const sortedResOnlyLanguages = sortRtlFirst(\n resOnlyLanguages.sort((a, b) => a.label.localeCompare(b.label))\n );\n const allLanguages = useMemo(\n () => [...sortedFullSiteLanguages, ...sortedResOnlyLanguages],\n [sortedFullSiteLanguages, sortedResOnlyLanguages]\n );\n\n return {\n allLanguages,\n loading,\n sortedFullSiteLanguages,\n sortedResOnlyLanguages,\n };\n}\n\nexport function getI18nSafeLangCode(code: string) {\n if (code === 'zh_CN') {\n return 'zh-hans';\n }\n if (code === 'zh_HK') {\n return 'zh-hant';\n }\n const safeLangCode = code.split('_')[0];\n return safeLangCode?.toLowerCase() ?? 'en';\n}\n\nexport function makeLanguageUrl(newLocale: string, removeUrlParams?: boolean) {\n const languageUrl = isBrowser\n ? window.location.href.replace(\n RegExp(`/${window.location.pathname.split('/')[1]}/`),\n `/${newLocale}/`\n )\n : '';\n return removeUrlParams ? languageUrl.split('?')[0] : languageUrl;\n}\n\nexport function sortRtlFirst(languages: LanguagesDict) {\n const rtlLangs = languages.filter((lang) => isRtl(lang.value));\n const ltrLangs = languages.filter((lang) => !isRtl(lang.value));\n return [...rtlLangs, ...ltrLangs];\n}\n","export const getIsReducedMotion = () =>\n typeof window !== 'undefined' && typeof window.matchMedia === 'function'\n ? window.matchMedia('(prefers-reduced-motion: reduce)').matches\n : true;\n\nexport const getKeyDownNavigation =\n ({\n elements,\n initiatingRef,\n onPreviousFocus,\n onNextFocus,\n }: {\n elements: T;\n initiatingRef?: React.MutableRefObject;\n onPreviousFocus?: (focusElement: T[number] | null) => void;\n onNextFocus?: (focusElement: T[number] | null) => void;\n }) =>\n (e: KeyboardEvent | React.KeyboardEvent) => {\n const focusPrevious = (el: EventTarget | null) => {\n const currentIndex = elements.findIndex((elements) => elements === el);\n if (currentIndex === 0) {\n initiatingRef?.current?.focus();\n return;\n }\n const element = elements.at(currentIndex - 1) || null;\n element?.focus();\n onPreviousFocus?.(element);\n };\n const focusNext = (el: EventTarget | null) => {\n const currentIndex = elements.findIndex((elements) => elements === el);\n const element = elements.at(currentIndex + 1) || null;\n element?.focus();\n onNextFocus?.(element);\n };\n const isArrowUp = e.key === 'ArrowUp';\n const isArrowDown = e.key === 'ArrowDown';\n const isArrowLeft = e.key === 'ArrowLeft';\n const isArrowRight = e.key === 'ArrowRight';\n if (isArrowUp || isArrowLeft) {\n e.preventDefault();\n focusPrevious(e.target);\n }\n if (isArrowDown || isArrowRight) {\n e.preventDefault();\n focusNext(e.target);\n }\n };\n","import type { ElementRef } from 'react';\nimport { useEffect, useRef } from 'react';\nimport * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport { useLanguageSelectorLanguages } from './hooks/useLanguageSelectorLanguages';\nimport type { PopupContext } from '@dx-ui/osc-popup';\nimport { Popup, PopupButton, PopupContent, usePopup } from '@dx-ui/osc-popup';\nimport { LANGUAGE_CODE_NAMES } from './osc-language-code-names';\nimport { Link } from '@dx-ui/osc-link';\nimport classnames from 'classnames';\nimport { sendReward } from '@dx-ui/framework-conductrics';\nimport set from 'lodash/set';\nimport { isRtl } from '@dx-ui/utilities-get-language-direction';\nimport { getKeyDownNavigation } from '@dx-ui/utilities-accessibility';\nimport { getSafeLanguage } from '@dx-ui/framework-react-query';\n\ntype UrlOverride = {\n [locale in keyof typeof LANGUAGE_CODE_NAMES]?: string;\n};\n\nexport type LanguageSelectorPropsBase = {\n appName: string;\n buttonOptions?: {\n className?: string;\n styles?: React.CSSProperties;\n hoverStyles?: React.CSSProperties;\n };\n ctyhocn?: string;\n labelOptions?: {\n className?: string;\n styles?: React.CSSProperties;\n };\n locale: string;\n theme?: Exclude;\n onLanguageSelection?: (languageValue: string) => void;\n popupOptions?: {\n removeUrlParams?: boolean;\n includeTitles?: boolean;\n };\n urlOverrides?: {\n fullSite?: UrlOverride;\n resOnly?: UrlOverride;\n };\n wrapperClassName?: string;\n};\n\nexport type LanguageSelectorProps = LanguageSelectorPropsBase & React.ComponentProps<'div'>;\n\nexport function LanguageSelector({\n appName = '',\n buttonOptions,\n ctyhocn = '',\n locale = 'en',\n labelOptions,\n popupOptions,\n wrapperClassName,\n urlOverrides,\n theme,\n onLanguageSelection,\n ...rest\n}: LanguageSelectorProps) {\n const [selectedLanguage, setSelectedLanguage] = React.useState<{\n code: string;\n href: string;\n }>();\n const [buttonHover, setButtonHover] = React.useState(false);\n const { t } = useTranslation('osc-language-selector');\n const popupButtonRef = useRef>(null);\n const linksContainerRef = useRef>(null);\n const { loading, allLanguages, sortedFullSiteLanguages, sortedResOnlyLanguages } =\n useLanguageSelectorLanguages({\n appName,\n ctyhocn,\n removeUrlParams: popupOptions?.removeUrlParams,\n urlOverrides,\n });\n\n useEffect(() => {\n if (!loading && !selectedLanguage?.code) {\n const getSelectedLanguage = (locale: string) => ({\n code: locale,\n href: allLanguages.find((lang) => lang.value === locale)?.href || '',\n });\n\n setSelectedLanguage(getSelectedLanguage(getSafeLanguage(locale) ?? ''));\n }\n }, [allLanguages, loading, locale, selectedLanguage?.code]);\n\n const focusFirstLink = React.useCallback(() => {\n linksContainerRef.current?.querySelector('a')?.focus();\n }, []);\n\n const handleLinkKeyDown = getKeyDownNavigation({\n elements: Array.from(linksContainerRef.current?.querySelectorAll('a') || []),\n initiatingRef: popupButtonRef,\n });\n\n const trackLinkClick = React.useCallback((language: string) => {\n if (window?.digitalData && window?._satellite) {\n set(window.digitalData, 'action.clickID', 'languageswitch');\n set(window.digitalData, 'page.pageInfo.language', language);\n window._satellite?.track?.('global_click');\n } else {\n console.warn('digitalData or _satellite not found'); // eslint-disable-line no-console\n }\n }, []);\n\n return (\n
\n \n \n {({ isOpen }) => (\n <>\n
\n \n {t('language')}\n \n {loading ? (\n
\n ) : (\n sendReward('engaged-language-selector')}\n onArrowDownWhenOpen={focusFirstLink}\n style={{\n ...buttonOptions?.styles,\n ...(buttonHover ? buttonOptions?.hoverStyles : null),\n }}\n onMouseEnter={() => setButtonHover(true)}\n onMouseLeave={() => setButtonHover(false)}\n >\n {t('language')}\n {selectedLanguage?.code\n ? LANGUAGE_CODE_NAMES[\n selectedLanguage.code as keyof typeof LANGUAGE_CODE_NAMES\n ]\n : null}{' '}\n \n \n )}\n
\n {loading ? null : (\n \n \n {sortedFullSiteLanguages.length ? (\n
\n {popupOptions?.includeTitles ? (\n

\n {t('hotelSite')}\n

\n ) : null}\n
    \n {sortedFullSiteLanguages.map((lang) => (\n {\n trackLinkClick(lang.value);\n onLanguageSelection?.(lang.value);\n },\n onKeyDown: handleLinkKeyDown,\n isNewWindow: lang.opensNewTab,\n url: lang.href,\n }}\n />\n ))}\n
\n
\n ) : null}\n {sortedResOnlyLanguages.length ? (\n
\n {popupOptions?.includeTitles ? (\n

\n {t('bookingOnly')}\n

\n ) : null}\n
    \n {sortedResOnlyLanguages.map((lang) => (\n trackLinkClick(lang.value),\n onKeyDown: handleLinkKeyDown,\n isNewWindow: lang.opensNewTab,\n url: lang.href,\n }}\n />\n ))}\n
\n
\n ) : null}\n
\n \n )}\n \n )}\n
\n
\n
\n );\n}\n\nfunction ListItem({\n label,\n language,\n linkProps,\n}: {\n label: string;\n language: string;\n linkProps: React.ComponentProps;\n}) {\n return (\n \n \n \n {label}{' '}\n \n \n \n );\n}\n\nfunction PopupContextState({ children }: { children: (args0: PopupContext) => React.ReactNode }) {\n const context = usePopup();\n return children(context);\n}\n\nfunction DownArrowIcon(props: React.ComponentProps<'svg'>) {\n return (\n \n \n \n \n \n \n \n );\n}\n\nexport default LanguageSelector;\n","export * from './lib/osc-language-selector';\n","import { useEffect, useRef, useState } from 'react';\nimport FocusLock from 'react-focus-lock';\nimport cx from 'classnames';\nimport { getIsReducedMotion } from '@dx-ui/utilities-accessibility';\n\nexport type DrawerPanelProps = {\n isOpen: boolean;\n children: React.ReactNode;\n alignment: 'left' | 'right';\n /**\n * Id of the body of your entire app, used to select for all dom elements within app without affecting elements that sit outside the app\n */\n appWrapperId: string;\n /**\n * Id of the wrapper element you want to keep interactive while the panel is open. Example: Navigation header while nav menu is open\n */\n interactiveElementWrapperId: string;\n panelProps?: React.ComponentProps<'div'>;\n /**\n * Allows you to choose a specific point to return focus to or allow for default returnFocus\n */\n returnFocus?: () => boolean;\n};\n\nexport const DrawerPanel = ({\n isOpen,\n children,\n alignment,\n appWrapperId,\n interactiveElementWrapperId,\n panelProps,\n returnFocus,\n}: DrawerPanelProps) => {\n const [isRightPanelVisible, setIsRightPanelVisible] = useState(false);\n useEffect(() => {\n if (!isOpen) {\n if (alignment === 'right') setIsRightPanelVisible(false);\n document.body.style.overflow = 'auto';\n if (nonInteractiveElements.current)\n nonInteractiveElements.current.forEach((nonInteractiveElement) => {\n if (nonInteractiveElement) {\n nonInteractiveElement.removeAttribute('aria-hidden');\n }\n });\n } else {\n document.body.style.overflow = 'hidden';\n const nonInteractiveElems = document?.querySelectorAll(\n // children of element with interactiveElementWrapperId will not have aria-hidden=\"true\" applied\n `#${appWrapperId} *:not(#${interactiveElementWrapperId}, #${interactiveElementWrapperId} *):not([aria-hidden=\"true\"])`\n );\n nonInteractiveElems.forEach((nonInteractiveElement) => {\n if (nonInteractiveElement) {\n nonInteractiveElement.setAttribute('aria-hidden', 'true');\n }\n });\n /** interactiveElementWrapper should always be available in the accessibility tree,\n * the selector above will also set aria-hidden on any parents of the interactiveElementWrapper in between it and element with appWrapperId\n * This function removes aria hidden from the drawer's parents */\n let drawerWrapper: Element | null = document?.querySelector(\n `#${interactiveElementWrapperId}`\n );\n const els: Element[] = [];\n while (drawerWrapper) {\n els.push(drawerWrapper);\n drawerWrapper = drawerWrapper.parentElement;\n }\n els?.forEach((navParentElement) => {\n if (navParentElement) {\n navParentElement.removeAttribute('aria-hidden');\n }\n });\n nonInteractiveElements.current = nonInteractiveElems;\n }\n }, [isOpen, alignment, appWrapperId, interactiveElementWrapperId]);\n\n const nonInteractiveElements = useRef | undefined>();\n\n return (\n \n {\n if (alignment === 'right') setIsRightPanelVisible(true);\n }}\n hidden={!isOpen}\n data-testid={`panelWindow-${alignment}`}\n {...panelProps}\n >\n {/* Right side drawer panel needs to be faded in after animation is completed to avoid focus jump. */}\n {alignment === 'right' ? (\n isRightPanelVisible || (getIsReducedMotion() && isOpen) ? (\n
{children}
\n ) : null\n ) : (\n children\n )}\n \n
\n );\n};\n","export * from './lib/drawer';\n","import type * as Types from './types';\n\nimport {\n useQuery,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\n\nexport const Smb_MemberIdAndStatusDocument = {\n operationName: 'programAccounts',\n operationString: `query programAccounts($guestId: BigInt!, $language: String!) {\n programAccounts(guestId: $guestId, language: $language) {\n accountId\n accountName\n accountStatus\n memberId\n memberStatus\n }\n}`,\n originalOpName: 'smb_MemberIdAndStatus',\n};\nexport function useSmb_MemberIdAndStatusQuery<\n TData = Types.Smb_MemberIdAndStatusQuery,\n TError = DXError\n>(\n variables: Types.Smb_MemberIdAndStatusQueryVariables,\n options?: Omit, 'queryKey'>\n) {\n return useQuery({\n queryKey: [Smb_MemberIdAndStatusDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_MemberIdAndStatusQuery(\n queryClient: QueryClient,\n variables: Types.Smb_MemberIdAndStatusQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [Smb_MemberIdAndStatusDocument, variables],\n ...options,\n });\n}\n\nexport const Smb_ProgramAccountMemberDocument = {\n operationName: 'programAccountMember',\n operationString: `query programAccountMember($guestId: BigInt!, $language: String!, $input: ProgramAccountsSmbMemberInput!) {\n programAccountMember(guestId: $guestId, language: $language, input: $input) {\n accountId\n guestId\n emailAddress: emailAddressMasked\n emailLastVerifiedDateFmt(language: $language, format: \"short\")\n memberId\n status\n role\n }\n}`,\n originalOpName: 'smb_ProgramAccountMember',\n};\nexport function useSmb_ProgramAccountMemberQuery<\n TData = Types.Smb_ProgramAccountMemberQuery,\n TError = DXError\n>(\n variables: Types.Smb_ProgramAccountMemberQueryVariables,\n options?: Omit, 'queryKey'>\n) {\n return useQuery({\n queryKey: [Smb_ProgramAccountMemberDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_ProgramAccountMemberQuery(\n queryClient: QueryClient,\n variables: Types.Smb_ProgramAccountMemberQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [Smb_ProgramAccountMemberDocument, variables],\n ...options,\n });\n}\n","import { sendReward } from '@dx-ui/framework-conductrics';\nimport set from 'lodash/set';\n\nimport { useAuth } from '@dx-ui/framework-auth-provider';\n\nimport {\n useSmb_MemberIdAndStatusQuery,\n useSmb_ProgramAccountMemberQuery,\n} from '../lib/gql/queries';\nimport { env } from '@dx-ui/framework-env';\nimport type { UserLinks } from './types';\nimport { useRouter } from 'next/router';\n\nconst navigationInteractionGoal = 'g-6gRqwMh3Pt';\n\nexport const sendInteractionReward = () => {\n sendReward(navigationInteractionGoal);\n};\n\nexport function removeSpacesAndAmpersands(str: string) {\n return str.replace(/\\s+|&/g, '').toLowerCase();\n}\n\nexport function trackNavClickBasedOnLabel(label: string, dropdownLabel?: string) {\n const value = removeSpacesAndAmpersands(`gh_${dropdownLabel ? `${dropdownLabel}_` : ''}${label}`);\n\n trackNavClick(value);\n}\n\nexport function trackNavClick(value: string) {\n if (window?.digitalData && window?._satellite && value) {\n set(window.digitalData, 'click.clickID', value);\n window._satellite?.track?.('global_click');\n }\n}\n\nconst replaceLang = (stringValue: string, lang: string) => stringValue?.replace('__LANG__', lang);\n\nconst DEFAULT_OCODE = 'JHTNW';\n\n/** Returns the full set of potential nav links, including optional links like SMB and Go Hilton */\nexport function getBaseNavLinksFromEnv(lang: string, isAuthenticated: boolean) {\n const signInUrl = replaceLang(\n env('DX_AUTH_UI', 'https://www.hilton.com/__LANG__/auth2/guest/login/'),\n lang\n );\n const signUpUrl = replaceLang(\n env('HONORS_JOIN_URL', 'https://www.hilton.com/en/hilton-honors/join/') +\n `?ocode=${DEFAULT_OCODE}`,\n lang\n );\n\n const environmentBaseUrl = env('OHW_BASE_URL', 'https://www.hilton.com/');\n\n return {\n signInLink: { url: signInUrl },\n signUpLink: { url: signUpUrl },\n accountLink: { url: `${environmentBaseUrl}${lang}/hilton-honors/guest/my-account/` },\n honorsActivityLink: { url: `${environmentBaseUrl}${lang}/hilton-honors/guest/activity/` },\n smbMemberLink: { url: `${environmentBaseUrl}${lang}/business/manage/` },\n honorsPointsLink: { url: `${environmentBaseUrl}${lang}/hilton-honors/guest/points/` },\n honorsProfileLink: { url: `${environmentBaseUrl}${lang}/hilton-honors/guest/profile/` },\n friendsAndFamilyLink: {\n url: env('TMTP_MANAGE_FAMILY_AND_FRIENDS_LINK', 'https://tmtp.hilton.com/tmtp/main.html'),\n },\n hgvMaxLink: {\n url: env(\n 'EXTERNAL_HGV_PROGRAM_DETAILS_URL',\n 'https://help.hilton.com/s/article/HGV-Max-rate'\n ),\n },\n goHiltonLink: {\n url: env(\n 'EXTERNAL_TMTP_PROGRAM_DETAILS_URL',\n 'https://help.hilton.com/s/article/What-is-the-Go-Hilton-employee-program'\n ),\n },\n findStayLink: {\n url: isAuthenticated\n ? `${environmentBaseUrl}${lang}/hilton-honors/guest/activity/`\n : `${environmentBaseUrl}${lang}/book/reservation/find/`,\n },\n } as const satisfies UserLinks;\n}\n\nexport function useProgramMember({\n programAccountId,\n shouldFetchSmbMemberIdAndStatus = false,\n}: Partial<{\n programAccountId: number | null | undefined;\n shouldFetchSmbMemberIdAndStatus: boolean;\n}> = {}) {\n const { guestId, guestInfo } = useAuth();\n const { locale = 'en', query } = useRouter();\n\n const programAccountIdParam = isNaN(Number(query?.programAccountId))\n ? undefined\n : Number(query?.programAccountId);\n\n const accountId = programAccountId || programAccountIdParam;\n\n const { data, isLoading } = useSmb_MemberIdAndStatusQuery(\n { guestId: guestId as number, language: locale },\n {\n enabled: !!guestId && (!!guestInfo?.hhonors?.isSMBMember || shouldFetchSmbMemberIdAndStatus),\n }\n );\n\n let mostRelevantProgramAccount = data?.programAccounts?.[0];\n\n if ((data?.programAccounts?.length || 0) > 1 && accountId) {\n mostRelevantProgramAccount = data?.programAccounts.filter(\n (programAccount) => programAccount?.accountId === accountId\n )?.[0];\n }\n\n const { data: programAccountData, isLoading: memberDataLoading } =\n useSmb_ProgramAccountMemberQuery(\n {\n guestId: guestId as number,\n language: locale,\n input: {\n accountId: accountId || (mostRelevantProgramAccount?.accountId as number),\n memberId: mostRelevantProgramAccount?.memberId as number,\n },\n },\n {\n enabled:\n !!guestId &&\n !!mostRelevantProgramAccount?.memberId &&\n Boolean(accountId || mostRelevantProgramAccount?.accountId),\n }\n );\n\n const member = {\n accountId,\n ...programAccountData?.programAccountMember,\n memberDataLoading,\n isLoading,\n };\n return member;\n}\n","import type { HeaderProps } from './types';\nimport { useTranslation } from 'next-i18next';\n\nexport const Logo: React.FC> = ({ brand, theme }) => {\n const { t } = useTranslation('osc-header');\n const altText =\n brand.code === 'WW'\n ? t('hiltonForTheStay')\n : brand.code === 'OU'\n ? `${t('hiltonForTheStay')}, ${brand.name}`\n : brand.code === 'LX'\n ? `${t('hiltonForTheStay')}, SLH`\n : brand.name;\n\n return (\n \n );\n};\n\nexport const HeaderLogoLink: React.FC<\n Pick & Pick, 'className'>\n> = ({ brand, className, theme, heading }) => {\n const { t } = useTranslation('osc-header');\n\n const Wrapper = heading ? 'h1' : 'span';\n\n return (\n \n \n \n {brand?.target === '_blank' ? `, ${t('newTab')}` : ''}\n \n \n );\n};\n","/* eslint-disable react/jsx-no-duplicate-props */\nimport * as React from 'react';\nimport { PopupButton, PopupContent, usePopup } from '@dx-ui/osc-popup';\nimport { sendInteractionReward } from '../header.utilities';\nimport { Dialog } from '@dx-ui/osc-dialog-v2';\nimport { useTranslation } from 'next-i18next';\nimport type { LoginResponse } from '@dx-ui/osc-login';\nimport { LoginIFrame } from '@dx-ui/osc-login';\nimport { Link } from '@dx-ui/osc-link';\nimport cx from 'classnames';\nimport type { HeaderProps } from '../types';\nimport Icon, { type IconNames } from '@dx-ui/osc-icon';\n\ntype IconName = (typeof IconNames)[number];\n\ntype NavItemSection = 'navigation' | 'user';\n\ntype NavItemProps = Omit, 'className' | 'children'> &\n Pick & {\n isOpen?: boolean;\n children: React.ReactElement;\n };\n\nexport function NavItem({ children, theme, isOpen = false, ...listItemProps }: NavItemProps) {\n const isDark = theme === 'dark';\n\n const spacedChild = React.cloneElement(children, {\n className: cx(children.props.className, 'flex-1 self-stretch'),\n });\n\n return (\n \n {spacedChild}\n \n );\n}\n\nexport function NavItemVisual({\n label,\n icon,\n indicator,\n hasRotatedIndicator,\n theme,\n section,\n}: {\n label: string;\n theme: 'light' | 'dark' | undefined;\n icon?: IconName;\n indicator?: IconName;\n section: NavItemSection;\n hasRotatedIndicator?: boolean;\n}) {\n const isDark = theme === 'dark';\n\n return (\n <>\n \n {label}\n \n\n {icon ? (\n
\n \n \n
\n ) : null}\n\n {indicator ? (\n
\n \n \n
\n ) : null}\n \n );\n}\n\ntype NavItemWithLinkProps = Omit & {\n theme: 'dark' | undefined;\n section: NavItemSection;\n label: string;\n icon?: React.ReactElement;\n namedIcon?: IconName;\n isWide?: boolean;\n experimentationConfiguration?: CmsExperimentationConfiguration;\n};\n\n//TODO: make the focus ring here take up the full box, like with the dropdowns. Also check ItemWithModal\nexport const NavItemWithLink: React.FC = ({\n theme,\n namedIcon,\n section,\n label,\n isWide,\n experimentationConfiguration,\n ...rest\n}) => {\n return (\n \n \n \n \n \n );\n};\n\ntype TNavItemWithModal = {\n /** Specify the title for the Dialog */\n title: string;\n /** callback to run after login attempt */\n onLoginAttempt: React.ComponentProps['onLoginAttempt'];\n /** Name of the button to display */\n buttonName?: string;\n /** aria-label of the button */\n buttonLabel: string;\n buttonIcon?: IconName;\n onClick?: () => void;\n theme: 'dark' | undefined;\n section: NavItemSection;\n};\n\nexport const NavItemWithModal: React.FC> = ({\n buttonName,\n theme,\n section,\n buttonLabel,\n buttonIcon,\n onClick,\n title,\n onLoginAttempt,\n children,\n}) => {\n const [showDialog, setShowDialog] = React.useState(false);\n const open = () => {\n sendInteractionReward();\n onClick?.();\n setShowDialog(true);\n };\n const close = () => setShowDialog(false);\n\n const handleLogin = (response: LoginResponse) => {\n onLoginAttempt?.(response);\n if (!response.error) {\n close();\n }\n };\n\n const arrayChildren = React.Children.toArray(children);\n\n const [t] = useTranslation('osc-header');\n\n return (\n <>\n \n \n \n \n \n \n {React.Children.map(arrayChildren, (child) => {\n if (React.isValidElement(child) && child.type === LoginIFrame) {\n return React.cloneElement(\n child as React.ReactElement>,\n {\n onLoginAttempt: handleLogin,\n onClose: close,\n }\n );\n }\n return child;\n })}\n \n \n );\n};\n\ntype TNavItemWithPopup = {\n section: NavItemSection;\n onClick?: () => void;\n theme: 'dark' | undefined;\n popupButtonRef?: React.RefObject;\n label: string;\n icon?: IconName;\n indicator?: IconName;\n rotateOnOpen?: boolean;\n experimentationConfiguration?: CmsExperimentationConfiguration;\n};\n\nexport const NavItemWithPopup: React.FC> = ({\n children,\n label,\n icon,\n rotateOnOpen,\n onClick,\n theme,\n popupButtonRef,\n section,\n indicator,\n experimentationConfiguration,\n}) => {\n const { isOpen } = usePopup();\n\n return (\n <>\n \n {\n sendInteractionReward();\n onClick?.();\n }}\n className={cx('flex items-center whitespace-nowrap p-2', {\n 'nav-main-link': section === 'navigation',\n })}\n >\n \n \n \n \n {children}\n \n \n );\n};\n","import { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\nimport { Link } from '@dx-ui/osc-link';\n\nimport Icon from '@dx-ui/osc-icon';\nimport type { HeaderProps, TDrawerLink } from '../types';\nimport { trackNavClick, trackNavClickBasedOnLabel } from '../header.utilities';\nimport { getLocaleFormattedNumber } from '@dx-ui/framework-i18n';\nimport { useRouter } from 'next/router';\n\nexport function NavigationPopupContents({\n subMenu,\n label,\n}: {\n subMenu: TDrawerLink[];\n label: string;\n}) {\n return (\n
\n \n {subMenu.map(\n ({ label: subMenuLabel, link: { experimentationConfiguration, ...link }, onClick }) => (\n \n {\n trackNavClickBasedOnLabel(subMenuLabel, label);\n onClick?.();\n }}\n >\n {subMenuLabel}\n \n \n )\n )}\n \n
\n );\n}\n\nexport type UserPopupContentsProps = Pick<\n HeaderProps,\n | 'userLinks'\n | 'shouldOpenAccountLinksInNewWindow'\n | 'shouldSuppressHonorsAccountLinks'\n | 'onSignOut'\n> & {\n user: Exclude;\n};\n\nexport default function UserPopupContents({\n user,\n userLinks,\n shouldOpenAccountLinksInNewWindow,\n shouldSuppressHonorsAccountLinks,\n onSignOut,\n}: UserPopupContentsProps) {\n const { locale = 'en' } = useRouter();\n const [t] = useTranslation('osc-header');\n\n const formattedHonorsPointsTotal = getLocaleFormattedNumber(user?.honorsPoints, { locale });\n\n return (\n
\n
\n
\n \n
\n
\n

\n {t('greetings', { username: user.name })}\n

\n

\n \n {user.honorsTier}\n {' '}\n {t('status')}\n

\n

\n {t('honorsPointsTotal', { honorsPointsTotal: formattedHonorsPointsTotal })}\n

\n {user.hhonorsNumber ? (\n

\n {t('hiltonHonorsNumber', { hhonorsNumber: user.hhonorsNumber })}\n

\n ) : null}\n
\n
\n
\n \n {userLinks?.accountLink ? (\n {\n trackNavClick('gh_membername_hiltonhonorshome');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('hiltonHonorsHome')}\n \n ) : null}\n {userLinks?.honorsActivityLink && !shouldSuppressHonorsAccountLinks ? (\n {\n trackNavClick('gh_membername_hiltonhonorsactivity');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('activity')}\n \n ) : null}\n\n {userLinks?.honorsPointsLink?.url && !shouldSuppressHonorsAccountLinks ? (\n {\n trackNavClick('gh_membername_hiltonhonorspoints');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('pointsLabel')}\n \n ) : null}\n\n {userLinks?.honorsProfileLink?.url && !shouldSuppressHonorsAccountLinks ? (\n {\n trackNavClick('gh_membername_hiltonhonorsprofile');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('profile')}\n \n ) : null}\n\n {userLinks?.goHiltonLink?.url ? (\n {\n trackNavClick('gh_membername_gohiltonprogramdetails');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('goHiltonProgramDetails')}\n \n ) : null}\n\n {userLinks?.friendsAndFamilyLink?.url ? (\n {\n trackNavClick('gh_membername_managefriendsandfamily');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('manageFriendsAndFamily')}\n \n ) : null}\n\n {userLinks?.hgvMaxLink?.url ? (\n {\n trackNavClick('gh_membername_hgvmaxratedetails');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('hgvMaxRateDetails')}\n \n ) : null}\n\n {userLinks?.smbMemberLink?.url ? (\n {\n trackNavClick('gh_membername_managehiltonforbusiness');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('manageHiltonForBusiness')}\n \n ) : null}\n \n {\n trackNavClick('gh_membername_signout');\n await onSignOut();\n }}\n type=\"button\"\n >\n {t('signOut')}\n \n \n \n
\n
\n );\n}\n\nfunction MenuList({ children, ...listProps }: React.ComponentProps<'ul'>) {\n return (\n
    \n {children}\n
\n );\n}\n\nfunction MenuListItem({ children, ...listItemProps }: React.ComponentProps<'li'>) {\n return (\n
  • \n \n {children}\n \n
  • \n );\n}\n\nfunction MegaUserLink({\n url,\n onClick,\n children,\n isNewWindow,\n}: {\n url: string;\n onClick: () => void;\n children: React.ReactNode;\n isNewWindow?: boolean;\n}) {\n return (\n \n \n {children}\n \n \n );\n}\n","import { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\nimport { Link } from '@dx-ui/osc-link';\nimport { Popup } from '@dx-ui/osc-popup';\nimport { LoginIFrame } from '@dx-ui/osc-login';\nimport type { MegaMenuProps } from '../types';\nimport {\n sendInteractionReward,\n trackNavClickBasedOnLabel,\n trackNavClick,\n} from '../header.utilities';\nimport { LanguageSelector } from '@dx-ui/osc-language-selector';\nimport { sendReward } from '@dx-ui/framework-conductrics';\nimport { Logo } from '../header.logo';\nimport { useRef } from 'react';\nimport { NavItemWithLink, NavItemWithModal, NavItemWithPopup } from './nav-items';\nimport UserPopupContents, { NavigationPopupContents } from './popup-contents';\n\nexport function MegaMenu({\n isFluid,\n suppressLogo = false,\n shouldSuppressHonorsAccountLinks,\n shouldSuppressFindStay,\n shouldSuppressJoinAndSignIn,\n shouldOpenAccountLinksInNewWindow,\n brand,\n mainNavLinks,\n user,\n languageSelectorOptions,\n loginOptions,\n onSignInAttempt,\n userLinks,\n onSignOut,\n heading,\n theme,\n SignUpComponent,\n}: MegaMenuProps) {\n const userNavProps = {\n user,\n userLinks,\n onSignInAttempt,\n onSignOut,\n loginOptions,\n languageSelectorOptions,\n theme,\n shouldSuppressHonorsAccountLinks,\n shouldSuppressFindStay,\n shouldSuppressJoinAndSignIn,\n shouldOpenAccountLinksInNewWindow,\n SignUpComponent,\n };\n const isDark = theme === 'dark';\n const headingLevelProps = heading\n ? {\n role: 'heading',\n 'aria-level': 1,\n 'aria-label': heading,\n }\n : {};\n\n return (\n
    \n \n
    \n {suppressLogo ? null : (\n
    \n \n \n \n
    \n )}\n
    \n \n
    \n
    \n
    \n \n \n
    \n {mainNavLinks?.length ? : null}\n
    \n \n \n \n );\n}\n\ntype UserNavProps = Pick<\n MegaMenuProps,\n | 'loginOptions'\n | 'onSignInAttempt'\n | 'onSignOut'\n | 'user'\n | 'userLinks'\n | 'languageSelectorOptions'\n | 'theme'\n | 'shouldSuppressHonorsAccountLinks'\n | 'shouldSuppressFindStay'\n | 'shouldSuppressJoinAndSignIn'\n | 'shouldOpenAccountLinksInNewWindow'\n | 'SignUpComponent'\n>;\n\nfunction UserNav({\n loginOptions,\n onSignInAttempt,\n onSignOut,\n user,\n languageSelectorOptions,\n userLinks,\n theme,\n shouldSuppressHonorsAccountLinks,\n shouldSuppressFindStay,\n shouldSuppressJoinAndSignIn,\n shouldOpenAccountLinksInNewWindow,\n SignUpComponent,\n}: UserNavProps) {\n const [t] = useTranslation('osc-header');\n\n const defaultOptions: React.ComponentProps = {\n frameSrc: userLinks?.signInLink?.url || '',\n title: t('signIn'),\n onLoginAttempt: onSignInAttempt,\n };\n\n const userButtonLinkRef = useRef(null);\n\n const isDark = theme === 'dark';\n\n return (\n \n );\n}\n\ntype MainNavProps = Required> & {\n theme?: Exclude;\n};\n\nfunction MainNav({ mainNavLinks, theme }: MainNavProps) {\n return (\n
    \n
    \n
      \n {mainNavLinks.map(({ label, subMenu, link, onClick }) => {\n if (!subMenu?.length && link?.url) {\n return (\n {\n sendInteractionReward();\n trackNavClickBasedOnLabel(label);\n onClick?.();\n }}\n />\n );\n }\n if (subMenu?.length) {\n return (\n \n {\n trackNavClickBasedOnLabel(label);\n }}\n experimentationConfiguration={link?.experimentationConfiguration}\n >\n \n \n \n );\n }\n return null;\n })}\n
    \n
    \n
    \n );\n}\n\nexport default MegaMenu;\n","import { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'next-i18next';\nimport type { TDrawerItem, TDrawerList } from '../types';\nimport { Link } from '@dx-ui/osc-link';\nimport Icon from '@dx-ui/osc-icon';\nimport { trackNavClickBasedOnLabel } from '../header.utilities';\nimport cx from 'classnames';\n\nexport const DrawerList = ({ menuItems, isOpen, onClose }: TDrawerList) => {\n const [nextItem, setNextItem] = useState();\n const [nextItemIndex, setNextItemIndex] = useState();\n const [selectedItem, setSelectedItem] = useState();\n const [selectedItemIndex, setSelectedItemIndex] = useState();\n const backButtonRef = useRef(null);\n const [isFadingOut, setIsFadingOut] = useState(false);\n const lastSelectedButton = useRef(null);\n const { t } = useTranslation('osc-header');\n\n useEffect(() => {\n if (!isOpen) setSelectedItem(undefined);\n }, [isOpen]);\n\n const goBack = () => {\n setIsFadingOut(true);\n setNextItem(undefined);\n setTimeout(() => {\n lastSelectedButton?.current?.focus();\n }, 350);\n };\n\n const focusOnBack = () => {\n setTimeout(() => {\n backButtonRef?.current?.focus();\n }, 50);\n };\n\n const itemSelected = (menuItem: TDrawerItem, index: number) => {\n setIsFadingOut(true);\n setNextItem(menuItem);\n setNextItemIndex(index);\n };\n\n return (\n {\n if (isFadingOut) {\n setIsFadingOut(false);\n setSelectedItem(nextItem);\n setSelectedItemIndex(nextItemIndex);\n focusOnBack();\n }\n }}\n >\n
    \n \n
    \n {selectedItem ? (\n \n \n {selectedItem.label}\n \n ) : null}\n\n {selectedItem ? (\n
      \n {selectedItem.subMenu?.map((menuItem) =>\n menuItem.link?.url ? (\n
    • \n {\n trackNavClickBasedOnLabel(menuItem.label, selectedItem.label);\n menuItem.onClick?.();\n }}\n data-conductrics-goal={menuItem.link.experimentationConfiguration?.goal}\n data-conductrics-value={menuItem.link.experimentationConfiguration?.value}\n >\n {menuItem.label}\n \n
    • \n ) : null\n )}\n
    \n ) : (\n // If no submenu is currently selected, show main set of menu items\n
      \n {menuItems.map((menuItem, index) => {\n if (menuItem?.subMenu?.length) {\n return (\n
    • \n {\n itemSelected(menuItem, index);\n trackNavClickBasedOnLabel(menuItem.label);\n }}\n className={cx(\n 'nav-main-link border-border animate-fadein flex h-12 w-full items-center justify-between border-b ps-4 text-left',\n 'brand-ey:hover:bg-tertiary-alt brand-ey:border-b-primary-alt brand-ey:focus:bg-tertiary-alt',\n 'brand-hi-refresh:hover:bg-bg-light brand-hi-refresh:focus:bg-bg-light',\n 'brand-lx:hover:bg-bg-light brand-lx:focus:bg-bg-light',\n 'brand-ou:hover:bg-bg-light brand-ou:border-b-primary brand-ou:focus:bg-bg-light'\n )}\n aria-expanded=\"false\"\n type=\"button\"\n data-conductrics-goal={menuItem.link?.experimentationConfiguration?.goal}\n data-conductrics-value={menuItem.link?.experimentationConfiguration?.value}\n >\n {menuItem.label}\n \n \n
    • \n );\n } else if (menuItem.link?.url) {\n return (\n
    • \n {\n trackNavClickBasedOnLabel(menuItem.label);\n menuItem.onClick?.();\n }}\n data-conductrics-goal={menuItem.link.experimentationConfiguration?.goal}\n data-conductrics-value={menuItem.link.experimentationConfiguration?.value}\n >\n {menuItem.label}\n \n
    • \n );\n }\n return null;\n })}\n
    \n )}\n \n );\n};\n","import { getBaseNavLinksFromEnv, useProgramMember } from '../header.utilities';\nimport { useAuth } from '@dx-ui/framework-auth-provider';\nimport type { UserLinks } from '../types';\nimport { useRouter } from 'next/router';\n\nexport const useActiveUserLinks = (): UserLinks => {\n const { guestInfo, isAuthenticated } = useAuth();\n const { locale, asPath } = useRouter();\n\n const navLinks = getBaseNavLinksFromEnv(locale || 'en', isAuthenticated);\n\n const member = useProgramMember({\n programAccountId: guestInfo?.hhonors?.programAccountSummary?.[0]?.accountId,\n });\n\n const isSMBMember = Boolean(member?.role && ['admin', 'owner', 'employee'].includes(member.role));\n const isHGVMax = Boolean(guestInfo?.hhonors?.isOwnerHGVNew) || asPath.includes('hgv-max');\n\n const isTMTPTeamMember =\n guestInfo?.hhonors?.isOwner ||\n guestInfo?.hhonors?.isTeamMember ||\n guestInfo?.hhonors?.isOwnerHGV;\n\n const isTMTPNonTeamMember =\n guestInfo?.hhonors?.isTeamMemberSpouse ||\n guestInfo?.hhonors?.isFamilyAndFriends ||\n guestInfo?.hhonors?.isLongTenure10 ||\n guestInfo?.hhonors?.isLongTenure20;\n\n return {\n ...navLinks,\n smbMemberLink: isSMBMember ? navLinks?.smbMemberLink : undefined,\n friendsAndFamilyLink: isTMTPTeamMember ? navLinks?.friendsAndFamilyLink : undefined,\n goHiltonLink: isTMTPNonTeamMember || isTMTPTeamMember ? navLinks?.goHiltonLink : undefined,\n hgvMaxLink: isHGVMax ? navLinks?.hgvMaxLink : undefined,\n };\n};\n","import { useRef, useState } from 'react';\nimport FocusLock from 'react-focus-lock';\nimport { Login } from '@dx-ui/osc-login';\nimport { useTranslation } from 'next-i18next';\nimport { Link } from '@dx-ui/osc-link';\nimport { DrawerPanel } from '@dx-ui/osc-drawer';\nimport cx from 'classnames';\nimport MegaMenu from './mega-menu';\nimport { DrawerList } from './nav-drawer-list';\nimport Icon from '@dx-ui/osc-icon';\nimport { sendInteractionReward, trackNavClick } from '../header.utilities';\nimport { LanguageSelector } from '@dx-ui/osc-language-selector';\nimport { sendReward } from '@dx-ui/framework-conductrics';\nimport { HeaderLogoLink } from '../header.logo';\nimport type { TBrandHeaderBody } from '../types';\nimport { useRouter } from 'next/router';\nimport { getLocaleFormattedNumber } from '@dx-ui/framework-i18n';\nimport { useActiveUserLinks } from '../hooks/useActiveUserLinks';\n\nexport const BrandHeaderBody = ({\n menuItems,\n brand,\n loginOptions,\n user,\n SignUpComponent,\n wrapperId,\n onSignInAttempt,\n languageSelectorOptions,\n onSignOut,\n isFluid,\n suppressLogo,\n shouldSuppressFindStay,\n shouldSuppressJoinAndSignIn,\n shouldOpenAccountLinksInNewWindow,\n shouldSuppressHonorsAccountLinks,\n heading,\n theme,\n}: TBrandHeaderBody) => {\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n const [isAccountOpen, setIsAccountOpen] = useState(false);\n const { t } = useTranslation('osc-header');\n const userLoggedInButtonRef = useRef(null);\n\n const activeUserLinks = useActiveUserLinks();\n\n const closeMenus = () => {\n setIsMenuOpen(false);\n setIsAccountOpen(false);\n document.removeEventListener('keydown', handleKeyDown);\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n closeMenus();\n }\n };\n\n const addEscapeKeyListener = () => {\n document.addEventListener('keydown', handleKeyDown);\n };\n\n const removeEscapeKeyListener = () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n\n const menuPressed = () => {\n sendInteractionReward();\n if (isAccountOpen) setIsAccountOpen(false);\n if (isMenuOpen) {\n setIsMenuOpen(false);\n removeEscapeKeyListener();\n } else {\n addEscapeKeyListener();\n setIsMenuOpen(true);\n }\n };\n\n const accountPressed = () => {\n sendInteractionReward();\n sendReward('profile-name-click');\n setIsMenuOpen(false);\n if (isAccountOpen) {\n setIsAccountOpen(false);\n removeEscapeKeyListener();\n } else {\n setIsAccountOpen(true);\n addEscapeKeyListener();\n }\n };\n\n const closeMainMenu = () => {\n setIsMenuOpen(false);\n };\n\n const closeAccount = () => {\n setIsAccountOpen(false);\n };\n\n const isDark = theme === 'dark';\n\n const joinButtonClasses = cx(\n 'brand-wa:font-normal brand-ey:font-normal border-border brand-lx:border-primary m-auto inline-block border-e pe-2 text-xs font-semibold',\n {\n 'text-text-inverse': isDark,\n }\n );\n return (\n <>\n \n \n {menuItems && menuItems.length > 0 ? (\n \n \n \n {t('open')}\n {t('menu')}\n \n \n ) : null}\n {!suppressLogo ? (\n \n ) : null}\n
    \n {languageSelectorOptions ? (\n
    \n \n
    \n ) : null}\n
    \n {activeUserLinks?.findStayLink && !shouldSuppressFindStay ? (\n {\n sendInteractionReward();\n sendReward('find-stay-click');\n trackNavClick('gh_findstay');\n }}\n >\n \n \n {t('findStay')}\n \n \n ) : null}\n {user ? (\n {\n trackNavClick('gh_membername');\n accountPressed();\n }}\n aria-expanded={isAccountOpen}\n type=\"button\"\n >\n \n \n {t('greetings', { username: user.name })}\n \n \n ) : (activeUserLinks?.signInLink || activeUserLinks?.signUpLink) &&\n !shouldSuppressJoinAndSignIn ? (\n
    \n
    \n {activeUserLinks?.signUpLink && !SignUpComponent ? (\n
    \n {\n sendInteractionReward();\n sendReward('nav-join-click');\n trackNavClick('gh_join_signin');\n }}\n >\n {t('signUp')}\n \n
    \n ) : null}\n {SignUpComponent ? (\n
    \n \n {t('signUp')}\n \n
    \n ) : null}\n {activeUserLinks.signInLink ? (\n {\n sendInteractionReward();\n trackNavClick('gh_join_signin');\n }}\n >\n \n {\n setIsMenuOpen(false);\n setIsAccountOpen(false);\n }}\n buttonClassName={cx(\n 'brand-wa:!font-normal brand-ey:font-normal text-xs font-semibold',\n {\n 'text-text-inverse': isDark,\n }\n )}\n {...loginOptions}\n />\n
    \n ) : null}\n
    \n
    \n ) : null}\n
    \n \n \n {(isMenuOpen || isAccountOpen) && (\n \n )}\n {menuItems && menuItems.length > 0 ? (\n \n {\n document.getElementById('menu-open-button')?.focus();\n return false;\n }}\n >\n \n \n \n ) : null}\n \n {user && isAccountOpen ? (\n \n ) : null}\n \n \n\n \n \n );\n};\n\nexport type TAccountSection = Pick<\n TBrandHeaderBody,\n | 'userLinks'\n | 'onSignOut'\n | 'shouldSuppressHonorsAccountLinks'\n | 'shouldOpenAccountLinksInNewWindow'\n> &\n Required> & {\n onClose: () => void;\n };\n\nconst AccountUserLink = ({\n url,\n onClick,\n children,\n isNewWindow,\n}: {\n url: string;\n onClick: () => void;\n children: React.ReactNode;\n isNewWindow?: boolean;\n}) => {\n return (\n \n {children}\n \n );\n};\n\nconst AccountSection = ({\n user,\n userLinks,\n onClose,\n onSignOut,\n shouldSuppressHonorsAccountLinks,\n shouldOpenAccountLinksInNewWindow,\n}: TAccountSection) => {\n const { locale = 'en' } = useRouter();\n\n const { t } = useTranslation('osc-header');\n const formattedHonorsPointsTotal = getLocaleFormattedNumber(user.honorsPoints, { locale });\n\n return (\n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {t('greetings', { username: user.name })}\n
    \n {user.honorsTier} {t('status')}\n
    \n
    {t('honorsPointsTotal', { honorsPointsTotal: formattedHonorsPointsTotal })}
    \n {user.hhonorsNumber ? (\n
    {t('hiltonHonorsNumber', { hhonorsNumber: user.hhonorsNumber })}
    \n ) : null}\n
    \n
    \n
    \n {userLinks?.accountLink?.url ? (\n {\n trackNavClick('gh_membername_hiltonhonorshome');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('hiltonHonorsHome')}\n \n ) : null}\n {userLinks?.honorsProfileLink?.url ? (\n {\n trackNavClick('gh_membername_hiltonhonorsprofile');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('profile')}\n \n ) : null}\n\n {userLinks?.honorsActivityLink?.url && !shouldSuppressHonorsAccountLinks ? (\n {\n trackNavClick('gh_membername_hiltonhonorsactivity');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('activity')}\n \n ) : null}\n\n {userLinks?.honorsPointsLink?.url && !shouldSuppressHonorsAccountLinks ? (\n {\n trackNavClick('gh_membername_hiltonhonorspoints');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('pointsLabel')}\n \n ) : null}\n\n {userLinks?.goHiltonLink?.url ? (\n {\n trackNavClick('gh_membername_gohiltonprogramdetails');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('goHiltonProgramDetails')}\n \n ) : null}\n\n {userLinks?.friendsAndFamilyLink?.url ? (\n {\n trackNavClick('gh_membername_managefriendsandfamily');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('manageFriendsAndFamily')}\n \n ) : null}\n\n {userLinks?.hgvMaxLink?.url ? (\n {\n trackNavClick('gh_membername_hgvmaxratedetails');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('hgvMaxRateDetails')}\n \n ) : null}\n\n {userLinks?.smbMemberLink?.url ? (\n {\n trackNavClick('gh_membername_managehiltonforbusiness');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('manageHiltonForBusiness')}\n \n ) : null}\n\n {\n trackNavClick('gh_membername_signout');\n onClose();\n await onSignOut();\n }}\n type=\"button\"\n >\n {t('signOut')}\n \n
    \n
    \n );\n};\n","import type * as React from 'react';\nimport cx from 'classnames';\nimport Icon from '@dx-ui/osc-icon';\nimport type { IconProps } from '@dx-ui/osc-icon';\n\nexport type BannerNotificationProps = {\n /** Content to be displayed in banner notification. */\n children: React.ReactNode;\n /** The status to be use. */\n status: 'error' | 'success' | 'normal';\n customIcon?: IconProps;\n} & React.HTMLAttributes;\n\nconst STATUS_ROLE_MAPPER = Object.freeze({\n error: 'assertive',\n success: 'polite',\n normal: 'polite',\n});\n\n/**\n * Displays a banner notification message with an icon.\n */\nexport const BannerNotification = ({\n status,\n children,\n className,\n customIcon,\n ...rest\n}: BannerNotificationProps) => {\n return (\n \n {customIcon ? (\n \n ) : (\n <>\n {status === 'error' && }\n {status === 'success' && }\n \n )}\n {children}\n \n );\n};\n","export * from './lib/banner-notification';\n","import type * as Types from './types';\n\nimport {\n useQuery,\n useMutation,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n type UseMutationOptions,\n} from '@tanstack/react-query';\n\nexport const Countries_AddressOptionsDocument = {\n operationName: 'countries_AddressOptions',\n operationString: `query countries_AddressOptions($language: String!, $code: String, $type: AddressOptionsAddressType) {\n countries(language: $language, filter: {code: $code}) {\n code\n name\n addressOptions(type: $type) {\n name\n label\n maxLength\n required\n }\n states(sort: {by: name, order: asc}) {\n value: code\n name\n }\n }\n}`,\n originalOpName: 'countries_AddressOptions',\n};\nexport function useCountries_AddressOptionsQuery<\n TData = Types.Countries_AddressOptionsQuery,\n TError = unknown\n>(\n variables: Types.Countries_AddressOptionsQueryVariables,\n options?: Omit, 'queryKey'>\n) {\n return useQuery({\n queryKey: [Countries_AddressOptionsDocument, variables],\n ...options,\n });\n}\nexport function serverSideCountries_AddressOptionsQuery(\n queryClient: QueryClient,\n variables: Types.Countries_AddressOptionsQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [Countries_AddressOptionsDocument, variables],\n ...options,\n });\n}\n\nexport const GeocodeDocument = {\n operationName: 'geocode',\n operationString: `query geocode($postalCode: String, $language: String!) {\n geocode(language: $language, postalCode: $postalCode) {\n match {\n address {\n city\n state\n }\n }\n }\n}`,\n originalOpName: 'geocode',\n};\nexport function useGeocodeQuery(\n variables: Types.GeocodeQueryVariables,\n options?: Omit, 'queryKey'>\n) {\n return useQuery({\n queryKey: [GeocodeDocument, variables],\n ...options,\n });\n}\nexport function serverSideGeocodeQuery(\n queryClient: QueryClient,\n variables: Types.GeocodeQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [GeocodeDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_CountriesDocument = {\n operationName: 'brand_countries',\n operationString: `query brand_countries($after: String, $containsHotels: Boolean, $first: Int, $language: String!, $countryFilter: CountryFilterInput, $regionFilter: CountryStateFilterInput, $cityFilter: CountryCityFilterInput, $getStates: Boolean = false, $getCities: Boolean = false, $getMarketing: Boolean = false, $getCCSMarketing: Boolean = false) {\n countries(\n after: $after\n containsHotels: $containsHotels\n filter: $countryFilter\n first: $first\n language: $language\n sort: {by: name}\n ) {\n code\n callingCode\n dataSubjectRights\n marketingConsent @include(if: $getMarketing)\n marketingOptIn @include(if: $getMarketing)\n marketingOptInForHGV @include(if: $getMarketing)\n marketingOptin @include(if: $getCCSMarketing) {\n dataSubjectRights\n marketingOptinRules {\n category\n optIns {\n autoOptIn\n _id\n customerTextExternal\n name\n subscriptionCodes\n termsAndConditionsBook\n termsAndConditionsJoin\n }\n }\n }\n name: displayName\n states(filter: $regionFilter) @include(if: $getStates) {\n name\n code\n personalDataRequest\n value: code\n cities(filter: $cityFilter, sort: {by: name, order: asc}) @include(if: $getCities) {\n name\n value: name\n brandCodes\n }\n }\n cities(filter: $cityFilter, onlyIfNoStates: true, sort: {by: name, order: asc}) @include(if: $getCities) {\n name\n value: name\n brandCodes\n }\n }\n}`,\n originalOpName: 'brand_countries',\n};\nexport function useBrand_CountriesQuery(\n variables: Types.Brand_CountriesQueryVariables,\n options?: Omit, 'queryKey'>\n) {\n return useQuery({\n queryKey: [Brand_CountriesDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_CountriesQuery(\n queryClient: QueryClient,\n variables: Types.Brand_CountriesQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [Brand_CountriesDocument, variables],\n ...options,\n });\n}\n\nexport const CreateGuestDocument = {\n operationName: 'createGuest',\n operationString: `mutation createGuest($input: EnrollInput!, $language: String!, $recaptchaInput: RecaptchaInput) {\n createGuest(input: $input, language: $language, recaptchaInput: $recaptchaInput) {\n data {\n guestId\n hhonorsNumber\n }\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'createGuest',\n};\nexport function useCreateGuestMutation(\n options: UseMutationOptions<\n Types.CreateGuestMutation,\n TError,\n [typeof CreateGuestDocument, Types.CreateGuestMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestMutation,\n TError,\n [typeof CreateGuestDocument, Types.CreateGuestMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const Languages_DefaultCountryCodeDocument = {\n operationName: 'languages_defaultCountryCode',\n operationString: `query languages_defaultCountryCode($language: String!) {\n languages(language: $language, filter: {languageCodeOHW: $language}) {\n defaultCountryCode\n }\n}`,\n originalOpName: 'languages_defaultCountryCode',\n};\nexport function useLanguages_DefaultCountryCodeQuery<\n TData = Types.Languages_DefaultCountryCodeQuery,\n TError = unknown\n>(\n variables: Types.Languages_DefaultCountryCodeQueryVariables,\n options?: Omit<\n UseQueryOptions,\n 'queryKey'\n >\n) {\n return useQuery({\n queryKey: [Languages_DefaultCountryCodeDocument, variables],\n ...options,\n });\n}\nexport function serverSideLanguages_DefaultCountryCodeQuery(\n queryClient: QueryClient,\n variables: Types.Languages_DefaultCountryCodeQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [Languages_DefaultCountryCodeDocument, variables],\n ...options,\n });\n}\n","export const AutoComplete = {\n ADDRESSLINE1: 'address-line1',\n ADDRESSLINE2: 'address-line2',\n CITY: 'address-level2',\n COUNTRY: 'country',\n CURRENTPASSWORD: 'current-password',\n EMAIL: 'email',\n FAMILYNAME: 'family-name',\n GIVENNAME: 'given-name',\n NAME: 'name',\n NEWPASSWORD: 'new-password',\n OFF: 'off',\n POSTALCODE: 'postal-code',\n STATE: 'address-level1',\n STREETADDRESS: 'street-address',\n TEL: 'tel',\n TELNATIONAL: 'tel-national',\n USERNAME: 'username',\n CREDITCARD: 'cc-number',\n} as const;\n","import { useFormContext } from 'react-hook-form';\nimport { FormInput, FormSelect } from '@dx-ui/osc-form';\nimport { useCountries_AddressOptionsQuery, useGeocodeQuery } from './queries/generated/queries';\nimport type { AddressOptionsAddressType } from '@dx-ui/gql-types';\nimport { useCallback, useState, useEffect } from 'react';\nimport { useTranslation } from 'next-i18next';\nimport { AutoComplete } from './auto-complete';\n\nconst getAutoComplete = (name: string) => {\n switch (name) {\n case 'addressLine1':\n case 'businessAddressLine1':\n return AutoComplete.ADDRESSLINE1;\n case 'addressLine2':\n case 'businessAddressLine2':\n return AutoComplete.ADDRESSLINE2;\n case 'city':\n return AutoComplete.CITY;\n case 'state':\n return AutoComplete.STATE;\n case 'postalCode':\n return AutoComplete.POSTALCODE;\n default:\n return '';\n }\n};\n\nexport const Modes = {\n Add: 'add',\n Edit: 'edit',\n} as const;\n\nexport type ModesType = (typeof Modes)[keyof typeof Modes];\n\nexport function AddressFields({\n code = 'US',\n language = 'en',\n type = 'nonBusiness',\n groupName,\n componentState = Modes.Add,\n setLoadingGeocode,\n}: {\n code: string;\n groupName?: string;\n language?: string;\n type?: AddressOptionsAddressType;\n componentState?: ModesType;\n setLoadingGeocode?: React.Dispatch>;\n}) {\n const [t] = useTranslation('osc-join-form-form');\n const {\n setError,\n clearErrors,\n setValue,\n watch,\n formState: { touchedFields },\n register,\n getFieldState,\n } = useFormContext();\n\n const [isZipInvalid, setIsZipInvalid] = useState(false);\n\n const shouldHideCityAndStateFields =\n code === 'US' && !isZipInvalid && componentState === Modes.Add;\n\n const getFieldKey = useCallback(\n (field: string): string => (groupName ? `${groupName}.${field}` : field),\n [groupName]\n );\n\n const isPostalCodeTouched = getFieldState(getFieldKey('postalCode'))?.isTouched;\n\n const zipCode = watch(getFieldKey('postalCode'));\n const city = watch(getFieldKey('city'));\n const state = watch(getFieldKey('state'));\n\n const { data: addressFieldData } = useCountries_AddressOptionsQuery(\n { language, code, type },\n { enabled: !!code }\n );\n const states = addressFieldData?.countries?.[0]?.states || [];\n\n // Set 'Please select' option as default for state select element\n useEffect(() => {\n if (componentState === Modes.Add) {\n if (!touchedFields[getFieldKey('state')]) {\n setValue(getFieldKey('state'), states.length > 0 ? 'pleaseSelect' : '');\n }\n }\n }, [getFieldKey, setValue, states, touchedFields, componentState]);\n\n const {\n data: geoLocationData,\n isLoading,\n error,\n } = useGeocodeQuery(\n {\n language,\n postalCode: watch(getFieldKey('postalCode')),\n },\n {\n enabled:\n !!/^(?!0{5,})\\d{5}(-\\d{4})?$/.test(zipCode) &&\n code === 'US' &&\n !(componentState === Modes.Edit && !isPostalCodeTouched),\n }\n );\n\n useEffect(() => {\n if (geoLocationData) {\n if (\n !geoLocationData?.geocode?.match?.address?.city ||\n !geoLocationData?.geocode?.match?.address?.state\n ) {\n setIsZipInvalid(true);\n setValue(getFieldKey('city'), '');\n setValue(getFieldKey('state'), 'pleaseSelect');\n setError(getFieldKey('postalCode'), {\n type: 'validate',\n message: t('address.zipCode.error_lookup'),\n });\n } else {\n clearErrors(getFieldKey('postalCode'));\n clearErrors(getFieldKey('city'));\n setValue(getFieldKey('city'), geoLocationData?.geocode?.match?.address?.city);\n setValue(getFieldKey('state'), geoLocationData?.geocode?.match?.address?.state);\n setIsZipInvalid(false);\n }\n } else if (error) {\n const errors = JSON.parse(JSON.stringify(error));\n for (const error of errors.graphQLErrors) {\n if (error?.message === 'Not Found') {\n setIsZipInvalid(true);\n setValue(getFieldKey('city'), '');\n setValue(getFieldKey('state'), 'pleaseSelect');\n setError(getFieldKey('postalCode'), {\n type: 'validate',\n message: t('address.zipCode.error_lookup'),\n });\n }\n }\n }\n }, [geoLocationData, setValue, getFieldKey, setError, t, clearErrors, error]);\n\n useEffect(() => {\n // set state to enable/ disable submit button depending on geocode query\n if (setLoadingGeocode) {\n if (isLoading) setLoadingGeocode(true);\n else setLoadingGeocode(false);\n }\n }, [isLoading, setLoadingGeocode]);\n\n const fields = addressFieldData?.countries?.[0]?.addressOptions;\n if (!fields || !/^\\w{2}$/.test(code)) {\n return null;\n }\n\n return (\n <>\n {fields.map(({ name, label, required }) => {\n if (shouldHideCityAndStateFields && (name === 'state' || name === 'city')) {\n return ;\n }\n\n if (name === 'state' && states.length > 0) {\n return (\n {\n if (!required) {\n return true;\n }\n return value === 'pleaseSelect' || !value\n ? code === 'US'\n ? t('address.state.error')\n : t('address.province.error')\n : true;\n },\n }}\n >\n \n {states.map((state) => (\n \n ))}\n \n );\n }\n\n return (\n {\n if (!required || (!!value && name !== 'postalCode')) {\n return true;\n }\n switch (name) {\n case 'addressLine1':\n case 'businessAddressLine1':\n if (code === 'JP') {\n return t('address.district.error');\n }\n return t('address.addressLine1.error');\n case 'state':\n return t('address.province.error');\n case 'city':\n if (code === 'JP') {\n return t('address.ward.error');\n }\n return t('address.city.error');\n case 'postalCode':\n if (code === 'US') {\n if (/^(?!0{5,})\\d{5}(-\\d{4})?$/.test(value)) {\n if ((isZipInvalid || !geoLocationData?.geocode) && (!city || !state)) {\n return t('address.zipCode.error_lookup');\n }\n return true;\n }\n if (value === '' && (!city || !state) && type === 'nonBusiness') {\n return t('address.zipCode.invalid');\n }\n return value === ''\n ? t('address.zipCode.error')\n : t('address.zipCode.invalid');\n }\n return required && value ? true : t('address.postalCode.error');\n default:\n if (name === 'businessAddressLine1') return t('address.addressLine1.error');\n if (name === 'businessAddressLine2') return t('address.addressLine2.error');\n return t(`address.${name}.error` as unknown as TemplateStringsArray);\n }\n },\n }}\n {...(name === 'addressLine1' ||\n name === 'businessAddressLine1' ||\n name === 'addressLine2' ||\n name === 'businessAddressLine2' ||\n name === 'city'\n ? { maxLength: 35 }\n : {})}\n />\n );\n })}\n \n );\n}\n","import { useId } from 'react';\nimport { get, useFormContext } from 'react-hook-form';\nimport { FormErrorIcon, FormLabel } from '@dx-ui/osc-form';\nimport cx from 'classnames';\nimport { useTranslation } from 'next-i18next';\n\nimport type { FormInputBase } from '@dx-ui/osc-form';\nimport type { FieldError } from 'react-hook-form';\nimport type { InputHTMLAttributes } from 'react';\n\ntype FormInputPasswordProps = {\n passwordCriteriaClassName?: string;\n} & Omit;\n\nexport const FormInputPassword: React.FC<\n React.PropsWithChildren<\n FormInputBase>>\n >\n> = ({\n label,\n name,\n required,\n optional,\n registerOptions,\n labelClassName,\n className,\n containerClassName,\n passwordCriteriaClassName,\n ...rest\n}) => {\n const id = useId();\n const helperId = `input-helper-${id}`;\n const [t] = useTranslation('osc-join-form-form');\n const {\n register,\n formState: { errors, touchedFields },\n } = useFormContext();\n\n const fieldError: FieldError = get(errors, name);\n const touchedField = get(touchedFields, name);\n const hasError = !!fieldError;\n\n const passRequirements = [\n { type: 'mustBe', message: t('password.requirements.mustBe') },\n { type: 'containUpper', message: t('password.requirements.containUpper') },\n { type: 'containLower', message: t('password.requirements.containLower') },\n { type: 'containOneNumber', message: t('password.requirements.containOneNumber') },\n ];\n\n return (\n
    \n \n \n /^(?=.*[A-Z])(?=.*[a-z])((?=.*[0-9])|(?=.*[#?!@$%^&*-])).{8,32}$/.test(value) ||\n t('password.error'),\n mustBe: (value: string) => /.{8,32}/.test(value) || t('password.requirements.mustBe'),\n containUpper: (value: string) =>\n /(?=.*[A-Z])/.test(value) || t('password.requirements.containUpper'),\n containLower: (value: string) =>\n /(?=.*[a-z])/.test(value) || t('password.requirements.containLower'),\n containOneNumber: (value: string) =>\n /(?=.*[0-9])|(?=.*[#?!@$%^&*-])/.test(value) ||\n t('password.requirements.containOneNumber'),\n },\n ...registerOptions,\n })}\n />\n \n \n {passRequirements.map(({ message, type }) => {\n const hasRequirementError = fieldError?.types?.[type];\n return (\n \n {hasRequirementError && }\n {!hasRequirementError && !touchedField && (\n \n \n \n )}\n {!hasRequirementError && touchedField && (\n \n \n \n )}\n {message}\n \n );\n })}\n \n
    \n );\n};\n","export const email =\n /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*\\.[a-zA-Z0-9-]{2,}$/;\nexport const phone = /^[0-9-()\\s]{7,15}$/;\nexport const postalCode =\n /^(?!0{5,})(?:[ \\x2D0-9A-Za-z\\xA0\\xAA\\xB2\\xB3\\xB5\\xB9\\xBA\\xBC-\\xBE\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u0660-\\u0669\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0966-\\u096F\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09F9\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AE6-\\u0AEF\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0BE6-\\u0BF2\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D58-\\u0D61\\u0D66-\\u0D78\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DE6-\\u0DEF\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F20-\\u0F33\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F-\\u1049\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u1090-\\u1099\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1369-\\u137C\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B50-\\u1B59\\u1B83-\\u1BA0\\u1BAE-\\u1BE5\\u1C00-\\u1C23\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2000-\\u200A\\u202F\\u205F\\u2070\\u2071\\u2074-\\u2079\\u207F-\\u2089\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2150-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2CFD\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3000\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u3192-\\u3195\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA830-\\uA835\\uA840-\\uA873\\uA882-\\uA8B3\\uA8D0-\\uA8D9\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA900-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF-\\uA9D9\\uA9E0-\\uA9E4\\uA9E6-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD07-\\uDD33\\uDD40-\\uDD78\\uDD8A\\uDD8B\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE1-\\uDEFB\\uDF00-\\uDF23\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC58-\\uDC76\\uDC79-\\uDC9E\\uDCA7-\\uDCAF\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDCFB-\\uDD1B\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBC-\\uDDCF\\uDDD2-\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE40-\\uDE48\\uDE60-\\uDE7E\\uDE80-\\uDE9F\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDEEB-\\uDEEF\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF58-\\uDF72\\uDF78-\\uDF91\\uDFA9-\\uDFAF]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDCFA-\\uDD23\\uDD30-\\uDD39\\uDE60-\\uDE7E\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF27\\uDF30-\\uDF45\\uDF51-\\uDF54\\uDF70-\\uDF81\\uDFB0-\\uDFCB\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC52-\\uDC6F\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD03-\\uDD26\\uDD36-\\uDD3F\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDD0-\\uDDDA\\uDDDC\\uDDE1-\\uDDF4\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDEF0-\\uDEF9\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC50-\\uDC59\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEAA\\uDEB8\\uDEC0-\\uDEC9\\uDF00-\\uDF1A\\uDF30-\\uDF3B\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCF2\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDD50-\\uDD59\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC50-\\uDC6C\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD50-\\uDD59\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDDA0-\\uDDA9\\uDEE0-\\uDEF2\\uDFB0\\uDFC0-\\uDFD4]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDE70-\\uDEBE\\uDEC0-\\uDEC9\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF5B-\\uDF61\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE96\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD834[\\uDEE0-\\uDEF3\\uDF60-\\uDF78]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD40-\\uDD49\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB\\uDEF0-\\uDEF9]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDCC7-\\uDCCF\\uDD00-\\uDD43\\uDD4B\\uDD50-\\uDD59]|\\uD83B[\\uDC71-\\uDCAB\\uDCAD-\\uDCAF\\uDCB1-\\uDCB4\\uDD01-\\uDD2D\\uDD2F-\\uDD3D\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD83C[\\uDD00-\\uDD0C]|\\uD83E[\\uDFF0-\\uDFF9]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A]){2,10}$/;\nexport const country = /^[A-Z]{2}$/;\n","import { FormError, FormHelpMessage, FormLabel } from '@dx-ui/osc-form';\nimport cx from 'classnames';\nimport { useTranslation } from 'next-i18next';\nimport { useId, useMemo } from 'react';\nimport { get, useFormContext } from 'react-hook-form';\n\nimport { AutoComplete } from './auto-complete';\nimport { phone } from './form-validation-regex';\n\nimport type { FieldError } from 'react-hook-form';\nimport type { Brand_CountriesQuery } from './queries/generated/types';\n\ntype Options = Brand_CountriesQuery['countries'][number];\n\ntype Props = {\n containerClassName?: string;\n classname?: string;\n defaultValue?: string;\n label?: string;\n labelClassName?: string;\n loading?: boolean;\n options: Options[];\n required?: boolean;\n personalInformationPage?: boolean;\n name?: string;\n addDefaultOption?: boolean;\n isDisabled?: boolean;\n phoneCountryError?: string;\n};\n\nexport const FormInputPhone: React.FC> = ({\n required,\n options,\n containerClassName,\n classname,\n labelClassName,\n defaultValue,\n label,\n loading,\n personalInformationPage,\n name = 'phone',\n addDefaultOption,\n isDisabled,\n phoneCountryError,\n}) => {\n const id = useId();\n const helperId = `input-helper-${id}`;\n const helperPhoneId = `input-helper-phone-${id}`;\n const errorId = `input-error-${id}`;\n const [t] = useTranslation('osc-join-form-form');\n const {\n register,\n formState: { errors },\n } = useFormContext();\n\n const phoneNumberFieldError: FieldError = get(errors, `${name}.phoneNumber`);\n const phoneCountryFieldError: FieldError = get(errors, `${name}.phoneCountry`);\n const hasError = !!phoneNumberFieldError || !!phoneCountryFieldError;\n\n const getOptions = useMemo(\n () =>\n options?.map(({ name, code, callingCode }) => (\n {`+${callingCode} ${name}`}\n )),\n [defaultValue, options]\n );\n\n return (\n \n \n \n \n \n {addDefaultOption ? (\n \n ) : null}\n\n {options?.map(({ name, code, callingCode }) => (\n {`+${callingCode} ${name}`}\n ))}\n \n \n \n {phoneCountryFieldError && }\n\n \n \n \n \n \n {phoneNumberFieldError && }\n \n \n
    \n \n \n \n {addDefaultOption ? (\n \n ) : null}\n {getOptions}\n \n\n \n \n \n {phoneCountryFieldError && }\n {phoneNumberFieldError && }\n \n \n
    \n \n );\n};\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport type * as React from 'react';\nimport type { MarkdownToJSX } from 'markdown-to-jsx';\nimport MarkdownToJsx from 'markdown-to-jsx';\nimport type { Rule } from '@dx-ui/utilities-url-config';\nimport { getUrlConfig, RuleEngine } from '@dx-ui/utilities-url-config';\nimport { Link } from '@dx-ui/osc-link';\nimport merge from 'lodash/merge';\nimport { Speedbump, useSpeedbump } from '@dx-ui/osc-speedbump';\n\nexport type Markdown = {\n /** Specific config rule that is used by the [RuleEngine](https://jira.hilton.com/stash/projects/HIW/repos/dx-shared/browse/packages/rule-engine) to process urls in the markdown */\n rule?: Rule;\n /** current language */\n language: string;\n /** url origin to use for determining url props to use when constructing links */\n origin: string;\n} & MarkdownAttributes;\n\ntype MarkdownAttributes = {\n [key: string]: unknown;\n children: string;\n options?: MarkdownToJSX.Options;\n};\n\ntype MarkdownLink = {\n language: string;\n origin: string;\n rule: Rule;\n} & React.AnchorHTMLAttributes;\n\nconst MarkdownLink: React.FC> = ({\n children,\n rule,\n language,\n origin,\n href,\n ...props\n}) => {\n const { onShow, onHide, isVisible, onContinue, isEnabled } = useSpeedbump(language);\n if (!href) {\n return null;\n }\n const linkProps: Link = { url: href };\n if (rule) {\n const ruleEngine = new RuleEngine(rule);\n const data = getUrlConfig(ruleEngine, href, origin, language);\n linkProps.url = data.url;\n if (data.speedbump) {\n linkProps.onClick = onShow;\n }\n }\n return (\n <>\n \n {children}\n \n {isEnabled && }\n \n );\n};\n\n/**\n * Used to display markdown content. This is a wrapper around [markdown-to-jsx](https://www.npmjs.com/package/markdown-to-jsx) that provides standard overrides\n * to handle links in the markdown. This incorporates the @see RuleEngine to process the urls in the markdown and provide\n * information to construct the [HTMLAnchorElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement).\n * @returns JSX that is used to render the html\n */\nexport const Markdown: React.FC = ({\n children,\n options,\n language,\n origin,\n rule,\n ...props\n}) => {\n const defaultOptions = {\n overrides: {\n a: {\n component: MarkdownLink,\n props: {\n rule,\n language,\n origin,\n className: '!text-base',\n },\n },\n },\n };\n const mergedOptions = merge(defaultOptions, options);\n return (\n \n {children}\n \n );\n};\n\nexport default Markdown;\n","export * from './lib/markdown';\n","import { Markdown } from '@dx-ui/osc-markdown';\nimport type { Brand_CountriesQuery } from './queries/generated/types';\nimport { Link } from '@dx-ui/osc-link';\nimport { FormInput } from '@dx-ui/osc-form';\nimport { useMemo } from 'react';\nimport type { ReactNode } from 'react';\n\nconst Paragraph = ({ children }: { children: ReactNode }) =>

    {children}

    ;\nconst WrappedLink = ({ href, ...rest }: { href: string }) => ;\nconst CustomerExternalParagraph = ({ children }: { children: ReactNode }) => (\n

    {children}

    \n);\n\nexport const MarketingContent = ({\n selectedCountry,\n setMarketingOptinsSelected,\n language,\n origin,\n}: {\n selectedCountry: NonNullable['countries'][0];\n setMarketingOptinsSelected: React.Dispatch>;\n language: string;\n origin: string;\n}) => {\n const marketingOptin = selectedCountry?.marketingOptin;\n const rules = marketingOptin?.marketingOptinRules[0];\n const optIns = useMemo(\n () => rules?.optIns.filter((optIn) => !optIn?.autoOptIn) || [],\n [rules?.optIns]\n );\n const termsAndConditions = useMemo(\n () =>\n rules?.optIns.find((optIn) => optIn?.termsAndConditionsJoin)?.termsAndConditionsJoin ?? '',\n [rules?.optIns]\n );\n\n const handleMarketingOptinChange = (\n event: React.ChangeEvent,\n index: number\n ) => {\n setMarketingOptinsSelected((prevSelected) => {\n const isChecked = event.target?.checked;\n if (isChecked) {\n return [...prevSelected, index];\n } else {\n return prevSelected.filter((i) => i !== index);\n }\n });\n };\n\n return (\n <>\n {optIns &&\n optIns.map((optIn, index) => {\n const { autoOptIn, customerTextExternal, name } = optIn;\n if (autoOptIn) {\n return null;\n }\n return (\n
    \n handleMarketingOptinChange(event, index),\n }}\n />\n {customerTextExternal && (\n \n {customerTextExternal}\n \n )}\n
    \n );\n })}\n \n {termsAndConditions}\n
    \n \n );\n};\n","import { useFormContext } from 'react-hook-form';\nimport { ActionDialog } from '@dx-ui/osc-dialog-v2';\nimport { FormInput } from '@dx-ui/osc-form';\nimport { Link } from '@dx-ui/osc-link';\nimport { Trans, useTranslation } from 'next-i18next';\n\nimport type { Dispatch, SetStateAction } from 'react';\nimport type { Brand_CountriesQuery } from './queries/generated/types';\n\ntype Props = {\n isUSA: boolean;\n isChina: boolean;\n selectedCountry: Brand_CountriesQuery['countries'][0];\n isMarketingOffersModalOpen: boolean;\n setIsMarketingOffersModalOpen: Dispatch>;\n language: string;\n origin: string;\n};\n\nexport const MarketingContent = ({\n isUSA,\n isChina,\n selectedCountry,\n isMarketingOffersModalOpen,\n setIsMarketingOffersModalOpen,\n language,\n origin,\n}: Props) => {\n const [t] = useTranslation('osc-join-form-join');\n const form = useFormContext();\n\n if (!isUSA) {\n if (selectedCountry?.marketingOptIn !== 'greenMarketingOptIn') {\n return (\n <>\n \n

    \n \n \n \n

    \n {/* Hide Offers checkbox - China only */}\n {!isChina ? (\n <>\n \n

    \n \n \n \n

    \n \n

    \n \n \n \n

    \n setIsMarketingOffersModalOpen(false)}\n onCancel={() => {\n setIsMarketingOffersModalOpen(false);\n form.setValue('marketingOffers', false);\n }}\n title={t('dialog.title')}\n isOpen={isMarketingOffersModalOpen}\n onDismiss={() => {\n setIsMarketingOffersModalOpen(!isMarketingOffersModalOpen);\n form.setValue('marketingOffers', false);\n }}\n size=\"lg\"\n >\n

    {t('dialog.body')}

    \n

    {t('dialog.disclaimer')}

    \n \n \n ) : null}\n

    {t(isChina ? 'consent_china' : 'consent')}

    \n

    \n \n \n \n \n

    \n \n );\n }\n }\n\n return (\n <>\n {selectedCountry?.marketingOptInForHGV && (\n <>\n \n

    \n \n \n \n

    \n

    {t('consent')}

    \n \n )}\n

    \n \n \n \n \n \n

    \n \n );\n};\n","import { BannerNotification } from '@dx-ui/osc-banner-notification';\nimport { FormErrorIcon, FormInput, FormSelect } from '@dx-ui/osc-form';\nimport { Link } from '@dx-ui/osc-link';\nimport cx from 'classnames';\nimport { Trans, useTranslation } from 'next-i18next';\nimport { useEffect, useState } from 'react';\nimport type { FieldError } from 'react-hook-form';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport type { ReactNode } from 'react';\n\nimport { AddressFields } from './address-fields';\nimport { FormInputPassword } from './password-fields';\nimport { FormInputPhone } from './phone-fields';\nimport { MarketingContent as MarketingContentCCS } from './marketing-content-css';\nimport { MarketingContent } from './marketing-content';\n\nimport {\n CreateGuestDocument,\n useBrand_CountriesQuery,\n useCreateGuestMutation,\n useLanguages_DefaultCountryCodeQuery,\n} from './queries/generated/queries';\n\nimport { AutoComplete } from './auto-complete';\nimport type { CreateGuestMutation, CreateGuestMutationVariables } from './queries/generated/types';\nimport { email } from './form-validation-regex';\nimport { Spinner } from '@dx-ui/osc-spinner';\n\ntype BannerContent = { message: string; type: 'success' | 'error' } | null;\n\nconst GRAPH_ERRORS = {\n WANTS_TOTP: 996,\n TOTP_REMOVED: 995,\n COMMUNICATIONS_ERROR: 1002,\n RESERVATION_LOGIN_ERROR: 22,\n RESERVATIONWITH24HRS_LOGIN_ERROR: 16,\n CONFLICT_WITH_RESOURCE: 409,\n SUCCESSFULL_REGISRATION_DELAYED_CONFIRMATION: 1000,\n} as const;\n\nconst EmailSubscription = {\n PERSONALIZED_OFFERS: 'SGMT',\n HILTON_MARKETING: 'HHPRM',\n GRAND_VACATIONS: 'HGVC',\n HHONORS_EMAIL: 'CUST',\n THIRD_PARTY_MARKETING: '3PROM',\n} as const;\n\nconst USMarketingOptIn = {\n hhonorsSubscriptions: [\n EmailSubscription.HHONORS_EMAIL,\n EmailSubscription.HILTON_MARKETING,\n EmailSubscription.PERSONALIZED_OFFERS,\n EmailSubscription.GRAND_VACATIONS,\n ],\n optOuts: {},\n};\n\nconst oCodes = [\n 'ADAPW',\n 'ANDEW',\n 'BRDEW',\n 'CIHCW',\n 'CNMP',\n 'DSKEW',\n 'DTITW',\n 'ESHCW',\n 'HHHTW',\n 'HHPCW',\n 'HITEW',\n 'HPHCW',\n 'IOSEW',\n 'JNHHW',\n 'NHBHW',\n 'NMUPW',\n 'OHWBW',\n 'OHWE',\n 'OHWGW',\n 'PYHTW',\n 'QQHTW',\n 'RUHCW',\n 'WAHCW',\n 'WFPAW',\n 'JHTNW',\n 'ASPEW',\n 'SMBEW',\n 'PEPEW',\n];\n\nexport type JoinInput = Omit<\n CreateGuestMutationVariables['input'],\n 'username, propCode, country'\n> & {\n country: string;\n marketingOffers: boolean;\n marketingConsent?: boolean;\n marketingGrandVacations?: boolean;\n};\n\nexport interface Props {\n /*\n * Feature toggle on guest, disabled by default\n */\n isMarketabilityCCSEnabled?: boolean;\n language: string;\n /**\n * Enrollment OCode, required\n */\n oCode: string;\n /**\n * Called after successful enrollment\n */\n onSuccess: (enrollResult: CreateGuestMutation) => void;\n\n /*\n * Metrics object, at a minimum needed these functions\n */\n metrics: {\n setPageInfo: (key: string, value: string[] | string) => void;\n trackEvent: (event: string) => void;\n setFormErrors: (formErrors: { errors: string[] | string; eventIndex?: number }[]) => void;\n setFormErrorMessages: (messages: string | string[]) => void;\n setProperty: (key: string, value: string) => void;\n };\n\n headline: ReactNode;\n origin: string;\n}\n\nexport function JoinForm({\n isMarketabilityCCSEnabled = false,\n language,\n oCode,\n onSuccess,\n metrics,\n headline,\n origin,\n}: Props) {\n const [t] = useTranslation('osc-join-form-join');\n const { t: tForm } = useTranslation('osc-join-form-form');\n const [bannerContent, setBannerContent] = useState(null);\n const [marketingOptinsSelected, setMarketingOptinsSelected] = useState([]);\n const [isMarketingOffersModalOpen, setIsMarketingOffersModalOpen] = useState(false);\n const { data: defaultCountryCodeData } = useLanguages_DefaultCountryCodeQuery({\n language,\n });\n\n const isJapanesePage = language === 'ja';\n\n const form = useForm({\n mode: 'onTouched',\n criteriaMode: 'all',\n defaultValues: {\n address: {},\n country: defaultCountryCodeData?.languages?.[0]?.defaultCountryCode || 'US',\n phone: {\n phoneCountry: `1US`,\n },\n },\n });\n\n const { watch, formState, setValue, handleSubmit } = form;\n const { errors, isSubmitted } = formState;\n\n const hasErrors = Object.keys(errors).length > 0;\n\n useEffect(() => {\n if (defaultCountryCodeData?.languages?.[0]?.defaultCountryCode) {\n setValue('country', defaultCountryCodeData?.languages?.[0]?.defaultCountryCode);\n }\n if (isJapanesePage) {\n setValue('phone.phoneCountry', '81JP');\n }\n }, [defaultCountryCodeData, isJapanesePage, setValue]);\n\n useEffect(() => {\n if (hasErrors) {\n const formErrors = Object.keys(errors).flatMap((key) => key);\n const formErrorsMessages = (Object.keys(errors) as (keyof typeof errors)[]).flatMap(\n (key) => errors[key]?.message\n );\n metrics.setPageInfo('alertBoxText', formErrors);\n metrics.trackEvent('alertBoxText');\n metrics.setFormErrors([{ errors: formErrors.join('|') }]);\n metrics.setFormErrorMessages(formErrorsMessages.join('|'));\n metrics.setProperty('page.attributes.actionDetail', 'formError');\n metrics.trackEvent('formErrorEvent');\n }\n }, [errors, metrics, hasErrors]);\n\n const marketingOffersValue = watch('marketingOffers');\n useEffect(() => {\n if (marketingOffersValue) {\n return setIsMarketingOffersModalOpen(true);\n }\n }, [marketingOffersValue]);\n\n const hasPasswordFields = oCodes?.includes(oCode);\n\n const [loadingGeocode, setLoadingGeocode] = useState(false);\n\n const { data, isLoading: isLoadingCountries } = useBrand_CountriesQuery({\n language,\n getMarketing: true,\n getCCSMarketing: isMarketabilityCCSEnabled,\n countryFilter: { prohibited: false },\n });\n\n const createGuest = useCreateGuestMutation();\n\n const countries =\n [...(data?.countries || [])].sort((a, b) => Intl.Collator(language).compare(a.name, b.name)) ||\n [];\n\n const selectedCountry = countries.find(({ code }) => code === watch('country'))!;\n const marketingOptIns = selectedCountry?.marketingOptin?.marketingOptinRules?.[0]?.optIns;\n\n const isChina = selectedCountry?.code === 'CN';\n const isUSA = selectedCountry?.code === 'US';\n\n const getErrors = () => {\n const elements: ReactNode[] = [];\n Object.entries(errors).forEach(([key, value]) => {\n if (value.message) {\n const message = value.message;\n elements.push(
  • {message}
  • );\n }\n\n // need to go in one level deeper\n Object.entries(value).forEach(([innerKey, innerValue]) => {\n if ((innerValue as FieldError).message) {\n const message = (innerValue as FieldError).message;\n elements.push(
  • {message}
  • );\n }\n });\n });\n return elements;\n };\n\n const updateCreateGuestMutation = ({\n address,\n email,\n name,\n password,\n phone,\n country,\n marketingGrandVacations,\n marketingOffers,\n marketingConsent,\n }: JoinInput) => {\n let hhonorsSubscriptions: string[] = [];\n if (isMarketabilityCCSEnabled) {\n const marketgOptinsAutoEnrolled = marketingOptIns?.filter((optin) => optin?.autoOptIn);\n if (marketgOptinsAutoEnrolled && marketgOptinsAutoEnrolled.length) {\n hhonorsSubscriptions = marketgOptinsAutoEnrolled.flatMap(\n (optin) => optin.subscriptionCodes\n );\n }\n if (marketingOptinsSelected.length && marketingOptIns && marketingOptIns.length) {\n marketingOptinsSelected.forEach((i) => {\n const codes = marketingOptIns[i]?.subscriptionCodes || [];\n const list = [...hhonorsSubscriptions, ...codes];\n hhonorsSubscriptions = [...list];\n });\n }\n } else {\n const isGreenMarketingOptIn = selectedCountry?.marketingOptIn === 'greenMarketingOptIn';\n if (isGreenMarketingOptIn) {\n hhonorsSubscriptions = [\n ...hhonorsSubscriptions,\n EmailSubscription.PERSONALIZED_OFFERS,\n EmailSubscription.HILTON_MARKETING,\n ];\n if (selectedCountry?.marketingOptInForHGV) {\n marketingGrandVacations && hhonorsSubscriptions.push(EmailSubscription.GRAND_VACATIONS);\n } else {\n hhonorsSubscriptions.push(EmailSubscription.GRAND_VACATIONS);\n }\n } else {\n marketingOffers && hhonorsSubscriptions.push(EmailSubscription.PERSONALIZED_OFFERS);\n marketingConsent && hhonorsSubscriptions.push(EmailSubscription.HILTON_MARKETING);\n marketingGrandVacations && hhonorsSubscriptions.push(EmailSubscription.GRAND_VACATIONS);\n }\n hhonorsSubscriptions.push(EmailSubscription.HHONORS_EMAIL);\n }\n address.country = country;\n const input: CreateGuestMutationVariables['input'] = {\n address: {\n ...address,\n ...(address.state !== 'address' && { state: address.state }),\n addressType: 'home',\n },\n email,\n enrollSourceCode: oCode,\n name,\n password,\n phone: {\n phoneNumber: phone?.phoneNumber || '',\n phoneCountry: phone?.phoneCountry?.replace(/\\D+/, ''),\n phoneType: 'home',\n },\n preferredLanguage: language === 'id' ? 'en' : language,\n privacyRequested: false,\n subscriptions:\n !isMarketabilityCCSEnabled && isUSA\n ? USMarketingOptIn\n : { hhonorsSubscriptions, optOuts: {} },\n };\n\n return new Promise((_resolve) => {\n createGuest?.mutate([CreateGuestDocument, { language, input }], {\n onSuccess: (data: CreateGuestMutation) => {\n const errorCode = data?.createGuest?.error?.code;\n if (errorCode) {\n switch (errorCode) {\n case GRAPH_ERRORS.SUCCESSFULL_REGISRATION_DELAYED_CONFIRMATION:\n case GRAPH_ERRORS.CONFLICT_WITH_RESOURCE:\n return setBannerContent({\n message: t(`submit_errors.${errorCode}`),\n type: 'error',\n });\n case 997:\n if (\n isJapanesePage &&\n data?.createGuest?.error?.notifications?.some(({ code }) => code === 512)\n ) {\n return setBannerContent({\n message: t(`submit_errors.997`),\n type: 'error',\n });\n }\n return setBannerContent({\n message: t(`submit_errors.500`),\n type: 'error',\n });\n default:\n return setBannerContent({\n message: t(`submit_errors.500`),\n type: 'error',\n });\n }\n }\n\n const hHonorsNumber = data?.createGuest?.data?.hhonorsNumber;\n const encodedName = window.btoa(encodeURIComponent(name.firstName));\n const encodedNum = window.btoa(hHonorsNumber || '');\n const encodedEmail = window.btoa(encodeURIComponent(email.emailAddress));\n const encodedEnroll = window.btoa('true');\n\n sessionStorage.setItem('first_name', encodedName);\n sessionStorage.setItem('hhonors', encodedNum);\n sessionStorage.setItem('email', encodedEmail);\n sessionStorage.setItem('firstEnroll', encodedEnroll);\n onSuccess(data);\n },\n onError: () => {\n setBannerContent({\n message: t('submit_errors.500'),\n type: 'error',\n });\n },\n });\n });\n };\n\n const handleFormSubmit = async (formData: JoinInput) => {\n await updateCreateGuestMutation(formData);\n };\n\n return (\n
    \n {bannerContent ? (\n \n

    {bannerContent?.message}

    \n
    \n ) : null}\n
    \n {headline}\n {hasErrors && isSubmitted && (\n \n

    \n \n {t('form_error')}\n

    \n
      {getErrors()}
    \n
    \n )}\n \n \n

    {tForm('requiredFields')}

    \n {isJapanesePage ?

    {tForm('enterHiraganaCharacters')}

    : null}\n \n \n\n \n\n \n\n \n {countries.map(({ name, code }) => (\n \n {name}\n \n ))}\n \n\n \n\n {hasPasswordFields && (\n <>\n \n \n (!!value && value === watch('password')) || tForm('confirmPassword.error'),\n },\n }}\n />\n \n )}\n
    \n {isMarketabilityCCSEnabled ? (\n \n ) : (\n \n )}\n\n \n {createGuest.isPending ? (\n <>\n {tForm('submitting')} \n \n ) : (\n t('submit', { context: null })\n )}\n \n\n

    \n \n \n \n

    \n

    {t('wiFi_disclaimer')}

    \n {(selectedCountry?.marketingConsent || selectedCountry?.marketingOptIn) && (\n <>\n

    {t('gdprFootnote')}

    \n

    {t('gdprFootnote2')}

    \n \n )}\n
    \n \n
    \n
    \n \n );\n}\n","export * from './join-form';\n","export * from './lib';\n","import { useEffect, useRef, useState, type ReactNode } from 'react';\nimport { useAuth } from '@dx-ui/framework-auth-provider';\nimport { JoinForm, type Props } from '@dx-ui/osc-join-form';\nimport { Dialog } from '@dx-ui/osc-dialog-v2';\nimport { LoginIFrame } from '@dx-ui/osc-login';\nimport { useTranslation } from 'next-i18next';\nimport Icon from '@dx-ui/osc-icon';\nimport { logError } from '@dx-ui/framework-logger';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\n\nexport function JoinModalButton({\n children,\n className,\n language,\n loginIFrameSrc,\n metrics,\n headline,\n oCode = 'OHWGW',\n onSuccessfulLogin,\n onSuccessfulJoin,\n onClick,\n}: {\n children: ReactNode;\n /** Wrapper button classname */\n className?: string;\n language: string;\n loginIFrameSrc: string;\n /** Metrics object from join form */\n metrics: Props['metrics'];\n headline?: Props['headline'];\n oCode?: Props['oCode'];\n onSuccessfulLogin?: () => void;\n onSuccessfulJoin?: () => void;\n onClick?: () => void;\n}) {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [showJoinFormContent, setShowJoinFormContent] = useState(false);\n const [showLoginIframe, setShowLoginIframe] = useState(false);\n const [newHonorsNumber, setNewHonorsNumber] = useState('');\n const { login } = useAuth();\n const buttonRef = useRef(null);\n const successMessageRef = useRef(null);\n const { t } = useTranslation('osc-join-modal-button');\n const origin = useOrigin();\n\n const handleOpenModal = () => {\n setIsModalOpen(true);\n setShowJoinFormContent(true);\n onClick?.();\n };\n\n const handleOpenLoginIframe = () => {\n setShowLoginIframe(true);\n };\n\n const handleCloseModal = () => {\n setIsModalOpen(false);\n setShowLoginIframe(false);\n };\n\n return (\n \n {children}\n \n }\n >\n {showJoinFormContent ? (\n {t('joinHiltonHonors')}\n )\n }\n onSuccess={(data) => {\n const honorsNumber = data?.createGuest?.data?.hhonorsNumber;\n if (honorsNumber) {\n onSuccessfulJoin?.();\n setNewHonorsNumber(honorsNumber);\n setShowJoinFormContent(false);\n handleOpenLoginIframe();\n }\n }}\n metrics={metrics}\n />\n ) : null}\n {showLoginIframe ? (\n <>\n
    \n \n

    {t('welcomeMessage')}

    \n
    \n {newHonorsNumber ? (\n {\n if (result.data) {\n login(result)\n .then(() => {\n handleCloseModal();\n setShowLoginIframe(false);\n onSuccessfulLogin?.();\n })\n .catch((error) => {\n logError(\n 'OSC_JOIN_MODAL_BUTTON',\n error,\n 'Error logging in after successful join'\n );\n });\n }\n }}\n />\n ) : null}\n \n ) : null}\n \n );\n}\n\nfunction useOrigin() {\n const [origin, setOrigin] = useState('https://www.hilton.com');\n useEffect(() => {\n if (isBrowser && window.location) {\n const { protocol, hostname, port } = window.location;\n const origin = `${protocol}//${hostname}${port ? `:${port}` : ''}`;\n setOrigin(origin);\n }\n }, []);\n return origin;\n}\n","export * from './lib/osc-join-modal-button';\n","import * as React from 'react';\nimport { Link } from '@dx-ui/osc-link';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport cx from 'classnames';\nimport { useTranslation } from 'next-i18next';\nimport { Login } from '@dx-ui/osc-login';\nimport Icon from '@dx-ui/osc-icon';\nimport { LanguageSelector } from '@dx-ui/osc-language-selector';\nimport type { HeaderProps, LinkWithExperimentationConfiguration } from './types';\nimport { BrandHeaderBody } from './brand-header-body/brand-header-body';\nimport { sendInteractionReward } from './header.utilities';\nimport {\n Status,\n sendReward,\n setConductricsSelectionOK,\n useConductricsSelection,\n} from '@dx-ui/framework-conductrics';\nimport { HeaderLogoLink } from './header.logo';\nimport { useRect } from '@dx-ui/utilities-use-rect';\nimport { JoinModalButton } from '@dx-ui/osc-join-modal-button';\nimport { useRouter } from 'next/router';\nimport { getLocaleFormattedNumber } from '@dx-ui/framework-i18n';\n\nconst HeaderMenuLink: React.FunctionComponent<\n React.PropsWithChildren\n> = (link) => {\n const [t] = useTranslation('osc-header');\n return (\n \n \n {link.label}\n {link.isNewWindow && !link.adaDescription ? (\n \n , {t('newTab')}\n \n ) : null}\n \n \n );\n};\n\nconst joinModalConductricsTestAgent = 'a-ZPwsLcHilZ0e';\nfunction onSignInLinkClick() {\n void setConductricsSelectionOK(joinModalConductricsTestAgent);\n}\n\nexport const Header = React.forwardRef(\n (\n {\n megaNavLinks,\n brand,\n isFluid,\n mainNavLinks,\n onSignOut,\n onSignInAttempt,\n suppressLogo = false,\n shouldSuppressHonorsAccountLinks,\n shouldSuppressFindStay,\n shouldSuppressJoinAndSignIn,\n shouldOpenAccountLinksInNewWindow,\n user,\n userLinks,\n loginOptions,\n children,\n languageSelectorOptions,\n showNewHeader,\n theme,\n heading,\n wrapperId = '__next',\n ...rest\n },\n forwardedRef\n ) => {\n const [t] = useTranslation('osc-header');\n const defaultOptions = {\n frameSrc: userLinks?.signInLink?.url || '',\n title: t('signIn'),\n onLoginAttempt: onSignInAttempt,\n };\n const commonHeaderBodyProps = {\n brand,\n isFluid,\n mainNavLinks,\n onSignOut,\n onSignInAttempt,\n suppressLogo,\n user,\n userLinks,\n loginOptions,\n children,\n heading,\n };\n\n const isDark = theme === 'dark';\n const joinFromModal = useJoinFromModalTest();\n\n if (userLinks?.signUpLink) {\n userLinks.signUpLink.onMouseDown = onSignInLinkClick;\n userLinks.signUpLink.onKeyDown = function onKeyDown(event) {\n if (event.key === 'Enter' || event.key === ' ') {\n onSignInLinkClick();\n }\n };\n }\n\n const SignUpComponent = ({\n children,\n className,\n loggedInButtonRef,\n }: {\n children: React.ReactNode;\n className: string;\n loggedInButtonRef: React.RefObject;\n }): React.ReactNode => {\n return (\n sendReward('g-XuedMeNnr5')}\n onSuccessfulLogin={() => {\n sendReward('g-bgQSVS0Q4h');\n setTimeout(() => loggedInButtonRef?.current?.focus(), 1000);\n }}\n metrics={{\n setPageInfo: () => {},\n trackEvent: () => {},\n setFormErrors: () => {},\n setProperty: () => {},\n setFormErrorMessages: () => {},\n }}\n >\n {children}\n \n );\n };\n\n return (\n <>\n \n {t('skipToContent')}\n \n \n {megaNavLinks || showNewHeader ? (\n \n ) : languageSelectorOptions ? (\n \n ) : (\n \n )}\n \n {children}\n
    \n \n );\n }\n);\n\ntype BodyProps = Pick<\n HeaderProps,\n | 'brand'\n | 'isFluid'\n | 'mainNavLinks'\n | 'onSignOut'\n | 'suppressLogo'\n | 'user'\n | 'userLinks'\n | 'loginOptions'\n | 'heading'\n> & {\n defaultOptions: {\n frameSrc: string;\n title: string;\n onLoginAttempt: HeaderProps['onSignInAttempt'];\n };\n};\n\nfunction OldHeaderBody({\n brand,\n isFluid,\n mainNavLinks,\n onSignOut,\n suppressLogo,\n user,\n userLinks,\n loginOptions,\n defaultOptions,\n heading,\n}: BodyProps) {\n return (\n \n {suppressLogo ? null : }\n {mainNavLinks?.length ? : null}\n \n
    \n );\n}\n\nfunction NewHeaderBody({\n brand,\n isFluid,\n mainNavLinks,\n onSignOut,\n suppressLogo,\n user,\n userLinks,\n loginOptions,\n defaultOptions,\n languageSelectorOptions,\n heading,\n}: BodyProps & {\n languageSelectorOptions: NonNullable;\n}) {\n return (\n \n
    \n \n
    \n \n
    \n
    \n
    \n {suppressLogo ? null : }\n {mainNavLinks?.length ? : null}\n
    \n \n );\n}\n\nfunction UserNav({\n user,\n userLinks,\n onSignOut,\n loginOptions,\n defaultOptions,\n}: Pick) {\n const { i18n, t } = useTranslation('osc-header');\n const { locale = 'en' } = useRouter();\n const formattedHonorsPointsTotal = getLocaleFormattedNumber(user?.honorsPoints, { locale });\n return (\n \n );\n}\n\nfunction MainNav({\n links,\n suppressLogo,\n}: {\n links: LinkWithExperimentationConfiguration[];\n suppressLogo: HeaderProps['suppressLogo'];\n}) {\n const navRef = React.useRef>(null);\n const [isBeforeVisible, setBeforeVisible] = React.useState(false);\n const [isAfterVisible, setAfterVisible] = React.useState(false);\n\n const onChange = React.useCallback((rect: DOMRect | undefined) => {\n const scrollLeft = navRef.current?.scrollLeft ?? 0;\n const scrollWidth = navRef.current?.scrollWidth ?? 0;\n const navWidth = rect?.width || 0;\n const widthDiff = scrollWidth - navWidth;\n const newBefore = scrollLeft > 5 && widthDiff > 0;\n const newAfter = widthDiff > 0 && widthDiff - scrollLeft > 5;\n setBeforeVisible(newBefore);\n setAfterVisible(newAfter);\n }, []);\n const navRect = useRect({ ref: navRef, onResize: onChange });\n const onNavScroll = React.useCallback(() => navRect && onChange(navRect), [onChange, navRect]);\n return (\n \n \n
      \n {links.map(({ label, experimentationConfiguration, ...linkProps }) => (\n \n {\n linkProps.onClick?.(e);\n sendInteractionReward();\n }}\n data-conductrics-goal={experimentationConfiguration?.goal}\n data-conductrics-value={experimentationConfiguration?.value}\n >\n {label}\n \n \n ))}\n
    \n \n \n );\n}\nfunction useJoinFromModalTest() {\n const { selection, isLoaded } = useConductricsSelection(\n joinModalConductricsTestAgent,\n Status.PENDING\n );\n return isLoaded && selection?.choice === 'B';\n}\n\nHeader.displayName = 'Header';\n\nexport default Header;\n","export * from './lib/header';\nexport { getBaseNavLinksFromEnv } from './lib/header.utilities';\nexport * from './lib/types';\n","import { useAuth } from '@dx-ui/framework-auth-provider';\nimport type { TDrawerItem } from '@dx-ui/osc-header';\nimport { Header } from '@dx-ui/osc-header';\nimport { useTranslation } from 'next-i18next';\nimport { useNavigationQuery } from '../generated/react-query';\nimport { DX_AUTH_UI, OHW_BASE_URL_TRIMMED } from '../utils/env-vars';\n\nconst useActiveNavLinks = ({ brandCode, language }: { brandCode: string; language?: string }) => {\n const { data } = useNavigationQuery({ brandCode, language: language || 'en' });\n if (data?.brand?.header?.sections.length === 1) {\n return data?.brand?.header?.sections?.[0]?.links.map((link) => {\n return {\n label: link.label,\n link: { ...link },\n subMenu: link.secondaryLinks.map((secondaryLink) => {\n return { label: secondaryLink.label, link: { ...secondaryLink } };\n }),\n };\n }) as TDrawerItem[];\n } else if (data?.brand?.header?.sections.length && data?.brand?.header?.sections.length > 1) {\n return data?.brand?.header?.sections?.flatMap((section) => {\n return section.links.map((link) => {\n return {\n label: link.label,\n link: { ...link },\n subMenu: link.secondaryLinks.map((secondaryLink) => {\n return { label: secondaryLink.label, link: { ...secondaryLink } };\n }),\n };\n });\n }) as TDrawerItem[];\n }\n};\n\nexport function OffersHeader({\n brandCode = 'WW',\n brandName = 'Hilton',\n brandUrl = '',\n language = 'en',\n}) {\n const { login, guestInfo, logout } = useAuth();\n const { t } = useTranslation('common');\n\n const navItems = useActiveNavLinks({ brandCode, language });\n\n return (\n {\n await logout();\n }}\n onSignInAttempt={async ({ data }) => {\n if (data) {\n await login({ data });\n }\n }}\n brand={{\n url: brandUrl || 'https://www.hilton.com',\n code: brandCode,\n name: brandCode === 'WW' ? t('forTheStay') : brandName,\n }}\n userLinks={{\n signInLink: {\n url: DX_AUTH_UI?.replace('__LANG__', language),\n },\n accountLink: {\n url: `${OHW_BASE_URL_TRIMMED}/${language}/hilton-honors/guest/my-account/`,\n },\n signUpLink: {\n url: `${OHW_BASE_URL_TRIMMED}/${language}/hilton-honors/join/`,\n },\n }}\n />\n );\n}\n","import type * as Types from './types';\n\nimport {\n useQuery,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\n\nexport const AllBrandsDocument = {\n operationName: 'brands',\n operationString: `query brands($language: String!) {\n brands(language: $language, filter: {isHotelBrand: true}) {\n code\n altSlugs\n canonicalSlug\n isHotelBrand\n formalName\n url\n name\n }\n}`,\n originalOpName: 'allBrands',\n};\nexport function useAllBrandsQuery(\n variables: Types.AllBrandsQueryVariables,\n options?: Omit, 'queryKey'>\n) {\n return useQuery({\n queryKey: [AllBrandsDocument, variables],\n ...options,\n });\n}\nexport function serverSideAllBrandsQuery(\n queryClient: QueryClient,\n variables: Types.AllBrandsQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [AllBrandsDocument, variables],\n ...options,\n });\n}\n\nexport const BrandDocument = {\n operationName: 'brand',\n operationString: `query brand($language: String!, $brandCode: String!) {\n brand(language: $language, brandCode: $brandCode) {\n name\n formalName\n code\n url\n }\n}`,\n originalOpName: 'brand',\n};\nexport function useBrandQuery(\n variables: Types.BrandQueryVariables,\n options?: Omit, 'queryKey'>\n) {\n return useQuery({\n queryKey: [BrandDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrandQuery(\n queryClient: QueryClient,\n variables: Types.BrandQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [BrandDocument, variables],\n ...options,\n });\n}\n\nexport const FeatureConfigsDocument = {\n operationName: 'featureConfigs',\n operationString: `query featureConfigs {\n featureConfigs(names: [\"OhwBrandConfig\"]) {\n config\n name\n }\n}`,\n originalOpName: 'featureConfigs',\n};\nexport function useFeatureConfigsQuery(\n variables: Types.FeatureConfigsQueryVariables | null = null,\n options?: Omit, 'queryKey'>\n) {\n return useQuery({\n queryKey: [FeatureConfigsDocument, variables],\n ...options,\n });\n}\nexport function serverSideFeatureConfigsQuery(\n queryClient: QueryClient,\n variables: Types.FeatureConfigsQueryVariables | null = null,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [FeatureConfigsDocument, variables],\n ...options,\n });\n}\n\nexport const FeatureTogglesDocument = {\n operationName: 'featureToggles',\n operationString: `query featureToggles($names: [String]!) {\n featureToggles(names: $names) {\n enabled\n name\n }\n}`,\n originalOpName: 'featureToggles',\n};\nexport function useFeatureTogglesQuery(\n variables: Types.FeatureTogglesQueryVariables,\n options?: Omit, 'queryKey'>\n) {\n return useQuery({\n queryKey: [FeatureTogglesDocument, variables],\n ...options,\n });\n}\nexport function serverSideFeatureTogglesQuery(\n queryClient: QueryClient,\n variables: Types.FeatureTogglesQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [FeatureTogglesDocument, variables],\n ...options,\n });\n}\n\nexport const NavigationDocument = {\n operationName: 'brand',\n operationString: `query brand($brandCode: String!, $language: String!) {\n brand(brandCode: $brandCode, language: $language) {\n header {\n sections {\n links {\n adaDescription\n label\n url\n secondaryLinks {\n label\n adaDescription\n campaignId\n isNewWindow\n url\n }\n }\n }\n }\n footer {\n sections {\n links {\n adaDescription\n label\n url\n isNewWindow\n }\n }\n }\n }\n}`,\n originalOpName: 'navigation',\n};\nexport function useNavigationQuery(\n variables: Types.NavigationQueryVariables,\n options?: Omit, 'queryKey'>\n) {\n return useQuery({\n queryKey: [NavigationDocument, variables],\n ...options,\n });\n}\nexport function serverSideNavigationQuery(\n queryClient: QueryClient,\n variables: Types.NavigationQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [NavigationDocument, variables],\n ...options,\n });\n}\n","import cx from 'classnames';\nimport type * as React from 'react';\n\n// todo: move these into other components\nexport function Pill({ children, className, ...rest }: React.ComponentProps<'span'>) {\n return (\n \n {children}\n \n );\n}\n","import type * as React from 'react';\nimport { ControlNext, ControlBack } from '@dx-ui/osc-controls';\nimport { useTranslation } from 'next-i18next';\n\nexport type Pagination = {\n /**\n * `id` of the element pagination controls for usage with aria-controls\n */\n controls?: string;\n /**\n * Current active page (zero based)\n */\n current?: number;\n /**\n * The text displayed in front of the page numbers and used for a11y\n */\n label?: string;\n /**\n * Whether to visually hide the label\n */\n hideLabel?: boolean;\n /**\n * Controls whether or not to disable buttons at either end\n */\n loop?: boolean;\n /**\n * Total number of pages\n */\n total?: number;\n /**\n * When the page is selected from the dropdown\n */\n onChange?: (val: number) => void;\n onPreviousClick?: React.DOMAttributes['onClick'];\n onNextClick?: React.DOMAttributes['onClick'];\n /** Pagination item id */\n groupId?: string;\n};\n\n/**\n * Use when you need a control to cycle through \"pages\" or any paginated data.\n *\n * Pass the `current` page _(zero-based)_ and `total` pages, if you want to allow the select element to jump to a specific page, include the `onChange` callback. You can include listeners for `onPreviousClick` and `onNextClick` to change pages one by one.\n */\nexport const Pagination: React.FC> = ({\n controls,\n loop,\n onChange,\n onPreviousClick,\n onNextClick,\n hideLabel,\n current = 0,\n total = 0,\n label,\n groupId,\n}) => {\n const { t } = useTranslation('osc-pagination');\n // eslint-disable-next-line prefer-spread\n const pageNumbers = Array.apply(null, Array(total));\n const prevDisabled = loop ? false : current === 0;\n const nextDisabled = loop ? false : current === total - 1;\n\n const paginationLabel = label ?? t('defaultLabel');\n\n return (\n
    \n
    {`${paginationLabel} ${t('count', {\n current: current + 1,\n total,\n })}`}
    \n \n
    \n {onChange ? (\n <>\n {!hideLabel && {paginationLabel}}\n \n {t('count', { current: undefined, total })}\n \n ) : (\n \n {!hideLabel && `${paginationLabel} `}\n {t('count', { current: current + 1, total })}\n \n )}\n
    \n = total ? 1 : current + 2,\n total,\n })}`}\n />\n
    \n );\n};\n\nexport default Pagination;\n","export * from './lib/pagination';\n","export function slugifyBrand(brandName?: string) {\n if (!brandName) {\n return '';\n }\n return brandName\n .toLowerCase()\n .replace(/(\\s|[^A-Za-z])/g, '-')\n .replace(/^-+|-+(?=-|$)/g, '');\n}\n","import type * as Types from './types';\n\nimport {\n useQuery,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\nexport const OfferListingFragmentDoc = `\n fragment OfferListing on StaticOfferOptions {\n attributes(sort: {order: asc, by: name}) {\n id\n name\n total\n }\n brands(sort: {order: asc, by: name}) {\n name\n brandCode\n }\n offers {\n headline\n shortDescription\n campaignId\n id\n name\n brands\n attributes {\n name\n id\n }\n externalLink {\n url\n label\n isNewWindow\n }\n images(imageVariant: offerListing) {\n ogImage: url(width: 1200, height: 630)\n altText\n variants {\n url\n size\n }\n }\n bookEndFmt\n stayEndFmt\n }\n}\n `;\nexport const StaticOfferFragmentDoc = `\n fragment StaticOffer on StaticOffer {\n id\n campaignId\n ctyhocns(filter: {value: $ctyhocn})\n headline\n cost\n shortDescription\n longDescription\n keySellingPoint\n name\n honors\n srpBrands {\n srpCode\n brands\n }\n images(imageVariant: offerDetail) {\n altText\n ogImage: url(width: 1200, height: 630)\n variants {\n url\n size\n }\n }\n attributes {\n name\n id\n }\n policy {\n name\n terms {\n components {\n id\n index\n }\n orderedList {\n id\n value\n __typename\n }\n unorderedList {\n id\n value\n __typename\n }\n heading {\n id\n value\n __typename\n }\n description {\n id\n value\n __typename\n }\n }\n }\n externalLink {\n adaDescription\n isNewWindow\n label\n url\n }\n seo {\n hideSearchEngine\n metaDescription\n metaKeywords\n pageTitle\n }\n type\n bookStartFmt\n a11yBookStartFmt: bookStartFmt(format: \"long\")\n bookEndFmt\n a11yBookEndFmt: bookEndFmt(format: \"long\")\n stayStartFmt\n a11yStayStartFmt: stayStartFmt(format: \"long\")\n stayStart\n stayEndFmt\n a11yStayEndFmt: stayEndFmt(format: \"long\")\n}\n `;\nexport const BrandOfferListingDocument = {\n operationName: 'brand_brandStaticOfferOptions',\n operationString: `query brand_brandStaticOfferOptions($language: String!, $brandCode: String!) {\n brand(brandCode: $brandCode, language: $language) {\n name\n formalName\n code\n page(path: \"offers\") {\n seo {\n hideSearchEngine\n metaDescription\n metaKeywords\n pageTitle\n }\n }\n }\n brandStaticOfferOptions(brandCode: $brandCode, language: $language) {\n ...OfferListing\n }\n}\n\n ${OfferListingFragmentDoc}`,\n originalOpName: 'brandOfferListing',\n};\nexport function useBrandOfferListingQuery(\n variables: Types.BrandOfferListingQueryVariables,\n options?: Omit, 'queryKey'>\n) {\n return useQuery({\n queryKey: [BrandOfferListingDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrandOfferListingQuery(\n queryClient: QueryClient,\n variables: Types.BrandOfferListingQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [BrandOfferListingDocument, variables],\n ...options,\n });\n}\n\nexport const HotelOfferListingDocument = {\n operationName: 'brand_hotel_hotelStaticOfferOptions',\n operationString: `query brand_hotel_hotelStaticOfferOptions($language: String!, $ctyhocn: String!) {\n hotel(language: $language, ctyhocn: $ctyhocn) {\n name\n ctyhocn\n brand {\n name\n canonicalSlug\n altSlugs\n formalName\n code\n page(path: \"offers\") {\n seo {\n hideSearchEngine\n metaDescription\n metaKeywords\n pageTitle\n }\n }\n }\n }\n hotelStaticOfferOptions(language: $language, ctyhocn: $ctyhocn) {\n ...OfferListing\n }\n}\n\n ${OfferListingFragmentDoc}`,\n originalOpName: 'hotelOfferListing',\n};\nexport function useHotelOfferListingQuery(\n variables: Types.HotelOfferListingQueryVariables,\n options?: Omit, 'queryKey'>\n) {\n return useQuery({\n queryKey: [HotelOfferListingDocument, variables],\n ...options,\n });\n}\nexport function serverSideHotelOfferListingQuery(\n queryClient: QueryClient,\n variables: Types.HotelOfferListingQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [HotelOfferListingDocument, variables],\n ...options,\n });\n}\n\nexport const StaticOfferDocument = {\n operationName: 'brand_hotel_staticOffer',\n operationString: `query brand_hotel_staticOffer($language: String!, $offerId: BigInt!, $includeHotel: Boolean!, $ctyhocn: String!, $brandCode: String!) {\n hotel(language: $language, ctyhocn: $ctyhocn) @include(if: $includeHotel) {\n name\n ctyhocn\n brand {\n name\n code\n }\n }\n brand(brandCode: $brandCode, language: $language) {\n name\n formalName\n canonicalSlug\n altSlugs\n }\n staticOffer(language: $language, offerId: $offerId) {\n ...StaticOffer\n }\n}\n\n ${StaticOfferFragmentDoc}`,\n originalOpName: 'staticOffer',\n};\nexport function useStaticOfferQuery(\n variables: Types.StaticOfferQueryVariables,\n options?: Omit, 'queryKey'>\n) {\n return useQuery({\n queryKey: [StaticOfferDocument, variables],\n ...options,\n });\n}\nexport function serverSideStaticOfferQuery(\n queryClient: QueryClient,\n variables: Types.StaticOfferQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [StaticOfferDocument, variables],\n ...options,\n });\n}\n","import { useTranslation } from 'next-i18next';\n\nexport type BreadcrumbsProps = {\n /** A list of breadcrumbs to display */\n breadcrumbs?: { name?: string | null; uri?: string | null }[];\n} & React.HTMLAttributes;\n\nexport const Breadcrumbs = ({ breadcrumbs, ...rest }: BreadcrumbsProps) => {\n const { t } = useTranslation('osc-breadcrumbs');\n\n if (!breadcrumbs?.length) return null;\n\n return (\n \n );\n};\n\nexport default Breadcrumbs;\n","export * from './lib/breadcrumbs';\n","import type * as React from 'react';\nimport { createContext, useContext } from 'react';\n\ntype TabsContext = {\n active?: string;\n activeIndex: number;\n addRef: (ref: HTMLButtonElement | null) => void;\n count: number;\n onTabKeyDown: (e: React.KeyboardEvent, value?: string) => void;\n onTabSelect: (value?: string) => void;\n setCount: (value: number) => void;\n};\n\nconst TabsContext = createContext({\n activeIndex: 0,\n count: 0,\n} as TabsContext);\n\nconst useTabs = () => useContext(TabsContext);\n\nexport { TabsContext, useTabs };\nexport default TabsContext;\n","export function sanitizeId(id?: string) {\n return id?.replace(/\\s/g, '-');\n}\n","import type * as React from 'react';\nimport { useTabs } from './tabs.context';\nimport cx from 'classnames';\nimport { sanitizeId } from './tabs.utils';\n\ntype TabButton = {\n activeClassName?: string;\n inactiveClassName?: string;\n handleOnClick?: (value: React.MouseEvent) => void;\n} & React.ButtonHTMLAttributes;\n\n/**\n * The `TabButton` component is used to setup the a11y attributes for the tab button. it accepts `className` and `activeClassName`/`inactiveClassName` props that are applied when the tab is active/inactive.\n */\nconst TabButton: React.FC> = ({\n activeClassName,\n inactiveClassName,\n id,\n className,\n handleOnClick,\n ...rest\n}) => {\n const { active, addRef, onTabKeyDown, onTabSelect } = useTabs();\n const safeId = sanitizeId(id);\n const isActive = active === safeId;\n\n const handleOnTabClick = (event: React.MouseEvent) => {\n handleOnClick?.(event);\n onTabSelect(safeId);\n };\n\n return (\n onTabKeyDown(e, safeId)}\n ref={(ref) => addRef(ref)}\n className={cx('appearance-none', className, {\n [activeClassName as string]: isActive && !!activeClassName,\n [inactiveClassName as string]: !isActive && !!inactiveClassName,\n })}\n type=\"button\"\n {...rest}\n />\n );\n};\n\nexport { TabButton };\nexport default TabButton;\n","import type * as React from 'react';\nimport type { TabButton as TabButtonType } from './tab.button';\nimport { TabButton } from './tab.button';\n\n/**\n * The `TabListButton` component extends the `TabButton` component and is used as the default styles for the OSC component, but doesn't need to be used and the developer can provide their own `TabButton` component if they wish.\n */\nconst TabListButton: React.FC> = ({ ...rest }) => (\n \n);\n\nexport { TabListButton };\nexport default TabListButton;\n","import * as React from 'react';\nimport cx from 'classnames';\n\ntype TabList = React.HTMLAttributes;\n\n/**\n * The `TabList` component is used to render the tab buttons. It sets up a11y properties for the best compliance with the WCAG 2.0 accessibility guidelines.\n */\nconst TabList = React.forwardRef(\n ({ className, ...rest }, forwardedRef) => (\n \n )\n);\n\nTabList.displayName = 'TabList';\n\nexport { TabList };\nexport default TabList;\n","import type * as React from 'react';\nimport cx from 'classnames';\n\nexport type CaptionProps = {\n /**\n * Optional, provides the text content for the caption\n */\n caption?: string;\n /**\n * Optional link url\n */\n captionLink?: string;\n /**\n * Optional metrics data\n */\n metricsOnClick?: () => void;\n /*\n * Optional alignment, default is end\n */\n align?: 'start' | 'end';\n};\n\n/**\n * Image caption is an optional prop that is consumed by other components, this cheese does not stand alone. Can be text only or a clickable link.\n */\nexport const Caption: React.FC = ({\n caption,\n captionLink,\n align = 'end',\n metricsOnClick,\n}) => {\n const captionClasses =\n 'flex absolute top-0 items-center justify-center flex-auto text-xs mx-4 mt-4 mb-0 py-2 px-4 bg-bg-inverse text-text-overlay opacity-80 p-2 no-underline caption-main-text';\n\n if (!caption && !captionLink) {\n return null;\n }\n\n return (\n
    \n {captionLink ? (\n metricsOnClick?.()}\n >\n {caption}\n \n ) : (\n \n {caption}\n \n )}\n
    \n );\n};\n","export * from './caption';\n","export * from './lib';\n","import { createElement } from 'react';\n\nexport interface TagType extends React.HTMLAttributes {\n figureTag: 'figure' | 'div' | 'span';\n children: React.ReactNode;\n}\n\nexport const ElementSelector: React.FC = ({ figureTag, children, ...props }) => {\n return createElement(figureTag, props, children);\n};\n","import { useState } from 'react';\nimport cx from 'classnames';\nimport { Image } from 'next/dist/client/image-component';\nimport { Caption } from '@dx-ui/osc-caption';\nimport type { AspectRatio, TResponsiveImage } from './responsive-image.types';\nimport { ElementSelector } from './utils/element-selector';\nimport { logInfo } from '@dx-ui/framework-logger';\n\nconst BREAKPOINTS = {\n xxs: 200,\n xs: 320,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n xxl: 1440,\n xxxl: 1920,\n xxxxl: 2560,\n xxxxxl: 3840,\n};\n\nfunction GetHeightForWidthAndAspectRatio(width: number, aspectRatio: AspectRatio) {\n const heightWidthArray = aspectRatio.split(':');\n const denominator = (heightWidthArray?.[0] || 1) as number;\n const multiplier = (heightWidthArray?.[1] || 1) as number;\n const height = (width * multiplier) / denominator;\n return Math.round(height);\n}\n\nfunction getAspectRatio(width: number, height: number, urlString: string) {\n const aspectRatio = width / height;\n\n if (!Number.isFinite(aspectRatio) || aspectRatio === 0) {\n logInfo(\n 'Customer_Experience_ImageError',\n new Error('Invalid aspect ratio'),\n `aspectRatio: ${aspectRatio}, width: ${width}, height: ${height}, imageUrl: \"${urlString}\"`\n );\n\n return 3 / 2;\n }\n\n return aspectRatio;\n}\n\nfunction parseQsNumber(qs: URLSearchParams, key: string, defaultValue: number) {\n const str = qs.get(key) ?? defaultValue.toString();\n const num = Math.abs(Number(str));\n\n if (!Number.isFinite(num)) {\n return defaultValue;\n }\n\n return num;\n}\n\nfunction overrideImageUrl(urlString: string, targetHeight: number, targetWidth: number) {\n const queryIndex = urlString.indexOf('?');\n if (queryIndex === -1) {\n return urlString;\n }\n\n const search = new URLSearchParams(urlString.slice(queryIndex) ?? '');\n\n const sourceWidth = parseQsNumber(search, 'rw', 0);\n const sourceHeight = parseQsNumber(search, 'rh', 0);\n const sourceAspectRatio = getAspectRatio(sourceWidth, sourceHeight, urlString);\n\n const targetAspectRatio = getAspectRatio(targetWidth, targetHeight, urlString);\n\n if (targetAspectRatio > 1) {\n search.set('rh', String(Math.round(targetWidth / sourceAspectRatio) * 2));\n search.set('rw', String(targetWidth * 2));\n } else {\n search.set('rw', String(Math.round(targetHeight * sourceAspectRatio) * 2));\n search.set('rh', String(targetHeight * 2));\n }\n\n return urlString.slice(0, queryIndex) + '?' + search.toString();\n}\n\nconst getBreakpoint = (width: number, bandwidth: number) =>\n bandwidth > 50\n ? Object.values(BREAKPOINTS).find((breakpoint) => breakpoint >= width)\n : BREAKPOINTS['xxs'];\n\n/**\n * Responsive Image wraps `next/image` to render an image that responds to tailwind breakpoints.\n */\n\nconst getAspectRatioClass = (aspectRatio: AspectRatio) => {\n switch (aspectRatio) {\n case '3:4':\n return 'aspect-[3/4]';\n case '1:1':\n return 'aspect-[1/1]';\n case '3:2':\n return 'aspect-[3/2]';\n case '4:3':\n return 'aspect-[4/3]';\n case '4:2':\n return 'aspect-[4/2]';\n case '9:16':\n return 'aspect-[9/16]';\n case '16:9':\n return 'aspect-[16/9]';\n case '21:9':\n return 'aspect-[21/9]';\n case '18:5':\n return 'aspect-[18/5]';\n default:\n return 'aspect-[3/2]'; // default aspect ratio if none specified\n }\n};\n\nexport const ResponsiveImage = ({\n id,\n altText,\n aspectRatio,\n imageUrl,\n className = '',\n wrapperClassName,\n wrapperTag,\n captionData,\n bandwidth = 100,\n onImgLoaded,\n priority = false,\n width,\n hFull = false,\n maxHeight,\n onClick,\n}: TResponsiveImage) => {\n const [loaded, setLoaded] = useState(false);\n\n const imageWidth = width > BREAKPOINTS['xxxxxl'] ? width : getBreakpoint(width, bandwidth) || 0;\n\n const imageHeight = GetHeightForWidthAndAspectRatio(imageWidth, aspectRatio);\n const resizedImageUrl = imageUrl ? overrideImageUrl(imageUrl, imageHeight, imageWidth) : '';\n const captionExists =\n typeof captionData === 'object' && Object.keys(captionData).length > 0 && captionData.caption;\n\n const defaultWrapperTag = captionData ? 'figure' : 'div';\n\n //TODO updates coming with NHCBP-5517\n return (\n \n {resizedImageUrl && (\n {\n setLoaded(true);\n\n if (onImgLoaded) {\n //TODO tsc is erroniously infering onImgLoaded: never\n onImgLoaded();\n }\n }}\n data-testid=\"responsiveImageImg\"\n unoptimized={true} // required because akamai image manager doesnt support this (will cause 403 otherwise)\n priority={priority}\n onClick={onClick}\n />\n )}\n\n {!loaded ? (\n \n ) : null}\n {\n /*TODO tsc is erroniously infering captionData: some none object type*/\n captionExists ? : null\n }\n \n );\n};\n\nexport { GetHeightForWidthAndAspectRatio, BREAKPOINTS, overrideImageUrl };\nexport default ResponsiveImage;\n","import { BREAKPOINTS } from '../responsive-image';\nimport type { AspectRatio } from '../responsive-image.types';\n\ntype AspectRatioandUrlArgs = {\n width: number;\n imageUrlMobile?: string;\n imageUrlTablet?: string;\n imageUrlDesktop?: string;\n aspectRatioMobile?: AspectRatio;\n aspectRatioTablet?: AspectRatio;\n aspectRatioDesktop?: AspectRatio;\n};\n\n/**\n * Returns the URL and the Aspect Ratio for the current screen size(mobile, desktop or tablet)\n *\n * @param width\n * @param imageUrlMobile\n * @param imageUrlTablet\n * @param imageUrlDesktop\n * @param imageUrlAllScreens\n * @param aspectRatioMobile\n * @param aspectRatioTablet\n * @param aspectRatioDesktop\n * @param aspectRatioAllScreens\n * @returns\n */\n\nexport const getCurrentAspectRatioAndUrl = ({\n width,\n imageUrlMobile,\n imageUrlTablet,\n imageUrlDesktop,\n aspectRatioMobile,\n aspectRatioTablet,\n aspectRatioDesktop,\n}: AspectRatioandUrlArgs): { imageUrl: string; aspectRatio: AspectRatio } => {\n const isMobile = width < BREAKPOINTS['sm'];\n\n const isDesktop = width > BREAKPOINTS['xl'];\n\n if (isMobile && imageUrlMobile && aspectRatioMobile) {\n return { imageUrl: imageUrlMobile, aspectRatio: aspectRatioMobile };\n }\n\n if (isDesktop && imageUrlDesktop && aspectRatioDesktop) {\n return { imageUrl: imageUrlDesktop, aspectRatio: aspectRatioDesktop };\n }\n\n if (!isDesktop && !isMobile && imageUrlTablet && aspectRatioTablet) {\n return { imageUrl: imageUrlTablet, aspectRatio: aspectRatioTablet };\n }\n\n return { imageUrl: '', aspectRatio: '16:9' };\n};\n","export * from './responsive-image';\nexport * from './responsive-image.types';\nexport * from './utils/aspect-ratio-to-tailwind-class-converter';\nexport * from './utils/get-current-aspect-ratio-and-url';\n","export * from './lib';\n","import * as React from 'react';\nimport cx from 'classnames';\nimport type { Argument } from 'classnames';\nimport { useWindowSize, useResizeObserver } from 'usehooks-ts';\nimport { BREAKPOINTS } from '@dx-ui/osc-responsive-image';\nimport { useTranslation } from 'next-i18next';\nimport { TabListButton } from '../tab.list.button';\nimport { useForkedRef } from '@dx-ui/utilities-use-forked-ref';\nimport { Icon } from '@dx-ui/osc-icon';\nimport { isRtl as isRTL } from '@dx-ui/utilities-get-language-direction';\nimport { useRect } from '@dx-ui/utilities-use-rect';\n\ntype TabListScrollable = React.HTMLAttributes & {\n leftArrowWrapperClassName?: Argument;\n rightArrowWrapperClassName?: Argument;\n /** language code */\n lang?: string;\n};\n\nconst TabListScrollable = React.forwardRef(\n (\n {\n className,\n lang = 'en',\n leftArrowWrapperClassName,\n rightArrowWrapperClassName,\n children,\n id,\n ...rest\n },\n forwardedRef\n ) => {\n const arrayChildren = React.Children.toArray(children);\n const { width = 0 } = useWindowSize();\n const { t } = useTranslation('osc-scrollable-tabs');\n const isRtl = isRTL(lang);\n const tablistRef = React.useRef>(null);\n const ref = useForkedRef(forwardedRef, tablistRef);\n const [isBackwardArrowVisible, setBackwardArrowVisible] = React.useState(false);\n const [isForwardArrowVisible, setForwardArrowVisible] = React.useState(false);\n\n const [focusedTabId, setFocusedTabId] = React.useState(null);\n\n //The purpose of this is to adjust the scroll position of the selected tab when switching between tabs adds vertical scrollbar to the screen.\n useResizeObserver({\n ref: tablistRef,\n box: 'border-box',\n onResize: () => {\n if (tablistRef.current && focusedTabId) {\n const focusedTab = document.getElementById(focusedTabId);\n\n if (focusedTab) {\n const { scrollLeft } = tablistRef.current;\n //excluding padding of the Scrollable Div\n //The distance from the beginning of the tablist div to the left border of the focused button\n const distanceFromButtonToBeginningOfTabListDiv =\n focusedTab.offsetLeft - tablistRef.current.scrollLeft;\n const buttonWidth = focusedTab.offsetWidth;\n //excluding scrollable tabs\n const tablistWidth = tablistRef.current.offsetWidth;\n\n tablistRef.current.scrollLeft = adjustScrollPosition(\n distanceFromButtonToBeginningOfTabListDiv,\n buttonWidth,\n tablistWidth,\n scrollLeft\n );\n }\n }\n },\n });\n\n const updateArrowVisibility = React.useCallback(\n (rect: DOMRect | undefined) => {\n //number of pixels that an element's content is scrolled from its left edge\n const scrollLeft = tablistRef.current?.scrollLeft ?? 0;\n // measurement of the width of an element's content, including content not visible on the screen due to overflow\n const scrollWidth = tablistRef.current?.scrollWidth ?? 0;\n //width of the tablist div excluding hidden tabs due to scroll\n const tabListWidth = rect?.width || 0;\n //indicates whether we need a scroll or not\n const widthDiff = scrollWidth - tabListWidth;\n //widthDiff > 0 means we need arrows\n //for LTR, checking if scrollLeft value is more than 5 pixels, that means we need to let the user scroll backwards using arrows.\n //similar is being checked for RTL.\n const showScrollBackwardArrow = isRtl\n ? scrollLeft < -5 && widthDiff > 0\n : scrollLeft > 5 && widthDiff > 0;\n //widthDiff > 0 means we need arrows\n //for LTR, once widthDiff is almost the same as scrollLeft that means we are close to the end of the scroll.\n //For the last 5 pixels of the scroll the arrow dissapears.\n //similar is being checked for RTL.\n const showScrollForwardArrow = isRtl\n ? widthDiff > 0 && widthDiff > -scrollLeft + 5\n : widthDiff > 0 && widthDiff - scrollLeft > 5;\n\n setBackwardArrowVisible(showScrollBackwardArrow);\n setForwardArrowVisible(showScrollForwardArrow);\n },\n [isRtl]\n );\n\n const tabListRect = useRect({ ref: tablistRef, onResize: updateArrowVisibility });\n const onTabListScroll = React.useCallback(\n () => tabListRect && updateArrowVisibility(tabListRect),\n [updateArrowVisibility, tabListRect]\n );\n\n const threeItems = arrayChildren.length === 3;\n const fourItems = arrayChildren.length === 4;\n\n const getScrollMultiplier = () => {\n //Checking if there are 3 or 4 tabs or the device is tablet or mobile.\n if (threeItems || fourItems || width <= BREAKPOINTS['lg']) {\n // scroll 50% of the offset width when there are less items or on smaller screens\n return 0.5;\n } else {\n // at 40% of the offset width, each click scrolls a smaller distance. This works better for larger screens or higher item counts\n return 0.4;\n }\n };\n\n const scrollForward = (scrollLeft: number, offsetWidth: number) => {\n return scrollLeft + offsetWidth * getScrollMultiplier();\n };\n const scrollBackward = (scrollLeft: number, offsetWidth: number) => {\n return scrollLeft - offsetWidth * getScrollMultiplier();\n };\n\n const rightArrowHandler = () => {\n if (tablistRef.current) {\n const { scrollLeft, offsetWidth } = tablistRef.current;\n if (isRtl) {\n tablistRef.current.scrollLeft = scrollBackward(scrollLeft, offsetWidth);\n } else {\n tablistRef.current.scrollLeft = scrollForward(scrollLeft, offsetWidth);\n }\n }\n };\n\n const leftArrowhandler = () => {\n if (tablistRef.current) {\n const { scrollLeft, offsetWidth } = tablistRef.current;\n if (isRtl) {\n tablistRef.current.scrollLeft = scrollForward(scrollLeft, offsetWidth);\n } else {\n tablistRef.current.scrollLeft = scrollBackward(scrollLeft, offsetWidth);\n }\n }\n };\n\n function adjustScrollPosition(\n distanceFromButtonToBeginningOfTabListDiv: number,\n buttonWidth: number,\n tablistWidth: number,\n scrollLeft: number\n ) {\n //the padding value in rems\n const paddingLeft = 0.25; //the \"px-1\" class. paddingLeft = paddingRight\n const leftPaddingOfScrollableDiv =\n paddingLeft * parseFloat(getComputedStyle(document.documentElement).fontSize);\n //Adjusting the scroll position if the focused button is not fully visible to the user\n //This if statement checks if the focused button overflows to the right(forwards) of the tablist div\n //if it is, the scroll position is adjusted to make focused button fully visible.\n if (\n distanceFromButtonToBeginningOfTabListDiv + buttonWidth >=\n tablistWidth - leftPaddingOfScrollableDiv\n ) {\n return (\n scrollLeft +\n (distanceFromButtonToBeginningOfTabListDiv +\n buttonWidth +\n leftPaddingOfScrollableDiv -\n tablistWidth)\n );\n }\n //Adjusting the scroll position if the focused button is not fully visible to the user\n //This if statement checks if the focused button overflows to the left(backwards) of the tablist div\n //if it is, the scroll position is adjusted to make focused button fully visible.\n if (distanceFromButtonToBeginningOfTabListDiv < leftPaddingOfScrollableDiv) {\n return (\n scrollLeft - (leftPaddingOfScrollableDiv - distanceFromButtonToBeginningOfTabListDiv)\n );\n }\n\n return scrollLeft;\n }\n\n const scrollToFocusedItem = (e: React.FocusEvent) => {\n setFocusedTabId(e.target.id);\n if (tablistRef.current) {\n const { scrollLeft } = tablistRef.current;\n //excluding padding of the Scrollable Div\n //The distance from the beginning of the tablist div to the left border of the focused button\n const distanceFromButtonToBeginningOfTabListDiv =\n e.target.offsetLeft - tablistRef.current.scrollLeft;\n const buttonWidth = e.target.offsetWidth;\n //excluding scrollable tabs\n const tablistWidth = tablistRef.current.offsetWidth;\n\n tablistRef.current.scrollLeft = adjustScrollPosition(\n distanceFromButtonToBeginningOfTabListDiv,\n buttonWidth,\n tablistWidth,\n scrollLeft\n );\n }\n };\n\n if (arrayChildren.length < 1) return null;\n const lessOrEqual5 = arrayChildren.length <= 5;\n const lessOrEqual2 = arrayChildren.length <= 2;\n\n return (\n //28px is the width of the svg arrow icon\n \n \n {isBackwardArrowVisible ? (\n \n \n {isRtl ? (\n \n ) : (\n \n )}\n {t('scrollBackward')}\n \n \n ) : null}\n\n {React.Children.map(arrayChildren, (child) => {\n if (React.isValidElement(child) && child.type === TabListButton)\n return React.cloneElement(child as React.ReactElement, {\n onFocus: (e: React.FocusEvent) => {\n child.props?.onFocus?.();\n scrollToFocusedItem(e);\n },\n });\n })}\n\n {isForwardArrowVisible ? (\n \n \n {isRtl ? (\n \n ) : (\n \n )}\n {t('scrollForward')}\n \n \n ) : null}\n \n \n );\n }\n);\n\nTabListScrollable.displayName = 'TabListScrollable';\n\nexport { TabListScrollable };\nexport default TabListScrollable;\n","import cx from 'classnames';\nimport type * as React from 'react';\nimport { forwardRef } from 'react';\nimport { useTabs } from './tabs.context';\nimport { sanitizeId } from './tabs.utils';\n\ntype TabPanel = React.HTMLAttributes;\n\n/**\n * The `TabPanel` component is used to render the content of the `Tab` component. It sets up a11y properties for the best compliance with the WCAG 2.0 accessibility guidelines.\n */\nconst TabPanel = forwardRef(\n ({ id, className, ...rest }, forwardedRef) => {\n const { active } = useTabs();\n const safeId = sanitizeId(id);\n const isActive = active === safeId;\n\n return (\n \n );\n }\n);\n\nTabPanel.displayName = 'TabPanel';\n\nexport { TabPanel };\nexport default TabPanel;\n","import { useTabs } from './tabs.context';\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport cx from 'classnames';\n\ntype TabPanels = React.HTMLAttributes;\n\n/**\n * The `TabPanels` component is used as a wrapper for the `TabPanel` components. It is important to use as it sets the count of components that helps set the focuse correctly.\n */\nconst TabPanels: React.FC> = ({\n children,\n className,\n ...rest\n}) => {\n const { setCount } = useTabs();\n useEffect(() => {\n setCount(React.Children.count(children));\n }, [children, setCount]);\n\n return (\n
    \n {children}\n
    \n );\n};\n\nTabPanels.displayName = 'TabPanels';\n\nexport { TabPanels };\nexport default TabPanels;\n","import cx from 'classnames';\nimport * as React from 'react';\nimport { forwardRef, useEffect, useState } from 'react';\nimport type { TabsContext as TabsContextType } from './tabs.context';\nimport { TabsContext } from './tabs.context';\nimport { isRtl as isRTL } from '@dx-ui/utilities-get-language-direction';\nimport { sanitizeId } from './tabs.utils';\n\nexport type TabsBaseProps = {\n /** change the tabpanel on arrow key */\n changeWithArrow?: boolean;\n /** change the tabpanel on Up and Down keys. Works only if changeWithArrow is also true. */\n useUpDownArrows?: boolean;\n /** id of tab that should be active by default */\n defaultActive?: string;\n /** callback with the id of the active tab */\n onTabChange?: (id?: string) => void;\n /** language code */\n lang?: string;\n};\n\ntype Tabs = TabsBaseProps & React.HTMLAttributes;\n\n/**\n * `Tabs` is a container component that holds the tabs and their content. The set of Tab components are composed inside the Tabs component and have their own context. There should be a `TabButton` or a component that extends `TabButton` with an `id` prop that correlates to a `TabPanel` component.\n *\n * For a11y, there is a `changeWithArrow` prop that will change the tabpanel on arrow key, changing the default behavior to change the tab on enter key.\n *\n * ```jsx\n * \n * \n * Tab 1\n * Tab 2\n * \n * \n * \n *

    Tab 1 content

    \n *
    \n * \n *

    Tab 2 content

    \n *
    \n *
    \n *
    \n * ```\n */\nexport const Tabs = forwardRef(\n (\n {\n changeWithArrow,\n useUpDownArrows,\n lang = 'en',\n defaultActive,\n onTabChange,\n className,\n children,\n ...rest\n },\n forwardedRef\n ) => {\n const [active, setActive] = useState(sanitizeId(defaultActive));\n const [activeIndex, setActiveIndex] = useState(0);\n const [count, setCount] = useState(0);\n const isRtl = isRTL(lang);\n const refs: HTMLButtonElement[] = React.useMemo(() => [], []);\n const addRef: TabsContextType['addRef'] = (ref) =>\n ref ? (refs.includes(ref) ? refs : refs.push(ref)) : refs;\n\n const changeActiveTab = React.useCallback(\n (id?: string) => {\n setActive(id);\n setActiveIndex(refs.findIndex((ref) => ref.id === id));\n\n if (onTabChange) {\n onTabChange(id);\n }\n },\n [onTabChange, refs]\n );\n\n const nextTabIndex = (currentIndex: number) =>\n currentIndex + 1 <= count - 1 ? currentIndex + 1 : 0;\n const previousTabIndex = (currentIndex: number) =>\n currentIndex - 1 >= 0 ? currentIndex - 1 : count - 1;\n\n const isModifiedKeyStroke = (e: React.KeyboardEvent) =>\n Boolean(e.shiftKey || e.altKey || e.ctrlKey || e.metaKey);\n\n const onTabKeyDown: TabsContextType['onTabKeyDown'] = (e, id) => {\n if (isModifiedKeyStroke(e)) {\n return false;\n }\n\n const index = refs.findIndex((ref) => ref.id === id);\n let tabRef = 0;\n switch (e.key) {\n case 'ArrowUp':\n case 'ArrowLeft':\n if (e.key === 'ArrowUp' && !useUpDownArrows) {\n break;\n }\n e.preventDefault();\n tabRef = isRtl ? nextTabIndex(index) : previousTabIndex(index);\n if (changeWithArrow) {\n changeActiveTab(refs[tabRef]?.getAttribute('id') || id);\n }\n refs[tabRef]?.focus();\n break;\n case 'ArrowDown':\n case 'ArrowRight':\n if (e.key === 'ArrowDown' && !useUpDownArrows) {\n break;\n }\n e.preventDefault();\n tabRef = isRtl ? previousTabIndex(index) : nextTabIndex(index);\n if (changeWithArrow) {\n changeActiveTab(refs[tabRef]?.getAttribute('id') || id);\n }\n refs[tabRef]?.focus();\n break;\n case 'Enter':\n case ' ':\n changeActiveTab(id);\n break;\n case 'End':\n e.preventDefault();\n refs[count - 1]?.focus();\n break;\n case 'Home':\n e.preventDefault();\n refs[0]?.focus();\n break;\n // no default\n }\n };\n const onTabSelect: TabsContextType['onTabSelect'] = (id) => changeActiveTab(id);\n\n useEffect(() => {\n if (!defaultActive) {\n refs.length > 0 && changeActiveTab(refs[0]?.id);\n }\n }, [changeActiveTab, defaultActive, refs]);\n\n return (\n \n
    \n {children}\n
    \n \n );\n }\n);\n\nTabs.displayName = 'Tabs';\n\nexport default Tabs;\n","export * from './tab.button';\nexport * from './tab.list.button';\nexport * from './tab.list';\nexport * from './scrollable/tab.list';\nexport * from './tab.panel';\nexport * from './tab.panels';\nexport * from './tabs.context';\nexport * from './tabs.utils';\nexport * from './tabs';\n","export * from './lib/index';\n","import type { StaticOfferAttributeId } from '@dx-ui/gql-types';\n\nexport const offerCategoryMapper: Record = {\n allInclusive: 'INC',\n beach: 'BCH',\n celebration: 'CBN',\n creditCard: 'CC',\n dining: 'DNG',\n discount: 'DSC',\n earnPoints: 'EPT',\n freeBreakfast: 'BFST',\n golf: 'GOL',\n honors: 'HMBR',\n hotelCredit: 'HTLC',\n kidsFamily: 'KAF',\n parking: 'PKG',\n pet: 'PET',\n resort: 'RSRT',\n seasonal: 'SNL',\n spa: 'SPA',\n} as const;\n","import { useQuery } from '@tanstack/react-query';\nimport type { StaticOfferAttributeId } from '@dx-ui/gql-types';\nimport type { TFunction } from 'i18next';\nimport { useTranslation, Trans } from 'next-i18next';\nimport set from 'lodash/set';\nimport cx from 'classnames';\nimport { Pill } from './pill';\nimport { Dialog } from '@dx-ui/osc-dialog-v2';\nimport { Spinner } from '@dx-ui/osc-spinner';\nimport { Pagination } from '@dx-ui/osc-pagination';\nimport { useReducer, useState } from 'react';\nimport { slugifyBrand } from './slugify-brand';\nimport type {\n BrandOfferListingQuery,\n HotelOfferListingQuery,\n OfferListingFragment,\n} from '../generated/types';\nimport { BrandOfferListingDocument, HotelOfferListingDocument } from '../generated/queries';\nimport { useRouter } from 'next/router';\nimport { Breadcrumbs } from '@dx-ui/osc-breadcrumbs';\nimport { TabList, TabListButton, TabPanel, TabPanels, Tabs } from '@dx-ui/osc-tabs';\nimport { offerCategoryMapper } from './offer-category-mapper';\nimport Icon from '@dx-ui/osc-icon';\nimport { BrandButton, BrandLink } from '@dx-ui/osc-brand-buttons';\n\nexport type CommonOfferListingProps = {\n language: string;\n renderInternalOfferLink?: (offer: OfferListingFragment['offers'][number]) => React.ReactNode;\n assetUrl?: string;\n renderAdditionalComponents?: (\n data: (HotelOfferListingQuery | BrandOfferListingQuery) & { firstImageForOg?: string }\n ) => React.ReactNode;\n hideEmptyAttributes?: boolean;\n sortOffers?: (offers: OfferListingFragment['offers']) => OfferListingFragment['offers'];\n offerCTAClick?: (offer: OfferListingFragment['offers'][0]) => void;\n};\n\ninterface HotelListing {\n ctyhocn: string;\n}\n\ninterface BrandListing {\n brandCode: string;\n}\n\nfunction isBrandOffer(props: HotelListing | BrandListing): props is BrandListing {\n return (props as BrandListing).brandCode !== undefined;\n}\n\nfunction isBrandResult(\n data: HotelOfferListingQuery | BrandOfferListingQuery\n): data is BrandOfferListingQuery {\n return (data as BrandOfferListingQuery).brandStaticOfferOptions !== undefined;\n}\n\nfunction isGlobalBrand(brandCode = '') {\n return brandCode === 'WW';\n}\n\nfunction formatSearchDetails({\n filterState,\n isGlobalBrandOfferPage,\n offerListingData,\n}: {\n filterState: State;\n isGlobalBrandOfferPage: boolean;\n offerListingData: HotelOfferListingQuery | BrandOfferListingQuery | undefined;\n}) {\n const brandCode =\n offerListingData && isBrandResult(offerListingData)\n ? offerListingData.brand?.code\n : offerListingData?.hotel?.brand?.code;\n const brands = isGlobalBrandOfferPage ? filterState.brands : brandCode ? [brandCode] : [];\n const mappedCategories = filterState.categories.map((id) => offerCategoryMapper[id]);\n const mappedBrands = brands.map((brandCode) => (isGlobalBrand(brandCode) ? 'HI' : brandCode));\n return [...mappedCategories, ...mappedBrands].join('|');\n}\n\nexport function OfferListing(props: CommonOfferListingProps & (HotelListing | BrandListing)) {\n const { data, isLoading } = useQuery({\n queryKey: [\n isBrandOffer(props) ? BrandOfferListingDocument : HotelOfferListingDocument,\n isBrandOffer(props)\n ? {\n brandCode: props.brandCode,\n language: props.language,\n }\n : {\n ctyhocn: props.ctyhocn,\n language: props.language,\n },\n ],\n });\n return isLoading ? (\n
    \n \n
    \n ) : (\n \n );\n}\n\nexport function OfferListingDisplay({\n data,\n renderAdditionalComponents,\n offerCTAClick,\n ...props\n}: CommonOfferListingProps &\n (HotelListing | BrandListing) & {\n data?: HotelOfferListingQuery | BrandOfferListingQuery;\n }) {\n const { t } = useTranslation('offers');\n const [filterState, dispatch] = useOfferFilters();\n const [filtersOpen, setFiltersOpen] = useState(false);\n const offerSort = props.sortOffers || ((a) => a);\n const result =\n data && (isBrandResult(data) ? data?.brandStaticOfferOptions : data?.hotelStaticOfferOptions);\n const offers = result?.offers ? filterOffers(offerSort(result?.offers), filterState) : [];\n const firstImageForOg = result?.offers?.[0]?.images?.[0]?.ogImage || '';\n const isGlobalBrandOfferPage = isBrandOffer(props) && isGlobalBrand(props.brandCode);\n\n function trackFiltersEvent(eventName: 'filters' | 'filters_reset' | 'filters_done') {\n if (window._satellite && window.digitalData) {\n set(window.digitalData, 'click.clickID', eventName);\n if (eventName === 'filters_done' || eventName === 'filters_reset') {\n set(\n window.digitalData,\n 'page.attributes.searchDetails',\n eventName === 'filters_done'\n ? formatSearchDetails({\n filterState,\n isGlobalBrandOfferPage,\n offerListingData: data,\n })\n : ''\n );\n }\n window._satellite.track?.('global_click');\n }\n }\n\n function openFilters() {\n trackFiltersEvent('filters');\n setFiltersOpen(true);\n }\n\n function closeFilters() {\n trackFiltersEvent('filters_done');\n setFiltersOpen(false);\n }\n\n function resetFilters() {\n trackFiltersEvent('filters_reset');\n dispatch({ type: 'reset' });\n setFiltersOpen(false);\n }\n\n return (\n
    \n {renderAdditionalComponents && renderAdditionalComponents({ ...data, firstImageForOg })}\n
    \n \n

    \n {data && isBrandResult(data) && !isGlobalBrand((props as BrandListing).brandCode)\n ? t('listingHeadingBrand', { brandName: data?.brand?.name })\n : t('listingHeading')}\n

    \n
    \n
    \n {(offers?.length || 0) > 0 && (\n

    \n \n {t('offersShowing', {\n firstNum: 1,\n secondNum: offers?.length || 0,\n total: offers?.length || 0,\n })}\n \n \n {t('offersShowingA11y', {\n firstNum: 1,\n secondNum: offers?.length || 0,\n total: offers?.length || 0,\n })}\n \n

    \n )}\n
    \n
    \n \n {t('offer')}\n {t('filterButton')}\n \n {t('filtersSelected', {\n count: filterState.categories.length + filterState.brands.length,\n })}\n \n \n }\n />\n }\n >\n
    \n a.total > 0)\n : result?.attributes\n }\n brands={isGlobalBrandOfferPage ? result?.brands : undefined}\n onDoneClick={closeFilters}\n resetFilters={resetFilters}\n filterState={filterState}\n onCategoryChange={(category, checked) =>\n dispatch({\n type: 'categories',\n value: category.id,\n checked,\n })\n }\n onBrandChange={(brand, checked) =>\n dispatch({\n type: 'brands',\n value: brand.brandCode,\n checked,\n })\n }\n assetUrl={props.assetUrl}\n />\n
    \n \n
    \n
    \n
    \n {offers?.length === 0 &&
    {t('noneFoundFilters')}
    }\n
    \n {offers?.map((offer) => {\n const img = offer?.images?.[0];\n\n return (\n \n {img && (\n
    \n {[offer?.images?.[0]].map((img) => {\n const mdImg = img?.variants?.find((v) => v.size === 'md');\n return (\n \n );\n })}\n
    \n )}\n\n
    \n

    \n {offer.headline}\n

    \n

    {offer.shortDescription}

    \n {offer?.bookEndFmt && offer?.stayEndFmt && (\n
    \n \n Book by date:{offer?.bookEndFmt}\n \n\n
    \n \n Stay by date: {offer?.stayEndFmt}\n \n
    \n
    \n )}\n {offer?.attributes?.length ? (\n
    \n {offer.attributes.map((attribute) => (\n \n {attribute.name}\n \n ))}\n
    \n ) : null}\n {offer?.externalLink ? (\n offerCTAClick?.(offer)}\n label={offer.externalLink?.label || ''}\n variant=\"solid\"\n />\n ) : props.renderInternalOfferLink ? (\n props.renderInternalOfferLink?.(offer)\n ) : (\n \n )}\n
    \n
    \n );\n })}\n
    \n \n
    \n
    \n \n );\n}\n\nfunction FilterModalContent({\n categories,\n brands,\n onDoneClick,\n resetFilters,\n filterState,\n onCategoryChange,\n onBrandChange,\n assetUrl = '',\n numFilteredOffers,\n}: {\n categories: OfferListingFragment['attributes'] | undefined;\n brands: OfferListingFragment['brands'] | undefined;\n onDoneClick: () => void;\n resetFilters: () => void;\n filterState: State;\n onCategoryChange: (category: OfferListingFragment['attributes'][0], checked: boolean) => void;\n onBrandChange: (brand: OfferListingFragment['brands'][0], checked: boolean) => void;\n assetUrl?: string;\n numFilteredOffers: number;\n}) {\n const { t } = useTranslation('offers');\n const categoriesPanel = categories?.map((cat) => (\n
    \n \n
    \n ));\n return (\n
    \n
    \n \n

    {t('filters')}

    \n
    \n {!brands?.length && categories?.length &&
    {categoriesPanel}
    }\n {categories?.length && brands?.length && (\n \n \n {t('categories')}\n {t('brands')}\n \n \n \n
    {categoriesPanel}
    \n
    \n \n
    \n {brands?.map((brand) => (\n
    \n \n
    \n ))}\n
    \n
    \n
    \n
    \n )}\n\n
    \n {t('numOffers', { count: numFilteredOffers })}\n
    \n\n
    \n \n \n
    \n
    \n );\n}\n\nfunction filterOffers(offers: OfferListingFragment['offers'] | undefined, filterState: State) {\n return offers?.filter((offer) => {\n if (!filterState.categories.length && !filterState.brands.length) {\n return true;\n }\n const hasBrands =\n filterState.brands.length === 0 ||\n offer.brands.some((brand) => filterState.brands.includes(brand));\n const hasAttributes =\n filterState.categories.length === 0 ||\n offer.attributes.some((attr) => filterState.categories.includes(attr.id));\n return hasBrands && hasAttributes;\n });\n}\n\ninterface State {\n brands: string[];\n categories: StaticOfferAttributeId[];\n}\n\ninterface Action {\n type: 'brands' | 'categories' | 'reset';\n value?: string;\n checked?: boolean;\n}\n\nfunction reducer(state: State, action: Action): State {\n if (action.type === 'reset') {\n return {\n brands: [],\n categories: [],\n };\n }\n const actionableState = state[action.type];\n let changedState = [...actionableState];\n if (action.checked && action.value) {\n changedState.push(action.value);\n }\n if (!action.checked && action.value) {\n changedState = changedState.filter((item) => item !== action.value);\n }\n\n return {\n ...state,\n [action.type]: changedState,\n };\n}\n\nfunction useOfferFilters() {\n return useReducer(reducer, {\n categories: [],\n brands: [],\n });\n}\n\nfunction ListingBreadCrumbs({\n result,\n locale,\n t,\n}: {\n result: BrandOfferListingQuery | HotelOfferListingQuery | undefined;\n locale: string;\n t: TFunction<'offers'>;\n}) {\n const { asPath } = useRouter();\n\n if (!result) {\n return null;\n }\n\n const allOffersItem = {\n name: t('breadCrumbs.allOffers'),\n uri: `/${locale}/offers/`,\n };\n if (isBrandResult(result)) {\n if (isGlobalBrand(result?.brand?.code)) {\n return (\n \n );\n }\n return (\n \n );\n } else {\n // hotel listing page\n return (\n \n );\n }\n}\n","import * as React from 'react';\nimport * as RadixAccordion from '@radix-ui/react-accordion';\nimport { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\nimport Icon from '@dx-ui/osc-icon';\nimport { getLanguageDirection } from '@dx-ui/utilities-get-language-direction';\nimport { useRouter } from 'next/router';\n\nexport type HeadingLevel = 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\nexport type Item = {\n /**\n * Content that will be displayed when the accordion is expanded\n */\n content: React.ReactNode;\n /** Trigger text to display hidden content\n *\n * Defaults to “Open”\n */\n collapsedButtonLabel?: string | React.ReactNode;\n /** Screen-reader only trigger text to display hidden content\n */\n collapsedButtonAccessibleLabel?: string;\n /**\n * Applies to Accordion when it is not expanded\n */\n collapsedClassName?: string;\n /**\n * Screen-reader only trigger text to hide displayed content\n */\n expandedButtonAccessibleLabel?: string;\n /** Trigger text to hide displayed content\n *\n * Defaults to “Close”\n */\n expandedButtonLabel?: string | React.ReactNode;\n /**\n * Applies to Accordion when it is expanded\n */\n expandedClassName?: string;\n /**\n * Styles for the wrapper(div) of the accordion button\n */\n buttonWrapperClassName?: string;\n /** A stable key to identify the accordion */\n key: string;\n};\n\nexport type AccordionBase = {\n /** Classes apply to trigger button\n *\n * To style accordion content, apply relevant classes directly to passed-in children\n */\n className?: string;\n /** Accordion item including labels and content */\n items: Item[];\n /** Passed into `
    ` element that contains children\n */\n containerClassName?: string;\n /**\n * Optional heading level that should wrap the Accordion Trigger. Defaults to a span if undefined.\n */\n headingLevel?: HeadingLevel;\n /**\n * Controls the fill color for the indicator icon\n */\n iconIndicatorFillColor?: string;\n /**\n * Applies color when expanded\n */\n iconIndicatorExpandedFillColor?: string;\n /**\n * Controls whether children should be unmounted when accordion is collapsed\n */\n shouldUnmountChildrenWhenCollapsed?: boolean;\n /**\n * Controls accordion variant type, single or stacked. Defaults to single.\n *\n * Single - only one accordion can be expanded at a time (other accordion items will collapse)\n *\n * Multiple - multiple accordion items can be expanded at the same time. (other accordion items will remain expanded)\n */\n variant?: 'single' | 'stacked';\n};\n\nexport type AccordionProps = AccordionBase & React.ComponentProps;\n\nconst setInitialExpandedAccordions = (items: Item[], defaultValue?: string | string[]) => {\n if (typeof defaultValue === 'string') {\n const isExpanded = defaultValue === items[0]?.key;\n return [isExpanded];\n }\n return Array.from({ length: items.length }, (_, idx) => {\n return Boolean(defaultValue?.includes(items?.[idx]?.key ?? ''));\n });\n};\n/**\n *\n * An Accordion component based off of Radix UI's Accordion component. This component is used to display a list of items that can be expanded or collapsed to show or hide content. Root level component that rest props will pass to is .\n * @see {@link Radix UI Accordion Documentation} https://www.radix-ui.com/primitives/docs/components/accordion\n */\nexport const Accordion = ({\n className,\n items,\n containerClassName,\n iconIndicatorFillColor,\n iconIndicatorExpandedFillColor,\n // eslint-disable-next-line @typescript-eslint/unbound-method -- This is a bug with radix definition using : void sytnax.\n onValueChange,\n variant = 'single',\n shouldUnmountChildrenWhenCollapsed = false,\n headingLevel,\n ...rest\n}: AccordionProps) => {\n const [uncontrolledExpandedAccordion, setUncontrolledExpandedAccordion] = React.useState(\n setInitialExpandedAccordions(items, rest.defaultValue)\n );\n\n const isUncontrolledComponent = !rest?.value;\n\n const { t } = useTranslation('osc-accordion');\n const { locale = 'en' } = useRouter();\n const languageDirection = getLanguageDirection(locale);\n\n const isStackedAccordion = variant === 'stacked';\n const handleIconType = isStackedAccordion ? 'arrowhead-down-circle' : 'arrowhead-small-down';\n const iconSize = isStackedAccordion ? 'lg' : 'md';\n\n /**\n *\n * Value can be string | string[] if `type` prop is `single` or `multiple` respectively.\n */\n const handleValueChange = (values: string | string[]) => {\n if (typeof values === 'string') {\n isUncontrolledComponent &&\n setUncontrolledExpandedAccordion([!uncontrolledExpandedAccordion[0]]);\n (onValueChange as (value: string) => void)?.(values);\n } else {\n isUncontrolledComponent &&\n setUncontrolledExpandedAccordion(\n uncontrolledExpandedAccordion.map((_, idx) => values.includes(items?.[idx]?.key ?? ''))\n );\n (onValueChange as (value: string[]) => void)?.(values);\n }\n };\n\n if (!items.length) return null;\n\n return (\n \n {items.map((item, idx) => {\n const isExpanded = isUncontrolledComponent\n ? uncontrolledExpandedAccordion[idx]\n : typeof rest?.value === 'string'\n ? rest?.value === item.key\n : !!rest?.value?.includes(item.key);\n\n const buttonLabel = isExpanded\n ? item?.expandedButtonLabel ?? t('close')\n : item?.collapsedButtonLabel ?? t('open');\n\n const accessibleButtonLabel = isExpanded\n ? item?.expandedButtonAccessibleLabel ?? item?.expandedButtonLabel ?? t('close')\n : item?.collapsedButtonAccessibleLabel ?? item?.collapsedButtonLabel ?? t('open');\n\n const iconVariant = isStackedAccordion && isExpanded ? 'solid' : 'regular';\n const shouldRenderChildren =\n !isExpanded && shouldUnmountChildrenWhenCollapsed ? false : true;\n\n return (\n \n \n \n \n \n {buttonLabel}\n {accessibleButtonLabel}\n \n \n \n \n \n \n \n \n {shouldRenderChildren ? item.content : null}\n \n \n );\n })}\n \n );\n};\n\nfunction TriggerWrapper({\n as: Wrapper = 'span',\n children,\n ...rest\n}: {\n as?: HeadingLevel | 'span';\n children: React.ReactNode;\n}) {\n return {children};\n}\n\nexport default Accordion;\n","export * from './lib/accordion';\n","import { createContext, useContext } from 'react';\n\ntype CycleContext = {\n active: number;\n cycleId: string;\n total: number;\n hasSlides: boolean;\n onPreviousClick: () => void;\n onNextClick: () => void;\n setActive: (value: number) => void;\n};\nconst CycleContext = createContext({} as CycleContext);\n\nexport const useCycle = () => {\n const context = useContext(CycleContext);\n if (context === undefined) {\n throw new Error('useCycle must be used within a Cycle Component parent');\n }\n return context;\n};\n\nexport { CycleContext };\nexport default CycleContext;\n","import cx from 'classnames';\nimport * as React from 'react';\nimport { CycleContext } from './cycle.context';\n\nexport type CycleProps = {\n total: number;\n onChangeIndex?: (newIndex: number, method?: 'previous' | 'next') => void;\n current?: number;\n} & React.HTMLAttributes;\n\n/**\n * Adds controls for multiple slide items and `useCycle()` for all logic\n */\nexport const Cycle: React.FC> = ({\n current = 0,\n total,\n children,\n className,\n onChangeIndex,\n id,\n ...rest\n}) => {\n const fallbackId = React.useId();\n const cycleId = id ?? `cycle-${fallbackId}`;\n const [active, setActive] = React.useState(current);\n const hasSlides = total > 1;\n const onPreviousClick = React.useCallback(() => {\n const index = active - 1 < 0 ? total - 1 : active - 1;\n setActive(index);\n onChangeIndex && onChangeIndex(index, 'previous');\n }, [active, total, onChangeIndex]);\n\n const onNextClick = React.useCallback(() => {\n const index = active + 1 >= total ? 0 : active + 1;\n setActive(index);\n onChangeIndex && onChangeIndex(index, 'next');\n }, [setActive, onChangeIndex, active, total]);\n\n const onSetActive = React.useCallback(\n (index: number) => {\n setActive(index);\n onChangeIndex && onChangeIndex(index);\n },\n [setActive, onChangeIndex]\n );\n\n return (\n \n
    \n {children}\n
    \n \n );\n};\n\nexport default Cycle;\n","export * from './lib/cycle';\nexport * from './lib/cycle.context';\n","import type * as React from 'react';\nimport cx from 'classnames';\nimport { useTranslation } from 'next-i18next';\nimport { useCycle } from '@dx-ui/osc-cycle';\nimport Icon from '@dx-ui/osc-icon';\n\nexport type Alert = {\n index?: number;\n status?: 'normal' | 'urgent' | 'emergency';\n title?: string;\n /**\n * Adds truncation to text if true, true is default state (current)\n */\n isTruncated?: boolean;\n} & React.HTMLAttributes;\n\n/**\n * Displays a message with an icon if status requires it\n */\nexport const Alert: React.FC> = ({\n className,\n status = 'urgent',\n title,\n index = 0,\n isTruncated = true,\n children,\n ...rest\n}) => {\n const [t] = useTranslation('osc-alert');\n const { active, total, hasSlides } = useCycle();\n const cycleProps: React.HTMLAttributes = hasSlides\n ? {\n role: 'group',\n 'aria-roledescription': 'slide',\n 'aria-label': `${index + 1} of ${total}`,\n }\n : {};\n\n return (\n \n
    \n {status === 'urgent' && (\n <>\n

    {t('urgent')}

    \n \n \n )}\n {status === 'emergency' && (\n <>\n

    {t('emergency')}

    \n \n \n )}\n {!!title && (\n \n {title}\n

    \n )}\n {children}\n
    \n \n );\n};\n\nexport default Alert;\n","import * as React from 'react';\nimport { Dialog } from '@dx-ui/osc-dialog-v2';\nimport type { DialogBaseProps, DialogOptionalProps } from '@dx-ui/osc-dialog-v2';\n\ntype AlertDialog = {\n /**\n * text for the button\n */\n label: string;\n} & DialogBaseProps &\n DialogOptionalProps;\n\n/**\n * wraps the `` component and a button to be used in the alert\n */\nexport const AlertDialog: React.FC> = ({\n ariaLabel,\n label,\n children,\n title,\n hasChildrenWithTitle,\n ...rest\n}) => {\n const [open, setOpen] = React.useState(false);\n\n const commonProps = {\n ...rest,\n isOpen: open,\n onDismiss: () => setOpen(!open),\n dialogTrigger: (\n \n ),\n };\n\n return title ? (\n \n {children}\n \n ) : ariaLabel ? (\n \n {children}\n \n ) : null;\n};\n\nexport default AlertDialog;\n","import type * as React from 'react';\nimport { useCycle } from '@dx-ui/osc-cycle';\nimport type { Alerts } from './alerts';\n\nconst AlertsContent: React.FC> = ({ children }) => {\n const { cycleId } = useCycle();\n\n return (\n
    \n {children}\n
    \n );\n};\n\nexport { AlertsContent };\nexport default AlertsContent;\n","import type * as React from 'react';\nimport { useCycle } from '@dx-ui/osc-cycle';\nimport { Pagination } from '@dx-ui/osc-pagination';\nimport type { Alerts } from './alerts';\n\nconst AlertsControls: React.FC> = ({\n label = 'Page',\n hideLabel = true,\n loop,\n}) => {\n const { hasSlides, cycleId, active, total, onNextClick, onPreviousClick } = useCycle();\n\n return hasSlides ? (\n
    \n
    \n \n
    \n
    \n ) : null;\n};\nexport { AlertsControls };\nexport default AlertsControls;\n","import * as React from 'react';\nimport type { Pagination } from '@dx-ui/osc-pagination';\nimport { Alert } from './alert';\nimport { AlertsContent } from './alerts.content';\nimport { AlertsControls } from './alerts.controls';\nimport { Cycle, type CycleProps } from '@dx-ui/osc-cycle';\n\ntype Alerts = Pick &\n Pick &\n React.HTMLAttributes;\n\nconst Alerts: React.FC> = ({\n label,\n hideLabel,\n loop,\n children,\n current,\n onChangeIndex,\n ...rest\n}) => {\n const validSlides = React.Children.map(\n children,\n (child) => React.isValidElement(child) && child.type === Alert && child\n )?.filter(Boolean);\n\n const slides = React.Children.map(\n validSlides,\n (child, index) =>\n React.isValidElement(child) &&\n React.cloneElement(child as React.ReactElement>, {\n index,\n })\n );\n const total = React.Children.count(slides);\n\n return (\n \n {slides}\n \n \n );\n};\n\nexport { Alerts };\nexport default Alerts;\n","export * from './alert';\nexport * from './alert.dialog';\nexport * from './alerts';\nexport * from './alerts.content';\nexport * from './alerts.controls';\n","export * from './lib';\n","import { useState } from 'react';\nimport { Accordion } from '@dx-ui/osc-accordion';\nimport { Spinner } from '@dx-ui/osc-spinner';\nimport { Alert } from '@dx-ui/osc-alert';\nimport { Pill } from './pill';\nimport type { TFunction } from 'i18next';\nimport { useTranslation, Trans } from 'next-i18next';\nimport type { Locale } from '@dx-ui/framework-uri-builder';\nimport { bookUriBuilder } from '@dx-ui/framework-uri-builder';\nimport { addDays, format, parseISO, startOfToday } from 'date-fns';\nimport { slugifyBrand } from './slugify-brand';\nimport { Dialog } from '@dx-ui/osc-dialog-v2';\nimport { LoginIFrame } from '@dx-ui/osc-login';\nimport { useAuth } from '@dx-ui/framework-auth-provider';\nimport type {\n StaticOfferFragment,\n StaticOfferQuery,\n StaticOfferQueryVariables,\n} from '../generated/types';\nimport { useStaticOfferQuery } from '../generated/queries';\nimport Markdown from 'markdown-to-jsx';\nimport type { Maybe } from '@dx-ui/gql-types';\nimport dynamic from 'next/dynamic';\nimport { useRouter } from 'next/router';\nimport type { BreadcrumbsProps } from '@dx-ui/osc-breadcrumbs';\nimport { Breadcrumbs } from '@dx-ui/osc-breadcrumbs';\nimport { ShopFormDates, ShopFormLocation } from './shop-form-imports';\n\nconst ShopForm = dynamic(() => import('./shop-form-imports').then((mod) => mod.ShopForm), {\n ssr: false,\n});\n\nexport function DisclosureText({\n heading,\n children,\n}: {\n heading: string;\n children: React.ReactNode;\n}) {\n return (\n
    \n {children}
    ,\n expandedButtonLabel: heading,\n key: 'heading',\n },\n ]}\n className=\"accordion-single text-text mb-2 text-sm font-bold no-underline\"\n type=\"multiple\"\n />\n \n );\n}\n\ninterface CommonOfferProps {\n offerId: number;\n language: string;\n brandCode?: string;\n breadCrumbs?: BreadcrumbsProps;\n /**\n * If this is set a button will appear \"View Available Dates\" that will take the user to the flex dates calendar of that hotel\n */\n ctyhocn?: string;\n\n baseUrl: string;\n autocompleteUri: string;\n signInIframeUrl: string;\n renderAdditionalComponents?: (\n data: StaticOfferQuery & { firstImageForOg?: string }\n ) => React.ReactNode;\n}\n\nexport function OfferDetails(props: CommonOfferProps) {\n const { data, isLoading } = useStaticOfferQuery({\n offerId: props.offerId,\n language: props.language,\n ctyhocn: props.ctyhocn || '',\n includeHotel: props.ctyhocn !== undefined,\n brandCode: props.brandCode || '',\n });\n const { t } = useTranslation('offers');\n const { login, isAuthenticated } = useAuth();\n return (\n \n );\n}\n\nexport function OffersDetailsDisplay({\n data,\n ctyhocn,\n isLoading,\n brandCode,\n locale,\n baseUrl,\n autoCompleteUri,\n login,\n isAuthenticated,\n t,\n signInIframeUrl,\n renderAdditionalComponents,\n}: {\n data?: StaticOfferQuery;\n ctyhocn?: string;\n isLoading: boolean;\n brandCode?: string;\n locale: string;\n baseUrl: string;\n autoCompleteUri: string;\n login: ReturnType['login'];\n isAuthenticated: ReturnType['isAuthenticated'];\n t: TFunction<'offers'>;\n signInIframeUrl: string;\n renderAdditionalComponents?: CommonOfferProps['renderAdditionalComponents'];\n}) {\n const [isSignIModalOpen, setIsSignIModalOpen] = useState(false);\n\n if (isLoading) {\n return (\n
    \n \n
    \n );\n }\n const staticOffer = data?.staticOffer;\n if (!staticOffer) {\n return ;\n }\n const firstImage = data?.staticOffer?.images?.[0]?.ogImage || '';\n const showViewDatesButton = ctyhocn && staticOffer?.ctyhocns?.includes(ctyhocn);\n const img = staticOffer?.images?.[0];\n const imgAlt = img?.altText || '';\n const imgSrc = img?.variants?.find((v) => v.size === 'md')?.url || '';\n return (\n
    \n {renderAdditionalComponents &&\n renderAdditionalComponents({ ...data, firstImageForOg: firstImage })}\n
    \n {img ? (\n
    \n {imgAlt}\n
    \n ) : null}\n
    \n \n
    \n\n setIsSignIModalOpen(false)}\n >\n {\n if (data) {\n await login({ data });\n setIsSignIModalOpen(false);\n }\n }}\n onClose={() => setIsSignIModalOpen(false)}\n title={t('signIn')}\n />\n
    \n
    \n

    {staticOffer?.headline}

    \n
    \n

    {staticOffer?.longDescription || staticOffer?.shortDescription}

    \n {staticOffer?.keySellingPoint?.length ? (\n
      \n {staticOffer?.keySellingPoint.map((p) => (\n
    • {p}
    • \n ))}\n
    \n ) : null}\n {(staticOffer?.bookStartFmt || staticOffer?.stayStartFmt) && (\n
    \n
    \n \n {t('bookDatesA11y', {\n start: staticOffer?.a11yBookStartFmt,\n end: staticOffer?.a11yBookEndFmt,\n })}\n \n\n
    \n \n Book by dates:\n \n {staticOffer?.bookStartFmt} - {staticOffer.bookEndFmt}\n \n \n
    \n
    \n
    \n \n {t('stayDatesA11y', {\n start: staticOffer?.a11yStayStartFmt,\n end: staticOffer?.a11yStayEndFmt,\n })}\n \n
    \n \n Stay dates:\n \n {staticOffer?.stayStartFmt} - {staticOffer?.stayEndFmt}\n \n \n
    \n
    \n
    \n )}\n
    \n {staticOffer?.attributes?.map((attr) => (\n {attr?.name}\n ))}\n
    \n {staticOffer?.honors && (\n
    \n {isAuthenticated && t('honorsOfferNotificationLoggedIn')}\n {!isAuthenticated && (\n \n Exclusive to Hilton Honors members.\n \n Join\n {' '}\n (for free) or\n setIsSignIModalOpen(true)}\n type=\"button\"\n >\n Sign In\n \n .\n \n )}\n
    \n )}\n {showViewDatesButton ? (\n \n {t('viewAvailableDates')}\n \n ) : (\n {\n if (url) {\n const fullUrl = new URL(`${baseUrl}${url}`);\n window.location.assign(fullUrl);\n return;\n }\n }}\n targetOHWPage=\"search\"\n shouldDisplayGeocodeErrorModal={true}\n >\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n )}\n {staticOffer.policy && (\n \n
    \n \n
    \n
    \n )}\n
    \n
    \n \n \n );\n}\n\nfunction TermsAndConditionsContent({ offer }: { offer: StaticOfferFragment }) {\n // need to loop through terms components\n const terms = offer.policy?.terms;\n\n const components: { component: React.ReactNode; id: string }[] | undefined =\n terms?.components?.map((component) => {\n const id = component.id;\n const [name] = component.id.split('-');\n // find that id, looking through heading, description, ordered list, unordered list\n const termsComponent = terms?.[\n name as keyof Omit\n ] as unknown as Pick<\n NonNullable[keyof Omit][number],\n 'id' | 'value'\n >[];\n const foundComponent = termsComponent?.find(\n (possibleComponent) => possibleComponent.id === id\n );\n switch (name) {\n case 'heading':\n return {\n component: (foundComponent as Maybe<(typeof terms)['description'][number]>)?.value,\n id,\n };\n case 'description':\n return {\n component: (\n \n {(foundComponent as Maybe<(typeof terms)['description'][number]>)?.value || ''}\n \n ),\n id,\n };\n case 'orderedList':\n return {\n component: (\n
      \n {(foundComponent as Maybe<(typeof terms)['orderedList'][number]>)?.value.map(\n (v) => (\n
    • {v}
    • \n )\n )}\n
    \n ),\n id,\n };\n case 'unorderedList':\n return {\n component: (\n
      \n {(foundComponent as Maybe<(typeof terms)['unorderedList'][number]>)?.value.map(\n (v) => (\n
    1. {v}
    2. \n )\n )}\n
    \n ),\n id,\n };\n default:\n return {\n component: '',\n id,\n };\n }\n });\n\n return components?.map(({ component, id }) => {\n return
    {component}
    ;\n });\n}\n\nfunction getFlexDatesUrl({\n ctyhocn,\n date,\n language,\n offerId,\n ohwBaseUrl,\n}: {\n ctyhocn: string;\n date: string;\n language: keyof Locale;\n offerId: string;\n ohwBaseUrl: string;\n}) {\n const arrival = parseISO(date);\n return bookUriBuilder({\n locale: language,\n baseUrl: ohwBaseUrl,\n page: 'flexibledates',\n\n urlParams: {\n ctyhocn,\n dates: {\n arrivalDate: arrival,\n departureDate: addDays(arrival, 1),\n },\n rates: {\n offerId: Number(offerId),\n },\n },\n });\n}\n\nfunction DetailsBreadCrumbs({\n data,\n brandCode,\n locale,\n t,\n}: {\n data: StaticOfferQuery | undefined;\n brandCode: string | undefined;\n locale: string;\n t: TFunction<'offers'>;\n}) {\n const { asPath } = useRouter();\n if (!data || !data?.staticOffer?.name) {\n return null;\n }\n\n const allOffersItem = {\n name: t('breadCrumbs.allOffers'),\n uri: `/${locale}/offers/`,\n };\n // portfolio level offer\n if (brandCode === 'WW') {\n return (\n \n );\n }\n\n if (data?.brand?.name && !data?.hotel?.name) {\n // brand level, offer\n return (\n \n );\n }\n\n // hotel level\n return (\n \n );\n}\n\nexport default OfferDetails;\n","interface Offer {\n name?: string;\n id?: string | number;\n}\nexport function slugifyOfferName(offer: Offer) {\n const slugifiedName = (offer?.name || '').toLocaleLowerCase().replace(/[^a-z0-9]+/g, '-');\n return `${slugifiedName}-${offer?.id}`;\n}\n\nexport function addCampaignId(originalPathName: string, campaignTracker?: string | null) {\n if (originalPathName.slice(-1) !== '/') {\n originalPathName = originalPathName + '/';\n }\n\n if (campaignTracker) {\n return `${originalPathName}?cid=${campaignTracker}`;\n }\n return originalPathName;\n}\n","export * from './lib/offer-listing';\nexport * from './lib/offer-details';\nexport * from './lib/slugify-brand';\nexport * from './lib/slugify-offer';\nexport * from './generated/types';\nexport * from './generated/queries';\n","import type { Child } from '@dx-ui/framework-uri-builder';\n\nexport const DEFAULT_FORM_VALUES = {\n attendee_count: 0,\n brandCode: 'HH',\n dates: {\n arrivalDate: null,\n datesFlex: false,\n departureDate: null,\n },\n hhonors: null,\n numNights: null,\n numRooms: null,\n numAttendees: null,\n meetingSpace: false,\n placeId: '',\n query: '',\n rooms: [\n {\n adults: 1,\n children: [] as Child[],\n },\n ],\n sessionToken: '',\n specialRates: {\n aaaRate: false,\n aarpRate: false,\n corporateCode: '',\n employeeRate: false,\n friendsAndFamilyRate: false,\n governmentOrMilitaryRate: false,\n groupCode: '',\n offerId: null,\n ownerHGVRate: false,\n ownerVIPRate: false,\n pnd: null,\n promoCode: '',\n redeemPts: false,\n requestedRatesOnly: false,\n searchedRatePlanDescription: '',\n seniorRate: false,\n smbRate: false,\n travelAgentId: '',\n useOfferId: false,\n usePnd: false,\n useRequestedRatesOnly: false,\n travelAgentRate: false,\n },\n};\n","import type { GuestQuery } from '@dx-ui/framework-auth-provider';\nimport type SpecialRates from './special-rates';\n\nexport type Hhonors = NonNullable['hhonors'];\n\nexport const isTeamMember = (hhonors?: Hhonors) =>\n Boolean(hhonors?.isTeamMember || hhonors?.isTeamMemberSpouse || hhonors?.isLongTenure20);\n\nexport const isFriendsAndFamily = (hhonors?: Hhonors) =>\n Boolean(hhonors?.isFamilyAndFriends || hhonors?.isLongTenure10);\n\nexport const isOwner = (hhonors?: Hhonors) => Boolean(hhonors?.isOwner || hhonors?.isOwnerHGV);\n\nexport const isHGVMax = (hhonors?: Hhonors) => Boolean(hhonors?.isOwnerHGVNew);\n\nexport const isTMTPProgramMember = (hhonors?: Hhonors) =>\n isTeamMember(hhonors) || isFriendsAndFamily(hhonors) || isOwner(hhonors);\n\nexport const isSmbMember = (hhonors?: Hhonors) => Boolean(hhonors?.isSMBMember);\n\nexport const isTMTPRateSelected = (specialRates?: SpecialRates) =>\n Boolean(specialRates?.employeeRate) ||\n Boolean(specialRates?.friendsAndFamilyRate) ||\n Boolean(specialRates?.ownerVIPRate);\n\nexport const isHGVMaxRateSelected = (specialRates?: SpecialRates) =>\n Boolean(specialRates?.ownerHGVRate);\n\nexport const isSMBRateSelected = (specialRates?: SpecialRates) => Boolean(specialRates?.smbRate);\n","import { useLocalStorage } from 'usehooks-ts';\nimport { useAuth } from '@dx-ui/framework-auth-provider';\nimport { useEffect } from 'react';\n\nexport type SMBContextType = 'personal' | 'business';\n\nexport const useSMBContextLocalStorage = (enabled: boolean) => {\n const { guestInfo } = useAuth();\n const [smbContext, setSMBContext] = useLocalStorage('smbContext', null);\n\n useEffect(() => {\n const isSMBMemberButNoContextSet = Boolean(\n guestInfo?.hhonors?.isSMBMember && !smbContext && enabled\n );\n\n if (isSMBMemberButNoContextSet) {\n setSMBContext('personal');\n }\n }, [enabled, guestInfo?.hhonors?.isSMBMember, setSMBContext, smbContext]);\n\n return { isSMBContextSet: Boolean(smbContext), smbContext, setSMBContext };\n};\n","export * from './lib/use-smb-context-local-storage';\nexport * from './lib/use-smb-program-id-local-storage';\n","import { FormInput } from '@dx-ui/osc-form';\nimport { useTranslation } from 'next-i18next';\nimport type { Hhonors } from './utils';\nimport { isOwner, isTeamMember, isFriendsAndFamily, isHGVMax, isSmbMember } from './utils';\nimport { useFormContext } from 'react-hook-form';\nimport { useSMBContextLocalStorage } from '@dx-ui/utilities-use-smb-context-local-storage';\n\nexport type SpecialRates = {\n aaaRate: boolean;\n aarpRate: boolean;\n corporateCode: string;\n employeeRate: boolean;\n friendsAndFamilyRate: boolean;\n governmentOrMilitaryRate: boolean;\n groupCode: string;\n offerId: null | { id?: number; name?: string };\n ownerHGVRate: boolean;\n ownerVIPRate: boolean;\n pnd: null | { pnd?: string; name?: string };\n promoCode: string;\n redeemPts: boolean;\n requestedRatesOnly: boolean;\n searchedRatePlanDescription: string;\n seniorRate: boolean;\n smbRate: boolean;\n travelAgentId: string;\n travelAgentRate: boolean;\n useOfferId: boolean;\n usePnd: boolean;\n useRequestedRatesOnly: boolean;\n};\n\nexport type SpecialRatesKey = keyof SpecialRates;\n\nexport const specialRatesKeys: Array = [\n 'aaaRate',\n 'aarpRate',\n 'corporateCode',\n 'employeeRate',\n 'friendsAndFamilyRate',\n 'governmentOrMilitaryRate',\n 'groupCode',\n 'offerId',\n 'ownerHGVRate',\n 'ownerVIPRate',\n 'pnd',\n 'promoCode',\n 'redeemPts',\n 'requestedRatesOnly',\n 'searchedRatePlanDescription',\n 'seniorRate',\n 'smbRate',\n 'travelAgentId',\n 'travelAgentRate',\n 'useOfferId',\n 'usePnd',\n 'useRequestedRatesOnly',\n] as const;\n\nexport function isSpecialRatesKey(someString: string): someString is keyof SpecialRates {\n return Boolean(specialRatesKeys.find((value) => someString === value));\n}\n\nexport type SpecialRatesFormContext = { specialRates: SpecialRates; hhonors: Hhonors };\n\nexport const SpecialRates = ({\n shouldDisablePoints = false,\n shouldEnableSMBContextAwareRates = false,\n}: {\n /** option to disable use points checkbox */\n shouldDisablePoints?: boolean;\n /** Are we checking SMB Context to determine whether to show SMB Rates */\n shouldEnableSMBContextAwareRates?: boolean;\n}) => {\n const [t] = useTranslation('osc-special-rates');\n const { watch } = useFormContext();\n const { smbContext } = useSMBContextLocalStorage(shouldEnableSMBContextAwareRates);\n\n const promoCode = watch('specialRates.promoCode');\n const groupCode = watch('specialRates.groupCode');\n const corporateCode = watch('specialRates.corporateCode');\n const isOfferIdSelected = watch('specialRates.useOfferId');\n const isPndSelected = watch('specialRates.usePnd');\n const smbRate = watch('specialRates.smbRate');\n const hhonors = watch('hhonors');\n const offerId = watch('specialRates.offerId');\n const pnd = watch('specialRates.pnd');\n const searchedRatePlanDescription = watch('specialRates.searchedRatePlanDescription');\n const requestedRatesOnly = watch('specialRates.requestedRatesOnly');\n const requestedRatesOnlySelected = watch('specialRates.useRequestedRatesOnly');\n const isOnBusinessProfile = smbContext === 'business';\n const isSMBRatesEnabled = shouldEnableSMBContextAwareRates ? isOnBusinessProfile : true;\n\n const oneCode =\n [\n !!promoCode,\n !!groupCode,\n !!corporateCode,\n !!isPndSelected,\n !!isOfferIdSelected,\n !!requestedRatesOnlySelected,\n ].filter(Boolean).length > 0;\n\n const showSMBCheckbox = isSmbMember(hhonors) && isSMBRatesEnabled;\n const isCorpFieldDisabled =\n !!isPndSelected ||\n ((oneCode || !!smbRate) && !corporateCode) ||\n (shouldEnableSMBContextAwareRates && isOnBusinessProfile);\n\n return (\n
    \n \n \n \n \n \n \n \n {(isOwner(hhonors) || isTeamMember(hhonors)) && (\n \n )}\n {(isOwner(hhonors) || isTeamMember(hhonors) || isFriendsAndFamily(hhonors)) && (\n \n )}\n {isOwner(hhonors) && (\n \n )}\n {isHGVMax(hhonors) && (\n \n )}\n {showSMBCheckbox ? (\n \n ) : null}\n
    \n
    \n {offerId?.name || pnd?.name || requestedRatesOnly ? (\n
    \n {offerId?.name || requestedRatesOnly ? (\n \n ) : null}\n {pnd?.name ? (\n \n ) : null}\n
    \n ) : null}\n \n {!offerId?.name && !requestedRatesOnly ? (\n \n ) : null}\n \n
    \n {!pnd?.name ? (\n \n ) : null}\n
    \n
    \n \n
    \n {oneCode && (\n
    \n \n \n \n \n \n {' '}\n {t('oneCodeError')}\n
    \n )}\n
    \n \n );\n};\n\nexport default SpecialRates;\n","export * from './lib/special-rates';\nexport * from './lib/utils';\n","import type * as Types from './types';\n\nimport {\n useQuery,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\n\nexport const FeatureTogglesDocument = {\n operationName: 'featureToggles_featureConfigs',\n operationString: `query featureToggles_featureConfigs($names: [String!]!) {\n featureToggles(names: $names) {\n enabled\n name\n }\n featureConfigs(names: $names) {\n name\n config\n conditions\n }\n}`,\n originalOpName: 'featureToggles',\n};\nexport function useFeatureTogglesQuery(\n variables: Types.FeatureTogglesQueryVariables,\n options?: Omit, 'queryKey'>\n) {\n return useQuery({\n queryKey: [FeatureTogglesDocument, variables],\n ...options,\n });\n}\nexport function serverSideFeatureTogglesQuery(\n queryClient: QueryClient,\n variables: Types.FeatureTogglesQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [FeatureTogglesDocument, variables],\n ...options,\n });\n}\n\nexport const GeocodeDocument = {\n operationName: 'geocode',\n operationString: `query geocode($address: String, $language: String!, $placeId: String, $sessionToken: String) {\n geocode(\n language: $language\n address: $address\n placeId: $placeId\n sessionToken: $sessionToken\n ) {\n match {\n _id\n id\n address {\n _id\n city\n country\n countryName\n postalCode\n state\n stateName\n }\n geometry {\n location {\n latitude\n longitude\n }\n bounds {\n northeast {\n latitude\n longitude\n }\n southwest {\n latitude\n longitude\n }\n }\n }\n name\n placeUri\n type\n }\n }\n}`,\n originalOpName: 'geocode',\n};\nexport function useGeocodeQuery(\n variables: Types.GeocodeQueryVariables,\n options?: Omit, 'queryKey'>\n) {\n return useQuery({\n queryKey: [GeocodeDocument, variables],\n ...options,\n });\n}\nexport function serverSideGeocodeQuery(\n queryClient: QueryClient,\n variables: Types.GeocodeQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [GeocodeDocument, variables],\n ...options,\n });\n}\n","import { dynatrace } from '@dx-ui/framework-logger';\nimport { keepPreviousData, useQuery } from '@tanstack/react-query';\nimport type { AutocompletePrediction } from './use-suggestions';\n\nexport type Predictions = AutocompletePrediction[] | null;\n\nexport type PredictionStatusTypes = 'OK' | 'SELECTION_REQUIRED';\n\nexport type AutoCompleteResponse = {\n predictions: Predictions;\n status: PredictionStatusTypes | null;\n};\n\nexport type Coordinate = {\n latitude: number;\n longitude: number;\n};\n\nexport type LocationTypes = 'geocode' | 'airport' | 'pointOfInterest' | 'property' | 'address';\n\nexport interface PredictionService {\n /** The auto-complete service url */\n uri: string;\n /** The input text to use for searching locations */\n input: string;\n /** The language param to use for the search */\n language: string;\n /** The type of location to search for.\n * Options: `'geocode' | 'airport' | 'pointOfInterest' | 'property' | 'address'`\n * Can be provided in an array\n */\n type?: LocationTypes | LocationTypes[];\n /** The number of results to limit the search to. * Can be provided in an array with each value corresponding to the `type` option. */\n count?: number | number[];\n /** The coordinates to use when making a search. This is used to bias the results based on location */\n coordinate?: Coordinate;\n /** Unique id to use when making a search. If one is not supplied one is created using crypto.randomUUID(). @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Crypto/randomUUID} */\n sessionId?: string;\n /** Toggle exclusion rules by country */\n applyExclusions?: boolean;\n}\n\nexport type UsePlacesAutocompleteProps = {\n /** Enabled autocomplete fetch */\n isEnabled?: boolean;\n /** Minimum charters needed to be entered before a search is attempted */\n minLength?: number;\n /** Query options that are used when making a search for locations */\n serviceOptions: PredictionService;\n};\n\nconst mapParamToString = (param: unknown) => {\n if (Array.isArray(param)) return param.join(',');\n if (Number.isFinite(param)) return String(param);\n return String(param);\n};\n\nconst getPredictions = async ({\n sessionId = crypto.randomUUID(),\n coordinate,\n uri,\n ...params\n}: PredictionService): Promise => {\n const url = new URL(uri, window.location.origin);\n\n const urlSearchParams = new URLSearchParams({\n ...(params?.input && { input: params.input }),\n ...(params?.language && { language: params.language }),\n ...(params?.type && { type: mapParamToString(params?.type) }),\n ...(params?.count && { count: mapParamToString(params.count) }),\n ...(params?.applyExclusions && { applyExclusions: mapParamToString(params.applyExclusions) }),\n ...(coordinate && {\n location: mapParamToString(`${coordinate.latitude},${coordinate.longitude}`),\n }),\n });\n\n try {\n const response = await fetch(url.href + `?${urlSearchParams.toString()}`, {\n method: 'GET',\n headers: {\n 'dx-map-session-token': sessionId,\n },\n });\n const autocompleteResults = await response.json();\n\n if (autocompleteResults?.status === 'SELECTION_REQUIRED') {\n dynatrace?.sendSessionProperties({ shortString: { searchdrawbridge: 'Up' } });\n }\n\n return autocompleteResults;\n } catch {\n return null;\n }\n};\n\n/**\n * A search as you type hook that provides a list of predictions.\n */\nexport const usePlacesAutocomplete = ({\n isEnabled = true,\n minLength = 2,\n serviceOptions,\n}: UsePlacesAutocompleteProps) => {\n const hasSearchTerms = !!serviceOptions?.input && serviceOptions.input?.length >= minLength;\n\n const { isFetching, data: autocompleteResponse } = useQuery({\n queryKey: ['autocomplete', serviceOptions],\n queryFn: () => getPredictions(serviceOptions),\n enabled: isEnabled && hasSearchTerms,\n placeholderData: keepPreviousData,\n });\n\n return {\n predictions: autocompleteResponse?.predictions || null,\n loading: isFetching,\n status: autocompleteResponse?.status || null,\n };\n};\n","/// \n\nimport { useState, useEffect } from 'react';\n\nexport type FormattedSuggestion = {\n mainText: string;\n secondaryText: string;\n};\n\nexport type PlacesAutocompleteSuggestion = {\n id?: string;\n description: string;\n placeId: string;\n active?: boolean;\n index?: number;\n formattedSuggestion: FormattedSuggestion;\n matchedSubstrings?: google.maps.places.PredictionSubstring[];\n terms?: google.maps.places.PredictionTerm[];\n type?: string;\n types?: string[];\n};\n\nexport type AutocompletePrediction = google.maps.places.AutocompletePrediction & {\n type: string;\n};\ntype SuggestionsProps = {\n predictions: AutocompletePrediction[] | null;\n};\n\ntype SuggestionsRenderProps = {\n suggestions: PlacesAutocompleteSuggestion[];\n};\n\ntype UseSuggestionsHook = (props: SuggestionsProps) => SuggestionsRenderProps;\n\nconst formattedSuggestion = (\n formatting: google.maps.places.StructuredFormatting\n): FormattedSuggestion => ({\n mainText: formatting.main_text,\n secondaryText: formatting.secondary_text,\n});\n\nexport const useSuggestions: UseSuggestionsHook = ({ predictions }) => {\n const [suggestions, setSuggestions] = useState([]);\n\n useEffect(() => {\n if (!predictions || predictions.length === 0) {\n setSuggestions([]);\n return;\n }\n const results = predictions.map((p, idx) => ({\n id: p.place_id,\n description: p.description,\n placeId: p.place_id,\n active: false,\n index: idx,\n formattedSuggestion: formattedSuggestion(p.structured_formatting),\n matchedSubstrings: p.matched_substrings,\n terms: p.terms,\n type: p.type,\n types: p.types,\n }));\n setSuggestions(results);\n }, [predictions]);\n\n return { suggestions };\n};\n","export * from './use-places-autocomplete';\nexport * from './use-suggestions';\n","export * from './lib';\n","import type { FormInputBase } from '@dx-ui/osc-form';\nimport type { ComboboxInputProps } from '@reach/combobox';\nimport { ComboboxOption } from '@reach/combobox';\nimport type * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport type { GeocodeCoordinateQuery } from '../gql/types';\n\ntype LocationHotelsNearMeOption = ComboboxInputProps &\n FormInputBase, 'value' | 'onSelect'>>;\n\nconst LocationHotelsNearMeOption = ({\n geocodeData,\n}: {\n geocodeData?: GeocodeCoordinateQuery['geocode'];\n showNoResultsFound?: boolean;\n}) => {\n const { t } = useTranslation('osc-location');\n const userCity = geocodeData?.match?.address?.city || '';\n\n let stateCountry = geocodeData?.match?.address?.stateName;\n if (stateCountry)\n stateCountry += geocodeData?.match?.address?.country\n ? `, ${geocodeData?.match?.address?.country}`\n : `${geocodeData?.match?.address?.country}`;\n else\n stateCountry += geocodeData?.match?.address?.country\n ? ` ${geocodeData?.match?.address?.country}`\n : ``;\n\n return geocodeData && userCity ? (\n
    \n
    \n {t('optionsHeader.hotelsNearBy')}\n
    \n \n
    \n
    \n \n
    \n
    \n {userCity}\n {stateCountry}\n
    \n
    \n \n
    \n ) : null;\n};\n\nexport { LocationHotelsNearMeOption };\nexport default LocationHotelsNearMeOption;\n","import type { PlacesAutocompleteSuggestion } from '@dx-ui/framework-places-autocomplete';\nimport { useLocalStorage } from 'usehooks-ts';\n\nconst REFRESH_TTL_2WEEK = 604800 * 2 * 1000;\nconst DISPLAY_COUNT = 5;\n\nexport function sanitizePlacesAutocompleteSuggestions(\n places: PlacesAutocompleteSuggestion[]\n): PlacesAutocompleteSuggestion[] {\n const knownDescriptions = new Set();\n\n return places\n .filter((place) => {\n if (knownDescriptions.has(place.description)) {\n return false;\n } else {\n knownDescriptions.add(place.description);\n return true;\n }\n })\n .slice(0, DISPLAY_COUNT);\n}\n\nexport function useRecentSearches() {\n const [value, setValue] = useLocalStorage('RecentSearches', [], {\n initializeWithValue: false,\n\n serializer: (instance) =>\n JSON.stringify({\n instance,\n expireDate: new Date().getTime() + REFRESH_TTL_2WEEK,\n }),\n\n deserializer: (s: string): PlacesAutocompleteSuggestion[] => {\n try {\n const val: unknown = JSON.parse(s);\n if (\n val &&\n typeof val === 'object' &&\n 'expireDate' in val &&\n typeof val.expireDate === 'number' &&\n 'instance' in val\n ) {\n const { expireDate, instance } = val;\n const ttl = new Date(expireDate).getTime() - new Date().getTime();\n\n if (ttl <= 0) {\n return [];\n }\n\n if (instance && Array.isArray(instance)) {\n return instance;\n }\n }\n return [];\n } catch {\n return [];\n }\n },\n });\n\n const lengthLimitedValue = (value ?? []).slice(0, DISPLAY_COUNT);\n\n return [lengthLimitedValue, setValue] as const;\n}\n","import type { LocationTypes } from '@dx-ui/framework-places-autocomplete';\nimport type { IconNames } from '@dx-ui/osc-icon';\n\nexport const LocationIcons: { [key in LocationTypes]: (typeof IconNames)[number] } = {\n address: 'location',\n airport: 'airport',\n geocode: 'location',\n pointOfInterest: 'point-of-interest',\n property: 'hotel',\n};\n","import type { FormInputBase } from '@dx-ui/osc-form';\nimport type { ComboboxInputProps } from '@reach/combobox';\nimport { ComboboxOption } from '@reach/combobox';\nimport type {\n LocationTypes,\n PlacesAutocompleteSuggestion,\n} from '@dx-ui/framework-places-autocomplete';\nimport { LocationIcons } from './icons.constant';\nimport Icon from '@dx-ui/osc-icon';\n\ntype PlacesAutoCompleteSuggestionOptions = ComboboxInputProps &\n FormInputBase, 'value' | 'onSelect'>>;\n\nconst PlacesAutoCompleteSuggestionOptions = ({\n suggestions,\n header = '',\n}: {\n header?: string;\n suggestions?: PlacesAutocompleteSuggestion[];\n}) => {\n if (!suggestions) return null;\n return (\n
    \n {suggestions.map((suggestion, index: number) => {\n return (\n \n \n <>\n \n {suggestion.formattedSuggestion.mainText}\n \n \n {suggestion.formattedSuggestion.secondaryText}\n \n \n \n \n );\n })}\n
    \n );\n};\n\nconst AutoCompleteSuggestionOptionsWrapper = ({\n header,\n iconType,\n children,\n}: {\n header?: string;\n iconType?: string;\n children: React.ReactNode;\n}) => {\n const locationIconName =\n iconType && iconType in LocationIcons ? LocationIcons[iconType as LocationTypes] : 'location';\n return (\n <>\n {header ? (\n
    \n {header}\n
    \n ) : null}\n
    \n
    \n \n
    \n
    {children}
    \n
    \n \n );\n};\n\nexport { PlacesAutoCompleteSuggestionOptions, AutoCompleteSuggestionOptionsWrapper };\nexport default PlacesAutoCompleteSuggestionOptions;\n","import type { FormInputBase } from '@dx-ui/osc-form';\nimport type { ComboboxInputProps } from '@reach/combobox';\nimport type * as React from 'react';\nimport { useRecentSearches } from './location-options-utils';\nimport type { PlacesAutocompleteSuggestion } from '@dx-ui/framework-places-autocomplete';\nimport PlacesAutoCompleteSuggestionOptions from '../autoComplete-suggestion-options';\nimport { useTranslation } from 'next-i18next';\n\ntype LocationPopularDestinationsOption = ComboboxInputProps &\n FormInputBase, 'value' | 'onSelect'>>;\n\nconst LocationPopularDestinationsOption = ({\n isNearByEnabled,\n popularDestinations,\n popularDestinationsCount = 5,\n showRecentDestinations = false,\n}: {\n isNearByEnabled?: boolean;\n popularDestinations?: PlacesAutocompleteSuggestion[];\n popularDestinationsCount?: number;\n showRecentDestinations?: boolean;\n}) => {\n const { t } = useTranslation('osc-location');\n const cachedRecentSearches = useRecentSearches();\n\n const displayCount = isNearByEnabled ? 3 : popularDestinationsCount;\n\n const popularDestinationsOptions = popularDestinations?.slice(\n 0,\n displayCount\n ) as unknown as PlacesAutocompleteSuggestion[];\n const recentSearchOptions = showRecentDestinations ? cachedRecentSearches : [];\n const showPopularDestinations = !(!!showRecentDestinations && recentSearchOptions?.length);\n\n return showPopularDestinations ? (\n \n ) : null;\n};\n\nexport { LocationPopularDestinationsOption };\nexport default LocationPopularDestinationsOption;\n","import type { FormInputBase } from '@dx-ui/osc-form';\nimport type { ComboboxInputProps } from '@reach/combobox';\nimport type * as React from 'react';\nimport { useRecentSearches } from './location-options-utils';\nimport { PlacesAutoCompleteSuggestionOptions } from '../autoComplete-suggestion-options';\nimport { useTranslation } from 'next-i18next';\n\ntype LocationRecentSearchesOption = ComboboxInputProps &\n FormInputBase, 'value' | 'onSelect'>>;\n\nconst LocationRecentSearchesOption = ({ isNearByEnabled }: { isNearByEnabled?: boolean }) => {\n const { t } = useTranslation('osc-location');\n\n const [recentSearchOptions] = useRecentSearches();\n const displayCount = isNearByEnabled ? 3 : 5;\n const recentSearches = recentSearchOptions?.slice(0, displayCount);\n\n return (\n \n );\n};\n\nexport { LocationRecentSearchesOption };\nexport default LocationRecentSearchesOption;\n","import type * as Types from './types';\n\nimport {\n useQuery,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\n\nexport const GetTranslateAutocompleteConfigDocument = {\n operationName: 'featureConfigs',\n operationString: `query featureConfigs {\n featureConfigs(names: [\"config-ui-translate-autocomplete\"]) {\n config\n name\n }\n}`,\n originalOpName: 'getTranslateAutocompleteConfig',\n};\nexport function useGetTranslateAutocompleteConfigQuery<\n TData = Types.GetTranslateAutocompleteConfigQuery,\n TError = DXError\n>(\n variables?: Types.GetTranslateAutocompleteConfigQueryVariables,\n options?: Omit<\n UseQueryOptions,\n 'queryKey'\n >\n) {\n return useQuery({\n queryKey: [GetTranslateAutocompleteConfigDocument, variables],\n ...options,\n });\n}\nexport function serverSideGetTranslateAutocompleteConfigQuery(\n queryClient: QueryClient,\n variables?: Types.GetTranslateAutocompleteConfigQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [GetTranslateAutocompleteConfigDocument, variables],\n ...options,\n });\n}\n\nexport const GeocodeCoordinateDocument = {\n operationName: 'geocode',\n operationString: `query geocode($location: GeocodeCoordinateInput, $language: String!, $sessionToken: String) {\n geocode(language: $language, location: $location, sessionToken: $sessionToken) {\n match {\n address {\n city\n country\n stateName\n }\n }\n }\n}`,\n originalOpName: 'geocodeCoordinate',\n};\nexport function useGeocodeCoordinateQuery(\n variables: Types.GeocodeCoordinateQueryVariables,\n options?: Omit, 'queryKey'>\n) {\n return useQuery({\n queryKey: [GeocodeCoordinateDocument, variables],\n ...options,\n });\n}\nexport function serverSideGeocodeCoordinateQuery(\n queryClient: QueryClient,\n variables: Types.GeocodeCoordinateQueryVariables,\n options?: FetchQueryOptions\n) {\n return queryClient.fetchQuery({\n queryKey: [GeocodeCoordinateDocument, variables],\n ...options,\n });\n}\n","import type { FormInputBase } from '@dx-ui/osc-form';\nimport * as React from 'react';\nimport { get, useFormContext, useFormState, useWatch } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport { useSuggestions } from '@dx-ui/framework-places-autocomplete';\nimport { FormError, FormLabel } from '@dx-ui/osc-form';\nimport { Spinner } from '@dx-ui/osc-spinner';\nimport { Combobox, ComboboxInput, ComboboxList, ComboboxPopover } from '@reach/combobox';\nimport cx from 'classnames';\n\nimport HotelsNearMeOption from './location-options/hotels-near-me-option';\n\nimport type {\n PredictionService,\n AutocompletePrediction,\n PredictionStatusTypes,\n PlacesAutocompleteSuggestion,\n} from '@dx-ui/framework-places-autocomplete';\nimport type { ComboboxInputProps } from '@reach/combobox';\nimport PopularDestinationsOptions from './location-options/popular-destinations';\nimport RecentSearchesOptions from './location-options/recent-searches';\nimport {\n sanitizePlacesAutocompleteSuggestions,\n useRecentSearches,\n} from './location-options/location-options-utils';\nimport PlacesAutoCompleteSuggestionOptions, {\n AutoCompleteSuggestionOptionsWrapper,\n} from './autoComplete-suggestion-options';\nimport { useGeocodeCoordinateQuery } from './gql/queries';\nimport { useState } from 'react';\n\ntype BaseLocationInputOptions = FormInputBase<\n Omit, 'value' | 'onSelect'>\n> &\n ComboboxInputProps;\n\nexport interface LocationInput extends BaseLocationInputOptions {\n /** minimum length to trigger a search */\n autoCompleteLength?: number;\n /** Set the lat/long bias for this search.\n * PredicionService [coordinate](/?path=/docs/library-framework-places-autocomplete--page)\n */\n coordinate?: PredictionService['coordinate'];\n /** Flag to ensure hotels near `coordinates` provided are displayed */\n enableHotelsNearMe?: boolean;\n /** language value passed from router */\n language: string;\n /** Flag to ensure recent searches are displayed */\n enableRecentSearches?: boolean;\n /** Need to provide context */\n placeIdFieldName?: string;\n /** List of predictions that are returned from the service */\n predictions: AutocompletePrediction[] | null;\n /** popular destinations options */\n popularDestinationOptions?: PlacesAutocompleteSuggestion[] | null;\n /** Whether this input field is required */\n required?: HTMLInputElement['required'];\n /** Provide the sessionId to use with this search.\n * PredicionService [sessionId](/?path=/docs/library-framework-places-autocomplete--page)\n */\n sessionId?: PredictionService['sessionId'];\n status: PredictionStatusTypes | null;\n checkAutocompleteStatus?: boolean;\n}\n\nconst isHandheld = (userAgent: string): boolean => {\n return /mobile|tablet|ipad|android/i.test(userAgent);\n};\n\nexport const LocationInput: React.FC> = ({\n coordinate,\n enableHotelsNearMe = false,\n enableRecentSearches = false,\n name,\n predictions,\n required,\n optional,\n loading,\n label,\n labelClassName,\n language,\n className,\n registerOptions,\n sessionId,\n autoCompleteLength = 2,\n placeIdFieldName = 'placeId',\n status,\n checkAutocompleteStatus = true,\n popularDestinationOptions,\n ...rest\n}) => {\n const { t } = useTranslation('osc-location');\n const errorId = `input-error-location`;\n const {\n getFieldState,\n register,\n setValue,\n trigger,\n formState: { errors },\n } = useFormContext();\n\n const [currentSuggestion, setCurrentSuggestion] = useState(\n null\n );\n const [recentSearches, setRecentSearches] = useRecentSearches();\n const { isSubmitting } = useFormState();\n\n React.useEffect(() => {\n if (isSubmitting && currentSuggestion) {\n setRecentSearches((recentSearches) =>\n sanitizePlacesAutocompleteSuggestions([currentSuggestion, ...recentSearches])\n );\n }\n }, [currentSuggestion, isSubmitting, setRecentSearches]);\n\n const [showAriaLabel, setShowAriaLabel] = React.useState(false);\n const { suggestions } = useSuggestions({ predictions });\n const inputName = name;\n const inputValue = useWatch({ name });\n const fieldError = get(errors, name);\n const hasError = !!fieldError;\n const hasSearchTerm = !!inputValue && inputValue.length >= autoCompleteLength;\n const hasSuggestions = suggestions.length > 0;\n const autoCompleteSelectionRequired = status === 'SELECTION_REQUIRED' && checkAutocompleteStatus;\n\n const { data, isFetching: isGeoCodeFetching } = useGeocodeCoordinateQuery(\n { language, location: coordinate, sessionToken: sessionId },\n { enabled: !!coordinate && enableHotelsNearMe }\n );\n\n const geocodeData = data?.geocode;\n const enablePopularDestinations = !!popularDestinationOptions;\n const isPlacesAutocompleteSuggestons = !(\n enableHotelsNearMe ||\n enablePopularDestinations ||\n enableRecentSearches\n );\n const [showSuggestions, setShowSuggestions] = React.useState(!isPlacesAutocompleteSuggestons);\n const onKeyUp = (e: React.KeyboardEvent) => {\n if (e.key !== 'Enter') {\n const hideSuggestions = isPlacesAutocompleteSuggestons && !hasSearchTerm;\n setShowSuggestions(!hideSuggestions);\n }\n //When customer freeform types still check autocomplete results to see whether a valid placeId is found\n setValue(\n placeIdFieldName,\n suggestions.find((suggestion) => suggestion.description === e.currentTarget.value)?.placeId ||\n ''\n );\n };\n\n const onFocus = () => {\n if (isPlacesAutocompleteSuggestons && !hasSearchTerm) {\n setShowSuggestions(false);\n } else {\n const locationFieldState = getFieldState(name);\n const locationFieldError = !!locationFieldState?.error?.message;\n if (locationFieldError) setShowSuggestions(false);\n }\n setShowAriaLabel(true);\n };\n\n const showHotelsNearMe = !!(enableHotelsNearMe && !hasSearchTerm && geocodeData);\n const showPopularDestinations = enablePopularDestinations && !hasSearchTerm;\n const showRecentSearches = enableRecentSearches && !hasSearchTerm && recentSearches.length > 0;\n\n const showAutoCompleteSuggestions = !(\n showHotelsNearMe ||\n showPopularDestinations ||\n showRecentSearches\n );\n const showSuggestionsPopover =\n showSuggestions || showHotelsNearMe || showPopularDestinations || showRecentSearches;\n const showSuggestionOptions =\n showSuggestions &&\n (hasSuggestions || showHotelsNearMe || showPopularDestinations || showRecentSearches);\n\n const onSelect = async (selectValue: string) => {\n setValue(inputName, selectValue);\n const selectedSuggestion = getSelectedSuggestion(selectValue);\n\n setValue(placeIdFieldName, selectedSuggestion?.placeId ?? '');\n setShowSuggestions(false);\n if (enableRecentSearches && selectedSuggestion) {\n setCurrentSuggestion(selectedSuggestion);\n }\n await trigger(inputName);\n\n if (autoCompleteSelectionRequired) await trigger(inputName);\n };\n\n const getSelectedSuggestion = (selectValue: string) => {\n if (showRecentSearches && recentSearches?.length) {\n return recentSearches.find((suggestion) => suggestion.description === selectValue);\n } else if (showPopularDestinations) {\n return popularDestinationOptions?.find(\n (suggestion) => suggestion?.description === selectValue\n );\n } else return suggestions?.find((suggestion) => suggestion.description === selectValue);\n };\n\n const getAriaText = () => {\n if (!hasSearchTerm || !showAriaLabel) {\n return '';\n }\n switch (true) {\n case loading:\n return t('loading');\n case autoCompleteSelectionRequired && hasSuggestions:\n return t('ariaSuggestionRequired', {\n drawBridgeNotification: t('drawBridgeSelect'),\n ariaSuggestions: t('ariaSuggestions', { count: suggestions.length }),\n });\n case hasSuggestions:\n return t('ariaSuggestions', { count: suggestions.length });\n case autoCompleteSelectionRequired && !hasSuggestions:\n return t('drawBridgeNoResults');\n default:\n return t('noSuggestions');\n }\n };\n\n const validatePredictions = (value: string) => {\n const isValidPrediction = suggestions.some((suggestion) => suggestion.description === value);\n return isValidPrediction || t('selectSuggestion');\n };\n\n // HACK: Temporarily switch ComboboxInput to uncontrolled while isComposing is true\n // to prevent selections from an Input Method Editor (IME) on mobile from being appended to\n // the text input instead of replaced.\n const isComposing = React.useRef(false);\n const isMobileIME =\n (language === 'ja' || /^zh.*/.test(language)) &&\n typeof navigator !== 'undefined' &&\n isHandheld(navigator.userAgent);\n const handleCompositionEnd = () => {\n isComposing.current = false;\n };\n const handleCompositionStart = () => {\n isComposing.current = true;\n };\n const openOnFocus = !isPlacesAutocompleteSuggestons && !hasError;\n\n return (\n
    \n \n \n setShowAriaLabel(false),\n })}\n onFocus={onFocus}\n onKeyUp={onKeyUp}\n // https://jira.hilton.com/browse/WEBPLAT-570 to address warning “ComboboxInput is changing from uncontrolled to controlled.”\n value={isMobileIME && isComposing.current ? undefined : inputValue}\n onCompositionEnd={handleCompositionEnd}\n onCompositionStart={handleCompositionStart}\n />\n {/* Only Display the aria-label when user has focus on input */}\n

    \n {getAriaText()}\n

    \n \n {autoCompleteSelectionRequired ? (\n
    \n \n \n {hasSuggestions ? t('drawBridgeSelect') : t('drawBridgeNoResults')}\n \n \n
    \n ) : null}\n\n {showSuggestionOptions ? (\n \n {showHotelsNearMe && !isGeoCodeFetching ? (\n \n ) : null}\n {showPopularDestinations ? (\n \n ) : null}\n {showRecentSearches ? (\n \n ) : null}\n {showAutoCompleteSuggestions ? (\n \n ) : null}\n \n ) : !hasSuggestions && !hasError ? (\n
    \n {loading ? : t('noSuggestions')}\n
    \n ) : null}\n \n
    \n \n \n
    \n );\n};\n\nLocationInput.displayName = 'LocationInput';\n\nexport default LocationInput;\n","import { useWatch } from 'react-hook-form';\nimport { LocationInput } from './location.input';\nimport type { PredictionService } from '@dx-ui/framework-places-autocomplete';\nimport { usePlacesAutocomplete } from '@dx-ui/framework-places-autocomplete';\nimport { useDebounceValue } from 'usehooks-ts';\nimport { useGetTranslateAutocompleteConfigQuery } from './gql/queries';\n\nexport type Location = Omit & {\n autocompleteUri?: PredictionService['uri'];\n type?: PredictionService['type'];\n count?: PredictionService['count'];\n enableRecentSearches?: boolean;\n assetsUrl?: string;\n applyExclusions?: boolean;\n};\n\n/**\n * Location is an optional component that may be consumed either standalone or as part of the newer [composable shop form component](?path=/docs/library-products-shop-form--default-story).\n *\n * > Note: The storybook plugin `react-docgen-typescript` has a bug generating props when `Omit` is used. @see https://github.com/styleguidist/react-docgen-typescript/issues/335\n */\nexport const Location: React.FC> = ({\n coordinate,\n type,\n count,\n sessionId,\n label,\n language,\n applyExclusions,\n name = 'query',\n autocompleteUri = '/dx-customer/autocomplete',\n autoCompleteLength = 2,\n ...rest\n}) => {\n const inputValue = useWatch({ name });\n\n const [debouncedInputValue] = useDebounceValue(inputValue, 300);\n const enablePlacesAutoComplete =\n !!debouncedInputValue && debouncedInputValue.length >= autoCompleteLength;\n const { data, isFetched: IsTranslateAutocompleteResolved } =\n useGetTranslateAutocompleteConfigQuery();\n const configLanguages = data?.featureConfigs?.[0]?.config?.languages;\n const isSupportedLanguage =\n IsTranslateAutocompleteResolved &&\n !!configLanguages?.length &&\n configLanguages.includes(language);\n\n const { loading, predictions, status } = usePlacesAutocomplete({\n isEnabled: enablePlacesAutoComplete && IsTranslateAutocompleteResolved,\n minLength: autoCompleteLength,\n serviceOptions: {\n coordinate,\n uri: autocompleteUri,\n input: debouncedInputValue,\n type,\n applyExclusions,\n count,\n language: isSupportedLanguage ? language : 'en',\n sessionId,\n },\n });\n\n return (\n \n );\n};\n\nLocation.displayName = 'Location';\nexport default Location;\n","export * from './lib/location';\nexport * from './lib/location-options/hotels-near-me-option';\nexport * from './lib/location.input';\nexport * from './lib/gql/types';\nexport * from './lib/gql/queries';\nexport * from './lib/location-options/location-options-utils';\n","export const NHCSEARCH_4807 = 'NHCSEARCH-4807-improve-dateless-search';\n","import type { FormDataValues, FormDefaultValues, TargetOHWPage } from './shop-form';\nimport type {\n BrandCode,\n LocationUrlParams,\n SortByValues,\n TripAdvisorRatings,\n MapLanguage,\n Path,\n} from '@dx-ui/framework-uri-builder';\nimport { searchUriBuilder, bookUriBuilder, locationUriBuilder } from '@dx-ui/framework-uri-builder';\nimport { DEFAULT_FORM_VALUES } from './shop-form.constants';\nimport merge from 'lodash/merge';\nimport { differenceInDays, startOfDay } from 'date-fns';\nimport type { GeocodeQuery } from './gql/types';\nimport type { SpecialRates } from '@dx-ui/osc-special-rates';\nimport {\n isTMTPRateSelected,\n isHGVMax,\n isHGVMaxRateSelected,\n isOwner,\n isTeamMember,\n isFriendsAndFamily,\n isTMTPProgramMember,\n} from '@dx-ui/osc-special-rates';\nimport type { QueryClient } from '@tanstack/react-query';\nimport {\n getSpeedBumpFeatureConfig,\n GetSpeedBumpFeatureConfigsDocument,\n type GetSpeedBumpFeatureConfigsQuery,\n} from '@dx-ui/osc-speedbump';\nimport { FeatureTogglesDocument, serverSideFeatureTogglesQuery } from './gql/queries';\nimport {\n GetTranslateAutocompleteConfigDocument,\n serverSideGetTranslateAutocompleteConfigQuery,\n} from '@dx-ui/osc-location';\nimport { NHCSEARCH_4807 } from './constants/featureToggles';\n\nexport const RatePlanCodes = {\n GOVERNMENT_MILITARY: 'GDSGOV',\n AARP: 'HCARP',\n SENIOR: 'GDSSNR',\n AAA: 'HCAAA',\n USE_POINTS: 'HCSMR',\n} as const;\n\nexport const getSearchPath = (\n data: Partial,\n targetOHWPage: Omit\n): Path => {\n if (isTMTPRateSelected(data?.specialRates) && isTMTPProgramMember(data.hhonors)) {\n if (targetOHWPage === 'search') {\n return 'go-hilton';\n } else if (targetOHWPage === 'search-zero') {\n return 'go-hilton-find-hotels';\n }\n } else if (isHGVMax(data.hhonors) && isHGVMaxRateSelected(data?.specialRates)) {\n if (targetOHWPage === 'search') {\n return 'hgv-max';\n } else if (isHGVMax(data.hhonors) && targetOHWPage === 'search-zero') {\n return 'hgv-max-find-hotels';\n }\n } else if (targetOHWPage === 'search') {\n return 'search';\n } else if (targetOHWPage === 'ten-plus-search') {\n return 'group-search';\n }\n return 'find-hotels';\n};\n\n/** This must be updated along with the additionalQSParameterKeys array below */\nexport type AdditionalQSParameters = {\n adjoiningRoomStay?: boolean;\n availableHotelsOnly?: boolean;\n brandCode?: string;\n content?: string;\n displayCurrency?: string;\n fromId?: string;\n f_attributeIds?: string[];\n f_amenityIds?: string[];\n f_brandCodes?: string[];\n f_price?: [number, number];\n f_tripAdvisorRatings?: TripAdvisorRatings;\n maxPoints?: number;\n requestedRatesOnly?: boolean;\n sortBy?: SortByValues;\n specPlan?: string[];\n specialRatesTokens?: string;\n redeemPts?: boolean;\n token?: string[];\n cid?: string;\n};\n\n/** This must be updated along with the AdditionalQSParameters type above */\nexport const additionalQSParameterKeys: Array = [\n 'adjoiningRoomStay',\n 'availableHotelsOnly',\n 'brandCode',\n 'cid',\n 'content',\n 'displayCurrency',\n 'f_amenityIds',\n 'f_attributeIds',\n 'f_brandCodes',\n 'f_price',\n 'f_tripAdvisorRatings',\n 'fromId',\n 'maxPoints',\n 'redeemPts',\n 'requestedRatesOnly',\n 'sortBy',\n 'specPlan',\n 'specialRatesTokens',\n 'token',\n];\n\nexport function isAdditionalQsParameterKey(\n someString: string\n): someString is keyof AdditionalQSParameters {\n return Boolean(additionalQSParameterKeys.find((key) => someString === key));\n}\n\nconst getNumRooms = (numRooms?: number | null) => {\n return numRooms == null || isNaN(numRooms) ? null : numRooms;\n};\n\nexport const generateShopFormUrl = async ({\n additionalQSParameters,\n formData,\n locale,\n targetOHWPage,\n enableDatesFlexDreamRouting = false,\n geocodeData,\n client,\n}: {\n additionalQSParameters?: AdditionalQSParameters;\n formData: Partial;\n locale: string;\n targetOHWPage: TargetOHWPage;\n enableDatesFlexDreamRouting?: boolean;\n geocodeData?: GeocodeQuery;\n client?: QueryClient;\n}) => {\n const token = additionalQSParameters?.token;\n /** If enableDatesFlexDreamRouting enabled, route user to locations result page\n * if not using special rates beside points,\n * date range is within 30 days of today and language is English.\n * If geocode fails for dream routing, fallback to default routing.\n */\n const flexDatesDreamRouting = isflexDatesDreamRouting({\n data: formData,\n target: targetOHWPage,\n enableDreamRouting: enableDatesFlexDreamRouting,\n geocodeData,\n });\n\n /** OHW Search URL generation */\n\n //if flexdates dream redirect enabled and conditions met, return dream URL\n if (flexDatesDreamRouting) {\n return await generateFlexDatesDreamRedirectURL({\n formData,\n language: locale,\n additionalQSParameters,\n geocodeData,\n client,\n });\n }\n if (\n targetOHWPage === 'search' ||\n targetOHWPage === 'search-zero' ||\n targetOHWPage === 'ten-plus-search'\n ) {\n const brandCodeParam = additionalQSParameters?.brandCode as keyof BrandCode;\n return searchUriBuilder({\n brandCode: brandCodeParam ?? (formData.brandCode as keyof BrandCode),\n locale: locale as MapLanguage,\n path: getSearchPath(formData, targetOHWPage),\n relative: true,\n urlParams: {\n adjoiningRoomStay: additionalQSParameters?.adjoiningRoomStay,\n content: additionalQSParameters?.content,\n dates: {\n arrivalDate: formData?.dates?.arrivalDate,\n departureDate: formData?.dates?.departureDate,\n flexibleDates: formData?.dates?.datesFlex,\n },\n displayCurrency: additionalQSParameters?.displayCurrency,\n placeId: formData?.placeId,\n query: formData?.query,\n maxPoints: formData?.specialRates?.redeemPts ? additionalQSParameters?.maxPoints : null,\n numAttendees: formData?.attendee_count,\n availableHotelsOnly: additionalQSParameters?.availableHotelsOnly,\n f_amenityIds: additionalQSParameters?.f_amenityIds,\n f_attributeIds: additionalQSParameters?.f_attributeIds,\n f_brandCodes: additionalQSParameters?.f_brandCodes,\n f_price: additionalQSParameters?.f_price,\n f_tripAdvisorRatings: additionalQSParameters?.f_tripAdvisorRatings,\n sortBy: additionalQSParameters?.sortBy,\n //if on a 10+ search uri or numRooms is provided with a value less than 10, consume numRooms. Otherwise consume length of rooms array from rooms modal sub component\n numRooms:\n targetOHWPage === 'ten-plus-search' || (formData?.numRooms && formData?.numRooms < 10)\n ? formData?.numRooms\n : formData?.rooms?.length,\n rates: {\n aarp: formData?.specialRates?.aarpRate,\n corporateAccount: formData?.specialRates?.corporateCode,\n employeeRate: formData?.specialRates?.employeeRate,\n friendsAndFamilyRate: formData?.specialRates?.friendsAndFamilyRate,\n fromId: additionalQSParameters?.fromId,\n government: formData?.specialRates?.governmentOrMilitaryRate,\n groupCode: formData?.specialRates?.groupCode,\n offerId: formData?.specialRates?.useOfferId ? formData?.specialRates?.offerId?.id : null,\n ownerHGVRate: formData?.specialRates?.ownerHGVRate,\n ownerVIPRate: formData?.specialRates?.ownerVIPRate,\n pnd: formData?.specialRates?.usePnd ? formData?.specialRates?.pnd?.pnd : null,\n promoCode: formData?.specialRates?.promoCode,\n requestedRatesOnly: additionalQSParameters?.requestedRatesOnly,\n senior: formData?.specialRates?.seniorRate,\n smbRate: formData?.specialRates?.smbRate,\n travelAgents: formData?.specialRates?.travelAgentRate,\n tripleA: formData?.specialRates?.aaaRate,\n spec_plan: additionalQSParameters?.specPlan?.join(','),\n //TODO PAUL. THIS LOGIC MAKES NO SENSE. IF CUSTOMER SAYS USEPOINTS IS FALSE BUT I HAVE A TOKEN I IGNORE IT?\n usePoints:\n token?.includes(RatePlanCodes.USE_POINTS) ||\n formData?.specialRates?.redeemPts ||\n additionalQSParameters?.redeemPts,\n },\n rooms: formData?.rooms,\n sessionToken: formData?.sessionToken,\n specialRateTokens: additionalQSParameters?.specialRatesTokens?.split(','),\n cid: additionalQSParameters?.cid,\n },\n });\n }\n\n //TODO talk to kevin\n /** OHW Book URL Generation */\n return bookUriBuilder({\n locale: locale as MapLanguage,\n page: formData?.dates?.datesFlex ? 'flexibledates' : 'rooms',\n relative: true,\n urlParams: {\n additionalQS: {\n displayCurrency: additionalQSParameters?.displayCurrency,\n requestedRatesOnly: additionalQSParameters?.requestedRatesOnly,\n spec_plan: additionalQSParameters?.specPlan?.join(','),\n specialRateTokens: additionalQSParameters?.specialRatesTokens,\n srpName: additionalQSParameters?.specialRatesTokens,\n },\n adjoiningRoomStay: additionalQSParameters?.adjoiningRoomStay,\n ctyhocn: formData.query || '',\n dates: {\n arrivalDate: formData?.dates?.arrivalDate,\n departureDate: formData?.dates?.departureDate,\n flexibleDates: formData?.dates?.datesFlex,\n },\n rates: {\n aaaRate: formData?.specialRates?.aaaRate,\n aarpRate: formData?.specialRates?.aarpRate,\n corporateCode: formData?.specialRates?.corporateCode,\n employeeRate: formData?.specialRates?.employeeRate,\n friendsAndFamilyRate: formData?.specialRates?.friendsAndFamilyRate,\n fromId: additionalQSParameters?.fromId,\n governmentRate: formData?.specialRates?.governmentOrMilitaryRate,\n groupCode: formData?.specialRates?.groupCode,\n offerId: formData?.specialRates?.offerId?.id,\n ownerHGVRate: formData?.specialRates?.ownerHGVRate,\n ownerVIPRate: formData?.specialRates?.ownerVIPRate,\n pnd: formData?.specialRates?.pnd?.pnd,\n promotionCode: formData?.specialRates?.promoCode,\n redeemPts: formData?.specialRates?.redeemPts,\n seniorRate: formData?.specialRates?.seniorRate,\n smbRate: formData?.specialRates?.smbRate,\n travelAgent: formData?.specialRates?.travelAgentRate,\n travelAgentId: formData?.specialRates?.travelAgentId,\n },\n rooms: formData?.rooms,\n numRooms: getNumRooms(formData.numRooms),\n numAttendees: formData?.numAttendees,\n },\n });\n};\n\nexport const generateSanitizedDefaultValues = (defaultValues?: FormDefaultValues) => {\n const initialValues: FormDataValues = merge({}, DEFAULT_FORM_VALUES, defaultValues);\n\n if (initialValues?.dates?.arrivalDate) {\n initialValues.dates.arrivalDate = startOfDay(initialValues.dates.arrivalDate);\n }\n if (initialValues?.dates?.departureDate) {\n initialValues.dates.departureDate = startOfDay(initialValues.dates.departureDate);\n }\n\n //clear HGV rate is user not eligible\n if (!isHGVMax(initialValues?.hhonors)) {\n initialValues['specialRates']['ownerHGVRate'] = false;\n }\n\n //clear tmtp rates if user is not eligible\n if (!isOwner(initialValues?.hhonors)) {\n if (isTeamMember(initialValues?.hhonors)) {\n initialValues['specialRates']['ownerVIPRate'] = false;\n } else if (isFriendsAndFamily(initialValues?.hhonors)) {\n initialValues['specialRates']['ownerVIPRate'] = false;\n initialValues['specialRates']['employeeRate'] = false;\n } else {\n initialValues['specialRates']['ownerVIPRate'] = false;\n initialValues['specialRates']['employeeRate'] = false;\n initialValues['specialRates']['friendsAndFamilyRate'] = false;\n }\n }\n\n return initialValues;\n};\n\nexport const isflexDatesDreamRouting = ({\n data,\n target,\n enableDreamRouting,\n geocodeData,\n}: {\n data: Partial;\n target: string;\n enableDreamRouting?: boolean;\n geocodeData?: GeocodeQuery;\n}) => {\n const noSpecialRatesOrOnlyUsePointsApplied = (specialRates?: Partial) => {\n //no special rate applied\n if ((specialRates && Object.values(specialRates).filter(Boolean).length === 0) || !specialRates)\n return true;\n //or only one special rate applied and that rate is usePoints\n if (\n specialRates &&\n Object.values(specialRates).filter(Boolean).length < 2 &&\n specialRates.redeemPts\n )\n return true;\n return false;\n };\n const isDateLess = !(data?.dates?.arrivalDate && data?.dates?.departureDate);\n return (\n //flexDates dream routing opt-in\n enableDreamRouting &&\n /*geocode data returned for routing to dream flow \n or search routing passed from dream page to route to search flow*/\n !!geocodeData &&\n !!geocodeData?.geocode?.match?.placeUri &&\n (target === 'search' || target === 'search-zero') &&\n noSpecialRatesOrOnlyUsePointsApplied(data?.specialRates) &&\n //searched dates must be within 30 days of today or dateless\n (isDateLess ||\n (!!data?.dates?.arrivalDate &&\n data?.dates?.datesFlex &&\n differenceInDays(data?.dates?.arrivalDate, new Date()) <= 30))\n );\n};\nexport const generateFlexDatesDreamRedirectURL = async ({\n formData,\n language,\n additionalQSParameters,\n geocodeData,\n client,\n}: {\n formData?: Partial;\n language: string;\n additionalQSParameters?: AdditionalQSParameters;\n geocodeData?: GeocodeQuery;\n client?: QueryClient;\n}) => {\n let shouldAddLocationCoordParams = false;\n try {\n if (client) {\n const { featureToggles } = await serverSideFeatureTogglesQuery(client, {\n names: NHCSEARCH_4807,\n });\n shouldAddLocationCoordParams =\n featureToggles.find(({ name }) => NHCSEARCH_4807 === name)?.enabled || false;\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n\n const locationCoordParams = {\n placeId: geocodeData?.geocode?.match?.id,\n location: geocodeData?.geocode?.match?.geometry?.location,\n bounds: geocodeData?.geocode?.match?.geometry?.bounds,\n geocodeType: geocodeData?.geocode?.match?.type,\n query: formData?.query,\n };\n const urlParams: LocationUrlParams = {\n displayCurrency: additionalQSParameters?.displayCurrency,\n adjoiningRoomStay: additionalQSParameters?.adjoiningRoomStay,\n sortBy: additionalQSParameters?.sortBy,\n f_amenityIds: additionalQSParameters?.f_amenityIds,\n f_brandCodes: additionalQSParameters?.f_brandCodes,\n f_price: additionalQSParameters?.f_price,\n f_tripAdvisorRatings: additionalQSParameters?.f_tripAdvisorRatings,\n redeemPts: formData?.specialRates?.redeemPts || additionalQSParameters?.redeemPts,\n placeUri: geocodeData?.geocode?.match?.placeUri,\n cid: additionalQSParameters?.cid,\n content: additionalQSParameters?.content,\n ...(shouldAddLocationCoordParams && locationCoordParams),\n };\n const brandCodeParam = additionalQSParameters?.brandCode as keyof BrandCode;\n const locationUrlString = locationUriBuilder({\n locale: language,\n brandCode: brandCodeParam ?? (formData?.brandCode as keyof BrandCode),\n urlParams,\n relative: true,\n });\n return locationUrlString;\n};\n\nexport const SHOP_FORM_ORIGINAL_OP_NAMES = [\n GetSpeedBumpFeatureConfigsDocument.originalOpName,\n GetTranslateAutocompleteConfigDocument.originalOpName,\n FeatureTogglesDocument.originalOpName,\n];\nexport const getServerSideShopFormData: (\n queryClient: QueryClient,\n options?: { getTranslateAutocomplete?: boolean }\n) => Promise = (queryClient, options = {}) => {\n const { getTranslateAutocomplete = false } = options;\n const speedBumpFeatureconfig = getSpeedBumpFeatureConfig(queryClient).catch((e) => {\n // eslint-disable-next-line no-console\n console.error('Error fetching shopFormSpeedBumpData', e);\n });\n\n if (getTranslateAutocomplete)\n serverSideGetTranslateAutocompleteConfigQuery(queryClient).catch((e: Error) => {\n console.error('Error fetching translateAutocompleteData', e); // eslint-disable-line no-console\n });\n return speedBumpFeatureconfig;\n};\n","import { useTranslation } from 'next-i18next';\nimport type { TFunction } from 'i18next';\nimport { differenceInDays, isSameYear } from 'date-fns';\nimport type { ShopFormRoom } from '@dx-ui/osc-rooms';\n\ntype ResSummaryText = {\n dates: string;\n adaDates: string;\n kidsAgesText: string | null;\n occupancy: string;\n stayDuration?: string;\n};\n\nconst handleUnder1Text = (childAge: number, t: TFunction<'osc-rooms', undefined>) =>\n childAge === 0 ? t('occupancy.under1') : childAge;\n\nexport const useShopFormSummaryText = ({\n arrivalDate,\n departureDate,\n language,\n showChildAges,\n rooms,\n}: {\n arrivalDate: Date | null;\n departureDate: Date | null;\n /** language value passed from router */\n language: string;\n showChildAges?: boolean;\n rooms: ShopFormRoom[];\n}): ResSummaryText => {\n const { t } = useTranslation('osc-rooms');\n const { formattedStayDates, adaFormattedStayDates, stayDuration } = useFormattedStayDates({\n arrivalDate,\n departureDate,\n language,\n });\n const numRooms = rooms.length;\n const { numAdults, numChildren, childrenAges } = rooms.reduce(\n (acc, room) => {\n acc.numAdults = acc.numAdults + room.adults;\n acc.numChildren = acc.numChildren + room.children.length;\n acc.childrenAges = [\n ...acc.childrenAges,\n ...room.children.filter((c) => typeof c.age === 'number').map((c) => c.age as number),\n ];\n return acc;\n },\n { numAdults: 0, numChildren: 0, childrenAges: [] as number[] }\n );\n const updatedChildrenAges = childrenAges?.map((childAge) => handleUnder1Text(childAge, t));\n const roomsText = t('occupancy.rooms', { count: numRooms });\n const adultsText = t('occupancy.adult', { count: numAdults ?? undefined });\n const hasKids = (numChildren || 0) > 0;\n const kidsText = hasKids ? t('occupancy.kids', { count: numChildren ?? undefined }) : '';\n\n let kidsAgesText: string | null = null;\n\n if (showChildAges && hasKids && updatedChildrenAges?.length) {\n const firstKidsAge = updatedChildrenAges?.slice(0, -1).join(', ');\n\n kidsAgesText = t('occupancy.kidsAgeText', {\n count: updatedChildrenAges.length,\n firstKidsAge: updatedChildrenAges.length < 3 ? firstKidsAge : firstKidsAge + ',',\n lastKidAge: updatedChildrenAges?.slice(-1)[0],\n kidAge: updatedChildrenAges[0],\n });\n }\n\n const noDatesStayDuration = formattedStayDates ? t('occupancy.dayOnly') : t('occupancy.noDates');\n\n return {\n dates: formattedStayDates,\n adaDates: adaFormattedStayDates,\n kidsAgesText,\n occupancy: t(kidsText ? 'occupancy.occupancyWithKids' : 'occupancy.occupancy', {\n adults: adultsText,\n kids: kidsText,\n rooms: roomsText,\n }),\n stayDuration:\n stayDuration === 0\n ? noDatesStayDuration\n : t('occupancy.stayDurationNights', { count: stayDuration }),\n };\n};\n\nexport const formatDates = (arrivalDate: Date, departureDate: Date, locale: Intl.Locale) => {\n const sameYear = isSameYear(arrivalDate, departureDate);\n const kanji = isKanji(locale);\n const month = isTurkish(locale) ? ('long' as const) : ('short' as const);\n const weekday = 'short';\n const day = 'numeric';\n const year = 'numeric';\n const options: Intl.DateTimeFormatOptions = {\n weekday,\n month,\n day,\n };\n const optionsWithYear: Intl.DateTimeFormatOptions = { ...options, year };\n\n const arrivalDateString = arrivalDate.toLocaleDateString(\n locale,\n !sameYear || kanji ? optionsWithYear : options\n );\n const departureDateString = departureDate.toLocaleDateString(\n locale,\n sameYear && kanji ? options : optionsWithYear\n );\n\n return `${arrivalDateString} \\u2013 ${departureDateString}`;\n};\n\nexport interface Props {\n children: (args: {\n arrivalDate: Date | null;\n departureDate: Date | null;\n formattedStayDates: string;\n adaFormattedStayDates: string;\n stayDuration: number;\n }) => JSX.Element | null;\n}\n\nexport function useFormattedStayDates({\n language,\n arrivalDate,\n departureDate,\n}: {\n language: string;\n arrivalDate: Date | null;\n departureDate: Date | null;\n}) {\n const locale = useLocale({ language });\n const { t, ready: textReady } = useTranslation('osc-rooms');\n\n return {\n formattedStayDates:\n !!arrivalDate && !!departureDate && !!locale\n ? formatDates(arrivalDate, departureDate, locale)\n : '',\n adaFormattedStayDates:\n !!arrivalDate && !!departureDate && !!locale\n ? t('occupancy.stayDatesADA', {\n arrivalDate: arrivalDate.toLocaleDateString(locale, {\n dateStyle: 'full',\n }),\n departureDate: departureDate.toLocaleDateString(locale, { dateStyle: 'full' }),\n })\n : '',\n stayDuration:\n !!arrivalDate && !!departureDate ? differenceInDays(departureDate, arrivalDate) : 0,\n textReady,\n };\n}\n\nexport const isKanji = (locale: string | Intl.Locale) => {\n const language = localeToLanguage(locale);\n return ['ja', 'ko', 'zh-hans', 'zh-hant'].includes(language);\n};\n\nexport const isTurkish = (locale: Intl.Locale | string) => {\n const language = localeToLanguage(locale);\n return ['tr'].includes(language);\n};\n\nfunction localeToLanguage(locale: string | Intl.Locale) {\n return (\n isLocale(locale) && locale?.baseName ? locale.baseName : (locale as string)\n ).toLowerCase();\n}\n\nfunction isLocale(locale: string | Intl.Locale | undefined): locale is Intl.Locale {\n if ((locale as Intl.Locale)?.baseName) {\n return true;\n }\n return false;\n}\n\nconst defaultOptions: Intl.DateTimeFormatOptions = {\n calendar: 'gregory',\n};\n\nconst localeOptions: Record = {\n ar: {\n numberingSystem: 'latn',\n },\n};\n\nexport function useLocale({ language }: { language: string }) {\n return new Intl.Locale(language, {\n ...defaultOptions,\n ...localeOptions[language],\n });\n}\n","import Icon from '@dx-ui/osc-icon';\nimport type * as React from 'react';\nimport cx from 'classnames';\nimport { useShopFormSummaryText } from './shop-form.summary.utils';\nimport { useTranslation } from 'next-i18next';\nimport type { ShopFormRoom } from '@dx-ui/osc-rooms';\nimport { useMediaQuery } from 'usehooks-ts';\n\nexport type ShopFormSummaryProps = {\n arrivalDate: Date | null;\n className?: string;\n departureDate: Date | null;\n editButtonRef?: React.Ref;\n isExpanded: boolean;\n isLoading?: boolean;\n language: string;\n location?: string;\n onEditClick: () => void;\n rooms: ShopFormRoom[];\n showChildAges?: boolean;\n summaryType: 'search' | 'stay';\n hideRoomSummary?: boolean;\n};\n\nexport function ShopFormSummary({\n arrivalDate,\n className,\n departureDate,\n editButtonRef,\n isExpanded,\n isLoading: isLoadingProp,\n language,\n location,\n onEditClick,\n rooms,\n showChildAges,\n summaryType,\n hideRoomSummary,\n}: ShopFormSummaryProps) {\n const isLargeView = useMediaQuery('(min-width: 1024px)');\n const isSmallAndMediumView = !isLargeView;\n const { t, ready } = useTranslation('osc-shop-form');\n const { dates, adaDates, kidsAgesText, occupancy, stayDuration } = useShopFormSummaryText({\n arrivalDate,\n departureDate,\n language,\n rooms,\n showChildAges,\n });\n const titleText = summaryType === 'search' ? t('yourSearchTitleCase') : t('yourStayTitleCase');\n const editText = summaryType === 'search' ? t('editSearchTitleCase') : t('editStayTitleCase');\n const adaEditSummary =\n summaryType === 'search'\n ? t('editSearchDetails', { location, dates: adaDates, occupancy })\n : t('editStayDetails', { location: location ?? undefined, dates: adaDates, occupancy });\n\n const isLoading = isLoadingProp || !ready;\n\n const editStayButton = (\n \n {editText}\n \n );\n\n return (\n \n
    \n {isLoading ? : titleText}\n
    \n {isLoading ? (\n \n ) : isSmallAndMediumView ? (\n editStayButton\n ) : null}\n
    *:not(:first-child)]:pl-3 rtl:lg:[&>*:not(:first-child)]:pl-3 lg:[&>*]:py-2\">\n {isLoading && location ? (\n \n ) : location ? (\n
    \n \n \n {location}\n \n
    \n ) : null}\n
    \n \n {isLoading ? (\n \n ) : (\n <>\n \n {dates}{' '}\n \n ({stayDuration})\n \n \n \n {adaDates} {stayDuration}\n \n \n )}\n
    \n {hideRoomSummary ? null : (\n
    \n \n {isLoading ? (\n \n ) : (\n \n {occupancy}\n {kidsAgesText ? {kidsAgesText} : null}\n \n )}\n
    \n )}\n
    \n {isLoading ? (\n \n ) : isLargeView ? (\n editStayButton\n ) : null}\n \n );\n}\n\nfunction SkeletonLoader({\n className,\n ...rest\n}: React.DetailedHTMLProps, HTMLSpanElement>) {\n return (\n \n );\n}\n","import * as React from 'react';\nimport type { FormDataValues, ShopForm } from '../shop-form';\nimport { useTranslationsConfig } from '@dx-ui/osc-speedbump';\nimport type { Rule, Facts } from '@dx-shared/rule-engine';\nimport { RuleEngine } from '@dx-shared/rule-engine';\n\nconst DEFAULT_LANGUAGE = 'en';\n\nexport function useShopFormSpeedBump({\n locale,\n onSubmit,\n targetOHWPage,\n}: Pick, 'onSubmit' | 'targetOHWPage'> & {\n locale: string;\n}) {\n const [speedBumpData, setSpeedBumpData] = React.useState<{\n formData: FormDataValues;\n url: string | null;\n } | null>(null);\n const { translateRules } = useTranslationsConfig({ isEnabled: !!targetOHWPage });\n\n const isSpeedBumpVisible = speedBumpData !== null;\n const closeSpeedBump = () => {\n setSpeedBumpData(null);\n };\n\n const handleSpeedBumpClose = () => {\n closeSpeedBump();\n };\n const handleSpeedBumpContinue = () => {\n const url = speedBumpData?.url?.replace(`/${locale}/`, `/${DEFAULT_LANGUAGE}/`) || null;\n speedBumpData &&\n onSubmit?.({\n formData: speedBumpData.formData,\n url,\n locale: DEFAULT_LANGUAGE,\n });\n closeSpeedBump();\n };\n\n const shouldShowSpeedBump = (url?: string | null) => {\n if (url && locale && locale !== DEFAULT_LANGUAGE) {\n try {\n const ruleEngine = new RuleEngine(translateRules as Rule);\n\n return ruleEngine?.run({ language: locale, url } as Facts) === false;\n } catch (e) {\n console.warn('Error while running rule engine in shouldShowSpeedBump', e); // eslint-disable-line no-console\n return true;\n }\n }\n return false;\n };\n\n return {\n isSpeedBumpVisible,\n handleSpeedBumpClose,\n handleSpeedBumpContinue,\n shouldShowSpeedBump,\n setSpeedBumpData,\n };\n}\n","import { Dialog } from '@dx-ui/osc-dialog-v2';\nimport { useTranslation } from 'next-i18next';\n\nexport const GeocodeFailModal = ({\n isGeocodeError,\n setIsGeoCodeError,\n dialogTrigger,\n}: {\n isGeocodeError: boolean;\n setIsGeoCodeError: React.Dispatch>;\n dialogTrigger?: React.ReactNode;\n}) => {\n const { t } = useTranslation('osc-shop-form');\n\n return (\n setIsGeoCodeError(false)}\n title={t('geocodeFailModalTitle')}\n dialogTrigger={dialogTrigger}\n >\n
    \n
    {t('geocodeFailModalContent')}
    \n
    \n
    \n setIsGeoCodeError(false)}\n type=\"button\"\n >\n {t('geocodeFailModalButton')}\n \n
    \n \n );\n};\n","import type { FormProps } from '@dx-ui/osc-form';\nimport { Form, FormConnector } from '@dx-ui/osc-form';\nimport cx from 'classnames';\nimport * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport type { AdditionalQSParameters } from './shop-form.utils';\nimport { generateShopFormUrl, generateSanitizedDefaultValues } from './shop-form.utils';\nimport type { DEFAULT_FORM_VALUES } from './shop-form.constants';\nimport { ShopFormSummary } from './shop-form.summary';\nimport { useQueryClient } from '@tanstack/react-query';\nimport { serverSideGeocodeQuery } from './gql/queries';\nimport type { FormState } from 'react-hook-form';\nimport { getSafeLanguage } from '@dx-ui/framework-react-query';\nimport type { Hhonors, SpecialRates } from '@dx-ui/osc-special-rates';\nimport type { ShopFormRoom } from '@dx-ui/osc-rooms';\nimport type { ShopFormDatesProps } from './shop-form.dates';\nimport { Speedbump } from '@dx-ui/osc-speedbump';\nimport { useShopFormSpeedBump } from './hooks/use-shop-form-speedbump';\nimport type { GeocodeQuery } from './gql/types';\nimport { GeocodeFailModal } from './shop-form.geocode-fail-modal';\nimport { logError } from '@dx-ui/framework-logger';\nimport { ControlClose } from '@dx-ui/osc-controls';\n\ntype FormValues = Omit<\n typeof DEFAULT_FORM_VALUES,\n 'dates' | 'hhonors' | 'numRooms' | 'numAttendees' | 'specialRates' | 'numNights'\n> & {\n dates: {\n arrivalDate: Date | null;\n departureDate: Date | null;\n datesFlex: boolean;\n };\n hhonors: Hhonors | null;\n numRooms: number | null;\n numNights: number | null;\n numAttendees: number | null;\n specialRates: SpecialRates;\n};\n\ntype DeepPartial = T extends object\n ? {\n [P in keyof T]?: DeepPartial;\n }\n : T;\n\nexport interface FormDataValues extends FormValues {\n dates: ShopFormDatesProps;\n hhonors: Hhonors;\n rooms: ShopFormRoom[];\n}\n\nexport interface FormDefaultValues extends DeepPartial {\n dates?: Partial;\n rooms?: ShopFormRoom[];\n specialRates?: Partial;\n}\n\nexport type TargetOHWPage = 'search' | 'ten-plus-search' | 'book' | 'ten-plus-book' | 'search-zero';\n\ntype ShopForm = {\n /** Additional query string parameters that are typically pass-through parameters that are not used in widget directly */\n additionalQSParameters?: AdditionalQSParameters;\n buttonClassName?: string;\n /** override for the cta button text */\n cta?: string;\n /** initial values to set in form */\n defaultValues?: FormDefaultValues;\n /** enable to exclude the internal form provider when wrapping with \\ */\n excludeProvider?: boolean;\n isLoading?: boolean;\n /** language value passed from router */\n language: string;\n onClose?: () => void;\n onSubmit?: (args0: { formData: FormDataValues; url: string | null; locale: string }) => void;\n shouldDirtyToSubmit?: boolean;\n /** Adds screen reader text to update button **/\n submitOpensNewTab?: boolean;\n /** Target OHW page to generate URL for from onSubmit. If none passed url in onSubmit will return null */\n summaryOptions?: {\n expanded?: boolean;\n initiallyExpanded?: boolean;\n state?: FormDataValues;\n onEditClick?: () => void;\n showChildAges?: boolean;\n summaryClassName?: string;\n summaryWrapperClassName?: string;\n suppressHeader?: boolean;\n hideRoomSummary?: boolean;\n type: 'search' | 'stay';\n };\n /** Target OHW page to generate URL for from onSubmit. If none passed url in onSubmit will return null */\n targetOHWPage?: TargetOHWPage;\n /** optional title of the form */\n title?: string;\n wrapperClassName?: string;\n useFormProps?: Pick & {\n defaultValues?: FormDefaultValues;\n };\n /**Opt-in to route flex date searches to locations page results -
    \n * Once routed to dream flow, dates and flexible date selection will be wiped
    \n * If user selects again in dream flow, will be routed to search flow flex dates experience.\n */\n enableDatesFlexDreamRouting?: boolean;\n baseUrl?: string;\n canAlwaysSubmit?: boolean;\n onSubmitClick?: (formState: FormState) => void;\n renderAfterUpdateButton?: React.ReactNode;\n shouldDisplayGeocodeErrorModal?: boolean;\n /** Override for the Error Banner Defaults to displaying */\n hasErrorBanner?: boolean | undefined;\n} & Omit;\n\nexport const wrapperClassNameDefault = [\n 'container', // container needs to be first for wrappers to slice(1) to remove\n 'relative',\n 'flex',\n 'flex-wrap',\n 'items-end',\n 'justify-center',\n 'gap-2',\n 'lg:gap-3',\n 'lg:flex-nowrap',\n];\n\nexport const wrapperClassNameDefaultWithLocation = [...wrapperClassNameDefault, 'lg:mb-6'];\n\n/**\n * The OSC shop form is an extended version of the OSC form component with some key additional features:\n *\n * `defaultValues` is somewhat strictly typed with `FormDefaultValues`. This allows consumers to pass in search-specific defaults like dates, room parameters, and special rates. The defaults also allow us to handle business logic cases—such as generating valid search URLs—more easily.\n\nTo use more freeform form values, consider using [the OSC `
    ` component instead](https://nx-storybook-ui.dig-t.hhc.hilton.com/?path=/docs*library-components-form--combining-form-components).\n *\n * Use the `additionalQSParameters` prop to include any “passthrough” query strings. `displayCurrency` are used to ensure the URL returned from `onFormSubmit()` is generated properly.\n *\n * Certain error handling is built in and standardized. For example, if a user tries to select a freeform rate while trying to use points, the form displays messaging that lets the user know they cannot use both points and freeform rates.\n *\n * The `targetOHWPage` allows for auto generation of a specific OHW page URL as part of the `onSubmit` callback. The resulting URI is only valid if consumers pass the correct initial values into `additionalQSParameters` and `defaultValues` props.\n */\nexport const ShopForm: React.FC> = ({\n additionalQSParameters,\n buttonClassName,\n children,\n cta,\n defaultValues,\n excludeProvider,\n isLoading: isLoadingProp,\n language,\n onClose,\n onSubmit,\n shouldDirtyToSubmit = false,\n onSubmitClick,\n canAlwaysSubmit = false,\n submitOpensNewTab,\n summaryOptions,\n targetOHWPage,\n title,\n wrapperClassName,\n enableDatesFlexDreamRouting = false,\n renderAfterUpdateButton,\n shouldDisplayGeocodeErrorModal = false,\n hasErrorBanner,\n useFormProps,\n ...rest\n}) => {\n const client = useQueryClient();\n const formContentRef = React.useRef(null);\n const editButtonRef = React.useRef(null);\n const [\n {\n hasLocationInput,\n hasRoomsButton,\n hasSpecialRatesButton,\n hasNumRoomsButton,\n hasNumAttendeesButton,\n },\n setElementState,\n ] = React.useState>(getElementState(formContentRef.current));\n const { t, ready } = useTranslation(['osc-link', 'osc-shop-form']);\n const isLoading = !ready || isLoadingProp;\n const [isExpanded, setIsExpanded] = React.useState(\n !!summaryOptions?.initiallyExpanded || !summaryOptions\n );\n const [isGeocodeError, setIsGeoCodeError] = React.useState(false);\n const expanded = !!summaryOptions?.expanded || isExpanded;\n const locale = React.useMemo(() => getSafeLanguage(language), [language]);\n const {\n isSpeedBumpVisible,\n handleSpeedBumpClose,\n handleSpeedBumpContinue,\n shouldShowSpeedBump,\n setSpeedBumpData,\n } = useShopFormSpeedBump({ locale, onSubmit, targetOHWPage });\n\n //React hook form doesn't recommend undefined defaultValues. So merge user values with defaults object to pass into consumer form values.\n const defaultValuesWithDefaults = React.useMemo(\n () => generateSanitizedDefaultValues(defaultValues),\n [defaultValues]\n );\n\n const [internalSummaryState, setInternalSummaryState] =\n React.useState(defaultValuesWithDefaults);\n const summaryState = summaryOptions?.state || internalSummaryState;\n\n const onFormSubmit = async (data: FormDataValues) => {\n const formData = {\n ...data,\n rooms: data.rooms.map((room) => ({\n adults: room.adults,\n children: room.children.map((c) => {\n return { age: Number.isNaN(c.age) ? null : c.age };\n }),\n })),\n };\n setInternalSummaryState(formData);\n\n const hasGeoCodeInput = formData.query || formData.placeId;\n const hasFlexDates = formData.dates.datesFlex && enableDatesFlexDreamRouting;\n const shouldAttemptToGeocode =\n hasGeoCodeInput && (hasFlexDates || shouldDisplayGeocodeErrorModal);\n\n let geocodeData: GeocodeQuery = {};\n\n if (shouldAttemptToGeocode) {\n try {\n geocodeData = await serverSideGeocodeQuery(client, {\n address: formData?.query,\n placeId: formData?.placeId,\n sessionToken: formData?.sessionToken,\n language: locale || 'en',\n });\n\n if (!geocodeData?.geocode && shouldDisplayGeocodeErrorModal) return setIsGeoCodeError(true);\n } catch (error) {\n if (error instanceof Error || typeof error === 'string')\n logError('OSC_SHOP_FORM', error, 'failed to fetch geocode data');\n if (shouldDisplayGeocodeErrorModal) {\n return setIsGeoCodeError(true);\n }\n }\n }\n\n if (onSubmit) {\n const url = targetOHWPage\n ? await generateShopFormUrl({\n additionalQSParameters,\n formData,\n locale,\n targetOHWPage,\n enableDatesFlexDreamRouting,\n geocodeData,\n client,\n })\n : null;\n\n if (shouldShowSpeedBump(url)) {\n setSpeedBumpData({ formData, url });\n return;\n }\n onSubmit({ formData, url, locale });\n }\n };\n\n React.useEffect(() => {\n if (!isLoading && expanded) {\n setElementState(getElementState(formContentRef.current));\n }\n }, [expanded, isLoading]);\n\n function closeShopForm() {\n setIsExpanded(false);\n onClose?.();\n editButtonRef?.current?.focus();\n }\n const formContent = (\n >\n {({ formState }) => {\n const { isValid, isDirty } = formState;\n const canSubmit =\n canAlwaysSubmit || (summaryOptions || shouldDirtyToSubmit ? isValid && isDirty : isValid);\n\n return (\n
    \n \n {summaryOptions ? (\n \n {\n summaryOptions?.onEditClick?.();\n if (summaryOptions?.expanded === undefined) {\n setIsExpanded(true);\n }\n }}\n rooms={summaryState.rooms}\n showChildAges={summaryOptions.showChildAges}\n summaryType={summaryOptions.type}\n hideRoomSummary={summaryOptions.hideRoomSummary}\n isExpanded={expanded}\n editButtonRef={editButtonRef}\n />\n
    \n ) : null}\n {!isLoading && expanded ? (\n
    \n {!!title && (\n

    {title}

    \n )}\n \n {summaryOptions && !summaryOptions.suppressHeader && !hasLocationInput ? (\n \n {summaryOptions.type === 'search'\n ? t('osc-shop-form:editSearchTitleCase')\n : t('osc-shop-form:editStayTitleCase')}\n \n ) : null}\n {children}\n
    \n onSubmitClick(formState) })}\n className={\n buttonClassName ||\n 'shop-form-btn-submit btn btn-lg w-full px-4 motion-safe:transition md:w-auto md:flex-1'\n }\n type=\"submit\"\n >\n {cta || t('osc-shop-form:ctaButton')}\n {submitOpensNewTab ? (\n {t('osc-link:newTab')}\n ) : null}\n \n
    \n {renderAfterUpdateButton}\n {summaryOptions ? (\n \n ) : null}\n
    \n \n ) : null}\n {isSpeedBumpVisible ? (\n \n ) : null}\n \n );\n }}\n \n );\n\n if (excludeProvider) {\n return (\n >\n {({ handleSubmit }) => (\n \n {formContent}\n \n )}\n \n );\n }\n\n return (\n \n {formContent}\n \n );\n};\n\nfunction getElementState(formContentElement: HTMLDivElement | null) {\n return {\n hasLocationInput: formContentElement?.querySelector('[data-reach-combobox]'),\n hasRoomsButton: formContentElement?.querySelector('[data-osc-product=\"search-rooms-button\"]'),\n hasSpecialRatesButton: formContentElement?.querySelector(\n '[data-osc-product=\"search-rates-button\"]'\n ),\n hasNumRoomsButton: formContentElement?.querySelector('#shop-form-numRooms'),\n hasNumAttendeesButton: formContentElement?.querySelector('#shop-form-numAttendees'),\n };\n}\n\nexport default ShopForm;\n","import { useEffect, useRef } from 'react';\n\nfunction usePreviousValue(value: T) {\n const ref = useRef(value);\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n}\n\nexport { usePreviousValue };\n","export * from './use-previous-value';\n","export * from './lib';\n","import { useMemo, useEffect } from 'react';\nimport type { UseFormProps } from 'react-hook-form';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { usePreviousValue } from '@dx-ui/utilities-use-previous-value';\nimport type { FormDataValues, FormDefaultValues } from './shop-form';\nimport { generateSanitizedDefaultValues } from './shop-form.utils';\nimport isEqual from 'lodash/isEqual';\nimport { useQuery, useQueryClient } from '@tanstack/react-query';\n\ntype SearchForProviderProps = React.PropsWithChildren<\n Omit, 'defaultValues'> & { defaultValues?: FormDefaultValues }\n>;\n\n/**\n * Use `` when shop form state needs to be shared across multiple components e.g. `` itself and an external `` used on the same page.\n * When using with `` make sure to set excludeProvider to true ``.\n */\nexport function ShopFormProvider({ children, ...formProps }: SearchForProviderProps) {\n const defaultValuesWithDefaults = useMemo(\n () => generateSanitizedDefaultValues(formProps.defaultValues),\n [formProps.defaultValues]\n );\n const previousDefaultValues = usePreviousValue(defaultValuesWithDefaults);\n const methods = useForm({\n mode: 'onTouched',\n criteriaMode: 'all',\n ...formProps,\n defaultValues: defaultValuesWithDefaults,\n });\n const reset = methods.reset;\n const { defaultValues, setShopFormDefaultValues } = useShopFormDefaultValues();\n\n useEffect(() => {\n if (!isEqual(defaultValues, defaultValuesWithDefaults)) {\n setShopFormDefaultValues(defaultValuesWithDefaults);\n }\n if (!isEqual(previousDefaultValues, defaultValuesWithDefaults)) {\n reset(defaultValuesWithDefaults);\n }\n }, [\n defaultValues,\n defaultValuesWithDefaults,\n reset,\n previousDefaultValues,\n setShopFormDefaultValues,\n ]);\n\n return {children};\n}\n\nexport function useShopFormDefaultValues() {\n const queryClient = useQueryClient();\n const queryKey = ['oscShopFormDefaultValues'];\n const { data: defaultValues } = useQuery({ queryKey, enabled: false });\n const setShopFormDefaultValues = (defaultValues: FormDefaultValues) => {\n queryClient.setQueryData(queryKey, defaultValues);\n };\n return {\n defaultValues,\n setShopFormDefaultValues,\n };\n}\n","import type * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport { Location } from '@dx-ui/osc-location';\n\n/**\n * Use the `` component inside of the ShopForm in order to provide the OSC experience for querying the location used to search.\n */\nexport const ShopFormLocation: React.FC<\n React.PropsWithChildren> & Pick\n> = ({ label, language, placeholder, ...rest }) => {\n const [t] = useTranslation('osc-location');\n return (\n
    \n \n
    \n );\n};\n","import type { SupportedLanguage } from '@dx-ui/framework-i18n';\nimport {\n startOfWeek,\n differenceInCalendarDays,\n addDays,\n getDaysInMonth,\n eachDayOfInterval,\n endOfMonth,\n getDay,\n subDays,\n} from 'date-fns';\n\nexport const MAX_CALENDAR_DAYS = 42; // maximum day slots a calendar can have\n\nexport const DEFAULT_LANGUAGE = 'en' as SupportedLanguage;\n\nexport const DEFAULT_LOCALE_OPTIONS = {\n calendar: 'gregory',\n};\n\nexport const LOCALE_OPTIONS: Partial<\n Record, Partial>\n> = {\n ar: {\n numberingSystem: 'latn',\n },\n};\n\nexport const weekStartsOn = (locale: Intl.Locale) => {\n const key = `${locale.language}${locale.script ? `-${locale.script.toLocaleLowerCase()}` : ''}`;\n return key ? weekStartsOnLocale[key] : 0;\n};\n\nexport function getDaysSplitByWeeks({\n date,\n locale,\n}: {\n date: Date;\n locale: Intl.Locale;\n}): Date[][] {\n const startDay = differenceInCalendarDays(\n date,\n startOfWeek(date, { weekStartsOn: weekStartsOn(locale) })\n );\n const days = eachDayOfInterval({\n start: subDays(date, startDay),\n end: addDays(endOfMonth(date), MAX_CALENDAR_DAYS - (getDay(date) + getDaysInMonth(date))),\n });\n const w: Date[][] = [];\n while (days.length > 0) {\n w.push(days.splice(0, 7));\n }\n return w;\n}\n\nexport const isKanji = (locale?: Intl.Locale) =>\n locale?.language && ['ja', 'ko', 'zh'].includes(locale?.language);\nexport const isLocale = (language: string, locale?: Intl.Locale) =>\n locale?.language && language === locale.language;\nexport const isArabic = (locale?: Intl.Locale) =>\n locale?.language && ['ar'].includes(locale?.language);\n\nconst weekStartsOnLocale: Record = {\n en: 0,\n ar: 6,\n bg: 1,\n cs: 1,\n da: 1,\n fi: 1,\n fr: 1,\n id: 1,\n nl: 1,\n de: 1,\n it: 1,\n ja: 0,\n ko: 0,\n no: 1,\n pl: 1,\n pt: 1,\n ro: 1,\n ru: 1,\n es: 1,\n sv: 1,\n th: 0,\n tr: 1,\n 'zh-hans': 0,\n 'zh-hant': 0,\n};\n","import { addDays, startOfWeek } from 'date-fns';\nimport { useMemo } from 'react';\nimport { isArabic, weekStartsOn } from './utils';\n\nexport type UseDaysOfWeek = {\n /** The locale used to get the in-language days of the week. */\n locale: Intl.Locale;\n /** The option to use when formatting the days of the wekk. @see Intl.DateTimeFormatOptions['weekday'] */\n format?: Intl.DateTimeFormatOptions['weekday'];\n /**\n * **deprecated** whether to use the format overrides or not\n * @deprecated\n */\n override?: boolean;\n};\n\n/**\n * Provides the days of the week for a given locale. The format for each day is determined by the `format` property.\n * This hook will order the days of the week based on the day the week starts for the given `locale`.\n *\n * #### Overrides\n * If the `override` flag is enabled, the following languages produce these day of week instead of the native support\n *\n * | Language | Short Days of Week |\n * |--------|-------------------|\n * | bg | 'пон', 'вто', 'сря', 'чет', 'пет', 'съб', 'нед' |\n * | cs | 'pon', 'úte', 'stř', 'čtv', 'pát', 'sob', 'ned' |\n * | ru | 'пнд', 'втр', 'срд', 'чтв', 'птн', 'суб', 'вск' |\n * | th | 'อาทิตย์', 'จันทร์', 'อังคาร', 'พุธ', 'พฤหัสบดี', 'ศุกร์', 'เสาร์' |\n */\nexport const useDaysOfWeek = ({\n locale,\n format = 'short',\n override = true,\n}: UseDaysOfWeek): Array =>\n useMemo(() => {\n if (!locale) {\n return [];\n }\n const options = {\n weekday: isArabic(locale) ? 'long' : format,\n };\n let days;\n if (format === 'short' && override) {\n days = locale.baseName ? FORMAT_SHORT_OVERRIDES[locale.baseName] : undefined;\n }\n if (!days) {\n const startDate = startOfWeek(new Date(), {\n weekStartsOn: weekStartsOn(locale),\n });\n days = [...Array(7)].map((n, i) => {\n const day = addDays(startDate, i);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return day.toLocaleDateString(locale, options);\n });\n }\n return days;\n }, [locale, format, override]);\n\n/** these languages only supply 2 character short weekday values with Intl.DateTimeFormat */\nconst FORMAT_SHORT_OVERRIDES: Record> = {\n bg: ['пон', 'вто', 'сря', 'чет', 'пет', 'съб', 'нед'],\n cs: ['pon', 'úte', 'stř', 'čtv', 'pát', 'sob', 'ned'],\n ru: ['пнд', 'втр', 'срд', 'чтв', 'птн', 'суб', 'вск'],\n th: ['อาทิตย์', 'จันทร์', 'อังคาร', 'พุธ', 'พฤหัสบดี', 'ศุกร์', 'เสาร์'],\n};\n\nexport default useDaysOfWeek;\n","import { getDay } from 'date-fns';\nimport { useMemo } from 'react';\nimport { useDaysOfWeek } from './use-days-of-week';\nimport capitalize from 'lodash/capitalize';\nimport { DEFAULT_LOCALE_OPTIONS, isKanji, LOCALE_OPTIONS, weekStartsOn } from './utils';\n\ntype AdditionalFormatOptions = {\n monthName?: Intl.DateTimeFormatOptions['month'];\n};\n\nexport type UseDateFormatPartTypes = 'day' | 'month' | 'year' | 'weekday';\n\nexport type UseDateFormatOptions = Pick &\n AdditionalFormatOptions;\n\nexport const DEFAULT_FORMAT_OPTIONS: UseDateFormatOptions = {\n day: 'numeric',\n month: 'numeric',\n year: 'numeric',\n weekday: 'short',\n monthName: 'short',\n};\n\ntype FormatPart = { numeric: string; text: string };\n\nexport type DateFormat = {\n day: FormatPart;\n month: FormatPart;\n year: FormatPart;\n weekday: string;\n};\n\ntype UseDateFormatter = {\n /**\n * Date to format\n */\n date: Date | null;\n /**\n * The language locale to use to format the date\n */\n locale: Intl.Locale;\n /**\n * Format options for the given date. There are options to format both\n * text output and date output. [Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat)\n */\n options?: UseDateFormatOptions;\n};\n\nexport function formatDateAndText(\n date: Date | null,\n locale: Intl.Locale,\n part: UseDateFormatPartTypes,\n options: UseDateFormatOptions\n) {\n const config = {\n ...DEFAULT_LOCALE_OPTIONS,\n ...LOCALE_OPTIONS[locale.baseName || ''],\n ...options,\n } as const;\n const formatter = new Intl.DateTimeFormat(locale.toString(), config);\n const parts = date && formatter.formatToParts(date);\n const isNumeric = options[part] === 'numeric';\n let numeric;\n let text;\n if (isNumeric) {\n numeric = parts?.find(({ type }) => type === part)?.value || '';\n const value = parts?.find(({ type }) => type === 'literal')?.value?.trim() || '';\n text = value.match(/^[,.]$/) ? '' : value;\n } else {\n numeric = '';\n text = parts?.find(({ type }) => type === part)?.value?.trim() || '';\n }\n return { numeric, text };\n}\n\n/**\n * Date Formatter that provides the parts of the date broken up into `text` values and `numeric` values.\n *\n * ### Special Format Cases\n * There are are few special cases where we override the default text formats to provide in-language text support for dates\n *\n * #### Kanji\n * Kanji based languages which are `Japanese`, `Korean`, `Traditional Chinese` and `Simplified Chinese` default override will use `{ weekday: 'long' }`\n *\n * #### Bulgarian\n * There is an [issue with bulgarian](https://www.unicode.org/cldr/cldr-aux/charts/31/summary/bg.html), where the short month format is missing.\n * In order to obtain this format additional settings are required, in particular `{ weekday: 'long' }`\n */\nexport const useDateFormat = ({\n date,\n locale,\n options = DEFAULT_FORMAT_OPTIONS,\n}: UseDateFormatter): DateFormat => {\n const config = useMemo(\n () => ({\n ...DEFAULT_FORMAT_OPTIONS,\n ...options,\n }),\n [options]\n );\n if (isKanji(locale)) {\n config.weekday = 'long';\n }\n const daysOfWeek = useDaysOfWeek({ locale, format: config.weekday });\n return useMemo(() => {\n if (!date) {\n return {\n day: { numeric: '', text: '' },\n month: { numeric: '', text: '' },\n year: { numeric: '', text: '' },\n weekday: '',\n };\n }\n\n const day = formatDateAndText(date, locale, 'day', { day: config.day });\n const month = formatDateAndText(date, locale, 'month', {\n month: config.month,\n });\n const year = formatDateAndText(date, locale, 'year', { year: config.year });\n // get the index day of the week from date-fns\n const dayIndex = getDay(date);\n // find the array index value\n const weekStart = weekStartsOn(locale) ?? 0;\n const index = dayIndex - weekStart;\n const weekday = daysOfWeek.at(index) || '';\n\n // find a month text if there is not one supplied already\n if (month.text.trim() === '') {\n month.text = formatDateAndText(date, locale, 'month', {\n month: config.monthName,\n }).text;\n /** bug with bulgarian short month format. short format for month is tied to additional settings\n * @see https://www.unicode.org/cldr/cldr-aux/charts/31/summary/bg.html */\n if (locale.baseName === 'bg') {\n const monthConfig = {\n ...config,\n ...{ month: config.monthName, weekday: 'long' as const },\n };\n month.text = formatDateAndText(date, locale, 'month', monthConfig).text;\n }\n }\n // process capitilization\n if (['ru', 'es'].includes(locale.baseName)) {\n month.text = capitalize(month.text);\n }\n\n return {\n day,\n month,\n year,\n weekday,\n };\n }, [config, date, daysOfWeek, locale]);\n};\n\nexport default useDateFormat;\n","import { useMemo } from 'react';\nimport type { SupportedLanguage } from '@dx-ui/framework-i18n';\nimport { DEFAULT_LANGUAGE, DEFAULT_LOCALE_OPTIONS, LOCALE_OPTIONS } from './utils';\n\ntype UseLocale = {\n /** The supported language code to use */\n language: StringWithAutocompleteOptions;\n /** Any date format options to use. In addition to the default setting, The numbering system for the `ar` language code is set to `latn` */\n options?: Intl.DateTimeFormatOptions;\n};\n\n/**\n * Used to obtain the [Intl.Locale](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale).\n */\nexport const useLocale = ({\n language = DEFAULT_LANGUAGE,\n options = DEFAULT_LOCALE_OPTIONS,\n}: UseLocale): Intl.Locale =>\n useMemo(\n () =>\n new Intl.Locale(language, {\n ...DEFAULT_LOCALE_OPTIONS,\n ...LOCALE_OPTIONS[language],\n ...options,\n }),\n [language, options]\n );\n\nexport default useLocale;\n","export * from './utils';\nexport * from './use-days-of-week';\nexport * from './use-date-format';\nexport * from './use-locale';\n","export * from './lib';\n","import Icon from '@dx-ui/osc-icon';\nimport { useIsClient } from 'usehooks-ts';\nimport { isKanji, useLocale, useDateFormat } from '@dx-ui/utilities-dates';\nimport cx from 'classnames';\nimport type * as React from 'react';\n\ntype DatePickerDatesButton = {\n children?: React.ReactNode;\n className?: HTMLDivElement['className'];\n day: Date;\n dayTextColorClassName?: string;\n language: string;\n isReducedSize?: boolean;\n};\n\nconst DatePickerDatesButton: React.FC> = ({\n className,\n children,\n day,\n dayTextColorClassName = 'text-primary',\n language,\n isReducedSize,\n}) => {\n const locale = useLocale({ language });\n const kanji = isKanji(locale) as boolean;\n const options = kanji ? { weekday: 'long' as Intl.DateTimeFormatOptions['weekday'] } : {};\n const dateFormatParts = useDateFormat({ date: day, locale, options });\n const isClient = useIsClient();\n\n const reducedSubTextSize = {\n 'text-xs': isReducedSize,\n 'text-base': !isReducedSize,\n };\n\n if (!day) {\n return (\n \n \n {children ? (\n \n {children}\n \n ) : null}\n \n );\n }\n\n if (!isClient) {\n return (\n \n \n \n );\n }\n\n return kanji ? (\n \n \n \n {dateFormatParts.month.numeric}\n {dateFormatParts.month.text}\n \n \n \n \n {dateFormatParts.day.numeric}\n {dateFormatParts.day.text}\n \n \n {dateFormatParts.weekday}\n \n \n \n ) : (\n \n \n {dateFormatParts.day.numeric}\n \n \n \n {dateFormatParts.month.text}\n \n \n {dateFormatParts.weekday}\n \n \n \n );\n};\n\nexport { DatePickerDatesButton };\nexport default DatePickerDatesButton;\n","import * as React from 'react';\nimport cx from 'classnames';\n\ntype CalendarDay = {\n /**\n * is a date within the selected range\n */\n inRange?: boolean;\n /**\n * applies UI to denote that it is the current date\n */\n isToday?: boolean;\n /**\n * is either the `day` or `endDay`\n */\n selected?: boolean;\n /**\n * applies UI for a highlighted date\n */\n highlighted?: boolean;\n} & React.ButtonHTMLAttributes;\n\n/**\n * Displays a calendar day as a button\n */\nconst CalendarDay = React.forwardRef(\n ({ className, inRange, isToday, selected, highlighted, ...rest }, forwardedRef) => (\n \n )\n);\n\nCalendarDay.displayName = 'CalendarDay';\n\nexport { CalendarDay };\nexport default CalendarDay;\n","import {\n getDaysSplitByWeeks,\n useDaysOfWeek,\n isKanji,\n useDateFormat,\n DEFAULT_LANGUAGE,\n} from '@dx-ui/utilities-dates';\nimport cx from 'classnames';\nimport {\n addDays,\n format,\n isAfter,\n isBefore,\n isFirstDayOfMonth,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n lastDayOfWeek,\n startOfDay,\n startOfMonth,\n startOfWeek,\n subDays,\n} from 'date-fns';\nimport * as React from 'react';\nimport { CalendarDay } from './calendar.day';\n\ntype CalendarMonth = {\n /**\n * selected day or start day when a range is allowed\n */\n day?: Date;\n /**\n * selected end day when a range is allowed\n */\n endDay?: Date;\n /**\n * furthest date available to book\n */\n maxDays?: number;\n /**\n * allow ability to select previous months\n */\n allowPrevious?: boolean;\n /**\n * month to display, should be passed as the first day of the month, can use `startOfMonth(someDate)` from the date-fns lib\n */\n month?: Date;\n /**\n * locale for i18n\n */\n locale: Intl.Locale;\n /**\n * callback when a day is selected\n */\n onDayChange: (day?: Date) => void;\n focusedDay?: number;\n onFocusedDayChange: (d: number, newD?: number) => void;\n isVisibleMonth?: boolean;\n dayLabel?: (d: Date, isStartDay?: boolean) => string;\n /**\n * marked as current date, can be set to any date\n */\n today?: Date;\n /**\n * If using a string, it must be in the `yyyy-MM-dd` format\n */\n highlightedDates?: Array;\n /**\n * If using a string, it must be in the `yyyy-MM-dd` format\n */\n enabledDates?: Array;\n} & React.HTMLAttributes;\n\nconst FORMAT = 'yyyy-MM-dd';\n\n/**\n * displays a calendar month\n */\nconst CalendarMonth = React.forwardRef(\n (\n {\n day,\n endDay,\n maxDays = 730,\n allowPrevious,\n month: passedMonth,\n onDayChange,\n locale,\n className,\n onFocusedDayChange,\n isVisibleMonth,\n dayLabel,\n today = new Date(),\n highlightedDates: passedHighlightedDates = [],\n enabledDates: passedEnabledDates = [],\n },\n forwardedRef\n ) => {\n const month = passedMonth || startOfMonth(today);\n\n const dateToString = (d: Date | string) => {\n const isDate = d instanceof Date;\n const parsedDate = isDate ? ['', '', ''] : d.split('-');\n const date: Date = isDate\n ? d\n : new Date(\n parseInt(parsedDate[0] ?? '', 10),\n parseInt(parsedDate[1] ?? '', 10) - 1,\n parseInt(parsedDate[2] ?? '', 10)\n );\n return format(date, FORMAT);\n };\n\n const highlightedDates = React.useMemo(\n () => passedHighlightedDates.map(dateToString),\n [passedHighlightedDates]\n );\n\n const enabledDates = React.useMemo(\n () => passedEnabledDates.map(dateToString),\n [passedEnabledDates]\n );\n\n const weeks: Date[][] = React.useMemo(\n () => getDaysSplitByWeeks({ date: month, locale }),\n [month, locale]\n );\n const week = useDaysOfWeek({ locale });\n const formattedDate = useDateFormat({\n date: month,\n locale,\n options: { monthName: 'long' },\n });\n const header = isKanji(locale)\n ? `${formattedDate.year.numeric}${formattedDate.year.text} ${formattedDate.month.numeric}${formattedDate.month.text}`\n : `${formattedDate.month.text} ${formattedDate.year.numeric}`;\n const id = React.useId();\n const monthId = `calendar-month-${id}`;\n\n return (\n
    \n \n {header}\n \n \n \n \n {week.map((weekday) => (\n \n ))}\n \n \n \n {weeks.map((w, i) => (\n \n {w.map((d) => {\n if (d) {\n const selected = (day && isSameDay(d, day)) || (endDay && isSameDay(d, endDay));\n const tab0 =\n selected || isSameDay(d, today) || (isVisibleMonth && isFirstDayOfMonth(d));\n const disabled = enabledDates.length\n ? !enabledDates.includes(format(d, FORMAT))\n : allowPrevious\n ? false\n : isBefore(d, startOfDay(today)) || isAfter(d, addDays(today, maxDays));\n const inRange =\n day && endDay ? isWithinInterval(d, { start: day, end: endDay }) : false;\n const highlighted = highlightedDates.includes(format(d, FORMAT));\n\n const selectDay = () => onDayChange(d);\n const onKeyDown = (e: React.KeyboardEvent) => {\n let flag = false;\n switch (e.key) {\n case ' ':\n case 'Enter':\n selectDay();\n flag = true;\n break;\n case 'ArrowRight':\n onFocusedDayChange(d.getTime(), addDays(d, 1).getTime());\n break;\n case 'ArrowLeft':\n onFocusedDayChange(d.getTime(), subDays(d, 1).getTime());\n flag = true;\n break;\n case 'ArrowDown':\n onFocusedDayChange(d.getTime(), addDays(d, 7).getTime());\n flag = true;\n break;\n case 'ArrowUp':\n onFocusedDayChange(d.getTime(), subDays(d, 7).getTime());\n flag = true;\n break;\n case 'Home':\n onFocusedDayChange(d.getTime(), startOfWeek(d).getTime());\n flag = true;\n break;\n case 'End':\n onFocusedDayChange(d.getTime(), lastDayOfWeek(d).getTime());\n flag = true;\n break;\n default:\n break;\n }\n if (flag) {\n e.stopPropagation();\n e.preventDefault();\n }\n };\n\n return (\n \n );\n }\n return null;\n })}\n \n ))}\n \n
    \n {weekday}\n
    \n {isSameMonth(d, month) ? (\n ) => {\n if (evt.clientX && evt.clientY) {\n selectDay();\n }\n }}\n onFocus={() => onFocusedDayChange(d.getTime())}\n tabIndex={tab0 ? 0 : -1}\n >\n {dayLabel ? dayLabel(d) : ''}\n \n {d.toLocaleDateString(DEFAULT_LANGUAGE, {\n day: 'numeric',\n })}\n \n \n ) : null}\n
    \n
    \n );\n }\n);\n\nCalendarMonth.displayName = 'CalendarMonth';\n\nexport { CalendarMonth };\nexport default CalendarMonth;\n","import {\n addMonths,\n format,\n isAfter,\n isBefore,\n isSameDay,\n isSameMonth,\n startOfMonth,\n subMonths,\n addDays,\n} from 'date-fns';\nimport * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\nimport { ControlBack, ControlNext } from '@dx-ui/osc-controls';\nimport type { CalendarMonth as CalendarMonthType } from './calendar.month';\nimport { CalendarMonth } from './calendar.month';\nimport { sendReward } from '@dx-ui/framework-conductrics';\n\nconst INPUT_FORMAT = 'yyyy-MM-dd';\n\nexport type Calendar = {\n /**\n * Used for giving unique ids based on the form in which it is used\n */\n formId?: string;\n /**\n * When used in a form this will be the key of the `day` i.e. `arrivalDate`\n */\n dayId?: string;\n /**\n * When used in a form this will be the key of the `endDay` i.e. `departureDate`\n */\n endDayId?: string;\n /**\n * Whether or not to allow selecting the same day for both `day` and `endDay`\n */\n allowSameDay?: boolean;\n onEndDayChange?: (day?: Date) => void;\n /**\n * the a11y instructions for the calendar\n */\n instructions?: string;\n /**\n * used in a live region to possibly give context to the selected date(s)\n */\n message?: string;\n /** to display the content of a month tab selector component before the calendar dates view */\n MonthDateSelectorComponent?: ({\n selectedCalendarDate,\n onMonthUpdate,\n }: {\n selectedCalendarDate: Date;\n onMonthUpdate: (d: Date) => void;\n }) => React.ReactNode;\n} & React.HTMLAttributes &\n Pick<\n CalendarMonthType,\n | 'day'\n | 'endDay'\n | 'onDayChange'\n | 'maxDays'\n | 'locale'\n | 'dayLabel'\n | 'allowPrevious'\n | 'today'\n | 'highlightedDates'\n | 'enabledDates'\n >;\n\n/**\n * A component to display calendars for selection of a date or date range. can be used in conjunction with a popup or inline.\n */\nexport const Calendar: React.FC> = ({\n allowSameDay,\n allowPrevious,\n children,\n locale,\n day,\n endDay,\n maxDays,\n onDayChange,\n onEndDayChange,\n dayLabel,\n instructions,\n message,\n formId,\n dayId,\n endDayId,\n highlightedDates,\n enabledDates,\n today = new Date(),\n MonthDateSelectorComponent,\n ...rest\n}) => {\n const ref = React.useRef(null);\n const month0Ref = React.useRef(null);\n const month1Ref = React.useRef(null);\n const [focusedDay, setFocusedDay] = React.useState();\n const previousMonthRef = React.useRef(null);\n const nextMonthRef = React.useRef(null);\n const [month, setMonth] = React.useState(startOfMonth(day || today));\n const [t] = useTranslation('osc-calendar');\n const nextDay = day ? addDays(day, 1) : day;\n const prevDisabled = allowPrevious ? false : isSameMonth(month, today);\n const selectedDateRef = React.useRef(day || today);\n\n const onChangeDay = (d?: Date) => {\n if (onEndDayChange && d) {\n if (day && !endDay) {\n if (allowSameDay) {\n /**\n * Handle cases where `allowSameDay` is true\n */\n if (isSameDay(d, day) || isAfter(d, day)) {\n onEndDayChange(d);\n } else if (isBefore(d, day)) {\n onDayChange(d);\n }\n } else {\n /**\n * Handle cases where `allowSameDay` is false\n */\n // eslint-disable-next-line no-lonely-if\n if (isAfter(d, day)) {\n onEndDayChange(d);\n } else if (isBefore(d, day)) {\n onDayChange(d);\n }\n }\n } else {\n onDayChange(d);\n onEndDayChange(undefined);\n }\n } else {\n onDayChange(d);\n }\n if (MonthDateSelectorComponent && d) {\n selectedDateRef.current = d;\n }\n sendReward('g-date-selector-interaction-total');\n };\n\n const getDayLabel = (d: Date) => {\n if (dayLabel) {\n if (onEndDayChange && d) {\n if (day && !endDay) {\n if (allowSameDay) {\n if (isSameDay(d, day) || isAfter(d, day)) {\n return dayLabel(d, false);\n }\n if (isBefore(d, day)) {\n return dayLabel(d, true);\n }\n } else {\n if (isAfter(d, day)) {\n return dayLabel(d, false);\n }\n if (isBefore(d, day)) {\n return dayLabel(d, true);\n }\n }\n } else {\n return dayLabel(d, true);\n }\n } else {\n return dayLabel(d, true);\n }\n return dayLabel(d);\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return d.toLocaleDateString(locale, { dateStyle: 'full' });\n };\n\n const onMonthChange = (d: Date) => {\n setMonth(d);\n };\n\n const onFocusedDayChange = (d: number, newD?: number, monthNumber?: number) => {\n if (newD) {\n setFocusedDay(newD);\n const monthInFocus = monthNumber === 0 ? month : addMonths(month, 1);\n if (!isSameMonth(monthInFocus, newD)) {\n if (newD > d) {\n if (monthNumber === 0 && !!month1Ref.current?.offsetParent) return;\n onMonthChange(addMonths(month, 1));\n }\n if (newD < d && monthNumber === 0) {\n onMonthChange(subMonths(month, 1));\n }\n }\n }\n };\n\n React.useEffect(() => {\n if (ref.current) {\n requestAnimationFrame(() => {\n const element = ref.current?.querySelector(`#day-${focusedDay}`);\n if (element) {\n element.focus();\n }\n });\n }\n }, [focusedDay, ref]);\n\n return (\n
    \n {!!day && (\n <>\n \n \n \n )}\n {MonthDateSelectorComponent ? (\n \n ) : null}\n \n onMonthChange(subMonths(month, 1))}\n ref={previousMonthRef}\n disabled={prevDisabled}\n label={t('previousMonth')}\n />\n onMonthChange(addMonths(month, 1))}\n ref={nextMonthRef}\n label={t('nextMonth')}\n />\n
    \n\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n
    \n
    \n {message}\n
    \n
    \n onFocusedDayChange(d, newD, 0)}\n isVisibleMonth\n dayLabel={getDayLabel}\n allowPrevious={allowPrevious}\n today={today}\n highlightedDates={highlightedDates}\n enabledDates={enabledDates}\n />\n onFocusedDayChange(d, newD, 1)}\n dayLabel={getDayLabel}\n allowPrevious={allowPrevious}\n today={today}\n highlightedDates={highlightedDates}\n enabledDates={enabledDates}\n />\n {children}\n
    \n
    \n \n );\n};\n\nexport default Calendar;\n","export * from './lib/calendar';\nexport * from './lib/calendar.day';\nexport * from './lib/calendar.month';\n","import type { Calendar as CalendarType } from '@dx-ui/osc-calendar';\nimport { Calendar } from '@dx-ui/osc-calendar';\nimport { useLocale } from '@dx-ui/utilities-dates';\nimport { isBefore, addDays } from 'date-fns';\nimport { useTranslation } from 'next-i18next';\nimport { useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\n/**\n * Sub component containing calendar with shop form business logic applied\n * @returns JSX.Element\n */\n\nexport type DatePickerCalendarProps = {\n day?: Date;\n dayFieldName: string;\n endDay?: Date;\n endDayFieldName: string;\n /**\n * option to only search for single day stays\n */\n isDayUse?: boolean;\n language: string;\n} & Pick<\n CalendarType,\n | 'allowSameDay'\n | 'allowPrevious'\n | 'dayLabel'\n | 'maxDays'\n | 'enabledDates'\n | 'MonthDateSelectorComponent'\n>;\n\nexport const DatePickerCalendar = ({\n allowPrevious,\n allowSameDay,\n day,\n dayFieldName,\n dayLabel,\n isDayUse,\n endDay,\n endDayFieldName,\n enabledDates,\n language,\n maxDays,\n MonthDateSelectorComponent,\n}: DatePickerCalendarProps) => {\n const { t } = useTranslation('osc-date-picker');\n const [message, setMessage] = useState('');\n const { setValue } = useFormContext();\n const locale = useLocale({ language });\n const onDayChange = (d?: Date) => {\n if (d) {\n setValue(dayFieldName, d, { shouldDirty: true, shouldValidate: true });\n const departureDate = isDayUse ? d : endDay && isBefore(endDay, d) ? addDays(d, 1) : endDay;\n setValue(endDayFieldName, departureDate, { shouldDirty: true, shouldValidate: true });\n setMessage(\n t(isDayUse ? 'selectedDayUseMessage' : 'selectedDateMessage', {\n fromDate: d.toLocaleDateString(locale, { dateStyle: 'long' }),\n })\n );\n }\n };\n const onEndDayChange = (d?: Date) => {\n setValue(endDayFieldName, d, { shouldDirty: true, shouldValidate: true });\n if (d) {\n setMessage(\n t('selectedEndDateMessage', {\n fromDate: day?.toLocaleDateString(locale, {\n dateStyle: 'long',\n }),\n toDate: d.toLocaleDateString(locale, { dateStyle: 'long' }),\n })\n );\n }\n };\n\n return (\n \n );\n};\n","import * as React from 'react';\nimport { useFormContext, useWatch } from 'react-hook-form';\nimport { FormInput, FormLabel } from '@dx-ui/osc-form';\nimport { ActionDialog } from '@dx-ui/osc-dialog-v2';\nimport type { DateFormat } from '@dx-ui/utilities-dates';\nimport { useLocale, useDateFormat } from '@dx-ui/utilities-dates';\nimport { addDays, startOfDay } from 'date-fns';\nimport { useTranslation } from 'next-i18next';\nimport DatePickerDatesButton from './date-picker.dates-button';\nimport type { DatePickerCalendarProps } from './date-picker.calendar';\nimport { DatePickerCalendar } from './date-picker.calendar';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { useIsClient } from 'usehooks-ts';\n\nexport type DatePickerProps = {\n dateFieldNamePrefix?: string;\n afterCalendarContent?: React.ReactNode;\n /** Removes \"my dates are flexible\" input */\n hideFlexDates?: boolean;\n /** Options for \"When?\" and \"(Required)\" label */\n labelOptions?: {\n whenLabel: boolean;\n requiredDates?: boolean;\n };\n hasFlexDatesDisabled?: boolean;\n children?: (props: { day?: DateFormat; endDay?: DateFormat }) => React.ReactNode;\n isOpen?: boolean;\n /** Callback invoked on confirm/done */\n onConfirm?: () => void;\n /** Callback invoked on modal open */\n onOpen?: () => void;\n /** Callback invoked on cancel/dismiss */\n onDismiss?: () => void;\n /** Callback invoked on reset dates */\n onResetDates?: () => void;\n /**\n * whether or not to set the default day of today. set to `false` if dates are optional\n */\n hasTodayAsDefault?: boolean;\n /** Callback invoked on my flexible dates click */\n onFlexibleDates?: () => void;\n //NHCSEARCH-5363 Flex date verbiage MVT\n flexDatesLabel?: string;\n} & Omit;\n\nexport type DatesData = {\n flexDates: boolean;\n day?: Date;\n endDay?: Date;\n};\n\n/**\n * Use the `` component inside of the ShopForm in order to provide the OSC experience for\n * selecting arrival/departure dates. You can pass a custom button in as `children` and also use `renderProps`\n * to access the `day` and `endDay` for use in your custom button. The default button is ``\n */\nexport const DatePicker = ({\n afterCalendarContent,\n MonthDateSelectorComponent,\n allowPrevious,\n allowSameDay = true,\n hasFlexDatesDisabled = false,\n isDayUse = false,\n dateFieldNamePrefix = 'dates',\n hideFlexDates,\n labelOptions,\n language,\n maxDays = 730,\n hasTodayAsDefault = true,\n enabledDates = [],\n children,\n onConfirm,\n onFlexibleDates,\n onOpen,\n onDismiss,\n onResetDates,\n isOpen: openProp,\n //NHCSEARCH-5363 Flex date verbiage MVT\n flexDatesLabel,\n}: DatePickerProps) => {\n const { t } = useTranslation('osc-date-picker');\n const locale = useLocale({ language });\n const [open, setOpen] = React.useState(openProp);\n const buttonRef = React.useRef(null);\n const { setValue, reset, getValues } = useFormContext();\n\n const dayFieldName = `${dateFieldNamePrefix}.arrivalDate` as const;\n const endDayFieldName = `${dateFieldNamePrefix}.departureDate` as const;\n\n const day = useWatch({ name: dayFieldName }) as Date;\n const endDay = useWatch({ name: endDayFieldName }) as Date;\n\n const [initialValues, setInitialValues] = React.useState<{\n arrivalDate: Date;\n departureDate: Date;\n datesFlex: boolean;\n } | null>(null);\n\n const isDateOptional = !hasTodayAsDefault && !(day && endDay);\n React.useEffect(() => {\n if (!day && hasTodayAsDefault) {\n const dayDefault = startOfDay(new Date());\n const endDayDefault = isDayUse ? dayDefault : addDays(dayDefault, 1);\n\n setValue(dayFieldName, dayDefault, { shouldDirty: true });\n setValue(endDayFieldName, endDayDefault, { shouldDirty: true });\n }\n }, [day, dayFieldName, isDayUse, endDayFieldName, setValue, hasTodayAsDefault]);\n\n const dayLabel = day ? day.toLocaleDateString(locale, { dateStyle: 'long' }) : '';\n const endDayLabel = isDayUse\n ? dayLabel\n : endDay\n ? endDay.toLocaleDateString(locale, { dateStyle: 'long' })\n : '';\n\n const nextDay = day ? addDays(day, 1) : day;\n\n const formatDay = useDateFormat({ date: day, locale });\n const formatEndDay = useDateFormat({ date: endDay, locale });\n\n const openModal = () => {\n setOpen(true);\n setInitialValues(cloneDeep(getValues().dates));\n onOpen?.();\n };\n\n const dismissAndResetToOriginalDates = () => {\n setOpen(false);\n reset({ ...getValues(), dates: { ...initialValues } }, { keepDefaultValues: true });\n onDismiss?.();\n };\n const confirmAndCloseModal = () => {\n setOpen(false);\n //if user selects an arrivalDate but not departure set departureDate to arrivalDate + 1 day. TODO Revisit this once we revise these elements to have update button (or apply btn)\n if (day && !endDay) {\n setValue(endDayFieldName, isDayUse ? day : addDays(day, 1), {\n shouldDirty: true,\n shouldValidate: true,\n });\n }\n onConfirm?.();\n };\n\n // MVT - Display \"Reset Dates\" link\n const [resetDateA11y, setResetDateA11y] = React.useState(false);\n const resetDates = () => {\n setResetDateA11y(true);\n reset(\n {\n ...getValues(),\n dates: { arrivalDate: null, departureDate: null, datesFlex: false },\n },\n { keepDefaultValues: true }\n );\n setTimeout(() => setResetDateA11y(false), 500);\n if (onResetDates) onResetDates();\n };\n const resetButtonCTA = {\n isEnabled: !hasTodayAsDefault,\n label: t('resetDates'),\n resetA11Y: resetDateA11y ? t('allSelectionsReset') : undefined,\n };\n\n const isClient = useIsClient();\n\n return (\n
    \n {labelOptions?.whenLabel || isDateOptional ? (\n \n ) : null}\n \n {children ? (\n children({ day: formatDay, endDay: formatEndDay })\n ) : (\n <>\n \n {t('checkin')}\n {t('addDates')}\n \n {!isDayUse ? (\n \n {t('checkout')}\n {t('addDates')}\n \n ) : null}\n \n )}\n \n }\n >\n \n \n t('dayLabel', {\n date: d.toLocaleDateString(locale, { dateStyle: 'full' }),\n type: t(checkin ? 'checkin' : 'checkout'),\n })\n }\n language={language}\n MonthDateSelectorComponent={MonthDateSelectorComponent}\n />\n
    \n {!hideFlexDates || afterCalendarContent ? (\n
    \n {!hideFlexDates ? (\n \n ) : null}\n {afterCalendarContent ? afterCalendarContent : null}\n
    \n ) : null}\n \n \n );\n};\n\nexport default DatePicker;\n","import { useLocale } from '@dx-ui/utilities-dates';\nimport { useTranslation } from 'next-i18next';\nimport { differenceInDays } from 'date-fns';\n\nexport function DateRangeScreenReaderText({\n fromDate,\n language,\n toDate,\n}: {\n fromDate: Date | null | undefined;\n language: string;\n toDate: Date | null | undefined;\n}) {\n const { t } = useTranslation('osc-date-picker');\n const locale = useLocale({ language });\n const fromDateString = fromDate ? fromDate.toLocaleDateString(locale, { dateStyle: 'long' }) : '';\n const toDateString = toDate ? toDate.toLocaleDateString(locale, { dateStyle: 'long' }) : '';\n const nights = fromDate && toDate ? differenceInDays(toDate, fromDate) : 0;\n return (\n \n {t('dateRange', { fromDate: fromDateString, toDate: toDateString, count: nights })}\n \n );\n}\n","export * from './lib/date-picker';\nexport * from './lib/date-picker.calendar';\nexport * from './lib/date-picker.dates-button';\nexport * from './lib/date-picker.screenreader';\n","import type { DatePickerProps } from '@dx-ui/osc-date-picker';\nimport { DatePicker } from '@dx-ui/osc-date-picker';\n/**\n *\n * @param props\n * @returns Soft wrapper of component to maintain compatibility. Once all apps are in monorepo work to deprecate this.\n */\n\nexport type ShopFormDatesProps = {\n arrivalDate: Date | null;\n departureDate: Date | null;\n datesFlex: boolean;\n};\n\nexport const ShopFormDates = (props: DatePickerProps) => ;\n","import type * as React from 'react';\n\n/**\n * @deprecated\n * The `` can be used for layout purposes, originally for use as a wrapper around `` and ``\n */\nconst ShopFormInfoContainer = ({ children }: { children: React.ReactNode }) => children;\n\nShopFormInfoContainer.displayName = 'ShopFormInfoContainer';\n\nexport { ShopFormInfoContainer };\nexport default ShopFormInfoContainer;\n","import { useFormContext } from 'react-hook-form';\nimport type { FormDataValues } from './shop-form';\n\nexport const useShopFormContext = () => useFormContext();\n","import * as React from 'react';\nimport cx from 'classnames';\n\nconst InfoCircle: React.FC<{ error: boolean; info: string | null; 'data-testid'?: string }> = ({\n error,\n info,\n ...rest\n}) => {\n if (error || info !== null) {\n return (\n \n {error ? '!' : info !== null ? info : null}\n \n );\n }\n\n return null;\n};\n\nexport type ShopFormButtonProps = React.ComponentProps<'button'> & {\n label: string;\n product: string;\n hasError: boolean;\n info?: string | null;\n 'data-testid'?: string;\n};\n\nexport const ShopFormButton = React.forwardRef(\n ({ product, children, label, hasError, info = null, ...props }, ref) => {\n return (\n
    \n \n {label}\n \n \n {children}\n
    \n );\n }\n);\n\nShopFormButton.displayName = 'ShopFormButton';\n\nexport default ShopFormButton;\n","import { useRect } from '@dx-ui/utilities-use-rect';\nimport cx from 'classnames';\nimport * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport { getPopupStyles } from '@dx-ui/osc-popup';\n\nexport type Tooltip = {\n message: React.ReactNode;\n /** Used to apply custom styles to tooltip's popup */\n popupClassName?: string;\n} & React.HTMLAttributes;\n\nexport type TooltipCause = 'escape' | 'focus' | 'initial' | 'mouse';\n\nexport const Tooltip: React.FC> = ({\n children,\n className,\n message,\n popupClassName,\n ...rest\n}) => {\n const { t } = useTranslation('osc-tooltip');\n const id = React.useId();\n const tipId = `tooltip-${id}`;\n const [currentCause, setCurrentCause] = React.useState('initial');\n const [visible, setVisible] = React.useState(false);\n\n const buttonRef = React.useRef(null);\n const popoverRef = React.useRef(null);\n const popoverRect = useRect({ ref: popoverRef });\n const targetRect = useRect({ ref: buttonRef });\n const styles = getPopupStyles(targetRect, popoverRect);\n\n const hide = React.useCallback(\n (cause: TooltipCause) => {\n if (cause === 'escape' || currentCause === cause) {\n setVisible(false);\n setCurrentCause('initial');\n }\n },\n [currentCause]\n );\n const show = (cause: TooltipCause) => {\n if (currentCause === 'focus') return;\n setVisible(true);\n setCurrentCause(cause);\n };\n\n React.useEffect(() => {\n const onKeyDown = (e: KeyboardEvent) => {\n if (visible && e.key === 'Escape') {\n hide('escape');\n }\n };\n window.addEventListener('keydown', onKeyDown);\n return () => {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [hide, visible]);\n\n return (\n \n hide('focus')}\n onFocus={() => show('focus')}\n onMouseOver={() => show('mouse')}\n onMouseOut={() => hide('mouse')}\n {...rest}\n >\n {children}\n \n \n {message}\n \n \n );\n};\n\nexport default Tooltip;\n","export * from './lib/tooltip';\n","import cx from 'classnames';\nimport type * as React from 'react';\nimport { useTranslation } from 'next-i18next';\n\nexport type StepperProps = {\n /**\n * when used in a form, this is the id of the hidden input. (must also include the `inputName` prop)\n */\n inputId?: HTMLInputElement['id'];\n /**\n * when used in a form, this will be the key for the form results. (must also include the `inputId` prop)\n */\n inputName?: HTMLInputElement['name'];\n /**\n * the current state of the Stepper\n */\n value?: number;\n /**\n * upper limit of the value\n */\n max?: number;\n /**\n * lower limit of the value\n */\n min?: number;\n onMinusClick?: React.DOMAttributes['onClick'];\n onPlusClick?: React.DOMAttributes['onClick'];\n /**\n * used for a11y to give a label to the value\n */\n valueLabel?: string;\n /**\n * used for a11y to label the minus button\n */\n minusLabel?: string;\n minusTestId?: string;\n /**\n * used for a11y to label the plus button\n */\n plusLabel?: string;\n plusTestId?: string;\n};\n\ntype Stepper = StepperProps & React.HTMLAttributes;\n\n/**\n * Used to increment/decrement a value\n *\n * Use `onPlusClick` and `onMinusClick` to change value one by one.\n */\nexport const Stepper: React.FC> = ({\n className,\n inputId,\n inputName,\n max,\n min,\n onMinusClick,\n onPlusClick,\n value = 0,\n valueLabel = '',\n minusLabel,\n minusTestId,\n plusLabel,\n plusTestId,\n ...rest\n}) => {\n const minusDisabled = value === min;\n const plusDisabled = value === max;\n const { t } = useTranslation('osc-stepper');\n return (\n
    \n {!!inputId && !!inputName && (\n \n )}\n \n {minusLabel || t('minusLabel')}\n \n \n \n \n \n \n \n \n \n {valueLabel || value}\n \n {value}\n \n \n {plusLabel || t('plusLabel')}\n \n \n \n \n \n \n \n
    \n );\n};\n\nexport default Stepper;\n","export * from './stepper';\n","export * from './lib';\n","import { Tooltip } from '@dx-ui/osc-tooltip';\nimport { Stepper } from '@dx-ui/osc-stepper';\nimport { FormSelect } from '@dx-ui/osc-form';\nimport * as React from 'react';\nimport type { RegisterOptions } from 'react-hook-form';\nimport { useFormContext, useFieldArray } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport Icon from '@dx-ui/osc-icon';\nimport { logError } from '@dx-ui/framework-logger';\n\ntype RoomsRoom = {\n adultAge?: number;\n isAdultsOnly?: boolean;\n /**\n * if ageRange is provided, Age based pricing is in effect\n * */\n ageRange?: {\n min: number;\n max: number;\n };\n /**\n * if ages are required to get the best rates, making `agesRequired` will show the age select elements for each child entered.\n */\n agesRequired?: boolean;\n /**\n * disables the add room button if number of rooms is greater than this value\n */\n maxRooms?: number;\n /**\n * the maximum number of collective occupants allowed per room\n * be it adults or children with a min of one adult\n */\n maxOccupants?: number;\n index: number;\n onRemoveRoom: (val: number) => void;\n};\n\nconst RoomsRoom: React.FC> = ({\n adultAge: adultAgeProp,\n isAdultsOnly,\n agesRequired,\n ageRange,\n index,\n onRemoveRoom,\n maxOccupants = 8,\n}) => {\n const [t] = useTranslation('osc-rooms');\n const { setValue, watch, control, trigger } = useFormContext();\n const useAgeBasedPricing = Boolean(ageRange);\n const adultsId = `rooms.${index}.adults` as const;\n const childrenId = `rooms.${index}.children` as const;\n const adultAge = adultAgeProp || ageRange?.max;\n const adultAges = adultAge ? t('occupancy.adultAges', { adultAge }) : '';\n const { fields, remove, append } = useFieldArray({\n control,\n name: childrenId,\n });\n const roomsValue = watch('rooms');\n const numRooms = roomsValue?.length || 0;\n const adults = watch(adultsId);\n const children = watch(childrenId) || [];\n const roomNum = index + 1;\n const roomTestId = `rooms-room-${roomNum}`;\n\n React.useEffect(() => {\n const getChildAgesFieldsAndValidate = async () => {\n if (fields.length > 0 && agesRequired) {\n // get all the children age field names\n const names = fields.map((field, i) => `${childrenId}.${i}.age` as const);\n // validate immediately\n await trigger(names);\n }\n };\n getChildAgesFieldsAndValidate().catch((error) =>\n logError('OSC_ROOMS', error, 'failed to validate children ages')\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fields, agesRequired]);\n return (\n
    \n
    \n {`${numRooms > 1 ? `${t('occupancy.roomHas', { num: roomNum })} ` : ''} ${t(\n 'occupancy.adult',\n {\n count: adults,\n }\n )}, ${t('occupancy.child', { count: children.length })}`}\n
    \n
    \n
    \n {numRooms > 1 && (\n onRemoveRoom(index)}\n >\n {t('occupancy.removeRoom', { num: roomNum })}\n \n \n \n \n \n \n \n )}\n {t('occupancy.room', { num: roomNum })}\n
    \n
    \n {\n setValue(adultsId, adults - 1, { shouldDirty: true, shouldValidate: true });\n }}\n onPlusClick={() => {\n setValue(adultsId, adults + 1, { shouldDirty: true, shouldValidate: true });\n }}\n min={1}\n max={maxOccupants - children.length}\n value={adults}\n valueLabel={t('occupancy.adult', { count: adults })}\n plusLabel={t('occupancy.addAdult', { num: roomNum, adultAges })}\n minusLabel={t('occupancy.removeAdult', { num: roomNum, adultAges })}\n />\n
    \n
    \n {\n remove(fields.length - 1);\n }}\n onPlusClick={() => {\n // NHCSEARCH-4849 - ShouldFocus false keeps focus on stepper button\n append({ age: null }, { shouldFocus: false });\n }}\n min={0}\n max={isAdultsOnly ? 0 : maxOccupants - adults}\n value={children.length}\n valueLabel={t('occupancy.child', { count: children.length })}\n plusLabel={t('occupancy.addChild', { num: roomNum })}\n minusLabel={t('occupancy.removeChild', { num: roomNum })}\n />\n
    \n
    \n\n {useAgeBasedPricing && children.length > 0 && (\n
    \n

    \n {t('occupancy.agesLabel')}\n \n \n \n

    \n
    \n {fields.map((field, i) => {\n const fieldName = `${childrenId}.${i}.age` as const;\n const ageId = i + 1;\n\n const registerOptions: RegisterOptions = {\n onChange: async () => {\n await trigger(fieldName);\n },\n };\n if (agesRequired) {\n registerOptions.required = t('occupancy.ageBasedError');\n }\n return (\n \n \n );\n })}\n \n );\n })}\n
    \n
    \n )}\n
    \n );\n};\n\nexport { RoomsRoom };\nexport default RoomsRoom;\n","import * as React from 'react';\nimport { useFieldArray, useWatch } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport type { RoomsRoom as RoomsRoomType } from './rooms.room';\nimport { RoomsRoom } from './rooms.room';\nimport type { ShopFormRoom } from './types';\n\nexport type Rooms = Pick<\n RoomsRoomType,\n 'ageRange' | 'agesRequired' | 'maxRooms' | 'maxOccupants' | 'isAdultsOnly' | 'adultAge'\n> & {\n /**\n * Required string for message value displayed when the max-occupancy of a room is reached.

    \n * Recommended values from 'osc-shop-form' resource bundle:
    \n * const { t } = useTranslation('osc-rooms');
    \n * • base: t('occupancy.occupancyLimitMessage')
    \n * -returns: \"You've reached the maximum number of guests for a single room. Please add another room.\"
    \n * • find nearby: t('occupancy.findNearbyOccupancyLimitMessage')
    \n * -returns: \"You've reached the maximum number of guests for a single room. Please add another room or adjust your search to find nearby hotels with larger room capacities.\"\n *

    \n */\n occupancyLimitMessage: React.ReactNode;\n};\n\nexport const newRoom = Object.freeze({ adults: 1, children: [] });\nexport const Rooms: React.FC> = ({\n adultAge: adultAgeProp,\n agesRequired,\n ageRange,\n maxRooms = 9,\n maxOccupants = 8,\n occupancyLimitMessage,\n isAdultsOnly,\n}) => {\n const adultAge = adultAgeProp || ageRange?.max;\n const [t] = useTranslation('osc-rooms');\n const buttonRef = React.useRef(null);\n const { fields, append, remove } = useFieldArray({ name: 'rooms' });\n const rooms: ShopFormRoom[] = useWatch({ name: 'rooms' });\n const reachedMaxOccupants =\n occupancyLimitMessage &&\n rooms?.some((room) => room.adults + room.children.length === maxOccupants);\n const canOnlyBookSingleRoom = maxRooms === 1;\n\n const handleRemoveRoom = (val: number) => {\n remove(val);\n if (buttonRef.current) {\n buttonRef.current.focus();\n }\n };\n\n return (\n <>\n
    \n
    \n \n {t('occupancy.roomHeader')}\n \n \n {t('occupancy.adultHeader')}\n {adultAge && ({adultAge}+)}\n \n {t('occupancy.childHeader')}\n
    \n
    \n
    \n {fields.map((field, index) => (\n \n ))}\n
    \n {isAdultsOnly && adultAge ? (\n

    {t('occupancy.adultsOnlyNote', { adultAge })}

    \n ) : null}\n {reachedMaxOccupants ? (\n
    \n

    \n {occupancyLimitMessage}\n

    \n
    \n ) : null}\n
    \n {canOnlyBookSingleRoom ? (\n

    {t('occupancy.singleRoomOnly')}

    \n ) : (\n {\n append({ ...newRoom });\n }}\n disabled={fields.length >= maxRooms}\n >\n \n \n \n \n \n \n {t('occupancy.addRoom')}\n \n )}\n
    \n \n );\n};\n\nexport default Rooms;\n","import * as React from 'react';\nimport { type FieldValues, FormProvider, useForm } from 'react-hook-form';\nimport type { Dialog } from '@dx-ui/osc-dialog-v2';\nimport { ActionDialog, DialogTitle } from '@dx-ui/osc-dialog-v2';\nimport type { FormDataStructure, FormProps } from '@dx-ui/osc-form';\nimport { useTranslation } from 'next-i18next';\nimport type { Rooms as RoomsType } from './rooms';\nimport { Rooms } from './rooms';\nimport type { ShopFormRoom } from './types';\n\ntype RoomsModal = Pick &\n RoomsType &\n React.ComponentProps & { onSubmit: (data: FieldValues) => void };\n\nconst RoomsModal: React.FC> = ({\n ageRange,\n agesRequired,\n useFormProps,\n maxRooms,\n occupancyLimitMessage,\n onSubmit,\n isOpen,\n}) => {\n const [t] = useTranslation('osc-rooms');\n const memoizedFormProps = React.useMemo(() => useFormProps, [useFormProps]);\n const confirmButtonRef = React.useRef(null);\n\n const methods = useForm({\n mode: 'onTouched',\n criteriaMode: 'all',\n ...memoizedFormProps,\n });\n const { setValue, clearErrors, getValues } = methods;\n const rooms: ShopFormRoom[] = getValues().rooms;\n const isAnyRoomHaveChildrenOccupants = rooms?.some((room) => room?.children?.length);\n\n const removeKids = () => {\n clearErrors();\n rooms?.forEach((_room, index) => {\n setValue(`rooms.${index}.children`, []);\n });\n confirmButtonRef?.current?.focus();\n };\n\n return (\n \n onSubmit?.(getValues())}\n buttonOptions={{\n cancel: {\n label: t('occupancy.ageBasedRemove'),\n disabled: !isAnyRoomHaveChildrenOccupants,\n },\n confirm: { ref: confirmButtonRef },\n }}\n >\n
    \n {t('occupancy.ageBasedTitle')}\n

    {t('occupancy.ageBasedDescription')}

    \n
    \n\n \n \n
    \n );\n};\n\nexport { RoomsModal };\nexport default RoomsModal;\n","export * from './lib/rooms';\nexport * from './lib/rooms.modal';\nexport * from './lib/rooms.room';\nexport * from './lib/types';\n","import * as React from 'react';\nimport { useFieldArray, useWatch } from 'react-hook-form';\nimport { ActionDialog } from '@dx-ui/osc-dialog-v2';\nimport { Link } from '@dx-ui/osc-link';\nimport type { FormDefaultValues } from './shop-form';\nimport { useShopFormContext } from './use-shop-form-context';\nimport { useTranslation } from 'next-i18next';\nimport type { Person, BrandCode } from '@dx-ui/framework-uri-builder';\nimport { searchUriBuilder } from '@dx-ui/framework-uri-builder';\nimport SearchButton from './shop-form.button';\nimport omit from 'lodash/omit';\nimport type { Rooms as RoomsType, ShopFormRoom } from '@dx-ui/osc-rooms';\nimport { Rooms, newRoom } from '@dx-ui/osc-rooms';\nimport cloneDeep from 'lodash/cloneDeep';\n\ntype ShopFormRooms = {\n 'data-testid'?: string;\n /**\n * if `true` the group link will not be shown\n */\n hideGroupLink?: boolean;\n open?: boolean;\n tenPlusLinkProps?: React.ComponentProps;\n /** Callback invoked on confirm/done */\n onConfirm?: () => void;\n /** Callback invoked on modal open */\n onOpen?: () => void;\n /** Callback invoked on cancel/dismiss */\n onDismiss?: () => void;\n} & RoomsType;\n\n/**\n * Use the `` component inside of the ShopForm in order to provide the OSC experience\n * for noting the number of rooms and their occupancy.\n */\nexport const ShopFormRooms: React.FC> = ({\n hideGroupLink,\n onConfirm,\n open: openProp,\n tenPlusLinkProps,\n onOpen,\n onDismiss,\n ...rest\n}) => {\n const { t } = useTranslation(['osc-rooms', 'osc-shop-form']);\n const [open, setOpen] = React.useState(false);\n const {\n formState: { errors },\n getValues,\n reset,\n } = useShopFormContext();\n const { append } = useFieldArray({ name: 'rooms' });\n const hasError = Boolean(errors.rooms);\n const roomsValue = useWatch({ name: 'rooms' });\n const numRooms = roomsValue?.length || 0;\n\n const numGuests = (roomsValue || []).reduce(\n (count: number, { adults, children }: { adults: number; children: Person[] }) =>\n count + adults + children.length,\n 0\n );\n const [initialValues, setInitialValues] = React.useState([\n {\n adults: 1,\n children: [],\n },\n ]);\n\n React.useEffect(() => {\n if (roomsValue && roomsValue.length === 0) {\n append({ ...newRoom });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [roomsValue]);\n\n React.useEffect(() => {\n if (openProp) {\n setInitialValues(cloneDeep(roomsValue));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [openProp]);\n\n const openModal = () => {\n setInitialValues(cloneDeep(roomsValue));\n setOpen(true);\n onOpen?.();\n };\n\n const confirmAndCloseModal = () => {\n setOpen(false);\n onConfirm?.();\n };\n const dismissAndResetToOriginalFormRooms = () => {\n if (initialValues) {\n reset({ ...getValues(), rooms: [...initialValues] }, { keepDefaultValues: true });\n }\n setOpen(false);\n onDismiss?.();\n };\n\n //grab these values from shop form context in order for use in uri generator\n const brandCode = useWatch({ name: 'brandCode' });\n const arrivalDate = useWatch({\n name: 'dates.arrivalDate',\n });\n const departureDate = useWatch({\n name: 'dates.departureDate',\n });\n const placeId = useWatch({ name: 'placeId' });\n const query = useWatch({ name: 'query' });\n const attendeeCount = useWatch({ name: 'attendee_count' });\n\n const tenPlusUrl = searchUriBuilder({\n brandCode: brandCode as keyof BrandCode,\n locale: 'en',\n urlParams: {\n dates: {\n arrivalDate,\n departureDate,\n },\n numAttendees: attendeeCount,\n placeId,\n query,\n numRooms: 10,\n },\n relative: false,\n });\n\n const label = `${t('occupancy.numRooms', { count: numRooms })}, ${t('occupancy.numGuests', {\n count: numGuests,\n })}`;\n const ariaLabel = `${t('occupancy.numRooms', { count: numRooms })}, ${t('occupancy.numGuests', {\n count: numGuests,\n })}. ${t('occupancy.buttonLabel')} ${\n hasError ? t('osc-shop-form:errorHeader', { count: 1 }) : ''\n }`;\n\n return (\n \n }\n >\n \n {hideGroupLink ? null : (\n
    \n \n {t('occupancy.bookEvent')}\n \n
    \n )}\n \n );\n};\n\nexport default ShopFormRooms;\n","import type { Side } from '@dx-ui/osc-popup';\nimport { PopupButton, PopupContent, Popup, usePopup } from '@dx-ui/osc-popup';\nimport { ControlClose } from '@dx-ui/osc-controls';\nimport { useTranslation } from 'next-i18next';\nimport { useRef } from 'react';\nimport { Icon } from '@dx-ui/osc-icon';\n\nexport type InfoPopup = {\n label?: string;\n testId?: string;\n onClick?: () => void;\n side?: Side;\n isOpen?: boolean;\n};\n\nexport const InfoPopupContent: React.FC> = ({\n children,\n testId,\n label: labelProp,\n onClick,\n side,\n}) => {\n const { closePopup } = usePopup();\n const { t } = useTranslation('osc-info-popup');\n const infoIconRef = useRef(null);\n const label = labelProp || t('moreInfo');\n\n return (\n <>\n \n {label}\n \n \n \n \n
    \n \n
    \n
    {children}
    \n \n \n );\n};\n\nexport const InfoPopup: React.FC> = ({\n testId,\n children,\n label,\n onClick,\n side,\n ...rest\n}) => (\n \n \n {children}\n \n \n);\n\nexport default InfoPopup;\n","export * from './lib/info-popup';\n","import type * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\nimport {\n useFormContext,\n type FieldError,\n type FieldValues,\n type UseFormGetValues,\n} from 'react-hook-form';\n\nimport { FormError } from '@dx-ui/osc-form';\nimport { InfoPopup } from '@dx-ui/osc-info-popup';\n\nconst GROUP_LIMIT = 10;\n\nconst InputGroup: React.FC<{\n id: string;\n label?: string;\n info?: React.ReactNode;\n isCentered?: boolean;\n error: Partial | undefined;\n children: React.ReactNode;\n}> = ({ id, label, info, error, isCentered, children }) => {\n return (\n
    \n \n
    \n {label ? (\n \n {label}\n \n ) : null}\n {info ? {info} : null}\n
    \n {children}\n
    \n \n \n );\n};\n\nexport type ShopFormGroupProps = {\n showNumAttendees?: boolean;\n};\nexport const ShopFormGroup: React.FC> = (\n props: ShopFormGroupProps\n) => {\n const { t } = useTranslation('osc-rooms');\n const {\n register,\n setValue,\n getValues,\n formState: { errors },\n trigger,\n } = useFormContext();\n\n const getNumRoomsValidation = (numRooms: string, getValues: UseFormGetValues) => {\n const numAttendees = parseInt(getValues('numAttendees'));\n if (parseInt(numRooms) < 0) return t('roomsAttendees.numRoomsEmptyError');\n if (getValues('meetingSpace') && numAttendees > 0) return true;\n if (!getValues('meetingSpace') && (parseInt(numRooms) === 0 || isNaN(parseInt(numRooms))))\n return t('roomsAttendees.numRoomsEmptyError');\n return true;\n };\n\n const getNumAttendeesValidation = (\n numAttendees: string,\n getValues: UseFormGetValues\n ) => {\n if (parseInt(numAttendees) > 0 || !getValues('meetingSpace')) return true;\n return t('roomsAttendees.numAttendeeEmptyError');\n };\n\n return (\n
    \n \n getNumRoomsValidation(numRooms, getValues),\n },\n valueAsNumber: true,\n })}\n />\n \n {props.showNumAttendees ? (\n <>\n \n
    \n \n {\n if (!getValues('meetingSpace')) setValue('numAttendees', 1);\n else setValue('numAttendees', 0);\n }}\n {...register('meetingSpace', {\n onChange: async () => {\n await trigger('numRooms');\n await trigger('numAttendees');\n },\n })}\n />\n
    \n
    \n \n trigger('numRooms'),\n validate: {\n numAttendeesValidation: (numAttendees) =>\n getNumAttendeesValidation(numAttendees, getValues),\n },\n })}\n disabled={!getValues('meetingSpace')}\n />\n \n \n ) : null}\n
    \n );\n};\n","import * as React from 'react';\nimport { useWatch } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport { ActionDialog } from '@dx-ui/osc-dialog-v2';\nimport SearchButton from './shop-form.button';\nimport { SpecialRates } from '@dx-ui/osc-special-rates';\nimport { useShopFormContext } from './use-shop-form-context';\nimport cloneDeep from 'lodash/cloneDeep';\n\n/**\n * Use the `` component inside of the ShopForm in order to provide the OSC experience\n * for selecting special rates to enhance the search.\n */\nexport type ShopFormSpecialRatesProps = {\n /** Option to disable use points checkbox */\n shouldDisablePoints?: boolean;\n /** Option to enable when used outside of the shop form */\n isIndependent?: boolean;\n /** Option to control the modal open state */\n open?: boolean;\n /** Callback invoked on confirm/done */\n onConfirm?: () => void;\n /** Callback invoked on modal open */\n onOpen?: () => void;\n /** Callback invoked on cancel/dismiss */\n onDismiss?: () => void;\n /** Make smbRates SMB Context Aware */\n shouldEnableSMBContextAwareRates?: boolean;\n};\n\nexport const ShopFormSpecialRates: React.FC> = ({\n shouldEnableSMBContextAwareRates,\n isIndependent,\n open: openProp,\n onConfirm,\n onOpen,\n onDismiss,\n shouldDisablePoints,\n}) => {\n const [t] = useTranslation(['osc-shop-form', 'osc-special-rates']);\n const [open, setOpen] = React.useState(false);\n const buttonRef = React.useRef(null);\n const {\n formState: { errors },\n reset,\n getValues,\n } = useShopFormContext();\n const hasError = !!errors.specialRates;\n const ratesValue = useWatch({ name: 'specialRates' });\n const isOfferIdSelected = useWatch({ name: 'specialRates.useOfferId' });\n const isPndSelected = useWatch({ name: 'specialRates.usePnd' });\n const isSMBSelected = useWatch({ name: 'specialRates.smbRate' });\n const isSMBMember = useWatch({ name: 'hhonors.isSMBMember' });\n const offerId = useWatch({ name: 'specialRates.offerId' });\n const pnd = useWatch({ name: 'specialRates.pnd' });\n const corporateCode = useWatch({ name: 'specialRates.corporateCode' });\n const [initialValues, setInitialValues] = React.useState();\n const selectedRates = Object.keys(ratesValue || {}).reduce((count, key) => {\n const excludedKeys = [\n 'pnd',\n 'usePnd',\n 'offerId',\n 'useOfferId',\n 'requestedRatesOnly',\n 'searchedRatePlanDescription',\n 'travelAgentId',\n ];\n if (\n (!excludedKeys.includes(key) && Boolean(ratesValue[key as keyof typeof ratesValue])) ||\n (key === 'usePnd' && Boolean(ratesValue[key]) && ratesValue?.pnd?.name) ||\n (key === 'useOfferId' && Boolean(ratesValue[key]) && ratesValue?.offerId?.name)\n ) {\n return count + 1;\n }\n return count;\n }, 0);\n\n const openModal = () => {\n setInitialValues(cloneDeep(ratesValue));\n setOpen(true);\n onOpen?.();\n };\n\n const confirmAndCloseModal = () => {\n setOpen(false);\n onConfirm?.();\n };\n\n const resetRatesToOriginalFormRates = () => {\n if (initialValues) {\n reset({ ...getValues(), specialRates: { ...initialValues } }, { keepDefaultValues: true });\n }\n onDismiss?.();\n setOpen(false);\n };\n\n React.useEffect(() => {\n if (isPndSelected && !pnd?.name) {\n reset({ ...getValues(), specialRates: { ...getValues().specialRates, usePnd: false } });\n }\n if (isOfferIdSelected && !offerId?.name) {\n reset({ ...getValues(), specialRates: { ...getValues().specialRates, useOfferId: false } });\n }\n if (isSMBSelected && !isSMBMember) {\n reset({ ...getValues(), specialRates: { ...getValues().specialRates, smbRate: false } });\n }\n if (isSMBSelected && corporateCode) {\n reset({ ...getValues(), specialRates: { ...getValues().specialRates, corporateCode: '' } });\n }\n }, [\n corporateCode,\n getValues,\n isOfferIdSelected,\n isPndSelected,\n isSMBMember,\n isSMBSelected,\n offerId?.name,\n pnd?.name,\n reset,\n ]);\n\n return (\n 0\n ? t('osc-special-rates:buttonLabelCount', { count: selectedRates })\n : ''\n }`}\n data-testid=\"search-rates-button\"\n />\n }\n >\n \n \n );\n};\n","import * as React from 'react';\nimport { useWatch } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport SearchButton from './shop-form.button';\nimport { ActionDialog } from '@dx-ui/osc-dialog-v2';\nimport { Stepper } from '@dx-ui/osc-stepper';\nimport type { FormDataValues } from '..';\nimport { addDays, subDays } from 'date-fns';\nimport { useShopFormContext } from './use-shop-form-context';\n\ntype ShopFormNightsProps = {\n min?: number;\n max?: number;\n};\n\n/**\n * Use the `` component inside of the ShopForm in order to provide the OSC experience\n * for selecting the number of nights to enhance the search.\n */\nconst ShopFormNights: React.FC> = ({\n min = 0,\n max = 30,\n}) => {\n const [t] = useTranslation('osc-rooms');\n const [open, setOpen] = React.useState(false);\n const buttonRef = React.useRef(null);\n const {\n formState: { errors },\n setValue,\n getValues,\n reset,\n } = useShopFormContext();\n const numNights = useWatch({ name: 'numNights' });\n const departureDate = useWatch({\n name: 'dates.departureDate',\n });\n const [initialNumNights, setInitialNumNights] = React.useState();\n const [initialDepartureDate, setInitialDepartureDate] =\n React.useState();\n const openModal = () => {\n setInitialNumNights(numNights);\n setInitialDepartureDate(departureDate);\n setOpen(true);\n };\n\n const confirmAndCloseModal = () => {\n setOpen(false);\n };\n const dismissModal = () => {\n setOpen(false);\n if (initialNumNights && initialDepartureDate) {\n const formData = getValues();\n reset(\n {\n ...formData,\n numNights: initialNumNights,\n dates: { ...formData.dates, departureDate: initialDepartureDate },\n },\n { keepDefaultValues: true }\n );\n }\n };\n\n if (numNights === null || !departureDate) {\n return null;\n }\n\n const label =\n numNights === 0\n ? t('nights.dayCount', { count: 1 })\n : t('nights.nightsCount', { count: numNights });\n const dialogTitle = t('nights.howManyNights');\n\n return (\n \n }\n >\n {\n setValue('numNights', numNights - 1, { shouldDirty: true });\n setValue('dates.departureDate', subDays(departureDate, 1), {\n shouldDirty: true,\n });\n }}\n onPlusClick={() => {\n setValue('numNights', numNights + 1, { shouldDirty: true });\n setValue('dates.departureDate', addDays(departureDate, 1), {\n shouldDirty: true,\n });\n }}\n min={min}\n max={max}\n value={numNights}\n valueLabel={label}\n plusLabel={t('nights.addNight')}\n plusTestId=\"search-add-night\"\n minusLabel={t('nights.removeNight')}\n minusTestId=\"search-remove-night\"\n className=\"pb-2.5\"\n />\n \n );\n};\n\nexport { ShopFormNights };\nexport default ShopFormNights;\n","export * from './lib/shop-form';\nexport * from './lib/shop-form.provider';\nexport * from './lib/shop-form.utils';\nexport * from './lib/shop-form.location';\nexport * from './lib/shop-form.dates';\nexport * from './lib/shop-form.info-container';\nexport * from './lib/shop-form.rooms';\nexport * from './lib/shop-form.group';\nexport * from './lib/shop-form.special-rates';\nexport * from './lib/shop-form.summary';\nexport * from './lib/shop-form.nights';\nexport * from './lib/shop-form.constants';\nexport * from './lib/use-shop-form-context';\n","/**\n * This allows us to import all the components from the shop-form library either dynamically, or statically\n */\nexport * from '@dx-ui/osc-shop-form';\n","import { isBrowser } from '@dx-ui/utilities-is-browser';\nimport { logError } from '@dx-ui/framework-logger';\n\ndeclare global {\n interface Window {\n conductricsSels?: string;\n conductricsClient?: ClientApi | null;\n Conductrics?: {\n ClientApi: {\n new (args?: ConstructorParams): ClientApi;\n };\n };\n conductricsSelsPath?: string;\n }\n}\n\nexport type AgentStatus = ValuesOf;\n\nexport const Status = {\n OK: 'ok',\n PENDING: 'p',\n} as const;\n\nexport type Arg = {\n g?: string;\n v?: number;\n a?: string;\n s?: AgentStatus;\n};\n\ntype ClientApi = {\n exec: (args: Arg[], cb: (err: Error | false, result?: Result | null) => void) => void;\n};\n\nexport type ConstructorParams = {\n traits?: string[];\n dataLayer?: string;\n inputs?: { [key: string]: string | number | boolean };\n};\n\nexport type Selection = {\n choice: string | undefined;\n status?: AgentStatus;\n meta?: {\n [key: string]: number | string | boolean;\n };\n};\n\n/**\n * @see https://support.conductrics.com/v3.0/docs/runtime-api-commands\n * @description myconductrics\n */\nexport type Result = {\n sels?: {\n [key: string]: string;\n };\n items?: {\n /**\n * @description name of agent\n */\n a?: string;\n /**\n * @description choice the agent made\n */\n c?: string;\n /**\n * @description meta data on the choice\n */\n md?: {\n [key: string]: number | string | boolean;\n };\n /**\n * @description policy the selected agent was made with\n * p for paused selections (if the agent does not currently have status \"running\")\n * r for random selections (random agents always make random selections)\n * f for fixed selections (the result of a targeted selection rule that you've set up)\n * a for adaptive selections (when an agent selects the \"best\" selection using predictive analytics)\n * c for control selections (adaptive agents set aside a small percentage of visitors as a control group, who always get the default variation)\n * s for sticky selections (if a session has already been assigned a selection previously)\n * b for bot selections (if a bot or search crawler is detected on our side, the default selection is returned but the request is not counted in reporting).\n */\n p?: string;\n /**\n * @name status\n * @description \"ok\" or \"p\" for pending\n */\n s?: AgentStatus;\n }[];\n};\n\nexport type Agent = { agentId: string; status?: AgentStatus };\n\nexport function isApiLoaded() {\n if (!isBrowser) {\n return null;\n }\n return !!window?.Conductrics;\n}\n\nexport function initConductrics(params?: ConstructorParams) {\n if (!isBrowser) {\n return null;\n }\n const conductricsClient =\n (window?.Conductrics && new window.Conductrics.ClientApi(params)) || null;\n window.conductricsClient = conductricsClient;\n return null;\n}\n\nfunction getApi() {\n if (!isBrowser) {\n return null;\n }\n return window.conductricsClient;\n}\n\n/**\n * Add selections to window object for external tracking\n * adds test1Name=choice;\n */\nexport function globalizeSelections(choice?: string, agent?: string) {\n const parts = window.conductricsSels?.split(';').filter(Boolean) || [];\n\n // remove duplicates\n const filteredParts = parts.filter((part) => part.split('=')?.[0] !== agent);\n\n filteredParts.push(`${agent}=${choice}`);\n window.conductricsSels = filteredParts.join(';');\n}\n\n/**\n * \"Normalize\" the passed in agents to match the conductrics API\n */\nfunction normalizeAgents(agent: string | Agent[], s?: AgentStatus) {\n return typeof agent === 'string'\n ? [{ a: agent, ...(!!s && { s }) }]\n : agent.map(({ agentId, status }) => ({\n a: agentId,\n ...(!!status && { s: status }),\n }));\n}\n\nexport function getConductricsSelection(\n agent: string | Agent[],\n status?: AgentStatus\n): Promise {\n const conductricsApi = getApi();\n if (!conductricsApi) {\n return Promise.resolve(null);\n }\n\n return new Promise((resolve, reject) => {\n const agents = normalizeAgents(agent, status);\n conductricsApi?.exec(agents, (error, result) => {\n if (error) {\n reject(error);\n }\n resolve(result);\n });\n });\n}\n\nexport function setConductricsSelectionOK(agent: string | Agent[]) {\n return getConductricsSelection(agent, Status.OK);\n}\n\nexport function sendRewardAsync(reward: string, value?: number): Promise {\n const conductricsApi = getApi();\n if (!conductricsApi) {\n return Promise.resolve();\n }\n\n return new Promise((resolve, reject) => {\n conductricsApi?.exec([{ g: reward, v: value }], (error) => {\n if (error) {\n logError('sendRewardError', error.message, `Reward ID: ${reward}`);\n reject(error);\n return;\n }\n resolve();\n });\n });\n}\n\nexport function sendReward(reward: string, value?: number) {\n const conductricsApi = getApi();\n if (!conductricsApi) {\n return;\n }\n\n conductricsApi?.exec([{ g: reward, v: value }], () => null);\n}\n","import { isBrowser } from '@dx-ui/utilities-is-browser';\nimport type { Selection, ConstructorParams, Agent, Result, AgentStatus } from './conductrics';\nimport {\n isApiLoaded,\n getConductricsSelection,\n initConductrics,\n globalizeSelections,\n} from './conductrics';\nimport { useQuery, useQueryClient } from '@tanstack/react-query';\nimport { useEffect } from 'react';\n\nexport type ConductricsSelection = {\n selection: Selection | null;\n isLoaded: boolean;\n error: Error | null;\n};\n\ntype AgentsSelection = Record;\n\ntype StateTransformer = (agentId: string) => ConductricsSelection;\n\ntype ConductricsResult = Result | null | undefined;\n\nexport type ClientState = {\n isInitialized: boolean;\n isLoading: boolean;\n error: null | Error;\n};\n\nconst getInitKey = () => 'conductricsInit' + (isBrowser ? window.location.pathname : '');\n\nconst queryKeys = {\n initKey: getInitKey(),\n agentKey: 'conductricsSelections',\n} as const;\n\nconst defaultClientState: ClientState = {\n isInitialized: false,\n isLoading: true,\n error: null,\n};\n\nfunction reduceAgents(\n agents: Agent[],\n stateOrTransformer: ConductricsSelection | StateTransformer\n): AgentsSelection {\n return agents.reduce((acc, { agentId }) => {\n const state =\n typeof stateOrTransformer === 'function' ? stateOrTransformer(agentId) : stateOrTransformer;\n return { ...acc, [agentId]: state };\n }, {});\n}\n\nfunction useConductricsClientQuery() {\n return useQuery({\n queryKey: [getInitKey()],\n initialData: defaultClientState,\n gcTime: Infinity,\n staleTime: Infinity,\n enabled: false,\n });\n}\n\nfunction useConductricsSelectionQuery(agents: Agent[], status?: AgentStatus) {\n const { data: clientState } = useConductricsClientQuery();\n const {\n data,\n isSuccess,\n error: queryError,\n isLoading: queryIsLoading,\n } = useQuery({\n queryKey: [queryKeys.agentKey, agents, status],\n queryFn: () => getConductricsSelection(agents, status),\n enabled: clientState.isInitialized,\n retry: false,\n });\n\n useEffect(() => {\n if (isSuccess && data?.sels) {\n Object.entries(data.sels).forEach(([agentId, choice]) => {\n globalizeSelections(choice, agentId);\n });\n }\n }, [isSuccess, data]);\n\n const error = clientState.error || queryError;\n const isLoading = clientState.isLoading || (clientState.isInitialized && queryIsLoading);\n return { data, error, isLoading };\n}\n\nfunction useSelection(agents: Agent[], status?: AgentStatus) {\n const isSingleAgent = agents?.length === 1;\n const { data, error, isLoading } = useConductricsSelectionQuery(agents, status);\n\n const isLoaded = !isLoading;\n const defaultState: ConductricsSelection = { selection: null, isLoaded, error };\n const getSelection = (agentId: string) => {\n const item = data?.items?.find(({ a }) => a === agentId);\n return {\n choice: data?.sels?.[agentId],\n status: item?.s,\n meta: item?.md,\n };\n };\n\n // Bail early if the conductrics API is not available\n if (error) {\n return isSingleAgent ? defaultState : reduceAgents(agents, defaultState);\n }\n\n const selectedAgentsState = reduceAgents(agents, (agentId: string) => {\n const selection = getSelection(agentId);\n return { error, isLoaded, selection };\n });\n\n const agentsState: ConductricsSelection | AgentsSelection = isLoaded\n ? selectedAgentsState\n : reduceAgents(agents, defaultState);\n\n // If there's one selection, send back the specific agent's state due to the function signature\n const firstAgent = agents[0];\n return isSingleAgent && firstAgent ? agentsState[firstAgent?.agentId] : agentsState;\n}\n\n// Supports singular or multiple agents (such as MVT)\nexport function useConductricsSelection(\n agentId: string,\n status?: AgentStatus\n): ConductricsSelection;\nexport function useConductricsSelection(agents: Agent[]): AgentsSelection;\nexport function useConductricsSelection(agentId: string | Agent[], status?: AgentStatus) {\n const agents = typeof agentId === 'string' ? [{ agentId, status }] : agentId;\n return useSelection(agents, status);\n}\n\nexport function useInitConductrics() {\n const client = useQueryClient();\n\n // Prime the cache\n useConductricsClientQuery();\n\n if (isBrowser) {\n if (window.conductricsSelsPath !== window.location.pathname) {\n window.conductricsSelsPath = window.location.pathname;\n window.conductricsSels = undefined;\n }\n }\n\n return (params?: ConstructorParams) => {\n if (isApiLoaded()) {\n initConductrics(params);\n client.setQueryData([getInitKey()], {\n isInitialized: true,\n isLoading: false,\n error: null,\n });\n } else {\n client.setQueryData([getInitKey()], {\n isInitialized: false,\n isLoading: false,\n error: new Error('api-load-error'),\n });\n }\n };\n}\n","export * from './conductrics';\nexport * from './conductrics-hooks';\nexport * from './conductrics-server';\n","export * from './lib';\n","import type { BrandCode } from './types';\n\ntype BrandCodeToBrandNameMapper = {\n [key in keyof BrandCode]: string | null;\n};\nexport const brandCodeToBrandNameMapper: BrandCodeToBrandNameMapper = {\n CH: 'conrad-hotels',\n DT: 'doubletree-by-hilton',\n ES: 'embassy-suites',\n EY: 'livsmart-studios',\n GI: 'hilton-garden-inn',\n GU: 'graduate-hotels',\n GV: 'hilton-grand-vacations',\n HH: null,\n HI: 'hilton-hotels',\n HP: 'hampton-by-hilton',\n HT: 'home2-suites',\n HW: 'homewood-suites',\n LX: 'small-luxury-hotels-slh',\n ND: 'nomad-hotels',\n OL: 'lxr-hotels',\n OU: 'autocamp-stays',\n PE: 'spark-by-hilton',\n PO: 'tempo-by-hilton',\n PY: 'canopy-by-hilton',\n QQ: 'curio-collection',\n RU: 'tru-by-hilton',\n SA: 'signia-hilton',\n UA: 'motto-by-hilton',\n UP: 'tapestry-collection',\n WA: 'waldorf-astoria',\n WW: null,\n};\n","export type Dates = {\n arrivalDate?: Date | null;\n flexibleDates?: boolean;\n departureDate?: Date | null;\n};\n\nexport type BaseUriBuilderParams = {\n urlParams?: T1;\n relative?: boolean;\n locale?: string;\n path?: T2;\n brandCode?: keyof BrandCode;\n baseUrl?: string;\n brandSlug?: string;\n primarySlug?: string;\n} & ({ brandCode?: never } | { brandSlug?: never });\n\nexport type BrandCode = {\n CH: 'CH';\n DT: 'DT';\n ES: 'ES';\n EY: 'EY';\n GI: 'GI';\n GU: 'GU';\n GV: 'GV';\n HH: 'HH';\n HI: 'HI';\n HP: 'HP';\n HT: 'HT';\n HW: 'HW';\n LX: 'LX';\n ND: 'ND';\n OL: 'OL';\n OU: 'OU';\n PE: 'PE';\n PO: 'PO';\n PY: 'PY';\n QQ: 'QQ';\n RU: 'RU';\n SA: 'SA';\n UA: 'UA';\n UP: 'UP';\n WA: 'WA';\n WW: 'WW';\n};\n\nexport type Locale = {\n ar: 'ar';\n cs: 'cs';\n da: 'da';\n de: 'de';\n en: 'en';\n es: 'es';\n fi: 'fi';\n fr: 'fr';\n it: 'it';\n ja: 'ja';\n ko: 'ko';\n nl: 'nl';\n no: 'no';\n pl: 'pl';\n pt: 'pt';\n ro: 'ro';\n ru: 'ru';\n sv: 'sv';\n th: 'th';\n tr: 'tr';\n zh: 'zh';\n};\n\nexport type Person = { age: number | null };\nexport type Adult = Partial;\nexport type Child = Person;\n\nexport type Room = {\n adults: Adult[] | number;\n children: Child[] | number;\n};\n\nexport type CBPRoom = {\n adults: Adult[];\n children: Child[];\n};\n\nexport type Rates = {\n aarp?: boolean;\n corporateAccount?: string;\n employeeRate?: boolean;\n friendsAndFamilyRate?: boolean;\n government?: boolean;\n groupCode?: string;\n offerId?: number | null;\n ownerHGVRate?: boolean;\n ownerVIPRate?: boolean;\n pnd?: string | null;\n promoCode?: string;\n requestedRatesOnly?: boolean;\n senior?: boolean;\n smbRate?: boolean | null;\n travelAgents?: boolean;\n tripleA?: boolean;\n usePoints?: boolean;\n [prop: string]: string | boolean | number | null | undefined;\n};\n\nexport const RatePlanCodes = {\n AAA: 'HCAAA',\n AARP: 'HCARP',\n GOVERNMENT_MILITARY: 'GDSGOV',\n SENIOR: 'GDSSNR',\n USE_POINTS: 'HCSMR',\n} as const;\n\nexport const RatePlanParamKeys = {\n aarp: 'aarpRate',\n corporateAccount: 'corporateCode',\n employeeRate: 'employeeRate',\n friendsAndFamilyRate: 'friendsAndFamilyRate',\n fromId: 'fromId',\n government: 'governmentOrMilitaryRate',\n groupCode: 'groupCode',\n offerId: 'offerId',\n ownerHGVRate: 'ownerHGVRate',\n ownerVIPRate: 'ownerVIPRate',\n pnd: 'pnd',\n promoCode: 'promotionCode',\n requestedRatesOnly: 'requestedRatesOnly',\n senior: 'seniorRate',\n smbRate: 'smbRate',\n spec_plan: 'spec_plan',\n travelAgentId: 'travelAgentId',\n travelAgents: 'travelAgentRate',\n tripleA: 'aaaRate',\n usePoints: 'redeemPts',\n} as const;\n\nexport const sortByValues = [\n 'distance',\n 'points_ascending',\n 'points_descending',\n 'price_ascending',\n 'price_descending',\n 'brand',\n] as const;\nexport type SortByValues = (typeof sortByValues)[number];\nexport function isSortByValue(someString: string): someString is SortByValues {\n return Boolean(sortByValues.find((value) => someString === value));\n}\n\nexport const tripAdvisorRatings = [\n 'fiveAndUp',\n 'fourAndUp',\n 'threeAndUp',\n 'twoAndUp',\n 'allRatings',\n] as const;\nexport type TripAdvisorRatings = (typeof tripAdvisorRatings)[number];\nexport function isTripAdvisorRating(someString: string): someString is TripAdvisorRatings {\n return Boolean(tripAdvisorRatings.find((rating) => rating === someString));\n}\n","import type { Room, Rates, Dates, Person, CBPRoom } from '../types';\nimport { RatePlanParamKeys } from '../types';\nimport { format } from 'date-fns';\n\n/**\n * create a safe query parameter string for specialRates based parameters\n * @param rates {Rates}\n * @returns string\n */\nexport const buildRatesParams = (params: URLSearchParams, rates: Rates) => {\n Object.keys(rates).forEach((rateKey) => {\n if (rates[rateKey]) {\n params.append(\n RatePlanParamKeys[rateKey as keyof typeof RatePlanParamKeys],\n encodeURI(rates[rateKey] as string)\n );\n }\n });\n};\n\n/**\n * Maps the original Room type to the newer room type that includes child ages for CBP (child based pricing)\n * @param rooms\n * @returns CBPRoom[]\n */\nconst mapRoomsArrayToCBPFormat = (rooms: Room[]) =>\n rooms.reduce((accum, curr) => {\n // if either param is old occuptant number then convert to array of objects, otherwise use new CBP value that is passed\n const adults: Person[] =\n typeof curr.adults === 'number' ? Array(curr.adults).fill({ age: undefined }) : curr.adults;\n const children: Person[] =\n typeof curr.children === 'number'\n ? Array(curr.children).fill({ age: undefined })\n : curr.children;\n accum.push({ adults, children });\n return accum;\n }, [] as CBPRoom[]);\n\n/**\n * create a safe query parameter string for rooms based query parameters\n * @param rooms\n * @returns string\n */\nexport const buildRoomsParams = (params: URLSearchParams, numRooms?: number, rooms?: Room[]) => {\n if (!rooms && !numRooms) return;\n\n if (rooms) {\n const normalizedRooms = mapRoomsArrayToCBPFormat(rooms);\n if (normalizedRooms.length !== numRooms) {\n params.append('numRooms', String(numRooms));\n }\n\n // single room logic param names differ from multiroom\n else if (normalizedRooms.length === 1 && normalizedRooms[0]) {\n params.append('numRooms', String(normalizedRooms.length));\n params.append('numAdults', String(normalizedRooms[0].adults.length));\n params.append('numChildren', String(normalizedRooms[0].children.length));\n params.append(\n 'room1ChildAges',\n normalizedRooms[0].children\n .filter((c) => c.age !== undefined)\n .map((c) => c.age)\n .join(',')\n );\n params.append(\n 'room1AdultAges',\n normalizedRooms[0].adults\n .filter((a) => a.age !== undefined)\n .map((a) => a.age)\n .join(',')\n );\n } else {\n params.append('numRooms', String(normalizedRooms.length));\n normalizedRooms.forEach((room, i) => {\n const currentRoom = normalizedRooms[i];\n params.append(`room${i + 1}NumAdults`, String(room.adults.length));\n params.append(`room${i + 1}NumChildren`, String(room.children.length));\n if (currentRoom)\n params.append(\n `room${i + 1}AdultAges`,\n currentRoom.adults\n .filter((a) => a.age !== undefined)\n .map((a) => a.age)\n .join(',')\n );\n if (currentRoom)\n params.append(\n `room${i + 1}ChildAges`,\n currentRoom.children\n .filter((c) => c.age !== undefined)\n .map((c) => c.age)\n .join(',')\n );\n });\n }\n } else if (numRooms) params.append('numRooms', String(numRooms));\n};\n\n/**\n * Creates a safe query parameter string for dates based query parameters.\n * @param dates\n * @returns string\n */\n\nexport const buildDatesParams = (params: URLSearchParams, dates?: Dates) => {\n if (!dates) return;\n\n if (dates?.arrivalDate) params.append('arrivalDate', format(dates?.arrivalDate, 'yyyy-MM-dd'));\n if (dates?.departureDate)\n params.append('departureDate', format(dates?.departureDate, 'yyyy-MM-dd'));\n if (dates?.flexibleDates !== undefined)\n params.append('flexibleDates', dates?.flexibleDates.toString());\n};\n\nexport type GetGroupOrTransientSubpathProps = {\n groupsPath: string;\n numAttendees: number;\n numRooms: number;\n transientPath: string;\n};\n/**\n *\n * @param groupPath - path that corresponds to 10+ or group booking (example: group-search, group)\n * @param transientPath - path that corresponds to <10 or transient booking (example: search, reservations)\n * @param numRooms - number of rooms requested (typically for hotel rooms)\n * @param numAttendees - number of attendees requested (typically for meeting room)\n */\nexport const getGroupOrTransientSubpath = ({\n groupsPath,\n numAttendees,\n numRooms,\n transientPath,\n}: GetGroupOrTransientSubpathProps) => {\n return numRooms >= 10 || numAttendees > 0 ? groupsPath : transientPath;\n};\n","import type {\n Room,\n Rates,\n Dates,\n SortByValues,\n BaseUriBuilderParams,\n TripAdvisorRatings,\n} from '../types';\nimport { brandCodeToBrandNameMapper } from '../constants';\nimport {\n buildRoomsParams,\n buildRatesParams,\n buildDatesParams,\n getGroupOrTransientSubpath,\n} from '../uri-builder-utils/uri-builder.utils';\n\nexport type Path =\n | 'go-hilton'\n | 'hgv-max'\n | 'find-hotels'\n | 'go-hilton-find-hotels'\n | 'hgv-max-find-hotels'\n | 'search'\n | 'group-search';\n\nexport type SearchUrlParams = {\n adjoiningRoomStay?: boolean;\n availableHotelsOnly?: boolean;\n content?: string;\n dates?: Dates;\n displayCurrency?: string;\n f_amenityIds?: string[];\n f_attributeIds?: string[];\n f_brandCodes?: string[];\n f_price?: [number, number];\n f_tripAdvisorRatings?: TripAdvisorRatings;\n maxPoints?: number | null;\n numAttendees?: number | null;\n numRooms?: number | null;\n placeId?: string | null;\n programAccountId?: number | null;\n query?: string;\n rates?: Rates;\n rooms?: Room[];\n sessionToken?: string;\n sortBy?: SortByValues;\n specialRateTokens?: string[];\n cid?: string;\n};\n\n/**\n * Returns an OHW formatted search URL\n *\n * @param {SearchUrlParams} urlParams\n * @param {boolean} relative - use relative pathing (defaults to absolute pathing)\n * @param {keyof Locale} locale Language locale (defaults to en)\n * @param {Path} path (optional) search path ('go-hilton' | 'find-hotels' | 'go-hilton-find-hotels' | 'search' | 'group-search'). Defaults to 'search'\n * @param {keyof BrandCode} brandCode (optional) Hilton brand code\n *\n * The following paths map to following search experiences\n * go-hilton => search with tmtp options\n * find-hotels => search zero experience\n * go-hilton-find-hotels => search zero with tmtp options\n * search => main search page\n * group-search => 10+ search experience\n *\n * The following url parameters apply to find-hotels, search, go-hilton and go-hilton-find-hotels\n *\n * brandCode\n *\n * locale\n *\n * query\n *\n * placeId\n *\n * arrivalDate\n *\n * departureDate\n *\n * datesFlex\n *\n * sessionToken\n *\n * rooms\n *\n * aarp\n *\n * corporateAccount\n *\n * employeeRate\n *\n * friendsAndFamilyRate\n *\n * government\n *\n * groupCode\n *\n * offerId\n *\n * ownerVIPRate\n *\n * ownerHGVRate\n *\n * pnd\n *\n * promoCode\n *\n * senior\n *\n * travelAgents\n *\n * tripleA\n *\n * usePoints\n *\n * specialRateTokens\n *\n * requestedRatesOnly\n *\n * displayCurrency\n *\n * adjoiningRoomStay\n *\n * maxPoints\n *\n * sortBy\n *\n * f_amenityIds\n *\n * f_attributeIds\n *\n * f_brandCodes\n *\n * f_price\n *\n * f_tripAdvisorRatings\n *\n * availableHotelsOnly\n *\n * The following url parameters apply to group search (10+).\n *\n * query\n *\n * brandCode\n *\n * arrivalDate\n *\n * departureDate\n *\n * numRooms\n *\n * numAttendees\n *\n * sessionToken\n *\n * placeId\n */\nexport const searchUriBuilder = ({\n brandCode = 'HH',\n locale = 'en',\n path = 'search',\n urlParams,\n relative,\n baseUrl,\n brandSlug,\n primarySlug,\n}: BaseUriBuilderParams) => {\n const {\n adjoiningRoomStay,\n availableHotelsOnly,\n content,\n dates,\n displayCurrency,\n f_amenityIds,\n f_attributeIds,\n f_brandCodes,\n f_price,\n f_tripAdvisorRatings,\n maxPoints,\n numAttendees,\n numRooms,\n placeId,\n programAccountId,\n query = '',\n rates,\n rooms,\n sessionToken,\n sortBy,\n specialRateTokens,\n cid,\n } = urlParams || {};\n\n // use relative pathing if enabled or if user does not provide baseUrl\n let url = relative || (!relative && !baseUrl) ? `/${locale}` : `${baseUrl}/${locale}`;\n const isDateless = !(dates?.arrivalDate || dates?.departureDate);\n const basePath = getGroupOrTransientSubpath({\n numAttendees: numAttendees ?? 0,\n numRooms: numRooms ?? 0,\n transientPath: path,\n groupsPath: 'group-search',\n });\n\n // switch between different search paths, depending on desired experience\n switch (basePath) {\n case 'go-hilton':\n url += '/go-hilton/search/';\n break;\n case 'hgv-max':\n url += '/hgv-max/search/';\n break;\n case 'find-hotels':\n if (primarySlug) {\n url += `/${primarySlug}`;\n }\n url += '/search';\n if (brandSlug) {\n url += `/${brandSlug}`;\n }\n url += '/find-hotels/';\n break;\n case 'go-hilton-find-hotels':\n url += '/go-hilton/find-hotels/';\n break;\n case 'hgv-max-find-hotels':\n url += '/hgv-max/search/find-hotels/';\n break;\n case 'group-search':\n url += '/group-search/';\n break;\n case 'search':\n default:\n url += '/search/';\n }\n\n //only append brand if brandcode actually should be its own search page\n if (basePath === 'search' && brandCodeToBrandNameMapper[brandCode])\n url += `${brandCodeToBrandNameMapper[brandCode]}/`;\n\n //if no url params just return url\n if (!urlParams || !Object.keys(urlParams)) return url;\n\n const params = new URLSearchParams();\n if (placeId) params.append('placeId', placeId);\n if (dates) buildDatesParams(params, dates);\n // these parameters dont apply to group search (10+)\n if (basePath !== 'group-search') {\n if (rooms) buildRoomsParams(params, numRooms ? numRooms : rooms.length, rooms);\n if (rates) buildRatesParams(params, rates);\n if (specialRateTokens) params.append('specialRateTokens', specialRateTokens.join(','));\n if (displayCurrency) params.append('displayCurrency', displayCurrency);\n if (adjoiningRoomStay) params.append('adjoiningRoomStay', String(adjoiningRoomStay));\n if (isDateless && typeof maxPoints === 'number')\n params.append('maxPoints', maxPoints.toString());\n if (sortBy) params.append('sortBy', sortBy);\n if (f_amenityIds) params.append('f-amenityIds', f_amenityIds.join(','));\n if (f_attributeIds && f_attributeIds?.length)\n params.append('f-attributeIds', f_attributeIds.join(','));\n if (f_brandCodes) params.append('f-brandCodes', f_brandCodes.join(','));\n if (f_price) params.append('f-price', f_price.join(','));\n if (f_tripAdvisorRatings) params.append('f-tripAdvisorRatings', f_tripAdvisorRatings);\n if (availableHotelsOnly) params.append('availableHotelsOnly', String(availableHotelsOnly));\n if (programAccountId) params.append('programAccountId', programAccountId.toString());\n }\n // these parameters only apply to group search (10+ search)\n else {\n if (brandCode) params.append('brandCode', brandCode);\n if (numRooms) params.append('numRooms', numRooms.toString());\n if (numAttendees) params.append('attendee_count', numAttendees.toString());\n }\n // passthrough parameters that apply to all searches\n if (sessionToken) params.append('sessionToken', sessionToken);\n if (cid) params.append('cid', cid);\n if (content) params.append('content', content);\n\n const queryString = params.toString();\n\n return `${url}?query=${encodeURIComponent(query)}${queryString ? '&' : ''}${queryString}`;\n};\n","export * from './search-uri-builder';\n","import type { BaseUriBuilderParams } from '../types';\nimport { brandCodeToBrandNameMapper } from '../constants';\nimport type { SearchUrlParams } from '../search-uri-builder';\n\nexport type BasePath = 'locations' | 'meetings-events';\n\nexport type LocationUrlParams = Omit & {\n redeemPts?: boolean;\n location?: LocationCoords;\n bounds?: Bounds;\n geocodeType?: string;\n placeUri?: string | null;\n};\n\ntype LocationCoords = {\n latitude: number;\n longitude: number;\n};\n\ntype Bounds = {\n northeast: {\n latitude: number;\n longitude: number;\n };\n southwest: {\n latitude: number;\n longitude: number;\n };\n};\n/**\n * Returns an OHW formatted search URL\n *\n * @param {boolean} relative Use relative pathing (defaults to absolute pathing)\n * @param {string} locale Language locale (defaults to en)\n * @param {BasePath} BasePath (optional) dream BasePath ('locations' | 'meetings-events'). Defaults to 'locations'\n * @param {keyof BrandCode} brandCode (optional) Hilton brand code (defaults to HH)\n *\n * The following paths map to following search experiences\n * locations => default locations page\n * meetings-event => Venue search ( 10+ dream ) experience\n *\n * The following url parameters apply to locations page (dream pages)\n *\n * brandName = ''\n *\n * locale = 'en'\n *\n * location = ''\n *\n * displayCurrency = 'LOCAL'\n *\n * redeemPts = false\n *\n * The following url parameters apply to meeting-events page (venue pages)\n *\n * locale = 'en'\n *\n * location = ''\n *\n * sortBy\n *\n * f_amenityIds\n *\n * f_brandCodes\n *\n * f_price\n *\n * f_tripAdvisorRatings\n *\n */\nexport const locationUriBuilder = ({\n locale = 'en',\n path = 'locations',\n brandCode,\n urlParams,\n relative,\n baseUrl,\n}: BaseUriBuilderParams) => {\n const {\n displayCurrency,\n redeemPts,\n sessionToken,\n sortBy,\n f_amenityIds,\n f_brandCodes,\n f_price,\n f_tripAdvisorRatings,\n adjoiningRoomStay,\n placeUri,\n placeId,\n location,\n geocodeType,\n bounds,\n query,\n cid,\n content,\n } = urlParams || {};\n\n // use relative pathing if enabled or if user does not provide baseUrl\n let fullPath =\n relative || (!relative && !baseUrl)\n ? `/${locale}`\n : //if the base URL has a trailing slash, do not append a second one\n `${baseUrl}${baseUrl?.endsWith('/') ? '' : '/'}${locale}`;\n\n // switch between different dream paths depending on desired experience\n switch (path) {\n case 'meetings-events':\n fullPath += '/meetings-events/';\n break;\n case 'locations':\n default:\n fullPath += '/locations/';\n }\n\n if (placeUri) {\n fullPath += placeUri.endsWith('/') ? placeUri : `${placeUri}/`;\n }\n\n const isBrandCodeMatchedWithFilter =\n !f_brandCodes || (f_brandCodes.length === 1 && f_brandCodes[0] === brandCode);\n // brandname parameter should be added to the uri slug to dream locations pages\n if (\n brandCode &&\n !!brandCodeToBrandNameMapper[brandCode] &&\n path === 'locations' &&\n isBrandCodeMatchedWithFilter\n ) {\n fullPath += `${brandCodeToBrandNameMapper[brandCode]}/`;\n }\n\n const params = new URLSearchParams();\n if (path !== 'meetings-events') {\n if (displayCurrency) params.set('displayCurrency', displayCurrency);\n if (redeemPts) params.append('redeemPts', String(redeemPts));\n if (sortBy) params.append('sortBy', sortBy);\n if (f_amenityIds) params.append('f-amenityIds', f_amenityIds.join(','));\n if (f_brandCodes) params.append('f-brandCodes', f_brandCodes.join(','));\n if (f_price) params.append('f-price', String(f_price));\n if (f_tripAdvisorRatings) params.append('f-tripAdvisorRatings', f_tripAdvisorRatings);\n if (adjoiningRoomStay) params.append('adjoiningRoomStay', String(adjoiningRoomStay));\n if (placeId) params.append('placeId', placeId);\n if (query) params.append('query', query);\n if (location) {\n params.append('coords', `${location.latitude},${location.longitude}`);\n if (geocodeType) params.append('geocodeType', geocodeType);\n }\n if (bounds) {\n params.append(\n 'bounds',\n `${bounds.southwest.latitude},${bounds.southwest.longitude},${bounds.northeast.latitude},${bounds.northeast.longitude}`\n );\n }\n if (content) {\n params.append('content', content);\n }\n }\n\n if (sessionToken) params.append('sessionToken', sessionToken);\n if (cid) params.append('cid', cid);\n\n const queryParams = params.toString();\n fullPath += queryParams ? `?${queryParams}` : '';\n return fullPath;\n};\n","export * from './location-uri-builder';\n","import type { Dates, Room, Adult, Child, BaseUriBuilderParams } from '../types';\nimport { format, startOfToday, addDays } from 'date-fns';\nimport { getGroupOrTransientSubpath } from '../uri-builder-utils/uri-builder.utils';\n\nexport type BookRates = {\n aaaRate?: boolean | null;\n aarpRate?: boolean | null;\n corporateCode?: string | null;\n employeeRate?: boolean | null;\n friendsAndFamilyRate?: boolean | null;\n fromId?: string | null;\n governmentRate?: boolean | null;\n groupCode?: string | null;\n offerId?: number | null;\n ownerHGVRate?: boolean | null;\n ownerVIPRate?: boolean | null;\n pnd?: string | null;\n promotionCode?: string | null;\n ratePlanCodes?: string | null;\n redeemPts?: boolean | null;\n roomCategory?: string | null;\n roomTypeCode?: string | null;\n seniorRate?: boolean | null;\n smbRate?: boolean | null;\n travelAgent?: boolean | null;\n travelAgentId?: string | null;\n};\n\nexport type BookPath = 'book' | 'modify';\nexport type BookUrlParams = {\n dates?: Dates;\n rates?: BookRates;\n rooms?: Room[];\n numRooms?: number | null;\n numAttendees?: number | null;\n ctyhocn: string;\n displayCurrency?: string;\n adjoiningRoomStay?: boolean;\n programAccountId?: number | null;\n additionalQS?: {\n [key: string]: string | boolean | undefined;\n };\n};\n\ntype BookUrlQS = { [key: string]: undefined | string | number | null | boolean };\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function bookUriBuilder({\n locale = 'en',\n path = 'book',\n urlParams,\n relative,\n baseUrl,\n page = 'rooms',\n}: BaseUriBuilderParams & {\n page?: 'rooms' | 'rates' | 'flexibledates' | 'deeplink' | 'payment';\n}): string {\n const urlparts: string[] = [buildBaseUrl({ relative, baseUrl, locale })];\n\n const numRooms = urlParams?.numRooms ?? urlParams?.rooms?.length ?? 1;\n const numAttendees = urlParams?.numAttendees ? urlParams?.numAttendees : 0;\n\n if (path === 'modify') {\n urlparts.push('modify');\n } else {\n urlparts.push('book');\n }\n\n urlparts.push(\n getGroupOrTransientSubpath({\n numAttendees: numAttendees ?? 0,\n numRooms: numRooms ?? 0,\n transientPath: 'reservation',\n groupsPath: 'group',\n }),\n page\n );\n\n return `${urlparts.join('/')}/?${bookParamBuilder(urlParams)}`;\n}\n\nexport function bookParamBuilder(\n urlParams: BaseUriBuilderParams['urlParams']\n) {\n const {\n ctyhocn,\n displayCurrency,\n adjoiningRoomStay,\n dates,\n rooms,\n rates = {},\n additionalQS = {},\n numRooms,\n numAttendees,\n programAccountId,\n } = urlParams || {};\n\n const arrivalDate = dates?.arrivalDate || startOfToday();\n const departureDate = dates?.departureDate || addDays(startOfToday(), 1);\n const nonEmptyAdditionalQS = Object.fromEntries(\n Object.entries(additionalQS).filter(([, v]) => Boolean(v) || v === false)\n );\n\n const querystringObj: BookUrlQS = {\n ctyhocn,\n arrivalDate: formatDate(arrivalDate),\n departureDate: formatDate(departureDate),\n ...rates,\n ...(numRooms == null && !numAttendees && roomsToQS(rooms)),\n ...nonEmptyAdditionalQS,\n };\n\n if (displayCurrency) querystringObj.displayCurrency = displayCurrency;\n if (adjoiningRoomStay) querystringObj.adjoiningRoomStay = adjoiningRoomStay;\n if (numRooms != null) querystringObj.numRooms = numRooms;\n if (numRooms == null && numAttendees) querystringObj.numRooms = 0;\n if (numAttendees) querystringObj.numAttendees = numAttendees;\n if (additionalQS.cid) querystringObj.cid = additionalQS.cid;\n if (programAccountId) querystringObj.programAccountId = programAccountId;\n\n return new URLSearchParams(mapParams(querystringObj)).toString();\n}\n\n// Mimic the behavior of 'querystring' encode.\nfunction mapParams(params: T) {\n return Object.entries(params).reduce((params, [key, value]) => {\n if (typeof value === 'boolean') {\n return { ...params, [key]: String(value) };\n }\n if (typeof value === 'number') {\n return { ...params, [key]: isFinite(value) ? String(value) : '' };\n }\n if (typeof value === 'string') {\n return { ...params, [key]: value };\n }\n return { ...params, [key]: '' };\n }, {} as Record);\n}\n\nfunction buildBaseUrl({\n relative,\n baseUrl,\n locale,\n}: {\n relative?: boolean;\n baseUrl?: string;\n locale: string;\n}) {\n return relative || (!relative && !baseUrl) ? `/${locale}` : `${baseUrl}/${locale}`;\n}\n\nfunction formatDate(date: Date) {\n return format(date, 'yyyy-MM-dd');\n}\n\nfunction roomsToQS(rooms?: Room[]) {\n if (!rooms?.length) {\n return {\n room1NumAdults: 1,\n };\n }\n if ((rooms?.length || 1) >= 10) {\n return {\n numRooms: rooms?.length,\n };\n }\n return rooms.reduce((prev, curr, index) => {\n const adults: Adult[] =\n typeof curr.adults === 'number' ? Array(curr.adults).fill({ age: null }) : curr.adults;\n const children: Child[] =\n typeof curr.children === 'number' ? Array(curr.children).fill({ age: null }) : curr.children;\n\n const roomNumber = index + 1;\n if (adults.length) {\n prev[`room${roomNumber}NumAdults`] = adults.length;\n const adultAges = adults\n .filter((a) => a.age !== undefined && a.age !== null)\n .map((a) => a.age);\n if (adultAges.length) {\n prev[`room${roomNumber}AdultAges`] = adultAges.join(',');\n }\n }\n if (children.length) {\n prev[`room${roomNumber}NumChildren`] = children.length;\n const childAges = children.filter((c) => c.age !== null).map((c) => c.age);\n if (childAges.length) {\n prev[`room${roomNumber}ChildAges`] = childAges.join(',');\n }\n }\n\n return prev;\n }, {} as Record);\n}\n","import type { Maybe } from '@dx-ui/gql-types';\nimport {\n buildDatesParams,\n buildRatesParams,\n buildRoomsParams,\n} from '../uri-builder-utils/uri-builder.utils';\nimport type { Dates, Rates, Room } from '../types';\n\nexport type PropertyUrlParams = {\n dates?: Dates;\n numAttendees?: number | null;\n numRooms?: number | null;\n query?: string;\n rates?: Rates;\n redeemPts?: boolean;\n rooms?: Room[];\n adjoiningRoomStay?: boolean;\n sessionToken?: string;\n specialRateTokens?: string[];\n displayCurrency?: string | null;\n};\n/**\n * Returns an OHW formatted property URL\n *\n * @param {PropertyUrlParams} urlParams\n *\n */\n\nexport const propertyUriBuilder = ({\n baseUrl,\n urlParams,\n}: {\n baseUrl?: Maybe;\n urlParams?: PropertyUrlParams;\n}) => {\n if (!urlParams || !Object.keys(urlParams).length) return baseUrl;\n const {\n dates,\n rooms,\n rates,\n specialRateTokens,\n numRooms,\n sessionToken,\n displayCurrency,\n adjoiningRoomStay,\n } = urlParams ?? {};\n\n const params = new URLSearchParams();\n if (dates) buildDatesParams(params, dates);\n if (rooms) buildRoomsParams(params, numRooms ? numRooms : rooms.length, rooms);\n if (adjoiningRoomStay) params.append('adjoiningRoomStay', adjoiningRoomStay.toString());\n if (displayCurrency) params.append('displayCurrency', displayCurrency);\n if (rates) buildRatesParams(params, rates);\n if (specialRateTokens && !!specialRateTokens.length)\n params.append('specialRateTokens', specialRateTokens.join(','));\n if (sessionToken) params.append('sessionToken', sessionToken);\n\n const queryString = params.toString();\n return `${baseUrl}?${queryString}`;\n};\n","export * from './property-uri-builder';\n","export * from './uri-builder';\nexport * from './search-uri-builder';\nexport * from './location-uri-builder';\nexport * from './book-uri-builder';\nexport * from './types';\nexport * from './property-uri-builder';\n","export * from './lib';\n","import classnames from 'classnames';\nimport { Icon } from '@dx-ui/osc-icon';\nimport type { IconProps } from '@dx-ui/osc-icon';\n\nexport function BrandIcon(props: IconProps) {\n return (\n \n \n \n );\n}\n","import classnames from 'classnames';\n\nexport type Variant = 'solid' | 'outline';\n\nexport type ClassNamesArgs = Partial<{\n brandComponentTheme: CmsBrandComponentTheme;\n variant: Variant;\n}>;\n\nexport function getClassnames({ brandComponentTheme: theme, variant }: ClassNamesArgs) {\n const isDark = theme === 'dark';\n const isLight = theme === 'light';\n const isSolid = variant === 'solid';\n const isOutline = variant === 'outline';\n return classnames('btn-brand motion-safe:transition', {\n 'btn-brand-solid': isSolid && !isLight && !isDark,\n 'btn-brand-outline': isOutline && !isLight && !isDark,\n 'btn-brand-dark': isDark && !isSolid && !isOutline,\n 'btn-brand-dark-outline': isDark && isOutline,\n 'btn-brand-dark-solid': isDark && isSolid,\n 'btn-brand-light': isLight && !isSolid && !isOutline,\n 'btn-brand-light-outline': isLight && isOutline,\n 'btn-brand-light-solid': isLight && isSolid,\n });\n}\n","import type { MouseEvent } from 'react';\nimport { forwardRef } from 'react';\nimport cx from 'classnames';\nimport { Link } from '@dx-ui/osc-link';\nimport { BrandIcon } from './brand-icon';\nimport { getClassnames } from './util/button';\nimport type { Icon } from '@dx-ui/osc-icon';\nimport type { Variant } from './util/button';\n\nexport interface BrandLinkProps extends Omit {\n label: React.ReactNode;\n /** Add Icon props to buttons with Icons */\n iconProps?: React.ComponentProps;\n /** Brand color themes, \"light\" | \"dark\" */\n brandComponentTheme?: CmsBrandComponentTheme;\n /** Button variant */\n variant?: Variant;\n /** OnClick callback */\n onClick?: (e: MouseEvent) => void;\n}\n\nexport const BrandLink = forwardRef(\n ({ label, iconProps, brandComponentTheme, variant, onClick, ...linkProps }, ref) => (\n \n {iconProps ? : null}\n {label}\n \n )\n);\n\nBrandLink.displayName = 'BrandLink';\n\nexport default BrandLink;\n","import { forwardRef } from 'react';\nimport cx from 'classnames';\nimport { BrandIcon } from './brand-icon';\nimport { getClassnames } from './util/button';\nimport type { Icon } from '@dx-ui/osc-icon';\nimport type { Variant } from './util/button';\n\nexport interface BrandButtonProps extends Omit, 'type'> {\n /** Button label */\n label?: React.ReactNode;\n /** Add Icon props to buttons with Icons */\n iconProps?: React.ComponentProps;\n /** Brand color themes, \"light\" | \"dark\" */\n brandComponentTheme?: CmsBrandComponentTheme;\n /** Button variant */\n variant?: Variant;\n}\n\nexport const BrandButton = forwardRef(\n ({ label, variant, iconProps, brandComponentTheme, ...buttonProps }, ref) => (\n \n \n {iconProps ? : null}\n {label}\n \n \n )\n);\n\nBrandButton.displayName = 'BrandButton';\n\nexport default BrandButton;\n","export * from './brand-link';\nexport * from './brand-button';\n","export * from './lib';\nexport type { Variant } from './lib/util/button';\n","import * as React from 'react';\nimport cx from 'classnames';\nimport Icon from '@dx-ui/osc-icon';\n\nexport type ControlBackProps = {\n /** used for screen readers and other assistive devices */\n label: string;\n /** the size of the control */\n size?: React.ComponentProps['size'];\n} & React.ButtonHTMLAttributes;\n\n/**\n * A simple button to be used any time you need an interaction to go back. like for pagination.\n */\nexport const ControlBack = React.forwardRef(\n ({ className, disabled, label, size = 'md', ...rest }, forwardedRef) => {\n return (\n \n {label}\n \n \n );\n }\n);\n\nControlBack.displayName = 'ControlBack';\n\nexport default ControlBack;\n","import * as React from 'react';\nimport cx from 'classnames';\nimport Icon from '@dx-ui/osc-icon';\n\nexport type ControlCloseProps = {\n /** used for screen readers and other assistive devices */\n label: string;\n /** the size of the control */\n size?: React.ComponentProps['size'];\n} & React.ButtonHTMLAttributes;\n\n/**\n * A simple button to be used any time you need an interaction to close something. like a popup.\n */\nexport const ControlClose = React.forwardRef(\n ({ className, label, disabled, size = 'md', ...rest }, forwardedRef) => (\n \n {label}\n \n \n )\n);\n\nControlClose.displayName = 'ControlClose';\n\nexport default ControlClose;\n","import * as React from 'react';\nimport cx from 'classnames';\nimport Icon from '@dx-ui/osc-icon';\n\nexport type ControlNextProps = {\n /** used for screen readers and other assistive devices */\n label: string;\n /** the size of the control */\n size?: React.ComponentProps['size'];\n} & React.ButtonHTMLAttributes;\n\n/**\n * A simple button to be used any time you need an interaction to go forward. like for pagination.\n */\nexport const ControlNext = React.forwardRef(\n ({ className, disabled, label, size = 'md', ...rest }, forwardedRef) => {\n return (\n \n {label}\n \n \n );\n }\n);\n\nControlNext.displayName = 'ControlNext';\n\nexport default ControlNext;\n","export * from './lib/control-back';\nexport * from './lib/control-close';\nexport * from './lib/control-next';\n","import * as React from 'react';\nimport * as Dialog from '@radix-ui/react-dialog';\nimport { useTranslation } from 'next-i18next';\nimport { ControlClose } from '@dx-ui/osc-controls';\nimport cx from 'classnames';\n\nexport type DialogSizes =\n | 'xs'\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl'\n | '2xl'\n | '3xl'\n | '4xl'\n | '5xl'\n | '6xl'\n | 'full'\n | 'container';\n\nexport type DialogBaseProps = {\n /** The className for the CloseButton to support custom curated sites */\n closeButtonClassName?: string;\n /** The className for the dialog tag */\n dialogClassName?: string;\n /** The className for the dialog overlay tag */\n dialogOverlayClassName?: string;\n /** The className for the dialog title tag */\n dialogTitleClassName?: string;\n /** The element that opens the dialog that focus should return to */\n dialogTrigger?: React.ReactNode;\n /** The size of the modal. */\n size?: DialogSizes;\n /** Allows passing of additional JSX to dialog. */\n bottomContent?: React.ReactNode;\n /** Whether the overlay is open by default (controlled). */\n isOpen?: boolean;\n /** Handler that is called when the overlay is dismissed. */\n onDismiss?: () => void;\n /** Sets whether header should be sticky in overflow scroll situations when a title is passed. Defaults to false */\n stickyHeader?: boolean;\n /** Optional data attribute to apply to the outer content wrapper */\n contentDataAttribute?: string;\n} & React.ComponentProps<'div'>;\n\nexport type DialogOptionalProps =\n | { ariaLabel?: never; title: string; hasChildrenWithTitle?: never }\n | { ariaLabel: string; title?: never; hasChildrenWithTitle?: never }\n | { ariaLabel?: never; title?: never; hasChildrenWithTitle: boolean };\n\nexport const DialogTitle = Dialog.Title;\n\nexport const DialogBase = React.forwardRef<\n HTMLDivElement,\n React.PropsWithChildren\n>(\n (\n {\n ariaLabel,\n children,\n className,\n closeButtonClassName,\n dialogClassName,\n dialogOverlayClassName,\n dialogTitleClassName,\n dialogTrigger,\n isOpen,\n title,\n size = 'md',\n bottomContent,\n onDismiss,\n hasChildrenWithTitle,\n stickyHeader = false,\n contentDataAttribute,\n },\n forwardedRef\n ) => {\n const innerRef = React.useRef>(null);\n const dialogRef = React.useRef>(null);\n\n React.useImperativeHandle(forwardedRef, () => dialogRef.current as HTMLDivElement);\n\n return (\n \n {dialogTrigger ? {dialogTrigger} : null}\n \n \n \n
    \n {hasChildrenWithTitle ? null : title ? (\n \n \n {title}\n \n {onDismiss && (\n \n )}\n
    \n ) : (\n \n )}\n {!title && onDismiss ? (\n
    \n \n
    \n ) : null}\n
    {children}
    \n {bottomContent}\n \n \n
    \n
    \n
    \n );\n }\n);\n\nDialogBase.displayName = 'DialogBase';\n\nfunction CloseButton({\n onDismiss,\n stickyHeader,\n className,\n}: Pick & { className?: string }) {\n const { t } = useTranslation('osc-dialog');\n return (\n \n \n \n );\n}\n","import * as React from 'react';\nimport type { DialogBaseProps, DialogOptionalProps } from './dialog.base';\nimport { DialogBase } from './dialog.base';\n\n/**\n * A modal is an overlay element which blocks interaction with elements outside it.\n *\n * Dialogs are windows containing contextual information, tasks, or workflows that appear over the user interface. Depending on the kind of Dialog, further interactions may be blocked until the Dialog is acknowledged.\n *\n * [Radix Primitive](https://www.radix-ui.com/primitives/docs/components/dialog)\n */\nexport const Dialog: React.FC> = (\n props\n) => {\n const dialogRef = React.useRef>(null);\n return ;\n};\n\nexport default Dialog;\n","import * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\nimport * as AlertDialog from '@radix-ui/react-alert-dialog';\nimport type { DialogBaseProps, DialogOptionalProps } from './dialog.base';\n\nexport type DialogAlertProps = Omit & {\n /**\n * The text of the cancel button\n */\n cancel?: string | null;\n /**\n * The text of the confirm button\n */\n confirm?: string | null;\n /** The element that opens the dialog that focus should return to */\n dialogTrigger?: React.ReactNode;\n /**\n * Callback for when the cancel button is clicked.\n * If this is not provided, the cancel button will not show.\n */\n onCancel?: (event: React.SyntheticEvent) => void;\n /**\n * Callback for when the confirm button is clicked.\n */\n onConfirm: (event: React.SyntheticEvent) => void;\n /**\n * Whether or not to stack the buttons vertically\n */\n stackedButtons?: boolean;\n} & DialogOptionalProps;\n\n/**\n * A dialog meant for a user to confirm an action. Escape will not close this dialog.\n */\nconst DialogAlert: React.FC> = ({\n ariaLabel,\n children,\n cancel,\n confirm,\n dialogTrigger,\n isOpen,\n onCancel,\n onConfirm,\n stackedButtons = true,\n title,\n ...rest\n}) => {\n const { t } = useTranslation('osc-dialog');\n const dialogRef = React.useRef>(null);\n const cancelText = cancel ?? t('cancel');\n const confirmText = confirm ?? t('ok');\n\n const handleCancel = (event: React.SyntheticEvent) => {\n onCancel?.(event);\n };\n\n const handleConfirm = (event: React.SyntheticEvent) => {\n onConfirm(event);\n };\n\n return (\n \n {dialogTrigger ? {dialogTrigger} : null}\n \n \n event.preventDefault()}\n ref={dialogRef}\n >\n
    \n {title ? (\n \n {title}\n \n ) : (\n \n )}\n {children}\n
    \n \n {!onCancel ? (\n \n \n {confirmText}\n \n \n ) : (\n \n \n {confirmText}\n \n \n )}\n {onCancel ? (\n \n \n {cancelText}\n \n \n ) : null}\n \n \n
    \n
    \n
    \n );\n};\n\nexport { DialogAlert };\nexport default DialogAlert;\n","import { forwardRef } from 'react';\nimport * as Dialog from '@radix-ui/react-dialog';\nimport { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\n\ntype ActionButton = {\n adaDescription?: string;\n label?: string;\n} & React.ComponentPropsWithRef<'button'>;\n\ntype ShouldEnableActionButton = ActionButton & { isEnabled?: boolean };\n\nexport type ActionButtonProps = {\n /** Props passed to each button type. */\n buttonOptions?: {\n cancel?: ActionButton;\n confirm?: ActionButton;\n reset?: ShouldEnableActionButton;\n };\n /** Hander called when cancel button is blurred */\n onCancel?: (event: React.SyntheticEvent) => void;\n /** Handler called when done button is blurred. */\n onConfirm?: (event: React.SyntheticEvent) => void;\n /** Handler called when reset is activated */\n onReset?: () => void;\n};\n\nconst Button = forwardRef(\n ({ label, adaDescription, className, ...rest }, forwardedRef) => {\n return (\n \n );\n }\n);\n\nButton.displayName = 'Button';\n\nexport function ActionButtons({\n buttonOptions = {},\n onReset,\n onConfirm,\n onCancel,\n}: ActionButtonProps) {\n const { t } = useTranslation('osc-dialog');\n const { cancel, confirm, reset } = buttonOptions;\n const resetBtnEnabled = reset?.isEnabled && reset?.label;\n\n const buttons = [\n {\n ...confirm,\n onClick: onConfirm,\n label: confirm?.label ?? t('done'),\n className: 'btn-primary',\n 'data-testid': 'shop-modal-done-cta',\n ref: confirm?.ref,\n },\n {\n ...cancel,\n onClick: onCancel,\n label: cancel?.label ?? t('cancel'),\n className: 'btn-primary-outline',\n ref: cancel?.ref,\n },\n ].map((props) => (\n \n \n \n ) : null}\n
    {buttons}
    \n \n );\n}\n","import * as React from 'react';\nimport { ActionButtons, type ActionButtonProps } from './dialog-action-buttons';\nimport { DialogBase, type DialogBaseProps, type DialogOptionalProps } from './dialog.base';\n\nexport type ActionDialogProps = React.PropsWithChildren<\n DialogBaseProps & ActionButtonProps & DialogOptionalProps\n>;\n\n/**\n * A dialog with two buttons for the user to take an action to cancel or accept.\n */\nexport function ActionDialog({\n buttonOptions,\n onCancel,\n onConfirm,\n onDismiss,\n onReset,\n ...dialogProps\n}: ActionDialogProps) {\n const dialogRef = React.useRef>(null);\n\n const handleCancel = (event: React.SyntheticEvent) => {\n onCancel?.(event);\n };\n\n const handleConfirm = (event: React.SyntheticEvent) => {\n onConfirm?.(event);\n };\n\n const bottomContent = (\n \n );\n return (\n \n );\n}\n","export * from './dialog';\nexport * from './dialog-alert';\nexport * from './dialog-action';\nexport * from './dialog-action-buttons';\nexport * from './dialog.base';\n","export * from './lib';\n","import { forwardRef } from 'react';\n\nconst FormErrorIcon = forwardRef>(\n ({ width = 16, height = 16, ...rest }, ref) => (\n \n \n \n \n \n \n \n \n \n )\n);\n\nFormErrorIcon.displayName = 'FormErrorIcon';\n\nexport { FormErrorIcon };\nexport default FormErrorIcon;\n","import cx from 'classnames';\nimport * as React from 'react';\nimport type { FieldError } from 'react-hook-form';\nimport { FormErrorIcon } from './form.error-icon';\n\ntype FormError = {\n error?: Partial;\n} & React.HTMLAttributes;\n\n/**\n * The standard error message to be used for forms and form inputs\n */\nconst FormError = React.forwardRef(\n ({ error, className, ...rest }, ref) => {\n const messages = (error?.types ? Object.values(error.types) : [error?.message]).filter(\n (v) => typeof v === 'string'\n );\n const hasError = messages.length > 0;\n\n return (\n \n {hasError && (\n
    \n {messages.map((message) => (\n \n \n {message}\n
    \n ))}\n \n )}\n \n );\n }\n);\n\nFormError.displayName = 'FormError';\n\nexport { FormError };\nexport default FormError;\n","import * as React from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\n\nimport { FormError } from './form.error';\n\nimport type { SubmitHandler, UseFormProps, UseFormReturn } from 'react-hook-form';\nimport type { FormDataStructure } from './form.types';\n\ntype FormProps = {\n /**\n * This is an override to the main form error message, used to notify the user that there are errors that need to be fixed. This is not for individual field error messages.\n */\n errorMessage?: string;\n /**\n * This will return an object with key/value pairs for each input in the form\n */\n onSubmit?: (data: any, methods: UseFormReturn) => void;\n /**\n * Please reference the [react-hook-form `useForm()` API documentation](https://react-hook-form.com/api/useform)\n */\n useFormProps?: UseFormProps;\n /** Override for the Error Banner Defaults to displaying */\n hasErrorBanner?: boolean | undefined;\n} & Omit, 'onSubmit'>;\n\n/**\n * This is the Form Component that sets up `react-hook-form` with a `` and a general error message. All inputs in the form should `useFormContext()` either using `FormInput, FormSelect, FormTextarea, FormConnector` or some other custom component.\n */\nexport const Form: React.FC> = ({\n errorMessage,\n onSubmit,\n children,\n useFormProps = { mode: 'onTouched', criteriaMode: 'all' },\n hasErrorBanner = true,\n method = 'POST',\n ...rest\n}) => {\n const [t] = useTranslation('osc-form');\n const memoizedFormProps = React.useMemo(() => useFormProps, [useFormProps]);\n\n const methods = useForm({\n mode: 'onTouched',\n criteriaMode: 'all',\n ...memoizedFormProps,\n });\n const {\n formState: { errors, isSubmitted },\n } = methods;\n const hasErrors = Object.keys(errors).length > 0;\n\n const onFormSubmit: SubmitHandler = (data) => {\n if (onSubmit) {\n onSubmit(data, methods);\n }\n };\n\n return (\n \n {hasErrorBanner && (\n \n {hasErrors && isSubmitted && (\n

    \n \n

    \n )}\n \n )}\n
    \n {children}\n
    \n
    \n );\n};\n\nexport type { FormProps };\n","import type { FieldValues, UseFormReturn } from 'react-hook-form';\nimport { useFormContext } from 'react-hook-form';\n\ntype FormConnector = {\n children: JSX.Element | ((props: UseFormReturn) => JSX.Element);\n};\n\nconst FormConnector = ({ children }: FormConnector) => {\n const methods = useFormContext();\n return typeof children === 'function' ? children(methods) : children;\n};\n\nexport { FormConnector };\nexport default FormConnector;\n","import cx from 'classnames';\nimport * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport { Spinner } from '@dx-ui/osc-spinner';\n\ntype FormHelpMessage = {\n loading?: boolean;\n message?: string;\n} & React.HTMLAttributes;\n\nconst FormHelpMessage = React.forwardRef(\n ({ className, message, loading, ...rest }, ref) => {\n const { t } = useTranslation('osc-form');\n const hasContent = !!message || loading;\n\n return (\n \n {loading && (\n <>\n \n

    {t('loading')}

    \n \n )}\n {message &&

    {message}

    }\n \n );\n }\n);\n\nFormHelpMessage.displayName = 'FormHelpMessage';\n\nexport { FormHelpMessage };\nexport default FormHelpMessage;\n","import type * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport type { FormLabelBase } from './form.types';\n\ntype FormLabelHelper = Pick;\n\nconst FormLabelHelper: React.FC> = ({\n required,\n optional,\n}) => {\n const [t] = useTranslation('osc-form');\n\n const requiredText = required && t('required');\n const optionalText = optional && t('optional');\n\n const text = requiredText || optionalText;\n\n return text ? (\n <>\n {' '}\n ({text})\n \n ) : null;\n};\n\nexport { FormLabelHelper };\nexport default FormLabelHelper;\n","import cx from 'classnames';\nimport type * as React from 'react';\nimport { FormLabelHelper } from './form.label-helper';\nimport type { FormLabelBase } from './form.types';\n\ntype FormLabel = FormLabelBase;\n\nconst FormLabel: React.FC> = ({\n label,\n required,\n optional,\n hasError,\n className,\n children,\n ...rest\n}) => {\n return (\n \n \n {label}\n \n \n {children}\n \n );\n};\n\nexport { FormLabel };\nexport default FormLabel;\n","import cx from 'classnames';\nimport * as React from 'react';\nimport { get, useFormContext } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport { FormError } from './form.error';\nimport { FormHelpMessage } from './form.help-message';\nimport { FormLabel } from './form.label';\nimport type { FormInputBase } from './form.types';\n\n/**\n * This component is to be used in place of all `` elements including checkbox and radio\n */\nexport const FormInput: React.FC<\n React.PropsWithChildren>>\n> = ({\n label,\n name,\n required,\n optional,\n registerOptions,\n labelClassName,\n helpMessage,\n loading,\n className,\n containerClassName,\n ...rest\n}) => {\n const id = React.useId();\n const errorId = `input-error-${id}`;\n const helperId = `input-helper-${id}`;\n const [t] = useTranslation('osc-form');\n const {\n register,\n formState: { errors },\n } = useFormContext();\n const fieldError = get(errors, name);\n const hasError = !!fieldError;\n\n let inputClassName = '';\n let labelClass = '';\n switch (rest.type) {\n case 'checkbox':\n inputClassName = 'form-checkbox';\n labelClass = 'label-inline-reverse';\n break;\n case 'radio':\n inputClassName = 'form-radio';\n labelClass = 'label-inline';\n break;\n default:\n inputClassName = 'form-input w-full';\n break;\n }\n\n return (\n
    \n \n \n \n \n \n
    \n );\n};\n\nexport default FormInput;\n","import cx from 'classnames';\nimport type * as React from 'react';\nimport { FormLabelHelper } from './form.label-helper';\nimport type { FormLabelBase } from './form.types';\n\ntype FormLegend = FormLabelBase;\n\nconst FormLegend: React.FC> = ({\n label,\n required,\n optional,\n hasError,\n className,\n ...rest\n}) => {\n return (\n \n \n {label}\n \n \n \n );\n};\n\nexport { FormLegend };\nexport default FormLegend;\n","import * as React from 'react';\nimport { get, useFormContext } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport cardValidator from 'card-validator';\nimport cx from 'classnames';\n\nimport type { FormInputBase } from './form.types';\nimport FormError from './form.error';\nimport FormLabel from './form.label';\n\ntype Validator = typeof cardValidator;\n\nconst formatCardNumber = (cardNumber: string, cardValidator: Validator) => {\n const cardData = cardValidator.number(cardNumber);\n if (!cardData.isPotentiallyValid || !cardData?.card) return cardNumber;\n const cardNumberArray = [...cardNumber];\n if (cardData?.isPotentiallyValid && cardData?.card?.type) {\n const validGapIndices = cardData?.card?.gaps?.filter(\n (gapIndex: number) => cardNumber?.length > gapIndex\n );\n validGapIndices?.forEach((gap: number, index: number) => {\n if (cardNumberArray[gap + index] !== ' ') {\n cardNumberArray.splice(gap + index, 0, ' ');\n }\n });\n }\n return cardNumberArray.join('').trim();\n};\n\nconst FormCardNumberInput: React.FC>> = ({\n className,\n containerClassName,\n label,\n labelClassName,\n name,\n registerOptions,\n required = true,\n ...rest\n}) => {\n const {\n formState: { errors },\n register,\n setValue,\n } = useFormContext();\n const [cardType, setCardType] = React.useState(null);\n const [t] = useTranslation('osc-form');\n const id = React.useId();\n const errorId = `input-error-${id}`;\n const errorMessage = get(errors, name);\n const MAX_NUMBER_OF_DIGITS = 19;\n const MAX_NUMBER_OF_GAPS = 3;\n return (\n
    \n \n \n {\n setValue(name, formatCardNumber(cardNumber, cardValidator));\n setCardType(cardValidator.number(cardNumber)?.card?.type ?? null);\n },\n required: required ? t('invalidCardNumberError') : false,\n setValueAs: (value) => value?.replace(/\\s/g, ''),\n validate: (cardNumber) =>\n !cardNumber ||\n cardValidator.number(cardNumber).isValid ||\n t('invalidCardNumberError'),\n ...registerOptions,\n })}\n required={required}\n size={MAX_NUMBER_OF_DIGITS + MAX_NUMBER_OF_GAPS}\n />\n
    \n \n {errorMessage ? : null}\n \n );\n};\n\nexport { FormCardNumberInput };\nexport default FormCardNumberInput;\n","import cx from 'classnames';\nimport * as React from 'react';\nimport { get, useFormContext } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport { FormError } from './form.error';\nimport { FormHelpMessage } from './form.help-message';\nimport { FormLabel } from './form.label';\nimport type { FormInputBase } from './form.types';\n\n/**\n * This component is to be used in place of all `\n \n \n \n \n );\n};\n\nexport { FormSelect };\nexport default FormSelect;\n","import cx from 'classnames';\nimport * as React from 'react';\nimport { get, useFormContext } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport { FormError } from './form.error';\nimport { FormHelpMessage } from './form.help-message';\nimport { FormLabel } from './form.label';\nimport type { FormInputBase } from './form.types';\n\n/**\n * This component is to be used in place of all `