{"version":3,"file":"static/chunks/2466.1c01e2ca616f2687.js","mappings":"6LASO,IAAMA,EAA8BC,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAG9D,OAAC,OAAEC,CAAK,CAAEC,sBAAoB,CAAE,GAC1B,aAAEC,CAAW,UAAEC,CAAQ,CAAEC,MAAI,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAC/C,SAAEC,CAAO,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAYA,GAE1BC,EAA+B,CACnCC,UAAWT,EAAMU,MAAM,CAACD,SAAS,CACjCE,MAAOX,EAAMU,MAAM,CAACC,KAAK,CACzBC,YACEN,EAAQO,IAAI,CAACC,SAAS,CAAC,YAAOV,EAAAA,KAAAA,EAAAA,EAAMM,MAAM,CAACK,IAAAA,EACvCX,EAAKM,MAAM,CAACC,KAAK,MACjBK,EACNC,SAAUjB,EAAMU,MAAM,CAACO,QAAQ,CAC7B,UAACC,EAAAA,CAAwBA,CAAAA,CAACC,SAAUnB,EAAMU,MAAM,CAACO,QAAQ,QACvDD,EACJI,MAAOpB,EAAMU,MAAM,CAACW,KAAK,CACrBC,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACtB,EAAMU,MAAM,CAACW,KAAK,OACxCL,EAEJO,eAAgB,CACdZ,MAAOV,EAAqB,CAAED,QAAOwB,QAAS,OAAQ,GACtDP,SAAUhB,EAAqB,OAAED,EAAOwB,QAAS,UAAW,EAC9D,CACF,EAEMC,EAAoBtB,EAASH,EAAMU,MAAM,CAACgB,YAAY,EAExDD,IACFjB,EAAMmB,QAAQ,CAAG,CACfC,GAFmB,CAEf,OAAEH,EAAAA,KAAAA,EAAAA,EAAmBf,MAAM,CAACkB,IAAI,CACpCC,KAAM3B,EAAYF,EAAMU,MAAM,CAACgB,YAAY,EAC3CH,eAAgB,CACdK,KAAM3B,EAAqB,CACzBD,MAAOyB,EACPD,QAAS,MACX,EACF,EACF,EAGE,CAACC,GAAqBzB,EAAMU,MAAM,CAACoB,YAAY,EAAE,CACnDtB,EAAMmB,QAAQ,CAAG,CACfC,KAAM5B,EAAMU,MAAM,CAACoB,YAAY,CAC/BP,eAAgB,CACdK,KAAM3B,EAAqB,OAAED,EAAOwB,QAAS,cAAe,EAC9D,EACF,EAGF,IAAMO,EAAc5B,EAASH,EAAMU,MAAM,CAACsB,MAAM,EAiBhD,OAfID,IACFvB,EAAMyB,OADS,EACA,CAAG,CAChBC,KAAMhC,EAAYF,EAAMU,MAAM,CAACsB,MAAM,EACrCG,SAAUJ,EAAYrB,MAAM,CAACkB,IAAI,CACjCL,eAAgBtB,EAAqB,CACnCD,MAAO+B,EACPP,QAAS,MACX,GACF,EAGE,CAACO,GAAe/B,EAAMU,MAAM,CAAC0B,KAAK,EAAE,CACtC5B,EAAM6B,OAAO,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAkBA,CAACtC,EAAMU,MAAM,CAAC0B,MAAK,EAGhD5B,CACT,GAAG,6FChEI,SAAS+B,EAAc,CAIT,KAJS,MAC5BC,CAAI,OACJhC,CAAK,UACL2B,CAAQ,CACW,CAJS,EAKtB,wBAAEM,CAAsB,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAiBA,GAE9CC,EAAYF,EAAuBD,UAEzC,EAEI,SAFW,CAEVI,EAAAA,CAAaA,CAAAA,UACZ,UAACC,EAAAA,QAAQA,CAAAA,UAEP,UAACF,EAAAA,CAAW,GAAKnC,GAAS,CAAC,CAAC,UACzB2B,IACEW,MAAMC,EAAND,KAAa,CAACX,GACb,UAACa,EAAAA,CAAeC,WAAYd,IAE5B,UAACI,EAAAA,CAAe,GAAGJ,CAAQ,GAC7B,QAOZe,QAAQC,KAAK,CAAC,wCAA6C,OAALX,IAE/C,KACT,CAMO,SAASQ,EAAe,CAAmC,KAAnC,YAAEC,CAAU,CAAuB,CAAnC,SAC7B,GAAoBH,MAAMC,KAAP,EAAc,CAACE,GAGhC,UAH6C,EAG7C,mBACGA,EAAWG,GAAG,CAAC,CAACC,EAAWC,IAC1B,UAACf,EAAAA,CAAuB,GAAGc,CAAS,EAAhBC,MAL4B,IASxD,qHCpDO,IAAMC,EAAgCxD,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAGhE,QAMmBuB,EAyBnBtB,KA/BC,OAAEA,CAAK,sBAAEC,CAAoB,CAAE,GAC1BO,EAAiC,CACrCG,MAAOX,EAAMU,MAAM,CAACC,KAAK,CACzB6C,MAAOxD,EAAMU,MAAM,CAAC+C,WAAW,CAC7B,UAACvC,EAAAA,CAAwBA,CAAAA,CAACC,SAAUnB,EAAMU,MAAM,CAAC+C,WAAW,QAC1DzC,EACJ0C,eAAe,CAA0C,QAAxCpC,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACtB,EAAMU,MAAM,CAACW,KAAK,IAAxCC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA2CqC,KAAK,CACjEC,MAAO5D,EAAMU,MAAM,CAACkD,KAAK,CACzBC,gBACE7D,EAAMU,MAAM,CAACoD,cAAc,EAC3B9D,EAAMU,MAAM,CAACqD,WAAW,EACxB/D,EAAMU,MAAM,CAACsD,OAAO,CAChB,CACEC,QAASjE,EAAMU,MAAM,CAACoD,cAAc,CACpCI,IAAKC,CAAAA,EAAAA,EAAAA,CAAAA,CAAkBA,CAACnE,EAAMU,MAAM,CAACqD,WAAW,EAChDK,OAAQ,EAAE,CACV7C,eAAgB,CACd0C,QAAShE,EAAqB,OAC5BD,EACAwB,QAAS,gBACX,EACF,CACF,OACAR,EAENO,eAAgB,CACdZ,MAAOV,EAAqB,OAAED,EAAOwB,QAAS,OAAQ,GACtDgC,MAAOvD,EAAqB,OAAED,EAAOwB,QAAS,aAAc,EAC9D,CACF,EASA,OAPoB,QAApBxB,EAAAA,EAAMU,MAAM,CAACsD,OAAAA,GAAbhE,KAAAA,OAAAA,EAAsBqE,OAAO,CAAC,IAC5B,IAAMC,EAAuBC,CAAAA,EAAAA,EAAAA,CAAAA,CAA0BA,CAACC,GACxD,GAAIF,EAAsB,KACxB9D,EAAAA,CAAqB,SAArBA,EAAAA,EAAMqD,eAAAA,GAANrD,KAAAA,OAA6B,QAA7BA,EAAAA,EAAuB4D,MAAAA,GAAvB5D,KAAAA,IAAAA,GAAAA,EAA+BiE,IAAI,CAACH,EACtC,CACF,GAEO9D,CACT,GAAG,oHC1CI,IAAMkE,EAA8B3E,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAG9D,QAoBAC,KApBC,OAAEA,CAAK,sBAAEC,CAAoB,CAAE,GAC1BO,EAA+B,CACnCG,MAAOX,EAAMU,MAAM,CAACC,KAAK,CACzBiD,MAAO5D,EAAMU,MAAM,CAACkD,KAAK,CACzBxC,MAAOE,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACtB,EAAMU,MAAM,CAACW,KAAK,EAC/CsD,WACE,UAACzD,EAAAA,CAAwBA,CAAAA,CACvBC,SAAUnB,EAAMU,MAAM,CAACO,QAAQ,CAC/B2D,iBAAiB,MAGrBV,IAAK5B,CAAAA,EAAAA,EAAAA,CAAAA,CAAkBA,CAACtC,EAAMU,MAAM,CAAC0B,KAAK,EAC1CyC,MAAO,EAAE,CAETtD,eAAgB,CACdZ,MAAOV,EAAqB,OAAED,EAAOwB,QAAS,OAAQ,GACtDP,SAAUhB,EAAqB,CAAED,QAAOwB,QAAS,UAAW,EAC9D,CACF,EAOA,OALuB,QAAvBxB,EAAAA,EAAMU,MAAM,CAACoE,UAAAA,GAAb9E,KAAAA,IAAAA,GAAAA,EAAyBqE,OAAO,CAAC,QAEX7D,EADpB,IAAMuE,EAAiBC,CAAAA,EAAAA,EAAAA,CAAAA,CAAoBA,CAAChF,GACxC+E,GAAAA,CAAAA,QAAgBvE,EAAAA,EAAMqE,KAAAA,GAANrE,KAAAA,OAAAA,EAAaiE,IAAI,CAACM,EAAAA,CACxC,GAEOvE,CACT,GAAG,mHCdI,IAAMyE,EAAyBC,CAAAA,EAAAA,EAAAA,aAAAA,CAAaA,CAAyB,CAC1EC,gBAAiB,CAAC,EAClBC,uBAAwB,IAAM,KAC9BC,qBAAsB,IAAM,KAC5BC,4BAA6B,SAAMtE,CACrC,GAAG,EAE+B,IACzBuE,CAAAA,EAAAA,EAAAA,UAAAA,CAAUA,CAACN,GAYpB,SAASO,EAAiBC,CAAa,EACrC,IAAMC,EAAoB,CACxB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACD,CAEGC,EAAe,GAEnB,IAAK,IAAMC,KAAQH,EACbC,EAAkBG,EADE,MACM,CAACD,GAC7BD,GAAgB,CADoB,IACV,OAALC,GAErBD,GAAgBC,EAIpB,OAAOD,CACT,CAEO,IAAMG,EAA0B,QAejBC,EAEZC,KAjB8B,QACtCC,CAAM,CACN9D,UAAQ,CACwC,GAC1C+D,EAAeC,CAAAA,EAAAA,EAAAA,eAAAA,CAAeA,GAC9B,UAAEhG,CAAQ,YAAE6F,CAAU,CAAE,CAAG3F,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GACxC0F,EAAcK,CAAAA,EAAAA,EAAAA,OAAAA,CAAOA,CAAC,IAAMjG,EAAS8F,GAAS,CAAC9F,EAAU8F,EAAO,EAChEI,EAAiBC,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAClC,eACAP,GAGI,CAACZ,EAAiBoB,EAAmB,CAAGC,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,CAGpDH,GAAAA,CAA2C,QAAzBN,EAAAA,EAAYrF,MAAM,CAAC+F,MAAM,GAAzBV,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA2BW,MAAAA,EACzCC,OAAOC,WAAW,SAChBZ,EAAAA,EAAWD,EAAYrF,MAAM,CAAC+F,OAAM,GAApCT,KAAAA,MAAAA,KAAAA,EAAAA,EAAuC5C,GAAG,CAAC,GAAW,CACpDyD,EAAMnG,MAAM,CAACoG,KAAK,EAAI,GACtBD,EAAMnG,MAAM,CAACoG,KAAK,EACdZ,EAAaa,GAAG,CAACF,EAAMnG,MAAM,CAACoG,KAAK,GAAK,GAE7C,EADK,CAGR,CAAC,GAEDE,EAAUC,CAAAA,EAAAA,EAAAA,MAAAA,CAAMA,SAEtBC,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,KACR,IAAMC,EAAM,IAAIC,IAAIC,OAAOC,QAAQ,CAACpF,IAAI,EAExCyE,OAAOY,OAAO,CAACpC,GAAiBd,OAAO,CAAC,OAAC,CAACmD,EAAK/B,EAAM,GAC/CA,EACF0B,EAAIjB,GADK,SACO,CAACuB,GAAG,CAACD,EAAK/B,GAE1B0B,EAAIjB,YAAY,CAACwB,MAAM,CAACF,EAE5B,GAGEb,OAAOgB,IAAI,CAACxC,GAAiBuB,MAAM,CAAG,GACtCM,EAAQY,OAAO,GAAKT,EAAIjF,IAAI,EAC5B,CACAmF,OAAOQ,OAAO,CAACC,SAAS,CAAC,CAAC,EAAG,GAAIX,GACjCH,EAAQY,OAAO,CAAGT,EAAIjF,IAAI,CAE9B,EAAG,CAACiD,EAAgB,EAmElB,UAACF,EAAuB8C,QAAQ,EAC9BtC,MAAO,iBACLN,EACAG,4BApE8B,QAiBlCU,EAhBA,GAAI,CAACK,EACH,OAGF,IAAI2B,EAAa,CAJI,EAMrB,IAAK,GAAM,CAACR,EAAK/B,EAAM,GAAIkB,OAAOY,OAAO,CAACpC,GACxC,GAAIM,EAAO,CACT,IAAMwC,EAASC,EAFyC,QAErB,GAC9BV,EAAI3B,QAAQ,CAAC,MAAM,CACtBmC,GAAc,GAAYR,MAAAA,CAATS,GAAiBxC,MAAAA,CAAR+B,EAAI,MAAU,OAAN/B,EAAM,KAE5C,CAGF,IAAM0C,EAA6D,CAAC,CAChC,SAApCnC,EAAAA,EAAWD,EAAYrF,MAAM,CAAC+F,OAAM,GAApCT,KAAAA,IAAAA,GAAAA,EAAuC3B,OAAO,CAAC,IAC7C,GAAIwC,EAAMnG,MAAM,CAACoG,KAAK,EAAID,EAAMnG,MAAM,CAACoG,KAAK,CAACjB,QAAQ,CAAC,KAAM,CAC1D,IAAMuC,EAAUvB,EAAMnG,MAAM,CAACoG,KAAK,CAACuB,KAAK,CAAC,kBACzC,GAAID,EAAS,KAOXD,EANA,IAAMrB,EAAQsB,CAAO,CAAC,EAAE,CAEnBD,CAAe,CAACrB,EAAM,EAAE,CAC3BqB,CAAe,CAACrB,EAAM,CAAG,IAGL,QAAtBqB,EAAAA,CAAe,CAACrB,EAAAA,GAAhBqB,KAAAA,IAAAA,GAAAA,EAAwB1D,IAAI,CAACU,CAAe,CAAC0B,EAAMnG,MAAM,CAACoG,KAAK,CAAC,CAClE,CACF,CACF,GAEA,IAAIwB,EAAoB,GACxB,IAAK,GAAM,CAACd,EAAKe,EAAO,GAAI5B,OAAOY,OAAO,CAACY,GACzC,GAAII,EAAO7B,MAAM,CAAG,EADuC,CAClC6B,EAAOC,IAAI,CAAC,GAAW,CAAC,CAAC/C,GAEhD,IAAK,CAFmD,GAE7CA,KADX6C,GAAqB,GAAO,OAAJd,EAAI,KACRe,GAGdE,GAAa,CAHS,EACLC,OAAO,CAACjD,GAGvBA,EACF6C,GAAqB9C,EADZ,GACsC,OAANC,EAAM,MAE/C6C,GAAsB,OAGpB7C,EACF6C,GAAqB9C,EADZ,GAGT8C,GAAqB,IAY/B,OALIA,IAEFN,GAAc,GAAYM,MAAAA,CAATL,EAFI,QACc,IACS,OAAlBK,EAAAA,EAGrBN,CACT,EAOM5C,uBAAwB,CAACoC,EAAa/B,KACpCc,EAAmB,GAAW,EAAE,EAAF,CAAKoC,CAAI,CAAE,CAACnB,EAAI,CAAE/B,CAAM,GACxD,EACAJ,qBAAsB,KACpBkB,EAAoBoC,GAClBhC,OAAOC,WAAW,CAACD,OAAOgB,IAAI,CAACgB,GAAMvF,GAAG,CAAC,GAAS,CAACoE,EAAK,GAAG,GAE/D,CACF,WAECrF,GAGP,EAAE,8FCtMK,IAAMyG,EAA4B7I,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAG5D,OAAC,OAAEC,CAAK,sBAAEC,CAAoB,CAAE,GAC1B,aAAEC,CAAW,YAAE8F,CAAU,CAAE,CAAG3F,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAE3CwI,EAAa7I,QAUXA,EAEAA,EACcgG,EAMdhG,EAlBN,IAAMQ,EAAkC,CACtCG,MAAO,GACPY,eAAgB,CACdZ,MAAOV,EAAqB,OAAED,EAAOwB,QAAS,OAAQ,EACxD,CACF,EAgBA,MAdI8E,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAgB,WAAYtG,IAC3CQ,EAAM2G,EAD6C,CAC1C,CAAGjH,EAAYF,EAAMU,MAAM,CAACmB,IAAI,EACzC,SAAI7B,EAAAA,EAAMU,MAAAA,GAANV,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAcW,KAAAA,IAAOH,EAAMG,KAAK,CAAGX,EAAMU,MAAM,CAACC,KAAAA,EAEpD,QAAIX,GAAAA,EAAMU,MAAM,GAAZV,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAcoC,KAAAA,EAAO,EACvB5B,EAAMsI,OAAO,CAAgC,QAA7B9C,EAAAA,EAAWhG,EAAMU,MAAM,CAAC0B,MAAK,GAA7B4D,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgC5C,GAAG,CAAC,GAClDyF,EAAUhH,GAAAA,GAGLyE,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAY,OAAQtG,KAC1CQ,EAAM2G,CAD4C,EACzC,CAAGjH,EAAYF,GACxB,SAAIA,EAAAA,EAAMU,MAAAA,GAANV,KAAAA,MAAAA,KAAAA,EAAAA,EAAc4B,IAAI,IAAEpB,EAAMG,KAAK,CAAGX,EAAMU,MAAM,CAACkB,IAAAA,GAG9CpB,CACT,EAEA,OAAOqI,EAAU7I,EACnB,GAAG,eClCH,IAAM+I,EAAyBC,EAAAA,EAAuBA,uICyCtD,IAAMC,EAAgB,IACpB,GAAI3C,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAmB,cAAe4C,GAAO,CACxD,GAAM,OAAEvI,CAAK,KAAEwG,CAAG,aAAE1D,CAAW,kBAAE0F,CAAgB,YAAEC,CAAU,WAAEC,CAAS,CAAE,CACxEH,EAAKxI,MAAM,CAEP4I,EAAaD,EACf/H,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAAC+H,GACtB/H,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAAC8H,GAM1B,MAAO,CACLzI,MAAOA,GAAS,GAChB8C,YANsB0F,CAMTI,CALXC,CAAAA,EAAAA,EAAAA,CAAAA,CAAgBA,CAACL,GACjBK,CAAAA,EAAAA,EAAAA,CAAAA,CAAgBA,CAAC/F,GAKnB0D,IAAKA,aACLmC,CACF,CACF,CAEA,GACEhD,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAoB,eAAgB4C,IACjD5C,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAmB,cAAe4C,GAC/C,CACA,GAAM,OAAEvI,CAAK,KAAEwG,CAAG,aAAE1D,CAAW,kBAAE0F,CAAgB,CAAE,CAAGD,EAAKxI,MAAM,CAMjE,MAAO,CACLC,MAAOA,GAAS,GAChB8C,YANsB0F,CAMTI,CALXC,CAAAA,EAAAA,EAAAA,CAAAA,CAAgBA,CAACL,GACjBK,CAAAA,EAAAA,EAAAA,CAAAA,CAAgBA,CAAC/F,GAKnB0D,IAAKA,CACP,CACF,CAEA,GAAIb,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAA0B,qBAAsB4C,GAAO,CACtE,GAAM,OAAEvI,CAAK,KAAEwG,CAAG,aAAE1D,CAAW,UAAExC,CAAQ,cAAEwI,CAAY,CAAE,CAAGP,EAAKxI,MAAM,CAKvE,MAAO,CACLC,MAAOA,GAAS,GAChB8C,YANsB+F,CAAAA,EAAAA,EAAAA,CAAAA,CAAgBA,CAAC/F,IAAgBxC,EAOvDkG,IAAKA,EACLmC,WANiBhI,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACmI,EAOzC,CACF,CAEA,GAAInD,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAmB,cAAe4C,GAAO,CACxD,GAAM,OAAEvI,CAAK,KAAEwG,CAAG,aAAE1D,CAAW,OAAEpC,CAAK,CAAE,CAAG6H,EAAKxI,MAAM,CAKtD,MAAO,CACLC,MAAOA,GAAS,GAChB8C,YANsB+F,CAMTD,EANSC,EAAAA,CAAAA,CAAgBA,CAAC/F,GAOvC0D,IAAKA,EACLmC,WANiBhI,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACD,EAOzC,CACF,CAEA,GACEiF,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CACX,2BACA4C,GAEF,CACA,GAAM,OAAEvI,CAAK,KAAEwG,CAAG,UAAElG,CAAQ,kBAAEkI,CAAgB,CAAE,CAAGD,EAAKxI,MAAM,CAG9D,MAAO,CACLC,MAAOA,GAAS,GAChB8C,YAJsB+F,CAITD,EAJSC,EAAAA,CAAAA,CAAgBA,CAACvI,IAAakI,EAKpDhC,IAAKA,CACP,CACF,CAEA,GAAIb,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAwB,mBAAoB4C,GAAO,CAClE,GAAM,OAAEvI,CAAK,KAAEwG,CAAG,UAAEuC,CAAQ,kBAAEP,CAAgB,OAAExF,CAAK,CAAE,CAAGuF,EAAKxI,MAAM,CAKrE,MAAO,CACLC,MAAOA,GAAS,GAChB8C,YANsBiG,CAMTH,EANqBC,CAAAA,EAAAA,EAAAA,CAAAA,CAAgBA,CAACL,GAOnDhC,IAAKA,EACLmC,WANiBhI,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACqC,EAOzC,CACF,CAEA,GAAI2C,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAgB,WAAY4C,GAAO,CAClD,GAAM,CAAEvI,OAAK,KAAEwG,CAAG,OAAExD,CAAK,CAAE,CAAGuF,EAAKxI,MAAM,CAIzC,MAAO,CACLC,MAAOA,GAAS,GAChB8C,YAAazC,OACbmG,IAAKA,EACLmC,WANiBhI,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACqC,EAOzC,CACF,CASA,MAAO,CACLhD,MAAOuI,EAAKxI,MAAM,CAACC,KAAK,EAAI,GAC5B8C,YAAazC,OACbmG,IAAK+B,EAAKxI,MAAM,CAACyG,GAAG,CAExB,EAEawC,EAA0B5J,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAG1D,OAAC,CAAEC,MAAO4J,CAAO,CAAE,GACb,UAAEzJ,CAAQ,CAAE,CAAGE,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAE5BwJ,EAAsB,GAIxBC,OAAAA,EAAAA,KAAAA,EAAAA,EACI1G,GAAG,CAAC,GADR0G,CAEI,IAAMZ,EAAO/I,EAAS4J,GACtB,IAAI,KAACb,EAAAA,KAAAA,EAAAA,EAAMxI,MAANwI,CACL,EADmB,KACZD,EAAcC,EACvB,GACCc,MAAM,CAACC,EAAAA,EAAeA,GAAK,EAAE,CA0FpC,MAAOpB,CAtFW,IAChB,IAAMrI,EAA0C,CAC9CG,MAAOuJ,EAAkBxJ,MAAM,CAACC,KAAK,EAAI,GACzCwJ,WAAY,WACZC,UAAWF,EAAkBxJ,MAAM,CAAC0J,SAAS,EAAI,GACjDjD,IAAK+C,EAAkBxJ,MAAM,CAACyG,GAAG,EAAI,GACrCkD,WAAY,EAAE,EAGhB,GAAIH,EAAkBxJ,MAAM,CAACwD,GAAG,CAAE,CAChC,IAAMA,EAAM/D,EAAS+J,EAAkBxJ,MAAM,CAACwD,GAAG,EACjD1D,EAAM0D,GAAG,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAkBA,CAACD,EACjC,CAEA,GAAM,CAAEoG,KAAMC,CAAgB,CAAE,CAAGL,EAAkBxJ,MAAM,CAE3D,IAAI,KAAC6J,EAAAA,KAAAA,EAAAA,EAAkB7D,MAAM,CAmE7B,EAnE+B,KAI3B6D,EAAiB7D,EAJhB6D,IAIsB,CAAG,GAAG,CAC/B/J,EAAM2J,UAAU,CAAG,cA4DrB3J,EAAM6J,UAAU,CAzDGE,EAChBnH,GAAG,CAAC,IACH,IAAMoH,EAAYrK,EAASsK,GAC3B,GAAI,CAACD,EAAW,OAEhB,GAAM,CAAEF,KAAMI,CAAe,CAAE/J,OAAK,CAAE,CAAG6J,EAAU9J,MAAM,CAEzD,GAAKgK,CAAD,CA8CJ,MAL+C,CAC7C/J,QA1CoB,OAAOK,SAEL0J,EACrBtH,GAAG,CAAC,IACH,IAAMuH,EAAWxK,EAASyK,GAC1B,GAAKD,CAAD,EAEJ,GAAIrE,CAAAA,EAAAA,CAFW,CAEXA,CAAAA,CAAaA,CAAgB,GAFXtF,QAEuB2J,GAAW,CACtD,GAAM,CACJhK,OAAK,aACLkK,CAAW,oBACXC,CAAkB,cAClBC,CAAY,mBACZC,CAAiB,cACjBC,CAAY,MACZX,CAAI,UACJY,CAAQ,CACT,CAAGP,EAASjK,MAAM,CAanB,MAXmD,CAW5CyK,MAVLxK,cACAkK,qBACAC,oBACAE,eACAC,EACAF,aAAclB,EAAoBkB,GAClCT,KAAMT,EAAoBS,GAC1BY,SAAUrB,EAAoBqB,EAChC,CAGF,CAAO,CAGL,IAAMhC,EAAO/I,EADAwK,GAEb,GAAI,CADkB9I,CACjBqH,QAAAA,KAAAA,EAAAA,EAAAA,MAAMxI,EAAQ,OACnB,OAAOuI,EAAcC,EACvB,EACF,GACCc,MAAM,CAACC,EAAAA,CAAeA,CAKzB,CAGF,GACCD,MAAM,CAACC,EAAAA,CAAeA,EAIlBzJ,EACT,EAEiBoJ,EACnB,GAAG,EC9QyC7J,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAG/D,QAIMC,EAcAA,EAkBFA,EAAAA,KApCH,OAAEA,CAAK,CAAEC,sBAAoB,CAAE,GAC1B,UAAEE,CAAQ,aAAED,CAAW,CAAE,CAAGG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAE/C,GAAIiG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAY,OAAQtG,IACnC,IAD2C,KACvCA,EAAAA,EAAMU,MAAAA,GAANV,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAc4B,IAAAA,EAAM,MACf,CACLwJ,GAAIpL,EAAMqL,GAAG,CAACD,EAAE,CAChBE,MAAOtL,EAAMU,MAAM,CAACkB,IAAI,CACxBC,KAAM3B,EAAYF,GAElBuB,eAAgB,CACdZ,MAAOV,EAAqB,OAAED,EAAOwB,QAAS,OAAQ,EACxD,CACF,EAIJ,GAAI8E,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAgB,WAAYtG,IAC3C,IADmD,KAC/CA,EAAAA,EAAMU,MAAAA,GAANV,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAcW,KAAK,EAAE,CACvB,IAAMkB,EAAO1B,EAASH,EAAMU,MAAM,CAACmB,IAAI,EACjCiH,EAA6B,CACjCgB,MAAO,EAAE,CACTyB,OAAQ,CACND,MAAOzJ,OAAAA,EAAAA,KAAAA,EAAAA,EAAMnB,MAAM,CAACkB,IAAAA,GAAQ5B,EAAMU,MAAM,CAACC,KAAK,CAC9CkB,KAAM3B,EAAYF,EAAMU,MAAM,CAACmB,IAAI,EACnCZ,SACE,UAACC,EAAAA,CAAwBA,CAAAA,CAACC,SAAUnB,EAAMU,MAAM,CAAC+C,WAAW,GAG9DlC,eAAgB,CACdZ,MAAOV,EAAqB,OAAED,EAAOwB,QAAS,OAAQ,GACtDP,SAAUhB,EAAqB,OAAED,EAAOwB,QAAS,aAAc,EACjE,CACF,CACF,EAOA,OALY,QAAZxB,EAAAA,EAAMU,MAAAA,GAANV,KAAAA,OAAAA,QAAAA,EAAAA,EAAcoC,KAAK,GAAnBpC,KAAAA,IAAAA,GAAAA,EAAqBqE,OAAO,CAAC,IAC3B,IAAM6E,EAAOsC,EAA6BxL,GACtCkJ,GAAMJ,EAAQgB,KAAK,CAACrF,IAAI,CAACyE,EAC/B,GAEO,CACLkC,GAAIpL,EAAMqL,GAAG,CAACD,EAAE,CAChBE,MAAOtL,EAAMU,MAAM,CAACC,KAAK,SACzBmI,CACF,CACF,CAEJ,GAAG,eCJH,IAAM2C,EAA6B,aAAO,MACxCC,CAAI,kBACJC,CAAgB,wBAChBC,CAAsB,CACtBzE,KAAG,OACHnH,CAAK,eACL6L,CAAa,CACd,GACC,GAAIH,EAAKhF,MAAM,CAAG,GAAK,CAACgF,GAAiB,OAAI,CAC3CC,EAAiB,EAAE,EACnB,MACF,CACA,GAAID,EAAKhF,MAAM,CAAG,GAAK,CAACgF,GAAiB,KAATA,EAAa,CAC3CE,EAAuB,CAAC,GACxB,MACF,CAEA,IAAMxL,EAAO0L,CAAAA,EAAAA,EAAAA,CAAAA,CAASA,CAAC9L,GAEjB+L,EAAQ,MAAMC,CAAAA,EAAAA,EAAAA,CAAAA,CAAOA,CAAC,CAC1B7E,IAAKA,EACL8E,OAAQ,MAAEP,OAAMtL,gBAAMyL,CAAc,CACtC,GAEIK,CAAAA,EAAAA,EAAAA,EAAAA,CAAaA,CAACH,KACZ,EADmB,OACTA,GACZJ,EAAiBI,CADC,CACII,IAAI,CAAC/I,GAAG,CAAEgJ,GAAQA,IAEtC,uBAAwBL,GAAQA,EAAKM,kBAAkB,EAAE,EACpCN,EAAKM,kBAAkB,EAIpD,EAEaC,EAAwBvM,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAGxD,QAWsBI,EA8CLoM,EAwDjBvG,EAYAA,EAwFoBwG,EAGTA,EArHPA,EACAA,EAGqBA,EA+BdC,EACWA,EA6BhBV,EAmDWS,EAGAA,MAPbE,EACAC,EApNH,OAAE3M,CAAK,sBAAEC,CAAoB,CAAE,GAC1BiG,EAAeC,CAAAA,EAAAA,EAAAA,eAAAA,CAAeA,GAC9ByG,EAAS5M,EAAMU,MAAM,CAACkM,MAAM,CAE5BJ,EAAYjM,CAAAA,EAAAA,EAAAA,CAAAA,CAAYA,GACxB,aAAEL,CAAW,UAAEC,CAAQ,YAAE6F,CAAU,CAAE,CAAG3F,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GACrD,CAACwM,EAAelB,EAAiB,CAAGnF,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,CAAmB,EAAE,EACjE,CAACsG,EAAqBlB,EAAuB,CACjDpF,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,GACJpG,EAAOD,EAASqM,EAAUpM,IAAI,EAC9B+G,EAAM4F,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC3M,GACrByL,EAAAA,QAAgB1L,EAAAA,EAASqM,EAAUQ,UAAU,IAA7B7M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgCO,MAAM,CAACyG,GAAG,CAE1DoE,EAASpL,EAASH,EAAMU,MAAM,CAAC6K,MAAM,EAC3C,GAAI,CAACA,EAAQ,OAEb,IAAM0B,EAAU,IAA4E,OAAxEjN,EAAMU,MAAM,CAACK,IAAI,EAA0B,QAAhBL,MAAM,CAACK,IAAI,CAAWf,EAAMU,MAAM,CAACK,IAAI,CAAG,IAEnFmM,EAAmC,OAAxBlN,EAAMU,MAAM,CAACkM,MAAM,CAAY,WAAa,WACvDO,EAAcnN,EAAMU,MAAM,CAACyM,WAAW,CACtCC,IACJZ,EAAUa,eAAe,IAAIb,EAAUc,eAAe,IAAIH,EAGtDI,GAAapN,EAASoL,EAAO7K,KAF7B,CAEmC,CAAC6M,KADpC,KAC8C,EAC9CC,GAAerN,QAASoN,GAAAA,KAAAA,EAAAA,GAAY7M,MAAM,CAAC8M,GAAnBD,SAA+B,EACvDE,GAAOjB,EAAUxM,KAAK,CACtB0N,GACJD,IAA6B,WAArBA,GAAK/M,MAAM,CAACK,IAAI,EAAiB,CAAC0M,GAAK/M,MAAM,CAACiN,YAAY,CAC9DC,GAAoBtH,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CACrC,mBACAmH,IAEII,GACJvH,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CACX,2BACAmH,IAEEK,GAAaxH,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAgB,WAAYmH,IACtDxH,GAAS8H,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,OAACN,GAAAA,KAAAA,EAAAA,GAAM/M,IAAN+M,EAAY,CAACxH,MAAM,EASlDzF,GAAyB,CAC7BoM,OAAQA,EACRhJ,MAVYgK,GACV,OACAC,GACEJ,GAAK/M,MAAM,CAACsN,WAAW,CACvBF,GACE,OHjIH,SAASG,CACwB,MA4BUhI,EAxBvCA,EAcHA,EACyBA,EAKGA,QArBlC,SAAIA,KAAAA,EAAAA,EAAQzD,CAARyD,GAAQzD,IAAS,aACZyD,CAD0B,MAC1BA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAQzF,KAAAA,GAARyF,KAAAA,MAAAA,KAAAA,EAAAA,EAAerC,KAAAA,GAASmF,EAK/B9C,OAAAA,EAAAA,KAAAA,EAAAA,EAAQzD,IAAAA,IAARyD,0BACAA,OAAAA,EAAAA,KAAAA,EAAAA,EAAQzD,IAAAA,IAARyD,kBAEO,CADP,MAMEA,SAAAA,KAAAA,EAAAA,EAAQzD,CAARyD,GAAQzD,IAAS,eAAe,OAC9ByD,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAQzF,KAAAA,GAARyF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAexF,SAAAA,EAAW,CACrByN,EAAAA,EAAAA,EAAAA,CAAmBA,OAACjI,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAQzF,KAAAA,GAARyF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAexF,SAAS,EAInDwF,OAAAA,EAAAA,KAAAA,EAAAA,EAAQzD,IAAAA,IAARyD,mBACKkI,CADgC,EAChCA,EAAAA,CAAAA,CAAwBA,OAAClI,EAAAA,KAAAA,EAAa,QAAbA,EAAAA,EAAQzF,KAAK,GAAbyF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAexF,SAAS,EAItDwF,OAAAA,EAAAA,KAAAA,EAAAA,EAAQzF,KAAAA,GAARyF,UAA4BA,EAAOzF,KAAK,SAAIyF,EAAAA,KAAAA,EAAa,QAAbA,EAAAA,EAAQzF,KAAAA,GAARyF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAerC,KAAAA,EACtDqC,CAD6D,CACtDzF,KAAK,CAACoD,KAAK,CAGpBmF,CACT,EGgG6B9C,IAKzBmI,qBAAsB,EAAE,CACxBC,wBAAyB,EAAE,CAC3BC,WAAY9B,EAAU+B,UAAU,CAACC,aAAa,EAAId,GAClDH,WAAY,CACVnC,GAAI,cACJE,MAAO,cACPmD,WAAW,CAA8BjB,QAA5BjB,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAA2BA,CAACiB,GAAAA,GAA5BjB,KAAAA,MAAAA,KAAAA,EAAAA,EAA2CnK,KAAK,CAC7D0H,MAAO,EAAE,EAEX4E,WAAYxO,EAAYsM,EAAUQ,UAAU,EAC5C2B,kBAAkB,EAClBC,OAAQ,eACN/B,sBACAC,EACA+B,YAAa,GACbC,YAAa,CACX3M,SAAU,eACVD,KAAMhC,EAAYsM,EAAUQ,UAAU,CACxC,EACAvB,aAAc,IACPA,EAAa,MAChBC,mBACAC,yBACAC,MACAzE,QACAnH,EACA6L,eACF,EACF,CACF,EACAtK,eAAgB,CACdZ,MAAOV,EAAqB,CAAED,MAAOA,EAAOwB,QAAS,OAAQ,GAC7DuN,eAAgB9O,EAAqB,CACnCD,MAAOuL,EACP/J,QAAS,gBACX,EACF,CACF,EAEIxB,EAAMU,MAAM,CAACC,KAAK,EAAE,IAChBqO,YAAY,CAAG,CAAErO,MAAOX,EAAMU,MAAM,CAACC,KAAK,CAAEwG,IAAK8F,EAAQ,EAI7DT,EAAUyC,OAAO,EAAE,CACrBzO,GAAMyO,OAAO,CAAGzC,EAAUyC,OAAO,CAE9BjP,CAAwB,SAAlBU,MAAM,CAACkM,MAAM,EAAqC,WAAxB5M,EAAMU,MAAM,CAACkM,MAAW,CAAO,UAChEJ,GAAAA,EAAUyC,OAAO,CAACC,IAAAA,GAAlB1C,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAwB2C,QAAAA,GACxB3C,CAAsB,QAAtBA,EAAAA,EAAUyC,OAAO,CAACC,IAAAA,GAAlB1C,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAwBpB,EAAAA,IAAO,aAC/B,CACA5K,GAAM4O,YAAY,CAAG,CACnBzO,MAAO,mBAAY6L,EAAAA,EAAUyC,OAAO,CAACC,IAAAA,GAAlB1C,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAwB6C,WAAW,EACtDxN,KAC0B,aAAlBnB,MAAM,CAACkM,MAAM,CACf,CAAEzK,SAAU,UAAWD,KAAM,GAAI,EACjC,CAAC,EACPoN,iBAAkBtP,aAAMU,MAAM,CAACkM,MAAM,CAAgB,IAAM,GAC7D,GAI0B,QAA9B5G,EAAAA,EAAWuF,EAAO7K,MAAM,CAAC0B,MAAK,GAA9B4D,KAAAA,OAAAA,EAAiC3B,OAAO,CAAC,QAGtB7D,EAIbA,EANJ,GAAI8F,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAgB,WAAYzE,GAAO,CAClD,IAAM0N,EAAY3G,EAA0B/G,GACxC0N,GAAAA,CAAAA,QAAW/O,EAAAA,GAAM4N,GADsBxF,iBACtBwF,GAAN5N,KAAAA,IAAAA,GAAAA,EAA4BiE,IAAI,CAAC8K,EAAAA,CAClD,MAAO,GAAIjJ,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAoB,eAAgBzE,GAAO,CACjE,IAAM2N,EAAoB7F,EAAwB9H,GAC9C2N,IAC2B,QAA7BhP,EAAAA,GAAM6N,CAFyC1E,CAC1B,qBACQ,GAA7BnJ,KAAAA,IAAAA,GAAAA,EAA+BiE,IAAI,CAAC+K,EAAAA,CAExC,CACF,GAEmC,QAAnCxJ,EAAAA,QAAWuH,GAAAA,KAAAA,EAAAA,GAAY7M,MAAM,CAAC0B,GAAnBmL,GAAwB,GAAnCvH,KAAAA,IAAAA,GAAAA,EAAsC3B,OAAO,CAAExC,QAEnCrB,EAAAA,EADV,IAAM0I,EAAOsC,EAA6B3J,GACtCqH,GAAAA,CAAAA,QAAM1I,EAAAA,GAAM+M,MADyB/B,IACzB+B,GAAN/M,KAAAA,IAAAA,GAAuB,QAAvBA,EAAAA,EAAkBsJ,KAAK,GAAvBtJ,KAAAA,IAAAA,GAAAA,EAAyBiE,IAAI,CAACyE,EAAAA,CAC1C,GAEA,IAAMuD,GAAQtM,EAASoL,EAAO7K,MAAM,CAAC+L,KAAK,EAE1C,GAAIA,CAAAA,SAAAA,KAAAA,EAAAA,EAAAA,CAAO/L,MAAM,CAAC+O,SAAAA,IAAc,SAC9BjP,CADwC,EAClCkP,WAAW,CAAG,CAClB/O,KAAK,QAAE8L,GAAAA,GAAM/L,MAAAA,GAAN+L,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAc9L,KAAK,CAC1BuB,KAAMhC,EAAwB,OAAZuM,GAAAA,GAAM/L,MAAAA,GAAN+L,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAc5K,IAAI,EACpC4B,YACE,UAACvC,EAAAA,CAAwBA,CAAAA,CAACC,SAAUsL,GAAM/L,MAAM,CAAC+C,WAAW,GAE9DlC,eAAgB,CACd4F,IAAKlH,EAAqB,CAAED,MAAOyM,GAAM/L,MAAM,CAACmB,IAAI,CAAEL,QAAS,KAAM,GACrEb,MAAOV,EAAqB,CAC1BD,MAAOuL,EAAO7K,MAAM,CAAC+L,KAAK,CAC1BjL,QAAS,OACX,GACAiC,YAAaxD,EAAqB,CAChCD,MAAOuL,EAAO7K,MAAM,CAAC+L,KAAK,CAC1BjL,QAAS,aACX,EACF,CACF,OACK,GAAIiL,OAAAA,GAAAA,KAAAA,EAAAA,GAAO/L,KAAP+L,CAAa,CAACgD,SAAAA,IAAc,kBAAmB,CAKxD,IAAME,EAAYzJ,EAAaa,GAAG,CAAC,QAG7B,CAAEgF,MAAI,CAAE,CAAG6D,CAAAA,EAAAA,EAAAA,CAAAA,CAAQA,CAAkB,CACzCzI,IAAK,uBACL8E,OAJkB0D,CAIVE,CAJsB,CAAEC,KAAMH,CAAU,EAAI,CAAC,CAKvD,GAEA,SAAI5D,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAMZ,MAAAA,GAANY,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAcrF,MAAM,CAAE,CACxB,IAAMwC,EAAO6C,EAAKZ,MAAM,CAAC,EAAE,QAEvBjC,EAAAA,KAAAA,EAAAA,EAAM6G,IAAAA,EAAN7G,EAAe,wBAAwB,CACzC1I,GAAMkP,WAAW,CAAG,CAClB/O,MAAOX,EAAMU,MAAM,CAACC,KAAK,CACzBuB,KAAM,sCACNuB,YACE,0EACAyF,EAAAA,KAAAA,EAAAA,EAAM8G,MAAN9G,CAAa,CAAC+G,aAAAA,EACd,mEACFrM,MAAO,MACT,CAEJ,CACF,CAEA,IAAMsM,GAAoB/P,EAASqM,EAAU0D,iBAAiB,EACxDC,GAAehQ,EAASoL,EAAO7K,MAAM,CAACyP,YAAY,EAClDC,GAAkBlQ,EAAYiQ,IAC9BE,GAAaF,OAAAA,GAAAA,KAAAA,EAAAA,GAAczP,MAAM,CAAC4P,KAArBH,QAAqBG,IAAiB,EACzD,GAAIH,GAAc,CAEhB,IAAMtO,EACJqO,OAAAA,GAAAA,KAAAA,EAAAA,GAAmBxP,MAAM,CAAC6P,UAA1BL,SAA0BK,GAC1BH,IACAC,GACIH,GAAkBxP,MAAM,CAAC6P,mBAAmB,CAC5C,YACAH,GACAA,GACN5P,GAAM0D,GAAG,CAAG,CACVtC,KAAMuO,GAAazP,MAAM,CAACkB,IAAI,CAC9BC,KAAMA,CACR,CACF,CA6CA,OA3CI0J,EAAO7K,MAAM,CAACqO,cAAc,EAAE,CAChCvO,GAAMuO,cAAc,CAAGxD,EAAO7K,MAAM,CAACqO,cAAAA,EAGnC3O,GAA8B,qBAAqB,CAA3CA,EAAKM,MAAM,CAACC,KAAK,GAC3BH,GAAMgQ,kBAAkB,CAAG,GAC3BhQ,GAAMiQ,uBAAuB,CAAGlF,EAAO7K,MAAM,CAACgQ,OAAO,CACrDlQ,GAAMmQ,yBAAyB,CAC7B,kDAIAxD,GAAe,SAACX,EAAAA,CAAD,CAAWyC,OAAAA,GAAVzC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmB0C,IAAI,CAACC,QAAAA,EAGjC3C,CAH2C,QAG3CA,EAAAA,EAAUyC,OAAAA,GAAVzC,KAAAA,MAAAA,KAAAA,EAAAA,EAAmB0C,IAAI,CAACC,QAAAA,GAAY/B,IAC7CV,EAAe,QAD4C,EAE3DC,EAAAA,QAAeH,EAAAA,EAAUyC,OAAAA,GAAVzC,KAAAA,MAAAA,KAAAA,EAAAA,EAAmBoE,SAAS,GAJ3ClE,EAAe,SACfC,EAAgC,QAAjBH,EAAAA,EAAUyC,OAAO,GAAjBzC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmBqE,QAAQ,EAMxCnE,EACFlM,GAAMsQ,QAAQ,CADE,CAEdlP,KAAM8K,EACNvK,SAAUuK,EACV7K,KAAM8K,EACNzK,KAAMyK,EACNoE,UAAU,CACZ,EAEAvQ,GAAMsQ,QAAQ,MAAG9P,EAGnBR,GAAM0M,QAAQ,CAAGA,EACjB1M,GAAM4M,YAAY,CAAGA,EAEN,UAAU,CAArBR,EACFpM,GAAMwQ,QAAQ,CAAG,yBACK,YAAY,CAAzB9D,EACT1M,GAAMwQ,QAAQ,CAAG,oCAEjBxQ,GAAMwQ,QAAQ,CAAG,sBAGZxQ,EACT,GAAG,0ICvUI,IAAMyQ,EAAwBlR,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAGxD,QAuI+BS,EArHzBgN,EAYAA,EAA8BA,EAyC9BA,EAUKA,EADThN,EA3DsCgN,EAa7BA,EACuBA,EACnBA,EAGJA,EAEIA,EAEcA,EACDA,EAEXA,EAINA,EAEKA,EAA8BA,EAIJA,EAEtBA,EAeoBA,EAkBtChN,EAUAA,KArGD,OAAER,CAAK,sBAAEC,CAAoB,CAAE,GAC1B,aAAEC,CAAW,UAAEC,CAAQ,MAAEC,CAAI,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAE/C6M,EAAW9M,OAAAA,EAAAA,KAAAA,EAAAA,EAAMM,MAANN,CAAawM,MAAAA,IAAW,KAAO,WAAa,WACvDsE,QAAY9Q,EAAAA,KAAAA,EAAAA,EAAMM,MAANN,CAAaO,KAAK,CAE9BH,EAAyB,CAC7B2Q,mBAAmB,EACnBC,aAAc,EAAE,CAChBC,iBAAkB,EAAE,EAGhB7D,EAAerN,EAASH,EAAMU,MAAM,CAAC8M,YAAY,EAEvD,GAAIA,EAAc,CAChB,IAAM8D,EAAa,EAAE,CAGrB,CAAuB,QAAnB9D,EAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB+D,OAAAA,EAAS,CAChCD,EAAW7M,IAAI,CAAC,CACdtC,SACE,UAACqP,IAAAA,UAAWC,CAAAA,EAAAA,EAAAA,CAAAA,CAAmBA,CAAAA,QAACjE,EAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB+D,OAAO,GAApD,GAEVhQ,eAAgBtB,EAAqB,CACnCD,MAAOwN,EACPhM,QAAS,SACX,EACF,GAGEgM,CAAAA,CAAAA,QAAAA,EAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqBkE,KAAAA,GAAK,SAAIlE,EAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqBmE,KAAAA,CAAK,GAC1DL,EAAW7M,IAAI,CAAC,CACdtC,SACE,WAACqP,IAAAA,WACEhE,CAAmB,OAAnBA,GAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqBkE,KAAAA,GACpB,UAACE,EAAAA,CAAIA,CAAAA,CAAC1P,KAAM,UAAqC,OAAR,QAAnBsL,EAAAA,EAAa9M,MAAM,GAAnB8M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqBkE,KAAK,WAC1B,QAAnBlE,EAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqBkE,KAAK,GAG9BlE,CAAmB,QAAnBA,EAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqBmE,KAAAA,GACpB,iCACGnE,CAAAA,OAAAA,GAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqBkE,KAAAA,GAAS,UAACG,KAAAA,CAAAA,GAChC,UAACD,EAAAA,CAAIA,CAAAA,CACH1P,KAAM,OAA4D,eAArDsL,EAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,MAAAA,KAAAA,EAAAA,EAAqBmE,KAAK,CAACG,OAAO,CAAC,aAAc,KAC9DC,YAAU,SAAEvE,EAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,MAAAA,KAAAA,EAAAA,EAAqBmE,KAAK,CAACG,OAAO,CAAC,MAAO,cAElC,QAAnBtE,EAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,MAAAA,KAAAA,EAAAA,EAAqBmE,KAAK,MAIhCnE,CAAAA,QAAAA,EAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqBwE,GAAAA,GACpB,iCACIxE,CAAAA,CAAAA,QAAAA,EAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqBkE,KAAAA,GAAK,SAAIlE,EAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqBmE,KAAAA,CAAI,GACvD,UAACE,KAAAA,CAAAA,GAEH,UAACI,OAAAA,CACCF,aAAY,cAA2D,OAA1B,OAAnBvE,GAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqBwE,GAAG,CAACF,OAAO,CAAC,MAAO,eAEjE,GAA4B,eAAzBtE,EAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqBwE,GAAG,CAAC,kBAMvCzQ,eAAgBtB,EAAqB,CACnCD,MAAOwN,EACPhM,QAAS,OACX,EACF,GAGF,SAAIgM,EAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB0E,KAAK,EAAE,CAC9BZ,EAAW7M,IAAI,CAAC,CACdtC,SAAU,UAACqP,IAAAA,UAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAmBA,CAAoB,OAAnBjE,GAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB0E,KAAK,IAC5D3Q,eAAgBtB,EAAqB,CACnCD,MAAOwN,EACPhM,QAAS,OACX,EACF,GAEgB,QAAlBhB,EAAAA,EAAM4Q,YAAY,GAAlB5Q,KAAAA,OAAAA,EAAoBiE,IAAI,CAAC,CACvB9D,KAAK,SAAE6M,EAAAA,EAAa9M,MAAAA,GAAb8M,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB7M,KAAK,CACjCY,eAAgB,CACdZ,MAAOV,EAAqB,CAAED,MAAOwN,EAAchM,QAAS,OAAQ,EACtE,EACAsI,MAAOwH,CACT,EACF,CAGItR,EAAMU,MAAM,CAAC0B,KAAK,EAAE,CACJ,QAAlB5B,EAAAA,EAAM4Q,YAAAA,GAAN5Q,KAAAA,IAAAA,GAAAA,EAAoBiE,IAAI,CAAC,CACvBqF,MAAO9J,EAAMU,MAAM,CAAC0B,KAAK,CAACgB,GAAG,CAAC,CAACvB,EAAMyB,IAAO,EAC1CnB,SAAU,UAACyP,EAAAA,CAAIA,CAAAA,CAAU,GAAGO,CAAAA,EAAAA,EAAAA,CAAAA,CAAeA,CAACtQ,EAAK,EAA5ByB,GACrB/B,eAAgBtB,EAAqB,CAAED,MAAO6B,EAAML,QAAS,OAAQ,GACvE,EACF,IAIExB,EAAMU,MAAM,CAAC8M,YAAY,EAAE,CACX,QAAlBhN,EAAAA,EAAM4Q,YAAAA,GAAN5Q,KAAAA,IAAAA,GAAAA,EAAoBiE,IAAI,CAAC,CACvBqF,MAAO,CACL,CACE3H,SACE,UAACiQ,EAAAA,CAAgBA,CAAAA,CACd,GAAG7F,CAAAA,EAAAA,EAAAA,CAAAA,CAA2BA,CAACvM,EAAMU,MAAM,CAAC8M,YAAY,CAAC,EAGhE,EAEJ,IAGF,IAAMtJ,EAAM/D,EAASH,EAAMU,MAAM,CAACwD,GAAG,EAyDrC,OAvDIA,IACF1D,CADO,CACD2Q,iBAAiB,EAAG,EAC1B3Q,EAAM6R,gBAAgB,CAAG,CACvB1R,MAAOuD,EAAIxD,MAAM,CAACC,KAAK,CACvBuB,KAAMhC,EAAYgE,EAAIxD,MAAM,CAACmB,IAAI,EACjC4B,YACE,UAACvC,EAAAA,CAAwBA,CAAAA,CAACC,SAAU+C,EAAIxD,MAAM,CAAC+C,WAAW,GAE5DlC,eAAgB,CACd4F,IAAKlH,EAAqB,CAAED,MAAOkE,EAAIxD,MAAM,CAACmB,IAAI,CAAEL,QAAS,KAAM,GACnEb,MAAOV,EAAqB,CAAED,MAAOkE,EAAK1C,QAAS,OAAQ,GAC3DiC,YAAaxD,EAAqB,CAChCD,MAAOkE,EACP1C,QAAS,aACX,EACF,CACF,GAGGhB,EAAM6Q,gBAAgB,EAAI7Q,CAAAA,QAAAA,EAAAA,EAAM6Q,gBAAAA,GAAN7Q,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAwBkG,MAAAA,IAAW,GAAG,CACnElG,EAAM6Q,gBAAgB,CAAG,CACvB,CACElP,SAAU,WACVD,KAAM,gCACR,EACA,CACEC,SAAU,OACVD,KAAM,gCACR,EACA,CACEC,SAAU,qBACVD,KAAM,yBACR,EACA,CACEC,SAAU,aACVD,KAAM,uDACR,EACA,CACEC,SAAU,WACVD,KAAM,uDACR,EACA,CACEC,SAAU,gBACVD,KAAM,oCACR,EACA,CACEC,SAAU,wBACVD,KAAM,qEACR,EACD,EAGH1B,EAAM0M,QAAQ,CAAGA,EACjB1M,EAAM0Q,SAAS,CAAGA,EAEX1Q,CACT,GAAG,2KC3KI,IAAM8R,EAA+BvS,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAG/D,QA4DaI,KA5DZ,OAAEH,CAAK,sBAAEC,CAAoB,CAAE,GAC1B,UAAEE,CAAQ,CAAED,aAAW,MAAEE,CAAI,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAE/CmM,EAAYjM,CAAAA,EAAAA,EAAAA,CAAAA,CAAYA,GACxB,CAACsM,EAAelB,EAAiB,CAAGnF,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,CAChD,EAAE,EAGE+L,EAAiBC,CAAAA,EAAAA,EAAAA,EAAAA,CAAiBA,CAAChG,GACnCrF,EAAM4F,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC3M,GAErBqL,EAAe,MAAOC,IAC1B,GAAIA,EAAKhF,MAAM,CAAG,GAAK,CAACgF,GAAiB,KAATA,EAAa,CAC3CC,EAAiB,EAAE,EACnB,MACF,CAEA,IAAMI,EAAQ,MAAMC,CAAAA,EAAAA,EAAAA,CAAAA,CAAOA,CAAC,CAC1B7E,IAAKA,EACL8E,OAAQ,MAAEP,CAAK,CACjB,GAEI6G,GAAkBrG,CAAAA,EAAAA,EAAAA,EAAAA,CAAaA,CAACH,IAClCJ,EAAiBI,CADwB,CACnBI,IAAI,CAAC/I,GAAG,CAAC,GAASgJ,GAI5C,EAEA,MAAO,CACLxI,MAAO5D,EAAMU,MAAM,CAACkD,KAAK,CACzBjD,MAAOX,EAAMU,MAAM,CAACC,KAAK,CACzBC,YACE4L,EAAUlM,OAAO,CAACO,IAAI,CAACC,SAAS,CAAC,YAAOV,EAAAA,KAAAA,EAAAA,EAAMM,MAAM,CAACK,IAAAA,GACzB,MAA3ByL,EAAUlM,OAAO,CAACO,IAAI,EAAYT,OAAAA,EAAAA,KAAAA,EAAAA,EAAMM,MAANN,CAAawM,MAAAA,IAAW,YACvDxM,EAAAA,KAAAA,EAAAA,EAAMM,MAAM,CAACC,KAAK,MAClBK,EACNyR,eAAgB,CACdC,YAAa1S,EAAMU,MAAM,CAACiS,iBAAiB,CAC3C7D,YAAa3K,CAAAA,EAAAA,EAAAA,CAAAA,CAAkBA,CAACnE,EAAMU,MAAM,CAACkS,iBAAiB,EAC9DC,oBAAqB7S,EAAMU,MAAM,CAACoS,yBAAyB,CAC3DjE,YAAa0D,EACb7D,WAAYxO,EAAYsM,EAAUQ,UAAU,EAC5CvB,aAAc,IACPA,EAAaC,EACpB,gBACAmB,EACAtL,eAAgB,CACdsR,oBAAqB5S,EAAqB,OACxCD,EACAwB,QAAS,2BACX,EACF,CACF,EACAuR,SAAU/S,EAAMU,MAAM,CAACqS,QAAQ,CAC/B1Q,QAASC,CAAAA,EAAAA,EAAAA,CAAAA,CAAkBA,CAACtC,EAAMU,MAAM,CAACsS,QAAQ,EACjD1J,WAAYhI,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACtB,EAAMU,MAAM,CAACW,KAAK,EACpD4R,sBAAuBjT,EAAMU,MAAM,CAACuS,qBAAqB,CACvD,UAAC/R,EAAAA,CAAwBA,CAAAA,CAACC,SAAUnB,EAAMU,MAAM,CAACuS,qBAAqB,QACpEjS,EACJkS,SAAS,CAAiC,OAA/B/S,GAAAA,EAASH,EAAMU,MAAM,CAACwS,UAAS,GAA/B/S,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAkCO,MAAM,CAACyG,GAAG,CAEvD5F,eAAgB,CACdZ,MAAOV,EAAqB,CAAED,QAAOwB,QAAS,OAAQ,GACtDyR,sBAAuBhT,EAAqB,OAC1CD,EACAwB,QAAS,uBACX,EACF,CACF,CACF,GAAG,8JC7EI,IAAM2R,EAA6BpT,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAG7D,QAmCyCC,EAMM4O,EAlBzCpO,EAuBAA,KA9CL,OAAER,CAAK,CAAE,GACJ,UAAEG,CAAQ,CAAE,CAAGE,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAE5BG,EAA8B,CAClCoD,MAAO5D,EAAMU,MAAM,CAACkD,KAAK,CACzBwP,QAAS,EAAE,EAGP,CAAEpT,MAAOqT,CAAS,CAAE,CAAG9S,CAAAA,EAAAA,EAAAA,CAAAA,CAAYA,GACnC+S,EAAW/S,CAAAA,EAAAA,EAAAA,CAAAA,CAAYA,GACvBkN,EAAOtN,EAASkT,GAChBjT,EAAOD,EAASmT,EAASlT,IAAI,EAC7BmT,EAASzH,CAAAA,EAAAA,EAAAA,CAAAA,CAASA,CAAC1L,GACzBI,EAAMgT,SAAS,OAAG/F,EAAAA,KAAAA,EAAAA,EAAM/M,MAAN+M,CAAa9M,KAAK,CAEpC,IAAM8S,EAA2B,EAAE,CAC/BC,EAAe,GAEb,CAACC,EAAa,GAAGC,EAAS,CAAG5T,EAAMU,MAAM,CAACkT,QAAQ,EAAI,EAAE,CAE1DD,IACFnT,EAAMqT,OADS,SACO,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAoBA,CAACH,GAE9C,CAA0B,QAAtBnT,EAAAA,EAAMqT,gBAAAA,GAANrT,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAwBG,KAAAA,EAAO,EACjC+S,EAAelT,EAAMqT,gBAAgB,CAAClT,KAAAA,GAIrCX,EAAMU,MAAM,CAACqT,KAAK,EAAE,MACvBH,GAAAA,EAAUI,KAAK,CAAC,EAAG,GAAG3P,KAAtBuP,EAA6B,CAAC,IAC5B,IAAMK,EAAoBC,CAAAA,EAAAA,EAAAA,CAAAA,CAAuBA,CAACC,GAC9CF,GAAmBzT,EAAM4S,OAAO,CAAE3O,IAAI,CAACwP,EAC7C,GAGF,IAAMG,EAAcC,CAAAA,EAAAA,EAAAA,CAAAA,CAAoBA,OAACrU,EAAAA,KAAAA,EAAAA,QAAAA,CAAAA,CAAAA,EAAOU,MAAAA,GAAPV,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAe+T,KAAK,EACzDK,GAAe,CAACA,EAAYE,IAAI,GAAEF,EAAYE,IAAI,CAAG,UACrDF,EAAAA,KAAAA,EAAAA,EAAaE,IAAI,IAAEF,EAAYE,GAA/BF,CAAmC,CAAGA,EAAYE,IAAI,EAAG,EAI7D,CAJgE,EAI1D,CAACC,EAAmB,GAAGC,EAAe,CAAG5F,CAAAA,QAAAA,EAFhC6F,CAAAA,EAAAA,EAAAA,EAAAA,CAASA,CAAoCL,GAENrI,IAAAA,GAAP6C,KAAAA,IAAAA,EAAAA,CAJsE,IAItEA,EAAAA,EAAazC,IAAAA,GAAQ,EAAE,CAElEoI,GAAqB,CAACvU,EAAMU,MAAM,CAACkT,QAAQ,EAAE,CAC/CpT,EAAMqT,gBAAgB,CAAGa,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACH,GAE/C,CAA0B,QAAtB/T,EAAAA,EAAMqT,gBAAAA,GAANrT,KAAAA,MAAAA,KAAAA,EAAAA,EAAwBG,KAAK,EAAE,EACjC+S,EAAelT,EAAMqT,gBAAgB,CAAClT,KAAAA,GAG1C,IAAIgU,EAAU,EACRC,EAAe,EAAK5U,EAAAA,GAAMU,MAAM,CAACkT,QAAQ,CA4B/C,EA5BkD,IAAI,OACtDY,GAAAA,EAAgBnQ,OAAO,CAAC,QAERwQ,EADd,IADFL,EACkCM,CAAAA,EAAAA,EAAAA,EAAAA,CAAwBA,CAAC3J,EAAQoI,GAC3D5S,EAAQkU,QAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAyBlU,KAAAA,GAAzBkU,CAAAA,IAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgCE,QAAQ,GAGpDF,GACAlU,GACAkU,EAAwBlU,KAAK,GAAK+S,GAClC,CAACD,EAAU5N,QAAQ,CAAClF,IACpBgU,EAAUC,IAEVpU,EAAM4S,OAAO,CADb,IACmB,CAACyB,GACpBpB,EAAUhP,IAAI,CAAC9D,GACfgU,IAEJ,GAEInU,EAAMqT,gBAAgB,EAAE,CAC1BrT,EAAMqT,gBAAgB,CAACmB,QAAQ,CAAG,GAE9BxU,EAAMqT,gBAAgB,CAACxS,KAAK,CAC9Bb,CADgC,CAC1BqT,gBAAgB,CAACoB,MAAM,CAAG,0BAEhCzU,EAAMqT,gBAAgB,CAACoB,MAAM,CAAG,aAI7BzU,CACT,GAAG,+CC7FI,IAAM0U,EAA0BnV,CAAAA,EAAAA,SAAAA,CAAAA,CAAqBA,CAG1D,OAAC,OAAEC,CAAK,CAAE,GAMV,MALkC,CAChCmV,UAAU,EACVvR,MAAO5D,EAAMU,MAAM,CAACkD,KAAK,CAI7B,GAAG,yGCPI,IAAMwR,EAA8BrV,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAG9D,OAAC,OAAEC,CAAK,sBAAEC,CAAoB,CAAE,GAChC,MAAO,CACL8P,KAAM,SACNpP,MAAOX,EAAMU,MAAM,CAACC,KAAK,CACzBiD,MAAO5D,EAAMU,MAAM,CAACkD,KAAK,CACzBJ,MAAO,UAACtC,EAAAA,CAAwBA,CAAAA,CAACC,SAAUnB,EAAMU,MAAM,CAACO,QAAQ,GAChEI,MAAOC,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACtB,EAAMU,MAAM,CAACW,KAAK,EAC/C6C,IAAKC,CAAAA,EAAAA,EAAAA,CAAAA,CAAkBA,CAACnE,EAAMU,MAAM,CAACwD,GAAG,EAExC3C,eAAgB,CACdZ,MAAOV,EAAqB,OAAED,EAAOwB,QAAS,OAAQ,GACtDP,SAAUhB,EAAqB,OAAED,EAAOwB,QAAS,UAAW,EAC9D,CACF,CACF,GAAG,yGCbI,IAAM6T,EAA0BtV,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAG1D,OAAC,OAAEC,CAAK,CAAEC,sBAAoB,CAAE,GAC1B,YAAE+F,CAAU,CAAE,CAAG3F,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAC9B,iBAAE8E,CAAe,wBAAEC,CAAsB,CAAE,CAAGkQ,CAAAA,EAAAA,EAAAA,EAAAA,CAAkBA,GAEhE9U,EAA2B,CAC/BG,MAAOX,EAAMU,MAAM,CAACC,KAAK,EAAI,GAC7B8C,YAAazD,EAAMU,MAAM,CAAC+C,WAAW,CACnC,UAACvC,EAAAA,CAAwBA,CAAAA,CAACC,SAAUnB,EAAMU,MAAM,CAAC+C,WAAW,QAC1DzC,EACJ4C,MAAO5D,EAAMU,MAAM,CAACkD,KAAK,CAEzBrC,eAAgB,CACdZ,MAAOV,EAAqB,OAAED,EAAOwB,QAAS,OAAQ,GACtDiC,YAAaxD,EAAqB,OAAED,EAAOwB,QAAS,aAAc,EACpE,CACF,EAEMiF,EAAST,EAAWhG,EAAMU,MAAM,CAAC+F,MAAM,EACvCqD,EAAiC,EAAE,CAiCzC,OA/BArD,EAAOpC,OAAO,CAAC,IACb,GAAIwC,EAAMnG,MAAM,CAACoG,KAAK,CAAE,CACtB,IAAMyO,EAAU,EAAE,GACR7U,MAAM,CAAC8U,KAAK,EAAE,EACd/Q,IAAI,CACV,CAAE6G,MAAO,aAAc7F,MAAO,EAAG,KAC9BoB,EAAMnG,MAAM,CAAC8U,KAAK,CAACpS,GAAG,CAAC,GAAW,EAAEkI,EAAF,IAASI,EAAMjG,MAAOiG,EAAK,IAIpE,IAAM+J,EAAiBtQ,CAAe,CAAC0B,EAAMnG,MAAM,CAACoG,KAAK,CAAC,CAE1DgD,EAAMrF,IAAI,CAAC,CACT+C,IAAKX,EAAMnG,MAAM,CAACoG,KAAK,CACvBwE,MAAOzE,EAAMnG,MAAM,CAAC4K,KAAK,EAAI,GAC7BiK,QAASA,EAETE,eAAgBA,GAAkB,GAClCC,SAAU,IACRtQ,EAAuByB,EAAMnG,MAAM,CAACoG,KAAK,CAAG6O,EAAMC,MAAM,CAACnQ,KAAK,CAChE,EAEAlE,eAAgB,CACd+J,MAAOrL,EAAqB,OAAED,EAAOwB,QAAS,OAAQ,EACxD,CACF,EACF,CACF,GAEAhB,EAAMsJ,KAAK,CAAGA,EAEPtJ,CACT,GAAG,6KEhDI,IAAMsT,EAAuB/T,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAGvD,OAAC,OAAEC,CAAK,sBAAEC,CAAoB,CAAE,GAC1B,UAAEE,CAAQ,aAAED,CAAW,CAAE,CAAGG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAI3C+T,EAA8C,KAElD,GAAI9N,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAa,QAAStG,GAAQ,KAMM4O,GALnDwF,EAAcC,CAAAA,EAAAA,EAAAA,CAAAA,CAAoBA,CAACrU,EAAAA,IAClBoU,EAAYE,IAAI,EAAG,EAEpC,IAAM1F,EAAS6F,CAAAA,EAAAA,EAAAA,EAAAA,CAASA,CAAkBL,GAEpCyB,EAAuBnB,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,OAAC9F,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAQ7C,IAAI,GAAZ6C,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAczC,IAAI,CAAC,EAAE,EACxE,GAAI0J,EAAsB,OAAOA,CACnC,CAIA,GAAIvP,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAmB,cAAetG,GAAQ,CACzD,IAAMQ,EAAwB,CAC5BG,MAAOX,EAAMU,MAAM,CAACC,KAAK,CACzBkB,KAAM3B,EAAYF,GAClB8V,OAAQC,CAAAA,EAAAA,EAAAA,CAAAA,CAAiBA,CAAC/V,GAC1BqB,MAAOC,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACtB,EAAMU,MAAM,CAAC2I,SAAS,EACnD1E,WACE,UAACzD,EAAAA,CAAwBA,CAAAA,CACvBC,SAAUnB,EAAMU,MAAM,CAACyI,gBAAgB,EAAInJ,EAAMU,MAAM,CAAC+C,WAAW,CACnEmB,iBAAiB,KAGvB,EAEIpE,EAAMsV,MAAM,GAAEtV,EAAMsV,MAAM,CAACE,SAAS,EAAG,GAE3C,IAAMrU,EAAWxB,EAASH,EAAMU,MAAM,CAACiB,QAAQ,EAiB/C,aAfIA,EAAAA,KAAAA,EAAAA,EAAUjB,MAAM,CAACkB,GAAjBD,CAAiBC,GAAQD,EAASjB,MAAM,CAACyG,GAAG,EAAE,CAChD3G,EAAMmB,QAAQ,CAAG,CACf2J,MAAO3J,EAASjB,MAAM,CAACkB,IAAI,CAC3BC,KAAM3B,EAAYyB,GACpB,EAGFnB,EAAMe,cAAc,CAAG,CACrBoD,WAAY1E,EAAqB,OAAED,EAAOwB,QAAS,kBAAmB,GACtEG,SAAU1B,EAAqB,CAC7BD,MAAO2B,EACPH,QAAS,MACX,EACF,EAEOhB,CACT,CAIA,GAAI8F,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAmB,cAAetG,IAS/CsG,CAAAA,EAAAA,CATuD,CASvDA,CAAAA,CAAaA,CAAkB,aAActG,GAR/C,KAQuD,CARhD,CACLW,MAAOX,EAAMU,MAAM,CAACC,KAAK,CACzBkB,KAAM3B,EAAYF,EACpB,CAWJ,GAAG,qJChFI,IAAMiW,EAAkClW,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAGlE,QAWmBuB,EASftB,EACFA,KArBD,OAAEA,CAAK,CAAEC,sBAAoB,CAAE,GAC1B,2BAAEiW,CAAyB,CAAE,CAAG7V,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAE/CwD,EAEU,EAAE,CACVrD,EAAiC,CACrCG,MAAOX,EAAMU,MAAM,CAACC,KAAK,CACzB6C,MAAOxD,EAAMU,MAAM,CAAC+C,WAAW,CAC7B,UAACvC,EAAAA,CAAwBA,CAAAA,CAACC,SAAUnB,EAAMU,MAAM,CAAC+C,WAAW,QAC1DzC,EACJ0C,eAAe,CAA0C,OAAxCpC,GAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACtB,EAAMU,MAAM,CAACW,MAAK,GAAxCC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA2CqC,KAAK,CACjEC,MAAO5D,EAAMU,MAAM,CAACkD,KAAK,CAEzBrC,eAAgB,CACdZ,MAAOV,EAAqB,OAAED,EAAOwB,QAAS,OAAQ,GACtDgC,MAAOvD,EAAqB,OAAED,EAAOwB,QAAS,aAAc,EAC9D,CACF,EAEA,GAAwB,QAApBxB,EAAAA,EAAMU,MAAM,CAACsD,OAAAA,GAAbhE,KAAAA,MAAAA,KAAAA,EAAAA,EAAsB0G,MAAM,CACV,CADY,OAChC1G,EAAAA,EAAMU,MAAM,CAACsD,OAAAA,GAAbhE,KAAAA,IAAAA,GAAAA,EAAsBqE,OAAO,CAAC,IAC5B,GAAI6R,EAA0B1R,GAAS,OACvC,IAAMF,EAAuBC,CAAAA,EAAAA,EAAAA,CAAAA,CAA0BA,CAACC,GACpDF,GACFT,EAAgBY,IAAI,CAACH,EAEzB,QAEA,EAL4B,CAKxBtE,EAAMU,MAAM,CAACqT,KAAK,CAAE,CACtB,IAAMK,EAAcC,CAAAA,EAAAA,EAAAA,CAAAA,CAAoBA,CAACrU,EAAMU,MAAM,CAACqT,KAAK,EACrD,MAAEhI,CAAI,CAAE,CAAG0I,CAAAA,EAAAA,EAAAA,EAAAA,CAASA,CAA+BL,GACnD+B,EAAmB,IAAIC,IACvBC,EAA6C,EAAE,QAEjDtK,EAAAA,KAAAA,EAAAA,EAAMI,IAAI,EAAE,EACdJ,EAAKI,IAAI,CAAC9H,OAAO,CAAC,QACZ+H,EAAJ,SAAIA,EAAAA,EAAIkK,OAAAA,GAAJlK,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAamK,YAAAA,EAAc,CAC7BnK,EAAIkK,OAAO,CAACC,YAAY,CAAClS,OAAO,CAAC,IAC/B,GAAI,CAAC8R,EAAiBK,GAAG,CAACC,EAAYjU,IAAI,EAAG,KAQvCiU,EAHMA,EAJVN,EAAiBO,GAAG,CAACD,EAAYjU,IAAI,EAErC,IAAM8B,EAAsC,CAC1C9B,KAAMiU,EAAYjU,IAAI,CACtBmU,OAAQF,OAAAA,GAAAA,EAAYE,MAAAA,GAAZF,KAAAA,IAAAA,EAAAA,EAAsB,EAAE,CAChC5U,KAAM4U,EAAYtP,GAAG,EAEvB,SAAIsP,EAAAA,EAAYG,SAAAA,GAAZH,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAuBI,GAAAA,EAAK,EAC9BvS,EAAqBwS,QAAQ,CAAG,CAC9BnT,MAAO8S,EAAYG,SAAS,CAC9B,EAIEH,EAAYtP,GAAG,EAAE,EACE1C,IAAI,CAACH,EAE9B,CACF,EAEJ,GAEAT,EAAkBwS,EAAqBrC,KAAK,CAAC,EAAG,GAEpD,CAGF,IAAM9P,EAAMC,CAAAA,EAAAA,EAAAA,CAAAA,CAAkBA,CAACnE,EAAMU,MAAM,CAACqD,WAAW,EAgBvD,OAdIF,EAAgB6C,MAAM,EAAE,CAC1BlG,EAAMqD,eAAe,CAAG,CACtBI,QAASjE,EAAMU,MAAM,CAACoD,cAAc,CACpCI,MACAE,OAAQP,EACRtC,eAAgB,CACd0C,QAAShE,EAAqB,OAC5BD,EACAwB,QAAS,gBACX,EACF,EACF,EAGKhB,CACT,GAAG,yGC7FI,IAAMuW,EAAwBhX,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAGxD,OAAC,OAAEC,CAAK,CAAEC,sBAAoB,CAAE,GAyBhC,MAxB+B,CAwBxBO,KAvBC,OACNG,MAAOX,EAAMU,MAAM,CAACC,KAAK,EAAI,GAC7BM,SAAU,UAACC,EAAAA,CAAwBA,CAAAA,CAACC,SAAUnB,EAAMU,MAAM,CAACO,QAAQ,GACnEoB,QAAS,CACPyH,MAAO9J,EAAMU,MAAM,CAAC2B,OAAO,CACvBrC,EAAMU,MAAM,CAAC2B,OAAO,CAACe,GAAG,CAAC,IACvB,IAAM5C,EAAQ2D,CAAAA,EAAAA,EAAAA,CAAAA,CAAkBA,CAAC6S,UACjC,GAAmB,CAAf,GAAQ,MAAmB,EAAG,CAEpC,QACAhW,CACN,EACAiB,UAAWkC,CAAAA,EAAAA,EAAAA,CAAAA,CAAkBA,CAACnE,EAAMU,MAAM,CAACuB,SAAS,EACpDZ,MAAOC,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACtB,EAAMU,MAAM,CAACW,KAAK,EAC/CuC,MAAO5D,EAAMU,MAAM,CAACkD,KAAK,CACzBnD,UAAWT,EAAMU,MAAM,CAACD,SAAS,CAEjCc,eAAgB,CACdZ,MAAOV,EAAqB,OAAED,EAAOwB,QAAS,OAAQ,GACtDP,SAAUhB,EAAqB,CAAED,QAAOwB,QAAS,UAAW,EAC9D,CACF,CAGF,GAAG,4GE1BI,IAAM+C,EAA6BxE,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAG7D,OAAC,OAAEC,CAAK,sBAAEC,CAAoB,CAAE,GAC1B,eAAEgX,CAAa,eAAEC,CAAa,UAAE/W,CAAQ,CAAE,CAAGE,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAC1DG,EAAuB,CAAEgC,KAAM,GAAImU,OAAQ,EAAE,EAEnD,GAAI3W,EAAO,CACT,IAAMmX,EAAc7Q,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAC/B,gBACAtG,GAEEG,EAASH,EAAMU,MAAM,CAAC8D,MAAM,EAC5BxE,EACEsJ,EAAa8N,CAAAA,EAAAA,EAAAA,EAAAA,CAAsBA,CAACpX,GAoB1C,aAjBIsJ,EAAAA,KAAAA,EAAAA,EAAY3F,KAAAA,EAAO,EACrB2F,EAAW3F,CADT2F,IACc,CAAC+N,KAAK,CAAG,QACzB/N,EAAW3F,KAAK,CAAC2T,MAAM,CAAG,SAG5B9W,EAAMgC,IAAI,CAAG0U,EAAclX,GAC3BQ,EAAMmW,MAAM,CAAGQ,OAAAA,EAAAA,KAAAA,EAAAA,EAAazW,MAAM,CAAC6W,MAApBJ,GAA6B,GAAI,CAAC,GAAG,CACpD3W,EAAMsW,QAAQ,CAAGxN,QAA0BtI,EAC3CR,EAAMqB,CADwByH,GACpB,CAAG2N,EAAcjX,GAE3BQ,EAAMe,cAAc,CAAG,CACrBiB,KAAMvC,EAAqB,CAAED,MAAOmX,EAAa3V,QAAS,WAAY,GACtEmV,OAAQ1W,EAAqB,CAC3BD,MAAOmX,EACP3V,QAAS,WACX,EACF,EACOhB,CACT,CACF,GAAG,+HC5BI,IAAMgX,EAAoCzX,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAIpE,QAoBiBI,EAcK6F,EAAWuP,EAGZvP,EAAWuP,EAVvB/Q,EAkBPhE,EAQAA,EAQAA,EAQAA,KArED,OAAER,CAAK,SAAEuV,CAAO,sBAAEtV,CAAoB,CAAE,GACnC,aAAEC,CAAW,UAAEC,CAAQ,YAAE6F,CAAU,CAAE,CAAG3F,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GACrD,GAAEoX,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAeA,GAEvBlX,EAAqC,CACzCG,MAAOX,EAAMU,MAAM,CAACC,KAAK,CACzBgX,MAAO3X,EAAMU,MAAM,CAACiX,KAAK,CACvB,UAACzW,EAAAA,CAAwBA,CAAAA,CACvBC,SAAUnB,EAAMU,MAAM,CAACiX,KAAK,CAC5B/S,iBAAiB,WAEjB5D,EACJ4W,UAAW,EAAE,CAEbrW,eAAgB,CACdoW,MAAO1X,EAAqB,OAAED,EAAOwB,QAAS,OAAQ,EACxD,CACF,EAEMgD,EAASrE,EAASH,EAAMU,MAAM,CAAC8D,MAAM,EACrC8C,EAAyC,QAA9BnH,EAAAA,EAASH,EAAMU,MAAM,CAAC4G,QAAQ,IAA9BnH,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAiCO,MAAM,CAACC,KAAK,CACxD2I,EAAahI,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,OAACkD,EAAAA,KAAAA,EAAAA,EAAQ9D,MAAM,CAACiD,CAAfa,IAAoB,EAEzDqT,EAAO7X,EAAMU,MAAM,CAACmX,IAAI,CAEvB7X,EAAMU,MAAM,CAACC,KAAK,GAAEH,EAAMG,KAAK,CAAGuW,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAC1S,EAAAA,EAChDxE,EAAMU,MAAM,CAACmX,IAAI,EAAE,CACtBA,QAAOrT,EAAAA,KAAAA,EAAwB,QAAxBA,EAAAA,EAAQ9D,MAAM,CAAC6W,SAAAA,GAAf/S,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0BsT,IAAI,CAAC,cAEpCxO,EAAAA,KAAAA,EAAAA,EAAY3F,KAAK,EAAE,EACrBnD,EAAM8I,CADJA,SACc,CAAGA,EACnB9I,EAAM8I,UAAU,CAACyO,WAAW,CAAG,OAGjC,IAAMC,EAA+D,OAA/ChS,GAAAA,EAAWuP,QAAAA,KAAAA,EAAmB,KAAnBA,GAAAA,EAAAA,EAAS0C,UAAU,GAAnB1C,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB7U,MAAM,CAACwX,SAAQ,GAA/ClS,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAClB5C,GAAG,CAAC,GAAc8U,EAASxX,MAAM,CAACC,KAAK,EACxCqJ,MAAM,CAACmO,SACJC,EAAAA,QAAepS,EAAAA,QAAWuP,EAAAA,KAAAA,EAAmB,QAAnBA,EAAAA,CAAAA,CAAS0C,UAAAA,GAAT1C,KAAAA,MAAAA,KAAAA,EAAAA,EAAqB7U,MAAM,CAAC2X,QAAO,GAA9CrS,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EACjB5C,GAAG,CAAC,GAAc,EAClBlB,KADkB,EACAmW,GAClBlW,SAAUkW,EAAQ3X,MAAM,CAACC,KAAK,CAChC,GACCqJ,MAAM,CAACmO,SAkCV,OAhCIN,IACa,EADP,MACRrX,EAAAA,EAAMoX,SAAS,GAAfpX,KAAAA,IAAAA,GAAAA,EAAiBiE,IAAI,CAAC,CACpBR,QAASwT,EAAE,QACXhU,YAAaoU,EACbS,cAAerY,EAAqB,OAAED,EAAOwB,QAAS,MAAO,EAC/D,IAGEwW,EAActR,MAAM,CAAG,GAAG,CACb,OAAflG,GAAAA,EAAMoX,SAAAA,GAANpX,KAAAA,IAAAA,GAAAA,EAAiBiE,IAAI,CAAC,CACpBR,QAASwT,EAAE,YACXhU,YAAauU,EACbM,cAAerY,EAAqB,OAAED,EAAOwB,QAAS,UAAW,EACnE,IAGE8F,IACa,MADH,EACZ9G,EAAAA,EAAMoX,SAAAA,GAANpX,KAAAA,IAAAA,GAAAA,EAAiBiE,IAAI,CAAC,CACpBR,QAASwT,EAAE,YACXhU,YAAa6D,EACbgR,cAAerY,EAAqB,OAAED,EAAOwB,QAAS,UAAW,EACnE,IAGE4W,IACa,OAAf5X,GADgB,EACVoX,SAAAA,GAANpX,KAAAA,IAAAA,GAAAA,EAAiBiE,IAAI,CAAC,CACpBR,QAASwT,EAAE,WACXhU,YAAa2U,EACbE,cAAerY,EAAqB,OAAED,EAAOwB,QAAS,SAAU,EAClE,IAGKhB,CACT,GAAG,6DCjGI,SAASgJ,EAAiBrI,CAAyB,SACxD,EAEOoX,EAFH,MAAW,CAaRA,EACPC,CAAwB,MACxBC,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAe,UAEf,IAAI,GAACD,EAAAA,KAAAA,EAAAA,EAAUE,OAAAA,EAyER,CAzEFF,CAyEsBE,OAAO,CAACC,MAAM,CACvC,CAACC,EAAaC,EAAYvV,KACxB,IAAIwV,EAAgB,GAEpB,GAAIC,EAAAA,OAAOA,CAACC,MAAM,CAACH,GACjBC,EAAgBD,EAAKpT,KAAK,MACrB,IAAIsT,EAAAA,OAAOA,CAACE,OAAO,CAACJ,IAASE,EAAAA,OAAOA,CAACG,QAAQ,CAACL,EAAAA,GAAO,CAErDC,CADLA,EAAgBP,EAA0BM,EAAMJ,EAAAA,EAC7B/R,MAAM,CACvB,CADyB,MAClBkS,EAIX,IAAMO,EAAWX,EAASE,OAAO,CAACpV,EAAI,EAAE,CAGxC,OAAOsV,EAAME,GADGM,GADoBL,EAAAA,OAAOA,CAACE,OAAO,CAACE,GAClBV,EAAe,GAEnD,EACA,IAnFO,EAqFX,EA5GmCtX,GAFX,EAGxB,2GCCO,IAAMkY,EAA6BtZ,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAG7D,QAgBEiG,EAgBIsD,EAW2BgQ,EAGZA,MAnCjBhQ,EAEAiQ,KAbH,CAAEvZ,EAa6BgB,GAFfA,EAXT,CAAE,GACJ,UAAEb,CAAQ,YAAE6F,CAAU,eAAEkR,CAAa,CAAED,eAAa,CAAE,CAC1D5W,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAETG,EAA4B,CAAC,EAE7B8Y,EAAUnZ,EAASH,EAAMU,MAAM,CAAC8D,MAAM,EAiB5C,GAdAhE,EAAMoD,KAAK,CAAG5D,EAAMU,MAAM,CAACkD,KAAK,CAM5B0V,IACoC,KAD3B,GACXtT,EAAAA,EAAWsT,EAAQ5Y,MAAM,CAAC8Y,aAAY,GAAtCxT,KAAAA,IAAAA,GAAAA,EAAyC3B,OAAO,CAAC,WAC3CoV,EAAAA,KAAAA,EAAAA,EAAM/Y,MAAN+Y,CAAa9Y,KAAAA,EAAO,EACtB4Y,EAAQ,CAACA,EAAOE,EAAK/Y,MAAM,CAACC,KAAK,CAAC,CAACqJ,MAAM,CAACmO,SAASL,IAAI,CAAC,MAE5D,IAGEwB,EAAS,CACX9Y,EAAMmW,MAAM,CAAG,IACT2C,EAAQ5Y,MAAM,CAAC6W,SAAS,EAAI,EAAE,IAC9B+B,EAAQ5Y,MAAM,CAACgZ,iBAAiB,EAAI,EAAE,CAC3C,CACDlZ,EAAMgC,IAAI,CAAG0U,EArBOoC,GAuBfhQ,IAAYA,EAAa8N,CAAAA,EAAAA,EAAAA,EAAAA,CAAsBA,CAACkC,EAAAA,SAEjDhQ,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAY3F,EAAZ2F,GAAY3F,GAAZ2F,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmBuN,GAAAA,EAAK,EAC1BrW,EAAMsW,QAAQ,CAAG,CACf,GAAGxN,EAAW3F,KAAK,CACnB0T,MAAO,QACPC,OAAQ,OACV,GAGF,IAAIqC,EAAc1C,EAAcqC,EAE5B,EAACK,GACe3T,EAAAA,QAAWsT,EAAAA,EAAQ5Y,MAAAA,GAAR4Y,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgBM,UAAU,EAAEpR,IAAI,CAC3D,GAAgC,gBAAtBuH,EAAKrP,MAAM,CAACC,KAAK,GAEzBkZ,CAA2B,QAAdP,EAAAA,EAAQ5Y,MAAM,GAAd4Y,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgBQ,eAAAA,GAAiB,GAClC,wDAAuF,OAA/BR,EAAQ5Y,MAAM,CAACoZ,gBAAe,EAIpGH,IACFnZ,EAAMuZ,OADS,CACC,CACd7X,KAAMyX,EACNxX,SAAU,gBACZ,EAGEmX,EAAQ5Y,MAAM,CAACsZ,GAAG,EAAE,CACtBxZ,EAAMwZ,GAAG,CAAG,UAAC9Y,EAAAA,CAAwBA,CAAAA,CAACC,SAAUmY,EAAQ5Y,MAAM,CAACsZ,GAAG,GAEtE,CAEA,OAAOxZ,CACT,GAAG,+FC/DI,IAAMyZ,EAA0Bla,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAG1D,QAGIma,EAHH,OAAEla,CAAK,sBAAEC,CAAoB,CAAE,GAC1B,eAAEgX,CAAa,eAAEC,CAAa,UAAE/W,CAAQ,CAAE,CAAGE,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAUhE,GALE6Z,EADE5T,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAqB,gBAAiBtG,GACvCG,EAASH,EAAMU,CADgC,KAC1B,CAAC8D,MAAM,EAE5BxE,EAId,CAACsG,EAAAA,EAAAA,CAAAA,CAAaA,CAAc,SAAU4T,IACrC5T,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAoB,IAAlC,WAAkD4T,GAcpD,MAT4B,CAC1B1X,IALA,CAKM0U,EAAclX,GACpB6B,KAAMoV,EAAcjX,GACpBma,OAAQ/C,CAAAA,EAAAA,EAAAA,EAAAA,CAAsBA,CAACpX,GAC/BuB,eAAgB,CACdiB,KAAMvC,EAAqB,OAAED,EAAOwB,QAAS,WAAY,EAC3D,CACF,CAGF,GAAG,EC7B8BzB,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAGpD,QAkCAC,EAMIQ,EAvBFR,EAUAA,KA3BD,OAAEA,CAAK,sBAAEC,CAAoB,CAAE,GAC1B,2BAAEiW,CAAyB,CAAE,CAAG7V,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAE7CG,EAAqB,CACzBuP,KAAM,UACNqK,gBAAiBpa,EAAMU,MAAM,CAAC0Z,eAAe,CAC7C7Y,eAAgB,CACd6Y,gBAAiBna,EAAqB,OACpCD,EACAwB,QAAS,iBACX,EACF,CACF,EAIA,GAFAhB,EAAM6Z,OAAO,CAAG,EAAE,CAEd/T,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAmB,cAAetG,GAAQ,CAKzD,GAJoB,QAApBA,EAAAA,EAAMU,MAAM,CAAC2Z,OAAAA,GAAbra,KAAAA,OAAAA,EAAsBqE,OAAO,CAAEG,QAENhE,EADvB,IAAM8Z,EAAoBL,EAAwBzV,GAC9C8V,GAAAA,CAAAA,QAAmB9Z,EAAAA,EAAM6Z,EADoBJ,KACpBI,GAAN7Z,KAAAA,IAAAA,GAAAA,EAAeiE,IAAI,CAAC6V,EAAAA,CAC7C,GAC6B,IAAzB9Z,EAAM6Z,OAAO,CAAC3T,MAAM,EAAU1G,EAAMU,MAAM,CAAC6Z,uBAAuB,CAAE,CACtE,IAAMC,EAAmC,CACvChY,KAAMxC,EAAMU,MAAM,CAAC6Z,uBAAuB,EAE5C/Z,EAAM6Z,OAAO,CAAC5V,IAAI,CAAC+V,EACrB,CACiC,QAAjCxa,EAAAA,EAAMU,MAAM,CAAC+Z,oBAAAA,GAAbza,KAAAA,IAAAA,GAAAA,EAAmCqE,OAAO,CAAC,QAElB7D,EADvB,IAAM8Z,EAAoBL,EAAwBzM,GAC9C8M,GAAAA,CAAAA,QAAmB9Z,EAAAA,EAAM6Z,EADoBJ,KACpBI,GAAN7Z,KAAAA,IAAAA,GAAAA,EAAeiE,IAAI,CAAC6V,EAAAA,CAC7C,EACF,CAWA,OATA9Z,EAAMka,eAAe,CAAG,EAAE,CACC,QAA3B1a,EAAAA,EAAMU,MAAM,CAACia,cAAAA,GAAb3a,KAAAA,OAAAA,EAA6BqE,OAAO,CAAC,QAGZ7D,EAFvB,GAAI0V,EAA0B1R,GAAS,OACvC,IAAM8V,EAAoBL,EAAwBzV,GAC9C8V,GAAAA,CAAwC,QAArB9Z,EAAAA,EAAMka,EADoBT,aACpBS,GAANla,KAAAA,IAAAA,GAAAA,EAAuBiE,IAAI,CAAC6V,EAAAA,CACrD,GAEI9Z,CAAqB,QAArBA,EAAAA,EAAMka,eAAAA,GAANla,KAAAA,MAAAA,KAAAA,EAAAA,EAAuBkG,MAAAA,EAAS,IAAGlG,EAAMwV,SAAS,EAAG,GAElDxV,CACT,GAAG,+CCvDI,IAAMoa,EAAgC7a,CAAAA,EAAAA,SAAAA,CAAAA,CAAqBA,CAGhE,OAAC,OAAEC,CAAK,CAAE,GAKV,MAJgC,CAC9B6a,QAAS,UACTpa,UAAWT,EAAMU,MAAM,CAACD,SAAS,CAGrC,GAAG,gGCgBI,SAASqa,EAAgB,CAOT,KAPS,MAC9B5Y,CAAI,MACJ6Y,CAAI,OACJpa,CAAK,OACLqa,GAAQ,CAAK,WACbC,CAAS,gBACT1Z,CAAc,CACO,CAPS,SAQ9B,IAAc,GAAUyZ,CAAAA,EAEjBA,CAFyB,CAG9B,WAAChZ,SAAAA,CAAOkZ,UAAU,wBAAwBC,QAAS,IAAM9T,OAAO2T,KAAK,aACnE,UAACI,EAAAA,CAAIA,CAAAA,CAAC5Y,KAAMuY,EAAMG,UAAU,gCAC5B,UAACjJ,OAAAA,CAAKiJ,UAAU,sCAA8BD,GAAata,OAG7D,WAACiR,EAAAA,CAAIA,CAAAA,CACHrQ,eAAgBA,EAChB2Z,UAAU,wBACVhZ,KAAMA,YAEN,UAAC+P,OAAAA,CAAKiJ,UAAU,uCAA+BD,GAAata,IAE5D,UAACya,EAAAA,CAAIA,CAAAA,CAAC5Y,KAAMuY,EAAMG,UAAU,mCAfO,IAkBzC,CC3CO,SAAS9I,EAAiB,CAAgC,KAAhC,OAAEhQ,CAAK,CAAyB,CAAhC,QAC/B,CAAKA,GAASA,EAAMsE,MAAM,CAAG,EACpB,CADuB,IAK9B,UAAC2U,MAAAA,CAAIH,UAAU,kCACZ9Y,EAAMgB,GAAG,CAAC,CAACvB,EAAMyB,IAChB,UAACwX,EAAeA,CAAU,GAAGjZ,CAAI,EAAXyB,KAI9B,CAJwBwX,kMCZjB,IAAMQ,EAAoCvb,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAGpE,OAAC,OAAEC,CAAK,CAAE,GACJ,UAAEG,CAAQ,YAAE6F,CAAU,CAAE,CAAG3F,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GACxCG,EAA0B,CAC9B+a,WAAW,EACX3X,MAAO5D,EAAMU,MAAM,CAACkD,KAAK,EAGrB4X,EAAgBrb,EAASH,EAAMU,MAAM,CAAC8a,aAAa,EAEzD,GAAIA,EAAe,CACjBhb,EAAMG,KAAK,CAAG6a,EAAc9a,MAAM,CAACC,KAAK,CAExCH,EAAMS,QAAQ,CAAGua,EAAc9a,MAAM,CAAC+C,WAAW,EAC/C,UAACvC,EAAAA,CAAwBA,CAAAA,CAACC,SAAUqa,EAAc9a,MAAM,CAAC+C,WAAW,GAGtEjD,EAAM8I,UAAU,CAAGhI,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACka,EAAc9a,MAAM,CAAC+I,YAAY,EAE1E,IAAMgS,EAAgC,EAAE,CAExCzV,EAAWwV,EAAc9a,MAAM,CAACgb,eAAe,EAAErX,OAAO,CAAC,IACnD6E,EAAKxI,MAAM,CAACib,WAAW,EAAIzS,EAAKxI,MAAM,CAACyG,GAAG,EAAE,EACrC1C,IAAI,CAAC,CACZtC,SAAU+G,EAAKxI,MAAM,CAACib,WAAW,CACjCzZ,KAAMgH,EAAKxI,MAAM,CAACyG,GAAG,EAG3B,GAEA3G,EAAM6B,OAAO,CAAG,CAAEyH,MAAO2R,CAAS,CACpC,CAEA,OAAOjb,CACT,GAAG,uGC7BI,IAAMob,EAA0B7b,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAG1D,OAAC,OAAEC,CAAK,sBAAEC,CAAoB,CAAE,GAC1B,CAAEC,aAAW,MAAEE,CAAI,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAErCmM,EAAYjM,CAAAA,EAAAA,EAAAA,CAAAA,CAAYA,GACxB,CAACuM,EAAqBlB,EAAuB,CACjDpF,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,GACJ,CAACqG,EAAelB,EAAiB,CAAGnF,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,CAChD,EAAE,EAGEhG,EAA2B,CAC/BoD,MAAO5D,EAAMU,MAAM,CAACkD,KAAK,CACzBjD,MAAOX,EAAMU,MAAM,CAACC,KAAK,CACzB+R,YAAa1S,EAAMU,MAAM,CAACgS,WAAW,CACrCnR,eAAgB,CACdZ,MAAOV,EAAqB,OAAED,EAAOwB,QAAS,OAAQ,GACtDkR,YAAazS,EAAqB,OAAED,EAAOwB,QAAS,aAAc,EACpE,CACF,EAEA,GAAwC,gBAApCxB,EAAMU,MAAM,CAACmb,kBAAkB,CAAoB,KA6BjDrP,EAEEA,EACeA,MAJjBsP,EA3BJ,IAAMvJ,EAAiBC,CAAAA,EAAAA,EAAAA,EAAAA,CAAiBA,CAAChG,GACnCrF,EAAM4F,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC3M,EAAMJ,EAAMU,MAAM,CAACmb,kBAAkB,EAE1DpQ,EAAe,MAAOC,IAC1B,GAAI,CAACA,GAAQA,QAAeA,EAAKhF,MAAM,CAAG,EAAG,CAC3CiF,EAAiB,EAAE,EACnBC,EAAuB,CAAC,GACxB,MACF,CAEA,IAAMG,EAAQ,MAAMC,CAAAA,EAAAA,EAAAA,CAAAA,CAAOA,CAAC,CAC1B7E,IAAKA,EACL8E,OAAQ,MAAEP,CAAK,CACjB,GAEIQ,CAAAA,EAAAA,EAAAA,EAAAA,CAAaA,CAACH,KACZ,EADmB,OACTA,GACZJ,EAAiBI,CADC,CACII,IAAI,CAAC/I,GAAG,CAAEgJ,GAAQA,IAEtC,uBAAwBL,GAAQA,EAAKM,kBAAkB,EAAE,EACpCN,EAAKM,kBAAkB,EAKpD,EAGA,SAAIG,EAAAA,EAAUuP,WAAAA,GAAVvP,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAuBrF,GAAAA,EAAK,EAC9B2U,EAAiBtP,EAAUuP,WAAW,CAAC5U,GAAG,CACtCqF,CAAqB,QAArBA,EAAAA,EAAUuP,WAAAA,GAAVvP,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAuBrF,GAAG,CAACuB,OAAO,CAAC,aAAc,CAAC,GAAG,GACvDoT,QAAiBtP,EAAAA,EAAUuP,WAAAA,GAAVvP,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAuBrF,GAAG,CAAC6U,KAAK,CAAC,WAAW,CAAC,KAIlExb,EAAMiS,cAAc,CAAG,CACrBC,YAAa1S,EAAMU,MAAM,CAACgS,WAAW,CACrCG,oBAAqB7S,EAAMU,MAAM,CAACoS,yBAAyB,CAC3DjE,YAAa0D,EACb7D,WAAYxO,EAAYF,EAAMU,MAAM,CAACkS,iBAAiB,GAAKkJ,EAC3DhN,YAAa3K,CAAAA,EAAAA,EAAAA,CAAAA,CAAkBA,CAACnE,EAAMU,MAAM,CAACkS,iBAAiB,EAC9DnH,aAAc,IACPA,EAAaC,EACpB,gBACAmB,sBACAC,EACA1M,KAAMA,CACR,CACF,CAEA,OAAOI,CACT,GAAG,oEClFI,IAAMyb,EAA6Blc,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAG7D,KACA,GAAM,SAAEO,CAAO,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAYA,GAC1B,CAAEH,MAAI,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAExBG,EAA8B,CAClCG,MAAO,UACPC,YACEN,EAAQO,IAAI,CAACC,SAAS,CAAC,YAAOV,EAAAA,KAAAA,EAAAA,EAAMM,MAANN,CAAaW,IAAAA,GACzB,MAAjBT,EAAQO,IAAI,EAAYT,OAAAA,EAAAA,KAAAA,EAAAA,EAAMM,MAANN,CAAawM,MAAAA,IAAW,YAC7CxM,EAAAA,KAAAA,EAAAA,EAAMM,MAAM,CAACC,KAAK,MAClBK,EAEN8I,MAAO,EAAE,EAIL,MAAEiC,CAAI,OAAE5I,CAAK,CAAE,CAAGyM,CAAAA,EAAAA,EAAAA,CAAAA,CAAQA,CAAoB,CAClDzI,IAAK,0BACL8E,OAAQ,CAAC,CACX,GAEA,GAAI9I,EASF,KATS,EACT3C,EAAMG,KAAK,CAAG,WACdH,EAAMsJ,KAAK,CAAG,CACZ,CACEnJ,MAAO,QACP8E,MACE,qEACJ,EACD,CACMjF,EAGT,GAAKuL,CAAD,CAEG,IAFI,CAMSA,EAAAA,EACHA,EAAAA,EACCA,EAAAA,EAMLA,EAAAA,EAIAA,EAIGA,EAAsCA,EAA4CA,EAA2CA,EAAiDA,EAAAA,EAlB1LA,EAUSA,EAIAA,EAIGA,EAAkFA,EAA4FA,EAnB5L,IAAMmQ,EAC6C,QAAjDnQ,QAAAA,EAAAA,KAAAA,EAAAA,EAAMoQ,KAAK,CAAXpQ,MAAkB,CAAEqQ,GAASA,EAAKC,OAAO,EAAE3V,MAAM,GAAjDqF,KAAAA,MAAAA,EAAqD,EAEjDuQ,QAAYvQ,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAMwQ,kBAAAA,GAANxQ,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAA0ByQ,OAAAA,GAA1BzQ,KAAAA,MAAAA,KAAAA,EAAAA,EAAmCuQ,SAAS,CACxDG,QAAS1Q,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAMwQ,kBAAAA,GAANxQ,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAA0ByQ,OAAAA,GAA1BzQ,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmC0Q,MAAM,CAClDC,QAAU3Q,EAAAA,KAAAA,EAAwB,QAAxBA,EAAAA,EAAMwQ,kBAAAA,GAANxQ,KAAAA,MAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAA0ByQ,OAAAA,GAA1BzQ,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmC2Q,OAAO,GAEpD/b,KAAK,CAAG,iBAAmBoL,EAAKsD,WAAW,CACjD7O,EAAMsJ,KAAK,CAAG,CACZ,CACEnJ,MAAO,kBACP8E,MAAOsG,QAAAA,EAAAA,OAAAA,GAAAA,EAAK4Q,iBAAAA,GAAL5Q,KAAAA,IAAAA,EAAAA,KAAAA,EAAoC,QAApCA,EAAAA,EAAwByB,YAAAA,GAAxBzB,KAAAA,MAAAA,KAAAA,EAAAA,EAAsC6Q,gBAAAA,GAAtC7Q,KAAAA,IAAAA,EAAAA,EAA0D,KACnE,EACA,CACEpL,MAAO,eACP8E,MAAuC,QAAhCsG,EAAsB,QAAtBA,EAAAA,EAAK4Q,iBAAAA,GAAL5Q,KAAAA,MAAAA,KAAAA,EAAAA,EAAwB8Q,QAAAA,GAAxB9Q,KAAAA,IAAAA,EAAAA,EAAoC,KAC7C,EACA,CACEpL,MAAO,WACP8E,MAAO,GAAyCsG,MAAAA,CAAtCA,QAAAA,EAAAA,QAAAA,EAAAA,EAAK+Q,kBAAAA,GAAL/Q,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAyBgR,IAAI,GAA7BhR,KAAAA,IAAAA,EAAAA,EAAiC,IAAiDA,MAAAA,CAA5CA,CAAAA,QAAAA,EAAAA,EAAK+Q,kBAAAA,GAAL/Q,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAyBgR,IAAAA,EAAO,KAAO,IAAgDhR,MAAAA,CAAT,QAAlCA,EAAuB,QAAvBA,EAAAA,EAAK+Q,kBAAAA,GAAL/Q,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAyBiR,SAAAA,GAAzBjR,KAAAA,IAAAA,EAAAA,EAAsC,IAAsDA,MAAAA,CAAjDA,CAAuB,QAAvBA,EAAAA,EAAK+Q,kBAAAA,GAAL/Q,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAyBiR,SAAAA,EAAY,KAAO,IAAyD,OAApDjR,QAAAA,EAAuB,QAAvBA,EAAAA,EAAK+Q,kBAAkB,GAAvB/Q,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAyBkR,OAAO,GAAhClR,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAkCtI,WAAAA,GAAlCsI,KAAAA,IAAAA,EAAAA,EAAiD,GAC3O,EACA,CACEpL,MAAO,YACP8E,MACE,iCACGsG,EAAKmR,SAAS,CACZC,IAAI,CAAC,CAACC,EAAGC,IAAMD,EAAEE,SAAS,CAAGD,EAAEC,SAAS,EACxCtJ,KAAK,CAAC,EAAG,GACT5Q,GAAG,CAAC,CAACma,EAAU9U,IACd,UAACwJ,OAAAA,UAAkBsL,EAASC,IAAI,EAArB/U,IAEdsD,EAAKmR,SAAS,CAACxW,MAAM,CAAG,GACvB,iCACG,KAAK,OACDqF,EAAKmR,SAAS,CAACxW,MAAM,CAAG,EAAG,IAC/BqF,EAAKmR,SAAS,CAACxW,MAAM,CAAG,EAAI,SAAW,aAKlD,EACA,CACE/F,MAAO,QACP8E,MACE,iCACGsG,EAAKoQ,KAAK,CACRnS,MAAM,CAAC,GAAUoS,EAAKC,OAAO,EAC7BrI,KAAK,CAAC,EAAG,GACT5Q,GAAG,CAAC,CAACgZ,EAAM3T,IACV,UAACwJ,OAAAA,UAAkBmK,EAAKA,IAAI,CAACqB,eAAe,EAAjChV,IAEdyT,EAAqB,GACpB,iCACG,KAAK,OACDA,EAAqB,EAAG,IAC5BA,EAAqB,EAAI,SAAW,aAK/C,EACA,CACEvb,MAAO,kBACP8E,MAAO,GAAa6W,MAAAA,CAAVG,EAAO,KAAeC,MAAAA,CAAZJ,GAAkD,OAAtCI,EAAU,aAAeA,EAAU,GACrE,EACD,CAEDlc,EAAMkd,IAAI,CAAG,CACXC,WAAY5R,EAAK6R,sBAAsB,CACvC1b,KAAM,GACR,EACA1B,EAAM0D,GAAG,CAAG,CACVhC,KAAM,IACNC,SAAU,qBACZ,CACF,CAEA,OAAO3B,CACT,GAAG,EC9DkCT,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAIxD,OAAC,OAAEC,CAAK,CAAEuV,SAAO,CAAE,GACb,YAAEvP,CAAU,UAAE7F,CAAQ,CAAE,CAAGE,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GACxCmM,EAAYjM,CAAAA,EAAAA,EAAAA,CAAAA,CAAYA,GAG9B,GAAI+F,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAA0B,qBAAsBtG,GAAQ,KAC7CgG,EAA1B,IAAM6X,EAAAA,QAAoB7X,EAAAA,EAAWhG,EAAMU,MAAM,CAACod,QAAO,GAA/B9X,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAkCgE,MAAM,CAChE,IACE,GACE1D,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CACX,wBACAL,GAEF,CACA,IAAM8X,EAAoB/X,EAAWC,EAAOvF,MAAM,CAACsd,WAAW,EAE1DC,GAAmB,EAUvB,OAPAF,EAAkB1Z,OAAO,CAAC,QAEZmI,EADZ,IAAMqL,EAAOqG,EAAiBxd,MAAM,CAACyd,QAAQ,CACzCtG,GAAAA,CAAAA,QAAQrL,EAAAA,EAAUyC,OAAAA,GAAVzC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmB0C,IAAI,CAACkP,KAAK,CAACvY,QAAQ,CAACgS,EAAAA,IAAO,GACrC,EAEvB,GAEOoG,CACT,CACA,OAAO,CACT,GAEII,QAAwBR,EAAAA,KAAAA,EAAAA,EAAmBS,IAAI,CACnD,GACEhY,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CACX,GAHwBuX,qBAIxB5X,UAIN,OAAIoY,EAAAA,KAAAA,EAAAA,EAAuB3d,MAAM,CAACuF,MAAAA,EAAQ,EAEtC9F,EAASke,EAAsB3d,EAF/B2d,IAEqC,CAACpY,MAAM,EAC5CsP,GAIGgJ,EAA2BV,QAAAA,KAAAA,EAAAA,CAAmB,CAAC,EAAE,CAAEtI,EAC5D,CAEA,OAHoCsI,EAGF7d,EAAOuV,EAC3C,GAAG,SAEMgJ,EACPve,CAAuB,CACvBuV,CAA8B,QAE1BjP,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAA2B,sBAAuBtG,GAC1D,CACLwC,IAFuE,CAEjE,gBACNhC,MAAOge,CAAAA,EAAAA,EAAAA,CAAAA,CAA8BA,CAACxe,EACxC,EAGEsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAoB,eAAgBtG,GAC5C,CAAEwC,IADkD,CAC5C,gBAAiBhC,MAAO0U,CAAAA,EAAAA,EAAAA,CAAAA,CAAuBA,CAAClV,EAAO,EAGpEsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAA0B,qBAAsBtG,GACxD,CACLwC,IAFqE,CAE/D,cACNhC,MAAOoa,CAAAA,EAAAA,EAAAA,CAAAA,CAA6BA,CAAC5a,EACvC,EAIAsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAA8B,yBAA0BtG,GAE9D,CACLwC,IAFF,CAEQ,cACNhC,MAAO8a,EAAkCtb,EAC3C,EAGEsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAyB,mBAJEgV,CAImBtb,GACtD,CACLwC,IAFmE,CAE7D,cACNhC,MAAO8R,CAAAA,EAAAA,EAAAA,CAAAA,CAA4BA,CAACtS,EACtC,EAGEsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAkB,aAActG,GACxC,CAAEwC,IAD8C,CACxC,aAAchC,MAAOuW,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAAC/W,EAAO,EAG/DsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAqB,gBAAiBtG,GAC9C,CAAEwC,IADoD,CAC9C,gBAAiBhC,MAAOie,CAAAA,EAAAA,EAAAA,CAAAA,CAAwBA,CAACze,EAAO,EAGrEsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAmB,cAAetG,GAC1C,CAAEwC,IADgD,CAC1C,cAAehC,MAAOke,CAAAA,EAAAA,EAAAA,CAAAA,CAAsBA,CAAC1e,EAAO,EAGjEsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAwB,mBAAoBtG,GACpD,CACLwC,IAFiE,CAE3D,mBACNhC,MAAO4U,CAAAA,EAAAA,EAAAA,CAAAA,CAA2BA,CAACpV,EACrC,EAGEsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAuB,kBAAmBtG,GAClD,CAAEwC,IADwD,CAClD,cAAehC,MAAOme,CAAAA,EAAAA,EAAAA,CAAAA,CAA0BA,CAAC3e,EAAO,EAGrEsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAuB,kBAAmBtG,GAClD,CACLwC,IAF+D,CAEzD,kBACNhC,MAAO2S,CAAAA,EAAAA,EAAAA,CAAAA,CAA0BA,CAACnT,EACpC,EAGEsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAwB,mBAAoBtG,GACpD,CACLwC,IAFiE,CAE3D,mBACNhC,MAAOkE,CAAAA,EAAAA,EAAAA,CAAAA,CAA2BA,CAAC1E,EACrC,EAIAsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAA8B,yBAA0BtG,GAE9D,CACLwC,IAFF,CAEQ,yBACNhC,MAAOgX,CAAAA,EAAAA,EAAAA,CAAAA,CAAiCA,CAACxX,EAAOuV,EAClD,EAGEjP,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAoB,eAAgBtG,GAC5C,CAAEwC,IADkD,CAC5C,eAAgBhC,MAAOob,EAAwB5b,EAAO,EAGnEsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAwB,SAHsBsV,UAGF5b,GACpD,CACLwC,IAFiE,CAE3D,mBACNhC,MAAOV,CAAAA,EAAAA,EAAAA,CAAAA,CAA2BA,CAACE,EACrC,EAGEsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAA0B,qBAAsBtG,GACxD,CACLwC,IAFqE,CAE/D,qBACNhC,MAAO+C,CAAAA,EAAAA,EAAAA,CAAAA,CAA6BA,CAACvD,EACvC,EAGEsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAA4B,uBAAwBtG,GAC5D,CACLwC,IAFyE,CAEnE,qBACNhC,MAAOyV,CAAAA,EAAAA,EAAAA,CAAAA,CAA+BA,CAACjW,EACzC,EAGEsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAoB,eAAgBtG,GAC5C,CACLwC,IAFyD,CAEnD,eACNhC,MAAO6U,CAAAA,EAAAA,EAAAA,CAAAA,CAAuBA,CAACrV,EACjC,EAGEsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAuB,kBAAmBtG,GAClD,CACLwC,IAF+D,CAEzD,gBACNhC,MAAO6Y,CAAAA,EAAAA,EAAAA,CAAAA,CAA0BA,CAACrZ,EACpC,EAGEsG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAuB,kBAAmBtG,GAClD,CACLwC,IAF+D,CAEzD,kBACNhC,MAAOyb,EAA2Bjc,EACpC,QAIJ,cALuCic,6FC7OhC,IAAM/H,EAA0BnU,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAG1D,QAKSC,EAILA,EAA6BA,EAA7BA,KATH,OAAEA,CAAK,sBAAEC,CAAoB,CAAE,GAC1B,UAAEE,CAAQ,aAAED,CAAW,CAAE,CAAGG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAEzCG,EAA2B,CAC/BuP,KAAM,UACNpP,KAAK,CAAc,QAAZX,EAAAA,EAAMU,MAAAA,GAANV,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAcW,KAAK,CAC1BkB,KAAM3B,EAAYF,GAClB8V,OAAQC,CAAAA,EAAAA,EAAAA,CAAAA,CAAiBA,CAAC/V,GAC1B4e,MAAOpV,CAAAA,EAAAA,EAAAA,CAAAA,CAAgBA,CACrBxJ,QAAAA,EAAAA,QAAAA,EAAAA,EAAMU,MAAAA,GAANV,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAcyD,WAAAA,GAAdzD,KAAAA,IAAAA,EAAAA,EAAAA,QAA6BA,EAAAA,EAAMU,MAAAA,GAANV,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAcmJ,gBAAgB,EAG7D5H,eAAgB,CACdZ,MAAOV,EAAqB,CAAED,QAAOwB,QAAS,OAAQ,EACxD,CACF,EAEM8H,EAAahI,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CACtCtB,EAAMU,MAAM,CAAC0I,UAAU,EAAIpJ,EAAMU,MAAM,CAAC2I,SAAS,SAG/CC,EAAAA,KAAAA,EAAAA,EAAY3F,KAAAA,EAAO,EACrB2F,EAAW3F,CADT2F,IACc,CAAC+N,KAAK,CAAG,QACzB/N,EAAW3F,KAAK,CAAC2T,MAAM,CAAG,SAG5B9W,EAAMmD,KAAK,OAAG2F,EAAAA,KAAAA,EAAAA,EAAY3F,KAAK,CAC/BnD,EAAMqe,IADQvV,CACH,OAAGA,EAAAA,KAAAA,EAAAA,EAAYuV,KAAK,CAC/Bre,EAAMse,IADQxV,GACD,OAAGA,EAAAA,KAAAA,EAAAA,EAAYwV,OAAO,CAC/Bte,EAAMse,EADMxV,KACC,EAAE,CACjB9I,EAAMse,OAAO,CAACC,SAAS,EAAG,GAG5B,IAAMC,EAAgB7e,EAASH,EAAMU,MAAM,CAACiB,QAAQ,EASpD,aAPIqd,EAAAA,KAAAA,EAAAA,EAAete,MAAM,CAACkB,IAAAA,GAAQod,CAA9BA,CAA4Cte,MAAM,CAACyG,GAAG,EAAE,CAC1D3G,EAAMmB,QAAQ,CAAG,CACf2J,MAAO0T,EAActe,MAAM,CAACkB,IAAI,CAChCC,KAAM3B,EAAY8e,GACpB,EAGKxe,CACT,GAAG,2GCrCI,SAASye,EAAqB,CAKT,KALS,CACnCte,OAAK,aACL8C,CAAW,MACXvB,CAAI,gBACJX,CAAc,CACY,CALS,SAMnC,GAAeW,EAGb,IAHY,CAGZ,KAACmZ,MAAAA,CAAI6D,aAAW,UAAUhE,UAAU,wCAClC,WAACG,MAAAA,CAAIH,UAAU,4CACb,UAACjJ,OAAAA,UACK1Q,EAAAA,KAAAA,EAAAA,EAAgBZ,KAAK,CACzBua,UAAU,qDAEV,UAACtJ,EAAAA,CAAIA,CAAAA,CAAC1P,KAAMA,EAAMX,cAAc,OAAEA,EAAAA,KAAAA,EAAAA,EAAgB4F,GAAG,UAClDxG,GAD+BY,GAKpC,WAAC8Z,MAAAA,UACK9Z,EAAAA,KAAAA,EAAAA,EAAgBkC,WAAW,CAC/ByX,IADI3Z,MACM,gDAETkC,EACD,UAAC2X,EAAAA,CAAIA,CAAAA,CAAC5Y,KAAK,QAAQ0Y,UAAU,yCAnBT,IAwB9B,CC9BO,SAASiE,EAAgB,CAIT,KAJS,OAC9Bxe,CAAK,OACLmJ,CAAK,gBACLvI,CAAc,CACO,CAJS,EAK9B,MACE,WAAC8Z,MAAAA,CAAIH,UAAU,6BACZva,GACC,UAAC6Q,IAAAA,UAAMjQ,EAAAA,KAAAA,EAAAA,EAAgBZ,KAAK,CAAEua,UAAvB3Z,mCACJZ,UAIJmJ,EAAAA,KAAAA,EAAAA,EAAO1G,GAAG,CAAC,GAA+BE,QAA9B,gBAAE/B,CAAc,UAAEY,CAAQ,CAAE,SACvC,oBAACkZ,MAAAA,CAAK,GAAG9Z,CAAc,CAAE2Z,UAAU,wBAAwB1T,IAAKlE,GAC7DnB,OAKX,CCdO,SAASid,EAAW,CAOT,KAPS,CACzBhO,cAAY,kBACZC,CAAgB,kBAChBgB,CAAgB,mBAChBlB,CAAiB,UACjBjE,CAAQ,WACRgE,CAAS,CACO,CAPS,EAQpBpO,MAAMC,OAAO,CAACqO,KAAeA,EAAe,IAC5CtO,MAAMC,OAAO,CAACsO,IAAmBA,GAAmB,IAEzD,IAAMgO,EAAiBlO,GAAqBkB,EAU5C,MACE,WAACiN,SAAAA,CACCpE,UAAU,qBACVqE,cAZe,CAYFC,iBAZ2D,OAAvCH,EAAiB,iBAAmB,IAarExH,KAAK,wBAGJwH,GAAkB,UAACJ,EAAoBA,CAAE,GAAG5M,CAAgB,GAG7D,UAACgJ,MAAAA,CAAIH,UAAU,sBAAsBgE,aAAW,gBAC9C,WAAC7D,MAAAA,CAAIH,UAAU,wCACb,UAACG,MAAAA,CAAIH,UAAU,4BACb,UAACG,MAAAA,CAAIH,UAAU,qCACb,UAACtJ,EAAAA,CAAIA,CAAAA,CAAC1P,KAlBH,CAkBSud,YAlBtBvS,EACI,oCACA,+BAJS,CAoBsBwS,YApBnCxS,EAA0B,QAAU,gCAwB7BkE,EAAahO,GAAG,CAAC,CAACuc,EAAOrc,IACxB,oBAAC6b,EAAeA,CAAE,GAAGQ,CAAK,CAAEnY,IAAKlE,GAAjB6b,OAMtB,UAAC9D,MAAAA,CAAIH,UAAU,oBAAoBgE,aAAW,gBAC5C,WAAC7D,MAAAA,CAAIH,UAAU,sCACb,UAAC1J,IAAAA,CAAE0J,UAAU,kCAAyB,gDAItC,UAACG,MAAAA,CAAIH,UAAU,iCACZ7J,EAAiBjO,GAAG,CAAC,CAACvB,EAAMyB,IAC3B,UAACsO,EAAAA,CAAIA,CAAAA,CAASsJ,UAAU,wBAAyB,GAAGrZ,CAAI,EAA7CyB,MAIA,QAAd4N,GACC,UAACmK,MAAAA,CAAIH,UAAU,4CAAmC,uLAU9D,eC1FO,IAAM0E,EAAuB,EAAE,CAAC,SCqBvBC,EAAW,CAMd,KANc,UACzB1d,CAAQ,QACRmd,CAAM,QACN/T,CAAM,cACNuU,CAAY,CACZ,GAAGtf,EACQ,CANc,EAazB,MANA0G,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,KACJ4Y,UACFF,GAAAA,CADgB,CACLnb,IAAI,CAACqb,EAAPF,CAEb,EAAG,CAACE,EAAa,EAGf,EALEF,CAKF,QALWA,MAKVvE,CAAK,GAAG7a,CAAK,WACZ,WAAC6a,MAAAA,WACE9P,GAAU,UAAChJ,EAAAA,CAAaA,CAAAA,CAAE,GAAGgJ,CAAM,GACnCpJ,KAGFmd,GAAU,UAACF,EAAUA,CAAE,GAAGE,CAAM,GAAXF,EAG5B,oEC3CO,IAAMlT,EAAiBH,IAC5B,GAAI,iBAAOA,EAAmB,CAC5B,GAAI,SAAUA,EACZ,IADkB,EACX,CAAC,CAACA,EAAKI,IAAI,CAEpB,GAAI,uBAAwBJ,EAAM,KAC5BA,EAAJ,WAAIA,EAAAA,EAAKM,kBAAAA,GAALN,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAyBgU,WAAW,CACtC,CADwC,MACjC,CAEX,CACF,CACA,OAAO,CACT,EAAE,EAE+B,GAC3BvT,WAAwC,GAA9BlM,IAAqC,GAA9B,CAACsM,MAAM,CAIjBG,EAAiB,CAAC3M,EAAkB4f,IAC/C,OAAI5f,EAAAA,KAAAA,EAAAA,EAAMM,MAANN,CAAaO,KAAAA,IAAU,gBAClB,CADmC,yBAG1CP,OAAAA,EAAAA,KAAAA,EAAAA,EAAMM,MAAM,CAACkM,MAAAA,IAAW,WACP,eACjB,CADAoT,EAEO,mCAEF,mGC5BF,IAAMpc,EAAQ,CACnBqc,MAAO,UACPC,MAAO,UACPC,KAAM,UACNC,MAAO,UACPC,QAAS,UACTC,IAAK,UACLC,OAAQ,UACRC,KAAM,SACR,EAAW,EAEiB7Z,OAAOY,OAAO,CAAC3D,GAAOR,GAAG,CAAC,OAAC,CAACoE,EAAI,UAAKA,IAO/BiZ,OAHAlZ,OAAO,CAAC3D,GAAOoG,MAAM,CACrD,OAAC,CAACxC,EAAI,SAAK,CAAC,CAAC,SAAU,OAAO,CAAC3B,QAAQ,CAAC2B,KAEIpE,GAAG,CAAC,OAAC,CAACoE,EAAI,UAAKA,IAAK,IAIrDwB,EAA0B,QAa1B0X,EAAkB,CAC7BL,QAASzc,EAAMyc,OAAO,CACtBM,KAAM/c,EAAM0c,GAAG,CACfM,KAAM,UACNC,KAAM,UACNC,QAAS,UACTC,QAAS,UACTC,QAAS,UACTC,QAAS,UACTC,QAAS,UACTC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPC,MAAO/d,EAAM4c,IAAI,CACjBoB,QAAS,UACTC,QAAS,UACTC,QAAS,UACTC,QAAS,UACTC,SAAU,UACVC,SAAU,UACVC,SAAU,UACVC,SAAU,UACV/B,MAAOxc,EAAMwc,KAAK,CAClBD,KAAMvc,EAAMuc,IAAI,CAChBiC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPpC,MAAOtc,EAAMsc,KAAK,CAClBD,MAAOrc,EAAMqc,KACf,EAAW,EAGgD,CACzD,UACA,OACA,UACA,SACA,QACA,QACA,UACA,UACA,WACA,WACA,QACA,OACA,QACD,CAE+BtZ,OAAOY,OAAO,CAACmZ,GAAiBtd,GAAG,CACjE,OAAC,CAACoE,EAAI,UAAKA,IACX,IAEW0G,EAAsB,GACjCzN,GAAa8hB,EAAoB1c,QAAQ,CAACpF,GAAa,OAAS,QAAQ,EAElC,GAGlCA,QAAsB,GAAO,MACf,SAAS,CAAvBA,EAA8B,OAC9BA,GAAa+hB,EAAa3c,QAAQ,CAACpF,GAC9BA,EAEFA,GAAa8hB,EAAoB1c,EAHW,MAGH,CAACpF,GAC7C,aACA,cAciCkG,OAAOgB,IAAI,CARlB,CAC9BsY,MAAOrc,EAAMqc,KAAK,CAClBC,GAMmE,GAN5Dtc,EAAMsc,KAAK,CAClBC,KAAMvc,EAAMuc,IAAI,CAChBC,MAAOxc,EAAMwc,KAAK,CAClBC,QAASzc,EAAMyc,OAAO,EACb,gIC/GJ,IAAM3B,EAAyB3e,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAGzD,QAgCAC,KAhCC,OAAEA,CAAK,sBAAEC,CAAoB,CAAE,GAC1B,SAAEK,CAAO,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAYA,GAC1B,MAAEH,CAAI,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAExBG,EAA0B,CAC9BiiB,OAAQ,EAAE,CACV9hB,MAAOX,EAAMU,MAAM,CAACC,KAAK,CACzBC,YACEN,EAAQO,IAAI,CAACC,SAAS,CAAC,YAAOV,EAAAA,KAAAA,EAAAA,EAAMM,MAANN,CAAaW,IAAAA,GACzB,MAAjBT,EAAQO,IAAI,EAAYT,OAAAA,EAAAA,KAAAA,EAAAA,EAAMM,MAANN,CAAawM,MAAAA,IAAW,YAC7CxM,EAAAA,KAAAA,EAAAA,EAAMM,MAAM,CAACC,KAAK,MAClBK,EACN4C,MAAO5D,EAAMU,MAAM,CAACkD,KAAK,CACzB8e,WAAY1iB,EAAMU,MAAM,CAACgiB,UAAU,CACnCnhB,eAAgB,CACdZ,MAAOV,EAAqB,OAAED,EAAOwB,QAAS,OAAQ,GACtDP,SAAUhB,EAAqB,OAAED,EAAOwB,QAAS,UAAW,EAC9D,CACF,EAEM0C,EAAMC,CAAAA,EAAAA,EAAAA,CAAAA,CAAkBA,CAACnE,EAAMU,MAAM,CAACuB,SAAS,EAiBrD,OAhBIiC,IACF1D,CADO,CACD0D,GAAG,CAAGA,EACZ1D,EAAM0D,GAAG,CAAC6L,IAAI,CAAG,kBAGf/P,EAAMU,MAAM,CAACO,QAAQ,EAAE,CACzBT,EAAMS,QAAQ,CACZ,UAACC,EAAAA,CAAwBA,CAAAA,CAACC,SAAUnB,EAAMU,MAAM,CAACO,QAAQ,IAI3C,QAAlBjB,EAAAA,EAAMU,MAAM,CAACW,KAAAA,GAAbrB,KAAAA,IAAAA,GAAAA,EAAoBqE,OAAO,CAAC,IAC1B,IAAMse,EAAarhB,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACD,GACrCshB,GAAYniB,EAAMiiB,MAAM,CAAChe,IAAI,CAACke,EACpC,GAEOniB,CACT,GAAG,8DCxCI,SAASkU,EAAsB3I,CAAgB,QACpD,CAAI6W,EAAAA,EAAAA,CAAAA,CAAeA,CAAkB,SAAU7W,GACtC8W,IAD6C,KAQxCA,CACQ,EAEtB,GAAI9W,GAAwB,UAAhB,OAAOA,EAAmB,CACpC,IAAMvL,EAAwB,CAAC,EAI/B,GAFIuL,EAAKpL,KAAK,GAAEH,EAAMG,KAAK,CAAGoL,EAAKpL,KAAAA,EAC/BoL,EAAKtI,WAAW,GAAEjD,EAAMmE,UAAU,CAAGoH,EAAKtI,WAAAA,EAC1Cmf,CAAAA,EAAAA,EAAAA,CAAAA,CAAeA,CAAgB,SAAU7W,GAAO,KAC9CA,EAAAA,EAIAA,EAeAA,EAfJ,GAJA,CAAgB,QAAZA,EAAAA,EAAKuK,OAAO,GAAZvK,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAc6K,SAAAA,GAAd7K,KAAAA,MAAAA,KAAAA,EAAAA,EAAyB8K,GAAG,EAAE,EAChCrW,EAAMa,KAAK,CAAG,CAAEsC,MAAO,CAAEkT,IAAK9K,EAAKuK,OAAO,CAACM,SAAS,CAACC,GAAI,EAAE,EAG7D,QAAI9K,EAAAA,EAAKuK,OAAAA,GAALvK,KAAAA,MAAAA,KAAAA,EAAAA,EAAc+J,MAAM,CAAE,CACxB,IAAMA,EAA8B,EAAE,CAEtC/J,EAAKuK,OAAO,CAACR,MAAM,CAACzR,OAAO,CAAC,IACtBye,EAAOxX,KAAK,EAAE,EACT7G,IAAI,CAAC,CAAEjC,KAAMsgB,EAAOxX,KAAK,CAAEzJ,KAAMihB,EAAOjhB,IAAI,EAEvD,GAEArB,EAAMsV,MAAM,CAAG,CACbsE,gBAAiBrO,EAAKuK,OAAO,CAACyM,IAAI,CAClC1I,QAASvE,CACX,CACF,CAEA,SAAI/J,EAAAA,EAAKuK,OAAAA,GAALvK,KAAAA,MAAAA,KAAAA,EAAAA,EAAcpK,QAAAA,EAAU,EAC1BnB,EAAMmB,QAAQ,CAAG,CACf2J,MAAOS,EAAKuK,OAAO,CAAC3U,QAAQ,CAAC2J,KAAK,CAClCzJ,KAAMkK,EAAKuK,OAAO,CAAC3U,QAAQ,CAACE,IAAI,CAClC,CAEJ,CAKA,OAHIkK,EAAK5E,GAAG,EAAE,CACZ3G,EAAMqB,IAAI,CAAGkK,EAAK5E,GAAAA,EAEb3G,CACT,CACF,EAhDuCuL,GAEjC6W,CAAAA,EAAAA,EAAAA,CAAAA,CAAeA,CAAkB,SAAU7W,GAgD1C,IAhDiD,KAgDxCiX,CACQ,EAEtB,GAAIjX,GAAwB,UAAhB,OAAOA,EAAmB,CACpC,IAAMvL,EAAwB,CAAC,EAK/B,GAHIuL,EAAKkX,QAAQ,EAAEziB,GAAMG,KAAK,CAAGoL,EAAKkX,QAAAA,EAClClX,EAAKmX,cAAc,GAAE1iB,EAAMmE,UAAU,CAAGoH,EAAKmX,cAAc,EAC3DnX,EAAKoX,YAAY,GAAE3iB,EAAMa,KAAK,CAAG,CAAEsC,MAAO,CAAEkT,IAAK9K,EAAKoX,YAAY,EAAG,EACrEpX,EAAKqX,SAAS,CAAE,CAClB,IAAI/I,EAAUtO,EAAKqX,SAAS,CAExB/I,EAAQgJ,UAAU,CAAC,QAAQhJ,GAAUA,EAAQvZ,SAAS,CAAC,IACvDuZ,EAAQgJ,UAAU,CAAC,UAAShJ,EAAUA,EAAQvZ,SAAS,CAAC,IACxDuZ,EAAQgJ,UAAU,CAAC,UAAShJ,EAAUA,EAAQvZ,SAAS,CAAC,IAE5DN,EAAMsV,MAAM,CAAG,CACbsE,gBAAiBrO,EAAKuX,UAAU,CAChCjJ,QAAS,CAAC,CAAE7X,KAAM6X,CAAQ,EAAE,CAEhC,CASA,OAPItO,EAAKwX,OAAO,EAAE,CAChB/iB,EAAMqB,IAAI,CAAGkK,EAAKwX,OAAO,CAErBxX,EAAKyX,SAAS,EAAE,CAClBhjB,EAAMmB,QAAQ,CAAG,CAAE2J,MAAOS,EAAKyX,SAAS,CAAE3hB,KAAMkK,EAAKwX,OAAO,CAAC,GAG1D/iB,CACT,CACF,EA9EuCuL,SAEvC,gICVO,IAAM0X,EAAyC1jB,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAGzE,OAAC,OAAEC,CAAK,sBAAEC,CAAoB,CAAE,GAC1B,aAAEC,CAAW,CAAE,CAAGG,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAE/BgB,EAAQC,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACtB,EAAMU,MAAM,CAACW,KAAK,EAEtD,GAAIA,EAAO,KAKKrB,EAJd,MAAO,OACLqB,EACA6C,IAAK,CACHtC,KAAM,UAACV,EAAAA,CAAwBA,CAAAA,CAACC,SAAUnB,EAAMU,MAAM,CAAC+C,WAAW,GAClEigB,QAAQ,SAAE1jB,EAAAA,EAAMU,MAAAA,GAANV,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAcW,KAAK,CAC7BgjB,QAASzjB,EAAYF,EAAMU,MAAM,CAACmB,IAAI,EAEtCN,eAAgB,CACd4F,IAAKlH,EAAqB,CACxBD,MAAOA,EAAMU,MAAM,CAACmB,IAAI,CACxBL,QAAS,KACX,GACAI,KAAM3B,EAAqB,CAAED,QAAOwB,QAAS,aAAc,GAC3DkiB,SAAUzjB,EAAqB,OAAED,EAAOwB,QAAS,OAAQ,EAC3D,CACF,CACF,CACF,CACF,GAAG,ECjBqCzB,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAG3D,OAAC,OAAEC,CAAK,CAAEC,sBAAoB,CAAE,GAC1B,UAAEE,CAAQ,CAAE,CAAGE,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAE5BujB,EAAetiB,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACtB,EAAMU,MAAM,CAACW,KAAK,EAE7D,GAAI,CAACuiB,EAAc,OAEnB,IAAMC,EAAsC,EAAE,CAgC9C,OA9BI7jB,EAAMU,MAAM,CAACkB,IAAI,EAAIkB,MAAMC,OAAO,CAAC/C,EAAMU,MAAM,CAACkB,IAAI,CAAC8W,OAAO,GAAG,EAC3DhY,MAAM,CAACkB,IAAI,CAAC8W,OAAO,CAACrU,OAAO,CAAC,KAC5BmN,QAAAA,KAAAA,CAAAA,CAAAA,EAAGsS,QAAQ,IAAKC,EAAAA,MAAMA,CAACC,SAAS,EAAE,EAClCtL,OAAO,CAACrU,OAAO,CAAC,IAChB,IAAM4f,EAA8B,CAAEriB,KAAM,EAAG,EAM/C,GAJsB,SAAlBsH,EAAK4a,QAAQ,EAAe5a,EAAKzD,KAAK,EAAE,CAC1Cwe,EAAKriB,IAAI,CAAGsH,EAAKzD,KAAAA,EAGfyD,EAAK4a,QAAQ,GAAKI,EAAAA,OAAOA,CAACC,eAAe,CAAE,KACzCjb,EAIoBA,EAJpBA,CAAAA,QAAAA,EAAAA,EAAKwP,OAAO,CAAC,KAAbxP,KAAAA,MAAAA,KAAAA,EAAAA,EAAiB4a,QAAAA,IAAa,QAAQ,CACxCG,EAAKriB,IAAI,CAAGsH,EAAKwP,OAAO,CAAC,EAAE,CAACjT,KAAK,EAGnC,IAAMmQ,EAASzV,EAAAA,QAAS+I,EAAAA,EAAK6C,IAAAA,GAAL7C,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAW0M,MAAM,EAGvCtP,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAyB,oBAAqBsP,KAE3DqO,EAAKzH,EADL,KACY,CAAGiH,EAAuC7N,EAAAA,CAE1D,CAEIqO,EAAKriB,IAAI,EAAEiiB,EAAMpf,IAAI,CAACwf,EAC5B,EAEJ,GAGK,OACLJ,GAX+DJ,YAY/DG,EACAriB,eAAgB,CACdK,KAAM3B,EAAqB,OAAED,EAAOwB,QAAS,MAAO,GACpDoiB,aAAc3jB,EAAqB,CACjCD,MAAOA,EAAMU,MAAM,CAACW,KAAK,CACzBG,QAAS,OACX,EACF,CACF,CACF,GAAG,0IC5DI,IAAMmd,EAA6B5e,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAG7D,OAAC,CAAEC,OAAK,sBAAEC,CAAoB,CAAE,GAC1B,SAAEK,CAAO,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAYA,GAC1B,MAAEH,CAAI,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,GAE9B,MAAO,CACLuD,MAAO5D,EAAMU,MAAM,CAACkD,KAAK,CACzBjD,MAAOX,EAAMU,MAAM,CAACC,KAAK,CACzBC,YACEN,EAAQO,IAAI,CAACC,SAAS,CAAC,YAAOV,EAAAA,KAAAA,EAAAA,EAAMM,MAANN,CAAaW,IAAAA,EACvCX,EAAKM,MAAM,CAACC,KAAK,MACjBK,EACNC,SAAUjB,EAAMU,MAAM,CAACO,QAAQ,EAC7B,UAACC,EAAAA,CAAwBA,CAAAA,CAACC,SAAUnB,EAAMU,MAAM,CAACO,QAAQ,GAE3DqI,WAAYhI,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACtB,EAAMU,MAAM,CAACW,KAAK,EACpDgB,QAASC,CAAAA,EAAAA,EAAAA,CAAAA,CAAkBA,CAACtC,EAAMU,MAAM,CAAC0B,KAAK,EAC9CH,UAAWkC,CAAAA,EAAAA,EAAAA,CAAAA,CAAkBA,CAACnE,EAAMU,MAAM,CAACuB,SAAS,EAEpDV,eAAgB,CACdZ,MAAOV,EAAqB,OAAED,EAAOwB,QAAS,OAAQ,GACtDP,SAAUhB,EAAqB,OAAED,EAAOwB,QAAS,UAAW,EAC9D,CACF,CACF,GAAG,6BCpCI,SAASyI,EACdxE,CAAwC,EAExC,OAAO0S,CAAQ1S,CACjB,qGCCO,IAAMT,EAAuBjF,CAAAA,EAAAA,EAAAA,CAAAA,CAAqBA,CAGvD,OAAC,OAAEC,CAAK,sBAAEC,CAAoB,CAAE,GAiBhC,MAhB8B,CAC5BmkB,OAAQpkB,EAAMU,MAAM,CAAC+E,KAAK,CAC1BgU,KAAMzZ,EAAMU,MAAM,CAAC2jB,MAAM,CACzBC,aAActkB,EAAMU,MAAM,CAACuH,MAAM,CACjCxE,YACE,UAACvC,EAAAA,CAAwBA,CAAAA,CACvBC,SAAUnB,EAAMU,MAAM,CAACC,KAAK,CAC5BiE,iBAAiB,MAIrBrD,eAAgB,CACdkE,MAAOxF,EAAqB,OAAED,EAAOwB,QAAS,OAAQ,GACtDiC,YAAaxD,EAAqB,OAAED,EAAOwB,QAAS,OAAQ,EAC9D,CACF,CAEF,GAAG,+CCtBI,IAAMgd,EAAiCze,CAAAA,EAAAA,SAAAA,CAAAA,CAAqBA,CAGjE,OAAC,OAAEC,CAAK,CAAE,GAKV,MAJkC,CAChC4D,MAAO5D,EAAMU,MAAM,CAACkD,KAAK,CAI7B,GAAG","sources":["webpack://_N_E/./src/contentful/components/toppers/large-asset-topper.props.tsx","webpack://_N_E/../design-system/src/components/system/lazy-component/lazy-component.tsx","webpack://_N_E/./src/contentful/components/toppers/featured-term-topper.props.tsx","webpack://_N_E/./src/contentful/components/toppers/statistics-topper.props.tsx","webpack://_N_E/./src/hooks/use-search-dropdowns.tsx","webpack://_N_E/./src/contentful/components/universal/navigation-item.props.ts","webpack://_N_E/./src/contentful/components/utils/get-site-header-theme.ts","webpack://_N_E/./src/contentful/components/universal/expanded-menu-item.props.tsx","webpack://_N_E/./src/contentful/components/universal/global-menu-nav-item.props.tsx","webpack://_N_E/./src/contentful/components/universal/site-header.props.tsx","webpack://_N_E/./src/contentful/components/universal/site-footer.props.tsx","webpack://_N_E/./src/contentful/components/toppers/split-search-topper.props.tsx","webpack://_N_E/./src/contentful/components/toppers/editorial-topper.props.tsx","webpack://_N_E/./src/contentful/components/toppers/big-art-topper.props.tsx","webpack://_N_E/./src/contentful/components/toppers/simple-page-topper.props.tsx","webpack://_N_E/./src/contentful/components/toppers/select-topper.props.tsx","webpack://_N_E/../design-system/src/components/universal/site-footer/site-footer.scss?c634","webpack://_N_E/./src/contentful/components/blocks/teases/hero-tease.props.tsx","webpack://_N_E/./src/contentful/components/toppers/wk-featured-term-topper.props.tsx","webpack://_N_E/./src/contentful/components/toppers/card-topper.props.tsx","webpack://_N_E/../design-system/src/components/primitives/social-media-links/social-media-links.scss?1499","webpack://_N_E/./src/contentful/components/utils/featured-faculty-props.tsx","webpack://_N_E/./src/contentful/components/toppers/participant-story-topper.props.tsx","webpack://_N_E/./src/contentful/lib/document-to-string.ts","webpack://_N_E/./src/contentful/components/toppers/wk-profile-topper.props.tsx","webpack://_N_E/./src/contentful/components/primitives/byline-author.props.tsx","webpack://_N_E/./src/contentful/components/primitives/byline.props.tsx","webpack://_N_E/./src/contentful/components/toppers/split-article-topper.props.tsx","webpack://_N_E/../design-system/src/components/primitives/social-media-links/social-media-icon.tsx","webpack://_N_E/../design-system/src/components/primitives/social-media-links/social-media-links.tsx","webpack://_N_E/./src/contentful/components/toppers/split-page-topper-podcast.props.tsx","webpack://_N_E/./src/contentful/components/toppers/search-topper.props.tsx","webpack://_N_E/./src/contentful/components/toppers/dashboard-topper.props.tsx","webpack://_N_E/./src/contentful/components/toppers/lazy-topper.props.tsx","webpack://_N_E/./src/contentful/components/blocks/teases/article-tease.props.tsx","webpack://_N_E/../design-system/src/components/universal/site-footer/site-footer-primary-cta.tsx","webpack://_N_E/../design-system/src/components/universal/site-footer/site-footer-block.tsx","webpack://_N_E/../design-system/src/components/universal/site-footer/site-footer.tsx","webpack://_N_E/../design-system/src/utils/data-layer.ts","webpack://_N_E/../design-system/src/components/layouts/base.tsx","webpack://_N_E/./src/contentful/components/utils/get-page-search-props.tsx","webpack://_N_E/../design-system/src/utils/theme.ts","webpack://_N_E/./src/contentful/components/toppers/media-topper.props.tsx","webpack://_N_E/./src/contentful/search/search-hero-tease.ts","webpack://_N_E/./src/contentful/components/toppers/mission-topper/mission-topper-text-part-details.props.tsx","webpack://_N_E/./src/contentful/components/toppers/mission-topper/mission-topper.props.tsx","webpack://_N_E/./src/contentful/components/toppers/split-page-topper.props.tsx","webpack://_N_E/../design-system/src/utils/filter-undefined.ts","webpack://_N_E/./src/contentful/components/semantics/statistic.props.tsx","webpack://_N_E/./src/contentful/components/toppers/simple-article-topper.props.tsx"],"sourcesContent":["import { LargeAssetTopperProps } from \"design-system/components/toppers/large-asset-topper/large-asset-topper\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { LargeAssetTopperEntry } from \"frontend/contentful/schema/toppers\";\nimport { RenderContentfulRichText } from \"../utils/render-contentful-rich-text\";\nimport { createMediaAssetProps } from \"../primitives/media-asset.props\";\nimport { createCtaListProps } from \"../primitives/cta-list.props\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\nimport { usePageProps } from \"frontend/hooks/use-page-props\";\n\nexport const createLargeAssetTopperProps = createContentfulProps<\n LargeAssetTopperEntry,\n LargeAssetTopperProps\n>(({ entry, createEditAttributes }) => {\n const { getEntryUrl, getEntry, site } = useContentful();\n const { request } = usePageProps();\n\n const props: LargeAssetTopperProps = {\n spotTheme: entry.fields.spotTheme,\n title: entry.fields.title,\n hiddenTitle:\n request.path.substring(1) === site?.fields.slug\n ? site.fields.title\n : undefined,\n subtitle: entry.fields.subtitle ? (\n \n ) : undefined,\n asset: entry.fields.media\n ? createMediaAssetProps(entry.fields.media)\n : undefined,\n\n editAttributes: {\n title: createEditAttributes({ entry, fieldId: \"title\" }),\n subtitle: createEditAttributes({ entry, fieldId: \"subtitle\" }),\n },\n };\n\n const overlineLinkEntry = getEntry(entry.fields.overlineLink);\n\n if (overlineLinkEntry) {\n props.overline = {\n text: overlineLinkEntry?.fields.text,\n link: getEntryUrl(entry.fields.overlineLink),\n editAttributes: {\n text: createEditAttributes({\n entry: overlineLinkEntry,\n fieldId: \"text\",\n }),\n },\n };\n }\n\n if (!overlineLinkEntry && entry.fields.overlineText) {\n props.overline = {\n text: entry.fields.overlineText,\n editAttributes: {\n text: createEditAttributes({ entry, fieldId: \"overlineText\" }),\n },\n };\n }\n\n const buttonEntry = getEntry(entry.fields.button);\n\n if (buttonEntry) {\n props.ctaButton = {\n href: getEntryUrl(entry.fields.button),\n children: buttonEntry.fields.text,\n editAttributes: createEditAttributes({\n entry: buttonEntry,\n fieldId: \"text\",\n }),\n };\n }\n\n if (!buttonEntry && entry.fields.links) {\n props.ctaList = createCtaListProps(entry.fields.links);\n }\n\n return props;\n});\n","import { Suspense } from \"react\";\nimport { ErrorBoundary } from \"design-system/components/system/error-boundary/error-boundary\";\nimport { useLazyComponents } from \"./use-lazy-components\";\nimport type {\n ComponentLibrary,\n ComponentLibraryProps,\n} from \"design-system/components\";\n\nexport type LazyComponentProps = ComponentLibraryProps;\nexport type ExtractLazyComponent = Extract<\n LazyComponentProps,\n { name: N }\n>;\n\nexport function LazyComponent({\n name,\n props,\n children,\n}: LazyComponentProps): JSX.Element | null {\n const { getLazyComponentByName } = useLazyComponents();\n\n const Component = getLazyComponentByName(name);\n\n if (Component) {\n return (\n \n \n {/* eslint-disable-next-line @typescript-eslint/no-explicit-any */}\n \n {children &&\n (Array.isArray(children) ? (\n \n ) : (\n \n ))}\n \n \n \n );\n }\n\n console.error(`ERROR: could not find lazy component ${name}`);\n\n return null;\n}\n\ninterface LazyComponentsProps {\n components?: Array;\n}\n\nexport function LazyComponents({ components }: LazyComponentsProps) {\n if (!components || !Array.isArray(components)) return null;\n\n return (\n <>\n {components.map((component, i) => (\n \n ))}\n \n );\n}\n","import { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { FeaturedTermTopperEntry } from \"frontend/contentful/schema/toppers\";\nimport { createMediaAssetProps } from \"../primitives/media-asset.props\";\nimport { RenderContentfulRichText } from \"../utils/render-contentful-rich-text\";\nimport { FeaturedTermTopperProps } from \"design-system/sites/hbswk/featured-term-topper/featured-term-topper\";\nimport { createCtaLinkProps } from \"../primitives/cta-link.props\";\nimport { createFeaturedFacultyProps } from \"../utils/featured-faculty-props\";\n\nexport const createFeaturedTermTopperProps = createContentfulProps<\n FeaturedTermTopperEntry,\n FeaturedTermTopperProps\n>(({ entry, createEditAttributes }) => {\n const props: FeaturedTermTopperProps = {\n title: entry.fields.title,\n intro: entry.fields.description ? (\n \n ) : undefined,\n mediaAssetImage: createMediaAssetProps(entry.fields.media)?.image,\n theme: entry.fields.theme,\n featuredFaculty:\n entry.fields.facultyHeading ||\n entry.fields.facultyLink ||\n entry.fields.faculty\n ? {\n heading: entry.fields.facultyHeading,\n cta: createCtaLinkProps(entry.fields.facultyLink),\n people: [],\n editAttributes: {\n heading: createEditAttributes({\n entry,\n fieldId: \"facultyHeading\",\n }),\n },\n }\n : undefined,\n\n editAttributes: {\n title: createEditAttributes({ entry, fieldId: \"title\" }),\n intro: createEditAttributes({ entry, fieldId: \"description\" }),\n },\n };\n\n entry.fields.faculty?.forEach((person) => {\n const featuredFacultyProps = createFeaturedFacultyProps(person);\n if (featuredFacultyProps) {\n props.featuredFaculty?.people?.push(featuredFacultyProps);\n }\n });\n\n return props;\n});\n","import { StatisticsTopperProps } from \"design-system/components/toppers/statistics-topper/statistics-topper\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { StatisticsTopperEntry } from \"frontend/contentful/schema/toppers\";\nimport { createMediaAssetProps } from \"../primitives/media-asset.props\";\nimport { RenderContentfulRichText } from \"../utils/render-contentful-rich-text\";\nimport { createCtaListProps } from \"../primitives/cta-list.props\";\nimport { createStatisticProps } from \"../semantics/statistic.props\";\n\nexport const createStatisticsTopperProps = createContentfulProps<\n StatisticsTopperEntry,\n StatisticsTopperProps\n>(({ entry, createEditAttributes }) => {\n const props: StatisticsTopperProps = {\n title: entry.fields.title,\n theme: entry.fields.theme,\n asset: createMediaAssetProps(entry.fields.media),\n subheading: (\n \n ),\n cta: createCtaListProps(entry.fields.links),\n stats: [],\n\n editAttributes: {\n title: createEditAttributes({ entry, fieldId: \"title\" }),\n subtitle: createEditAttributes({ entry, fieldId: \"subtitle\" }),\n },\n };\n\n entry.fields.statistics?.forEach((entry) => {\n const statisticProps = createStatisticProps(entry);\n if (statisticProps) props.stats?.push(statisticProps);\n });\n\n return props;\n});\n","import {\n PropsWithChildren,\n createContext,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useContentful } from \"./use-contentful\";\nimport { EntryRef } from \"frontend/contentful/schema/sys\";\nimport { SelectTopperEntry } from \"frontend/contentful/schema/toppers\";\nimport { ArchivePageTopperEntry } from \"frontend/contentful/schema/pages\";\nimport { isContentType } from \"frontend/contentful/lib/is-content-type\";\nimport { useSearchParams } from \"next/navigation\";\n\ninterface SearchDropdownsContext {\n selectedOptions: Record;\n onSelectedOptionChange: (key: string, value: string) => void;\n resetSelectedOptions: () => void;\n getSelectedOptionsESFilters: (filters: string) => string | undefined;\n}\n\nexport const SearchDropdownsContext = createContext({\n selectedOptions: {},\n onSelectedOptionChange: () => null,\n resetSelectedOptions: () => null,\n getSelectedOptionsESFilters: () => undefined,\n});\n\nexport const useSearchDropdowns = () => {\n return useContext(SearchDropdownsContext);\n};\n\ninterface SearchDropdownsProviderProps {\n topper?: EntryRef;\n}\n\n/**\n * Escapes special characters in a field value for AWS OpenSearch query_string syntax.\n * @param value - The user-provided field value to be escaped.\n * @returns The escaped field value.\n */\nfunction escapeFieldValue(value: string): string {\n const specialCharacters = [\n \"+\",\n \"-\",\n \"&\",\n \"|\",\n \"!\",\n \"(\",\n \")\",\n \"{\",\n \"}\",\n \"[\",\n \"]\",\n \"^\",\n '\"',\n \"~\",\n \"*\",\n \"?\",\n \":\",\n \"\\\\\",\n \"/\",\n \" \",\n ];\n\n let escapedValue = \"\";\n\n for (const char of value) {\n if (specialCharacters.includes(char)) {\n escapedValue += `\\\\${char}`;\n } else {\n escapedValue += char;\n }\n }\n\n return escapedValue;\n}\n\nexport const SearchDropdownsProvider = ({\n topper,\n children,\n}: PropsWithChildren) => {\n const searchParams = useSearchParams();\n const { getEntry, getEntries } = useContentful();\n const topperEntry = useMemo(() => getEntry(topper), [getEntry, topper]);\n const isSelectTopper = isContentType(\n \"selectTopper\",\n topperEntry,\n );\n\n const [selectedOptions, setSelectedOptions] = useState<\n Record\n >(\n isSelectTopper && topperEntry.fields.facets?.length\n ? Object.fromEntries(\n getEntries(topperEntry.fields.facets)?.map((facet) => [\n facet.fields.field || \"\",\n facet.fields.field\n ? searchParams.get(facet.fields.field) || \"\"\n : \"\",\n ]),\n )\n : {},\n );\n const prevUrl = useRef();\n\n useEffect(() => {\n const url = new URL(window.location.href);\n\n Object.entries(selectedOptions).forEach(([key, value]) => {\n if (value) {\n url.searchParams.set(key, value);\n } else {\n url.searchParams.delete(key);\n }\n });\n\n if (\n Object.keys(selectedOptions).length > 0 &&\n prevUrl.current !== url.href\n ) {\n window.history.pushState({}, \"\", url);\n prevUrl.current = url.href;\n }\n }, [selectedOptions]);\n\n const getSelectedOptionsESFilters = (filters: string) => {\n if (!isSelectTopper) {\n return;\n }\n\n let newFilters = \"\";\n\n for (const [key, value] of Object.entries(selectedOptions)) {\n if (value) {\n const prefix = filters ? \" AND \" : \"\";\n if (!key.includes(\"[\")) {\n newFilters += `${prefix}${key}:\"${value}\"`;\n }\n }\n }\n\n const combinedFilters: Record> = {};\n getEntries(topperEntry.fields.facets)?.forEach((facet) => {\n if (facet.fields.field && facet.fields.field.includes(\"[\")) {\n const matches = facet.fields.field.match(/(.*?)\\[(\\d+)\\]/);\n if (matches) {\n const field = matches[1]!;\n\n if (!combinedFilters[field]) {\n combinedFilters[field] = [];\n }\n\n combinedFilters[field]?.push(selectedOptions[facet.fields.field]);\n }\n }\n });\n\n let combinedFilterStr = \"\";\n for (const [key, values] of Object.entries(combinedFilters)) {\n if (values.length > 0 && values.some((value) => !!value)) {\n combinedFilterStr += `${key}:`;\n for (const value of values) {\n const index = values.indexOf(value);\n\n if (index === 0) {\n if (value) {\n combinedFilterStr += escapeFieldValue(`${value}:`);\n } else {\n combinedFilterStr += `*\\\\:`;\n }\n } else {\n if (value) {\n combinedFilterStr += escapeFieldValue(value);\n } else {\n combinedFilterStr += \"*\";\n }\n }\n }\n }\n }\n\n if (combinedFilterStr) {\n const prefix = filters ? \" AND \" : \"\";\n newFilters += `${prefix}${combinedFilterStr}`;\n }\n\n return newFilters;\n };\n\n return (\n {\n setSelectedOptions((prev) => ({ ...prev, [key]: value }));\n },\n resetSelectedOptions: () => {\n setSelectedOptions((prev) =>\n Object.fromEntries(Object.keys(prev).map((key) => [key, \"\"])),\n );\n },\n }}\n >\n {children}\n \n );\n};\n","import {\n LinkEntry,\n LinkListEntry,\n} from \"frontend/contentful/schema/primitives\";\nimport { isContentType } from \"frontend/contentful/lib/is-content-type\";\nimport { LocalNavigationItemProps } from \"design-system/components/universal/local-navigation/local-navigation-item\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\n\nimport { useContentful } from \"frontend/hooks/use-contentful\";\n\ntype NavigationLinkEntry = LinkEntry | LinkListEntry;\n\nexport const createNavigationItemProps = createContentfulProps<\n NavigationLinkEntry,\n LocalNavigationItemProps\n>(({ entry, createEditAttributes }) => {\n const { getEntryUrl, getEntries } = useContentful();\n\n const transform = (entry: NavigationLinkEntry) => {\n const props: LocalNavigationItemProps = {\n title: \"\",\n editAttributes: {\n title: createEditAttributes({ entry, fieldId: \"title\" }),\n },\n };\n\n if (isContentType(\"linkList\", entry)) {\n props.url = getEntryUrl(entry.fields.link);\n if (entry.fields?.title) props.title = entry.fields.title;\n\n if (entry.fields?.links) {\n props.submenu = getEntries(entry.fields.links)?.map((link) =>\n transform(link),\n );\n }\n } else if (isContentType(\"link\", entry)) {\n props.url = getEntryUrl(entry);\n if (entry.fields?.text) props.title = entry.fields.text;\n }\n\n return props;\n };\n\n return transform(entry);\n});\n","import {\n Theme,\n getSplitTopperTheme,\n getLargeAssetTopperTheme,\n SiteHeaderTheme,\n defaultPageSectionTheme,\n} from \"design-system/utils/theme\";\n\nimport { LazyComponentProps } from \"design-system/components/system/lazy-component/lazy-component\";\n\nconst defaultSiteHeaderTheme = defaultPageSectionTheme;\n\nexport function getSiteHeaderTheme(\n topper: LazyComponentProps | undefined,\n): SiteHeaderTheme {\n // infer theme from topper theme if exists, otherwise use default theme\n if (topper?.name === \"CardTopper\") {\n return topper?.props?.theme || defaultSiteHeaderTheme;\n }\n\n // default to dark theme for these toppers\n if (\n topper?.name === \"ParticipantStoryTopper\" ||\n topper?.name === \"DashboardTopper\"\n ) {\n return \"dark\";\n }\n\n // infer theme from topper spot theme if exists\n\n if (topper?.name === \"SplitTopper\") {\n if (topper?.props?.spotTheme) {\n return getSplitTopperTheme(topper?.props?.spotTheme);\n }\n }\n\n if (topper?.name === \"LargeAssetTopper\") {\n return getLargeAssetTopperTheme(topper?.props?.spotTheme);\n }\n\n // grab theme from topper if exists\n if (topper?.props && \"theme\" in topper.props && topper?.props?.theme) {\n return topper.props.theme as Theme;\n }\n\n return defaultSiteHeaderTheme;\n}\n","import { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport {\n ExpandedMenuEntry,\n PageListAcceptedLinks,\n PageListEntry,\n} from \"frontend/contentful/schema/primitives\";\n\nimport { MediaAssetProps } from \"design-system/components/primitives/media-asset/media-asset\";\nimport {\n ExpandedLocalNavigationItemProps,\n ExpandedNavigationLinkWithSubItems,\n ExpandedNavigationSubMenuProps,\n} from \"design-system/components/universal/expanded-local-navigation/local/expanded-local-navigation\";\nimport { NavigationLink } from \"design-system/components/universal/local-navigation/local-navigation\";\nimport { filterUndefined } from \"design-system/utils/filter-undefined\";\nimport { documentToString } from \"frontend/contentful/lib/document-to-string\";\nimport { isContentType } from \"frontend/contentful/lib/is-content-type\";\nimport {\n ArchivePageEntry,\n ArticlePageEntry,\n ClubPageEntry,\n DatabasePageEntry,\n DatasetPageEntry,\n DetailPageEntry,\n KnowledgeBaseArticlePageEntry,\n LandingPageEntry,\n ParticipantStoryEntry,\n PodcastEpisodePageEntry,\n ProfilePageEntry,\n ProgramPageEntry,\n} from \"frontend/contentful/schema/pages\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\nimport { createCtaLinkProps } from \"../primitives/cta-link.props\";\nimport { createMediaAssetProps } from \"../primitives/media-asset.props\";\n\ntype FeatureLinks = NavigationLink & { mediaAsset?: MediaAssetProps };\n\ntype PageListAcceptedEntries =\n | ArchivePageEntry\n | ArticlePageEntry\n | ClubPageEntry\n | DatabasePageEntry\n | DatasetPageEntry\n | DetailPageEntry\n | KnowledgeBaseArticlePageEntry\n | LandingPageEntry\n | ParticipantStoryEntry\n | PodcastEpisodePageEntry\n | ProfilePageEntry\n | ProgramPageEntry;\n\nconst getPageValues = (item: PageListAcceptedEntries): FeatureLinks => {\n if (isContentType(\"articlePage\", item)) {\n const { title, url, description, shortDescription, teaseImage, leadImage } =\n item.fields;\n\n const mediaAsset = leadImage\n ? createMediaAssetProps(leadImage)\n : createMediaAssetProps(teaseImage);\n\n const descriptionText = shortDescription\n ? documentToString(shortDescription)\n : documentToString(description);\n\n return {\n title: title || \"\",\n description: descriptionText,\n url: url,\n mediaAsset,\n };\n }\n\n if (\n isContentType(\"databasePage\", item) ||\n isContentType(\"datasetPage\", item)\n ) {\n const { title, url, description, shortDescription } = item.fields;\n\n const descriptionText = shortDescription\n ? documentToString(shortDescription)\n : documentToString(description);\n\n return {\n title: title || \"\",\n description: descriptionText,\n url: url,\n };\n }\n\n if (isContentType(\"podcastEpisodePage\", item)) {\n const { title, url, description, subtitle, relatedImage } = item.fields;\n const descriptionText = documentToString(description) || subtitle;\n\n const mediaAsset = createMediaAssetProps(relatedImage);\n\n return {\n title: title || \"\",\n description: descriptionText,\n url: url,\n mediaAsset,\n };\n }\n\n if (isContentType(\"programPage\", item)) {\n const { title, url, description, media } = item.fields;\n const descriptionText = documentToString(description);\n\n const mediaAsset = createMediaAssetProps(media);\n\n return {\n title: title || \"\",\n description: descriptionText,\n url: url,\n mediaAsset,\n };\n }\n\n if (\n isContentType(\n \"knowledgeBaseArticlePage\",\n item,\n )\n ) {\n const { title, url, subtitle, shortDescription } = item.fields;\n const descriptionText = documentToString(subtitle) || shortDescription;\n\n return {\n title: title || \"\",\n description: descriptionText,\n url: url,\n };\n }\n\n if (isContentType(\"participantStory\", item)) {\n const { title, url, subTitle, shortDescription, image } = item.fields;\n const descriptionText = subTitle || documentToString(shortDescription);\n\n const mediaAsset = createMediaAssetProps(image);\n\n return {\n title: title || \"\",\n description: descriptionText,\n url: url,\n mediaAsset,\n };\n }\n\n if (isContentType(\"clubPage\", item)) {\n const { title, url, image } = item.fields;\n\n const mediaAsset = createMediaAssetProps(image);\n\n return {\n title: title || \"\",\n description: undefined,\n url: url,\n mediaAsset,\n };\n }\n\n /*\n The rest. So far:\n - ArchivePageEntry\n - DetailPageEntry\n - LandingPageEntry\n - ProfilePageEntry\n */\n return {\n title: item.fields.title || \"\",\n description: undefined,\n url: item.fields.url,\n };\n};\n\nexport const createExpandedMenuProps = createContentfulProps<\n ExpandedMenuEntry,\n ExpandedLocalNavigationItemProps\n>(({ entry: cfEntry }) => {\n const { getEntry } = useContentful();\n\n const mapToNavigationLink = (\n items: Array | undefined,\n ): Array => {\n return (\n items\n ?.map((itemsEntry) => {\n const item = getEntry(itemsEntry);\n if (!item?.fields) return undefined;\n return getPageValues(item);\n })\n .filter(filterUndefined) || []\n );\n };\n\n const transform = (expandedMenuEntry: ExpandedMenuEntry) => {\n const props: ExpandedLocalNavigationItemProps = {\n title: expandedMenuEntry.fields.title || \"\",\n layoutType: \"vertical\",\n linkTitle: expandedMenuEntry.fields.linkTitle || \"\",\n url: expandedMenuEntry.fields.url || \"\",\n pageGroups: [],\n };\n\n if (expandedMenuEntry.fields.cta) {\n const cta = getEntry(expandedMenuEntry.fields.cta);\n props.cta = createCtaLinkProps(cta);\n }\n\n const { menu: pageGroupEntries } = expandedMenuEntry.fields;\n\n if (!pageGroupEntries?.length) {\n return;\n }\n\n if (pageGroupEntries.length > 1) {\n props.layoutType = \"horizontal\";\n }\n\n const pageGroups = pageGroupEntries\n .map((pageGroupEntry) => {\n const pageGroup = getEntry(pageGroupEntry);\n if (!pageGroup) return undefined;\n\n const { menu: pageListEntries, title } = pageGroup.fields;\n\n if (!pageListEntries) return undefined;\n\n const pageListOrLinks = pageListEntries\n .map((pageListEntry) => {\n const pageList = getEntry(pageListEntry);\n if (!pageList) return undefined;\n\n if (isContentType(\"pageList\", pageList)) {\n const {\n title,\n featureCard,\n featureDescription,\n featureLinks,\n featureLinksTitle,\n featureMedia,\n menu,\n topLinks,\n } = pageList.fields;\n\n const result: ExpandedNavigationLinkWithSubItems = {\n title,\n featureCard,\n featureDescription,\n featureLinksTitle,\n featureMedia,\n featureLinks: mapToNavigationLink(featureLinks),\n menu: mapToNavigationLink(menu),\n topLinks: mapToNavigationLink(topLinks),\n };\n\n return result;\n } else {\n // Not a pageList, but a Link.\n const link = pageList;\n const item = getEntry(link);\n if (!item?.fields) return undefined;\n return getPageValues(item);\n }\n })\n .filter(filterUndefined);\n\n const result: ExpandedNavigationSubMenuProps = {\n title,\n pageListOrLinks,\n };\n\n return result;\n })\n .filter(filterUndefined);\n\n props.pageGroups = pageGroups;\n\n return props;\n };\n\n return transform(cfEntry);\n});\n","import {\n LinkEntry,\n LinkListEntry,\n} from \"frontend/contentful/schema/primitives\";\nimport { isContentType } from \"frontend/contentful/lib/is-content-type\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { RenderContentfulRichText } from \"../utils/render-contentful-rich-text\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\nimport { GlobalMenuSubmenu } from \"design-system/components/universal/global-menu/global-menu-sub\";\nimport { GlobalMenuNavItem } from \"design-system/components/universal/global-menu/global-menu-item\";\n\nexport const createGlobalMenuNavItemProps = createContentfulProps<\n LinkEntry | LinkListEntry,\n GlobalMenuNavItem\n>(({ entry, createEditAttributes }) => {\n const { getEntry, getEntryUrl } = useContentful();\n\n if (isContentType(\"link\", entry)) {\n if (entry.fields?.text) {\n return {\n id: entry.sys.id,\n label: entry.fields.text,\n link: getEntryUrl(entry),\n\n editAttributes: {\n title: createEditAttributes({ entry, fieldId: \"title\" }),\n },\n };\n }\n }\n\n if (isContentType(\"linkList\", entry)) {\n if (entry.fields?.title) {\n const link = getEntry(entry.fields.link);\n const submenu: GlobalMenuSubmenu = {\n items: [],\n header: {\n label: link?.fields.text || entry.fields.title,\n link: getEntryUrl(entry.fields.link),\n subtitle: (\n \n ),\n\n editAttributes: {\n title: createEditAttributes({ entry, fieldId: \"title\" }),\n subtitle: createEditAttributes({ entry, fieldId: \"description\" }),\n },\n },\n };\n\n entry.fields?.links?.forEach((entry) => {\n const item = createGlobalMenuNavItemProps(entry);\n if (item) submenu.items.push(item);\n });\n\n return {\n id: entry.sys.id,\n label: entry.fields.title,\n submenu,\n };\n }\n }\n});\n","import { SiteHeaderProps } from \"design-system/components/universal/site-header/site-header\";\nimport { createNavigationItemProps } from \"frontend/contentful/components/universal/navigation-item.props\";\nimport { getSiteHeaderTheme } from \"frontend/contentful/components/utils/get-site-header-theme\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { isContentType } from \"frontend/contentful/lib/is-content-type\";\nimport {\n ClubPageEntry,\n KnowledgeBaseArticlePageEntry,\n PageEntry,\n ParticipantStoryEntry,\n} from \"frontend/contentful/schema/pages\";\nimport {\n ExpandedMenuEntry,\n LinkListEntry,\n} from \"frontend/contentful/schema/primitives\";\nimport { SiteEntry } from \"frontend/contentful/schema/universal\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\nimport { fetcher, useFetch } from \"frontend/hooks/use-fetch\";\nimport { usePageProps } from \"frontend/hooks/use-page-props\";\nimport { getSiteId } from \"frontend/lib/get-site-id\";\nimport { ModernSearchHit, SearchResults, Suggestions } from \"frontend/types\";\nimport { useSearchParams } from \"next/navigation\";\nimport { Dispatch, SetStateAction, useState } from \"react\";\nimport { createLazyTopperProps } from \"../toppers/lazy-topper.props\";\nimport { hasSearchData, setdropDownUrl } from \"../utils/get-page-search-props\";\nimport { RenderContentfulRichText } from \"../utils/render-contentful-rich-text\";\nimport { createExpandedMenuProps } from \"./expanded-menu-item.props\";\nimport { createGlobalMenuNavItemProps } from \"./global-menu-nav-item.props\";\nimport { createSocialMediaLinksProps } from \"./social-media-links.props\";\n\ntype SetState = Dispatch>;\n\ninterface MincAPIResponse {\n result: Array;\n}\n\ninterface MincResponseData {\n sys_updated_on: string;\n type: string;\n details: string;\n cmdb_ci: {\n display_value: string;\n link: string;\n };\n end: string;\n begin: string;\n}\n\ntype ModernSearchHits = Array;\ntype UpdatedSuggestions = Suggestions[\"updatedSuggestions\"];\ntype HandleSearch = (props: {\n term: string;\n setDropdownItems: SetState;\n setDropdownSuggestions: SetState;\n hasSearchPage: string | undefined;\n url: string;\n entry: SiteEntry;\n}) => Promise;\nconst handleSearch: HandleSearch = async ({\n term,\n setDropdownItems,\n setDropdownSuggestions,\n url,\n entry,\n hasSearchPage,\n}) => {\n if (term.length < 3 || !term || term === \"\") {\n setDropdownItems([]);\n return;\n }\n if (term.length < 4 || !term || term === \"\") {\n setDropdownSuggestions({});\n return;\n }\n\n const site = getSiteId(entry);\n\n const data = (await fetcher({\n url: url,\n params: { term, site, hasSearchPage },\n })) as SearchResults | Suggestions;\n\n if (hasSearchData(data)) {\n if (\"hits\" in data) {\n setDropdownItems(data.hits.map((hit) => hit as ModernSearchHit));\n }\n if (\"updatedSuggestions\" in data && data.updatedSuggestions) {\n setDropdownSuggestions(data.updatedSuggestions);\n }\n }\n return;\n};\n\nexport const createSiteHeaderProps = createContentfulProps<\n SiteEntry,\n SiteHeaderProps\n>(({ entry, createEditAttributes }) => {\n const searchParams = useSearchParams();\n const domain = entry.fields.domain;\n\n const pageProps = usePageProps();\n const { getEntryUrl, getEntry, getEntries } = useContentful();\n const [dropdownItems, setDropdownItems] = useState([]);\n const [dropdownSuggestions, setDropdownSuggestions] =\n useState();\n const site = getEntry(pageProps.site);\n const url = setdropDownUrl(site);\n const hasSearchPage = getEntry(pageProps.searchPage)?.fields.url;\n\n const header = getEntry(entry.fields.header);\n if (!header) return;\n\n const siteUrl = `/${entry.fields.slug && entry.fields.slug !== \"/\" ? entry.fields.slug : \"\"}`;\n\n const siteType = entry.fields.domain === \"my\" ? \"internal\" : \"external\";\n const enableLogin = entry.fields.enableLogin;\n const enableLogout =\n pageProps.pagePermissions || pageProps.sitePermissions || enableLogin\n ? true\n : false;\n const globalMenu = getEntry(header.fields.globalMenu);\n const organization = getEntry(globalMenu?.fields.organization);\n const page = pageProps.entry as PageEntry | undefined;\n const isWWWSearchPage =\n page && page.fields.slug === \"search\" && !page.fields.parentPageId;\n const isParticpantStory = isContentType(\n \"participantStory\",\n page,\n );\n const isKnowledgeBaseArticlePage =\n isContentType(\n \"knowledgeBaseArticlePage\",\n page,\n );\n const isClubPage = isContentType(\"clubPage\", page);\n const topper = createLazyTopperProps(page?.fields.topper);\n const theme = isParticpantStory\n ? \"dark\"\n : isKnowledgeBaseArticlePage\n ? page.fields.topperTheme\n : isClubPage\n ? \"dark\"\n : getSiteHeaderTheme(topper);\n\n const props: SiteHeaderProps = {\n domain: domain,\n theme,\n localNavigationItems: [],\n expandedNavigationItems: [],\n isHomepage: pageProps.singletons.isWWWHomePage || isWWWSearchPage,\n globalMenu: {\n id: \"global-menu\",\n label: \"Quick links\",\n socialLinks: createSocialMediaLinksProps(organization)?.links,\n items: [],\n },\n searchLink: getEntryUrl(pageProps.searchPage),\n hasSearchOverlay: true,\n search: {\n dropdownItems,\n dropdownSuggestions,\n hasDropdown: true,\n dropdownCta: {\n children: \"View Results\",\n href: getEntryUrl(pageProps.searchPage),\n },\n handleSearch: (term: string) => {\n void handleSearch({\n term,\n setDropdownItems,\n setDropdownSuggestions,\n url,\n entry,\n hasSearchPage,\n });\n },\n },\n editAttributes: {\n title: createEditAttributes({ entry: entry, fieldId: \"title\" }),\n moreItemsTitle: createEditAttributes({\n entry: header,\n fieldId: \"moreItemsTitle\",\n }),\n },\n };\n\n if (entry.fields.title) {\n props.sectionTitle = { title: entry.fields.title, url: siteUrl };\n }\n\n //headerBanner only appears on my and Alumni sites when user is logged in.\n if (pageProps.session) {\n props.session = pageProps.session;\n if (\n (entry.fields.domain === \"my\" || entry.fields.domain === \"alumni\") &&\n pageProps.session.user?.loggedIn &&\n pageProps.session.user?.id !== \"anonymous\"\n ) {\n props.headerBanner = {\n title: \"Hello, \" + pageProps.session.user?.displayName,\n link:\n entry.fields.domain === \"alumni\"\n ? { children: \"Account\", href: \"#\" }\n : {},\n notificationHref: entry.fields.domain === \"alumni\" ? \"#\" : \"\",\n };\n }\n }\n\n getEntries(header.fields.links)?.forEach((link) => {\n if (isContentType(\"linkList\", link)) {\n const linkProps = createNavigationItemProps(link);\n if (linkProps) props.localNavigationItems?.push(linkProps);\n } else if (isContentType(\"expandedMenu\", link)) {\n const expandedMenuProps = createExpandedMenuProps(link);\n if (expandedMenuProps) {\n props.expandedNavigationItems?.push(expandedMenuProps);\n }\n }\n });\n\n getEntries(globalMenu?.fields.links)?.forEach((link) => {\n const item = createGlobalMenuNavItemProps(link);\n if (item) props.globalMenu?.items?.push(item);\n });\n\n const alert = getEntry(header.fields.alert);\n\n if (alert?.fields.apiSource === \"Manual\") {\n props.headerAlert = {\n title: alert.fields?.title,\n href: getEntryUrl(alert.fields?.link),\n description: (\n \n ),\n editAttributes: {\n url: createEditAttributes({ entry: alert.fields.link, fieldId: \"url\" }),\n title: createEditAttributes({\n entry: header.fields.alert,\n fieldId: \"title\",\n }),\n description: createEditAttributes({\n entry: header.fields.alert,\n fieldId: \"description\",\n }),\n },\n };\n } else if (alert?.fields.apiSource === \"ServiceNow MINC\") {\n /* alert for IT MINCs\n https://www.hbs.edu/api/servicenow/minc\n mock data to test https://www.hbs.edu/api/servicenow/minc?mock=1 */\n\n const mockParam = searchParams.get(\"mock\");\n const fetchParams = mockParam ? { mock: mockParam } : {};\n\n const { data } = useFetch({\n url: \"/api/servicenow/minc\",\n params: fetchParams,\n });\n\n if (data?.result?.length) {\n const item = data.result[0];\n\n if (item?.type === \"Service Interruption\") {\n props.headerAlert = {\n title: entry.fields.title,\n href: \"https://hbs.service-now.com/support\",\n description:\n \"We are currently experiencing a service interruption related to \" +\n item?.cmdb_ci.display_value +\n \". Please refer to the IT Service Portal for additional details.\",\n theme: \"red\",\n };\n }\n }\n }\n\n const contentReferences = getEntry(pageProps.contentReferences);\n const callToAction = getEntry(header.fields.callToAction);\n const callToActionUrl = getEntryUrl(callToAction);\n const isExternal = callToAction?.fields.isExternalUrl || false;\n if (callToAction) {\n // Use redirect only if an external links\n const link =\n contentReferences?.fields.programFormRedirect &&\n callToActionUrl &&\n isExternal\n ? contentReferences.fields.programFormRedirect +\n \"?initurl=\" +\n callToActionUrl\n : callToActionUrl;\n props.cta = {\n text: callToAction.fields.text,\n link: link,\n };\n }\n\n if (header.fields.moreItemsTitle) {\n props.moreItemsTitle = header.fields.moreItemsTitle;\n }\n\n if (site && site.fields.title === \"Working Knowledge\") {\n props.isWorkingKnowledge = true;\n props.workingKnowledgeTagline = header.fields.tagline;\n props.workingKnowledgeTitleLink =\n \"https://www.library.hbs.edu/working-knowledge\";\n }\n let logInOutText;\n let logInOutLink;\n if (enableLogin && !pageProps.session?.user.loggedIn) {\n logInOutText = \"Log In\";\n logInOutLink = pageProps.session?.loginUrl;\n } else if (pageProps.session?.user.loggedIn && enableLogout) {\n logInOutText = \"Log Out\";\n logInOutLink = pageProps.session?.logoutUrl;\n }\n\n if (logInOutText) {\n props.logInOut = {\n text: logInOutText,\n children: logInOutText,\n link: logInOutLink,\n href: logInOutLink,\n hideIcon: false,\n };\n } else {\n props.logInOut = undefined;\n }\n\n props.siteType = siteType;\n props.enableLogout = enableLogout;\n\n if (domain === \"online\") {\n props.logoLink = \"https://online.hbs.edu\";\n } else if (siteType === \"internal\") {\n props.logoLink = \"https://inside.hbs.edu/myhbs.aspx\";\n } else {\n props.logoLink = \"https://www.hbs.edu\";\n }\n\n return props;\n});\n","import { SiteFooterEntry } from \"frontend/contentful/schema/universal\";\nimport { SiteFooterProps } from \"design-system/components/universal/site-footer/site-footer\";\nimport { createSocialMediaLinksProps } from \"frontend/contentful/components/universal/social-media-links.props\";\n\nimport {\n renderBreakLineText,\n RenderContentfulRichText,\n} from \"../utils/render-contentful-rich-text\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { Link } from \"design-system/components/primitives/link/link\";\nimport { SocialMediaLinks } from \"design-system/components/primitives/social-media-links/social-media-links\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\nimport { createLinkProps } from \"../primitives/link.props\";\n\nexport const createSiteFooterProps = createContentfulProps<\n SiteFooterEntry,\n SiteFooterProps\n>(({ entry, createEditAttributes }) => {\n const { getEntryUrl, getEntry, site } = useContentful();\n\n const siteType = site?.fields.domain === \"my\" ? \"internal\" : \"external\";\n const siteTitle = site?.fields.title;\n\n const props: SiteFooterProps = {\n displayPrimaryCTA: false,\n footerBlocks: [],\n footerLegalItems: [],\n };\n\n const organization = getEntry(entry.fields.organization);\n\n if (organization) {\n const blockItems = [];\n\n // address goes first\n if (organization.fields?.address) {\n blockItems.push({\n children: (\n

{renderBreakLineText(organization.fields?.address)}

\n ),\n editAttributes: createEditAttributes({\n entry: organization,\n fieldId: \"address\",\n }),\n });\n }\n // email and phone\n if (organization.fields?.email || organization.fields?.phone) {\n blockItems.push({\n children: (\n

\n {organization.fields?.email && (\n \n {organization.fields?.email}\n \n )}\n {organization.fields?.phone && (\n <>\n {organization.fields?.email &&
}\n \n {organization.fields?.phone}\n \n \n )}\n {organization.fields?.fax && (\n <>\n {(organization.fields?.email || organization.fields?.phone) && (\n
\n )}\n \n {`${organization.fields?.fax} (fax)`}\n \n \n )}\n

\n ),\n editAttributes: createEditAttributes({\n entry: organization,\n fieldId: \"email\",\n }),\n });\n }\n // Hours\n if (organization.fields?.hours) {\n blockItems.push({\n children:

{renderBreakLineText(organization.fields?.hours)}

,\n editAttributes: createEditAttributes({\n entry: organization,\n fieldId: \"hours\",\n }),\n });\n }\n props.footerBlocks?.push({\n title: organization.fields?.title,\n editAttributes: {\n title: createEditAttributes({ entry: organization, fieldId: \"title\" }),\n },\n items: blockItems,\n });\n }\n\n // links go second\n if (entry.fields.links) {\n props.footerBlocks?.push({\n items: entry.fields.links.map((link, i) => ({\n children: ,\n editAttributes: createEditAttributes({ entry: link, fieldId: \"title\" }),\n })),\n });\n }\n\n // socials go last\n if (entry.fields.organization) {\n props.footerBlocks?.push({\n items: [\n {\n children: (\n \n ),\n },\n ],\n });\n }\n\n const cta = getEntry(entry.fields.cta);\n\n if (cta) {\n props.displayPrimaryCTA = true;\n props.footerPrimaryCta = {\n title: cta.fields.title,\n href: getEntryUrl(cta.fields.link),\n description: (\n \n ),\n editAttributes: {\n url: createEditAttributes({ entry: cta.fields.link, fieldId: \"url\" }),\n title: createEditAttributes({ entry: cta, fieldId: \"title\" }),\n description: createEditAttributes({\n entry: cta,\n fieldId: \"description\",\n }),\n },\n };\n }\n\n if (!props.footerLegalItems || props.footerLegalItems?.length === 0) {\n props.footerLegalItems = [\n {\n children: \"Site Map\",\n href: \"https://www.hbs.edu/siteindex/\",\n },\n {\n children: \"Jobs\",\n href: \"https://www.hbs.edu/employment\",\n },\n {\n children: \"Harvard University\",\n href: \"https://www.harvard.edu\",\n },\n {\n children: \"Trademarks\",\n href: \"https://trademark.harvard.edu/pages/trademark-notice/\",\n },\n {\n children: \"Policies\",\n href: \"https://www.hbs.edu/about/campus-and-culture/policies\",\n },\n {\n children: \"Accessibility\",\n href: \"https://accessibility.harvard.edu/\",\n },\n {\n children: \"Digital Accessibility\",\n href: \"https://accessibility.huit.harvard.edu/digital-accessibility-policy\",\n },\n ];\n }\n\n props.siteType = siteType;\n props.siteTitle = siteTitle;\n\n return props;\n});\n","import { useState } from \"react\";\nimport { SplitTopperProps } from \"design-system/components/toppers/split-topper/split-topper\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { SplitSearchTopperEntry } from \"frontend/contentful/schema/toppers\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\nimport { fetcher } from \"frontend/hooks/use-fetch\";\nimport { RenderContentfulRichText } from \"../utils/render-contentful-rich-text\";\nimport { createMediaAssetProps } from \"../primitives/media-asset.props\";\nimport { createCtaListProps } from \"../primitives/cta-list.props\";\nimport { createCtaLinkProps } from \"../primitives/cta-link.props\";\nimport { ModernSearchHit, SearchResults } from \"frontend/types\";\nimport { usePageProps } from \"frontend/hooks/use-page-props\";\nimport {\n hasSearchData,\n setdropDownActive,\n setdropDownUrl,\n} from \"../utils/get-page-search-props\";\n\nexport const createSplitSearchTopperProps = createContentfulProps<\n SplitSearchTopperEntry,\n SplitTopperProps\n>(({ entry, createEditAttributes }) => {\n const { getEntry, getEntryUrl, site } = useContentful();\n\n const pageProps = usePageProps();\n const [dropdownItems, setDropdownItems] = useState>(\n [],\n );\n\n const dropDownActive = setdropDownActive(pageProps);\n const url = setdropDownUrl(site);\n\n const handleSearch = async (term: string) => {\n if (term.length < 3 || !term || term === \"\") {\n setDropdownItems([]);\n return;\n }\n\n const data = (await fetcher({\n url: url,\n params: { term },\n })) as SearchResults;\n\n if (dropDownActive && hasSearchData(data)) {\n setDropdownItems(data.hits.map((hit) => hit as ModernSearchHit));\n }\n\n return;\n };\n\n return {\n theme: entry.fields.theme,\n title: entry.fields.title,\n hiddenTitle:\n pageProps.request.path.substring(1) === site?.fields.slug ||\n (pageProps.request.path === \"/\" && site?.fields.domain !== \"www\")\n ? site?.fields.title\n : undefined,\n searchDropdown: {\n placeholder: entry.fields.searchPlaceholder,\n dropdownCta: createCtaLinkProps(entry.fields.searchDropdownCta),\n dropdownFooterLabel: entry.fields.searchDropdownFooterLabel,\n hasDropdown: dropDownActive,\n searchLink: getEntryUrl(pageProps.searchPage),\n handleSearch: (term: string) => {\n void handleSearch(term);\n },\n dropdownItems,\n editAttributes: {\n dropdownFooterLabel: createEditAttributes({\n entry,\n fieldId: \"searchDropdownFooterLabel\",\n }),\n },\n },\n ctaLabel: entry.fields.ctaLabel,\n ctaList: createCtaListProps(entry.fields.ctaLinks),\n mediaAsset: createMediaAssetProps(entry.fields.media),\n mediaHighlightCaption: entry.fields.mediaHighlightCaption ? (\n \n ) : undefined,\n mediaLink: getEntry(entry.fields.mediaLink)?.fields.url,\n\n editAttributes: {\n title: createEditAttributes({ entry, fieldId: \"title\" }),\n mediaHighlightCaption: createEditAttributes({\n entry,\n fieldId: \"mediaHighlightCaption\",\n }),\n },\n };\n});\n","import { EditorialTopperProps } from \"design-system/components/toppers/editorial-topper/editorial-topper\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { EditorialTopperEntry } from \"frontend/contentful/schema/toppers\";\nimport { createHeroTeaseProps } from \"../blocks/teases/hero-tease.props\";\nimport { createArticleTeaseProps } from \"../blocks/teases/article-tease.props\";\nimport { createSearchArticleTease } from \"frontend/contentful/search/search-article-tease\";\nimport { createSearchHeroTease } from \"frontend/contentful/search/search-hero-tease\";\nimport { createUseSearchProps } from \"../utils/use-search.props\";\nimport { LegacySearchHit, ModernSearchHit } from \"frontend/types\";\nimport { useSearch } from \"frontend/hooks/use-search\";\nimport { usePageProps } from \"frontend/hooks/use-page-props\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\nimport { getSiteId } from \"frontend/lib/get-site-id\";\n\nexport const createEditorialTopperProps = createContentfulProps<\n EditorialTopperEntry,\n EditorialTopperProps\n>(({ entry }) => {\n const { getEntry } = useContentful();\n\n const props: EditorialTopperProps = {\n theme: entry.fields.theme,\n stories: [],\n };\n\n const { entry: pageEntry } = usePageProps();\n const sitePage = usePageProps();\n const page = getEntry(pageEntry);\n const site = getEntry(sitePage.site);\n const siteId = getSiteId(site);\n props.pageTitle = page?.fields.title;\n\n const allTitles: Array = [];\n let articleTitle = \"\";\n\n const [heroArticle, ...articles] = entry.fields.articles || [];\n\n if (heroArticle) {\n props.heroTeaseContent = createHeroTeaseProps(heroArticle);\n\n if (props.heroTeaseContent?.title) {\n articleTitle = props.heroTeaseContent.title;\n }\n }\n\n if (!entry.fields.query) {\n articles?.slice(0, 4).forEach((story) => {\n const articleTeaseProps = createArticleTeaseProps(story);\n if (articleTeaseProps) props.stories!.push(articleTeaseProps);\n });\n }\n\n const searchProps = createUseSearchProps(entry?.fields?.query);\n if (searchProps && !searchProps.size) searchProps.size = 5;\n if (searchProps?.size) searchProps.size = searchProps.size + 2; //Temporary: Get 2 additional records incase of dupes\n\n const search = useSearch(searchProps);\n\n const [searchArticleHero, ...searchArticles] = search.data?.hits || [];\n\n if (searchArticleHero && !entry.fields.articles) {\n props.heroTeaseContent = createSearchHeroTease(searchArticleHero);\n\n if (props.heroTeaseContent?.title) {\n articleTitle = props.heroTeaseContent.title;\n }\n }\n let counter = 0;\n const storiesLimit = 4 - (entry.fields.articles ? 1 : 0);\n searchArticles?.forEach((result) => {\n const searchArticleTeaseProps = createSearchArticleTease(result, siteId);\n const title = searchArticleTeaseProps?.title?.toString();\n\n if (\n searchArticleTeaseProps &&\n title &&\n searchArticleTeaseProps.title !== articleTitle &&\n !allTitles.includes(title) &&\n counter < storiesLimit\n ) {\n props.stories!.push(searchArticleTeaseProps);\n allTitles.push(title);\n counter++;\n }\n });\n\n if (props.heroTeaseContent) {\n props.heroTeaseContent.isTopper = true;\n\n if (props.heroTeaseContent.media) {\n props.heroTeaseContent.layout = \"side-by-side-media-left\";\n } else {\n props.heroTeaseContent.layout = \"text-only\";\n }\n }\n\n return props;\n});\n","import { ArticleTopperProps } from \"design-system/components/toppers/article-topper/article-topper\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { BigArtTopperEntry } from \"frontend/contentful/schema/toppers\";\n\nexport const createBigArtTopperProps = createContentfulProps<\n BigArtTopperEntry,\n ArticleTopperProps\n>(({ entry }) => {\n const props: ArticleTopperProps = {\n isBigArt: true,\n theme: entry.fields.theme,\n };\n\n return props;\n});\n","import { SimplePageTopperProps } from \"design-system/components/toppers/simple-page-topper/simple-page-topper\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { SimplePageTopperEntry } from \"frontend/contentful/schema/toppers\";\nimport { RenderContentfulRichText } from \"../utils/render-contentful-rich-text\";\nimport { createMediaAssetProps } from \"../primitives/media-asset.props\";\nimport { createCtaLinkProps } from \"../primitives/cta-link.props\";\n\nexport const createSimplePageTopperProps = createContentfulProps<\n SimplePageTopperEntry,\n SimplePageTopperProps\n>(({ entry, createEditAttributes }) => {\n return {\n type: \"Simple\",\n title: entry.fields.title,\n theme: entry.fields.theme,\n intro: ,\n media: createMediaAssetProps(entry.fields.media),\n cta: createCtaLinkProps(entry.fields.cta),\n\n editAttributes: {\n title: createEditAttributes({ entry, fieldId: \"title\" }),\n subtitle: createEditAttributes({ entry, fieldId: \"subtitle\" }),\n },\n };\n});\n","import {\n SelectTopperItem,\n SelectTopperProps,\n} from \"design-system/components/toppers/select-topper/select-topper\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { SelectTopperEntry } from \"frontend/contentful/schema/toppers\";\nimport { RenderContentfulRichText } from \"../utils/render-contentful-rich-text\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\nimport { useSearchDropdowns } from \"frontend/hooks/use-search-dropdowns\";\nimport { ChangeEvent } from \"react\";\n\nexport const createSelectTopperProps = createContentfulProps<\n SelectTopperEntry,\n SelectTopperProps\n>(({ entry, createEditAttributes }) => {\n const { getEntries } = useContentful();\n const { selectedOptions, onSelectedOptionChange } = useSearchDropdowns();\n\n const props: SelectTopperProps = {\n title: entry.fields.title || \"\",\n description: entry.fields.description ? (\n \n ) : undefined,\n theme: entry.fields.theme,\n\n editAttributes: {\n title: createEditAttributes({ entry, fieldId: \"title\" }),\n description: createEditAttributes({ entry, fieldId: \"description\" }),\n },\n };\n\n const facets = getEntries(entry.fields.facets);\n const items: Array = [];\n\n facets.forEach((facet) => {\n if (facet.fields.field) {\n const options = [];\n if (facet.fields.terms) {\n options.push(\n { label: \"Select One\", value: \"\" },\n ...facet.fields.terms.map((term) => ({ label: term, value: term })),\n );\n }\n\n const selectedOption = selectedOptions[facet.fields.field];\n\n items.push({\n key: facet.fields.field,\n label: facet.fields.label || \"\",\n options: options,\n\n selectedOption: selectedOption || \"\",\n onChange: (event: ChangeEvent) => {\n onSelectedOptionChange(facet.fields.field!, event.target.value);\n },\n\n editAttributes: {\n label: createEditAttributes({ entry, fieldId: \"label\" }),\n },\n });\n }\n });\n\n props.items = items;\n\n return props;\n});\n","// extracted by mini-css-extract-plugin","import { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { HeroTeaseProps } from \"design-system/components/blocks/hero-tease/hero-tease\";\nimport { createMediaAssetProps } from \"../../primitives/media-asset.props\";\nimport { createBylineProps } from \"../../primitives/byline.props\";\nimport { RenderContentfulRichText } from \"../../utils/render-contentful-rich-text\";\nimport { useSearch } from \"frontend/hooks/use-search\";\nimport { isContentType } from \"frontend/contentful/lib/is-content-type\";\nimport {\n ArticlePageEntry,\n DetailPageEntry,\n LandingPageEntry,\n} from \"frontend/contentful/schema/pages\";\nimport { QueryEntry } from \"frontend/contentful/schema/semantics\";\nimport { createUseSearchProps } from \"../../utils/use-search.props\";\nimport { createSearchHeroTease } from \"frontend/contentful/search/search-hero-tease\";\nimport { SearchQuery, LegacySearchHit } from \"frontend/types\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\n\nexport const createHeroTeaseProps = createContentfulProps<\n ArticlePageEntry | QueryEntry | LandingPageEntry | DetailPageEntry,\n HeroTeaseProps\n>(({ entry, createEditAttributes }) => {\n const { getEntry, getEntryUrl } = useContentful();\n\n /* QueryEntry */\n\n let searchProps: SearchQuery | undefined | null = null;\n\n if (isContentType(\"query\", entry)) {\n searchProps = createUseSearchProps(entry);\n if (searchProps) searchProps.size = 1;\n\n const search = useSearch(searchProps);\n\n const searchHeroTeaseProps = createSearchHeroTease(search?.data?.hits[0]);\n if (searchHeroTeaseProps) return searchHeroTeaseProps;\n }\n\n /* ArticlePageEntry */\n\n if (isContentType(\"articlePage\", entry)) {\n const props: HeroTeaseProps = {\n title: entry.fields.title,\n link: getEntryUrl(entry),\n byline: createBylineProps(entry),\n media: createMediaAssetProps(entry.fields.leadImage),\n subheading: (\n \n ),\n };\n\n if (props.byline) props.byline.headshots = true;\n\n const overline = getEntry(entry.fields.overline);\n\n if (overline?.fields.text && overline.fields.url) {\n props.overline = {\n label: overline.fields.text,\n link: getEntryUrl(overline),\n };\n }\n\n props.editAttributes = {\n subheading: createEditAttributes({ entry, fieldId: \"shortDescription\" }),\n overline: createEditAttributes({\n entry: overline,\n fieldId: \"text\",\n }),\n };\n\n return props;\n }\n\n /* LandingPageEntry */\n\n if (isContentType(\"landingPage\", entry)) {\n return {\n title: entry.fields.title,\n link: getEntryUrl(entry),\n };\n }\n\n /* DetailPageEntry */\n\n if (isContentType(\"detailPage\", entry)) {\n return {\n title: entry.fields.title,\n link: getEntryUrl(entry),\n };\n }\n});\n","import { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { WKFeaturedTermTopperEntry } from \"frontend/contentful/schema/toppers\";\nimport { createMediaAssetProps } from \"../primitives/media-asset.props\";\nimport { RenderContentfulRichText } from \"../utils/render-contentful-rich-text\";\nimport { FeaturedTermTopperProps } from \"design-system/sites/hbswk/featured-term-topper/featured-term-topper\";\nimport { createCtaLinkProps } from \"../primitives/cta-link.props\";\nimport { createFeaturedFacultyProps } from \"../utils/featured-faculty-props\";\nimport { createUseSearchProps } from \"../utils/use-search.props\";\nimport { useSearch } from \"frontend/hooks/use-search\";\nimport { FeaturedTermTopperFacultyHit, PersonTease } from \"frontend/types\";\nimport { RelatedPerson } from \"design-system/components/pages/article-page/article-related-people/article-related-people\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\n\nexport const createWKFeaturedTermTopperProps = createContentfulProps<\n WKFeaturedTermTopperEntry,\n FeaturedTermTopperProps\n>(({ entry, createEditAttributes }) => {\n const { getIsPersonPastHbsFaculty } = useContentful();\n\n let featuredFaculty: NonNullable<\n FeaturedTermTopperProps[\"featuredFaculty\"]\n >[\"people\"] = [];\n const props: FeaturedTermTopperProps = {\n title: entry.fields.title,\n intro: entry.fields.description ? (\n \n ) : undefined,\n mediaAssetImage: createMediaAssetProps(entry.fields.media)?.image,\n theme: entry.fields.theme,\n\n editAttributes: {\n title: createEditAttributes({ entry, fieldId: \"title\" }),\n intro: createEditAttributes({ entry, fieldId: \"description\" }),\n },\n };\n\n if (entry.fields.faculty?.length) {\n entry.fields.faculty?.forEach((person) => {\n if (getIsPersonPastHbsFaculty(person)) return;\n const featuredFacultyProps = createFeaturedFacultyProps(person);\n if (featuredFacultyProps) {\n featuredFaculty.push(featuredFacultyProps);\n }\n });\n } else {\n if (entry.fields.query) {\n const searchProps = createUseSearchProps(entry.fields.query);\n const { data } = useSearch(searchProps);\n const facultyPersonSet = new Set();\n const queryFeaturedFaculty: Array = [];\n\n if (data?.hits) {\n data.hits.forEach((hit: FeaturedTermTopperFacultyHit) => {\n if (hit.display?.personTeases) {\n hit.display.personTeases.forEach((personTease: PersonTease) => {\n if (!facultyPersonSet.has(personTease.name)) {\n facultyPersonSet.add(personTease.name);\n\n const featuredFacultyProps: RelatedPerson = {\n name: personTease.name,\n titles: personTease.titles ?? [],\n link: personTease.url,\n };\n if (personTease.thumbnail?.src) {\n featuredFacultyProps.portrait = {\n image: personTease.thumbnail,\n };\n }\n\n // Only show current hbs faculty: non-faculty do not have links\n if (personTease.url) {\n queryFeaturedFaculty.push(featuredFacultyProps);\n }\n }\n });\n }\n });\n\n featuredFaculty = queryFeaturedFaculty.slice(0, 5);\n }\n }\n }\n\n const cta = createCtaLinkProps(entry.fields.facultyLink);\n\n if (featuredFaculty.length) {\n props.featuredFaculty = {\n heading: entry.fields.facultyHeading,\n cta,\n people: featuredFaculty,\n editAttributes: {\n heading: createEditAttributes({\n entry,\n fieldId: \"facultyHeading\",\n }),\n },\n };\n }\n\n return props;\n});\n","import { CardTopperProps } from \"design-system/components/toppers/card-topper/card-topper\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { CardTopperEntry } from \"frontend/contentful/schema/toppers\";\nimport { RenderContentfulRichText } from \"../utils/render-contentful-rich-text\";\nimport { createMediaAssetProps } from \"../primitives/media-asset.props\";\nimport { createCtaLinkProps } from \"../primitives/cta-link.props\";\n\nexport const createCardTopperProps = createContentfulProps<\n CardTopperEntry,\n CardTopperProps\n>(({ entry, createEditAttributes }) => {\n const props: CardTopperProps = {\n type: \"Card\",\n title: entry.fields.title || \"\",\n subtitle: ,\n ctaList: {\n items: entry.fields.ctaList\n ? entry.fields.ctaList.map((linkEntry) => {\n const props = createCtaLinkProps(linkEntry);\n if (!props) return { children: \"\" };\n return props;\n })\n : undefined,\n },\n ctaButton: createCtaLinkProps(entry.fields.ctaButton),\n media: createMediaAssetProps(entry.fields.media),\n theme: entry.fields.theme,\n spotTheme: entry.fields.spotTheme,\n\n editAttributes: {\n title: createEditAttributes({ entry, fieldId: \"title\" }),\n subtitle: createEditAttributes({ entry, fieldId: \"subtitle\" }),\n },\n };\n\n return props;\n});\n","// extracted by mini-css-extract-plugin","import { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport {\n PersonEntry,\n PersonWrapperEntry,\n} from \"frontend/contentful/schema/semantics\";\nimport { createPersonImageProps } from \"../primitives/media-asset.props\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\nimport { RelatedPerson } from \"design-system/components/pages/article-page/article-related-people/article-related-people\";\nimport { isContentType } from \"frontend/contentful/lib/is-content-type\";\n\nexport const createFeaturedFacultyProps = createContentfulProps<\n PersonEntry | PersonWrapperEntry,\n RelatedPerson\n>(({ entry, createEditAttributes }) => {\n const { getPersonLink, getEntityName, getEntry } = useContentful();\n const props: RelatedPerson = { name: \"\", titles: [] };\n\n if (entry) {\n const personEntry = isContentType(\n \"personWrapper\",\n entry,\n )\n ? getEntry(entry.fields.person)\n : entry;\n const mediaAsset = createPersonImageProps(entry);\n\n // force 1:1 aspect ratio\n if (mediaAsset?.image) {\n mediaAsset.image.width = \"400px\";\n mediaAsset.image.height = \"400px\";\n }\n\n props.name = getEntityName(entry);\n props.titles = personEntry?.fields.jobTitles || [\"\"];\n props.portrait = mediaAsset ? mediaAsset : undefined;\n props.link = getPersonLink(entry);\n\n props.editAttributes = {\n name: createEditAttributes({ entry: personEntry, fieldId: \"firstName\" }),\n titles: createEditAttributes({\n entry: personEntry,\n fieldId: \"jobTitles\",\n }),\n };\n return props;\n }\n});\n","import { ParticipantStoryTopperProps } from \"design-system/components/toppers/participant-story-topper/participant-story-topper\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { ParticipantStoryTopperEntry } from \"frontend/contentful/schema/toppers\";\nimport { RenderContentfulRichText } from \"../utils/render-contentful-rich-text\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\nimport {\n ArticlePageEntry,\n ParticipantStoryEntry,\n} from \"frontend/contentful/schema/pages\";\nimport { createMediaAssetProps } from \"../primitives/media-asset.props\";\nimport { getEntityName } from \"../utils/get-entity-name\";\nimport { LinkProps } from \"design-system/components/primitives/link/link\";\nimport { useTranslations } from \"design-system/hooks/use-translations\";\n\nexport interface ParticipantStoryTopperOptions {\n parentPage?: ArticlePageEntry;\n}\n\nexport const createParticipantStoryTopperProps = createContentfulProps<\n ParticipantStoryTopperEntry | ParticipantStoryEntry,\n ParticipantStoryTopperProps,\n ParticipantStoryTopperOptions\n>(({ entry, options, createEditAttributes }) => {\n const { getEntryUrl, getEntry, getEntries } = useContentful();\n const { t } = useTranslations();\n\n const props: ParticipantStoryTopperProps = {\n title: entry.fields.title,\n quote: entry.fields.quote ? (\n \n ) : undefined,\n infoItems: [],\n\n editAttributes: {\n quote: createEditAttributes({ entry, fieldId: \"quote\" }),\n },\n };\n\n const person = getEntry(entry.fields.person);\n const location = getEntry(entry.fields.location)?.fields.title;\n const mediaAsset = createMediaAssetProps(person?.fields.image);\n\n let role = entry.fields.role;\n\n if (!entry.fields.title) props.title = getEntityName(person);\n if (!entry.fields.role) {\n role = person?.fields.jobTitles?.join(\", \");\n }\n if (mediaAsset?.image) {\n props.mediaAsset = mediaAsset;\n props.mediaAsset.aspectRatio = \"1/1\";\n }\n\n const industryNames = getEntries(options?.parentPage?.fields.industry)\n ?.map((industry) => industry.fields.title)\n .filter(Boolean) as Array;\n const programLinks = getEntries(options?.parentPage?.fields.program)\n ?.map((program) => ({\n href: getEntryUrl(program),\n children: program.fields.title,\n }))\n .filter(Boolean) as Array;\n\n if (role) {\n props.infoItems?.push({\n heading: t(\"role\"),\n description: role,\n editAttribute: createEditAttributes({ entry, fieldId: \"role\" }),\n });\n }\n\n if (industryNames.length > 0) {\n props.infoItems?.push({\n heading: t(\"industry\"),\n description: industryNames,\n editAttribute: createEditAttributes({ entry, fieldId: \"industry\" }),\n });\n }\n\n if (location) {\n props.infoItems?.push({\n heading: t(\"location\"),\n description: location,\n editAttribute: createEditAttributes({ entry, fieldId: \"location\" }),\n });\n }\n\n if (programLinks) {\n props.infoItems?.push({\n heading: t(\"program\"),\n description: programLinks,\n editAttribute: createEditAttributes({ entry, fieldId: \"program\" }),\n });\n }\n\n return props;\n});\n","import { Block, Node, Inline, helpers } from \"@contentful/rich-text-types\";\n\nexport function documentToString(document?: Block | Inline): string {\n if (!document) return \"\";\n\n return documentToPlainTextString(document);\n}\n\n// taken from https://github.com/contentful/rich-text/blob/master/packages/rich-text-plain-text-renderer/src/index.ts\n\n/**\n * Returns the text value of a rich text document.\n *\n * NB: This can be applied to non text node of a structured text document,\n * hence the flexible typing.\n */\nfunction documentToPlainTextString(\n rootNode: Block | Inline,\n blockDivisor = \" \",\n): string {\n if (!rootNode?.content) {\n /**\n * Handles edge cases, such as when the value is not set in the CMA or the\n * field has not been properly validated, e.g. because of a user extension.\n * Note that we are nevertheless strictly type-casting `rootNode` as\n * Block | Inline. Valid rich text documents (and their branch block nodes)\n * should never lack a Node[] `content` property.\n */\n return \"\";\n }\n /**\n * Algorithm notes: We only want to apply spacing when a node is part of a\n * sequence. This is tricky because nodes can often be deeply nested within\n * non-semantic content arrays. For example, to get the text value of an\n * unordered list, we have to traverse like so:\n *\n * {\n * nodeType: BLOCKS.UL_LIST,\n * data: {},\n * content: [\n * {\n * nodeType: BLOCKS.LIST_ITEM,\n * data: {},\n * content: [{\n * nodeType: BLOCKS.PARAGRAPH,\n * data: {},\n * content: [\n * { nodeType: 'text', data: {}, value: 'List ', marks: [] },\n * { nodeType: 'text', data: {}, value: 'item', marks: [{ type: 'bold' }] }\n * ]\n * }]\n * },\n * {\n * nodeType: BLOCKS.LIST_ITEM,\n * data: {},\n * content: [{\n * nodeType: BLOCKS.PARAGRAPH,\n * data: {},\n * content: [\n * { nodeType: 'text', data: {}, value: 'Another list item', marks: [] }\n * ]\n * }]\n * },\n * {\n * nodeType: BLOCKS.LIST_ITEM,\n * data: {},\n * content: [{\n * nodeType: BLOCKS.HR,\n * data: {},\n * content: [],\n * }]\n * },\n * {\n * nodeType: BLOCKS.LIST_ITEM,\n * data: {},\n * content: [{\n * nodeType: BLOCKS.PARAGRAPH,\n * data:\n * content: [\n * { nodeType: 'text', data: {}, value: 'Yet another list item', marks: [] }\n * ]\n * }]\n * },\n * }]\n * }\n *\n * We want there to be a space between 'List item' and 'Another list item' (to\n * denote a visual line break, which conventionally appears between non-text\n * node sequences) but not a redundant space between 'List ' and 'item'.\n * Moreover, we want just a _singular_ space between 'Another list item' and\n * 'Yet another list item' - the non-semantic HR between the two nodes should\n * not denote an additional space.\n */\n return (rootNode as Block).content.reduce(\n (acc: string, node: Node, i: number): string => {\n let nodeTextValue = \"\";\n\n if (helpers.isText(node)) {\n nodeTextValue = node.value;\n } else if (helpers.isBlock(node) || helpers.isInline(node)) {\n nodeTextValue = documentToPlainTextString(node, blockDivisor);\n if (!nodeTextValue.length) {\n return acc;\n }\n }\n\n const nextNode = rootNode.content[i + 1];\n const isNextNodeBlock = nextNode && helpers.isBlock(nextNode);\n const divisor = isNextNodeBlock ? blockDivisor : \"\";\n return acc + nodeTextValue + divisor;\n },\n \"\",\n );\n}\n","import { ProfileTopperProps } from \"design-system/components/toppers/profile-topper/profile-topper\";\nimport { WKProfileTopperEntry } from \"frontend/contentful/schema/toppers\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { createPersonImageProps } from \"../primitives/media-asset.props\";\nimport { RenderContentfulRichText } from \"../utils/render-contentful-rich-text\";\n\nexport const createWKProfileTopperProps = createContentfulProps<\n WKProfileTopperEntry,\n ProfileTopperProps\n>(({ entry }) => {\n const { getEntry, getEntries, getEntityName, getPersonLink } =\n useContentful();\n\n const props: ProfileTopperProps = {};\n\n const profile = getEntry(entry.fields.person);\n const originalEntry = profile;\n\n props.theme = entry.fields.theme;\n\n let mediaAsset = undefined;\n\n let units: string | undefined = undefined;\n\n if (profile) {\n getEntries(profile.fields.academicUnit)?.forEach((unit) => {\n if (unit?.fields.title) {\n units = [units, unit.fields.title].filter(Boolean).join(\", \");\n }\n });\n }\n\n if (profile) {\n props.titles = [\n ...(profile.fields.jobTitles || []),\n ...(profile.fields.secondaryPosition || []),\n ];\n props.name = getEntityName(originalEntry);\n\n if (!mediaAsset) mediaAsset = createPersonImageProps(profile);\n\n if (mediaAsset?.image?.src) {\n props.portrait = {\n ...mediaAsset.image,\n width: \"245px\",\n height: \"259px\",\n };\n }\n\n let profileLink = getPersonLink(profile);\n\n if (!profileLink) {\n const isFaculty = getEntries(profile.fields?.personType).some(\n (type) => type.fields.title === \"HBS Faculty\",\n );\n if (isFaculty && profile.fields?.hbsEnterpriseID) {\n profileLink = `https://www.hbs.edu/faculty/Pages/profile.aspx?facId=${profile.fields.hbsEnterpriseID}`;\n }\n }\n\n if (profileLink) {\n props.bioLink = {\n href: profileLink,\n children: \"Read full bio\",\n };\n }\n\n if (profile.fields.bio) {\n props.bio = ;\n }\n }\n\n return props;\n});\n","import { BylineAuthor } from \"design-system/components/primitives/byline/byline\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport {\n OrganizationEntry,\n PersonEntry,\n PersonWrapperEntry,\n} from \"frontend/contentful/schema/semantics\";\nimport { createPersonImageProps } from \"./media-asset.props\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\nimport { isContentType } from \"frontend/contentful/lib/is-content-type\";\n\nexport const createBylineAuthorProps = createContentfulProps<\n PersonEntry | PersonWrapperEntry | OrganizationEntry,\n BylineAuthor\n>(({ entry, createEditAttributes }) => {\n const { getPersonLink, getEntityName, getEntry } = useContentful();\n\n let authorEntry: PersonEntry | OrganizationEntry | undefined;\n\n if (isContentType(\"personWrapper\", entry)) {\n authorEntry = getEntry(entry.fields.person);\n } else {\n authorEntry = entry;\n }\n\n if (\n !isContentType(\"person\", authorEntry) &&\n !isContentType(\"organization\", authorEntry)\n ) {\n return undefined;\n }\n\n const props: BylineAuthor = {\n name: getEntityName(entry),\n link: getPersonLink(entry),\n avatar: createPersonImageProps(entry),\n editAttributes: {\n name: createEditAttributes({ entry, fieldId: \"firstName\" }),\n },\n };\n\n return props;\n});\n","import {\n BylineAuthor,\n BylineProps,\n} from \"design-system/components/primitives/byline/byline\";\nimport {\n ArticlePageEntry,\n PodcastEpisodePageEntry,\n} from \"frontend/contentful/schema/pages\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { createBylineAuthorProps } from \"../primitives/byline-author.props\";\nimport { isContentType } from \"frontend/contentful/lib/is-content-type\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\n\nexport const createBylineProps = createContentfulProps<\n ArticlePageEntry | PodcastEpisodePageEntry,\n BylineProps\n>(({ entry, createEditAttributes }) => {\n const { getIsPersonPastHbsFaculty } = useContentful();\n\n const props: BylineProps = {\n type: \"ShowAll\",\n publicationDate: entry.fields.publicationDate,\n editAttributes: {\n publicationDate: createEditAttributes({\n entry,\n fieldId: \"publicationDate\",\n }),\n },\n };\n\n props.authors = [];\n\n if (isContentType(\"articlePage\", entry)) {\n entry.fields.authors?.forEach((person) => {\n const bylinePersonProps = createBylineAuthorProps(person);\n if (bylinePersonProps) props.authors?.push(bylinePersonProps);\n });\n if (props.authors.length === 0 && entry.fields.legacyStoryBylineTypein) {\n const legacyAuthorByline: BylineAuthor = {\n name: entry.fields.legacyStoryBylineTypein,\n };\n props.authors.push(legacyAuthorByline);\n }\n entry.fields.relatedOrganizations?.forEach((organization) => {\n const bylinePersonProps = createBylineAuthorProps(organization);\n if (bylinePersonProps) props.authors?.push(bylinePersonProps);\n });\n }\n\n props.featuredAuthors = [];\n entry.fields.relatedFaculty?.forEach((person) => {\n if (getIsPersonPastHbsFaculty(person)) return;\n const bylinePersonProps = createBylineAuthorProps(person);\n if (bylinePersonProps) props.featuredAuthors?.push(bylinePersonProps);\n });\n\n if (props.featuredAuthors?.length > 0) props.headshots = true;\n\n return props;\n});\n","import { SplitTopperProps } from \"design-system/components/toppers/split-topper/split-topper\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { SplitArticleTopperEntry } from \"frontend/contentful/schema/toppers\";\n\nexport const createSplitArticleTopperProps = createContentfulProps<\n SplitArticleTopperEntry,\n SplitTopperProps\n>(({ entry }) => {\n const props: SplitTopperProps = {\n variant: \"article\",\n spotTheme: entry.fields.spotTheme,\n };\n return props;\n});\n","import { Icon, IconName } from \"design-system/components/icons/icon\";\nimport { EditAttributes } from \"design-system/types/types\";\nimport { Link } from \"../link/link\";\n\n// all social media icon names should be entirely lowercase to match the icon name from Contentful\nexport type SocialIconName = Extract<\n IconName,\n | \"apple\"\n | \"facebook\"\n | \"instagram\"\n | \"linkedin\"\n | \"youtube\"\n | \"tiktok\"\n | \"print\"\n | \"quicklink\"\n | \"mail\"\n | \"x\"\n>;\n\nexport interface SocialMediaIconProps {\n href?: string;\n icon?: SocialIconName;\n title?: string;\n print?: boolean;\n ariaLabel?: string;\n\n editAttributes?: EditAttributes;\n}\n\nexport function SocialMediaIcon({\n href,\n icon,\n title,\n print = false,\n ariaLabel,\n editAttributes,\n}: SocialMediaIconProps) {\n if (!icon || (!href && !print)) return null;\n\n return print ? (\n \n ) : (\n \n {ariaLabel || title}\n\n \n \n );\n}\n","import \"./social-media-links.scss\";\n\nimport { SocialMediaIcon, SocialMediaIconProps } from \"./social-media-icon\";\n\nexport interface SocialMediaLinksProps {\n links?: Array;\n}\n\n/**\n *\n * - **`id: P-023-000-00`**\n */\nexport function SocialMediaLinks({ links }: SocialMediaLinksProps) {\n if (!links || links.length < 1) {\n return null;\n }\n\n return (\n
\n {links.map((link, i) => (\n \n ))}\n
\n );\n}\n","import { SplitTopperProps } from \"design-system/components/toppers/split-topper/split-topper\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { SplitPageTopperPodcastEntry } from \"frontend/contentful/schema/toppers\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\nimport { createMediaAssetProps } from \"../primitives/media-asset.props\";\nimport { CtaLinkProps } from \"design-system/components/primitives/cta-link/cta-link\";\nimport { RenderContentfulRichText } from \"../utils/render-contentful-rich-text\";\n\nexport const createSplitPageTopperPodcastProps = createContentfulProps<\n SplitPageTopperPodcastEntry,\n SplitTopperProps\n>(({ entry }) => {\n const { getEntry, getEntries } = useContentful();\n const props: SplitTopperProps = {\n isPodcast: true,\n theme: entry.fields.theme,\n };\n\n const podcastSeries = getEntry(entry.fields.podcastSeries);\n\n if (podcastSeries) {\n props.title = podcastSeries.fields.title;\n\n props.subtitle = podcastSeries.fields.description && (\n \n );\n\n props.mediaAsset = createMediaAssetProps(podcastSeries.fields.relatedImage);\n\n const followUs: Array = [];\n\n getEntries(podcastSeries.fields.socialMediaLink).forEach((item) => {\n if (item.fields.socialMedia && item.fields.url) {\n followUs.push({\n children: item.fields.socialMedia,\n href: item.fields.url,\n });\n }\n });\n\n props.ctaList = { items: followUs };\n }\n\n return props;\n});\n","import { SearchTopperProps } from \"design-system/components/toppers/search-topper/search-topper\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { SearchTopperEntry } from \"frontend/contentful/schema/toppers\";\nimport { usePageProps } from \"frontend/hooks/use-page-props\";\nimport { ModernSearchHit, SearchResults, Suggestions } from \"frontend/types\";\nimport { useState } from \"react\";\nimport {\n hasSearchData,\n setdropDownActive,\n setdropDownUrl,\n} from \"../utils/get-page-search-props\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\nimport { fetcher } from \"frontend/hooks/use-fetch\";\nimport { createCtaLinkProps } from \"../primitives/cta-link.props\";\n\nexport const createSearchTopperProps = createContentfulProps<\n SearchTopperEntry,\n SearchTopperProps\n>(({ entry, createEditAttributes }) => {\n const { getEntryUrl, site } = useContentful();\n\n const pageProps = usePageProps();\n const [dropdownSuggestions, setDropdownSuggestions] =\n useState();\n const [dropdownItems, setDropdownItems] = useState>(\n [],\n );\n\n const props: SearchTopperProps = {\n theme: entry.fields.theme,\n title: entry.fields.title,\n placeholder: entry.fields.placeholder,\n editAttributes: {\n title: createEditAttributes({ entry, fieldId: \"title\" }),\n placeholder: createEditAttributes({ entry, fieldId: \"placeholder\" }),\n },\n };\n\n if (entry.fields.searchDropdownType === \"Suggestions\") {\n const dropDownActive = setdropDownActive(pageProps);\n const url = setdropDownUrl(site, entry.fields.searchDropdownType);\n\n const handleSearch = async (term: string) => {\n if (!term || term === \"\" || term.length < 3) {\n setDropdownItems([]);\n setDropdownSuggestions({});\n return;\n }\n\n const data = (await fetcher({\n url: url,\n params: { term },\n })) as SearchResults;\n\n if (hasSearchData(data)) {\n if (\"hits\" in data) {\n setDropdownItems(data.hits.map((hit) => hit as ModernSearchHit));\n }\n if (\"updatedSuggestions\" in data && data.updatedSuggestions) {\n setDropdownSuggestions(data.updatedSuggestions);\n }\n }\n\n return;\n };\n\n let currentPageUrl = undefined;\n if (pageProps.currentPage?.url) {\n currentPageUrl = pageProps.currentPage.url;\n if (pageProps.currentPage?.url.indexOf(\".hbs.edu\") > -1) {\n currentPageUrl = pageProps.currentPage?.url.split(\".hbs.edu\")[1];\n }\n }\n\n props.searchDropdown = {\n placeholder: entry.fields.placeholder,\n dropdownFooterLabel: entry.fields.searchDropdownFooterLabel,\n hasDropdown: dropDownActive,\n searchLink: getEntryUrl(entry.fields.searchDropdownCta) || currentPageUrl,\n dropdownCta: createCtaLinkProps(entry.fields.searchDropdownCta),\n handleSearch: (term: string) => {\n void handleSearch(term);\n },\n dropdownItems,\n dropdownSuggestions,\n site: site,\n };\n }\n\n return props;\n});\n","import { DashboardTopperProps } from \"design-system/sites/alumni/dashboard-topper/dashboard-topper\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { DashboardTopperEntry } from \"frontend/contentful/schema/toppers\";\nimport { useFetch } from \"frontend/hooks/use-fetch\";\nimport { AlumniUserProfile } from \"frontend/types\";\nimport { usePageProps } from \"frontend/hooks/use-page-props\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\n\nexport const createDashboardTopperProps = createContentfulProps<\n DashboardTopperEntry,\n DashboardTopperProps\n>(() => {\n const { request } = usePageProps();\n const { site } = useContentful();\n\n const props: DashboardTopperProps = {\n title: \"Welcome\",\n hiddenTitle:\n request.path.substring(1) === site?.fields.slug ||\n (request.path === \"/\" && site?.fields.domain !== \"www\")\n ? site?.fields.title\n : undefined,\n\n items: [],\n };\n\n // Fetch Alumni data from API to populate the dashboard topper with personalized information\n const { data, error } = useFetch({\n url: \"/api/internal/alumni/me\",\n params: {},\n });\n\n if (error) {\n props.title = \"Sorry...\";\n props.items = [\n {\n title: \"Error\",\n value:\n \"There was an error loading the alumni data. Please try again later.\",\n },\n ];\n return props;\n }\n\n if (!data) {\n return props;\n } else {\n const visibleClubsLength =\n data?.clubs.filter((club) => club.visible).length ?? 0;\n\n const classYear = data?.currentUserDetails?.details?.classYear;\n const degree = data?.currentUserDetails?.details?.degree;\n const section = data?.currentUserDetails?.details?.section;\n\n props.title = \"Welcome back, \" + data.displayName;\n props.items = [\n {\n title: \"Current Company\",\n value: data.currentEmployment?.organization?.organizationName ?? \"N/A\",\n },\n {\n title: \"Current Role\",\n value: data.currentEmployment?.jobTitle ?? \"N/A\",\n },\n {\n title: \"Location\",\n value: `${data.primaryHomeAddress?.city ?? \"\"}${data.primaryHomeAddress?.city ? \", \" : \"\"}${data.primaryHomeAddress?.stateCode ?? \"\"}${data.primaryHomeAddress?.stateCode ? \", \" : \"\"}${data.primaryHomeAddress?.country?.description ?? \"\"}`,\n },\n {\n title: \"Interests\",\n value: (\n <>\n {data.interests\n .sort((a, b) => a.sortOrder - b.sortOrder)\n .slice(0, 1)\n .map((interest, index) => (\n {interest.desc}\n ))}\n {data.interests.length > 1 && (\n <>\n {\", \"}\n and {data.interests.length - 1}{\" \"}\n {data.interests.length > 3 ? \"others\" : \"other\"}\n \n )}\n \n ),\n },\n {\n title: \"Clubs\",\n value: (\n <>\n {data.clubs\n .filter((club) => club.visible)\n .slice(0, 1)\n .map((club, index) => (\n {club.club.clubDescription}\n ))}\n {visibleClubsLength > 1 && (\n <>\n {\", \"}\n and {visibleClubsLength - 1}{\" \"}\n {visibleClubsLength > 3 ? \"others\" : \"other\"}\n \n )}\n \n ),\n },\n {\n title: \"HBS Affiliation\",\n value: `${degree} ${classYear}${section ? \", Section \" + section : \"\"}`,\n },\n ];\n\n props.info = {\n percentage: data.profilePercentComplete,\n href: \"#\",\n };\n props.cta = {\n href: \"#\",\n children: \"Update Your Profile\",\n };\n }\n\n return props;\n});\n","import { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { isContentType } from \"frontend/contentful/lib/is-content-type\";\nimport { createSimpleArticleTopperProps } from \"./simple-article-topper.props\";\nimport { createBigArtTopperProps } from \"./big-art-topper.props\";\nimport { createSplitArticleTopperProps } from \"./split-article-topper.props\";\nimport { createCardTopperProps } from \"./card-topper.props\";\nimport { createMissionTopperProps } from \"./mission-topper/mission-topper.props\";\nimport { createStatisticsTopperProps } from \"./statistics-topper.props\";\nimport { createSplitPageTopperProps } from \"./split-page-topper.props\";\nimport { createSplitPageTopperPodcastProps } from \"./split-page-topper-podcast.props\";\nimport { createSimplePageTopperProps } from \"./simple-page-topper.props\";\nimport { createMediaTopperProps } from \"./media-topper.props\";\nimport { createEditorialTopperProps } from \"./editorial-topper.props\";\nimport {\n ParticipantStoryTopperOptions,\n createParticipantStoryTopperProps,\n} from \"./participant-story-topper.props\";\nimport { createSearchTopperProps } from \"./search-topper.props\";\nimport { createLargeAssetTopperProps } from \"./large-asset-topper.props\";\nimport { ContentfulEntry } from \"frontend/contentful/schema/sys\";\nimport { LazyComponentProps } from \"design-system/components/system/lazy-component/lazy-component\";\nimport {\n BigArtTopperEntry,\n CardTopperEntry,\n MediaTopperEntry,\n MissionTopperEntry,\n SearchTopperEntry,\n SimpleArticleTopperEntry,\n SimplePageTopperEntry,\n SplitArticleTopperEntry,\n SplitPageTopperEntry,\n StatisticsTopperEntry,\n EditorialTopperEntry,\n ParticipantStoryTopperEntry,\n LargeAssetTopperEntry,\n SplitPageTopperPodcastEntry,\n SplitSearchTopperEntry,\n FeaturedTermTopperEntry,\n WKFeaturedTermTopperEntry,\n SelectTopperEntry,\n WKProfileTopperEntry,\n DashboardTopperEntry,\n TopperWrapperMultiEntry,\n AudienceTopperWrapperEntry,\n} from \"frontend/contentful/schema/toppers\";\nimport { createSplitSearchTopperProps } from \"./split-search-topper.props\";\nimport { createFeaturedTermTopperProps } from \"./featured-term-topper.props\";\nimport { createWKFeaturedTermTopperProps } from \"./wk-featured-term-topper.props\";\nimport { createSelectTopperProps } from \"./select-topper.props\";\nimport { createWKProfileTopperProps } from \"./wk-profile-topper.props\";\nimport { createDashboardTopperProps } from \"./dashboard-topper.props\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\nimport { usePageProps } from \"frontend/hooks/use-page-props\";\n\nexport type LazyComponentOptions = ParticipantStoryTopperOptions;\n\n/**\n * Since pages require topper props to dynamically render, this function selects the correct topper prop generator\n * for the entry type passed.\n *\n * A better solution would possibly be to adjust pages to accept a rendered react topper element, so we can use `` instead.\n */\n\nexport const createLazyTopperProps = createContentfulProps<\n ContentfulEntry,\n LazyComponentProps,\n LazyComponentOptions\n>(({ entry, options }) => {\n const { getEntries, getEntry } = useContentful();\n const pageProps = usePageProps();\n\n //If audience wrapper entries, get the 1 topper based on role\n if (isContentType(\"topperWrapperMulti\", entry)) {\n const permissionToppers = getEntries(entry.fields.toppers)?.filter(\n (topper) => {\n if (\n isContentType(\n \"audienceTopperWrapper\",\n topper,\n )\n ) {\n const topperPermissions = getEntries(topper.fields.permissions);\n\n let userIsAuthorized = false;\n\n //if logged in user's role code matches...\n topperPermissions.forEach((topperPermission) => {\n const role = topperPermission.fields.roleCode;\n if (role && pageProps.session?.user.roles.includes(role)) {\n userIsAuthorized = true;\n }\n });\n\n return userIsAuthorized;\n }\n return true;\n },\n );\n const audienceWrapperTopper = permissionToppers?.find(\n (topper): topper is AudienceTopperWrapperEntry =>\n isContentType(\n \"audienceTopperWrapper\",\n topper,\n ),\n );\n\n if (audienceWrapperTopper?.fields.topper) {\n return createLazyTopperPropsInner(\n getEntry(audienceWrapperTopper.fields.topper),\n options,\n );\n }\n\n return createLazyTopperPropsInner(permissionToppers?.[0], options);\n }\n\n return createLazyTopperPropsInner(entry, options);\n});\n\nfunction createLazyTopperPropsInner(\n entry?: ContentfulEntry,\n options?: LazyComponentOptions,\n): LazyComponentProps | undefined {\n if (isContentType(\"simpleArticleTopper\", entry)) {\n return {\n name: \"ArticleTopper\",\n props: createSimpleArticleTopperProps(entry),\n };\n }\n\n if (isContentType(\"bigArtTopper\", entry)) {\n return { name: \"ArticleTopper\", props: createBigArtTopperProps(entry) };\n }\n\n if (isContentType(\"splitArticleTopper\", entry)) {\n return {\n name: \"SplitTopper\",\n props: createSplitArticleTopperProps(entry),\n };\n }\n\n if (\n isContentType(\"splitPageTopperPodcast\", entry)\n ) {\n return {\n name: \"SplitTopper\",\n props: createSplitPageTopperPodcastProps(entry),\n };\n }\n\n if (isContentType(\"splitSearchTopper\", entry)) {\n return {\n name: \"SplitTopper\",\n props: createSplitSearchTopperProps(entry),\n };\n }\n\n if (isContentType(\"cardTopper\", entry)) {\n return { name: \"CardTopper\", props: createCardTopperProps(entry) };\n }\n\n if (isContentType(\"missionTopper\", entry)) {\n return { name: \"MissionTopper\", props: createMissionTopperProps(entry) };\n }\n\n if (isContentType(\"mediaTopper\", entry)) {\n return { name: \"MediaTopper\", props: createMediaTopperProps(entry) };\n }\n\n if (isContentType(\"simplePageTopper\", entry)) {\n return {\n name: \"SimplePageTopper\",\n props: createSimplePageTopperProps(entry),\n };\n }\n\n if (isContentType(\"splitPageTopper\", entry)) {\n return { name: \"SplitTopper\", props: createSplitPageTopperProps(entry) };\n }\n\n if (isContentType(\"editorialTopper\", entry)) {\n return {\n name: \"EditorialTopper\",\n props: createEditorialTopperProps(entry),\n };\n }\n\n if (isContentType(\"statisticsTopper\", entry)) {\n return {\n name: \"StatisticsTopper\",\n props: createStatisticsTopperProps(entry),\n };\n }\n\n if (\n isContentType(\"participantStoryTopper\", entry)\n ) {\n return {\n name: \"ParticipantStoryTopper\",\n props: createParticipantStoryTopperProps(entry, options),\n };\n }\n\n if (isContentType(\"searchTopper\", entry)) {\n return { name: \"SearchTopper\", props: createSearchTopperProps(entry) };\n }\n\n if (isContentType(\"largeAssetTopper\", entry)) {\n return {\n name: \"LargeAssetTopper\",\n props: createLargeAssetTopperProps(entry),\n };\n }\n\n if (isContentType(\"featuredTermTopper\", entry)) {\n return {\n name: \"FeaturedTermTopper\",\n props: createFeaturedTermTopperProps(entry),\n };\n }\n\n if (isContentType(\"wkFeaturedTermTopper\", entry)) {\n return {\n name: \"FeaturedTermTopper\",\n props: createWKFeaturedTermTopperProps(entry),\n };\n }\n\n if (isContentType(\"selectTopper\", entry)) {\n return {\n name: \"SelectTopper\",\n props: createSelectTopperProps(entry),\n };\n }\n\n if (isContentType(\"wkProfileTopper\", entry)) {\n return {\n name: \"ProfileTopper\",\n props: createWKProfileTopperProps(entry),\n };\n }\n\n if (isContentType(\"dashboardTopper\", entry)) {\n return {\n name: \"DashboardTopper\",\n props: createDashboardTopperProps(entry),\n };\n }\n\n return undefined;\n}\n","import { ArticleTeaseProps } from \"design-system/components/primitives/article-tease/article-tease\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { ArticlePageEntry } from \"frontend/contentful/schema/pages\";\nimport { createMediaAssetProps } from \"frontend/contentful/components/primitives/media-asset.props\";\nimport { documentToString } from \"frontend/contentful/lib/document-to-string\";\nimport { createBylineProps } from \"frontend/contentful/components/primitives/byline.props\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\n\nexport const createArticleTeaseProps = createContentfulProps<\n ArticlePageEntry,\n ArticleTeaseProps\n>(({ entry, createEditAttributes }) => {\n const { getEntry, getEntryUrl } = useContentful();\n\n const props: ArticleTeaseProps = {\n type: \"Article\",\n title: entry.fields?.title,\n link: getEntryUrl(entry),\n byline: createBylineProps(entry),\n tease: documentToString(\n entry.fields?.description ?? entry.fields?.shortDescription,\n ),\n\n editAttributes: {\n title: createEditAttributes({ entry, fieldId: \"title\" }),\n },\n };\n\n const mediaAsset = createMediaAssetProps(\n entry.fields.teaseImage || entry.fields.leadImage,\n );\n // force 4:3 aspect ratio\n if (mediaAsset?.image) {\n mediaAsset.image.width = \"600px\";\n mediaAsset.image.height = \"450px\";\n }\n\n props.image = mediaAsset?.image;\n props.video = mediaAsset?.video;\n props.kaltura = mediaAsset?.kaltura;\n if (props.kaltura) {\n props.kaltura.withModal = true;\n }\n\n const overlineEntry = getEntry(entry.fields.overline);\n\n if (overlineEntry?.fields.text && overlineEntry.fields.url) {\n props.overline = {\n label: overlineEntry.fields.text,\n link: getEntryUrl(overlineEntry),\n };\n }\n\n return props;\n});\n","import { Icon } from \"design-system/components/icons/icon\";\nimport { Link } from \"design-system/components/primitives/link/link\";\nimport { EditAttributes } from \"design-system/types/types\";\nimport { ReactNode } from \"react\";\n\nexport interface SiteFooterPrimaryCtaProps {\n title?: ReactNode;\n description?: ReactNode;\n href?: string;\n\n editAttributes?: {\n url?: EditAttributes;\n title?: EditAttributes;\n description?: EditAttributes;\n };\n}\n\nexport function SiteFooterPrimaryCta({\n title,\n description,\n href,\n editAttributes,\n}: SiteFooterPrimaryCtaProps) {\n if (!title || !href) return null;\n\n return (\n
\n
\n \n \n {title}\n \n \n\n \n {description}\n \n
\n
\n \n );\n}\n","import { EditAttributes } from \"design-system/types/types\";\nimport { ReactNode } from \"react\";\n\ninterface SiteFooterBlockItem {\n children: ReactNode;\n editAttributes?: EditAttributes;\n}\n\nexport interface SiteFooterBlockProps {\n title?: ReactNode;\n items?: Array;\n\n editAttributes?: {\n title?: EditAttributes;\n };\n}\n\nexport function SiteFooterBlock({\n title,\n items,\n editAttributes,\n}: SiteFooterBlockProps) {\n return (\n
\n {title && (\n

\n {title}\n

\n )}\n\n {items?.map(({ editAttributes, children }, i) => (\n
\n {children}\n
\n ))}\n
\n );\n}\n","import \"./site-footer.scss\";\n\nimport {\n SiteFooterPrimaryCta,\n SiteFooterPrimaryCtaProps,\n} from \"./site-footer-primary-cta\";\nimport { SiteFooterBlock, SiteFooterBlockProps } from \"./site-footer-block\";\nimport { Link, LinkProps } from \"design-system/components/primitives/link/link\";\n\nexport interface SiteFooterProps {\n displayPrimaryCTA?: boolean;\n footerBlocks?: Array;\n footerLegalItems?: Array;\n footerPrimaryCta?: SiteFooterPrimaryCtaProps;\n siteType?: string;\n siteTitle?: string;\n}\n\n/**\n * - **`id: UC-003-000-01`**\n * - **`data-region: uc__site-footer__donation-cta`**\n */\n\nexport function SiteFooter({\n footerBlocks,\n footerLegalItems,\n footerPrimaryCta,\n displayPrimaryCTA,\n siteType,\n siteTitle,\n}: SiteFooterProps) {\n if (!Array.isArray(footerBlocks)) footerBlocks = [];\n if (!Array.isArray(footerLegalItems)) footerLegalItems = [];\n\n const showPrimaryCta = displayPrimaryCTA && footerPrimaryCta;\n const dataRegion = `uc__site-footer${showPrimaryCta ? \"__donation-cta\" : \"\"}`;\n\n const footerLabel =\n siteType === \"internal\" ? \"myHBS\" : \"Harvard Business School\";\n const footerLink =\n siteType === \"internal\"\n ? \"https://inside.hbs.edu/myhbs.aspx\"\n : \"https://www.hbs.edu\";\n\n return (\n \n {/* Footer Primary CTA */}\n {showPrimaryCta && }\n\n {/* Footer content */}\n
\n
\n
\n
\n {footerLabel}\n
\n
\n\n {footerBlocks.map((block, i) => (\n \n ))}\n
\n
\n\n {/* Footer copyrights */}\n
\n
\n

\n © President & Fellows of Harvard College\n

\n\n
\n {footerLegalItems.map((link, i) => (\n \n ))}\n
\n\n {siteTitle === \"MBA\" && (\n
\n Harvard Business School does not discriminate against applicants\n or students on the basis of race, color, national origin,\n ancestry, or any other protected classification.\n
\n )}\n
\n
\n \n );\n}\n","export type DataLayer = Array;\n\nexport const dataLayer: DataLayer = [];\n\ndeclare global {\n interface Window {\n dataLayer: DataLayer;\n }\n}\n\nexport interface GTMPageMetadata {\n storyID?: string;\n pubDate?: string;\n storyType?: string;\n parentTopic?: string;\n childTopic?: string;\n relatedFaculty?: string;\n relatedTopics?: string;\n authors?: string;\n programAcronym?: string;\n relatedIndustry?: string;\n relatedGeo?: string;\n}\n","import { HTMLAttributes, ReactNode, useEffect } from \"react\";\nimport {\n SiteFooter,\n SiteFooterProps,\n} from \"design-system/components/universal/site-footer/site-footer\";\nimport {\n ExtractLazyComponent,\n LazyComponent,\n} from \"design-system/components/system/lazy-component/lazy-component\";\n\nexport type SiteHeaderComponent = ExtractLazyComponent<\"SiteHeader\">;\n\nimport { dataLayer, GTMPageMetadata } from \"design-system/utils/data-layer\";\nimport { Theme } from \"design-system/utils/theme\";\n\nexport interface BaseLayout extends HTMLAttributes {\n children?: ReactNode;\n footer?: SiteFooterProps;\n header?: SiteHeaderComponent;\n theme?: Theme;\n gtmPageEvent?: GTMPageMetadata;\n}\n\nexport function BaseLayout({\n children,\n footer,\n header,\n gtmPageEvent,\n ...props\n}: BaseLayout) {\n useEffect(() => {\n if (gtmPageEvent) {\n dataLayer?.push(gtmPageEvent);\n }\n }, [gtmPageEvent]);\n\n return (\n
\n
\n {header && }\n {children}\n
\n\n {footer && }\n
\n );\n}\n","import { SiteEntry } from \"frontend/contentful/schema/universal\";\nimport { Suggestions, PageProps, SearchResults } from \"frontend/types\";\n\nexport const hasSearchData = (data: SearchResults | Suggestions): boolean => {\n if (typeof data === \"object\") {\n if (\"hits\" in data) {\n return !!data.hits;\n }\n if (\"updatedSuggestions\" in data) {\n if (data.updatedSuggestions?.suggestions) {\n return true;\n }\n }\n }\n return false;\n};\n\nexport const setdropDownActive = (pageProps: PageProps) => {\n if (pageProps.request.domain === \"library\") return true;\n return false;\n};\n\nexport const setdropDownUrl = (site?: SiteEntry, dropDownType?: string) => {\n if (site?.fields.title === \"Baker Library\") {\n return \"/api/fetch/baker-search\";\n } else if (\n site?.fields.domain === \"library\" &&\n dropDownType === \"Suggestions\"\n ) {\n return \"/api/fetch/knowledge-site-search\";\n }\n return \"/api/fetch/site-search\";\n};\n","export type Theme = keyof typeof theme;\nexport type ThemeValue = (typeof theme)[Theme];\n\nexport const theme = {\n light: \"#f6f4f2\",\n white: \"#ffffff\",\n dark: \"#222222\",\n black: \"#000000\",\n crimson: \"#a41034\",\n red: \"#e80538\",\n purple: \"#85609f\",\n blue: \"#aac8eb\",\n} as const;\n\nexport const themeOptions = Object.entries(theme).map(([key]) => key);\n\nexport type SimpleTheme = Exclude;\n\nexport const simpleTheme = Object.entries(theme).filter(\n ([key]) => ![\"purple\", \"blue\"].includes(key),\n);\nexport const simpleThemeOptions = simpleTheme.map(([key]) => key);\n\nexport type SiteHeaderTheme = Theme | \"plain-light\" | \"plain-dark\";\n\nexport const defaultPageSectionTheme = \"light\";\n\nexport function getThemeByValue(hexCode: ThemeValue): Theme {\n return (\n (Object.entries(theme).find(\n ([, value]) => value === hexCode,\n )?.[0] as Theme) || \"light\"\n );\n}\n\nexport type ExpandedPalette = keyof typeof expandedPalette;\nexport type ExpandedPaletteValue = (typeof expandedPalette)[ExpandedPalette];\n\nexport const expandedPalette = {\n crimson: theme.crimson,\n red2: theme.red,\n red3: \"#ED5541\",\n red4: \"#E0B2A7\",\n orange1: \"#AE6429\",\n orange2: \"#E87D1E\",\n orange4: \"#F7C76B\",\n yellow2: \"#EBCD00\",\n yellow3: \"#F3E44D\",\n green1: \"#026833\",\n green2: \"#52A52E\",\n green4: \"#B3D56A\",\n teal1: \"#006085\",\n teal3: \"#56BAB3\",\n teal4: \"#9BD6C4\",\n blue1: \"#3B2883\",\n blue3: \"#7FA4D1\",\n blue4: theme.blue,\n purple1: \"#57116A\",\n purple2: \"#80408D\",\n purple3: \"#9B7FAF\",\n purple4: \"#C6B2D1\",\n magenta1: \"#78244C\",\n magenta2: \"#C9006B\",\n magenta3: \"#D86199\",\n magenta4: \"#E599BA\",\n black: theme.black,\n dark: theme.dark,\n gray2: \"#68666F\",\n gray3: \"#A3A0A2\",\n gray4: \"#D5D0CA\",\n white: theme.white,\n light: theme.light,\n} as const;\n\n// Spot themes that are dark background with light text\nexport const paletteThemesOnDark: Array = [\n \"crimson\",\n \"red2\",\n \"orange1\",\n \"green1\",\n \"teal1\",\n \"blue1\",\n \"purple1\",\n \"purple2\",\n \"magenta1\",\n \"magenta2\",\n \"black\",\n \"dark\",\n \"gray2\",\n];\n\nexport const spotThemeOptions = Object.entries(expandedPalette).map(\n ([key]) => key,\n);\n\nexport const getSplitTopperTheme = (spotTheme: ExpandedPalette | undefined) =>\n spotTheme && paletteThemesOnDark.includes(spotTheme) ? \"dark\" : \"white\";\n\nexport const getLargeAssetTopperTheme = (\n spotTheme: ExpandedPalette | undefined,\n): SiteHeaderTheme => {\n if (spotTheme === \"red2\") return \"red\";\n if (spotTheme === \"blue4\") return \"blue\";\n if (spotTheme && themeOptions.includes(spotTheme)) {\n return spotTheme as SiteHeaderTheme;\n }\n return spotTheme && paletteThemesOnDark.includes(spotTheme)\n ? \"plain-dark\"\n : \"plain-light\";\n};\n\nexport type BackgroundColors = keyof typeof backgroundColors;\nexport type BackgroundColorsValue = (typeof backgroundColors)[BackgroundColors];\n\nexport const backgroundColors = {\n light: theme.light,\n white: theme.white,\n dark: theme.dark,\n black: theme.black,\n crimson: theme.crimson,\n} as const;\n\nexport const backgroundColorsOptions = Object.keys(backgroundColors);\n","import { MediaTopperProps } from \"design-system/components/toppers/media-topper/media-topper\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { MediaTopperEntry } from \"frontend/contentful/schema/toppers\";\nimport { RenderContentfulRichText } from \"../utils/render-contentful-rich-text\";\nimport { createMediaAssetProps } from \"../primitives/media-asset.props\";\nimport { createCtaLinkProps } from \"../primitives/cta-link.props\";\nimport { usePageProps } from \"frontend/hooks/use-page-props\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\n\nexport const createMediaTopperProps = createContentfulProps<\n MediaTopperEntry,\n MediaTopperProps\n>(({ entry, createEditAttributes }) => {\n const { request } = usePageProps();\n const { site } = useContentful();\n\n const props: MediaTopperProps = {\n assets: [],\n title: entry.fields.title,\n hiddenTitle:\n request.path.substring(1) === site?.fields.slug ||\n (request.path === \"/\" && site?.fields.domain !== \"www\")\n ? site?.fields.title\n : undefined,\n theme: entry.fields.theme,\n isSeamless: entry.fields.isSeamless,\n editAttributes: {\n title: createEditAttributes({ entry, fieldId: \"title\" }),\n subtitle: createEditAttributes({ entry, fieldId: \"subtitle\" }),\n },\n };\n\n const cta = createCtaLinkProps(entry.fields.ctaButton);\n if (cta) {\n props.cta = cta;\n props.cta.type = \"primary-button\";\n }\n\n if (entry.fields.subtitle) {\n props.subtitle = (\n \n );\n }\n\n entry.fields.media?.forEach((media) => {\n const mediaProps = createMediaAssetProps(media);\n if (mediaProps) props.assets.push(mediaProps);\n });\n\n return props;\n});\n","import { HeroTeaseProps } from \"design-system/components/blocks/hero-tease/hero-tease\";\nimport {\n LegacySearchHit,\n ModernSearchHit,\n SearchDisplay,\n SearchHit,\n} from \"frontend/types\";\nimport { isSearchHitType } from \"./is-search-hit-type\";\nimport { BylineAuthor } from \"design-system/components/primitives/byline/byline\";\n\nexport function createSearchHeroTease(data?: SearchHit) {\n if (isSearchHitType(\"modern\", data)) {\n return createModernSearchHeroTease(data);\n }\n if (isSearchHitType(\"legacy\", data)) {\n return createLegacySearchHeroTease(data);\n }\n}\n\nexport function createModernSearchHeroTease(\n data?: ModernSearchHit,\n): HeroTeaseProps | undefined {\n if (data && typeof data === \"object\") {\n const props: HeroTeaseProps = {};\n\n if (data.title) props.title = data.title;\n if (data.description) props.subheading = data.description;\n if (isSearchHitType(\"modern\", data)) {\n if (data.display?.thumbnail?.src) {\n props.media = { image: { src: data.display.thumbnail.src } };\n }\n\n if (data.display?.byline) {\n const byline: Array = [];\n\n data.display.byline.forEach((author) => {\n if (author.label) {\n byline.push({ name: author.label, link: author.link });\n }\n });\n\n props.byline = {\n publicationDate: data.display.date,\n authors: byline,\n };\n }\n\n if (data.display?.overline) {\n props.overline = {\n label: data.display.overline.label,\n link: data.display.overline.link,\n };\n }\n }\n\n if (data.url) {\n props.link = data.url;\n }\n return props;\n }\n}\n\nexport function createLegacySearchHeroTease(\n data?: LegacySearchHit,\n): HeroTeaseProps | undefined {\n if (data && typeof data === \"object\") {\n const props: HeroTeaseProps = {};\n\n if (data.HBSTitle) props.title = data.HBSTitle;\n if (data.HBSDescription) props.subheading = data.HBSDescription;\n if (data.HBSThumbnail) props.media = { image: { src: data.HBSThumbnail } };\n if (data.HBSByline) {\n let authors = data.HBSByline;\n\n if (authors.startsWith(\"by \")) authors = authors.substring(3);\n if (authors.startsWith(\"By: \")) authors = authors.substring(4);\n if (authors.startsWith(\"Re: \")) authors = authors.substring(4);\n\n props.byline = {\n publicationDate: data.HBSPubDate,\n authors: [{ name: authors }],\n };\n }\n\n if (data.HBSLink) {\n props.link = data.HBSLink;\n\n if (data.HBSSource) {\n props.overline = { label: data.HBSSource, link: data.HBSLink };\n }\n }\n return props;\n }\n}\n","import { MissionTopperCardEntry } from \"frontend/contentful/schema/toppers\";\nimport { createContentfulProps } from \"../../../lib/create-contentful-props\";\nimport { MissionTopperTextPartDetail } from \"design-system/sites/home/mission-topper/mission-topper\";\nimport { RenderContentfulRichText } from \"../../utils/render-contentful-rich-text\";\nimport { createMediaAssetProps } from \"../../primitives/media-asset.props\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\n\nexport const createMissionTopperTextPartDetailProps = createContentfulProps<\n MissionTopperCardEntry,\n MissionTopperTextPartDetail\n>(({ entry, createEditAttributes }) => {\n const { getEntryUrl } = useContentful();\n\n const media = createMediaAssetProps(entry.fields.media);\n\n if (media) {\n return {\n media,\n cta: {\n text: ,\n linkText: entry.fields?.title,\n linkUrl: getEntryUrl(entry.fields.link),\n\n editAttributes: {\n url: createEditAttributes({\n entry: entry.fields.link,\n fieldId: \"url\",\n }),\n text: createEditAttributes({ entry, fieldId: \"description\" }),\n linkText: createEditAttributes({ entry, fieldId: \"title\" }),\n },\n },\n };\n }\n});\n","import { BLOCKS, INLINES } from \"@contentful/rich-text-types\";\nimport {\n MissionTopperCardEntry,\n MissionTopperEntry,\n} from \"frontend/contentful/schema/toppers\";\nimport { isContentType } from \"frontend/contentful/lib/is-content-type\";\nimport {\n MissionTopperProps,\n MissionTopperTextPart,\n} from \"design-system/sites/home/mission-topper/mission-topper\";\nimport { createMediaAssetProps } from \"frontend/contentful/components/primitives/media-asset.props\";\nimport { createMissionTopperTextPartDetailProps } from \"frontend/contentful/components/toppers/mission-topper/mission-topper-text-part-details.props\";\n\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\nimport { ContentfulEntry } from \"frontend/contentful/schema/sys\";\n\nexport const createMissionTopperProps = createContentfulProps<\n MissionTopperEntry,\n MissionTopperProps\n>(({ entry, createEditAttributes }) => {\n const { getEntry } = useContentful();\n\n const defaultMedia = createMediaAssetProps(entry.fields.media);\n\n if (!defaultMedia) return;\n\n const parts: Array = [];\n\n if (entry.fields.text && Array.isArray(entry.fields.text.content)) {\n entry.fields.text.content.forEach((p) => {\n if (p?.nodeType === BLOCKS.PARAGRAPH) {\n p.content.forEach((item) => {\n const part: MissionTopperTextPart = { text: \"\" };\n\n if (item.nodeType === \"text\" && item.value) {\n part.text = item.value;\n }\n\n if (item.nodeType === INLINES.ENTRY_HYPERLINK) {\n if (item.content[0]?.nodeType === \"text\") {\n part.text = item.content[0].value;\n }\n\n const target = getEntry(item.data?.target as ContentfulEntry);\n\n if (\n isContentType(\"missionTopperCard\", target)\n ) {\n part.details = createMissionTopperTextPartDetailProps(target);\n }\n }\n\n if (part.text) parts.push(part);\n });\n }\n });\n }\n\n return {\n parts,\n defaultMedia,\n editAttributes: {\n text: createEditAttributes({ entry, fieldId: \"text\" }),\n defaultMedia: createEditAttributes({\n entry: entry.fields.media,\n fieldId: \"asset\",\n }),\n },\n };\n});\n","import { SplitTopperProps } from \"design-system/components/toppers/split-topper/split-topper\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { SplitPageTopperEntry } from \"frontend/contentful/schema/toppers\";\nimport { RenderContentfulRichText } from \"../utils/render-contentful-rich-text\";\nimport { createMediaAssetProps } from \"../primitives/media-asset.props\";\nimport { createCtaListProps } from \"../primitives/cta-list.props\";\nimport { createCtaLinkProps } from \"../primitives/cta-link.props\";\nimport { usePageProps } from \"frontend/hooks/use-page-props\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\n\nexport const createSplitPageTopperProps = createContentfulProps<\n SplitPageTopperEntry,\n SplitTopperProps\n>(({ entry, createEditAttributes }) => {\n const { request } = usePageProps();\n const { site } = useContentful();\n\n return {\n theme: entry.fields.theme,\n title: entry.fields.title,\n hiddenTitle:\n request.path.substring(1) === site?.fields.slug\n ? site.fields.title\n : undefined,\n subtitle: entry.fields.subtitle && (\n \n ),\n mediaAsset: createMediaAssetProps(entry.fields.media),\n ctaList: createCtaListProps(entry.fields.links),\n ctaButton: createCtaLinkProps(entry.fields.ctaButton),\n\n editAttributes: {\n title: createEditAttributes({ entry, fieldId: \"title\" }),\n subtitle: createEditAttributes({ entry, fieldId: \"subtitle\" }),\n },\n };\n});\n","export function filterUndefined(\n value: T | undefined | null | false | \"\",\n): value is T {\n return Boolean(value);\n}\n","import { StatisticProps } from \"design-system/components/primitives/statistic/statistic\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { StatisticEntry } from \"frontend/contentful/schema/semantics\";\nimport { RenderContentfulRichText } from \"../utils/render-contentful-rich-text\";\n\nexport const createStatisticProps = createContentfulProps<\n StatisticEntry,\n StatisticProps\n>(({ entry, createEditAttributes }) => {\n const props: StatisticProps = {\n figure: entry.fields.value,\n unit: entry.fields.suffix,\n prefixedUnit: entry.fields.prefix,\n description: (\n \n ),\n\n editAttributes: {\n value: createEditAttributes({ entry, fieldId: \"value\" }),\n description: createEditAttributes({ entry, fieldId: \"title\" }),\n },\n };\n return props;\n});\n","import { ArticleTopperProps } from \"design-system/components/toppers/article-topper/article-topper\";\nimport { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { SimpleArticleTopperEntry } from \"frontend/contentful/schema/toppers\";\n\nexport const createSimpleArticleTopperProps = createContentfulProps<\n SimpleArticleTopperEntry,\n ArticleTopperProps\n>(({ entry }) => {\n const props: ArticleTopperProps = {\n theme: entry.fields.theme,\n };\n\n return props;\n});\n"],"names":["createLargeAssetTopperProps","createContentfulProps","entry","createEditAttributes","getEntryUrl","getEntry","site","useContentful","request","usePageProps","props","spotTheme","fields","title","hiddenTitle","path","substring","slug","undefined","subtitle","RenderContentfulRichText","document","asset","media","createMediaAssetProps","editAttributes","fieldId","overlineLinkEntry","overlineLink","overline","text","link","overlineText","buttonEntry","button","ctaButton","href","children","links","ctaList","createCtaListProps","LazyComponent","name","getLazyComponentByName","useLazyComponents","Component","ErrorBoundary","Suspense","Array","isArray","LazyComponents","components","console","error","map","component","i","createFeaturedTermTopperProps","intro","description","mediaAssetImage","image","theme","featuredFaculty","facultyHeading","facultyLink","faculty","heading","cta","createCtaLinkProps","people","forEach","featuredFacultyProps","createFeaturedFacultyProps","person","push","createStatisticsTopperProps","subheading","disableParagraphs","stats","statistics","statisticProps","createStatisticProps","SearchDropdownsContext","createContext","selectedOptions","onSelectedOptionChange","resetSelectedOptions","getSelectedOptionsESFilters","useContext","escapeFieldValue","value","specialCharacters","escapedValue","char","includes","SearchDropdownsProvider","topperEntry","getEntries","topper","searchParams","useSearchParams","useMemo","isSelectTopper","isContentType","setSelectedOptions","useState","facets","length","Object","fromEntries","facet","field","get","prevUrl","useRef","useEffect","url","URL","window","location","entries","key","set","delete","keys","current","history","pushState","Provider","newFilters","prefix","filters","combinedFilters","matches","match","combinedFilterStr","values","some","index","indexOf","prev","createNavigationItemProps","transform","submenu","defaultSiteHeaderTheme","defaultPageSectionTheme","getPageValues","item","shortDescription","teaseImage","leadImage","mediaAsset","descriptionText","documentToString","relatedImage","subTitle","createExpandedMenuProps","cfEntry","mapToNavigationLink","items","itemsEntry","filter","filterUndefined","expandedMenuEntry","layoutType","linkTitle","pageGroups","menu","pageGroupEntries","pageGroup","pageGroupEntry","pageListEntries","pageList","pageListEntry","featureCard","featureDescription","featureLinks","featureLinksTitle","featureMedia","topLinks","result","id","sys","label","header","createGlobalMenuNavItemProps","handleSearch","term","setDropdownItems","setDropdownSuggestions","hasSearchPage","getSiteId","data","fetcher","params","hasSearchData","hits","hit","updatedSuggestions","createSiteHeaderProps","createSocialMediaLinksProps","pageProps","alert","logInOutText","logInOutLink","domain","dropdownItems","dropdownSuggestions","setdropDownUrl","searchPage","siteUrl","siteType","enableLogin","enableLogout","pagePermissions","sitePermissions","globalMenu","organization","page","isWWWSearchPage","parentPageId","isParticpantStory","isKnowledgeBaseArticlePage","isClubPage","createLazyTopperProps","topperTheme","getSiteHeaderTheme","getSplitTopperTheme","getLargeAssetTopperTheme","localNavigationItems","expandedNavigationItems","isHomepage","singletons","isWWWHomePage","socialLinks","searchLink","hasSearchOverlay","search","hasDropdown","dropdownCta","moreItemsTitle","sectionTitle","session","user","loggedIn","headerBanner","displayName","notificationHref","linkProps","expandedMenuProps","apiSource","headerAlert","mockParam","useFetch","fetchParams","mock","type","cmdb_ci","display_value","contentReferences","callToAction","callToActionUrl","isExternal","isExternalUrl","programFormRedirect","isWorkingKnowledge","workingKnowledgeTagline","tagline","workingKnowledgeTitleLink","logoutUrl","loginUrl","logInOut","hideIcon","logoLink","createSiteFooterProps","siteTitle","displayPrimaryCTA","footerBlocks","footerLegalItems","blockItems","address","p","renderBreakLineText","email","phone","Link","br","replace","aria-label","fax","span","hours","createLinkProps","SocialMediaLinks","footerPrimaryCta","createSplitSearchTopperProps","dropDownActive","setdropDownActive","searchDropdown","placeholder","searchPlaceholder","searchDropdownCta","dropdownFooterLabel","searchDropdownFooterLabel","ctaLabel","ctaLinks","mediaHighlightCaption","mediaLink","createEditorialTopperProps","stories","pageEntry","sitePage","siteId","pageTitle","allTitles","articleTitle","heroArticle","articles","heroTeaseContent","createHeroTeaseProps","query","slice","articleTeaseProps","createArticleTeaseProps","story","searchProps","createUseSearchProps","size","searchArticleHero","searchArticles","useSearch","createSearchHeroTease","counter","storiesLimit","searchArticleTeaseProps","createSearchArticleTease","toString","isTopper","layout","createBigArtTopperProps","isBigArt","createSimplePageTopperProps","createSelectTopperProps","useSearchDropdowns","options","terms","selectedOption","onChange","event","target","searchHeroTeaseProps","byline","createBylineProps","headshots","createWKFeaturedTermTopperProps","getIsPersonPastHbsFaculty","facultyPersonSet","Set","queryFeaturedFaculty","display","personTeases","has","personTease","add","titles","thumbnail","src","portrait","createCardTopperProps","linkEntry","getPersonLink","getEntityName","personEntry","createPersonImageProps","width","height","jobTitles","createParticipantStoryTopperProps","t","useTranslations","quote","infoItems","role","join","aspectRatio","industryNames","parentPage","industry","Boolean","programLinks","program","editAttribute","documentToPlainTextString","rootNode","blockDivisor","content","reduce","acc","node","nodeTextValue","helpers","isText","isBlock","isInline","nextNode","isNextNodeBlock","createWKProfileTopperProps","profile","units","academicUnit","unit","secondaryPosition","profileLink","personType","isFaculty","hbsEnterpriseID","bioLink","bio","createBylineAuthorProps","authorEntry","avatar","publicationDate","authors","bylinePersonProps","legacyStoryBylineTypein","legacyAuthorByline","relatedOrganizations","featuredAuthors","relatedFaculty","createSplitArticleTopperProps","variant","SocialMediaIcon","icon","print","ariaLabel","className","onClick","Icon","div","createSplitPageTopperPodcastProps","isPodcast","podcastSeries","followUs","socialMediaLink","socialMedia","createSearchTopperProps","searchDropdownType","currentPageUrl","currentPage","split","createDashboardTopperProps","visibleClubsLength","clubs","club","visible","classYear","currentUserDetails","details","degree","section","currentEmployment","organizationName","jobTitle","primaryHomeAddress","city","stateCode","country","interests","sort","a","b","sortOrder","interest","desc","clubDescription","info","percentage","profilePercentComplete","permissionToppers","toppers","topperPermissions","permissions","userIsAuthorized","topperPermission","roleCode","roles","audienceWrapperTopper","find","createLazyTopperPropsInner","createSimpleArticleTopperProps","createMissionTopperProps","createMediaTopperProps","createSplitPageTopperProps","tease","video","kaltura","withModal","overlineEntry","SiteFooterPrimaryCta","data-theme","SiteFooterBlock","SiteFooter","showPrimaryCta","footer","data-region","dataRegion","footerLink","footerLabel","block","dataLayer","BaseLayout","gtmPageEvent","suggestions","dropDownType","light","white","dark","black","crimson","red","purple","blue","simpleTheme","expandedPalette","red2","red3","red4","orange1","orange2","orange4","yellow2","yellow3","green1","green2","green4","teal1","teal3","teal4","blue1","blue3","blue4","purple1","purple2","purple3","purple4","magenta1","magenta2","magenta3","magenta4","gray2","gray3","gray4","paletteThemesOnDark","themeOptions","assets","isSeamless","mediaProps","isSearchHitType","createModernSearchHeroTease","author","date","createLegacySearchHeroTease","HBSTitle","HBSDescription","HBSThumbnail","HBSByline","startsWith","HBSPubDate","HBSLink","HBSSource","createMissionTopperTextPartDetailProps","linkText","linkUrl","defaultMedia","parts","nodeType","BLOCKS","PARAGRAPH","part","INLINES","ENTRY_HYPERLINK","figure","suffix","prefixedUnit"],"sourceRoot":"","ignoreList":[]}