{"version":3,"file":"app-d37c867c0db956eae950.js","mappings":";uGAOA,SAASA,EAAWC,EAAQC,EAAQC,GAClC,IAAIC,EAASH,EAAOG,OAUpB,OATAD,EAAuB,MAAZA,EAAmB,EAAIA,GAEnB,EACbA,EAAW,EACFA,EAAWC,IACpBD,EAAWC,GAGbF,EAAS,GAAGG,OAAOH,GACZD,EAAOK,MAAMH,EAAUA,EAAWD,EAAOE,SAAWF,CAC7D,CAEA,SAASK,IACP,MAAsB,oBAAXC,OACF,KAGEA,OAAOC,UAAUC,WAAaF,OAAOC,UAAUC,UAAU,IAAMF,OAAOC,UAAUE,UAAYH,OAAOC,UAAUG,iBAAmBJ,OAAOC,UAAUI,cAAgBL,OAAOC,UAAUK,gBAAkB,IAEjN,CAEA,SAASC,EAAcC,GACrB,OAAOA,EAAKC,cAAcC,QAAQ,IAAK,IACzC,CA9BAC,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAA,aAAkB,EA+DlB,IAAIE,EAlCJ,SAA8BC,GAC5B,IAAKA,EACH,OAAOjB,IAGT,IAAIG,EAAYc,EAAQd,UACpBe,EAAWD,EAAQC,SAEvB,IAAKD,EAAQd,UACX,OAAOe,EAIT,IAAIb,EAAkBG,EAAcR,KAEpC,IAAKK,EACH,OAAOa,EAGT,IAAIC,EAAQhB,EAAUiB,QAAO,SAAUC,GACrC,OAAOb,EAAca,KAAUhB,CACjC,IAEA,OAAIc,EAAMtB,OAAS,EACVsB,EAAM,IAAMD,EAIDf,EAAUiB,QAAO,SAAUC,GAC7C,OAAO5B,EAAWY,EAAiBgB,IAAS5B,EAAW4B,EAAMhB,EAC/D,IACqB,IAAMa,CAC7B,EAGAJ,EAAA,QAAkBE,oCClElBF,EAAQ,OAA2B,EACnC,MAMMQ,EAAW,CAAC,QAAS,QAAS,MAAO,OAAQ,OAAQ,OAAQ,QAenER,EAAQ,EAdyB,CAACS,EAAOC,EAAS,YAChD,GAAc,MAAVD,EAAe,OAAOA,EAC1B,MAAME,EAAmBF,EAAMG,SAAS,KACxC,MAVuB,EAACJ,EAAUC,KAClC,IAAK,MAAMI,KAAUL,EACnB,GAAIC,EAAMG,SAASC,GAAS,OAAO,EAErC,OAAO,CAAK,EAMRC,CAAiBN,EAAUC,GACtBA,EAEM,WAAXC,EACKC,EAAmBF,EAAQ,GAAGA,KAExB,UAAXC,GACKC,EAAmBF,EAAMxB,MAAM,GAAI,GAErCwB,CAAK,sCCpBdT,EAAQ,GAAuBA,EAAQ,QAAgB,EACvD,IAAIe,EAAiB,EAAQ,OAC7Bf,EAAQ,GAAgBe,EAAeC,cACvC,IAAIC,EAAwB,EAAQ,OACpCjB,EAAQ,GAAuBiB,EAAsBC,yDCLrD,IAAIC,EAAyB,EAAQ,OACrCnB,EAAQoB,YAAa,EACrBpB,EAAQgB,cAAgBhB,EAAQqB,mBAAgB,EAChD,IAAIC,EAA0BH,EAAuB,EAAQ,QACzDI,EAAkBJ,EAAuB,EAAQ,OACjDK,EAIJ,SAAiCC,EAAKC,GAAe,IAAKA,GAAeD,GAAOA,EAAIL,WAAc,OAAOK,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAEE,QAASF,GAAS,IAAIG,EAAQC,EAAyBH,GAAc,GAAIE,GAASA,EAAME,IAAIL,GAAQ,OAAOG,EAAMG,IAAIN,GAAQ,IAAIO,EAAS,CAAC,EAAOC,EAAwBnC,OAAOC,gBAAkBD,OAAOoC,yBAA0B,IAAK,IAAIC,KAAOV,EAAO,GAAY,YAARU,GAAqBrC,OAAOsC,UAAUC,eAAeC,KAAKb,EAAKU,GAAM,CAAE,IAAII,EAAON,EAAwBnC,OAAOoC,yBAAyBT,EAAKU,GAAO,KAAUI,IAASA,EAAKR,KAAOQ,EAAKC,KAAQ1C,OAAOC,eAAeiC,EAAQG,EAAKI,GAAgBP,EAAOG,GAAOV,EAAIU,EAAQ,CAAIH,EAAOL,QAAUF,EAASG,GAASA,EAAMY,IAAIf,EAAKO,GAAW,OAAOA,CAAQ,CAJvxBS,CAAwB,EAAQ,QACxCC,EAAavB,EAAuB,EAAQ,OAC5CwB,EAAkB,EAAQ,OAC9B,SAASd,EAAyBH,GAAe,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAIC,EAAoB,IAAID,QAAeE,EAAmB,IAAIF,QAAW,OAAQf,EAA2B,SAAkCH,GAAe,OAAOA,EAAcoB,EAAmBD,CAAmB,GAAGnB,EAAc,CAE9U,IAAIL,EAA6BG,EAAMuB,cAAc,IAAIJ,EAAgBK,gBACzEhD,EAAQqB,cAAgBA,EACxBA,EAAc4B,YAAc,sBAC5B,IAAIjC,EAA6B,SAAUkC,GAEzC,SAASlC,IAEP,IADA,IAAImC,EACKC,EAAOC,UAAUtE,OAAQuE,EAAO,IAAIC,MAAMH,GAAOI,EAAO,EAAGA,EAAOJ,EAAMI,IAC/EF,EAAKE,GAAQH,UAAUG,GAiCzB,OA/BAL,EAAQD,EAAiBZ,KAAKmB,MAAMP,EAAkB,CAACQ,MAAM1E,OAAOsE,KAAUI,MACxEC,cAAgB,IAAIhB,EAAgBK,eAC1CG,EAAMS,YAAa,EACnBT,EAAMU,oBAAsB,EAC5BV,EAAMW,eAAiB,WACrBX,EAAMU,oBAAsB1E,OAAO4E,QAC9BZ,EAAMS,aACTT,EAAMS,YAAa,EACnBI,sBAAsBb,EAAMc,YAAYC,MAAK,EAAI5C,EAAwBK,SAASwB,KAEtF,EACAA,EAAMgB,aAAe,SAAUrF,EAAUsF,GACnCjB,EAAMkB,mBAAmBD,EAAWjB,EAAMmB,QAC5CnF,OAAOoF,SAAS,EAAGzF,EAEvB,EACAqE,EAAMqB,aAAe,SAAUC,EAAML,GACnC,IAAIM,EAAOC,SAASC,eAAeH,EAAKI,UAAU,IAC9CH,GAAQvB,EAAMkB,mBAAmBD,EAAWjB,EAAMmB,QACpDI,EAAKI,gBAET,EACA3B,EAAMkB,mBAAqB,SAAUU,EAAiBC,GACpD,IAAIX,EAAqBlB,EAAMmB,MAAMD,mBACrC,OAAKA,GAKEA,EAAmB/B,MAAK,EAAIhB,EAAwBK,SAASwB,GAAQ4B,EAAiBC,EAC/F,EACO7B,CACT,EAtCA,EAAI5B,EAAgBI,SAASX,EAAekC,GAuC5C,IAAI+B,EAASjE,EAAcoB,UA2D3B,OA1DA6C,EAAOhB,YAAc,WACnB,IAAI9B,EAAMuB,KAAKY,MAAMY,SAAS/C,KAAO,KACjCA,GACFuB,KAAKC,cAAcwB,KAAKzB,KAAKY,MAAMY,SAAU/C,EAAKuB,KAAKG,qBAEzDH,KAAKE,YAAa,CACpB,EACAqB,EAAOG,kBAAoB,WAEzB,IAAIC,EADJlG,OAAOmG,iBAAiB,SAAU5B,KAAKI,gBAEvC,IAAIyB,EAAuB7B,KAAKY,MAAMY,SACpC/C,EAAMoD,EAAqBpD,IAC3BsC,EAAOc,EAAqBd,KAC1BtC,IACFkD,EAAiB3B,KAAKC,cAAc6B,KAAK9B,KAAKY,MAAMY,SAAU/C,IAM5DsC,EACFf,KAAKc,aAAaiB,UAAUhB,QAAOiB,GAC1BL,GACT3B,KAAKS,aAAakB,OAAgBK,EAEtC,EACAT,EAAOU,qBAAuB,WAC5BxG,OAAOyG,oBAAoB,SAAUlC,KAAKI,eAC5C,EACAmB,EAAOY,mBAAqB,SAA4BzB,GACtD,IAGIiB,EAHAS,EAAwBpC,KAAKY,MAAMY,SACrCT,EAAOqB,EAAsBrB,KAC7BtC,EAAM2D,EAAsB3D,IAE1BA,IACFkD,EAAiB3B,KAAKC,cAAc6B,KAAK9B,KAAKY,MAAMY,SAAU/C,IAY5DsC,EACFf,KAAKc,aAAaiB,UAAUhB,GAAOL,GAEnCV,KAAKS,aAAakB,EAAgBjB,EAEtC,EACAa,EAAOc,OAAS,WACd,OAAoBvE,EAAMwE,cAAc3E,EAAc4E,SAAU,CAC9DhG,MAAOyD,KAAKC,eACXD,KAAKY,MAAM4B,SAChB,EACOlF,CACT,CApGiC,CAoG/BQ,EAAM2E,WACRnG,EAAQgB,cAAgBA,EACxBA,EAAcoF,UAAY,CACxB/B,mBAAoB3B,EAAWf,QAAQ0E,KACvCH,SAAUxD,EAAWf,QAAQ2E,QAAQC,WACrCrB,SAAUxC,EAAWf,QAAQ6E,OAAOD,8CCtHtCvG,EAAQoB,YAAa,EACrBpB,EAAQgD,oBAAiB,EACzB,IACIyD,EAA6B,gCAC7BzD,EAA8B,WAChC,SAASA,IAAkB,CAC3B,IAAIiC,EAASjC,EAAeZ,UAqC5B,OApCA6C,EAAOO,KAAO,SAAcN,EAAU/C,GACpC,IAAIuE,EAAWhD,KAAKiD,YAAYzB,EAAU/C,GAC1C,IACE,IAAIlC,EAAQd,OAAOyH,eAAeC,QAAQH,GAC1C,OAAOzG,EAAQ6G,KAAKC,MAAM9G,GAAS,CACrC,CAAE,MAAO+G,GAIP,OAAI7H,QAAUA,OAAOsH,IAA+BtH,OAAOsH,GAA4BC,GAC9EvH,OAAOsH,GAA4BC,GAErC,CACT,CACF,EACAzB,EAAOE,KAAO,SAAcD,EAAU/C,EAAKlC,GACzC,IAAIyG,EAAWhD,KAAKiD,YAAYzB,EAAU/C,GACtC8E,EAAcH,KAAKI,UAAUjH,GACjC,IACEd,OAAOyH,eAAeO,QAAQT,EAAUO,EAC1C,CAAE,MAAOD,GACH7H,QAAUA,OAAOsH,KAGnBtH,OAAOsH,GAA8B,CAAC,GAFtCtH,OAAOsH,GAA4BC,GAAYI,KAAKC,MAAME,EAQ9D,CACF,EACAhC,EAAO0B,YAAc,SAAqBzB,EAAU/C,GAClD,IAAIiF,EAtCe,YAsCwBlC,EAASmC,SACpD,OAAOlF,QAA6CiF,EAAeA,EAAe,IAAMjF,CAC1F,EACOa,CACT,CAxCkC,GAyClChD,EAAQgD,eAAiBA,sCC7CzBhD,EAAQoB,YAAa,EACrBpB,EAAQkB,qBAIR,SAA8BoG,GAC5B,IAAIpC,GAAW,EAAIqC,EAAaC,eAC5BC,GAAQ,EAAIC,EAAOC,YAAY5G,EAAeM,eAC9CuG,GAAM,EAAIF,EAAOG,QAAQ,MAO7B,OANA,EAAIH,EAAOI,kBAAiB,WAC1B,GAAIF,EAAIG,QAAS,CACf,IAAIjJ,EAAW2I,EAAMjC,KAAKN,EAAUoC,GACpCM,EAAIG,QAAQxD,SAAS,EAAGzF,GAAY,EACtC,CACF,GAAG,CAACoG,EAAS/C,MACN,CACLyF,IAAKA,EACLI,SAAU,WACJJ,EAAIG,SACNN,EAAMtC,KAAKD,EAAUoC,EAAYM,EAAIG,QAAQE,UAEjD,EAEJ,EArBA,IAAIlH,EAAiB,EAAQ,OACzB2G,EAAS,EAAQ,OACjBH,EAAe,EAAQ,yCCJ3BvH,EAAQoB,YAAa,EACrBpB,EAAQkI,2BAAwB,EAEZ,EAAQ,OAEE,EAAQ,OAiBtClI,EAAQkI,sBAdsB,KAOyC,oCCfvElI,EAAQoB,YAAa,EACrBpB,EAAQmI,YAER,SAAqBC,GACnB,OAAOA,aAA2D,EAASA,EAAiBC,SAAQC,IAAWA,aAAuC,EAASA,EAAOC,UAAY,IACpL,sCCLAvI,EAAQoB,YAAa,EACrBpB,EAAQwI,uBAOR,SAAgCJ,GAC9B,IAAKA,EAAiBrJ,OACpB,OAGF,MAAM0J,EAAkB9D,SAAS+D,cAAc,0BACzCC,EAAkBhE,SAAS+D,cAAc,kDAE3CD,GACFA,EAAgBG,SAGdD,GACFA,EAAgBC,SAGlB,MAAMC,GAAW,EAAIC,EAAaX,aAAaC,GACzCW,EAAUpE,SAASqB,cAAc,UACvC+C,EAAQC,QAAQC,UAAY,GAC5BF,EAAQG,WAAY,EAAIC,EAAaC,kBAAkB,CACrDb,QAASM,IAEXlE,SAAS0E,KAAKC,YAAYP,EAC5B,EA5BA,IAAII,EAAe,EAAQ,OAEvBL,EAAe,EAAQ,8BCP3B9I,EAAQuJ,WAAa,CACnB,+BAAgCC,IAAM,mEACtC,+BAAgCC,IAAM,6EACtC,+BAAgCC,IAAM,iMACtC,gCAAiCC,IAAM,+BACvC,wCAAyCC,IAAM,kJAC/C,kDAAmDC,IAAM,uIACzD,oCAAqCC,IAAM,sKAC3C,0DAA2DC,IAAM,oHACjE,8CAA+CC,IAAM,kJACrD,wCAAyCC,IAAM,sKAC/C,8CAA+CC,IAAM,uIACrD,uCAAwCC,IAAM,uIAC9C,oCAAqCC,IAAM,4JAC3C,oCAAqCC,IAAM,yLAC3C,wCAAyCC,IAAM,wIAC/C,8DAA+DC,IAAM,wIACrE,+CAAgDC,IAAM,wIACtD,oCAAqCC,IAAM,kJAC3C,+CAAgDC,IAAM,wIACtD,4CAA6CC,IAAM,iGACnD,gDAAiDC,IAAM,0KCrBzDC,EAAO7K,QAAU,CAAC,CACZ8K,OAAQC,EAAQ,OAChB5K,QAAS,CAAC,QAAU,GAAG,GAAK,gBAC5B,CACA2K,OAAQC,EAAQ,OAChB5K,QAAS,CAAC,QAAU,GAAG,KAAO,YAAY,WAAa,MAAM,YAAc,UAAU,UAAY,IAAI,KAAO,6BAA6B,KAAO,QAAQ,mBAAqB,OAAO,QAAS,EAAK,qBAAsB,EAAK,YAAc,YAAY,iBAAkB,EAAK,YAAc,OAC5R,CACA2K,OAAQC,EAAQ,OAChB5K,QAAS,CAAC,QAAU,GAAG,qBAAuB,SAAS,UAAY,CAAC,QAAQ,SAAS,gBAAkB,QAAQ,UAAW,EAAM,QAAU,0BAA0B,cAAgB,SAAS,eAAiB,CAAC,cAAgB,CAAC,aAAc,GAAO,aAAe,IAAI,aAAc,GAAM,MAAQ,CAAC,CAAC,UAAY,WAAW,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,oBAAoB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,mBAAmB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,sBAAsB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,+BAA+B,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,qCAAqC,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,gBAAgB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,oBAAoB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,yBAAyB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,gBAAgB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,sBAAsB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,qBAAqB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,iCAAiC,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,0BAA0B,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,yBAAyB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,wBAAwB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,qBAAqB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,uBAAuB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,mBAAmB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,6BAA6B,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,oBAAoB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,mBAAmB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,eAAe,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,eAAe,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,cAAc,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,oBAAoB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,eAAe,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,gBAAgB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,iBAAiB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,2CAA2C,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,iCAAiC,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,sDAAsD,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,qDAAqD,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,wCAAwC,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,uCAAuC,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,+CAA+C,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,6DAA6D,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,mCAAmC,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,iDAAiD,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,wBAAwB,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,oCAAoC,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,kDAAkD,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,0CAA0C,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,iCAAiC,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,0CAA0C,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,wDAAwD,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,yCAAyC,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,uDAAuD,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,qCAAqC,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,mDAAmD,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,6BAA6B,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,2CAA2C,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,8CAA8C,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,4DAA4D,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,oCAAoC,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,kDAAkD,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,mCAAmC,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,iDAAiD,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,wDAAwD,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,sDAAsD,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,UAAU,CAAC,UAAY,2BAA2B,qBAAsB,EAAK,iBAAmB,CAAC,QAAQ,aACl5N,CACA2K,OAAQC,EAAQ,OAChB5K,QAAS,CAAC,QAAU,KACpB,CACA2K,OAAQC,EAAQ,MAChB5K,QAAS,CAAC,QAAU,6BCd1B,MAAM6K,EAAUD,EAAQ,QAClB,2BAAEE,EAA0B,SAAEC,EAAQ,aAAEC,GAC5CJ,EAAAA,OAAAA,GAEF/K,EAAQ,EAAY,SAACoL,EAAK9H,EAAW+H,EAAeC,QAAtB,IAAJhI,IAAAA,EAAO,CAAC,GAYhC,IAAIiI,EAAUP,EAAQQ,KAAIV,IACxB,IAAKA,EAAOA,OAAOM,GACjB,OAGF9H,EAAK2H,2BAA6BA,EAClC3H,EAAK4H,SAAWA,EAChB5H,EAAK6H,aAAeA,EAEpB,MAAMM,EAASX,EAAOA,OAAOM,GAAK9H,EAAMwH,EAAO3K,SAI/C,OAHIsL,GAAUH,IACZhI,EAAOgI,EAAa,CAAEhI,OAAMmI,SAAQX,YAE/BW,CAAM,IAMf,OAFAF,EAAUA,EAAQjL,QAAOmL,QAA4B,IAAXA,IAEtCF,EAAQxM,OAAS,EACZwM,EACEF,EACF,CAACA,GAED,EAEX,EAEArL,EAAQ,EAAiB,CAACoL,EAAK9H,EAAM+H,IACnCL,EAAQU,QACN,CAACC,EAAUC,IACTA,EAAKd,OAAOM,GACRO,EAASE,MAAK,IAAMD,EAAKd,OAAOM,GAAK9H,EAAMsI,EAAKzL,WAChDwL,GACNG,QAAQC,gCClDZ/L,EAAQ,EAAsB,IAAM,uECGpC,MCgBA,SAAcgM,GAGb,OAFAA,EAAMA,GAAOlM,OAAOmM,OAAO,MAEpB,CAQNC,GAAI,SAAYC,EAAcC,IAC5BJ,EAAIG,KAAUH,EAAIG,GAAQ,KAAKE,KAAKD,EACtC,EASAE,IAAK,SAAaH,EAAcC,GAC3BJ,EAAIG,IACPH,EAAIG,GAAMI,OAAOP,EAAIG,GAAMK,QAAQJ,KAAa,EAAG,EAErD,EAUAK,KAAM,SAAcN,EAAcO,IAChCV,EAAIG,IAAS,IAAIlN,QAAQuM,KAAI,SAAUY,GAAWA,EAAQM,EAAM,KAChEV,EAAI,MAAQ,IAAI/M,QAAQuM,KAAI,SAAUY,GAAWA,EAAQD,EAAMO,EAAM,GACvE,EAEF,CD1DgBC,yKEFhB,EAAeC,IACb,QAAsBlH,IAAlBkH,EACF,OAAOA,EAET,IAAKC,EAAMC,EAAS,IAAMF,EAAcG,MAAM,KAK9C,OAJID,IACFA,EAAS,IAAMA,GAGJ,MAATD,EACK,IAAMC,EAEsB,MAAjCD,EAAKG,OAAOH,EAAK9N,OAAS,GACrB8N,EAAK5N,MAAM,GAAI,GAAK6N,EAEtBD,EAAOC,CACf,aCXD,MAAMG,EAAY,IAAIC,IACtB,IAAIC,EAAa,GAEjB,MAAMC,EAAeC,IACnB,IAAIC,EAAiBD,EAGrB,IAAoB,IAFDA,EAAYb,QAAQ,KAEhB,CACrB,MAAOK,EAAMU,GAAMF,EAAYN,MAAM,KACrCO,EAAiB,GAAGT,KAAQW,mBAAmBD,IACjD,CAEA,MAAMlG,EAAWoG,mBAAmBH,GAUpC,OAPwBI,EAAAA,EAAAA,GACtBrG,EACAoG,mBAAmBE,KAGlBZ,MAAM,KAAK,EAEQ,EAGxB,SAASa,EAAWf,GAElB,OACEA,EAAKlO,WAAW,MAChBkO,EAAKlO,WAAW,aAChBkO,EAAKlO,WAAW,WAETkO,EAIF,IAAIgB,IACThB,EACA1N,OAAO+F,SAAS4I,MAAQ3O,OAAO+F,SAAS4I,KAAKlN,SAAS,KAAO,GAAK,MAClEyG,QACJ,CAOO,MAAM0G,EAAgB9N,IAC3BkN,EAAalN,CAAK,EAWP+N,EAAgBX,IAC3B,MAAMY,EAAkBC,EAAUb,GAE5Bc,EAAYhB,EAAW3B,KAAI4C,IAA0B,IAAzB,KAAEvB,EAAI,UAAEwB,GAAWD,EACnD,MAAO,CACLvB,KAAMwB,EACNC,aAAczB,EACf,IAGGA,GAAO0B,EAAAA,EAAAA,MAAKJ,EAAWF,GAE7B,OAAIpB,EACK2B,EAAkB3B,EAAK4B,MAAMH,cAG/B,IAAI,EAYAI,EAAkBrB,IAC7B,MAAMY,EAAkBC,EAAUb,GAE5Bc,EAAYhB,EAAW3B,KAAImD,IAA0B,IAAzB,KAAE9B,EAAI,UAAEwB,GAAWM,EACnD,MAAO,CACL9B,KAAMwB,EACNC,aAAczB,EACf,IAGGA,GAAO0B,EAAAA,EAAAA,MAAKJ,EAAWF,GAE7B,OAAIpB,EACKA,EAAK+B,OAGP,CAAC,CAAC,EAWEC,EAAWxB,IACtB,MAAMY,EAAkBb,EAAaQ,EAAWP,IAChD,GAAIJ,EAAUnL,IAAImM,GAChB,OAAOhB,EAAUlL,IAAIkM,GAGvB,MAAMa,GAAWC,EAAAA,EAAAA,GAAwB1B,GACzC,GAAIyB,EACF,OAAOD,EAASC,EAASE,QAG3B,IAAIC,EAAYjB,EAAcC,GAQ9B,OANKgB,IACHA,EAAYf,EAAUb,IAGxBJ,EAAUzK,IAAIyL,EAAiBgB,GAExBA,CAAS,EAULf,EAAYb,IAGvB,IAAI4B,EAFoB7B,EAAaQ,EAAWP,IAShD,MANkB,gBAAd4B,IACFA,EAAY,KAGdA,EAAYT,EAAkBS,GAEvBA,CAAS,23BC1JlB,SAASC,EAAiBC,GACxB,IAAIC,EAAI,mBAAqBlC,IAAM,IAAIA,SAAQ,EAC/C,OAAOgC,EAAmB,SAA0BC,GAClD,GAAI,OAASA,ICPjB,SAA2BA,GACzB,IACE,OAAQ,IAAME,SAASC,SAAShN,KAAK6M,GAAG3C,QAAQ,gBAClD,CAAE,MAAO+C,GACP,MAAO,mBAAqBJ,CAC9B,CACF,CDCuB,CAAiBA,GAAI,OAAOA,EAC/C,GAAI,mBAAqBA,EAAG,MAAM,IAAIK,UAAU,sDAChD,QAAI,IAAWJ,EAAG,CAChB,GAAIA,EAAEtN,IAAIqN,GAAI,OAAOC,EAAErN,IAAIoN,GAC3BC,EAAE5M,IAAI2M,EAAGM,EACX,CACA,SAASA,IACP,OEZN,SAAoBN,EAAGnI,EAAGoI,GACxB,IAAI,EAAAM,EAAA,KAA4B,OAAOC,QAAQC,UAAUnM,MAAM,KAAMJ,WACrE,IAAIwM,EAAI,CAAC,MACTA,EAAExD,KAAK5I,MAAMoM,EAAG7I,GAChB,IAAI8I,EAAI,IAAKX,EAAEjL,KAAKT,MAAM0L,EAAGU,IAC7B,OAAOT,IAAK,EAAAW,EAAA,GAAeD,EAAGV,EAAEhN,WAAY0N,CAC9C,CFMa,CAAUX,EAAG9L,WAAW,EAAA2M,EAAA,GAAetM,MAAMuM,YACtD,CACA,OAAOR,EAAQrN,UAAYtC,OAAOmM,OAAOkD,EAAE/M,UAAW,CACpD6N,YAAa,CACXhQ,MAAOwP,EACPS,YAAY,EACZC,UAAU,EACVC,cAAc,MAEd,EAAAL,EAAA,GAAeN,EAASN,EAC9B,EAAGD,EAAiBC,EACtB,qCGvBO,MAAMkB,EAAsBjC,IAA4B,IAA3B,QAAEkC,EAAO,SAAEpK,GAAUkI,EACvD,MAAMmC,EAAW,CACf/O,EAAAA,cAAoB,cAAe,CACjCgP,GAAI,GAAGF,QAET9O,EAAAA,cAAoB,YAAa,CAC/BgP,GAAI,GAAGF,SAkBX,OAdIpK,IAGFqK,EAASlE,KAAKnG,GACdqK,EAASlE,KACP7K,EAAAA,cAAoB,cAAe,CACjCgP,GAAI,GAAGF,QAET9O,EAAAA,cAAoB,YAAa,CAC/BgP,GAAI,GAAGF,UAKNC,CAAQ,iBCrBjB,MASaE,EAAcrC,IAKpB,IALqB,UAC1BsC,EAAS,WACTC,EAAU,SACVzK,KACG0K,GACJxC,EACC,MAAMyC,GAAYlJ,EAAAA,EAAAA,YAAWmJ,EAAAA,IACvBC,GAAcpJ,EAAAA,EAAAA,YAAWqJ,EAAAA,IACzBC,EAAoBJ,EAAUH,GAEpC,IAAKO,EAAmB,CACtB,GAAIN,EACF,OAAO,KAEP,MAAM,IAAIO,MACR,UAAUD,WAA2BP,oBAG3C,CAEA,MAAMJ,EA7BWa,EAACT,EAAWE,IACxB9Q,OAAOsR,KAAKR,GAAY7R,OAKtB,GAAG2R,MADUW,EAAAA,EAAAA,GAAoBT,KAH/BF,EA2BOS,CAAWF,EAAmBL,GAG9C,IAAIU,EAAaP,EAAYT,GAa7B,OAZKgB,EAOCpL,IACFoL,EAAWC,aAAc,GAP3BR,EAAYT,GAAWgB,EAAa,CAClChN,MAAOsM,EACPF,UAAWO,EACXM,cAAerL,IAQZsL,EAAAA,EAAAA,KAACnB,EAAmB,CAACC,QAASA,EAAQpK,SAAEA,GAA+B,EC/CnEuL,EAAcrD,IAKpB,IALqB,UAC1BsC,EAAS,WACTC,EAAU,SACVzK,KACG0K,GACJxC,EACC,MAAMyC,GAAYlJ,EAAAA,EAAAA,YAAWmJ,EAAAA,IACvBY,GAAmB/J,EAAAA,EAAAA,YAAWgK,EAAAA,IAC9BV,EAAoBJ,EAAUH,GAC9BzR,EAAQyS,EAAiB3P,IAAIkP,GAEnC,IAAKhS,EAAO,CACV,GAAI0R,EACF,OAAO,KAEP,MAAM,IAAIO,MACR,UAAUD,WAA2BP,oBAG3C,CAEA,OACEc,EAAAA,EAAAA,KAACvS,EAAM2S,UAAS,CACdC,aAAc5S,EAAM4S,aACpBC,KAAM7S,EAAM6S,QACRlB,EAAU1K,SAEbA,GACe,ECxBf,SAAS6L,EAAMzN,GACW,CAE7B,MAAM0N,EAAgB,IACjB1N,EACHoM,UAAWpM,EAAM2N,cAEZD,EAAcC,aACdD,EAAcE,qBAErB,MAAMC,GAAgBxK,EAAAA,EAAAA,YAAWyK,EAAAA,IAG3BC,EAAaC,EAAmBhO,GACtC,GAAIxE,OAAOsR,KAAKiB,GAAYtT,OAC1B,MAAM,IAAIwT,EAC4B,YAApCJ,EAAcK,kBACdR,EAActB,UACd2B,EACA/N,EAAM4N,sBAIV,GAAwC,WAApCC,EAAcK,kBAChB,OAAOhB,EAAAA,EAAAA,KAACf,EAAW,IAAKuB,IACnB,GAAwC,YAApCG,EAAcK,kBAEvB,OAAOhB,EAAAA,EAAAA,KAACC,EAAW,IAAKO,IACnB,GAAwC,YAApCG,EAAcK,kBAEvB,OAAOhB,EAAAA,EAAAA,KAACC,EAAW,IAAKO,IACnB,GAAwC,WAApCG,EAAcK,kBAAgC,CAGvD,IAAIC,EAA2B,GAI/B,IACEA,EAA2B,wBAAwBN,EAAcO,UAAUC,UAAUR,EAAcO,UAAUE,gDAAgDtO,EAAM2N,UACrK,CAAE,MACA,CAGF,MAAM,IAAIf,MACR,mCAAmCuB,iGAEvC,CACE,MAAM,IAAIvB,MACR,kBAAkBiB,EAAcK,uCAGtC,CAGF,CAAC,IAEKD,EAAe,SAAAM,GACnB,SAAAN,EAAYO,EAAWpC,EAAW2B,EAAYU,GAAqB,IAAD5P,EAChE,MAAM6P,EAASlT,OAAOmT,QAAQZ,GAC3B7G,KACC4C,IAAA,IAAEjM,EAAKlC,GAAMmO,EAAA,MACX,qBAAqBnO,sBAA0BkC,SAAW,IAE7D+Q,KAAK,MAEFP,EAAO,kBACb,IAAIQ,EAAQ,GACRC,EAAU,GAEd,GAAIN,EAAW,CAGb,MAIMO,EAHJ7R,EAAAA,mDAAyD8R,uBAAuBC,kBAGrDC,OAAOzG,MAAM,MAAM9N,MAAM,GACtDoU,EAAW,GAAKA,EAAW,GAAGG,OAC9BL,EAAQ,KAAOE,EAAWH,KAAK,MAE/BE,EAAU,UAAU1C,kDAA0DsC,KAChF,KAAO,CAELI,EAAU,GAAGT,aAAgBjC,kDAA0DsC,MAEvFG,EAAQ,GAAGC,OADQ,IAAIlC,OAAQiC,MAAMK,OAAOzG,MAAM,MAAM9N,MAAM,GAC5BiU,KAAK,OACzC,CAYC,OAVD/P,EAAA0P,EAAAvQ,KAAA,KAAM8Q,IAAQ,MACTT,KAAOA,EACRQ,EACFhQ,EAAKgQ,MAAQA,EAEbjC,MAAMuC,kBAAiBtQ,EAAOoP,GAG5BQ,IACF5P,EAAKuQ,eAAiB,IAAKX,EAAoBY,aAAc,UAC9DxQ,CACH,CAAC,OAAAyQ,EAAAA,EAAAA,GAAArB,EAAAM,GAAAN,CAAA,CA3CkB,CA2ClBrD,EA3C2BgC,QA8C9B,MAAMoB,EAAqB,SACzBhO,EACA0O,EACAa,EACAhH,QAFM,IAANmG,IAAAA,EAAS,CAAC,QACC,IAAXa,IAAAA,EAAc,SACV,IAAJhH,IAAAA,EAAO,MAGP,IAAK,MAAO8F,EAAM1S,KAAUH,OAAOmT,QAAQ3O,GAAQ,CACjD,GACErE,UAEE4M,GAAiB,aAAT8F,EAEV,SAGF,MAAMmB,EAAWjH,EAAO,GAAGA,KAAQ8F,IAASA,EAEvB,mBAAV1S,EACT+S,EAAOc,UAAmB7T,EACA,iBAAVA,GAAsB4T,EAAYrH,QAAQvM,IAAU,IACpE4T,EAAYxH,KAAKpM,GACjBqS,EAAmBrS,EAAO+S,EAAQa,EAAaC,GAEnD,CAEA,OAAOd,CACT,iBCvIA,MAAMe,EAAmBC,EAAAA,GAAOC,QAEhC,SAASC,IACP,MAAM,IAAIhD,MACR,6UAKJ,4PCXA,MAyDMiD,EAzDU,SAAUC,GACxB,GAAwB,oBAAbzP,SACT,OAAO,EAET,MAAM0P,EAAW1P,SAASqB,cAAc,QACxC,IACE,GAAIqO,EAASC,SAAgD,mBAA9BD,EAASC,QAAQC,SAC9C,OAAOF,EAASC,QAAQC,SAASH,EAErC,CAAE,MAAOI,GACP,OAAO,CACT,CACA,OAAO,CACT,CA4CkCC,CAAQ,YA1Cb,SAAUC,EAAKvU,GAC1C,OAAO,IAAI2L,SAAQ,CAACC,EAAS4I,KAC3B,GAAwB,oBAAbhQ,SAET,YADAgQ,IAIF,MAAMC,EAAOjQ,SAASqB,cAAc,QACpC4O,EAAKC,aAAa,MAAO,YACzBD,EAAKC,aAAa,OAAQH,GAE1B5U,OAAOsR,KAAKjR,GAAS2U,SAAQ3S,IAC3ByS,EAAKC,aAAa1S,EAAKhC,EAAQgC,GAAK,IAGtCyS,EAAKG,OAAShJ,EACd6I,EAAKI,QAAUL,GAGbhQ,SAASsQ,qBAAqB,QAAQ,IACtCtQ,SAASuQ,kBAAkB,UAAU,GAAGC,YAC5B7L,YAAYsL,EAAK,GAEnC,EAE4B,SAAUF,GACpC,OAAO,IAAI5I,SAAQ,CAACC,EAAS4I,KAC3B,MAAMS,EAAM,IAAIC,eAChBD,EAAIE,KAAK,MAAOZ,GAAK,GAErBU,EAAIL,OAAS,KACQ,MAAfK,EAAIG,OACNxJ,IAEA4I,GACF,EAGFS,EAAII,KAAK,KAAK,GAElB,EAMMC,EAAa,CAAC,EAkBpB,MAhBiB,SAAUf,EAAKvU,GAC9B,OAAO,IAAI2L,SAAQC,IACb0J,EAAWf,GACb3I,IAIFoI,EAA0BO,EAAKvU,GAC5B0L,MAAK,KACJE,IACA0J,EAAWf,IAAO,CAAI,IAEvBgB,OAAM,QAAS,GAEtB,wBCrEO,MAAMC,EAAqB,CAIhCzE,MAAO,QAIP0E,QAAS,WAWLC,EAAoBC,IACxB,MAAOjJ,EAAMkJ,GAAeD,EAAQ/I,MAAM,KAPZiJ,MAS9B,MAAO,cADoB,MAATnJ,EAAe,SAPjCmJ,EAAa,OADiBA,EAQqCnJ,GAP7D,GAAamJ,EAAE/W,MAAM,GAAK+W,GAC1BpV,SAAS,KAAOoV,EAAE/W,MAAM,GAAI,GAAK+W,mBAQrCD,EAAc,IAAIA,IAAgB,IAClC,EAGJ,SAASE,EAAQvB,EAAKwB,GACpB,YAD0B,IAANA,IAAAA,EAAS,OACtB,IAAIpK,SAAQC,IACjB,MAAMqJ,EAAM,IAAIC,eAChBD,EAAIE,KAAKY,EAAQxB,GAAK,GACtBU,EAAIe,mBAAqB,KACD,GAAlBf,EAAIgB,YACNrK,EAAQqJ,EACV,EAEFA,EAAII,KAAK,KAAK,GAElB,CAEA,MAgBMa,EAAY,+BAEZC,EAAkB,SAACC,EAAU3E,EAAkBvI,GAAU,IAADmN,OAAlB,IAAT5E,IAAAA,EAAY,MAC7C,MAAM6E,EAAO,CACXC,mBAAoBH,EAASG,mBAC7B7J,KAAM0J,EAAS1J,KACf8J,uBAAwBJ,EAASI,uBACjCtI,UAAWkI,EAASlI,UACpBuI,kBAAmBL,EAASK,kBAC5BC,mBAAoBN,EAASM,mBAC7BhG,UAA6B,QAApB2F,EAAED,EAAS1F,iBAAS,IAAA2F,EAAAA,EAAI,CAAC,GAGpC,MAAO,CACL5E,YACAvI,OACAyN,KAAMP,EAAS9K,OACfgL,OAEJ,EAEA,SAASM,EAAgBC,GACvB,OAAO,IAAIlL,SAAQC,IACjB,IACE,MAAMN,EAASuL,EAASC,WACxBlL,EAAQN,EACV,CAAE,MAAO+I,GACP,IACE1U,OAAOuC,eAAeC,KAAKkS,EAAK,eAChC1U,OAAOuC,eAAeC,KAAKkS,EAAK,WAMhC,MAAMA,EAJN0C,YAAW,KACTH,EAAgBC,GAAUnL,KAAKE,EAAQ,GACtC,IAIP,IAEJ,CAEO,IAAMoL,EAAU,WACrB,SAAAA,EAAYC,EAAejK,GAAa,KAgCxCkK,wBAA0B,IAAInK,IAhB5BxJ,KAAK4T,OAAS,IAAIpK,IAClBxJ,KAAK6T,WAAa,IAAIrK,IACtBxJ,KAAK8T,cAAgB,CAAC,EACtB9T,KAAK+T,WAAa,IAAIvK,IACtBxJ,KAAKgU,mBAAqB,IAAIxK,IAC9BxJ,KAAKiU,aAAe,IAAIzK,IACxBxJ,KAAKkU,gBAAkB,IAAI1K,IAC3BxJ,KAAKmU,SAAW,IAAI3K,IACpBxJ,KAAKoU,wBAAyB,EAC9BpU,KAAKqU,eAAiB,GACtBrU,KAAKsU,kBAAoB,IAAIC,IAC7BvU,KAAKwU,kBAAoB,IAAID,IAC7BvU,KAAK0T,cAAgBA,GACrBrJ,EAAAA,EAAAA,IAAcZ,EAChB,CAAC,IAAAlI,EAAAkS,EAAA/U,UAgrBA,OAhrBA6C,EAIDkT,YAAA,SAAYzD,GACV,IAAI0D,EAAkB1U,KAAK2T,wBAAwBtV,IAAI2S,GAQvD,OANK0D,IACHA,EAAkBnC,EAAQvB,EAAK,OAC/BhR,KAAK2T,wBAAwB7U,IAAIkS,EAAK0D,IAIjCA,EACJvM,MAAKmL,IACJtT,KAAK2T,wBAAwBgB,OAAO3D,GAC7BsC,KAERtB,OAAMlB,IAEL,MADA9Q,KAAK2T,wBAAwBgB,OAAO3D,GAC9BF,CAAG,GAEf,EAACvP,EAEDqT,aAAA,SAAaC,GACX7U,KAAK6U,UAAYA,EACjB7U,KAAK8U,iBAAmBD,EAAU,0BAA0BE,MAAKC,GAAKA,GACxE,EAACzT,EAED0T,kBAAA,SAAkBC,GAChB,MAAM,SAAEC,EAAQ,QAAEC,EAAU,GAAMF,EAC5BlE,EAAMmB,EAAkBgD,GAC9B,OAAOnV,KAAKyU,YAAYzD,GAAK7I,MAAKuJ,IAChC,MAAM,OAAEG,EAAM,aAAEwD,GAAiB3D,EAGjC,GAAe,MAAXG,EACF,IACE,MAAMyD,EAAclS,KAAKC,MAAMgS,GAC/B,QAAyBrT,IAArBsT,EAAYnM,KACd,MAAM,IAAIqE,MAAM,iCAGlB,MAAM6E,EAAc8C,EAAS9L,MAAM,KAAK,GAKxC,OAJIgJ,IAAgBiD,EAAYnM,KAAKoM,SAASlD,KAC5CiD,EAAYnM,MAAQ,IAAIkJ,KAGnBjW,OAAOoZ,OAAON,EAAS,CAC5BrD,OAAQI,EAAmBC,QAC3BuD,QAASH,GAEb,CAAE,MAAOxE,GACP,CAKJ,OAAe,MAAXe,GAA6B,MAAXA,EAEH,cAAbsD,GAAyC,cAAbA,EACvB/Y,OAAOoZ,OAAON,EAAS,CAC5BrD,OAAQI,EAAmBzE,QAMxBxN,KAAKiV,kBACV7Y,OAAOoZ,OAAON,EAAS,CAAEC,SAAU,YAAaO,UAAU,KAK/C,MAAX7D,EACK7R,KAAKiV,kBACV7Y,OAAOoZ,OAAON,EAAS,CACrBC,SAAU,YACVQ,qBAAqB,KAMvBP,EAAU,EACLpV,KAAKiV,kBACV7Y,OAAOoZ,OAAON,EAAS,CAAEE,QAASA,EAAU,KAKzChZ,OAAOoZ,OAAON,EAAS,CAC5BrD,OAAQI,EAAmBzE,OAC3B,GAEN,EAACjM,EAEDqU,0BAAA,SAA0BV,GACxB,MAAM,SAAEC,EAAQ,QAAEC,EAAU,GAAMF,EAC5BlE,EAAMmB,EAAkBgD,GAAUhZ,QAAQ,QAAS,aACzD,OAAO6D,KAAKyU,YAAYzD,GAAK7I,MAAKuJ,IAChC,MAAM,OAAEG,EAAM,aAAEwD,GAAiB3D,EAGjC,GAAe,MAAXG,EACF,IACE,OAAOzV,OAAOoZ,OAAON,EAAS,CAC5BrD,OAAQI,EAAmBC,QAC3BuD,QAASJ,GAEb,CAAE,MAAOvE,GACP,CAKJ,OAAe,MAAXe,GAA6B,MAAXA,EAEH,cAAbsD,GAAyC,cAAbA,EACvB/Y,OAAOoZ,OAAON,EAAS,CAC5BrD,OAAQI,EAAmBzE,QAMxBxN,KAAK4V,0BACVxZ,OAAOoZ,OAAON,EAAS,CAAEC,SAAU,YAAaO,UAAU,KAK/C,MAAX7D,EACK7R,KAAK4V,0BACVxZ,OAAOoZ,OAAON,EAAS,CACrBC,SAAU,YACVQ,qBAAqB,KAMvBP,EAAU,EACLpV,KAAK4V,0BACVxZ,OAAOoZ,OAAON,EAAS,CAAEE,QAASA,EAAU,KAKzChZ,OAAOoZ,OAAON,EAAS,CAC5BrD,OAAQI,EAAmBzE,OAC3B,GAEN,EAACjM,EAEDsU,iBAAA,SAAiBzD,GACf,MAAM+C,GAAWhK,EAAAA,EAAAA,IAASiH,GAC1B,GAAIpS,KAAK+T,WAAW3V,IAAI+W,GAAW,CACjC,MAAMtC,EAAW7S,KAAK+T,WAAW1V,IAAI8W,GAEnC,OAAO/M,QAAQC,QAAQwK,EAE3B,CAEA,OAAO7S,KAAKiV,kBAAkB,CAAEE,aAAYhN,MAAK0K,IAC/C7S,KAAK+T,WAAWjV,IAAIqW,EAAUtC,GAEvBA,IAEX,EAACtR,EAEDuU,yBAAA,SAAyB1D,GACvB,MAAM+C,GAAWhK,EAAAA,EAAAA,IAASiH,GAC1B,GAAIpS,KAAKgU,mBAAmB5V,IAAI+W,GAAW,CACzC,MAAMtC,EAAW7S,KAAKgU,mBAAmB3V,IAAI8W,GAE3C,OAAO/M,QAAQC,QAAQwK,EAE3B,CAEA,OAAO7S,KAAK4V,0BAA0B,CAAET,aAAYhN,MAAK0K,IACvD7S,KAAKgU,mBAAmBlV,IAAIqW,EAAUtC,GAE/BA,IAEX,EAACtR,EAEDwU,kBAAA,SAAkB/I,GAChB,GAAIhN,KAAKiU,aAAa7V,IAAI4O,GAAY,CACpC,MAAMsI,EAActV,KAAKiU,aAAa5V,IAAI2O,GAC1C,OAAO5E,QAAQC,QAAQ,CAAE2E,YAAWsI,eACtC,CAGA,OAAO/C,EADK,eAAevF,SACP,OAAO7E,MAAK6N,IAC9B,MAAMV,EAAclS,KAAKC,MAAM2S,EAAIX,cAGnC,OADArV,KAAKiU,aAAanV,IAAIkO,EAAWsI,GAC1B,CAAEtI,YAAWsI,cAAa,GAErC,EAAC/T,EAED+I,cAAA,SAAc8H,GACZ,OAAO9H,EAAAA,EAAAA,IAAc8H,EACvB,EAEA7Q,EACAiG,SAAA,SAAS4K,GACP,MAAM+C,GAAWhK,EAAAA,EAAAA,IAASiH,GAC1B,GAAIpS,KAAK4T,OAAOxV,IAAI+W,GAAW,CAC7B,MAAMpC,EAAO/S,KAAK4T,OAAOvV,IAAI8W,GAE3B,OAAIpC,EAAKkD,MACA,CACLA,MAAOlD,EAAKkD,MACZpE,OAAQkB,EAAKlB,QAIVzJ,QAAQC,QAAQ0K,EAAK0C,QAEhC,CAEA,GAAIzV,KAAK6T,WAAWzV,IAAI+W,GACtB,OAAOnV,KAAK6T,WAAWxV,IAAI8W,GAG7B,MAAMe,EAAmB,CACvBlW,KAAKmW,cACLnW,KAAK6V,iBAAiBV,IAOxB,MAAMT,EAAkBtM,QAAQE,IAAI4N,GAAkB/N,MAAKiO,IACzD,MAAOC,EAAiBC,EAAkBC,GAAmBH,EAE7D,GACEE,EAAiBzE,SAAWI,EAAmBzE,QAC/C+I,aAAe,EAAfA,EAAiB1E,UAAWI,EAAmBzE,MAE/C,MAAO,CACLqE,OAAQI,EAAmBzE,OAI/B,IAAIqF,EAAWyD,EAAiBb,QAEhC,MAAM,mBACJzC,EACAE,kBAAmBsD,EAAwB,GAAE,UAC7CrJ,EAAY,CAAC,GACX0F,EAEE4D,EAAc,CAAC,EAEfC,EAAoB7W,MAAM8W,KAAK,IAAIpC,IAAInY,OAAOwa,OAAOzJ,KAErD0J,EAAYtb,IAChB,GAAIyE,KAAKmU,SAAS/V,IAAI7C,EAAM0T,MAC1B,OAAOjP,KAAKmU,SAAS9V,IAAI9C,EAAM0T,MAC1B,GAAIjP,KAAKkU,gBAAgB9V,IAAI7C,EAAM0T,MACxC,OAAOjP,KAAKkU,gBAAgB7V,IAAI9C,EAAM0T,MAGxC,MAAM6H,EAAW9W,KAAK0T,cAAcnY,EAAMyX,oBAAoB7K,MAC5D+F,IACE,MAAO,CACLA,WAnYQ6I,EAmYiB7I,EAnYX6I,GAAKA,EAAE9Y,SAAY8Y,GAoYjC5I,aAAc5S,EAAMwM,OAAOoG,aAC3BC,KAAM7S,EAAMwM,OAAOqG,MArYX2I,KAsYT,IAUL,OANA/W,KAAKkU,gBAAgBpV,IAAIvD,EAAM0T,KAAM6H,GACrCA,EAAS3O,MAAKN,IACZ7H,KAAKmU,SAASrV,IAAIvD,EAAM0T,KAAMpH,GAC9B7H,KAAKkU,gBAAgBS,OAAOpZ,EAAM0T,KAAK,IAGlC6H,CAAQ,EAGjB,OAAO1O,QAAQE,IACboO,EAAkB5O,KAAIkF,GAAahN,KAAK+V,kBAAkB/I,MAC1D7E,MAAK6O,IACL,MAAMC,EAAS,GACTC,GAAwBC,EAAAA,EAAAA,GAAOX,GAErC,IAAK,MAAM,YAAElB,EAAW,UAAEtI,KAAe5Q,OAAOwa,OAAOI,GAAa,CAClEC,EAAOtO,KAAK,CAAEsG,KAAMjC,KAAcsI,IAClC,IAAK,MAAM8B,KAAmB9B,EAAYpC,kBACnCgE,EAAyB3B,SAAS6B,IACrCF,EAAyBvO,KAAKyO,EAGpC,CAEA,MAAMC,EAAoB,CACxBjP,QAAQE,IAAI2O,EAAOnP,IAAI+O,IACvB7W,KAAK0T,cAAcV,EAAoB,SAIvCqE,EAAkB1O,KAAK3I,KAAK0T,cAAcV,IAS5C,MAAMsE,EAAyBlP,QAAQE,IAAI+O,GAAmBlP,MAC5DtC,IACE,MAAO0R,EAAiBC,EAAeC,GAAiB5R,EAExD4Q,EAAYiB,UAAY,IAAIC,KAE5B,IAAK,MAAMC,KAAkBL,IACtBK,GAAkBA,aAA0BpK,SAC/CiJ,EAAY5E,OAASI,EAAmBzE,MACxCiJ,EAAYR,MAAQ2B,GAYxB,IAAIC,EAEJ,KARIJ,GAAiBA,aAAyBjK,SAE5CiJ,EAAY5E,OAASI,EAAmBzE,MACxCiJ,EAAYR,MAAQwB,GAKlBhB,EAAY5E,SAAWI,EAAmBzE,MAAO,CAcnD,GAbAiJ,EAAY5E,OAASI,EAAmBC,SAER,IAA9BoE,EAAiBZ,WACa,KAA9Ba,aAAe,EAAfA,EAAiBb,YAEjBe,EAAYf,UAAW,GAEzB7C,EAAWzW,OAAOoZ,OAAO3C,EAAU,CACjCI,uBAAwBoD,EACpBA,EAAgBpD,uBAChB,KAGkC,iBAA7BsD,aAAe,EAAfA,EAAiBd,SAAsB,CAChDoC,EAAgBjF,EAAgBC,EAAU,KAAM2E,GAEhDK,EAAcC,iBAAmBvB,EAAgBd,QAEjD,MAAMsC,EAAiB,IAAIC,eAAe,CACxCC,KAAAA,CAAMC,GACJ,MAAMC,EAAK,IAAIC,YACfF,EAAW3H,QAAQ4H,EAAGE,OAAO9B,EAAgBd,SAC/C,EACA6C,IAAAA,CAAKJ,GAEHA,EAAWK,OACb,EACAC,MAAAA,GAAU,IAGZ,OAAOnF,GACLoF,EAAAA,EAAAA,0BAAyBV,IACzB5P,MAAKJ,IACL8P,EAAcC,iBAAmB/P,EAE1B8P,IAEX,CACEA,EAAgBjF,EACdC,EACA4E,EACAD,EAGN,CAGA,OAAOK,CAAa,IAKlBa,EAA0BtQ,QAAQE,IACtC4O,EAAyBpP,KAAIsP,IAE3B,GAAIpX,KAAK8T,cAAcsD,GAAkB,CACvC,MAAM9B,EAActV,KAAK8T,cAAcsD,GACvC,MAAO,CAAEA,kBAAiB9B,cAC5B,CAEA,OAAOtV,KAAKyU,YACV,mBAAqC2C,UAEpCjP,MAAKuJ,IACJ,MAAM4D,EAAclS,KAAKC,MAAMqO,EAAI2D,cACnC,MAAO,CAAE+B,kBAAiB9B,cAAa,IAExCtD,OAAM,KACL,MAAM,IAAIxE,MACR,qCAAuD4J,UACxD,GACD,KAENjP,MAAKwQ,IACL,MAAMC,EAAwB,CAAC,EAO/B,OALAD,EAAmBvH,SAAQ1G,IAAuC,IAAtC,gBAAE0M,EAAe,YAAE9B,GAAa5K,EAC1DkO,EAAsBxB,GAAmB9B,EACzCtV,KAAK8T,cAAcsD,GAAmB9B,CAAW,IAG5CsD,CAAqB,IAG9B,OACExQ,QAAQE,IAAI,CAACgP,EAAwBoB,IAClCvQ,MAAK8C,IAA0C,IAC1CwK,GADEoC,EAAec,GAAmB1N,EAaxC,OAXI4M,IACFpC,EAAU,IAAKoC,EAAec,sBAC9BlC,EAAYhB,QAAUA,EACtBoD,EAAAA,EAAQ9P,KAAK,0BAA2B,CACtCgK,KAAM0C,EACNoC,cAAepC,KAInBzV,KAAK4T,OAAO9U,IAAIqW,EAAUsB,GAEtBA,EAAYR,MACP,CACLA,MAAOQ,EAAYR,MACnBpE,OAAQ4E,EAAY5E,QAIjB4D,CAAO,IAGfzD,OAAMlB,IACE,CACLmF,MAAOnF,EACPe,OAAQI,EAAmBzE,SAE7B,GAEN,IAcJ,OAXAkH,EACGvM,MAAK,KACJnI,KAAK6T,WAAWc,OAAOQ,EAAS,IAEjCnD,OAAMiE,IAEL,MADAjW,KAAK6T,WAAWc,OAAOQ,GACjBc,CAAK,IAGfjW,KAAK6T,WAAW/U,IAAIqW,EAAUT,GAEvBA,CACT,EAEAnT,EACAkG,aAAA,SAAa2K,EAAS3V,QAAO,IAAPA,IAAAA,EAAU,CAAC,GAC/B,MAAM0Y,GAAWhK,EAAAA,EAAAA,IAASiH,GAC1B,GAAIpS,KAAK4T,OAAOxV,IAAI+W,GAAW,CAAC,IAAD2D,EAC7B,MAAMjG,EAAW7S,KAAK4T,OAAOvV,IAAI8W,GAEjC,GAAItC,EAAS4C,QACX,OAAO5C,EAAS4C,QAGlB,GAAW,QAAXqD,EAAIrc,SAAO,IAAAqc,GAAPA,EAASC,iBACX,MAAO,CACL9C,MAAOpD,EAASoD,MAChBpE,OAAQgB,EAAShB,OAGvB,CAEF,EAACtQ,EAEDyX,eAAA,SAAe7D,GAEb,QAvkBkC8D,MACpC,GACE,eAAgBvd,gBACgB,IAAzBA,UAAUwd,WACjB,CACA,IAAKxd,UAAUwd,WAAWC,eAAiB,IAAI5D,SAAS,MACtD,OAAO,EAET,GAAI7Z,UAAUwd,WAAWE,SACvB,OAAO,CAEX,CACA,OAAO,CAAI,EA2jBJH,OAKDvd,UAAU2d,YAAa1G,EAAU2G,KAAK5d,UAAU2d,cAKhDrZ,KAAK4T,OAAOxV,IAAI+W,GAKtB,EAAC5T,EAEDgY,SAAA,SAASpE,GACP,IAAKnV,KAAKgZ,eAAe7D,GACvB,MAAO,CACLhN,KAAME,GAAWA,GAAQ,GACzBmR,MAAOA,QAGX,GAAIxZ,KAAKsU,kBAAkBlW,IAAI+W,GAC7B,MAAO,CACLhN,KAAME,GAAWA,GAAQ,GACzBmR,MAAOA,QAIX,MAAMC,EAAQ,CACZpR,QAAS,KACT4I,OAAQ,KACRyI,QAAS,MAEXD,EAAMC,QAAU,IAAItR,SAAQ,CAACC,EAAS4I,KACpCwI,EAAMpR,QAAUA,EAChBoR,EAAMxI,OAASA,CAAM,IAEvBjR,KAAKqU,eAAe1L,KAAK,CAACwM,EAAUsE,IACpC,MAAME,EAAS,IAAIC,gBAgBnB,OAfAD,EAAOE,OAAOjY,iBAAiB,SAAS,KACtC,MAAMkY,EAAQ9Z,KAAKqU,eAAe0F,WAAUC,IAAA,IAAE5N,GAAE4N,EAAA,OAAK5N,IAAM+I,CAAQ,KAEpD,IAAX2E,GACF9Z,KAAKqU,eAAexL,OAAOiR,EAAO,EACpC,IAGG9Z,KAAKoU,yBACRpU,KAAKoU,wBAAyB,EAC9BZ,YAAW,KACTxT,KAAKia,2BAA2B,GAC/B,MAGE,CACL9R,KAAMA,CAACE,EAAS4I,IAAWwI,EAAMC,QAAQvR,KAAKE,EAAS4I,GACvDuI,MAAOG,EAAOH,MAAMhZ,KAAKmZ,GAE7B,EAACpY,EAED0Y,0BAAA,YACuBxe,OAAOye,qBAAmB,CAAKC,GAAM3G,WAAW2G,EAAI,MAE5D,KACX,MAAMC,EAAapa,KAAKqU,eAAexL,OAAO,EAAG,GAC3CwR,EAAajS,QAAQE,IACzB8R,EAAWtS,KAAIwS,IAA2B,IAAzBnF,EAAUoF,GAASD,EASlC,OANKta,KAAKsU,kBAAkBlW,IAAI+W,KAC9BnV,KAAK6U,UAAU,qBAAsB,CAAElR,SAAUwR,IACjDnV,KAAKsU,kBAAkBkG,IAAIrF,IAIzBnV,KAAK8U,iBACAyF,EAASlS,SAAQ,GAGnBrI,KAAKya,YAAWtP,EAAAA,EAAAA,IAASgK,IAAWhN,MAAK,KACzCnI,KAAKwU,kBAAkBpW,IAAI+W,KAC9BnV,KAAK6U,UAAU,yBAA0B,CAAElR,SAAUwR,IACrDnV,KAAKwU,kBAAkBgG,IAAIrF,IAG7BoF,EAASlS,SAAQ,EAAK,GACtB,KAIFrI,KAAKqU,eAAehZ,OACtBgf,EAAWlS,MAAK,KACdqL,YAAW,KACTxT,KAAKia,2BAA2B,GAC/B,IAAK,IAGVja,KAAKoU,wBAAyB,CAChC,GAEJ,EAAC7S,EAEDkZ,WAAA,SAAWtF,GACT,MAAMuF,EAAcvI,EAAkBgD,GAsBpC,OAAOwF,EAAeD,EAAa,CACjCE,YAAa,YACbC,GAAI,UACH1S,MAAK,IAGNnI,KAAK6V,iBAAiBV,IAG5B,EAAC5T,EAEDuZ,SAAA,SAAS1I,GACPpS,KAAKwH,SAAS4K,EAChB,EAAC7Q,EAEDgG,2BAAA,SAA2B6K,GACzB,MAAM+C,GAAWhK,EAAAA,EAAAA,IAASiH,GACpBW,EAAO/S,KAAK+T,WAAW1V,IAAI8W,GACjC,GAAIpC,EAAM,CACR,MAAM8E,EAAgBjF,EAAgBG,EAAK0C,SAE3C,MAAM,GAANna,QAAA6b,EAAAA,EAAAA,GACK4D,EAAoBlD,EAAc9E,KAAKC,qBAAmB,CAC7Db,EAAkBgD,IAEtB,CACE,OAAO,IAEX,EAAC5T,EAEDyZ,eAAA,SAAe5I,GACb,MAAM+C,GAAWhK,EAAAA,EAAAA,IAASiH,GACpBW,EAAO/S,KAAK4T,OAAOvV,IAAI8W,GAC7B,OAAQpC,GAAQA,EAAK2C,QACvB,EAACnU,EAED4U,YAAA,SAAYf,GACV,YADiB,IAAPA,IAAAA,EAAU,GACbpV,KAAKyU,YAAY,4BAA8CtM,MACpEuJ,IACE,MAAM,OAAEG,EAAM,aAAEwD,GAAiB3D,EAEjC,IAAIuJ,EAEJ,GAAe,MAAXpJ,GAAkBuD,EAAU,EAE9B,OAAOpV,KAAKmW,YAAYf,EAAU,GAIpC,GAAe,MAAXvD,EACF,IACE,MAAMyD,EAAclS,KAAKC,MAAMgS,GAC/B,QAA2CrT,IAAvCsT,EAAYrC,uBACd,MAAM,IAAIzF,MAAM,iCAGlByN,EAAU3F,CACZ,CAAE,MAAOxE,GACP,CAIJ,OAAOmK,CAAO,GAGpB,EAACxH,CAAA,CA/sBoB,GAktBvB,MAAMsH,EAAsB/H,IACzBvX,OAAOyf,gBAAgBlI,IAAuB,IAAIlL,KACjDqT,GAASC,GAAkBD,IAGxB,IA4FHE,EA5FSC,EAAU,SAAAC,GACrB,SAAAD,EAAYE,EAAe/R,EAAYoJ,GAAW,IAADpT,EA2B9C,OARDA,EAAA8b,EAAA3c,KAAA,MAlBsB,SAAC6c,EAAWC,GAKhC,QAL0C,IAAVA,IAAAA,EAAa,eAKxCF,EAHHE,EAAa,cAGgBD,GAC7B,MAAM,IAAIjO,MACR,+DAA+DiO,MAInE,OACED,EAAcE,GAAYD,KAEvBzJ,OAAMlB,GAAOA,GAEpB,GAEqBrH,IAAW,KAE5BoJ,GACFpT,EAAKsU,WAAWjV,KAAIqM,EAAAA,EAAAA,IAAS0H,EAAS1J,MAAO,CAC3CgM,SAAUtC,EAAS1J,KACnBsM,QAAS5C,EACThB,OAAQ,YAEXpS,CACH,EAACyQ,EAAAA,EAAAA,GAAAoL,EAAAC,GAAA,IAAAI,EAAAL,EAAA5c,UA4DA,OA5DAid,EAEDlB,WAAA,SAAWtF,GACT,OAAOoG,EAAA7c,UAAM+b,WAAU7b,KAAC,KAAAuW,GAAUhN,MAAKJ,IACrC,GAAIA,EAAO8J,SAAWI,EAAmBC,QACvC,OAAO9J,QAAQC,UAEjB,MAAMwK,EAAW9K,EAAO0N,QAClBgG,EAAY5I,EAASG,mBACrB4I,EAAgBb,EAAoBU,GAC1C,OAAOrT,QAAQE,IAAIsT,EAAc9T,IAAI6S,IAAiBxS,MAAK,IAAM0K,GAAS,GAE9E,EAAC8I,EAED9F,iBAAA,SAAiBzD,GACf,OAAOmJ,EAAA7c,UAAMmX,iBAAgBjX,KAAC,KAAAwT,GAASjK,MAAKiG,GACtCA,EAAKsH,SAGAnD,EAAQH,EAAS,QAAQjK,MAAKuJ,GAChB,MAAfA,EAAIG,OAIC,CACLA,OAAQI,EAAmBzE,OAMxBY,IAGJA,GAEX,EAACuN,EAED7F,yBAAA,SAAyB1D,GACvB,OAAOmJ,EAAA7c,UAAMoX,yBAAwBlX,KAAC,KAAAwT,GAASjK,MAAKiG,GAC9CA,EAAKsH,SAGAnD,EAAQH,EAAS,QAAQjK,MAAKuJ,GAChB,MAAfA,EAAIG,OAIC,CACLA,OAAQI,EAAmBzE,OAMxBY,IAGJA,GAEX,EAACkN,CAAA,CAzFoB,CAAS7H,GA8FzB,MAAMoI,EAAYC,IACvBT,EAAWS,CAAO,EAGPC,EAAe,CAC1BxL,QAAS6B,GAAWiJ,EAAS9B,SAASnH,GAGtC7K,2BAA4B6K,GAC1BiJ,EAAS9T,2BAA2B6K,GACtC5K,SAAU4K,GAAWiJ,EAAS7T,SAAS4K,GAEvC3K,aAAc,SAAC2K,EAAS3V,GAAY,YAAL,IAAPA,IAAAA,EAAU,CAAC,GACjC4e,EAAS5T,aAAa2K,EAAS3V,EAAQ,EACzC8c,SAAUnH,GAAWiJ,EAAS9B,SAASnH,GACvC4I,eAAgB5I,GAAWiJ,EAASL,eAAe5I,GACnD0I,SAAU1I,GAAWiJ,EAASP,SAAS1I,GACvC+D,YAAaA,IAAMkF,EAASlF,eAG9B,QAEO,SAAS6F,IACd,OAAIX,EACKA,EAASvH,cAET,CAAC,CAEZ,CAEO,SAASmI,IACd,OAAIZ,EACKA,EAASlH,SAET,CAAC,CAEZ,6JC77BO,SAAS+H,EAAoBxR,GAA0B,IAAzB,SAAElI,EAAQ,SAAE2Z,GAAUzR,EAKzD,OAJA0R,EAAAA,EAAAA,YAAU,KACRD,GAAU,IAGL3Z,CACT,CCXO,MAAM6Z,EAAmB,CAC9B,OACA,OACA,QACA,QACA,OACA,WACA,UC8DK,SAASC,EAAYC,EAAQC,GAClC,GAAID,aAAkBE,aAAeD,aAAkBC,YAAa,CAClE,MAAMC,EAAQF,EAAOG,aAAa,SAGlC,GAAID,IAAUH,EAAOI,aAAa,SAAU,CAC1C,MAAMC,EAAWJ,EAAOK,WAAU,GAGlC,OAFAD,EAASzL,aAAa,QAAS,IAC/ByL,EAASF,MAAQA,EACVA,IAAUH,EAAOG,OAASH,EAAOD,YAAYM,EACtD,CACF,CAEA,OAAOL,EAAOD,YAAYE,EAC5B,gBCrEA,MAAMM,EAAa7b,SAASqB,cAAc,OAEpCya,EAAyBA,KAC7B,MAAMC,EAAgB/b,SAASgc,iBAAiB,sBAEhD,IAAK,MAAMjc,KAAQgc,EACjBhc,EAAKyQ,WAAWyL,YAAYlc,EAC9B,EAGImc,EAAiBA,KAAO,IAADC,EAC3B,MAAMC,EAAiB,GAEjBC,EAAU,IAAI9T,IACpB,IAAK,MAAMxI,KAAQ8b,EAAWS,WAAY,CAAC,IAADC,EAAAC,EACxC,MAAMC,EAAW1c,EAAK0c,SAASxhB,cACzB4Q,EAAoB,QAAlB0Q,EAAGxc,EAAK2c,kBAAU,IAAAH,GAAI,QAAJC,EAAfD,EAAiB1Q,UAAE,IAAA2Q,OAAJ,EAAfA,EAAqBlhB,MAEhC,GAAK8f,EAAiB9G,SAASmI,GAExB,CACL,IAAIE,EAAa5c,EAAK6b,WAAU,GAIhC,GAHAe,EAAWzM,aAAa,oBAAoB,GAGF,WAAtCyM,EAAWF,SAASxhB,cAA4B,CAClD,MAAM0I,EAAS3D,SAASqB,cAAc,UACtC,IAAK,MAAMub,KAAQD,EAAWD,WAC5B/Y,EAAOuM,aAAa0M,EAAK5O,KAAM4O,EAAKthB,OAEtCqI,EAAOY,UAAYoY,EAAWpY,UAC9BoY,EAAahZ,CACf,CAEA,GAAIkI,EACF,GAAKwQ,EAAQlf,IAAI0O,GAGV,CAAC,IAADgR,EACL,MAAMC,EAAgCT,EAAQjf,IAAIyO,GACM,QAAxDgR,EAAAT,EAAeU,GAA+BtM,kBAAU,IAAAqM,GAAxDA,EAA0DZ,YACxDG,EAAeU,IAEjBV,EAAeU,GAAiCH,CAClD,MAREP,EAAe1U,KAAKiV,GACpBN,EAAQxe,IAAIgO,EAAIuQ,EAAehiB,OAAS,QAS1CgiB,EAAe1U,KAAKiV,EAExB,MACF,CAEA,MAAMI,EAAuB/c,SAASgc,iBAAiB,sBAEf,IAADgB,EAAvC,GAAoC,IAAhCD,EAAqB3iB,OAEvB,YADA4iB,EAAAhd,SAAS0E,MAAKuY,OAAMne,MAAAke,EAAIZ,GAI1B,MAAMc,EAAe,IDahB,SAAkBzT,GAA0C,IAAzC,SAAE0T,EAAQ,SAAEC,EAAQ,QAAEC,EAAO,MAAEC,GAAO7T,EAC9D,IAAK,MAAM8T,KAAuBJ,EAAU,CAC1C,MAAMK,EAAkBJ,EAAStE,WAAUzW,GACzCgZ,EAAYhZ,EAAGkb,MAGQ,IAArBC,EACFH,EAAQE,GAGRH,EAASxV,OAAO4V,EAAiB,EAErC,CAGA,IAAK,MAAMC,KAAWL,EACpBE,EAAMG,EAEV,CC9BEC,CAAU,CACRP,SAAUJ,EACVK,SAAUhB,EACViB,QAAStd,GAAQA,EAAKyQ,WAAWyL,YAAYlc,GAC7Cud,MAAOvd,GAAQmd,EAAaxV,KAAK3H,MAGnCoc,EAAAnc,SAAS0E,MAAKuY,OAAMne,MAAAqd,EAAIe,EAAa,EAehC,SAASS,EAAqBlU,GAIjC,IAJkC,cACpC+M,EAAa,mBACbkB,EAAkB,mBAClBkG,GACDnU,GACC0R,EAAAA,EAAAA,YAAU,KACR,GAAI3E,SAAAA,EAAeqH,KAAM,EDjFtB,SAA6BnZ,GAClC,GAAoB,mBAATA,EACT,MAAM,IAAI6H,MACR,uDAAuD7H,MAE7D,CC6EMoZ,CAAoBtH,EAAcqH,MAElC,MAAM,OAAEzc,IAAW2c,EAAAA,EAAAA,KAEbF,EAAOrH,EAAcqH,KAE3Bzc,GAIEyL,EAAAA,EAAAA,KAACoO,EAAoB,CAACC,SAAUgB,EAAe3a,UAC7CsL,EAAAA,EAAAA,KAACmR,EAAAA,mBAAmB1c,SAAQ,CAAChG,MAAOoc,EAAmBnW,UACrDsL,EAAAA,EAAAA,KAACoR,EAAAA,iBAAgB,CAAA1c,UACfsL,EAAAA,EAAAA,KAACgR,EAAI,KD7Ga/hB,EC6GQ8hB,ED5G/B,CACLrd,SAAU,CACRmC,SAAU5G,EAAMyE,SAASmC,UAE3BuH,OAAQnO,EAAMmO,OACdkD,KAAMrR,EAAMqR,MAAQ,CAAC,EACrB+Q,YAAapiB,EAAMoiB,sBC0GfrC,EAEJ,CDnHG,IAAyB/f,ECqH5B,MAAO,KACLggB,GAAwB,CACzB,GAEL,CCxHA,SAASqC,EAAaxe,GACpB,MAAMie,EAAqB,IACtBje,EACHsK,OAAQ,KACHF,EAAAA,EAAAA,IAAgBpK,EAAMY,SAASmC,aAC/B/C,EAAMiX,cAAczE,KAAK+L,YAAYE,WAM5C,IAAIC,EAFkBvI,MAIpBuI,EADE1e,EAAMiX,cAAcC,iBACRlX,EAAMiX,cAAcC,kBAEpBxV,EAAAA,EAAAA,gBANMyU,EAMsBnW,EAAMiX,cAAc3J,YAN/B6I,EAAE9Y,SAAY8Y,EAM6B,IACrE8H,EACHpgB,IAAKmC,EAAMuI,MAAQvI,EAAMiX,cAAc9E,KAAK5J,OAMhDyV,EAAsB,CACpBnH,cAHoB7W,EAAMiX,cAAclS,KAIxCgT,mBAAoB/X,EAAMiX,cAAcc,mBACxCkG,uBAeF,OAZoBhK,EAAAA,EAAAA,GAClB,kBACA,CACEjS,QAAS0c,EACT1e,MAAOie,GAETS,GACA5U,IAAiB,IAAhB,OAAE3C,GAAQ2C,EACT,MAAO,CAAE9H,QAASmF,EAAQnH,MAAOie,EAAoB,IAEvDU,KAGJ,CAEAH,EAAa1c,UAAY,CACvBlB,SAAUge,IAAAA,OAAiB3c,WAC3BgV,cAAe2H,IAAAA,OAAiB3c,WAChCuL,KAAMoR,IAAAA,OACNL,YAAaK,IAAAA,OAAiB3c,YAGhC,2JCxDO,MAAM4c,EAAsB,CACjC3S,GAAI,mBACJ4S,MAAO,CACLtkB,SAAU,WACVukB,IAAK,EACLC,MAAO,EACPC,OAAQ,EACRC,QAAS,EACTC,SAAU,SACVC,KAAM,mBACNC,WAAY,SACZC,OAAQ,GAEV,YAAa,YACb,cAAe,kCCHjB,SAASC,EAAcxc,GACrB,MAAMyH,GAAWC,EAAAA,EAAAA,GAAwB1H,IACnC,KAAE5C,EAAI,OAAEqI,GAAW3N,OAAO+F,SAEhC,OAAgB,MAAZ4J,IACF3P,OAAO2kB,WAAWhV,EAASE,OAASlC,EAASrI,IACtC,EAIX,CAGA,IAAIsf,EAAY,GAEhB5kB,OAAOmG,iBAAiB,sBAAsB0e,IACxC,6BAA6BhH,KAAKgH,EAAMC,SACtCF,IACF5kB,OAAO+F,SAASmC,SAAW0c,EAE/B,IAGF,MAAMG,EAAmBA,CAAChf,EAAUif,KAC7BN,EAAc3e,EAASmC,YAC1B0c,EAAY7e,EAASmC,UACrBkR,EAAAA,EAAAA,GAAU,mBAAoB,CAAErT,WAAUif,iBAC5C,EAGIC,EAAgBA,CAAClf,EAAUif,KAC1BN,EAAc3e,EAASmC,YAC1BkR,EAAAA,EAAAA,GAAU,gBAAiB,CAAErT,WAAUif,gBAOzC,EAGIE,EAAW,SAACC,EAAInkB,GAIpB,QAJ2B,IAAPA,IAAAA,EAAU,CAAC,GAIb,iBAAPmkB,EAET,YADAC,EAAAA,cAAcF,SAASC,GAIzB,MAAM,SAAEjd,EAAQ,OAAEyF,EAAM,KAAErI,IAAS+f,EAAAA,EAAAA,IAAUF,GACvCxV,GAAWC,EAAAA,EAAAA,GAAwB1H,GAUzC,GANIyH,IACFwV,EAAKxV,EAASE,OAASlC,EAASrI,GAK9BtF,OAAOslB,aAET,YADAtlB,OAAO+F,SAAWmC,EAAWyF,EAASrI,GAMxC,MAAMigB,EAAYxN,YAAW,KAC3BqF,EAAAA,EAAQ9P,KAAK,6BAA8B,CAAEpF,cAC7CkR,EAAAA,EAAAA,GAAU,uBAAwB,CAChCrT,SAAU/F,OAAO+F,UACjB,GACD,KAEH8O,EAAAA,GAAO9I,SAAS7D,EAAWyF,GAAQjB,MAAK0P,IAOtC,IAAKA,GAAiBA,EAAchG,SAAWI,EAAAA,GAAmBzE,MAIhE,OAHA/R,OAAOwlB,QAAQC,aAAa,CAAC,EAAG,GAAI1f,SAAS4I,MAC7C3O,OAAO+F,SAAWmC,OAClBwd,aAAaH,GAM8BnJ,GAEzCA,EAAc9E,KAAKE,yBACnBxX,OAAO2lB,4BAIL,kBAAmB1lB,WACoB,OAAvCA,UAAU2lB,cAAcnJ,YACqB,cAA7Cxc,UAAU2lB,cAAcnJ,WAAWnU,OAEnCrI,UAAU2lB,cAAcnJ,WAAWoJ,YAAY,CAC7CC,UAAW,uBAIf9lB,OAAO+F,SAAWmC,EAAWyF,EAASrI,IAG1CygB,EAAAA,EAAAA,UAAcZ,EAAInkB,GAClB0kB,aAAaH,EAAU,GAE3B,EAEA,SAASrgB,EAAmBU,EAAeqJ,GAAiB,IAAf,SAAElJ,GAAUkJ,EACvD,MAAM,SAAE/G,EAAQ,KAAE5C,GAASS,EACrBqG,GAAUgN,EAAAA,EAAAA,GAAU,qBAAsB,CAC9CxT,kBAEAsC,WACArC,YAAa,CAAEE,YACfigB,uBAAwB7hB,GAAQ,CAC9B,EAGAI,KAAKC,cAAc6B,KAAKlC,EAAMA,EAAKnB,QAGvC,GAAIoJ,EAAQxM,OAAS,EAGnB,OAAOwM,EAAQA,EAAQxM,OAAS,GAGlC,GAAIgG,EAAiB,CACnB,MACEG,UAAYmC,SAAU+d,IACpBrgB,EACJ,GAAIqgB,IAAgB/d,EAGlB,OAAO5C,EAAOgB,UAAUhB,EAAKxF,MAAM,IAAM,CAAC,EAAG,EAEjD,CACA,OAAO,CACT,CAYC,IAEKomB,EAAc,SAAAniB,GAClB,SAAAmiB,EAAY/gB,GAAQ,IAADnB,EAEuB,OADxCA,EAAAD,EAAAZ,KAAA,KAAMgC,IAAM,MACPghB,gBAAkB9jB,EAAAA,YAAiB2B,CAC1C,EAACyQ,EAAAA,EAAAA,GAAAyR,EAAAniB,GAAA,IAAA+B,EAAAogB,EAAAjjB,UAwBA,OAxBA6C,EAEDY,mBAAA,SAAmBzB,EAAWmhB,GAC5BvhB,uBAAsB,KACpB,IAAIwhB,EAAW,eAAe9hB,KAAKY,MAAMY,SAASmC,WAC9C1C,SAAS8gB,QACXD,EAAW7gB,SAAS8gB,OAEtB,MAAMC,EAAe/gB,SAASgc,iBAAiB,4BAC3C+E,GAAgBA,EAAa3mB,SAC/BymB,EAAWE,EAAa,GAAGC,aAE7B,MAAMC,EAAkB,gBAAgBJ,IACxC,GAAI9hB,KAAK4hB,gBAAgBvd,QAAS,CACRrE,KAAK4hB,gBAAgBvd,QAAQ8d,YAC7BD,IACtBliB,KAAK4hB,gBAAgBvd,QAAQ8d,UAAYD,EAE7C,IAEJ,EAAC3gB,EAEDc,OAAA,WACE,OAAOyL,EAAAA,EAAAA,KAAA,UAAS2R,EAAqBvb,IAAKlE,KAAK4hB,iBACjD,EAACD,CAAA,CA5BiB,CAAS7jB,EAAAA,WA+B7B,MAAMskB,EAAuBA,CAAC3B,EAAc4B,KAAkB,IAADC,EAAAC,EAC3D,OAAI9B,EAAarW,OAASiY,EAAajY,OAInCqW,SAAmB,QAAP6B,EAAZ7B,EAAc1c,aAAK,IAAAue,OAAP,EAAZA,EAAqB7jB,QAAQ4jB,SAAmB,QAAPE,EAAZF,EAActe,aAAK,IAAAwe,OAAP,EAAZA,EAAqB9jB,IAI1C,EAGd,IACM+jB,EAAY,SAAAC,GAChB,SAAAD,EAAY5hB,GAAQ,IAAD8hB,EAEqB,OADtCA,EAAAD,EAAA7jB,KAAA,KAAMgC,IAAM,KACZ4f,EAAiB5f,EAAMY,SAAU,MAAKkhB,CACxC,EAACxS,EAAAA,EAAAA,GAAAsS,EAAAC,GAAA,IAAA9G,EAAA6G,EAAA9jB,UA2BA,OA3BAid,EAEDja,kBAAA,WACEgf,EAAc1gB,KAAKY,MAAMY,SAAU,KACrC,EAACma,EAEDgH,sBAAA,SAAsBjiB,GACpB,QAAI0hB,EAAqB1hB,EAAUc,SAAUxB,KAAKY,MAAMY,YACtDgf,EAAiBxgB,KAAKY,MAAMY,SAAUd,EAAUc,WACzC,EAGX,EAACma,EAEDxZ,mBAAA,SAAmBzB,GACb0hB,EAAqB1hB,EAAUc,SAAUxB,KAAKY,MAAMY,WACtDkf,EAAc1gB,KAAKY,MAAMY,SAAUd,EAAUc,SAEjD,EAACma,EAEDtZ,OAAA,WACE,OACEugB,EAAAA,EAAAA,MAAC9kB,EAAAA,SAAc,CAAA0E,SAAA,CACZxC,KAAKY,MAAM4B,UACZsL,EAAAA,EAAAA,KAAC6T,EAAc,CAACngB,SAAUA,aAGhC,EAACghB,CAAA,CA/Be,CAAS1kB,EAAAA,oCCxN3B,SAAS+kB,EAAe7N,EAAG8N,GACzB,IAAK,IAAIC,KAAK/N,EACZ,KAAM+N,KAAKD,GAAI,OAAO,EACvB,IAAK,IAAIE,KAAMF,EACd,GAAI9N,EAAEgO,KAAQF,EAAEE,GAAK,OAAO,EAC7B,OAAO,CACV,CC8GA,MAlHqB,SAAAxjB,GACnB,SAAAyjB,EAAYriB,GAAQ,IAADnB,EACjBA,EAAAD,EAAAZ,KAAA,OAAO,KACP,MAAM,SAAE4C,EAAQ,cAAEqW,GAAkBjX,EAQnC,OAPDnB,EAAKsE,MAAQ,CACXvC,SAAU,IAAKA,GACfqW,cACEA,GACAvH,EAAAA,GAAO7I,aAAajG,EAASmC,SAAWnC,EAAS4H,OAAQ,CACvD2P,kBAAkB,KAEvBtZ,CACH,EAACyQ,EAAAA,EAAAA,GAAA+S,EAAAzjB,GAAAyjB,EAEMC,yBAAP,SAAAxY,EAA8CyY,GAAY,IAA1B,SAAE3hB,GAAUkJ,EAC1C,GAAIyY,EAAU3hB,SAAS4I,OAAS5I,EAAS4I,KAAM,CAQ7C,MAAO,CACLyN,cARoBvH,EAAAA,GAAO7I,aAC3BjG,EAASmC,SAAWnC,EAAS4H,OAC7B,CACE2P,kBAAkB,IAMpBvX,SAAU,IAAKA,GAEnB,CAEA,MAAO,CACLA,SAAU,IAAKA,GAEnB,EAAC,IAAAD,EAAA0hB,EAAAvkB,UA+EA,OA/EA6C,EAED6hB,cAAA,SAAchR,GACZ9B,EAAAA,GAAO9I,SAAS4K,GAASjK,MAAK0P,IACxBA,GAAiBA,EAAchG,SAAWI,EAAAA,GAAmBzE,MAC/DxN,KAAKqjB,SAAS,CACZ7hB,SAAU,IAAK/F,OAAO+F,UACtBqW,mBAGFpc,OAAOwlB,QAAQC,aAAa,CAAC,EAAG,GAAI1f,SAAS4I,MAC7C3O,OAAO+F,SAAW4Q,EACpB,GAEJ,EAAC7Q,EAEDohB,sBAAA,SAAsBd,EAAWyB,GAE/B,OAAKA,EAAUzL,cAkBX7X,KAAK+D,MAAM8T,gBAAkByL,EAAUzL,gBAIzC7X,KAAK+D,MAAM8T,cAAc3J,YAAcoV,EAAUzL,cAAc3J,YAK7DlO,KAAK+D,MAAM8T,cAAczE,OAASkQ,EAAUzL,cAAczE,SAM5DpT,KAAK+D,MAAMvC,SAAS/C,MAAQ6kB,EAAU9hB,SAAS/C,MAC/C6kB,EAAUzL,cAAc9E,OACvBuQ,EAAUzL,cAAc9E,KAAKpI,YAC5B2Y,EAAUzL,cAAc9E,KAAK5J,ODhFrC,SAA0BkS,EAAUwG,EAAWyB,GAC7C,OAAOT,EAAexH,EAASza,MAAOihB,IAAcgB,EAAexH,EAAStX,MAAOuf,EACpF,CCkFUC,CAAevjB,KAAM6hB,EAAWyB,OAvCrCtjB,KAAKojB,cACHvB,EAAUrgB,SAASmC,SAAWke,EAAUrgB,SAAS4H,SAE5C,EAqCX,EAAC7H,EAEDc,OAAA,WAiBE,OAAOrC,KAAKY,MAAM4B,SAASxC,KAAK+D,MAClC,EAACkf,CAAA,CA/GkB,CAASnlB,EAAAA,2IC6B9B,MAAMwS,EAAS,IAAIgL,EAAAA,GAAWE,EAAe/R,EAAYhO,OAAOoX,WAChEgJ,EAAAA,EAAAA,IAAUvL,GACVA,EAAOsE,aAAaC,EAAAA,GAEpB,MAAM,OAAExS,EAAM,QAAEmhB,IAAYxE,EAAAA,EAAAA,KAE5BvjB,OAAO+f,cAAgBA,EACvB/f,OAAOgoB,WAAa5K,EAAAA,EACpBpd,OAAOioB,UAAY3H,EAAAA,GH4HjB8E,EAAAA,cAAc8C,QAAO/jB,IACnBA,EAAK4B,SAASoiB,OAAShkB,EAAKgkB,MAAM,IAGpCnoB,OAAOooB,QAAUjD,GAAMD,EAASC,EAAI,CAAEzkB,SAAS,IAC/CV,OAAO2kB,WAAaQ,GAAMD,EAASC,EAAI,CAAEzkB,SAAS,IAClDV,OAAOqoB,YAAc,CAAClD,EAAInkB,IAAYkkB,EAASC,EAAInkB,GG9HrD,MAAMsnB,EAAmB,wCAEzBC,EAAAA,EAAAA,GAAe,iBAAiB7b,MAAK,MAG/B0M,EAAAA,EAAAA,GAAU,yBAAyBjY,OAAOqnB,SAAS5oB,OAAS,GAC9DgM,EAAQ,OAWV,MAAM6c,EAAetjB,IACnBkN,EAAAA,EAAAA,KAACqW,EAAAA,YAAY5hB,SAAQ,CACnBhG,MAAO,CACL6nB,QAAS,IACTC,SAAU,KACV7hB,UAEFsL,EAAAA,EAAAA,KAACsR,EAAAA,EAAY,IAAKxe,MAIhB0jB,EAAcxmB,EAAAA,cAAoB,CAAC,GAEnC2Q,EAAgB,CACpBK,kBAAmB,WACpB,IAEKyV,EAAU,SAAA/kB,GAAA,SAAA+kB,IAAA,OAAA/kB,EAAAO,MAAA,KAAAJ,YAAA,KAiCb,OAjCauQ,EAAAA,EAAAA,GAAAqU,EAAA/kB,GAAA+kB,EAAA7lB,UACd2D,OAAA,WACE,MAAM,SAAEG,GAAaxC,KAAKY,MAC1B,OACEkN,EAAAA,EAAAA,KAAC0W,EAAAA,SAAQ,CAAAhiB,SACNkI,IAAA,IAAC,SAAElJ,GAAUkJ,EAAA,OACZoD,EAAAA,EAAAA,KAACmV,EAAe,CAACzhB,SAAUA,EAASgB,SACjCyI,IAAkC,IAAjC,cAAE4M,EAAa,SAAErW,GAAUyJ,EAC3B,MAAM0N,GAAqBqD,EAAAA,EAAAA,MACrByI,GAAexI,EAAAA,EAAAA,MAErB,OACEnO,EAAAA,EAAAA,KAACmR,EAAAA,EAAmB1c,SAAQ,CAAChG,MAAOoc,EAAmBnW,UACrDsL,EAAAA,EAAAA,KAACY,EAAAA,GAAcnM,SAAQ,CAAChG,MAAOkS,EAAcjM,UAC3CsL,EAAAA,EAAAA,KAACG,EAAAA,GAAqB1L,SAAQ,CAAChG,MAAOkoB,EAAajiB,UACjDsL,EAAAA,EAAAA,KAACV,EAAAA,GAAiB7K,SAAQ,CACxBhG,MAAOsb,EAAc9E,KAAK5F,UAAU3K,UAEpCsL,EAAAA,EAAAA,KAACwW,EAAY/hB,SAAQ,CACnBhG,MAAO,CAAEsb,gBAAerW,YAAWgB,SAElCA,WAKmB,GAGlB,GAI1B,EAAC+hB,CAAA,CAjCa,CAASzmB,EAAAA,WAoCnB4mB,EAAe,SAAAjC,GAAA,SAAAiC,IAAA,OAAAjC,EAAA1iB,MAAA,KAAAJ,YAAA,KAsClB,OAtCkBuQ,EAAAA,EAAAA,GAAAwU,EAAAjC,GAAAiC,EAAAhmB,UACnB2D,OAAA,WACE,OACEyL,EAAAA,EAAAA,KAACwW,EAAYK,SAAQ,CAAAniB,SAClBwX,IAAA,IAAC,cAAEnC,EAAa,SAAErW,GAAUwY,EAAA,OAC3BlM,EAAAA,EAAAA,KAAC0U,EAAY,CAAChhB,SAAUA,EAASgB,UAC/BsL,EAAAA,EAAAA,KAACnQ,EAAAA,GAAa,CACZ6D,SAAUA,EACVb,mBAAoBA,EAAmB6B,UAEvCsL,EAAAA,EAAAA,KAAC8W,EAAAA,OAAM,CACLP,SAAUpa,GACVzI,SAAUA,EACVsL,GAAG,uBAAsBtK,UAEzBsL,EAAAA,EAAAA,KAACoW,EAAY,CACX/a,KAC8B,cAA5B0O,EAAc9E,KAAK5J,MACS,cAA5B0O,EAAc9E,KAAK5J,MACfa,EAAAA,EAAAA,GAAYxI,EAASmC,SAAUsG,IAC/B4a,WAEIhN,EAAc9E,KAAKpI,WACnBkN,EAAc9E,KAAK5J,MACnBE,MAAM,KAAK,OAGjBrJ,KAAKY,MACTY,SAAUA,EACVqW,cAAeA,KACXA,EAAczE,YAIX,GAIvB,EAACsR,CAAA,CAtCkB,CAAS5mB,EAAAA,WAyC9B,MAAM,SAAEqX,EAAU3T,SAAUsjB,GAAerpB,OAYzC0Z,GACAlL,GAAgBkL,IACd2P,EAAWnhB,UAAYwR,EAASI,SAAS,KAAOuP,EAAW1b,OAAS,OAEpEkH,EAAOhG,eAAcN,EAAAA,EAAAA,GAAY8a,EAAWnhB,SAAUsG,MACtDkL,EAASxY,MAAM,6BACfwY,EAASxY,MAAM,+CAGjBgkB,EAAAA,EAAAA,UACE1W,GACEkL,GACEA,EAASI,SAAS,KAA2B,GAApBuP,EAAW1b,QACtC0b,EAAW/jB,KACb,CACE5E,SAAS,IAMf,MAAM4oB,EAAoBA,KACxB,IACE,OAAO7hB,cACT,CAAE,MACA,OAAO,IACT,GAGF6Y,EAAAA,GAAavU,SAASsd,EAAWnhB,SAAWmhB,EAAW1b,QAAQjB,MAAK4K,IAAS,IAADiS,EAC1E,MAAM9hB,EAAiB6hB,IAEvB,GACEhS,SAAU,QAANiS,EAAJjS,EAAMA,YAAI,IAAAiS,GAAVA,EAAY/R,wBACZF,EAAKA,KAAKE,yBAA2BxX,OAAO2lB,4BAI1C,kBAAmB1lB,WACoB,OAAvCA,UAAU2lB,cAAcnJ,YACqB,cAA7Cxc,UAAU2lB,cAAcnJ,WAAWnU,OAEnCrI,UAAU2lB,cAAcnJ,WAAWoJ,YAAY,CAC7CC,UAAW,uBAUXre,GAAgB,CAGlB,KAFgE,MAA7CA,EAAeC,QAAQ4gB,IAKxC,OAFA7gB,EAAeO,QAAQsgB,EAAkB,UACzCtoB,OAAO+F,SAASyjB,QAAO,EAG3B,CAOF,GAJI/hB,GACFA,EAAegiB,WAAWnB,IAGvBhR,GAAQA,EAAKlB,SAAWI,EAAAA,GAAmBzE,MAAO,CACrD,MAAMkC,EAAU,sBAAsBoV,EAAWnhB,0CAIjD,GAAIoP,GAAQA,EAAKkD,MAEf,MADAkP,QAAQlP,MAAMvG,GACRqD,EAAKkD,MAGb,MAAM,IAAIzI,MAAMkC,EAClB,CAEA,MAAM0V,GAAWvQ,EAAAA,EAAAA,GACf,kBACA,CAAEjS,SAASkL,EAAAA,EAAAA,KAAC4W,EAAe,MAC3B5W,EAAAA,EAAAA,KAAC4W,EAAe,KAChBpK,IAAiB,IAAhB,OAAEvS,GAAQuS,EACT,MAAO,CAAE1X,QAASmF,EAAQ,IAE5BwX,MAEI8F,EAAM,WACV,MAAMC,EAAsBxnB,EAAAA,QAAa,GAazC,OAXAA,EAAAA,WAAgB,KACTwnB,EAAoBjhB,UACvBihB,EAAoBjhB,SAAU,EAC1BkhB,YAAYC,MACdD,YAAYC,KAAK,0BAGnB3Q,EAAAA,EAAAA,GAAU,yBACZ,GACC,KAEI/G,EAAAA,EAAAA,KAACyW,EAAU,CAAA/hB,SAAE4iB,GACtB,EAEMK,EAAUxkB,SAASC,eAAe,wBAIxC,IAAIwkB,EAAkBrjB,EAClBojB,GAAWA,EAAQjjB,SAASnH,SAC9BqqB,EAAkBlC,GAGpB,MAAMmC,GAAW9Q,EAAAA,EAAAA,GACf,8BACA7S,EACA0jB,GACA,GAEF,SAASE,IACP,MAAMC,EACc,oBAAXpqB,OACHwF,SAASC,eAAe,aACxB,KAENykB,GAAS7X,EAAAA,EAAAA,KAACuX,EAAG,IAAKQ,EACpB,CAIA,MAAMC,EAAM7kB,SACZ,GACqB,aAAnB6kB,EAAIpT,YACgB,YAAnBoT,EAAIpT,aAA6BoT,EAAIC,gBAAgBC,SAEtDxS,YAAW,WACToS,GACF,GAAG,OACE,CACL,MAAMld,EAAU,WACdod,EAAI5jB,oBAAoB,mBAAoBwG,GAAS,GACrDjN,OAAOyG,oBAAoB,OAAQwG,GAAS,GAE5Ckd,GACF,EAEAE,EAAIlkB,iBAAiB,mBAAoB8G,GAAS,GAClDjN,OAAOmG,iBAAiB,OAAQ8G,GAAS,EAC3C,CAEM,GACN,mFC1SJ,UAlByBgC,IAAmB,IAAlB,SAAElJ,GAAUkJ,EACpC,MAAMmN,EAAgBvH,EAAAA,GAAO7I,aAAajG,EAASmC,UACnD,OAAKkU,EAGE/Z,EAAAA,cAAoBmoB,EAAAA,EAAsB,CAC/CzkB,WACAqW,mBACGA,EAAczE,OALV,IAMP,yBCfkB2D,MAKpB5P,EAAO7K,SALaya,EAKW1P,EAAQ,SALR0P,EAAE9Y,SAAY8Y,sECA/C,MAAMjP,EAAM,IAAI5I,QAET,SAAS8f,IACd,MAAMkH,EAAiB7e,EAAQ,MAY/B,MAAO,CAAEhF,OAVMA,CAACI,EAAW0jB,KACzB,IAAIC,EAAOte,EAAIzJ,IAAI8nB,GACdC,GACHte,EAAIhJ,IAAIqnB,EAAKC,EAAOF,EAAeG,WAAWF,IAEhDC,EAAK/jB,OAAOI,EAAU,EAKP+gB,QAFDA,CAAC/gB,EAAW0jB,IAAOD,EAAeI,YAAYH,EAAI1jB,GAGpE,sECZA,MAAM8jB,EAAc,IAAI/c,IAClBgd,EAAwB,IAAIhd,IAU3B,SAAS6B,EAAwB1H,GACtC,IAAIyH,EAAWmb,EAAYloB,IAAIsF,GAI/B,OAHKyH,IACHA,EAAWob,EAAsBnoB,IAAIsF,EAASzH,gBAEzCkP,CACT,IAdUgG,SAAQhG,IACZA,EAASqb,WACXD,EAAsB1nB,IAAIsM,EAASsb,SAAUtb,GAE7Cmb,EAAYznB,IAAIsM,EAASsb,SAAUtb,EACrC,8DCT6B,WAA7B3P,OAAO+F,SAASmlB,UACa,cAA7BlrB,OAAO+F,SAASolB,SAEhBzB,QAAQlP,MACN,gFAEO,kBAAmBva,WAC5BA,UAAU2lB,cACPwF,SAAS,UACT1e,MAAK,SAAU2e,GACdA,EAAIllB,iBAAiB,eAAe,MAClCiT,EAAAA,EAAAA,GAAU,6BAA8B,CAAEwM,cAAeyF,IAGzD,MAAMC,EAAmBD,EAAIE,WAC7B7B,QAAQ8B,IAAI,mBAAoBF,GAChCA,EAAiBnlB,iBAAiB,eAAe,KAC/C,OAAQmlB,EAAiBhjB,OACvB,IAAK,YACCrI,UAAU2lB,cAAcnJ,YAK1Bzc,OAAOslB,cAAe,GAEtBlM,EAAAA,EAAAA,GAAU,6BAA8B,CAAEwM,cAAeyF,IAGrDrrB,OAAOyrB,qBACT/B,QAAQ8B,IAAI,4CACZxrB,OAAO+F,SAASyjB,YAKlBE,QAAQ8B,IAAI,sCAKZpS,EAAAA,EAAAA,GAAU,2BAA4B,CAAEwM,cAAeyF,KAEzD,MAEF,IAAK,YACH3B,QAAQlP,MAAM,oDACdpB,EAAAA,EAAAA,GAAU,2BAA4B,CAAEwM,cAAeyF,IACvD,MAEF,IAAK,aACHjS,EAAAA,EAAAA,GAAU,wBAAyB,CAAEwM,cAAeyF,IAExD,GACA,GAEN,IACC9U,OAAM,SAAU1O,GACf6hB,QAAQlP,MAAM,4CAA6C3S,EAC7D,+JC5DJ,MAAM2K,EAAuBnQ,EAAAA,cAAoB,CAAC,GAC5C4Q,EAAgB5Q,EAAAA,cAAoB,CAAC,GACrCsP,EAAmBtP,EAAAA,cAAoB,CAAC,GACxCwP,EAAqBxP,EAAAA,cAAoB,CAAC,oJCDhD,MAAMmhB,GCgB+BhQ,EDhBkB,cCgBZkY,EDhB2B,CAAC,ECiBjErpB,EAAMspB,oBAjBgB,SAACnY,EAAMkY,GAajC,YAb6C,IAAZA,IAAAA,EAAe,MAE3CE,WAAWC,mBACdD,WAAWC,iBAAmB,CAAC,GAG5BD,WAAWC,iBAAiBrY,KAC/BoY,WAAWC,iBAAiBrY,GAAQnR,EAAMspB,oBACxCnY,EACAkY,IAIGE,WAAWC,iBAAiBrY,EACrC,CAIWmY,CAAoBnY,EAAMkY,GAG5BrpB,EAAAA,cAAoBqpB,IAL7B,IAAqClY,EAAMkY,EDd3C,SAASI,EAAuB7c,GAA4C,IAA3C,gBAAE8c,EAAe,KAAEpZ,EAAI,MAAEqZ,EAAK,OAAEplB,GAAQqI,EACvE,MAAMgd,EAAYtZ,EACdA,EAAKA,KACLoZ,EAAgBC,IAAUD,EAAgBC,GAAOrZ,KAErD,OACEwU,EAAAA,EAAAA,MAAC9kB,EAAAA,SAAc,CAAA0E,SAAA,CACZklB,GAAarlB,EAAOqlB,IACnBA,IAAa5Z,EAAAA,EAAAA,KAAA,OAAAtL,SAAK,4BAG1B,CAKA,MAAMmlB,EAAc/mB,IAClB,MAAM,KAAEwN,EAAI,MAAEqZ,EAAK,OAAEplB,EAAM,SAAEG,GAAa5B,EAS1C,OACEkN,EAAAA,EAAAA,KAACmR,EAAmB0F,SAAQ,CAAAniB,SACzBglB,IACC1Z,EAAAA,EAAAA,KAACyZ,EAAuB,CACtBnZ,KAAMA,EACNqZ,MAAOA,EACPplB,OAAQA,GAAUG,EAClBglB,gBAAiBA,KAGO,EAW5BI,EAAiBH,IAAU,IAADI,EAErB/pB,EAAAA,WAUT,MAAMgqB,EAAUhqB,EAAAA,WAAiBmhB,GAKjC,GAAI8I,MAAMC,OAAOP,IACf,MAAM,IAAIja,MAAM,iLAIMia,WAIxB,GAAkB,QAAlBI,EAAIC,EAAQL,UAAM,IAAAI,GAAdA,EAAgBzZ,KAClB,OAAO0Z,EAAQL,GAAOrZ,KAEtB,MAAM,IAAIZ,MACR,uMAIJ,sCElFa,SAASxD,EAAYie,EAAKC,GACvC,YAD6C,IAANA,IAAAA,EAAS,IAC3CA,EAIDD,IAAQC,EACH,IAGLD,EAAIhtB,WAAW,GAAGitB,MACbD,EAAI1sB,MAAM2sB,EAAO7sB,QAGnB4sB,EAXEA,CAYX,wDCnBc5gB,EAAQ,OAAtB,MACM8gB,EAAW9gB,EAAQ,MAEzB/K,EAAQ8rB,uBAAyB,IACxB,CAACxlB,EAASylB,KACFF,EAAS9B,WAAWgC,GAC5BhmB,OAAOO,EAAQ,+3CCNxB,MAAA0P,EAAoBhP,IAClB,MAAM8F,OAAEqC,EAAF1K,KAAU2K,EAAVtB,KAAgByB,EAAhByc,OAAsBnc,EAAtBwa,SAA8B3R,EAA9BuT,KAAwCjW,EAAxCsU,SAA8C7D,EAA9CyF,KAAwDC,GAC5DnlB,EAAO9B,SACT,IAAImC,SAAE+kB,GAAaplB,EAAO9B,SAO1B,OALKknB,GAAY7c,GAAQ8c,IAEvBD,EADY,IAAAve,IAAQ0B,GACLlI,UAGV,CACLA,SAAUkhB,UAAU9iB,UAAU2mB,IAC9Btf,OAAAqC,EACA1K,KAAA2K,EACAtB,KAAAyB,EACAyc,OAAAnc,EACAwa,SAAA3R,EACAuT,KAAAjW,EACAsU,SAAA7D,EACAyF,KAAAC,EACA1kB,MAAOT,EAAO2d,QAAQld,MACtBtF,IAAM6E,EAAO2d,QAAQld,OAAST,EAAO2d,QAAQld,MAAMtF,KAAQ,UAXtD,EAAAskB,EAeaA,CAACzf,EAAQmI,KAC7B,IAAAC,EAAgB,GACZG,EAAWyG,EAAYhP,GACvB0R,GAAA,EACiB+N,EAAG6F,OAExB,MAAO,CACL,YAAApnB,GACE,OAAOqK,CACR,EAED,iBAAAgd,GACE,OAAO7T,CACR,EAED8T,qBAAAA,GACE9T,GAAA,EACA+N,GACD,EAEDY,MAAAA,CAAOlY,GACLC,EAAU/C,KAAK8C,GAEf,MAAMU,EAAmB4c,KACvBld,EAAWyG,EAAYhP,GACvBmI,EAAS,CAAEjK,SAAAqK,EAAU+X,OAAQ,OAArB,EAKV,OAFAtgB,EAAO1B,iBAAiB,WAAYuK,GAE7B,KACL7I,EAAOpB,oBAAoB,WAAYiK,GACvCT,EAAYA,EAAU9O,QAAO0G,GAAMA,IAAOmI,GAA9B,CAEf,EAEDkV,QAAAA,CAASlV,EAAAud,GAAD,IAAKjlB,MAAE0kB,EAAFtsB,QAASwsB,GAAA,QAAU,IAAAK,EAAU,CAAlC,EAAAA,EACN,GAAkB,iBAAdvd,EACFnI,EAAO2d,QAAQgI,GAAGxd,OACb,CACLgd,EAAatc,EAAA,GAAAsc,EAAA,CAAOhqB,IAAKkZ,KAAKuR,MAAQ,KAEtC,IACMlU,GAAiB2T,EACnBrlB,EAAO2d,QAAQC,aAAauH,EAAO,KAAMhd,GAEzCnI,EAAO2d,QAAQkI,UAAUV,EAAO,KAAMhd,EAIzC,CAFC,MAAOC,GACPpI,EAAO9B,SAASmnB,EAAU,UAAY,UAAUld,EACjD,CACF,CAEDI,EAAWyG,EAAYhP,GACvB0R,GAAA,EACA,MAAM0T,EAAa,IAAItgB,SAAQ9E,GAAQyf,EAAoBzf,IAE3D,OADAoI,EAAU0F,SAAQ9N,GAAYA,EAAS,CAAE9B,SAAAqK,EAAU+X,OAAQ,WACpD8E,CACR,EApDI,EAyDHD,EAAqB,SAACnlB,QAAA,IAAAA,IAAAA,EAAc,KACxC,MAAMmI,EAAcnI,EAAYwF,QAAQ,KACnB4C,EAAG,CACtB/H,SACE8H,GAAe,EAAInI,EAAY8lB,OAAO,EAAG3d,GAAenI,EAC1D8F,OAAQqC,GAAe,EAAInI,EAAY8lB,OAAO3d,GAAe,IAE/D,IAAII,EAAQ,EACZ,MAAMM,EAAQ,CAACT,GAAAsJ,EACA,CAAC,MAEhB,MAAO,CAAC,YAADxT,GAEH,OAAO2K,EAAMN,EACd,EACDjK,gBAAAA,CAAiB0B,EAAMmI,GAJlB,EAKLvJ,mBAAAA,CAAoBoB,EAAMmI,GALrB,EAMLwV,QAAS,CACP,WAAA1R,GACE,OAAOpD,CACR,WAAA2N,GAEC,OACDjO,CAAA,EACG,SAAA9H,GACF,OAAaiR,EAACnJ,EACf,EACDsd,SAAAA,CAAU7lB,EAAOmI,EAAGC,GAClB,MAAO4G,EAAUyQ,EAAS,IAAMrX,EAAIrC,MAAM,KAC1CwC,IACAM,EAAMxD,KAAK,CAAEhF,SAAA2O,EAAUlJ,OAAQ2Z,EAAO1nB,OAAU,IAAG0nB,IAAWA,IAC9D/N,EAAOrM,KAAKrF,EACb,EACD4d,YAAAA,CAAa5d,EAAOmI,EAAGC,GACrB,MAAO4G,EAAUyQ,EAAS,IAAMrX,EAAIrC,MAAM,KAC1C8C,EAAMN,GAAS,CAAElI,SAAA2O,EAAUlJ,OAAA2Z,GAC3B/N,EAAOnJ,GAASvI,CACjB,EACD2lB,EAAAA,CAAG3lB,GACD,MAAcmI,EAAGI,EAAQvI,EAErBmI,EAAW,GAAKA,EAAWuJ,EAAO3Z,OAAS,IAI/CwQ,EAAQJ,EACT,GAnCE,EA0CMkd,IACK,oBAAAltB,SAClBA,OAAOwF,WACPxF,OAAOwF,SAASqB,eAOZomB,EAAgB3F,EAJJ4F,EAAGltB,OAASgtB,MAKxB9H,SAAEvU,GAAasc,ECrIrB,SAASW,EAA4B/lB,EAAMoI,GACzC,OAAID,EAAM2b,oBAhBgB,SAAC9jB,EAAMoI,GAAe,YAAf,IAAAA,IAAAA,EAAe,MAC3C2b,WAAWC,mBACdD,WAAWC,iBAAmB,CAAC,GAG5BD,WAAWC,iBAAiBhkB,KAC/B+jB,WAAWC,iBAAiBhkB,GAAQmI,EAAM2b,oBACxC9jB,EACAoI,IAIG2b,WAAWC,iBAAiBhkB,EAAA,CAZT,CAiBGA,EAAMoI,GAGvBD,EAAAA,cAAeC,EAC5B,CAEY,MAAWqL,EAAGsS,EAA4B,OAAQ,CAC7DjF,QAAS,IACTC,SAAU,MAECiF,EAAkBD,EAA4B,YAAAE,EC5B7BA,IAAMjmB,EAAAA,WAAiByT,GACtByS,EAAGC,IAAMnmB,EAAAA,WAAiBgmB,GCEzD,SAAAI,EAAyBpmB,GACvBtD,KAAK2pB,IAAMrmB,CACZ,CAEK,MAAAsmB,EAAatmB,GAAKA,aAAxBomB,EAEMG,EAAavmB,IACjB,MAAM,IAAAomB,EAAoBpmB,EAApB,EAGR,SAAAwf,EAAsBrX,GACpB,MAAMmV,GAAElV,EAAFvP,QAAM0P,GAAA,EAAN9H,MAAsBoI,EAAtB2d,QAA6B9U,EAA7BoP,QAAsC9R,GAAY7G,EAExDnI,EAAAA,WAAgB,KACd8E,QAAQC,UAAUF,MAAK,KACrB,MAAM7E,EAAaymB,EAAQre,EAAI4G,GAC/BlG,EAAS4d,EAAa1mB,EAAYmI,GAAQ,CAAEtP,QAAA0P,EAAS9H,MAAAoI,GAA7C,GAEX,GAAE,IAEH,MAAgB4W,EAAGgH,EAAQre,EAAI4G,GAM/B,OAJK0C,GACH6U,EAAWG,EAAajH,EAAYtX,IAAA,IAIvC,CAEK,MAAQwe,EAAGxe,IACf,MAAMC,EAAkB8d,KAClBpF,QAAEvY,GAAY0d,IAEpB,OAAOjmB,EAAAA,cAACwf,EAAD3W,EAAA,GAAkBT,EAAlB,CAAmC0Y,QAASvY,GAAaJ,GACjE,EAEDwe,EAASvnB,UAAY,CACnBiU,KAAMjL,IAAAA,OACNkV,GAAIlV,IAAAA,OAAiB7I,YCrCjB,MAAAqnB,EAAajvB,CAACqI,EAAQmI,IAAAnI,EACZ8lB,OAAO,EAAG3d,EAAOpQ,UAAYoQ,EAAA0e,EAyBhC/gB,CAAC9F,EAAQmI,KACpB,IAAAC,EACAS,EAEA,MAAO6I,GAAevJ,EAAIpC,MAAM,KAC1BiJ,EAAc8X,EAAWpV,GAChB+N,EAAsB,KAAnBzQ,EAAY,GACxBmW,EAAS4B,EAAW/mB,GAE1B,IAAK,IAAAA,EAAQ,EAAG0R,EAAIyT,EAAOptB,OAAQiI,EAAI0R,EAAG1R,IAAK,CAC7C,IAAA0R,GAAA,EACA,MAAM2T,EAAQF,EAAOnlB,GAAGyH,MAExB,GAAI4d,EAAM1qB,QAAS,CACjBkO,EAAW,CACTpB,MAAA4d,EACAzd,OAAQ,CAAC,EACTye,IAAAle,GAEF,QACD,CAED,MAAmBid,EAAG0B,EAAWzB,EAAMxf,MAAAiD,EACxB,CAAC,EACVid,EAAMiB,KAAKC,IAAIjY,EAAYjX,OAAQqtB,EAAcrtB,QACvD,IAAS0b,EAAG,EAEZ,KAAOA,EAAQsS,EAAKtS,IAAS,CAC3B,MAAkBzT,EAAGolB,EAAc3R,GACnBtL,EAAG6G,EAAYyE,GAE/B,GAAIyT,EAAQlnB,GAAe,CAKzB8I,EADc9I,EAAa/H,MAAM,IAAM,KACvB+W,EACb/W,MAAMwb,GACNjP,IAAIiC,oBACJyF,KAAK,KACR,KACD,CAED,YAAI/D,EAA0B,CAI5BuJ,GAAA,EACA,KACD,CAED,MAAkBtJ,EAAG+e,EAAQC,KAAKpnB,GAElC,GAAIoI,IAAiBqX,EAAW,CAC9B,MAAwBzf,GAA+C,IAA5CqnB,EAAc7hB,QAAQ4C,EAAa,IAC9DG,IACEvI,EACC,6BAA4BoI,EAAa,gEAAgEid,EAAMxf,UAElH,MAAWgD,EAAGpC,mBAAmB0B,GACjCW,EAAOV,EAAa,IAAMS,CAC3B,SAAU7I,IAAiBmI,EAAY,CAItCuJ,GAAA,EACA,KACD,CACF,CAED,IAAKA,EAAQ,CACXtJ,EAAQ,CACNX,MAAA4d,EACAzd,OAAAkB,EACAud,IAAK,IAAMrX,EAAY/W,MAAM,EAAGwb,GAAOvH,KAAK,MAE9C,KACD,CACF,CAED,OAAY9D,GAAIS,GAAY,IAAI,EAMvBye,EAAGjuB,CAAC2G,EAAMmI,IAAQ0e,EAAK,CAAC,CAAEhhB,KAAA7F,IAASmI,GAAAse,EA6B9BJ,CAACrmB,EAAImI,KAEnB,GAAIye,EAAW5mB,EAAI,KACjB,OAAOA,EAGT,MAAOoI,EAAYG,GAAWvI,EAAG+F,MAAM,MAChC8C,GAAgBV,EAAKpC,MAAM,KAAA2L,EAEfoV,EAAW1e,GAAA4G,EACT8X,EAAWje,GAGhC,GAAsB,KAAlB6I,EAAW,GACb,OAAe6V,EAAC1e,EAAcN,GAIhC,IAAKqe,EAAWlV,EAAW,GAAI,KAAM,CACnC,MAAc1R,EAAGgP,EAAahX,OAAO0Z,GAAYxF,KAAK,KACtD,OAAOqb,GAA2B,MAAjB1e,EAAuB,GAAK,KAAO7I,EAAUuI,EAC/D,CAOD,MAAMkX,EAAczQ,EAAahX,OAAO0Z,GAAAyT,EACvB,GACjB,IAAK,IAAKnlB,EAAG,EAAGmI,EAAIsX,EAAY1nB,OAAQiI,EAAImI,EAAGnI,IAAK,CAClD,MAAAmI,EAAgBsX,EAAYzf,GACZ,OAAZmI,EAAkBgd,EAASlJ,MACV,MAAZ9T,GAAiBgd,EAAS9f,KAAK8C,EACzC,CAED,OAAOof,EAAS,IAAMpC,EAASjZ,KAAK,KAAM3D,EAA3B,EAAAme,EAGIA,CAAC1mB,EAAMmI,KAC1B,MAAOC,EAAUG,EAAQ,IAAMvI,EAAK+F,MAAM,KAE1C,IAAmB8C,EACjB,IAFeie,EAAW1e,GAIvB5D,KAAIxE,IACH,MAAWoI,EAAG+e,EAAQC,KAAKpnB,GAC3B,OAAAoI,EAAeD,EAAOC,EAAM,IAAMpI,CAAA,IAEnCkM,KAAK,KACV,MAAQhO,UAAU4H,OAAE4L,EAAS,IAAO,CAAC,GAAMvJ,EAC1B6G,EAAG0C,EAAO3L,MAAM,KAAK,IAAM,GAE5C,OADA8C,EAAkB0e,EAAS1e,EAAiBN,EAAOyG,GAC5CnG,CAAA,EAAA2e,EAGgBC,CAACznB,EAAMmI,KAC9B,MAAYC,EAAGpI,GAAW0nB,EAAU1nB,GAGpC,OAFmB8mB,EAAW9mB,GAAM1G,OAAO8O,GAAQuf,OAAOzb,KAAK,OAC9C4a,EAAW3e,GAAI7O,OAAO8O,GAAQuf,OAAOzb,KAAK,IACrC,EAAAib,EAGR,SASVO,EAAY1nB,GAAWmnB,EAAQnR,KAAKhW,GAC7BknB,EAAGlnB,GAAWA,GAA0B,MAAfA,EAAQ,GAAA4nB,EAE5BA,CAAC5nB,EAAOmI,KAAA,CAWfV,MAAAzH,EAAO6nB,MAVF7nB,EAAMrF,QAChB,EACAmsB,EAAW9mB,EAAM6F,MAAMnB,QAAO,CAAC1E,EAAOmI,KACpCnI,GAde,EAMD,CAAAA,GAAuB,KAAZA,EAAX,CASImI,GAAUnI,GAXhB,EAYH0nB,EAAUvf,GAAUnI,GAdd,EAeNknB,EAAQ/e,GAAUnI,GAAS,EAC1BA,GAjBI,EAmBfA,IAAE,GACgBwW,MAAArO,IAAA4e,EAGN/mB,GACjBA,EACGwE,IAAIojB,GACJD,MAAK,CAAC3nB,EAAGmI,IACRnI,EAAE6nB,MAAQ1f,EAAE0f,MAAQ,EAAI7nB,EAAE6nB,MAAQ1f,EAAE0f,OAAS,EAAI7nB,EAAEwW,MAAQrO,EAAEqO,QAAAsQ,EAGhD9mB,GACjBA,EAEGnH,QAAQ,eAAgB,IACxBkN,MAAM,KAELwhB,EAAW,SAACvnB,GAAA,QAAA5D,EAAAC,UAAAtE,OAAaoQ,EAAA,IAAA5L,MAAAH,EAAA,EAAAA,EAAA,KAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAA2L,EAAA3L,EAAA,GAAAH,UAAAG,GAAA,OAAAwD,IAC7BmI,EAAQA,EAAM7O,QAAO0G,GAAKA,GAAKA,EAAEjI,OAAS,MACdoQ,EAAMpQ,OAAS,EAAK,IAAGoQ,EAAM+D,KAAK,OAAS,KAGnEmb,EAAgB,CAAC,MAAO,QAAAS,EAOPA,CAAC9nB,EAAMmI,KAC5B,MAAAC,EAAiBtP,OAAOsR,KAAKpK,GAC7B,OACEoI,EAASrQ,SAAWe,OAAOsR,KAAKjC,GAAMpQ,QACtCqQ,EAAS2f,OAAM3f,GAAOD,EAAK9M,eAAe+M,IAAQpI,EAAKoI,KAASD,EAAKC,IAArE,EAIE4f,EAAehoB,GAAOA,EAAInH,QAAQ,eAAgB,IAElDovB,EAAc9f,GAAYC,IAC9B,IAAKA,EACH,OAAO,KAGT,GAAIA,EAAQjD,OAASnF,EAAAA,UAAkBoI,EAAQ9K,MAAM4B,SACnD,OAAAc,EAAAA,SAAsBwE,IAAI4D,EAAQ9K,MAAM4B,SAAU+oB,EAAY9f,IAoBhE,GAlBAI,IACEH,EAAQ9K,MAAMuI,MAAQuC,EAAQ9K,MAAM3C,SAAWyN,EAAQjD,OAASwhB,EAC/D,iIAAgIve,EAAQjD,UAG3IoD,OACIH,EAAQjD,OAASwhB,GAAcve,EAAQ9K,MAAM+V,MAASjL,EAAQ9K,MAAMggB,IACrE,mBAAkBlV,EAAQ9K,MAAM+V,aAAajL,EAAQ9K,MAAMggB,qEAG9D/U,MAEIH,EAAQjD,OAASwhB,IAChBa,EAAiBpf,EAAQ9K,MAAM+V,KAAMjL,EAAQ9K,MAAMggB,KAErD,mBAAkBlV,EAAQ9K,MAAM+V,YAAYjL,EAAQ9K,MAAMggB,kGAGzDlV,EAAQ9K,MAAM3C,QAChB,MAAO,CAAE1B,MAAOmP,EAASzN,SAAA,GAG3B,MAAAkO,EACET,EAAQjD,OAASwhB,EAAWve,EAAQ9K,MAAM+V,KAAOjL,EAAQ9K,MAAMuI,KAE3D6L,EACY,MAAhB7I,EACIV,EACC,GAAE6f,EAAa7f,MAAa6f,EAAanf,KAEhD,MAAO,CACL5P,MAAOmP,EACPzN,QAASyN,EAAQ9K,MAAM3C,QACvBkL,KAAMuC,EAAQ9K,MAAM4B,SAAY,GAAE8oB,EAAatW,OAAYA,EAHtD,ECrTTwW,EAAA,aAAAC,EAAA,oCAAAC,EAAA,QAMA,IAAIC,WAAEC,GAAetoB,IAAAA,EAAAA,EAAAA,EAAAA,EAAAA,SAAA,IAEVsoB,IACTA,EAAatoB,GAAKA,GAGpB,MAAOuoB,EAAG9B,OAEG+B,EAAOF,GAAW,CAAyBngB,EAAAC,KAAQ,IAAhCqgB,SAAElgB,GAA8BJ,EAAjB6G,EAAiB0C,EAAAvJ,EAAA+f,GAC9D,MAAMpH,QAAErB,GAAYwG,KACd/nB,SAAEinB,GAAae,KAEf5I,GAAE+H,EAAF5kB,MAAM2kB,EAANvsB,QAAaktB,EAAb2C,SAAsBjV,EAAW8U,GAAsBvZ,EAAhBgX,EAA7CtU,EAA6D1C,EAA7DmZ,GACM/B,EAAOK,EAAQpB,EAAI5F,GACR6G,EAAG/E,UAAU6E,GACxBG,EAAYpB,EAAS9kB,WAAaimB,EAClC9G,EAAqBoH,EAAWzB,EAAS9kB,SAAUimB,GAEzD,OACEtmB,EAAAA,cAAA,IAAA6I,EAAA,CACEjI,IAAKwH,GAAOG,EACZ,eAAcge,EAAY,eACtBP,EACAvS,EAAS,CAAEkV,UAAApC,EAAWqC,mBAAApJ,EAAoB1Y,KAAAsf,EAAMloB,SAAAinB,IAJtD,CAKEre,KAAMsf,EACNyC,QAAS7oB,IAEP,GADIgmB,EAAY6C,SAAS7C,EAAY6C,QAAQ7oB,GD4R9B,CAAAA,IACpBA,EAAM8oB,kBACU,IAAjB9oB,EAAM+oB,UACJ/oB,EAAMgpB,SAAWhpB,EAAMipB,QAAUjpB,EAAMkpB,SAAWlpB,EAAMmpB,UAHrC,CC3RInpB,GAAQ,CACzBA,EAAMopB,iBACN,IAAIjhB,EAAgB4d,EACpB,GAAuB,kBAAZA,GAAyBQ,EAAW,CAC7C,MAAgBvmB,EAAhB0R,EAAA7I,EAAA,GAAmCsc,EAAS1kB,OAA5C2nB,GACAjgB,EAAgB2f,EAAoBjf,EAAA,GAAAuc,GAASplB,EAC9C,CACD8I,EAASsd,EAAM,CACb3lB,MAAA2kB,EACAvsB,QAASsP,GAEZ,KAnBL,IAyBJqgB,EAAKvsB,YAAc,OAEnBusB,EAAKppB,UAAY,CACfke,GAAIlV,IAAAA,OAAiB7I,YClDvB,IAAA8pB,EAAA,SAAAC,GAA4C,SAAAD,IAAA,QAAAltB,EAAAotB,EAAAltB,UAAAtE,OAAAiI,EAAA,IAAAzD,MAAAgtB,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAAxpB,EAAAwpB,GAAAntB,UAAAmtB,GAAA,OAAArtB,EAAAmtB,EAAAhuB,KAAAmB,MAAA6sB,EAAA,OAAAtxB,OAAAgI,KAAA,MAC1C/D,YAAc,wBAD4BE,CAAA,EAG1CyQ,EAAAA,EAAAA,GAAAyc,EAAAC,GAAA,IAAArrB,EAAAorB,EAAAjuB,UASC,OATD6C,EAAAwrB,kBAAA,WAAqB,IAAAC,EAGnBhtB,KAAKqjB,SAAS,CAAC,IACf2J,EAAAhtB,KAAKY,OAAMqsB,QAAAltB,MAAAitB,EAAArtB,UACZ,EAED4B,EAAAc,OAAA,WACE,OAAY,KAAAzB,MAAM4B,QACnB,EAAAmqB,CAAA,CAZH,CAAiCrpB,EAAAA,WAejC,MAE0B4pB,EAAG5pB,EAAAA,cAAoB,CAC/CypB,kBAAmB,CAAE1oB,aAAA,GACrB4R,WAAA,EACAkX,SALWA,KAAA,IAQN,SAAAC,EAAA1iB,GAAgC,IAAFlI,SAAEiJ,GAAAf,EACrC,MAAOgB,EAAOG,GAAYvI,EAAAA,WACpB6I,EAAoB7I,EAAAA,SACjB0R,EAAG1R,EAAAA,SACV,MACEypB,kBAAA5gB,EACA8J,MAAAvK,EACAyhB,SAAAthB,KAEF,CAACH,IAEH,OACEpI,EAAAA,cAAC4pB,EAAqB3qB,SAAtB,CAA+BhG,MAAOyY,GACpC1R,EAAAA,cAACqpB,EAAD,CACE1W,MAAOvK,EACPuhB,QAASA,CAAC3pB,EAAOmI,KACfI,EAASvI,GACT,MAAA6I,EAAkB9H,SAAlB8H,EAAkB9H,QAAUf,EAAOmI,EACpC,GAEAA,GAIR,CACD2hB,EAAqB7tB,YAAc,+BC9CtB,MAAA8tB,GDgDG,SAAkB5hB,GAAkB,IAAAC,EAAAG,EAClD,SAASmJ,EAAkBtJ,GACzB,OACEpI,EAAAA,cAAC8pB,EACC,KAAA9pB,EAAAA,cAACmI,EAAiBU,EAAA,CAAA1N,IAAI,oBAAuBiN,IAGlD,CAKD,OAJAsJ,EAAkBzV,YAAe,qBAC0B,OAD3BmM,EACE,OADFG,EAC9BJ,EAAiBlM,aAAesM,EAAAJ,EAAiBwD,MAAQvD,EAAA,eAI5DsJ,CAAA,CAbe,EC/Cd/J,IAA4B,IAAzBgW,QAAAxV,EAAUid,EAAelmB,SAAAkJ,GAAAT,EAC1B,MAAMzJ,SAAEqK,GAAaJ,GAEdU,EAAS6I,GAAc1R,EAAAA,SAAe,CAAE9B,SAAAqK,KACxCyG,GD0DJ,SAA0B7G,GAC/B,MAAMC,EAAMpI,EAAAA,WAAiB4pB,GAC7BxhB,EAAIqhB,kBAAkB1oB,aAAA,EACtB,MAAMwH,EAAavI,EAAAA,aAAkB,KACnCoI,EAAIyhB,cAAA,EAAJ,GACC,IAEH,MAAO,CAACzhB,EAAIuK,MAAOpK,EACpB,CARM,GCnCH,GArBAvI,EAAAA,WAAgB,KACdmI,EAAQqd,uBAAR,GACC,CAAC3c,EAAQ3K,WAEZ8B,EAAAA,WAAgB,KACd,IAAIA,GAAA,EACJ,MAAMoI,EAAWD,EAAQkY,QAAO3J,IAAG,IAAAxY,SAAAiK,GAAAuO,EACjC5R,QAAQC,UAAUF,MAAK,KACrB7H,uBAAsB,KACfgD,GACH0R,EAAW,CAAExT,SAAAiK,GACd,MAJL,IAQF,MAAO,KACLnI,GAAA,EACAoI,GACD,IACA,IAEC4G,EAAO,CACT,IAAIsX,EAAWtX,GAGb,MACDA,EAHClG,EAASkG,EAAMqX,IAAK,CAAExtB,SAAA,GAIzB,CAED,OACEmH,EAAAA,cAACgmB,EAAgB/mB,SAAjB,CAA0BhG,MAAO4P,GACV,mBAApBT,EAAiCA,EAASS,GAAWT,GAAY,KADpE,ICvCO4hB,GAAWhT,IAAG,IAAA9X,SAAAiJ,GAAA6O,EACzB,MAAa5O,EAAG8d,IAEhB,OAAI9d,EACaD,EAACC,GAETpI,EAAAA,cAAC+pB,GAAkB,KAAA5hB,EAC3B,ECRwB8hB,GAAGC,IAAQ,IAALxc,IAAAvF,EAAKjJ,SAAAkJ,GAAA8hB,EACpC,MAAiB3hB,EAAGJ,EAAI3C,QAAQ,KAEhC,IAAAqD,EACI6I,EAAS,GAUb,OAZqBnJ,GAAe,GAMlCM,EAAWV,EAAItK,UAAU,EAAG0K,GAC5BmJ,EAASvJ,EAAItK,UAAU0K,IAEvBM,EAAWV,EAIXnI,EAAAA,cAACgmB,EAAgB/mB,SAAjB,CACEhG,MAAO,CACLiF,SAAU,CACRmC,SAAAwI,EACA/C,OAAA4L,EACAjU,KAfK,MAmBR2K,EATH,ECfE+hB,GAAQC,IAAS,IAANvkB,KAAA7F,EAAMd,SAAAiJ,GAAAiiB,EACrB,MAAMtJ,QAAE1Y,GAAY6d,KACd/nB,SAAEqK,GAAa2d,IAEHxU,EAAG+U,EAAQzmB,EAAMoI,GAAA4G,EACpBsY,EAAM5V,EAAcnJ,EAASlI,UAC5C,OAAA8H,EAAgB,CACdjK,SAAAqK,EACAlP,MAAO2V,EAAAnG,EAAA,GAEEmG,EAAOpH,OACV,CAAAye,IAAKrX,EAAOqX,IACZxgB,KAAA7F,IAEF,MARS,ECTjBqqB,GAAA,+BAAAC,GAAA,kDAEaC,GAAepiB,IAAA,IAACke,IAAEje,EAAFlK,SAAOqK,EAAPqC,UAAiBoE,GAA6B7G,EAAfsX,EAAe/N,EAAAvJ,EAAAkiB,IACzE,OACErqB,EAAAA,cAACwqB,GACK3hB,EAAA,GAAA4W,EAAA,CACJ7U,UAAWoE,EACXqX,IAAKje,EACLlK,SAAUqK,IAGf,EAED,IAAAsM,GAAwB,EAExB,MAAA2V,GAAyBriB,IAAC,IAAAjJ,SACxBkJ,EADwBgU,MAExB7T,EACAqC,UAAWoE,EAAO,MAHMqX,IAIxB5G,EAJwBvhB,SAKxBinB,GAAAhd,EACGkd,EACC3T,EAAAvJ,EAAAmiB,IACJ,MAAqBlF,EAAGplB,EAAAA,SACF8I,EAAG9I,EAAAA,QAAM,GACnB+lB,EAAG/lB,EAAAA,OAAayf,GAAAhM,EACRzT,EAAAA,OAAamlB,EAAS9kB,UACpC2lB,EAAiBhmB,EAAAA,QAAM,GAS7BA,EAAAA,WAAgB,KACd6U,KACAoR,IAEO,KACLpR,KAC0B,IAAtBA,KACF/L,EAAiB/H,SAAA,EAClB,IAEF,IAGHf,EAAAA,WAAgB,KACd,IAAIA,GAAA,EACemI,GAAA,EAEfsX,IAAQsG,EAAOhlB,UACjBglB,EAAOhlB,QAAU0e,EACjBzf,GAAA,GAGEmlB,EAAS9kB,WAAaoT,EAAY1S,UACpC0S,EAAY1S,QAAUokB,EAAS9kB,SAC/B8H,GAAA,GAKF6d,EAAejlB,QAAUf,GAFDmI,GAAmBgd,EAAS9kB,WAAaof,EAI7DuG,EAAejlB,SACjBklB,GACD,GACA,CAACxG,EAAK0F,IAET,MAAAc,EAAcjmB,EAAAA,aAAkB,KA3CV,IAAAA,EAkDhB8I,EAAiB/H,QACnB+H,EAAiB/H,SAAA,GAnDCf,EAqDJolB,EAAgBrkB,QApD5BilB,EAAejlB,SAAWf,GAC5BA,EAAYyqB,QAoDb,GACA,IAEH,OACEzqB,EAAAA,cAACgP,EACCnG,EAAA,CAAAuT,MAASvT,EAAA,CAAA6hB,QAAS,QAAWniB,GAC7BoiB,SAAS,KACT/pB,IAAKwkB,GACDC,GAEHjd,EANH,ECvFJwiB,GAAA,mEAAAC,GAMsB1iB,IACpB,MAAMC,EAAc6d,IACC1d,EAAG2d,IAExB,OAAOlmB,EAAAA,cAAC8qB,GAADjiB,EAAA,GAAgBT,EAAiBG,EAAqBJ,GAAtD,EAGT,SAAA2iB,GAAoB3iB,GAClB,MAAMjK,SACJkK,EADI2iB,QAEJxiB,GAAA,EAFIrJ,SAGJ8P,EAHI+R,SAIJtB,EAJI7U,UAMJua,EAAY,OAEVhd,EADCkd,EAPL3T,EAQIvJ,EAEJyiB,IAAYxF,EAAGplB,EAAAA,SAAegrB,QAAQhc,GAAUtK,QAAO,CAAC1E,EAAOmI,KAC7D,MAAYC,EAAG6f,EAAYxI,EAAZwI,CAAsB9f,GACrC,OAAYnI,EAAChI,OAAOoQ,EAAb,GACN,KACG/H,SAAEyI,GAAaV,EAAA2d,EACPc,EAAKzB,EAAQtc,GAE3B,GAAIid,EAAO,CACT,MAAMne,OACJO,EADIke,IAEJ3U,EAFIjK,MAGJuH,EACAvH,OAASxO,MAAOmsB,IACdW,EAAAjd,EAGuBkG,EAAMrU,QAC7B8kB,EACAzQ,EAAMnJ,KAAKhN,QAAQ,MAAO,IAEnBmtB,EAAAnd,EAAA,GACNV,EADM,CAETke,IAAA3U,EACAxT,SAAAkK,IAGI6d,EAAQjmB,EAAAA,aACZolB,EACAY,EACAZ,EAAQ9nB,MAAM4B,SACZc,EAAAA,cAAC6qB,GAAO,CAAA3sB,SAAUkK,EAAU2iB,QAASxiB,GAClC6c,EAAQ9nB,MAAM4B,eAAA,GAMHgnB,EAAG3d,EAAUgiB,GAAepF,EAE5BiB,EAAG7d,EACfM,EAAA,CAAAwd,IAAA3U,EAAKxT,SAAAkK,EAAUwC,UAAAua,GAAcE,GAC/BA,EAEJ,OACErlB,EAAAA,cAACyT,EAAYxU,SACX,CAAAhG,MAAO,CAAE6nB,QAASpP,EAAKqP,SAAUjY,IAEjC9I,EAAAA,cAACkmB,EAAiBE,EAAeH,GAGtC,CACC,OAAO,IAEV,CC3EY,MAAAgF,GAAczqB,KACzB,MAAaR,EAAGkmB,IAEhB,IAAKlmB,EACH,MAAM,IAAAkK,MACJ,8JAIJ,OAAclK,EAAC9B,QAAA,ECXOgtB,GAAGC,KACzB,MAAM,IAAAjhB,MACJ,wEADI,ECGKkhB,GAAYC,KACvB,MAAArrB,EAAgBimB,IAEhB,IAAKjmB,EACH,MAAM,IAAAkK,MACJ,4JAIJ,MAAc/B,EAAG8iB,KAEJ7iB,EAAGkf,EAAMtnB,EAAQ+gB,SAAU5Y,EAAS9H,UAEjD,OAAc+H,EAAGA,EAAQR,OAAS,IAAI,ECb3B0jB,GAAWtrB,IACtB,IAAKA,EACH,MAAM,IAAAkK,MACJ,4EAGJ,MAAA/B,EAAgB8d,IAEhB,IAAK9d,EACH,MAAU,IAAA+B,MACR,2JAIJ,MAAM9B,EAAW6iB,KAEC1iB,EAAGke,EAAQzmB,EAAMmI,EAAQ2Y,SACrCpP,EAAS4V,EAAM/e,EAAcH,EAAS/H,UAC5C,OAAaqR,EAAA7I,EAAA,GAEJ6I,EAAO9J,OACV,CAAAye,IAAK3U,EAAO2U,IACZxgB,KAAA7F,IAEF,IAAI,oCC1BVhH,EAAQokB,cAAgB,SAAUsK,EAAG6D,GAGjCrb,YAAW,WACT/X,OAAOqzB,WAAarzB,OAAOqzB,UAAUnmB,KAAK,CACxC2X,MAAO,uBAEX,GAA2B,IAAxBuO,EAAcE,QAErB,2GCNO,MAAMrO,EAAgB,SAAsBhW,EAEhDmkB,GAAgB,IAFiC,SAClDrtB,GACDkJ,CAWD,sCCdA,IAAIskB,EAAU3nB,EAAQ,2CCFtB,IAAI5J,EAAyB4J,EAAQ,OACrC/K,EAAQoB,YAAa,EACrBpB,EAAQ2yB,oBAAiB,EACzB,IACIA,EADSxxB,EAAuB4J,EAAQ,QACHpJ,QAAQoB,cAAc,CAC7DzD,SAAU,KACVD,UAAW,CAAC,MACZuzB,QAAQ,EACRC,gBAAiB,KACjBC,6BAA6B,EAC7BxkB,aAAc,IACdzB,KAAM,MAER7M,EAAQ2yB,eAAiBA,sCCbzB,IAAIxxB,EAAyB4J,EAAQ,OACrC/K,EAAQoB,YAAa,EACrBpB,EAAQ+yB,qBAAkB,EAC1B,IAAIC,EAAY7xB,EAAuB4J,EAAQ,QAE3CrD,GAD+BvG,EAAuB4J,EAAQ,QACrD5J,EAAuB4J,EAAQ,SACxC2nB,EAAU3nB,EAAQ,OAClBkoB,EAAe9xB,EAAuB4J,EAAQ,QAC9CmoB,EAASnoB,EAAQ,OACjBooB,EAAWhyB,EAAuB4J,EAAQ,QAC1CqoB,EAAgBroB,EAAQ,OACxBsoB,EAAkBtoB,EAAQ,OACf5J,EAAuB4J,EAAQ,MA4H9C/K,EAAQ+yB,gBAtGc,SAAyB3kB,EAAMO,GACnD,IAAI2kB,EAAuBC,EACvBjtB,EAAU8H,EAAK9H,QACjBhC,EAAQ8J,EAAK9J,MACXkvB,EAAuB7kB,EAAM8kB,eAC/BA,OAA0C,IAAzBD,EAAkC,CAAC,EAAIA,EACxDE,EAAiB/kB,EAAMG,SACvBA,OAA8B,IAAnB4kB,GAAmCA,EAC9CC,EAAwBhlB,EAAMmkB,4BAC9BA,OAAwD,IAA1Ba,GAA2CA,EACzEC,EAAUjlB,EAAMilB,QAChBC,EAAwBllB,EAAMmlB,mBAC9BA,OAA+C,IAA1BD,EAAmC,UAAYA,EACpEE,EAAmBplB,EAAMolB,iBACzBC,EAAgBrlB,EAAMqlB,cACxB,GAAK1vB,EAAL,CACA,IAAIwN,EAAOxN,EAAMwN,KACf+Q,EAAcve,EAAMue,YACpB3d,EAAWZ,EAAMY,SACf+uB,EAAoBpR,EAAYqR,KAClCtB,EAASqB,EAAkBrB,OAC3BtzB,EAAW20B,EAAkB30B,SAC7BD,EAAY40B,EAAkB50B,UAC9BiP,EAAe2lB,EAAkB3lB,aACjCukB,EAAkBoB,EAAkBpB,gBACpChmB,EAAOonB,EAAkBpnB,KAE3B,GADiBiC,IAAa8jB,EACd,CACd,IAAI9lB,EAAS5H,EAAS4H,OAGtB,GAAsB,oBAAX3N,OAAwB,CACjC,IAAIg1B,EAAWh1B,OAAOi1B,aAAavtB,QAAQqsB,EAAOmB,gBAAiB,EAAIpB,EAAatxB,SAAS,CAC3FtC,UAAWA,EACXe,SAAU2zB,GAAoBz0B,IAMhC,GAJKD,EAAU4Z,SAASkb,KACtBA,EAAW70B,GAEbH,OAAOi1B,aAAajtB,QAAQ+rB,EAAOmB,aAAcF,GAC7CA,IAAatB,EAAiB,CAChC,IAAIyB,EAAcxnB,GAAU,GACxBynB,EAAuC,UAAlBP,EACrBQ,GAAS,EAAI9B,EAAQ+B,YAAY,IAAMN,EAtD5B,SAA0B9sB,EAAUktB,GACzD,IAAIG,GAAa,EAAIhC,EAAQ+B,YAAY,KACrChpB,EAASpE,EAIb,OAHIA,EAAS1I,WAAW+1B,KACtBjpB,EAASpE,EAASxH,QAAQ60B,EAAY,MAEpCH,GAAsB9oB,EAAO7K,SAAS,KACjC6K,EAAOxM,MAAM,GAAI,GAEnBwM,CACT,CA4C8DkpB,CAAiBzvB,EAASmC,SAAUktB,GAAsBD,EAAcpvB,EAAST,MAGvI,OADAtF,OAAO2kB,WAAW0Q,GACX,IACT,CACF,CACF,CACA,IAAII,GAAe9iB,SAAmG,QAAtDwhB,EAAwBxhB,EAAKgiB,UAA2D,IAA1BR,OAAxE,EAAoHA,EAAsBuB,QAAU,GACtMx1B,EAAUN,OAAS,GAAK61B,EAAY71B,OAApCM,EAGJ,IAAIy1B,EAAaF,EAAYppB,KAAI,SAAUkS,GAEzC,OADWA,EAAMhZ,KACLqwB,EACd,IAKIC,GAAoE,QAAtDzB,EAAwBE,EAAeuB,iBAAiD,IAA1BzB,OAAmC,EAASA,EAAsBjkB,aAAe,cACjK0lB,EAAYF,EAAWG,MAAK,SAAUF,GACpC,OAAOA,IAAOC,CAChB,KAAMA,EACN,IAAIE,EAAaJ,EAAWx0B,QAAO,SAAUy0B,GAC3C,OAAOA,IAAOC,CAChB,IACIG,EAAYP,EAAYlpB,QAAO,SAAUgO,EAAKsE,GAChD,IAAItZ,EAAOsZ,EAAMtZ,KACb0wB,EAAkC,iBAAd1wB,EAAKoN,KAAoBpN,EAAKoN,KAAOhL,KAAKC,MAAMrC,EAAKoN,MAG7E,OAFMpN,EAAKpF,YAAYoa,IAAMA,EAAIhV,EAAKpF,UAAY,CAAC,GACnDoa,EAAIhV,EAAKpF,UAAUoF,EAAKqwB,IAAMC,GAAaI,EACpC1b,CACT,GAAG,CAAC,GACAwa,EAAOf,EAASxxB,QAAQ0zB,iBAwB5B,OAvBAnB,EAAKoB,MAAK,EAAItC,EAAUrxB,SAAS,CAAC,EAAG8xB,EAAgB,CACnD0B,UAAWA,EACXI,IAAKj2B,EACLk2B,YAAa3C,EACbmC,UAAWA,EACXE,WAAYA,EACZO,OAAO,EAAIzC,EAAUrxB,SAAS,CAAC,EAAG8xB,EAAegC,MAAO,CACtDC,aAAa,OAGbxB,EAAK50B,WAAaA,GACpB40B,EAAKyB,eAAer2B,GA5GN,SAAqB40B,EAAM1I,GAC3C,OAAO,SAAUtlB,GACf,OAAoBwB,EAAO/F,QAAQqE,cAAcotB,EAAcwC,gBAAiB,CAC9E1B,KAAMA,GACQxsB,EAAO/F,QAAQqE,cAAcqtB,EAAgBV,eAAe1sB,SAAU,CACpFhG,MAAOurB,GACNtlB,GACL,CACF,CAgHS2vB,CAAY3B,EAVL,CACZtB,OAAQA,EACRtzB,SAAUA,EACVD,UAAWA,EACXiP,aAAcA,EACdukB,gBAAiBA,EACjBC,4BAA6BA,EAC7Bc,QAASA,EACT/mB,KAAMA,GAEDgpB,CAA2BvvB,EArFhB,CAsFpB,oCCvIAtG,EAAQoB,YAAa,EACrBpB,EAAQq0B,kBAAe,EAEvBr0B,EAAQq0B,aADW,iDCJnB,MAAM,gBAACtB,GAAmBhoB,EAAQ,OAClC/K,EAAQ+yB,gBAAkBA,glGCC1B,MAAM+C,EAAgB,CACpB3pB,KAAM,SACN,GAAAwe,CAAIrnB,GACFI,KAAKqyB,OAAO,MAAOzyB,EACrB,EACA,IAAA0yB,CAAK1yB,GACHI,KAAKqyB,OAAO,OAAQzyB,EACtB,EACA,KAAAqW,CAAMrW,GACJI,KAAKqyB,OAAO,QAASzyB,EACvB,EACA,MAAAyyB,CAAO5pB,EAAM7I,GACPulB,SAAWA,QAAQ1c,IAAO0c,QAAQ1c,GAAM1I,MAAMolB,QAASvlB,EAC7D,GAEF,MAAM2yB,EACJ,WAAAhmB,CAAYimB,GACV,IAAI/1B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFK,KAAK4xB,KAAKY,EAAgB/1B,EAC5B,CACA,IAAAm1B,CAAKY,GACH,IAAI/1B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFK,KAAKkoB,OAASzrB,EAAQyrB,QAAU,WAChCloB,KAAKyyB,OAASD,GAAkBJ,EAChCpyB,KAAKvD,QAAUA,EACfuD,KAAK0yB,MAAQj2B,EAAQi2B,KACvB,CACA,GAAAzL,GACE,IAAK,IAAIvnB,EAAOC,UAAUtE,OAAQuE,EAAO,IAAIC,MAAMH,GAAOI,EAAO,EAAGA,EAAOJ,EAAMI,IAC/EF,EAAKE,GAAQH,UAAUG,GAEzB,OAAOE,KAAK6E,QAAQjF,EAAM,MAAO,IAAI,EACvC,CACA,IAAA0yB,GACE,IAAK,IAAIzF,EAAQltB,UAAUtE,OAAQuE,EAAO,IAAIC,MAAMgtB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFltB,EAAKktB,GAASntB,UAAUmtB,GAE1B,OAAO9sB,KAAK6E,QAAQjF,EAAM,OAAQ,IAAI,EACxC,CACA,KAAAqW,GACE,IAAK,IAAI0c,EAAQhzB,UAAUtE,OAAQuE,EAAO,IAAIC,MAAM8yB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFhzB,EAAKgzB,GAASjzB,UAAUizB,GAE1B,OAAO5yB,KAAK6E,QAAQjF,EAAM,QAAS,GACrC,CACA,SAAAizB,GACE,IAAK,IAAIC,EAAQnzB,UAAUtE,OAAQuE,EAAO,IAAIC,MAAMizB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFnzB,EAAKmzB,GAASpzB,UAAUozB,GAE1B,OAAO/yB,KAAK6E,QAAQjF,EAAM,OAAQ,wBAAwB,EAC5D,CACA,OAAAiF,CAAQjF,EAAMozB,EAAK9K,EAAQ+K,GACzB,OAAIA,IAAcjzB,KAAK0yB,MAAc,MACd,iBAAZ9yB,EAAK,KAAiBA,EAAK,GAAK,GAAGsoB,IAASloB,KAAKkoB,UAAUtoB,EAAK,MACpEI,KAAKyyB,OAAOO,GAAKpzB,GAC1B,CACA,MAAA2I,CAAO2qB,GACL,OAAO,IAAIX,EAAOvyB,KAAKyyB,OAAQ,CAE3BvK,OAAQ,GAAGloB,KAAKkoB,UAAUgL,QAEzBlzB,KAAKvD,SAEZ,CACA,KAAA02B,CAAM12B,GAGJ,OAFAA,EAAUA,GAAWuD,KAAKvD,SAClByrB,OAASzrB,EAAQyrB,QAAUloB,KAAKkoB,OACjC,IAAIqK,EAAOvyB,KAAKyyB,OAAQh2B,EACjC,EAEF,IAAI22B,EAAa,IAAIb,EAErB,MAAMc,EACJ,WAAA9mB,GACEvM,KAAKszB,UAAY,CAAC,CACpB,CACA,EAAA9qB,CAAG+qB,EAAQC,GAMT,OALAD,EAAOlqB,MAAM,KAAK+H,SAAQkP,IACnBtgB,KAAKszB,UAAUhT,KAAQtgB,KAAKszB,UAAUhT,GAAS,IAAI9W,KACxD,MAAMiqB,EAAezzB,KAAKszB,UAAUhT,GAAOjiB,IAAIm1B,IAAa,EAC5DxzB,KAAKszB,UAAUhT,GAAOxhB,IAAI00B,EAAUC,EAAe,EAAE,IAEhDzzB,IACT,CACA,GAAA4I,CAAI0X,EAAOkT,GACJxzB,KAAKszB,UAAUhT,KACfkT,EAILxzB,KAAKszB,UAAUhT,GAAO3L,OAAO6e,UAHpBxzB,KAAKszB,UAAUhT,GAI1B,CACA,IAAAvX,CAAKuX,GACH,IAAK,IAAI5gB,EAAOC,UAAUtE,OAAQuE,EAAO,IAAIC,MAAMH,EAAO,EAAIA,EAAO,EAAI,GAAII,EAAO,EAAGA,EAAOJ,EAAMI,IAClGF,EAAKE,EAAO,GAAKH,UAAUG,GAE7B,GAAIE,KAAKszB,UAAUhT,GAAQ,CACVzgB,MAAM8W,KAAK3W,KAAKszB,UAAUhT,GAAO/Q,WACzC6B,SAAQ1G,IACb,IAAKgpB,EAAUC,GAAiBjpB,EAChC,IAAK,IAAIqY,EAAI,EAAGA,EAAI4Q,EAAe5Q,IACjC2Q,KAAY9zB,EACd,GAEJ,CACA,GAAII,KAAKszB,UAAU,KAAM,CACRzzB,MAAM8W,KAAK3W,KAAKszB,UAAU,KAAK/jB,WACvC6B,SAAQnG,IACb,IAAKyoB,EAAUC,GAAiB1oB,EAChC,IAAK,IAAI8X,EAAI,EAAGA,EAAI4Q,EAAe5Q,IACjC2Q,EAAS3zB,MAAM2zB,EAAU,CAACpT,KAAU1gB,GACtC,GAEJ,CACF,EAGF,SAAS6Z,IACP,IAAIzD,EACA4d,EACJ,MAAMla,EAAU,IAAItR,SAAQ,CAACC,EAAS4I,KACpC+E,EAAM3N,EACNurB,EAAM3iB,CAAM,IAId,OAFAyI,EAAQrR,QAAU2N,EAClB0D,EAAQzI,OAAS2iB,EACVla,CACT,CACA,SAASma,EAAW/wB,GAClB,OAAc,MAAVA,EAAuB,GACpB,GAAKA,CACd,CAMA,MAAMgxB,EAA4B,OAClC,SAASC,EAAcjxB,EAAQqG,EAAM6qB,GACnC,SAASC,EAASx1B,GAChB,OAAOA,GAAOA,EAAIqK,QAAQ,QAAU,EAAIrK,EAAItC,QAAQ23B,EAA2B,KAAOr1B,CACxF,CACA,SAASy1B,IACP,OAAQpxB,GAA4B,iBAAXA,CAC3B,CACA,MAAM2M,EAAwB,iBAATtG,EAAoBA,EAAOA,EAAKE,MAAM,KAC3D,IAAI8qB,EAAa,EACjB,KAAOA,EAAa1kB,EAAMpU,OAAS,GAAG,CACpC,GAAI64B,IAAwB,MAAO,CAAC,EACpC,MAAMz1B,EAAMw1B,EAASxkB,EAAM0kB,KACtBrxB,EAAOrE,IAAQu1B,IAAOlxB,EAAOrE,GAAO,IAAIu1B,GAE3ClxB,EADE1G,OAAOsC,UAAUC,eAAeC,KAAKkE,EAAQrE,GACtCqE,EAAOrE,GAEP,CAAC,IAEV01B,CACJ,CACA,OAAID,IAA+B,CAAC,EAC7B,CACLn2B,IAAK+E,EACLinB,EAAGkK,EAASxkB,EAAM0kB,IAEtB,CACA,SAASC,EAAQtxB,EAAQqG,EAAMkrB,GAC7B,MAAM,IACJt2B,EAAG,EACHgsB,GACEgK,EAAcjxB,EAAQqG,EAAM/M,QAChC,QAAY4F,IAARjE,GAAqC,IAAhBoL,EAAK9N,OAE5B,YADA0C,EAAIgsB,GAAKsK,GAGX,IAAI/wB,EAAI6F,EAAKA,EAAK9N,OAAS,GACvB+Q,EAAIjD,EAAK5N,MAAM,EAAG4N,EAAK9N,OAAS,GAChCi5B,EAAOP,EAAcjxB,EAAQsJ,EAAGhQ,QACpC,UAAoB4F,IAAbsyB,EAAKv2B,KAAqBqO,EAAE/Q,QACjCiI,EAAI,GAAG8I,EAAEA,EAAE/Q,OAAS,MAAMiI,IAC1B8I,EAAIA,EAAE7Q,MAAM,EAAG6Q,EAAE/Q,OAAS,GAC1Bi5B,EAAOP,EAAcjxB,EAAQsJ,EAAGhQ,QAC5Bk4B,GAAQA,EAAKv2B,UAA6C,IAA/Bu2B,EAAKv2B,IAAI,GAAGu2B,EAAKvK,KAAKzmB,OACnDgxB,EAAKv2B,SAAMiE,GAGfsyB,EAAKv2B,IAAI,GAAGu2B,EAAKvK,KAAKzmB,KAAO+wB,CAC/B,CAUA,SAASE,EAAQzxB,EAAQqG,GACvB,MAAM,IACJpL,EAAG,EACHgsB,GACEgK,EAAcjxB,EAAQqG,GAC1B,GAAKpL,EACL,OAAOA,EAAIgsB,EACb,CAQA,SAASyK,EAAWr5B,EAAQs5B,EAAQC,GAClC,IAAK,MAAMC,KAAQF,EACJ,cAATE,GAAiC,gBAATA,IACtBA,KAAQx5B,EACkB,iBAAjBA,EAAOw5B,IAAsBx5B,EAAOw5B,aAAiBC,QAAkC,iBAAjBH,EAAOE,IAAsBF,EAAOE,aAAiBC,OAChIF,IAAWv5B,EAAOw5B,GAAQF,EAAOE,IAErCH,EAAWr5B,EAAOw5B,GAAOF,EAAOE,GAAOD,GAGzCv5B,EAAOw5B,GAAQF,EAAOE,IAI5B,OAAOx5B,CACT,CACA,SAAS05B,EAAY5M,GACnB,OAAOA,EAAI9rB,QAAQ,sCAAuC,OAC5D,CACA,IAAI24B,EAAa,CACf,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,QACL,IAAK,UAEP,SAASC,EAAO3mB,GACd,MAAoB,iBAATA,EACFA,EAAKjS,QAAQ,cAAcmW,GAAKwiB,EAAWxiB,KAE7ClE,CACT,CAqBA,MAAM4mB,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,KAC7BC,EAAiC,IArBvC,MACE,WAAA1oB,CAAY2oB,GACVl1B,KAAKk1B,SAAWA,EAChBl1B,KAAKm1B,UAAY,IAAI3rB,IACrBxJ,KAAKo1B,YAAc,EACrB,CACA,SAAAC,CAAUC,GACR,MAAMC,EAAkBv1B,KAAKm1B,UAAU92B,IAAIi3B,GAC3C,QAAwBtzB,IAApBuzB,EACF,OAAOA,EAET,MAAMC,EAAY,IAAIC,OAAOH,GAM7B,OALIt1B,KAAKo1B,YAAY/5B,SAAW2E,KAAKk1B,UACnCl1B,KAAKm1B,UAAUxgB,OAAO3U,KAAKo1B,YAAYM,SAEzC11B,KAAKm1B,UAAUr2B,IAAIw2B,EAASE,GAC5Bx1B,KAAKo1B,YAAYzsB,KAAK2sB,GACfE,CACT,GAGqD,IAgBvD,SAASG,EAAS53B,EAAKoL,GACrB,IAAIysB,EAAej2B,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,IACvF,IAAK5B,EAAK,OACV,GAAIA,EAAIoL,GAAO,OAAOpL,EAAIoL,GAC1B,MAAM0sB,EAAS1sB,EAAKE,MAAMusB,GAC1B,IAAIvxB,EAAUtG,EACd,IAAK,IAAIglB,EAAI,EAAGA,EAAI8S,EAAOx6B,QAAS,CAClC,IAAKgJ,GAA8B,iBAAZA,EACrB,OAEF,IAAI6D,EACA4tB,EAAW,GACf,IAAK,IAAIzL,EAAItH,EAAGsH,EAAIwL,EAAOx6B,SAAUgvB,EAMnC,GALIA,IAAMtH,IACR+S,GAAYF,GAEdE,GAAYD,EAAOxL,GACnBniB,EAAO7D,EAAQyxB,QACF9zB,IAATkG,EAAoB,CACtB,GAAI,CAAC,SAAU,SAAU,WAAWY,eAAeZ,IAAS,GAAKmiB,EAAIwL,EAAOx6B,OAAS,EACnF,SAEF0nB,GAAKsH,EAAItH,EAAI,EACb,KACF,CAEF1e,EAAU6D,CACZ,CACA,OAAO7D,CACT,CACA,SAAS0xB,EAAe95B,GACtB,OAAIA,GAAQA,EAAK6M,QAAQ,KAAO,EAAU7M,EAAKE,QAAQ,IAAK,KACrDF,CACT,CAEA,MAAM+5B,UAAsB3C,EAC1B,WAAA9mB,CAAY6B,GACV,IAAI3R,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAChF0xB,GAAI,CAAC,eACLC,UAAW,eAEb2E,QACAj2B,KAAKoO,KAAOA,GAAQ,CAAC,EACrBpO,KAAKvD,QAAUA,OACmBuF,IAA9BhC,KAAKvD,QAAQm5B,eACf51B,KAAKvD,QAAQm5B,aAAe,UAEW5zB,IAArChC,KAAKvD,QAAQy5B,sBACfl2B,KAAKvD,QAAQy5B,qBAAsB,EAEvC,CACA,aAAAC,CAAc9E,GACRrxB,KAAKvD,QAAQ40B,GAAGvoB,QAAQuoB,GAAM,GAChCrxB,KAAKvD,QAAQ40B,GAAG1oB,KAAK0oB,EAEzB,CACA,gBAAA+E,CAAiB/E,GACf,MAAMvX,EAAQ9Z,KAAKvD,QAAQ40B,GAAGvoB,QAAQuoB,GAClCvX,GAAS,GACX9Z,KAAKvD,QAAQ40B,GAAGxoB,OAAOiR,EAAO,EAElC,CACA,WAAAuc,CAAYxE,EAAKR,EAAI5yB,GACnB,IAAIhC,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAMi2B,OAAwC5zB,IAAzBvF,EAAQm5B,aAA6Bn5B,EAAQm5B,aAAe51B,KAAKvD,QAAQm5B,aACxFM,OAAsDl0B,IAAhCvF,EAAQy5B,oBAAoCz5B,EAAQy5B,oBAAsBl2B,KAAKvD,QAAQy5B,oBACnH,IAAI/sB,EACA0oB,EAAI/oB,QAAQ,MAAQ,EACtBK,EAAO0oB,EAAIxoB,MAAM,MAEjBF,EAAO,CAAC0oB,EAAKR,GACT5yB,IACEoB,MAAMy2B,QAAQ73B,GAChB0K,EAAKR,QAAQlK,GACW,iBAARA,GAAoBm3B,EACpCzsB,EAAKR,QAAQlK,EAAI4K,MAAMusB,IAEvBzsB,EAAKR,KAAKlK,KAIhB,MAAMsJ,EAASwsB,EAAQv0B,KAAKoO,KAAMjF,GAMlC,OALKpB,IAAWspB,IAAO5yB,GAAOozB,EAAI/oB,QAAQ,MAAQ,IAChD+oB,EAAM1oB,EAAK,GACXkoB,EAAKloB,EAAK,GACV1K,EAAM0K,EAAK5N,MAAM,GAAGiU,KAAK,MAEvBzH,IAAWmuB,GAAsC,iBAARz3B,EAAyBsJ,EAC/D4tB,EAAS31B,KAAKoO,MAAQpO,KAAKoO,KAAKyjB,IAAQ7xB,KAAKoO,KAAKyjB,GAAKR,GAAK5yB,EAAKm3B,EAC1E,CACA,WAAAW,CAAY1E,EAAKR,EAAI5yB,EAAKlC,GACxB,IAAIE,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAChF62B,QAAQ,GAEV,MAAMZ,OAAwC5zB,IAAzBvF,EAAQm5B,aAA6Bn5B,EAAQm5B,aAAe51B,KAAKvD,QAAQm5B,aAC9F,IAAIzsB,EAAO,CAAC0oB,EAAKR,GACb5yB,IAAK0K,EAAOA,EAAK7N,OAAOs6B,EAAen3B,EAAI4K,MAAMusB,GAAgBn3B,IACjEozB,EAAI/oB,QAAQ,MAAQ,IACtBK,EAAO0oB,EAAIxoB,MAAM,KACjB9M,EAAQ80B,EACRA,EAAKloB,EAAK,IAEZnJ,KAAKm2B,cAAc9E,GACnB+C,EAAQp0B,KAAKoO,KAAMjF,EAAM5M,GACpBE,EAAQ+5B,QAAQx2B,KAAK+I,KAAK,QAAS8oB,EAAKR,EAAI5yB,EAAKlC,EACxD,CACA,YAAAk6B,CAAa5E,EAAKR,EAAII,GACpB,IAAIh1B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAChF62B,QAAQ,GAEV,IAAK,MAAMzf,KAAK0a,GACc,iBAAjBA,EAAU1a,IAAmBlX,MAAMy2B,QAAQ7E,EAAU1a,MAAK/W,KAAKu2B,YAAY1E,EAAKR,EAAIta,EAAG0a,EAAU1a,GAAI,CAC9Gyf,QAAQ,IAGP/5B,EAAQ+5B,QAAQx2B,KAAK+I,KAAK,QAAS8oB,EAAKR,EAAII,EACnD,CACA,iBAAAiF,CAAkB7E,EAAKR,EAAII,EAAWkF,EAAMjC,GAC1C,IAAIj4B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAChF62B,QAAQ,EACRI,UAAU,GAERztB,EAAO,CAAC0oB,EAAKR,GACbQ,EAAI/oB,QAAQ,MAAQ,IACtBK,EAAO0oB,EAAIxoB,MAAM,KACjBstB,EAAOlF,EACPA,EAAYJ,EACZA,EAAKloB,EAAK,IAEZnJ,KAAKm2B,cAAc9E,GACnB,IAAIwF,EAAOtC,EAAQv0B,KAAKoO,KAAMjF,IAAS,CAAC,EACnC1M,EAAQm6B,WAAUnF,EAAYruB,KAAKC,MAAMD,KAAKI,UAAUiuB,KACzDkF,EACFnC,EAAWqC,EAAMpF,EAAWiD,GAE5BmC,EAAO,IACFA,KACApF,GAGP2C,EAAQp0B,KAAKoO,KAAMjF,EAAM0tB,GACpBp6B,EAAQ+5B,QAAQx2B,KAAK+I,KAAK,QAAS8oB,EAAKR,EAAII,EACnD,CACA,oBAAAqF,CAAqBjF,EAAKR,GACpBrxB,KAAK+2B,kBAAkBlF,EAAKR,WACvBrxB,KAAKoO,KAAKyjB,GAAKR,GAExBrxB,KAAKo2B,iBAAiB/E,GACtBrxB,KAAK+I,KAAK,UAAW8oB,EAAKR,EAC5B,CACA,iBAAA0F,CAAkBlF,EAAKR,GACrB,YAAqCrvB,IAA9BhC,KAAKq2B,YAAYxE,EAAKR,EAC/B,CACA,iBAAA2F,CAAkBnF,EAAKR,GAErB,OADKA,IAAIA,EAAKrxB,KAAKvD,QAAQ60B,WACW,OAAlCtxB,KAAKvD,QAAQw6B,iBAAkC,IAE9Cj3B,KAAKq2B,YAAYxE,EAAKR,IAEpBrxB,KAAKq2B,YAAYxE,EAAKR,EAC/B,CACA,iBAAA6F,CAAkBrF,GAChB,OAAO7xB,KAAKoO,KAAKyjB,EACnB,CACA,2BAAAsF,CAA4BtF,GAC1B,MAAMzjB,EAAOpO,KAAKk3B,kBAAkBrF,GAEpC,SADUzjB,GAAQhS,OAAOsR,KAAKU,IAAS,IAC5BmjB,MAAK1H,GAAKzb,EAAKyb,IAAMztB,OAAOsR,KAAKU,EAAKyb,IAAIxuB,OAAS,GAChE,CACA,MAAA+7B,GACE,OAAOp3B,KAAKoO,IACd,EAGF,IAAIipB,EAAgB,CAClBC,WAAY,CAAC,EACb,gBAAAC,CAAiBpwB,GACfnH,KAAKs3B,WAAWnwB,EAAO8H,MAAQ9H,CACjC,EACA,MAAAqwB,CAAOF,EAAY/6B,EAAOkC,EAAKhC,EAASg7B,GAItC,OAHAH,EAAWlmB,SAAQsmB,IACb13B,KAAKs3B,WAAWI,KAAYn7B,EAAQyD,KAAKs3B,WAAWI,GAAWC,QAAQp7B,EAAOkC,EAAKhC,EAASg7B,GAAW,IAEtGl7B,CACT,GAGF,MAAMq7B,EAAmB,CAAC,EAC1B,MAAMC,UAAmBxE,EACvB,WAAA9mB,CAAYurB,GACV,IAAIr7B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAlVvF,IAAiB2S,EAAG7G,EAmVhBwqB,QAnVa3jB,EAoVyGwlB,EApVtGrsB,EAoVgHzL,KAA3H,CAAC,gBAAiB,gBAAiB,iBAAkB,eAAgB,mBAAoB,aAAc,SAnV5GoR,SAAQ2F,IACJzE,EAAEyE,KAAItL,EAAEsL,GAAKzE,EAAEyE,GAAE,IAmVrB/W,KAAKvD,QAAUA,OACmBuF,IAA9BhC,KAAKvD,QAAQm5B,eACf51B,KAAKvD,QAAQm5B,aAAe,KAE9B51B,KAAKyyB,OAASW,EAAW7qB,OAAO,aAClC,CACA,cAAA0pB,CAAeJ,GACTA,IAAK7xB,KAAKpE,SAAWi2B,EAC3B,CACA,MAAAkG,CAAOt5B,GACL,IAAIhC,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAChFq4B,cAAe,CAAC,GAElB,GAAIv5B,QACF,OAAO,EAET,MAAMw5B,EAAWj4B,KAAKqI,QAAQ5J,EAAKhC,GACnC,OAAOw7B,QAA6Bj2B,IAAjBi2B,EAASjiB,GAC9B,CACA,cAAAkiB,CAAez5B,EAAKhC,GAClB,IAAI07B,OAAsCn2B,IAAxBvF,EAAQ07B,YAA4B17B,EAAQ07B,YAAcn4B,KAAKvD,QAAQ07B,iBACrEn2B,IAAhBm2B,IAA2BA,EAAc,KAC7C,MAAMvC,OAAwC5zB,IAAzBvF,EAAQm5B,aAA6Bn5B,EAAQm5B,aAAe51B,KAAKvD,QAAQm5B,aAC9F,IAAIxE,EAAa30B,EAAQ40B,IAAMrxB,KAAKvD,QAAQ60B,WAAa,GACzD,MAAM8G,EAAuBD,GAAe15B,EAAIqK,QAAQqvB,IAAgB,EAClEE,IAAwBr4B,KAAKvD,QAAQ67B,yBAA4B77B,EAAQm5B,cAAiB51B,KAAKvD,QAAQ87B,wBAA2B97B,EAAQ07B,aAzOpJ,SAA6B15B,EAAK05B,EAAavC,GAC7CuC,EAAcA,GAAe,GAC7BvC,EAAeA,GAAgB,GAC/B,MAAM4C,EAAgBxD,EAAMp4B,QAAO6rB,GAAK0P,EAAYrvB,QAAQ2f,GAAK,GAAKmN,EAAa9sB,QAAQ2f,GAAK,IAChG,GAA6B,IAAzB+P,EAAcn9B,OAAc,OAAO,EACvC,MAAMqQ,EAAIupB,EAA+BI,UAAU,IAAImD,EAAc1wB,KAAI2gB,GAAW,MAANA,EAAY,MAAQA,IAAGjZ,KAAK,SAC1G,IAAIipB,GAAW/sB,EAAE4N,KAAK7a,GACtB,IAAKg6B,EAAS,CACZ,MAAMC,EAAKj6B,EAAIqK,QAAQ8sB,GACnB8C,EAAK,IAAMhtB,EAAE4N,KAAK7a,EAAI0C,UAAU,EAAGu3B,MACrCD,GAAU,EAEd,CACA,OAAOA,CACT,CA2NoKE,CAAoBl6B,EAAK05B,EAAavC,IACtM,GAAIwC,IAAyBC,EAAsB,CACjD,MAAMthB,EAAItY,EAAI9B,MAAMqD,KAAK44B,aAAaC,eACtC,GAAI9hB,GAAKA,EAAE1b,OAAS,EAClB,MAAO,CACLoD,MACA2yB,cAGJ,MAAM0H,EAAQr6B,EAAI4K,MAAM8uB,IACpBA,IAAgBvC,GAAgBuC,IAAgBvC,GAAgB51B,KAAKvD,QAAQ40B,GAAGvoB,QAAQgwB,EAAM,KAAO,KAAG1H,EAAa0H,EAAMpD,SAC/Hj3B,EAAMq6B,EAAMtpB,KAAKomB,EACnB,CAEA,MAD0B,iBAAfxE,IAAyBA,EAAa,CAACA,IAC3C,CACL3yB,MACA2yB,aAEJ,CACA,SAAA2H,CAAUrrB,EAAMjR,EAASu8B,GAQvB,GAPuB,iBAAZv8B,GAAwBuD,KAAKvD,QAAQw8B,mCAC9Cx8B,EAAUuD,KAAKvD,QAAQw8B,iCAAiCt5B,YAEnC,iBAAZlD,IAAsBA,EAAU,IACtCA,IAEAA,IAASA,EAAU,CAAC,GACrBiR,QAAqC,MAAO,GAC3C7N,MAAMy2B,QAAQ5oB,KAAOA,EAAO,CAACknB,OAAOlnB,KACzC,MAAMwrB,OAA0Cl3B,IAA1BvF,EAAQy8B,cAA8Bz8B,EAAQy8B,cAAgBl5B,KAAKvD,QAAQy8B,cAC3FtD,OAAwC5zB,IAAzBvF,EAAQm5B,aAA6Bn5B,EAAQm5B,aAAe51B,KAAKvD,QAAQm5B,cACxF,IACJn3B,EAAG,WACH2yB,GACEpxB,KAAKk4B,eAAexqB,EAAKA,EAAKrS,OAAS,GAAIoB,GACzC08B,EAAY/H,EAAWA,EAAW/1B,OAAS,GAC3Cw2B,EAAMp1B,EAAQo1B,KAAO7xB,KAAKpE,SAC1Bw9B,EAA0B38B,EAAQ28B,yBAA2Bp5B,KAAKvD,QAAQ28B,wBAChF,GAAIvH,GAA6B,WAAtBA,EAAI31B,cAA4B,CACzC,GAAIk9B,EAAyB,CAC3B,MAAMjB,EAAc17B,EAAQ07B,aAAen4B,KAAKvD,QAAQ07B,YACxD,OAAIe,EACK,CACLljB,IAAK,GAAGmjB,IAAYhB,IAAc15B,IAClC46B,QAAS56B,EACT66B,aAAc76B,EACd86B,QAAS1H,EACT2H,OAAQL,EACRM,WAAYz5B,KAAK05B,qBAAqBj9B,IAGnC,GAAG08B,IAAYhB,IAAc15B,GACtC,CACA,OAAIy6B,EACK,CACLljB,IAAKvX,EACL46B,QAAS56B,EACT66B,aAAc76B,EACd86B,QAAS1H,EACT2H,OAAQL,EACRM,WAAYz5B,KAAK05B,qBAAqBj9B,IAGnCgC,CACT,CACA,MAAMw5B,EAAWj4B,KAAKqI,QAAQqF,EAAMjR,GACpC,IAAIuZ,EAAMiiB,GAAYA,EAASjiB,IAC/B,MAAM2jB,EAAa1B,GAAYA,EAASoB,SAAW56B,EAC7Cm7B,EAAkB3B,GAAYA,EAASqB,cAAgB76B,EACvDo7B,EAAUz9B,OAAOsC,UAAUkN,SAAS7L,MAAMiW,GAE1C8jB,OAAoC93B,IAAvBvF,EAAQq9B,WAA2Br9B,EAAQq9B,WAAa95B,KAAKvD,QAAQq9B,WAClFC,GAA8B/5B,KAAKg6B,YAAch6B,KAAKg6B,WAAWC,eAEvE,GAAIF,GAA8B/jB,IADI,iBAARA,GAAmC,kBAARA,GAAoC,iBAARA,IAHpE,CAAC,kBAAmB,oBAAqB,mBAIUlN,QAAQ+wB,GAAW,IAA6B,iBAAfC,IAA2Bj6B,MAAMy2B,QAAQtgB,IAAO,CACnJ,IAAKvZ,EAAQy9B,gBAAkBl6B,KAAKvD,QAAQy9B,cAAe,CACpDl6B,KAAKvD,QAAQ09B,uBAChBn6B,KAAKyyB,OAAOH,KAAK,mEAEnB,MAAM5mB,EAAI1L,KAAKvD,QAAQ09B,sBAAwBn6B,KAAKvD,QAAQ09B,sBAAsBR,EAAY3jB,EAAK,IAC9FvZ,EACH40B,GAAID,IACD,QAAQ3yB,MAAQuB,KAAKpE,mDAC1B,OAAIs9B,GACFjB,EAASjiB,IAAMtK,EACfusB,EAASwB,WAAaz5B,KAAK05B,qBAAqBj9B,GACzCw7B,GAEFvsB,CACT,CACA,GAAIkqB,EAAc,CAChB,MAAMwE,EAAiBv6B,MAAMy2B,QAAQtgB,GAC/BqkB,EAAOD,EAAiB,GAAK,CAAC,EAC9BE,EAAcF,EAAiBR,EAAkBD,EACvD,IAAK,MAAM5iB,KAAKf,EACd,GAAI5Z,OAAOsC,UAAUC,eAAeC,KAAKoX,EAAKe,GAAI,CAChD,MAAMwjB,EAAU,GAAGD,IAAc1E,IAAe7e,IAChDsjB,EAAKtjB,GAAK/W,KAAK+4B,UAAUwB,EAAS,IAC7B99B,EAEDq9B,YAAY,EACZzI,GAAID,IAGJiJ,EAAKtjB,KAAOwjB,IAASF,EAAKtjB,GAAKf,EAAIe,GACzC,CAEFf,EAAMqkB,CACR,CACF,MAAO,GAAIN,GAAoD,iBAAfD,GAA2Bj6B,MAAMy2B,QAAQtgB,GACvFA,EAAMA,EAAIxG,KAAKsqB,GACX9jB,IAAKA,EAAMhW,KAAKw6B,kBAAkBxkB,EAAKtI,EAAMjR,EAASu8B,QACrD,CACL,IAAIyB,GAAc,EACdpB,GAAU,EACd,MAAMqB,OAAwC14B,IAAlBvF,EAAQk+B,OAAgD,iBAAlBl+B,EAAQk+B,MACpEC,EAAkB/C,EAAW+C,gBAAgBn+B,GAC7Co+B,EAAqBH,EAAsB16B,KAAK86B,eAAeC,UAAUlJ,EAAKp1B,EAAQk+B,MAAOl+B,GAAW,GACxGu+B,EAAoCv+B,EAAQw+B,SAAWP,EAAsB16B,KAAK86B,eAAeC,UAAUlJ,EAAKp1B,EAAQk+B,MAAO,CACnIM,SAAS,IACN,GACCC,EAAwBR,IAAwBj+B,EAAQw+B,SAA6B,IAAlBx+B,EAAQk+B,OAAe36B,KAAK86B,eAAeK,mBAC9GhU,EAAe+T,GAAyBz+B,EAAQ,eAAeuD,KAAKvD,QAAQ2+B,wBAA0B3+B,EAAQ,eAAeo+B,MAAyBp+B,EAAQ,eAAeu+B,MAAwCv+B,EAAQ0qB,cAC9NnnB,KAAKq7B,cAAcrlB,IAAQ4kB,IAC9BH,GAAc,EACdzkB,EAAMmR,GAEHnnB,KAAKq7B,cAAcrlB,KACtBqjB,GAAU,EACVrjB,EAAMvX,GAER,MACM68B,GADiC7+B,EAAQ8+B,gCAAkCv7B,KAAKvD,QAAQ8+B,iCACtClC,OAAUr3B,EAAYgU,EACxEwlB,EAAgBZ,GAAmBzT,IAAiBnR,GAAOhW,KAAKvD,QAAQ++B,cAC9E,GAAInC,GAAWoB,GAAee,EAAe,CAE3C,GADAx7B,KAAKyyB,OAAOxL,IAAIuU,EAAgB,YAAc,aAAc3J,EAAKsH,EAAW16B,EAAK+8B,EAAgBrU,EAAenR,GAC5G4f,EAAc,CAChB,MAAM6F,EAAKz7B,KAAKqI,QAAQ5J,EAAK,IACxBhC,EACHm5B,cAAc,IAEZ6F,GAAMA,EAAGzlB,KAAKhW,KAAKyyB,OAAOH,KAAK,kLACrC,CACA,IAAIoJ,EAAO,GACX,MAAMC,EAAe37B,KAAK47B,cAAcC,iBAAiB77B,KAAKvD,QAAQq1B,YAAar1B,EAAQo1B,KAAO7xB,KAAKpE,UACvG,GAAmC,aAA/BoE,KAAKvD,QAAQq/B,eAAgCH,GAAgBA,EAAa,GAC5E,IAAK,IAAI5Y,EAAI,EAAGA,EAAI4Y,EAAatgC,OAAQ0nB,IACvC2Y,EAAK/yB,KAAKgzB,EAAa5Y,QAEe,QAA/B/iB,KAAKvD,QAAQq/B,cACtBJ,EAAO17B,KAAK47B,cAAcG,mBAAmBt/B,EAAQo1B,KAAO7xB,KAAKpE,UAEjE8/B,EAAK/yB,KAAKlM,EAAQo1B,KAAO7xB,KAAKpE,UAEhC,MAAMkW,EAAO,CAAC4W,EAAGqB,EAAGiS,KAClB,MAAMC,EAAoBrB,GAAmBoB,IAAyBhmB,EAAMgmB,EAAuBV,EAC/Ft7B,KAAKvD,QAAQy/B,kBACfl8B,KAAKvD,QAAQy/B,kBAAkBxT,EAAGyQ,EAAWpP,EAAGkS,EAAmBT,EAAe/+B,GACzEuD,KAAKm8B,kBAAoBn8B,KAAKm8B,iBAAiBC,aACxDp8B,KAAKm8B,iBAAiBC,YAAY1T,EAAGyQ,EAAWpP,EAAGkS,EAAmBT,EAAe/+B,GAEvFuD,KAAK+I,KAAK,aAAc2f,EAAGyQ,EAAWpP,EAAG/T,EAAI,EAE3ChW,KAAKvD,QAAQ2/B,cACXp8B,KAAKvD,QAAQ4/B,oBAAsB3B,EACrCgB,EAAKtqB,SAAQxV,IACX,MAAMkB,EAAWkD,KAAK86B,eAAewB,YAAY1gC,EAAUa,GACvDy+B,GAAyBz+B,EAAQ,eAAeuD,KAAKvD,QAAQ2+B,wBAA0Bt+B,EAASgM,QAAQ,GAAG9I,KAAKvD,QAAQ2+B,uBAAyB,GACnJt+B,EAAS6L,KAAK,GAAG3I,KAAKvD,QAAQ2+B,uBAEhCt+B,EAASsU,SAAQjU,IACf2U,EAAK,CAAClW,GAAW6C,EAAMtB,EAAQV,EAAQ,eAAeU,MAAagqB,EAAa,GAChF,IAGJrV,EAAK4pB,EAAMj9B,EAAK0oB,GAGtB,CACAnR,EAAMhW,KAAKw6B,kBAAkBxkB,EAAKtI,EAAMjR,EAASw7B,EAAUe,GACvDK,GAAWrjB,IAAQvX,GAAOuB,KAAKvD,QAAQ8/B,8BAA6BvmB,EAAM,GAAGmjB,KAAa16B,MACzF46B,GAAWoB,IAAgBz6B,KAAKvD,QAAQ+/B,yBAEzCxmB,EADoC,OAAlChW,KAAKvD,QAAQw6B,iBACTj3B,KAAKvD,QAAQ+/B,uBAAuBx8B,KAAKvD,QAAQ8/B,4BAA8B,GAAGpD,KAAa16B,IAAQA,EAAKg8B,EAAczkB,OAAMhU,GAEhIhC,KAAKvD,QAAQ+/B,uBAAuBxmB,GAGhD,CACA,OAAIkjB,GACFjB,EAASjiB,IAAMA,EACfiiB,EAASwB,WAAaz5B,KAAK05B,qBAAqBj9B,GACzCw7B,GAEFjiB,CACT,CACA,iBAAAwkB,CAAkBxkB,EAAKvX,EAAKhC,EAASw7B,EAAUe,GAC7C,IAAIv5B,EAAQO,KACZ,GAAIA,KAAKg6B,YAAch6B,KAAKg6B,WAAW32B,MACrC2S,EAAMhW,KAAKg6B,WAAW32B,MAAM2S,EAAK,IAC5BhW,KAAKvD,QAAQu7B,cAAcyE,oBAC3BhgC,GACFA,EAAQo1B,KAAO7xB,KAAKpE,UAAYq8B,EAASsB,QAAStB,EAASuB,OAAQvB,EAASoB,QAAS,CACtFpB,kBAEG,IAAKx7B,EAAQigC,kBAAmB,CACjCjgC,EAAQu7B,eAAeh4B,KAAK44B,aAAahH,KAAK,IAC7Cn1B,EAEDu7B,cAAe,IACVh4B,KAAKvD,QAAQu7B,iBACbv7B,EAAQu7B,iBAIjB,MAAM2E,EAAiC,iBAAR3mB,IAAqBvZ,GAAWA,EAAQu7B,oBAA2Dh2B,IAA1CvF,EAAQu7B,cAAc2E,gBAAgClgC,EAAQu7B,cAAc2E,gBAAkB38B,KAAKvD,QAAQu7B,cAAc2E,iBACjN,IAAIC,EACJ,GAAID,EAAiB,CACnB,MAAME,EAAK7mB,EAAIrZ,MAAMqD,KAAK44B,aAAaC,eACvC+D,EAAUC,GAAMA,EAAGxhC,MACrB,CACA,IAAI+S,EAAO3R,EAAQN,SAAsC,iBAApBM,EAAQN,QAAuBM,EAAQN,QAAUM,EAMtF,GALIuD,KAAKvD,QAAQu7B,cAAcyE,mBAAkBruB,EAAO,IACnDpO,KAAKvD,QAAQu7B,cAAcyE,oBAC3BruB,IAEL4H,EAAMhW,KAAK44B,aAAakE,YAAY9mB,EAAK5H,EAAM3R,EAAQo1B,KAAO7xB,KAAKpE,SAAUa,GACzEkgC,EAAiB,CACnB,MAAMI,EAAK/mB,EAAIrZ,MAAMqD,KAAK44B,aAAaC,eAEnC+D,GADYG,GAAMA,EAAG1hC,UACFoB,EAAQugC,MAAO,EACxC,EACKvgC,EAAQo1B,KAAyC,OAAlC7xB,KAAKvD,QAAQw6B,kBAA6BgB,GAAYA,EAASjiB,MAAKvZ,EAAQo1B,IAAMoG,EAASsB,UAC1F,IAAjB98B,EAAQugC,OAAgBhnB,EAAMhW,KAAK44B,aAAaoE,KAAKhnB,GAAK,WAC5D,IAAK,IAAItW,EAAOC,UAAUtE,OAAQuE,EAAO,IAAIC,MAAMH,GAAOI,EAAO,EAAGA,EAAOJ,EAAMI,IAC/EF,EAAKE,GAAQH,UAAUG,GAEzB,OAAIk5B,GAAWA,EAAQ,KAAOp5B,EAAK,KAAOnD,EAAQqrB,SAChDroB,EAAMgzB,OAAOH,KAAK,6CAA6C1yB,EAAK,cAAcnB,EAAI,MAC/E,MAEFgB,EAAMs5B,aAAan5B,EAAMnB,EAClC,GAAGhC,IACCA,EAAQu7B,eAAeh4B,KAAK44B,aAAaqE,OAC/C,CACA,MAAMC,EAAczgC,EAAQygC,aAAel9B,KAAKvD,QAAQygC,YAClDC,EAA4C,iBAAhBD,EAA2B,CAACA,GAAeA,EAU7E,OATIlnB,SAAqCmnB,GAAsBA,EAAmB9hC,SAAyC,IAA/BoB,EAAQ2gC,qBAClGpnB,EAAMqhB,EAAcG,OAAO2F,EAAoBnnB,EAAKvX,EAAKuB,KAAKvD,SAAWuD,KAAKvD,QAAQ4gC,wBAA0B,CAC9GC,aAAc,IACTrF,EACHwB,WAAYz5B,KAAK05B,qBAAqBj9B,OAErCA,GACDA,EAASuD,OAERgW,CACT,CACA,OAAA3N,CAAQqF,GACN,IACI6vB,EACAlE,EACAC,EACAC,EACAC,EALA/8B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAqEnF,MA/DoB,iBAAT+N,IAAmBA,EAAO,CAACA,IACtCA,EAAK0D,SAAQ2Y,IACX,GAAI/pB,KAAKq7B,cAAckC,GAAQ,OAC/B,MAAMC,EAAYx9B,KAAKk4B,eAAenO,EAAGttB,GACnCgC,EAAM++B,EAAU/+B,IACtB46B,EAAU56B,EACV,IAAI2yB,EAAaoM,EAAUpM,WACvBpxB,KAAKvD,QAAQ+0B,aAAYJ,EAAaA,EAAW91B,OAAO0E,KAAKvD,QAAQ+0B,aACzE,MAAMkJ,OAAwC14B,IAAlBvF,EAAQk+B,OAAgD,iBAAlBl+B,EAAQk+B,MACpEO,EAAwBR,IAAwBj+B,EAAQw+B,SAA6B,IAAlBx+B,EAAQk+B,OAAe36B,KAAK86B,eAAeK,mBAC9GsC,OAA2Cz7B,IAApBvF,EAAQqrB,UAAqD,iBAApBrrB,EAAQqrB,SAAmD,iBAApBrrB,EAAQqrB,UAA6C,KAApBrrB,EAAQqrB,QAChJ4V,EAAQjhC,EAAQi/B,KAAOj/B,EAAQi/B,KAAO17B,KAAK47B,cAAcG,mBAAmBt/B,EAAQo1B,KAAO7xB,KAAKpE,SAAUa,EAAQq1B,aACxHV,EAAWhgB,SAAQigB,IACbrxB,KAAKq7B,cAAckC,KACvB/D,EAASnI,GACJuG,EAAiB,GAAG8F,EAAM,MAAMrM,MAASrxB,KAAK29B,OAAS39B,KAAK29B,MAAMC,qBAAuB59B,KAAK29B,MAAMC,mBAAmBpE,KAC1H5B,EAAiB,GAAG8F,EAAM,MAAMrM,MAAQ,EACxCrxB,KAAKyyB,OAAOH,KAAK,QAAQ+G,qBAA2BqE,EAAMluB,KAAK,2CAA2CgqB,wBAA8B,6NAE1IkE,EAAMtsB,SAAQnV,IACZ,GAAI+D,KAAKq7B,cAAckC,GAAQ,OAC/BhE,EAAUt9B,EACV,MAAM4hC,EAAY,CAACp/B,GACnB,GAAIuB,KAAKg6B,YAAch6B,KAAKg6B,WAAW8D,cACrC99B,KAAKg6B,WAAW8D,cAAcD,EAAWp/B,EAAKxC,EAAMo1B,EAAI50B,OACnD,CACL,IAAIshC,EACArD,IAAqBqD,EAAe/9B,KAAK86B,eAAeC,UAAU9+B,EAAMQ,EAAQk+B,MAAOl+B,IAC3F,MAAMuhC,EAAa,GAAGh+B,KAAKvD,QAAQ2+B,sBAC7B6C,EAAgB,GAAGj+B,KAAKvD,QAAQ2+B,yBAAyBp7B,KAAKvD,QAAQ2+B,kBAU5E,GATIV,IACFmD,EAAUl1B,KAAKlK,EAAMs/B,GACjBthC,EAAQw+B,SAAmD,IAAxC8C,EAAaj1B,QAAQm1B,IAC1CJ,EAAUl1B,KAAKlK,EAAMs/B,EAAa5hC,QAAQ8hC,EAAej+B,KAAKvD,QAAQ2+B,kBAEpEF,GACF2C,EAAUl1B,KAAKlK,EAAMu/B,IAGrBP,EAAsB,CACxB,MAAMS,EAAa,GAAGz/B,IAAMuB,KAAKvD,QAAQ0hC,mBAAmB1hC,EAAQqrB,UACpE+V,EAAUl1B,KAAKu1B,GACXxD,IACFmD,EAAUl1B,KAAKu1B,EAAaH,GACxBthC,EAAQw+B,SAAmD,IAAxC8C,EAAaj1B,QAAQm1B,IAC1CJ,EAAUl1B,KAAKu1B,EAAaH,EAAa5hC,QAAQ8hC,EAAej+B,KAAKvD,QAAQ2+B,kBAE3EF,GACF2C,EAAUl1B,KAAKu1B,EAAaF,GAGlC,CACF,CACA,IAAII,EACJ,KAAOA,EAAcP,EAAUte,OACxBvf,KAAKq7B,cAAckC,KACtBjE,EAAe8E,EACfb,EAAQv9B,KAAKq2B,YAAYp6B,EAAMo1B,EAAI+M,EAAa3hC,GAEpD,IACA,GACF,IAEG,CACLuZ,IAAKunB,EACLlE,UACAC,eACAC,UACAC,SAEJ,CACA,aAAA6B,CAAcrlB,GACZ,aAAehU,IAARgU,IAAwBhW,KAAKvD,QAAQ4hC,YAAsB,OAARroB,IAAoBhW,KAAKvD,QAAQ6hC,mBAA6B,KAARtoB,EAClH,CACA,WAAAqgB,CAAYp6B,EAAMo1B,EAAI5yB,GACpB,IAAIhC,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAIK,KAAKg6B,YAAch6B,KAAKg6B,WAAW3D,YAAoBr2B,KAAKg6B,WAAW3D,YAAYp6B,EAAMo1B,EAAI5yB,EAAKhC,GAC/FuD,KAAKu+B,cAAclI,YAAYp6B,EAAMo1B,EAAI5yB,EAAKhC,EACvD,CACA,oBAAAi9B,GACE,IAAIj9B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAM6+B,EAAc,CAAC,eAAgB,UAAW,UAAW,UAAW,MAAO,OAAQ,cAAe,KAAM,eAAgB,cAAe,gBAAiB,gBAAiB,aAAc,cAAe,iBAClMC,EAA2BhiC,EAAQN,SAAsC,iBAApBM,EAAQN,QACnE,IAAIiS,EAAOqwB,EAA2BhiC,EAAQN,QAAUM,EAUxD,GATIgiC,QAAqD,IAAlBhiC,EAAQk+B,QAC7CvsB,EAAKusB,MAAQl+B,EAAQk+B,OAEnB36B,KAAKvD,QAAQu7B,cAAcyE,mBAC7BruB,EAAO,IACFpO,KAAKvD,QAAQu7B,cAAcyE,oBAC3BruB,KAGFqwB,EAA0B,CAC7BrwB,EAAO,IACFA,GAEL,IAAK,MAAM3P,KAAO+/B,SACTpwB,EAAK3P,EAEhB,CACA,OAAO2P,CACT,CACA,sBAAOwsB,CAAgBn+B,GACrB,MAAMyrB,EAAS,eACf,IAAK,MAAMlrB,KAAUP,EACnB,GAAIL,OAAOsC,UAAUC,eAAeC,KAAKnC,EAASO,IAAWkrB,IAAWlrB,EAAOmE,UAAU,EAAG+mB,UAAkBlmB,IAAcvF,EAAQO,GAClI,OAAO,EAGX,OAAO,CACT,EAGF,SAAS0hC,EAAWxjC,GAClB,OAAOA,EAAOoO,OAAO,GAAGq1B,cAAgBzjC,EAAOK,MAAM,EACvD,CACA,MAAMqjC,EACJ,WAAAryB,CAAY9P,GACVuD,KAAKvD,QAAUA,EACfuD,KAAK6+B,cAAgB7+B,KAAKvD,QAAQoiC,gBAAiB,EACnD7+B,KAAKyyB,OAASW,EAAW7qB,OAAO,gBAClC,CACA,qBAAAu2B,CAAsB7iC,GAEpB,KADAA,EAAO85B,EAAe95B,KACTA,EAAK6M,QAAQ,KAAO,EAAG,OAAO,KAC3C,MAAMsD,EAAInQ,EAAKoN,MAAM,KACrB,OAAiB,IAAb+C,EAAE/Q,OAAqB,MAC3B+Q,EAAEmT,MACoC,MAAlCnT,EAAEA,EAAE/Q,OAAS,GAAGa,cAA8B,KAC3C8D,KAAK++B,mBAAmB3yB,EAAEoD,KAAK,MACxC,CACA,uBAAAwvB,CAAwB/iC,GAEtB,KADAA,EAAO85B,EAAe95B,KACTA,EAAK6M,QAAQ,KAAO,EAAG,OAAO7M,EAC3C,MAAMmQ,EAAInQ,EAAKoN,MAAM,KACrB,OAAOrJ,KAAK++B,mBAAmB3yB,EAAE,GACnC,CACA,kBAAA2yB,CAAmB9iC,GACjB,GAAoB,iBAATA,GAAqBA,EAAK6M,QAAQ,MAAQ,EAAG,CACtD,MAAMm2B,EAAe,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QACtE,IAAI7yB,EAAInQ,EAAKoN,MAAM,KAcnB,OAbIrJ,KAAKvD,QAAQyiC,aACf9yB,EAAIA,EAAEtE,KAAIq3B,GAAQA,EAAKjjC,gBACD,IAAbkQ,EAAE/Q,QACX+Q,EAAE,GAAKA,EAAE,GAAGlQ,cACZkQ,EAAE,GAAKA,EAAE,GAAGuyB,cACRM,EAAan2B,QAAQsD,EAAE,GAAGlQ,gBAAkB,IAAGkQ,EAAE,GAAKsyB,EAAWtyB,EAAE,GAAGlQ,iBACpD,IAAbkQ,EAAE/Q,SACX+Q,EAAE,GAAKA,EAAE,GAAGlQ,cACQ,IAAhBkQ,EAAE,GAAG/Q,SAAc+Q,EAAE,GAAKA,EAAE,GAAGuyB,eACtB,QAATvyB,EAAE,IAAgC,IAAhBA,EAAE,GAAG/Q,SAAc+Q,EAAE,GAAKA,EAAE,GAAGuyB,eACjDM,EAAan2B,QAAQsD,EAAE,GAAGlQ,gBAAkB,IAAGkQ,EAAE,GAAKsyB,EAAWtyB,EAAE,GAAGlQ,gBACtE+iC,EAAan2B,QAAQsD,EAAE,GAAGlQ,gBAAkB,IAAGkQ,EAAE,GAAKsyB,EAAWtyB,EAAE,GAAGlQ,iBAErEkQ,EAAEoD,KAAK,IAChB,CACA,OAAOxP,KAAKvD,QAAQ2iC,WAAap/B,KAAKvD,QAAQyiC,aAAejjC,EAAKC,cAAgBD,CACpF,CACA,eAAAojC,CAAgBpjC,GAId,OAH0B,iBAAtB+D,KAAKvD,QAAQ6iC,MAA2Bt/B,KAAKvD,QAAQ8iC,4BACvDtjC,EAAO+D,KAAKg/B,wBAAwB/iC,KAE9B+D,KAAK6+B,gBAAkB7+B,KAAK6+B,cAAcxjC,QAAU2E,KAAK6+B,cAAc/1B,QAAQ7M,IAAS,CAClG,CACA,qBAAAujC,CAAsB9B,GACpB,IAAKA,EAAO,OAAO,KACnB,IAAIH,EAoBJ,OAnBAG,EAAMtsB,SAAQnV,IACZ,GAAIshC,EAAO,OACX,MAAMkC,EAAaz/B,KAAK++B,mBAAmB9iC,GACtC+D,KAAKvD,QAAQoiC,gBAAiB7+B,KAAKq/B,gBAAgBI,KAAalC,EAAQkC,EAAU,KAEpFlC,GAASv9B,KAAKvD,QAAQoiC,eACzBnB,EAAMtsB,SAAQnV,IACZ,GAAIshC,EAAO,OACX,MAAMmC,EAAU1/B,KAAKg/B,wBAAwB/iC,GAC7C,GAAI+D,KAAKq/B,gBAAgBK,GAAU,OAAOnC,EAAQmC,EAClDnC,EAAQv9B,KAAKvD,QAAQoiC,cAActN,MAAKoO,GAClCA,IAAiBD,EAAgBC,EACjCA,EAAa72B,QAAQ,KAAO,GAAK42B,EAAQ52B,QAAQ,KAAO,OAA5D,EACI62B,EAAa72B,QAAQ,KAAO,GAAK42B,EAAQ52B,QAAQ,KAAO,GAAK62B,EAAax+B,UAAU,EAAGw+B,EAAa72B,QAAQ,QAAU42B,GACpF,IAAlCC,EAAa72B,QAAQ42B,IAAkBA,EAAQrkC,OAAS,EAD8EskC,OAC1I,GACA,IAGDpC,IAAOA,EAAQv9B,KAAK67B,iBAAiB77B,KAAKvD,QAAQq1B,aAAa,IAC7DyL,CACT,CACA,gBAAA1B,CAAiB+D,EAAW3jC,GAC1B,IAAK2jC,EAAW,MAAO,GAGvB,GAFyB,mBAAdA,IAA0BA,EAAYA,EAAU3jC,IAClC,iBAAd2jC,IAAwBA,EAAY,CAACA,IAC5C//B,MAAMy2B,QAAQsJ,GAAY,OAAOA,EACrC,IAAK3jC,EAAM,OAAO2jC,EAAU3hC,SAAW,GACvC,IAAIs/B,EAAQqC,EAAU3jC,GAKtB,OAJKshC,IAAOA,EAAQqC,EAAU5/B,KAAK8+B,sBAAsB7iC,KACpDshC,IAAOA,EAAQqC,EAAU5/B,KAAK++B,mBAAmB9iC,KACjDshC,IAAOA,EAAQqC,EAAU5/B,KAAKg/B,wBAAwB/iC,KACtDshC,IAAOA,EAAQqC,EAAU3hC,SACvBs/B,GAAS,EAClB,CACA,kBAAAxB,CAAmB9/B,EAAM4jC,GACvB,MAAMC,EAAgB9/B,KAAK67B,iBAAiBgE,GAAgB7/B,KAAKvD,QAAQq1B,aAAe,GAAI71B,GACtFyhC,EAAQ,GACRqC,EAAUtX,IACTA,IACDzoB,KAAKq/B,gBAAgB5W,GACvBiV,EAAM/0B,KAAK8f,GAEXzoB,KAAKyyB,OAAOH,KAAK,uDAAuD7J,KAC1E,EAYF,MAVoB,iBAATxsB,IAAsBA,EAAK6M,QAAQ,MAAQ,GAAK7M,EAAK6M,QAAQ,MAAQ,IACpD,iBAAtB9I,KAAKvD,QAAQ6iC,MAAyBS,EAAQ//B,KAAK++B,mBAAmB9iC,IAChD,iBAAtB+D,KAAKvD,QAAQ6iC,MAAiD,gBAAtBt/B,KAAKvD,QAAQ6iC,MAAwBS,EAAQ//B,KAAK8+B,sBAAsB7iC,IAC1F,gBAAtB+D,KAAKvD,QAAQ6iC,MAAwBS,EAAQ//B,KAAKg/B,wBAAwB/iC,KACrD,iBAATA,GAChB8jC,EAAQ//B,KAAK++B,mBAAmB9iC,IAElC6jC,EAAc1uB,SAAQ4uB,IAChBtC,EAAM50B,QAAQk3B,GAAM,GAAGD,EAAQ//B,KAAK++B,mBAAmBiB,GAAI,IAE1DtC,CACT,EAGF,IAAIuC,EAAO,CAAC,CACVvE,KAAM,CAAC,MAAO,KAAM,KAAM,MAAO,KAAM,MAAO,MAAO,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,MACjIwE,GAAI,CAAC,EAAG,GACRF,GAAI,GACH,CACDtE,KAAM,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,MAAO,MAAO,KAAM,QAAS,KAAM,MAAO,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MACzYwE,GAAI,CAAC,EAAG,GACRF,GAAI,GACH,CACDtE,KAAM,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MACxIwE,GAAI,CAAC,GACLF,GAAI,GACH,CACDtE,KAAM,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,MAClDwE,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,GACH,CACDtE,KAAM,CAAC,MACPwE,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,KACrBF,GAAI,GACH,CACDtE,KAAM,CAAC,KAAM,MACbwE,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,GACH,CACDtE,KAAM,CAAC,MAAO,MACdwE,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,GACH,CACDtE,KAAM,CAAC,MACPwE,GAAI,CAAC,EAAG,EAAG,EAAG,GACdF,GAAI,GACH,CACDtE,KAAM,CAAC,MACPwE,GAAI,CAAC,EAAG,GACRF,GAAI,GACH,CACDtE,KAAM,CAAC,MACPwE,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,IACjBF,GAAI,IACH,CACDtE,KAAM,CAAC,MACPwE,GAAI,CAAC,EAAG,EAAG,EAAG,IACdF,GAAI,IACH,CACDtE,KAAM,CAAC,MACPwE,GAAI,CAAC,EAAG,GACRF,GAAI,IACH,CACDtE,KAAM,CAAC,MACPwE,GAAI,CAAC,EAAG,GACRF,GAAI,IACH,CACDtE,KAAM,CAAC,MACPwE,GAAI,CAAC,EAAG,EAAG,EAAG,GACdF,GAAI,IACH,CACDtE,KAAM,CAAC,MACPwE,GAAI,CAAC,EAAG,EAAG,IACXF,GAAI,IACH,CACDtE,KAAM,CAAC,MACPwE,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,IACH,CACDtE,KAAM,CAAC,MACPwE,GAAI,CAAC,EAAG,GACRF,GAAI,IACH,CACDtE,KAAM,CAAC,OACPwE,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,IACH,CACDtE,KAAM,CAAC,MACPwE,GAAI,CAAC,EAAG,EAAG,GAAI,IACfF,GAAI,IACH,CACDtE,KAAM,CAAC,MACPwE,GAAI,CAAC,EAAG,GACRF,GAAI,GACH,CACDtE,KAAM,CAAC,MACPwE,GAAI,CAAC,EAAG,EAAG,IACXF,GAAI,IACH,CACDtE,KAAM,CAAC,MACPwE,GAAI,CAAC,EAAG,EAAG,EAAG,GACdF,GAAI,IACH,CACDtE,KAAM,CAAC,KAAM,MACbwE,GAAI,CAAC,EAAG,EAAG,GAAI,IACfF,GAAI,KAEFG,EAAqB,CACvB,EAAG,SAAUt0B,GACX,OAAOmc,OAAOnc,EAAI,EACpB,EACA,EAAG,SAAUA,GACX,OAAOmc,OAAY,GAALnc,EAChB,EACA,EAAG,SAAUA,GACX,OAAO,CACT,EACA,EAAG,SAAUA,GACX,OAAOmc,OAAOnc,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,IAAM,GAAKA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAMA,EAAI,KAAO,IAAM,EAAI,EACvH,EACA,EAAG,SAAUA,GACX,OAAOmc,OAAY,GAALnc,EAAS,EAAS,GAALA,EAAS,EAAS,GAALA,EAAS,EAAIA,EAAI,KAAO,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,KAAO,GAAK,EAAI,EAC/G,EACA,EAAG,SAAUA,GACX,OAAOmc,OAAY,GAALnc,EAAS,EAAIA,GAAK,GAAKA,GAAK,EAAI,EAAI,EACpD,EACA,EAAG,SAAUA,GACX,OAAOmc,OAAY,GAALnc,EAAS,EAAIA,EAAI,IAAM,GAAKA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAMA,EAAI,KAAO,IAAM,EAAI,EACjG,EACA,EAAG,SAAUA,GACX,OAAOmc,OAAY,GAALnc,EAAS,EAAS,GAALA,EAAS,EAAS,GAALA,GAAe,IAALA,EAAU,EAAI,EAClE,EACA,EAAG,SAAUA,GACX,OAAOmc,OAAOnc,GAAK,EACrB,EACA,GAAI,SAAUA,GACZ,OAAOmc,OAAY,GAALnc,EAAS,EAAS,GAALA,EAAS,EAAIA,EAAI,EAAI,EAAIA,EAAI,GAAK,EAAI,EACnE,EACA,GAAI,SAAUA,GACZ,OAAOmc,OAAY,GAALnc,GAAe,IAALA,EAAU,EAAS,GAALA,GAAe,IAALA,EAAU,EAAIA,EAAI,GAAKA,EAAI,GAAK,EAAI,EACtF,EACA,GAAI,SAAUA,GACZ,OAAOmc,OAAOnc,EAAI,IAAM,GAAKA,EAAI,KAAO,GAC1C,EACA,GAAI,SAAUA,GACZ,OAAOmc,OAAa,IAANnc,EAChB,EACA,GAAI,SAAUA,GACZ,OAAOmc,OAAY,GAALnc,EAAS,EAAS,GAALA,EAAS,EAAS,GAALA,EAAS,EAAI,EACvD,EACA,GAAI,SAAUA,GACZ,OAAOmc,OAAOnc,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAMA,EAAI,KAAO,IAAM,EAAI,EACxG,EACA,GAAI,SAAUA,GACZ,OAAOmc,OAAOnc,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAU,IAANA,EAAU,EAAI,EACjE,EACA,GAAI,SAAUA,GACZ,OAAOmc,OAAY,GAALnc,GAAUA,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAI,EAC7D,EACA,GAAI,SAAUA,GACZ,OAAOmc,OAAY,GAALnc,EAAS,EAAS,GAALA,EAAS,EAAI,EAC1C,EACA,GAAI,SAAUA,GACZ,OAAOmc,OAAY,GAALnc,EAAS,EAAS,GAALA,GAAUA,EAAI,IAAM,GAAKA,EAAI,IAAM,GAAK,EAAIA,EAAI,IAAM,IAAMA,EAAI,IAAM,GAAK,EAAI,EAC5G,EACA,GAAI,SAAUA,GACZ,OAAOmc,OAAY,GAALnc,EAAS,EAAS,GAALA,GAAUA,EAAI,IAAM,GAAKA,EAAI,IAAM,GAAK,EAAI,EACzE,EACA,GAAI,SAAUA,GACZ,OAAOmc,OAAOnc,EAAI,KAAO,EAAI,EAAIA,EAAI,KAAO,EAAI,EAAIA,EAAI,KAAO,GAAKA,EAAI,KAAO,EAAI,EAAI,EACzF,EACA,GAAI,SAAUA,GACZ,OAAOmc,OAAY,GAALnc,EAAS,EAAS,GAALA,EAAS,GAAKA,EAAI,GAAKA,EAAI,KAAOA,EAAI,IAAM,EAAI,EAAI,EACjF,GAEF,MAAMu0B,EAAkB,CAAC,KAAM,KAAM,MAC/BC,EAAe,CAAC,MAChBC,EAAgB,CACpBC,KAAM,EACNC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,KAAM,EACNC,MAAO,GAcT,MAAMC,EACJ,WAAAt0B,CAAYqvB,GACV,IAAIn/B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFK,KAAK47B,cAAgBA,EACrB57B,KAAKvD,QAAUA,EACfuD,KAAKyyB,OAASW,EAAW7qB,OAAO,kBAC1BvI,KAAKvD,QAAQqkC,oBAAqBT,EAAa9qB,SAASvV,KAAKvD,QAAQqkC,oBAAwC,oBAATC,MAAyBA,KAAKC,cACtIhhC,KAAKvD,QAAQqkC,kBAAoB,KACjC9gC,KAAKyyB,OAAOxc,MAAM,uJAEpBjW,KAAKihC,MAtBT,WACE,MAAMA,EAAQ,CAAC,EASf,OARAhB,EAAK7uB,SAAQtS,IACXA,EAAI48B,KAAKtqB,SAAQsX,IACfuY,EAAMvY,GAAK,CACTwY,QAASpiC,EAAIohC,GACbiB,QAAShB,EAAmBrhC,EAAIkhC,IACjC,GACD,IAEGiB,CACT,CAWiBG,EACf,CACA,OAAAC,CAAQxP,EAAK9zB,GACXiC,KAAKihC,MAAMpP,GAAO9zB,CACpB,CACA,OAAAujC,CAAQrlC,GACN,IAAIQ,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,GAAIK,KAAKm7B,mBACP,IACE,OAAO,IAAI4F,KAAKC,YAAYjL,EAAwB,QAAT95B,EAAiB,KAAOA,GAAO,CACxEwM,KAAMhM,EAAQw+B,QAAU,UAAY,YAExC,CAAE,MAAOnqB,GACP,MACF,CAEF,OAAO9Q,KAAKihC,MAAMhlC,IAAS+D,KAAKihC,MAAMjhC,KAAK47B,cAAcoD,wBAAwB/iC,GACnF,CACA,WAAAslC,CAAYtlC,GACV,IAAIQ,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAM6hC,EAAOxhC,KAAKshC,QAAQrlC,EAAMQ,GAChC,OAAIuD,KAAKm7B,mBACAqG,GAAQA,EAAKC,kBAAkBC,iBAAiBrmC,OAAS,EAE3DmmC,GAAQA,EAAKN,QAAQ7lC,OAAS,CACvC,CACA,mBAAAsmC,CAAoB1lC,EAAMwC,GACxB,IAAIhC,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAOK,KAAKs8B,YAAYrgC,EAAMQ,GAASqL,KAAI3K,GAAU,GAAGsB,IAAMtB,KAChE,CACA,WAAAm/B,CAAYrgC,GACV,IAAIQ,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAM6hC,EAAOxhC,KAAKshC,QAAQrlC,EAAMQ,GAChC,OAAK+kC,EAGDxhC,KAAKm7B,mBACAqG,EAAKC,kBAAkBC,iBAAiBzW,MAAK,CAAC2W,EAAiBC,IAAoBvB,EAAcsB,GAAmBtB,EAAcuB,KAAkB/5B,KAAIg6B,GAAkB,GAAG9hC,KAAKvD,QAAQslC,UAAUtlC,EAAQw+B,QAAU,UAAUj7B,KAAKvD,QAAQslC,UAAY,KAAKD,MAEhQN,EAAKN,QAAQp5B,KAAIk6B,GAAUhiC,KAAK+6B,UAAU9+B,EAAM+lC,EAAQvlC,KALtD,EAMX,CACA,SAAAs+B,CAAU9+B,EAAM0+B,GACd,IAAIl+B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAM6hC,EAAOxhC,KAAKshC,QAAQrlC,EAAMQ,GAChC,OAAI+kC,EACExhC,KAAKm7B,mBACA,GAAGn7B,KAAKvD,QAAQslC,UAAUtlC,EAAQw+B,QAAU,UAAUj7B,KAAKvD,QAAQslC,UAAY,KAAKP,EAAKS,OAAOtH,KAElG36B,KAAKkiC,yBAAyBV,EAAM7G,IAE7C36B,KAAKyyB,OAAOH,KAAK,6BAA6Br2B,KACvC,GACT,CACA,wBAAAimC,CAAyBV,EAAM7G,GAC7B,MAAMwH,EAAMX,EAAKY,MAAQZ,EAAKL,QAAQxG,GAAS6G,EAAKL,QAAQ7W,KAAK+X,IAAI1H,IACrE,IAAIx9B,EAASqkC,EAAKN,QAAQiB,GACtBniC,KAAKvD,QAAQ6lC,sBAAgD,IAAxBd,EAAKN,QAAQ7lC,QAAoC,IAApBmmC,EAAKN,QAAQ,KAClE,IAAX/jC,EACFA,EAAS,SACW,IAAXA,IACTA,EAAS,KAGb,MAAMolC,EAAe,IAAMviC,KAAKvD,QAAQslC,SAAW5kC,EAAOyO,WAAa5L,KAAKvD,QAAQslC,QAAU5kC,EAAOyO,WAAazO,EAAOyO,WACzH,MAAuC,OAAnC5L,KAAKvD,QAAQqkC,kBACA,IAAX3jC,EAAqB,GACH,iBAAXA,EAA4B,WAAWA,EAAOyO,aAClD22B,IACqC,OAAnCviC,KAAKvD,QAAQqkC,mBAEb9gC,KAAKvD,QAAQ6lC,sBAAgD,IAAxBd,EAAKN,QAAQ7lC,QAAoC,IAApBmmC,EAAKN,QAAQ,GADjFqB,IAIFviC,KAAKvD,QAAQslC,SAAWI,EAAIv2B,WAAa5L,KAAKvD,QAAQslC,QAAUI,EAAIv2B,WAAau2B,EAAIv2B,UAC9F,CACA,gBAAAuvB,GACE,OAAQiF,EAAgB7qB,SAASvV,KAAKvD,QAAQqkC,kBAChD,EAGF,SAAS0B,EAAqBp0B,EAAMq0B,EAAahkC,GAC/C,IAAIm3B,EAAej2B,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,IACnFu2B,IAAsBv2B,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,KAAmBA,UAAU,GACrFwJ,EAviCN,SAA6BiF,EAAMq0B,EAAahkC,GAC9C,MAAMlC,EAAQg4B,EAAQnmB,EAAM3P,GAC5B,YAAcuD,IAAVzF,EACKA,EAEFg4B,EAAQkO,EAAahkC,EAC9B,CAiiCaikC,CAAoBt0B,EAAMq0B,EAAahkC,GAKlD,OAJK0K,GAAQ+sB,GAAsC,iBAARz3B,IACzC0K,EAAOwsB,EAASvnB,EAAM3P,EAAKm3B,QACd5zB,IAATmH,IAAoBA,EAAOwsB,EAAS8M,EAAahkC,EAAKm3B,KAErDzsB,CACT,CACA,MAAMw5B,EACJ,WAAAp2B,GACE,IAAI9P,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFK,KAAKyyB,OAASW,EAAW7qB,OAAO,gBAChCvI,KAAKvD,QAAUA,EACfuD,KAAK4iC,OAASnmC,EAAQu7B,eAAiBv7B,EAAQu7B,cAAc4K,QAAU,CAACrmC,GAASA,GACjFyD,KAAK4xB,KAAKn1B,EACZ,CACA,IAAAm1B,GACE,IAAIn1B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9ElD,EAAQu7B,gBAAev7B,EAAQu7B,cAAgB,CAClD6K,aAAa,IAEf,MACE9N,OAAQ+N,EAAQ,YAChBD,EAAW,oBACXE,EAAmB,OACnB7a,EAAM,cACN8a,EAAa,OACb7lC,EAAM,cACN8lC,EAAa,gBACbC,EAAe,eACfC,EAAc,eACdC,EAAc,cACdC,EAAa,qBACbC,EAAoB,cACpBC,EAAa,qBACbC,EAAoB,wBACpBC,EAAuB,YACvBC,EAAW,aACXC,GACElnC,EAAQu7B,cACZh4B,KAAK+0B,YAAsB/yB,IAAb8gC,EAAyBA,EAAW/N,EAClD/0B,KAAK6iC,iBAA8B7gC,IAAhB6gC,GAA4BA,EAC/C7iC,KAAK+iC,yBAA8C/gC,IAAxB+gC,GAAoCA,EAC/D/iC,KAAKkoB,OAASA,EAAS2M,EAAY3M,GAAU8a,GAAiB,KAC9DhjC,KAAK7C,OAASA,EAAS03B,EAAY13B,GAAU8lC,GAAiB,KAC9DjjC,KAAKkjC,gBAAkBA,GAAmB,IAC1CljC,KAAKojC,eAAiBD,EAAiB,GAAKC,GAAkB,IAC9DpjC,KAAKmjC,eAAiBnjC,KAAKojC,eAAiB,GAAKD,GAAkB,GACnEnjC,KAAKqjC,cAAgBA,EAAgBxO,EAAYwO,GAAiBC,GAAwBzO,EAAY,OACtG70B,KAAKujC,cAAgBA,EAAgB1O,EAAY0O,GAAiBC,GAAwB3O,EAAY,KACtG70B,KAAKyjC,wBAA0BA,GAA2B,IAC1DzjC,KAAK0jC,YAAcA,GAAe,IAClC1jC,KAAK2jC,kBAAgC3hC,IAAjB2hC,GAA6BA,EACjD3jC,KAAK4jC,aACP,CACA,KAAA3G,GACMj9B,KAAKvD,SAASuD,KAAK4xB,KAAK5xB,KAAKvD,QACnC,CACA,WAAAmnC,GACE,MAAMC,EAAmB,CAACC,EAAgBxO,IACpCwO,GAAkBA,EAAerP,SAAWa,GAC9CwO,EAAeC,UAAY,EACpBD,GAEF,IAAIrO,OAAOH,EAAS,KAE7Bt1B,KAAKgkC,OAASH,EAAiB7jC,KAAKgkC,OAAQ,GAAGhkC,KAAKkoB,cAAcloB,KAAK7C,UACvE6C,KAAKikC,eAAiBJ,EAAiB7jC,KAAKikC,eAAgB,GAAGjkC,KAAKkoB,SAASloB,KAAKojC,sBAAsBpjC,KAAKmjC,iBAAiBnjC,KAAK7C,UACnI6C,KAAK64B,cAAgBgL,EAAiB7jC,KAAK64B,cAAe,GAAG74B,KAAKqjC,qBAAqBrjC,KAAKujC,gBAC9F,CACA,WAAAzG,CAAY7U,EAAK7Z,EAAMyjB,EAAKp1B,GAC1B,IAAIE,EACAJ,EACA2nC,EACJ,MAAMzB,EAAcziC,KAAKvD,SAAWuD,KAAKvD,QAAQu7B,eAAiBh4B,KAAKvD,QAAQu7B,cAAcyE,kBAAoB,CAAC,EAClH,SAAS0H,EAAUC,GACjB,OAAOA,EAAIjoC,QAAQ,MAAO,OAC5B,CACA,MAAMkoC,EAAe5lC,IACnB,GAAIA,EAAIqK,QAAQ9I,KAAKkjC,iBAAmB,EAAG,CACzC,MAAM/5B,EAAOq5B,EAAqBp0B,EAAMq0B,EAAahkC,EAAKuB,KAAKvD,QAAQm5B,aAAc51B,KAAKvD,QAAQy5B,qBAClG,OAAOl2B,KAAK2jC,aAAe3jC,KAAK4iC,OAAOz5B,OAAMnH,EAAW6vB,EAAK,IACxDp1B,KACA2R,EACHk2B,iBAAkB7lC,IACf0K,CACP,CACA,MAAMiD,EAAI3N,EAAI4K,MAAMrJ,KAAKkjC,iBACnBnZ,EAAI3d,EAAEspB,QAAQ5lB,OACdyZ,EAAInd,EAAEoD,KAAKxP,KAAKkjC,iBAAiBpzB,OACvC,OAAO9P,KAAK4iC,OAAOJ,EAAqBp0B,EAAMq0B,EAAa1Y,EAAG/pB,KAAKvD,QAAQm5B,aAAc51B,KAAKvD,QAAQy5B,qBAAsB3M,EAAGsI,EAAK,IAC/Hp1B,KACA2R,EACHk2B,iBAAkBva,GAClB,EAEJ/pB,KAAK4jC,cACL,MAAMW,EAA8B9nC,GAAWA,EAAQ8nC,6BAA+BvkC,KAAKvD,QAAQ8nC,4BAC7F5H,EAAkBlgC,GAAWA,EAAQu7B,oBAA2Dh2B,IAA1CvF,EAAQu7B,cAAc2E,gBAAgClgC,EAAQu7B,cAAc2E,gBAAkB38B,KAAKvD,QAAQu7B,cAAc2E,gBA2CrL,MA1Cc,CAAC,CACb6H,MAAOxkC,KAAKikC,eACZQ,UAAWL,GAAOD,EAAUC,IAC3B,CACDI,MAAOxkC,KAAKgkC,OACZS,UAAWL,GAAOpkC,KAAK6iC,YAAcsB,EAAUnkC,KAAK+0B,OAAOqP,IAAQD,EAAUC,KAEzEhzB,SAAQszB,IAEZ,IADAR,EAAW,EACJvnC,EAAQ+nC,EAAKF,MAAM9Z,KAAKzC,IAAM,CACnC,MAAM0c,EAAahoC,EAAM,GAAGmT,OAE5B,GADAvT,EAAQ8nC,EAAaM,QACP3iC,IAAVzF,EACF,GAA2C,mBAAhCgoC,EAA4C,CACrD,MAAMK,EAAOL,EAA4Btc,EAAKtrB,EAAOF,GACrDF,EAAwB,iBAATqoC,EAAoBA,EAAO,EAC5C,MAAO,GAAInoC,GAAWL,OAAOsC,UAAUC,eAAeC,KAAKnC,EAASkoC,GAClEpoC,EAAQ,OACH,IAAIogC,EAAiB,CAC1BpgC,EAAQI,EAAM,GACd,QACF,CACEqD,KAAKyyB,OAAOH,KAAK,8BAA8BqS,uBAAgC1c,KAC/E1rB,EAAQ,EACV,KAC0B,iBAAVA,GAAuByD,KAAK+iC,sBAC5CxmC,EAAQs3B,EAAWt3B,IAErB,MAAMkoC,EAAYC,EAAKD,UAAUloC,GASjC,GARA0rB,EAAMA,EAAI9rB,QAAQQ,EAAM,GAAI8nC,GACxB9H,GACF+H,EAAKF,MAAMT,WAAaxnC,EAAMlB,OAC9BqpC,EAAKF,MAAMT,WAAapnC,EAAM,GAAGtB,QAEjCqpC,EAAKF,MAAMT,UAAY,EAEzBG,IACIA,GAAYlkC,KAAK0jC,YACnB,KAEJ,KAEKzb,CACT,CACA,IAAA+U,CAAK/U,EAAK+X,GACR,IACIrjC,EACAJ,EACAsoC,EAHApoC,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAInF,SAASmlC,EAAiBrmC,EAAKsmC,GAC7B,MAAMC,EAAMhlC,KAAKyjC,wBACjB,GAAIhlC,EAAIqK,QAAQk8B,GAAO,EAAG,OAAOvmC,EACjC,MAAMgqB,EAAIhqB,EAAI4K,MAAM,IAAIosB,OAAO,GAAGuP,WAClC,IAAIC,EAAgB,IAAIxc,EAAE,KAC1BhqB,EAAMgqB,EAAE,GACRwc,EAAgBjlC,KAAK88B,YAAYmI,EAAeJ,GAChD,MAAMK,EAAsBD,EAActoC,MAAM,MAC1CwoC,EAAsBF,EAActoC,MAAM,OAC5CuoC,GAAuBA,EAAoB7pC,OAAS,GAAM,IAAM8pC,GAAuBA,EAAoB9pC,OAAS,GAAM,KAC5H4pC,EAAgBA,EAAc9oC,QAAQ,KAAM,MAE9C,IACE0oC,EAAgBzhC,KAAKC,MAAM4hC,GACvBF,IAAkBF,EAAgB,IACjCE,KACAF,GAEP,CAAE,MAAOvhC,GAEP,OADAtD,KAAKyyB,OAAOH,KAAK,oDAAoD7zB,IAAO6E,GACrE,GAAG7E,IAAMumC,IAAMC,GACxB,CAEA,OADIJ,EAAc1d,cAAgB0d,EAAc1d,aAAare,QAAQ9I,KAAKkoB,SAAW,UAAU2c,EAAc1d,aACtG1oB,CACT,CACA,KAAO9B,EAAQqD,KAAK64B,cAAcnO,KAAKzC,IAAM,CAC3C,IAAImd,EAAa,GACjBP,EAAgB,IACXpoC,GAELooC,EAAgBA,EAAc1oC,SAA4C,iBAA1B0oC,EAAc1oC,QAAuB0oC,EAAc1oC,QAAU0oC,EAC7GA,EAAczH,oBAAqB,SAC5ByH,EAAc1d,aACrB,IAAIke,GAAW,EACf,IAAgD,IAA5C1oC,EAAM,GAAGmM,QAAQ9I,KAAKkjC,mBAA4B,OAAO5pB,KAAK3c,EAAM,IAAK,CAC3E,MAAM+O,EAAI/O,EAAM,GAAG0M,MAAMrJ,KAAKkjC,iBAAiBp7B,KAAIw9B,GAAQA,EAAKx1B,SAChEnT,EAAM,GAAK+O,EAAEgqB,QACb0P,EAAa15B,EACb25B,GAAW,CACb,CAEA,GADA9oC,EAAQyjC,EAAG8E,EAAiBlmC,KAAKoB,KAAMrD,EAAM,GAAGmT,OAAQ+0B,GAAgBA,GACpEtoC,GAASI,EAAM,KAAOsrB,GAAwB,iBAAV1rB,EAAoB,OAAOA,EAC9C,iBAAVA,IAAoBA,EAAQs3B,EAAWt3B,IAC7CA,IACHyD,KAAKyyB,OAAOH,KAAK,qBAAqB31B,EAAM,kBAAkBsrB,KAC9D1rB,EAAQ,IAEN8oC,IACF9oC,EAAQ6oC,EAAWp9B,QAAO,CAAC6hB,EAAGN,IAAMvpB,KAAK4iC,OAAO/Y,EAAGN,EAAG9sB,EAAQo1B,IAAK,IAC9Dp1B,EACH6nC,iBAAkB3nC,EAAM,GAAGmT,UACzBvT,EAAMuT,SAEZmY,EAAMA,EAAI9rB,QAAQQ,EAAM,GAAIJ,GAC5ByD,KAAKgkC,OAAOD,UAAY,CAC1B,CACA,OAAO9b,CACT,EAkCF,SAASsd,EAAsBC,GAC7B,MAAMtnC,EAAQ,CAAC,EACf,OAAO,SAAyBkmC,EAAKvS,EAAKp1B,GACxC,MAAMgC,EAAMozB,EAAMzuB,KAAKI,UAAU/G,GACjC,IAAIgpC,EAAYvnC,EAAMO,GAKtB,OAJKgnC,IACHA,EAAYD,EAAGzP,EAAelE,GAAMp1B,GACpCyB,EAAMO,GAAOgnC,GAERA,EAAUrB,EACnB,CACF,CACA,MAAMsB,EACJ,WAAAn5B,GACE,IAAI9P,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFK,KAAKyyB,OAASW,EAAW7qB,OAAO,aAChCvI,KAAKvD,QAAUA,EACfuD,KAAK2lC,QAAU,CACb3D,OAAQuD,GAAsB,CAAC1T,EAAK+T,KAClC,MAAMH,EAAY,IAAI1E,KAAK8E,aAAahU,EAAK,IACxC+T,IAEL,OAAOxB,GAAOqB,EAAU7C,OAAOwB,EAAI,IAErC0B,SAAUP,GAAsB,CAAC1T,EAAK+T,KACpC,MAAMH,EAAY,IAAI1E,KAAK8E,aAAahU,EAAK,IACxC+T,EACHlmB,MAAO,aAET,OAAO0kB,GAAOqB,EAAU7C,OAAOwB,EAAI,IAErC2B,SAAUR,GAAsB,CAAC1T,EAAK+T,KACpC,MAAMH,EAAY,IAAI1E,KAAKiF,eAAenU,EAAK,IAC1C+T,IAEL,OAAOxB,GAAOqB,EAAU7C,OAAOwB,EAAI,IAErC6B,aAAcV,GAAsB,CAAC1T,EAAK+T,KACxC,MAAMH,EAAY,IAAI1E,KAAKmF,mBAAmBrU,EAAK,IAC9C+T,IAEL,OAAOxB,GAAOqB,EAAU7C,OAAOwB,EAAKwB,EAAIO,OAAS,MAAM,IAEzDC,KAAMb,GAAsB,CAAC1T,EAAK+T,KAChC,MAAMH,EAAY,IAAI1E,KAAKsF,WAAWxU,EAAK,IACtC+T,IAEL,OAAOxB,GAAOqB,EAAU7C,OAAOwB,EAAI,KAGvCpkC,KAAK4xB,KAAKn1B,EACZ,CACA,IAAAm1B,CAAKkG,GAIH,MAAMwO,GAHQ3mC,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAChFq4B,cAAe,CAAC,IAEIA,cACtBh4B,KAAKkjC,gBAAkBoD,EAAMpD,gBAAkBoD,EAAMpD,gBAAkBoD,EAAMpD,iBAAmB,GAClG,CACA,GAAA1oB,CAAIvL,EAAM+wB,GACRhgC,KAAK2lC,QAAQ12B,EAAK/S,cAAc4T,QAAUkwB,CAC5C,CACA,SAAAuG,CAAUt3B,EAAM+wB,GACdhgC,KAAK2lC,QAAQ12B,EAAK/S,cAAc4T,QAAUy1B,EAAsBvF,EAClE,CACA,MAAA4C,CAAOrmC,EAAOqmC,EAAQ/Q,GACpB,IAAIp1B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EA0BnF,OAzBgBijC,EAAOv5B,MAAMrJ,KAAKkjC,iBACXl7B,QAAO,CAACw+B,EAAKjd,KAClC,MAAM,WACJkd,EAAU,cACVC,GAtGR,SAAwBC,GACtB,IAAIF,EAAaE,EAAUzqC,cAAc4T,OACzC,MAAM42B,EAAgB,CAAC,EACvB,GAAIC,EAAU79B,QAAQ,MAAQ,EAAG,CAC/B,MAAMsD,EAAIu6B,EAAUt9B,MAAM,KAC1Bo9B,EAAar6B,EAAE,GAAGlQ,cAAc4T,OAChC,MAAM82B,EAASx6B,EAAE,GAAGjL,UAAU,EAAGiL,EAAE,GAAG/Q,OAAS,GAC5B,aAAforC,GAA6BG,EAAO99B,QAAQ,KAAO,EAChD49B,EAAcZ,WAAUY,EAAcZ,SAAWc,EAAO92B,QACrC,iBAAf22B,GAAiCG,EAAO99B,QAAQ,KAAO,EAC3D49B,EAAcP,QAAOO,EAAcP,MAAQS,EAAO92B,QAE1C82B,EAAOv9B,MAAM,KACrB+H,SAAQw0B,IACX,GAAIA,EAAK,CACP,MAAOnnC,KAAQooC,GAAQjB,EAAIv8B,MAAM,KAC3B+6B,EAAMyC,EAAKr3B,KAAK,KAAKM,OAAO3T,QAAQ,WAAY,IAChD2qC,EAAaroC,EAAIqR,OAClB42B,EAAcI,KAAaJ,EAAcI,GAAc1C,GAChD,UAARA,IAAiBsC,EAAcI,IAAc,GACrC,SAAR1C,IAAgBsC,EAAcI,IAAc,GAC3C/e,MAAMqc,KAAMsC,EAAcI,GAAcC,SAAS3C,EAAK,IAC7D,IAGN,CACA,MAAO,CACLqC,aACAC,gBAEJ,CAyEUM,CAAezd,GACnB,GAAIvpB,KAAK2lC,QAAQc,GAAa,CAC5B,IAAIQ,EAAYT,EAChB,IACE,MAAMU,EAAazqC,GAAWA,EAAQ0qC,cAAgB1qC,EAAQ0qC,aAAa1qC,EAAQ6nC,mBAAqB,CAAC,EACnG5b,EAAIwe,EAAWE,QAAUF,EAAWrV,KAAOp1B,EAAQ2qC,QAAU3qC,EAAQo1B,KAAOA,EAClFoV,EAAYjnC,KAAK2lC,QAAQc,GAAYD,EAAK9d,EAAG,IACxCge,KACAjqC,KACAyqC,GAEP,CAAE,MAAOjxB,GACPjW,KAAKyyB,OAAOH,KAAKrc,EACnB,CACA,OAAOgxB,CACT,CAGA,OAFEjnC,KAAKyyB,OAAOH,KAAK,oCAAoCmU,KAEhDD,CAAG,GACTjqC,EAEL,EASF,MAAM8qC,UAAkBhU,EACtB,WAAA9mB,CAAY+6B,EAASC,EAAOzP,GAC1B,IAAIr7B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFs2B,QACAj2B,KAAKsnC,QAAUA,EACftnC,KAAKunC,MAAQA,EACbvnC,KAAK83B,SAAWA,EAChB93B,KAAK47B,cAAgB9D,EAAS8D,cAC9B57B,KAAKvD,QAAUA,EACfuD,KAAKyyB,OAASW,EAAW7qB,OAAO,oBAChCvI,KAAKwnC,aAAe,GACpBxnC,KAAKynC,iBAAmBhrC,EAAQgrC,kBAAoB,GACpDznC,KAAK0nC,aAAe,EACpB1nC,KAAK2nC,WAAalrC,EAAQkrC,YAAc,EAAIlrC,EAAQkrC,WAAa,EACjE3nC,KAAK4nC,aAAenrC,EAAQmrC,cAAgB,EAAInrC,EAAQmrC,aAAe,IACvE5nC,KAAK+D,MAAQ,CAAC,EACd/D,KAAK6nC,MAAQ,GACT7nC,KAAKsnC,SAAWtnC,KAAKsnC,QAAQ1V,MAC/B5xB,KAAKsnC,QAAQ1V,KAAKkG,EAAUr7B,EAAQ6qC,QAAS7qC,EAEjD,CACA,SAAAqrC,CAAUnsC,EAAWy1B,EAAY30B,EAAS0f,GACxC,MAAM4rB,EAAS,CAAC,EACVC,EAAU,CAAC,EACXC,EAAkB,CAAC,EACnBC,EAAmB,CAAC,EA4B1B,OA3BAvsC,EAAUyV,SAAQygB,IAChB,IAAIsW,GAAmB,EACvB/W,EAAWhgB,SAAQigB,IACjB,MAAMpiB,EAAO,GAAG4iB,KAAOR,KAClB50B,EAAQwoB,QAAUjlB,KAAKunC,MAAMxQ,kBAAkBlF,EAAKR,GACvDrxB,KAAK+D,MAAMkL,GAAQ,EACVjP,KAAK+D,MAAMkL,GAAQ,IAAmC,IAArBjP,KAAK+D,MAAMkL,QAC/BjN,IAAlBgmC,EAAQ/4B,KAAqB+4B,EAAQ/4B,IAAQ,IAEjDjP,KAAK+D,MAAMkL,GAAQ,EACnBk5B,GAAmB,OACGnmC,IAAlBgmC,EAAQ/4B,KAAqB+4B,EAAQ/4B,IAAQ,QAC5BjN,IAAjB+lC,EAAO94B,KAAqB84B,EAAO94B,IAAQ,QAClBjN,IAAzBkmC,EAAiB7W,KAAmB6W,EAAiB7W,IAAM,IACjE,IAEG8W,IAAkBF,EAAgBpW,IAAO,EAAI,KAEhDz1B,OAAOsR,KAAKq6B,GAAQ1sC,QAAUe,OAAOsR,KAAKs6B,GAAS3sC,SACrD2E,KAAK6nC,MAAMl/B,KAAK,CACdq/B,UACAI,aAAchsC,OAAOsR,KAAKs6B,GAAS3sC,OACnCgtC,OAAQ,CAAC,EACT/4B,OAAQ,GACR6M,aAGG,CACL4rB,OAAQ3rC,OAAOsR,KAAKq6B,GACpBC,QAAS5rC,OAAOsR,KAAKs6B,GACrBC,gBAAiB7rC,OAAOsR,KAAKu6B,GAC7BC,iBAAkB9rC,OAAOsR,KAAKw6B,GAElC,CACA,MAAAG,CAAOp5B,EAAM6B,EAAK1C,GAChB,MAAMkE,EAAIrD,EAAK5F,MAAM,KACfwoB,EAAMvf,EAAE,GACR+e,EAAK/e,EAAE,GACTxB,GAAK9Q,KAAK+I,KAAK,gBAAiB8oB,EAAKR,EAAIvgB,GACzC1C,GACFpO,KAAKunC,MAAM7Q,kBAAkB7E,EAAKR,EAAIjjB,OAAMpM,OAAWA,EAAW,CAChE40B,UAAU,IAGd52B,KAAK+D,MAAMkL,GAAQ6B,GAAO,EAAI,EAC9B,MAAMu3B,EAAS,CAAC,EAChBroC,KAAK6nC,MAAMz2B,SAAQqa,KAp9CvB,SAAkB3oB,EAAQqG,EAAMkrB,EAAU/4B,GACxC,MAAM,IACJyC,EAAG,EACHgsB,GACEgK,EAAcjxB,EAAQqG,EAAM/M,QAChC2B,EAAIgsB,GAAKhsB,EAAIgsB,IAAM,GACfzuB,IAAQyC,EAAIgsB,GAAKhsB,EAAIgsB,GAAGzuB,OAAO+4B,IAC9B/4B,GAAQyC,EAAIgsB,GAAGphB,KAAK0rB,EAC3B,CA68CMiU,CAAS7c,EAAE4c,OAAQ,CAACxW,GAAMR,GA/EhC,SAAuB5F,EAAGxc,QACAjN,IAApBypB,EAAEuc,QAAQ/4B,YACLwc,EAAEuc,QAAQ/4B,GACjBwc,EAAE2c,eAEN,CA2EMG,CAAc9c,EAAGxc,GACb6B,GAAK2a,EAAEnc,OAAO3G,KAAKmI,GACA,IAAnB2a,EAAE2c,cAAuB3c,EAAE+c,OAC7BpsC,OAAOsR,KAAK+d,EAAE4c,QAAQj3B,SAAQsX,IACvB2f,EAAO3f,KAAI2f,EAAO3f,GAAK,CAAC,GAC7B,MAAM+f,EAAahd,EAAE4c,OAAO3f,GACxB+f,EAAWptC,QACbotC,EAAWr3B,SAAQvF,SACI7J,IAAjBqmC,EAAO3f,GAAG7c,KAAkBw8B,EAAO3f,GAAG7c,IAAK,EAAI,GAEvD,IAEF4f,EAAE+c,MAAO,EACL/c,EAAEnc,OAAOjU,OACXowB,EAAEtP,SAASsP,EAAEnc,QAEbmc,EAAEtP,WAEN,IAEFnc,KAAK+I,KAAK,SAAUs/B,GACpBroC,KAAK6nC,MAAQ7nC,KAAK6nC,MAAMjrC,QAAO6uB,IAAMA,EAAE+c,MACzC,CACA,IAAA1mC,CAAK+vB,EAAKR,EAAIqX,GACZ,IAAIC,EAAQhpC,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,EAC5EipC,EAAOjpC,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAKK,KAAK4nC,aAChFzrB,EAAWxc,UAAUtE,OAAS,EAAIsE,UAAU,QAAKqC,EACrD,IAAK6vB,EAAIx2B,OAAQ,OAAO8gB,EAAS,KAAM,CAAC,GACxC,GAAInc,KAAK0nC,cAAgB1nC,KAAKynC,iBAS5B,YARAznC,KAAKwnC,aAAa7+B,KAAK,CACrBkpB,MACAR,KACAqX,SACAC,QACAC,OACAzsB,aAIJnc,KAAK0nC,eACL,MAAMmB,EAAW,CAAC/3B,EAAK1C,KAErB,GADApO,KAAK0nC,eACD1nC,KAAKwnC,aAAansC,OAAS,EAAG,CAChC,MAAM6M,EAAOlI,KAAKwnC,aAAa9R,QAC/B11B,KAAK8B,KAAKoG,EAAK2pB,IAAK3pB,EAAKmpB,GAAInpB,EAAKwgC,OAAQxgC,EAAKygC,MAAOzgC,EAAK0gC,KAAM1gC,EAAKiU,SACxE,CACIrL,GAAO1C,GAAQu6B,EAAQ3oC,KAAK2nC,WAC9Bn0B,YAAW,KACTxT,KAAK8B,KAAKlD,KAAKoB,KAAM6xB,EAAKR,EAAIqX,EAAQC,EAAQ,EAAU,EAAPC,EAAUzsB,EAAS,GACnEysB,GAGLzsB,EAASrL,EAAK1C,EAAK,EAEf4xB,EAAKhgC,KAAKsnC,QAAQoB,GAAQloC,KAAKR,KAAKsnC,SAC1C,GAAkB,IAAdtH,EAAG3kC,OAaP,OAAO2kC,EAAGnO,EAAKR,EAAIwX,GAZjB,IACE,MAAMn9B,EAAIs0B,EAAGnO,EAAKR,GACd3lB,GAAuB,mBAAXA,EAAEvD,KAChBuD,EAAEvD,MAAKiG,GAAQy6B,EAAS,KAAMz6B,KAAO4D,MAAM62B,GAE3CA,EAAS,KAAMn9B,EAEnB,CAAE,MAAOoF,GACP+3B,EAAS/3B,EACX,CAIJ,CACA,cAAAg4B,CAAentC,EAAWy1B,GACxB,IAAI30B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Ewc,EAAWxc,UAAUtE,OAAS,EAAIsE,UAAU,QAAKqC,EACrD,IAAKhC,KAAKsnC,QAER,OADAtnC,KAAKyyB,OAAOH,KAAK,kEACVnW,GAAYA,IAEI,iBAAdxgB,IAAwBA,EAAYqE,KAAK47B,cAAcG,mBAAmBpgC,IAC3D,iBAAfy1B,IAAyBA,EAAa,CAACA,IAClD,MAAM2W,EAAS/nC,KAAK8nC,UAAUnsC,EAAWy1B,EAAY30B,EAAS0f,GAC9D,IAAK4rB,EAAOA,OAAO1sC,OAEjB,OADK0sC,EAAOC,QAAQ3sC,QAAQ8gB,IACrB,KAET4rB,EAAOA,OAAO32B,SAAQnC,IACpBjP,KAAK+oC,QAAQ95B,EAAK,GAEtB,CACA,IAAAqwB,CAAK3jC,EAAWy1B,EAAYjV,GAC1Bnc,KAAK8oC,eAAentC,EAAWy1B,EAAY,CAAC,EAAGjV,EACjD,CACA,MAAA8I,CAAOtpB,EAAWy1B,EAAYjV,GAC5Bnc,KAAK8oC,eAAentC,EAAWy1B,EAAY,CACzCnM,QAAQ,GACP9I,EACL,CACA,OAAA4sB,CAAQ95B,GACN,IAAIiZ,EAASvoB,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,GACjF,MAAM2S,EAAIrD,EAAK5F,MAAM,KACfwoB,EAAMvf,EAAE,GACR+e,EAAK/e,EAAE,GACbtS,KAAK8B,KAAK+vB,EAAKR,EAAI,YAAQrvB,OAAWA,GAAW,CAAC8O,EAAK1C,KACjD0C,GAAK9Q,KAAKyyB,OAAOH,KAAK,GAAGpK,sBAA2BmJ,kBAAmBQ,WAAc/gB,IACpFA,GAAO1C,GAAMpO,KAAKyyB,OAAOxL,IAAI,GAAGiB,qBAA0BmJ,kBAAmBQ,IAAOzjB,GACzFpO,KAAKqoC,OAAOp5B,EAAM6B,EAAK1C,EAAK,GAEhC,CACA,WAAAguB,CAAYzgC,EAAWw9B,EAAW16B,EAAKuqC,EAAeC,GACpD,IAAIxsC,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EupC,EAAMvpC,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,OAC9E,GAAIK,KAAK83B,SAAS6F,OAAS39B,KAAK83B,SAAS6F,MAAMC,qBAAuB59B,KAAK83B,SAAS6F,MAAMC,mBAAmBzE,GAC3Gn5B,KAAKyyB,OAAOH,KAAK,qBAAqB7zB,wBAA0B06B,wBAAiC,iOAGnG,GAAI16B,SAA6C,KAARA,EAAzC,CACA,GAAIuB,KAAKsnC,SAAWtnC,KAAKsnC,QAAQ/+B,OAAQ,CACvC,MAAM4gC,EAAO,IACR1sC,EACHwsC,YAEIjJ,EAAKhgC,KAAKsnC,QAAQ/+B,OAAO/H,KAAKR,KAAKsnC,SACzC,GAAItH,EAAG3kC,OAAS,EACd,IACE,IAAIqQ,EAEFA,EADgB,IAAds0B,EAAG3kC,OACD2kC,EAAGrkC,EAAWw9B,EAAW16B,EAAKuqC,EAAeG,GAE7CnJ,EAAGrkC,EAAWw9B,EAAW16B,EAAKuqC,GAEhCt9B,GAAuB,mBAAXA,EAAEvD,KAChBuD,EAAEvD,MAAKiG,GAAQ86B,EAAI,KAAM96B,KAAO4D,MAAMk3B,GAEtCA,EAAI,KAAMx9B,EAEd,CAAE,MAAOoF,GACPo4B,EAAIp4B,EACN,MAEAkvB,EAAGrkC,EAAWw9B,EAAW16B,EAAKuqC,EAAeE,EAAKC,EAEtD,CACKxtC,GAAcA,EAAU,IAC7BqE,KAAKunC,MAAMhR,YAAY56B,EAAU,GAAIw9B,EAAW16B,EAAKuqC,EA5BM,CA6B7D,EAGF,SAAS3qC,IACP,MAAO,CACLq0B,OAAO,EACP0W,eAAe,EACf/X,GAAI,CAAC,eACLC,UAAW,CAAC,eACZQ,YAAa,CAAC,OACdN,YAAY,EACZqN,eAAe,EACfU,0BAA0B,EAC1BD,KAAM,MACN+J,SAAS,EACT/G,sBAAsB,EACtB1M,aAAc,IACduC,YAAa,IACbiD,gBAAiB,IACjB+C,iBAAkB,IAClBmL,yBAAyB,EACzBlN,aAAa,EACbZ,eAAe,EACfM,cAAe,WACfO,oBAAoB,EACpBH,mBAAmB,EACnBqI,6BAA6B,EAC7BrH,aAAa,EACbG,yBAAyB,EACzBgB,YAAY,EACZC,mBAAmB,EACnBpE,eAAe,EACfJ,YAAY,EACZK,uBAAuB,EACvBqC,wBAAwB,EACxBD,6BAA6B,EAC7BnD,yBAAyB,EACzBH,iCAAkC,SAAgBr5B,GAChD,IAAI2pC,EAAM,CAAC,EAIX,GAHuB,iBAAZ3pC,EAAK,KAAiB2pC,EAAM3pC,EAAK,IACrB,iBAAZA,EAAK,KAAiB2pC,EAAIpiB,aAAevnB,EAAK,IAClC,iBAAZA,EAAK,KAAiB2pC,EAAIC,aAAe5pC,EAAK,IAClC,iBAAZA,EAAK,IAAsC,iBAAZA,EAAK,GAAiB,CAC9D,MAAMnD,EAAUmD,EAAK,IAAMA,EAAK,GAChCxD,OAAOsR,KAAKjR,GAAS2U,SAAQ3S,IAC3B8qC,EAAI9qC,GAAOhC,EAAQgC,EAAI,GAE3B,CACA,OAAO8qC,CACT,EACAvR,cAAe,CACb6K,aAAa,EACbD,OAAQrmC,GAASA,EACjB2rB,OAAQ,KACR/qB,OAAQ,KACR+lC,gBAAiB,IACjBE,eAAgB,IAChBC,cAAe,MACfE,cAAe,IACfE,wBAAyB,IACzBC,YAAa,IACb/G,iBAAiB,GAGvB,CACA,SAAS8M,EAAiBhtC,GAOxB,MAN0B,iBAAfA,EAAQ40B,KAAiB50B,EAAQ40B,GAAK,CAAC50B,EAAQ40B,KACvB,iBAAxB50B,EAAQq1B,cAA0Br1B,EAAQq1B,YAAc,CAACr1B,EAAQq1B,cAC1C,iBAAvBr1B,EAAQ+0B,aAAyB/0B,EAAQ+0B,WAAa,CAAC/0B,EAAQ+0B,aACtE/0B,EAAQoiC,eAAiBpiC,EAAQoiC,cAAc/1B,QAAQ,UAAY,IACrErM,EAAQoiC,cAAgBpiC,EAAQoiC,cAAcvjC,OAAO,CAAC,YAEjDmB,CACT,CAEA,SAASitC,IAAQ,CASjB,MAAMC,UAAatW,EACjB,WAAA9mB,GACE,IAAI9P,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Ewc,EAAWxc,UAAUtE,OAAS,EAAIsE,UAAU,QAAKqC,EAXzD,IAA6B4nC,EAoBzB,GARA3T,QACAj2B,KAAKvD,QAAUgtC,EAAiBhtC,GAChCuD,KAAK83B,SAAW,CAAC,EACjB93B,KAAKyyB,OAASW,EACdpzB,KAAK6pC,QAAU,CACbC,SAAU,IAjBaF,EAmBL5pC,KAlBT5D,OAAO2tC,oBAAoB3tC,OAAOkQ,eAAes9B,IACzDx4B,SAAQo1B,IACc,mBAAdoD,EAAKpD,KACdoD,EAAKpD,GAAOoD,EAAKpD,GAAKhmC,KAAKopC,GAC7B,IAeIztB,IAAanc,KAAKgqC,gBAAkBvtC,EAAQwtC,QAAS,CACvD,IAAKjqC,KAAKvD,QAAQ2sC,cAEhB,OADAppC,KAAK4xB,KAAKn1B,EAAS0f,GACZnc,KAETwT,YAAW,KACTxT,KAAK4xB,KAAKn1B,EAAS0f,EAAS,GAC3B,EACL,CACF,CACA,IAAAyV,GACE,IAAInyB,EAAQO,KACZ,IAAIvD,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Ewc,EAAWxc,UAAUtE,OAAS,EAAIsE,UAAU,QAAKqC,EACrDhC,KAAKkqC,gBAAiB,EACC,mBAAZztC,IACT0f,EAAW1f,EACXA,EAAU,CAAC,IAERA,EAAQ60B,YAAmC,IAAtB70B,EAAQ60B,WAAuB70B,EAAQ40B,KACrC,iBAAf50B,EAAQ40B,GACjB50B,EAAQ60B,UAAY70B,EAAQ40B,GACnB50B,EAAQ40B,GAAGvoB,QAAQ,eAAiB,IAC7CrM,EAAQ60B,UAAY70B,EAAQ40B,GAAG,KAGnC,MAAM8Y,EAAU9rC,IAkBhB,SAAS+rC,EAAoBC,GAC3B,OAAKA,EACwB,mBAAlBA,EAAqC,IAAIA,EAC7CA,EAFoB,IAG7B,CACA,GAtBArqC,KAAKvD,QAAU,IACV0tC,KACAnqC,KAAKvD,WACLgtC,EAAiBhtC,IAEgB,OAAlCuD,KAAKvD,QAAQw6B,mBACfj3B,KAAKvD,QAAQu7B,cAAgB,IACxBmS,EAAQnS,iBACRh4B,KAAKvD,QAAQu7B,qBAGSh2B,IAAzBvF,EAAQm5B,eACV51B,KAAKvD,QAAQ67B,wBAA0B77B,EAAQm5B,mBAErB5zB,IAAxBvF,EAAQ07B,cACVn4B,KAAKvD,QAAQ87B,uBAAyB97B,EAAQ07B,cAO3Cn4B,KAAKvD,QAAQwtC,QAAS,CAMzB,IAAIxE,EALAzlC,KAAK6pC,QAAQpX,OACfW,EAAWxB,KAAKwY,EAAoBpqC,KAAK6pC,QAAQpX,QAASzyB,KAAKvD,SAE/D22B,EAAWxB,KAAK,KAAM5xB,KAAKvD,SAGzBuD,KAAK6pC,QAAQpE,UACfA,EAAYzlC,KAAK6pC,QAAQpE,UACA,oBAAT1E,OAChB0E,EAAYC,GAEd,MAAM4E,EAAK,IAAI1L,EAAa5+B,KAAKvD,SACjCuD,KAAKunC,MAAQ,IAAIvR,EAAch2B,KAAKvD,QAAQg1B,UAAWzxB,KAAKvD,SAC5D,MAAM6V,EAAItS,KAAK83B,SACfxlB,EAAEmgB,OAASW,EACX9gB,EAAEisB,cAAgBv+B,KAAKunC,MACvBj1B,EAAEspB,cAAgB0O,EAClBh4B,EAAEwoB,eAAiB,IAAI+F,EAAeyJ,EAAI,CACxCvI,QAAS/hC,KAAKvD,QAAQ2+B,gBACtB0F,kBAAmB9gC,KAAKvD,QAAQqkC,kBAChCwB,qBAAsBtiC,KAAKvD,QAAQ6lC,wBAEjCmD,GAAezlC,KAAKvD,QAAQu7B,cAAc4K,QAAU5iC,KAAKvD,QAAQu7B,cAAc4K,SAAWuH,EAAQnS,cAAc4K,SAClHtwB,EAAEmzB,UAAY2E,EAAoB3E,GAClCnzB,EAAEmzB,UAAU7T,KAAKtf,EAAGtS,KAAKvD,SACzBuD,KAAKvD,QAAQu7B,cAAc4K,OAAStwB,EAAEmzB,UAAU7C,OAAOpiC,KAAK8R,EAAEmzB,YAEhEnzB,EAAEsmB,aAAe,IAAI+J,EAAa3iC,KAAKvD,SACvC6V,EAAEqrB,MAAQ,CACRC,mBAAoB59B,KAAK49B,mBAAmBp9B,KAAKR,OAEnDsS,EAAE6pB,iBAAmB,IAAIkL,EAAU+C,EAAoBpqC,KAAK6pC,QAAQvC,SAAUh1B,EAAEisB,cAAejsB,EAAGtS,KAAKvD,SACvG6V,EAAE6pB,iBAAiB3zB,GAAG,KAAK,SAAU8X,GACnC,IAAK,IAAI5gB,EAAOC,UAAUtE,OAAQuE,EAAO,IAAIC,MAAMH,EAAO,EAAIA,EAAO,EAAI,GAAII,EAAO,EAAGA,EAAOJ,EAAMI,IAClGF,EAAKE,EAAO,GAAKH,UAAUG,GAE7BL,EAAMsJ,KAAKuX,KAAU1gB,EACvB,IACII,KAAK6pC,QAAQU,mBACfj4B,EAAEi4B,iBAAmBH,EAAoBpqC,KAAK6pC,QAAQU,kBAClDj4B,EAAEi4B,iBAAiB3Y,MAAMtf,EAAEi4B,iBAAiB3Y,KAAKtf,EAAGtS,KAAKvD,QAAQ+tC,UAAWxqC,KAAKvD,UAEnFuD,KAAK6pC,QAAQ7P,aACf1nB,EAAE0nB,WAAaoQ,EAAoBpqC,KAAK6pC,QAAQ7P,YAC5C1nB,EAAE0nB,WAAWpI,MAAMtf,EAAE0nB,WAAWpI,KAAK5xB,OAE3CA,KAAKy3B,WAAa,IAAII,EAAW73B,KAAK83B,SAAU93B,KAAKvD,SACrDuD,KAAKy3B,WAAWjvB,GAAG,KAAK,SAAU8X,GAChC,IAAK,IAAIuM,EAAQltB,UAAUtE,OAAQuE,EAAO,IAAIC,MAAMgtB,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGltB,EAAKktB,EAAQ,GAAKntB,UAAUmtB,GAE9BrtB,EAAMsJ,KAAKuX,KAAU1gB,EACvB,IACAI,KAAK6pC,QAAQC,SAAS14B,SAAQ2F,IACxBA,EAAE6a,MAAM7a,EAAE6a,KAAK5xB,KAAK,GAE5B,CAGA,GAFAA,KAAK4iC,OAAS5iC,KAAKvD,QAAQu7B,cAAc4K,OACpCzmB,IAAUA,EAAWutB,GACtB1pC,KAAKvD,QAAQq1B,cAAgB9xB,KAAK83B,SAASyS,mBAAqBvqC,KAAKvD,QAAQo1B,IAAK,CACpF,MAAM6L,EAAQ19B,KAAK83B,SAAS8D,cAAcC,iBAAiB77B,KAAKvD,QAAQq1B,aACpE4L,EAAMriC,OAAS,GAAkB,QAAbqiC,EAAM,KAAc19B,KAAKvD,QAAQo1B,IAAM6L,EAAM,GACvE,CACK19B,KAAK83B,SAASyS,kBAAqBvqC,KAAKvD,QAAQo1B,KACnD7xB,KAAKyyB,OAAOH,KAAK,2DAEF,CAAC,cAAe,oBAAqB,oBAAqB,qBAClElhB,SAAQs3B,IACf1oC,KAAK0oC,GAAU,WACb,OAAOjpC,EAAM8nC,MAAMmB,MAAW/oC,UAChC,CAAC,IAEqB,CAAC,cAAe,eAAgB,oBAAqB,wBAC7DyR,SAAQs3B,IACtB1oC,KAAK0oC,GAAU,WAEb,OADAjpC,EAAM8nC,MAAMmB,MAAW/oC,WAChBF,CACT,CAAC,IAEH,MAAMgrC,EAAWhxB,IACX6lB,EAAO,KACX,MAAMoL,EAAS,CAAC55B,EAAKrF,KACnBzL,KAAKkqC,gBAAiB,EAClBlqC,KAAKgqC,gBAAkBhqC,KAAK2qC,sBAAsB3qC,KAAKyyB,OAAOH,KAAK,yEACvEtyB,KAAKgqC,eAAgB,EAChBhqC,KAAKvD,QAAQwtC,SAASjqC,KAAKyyB,OAAOxL,IAAI,cAAejnB,KAAKvD,SAC/DuD,KAAK+I,KAAK,cAAe/I,KAAKvD,SAC9BguC,EAASpiC,QAAQoD,GACjB0Q,EAASrL,EAAKrF,EAAE,EAElB,GAAIzL,KAAKrE,WAA+C,OAAlCqE,KAAKvD,QAAQw6B,mBAA8Bj3B,KAAKgqC,cAAe,OAAOU,EAAO,KAAM1qC,KAAKyL,EAAEjL,KAAKR,OACrHA,KAAKiyB,eAAejyB,KAAKvD,QAAQo1B,IAAK6Y,EAAO,EAO/C,OALI1qC,KAAKvD,QAAQg1B,YAAczxB,KAAKvD,QAAQ2sC,cAC1C9J,IAEA9rB,WAAW8rB,EAAM,GAEZmL,CACT,CACA,aAAArnB,CAAcxnB,GACZ,IACIgvC,EADWjrC,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK+pC,EAEnF,MAAMnQ,EAA8B,iBAAb39B,EAAwBA,EAAWoE,KAAKpE,SAE/D,GADwB,mBAAbA,IAAyBgvC,EAAehvC,IAC9CoE,KAAKvD,QAAQg1B,WAAazxB,KAAKvD,QAAQ6sC,wBAAyB,CACnE,GAAI/P,GAAqC,WAA1BA,EAAQr9B,iBAAgC8D,KAAKvD,QAAQ4sC,SAA2C,IAAhCrpC,KAAKvD,QAAQ4sC,QAAQhuC,QAAe,OAAOuvC,IAC1H,MAAM7C,EAAS,GACT7pB,EAAS2T,IACb,IAAKA,EAAK,OACV,GAAY,WAARA,EAAkB,OACT7xB,KAAK83B,SAAS8D,cAAcG,mBAAmBlK,GACvDzgB,SAAQsX,IACD,WAANA,GACAqf,EAAOj/B,QAAQ4f,GAAK,GAAGqf,EAAOp/B,KAAK+f,EAAE,GACzC,EAEJ,GAAK6Q,EAIHrb,EAAOqb,OAJK,CACMv5B,KAAK83B,SAAS8D,cAAcC,iBAAiB77B,KAAKvD,QAAQq1B,aAClE1gB,SAAQsX,GAAKxK,EAAOwK,IAChC,CAGI1oB,KAAKvD,QAAQ4sC,SACfrpC,KAAKvD,QAAQ4sC,QAAQj4B,SAAQsX,GAAKxK,EAAOwK,KAE3C1oB,KAAK83B,SAASqE,iBAAiBmD,KAAKyI,EAAQ/nC,KAAKvD,QAAQ40B,IAAI/tB,IACtDA,GAAMtD,KAAK6qC,mBAAoB7qC,KAAKpE,UAAUoE,KAAK8qC,oBAAoB9qC,KAAKpE,UACjFgvC,EAAatnC,EAAE,GAEnB,MACEsnC,EAAa,KAEjB,CACA,eAAAG,CAAgBrP,EAAMrK,EAAIlV,GACxB,MAAMsuB,EAAWhxB,IAQjB,OAPKiiB,IAAMA,EAAO17B,KAAKrE,WAClB01B,IAAIA,EAAKrxB,KAAKvD,QAAQ40B,IACtBlV,IAAUA,EAAWutB,GAC1B1pC,KAAK83B,SAASqE,iBAAiBlX,OAAOyW,EAAMrK,GAAIvgB,IAC9C25B,EAASpiC,UACT8T,EAASrL,EAAI,IAER25B,CACT,CACA,GAAAO,CAAI7jC,GACF,IAAKA,EAAQ,MAAM,IAAIqG,MAAM,iGAC7B,IAAKrG,EAAOsB,KAAM,MAAM,IAAI+E,MAAM,4FAsBlC,MArBoB,YAAhBrG,EAAOsB,OACTzI,KAAK6pC,QAAQvC,QAAUngC,IAEL,WAAhBA,EAAOsB,MAAqBtB,EAAO8f,KAAO9f,EAAOmrB,MAAQnrB,EAAO8O,SAClEjW,KAAK6pC,QAAQpX,OAAStrB,GAEJ,qBAAhBA,EAAOsB,OACTzI,KAAK6pC,QAAQU,iBAAmBpjC,GAEd,eAAhBA,EAAOsB,OACTzI,KAAK6pC,QAAQ7P,WAAa7yB,GAER,kBAAhBA,EAAOsB,MACT4uB,EAAcE,iBAAiBpwB,GAEb,cAAhBA,EAAOsB,OACTzI,KAAK6pC,QAAQpE,UAAYt+B,GAEP,aAAhBA,EAAOsB,MACTzI,KAAK6pC,QAAQC,SAASnhC,KAAKxB,GAEtBnH,IACT,CACA,mBAAA8qC,CAAoBpiB,GAClB,GAAKA,GAAM1oB,KAAKrE,aACZ,CAAC,SAAU,OAAOmN,QAAQ4f,IAAM,GACpC,IAAK,IAAIuiB,EAAK,EAAGA,EAAKjrC,KAAKrE,UAAUN,OAAQ4vC,IAAM,CACjD,MAAMC,EAAYlrC,KAAKrE,UAAUsvC,GACjC,KAAI,CAAC,SAAU,OAAOniC,QAAQoiC,IAAc,IACxClrC,KAAKunC,MAAMpQ,4BAA4B+T,GAAY,CACrDlrC,KAAK6qC,iBAAmBK,EACxB,KACF,CACF,CACF,CACA,cAAAjZ,CAAeJ,EAAK1V,GAClB,IAAIuG,EAAS1iB,KACbA,KAAKmrC,qBAAuBtZ,EAC5B,MAAM4Y,EAAWhxB,IACjBzZ,KAAK+I,KAAK,mBAAoB8oB,GAC9B,MAAMuZ,EAAc1iB,IAClB1oB,KAAKpE,SAAW8sB,EAChB1oB,KAAKrE,UAAYqE,KAAK83B,SAAS8D,cAAcG,mBAAmBrT,GAChE1oB,KAAK6qC,sBAAmB7oC,EACxBhC,KAAK8qC,oBAAoBpiB,EAAE,EAEvB8f,EAAO,CAAC13B,EAAK4X,KACbA,GACF0iB,EAAY1iB,GACZ1oB,KAAKy3B,WAAWxF,eAAevJ,GAC/B1oB,KAAKmrC,0BAAuBnpC,EAC5BhC,KAAK+I,KAAK,kBAAmB2f,GAC7B1oB,KAAKyyB,OAAOxL,IAAI,kBAAmByB,IAEnC1oB,KAAKmrC,0BAAuBnpC,EAE9ByoC,EAASpiC,SAAQ,WACf,OAAOqa,EAAOjX,KAAK9L,UACrB,IACIwc,GAAUA,EAASrL,GAAK,WAC1B,OAAO4R,EAAOjX,KAAK9L,UACrB,GAAE,EAEE0rC,EAAS3P,IACR7J,GAAQ6J,IAAQ17B,KAAK83B,SAASyS,mBAAkB7O,EAAO,IAC5D,MAAMhT,EAAoB,iBAATgT,EAAoBA,EAAO17B,KAAK83B,SAAS8D,cAAc4D,sBAAsB9D,GAC1FhT,IACG1oB,KAAKpE,UACRwvC,EAAY1iB,GAET1oB,KAAKy3B,WAAW77B,UAAUoE,KAAKy3B,WAAWxF,eAAevJ,GAC1D1oB,KAAK83B,SAASyS,kBAAoBvqC,KAAK83B,SAASyS,iBAAiBe,mBAAmBtrC,KAAK83B,SAASyS,iBAAiBe,kBAAkB5iB,IAE3I1oB,KAAKojB,cAAcsF,GAAG5X,IACpB03B,EAAK13B,EAAK4X,EAAE,GACZ,EAaJ,OAXKmJ,IAAO7xB,KAAK83B,SAASyS,kBAAqBvqC,KAAK83B,SAASyS,iBAAiBgB,OAElE1Z,GAAO7xB,KAAK83B,SAASyS,kBAAoBvqC,KAAK83B,SAASyS,iBAAiBgB,MAC7B,IAAjDvrC,KAAK83B,SAASyS,iBAAiBiB,OAAOnwC,OACxC2E,KAAK83B,SAASyS,iBAAiBiB,SAASrjC,KAAKkjC,GAE7CrrC,KAAK83B,SAASyS,iBAAiBiB,OAAOH,GAGxCA,EAAOxZ,GARPwZ,EAAOrrC,KAAK83B,SAASyS,iBAAiBiB,UAUjCf,CACT,CACA,SAAAgB,CAAU5Z,EAAKR,EAAIqa,GACjB,IAAIC,EAAS3rC,KACb,MAAM4rC,EAAS,SAAUntC,EAAK0qC,GAC5B,IAAI1sC,EACJ,GAAoB,iBAAT0sC,EAAmB,CAC5B,IAAK,IAAIxW,EAAQhzB,UAAUtE,OAAQwrC,EAAO,IAAIhnC,MAAM8yB,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGiU,EAAKjU,EAAQ,GAAKjzB,UAAUizB,GAE9Bn2B,EAAUkvC,EAAOlvC,QAAQw8B,iCAAiC,CAACx6B,EAAK0qC,GAAM7tC,OAAOurC,GAC/E,MACEpqC,EAAU,IACL0sC,GAGP1sC,EAAQo1B,IAAMp1B,EAAQo1B,KAAO+Z,EAAO/Z,IACpCp1B,EAAQi/B,KAAOj/B,EAAQi/B,MAAQkQ,EAAOlQ,KACtCj/B,EAAQ40B,GAAK50B,EAAQ40B,IAAMua,EAAOva,GAClC50B,EAAQivC,UAAYjvC,EAAQivC,WAAaA,GAAaE,EAAOF,UAC7D,MAAM9V,EAAe+V,EAAOlvC,QAAQm5B,cAAgB,IACpD,IAAIiW,EAMJ,OAJEA,EADEpvC,EAAQivC,WAAa7rC,MAAMy2B,QAAQ73B,GACzBA,EAAIqJ,KAAIiiB,GAAK,GAAGttB,EAAQivC,YAAY9V,IAAe7L,MAEnDttB,EAAQivC,UAAY,GAAGjvC,EAAQivC,YAAY9V,IAAen3B,IAAQA,EAEzEktC,EAAOlgC,EAAEogC,EAAWpvC,EAC7B,EAQA,MAPmB,iBAARo1B,EACT+Z,EAAO/Z,IAAMA,EAEb+Z,EAAOlQ,KAAO7J,EAEhB+Z,EAAOva,GAAKA,EACZua,EAAOF,UAAYA,EACZE,CACT,CACA,CAAAngC,GACE,OAAOzL,KAAKy3B,YAAcz3B,KAAKy3B,WAAWsB,aAAap5B,UACzD,CACA,MAAAo4B,GACE,OAAO/3B,KAAKy3B,YAAcz3B,KAAKy3B,WAAWM,UAAUp4B,UACtD,CACA,mBAAAmsC,CAAoBza,GAClBrxB,KAAKvD,QAAQ60B,UAAYD,CAC3B,CACA,kBAAAuM,CAAmBvM,GACjB,IAAI50B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,IAAKK,KAAKgqC,cAER,OADAhqC,KAAKyyB,OAAOH,KAAK,kDAAmDtyB,KAAKrE,YAClE,EAET,IAAKqE,KAAKrE,YAAcqE,KAAKrE,UAAUN,OAErC,OADA2E,KAAKyyB,OAAOH,KAAK,6DAA8DtyB,KAAKrE,YAC7E,EAET,MAAMk2B,EAAMp1B,EAAQo1B,KAAO7xB,KAAK6qC,kBAAoB7qC,KAAKrE,UAAU,GAC7Dm2B,IAAc9xB,KAAKvD,SAAUuD,KAAKvD,QAAQq1B,YAC1Cia,EAAU/rC,KAAKrE,UAAUqE,KAAKrE,UAAUN,OAAS,GACvD,GAA0B,WAAtBw2B,EAAI31B,cAA4B,OAAO,EAC3C,MAAM8vC,EAAiB,CAACtjB,EAAG7c,KACzB,MAAMogC,EAAYjsC,KAAK83B,SAASqE,iBAAiBp4B,MAAM,GAAG2kB,KAAK7c,KAC/D,OAAsB,IAAfogC,GAAkC,IAAdA,CAAe,EAE5C,GAAIxvC,EAAQyvC,SAAU,CACpB,MAAMC,EAAY1vC,EAAQyvC,SAASlsC,KAAMgsC,GACzC,QAAkBhqC,IAAdmqC,EAAyB,OAAOA,CACtC,CACA,QAAInsC,KAAK+2B,kBAAkBlF,EAAKR,OAC3BrxB,KAAK83B,SAASqE,iBAAiBmL,WAAWtnC,KAAKvD,QAAQg1B,WAAczxB,KAAKvD,QAAQ6sC,8BACnF0C,EAAena,EAAKR,IAASS,IAAeka,EAAeD,EAAS1a,IAE1E,CACA,cAAA+a,CAAe/a,EAAIlV,GACjB,MAAMsuB,EAAWhxB,IACjB,OAAKzZ,KAAKvD,QAAQ40B,IAIA,iBAAPA,IAAiBA,EAAK,CAACA,IAClCA,EAAGjgB,SAAQvF,IACL7L,KAAKvD,QAAQ40B,GAAGvoB,QAAQ+C,GAAK,GAAG7L,KAAKvD,QAAQ40B,GAAG1oB,KAAKkD,EAAE,IAE7D7L,KAAKojB,eAActS,IACjB25B,EAASpiC,UACL8T,GAAUA,EAASrL,EAAI,IAEtB25B,IAXDtuB,GAAUA,IACP/T,QAAQC,UAWnB,CACA,aAAAgkC,CAAc3Q,EAAMvf,GAClB,MAAMsuB,EAAWhxB,IACG,iBAATiiB,IAAmBA,EAAO,CAACA,IACtC,MAAM4Q,EAAYtsC,KAAKvD,QAAQ4sC,SAAW,GACpCkD,EAAU7Q,EAAK9+B,QAAOi1B,GAAOya,EAAUxjC,QAAQ+oB,GAAO,GAAK7xB,KAAK83B,SAAS8D,cAAcyD,gBAAgBxN,KAC7G,OAAK0a,EAAQlxC,QAIb2E,KAAKvD,QAAQ4sC,QAAUiD,EAAUhxC,OAAOixC,GACxCvsC,KAAKojB,eAActS,IACjB25B,EAASpiC,UACL8T,GAAUA,EAASrL,EAAI,IAEtB25B,IARDtuB,GAAUA,IACP/T,QAAQC,UAQnB,CACA,GAAAmkC,CAAI3a,GAEF,GADKA,IAAKA,EAAM7xB,KAAK6qC,mBAAqB7qC,KAAKrE,WAAaqE,KAAKrE,UAAUN,OAAS,EAAI2E,KAAKrE,UAAU,GAAKqE,KAAKpE,YAC5Gi2B,EAAK,MAAO,MACjB,MACM+J,EAAgB57B,KAAK83B,UAAY93B,KAAK83B,SAAS8D,eAAiB,IAAIgD,EAAavgC,KACvF,MAFgB,CAAC,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,OAEnayK,QAAQ8yB,EAAcoD,wBAAwBnN,KAAS,GAAKA,EAAI31B,cAAc4M,QAAQ,SAAW,EAAI,MAAQ,KAC9H,CACA,qBAAO6oB,GAGL,OAAO,IAAIgY,EAFGhqC,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACpEA,UAAUtE,OAAS,EAAIsE,UAAU,QAAKqC,EAEvD,CACA,aAAAyqC,GACE,IAAIhwC,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Ewc,EAAWxc,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK+pC,EACnF,MAAMgD,EAAoBjwC,EAAQiwC,kBAC9BA,UAA0BjwC,EAAQiwC,kBACtC,MAAMC,EAAgB,IACjB3sC,KAAKvD,WACLA,EAEDwtC,SAAS,GAGP9W,EAAQ,IAAIwW,EAAKgD,QACD3qC,IAAlBvF,EAAQi2B,YAA0C1wB,IAAnBvF,EAAQyrB,SACzCiL,EAAMV,OAASU,EAAMV,OAAOU,MAAM12B,IA4BpC,MA1BsB,CAAC,QAAS,WAAY,YAC9B2U,SAAQ2F,IACpBoc,EAAMpc,GAAK/W,KAAK+W,EAAE,IAEpBoc,EAAM2E,SAAW,IACZ93B,KAAK83B,UAEV3E,EAAM2E,SAAS6F,MAAQ,CACrBC,mBAAoBzK,EAAMyK,mBAAmBp9B,KAAK2yB,IAEhDuZ,IACFvZ,EAAMoU,MAAQ,IAAIvR,EAAch2B,KAAKunC,MAAMn5B,KAAMu+B,GACjDxZ,EAAM2E,SAASyG,cAAgBpL,EAAMoU,OAEvCpU,EAAMsE,WAAa,IAAII,EAAW1E,EAAM2E,SAAU6U,GAClDxZ,EAAMsE,WAAWjvB,GAAG,KAAK,SAAU8X,GACjC,IAAK,IAAIwS,EAAQnzB,UAAUtE,OAAQuE,EAAO,IAAIC,MAAMizB,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGnzB,EAAKmzB,EAAQ,GAAKpzB,UAAUozB,GAE9BI,EAAMpqB,KAAKuX,KAAU1gB,EACvB,IACAuzB,EAAMvB,KAAK+a,EAAexwB,GAC1BgX,EAAMsE,WAAWh7B,QAAUkwC,EAC3BxZ,EAAMsE,WAAW0E,iBAAiBrE,SAAS6F,MAAQ,CACjDC,mBAAoBzK,EAAMyK,mBAAmBp9B,KAAK2yB,IAE7CA,CACT,CACA,MAAAiE,GACE,MAAO,CACL36B,QAASuD,KAAKvD,QACd8qC,MAAOvnC,KAAKunC,MACZ3rC,SAAUoE,KAAKpE,SACfD,UAAWqE,KAAKrE,UAChBkvC,iBAAkB7qC,KAAK6qC,iBAE3B,EAEF,MAAMxvB,EAAWsuB,EAAKhY,iBACtBtW,EAASsW,eAAiBgY,EAAKhY,eAE/BxqB,EAAO7K,QAAU+e,kCC9xEjBlU,EAAO7K,QA5BS,SAASswC,EAAWhK,EAAQ5tB,EAAG8N,EAAG2F,EAAGa,EAAGhmB,EAAGimB,GAOzD,IAAKqjB,EAAW,CACd,IAAI32B,EACJ,QAAejU,IAAX4gC,EACF3sB,EAAQ,IAAIzI,MACV,qIAGG,CACL,IAAI5N,EAAO,CAACoV,EAAG8N,EAAG2F,EAAGa,EAAGhmB,EAAGimB,GACvBsjB,EAAW,GACf52B,EAAQ,IAAIzI,MACVo1B,EAAOzmC,QAAQ,OAAO,WAAa,OAAOyD,EAAKitC,IAAa,MAExD59B,KAAO,qBACf,CAGA,MADAgH,EAAM62B,YAAc,EACd72B,CACR,CACF,oCC7CA,SAASyzB,IAEL,IADA,IAAI9pC,EAAO,GACFojB,EAAK,EAAGA,EAAKrjB,UAAUtE,OAAQ2nB,IACpCpjB,EAAKojB,GAAMrjB,UAAUqjB,EAE7B,CACA,SAAS+pB,IACL,MAAuB,oBAAZ7tC,QACA,IAAIA,QAUR,CACHsb,IAAKkvB,EACL/0B,OAAQ+0B,EACRrrC,IAAKqrC,EACL5qC,IAAK4qC,EACLtrC,IAAK,SAAU2rB,GACX,OAAO,CACX,EAZR,yDAgBA,IAAIijB,EAAM5wC,OAAOsC,UAAUC,eACvBP,EAAM,SAAUL,EAAK42B,GACrB,OAAOqY,EAAIpuC,KAAKb,EAAK42B,EACzB,EAEA,SAASsY,EAAO9xC,EAAQs5B,GACpB,IAAK,IAAIE,KAAQF,EACTr2B,EAAIq2B,EAAQE,KACZx5B,EAAOw5B,GAAQF,EAAOE,IAG9B,OAAOx5B,CACX,CACA,IAAI+xC,EAAmB,wBACnBC,EAAoB,wBACpBC,EAA+B,gBAC/BC,EAAsB,yCACtBC,EAAwC,2BAC5C,SAASC,EAAcC,EAASC,EAA4ChxC,GAGxE,IAAIixC,EAAmB,EACnB/wC,EAAQ6wC,EAAQ,GAAG7wC,MAAM0wC,GACzB1wC,IACA+wC,EAAmB/wC,EAAM,GAAGtB,QAEhC,IACIsyC,EAAgB,IAAIlY,OADT,uBAAyBiY,EAAmB,IAClB,KACrCD,IACAD,EAAUA,EAAQjyC,MAAM,IAE5B,IAAIqyC,EAAUnxC,EAAQmxC,QAASC,EAAqBpxC,EAAQoxC,mBAAoBC,EAAsBrxC,EAAQqxC,oBAC1GC,EAAuC,iBAAZH,EAC3BllB,EAAI8kB,EAAQnyC,OAkBhB,OAjBuBmyC,EAAQ1lC,KAAI,SAAU+hB,EAAG9G,GAe5C,OAbA8G,EAAIA,EAAE1tB,QAAQwxC,EAAe,MAEnB,IAAN5qB,GAAW8qB,IACXhkB,EAAIA,EAAE1tB,QAAQ+wC,EAAkB,KAGhCnqB,IAAM2F,EAAI,GAAKolB,IACfjkB,EAAIA,EAAE1tB,QAAQgxC,EAAmB,KAGjCY,IACAlkB,EAAIA,EAAE1tB,QAAQ,eAAe,SAAU6uB,GAAK,OAAO4iB,CAAS,KAEzD/jB,CACX,GAEJ,CAqEA,IAAImkB,EAjDJ,SAASrc,EAAel1B,GAEpB,IAAIwxC,EAAuBlB,IAKvBmB,EAAkCnB,IAmClCoB,EAAclB,GAlClB,SAASmB,EAAQC,GAEb,IADA,IAlBwBxkB,EAkBpBjT,EAAS,GACJoM,EAAK,EAAGA,EAAKrjB,UAAUtE,OAAQ2nB,IACpCpM,EAAOoM,EAAK,GAAKrjB,UAAUqjB,GAG/B,GAtBG5kB,EADqByrB,EAuBGwkB,EAtBjB,QAAUjwC,EAAIyrB,EAAG,UAsBmB,CAC1C,IAAI2jB,EAAUa,EAEVZ,GAA8C72B,EAAO,KAAOw3B,GAAWx3B,EAAO,KAAOo3B,IACrFV,EAAsCh0B,KAAKk0B,EAAQ,KACnDJ,EAA6B9zB,KAAKk0B,EAAQ,IAE1CtvC,EAAQuvC,EACNS,EACAD,EACFK,EAAgBpwC,EAAMG,IAAImvC,GAM9B,GALKc,IACDA,EAAgBf,EAAcC,EAASC,EAA4ChxC,GACnFyB,EAAMY,IAAI0uC,EAASc,IAGD,IAAlB13B,EAAOvb,OACP,OAAOizC,EAAc,GAGzB,IAAIC,EArDhB,SAAgCf,EAAS52B,GAErC,IADA,IAAI2yB,EAAM,GACDxmB,EAAI,EAAG2F,EAAI8kB,EAAQnyC,OAAQ0nB,EAAI2F,EAAG3F,IACvCwmB,GAAOiE,EAAQzqB,GACXA,EAAI2F,EAAI,IACR6gB,GAAO3yB,EAAOmM,IAGtB,OAAOwmB,CACX,CA4C2BiF,CAAuBF,EAAeb,EAA6C72B,EAAOrb,MAAM,GAAKqb,GACpH,OAAO23B,CACX,CAGI,OAAO5c,EAAesb,EAAOA,EAAO,CAAC,EAAGxwC,GAAU4xC,GAAoB,CAAC,GAE/E,GACkC,CAC9BnzC,OAAQ,SAAU+sB,GACd,OAAOslB,EAAc,CAACtlB,IAAM,EAAOxrB,GAAS,EAChD,IAEJ,OAAO0xC,CACX,CACqBxc,CAAe,CAChCkc,oBAAoB,EACpBC,qBAAqB,IAIzB,YAMI,IACI3mC,EAAO7K,QAAU0xC,EACjB5xC,OAAOC,eAAe2xC,EAAgB,aAAc,CAAEzxC,OAAO,IAC7DyxC,EAAe/vC,QAAU+vC,EACzBA,EAAeI,QAAUJ,CAC7B,CACA,MAAO1qC,GAAK,0CChKCymB,EAAE,EAAQ,OAASrB,EAAE,CAAC+lB,QAAO,GAAI5iC,EAAE,IAAIrC,IAAI4C,EAAEsiC,OAAOC,IAAI,iBAAiBljB,EAAEijB,OAAOC,IAAI,cAAcjjC,EAAEgjC,OAAOC,IAAI,uBAAuBljC,EAAEse,EAAE6kB,mDAAmDC,gBAAkF,SAAShlB,EAAE7U,EAAE8N,EAAE2F,GAAGzoB,KAAK8uC,QAAQ95B,EAAEhV,KAAK+uC,OAAOjsB,EAAE9iB,KAAKgvC,UAAUvmB,CAAC,CACjW,SAAS0B,EAAEnV,GAAG,OAAOA,EAAE85B,SAAS,KAAK,EAAE,OAAO95B,EAAE+5B,OAAO,KAAK,EAAE,IAAIjsB,EAAE1f,KAAKC,MAAM2R,EAAE+5B,OAAO/5B,EAAEg6B,UAAUC,WAAuB,OAAZj6B,EAAE85B,QAAQ,EAAS95B,EAAE+5B,OAAOjsB,EAAE,KAAK,EAAa,IAAI,IAAI2F,GAAnB3F,EAAE9N,EAAE+5B,QAAmBG,OAAO5lB,EAAE,EAAEA,EAAEb,EAAEptB,OAAOiuB,IAAI,CAAC,IAAIhmB,EAAEuI,EAAExN,IAAIoqB,EAAEa,IAAI,GAAG,OAAOhmB,EAAE,MAAMA,CAAE,CAAyG,OAAxGmlB,EAAE0mB,EAAoBrsB,EAAEhW,IAAIgW,EAAE,MAAMA,EAAE7T,KAAKwZ,EAAE,KAAK3F,EAAE7T,KAAKwZ,EAAE/qB,WAAW+qB,EAAExqB,QAAQwqB,EAAEA,EAAE3F,EAAE7T,MAAM+F,EAAE85B,QAAQ,EAAS95B,EAAE+5B,OAAOjsB,EAAE,KAAK,EAAE,MAAM9N,EAAE,QAAQ,MAAMA,EAAE+5B,OAAQ,CAAC,SAASnkB,IAAoB,OAAOT,EAAjBX,EAAExpB,KAAK,GAAc,CAAC,SAASqtB,EAAErY,EAAE8N,GAAG,OAAO,IAAI+G,EAAE,EAAE/G,EAAE9N,EAAE,CAC3d,SAAS8W,EAAE9W,GAAG,GAAG,OAAOA,EAAE,IAAI,IAAI8N,EAAE,EAAEA,EAAE9N,EAAE3Z,OAAOynB,KAAI,EAAG9N,EAAE8N,KAAK,CAAC,SAASoH,EAAElV,EAAE8N,GAAG,GAAG,IAAI9N,EAAE85B,QAAQ,CAAC,IAAIrmB,EAAEzT,EAAE+5B,OAAO/5B,EAAE85B,QAAQ,EAAE95B,EAAE+5B,OAAOjsB,EAAEgJ,EAAErD,EAAE,CAAC,CAAC,SAAS2C,EAAEpW,EAAE8N,GAAG9N,EAAEo6B,QAAQh+B,SAAQ,SAAS4D,GAAGkV,EAAElV,EAAE8N,EAAE,GAAE,CAAC,SAAS0G,EAAExU,EAAE8N,GAAG,IAAI2F,EAAEzT,EAAEo6B,QAAQ9lB,EAAEb,EAAEpqB,IAAIykB,GAAqC,OAAlCwG,IAAIA,EAAE,IAAIO,EAAE,EAAE,KAAK7U,GAAGyT,EAAE3pB,IAAIgkB,EAAEwG,IAAWA,CAAC,CAC3B,SAASqD,EAAE3X,GAAGoW,EAAEpW,EAAExH,MAAM,sBAAsB,CAC7S,SAAS8f,EAAEtY,EAAE8N,GAAG,GAAG,KAAKA,EAAE,CAAC,IAAI2F,EAAE3F,EAAE,GAAGwG,EAAExG,EAAEha,QAAQ,IAAI,GAAGxF,EAAEyjC,SAASjkB,EAAE3hB,UAAU,EAAEmoB,GAAG,IAAuB,OAAnBA,EAAExG,EAAE3hB,UAAUmoB,EAAE,GAAUb,GAAG,IAAK,KAAiBA,GAAb3F,EAAE9N,EAAEo6B,SAAa/wC,IAAIiF,IAAI,IAAImlB,EAAEqmB,UAAU95B,EAAEyT,EAAEsmB,OAAOtmB,EAAEqmB,QAAQ,EAAErmB,EAAEsmB,OAAOzlB,EAAEwC,EAAE9W,IAAI8N,EAAEhkB,IAAIwE,EAAE,IAAIumB,EAAE,EAAEP,EAAEtU,IAAI,MAAM,IAAK,IAAgByT,GAAZ3F,EAAE9N,EAAEo6B,SAAY/wC,IAAIiF,GAAGgmB,EAAElmB,KAAKC,MAAMimB,EAAEtU,EAAEi6B,WAAW,IAAI1lB,EAAEvU,EAAEq6B,eAAqC9lB,GAAtBD,EAAEC,EAAEA,EAAED,EAAExc,IAAIwc,EAAEra,MAAMqa,GAAM4lB,OAAO,IAAI,IAAI7lB,EAAE,EAAEA,EAAEE,EAAEluB,OAAOguB,IAAI,CAAC,IAAIO,EAAEL,EAAEF,GAAG,QAAG,IAASxd,EAAExN,IAAIurB,GAAG,CAAC,IAAIgC,EAAE,IAAuBhC,GAAG7S,EAAElL,EAAE/M,IAAI0B,KAAKqL,EAAE+d,EAAE,MAAM2D,EAAE1hB,EAAE/M,IAAI0B,KAAKqL,EAAE+d,GAAGgC,EAAEzjB,KAAK4O,EAAEwW,GAAG1hB,EAAE/M,IAAI8qB,EACxfgC,EAAE,CAAC,CAACnD,EAAE,IAAIA,EAAEqmB,UAAU95B,EAAEyT,EAAEsmB,OAAOtmB,EAAEqmB,QAAQ,EAAErmB,EAAEsmB,OAAOzlB,EAAEwC,EAAE9W,IAAI8N,EAAEhkB,IAAIwE,EAAE,IAAIumB,EAAE,EAAEP,EAAEtU,IAAI,MAAM,IAAK,IAAIA,EAAEo6B,QAAQtwC,IAAIwE,EAAE+pB,EAAErY,EAL2G,SAAWA,GAA2C,OAAxCvJ,EAAEuJ,KAAKvJ,EAAEuJ,GAAG+U,EAAE3C,oBAAoBpS,EAAEtJ,IAAWD,EAAEuJ,EAAE,CAK1K2T,CAAEW,GAAG/mB,WAAW,MAAM,IAAK,IAAIkmB,EAAErlB,KAAKC,MAAMimB,GAAGtU,EAAEo6B,QAAQtwC,IAAIwE,EAAE+pB,EAAErY,EAAE05B,OAAOC,IAAIlmB,KAAK,MAAM,IAAK,IAAI3F,EAAE1f,KAAKC,MAAMimB,IAAGb,EAAEjb,MAAMsV,EAAEpT,UAAWD,MAAMqT,EAAErT,OAAmB6Z,GAAbxG,EAAE9N,EAAEo6B,SAAa/wC,IAAIiF,IAAI4mB,EAAEZ,EAAEb,GAAG3F,EAAEhkB,IAAIwE,EAAE,IAAIumB,EAAE,EAAEpB,EAAEzT,IAAI,MAAM,QAAQ,MAAMxH,MAAM,8EAA+E,CAAC,CAC5a,SAAS4f,EAAEpY,GAAG,OAAO,SAAS8N,EAAE2F,GAAG,MAAM,iBAAkBA,EAH3D,SAAWzT,EAAE8N,EAAE2F,GAAG,OAAOA,EAAE,IAAI,IAAK,IAAI,MAAG,MAAMA,EAASrc,EAAK,MAAMqc,EAAE,IAAI,MAAMA,EAAE,GAAUA,EAAEtnB,UAAU,GAAiDgpB,EAAhBnV,EAAEwU,EAAExU,EAAhC+xB,SAASte,EAAEtnB,UAAU,GAAG,MAAyB,IAAK,IAAI,OAAqC6T,EAAEwU,EAAExU,EAAhC+xB,SAASte,EAAEtnB,UAAU,GAAG,KAAa,CAACmuC,SAAS7jB,EAAE8jB,SAASv6B,EAAEw6B,MAAMrlB,GAAG,OAAO1B,CAAC,CAGjMiB,CAAE1U,EAAEhV,EAAKyoB,GAAG,iBAAkBA,GAAG,OAAOA,EAAKA,EAAE,KAAKrc,EAAE,CAACkjC,SAASljC,EAAE3D,KAAKggB,EAAE,GAAGhqB,IAAIgqB,EAAE,GAAGvkB,IAAI,KAAKtD,MAAM6nB,EAAE,GAAGgnB,OAAO,MAAMhnB,EAAKA,CAAC,CAAC,CAAC,SAAS8C,EAAEvW,GAAG,IAAI8N,EAAE,IAAI4sB,YAAiH,OAA3F16B,EAAE,CAACq6B,eAAer6B,EAAEo6B,QAA5B,IAAI5lC,IAAkC+J,SAASqX,EAAE+kB,YAAY,GAAGC,eAAe9sB,IAAKmsB,UAAU7hB,EAAEpY,GAAUA,CAAC,CAC5U,SAAS6W,EAAE7W,EAAE8N,GAAqR,SAASwG,EAAExG,GAAGsI,EAAEpW,EAAE8N,EAAE,CAAC,IAAIxf,EAAEwf,EAAE+sB,YAAYvsC,EAAExB,OAAOqG,MAApU,SAASsgB,EAAE3F,GAAG,IAAIuG,EAAEvG,EAAEvmB,MAAM,IAAGumB,EAAE0lB,KAAc,CAAC1lB,EAAEuG,EAAEA,EAAErU,EAAE46B,eAAe,IAAI,IAAIhmB,EAAE9G,EAAEha,QAAQ,KAAK,EAAE8gB,GAAG,CAAC,IAAIL,EAAEvU,EAAE26B,YAAgB54B,EAAE+L,EAAEgtB,SAAS,EAAElmB,GAAG7S,EAAEsS,EAAE0mB,OAAOh5B,GAAGuW,EAAEtY,EAAEuU,EAAExS,GAAG/B,EAAE26B,YAAY,GAAqB/lB,GAAlB9G,EAAEA,EAAEgtB,SAASlmB,EAAE,IAAO9gB,QAAQ,GAAG,CAA8B,OAA7BkM,EAAE26B,aAAatmB,EAAE0mB,OAAOjtB,EAAE4F,GAAUplB,EAAExB,OAAOqG,KAAKsgB,EAAEa,EAAE,CAA1OqD,EAAE3X,EAAyO,GAA0DsU,EAAE,CAPKO,EAAEnrB,UAAUyJ,KAAK,SAAS6M,GAAG,IAAIhV,KAAK8uC,SAAS,OAAO9uC,KAAK+uC,SAAS/uC,KAAK+uC,OAAO,IAAI/uC,KAAK+uC,OAAOpmC,KAAKqM,IAAIA,GAAG,EAQ9c1Y,EAAQmc,yBAAyB,SAASzD,EAAE8N,GAA+C,OAAP+I,EAArC/I,EAAEyI,EAAEzI,GAAGA,EAAEktB,UAAUltB,EAAEktB,UAAU,MAAUh7B,GAAU8N,CAAC,sCCdjG3b,EAAO7K,QAAU,EAAjB,0BCEF6K,EAAO7K,QAAU,CACf,MAAQ,EACR,MAAQ,EACR,IAAM,EACN,KAAO,EACP,OAAS,EACT,IAAM,EACN,KAAO,EACP,OAAS,EACT,MAAQ,EACR,MAAQ,EACR,OAAS,EACT,QAAU,EACV,OAAS,EACT,KAAO,sBCfT6K,EAAO7K,QAJP,SAAgCgH,GAC9B,QAAI,IAAWA,EAAG,MAAM,IAAI2sC,eAAe,6DAC3C,OAAO3sC,CACT,EACyC6D,EAAO7K,QAAQoB,YAAa,EAAMyJ,EAAO7K,QAAiB,QAAI6K,EAAO7K,2BCJ9G,SAAS4zC,IACP,OAAQ/oC,EAAO7K,QAAU4zC,EAAW9zC,OAAOoZ,OAASpZ,OAAOoZ,OAAOhV,OAAS,SAAUqL,GACnF,IAAK,IAAIvI,EAAI,EAAGA,EAAI3D,UAAUtE,OAAQiI,IAAK,CACzC,IAAImI,EAAI9L,UAAU2D,GAClB,IAAK,IAAIoI,KAAKD,GAAG,CAAG,GAAE9M,eAAeC,KAAK6M,EAAGC,KAAOG,EAAEH,GAAKD,EAAEC,GAC/D,CACA,OAAOG,CACT,EAAG1E,EAAO7K,QAAQoB,YAAa,EAAMyJ,EAAO7K,QAAiB,QAAI6K,EAAO7K,QAAU4zC,EAASnwC,MAAM,KAAMJ,UACzG,CACAwH,EAAO7K,QAAU4zC,EAAU/oC,EAAO7K,QAAQoB,YAAa,EAAMyJ,EAAO7K,QAAiB,QAAI6K,EAAO7K,8BCThG,IAAI+P,EAAiB,EAAQ,OAI7BlF,EAAO7K,QAHP,SAAwBmP,EAAGU,GACzBV,EAAE/M,UAAYtC,OAAOmM,OAAO4D,EAAEzN,WAAY+M,EAAE/M,UAAU6N,YAAcd,EAAGY,EAAeZ,EAAGU,EAC3F,EACiChF,EAAO7K,QAAQoB,YAAa,EAAMyJ,EAAO7K,QAAiB,QAAI6K,EAAO7K,2BCCtG6K,EAAO7K,QALP,SAAgCgH,GAC9B,OAAOA,GAAKA,EAAE5F,WAAa4F,EAAI,CAC7B,QAAWA,EAEf,EACyC6D,EAAO7K,QAAQoB,YAAa,EAAMyJ,EAAO7K,QAAiB,QAAI6K,EAAO7K,2BCL9G,SAAS6zC,EAAgB1kC,EAAGnI,GAC1B,OAAQ6D,EAAO7K,QAAU6zC,EAAkB/zC,OAAOiQ,eAAiBjQ,OAAOiQ,eAAe7L,OAAS,SAAUiL,EAAGnI,GAC7G,OAAOmI,EAAE2kC,UAAY9sC,EAAGmI,CAC1B,EAAGtE,EAAO7K,QAAQoB,YAAa,EAAMyJ,EAAO7K,QAAiB,QAAI6K,EAAO7K,QAAU6zC,EAAgB1kC,EAAGnI,EACvG,CACA6D,EAAO7K,QAAU6zC,EAAiBhpC,EAAO7K,QAAQoB,YAAa,EAAMyJ,EAAO7K,QAAiB,QAAI6K,EAAO7K,2BCFvG6K,EAAO7K,QAHP,SAAqCgH,EAAGmI,GACtC,OAAOA,IAAMA,EAAInI,EAAE/H,MAAM,IAAK+H,EAAE+sC,IAAM5kC,EAAGnI,CAC3C,EAC8C6D,EAAO7K,QAAQoB,YAAa,EAAMyJ,EAAO7K,QAAiB,QAAI6K,EAAO7K,0CCDnHF,OAAOC,eAAeC,EAAS,aAA/B,CAA+CC,OAAO,IA6CtDD,EAAQg0C,YAVY,iBAWpBh0C,EAAQoJ,iBAHkB6qC,GAvCJ,EAACA,EAAQC,KAC3B,MAAM,QAAE3rC,EAAU,MAAO4rC,GAAmBF,GAAU,CAAC,EACjDG,EAAYttC,KAAKI,UAAUitC,GAAgB,CAAC1mB,EAAGF,KAChC,mBAANA,IACPA,EAAI+K,OAAO/K,IACL5uB,WAAW8uB,EAAI,OACjBF,EAAI,YAAcA,GAGnBA,KAEX,MAAO,CACH,uBACAztB,OAAOsR,KAAK+iC,GAAgBp1C,OAAS,EAC/B,iCAAiCq1C,MACjC,mBACN,kBACA7rC,EAAQxJ,OAAS,EAAI,WAAW+H,KAAKI,UAAUqB,MAAc,GAC7D,oCACA2rC,GACFhhC,KAAK,GAAG,EAmBuBmhC,CAAcJ,EAzC1B,m5CCJzB,SAASK,EAAkBllC,EAAGsJ,IAC3B,MAAQA,GAAKA,EAAItJ,EAAErQ,UAAY2Z,EAAItJ,EAAErQ,QACtC,IAAK,IAAIiI,EAAI,EAAGuI,EAAIhM,MAAMmV,GAAI1R,EAAI0R,EAAG1R,IAAKuI,EAAEvI,GAAKoI,EAAEpI,GACnD,OAAOuI,CACT,qECJA,SAASglC,EAAgBplC,GACvB,OAAOolC,EAAkBz0C,OAAOiQ,eAAiBjQ,OAAOkQ,eAAe9L,OAAS,SAAUiL,GACxF,OAAOA,EAAE2kC,WAAah0C,OAAOkQ,eAAeb,EAC9C,EAAGolC,EAAgBplC,EACrB,oHCHA,SAASyE,EAAezE,EAAGU,GACzBV,EAAE/M,UAAYtC,OAAOmM,OAAO4D,EAAEzN,WAAY+M,EAAE/M,UAAU6N,YAAcd,GAAG,OAAeA,EAAGU,EAC3F,sCCHA,SAAS2kC,IACP,IACE,IAAIrlC,GAAKwY,QAAQvlB,UAAUqyC,QAAQnyC,KAAKqN,QAAQC,UAAU+X,QAAS,IAAI,WAAa,IACtF,CAAE,MAAOxY,GAAI,CACb,OAAQqlC,EAA4B,WAClC,QAASrlC,CACX,IACF,qECPA,SAASulC,EAAiBtlC,GACxB,GAAI,oBAAsBgjC,QAAU,MAAQhjC,EAAEgjC,OAAOuC,WAAa,MAAQvlC,EAAE,cAAe,OAAO7L,MAAM8W,KAAKjL,EAC/G,qECFA,SAASykC,EAAgB1kC,EAAGnI,GAC1B,OAAO6sC,EAAkB/zC,OAAOiQ,eAAiBjQ,OAAOiQ,eAAe7L,OAAS,SAAUiL,EAAGnI,GAC3F,OAAOmI,EAAE2kC,UAAY9sC,EAAGmI,CAC1B,EAAG0kC,EAAgB1kC,EAAGnI,EACxB,8ICAA,SAAS6T,EAAmBzL,GAC1B,OCJF,SAA4BA,GAC1B,GAAI7L,MAAMy2B,QAAQ5qB,GAAI,OAAO,EAAAwlC,EAAA,GAAiBxlC,EAChD,CDES,CAAkBA,KAAM,EAAAylC,EAAA,GAAgBzlC,KAAM,EAAA0lC,EAAA,GAA2B1lC,IELlF,WACE,MAAM,IAAII,UAAU,uIACtB,CFGwF,EACxF,qFGLA,SAASulC,EAA4B3lC,EAAGsJ,GACtC,GAAItJ,EAAG,CACL,GAAI,iBAAmBA,EAAG,OAAO,OAAiBA,EAAGsJ,GACrD,IAAIvJ,EAAI,CAAC,EAAEG,SAAShN,KAAK8M,GAAGnQ,MAAM,GAAI,GACtC,MAAO,WAAakQ,GAAKC,EAAEa,cAAgBd,EAAIC,EAAEa,YAAY0C,MAAO,QAAUxD,GAAK,QAAUA,EAAI5L,MAAM8W,KAAKjL,GAAK,cAAgBD,GAAK,2CAA2C6N,KAAK7N,IAAK,OAAiBC,EAAGsJ,QAAK,CACtN,CACF,mNCNiN,SAAS+N,IAAI,OAAOA,EAAE3mB,OAAOoZ,OAAOpZ,OAAOoZ,OAAOhV,OAAO,SAASiL,GAAG,IAAI,IAAInI,EAAE,EAAEA,EAAE3D,UAAUtE,OAAOiI,IAAI,CAAC,IAAIuI,EAAElM,UAAU2D,GAAG,IAAI,IAAIoI,KAAKG,EAAEzP,OAAOsC,UAAUC,eAAeC,KAAKiN,EAAEH,KAAKD,EAAEC,GAAGG,EAAEH,GAAG,CAAC,OAAOD,CAAC,EAAEsX,EAAEhjB,MAAMC,KAAKL,UAAU,CAAC,SAASqV,EAAEvJ,GAAG,IAAInI,EAAEmI,GAAG,IAAII,EAAE,GAAGH,EAAE,GAAG,MAAMS,EAAE7I,EAAEwF,QAAQ,MAAM,IAAIqD,IAAIT,EAAEpI,EAAE/H,MAAM4Q,GAAG7I,EAAEA,EAAE/H,MAAM,EAAE4Q,IAAI,MAAMmG,EAAEhP,EAAEwF,QAAQ,KAAK,OAAO,IAAIwJ,IAAIzG,EAAEvI,EAAE/H,MAAM+W,GAAGhP,EAAEA,EAAE/H,MAAM,EAAE+W,IAAI,CAAC3O,SAASL,EAAE8F,OAAO,MAAMyC,EAAE,GAAGA,EAAE9K,KAAK,MAAM2K,EAAE,GAAGA,EAAE,CAAC,MAAM+c,EAAE,6BAA6BC,EAAEjd,IAAI,GAAG,iBAAiBA,EAAE,OAAO,CAACA,GAAGgd,EAAEnP,KAAK7N,GAAX,CAAeA,EAAC,EAAGW,EAAE,IAA+F,GAAcid,EAAE,IAAmG,GAAgB,SAASE,EAAE9d,EAAEnI,EAAE8I,KAAK,IAAIP,EAAE,IAAI6c,EAAEjd,GAAG,OAAOA,EAAE,GAAGA,EAAExQ,WAAW,OAAOwQ,EAAExQ,WAAW,OAAO,OAAOwQ,EAAE,MAAMC,EAAE,OAAOG,EAAE,MAAMvI,EAAEA,EAAE+lB,KAAKxd,EAAE,IAAI,MAAM,GAAG,MAAMH,GAAGA,EAAExO,SAAS,KAAKwO,EAAEnQ,MAAM,GAAG,GAAGmQ,IAAID,EAAExQ,WAAW,KAAKwQ,EAAE,IAAIA,KAAK,CAAC,MAAMkd,EAAEld,GAAG,MAAMA,OAAE,EAAOA,EAAExQ,WAAW,KAA6J,MAAM8b,EAAE,CAACtL,EAAEnI,IAAI,iBAAiBmI,EAAEA,EAAEid,EAAEjd,GAAGkd,EAAEld,GAAG,SAASA,GAAG,MAAMnI,EAAEimB,EAAE9d,GAAS,OAAuCnI,CAAC,CAAvE,CAAyEmI,GAAG,SAASA,EAAEnI,GAAG,GAAGqlB,EAAEld,GAAG,OAAOA,EAAE,MAAYU,GAAE,aAAEV,EAAEnI,GAAG,OAAuC6I,CAAC,CAA5F,CAA8FV,EAAEnI,GAAGmI,EAAE+d,EAAE,CAAC,KAAK,WAAW,UAAU,eAAe,kBAAkB,cAAc,WAAW,kBAAkB,QAAQ,UAAU,aAAa,SAASK,EAAEpe,GAAG,OAAO8d,EAAE9d,EAAE4d,IAAI,CAAC,MAAMvG,EAAE,CAACwuB,gBAAgB,SAASC,YAAY,SAASC,gBAAgB,QAAQ,SAASrnB,EAAE1e,GAAgB,OAAO,gBAAgB,WAAE,MAAK,EAAEjK,SAASqK,KAAkB,gBAAgBme,EAAEjH,EAAE,CAAC,EAAEtX,EAAE,CAACgmC,UAAU5lC,MAAK,CAAC,MAAMme,UAAU,YAAY,WAAAzd,CAAYd,GAAGwqB,MAAMxqB,GAAGzL,KAAK0xC,gBAAgB,EAAExlB,mBAAmBzgB,EAAEwgB,UAAU3oB,MAAMtD,KAAKY,MAAM4wC,gBAAgB/lC,EAAEnI,GAAG,CAACquC,UAAU,CAAC3xC,KAAKY,MAAM+wC,UAAU3xC,KAAKY,MAAM0wC,iBAAiB10C,OAAOqnB,SAASzU,KAAK,KAAKkQ,MAAMqD,EAAE,CAAC,EAAE/iB,KAAKY,MAAM8e,MAAM1f,KAAKY,MAAM2wC,cAAc,KAAK,IAAIjuC,GAAE,EAAG,oBAAoB7H,QAAQA,OAAOm2C,uBAAuBtuC,GAAE,GAAItD,KAAK+D,MAAM,CAAC8tC,YAAYvuC,GAAGtD,KAAK8xC,cAAc,KAAK9xC,KAAK+xC,UAAU/xC,KAAK+xC,UAAUvxC,KAAKR,KAAK,CAAC,SAAAgyC,GAAY,IAAIvmC,EAAEhQ,OAAO+F,SAASmC,SAASlI,OAAO+F,SAAS4H,OAAOpJ,KAAKY,MAAM6wC,WAAWzxC,KAAKY,MAAM6wC,UAAU9tC,WAAW8H,EAAEzL,KAAKY,MAAM6wC,UAAU9tC,SAAS3D,KAAKY,MAAM6wC,UAAUroC,QAAQ,MAAM9F,EAAE0R,EAAE+B,EAAE/W,KAAKY,MAAMggB,GAAGnV,IAAII,EAAEvI,EAAEK,SAASL,EAAE8F,OAAO,GAAGqC,IAAII,EAAE,OAAO6X,UAAUnT,QAAQ1E,EAAE,CAAC,oBAAA5J,GAAuB,IAAIjC,KAAKiyC,GAAG,OAAO,MAAM52B,SAAS5P,EAAE0a,GAAG7iB,GAAGtD,KAAKiyC,GAAGjyC,KAAK8xC,eAAe9xC,KAAK8xC,cAAct4B,QAAQ/N,EAAEymC,UAAU5uC,GAAGmI,EAAE0mC,YAAY,CAAC,SAAAJ,CAAUtmC,GAAGzL,KAAKY,MAAMmrB,UAAU3vB,OAAOsC,UAAUC,eAAeC,KAAKoB,KAAKY,MAAMmrB,SAAS,WAAW/rB,KAAKY,MAAMmrB,SAAS1nB,QAAQoH,EAAEzL,KAAKY,MAAMmrB,UAAU/rB,KAAKY,MAAMmrB,SAAStgB,GAAGzL,KAAK+D,MAAM8tC,aAAapmC,IAAIzL,KAAKiyC,GAAG,EAAExmC,EAAEnI,KAAK,MAAMuI,EAAE,IAAIpQ,OAAOm2C,sBAAqB/lC,IAAIA,EAAEuF,SAAQvF,IAAIJ,IAAII,EAAE1Q,QAAQmI,EAAEuI,EAAEumC,gBAAgBvmC,EAAEwmC,kBAAkB,EAAC,GAAE,IAAI,OAAOxmC,EAAEymC,QAAQ7mC,GAAG,CAAC4P,SAASxP,EAAEsa,GAAG1a,EAAG,EAAtK,CAAwKA,GAAEA,IAAIA,EAAEzL,KAAK8xC,cAAc9xC,KAAKgyC,YAAYhyC,KAAK8xC,eAAe9xC,KAAK8xC,cAAct4B,OAAM,IAAI,CAAC,MAAAnX,GAAS,MAAMoJ,EAAEzL,KAAKY,OAAOggB,GAAG/U,EAAEmgB,SAAStgB,EAAE1L,KAAK0xC,gBAAgBvlB,QAAQ7Z,EAAEigC,aAAa9pB,EAAE1kB,MAAMqI,EAAEjQ,QAAQktB,EAAEooB,UAAUloB,GAAG9d,EAAEkd,EAAE,SAASld,EAAEnI,GAAG,GAAG,MAAMmI,EAAE,MAAM,CAAC,EAAE,IAAII,EAAEH,EAAES,EAAE,CAAC,EAAEmG,EAAElW,OAAOsR,KAAKjC,GAAG,IAAIC,EAAE,EAAEA,EAAE4G,EAAEjX,OAAOqQ,IAAIpI,EAAEwF,QAAQ+C,EAAEyG,EAAE5G,KAAK,IAAIS,EAAEN,GAAGJ,EAAEI,IAAI,OAAOM,CAAC,CAAjI,CAAmIV,EAAE+d,GAAgNwB,EAAEjU,EAAElL,EAAE0d,EAAE5lB,UAAU,OAAO+kB,EAAEsC,GAAgB,gBAAgB,OAAEjI,EAAE,CAACnC,GAAGoK,EAAEjnB,MAAMqI,EAAE4f,SAAStgB,EAAEqgB,SAAS/rB,KAAK+xC,UAAUQ,aAAa9mC,IAAIgd,GAAGA,EAAEhd,GAAG,MAAMnI,EAAE0R,EAAEgW,GAAGtH,UAAU5I,SAASxX,EAAEK,SAASL,EAAE8F,OAAM,EAAG+iB,QAAQ1gB,IAAI,GAAG6G,GAAGA,EAAE7G,KAAK,IAAIA,EAAE4gB,QAAQrsB,KAAKY,MAAMzF,QAAQsQ,EAAE2gB,kBAAkB3gB,EAAE6gB,SAAS7gB,EAAE8gB,QAAQ9gB,EAAE+gB,SAAS/gB,EAAEghB,UAAU,CAAChhB,EAAEihB,iBAAiB,IAAIppB,EAAE+lB,EAAE,MAAMxd,EAAEgZ,UAAUmG,KAAKzB,EAAE5lB,SAAS,kBAAkB0lB,GAAGxd,IAAIvI,GAAE,GAAI7H,OAAOqoB,YAAYkH,EAAE,CAACjnB,MAAMqI,EAAEjQ,QAAQmH,GAAG,CAAC,OAAM,CAAC,GAAIqlB,IAAiB,gBAAgB,IAAI5F,EAAE,CAAC3Y,KAAK4gB,GAAGrC,GAAG,EAAEqB,EAAEtnB,UAAUqgB,EAAE,CAAC,EAAED,EAAE,CAACqJ,QAAQ,OAAOvL,GAAG,SAAS/d,WAAW1G,QAAQ,OAAO4H,MAAM,WAAW,MAAM2lB,EAAE,cAAa,CAACje,EAAEI,IAAiB,gBAAgBse,EAAEpH,EAAE,CAACgJ,SAASlgB,GAAGJ,MAAKme,EAAE,CAACne,EAAEnI,KAAK7H,OAAOqoB,YAAY/M,EAAEtL,EAAEhQ,OAAO+F,SAASmC,UAAUL,EAAC,oyBCDv5ImI,EAAE,qDAAqD,SAASI,EAAEA,GAAG,IAAIH,EAAE,CAACjD,KAAK,MAAMwG,KAAK,GAAGujC,aAAY,EAAGC,MAAM,CAAC,EAAEjwC,SAAS,IAAIugB,EAAElX,EAAElP,MAAM,uBAAuB,GAAGomB,IAAIrX,EAAEuD,KAAK8T,EAAE,IAAI,IAAEA,EAAE,KAAK,MAAMlX,EAAEvC,OAAOuC,EAAExQ,OAAO,MAAMqQ,EAAE8mC,aAAY,GAAI9mC,EAAEuD,KAAKhU,WAAW,QAAQ,CAAC,IAAIqX,EAAEzG,EAAE/C,QAAQ,UAAU,MAAM,CAACL,KAAK,UAAUiqC,SAAS,IAAIpgC,EAAEzG,EAAEtQ,MAAM,EAAE+W,GAAG,GAAG,CAAC,IAAI,IAAI0C,EAAE,IAAIygB,OAAOhqB,GAAGgd,EAAE,KAAK,QAAQA,EAAEzT,EAAE0V,KAAK7e,KAAK,GAAG4c,EAAE,GAAG3Y,OAAO,GAAG2Y,EAAE,GAAG,CAAC,IAAItc,EAAEsc,EAAE,GAAG3Y,OAAO4Y,EAAE,CAACvc,EAAE,IAAIA,EAAErD,QAAQ,MAAM,IAAI4f,EAAEvc,EAAE9C,MAAM,MAAMqC,EAAE+mC,MAAM/pB,EAAE,IAAIA,EAAE,GAAG1T,EAAE+uB,WAAW,MAAMtb,EAAE,KAAK/c,EAAE+mC,MAAMhqB,EAAE,IAAIA,EAAE,GAAG3Y,OAAO3O,UAAU,EAAEsnB,EAAE,GAAGptB,OAAO,IAAI,OAAOqQ,CAAC,CAAC,IAAIA,EAAE,kDAAkDqX,EAAE,QAAQzQ,EAAElW,OAAOmM,OAAO,MAAM,SAASyM,EAAE1R,EAAEmI,GAAG,OAAOA,EAAEhD,MAAM,IAAI,OAAO,OAAOnF,EAAEmI,EAAEknC,QAAQ,IAAI,MAAM,OAAOrvC,GAAG,IAAImI,EAAEwD,MAAMxD,EAAEgnC,MAAM,SAASnvC,GAAG,IAAImI,EAAE,GAAG,IAAI,IAAII,KAAKvI,EAAEmI,EAAE9C,KAAKkD,EAAE,KAAKvI,EAAEuI,GAAG,KAAK,OAAOJ,EAAEpQ,OAAO,IAAIoQ,EAAE+D,KAAK,KAAK,EAAE,CAA9F,CAAgG/D,EAAEgnC,OAAO,KAAKhnC,EAAE+mC,YAAY,KAAK,KAAK/mC,EAAE+mC,YAAYlvC,EAAEA,EAAEmI,EAAEjJ,SAASwF,OAAOgN,EAAE,IAAI,KAAKvJ,EAAEwD,KAAK,IAAI,IAAI,UAAU,OAAO3L,EAAE,UAAUmI,EAAEinC,QAAQ,SAAS,CAAC,IAAIjqB,EAAE,CAACplB,MAAM,SAASC,EAAEmI,GAAGA,IAAIA,EAAE,CAAC,GAAGA,EAAE5F,aAAa4F,EAAE5F,WAAWyM,GAAG,IAAI0C,EAAEyT,EAAE,GAAGtc,EAAE,GAAGuc,GAAG,EAAE3R,GAAE,EAAG,GAAG,IAAIzT,EAAEwF,QAAQ,KAAK,CAAC,IAAI6f,EAAErlB,EAAEwF,QAAQ,KAAK2f,EAAE9f,KAAK,CAACF,KAAK,OAAOkqC,SAAS,IAAIhqB,EAAErlB,EAAEA,EAAEnC,UAAU,EAAEwnB,IAAI,CAAC,OAAOrlB,EAAEnH,QAAQuP,GAAE,SAASA,EAAE4G,GAAG,GAAGyE,EAAE,CAAC,GAAGrL,IAAI,KAAKsJ,EAAE/F,KAAK,IAAI,OAAO8H,GAAE,CAAE,CAAC,IAAI4R,EAAEY,EAAE,MAAM7d,EAAEpC,OAAO,GAAG+f,EAAE3d,EAAEzQ,WAAW,WAAWmR,EAAEkG,EAAE5G,EAAErQ,OAAOiuB,EAAEhmB,EAAEgG,OAAO8C,GAAG,GAAGid,EAAE,CAAC,IAAIQ,EAAEhe,EAAEH,GAAG,OAAOgd,EAAE,GAAGD,EAAE9f,KAAKkhB,GAAGpB,KAAKE,EAAExc,EAAEuc,IAAIlmB,SAASmG,KAAKkhB,GAAGpB,EAAE,CAAC,GAAGc,IAAIb,IAAI,SAAS1T,EAAEnJ,EAAEH,IAAIjD,MAAMgD,EAAE5F,WAAWmP,EAAE/F,QAAQ+F,EAAEvM,KAAK,YAAYsO,GAAE,GAAI/B,EAAEw9B,aAAaz7B,IAAIuS,GAAG,MAAMA,GAAGtU,EAAExS,SAASmG,KAAK,CAACF,KAAK,OAAOkqC,QAAQrvC,EAAE/H,MAAM6Q,EAAE9I,EAAEwF,QAAQ,IAAIsD,MAAM,IAAIsc,GAAGD,EAAE9f,KAAKqM,IAAI2T,EAAExc,EAAEuc,EAAE,KAAKC,EAAEnmB,SAASmG,KAAKqM,GAAG7I,EAAEuc,GAAG1T,KAAKuU,GAAGvU,EAAEw9B,eAAe9pB,GAAG,IAAI1T,EAAEw9B,aAAax9B,EAAE/F,OAAOvD,EAAEnQ,MAAM,GAAG,MAAMmtB,IAAI1T,GAAG,IAAI0T,EAAED,EAAEtc,EAAEuc,KAAK3R,GAAG,MAAMuS,GAAGA,GAAG,CAACX,GAAG,IAAID,EAAED,EAAEtc,EAAEuc,GAAGlmB,SAAS,IAAIooB,EAAEtnB,EAAEwF,QAAQ,IAAIsD,GAAGwd,EAAEtmB,EAAE/H,MAAM6Q,GAAG,IAAIwe,OAAE,EAAOA,GAAG7H,EAAEzJ,KAAKsQ,KAAKA,EAAE,MAAMgB,GAAG,GAAGlC,EAAEC,EAAEttB,QAAQ,GAAG,MAAMuuB,IAAIjB,EAAEhgB,KAAK,CAACF,KAAK,OAAOkqC,QAAQ/oB,GAAG,CAAC,IAAGnB,CAAC,EAAEjlB,UAAU,SAASF,GAAG,OAAOA,EAAE0E,QAAO,SAAS1E,EAAEmI,GAAG,OAAOnI,EAAE0R,EAAE,GAAGvJ,EAAE,GAAE,GAAG,GAAG,ICA9gE,MAAM6mB,EAAO,IAAI1yB,KAClBulB,SAASmN,OACPsgB,EAAShzC,EAAK,MAAKA,EAAK,GAAK,mBAAmBA,EAAK,MACzDulB,QAAQmN,QAAQ1yB,GAClB,EAEIizC,EAAgB,CAAC,EACVC,EAAW,IAAIlzC,KACtBgzC,EAAShzC,EAAK,KAAOizC,EAAcjzC,EAAK,MACxCgzC,EAAShzC,EAAK,MAAKizC,EAAcjzC,EAAK,IAAM,IAAI+X,MACpD2a,KAAQ1yB,GAAK,EAETmzC,EAAY,CAACviB,EAAMrW,IAAO,KAC9B,GAAIqW,EAAKwZ,cACP7vB,QACK,CACL,MAAM64B,EAAc,KAClBx/B,YAAW,KACTgd,EAAK5nB,IAAI,cAAeoqC,EAAY,GACnC,GACH74B,GAAI,EAENqW,EAAKhoB,GAAG,cAAewqC,EACzB,GAEW5G,EAAiB,CAAC5b,EAAMa,EAAIlX,KACvCqW,EAAK4b,eAAe/a,EAAI0hB,EAAUviB,EAAMrW,GAAI,EAEjCkyB,EAAgB,CAAC7b,EAAMqB,EAAKR,EAAIlX,KACvCy4B,EAASvhB,KAAKA,EAAK,CAACA,IACxBA,EAAGjgB,SAAQvF,IACL2kB,EAAK/zB,QAAQ40B,GAAGvoB,QAAQ+C,GAAK,GAAG2kB,EAAK/zB,QAAQ40B,GAAG1oB,KAAKkD,EAAE,IAE7D2kB,EAAK6b,cAAcxa,EAAKkhB,EAAUviB,EAAMrW,GAAI,EAcjC84B,EAAiBxwC,GAAaA,EAAUlD,aAAekD,EAAUwM,OAAS2jC,EAASnwC,IAAcA,EAAUpH,OAAS,EAAIoH,EAAY,WACpImwC,EAAW70C,GAAsB,iBAARA,EACzBm1C,EAAWn1C,GAAsB,iBAARA,GAA4B,OAARA,ECjDpDo1C,EAAkB,oGAClBC,EAAe,CACnB,QAAS,IACT,QAAS,IACT,OAAQ,IACR,QAAS,IACT,OAAQ,IACR,QAAS,IACT,SAAU,IACV,QAAS,IACT,SAAU,IACV,QAAS,IACT,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,QAAS,IACT,SAAU,IACV,WAAY,IACZ,UAAW,IACX,SAAU,IACV,QAAS,KAELC,EAAqBt8B,GAAKq8B,EAAar8B,GCtB7C,IAAIu8B,EAAiB,CACnBC,SAAU,kBACVC,cAAe,GACfC,oBAAqB,GACrBC,4BAA4B,EAC5BC,mBAAoB,GACpBC,2BAA4B,CAAC,KAAM,SAAU,IAAK,KAClD5hB,aAAa,EACb6hB,SDesBC,GAAQA,EAAK33C,QAAQg3C,EAAiBE,ICbvD,MAAMU,EAAc,CAACt3C,EAAU,CAAC,KACrC62C,EAAiB,IACZA,KACA72C,EACJ,EAEUu3C,EAAc,IAAMV,ECjBjC,IAAIW,EACG,MAAMC,EAAU74B,IACrB44B,EAAe54B,CAAQ,EAEZ84B,EAAU,IAAMF,ECCvBpmC,EAAc,CAAC7M,EAAMozC,KACzB,IAAKpzC,EAAM,OAAO,EAClB,MAAMqzC,EAAOrzC,EAAKJ,OAAO4B,UAAYxB,EAAKwB,SAC1C,OAAI4xC,EAAoBC,EAAKh5C,OAAS,IAC7Bg5C,CAAI,EAETC,EAActzC,IAClB,IAAKA,EAAM,MAAO,GAClB,MAAMwB,EAAWxB,EAAKJ,OAAO4B,UAAYxB,EAAKwB,SAC9C,OAAOxB,EAAKJ,OAAO2zC,kBAAoBC,EAAWhyC,GAAYA,CAAQ,EAGlEgyC,EAAapmC,GAAQvO,MAAMy2B,QAAQloB,GAAQA,EAAO,CAACA,GAQ5CqmC,EAAgB,CAACjyC,EAAUkyC,KACtC,IAAKlyC,EAAU,MAAO,GACtB,IAAImyC,EAAa,GACjB,MAAMC,EAAgBJ,EAAWhyC,GAC3BqyC,EAAYH,GAAahB,2BAA6BgB,EAAYd,4BAA8B,GAAK,GAwC3G,OAvCAgB,EAAcxjC,SAAQ,CAAC0jC,EAAOC,KAC5B,GAAInC,EAASkC,GACXH,GAAc,GAAGG,SACZ,IAAI,IAAAE,gBAAeF,GAAQ,CAChC,MAAM,MACJl0C,EAAK,KACL6H,GACEqsC,EACEG,EAAkB74C,OAAOsR,KAAK9M,GAAOvF,OACrC65C,EAAkBL,EAAU/rC,QAAQL,IAAS,EAC7C0sC,EAAgBv0C,EAAM4B,SAC5B,GAAK2yC,IAAiBD,GAAoBD,EAEnC,IAAKE,KAAmBD,GAAmBD,IAAoBr0C,EAAM2zC,kBAC1EI,GAAc,IAAII,OAAgBA,UAC7B,GAAIG,GAAuC,IAApBD,GAAyBrC,EAASuC,GAC9DR,GAAc,IAAIlsC,KAAQ0sC,MAAkB1sC,SACvC,CACL,MAAMkqC,EAAU8B,EAAcU,EAAeT,GAC7CC,GAAc,IAAII,KAAcpC,MAAYoC,IAC9C,MAREJ,GAAc,IAAIlsC,KAStB,MAAO,GAAc,OAAVqsC,EACTxiB,EAAK,kFACA,GAAI4gB,EAAS4B,GAAQ,CAC1B,MAAM,OACJlS,KACGzP,GACD2hB,EACEpnC,EAAOtR,OAAOsR,KAAKylB,GACzB,GAAoB,IAAhBzlB,EAAKrS,OAAc,CACrB,MAAMkB,EAAQqmC,EAAS,GAAGl1B,EAAK,OAAOk1B,IAAWl1B,EAAK,GACtDinC,GAAc,KAAKp4C,KACrB,MACE+1B,EAAK,mJAAoJwiB,EAE7J,MACExiB,EAAK,qKAAsKwiB,EAC7K,IAEKH,CAAU,EAEbS,EAAc,CAAC5yC,EAAU6yC,EAAc7kB,EAAMkkB,EAAaY,EAAeC,KAC7E,GAAqB,KAAjBF,EAAqB,MAAO,GAChC,MAAMR,EAAYH,EAAYd,4BAA8B,GACtD4B,EAAgCH,GAAgB,IAAI5f,OAAOof,EAAU/sC,KAAI2tC,GAAQ,IAAIA,MAAQjmC,KAAK,MAAM8J,KAAK+7B,GACnH,IAAK7yC,IAAagzC,IAAkCD,EAAgB,MAAO,CAACF,GAC5E,MAAMjnC,EAAO,CAAC,EACRsnC,EAAUC,IACQnB,EAAWmB,GACnBvkC,SAAQ0jC,IAChBlC,EAASkC,KACTjnC,EAAYinC,GAAQY,EAAQpB,EAAYQ,IAAiB5B,EAAS4B,MAAW,IAAAE,gBAAeF,IAAQ14C,OAAOoZ,OAAOpH,EAAM0mC,GAAM,GAClI,EAEJY,EAAQlzC,GACR,MAAMozC,EAAM,EAAKvyC,MAAM,MAAMgyC,SACvBlM,EAAO,IACR/6B,KACAknC,GAECO,EAAc,CAACf,EAAO9zC,EAAM80C,KAChC,MAAMH,EAASrB,EAAYQ,GACrBiB,EAAiBC,EAAOL,EAAQ30C,EAAKwB,SAAUszC,GACrD,MA7E0BtzC,IAAY3C,MAAMy2B,QAAQ9zB,IAAaA,EAAS6oB,MAAM,EAAA2pB,gBA6EzEiB,CAAsBN,IAAqC,IAA1BI,EAAe16C,QAAgBy5C,EAAMl0C,OAAO2zC,kBAAoBoB,EAASI,CAAc,EAE3HG,EAAoB,CAACpB,EAAOqB,EAAO3P,EAAKzjB,EAAGqzB,KAC3CtB,EAAMuB,OACRvB,EAAMtyC,SAAW2zC,EACjB3P,EAAI79B,MAAK,IAAA2tC,cAAaxB,EAAO,CAC3Br2C,IAAKskB,GACJqzB,OAASp0C,EAAYm0C,KAExB3P,EAAI79B,QAAQ,EAAA4tC,SAASzuC,IAAI,CAACgtC,IAAQrsB,IAChC,MAAM7nB,EAAQ,IACT6nB,EAAE7nB,OAGP,cADOA,EAAM2zC,mBACN,IAAAjyC,eAAcmmB,EAAEhgB,KAAM,IACxB7H,EACHnC,IAAKskB,EACL7e,IAAKukB,EAAEvkB,KACNkyC,EAAS,KAAOD,EAAM,IAE7B,EAEIH,EAAS,CAACQ,EAAWC,EAASX,KAClC,MAAMY,EAAalC,EAAWgC,GAE9B,OADiBhC,EAAWiC,GACZzuC,QAAO,CAACw+B,EAAKxlC,EAAM+hB,KACjC,MAAM4zB,EAAqB31C,EAAKwB,WAAW,IAAImwC,SAAWniB,EAAKsH,SAASc,aAAakE,YAAY97B,EAAKwB,SAAS,GAAGmwC,QAASxJ,EAAM3Y,EAAK50B,UACtI,GAAkB,QAAdoF,EAAKyH,KAAgB,CACvB,IAAImuC,EAAMF,EAAW3P,SAAS/lC,EAAKiO,KAAM,KACZ,IAAzB6mC,EAAcz6C,QAAiBu7C,IAAKA,EAAMd,EAAc,GAAG90C,EAAKiO,OAC/D2nC,IAAKA,EAAM,CAAC,GACjB,MAAM9B,EAA2C,IAAnC14C,OAAOsR,KAAK1M,EAAKyxC,OAAOp3C,OA1G3B,EAACo5B,EAAQt5B,KAC1B,MAAM07C,EAAY,IACb17C,GAGL,OADA07C,EAAUj2C,MAAQxE,OAAOoZ,OAAOif,EAAO7zB,MAAOzF,EAAOyF,OAC9Ci2C,CAAS,EAqG2CC,CAAW,CAC9Dl2C,MAAOI,EAAKyxC,OACXmE,GAAOA,EACJG,GAAY,IAAA/B,gBAAeF,GAC3BkC,EAAiCD,GAAalpC,EAAY7M,GAAM,KAAUA,EAAKwxC,YAC/EyE,EAAuBzB,GAAiCtC,EAAS4B,IAAUA,EAAMuB,QAAUU,EAC3FG,EAAmBhE,EAAS1wC,IAAapG,OAAOuC,eAAeC,KAAK4D,EAAUxB,EAAKiO,MACzF,GAAI2jC,EAASkC,GAAQ,CACnB,MAAMv4C,EAAQi0B,EAAKsH,SAASc,aAAakE,YAAYgY,EAAO3L,EAAM3Y,EAAK50B,UACvE4qC,EAAI79B,KAAKpM,EACX,MAAO,GAAIsR,EAAYinC,IAAUkC,EAAgC,CAC/D,MAAMb,EAAQN,EAAYf,EAAO9zC,EAAM80C,GACvCI,EAAkBpB,EAAOqB,EAAO3P,EAAKzjB,EACvC,MAAO,GAAIk0B,EAAsB,CAC/B,MAAMd,EAAQH,EAAOU,EAAY11C,EAAKwB,SAAUszC,GAChDI,EAAkBpB,EAAOqB,EAAO3P,EAAKzjB,EACvC,MAAO,GAAIiF,OAAOD,MAAMovB,WAAWn2C,EAAKiO,OACtC,GAAIioC,EAAkB,CACpB,MAAMf,EAAQN,EAAYf,EAAO9zC,EAAM80C,GACvCI,EAAkBpB,EAAOqB,EAAO3P,EAAKzjB,EAAG/hB,EAAKwxC,YAC/C,MAAO,GAAIkC,EAAYhB,4BAA8BmB,EAAU/rC,QAAQ9H,EAAKiO,OAAS,EACnF,GAAIjO,EAAKwxC,YACPhM,EAAI79B,MAAK,IAAArG,eAActB,EAAKiO,KAAM,CAChCxQ,IAAK,GAAGuC,EAAKiO,QAAQ8T,WAElB,CACL,MAAMozB,EAAQH,EAAOU,EAAY11C,EAAKwB,SAAUszC,GAChDtP,EAAI79B,MAAK,IAAArG,eAActB,EAAKiO,KAAM,CAChCxQ,IAAK,GAAGuC,EAAKiO,QAAQ8T,KACpBozB,GACL,MACK,GAAIn1C,EAAKwxC,YACdhM,EAAI79B,KAAK,IAAI3H,EAAKiO,eACb,CACL,MAAMknC,EAAQH,EAAOU,EAAY11C,EAAKwB,SAAUszC,GAChDtP,EAAI79B,KAAK,IAAI3H,EAAKiO,QAAQknC,MAAUn1C,EAAKiO,QAC3C,MACK,GAAIikC,EAAS4B,KAAWiC,EAAW,CACxC,MAAMpE,EAAU3xC,EAAKwB,SAAS,GAAKm0C,EAAqB,KACpDhE,GAASnM,EAAI79B,KAAKgqC,EACxB,MACEuD,EAAkBpB,EAAO6B,EAAoBnQ,EAAKzjB,EAA4B,IAAzB/hB,EAAKwB,SAASnH,SAAiBs7C,EAExF,MAAO,GAAkB,SAAd31C,EAAKyH,KAAiB,CAC/B,MAAM2uC,EAAgB1C,EAAYf,mBAC5BhB,EAAU4C,EAAiBb,EAAYb,SAASrjB,EAAKsH,SAASc,aAAakE,YAAY97B,EAAK2xC,QAASxJ,EAAM3Y,EAAK50B,WAAa40B,EAAKsH,SAASc,aAAakE,YAAY97B,EAAK2xC,QAASxJ,EAAM3Y,EAAK50B,UAC/Lw7C,EACF5Q,EAAI79B,MAAK,IAAArG,eAAc80C,EAAe,CACpC34C,IAAK,GAAGuC,EAAKiO,QAAQ8T,KACpB4vB,IAEHnM,EAAI79B,KAAKgqC,EAEb,CACA,OAAOnM,CAAG,GACT,GAAG,EAEFz+B,EAASiuC,EAAO,CAAC,CACrBK,OAAO,EACP7zC,SAAUA,GAAY,KACpBozC,EAAKpB,EAAWhyC,GAAY,KAChC,OAAO8xC,EAAYvsC,EAAO,GAAG,EAExB,SAASsvC,GAAM,SACpB70C,EAAQ,MACRm4B,EAAK,OACL2c,EAAM,QACNC,EAAO,QACPzvB,EAAO,SACP0vB,EAAW,CAAC,EAAC,OACb5gC,EAAM,SACN6gC,EAAQ,WACR5xC,EAAU,GACVwrB,EACAb,KAAMknB,EACNjsC,EAAGksC,EAAU,eACbpC,KACGqC,IAEH,MAAMpnB,EAAOknB,GAAiBvD,IAC9B,IAAK3jB,EAEH,OADAsiB,EAAS,4EACFtwC,EAET,MAAMiJ,EAAIksC,GAAcnnB,EAAK/kB,EAAEjL,KAAKgwB,IAAS,CAACzG,GAAKA,GAC7C8tB,EAAsB,IACvB7D,OACAxjB,EAAK/zB,SAASs1B,OAEnB,IAAIX,EAAaC,GAAM5lB,EAAE4lB,IAAMb,EAAK/zB,SAAS60B,UAC7CF,EAAawhB,EAASxhB,GAAc,CAACA,GAAcA,GAAc,CAAC,eAClE,MAAM0mB,EAAerD,EAAcjyC,EAAUq1C,GACvC1wB,EAAeswB,GAAYK,GAAgBD,EAAoBpE,qBAAuB8D,GACtF,aACJQ,GACEF,EACEp5C,EAAM84C,IAAYQ,EAAeA,EAAaD,GAAgB3wB,GAAgB2wB,GAAgB3wB,GAChGqJ,EAAK/zB,SAASu7B,eAAeyE,mBAC/B7lB,EAASA,GAAUxa,OAAOsR,KAAKkJ,GAAQvb,OAAS,EAAI,IAC/Cub,KACA4Z,EAAK/zB,QAAQu7B,cAAcyE,kBAC5B,IACCjM,EAAK/zB,QAAQu7B,cAAcyE,mBAGlC,MAAMub,EAAwBphC,QAAoB5U,IAAV24B,IAAwBn4B,EAAWg1C,EAASxf,cAAgB,CAClGA,cAAe,IACVwf,EAASxf,cACZ9P,OAAQ,MACR/qB,OAAQ,QAGNm4C,EAAgB,IACjBkC,EACH1vB,QAASA,GAAW0vB,EAAS1vB,QAC7B6S,WACG/jB,KACAohC,EACH7wB,eACAkK,GAAID,GAEA6mB,EAAcx5C,EAAMgN,EAAEhN,EAAK62C,GAAiBnuB,EAC9CthB,GACFzJ,OAAOsR,KAAK7H,GAAYuL,SAAQqX,IAC9B,MAAMyvB,EAAOryC,EAAW4iB,GACC,mBAAdyvB,EAAKzvC,OAAwByvC,EAAKt3C,QAAUs3C,EAAKt3C,MAAM4B,UAAYy1C,EAAYnvC,QAAQ,GAAG2f,OAAS,GAAKwvB,EAAYnvC,QAAQ,GAAG2f,QAAU,IAIpJ5iB,EAAW4iB,IAAK,IAAAnmB,gBAHhB,WACE,OAAO,IAAAA,eAAc,EAAA61C,SAAU,KAAMD,EACvC,IAC4C,IAGhD,MAAMvF,EAAUyC,EAAYvvC,GAAcrD,EAAUy1C,EAAaznB,EAAMqnB,EAAqBvC,EAAeC,GACrG6C,EAAcd,GAAUO,EAAoBQ,mBAClD,OAAOD,GAAc,IAAA91C,eAAc81C,EAAaR,EAAiBjF,GAAWA,CAC9E,CCjQO,MAAM2F,EAAmB,CAC9B7vC,KAAM,WACN,IAAAmpB,CAAKvW,GACH04B,EAAY14B,EAAS5e,QAAQs1B,OAC7BmiB,EAAQ74B,EACV,GCFWk9B,GAAc,IAAAl5C,iBACpB,MAAMm5C,EACX,WAAAjsC,GACEvM,KAAKy4C,eAAiB,CAAC,CACzB,CACA,iBAAAC,CAAkBtnB,GAChBA,EAAWhgB,SAAQigB,IACjBrxB,KAAKy4C,eAAepnB,MAAQ,CAAI,GAEpC,CACA,iBAAAsnB,GACE,OAAOv8C,OAAOsR,KAAK1N,KAAKy4C,eAC1B,EAEK,MAAMG,EAAsBC,GAAgBtN,UAG1C,UAF+BsN,EAAaC,kBAAkBC,KAAS,CAAC,KACtDD,MAMdA,EAAkB,KAC7B,MAAMtoB,EAAO2jB,IACP/iB,EAAaZ,EAAKwoB,kBAAkBL,qBAAuB,GAC3DpP,EAAM,CAAC,EACP0P,EAAmB,CAAC,EAS1B,OARAzoB,EAAK70B,UAAUyV,SAAQsX,IACrBuwB,EAAiBvwB,GAAK,CAAC,EACvB0I,EAAWhgB,SAAQigB,IACjB4nB,EAAiBvwB,GAAG2I,GAAMb,EAAKwG,kBAAkBtO,EAAG2I,IAAO,CAAC,CAAC,GAC7D,IAEJkY,EAAI0P,iBAAmBA,EACvB1P,EAAI2P,gBAAkB1oB,EAAK50B,SACpB2tC,CAAG,ECpCL,SAAS,GAAM,SACpB/mC,EAAQ,MACRm4B,EAAK,OACL2c,EAAM,QACNC,EAAO,QACPzvB,EAAO,SACP0vB,EAAW,CAAC,EAAC,OACb5gC,EAAM,SACN6gC,EAAQ,WACR5xC,EAAU,GACVwrB,EACAb,KAAMknB,EACNjsC,EAAGksC,EAAU,eACbpC,KACGqC,IAEH,MACEpnB,KAAM2oB,EACN7nB,UAAW8nB,IACT,IAAAn1C,YAAWs0C,IAAgB,CAAC,EAC1B/nB,EAAOknB,GAAiByB,GAAmBhF,IAC3C1oC,EAAIksC,GAAcnnB,GAAM/kB,EAAEjL,KAAKgwB,GACrC,OAAO6mB,EAAoB,CACzB70C,WACAm4B,QACA2c,SACAC,UACAzvB,UACA0vB,WACA5gC,SACA6gC,WACA5xC,aACAwrB,GAAIA,GAAM5lB,GAAG4lB,IAAM+nB,GAAwB5oB,GAAM/zB,SAAS60B,UAC1Dd,OACA/kB,EAAGksC,EACHpC,oBACGqC,GAEP,CCvCA,MAOMyB,EAAa,CAAC7oB,EAAM50B,EAAUu9B,EAAWuS,IAAclb,EAAKib,UAAU7vC,EAAUu9B,EAAWuS,GAEpF4N,EAAiB,CAACjoB,EAAIzwB,EAAQ,CAAC,KAC1C,MACE4vB,KAAMknB,GACJ92C,GAEF4vB,KAAM2oB,EACN7nB,UAAW8nB,IACT,IAAAn1C,YAAWs0C,IAAgB,CAAC,EAC1B/nB,EAAOknB,GAAiByB,GAAmBhF,IAEjD,GADI3jB,IAASA,EAAKwoB,mBAAkBxoB,EAAKwoB,iBAAmB,IAAIR,IAC3DhoB,EAAM,CACTsiB,EAAS,0EACT,MAAMyG,EAAY,CAACxvB,EAAGyvB,IAChB5G,EAAS4G,GAA4BA,EACrCtG,EAASsG,IAAuB5G,EAAS4G,EAAmBryB,cAAsBqyB,EAAmBryB,aAClGtnB,MAAMy2B,QAAQvM,GAAKA,EAAEA,EAAE1uB,OAAS,GAAK0uB,EAExC0vB,EAAc,CAACF,EAAW,CAAC,GAAG,GAIpC,OAHAE,EAAYhuC,EAAI8tC,EAChBE,EAAYjpB,KAAO,CAAC,EACpBipB,EAAYC,OAAQ,EACbD,CACT,CACIjpB,EAAK/zB,QAAQs1B,OAAO6W,MAAMkK,EAAS,uGACvC,MAAM4B,EAAc,IACfV,OACAxjB,EAAK/zB,QAAQs1B,SACbnxB,IAEC,YACJoxB,EAAW,UACX0Z,GACEgJ,EACJ,IAAItjB,EAAaC,GAAM+nB,GAAwB5oB,EAAK/zB,SAAS60B,UAC7DF,EAAawhB,EAASxhB,GAAc,CAACA,GAAcA,GAAc,CAAC,eAClEZ,EAAKwoB,iBAAiBN,oBAAoBtnB,GAC1C,MAAMsoB,GAASlpB,EAAKwZ,eAAiBxZ,EAAKma,uBAAyBvZ,EAAW/F,OAAMxf,GRbpD,EAACwlB,EAAIb,EAAM/zB,EAAU,CAAC,IACjD+zB,EAAK70B,WAAc60B,EAAK70B,UAAUN,OAIhCm1B,EAAKoN,mBAAmBvM,EAAI,CACjCQ,IAAKp1B,EAAQo1B,IACbqa,SAAU,CAAC+H,EAAcjI,KACvB,GAAIvvC,EAAQ82C,UAAUzqC,QAAQ,qBAAuB,GAAKmrC,EAAanc,SAASqE,iBAAiBmL,SAAW2M,EAAa9I,uBAAyBa,EAAeiI,EAAa9I,qBAAsB9Z,GAAK,OAAO,CAAK,KANvNyhB,EAAS,yCAA0CtiB,EAAK70B,YACjD,GQUgFiiC,CAAmB/xB,EAAG2kB,EAAMkkB,KAC/GiF,EAtCa,EAACnpB,EAAM50B,EAAUu9B,EAAWuS,KAAc,IAAAkO,aAAYP,EAAW7oB,EAAM50B,EAAUu9B,EAAWuS,GAAY,CAAClb,EAAM50B,EAAUu9B,EAAWuS,IAsCtImO,CAAarpB,EAAM5vB,EAAMixB,KAAO,KAA6B,aAAvB6iB,EAAYoF,OAAwB1oB,EAAaA,EAAW,GAAIsa,GACjHqO,EAAO,IAAMJ,EACbK,EAAU,IAAMX,EAAW7oB,EAAM5vB,EAAMixB,KAAO,KAA6B,aAAvB6iB,EAAYoF,OAAwB1oB,EAAaA,EAAW,GAAIsa,IACnHjgC,EAAGwuC,IAAQ,IAAAC,UAASH,GAC3B,IAAII,EAAW/oB,EAAW5hB,OACtB5O,EAAMixB,MAAKsoB,EAAW,GAAGv5C,EAAMixB,MAAMsoB,KACzC,MAAMC,EApDY,EAAC79C,EAAO89C,KAC1B,MAAMn2C,GAAM,IAAAC,UAIZ,OAHA,IAAAiY,YAAU,KACRlY,EAAIG,QAAUg2C,EAASn2C,EAAIG,QAAU9H,CAAK,GACzC,CAACA,EAAO89C,IACJn2C,EAAIG,OAAO,EA+COi2C,CAAYH,GAC/BI,GAAY,IAAAp2C,SAAO,IACzB,IAAAiY,YAAU,KACR,MAAM,SACJm3B,EAAQ,cACRC,GACEkB,EACJ6F,EAAUl2C,SAAU,EACfq1C,GAAU1nB,IACTpxB,EAAMixB,IACRwa,EAAc7b,EAAM5vB,EAAMixB,IAAKT,GAAY,KACrCmpB,EAAUl2C,SAAS41C,EAAKD,EAAQ,IAGtC5N,EAAe5b,EAAMY,GAAY,KAC3BmpB,EAAUl2C,SAAS41C,EAAKD,EAAQ,KAItCN,GAASU,GAAoBA,IAAqBD,GAAYI,EAAUl2C,SAC1E41C,EAAKD,GAEP,MAAMQ,EAAa,KACbD,EAAUl2C,SAAS41C,EAAKD,EAAQ,EAItC,OAFIzG,GAAU/iB,GAAMhoB,GAAG+qC,EAAUiH,GAC7BhH,GAAehjB,GAAM+W,MAAM/+B,GAAGgrC,EAAegH,GAC1C,KACLD,EAAUl2C,SAAU,EAChBmsB,GAAM+iB,GAAUlqC,MAAM,KAAK+H,SAAQ9N,GAAKktB,EAAK5nB,IAAItF,EAAGk3C,KACpDhH,GAAiBhjB,GAAMgjB,EAAcnqC,MAAM,KAAK+H,SAAQ9N,GAAKktB,EAAK+W,MAAM3+B,IAAItF,EAAGk3C,IAAY,CAChG,GACA,CAAChqB,EAAM2pB,KACV,IAAA/9B,YAAU,KACJm+B,EAAUl2C,SAAWq1C,GACvBO,EAAKF,EACP,GACC,CAACvpB,EAAMkb,EAAWgO,IACrB,MAAMnQ,EAAM,CAAC99B,EAAG+kB,EAAMkpB,GAItB,GAHAnQ,EAAI99B,EAAIA,EACR89B,EAAI/Y,KAAOA,EACX+Y,EAAImQ,MAAQA,EACRA,EAAO,OAAOnQ,EAClB,IAAKmQ,IAAU1nB,EAAa,OAAOuX,EACnC,MAAM,IAAInhC,SAAQC,IACZzH,EAAMixB,IACRwa,EAAc7b,EAAM5vB,EAAMixB,IAAKT,GAAY,IAAM/oB,MAEjD+jC,EAAe5b,EAAMY,GAAY,IAAM/oB,KACzC,GACA,ECtGSoyC,EAAkB,CAACppB,EAAI50B,EAAU,CAAC,IAAM,SAAgBi+C,GACnE,SAASC,GAAuB,aAC9BC,KACG/T,IAEH,MAAOp7B,EAAG+kB,EAAMkpB,GAASJ,EAAejoB,EAAI,IACvCwV,EACH6E,UAAWjvC,EAAQivC,YAEfmP,EAAgB,IACjBhU,EACHp7B,IACA+kB,OACAsqB,OAAQpB,GAOV,OALIj9C,EAAQs+C,SAAWH,EACrBC,EAAc32C,IAAM02C,GACVn+C,EAAQs+C,SAAWH,IAC7BC,EAAcD,aAAeA,IAExB,IAAAt4C,eAAco4C,EAAkBG,EACzC,CACAF,EAAuBp7C,YAAc,0BAA0B0zC,EAAeyH,MAC9EC,EAAuBD,iBAAmBA,EAI1C,OAAOj+C,EAAQs+C,SAAU,IAAApvB,aAHN,CAAC/qB,EAAOsD,KAAQ,IAAA5B,eAAcq4C,EAAwBv+C,OAAOoZ,OAAO,CAAC,EAAG5U,EAAO,CAChGg6C,aAAc12C,OAEuCy2C,CACzD,EC9BaK,EAAc,EACzB3pB,KACA7uB,cACG/F,MAEH,MAAOgP,EAAG+kB,EAAMkpB,GAASJ,EAAejoB,EAAI50B,GAC5C,OAAO+F,EAASiJ,EAAG,CACjB+kB,OACAqB,IAAKrB,EAAK50B,UACT89C,EAAM,ECRJ,SAASxnB,GAAgB,KAC9B1B,EAAI,UACJc,EAAS,SACT9uB,IAEA,MAAMjG,GAAQ,IAAA0+C,UAAQ,KAAM,CAC1BzqB,OACAc,eACE,CAACd,EAAMc,IACX,OAAO,IAAAhvB,eAAci2C,EAAYh2C,SAAU,CACzChG,SACCiG,EACL,CCZO,MAAM04C,EAAS,CAACjC,EAAkBC,EAAiBt4C,EAAQ,CAAC,KACjE,MACE4vB,KAAMknB,GACJ92C,GAEF4vB,KAAM2oB,IACJ,IAAAl1C,YAAWs0C,IAAgB,CAAC,EAC1B/nB,EAAOknB,GAAiByB,GAAmBhF,IAC7C3jB,EAAK/zB,SAASwtC,UACdgP,IAAqBzoB,EAAKma,uBAC5Bna,EAAKsH,SAASyG,cAAcnwB,KAAO6qC,EACnCzoB,EAAK/zB,QAAQ40B,GAAKj1B,OAAOwa,OAAOqiC,GAAkBjxC,QAAO,CAACw+B,EAAK2U,KAC7D/+C,OAAOsR,KAAKytC,GAAc/pC,SAAQigB,IAC5BmV,EAAI19B,QAAQuoB,GAAM,GAAGmV,EAAI79B,KAAK0oB,EAAG,IAEhCmV,IACNhW,EAAK/zB,QAAQ40B,IAChBb,EAAKma,sBAAuB,EAC5Bna,EAAKwZ,eAAgB,GAEnBkP,IAAoB1oB,EAAK4qB,0BAC3B5qB,EAAKyB,eAAeinB,GACpB1oB,EAAK4qB,yBAA0B,GACjC,ECrBWC,EAAU,IAAM,SAAgBX,GAC3C,SAASY,GAAe,iBACtBrC,EAAgB,gBAChBC,KACGrS,IAGH,OADAqU,EAAOjC,EAAkBC,IAClB,IAAA52C,eAAco4C,EAAkB,IAClC7T,GAEP,CAIA,OAHAyU,EAAexC,gBAAkBF,EAAoB8B,GACrDY,EAAe/7C,YAAc,kBAAkB0zC,EAAeyH,MAC9DY,EAAeZ,iBAAmBA,EAC3BY,CACT,ECPaC,EAAO,IAAM,GACbC,EAAO,IAAM,GACbxZ,EAAS,IAAM,GACf,GAAS,IAAM,GACfyZ,GAAS,IAAM,GACfC,GAAgB,IAAM","sources":["webpack://web-app/./node_modules/browser-lang/dist/index.js","webpack://web-app/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://web-app/./node_modules/gatsby-react-router-scroll/index.js","webpack://web-app/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://web-app/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://web-app/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://web-app/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://web-app/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://web-app/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://web-app/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://web-app/./.cache/api-runner-browser-plugins.js","webpack://web-app/./.cache/api-runner-browser.js","webpack://web-app/./.cache/create-content-digest-browser-shim.js","webpack://web-app/./.cache/emitter.js","webpack://web-app/./node_modules/mitt/dist/mitt.es.js","webpack://web-app/./.cache/normalize-page-path.js","webpack://web-app/./.cache/find-path.js","webpack://web-app/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://web-app/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://web-app/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://web-app/./.cache/slice/server-slice-renderer.js","webpack://web-app/./.cache/slice/server-slice.js","webpack://web-app/./.cache/slice/inline-slice.js","webpack://web-app/./.cache/slice.js","webpack://web-app/./.cache/gatsby-browser-entry.js","webpack://web-app/./.cache/prefetch.js","webpack://web-app/./.cache/loader.js","webpack://web-app/./.cache/head/components/fire-callback-in-effect.js","webpack://web-app/./.cache/head/constants.js","webpack://web-app/./.cache/head/utils.js","webpack://web-app/./.cache/head/head-export-handler-for-browser.js","webpack://web-app/./.cache/page-renderer.js","webpack://web-app/./.cache/route-announcer-props.js","webpack://web-app/./.cache/navigation.js","webpack://web-app/./node_modules/shallow-compare/es/index.js","webpack://web-app/./.cache/ensure-resources.js","webpack://web-app/./.cache/production-app.js","webpack://web-app/./.cache/public-page-renderer-prod.js","webpack://web-app/./.cache/public-page-renderer.js","webpack://web-app/./.cache/react-dom-utils.js","webpack://web-app/./.cache/redirect-utils.js","webpack://web-app/./.cache/register-service-worker.js","webpack://web-app/./.cache/slice/context.js","webpack://web-app/./.cache/static-query.js","webpack://web-app/./.cache/context-utils.js","webpack://web-app/./.cache/strip-prefix.js","webpack://web-app/./gatsby-browser.jsx","webpack://web-app/../src/lib/history.js","webpack://web-app/../src/lib/hooks-create-context.js","webpack://web-app/../src/lib/hooks-use-context.js","webpack://web-app/../src/lib/redirect.js","webpack://web-app/../src/lib/utils.js","webpack://web-app/../src/lib/link.js","webpack://web-app/../src/lib/error-boundary.js","webpack://web-app/../src/lib/location-provider.js","webpack://web-app/../src/lib/location.js","webpack://web-app/../src/lib/location-server.js","webpack://web-app/../src/lib/match.js","webpack://web-app/../src/lib/focus-handler.js","webpack://web-app/../src/lib/router.js","webpack://web-app/../src/hooks/use-location.js","webpack://web-app/../src/hooks/use-navigate.js","webpack://web-app/../src/hooks/use-params.js","webpack://web-app/../src/hooks/use-match.js","webpack://web-app/./node_modules/gatsby-plugin-google-tagmanager-timeout/gatsby-browser.js","webpack://web-app/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://web-app/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://web-app/./node_modules/gatsby-plugin-react-i18next/dist/i18nextContext.js","webpack://web-app/./node_modules/gatsby-plugin-react-i18next/dist/plugin/wrapPageElement.js","webpack://web-app/./node_modules/gatsby-plugin-react-i18next/dist/types.js","webpack://web-app/./node_modules/gatsby-plugin-react-i18next/gatsby-browser.js","webpack://web-app/./node_modules/i18next/dist/cjs/i18next.js","webpack://web-app/./node_modules/invariant/browser.js","webpack://web-app/./node_modules/outdent/lib-module/index.js","webpack://web-app/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://web-app/./node_modules/react-server-dom-webpack/index.js","webpack://web-app/./node_modules/void-elements/index.js","webpack://web-app/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://web-app/./node_modules/@babel/runtime/helpers/extends.js","webpack://web-app/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://web-app/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://web-app/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://web-app/./node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js","webpack://web-app/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://web-app/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://web-app/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://web-app/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://web-app/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://web-app/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://web-app/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://web-app/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://web-app/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://web-app/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://web-app/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://web-app/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://web-app/./node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","webpack://web-app/./node_modules/react-i18next/dist/es/utils.js","webpack://web-app/./node_modules/react-i18next/dist/es/unescape.js","webpack://web-app/./node_modules/react-i18next/dist/es/defaults.js","webpack://web-app/./node_modules/react-i18next/dist/es/i18nInstance.js","webpack://web-app/./node_modules/react-i18next/dist/es/TransWithoutContext.js","webpack://web-app/./node_modules/react-i18next/dist/es/initReactI18next.js","webpack://web-app/./node_modules/react-i18next/dist/es/context.js","webpack://web-app/./node_modules/react-i18next/dist/es/Trans.js","webpack://web-app/./node_modules/react-i18next/dist/es/useTranslation.js","webpack://web-app/./node_modules/react-i18next/dist/es/withTranslation.js","webpack://web-app/./node_modules/react-i18next/dist/es/Translation.js","webpack://web-app/./node_modules/react-i18next/dist/es/I18nextProvider.js","webpack://web-app/./node_modules/react-i18next/dist/es/useSSR.js","webpack://web-app/./node_modules/react-i18next/dist/es/withSSR.js","webpack://web-app/./node_modules/react-i18next/dist/es/index.js"],"sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction startsWith(string, target, position) {\n var length = string.length;\n position = position == null ? 0 : position;\n\n if (position < 0) {\n position = 0;\n } else if (position > length) {\n position = length;\n }\n\n target = \"\".concat(target);\n return string.slice(position, position + target.length) == target;\n}\n\nfunction getBrowserLang() {\n if (typeof window === \"undefined\") {\n return null;\n }\n\n var lang = window.navigator.languages && window.navigator.languages[0] || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage || window.navigator.systemLanguage || null;\n return lang;\n}\n\nfunction normalizeCode(code) {\n return code.toLowerCase().replace(/-/, \"_\");\n}\n\nfunction getPreferredLanguage(options) {\n if (!options) {\n return getBrowserLang();\n }\n\n var languages = options.languages,\n fallback = options.fallback;\n\n if (!options.languages) {\n return fallback;\n } // some browsers report language as en-US instead of en_US\n\n\n var browserLanguage = normalizeCode(getBrowserLang());\n\n if (!browserLanguage) {\n return fallback;\n }\n\n var match = languages.filter(function (lang) {\n return normalizeCode(lang) === browserLanguage;\n });\n\n if (match.length > 0) {\n return match[0] || fallback;\n } // en == en_US\n\n\n var matchCodeOnly = languages.filter(function (lang) {\n return startsWith(browserLanguage, lang) || startsWith(lang, browserLanguage);\n });\n return matchCodeOnly[0] || fallback;\n}\n\nvar _default = getPreferredLanguage;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\nconst endsWithSuffixes = (suffixes, input) => {\n for (const suffix of suffixes) {\n if (input.endsWith(suffix)) return true;\n }\n return false;\n};\nconst suffixes = [`.html`, `.json`, `.js`, `.map`, `.txt`, `.xml`, `.pdf`];\nconst applyTrailingSlashOption = (input, option = `always`) => {\n if (input === `/`) return input;\n const hasTrailingSlash = input.endsWith(`/`);\n if (endsWithSuffixes(suffixes, input)) {\n return input;\n }\n if (option === `always`) {\n return hasTrailingSlash ? input : `${input}/`;\n }\n if (option === `never`) {\n return hasTrailingSlash ? input.slice(0, -1) : input;\n }\n return input;\n};\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\nvar _scrollHandler = require(\"./scroll-handler\");\nexports.ScrollContext = _scrollHandler.ScrollHandler;\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _sessionStorage = require(\"./session-storage\");\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n function ScrollHandler() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n if (!shouldUpdateScroll) {\n return true;\n }\n\n // Hack to allow accessing this._stateStorage.\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n return _this;\n }\n var _proto = ScrollHandler.prototype;\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n this._isTicking = false;\n };\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** If a hash is present in the browser url as the component mounts (i.e. the user is navigating\n * from an external website) then scroll to the hash instead of any previously stored scroll\n * position. */\n if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n } else if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n return ScrollHandler;\n}(React.Component);\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n var _proto = SessionStorage.prototype;\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n return 0;\n }\n };\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n return SessionStorage;\n}();\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\nvar _scrollHandler = require(\"./scroll-handler\");\nvar _react = require(\"react\");\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\n\nvar _gatsbyScript = require(\"gatsby-script\");\n\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== `development`) {\n return;\n }\n\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname)); // Clear scripts after we've used them to avoid leaky behavior\n\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n}; // Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\n\n\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\n\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\n\nvar _integration = require(\"@builder.io/partytown/integration\");\n\nvar _getForwards = require(\"./get-forwards\");\n\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n\n if (existingSnippet) {\n existingSnippet.remove();\n }\n\n if (existingSandbox) {\n existingSandbox.remove();\n }\n\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(`script`);\n snippet.dataset.partytown = ``;\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","exports.components = {\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-500-js\": () => import(\"./../../../src/pages/500.js\" /* webpackChunkName: \"component---src-pages-500-js\" */),\n \"component---src-pages-app-js\": () => import(\"./../../../src/pages/app.js\" /* webpackChunkName: \"component---src-pages-app-js\" */),\n \"component---src-pages-main-js\": () => import(\"./../../../src/pages/main.js\" /* webpackChunkName: \"component---src-pages-main-js\" */),\n \"component---src-templates-about-us-js\": () => import(\"./../../../src/templates/aboutUs.js\" /* webpackChunkName: \"component---src-templates-about-us-js\" */),\n \"component---src-templates-agreement-tutorial-js\": () => import(\"./../../../src/templates/agreementTutorial.js\" /* webpackChunkName: \"component---src-templates-agreement-tutorial-js\" */),\n \"component---src-templates-blog-js\": () => import(\"./../../../src/templates/blog.js\" /* webpackChunkName: \"component---src-templates-blog-js\" */),\n \"component---src-templates-branch-offices-adversiting-js\": () => import(\"./../../../src/templates/branchOfficesAdversiting.js\" /* webpackChunkName: \"component---src-templates-branch-offices-adversiting-js\" */),\n \"component---src-templates-branch-offices-js\": () => import(\"./../../../src/templates/branchOffices.js\" /* webpackChunkName: \"component---src-templates-branch-offices-js\" */),\n \"component---src-templates-category-js\": () => import(\"./../../../src/templates/category.js\" /* webpackChunkName: \"component---src-templates-category-js\" */),\n \"component---src-templates-certifications-js\": () => import(\"./../../../src/templates/certifications.js\" /* webpackChunkName: \"component---src-templates-certifications-js\" */),\n \"component---src-templates-contact-js\": () => import(\"./../../../src/templates/contact.js\" /* webpackChunkName: \"component---src-templates-contact-js\" */),\n \"component---src-templates-exam-js\": () => import(\"./../../../src/templates/exam.js\" /* webpackChunkName: \"component---src-templates-exam-js\" */),\n \"component---src-templates-home-js\": () => import(\"./../../../src/templates/home.js\" /* webpackChunkName: \"component---src-templates-home-js\" */),\n \"component---src-templates-job-area-js\": () => import(\"./../../../src/templates/jobArea.js\" /* webpackChunkName: \"component---src-templates-job-area-js\" */),\n \"component---src-templates-new-branch-offices-adversiting-js\": () => import(\"./../../../src/templates/newBranchOfficesAdversiting.js\" /* webpackChunkName: \"component---src-templates-new-branch-offices-adversiting-js\" */),\n \"component---src-templates-other-batteries-js\": () => import(\"./../../../src/templates/otherBatteries.js\" /* webpackChunkName: \"component---src-templates-other-batteries-js\" */),\n \"component---src-templates-post-js\": () => import(\"./../../../src/templates/post.js\" /* webpackChunkName: \"component---src-templates-post-js\" */),\n \"component---src-templates-pre-ocupational-js\": () => import(\"./../../../src/templates/preOcupational.js\" /* webpackChunkName: \"component---src-templates-pre-ocupational-js\" */),\n \"component---src-templates-requirements-js\": () => import(\"./../../../src/templates/requirements.js\" /* webpackChunkName: \"component---src-templates-requirements-js\" */),\n \"component---src-templates-services-landing-js\": () => import(\"./../../../src/templates/servicesLanding.js\" /* webpackChunkName: \"component---src-templates-services-landing-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-google-tagmanager-timeout/gatsby-browser.js'),\n options: {\"plugins\":[],\"id\":\"GTM-WM3K8XK\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"CMT Salud\",\"short_name\":\"CMT\",\"theme_color\":\"#dc582a\",\"start_url\":\"/\",\"icon\":\"src/images/faviconHome.png\",\"lang\":\"es-CL\",\"cache_busting_mode\":\"none\",\"legacy\":true,\"theme_color_in_head\":true,\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":null},\n },{\n plugin: require('../node_modules/gatsby-plugin-react-i18next/gatsby-browser.js'),\n options: {\"plugins\":[],\"localeJsonSourceName\":\"locale\",\"languages\":[\"es-CL\",\"es-PE\"],\"defaultLanguage\":\"es-CL\",\"redirect\":false,\"siteUrl\":\"https://www.cmtsalud.cl\",\"trailingSlash\":\"always\",\"i18nextOptions\":{\"interpolation\":{\"escapeValue\":false},\"keySeparator\":\".\",\"nsSeparator\":true},\"pages\":[{\"matchPath\":\"/:lang?/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/nosotros/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/nosotros\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/sucursales/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/sucursales/santiago/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/sucursales/santiago/exito/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/sede/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/contacto/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/satisfactorio/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/blog/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/blog/:slug/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/blog/:uri/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/blog/page/:pageNumber/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/examenes/:slug/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/examenes/:slug\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/app/reservar/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/app/login/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/app/checker/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/checker/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/app/checker/:token\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/404.html/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/404.html\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/404/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/500/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/500\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/500.html/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/app/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/main/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/login/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/tutorial-convenios-autorizacion/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/tutorial-convenios-oc/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/nuevos-centros-medicos-en-valdivia-y-talca/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/nuevos-centros-medicos-en-valdivia-y-talca\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/nuevos-centros-medicos-exito/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/nuevos-centros-medicos-exito\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/examenes/otras-baterias-de-examenes/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/examenes/otras-baterias-de-examenes/satisfactorio/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/examenes/otros-examenes/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/examenes/otros-examenes/satisfactorio/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/rubros/:slug/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/personaliza-tu-procotolo/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/personaliza-tu-procotolo/satisfactorio/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/examenes-medicos-ocupacionales/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/examenes-binacionales/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/operativos-de-salud-en-terreno/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/operativos-de-salud-en-terreno/satisfactorio/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/unidades-de-salud-en-empresas/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/unidades-de-salud-en-empresas/satisfactorio/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/administracion-de-topicos/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/administracion-de-topicos/satisfactorio/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/vigilancia-medica/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/vigilancia-medica/satisfactorio/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/examenes-medicos-ocupacionales-emo/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/examenes-medicos-ocupacionales-emo/satisfactorio/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/campanas-medicas-inhouse/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/campanas-medicas-inhouse/satisfactorio/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/examenes-de-laboratorio/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/examenes-de-laboratorio/satisfactorio/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/examenes-medico-ocupacional-basico-operativo/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/examenes-medico-ocupacional-administrativo/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]},{\"matchPath\":\"/:lang?/certificaciones/\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"es-PE\",\"es-CL\"]}]},\n },{\n plugin: require('../gatsby-browser.jsx'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","exports.createContentDigest = () => ``\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","import React from \"react\"\n\nexport const ServerSliceRenderer = ({ sliceId, children }) => {\n const contents = [\n React.createElement(`slice-start`, {\n id: `${sliceId}-1`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-1`,\n }),\n ]\n\n if (children) {\n // if children exist, we split the slice into a before and after piece\n // see renderSlices in render-html\n contents.push(children)\n contents.push(\n React.createElement(`slice-start`, {\n id: `${sliceId}-2`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-2`,\n })\n )\n }\n\n return contents\n}\n","import React, { useContext } from \"react\"\nimport { createContentDigest } from \"gatsby-core-utils/create-content-digest\"\nimport { SlicesMapContext, SlicesPropsContext } from \"./context\"\nimport { ServerSliceRenderer } from \"./server-slice-renderer\"\n\nconst getSliceId = (sliceName, sliceProps) => {\n if (!Object.keys(sliceProps).length) {\n return sliceName\n }\n\n const propsString = createContentDigest(sliceProps)\n return `${sliceName}-${propsString}`\n}\n\nexport const ServerSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesProps = useContext(SlicesPropsContext)\n const concreteSliceName = slicesMap[sliceName]\n\n if (!concreteSliceName) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n const sliceId = getSliceId(concreteSliceName, sliceProps)\n\n // set props on context object for static-entry to return\n let sliceUsage = slicesProps[sliceId]\n if (!sliceUsage) {\n slicesProps[sliceId] = sliceUsage = {\n props: sliceProps,\n sliceName: concreteSliceName,\n hasChildren: !!children,\n }\n } else {\n if (children) {\n sliceUsage.hasChildren = true\n }\n }\n\n return {children}\n}\n","import React, { useContext } from \"react\"\nimport { SlicesMapContext, SlicesResultsContext } from \"./context\"\n\nexport const InlineSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesResultsMap = useContext(SlicesResultsContext)\n const concreteSliceName = slicesMap[sliceName]\n const slice = slicesResultsMap.get(concreteSliceName)\n\n if (!slice) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n return (\n \n {children}\n \n )\n}\n","\"use client\"\n\nimport React, { useContext } from \"react\"\nimport { ServerSlice } from \"./slice/server-slice\"\nimport { InlineSlice } from \"./slice/inline-slice\"\nimport { SlicesContext } from \"./slice/context\"\n\nexport function Slice(props) {\n if (process.env.GATSBY_SLICES) {\n // we use sliceName internally, so remap alias to sliceName\n const internalProps = {\n ...props,\n sliceName: props.alias,\n }\n delete internalProps.alias\n delete internalProps.__renderedByLocation\n\n const slicesContext = useContext(SlicesContext)\n\n // validate props\n const propErrors = validateSliceProps(props)\n if (Object.keys(propErrors).length) {\n throw new SlicePropsError(\n slicesContext.renderEnvironment === `browser`,\n internalProps.sliceName,\n propErrors,\n props.__renderedByLocation\n )\n }\n\n if (slicesContext.renderEnvironment === `server`) {\n return \n } else if (slicesContext.renderEnvironment === `browser`) {\n // in the browser, we'll just render the component as is\n return \n } else if (slicesContext.renderEnvironment === `engines`) {\n // if we're in SSR, we'll just render the component as is\n return \n } else if (slicesContext.renderEnvironment === `slices`) {\n // we are not yet supporting nested slices\n\n let additionalContextMessage = ``\n\n // just in case generating additional contextual information fails, we still want the base message to show\n // and not show another cryptic error message\n try {\n additionalContextMessage = `\\n\\nSlice component \"${slicesContext.sliceRoot.name}\" (${slicesContext.sliceRoot.componentPath}) tried to render `\n } catch {\n // don't need to handle it, we will just skip the additional context message if we fail to generate it\n }\n\n throw new Error(\n `Nested slices are not supported.${additionalContextMessage}\\n\\nSee https://v5.gatsbyjs.com/docs/reference/built-in-components/gatsby-slice#nested-slices`\n )\n } else {\n throw new Error(\n `Slice context \"${slicesContext.renderEnvironment}\" is not supported.`\n )\n }\n } else {\n throw new Error(`Slices are disabled.`)\n }\n}\n\nclass SlicePropsError extends Error {\n constructor(inBrowser, sliceName, propErrors, renderedByLocation) {\n const errors = Object.entries(propErrors)\n .map(\n ([key, value]) =>\n `not serializable \"${value}\" type passed to \"${key}\" prop`\n )\n .join(`, `)\n\n const name = `SlicePropsError`\n let stack = ``\n let message = ``\n\n if (inBrowser) {\n // They're just (kinda) kidding, I promise... You can still work here <3\n // https://www.gatsbyjs.com/careers/\n const fullStack =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDebugCurrentFrame.getCurrentStack()\n\n // remove the first line of the stack trace\n const stackLines = fullStack.trim().split(`\\n`).slice(1)\n stackLines[0] = stackLines[0].trim()\n stack = `\\n` + stackLines.join(`\\n`)\n\n message = `Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n } else {\n // we can't really grab any extra info outside of the browser, so just print what we can\n message = `${name}: Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n const stackLines = new Error().stack.trim().split(`\\n`).slice(2)\n stack = `${message}\\n${stackLines.join(`\\n`)}`\n }\n\n super(message)\n this.name = name\n if (stack) {\n this.stack = stack\n } else {\n Error.captureStackTrace(this, SlicePropsError)\n }\n\n if (renderedByLocation) {\n this.forcedLocation = { ...renderedByLocation, functionName: `Slice` }\n }\n }\n}\n\nconst validateSliceProps = (\n props,\n errors = {},\n seenObjects = [],\n path = null\n) => {\n // recursively validate all props\n for (const [name, value] of Object.entries(props)) {\n if (\n value === undefined ||\n value === null ||\n (!path && name === `children`)\n ) {\n continue\n }\n\n const propPath = path ? `${path}.${name}` : name\n\n if (typeof value === `function`) {\n errors[propPath] = typeof value\n } else if (typeof value === `object` && seenObjects.indexOf(value) <= 0) {\n seenObjects.push(value)\n validateSliceProps(value, errors, seenObjects, propPath)\n }\n }\n\n return errors\n}\n","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport { StaticQuery, StaticQueryContext, useStaticQuery } from \"./static-query\"\nexport { Slice } from \"./slice\"\nexport * from \"gatsby-script\"\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import { createFromReadableStream } from \"react-server-dom-webpack\"\nimport prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n slicesMap: pageData.slicesMap ?? {},\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\n })\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.partialHydrationDb = new Map()\n this.slicesDataDb = new Map()\n this.sliceInflightDb = new Map()\n this.slicesDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadSliceDataJson(sliceName) {\n if (this.slicesDataDb.has(sliceName)) {\n const jsonPayload = this.slicesDataDb.get(sliceName)\n return Promise.resolve({ sliceName, jsonPayload })\n }\n\n const url = `/slice-data/${sliceName}.json`\n return doFetch(url, `GET`).then(res => {\n const jsonPayload = JSON.parse(res.responseText)\n\n this.slicesDataDb.set(sliceName, jsonPayload)\n return { sliceName, jsonPayload }\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return {\n error: page.error,\n status: page.status,\n }\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const loadDataPromises = [\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]\n\n if (global.hasPartialHydration) {\n loadDataPromises.push(this.loadPartialHydrationJson(pagePath))\n }\n\n const inFlightPromise = Promise.all(loadDataPromises).then(allData => {\n const [appDataResponse, pageDataResponse, rscDataResponse] = allData\n\n if (\n pageDataResponse.status === PageResourceStatus.Error ||\n rscDataResponse?.status === PageResourceStatus.Error\n ) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = pageDataResponse.payload\n\n const {\n componentChunkName,\n staticQueryHashes: pageStaticQueryHashes = [],\n slicesMap = {},\n } = pageData\n\n const finalResult = {}\n\n const dedupedSliceNames = Array.from(new Set(Object.values(slicesMap)))\n\n const loadSlice = slice => {\n if (this.slicesDb.has(slice.name)) {\n return this.slicesDb.get(slice.name)\n } else if (this.sliceInflightDb.has(slice.name)) {\n return this.sliceInflightDb.get(slice.name)\n }\n\n const inFlight = this.loadComponent(slice.componentChunkName).then(\n component => {\n return {\n component: preferDefault(component),\n sliceContext: slice.result.sliceContext,\n data: slice.result.data,\n }\n }\n )\n\n this.sliceInflightDb.set(slice.name, inFlight)\n inFlight.then(results => {\n this.slicesDb.set(slice.name, results)\n this.sliceInflightDb.delete(slice.name)\n })\n\n return inFlight\n }\n\n return Promise.all(\n dedupedSliceNames.map(sliceName => this.loadSliceDataJson(sliceName))\n ).then(slicesData => {\n const slices = []\n const dedupedStaticQueryHashes = [...pageStaticQueryHashes]\n\n for (const { jsonPayload, sliceName } of Object.values(slicesData)) {\n slices.push({ name: sliceName, ...jsonPayload })\n for (const staticQueryHash of jsonPayload.staticQueryHashes) {\n if (!dedupedStaticQueryHashes.includes(staticQueryHash)) {\n dedupedStaticQueryHashes.push(staticQueryHash)\n }\n }\n }\n\n const loadChunkPromises = [\n Promise.all(slices.map(loadSlice)),\n this.loadComponent(componentChunkName, `head`),\n ]\n\n if (!global.hasPartialHydration) {\n loadChunkPromises.push(this.loadComponent(componentChunkName))\n }\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n // get list of components to get\n const componentChunkPromises = Promise.all(loadChunkPromises).then(\n components => {\n const [sliceComponents, headComponent, pageComponent] = components\n\n finalResult.createdAt = new Date()\n\n for (const sliceComponent of sliceComponents) {\n if (!sliceComponent || sliceComponent instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = sliceComponent\n }\n }\n\n if (\n !global.hasPartialHydration &&\n (!pageComponent || pageComponent instanceof Error)\n ) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = pageComponent\n }\n\n let pageResources\n\n if (finalResult.status !== PageResourceStatus.Error) {\n finalResult.status = PageResourceStatus.Success\n if (\n pageDataResponse.notFound === true ||\n rscDataResponse?.notFound === true\n ) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appDataResponse\n ? appDataResponse.webpackCompilationHash\n : ``,\n })\n\n if (typeof rscDataResponse?.payload === `string`) {\n pageResources = toPageResources(pageData, null, headComponent)\n\n pageResources.partialHydration = rscDataResponse.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(rscDataResponse.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n } else {\n pageResources = toPageResources(\n pageData,\n pageComponent,\n headComponent\n )\n }\n }\n\n // undefined if final result is an error\n return pageResources\n }\n )\n\n // get list of static queries to get\n const staticQueryBatchPromise = Promise.all(\n dedupedStaticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromises, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n\n if (global.hasPartialHydration) {\n return Promise.all([\n prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n ),\n prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = (chunkName, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name \"${chunkName}\"`\n )\n }\n\n return (\n asyncRequires[exportType][chunkName]()\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n\nexport function getSliceResults() {\n if (instance) {\n return instance.slicesDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in head.\n * @param {string} tagName\n */\nexport function warnForInvalidTags(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}`\n\n warnOnce(warning)\n }\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport { VALID_NODE_NAMES } from \"./constants\"\nimport {\n headExportValidator,\n filterHeadProps,\n warnForInvalidTags,\n diffNodes,\n} from \"./utils\"\n\nconst hiddenRoot = document.createElement(`div`)\n\nconst removePrevHeadElements = () => {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nconst onHeadRendered = () => {\n const validHeadNodes = []\n\n const seenIds = new Map()\n for (const node of hiddenRoot.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!VALID_NODE_NAMES.includes(nodeName)) {\n warnForInvalidTags(nodeName)\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // Create an element for scripts to make script work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n const script = document.createElement(`script`)\n for (const attr of clonedNode.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = clonedNode.innerHTML\n clonedNode = script\n }\n\n if (id) {\n if (!seenIds.has(id)) {\n validHeadNodes.push(clonedNode)\n seenIds.set(id, validHeadNodes.length - 1)\n } else {\n const indexOfPreviouslyInsertedNode = seenIds.get(id)\n validHeadNodes[indexOfPreviouslyInsertedNode].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n }\n\n const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n if (existingHeadElements.length === 0) {\n document.head.append(...validHeadNodes)\n return\n }\n\n const newHeadNodes = []\n diffNodes({\n oldNodes: existingHeadElements,\n newNodes: validHeadNodes,\n onStale: node => node.parentNode.removeChild(node),\n onNew: node => newHeadNodes.push(node),\n })\n\n document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n // We set up observer to be able to regenerate after react-refresh\n // updates our hidden element.\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const Head = pageComponent.Head\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n \n \n \n \n \n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport {\n navigate as reachNavigate,\n globalHistory,\n} from \"@gatsbyjs/reach-router\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return \n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"./static-query\"\nimport {\n SlicesMapContext,\n SlicesContext,\n SlicesResultsContext,\n} from \"./slice/context\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n getSliceResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n const slicesContext = {\n renderEnvironment: `browser`,\n }\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n const sliceResults = getSliceResults()\n\n return (\n \n \n \n \n \n {children}\n \n \n \n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n\n return\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","const map = new WeakMap()\n\nexport function reactDOMUtils() {\n const reactDomClient = require(`react-dom/client`)\n\n const render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n const hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n\n return { render, hydrate }\n}\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","import React from \"react\"\n\nconst SlicesResultsContext = React.createContext({})\nconst SlicesContext = React.createContext({})\nconst SlicesMapContext = React.createContext({})\nconst SlicesPropsContext = React.createContext({})\n\nexport {\n SlicesResultsContext,\n SlicesContext,\n SlicesMapContext,\n SlicesPropsContext,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { createServerOrClientContext } from \"./context-utils\"\n\nconst StaticQueryContext = createServerOrClientContext(`StaticQuery`, {})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData && Loading (StaticQuery)
}\n \n )\n}\n\nlet warnedAboutStaticQuery = false\n\n// TODO(v6): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n if (process.env.NODE_ENV === `development` && !warnedAboutStaticQuery) {\n console.warn(\n `The component is deprecated and will be removed in Gatsby v6. Use useStaticQuery instead. Refer to the migration guide for more information: https://gatsby.dev/migrating-4-to-5/#staticquery--is-deprecated`\n )\n warnedAboutStaticQuery = true\n }\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport { StaticQuery, StaticQueryContext, useStaticQuery }\n","import React from \"react\"\n\n// Ensure serverContext is not created more than once as React will throw when creating it more than once\n// https://github.com/facebook/react/blob/dd2d6522754f52c70d02c51db25eb7cbd5d1c8eb/packages/react/src/ReactServerContext.js#L101\nconst createServerContext = (name, defaultValue = null) => {\n /* eslint-disable no-undef */\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport { createServerOrClientContext }\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","const React = require('react');\nconst ReactDOM = require('react-dom/client');\n\nexports.replaceHydrateFunction = () => {\n return (element, container) => {\n const root = ReactDOM.createRoot(container);\n root.render(element);\n }\n};","const getLocation = source => {\n const { search, hash, href, origin, protocol, host, hostname, port } =\n source.location\n let { pathname } = source.location\n\n if (!pathname && href && canUseDOM) {\n const url = new URL(href)\n pathname = url.pathname\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search,\n hash,\n href,\n origin,\n protocol,\n host,\n hostname,\n port,\n state: source.history.state,\n key: (source.history.state && source.history.state.key) || \"initial\",\n }\n}\n\nconst createHistory = (source, options) => {\n let listeners = []\n let location = getLocation(source)\n let transitioning = false\n let resolveTransition = () => {}\n\n return {\n get location() {\n return location\n },\n\n get transitioning() {\n return transitioning\n },\n\n _onTransitionComplete() {\n transitioning = false\n resolveTransition()\n },\n\n listen(listener) {\n listeners.push(listener)\n\n const popstateListener = () => {\n location = getLocation(source)\n listener({ location, action: \"POP\" })\n }\n\n source.addEventListener(\"popstate\", popstateListener)\n\n return () => {\n source.removeEventListener(\"popstate\", popstateListener)\n listeners = listeners.filter(fn => fn !== listener)\n }\n },\n\n navigate(to, { state, replace = false } = {}) {\n if (typeof to === \"number\") {\n source.history.go(to)\n } else {\n state = { ...state, key: Date.now() + \"\" }\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to)\n } else {\n source.history.pushState(state, null, to)\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to)\n }\n }\n\n location = getLocation(source)\n transitioning = true\n const transition = new Promise(res => (resolveTransition = res))\n listeners.forEach(listener => listener({ location, action: \"PUSH\" }))\n return transition\n },\n }\n}\n\n// Stores history entries in memory for testing or other platforms like Native\nconst createMemorySource = (initialPath = \"/\") => {\n const searchIndex = initialPath.indexOf(\"?\")\n const initialLocation = {\n pathname:\n searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\",\n }\n let index = 0\n const stack = [initialLocation]\n const states = [null]\n\n return {\n get location() {\n return stack[index]\n },\n addEventListener(name, fn) {},\n removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack\n },\n get index() {\n return index\n },\n get state() {\n return states[index]\n },\n pushState(state, _, uri) {\n const [pathname, search = \"\"] = uri.split(\"?\")\n index++\n stack.push({ pathname, search: search.length ? `?${search}` : search })\n states.push(state)\n },\n replaceState(state, _, uri) {\n const [pathname, search = \"\"] = uri.split(\"?\")\n stack[index] = { pathname, search }\n states[index] = state\n },\n go(to) {\n const newIndex = index + to\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return\n }\n\n index = newIndex\n },\n },\n }\n}\n\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nconst canUseDOM = !!(\n typeof window !== \"undefined\" &&\n window.document &&\n window.document.createElement\n)\nconst getSource = () => {\n return canUseDOM ? window : createMemorySource()\n}\n\nconst globalSource = getSource()\nconst globalHistory = createHistory(globalSource)\nconst { navigate } = globalHistory\n\nexport { globalHistory, navigate, createHistory, createMemorySource }\n","/* eslint-disable no-undef */\n\nimport React from \"react\"\n\nconst createServerContext = (name, defaultValue = null) => {\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport const BaseContext = createServerOrClientContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n})\nexport const LocationContext = createServerOrClientContext(\"Location\")\n","import * as React from \"react\"\nimport { BaseContext, LocationContext } from \"./hooks-create-context\"\n\nexport const useBaseContext = () => React.useContext(BaseContext)\nexport const useLocationContext = () => React.useContext(LocationContext)\n","import * as React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { navigate } from \"./history\"\nimport { resolve, insertParams } from \"./utils\"\nimport { useBaseContext, useLocationContext } from \"./hooks-use-context\"\n\nfunction RedirectRequest(uri) {\n this.uri = uri\n}\n\nconst isRedirect = o => o instanceof RedirectRequest\n\nconst redirectTo = to => {\n throw new RedirectRequest(to)\n}\n\nfunction RedirectImpl(props) {\n const { to, replace = true, state, noThrow, baseuri } = props\n\n React.useEffect(() => {\n Promise.resolve().then(() => {\n const resolvedTo = resolve(to, baseuri)\n navigate(insertParams(resolvedTo, props), { replace, state })\n })\n }, [])\n\n const resolvedTo = resolve(to, baseuri)\n\n if (!noThrow) {\n redirectTo(insertParams(resolvedTo, props))\n }\n\n return null\n}\n\nconst Redirect = props => {\n const locationContext = useLocationContext()\n const { baseuri } = useBaseContext()\n\n return \n}\n\nRedirect.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string.isRequired,\n}\n\nexport { Redirect, isRedirect, redirectTo }\n","import * as React from \"react\"\nimport invariant from \"invariant\"\nimport { Redirect } from \"./redirect\"\n\n/**\n * startsWith(string, search) - Check if `string` starts with `search`\n */\nconst startsWith = (string, search) => {\n return string.substr(0, search.length) === search\n}\n\n/**\n * pick(routes, uri)\n\n Ranks and picks the best route to match. Each segment gets the highest\n amount of points, then the type of segment gets an additional amount of\n points where\n\n static > dynamic > splat > root\n\n This way we don't have to worry about the order of our routes, let the\n computers do it.\n\n A route looks like this\n\n { path, default, value }\n\n And a returned match looks like:\n\n { route, params, uri }\n\n I know, I should use TypeScript not comments for these types. \n */\nconst pick = (routes, uri) => {\n let match\n let default_\n\n const [uriPathname] = uri.split(\"?\")\n const uriSegments = segmentize(uriPathname)\n const isRootUri = uriSegments[0] === \"\"\n const ranked = rankRoutes(routes)\n\n for (let i = 0, l = ranked.length; i < l; i++) {\n let missed = false\n const route = ranked[i].route\n\n if (route.default) {\n default_ = {\n route,\n params: {},\n uri,\n }\n continue\n }\n\n const routeSegments = segmentize(route.path)\n const params = {}\n const max = Math.max(uriSegments.length, routeSegments.length)\n let index = 0\n\n for (; index < max; index++) {\n const routeSegment = routeSegments[index]\n const uriSegment = uriSegments[index]\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n const param = routeSegment.slice(1) || \"*\"\n params[param] = uriSegments\n .slice(index)\n .map(decodeURIComponent)\n .join(\"/\")\n break\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true\n break\n }\n\n const dynamicMatch = paramRe.exec(routeSegment)\n\n if (dynamicMatch && !isRootUri) {\n const matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1\n invariant(\n matchIsNotReserved,\n ` dynamic segment \"${dynamicMatch[1]}\" is a reserved name. Please use a different name in path \"${route.path}\".`\n )\n const value = decodeURIComponent(uriSegment)\n params[dynamicMatch[1]] = value\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true\n break\n }\n }\n\n if (!missed) {\n match = {\n route,\n params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\"),\n }\n break\n }\n }\n\n return match || default_ || null\n}\n\n/**\n * match(path, uri) - Matches just one path to a uri, also lol\n */\nconst match = (path, uri) => pick([{ path }], uri)\n\n/**\n * resolve(to, basepath)\n\n Resolves URIs as though every path is a directory, no files. Relative URIs\n in the browser can feel awkward because not only can you be \"in a directory\"\n you can be \"at a file\", too. For example\n\n browserSpecResolve('foo', '/bar/') => /bar/foo\n browserSpecResolve('foo', '/bar') => /foo\n\n But on the command line of a file system, it's not as complicated, you can't\n `cd` from a file, only directories. This way, links have to know less about\n their current path. To go deeper you can do this:\n\n \n // instead of\n \n\n Just like `cd`, if you want to go deeper from the command line, you do this:\n\n cd deeper\n // not\n cd $(pwd)/deeper\n\n By treating every path as a directory, linking to relative paths should\n require less contextual information and (fingers crossed) be more intuitive.\n */\nconst resolve = (to, base) => {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to\n }\n\n const [toPathname, toQuery] = to.split(\"?\")\n const [basePathname] = base.split(\"?\")\n\n const toSegments = segmentize(toPathname)\n const baseSegments = segmentize(basePathname)\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery)\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n const pathname = baseSegments.concat(toSegments).join(\"/\")\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery)\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n const allSegments = baseSegments.concat(toSegments)\n const segments = []\n for (let i = 0, l = allSegments.length; i < l; i++) {\n const segment = allSegments[i]\n if (segment === \"..\") segments.pop()\n else if (segment !== \".\") segments.push(segment)\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery)\n}\n\nconst insertParams = (path, params) => {\n const [pathBase, query = \"\"] = path.split(\"?\")\n const segments = segmentize(pathBase)\n let constructedPath =\n \"/\" +\n segments\n .map(segment => {\n const match = paramRe.exec(segment)\n return match ? params[match[1]] : segment\n })\n .join(\"/\")\n const { location: { search = \"\" } = {} } = params\n const searchSplit = search.split(\"?\")[1] || \"\"\n constructedPath = addQuery(constructedPath, query, searchSplit)\n return constructedPath\n}\n\nconst validateRedirect = (from, to) => {\n const filter = segment => isDynamic(segment)\n const fromString = segmentize(from).filter(filter).sort().join(\"/\")\n const toString = segmentize(to).filter(filter).sort().join(\"/\")\n return fromString === toString\n}\n\nconst paramRe = /^:(.+)/\n\nconst SEGMENT_POINTS = 4\nconst STATIC_POINTS = 3\nconst DYNAMIC_POINTS = 2\nconst SPLAT_PENALTY = 1\nconst ROOT_POINTS = 1\n\nconst isRootSegment = segment => segment === \"\"\nconst isDynamic = segment => paramRe.test(segment)\nconst isSplat = segment => segment && segment[0] === \"*\"\n\nconst rankRoute = (route, index) => {\n const score = route.default\n ? 0\n : segmentize(route.path).reduce((score, segment) => {\n score += SEGMENT_POINTS\n if (isRootSegment(segment)) score += ROOT_POINTS\n else if (isDynamic(segment)) score += DYNAMIC_POINTS\n else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY\n else score += STATIC_POINTS\n return score\n }, 0)\n return { route, score, index }\n}\n\nconst rankRoutes = routes =>\n routes\n .map(rankRoute)\n .sort((a, b) =>\n a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index\n )\n\nconst segmentize = uri =>\n uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\")\n .split(\"/\")\n\nconst addQuery = (pathname, ...query) => {\n query = query.filter(q => q && q.length > 0)\n return pathname + (query && query.length > 0 ? `?${query.join(\"&\")}` : \"\")\n}\n\nconst reservedNames = [\"uri\", \"path\"]\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nconst shallowCompare = (obj1, obj2) => {\n const obj1Keys = Object.keys(obj1)\n return (\n obj1Keys.length === Object.keys(obj2).length &&\n obj1Keys.every(key => obj2.hasOwnProperty(key) && obj1[key] === obj2[key])\n )\n}\n\nconst stripSlashes = str => str.replace(/(^\\/+|\\/+$)/g, \"\")\n\nconst createRoute = basepath => element => {\n if (!element) {\n return null\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath))\n }\n invariant(\n element.props.path || element.props.default || element.type === Redirect,\n `: Children of must have a \\`path\\` or \\`default\\` prop, or be a \\`\\`. None found on element type \\`${element.type}\\``\n )\n\n invariant(\n !(element.type === Redirect && (!element.props.from || !element.props.to)),\n ` requires both \"from\" and \"to\" props when inside a .`\n )\n\n invariant(\n !(\n element.type === Redirect &&\n !validateRedirect(element.props.from, element.props.to)\n ),\n ` has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.`\n )\n\n if (element.props.default) {\n return { value: element, default: true }\n }\n\n const elementPath =\n element.type === Redirect ? element.props.from : element.props.path\n\n const path =\n elementPath === \"/\"\n ? basepath\n : `${stripSlashes(basepath)}/${stripSlashes(elementPath)}`\n\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? `${stripSlashes(path)}/*` : path,\n }\n}\n\nconst shouldNavigate = event =>\n !event.defaultPrevented &&\n event.button === 0 &&\n !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey)\n\nexport {\n startsWith,\n pick,\n match,\n resolve,\n insertParams,\n validateRedirect,\n shallowCompare,\n createRoute,\n shouldNavigate,\n}\n","/* eslint-disable jsx-a11y/anchor-has-content */\nimport * as React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { navigate } from \"./history\"\nimport { resolve, startsWith, shouldNavigate, shallowCompare } from \"./utils\"\nimport { useBaseContext, useLocationContext } from \"./hooks-use-context\"\n\nlet { forwardRef } = React\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = C => C\n}\n\nconst k = () => {}\n\nexport const Link = forwardRef(({ innerRef, ...props }, ref) => {\n const { baseuri } = useBaseContext()\n const { location } = useLocationContext()\n\n const { to, state, replace, getProps = k, ...anchorProps } = props\n const href = resolve(to, baseuri)\n const encodedHref = encodeURI(href)\n const isCurrent = location.pathname === encodedHref\n const isPartiallyCurrent = startsWith(location.pathname, encodedHref)\n\n return (\n {\n if (anchorProps.onClick) anchorProps.onClick(event)\n if (shouldNavigate(event)) {\n event.preventDefault()\n let shouldReplace = replace\n if (typeof replace !== \"boolean\" && isCurrent) {\n const { key, ...restState } = { ...location.state }\n shouldReplace = shallowCompare({ ...state }, restState)\n }\n navigate(href, {\n state,\n replace: shouldReplace,\n })\n }\n }}\n />\n )\n})\n\nLink.displayName = \"Link\"\n\nLink.propTypes = {\n to: PropTypes.string.isRequired,\n}\n","// MIT LICENSE - Taken from: https://github.com/tatethurston/react-use-error-boundary/blob/525225a34d4ad50f52b5f5ac8731cdf6999cf8a8/src/index.tsx\n\nimport * as React from \"react\"\n\nclass ErrorBoundary extends React.Component {\n displayName = \"ReactUseErrorBoundary\"\n\n componentDidCatch(...args) {\n // silence React warning:\n // ErrorBoundary: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI\n this.setState({})\n this.props.onError(...args)\n }\n\n render() {\n return this.props.children\n }\n}\n\nconst noop = () => false\n\nconst errorBoundaryContext = React.createContext({\n componentDidCatch: { current: undefined },\n error: undefined,\n setError: noop,\n})\n\nexport function ErrorBoundaryContext({ children }) {\n const [error, setError] = React.useState()\n const componentDidCatch = React.useRef()\n const ctx = React.useMemo(\n () => ({\n componentDidCatch,\n error,\n setError,\n }),\n [error]\n )\n return (\n \n {\n setError(error)\n componentDidCatch.current?.(error, errorInfo)\n }}\n >\n {children}\n \n \n )\n}\nErrorBoundaryContext.displayName = \"ReactUseErrorBoundaryContext\"\n\nexport function withErrorBoundary(WrappedComponent) {\n function WithErrorBoundary(props) {\n return (\n \n \n \n )\n }\n WithErrorBoundary.displayName = `WithErrorBoundary(${\n WrappedComponent.displayName ?? WrappedComponent.name ?? \"Component\"\n })`\n\n return WithErrorBoundary\n}\n\nexport function useErrorBoundary(componentDidCatch) {\n const ctx = React.useContext(errorBoundaryContext)\n ctx.componentDidCatch.current = componentDidCatch\n const resetError = React.useCallback(() => {\n ctx.setError(undefined)\n }, [])\n\n return [ctx.error, resetError]\n}\n","import * as React from \"react\"\nimport { globalHistory, navigate } from \"./history\"\nimport { isRedirect } from \"./redirect\"\nimport { LocationContext } from \"./hooks-create-context\"\nimport { withErrorBoundary, useErrorBoundary } from \"./error-boundary\"\n\nexport const LocationProvider = withErrorBoundary(\n ({ history = globalHistory, children }) => {\n const { location } = history\n\n const [context, setContext] = React.useState({ location })\n const [error] = useErrorBoundary()\n\n React.useEffect(() => {\n history._onTransitionComplete()\n }, [context.location])\n\n React.useEffect(() => {\n let isCancelled = false\n const unlisten = history.listen(({ location }) => {\n Promise.resolve().then(() => {\n requestAnimationFrame(() => {\n if (!isCancelled) {\n setContext({ location })\n }\n })\n })\n })\n return () => {\n isCancelled = true\n unlisten()\n }\n }, [])\n\n if (error) {\n if (isRedirect(error)) {\n navigate(error.uri, { replace: true })\n } else {\n throw error\n }\n }\n\n return (\n \n {typeof children === \"function\" ? children(context) : children || null}\n \n )\n }\n)\n","import * as React from \"react\"\nimport { useLocationContext } from \"./hooks-use-context\"\nimport { LocationProvider } from \"./location-provider\"\n\nexport const Location = ({ children }) => {\n const context = useLocationContext()\n\n if (context) {\n return children(context)\n } else {\n return {children}\n }\n}\n","import * as React from \"react\"\nimport { LocationContext } from \"./hooks-create-context\"\n\nexport const ServerLocation = ({ url, children }) => {\n const searchIndex = url.indexOf(\"?\")\n const searchExists = searchIndex > -1\n let pathname\n let search = \"\"\n const hash = \"\"\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex)\n search = url.substring(searchIndex)\n } else {\n pathname = url\n }\n\n return (\n \n {children}\n \n )\n}\n","import { useBaseContext, useLocationContext } from \"./hooks-use-context\"\nimport { resolve, match } from \"./utils\"\n\nconst Match = ({ path, children }) => {\n const { baseuri } = useBaseContext()\n const { location } = useLocationContext()\n\n const resolvedPath = resolve(path, baseuri)\n const result = match(resolvedPath, location.pathname)\n return children({\n location,\n match: result\n ? {\n ...result.params,\n uri: result.uri,\n path,\n }\n : null,\n })\n}\n\nexport { Match }\n","import * as React from \"react\"\n\nexport const FocusHandler = ({ uri, location, component, ...domProps }) => {\n return (\n \n )\n}\n\nlet focusHandlerCount = 0\n\nconst FocusHandlerImpl = ({\n children,\n style,\n component: Comp = \"div\",\n uri,\n location,\n ...domProps\n}) => {\n const focusWrapperRef = React.useRef()\n const initialRenderRef = React.useRef(true)\n const uriRef = React.useRef(uri)\n const pathnameRef = React.useRef(location.pathname)\n const shouldFocusRef = React.useRef(false)\n\n const _requestFocus = requestNode => {\n if (shouldFocusRef.current && requestNode) {\n requestNode.focus()\n }\n }\n\n // Initial mount/unmount logic\n React.useEffect(() => {\n focusHandlerCount++\n focus()\n\n return () => {\n focusHandlerCount--\n if (focusHandlerCount === 0) {\n initialRenderRef.current = true\n }\n }\n }, [])\n\n // Subsequent navigation logic\n React.useEffect(() => {\n let uriChanged = false\n let pathnameChanged = false\n\n if (uri !== uriRef.current) {\n uriRef.current = uri\n uriChanged = true\n }\n\n if (location.pathname !== pathnameRef.current) {\n pathnameRef.current = location.pathname\n pathnameChanged = true\n }\n\n const navigatedUpToMe = pathnameChanged && location.pathname === uri\n\n shouldFocusRef.current = uriChanged || navigatedUpToMe\n\n if (shouldFocusRef.current) {\n focus()\n }\n }, [uri, location])\n\n const focus = React.useCallback(() => {\n if (process.env.NODE_ENV === \"test\") {\n // TODO: Check if change for tests still needed\n return\n }\n\n // Don't focus the on initial render\n if (initialRenderRef.current) {\n initialRenderRef.current = false\n } else {\n _requestFocus(focusWrapperRef.current)\n }\n }, [])\n\n return (\n \n {children}\n \n )\n}\n","import * as React from \"react\"\nimport { BaseContext } from \"./hooks-create-context\"\nimport { createRoute, pick } from \"./utils\"\nimport { FocusHandler } from \"./focus-handler\"\nimport { useBaseContext, useLocationContext } from \"./hooks-use-context\"\n\nexport const Router = props => {\n const baseContext = useBaseContext()\n const locationContext = useLocationContext()\n\n return \n}\n\nfunction RouterImpl(props) {\n const {\n location,\n primary = true,\n children,\n basepath,\n baseuri,\n component = \"div\",\n ...domProps\n } = props\n\n const routes = React.Children.toArray(children).reduce((array, child) => {\n const routes = createRoute(basepath)(child)\n return array.concat(routes)\n }, [])\n const { pathname } = location\n const match = pick(routes, pathname)\n\n if (match) {\n const {\n params,\n uri,\n route,\n route: { value: element },\n } = match\n\n // remove the /* from the end for child routes relative paths\n const normalizedBasePath = route.default\n ? basepath\n : route.path.replace(/\\*$/, \"\")\n\n const props = {\n ...params,\n uri,\n location,\n }\n\n const clone = React.cloneElement(\n element,\n props,\n element.props.children ? (\n \n {element.props.children}\n \n ) : undefined\n )\n\n // using 'div' for < 16.3 support\n const FocusWrapper = primary ? FocusHandler : component\n // don't pass any props to 'div'\n const wrapperProps = primary\n ? { uri, location, component, ...domProps }\n : domProps\n\n return (\n \n {clone}\n \n )\n } else {\n return null\n }\n}\n","import { useLocationContext } from \"../lib/hooks-use-context\"\n\nexport const useLocation = () => {\n const context = useLocationContext()\n\n if (!context) {\n throw new Error(\n \"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\"\n )\n }\n\n return context.location\n}\n","export const useNavigate = () => {\n throw new Error(\n \"useNavigate is removed. Use import { navigate } from 'gatsby' instead\"\n )\n}\n","import { useBaseContext } from \"../lib/hooks-use-context\"\nimport { match } from \"../lib/utils\"\nimport { useLocation } from \"./use-location\"\n\nexport const useParams = () => {\n const context = useBaseContext()\n\n if (!context) {\n throw new Error(\n \"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\"\n )\n }\n\n const location = useLocation()\n\n const results = match(context.basepath, location.pathname)\n\n return results ? results.params : null\n}\n","import { useBaseContext } from \"../lib/hooks-use-context\"\nimport { resolve, match } from \"../lib/utils\"\nimport { useLocation } from \"./use-location\"\n\nexport const useMatch = path => {\n if (!path) {\n throw new Error(\n \"useMatch(path: string) requires an argument of a string to match against\"\n )\n }\n const context = useBaseContext()\n\n if (!context) {\n throw new Error(\n \"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\"\n )\n }\n\n const location = useLocation()\n\n const resolvedPath = resolve(path, context.baseuri)\n const result = match(resolvedPath, location.pathname)\n return result\n ? {\n ...result.params,\n uri: result.uri,\n path,\n }\n : null\n}\n","\"use strict\";\n\nexports.onRouteUpdate = function (_, pluginOptions) {\n if (process.env.NODE_ENV === \"production\" || pluginOptions.includeInDevelopment) {\n // wrap inside a timeout to ensure the title has properly been changed\n setTimeout(function () {\n window.dataLayer && window.dataLayer.push({\n event: \"gatsby-route-change\"\n });\n }, pluginOptions.timeout | 1000);\n }\n};","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\";\n\n// when we don't have localisation in our manifest, we tree shake everything away\nexport const onRouteUpdate = function onRouteUpdate({\n location\n}, pluginOptions) {\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _gatsby = require(\"gatsby\");\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n const defaultFilename = `manifest.webmanifest`;\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n return pathname.startsWith(startUrl);\n });\n if (!localizedManifest) {\n return defaultFilename;\n }\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.I18nextContext = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar I18nextContext = /*#__PURE__*/_react.default.createContext({\n language: 'en',\n languages: ['en'],\n routed: false,\n defaultLanguage: 'en',\n generateDefaultLanguagePage: false,\n originalPath: '/',\n path: '/'\n});\nexports.I18nextContext = I18nextContext;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.wrapPageElement = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _taggedTemplateLiteralLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/taggedTemplateLiteralLoose\"));\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _gatsby = require(\"gatsby\");\nvar _browserLang = _interopRequireDefault(require(\"browser-lang\"));\nvar _types = require(\"../types\");\nvar _i18next = _interopRequireDefault(require(\"i18next\"));\nvar _reactI18next = require(\"react-i18next\");\nvar _i18nextContext = require(\"../i18nextContext\");\nvar _outdent = _interopRequireDefault(require(\"outdent\"));\nvar _templateObject;\nvar withI18next = function withI18next(i18n, context) {\n return function (children) {\n return /*#__PURE__*/_react.default.createElement(_reactI18next.I18nextProvider, {\n i18n: i18n\n }, /*#__PURE__*/_react.default.createElement(_i18nextContext.I18nextContext.Provider, {\n value: context\n }, children));\n };\n};\nvar removePathPrefix = function removePathPrefix(pathname, stripTrailingSlash) {\n var pathPrefix = (0, _gatsby.withPrefix)('/');\n var result = pathname;\n if (pathname.startsWith(pathPrefix)) {\n result = pathname.replace(pathPrefix, '/');\n }\n if (stripTrailingSlash && result.endsWith('/')) {\n return result.slice(0, -1);\n }\n return result;\n};\nvar wrapPageElement = function wrapPageElement(_ref, _ref2) {\n var _data$localeJsonNodeN, _i18nextOptions$defau;\n var element = _ref.element,\n props = _ref.props;\n var _ref2$i18nextOptions = _ref2.i18nextOptions,\n i18nextOptions = _ref2$i18nextOptions === void 0 ? {} : _ref2$i18nextOptions,\n _ref2$redirect = _ref2.redirect,\n redirect = _ref2$redirect === void 0 ? true : _ref2$redirect,\n _ref2$generateDefault = _ref2.generateDefaultLanguagePage,\n generateDefaultLanguagePage = _ref2$generateDefault === void 0 ? false : _ref2$generateDefault,\n siteUrl = _ref2.siteUrl,\n _ref2$localeJsonNodeN = _ref2.localeJsonNodeName,\n localeJsonNodeName = _ref2$localeJsonNodeN === void 0 ? 'locales' : _ref2$localeJsonNodeN,\n fallbackLanguage = _ref2.fallbackLanguage,\n trailingSlash = _ref2.trailingSlash;\n if (!props) return;\n var data = props.data,\n pageContext = props.pageContext,\n location = props.location;\n var _pageContext$i18n = pageContext.i18n,\n routed = _pageContext$i18n.routed,\n language = _pageContext$i18n.language,\n languages = _pageContext$i18n.languages,\n originalPath = _pageContext$i18n.originalPath,\n defaultLanguage = _pageContext$i18n.defaultLanguage,\n path = _pageContext$i18n.path;\n var isRedirect = redirect && !routed;\n if (isRedirect) {\n var search = location.search;\n\n // Skip build, Browsers only\n if (typeof window !== 'undefined') {\n var detected = window.localStorage.getItem(_types.LANGUAGE_KEY) || (0, _browserLang.default)({\n languages: languages,\n fallback: fallbackLanguage || language\n });\n if (!languages.includes(detected)) {\n detected = language;\n }\n window.localStorage.setItem(_types.LANGUAGE_KEY, detected);\n if (detected !== defaultLanguage) {\n var queryParams = search || '';\n var stripTrailingSlash = trailingSlash === 'never';\n var newUrl = (0, _gatsby.withPrefix)(\"/\" + detected + removePathPrefix(location.pathname, stripTrailingSlash) + queryParams + location.hash);\n // @ts-ignore\n window.___replace(newUrl);\n return null;\n }\n }\n }\n var localeNodes = (data === null || data === void 0 ? void 0 : (_data$localeJsonNodeN = data[localeJsonNodeName]) === null || _data$localeJsonNodeN === void 0 ? void 0 : _data$localeJsonNodeN.edges) || [];\n if (languages.length > 1 && localeNodes.length === 0 && process.env.NODE_ENV === 'development') {\n console.error((0, _outdent.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)([\"\\n No translations were found in \\\"\", \"\\\" key for \\\"\", \"\\\". \\n You need to add a graphql query to every page like this:\\n \\n export const query = graphql`\\n query($language: String!) {\\n \", \": allLocale(language: {eq: $language}) {\\n edges {\\n node {\\n ns\\n data\\n language\\n }\\n }\\n }\\n }\\n `;\\n \"], [\"\\n No translations were found in \\\"\", \"\\\" key for \\\"\", \"\\\". \\n You need to add a graphql query to every page like this:\\n \\n export const query = graphql\\\\`\\n query($language: String!) {\\n \", \": allLocale(language: {eq: $language}) {\\n edges {\\n node {\\n ns\\n data\\n language\\n }\\n }\\n }\\n }\\n \\\\`;\\n \"])), localeJsonNodeName, originalPath, localeJsonNodeName));\n }\n var namespaces = localeNodes.map(function (_ref3) {\n var node = _ref3.node;\n return node.ns;\n });\n\n // We want to set default namespace to a page namespace if it exists\n // and use other namespaces as fallback\n // this way you dont need to specify namespaces in pages\n var defaultNS = ((_i18nextOptions$defau = i18nextOptions.defaultNS) === null || _i18nextOptions$defau === void 0 ? void 0 : _i18nextOptions$defau.toString()) || 'translation';\n defaultNS = namespaces.find(function (ns) {\n return ns !== defaultNS;\n }) || defaultNS;\n var fallbackNS = namespaces.filter(function (ns) {\n return ns !== defaultNS;\n });\n var resources = localeNodes.reduce(function (res, _ref4) {\n var node = _ref4.node;\n var parsedData = typeof node.data === 'object' ? node.data : JSON.parse(node.data);\n if (!(node.language in res)) res[node.language] = {};\n res[node.language][node.ns || defaultNS] = parsedData;\n return res;\n }, {});\n var i18n = _i18next.default.createInstance();\n i18n.init((0, _extends2.default)({}, i18nextOptions, {\n resources: resources,\n lng: language,\n fallbackLng: defaultLanguage,\n defaultNS: defaultNS,\n fallbackNS: fallbackNS,\n react: (0, _extends2.default)({}, i18nextOptions.react, {\n useSuspense: false\n })\n }));\n if (i18n.language !== language) {\n i18n.changeLanguage(language);\n }\n var context = {\n routed: routed,\n language: language,\n languages: languages,\n originalPath: originalPath,\n defaultLanguage: defaultLanguage,\n generateDefaultLanguagePage: generateDefaultLanguagePage,\n siteUrl: siteUrl,\n path: path\n };\n return withI18next(i18n, context)(element);\n};\nexports.wrapPageElement = wrapPageElement;","\"use strict\";\n\nexports.__esModule = true;\nexports.LANGUAGE_KEY = void 0;\nvar LANGUAGE_KEY = 'gatsby-i18next-language';\nexports.LANGUAGE_KEY = LANGUAGE_KEY;","const {wrapPageElement} = require('./dist/plugin/wrapPageElement');\nexports.wrapPageElement = wrapPageElement;\n","'use strict';\n\nconst consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nconst lastOfPathSeparatorRegExp = /###/g;\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && last.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n}\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (typeof key === 'string' && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && Array.isArray(res))) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(res);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && typeof options.replace !== 'string';\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: function (n) {\n return Number(n > 1);\n },\n 2: function (n) {\n return Number(n != 1);\n },\n 3: function (n) {\n return 0;\n },\n 4: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function (n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function (n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function (n) {\n return Number(n >= 2);\n },\n 10: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function (n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function (n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function (n) {\n return Number(n !== 0);\n },\n 14: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function (n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function (n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code === 'dev' ? 'en' : code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (err) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp && existingRegExp.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nmodule.exports = instance;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","// In the absence of a WeakSet or WeakMap implementation, don't break, but don't cache either.\nfunction noop() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n}\nfunction createWeakMap() {\n if (typeof WeakMap !== \"undefined\") {\n return new WeakMap();\n }\n else {\n return fakeSetOrMap();\n }\n}\n/**\n * Creates and returns a no-op implementation of a WeakMap / WeakSet that never stores anything.\n */\nfunction fakeSetOrMap() {\n return {\n add: noop,\n delete: noop,\n get: noop,\n set: noop,\n has: function (k) {\n return false;\n },\n };\n}\n// Safe hasOwnProperty\nvar hop = Object.prototype.hasOwnProperty;\nvar has = function (obj, prop) {\n return hop.call(obj, prop);\n};\n// Copy all own enumerable properties from source to target\nfunction extend(target, source) {\n for (var prop in source) {\n if (has(source, prop)) {\n target[prop] = source[prop];\n }\n }\n return target;\n}\nvar reLeadingNewline = /^[ \\t]*(?:\\r\\n|\\r|\\n)/;\nvar reTrailingNewline = /(?:\\r\\n|\\r|\\n)[ \\t]*$/;\nvar reStartsWithNewlineOrIsEmpty = /^(?:[\\r\\n]|$)/;\nvar reDetectIndentation = /(?:\\r\\n|\\r|\\n)([ \\t]*)(?:[^ \\t\\r\\n]|$)/;\nvar reOnlyWhitespaceWithAtLeastOneNewline = /^[ \\t]*[\\r\\n][ \\t\\r\\n]*$/;\nfunction _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options) {\n // If first interpolated value is a reference to outdent,\n // determine indentation level from the indentation of the interpolated value.\n var indentationLevel = 0;\n var match = strings[0].match(reDetectIndentation);\n if (match) {\n indentationLevel = match[1].length;\n }\n var reSource = \"(\\\\r\\\\n|\\\\r|\\\\n).{0,\" + indentationLevel + \"}\";\n var reMatchIndent = new RegExp(reSource, \"g\");\n if (firstInterpolatedValueSetsIndentationLevel) {\n strings = strings.slice(1);\n }\n var newline = options.newline, trimLeadingNewline = options.trimLeadingNewline, trimTrailingNewline = options.trimTrailingNewline;\n var normalizeNewlines = typeof newline === \"string\";\n var l = strings.length;\n var outdentedStrings = strings.map(function (v, i) {\n // Remove leading indentation from all lines\n v = v.replace(reMatchIndent, \"$1\");\n // Trim a leading newline from the first string\n if (i === 0 && trimLeadingNewline) {\n v = v.replace(reLeadingNewline, \"\");\n }\n // Trim a trailing newline from the last string\n if (i === l - 1 && trimTrailingNewline) {\n v = v.replace(reTrailingNewline, \"\");\n }\n // Normalize newlines\n if (normalizeNewlines) {\n v = v.replace(/\\r\\n|\\n|\\r/g, function (_) { return newline; });\n }\n return v;\n });\n return outdentedStrings;\n}\nfunction concatStringsAndValues(strings, values) {\n var ret = \"\";\n for (var i = 0, l = strings.length; i < l; i++) {\n ret += strings[i];\n if (i < l - 1) {\n ret += values[i];\n }\n }\n return ret;\n}\nfunction isTemplateStringsArray(v) {\n return has(v, \"raw\") && has(v, \"length\");\n}\n/**\n * It is assumed that opts will not change. If this is a problem, clone your options object and pass the clone to\n * makeInstance\n * @param options\n * @return {outdent}\n */\nfunction createInstance(options) {\n /** Cache of pre-processed template literal arrays */\n var arrayAutoIndentCache = createWeakMap();\n /**\n * Cache of pre-processed template literal arrays, where first interpolated value is a reference to outdent,\n * before interpolated values are injected.\n */\n var arrayFirstInterpSetsIndentCache = createWeakMap();\n function outdent(stringsOrOptions) {\n var values = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n /* tslint:enable:no-shadowed-variable */\n if (isTemplateStringsArray(stringsOrOptions)) {\n var strings = stringsOrOptions;\n // Is first interpolated value a reference to outdent, alone on its own line, without any preceding non-whitespace?\n var firstInterpolatedValueSetsIndentationLevel = (values[0] === outdent || values[0] === defaultOutdent) &&\n reOnlyWhitespaceWithAtLeastOneNewline.test(strings[0]) &&\n reStartsWithNewlineOrIsEmpty.test(strings[1]);\n // Perform outdentation\n var cache = firstInterpolatedValueSetsIndentationLevel\n ? arrayFirstInterpSetsIndentCache\n : arrayAutoIndentCache;\n var renderedArray = cache.get(strings);\n if (!renderedArray) {\n renderedArray = _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options);\n cache.set(strings, renderedArray);\n }\n /** If no interpolated values, skip concatenation step */\n if (values.length === 0) {\n return renderedArray[0];\n }\n /** Concatenate string literals with interpolated values */\n var rendered = concatStringsAndValues(renderedArray, firstInterpolatedValueSetsIndentationLevel ? values.slice(1) : values);\n return rendered;\n }\n else {\n // Create and return a new instance of outdent with the given options\n return createInstance(extend(extend({}, options), stringsOrOptions || {}));\n }\n }\n var fullOutdent = extend(outdent, {\n string: function (str) {\n return _outdentArray([str], false, options)[0];\n },\n });\n return fullOutdent;\n}\nvar defaultOutdent = createInstance({\n trimLeadingNewline: true,\n trimTrailingNewline: true,\n});\n// Named exports. Simple and preferred.\n// import outdent from 'outdent';\nexport default defaultOutdent;\n// import {outdent} from 'outdent';\nexport { defaultOutdent as outdent };\nif (typeof module !== \"undefined\") {\n // In webpack harmony-modules environments, module.exports is read-only,\n // so we fail gracefully.\n try {\n module.exports = defaultOutdent;\n Object.defineProperty(defaultOutdent, \"__esModule\", { value: true });\n defaultOutdent.default = defaultOutdent;\n defaultOutdent.outdent = defaultOutdent;\n }\n catch (e) { }\n}\n//# sourceMappingURL=index.js.map","/**\n * @license React\n * react-server-dom-webpack.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var k=require(\"react\"),l={stream:!0},n=new Map,p=Symbol.for(\"react.element\"),q=Symbol.for(\"react.lazy\"),r=Symbol.for(\"react.default_value\"),t=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ContextRegistry;function u(a){t[a]||(t[a]=k.createServerContext(a,r));return t[a]}function v(a,b,c){this._status=a;this._value=b;this._response=c}v.prototype.then=function(a){0===this._status?(null===this._value&&(this._value=[]),this._value.push(a)):a()};\nfunction w(a){switch(a._status){case 3:return a._value;case 1:var b=JSON.parse(a._value,a._response._fromJSON);a._status=3;return a._value=b;case 2:b=a._value;for(var c=b.chunks,d=0;d {\n const { forward = [], ...filteredConfig } = config || {};\n const configStr = JSON.stringify(filteredConfig, (k, v) => {\n if (typeof v === 'function') {\n v = String(v);\n if (v.startsWith(k + '(')) {\n v = 'function ' + v;\n }\n }\n return v;\n });\n return [\n `!(function(w,p,f,c){`,\n Object.keys(filteredConfig).length > 0\n ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n : `c=w[p]=w[p]||{};`,\n `c[f]=(c[f]||[])`,\n forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n `})(window,'partytown','forward');`,\n snippetCode,\n ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the `