{"version":3,"file":"143.chunk.js","mappings":"03BAYA,IAYaA,GAAeC,EAAAA,EAAAA,GAAOC,EAAAA,EAAPD,EAAe,SAAAE,GAAA,IAAGC,EAAAD,EAAAC,MAAA,MAAa,CACzDC,MAbkB,GAclBC,OAdkB,GAelBC,gBAAiBH,EAAMI,QAAQC,KAAK,KACpCC,MAAON,EAAMI,QAAQC,KAAK,KAC3B,IAEYE,GAAiBV,EAAAA,EAAAA,GAAOW,EAAAA,EAAPX,EAAiB,SAAAY,GAAG,MAAa,CAC7DR,MAAO,GACPC,OAAQ,GACRQ,OAHgDD,EAAAT,MAGlCW,QAAQ,IAAK,IAC5B,IAEYC,GAAWf,EAAAA,EAAAA,GAAOgB,EAAAA,EAAPhB,EAAY,SAAAiB,GAAG,MAAa,CAClDC,QAAS,OACTC,cAAe,MACfC,WAAY,SACZC,IAJqCJ,EAAAd,MAI1BW,QAAQ,GACpB,IAEKQ,GAAOtB,EAAAA,EAAAA,GAAOgB,EAAAA,EAAPhB,EAAY,SAAAuB,GAAG,MAAa,CACvCC,UAD0BD,EAAApB,MACTW,QAAQ,GAC1B,IACKW,GAAezB,EAAAA,EAAAA,GAAO0B,EAAAA,EAAP1B,EAAa,SAAA2B,GAAG,MAAa,CAChDlB,MADmCkB,EAAAxB,MACtBI,QAAQqB,OAAOC,MAC5BC,eAAgB,YAChBC,WAAY,OACZC,SAAU,GACX,IAEKC,EAAyB,SAAAC,GAC7B,OAAQA,GACN,KAAKC,EAAAA,EAAoBC,QACvB,OAAOC,EAAAA,EAAeC,QACxB,KAAKH,EAAAA,EAAoBI,QACvB,OAAOF,EAAAA,EAAeG,sBACxB,QACE,OAAOH,EAAAA,EAAeI,iBAE5B,EACaC,EAAkG,SAAHC,GAKtG,IAJJC,EAAgCD,EAAhCC,iCACAC,EAA0BF,EAA1BE,2BACAX,EAAkBS,EAAlBT,mBACAY,EAAAH,EAAAG,SAEM3C,GAAQ4C,EAAAA,EAAAA,KACNC,GAAkBC,EAAAA,EAAAA,KAAlBD,cACAE,GAAmBC,EAAAA,EAAAA,KAAnBD,eAER,OACEE,EAAAA,EAAAA,MAAC9B,EAAI,CAAA+B,SAAA,CACFT,SAAAA,EAAkCU,WAAaV,EAAiCW,WAC/EH,EAAAA,EAAAA,MAACrC,EAAQ,CAACyC,GAAI,CAAEhC,UAAWrB,EAAMW,QAAQ,OAAQuC,SAAA,EAC/CI,EAAAA,EAAAA,KAAC/C,EAAc,CAACgD,QAAQ,mBACxBD,EAAAA,EAAAA,KAAChC,EAAYkC,EAAAA,EAAA,CACXC,KAAMhB,EAAiCW,WACnCL,EAAeW,EAAAA,EAAgBC,uBAAqB,IAAAT,SAEvDL,EAAcX,EAAAA,EAAe0B,6BAGhC,KACHlB,SAAAA,EAA4BS,WAAaT,EAA2BU,WACnEH,EAAAA,EAAAA,MAACrC,EAAQ,CAACyC,GAAI,CAAEhC,UAAWrB,EAAMW,QAAQ,OAAQuC,SAAA,EAC/CI,EAAAA,EAAAA,KAACO,EAAAA,EAAsB,CAACC,kBAAmB/B,QAAAA,EAAsBC,EAAAA,EAAoB+B,QAAQb,UAC3FI,EAAAA,EAAAA,KAAC1D,EAAY4D,EAAAA,EAAA,CACXQ,IAAKrB,QAAAA,EAAY,GACjBsB,IAAKpB,EAAcX,EAAAA,EAAegC,eAC9BnB,EAAeW,EAAAA,EAAgBS,SAAO,IAAAjB,UAE1CI,EAAAA,EAAAA,KAACc,EAAAA,EAAWZ,EAAA,CACVH,GAAI,CAAEpD,MAAO,GAAIC,OAAQ,IACzBqD,QAAQ,iBACJR,EAAeW,EAAAA,EAAgBW,yBAIzCf,EAAAA,EAAAA,KAAChC,EAAYkC,EAAAA,EAAA,CACXC,KAAMf,EAA2BU,WAC7BL,EAAeW,EAAAA,EAAgBY,qBAAmB,IAAApB,SAErDL,EAAcf,EAAsBC,QAAAA,EAAsBC,EAAAA,EAAoB+B,gBAGjF,OAGV,C,wGChHYQ,EAA6B,SAA7BA,GAA6B,OAA7BA,EAA6B,iEAA7BA,EAA6B,mEAA7BA,CAA6B,M,glBCOzC,IAAMC,GAAuB3E,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAE,GAAA,IAAGC,EAAAD,EAAAC,MAAA,MAAa,CACzDyE,aAAc,IACdC,UAAW,iBAAFC,OAAmB3E,EAAMI,QAAQwE,IAAI,MAC9CC,SAAU,WACX,IAEKC,GAAuBjF,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAY,GAAA,IAAGT,EAAAS,EAAAT,MAAA,MAAa,CACzDG,gBAAiBH,EAAMI,QAAQwE,IAAI,KACnC/C,SAAU7B,EAAM+E,WAAWC,QAAQ,GACnC1E,MAAON,EAAMI,QAAQqB,OAAOwD,MAC5BC,QAASlF,EAAMW,QAAQ,EAAG,IAC1B8D,aAAc,MACdI,SAAU,WACVM,KAAM,MACNC,UAAW,mBACXC,OAAQrF,EAAMW,SAAS,GACxB,IAGK2E,GAAczF,EAAAA,EAAAA,GAAO0F,EAAAA,EAAP1F,EAAc,SAAAiB,GAAA,IAAGd,EAAAc,EAAAd,MAAA,MAAa,CAChD,oBAAqB,CACnBG,gBAAiBH,EAAMI,QAAQwE,IAAI,KACnCtE,MAAON,EAAMI,QAAQwE,IAAI,KACzB3E,MAAOD,EAAMW,QALC,GAMd6E,SAAUxF,EAAMW,QANF,GAOdT,OAAQF,EAAMW,QAPA,GAQduE,QAAS,EACTO,OAAQ,EACRZ,SAAU,WACVa,MAAO,EACPC,IAAK,EACLP,UAAW,uBAEd,IAEYvB,GAA6F+B,EAAAA,EAAAA,OACxG,SAAAxE,GAAqC,IAAlC8B,EAAQ9B,EAAR8B,SAAUY,EAAA1C,EAAA0C,kBACHf,GAAmBC,EAAAA,EAAAA,KAAnBD,eAER,OAAIe,IAAsB9B,EAAAA,EAAoB6D,UAAY/B,IAAsB9B,EAAAA,EAAoBI,SAEhGkB,EAAAA,EAAAA,KAACgC,EAAW9B,EAAAA,EAAA,GAAKT,EAAewB,EAA8BuB,wBAAsB,IAAA5C,SAAGA,KAIvFY,IAAsB9B,EAAAA,EAAoBC,SAE1CgB,EAAAA,EAAAA,MAACuB,EAAoBhB,EAAAA,EAAA,GAAKT,EAAewB,EAA8BwB,uBAAqB,IAAA7C,SAAA,CACzFA,GACDI,EAAAA,EAAAA,KAACwB,EAAoB,CAAA5B,SAAC,aAKrBA,CACT,G,qECzDW8C,EAAW,wBAKXC,EAAe,QAAHtB,OAAWqB,GAKvBE,EAAsBC,EAAAA,EAAKC,Y,2CCFjC,IAAMC,EAA2C,CACtDC,UAAW,2BACXC,qBACE,wGACFpE,QAAS,yBACTE,sBAAuB,2BACvBmE,oBAAqB,4CACrBC,uBACE,wGACF7C,sBAAuB,2BACvBM,aAAc,kBACd5B,iBAAkB,8BAGPoE,EAAwB,uB,gFCnBxBC,EAAqB,KAMrBC,EAAsD,CACjEC,gBAAiB,GACjBC,WAAYC,EAAAA,GACZC,WAAY,GACZC,aAAc,GACdC,YAAa,GACbC,aAAc,GACdC,OAAQ,GACRjE,WAAW,GAKAkE,EAA0C,CACrD,CACEC,OAAQC,EAAAA,EAAeC,SACvBC,WAAY,QACZC,aAAa,GAEf,CACEJ,OAAQC,EAAAA,EAAeI,YACvBF,WAAY,SACZC,aAAa,GAEf,CACEJ,OAAQC,EAAAA,EAAeK,UACvBH,WAAY,QACZC,aAAa,GAEf,CACEJ,OAAQC,EAAAA,EAAeM,SACvBJ,WAAY,eACZC,aAAa,EACbI,iBAAiB,EACjBC,kBAAkB,GAEpB,CACET,OAAQC,EAAAA,EAAeS,MACvBP,WAAY,SACZC,aAAa,G,sjBC3CV,IAAMO,EAAa,SAAAC,IAAAC,EAAAA,EAAAA,GAAAF,EAAAC,GAAA,IAAAE,EAAAC,EAAAJ,GAA2D,SAAAA,IAAA,IAAAK,GAAAC,EAAAA,EAAAA,GAAA,KAAAN,GAAA,QAAAO,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GACnC,OADmCP,EAAAF,EAAAU,KAAAC,MAAAX,EAAA,OAAAzD,OAAAgE,KAAAK,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,GAAAX,GAAA,QACrC,CAAC,GAACA,CAAA,CAIhD,OAJgDY,EAAAA,EAAAA,GAAAjB,EAAA,EAAAkB,IAAA,SAAAC,MAMvC,WACP,IAAQC,EAAUC,KAAKC,MAAfF,MAER,OAAIA,GAEFG,QAAQH,MAAMA,GAGP,MAGYC,KAAKG,MAAlBvG,QAGV,MAAAiG,IAAA,2BAAAC,MAlBA,SAAgCC,GAC9B,MAAO,CAAEA,MAAAA,EACX,KAAApB,CAAA,CALwB,C,QAASyB,W,4CCHtBC,EAA0C,SAAH5J,GAAA,IAAMmD,EAAAnD,EAAAmD,SAAA,OACxDI,EAAAA,EAAAA,KAAC2E,EAAa,CAAA/E,UACZI,EAAAA,EAAAA,KAACsG,EAAAA,EAAc,CACbC,KAAM3D,EAAAA,GACN4D,QAAS9D,EAAAA,GAAS9C,UAElBI,EAAAA,EAAAA,KAACyG,EAAAA,EAA6B,CAACC,UAAWtD,EAAAA,EAAsBxD,SAAEA,OAGvE,C,uCCZY+G,GAA6BC,E,QAAAA,eAA0C,CAClFC,QAAS,KACTC,iBAAkB,KAClBC,UAAW,KACXC,uBAAuB,EACvBC,mBAAmB,EACnBC,iBAAiB,EACjBC,mBAAoB,WAAO,G,4DCPhBC,EAAyB,WAAH,OAASC,EAAAA,EAAAA,YAAWV,EAAAA,EAA2B,C,iDCarEnH,EAAiF,WAAH,OACzF8H,EAAAA,EAAAA,IAAmD,C,mCClB9C,IAAK5I,EAAmB,SAAnBA,GAAmB,OAAnBA,EAAmB,6BAAnBA,EAAmB,wBAAnBA,EAAmB,kBAAnBA,EAAmB,kBAAnBA,CAAmB,K,mCCAxB,IAAK0B,EAAe,SAAfA,GAAe,OAAfA,EAAe,sBAAfA,EAAe,wBAAfA,EAAe,kCAAfA,EAAe,0BAAfA,EAAe,4CAAfA,EAAe,sBAAfA,EAAe,kCAAfA,EAAe,kCAAfA,EAAe,2DAAfA,EAAe,wDAAfA,EAAe,qCAAfA,EAAe,gCAAfA,EAAe,wCAAfA,CAAe,K,mCCApB,IAAK6D,EAAc,SAAdA,GAAc,OAAdA,EAAc,0BAAdA,EAAc,cAAdA,EAAc,oBAAdA,EAAc,sBAAdA,EAAc,oBAAdA,CAAc,K,mCCSnB,IAAKrF,EAAc,SAAdA,GAAc,OAAdA,EAAc,sBAAdA,EAAc,4CAAdA,EAAc,kBAAdA,EAAc,8CAAdA,EAAc,0CAAdA,EAAc,gDAAdA,EAAc,8CAAdA,EAAc,4BAAdA,EAAc,oCAAdA,CAAc,K,6CCqBnB,IA0WK2I,EAAQ,SAARA,GAAQ,OAARA,EAAQ,cAARA,EAAQ,YAARA,EAAQ,sBAARA,CAAQ,MAURC,EAAiB,SAAjBA,GAAiB,OAAjBA,EAAiB,cAAjBA,EAAiB,oBAAjBA,EAAiB,0BAAjBA,EAAiB,sBAAjBA,EAAiB,gBAAjBA,EAAiB,8BAAjBA,CAAiB,K,mCCxYtB,IAAMC,EAAmB,SAC9BC,EACAC,EACAC,GAAuB,IAAAC,EAAA,OACnBH,SAAAA,EAAiBI,SAASF,GAAQD,SAAwD,QAAhDE,EAARF,EAAUI,QAAQ,SAAAC,GAAO,OAAKA,aAAO,EAAPA,EAASJ,QAASA,CAAI,IAAE,UAAE,IAAAC,OAAA,EAAxDA,EAA0D/B,MAAQ,IAAK,C,6DCDlGmC,EAAqC,SAAHxL,GAGQ,IAN1ByL,EAAYC,EAIvCC,EAAsB3L,EAAtB2L,uBACAC,EAAA5L,EAAA4L,iBAEAlL,EAAmCkL,QAAAA,EAAoB,CAAC,EAAhDC,EAAUnL,EAAVmL,WAAYC,EAAApL,EAAAoL,WAEpB,GAAIH,EACF,OAAQG,GACN,KAAKhB,EAAAA,GAASiB,KACZ,OAAO9J,EAAAA,EAAoBC,QAC7B,KAAK4I,EAAAA,GAASkB,UACZ,OAAO/J,EAAAA,EAAoBI,QAC7B,KAAKyI,EAAAA,GAASmB,MACZ,GAAIJ,EAAY,CACd,IAAMK,EAAiB,IAAIC,KAAKN,GAEhC,OAnBmBJ,EAmBQ,IAAIU,KAnBAT,EALT,GAM9B,IAAIS,KAAK,IAAIA,KAAKV,GAAMW,SAASX,EAAKY,WAAaX,KAkBwBQ,EAC/DjK,EAAAA,EAAoB6D,SACpB7D,EAAAA,EAAoB+B,OAC1B,CACA,MAEF,QACE,OAAO/B,EAAAA,EAAoB+B,QAIjC,OAAO/B,EAAAA,EAAoB+B,OAC7B,C,mCC/BO,IAAMsI,EAA2B,SACtCC,GAEkB,IADlBC,EAA6C9D,UAAAC,OAAA,QAAA8D,IAAA/D,UAAA,GAAAA,UAAA,QAAG+D,EAE1CC,EAAgCH,EAAoBI,MAAM,YAChE,OAAKD,EAIHF,GACAI,OAAOC,OAAOL,GAAcM,MAAM,SAAAC,GAAgB,OAA0B,OAArBA,GAAkD,KAArBA,CAAuB,IAEpG,KAGPP,GACAI,OAAOI,KAAKR,GAAc7D,OAAS,GACnCiE,OAAOI,KAAKR,GAAc7D,QAAU+D,EAA8B/D,OAE3D4D,EAAoBU,QACzB,YACA,SAACC,EAAWC,GAA0B,IAAAC,EAAA,OAAyB,QAAzBA,EAAKZ,EAAaW,UAAO,IAAAC,EAAAA,EAAIF,CACrE,IAGK,KAnBE,IAoBX,C,yFClCaG,EAAO,a,UhBFPC,EAA0B,qBAC1BC,EAA0B,GAAA3I,OAAM0I,EAAwB,iCiBMxDE,GAAerD,EAAAA,EAAAA,oBAAwCsC,GAErDgB,EAAaD,EAAbC,SCRFC,EAAY,SAAAC,GAAY,OAAMC,OAAOC,SAASnK,KAAOiK,CAAK,E,sBCW1DG,EAAgB,SAAH9N,GAA6D,IAAvDmD,EAAQnD,EAARmD,SAAU4K,EAAA/N,EAAA+N,mBAClCC,GAAUC,EAAAA,EAAAA,UACd,kBAAOF,EAAqBR,EnBZH,oFmBY8C,GACvE,CAACQ,IAEGG,GAAUC,EAAAA,EAAAA,cACb,SAAAC,GAEKA,SAAAA,EAAOC,SAAWD,SAAAA,EAAOE,QAC3BZ,EAASM,GAKPD,EACFL,EAASJ,GCxBfM,OAAOW,cACL,IAAIC,YAAwCC,EAAAA,GAA4B,CACtEC,OAAQ,CAAEC,SAAUF,EAAAA,GAAgCG,mBD4BtD,GACA,CAACZ,EAASD,IAENc,GAAUV,EAAAA,EAAAA,cAAY,WAC1BD,GACF,GAAG,CAACA,IAUJ,OARAY,EAAAA,EAAAA,YAAU,WAGR,OAFAlB,OAAOmB,iBAAiB1B,EAAMwB,GAEvB,WACLjB,OAAOoB,oBAAoB3B,EAAMwB,EACnC,CACF,GAAG,CAACA,KAEGtL,EAAAA,EAAAA,KAACkK,EAAQ,CAACpE,OAAO4E,EAAAA,EAAAA,UAAQ,iBAAO,CAAEC,QAAAA,EAAS,GAAG,CAACA,IAAU/K,SAAEA,GACpE,E,qKE7Ca/B,GAAOtB,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,MAAQ,CAChDgP,WAAYhP,EAAMI,QAAQ6O,KAAK,KAC/BlO,QAAS,OACTmO,OAAQlP,EAAMkP,OAAOC,OACrBjP,OAAQF,EAAM+E,WAAWC,QANW,IAOpC/E,MAAO,OACP4E,SAAU,QACVc,IAAK,IACLR,KAAM,IACP,IAEYiK,GAAYvP,EAAAA,EAAAA,GAAOwP,EAAAA,EAAPxP,EAAgB,SAAAY,GAAA,IAAGT,EAAKS,EAALT,MAAK,MAAQ,CACvDsP,OAAQ,UACRzK,SAAU,WACVM,KAAMnF,EAAMW,QAAQ,GACpBgF,IAAK3F,EAAMW,QAAQ,GACpB,IAEY4O,GAAe1P,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAiB,GAAA,IAAGd,EAAKc,EAALd,MAAK,MAAQ,CACxDwP,UAAW,SACX9O,OAAQ,SACRJ,MAAON,EAAMI,QAAQqB,OAAOwD,MAC5BlE,QAAS,OACTE,WAAY,SACZwO,eAAgB,SAEhBC,KAAM,CACJC,WAAY3P,EAAM+E,WAAWC,QA7BK,IA8BlC4K,cAAe,YACf/N,SAAU7B,EAAM+E,WAAWC,QAAQ,KAGrC6K,IAAK,CACH3P,OAAQF,EAAM+E,WAAWC,QAAQ,KAGnC,oBAAqB,CACnB8K,YAAa9P,EAAMW,QAAQ,IAE7B,mBAAoB,CAClBoP,WAAY/P,EAAMW,QAAQ,IAE7B,IAEYqP,GAAWnQ,EAAAA,EAAAA,GAAOoQ,EAAAA,EAAPpQ,EAAmB,SAAAuB,GAAA,IAAGpB,EAAKoB,EAALpB,MAAK,MAAQ,CACzD2B,eAAgB,YAChBrB,MAAON,EAAMI,QAAQqB,OAAOwD,MAC5B8K,WAAY/P,EAAMW,QAAQ,GAC1B2O,OAAQ,UACT,IAEYY,GAAoBrQ,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAA2B,GAAQ,MAAQ,CAC7DT,QAAS,OACTC,cAAe,SACfyO,eAAgB,gBAChBpO,UAJqDG,EAALxB,MAI/BW,QAAQ,GAC1B,IAEYwP,GAActQ,EAAAA,EAAAA,GAAOuQ,EAAAA,EAAPvQ,EAAe,SAAA2C,GAAQ,MAAQ,CACxD6N,aADgD7N,EAALxC,MACvBW,QAAQ,GAC7B,IAEY2P,GAAYzQ,EAAAA,EAAAA,GAAO0B,EAAAA,EAAP1B,EAAa,SAAA0Q,GAAA,IAAGvQ,EAAKuQ,EAALvQ,MAAK,MAAQ,CACpDqQ,aAAcrQ,EAAMW,QAAQ,GAC5B6O,UAAW,SACXlP,MAAON,EAAMI,QAAQqB,OAAOC,MAC7B,ICjEYP,GAAOtB,EAAAA,EAAAA,GAAO,MAAO,CAChC2Q,mBAAmBA,EAAAA,EAAAA,MADD3Q,EAEqB,SAAAE,GAAA,IAAAU,EAAGT,EAAKD,EAALC,MAAOyQ,EAAsB1Q,EAAtB0Q,uBAAsB,OAAAhQ,EAAA,CACvEQ,WAAY,SACZd,gBAAiBH,EAAMI,QAAQqB,OAAOwD,MACtCyL,aAAc,aAAF/L,OAAe3E,EAAMI,QAAQC,KAAK,MAC9CsQ,UAAW,aACX5P,QAAS,OACTb,OAAQ,8BACRiF,KAAM,EACND,QAASlF,EAAMW,QAAQ,EAAG,GAC1BkE,SAAU,QACVc,IAAK8K,EDf+B,GCemB,EACvDG,WAAY,4EACZ3Q,MAAO,QACPiP,OAAQlP,EAAMkP,OAAOC,SAAMnG,EAAAA,EAAAA,GAAAvI,EAE1BT,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B5Q,OAAQ,8BACRgF,QAASlF,EAAMW,QAAQ,EAAG,EAAG,EAAG,MACjCqI,EAAAA,EAAAA,GAAAvI,EAEAT,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B5L,QAASlF,EAAMW,QAAQ,EAAG,GAAI,EAAG,MAClCqI,EAAAA,EAAAA,GAAAvI,EAEAT,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B5L,QAASlF,EAAMW,QAAQ,EAAG,GAAI,EAAG,MAClCF,CAAA,I,6ECnBGsQ,GAAoB7G,EAAAA,EAAAA,oBAA6CsC,GAE/DgB,EAAauD,EAAbvD,SAmCKwD,EAAgB,WAC3B,IAAMC,GAAUtG,EAAAA,EAAAA,YAAWoG,GAC3B,GAAIE,EACF,OAAOA,EAET,MAAM,IAAIC,MAAM,iEAClB,E,WChDMC,GAAoBtR,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAE,GAAQ,MAAQ,CACtDiP,WAD8CjP,EAALC,MACvBI,QAAQqB,OAAOwD,MACjC/E,OAAQ,OACRkR,WAAY,wBACZvM,SAAU,WACV5E,MAAO,IACR,IAEKoR,GAAcC,EAAAA,EAAAA,OAAKC,iBAAA,OAAY,qDAAwB,IAEvDC,GACJlO,EAAAA,EAAAA,KAACzC,EAAAA,EAAG,CACFE,QAAQ,OACR0O,eAAe,SAAQvM,UAEvBI,EAAAA,EAAAA,KAACmO,EAAAA,EAAgB,MAIRC,EAAoB,WAC/B,IAAAC,EAAyCX,IAAjCY,EAAUD,EAAVC,WAAYC,EAAgBF,EAAhBE,iBACdC,GAAWC,EAAAA,EAAAA,KACTC,GAAchP,EAAAA,EAAAA,KAAdgP,UACA9C,GAAWtM,EAAAA,EAAAA,KAAXsM,OACF+C,GAAmB/D,EAAAA,EAAAA,cACvB,kBAAM2D,EAAiBK,EAAAA,GAA2BvD,gBAAgB,GAClE,CAACkD,IAEGM,GAAuBL,GAAYF,IAAeM,EAAAA,GAA2BvD,gBAEnF,OACErL,EAAAA,EAAAA,KAAC8O,EAAAA,EAAK,CACJC,MAAO,CAAEnD,OAAQA,EAAOoD,OACxBC,KAAMJ,EACN,cAAaH,EAAU,wBACvBQ,QAASP,EAAiB/O,UAE1BI,EAAAA,EAAAA,KAACmP,EAAAA,EAAK,CACJC,GAAIP,EACJQ,UAAU,QAAOzP,UAEjBI,EAAAA,EAAAA,KAAC6N,EAAiB,CAAAjO,UAChBI,EAAAA,EAAAA,KAACsP,EAAAA,SAAQ,CAACpB,SAAUA,EAAStO,UAC3BI,EAAAA,EAAAA,KAAC+N,EAAW,WAMxB,E,iICtDawB,GAAW,SACtBC,EACAC,GAEA,IAAAC,GAA8BC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAtCI,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GACpBI,GAAMC,EAAAA,EAAAA,QAAY,MAClBC,GAAmBC,EAAAA,GAAAA,GAAc,kBAEjCC,GAAU1F,EAAAA,EAAAA,UAAQ,WACtB,OAAIoF,EACKN,EAGFC,CACT,GAAG,CAACK,EAASL,EAAMD,IAEba,GAAkBzF,EAAAA,EAAAA,cAAY,WAClCmF,GAAW,EACb,GAAG,IAEGO,GAAmB1F,EAAAA,EAAAA,cAAY,WACnCmF,GAAW,EACb,GAAG,IAkBH,OAhBAxE,EAAAA,EAAAA,YAAU,WACR,IAAMgF,EAAUP,EAAIQ,QAOpB,OALIN,IACFK,SAAAA,EAAS/E,iBAAiB,YAAa6E,GACvCE,SAAAA,EAAS/E,iBAAiB,aAAc8E,IAGnC,WACDJ,IACFK,SAAAA,EAAS9E,oBAAoB,YAAa4E,GAC1CE,SAAAA,EAAS9E,oBAAoB,aAAc6E,GAE/C,CACF,GAAG,CAACJ,EAAkBG,EAAiBC,IAEhC,CAACN,EAAKI,EACf,E,YC1CaK,GAAsB,WACjC,IAAAC,GAAwCC,EAAAA,EAAAA,KAAhCC,EAAeF,EAAfE,gBAAiBpN,EAAUkN,EAAVlN,WACjBqN,GAASC,EAAAA,GAAAA,KAAsBtN,OAAY0F,EAAW,CAAE6H,IAAK,CAAEC,SAAUJ,KAAzEC,KAER,GAAIA,EAAM,CACR,IAAQI,EAAwBJ,EAAxBI,UAAWC,EAAaL,EAAbK,SAEnB,GAAIA,EACF,MAAO,GAAP7P,OAAU4P,EAAYA,EAAUE,OAAO,GAAK,IAAE9P,OAAG6P,EAASC,OAAO,GAErE,CAGF,E,YCNMC,IAAc7U,EAAAA,EAAAA,GAAO8U,GAAAA,EAAP9U,EAEjB,SAAAE,GAAA,IAAA6U,EAAG5U,EAAKD,EAALC,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,GACRhJ,EAAM6Q,YAAYC,GAAG,OAAK8D,EAAA,CACzBtU,MAAON,EAAMI,QAAQyU,KAAKC,QAC1B/T,QAAS,QACTc,SAAU7B,EAAM+E,WAAWC,QAAQ,IACnCpD,WAAY5B,EAAM+E,WAAWgQ,eAC7BpT,eAAgB,OAChBqT,WAAY,SACZpF,cAAe,YACfG,WAAY/P,EAAMW,QAAQ,GAC1B,6BAA8B,CAC5BL,MAAON,EAAMI,QAAQC,KAAK,KAC1BiP,OAAQ,aACTtG,EAAAA,EAAAA,GAAA4L,EAEA5U,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5Bf,WAAY/P,EAAMW,QAAQ,MAC3BqI,EAAAA,EAAAA,GAAA4L,EAEA5U,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5Bf,WAAY/P,EAAMW,QAAQ,KAC3BiU,GAAA,IAICK,IAAwBpV,EAAAA,EAAAA,GAAOuQ,EAAAA,EAAPvQ,EAAe,SAAAiB,GAAA,IAAGd,EAAKc,EAALd,MAAK,MAAQ,CAC3D6B,SAAU7B,EAAM+E,WAAWC,QAAQ,IACnCgQ,WAAY,SAEZ,oBAAqB,CACnBlF,YAAa9P,EAAMW,QAAQ,IAG7BgP,WAAY,OACZ/N,WAAY5B,EAAM+E,WAAWgQ,eAC7BlF,IAAK,CACHE,WAAY/P,EAAMW,QAAQ,IAE7B,IAEKuU,IAAuBrV,EAAAA,EAAAA,GAAO8U,GAAAA,EAAP9U,EAAmB,SAAAuB,GAAA,IAAAI,EAAGxB,EAAKoB,EAALpB,MAAK,OAAAwB,EAAA,CACtDK,SAAU7B,EAAM+E,WAAWC,QAAQ,IACnC1E,MAAON,EAAMI,QAAQC,KAAK,KAC1B0P,WAAY/P,EAAMW,QAAQ,GAC1BqU,WAAY,SACZpF,cAAe,cAAW5G,EAAAA,EAAAA,GAAAxH,EACzBxB,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B7P,WAAY,SACZF,QAAS,OAET,6BAA8B,CAC5BT,MAAON,EAAMI,QAAQC,KAAK,SAE7B2I,EAAAA,EAAAA,GAAAxH,EAEAxB,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5Bf,WAAY/P,EAAMW,QAAQ,MAC3BqI,EAAAA,EAAAA,GAAAxH,EAEAxB,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5Bf,WAAY/P,EAAMW,QAAQ,KAC3Ba,CAAA,IAGU2T,IAAatV,EAAAA,EAAAA,GAAOC,GAAAA,EAAPD,EAAe,SAAA2C,GAAA,IAAGxC,EAAKwC,EAALxC,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,CAC/CnH,SAAU,GAAF8C,OAAK3E,EAAM+E,WAAWC,QAAQ,IAAG,eACzC/E,MAAO,GACPC,OAAQ,GACR6P,WAAY/P,EAAMW,QAAQ,GAC1BR,gBAAiBH,EAAMI,QAAQC,KAAK,MAEnCL,EAAM6Q,YAAYuE,KAAK,MAAQ,CAC9BrF,WAAY,GACb,IAGUsF,GAAkB,WAC7B,IAAAC,EAAoBzC,GAAS0C,GAAAA,EAAYC,GAAAA,GAAKC,GAAAtC,EAAAA,EAAAA,GAAAmC,EAAA,GAAvChC,EAAGmC,EAAA,GAAEC,EAAID,EAAA,GACV3D,GAAWC,EAAAA,EAAAA,KACTC,GAAchP,EAAAA,EAAAA,KAAdgP,UACAkC,GAAoBD,EAAAA,EAAAA,KAApBC,gBACAjG,EVlFc,WACtB,IAAMgD,GAAUtG,EAAAA,EAAAA,YAAW4C,GAE3B,QAAgBf,IAAZyE,EACF,MAAM,IAAIC,MAAM,yCAGlB,OAAOD,CACT,CU0EsB0E,GAAZ1H,QAEApL,GAAkBC,EAAAA,GAAAA,KAAlBD,cACF+S,EAAmB7B,KAEzB,OAAKG,EA4BDpC,GAEAxO,EAAAA,EAAAA,KAAC4R,GAAoB,CACnB5B,IAAKA,EACLuC,eAAa,EACb,cAAa7D,EAAU,aACvB8D,QAAS7H,EAAQ/K,UAEjBI,EAAAA,EAAAA,KAACoS,EAAI,CAAC7T,SAAS,eAMnByB,EAAAA,EAAAA,KAACoR,GAAW,CACVpB,IAAKA,EACLuC,eAAa,EACb,cAAa7D,EAAU,aACvB8D,QAAS7H,EAAQ/K,SAEhBL,EAAc,YA/CZiP,GAcHxO,EAAAA,EAAAA,KAAC4R,GAAoB,CACnB5B,IAAKA,EACL,cAAatB,EAAU,aAAa9O,SAEnC0S,GACCtS,EAAAA,EAAAA,KAAA,KAAGG,KAAK,uBAAsBP,UAC5BI,EAAAA,EAAAA,KAAC6R,GAAU,CAAAjS,SAAE0S,MAEb,QApBJtS,EAAAA,EAAAA,KAAC2R,GAAqB,CACpBxR,KAAK,uBACLsS,UAAWH,GAAmBtS,EAAAA,EAAAA,KAAC6R,GAAU,CAAAjS,SAAE0S,IAAiC,KAC5EI,QAAQ,YACR1V,MAAM,YAAW4C,UAEjBI,EAAAA,EAAAA,KAAA,QAAAJ,SAAOL,EAAc,gBA0C/B,E,ykBC5IA,IAAMoT,IAAoBpW,EAAAA,EAAAA,GAAO8U,GAAAA,EAAP9U,EAA0D,SAAAE,GAAA,IAAGmW,EAAUnW,EAAVmW,WAAYlW,EAAKD,EAALC,MAAK,OAAAwD,GAAAA,GAAA,CACtGvC,WAAY,SACZd,gBAAiBH,EAAMI,QAAQC,KAAK,KACpCoE,aAAczE,EAAMW,QAAQ,EAAG,EAAG,EAAG,GACrCL,MAAON,EAAMI,QAAQyU,KAAKC,QAC1B/T,QAAS,OACTc,SAAU7B,EAAM+E,WAAWoR,SAAStU,SACpCD,WAAY5B,EAAM+E,WAAWgQ,eAC7BtF,eAAgB,aAChBG,cAAe,YACf3P,MAAO,OAEHiW,EAAWE,UAAY,CACzBjW,gBAAiBH,EAAMI,QAAQqB,OAAOwD,QACvC,IAED,YAAa,CACXpD,SAAU7B,EAAM+E,WAAWC,QAAQ,IACnCtE,OAAQV,EAAMW,QAAQ,EAAG,KAC1B,IAGG0V,IAA6BxW,EAAAA,EAAAA,GAAO,MAAPA,EAAwD,SAAAY,GAAA,IAAGyV,EAAUzV,EAAVyV,WAAYlW,EAAKS,EAALT,MAAK,OAAAwD,GAAA,CAC7GiB,aAAc,MACd1D,QAAS,OACTc,SAAU7B,EAAM+E,WAAWC,QAAQ,IACnC9E,OAAQ,GACRQ,OAAQV,EAAMW,QAAQ,EAAG,IAErBuV,EAAWI,YAAc,CAC3B7R,aAAc,MACdnE,MAAON,EAAMI,QAAQqB,OAAOwD,MAC5BlE,QAAS,OACTc,SAAU7B,EAAM+E,WAAWC,QAAQ,IACnC9E,OAAQ,IACT,IAGGqW,IAA4B1W,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAiB,GAAQ,MAAQ,CAC9DgP,YADsDhP,EAALd,MAC9BW,QAAQ,GAC3B6V,SAAU,SACVhH,UAAW,OACXiH,aAAc,WACdxW,MAAO,OACR,IAWYyW,GAAwC,SAAHtV,GAO5C,IANJ8B,EAAQ9B,EAAR8B,SACAyT,EAASvV,EAATuV,UACAC,EAASxV,EAATwV,UACAC,EAAOzV,EAAPyV,QACAC,EAAU1V,EAAV0V,WACAR,EAAUlV,EAAVkV,WAEMS,GAAe7I,EAAAA,EAAAA,cAAY,kBAAM4I,EAAWD,EAAQ,GAAE,CAACC,EAAYD,IACnEG,EAAUJ,EACVV,EAAa,CAAEE,SAAUO,IAAcE,EAASP,WAAAA,GAC9CtE,GAAchP,EAAAA,EAAAA,KAAdgP,UAER,OACE/O,EAAAA,EAAAA,MAACgT,GAAiB,CAChBJ,eAAa,EACbK,WAAYA,EACZ,cAAalE,EAAU,wBACvB8D,QAASiB,EAAa7T,SAAA,EAEtBI,EAAAA,EAAAA,KAAC+S,GAA0B,CACzBH,WAAYA,EACZ,cAAalE,EAAU,gCAAgC9O,SAEjC,iBAAd0T,GACNtT,EAAAA,EAAAA,KAAC6R,GAAU,CAAC,cAAanD,EAAU,YAAY9O,SAAE0T,KAEjDtT,EAAAA,EAAAA,KAAC0T,EAAO,CACNnV,SAAS,UACT,cAAamQ,EAAU,iBAI7B1O,EAAAA,EAAAA,KAACiT,GAAyB,CAAC,cAAavE,EAAU,iCAAiC9O,SAChFA,MAIT,E,kCCtGa+T,GACH,uCADGA,GAEO,SAACC,GAAwB,oEAAAvS,OACqBuS,EAAgB,EAHrED,GAIG,SAACC,GAAwB,iEAAAvS,OACsBuS,EAAgB,EALlED,GAMW,SAACC,GAAwB,gGAAAvS,OAC6CuS,EAAgB,mDAAAvS,OAAkDuS,EAAgB,EAPnKD,GAQH,mBARGA,GASQ,SAACE,GAAY,4DAAAxS,OAA2DwS,EAAI,ECQpFC,IAAoBlN,EAAAA,EAAAA,eAAiC,CAAC,GAE3DsD,GAAa4J,GAAb5J,SAmCK6J,GAAgB,WAAH,OAAS1M,EAAAA,EAAAA,YAAWyM,GAAkB,EChD1DE,IAAmBhG,EAAAA,EAAAA,OAAKC,iBAAA,MAAa,CACzCgG,eAAgB,gCAA8BC,aAC/C,IAEYC,GAAsB,WACjC,IAAAzD,GAA8BC,EAAAA,EAAAA,KAAtBnN,EAAUkN,EAAVlN,WAAY4Q,EAAK1D,EAAL0D,MACpBC,GAQIC,EAAAA,GAAAA,MAPF/Q,EAAe8Q,EAAf9Q,gBACAI,EAAY0Q,EAAZ1Q,aACA4Q,EAAkBF,EAAlBE,mBACAC,EAAuBH,EAAvBG,wBACAC,EAAeJ,EAAfI,gBACA5Q,EAAYwQ,EAAZxQ,aACAC,EAAMuQ,EAANvQ,OAEF4Q,EAA6CX,KAArCH,EAAgBc,EAAhBd,iBAAkBe,EAAcD,EAAdC,eACpBC,GAAgBlK,EAAAA,EAAAA,UACpB,iBAAO,CACLkJ,iBAAAA,EACAe,eAAAA,EACAnR,WAAAA,EACAG,aAAAA,EACAkR,KAAMtR,EACNgR,mBAAAA,EACAC,wBAAAA,EACAC,gBAAAA,EACA5Q,aAAAA,EACAC,OAAAA,EACAsQ,MAAAA,EACD,GACD,CACER,EACAe,EACApR,EACAC,EACAG,EACA4Q,EACAC,EACAC,EACA5Q,EACAC,EACAsQ,IAIJ,OAAOpU,EAAAA,EAAAA,KAACgU,GAAgB,CAACY,cAAeA,GAC1C,ECpDYE,GAAkB,SAAlBA,GAAkB,OAAlBA,EAAkB,2BAAlBA,EAAkB,yBAAlBA,CAAkB,M,ykBCiB9B,IAEMC,IAAiBxY,EAAAA,EAAAA,GAAO,QAAPA,EACrB,SAAAE,GAAA,IAAGmW,EAAUnW,EAAVmW,WAAYlW,EAAKD,EAALC,MAAK,OAAAwD,GAAAA,GAAA,CAClBrD,gBAAiBH,EAAMI,QAAQqB,OAAOwD,MACtCQ,OAAQ,aAAFd,OAAe3E,EAAMI,QAAQC,KAAK,MACxCU,QAAS,OACT6P,WAAY,uCAERsF,EAAWpE,UAAY,CACzB/Q,QAAS,OACTC,cAAe,SACfd,OAAQ,OACRoY,SAAU,oBACVzT,SAAU,WACV5E,MAAO,MAGLiW,EAAWqC,WAAa,CAC1B7T,UAAW8T,GAAAA,GACXzX,QAAS,OACToE,KAAM,EACNsT,UAAW,IACX5T,SAAU,WACVc,IAAK,wBACL1F,MAAO,QACR,IAICyY,IAAkB7Y,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAY,GAAA,IAAGT,EAAKS,EAALT,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,GAC3ChJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B/P,QAAS,OACTd,MAAO,UACP0Y,UAAW,gBAAFhU,OCjDiB,GDiDe,SAAAA,OAlCvB,GAkC4C,OAC9DiU,UAAW,SACXC,UAAW,QACZ,IAGGC,IAAsBjZ,EAAAA,EAAAA,GAAO,MAAPA,EAAc,iBAAO,CAC/CkB,QAAS,OACTb,OAAQ,GACRD,MAAO,OACR,IAEK8Y,IAAczH,EAAAA,EAAAA,OAAKC,iBAAA,OAAY,qDAAiC,IAEhEyH,IAAsB1H,EAAAA,EAAAA,OAAKC,iBAAA,OAAY,uCAA2C,IAElFC,IACJlO,EAAAA,EAAAA,KAACzC,EAAAA,EAAG,CACFE,QAAQ,OACR0O,eAAe,SAAQvM,UAEvBI,EAAAA,EAAAA,KAACmO,EAAAA,EAAgB,MAIRwH,GAAiB,WAC5B,IAAAC,EAA6EhH,EAAAA,GAAzDiH,EAAcD,EAA1BD,WAA6CG,EAAmBF,EAApCvK,gBACpCgD,EAAyCX,IAAjCY,EAAUD,EAAVC,WAAYC,EAAgBF,EAAhBE,iBACpBwH,GAAgCC,EAAAA,GAAAA,MAAxBC,EAAOF,EAAPE,QAASC,EAAUH,EAAVG,WACX1H,GAAWC,EAAAA,EAAAA,KACXmE,EAAa,CAAEpE,SAAAA,GACf2H,GAAiBvL,EAAAA,EAAAA,cACrB,SAAC2I,GACC,IAAMnI,EACJmI,IAAYuB,GAAmBsB,YAAcP,EAAiBC,EAChEvH,EAAiBnD,EACnB,GACA,CAAC0K,EAAqBD,EAAgBtH,IAEhChP,GAAkBC,EAAAA,GAAAA,KAAlBD,cACAqM,GAAWtM,EAAAA,EAAAA,KAAXsM,OACF0G,EAAmB7B,KACjBG,GAAoBD,EAAAA,EAAAA,KAApBC,gBACFoC,GAAcpC,EACdyF,EAAe/H,IAAeuH,GAAmBrH,GAAYF,IAAewH,EAC5EzC,EAAY/E,IAAeuH,EAAiBf,GAAmBsB,YAActB,GAAmBwB,WAC9F5H,GAAchP,EAAAA,EAAAA,KAAdgP,UACF6H,EAAepC,MAErB5I,EAAAA,EAAAA,YAAU,WACJ0K,GAA0B,KAAf3H,GACb4H,GAAW,EAEf,GAAG,CAAC5H,EAAY2H,EAASC,IAEzB,IAAMM,EAAoB5F,GAAkB5Q,EAAAA,EAAAA,KAACyV,GAAW,IAAMc,EAExDE,GAAiB7L,EAAAA,EAAAA,cAAY,WACjC2D,EAAiBsH,EACnB,GAAG,CAACA,EAAgBtH,IAEpB,OAAIC,GAEAxO,EAAAA,EAAAA,KAAC8O,EAAAA,EAAK,CACJC,MAAO,CAAEnD,OAAQA,EAAO8K,QACxBC,gBAAiB,CAAEC,SAAU,CAAEpE,QAASiE,IACxCxH,KAAMoH,EAAazW,UAEnBI,EAAAA,EAAAA,KAACmP,EAAAA,EAAK,CACJC,GAAIiH,EACJhH,UAAU,QAAOzP,UAEjBD,EAAAA,EAAAA,MAACoV,GAAc,CACbnC,WAAYA,EACZ,cAAalE,EAAU,oBAAoB9O,SAAA,EAE3CD,EAAAA,EAAAA,MAAC6V,GAAmB,CAAC,cAAa9G,EAAU,yBAAyB9O,SAAA,EACnEI,EAAAA,EAAAA,KAACoT,GAAa,CACZC,UAAWA,EACXE,QAASuB,GAAmBsB,YAC5B9C,UAAWuD,EAAAA,EACXrD,WAAY2C,EAAevW,SAE1BL,EAAc,eAEjBS,EAAAA,EAAAA,KAACoT,GAAa,CACZC,UAAWA,EACXE,QAASuB,GAAmBwB,WAC5BhD,UAAWhB,QAAAA,EAAoB,GAC/BU,WAAYA,EACZQ,WAAY2C,EAAevW,SAE1BoT,EAAazT,EAAc,aAAe,GAAH8B,OAAM9B,EAAc,SAAQ,KAAA8B,OAAI9B,EAAc,mBAG1FI,EAAAA,EAAAA,MAAC2P,EAAAA,SAAQ,CAACpB,SAAUA,GAAStO,SAAA,CAC1ByT,IAAcyB,GAAmBsB,cAAepW,EAAAA,EAAAA,KAAC0V,GAAmB,IACpErC,IAAcyB,GAAmBwB,YAAcE,YAQvDH,GAKHrW,EAAAA,EAAAA,KAAC+U,GAAc,CACb+B,GAAG,MACHlE,WAAU1S,GAAAA,GAAA,GAAO0S,GAAU,IAAEqC,WAAW,IACxC,cAAavG,EAAU,oBAAoB9O,UAE3CD,EAAAA,EAAAA,MAACyV,GAAe,CAAAxV,SAAA,EACdI,EAAAA,EAAAA,KAAC+W,GAAAA,gBAAe,KAChB/W,EAAAA,EAAAA,KAACgX,GAAAA,EAAiB,KAClBhX,EAAAA,EAAAA,KAACiX,GAAAA,EAAQ,CACPhI,MAAI,EACJlP,GAAI,CAAEwB,SAAU,WAAYqK,OAAQ,KAAMjP,MAAO,QAASC,OAAQ,SAClE4V,QAASiE,SAfR,IAoBX,E,oCExKaS,GAA+B,SAAHza,GAAwB,IAAlB0a,EAAK1a,EAAL0a,MAAOC,EAAI3a,EAAJ2a,KAC9CC,EAAyC,CAC7CC,IAAKH,EACLI,OAAQ,CACN,CACE5a,MAAO,IACP6a,QAAS,MAITC,GAASC,EAAAA,GAAAA,GAAiBL,GAEhC,OACErX,EAAAA,EAAAA,KAAA,OACEU,IAAKyW,EACLxW,IAAKyW,EACLO,MAAM,QACNC,QAAQC,EAAAA,GAAAA,GAAeJ,IAG7B,ECzBOK,IAIHC,E,SAAAA,GAA6BC,GAAAA,IAAsCC,WAF5CC,IADeJ,GAAxCK,uBAC0CL,GAA1CM,yBACoBC,GAAYP,GAAhCQ,mB,+NCGF,IAAMC,IAAehc,EAAAA,EAAAA,GAAO,MAAPA,EAAsD,SAAAE,GAAA,IAAGmW,EAAUnW,EAAVmW,WAAYlW,EAAKD,EAALC,MAAK,O,uWAAAwD,CAAA,CAC7FrD,gBAAiBH,EAAMI,QAAQqB,OAAOwD,MACtCQ,OAAQ,aAAFd,OAAe3E,EAAMI,QAAQC,KAAK,MACxCU,QAAS,QACLmV,EAAW4F,YAAS9S,EAAAA,EAAAA,GAAA,GACrBhJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BpM,UAAW8T,GAAAA,GACXzX,QAAS,OACTC,cAAe,SACfmE,KAAM,EACNN,SAAU,WACVc,IAAK,wBACLiL,WAAY,sCACZ3Q,MAAO,SAEV,IAGG8b,IAAmBlc,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAiB,GAAA,IAAGd,EAAKc,EAALd,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,GAC5ChJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B7P,WAAY,SACZyP,aAAc,aAAF/L,OAAe3E,EAAMI,QAAQqB,OAAOwD,OAChD+W,UAAW,EACXjb,QAAS,OACTkb,gBAAiB,uBACjBC,aAAc,SACdC,iBAAkB,IAClB1M,eAAgB,SAChB+G,SAAU,UACX,IAGG4F,IAAevc,EAAAA,EAAAA,GAAO0B,EAAAA,EAAP1B,EAAa,SAAA2B,GAAA,IAAGxB,EAAKwB,EAALxB,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,GACvChJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BxQ,MAAON,EAAMI,QAAQqB,OAAOwD,MAC5BlE,QAAS,OACTb,OAAQ,OACRsW,SAAU,SACV3R,SAAU,WACV5E,MAAO,OAEP,6BAA8B,CAC5BK,MAAON,EAAMI,QAAQqB,OAAOwD,MAC5BoX,wBAAyB,eAG3B,kBAAmB,CACjBrN,YAAYsN,EAAAA,GAAAA,IAAMtc,EAAMI,QAAQqB,OAAOC,MAAO,KAGhD,UAAW,CACT,iBAAkB,CAChBsN,WAAY,UACZuN,YAAa,YAIjB,YAAa,CACXvN,WAAY,cACZwN,QAAS,KACTtc,OAAQ,OACR2E,SAAU,WACV+L,WAAY,QACZ3Q,MAAO,QAGT,UAAW,CACTC,OAAQ,OACRuc,UAAW,QACXxc,MAAO,SAEV,IAGGyc,IAAsB7c,EAAAA,EAAAA,GAAOoQ,EAAAA,EAAPpQ,EAAmB,SAAA0Q,GAAA,IAAGvQ,EAAKuQ,EAALvQ,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,GACpDhJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BlP,WAAY5B,EAAM+E,WAAWgQ,eAC7BrU,OAAQV,EAAMW,QAAQ,EAAG,GACzB6V,SAAU,SACV3R,SAAU,WACV2K,UAAW,SACXiH,aAAc,WACdkG,WAAY3c,EAAM4c,QAAQ,GAC1BjX,IAAK,MACLP,UAAW,oBACX4P,WAAY,UACb,IAGG6H,IAAgBhd,EAAAA,EAAAA,GAAOoQ,EAAAA,EAAPpQ,EAAmB,SAAAid,GAAA,IAAG9c,EAAK8c,EAAL9c,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,GAC9ChJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BrL,OAAQ,aAAFd,OAAe3E,EAAMI,QAAQqB,OAAOwD,OAC1CR,aAAc,GACd5C,SAAU7B,EAAM+E,WAAWgY,MAC3Bnb,WAAY5B,EAAM+E,WAAWgQ,eAC7B5P,KAAM,MACNwK,WAAY3P,EAAM+E,WAAWC,QAAQ,IACrCsT,SAAU,IACV9S,SAAU,IACVgR,SAAU,SACVtR,QAASlF,EAAMW,QAAQ,EAAG,GAC1BkE,SAAU,WACV2K,UAAW,SACXiH,aAAc,WACdkG,WAAY3c,EAAM4c,QAAQ,GAC1BjX,IAAK,MACLP,UAAW,uBACXwL,WAAY,QACZoE,WAAY,UACb,IAGGgI,IAAmBnd,EAAAA,EAAAA,GAAO0B,EAAAA,EAAP1B,EAAa,SAAAod,GAAA,IAAGjd,EAAKid,EAALjd,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,GAC3ChJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BoM,UAAW,SACX5c,MAAON,EAAMI,QAAQmX,QAAQ4F,KAC7Btb,SAAU7B,EAAM+E,WAAWC,QAAQ,IACnCpD,WAAY5B,EAAM+E,WAAWgQ,eAC7BpF,WAAY3P,EAAM+E,WAAWC,QAAQ,IACrCtE,OAAQV,EAAMW,QAAQ,EAAG,GACzBgB,eAAgB,YAChBiP,WAAY,QAEZ,6BAA8B,CAC5BtQ,MAAON,EAAMI,QAAQmX,QAAQ6F,MAC7Bf,wBAAyB,gBAE5B,IAGUgB,GAAe,WAC1B,IAAA1L,EAAyCX,IAAjCY,EAAUD,EAAVC,WAAYC,EAAgBF,EAAhBE,iBACZyL,EAAU3B,KAAV2B,MACFC,GAAWrP,EAAAA,EAAAA,cAAY,kBAAM2D,EAAiB,GAAG,GAAE,CAACA,IACpD2L,EAAmBF,EAAMG,MAC7B,SAAAC,GAAW,OAAAA,EAARC,WAA4BC,GAAAA,IAA0CC,YAAY,IAEjFC,EAAYR,EAAMjS,QAAO,SAAA0S,GAAW,OAAAA,EAARJ,WAA4BC,GAAAA,IAA0CI,SAAS,IAEzGhM,GAAchP,EAAAA,EAAAA,KAAdgP,UAER,GAAyB,IAArB8L,EAAUpV,OACZ,OAAO,KAGT,IACMwN,EAAa,CAAE4F,UADAlK,IAAeM,EAAAA,GAA2BmL,UAG/D,OACEpa,EAAAA,EAAAA,MAAC4Y,GAAY,CACX,cAAa7J,EAAU,kBACvBkE,WAAYA,EAAWhT,SAAA,EAEvBI,EAAAA,EAAAA,KAACyY,GAAgB,CAAA7Y,SACd4a,EAAUG,KAAI,SAAAC,GAAA,IAAGtD,EAAGsD,EAAHtD,IAAKuD,EAAQD,EAARC,SAAUC,EAAKF,EAALE,MAAOC,EAAWH,EAAXG,YAAW,OACjDpb,EAAAA,EAAAA,MAACmZ,GAAY,CAEX,cAAapK,EAAU,uBACvBvO,KAAMmX,EAAI1X,SAAA,CAETib,GACC7a,EAAAA,EAAAA,KAACkX,GAAa,CACZC,MAAO0D,EACPzD,KAAM0D,IAEN,MACJ9a,EAAAA,EAAAA,KAACoZ,GAAmB,CAClB,cAAa1K,EAAU,8BACvBgE,QAAQ,KAAI9S,SAEXmb,KAEH/a,EAAAA,EAAAA,KAACuZ,GAAa,CACZyB,UAAU,gBACVtI,QAAQ,KAAI9S,SAEXkb,MApBExD,EAsBQ,MAGlB4C,SAAAA,EAAkB5C,KACjBtX,EAAAA,EAAAA,KAAC0Z,GAAgB,CAACvZ,KAAM+Z,EAAiB5C,IAAI1X,SAAEsa,EAAiBY,QAC9D,MACJ9a,EAAAA,EAAAA,KAACiX,GAAAA,EAAQ,CACPhI,MAAI,EACJ,cAAaP,EAAU,sBACvB3O,GAAI,CAAEwB,SAAU,WAAYqK,OAAQ,KAAMjP,MAAO,QAASC,OAAQ,SAClE4V,QAASyH,MAIjB,E,+CC1MYgB,GAAY,SAAZA,GAAY,OAAZA,EAAY,YAAZA,EAAY,UAAZA,EAAY,cAAZA,CAAY,M,YCAZC,GAAc,SAAdA,GAAc,OAAdA,EAAc,oBAAdA,EAAc,sBAAdA,EAAc,oBAAdA,EAAc,wBAAdA,EAAc,0CAAdA,EAAc,oDAAdA,EAAc,sDAAdA,EAAc,8BAAdA,CAAc,M,uQCiBnB,IAAMC,GAAoB,SAAAhV,GAAiD,OAChFnG,EAAAA,EAAAA,KAACob,GAAAA,E,uWAAwBlb,CAAA,GAA0BiG,GACpD,E,opBCLD,I,GAoBMkV,GACD,EADCA,GAED,EAGCxd,IAAOtB,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAO8V,EAAA/V,EAAA+V,QAAA,OAAAtS,GAAA,CACnC8U,SArBqB,IAsBrBrY,MAAO,QACP4E,SAAU,WACVH,UAAW1E,EAAM4c,QAAQ,GACzBnY,aAAczE,EAAM4e,MAAMC,qBAC1B9d,QAAS,QACL+U,GAAW,CAAExG,OAAQ,WAAW,IAGhCwP,IAAcjf,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAY,GAAA,IAAGT,EAAAS,EAAAT,MAAA,MAAa,CAChDG,gBAAiBH,EAAMI,QAAQqB,OAAOwD,MACtCC,QAASlF,EAAMW,QAAQ,GACvBV,MAAO,OACPwE,aAAczE,EAAM4e,MAAMC,qBAC1B3P,OAAQ,EACRrK,SAAU,WACX,IAEKka,IAAYlf,EAAAA,EAAAA,GAAOmf,GAAAA,EAAPnf,EAAc,SAAAiB,GAAG,MAAa,CAC9CuP,aADiCvP,EAAAd,MACbW,QAAQ,KAC5B8O,eAAgB,gBAChBxO,WAAY,SACb,IAEKge,IAAQpf,EAAAA,EAAAA,GAAOoQ,EAAAA,EAAPpQ,CAAmB,CAC/B+B,WAAY,OACZ+N,WAAY,SAGR/P,IAAeC,EAAAA,EAAAA,GAAOC,GAAAA,EAAPD,EAAe,SAAAuB,GAAA,IAAGpB,EAAAoB,EAAApB,MAAA,MAAa,CAClDC,MAxDkB,GAyDlBC,OAzDkB,GA0DlBC,gBAAiBH,EAAMI,QAAQC,KAAK,KACpCC,MAAON,EAAMI,QAAQC,KAAK,KAC3B,IAEK6e,IAAerf,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAA2B,GAAA,IAAGxB,EAAAwB,EAAAxB,MAAA,MAAa,CACjDwW,SAAU,SACV3R,SAAU,WACVqK,OAAQ,EACRjP,MAnDiB,GAoDjBC,OApDiB,GAqDjByF,IAAKgZ,GACLxZ,KAAMwZ,GACNja,UAAW1E,EAAM4c,QAAQ,GACzBnY,aAAczE,EAAM4e,MAAMO,sBAC1Bhf,gBAAiBH,EAAMI,QAAQqB,OAAOwD,MACtCG,UAAW,6BACZ,IAYKga,GAA4B,SAAAlU,GAChC,OAAQA,GACN,KAAKqT,GAAac,IAChB,OAAOnd,GAAAA,EAAeuE,uBACxB,KAAK8X,GAAavW,MAChB,OAAO9F,GAAAA,EAAeqE,qBACxB,QACE,MAAM,IAAI2K,MAAM,kCAEtB,EAEaoO,GAA4B,SAAH9c,GAOhC,IANJ+R,EAAS/R,EAAT+R,UACAC,EAAQhS,EAARgS,SACA7R,EAAQH,EAARG,SACAZ,EAAkBS,EAAlBT,mBACAwd,EAAY/c,EAAZ+c,aACGC,GAAAC,EAAAA,EAAAA,GAAAjd,EAAAkd,IAEK7c,GAAkBC,EAAAA,GAAAA,KAAlBD,cACF7C,GAAQ4C,EAAAA,EAAAA,KACNG,GAAmBC,EAAAA,EAAAA,KAAnBD,eACF4c,EC1HA,SAAwBpL,EAAsCC,GAEpE,OAAOD,GAAaC,EAAW,GAAH7P,OAAM4P,EAAU,KAAA5P,OAAG6P,GAAaD,GAAaC,GAAY,EACvF,CDuHmBoL,CAAerL,EAAWC,GAE3C,OACEvR,EAAAA,EAAAA,MAAC9B,GAAIqC,GAAAA,GAAAA,GAAA,GACCT,EAAeyb,GAAeqB,OAC9BL,GAAS,IAAAtc,SAAA,EAEbI,EAAAA,EAAAA,KAAC4b,GAAY,KACbjc,EAAAA,EAAAA,MAAC6b,GAAW,CAAA5b,SAAA,EACVD,EAAAA,EAAAA,MAAC8b,GAAS,CAACpM,UAAU,MAAKzP,SAAA,EACxBI,EAAAA,EAAAA,KAAC2b,GAAKzb,GAAAA,GAAA,CACJwS,QAAQ,YACR1V,MAAON,EAAMI,QAAQC,KAAK,MACtB0C,EAAeyb,GAAesB,QAAM,IAAA5c,SAEvCL,EAAcX,GAAAA,EAAeoE,eAEhChD,EAAAA,EAAAA,KAACO,GAAAA,EAAsB,CAACC,kBAAmB/B,QAAAA,EAAsBC,GAAAA,EAAoB+B,QAAQb,UAC3FI,EAAAA,EAAAA,KAAC1D,GAAY4D,GAAAA,GAAA,CACXQ,IAAKrB,QAAAA,EAAY,GACjBsB,IAAKpB,EAAcX,GAAAA,EAAegC,eAC9BnB,EAAeyb,GAAera,SAAO,IAAAjB,UAEzCI,EAAAA,EAAAA,KAACc,GAAAA,EAAWZ,GAAA,CACVH,GAAI,CAAEpD,MA1HS,GA0HsBC,OA1HtB,IA2HfqD,QAAQ,iBACJR,EAAeyb,GAAena,4BAK1Cf,EAAAA,EAAAA,KAAC2M,EAAAA,EAAUzM,GAAAA,GAAA,CACTwS,QAAQ,QACR+J,UAAU,IACVzf,MAAON,EAAMI,QAAQC,KAAK,MACtB0C,EAAeyb,GAAewB,OAAK,IAAA9c,UAEvCI,EAAAA,EAAAA,KAACmb,GAAgB,CACfwB,GAAIb,GAAyBG,GAC7B3S,OAAQ,CACN+S,SAAAA,EAEAO,SAAW,SAAAC,GAAM,OAAK7c,EAAAA,EAAAA,KAAA,SAAAE,GAAAA,GAAA,GAAYT,EAAeyb,GAAe4B,YAAU,IAAAld,SAAGid,IAAe,cAO1G,E,kFErKaE,GAAqB,WAChC,IAAArN,GAAoCC,EAAAA,EAAAA,UAA0B,CAC5D/H,KAAMqT,GAAa+B,KACnBC,gBAAiB,aACjBrN,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAHKwN,EAAUtN,EAAA,GAAEuN,EAAavN,EAAA,GA4BhC,OAvBArE,EAAAA,EAAAA,YAAU,WACR,IAAM6R,EAAiBC,GAAAA,EAAQC,IAAIrZ,GAAAA,EAAeK,WAC5CiZ,EAAcF,GAAAA,EAAQC,IAAIrZ,GAAAA,EAAeS,OAE3C0Y,EACFD,EAAc,CACZK,MAAOJ,EACPH,gBAAiB,WACjBrV,KAAMqT,GAAac,MAMnBwB,GACFJ,EAAc,CACZK,MAAOD,EACPN,gBAAiB,WACjBrV,KAAMqT,GAAavW,OAGzB,GAAG,IAEIwY,CACT,E,oCClCaO,IAAoBC,EAAAA,GAAAA,GAAIC,KAAAA,IAAAC,EAAAA,GAAAA,GAAA,4K,YCGxBC,IAAuBjX,EAAAA,EAAAA,eAAgCtD,GAAAA,IAEvDwa,GAAwBD,GAAqB3T,SAE7CoK,GAAmB,WAAH,OAASjN,EAAAA,EAAAA,YAAWwW,GAAqB,ECG/D,IAAME,GAAsB,WACjC,IAAA1J,EAA2DC,KAAnDzU,EAASwU,EAATxU,UAAW0D,EAAe8Q,EAAf9Q,gBAAiBG,EAAU2Q,EAAV3Q,WAAYI,EAAAuQ,EAAAvQ,OAChD4M,GAA+CC,EAAAA,EAAAA,KAAvCC,EAAeF,EAAfE,gBAAiBwD,EAAK1D,EAAL0D,MAAO5Q,EAAAkN,EAAAlN,WAChCwa,EAAwBjB,KAAhBnV,EAAIoW,EAAJpW,KAAM4V,EAAAQ,EAAAR,MAERS,EAAaC,OAAOC,SAASX,QAAAA,EAAS,IAAK,IAEjDY,GAAqCC,EAAAA,GAAAA,GAA+D,CAClG/G,IAAK5T,EACL4a,MAAOb,GACPc,SAASC,EAAAA,GAAAA,GAAW,CAClB1a,OAAAA,EACA2a,SAAUlb,EACVC,WAAAA,EACA4Q,MAAAA,EACAsK,cAAe/b,GAAAA,KAEjBgc,UAAW,CACTV,WAAAA,GAEFW,KAAMhX,IAASqT,GAAavW,QAAUkM,IAAoB/Q,IAAcoe,IAb5DY,EAAWT,EAAjBvN,KAAmB9K,EAAAqY,EAAArY,MAoB3B,OAJIA,GACFG,QAAQH,MAAMA,IAGT2E,EAAAA,EAAAA,UAAQ,WACb,OAAKmU,SAAAA,EAAaC,oBAIHC,KAAUF,GAHhB,IAqBX,GAAG,CAACA,GACN,EC7CA,SAf0C,WACxC,IAAAnO,GAAwCC,EAAAA,EAAAA,KAAhCC,EAAeF,EAAfE,gBAAiBpN,EAAAkN,EAAAlN,WACnBwb,GAASC,EAAAA,GAAAA,KAAgDzb,OAAY0F,EAAW,CACpF6H,IAAK,CACHC,SAAUJ,KAQd,OAJIoO,EAAOjZ,OACTG,QAAQH,MAAMiZ,EAAOjZ,OAGhBiZ,CACT,E,OCdaE,IAAmBxB,EAAAA,GAAAA,GAAIC,KAAAA,IAAAC,EAAAA,GAAAA,GAAA,k+BCY7B,IAAMuB,GAA6B,WACxC,IAAA9K,EAA2DC,KAAnDzU,EAASwU,EAATxU,UAAW0D,EAAe8Q,EAAf9Q,gBAAiBG,EAAU2Q,EAAV3Q,WAAYI,EAAAuQ,EAAAvQ,OAChD4M,GAA+CC,EAAAA,EAAAA,KAAvCC,EAAeF,EAAfE,gBAAiBpN,EAAUkN,EAAVlN,WAAY4Q,EAAA1D,EAAA0D,MACrC4J,EAAyCjB,KAAjCnV,EAAIoW,EAAJpW,KAAM4V,EAAKQ,EAALR,MAAOP,EAAAe,EAAAf,gBACPmC,EAAgBC,KAAtBxO,KACFyO,EAAa1X,IAASqT,GAAac,KAAOlc,GAAa0f,QAAQ/B,GACrEY,GAAqCC,EAAAA,GAAAA,GAA6D,CAChG/G,IAAK5T,EACL4a,MAAOY,GACPX,SAASC,EAAAA,GAAAA,GAAW,CAClB1a,OAAAA,EACA2a,SAAUlb,EACVC,WAAAA,EACA4Q,MAAAA,EACAsK,cAAe/b,GAAAA,KAEjBgc,UAAW,CACTvH,KAAMxG,EAAkB4M,EAAQ4B,aAAW,EAAXA,EAAahI,KAC7C6F,gBAAiBA,GAEnB2B,KAAMhO,GAAmB0O,IAAcF,SAAAA,EAAahI,QAdxCyH,EAAWT,EAAjBvN,KAAmB9K,EAAAqY,EAAArY,MAqB3B,OAJIA,GACFG,QAAQH,MAAMA,IAGT2E,EAAAA,EAAAA,UAAQ,WACb,OAAKmU,SAAAA,EAAaW,aAAgBX,EAAYY,YAI/BV,KAAUF,GAHhB,IA0BX,GAAG,CAACA,GACN,EClEaa,GAAiC,WAC5C,IAAM7Y,EAAUsY,KACVrY,EAAmBiX,KAEzB,GAAIlX,EAAS,KAAA8Y,EAAAC,EACXnjB,EAAsE,QAAtEkjB,EAA6D,QAA7DC,EAA0C/Y,EAAQ2Y,mBAAW,IAAAI,OAAA,EAAnBA,EAAqBC,eAAO,IAAAF,EAAAA,EAAI,CAAC,EAAnE1O,EAASxU,EAATwU,UAAWC,EAAQzU,EAARyU,SAAU7R,EAAA5C,EAAA4C,SAE7B,MAAO,CAAE4R,UAAWA,QAAAA,EAAa,KAAMC,SAAUA,QAAAA,EAAY,KAAM7R,SAAUA,QAAAA,EAAY,KAC3F,CAEA,GAAIyH,EAAkB,KAAAgZ,EACpB3iB,EAA8E,QAA9E2iB,EAA0ChZ,EAAiBgY,2BAAmB,IAAAgB,EAAAA,EAAI,CAAC,EAA3E7O,EAAS9T,EAAT8T,UAAWC,EAAQ/T,EAAR+T,SAAU7R,EAAAlC,EAAAkC,SAE7B,MAAO,CAAE4R,UAAWA,QAAAA,EAAa,KAAMC,SAAUA,QAAAA,EAAY,KAAM7R,SAAUA,QAAAA,EAAY,KAC3F,CAEA,MAAO,CACL4R,UAAW,KACXC,SAAU,KACV7R,SAAU,KAEd,E,gnBCZA,I,gDCRMwL,GAAQ,SAACO,GAAmB,OAAK,IAAIH,YAAkBnB,EAAAA,GAAM,CAAEqB,OAAQ,CAAEC,SAAAA,IAAa,EAE/E2U,GAAqB,SAACC,EAAuB1R,GACpDA,GAAc0R,IAAe1R,GAC/BjE,OAAOW,cAAcH,GAAMyD,IAG7B2R,uBAAsB,WACpB5V,OAAOW,cAAcH,GAAMmV,GAC7B,GACF,ECRME,GAAa,WACjBC,GAAAA,GAAoBC,GAAAA,IACpBL,GAAmBnR,EAAAA,GAA2B+G,WAChD,EAEa0K,GAAgB,WAG3B,MAAO,CAFgB3S,IAAfY,aAEeM,EAAAA,GAA2B+G,WAAYuK,GAChE,E,ykBCJA,IAAMI,IAAqB/jB,EAAAA,EAAAA,GAAO8U,GAAAA,EAAP9U,EAA0D,SAAAE,GAAA,IAAAU,EAAGyV,EAAUnW,EAAVmW,WAAYlW,EAAKD,EAALC,MAAK,OAAAS,EAAA,CACvGH,MAAON,EAAMI,QAAQC,KAAKwjB,KAC1BhiB,SAAU7B,EAAM+E,WAAWC,QAAQ,IACnC9E,OAAQ,GACR4P,YAAa9P,EAAMW,QAAQ,GAC3BuE,QAAS,cAAW8D,EAAAA,EAAAA,GAAAvI,EAEnBT,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BhB,YAAa9P,EAAMW,QAAQ,MAC5BqI,EAAAA,EAAAA,GAAAvI,EAEAT,EAAM6Q,YAAYC,GAAG,MAAKtN,GAAA,CACzB,UAAW,CACT,sBAAuB,CACrBtD,OAAQ,MAIRgW,aAAU,EAAVA,EAAY4N,SAAU,CACxB,UAAW,CACT,sBAAuB,CACrB5jB,OAAQ,QAGb8I,EAAAA,EAAAA,GAAAvI,EAGFT,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BhB,YAAa9P,EAAMW,QAAQ,KAC5BF,CAAA,IAGGsjB,IAAwBlkB,EAAAA,EAAAA,GAAO,MAAPA,EAE3B,SAAAiB,GAAA,IAAGoV,EAAUpV,EAAVoV,WAAYlW,EAAKc,EAALd,MAAK,OAAAwD,GAAAA,GAAA,CACrBzC,QAAS,SAELmV,aAAU,EAAVA,EAAYpE,WAAY,CAC1B/Q,QAAS,UACV,IAAAiI,EAAAA,EAAAA,GAAA,GAEAhJ,EAAM6Q,YAAYC,GAAG,MAAKtN,GAAA,CACzBzC,QAAS,UAELmV,aAAU,EAAVA,EAAYpE,WAAY,CAC1B/Q,QAAS,UACV,IAICijB,IAAqBnkB,EAAAA,EAAAA,GAAO,MAAPA,EAExB,SAAAuB,GAAA,IAAG8U,EAAU9U,EAAV8U,WAAYlW,EAAKoB,EAALpB,MAAK,OAAAwD,GAAAA,GAAA,CACrBrD,gBAAiBH,EAAMI,QAAQC,KAAKwjB,KACpC3jB,OAAQ,EACRQ,OAAQ,QACRujB,QAAS,EACTpf,SAAU,WACVO,UAAW,wCACXwL,WAAY,6CACZ3Q,MAAO,KAEHiW,aAAU,EAAVA,EAAYpE,WAAY,CAC1B/Q,QAAS,UACV,IAAAiI,EAAAA,EAAAA,GAAA,GAEAhJ,EAAM6Q,YAAYC,GAAG,MAAKtN,GAAA,CACzBvD,MAAO,KACHiW,aAAU,EAAVA,EAAY4N,SAAU,CACxB,mBAAoB,CAClB1e,UAAW,iDAGb,mBAAoB,CAClB6e,QAAS,EACT7e,UAAW,oBAGb,mBAAoB,CAClBA,UAAW,uDAEd,IAIQ+U,GAAqB,WAAM,IAAA+J,EACtCC,EAAiCR,KAAeS,GAAAjR,EAAAA,EAAAA,GAAAgR,EAAA,GAAzCE,EAAUD,EAAA,GAAEZ,EAAUY,EAAA,GAC7BpR,GAAgDC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAxDsR,EAAgBpR,EAAA,GAAEqR,EAAmBrR,EAAA,GAC5CsR,GAII9Z,EAAAA,GAAAA,KAHe+Z,EAAkBD,EAAnCha,gBACoBka,EAAqBF,EAAzC/Z,mBACAN,EAAOqa,EAAPra,QAGMwa,GAAwB/M,EAAAA,GAAAA,MAAxB+M,oBACA9hB,GAAkBC,EAAAA,GAAAA,KAAlBD,cACFqT,EAAa,CAAE4N,OAAQO,GACrBrS,GAAchP,EAAAA,EAAAA,KAAdgP,UAEF4S,GAAkB1W,EAAAA,EAAAA,cAAY,WAAM,IAAA+U,EAAAC,EACxC1hB,EAA6D,QAA7DyhB,EAAgC9Y,SAAoB,QAAb+Y,EAAP/Y,EAAS2Y,mBAAW,IAAAI,OAAA,EAApBA,EAAsBC,eAAO,IAAAF,EAAAA,EAAI,CAAC,EAA1D1O,EAAS/S,EAAT+S,UAAWC,EAAQhT,EAARgT,UAEdiQ,GAAsBE,GAAuBpQ,GAAaC,GAC7DkQ,GAAsB,GAGxBlB,GACF,GAAG,CAACiB,EAAoBjB,EAAYkB,EAAuBC,EAAqBxa,SAAoB,QAAb+Z,EAAP/Z,EAAS2Y,mBAAW,IAAAoB,OAAA,EAApBA,EAAsBf,UAEhG0B,EAAqB,SAAHriB,GAA4E,IAAAsiB,EAAAtiB,EAAtEiM,OAAUsW,EAASD,EAATC,UAAWC,EAAWF,EAAXE,YAC7CA,GAAeD,EAAU3Z,SAAS4Z,KACpCT,GAAoB,kBAAM,CAAI,IAE9BU,YAAW,WACTV,GAAoB,kBAAM,CAAK,GACjC,GAAG,GAEP,EAUA,OARA1V,EAAAA,EAAAA,YAAU,WAGR,OAFAlB,OAAOmB,iBAAiBoW,GAAAA,EAA4BL,GAE7C,WACLlX,OAAOoB,oBAAoBmW,GAAAA,EAA4BL,EACzD,CACF,GAAG,KAGD5hB,EAAAA,EAAAA,MAAC2gB,GAAkB,CACjB/N,eAAa,EACb,aAAYhT,EAAc,QAC1BqT,WAAYA,EACZ,cAAalE,EAAU,eACvB8D,QAAS8O,EAAgB1hB,SAAA,EAEzBI,EAAAA,EAAAA,KAACygB,GAAqB,CAAC7N,WAAU1S,GAAAA,GAAA,GAAO0S,GAAU,IAAEpE,UAAU,IAAO5O,UACnED,EAAAA,EAAAA,MAACkiB,GAAAA,gBAAe,CACdC,oBAAkB,EAClB7b,MAAO+a,EAAiBphB,SAAA,EAExBI,EAAAA,EAAAA,KAAC0gB,GAAkB,CACjB9N,WAAYA,EACZoI,UAAU,wBAEZhb,EAAAA,EAAAA,KAAC0gB,GAAkB,CACjB9N,WAAYA,EACZoI,UAAU,wBAEZhb,EAAAA,EAAAA,KAAC0gB,GAAkB,CACjB9N,WAAYA,EACZoI,UAAU,6BAIhBrb,EAAAA,EAAAA,MAAC8gB,GAAqB,CAAA7gB,SAAA,EACpBI,EAAAA,EAAAA,KAAC0gB,GAAkB,CACjB9N,WAAYA,EACZoI,UAAU,wBAEZhb,EAAAA,EAAAA,KAAC0gB,GAAkB,CACjB9N,WAAYA,EACZoI,UAAU,wBAEZhb,EAAAA,EAAAA,KAAC0gB,GAAkB,CACjB9N,WAAYA,EACZoI,UAAU,4BAKpB,EC9KM+G,IACA,GADAA,IAEA,GAGAC,IAAuBzlB,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACzCgF,SAAU,aAGN0gB,IAAmB1lB,EAAAA,EAAAA,IJMkC,SAAHE,GAAgD,IAAAylB,EAAAC,EAAAvC,EAAAwC,EAA1C5P,EAAO/V,EAAP+V,QAAO6P,EAAA5lB,EAAE6lB,UAAAA,OAAS,IAAAD,GAAOA,EAAKlc,GAAAgW,EAAAA,EAAAA,GAAA1f,EAAA2f,IAC1F8E,GAAsE9Z,EAAAA,GAAAA,KAA9DH,EAAiBia,EAAjBja,kBAAmBE,EAAkB+Z,EAAlB/Z,mBAAoBN,EAAOqa,EAAPra,QAASE,EAAAma,EAAAna,UAExDwb,EAA0C7C,KAAlCzO,EAASsR,EAATtR,UAAWC,EAAQqR,EAARrR,SAAU7R,EAAAkjB,EAAAljB,SACrB+I,GAA6E,QAArF8Z,EAAmCrb,SAAoB,QAAbsb,EAAPtb,EAAS4Y,mBAAW,IAAA0C,GAAe,QAAfA,EAApBA,EAAsBK,qBAAa,IAAAL,OAAA,EAAnCA,EAAqCvN,qBAAa,IAAAsN,EAAAA,EAAI,CAAC,GAAlF9Z,uBACFC,EAAmBxB,SAAoB,QAAb+Y,EAAP/Y,EAAS2Y,mBAAW,IAAAI,GAAY,QAAZA,EAApBA,EAAsB6C,kBAAU,IAAA7C,OAAA,EAAhCA,EAAkCzF,MAAM,SAAAuI,GAAI,OAAKA,aAAI,EAAJA,EAAMC,SAAS,IAGnFrB,GAAkB1W,EAAAA,EAAAA,cACrB,SAAAgY,GACwB,mBAAZpQ,GACTA,EAAQoQ,GAGVzb,GAAmB,EACrB,GACA,CAACqL,EAASrL,IAeZ,OAXAoE,EAAAA,EAAAA,YAAU,WACR,IAAIsX,EAOJ,OAJI5b,GAAqBqb,IACvBO,EAAQlB,YAAW,kBAAMxa,GAAmB,EAAK,GAnC/B,MAsCb,kBAAM2b,aAAaD,EAAM,CAClC,GAAG,CAAC5b,EAAmBqb,EAAWnb,IAE7BF,GAKHjH,EAAAA,EAAAA,KAACqG,GAAAA,EAAgB,CAAAzG,UACfI,EAAAA,EAAAA,KAACgc,GAAO9b,GAAAA,GAAA,GACFiG,GAAK,IACT8V,aAA6B,QAAjBmG,EAAErb,aAAS,EAATA,EAAWa,YAAI,IAAAwa,EAAAA,EAAInH,GAAa+B,KAC9C/L,UAAWA,EACXC,SAAUA,EACV7R,SAAUA,EACVZ,oBAAoBwJ,EAAAA,GAAAA,GAAmC,CACrDG,uBAAAA,EACAC,iBAAAA,IAEFmK,QAAS8O,OAfN,IAmBX,GIzDyB/kB,CAAmB,CAC1CgF,SAAU,WACVc,IAAK,eAAFhB,OAAiB0gB,GAAkB,OACtClgB,KAAMkgB,KAGKgB,GAAuB,WAClC,IAAAlC,EAAuBR,KAAdH,GAA6BrQ,EAAAA,EAAAA,GAAAgR,EAAA,GAAnB,GAEbmC,GAAoBpY,EAAAA,EAAAA,cAAY,WACpCsV,GACF,GAAG,CAACA,IAEJ,OACEvgB,EAAAA,EAAAA,MAACqiB,GAAoB,CAAApiB,SAAA,EACnBI,EAAAA,EAAAA,KAAC6W,GAAc,KACf7W,EAAAA,EAAAA,KAACiiB,GAAgB,CAACzP,QAASwQ,MAGjC,E,YC9BMC,IAAkB1mB,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAE,GAAA,IAAAU,EAAGT,EAAKD,EAALC,MAAK,OAAAS,EAAA,CAC5C+lB,KAAMxmB,EAAMI,QAAQC,KAAK,KACzBJ,MAAO,GACP2Q,WAAY,0CAAuC5H,EAAAA,EAAAA,GAAAvI,EAElDT,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B7Q,MAAO,OACR+I,EAAAA,EAAAA,GAAAvI,EAEAT,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B7Q,MAAO,MACRQ,CAAA,IAGGgmB,IACJnjB,EAAAA,EAAAA,KAACijB,GAAe,CACdljB,GAAI,SAACrD,GAAK,OAAAgJ,EAAAA,EAAAA,GAAA,GAAShJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAAE7Q,MAAO,KAAK,EAC9DymB,MAAM,6BACNnjB,QAAQ,aACR,UAAQ,KAAIL,UAEZI,EAAAA,EAAAA,KAAA,QAAMqjB,EAAE,0vLAINC,IACJtjB,EAAAA,EAAAA,KAACijB,GAAe,CACdG,MAAM,6BACNnjB,QAAQ,aACR,UAAQ,SAAQL,UAEhBI,EAAAA,EAAAA,KAAA,QAAMqjB,EAAE,g2DAICE,GAAmB,WAC9B,IAAQ7U,GAAchP,EAAAA,EAAAA,KAAdgP,UACF8U,GAAaC,EAAAA,GAAAA,KAEnB,OACEzjB,EAAAA,EAAAA,KAACzC,EAAAA,EAAG,CACFwC,GAAI,CAAEmM,UAAW,UACjB,cAAawC,EAAU,iBAAiB9O,UAExCI,EAAAA,EAAAA,KAAC/B,EAAAA,EAAI,CACH8B,GAAI,CAAEsM,WAAY,EAAG5O,QAAS,SAC9B0C,KAAK,IACL,aAAW,kBAAiBP,SAE3B4jB,EAAaL,GAAcG,MAIpC,ECrDMI,IAAyBnnB,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,CACnD/H,WAAY,SACZF,QAAS,QAERf,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BwH,SAAU,QACX,IAGU2O,GAAyB,WAAH,OACjChkB,EAAAA,EAAAA,MAAC+jB,GAAsB,CAAA9jB,SAAA,EACrBI,EAAAA,EAAAA,KAAC+iB,GAAgB,KACjB/iB,EAAAA,EAAAA,KAACujB,GAAY,MACU,E,4pBCD3B,IAAMK,IAAmBrnB,EAAAA,EAAAA,GAAO,OAAPA,EAAe,SAAAE,GAAQ,MAAQ,CACtDkB,WAAY,SACZ+a,UAF8Cjc,EAALC,MAExBW,QAAQ,GACzBI,QAAS,OACTC,cAAe,SACfyO,eAAgB,gBAChBmJ,UAAW,SACZ,IAMYuO,GAA8C,SAAH1mB,GAElD,IADe2mB,EAAgC3mB,EAAnD4mB,gBAAmBD,iCAEbE,GAAqB/T,EAAAA,EAAAA,QAAO,IAAIgU,iBAChCC,GAAUjU,EAAAA,EAAAA,QAAwB,MACxCP,GAA8CC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAtDyU,EAAevU,EAAA,GAAEwU,EAAkBxU,EAAA,GAC1CyU,GAAgD1U,EAAAA,EAAAA,UAAS,IAAG2U,GAAAzU,EAAAA,EAAAA,GAAAwU,EAAA,GAArDzQ,EAAgB0Q,EAAA,GAAEC,EAAmBD,EAAA,GAC5CE,GAAwC7U,EAAAA,EAAAA,UAAwB,MAAK8U,GAAA5U,EAAAA,EAAAA,GAAA2U,EAAA,GAA9DE,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GACpCG,GAA0BjV,EAAAA,EAAAA,UAAiC,IAAGkV,GAAAhV,EAAAA,EAAAA,GAAA+U,EAAA,GAAvDE,EAAKD,EAAA,GAAEE,EAAQF,EAAA,GACtBG,GAA4CrV,EAAAA,EAAAA,WAAS,GAAKsV,GAAApV,EAAAA,EAAAA,GAAAmV,EAAA,GAAnDE,EAAcD,EAAA,GAAEE,EAAiBF,EAAA,GAChC1lB,GAAkBC,EAAAA,GAAAA,KAAlBD,cACR6lB,GAAmCC,EAAAA,GAAAA,MAA3BC,EAAQF,EAARE,SAAUC,EAAYH,EAAZG,aAEZC,GAAe5a,EAAAA,EAAAA,cAAY,SAACC,GAChC,IAAQ/E,EAAU+E,EAAM4a,OAAhB3f,MACRye,EAAoBze,GACpB6e,EAAgB,MAChBP,GAAmB,GACnBe,GAAkB,GAEdrf,GACF4f,GAAAA,QACGpI,IAAkC3J,GAA+B7N,GAAQ,CACxE6f,OAAQ3B,EAAmBxT,QAAQmV,SAEpCC,MAAK,SAAApoB,GAAA,IAAGqT,EAAIrT,EAAJqT,KAAI,OAAOkU,EAASlU,EAAK8J,KAAI,SAAC9G,EAAMgS,GAAK,MAAM,CAAEA,MAAAA,EAAOhS,KAAAA,EAAM,IAAG,IACzEiS,OAAM,SAAC/f,GAAc,OAAKG,QAAQH,MAAMA,EAAM,IAC9CggB,SAAQ,WACP3B,GAAmB,EACrB,GAEN,GAAG,IAEG4B,GAAepb,EAAAA,EAAAA,cAAY,SAACC,GAChC,IAAqB8R,EAAO9R,EAAM4a,OAA1BQ,YACR1B,EAAoB5H,QAAAA,EAAM,IAC1BoI,EAAS,IAELpI,GACF+I,GAAAA,QACGQ,KAAgCvS,GAAkCgJ,IAClEiJ,MAAK,SAAA1nB,GAAmC,IAAAioB,EAAAjoB,EAAhC2S,KAAQuV,EAAOD,EAAPC,QAASpH,EAAMmH,EAANnH,OACxB2F,EAAgByB,GAChBjB,GAAmBnG,EACrB,IACC8G,OAAM,SAAC/f,GAAc,OAAKG,QAAQH,MAAMA,EAAM,GAErD,GAAG,IAEGsgB,GAAWzb,EAAAA,EAAAA,cAAYqD,iBAC3B,IACE,IAAQ4C,SAAe6U,GAAAA,QAAMpI,IAA8B3J,GAA8BC,KAAjF/C,KACkBoN,EAA8CpN,EAAhEyV,iBAA8BC,EAAkC1V,EAAlC0V,aAEtC,GAFwE1V,EAApB2V,gBAGlD,IAAI,IAAAC,QACIf,GAAAA,QAAMQ,KAAKvS,GAA0BsK,IAC5B,QAAfwI,EAAAvC,EAAQ1T,eAAO,IAAAiW,GAAfA,EAAiBC,QACnB,CAAE,MAAO3gB,GACP4e,EAAgBplB,EAAc,mBAC9B2G,QAAQygB,KAAK5gB,EACf,MAEA4e,EAAgB4B,EAEpB,CAAE,MAAOxgB,GACPG,QAAQygB,KAAK5gB,EACf,CACF,GAAG,CAAC6N,EAAkBrU,IAEtB,OACEI,EAAAA,EAAAA,MAACikB,GAAgB,CACf5T,IAAKkU,EACL0C,OAAQjT,GACRkT,aAAa,MACbC,OAAO,OACPT,SAAUd,EAAac,GAAUzmB,SAAA,EAEjCI,EAAAA,EAAAA,KAAC+mB,GAAAA,EAAY,CACXC,WAAS,EACTC,eAAgB,SAACpT,GAAI,OAAKqT,OAAOrT,EAAKA,KAAK,EAC3C8I,GAAG,mBACHwK,QAAShD,EACTiD,YAAa7nB,EAAc,WAC3B8nB,cAAe9nB,EAAc,aAC7B+nB,QAASxC,EACTyC,YAAa,SAACphB,GAAK,OACjBnG,EAAAA,EAAAA,KAACwnB,GAAAA,EAAStnB,GAAAA,GAAAA,GAAA,CACRwS,QAAQ,WACR3M,MAAOwZ,QAAQmF,GACf+C,WAAY/C,EACZgD,MAAO5D,GACHwB,EAASnf,EAAMwW,KAAG,IACtBgL,SAAUnC,GACNrf,GAAK,IACT6gB,WAAS,IACT,EAEJW,SAAU3B,KAEZhmB,EAAAA,EAAAA,KAAC8M,EAAAA,EAAM,CACLka,WAAS,EACTjnB,GAAI,CAAEhC,UAAW,OACjB6pB,SAAU1C,EACVloB,MAAM,UACN4K,KAAK,SACL8K,QAAQ,YAAW9S,SAElBL,EAAc,cAIvB,ECtIasoB,GAAsB,SAAC1hB,GAAoC,IAAA2hB,EAAAC,EAAAC,EAAAC,EAC9DC,EAAgD/hB,EAAhD+hB,cAAenE,EAAiC5d,EAAjC4d,gBAAiB9U,EAAgB9I,EAAhB8I,KAAMkZ,EAAUhiB,EAAVgiB,MAC9CzY,GAAwCC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAhD0Y,EAAYxY,EAAA,GAAEyY,EAAezY,EAAA,GAEpC,OACE5P,EAAAA,EAAAA,KAACsoB,GAAAA,GAAM,CACLC,OACEH,GACEzoB,EAAAA,EAAAA,MAAA6oB,EAAAA,SAAA,CAAA5oB,SAAA,EACEI,EAAAA,EAAAA,KAAC8L,EAAS,CAAC0G,QAAS,kBAAM6V,GAAgB,EAAM,EAACzoB,UAC/CI,EAAAA,EAAAA,KAACyoB,GAAAA,EAAa,OAEhBzoB,EAAAA,EAAAA,KAAC2M,EAAAA,EAAU,CAAC+F,QAAQ,KAAI9S,SAAEmkB,EAAgBD,2CAE1C5a,EAEN+F,KAAMA,EACNyZ,gBAAiBN,EACjBlZ,QAAS,kBAAMiZ,GAAO,EAACvoB,UAEvBI,EAAAA,EAAAA,KAAC4M,EAAiB,CAAAhN,SACfwoB,GACCpoB,EAAAA,EAAAA,KAAC6jB,GAAoB,CAACE,gBAAiBA,KAEvCpkB,EAAAA,EAAAA,MAAA6oB,EAAAA,SAAA,CAAA5oB,SAAA,EACEI,EAAAA,EAAAA,KAAC6M,EAAW,CACVma,WAAS,EACTtU,QAAQ,YACR1V,MAAM,UACNmD,KAA4B,QAAxB2nB,EAAEI,EAAcS,MAAM,UAAE,IAAAb,OAAA,EAAtBA,EAAwBc,IAAIhpB,SAEX,QAFWmoB,EAEjCG,EAAcS,MAAM,UAAE,IAAAZ,OAAA,EAAtBA,EAAwBc,QAE3B7oB,EAAAA,EAAAA,KAAC6M,EAAW,CACVma,WAAS,EACTtU,QAAQ,YACR1V,MAAM,UACNwV,QAAS,kBAAM6V,GAAgB,EAAK,EAACzoB,SAEpCmkB,EAAgBD,oCAEnB9jB,EAAAA,EAAAA,KAACgN,EAAS,CACR0F,QAAQ,SACR1V,MAAM,UACNmD,KAA4B,QAAxB6nB,EAAEE,EAAcS,MAAM,UAAE,IAAAX,OAAA,EAAtBA,EAAwBY,IAAIhpB,SAEX,QAFWqoB,EAEjCC,EAAcS,MAAM,UAAE,IAAAV,OAAA,EAAtBA,EAAwBY,aAOvC,ECpDaC,GAAgB,SAAC3iB,GAC5B,IAAQ+hB,EAAoD/hB,EAApD+hB,cAAenE,EAAqC5d,EAArC4d,gBAAiBgF,EAAoB5iB,EAApB4iB,gBAChCra,GAAchP,EAAAA,EAAAA,KAAdgP,UACRgB,GAAoCC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA5CsZ,EAAUpZ,EAAA,GAAEqZ,EAAarZ,EAAA,GAC1BsZ,GAActe,EAAAA,EAAAA,cAAY,kBAAMqe,GAAc,EAAM,GAAE,IACtDE,GAAave,EAAAA,EAAAA,cAAY,kBAAMqe,GAAc,EAAK,GAAE,IAClD1pB,GAAkBC,EAAAA,GAAAA,KAAlBD,cAER,OAAM2oB,GAAiBnE,IAAoBgF,GAQxCb,EAAckB,iBACdlB,EAAc5B,mBACdvC,EAAgBD,kCACjBoE,EAAcS,MAAMvjB,OAAS,EAEtB,MAIPpF,EAAAA,EAAAA,KAACnC,EAAI,CAAC,cAAa6Q,EAAU,0BAA0B9O,UACrDD,EAAAA,EAAAA,MAACsM,EAAY,CAAArM,SAAA,EACXI,EAAAA,EAAAA,KAACqpB,GAAAA,EAAa,KACdrpB,EAAAA,EAAAA,KAAC2M,EAAAA,EAAU,CAAA/M,SAAEL,EAAc,iBAC3BS,EAAAA,EAAAA,KAAC0M,EAAQ,CAAC8F,QAAS2W,EAAWvpB,SAAEsoB,EAAckB,kBAC9CppB,EAAAA,EAAAA,KAAC6nB,GAAmB,CAClB5Y,KAAM+Z,EACNb,MAAOe,EACPhB,cAAeA,EACfnE,gBAAiBA,KAEnB/jB,EAAAA,EAAAA,KAACspB,GAAAA,EAAc,SA3BZ,IA+BX,E,oCClCMC,IAAqBhtB,EAAAA,EAAAA,GAAO8U,GAAAA,EAAP9U,EAAmB,SAAAE,GAAA,IAAAU,EAAGT,EAAKD,EAALC,MAAK,OAAAS,EAAA,IAAAuI,EAAAA,EAAAA,GAAAvI,EACnDT,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BxQ,MAAON,EAAMI,QAAQC,KAAK,KAC1BwB,SAAU7B,EAAM+E,WAAWC,QAAQ,IACnC9E,OAAQ,cACR6P,WAAY/P,EAAMW,QAAQ,GAE1B,6BAA8B,CAC5BL,MAAON,EAAMI,QAAQC,KAAK,KAC1BiP,OAAQ,WAGV,sBAAuB,CACrBrO,WAAY,SACZF,QAAS,WAEZiI,EAAAA,EAAAA,GAAAvI,EAEAT,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5Bf,WAAY/P,EAAMW,QAAQ,MAC3BqI,EAAAA,EAAAA,GAAAvI,EAEAT,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5Bf,WAAY/P,EAAMW,QAAQ,KAC3BF,CAAA,IAGGqsB,GAAgB,WAAO,EAEhBC,GAAyB,WACpC,IAAAzX,EAAoBzC,GAASma,GAAAA,EAAaC,GAAAA,GAAMxX,GAAAtC,EAAAA,EAAAA,GAAAmC,EAAA,GAAzChC,EAAGmC,EAAA,GAAEC,EAAID,EAAA,GAChBzC,GAAgDC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAxDsR,EAAgBpR,EAAA,GAAEqR,EAAmBrR,EAAA,GAC5CyU,GAA0D1U,EAAAA,EAAAA,WAAS,GAAM2U,GAAAzU,EAAAA,EAAAA,GAAAwU,EAAA,GAAlEuF,EAAqBtF,EAAA,GAAEuF,EAAwBvF,EAAA,GAC9ChW,EAAeZ,IAAfY,WAEAI,GAAchP,EAAAA,EAAAA,KAAdgP,UAEFob,GAAclf,EAAAA,EAAAA,cAAY,WAC9BuV,GAAAA,GAAoB4J,GAAAA,IAEhB1f,OAAOC,SAAS0f,WAAaC,GAAAA,GAIjClK,GAAmBmK,EAAAA,GAAUC,kBAAmB7b,EAClD,GAAG,CAACA,IAEEiT,EAAqB,SAAH/jB,GAA4E,IAAA4sB,EAAA5sB,EAAtE2N,OAAUsW,EAAS2I,EAAT3I,UAAWC,EAAW0I,EAAX1I,YAC7CA,GAAeD,EAAU3Z,SAAS4Z,KACpCT,GAAoB,kBAAM,CAAI,IAE9BU,YAAW,WACTV,GAAoB,kBAAM,CAAK,GACjC,GAAG,GAEP,EAeA,OAbA1V,EAAAA,EAAAA,YAAU,WAGR,OAFAlB,OAAOmB,iBAAiBoW,GAAAA,EAA4BL,GAE7C,WACLlX,OAAOoB,oBAAoBmW,GAAAA,EAA4BL,EACzD,CACF,GAAG,KAEHhW,EAAAA,EAAAA,YAAU,WACR,IAAM8e,EAAmBC,SAASC,eAAe,2BACjDV,EAAyBtK,QAAQ8K,GACnC,GAAG,IAEET,GAKH5pB,EAAAA,EAAAA,KAACupB,GAAkB,CACjBvZ,IAAKA,EACLuC,eAAa,EACb,cAAa7D,EAAU,uBACvB8D,QAASsX,EAAYlqB,UAErBI,EAAAA,EAAAA,KAAC6hB,GAAAA,gBAAe,CACdC,oBAAkB,EAClB7b,MAAO+a,EACPxO,QAASgX,GAAc5pB,UAEvBI,EAAAA,EAAAA,KAACoS,EAAI,CAAC7T,SAAS,gBAfZ,IAmBX,E,YC7FaisB,GAA2C,CACtDC,WAAY,GACZC,UAAW,GACXC,QAAS,IAGEC,IAAgBhkB,EAAAA,EAAAA,eAAc4jB,IAEnCtgB,GAAa0gB,GAAb1gB,SAEF2gB,GAAY,SAChBC,EACAC,GAAuD,IAAAC,EAAAC,EAAA,OACA,QADAD,EACpDD,SAA6C,QAAnCE,EAAVF,EAAY5Q,MAAK,SAAA1d,GAAO,OAAAA,EAAJmL,OAAoBkjB,CAAI,WAAC,IAAAG,OAAA,EAA7CA,EAA+CnQ,aAAK,IAAAkQ,EAAAA,EAAI,EAAE,EClBzDE,IAAY3uB,EAAAA,EAAAA,GAAO0B,EAAAA,EAAP1B,EAEf,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,GACRhJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BxQ,MAAON,EAAMI,QAAQyU,KAAKC,QAC1B/T,QAAS,QACTc,SAAU7B,EAAM+E,WAAWC,QAAQ,IACnCpD,WAAY5B,EAAM+E,WAAWgQ,eAC7BpT,eAAgB,OAChBqT,WAAY,SACZpF,cAAe,YAEf,6BAA8B,CAC5BtP,MAAON,EAAMI,QAAQC,KAAK,KAC1BiP,OAAQ,YAEX,IAGG8d,GAAc,WAAH,OAAS/J,GAAmB7U,EAAAA,GAAgC6O,SAAS,EAEzEoR,GAAe,WAC1B,IAAAC,GDuB6B/jB,EAAAA,EAAAA,YAAWujB,ICvBhCF,EAASU,EAATV,UAAWC,EAAOS,EAAPT,QACX3Q,EAAU3B,KAAV2B,MACAtL,GAAchP,EAAAA,EAAAA,KAAdgP,UAER,OAAIsL,EAAM5U,OAAS,GAEfpF,EAAAA,EAAAA,KAACkrB,GAAS,CACR3Y,eAAa,EACbuE,GAAIzF,GAAAA,EACJ,cAAa3C,EAAU,cACvB8D,QAASsX,GAAYlqB,SAEpB8qB,IAKHC,GACK3qB,EAAAA,EAAAA,KAACkrB,GAAS,CAAC/qB,KAAMwqB,EAAQ/qB,SAAE8qB,IAG7B,IACT,E,4DCtCMW,IAA2B9uB,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAE,GAAA,IAAAU,EAAGT,EAAKD,EAALC,MAAK,OAAAS,EAAA,CACrDsP,WAAY/P,EAAMW,QAAQ,KAAEqI,EAAAA,EAAAA,GAAAvI,EAE3BT,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5Bf,WAAY/P,EAAMW,QAAQ,MAC3BqI,EAAAA,EAAAA,GAAAvI,EAEAT,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5Bf,WAAY/P,EAAMW,QAAQ,KAC3BF,CAAA,IAGGmuB,IAA6B/uB,EAAAA,EAAAA,GAAOgvB,GAAAA,EAAPhvB,EAAmB,SAAAiB,GAAA,IAAGd,EAAKc,EAALd,MAAK,MAAQ,CACpEM,MAAON,EAAMI,QAAQC,KAAKwjB,KAC1BhiB,SAAU7B,EAAM+E,WAAW+pB,GAAGjtB,SAC9BqD,QAAS,EAET,6BAA8B,CAC5B8J,WAAY,OACZ1O,MAAON,EAAMI,QAAQC,KAAKwjB,MAE7B,IAEYkL,GAA2B,WACtC,IAAAzZ,EAAoBzC,GAASmc,GAAAA,EAAoBC,GAAAA,GAAaxZ,GAAAtC,EAAAA,EAAAA,GAAAmC,EAAA,GAAvDhC,EAAGmC,EAAA,GAAEC,EAAID,EAAA,GAChBzC,GAAkCC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA1Ckc,EAAShc,EAAA,GAAEic,EAAYjc,EAAA,GACtBpM,GAAemN,EAAAA,EAAAA,KAAfnN,WACAqN,GAASib,EAAAA,GAAAA,KAAuCtoB,GAAUkC,EAAAA,EAAAA,GAAA,GAC/DqmB,GAAAA,GAAqB,QADhBlb,KAGAmb,GAAUnb,QAAAA,EAAQ,CAAEmb,MAAO,IAA3BA,MAEFlC,GAAclf,EAAAA,EAAAA,cAAY,WAC9BuV,GAAAA,GAAoB8L,GAAAA,IACpBJ,GAAa,GAEb9L,GAAmB7U,EAAAA,GAAgCghB,cACrD,GAAG,IAEH,OACElsB,EAAAA,EAAAA,KAACqrB,GAAwB,CAAAzrB,UACvBI,EAAAA,EAAAA,KAACsrB,GAA0B,CACzBtb,IAAKA,EACLwC,QAASsX,EAAYlqB,UAErBI,EAAAA,EAAAA,KAACiC,GAAAA,EAAK,CACJjF,MAAM,QACNmvB,aAAcH,EACdI,IAAK,GACLC,UAAWT,GAAuB,IAAVI,EAAYpsB,UAEpCI,EAAAA,EAAAA,KAACoS,EAAI,CAAC7T,SAAS,iBAKzB,E,YCnEa+tB,GAA4B,WACvC,IAAM9d,GAAWC,EAAAA,EAAAA,KACT8d,GAAiB/sB,EAAAA,GAAAA,KAAjB+sB,aAER,OAAO/d,EAAW+d,EAAaC,OAASD,EAAaE,aACvD,ECEMC,IAAiBnwB,EAAAA,EAAAA,GAAO8U,GAAAA,EAAP9U,EAAmB,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,CAChD1I,MAAON,EAAMI,QAAQC,KAAK,KAC1BwB,SAAU7B,EAAM+E,WAAWC,QAAQ,IAEnC8K,YAAa9P,EAAMW,QAAQ,IAC1BX,EAAM6Q,YAAYuE,KAAK,MAAQ,CAC9BtF,YAAa,GACd,IAGUmgB,GAAiB,WAC5B,IAAQC,EAAyBlf,IAAzBkf,qBACRC,GAAkCC,EAAAA,EAAAA,MAA1BtU,EAASqU,EAATrU,UAAWuU,EAAIF,EAAJE,KAAMrK,EAAImK,EAAJnK,KACjBhU,GAAchP,EAAAA,EAAAA,KAAdgP,UACFF,GAAWC,EAAAA,EAAAA,KACXue,EAAoBV,KAEpBxC,GAAclf,EAAAA,EAAAA,cAAY,WAC1B4N,GACFuU,IACAH,KAEAlK,GAEJ,GAAG,CAACqK,EAAMH,EAAsBpU,EAAWkK,IAE3C,OAAKlU,GAKHxO,EAAAA,EAAAA,KAAC0sB,GAAc,CACbna,eAAa,EACb,aAAYya,EACZ,cAAate,EAAU,eACvB8D,QAASsX,EAAYlqB,UAErBI,EAAAA,EAAAA,KAACitB,GAAAA,EAAM,CAAC1uB,SAAS,cAVZ,IAaX,E,wnBCjCA,I,GAAM2uB,IAAkB3wB,EAAAA,EAAAA,GAAO,MAAPA,EAErB,SAAAE,GAAA,IAAA0wB,EAAGva,EAAUnW,EAAVmW,WAAYlW,EAAKD,EAALC,MAAK,OAAAwD,GAAAA,GAAA,CACrBwL,WAAYhP,EAAMI,QAAQqB,OAAOwD,MACjC0L,UAAW,aACX5P,QAAS,OACTb,OAAQ,GACRwwB,YAAa,SACbvrB,KAAM,EACN4K,WAAY/P,EAAMW,QAAQ,GAC1BuE,QAASlF,EAAMW,QAAQ,EAAG,GAC1BkE,SAAU,QACVc,IAAK,GACL1F,MAAO,OACPiP,OAAQlP,EAAMkP,OAAOyhB,WAEjBza,EAAW4F,WAAa,CAC1B/a,QAAS,OACT0O,eAAgB,SAChB/O,OAAQ,IACT,IAAA+vB,EAAA,IAAAznB,EAAAA,EAAAA,GAAAynB,EAEAzwB,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B9B,WAAY,cACZjO,QAAS,QACTb,OAAQ,GAERgF,QAASlF,EAAMW,QAAQ,EAAG,EAAG,EAAG,GAChCkE,SAAU,SAEVqK,OAAQ,WACTlG,EAAAA,EAAAA,GAAAynB,EAEAzwB,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5Bf,WAAY/P,EAAMW,QAAQ,MAC3BqI,EAAAA,EAAAA,GAAAynB,EAEAzwB,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5Bf,WAAY/P,EAAMW,QAAQ,KAC3B8vB,GAAA,IAGGG,IAAiB/wB,EAAAA,EAAAA,GAAO,MAAPA,EAEpB,SAAAY,GAAA,IAAGyV,EAAUzV,EAAVyV,WAAYlW,EAAKS,EAALT,MAAK,OAAAwD,GAAAA,GAAA,CACrBvC,WAAY,SACZ+N,WAAYhP,EAAMI,QAAQC,KAAK,KAC/BoE,aAAc,GACdkM,UAAW,aACXrQ,MAAON,EAAMI,QAAQC,KAAK,KAC1BU,QAAS,OACTc,SAAU7B,EAAM+E,WAAWC,QAAQ,IACnC9E,OAAQ,GACR2wB,YAAa7wB,EAAMW,QAAQ,GAC3BV,MAAO,qBAEHiW,EAAW4a,SAAW,CACxBpsB,UAAWqsB,GAAAA,KACZ,IAAA/nB,EAAAA,EAAAA,GAAA,GAEAhJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B5Q,OAAQ,GACR8wB,WAAY,YACb,IAGGC,IAAmBpxB,EAAAA,EAAAA,GAAO,QAAPA,EAAgB,SAAAiB,GAAA,IAAGd,EAAKc,EAALd,MAAK,MAAQ,CACvDgP,WAAYhP,EAAMI,QAAQC,KAAK,KAC/BoF,OAAQ,OACRnF,MAAON,EAAMI,QAAQyU,KAAKC,QAC1BjT,SAAU7B,EAAM+E,WAAWC,QAAQ,IACnC9E,OAAQ,OACRyP,WAAY,IACZI,WAAY,EACZ9P,MAAO,OACPwW,aAAc,WAEd,iBAAkB,CAChBnW,MAAON,EAAMI,QAAQyU,KAAKC,SAE7B,IAEKoc,IAAmBrxB,EAAAA,EAAAA,GAAO8U,GAAAA,EAAP9U,EAEtB,SAAAuB,GAAA,IAAG8U,EAAU9U,EAAV8U,WAAYlW,EAAKoB,EAALpB,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,CACrB9I,OAAQ,GACR4P,YAAa9P,EAAMW,QAAQ,GAC3BV,MAAO,IAEND,EAAM6Q,YAAYC,GAAG,MAAKtN,GAAA,CACzB3B,SAAU7B,EAAM+E,WAAWC,QAAQ,IACnC8K,YAAa9P,EAAMW,QAAQ,GAE3BqwB,WAAY,UAER9a,EAAW4a,SAAW,CACxBE,WAAY,YACb,IAICG,GAAsB,SAACjL,GAC3B,GAAc,UAAVA,EAAE/c,IAAiB,CACrB,IAAeioB,EAAgBlL,EAAE6C,OAAzB3f,MACRuE,OAAOC,SAASnK,KAAO,iBAAHkB,OAAoB0sB,mBAAmBD,GAC7D,CACF,EAEaE,GAAkB,WAC7B,IAAA3f,EAA+DX,IAAvDY,EAAUD,EAAVC,WAAYse,EAAoBve,EAApBue,qBAAsBre,EAAgBF,EAAhBE,iBAC1Cse,GAAqFC,EAAAA,EAAAA,MAA7EmB,EAASpB,EAAToB,UAAWzV,EAASqU,EAATrU,UAAW0V,EAAKrB,EAALqB,MAAOC,EAAItB,EAAJsB,KAAM3B,EAAMK,EAANL,OAAQ4B,EAAYvB,EAAZuB,aAActoB,EAAK+mB,EAAL/mB,MAAOuoB,EAAQxB,EAARwB,SAChEC,GAASC,EAAAA,GAAAA,KAATD,KACFjY,EAAe/H,IAAeM,EAAAA,GAA2B4f,cACzDhgB,GAAWC,EAAAA,EAAAA,KACXue,EAAoBV,KACpB1Z,EAAa,CACjB4F,UAAAA,EACAgV,QAASS,GAEHvf,GAAchP,EAAAA,EAAAA,KAAdgP,UACR+f,GAAyBC,EAAAA,GAAAA,GAAY5oB,EAAO,KAArC6oB,GAAyC9e,EAAAA,EAAAA,GAAA4e,EAAA,GAA3B,GACfG,GAAqBC,EAAAA,GAAAA,IAAqB,kBAAM1O,GAAAA,GAAoB2O,GAAAA,GAAa,GjC1IrD,KiC2I5BC,GAAiBnkB,EAAAA,EAAAA,cAAY,WACjCsjB,IACAI,GACF,GAAG,CAACJ,EAAOI,IAELU,GAAkBpkB,EAAAA,EAAAA,cACtB,SAAAqC,GAA+C,IAA5CwY,EAAMxY,EAANwY,OACKwJ,EAAuC,IAAxBxJ,EAAO3f,MAAMV,OAC9B6pB,IACF1gB,EAAiB,IACjB6f,KAEFC,EAAS5I,EAAO3f,OAChB8oB,IACKK,GAAiB5Y,GACpB0J,GAAmBnR,EAAAA,GAA2B4f,cAElD,GACA,CAACH,EAAUO,EAAoBvY,EAAc9H,EAAkB6f,IAG3Dc,GAAatkB,EAAAA,EAAAA,cAAY,WAC7ByjB,EAAS,IACTD,IACA7f,EAAiB2b,EAAAA,GAAU8D,aAC3BG,GACF,GAAG,CAACA,EAAMC,EAAcC,EAAU9f,IAE5B4gB,GAAevkB,EAAAA,EAAAA,cAAY,WAC1B9E,GACHqoB,IAEFG,GACF,GAAG,CAACH,EAAMG,EAAMxoB,IAOhB,OALAyF,EAAAA,EAAAA,YAAU,WACRihB,EAAOmC,EAET,GAAG,CAACA,IAEAngB,IAAagK,EACR,MAIP7Y,EAAAA,EAAAA,MAACutB,GAAe,CACdta,WAAYA,EACZ,cAAalE,EAAU,qBAAqB9O,SAAA,EAE5CD,EAAAA,EAAAA,MAAC2tB,GAAc,CACb1a,WAAYA,EACZ,cAAalE,EAAU,oBAAoB9O,SAAA,EAE3CI,EAAAA,EAAAA,KAACitB,GAAAA,EAAM,CACL1uB,SAAS,UACT,cAAamQ,EAAU,aAEzB1O,EAAAA,EAAAA,KAAC2tB,GAAgB,CACfyB,UAAW5gB,EACX5G,KAAK,OACLynB,YAAarC,EACblnB,MAAOA,EACP,cAAa4I,EAAU,gBACvB4gB,QAASP,EACTpH,SAAUqH,EACVO,OAAQJ,EACRK,UAAW3B,MAEb7tB,EAAAA,EAAAA,KAAC4tB,GAAgB,CACfrb,eAAa,EACbK,WAAYA,EACZ,cAAalE,EAAU,sBACvB8D,QAAS0c,EAAWtvB,UAEpBI,EAAAA,EAAAA,KAACyvB,GAAAA,EAAK,CAAClxB,SAAS,iBAGnBiQ,IAAa6H,GACZrW,EAAAA,EAAAA,KAACiX,GAAAA,EAAQ,CACPhI,MAAI,EACJlP,GAAI,CAAEwB,SAAU,WAAYqK,OAAQ,KAAMvJ,IAAK,GAAI1F,MAAO,QAASC,OAAQ,SAC3E,cAAa8R,EAAU,YACvB8D,QAASoa,IAET,OAGV,E,mTC5NA,IAAM8C,IAAsBC,E,SAAAA,IAAShS,KAAAA,IAAAC,EAAAA,GAAAA,GAAA,oDAM/BgS,IAAyBrzB,EAAAA,EAAAA,GAAOoQ,EAAAA,EAAPpQ,EAE5B,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAOkW,EAAUnW,EAAVmW,WAAU,O,uWAAA1S,CAAA,CACrBvC,WAAY,SACZd,gBAAiBH,EAAMI,QAAQ0U,QAAQqI,KACvC1X,OAAQ,aAAFd,OAAe3E,EAAMI,QAAQqB,OAAOwD,OAC1CR,aAAc,MACdY,OAAQrF,EAAMW,QAAQ,GACtBL,MAAON,EAAMI,QAAQqB,OAAOwD,MAC5BlE,QAAS,OACTc,SAAU7B,EAAM+E,WAAWC,QAAQ,IACnCpD,WAAY5B,EAAM+E,WAAWgQ,eAC7B7U,OAAQ,GACRuP,eAAgB,SAChBtK,KAAMnF,EAAMW,QAAQ,GACpBwyB,cAAe,EACftuB,SAAU,WACV5E,MAAO,IAEHiW,EAAWkd,mBAAqB,CAClCC,kBAAmB,KACnBC,cAAe,GAAF3uB,OAAKquB,KACnB,IASUO,GAAkD,SAAH9yB,GAAgC,IAA1B+yB,EAAmB/yB,EAAnB+yB,oBAChExgB,GAAkDC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA1DogB,EAAiBlgB,EAAA,GAAEugB,EAAoBvgB,EAAA,GACxCgD,EAAa,CAAEkd,kBAAAA,GACbphB,GAAchP,EAAAA,EAAAA,KAAdgP,UAUR,OARAnD,EAAAA,EAAAA,YAAU,kBAAM4kB,GAAqB,EAAK,GAAE,CAACD,KAE7C3kB,EAAAA,EAAAA,YAAU,WACJukB,GACFnO,YAAW,kBAAMwO,GAAqB,EAAM,GAfR,IAiBxC,GAAG,CAACL,KAGF9vB,EAAAA,EAAAA,KAAC4vB,GAAsB,CACrBhd,WAAYA,EACZ,cAAalE,EAAU,6BAA6B9O,SAEnDswB,GAGP,E,qlBC/CA,IAAME,IAAsB7zB,EAAAA,EAAAA,GAAO0B,EAAAA,EAAP1B,EAGzB,SAAAE,GAAA,IAAA0wB,EAAGva,EAAUnW,EAAVmW,WAAYlW,EAAKD,EAALC,MAAK,OAAAwD,GAAAA,GAAA,CACrBvC,WAAY,SACZX,MAAON,EAAMI,QAAQC,KAAK,KAC1BU,QAAS,OACTc,SAAU7B,EAAM+E,WAAWC,QAAQ,IACnC9E,OAAQ,OACR6P,WAAY/P,EAAMW,QAAQ,GAC1BkE,SAAU,YAENqR,EAAWyd,YAAc,CAC3BrzB,MAAON,EAAMI,QAAQiJ,MAAM8T,OAC5B,IAAAsT,EAAA,CAED,6BAA4BjtB,GAAA,CAC1BlD,MAAON,EAAMI,QAAQC,KAAK,MAEtB6V,EAAWyd,YAAc,CAC3BrzB,MAAON,EAAMI,QAAQiJ,MAAM8T,SAE9BnU,EAAAA,EAAAA,GAAAynB,EAEAzwB,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5Bf,WAAY/P,EAAMW,QAAQ,MAC3BqI,EAAAA,EAAAA,GAAAynB,EAEAzwB,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5Bf,WAAY/P,EAAMW,QAAQ,MAC3BqI,EAAAA,EAAAA,GAAAynB,EAEAzwB,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5Bf,WAAY/P,EAAMW,QAAQ,KAC3B8vB,GAAA,IAGGmD,GAAiB,SAACC,GAAoB,OAC1C,IAAItlB,YAAYC,EAAAA,GAA4B,CAC1CC,OAAQ,CAAEC,SAAUF,EAAAA,GAAgCslB,QAASD,WAAAA,IAC7D,EAOSE,GAAsB,WACjC,IAAQlxB,GAAkBC,EAAAA,GAAAA,KAAlBD,cACRmQ,GAAwCC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAhDghB,EAAY9gB,EAAA,GAAE+gB,EAAe/gB,EAAA,GAC9BghB,GAAmBzgB,EAAAA,GAAAA,IAAqB,SAACzT,GAAK,OAAKA,EAAM6Q,YAAYuE,KAAK,KAAK,IAC/E+e,GAA6B1gB,EAAAA,GAAAA,IAAqB,SAACzT,GAAK,OAAKA,EAAM6Q,YAAYuE,KAAK,KAAK,IACvFhO,GAAWwQ,EAAAA,GAAAA,MAAXxQ,OACA4K,GAAchP,EAAAA,EAAAA,KAAdgP,UAEFF,GAAW5D,EAAAA,EAAAA,cACf,kBAAO8lB,EAAeG,EAA6BD,CAAgB,GACnE,CAACF,EAAcG,EAA4BD,IAEvChe,EAAa,CAAEyd,WAAYvsB,IAAWgtB,GAAAA,GACxCthB,EAAcuhB,GAAAA,EACdthB,EAAOuhB,GAAAA,EAEPltB,IAAWgtB,GAAAA,IACbthB,EAAcyhB,GAAAA,EACdxhB,EAAOyhB,GAAAA,GAGT,IAAAlf,EAAoBzC,GAASC,EAAaC,GAAK0C,GAAAtC,EAAAA,EAAAA,GAAAmC,EAAA,GAAxChC,EAAGmC,EAAA,GAAEC,EAAID,EAAA,GAEhBkS,GAAsD1U,EAAAA,EAAAA,UAAS,GAAE2U,GAAAzU,EAAAA,EAAAA,GAAAwU,EAAA,GAA1D6L,EAAmB5L,EAAA,GAAE6M,EAAsB7M,EAAA,GAClDE,GAAkE7U,EAAAA,EAAAA,WAAS,GAAM8U,GAAA5U,EAAAA,EAAAA,GAAA2U,EAAA,GAA1E4M,EAAyB3M,EAAA,GAAE4M,EAA4B5M,EAAA,GAExD6M,EAA4B,SAACC,GAC7BA,GAA0B,GAC5BJ,EAAuBI,EAE3B,EAEMC,GAAoC5mB,EAAAA,EAAAA,cAAY,SAACC,GACrDymB,EAA0BzmB,EAAMM,OAAOsmB,YAAYvB,qBACnDmB,GAA6B,EAC/B,GAAG,IAEGK,GAA4B9mB,EAAAA,EAAAA,cAAY,SAACC,GAC7CymB,EAA0BzmB,EAAMM,OAAOsmB,YAAYvB,oBACrD,GAAG,KAEH3kB,EAAAA,EAAAA,YAAU,WACRolB,EAAqE,OAArDrG,SAASC,eAAe,yBAC1C,GAAG,KAEHhf,EAAAA,EAAAA,YAAU,WAlD0B,IAC9BomB,EAuDJ,OALAtnB,OAAOmB,iBAAiBomB,GAAAA,EAA4BJ,GACpDnnB,OAAOmB,iBAAiBqmB,GAAAA,GAAoBH,GAnDxCC,EAA8B,IAAI1mB,YAAY6mB,GAAAA,GACpDznB,OAAOW,cAAc2mB,GAsDZ,WACLtnB,OAAOoB,oBAAoBmmB,GAAAA,EAA4BJ,GACvDnnB,OAAOoB,oBAAoBomB,GAAAA,GAAoBH,EACjD,CACF,GAAG,CAACF,EAAmCE,KAEvCnmB,EAAAA,EAAAA,YAAU,WACJ6lB,GACF/mB,OAAOoB,oBAAoBmmB,GAAAA,EAA4BJ,EAE3D,GAAG,CAACJ,EAA2BI,IAE/B,IAAMO,GAAennB,EAAAA,EAAAA,cAAY,WAC3B8lB,GAAgBliB,KAIpBnE,OAAOW,cAAcslB,IAAe,GACtC,GAAG,CAACI,EAAcliB,IAEZwjB,GAAepnB,EAAAA,EAAAA,cAAY,WAC3B8lB,GAAgBliB,KAIpBnE,OAAOW,cAAcslB,IAAe,GACtC,GAAG,CAACI,EAAcliB,IAEZyjB,GAA8BrnB,EAAAA,EAAAA,cAAY,WAC9CP,OAAOW,cAAcslB,KACvB,GAAG,IAEG4B,GAAqBxnB,EAAAA,EAAAA,UACzB,kBACE/K,EAAAA,EAAAA,MAAA6oB,EAAAA,SAAA,CAAA5oB,SAAA,EACEI,EAAAA,EAAAA,KAACoS,EAAI,CAAC7T,SAAS,YACdghB,QAAQ2Q,KAAwBlwB,EAAAA,EAAAA,KAACiwB,GAAkB,CAACC,oBAAqBA,MACzE,GAEL,CAACA,EAAqB9d,IAGlB+f,EAAqB5yB,EAAc,eAEzC,OAAIiP,KAAckiB,GAEd1wB,EAAAA,EAAAA,KAACowB,GAAmB,CAClB7d,eAAa,EACb,aAAY4f,EACZrb,GAAIzF,GAAAA,EACJuB,WAAYA,EACZ,cAAalE,EAAU,0BACvB8D,QAASyf,EAA4BryB,SAEpCsyB,KAMLlyB,EAAAA,EAAAA,KAACowB,GAAmB,CAClBpgB,IAAKA,EACL,aAAYmiB,EACZvf,WAAYA,EACZzS,KAAK,mBACL,cAAauO,EAAU,0BACvBqjB,aAAcA,EACdC,aAAcA,EAAapyB,SAE1BsyB,GAGP,EC7KME,IAA0B71B,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAE,GAAA,IAAAU,EAAGT,EAAKD,EAALC,MAAK,OAAAS,EAAA,CACpDQ,WAAY,SACZF,QAAS,OACT2vB,YAAa,MACbjhB,eAAgB,WAChBxP,MAAO,SAAM+I,EAAAA,EAAAA,GAAAvI,EAEZT,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BrB,eAAgB,SACjBzG,EAAAA,EAAAA,GAAAvI,EAEAT,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BwH,SAAU,SACX7X,CAAA,IAGUk1B,GAA0B,WACrC,IAAM7jB,GAAWC,EAAAA,EAAAA,KACTmC,GAAoBD,EAAAA,EAAAA,KAApBC,gBACA0hB,GAAkChe,EAAAA,GAAAA,MAAlCge,8BACFC,GAAiB3hB,IAAoBpC,EACrCgkB,GAAqB5hB,GAAmB0hB,EAE9C,OACE3yB,EAAAA,EAAAA,MAACyyB,GAAuB,CAAAxyB,SAAA,EACtBI,EAAAA,EAAAA,KAACguB,GAAW,KACZhuB,EAAAA,EAAAA,KAAC2sB,GAAU,KACTne,GAAYoC,GAAkB5Q,EAAAA,EAAAA,KAACmrB,GAAQ,IAAM,MAC/CnrB,EAAAA,EAAAA,KAAC+R,GAAW,IACXygB,GAAoBxyB,EAAAA,EAAAA,KAACyrB,GAAoB,IAAM,KAC/C8G,GAAgBvyB,EAAAA,EAAAA,KAACypB,GAAkB,IAAM,MAC1CzpB,EAAAA,EAAAA,KAACywB,GAAe,MAGtB,E,wBC9CagC,GAAgB,SAACC,GAC5B,IAAMC,EAAa/pB,KAAKgqB,MAAQF,EAEhC,OAAOC,EAAa,GAAKA,GALT,WAKmCA,EAAa,CAClE,ECNahwB,GAAe,WCOfkwB,IDNmB,QAAHxxB,OAAWsB,ICOvB,SAAAlG,GAAA,IACbq2B,EAAqBr2B,EAArBq2B,sBACAC,EAAWt2B,EAAXs2B,YACAC,EAAYv2B,EAAZu2B,aACAC,EAAQx2B,EAARw2B,SACAC,EAAWz2B,EAAXy2B,YAEe,MACY,CAC3BC,SAAUH,EACVI,gBAAiB,GACjBC,mBAAoB,GACpBC,WAAY,GACZC,SAPW92B,EAAX+2B,YAQAC,eAAgBR,EAChBS,kBAAmBR,EACnBS,UAAWZ,EACXa,MAAO,CAVQn3B,EAAfo3B,iBAWAC,MAAOhB,EACR,GApBUD,GAqBK,SAAA11B,GAAA,IAAA42B,EACdvwB,EAAUrG,EAAVqG,WACAjC,EAAQpE,EAARoE,SACAyyB,EAAO72B,EAAP62B,QACAtB,EAASv1B,EAATu1B,UAAS,MAM0B,CACnCnb,OAAQ,CACNyU,MAAO,EACPiI,MAAiC,QAA5BF,EAAEC,EAAQ92B,SAASqE,UAAS,IAAAwyB,OAAA,EAA1BA,EAA4BP,YACnCU,cAAe,CAAC,YAChB3yB,SAAUA,EAAW,EACrB+c,MAAO0V,EAAQG,MACfC,QAASJ,EAAQK,QACjB1B,WAAYF,GAAcC,GAC1B4B,UAAWN,EAAQO,gBACnBC,OAAQ7xB,GACR8xB,UAAWT,EAAQ92B,SAASkI,OAC5BsvB,OAAQlxB,EAAWmxB,YAErBC,UAAW,IAAIhsB,KACfhB,KAAM,QACP,E,2OC/CH,IAAMitB,IAAmBt4B,EAAAA,EAAAA,GAAO,MAAPA,EAAoD,SAAAE,GAAA,IAAGmW,EAAUnW,EAAVmW,WAAYlW,EAAKD,EAALC,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,CAC/F/I,MAAO,GACPC,OAAQ,IAEPF,EAAM6Q,YAAYC,GAAG,M,uWAAKtN,CAAA,CACzBvD,MAAO,GACPC,OAAQ,GACRuc,UAAW,cAEPvG,EAAWkiB,SAAW,CACxBn4B,MAAO,GACPC,OAAQ,KACT,IAICm4B,IAAsBx4B,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAiB,GAAA,IAAGd,EAAKc,EAALd,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,CAChD/H,WAAY,SACZX,MAAON,EAAMI,QAAQyU,KAAKC,QAC1B/T,QAAS,OACTc,SAAU7B,EAAM+E,WAAWuzB,GAAGz2B,SAC9B4N,eAAgB,UAEfzP,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B7Q,MAAO,GACPC,OAAQ,IACT,IASUq4B,GAAsC,SAAH/2B,GAA8B,IAAAg3B,EAAxB/d,EAAKjZ,EAALiZ,MAAOC,EAAIlZ,EAAJkZ,KAAM+d,EAAIj3B,EAAJi3B,KACzDzmB,GAAchP,EAAAA,EAAAA,KAAdgP,UAER,IAAKyI,EACH,OACEnX,EAAAA,EAAAA,KAAC+0B,GAAmB,CAAC,cAAarmB,EAAU,YAAY9O,UACtDI,EAAAA,EAAAA,KAAC9C,GAAAA,EAAQ,CAACqB,SAAS,cAIzB,IAAM8Y,EAAyC,CAC7CC,IAAKH,EACLI,OAAQ,CACN,CACE5a,MAAO,GACPC,OAAQ,GACR4a,QAAS,IAEX,CACE7a,MAAO,GACPC,OAAQ,GACR4a,QAAS,IAEX,CACE7a,MAAO,GACPC,OAAQ,GACR4a,QAAS,IAEX,CACE7a,MAAO,IACPC,OAAQ,IACR4a,QAAS,IAEX,CACE7a,MAAO,IACPC,OAAQ,IACR4a,QAAS,IAEX,CACE7a,MAAO,IACPC,OAAQ,IACR4a,QAAS,IAEX,CACE7a,MAAO,IACPC,OAAQ,IACR4a,QAAS,IAEX,CACE7a,MAAO,IACPC,OAAQ,IACR4a,QAAS,IAEX,CACE7a,MAAO,IACPC,OAAQ,IACR4a,QAAS,MAKTC,GAASC,EAAAA,GAAAA,GAAiBL,GAC1Byd,EAAmB,UAATK,EACVC,EAAaN,EAAU,OAAS,iCAChCliB,EAAa,CAAEkiB,QAAAA,GAErB,OACE90B,EAAAA,EAAAA,KAAC60B,GAAgB,CACf,cAAanmB,EAAU,sBACvB/N,IAAKyW,EACLxE,WAAYA,EACZgF,QAAQC,EAAAA,GAAAA,GAAeJ,GACvBE,MAAOyd,EACP10B,IAAkB,QAAfw0B,EAAEzd,EAAO4d,IAAI,UAAE,IAAAH,OAAA,EAAbA,EAAe5d,KAG1B,E,ykBC/GA,IAAMge,IAAkB/4B,EAAAA,EAAAA,GAAO,MAAPA,EAAoD,SAAAE,GAAA,IAAGmW,EAAUnW,EAAVmW,WAAYlW,EAAKD,EAALC,MAAK,OAAAwD,GAAAA,GAAA,CAC9FmN,UAAW,aACXrQ,MAAON,EAAMI,QAAQyU,KAAKqW,SAC1BhrB,OAAQ,IACRyP,WAAY3P,EAAM+E,WAAWC,QAAQ,KAEjCkR,EAAW2iB,SAAW,CACxBC,UAAW,MACXj3B,SAAU7B,EAAM+E,WAAWg0B,QAAQl3B,SACnC4N,eAAgB,SAChBE,WAAY3P,EAAM+E,WAAWC,QAAQ,IACrCtE,OAAQV,EAAMW,QAAQ,EAAG,KAAM,GAC/B6O,UAAW,WACZ,IAAAxG,EAAAA,EAAAA,GAAA,GAEAhJ,EAAM6Q,YAAYC,GAAG,MAAKtN,GAAA,GACrB0S,EAAW2iB,SAAW,CACxBC,UAAW,QACX54B,OAAQ,IACRQ,OAAQV,EAAMW,QAAQ,GAAI,KAAM,GAChCV,MAAO,SACR,IAIC+4B,IAAyBn5B,EAAAA,EAAAA,GAAO0B,EAAAA,EAAP1B,EAAmD,SAAAY,GAAA,IAAGyV,EAAUzV,EAAVyV,WAAYlW,EAAKS,EAALT,MAAK,OAAAwD,GAAAA,GAAA,CACpGvC,WAAY,SACZX,MAAON,EAAMI,QAAQyU,KAAKC,QAC1B/T,QAAS,OACTC,cAAe,SACfW,eAAgB,QAEZuU,EAAW2iB,SAAW,CACxB7pB,WAAYhP,EAAMI,QAAQqB,OAAOwD,QAClC,IAED,6BAA8B,CAC5B3E,MAAON,EAAMI,QAAQC,KAAK,KAC1B44B,wBAAyB,gBAC1B,IAGGC,IAAmBr5B,EAAAA,EAAAA,GAAO,OAAPA,EAAqD,SAAAiB,GAAA,IAAGoV,EAAUpV,EAAVoV,WAAYlW,EAAKc,EAALd,MAAK,OAAAwD,GAAAA,GAAA,GAC5F0S,EAAW2iB,SAAW,CACxB93B,QAAS,cACTyV,SAAU,SACVC,aAAc,WACd0iB,gBAAiB,WACjBC,gBAAiB,IAClB,IAAApwB,EAAAA,EAAAA,GAAA,GAEAhJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B,6BAA4BtN,GAAA,GACtB0S,EAAW2iB,SAAW,CACxBv4B,MAAON,EAAMI,QAAQyU,KAAKC,YAG/B,IAGGukB,IAAsBx5B,EAAAA,EAAAA,GAAO,MAAPA,EAAoD,SAAAuB,GAAa,OAAAoC,GAAA,CAC3FzC,QAAS,OACTC,cAAe,UAF4EI,EAAV8U,WAIlE2iB,SAAW,CACxB53B,WAAY,UACZD,cAAe,MACfyO,eAAgB,eAChBxP,MAAO,QACR,IAEGq5B,IAAyBz5B,EAAAA,EAAAA,GAAO,OAAPA,EAAqD,SAAA2B,GAAA,IAAG0U,EAAU1U,EAAV0U,WAAYlW,EAAKwB,EAALxB,MAAK,OAAAwD,GAAA,CACtG5B,WAAY5B,EAAM+E,WAAWgQ,eAC7B1T,UAAWrB,EAAMW,QAAQ,IAErBuV,EAAW2iB,SAAW,CACxBn4B,OAAQ,GACT,IAGG64B,IAA2B15B,EAAAA,EAAAA,GAAO,OAAPA,EAAqD,SAAA2C,GAAA,IAAG0T,EAAU1T,EAAV0T,WAAYlW,EAAKwC,EAALxC,MAAK,OAAAwD,GAAA,CACxG7B,eAAgB,gBAEZuU,EAAW2iB,SAAW,CACxBv4B,MAAON,EAAMI,QAAQyU,KAAKqW,UAC3B,IAeUsO,GAAoC,SAAHjpB,GAUxC,IATJkpB,EAAmBlpB,EAAnBkpB,oBACAC,EAAYnpB,EAAZmpB,aAAYC,EAAAppB,EACZqpB,mBAAAA,OAAkB,IAAAD,GAAQA,EAC1Bxb,EAAQ5N,EAAR4N,SAAQ0b,EAAAtpB,EACRupB,aAAAA,OAAY,IAAAD,GAAQA,EACpBh1B,EAAQ0L,EAAR1L,SACAk1B,EAAWxpB,EAAXwpB,YACAC,EAAWzpB,EAAXypB,YACAlkB,EAAOvF,EAAPuF,QAEMmkB,EAAa,0BAAHt1B,OAA6Bo1B,QAAAA,EAAe,IACtD7jB,EAAa,CAAE2iB,QAASiB,GACtB9nB,GAAchP,EAAAA,EAAAA,KAAdgP,UAEFkoB,GAAiBhsB,EAAAA,EAAAA,cAAY,WACjC4H,EAAQ0L,OAAO3c,GACjB,GAAG,CAACiR,EAASjR,IAEb,OACEvB,EAAAA,EAAAA,KAACs1B,GAAe,CACd1iB,WAAYA,EACZ,cAAalE,EAAU,sBAAsB9O,UAE7CD,EAAAA,EAAAA,MAAC+1B,GAAsB,CACrB,cAAahnB,EAAU,qBACvBkE,WAAYA,EACZzS,KAAMw2B,EACN7b,MAAO4b,EACPlkB,QAASokB,EAAeh3B,SAAA,EAExBI,EAAAA,EAAAA,KAACi1B,GAAY,CACX9d,MAAO0D,QAAAA,EAAY,GACnBzD,KAAMsf,QAAAA,EAAe,GACrBvB,KAAMqB,EAAe,GAAK,YAEzBF,IACDt2B,EAAAA,EAAAA,KAAC41B,GAAgB,CACf,cAAalnB,EAAU,iBACvBkE,WAAYA,EAAWhT,SAEtB82B,KAGL/2B,EAAAA,EAAAA,MAACo2B,GAAmB,CAACnjB,WAAYA,EAAWhT,SAAA,EAC1CI,EAAAA,EAAAA,KAACg2B,GAAsB,CAACpjB,WAAYA,EAAWhT,SAAEw2B,IAChDA,IAAiBD,IAChBn2B,EAAAA,EAAAA,KAACi2B,GAAwB,CACvB,cAAavnB,EAAU,sBACvBkE,WAAYA,EAAWhT,SAEtBu2B,WAOf,ECrJMU,IAAsBt6B,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,CAChD2H,UAAW,aACXzQ,OAAQ,OACR2E,SAAU,WACV5E,MAAO,QAEND,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B/P,QAAS,OACTC,cAAe,SACfo5B,WAAY,EACZC,QAAS,QACT35B,OAAQ,EACRwE,QAAS,2BACTsK,UAAW,SAEX,YAAa,CACXrP,gBAAiBH,EAAMI,QAAQC,KAAK,KACpCmc,QAAS,KACTtc,OAAQ,OACRiF,KAAM,EACN4K,WAAY/P,EAAMW,QAAQ,GAC1BkE,SAAU,WACV5E,MAAO,IAEV,IAGGq6B,IAAwBz6B,EAAAA,EAAAA,GAAOoQ,EAAAA,EAAPpQ,EAAmB,SAAAiB,GAAA,IAAGd,EAAKc,EAALd,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,CACvDpH,WAAY5B,EAAM+E,WAAWgQ,eAC7B1E,aAAcrQ,EAAMW,QAAQ,IAE3BX,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BT,aAAcrQ,EAAMW,SAAS,IAC9B,IAGG45B,IAAyB16B,EAAAA,EAAAA,GAAO,MAAPA,EAAc,iBAAO,CAClDkB,QAAS,OACTy5B,SAAU,OACV95B,OAAQ,EACRwE,QAAS,EACV,IAEYu1B,GAAsB,WACjC,IAAMC,GAAkBC,EAAAA,GAAAA,OAChB93B,GAAkBC,EAAAA,GAAAA,KAAlBD,cACAgE,GAAoB+Q,EAAAA,GAAAA,MAApB/Q,gBACAC,GAAemN,EAAAA,EAAAA,KAAfnN,WACAkL,GAAchP,EAAAA,EAAAA,KAAdgP,UACRme,GAA+BC,EAAAA,EAAAA,MAAvBkH,EAAOnH,EAAPmH,QAAStB,EAAS7F,EAAT6F,UAEXlgB,GAAU5H,EAAAA,EAAAA,cACd,SAACrJ,GACC,GAAgC,OAA5ByyB,aAAO,EAAPA,EAAS92B,SAASkI,QAAtB,CAIA,IAAMkyB,EAAwD,CAC5DC,SAAU1E,GAAwBmB,EAAQ92B,SAASqE,IACnDi2B,SAAUC,GAAAA,GAAYC,QACtB5J,YAAakG,EAAQG,MACrBwD,UAAWC,GAAAA,GAAUC,+BACrBt2B,SAAAA,IAGFu2B,EAAAA,GAAAA,KACEV,EACAvE,GAAyB,CAAErvB,WAAAA,EAAYjC,SAAAA,EAAUyyB,QAAAA,EAAStB,UAAAA,IAE1D,CAAE,kBAAmBnvB,IAErBuiB,MAAM5f,QAAQH,OAEhBsE,OAAOW,cACL,IAAIC,YAAwC8sB,GAAAA,EAA4B,CACtE5sB,OAAQmsB,IApBZ,CAuBF,GACA,CAACtD,EAASoD,EAAiB5zB,EAAYkvB,EAAWnvB,IAGpD,OAAKywB,SAAAA,EAAS92B,UAKZyC,EAAAA,EAAAA,MAACk3B,GAAmB,CAAC,aAAYnoB,EAAU,yBAAyB9O,SAAA,EAClEI,EAAAA,EAAAA,KAACg3B,GAAqB,CAAAp3B,SAAEL,EAAc,uCACtCS,EAAAA,EAAAA,KAACi3B,GAAsB,CAAAr3B,SACpBo0B,EAAQ92B,SAASyd,KAAI,SAAAzc,EAA4E2nB,GAAK,IAA9E2N,EAAWt1B,EAAXs1B,YAAawE,EAAa95B,EAAb85B,cAAeC,EAAW/5B,EAAX+5B,YAAapE,EAAe31B,EAAf21B,gBAAiBd,EAAW70B,EAAX60B,YAAW,OAC5F/yB,EAAAA,EAAAA,KAACk2B,GAAW,CAEVI,oBAAkB,EAClBE,cAAY,EACZL,oBAAqB6B,EACrB5B,aAAc6B,EACdpd,SAAUgZ,EACVtyB,SAAUskB,EACV4Q,YAAajD,EACbkD,YAAa3D,EACbvgB,QAASA,GATJghB,EAUL,SAnBD,IAwBX,E,YChHM0E,IAA2B37B,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,GACpDhJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B/P,QAAS,QACTM,UAAW,GACZ,IAGGo6B,IAA8B57B,EAAAA,EAAAA,GAAOoQ,EAAAA,EAAPpQ,EAAmB,SAAAiB,GAAA,IAAGd,EAAKc,EAALd,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,GAC5DhJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BlP,WAAY5B,EAAM+E,WAAWgQ,eAC7BpF,WAAY3P,EAAM+E,WAAWC,QAAQ,IACrCtE,OAAQV,EAAMW,QAAQ,EAAG,EAAG,IAC7B,IAGG+6B,IAA8B77B,EAAAA,EAAAA,GAAO,KAAPA,EAAa,SAAA2B,GAAA,IAAGxB,EAAKwB,EAALxB,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,GACtDhJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B6qB,cAAe,OACftrB,aAAc,EACdnL,QAAS,GACV,IAGG02B,IAA2B/7B,EAAAA,EAAAA,GAAO,KAAPA,EAAa,SAAA0Q,GAAA,IAAGvQ,EAAKuQ,EAALvQ,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,GACnDhJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BT,aAAcrQ,EAAMW,QAAQ,IAC7B,IAGGk7B,IAA2Bh8B,EAAAA,EAAAA,GAAO0B,EAAAA,EAAP1B,EAAa,SAAAid,GAAA,IAAG9c,EAAK8c,EAAL9c,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,GACnDhJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BxQ,MAAON,EAAMI,QAAQyU,KAAKC,QAC1BnT,eAAgB,OAEhB,6BAA8B,CAC5BrB,MAAON,EAAMI,QAAQyU,KAAKqW,WAE7B,IAGGkG,GAAc,SAAC1W,GAAY,uBAAA/V,OAAsB0sB,mBAAmB3W,GAAK,EAElEohB,GAA2B,WACtC,IAAA3L,GAA2BC,EAAAA,EAAAA,MAAnBkH,EAAOnH,EAAPmH,QAASluB,EAAK+mB,EAAL/mB,MACTvG,GAAkBC,EAAAA,GAAAA,KAAlBD,cACAmP,GAAchP,EAAAA,EAAAA,KAAdgP,UAEF8D,GAAU5H,EAAAA,EAAAA,cACd,SAAC6tB,EAA0Bl3B,GAAqB,IAAAm3B,EAC9CruB,OAAOW,cACL,IAAIC,YAAwC8sB,GAAAA,EAA4B,CACtE5sB,OAAQ,CACNosB,SAAU,CACR9R,OAAQqI,GAAY2K,GACpBA,iBAAAA,EACA7E,MAAO,IAET4D,SAAUC,GAAAA,GAAYkB,aACtB7K,YAA2B,QAAhB4K,EAAE1E,aAAO,EAAPA,EAASG,aAAK,IAAAuE,EAAAA,EAAI,GAC/Bf,UAAWC,GAAAA,GAAUC,+BACrBt2B,SAAAA,KAIR,GACA,CAACyyB,aAAO,EAAPA,EAASG,QAGZ,OACEx0B,EAAAA,EAAAA,MAACu4B,GAAwB,CAAC,cAAaxpB,EAAU,+BAA+B9O,SAAA,EAC9EI,EAAAA,EAAAA,KAACm4B,GAA2B,CAAC,cAAazpB,EAAU,kCAAkC9O,SACnFL,EAAc,2BAEjBS,EAAAA,EAAAA,KAACo4B,GAA2B,CAAC,cAAa1pB,EAAU,kCAAkC9O,SACnFo0B,aAAO,EAAPA,EAAS4E,YAAYje,KAAI,SAAAhB,EAAWkM,GAAK,IAAbzO,EAAIuC,EAAJvC,KAAI,OAC/BpX,EAAAA,EAAAA,KAACs4B,GAAwB,CAEvB,cAAa5pB,EAAU,+BAA+B9O,UAEtDI,EAAAA,EAAAA,KAACu4B,GAAwB,CACvBp4B,KAAM2tB,GAAY1W,GAClB,cAAa1I,EAAU,+BACvB8D,QAAS,kBAAMA,EAAQ4E,EAAMyO,EAAM,EAACjmB,UAEnCi5B,EAAAA,GAAAA,GAAgBzhB,EAAMtR,MARpBsR,EAUoB,QAKrC,ECzFM0hB,IAAoBv8B,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,CAC9CgG,WAAYhP,EAAMI,QAAQqB,OAAOwD,MACjCP,UAAW8T,GAAAA,GACX7H,UAAW,aACXrQ,MAAON,EAAMI,QAAQyU,KAAKC,QAC1B/T,QAAS,OACTC,cAAe,SACfmE,KAAM,EACND,QAASlF,EAAMW,QAAQ,GAAI,EAAG,GAC9BkE,SAAU,WACVc,IAAK,wBACLiL,WAAY,sCACZ3Q,MAAO,kDAEND,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B5L,QAASlF,EAAMW,QAAQ,EAAG,KAC3B,IAGG07B,IAA8Bx8B,EAAAA,EAAAA,GAAO,MAAPA,EAAuD,SAAAiB,GAGrF,IAAAM,EAFUk7B,EAAWx7B,EAAzBoV,WAAcomB,YACdt8B,EAAKc,EAALd,MAEMu8B,EAAev8B,EAAMW,QAAQ,IAEnC,OAAAS,EAAA,CACEL,QAAS,OACTC,cAAe,SACf2X,UAAW,QAAFhU,OAAU23B,EAAW,SAAA33B,OAAQ43B,EAAY,6BAClD9jB,UAAW,IACX5T,SAAU,WACV5E,MAAO,SAAM+I,EAAAA,EAAAA,GAAA5H,EAEZpB,EAAM6Q,YAAYuE,KAAK,MAAQ,CAC9ByD,UAAW,OACX2jB,oBAAqB,aACtBxzB,EAAAA,EAAAA,GAAA5H,EAEApB,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B/P,QAAS,OACT07B,oBAAqB,UACrBtgB,iBAAkB,cACnB/a,CAEL,IAEMs7B,IAAsB78B,EAAAA,EAAAA,GAAO,OAAPA,EAAe,SAAA2B,GAAA,IAAGxB,EAAKwB,EAALxB,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,CACjDpH,WAAY5B,EAAM+E,WAAWgQ,eAC7BrU,OAAQV,EAAMW,QAAQ,EAAG,EAAG,IAE3BX,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BspB,WAAY,EACZC,QAAS,EACT35B,OAAQ,EACRW,UAAW,EACXmV,SAAU,SACVC,aAAc,WACdzB,WAAY,UACb,IAGG2nB,IAAqB98B,EAAAA,EAAAA,GAAO0B,EAAAA,EAAP1B,EAAa,SAAA0Q,GAAA,IAAGvQ,EAAKuQ,EAALvQ,MAAK,MAAQ,CACtD0Q,aAAc,aAAF/L,OAAe3E,EAAMI,QAAQyU,KAAKC,SAC9CxU,MAAON,EAAMI,QAAQyU,KAAKC,QAC1BlT,WAAY5B,EAAM+E,WAAWgQ,eAC7BhF,WAAY,EACZ6sB,cAAe,EACfj7B,eAAgB,OAEhB,6BAA8B,CAC5B+O,aAAc,aAAF/L,OAAe3E,EAAMI,QAAQyU,KAAKqW,UAC9C5qB,MAAON,EAAMI,QAAQyU,KAAKqW,UAE7B,IAEK2R,IAAwBh9B,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAi9B,GAAA,IAAG98B,EAAK88B,EAAL98B,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,GACjDhJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BspB,WAAY,EACZC,QAAS,GACV,IAGG0C,IAAsBl9B,EAAAA,EAAAA,GAAO,OAAPA,EAAe,SAAAm9B,GAAA,IAAGh9B,EAAKg9B,EAALh9B,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,CACjDrD,IAAK,OAEJ3F,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5BnL,IAAK,OACN,IAGGs3B,IAAe3rB,EAAAA,EAAAA,OAAKC,iBAAA,MAAa,CAAEgG,eAAgB,gCAA+B2lB,SAAU,IAE5FC,GAA2B,WAC/B,IAAMrrB,GAAWC,EAAAA,EAAAA,KACTlP,GAAkBC,EAAAA,GAAAA,KAAlBD,cACAmP,GAAchP,EAAAA,EAAAA,KAAdgP,UACA9R,GAAW2xB,EAAAA,GAAAA,KAAX3xB,OACAgwB,EAAyBlf,IAAzBkf,qBACAoH,GAAYlH,EAAAA,EAAAA,MAAZkH,QACRtkB,GAAsCC,EAAAA,EAAAA,UAAS/S,GAAOgT,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA/CspB,EAAWppB,EAAA,GAAEkqB,EAAclqB,EAAA,GAC5BmqB,EAAaxa,QAAQyU,aAAO,EAAPA,EAASgG,SAAS50B,QAEvC60B,EAAqB,WAAH,OACtBvvB,EAAAA,EAAAA,UACE,kBACE/K,EAAAA,EAAAA,MAAA6oB,EAAAA,SAAA,CAAA5oB,SAAA,CACGo0B,SAAAA,EAASG,OACRx0B,EAAAA,EAAAA,MAACy5B,GAAmB,CAAC,cAAa1qB,EAAU,yBAAyB9O,SAAA,CAClEL,EAAc,qBACfS,EAAAA,EAAAA,KAACq5B,GAAkB,CACjBl5B,KAAI,iBAAAkB,OAAmB0sB,mBAAmBiG,EAAQG,QAClD,cAAazlB,EAAU,wBAAwB9O,SAE9Co0B,EAAQG,WAGX,MACJn0B,EAAAA,EAAAA,KAACm3B,GAAe,KAChBx3B,EAAAA,EAAAA,MAAC45B,GAAqB,CAAC,cAAa7qB,EAAU,4BAA4B9O,SAAA,EACtE4O,IAAYxO,EAAAA,EAAAA,KAACw4B,GAAoB,KACnCx4B,EAAAA,EAAAA,KAACsP,EAAAA,SAAQ,CAAA1P,SAAEm6B,GAAa/5B,EAAAA,EAAAA,KAAC25B,GAAY,IAAM,YAE5C,GAEL,GACD,EAMH,OAJApuB,EAAAA,EAAAA,YAAU,WACRuuB,EAAel9B,EACjB,GAAG,CAACA,KAGF+C,EAAAA,EAAAA,MAACm5B,GAAiB,CAAC,cAAapqB,EAAU,uBAAuB9O,SAAA,EAC/DI,EAAAA,EAAAA,KAAC+4B,GAA2B,CAC1BnmB,WAAY,CAAEomB,YAAAA,GACd,cAAatqB,EAAU,kCAAkC9O,SAExDo0B,GACCh0B,EAAAA,EAAAA,KAACi6B,EAAkB,KAEnBj6B,EAAAA,EAAAA,KAACy5B,GAAmB,CAClBze,UAAU,kBACV,cAAatM,EAAU,8BAI7B1O,EAAAA,EAAAA,KAACiX,GAAAA,EAAQ,CACPhI,MAAI,EACJlP,GAAI,CAAEwB,SAAU,WAAYqK,OAAQ,KAAMjP,MAAO,QAASC,OAAQ,SAClE4V,QAASoa,MAIjB,EAEa4B,GAAoB,WAI/B,OAHuB9gB,IAAfY,aAC4BM,EAAAA,GAA2B4f,eAEzCxuB,EAAAA,EAAAA,KAAC65B,GAAoB,IAAM,IACnD,EC1JaK,GAA4B,SAAHz9B,GAA4D,IAAtD0Q,EAAsB1Q,EAAtB0Q,uBAAwBoJ,EAAY9Z,EAAZ8Z,aAAc4jB,EAAS19B,EAAT09B,UACxEzrB,GAAchP,EAAAA,EAAAA,KAAdgP,UAER,OACE/O,EAAAA,EAAAA,MAAC9B,EAAI,CACHsP,uBAAwBA,EACxB,cAAauB,EAAU,QAAQ9O,SAAA,EAE/BI,EAAAA,EAAAA,KAAC2jB,GAAkB,KACnB3jB,EAAAA,EAAAA,KAACqyB,GAAmB,KACpBryB,EAAAA,EAAAA,KAAC2V,GAAU,KACX3V,EAAAA,EAAAA,KAACoO,EAAa,KACdpO,EAAAA,EAAAA,KAACwuB,GAAa,KACdxuB,EAAAA,EAAAA,KAAC+Z,GAAQ,IACRxD,GACDvW,EAAAA,EAAAA,KAAC8oB,GAAa,CACZC,iBAAiB,EACjBhF,gBAAiBoW,aAAS,EAATA,EAAWC,gBAC5BlS,cAAeiS,aAAS,EAATA,EAAWE,kBAIlC,ECnCMC,IAA4B/9B,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,CACtDyP,U9CL4B,I8CM3BzY,EAAM6Q,YAAYuE,KAAK,MAAQ,CAC9BqD,U9CLiC,I8CMlC,IAGUolB,GAAsC,SAAH/8B,GAAqB,IAAfoC,EAAQpC,EAARoC,SAC5C8O,GAAchP,EAAAA,EAAAA,KAAdgP,UAER,OACE1O,EAAAA,EAAAA,KAACs6B,GAAyB,CACxB,cAAa5rB,EAAU,gBACvBiO,GAAG,WAAU/c,SAEZA,GAGP,E,uEClBK46B,GAAS,SAATA,GAAS,OAATA,EAAS,kBAATA,EAAS,4BAATA,EAAS,4BAATA,EAAS,kDAATA,CAAS,EAATA,IAAS,IAORC,GAAe,WAAH,OAASnQ,SAASoQ,KAAKC,SAAS,EAE5CC,GAAe,SAAC5f,GAAoB,OAAKyf,KAAeI,IAAI7f,EAAU,EAEtE8f,GAAkB,SAAC9f,GAAoB,OAAKyf,KAAeM,OAAO/f,EAAU,E,YCHrEggB,GAAU,WACrB,ICRQ1sB,ECEA2sB,ECIA1sB,EHEFgI,EIR6B,WACnC,IAAMtB,GAAY9E,EAAAA,GAAAA,IAAqB,SAACzT,GAAK,OAAKA,EAAM6Q,YAAYC,GAAG,KAAK,IACtE+I,EAAepC,KACfnE,GAAMC,EAAAA,EAAAA,QAA2B,MASvC,IAPA1E,EAAAA,EAAAA,YAAU,WAGR,OAFAyE,EAAIQ,QAAU8Z,SAASC,eAAe,sBAE/B,WACLva,EAAIQ,QAAU,IAChB,CACF,GAAG,IACCR,EAAIQ,SAAWyE,EACjB,OAAOimB,EAAAA,GAAAA,eAAal7B,EAAAA,EAAAA,KAACsP,EAAAA,SAAQ,CAAA1P,SAAE2W,IAA0BvG,EAAIQ,QAIjE,CJTuB2qB,GACrBzmB,EAA8CX,KAAtC5G,EAAsBuH,EAAtBvH,uBAAwBgtB,EAASzlB,EAATylB,UACjBiB,GAAoBC,EAAAA,GAAAA,MAA3BC,MACOC,GAA0BC,EAAAA,GAAAA,MAAjCF,MACOG,EAAmBpjB,KAA1BijB,MACOI,GAAqBC,EAAAA,GAAAA,MAA5BL,MAYR,OCzBQhtB,EAAeZ,IAAfY,YACR/C,EAAAA,EAAAA,YAAU,WACR,IAAMqwB,EAActR,SAASuR,cAAc,wCACrCrpB,EAAU,SAAC3H,GACfA,EAAMixB,iBACN/b,GAAmBmK,EAAAA,GAAU7e,gBAAiBiD,EAChD,EAGA,OAFAstB,SAAAA,EAAapwB,iBAAiB,QAASgH,GAEhC,kBAAMopB,aAAW,EAAXA,EAAanwB,oBAAoB,QAAS+G,EAAQ,CACjE,GAAG,CAAClE,IFE0B,WAC9B,IAAME,GAAWC,EAAAA,EAAAA,KACTtB,EAA2B4G,KAA3B5G,wBACR5B,EAAAA,EAAAA,YAAU,WACRqvB,GAAaJ,GAAUvmB,SACnBzF,EACFosB,GAAaJ,GAAUuB,QAEvBjB,GAAgBN,GAAUuB,QAExB5uB,EACFytB,GAAaJ,GAAUwB,mBAEvBlB,GAAgBN,GAAUwB,kBAE9B,GAAG,CAACxtB,EAAUrB,KACd5B,EAAAA,EAAAA,YAAU,WACR,IAAM0wB,EAAWC,MAAS,WACpB7xB,OAAO8xB,QAAU,EACnBvB,GAAaJ,GAAU4B,QAEvBtB,GAAgBN,GAAU4B,OAE9B,GAAG,KAGH,OAFA/xB,OAAOmB,iBAAiB,SAAUywB,GAE3B,kBAAM5xB,OAAOoB,oBAAoB,SAAUwwB,EAAS,CAC7D,GAAG,GACL,CCzBEI,GEbQpB,GAAsB3mB,EAAAA,GAAAA,MAAtB2mB,mBACR1vB,EAAAA,EAAAA,YAAU,WACR,IAAQ+wB,GAAiBC,EAAAA,GAAAA,KAAjBD,aACFE,EAAYF,EAAahf,IGVO,aHWhCmf,EAA6BH,EAAahf,IGbH,aHczCkf,GAAavB,GAAqBwB,IACpC1c,GAAmBmK,EAAAA,GAAU7e,gBAEjC,GAAG,CAAC4vB,ICJI1sB,EAAqBb,IAArBa,kBACRhD,EAAAA,EAAAA,YAAU,WACR,IAAMmxB,EAAW,SAAC7xB,GAAY,OAAK0D,EAAiB1D,EAAMM,OAAOC,SAAS,EAG1E,OAFAf,OAAOmB,iBAAiB1B,EAAAA,GAAM4yB,GAEvB,kBAAMryB,OAAOoB,oBAAoB3B,EAAAA,GAAM4yB,EAAS,CACzD,GAAG,CAACnuB,KHMJhD,EAAAA,EAAAA,YAAU,WACR6vB,IACAG,IACAE,IACAC,GACF,GAAG,CAACN,EAAiBG,EAAuBE,EAAgBC,KAG1D17B,EAAAA,EAAAA,KAACu6B,GAAY,CAAA36B,UACXI,EAAAA,EAAAA,KAACk6B,GAAO,CACN/sB,uBAAwBA,EACxBoJ,aAAcA,EACd4jB,UAAWA,KAInB,E,wBM1BawC,GCbmB,WAAH,QAAAz3B,EAAAC,UAAAC,OAAOw3B,EAAS,IAAAt3B,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAATq3B,EAASr3B,GAAAJ,UAAAI,GAAA,OAC3C,SAAkB9I,GAAkC,IAA/BmD,EAAQnD,EAARmD,SACnB,OACEI,EAAAA,EAAAA,KAAAwoB,EAAAA,SAAA,CAAA5oB,SACGg9B,EAAUC,aACT,SAACC,EAAa5yB,GAAQ,OACpBlK,EAAAA,EAAAA,KAACkK,EAAQ,CAAAtK,SAAEk9B,GAAuB,GAEpCl9B,IAIR,CAAC,CDCoBm9B,EER2B,SAAHtgC,GAAqB,IAAfmD,EAAQnD,EAARmD,SACnDyU,GAAgEC,EAAAA,GAAAA,MAAxD/Q,EAAe8Q,EAAf9Q,gBAAiBO,EAAMuQ,EAANvQ,OAAQH,EAAY0Q,EAAZ1Q,aAAcE,EAAYwQ,EAAZxQ,aACvCm5B,GAAmBrsB,EAAAA,EAAAA,KAAnBqsB,eAER,OACEh9B,EAAAA,EAAAA,KAACi9B,GAAAA,IAAuB,CACtBC,QAASv5B,EACT8a,SAAUlb,EACV6Q,MAAO4oB,EACPl5B,OAAQA,EAAOlE,UAEfI,EAAAA,EAAAA,KAACm9B,GAAAA,IAAuB,CAACD,QAASr5B,EAAajE,SAAEA,KAGvD,GFJEw9B,GAAAA,GACAC,EAAAA,GACAC,GAAAA,IjEDuD,SAAH7gC,GAAqB,IAAfmD,EAAQnD,EAARmD,SAC1D8P,GAAoCC,EAAAA,EAAAA,UAAqB,IAAGC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAArDpB,EAAUsB,EAAA,GAAE2tB,EAAa3tB,EAAA,GAChCid,GAAqDC,EAAAA,EAAAA,MAA7CqB,EAAItB,EAAJsB,KAAMC,EAAYvB,EAAZuB,aAAcrB,EAAIF,EAAJE,KAAMsB,EAAQxB,EAARwB,SAAU3L,EAAImK,EAAJnK,KACtCnU,GAAmB3D,EAAAA,EAAAA,cACvB,SAAC4yB,GACKA,IAAStT,EAAAA,GAAU8D,aAAewP,IAAStT,EAAAA,GAAUsE,eACvD9L,IACA6a,EAAcC,IACLlvB,IAAekvB,GACxBzQ,IACAwQ,EAAc,MAEdxQ,IACAwQ,EAAcC,GAElB,GACA,CAAClvB,EAAYye,EAAMrK,IAEfkK,GAAuBhiB,EAAAA,EAAAA,cAAY,WACvCujB,IACAC,IACArB,IACAwQ,EAAc,IACdlP,EAAS,GACX,GAAG,CAACF,EAAMC,EAAcrB,EAAMsB,IACxBvoB,GAAQ4E,EAAAA,EAAAA,UACZ,iBAAO,CAAE4D,WAAAA,EAAYse,qBAAAA,EAAsBre,iBAAAA,EAAkB,GAC7D,CAACD,EAAYse,EAAsBre,IAGrC,OAAOvO,EAAAA,EAAAA,KAACkK,EAAQ,CAACpE,MAAOA,EAAMlG,SAAEA,GAClC,IO5ByD,SAAHnD,GAAqB,IAAfmD,EAAQnD,EAARmD,SAC1D8P,GAAkCC,EAAAA,EAAAA,YAA6BC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAxDyqB,EAASvqB,EAAA,GAAE6tB,EAAY7tB,EAAA,GAC9ByE,GAA6CC,EAAAA,GAAAA,MAArCV,EAAgBS,EAAhBT,iBAAkBe,EAAcN,EAAdM,eAC1BjE,GAAwCC,EAAAA,EAAAA,KAAhCnN,EAAUkN,EAAVlN,WAAYoN,EAAeF,EAAfE,gBACZC,GAAS6sB,EAAAA,GAAAA,KAAyCl6B,EAAWmxB,gBAAYzrB,EAAW,CAC1F6H,IAAK,CAAEC,SAAUJ,KADXC,MAGRtF,EAAAA,EAAAA,YAAU,WACR,IAAMoyB,EAAkB,IAAI1Z,gBAU5B,OATAyB,GAAAA,QACGpI,IAAuB3J,GAAqB,CAC3CiqB,QAASvzB,OAAOC,SAASuzB,OACzBlY,OAAQgY,EAAgBhY,SAEzBC,MAAK,SAACkY,GAAQ,OAAKL,EAAaK,EAASjtB,KAAK,IAE9CiV,MAAM5f,QAAQH,OAEV,kBAAM43B,EAAgBI,OAAO,CACtC,GAAG,IACH,IAAMj4B,GAAQ4E,EAAAA,EAAAA,UACZ,eAAAszB,EAAAC,EAAAC,EAAA,MAAO,CACLtqB,iBAAoD,QAApCoqB,EAAEntB,SAAsB,QAAlBotB,EAAJptB,EAAM+C,wBAAgB,IAAAqqB,OAAA,EAAtBA,EAAwBtJ,kBAAU,IAAAqJ,EAAAA,EAAIpqB,EACxDe,eAAAA,EACAxH,yBAA2BgtB,SAAwB,QAAf+D,EAAT/D,EAAWE,qBAAa,IAAA6D,IAAxBA,EAA0B9U,iBAAkB+Q,EAAUE,cAAc/T,kBAC/F6T,UAAAA,EACD,GACD,CAACvmB,EAAkBe,EAAgB9D,aAAI,EAAJA,EAAM+C,iBAAkBumB,IAG7D,OAAOn6B,EAAAA,EAAAA,KAACkK,GAAQ,CAACpE,MAAOA,EAAMlG,SAAEA,GAClC,G0D9BEu+B,GAAAA,GACAC,GAAAA,GACAlmB,I1BSmD,SAAH1a,GAAqB,IAAfoC,EAAQpC,EAARoC,SACtD8P,GAAoCC,EAAAA,EAAAA,UAAS6a,GAA0BC,YAAW7a,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA3E+a,EAAU7a,EAAA,GAAEyuB,EAAazuB,EAAA,GAChCyU,GAAkC1U,EAAAA,EAAAA,UAAS6a,GAA0BE,WAAUpG,GAAAzU,EAAAA,EAAAA,GAAAwU,EAAA,GAAxEqG,EAASpG,EAAA,GAAEga,EAAYha,EAAA,GAC9BE,GAA8B7U,EAAAA,EAAAA,UAAS6a,GAA0BG,SAAQlG,GAAA5U,EAAAA,EAAAA,GAAA2U,EAAA,GAAlEmG,EAAOlG,EAAA,GAAE8Z,EAAU9Z,EAAA,GACpB+Z,GAAuBC,EAAAA,GAAAA,MAC7BlzB,EAAAA,EAAAA,YAAU,WACRizB,EAAqBxmB,GAAAA,IAAsC0mB,eACxD9Y,MAAK,SAAC5L,GAZG,IACd8Q,EACAC,EAAuD4T,EAAAC,EAWjDP,EAAcxT,GAAU7S,GAAAA,IAAsC6mB,WAAY7kB,IAC1EskB,EAAazT,GAAU7S,GAAAA,IAAsCC,UAAW+B,IACxEukB,GAdNzT,EAcyB9S,GAAAA,IAAsCC,UAZV,QADE0mB,EACpD5T,OADHA,EAa0E/Q,IAZ1B,QAAnC4kB,EAAV7T,EAAY5Q,MAAK,SAAAhd,GAAO,OAAAA,EAAJyK,OAAoBkjB,CAAI,WAAC,IAAA8T,OAAA,EAA7CA,EAA+CtnB,WAAG,IAAAqnB,EAAAA,EAAI,IAarD,IAEC7Y,MAAM5f,QAAQH,MACnB,GAAG,CAACy4B,IACJ,IAAM14B,GAAQ4E,EAAAA,EAAAA,UAAQ,iBAAO,CAAE+f,WAAAA,EAAYC,UAAAA,EAAWC,QAAAA,EAAS,GAAG,CAACF,EAAYC,EAAWC,IAE1F,OAAO3qB,EAAAA,EAAAA,KAACkK,GAAQ,CAACpE,MAAOA,EAAMlG,SAAEA,GAClC,G0BzBEk/B,GAAAA,GACAC,GAAAA,I,wBGzBF,IAKaC,GAAqB,WAAH,OCJMn5B,EDDT,4BCCsBo5B,GDI6B,ECH7EvvB,GAAsCC,EAAAA,EAAAA,WAAY,WAChD,GAAsB,oBAAXtF,OACT,OAAO40B,EAGT,IACE,IAAMnU,EAAOzgB,OAAO60B,eAAeC,QAAQt5B,GAE3C,OAAOilB,EAAQsU,KAAKC,MAAMvU,GAAcmU,CAC1C,CAAE,MAAOl5B,GAIP,OAFAG,QAAQo5B,IAAIv5B,GAELk5B,CACT,CACF,IAAErvB,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAfK6vB,EAAW3vB,EAAA,GAAE4vB,EAAc5vB,EAAA,GAmC3B,CAAC2vB,EAlBuC,SAAAE,GAC7C,IACED,GAAgB,SAAAE,GACd,IAAMC,EACuB,mBAApBF,EAAkCA,EAAwCC,GAAaD,EAMhG,MAJsB,oBAAXp1B,QACTA,OAAO60B,eAAeU,QAAQ/5B,EAAKu5B,KAAKS,UAAUF,IAG7CA,CACT,GACF,CAAE,MAAO55B,GAEPG,QAAQo5B,IAAIv5B,EACd,CACF,GAlCK,IAA8BF,EAAao5B,EAChDvvB,EAeEE,EAfK2vB,EAAaC,CDG+D,EEOxEM,GAAqD,SAAHrjC,GAAqB,IAAAmjB,EAAfhgB,EAAAnD,EAAAmD,SAC3DC,EAAcyU,KAAdzU,UACA+Q,GAAoBD,EAAAA,EAAAA,KAApBC,gBACF7J,EAAYgW,KACZlW,EAAUsY,KACVrY,EAAmBiX,KACzBgiB,EAA8Cf,KAAoBgB,GAAAnwB,EAAAA,EAAAA,GAAAkwB,EAAA,GAA3D74B,EAAe84B,EAAA,GAAE74B,EAAkB64B,EAAA,GAC1C9e,EAAgCxB,KAAxBzO,EAASiQ,EAATjQ,UAAWC,EAAAgQ,EAAAhQ,SAKb+uB,EAAkCrvB,GAAmB7J,EAAUa,OAASqT,GAAavW,MAKrFsC,EAAwBnH,GAAa0f,QAAQ1Y,SAAoB,QAAb+Y,EAAP/Y,EAAS2Y,mBAAW,IAAAI,OAAA,EAApBA,EAAsBC,WAAaogB,EAEhFh5B,EAAoBpH,IAAcqH,GAAmBqY,QAAQtO,QAAAA,EAAaC,GAE1EpL,GAAQ4E,EAAAA,EAAAA,UACZ,iBAAmC,CACjC7D,QAAAA,EACAE,UAAAA,EACAD,iBAAAA,EACAE,sBAAAA,EACAC,kBAAAA,EACAC,gBAAAA,EACAC,mBAAAA,EACD,GACD,CACEN,EACAE,EACAD,EACAE,EACAC,EACAC,EACAC,IAIJ,OAAOnH,EAAAA,EAAAA,KAAC2G,GAAAA,EAA2BuD,SAAQ,CAACpE,MAAOA,EAAMlG,SAAEA,GAC7D,ECtDasgC,GAAyB,SAAAC,GACpC,IAAMC,EAAS,IAAIC,IAAIh2B,OAAOC,SAASqqB,YACvCyL,EAAO5T,OAAS2T,EAAmBxL,WAEnCtqB,OAAOi2B,QAAQC,aAAa,GAAIjW,SAASxP,MAAOslB,EAClD,ECHaI,GAAwB,SAAAppB,GACnC,IAAMqpB,EAAc,IAAIC,gBAAgBr2B,OAAOC,SAASkiB,QAEnDiU,EAAYE,IAAIvpB,KAIrBqpB,EAAYG,OAAOxpB,GAEnB8oB,GAAsBO,GACxB,ECVaI,GAAuB,SAACzpB,EAActR,GACjD,IAAM26B,EAAc,IAAIC,gBAAgBr2B,OAAOC,SAASkiB,QAGpDiU,EAAYE,IAAIvpB,IAASqpB,EAAYnjB,IAAIlG,KAAUtR,IAIvD26B,EAAYK,IAAI1pB,EAAMtR,GAEtBo6B,GAAsBO,GACxB,E,whCCIO,ICLMM,GAA6C,SAAHtkC,GAKjD,IDAyBukC,ECJ7BphC,EAAQnD,EAARmD,SACAgV,EAAanY,EAAbmY,cACAqsB,EAAiBxkC,EAAjBwkC,kBACAT,EAAA/jC,EAAA+jC,qBDC6BQ,ECCdC,GAAqBT,EAAuB,CAAES,kBAAAA,EAAmBT,qBAAAA,QAAyBt3B,GDAzGqC,EAAAA,EAAAA,YAAU,WAAM,IAAA21B,EAAAC,EAM6BC,EALrCZ,EAAuD,QAAnCU,EAAGF,aAAU,EAAVA,EAAYR,4BAAoB,IAAAU,EAAAA,EAAIG,GAC3DJ,EAAiD,QAAhCE,EAAGH,aAAU,EAAVA,EAAYC,yBAAiB,IAAAE,EAAAA,EAAIG,GAEvDC,GAAY,EAAKC,EAAAC,GAEI19B,GAAAA,IAAkB,IAA3C,IAAAy9B,EAAAE,MAAAN,EAAAI,EAAAG,KAAAC,MAA6C,KAAlC1kB,EAAUkkB,EAAAt7B,MAET+7B,EAKN3kB,EALFlZ,OACY89B,EAIV5kB,EAJF/Y,WACAC,EAGE8Y,EAHF9Y,YACAI,EAEE0Y,EAFF1Y,gBACAC,EACEyY,EADFzY,iBAEIs9B,EAAc1kB,GAAAA,EAAQC,IAAIukB,GAC1BG,EAAOx9B,GAAmB+8B,EAGhC,GAAKQ,SAAAA,EAAa38B,QAqBlB,GAJA67B,EAAkBa,EAAgBC,GAElCR,GAAY,EAERn9B,QAAAA,EAAe49B,EACjB,WAZA,GATIv9B,GACF+7B,EAAqBsB,GAGjB,mCAADzgC,OAAoCwgC,EAAW,oBAEpDN,GAAY,EAGRS,EACF,KAaN,QAAAC,GAAAT,EAAA5e,EAAAqf,EAAA,SAAAT,EAAAU,GAAA,CACF,GAAG,CAAClB,aAAU,EAAVA,EAAYR,qBAAsBQ,aAAU,EAAVA,EAAYC,oBC1ClD,IAAQjE,GAAmBrsB,EAAAA,EAAAA,KAAnBqsB,eAER,OACEh9B,EAAAA,EAAAA,KAAC8d,GAAqB,CAAChY,MAAO8O,EAAchV,UAE1CI,EAAAA,EAAAA,KAACmiC,GAAAA,GAAS,CACRr8B,MAAO,CACLs8B,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvBC,oBAAoB,EACpBC,gBAAiB,GACjB5iC,UAEFI,EAAAA,EAAAA,KAACyiC,GAAAA,IAAiB,CAChBvF,QAAStoB,EAAcjR,aACvBG,OAAQ8Q,EAAc9Q,OACtB2a,SAAU7J,EAAcrR,gBACxB6Q,MAAO4oB,EAAep9B,UAEtBI,EAAAA,EAAAA,KAAC8/B,GAA2B,CAAAlgC,SAAEA,SAKxC,ECtCa8iC,GAA+F,SAAHjmC,GAInG,IAHJmD,EAAQnD,EAARmD,SACA4gC,EAAoB/jC,EAApB+jC,qBACAS,EAAiBxkC,EAAjBwkC,kBAEQz9B,GAAemN,EAAAA,EAAAA,KAAfnN,WACR6Q,GACEC,EAAAA,GAAAA,MADM/Q,EAAe8Q,EAAf9Q,gBAAiBI,EAAY0Q,EAAZ1Q,aAAcD,EAAU2Q,EAAV3Q,WAAYE,EAAWyQ,EAAXzQ,YAAayd,EAAmBhN,EAAnBgN,oBAAqBxd,EAAYwQ,EAAZxQ,aAAcC,EAAMuQ,EAANvQ,OAE7F8Q,GAAgBlK,EAAAA,EAAAA,UACpB,iBAAqC,CACnCnH,gBAAAA,EACAC,WAAAA,EACAG,aAAAA,EACAD,WAAAA,EACAE,YAAAA,EACA/D,UAAW0f,QAAQ8B,GACnBxd,aAAAA,EACAC,OAAAA,EACD,GACD,CAACP,EAAiBC,EAAYG,EAAcD,EAAYE,EAAayd,EAAqBxd,EAAcC,IAG1G,OACE9D,EAAAA,EAAAA,KAAC+gC,GAAM,CACLnsB,cAAeA,EACf4rB,qBAAsBA,EACtBS,kBAAmBA,EAAkBrhC,SAEpCA,GAGP,ECKawD,GAAwB,W,8lBClC9B,I,GAAM82B,GAA4B,SAAHz9B,GAAA,IAAMmY,EAAanY,EAAbmY,cAAkB+tB,GAAGxmB,EAAAA,EAAAA,GAAA1f,EAAA2f,IAAA,OAC/Dpc,EAAAA,EAAAA,KAACyG,EAAAA,EAA6B,CAACC,UAAWtD,GAAsBxD,UAC9DI,EAAAA,EAAAA,KAAC8d,GAAAA,GAAqB,CAAChY,MAAO8O,EAAchV,UAC1CI,EAAAA,EAAAA,KAACsG,EAAAA,EAAc,CACbC,KAAM1D,EAAAA,EAAKC,aACX0D,QAAQ,WAAU5G,UAElBI,EAAAA,EAAAA,KAAC28B,GAAO,CAAA/8B,UACNI,EAAAA,EAAAA,KAAC0iC,GAAGxiC,GAAAA,GAAA,GAAKyiC,GAAG,IAAA/iC,UACVI,EAAAA,EAAAA,KAACg7B,GAAO,cAKc,E,wBChBrB4H,IAAiCC,GAAG,CAAC,GAAJn9B,EAAAA,EAAAA,GAAAm9B,GAC3Cz/B,GFGqD,CACtD0/B,UAAW,aACXC,SAAU,WACVC,OAAQ,SACRC,0BAA2B,gCAC3BC,OAAQ,SACRC,eAAgB,mBAChBhc,QAAS,UACTic,MAAO,SACPC,WAAY,eACZ7F,KAAM,OACN8F,UAAW,aACXC,mBAAoB,uBACpBC,cAAe,iBACfC,UAAW,aACXC,MAAO,QACPC,gBAAiB,mBACjBC,iCAAkC,wCAClCC,qBAAsB,yBACtBC,SAAU,WACVxe,SAAU,WACVkH,OAAQ,SACRC,cAAe,yDACfsX,OAAQ,UACRC,iBAAkB,qBAClBC,iBAAkB,sBAClBC,QAAS,WACTzS,YAAa,eACb0S,OAAQ,UACRC,KAAM,UEhCsC1+B,EAAAA,EAAAA,GAAAm9B,GAC3CwB,GAAAA,EAA2BC,GAAAA,GAAsBzB,ICKvC0B,GAA6F,SAAH9nC,GAKjG,IAJJmD,EAAQnD,EAARmD,SACA2D,EAAe9G,EAAf8G,gBACAO,EAAMrH,EAANqH,OACAD,EAAYpH,EAAZoH,aAEQuQ,GAAUzD,EAAAA,EAAAA,KAAVyD,MACFowB,GAA2B95B,EAAAA,EAAAA,UAC/B,iBAAO,CAAE+5B,QAASv+B,QAAQH,MAAOjC,OAAAA,EAAQsQ,MAAAA,EAAO8oB,QAASr5B,EAAc,GACvE,CAACC,EAAQsQ,EAAOvQ,IAGlB,OACE7D,EAAAA,EAAAA,KAAC0kC,GAAAA,EAAoB,CACnBnhC,gBAAiBA,EACjBq/B,kCAAmCA,GACnC4B,yBAA0BA,EAAyB5kC,SAElDA,GAGP,E,YCnCM+kC,GAAiB,U,wBCMjBC,GAAuB,SAAC9Z,GAC5B,GAAsB,kBAAlBA,EAAK+Z,UAAgC/Z,EAAKga,SAAU,KAAAC,EAChDC,EAA4Dla,EAAKga,SAASE,WAK5EA,SAAAA,EAAa,IAA2B,QAAzBD,EAAIC,EAAW,GAAG5e,eAAO,IAAA2e,GAArBA,EAAuBE,WAAW,0BAClDna,EAAKoa,OAERpa,EAAKoa,KAAO,IAGdpa,EAAKoa,KAAK,cAAgB,IAE9B,CAEA,OAAO,CACT,E,qJCfI5d,GAAU,CAAC,EAEfA,GAAQ6d,kBAAoB,KAC5B7d,GAAQ8d,cAAgB,KAElB9d,GAAQ+d,OAAS,UAAc,KAAM,QAE3C/d,GAAQge,OAAS,KACjBhe,GAAQie,mBAAqB,KAEhB,KAAI,KAASje,IAKJ,MAAW,KAAQke,QAAS,KAAQA,OCVnD,IAAMC,GAASx3B,iBACpB,IAAMy3B,EAASpb,SAASC,eAAe,wBACvC,GAAImb,EAAQ,CACV,IAAAC,EAAwBD,EAAOE,QAAvBC,OACFC,EHhB2B,SAACD,GACpC,IAAME,GAAeC,EAAAA,GAAAA,GAUlBH,EAAQ,CACT,eACA,aACA,cACA,kBACA,qBACA,gCACA,gBACA,eACA,wBAGII,EAAaF,EAAariC,WAMhC,OAJKuiC,EAAWC,SAASvB,MACvBoB,EAAariC,WAAa,IAAI28B,IAAIsE,GAAgBsB,GAAY9lC,MAGzD4lC,CACT,CGdsBI,MADJ,IAAAR,EAAG,GAAEA,GAGjBniC,EAMEsiC,EANFtiC,WACAM,EAKEgiC,EALFhiC,OACasiC,EAIXN,EAJFliC,YACAyiC,EAGEP,EAHFO,oBACA9iC,EAEEuiC,EAFFviC,gBACAM,EACEiiC,EADFjiC,aAEID,EAAcwiC,EAAiBF,SAAS,KAAOE,EAAiBE,MAAM,GAAI,GAAKF,QCtBtDn4B,eAAOrK,GAiB1C,CDMU2iC,GACN,IAAMnyB,QEnBcnG,eAAHxR,GAAmF,IAAA+pC,EAAvEhjC,EAAU/G,EAAV+G,WAE/B,GAFiD/G,EAANqH,OAAmBrH,EAAXmH,YAAwBnH,EAAXgqC,YAElD,QAAdD,EAAIn8B,OAAOq8B,WAAG,IAAAF,GAAVA,EAAYG,aACd,GAAInjC,EAAa,EACf,IACE,IAAMojC,QAAiBv8B,OAAOq8B,IAAIC,aAAaE,WAC/C,GAAID,EACF,OAAO,IAAIE,GAAAA,EAAgBF,EAASG,MAExC,CAAE,MAAOhhC,GAEPG,QAAQo5B,IAAI,qBAAsBv5B,EACpC,MAEA,IACE,IAAM6gC,QAAiBv8B,OAAOq8B,IAAIC,aAAaK,iBAC/C,GAAIJ,EACF,OAAO,IAAIE,GAAAA,EAAgBF,EAASG,MAExC,CAAE,MAAOhhC,GAEPG,QAAQo5B,IAAI,2BAA4Bv5B,EAC1C,CAKJ,GAAIvC,EAAa,EACf,IACE,IAAMyjC,EAAY/H,eAAeC,QAAQ,aACzC,GAAI8H,EAAW,CACb,IACM7yB,EADcgrB,KAAKC,MAAM4H,GACLF,MAE1B,OAAO,IAAID,GAAAA,EAAgB1yB,EAC7B,CACF,CAAE,MAAOrO,GAEPG,QAAQo5B,IAAI,qCAAsCv5B,EACpD,MAEA,IACE,IAAMmhC,EAAchI,eAAeC,QAAQ,eAC3C,GAAI+H,EAAa,CACf,IACM9yB,EADcgrB,KAAKC,MAAM6H,GACLH,MAE1B,OAAO,IAAID,GAAAA,EAAgB1yB,EAC7B,CACF,CAAE,MAAOrO,GAEPG,QAAQo5B,IAAI,uCAAwCv5B,EACtD,CAsCF,MAAM,IAAI6H,MAAM,kCAClB,CFxEwBi5B,CAAS,CAAErjC,WAAAA,EAAYM,OAAAA,EAAQF,YAAAA,IACnD,KFJsC,SAACJ,EAAoB4Q,GAC7D,GAAI/J,OAAO88B,YAAa,CACtB,IAAMC,EAAkBlpB,OAAO9J,EAAMizB,SAAS,gBAC1CD,IAAoB5jC,GAAcA,EAAa,IACjD6G,OAAO88B,YAAYG,wBAAwB1C,IAC3Cv6B,OAAO88B,YAAYI,eAAe,CAChCC,UAAW,IAAI55B,MAAM,iCAADvM,OAAkCmC,EAAU,gBAAAnC,OAAe+lC,IAC/EK,cAAeC,GAAAA,EAAc95B,QAGnC,CACF,CENM+5B,CAA2BnkC,EAAY4Q,EACzC,CAAE,MAAOrO,GAEPG,QAAQygB,KAAK5gB,EACf,EAEA6hC,EAAAA,EAAAA,GAAWlC,GAAQD,QACjBzlC,EAAAA,EAAAA,KAAC2E,EAAAA,cAAa,CAAA/E,UACZI,EAAAA,EAAAA,KAAC6nC,EAAAA,EAAuB,CACtBrkC,WAAYA,EACZ4Q,MAAOA,EAAMugB,WAAW/0B,UAExBI,EAAAA,EAAAA,KAAC8nC,EAAAA,EAAa,CACZC,qBAAmB,EACnBC,SAAS,WAAUpoC,UAEnBI,EAAAA,EAAAA,KAACuK,EAAa,CAACC,mBAAoB67B,EAAoBzmC,UACrDI,EAAAA,EAAAA,KAACukC,GAA8B,CAC7BhhC,gBAAiBA,EACjBO,OAAQA,EACRD,aAAcA,EAAajE,UAE3BI,EAAAA,EAAAA,KAACk6B,GAAO,CAACtlB,cAAekxB,cAOtC,CACF,C,2KG/DYmC,EAAkB,SAAlBA,GAAkB,OAAlBA,EAAkB,yBAAlBA,EAAkB,+BAAlBA,EAAkB,yBAAlBA,EAAkB,6BAAlBA,EAAkB,qCAAlBA,EAAkB,qCAAlBA,EAAkB,mCAAlBA,EAAkB,2CAAlBA,CAAkB,M,ovBCe9B,IAOMpqC,GAAOtB,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAE,GAAA,IAAGC,EAAAD,EAAAC,MAAA,MAAa,CACzCG,gBAAiBH,EAAMI,QAAQqB,OAAOwD,MACtCC,QAASlF,EAAMW,QAAQ,GACvB2X,SALwB,IAMzB,IAEKkzB,GAAkB3rC,EAAAA,EAAAA,GAAOmf,EAAAA,EAAPnf,EAAc,SAAAY,GAAG,MAAa,CACpDM,QAAS,QACTM,UAFuCZ,EAAAT,MAEtBW,QAAQ,KAC1B,IAEK8qC,GAA4B5rC,EAAAA,EAAAA,GAAOgB,EAAAA,EAAPhB,EAAY,SAAAiB,GAAA,IAAGd,EAAAc,EAAAd,MAAA,MAAa,CAC5D6P,IAAK,CAAE5P,MAAO,GAAIC,OAAQ,GAAIwrC,GAAI1rC,EAAMW,QAAQ,IAAMgrC,GAAI3rC,EAAMW,QAAQ,KACzE,IAEKC,GAAWf,EAAAA,EAAAA,GAAOoQ,EAAAA,EAAPpQ,EAAmB,SAAAuB,GAAG,MAAa,CAClDL,QAAS,QACTC,cAAe,MACfC,WAAY,SACZI,UAJqCD,EAAApB,MAIpBW,QAAQ,KAC1B,IAEKf,GAAeC,EAAAA,EAAAA,GAAOC,EAAAA,EAAPD,EAAe,SAAA2B,GAAG,MAAa,CAClDvB,MA9BkB,IA+BlBC,OA/BkB,IAgClBQ,OAHqCc,EAAAxB,MAGvBW,QAAQ,GACvB,IAYYirC,EAAoC,SAAHppC,GASxC,IARJG,EAAQH,EAARG,SACAkpC,EAAerpC,EAAfqpC,gBACAC,EAAStpC,EAATspC,UACAC,EAASvpC,EAATupC,UACAhqC,EAAkBS,EAAlBT,mBACAU,EAAgCD,EAAhCC,iCACAC,EAA0BF,EAA1BE,2BACG8c,GAAAC,EAAAA,EAAAA,GAAAjd,EAAAkd,GAEK3c,GAAmBC,EAAAA,EAAAA,KAAnBD,eACAF,GAAkBC,EAAAA,EAAAA,KAAlBD,cAER0N,EAAmDs7B,QAAAA,EAAmB,CAAC,EAA/DG,EAAYz7B,EAAZy7B,aAAcC,EAAe17B,EAAf07B,gBAAiBviB,EAAAnZ,EAAAmZ,QAEvC,OACEzmB,EAAAA,EAAAA,MAAC9B,EAAIqC,EAAAA,EAAAA,EAAA,CACHH,GAAI,CAAEtC,QAAS,SACXgC,EAAewoC,EAAmB1rB,OAClCL,GAAS,IAAAtc,SAAA,EAEbI,EAAAA,EAAAA,KAACzC,EAAAA,EAAG,CAACwC,GAAI,CAAEoM,eAAgB,cAAevM,UACxCD,EAAAA,EAAAA,MAACuoC,EAAe,CACd74B,UAAU,SACVhS,QAAS,EAAEuC,SAAA,EAEXI,EAAAA,EAAAA,KAAC2M,EAAAA,EAAUzM,EAAAA,EAAA,CACTwS,QAAQ,KACR1V,MAAM,eACFyC,EAAewoC,EAAmBW,UAAQ,IAAAhpC,SAE7C+oC,KAEFviB,GACCpmB,EAAAA,EAAAA,KAAC2M,EAAAA,EAAUzM,EAAAA,EAAA,CACTwS,QAAQ,QACR1V,MAAM,eACFyC,EAAewoC,EAAmBvrB,OAAK,IAAA9c,UAE3CI,EAAAA,EAAAA,KAAC6oC,EAAAA,EAAuB,CACtBC,kBAAmB1iB,EACnB9c,OAAQ,CAENsT,SAAW,SAAAC,GAAM,OAAK7c,EAAAA,EAAAA,KAAA,SAAAE,EAAAA,EAAA,GAAYT,EAAewoC,EAAmBnrB,YAAU,IAAAld,SAAGid,IAAe,QAIpG,KACH6rB,SAAAA,EAAcK,aAAeL,EAAa5tB,OACzC9a,EAAAA,EAAAA,KAAC1C,EAAQ,CAAAsC,UACPI,EAAAA,EAAAA,KAAC/B,EAAAA,EAAIiC,EAAAA,EAAA,CACHC,KAAMuoC,EAAaK,YACnBr2B,QAAQ,UACJjT,EAAewoC,EAAmBe,gBAAc,IAAAppC,SAEnD8oC,EAAa5tB,WAGhB,KACH0tB,GACCxoC,EAAAA,EAAAA,KAAC1C,EAAQ,CAAAsC,UACPI,EAAAA,EAAAA,KAAC/B,EAAAA,EAAIiC,EAAAA,EAAA,CACHC,KAAI,UAAAkB,OAAYmnC,IACZ/oC,EAAewoC,EAAmBgB,aAAW,IAAArpC,SAEhD4oC,OAGH,KACHC,GACCzoC,EAAAA,EAAAA,KAAC1C,EAAQ,CAAAsC,UACPI,EAAAA,EAAAA,KAAC/B,EAAAA,EAAIiC,EAAAA,EAAA,CACHC,KAAI,OAAAkB,OAASonC,IACThpC,EAAewoC,EAAmBiB,aAAW,IAAAtpC,SAEhD6oC,OAGH,MACJzoC,EAAAA,EAAAA,KAACmoC,EAAyB,CAAAvoC,UACxBI,EAAAA,EAAAA,KAACf,EAAAA,GAAqB,CACpBE,iCAAkCA,EAClCC,2BAA4BA,EAC5BX,mBAAoBA,EACpBY,SAAUA,WAKjBA,GACCW,EAAAA,EAAAA,KAACzC,EAAAA,EAAG,CAACwC,GAAI,CAAEoM,eAAgB,YAAavM,UACtCI,EAAAA,EAAAA,KAAC1D,EAAY4D,EAAA,CACXQ,IAAKrB,EACLsB,IAAKpB,EAAcX,EAAAA,EAAegC,eAC9BnB,EAAewoC,EAAmBpnC,YAGxC,QAGV,E,4nBCvJO,I,sDCHDg0B,GAAmBt4B,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAE,GAAQ,MAAQ,CACrD0c,UAAW,QACXhY,aAF6C1E,EAALC,MAEpB4e,MAAMC,qBAC3B,IAQY0Z,EAAsC,SAAH93B,GAAkC,IAAA+3B,EAA5B/d,EAAKha,EAALga,MAAOxW,EAAGxD,EAAHwD,IAAKwoC,EAAShsC,EAATgsC,UACxDz6B,GAAchP,EAAAA,EAAAA,KAAdgP,UAEF2I,EAAyC,CAC7CC,IAAKH,EACLI,OAAQ,CACN,CACE5a,MAAO,IACPC,OAAQ,IACR4a,QAAS,IAEX,CACE7a,MAAO,IACPC,OAAQ,IACR4a,QAAS,IAEX,CACE7a,MAAO,IACPC,OAAQ,IACR4a,QAAS,IAEX,CACE7a,MAAO,IACPC,OAAQ,IACR4a,QAAS,IAEX,CACE7a,MAAO,IACPC,OAAQ,IACR4a,QAAS,IAEX,CACE7a,MAAO,IACPC,OAAQ,IACR4a,QAAS,IAEX,CACE7a,MAAO,IACPC,OAAQ,IACR4a,QAAS,IAEX,CACE7a,MAAO,IACPC,OAAQ,IACR4a,QAAS,MAITC,GAASC,EAAAA,EAAAA,GAAiBL,GAIhC,OACErX,EAAAA,EAAAA,KAAC60B,EAAgB,CACf,cAAanmB,EAAU,wBACvB/N,IAAKA,EACLiX,QAAQC,EAAAA,EAAAA,GAAeJ,GACvBE,MAAqB,YAAdwxB,EARc,mCACH,QAQlBzoC,IAAkB,QAAfw0B,EAAEzd,EAAO4d,IAAI,UAAE,IAAAH,OAAA,EAAbA,EAAe5d,KAG1B,E,sBC1EY8xB,EAAa,SAAbA,GAAa,OAAbA,EAAa,kBAAbA,EAAa,YAAbA,CAAa,MCEZvrC,GAAOtB,EAAAA,EAAAA,GAAO,MAAO,CAChC2Q,mBAAmBA,EAAAA,EAAAA,MADD3Q,EAEF,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAe,MAAQ,CAC1CU,OADkCX,EAAR+R,SACP9R,EAAMW,QAAQ,EAAG,EAAG,EAAG,GAAKX,EAAMW,QAAQ,EAAG,EAAG,GACnEI,QAAS,OACTC,cAAe,MAChB,IAEY2rC,GAAiB9sC,EAAAA,EAAAA,GAAO,MAAPA,EAAc,iBAAO,CACjDI,MAAO,IACPc,QAAS,OACTC,cAAe,SACfC,WAAY,QACb,IAEY2rC,GAAc/sC,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAY,GAAQ,MAAQ,CACvDR,MAAO,IACPc,QAAS,OACTC,cAAe,SACfC,WAAY,SACZP,OAL+CD,EAALT,MAK5BW,QAAQ,EAAG,GAC1B,IAEYse,GAAQpf,EAAAA,EAAAA,GAAO,KAAPA,EAAa,SAAAiB,GAAA,IAAGd,EAAKc,EAALd,MAAK,MAAQ,CAChDqB,UAAWrB,EAAMW,QAAQ,GACzBL,MAAON,EAAMI,QAAQyU,KAAKC,QAC1BlT,WAAY5B,EAAM+E,WAAWgQ,eAC7BpF,WAAY,SACZH,UAAW,SACX3N,SAAU7B,EAAM+E,WAAWC,QAAQ,IACnC,UAAW,CACT1E,MAAON,EAAMI,QAAQmX,QAAQ6F,OAE/Brc,QAAS,cACTq4B,gBAAiB,EACjBD,gBAAiB,WACjB3iB,SAAU,SACX,IAEYq2B,GAAWhtC,EAAAA,EAAAA,GAAO,IAAPA,EAAY,SAAAuB,GAAA,IAAGpB,EAAKoB,EAALpB,MAAK,MAAQ,CAClDM,MAAON,EAAMI,QAAQyU,KAAKi4B,UAC1BjrC,SAAU7B,EAAM+E,WAAWC,QAAQ,IACnCtE,OAAQV,EAAMW,QAAQ,EAAG,EAAG,GAC7B,IAEYosC,GAAWltC,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACpCoB,WAAY,SACZF,QAAS,OACTC,cAAe,SACff,MAAO,MAGI+sC,GAAgBntC,EAAAA,EAAAA,GAAO,IAAPA,EAAuC,SAAA2B,GAAA,IAAGxB,EAAKwB,EAALxB,MAAKitC,EAAAzrC,EAAE0rC,YAAmB,MAAQ,CACvGvrC,eAAgB,OAChB,UAAW,CACTrB,WAHqF,IAAA2sC,GAAQA,EAGxEjtC,EAAMI,QAAQmX,QAAQ6F,MAAQ,QAEtD,IAEY+vB,GAAwBttC,EAAAA,EAAAA,GAAOuQ,EAAAA,EAAPvQ,EAA0C,SAAA2C,GAAA,IAAGxC,EAAKwC,EAALxC,MAAKotC,EAAA5qC,EAAE0qC,YAAAA,OAAW,IAAAE,GAAQA,EAAA,MAAQ,CAClH1sC,OAAQV,EAAMW,QAAQ,EAAG,EAAG,GAC5B,UAAW,CACTqO,WAAYk+B,EAAcltC,EAAMI,QAAQC,KAAO,QAElD,IAEYgtC,GAAextC,EAAAA,EAAAA,GAAO,MAAPA,EAA4C,SAAA0Q,GAAA,IAAGvQ,EAAKuQ,EAALvQ,MAAgB,MAAQ,CACjGC,MADyFsQ,EAATk8B,YAC3DC,EAAcY,QAAU,IAAM,IAEnD,UAAW,CACT7oC,aAAczE,EAAMW,QAAQ,GAC5Buc,UAAW,SACXwT,YAAa,UAEhB,IAEY6c,IAAe1tC,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAi9B,GAAQ,MAAQ,CACxD78B,MAAO,IACPS,OAFgDo8B,EAAL98B,MAE7BW,QAAQ,EAAG,EAAG,GAC7B,IAEY6sC,IAAU3tC,EAAAA,EAAAA,GAAO,IAAPA,EAA2B,SAAAid,GAAA,IAAG9c,EAAK8c,EAAL9c,MAAO8R,EAAQgL,EAARhL,SAAQ,MAAQ,CAC1EjQ,SAAU7B,EAAM+E,WAAWC,QAAQ8M,EAAW,GAAK,IACnDlQ,WAAY5B,EAAM+E,WAAWgQ,eAC7BzU,MAAON,EAAMI,QAAQyU,KAAKC,QAC1BtF,UAAWsC,EAAW,SAAW,OACjCnQ,eAAgBmQ,EAAW,YAAc,OACzClC,cAAekC,EAAW,YAAc,OACxC27B,oBAAqB37B,EAAW9R,EAAMW,QAAQ,GAAK,OACnD+sC,wBAAyB57B,EAAW,EAAI,OACxCpR,OAAQoR,EAAW9R,EAAMW,QAAQ,EAAG,EAAG,GAAK,EAC7C,IAEYgtC,IAAgB9tC,EAAAA,EAAAA,GAAO,MAAPA,EAAc,iBAAO,CAChDK,OAAQ,IACRD,MAAO,OACR,I,YChGY6f,GAAQ,QACR8tB,GAAW,WACXC,GAAO,OAEPC,GAAgB,gBAChBC,GAAgB,gBCsBhBC,GAA8C,SAACvkC,GAC1D,IAAQ5G,GAAkBC,EAAAA,GAAAA,KAAlBD,cACAmP,GAAchP,EAAAA,EAAAA,KAAdgP,UAGN8D,EAIErM,EAJFqM,QACAhE,EAGErI,EAHFqI,SAAQm8B,EAGNxkC,EAFFgjC,UAAa7xB,EAAGqzB,EAAHrzB,IAAKwD,EAAK6vB,EAAL7vB,MAAOD,EAAQ8vB,EAAR9vB,SAAU+vB,EAAQD,EAARC,SACnCC,EACE1kC,EADF0kC,oBAGF,OAAIr8B,GAEA7O,EAAAA,EAAAA,MAAC0qC,GAAa,CAAC,cAAa37B,ED7CF,oBC6C8B9O,SAAA,EACtDI,EAAAA,EAAAA,KAAC8qC,EAAAA,OAAM,CACLljC,KAAK,YACLmjC,UAAWH,QAAAA,EAAY,GACvB9vB,MAAOA,QAAAA,EAAS,GAChBD,SAAUA,EACVvD,IAAKA,IAENuzB,GACC7qC,EAAAA,EAAAA,KAAC0pC,EAAa,CACZE,aAAW,EACX,cAAal7B,EAAU67B,IACvBpqC,KAAM0qC,EAAoBjrC,UAE1BI,EAAAA,EAAAA,KAACkqC,GAAO,CACN17B,UAAQ,EACR,cAAaE,EDrDH,YCqDuB9O,SAEhCL,EAAc,cAGjB,SAMRI,EAAAA,EAAAA,MAAC0pC,EAAc,CACb,cAAa36B,ED1Ec,qBC2E3B8D,QAASA,EAAQ5S,SAAA,EAEjBI,EAAAA,EAAAA,KAAC0pC,EAAa,CACZ,cAAah7B,EAAU67B,IACvBpqC,KAAMmX,EAAI1X,UAEVI,EAAAA,EAAAA,KAAC+pC,EAAY,CAACZ,UAAWC,EAAcY,QAAQpqC,UAC7CI,EAAAA,EAAAA,KAACi1B,EAAY,CACXt0B,IAAKma,QAAAA,EAAS,GACd3D,MAAO0D,QAAAA,EAAY,GACnBsuB,UAAWC,EAAcY,QACzB,cAAat7B,EAAU87B,WAI7B7qC,EAAAA,EAAAA,MAAC8pC,EAAQ,CAAA7pC,SAAA,EACPI,EAAAA,EAAAA,KAAC0pC,EAAa,CACZE,aAAa,EACbzpC,KAAMmX,EACN,cAAa5I,EAAU67B,IAAM3qC,UAE7BI,EAAAA,EAAAA,KAAC2b,EAAK,CAAC,cAAajN,EAAU8N,IAAO5c,SAAEkb,OAEzC9a,EAAAA,EAAAA,KAACupC,EAAQ,CAAC,cAAa76B,EAAU47B,IAAU1qC,SAAEgrC,KAC7C5qC,EAAAA,EAAAA,KAAC6pC,EAAqB,CACpB,cAAan7B,EAAU+7B,IACvB/3B,QAAQ,WACRvS,KAAMmX,EAAI1X,SAETL,EAAc,aAIlBsrC,GACClrC,EAAAA,EAAAA,MAACsqC,GAAY,CAAC,cAAav7B,EDzGD,sBCyG+B9O,SAAA,EACvDI,EAAAA,EAAAA,KAACkqC,GAAO,CAAC17B,UAAU,EAAM5O,SAAEL,EAAc,gCACzCS,EAAAA,EAAAA,KAAC6pC,EAAqB,CACpB7iB,WAAS,EACTtU,QAAQ,WACR,cAAahE,ED7Gc,2BC8G3BvO,KAAM0qC,EAAoBjrC,SAEzBL,EAAc,yBAGjB,OAGV,ECjHayrC,GAAwC,SAAC7kC,GACpD,IAAQ5G,GAAkBC,EAAAA,GAAAA,KAAlBD,cACAmP,GAAchP,EAAAA,EAAAA,KAAdgP,UAGN8D,EAEErM,EAFFqM,QAAOm4B,EAELxkC,EADFgjC,UAAa7xB,EAAGqzB,EAAHrzB,IAAKwD,EAAK6vB,EAAL7vB,MAAOD,EAAQ8vB,EAAR9vB,SAAU+vB,EAAQD,EAARC,SAGrC,OACEjrC,EAAAA,EAAAA,MAAC2pC,EAAW,CACV,cAAa56B,EFnBW,kBEoBxB8D,QAASA,EAAQ5S,SAAA,EAEjBI,EAAAA,EAAAA,KAAC0pC,EAAa,CACZvpC,KAAMmX,EACN,cAAa5I,EAAU67B,IAAM3qC,UAE7BI,EAAAA,EAAAA,KAAC+pC,EAAY,CAACZ,UAAWC,EAAc6B,KAAKrrC,UAC1CI,EAAAA,EAAAA,KAACi1B,EAAY,CACXt0B,IAAKma,QAAAA,EAAS,GACd3D,MAAO0D,QAAAA,EAAY,GACnBsuB,UAAWC,EAAc6B,KACzB,cAAav8B,EAAU87B,WAI7B7qC,EAAAA,EAAAA,MAAC8pC,EAAQ,CAAA7pC,SAAA,EACPI,EAAAA,EAAAA,KAAC0pC,EAAa,CACZE,aAAW,EACXzpC,KAAMmX,EACN,cAAa5I,EAAU67B,IAAM3qC,UAE7BI,EAAAA,EAAAA,KAAC2b,EAAK,CAAC,cAAajN,EAAU8N,IAAO5c,SAAEkb,OAEzC9a,EAAAA,EAAAA,KAACupC,EAAQ,CAAC,cAAa76B,EAAU47B,IAAU1qC,SAAEgrC,KAC7C5qC,EAAAA,EAAAA,KAAC6pC,EAAqB,CACpB,cAAan7B,EAAU+7B,IACvB/3B,QAAQ,WACRvS,KAAMmX,EAAI1X,SAETL,EAAc,eAKzB,E,gDCxDa2rC,GAAa,SAAChjC,GACzB,GAAIA,aAAgBU,KAAM,CACxB,IAAMuiC,EAAMjjC,EAAKkjC,UACXC,EAAQnjC,EAAKojC,WACbC,EAAOrjC,EAAKsjC,cAElB,MAAO,GAAPnqC,OAAU8pC,EAAG,KAAA9pC,OAAIgqC,EAAQ,EAAC,KAAAhqC,OAAIkqC,EAChC,CAGF,ECNaE,GAAiB,SAACC,EAAqBC,GAClD,IAAMxC,EAAYwC,EAAWxxB,MAAK,SAACyI,GAAC,OAAKA,EAAE8oB,YAAY/W,aAAe+W,CAAW,IAEjF,GAAKvC,UAAAA,EAAWyC,MACd,OAAO,KAGT,IAAMC,EAAOX,GAAW/B,EAAUyC,MAAMC,MAClCC,EAAKZ,GAAW/B,EAAUyC,MAAME,IAEtC,OAAKD,GAASC,EAIP,GAAPzqC,OAAUwqC,EAAI,OAAAxqC,OAAMyqC,GAHX,IAIX,E,wBCdMC,IAA8BxvC,EAAAA,EAAAA,GAAOgB,EAAAA,EAAPhB,CAAY,CAC9Ca,OAAQ,OAER,QAAS,CACPA,OAAQ,UAIN4uC,IAAkCzvC,EAAAA,EAAAA,GAAO0vC,GAAAA,EAAP1vC,EAAiB,SAAAE,GAAQ,MAAQ,CACvEW,OAD+DX,EAALC,MAC5CW,QAAQ,EAAG,OAAQ,GAClC,IAEK6uC,IAAgC3vC,EAAAA,EAAAA,GAAO0vC,GAAAA,EAAP1vC,CAAiB,CACrDwB,UAAW,KAGAouC,GAA0B,WACrC,IAAM3oB,GAAaC,EAAAA,GAAAA,KACX/U,GAAchP,EAAAA,EAAAA,KAAdgP,UAER,OACE/O,EAAAA,EAAAA,MAACosC,GAA2B,CAAC,cAAar9B,EAAU,6BAA6B9O,SAAA,EAC/EI,EAAAA,EAAAA,KAACisC,GAAAA,EAAQ,CACPG,UAAU,OACV15B,QAAQ,OACR/V,MAAO,OAETqD,EAAAA,EAAAA,KAACgsC,GAA+B,CAC9BI,UAAU,OACV15B,QAAQ,OACR/V,MAAO,OAETqD,EAAAA,EAAAA,KAACisC,GAAAA,EAAQ,CACP,cAAav9B,EAAU,qCACvB09B,UAAU,OACV15B,QAAQ,cACR/V,MAAO,IACPC,OAAQ4mB,EAAa,IAAM,OAE7BxjB,EAAAA,EAAAA,KAACksC,GAA6B,CAC5BE,UAAU,OACV15B,QAAQ,OACR/V,MAAO,OAIf,EC9CM0vC,IAA+B9vC,EAAAA,EAAAA,GAAOgB,EAAAA,EAAPhB,EAAY,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,MAAQ,CAC/D4vC,gBAAiB,EACjBlvC,OAAQV,EAAMW,QAAQ,EAAG,OAAQ,GACjCkvC,aAAc7vC,EAAMW,QAAQ,GAE5B,QAAS,CACPD,OAAQ,QAEX,IAEKovC,IAAmCjwC,EAAAA,EAAAA,GAAO0vC,GAAAA,EAAP1vC,EAAiB,SAAAY,GAAQ,MAAQ,CACxEC,OADgED,EAALT,MAC7CW,QAAQ,EAAG,OAAQ,GAClC,IAEKovC,IAAkClwC,EAAAA,EAAAA,GAAO0vC,GAAAA,EAAP1vC,EAAiB,SAAAiB,GAAQ,MAAQ,CACvEO,UAD+DP,EAALd,MACzCW,QAAQ,GAC1B,IAEKqvC,IAAiCnwC,EAAAA,EAAAA,GAAO0vC,GAAAA,EAAP1vC,EAAiB,SAAAuB,GAAQ,MAAQ,CACtEC,UAD8DD,EAALpB,MACxCW,QAAQ,GAC1B,IAEYsvC,GAA2B,WACtC,IAAMnpB,GAAaC,EAAAA,GAAAA,KACX/U,GAAchP,EAAAA,EAAAA,KAAdgP,UAER,OACE/O,EAAAA,EAAAA,MAAC0sC,GAA4B,CAAC,cAAa39B,EAAU,8BAA8B9O,SAAA,EACjFI,EAAAA,EAAAA,KAACisC,GAAAA,EAAQ,CACPG,UAAU,OACV15B,QAAQ,OACR/V,MAAO,IACPC,OAAQ,MAEVoD,EAAAA,EAAAA,KAACwsC,GAAgC,CAC/BJ,UAAU,OACV15B,QAAQ,OACR/V,MAAO,IACPC,OAAQ,MAEVoD,EAAAA,EAAAA,KAACysC,GAA+B,CAC9BL,UAAU,OACV15B,QAAQ,cACR/V,MAAO,IACP,cAAa+R,EAAU,sCACvB9R,OAAQ4mB,EAAa,IAAM,OAE7BxjB,EAAAA,EAAAA,KAAC0sC,GAA8B,CAC7BN,UAAU,OACV15B,QAAQ,OACR/V,MAAO,GACPC,OAAQ,OAIhB,E,ykBC7CO,IAAMgwC,GAAiB,WAAM,IAAAC,EAAAC,EAClCC,GAAkCC,EAAAA,GAAAA,MAA1BrB,EAAUoB,EAAVpB,WAAYsB,EAASF,EAATE,UACZjzB,GAAU2hB,EAAAA,GAAAA,MAAV3hB,MACFxL,GAAWC,EAAAA,GAAAA,KACTC,GAAchP,EAAAA,EAAAA,KAAdgP,UAEFw+B,GAAoBtiC,EAAAA,EAAAA,cAAY,WACpCuV,EAAAA,GAAoBgtB,GAAAA,GACtB,GAAG,IAEH,GAAIF,EACF,OAAOz+B,GAAWxO,EAAAA,EAAAA,KAACmsC,GAAuB,KAAMnsC,EAAAA,EAAAA,KAAC2sC,GAAwB,IAG3E,GAAqB,IAAjB3yB,EAAM5U,OACR,OAAO,KAGT,IAAMgoC,EAAOpzB,EAAMG,MAAK,SAACyI,GAAC,MAAoB,cAAfA,EAAEvI,QAAwB,IACnDgzB,EAAmBD,aAAI,EAAJA,EAAMxtC,SAASua,MAAK,SAACyI,GAAC,MAAoB,4BAAfA,EAAEvI,QAAsC,IACtFizB,EAAgBF,aAAI,EAAJA,EAAMxtC,SAASua,MAAK,SAACyI,GAAC,MAAoB,yBAAfA,EAAEvI,QAAmC,IAChFkzB,EAAuBhuB,SAC1B/Q,IAAY8+B,aAAa,EAAbA,EAAe3wB,KAAM2wB,EAAczyB,UAAYyyB,EAAcxyB,OAASwyB,EAAch2B,KAE7FuzB,EAAsBuC,aAAI,EAAJA,EAAMxtC,SAASua,MAAK,SAACyI,GAAC,MAAoB,eAAfA,EAAEvI,QAAyB,IAElF,OAAKgzB,SAAAA,EAAkB1wB,IAAO0wB,EAAiBxyB,UAAawyB,EAAiBvyB,OAAUuyB,EAAiB/1B,KAKtG3X,EAAAA,EAAAA,MAAC9B,EAAI,CACH2Q,SAAUA,EACV,cAAaE,EAAU,mBAAmB9O,SAAA,EAE1CI,EAAAA,EAAAA,KAAC0qC,GAAgB,CACfvB,UAASjpC,GAAAA,GAAA,GAAOmtC,GAAgB,IAAEzC,SAAUa,GAAe4B,EAAiB1wB,GAAIgvB,KAChFn9B,SAAUA,EACVq8B,oBAA6C,QAA1BgC,EAAEhC,aAAmB,EAAnBA,EAAqBvzB,WAAG,IAAAu1B,EAAAA,EAAI,GACjDr6B,QAAS06B,IAGVK,GAAwBD,GACvBttC,EAAAA,EAAAA,KAACgrC,GAAa,CACZ7B,UAASjpC,GAAAA,GAAA,GAAOotC,GAAa,IAAE1C,SAAUa,GAA+B,QAAjBqB,EAACQ,EAAc3wB,UAAE,IAAAmwB,EAAAA,EAAI,GAAInB,KAChFn5B,QAAS06B,IAET,QApBC,IAuBX,E,wBC9DMM,IAAgCjxC,EAAAA,EAAAA,GAAOgB,EAAAA,EAAPhB,EAAY,SAAAE,GAAQ,MAAQ,CAChEsB,UADwDtB,EAALC,MAClCW,QAAQ,GAC1B,IAEKowC,IAAkClxC,EAAAA,EAAAA,GAAO0vC,GAAAA,EAAP1vC,EAAiB,SAAAY,GAAA,IAAGT,EAAKS,EAALT,MAAK,MAAQ,CACvEU,OAAQV,EAAMW,QAAQ,EAAG,EAAG,EAAG,GAC/ByQ,WAAYpR,EAAMW,QAAQ,GAC3B,IAKYqwC,GAA4B,WACvC,IAAMC,EAAWC,KAAKC,OAAOxjC,OAAO2uB,YAJA,KACd,IAIdtqB,GAAchP,EAAAA,EAAAA,KAAdgP,UAGFo/B,EAFQxoC,MAAMumC,KAAK,CAAEzmC,OAAQuoC,IAAY,SAACp9B,EAASsV,GAAK,OAAKA,CAAK,IAEzClL,KAAI,SAACozB,GAAI,OACtC/tC,EAAAA,EAAAA,KAACytC,GAA+B,CAE9B7wC,OAAQ,GACRwvC,UAAU,OACV15B,QAAQ,eAAa,uBAAArR,OAHO0sC,GAI5B,IAGJ,OACE/tC,EAAAA,EAAAA,KAACwtC,GAA6B,CAAC,cAAa9+B,EAAU,qCAAqC9O,SACxFkuC,GAGP,EC/BME,IAA0BzxC,EAAAA,EAAAA,GAAOgB,EAAAA,EAAPhB,EAAY,SAAAE,GAAQ,MAAQ,CAC1DsB,UADkDtB,EAALC,MAC5BW,QAAQ,GAC1B,IAEK4wC,IAA4B1xC,EAAAA,EAAAA,GAAO0vC,GAAAA,EAAP1vC,EAAiB,SAAAY,GAAQ,MAAQ,CACjEC,OADyDD,EAALT,MACtCW,QAAQ,EAAG,EAAG,EAAG,IAChC,IAKY6wC,GAA6B,WACxC,IAAMC,EAAQ7oC,MAAMumC,KAAK,CAAEzmC,OAJH,KAIgC,SAACmL,EAASsV,GAAK,OAAKA,CAAK,IACzEnX,GAAchP,EAAAA,EAAAA,KAAdgP,UAEFo/B,EAAmBK,EAAMxzB,KAAI,SAACozB,GAAI,OACtC/tC,EAAAA,EAAAA,KAACiuC,GAAyB,CAExBrxC,OAT0B,GAU1BwvC,UAAU,OACV15B,QAAQ,eAAa,uBAAArR,OAHO0sC,GAI5B,IAGJ,OACE/tC,EAAAA,EAAAA,KAACguC,GAAuB,CAAC,cAAat/B,EAAU,8BAA8B9O,SAC3EkuC,GAGP,ECpBMM,IAAwB7xC,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,OAAAgJ,EAAAA,EAAAA,GAAA,GACjDhJ,EAAM6Q,YAAYC,GAAG,MAAQ,CAC5B/P,QAAS,OACTd,MAAO,OACR,IAGG0xC,IAAuB9xC,EAAAA,EAAAA,IdVkC,SAAA4J,GAAU,IAAAyZ,EAAAsC,EAAAC,EAAAmsB,EAAAC,EAAAC,EACvEttB,GAA2C9Z,EAAAA,EAAAA,KAAnCJ,EAAqBka,EAArBla,sBAAuBH,EAAAqa,EAAAra,QAE/B,IAAKG,EACH,OAAO,KAGT,IAAAvK,EAAkE,QAAlEmjB,EAA8C/Y,aAAO,EAAPA,EAAS2Y,mBAAW,IAAAI,EAAAA,EAAI,CAAC,EAA/DC,EAAOpjB,EAAPojB,QAAS4uB,EAAYhyC,EAAZgyC,aAAchsB,EAAAhmB,EAAAgmB,WAC/BtlB,EAAsD0iB,QAAAA,EAAW,CAAC,EAA1DxgB,EAAQlC,EAARkC,SAAUsI,EAAQxK,EAARwK,SAAUyP,EAAIja,EAAJia,KAAMmxB,EAAAprC,EAAAorC,gBAC1B7gC,GAAoB6gC,QAAAA,EAAmB,CAAC,GAAxC7gC,gBACR5J,EACoD,QADpDokB,EACErb,SAAoB,QAAbsb,EAAPtb,EAAS4Y,mBAAW,IAAA0C,GAAe,QAAfA,EAApBA,EAAsBK,qBAAa,IAAAL,OAAA,EAAnCA,EAAqCvN,qBAAa,IAAAsN,EAAAA,EAAI,CAAC,EADjD9Z,EAAsBtK,EAAtBsK,uBAAiCsmC,EAAA5wC,EAAT6wC,QAE1BtmC,EAAmBoa,aAAU,EAAVA,EAAYtI,MAAM,SAAAuI,GAAI,OAAKA,aAAI,EAAJA,EAAMC,SAAS,IAChDisB,EAAqBF,EAAhC5uC,UAGR5B,EACwD,QADxDowC,EACEznC,SAAoB,QAAb0nC,EAAP1nC,EAAS4Y,mBAAW,IAAA8uB,OAAA,EAApBA,EAAsBpvC,wCAAgC,IAAAmvC,EAAAA,EAAI,CAAC,EAD5CO,EAAuB3wC,EAAhCywC,QAAkCG,EAAA5wC,EAAA4wC,aAEvBC,EAAWF,EAAtB/uC,UAIF0oC,GAAY/gC,EAAAA,EAAAA,GAAiBC,EAAiBC,EAAUH,EAAAA,GAAkBwnC,OAC1EvG,GAAYhhC,EAAAA,EAAAA,GAAiBC,EAAiBC,EAAUH,EAAAA,GAAkBynC,aAEhF,OACEjvC,EAAAA,EAAAA,KAACqG,EAAAA,EAAgB,CAAAzG,UACfI,EAAAA,EAAAA,KAACsoC,EAAWpoC,EAAAA,EAAA,GACNiG,GAAK,IACT9G,SAAUA,EACVkpC,gBAAiBA,EACjBC,UAAWA,EACXC,UAAWA,EACXhqC,oBAAoBwJ,EAAAA,EAAAA,GAAmC,CACrDG,uBAAAA,EACAC,iBAAAA,IAEFjJ,2BAA4B,CAC1BS,YAAauI,EACbtI,WAAWiJ,EAAAA,EAAAA,GAAyB6lC,EAAgB1uC,EAAAA,EAAA,GAC9CmI,EAAmB,CAAE6mC,WAAY7mC,EAAiB8mC,QAAW,CAAC,GAC9D/3B,GAAQ,CAAEg4B,UAAWh4B,MAG7BjY,iCAAkC,CAChCU,YAAaivC,EACbhvC,WAAWiJ,EAAAA,EAAAA,GAAyBgmC,EAAM7uC,EAAA,GACpCuuC,GAAgBA,EAAarpC,QAAU,EAAI,CAAEiqC,aAA6B,QAAjBb,EAAEC,EAAa,UAAE,IAAAD,OAAA,EAAfA,EAAiBc,eAAkB,CAAC,SAM/G,Gc3C6B/yC,EAAuB,SAAAiB,GAAQA,EAALd,MAAK,MAAQ,CAClE+P,WAAY,OACZ1O,UAAW,OACZ,IAEKwxC,IAAkBvhC,EAAAA,EAAAA,OAAKC,iBAAA,MAAa,CACxCgG,eAAgB,+BAAqCu7B,YACtD,IACKC,IAAsBzhC,EAAAA,EAAAA,OAAKC,iBAAA,MAAa,CAC5CgG,eAAgB,+BAA6Cy7B,gBAC9D,IAEKA,IAA8CptC,EAAAA,EAAAA,OAAK,SAAAxE,GAAA,IAAG0Q,EAAQ1Q,EAAR0Q,SAAQ,OAClExO,EAAAA,EAAAA,KAACsP,EAAAA,SAAQ,CAACpB,SAAUM,GAAWxO,EAAAA,EAAAA,KAAC0tC,GAAyB,KAAM1tC,EAAAA,EAAAA,KAACkuC,GAA0B,IAAItuC,UAC5FI,EAAAA,EAAAA,KAACyvC,GAAmB,KACX,IAOAz4B,GAAoB,SAAH9Y,GAAmD,IAA7CyxC,EAAczxC,EAAdyxC,eAC5BnhC,GAAWC,EAAAA,GAAAA,KACTmhC,GAAeC,EAAAA,GAAAA,MAAfD,WACA35B,GAAYD,EAAAA,GAAAA,MAAZC,QACR/W,EAAyB0wC,QAAAA,EAAc,CAAC,EAAhCv1B,EAAQnb,EAARmb,SAAUsC,EAAEzd,EAAFyd,GACVjO,GAAchP,EAAAA,EAAAA,KAAdgP,UAEFohC,EACSz1B,IAAaC,EAAAA,IAA0Cy1B,UADhED,EAEQz1B,IAAaC,EAAAA,IAA0C01B,SAF/DF,EAIwB,gBAAbz1B,EAGjB,OACEra,EAAAA,EAAAA,KAACouC,GAAqB,CACpBp+B,IAAK2/B,EACL,cAAajhC,EAAU,4BAA4B9O,SAElDqW,GACCjW,EAAAA,EAAAA,KAACquC,GAAoB,KAErB1uC,EAAAA,EAAAA,MAAA6oB,EAAAA,SAAA,CAAA5oB,SAAA,CACGkwC,GAAyB9vC,EAAAA,EAAAA,KAAC4sC,GAAU,IAAM,KAC1CkD,GAAyBnzB,GACxB3c,EAAAA,EAAAA,KAAC0vC,GAAe,CACdlhC,SAAUA,EACV,cAAaE,EAAU,sBAEvB,MACJ1O,EAAAA,EAAAA,KAACsP,EAAAA,SAAQ,CAAA1P,SAAEkwC,GAA2B9vC,EAAAA,EAAAA,KAACuvC,GAAe,IAAM,WAKtE,C,sJCzEMU,GAAuC1zC,EAAAA,EAAAA,GAAO0vC,EAAAA,EAAP1vC,EAAiB,SAAAE,GAAQ,MAAQ,CAC5EW,OADoEX,EAALC,MACjDW,QAAQ,EAAG,EAAG,GAC5B6E,SAAU,MACX,IAEKguC,GAA4C3zC,EAAAA,EAAAA,GAAO0vC,EAAAA,EAAP1vC,EAAiB,SAAAY,GAAQ,MAAQ,CACjFC,OADyED,EAALT,MACtDW,QAAQ,EAAG,EAAG,GAC5B6E,SAAU,MACX,IAIYiuC,EAA+B,WAC1C,IAAMxC,EAAWC,KAAKC,MAAMxjC,OAAO2uB,YAHb,IAIhBmV,EAAQ7oC,MAAMumC,KAAK,CAAEzmC,OAAQuoC,IAAY,SAACp9B,EAASsV,GAAK,OAAKA,CAAK,IAChEnX,GAAchP,EAAAA,EAAAA,KAAdgP,UAEFo/B,EAAmBK,EAAMxzB,KAAI,SAACozB,GAAI,OACtC/tC,EAAAA,EAAAA,KAACiwC,EAAoC,CAEnCrzC,OAAQ,GACRwvC,UAAU,OACV15B,QAAQ,eAAa,qBAAArR,OAHK0sC,GAI1B,IAGJ,OACEpuC,EAAAA,EAAAA,MAACpC,EAAAA,EAAG,CAAC,cAAamR,EAAU,iCAAiC9O,SAAA,EAC3DI,EAAAA,EAAAA,KAACiwC,EAAoC,CAEnCrzC,OAAQ,GACRwvC,UAAU,OACV15B,QAAQ,eAHJ,4BAMLo7B,GAED9tC,EAAAA,EAAAA,KAACkwC,EAAyC,CAExCtzC,OAAQ,IACRwvC,UAAU,OACV15B,QAAQ,eAHJ,6BAOZ,E,mBC5CM09B,GAAoB7zC,EAAAA,EAAAA,GAAOgB,EAAAA,EAAPhB,EAAY,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,MAAQ,CACpD2zC,YAAa,aAAFhvC,OAAe3E,EAAMI,QAAQC,KAAK,MAC7CU,QAAS,OACTC,cAAe,SACfkE,QAASlF,EAAMW,QAAQ,EAAG,GAC3B,IAIYizC,EAAgC,WAC3C,IAAQ5hC,GAAchP,EAAAA,EAAAA,KAAdgP,UAER,OACE1O,EAAAA,EAAAA,KAACzC,EAAAA,EAAG,CACF,cAAamR,EAAU,yBACvB3O,GAAI,CAAEwB,SAAU,WAAY5E,MAAO,QAASiD,UAE5CI,EAAAA,EAAAA,KAACowC,EAAiB,CAAAxwC,SACf2wC,IAXgB,IAWQ,SAAC1qB,GAAK,OAC7B7lB,EAAAA,EAAAA,KAACisC,EAAAA,EAAQ,CAEPG,UAAU,OACVxvC,OAAQ,IAAG,mBAAAyE,OAFawkB,GAGxB,OAKZ,EC1BM2qB,GAAmCxiC,EAAAA,EAAAA,OAAKC,iBAAA,OAAY,8BAAiB,IAE9D8I,EAAsB,WACjC,IAAMvI,GAAWC,EAAAA,EAAAA,KAEjB,OACEzO,EAAAA,EAAAA,KAACsP,EAAAA,SAAQ,CAACpB,SAAUM,GAAWxO,EAAAA,EAAAA,KAACmwC,EAA4B,KAAMnwC,EAAAA,EAAAA,KAACswC,EAA6B,IAAI1wC,UAClGI,EAAAA,EAAAA,KAACwwC,EAAgC,KAGvC,EAEA,S,0FClBO,IAAMC,EAAkB,CAAC,kBAAmB,qBAEtCtD,EAAyB,CAAC,kBAAmB,qBAE7C/sB,EAAoB,CAAC,iBAAkB,kBAEvCswB,EAAuB,CAAC,eAAgB,qBAExC5hB,EAAe,CAAC,eAAgB,YAEhC/E,EAAsB,CAAC,iBAAkB,kBAEzCkC,EAA0B,CAAC,gBAAiB,6B,mCCZlD,IAAM6E,EAAY,I,2FCYZ6f,EAAmD,CAC9DhF,WAAY,GACZsB,WAAW,GAGA2D,GAAoBhqC,EAAAA,EAAAA,eAAc+pC,GAEvCzmC,EAAa0mC,EAAb1mC,SAEK60B,EAA4C,SAAHtiC,GAAqB,IAAfmD,EAAQnD,EAARmD,SAClDkE,GAAWwQ,EAAAA,EAAAA,MAAXxQ,OACR+sC,GAAwBC,EAAAA,EAAAA,KAAuBhtC,GAAvC+M,EAAIggC,EAAJhgC,KAAM9K,EAAK8qC,EAAL9qC,MAERD,GAAQ4E,EAAAA,EAAAA,UACZ,eAAAqmC,EAAA,MAAO,CAAEpF,WAA4B,QAAlBoF,EAAElgC,aAAI,EAAJA,EAAMka,kBAAU,IAAAgmB,EAAAA,EAAI,GAAI9D,eAAoB/jC,IAAT2H,QAAgC3H,IAAVnD,EAAqB,GACnG,CAAC8K,EAAM9K,IAGT,OAAO/F,EAAAA,EAAAA,KAACkK,EAAQ,CAACpE,MAAOA,EAAMlG,SAAEA,GAClC,EAEaotC,EAAgB,WAAH,OAAS3lC,EAAAA,EAAAA,YAAWupC,EAAkB,C,qEC5BnDI,EAAqD,CAChEztC,gBAAiB,GACjBC,WAAYC,EAAAA,GACZE,aAAc,GACdD,WAAY,GACZE,YAAa,GACb2Q,mBAAoB,GACpB08B,UAAW,GACXC,YAAa,GACbC,cAAe,GACfttC,aAAc,GACdC,OAAQ,IAGG+Z,GAAuBjX,EAAAA,EAAAA,eAAcoqC,GAEzBlzB,EAA0BD,EAApC3T,SAEFoK,EAAmB,WAAH,OAASjN,EAAAA,EAAAA,YAAWwW,EAAqB,C,4DCnB/D/F,GAIHC,E,SAAAA,GAA6BC,EAAAA,IAAsC6mB,YAF5CV,GADgBrmB,EAAzCK,uBAC2CL,EAA3CM,yBACoBijB,EAAavjB,EAAjCQ,kB,uGCOW84B,GAAoBxqC,EAAAA,EAAAA,oBAA6CsC,GAEtEgB,EAAaknC,EAAblnC,SAEKozB,EAA4C,SAAH7gC,GAAqB,IAAfmD,EAAQnD,EAARmD,SAC1D8P,GAAoCC,EAAAA,EAAAA,UAAqB,MAAKC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAvDkgC,EAAUhgC,EAAA,GAAEyhC,EAAazhC,EAAA,GACxBsG,GAAeF,EAAAA,EAAAA,MAAfE,WACF1H,GAAWC,EAAAA,EAAAA,KACX6iC,GAAmB1mC,EAAAA,EAAAA,cACvB,SAACwiC,GACCl3B,GAAW,GAETm7B,EADE7iC,GAAYohC,IAAexC,EACf,KAEAA,EAElB,GACA,CAACwC,EAAYphC,EAAU0H,IAEnBpQ,GAAQ4E,EAAAA,EAAAA,UAAQ,iBAAO,CAAEklC,WAAAA,EAAY0B,iBAAAA,EAAkB,GAAG,CAAC1B,EAAY0B,IAE7E,OAAOtxC,EAAAA,EAAAA,KAACkK,EAAQ,CAACpE,MAAOA,EAAMlG,SAAEA,GAClC,EAEaiwC,EAAgB,WAC3B,IAAMliC,GAAUtG,EAAAA,EAAAA,YAAW+pC,GAC3B,GAAIzjC,EACF,OAAOA,EAET,MAAM,IAAIC,MAAM,iEAClB,C,4DCxCOkK,GAIHC,E,SAAAA,GAA6BC,EAAAA,IAAsCu5B,kBAF5CnT,GADsBtmB,EAA/CK,uBACiDL,EAAjDM,yBACoBojB,EAAmB1jB,EAAvCQ,kB,kFCAWP,EAA+B,SAAkDnQ,GAC5F,IAAMuQ,GAAyBvR,EAAAA,EAAAA,oBAAkDsC,GACzEgB,EAAaiO,EAAbjO,SACFkO,EAAiD,SAAH3b,GAAqB,IAAfmD,EAAQnD,EAARmD,SACxD8P,GAA0BC,EAAAA,EAAAA,UAA0C,IAAGC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAhEsK,EAAKpK,EAAA,GAAE4hC,EAAQ5hC,EAAA,GAChB4uB,GAAuBC,EAAAA,EAAAA,KACvBnD,GAAQ1wB,EAAAA,EAAAA,cAAY,WAExB4zB,EAAqB52B,GAAMge,KAAK4rB,GAAU1rB,MAAM5f,QAAQH,MAC1D,GAAG,CAACy4B,IACE14B,GAAQ4E,EAAAA,EAAAA,UAAQ,iBAAO,CAAEsP,MAAAA,EAAOshB,MAAAA,EAAO,GAAG,CAACA,EAAOthB,IAExD,OAAOha,EAAAA,EAAAA,KAACkK,EAAQ,CAACpE,MAAOA,EAAMlG,SAAEA,GAClC,EACAwY,EAAwBq5B,YAAc,GAAHpwC,OAAMuG,EAAI,YAS7C,MAAO,CAAEuQ,uBAAAA,EAAwBC,wBAAAA,EAAyBE,mBAR/B,WACzB,IAAM3K,GAAUtG,EAAAA,EAAAA,YAAW8Q,GAC3B,GAAIxK,EACF,OAAOA,EAET,MAAM,IAAIC,MAAM,MAADvM,OAAOuG,EAAI,2BAAAvG,OAA0BuG,EAAI,YAC1D,EAGF,C,iFCvBa8pC,GAAoB9qC,EAAAA,EAAAA,oBAA6CsC,GAEtEgB,EAAawnC,EAAbxnC,SAEKkzB,EAA4C,SAAH3gC,GAAqB,IAAfmD,EAAQnD,EAARmD,SAC1D8P,GAA8BC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAtCuG,EAAOrG,EAAA,GAAEsG,EAAUtG,EAAA,GACpB9J,GAAQ4E,EAAAA,EAAAA,UAAQ,iBAAO,CAAEuL,QAAAA,EAASC,WAAAA,EAAY,GAAG,CAACD,EAASC,IAEjE,OAAOlW,EAAAA,EAAAA,KAACkK,EAAQ,CAACpE,MAAOA,EAAMlG,SAAEA,GAClC,EAEaoW,EAAgB,WAC3B,IAAMrI,GAAUtG,EAAAA,EAAAA,YAAWqqC,GAC3B,GAAI/jC,EACF,OAAOA,EAET,MAAM,IAAIC,MAAM,iEAClB,C,2HCFa+jC,GAAqB/qC,EAAAA,EAAAA,oBAA8CsC,GAExEgB,EAAaynC,EAAbznC,SAEKmzB,EAA6C,SAAH5gC,GAAqB,IAAfmD,EAAQnD,EAARmD,SAC3D8P,GAAkCC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA1Cue,EAASre,EAAA,GAAEgiC,EAAYhiC,EAAA,GAC9ByU,GAAkC1U,EAAAA,EAAAA,WAAS,GAAM2U,GAAAzU,EAAAA,EAAAA,GAAAwU,EAAA,GAA1C7L,EAAS8L,EAAA,GAAEutB,EAAYvtB,EAAA,GAC9BE,GAA8B7U,EAAAA,EAAAA,eAA4CzG,GAAUub,GAAA5U,EAAAA,EAAAA,GAAA2U,EAAA,GAA7EwP,EAAOvP,EAAA,GAAEqtB,EAAUrtB,EAAA,GAC1BG,GAAkCjV,EAAAA,EAAAA,UAAS,GAAEkV,GAAAhV,EAAAA,EAAAA,GAAA+U,EAAA,GAAtC8N,EAAS7N,EAAA,GAAEktB,EAAYltB,EAAA,GAC9BG,GAA0BrV,EAAAA,EAAAA,UAAS,IAAGsV,GAAApV,EAAAA,EAAAA,GAAAmV,EAAA,GAA/Blf,EAAKmf,EAAA,GAAEoJ,EAAQpJ,EAAA,GAChBkJ,GAAOvjB,EAAAA,EAAAA,cAAY,kBAAMgnC,GAAa,EAAM,GAAE,IAC9C1jB,GAAQtjB,EAAAA,EAAAA,cAAY,kBAAMgnC,GAAa,EAAK,GAAE,IAC9C7kB,GAAOniB,EAAAA,EAAAA,cAAY,kBAAMinC,GAAa,EAAM,GAAE,IAC9CnvB,GAAO9X,EAAAA,EAAAA,cAAY,kBAAMinC,GAAa,EAAK,GAAE,IAC3CtuC,GAAoB+Q,EAAAA,EAAAA,MAApB/Q,gBACF6qB,GAAexjB,EAAAA,EAAAA,cAAY,kBAAMknC,OAAW5oC,EAAU,GAAE,IACxDsjB,GAAS5hB,EAAAA,EAAAA,cACb,SAAC0T,GACC,IAAMhH,EAAM,IAAI+oB,IAAI,GAADh/B,OAAIgJ,OAAOC,SAASuzB,OAAM,8CAC7CvmB,EAAIglB,aAAawE,IAAI,IAAKxiB,GAC1BoH,EAAAA,QACGpI,IAA2BhG,EAAIqd,WAAY,CAC1CpW,SAAO7Y,EAAAA,EAAAA,GAAA,GACJssC,EAAAA,GAAkBzuC,KAGtBqiB,MAAK,SAAAzoB,GAAc,IAAX0T,EAAI1T,EAAJ0T,KACPihC,EAAWjhC,GACXkhC,EAAanpC,KAAKgqB,MACpB,IAEC9M,MAAM5f,QAAQH,MACnB,GACA,CAACxC,IAEGoK,GAAUjD,EAAAA,EAAAA,UACd,iBAAO,CACLyjB,KAAAA,EACAC,aAAAA,EACAF,MAAAA,EACAnB,KAAAA,EACAkB,UAAAA,EACAzV,UAAAA,EACAwb,QAAAA,EACAxH,OAAAA,EACA6B,SAAAA,EACA3L,KAAAA,EACAgQ,UAAAA,EACA5sB,MAAAA,EACD,GACD,CAACqoB,EAAMC,EAAcF,EAAOnB,EAAMkB,EAAWzV,EAAWwb,EAASxH,EAAQ6B,EAAU3L,EAAMgQ,EAAW5sB,IAGtG,OAAO9F,EAAAA,EAAAA,KAACkK,EAAQ,CAACpE,MAAO6H,EAAQ/N,SAAEA,GACpC,EAEaktB,EAAiB,WAC5B,IAAMnf,GAAUtG,EAAAA,EAAAA,YAAWsqC,GAC3B,GAAIhkC,EACF,OAAOA,EAET,MAAM,IAAIC,MAAM,4DAClB,C,4DCjFOkK,GAIHC,E,SAAAA,GAA6BC,EAAAA,IAAsCi6B,aAF5CnT,GADiBhnB,EAA1CK,uBAC4CL,EAA5CM,yBACoBujB,EAAc7jB,EAAlCQ,kB,2FCWWmmB,EAA0B,WAGrC,IAAApqB,GAAoCC,EAAAA,EAAAA,MAA5BxQ,EAAMuQ,EAANvQ,OAAQP,EAAe8Q,EAAf9Q,gBACV6zB,GAAkB8a,EAAAA,EAAAA,OAClBC,GAAkBC,EAAAA,EAAAA,OAChBxhC,GAAoBD,EAAAA,EAAAA,KAApBC,gBACApN,GAAemN,EAAAA,EAAAA,KAAfnN,WAER,OAAOoH,EAAAA,EAAAA,cACLqD,eAAOokC,GACL,IAAMC,EAAkE,CACtEC,iBAAiB,EACjB19B,KAAMtR,GAGR,IAAKqN,EAAiB,KAAA4hC,EACNC,SAAuBC,EAAAA,EAAAA,KACnCtb,EACA5zB,EAAWmxB,aAFL9jB,KAIRyhC,EAAeK,eAA0C,QAA5BH,EAAGC,EAAaG,oBAAY,IAAAJ,OAAA,EAAzBA,EAA2BG,eAC3DL,EAAeO,eAAiBJ,EAAaI,cAC/C,CASA,aAP2CC,EAAAA,EAAAA,KACzCX,EACAruC,EACAuuC,EACAC,IAJMzhC,KAOkBkiC,oBAC5B,GACA,CAACxvC,EAAiBC,EAAY4zB,EAAiBxmB,EAAiBuhC,EAAiBruC,GAErF,C,4DCnDa2f,EAAgB,WAG3B,OAFmBnP,EAAAA,EAAAA,MAAXxQ,SAEUgtB,EAAAA,CACpB,C,6DCJariB,EAAc,WACzB,IAAQ9R,GAAU4xB,EAAAA,EAAAA,KAAV5xB,MACA4Q,GAAgBjO,EAAAA,EAAAA,KAAhBiO,YAER,OAAiB,IAAV5Q,GAAeA,EAAQ4Q,EAAYjE,OAAO0pC,EACnD,C,iDCSaxzC,EAAiF,WAAH,OACzF8H,EAAAA,EAAAA,IAAmD,C,mCClB9C,IAAM2iB,EAAgB,qB,kDCAhB4O,EAAkB,SAACoa,EAA+BC,GAC7D,IAAKD,EACH,OAAO,KAGT,IAAME,EAAsBD,EAAaE,WAAW,sBAAuB,QAAQC,OAC7EC,EAAgB,IAAIC,OAAOJ,EAAqB,OAChDK,EAAYP,EAAeQ,MAAMH,GACjCI,EAAUJ,EAAcK,KAAKV,GAEnC,OAAKS,EAIEF,EAAU74B,KAAI,SAACi5B,EAAI/tB,GACxB,OAAIA,EAAQ6tB,EAAQtuC,OACXwuC,GAKPj0C,EAAAA,EAAAA,MAAA,QAAAC,SAAA,CACGg0C,GACD5zC,EAAAA,EAAAA,KAAA,UAAAJ,SAAS8zC,EAAQ7tB,OAAgB,GAAAxkB,OAFrBuyC,EAAE,KAAAvyC,OAAI4xC,EAAc,KAAA5xC,OAAIwkB,GAK1C,IAfSotB,CAgBX,C,qECxBIY,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOp3B,GAAI,+1BAwCtC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2BAA2B,MAAQ,GAAG,SAAW,gTAAgT,eAAiB,CAAC,60BAA60B,WAAa,MAE3uC,S","sources":["webpack://oritoparea/../../../../src/components/MenuItem/MenuItemPersonalLinks.tsx","webpack://oritoparea/../../../src/models/LiveStreamingStateWrapTestIds.ts","webpack://oritoparea/../../../../../src/components/common/LiveStreamingStateWrap/LiveStreamingStateWrap.tsx","webpack://oritoparea/../../../src/constants/app.ts","webpack://oritoparea/../../../src/constants/defaultTranslations.ts","webpack://oritoparea/../../../src/constants/index.ts","webpack://oritoparea/../../../src/containers/ErrorBoundary.ts","webpack://oritoparea/../../../src/containers/ComponentWrapper.tsx","webpack://oritoparea/../../../../src/contexts/PersonalBeautyStoreProvider/personalBeautyStoreContext.ts","webpack://oritoparea/../../../../src/contexts/PersonalBeautyStoreProvider/usePersonalBeautyStore.ts","webpack://oritoparea/../../../src/hooks/useTranslations.ts","webpack://oritoparea/../../../src/models/LiveStreamingStates.ts","webpack://oritoparea/../../../src/models/MenuItemTestIds.ts","webpack://oritoparea/../../../src/models/PbsCookieNames.ts","webpack://oritoparea/../../../src/models/TranslationKey.ts","webpack://oritoparea/../../../../src/models/graphql-types/graphql.ts","webpack://oritoparea/../../../src/utils/getContactByType.ts","webpack://oritoparea/../../../src/utils/getLiveStreamingStateByVideoConfig.ts","webpack://oritoparea/../../../src/utils/replacePlaceholdersInUrl.ts","webpack://oritoparea/../../src/event.ts","webpack://oritoparea/../../../src/contexts/loginContext.ts","webpack://oritoparea/../../../src/utils/goToPage.ts","webpack://oritoparea/../../../../src/components/LoginProvider/LoginProvider.tsx","webpack://oritoparea/../../../src/utils/openLoginSidebar.ts","webpack://oritoparea/./src/components/OrderOnBehalf/styles.ts","webpack://oritoparea/./src/components/TopArea/styles.ts","webpack://oritoparea/./src/context/navigation/activeMenuContext.tsx","webpack://oritoparea/./src/components/Account/AccountFlyout.tsx","webpack://oritoparea/./src/hooks/useHover.ts","webpack://oritoparea/./src/hooks/useCustomerInitials.ts","webpack://oritoparea/./src/components/UserSection.tsx","webpack://oritoparea/./src/components/BurgerMenu/BurgerMenuTab.tsx","webpack://oritoparea/./src/utils/vipOrderUrls.ts","webpack://oritoparea/./src/context/consultantContext.tsx","webpack://oritoparea/./src/hooks/useLazyPersonalMenu.tsx","webpack://oritoparea/./src/models/BurgerMenuTabNames.ts","webpack://oritoparea/./src/components/BurgerMenu/BurgerMenu.tsx","webpack://oritoparea/./src/constants/settings.ts","webpack://oritoparea/./src/components/Join/JoinTileImage.tsx","webpack://oritoparea/./src/context/navigation/joinTilesContext.ts","webpack://oritoparea/./src/components/Join/JoinMenu.tsx","webpack://oritoparea/../../../src/models/ReferralType.ts","webpack://oritoparea/../../../src/models/TooltipTestIds.ts","webpack://oritoparea/../../../src/components/FormattedMessage.tsx","webpack://oritoparea/../../../../src/components/Tooltip/Tooltip.tsx","webpack://oritoparea/../../../src/utils/formatUserName.ts","webpack://oritoparea/../../../../src/contexts/PersonalBeautyStoreProvider/useCookieStoreInfo.ts","webpack://oritoparea/../../../src/queries/inviteFriendQuery.ts","webpack://oritoparea/../../../src/contexts/ConfigurationProvider.ts","webpack://oritoparea/../../../../src/contexts/PersonalBeautyStoreProvider/useInviteFriendData.ts","webpack://oritoparea/../../../src/hooks/useSponsorPersonalBeautyStoreInfo.ts","webpack://oritoparea/../../../src/queries/beautyStoreQuery.ts","webpack://oritoparea/../../../../src/contexts/PersonalBeautyStoreProvider/usePersonalBeautyStoreData.ts","webpack://oritoparea/../../../../src/contexts/PersonalBeautyStoreProvider/usePersonalBeautyStoreUserInfo.ts","webpack://oritoparea/../../../src/containers/TooltipContainer.tsx","webpack://oritoparea/./src/utils/dispatchToggleMenu.ts","webpack://oritoparea/./src/hooks/useToggleMenu.ts","webpack://oritoparea/./src/components/BurgerMenu/BurgerMenuIcon.tsx","webpack://oritoparea/./src/components/BurgerMenu/BurgerMenuToggle.tsx","webpack://oritoparea/./src/components/OriflameLogo.tsx","webpack://oritoparea/./src/components/LeftActionsSection.tsx","webpack://oritoparea/./src/components/OrderOnBehalf/ChangeConsultantForm.tsx","webpack://oritoparea/./src/components/OrderOnBehalf/OrderOnBehalfDialog.tsx","webpack://oritoparea/./src/components/OrderOnBehalf/OrderOnBehalf.tsx","webpack://oritoparea/./src/components/FavoritesHeartIcon.tsx","webpack://oritoparea/./src/context/navigation/labelsContext.tsx","webpack://oritoparea/./src/components/Join/JoinIcon.tsx","webpack://oritoparea/./src/components/NotificationBellIcon.tsx","webpack://oritoparea/./src/hooks/useSearchInputPlaceholder.ts","webpack://oritoparea/./src/components/SearchIcon.tsx","webpack://oritoparea/./src/components/SearchInput.tsx","webpack://oritoparea/./src/components/ShoppingBagIcon/ShoppingBagCounter.tsx","webpack://oritoparea/./src/components/ShoppingBagIcon/ShoppingBagIcon.tsx","webpack://oritoparea/./src/components/RightActionsSection.tsx","webpack://oritoparea/./src/utils/getSearchTime.ts","webpack://oritoparea/./src/constants/app.ts","webpack://oritoparea/./src/utils/analytics.ts","webpack://oritoparea/./src/components/common/ProductImage.tsx","webpack://oritoparea/./src/components/common/ProductTile.tsx","webpack://oritoparea/./src/components/SearchResults/PopularProducts.tsx","webpack://oritoparea/./src/components/SearchResults/PopularSearchQueries.tsx","webpack://oritoparea/./src/components/SearchResults/SearchResults.tsx","webpack://oritoparea/./src/components/TopArea/TopArea.tsx","webpack://oritoparea/./src/components/TopAreaBlock.tsx","webpack://oritoparea/./src/hooks/useManagedHeight.ts","webpack://oritoparea/./src/containers/Content.tsx","webpack://oritoparea/./src/hooks/useClickSignInButtonSupportCenter.ts","webpack://oritoparea/./src/hooks/useReturnUrl.ts","webpack://oritoparea/./src/hooks/useToggleMenuHandler.ts","webpack://oritoparea/./src/hooks/usePersonalMenuPortal.tsx","webpack://oritoparea/./src/constants/parameters.ts","webpack://oritoparea/./src/containers/Context.ts","webpack://oritoparea/./src/utils/composeProviders.tsx","webpack://oritoparea/./src/containers/ApiProvider.tsx","webpack://oritoparea/../../../src/hooks/useWasTooltipShown.ts","webpack://oritoparea/../../../src/hooks/useSessionStorage.ts","webpack://oritoparea/../../../../src/contexts/PersonalBeautyStoreProvider/PersonalBeautyStoreProvider.tsx","webpack://oritoparea/../../../src/utils/updateQueryParameters.ts","webpack://oritoparea/../../../src/utils/removeQueryParameter.ts","webpack://oritoparea/../../../src/utils/ensureQueryParameter.ts","webpack://oritoparea/../../../../src/hooks/useCookieToUrl/useCookieToUrl.ts","webpack://oritoparea/../../../src/containers/PbsApp.tsx","webpack://oritoparea/./src/containers/Pbs.tsx","webpack://oritoparea/./src/constants/defaultTranslations.ts","webpack://oritoparea/./src/containers/TopArea.tsx","webpack://oritoparea/./src/constants/defaultTranslationsWithNamespaces.ts","webpack://oritoparea/./src/containers/StandaloneTranslationsProvider.tsx","webpack://oritoparea/./src/utils/parseAppConfiguration.ts","webpack://oritoparea/./src/utils/trackCustomerTokenMismatch.ts","webpack://oritoparea/./src/App.css?a051","webpack://oritoparea/./src/AppRender.tsx","webpack://oritoparea/./src/utils/extractTokenFromUrl.ts","webpack://oritoparea/./src/utils/getToken.ts","webpack://oritoparea/../../../src/models/MenuContentTestIds.ts","webpack://oritoparea/../../../../src/components/MenuContent/MenuContent.tsx","webpack://oritoparea/../../../src/containers/MenuContentContainer.tsx","webpack://oritoparea/./src/components/BurgerMenu/Catalogues/CatalogueImage.tsx","webpack://oritoparea/./src/components/BurgerMenu/Catalogues/types.ts","webpack://oritoparea/./src/components/BurgerMenu/Catalogues/styles.ts","webpack://oritoparea/./src/components/common/constants.ts","webpack://oritoparea/./src/components/BurgerMenu/Catalogues/CurrentCatalogue.tsx","webpack://oritoparea/./src/components/BurgerMenu/Catalogues/NextCatalogue.tsx","webpack://oritoparea/./src/utils/formatDate.ts","webpack://oritoparea/./src/utils/formatValidity.ts","webpack://oritoparea/./src/components/Skeleton/Mobile/SkeletonCatalogueMobile.tsx","webpack://oritoparea/./src/components/Skeleton/Desktop/SkeletonCatalogueDesktop.tsx","webpack://oritoparea/./src/components/BurgerMenu/Catalogues/Catalogues.tsx","webpack://oritoparea/./src/components/Skeleton/Mobile/SkeletonSubCategoryMobile.tsx","webpack://oritoparea/./src/components/Skeleton/Desktop/SkeletonSubCategoryDesktop.tsx","webpack://oritoparea/./src/components/BurgerMenu/BurgerMenuContent.tsx","webpack://oritoparea/./src/components/Skeleton/Mobile/SkeletonMainCategoryMobile.tsx","webpack://oritoparea/./src/components/Skeleton/Desktop/SkeletonMainCategoryDesktop.tsx","webpack://oritoparea/./src/components/BurgerMenu/BurgerMenuLinks/BurgerMenuLinks.tsx","webpack://oritoparea/./src/constants/analytics.ts","webpack://oritoparea/./src/constants/tenants.ts","webpack://oritoparea/./src/context/cataloguesContext.tsx","webpack://oritoparea/./src/context/configurationContext.ts","webpack://oritoparea/./src/context/navigation/aboutTilesContext.ts","webpack://oritoparea/./src/context/navigation/activeLinkContext.tsx","webpack://oritoparea/./src/context/navigation/inspirationTilesContext.ts","webpack://oritoparea/./src/context/navigation/internal/createNavigationItemsContext.tsx","webpack://oritoparea/./src/context/navigation/pbsContentContext.tsx","webpack://oritoparea/./src/context/navigation/searchInputContext.tsx","webpack://oritoparea/./src/context/navigation/shopSectionContext.ts","webpack://oritoparea/./src/hooks/useFetchNavigationItems.ts","webpack://oritoparea/./src/hooks/useIsMarketCN.ts","webpack://oritoparea/./src/hooks/useIsMobile.ts","webpack://oritoparea/./src/hooks/useTranslations.ts","webpack://oritoparea/./src/models/FavoritesLink.ts","webpack://oritoparea/./src/utils/boldMatchedText.tsx","webpack://oritoparea/./src/App.css"],"sourcesContent":["import useTestId from '@ori/testid-generator';\nimport { Pbs as PbsWaveIcon, Products } from '@ori-ui/icons';\nimport { Avatar, Box, Link, styled, useTheme } from '@ori-ui/mui';\nimport type { FC } from 'react';\n\nimport { LiveStreamingStates, MenuItemTestIds, TranslationKey } from '../../models';\nimport { LiveStreamingStateWrap } from '../common/LiveStreamingStateWrap';\nimport { useTranslations } from '../../hooks/useTranslations';\n\n/**\n * Avatar size. Value is in pixels\n */\nconst AVATAR_SIZE = 28;\ninterface BaseLinkConfiguration {\n isEnabled: boolean;\n sharedUrl?: string | null;\n}\n\nexport interface MenuItemPersonalLinksProps {\n liveStreamingState?: LiveStreamingStates;\n personalProductListConfiguration?: BaseLinkConfiguration;\n videoShoppingConfiguration?: BaseLinkConfiguration;\n}\n\nexport const StyledAvatar = styled(Avatar)(({ theme }) => ({\n width: AVATAR_SIZE,\n height: AVATAR_SIZE,\n backgroundColor: theme.palette.grey[100],\n color: theme.palette.grey[900],\n}));\n\nexport const StyledProducts = styled(Products)(({ theme }) => ({\n width: 22,\n height: 24,\n margin: theme.spacing(1.4, 0.6),\n}));\n\nexport const LinkWrap = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: theme.spacing(2),\n}));\n\nconst Root = styled(Box)(({ theme }) => ({\n marginTop: theme.spacing(6),\n}));\nconst PersonalLink = styled(Link)(({ theme }) => ({\n color: theme.palette.common.black,\n textDecoration: 'underline',\n fontWeight: 'bold',\n fontSize: 14 /* theme.typography.pxToRem(14) this seems to return 1.4 rem instead of 0.875 rem */,\n}));\n\nconst getLiveStreamingLabel = (liveStreamingState: LiveStreamingStates) => {\n switch (liveStreamingState) {\n case LiveStreamingStates.IS_LIVE:\n return TranslationKey.LiveNow;\n case LiveStreamingStates.PLANNED:\n return TranslationKey.LiveVideoStartingSoon;\n default:\n return TranslationKey.WatchLatestVideo;\n }\n};\nexport const MenuItemPersonalLinks: FC = ({\n personalProductListConfiguration,\n videoShoppingConfiguration,\n liveStreamingState,\n photoUrl,\n}) => {\n const theme = useTheme();\n const { formatMessage } = useTranslations();\n const { getTestIdProps } = useTestId();\n\n return (\n \n {personalProductListConfiguration?.isEnabled && personalProductListConfiguration.sharedUrl ? (\n \n \n \n {formatMessage(TranslationKey.SeeMyFavoriteProducts)}\n \n \n ) : null}\n {videoShoppingConfiguration?.isEnabled && videoShoppingConfiguration.sharedUrl ? (\n \n \n \n \n \n \n \n {formatMessage(getLiveStreamingLabel(liveStreamingState ?? LiveStreamingStates.UNKNOWN))}\n \n \n ) : null}\n \n );\n};\n","export enum LiveStreamingStateWrapTestIds {\n AVATAR_BADGE_IS_LIVE = 'live-streaming-state-avatar-badge-is-live',\n AVATAR_BADGE_WAS_LIVE = 'live-streaming-state-avatar-badge-was-live',\n}\n","import useTestId from '@ori/testid-generator';\nimport { Badge, styled } from '@ori-ui/mui';\nimport type { FC, PropsWithChildren, ReactElement } from 'react';\nimport { memo } from 'react';\n\nimport { LiveStreamingStateWrapTestIds, LiveStreamingStates } from '../../../models';\n\nconst NowLiveStreamingRoot = styled('div')(({ theme }) => ({\n borderRadius: 999,\n boxShadow: `0px 0px 0 2px ${theme.palette.red[300]}`,\n position: 'relative',\n}));\n\nconst NowLiveStreamingText = styled('div')(({ theme }) => ({\n backgroundColor: theme.palette.red[300],\n fontSize: theme.typography.pxToRem(5),\n color: theme.palette.common.white,\n padding: theme.spacing(0, 0.8),\n borderRadius: '3px',\n position: 'absolute',\n left: '50%',\n transform: 'translateX(-50%)',\n bottom: theme.spacing(-1),\n}));\n\nconst badgeSize = 2;\nconst StyledBadge = styled(Badge)(({ theme }) => ({\n '& .MuiBadge-badge': {\n backgroundColor: theme.palette.red[300],\n color: theme.palette.red[300],\n width: theme.spacing(badgeSize),\n minWidth: theme.spacing(badgeSize),\n height: theme.spacing(badgeSize),\n padding: 0,\n border: 0,\n position: 'absolute',\n right: 0,\n top: 0,\n transform: 'scale(1) !important',\n },\n}));\n\nexport const LiveStreamingStateWrap: FC = memo(\n ({ children, streamingActivity }) => {\n const { getTestIdProps } = useTestId();\n\n if (streamingActivity === LiveStreamingStates.WAS_LIVE || streamingActivity === LiveStreamingStates.PLANNED) {\n return (\n {children}\n );\n }\n\n if (streamingActivity === LiveStreamingStates.IS_LIVE) {\n return (\n \n {children}\n LIVE\n \n );\n }\n\n return children as ReactElement;\n },\n);\n","import { Team } from '@ori/testid-generator';\n\n/**\n * Name of this app.\n */\nexport const APP_NAME = 'personal-beauty-store';\n\n/**\n * Name of this NPM package.\n */\nexport const PACKAGE_NAME = `@ori/${APP_NAME}`;\n\n/**\n * Team which owns this app.\n */\nexport const APP_TEAM_NAME: Team = Team.Presentation;\n","/* istanbul ignore file */\n/**\n * DO NOT EDIT!\n * This file was autogenerated by npm script `localizations-codegen`.\n * Changes may cause incorrect behavior and will be lost when the file is regenerated.\n *\n * Run `npx localizations-codegen` to regenerate.\n */\n\nimport type { TranslationKey } from '../models/TranslationKey';\n\nexport type DefaultTranslations = Record;\n\nexport const defaultTranslations: DefaultTranslations = {\n Greetings: 'Hi, welcome to Oriflame!',\n InviteMessageTooltip:\n 'You were referred by {fullName}. Get in touch to get personalized beauty advice.',\n LiveNow: 'I am live now, join me',\n LiveVideoStartingSoon: 'Live video starting soon',\n MetaTitleForSharing: 'Get a £5 discount on your first purchase!',\n ReferralMessageTooltip:\n 'You were referred by {fullName}. Get in touch to get personalized beauty advice.',\n SeeMyFavoriteProducts: 'See my favorite products',\n SponsorPhoto: \"Sponsor's photo\",\n WatchLatestVideo: 'Watch my latest live video',\n};\n\nexport const translationsNamespace = 'personal-beauty-store';\n","import { NOT_LOGGED_IN_USER_ID } from '@ori/auth';\n\nimport { PbsCookieNames } from '../models';\nimport type { AppConfiguration, CookieToTransform } from '../types';\n\n/**\n * Desktop breakpoint\n */\nexport const DESKTOP_BREAKPOINT = 1024;\n\n/**\n/**\n * Default configuration values\n */\nexport const configurationContextDefaultValues: AppConfiguration = {\n currentLanguage: '',\n customerId: NOT_LOGGED_IN_USER_ID,\n graphqlUrl: '',\n globalApiUrl: '',\n identityUrl: '',\n staticApiUrl: '',\n tenant: '',\n isEnabled: false,\n};\n\n// The cookies are processed in the order they appear in this array,\n// and processing stops at the first found cookie that has stopIfFound == true\nexport const cookiesToTransform: CookieToTransform[] = [\n {\n cookie: PbsCookieNames.PBS_CODE,\n queryParam: 'store',\n stopIfFound: true,\n },\n {\n cookie: PbsCookieNames.ECREF_OWNER,\n queryParam: 'invite',\n stopIfFound: true,\n },\n {\n cookie: PbsCookieNames.PBS_OWNER,\n queryParam: 'store',\n stopIfFound: false,\n },\n {\n cookie: PbsCookieNames.PPL_CODE,\n queryParam: 'personallist',\n stopIfFound: true,\n stopIfFoundPrev: true,\n removeIfNotFound: true,\n },\n {\n cookie: PbsCookieNames.ECREF,\n queryParam: 'invite',\n stopIfFound: true,\n },\n];\n\nexport * from './defaultTranslations';\nexport * from './app';\n","import { Component } from 'react';\n\ninterface ErrorBoundaryProps {\n children: JSX.Element;\n}\n\ninterface ErrorBoundaryState {\n error?: Error;\n}\n\nexport class ErrorBoundary extends Component {\n override readonly state: ErrorBoundaryState = {};\n\n static getDerivedStateFromError(error: Error) {\n return { error };\n }\n\n override render() {\n const { error } = this.state;\n\n if (error) {\n // eslint-disable-next-line no-console -- We display full error to console instead of just showing message to user\n console.error(error);\n\n // We don't want to render anything\n return null;\n }\n\n const { children } = this.props;\n\n return children;\n }\n}\n","import { TestIdProvider } from '@ori/testid-generator';\nimport type { FC, PropsWithChildren } from 'react';\n\nimport { ErrorBoundary } from './ErrorBoundary';\nimport { APP_NAME, APP_TEAM_NAME, translationsNamespace } from '../constants';\nimport { TranslationsNamespaceProvider } from '@ori/i18n';\n\nexport const ComponentWrapper: FC = ({ children }) => (\n \n \n {children}\n \n \n);\n","import { createContext } from 'react';\n\nimport type { PersonalBeautyStoreContext } from '../../types';\n\nexport const personalBeautyStoreContext = createContext({\n pbsData: null,\n inviteFriendData: null,\n storeInfo: null,\n canDisplaySponsorInfo: false,\n canDisplayTooltip: false,\n tooltipWasShown: false,\n setTooltipWasShown: () => {},\n});\n","import { useContext } from 'react';\n\nimport { personalBeautyStoreContext } from './personalBeautyStoreContext';\n\nexport const usePersonalBeautyStore = () => useContext(personalBeautyStoreContext);\n","/* istanbul ignore file */\n/**\n * DO NOT EDIT!\n * This file was autogenerated by npm script `localizations-codegen`.\n * Changes may cause incorrect behavior and will be lost when the file is regenerated.\n *\n * Run `npx localizations-codegen` to regenerate.\n */\nimport { useTranslationsFromNamespace, type UseTranslationsFromNamespaceResult } from '@ori/i18n';\n\nimport type { DefaultTranslations } from '../constants/defaultTranslations';\n\n/**\n * A hook for accessing translations within a specific namespace along with a formatting function.\n *\n * @returns The translations within the specified namespace and a formatting function.\n */\nexport const useTranslations: () => UseTranslationsFromNamespaceResult = () =>\n useTranslationsFromNamespace();\n","export enum LiveStreamingStates {\n WAS_LIVE = 'was-livestreaming',\n IS_LIVE = 'livestreaming',\n PLANNED = 'planned',\n UNKNOWN = 'unknown',\n}\n","export enum MenuItemTestIds {\n ROOT = 'menu-item-root',\n TITLE = 'menu-item-title',\n TITLE_WRAP = 'menu-item-title-wrap',\n AVATAR = 'menu-item-avatar',\n FALLBACK_AVATAR = 'menu-item-fallback-avatar',\n TEXT = 'menu-item-text',\n USER_EMAIL = 'menu-item-user-email',\n USER_PHONE = 'menu-item-user-phone',\n RECOMMENDED_PRODUCTS = 'menu-item-user-recommended-products',\n WATCH_LATEST_VIDEO = 'menu-item-user-watch-latest-video-',\n EXPANDER = 'menu-item-expander-button',\n USER_NAME = 'menu-item-user-name',\n BENEFITS_LINK = 'menu-item-benefits-link',\n}\n","export enum PbsCookieNames {\n ECREF_OWNER = 'ecref_owner',\n ECREF = 'ecref',\n /**\n * This cookie is only available when user is logged in and PBS is active (PBS_OWNER should be defined as well)\n */\n PBS_CODE = 'pbs_code',\n /**\n * This cookie will be available even on anonymous user and controls if PBS should be visible\n */\n PBS_OWNER = 'pbs_owner',\n PPL_CODE = 'ppl_code',\n}\n","/* istanbul ignore file */\n/**\n * DO NOT EDIT!\n * This file was autogenerated by npm script `localizations-codegen`.\n * Changes may cause incorrect behavior and will be lost when the file is regenerated.\n *\n * Run `npx localizations-codegen` to regenerate.\n */\n\nexport enum TranslationKey {\n Greetings = 'Greetings',\n InviteMessageTooltip = 'InviteMessageTooltip',\n LiveNow = 'LiveNow',\n LiveVideoStartingSoon = 'LiveVideoStartingSoon',\n MetaTitleForSharing = 'MetaTitleForSharing',\n ReferralMessageTooltip = 'ReferralMessageTooltip',\n SeeMyFavoriteProducts = 'SeeMyFavoriteProducts',\n SponsorPhoto = 'SponsorPhoto',\n WatchLatestVideo = 'WatchLatestVideo',\n}\n","/* eslint-disable @typescript-eslint/consistent-type-definitions, id-denylist, @typescript-eslint/no-unused-vars -- generated type definition */\n\n/**\n * DO NOT EDIT!\n * This file was autogenerated by graphql-codegen.\n * Changes may cause incorrect behavior and will be lost when the code is regenerated.\n *\n * Run `npm run codegen` to regenerate.\n */\n\nexport type Maybe = T | null;\nexport type InputMaybe = Maybe;\nexport type Exact = { [K in keyof T]: T[K] };\nexport type MakeOptional = Omit & { [SubKey in K]?: Maybe };\nexport type MakeMaybe = Omit & { [SubKey in K]: Maybe };\nexport type MakeEmpty = { [_ in K]?: never };\nexport type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string };\n String: { input: string; output: string };\n Boolean: { input: boolean; output: boolean };\n Int: { input: number; output: number };\n Float: { input: number; output: number };\n Date: { input: string; output: string };\n JSON: { input: unknown; output: unknown };\n Void: { input: unknown; output: unknown };\n};\n\n/** Enum allowed search results */\nexport enum AddressMetadataAllowedSearchResults {\n Area = 'Area',\n City = 'City',\n Country = 'Country',\n District = 'District',\n Locality = 'Locality',\n Market = 'Market',\n Province = 'Province',\n Region = 'Region',\n Street = 'Street',\n ZipCode = 'ZipCode',\n}\n\n/** Enum address type */\nexport enum AddressType {\n Channel = 'Channel',\n Delivery = 'Delivery',\n Foreign = 'Foreign',\n Home = 'Home',\n Kyc = 'Kyc',\n Other = 'Other',\n}\n\nexport enum ArticleType {\n /** Articles from Beauty Edit section */\n BeautyEdit = 'BeautyEdit',\n /** Articles related to products */\n RelatedToProduct = 'RelatedToProduct',\n /** Default value - not for use with API. Exists to detect errors in parsing values */\n Undefined = 'Undefined',\n}\n\n/** Channel to identify how we should notify user */\nexport enum BackInStockNotificationChannel {\n /** We will notify customer on provided email */\n Email = 'Email',\n /** We will notify customer on provided telephone */\n Sms = 'Sms',\n}\n\n/** Input to let user subscribe to when the product is back in stock */\nexport type BackInStockNotificationSubscriptionInput = {\n /** Email value for notificationChannel.Email */\n readonly email?: InputMaybe;\n /** The product code to watch */\n readonly itemCode: Scalars['String']['input'];\n /** Flag indicating the channel for notification */\n readonly notificationChannel: BackInStockNotificationChannel;\n /** Telephone value for notificationChannel.Telephone */\n readonly telephoneNumber?: InputMaybe;\n};\n\n/** Background types */\nexport enum BackgroundType {\n /** Color as a background */\n Color = 'Color',\n /** Image as a background */\n Image = 'Image',\n /** No background */\n None = 'None',\n /** Video as a background */\n Video = 'Video',\n}\n\nexport enum CatalogueOfferType {\n /** Special offer for buying product */\n Buy = 'Buy',\n /** Choose from products */\n Choose = 'Choose',\n /** Choose a product and choose another */\n ChooseAndChoose = 'ChooseAndChoose',\n /** Choose a product and get another */\n ChooseAndGet = 'ChooseAndGet',\n /** Get a product */\n Get = 'Get',\n /** No type of catalogue offer was specified */\n None = 'None',\n}\n\nexport enum ChannelType {\n Mv7 = 'MV7',\n Website = 'Website',\n}\n\nexport enum ChatBotMode {\n AlwaysEnabled = 'AlwaysEnabled',\n Disabled = 'Disabled',\n NonBusinessHoursOnly = 'NonBusinessHoursOnly',\n}\n\n/** Color type */\nexport enum ColorType {\n Brown = 'Brown',\n Green = 'Green',\n White = 'White',\n}\n\n/** Enum customer category */\nexport enum CustomerCategory {\n Anonymous = 'Anonymous',\n Consultant = 'Consultant',\n Employee = 'Employee',\n EndConsumer = 'EndConsumer',\n EndCustomer = 'EndCustomer',\n Invitation = 'Invitation',\n Other = 'Other',\n}\n\n/** eWallet type */\nexport enum EWalletType {\n Revolut = 'Revolut',\n}\n\n/** Editorial banner layout enumeration */\nexport enum EditorialBannerLayoutEnum {\n /** Banner with four media */\n FourMedia = 'FourMedia',\n /** Banner with headline */\n Headline = 'Headline',\n /** Banner with one media overlayed with text at the bottom */\n OneMediaCenterBottomText = 'OneMediaCenterBottomText',\n /** Banner with one media overlayed with text on the left */\n OneMediaOverlayLeftText = 'OneMediaOverlayLeftText',\n /** Banner with one media overlayed with text on the right */\n OneMediaOverlayRightText = 'OneMediaOverlayRightText',\n /** Banner with one media part and paragraph text */\n OneMediaParagraphText = 'OneMediaParagraphText',\n /** PLP banner with single media */\n OneMediaProductPromo = 'OneMediaProductPromo',\n /** Banner with paragraph text */\n ParagraphText = 'ParagraphText',\n /** Banner with quote */\n Quote = 'Quote',\n /** Banner with three media and right bottom text */\n ThreeMediaRightBottomText = 'ThreeMediaRightBottomText',\n /** Banner with two media parts */\n TwoMedia = 'TwoMedia',\n /** Banner with two media overlayed with text on the top */\n TwoMediaRightTopText = 'TwoMediaRightTopText',\n /** Banner with video */\n Video = 'Video',\n}\n\n/** Editorial banner title color enumeration */\nexport enum EditorialBannerTitleColorEnum {\n /** The black */\n Black = 'Black',\n /** The dark grey */\n DarkGrey = 'DarkGrey',\n /** The white */\n White = 'White',\n}\n\n/** Editorial channel type */\nexport enum EditorialChannelType {\n Mobile = 'Mobile',\n Web = 'Web',\n}\n\n/** Editorial PLP banner size */\nexport enum EditorialPlpPromoBannerSize {\n Size1 = 'Size1',\n Size2 = 'Size2',\n}\n\n/** Feedback Benefit Banner type */\nexport enum FeedbackBenefitBannerType {\n Cashback = 'Cashback',\n ShareAndEarn = 'ShareAndEarn',\n}\n\n/** Enum gender */\nexport enum Gender {\n Man = 'Man',\n Other = 'Other',\n Woman = 'Woman',\n}\n\n/** Enum language type */\nexport enum LanguageType {\n Alternative = 'Alternative',\n Default = 'Default',\n}\n\nexport enum MobileAppType {\n None = 'None',\n ToSell = 'ToSell',\n ToShop = 'ToShop',\n}\n\n/** Possible types of Navigation items */\nexport enum NavigationLinkType {\n /** All category */\n AllCategory = 'AllCategory',\n /** Bottom part of the footer */\n Bottom = 'Bottom',\n /** Bottom part of the footer with copyright info */\n BottomCopyright = 'BottomCopyright',\n /** Links from the bottom part of the footer */\n BottomLinks = 'BottomLinks',\n /** Catalogue page */\n Catalogue = 'Catalogue',\n /** Catalogues page */\n Catalogues = 'Catalogues',\n /** Category */\n Category = 'Category',\n /** Catalogue for the current period */\n DigitalCatalogueCurrent = 'DigitalCatalogueCurrent',\n /** Catalogue for the next period */\n DigitalCatalogueNext = 'DigitalCatalogueNext',\n /** Focus page */\n FocusPage = 'FocusPage',\n /** Column of a footer */\n FooterColumn = 'FooterColumn',\n /** Item placed in footer's column */\n FooterColumnItem = 'FooterColumnItem',\n /** I Don't know yet link */\n IDontKnowYet = 'IDontKnowYet',\n /** Inspiration section */\n Inspiration = 'Inspiration',\n /** Join rewards */\n JoinRewards = 'JoinRewards',\n /** Key ingredients page */\n KeyIngredients = 'KeyIngredients',\n /** Menu tiles */\n MenuTiles = 'MenuTiles',\n /** New products */\n New = 'New',\n /** No link type was specified for this item */\n None = 'None',\n /** Our applications */\n OurApps = 'OurApps',\n /** Outlet shop */\n OutletShop = 'OutletShop',\n /** Payment method */\n PaymentMethod = 'PaymentMethod',\n /** Available payment methods */\n PaymentMethods = 'PaymentMethods',\n /** Popular brand */\n PopularBrand = 'PopularBrand',\n /** Popular brands */\n PopularBrands = 'PopularBrands',\n /** Popular lookbook */\n PopularLookbook = 'PopularLookbook',\n /** Popular products */\n PopularProducts = 'PopularProducts',\n /** Turkish QR code */\n Qrtr = 'QRTR',\n /** Rewards shop page */\n RewardsShop = 'RewardsShop',\n /** Sample shop page */\n SampleShop = 'SampleShop',\n /** Segment of subcategory */\n Segment = 'Segment',\n /** Subcategory */\n SubCategory = 'SubCategory',\n /** Support center */\n SupportCenter = 'SupportCenter',\n /** Top navigation */\n TopNavigation = 'TopNavigation',\n /** What's new in the category */\n WhatsNewInCategory = 'WhatsNewInCategory',\n}\n\n/** Possible types of navigations */\nexport enum NavigationType {\n /** About tiles section content */\n AboutTiles = 'AboutTiles',\n /** Footer section */\n Footer = 'Footer',\n /** Inspiration tiles content */\n InspirationTiles = 'InspirationTiles',\n /** Join section content */\n JoinTiles = 'JoinTiles',\n /** Shop section content */\n ShopSection = 'ShopSection',\n /** Top navigation bar items */\n TopNavigation = 'TopNavigation',\n}\n\nexport enum NotificationBannerThemeType {\n Black = 'Black',\n Grey = 'Grey',\n}\n\n/** Olapic type enumeration */\nexport enum OlapicTypeEnum {\n /** Category widget */\n Category = 'Category',\n /** Front page widget */\n FrontPage = 'FrontPage',\n /** Gallery widget */\n Gallery = 'Gallery',\n /** Product detail page widget */\n ProductDetails = 'ProductDetails',\n}\n\n/** Product Label Domain Type */\nexport enum ProductLabelDomainType {\n /** Only Offer, New, SuperDeal */\n Deal = 'Deal',\n /** All of the ProductLabelType except Offer, New, SuperDeal, AddToBasketVisible */\n Ppa = 'PPA',\n /** Domain Type for AddToBasketVisible ProductLabelType */\n Shopping = 'Shopping',\n}\n\nexport enum ProductListType {\n Favorite = 'Favorite',\n Personal = 'Personal',\n Private = 'Private',\n Wishlist = 'Wishlist',\n}\n\n/** Enum ProductListingBannerVideoType */\nexport enum ProductListingBannerVideoType {\n Mp4 = 'Mp4',\n None = 'None',\n Youku = 'Youku',\n Youtube = 'Youtube',\n}\n\n/** Relation types */\nexport enum ProductRelationEnum {\n RecentlyViewed = 'RecentlyViewed',\n Related = 'Related',\n}\n\nexport enum ProductType {\n Bundle = 'Bundle',\n Composite = 'Composite',\n Fee = 'Fee',\n Product = 'Product',\n Sample = 'Sample',\n}\n\n/** ResponseMessageNewsletterSubsciptionsType */\nexport enum ResponseMessageNewsletterSubsciptionsType {\n /** Cleaned */\n Cleaned = 'Cleaned',\n /** New */\n New = 'New',\n /** Pending */\n Pending = 'Pending',\n /** Subscribed */\n Subscribed = 'Subscribed',\n /** Unsubscribed */\n Unsubscribed = 'Unsubscribed',\n}\n\nexport enum SettingsClientType {\n OnlineReportingGrid = 'OnlineReportingGrid',\n WellnessClub = 'WellnessClub',\n}\n\nexport enum SettingsFormatType {\n Json = 'Json',\n String = 'String',\n Xml = 'Xml',\n}\n\n/** Live video show type */\nexport enum ShowType {\n /** Show is recorded */\n Ended = 'Ended',\n /** Show is running now */\n Live = 'Live',\n /** Show not started yet */\n Scheduled = 'Scheduled',\n}\n\n/** Types of social contact */\nexport enum SocialContactType {\n /** Email */\n Email = 'Email',\n /** Facebook */\n Facebook = 'Facebook',\n /** Phone */\n PhoneNumber = 'PhoneNumber',\n /** VKontakte */\n VKontakte = 'VKontakte',\n /** WeChat */\n WeChat = 'WeChat',\n /** WhatsUp */\n WhatsUpNumber = 'WhatsUpNumber',\n}\n\n/** Types of social media */\nexport enum SocialMediaType {\n /** Facebook */\n Facebook = 'Facebook',\n /** Instagram */\n Instagram = 'Instagram',\n /** Line */\n Line = 'Line',\n /** Odnoklassniki */\n Odnoklassniki = 'Odnoklassniki',\n /** Pinterest */\n Pinterest = 'Pinterest',\n /** QQ */\n Qq = 'QQ',\n /** Twitter */\n Twitter = 'Twitter',\n /** VKontakte */\n VKontakte = 'VKontakte',\n /** Weibo */\n Weibo = 'Weibo',\n /** YouTube */\n YouTube = 'YouTube',\n /** Youku */\n Youku = 'Youku',\n}\n\n/** Sponsor type */\nexport enum SponsorType {\n DirectSponsor = 'DirectSponsor',\n}\n\n/** Colors enum referring to FE storybook */\nexport enum StorybookColor {\n /** Shades/palette.brown[300] */\n Brown300 = 'Brown300',\n /** Palette - Main colors/palette.default.contrastText */\n DefaultContrastText = 'DefaultContrastText',\n /** Shades/palette.grey[50] */\n Grey50 = 'Grey50',\n /** Shades/palette.purple[200] */\n Purple200 = 'Purple200',\n /** Palette - Main colors/palette.secondary.main */\n SecondaryMain = 'SecondaryMain',\n /** Typography/palette.text.primary */\n TextPrimary = 'TextPrimary',\n /** Typography/palette.text.secondary */\n TextSecondary = 'TextSecondary',\n /** Undefined value, its an error when this occurs */\n Undefined = 'Undefined',\n}\n\n/** Enum telephone type */\nexport enum TelephoneType {\n Business = 'Business',\n Fax = 'Fax',\n Home = 'Home',\n Mobile = 'Mobile',\n}\n\nexport enum VideoType {\n /** Video in MP4 file format */\n Mp4 = 'Mp4',\n /** Video hosted on Youku */\n Youku = 'Youku',\n /** Video hosted on YouTube */\n Youtube = 'Youtube',\n}\n\n/** Possible types of visitor segment */\nexport enum VisitorSegment {\n /** Anonymous */\n Anonymous = 'Anonymous',\n /** Consultant */\n Consultant = 'Consultant',\n /** Director and above */\n DirectorAndAbove = 'DirectorAndAbove',\n /** End customer */\n EndCustomer = 'EndCustomer',\n /** Manager */\n Manager = 'Manager',\n /** Member */\n Member = 'Member',\n /** New consultant */\n NewConsultant = 'NewConsultant',\n /** Not defined */\n NotDefined = 'NotDefined',\n /** Spo */\n Spo = 'Spo',\n}\n","import type { SocialContactType } from '../models';\n\ntype Contacts =\n | ReadonlyArray<{\n readonly type?: SocialContactType | null;\n readonly value?: string | null;\n } | null>\n | null\n | undefined;\n\nexport const getContactByType = (\n allowedContacts: Readonly> | null | undefined,\n contacts: Contacts,\n type: SocialContactType,\n) => (allowedContacts?.includes(type) ? contacts?.filter((contact) => contact?.type === type)[0]?.value : null);\n","import type { VideoShow } from '@ori/graphql-schema';\n\nimport { LiveStreamingStates } from '../models';\nimport { ShowType } from '../models/graphql-types/graphql';\n\nconst RecentShowMaxAgeInHours = 24;\ninterface VideoShoppingConfiguration {\n isVideoShoppingEnabled: boolean | null | undefined;\n currentVideoShow?: VideoShow | null;\n}\nconst subtractHoursToDate = (date: Date, hours: number): Date =>\n new Date(new Date(date).setHours(date.getHours() - hours));\n\nexport const getLiveStreamingStateByVideoConfig = ({\n isVideoShoppingEnabled,\n currentVideoShow,\n}: VideoShoppingConfiguration): LiveStreamingStates => {\n const { endedAtUtc, typeOfShow } = currentVideoShow ?? {};\n\n if (isVideoShoppingEnabled) {\n switch (typeOfShow) {\n case ShowType.Live:\n return LiveStreamingStates.IS_LIVE;\n case ShowType.Scheduled:\n return LiveStreamingStates.PLANNED;\n case ShowType.Ended: {\n if (endedAtUtc) {\n const endedAtUtcDate = new Date(endedAtUtc);\n\n return subtractHoursToDate(new Date(), RecentShowMaxAgeInHours) <= endedAtUtcDate\n ? LiveStreamingStates.WAS_LIVE\n : LiveStreamingStates.UNKNOWN;\n }\n break;\n }\n default:\n return LiveStreamingStates.UNKNOWN;\n }\n }\n\n return LiveStreamingStates.UNKNOWN;\n};\n","interface Replacements {\n [name: string]: string | null | undefined;\n}\n\n/**\n * It replaces placeholders in a URL with values from a dictionary\n * @param {string} urlWithPlaceholders - The URL with placeholders in it.\n * @param {Replacements | null | undefined} replacements - Replacements object with keyof placeholders in urlWithPlaceholders | null | undefined = undefined\n * @returns A function that takes a url and replacements and returns a url with assigned replacement value instead of placeholders if replacements are not empty or undefined or url does not contain placeholders.\n */\nexport const replacePlaceholdersInUrl = (\n urlWithPlaceholders: string,\n replacements: Replacements | null | undefined = undefined,\n): string | null => {\n const numberOfPlaceholdersToReplace = urlWithPlaceholders.match(/{(\\w+)}/g);\n if (!numberOfPlaceholdersToReplace) {\n return null;\n }\n if (\n replacements &&\n Object.values(replacements).some((replacementValue) => replacementValue === null || replacementValue === '')\n ) {\n return null;\n }\n if (\n replacements &&\n Object.keys(replacements).length > 0 &&\n Object.keys(replacements).length >= numberOfPlaceholdersToReplace.length\n ) {\n return urlWithPlaceholders.replace(\n /{(\\w+)}/g,\n (fullMatch, group1: keyof Replacements) => replacements[group1] ?? fullMatch,\n );\n }\n\n return null;\n};\n","type EventName = typeof Name;\n\nexport const Name = 'open-login';\nexport const OpenLogin: EventName = Name;\n\nexport interface Data {}\n\nexport interface Event extends CustomEvent {\n /** Name of event */\n type: EventName;\n}\n\nexport default Event;\n","import { createContext, useContext } from 'react';\nimport type { MouseEvent } from 'react';\n\nexport interface LoginContext {\n doLogin: (event?: MouseEvent) => void;\n}\n\nexport const loginContext = createContext(undefined);\n\nexport const { Provider } = loginContext;\n\nexport const useLogin = () => {\n const context = useContext(loginContext);\n\n if (context === undefined) {\n throw new Error('Value for `loginContext` must be set.');\n }\n\n return context;\n};\n","/* istanbul ignore file */\nexport const goToPage = (page: string) => (window.location.href = page);\n","import { Name } from '@ori-events/open-login';\nimport type { MouseEvent } from 'react';\nimport { useCallback, useEffect, useMemo } from 'react';\n\nimport type { LoginProviderProps } from './types';\nimport { AD_LOGIN_PATH, SSO_IDENTITY_AD_LOGIN_PATH, SSO_IDENTITY_LOGIN_PATH } from '../../constants';\nimport { Provider } from '../../contexts';\nimport { goToPage, openLoginSidebar } from '../../utils';\n\n/**\n *\n */\nexport const LoginProvider = ({ children, isSsoIdentityLogin }: LoginProviderProps) => {\n const adLogin = useMemo(\n () => (isSsoIdentityLogin ? SSO_IDENTITY_AD_LOGIN_PATH : AD_LOGIN_PATH),\n [isSsoIdentityLogin],\n );\n const doLogin = useCallback(\n (event?: MouseEvent) => {\n // Ctrl or Cmd key is pressed, redirect to AD login\n if (event?.ctrlKey || event?.metaKey) {\n goToPage(adLogin);\n\n return;\n }\n // UseSsoIdentityLogin feature is enabled, redirect to SSO_IDENTITY_LOGIN_PATH\n if (isSsoIdentityLogin) {\n goToPage(SSO_IDENTITY_LOGIN_PATH);\n\n return;\n }\n // UseSsoIdentityLogin feature is disabled, open login sidebar\n openLoginSidebar();\n },\n [adLogin, isSsoIdentityLogin],\n );\n const onLogin = useCallback(() => {\n doLogin();\n }, [doLogin]);\n\n useEffect(() => {\n window.addEventListener(Name, onLogin);\n\n return () => {\n window.removeEventListener(Name, onLogin);\n };\n }, [onLogin]);\n\n return ({ doLogin }), [doLogin])}>{children};\n};\n","import * as ToggleMenuFlyoutEvent from '@ori-events/toggle-menu-flyout';\n\nexport const openLoginSidebar = () => {\n window.dispatchEvent(\n new CustomEvent(ToggleMenuFlyoutEvent.Name, {\n detail: { menuType: ToggleMenuFlyoutEvent.MenuTypes.AccountSideMenu },\n }),\n );\n};\n","import { Button, Link, styled, SvgIcon, Typography } from '@ori-ui/mui';\n\nexport const ORDER_ON_BEHALF_HEIGHT = 34;\n\nexport const Root = styled('div')(({ theme }) => ({\n background: theme.palette.blue[300],\n display: 'flex',\n zIndex: theme.zIndex.appBar,\n height: theme.typography.pxToRem(ORDER_ON_BEHALF_HEIGHT),\n width: '100%',\n position: 'fixed',\n top: '0',\n left: '0',\n}));\n\nexport const BackArrow = styled(SvgIcon)(({ theme }) => ({\n cursor: 'pointer',\n position: 'absolute',\n left: theme.spacing(3),\n top: theme.spacing(3),\n}));\n\nexport const OrderContent = styled('div')(({ theme }) => ({\n textAlign: 'center',\n margin: '0 auto',\n color: theme.palette.common.white,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n\n span: {\n lineHeight: theme.typography.pxToRem(ORDER_ON_BEHALF_HEIGHT),\n textTransform: 'uppercase',\n fontSize: theme.typography.pxToRem(10),\n },\n\n svg: {\n height: theme.typography.pxToRem(20),\n },\n\n 'svg:first-of-type': {\n marginRight: theme.spacing(1),\n },\n 'svg:last-of-type': {\n marginLeft: theme.spacing(1),\n },\n}));\n\nexport const Username = styled(Typography)(({ theme }) => ({\n textDecoration: 'underline',\n color: theme.palette.common.white,\n marginLeft: theme.spacing(1),\n cursor: 'pointer',\n}));\n\nexport const PopupContentGroup = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n marginTop: theme.spacing(3),\n}));\n\nexport const PopupButton = styled(Button)(({ theme }) => ({\n marginBottom: theme.spacing(3),\n}));\n\nexport const PopupLink = styled(Link)(({ theme }) => ({\n marginBottom: theme.spacing(3),\n textAlign: 'center',\n color: theme.palette.common.black,\n}));\n","import { shouldForwardProp } from '@ori/presentation-utils';\nimport { styled } from '@ori-ui/mui';\n\nimport { ORDER_ON_BEHALF_HEIGHT } from '../OrderOnBehalf/styles';\n\nexport const Root = styled('nav', {\n shouldForwardProp: shouldForwardProp(),\n})<{ isOrderOnBehalfVisible?: boolean }>(({ theme, isOrderOnBehalfVisible }) => ({\n alignItems: 'center',\n backgroundColor: theme.palette.common.white,\n borderBottom: `2px solid ${theme.palette.grey[100]}`,\n boxSizing: 'border-box',\n display: 'flex',\n height: 'var(--top-nav-inner-height)',\n left: 0,\n padding: theme.spacing(0, 3),\n position: 'fixed',\n top: isOrderOnBehalfVisible ? ORDER_ON_BEHALF_HEIGHT : 0,\n transition: 'height var(--top-nav-height-animation), background-color 0.1s ease-in-out',\n width: '100vw',\n zIndex: theme.zIndex.appBar,\n\n [theme.breakpoints.up('md')]: {\n height: 'var(--top-nav-inner-height)',\n padding: theme.spacing(0, 9, 0, 6),\n },\n\n [theme.breakpoints.up('lg')]: {\n padding: theme.spacing(0, 11, 0, 8),\n },\n\n [theme.breakpoints.up('xl')]: {\n padding: theme.spacing(0, 15, 0, 12),\n },\n}));\n","import { MenuTypes } from '@ori-events/toggle-menu-flyout';\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useCallback, useContext, useMemo, useState } from 'react';\n\nimport { useSearchInput } from './searchInputContext';\n\nexport type ActiveMenu = MenuTypes | '';\n\nexport interface ActiveMenuContext {\n activeMenu: ActiveMenu;\n hideSearchResultsTab: () => void;\n toggleActiveMenu: (menu: ActiveMenu) => void;\n}\n\nconst activeMenuContext = createContext(undefined);\n\nconst { Provider } = activeMenuContext;\n\nexport const ActiveMenuProvider: FC = ({ children }) => {\n const [activeMenu, setActiveMenu] = useState('');\n const { blur, clearResults, hide, setValue, show } = useSearchInput();\n const toggleActiveMenu = useCallback(\n (menu: ActiveMenu) => {\n if (menu === MenuTypes.SearchInput || menu === MenuTypes.SearchResults) {\n show();\n setActiveMenu(menu);\n } else if (activeMenu === menu) {\n hide();\n setActiveMenu('');\n } else {\n hide();\n setActiveMenu(menu);\n }\n },\n [activeMenu, hide, show],\n );\n const hideSearchResultsTab = useCallback(() => {\n blur();\n clearResults();\n hide();\n setActiveMenu('');\n setValue('');\n }, [blur, clearResults, hide, setValue]);\n const value = useMemo(\n () => ({ activeMenu, hideSearchResultsTab, toggleActiveMenu }),\n [activeMenu, hideSearchResultsTab, toggleActiveMenu],\n );\n\n return {children};\n};\n\nexport const useActiveMenu = () => {\n const context = useContext(activeMenuContext);\n if (context) {\n return context;\n }\n throw new Error('useActiveMenuContext must be used within a ActiveMenuProvider.');\n};\n","import useTestId from '@ori/testid-generator';\nimport * as ToggleMenuFlyout from '@ori-events/toggle-menu-flyout';\nimport { Box, CircularProgress, Modal, Slide, styled, useTheme } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { lazy, Suspense, useCallback } from 'react';\n\nimport { useActiveMenu } from '../../context/navigation';\nimport { useIsMobile } from '../../hooks';\n\nconst AccountFlyoutRoot = styled('div')(({ theme }) => ({\n background: theme.palette.common.white,\n height: '100%',\n paddingTop: 'var(--top-nav-height)',\n position: 'absolute',\n width: 280,\n}));\n\nconst AccountLazy = lazy(async () => import('./LoginLibrary')) as FC;\n\nconst fallback = (\n \n \n \n);\n\nexport const AccountFlyout: FC = () => {\n const { activeMenu, toggleActiveMenu } = useActiveMenu();\n const isMobile = useIsMobile();\n const { getTestId } = useTestId();\n const { zIndex } = useTheme();\n const handleModalClose = useCallback(\n () => toggleActiveMenu(ToggleMenuFlyout.MenuTypes.AccountSideMenu),\n [toggleActiveMenu],\n );\n const isAccountMenuActive = !isMobile && activeMenu === ToggleMenuFlyout.MenuTypes.AccountSideMenu;\n\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n","import { useMediaQuery } from '@ori-ui/mui';\nimport type { RefObject, ElementType } from 'react';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nexport const useHover = (\n iconOnHover: IconType,\n icon: IconType,\n): [RefObject, IconType] => {\n const [isHover, setIsHover] = useState(false);\n const ref = useRef(null);\n const isHoverAvailable = useMediaQuery('(hover: hover)');\n\n const getIcon = useMemo(() => {\n if (isHover) {\n return iconOnHover;\n }\n\n return icon;\n }, [isHover, icon, iconOnHover]);\n\n const handleMouseOver = useCallback(() => {\n setIsHover(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHover(false);\n }, []);\n\n useEffect(() => {\n const element = ref.current;\n\n if (isHoverAvailable) {\n element?.addEventListener('mouseover', handleMouseOver);\n element?.addEventListener('mouseleave', handleMouseLeave);\n }\n\n return () => {\n if (isHoverAvailable) {\n element?.removeEventListener('mouseover', handleMouseOver);\n element?.removeEventListener('mouseleave', handleMouseLeave);\n }\n };\n }, [isHoverAvailable, handleMouseOver, handleMouseLeave]);\n\n return [ref, getIcon];\n};\n","import { useToken } from '@ori/auth';\nimport { useGetCustomerProfile } from '@ori/global-api-client-react';\n\nexport const useCustomerInitials = () => {\n const { isAnonymousUser, customerId } = useToken();\n const { data } = useGetCustomerProfile(customerId, undefined, { swr: { enabled: !isAnonymousUser } });\n\n if (data) {\n const { firstName, lastName } = data;\n\n if (lastName) {\n return `${firstName ? firstName.charAt(0) : ''}${lastName.charAt(0)}`;\n }\n }\n\n return undefined;\n};\n","import { useToken } from '@ori/auth';\nimport { useLogin } from '@ori/login';\nimport useTestId from '@ori/testid-generator';\nimport { User, UserFilled } from '@ori-ui/icons';\nimport { Avatar, Button, ButtonBase, styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\n\nimport { useHover, useIsMobile, useCustomerInitials } from '../hooks';\nimport { useTranslations } from '../hooks/useTranslations';\n\nconst SignInLabel = styled(ButtonBase)<{\n disableRipple?: boolean;\n}>(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n color: theme.palette.text.primary,\n display: 'block',\n fontSize: theme.typography.pxToRem(14),\n fontWeight: theme.typography.fontWeightBold,\n textDecoration: 'none',\n whiteSpace: 'nowrap',\n textTransform: 'uppercase',\n marginLeft: theme.spacing(4),\n '&:hover, &:focus, &:active': {\n color: theme.palette.grey[600],\n cursor: 'pointer',\n },\n\n [theme.breakpoints.up('lg')]: {\n marginLeft: theme.spacing(6),\n },\n\n [theme.breakpoints.up('xl')]: {\n marginLeft: theme.spacing(8),\n },\n },\n}));\n\nconst DesktopUserIconButton = styled(Button)(({ theme }) => ({\n fontSize: theme.typography.pxToRem(14),\n whiteSpace: 'nowrap',\n\n 'span:nth-child(2)': {\n marginRight: theme.spacing(3),\n },\n\n lineHeight: '21px',\n fontWeight: theme.typography.fontWeightBold,\n svg: {\n marginLeft: theme.spacing(2),\n },\n}));\n\nconst MobileUserIconButton = styled(ButtonBase)(({ theme }) => ({\n fontSize: theme.typography.pxToRem(28),\n color: theme.palette.grey[700],\n marginLeft: theme.spacing(4),\n whiteSpace: 'nowrap',\n textTransform: 'uppercase',\n [theme.breakpoints.up('md')]: {\n alignItems: 'center',\n display: 'flex',\n\n '&:hover, &:focus, &:active': {\n color: theme.palette.grey[600],\n },\n },\n\n [theme.breakpoints.up('lg')]: {\n marginLeft: theme.spacing(6),\n },\n\n [theme.breakpoints.up('xl')]: {\n marginLeft: theme.spacing(8),\n },\n}));\n\nexport const UserAvatar = styled(Avatar)(({ theme }) => ({\n fontSize: `${theme.typography.pxToRem(10)} !important`,\n width: 22,\n height: 22,\n marginLeft: theme.spacing(4),\n backgroundColor: theme.palette.grey[700],\n\n [theme.breakpoints.down('md')]: {\n marginLeft: 0,\n },\n}));\n\nexport const UserSection: FC = () => {\n const [ref, Icon] = useHover(UserFilled, User);\n const isMobile = useIsMobile();\n const { getTestId } = useTestId();\n const { isAnonymousUser } = useToken();\n const { doLogin } = useLogin();\n\n const { formatMessage } = useTranslations();\n const customerInitials = useCustomerInitials();\n\n if (!isAnonymousUser) {\n if (!isMobile) {\n return (\n {customerInitials} : null}\n variant=\"contained\"\n color=\"secondary\"\n >\n {formatMessage('myAccount')}\n \n );\n }\n\n return (\n \n {customerInitials ? (\n \n {customerInitials}\n \n ) : null}\n \n );\n }\n\n if (isMobile) {\n return (\n \n \n \n );\n }\n\n return (\n \n {formatMessage('signIn')}\n \n );\n};\n","import useTestId from '@ori/testid-generator';\nimport type { SvgIcon } from '@ori-ui/mui';\nimport { ButtonBase, styled } from '@ori-ui/mui';\nimport type { FC, ReactNode } from 'react';\nimport { useCallback } from 'react';\n\nimport type { BurgerMenuTabNames } from '../../models';\nimport { UserAvatar } from '../UserSection';\n\nconst BurgerMenuTabRoot = styled(ButtonBase)<{ ownerState: { isActive: boolean } }>(({ ownerState, theme }) => ({\n alignItems: 'center',\n backgroundColor: theme.palette.grey[100],\n borderRadius: theme.spacing(0, 0, 1, 1),\n color: theme.palette.text.primary,\n display: 'flex',\n fontSize: theme.typography.overline.fontSize,\n fontWeight: theme.typography.fontWeightBold,\n justifyContent: 'flex-start',\n textTransform: 'uppercase',\n width: '50%',\n\n ...(ownerState.isActive && {\n backgroundColor: theme.palette.common.white,\n }),\n\n '&::before': {\n fontSize: theme.typography.pxToRem(29),\n margin: theme.spacing(0, 3),\n },\n}));\n\nconst BurgerMenuTabPrefixWrapper = styled('div')<{ ownerState: { isLoggedIn?: boolean } }>(({ ownerState, theme }) => ({\n borderRadius: '50%',\n display: 'flex',\n fontSize: theme.typography.pxToRem(29),\n height: 29,\n margin: theme.spacing(4, 2),\n\n ...(ownerState.isLoggedIn && {\n borderRadius: '50%',\n color: theme.palette.common.white,\n display: 'flex',\n fontSize: theme.typography.pxToRem(26),\n height: 26,\n }),\n}));\n\nconst BurgerMenuTabLabelWrapper = styled('div')(({ theme }) => ({\n marginRight: theme.spacing(3),\n overflow: 'hidden',\n textAlign: 'left',\n textOverflow: 'ellipsis',\n width: '100%',\n}));\n\ninterface BurgerMenuTabProps {\n activeTab: BurgerMenuTabNames;\n children?: ReactNode;\n tabName: BurgerMenuTabNames;\n tabPrefix: string | typeof SvgIcon;\n onTabClick: (tabName: BurgerMenuTabNames) => void;\n isLoggedIn?: boolean;\n}\n\nexport const BurgerMenuTab: FC = ({\n children,\n activeTab,\n tabPrefix,\n tabName,\n onTabClick,\n isLoggedIn,\n}) => {\n const clickHandler = useCallback(() => onTabClick(tabName), [onTabClick, tabName]);\n const TabIcon = tabPrefix;\n const ownerState = { isActive: activeTab === tabName, isLoggedIn };\n const { getTestId } = useTestId();\n\n return (\n \n \n {typeof tabPrefix === 'string' ? (\n {tabPrefix}\n ) : (\n \n )}\n \n \n {children}\n \n \n );\n};\n","export const vipOrderUrls = {\n access: '/system/ajax/stickybar/VipAccessJson',\n accessConsultant: (consultantNumber: string) =>\n `/system/ajax/VipShopping/AccessConsultant?consultantNumber=${consultantNumber}`,\n accessSwitch: (consultantNumber: number) =>\n `/system/ajax/StickyBar/VipAccessSwitch?ConsultantNumber=${consultantNumber}`,\n accessSwitchValidate: (consultantNumber: string) =>\n `/system/ajax/StickyBar/VipAccessSwitchValidate?ajaxId=69&related%5BConsultantNumber%5D=${consultantNumber}&activeInput=ConsultantNumber&ConsultantNumber=${consultantNumber}`,\n basket: '/shopping/basket',\n consultantNumbers: (hint: string) => `/system/ajax/VipShopping/GetConsultantNumbers?hint=${hint}`,\n};\n","import { useToken } from '@ori/auth';\nimport { axios } from '@ori/axios';\nimport { useGetApplicationsNavigationCustomerInfo } from '@ori/global-api-client-react';\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useContext, useEffect, useMemo, useState } from 'react';\n\nimport { useConfiguration } from './configurationContext';\nimport type { VipAccessResponse } from '../models';\nimport { vipOrderUrls } from '../utils';\n\nexport interface ConsultantContext {\n consultantNumber?: string | undefined;\n consultantType?: number | undefined;\n isOrderOnBehalfVisible?: boolean;\n vipAccess?: VipAccessResponse;\n}\n\nexport const consultantContext = createContext({});\n\nconst { Provider } = consultantContext;\n\nexport const ConsultantProvider: FC = ({ children }) => {\n const [vipAccess, setVipAccess] = useState();\n const { consultantNumber, consultantType } = useConfiguration();\n const { customerId, isAnonymousUser } = useToken();\n const { data } = useGetApplicationsNavigationCustomerInfo(customerId.toString(), undefined, {\n swr: { enabled: !isAnonymousUser },\n });\n useEffect(() => {\n const abortController = new AbortController();\n axios\n .get(vipOrderUrls.access, {\n baseURL: window.location.origin,\n signal: abortController.signal,\n })\n .then((response) => setVipAccess(response.data))\n // eslint-disable-next-line no-console -- log error to console\n .catch(console.error);\n\n return () => abortController.abort();\n }, []);\n const value = useMemo(\n () => ({\n consultantNumber: data?.consultantNumber?.toString() ?? consultantNumber,\n consultantType,\n isOrderOnBehalfVisible: !!(vipAccess?.VipAccessData?.ConsultantName && vipAccess.VipAccessData.ConsultantNumber),\n vipAccess,\n }),\n [consultantNumber, consultantType, data?.consultantNumber, vipAccess],\n );\n\n return {children};\n};\n\nexport const useConsultant = () => useContext(consultantContext);\n","import { useToken } from '@ori/auth';\nimport type { PersonalMenuProps } from '@ori/personal-menu';\nimport { lazy, useMemo } from 'react';\n\nimport { useConfiguration, useConsultant } from '../context';\n\nconst LazyPersonalMenu = lazy(async () => ({\n default: (await import('@ori/personal-menu')).PersonalMenu,\n}));\n\nexport const useLazyPersonalMenu = () => {\n const { customerId, token } = useToken();\n const {\n currentLanguage,\n globalApiUrl,\n mobileOfficeApiUrl,\n personalMenuInitialData,\n reportsItemName,\n staticApiUrl,\n tenant,\n } = useConfiguration();\n const { consultantNumber, consultantType } = useConsultant();\n const configuration = useMemo(\n () => ({\n consultantNumber,\n consultantType,\n customerId,\n globalApiUrl,\n lang: currentLanguage,\n mobileOfficeApiUrl,\n personalMenuInitialData,\n reportsItemName,\n staticApiUrl,\n tenant,\n token,\n }),\n [\n consultantNumber,\n consultantType,\n currentLanguage,\n customerId,\n globalApiUrl,\n mobileOfficeApiUrl,\n personalMenuInitialData,\n reportsItemName,\n staticApiUrl,\n tenant,\n token,\n ],\n );\n\n return ;\n};\n","export enum BurgerMenuTabNames {\n ProductsTab = 'products-tab',\n AccountTab = 'account-tab',\n}\n","import { useToken } from '@ori/auth';\nimport useTestId from '@ori/testid-generator';\nimport * as ToggleMenuFlyout from '@ori-events/toggle-menu-flyout';\nimport { BurgerMenu as BurgerMenuIcon } from '@ori-ui/icons';\nimport { Backdrop, Box, CircularProgress, Modal, SHADOW_LEVEL1, Slide, styled, useTheme } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { lazy, Suspense, useCallback, useEffect } from 'react';\n\nimport { BurgerMenuContent } from './BurgerMenuContent';\nimport { BurgerMenuLinks } from './BurgerMenuLinks/BurgerMenuLinks';\nimport { BurgerMenuTab } from './BurgerMenuTab';\nimport { TOP_NAV_HEIGHT } from '../../constants';\nimport { useActiveMenu, usePbsContent } from '../../context/navigation';\nimport { useIsMobile, useCustomerInitials, useLazyPersonalMenu } from '../../hooks';\nimport { BurgerMenuTabNames } from '../../models';\nimport { useTranslations } from '../../hooks/useTranslations';\n\nconst HEIGHT_BUFFER = 20;\n\nconst BurgerMenuRoot = styled('aside')<{ ownerState: { isMobile?: boolean; isDesktop?: boolean } }>(\n ({ ownerState, theme }) => ({\n backgroundColor: theme.palette.common.white,\n border: `1px solid ${theme.palette.grey[100]}`,\n display: 'none',\n transition: 'top var(--top-nav-height-animation)',\n\n ...(ownerState.isMobile && {\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n maxWidth: 'calc(100% - 45px)',\n position: 'absolute',\n width: 330,\n }),\n\n ...(ownerState.isDesktop && {\n boxShadow: SHADOW_LEVEL1,\n display: 'flex',\n left: 0,\n minHeight: 590,\n position: 'absolute',\n top: 'var(--top-nav-height)',\n width: '100%',\n }),\n }),\n);\n\nconst BurgerMenuInner = styled('div')(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n display: 'flex',\n width: 'inherit',\n maxHeight: `calc(100vh - ${TOP_NAV_HEIGHT}px - ${HEIGHT_BUFFER}px)`,\n overflowX: 'hidden',\n overflowY: 'auto',\n },\n}));\n\nconst BurgerMenuContainer = styled('div')(() => ({\n display: 'flex',\n height: 54,\n width: '100%',\n}));\n\nconst LazyAccount = lazy(async () => import('../Account/LoginLibrary')) as FC;\n\nconst LazyBurgerMenuLinks = lazy(async () => import('./BurgerMenuLinks/BurgerMenuLinks')) as FC;\n\nconst fallback = (\n \n \n \n);\n\nexport const BurgerMenu: FC = () => {\n const { BurgerMenu: BurgerMenuType, AccountSideMenu: AccountSideMenuType } = ToggleMenuFlyout.MenuTypes;\n const { activeMenu, toggleActiveMenu } = useActiveMenu();\n const { isShown, setIsShown } = usePbsContent();\n const isMobile = useIsMobile();\n const ownerState = { isMobile };\n const handleTabClick = useCallback(\n (tabName: BurgerMenuTabNames) => {\n const menuType: ToggleMenuFlyout.MenuTypes =\n tabName === BurgerMenuTabNames.ProductsTab ? BurgerMenuType : AccountSideMenuType;\n toggleActiveMenu(menuType);\n },\n [AccountSideMenuType, BurgerMenuType, toggleActiveMenu],\n );\n const { formatMessage } = useTranslations();\n const { zIndex } = useTheme();\n const customerInitials = useCustomerInitials();\n const { isAnonymousUser } = useToken();\n const isLoggedIn = !isAnonymousUser;\n const isMenuActive = activeMenu === BurgerMenuType || (isMobile && activeMenu === AccountSideMenuType);\n const activeTab = activeMenu === BurgerMenuType ? BurgerMenuTabNames.ProductsTab : BurgerMenuTabNames.AccountTab;\n const { getTestId } = useTestId();\n const personalMenu = useLazyPersonalMenu();\n\n useEffect(() => {\n if (isShown && activeMenu === '') {\n setIsShown(true);\n }\n }, [activeMenu, isShown, setIsShown]);\n\n const accountTabContent = isAnonymousUser ? : personalMenu;\n\n const onClickOverlay = useCallback(() => {\n toggleActiveMenu(BurgerMenuType);\n }, [BurgerMenuType, toggleActiveMenu]);\n\n if (isMobile) {\n return (\n \n \n \n \n \n {formatMessage('products')}\n \n \n {isLoggedIn ? formatMessage('myAccount') : `${formatMessage('logIn')}/${formatMessage('register')}`}\n \n \n \n {activeTab === BurgerMenuTabNames.ProductsTab && }\n {activeTab === BurgerMenuTabNames.AccountTab && accountTabContent}\n \n \n \n \n );\n }\n\n if (!isMenuActive) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n \n );\n};\n","export const SEARCH_THROTTLE_TIME = 1000 * 60 * 5;\n\nexport const TOP_NAV_HEIGHT = 80;\n\nexport const TOP_NAV_HEIGHT_MOBILE = 56;\n","import type { ImageSizesHelperParams } from '@ori/image-sizes-helper';\nimport { getImageVariants, generateSrcSet } from '@ori/image-sizes-helper';\nimport type { FC } from 'react';\n\ninterface TileProps {\n image: string;\n name?: string;\n}\n\nexport const JoinTileImage: FC = ({ image, name }) => {\n const imagesVariants: ImageSizesHelperParams = {\n url: image,\n params: [\n {\n width: 680,\n quality: 90,\n },\n ],\n };\n const images = getImageVariants(imagesVariants);\n\n return (\n \n );\n};\n","import { StaticNavigationNavigationItemDtoType } from '@ori/static-api-client-react';\n\nimport { createNavigationItemsContext } from './internal';\n\nexport const {\n navigationItemsContext: joinTilesContext,\n NavigationItemsProvider: JoinTilesProvider,\n useNavigationItems: useJoinTiles,\n} = createNavigationItemsContext(StaticNavigationNavigationItemDtoType.JoinTiles);\n","import { StaticNavigationNavigationItemDtoLinkType } from '@ori/static-api-client-react';\nimport useTestId from '@ori/testid-generator';\nimport * as ToggleMenuFlyout from '@ori-events/toggle-menu-flyout';\nimport { alpha, Backdrop, Link, Typography, styled, SHADOW_LEVEL1 } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { useCallback } from 'react';\n\nimport { JoinTileImage } from './JoinTileImage';\nimport { useActiveMenu, useJoinTiles } from '../../context/navigation';\n\nconst JoinMenuRoot = styled('div')<{ ownerState: { isVisible: boolean } }>(({ ownerState, theme }) => ({\n backgroundColor: theme.palette.common.white,\n border: `1px solid ${theme.palette.grey[100]}`,\n display: 'none',\n ...(ownerState.isVisible && {\n [theme.breakpoints.up('md')]: {\n boxShadow: SHADOW_LEVEL1,\n display: 'flex',\n flexDirection: 'column',\n left: 0,\n position: 'absolute',\n top: 'var(--top-nav-height)',\n transition: 'top var(--top-nav-height-animation)',\n width: '100%',\n },\n }),\n}));\n\nconst JoinTilesWrapper = styled('div')(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n alignItems: 'center',\n borderBottom: `6px solid ${theme.palette.common.white}`,\n columnGap: 6,\n display: 'grid',\n gridAutoColumns: 'minmax(325px, 680px)',\n gridAutoFlow: 'column',\n gridTemplateRows: 325,\n justifyContent: 'center',\n overflow: 'hidden',\n },\n}));\n\nconst JoinTileLink = styled(Link)(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n color: theme.palette.common.white,\n display: 'flex',\n height: '100%',\n overflow: 'hidden',\n position: 'relative',\n width: '100%',\n\n '&:hover, &:focus, &:active': {\n color: theme.palette.common.white,\n webkitTapHighlightColor: 'transparent',\n },\n\n '&:hover::before': {\n background: alpha(theme.palette.common.black, 0.3),\n },\n\n '&:hover': {\n '.joinTileTitle': {\n background: '#cda89c',\n borderColor: '#cda89c',\n },\n },\n\n '&::before': {\n background: 'transparent',\n content: '\"\"',\n height: '100%',\n position: 'absolute',\n transition: '0.25s',\n width: '100%',\n },\n\n '& > img': {\n height: '100%',\n objectFit: 'cover',\n width: '100%',\n },\n },\n}));\n\nconst JoinTileDescription = styled(Typography)(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n fontWeight: theme.typography.fontWeightBold,\n margin: theme.spacing(0, 6),\n overflow: 'hidden',\n position: 'absolute',\n textAlign: 'center',\n textOverflow: 'ellipsis',\n textShadow: theme.shadows[1],\n top: '50%',\n transform: 'translateY(-150%)',\n whiteSpace: 'nowrap',\n },\n}));\n\nconst JoinTileTitle = styled(Typography)(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n border: `2px solid ${theme.palette.common.white}`,\n borderRadius: 23,\n fontSize: theme.typography.body1,\n fontWeight: theme.typography.fontWeightBold,\n left: '50%',\n lineHeight: theme.typography.pxToRem(41),\n maxWidth: 295,\n minWidth: 125,\n overflow: 'hidden',\n padding: theme.spacing(0, 6),\n position: 'absolute',\n textAlign: 'center',\n textOverflow: 'ellipsis',\n textShadow: theme.shadows[1],\n top: '50%',\n transform: 'translate(-50%, 50%)',\n transition: '0.25s',\n whiteSpace: 'nowrap',\n },\n}));\n\nconst JoinMenuIdkyLink = styled(Link)(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n alignSelf: 'center',\n color: theme.palette.default.main,\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightBold,\n lineHeight: theme.typography.pxToRem(23),\n margin: theme.spacing(2, 0),\n textDecoration: 'underline',\n transition: '0.25s',\n\n '&:hover, &:focus, &:active': {\n color: theme.palette.default.light,\n webkitTapHighlightColor: 'transparent',\n },\n },\n}));\n\nexport const JoinMenu: FC = () => {\n const { activeMenu, toggleActiveMenu } = useActiveMenu();\n const { items } = useJoinTiles();\n const exitMenu = useCallback(() => toggleActiveMenu(''), [toggleActiveMenu]);\n const iDontKnowYetLink = items.find(\n ({ linkType }) => linkType === StaticNavigationNavigationItemDtoLinkType.IDontKnowYet,\n );\n const joinTiles = items.filter(({ linkType }) => linkType === StaticNavigationNavigationItemDtoLinkType.MenuTiles);\n\n const { getTestId } = useTestId();\n\n if (joinTiles.length === 0) {\n return null;\n }\n\n const isMenuActive = activeMenu === ToggleMenuFlyout.MenuTypes.JoinMenu;\n const ownerState = { isVisible: isMenuActive };\n\n return (\n \n \n {joinTiles.map(({ url, imageUrl, title, description }) => (\n \n {imageUrl ? (\n \n ) : null}\n \n {description}\n \n \n {title}\n \n \n ))}\n \n {iDontKnowYetLink?.url ? (\n {iDontKnowYetLink.title}\n ) : null}\n \n \n );\n};\n","export enum ReferralType {\n None = 'None',\n PBS = 'PBS',\n ECREF = 'ECREF',\n}\n","export enum TooltipTestIds {\n ROOT = 'tooltip-root',\n TITLE = 'tooltip-title',\n TEXT = 'tooltip-text',\n AVATAR = 'tooltip-avatar',\n FALLBACK_AVATAR = 'tooltip-fallback-avatar',\n AVATAR_BADGE_IS_LIVE = 'tooltip-avatar-badge-is-live',\n AVATAR_BADGE_WAS_LIVE = 'tooltip-avatar-badge-was-live',\n USER_NAME = 'tooltip-user-name',\n}\n","/* istanbul ignore file */\n/**\n * DO NOT EDIT!\n * This file was autogenerated by npm script `localizations-codegen`.\n * Changes may cause incorrect behavior and will be lost when the file is regenerated.\n *\n * Run `npx localizations-codegen` to regenerate.\n */\nimport { FormattedMessage as NotTypedFormattedMessage, type FormattedMessageProps } from '@ori/i18n';\n\nimport type { DefaultTranslations } from '../constants/defaultTranslations';\n\n/**\n * Renders a formatted internationalized message using the provided translation data.\n *\n * @returns The FormattedMessage typed with keys within the specified namespace.\n */\nexport const FormattedMessage = (props: FormattedMessageProps) => (\n {...props} />\n);\n","import useTestId from '@ori/testid-generator';\nimport { Pbs as PbsWaveIcon } from '@ori-ui/icons';\nimport { Avatar, Stack, styled, Typography, useTheme } from '@ori-ui/mui';\nimport type { DetailedHTMLProps, FC, HTMLAttributes } from 'react';\n\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { LiveStreamingStates, TooltipTestIds, TranslationKey, ReferralType } from '../../models';\nimport { formatUserName } from '../../utils';\nimport { LiveStreamingStateWrap } from '../common/LiveStreamingStateWrap';\nimport { FormattedMessage } from '../FormattedMessage';\n\n/**\n * Avatar size. Value is in pixels\n */\nconst AVATAR_SIZE = 50;\n\n/**\n * Max width of tooltip component.\n */\nconst ROOT_MAX_WIDTH = 230;\n\n/**\n * How large fallback icon representing avatar should be\n */\nconst fallBackAvatarIconSize = 27;\n\n/**\n * Tooltip Arrow width and height\n */\nconst ARROW_SIZE = 30; // px\n\n/**\n * Tooltip arrow\n */\nconst ARROW_OFFSET = {\n x: 7, // px\n y: 0, // px\n};\n\nconst Root = styled('div')(({ theme, onClick }) => ({\n maxWidth: ROOT_MAX_WIDTH,\n width: '100vw',\n position: 'relative',\n boxShadow: theme.shadows[4],\n borderRadius: theme.shape.largeComponentRadius,\n display: 'flex',\n ...(onClick && { cursor: 'pointer' }),\n}));\n\nconst ContentWrap = styled('div')(({ theme }) => ({\n backgroundColor: theme.palette.common.white,\n padding: theme.spacing(3),\n width: '100%',\n borderRadius: theme.shape.largeComponentRadius,\n zIndex: 1,\n position: 'relative',\n}));\n\nconst TitleWrap = styled(Stack)(({ theme }) => ({\n marginBottom: theme.spacing(1.5),\n justifyContent: 'space-between',\n alignItems: 'center',\n}));\n\nconst Title = styled(Typography)({\n fontWeight: 'bold',\n lineHeight: '22px',\n});\n\nconst StyledAvatar = styled(Avatar)(({ theme }) => ({\n width: AVATAR_SIZE,\n height: AVATAR_SIZE,\n backgroundColor: theme.palette.grey[100],\n color: theme.palette.grey[900],\n}));\n\nconst TooltipArrow = styled('div')(({ theme }) => ({\n overflow: 'hidden',\n position: 'absolute',\n zIndex: 0,\n width: ARROW_SIZE,\n height: ARROW_SIZE,\n top: ARROW_OFFSET.y,\n left: ARROW_OFFSET.x,\n boxShadow: theme.shadows[4],\n borderRadius: theme.shape.mediumComponentRadius,\n backgroundColor: theme.palette.common.white,\n transform: 'rotate(33deg) skewY(25deg)',\n}));\n\nexport type TooltipBaseProps = DetailedHTMLProps, HTMLDivElement>;\n\nexport type TooltipProps = TooltipBaseProps & {\n firstName: string | null | undefined;\n lastName: string | null | undefined;\n photoUrl: string | null | undefined;\n liveStreamingState?: LiveStreamingStates;\n referralType: ReferralType;\n};\n\nconst getContentTranslationKey = (type: ReferralType): TranslationKey => {\n switch (type) {\n case ReferralType.PBS:\n return TranslationKey.ReferralMessageTooltip;\n case ReferralType.ECREF:\n return TranslationKey.InviteMessageTooltip;\n default:\n throw new Error('Unknown referral tooltip type.');\n }\n};\n\nexport const Tooltip: FC = ({\n firstName,\n lastName,\n photoUrl,\n liveStreamingState,\n referralType,\n ...restProps\n}) => {\n const { formatMessage } = useTranslations();\n const theme = useTheme();\n const { getTestIdProps } = useTestId();\n const fullName = formatUserName(firstName, lastName);\n\n return (\n \n \n \n \n \n {formatMessage(TranslationKey.Greetings)}\n \n \n \n \n \n \n \n \n {chunks},\n }}\n />\n \n \n \n );\n};\n","export function formatUserName(firstName: string | null | undefined, lastName: string | null | undefined): string {\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- We want to include empty strings as well\n return firstName && lastName ? `${firstName} ${lastName}` : firstName || lastName || '';\n}\n","import Cookies from 'js-cookie';\nimport { useEffect, useState } from 'react';\n\nimport { PbsCookieNames, ReferralType } from '../../models';\nimport type { CookieStoreInfo } from '../../types';\n\nexport const useCookieStoreInfo = () => {\n const [cookieInfo, setCookieInfo] = useState({\n type: ReferralType.None,\n productListType: 'Personal',\n });\n\n useEffect(() => {\n const pbsOwnerCookie = Cookies.get(PbsCookieNames.PBS_OWNER);\n const ecrefCookie = Cookies.get(PbsCookieNames.ECREF);\n\n if (pbsOwnerCookie) {\n setCookieInfo({\n owner: pbsOwnerCookie,\n productListType: 'Personal',\n type: ReferralType.PBS,\n });\n\n return;\n }\n\n if (ecrefCookie) {\n setCookieInfo({\n owner: ecrefCookie,\n productListType: 'Personal',\n type: ReferralType.ECREF,\n });\n }\n }, []);\n\n return cookieInfo;\n};\n","import { gql } from '@ori/fetching';\n\nexport const inviteFriendQuery = gql`\n query inviteFriend($consultant: Int!) {\n inviteFriendProfile(consultantNumber: $consultant) {\n firstName\n lastName\n photoUrl\n }\n }\n`;\n","import { useContext, createContext } from 'react';\n\nimport { configurationContextDefaultValues } from '../constants';\nimport type { AppConfiguration } from '../types';\n\nexport const configurationContext = createContext(configurationContextDefaultValues);\n\nexport const ConfigurationProvider = configurationContext.Provider;\n\nexport const useConfiguration = () => useContext(configurationContext);\n","import { useToken } from '@ori/auth';\nimport { getHeaders, useGraphqlQuery } from '@ori/fetching';\nimport cloneDeep from 'lodash.clonedeep';\nimport { useMemo } from 'react';\n\nimport { useCookieStoreInfo } from './useCookieStoreInfo';\nimport { PACKAGE_NAME } from '../../constants';\nimport { ReferralType } from '../../models';\nimport type { InviteFriendQuery, InviteFriendQueryVariables } from '../../models/graphql-types/operations';\nimport { inviteFriendQuery } from '../../queries';\nimport { useConfiguration } from '../ConfigurationProvider';\n\nexport const useInviteFriendData = () => {\n const { isEnabled, currentLanguage, graphqlUrl, tenant } = useConfiguration();\n const { isAnonymousUser, token, customerId } = useToken();\n const { type, owner } = useCookieStoreInfo();\n\n const consultant = Number.parseInt(owner ?? '0', 10);\n\n const { data: dataFromApi, error } = useGraphqlQuery({\n url: graphqlUrl,\n query: inviteFriendQuery,\n headers: getHeaders({\n tenant,\n language: currentLanguage,\n customerId,\n token,\n sourceAppName: PACKAGE_NAME,\n }),\n variables: {\n consultant,\n },\n skip: type !== ReferralType.ECREF || !isAnonymousUser || !isEnabled || !consultant,\n });\n\n if (error) {\n console.error(error);\n }\n\n return useMemo(() => {\n if (!dataFromApi?.inviteFriendProfile) {\n return null;\n }\n\n const result = cloneDeep(dataFromApi);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line unicorn/no-lonely-if -- webpack dead code elimination\n if (result.inviteFriendProfile?.photoUrl) {\n const photoUrl = new URL(result.inviteFriendProfile.photoUrl);\n\n return {\n ...result,\n inviteFriendProfile: {\n ...result.inviteFriendProfile,\n photoUrl: `${photoUrl.pathname}?${photoUrl.searchParams.toString()}`,\n },\n };\n }\n }\n\n return result;\n }, [dataFromApi]);\n};\n","import { useToken } from '@ori/auth';\nimport { useGetCustomerSponsorPersonalBeautyStore } from '@ori/global-api-client-react';\n\nconst useSponsorPersonalBeautyStoreInfo = () => {\n const { isAnonymousUser, customerId } = useToken();\n const result = useGetCustomerSponsorPersonalBeautyStore(customerId, undefined, {\n swr: {\n enabled: !isAnonymousUser,\n },\n });\n\n if (result.error) {\n console.error(result.error);\n }\n\n return result;\n};\n\nexport default useSponsorPersonalBeautyStoreInfo;\n","import { gql } from '@ori/fetching';\n\nexport const beautyStoreQuery = gql`\n query beautyStore($name: ID, $productListType: ProductListType!) {\n application {\n personalProductListConfiguration {\n isPplEnabled\n addThis\n }\n videoShopping {\n configuration {\n isVideoShoppingEnabled\n addThis\n }\n }\n }\n beautyStore(name: $name) {\n profile {\n name\n firstName\n lastName\n photoUrl\n contacts {\n type\n value\n }\n referralProgram {\n title\n greetingMessage\n message\n benefitsLink {\n relativeUrl\n title\n }\n allowedContacts\n }\n }\n productLists(productListType: $productListType) {\n productListId\n items {\n itemCode\n }\n }\n videoShows {\n showId\n isCurrent\n endedAtUtc\n startedAtUtc\n typeOfShow\n }\n }\n }\n`;\n","import { useToken } from '@ori/auth';\nimport { getHeaders, useGraphqlQuery } from '@ori/fetching';\nimport cloneDeep from 'lodash.clonedeep';\nimport { useMemo } from 'react';\n\nimport { useCookieStoreInfo } from './useCookieStoreInfo';\nimport { PACKAGE_NAME } from '../../constants';\nimport useSponsorPersonalBeautyStoreInfo from '../../hooks/useSponsorPersonalBeautyStoreInfo';\nimport type { ProductListType } from '../../models';\nimport { ReferralType } from '../../models';\nimport type { BeautyStoreQuery, BeautyStoreQueryVariables } from '../../models/graphql-types/operations';\nimport { beautyStoreQuery } from '../../queries';\nimport { useConfiguration } from '../ConfigurationProvider';\n\nexport const usePersonalBeautyStoreData = () => {\n const { isEnabled, currentLanguage, graphqlUrl, tenant } = useConfiguration();\n const { isAnonymousUser, customerId, token } = useToken();\n const { type, owner, productListType } = useCookieStoreInfo();\n const { data: sponsorData } = useSponsorPersonalBeautyStoreInfo();\n const shouldCall = type === ReferralType.PBS && isEnabled && Boolean(owner);\n const { data: dataFromApi, error } = useGraphqlQuery({\n url: graphqlUrl,\n query: beautyStoreQuery,\n headers: getHeaders({\n tenant,\n language: currentLanguage,\n customerId,\n token,\n sourceAppName: PACKAGE_NAME,\n }),\n variables: {\n name: isAnonymousUser ? owner : sponsorData?.name,\n productListType: productListType as ProductListType,\n },\n skip: isAnonymousUser ? !shouldCall : !sponsorData?.name,\n });\n\n if (error) {\n console.error(error);\n }\n\n return useMemo(() => {\n if (!dataFromApi?.beautyStore || !dataFromApi.application) {\n return null;\n }\n\n const result = cloneDeep(dataFromApi);\n\n if (process.env.NODE_ENV !== 'production') {\n if (result.beautyStore?.profile?.photoUrl) {\n const photoUrl = new URL(result.beautyStore.profile.photoUrl);\n\n // photoUrl is readOnly so it cannot be reassigned\n return {\n ...result,\n beautyStore: {\n ...result.beautyStore,\n profile: {\n ...result.beautyStore.profile,\n photoUrl: `${photoUrl.pathname}?${photoUrl.searchParams.toString()}`,\n },\n },\n };\n }\n\n return result;\n }\n\n return result;\n }, [dataFromApi]);\n};\n","import { useInviteFriendData } from './useInviteFriendData';\nimport { usePersonalBeautyStoreData } from './usePersonalBeautyStoreData';\nimport type { UserInfo } from '../../types/UserInfo';\n\nexport const usePersonalBeautyStoreUserInfo = (): UserInfo => {\n const pbsData = usePersonalBeautyStoreData();\n const inviteFriendData = useInviteFriendData();\n\n if (pbsData) {\n const { firstName, lastName, photoUrl } = pbsData.beautyStore?.profile ?? {};\n\n return { firstName: firstName ?? null, lastName: lastName ?? null, photoUrl: photoUrl ?? null };\n }\n\n if (inviteFriendData) {\n const { firstName, lastName, photoUrl } = inviteFriendData.inviteFriendProfile ?? {};\n\n return { firstName: firstName ?? null, lastName: lastName ?? null, photoUrl: photoUrl ?? null };\n }\n\n return {\n firstName: null,\n lastName: null,\n photoUrl: null,\n };\n};\n","import type { FC } from 'react';\nimport { useCallback, useEffect } from 'react';\n\nimport { ComponentWrapper } from './ComponentWrapper';\nimport type { TooltipBaseProps } from '../components';\nimport { Tooltip } from '../components';\nimport { usePersonalBeautyStore, usePersonalBeautyStoreUserInfo } from '../contexts';\nimport { ReferralType } from '../models';\nimport { getLiveStreamingStateByVideoConfig } from '../utils';\n\n/**\n * Time after which will be tooltip automatically closed\n */\nconst AUTO_CLOSE_TIME = 5000; // ms\n\nexport interface TooltipContainerProps extends TooltipBaseProps {\n /**\n * If tooltip should close itself after period of time\n * @defaultValue true\n */\n autoClose?: boolean;\n}\n\nexport const TooltipContainer: FC = ({ onClick, autoClose = true, ...props }) => {\n const { canDisplayTooltip, setTooltipWasShown, pbsData, storeInfo } = usePersonalBeautyStore();\n\n const { firstName, lastName, photoUrl } = usePersonalBeautyStoreUserInfo();\n const { isVideoShoppingEnabled } = pbsData?.application?.videoShopping?.configuration ?? {};\n const currentVideoShow = pbsData?.beautyStore?.videoShows?.find((show) => show?.isCurrent);\n\n // Custom callback, if user clicks tooltip then we trigger onClick and hide it\n const onClickCallback = useCallback>(\n (e) => {\n if (typeof onClick === 'function') {\n onClick(e);\n }\n // Just hide tooltip right away if user clicked\n setTooltipWasShown(true);\n },\n [onClick, setTooltipWasShown],\n );\n\n // Autoclose after defined time if conditions are met\n useEffect(() => {\n let timer: ReturnType | undefined;\n\n // We only set timer if tooltip will render, was not shown before on device and if auto-close is enabled\n if (canDisplayTooltip && autoClose) {\n timer = setTimeout(() => setTooltipWasShown(true), AUTO_CLOSE_TIME);\n }\n\n return () => clearTimeout(timer);\n }, [canDisplayTooltip, autoClose, setTooltipWasShown]);\n\n if (!canDisplayTooltip) {\n return null;\n }\n\n return (\n \n \n \n );\n};\n","import type { Data, MenuTypes } from '@ori-events/toggle-menu-flyout';\nimport { Name } from '@ori-events/toggle-menu-flyout';\n\nimport type { ActiveMenu } from '../context/navigation';\n\nconst event = (menuType: MenuTypes) => new CustomEvent(Name, { detail: { menuType } });\n\nexport const dispatchToggleMenu = (menuToggle: MenuTypes, activeMenu?: ActiveMenu) => {\n if (activeMenu && menuToggle !== activeMenu) {\n window.dispatchEvent(event(activeMenu));\n }\n\n requestAnimationFrame(() => {\n window.dispatchEvent(event(menuToggle));\n });\n};\n","import * as ToggleMenuFlyout from '@ori-events/toggle-menu-flyout';\nimport * as UserAction from '@ori-events/user-action';\n\nimport { CLICK_BURGER_MENU } from '../constants';\nimport { useActiveMenu } from '../context/navigation/activeMenuContext';\nimport { dispatchToggleMenu } from '../utils';\n\nconst toggleMenu = () => {\n UserAction.dispatch(CLICK_BURGER_MENU);\n dispatchToggleMenu(ToggleMenuFlyout.MenuTypes.BurgerMenu);\n};\n\nexport const useToggleMenu = () => {\n const { activeMenu } = useActiveMenu();\n\n return [activeMenu === ToggleMenuFlyout.MenuTypes.BurgerMenu, toggleMenu] as const;\n};\n","import { HeartsAnimation } from '@ori/favorites-heart';\nimport { usePersonalBeautyStore } from '@ori/personal-beauty-store';\nimport useTestId from '@ori/testid-generator';\nimport * as FavoritesUpdatedEvent from '@ori-events/favorites-updated';\nimport { ButtonBase, styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { useEffect, useState, useCallback } from 'react';\n\nimport { useConfiguration } from '../../context';\nimport { useToggleMenu } from '../../hooks';\nimport { useTranslations } from '../../hooks/useTranslations';\n\nconst BurgerMenuIconRoot = styled(ButtonBase)<{ ownerState?: { isOpen?: boolean } }>(({ ownerState, theme }) => ({\n color: theme.palette.grey.A700,\n fontSize: theme.typography.pxToRem(28),\n height: 32,\n marginRight: theme.spacing(3),\n padding: '0 0 0 3px',\n\n [theme.breakpoints.up('sm')]: {\n marginRight: theme.spacing(6),\n },\n\n [theme.breakpoints.up('md')]: {\n '&:hover': {\n '.burgerMenuIconLine': {\n height: 3,\n },\n },\n\n ...(ownerState?.isOpen && {\n '&:hover': {\n '.burgerMenuIconLine': {\n height: 2,\n },\n },\n }),\n },\n\n [theme.breakpoints.up('lg')]: {\n marginRight: theme.spacing(8),\n },\n}));\n\nconst BurgerMenuIconWrapper = styled('div')<{\n ownerState?: { isOpen?: boolean; isMobile?: boolean };\n}>(({ ownerState, theme }) => ({\n display: 'none',\n\n ...(ownerState?.isMobile && {\n display: 'block',\n }),\n\n [theme.breakpoints.up('md')]: {\n display: 'block',\n\n ...(ownerState?.isMobile && {\n display: 'none',\n }),\n },\n}));\n\nconst BurgerMenuIconLine = styled('div')<{\n ownerState?: { isOpen?: boolean; isMobile?: boolean };\n}>(({ ownerState, theme }) => ({\n backgroundColor: theme.palette.grey.A700,\n height: 2,\n margin: '6px 0',\n opacity: 1,\n position: 'relative',\n transform: 'translateX(0) rotate(0) translateY(0)',\n transition: 'opacity 0.3s linear, transform 0.3s linear',\n width: 24,\n\n ...(ownerState?.isMobile && {\n display: 'block',\n }),\n\n [theme.breakpoints.up('md')]: {\n width: 25,\n ...(ownerState?.isOpen && {\n '&:nth-of-type(1)': {\n transform: 'rotate(45deg) translateY(9px) translateX(2px)',\n },\n\n '&:nth-of-type(2)': {\n opacity: 0,\n transform: 'translateX(22px)',\n },\n\n '&:nth-of-type(3)': {\n transform: 'rotate(-45deg) translateY(-9px) translateX(2px);',\n },\n }),\n },\n}));\n\nexport const BurgerMenuIcon: FC = () => {\n const [menuIsOpen, toggleMenu] = useToggleMenu();\n const [wasFavoriteAdded, setWasFavoriteAdded] = useState(false);\n const {\n tooltipWasShown: pbsTooltipWasShown,\n setTooltipWasShown: setPbsTooltipWasShown,\n pbsData,\n } = usePersonalBeautyStore();\n\n const { pbsIconInBurgerMenu } = useConfiguration();\n const { formatMessage } = useTranslations();\n const ownerState = { isOpen: menuIsOpen };\n const { getTestId } = useTestId();\n\n const onClickCallback = useCallback(() => {\n const { firstName, lastName } = pbsData?.beautyStore?.profile ?? {};\n\n if (!pbsTooltipWasShown && pbsIconInBurgerMenu && firstName && lastName) {\n setPbsTooltipWasShown(true);\n }\n\n toggleMenu();\n }, [pbsTooltipWasShown, toggleMenu, setPbsTooltipWasShown, pbsIconInBurgerMenu, pbsData?.beautyStore?.profile]);\n\n const onFavoritesUpdated = ({ detail: { favorites, lastUpdated } }: FavoritesUpdatedEvent.Event) => {\n if (lastUpdated && favorites.includes(lastUpdated)) {\n setWasFavoriteAdded(() => true);\n\n setTimeout(() => {\n setWasFavoriteAdded(() => false);\n }, 0);\n }\n };\n\n useEffect(() => {\n window.addEventListener(FavoritesUpdatedEvent.Name, onFavoritesUpdated as EventListener);\n\n return () => {\n window.removeEventListener(FavoritesUpdatedEvent.Name, onFavoritesUpdated as EventListener);\n };\n }, []);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { TooltipContainer as PbsTooltip } from '@ori/personal-beauty-store';\nimport { styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { useCallback } from 'react';\n\nimport { BurgerMenuIcon } from './BurgerMenuIcon';\nimport { useToggleMenu } from '../../hooks';\n\nconst pbsTooltipOffset = {\n x: -10,\n y: -40,\n};\n\nconst BurgerMenuToggleRoot = styled('div')({\n position: 'relative',\n});\n\nconst StyledPbsTooltip = styled(PbsTooltip)({\n position: 'absolute',\n top: `calc(100% - ${pbsTooltipOffset.y}px)`,\n left: pbsTooltipOffset.x,\n});\n\nexport const BurgerMenuToggle: FC = () => {\n const [, toggleMenu] = useToggleMenu();\n\n const onPbsTooltipClick = useCallback(() => {\n toggleMenu();\n }, [toggleMenu]);\n\n return (\n \n \n \n \n );\n};\n","import useTestId from '@ori/testid-generator';\nimport { Box, Link, styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\n\nimport { useIsMarketCN } from '../hooks/useIsMarketCN';\n\nconst OriflameLogoSvg = styled('svg')(({ theme }) => ({\n fill: theme.palette.grey[700],\n width: 71,\n transition: 'width var(--top-nav-height-animation)',\n\n [theme.breakpoints.up('sm')]: {\n width: 100,\n },\n\n [theme.breakpoints.up('md')]: {\n width: 135,\n },\n}));\n\nconst chineseLogo = (\n ({ [theme.breakpoints.up('md')]: { width: 160 } })}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 151 45\"\n data-id=\"cn\"\n >\n \n \n);\n\nconst commonLogo = (\n \n \n \n);\n\nexport const OriflameLogo: FC = () => {\n const { getTestId } = useTestId();\n const isMarketCN = useIsMarketCN();\n\n return (\n \n \n {isMarketCN ? chineseLogo : commonLogo}\n \n \n );\n};\n","import { styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\n\nimport { BurgerMenuToggle } from './BurgerMenu/BurgerMenuToggle';\nimport { OriflameLogo } from './OriflameLogo';\n\nconst LeftActionsSectionRoot = styled('div')(({ theme }) => ({\n alignItems: 'center',\n display: 'flex',\n\n [theme.breakpoints.up('sm')]: {\n maxWidth: 'none',\n },\n}));\n\nexport const LeftActionsSection: FC = () => (\n \n \n \n \n);\n","/* eslint-disable react/jsx-no-bind -- Designed by MUI. */\n/* eslint-disable no-console -- We want to log errors in case of failed calls. */\nimport { axios } from '@ori/axios';\nimport { Autocomplete, Button, styled, TextField } from '@ori-ui/mui';\nimport type { FC, ChangeEvent, SyntheticEvent } from 'react';\nimport { useCallback, useRef, useState } from 'react';\nimport { useForm } from 'react-hook-form';\n\nimport { useTranslations } from '../../hooks/useTranslations';\nimport {\n type AccessConsultantResponse,\n type ConsultantNumberHint,\n type GetConsultantNumbersResponse,\n type VipAccessLabels,\n type VipAccessValidateResponse,\n} from '../../models';\nimport { vipOrderUrls } from '../../utils';\n\nconst VipOrderFormRoot = styled('form')(({ theme }) => ({\n alignItems: 'center',\n columnGap: theme.spacing(4),\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n overflowX: 'hidden',\n}));\n\ninterface VipOrderFormProps {\n vipAccessLabels: VipAccessLabels;\n}\n\nexport const ChangeConsultantForm: FC = ({\n vipAccessLabels: { ConsultantChangeConsultantNumber },\n}) => {\n const abortControllerRef = useRef(new AbortController());\n const formRef = useRef(null);\n const [areHintsLoading, setAreHintsLoading] = useState(false);\n const [consultantNumber, setConsultantNumber] = useState('');\n const [errorMessage, setErrorMessage] = useState(null);\n const [hints, setHints] = useState([]);\n const [isSubmitLocked, setIsSubmitLocked] = useState(true);\n const { formatMessage } = useTranslations();\n const { register, handleSubmit } = useForm();\n\n const handleChange = useCallback((event: ChangeEvent) => {\n const { value } = event.target;\n setConsultantNumber(value);\n setErrorMessage(null);\n setAreHintsLoading(true);\n setIsSubmitLocked(true);\n\n if (value) {\n axios\n .get(vipOrderUrls.consultantNumbers(value), {\n signal: abortControllerRef.current.signal,\n })\n .then(({ data }) => setHints(data.map((hint, index) => ({ index, hint }))))\n .catch((error: unknown) => console.error(error))\n .finally(() => {\n setAreHintsLoading(false);\n });\n }\n }, []);\n\n const handleSelect = useCallback((event: SyntheticEvent) => {\n const { textContent: id } = event.target as HTMLElement;\n setConsultantNumber(id ?? '');\n setHints([]);\n\n if (id) {\n axios\n .post(vipOrderUrls.accessSwitchValidate(id))\n .then(({ data: { message, result } }) => {\n setErrorMessage(message);\n setIsSubmitLocked(!result);\n })\n .catch((error: unknown) => console.error(error));\n }\n }, []);\n\n const onSubmit = useCallback(async () => {\n try {\n const { data } = await axios.get(vipOrderUrls.accessConsultant(consultantNumber));\n const { ConsultantNumber: consultant, ErrorMessage, IsAccessGranted } = data;\n\n if (IsAccessGranted) {\n try {\n await axios.post(vipOrderUrls.accessSwitch(consultant));\n formRef.current?.submit();\n } catch (error: unknown) {\n setErrorMessage(formatMessage('failedToSubmit'));\n console.warn(error);\n }\n } else {\n setErrorMessage(ErrorMessage);\n }\n } catch (error: unknown) {\n console.warn(error);\n }\n }, [consultantNumber, formatMessage]);\n\n return (\n \n String(hint.hint)}\n id=\"ConsultantNumber\"\n loading={areHintsLoading}\n loadingText={formatMessage('loading')}\n noOptionsText={formatMessage('noOptions')}\n options={hints}\n renderInput={(props) => (\n \n )}\n onChange={handleSelect}\n />\n \n {formatMessage('change')}\n \n \n );\n};\n","import { Dialog } from '@ori-ui/components';\nimport { ArrowLeftThin } from '@ori-ui/icons';\nimport { Typography } from '@ori-ui/mui';\nimport { useState } from 'react';\n\nimport { ChangeConsultantForm } from './ChangeConsultantForm';\nimport { BackArrow, PopupButton, PopupContentGroup, PopupLink } from './styles';\nimport type { OrderOnBehalfDialogProps } from './types';\n\nexport const OrderOnBehalfDialog = (props: OrderOnBehalfDialogProps) => {\n const { vipAccessData, vipAccessLabels, open, close } = props;\n const [changeOpened, setChangeOpened] = useState(false);\n\n return (\n \n setChangeOpened(false)}>\n \n \n {vipAccessLabels.ConsultantChangeConsultantNumber}\n \n ) : undefined\n }\n open={open}\n hideCloseButton={changeOpened}\n onClose={() => close()}\n >\n \n {changeOpened ? (\n \n ) : (\n <>\n \n {vipAccessData.Links[0]?.Text}\n \n setChangeOpened(true)}\n >\n {vipAccessLabels.ConsultantChangeConsultantNumber}\n \n \n {vipAccessData.Links[2]?.Text}\n \n \n )}\n \n \n );\n};\n","import useTestId from '@ori/testid-generator';\nimport { NewUserFilled, ArrowRightThin } from '@ori-ui/icons';\nimport { Typography } from '@ori-ui/mui';\nimport { useCallback, useState } from 'react';\n\nimport { OrderOnBehalfDialog } from './OrderOnBehalfDialog';\nimport { Root, OrderContent, Username } from './styles';\nimport type { OrderOnBehalfProps } from './types';\nimport { useTranslations } from '../../hooks/useTranslations';\n\nexport const OrderOnBehalf = (props: OrderOnBehalfProps) => {\n const { vipAccessData, vipAccessLabels, isOneBasketPage } = props;\n const { getTestId } = useTestId();\n const [dialogOpen, setDialogOpen] = useState(false);\n const closeDialog = useCallback(() => setDialogOpen(false), []);\n const openDialog = useCallback(() => setDialogOpen(true), []);\n const { formatMessage } = useTranslations();\n\n if (!(vipAccessData && vipAccessLabels) || isOneBasketPage) {\n return null;\n }\n\n /**\n * VipAccessData can be defined but can arrive with empty key properties.\n */\n if (\n !vipAccessData.ConsultantName ||\n !vipAccessData.ConsultantNumber ||\n !vipAccessLabels.ConsultantChangeConsultantNumber ||\n vipAccessData.Links.length < 1\n ) {\n return null;\n }\n\n return (\n \n \n \n {formatMessage('loggedInAs')}\n {vipAccessData.ConsultantName}\n \n \n \n \n );\n};\n","import { HeartsAnimation } from '@ori/favorites-heart';\nimport useTestId from '@ori/testid-generator';\nimport * as FavoritesUpdatedEvent from '@ori-events/favorites-updated';\nimport { MenuTypes } from '@ori-events/toggle-menu-flyout';\nimport * as UserAction from '@ori-events/user-action';\nimport { Heart, HeartFilled } from '@ori-ui/icons';\nimport { ButtonBase, styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { CLICK_FAVORITE_ICON } from '../constants';\nimport { useActiveMenu } from '../context/navigation';\nimport { useHover } from '../hooks';\nimport { FavoritesLink } from '../models';\nimport { dispatchToggleMenu } from '../utils';\n\nconst FavoritesHeartRoot = styled(ButtonBase)(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n color: theme.palette.grey[600],\n fontSize: theme.typography.pxToRem(30),\n height: 'fit-content',\n marginLeft: theme.spacing(4),\n\n '&:hover, &:focus, &:active': {\n color: theme.palette.grey[600],\n cursor: 'pointer',\n },\n\n '& div:first-of-type': {\n alignItems: 'center',\n display: 'flex',\n },\n },\n\n [theme.breakpoints.up('lg')]: {\n marginLeft: theme.spacing(6),\n },\n\n [theme.breakpoints.up('xl')]: {\n marginLeft: theme.spacing(8),\n },\n}));\n\nconst emptyFunction = () => {};\n\nexport const FavoritesHeartIcon: FC = () => {\n const [ref, Icon] = useHover(HeartFilled, Heart);\n const [wasFavoriteAdded, setWasFavoriteAdded] = useState(false);\n const [shouldFavoritesRender, setShouldFavoritesRender] = useState(false);\n const { activeMenu } = useActiveMenu();\n\n const { getTestId } = useTestId();\n\n const handleClick = useCallback(() => {\n UserAction.dispatch(CLICK_FAVORITE_ICON);\n\n if (window.location.pathname === FavoritesLink) {\n return;\n }\n\n dispatchToggleMenu(MenuTypes.FavoritesSideMenu, activeMenu);\n }, [activeMenu]);\n\n const onFavoritesUpdated = ({ detail: { favorites, lastUpdated } }: FavoritesUpdatedEvent.Event) => {\n if (lastUpdated && favorites.includes(lastUpdated)) {\n setWasFavoriteAdded(() => true);\n\n setTimeout(() => {\n setWasFavoriteAdded(() => false);\n }, 0);\n }\n };\n\n useEffect(() => {\n window.addEventListener(FavoritesUpdatedEvent.Name, onFavoritesUpdated as EventListener);\n\n return () => {\n window.removeEventListener(FavoritesUpdatedEvent.Name, onFavoritesUpdated as EventListener);\n };\n }, []);\n\n useEffect(() => {\n const getConfigElement = document.getElementById('favorites-provider-root');\n setShouldFavoritesRender(Boolean(getConfigElement));\n }, []);\n\n if (!shouldFavoritesRender) {\n return null;\n }\n\n return (\n \n \n \n \n \n );\n};\n","import { StaticNavigationNavigationItemDtoType } from '@ori/static-api-client-react';\nimport type { StaticNavigationNavigationItemDto } from '@ori/static-api-client-react';\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useContext, useEffect, useMemo, useState } from 'react';\n\nimport { useFetchNavigationItems } from '../../hooks/useFetchNavigationItems';\n\nexport interface LabelsContext {\n aboutLabel: string;\n joinLabel: string;\n joinUrl: string;\n}\n\nexport const labelsContextDefaultValue: LabelsContext = {\n aboutLabel: '',\n joinLabel: '',\n joinUrl: '',\n};\n\nexport const labelsContext = createContext(labelsContextDefaultValue);\n\nconst { Provider } = labelsContext;\n\nconst findLabel = (\n item: StaticNavigationNavigationItemDtoType,\n collection?: StaticNavigationNavigationItemDto[] | null,\n) => collection?.find(({ type }) => type === item)?.title ?? '';\n\nconst findUrl = (\n item: StaticNavigationNavigationItemDtoType,\n collection?: StaticNavigationNavigationItemDto[] | null,\n) => collection?.find(({ type }) => type === item)?.url ?? '';\n\nexport const LabelsProvider: FC = ({ children }) => {\n const [aboutLabel, setAboutLabel] = useState(labelsContextDefaultValue.aboutLabel);\n const [joinLabel, setJoinLabel] = useState(labelsContextDefaultValue.joinLabel);\n const [joinUrl, setJoinUrl] = useState(labelsContextDefaultValue.joinUrl);\n const fetchNavigationItems = useFetchNavigationItems();\n useEffect(() => {\n fetchNavigationItems(StaticNavigationNavigationItemDtoType.TopNavigation)\n .then((items) => {\n setAboutLabel(findLabel(StaticNavigationNavigationItemDtoType.AboutTiles, items));\n setJoinLabel(findLabel(StaticNavigationNavigationItemDtoType.JoinTiles, items));\n setJoinUrl(findUrl(StaticNavigationNavigationItemDtoType.JoinTiles, items));\n })\n // eslint-disable-next-line no-console -- log error to console\n .catch(console.error);\n }, [fetchNavigationItems]);\n const value = useMemo(() => ({ aboutLabel, joinLabel, joinUrl }), [aboutLabel, joinLabel, joinUrl]);\n\n return {children};\n};\n\nexport const useLabels = () => useContext(labelsContext);\n","import useTestId from '@ori/testid-generator';\nimport * as ToggleMenuFlyoutEvent from '@ori-events/toggle-menu-flyout';\nimport { ButtonBase, Link, styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\n\nimport { useJoinTiles, useLabels } from '../../context/navigation';\nimport { dispatchToggleMenu } from '../../utils';\n\nconst JoinLabel = styled(Link)<{\n disableRipple?: boolean;\n}>(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n color: theme.palette.text.primary,\n display: 'block',\n fontSize: theme.typography.pxToRem(14),\n fontWeight: theme.typography.fontWeightBold,\n textDecoration: 'none',\n whiteSpace: 'nowrap',\n textTransform: 'uppercase',\n\n '&:hover, &:focus, &:active': {\n color: theme.palette.grey[600],\n cursor: 'pointer',\n },\n },\n}));\n\nconst handleClick = () => dispatchToggleMenu(ToggleMenuFlyoutEvent.MenuTypes.JoinMenu);\n\nexport const JoinIcon: FC = () => {\n const { joinLabel, joinUrl } = useLabels();\n const { items } = useJoinTiles();\n const { getTestId } = useTestId();\n\n if (items.length > 0) {\n return (\n \n {joinLabel}\n \n );\n }\n\n if (joinUrl) {\n return {joinLabel};\n }\n\n return null;\n};\n","import { useToken } from '@ori/auth';\nimport { CLIENT_APPLICATION } from '@ori/fetching';\nimport { useGetCustomerUnseenNotificationsCount } from '@ori/global-api-client-react';\nimport * as ToggleMenuFlyoutEvent from '@ori-events/toggle-menu-flyout';\nimport * as UserAction from '@ori-events/user-action';\nimport { Notification, NotificationFilled } from '@ori-ui/icons';\nimport { Badge, IconButton, styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { useCallback, useState } from 'react';\n\nimport { CLICK_NOTIFICATION_ICON } from '../constants';\nimport { useHover } from '../hooks';\nimport { dispatchToggleMenu } from '../utils';\n\nconst NotificationBellIconRoot = styled('div')(({ theme }) => ({\n marginLeft: theme.spacing(4),\n\n [theme.breakpoints.up('lg')]: {\n marginLeft: theme.spacing(6),\n },\n\n [theme.breakpoints.up('xl')]: {\n marginLeft: theme.spacing(8),\n },\n}));\n\nconst NotificationBellIconButton = styled(IconButton)(({ theme }) => ({\n color: theme.palette.grey.A700,\n fontSize: theme.typography.h4.fontSize,\n padding: 0,\n\n '&:hover, &:focus, &:active': {\n background: 'none',\n color: theme.palette.grey.A700,\n },\n}));\n\nexport const NotificationBellIcon: FC = () => {\n const [ref, Icon] = useHover(NotificationFilled, Notification);\n const [isClicked, setIsClicked] = useState(false);\n const { customerId } = useToken();\n const { data } = useGetCustomerUnseenNotificationsCount(customerId, {\n [CLIENT_APPLICATION]: 'Web' /* notifications API requires value `Web` */,\n });\n const { count } = data ?? { count: 0 };\n\n const handleClick = useCallback(() => {\n UserAction.dispatch(CLICK_NOTIFICATION_ICON);\n setIsClicked(true);\n\n dispatchToggleMenu(ToggleMenuFlyoutEvent.MenuTypes.Notifications);\n }, []);\n\n return (\n \n \n \n \n \n \n \n );\n};\n","import { useIsMobile } from './useIsMobile';\nimport { useTranslations } from './useTranslations';\n\nexport const useSearchInputPlaceholder = () => {\n const isMobile = useIsMobile();\n const { translations } = useTranslations();\n\n return isMobile ? translations.search : translations.searchDesktop;\n};\n","import useTestId from '@ori/testid-generator';\nimport { Search } from '@ori-ui/icons';\nimport { ButtonBase, styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { useCallback } from 'react';\n\nimport { useActiveMenu, useSearchInput } from '../context/navigation';\nimport { useIsMobile } from '../hooks';\nimport { useSearchInputPlaceholder } from '../hooks/useSearchInputPlaceholder';\n\nconst SearchIconRoot = styled(ButtonBase)(({ theme }) => ({\n color: theme.palette.grey[700],\n fontSize: theme.typography.pxToRem(28),\n\n marginRight: theme.spacing(2),\n [theme.breakpoints.down('md')]: {\n marginRight: 0,\n },\n}));\n\nexport const SearchIcon: FC = () => {\n const { hideSearchResultsTab } = useActiveMenu();\n const { isVisible, hide, show } = useSearchInput();\n const { getTestId } = useTestId();\n const isMobile = useIsMobile();\n const searchPlaceholder = useSearchInputPlaceholder();\n\n const handleClick = useCallback(() => {\n if (isVisible) {\n hide();\n hideSearchResultsTab();\n } else {\n show();\n }\n }, [hide, hideSearchResultsTab, isVisible, show]);\n\n if (!isMobile) {\n return null;\n }\n\n return (\n \n \n \n );\n};\n","import { useWindowSize } from '@ori/presentation-hooks';\nimport useTestId from '@ori/testid-generator';\nimport * as ToggleMenuFlyout from '@ori-events/toggle-menu-flyout';\nimport { MenuTypes } from '@ori-events/toggle-menu-flyout';\nimport * as UserAction from '@ori-events/user-action';\nimport { Clear, Search } from '@ori-ui/icons';\nimport { Backdrop, ButtonBase, SHADOW_LEVEL3, styled } from '@ori-ui/mui';\nimport type { ChangeEvent, FC, KeyboardEvent } from 'react';\nimport { useCallback, useEffect } from 'react';\nimport { useDebounce, useThrottledCallback } from 'use-debounce';\n\nimport { SEARCH_THROTTLE_TIME, START_SEARCH } from '../constants';\nimport { useActiveMenu, useSearchInput } from '../context/navigation';\nimport { useIsMobile } from '../hooks';\nimport { useSearchInputPlaceholder } from '../hooks/useSearchInputPlaceholder';\nimport { dispatchToggleMenu } from '../utils';\n\nconst SearchInputRoot = styled('div')<{\n ownerState: { isVisible: boolean };\n}>(({ ownerState, theme }) => ({\n background: theme.palette.common.white,\n boxSizing: 'border-box',\n display: 'none',\n height: 68,\n justifySelf: 'center',\n left: 0,\n marginLeft: theme.spacing(4),\n padding: theme.spacing(3, 0),\n position: 'fixed',\n top: 56,\n width: '100%',\n zIndex: theme.zIndex.speedDial,\n\n ...(ownerState.isVisible && {\n display: 'flex',\n justifyContent: 'center',\n margin: 0,\n }),\n\n [theme.breakpoints.up('md')]: {\n background: 'transparent',\n display: 'block',\n height: 44,\n\n padding: theme.spacing(0, 2, 0, 3),\n position: 'static',\n\n zIndex: 'unset',\n },\n\n [theme.breakpoints.up('lg')]: {\n marginLeft: theme.spacing(6),\n },\n\n [theme.breakpoints.up('xl')]: {\n marginLeft: theme.spacing(8),\n },\n}));\n\nconst SearchInputBox = styled('div')<{\n ownerState: { isFocus: boolean };\n}>(({ ownerState, theme }) => ({\n alignItems: 'center',\n background: theme.palette.grey[100],\n borderRadius: 18,\n boxSizing: 'border-box',\n color: theme.palette.grey[600],\n display: 'flex',\n fontSize: theme.typography.pxToRem(23),\n height: 44,\n paddingLeft: theme.spacing(3),\n width: 'calc(100% - 30px)',\n\n ...(ownerState.isFocus && {\n boxShadow: SHADOW_LEVEL3,\n }),\n\n [theme.breakpoints.up('md')]: {\n height: 44,\n visibility: 'visible',\n },\n}));\n\nconst SearchInputInput = styled('input')(({ theme }) => ({\n background: theme.palette.grey[100],\n border: 'none',\n color: theme.palette.text.primary,\n fontSize: theme.typography.pxToRem(16),\n height: 'auto',\n lineHeight: 1.5,\n marginLeft: 8,\n width: '100%',\n textOverflow: 'ellipsis',\n\n '&::placeholder': {\n color: theme.palette.text.primary,\n },\n}));\n\nconst SearchInputClear = styled(ButtonBase)<{\n ownerState: { isFocus: boolean };\n}>(({ ownerState, theme }) => ({\n height: 23,\n marginRight: theme.spacing(3),\n width: 23,\n\n [theme.breakpoints.up('md')]: {\n fontSize: theme.typography.pxToRem(20),\n marginRight: theme.spacing(2),\n\n visibility: 'hidden',\n\n ...(ownerState.isFocus && {\n visibility: 'visible',\n }),\n },\n}));\n\nconst onEnterPressHandler = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n const { value: searchQuery } = e.target as HTMLInputElement;\n window.location.href = `/search?query=${encodeURIComponent(searchQuery)}`;\n }\n};\n\nexport const SearchInput: FC = () => {\n const { activeMenu, hideSearchResultsTab, toggleActiveMenu } = useActiveMenu();\n const { isFocused, isVisible, focus, blur, search, clearResults, value, setValue } = useSearchInput();\n const { sync } = useWindowSize();\n const isMenuActive = activeMenu === ToggleMenuFlyout.MenuTypes.SearchResults;\n const isMobile = useIsMobile();\n const searchPlaceholder = useSearchInputPlaceholder();\n const ownerState = {\n isVisible,\n isFocus: isFocused,\n };\n const { getTestId } = useTestId();\n const [debouncedValue] = useDebounce(value, 350);\n const throttledAnalytics = useThrottledCallback(() => UserAction.dispatch(START_SEARCH), SEARCH_THROTTLE_TIME);\n const onFocusHandler = useCallback(() => {\n focus();\n sync();\n }, [focus, sync]);\n\n const onChangeHandler = useCallback(\n ({ target }: ChangeEvent) => {\n const isValueEmpty = target.value.length === 0;\n if (isValueEmpty) {\n toggleActiveMenu('');\n clearResults();\n }\n setValue(target.value);\n throttledAnalytics();\n if (!isValueEmpty && !isMenuActive) {\n dispatchToggleMenu(ToggleMenuFlyout.MenuTypes.SearchResults);\n }\n },\n [setValue, throttledAnalytics, isMenuActive, toggleActiveMenu, clearResults],\n );\n\n const clearInput = useCallback(() => {\n setValue('');\n clearResults();\n toggleActiveMenu(MenuTypes.SearchInput);\n blur();\n }, [blur, clearResults, setValue, toggleActiveMenu]);\n\n const handleOnBlur = useCallback(() => {\n if (!value) {\n blur();\n }\n sync();\n }, [blur, sync, value]);\n\n useEffect(() => {\n search(debouncedValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- we want to fetch results ONLY when input value changes (with debounce)\n }, [debouncedValue]);\n\n if (isMobile && !isVisible) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n \n \n {isMobile && !isMenuActive ? (\n \n ) : null}\n \n );\n};\n","import { keyframes } from '@emotion/react';\nimport useTestId from '@ori/testid-generator';\nimport { Typography, styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { useEffect, useState } from 'react';\n\nconst growShrinkAnimation = keyframes`\n 50% {\n transform: scale(1.2);\n }\n`;\n\nconst ShoppingBagCounterRoot = styled(Typography)<{\n ownerState: { isAnimationActive: boolean };\n}>(({ theme, ownerState }) => ({\n alignItems: 'center',\n backgroundColor: theme.palette.primary.main,\n border: `1px solid ${theme.palette.common.white}`,\n borderRadius: '50%',\n bottom: theme.spacing(2),\n color: theme.palette.common.white,\n display: 'flex',\n fontSize: theme.typography.pxToRem(10),\n fontWeight: theme.typography.fontWeightBold,\n height: 22,\n justifyContent: 'center',\n left: theme.spacing(3),\n letterSpacing: 0,\n position: 'absolute',\n width: 22,\n\n ...(ownerState.isAnimationActive && {\n animationDuration: '1s',\n animationName: `${growShrinkAnimation}`,\n }),\n}));\n\nconst MINIBAG_COUNTER_ANIMATION_TIMEOUT = 1000;\n\ninterface ShoppingBagCounterProps {\n shoppingBagQuantity: number;\n}\n\nexport const ShoppingBagCounter: FC = ({ shoppingBagQuantity }) => {\n const [isAnimationActive, setIsAnimationActive] = useState(false);\n const ownerState = { isAnimationActive };\n const { getTestId } = useTestId();\n\n useEffect(() => setIsAnimationActive(true), [shoppingBagQuantity]);\n\n useEffect(() => {\n if (isAnimationActive) {\n setTimeout(() => setIsAnimationActive(false), MINIBAG_COUNTER_ANIMATION_TIMEOUT);\n }\n }, [isAnimationActive]);\n\n return (\n \n {shoppingBagQuantity}\n \n );\n};\n","import useTestId from '@ori/testid-generator';\nimport * as BasketUpdated from '@ori-events/basket-updated';\nimport * as RequestShoppingContext from '@ori-events/request-shopping-context';\nimport * as ShoppingContextLoaded from '@ori-events/shopping-context-loaded';\nimport * as ToggleMenuFlyoutEvent from '@ori-events/toggle-menu-flyout';\nimport { EmptyBasket, MiniBag, MiniBagFilled, ShoppingBasketFilled } from '@ori-ui/icons';\nimport type { Theme } from '@ori-ui/mui';\nimport { ButtonBase, Link, styled, useMediaQuery } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { useCallback, useMemo, useEffect, useState } from 'react';\n\nimport { ShoppingBagCounter } from './ShoppingBagCounter';\nimport { CN_MARKET } from '../../constants';\nimport { useConfiguration } from '../../context';\nimport { useHover } from '../../hooks';\nimport { useTranslations } from '../../hooks/useTranslations';\n\nconst ShoppingBagIconRoot = styled(Link)<{\n ownerState: { isCnMarket: boolean };\n disableRipple?: boolean;\n}>(({ ownerState, theme }) => ({\n alignItems: 'center',\n color: theme.palette.grey[600],\n display: 'flex',\n fontSize: theme.typography.pxToRem(30),\n height: '100%',\n marginLeft: theme.spacing(4),\n position: 'relative',\n\n ...(ownerState.isCnMarket && {\n color: theme.palette.error.main,\n }),\n\n '&:hover, &:focus, &:active': {\n color: theme.palette.grey[600],\n\n ...(ownerState.isCnMarket && {\n color: theme.palette.error.main,\n }),\n },\n\n [theme.breakpoints.up('md')]: {\n marginLeft: theme.spacing(4),\n },\n\n [theme.breakpoints.up('lg')]: {\n marginLeft: theme.spacing(6),\n },\n\n [theme.breakpoints.up('xl')]: {\n marginLeft: theme.spacing(8),\n },\n}));\n\nconst getFLyoutEvent = (shouldOpen?: boolean) =>\n new CustomEvent(ToggleMenuFlyoutEvent.Name, {\n detail: { menuType: ToggleMenuFlyoutEvent.MenuTypes.Minibag, shouldOpen },\n });\n\nconst triggerRequestShoppingContext = () => {\n const requestShoppongContextEvent = new CustomEvent(RequestShoppingContext.Name);\n window.dispatchEvent(requestShoppongContextEvent);\n};\n\nexport const ShoppingBagIcon: FC = () => {\n const { formatMessage } = useTranslations();\n const [isECatalogue, setIsECatalogue] = useState(false);\n const mobileBreakpoint = useMediaQuery((theme) => theme.breakpoints.down('sm'));\n const mobileBreakpointECatalogue = useMediaQuery((theme) => theme.breakpoints.down('md'));\n const { tenant } = useConfiguration();\n const { getTestId } = useTestId();\n\n const isMobile = useCallback(\n () => (isECatalogue ? mobileBreakpointECatalogue : mobileBreakpoint),\n [isECatalogue, mobileBreakpointECatalogue, mobileBreakpoint],\n );\n const ownerState = { isCnMarket: tenant === CN_MARKET };\n let iconOnHover = MiniBagFilled;\n let icon = MiniBag;\n\n if (tenant === CN_MARKET) {\n iconOnHover = ShoppingBasketFilled;\n icon = EmptyBasket;\n }\n\n const [ref, Icon] = useHover(iconOnHover, icon);\n\n const [shoppingBagQuantity, setShoppingBagQuantity] = useState(0);\n const [isReceivedShoppingContext, setIsReceivedShoppingContext] = useState(false);\n\n const updateShoppingBagQuantity = (newShoppingBagQuantity: number) => {\n if (newShoppingBagQuantity >= 0) {\n setShoppingBagQuantity(newShoppingBagQuantity);\n }\n };\n\n const shoppingContextLoadedEventHandler = useCallback((event: ShoppingContextLoaded.Event) => {\n updateShoppingBagQuantity(event.detail.shoppingBag.shoppingBagQuantity);\n setIsReceivedShoppingContext(true);\n }, []) as EventListener;\n\n const basketUpdatedEventHandler = useCallback((event: BasketUpdated.Event) => {\n updateShoppingBagQuantity(event.detail.shoppingBag.shoppingBagQuantity);\n }, []) as EventListener;\n\n useEffect(() => {\n setIsECatalogue(document.getElementById('catalogue-ipaper-root') !== null);\n }, []);\n\n useEffect(() => {\n window.addEventListener(ShoppingContextLoaded.Name, shoppingContextLoadedEventHandler);\n window.addEventListener(BasketUpdated.Name, basketUpdatedEventHandler);\n\n triggerRequestShoppingContext();\n\n return () => {\n window.removeEventListener(ShoppingContextLoaded.Name, shoppingContextLoadedEventHandler);\n window.removeEventListener(BasketUpdated.Name, basketUpdatedEventHandler);\n };\n }, [shoppingContextLoadedEventHandler, basketUpdatedEventHandler]);\n\n useEffect(() => {\n if (isReceivedShoppingContext) {\n window.removeEventListener(ShoppingContextLoaded.Name, shoppingContextLoadedEventHandler);\n }\n }, [isReceivedShoppingContext, shoppingContextLoadedEventHandler]);\n\n const onMouseEnter = useCallback(() => {\n if (isECatalogue || isMobile()) {\n return;\n }\n\n window.dispatchEvent(getFLyoutEvent(true));\n }, [isECatalogue, isMobile]);\n\n const onMouseLeave = useCallback(() => {\n if (isECatalogue || isMobile()) {\n return;\n }\n\n window.dispatchEvent(getFLyoutEvent(false));\n }, [isECatalogue, isMobile]);\n\n const onMobileEcataloguePageClick = useCallback(() => {\n window.dispatchEvent(getFLyoutEvent());\n }, []);\n\n const ShoppingBagContent = useMemo(\n () => (\n <>\n \n {Boolean(shoppingBagQuantity) && }\n \n ),\n [shoppingBagQuantity, Icon],\n );\n\n const formattedAriaLabel = formatMessage('shoppingBag');\n\n if (isMobile() && isECatalogue) {\n return (\n \n {ShoppingBagContent}\n \n );\n }\n\n return (\n \n {ShoppingBagContent}\n \n );\n};\n","import { useToken } from '@ori/auth';\nimport { styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\n\nimport { FavoritesHeartIcon } from './FavoritesHeartIcon';\nimport { JoinIcon } from './Join/JoinIcon';\nimport { NotificationBellIcon } from './NotificationBellIcon';\nimport { SearchIcon } from './SearchIcon';\nimport { SearchInput } from './SearchInput';\nimport { ShoppingBagIcon } from './ShoppingBagIcon/ShoppingBagIcon';\nimport { UserSection } from './UserSection';\nimport { useConfiguration } from '../context';\nimport { useIsMobile } from '../hooks';\n\nconst RightActionsSectionRoot = styled('div')(({ theme }) => ({\n alignItems: 'center',\n display: 'flex',\n justifySelf: 'end',\n justifyContent: 'flex-end',\n width: '100%',\n\n [theme.breakpoints.up('sm')]: {\n justifyContent: 'end',\n },\n\n [theme.breakpoints.up('md')]: {\n maxWidth: 'none',\n },\n}));\n\nexport const RightActionsSection: FC = () => {\n const isMobile = useIsMobile();\n const { isAnonymousUser } = useToken();\n const { shouldDisplayNotificationIcon } = useConfiguration();\n const showFavorites = !isAnonymousUser && !isMobile;\n const showNotifications = !isAnonymousUser && shouldDisplayNotificationIcon;\n\n return (\n \n \n \n {!isMobile && isAnonymousUser ? : null}\n \n {showNotifications ? : null}\n {showFavorites ? : null}\n \n \n );\n};\n","const MAX_VALUE = 2147483647;\n\nexport const getSearchTime = (timestamp: number) => {\n const searchTime = Date.now() - timestamp;\n\n return searchTime > 0 && searchTime <= MAX_VALUE ? searchTime : 0;\n};\n","export const PACKAGE_NAME = 'top-area';\nexport const APPLICATION_NAME = `@ori/${PACKAGE_NAME}`;\n\nexport const IDENTITY_CLIENT_ID = 'SPADev';\n","import type { ProductData } from '@ori/analytics-data';\nimport type { GlobalProductQuerySignalsDto } from '@ori/global-api-client-react';\n\nimport { getSearchTime } from './getSearchTime';\nimport { PACKAGE_NAME } from '../constants';\nimport type { Product, SuggestionsAndResults } from '../models';\n\nexport const analytics = {\n formatProduct: ({\n ActualPriceUnformated,\n ConceptName,\n CurrencyCode,\n GtmBrand,\n GtmCategory,\n ProductCode,\n ProductImageUrl,\n }: Product): ProductData => ({\n currency: CurrencyCode,\n globalBrandName: '',\n globalCategoryName: '',\n globalName: '',\n itemCode: ProductCode,\n localBrandName: GtmBrand,\n localCategoryName: GtmCategory,\n localName: ConceptName,\n media: [ProductImageUrl],\n price: ActualPriceUnformated,\n }),\n getSignalsData: ({\n customerId,\n position,\n results,\n timestamp,\n }: {\n customerId: number;\n position: number;\n results: SuggestionsAndResults;\n timestamp: number;\n }): GlobalProductQuerySignalsDto => ({\n params: {\n count: 1,\n docId: results.Products[position]?.ProductCode,\n filterQueries: ['products'],\n position: position + 1,\n query: results.Query,\n queryId: results.QueryId,\n searchTime: getSearchTime(timestamp),\n sessionId: results.OnlineSessionId,\n source: PACKAGE_NAME,\n totalHits: results.Products.length,\n userId: customerId.toString(),\n },\n timeStamp: new Date(),\n type: 'click',\n }),\n};\n","import type { ImageSizesHelperParams } from '@ori/image-sizes-helper';\nimport { generateSrcSet, getImageVariants } from '@ori/image-sizes-helper';\nimport useTestId from '@ori/testid-generator';\nimport { Products } from '@ori-ui/icons';\nimport { styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\n\nconst ProductImageRoot = styled('img')<{ ownerState: { isSmall: boolean } }>(({ ownerState, theme }) => ({\n width: 70,\n height: 70,\n\n [theme.breakpoints.up('md')]: {\n width: 88,\n height: 88,\n objectFit: 'scale-down',\n\n ...(ownerState.isSmall && {\n width: 65,\n height: 65,\n }),\n },\n}));\n\nconst ProductImageNoImage = styled('div')(({ theme }) => ({\n alignItems: 'center',\n color: theme.palette.text.primary,\n display: 'flex',\n fontSize: theme.typography.h3.fontSize,\n justifyContent: 'center',\n\n [theme.breakpoints.up('md')]: {\n width: 65,\n height: 65,\n },\n}));\n\ninterface ProductImageProps {\n image: string;\n name: string;\n size?: string;\n}\n\nexport const ProductImage: FC = ({ image, name, size }) => {\n const { getTestId } = useTestId();\n\n if (!image) {\n return (\n \n \n \n );\n }\n const imagesVariants: ImageSizesHelperParams = {\n url: image,\n params: [\n {\n width: 65,\n height: 65,\n quality: 90,\n },\n {\n width: 70,\n height: 70,\n quality: 90,\n },\n {\n width: 88,\n height: 88,\n quality: 90,\n },\n {\n width: 105,\n height: 105,\n quality: 70,\n },\n {\n width: 123,\n height: 123,\n quality: 70,\n },\n {\n width: 140,\n height: 140,\n quality: 50,\n },\n {\n width: 184,\n height: 184,\n quality: 50,\n },\n {\n width: 193,\n height: 193,\n quality: 35,\n },\n {\n width: 210,\n height: 210,\n quality: 35,\n },\n ],\n };\n\n const images = getImageVariants(imagesVariants);\n const isSmall = size === 'small';\n const imageSizes = isSmall ? '65px' : '(max-width: 1023px) 70px, 88px';\n const ownerState = { isSmall };\n\n return (\n \n );\n};\n","import useTestId from '@ori/testid-generator';\nimport { Link, styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { useCallback } from 'react';\n\nimport { ProductImage } from './ProductImage';\n\nconst ProductTileRoot = styled('div')<{ ownerState: { isLarge: boolean } }>(({ ownerState, theme }) => ({\n boxSizing: 'border-box',\n color: theme.palette.text.disabled,\n height: 113,\n lineHeight: theme.typography.pxToRem(18),\n\n ...(ownerState.isLarge && {\n flexBasis: '40%',\n fontSize: theme.typography.caption.fontSize,\n justifyContent: 'center',\n lineHeight: theme.typography.pxToRem(18),\n margin: theme.spacing(0, '5%', 3),\n textAlign: 'center',\n }),\n\n [theme.breakpoints.up('md')]: {\n ...(ownerState.isLarge && {\n flexBasis: 'unset',\n height: 148,\n margin: theme.spacing(12, '4%', 0),\n width: '17%',\n }),\n },\n}));\n\nconst ProductTileProductLink = styled(Link)<{ ownerState: { isLarge: boolean } }>(({ ownerState, theme }) => ({\n alignItems: 'center',\n color: theme.palette.text.primary,\n display: 'flex',\n flexDirection: 'column',\n textDecoration: 'none',\n\n ...(ownerState.isLarge && {\n background: theme.palette.common.white,\n }),\n\n '&:hover, &:focus, &:active': {\n color: theme.palette.grey[600],\n WebkitTapHighlightColor: 'transparent',\n },\n}));\n\nconst ProductTileTitle = styled('span')<{ ownerState: { isLarge: boolean } }>(({ ownerState, theme }) => ({\n ...(ownerState.isLarge && {\n display: '-webkit-box',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: 2,\n }),\n\n [theme.breakpoints.up('md')]: {\n '&:hover, &:focus, &:active': {\n ...(ownerState.isLarge && {\n color: theme.palette.text.primary,\n }),\n },\n },\n}));\n\nconst ProductTilePriceBox = styled('div')<{ ownerState: { isLarge: boolean } }>(({ ownerState }) => ({\n display: 'flex',\n flexDirection: 'column',\n\n ...(ownerState.isLarge && {\n alignItems: 'stretch',\n flexDirection: 'row',\n justifyContent: 'space-around',\n width: '100%',\n }),\n}));\nconst ProductTileActualPrice = styled('span')<{ ownerState: { isLarge: boolean } }>(({ ownerState, theme }) => ({\n fontWeight: theme.typography.fontWeightBold,\n marginTop: theme.spacing(2),\n\n ...(ownerState.isLarge && {\n margin: 0,\n }),\n}));\n\nconst ProductTileStandardPrice = styled('span')<{ ownerState: { isLarge: boolean } }>(({ ownerState, theme }) => ({\n textDecoration: 'line-through',\n\n ...(ownerState.isLarge && {\n color: theme.palette.text.disabled,\n }),\n}));\n\ninterface ProductTileProps {\n basicCataloguePrice?: string;\n currentPrice?: string;\n displayProductName?: boolean;\n imageUrl?: string;\n largeVersion?: boolean;\n position: number;\n productCode?: string;\n productName?: string;\n onClick: (position: number) => void;\n}\n\nexport const ProductTile: FC = ({\n basicCataloguePrice,\n currentPrice,\n displayProductName = false,\n imageUrl,\n largeVersion = false,\n position,\n productCode,\n productName,\n onClick,\n}) => {\n const productUrl = `/products/product?code=${productCode ?? ''}`;\n const ownerState = { isLarge: largeVersion };\n const { getTestId } = useTestId();\n\n const onClickHandler = useCallback(() => {\n onClick(Number(position));\n }, [onClick, position]);\n\n return (\n \n \n \n {!!displayProductName && (\n \n {productName}\n \n )}\n \n {currentPrice}\n {currentPrice !== basicCataloguePrice && (\n \n {basicCataloguePrice}\n \n )}\n \n \n \n );\n};\n","import { ContentType, Placement } from '@ori/analytics-data';\nimport { useToken } from '@ori/auth';\nimport { useApiClient, createApplicationsNavigationSignal } from '@ori/global-api-client-react';\nimport useTestId from '@ori/testid-generator';\nimport * as SearchSuggestionClick from '@ori-events/search-suggestion-click';\nimport { styled, Typography } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { useCallback } from 'react';\n\nimport { useConfiguration } from '../../context';\nimport { useSearchInput } from '../../context/navigation';\nimport { type Product } from '../../models';\nimport { analytics } from '../../utils';\nimport { ProductTile } from '../common/ProductTile';\nimport { useTranslations } from '../../hooks/useTranslations';\n\nconst PopularProductsRoot = styled('div')(({ theme }) => ({\n boxSizing: 'border-box',\n height: '100%',\n position: 'relative',\n width: '100%',\n\n [theme.breakpoints.up('md')]: {\n display: 'flex',\n flexDirection: 'column',\n gridColumn: 2,\n gridRow: '1 / 3',\n margin: 0,\n padding: '0 calc(10% - 60px) 0 10%',\n textAlign: 'center',\n\n '&::before': {\n backgroundColor: theme.palette.grey[100],\n content: '\"\"',\n height: '100%',\n left: 0,\n marginLeft: theme.spacing(5),\n position: 'absolute',\n width: 4,\n },\n },\n}));\n\nconst PopularProductsHeader = styled(Typography)(({ theme }) => ({\n fontWeight: theme.typography.fontWeightBold,\n marginBottom: theme.spacing(3),\n\n [theme.breakpoints.up('md')]: {\n marginBottom: theme.spacing(-6),\n },\n}));\n\nconst PopularProductsWrapper = styled('div')(() => ({\n display: 'flex',\n flexWrap: 'wrap',\n margin: 0,\n padding: 0,\n}));\n\nexport const PopularProducts: FC = () => {\n const globalApiClient = useApiClient();\n const { formatMessage } = useTranslations();\n const { currentLanguage } = useConfiguration();\n const { customerId } = useToken();\n const { getTestId } = useTestId();\n const { results, timestamp } = useSearchInput();\n\n const onClick = useCallback(\n (position: number) => {\n if (results?.Products.length == null) {\n return;\n }\n\n const searchSuggestionClickData: SearchSuggestionClick.Data = {\n itemData: analytics.formatProduct(results.Products[position] as Product),\n itemType: ContentType.Product,\n searchQuery: results.Query,\n placement: Placement.TopNavigationSearchSuggestions,\n position,\n };\n\n createApplicationsNavigationSignal(\n globalApiClient,\n analytics.getSignalsData({ customerId, position, results, timestamp }),\n // eslint-disable-next-line @typescript-eslint/naming-convention -- generated typings require headers\n { 'Accept-Language': currentLanguage },\n // eslint-disable-next-line no-console -- log error to console\n ).catch(console.error);\n\n window.dispatchEvent(\n new CustomEvent(SearchSuggestionClick.Name, {\n detail: searchSuggestionClickData,\n }),\n );\n },\n [results, globalApiClient, customerId, timestamp, currentLanguage],\n );\n\n if (!results?.Products) {\n return null;\n }\n\n return (\n \n {formatMessage('popularProductsInThisSearchQuery')}\n \n {results.Products.map(({ ProductCode, StandardPrice, ActualPrice, ProductImageUrl, ConceptName }, index) => (\n \n ))}\n \n \n );\n};\n","import { ContentType, Placement } from '@ori/analytics-data';\nimport useTestId from '@ori/testid-generator';\nimport * as SearchSuggestionClick from '@ori-events/search-suggestion-click';\nimport { Link, styled, Typography } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { useCallback } from 'react';\n\nimport { useSearchInput } from '../../context/navigation';\nimport { boldMatchedText } from '../../utils';\nimport { useTranslations } from '../../hooks/useTranslations';\n\nconst PopularSearchQueriesRoot = styled('div')(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n display: 'block',\n marginTop: 0,\n },\n}));\n\nconst PopularSearchQueriesHeading = styled(Typography)(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n fontWeight: theme.typography.fontWeightBold,\n lineHeight: theme.typography.pxToRem(19),\n margin: theme.spacing(2, 0, 3),\n },\n}));\n\nconst PopularSearchQueriesResults = styled('ul')(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n listStyleType: 'none',\n marginBottom: 0,\n padding: 0,\n },\n}));\n\nconst PopularSearchQueriesItem = styled('li')(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n marginBottom: theme.spacing(2),\n },\n}));\n\nconst PopularSearchQueriesLink = styled(Link)(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n color: theme.palette.text.primary,\n textDecoration: 'none',\n\n '&:hover, &:focus, &:active': {\n color: theme.palette.text.disabled,\n },\n },\n}));\n\nconst searchQuery = (name: string) => `/search?query=${encodeURIComponent(name)}`;\n\nexport const PopularSearchQueries: FC = () => {\n const { results, value } = useSearchInput();\n const { formatMessage } = useTranslations();\n const { getTestId } = useTestId();\n\n const onClick = useCallback(\n (localBannerTitle: string, position: number) => {\n window.dispatchEvent(\n new CustomEvent(SearchSuggestionClick.Name, {\n detail: {\n itemData: {\n target: searchQuery(localBannerTitle),\n localBannerTitle,\n media: [],\n },\n itemType: ContentType.PopularQuery,\n searchQuery: results?.Query ?? '',\n placement: Placement.TopNavigationSearchSuggestions,\n position,\n },\n }),\n );\n },\n [results?.Query],\n );\n\n return (\n \n \n {formatMessage('popularSearchQueries')}\n \n \n {results?.Suggestions.map(({ name }, index) => (\n \n onClick(name, index)}\n >\n {boldMatchedText(name, value)}\n \n \n ))}\n \n \n );\n};\n","import { useWindowSize } from '@ori/presentation-hooks';\nimport useTestId from '@ori/testid-generator';\nimport * as ToggleMenuFlyout from '@ori-events/toggle-menu-flyout';\nimport { Backdrop, Link, SHADOW_LEVEL1, styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { lazy, Suspense, useEffect, useMemo, useState } from 'react';\n\nimport { PopularProducts } from './PopularProducts';\nimport { PopularSearchQueries } from './PopularSearchQueries';\nimport { useActiveMenu, useSearchInput } from '../../context/navigation';\nimport { useIsMobile } from '../../hooks';\nimport { useTranslations } from '../../hooks/useTranslations';\n\nconst SearchResultsRoot = styled('div')(({ theme }) => ({\n background: theme.palette.common.white,\n boxShadow: SHADOW_LEVEL1,\n boxSizing: 'border-box',\n color: theme.palette.text.primary,\n display: 'flex',\n flexDirection: 'column',\n left: 0,\n padding: theme.spacing(14, 3, 3),\n position: 'absolute',\n top: 'var(--top-nav-height)',\n transition: 'top var(--top-nav-height-animation)',\n width: `calc(100% - var(--minibag-desktop-width, 0px))`,\n\n [theme.breakpoints.up('md')]: {\n padding: theme.spacing(6, 12),\n },\n}));\n\nconst SearchResultsContentWrapper = styled('div')<{ ownerState: { innerHeight: number } }>(({\n ownerState: { innerHeight },\n theme,\n}) => {\n const rootPaddings = theme.spacing(17);\n\n return {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: `calc(${innerHeight}px - ${rootPaddings} - var(--top-nav-height))`,\n minHeight: 100,\n position: 'relative',\n width: '100%',\n\n [theme.breakpoints.down('md')]: {\n overflowY: 'auto',\n overscrollBehaviorY: 'contain',\n },\n\n [theme.breakpoints.up('md')]: {\n display: 'grid',\n gridTemplateColumns: '30% 70%',\n gridTemplateRows: '29px auto',\n },\n };\n});\n\nconst SearchResultsHeader = styled('span')(({ theme }) => ({\n fontWeight: theme.typography.fontWeightBold,\n margin: theme.spacing(1, 0, 4),\n\n [theme.breakpoints.up('md')]: {\n gridColumn: 1,\n gridRow: 1,\n margin: 0,\n marginTop: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n}));\n\nconst SearchResultsQuery = styled(Link)(({ theme }) => ({\n borderBottom: `2px solid ${theme.palette.text.primary}`,\n color: theme.palette.text.primary,\n fontWeight: theme.typography.fontWeightBold,\n marginLeft: 3,\n paddingBottom: 3,\n textDecoration: 'none',\n\n '&:hover, &:focus, &:active': {\n borderBottom: `2px solid ${theme.palette.text.disabled}`,\n color: theme.palette.text.disabled,\n },\n}));\n\nconst SearchResultsLeftSide = styled('div')(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n gridColumn: 1,\n gridRow: 2,\n },\n}));\n\nconst SearchResultsLoader = styled('span')(({ theme }) => ({\n top: '60%',\n\n [theme.breakpoints.up('md')]: {\n top: '50%',\n },\n}));\n\nconst LazyArticles = lazy(async () => ({ default: (await import('./Articles/Articles')).Articles }));\n\nconst SearchResultsContent: FC = () => {\n const isMobile = useIsMobile();\n const { formatMessage } = useTranslations();\n const { getTestId } = useTestId();\n const { height } = useWindowSize();\n const { hideSearchResultsTab } = useActiveMenu();\n const { results } = useSearchInput();\n const [innerHeight, setInnerHeight] = useState(height);\n const isArticles = Boolean(results?.Contents.length);\n\n const RenderSearchResult = () =>\n useMemo(\n () => (\n <>\n {results?.Query ? (\n \n {formatMessage('seeAllResultsFor')}\n \n {results.Query}\n \n \n ) : null}\n \n \n {!isMobile && }\n {isArticles ? : null}\n \n \n ),\n [],\n );\n\n useEffect(() => {\n setInnerHeight(height);\n }, [height]);\n\n return (\n \n \n {results ? (\n \n ) : (\n \n )}\n \n \n \n );\n};\n\nexport const SearchResults: FC = () => {\n const { activeMenu } = useActiveMenu();\n const isMenuActive = activeMenu === ToggleMenuFlyout.MenuTypes.SearchResults;\n\n return isMenuActive ? : null;\n};\n","import useTestId from '@ori/testid-generator';\nimport type { FC, ReactElement } from 'react';\n\nimport { Root } from './styles';\nimport type { VipAccessResponse } from '../../models';\nimport { AccountFlyout } from '../Account/AccountFlyout';\nimport { BurgerMenu } from '../BurgerMenu';\nimport { JoinMenu } from '../Join/JoinMenu';\nimport { LeftActionsSection } from '../LeftActionsSection';\nimport { OrderOnBehalf } from '../OrderOnBehalf';\nimport { RightActionsSection } from '../RightActionsSection';\nimport { SearchResults } from '../SearchResults/SearchResults';\n\nexport interface TopAreaProps {\n isOrderOnBehalfVisible?: boolean | undefined;\n personalMenu?: ReactElement | undefined;\n vipAccess?: VipAccessResponse | undefined;\n}\n\nexport const TopArea: FC = ({ isOrderOnBehalfVisible, personalMenu, vipAccess }) => {\n const { getTestId } = useTestId();\n\n return (\n \n \n \n \n \n \n \n {personalMenu}\n \n \n );\n};\n","import useTestId from '@ori/testid-generator';\nimport { styled } from '@ori-ui/mui';\nimport type { PropsWithChildren, FC } from 'react';\n\nimport { TOP_NAV_HEIGHT, TOP_NAV_HEIGHT_MOBILE } from '../constants';\n\nconst TopAreaReservedSpaceBlock = styled('div')(({ theme }) => ({\n minHeight: TOP_NAV_HEIGHT,\n [theme.breakpoints.down('md')]: {\n minHeight: TOP_NAV_HEIGHT_MOBILE,\n },\n}));\n\nexport const TopAreaBlock: FC = ({ children }) => {\n const { getTestId } = useTestId();\n\n return (\n \n {children}\n \n );\n};\n","import throttle from 'lodash.throttle';\nimport { useEffect } from 'react';\n\nimport { useIsMobile } from './useIsMobile';\nimport { useConsultant } from '../context';\n\nenum ClassName {\n default = 'top-nav',\n mobile = 'top-nav--is-mobile',\n shrunk = 'top-nav--is-shrunk',\n withOrderOnBehalf = 'top-nav--with-order-on-behalf',\n}\n\nconst getClassList = () => document.body.classList;\n\nconst addClassName = (className: ClassName) => getClassList().add(className);\n\nconst removeClassName = (className: ClassName) => getClassList().remove(className);\n\nexport const useManagedHeight = () => {\n const isMobile = useIsMobile();\n const { isOrderOnBehalfVisible } = useConsultant();\n useEffect(() => {\n addClassName(ClassName.default);\n if (isMobile) {\n addClassName(ClassName.mobile);\n } else {\n removeClassName(ClassName.mobile);\n }\n if (isOrderOnBehalfVisible) {\n addClassName(ClassName.withOrderOnBehalf);\n } else {\n removeClassName(ClassName.withOrderOnBehalf);\n }\n }, [isMobile, isOrderOnBehalfVisible]);\n useEffect(() => {\n const onScroll = throttle(() => {\n if (window.scrollY > 0) {\n addClassName(ClassName.shrunk);\n } else {\n removeClassName(ClassName.shrunk);\n }\n }, 100);\n window.addEventListener('scroll', onScroll);\n\n return () => window.removeEventListener('scroll', onScroll);\n }, []);\n};\n","import { useEffect } from 'react';\n\nimport { TopArea } from '../components/TopArea';\nimport { TopAreaBlock } from '../components/TopAreaBlock';\nimport { useConsultant } from '../context';\nimport { useAboutTiles, useInspirationTiles, useJoinTiles, useShopSection } from '../context/navigation';\nimport {\n useClickSignInButtonSupportCenter,\n useManagedHeight,\n usePersonalMenuPortal,\n useReturnUrl,\n useToggleMenuHandler,\n} from '../hooks';\n\nexport const Content = () => {\n const personalMenu = usePersonalMenuPortal();\n const { isOrderOnBehalfVisible, vipAccess } = useConsultant();\n const { fetch: fetchAboutTiles } = useAboutTiles();\n const { fetch: fetchInspirationTiles } = useInspirationTiles();\n const { fetch: fetchJoinTiles } = useJoinTiles();\n const { fetch: fetchShopSection } = useShopSection();\n useClickSignInButtonSupportCenter();\n useManagedHeight();\n useReturnUrl();\n useToggleMenuHandler();\n useEffect(() => {\n fetchAboutTiles();\n fetchInspirationTiles();\n fetchJoinTiles();\n fetchShopSection();\n }, [fetchAboutTiles, fetchInspirationTiles, fetchJoinTiles, fetchShopSection]);\n\n return (\n \n \n \n );\n};\n","import { MenuTypes } from '@ori-events/toggle-menu-flyout';\nimport { useEffect } from 'react';\n\nimport { useActiveMenu } from '../context/navigation/activeMenuContext';\nimport { dispatchToggleMenu } from '../utils';\n\nexport const useClickSignInButtonSupportCenter = () => {\n const { activeMenu } = useActiveMenu();\n useEffect(() => {\n const loginButton = document.querySelector('.support-center-footer-login__button');\n const onClick = (event: Event) => {\n event.preventDefault();\n dispatchToggleMenu(MenuTypes.AccountSideMenu, activeMenu);\n };\n loginButton?.addEventListener('click', onClick);\n\n return () => loginButton?.removeEventListener('click', onClick);\n }, [activeMenu]);\n};\n","import { getCurrentUrl } from '@ori/presentation-utils';\nimport { MenuTypes } from '@ori-events/toggle-menu-flyout';\nimport { useEffect } from 'react';\n\nimport { CONSULTANT_NUMBER_QUERY_PARAM_KEY, RETURN_URL_QUERY_PARAM_KEY } from '../constants';\nimport { useConfiguration } from '../context';\nimport { dispatchToggleMenu } from '../utils';\n\nexport const useReturnUrl = () => {\n const { externalLoginName } = useConfiguration();\n useEffect(() => {\n const { searchParams } = getCurrentUrl();\n const returnUrl = searchParams.get(RETURN_URL_QUERY_PARAM_KEY);\n const consultantNumberQueryParam = searchParams.get(CONSULTANT_NUMBER_QUERY_PARAM_KEY);\n if (returnUrl || externalLoginName || consultantNumberQueryParam) {\n dispatchToggleMenu(MenuTypes.AccountSideMenu);\n }\n }, [externalLoginName]);\n};\n","import type { Event } from '@ori-events/toggle-menu-flyout';\nimport { Name } from '@ori-events/toggle-menu-flyout';\nimport { useEffect } from 'react';\n\nimport { useActiveMenu } from '../context/navigation/activeMenuContext';\n\ndeclare global {\n interface WindowEventMap {\n [Name]: Event;\n }\n}\n\nexport const useToggleMenuHandler = () => {\n const { toggleActiveMenu } = useActiveMenu();\n useEffect(() => {\n const onToggle = (event: Event) => toggleActiveMenu(event.detail.menuType);\n window.addEventListener(Name, onToggle);\n\n return () => window.removeEventListener(Name, onToggle);\n }, [toggleActiveMenu]);\n};\n","import type { Theme } from '@ori-ui/mui';\nimport { useMediaQuery } from '@ori-ui/mui';\nimport { Suspense, useEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { useLazyPersonalMenu } from './useLazyPersonalMenu';\n\nexport const usePersonalMenuPortal = () => {\n const isDesktop = useMediaQuery((theme) => theme.breakpoints.up(1024));\n const personalMenu = useLazyPersonalMenu();\n const ref = useRef(null);\n\n useEffect(() => {\n ref.current = document.getElementById('personal-menu-root');\n\n return () => {\n ref.current = null;\n };\n }, []);\n if (ref.current && isDesktop) {\n return createPortal({personalMenu}, ref.current);\n }\n\n return undefined;\n};\n","export const CONSULTANT_NUMBER_QUERY_PARAM_KEY = 'chPwdUsr';\n\nexport const RETURN_URL_QUERY_PARAM_KEY = 'returnUrl';\n","import { ApiProvider } from './ApiProvider';\nimport { CataloguesProvider, ConsultantProvider } from '../context';\nimport {\n AboutTilesProvider,\n ActiveLinkProvider,\n ActiveMenuProvider,\n InspirationTilesProvider,\n JoinTilesProvider,\n LabelsProvider,\n PbsContentProvider,\n SearchInputProvider,\n ShopSectionProvider,\n} from '../context/navigation';\nimport { composeProviders } from '../utils';\n\nexport const Context = composeProviders(\n ApiProvider,\n PbsContentProvider,\n SearchInputProvider,\n ActiveLinkProvider,\n ActiveMenuProvider,\n ConsultantProvider,\n AboutTilesProvider,\n InspirationTilesProvider,\n JoinTilesProvider,\n LabelsProvider,\n ShopSectionProvider,\n CataloguesProvider,\n);\n","import type { FC, PropsWithChildren } from 'react';\n\nexport const composeProviders = (...providers: Array>) =>\n function Providers({ children }: PropsWithChildren) {\n return (\n <>\n {providers.reduceRight(\n (accumulated, Provider) => (\n {accumulated}\n ),\n children,\n )}\n \n );\n };\n","import { useToken } from '@ori/auth';\nimport { ApiClientProvider as GlobalApiClientProvider } from '@ori/global-api-client-react';\nimport { ApiClientProvider as StaticApiClientProvider } from '@ori/static-api-client-react';\nimport type { FC, PropsWithChildren } from 'react';\n\nimport { useConfiguration } from '../context';\n\nexport const ApiProvider: FC = ({ children }) => {\n const { currentLanguage, tenant, globalApiUrl, staticApiUrl } = useConfiguration();\n const { formattedToken } = useToken();\n\n return (\n \n {children}\n \n );\n};\n","import { useSessionStorage } from './useSessionStorage';\n\nconst SESSION_STORAGE_KEY = 'ori-pbs-was-tooltip-shown';\n\n/**\n * Controls if tooltip was shown on this device already\n */\nexport const useWasTooltipShown = () => useSessionStorage(SESSION_STORAGE_KEY, false);\n","import type { Dispatch, SetStateAction } from 'react';\nimport { useState } from 'react';\n\nexport function useSessionStorage(key: string, initialValue: T) {\n const [storedValue, setStoredValue] = useState(() => {\n if (typeof window === 'undefined') {\n return initialValue;\n }\n\n try {\n const item = window.sessionStorage.getItem(key);\n\n return item ? (JSON.parse(item) as T) : initialValue;\n } catch (error) {\n // eslint-disable-next-line no-console -- We want to see the error\n console.log(error);\n\n return initialValue;\n }\n });\n\n const setValue: Dispatch> = (valueOrFunction) => {\n try {\n setStoredValue((prevValue) => {\n const valueToStore =\n typeof valueOrFunction === 'function' ? (valueOrFunction as (prevState: T) => T)(prevValue) : valueOrFunction;\n\n if (typeof window !== 'undefined') {\n window.sessionStorage.setItem(key, JSON.stringify(valueToStore));\n }\n\n return valueToStore;\n });\n } catch (error) {\n // eslint-disable-next-line no-console -- We want to see the error\n console.log(error);\n }\n };\n\n return [storedValue, setValue] as const;\n}\n","import { useToken } from '@ori/auth';\nimport type { FC, PropsWithChildren } from 'react';\nimport { useMemo } from 'react';\n\nimport { personalBeautyStoreContext } from './personalBeautyStoreContext';\nimport { useCookieStoreInfo } from './useCookieStoreInfo';\nimport { useInviteFriendData } from './useInviteFriendData';\nimport { usePersonalBeautyStoreData } from './usePersonalBeautyStoreData';\nimport { usePersonalBeautyStoreUserInfo } from './usePersonalBeautyStoreUserInfo';\nimport { useWasTooltipShown } from '../../hooks/useWasTooltipShown';\nimport { ReferralType } from '../../models';\nimport type { PersonalBeautyStoreContext } from '../../types';\nimport { useConfiguration } from '../ConfigurationProvider';\n\nexport const PersonalBeautyStoreProvider: FC = ({ children }) => {\n const { isEnabled } = useConfiguration();\n const { isAnonymousUser } = useToken();\n const storeInfo = useCookieStoreInfo();\n const pbsData = usePersonalBeautyStoreData();\n const inviteFriendData = useInviteFriendData();\n const [tooltipWasShown, setTooltipWasShown] = useWasTooltipShown();\n const { firstName, lastName } = usePersonalBeautyStoreUserInfo();\n\n /**\n * Anonymous visitor on referral program market (cookie ecref exists).\n */\n const isAnonymousUserOnReferralMarket = isAnonymousUser && storeInfo.type === ReferralType.ECREF;\n\n /**\n * Sponsor info (eg. MenuItem) can be displayed to logged in EndCustomers who have sponsor or anonymous visitors to the non-referral program market.\n */\n const canDisplaySponsorInfo = isEnabled && Boolean(pbsData?.beautyStore?.profile) && !isAnonymousUserOnReferralMarket;\n\n const canDisplayTooltip = isEnabled && !tooltipWasShown && Boolean(firstName ?? lastName);\n\n const value = useMemo(\n (): PersonalBeautyStoreContext => ({\n pbsData,\n storeInfo,\n inviteFriendData,\n canDisplaySponsorInfo,\n canDisplayTooltip,\n tooltipWasShown,\n setTooltipWasShown,\n }),\n [\n pbsData,\n storeInfo,\n inviteFriendData,\n canDisplaySponsorInfo,\n canDisplayTooltip,\n tooltipWasShown,\n setTooltipWasShown,\n ],\n );\n\n return {children};\n};\n","/**\n * Updates current url query parameters without reloading page in browser\n */\nexport const updateQueryParameters = (newQueryParameters: URLSearchParams) => {\n const newUrl = new URL(window.location.toString());\n newUrl.search = newQueryParameters.toString();\n\n window.history.replaceState('', document.title, newUrl);\n};\n","import { updateQueryParameters } from './updateQueryParameters';\n\n/**\n * Removes query parameter from browser URL\n */\nexport const removeQueryParameter = (name: string) => {\n const queryParams = new URLSearchParams(window.location.search);\n\n if (!queryParams.has(name)) {\n return;\n }\n\n queryParams.delete(name);\n\n updateQueryParameters(queryParams);\n};\n","import { updateQueryParameters } from './updateQueryParameters';\n\n/**\n * Ensures that there is query parameter by provided name and value in browser URL\n */\nexport const ensureQueryParameter = (name: string, value: string) => {\n const queryParams = new URLSearchParams(window.location.search);\n\n // There is no need to update or add new parameter so skipping\n if (queryParams.has(name) && queryParams.get(name) === value) {\n return;\n }\n\n queryParams.set(name, value);\n\n updateQueryParameters(queryParams);\n};\n","import Cookies from 'js-cookie';\nimport { useEffect } from 'react';\n\nimport { cookiesToTransform } from '../../constants';\nimport type { RemoveQueryParameterCallback, SetQueryParameterCallback } from '../../types';\nimport {\n debug,\n removeQueryParameter as removeQueryParameterHistoryApi,\n ensureQueryParameter as setQueryParameterHistoryApi,\n} from '../../utils';\n\nexport interface CookieToUrlParams {\n removeQueryParameter: RemoveQueryParameterCallback;\n\n setQueryParameter: SetQueryParameterCallback;\n}\n\n/**\n * Reads cookie and transforms them into url - if found\n */\nexport const useCookieToUrl = (parameters?: CookieToUrlParams) => {\n useEffect(() => {\n const removeQueryParameter = parameters?.removeQueryParameter ?? removeQueryParameterHistoryApi;\n const setQueryParameter = parameters?.setQueryParameter ?? setQueryParameterHistoryApi;\n\n let foundPrev = false;\n\n for (const cookieInfo of cookiesToTransform) {\n const {\n cookie: cookieName,\n queryParam: queryParamName,\n stopIfFound,\n stopIfFoundPrev,\n removeIfNotFound,\n } = cookieInfo;\n const cookieValue = Cookies.get(cookieName);\n const stop = stopIfFoundPrev && foundPrev;\n\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- eslint rule conflict - there is no way how to correctly satisfy eslint\n if (!cookieValue?.length) {\n if (removeIfNotFound) {\n removeQueryParameter(queryParamName);\n }\n\n debug(`Cookie value under the name of '${cookieName}' was not found!`);\n\n foundPrev = false;\n\n // stop if we should stop prematurely\n if (stop) {\n break;\n }\n continue;\n }\n\n // Ensure that query parameter is present and with correct value\n setQueryParameter(queryParamName, cookieValue);\n\n foundPrev = true;\n\n if (stopIfFound ?? stop) {\n break;\n }\n }\n }, [parameters?.removeQueryParameter, parameters?.setQueryParameter]);\n};\n","import { useToken } from '@ori/auth';\nimport { SWRConfig } from '@ori/fetching';\nimport { ApiClientProvider } from '@ori/global-api-client-react';\nimport type { FC, PropsWithChildren } from 'react';\n\nimport { ConfigurationProvider, PersonalBeautyStoreProvider } from '../contexts';\nimport { useCookieToUrl } from '../hooks';\nimport type { AppConfiguration, RemoveQueryParameterCallback, SetQueryParameterCallback } from '../types';\n\nexport interface PbsAppProps {\n configuration: AppConfiguration;\n removeQueryParameter?: RemoveQueryParameterCallback | undefined;\n setQueryParameter?: SetQueryParameterCallback | undefined;\n}\n\nexport const PbsApp: FC> = ({\n children,\n configuration,\n setQueryParameter,\n removeQueryParameter,\n}) => {\n useCookieToUrl(setQueryParameter && removeQueryParameter ? { setQueryParameter, removeQueryParameter } : undefined);\n const { formattedToken } = useToken();\n\n return (\n \n {/* TODO [FK] replace with SpaConfigProvider */}\n \n \n {children}\n \n \n \n );\n};\n","import { useToken } from '@ori/auth';\nimport { PbsApp } from '@ori/personal-beauty-store';\nimport type { PbsAppProps } from '@ori/personal-beauty-store';\nimport type { FC, PropsWithChildren } from 'react';\nimport { useMemo } from 'react';\n\nimport type { TopAreaProps } from './types';\nimport { useConfiguration } from '../context';\n\nexport const Pbs: FC>> = ({\n children,\n removeQueryParameter,\n setQueryParameter,\n}) => {\n const { customerId } = useToken();\n const { currentLanguage, globalApiUrl, graphqlUrl, identityUrl, pbsIconInBurgerMenu, staticApiUrl, tenant } =\n useConfiguration();\n const configuration = useMemo(\n (): PbsAppProps['configuration'] => ({\n currentLanguage,\n customerId,\n globalApiUrl,\n graphqlUrl,\n identityUrl,\n isEnabled: Boolean(pbsIconInBurgerMenu),\n staticApiUrl,\n tenant,\n }),\n [currentLanguage, customerId, globalApiUrl, graphqlUrl, identityUrl, pbsIconInBurgerMenu, staticApiUrl, tenant],\n );\n\n return (\n \n {children}\n \n );\n};\n","/* istanbul ignore file */\n/**\n * DO NOT EDIT!\n * This file was autogenerated by npm script `localizations-codegen`.\n * Changes may cause incorrect behavior and will be lost when the file is regenerated.\n *\n * Run `npx localizations-codegen` to regenerate.\n */\n\nimport type { TranslationKey } from '../models/TranslationKey';\n\nexport type DefaultTranslations = Record;\n\nexport const defaultTranslations: DefaultTranslations = {\n allBrands: 'All brands',\n articles: 'Articles',\n brands: 'Brands',\n callToActionCatalogueText: 'Call to action catalogue text',\n change: 'Change',\n failedToSubmit: 'Failed to submit',\n loading: 'Loading',\n logIn: 'Log in',\n loggedInAs: 'Logged in as',\n menu: 'Menu',\n myAccount: 'My account',\n myFavoriteProducts: 'My favorite products',\n nextCatalogue: 'Next catalogue',\n noOptions: 'No options',\n other: 'Other',\n popularProducts: 'Popular products',\n popularProductsInThisSearchQuery: 'Popular products in this search query',\n popularSearchQueries: 'Popular search queries',\n products: 'Products',\n register: 'Register',\n search: 'Search',\n searchDesktop: 'Search 60+ brands, 1000+ beauty and nutrition products',\n seeAll: 'See all',\n seeAllCatalogues: 'See all catalogues',\n seeAllResultsFor: 'See all results for',\n shopFor: 'Shop for',\n shoppingBag: 'Shopping bag',\n signIn: 'Sign in',\n view: 'View',\n};\n\nexport const translationsNamespace = 'top-area';\n","import { TranslationsNamespaceProvider } from '@ori/i18n';\nimport { Team, TestIdProvider } from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { Content } from './Content';\nimport { Context } from './Context';\nimport { Pbs } from './Pbs';\nimport type { TopAreaProps } from './types';\nimport { translationsNamespace } from '../constants';\nimport { ConfigurationProvider } from '../context';\n\nexport const TopArea: FC = ({ configuration, ...pbs }) => (\n \n \n \n \n \n \n \n \n \n \n \n);\n","import { defaultTranslations, translationsNamespace } from './defaultTranslations';\nimport {\n defaultTranslations as pbsDefaultTranslations,\n translationsNamespace as pbsTranslationsNamespace,\n} from '@ori/personal-beauty-store';\n\n/**\n * Combined translations with namespaces that top-area uses. Includes top-area and PBS namespaces\n */\nexport const defaultTranslationsWithNamespaces = {\n [translationsNamespace]: defaultTranslations,\n [pbsTranslationsNamespace]: pbsDefaultTranslations,\n};\n","import { useToken } from '@ori/auth';\nimport type { ClientFetchConfiguration, TranslationsContext } from '@ori/i18n';\nimport { TranslationsProvider } from '@ori/i18n';\nimport { useMemo, type FC, type PropsWithChildren } from 'react';\n\nimport { defaultTranslationsWithNamespaces } from '../constants/defaultTranslationsWithNamespaces';\n\nexport interface StandaloneTranslationsProviderProps\n extends Pick,\n Omit {\n staticApiUrl: string;\n}\n\n/**\n * Standalone translations provider that takes care of loading translations\n */\nexport const StandaloneTranslationsProvider: FC> = ({\n children,\n currentLanguage,\n tenant,\n staticApiUrl,\n}) => {\n const { token } = useToken();\n const clientFetchConfiguration = useMemo>(\n () => ({ onError: console.error, tenant, token, baseUrl: staticApiUrl }),\n [tenant, token, staticApiUrl],\n );\n\n return (\n \n {children}\n \n );\n};\n","import { parseSpaConfig } from '@ori-appshell/config';\n\nconst GRAPHQL_STRING = 'graphql';\n\nexport const parseAppConfiguration = (config: string) => {\n const configValues = parseSpaConfig<{\n globalApiUrl: string;\n graphqlUrl: string;\n identityUrl: string;\n isCumulusMarket: boolean;\n mobileOfficeApiUrl: string;\n shouldDisplayNotificationIcon: boolean;\n ssoAdLoginUrl: string;\n staticApiUrl: string;\n useSsoIdentityLogin: boolean;\n }>(config, [\n 'globalApiUrl',\n 'graphqlUrl',\n 'identityUrl',\n 'isCumulusMarket',\n 'mobileOfficeApiUrl',\n 'shouldDisplayNotificationIcon',\n 'ssoAdLoginUrl',\n 'staticApiUrl',\n 'useSsoIdentityLogin',\n ]);\n\n const graphQlUrl = configValues.graphqlUrl;\n\n if (!graphQlUrl.endsWith(GRAPHQL_STRING)) {\n configValues.graphqlUrl = new URL(GRAPHQL_STRING, graphQlUrl).href;\n }\n\n return configValues;\n};\n","import type { ITelemetryItem } from '@microsoft/applicationinsights-core-js';\nimport { SeverityLevel } from '@microsoft/applicationinsights-web';\nimport type { OidcAccessToken } from '@ori/auth';\n\ninterface AppInsightsExceptionData {\n message?: string;\n}\n\nconst telemetryInitializer = (item: ITelemetryItem): boolean => {\n if (item.baseType === 'ExceptionData' && item.baseData) {\n const exceptions: AppInsightsExceptionData[] | null | undefined = item.baseData.exceptions as\n | AppInsightsExceptionData[]\n | null\n | undefined;\n\n if (exceptions?.[0] && exceptions[0].message?.startsWith('Customer ID mismatch')) {\n if (!item.tags) {\n // eslint-disable-next-line no-param-reassign -- Needs to initialize empty tags\n item.tags = [];\n }\n // eslint-disable-next-line no-param-reassign -- Needs to set the modified tags\n item.tags['ai.user.id'] = '-';\n }\n }\n\n return true;\n};\n\nexport const trackCustomerTokenMismatch = (customerId: number, token: OidcAccessToken) => {\n if (window.appInsights) {\n const tokenCustomerId = Number(token.getClaim('customer_id'));\n if (tokenCustomerId !== customerId && customerId > 0) {\n window.appInsights.addTelemetryInitializer(telemetryInitializer);\n window.appInsights.trackException({\n exception: new Error(`Customer ID mismatch, app ID: ${customerId}, token ID: ${tokenCustomerId}`),\n severityLevel: SeverityLevel.Error,\n });\n }\n }\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./App.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./App.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { PrefetchedTokenProvider } from '@ori/auth';\nimport { LoginProvider } from '@ori/login';\nimport { ErrorBoundary } from '@ori/presentation-components';\nimport { ThemeProvider } from '@ori-ui/mui';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport { TopArea } from './containers';\nimport { StandaloneTranslationsProvider } from './containers/StandaloneTranslationsProvider';\nimport { getToken, parseAppConfiguration, trackCustomerTokenMismatch, extractTokenFromUrl } from './utils';\nimport 'core-js/proposals/relative-indexing-method';\nimport './App.css';\n\n/**\n * React app renderer that is used when app is used as a standalone SPA\n */\nexport const render = async (): Promise => {\n const rootEl = document.getElementById('online-top-area-root');\n if (rootEl) {\n const { config = '' } = rootEl.dataset;\n const appConfig = parseAppConfiguration(config);\n const {\n customerId,\n tenant,\n identityUrl: dirtyIdentityUrl,\n useSsoIdentityLogin,\n currentLanguage,\n staticApiUrl,\n } = appConfig;\n const identityUrl = dirtyIdentityUrl.endsWith('/') ? dirtyIdentityUrl.slice(0, -1) : dirtyIdentityUrl;\n await extractTokenFromUrl(identityUrl);\n const token = await getToken({ customerId, tenant, identityUrl });\n try {\n trackCustomerTokenMismatch(customerId, token);\n } catch (error: unknown) {\n // eslint-disable-next-line no-console -- log warning\n console.warn(error);\n }\n\n createRoot(rootEl).render(\n \n \n \n \n \n \n \n \n \n \n ,\n );\n }\n};\n","import { AuthorizationCodeTokenClient, OidcUrlHelper } from '@ori/auth';\n\nimport { IDENTITY_CLIENT_ID } from '../constants';\n\n/**\n * Token extraction for development\n */\nexport const extractTokenFromUrl = async (identityUrl?: string) => {\n // extract token from URL; only on dev machine, not needed elsewhere\n if (process.env.NODE_ENV !== 'production') {\n const searchParams = new URLSearchParams(window.location.hash.split('?')[1]);\n\n if (searchParams.has('state')) {\n const oidcUrlHelper = new OidcUrlHelper();\n\n const tokenClient = new AuthorizationCodeTokenClient({\n clientId: IDENTITY_CLIENT_ID,\n identityUrl: identityUrl ?? '',\n });\n oidcUrlHelper.storeAuthCodeFromParams(searchParams);\n await tokenClient.initializeTokenFromAuthorizationCode();\n oidcUrlHelper.handleRedirectAfterLogin();\n }\n }\n};\n","import type { TokenData } from '@ori/auth';\nimport { OidcAccessToken, OidcClient, OidcTokenStorage } from '@ori/auth';\n\nimport { IDENTITY_CLIENT_ID } from '../constants';\n\nexport interface TokenConfiguration {\n customerId: number;\n forceReload?: boolean;\n identityUrl?: string;\n tenant: string;\n}\n\nexport const getToken = async ({ customerId, tenant, identityUrl, forceReload }: TokenConfiguration) => {\n // try to get the token from tokenService\n if (window.ori?.tokenService) {\n if (customerId > 0) {\n try {\n const oriToken = await window.ori.tokenService.getToken();\n if (oriToken) {\n return new OidcAccessToken(oriToken.Token);\n }\n } catch (error) {\n // eslint-disable-next-line no-console -- Log error to the console\n console.log('getToken error: %o', error);\n }\n } else {\n try {\n const oriToken = await window.ori.tokenService.getPublicToken();\n if (oriToken) {\n return new OidcAccessToken(oriToken.Token);\n }\n } catch (error) {\n // eslint-disable-next-line no-console -- Log error to the console\n console.log('getPublicToken error: %o', error);\n }\n }\n }\n\n // try to get the token from session storage\n if (customerId > 0) {\n try {\n const authToken = sessionStorage.getItem('AuthToken');\n if (authToken) {\n const transformed = JSON.parse(authToken) as TokenData;\n const token = transformed.Token;\n\n return new OidcAccessToken(token);\n }\n } catch (error) {\n // eslint-disable-next-line no-console -- Log error to the console\n console.log('sessionStorage AuthToken error: %o', error);\n }\n } else {\n try {\n const publicToken = sessionStorage.getItem('PublicToken');\n if (publicToken) {\n const transformed = JSON.parse(publicToken) as TokenData;\n const token = transformed.Token;\n\n return new OidcAccessToken(token);\n }\n } catch (error) {\n // eslint-disable-next-line no-console -- Log error to the console\n console.log('sessionStorage PublicToken error: %o', error);\n }\n }\n\n // only on dev machine, not needed elsewhere\n if (process.env.NODE_ENV !== 'production') {\n const oidcTokenStorage = new OidcTokenStorage();\n let token;\n\n try {\n token = oidcTokenStorage.getAccessToken();\n } catch {\n throw new Error('Failed to obtain token');\n }\n\n if (token && !forceReload) {\n return token;\n }\n if (identityUrl) {\n const clientId = IDENTITY_CLIENT_ID;\n\n const oidcClient = new OidcClient(\n {\n callbackUrl: '#/',\n redirectUrl: window.location.href,\n },\n {\n clientId,\n identityUrl,\n\n acrValues: `tenant:${tenant}`,\n scope: 'openid profile user_identification',\n },\n );\n\n oidcClient.doLogin();\n }\n }\n\n throw new Error('Unsupported token configuration');\n};\n","export enum MenuContentTestIds {\n ROOT = 'menu-content-root',\n HEADING = 'menu-content-heading',\n TEXT = 'menu-content-text',\n AVATAR = 'menu-content-avatar',\n USER_EMAIL = 'menu-content-user-email',\n USER_PHONE = 'menu-content-user-phone',\n USER_NAME = 'menu-content-user-name',\n BENEFITS_LINK = 'menu-content-benefits-link',\n}\n","import type { ReferralProgram } from '@ori/graphql-schema';\nimport { DynamicFormattedMessage } from '@ori/i18n';\nimport useTestId from '@ori/testid-generator';\nimport type { DeepReadonly } from '@ori/ts-utils';\nimport { Avatar, Box, Link, Stack, styled, Typography } from '@ori-ui/mui';\nimport type { DetailedHTMLProps, FC, HTMLAttributes } from 'react';\n\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { MenuContentTestIds, TranslationKey } from '../../models';\nimport type { MenuItemPersonalLinksProps } from '../MenuItem/MenuItemPersonalLinks';\nimport { MenuItemPersonalLinks } from '../MenuItem/MenuItemPersonalLinks';\n\n/**\n * Avatar size. Value is in pixels\n */\nconst AVATAR_SIZE = 170;\n\n/**\n * Maximal content width. Value is in pixels\n */\nconst MAX_CONTENT_WIDTH = 658;\n\nconst Root = styled('div')(({ theme }) => ({\n backgroundColor: theme.palette.common.white,\n padding: theme.spacing(3),\n maxWidth: MAX_CONTENT_WIDTH,\n}));\n\nconst ItemContentWrap = styled(Stack)(({ theme }) => ({\n display: 'block',\n marginTop: theme.spacing(2.5),\n}));\n\nconst MenuItemPersonalLinksWrap = styled(Box)(({ theme }) => ({\n svg: { width: 22, height: 24, ml: theme.spacing(0.8), mr: theme.spacing(0.6) },\n}));\n\nconst LinkWrap = styled(Typography)(({ theme }) => ({\n display: 'block',\n flexDirection: 'row',\n alignItems: 'center',\n marginTop: theme.spacing(1.5),\n}));\n\nconst StyledAvatar = styled(Avatar)(({ theme }) => ({\n width: AVATAR_SIZE,\n height: AVATAR_SIZE,\n margin: theme.spacing(4),\n}));\n\nexport type MenuContentBaseProps = DetailedHTMLProps, HTMLDivElement>;\n\nexport type MenuContentProps = MenuContentBaseProps &\n MenuItemPersonalLinksProps & {\n photoUrl: string | null | undefined;\n referralProgram: DeepReadonly | null | undefined;\n userEmail: string | null | undefined;\n userPhone: string | null | undefined;\n };\n\nexport const MenuContent: FC = ({\n photoUrl,\n referralProgram,\n userEmail,\n userPhone,\n liveStreamingState,\n personalProductListConfiguration,\n videoShoppingConfiguration,\n ...restProps\n}) => {\n const { getTestIdProps } = useTestId();\n const { formatMessage } = useTranslations();\n\n const { benefitsLink, greetingMessage, message } = referralProgram ?? {};\n\n return (\n \n \n \n \n {greetingMessage}\n \n {message ? (\n \n {chunks},\n }}\n />\n \n ) : null}\n {benefitsLink?.relativeUrl && benefitsLink.title ? (\n \n \n {benefitsLink.title}\n \n \n ) : null}\n {userEmail ? (\n \n \n {userEmail}\n \n \n ) : null}\n {userPhone ? (\n \n \n {userPhone}\n \n \n ) : null}\n \n \n \n \n \n {photoUrl ? (\n \n \n \n ) : null}\n \n );\n};\n","import type { FC } from 'react';\n\nimport { ComponentWrapper } from './ComponentWrapper';\nimport type { MenuContentBaseProps } from '../components';\nimport { MenuContent } from '../components';\nimport { usePersonalBeautyStore } from '../contexts';\nimport { SocialContactType } from '../models';\nimport { getContactByType, getLiveStreamingStateByVideoConfig, replacePlaceholdersInUrl } from '../utils';\n\nexport const MenuContentContainer: FC = (props) => {\n const { canDisplaySponsorInfo, pbsData } = usePersonalBeautyStore();\n\n if (!canDisplaySponsorInfo) {\n return null;\n }\n\n const { profile, productLists, videoShows } = pbsData?.beautyStore ?? {};\n const { photoUrl, contacts, name, referralProgram } = profile ?? {};\n const { allowedContacts } = referralProgram ?? {};\n const { isVideoShoppingEnabled, addThis: videoShoppingConfigurationAddThis } =\n pbsData?.application?.videoShopping?.configuration ?? {};\n const currentVideoShow = videoShows?.find((show) => show?.isCurrent);\n const { sharedUrl: videoShoppingUrl } = videoShoppingConfigurationAddThis as {\n sharedUrl: string;\n };\n const { addThis: pplConfigurationAddThis, isPplEnabled } =\n pbsData?.application?.personalProductListConfiguration ?? {};\n const { sharedUrl: pplUrl } = pplConfigurationAddThis as {\n sharedUrl: string;\n };\n\n const userEmail = getContactByType(allowedContacts, contacts, SocialContactType.Email);\n const userPhone = getContactByType(allowedContacts, contacts, SocialContactType.PhoneNumber);\n\n return (\n \n = 1 ? { personallist: productLists[0]?.productListId } : {}),\n }),\n }}\n />\n \n );\n};\n","import type { ImageSizesHelperParams } from '@ori/image-sizes-helper';\nimport { getImageVariants, generateSrcSet } from '@ori/image-sizes-helper';\nimport useTestId from '@ori/testid-generator';\nimport { styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\n\nconst ProductImageRoot = styled('img')(({ theme }) => ({\n objectFit: 'cover',\n borderRadius: theme.shape.largeComponentRadius,\n}));\n\ninterface ProductImageProps {\n catalogue: string;\n image: string;\n alt: string;\n}\n\nexport const ProductImage: FC = ({ image, alt, catalogue }) => {\n const { getTestId } = useTestId();\n\n const imagesVariants: ImageSizesHelperParams = {\n url: image,\n params: [\n {\n width: 131,\n height: 131,\n quality: 90,\n },\n {\n width: 250,\n height: 228,\n quality: 90,\n },\n {\n width: 310,\n height: 282,\n quality: 90,\n },\n {\n width: 375,\n height: 342,\n quality: 80,\n },\n {\n width: 438,\n height: 399,\n quality: 75,\n },\n {\n width: 500,\n height: 456,\n quality: 70,\n },\n {\n width: 688,\n height: 627,\n quality: 65,\n },\n {\n width: 750,\n height: 684,\n quality: 60,\n },\n ],\n };\n const images = getImageVariants(imagesVariants);\n const currentCatalogue = '(max-width: 1023px) 250px, 310px';\n const nextCatalogue = '131px';\n\n return (\n \n );\n};\n","export interface IsMobileProps {\n isMobile: boolean;\n}\n\nexport enum CatalogueType {\n Current = 'current',\n Next = 'next',\n}\n\nexport interface CatalogueProps {\n url?: string | undefined;\n title?: string | undefined;\n imageUrl?: string | undefined;\n validity: string | null;\n}\n\nexport interface CurrentCatalogueProps {\n isMobile: boolean;\n onClick: () => void;\n catalogue: CatalogueProps;\n linkToAllCatalogues: string;\n}\n\nexport interface NextCatalogueProps {\n onClick: () => void;\n catalogue: CatalogueProps;\n}\n","import { shouldForwardProp } from '@ori/presentation-utils';\nimport { Button, styled } from '@ori-ui/mui';\n\nimport { CatalogueType } from './types';\nimport type { IsMobileProps } from './types';\n\nexport const Root = styled('div', {\n shouldForwardProp: shouldForwardProp(),\n})(({ theme, isMobile }) => ({\n margin: isMobile ? theme.spacing(2, 6, 8, 4) : theme.spacing(6, 6, 0),\n display: 'flex',\n flexDirection: 'row',\n}));\n\nexport const CurrentCatalog = styled('div')(() => ({\n width: 200,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'start',\n}));\n\nexport const NextCatalog = styled('div')(({ theme }) => ({\n width: 155,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n margin: theme.spacing(0, 6),\n}));\n\nexport const Title = styled('h6')(({ theme }) => ({\n marginTop: theme.spacing(2),\n color: theme.palette.text.primary,\n fontWeight: theme.typography.fontWeightBold,\n lineHeight: 'normal',\n textAlign: 'center',\n fontSize: theme.typography.pxToRem(20),\n '&:hover': {\n color: theme.palette.default.light,\n },\n display: '-webkit-box',\n WebkitLineClamp: 3,\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n}));\n\nexport const Validity = styled('p')(({ theme }) => ({\n color: theme.palette.text.secondary,\n fontSize: theme.typography.pxToRem(14),\n margin: theme.spacing(1, 0, 0),\n}));\n\nexport const Centered = styled('div')({\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n width: 200,\n});\n\nexport const CatalogueLink = styled('a')<{ hoverEffect?: boolean }>(({ theme, hoverEffect = false }) => ({\n textDecoration: 'none',\n '&:hover': {\n color: hoverEffect ? theme.palette.default.light : 'none',\n },\n}));\n\nexport const CatalogueDetailButton = styled(Button)<{ hoverEffect?: boolean }>(({ theme, hoverEffect = false }) => ({\n margin: theme.spacing(3, 0, 0),\n '&:hover': {\n background: hoverEffect ? theme.palette.grey : 'none',\n },\n}));\n\nexport const ImageWrapper = styled('div')<{ catalogue: CatalogueType }>(({ theme, catalogue }) => ({\n width: catalogue === CatalogueType.Current ? 200 : 100,\n\n '& > img': {\n borderRadius: theme.spacing(1),\n alignSelf: 'center',\n justifySelf: 'center',\n },\n}));\n\nexport const CallToAction = styled('div')(({ theme }) => ({\n width: 330,\n margin: theme.spacing(3, 0, 4),\n}));\n\nexport const CTAText = styled('p')(({ theme, isMobile }) => ({\n fontSize: theme.typography.pxToRem(isMobile ? 12 : 15),\n fontWeight: theme.typography.fontWeightBold,\n color: theme.palette.text.primary,\n textAlign: isMobile ? 'center' : 'left',\n textDecoration: isMobile ? 'underline' : 'none',\n textTransform: isMobile ? 'uppercase' : 'none',\n textUnderlineOffset: isMobile ? theme.spacing(1) : 'auto',\n textDecorationThickness: isMobile ? 2 : 'auto',\n margin: isMobile ? theme.spacing(3, 0, 0) : 0,\n}));\n\nexport const MobileWrapper = styled('div')(() => ({\n height: 103,\n width: '100%',\n}));\n","export const DESKTOP_CATALOGUE = 'desktop-catalogue';\nexport const MOBILE_CATALOGUE = 'mobile-catalogue';\nexport const NEXT_CATALOGUE = 'next-catalogue';\nexport const CATALOGUE_IMAGE_ROOT = 'catalogue-image-root';\nexport const CATALOGUES_SEE_ALL = 'catalogues-see-all';\nexport const CATALOGUES_SEE_ALL_LINK = 'catalogues-see-all-link';\nexport const TITLE = 'title';\nexport const VALIDITY = 'validity';\nexport const LINK = 'link';\nexport const CTA_TEXT = 'cta-text';\nexport const PRODUCT_IMAGE = 'product-image';\nexport const DETAIL_BUTTON = 'detail-button';\n","import { Banner } from '@ori/presentation-components';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { ProductImage } from './CatalogueImage';\nimport {\n MobileWrapper,\n CallToAction,\n CatalogueDetailButton,\n CatalogueLink,\n Centered,\n CTAText,\n CurrentCatalog,\n ImageWrapper,\n Title,\n Validity,\n} from './styles';\nimport type { CurrentCatalogueProps } from './types';\nimport { CatalogueType } from './types';\nimport { useTranslations } from '../../../hooks/useTranslations';\nimport {\n CATALOGUES_SEE_ALL,\n CATALOGUES_SEE_ALL_LINK,\n CTA_TEXT,\n DESKTOP_CATALOGUE,\n DETAIL_BUTTON,\n LINK,\n MOBILE_CATALOGUE,\n PRODUCT_IMAGE,\n TITLE,\n VALIDITY,\n} from '../../common';\n\nexport const CurrentCatalogue: FC = (props) => {\n const { formatMessage } = useTranslations();\n const { getTestId } = useTestId();\n\n const {\n onClick,\n isMobile,\n catalogue: { url, title, imageUrl, validity },\n linkToAllCatalogues,\n } = props;\n\n if (isMobile) {\n return (\n \n \n {linkToAllCatalogues ? (\n \n \n {formatMessage('seeAll')}\n \n \n ) : null}\n \n );\n }\n\n return (\n \n \n \n \n \n \n \n \n {title}\n \n {validity}\n \n {formatMessage('view')}\n \n \n\n {linkToAllCatalogues ? (\n \n {formatMessage('callToActionCatalogueText')}\n \n {formatMessage('seeAllCatalogues')}\n \n \n ) : null}\n \n );\n};\n","import useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { ProductImage } from './CatalogueImage';\nimport { CatalogueDetailButton, CatalogueLink, Centered, ImageWrapper, NextCatalog, Title, Validity } from './styles';\nimport type { NextCatalogueProps } from './types';\nimport { CatalogueType } from './types';\nimport { useTranslations } from '../../../hooks/useTranslations';\nimport { DETAIL_BUTTON, LINK, NEXT_CATALOGUE, PRODUCT_IMAGE, TITLE, VALIDITY } from '../../common';\n\nexport const NextCatalogue: FC = (props) => {\n const { formatMessage } = useTranslations();\n const { getTestId } = useTestId();\n\n const {\n onClick,\n catalogue: { url, title, imageUrl, validity },\n } = props;\n\n return (\n \n \n \n \n \n \n \n \n {title}\n \n {validity}\n \n {formatMessage('view')}\n \n \n \n );\n};\n","export const formatDate = (date?: unknown) => {\n if (date instanceof Date) {\n const day = date.getDate();\n const month = date.getMonth();\n const year = date.getFullYear();\n\n return `${day}.${month + 1}.${year}`;\n }\n\n return undefined;\n};\n","import type { StaticCataloguesCatalogueDto } from '@ori/static-api-client-react';\n\nimport { formatDate } from '.';\n\nexport const formatValidity = (catalogueId: string, catalogues: StaticCataloguesCatalogueDto[]) => {\n const catalogue = catalogues.find((e) => e.catalogueId.toString() === catalogueId);\n\n if (!catalogue?.valid) {\n return null;\n }\n\n const from = formatDate(catalogue.valid.from);\n const to = formatDate(catalogue.valid.to);\n\n if (!from || !to) {\n return null;\n }\n\n return `${from} - ${to}`;\n};\n","import useTestId from '@ori/testid-generator';\nimport { Box, Skeleton, styled } from '@ori-ui/mui';\n\nimport { useIsMarketCN } from '../../../hooks/useIsMarketCN';\n\nconst SkeletonCatalogueMobileRoot = styled(Box)({\n margin: 'auto',\n\n '& > *': {\n margin: 'auto',\n },\n});\n\nconst SkeletonCatalogueMobileValidity = styled(Skeleton)(({ theme }) => ({\n margin: theme.spacing(1, 'auto', 3),\n}));\n\nconst SkeletonCatalogueMobileSeeAll = styled(Skeleton)({\n marginTop: 16,\n});\n\nexport const SkeletonCatalogueMobile = () => {\n const isMarketCN = useIsMarketCN();\n const { getTestId } = useTestId();\n\n return (\n \n \n \n \n \n \n );\n};\n","import useTestId from '@ori/testid-generator';\nimport { Box, Skeleton, styled } from '@ori-ui/mui';\n\nimport { useIsMarketCN } from '../../../hooks/useIsMarketCN';\n\nconst SkeletonCatalogueDesktopRoot = styled(Box)(({ theme }) => ({\n gridColumnStart: 1,\n margin: theme.spacing(2, 'auto', 5),\n paddingRight: theme.spacing(3),\n\n '& > *': {\n margin: 'auto',\n },\n}));\n\nconst SkeletonCatalogueDesktopValidity = styled(Skeleton)(({ theme }) => ({\n margin: theme.spacing(1, 'auto', 1),\n}));\n\nconst SkeletonCatalogueDesktopContent = styled(Skeleton)(({ theme }) => ({\n marginTop: theme.spacing(2),\n}));\n\nconst SkeletonCatalogueDesktopSeeAll = styled(Skeleton)(({ theme }) => ({\n marginTop: theme.spacing(3),\n}));\n\nexport const SkeletonCatalogueDesktop = () => {\n const isMarketCN = useIsMarketCN();\n const { getTestId } = useTestId();\n\n return (\n \n \n \n \n \n \n );\n};\n","import useTestId from '@ori/testid-generator';\nimport * as UserAction from '@ori-events/user-action';\nimport type { FC } from 'react';\nimport { useCallback } from 'react';\n\nimport { CurrentCatalogue } from './CurrentCatalogue';\nimport { NextCatalogue } from './NextCatalogue';\nimport { Root } from './styles';\nimport { CLICK_CATALOGUE_DETAIL } from '../../../constants';\nimport { useCatalogues } from '../../../context';\nimport { useShopSection } from '../../../context/navigation';\nimport { useIsMobile } from '../../../hooks';\nimport { formatValidity } from '../../../utils/formatValidity';\nimport { SkeletonCatalogueDesktop, SkeletonCatalogueMobile } from '../../Skeleton';\n\nexport const Catalogues: FC = () => {\n const { catalogues, isLoading } = useCatalogues();\n const { items } = useShopSection();\n const isMobile = useIsMobile();\n const { getTestId } = useTestId();\n\n const sendAnalyticsData = useCallback(() => {\n UserAction.dispatch(CLICK_CATALOGUE_DETAIL);\n }, []);\n\n if (isLoading) {\n return isMobile ? : ;\n }\n\n if (items.length === 0) {\n return null;\n }\n\n const link = items.find((e) => e.linkType === 'Catalogue');\n const catalogueCurrent = link?.children.find((e) => e.linkType === 'DigitalCatalogueCurrent');\n const catalogueNext = link?.children.find((e) => e.linkType === 'DigitalCatalogueNext');\n const isCatalogueNextValid = Boolean(\n !isMobile && catalogueNext?.id && catalogueNext.imageUrl && catalogueNext.title && catalogueNext.url,\n );\n const linkToAllCatalogues = link?.children.find((e) => e.linkType === 'Catalogues');\n\n if (!catalogueCurrent?.id || !catalogueCurrent.imageUrl || !catalogueCurrent.title || !catalogueCurrent.url) {\n return null;\n }\n\n return (\n \n \n\n {isCatalogueNextValid && catalogueNext ? (\n \n ) : null}\n \n );\n};\n","import useTestId from '@ori/testid-generator';\nimport { Box, Skeleton, styled } from '@ori-ui/mui';\n\nconst SkeletonSubCategoryMobileRoot = styled(Box)(({ theme }) => ({\n marginTop: theme.spacing(2),\n}));\n\nconst SkeletonSubCategoryMobileLoader = styled(Skeleton)(({ theme }) => ({\n margin: theme.spacing(0, 3, 1, 6),\n paddingTop: theme.spacing(4),\n}));\n\nconst TOPNAV_EXPANDED_HEIGHT_OFFSET = 200;\nconst SKELETON_HEIGHT = 60;\n\nexport const SkeletonSubCategoryMobile = () => {\n const elements = Math.floor((window.innerHeight - TOPNAV_EXPANDED_HEIGHT_OFFSET) / SKELETON_HEIGHT);\n const { getTestId } = useTestId();\n const steps = Array.from({ length: elements }, (element, index) => index);\n\n const skeletonElements = steps.map((step) => (\n \n ));\n\n return (\n \n {skeletonElements}\n \n );\n};\n","import useTestId from '@ori/testid-generator';\nimport { Box, Skeleton, styled } from '@ori-ui/mui';\n\nconst SkeletonSubCategoryRoot = styled(Box)(({ theme }) => ({\n marginTop: theme.spacing(4),\n}));\n\nconst SkeletonSubCategoryLoader = styled(Skeleton)(({ theme }) => ({\n margin: theme.spacing(0, 3, 2, 10),\n}));\n\nconst SKELETON_ELEMENTS = 10;\nconst SKELETON_ELEMENT_HEIGHT = 32;\n\nexport const SkeletonSubCategoryDesktop = () => {\n const steps = Array.from({ length: SKELETON_ELEMENTS }, (element, index) => index);\n const { getTestId } = useTestId();\n\n const skeletonElements = steps.map((step) => (\n \n ));\n\n return (\n \n {skeletonElements}\n \n );\n};\n","import { MenuContentContainer as PbsMenuContent } from '@ori/personal-beauty-store';\nimport { StaticNavigationNavigationItemDtoLinkType } from '@ori/static-api-client-react';\nimport useTestId from '@ori/testid-generator';\nimport { styled } from '@ori-ui/mui';\nimport type { RefObject, FC } from 'react';\nimport { Suspense, memo, lazy } from 'react';\n\nimport { Catalogues } from './Catalogues/Catalogues';\nimport { useActiveLink, usePbsContent } from '../../context/navigation';\nimport { useIsMobile } from '../../hooks';\nimport { SkeletonSubCategoryDesktop, SkeletonSubCategoryMobile } from '../Skeleton';\n\nconst BurgerMenuContentRoot = styled('div')(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n display: 'flex',\n width: '80%',\n },\n}));\n\nconst StyledPbsMenuContent = styled(PbsMenuContent)(({ theme }) => ({\n marginLeft: '4rem',\n marginTop: '3rem',\n}));\n\nconst LazyInspiration = lazy(async () => ({\n default: (await import('./Inspiration/Inspiration')).Inspiration,\n}));\nconst LazyCategoryContent = lazy(async () => ({\n default: (await import('./CategoryContent/CategoryContent')).CategoryContent,\n}));\n\nconst CategoryContent: FC<{ isMobile?: boolean }> = memo(({ isMobile }) => (\n : }>\n \n \n));\n\nexport interface BurgerMenuContentProps {\n contentRootRef?: RefObject;\n}\n\nexport const BurgerMenuContent = ({ contentRootRef }: BurgerMenuContentProps) => {\n const isMobile = useIsMobile();\n const { activeLink } = useActiveLink();\n const { isShown } = usePbsContent();\n const { linkType, id } = activeLink ?? {};\n const { getTestId } = useTestId();\n\n const navigation = {\n isCatalogue: linkType === StaticNavigationNavigationItemDtoLinkType.Catalogue,\n isCategory: linkType === StaticNavigationNavigationItemDtoLinkType.Category,\n // @ts-expect-error -- check Static API typings\n isInspiration: linkType === 'Inspiration',\n };\n\n return (\n \n {isShown ? (\n \n ) : (\n <>\n {navigation.isCatalogue ? : null}\n {navigation.isCategory && id ? (\n \n ) : null}\n {navigation.isInspiration ? : null}\n \n )}\n \n );\n};\n","import useTestId from '@ori/testid-generator';\nimport { Box, Skeleton, styled } from '@ori-ui/mui';\n\nconst SkeletonMainCategoriesMobileCategory = styled(Skeleton)(({ theme }) => ({\n margin: theme.spacing(0, 3, 1),\n minWidth: '80%',\n}));\n\nconst SkeletonMainCategoriesMobileCategoryLarge = styled(Skeleton)(({ theme }) => ({\n margin: theme.spacing(5, 3, 1),\n minWidth: '80%',\n}));\n\nconst SKELETON_HEIGHT = 60;\n\nexport const SkeletonMainCategoriesMobile = () => {\n const elements = Math.floor(window.innerHeight / SKELETON_HEIGHT);\n const steps = Array.from({ length: elements }, (element, index) => index);\n const { getTestId } = useTestId();\n\n const skeletonElements = steps.map((step) => (\n \n ));\n\n return (\n \n \n\n {skeletonElements}\n\n \n \n );\n};\n","import useTestId from '@ori/testid-generator';\nimport { Box, Skeleton, styled } from '@ori-ui/mui';\nimport times from 'lodash.times';\n\nconst SkeletonMenuLinks = styled(Box)(({ theme }) => ({\n borderRight: `2px solid ${theme.palette.grey[100]}`,\n display: 'flex',\n flexDirection: 'column',\n padding: theme.spacing(0, 2),\n}));\n\nconst CATEGORIES_LINKS = 15;\n\nexport const SkeletonMainCategoriesDesktop = () => {\n const { getTestId } = useTestId();\n\n return (\n \n \n {times(CATEGORIES_LINKS, (index) => (\n \n ))}\n \n \n );\n};\n","import type { FC } from 'react';\nimport { lazy, Suspense } from 'react';\n\nimport { useIsMobile } from '../../../hooks';\nimport { SkeletonMainCategoriesDesktop, SkeletonMainCategoriesMobile } from '../../Skeleton';\n\nconst LazyGeneratedBurgerMainMenuLinks = lazy(async () => import('./Links'));\n\nexport const BurgerMenuLinks: FC = () => {\n const isMobile = useIsMobile();\n\n return (\n : }>\n \n \n );\n};\n\nexport default BurgerMenuLinks;\n","export const CLICK_CATALGOUE = ['open_ecatalogue', 'Main menu sidebar'];\n\nexport const CLICK_CATALOGUE_DETAIL = ['open_ecatalogue', 'Main menu content'];\n\nexport const CLICK_BURGER_MENU = ['open_main_menu', 'Top navigation'];\n\nexport const CLICK_CATEGORY_BRAND = ['select_brand', 'Main menu content'];\n\nexport const START_SEARCH = ['search_start', 'Search 1'];\n\nexport const CLICK_FAVORITE_ICON = ['open_favorites', 'Top navigation'];\n\nexport const CLICK_NOTIFICATION_ICON = ['notifications', 'open_notification_overview'];\n","export const CN_MARKET = 'cn';\n","import type { StaticCataloguesCatalogueDto } from '@ori/static-api-client-react';\nimport { useGetTenantCatalogues } from '@ori/static-api-client-react';\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useContext, useMemo } from 'react';\n\nimport { useConfiguration } from './configurationContext';\n\nexport interface CataloguesContext {\n catalogues: StaticCataloguesCatalogueDto[];\n isLoading: boolean;\n}\n\nexport const cataloguesContextDefaultValue: CataloguesContext = {\n catalogues: [],\n isLoading: false,\n};\n\nexport const cataloguesContext = createContext(cataloguesContextDefaultValue);\n\nconst { Provider } = cataloguesContext;\n\nexport const CataloguesProvider: FC = ({ children }) => {\n const { tenant } = useConfiguration();\n const { data, error } = useGetTenantCatalogues(tenant);\n\n const value = useMemo(\n () => ({ catalogues: data?.collection ?? [], isLoading: data === undefined && error === undefined }),\n [data, error],\n );\n\n return {children};\n};\n\nexport const useCatalogues = () => useContext(cataloguesContext);\n","import { NOT_LOGGED_IN_USER_ID } from '@ori/auth';\nimport { createContext, useContext } from 'react';\n\nimport type { AppConfiguration } from '../models';\n\nexport const configurationContextDefaultValue: AppConfiguration = {\n currentLanguage: '',\n customerId: NOT_LOGGED_IN_USER_ID,\n globalApiUrl: '',\n graphqlUrl: '',\n identityUrl: '',\n mobileOfficeApiUrl: '',\n kpiApiUrl: '',\n localApiUrl: '',\n ssoAdLoginUrl: '',\n staticApiUrl: '',\n tenant: '',\n};\n\nexport const configurationContext = createContext(configurationContextDefaultValue);\n\nexport const { Provider: ConfigurationProvider } = configurationContext;\n\nexport const useConfiguration = () => useContext(configurationContext);\n","import { StaticNavigationNavigationItemDtoType } from '@ori/static-api-client-react';\n\nimport { createNavigationItemsContext } from './internal';\n\nexport const {\n navigationItemsContext: aboutTilesContext,\n NavigationItemsProvider: AboutTilesProvider,\n useNavigationItems: useAboutTiles,\n} = createNavigationItemsContext(StaticNavigationNavigationItemDtoType.AboutTiles);\n","import type { StaticNavigationNavigationItemDto } from '@ori/static-api-client-react';\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useCallback, useContext, useMemo, useState } from 'react';\n\nimport { usePbsContent } from './pbsContentContext';\nimport { useIsMobile } from '../../hooks/useIsMobile';\n\nexport type ActiveLink = StaticNavigationNavigationItemDto | null;\n\nexport interface ActiveLinkContext {\n activeLink: ActiveLink;\n toggleActiveLink: (link: ActiveLink) => void;\n}\n\nexport const activeLinkContext = createContext(undefined);\n\nconst { Provider } = activeLinkContext;\n\nexport const ActiveLinkProvider: FC = ({ children }) => {\n const [activeLink, setActiveLink] = useState(null);\n const { setIsShown } = usePbsContent();\n const isMobile = useIsMobile();\n const toggleActiveLink = useCallback(\n (link: ActiveLink) => {\n setIsShown(false);\n if (isMobile && activeLink === link) {\n setActiveLink(null);\n } else {\n setActiveLink(link);\n }\n },\n [activeLink, isMobile, setIsShown],\n );\n const value = useMemo(() => ({ activeLink, toggleActiveLink }), [activeLink, toggleActiveLink]);\n\n return {children};\n};\n\nexport const useActiveLink = () => {\n const context = useContext(activeLinkContext);\n if (context) {\n return context;\n }\n throw new Error('useActiveLinkContext must be used within a ActiveLinkProvider.');\n};\n","import { StaticNavigationNavigationItemDtoType } from '@ori/static-api-client-react';\n\nimport { createNavigationItemsContext } from './internal';\n\nexport const {\n navigationItemsContext: inspirationTilesContext,\n NavigationItemsProvider: InspirationTilesProvider,\n useNavigationItems: useInspirationTiles,\n} = createNavigationItemsContext(StaticNavigationNavigationItemDtoType.InspirationTiles);\n","import type { StaticNavigationNavigationItemDtoType } from '@ori/static-api-client-react';\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useCallback, useContext, useMemo, useState } from 'react';\n\nimport type { NavigationItemsContext } from './types';\nimport { useFetchNavigationItems } from '../../../hooks/useFetchNavigationItems';\n\nexport const createNavigationItemsContext = (type: T) => {\n const navigationItemsContext = createContext(undefined);\n const { Provider } = navigationItemsContext;\n const NavigationItemsProvider: FC = ({ children }) => {\n const [items, setItems] = useState([]);\n const fetchNavigationItems = useFetchNavigationItems();\n const fetch = useCallback(() => {\n // eslint-disable-next-line no-console -- log error to console\n fetchNavigationItems(type).then(setItems).catch(console.error);\n }, [fetchNavigationItems]);\n const value = useMemo(() => ({ items, fetch }), [fetch, items]);\n\n return {children};\n };\n NavigationItemsProvider.displayName = `${type}Provider`;\n const useNavigationItems = () => {\n const context = useContext(navigationItemsContext);\n if (context) {\n return context;\n }\n throw new Error(`use${type} must be used within a ${type}Provider`);\n };\n\n return { navigationItemsContext, NavigationItemsProvider, useNavigationItems };\n};\n","import type { Dispatch, FC, PropsWithChildren, SetStateAction } from 'react';\nimport { createContext, useContext, useMemo, useState } from 'react';\n\nexport interface PbsContentContext {\n isShown: boolean;\n setIsShown: Dispatch>;\n}\n\nexport const pbsContentContext = createContext(undefined);\n\nconst { Provider } = pbsContentContext;\n\nexport const PbsContentProvider: FC = ({ children }) => {\n const [isShown, setIsShown] = useState(false);\n const value = useMemo(() => ({ isShown, setIsShown }), [isShown, setIsShown]);\n\n return {children};\n};\n\nexport const usePbsContent = () => {\n const context = useContext(pbsContentContext);\n if (context) {\n return context;\n }\n throw new Error('usePbsContentContext must be used within a PbsContentProvider.');\n};\n","import { axios } from '@ori/axios';\nimport { ACCEPT_LANGUAGE } from '@ori/fetching';\nimport type { Dispatch, FC, PropsWithChildren, SetStateAction } from 'react';\nimport { createContext, useCallback, useContext, useMemo, useState } from 'react';\n\nimport type { SuggestionsAndResults } from '../../models';\nimport { useConfiguration } from '../configurationContext';\n\nexport interface SearchInputContext {\n blur: () => void;\n clearResults: () => void;\n focus: () => void;\n hide: () => void;\n isFocused: boolean;\n isVisible: boolean;\n results?: SuggestionsAndResults | undefined;\n search: (query: string) => void;\n setValue: Dispatch>;\n show: () => void;\n timestamp: number;\n value: string;\n}\n\nexport const searchInputContext = createContext(undefined);\n\nconst { Provider } = searchInputContext;\n\nexport const SearchInputProvider: FC = ({ children }) => {\n const [isFocused, setIsFocused] = useState(false);\n const [isVisible, setIsVisible] = useState(false);\n const [results, setResults] = useState(undefined);\n const [timestamp, setTimestamp] = useState(0);\n const [value, setValue] = useState('');\n const blur = useCallback(() => setIsFocused(false), []);\n const focus = useCallback(() => setIsFocused(true), []);\n const hide = useCallback(() => setIsVisible(false), []);\n const show = useCallback(() => setIsVisible(true), []);\n const { currentLanguage } = useConfiguration();\n const clearResults = useCallback(() => setResults(undefined), []);\n const search = useCallback(\n (query: string) => {\n const url = new URL(`${window.location.origin}/system/ajax/Search/SuggestionsAndResults`);\n url.searchParams.set('q', query);\n axios\n .get(url.toString(), {\n headers: {\n [ACCEPT_LANGUAGE]: currentLanguage,\n },\n })\n .then(({ data }) => {\n setResults(data);\n setTimestamp(Date.now());\n })\n // eslint-disable-next-line no-console -- log error to console\n .catch(console.error);\n },\n [currentLanguage],\n );\n const context = useMemo(\n () => ({\n blur,\n clearResults,\n focus,\n hide,\n isFocused,\n isVisible,\n results,\n search,\n setValue,\n show,\n timestamp,\n value,\n }),\n [blur, clearResults, focus, hide, isFocused, isVisible, results, search, setValue, show, timestamp, value],\n );\n\n return {children};\n};\n\nexport const useSearchInput = () => {\n const context = useContext(searchInputContext);\n if (context) {\n return context;\n }\n throw new Error('useSearchInput must be used within a SearchInputProvider.');\n};\n","import { StaticNavigationNavigationItemDtoType } from '@ori/static-api-client-react';\n\nimport { createNavigationItemsContext } from './internal';\n\nexport const {\n navigationItemsContext: shopSectionContext,\n NavigationItemsProvider: ShopSectionProvider,\n useNavigationItems: useShopSection,\n} = createNavigationItemsContext(StaticNavigationNavigationItemDtoType.ShopSection);\n","import { useToken } from '@ori/auth';\nimport {\n getApplicationsNavigationCustomerInfo,\n useApiClient as useGlobalApiClient,\n} from '@ori/global-api-client-react';\nimport type {\n GetTenantApplicationsNavigationNavigationParams,\n StaticNavigationNavigationItemDto,\n StaticNavigationNavigationItemDtoType,\n} from '@ori/static-api-client-react';\nimport {\n getTenantApplicationsNavigationNavigation,\n useApiClient as useStaticApiClient,\n} from '@ori/static-api-client-react';\nimport { useCallback } from 'react';\n\nimport { useConfiguration } from '../context';\n\nexport const useFetchNavigationItems = (): ((\n navigationType: StaticNavigationNavigationItemDtoType,\n) => Promise) => {\n const { tenant, currentLanguage } = useConfiguration();\n const globalApiClient = useGlobalApiClient();\n const staticApiClient = useStaticApiClient();\n const { isAnonymousUser } = useToken();\n const { customerId } = useToken();\n\n return useCallback(\n async (navigationType: StaticNavigationNavigationItemDtoType) => {\n const requestOptions: GetTenantApplicationsNavigationNavigationParams = {\n excludeChildren: false,\n lang: currentLanguage,\n };\n\n if (!isAnonymousUser) {\n const { data: customerInfo } = await getApplicationsNavigationCustomerInfo(\n globalApiClient,\n customerId.toString(),\n );\n requestOptions.customerTypeId = customerInfo.customerType?.customerTypeId;\n requestOptions.visitorSegment = customerInfo.visitorSegment;\n }\n\n const { data: responseNavigation } = await getTenantApplicationsNavigationNavigation(\n staticApiClient,\n tenant,\n navigationType,\n requestOptions,\n );\n\n return responseNavigation.navigationCollection;\n },\n [currentLanguage, customerId, globalApiClient, isAnonymousUser, staticApiClient, tenant],\n );\n};\n","import { CN_MARKET } from '../constants';\nimport { useConfiguration } from '../context';\n\nexport const useIsMarketCN = () => {\n const { tenant } = useConfiguration();\n\n return tenant === CN_MARKET;\n};\n","import { useWindowSize } from '@ori/presentation-hooks';\nimport { useTheme } from '@ori-ui/mui';\n\nexport const useIsMobile = () => {\n const { width } = useWindowSize();\n const { breakpoints } = useTheme();\n\n return width !== 0 && width < breakpoints.values.md;\n};\n","/* istanbul ignore file */\n/**\n * DO NOT EDIT!\n * This file was autogenerated by npm script `localizations-codegen`.\n * Changes may cause incorrect behavior and will be lost when the file is regenerated.\n *\n * Run `npx localizations-codegen` to regenerate.\n */\nimport { useTranslationsFromNamespace, type UseTranslationsFromNamespaceResult } from '@ori/i18n';\n\nimport type { DefaultTranslations } from '../constants/defaultTranslations';\n\n/**\n * A hook for accessing translations within a specific namespace along with a formatting function.\n *\n * @returns The translations within the specified namespace and a formatting function.\n */\nexport const useTranslations: () => UseTranslationsFromNamespaceResult = () =>\n useTranslationsFromNamespace();\n","export const FavoritesLink = '/favourite-products';\n","export const boldMatchedText = (articleContent: string | null, searchPhrase: string) => {\n if (!articleContent) {\n return null;\n }\n\n const escapedSearchPhrase = searchPhrase.replaceAll(/[$()*+.?[\\\\\\]^{|}]/g, '\\\\$&').trim();\n const regExpPattern = new RegExp(escapedSearchPhrase, 'igu');\n const splitText = articleContent.split(regExpPattern);\n const matches = regExpPattern.exec(articleContent);\n\n if (!matches) {\n return articleContent;\n }\n\n return splitText.map((el, index) => {\n if (index > matches.length) {\n return el;\n }\n\n return (\n // eslint-disable-next-line react/no-array-index-key -- there is nothing unique here and this array is not mutable\n \n {el}\n {matches[index]}\n \n );\n });\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.top-nav {\n --top-nav-height-animation: 0.3s ease-in-out;\n --top-nav-height: 80px;\n --top-nav-inner-height: 80px;\n}\n\n.top-nav--is-shrunk:not(.top-nav--is-mobile) {\n --top-nav-height: 60px;\n --top-nav-inner-height: 60px;\n}\n\n.top-nav--is-mobile {\n --top-nav-height: 56px;\n --top-nav-inner-height: 56px;\n}\n\n.top-nav--with-order-on-behalf {\n --top-nav-height: 112px;\n --top-nav-inner-height: 80px;\n}\n\n.top-nav--with-order-on-behalf.top-nav--is-mobile {\n --top-nav-height: 88px;\n --top-nav-inner-height: 56px;\n}\n\n.top-nav--with-order-on-behalf.top-nav--is-shrunk:not(.top-nav--is-mobile) {\n --top-nav-height: 92px;\n --top-nav-inner-height: 60px;\n}\n\n#online-top-area-root {\n height: auto;\n height: initial;\n}\n\n#top-area {\n height: var(--top-nav-height);\n transition: height var(--top-nav-height-animation);\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/App.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,4CAA4C;EAC5C,sBAAsB;EACtB,4BAA4B;AAC9B;;AAEA;EACE,sBAAsB;EACtB,4BAA4B;AAC9B;;AAEA;EACE,sBAAsB;EACtB,4BAA4B;AAC9B;;AAEA;EACE,uBAAuB;EACvB,4BAA4B;AAC9B;;AAEA;EACE,sBAAsB;EACtB,4BAA4B;AAC9B;;AAEA;EACE,sBAAsB;EACtB,4BAA4B;AAC9B;;AAEA;EACE,YAAa;EAAb,eAAa;AACf;;AAEA;EACE,6BAA6B;EAC7B,kDAAkD;AACpD\",\"sourcesContent\":[\".top-nav {\\n --top-nav-height-animation: 0.3s ease-in-out;\\n --top-nav-height: 80px;\\n --top-nav-inner-height: 80px;\\n}\\n\\n.top-nav--is-shrunk:not(.top-nav--is-mobile) {\\n --top-nav-height: 60px;\\n --top-nav-inner-height: 60px;\\n}\\n\\n.top-nav--is-mobile {\\n --top-nav-height: 56px;\\n --top-nav-inner-height: 56px;\\n}\\n\\n.top-nav--with-order-on-behalf {\\n --top-nav-height: 112px;\\n --top-nav-inner-height: 80px;\\n}\\n\\n.top-nav--with-order-on-behalf.top-nav--is-mobile {\\n --top-nav-height: 88px;\\n --top-nav-inner-height: 56px;\\n}\\n\\n.top-nav--with-order-on-behalf.top-nav--is-shrunk:not(.top-nav--is-mobile) {\\n --top-nav-height: 92px;\\n --top-nav-inner-height: 60px;\\n}\\n\\n#online-top-area-root {\\n height: unset;\\n}\\n\\n#top-area {\\n height: var(--top-nav-height);\\n transition: height var(--top-nav-height-animation);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["StyledAvatar","styled","Avatar","_ref","theme","width","height","backgroundColor","palette","grey","color","StyledProducts","Products","_ref2","margin","spacing","LinkWrap","Box","_ref3","display","flexDirection","alignItems","gap","Root","_ref4","marginTop","PersonalLink","Link","_ref5","common","black","textDecoration","fontWeight","fontSize","getLiveStreamingLabel","liveStreamingState","LiveStreamingStates","IS_LIVE","TranslationKey","LiveNow","PLANNED","LiveVideoStartingSoon","WatchLatestVideo","MenuItemPersonalLinks","_ref6","personalProductListConfiguration","videoShoppingConfiguration","photoUrl","useTheme","formatMessage","useTranslations","getTestIdProps","useTestId","_jsxs","children","isEnabled","sharedUrl","sx","_jsx","viewBox","_objectSpread","href","MenuItemTestIds","RECOMMENDED_PRODUCTS","SeeMyFavoriteProducts","LiveStreamingStateWrap","streamingActivity","UNKNOWN","src","alt","SponsorPhoto","AVATAR","PbsWaveIcon","FALLBACK_AVATAR","WATCH_LATEST_VIDEO","LiveStreamingStateWrapTestIds","NowLiveStreamingRoot","borderRadius","boxShadow","concat","red","position","NowLiveStreamingText","typography","pxToRem","white","padding","left","transform","bottom","StyledBadge","Badge","minWidth","border","right","top","memo","WAS_LIVE","AVATAR_BADGE_WAS_LIVE","AVATAR_BADGE_IS_LIVE","APP_NAME","PACKAGE_NAME","APP_TEAM_NAME","Team","Presentation","defaultTranslations","Greetings","InviteMessageTooltip","MetaTitleForSharing","ReferralMessageTooltip","translationsNamespace","DESKTOP_BREAKPOINT","configurationContextDefaultValues","currentLanguage","customerId","NOT_LOGGED_IN_USER_ID","graphqlUrl","globalApiUrl","identityUrl","staticApiUrl","tenant","cookiesToTransform","cookie","PbsCookieNames","PBS_CODE","queryParam","stopIfFound","ECREF_OWNER","PBS_OWNER","PPL_CODE","stopIfFoundPrev","removeIfNotFound","ECREF","ErrorBoundary","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","_defineProperty","_assertThisInitialized","_createClass","key","value","error","this","state","console","props","Component","ComponentWrapper","TestIdProvider","team","project","TranslationsNamespaceProvider","namespace","personalBeautyStoreContext","createContext","pbsData","inviteFriendData","storeInfo","canDisplaySponsorInfo","canDisplayTooltip","tooltipWasShown","setTooltipWasShown","usePersonalBeautyStore","useContext","useTranslationsFromNamespace","ShowType","SocialContactType","getContactByType","allowedContacts","contacts","type","_contacts$filter$","includes","filter","contact","getLiveStreamingStateByVideoConfig","date","hours","isVideoShoppingEnabled","currentVideoShow","endedAtUtc","typeOfShow","Live","Scheduled","Ended","endedAtUtcDate","Date","setHours","getHours","replacePlaceholdersInUrl","urlWithPlaceholders","replacements","undefined","numberOfPlaceholdersToReplace","match","Object","values","some","replacementValue","keys","replace","fullMatch","group1","_replacements$group","Name","SSO_IDENTITY_LOGIN_PATH","SSO_IDENTITY_AD_LOGIN_PATH","loginContext","Provider","goToPage","page","window","location","LoginProvider","isSsoIdentityLogin","adLogin","useMemo","doLogin","useCallback","event","ctrlKey","metaKey","dispatchEvent","CustomEvent","ToggleMenuFlyoutEvent","detail","menuType","AccountSideMenu","onLogin","useEffect","addEventListener","removeEventListener","background","blue","zIndex","appBar","BackArrow","SvgIcon","cursor","OrderContent","textAlign","justifyContent","span","lineHeight","textTransform","svg","marginRight","marginLeft","Username","Typography","PopupContentGroup","PopupButton","Button","marginBottom","PopupLink","_ref7","shouldForwardProp","isOrderOnBehalfVisible","borderBottom","boxSizing","transition","breakpoints","up","activeMenuContext","useActiveMenu","context","Error","AccountFlyoutRoot","paddingTop","AccountLazy","lazy","async","fallback","CircularProgress","AccountFlyout","_useActiveMenu","activeMenu","toggleActiveMenu","isMobile","useIsMobile","getTestId","handleModalClose","ToggleMenuFlyout","isAccountMenuActive","Modal","style","modal","open","onClose","Slide","in","direction","Suspense","useHover","iconOnHover","icon","_useState","useState","_useState2","_slicedToArray","isHover","setIsHover","ref","useRef","isHoverAvailable","useMediaQuery","getIcon","handleMouseOver","handleMouseLeave","element","current","useCustomerInitials","_useToken","useToken","isAnonymousUser","data","useGetCustomerProfile","swr","enabled","firstName","lastName","charAt","SignInLabel","ButtonBase","_theme$breakpoints$up","text","primary","fontWeightBold","whiteSpace","DesktopUserIconButton","MobileUserIconButton","UserAvatar","down","UserSection","_useHover","UserFilled","User","_useHover2","Icon","useLogin","customerInitials","disableRipple","onClick","startIcon","variant","BurgerMenuTabRoot","ownerState","overline","isActive","BurgerMenuTabPrefixWrapper","isLoggedIn","BurgerMenuTabLabelWrapper","overflow","textOverflow","BurgerMenuTab","activeTab","tabPrefix","tabName","onTabClick","clickHandler","TabIcon","vipOrderUrls","consultantNumber","hint","consultantContext","useConsultant","LazyPersonalMenu","default","PersonalMenu","useLazyPersonalMenu","token","_useConfiguration","useConfiguration","mobileOfficeApiUrl","personalMenuInitialData","reportsItemName","_useConsultant","consultantType","configuration","lang","BurgerMenuTabNames","BurgerMenuRoot","maxWidth","isDesktop","SHADOW_LEVEL1","minHeight","BurgerMenuInner","maxHeight","overflowX","overflowY","BurgerMenuContainer","LazyAccount","LazyBurgerMenuLinks","BurgerMenu","_ToggleMenuFlyout$Men","BurgerMenuType","AccountSideMenuType","_usePbsContent","usePbsContent","isShown","setIsShown","handleTabClick","ProductsTab","isMenuActive","AccountTab","personalMenu","accountTabContent","onClickOverlay","drawer","componentsProps","backdrop","BurgerMenuIcon","as","BurgerMenuLinks","BurgerMenuContent","Backdrop","JoinTileImage","image","name","imagesVariants","url","params","quality","images","getImageVariants","sizes","srcSet","generateSrcSet","_createNavigationItem","createNavigationItemsContext","StaticNavigationNavigationItemDtoType","JoinTiles","JoinTilesProvider","navigationItemsContext","NavigationItemsProvider","useJoinTiles","useNavigationItems","JoinMenuRoot","isVisible","JoinTilesWrapper","columnGap","gridAutoColumns","gridAutoFlow","gridTemplateRows","JoinTileLink","webkitTapHighlightColor","alpha","borderColor","content","objectFit","JoinTileDescription","textShadow","shadows","JoinTileTitle","_ref9","body1","JoinMenuIdkyLink","_ref11","alignSelf","main","light","JoinMenu","items","exitMenu","iDontKnowYetLink","find","_ref13","linkType","StaticNavigationNavigationItemDtoLinkType","IDontKnowYet","joinTiles","_ref14","MenuTiles","map","_ref15","imageUrl","title","description","className","ReferralType","TooltipTestIds","FormattedMessage","NotTypedFormattedMessage","ARROW_OFFSET","shape","largeComponentRadius","ContentWrap","TitleWrap","Stack","Title","TooltipArrow","mediumComponentRadius","getContentTranslationKey","PBS","Tooltip","referralType","restProps","_objectWithoutProperties","_excluded","fullName","formatUserName","ROOT","TITLE","component","TEXT","id","emphasis","chunks","USER_NAME","useCookieStoreInfo","None","productListType","cookieInfo","setCookieInfo","pbsOwnerCookie","Cookies","get","ecrefCookie","owner","inviteFriendQuery","gql","_templateObject","_taggedTemplateLiteral","configurationContext","ConfigurationProvider","useInviteFriendData","_useCookieStoreInfo","consultant","Number","parseInt","_useGraphqlQuery","useGraphqlQuery","query","headers","getHeaders","language","sourceAppName","variables","skip","dataFromApi","inviteFriendProfile","cloneDeep","result","useGetCustomerSponsorPersonalBeautyStore","beautyStoreQuery","usePersonalBeautyStoreData","sponsorData","useSponsorPersonalBeautyStoreInfo","shouldCall","Boolean","beautyStore","application","usePersonalBeautyStoreUserInfo","_pbsData$beautyStore$","_pbsData$beautyStore","profile","_inviteFriendData$inv","dispatchToggleMenu","menuToggle","requestAnimationFrame","toggleMenu","UserAction","CLICK_BURGER_MENU","useToggleMenu","BurgerMenuIconRoot","A700","isOpen","BurgerMenuIconWrapper","BurgerMenuIconLine","opacity","_pbsData$beautyStore2","_useToggleMenu","_useToggleMenu2","menuIsOpen","wasFavoriteAdded","setWasFavoriteAdded","_usePersonalBeautySto","pbsTooltipWasShown","setPbsTooltipWasShown","pbsIconInBurgerMenu","onClickCallback","onFavoritesUpdated","_ref6$detail","favorites","lastUpdated","setTimeout","FavoritesUpdatedEvent","HeartsAnimation","shouldAnimationRun","pbsTooltipOffset","BurgerMenuToggleRoot","StyledPbsTooltip","_pbsData$application$","_pbsData$application","_storeInfo$type","_ref$autoClose","autoClose","_usePersonalBeautySto2","videoShopping","videoShows","show","isCurrent","e","timer","clearTimeout","BurgerMenuToggle","onPbsTooltipClick","OriflameLogoSvg","fill","chineseLogo","xmlns","d","commonLogo","OriflameLogo","isMarketCN","useIsMarketCN","LeftActionsSectionRoot","LeftActionsSection","VipOrderFormRoot","ChangeConsultantForm","ConsultantChangeConsultantNumber","vipAccessLabels","abortControllerRef","AbortController","formRef","areHintsLoading","setAreHintsLoading","_useState3","_useState4","setConsultantNumber","_useState5","_useState6","errorMessage","setErrorMessage","_useState7","_useState8","hints","setHints","_useState9","_useState10","isSubmitLocked","setIsSubmitLocked","_useForm","useForm","register","handleSubmit","handleChange","target","axios","signal","then","index","catch","finally","handleSelect","textContent","post","_ref5$data","message","onSubmit","ConsultantNumber","ErrorMessage","IsAccessGranted","_formRef$current","submit","warn","action","autoComplete","method","Autocomplete","fullWidth","getOptionLabel","String","loading","loadingText","noOptionsText","options","renderInput","TextField","helperText","label","onChange","disabled","OrderOnBehalfDialog","_vipAccessData$Links$","_vipAccessData$Links$2","_vipAccessData$Links$3","_vipAccessData$Links$4","vipAccessData","close","changeOpened","setChangeOpened","Dialog","header","_Fragment","ArrowLeftThin","hideCloseButton","Links","Url","Text","OrderOnBehalf","isOneBasketPage","dialogOpen","setDialogOpen","closeDialog","openDialog","ConsultantName","NewUserFilled","ArrowRightThin","FavoritesHeartRoot","emptyFunction","FavoritesHeartIcon","HeartFilled","Heart","shouldFavoritesRender","setShouldFavoritesRender","handleClick","CLICK_FAVORITE_ICON","pathname","FavoritesLink","MenuTypes","FavoritesSideMenu","_ref3$detail","getConfigElement","document","getElementById","labelsContextDefaultValue","aboutLabel","joinLabel","joinUrl","labelsContext","findLabel","item","collection","_collection$find$titl","_collection$find","JoinLabel","JoinIcon","_useLabels","NotificationBellIconRoot","NotificationBellIconButton","IconButton","h4","NotificationBellIcon","NotificationFilled","Notification","isClicked","setIsClicked","useGetCustomerUnseenNotificationsCount","CLIENT_APPLICATION","count","CLICK_NOTIFICATION_ICON","Notifications","badgeContent","max","invisible","useSearchInputPlaceholder","translations","search","searchDesktop","SearchIconRoot","SearchIcon","hideSearchResultsTab","_useSearchInput","useSearchInput","hide","searchPlaceholder","Search","SearchInputRoot","_objectSpread2","justifySelf","speedDial","SearchInputBox","paddingLeft","isFocus","SHADOW_LEVEL3","visibility","SearchInputInput","SearchInputClear","onEnterPressHandler","searchQuery","encodeURIComponent","SearchInput","isFocused","focus","blur","clearResults","setValue","sync","useWindowSize","SearchResults","_useDebounce","useDebounce","debouncedValue","throttledAnalytics","useThrottledCallback","START_SEARCH","onFocusHandler","onChangeHandler","isValueEmpty","clearInput","handleOnBlur","autoFocus","placeholder","onFocus","onBlur","onKeyDown","Clear","growShrinkAnimation","keyframes","ShoppingBagCounterRoot","letterSpacing","isAnimationActive","animationDuration","animationName","ShoppingBagCounter","shoppingBagQuantity","setIsAnimationActive","ShoppingBagIconRoot","isCnMarket","getFLyoutEvent","shouldOpen","Minibag","ShoppingBagIcon","isECatalogue","setIsECatalogue","mobileBreakpoint","mobileBreakpointECatalogue","CN_MARKET","MiniBagFilled","MiniBag","ShoppingBasketFilled","EmptyBasket","setShoppingBagQuantity","isReceivedShoppingContext","setIsReceivedShoppingContext","updateShoppingBagQuantity","newShoppingBagQuantity","shoppingContextLoadedEventHandler","shoppingBag","basketUpdatedEventHandler","requestShoppongContextEvent","ShoppingContextLoaded","BasketUpdated","RequestShoppingContext","onMouseEnter","onMouseLeave","onMobileEcataloguePageClick","ShoppingBagContent","formattedAriaLabel","RightActionsSectionRoot","RightActionsSection","shouldDisplayNotificationIcon","showFavorites","showNotifications","getSearchTime","timestamp","searchTime","now","analytics","ActualPriceUnformated","ConceptName","CurrencyCode","GtmBrand","GtmCategory","currency","globalBrandName","globalCategoryName","globalName","itemCode","ProductCode","localBrandName","localCategoryName","localName","media","ProductImageUrl","price","_results$Products$pos","results","docId","filterQueries","Query","queryId","QueryId","sessionId","OnlineSessionId","source","totalHits","userId","toString","timeStamp","ProductImageRoot","isSmall","ProductImageNoImage","h3","ProductImage","_images$at","size","imageSizes","at","ProductTileRoot","isLarge","flexBasis","caption","ProductTileProductLink","WebkitTapHighlightColor","ProductTileTitle","WebkitBoxOrient","WebkitLineClamp","ProductTilePriceBox","ProductTileActualPrice","ProductTileStandardPrice","ProductTile","basicCataloguePrice","currentPrice","_ref7$displayProductN","displayProductName","_ref7$largeVersion","largeVersion","productCode","productName","productUrl","onClickHandler","PopularProductsRoot","gridColumn","gridRow","PopularProductsHeader","PopularProductsWrapper","flexWrap","PopularProducts","globalApiClient","useApiClient","searchSuggestionClickData","itemData","itemType","ContentType","Product","placement","Placement","TopNavigationSearchSuggestions","createApplicationsNavigationSignal","SearchSuggestionClick","StandardPrice","ActualPrice","PopularSearchQueriesRoot","PopularSearchQueriesHeading","PopularSearchQueriesResults","listStyleType","PopularSearchQueriesItem","PopularSearchQueriesLink","PopularSearchQueries","localBannerTitle","_results$Query","PopularQuery","Suggestions","boldMatchedText","SearchResultsRoot","SearchResultsContentWrapper","innerHeight","rootPaddings","overscrollBehaviorY","gridTemplateColumns","SearchResultsHeader","SearchResultsQuery","paddingBottom","SearchResultsLeftSide","_ref8","SearchResultsLoader","_ref10","LazyArticles","Articles","SearchResultsContent","setInnerHeight","isArticles","Contents","RenderSearchResult","TopArea","vipAccess","VipAccessLabels","VipAccessData","TopAreaReservedSpaceBlock","TopAreaBlock","ClassName","getClassList","body","classList","addClassName","add","removeClassName","remove","Content","externalLoginName","createPortal","usePersonalMenuPortal","fetchAboutTiles","useAboutTiles","fetch","fetchInspirationTiles","useInspirationTiles","fetchJoinTiles","fetchShopSection","useShopSection","loginButton","querySelector","preventDefault","mobile","withOrderOnBehalf","onScroll","throttle","scrollY","shrunk","useManagedHeight","searchParams","getCurrentUrl","returnUrl","consultantNumberQueryParam","onToggle","Context","providers","reduceRight","accumulated","composeProviders","formattedToken","GlobalApiClientProvider","baseUrl","StaticApiClientProvider","PbsContentProvider","SearchInputProvider","ActiveLinkProvider","setActiveMenu","menu","setVipAccess","useGetApplicationsNavigationCustomerInfo","abortController","baseURL","origin","response","abort","_data$consultantNumbe","_data$consultantNumbe2","_vipAccess$VipAccessD","AboutTilesProvider","InspirationTilesProvider","setAboutLabel","setJoinLabel","setJoinUrl","fetchNavigationItems","useFetchNavigationItems","TopNavigation","_collection$find$url","_collection$find2","AboutTiles","ShopSectionProvider","CataloguesProvider","useWasTooltipShown","initialValue","sessionStorage","getItem","JSON","parse","log","storedValue","setStoredValue","valueOrFunction","prevValue","valueToStore","setItem","stringify","PersonalBeautyStoreProvider","_useWasTooltipShown","_useWasTooltipShown2","isAnonymousUserOnReferralMarket","updateQueryParameters","newQueryParameters","newUrl","URL","history","replaceState","removeQueryParameter","queryParams","URLSearchParams","has","delete","ensureQueryParameter","set","PbsApp","parameters","setQueryParameter","_parameters$removeQue","_parameters$setQueryP","_step","removeQueryParameterHistoryApi","setQueryParameterHistoryApi","foundPrev","_iterator","_createForOfIteratorHelper","s","n","done","cookieName","queryParamName","cookieValue","stop","err","f","SWRConfig","revalidateIfStale","revalidateOnFocus","revalidateOnReconnect","shouldRetryOnError","errorRetryCount","ApiClientProvider","Pbs","pbs","defaultTranslationsWithNamespaces","_defaultTranslationsW","allBrands","articles","brands","callToActionCatalogueText","change","failedToSubmit","logIn","loggedInAs","myAccount","myFavoriteProducts","nextCatalogue","noOptions","other","popularProducts","popularProductsInThisSearchQuery","popularSearchQueries","products","seeAll","seeAllCatalogues","seeAllResultsFor","shopFor","signIn","view","pbsTranslationsNamespace","pbsDefaultTranslations","StandaloneTranslationsProvider","clientFetchConfiguration","onError","TranslationsProvider","GRAPHQL_STRING","telemetryInitializer","baseType","baseData","_exceptions$0$message","exceptions","startsWith","tags","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","render","rootEl","_rootEl$dataset$confi","dataset","config","appConfig","configValues","parseSpaConfig","graphQlUrl","endsWith","parseAppConfiguration","dirtyIdentityUrl","useSsoIdentityLogin","slice","extractTokenFromUrl","_window$ori","forceReload","ori","tokenService","oriToken","getToken","OidcAccessToken","Token","getPublicToken","authToken","publicToken","appInsights","tokenCustomerId","getClaim","addTelemetryInitializer","trackException","exception","severityLevel","SeverityLevel","trackCustomerTokenMismatch","createRoot","PrefetchedTokenProvider","ThemeProvider","enableCacheProvider","cacheKey","MenuContentTestIds","ItemContentWrap","MenuItemPersonalLinksWrap","ml","mr","MenuContent","referralProgram","userEmail","userPhone","benefitsLink","greetingMessage","HEADING","DynamicFormattedMessage","translatedMessage","relativeUrl","BENEFITS_LINK","USER_EMAIL","USER_PHONE","catalogue","CatalogueType","CurrentCatalog","NextCatalog","Validity","secondary","Centered","CatalogueLink","_ref5$hoverEffect","hoverEffect","CatalogueDetailButton","_ref6$hoverEffect","ImageWrapper","Current","CallToAction","CTAText","textUnderlineOffset","textDecorationThickness","MobileWrapper","VALIDITY","LINK","PRODUCT_IMAGE","DETAIL_BUTTON","CurrentCatalogue","_props$catalogue","validity","linkToAllCatalogues","Banner","dateRange","NextCatalogue","Next","formatDate","day","getDate","month","getMonth","year","getFullYear","formatValidity","catalogueId","catalogues","valid","from","to","SkeletonCatalogueMobileRoot","SkeletonCatalogueMobileValidity","Skeleton","SkeletonCatalogueMobileSeeAll","SkeletonCatalogueMobile","animation","SkeletonCatalogueDesktopRoot","gridColumnStart","paddingRight","SkeletonCatalogueDesktopValidity","SkeletonCatalogueDesktopContent","SkeletonCatalogueDesktopSeeAll","SkeletonCatalogueDesktop","Catalogues","_linkToAllCatalogues$","_catalogueNext$id","_useCatalogues","useCatalogues","isLoading","sendAnalyticsData","CLICK_CATALOGUE_DETAIL","link","catalogueCurrent","catalogueNext","isCatalogueNextValid","SkeletonSubCategoryMobileRoot","SkeletonSubCategoryMobileLoader","SkeletonSubCategoryMobile","elements","Math","floor","skeletonElements","step","SkeletonSubCategoryRoot","SkeletonSubCategoryLoader","SkeletonSubCategoryDesktop","steps","BurgerMenuContentRoot","StyledPbsMenuContent","_pbsData$application$2","_pbsData$application2","_productLists$","productLists","videoShoppingConfigurationAddThis","addThis","videoShoppingUrl","pplConfigurationAddThis","isPplEnabled","pplUrl","Email","PhoneNumber","liveShowId","showId","storeName","personallist","productListId","LazyInspiration","Inspiration","LazyCategoryContent","CategoryContent","contentRootRef","activeLink","useActiveLink","navigation","Catalogue","Category","SkeletonMainCategoriesMobileCategory","SkeletonMainCategoriesMobileCategoryLarge","SkeletonMainCategoriesMobile","SkeletonMenuLinks","borderRight","SkeletonMainCategoriesDesktop","times","LazyGeneratedBurgerMainMenuLinks","CLICK_CATALGOUE","CLICK_CATEGORY_BRAND","cataloguesContextDefaultValue","cataloguesContext","_useGetTenantCatalogu","useGetTenantCatalogues","_data$collection","configurationContextDefaultValue","kpiApiUrl","localApiUrl","ssoAdLoginUrl","activeLinkContext","setActiveLink","toggleActiveLink","InspirationTiles","setItems","displayName","pbsContentContext","searchInputContext","setIsFocused","setIsVisible","setResults","setTimestamp","ACCEPT_LANGUAGE","ShopSection","useGlobalApiClient","staticApiClient","useStaticApiClient","navigationType","requestOptions","excludeChildren","_customerInfo$custome","customerInfo","getApplicationsNavigationCustomerInfo","customerTypeId","customerType","visitorSegment","getTenantApplicationsNavigationNavigation","navigationCollection","md","articleContent","searchPhrase","escapedSearchPhrase","replaceAll","trim","regExpPattern","RegExp","splitText","split","matches","exec","el","___CSS_LOADER_EXPORT___","push","module"],"sourceRoot":""}