{"version":3,"file":"app-a560aefecb7573976473.js","mappings":";qHAOA,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,mCClElBF,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,qCCpBdT,EAAQ,GAAuBA,EAAQ,QAAgB,EACvD,IAAIe,EAAiB,EAAQ,MAC7Bf,EAAQ,GAAgBe,EAAeC,cACvC,IAAIC,EAAwB,EAAQ,MACpCjB,EAAQ,GAAuBiB,EAAsBC,wDCLrD,IAAIC,EAAyB,EAAQ,MACrCnB,EAAQoB,YAAa,EACrBpB,EAAQgB,cAAgBhB,EAAQqB,mBAAgB,EAChD,IAAIC,EAA0BH,EAAuB,EAAQ,OACzDI,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,OACxCC,EAAavB,EAAuB,EAAQ,OAC5CwB,EAAkB,EAAQ,MAC9B,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,6CCtHtCvG,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,qCC7CzBhD,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,MACzB2G,EAAS,EAAQ,MACjBH,EAAe,EAAQ,yCCJ3BvH,EAAQoB,YAAa,EACrBpB,EAAQkI,2BAAwB,EACZ,EAAQ,MACE,EAAQ,MAgBtClI,EAAQkI,sBAdsB,KAOyC,mCCZvElI,EAAQoB,YAAa,EACrBpB,EAAQmI,YACR,SAAqBC,GACnB,OAAOA,aAA2D,EAASA,EAAiBC,SAAQC,IAAWA,aAAuC,EAASA,EAAOC,UAAY,IACpL,qCCJAvI,EAAQoB,YAAa,EACrBpB,EAAQwI,uBAIR,SAAgCJ,GAC9B,IAAKA,EAAiBrJ,OACpB,OAEF,MAAM0J,EAAkB9D,SAAS+D,cAAc,0BACzCC,EAAkBhE,SAAS+D,cAAc,kDAC3CD,GACFA,EAAgBG,SAEdD,GACFA,EAAgBC,SAElB,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,EAtBA,IAAII,EAAe,EAAQ,MACvBL,EAAe,EAAQ,4BCL3B9I,EAAQuJ,WAAa,CACnB,+BAAgCC,IAAM,6BACtC,qCAAsCC,IAAM,6DAC5C,kCAAmCC,IAAM,+DACzC,sCAAuCC,IAAM,8DAC7C,wCAAyCC,IAAM,+DAC/C,qCAAsCC,IAAM,+DAC5C,qCAAsCC,IAAM,+DAC5C,iCAAkCC,IAAM,+DACxC,uCAAwCC,IAAM,+DAC9C,mCAAoCC,IAAM,+DAC1C,qCAAsCC,IAAM,+DAC5C,sCAAuCC,IAAM,sFCZ/CC,EAAOpK,QAAU,CAAC,CACZqK,OAAQC,EAAQ,MAChBnK,QAAS,CAAC,QAAU,GAAG,qBAAuB,SAAS,UAAY,CAAC,KAAK,MAAM,gBAAkB,KAAK,QAAU,2BAA2B,eAAiB,CAAC,cAAgB,CAAC,aAAc,GAAO,aAAc,GAAO,MAAQ,CAAC,CAAC,UAAY,oBAAoB,qBAAsB,EAAK,iBAAmB,CAAC,OAAO,CAAC,UAAY,iBAAiB,qBAAsB,EAAK,iBAAmB,CAAC,UACrY,CACAkK,OAAQC,EAAQ,MAChBnK,QAAS,CAAC,QAAU,4BCL1B,MAAMoK,EAAUD,EAAQ,OAClB,2BAAEE,EAA0B,SAAEC,EAAQ,aAAEC,GAC5CJ,EAAAA,MAAAA,GAEFtK,EAAQ,EAAY,SAAC2K,EAAKrH,EAAWsH,EAAeC,QAAtB,IAAJvH,IAAAA,EAAO,CAAC,GAYhC,IAAIwH,EAAUP,EAAQQ,KAAIV,IACxB,IAAKA,EAAOA,OAAOM,GACjB,OAGFrH,EAAKkH,2BAA6BA,EAClClH,EAAKmH,SAAWA,EAChBnH,EAAKoH,aAAeA,EAEpB,MAAMM,EAASX,EAAOA,OAAOM,GAAKrH,EAAM+G,EAAOlK,SAI/C,OAHI6K,GAAUH,IACZvH,EAAOuH,EAAa,CAAEvH,OAAM0H,SAAQX,YAE/BW,CAAM,IAMf,OAFAF,EAAUA,EAAQxK,QAAO0K,QAAuB,IAANA,IAEtCF,EAAQ/L,OAAS,EACZ+L,EACEF,EACF,CAACA,GAED,EAEX,EAEA5K,EAAQ,EAAiB,CAAC2K,EAAKrH,EAAMsH,IACnCL,EAAQU,QACN,CAACC,EAAUC,IACTA,EAAKd,OAAOM,GACRO,EAASE,MAAK,IAAMD,EAAKd,OAAOM,GAAKrH,EAAM6H,EAAKhL,WAChD+K,GACNG,QAAQC,+BClDZtL,EAAQ,EAAsB,0ECG9B,MCgBA,SAAcuL,GAGb,OAFAA,EAAMA,GAAOzL,OAAO0L,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,IAAIzM,QAAQ8L,KAAI,SAAUY,GAAWA,EAAQM,EAAM,KAChEV,EAAI,MAAQ,IAAItM,QAAQ8L,KAAI,SAAUY,GAAWA,EAAQD,EAAMO,EAAM,GACvE,EAEF,CD1DgBC,uKEFhB,EAAeC,IACb,QAAsBzG,IAAlByG,EACF,OAAOA,EAET,IAAKC,EAAMC,EAAM,IAASF,EAAcG,MAAM,KAK9C,OAJID,IACFA,EAAS,IAAMA,GAGT,MAAJD,EACK,IAAMC,EAEiB,MAA5BD,EAAKG,OAAOH,EAAKrN,OAAS,GACrBqN,EAAKnN,MAAM,GAAI,GAAKoN,EAEtBD,EAAOC,CACf,YCXD,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,EAAoBT,EAAI,IAAIW,mBAAmBD,EACjD,CAEA,MAAMzF,EAAW2F,mBAAmBH,GAUpC,OAPwBI,EAAAA,EAAAA,GACtB5F,EACA2F,mBAAmBE,KAGlBZ,MAAM,KAAK,EAEQ,EAGxB,SAASa,EAAWf,GAElB,OACEA,EAAKzN,WAAW,MAChByN,EAAKzN,WAAW,aAChByN,EAAKzN,WAAW,WAETyN,EAIF,IAAIgB,IACThB,EACAjN,OAAO+F,SAASmI,MAAQlO,OAAO+F,SAASmI,KAAKzM,SAAS,KAAI,SAC1DyG,QACJ,CAOO,MAAMiG,EAAgBrN,IAC3ByM,EAAazM,CAAK,EAWPsN,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,EAAU1K,IAAI0L,GAChB,OAAOhB,EAAUzK,IAAIyL,GAGvB,MAAMa,GAAWC,EAAAA,EAAAA,GAAwB1B,GACzC,GAAIyB,EACF,OAAOD,EAASC,EAASE,QAG3B,IAAIC,EAAYjB,EAAcC,GAQ9B,OANKgB,IACHA,EAAYf,EAAUb,IAGxBJ,EAAUhK,IAAIgL,EAAiBgB,GAExBA,CAAS,EAULf,EAAYb,IAGvB,IAAI4B,EAFoB7B,EAAaQ,EAAWP,IAShD,MANa,gBAAT4B,IACFA,EAAS,KAGXA,EAAYT,EAAkBS,GAEvBA,CAAS,q1BC9JH,SAASC,EAAgBC,GAItC,OAHAD,EAAkB3O,OAAO6O,eAAiB7O,OAAO8O,eAAe1K,OAAS,SAAyBwK,GAChG,OAAOA,EAAEG,WAAa/O,OAAO8O,eAAeF,EAC9C,EACOD,EAAgBC,EACzB,eCHe,SAASI,EAAWC,EAAQzL,EAAM0L,GAa/C,OATEF,ECNW,WACb,GAAuB,oBAAZG,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAUC,KAAM,OAAO,EACnC,GAAqB,mBAAVC,MAAsB,OAAO,EACxC,IAEE,OADAC,QAAQjN,UAAUkN,QAAQhN,KAAK2M,QAAQC,UAAUG,QAAS,IAAI,WAAa,MACpE,CACT,CAAE,MAAOrI,GACP,OAAO,CACT,CACF,CDPM,GACWiI,QAAQC,UAAUhL,OAElB,SAAoB6K,EAAQzL,EAAM0L,GAC7C,IAAIO,EAAI,CAAC,MACTA,EAAE3D,KAAKnI,MAAM8L,EAAGjM,GAChB,IACIkM,EAAW,IADGC,SAASvL,KAAKT,MAAMsL,EAAQQ,IAG9C,OADIP,IAAO,EAAAL,EAAA,GAAea,EAAUR,EAAM5M,WACnCoN,CACT,EAEKV,EAAWrL,MAAM,KAAMJ,UAChC,CEZe,SAASqM,EAAiBV,GACvC,IAAIW,EAAwB,mBAARlD,IAAqB,IAAIA,SAAQ/G,EAuBrD,OAtBAgK,EAAmB,SAA0BV,GAC3C,GAAc,OAAVA,ICPkCY,EDOEZ,GCNsB,IAAzDS,SAASI,SAASvN,KAAKsN,GAAI7D,QAAQ,kBDMQ,OAAOiD,ECP5C,IAA2BY,EDQtC,GAAqB,mBAAVZ,EACT,MAAM,IAAIc,UAAU,sDAEtB,QAAsB,IAAXH,EAAwB,CACjC,GAAIA,EAAO7N,IAAIkN,GAAQ,OAAOW,EAAO5N,IAAIiN,GACzCW,EAAOnN,IAAIwM,EAAOe,EACpB,CACA,SAASA,IACP,OAAO,EAAUf,EAAO3L,UAAW,EAAeK,MAAMsM,YAC1D,CASA,OARAD,EAAQ3N,UAAYtC,OAAO0L,OAAOwD,EAAM5M,UAAW,CACjD4N,YAAa,CACX/P,MAAO8P,EACPE,YAAY,EACZC,UAAU,EACVC,cAAc,MAGX,EAAAxB,EAAA,GAAeoB,EAASf,EACjC,EACOU,EAAiBV,EAC1B,mCE3BO,MAAMoB,EAAsBzC,IAA4B,IAA3B,QAAE0C,EAAO,SAAEnK,GAAUyH,EACvD,MAAM2C,EAAW,CACf9O,EAAAA,cAAoB,cAAe,CACjC+O,GAAOF,EAAO,OAEhB7O,EAAAA,cAAoB,YAAa,CAC/B+O,GAAOF,EAAO,QAkBlB,OAdInK,IAGFoK,EAAS1E,KAAK1F,GACdoK,EAAS1E,KACPpK,EAAAA,cAAoB,cAAe,CACjC+O,GAAOF,EAAO,OAEhB7O,EAAAA,cAAoB,YAAa,CAC/B+O,GAAOF,EAAO,SAKbC,CAAQ,ECZJE,EAAc7C,IAKpB,IALqB,UAC1B8C,EAAS,WACTC,EAAU,SACVxK,KACGyK,GACJhD,EACC,MAAMiD,GAAYjJ,EAAAA,EAAAA,YAAWkJ,EAAAA,IACvBC,GAAcnJ,EAAAA,EAAAA,YAAWoJ,EAAAA,IACzBC,EAAoBJ,EAAUH,GAEpC,IAAKO,EAAmB,CACtB,GAAIN,EACF,OAAO,KAEP,MAAM,IAAIO,MAAM,UACJD,EAAiB,UAAUP,EAAS,mBAGpD,CAEA,MAAMJ,EA7BWa,EAACT,EAAWE,IACxB7Q,OAAOqR,KAAKR,GAAY5R,OAKnB0R,EAAS,KADCW,EAAAA,EAAAA,GAAoBT,GAH/BF,EA2BOS,CAAWF,EAAmBL,GAG9C,IAAIU,EAAaP,EAAYT,GAa7B,OAZKgB,EAOCnL,IACFmL,EAAWC,aAAc,GAP3BR,EAAYT,GAAWgB,EAAa,CAClC/M,MAAOqM,EACPF,UAAWO,EACXM,cAAepL,GAQZ1E,EAAAA,cAAC4O,EAAmB,CAACC,QAASA,GAAUnK,EAA+B,EC/CnEqL,EAAc5D,IAKpB,IALqB,UAC1B8C,EAAS,WACTC,EAAU,SACVxK,KACGyK,GACJhD,EACC,MAAMiD,GAAYjJ,EAAAA,EAAAA,YAAWkJ,EAAAA,IACvBW,GAAmB7J,EAAAA,EAAAA,YAAW8J,EAAAA,IAC9BT,EAAoBJ,EAAUH,GAC9BxR,EAAQuS,EAAiBzP,IAAIiP,GAEnC,IAAK/R,EAAO,CACV,GAAIyR,EACF,OAAO,KAEP,MAAM,IAAIO,MAAM,UACJD,EAAiB,UAAUP,EAAS,mBAGpD,CAEA,OACEjP,EAAAA,cAACvC,EAAMyS,UAAS5R,OAAA6R,OAAA,CACdC,aAAc3S,EAAM2S,aACpBC,KAAM5S,EAAM4S,MACRlB,GAEHzK,EACe,ECxBf,SAAS4L,EAAMxN,GACW,CAE7B,MAAMyN,EAAgB,IACjBzN,EACHmM,UAAWnM,EAAM0N,cAEZD,EAAcC,aACdD,EAAcE,qBAErB,MAAMC,GAAgBvK,EAAAA,EAAAA,YAAWwK,EAAAA,IAG3BC,EAAaC,EAAmB/N,GACtC,GAAIxE,OAAOqR,KAAKiB,GAAYrT,OAC1B,MAAM,IAAIuT,EACuB,YAA/BJ,EAAcK,kBACdR,EAActB,UACd2B,EACA9N,EAAM2N,sBAIV,GAAmC,WAA/BC,EAAcK,kBAChB,OAAO/Q,EAAAA,cAACgP,EAAgBuB,GACnB,GAAmC,YAA/BG,EAAcK,kBAEvB,OAAO/Q,EAAAA,cAAC+P,EAAgBQ,GACnB,GAC0B,YAA/BG,EAAcK,mBACiB,YAA/BL,EAAcK,kBAGd,OAAO/Q,EAAAA,cAAC+P,EAAgBQ,GACnB,GAAmC,WAA/BG,EAAcK,kBAAgC,CAGvD,IAAIC,EAAwB,GAI5B,IACEA,EAAwB,wBAA2BN,EAAcO,UAAUC,KAAI,MAAMR,EAAcO,UAAUE,cAAa,mCAAmCrO,EAAM0N,MAAK,KAC1K,CAAE,MACA,CAGF,MAAM,IAAIf,MAAM,mCACqBuB,EAAwB,6FAE/D,CACE,MAAM,IAAIvB,MAAM,kBACIiB,EAAcK,kBAAiB,sBAGvD,CAGF,CAAC,IAEKD,EAAe,SAAAM,GACnB,SAAAN,EAAYO,EAAWpC,EAAW2B,EAAYU,GAAqB,IAAD3P,EAChE,MAAM4P,EAASjT,OAAOkT,QAAQZ,GAC3BrH,KACC4C,IAAA,IAAExL,EAAKlC,GAAM0N,EAAA,2BACU1N,EAAK,qBAAqBkC,EAAG,YAErD8Q,KAAK,MAEFP,EAAI,kBACV,IAAIQ,EAAK,GACLC,EAAO,GAEX,GAAIN,EAAW,CAGb,MAIMO,EAHJ5R,EAAAA,mDAAyD6R,uBAAuBC,kBAGrDC,OAAOjH,MAAM,MAAMrN,MAAM,GACtDmU,EAAW,GAAKA,EAAW,GAAGG,OAC9BL,EAAQ,KAAOE,EAAWH,KAAK,MAE/BE,EAAO,UAAa1C,EAAS,iDAAiDsC,EAAM,IACtF,KAAO,CAELI,EAAaT,EAAI,YAAYjC,EAAS,iDAAiDsC,EAAM,KAE7FG,EAAWC,EAAO,MADC,IAAIlC,OAAQiC,MAAMK,OAAOjH,MAAM,MAAMrN,MAAM,GAC5BgU,KAAK,KACzC,CAYC,OAVD9P,EAAAyP,EAAAtQ,KAAA,KAAM6Q,IAAQ,MACTT,KAAOA,EACRQ,EACF/P,EAAK+P,MAAQA,EAEbjC,MAAMuC,kBCxGG,SAAgCC,GAC7C,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAE3B,OAAOD,CACT,CDmG6BE,CAAAxQ,GAAOmP,GAG5BQ,IACF3P,EAAKyQ,eAAiB,IAAKd,EAAoBe,aAAa,UAC7D1Q,CACH,CAAC,OA3CkB2Q,EAAAA,EAAAA,GAAAxB,EAAAM,GA2ClBN,CAAA,CA3CkB,CA2ClB5C,EA3C2BuB,QA8C9B,MAAMoB,EAAqB,SACzB/N,EACAyO,EACAgB,EACA3H,QAFM,IAAN2G,IAAAA,EAAS,CAAC,QACC,IAAXgB,IAAAA,EAAc,SACV,IAAJ3H,IAAAA,EAAO,MAGP,IAAK,MAAOsG,EAAMzS,KAAUH,OAAOkT,QAAQ1O,GAAQ,CACjD,GACErE,UAEEmM,GAAY,aAAJsG,EAEV,SAGF,MAAMsB,EAAW5H,EAAUA,EAAI,IAAIsG,EAASA,EAE5B,mBAALzS,EACT8S,EAAOiB,UAAmB/T,EACL,iBAALA,GAAsB8T,EAAYhI,QAAQ9L,IAAU,IACpE8T,EAAYnI,KAAK3L,GACjBoS,EAAmBpS,EAAO8S,EAAQgB,EAAaC,GAEnD,CAEA,OAAOjB,CACT,gBE1IA,MAAMkB,EAAmBC,EAAAA,GAAOC,QAEhC,SAASC,IACP,MAAM,IAAInD,MACR,6UAKJ,uPCXA,MAyDMoD,EAzDU,SAAUC,GACxB,GAAmB,oBAAR3P,SACT,OAAO,EAET,MAAM4P,EAAW5P,SAASqB,cAAc,QACxC,IACE,GAAIuO,EAASC,SAA2C,mBAAzBD,EAASC,QAAQC,SAC9C,OAAOF,EAASC,QAAQC,SAASH,EAErC,CAAE,MAAOI,GACP,OAAO,CACT,CACA,OAAO,CACT,CA4CkCC,CAAQ,YA1Cb,SAAUC,EAAKzU,GAC1C,OAAO,IAAIkL,SAAQ,CAACC,EAASuJ,KAC3B,GAAmB,oBAARlQ,SAET,YADAkQ,IAIF,MAAMC,EAAOnQ,SAASqB,cAAc,QACpC8O,EAAKC,aAAa,MAAD,YACjBD,EAAKC,aAAa,OAAQH,GAE1B9U,OAAOqR,KAAKhR,GAAS6U,SAAQ7S,IAC3B2S,EAAKC,aAAa5S,EAAKhC,EAAQgC,GAAK,IAGtC2S,EAAKG,OAAS3J,EACdwJ,EAAKI,QAAUL,GAGblQ,SAASwQ,qBAAqB,QAAQ,IACtCxQ,SAASyQ,kBAAkB,UAAU,GAAGC,YAC5B/L,YAAYwL,EAAK,GAEnC,EAE4B,SAAUF,GACpC,OAAO,IAAIvJ,SAAQ,CAACC,EAASuJ,KAC3B,MAAMS,EAAM,IAAIC,eAChBD,EAAIE,KAAK,MAAOZ,GAAK,GAErBU,EAAIL,OAAS,KACQ,MAAfK,EAAIG,OACNnK,IAEAuJ,GACF,EAGFS,EAAII,KAAK,KAAK,GAElB,EAMMC,EAAa,CAAC,EAkBpB,MAhBiB,SAAUf,EAAKzU,GAC9B,OAAO,IAAIkL,SAAQC,IACbqK,EAAWf,GACbtJ,IAIF+I,EAA0BO,EAAKzU,GAC5BiL,MAAK,KACJE,IACAqK,EAAWf,IAAO,CAAI,IAEvBgB,OAAM,QAAS,GAEtB,sBCrEO,MAAMC,EAAqB,CAIhC5E,MAAM,QAIN6E,QAAQ,WAWJC,EAAoBC,IACxB,MAAO5J,EAAM6J,GAAeD,EAAQ1J,MAAM,KAPZ4J,MAS9B,MAAyB,eADH,MAAJ9J,EAAY,SAP9B8J,EAAQ,OADsBA,EAQqC9J,GAP7D,GAAa8J,EAAEjX,MAAM,GAAKiX,GAC1BtV,SAAS,KAAOsV,EAAEjX,MAAM,GAAI,GAAKiX,GAOS,mBAC9CD,EAAW,IAAOA,EAAW,GAAO,EAQlCE,EAAmBH,GAAWA,EAAQrX,WAAW,MAEvD,SAASyX,EAAQxB,EAAKyB,GACpB,YAD0B,IAANA,IAAAA,EAAM,OACnB,IAAIhL,SAAQC,IACjB,MAAMgK,EAAM,IAAIC,eAChBD,EAAIE,KAAKa,EAAQzB,GAAK,GACtBU,EAAIgB,mBAAqB,KACD,GAAlBhB,EAAIiB,YACNjL,EAAQgK,EACV,EAEFA,EAAII,KAAK,KAAK,GAElB,CAEA,MAgBMc,EAAY,+BAEZC,EAAkB,SAACC,EAAUhF,EAAkBrI,GAAU,IAADsN,OAAlB,IAATjF,IAAAA,EAAY,MAC7C,MAAMkF,EAAO,CACXC,mBAAoBH,EAASG,mBAC7BzK,KAAMsK,EAAStK,KACf0K,uBAAwBJ,EAASI,uBACjClJ,UAAW8I,EAAS9I,UACpBmJ,kBAAmBL,EAASK,kBAC5BC,mBAAoBN,EAASM,mBAC7BpG,UAA6B,QAApB+F,EAAED,EAAS9F,iBAAS,IAAA+F,EAAAA,EAAI,CAAC,GAGpC,MAAO,CACLjF,YACArI,OACA4N,KAAMP,EAAS1L,OACf4L,OAEJ,EAEA,SAASM,EAAgBC,GACvB,OAAO,IAAI9L,SAAQC,IACjB,IACE,MAAMN,EAASmM,EAASC,WACxB9L,EAAQN,EACV,CAAE,MAAO0J,GACP,IACE5U,OAAOuC,eAAeC,KAAKoS,EAAI,eAC/B5U,OAAOuC,eAAeC,KAAKoS,EAAI,WAM/B,MAAMA,EAJN2C,YAAW,KACTH,EAAgBC,GAAU/L,KAAKE,EAAQ,GACtC,IAIP,IAEJ,CAEO,IAAMgM,EAAU,WACrB,SAAAA,EAAYC,EAAe7K,GAAa,KAgCxC8K,wBAA0B,IAAI/K,IAhB5B/I,KAAK+T,OAAS,IAAIhL,IAClB/I,KAAKgU,WAAa,IAAIjL,IACtB/I,KAAKiU,cAAgB,CAAC,EACtBjU,KAAKkU,WAAa,IAAInL,IACtB/I,KAAKmU,mBAAqB,IAAIpL,IAC9B/I,KAAKoU,aAAe,IAAIrL,IACxB/I,KAAKqU,gBAAkB,IAAItL,IAC3B/I,KAAKsU,SAAW,IAAIvL,IACpB/I,KAAKuU,wBAAyB,EAC9BvU,KAAKwU,eAAiB,GACtBxU,KAAKyU,kBAAoB,IAAIC,IAC7B1U,KAAK2U,kBAAoB,IAAID,IAC7B1U,KAAK6T,cAAgBA,GACrBjK,EAAAA,EAAAA,IAAcZ,EAChB,CAAC,IAAAzH,EAAAqS,EAAAlV,UAgrBA,OAhrBA6C,EAIDqT,YAAA,SAAY1D,GACV,IAAI2D,EAAkB7U,KAAK8T,wBAAwBzV,IAAI6S,GAQvD,OANK2D,IACHA,EAAkBnC,EAAQxB,EAAI,OAC9BlR,KAAK8T,wBAAwBhV,IAAIoS,EAAK2D,IAIjCA,EACJnN,MAAK+L,IACJzT,KAAK8T,wBAAwBgB,OAAO5D,GAC7BuC,KAERvB,OAAMlB,IAEL,MADAhR,KAAK8T,wBAAwBgB,OAAO5D,GAC9BF,CAAG,GAEf,EAACzP,EAEDwT,aAAA,SAAaC,GACXhV,KAAKgV,UAAYA,EACjBhV,KAAKiV,iBAAmBD,EAAU,0BAA0BE,MAAKrJ,GAAKA,GACxE,EAACtK,EAED4T,kBAAA,SAAkBC,GAChB,MAAM,SAAEC,EAAQ,QAAEC,EAAU,GAAMF,EAC5BlE,EAAMmB,EAAkBgD,GAC9B,OAAOrV,KAAK4U,YAAY1D,GAAKxJ,MAAKkK,IAChC,MAAM,OAAEG,EAAM,aAAEwD,GAAiB3D,EAGjC,GAAe,MAAXG,EACF,IACE,MAAMyD,EAAcpS,KAAKC,MAAMkS,GAC/B,QAAyBvT,IAArBwT,EAAY9M,KACd,MAAM,IAAI6E,MAAM,iCAGlB,MAAMgF,EAAc8C,EAASzM,MAAM,KAAK,GAKxC,OAJI2J,IAAgBiD,EAAY9M,KAAK+M,SAASlD,KAC5CiD,EAAY9M,MAAI,IAAQ6J,GAGnBnW,OAAO6R,OAAOmH,EAAS,CAC5BrD,OAAQI,EAAmBC,QAC3BsD,QAASF,GAEb,CAAE,MAAOxE,GACP,CAKJ,OAAe,MAAXe,GAA6B,MAAXA,EAER,cAARsD,GAAoC,cAARA,EACvBjZ,OAAO6R,OAAOmH,EAAS,CAC5BrD,OAAQI,EAAmB5E,QAMxBvN,KAAKmV,kBACV/Y,OAAO6R,OAAOmH,EAAS,CAAEC,SAAS,YAAcM,UAAU,KAK/C,MAAX5D,EACK/R,KAAKmV,kBACV/Y,OAAO6R,OAAOmH,EAAS,CACrBC,SAAS,YACTO,qBAAqB,KAMvBN,EAAU,EACLtV,KAAKmV,kBACV/Y,OAAO6R,OAAOmH,EAAS,CAAEE,QAASA,EAAU,KAKzClZ,OAAO6R,OAAOmH,EAAS,CAC5BrD,OAAQI,EAAmB5E,OAC3B,GAEN,EAAChM,EAEDsU,0BAAA,SAA0BT,GACxB,MAAM,SAAEC,EAAQ,QAAEC,EAAU,GAAMF,EAC5BlE,EAAMmB,EAAkBgD,GAAUlZ,QAAQ,QAAD,aAC/C,OAAO6D,KAAK4U,YAAY1D,GAAKxJ,MAAKkK,IAChC,MAAM,OAAEG,EAAM,aAAEwD,GAAiB3D,EAGjC,GAAe,MAAXG,EACF,IACE,OAAO3V,OAAO6R,OAAOmH,EAAS,CAC5BrD,OAAQI,EAAmBC,QAC3BsD,QAASH,GAEb,CAAE,MAAOvE,GACP,CAKJ,OAAe,MAAXe,GAA6B,MAAXA,EAER,cAARsD,GAAoC,cAARA,EACvBjZ,OAAO6R,OAAOmH,EAAS,CAC5BrD,OAAQI,EAAmB5E,QAMxBvN,KAAK6V,0BACVzZ,OAAO6R,OAAOmH,EAAS,CAAEC,SAAS,YAAcM,UAAU,KAK/C,MAAX5D,EACK/R,KAAK6V,0BACVzZ,OAAO6R,OAAOmH,EAAS,CACrBC,SAAS,YACTO,qBAAqB,KAMvBN,EAAU,EACLtV,KAAK6V,0BACVzZ,OAAO6R,OAAOmH,EAAS,CAAEE,QAASA,EAAU,KAKzClZ,OAAO6R,OAAOmH,EAAS,CAC5BrD,OAAQI,EAAmB5E,OAC3B,GAEN,EAAChM,EAEDuU,iBAAA,SAAiBxD,GACf,MAAM+C,GAAW3K,EAAAA,EAAAA,IAAS4H,GAC1B,GAAItS,KAAKkU,WAAW9V,IAAIiX,GAAW,CACjC,MAAMrC,EAAWhT,KAAKkU,WAAW7V,IAAIgX,GAEnC,OAAO1N,QAAQC,QAAQoL,EAE3B,CAEA,OAAOhT,KAAKmV,kBAAkB,CAAEE,aAAY3N,MAAKsL,IAC/ChT,KAAKkU,WAAWpV,IAAIuW,EAAUrC,GAEvBA,IAEX,EAACzR,EAEDwU,yBAAA,SAAyBzD,GACvB,MAAM+C,GAAW3K,EAAAA,EAAAA,IAAS4H,GAC1B,GAAItS,KAAKmU,mBAAmB/V,IAAIiX,GAAW,CACzC,MAAMrC,EAAWhT,KAAKmU,mBAAmB9V,IAAIgX,GAE3C,OAAO1N,QAAQC,QAAQoL,EAE3B,CAEA,OAAOhT,KAAK6V,0BAA0B,CAAER,aAAY3N,MAAKsL,IACvDhT,KAAKmU,mBAAmBrV,IAAIuW,EAAUrC,GAE/BA,IAEX,EAACzR,EAEDyU,kBAAA,SAAkBjJ,GAChB,GAAI/M,KAAKoU,aAAahW,IAAI2O,GAAY,CACpC,MAAMyI,EAAcxV,KAAKoU,aAAa/V,IAAI0O,GAC1C,OAAOpF,QAAQC,QAAQ,CAAEmF,YAAWyI,eACtC,CAGA,OAAO9C,EADuB,eAAe3F,EAAS,QACnC,OAAQrF,MAAKuO,IAC9B,MAAMT,EAAcpS,KAAKC,MAAM4S,EAAIV,cAGnC,OADAvV,KAAKoU,aAAatV,IAAIiO,EAAWyI,GAC1B,CAAEzI,YAAWyI,cAAa,GAErC,EAACjU,EAEDsI,cAAA,SAAcyI,GACZ,OAAOzI,EAAAA,EAAAA,IAAcyI,EACvB,EAEA/Q,EACAwF,SAAA,SAASuL,GACP,MAAM+C,GAAW3K,EAAAA,EAAAA,IAAS4H,GAC1B,GAAItS,KAAK+T,OAAO3V,IAAIiX,GAAW,CAC7B,MAAMnC,EAAOlT,KAAK+T,OAAO1V,IAAIgX,GAE3B,OAAInC,EAAKgD,MACAvO,QAAQC,QAAQ,CACrBsO,MAAOhD,EAAKgD,MACZnE,OAAQmB,EAAKnB,SAIVpK,QAAQC,QAAQsL,EAAKwC,QAEhC,CAEA,GAAI1V,KAAKgU,WAAW5V,IAAIiX,GACtB,OAAOrV,KAAKgU,WAAW3V,IAAIgX,GAG7B,MAAMc,EAAmB,CACvBnW,KAAKoW,cACLpW,KAAK8V,iBAAiBT,IAOxB,MAAMR,EAAkBlN,QAAQE,IAAIsO,GAAkBzO,MAAK2O,IACzD,MAAOC,EAAiBC,EAAkBC,GAAmBH,EAE7D,GACEE,EAAiBxE,SAAWI,EAAmB5E,QAC/CiJ,aAAe,EAAfA,EAAiBzE,UAAWI,EAAmB5E,MAE/C,MAAO,CACLwE,OAAQI,EAAmB5E,OAI/B,IAAIyF,EAAWuD,EAAiBb,QAEhC,MAAM,mBACJvC,EACAE,kBAAmBoD,EAAwB,GAAE,UAC7CvJ,EAAY,CAAC,GACX8F,EAEE0D,EAAc,CAAC,EAEfC,EAAoB9W,MAAM+W,KAAK,IAAIlC,IAAItY,OAAOya,OAAO3J,KAErD4J,EAAYvb,IAChB,GAAIyE,KAAKsU,SAASlW,IAAI7C,EAAMyT,MAC1B,OAAOhP,KAAKsU,SAASjW,IAAI9C,EAAMyT,MAC1B,GAAIhP,KAAKqU,gBAAgBjW,IAAI7C,EAAMyT,MACxC,OAAOhP,KAAKqU,gBAAgBhW,IAAI9C,EAAMyT,MAGxC,MAAM+H,EAAW/W,KAAK6T,cAActY,EAAM4X,oBAAoBzL,MAC5DsG,IACE,MAAO,CACLA,WAzYQgJ,EAyYiBhJ,EAzYXgJ,GAAKA,EAAE/Y,SAAY+Y,GA0YjC9I,aAAc3S,EAAM+L,OAAO4G,aAC3BC,KAAM5S,EAAM+L,OAAO6G,MA3YX6I,KA4YT,IAUL,OANAhX,KAAKqU,gBAAgBvV,IAAIvD,EAAMyT,KAAM+H,GACrCA,EAASrP,MAAKN,IACZpH,KAAKsU,SAASxV,IAAIvD,EAAMyT,KAAM5H,GAC9BpH,KAAKqU,gBAAgBS,OAAOvZ,EAAMyT,KAAK,IAGlC+H,CAAQ,EAGjB,OAAOpP,QAAQE,IACb8O,EAAkBtP,KAAI0F,GAAa/M,KAAKgW,kBAAkBjJ,MAC1DrF,MAAKuP,IACL,MAAMC,EAAS,GACTC,GAAwBC,EAAAA,EAAAA,GAAOX,GAErC,IAAK,MAAM,YAAEjB,EAAW,UAAEzI,KAAe3Q,OAAOya,OAAOI,GAAa,CAClEC,EAAOhP,KAAK,CAAE8G,KAAMjC,KAAcyI,IAClC,IAAK,MAAM6B,KAAmB7B,EAAYnC,kBACnC8D,EAAyB1B,SAAS4B,IACrCF,EAAyBjP,KAAKmP,EAGpC,CAEA,MAAMC,EAAoB,CACxB3P,QAAQE,IAAIqP,EAAO7P,IAAIyP,IACvB9W,KAAK6T,cAAcV,EAAmB,SAItCmE,EAAkBpP,KAAKlI,KAAK6T,cAAcV,IAS5C,MAAMoE,EAAyB5P,QAAQE,IAAIyP,GAAmB5P,MAC5D7B,IACE,MAAO2R,EAAiBC,EAAeC,GAAiB7R,EAExD6Q,EAAYiB,UAAY,IAAIC,KAE5B,IAAK,MAAMC,KAAkBL,IACtBK,GAAkBA,aAA0BtK,SAC/CmJ,EAAY3E,OAASI,EAAmB5E,MACxCmJ,EAAYR,MAAQ2B,GAYxB,IAAIC,EAEJ,KARIJ,GAAiBA,aAAyBnK,SAE5CmJ,EAAY3E,OAASI,EAAmB5E,MACxCmJ,EAAYR,MAAQwB,GAKlBhB,EAAY3E,SAAWI,EAAmB5E,MAAO,CAcnD,GAbAmJ,EAAY3E,OAASI,EAAmBC,SAER,IAA9BmE,EAAiBZ,WACa,KAA9Ba,aAAe,EAAfA,EAAiBb,YAEjBe,EAAYf,UAAW,GAEzB3C,EAAW5W,OAAO6R,OAAO+E,EAAU,CACjCI,uBAAwBkD,EACpBA,EAAgBlD,uBAAsB,KAIT,iBAAxBoD,aAAe,EAAfA,EAAiBd,SAAsB,CAChDoC,EAAgB/E,EAAgBC,EAAU,KAAMyE,GAEhDK,EAAcC,iBAAmBvB,EAAgBd,QAEjD,MAAMsC,EAAiB,IAAIC,eAAe,CACxCC,KAAAA,CAAMC,GACJ,MAAMC,EAAK,IAAIC,YACfF,EAAW1H,QAAQ2H,EAAGE,OAAO9B,EAAgBd,SAC/C,EACA6C,IAAAA,CAAKJ,GAEHA,EAAWK,OACb,EACAC,MAAAA,GAAU,IAGZ,OAAOjF,GACLkF,EAAAA,EAAAA,0BAAyBV,IACzBtQ,MAAKJ,IACLwQ,EAAcC,iBAAmBzQ,EAE1BwQ,IAEX,CACEA,EAAgB/E,EACdC,EACA0E,EACAD,EAGN,CAGA,OAAOK,CAAa,IAKlBa,EAA0BhR,QAAQE,IACtCsP,EAAyB9P,KAAIgQ,IAE3B,GAAIrX,KAAKiU,cAAcoD,GAAkB,CACvC,MAAM7B,EAAcxV,KAAKiU,cAAcoD,GACvC,MAAO,CAAEA,kBAAiB7B,cAC5B,CAEA,OAAOxV,KAAK4U,YACQ,mBAAmByC,EAAe,SAEnD3P,MAAKkK,IACJ,MAAM4D,EAAcpS,KAAKC,MAAMuO,EAAI2D,cACnC,MAAO,CAAE8B,kBAAiB7B,cAAa,IAExCtD,OAAM,KACL,MAAM,IAAI3E,MAAM,sCACyC8J,EAAe,SACvE,GACD,KAEN3P,MAAKkR,IACL,MAAMC,EAAwB,CAAC,EAO/B,OALAD,EAAmBtH,SAAQrH,IAAuC,IAAtC,gBAAEoN,EAAe,YAAE7B,GAAavL,EAC1D4O,EAAsBxB,GAAmB7B,EACzCxV,KAAKiU,cAAcoD,GAAmB7B,CAAW,IAG5CqD,CAAqB,IAG9B,OACElR,QAAQE,IAAI,CAAC0P,EAAwBoB,IAClCjR,MAAK8C,IAA0C,IAC1CkL,GADEoC,EAAec,GAAmBpO,EAaxC,OAXIsN,IACFpC,EAAU,IAAKoC,EAAec,sBAC9BlC,EAAYhB,QAAUA,EACtBoD,EAAAA,EAAQxQ,KAAK,0BAA2B,CACtC4K,KAAMwC,EACNoC,cAAepC,KAInB1V,KAAK+T,OAAOjV,IAAIuW,EAAUqB,GAEtBA,EAAYR,MACP,CACLA,MAAOQ,EAAYR,MACnBnE,OAAQ2E,EAAY3E,QAIjB2D,CAAO,IAGfxD,OAAMlB,IACE,CACLkF,MAAOlF,EACPe,OAAQI,EAAmB5E,SAE7B,GAEN,IAcJ,OAXAsH,EACGnN,MAAK,KACJ1H,KAAKgU,WAAWc,OAAOO,EAAS,IAEjCnD,OAAMgE,IAEL,MADAlW,KAAKgU,WAAWc,OAAOO,GACjBa,CAAK,IAGflW,KAAKgU,WAAWlV,IAAIuW,EAAUR,GAEvBA,CACT,EAEAtT,EACAyF,aAAA,SAAasL,EAAS7V,QAAO,IAAPA,IAAAA,EAAU,CAAC,GAC/B,MAAM4Y,GAAW3K,EAAAA,EAAAA,IAAS4H,GAC1B,GAAItS,KAAK+T,OAAO3V,IAAIiX,GAAW,CAAC,IAAD0D,EAC7B,MAAM/F,EAAWhT,KAAK+T,OAAO1V,IAAIgX,GAEjC,GAAIrC,EAAS0C,QACX,OAAO1C,EAAS0C,QAGlB,GAAW,QAAXqD,EAAItc,SAAO,IAAAsc,GAAPA,EAASC,iBACX,MAAO,CACL9C,MAAOlD,EAASkD,MAChBnE,OAAQiB,EAASjB,OAGvB,CAEF,EAACxQ,EAED0X,eAAA,SAAe5D,GAEb,QAvkBkC6D,MACpC,GACE,eAAgBxd,gBACW,IAApBA,UAAUyd,WACjB,CACA,IAAKzd,UAAUyd,WAAWC,eAAa,IAAQ3D,SAAS,MACtD,OAAO,EAET,GAAI/Z,UAAUyd,WAAWE,SACvB,OAAO,CAEX,CACA,OAAO,CAAI,EA2jBJH,OAKDxd,UAAU4d,YAAaxG,EAAUyG,KAAK7d,UAAU4d,cAKhDtZ,KAAK+T,OAAO3V,IAAIiX,GAKtB,EAAC9T,EAEDiY,SAAA,SAASnE,GACP,IAAKrV,KAAKiZ,eAAe5D,GACvB,MAAO,CACL3N,KAAME,GAAWA,GAAQ,GACzB6R,MAAOA,QAGX,GAAIzZ,KAAKyU,kBAAkBrW,IAAIiX,GAC7B,MAAO,CACL3N,KAAME,GAAWA,GAAQ,GACzB6R,MAAOA,QAIX,MAAMC,EAAQ,CACZ9R,QAAS,KACTuJ,OAAQ,KACRwI,QAAS,MAEXD,EAAMC,QAAU,IAAIhS,SAAQ,CAACC,EAASuJ,KACpCuI,EAAM9R,QAAUA,EAChB8R,EAAMvI,OAASA,CAAM,IAEvBnR,KAAKwU,eAAetM,KAAK,CAACmN,EAAUqE,IACpC,MAAME,EAAS,IAAIC,gBAgBnB,OAfAD,EAAOE,OAAOlY,iBAAiB,SAAS,KACtC,MAAMmY,EAAQ/Z,KAAKwU,eAAewF,WAAUC,IAAA,IAAEC,GAAED,EAAA,OAAKC,IAAM7E,CAAQ,KAEpD,IAAX0E,GACF/Z,KAAKwU,eAAepM,OAAO2R,EAAO,EACpC,IAGG/Z,KAAKuU,yBACRvU,KAAKuU,wBAAyB,EAC9BZ,YAAW,KACT3T,KAAKma,2BAA2B,GAC/B,MAGE,CACLzS,KAAMA,CAACE,EAASuJ,IAAWuI,EAAMC,QAAQjS,KAAKE,EAASuJ,GACvDsI,MAAOG,EAAOH,MAAMjZ,KAAKoZ,GAE7B,EAACrY,EAED4Y,0BAAA,YACuB1e,OAAO2e,qBAAmB,CAAKC,GAAM1G,WAAW0G,EAAI,MAE5D,KACX,MAAMC,EAAata,KAAKwU,eAAepM,OAAO,EAAG,GAC3CmS,EAAa5S,QAAQE,IACzByS,EAAWjT,KAAImT,IAA2B,IAAzBnF,EAAUoF,GAASD,EASlC,OANKxa,KAAKyU,kBAAkBrW,IAAIiX,KAC9BrV,KAAKgV,UAAU,qBAAsB,CAAErR,SAAU0R,IACjDrV,KAAKyU,kBAAkBiG,IAAIrF,IAIzBrV,KAAKiV,iBACAwF,EAAS7S,SAAQ,GAGnB5H,KAAK2a,YAAWjQ,EAAAA,EAAAA,IAAS2K,IAAW3N,MAAK,KACzC1H,KAAK2U,kBAAkBvW,IAAIiX,KAC9BrV,KAAKgV,UAAU,yBAA0B,CAAErR,SAAU0R,IACrDrV,KAAK2U,kBAAkB+F,IAAIrF,IAG7BoF,EAAS7S,SAAQ,EAAK,GACtB,KAIF5H,KAAKwU,eAAenZ,OACtBkf,EAAW7S,MAAK,KACdiM,YAAW,KACT3T,KAAKma,2BAA2B,GAC/B,IAAK,IAGVna,KAAKuU,wBAAyB,CAChC,GAEJ,EAAChT,EAEDoZ,WAAA,SAAWtF,GACT,MAAMuF,EAAcvI,EAAkBgD,GAsBpC,OAAOwF,EAAeD,EAAa,CACjCE,YAAY,YACZC,GAAG,UACFrT,MAAK,IAGN1H,KAAK8V,iBAAiBT,IAG5B,EAAC9T,EAEDyZ,SAAA,SAAS1I,GACPtS,KAAK+G,SAASuL,EAChB,EAAC/Q,EAEDuF,2BAAA,SAA2BwL,GACzB,MAAM+C,GAAW3K,EAAAA,EAAAA,IAAS4H,GACpBY,EAAOlT,KAAKkU,WAAW7V,IAAIgX,GACjC,GAAInC,EAAM,CACR,MAAM4E,EAAgB/E,EAAgBG,EAAKwC,SAE3C,MAAM,GAANpa,QAAA8b,EAAAA,EAAAA,GACK6D,EAAoBnD,EAAc5E,KAAKC,qBAAmB,CAC7Dd,EAAkBgD,IAEtB,CACE,OAAO,IAEX,EAAC9T,EAED2Z,eAAA,SAAe5I,GACb,MAAM+C,GAAW3K,EAAAA,EAAAA,IAAS4H,GACpBY,EAAOlT,KAAK+T,OAAO1V,IAAIgX,GAC7B,OAAQnC,GAAQA,EAAKyC,QACvB,EAACpU,EAED6U,YAAA,SAAYd,GACV,YADiB,IAAPA,IAAAA,EAAU,GACbtV,KAAK4U,YAA8B,4BAA4BlN,MACpEkK,IACE,MAAM,OAAEG,EAAM,aAAEwD,GAAiB3D,EAEjC,IAAIuJ,EAEJ,GAAe,MAAXpJ,GAAkBuD,EAAU,EAE9B,OAAOtV,KAAKoW,YAAYd,EAAU,GAIpC,GAAe,MAAXvD,EACF,IACE,MAAMyD,EAAcpS,KAAKC,MAAMkS,GAC/B,QAA2CvT,IAAvCwT,EAAYpC,uBACd,MAAM,IAAI7F,MAAM,iCAGlB4N,EAAU3F,CACZ,CAAE,MAAOxE,GACP,CAIJ,OAAOmK,CAAO,GAGpB,EAACvH,CAAA,CA/sBoB,GAktBvB,MAAMqH,EAAsB9H,IACzB1X,OAAO2f,gBAAgBjI,IAAuB,IAAI9L,KACjDgU,GAASC,GAAkBD,IAGxB,IAkGHvP,EAlGSyP,EAAU,SAAAC,GACrB,SAAAD,EAAYE,EAAezS,EAAYgK,GAAW,IAADvT,EA2B9C,OARDA,EAAA+b,EAAA5c,KAAA,MAlBsB,SAAC8c,EAAWC,GAKhC,QAL0C,IAAVA,IAAAA,EAAU,eAKrCF,EAHHE,EAAU,cAGmBD,GAC7B,MAAM,IAAInO,MAAM,gEACiDmO,EAAS,KAI5E,OACED,EAAcE,GAAYD,KAEvBxJ,OAAMlB,GAAOA,GAEpB,GAEqBhI,IAAW,KAE5BgK,GACFvT,EAAKyU,WAAWpV,KAAI4L,EAAAA,EAAAA,IAASsI,EAAStK,MAAO,CAC3C2M,SAAUrC,EAAStK,KACnBgN,QAAS1C,EACTjB,OAAO,YAEVtS,CACH,EA7BqB2Q,EAAAA,EAAAA,GAAAmL,EAAAC,GA6BpB,IAAAI,EAAAL,EAAA7c,UAkEA,OAlEAkd,EAEDjB,WAAA,SAAWtF,GACT,OAAOmG,EAAA9c,UAAMic,WAAU/b,KAAC,KAAAyW,GAAU3N,MAAKJ,IACrC,GAAIA,EAAOyK,SAAWI,EAAmBC,QACvC,OAAOzK,QAAQC,UAEjB,MAAMoL,EAAW1L,EAAOoO,QAClBgG,EAAY1I,EAASG,mBACrB0I,EAAgBZ,EAAoBS,GAC1C,OAAO/T,QAAQE,IAAIgU,EAAcxU,IAAIwT,IAAiBnT,MAAK,IAAMsL,GAAS,GAE9E,EAAC4I,EAED9F,iBAAA,SAAiBxD,GACf,OAAOkJ,EAAA9c,UAAMoX,iBAAgBlX,KAAC,KAAA0T,GAAS5K,MAAKyG,GACtCA,EAAKwH,SACHlD,EAAiBH,GACZnE,EAIFuE,EAAQJ,EAAQ,QAAS5K,MAAKkK,GAChB,MAAfA,EAAIG,OAIC,CACLA,OAAQI,EAAmB5E,OAMxBY,IAGJA,GAEX,EAACyN,EAED7F,yBAAA,SAAyBzD,GACvB,OAAOkJ,EAAA9c,UAAMqX,yBAAwBnX,KAAC,KAAA0T,GAAS5K,MAAKyG,GAC9CA,EAAKwH,SACHlD,EAAiBH,GACZnE,EAIFuE,EAAQJ,EAAQ,QAAS5K,MAAKkK,GAChB,MAAfA,EAAIG,OAIC,CACLA,OAAQI,EAAmB5E,OAMxBY,IAGJA,GAEX,EAACoN,CAAA,CA/FoB,CAAS3H,GAoGzB,MAAMkI,EAAYC,IACvBjQ,EAAWiQ,CAAO,EAGPC,EAAe,CAC1BvL,QAAS6B,GAAWxG,EAAS0N,SAASlH,GAGtCxL,2BAA4BwL,GAC1BxG,EAAShF,2BAA2BwL,GACtCvL,SAAUuL,GAAWxG,EAAS/E,SAASuL,GAEvCtL,aAAc,SAACsL,EAAS7V,GAAY,YAAL,IAAPA,IAAAA,EAAU,CAAC,GACjCqP,EAAS9E,aAAasL,EAAS7V,EAAQ,EACzC+c,SAAUlH,GAAWxG,EAAS0N,SAASlH,GACvC4I,eAAgB5I,GAAWxG,EAASoP,eAAe5I,GACnD0I,SAAU1I,GAAWxG,EAASkP,SAAS1I,GACvC8D,YAAaA,IAAMtK,EAASsK,eAG9B,QAEO,SAAS6F,IACd,OAAInQ,EACKA,EAASmI,cAET,CAAC,CAEZ,CAEO,SAASiI,IACd,OAAIpQ,EACKA,EAASwI,SAET,CAAC,CAEZ,kKCz8BO,SAAS6H,EAAoBlS,GAA0B,IAAzB,SAAEzH,EAAQ,SAAE4Z,GAAUnS,EAKzD,OAJAoS,EAAAA,EAAAA,YAAU,KACRD,GAAU,IAGL5Z,CACT,CCXO,MAAM8Z,EAAmB,CAAC,OAAD,iECyEzB,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,EAASxL,aAAa,QAAD,IACrBwL,EAASF,MAAQA,EACVA,IAAUH,EAAOG,OAASH,EAAOD,YAAYM,EACtD,CACF,CAEA,OAAOL,EAAOD,YAAYE,EAC5B,CAsBO,SAASM,EACdC,EACAC,QAAqB,IAArBA,IAAAA,EAAwB,CACtBC,KAAM,CAAC,EACPC,KAAM,CAAC,IAGT,MAAMC,EAAU,IAAIrU,IACdsU,EAAiB,GAGvB,IAAK,MAAMrc,KAAQgc,EAASM,WAAY,CAAC,IAADC,EAAAC,EACtC,MAAMC,EAAWzc,EAAKyc,SAASvhB,cACzB2Q,EAAoB,QAAlB0Q,EAAGvc,EAAK0c,kBAAU,IAAAH,GAAI,QAAJC,EAAfD,EAAiB1Q,UAAE,IAAA2Q,OAAJ,EAAfA,EAAqBjhB,MAEhC,GAAKohB,EAAc3c,GAAnB,CAEA,GAAI4c,EAAgBH,GAElB,GAAY,SAARA,GAA+B,SAARA,EACzB,IAAK,MAAMI,KAAa7c,EAAK0c,WAAY,CACvC,MAAMI,EAAiC,UAAdD,EAAU7O,KAYZ,IAAD+O,EAAtB,GATAd,EAAsBQ,GAAY,IAC7BR,EAAsBQ,IAGtBK,IACHb,EAAsBQ,GAAUI,EAAU7O,MAAQ6O,EAAUthB,OAI1DuhB,EACFb,EAAsBQ,GAAUO,MAAK,IACJ,QAA/BD,EAAAd,EAAsBQ,UAAS,IAAAM,GAA/BA,EAAiCC,MAC7Bf,EAAsBQ,GAAUO,MAAK,IAExCH,EAAUthB,MAAK,GAEtB,KACK,CACL,IAAI0hB,EAAajd,EAAK8b,WAAU,GAQhC,GAPAmB,EAAW5M,aAAa,oBAAoB,GAGP,WAAjC4M,EAAWR,SAASvhB,gBACtB+hB,EAAaC,EAAcD,IAGzBpR,EACF,GAAKuQ,EAAQhf,IAAIyO,GAGV,CAAC,IAADsR,EACL,MAAMC,EAAgChB,EAAQ/e,IAAIwO,GAGtC,QAFZsR,EAAAd,EACEe,GACAzM,kBAAU,IAAAwM,GAFZA,EAEcE,YACZhB,EAAee,IAEjBf,EAAee,GAAiCH,CAClD,MAVEZ,EAAenV,KAAK+V,GACpBb,EAAQte,IAAI+N,EAAIwQ,EAAehiB,OAAS,QAW1CgiB,EAAenV,KAAK+V,EAExB,CAKEjd,EAAKsc,WAAWjiB,QAClBgiB,EAAenV,KAAInI,MAAnBsd,GAAcjG,EAAAA,EAAAA,GACT2F,EAA+B/b,EAAMic,GACrCI,gBA3D2B,CA8DpC,CAEA,MAAO,CAAEA,iBAAgBJ,wBAC3B,CAEA,SAASiB,EAAcld,GACrB,MAAM4D,EAAS3D,SAASqB,cAAc,UACtC,IAAK,MAAMgc,KAAQtd,EAAK0c,WACtB9Y,EAAOyM,aAAaiN,EAAKtP,KAAMsP,EAAK/hB,OAItC,OAFAqI,EAAOY,UAAYxE,EAAKwE,UAEjBZ,CACT,CAEO,SAASgZ,EAAgBH,GAC9B,OAAOnB,EAAiB7G,SAASgI,EACnC,CAKO,SAASE,EAAc3c,GAC5B,OAAyB,IAAlBA,EAAKud,QACd,CCjMA,MAAMC,EAAavd,SAASqB,cAAc,OACpCmc,EAA8B,CAClCvB,KAAM,GACNC,KAAM,IAGFuB,EAAiBA,KAAO,IAADC,EAC3B,MAAM,eAAEtB,EAAc,sBAAEJ,GACtBF,EAA+ByB,GAEjCC,EAA4BvB,KAAO9gB,OAAOqR,KAAKwP,EAAsBC,MACrEuB,EAA4BtB,KAAO/gB,OAAOqR,KAAKwP,EAAsBE,MDkMhE,SAAoCF,GACzC,IAAKA,EAAuB,OAE5B,MAAM,KAAEC,EAAI,KAAEC,GAASF,EAEjB2B,EAAc3d,SAAS+D,cAAc,QACvC4Z,GACFxiB,OAAOkT,QAAQ4N,GAAM5L,SAAQ9G,IAAsC,IAApCqU,EAAeC,GAAetU,EAC3DoU,EAAYvN,aAAawN,EAAeC,EAAe,IAI3D,MAAMC,EAAc9d,SAAS+D,cAAc,QACvC+Z,GACF3iB,OAAOkT,QAAQ6N,GAAM7L,SAAQ2I,IAAsC,IAApC4E,EAAeC,GAAe7E,EAC3D8E,EAAY1N,aAAawN,EAAeC,EAAe,GAG7D,CClNEE,CAA2B/B,GAM3B,MAAMgC,EAAuBhe,SAASie,iBAAiB,sBAEf,IAADC,EAAvC,GAAoC,IAAhCF,EAAqB5jB,OAEvB,YADA8jB,EAAAle,SAAS0E,MAAKyZ,OAAMrf,MAAAof,GAAA/H,EAAAA,EAAAA,GAAIiG,IAI1B,MAAMgC,EAAe,ID8ChB,SAAkBpV,GAA0C,IAAzC,SAAEqV,EAAQ,SAAEC,EAAQ,QAAEC,EAAO,MAAEC,GAAOxV,EAC9D,IAAK,MAAMyV,KAAuBJ,EAAU,CAC1C,MAAMK,EAAkBJ,EAASvF,WAAU1W,GACzCiZ,EAAYjZ,EAAGoc,MAGQ,IAArBC,EACFH,EAAQE,GAGRH,EAASnX,OAAOuX,EAAiB,EAErC,CAGA,IAAK,MAAMC,KAAWL,EACpBE,EAAMG,EAEV,CC/DEC,CAAU,CACRP,SAAUL,EACVM,SAAUlC,EACVmC,QAASxe,GAAQA,EAAK2Q,WAAW0M,YAAYrd,GAC7Cye,MAAOze,GAAQqe,EAAanX,KAAKlH,MAGnC2d,EAAA1d,SAAS0E,MAAKyZ,OAAMrf,MAAA4e,EAAIU,EAAa,EAmChC,SAASS,EAAqB7V,GAIjC,IAJkC,cACpCyN,EAAa,mBACbkB,EAAkB,mBAClBmH,GACD9V,GACCoS,EAAAA,EAAAA,YAAU,KACR,GAAI3E,SAAAA,EAAesI,KAAM,EDvEtB,SAA6Bra,GAClC,GAAe,mBAAJA,EACT,MAAM,IAAI4H,MAAM,uDACyC5H,EAAI,KAEjE,CCmEMsa,CAAoBvI,EAAcsI,MAElC,MAAM,OAAE3d,IAAW6d,EAAAA,EAAAA,KAEbC,EACJriB,EAAAA,cAAC4Z,EAAcsI,KD3Fd,CACLxe,SAAU,CACRmC,UAH0B5G,EC4FgBgjB,GDzF1Bve,SAASmC,UAE3B8G,OAAQ1N,EAAM0N,OACd0D,KAAMpR,EAAMoR,MAAQ,CAAC,EACrBiS,WAAYrjB,EAAMqjB,WAClBC,YAAatjB,EAAMsjB,cCuFXC,GAAkBtL,EAAAA,EAAAA,GAAU,kBAEhC,CAAEpS,QAASud,GACXA,GACA3V,IAAiB,IAAhB,OAAElD,GAAQkD,EACT,MAAO,CAAE5H,QAAS0E,EAAQ,IAE5BiZ,MAEFle,EAIEvE,EAAAA,cAACqe,EAAoB,CAACC,SAAUsC,GAC9B5gB,EAAAA,cAAC0iB,EAAAA,mBAAmBje,SAAQ,CAAChG,MAAOqc,GAClC9a,EAAAA,cAAC2iB,EAAAA,iBAAgB,KAAEH,KAGvB9B,EAEJ,CDnHG,IAAyBzhB,ECqH5B,MAAO,MD4FJ,WACL,MAAM2jB,EAAgBzf,SAASie,iBAAiB,sBAChD,IAAK,MAAMle,KAAQ0f,EACjB1f,EAAK2Q,WAAW0M,YAAYrd,EAEhC,CChGM2f,GDsHC,SAAqCC,GAC1C,IAAKA,EAA0B,OAE/B,MAAM,KAAE1D,EAAI,KAAEC,GAASyD,EAEvB,GAAI1D,EAAM,CACR,MAAM0B,EAAc3d,SAAS+D,cAAc,QAC3CkY,EAAK5L,SAAQuN,IACPD,GACFA,EAAYiC,gBAAgBhC,EAC9B,GAEJ,CAEA,GAAI1B,EAAM,CACR,MAAM4B,EAAc9d,SAAS+D,cAAc,QAC3CmY,EAAK7L,SAAQuN,IACPE,GACFA,EAAY8B,gBAAgBhC,EAC9B,GAEJ,CACF,CC3IMiC,CAA4BrC,EAA4B,CACzD,GAEL,CCzHA,SAASsC,EAAangB,GACpB,MAAMmf,EAAqB,IACtBnf,EACH6J,OAAQ,KACHF,EAAAA,EAAAA,IAAgB3J,EAAMY,SAASmC,aAC/B/C,EAAMkX,cAAcvE,KAAK8M,YAAYW,WAM5C,IAAIC,EAFkBjK,MAIpBiK,EADErgB,EAAMkX,cAAcC,iBACRnX,EAAMkX,cAAcC,kBAEpBzV,EAAAA,EAAAA,gBANM0U,EAMsBpW,EAAMkX,cAAc9J,YAN/BgJ,EAAE/Y,SAAY+Y,EAM6B,IACrE+I,EACHthB,IAAKmC,EAAM8H,MAAQ9H,EAAMkX,cAAc5E,KAAKxK,OAMhDoX,EAAsB,CACpBpI,cAHoB9W,EAAMkX,cAAcnS,KAIxCiT,mBAAoBhY,EAAMkX,cAAcc,mBACxCmH,uBAeF,OAZoB/K,EAAAA,EAAAA,GAAU,kBAE5B,CACEpS,QAASqe,EACTrgB,MAAOmf,GAETkB,GACAhX,IAAiB,IAAhB,OAAE3C,GAAQ2C,EACT,MAAO,CAAErH,QAAS0E,EAAQ1G,MAAOmf,EAAoB,IAEvDQ,KAGJ,CAEAQ,EAAare,UAAY,CACvBlB,SAAU0f,IAAAA,OAAiBre,WAC3BiV,cAAeoJ,IAAAA,OAAiBre,WAChCsL,KAAM+S,IAAAA,OACNb,YAAaa,IAAAA,OAAiBre,YAGhC,mJCxDO,MAAMse,EAAsB,CACjCtU,GAAG,mBACHmR,MAAO,CACL5iB,SAAS,WACTgmB,IAAK,EACLC,MAAO,EACPC,OAAQ,EACRC,QAAS,EACTC,SAAS,SACTC,KAAK,mBACLC,WAAW,SACXC,OAAQ,GAEV,YAAY,YACZ,cAAc,sBCHhB,SAASC,EAAcje,GACrB,MAAMgH,GAAWC,EAAAA,EAAAA,GAAwBjH,IACnC,KAAE5C,EAAI,OAAE4H,GAAWlN,OAAO+F,SAEhC,OAAgB,MAAZmJ,IACFlP,OAAOomB,WAAWlX,EAASE,OAASlC,EAAS5H,IACtC,EAIX,CAGA,IAAI+gB,EAAS,GAEbrmB,OAAOmG,iBAAiB,sBAAsBmgB,IACxC,6BAA6BxI,KAAKwI,EAAMC,SACtCF,IACFrmB,OAAO+F,SAASmC,SAAWme,EAE/B,IAGF,MAAMG,EAAmBA,CAACzgB,EAAU0gB,KAC7BN,EAAcpgB,EAASmC,YAC1Bme,EAAYtgB,EAASmC,UACrBqR,EAAAA,EAAAA,GAAU,mBAAoB,CAAExT,WAAU0gB,iBAC5C,EAGIC,EAAgBA,CAAC3gB,EAAU0gB,KAC1BN,EAAcpgB,EAASmC,YAC1BqR,EAAAA,EAAAA,GAAU,gBAAiB,CAAExT,WAAU0gB,gBAOzC,EAGIE,EAAW,SAACC,EAAI5lB,GAIpB,QAJ2B,IAAPA,IAAAA,EAAU,CAAC,GAIlB,iBAAF4lB,EAET,YADAC,EAAAA,cAAcF,SAASC,GAIzB,MAAM,SAAE1e,EAAQ,OAAEgF,EAAM,KAAE5H,IAASwhB,EAAAA,EAAAA,IAAUF,GACvC1X,GAAWC,EAAAA,EAAAA,GAAwBjH,GAUzC,GANIgH,IACF0X,EAAK1X,EAASE,OAASlC,EAAS5H,GAK9BtF,OAAO+mB,aAET,YADA/mB,OAAO+F,SAAWmC,EAAWgF,EAAS5H,GAMxC,MAAM0hB,EAAY9O,YAAW,KAC3BmF,EAAAA,EAAQxQ,KAAK,6BAA8B,CAAE3E,cAC7CqR,EAAAA,EAAAA,GAAU,uBAAwB,CAChCxT,SAAU/F,OAAO+F,UACjB,GACD,KAEHgP,EAAAA,GAAOzJ,SAASpD,EAAWgF,GAAQjB,MAAKoQ,IAOtC,IAAKA,GAAiBA,EAAc/F,SAAWI,EAAAA,GAAmB5E,MAIhE,OAHA9R,OAAOinB,QAAQC,aAAa,CAAC,EAAE,GAAKnhB,SAASmI,MAC7ClO,OAAO+F,SAAWmC,OAClBif,aAAaH,GAM8B3K,GAEzCA,EAAc5E,KAAKE,yBACnB3X,OAAOonB,4BAIL,kBAAmBnnB,WACoB,OAAvCA,UAAUonB,cAAc3K,YACgB,cAAxCzc,UAAUonB,cAAc3K,WAAWpU,OAEnCrI,UAAUonB,cAAc3K,WAAW4K,YAAY,CAC7CC,UAAU,uBAIdvnB,OAAO+F,SAAWmC,EAAWgF,EAAS5H,IAG1CkiB,EAAAA,EAAAA,UAAcZ,EAAI5lB,GAClBmmB,aAAaH,EAAU,GAE3B,EAEA,SAAS9hB,EAAmBU,EAAe4I,GAAiB,IAAf,SAAEzI,GAAUyI,EACvD,MAAM,SAAEtG,EAAQ,KAAE5C,GAASS,EACrB4F,GAAU4N,EAAAA,EAAAA,GAAU,qBAAsB,CAC9C3T,kBAEAsC,WACArC,YAAa,CAAEE,YACf0hB,uBAAwBtjB,GAAQ,CAC9B,EAGAI,KAAKC,cAAc6B,KAAKlC,EAAMA,EAAKnB,QAGvC,GAAI2I,EAAQ/L,OAAS,EAGnB,OAAO+L,EAAQA,EAAQ/L,OAAS,GAGlC,GAAIgG,EAAiB,CACnB,MACEG,UAAYmC,SAAUwf,IACpB9hB,EACJ,GAAI8hB,IAAgBxf,EAGlB,OAAO5C,EAAOgB,UAAUhB,EAAKxF,MAAM,IAAM,CAAC,EAAG,EAEjD,CACA,OAAO,CACT,CAYC,IAEK6nB,EAAc,SAAA5jB,GAClB,SAAA4jB,EAAYxiB,GAAQ,IAADnB,EAEuB,OADxCA,EAAAD,EAAAZ,KAAA,KAAMgC,IAAM,MACPyiB,gBAAkBvlB,EAAAA,YAAiB2B,CAC1C,EAJkB2Q,EAAAA,EAAAA,GAAAgT,EAAA5jB,GAIjB,IAAA+B,EAAA6hB,EAAA1kB,UAwBA,OAxBA6C,EAEDY,mBAAA,SAAmBzB,EAAW4iB,GAC5BhjB,uBAAsB,KACpB,IAAIijB,EAAQ,eAAkBvjB,KAAKY,MAAMY,SAASmC,SAC9C1C,SAASuiB,QACXD,EAAWtiB,SAASuiB,OAEtB,MAAMC,EAAexiB,SAASie,iBAAiB,4BAC3CuE,GAAgBA,EAAapoB,SAC/BkoB,EAAWE,EAAa,GAAGC,aAE7B,MAAMC,EAAe,gBAAmBJ,EACxC,GAAIvjB,KAAKqjB,gBAAgBhf,QAAS,CACRrE,KAAKqjB,gBAAgBhf,QAAQuf,YAC7BD,IACtB3jB,KAAKqjB,gBAAgBhf,QAAQuf,UAAYD,EAE7C,IAEJ,EAACpiB,EAEDc,OAAA,WACE,OAAOvE,EAAAA,cAAA,MAAA1B,OAAA6R,OAAA,GAASkT,EAAmB,CAAEjd,IAAKlE,KAAKqjB,kBACjD,EAACD,CAAA,CA5BiB,CAAStlB,EAAAA,WA+B7B,MAAM+lB,EAAuBA,CAAC3B,EAAc4B,KAAkB,IAADC,EAAAC,EAC3D,OAAI9B,EAAavY,OAASma,EAAana,OAInCuY,SAAmB,QAAP6B,EAAZ7B,EAAcne,aAAK,IAAAggB,OAAP,EAAZA,EAAqBtlB,QAAQqlB,SAAmB,QAAPE,EAAZF,EAAc/f,aAAK,IAAAigB,OAAP,EAAZA,EAAqBvlB,IAI1C,EAGd,IACMwlB,EAAY,SAAAC,GAChB,SAAAD,EAAYrjB,GAAQ,IAADujB,EAEqB,OADtCA,EAAAD,EAAAtlB,KAAA,KAAMgC,IAAM,KACZqhB,EAAiBrhB,EAAMY,SAAU,MAAK2iB,CACxC,EAJgB/T,EAAAA,EAAAA,GAAA6T,EAAAC,GAIf,IAAAtI,EAAAqI,EAAAvlB,UA2BA,OA3BAkd,EAEDla,kBAAA,WACEygB,EAAcniB,KAAKY,MAAMY,SAAU,KACrC,EAACoa,EAEDwI,sBAAA,SAAsBd,GACpB,QAAIO,EAAqB7jB,KAAKY,MAAMY,SAAU8hB,EAAU9hB,YACtDygB,EAAiBqB,EAAU9hB,SAAUxB,KAAKY,MAAMY,WACzC,EAGX,EAACoa,EAEDzZ,mBAAA,SAAmBzB,GACbmjB,EAAqBnjB,EAAUc,SAAUxB,KAAKY,MAAMY,WACtD2gB,EAAcniB,KAAKY,MAAMY,SAAUd,EAAUc,SAEjD,EAACoa,EAEDvZ,OAAA,WACE,OACEvE,EAAAA,cAACA,EAAAA,SAAc,KACZkC,KAAKY,MAAM4B,SACZ1E,EAAAA,cAACslB,EAAc,CAAC5hB,SAAUA,WAGhC,EAACyiB,CAAA,CA/Be,CAASnmB,EAAAA,mCCxN3B,SAASumB,EAAexY,EAAGyY,GACzB,IAAK,IAAIC,KAAK1Y,EACZ,KAAM0Y,KAAKD,GAAI,OAAO,EACvB,IAAK,IAAIE,KAAMF,EACd,GAAIzY,EAAE2Y,KAAQF,EAAEE,GAAK,OAAO,EAC7B,OAAO,CACV,CC8GA,MAlHqB,SAAAhlB,GACnB,SAAAilB,EAAY7jB,GAAQ,IAADnB,EACjBA,EAAAD,EAAAZ,KAAA,OAAO,KACP,MAAM,SAAE4C,EAAQ,cAAEsW,GAAkBlX,EAQnC,OAPDnB,EAAKsE,MAAQ,CACXvC,SAAU,IAAKA,GACfsW,cACEA,GACAtH,EAAAA,GAAOxJ,aAAaxF,EAASmC,SAAWnC,EAASmH,OAAQ,CACvDqQ,kBAAkB,KAEvBvZ,CACH,EAZmB2Q,EAAAA,EAAAA,GAAAqU,EAAAjlB,GAYlBilB,EAEMC,yBAAP,SAAAza,EAA8C0a,GAAY,IAA1B,SAAEnjB,GAAUyI,EAC1C,GAAI0a,EAAUnjB,SAASmI,OAASnI,EAASmI,KAAM,CAQ7C,MAAO,CACLmO,cARoBtH,EAAAA,GAAOxJ,aAC3BxF,EAASmC,SAAWnC,EAASmH,OAC7B,CACEqQ,kBAAkB,IAMpBxX,SAAU,IAAKA,GAEnB,CAEA,MAAO,CACLA,SAAU,IAAKA,GAEnB,EAAC,IAAAD,EAAAkjB,EAAA/lB,UA+EA,OA/EA6C,EAEDqjB,cAAA,SAActS,GACZ9B,EAAAA,GAAOzJ,SAASuL,GAAS5K,MAAKoQ,IACxBA,GAAiBA,EAAc/F,SAAWI,EAAAA,GAAmB5E,MAC/DvN,KAAK6kB,SAAS,CACZrjB,SAAU,IAAK/F,OAAO+F,UACtBsW,mBAGFrc,OAAOinB,QAAQC,aAAa,CAAC,EAAE,GAAKnhB,SAASmI,MAC7ClO,OAAO+F,SAAW8Q,EACpB,GAEJ,EAAC/Q,EAED6iB,sBAAA,SAAsBd,EAAWwB,GAE/B,OAAKA,EAAUhN,cAkBX9X,KAAK+D,MAAM+T,gBAAkBgN,EAAUhN,gBAIzC9X,KAAK+D,MAAM+T,cAAc9J,YAAc8W,EAAUhN,cAAc9J,YAK7DhO,KAAK+D,MAAM+T,cAAcvE,OAASuR,EAAUhN,cAAcvE,SAM5DvT,KAAK+D,MAAMvC,SAAS/C,MAAQqmB,EAAUtjB,SAAS/C,MAC/CqmB,EAAUhN,cAAc5E,OACvB4R,EAAUhN,cAAc5E,KAAKhJ,YAC5B4a,EAAUhN,cAAc5E,KAAKxK,ODhFrC,SAA0BoD,EAAUwX,EAAWwB,GAC7C,OAAOT,EAAevY,EAASlL,MAAO0iB,IAAce,EAAevY,EAAS/H,MAAO+gB,EACpF,CCkFUC,CAAe/kB,KAAMsjB,EAAWwB,OAvCrC9kB,KAAK4kB,cACHtB,EAAU9hB,SAASmC,SAAW2f,EAAU9hB,SAASmH,SAE5C,EAqCX,EAACpH,EAEDc,OAAA,WAiBE,OAAOrC,KAAKY,MAAM4B,SAASxC,KAAK+D,MAClC,EAAC0gB,CAAA,CA/GkB,CAAS3mB,EAAAA,4FC6B9B,MAAM0S,EAAS,IAAI+K,EAAAA,GAAWE,EAAezS,EAAYvN,OAAOuX,WAChE8I,EAAAA,EAAAA,IAAUtL,GACVA,EAAOuE,aAAaC,EAAAA,GAEpB,MAAM,OAAE3S,EAAM,QAAE2iB,IAAY9E,EAAAA,EAAAA,KAE5BzkB,OAAOggB,cAAgBA,EACvBhgB,OAAOwpB,WAAanM,EAAAA,EACpBrd,OAAOypB,UAAYlJ,EAAAA,GH4HjBsG,EAAAA,cAAc6C,QAAOvlB,IACnBA,EAAK4B,SAAS4jB,OAASxlB,EAAKwlB,MAAM,IAGpC3pB,OAAO4pB,QAAUhD,GAAMD,EAASC,EAAI,CAAElmB,SAAS,IAC/CV,OAAOomB,WAAaQ,GAAMD,EAASC,EAAI,CAAElmB,SAAS,IAClDV,OAAO6pB,YAAc,CAACjD,EAAI5lB,IAAY2lB,EAASC,EAAI5lB,GG9HrD,MAAM8oB,EAAgB,wCAEtBC,EAAAA,EAAAA,GAAe,iBAAiB9d,MAAK,MAG/BsN,EAAAA,EAAAA,GAAU,yBAAyBpY,OAAO+O,SAAStQ,OAAS,GAC9DuL,EAAQ,MAWV,MAAM6e,EAAe7kB,GACnB9C,EAAAA,cAAC4nB,EAAAA,YAAYnjB,SAAQ,CACnBhG,MAAO,CACLopB,QAAQ,IACRC,SAAS,MAGX9nB,EAAAA,cAACijB,EAAAA,EAAiBngB,IAIhBilB,EAAc/nB,EAAAA,cAAoB,CAAC,GAEnC0Q,EAAgB,CACpBK,kBAAkB,WACnB,IAEKiX,EAAU,SAAAtmB,GAAA,SAAAsmB,IAAA,OAAAtmB,EAAAO,MAAA,KAAAJ,YAAA,KAiCb,OAjCayQ,EAAAA,EAAAA,GAAA0V,EAAAtmB,GAAAsmB,EAAApnB,UACd2D,OAAA,WACE,MAAM,SAAEG,GAAaxC,KAAKY,MAC1B,OACE9C,EAAAA,cAACioB,EAAAA,SAAQ,MACN9b,IAAA,IAAC,SAAEzI,GAAUyI,EAAA,OACZnM,EAAAA,cAAC2mB,EAAe,CAACjjB,SAAUA,IACxBgJ,IAAkC,IAAjC,cAAEsN,EAAa,SAAEtW,GAAUgJ,EAC3B,MAAMoO,GAAqBqD,EAAAA,EAAAA,MACrB+J,GAAe9J,EAAAA,EAAAA,MAErB,OACEpe,EAAAA,cAAC0iB,EAAAA,GAAmBje,SAAQ,CAAChG,MAAOqc,GAClC9a,EAAAA,cAAC2Q,EAAAA,GAAclM,SAAQ,CAAChG,MAAOiS,GAC7B1Q,EAAAA,cAACiQ,EAAAA,GAAqBxL,SAAQ,CAAChG,MAAOypB,GACpCloB,EAAAA,cAACqP,EAAAA,GAAiB5K,SAAQ,CACxBhG,MAAOub,EAAc5E,KAAKhG,WAE1BpP,EAAAA,cAAC+nB,EAAYtjB,SAAQ,CACnBhG,MAAO,CAAEub,gBAAetW,aAEvBgB,MAKmB,GAGlB,GAI1B,EAACsjB,CAAA,CAjCa,CAAShoB,EAAAA,WAoCnBmoB,EAAe,SAAA/B,GAAA,SAAA+B,IAAA,OAAA/B,EAAAnkB,MAAA,KAAAJ,YAAA,KAsClB,OAtCkByQ,EAAAA,EAAAA,GAAA6V,EAAA/B,GAAA+B,EAAAvnB,UACnB2D,OAAA,WACE,OACEvE,EAAAA,cAAC+nB,EAAYK,SAAQ,MAClBjM,IAAA,IAAC,cAAEnC,EAAa,SAAEtW,GAAUyY,EAAA,OAC3Bnc,EAAAA,cAACmmB,EAAY,CAACziB,SAAUA,GACtB1D,EAAAA,cAACH,EAAAA,GAAa,CACZ6D,SAAUA,EACVb,mBAAoBA,GAEpB7C,EAAAA,cAACqoB,EAAAA,OAAM,CACLP,SAAUpc,GACVhI,SAAUA,EACVqL,GAAG,wBAEH/O,EAAAA,cAAC2nB,EAAYrpB,OAAA6R,OAAA,CACXvF,KACyB,cAAvBoP,EAAc5E,KAAKxK,MACI,cAAvBoP,EAAc5E,KAAKxK,MACfa,EAAAA,EAAAA,GAAY/H,EAASmC,SAAU6F,IAC/B4c,WAEItO,EAAc5E,KAAKhJ,WACnB4N,EAAc5E,KAAKxK,MACnBE,MAAM,KAAK,KAGjB5I,KAAKY,MAAK,CACdY,SAAUA,EACVsW,cAAeA,GACXA,EAAcvE,SAIX,GAIvB,EAAC0S,CAAA,CAtCkB,CAASnoB,EAAAA,WAyC9B,MAAM,SAAEuX,EAAU7T,SAAU6kB,GAAe5qB,OAYzC4Z,GACA7L,GAAgB6L,IACdgR,EAAW1iB,UAAY0R,EAASI,SAAS,KAAO4Q,EAAW1d,OAAM,OAEjE6H,EAAO3G,eAAcN,EAAAA,EAAAA,GAAY8c,EAAW1iB,SAAU6F,MACtD6L,EAAS1Y,MAAM,6BACf0Y,EAAS1Y,MAAM,+CAGjBylB,EAAAA,EAAAA,UACE5Y,GACE6L,GACEA,EAASI,SAAS,KAAwB,GAAjB4Q,EAAW1d,QACtC0d,EAAWtlB,KACb,CACE5E,SAAS,IAMf,MAAMmqB,EAAoBA,KACxB,IACE,OAAOpjB,cACT,CAAE,MACA,OAAO,IACT,GAGF8Y,EAAAA,GAAajV,SAASsf,EAAW1iB,SAAW0iB,EAAW1d,QAAQjB,MAAKwL,IAAS,IAADqT,EAC1E,MAAMrjB,EAAiBojB,IAEvB,GACEpT,SAAU,QAANqT,EAAJrT,EAAMA,YAAI,IAAAqT,GAAVA,EAAYnT,wBACZF,EAAKA,KAAKE,yBAA2B3X,OAAOonB,4BAI1C,kBAAmBnnB,WACoB,OAAvCA,UAAUonB,cAAc3K,YACgB,cAAxCzc,UAAUonB,cAAc3K,WAAWpU,OAEnCrI,UAAUonB,cAAc3K,WAAW4K,YAAY,CAC7CC,UAAU,uBAUV9f,GAAgB,CAGlB,KAF2D,MAAxCA,EAAeC,QAAQoiB,IAKxC,OAFAriB,EAAeO,QAAQ8hB,EAAiB,UACxC9pB,OAAO+F,SAASglB,QAAO,EAG3B,CAOF,GAJItjB,GACFA,EAAeujB,WAAWlB,IAGvBrS,GAAQA,EAAKnB,SAAWI,EAAAA,GAAmB5E,MAAO,CACrD,MAAMkC,EAAO,sBAAyB4W,EAAW1iB,SAAQ,kCAIzD,GAAIuP,GAAQA,EAAKgD,MAEf,MADAwQ,QAAQxQ,MAAMzG,GACRyD,EAAKgD,MAGb,MAAM,IAAI3I,MAAMkC,EAClB,CAEA,MAAMkX,GAAW3R,EAAAA,EAAAA,GAAU,kBAEzB,CAAEpS,QAAS9E,EAAAA,cAACmoB,EAAe,OAC3BnoB,EAAAA,cAACmoB,EAAe,OAChBzL,IAAiB,IAAhB,OAAElT,GAAQkT,EACT,MAAO,CAAE5X,QAAS0E,EAAQ,IAE5BiZ,MAEIqG,EAAM,WACV,MAAMC,EAAsB/oB,EAAAA,QAAa,GAazC,OAXAA,EAAAA,WAAgB,KACT+oB,EAAoBxiB,UACvBwiB,EAAoBxiB,SAAU,EAC1ByiB,YAAYC,MACdD,YAAYC,KAAK,0BAGnB/R,EAAAA,EAAAA,GAAU,yBACZ,GACC,IAEIlX,EAAAA,cAACgoB,EAAU,KAAEa,EACtB,EAEMK,EAAU/lB,SAASC,eAAe,wBAIxC,IAAI+lB,EAAkB5kB,EAClB2kB,GAAWA,EAAQxkB,SAASnH,SAC9B4rB,EAAkBjC,GAGpB,MAAMkC,GAAWlS,EAAAA,EAAAA,GAAU,8BAEzBhT,EACAilB,GACA,GAEF,SAASE,IACP,MAAMC,EACS,oBAAN3rB,OACHwF,SAASC,eAAe,aACxB,KAENgmB,EAASppB,EAAAA,cAAC8oB,EAAG,MAAKQ,EACpB,CAIA,MAAMC,EAAMpmB,SACZ,GACgB,aAAdomB,EAAIxU,YACW,YAAdwU,EAAIxU,aAA6BwU,EAAIC,gBAAgBC,SAEtD5T,YAAW,WACTwT,GACF,GAAG,OACE,CACL,MAAMlf,EAAU,WACdof,EAAInlB,oBAAoB,mBAAoB+F,GAAS,GACrDxM,OAAOyG,oBAAoB,OAAQ+F,GAAS,GAE5Ckf,GACF,EAEAE,EAAIzlB,iBAAiB,mBAAoBqG,GAAS,GAClDxM,OAAOmG,iBAAiB,OAAQqG,GAAS,EAC3C,CAEM,GACN,+EC1SJ,UAlByBgC,IAAmB,IAAlB,SAAEzI,GAAUyI,EACpC,MAAM6N,EAAgBtH,EAAAA,GAAOxJ,aAAaxF,EAASmC,UACnD,OAAKmU,EAGEha,EAAAA,cAAoB0pB,EAAAA,EAAsB,CAC/ChmB,WACAsW,mBACGA,EAAcvE,OALV,IAMP,wBCfkByD,MAKpBtQ,EAAOpK,SALa0a,EAKWpQ,EAAQ,OALRoQ,EAAE/Y,SAAY+Y,qECA/C,MAAM3P,EAAM,IAAInI,QAET,SAASghB,IACd,MAAMuH,EAAiB7gB,EAAQ,KAY/B,MAAO,CAAEvE,OAVMA,CAACI,EAAWilB,KACzB,IAAIC,EAAOtgB,EAAIhJ,IAAIqpB,GACdC,GACHtgB,EAAIvI,IAAI4oB,EAAKC,EAAOF,EAAeG,WAAWF,IAEhDC,EAAKtlB,OAAOI,EAAU,EAKPuiB,QAFDA,CAACviB,EAAWilB,IAAOD,EAAeI,YAAYH,EAAIjlB,GAGpE,qECZA,MAAMqlB,EAAc,IAAI/e,IAClBgf,EAAwB,IAAIhf,IAU3B,SAAS6B,EAAwBjH,GACtC,IAAIgH,EAAWmd,EAAYzpB,IAAIsF,GAI/B,OAHKgH,IACHA,EAAWod,EAAsB1pB,IAAIsF,EAASzH,gBAEzCyO,CACT,IAdU2G,SAAQ3G,IACZA,EAASqd,WACXD,EAAsBjpB,IAAI6L,EAASsd,SAAUtd,GAE7Cmd,EAAYhpB,IAAI6L,EAASsd,SAAUtd,EACrC,4DCTwB,WAAxBlP,OAAO+F,SAAS0mB,UACQ,cAAxBzsB,OAAO+F,SAAS2mB,SAEhBzB,QAAQxQ,MAAM,gFAGL,kBAAmBxa,WAC5BA,UAAUonB,cACPsF,SAAyB,UACzB1gB,MAAK,SAAU2gB,GACdA,EAAIzmB,iBAAiB,eAAe,MAClCoT,EAAAA,EAAAA,GAAU,6BAA8B,CAAE8N,cAAeuF,IAGzD,MAAMC,EAAmBD,EAAIE,WAC7B7B,QAAQ8B,IAAI,mBAAoBF,GAChCA,EAAiB1mB,iBAAiB,eAAe,KAC/C,OAAQ0mB,EAAiBvkB,OACvB,IAAI,YACErI,UAAUonB,cAAc3K,YAK1B1c,OAAO+mB,cAAe,GAEtBxN,EAAAA,EAAAA,GAAU,6BAA8B,CAAE8N,cAAeuF,IAGrD5sB,OAAOgtB,qBACT/B,QAAQ8B,IAAI,4CACZ/sB,OAAO+F,SAASglB,YAKlBE,QAAQ8B,IAAI,sCAKZxT,EAAAA,EAAAA,GAAU,2BAA4B,CAAE8N,cAAeuF,KAEzD,MAEF,IAAI,YACF3B,QAAQxQ,MAAM,oDACdlB,EAAAA,EAAAA,GAAU,2BAA4B,CAAE8N,cAAeuF,IACvD,MAEF,IAAI,aACFrT,EAAAA,EAAAA,GAAU,wBAAyB,CAAE8N,cAAeuF,IAExD,GACA,GAEN,IACCnW,OAAM,SAAU5O,GACfojB,QAAQxQ,MAAM,4CAA6C5S,EAC7D,8JC5DJ,MAAMyK,EAAuBjQ,EAAAA,cAAoB,CAAC,GAC5C2Q,EAAgB3Q,EAAAA,cAAoB,CAAC,GACrCqP,EAAmBrP,EAAAA,cAAoB,CAAC,GACxCuP,EAAqBvP,EAAAA,cAAoB,CAAC,qICDhD,MAAM0iB,GCgB+BxR,EDhBkB,cCgBZ0Z,EDhB2B,CAAC,ECiBjE5qB,EAAM6qB,oBAjBgB,SAAC3Z,EAAM0Z,GAajC,YAb6C,IAAZA,IAAAA,EAAe,MAE3CE,WAAWC,mBACdD,WAAWC,iBAAmB,CAAC,GAG5BD,WAAWC,iBAAiB7Z,KAC/B4Z,WAAWC,iBAAiB7Z,GAAQlR,EAAM6qB,oBACxC3Z,EACA0Z,IAIGE,WAAWC,iBAAiB7Z,EACrC,CAIW2Z,CAAoB3Z,EAAM0Z,GAG5B5qB,EAAAA,cAAoB4qB,IAL7B,IAAqC1Z,EAAM0Z,EDd3C,SAASI,EAAuB7e,GAA4C,IAA3C,gBAAE8e,EAAe,KAAE5a,EAAI,MAAE6a,EAAK,OAAE3mB,GAAQ4H,EACvE,MAAMgf,EAAY9a,EACdA,EAAKA,KACL4a,EAAgBC,IAAUD,EAAgBC,GAAO7a,KAErD,OACErQ,EAAAA,cAACA,EAAAA,SAAc,KACZmrB,GAAa5mB,EAAO4mB,IACnBA,GAAanrB,EAAAA,cAAA,WAAK,yBAG1B,CAKA,MAAMorB,EAActoB,IAClB,MAAM,KAAEuN,EAAI,MAAE6a,EAAK,OAAE3mB,EAAM,SAAEG,GAAa5B,EAS1C,OACE9C,EAAAA,cAAC0iB,EAAmB0F,SAAQ,MACzB6C,GACCjrB,EAAAA,cAACgrB,EAAuB,CACtB3a,KAAMA,EACN6a,MAAOA,EACP3mB,OAAQA,GAAUG,EAClBumB,gBAAiBA,KAGO,EAW5BI,EAAiBH,IAAU,IAADI,EAErBtrB,EAAAA,WAUT,MAAMurB,EAAUvrB,EAAAA,WAAiB0iB,GAKjC,GAAI8I,MAAMC,OAAOP,IACf,MAAM,IAAIzb,MAAM,8KAIMyb,EAAK,SAI7B,GAAkB,QAAlBI,EAAIC,EAAQL,UAAM,IAAAI,GAAdA,EAAgBjb,KAClB,OAAOkb,EAAQL,GAAO7a,KAEtB,MAAM,IAAIZ,MACR,uMAIJ,qCElFa,SAAShE,EAAYigB,EAAKC,GACvC,YAD6C,IAANA,IAAAA,EAAM,IACxCA,EAIDD,IAAQC,EACJ,IAGJD,EAAIvuB,WAAcwuB,EAAM,KACnBD,EAAIjuB,MAAMkuB,EAAOpuB,QAGnBmuB,EAXEA,CAYX,oECjBA,IAAI/rB,EAAyBmJ,EAAQ,MACrCtK,EAAQoB,YAAa,EACrBpB,EAAQotB,oBAAiB,EACzB,IACIA,EADSjsB,EAAuBmJ,EAAQ,OACH3I,QAAQoB,cAAc,CAC7DzD,SAAU,KACVD,UAAW,CAAC,MACZguB,QAAQ,EACRC,gBAAiB,KACjBC,6BAA6B,EAC7B1f,aAAc,IACdzB,KAAM,MAERpM,EAAQotB,eAAiBA,qCCbzB,IAAIjsB,EAAyBmJ,EAAQ,MACrCtK,EAAQoB,YAAa,EACrBpB,EAAQwtB,qBAAkB,EAC1B,IAAIC,EAAYtsB,EAAuBmJ,EAAQ,MAE3C5C,GAD+BvG,EAAuBmJ,EAAQ,OACrDnJ,EAAuBmJ,EAAQ,QACxCojB,EAAUpjB,EAAQ,MAClBqjB,EAAexsB,EAAuBmJ,EAAQ,OAC9CsjB,EAAStjB,EAAQ,MACjBujB,EAAW1sB,EAAuBmJ,EAAQ,OAC1CwjB,EAAgBxjB,EAAQ,MACxByjB,EAAkBzjB,EAAQ,MACfnJ,EAAuBmJ,EAAQ,OA4H9CtK,EAAQwtB,gBAtGc,SAAyB7f,EAAMO,GACnD,IAAI8f,EAAuBC,EACvB3nB,EAAUqH,EAAKrH,QACjBhC,EAAQqJ,EAAKrJ,MACX4pB,EAAuBhgB,EAAMigB,eAC/BA,OAA0C,IAAzBD,EAAkC,CAAC,EAAIA,EACxDE,EAAiBlgB,EAAMG,SACvBA,OAA8B,IAAnB+f,GAAmCA,EAC9CC,EAAwBngB,EAAMqf,4BAC9BA,OAAwD,IAA1Bc,GAA2CA,EACzEC,EAAUpgB,EAAMogB,QAChBC,EAAwBrgB,EAAMsgB,mBAC9BA,OAA+C,IAA1BD,EAAmC,UAAYA,EACpEE,EAAmBvgB,EAAMugB,iBACzBC,EAAgBxgB,EAAMwgB,cACxB,GAAKpqB,EAAL,CACA,IAAIuN,EAAOvN,EAAMuN,KACfkS,EAAczf,EAAMyf,YACpB7e,EAAWZ,EAAMY,SACfypB,EAAoB5K,EAAY6K,KAClCvB,EAASsB,EAAkBtB,OAC3B/tB,EAAWqvB,EAAkBrvB,SAC7BD,EAAYsvB,EAAkBtvB,UAC9BwO,EAAe8gB,EAAkB9gB,aACjCyf,EAAkBqB,EAAkBrB,gBACpClhB,EAAOuiB,EAAkBviB,KAE3B,GADiBiC,IAAagf,EACd,CACd,IAAIhhB,EAASnH,EAASmH,OAGtB,GAAsB,oBAAXlN,OAAwB,CACjC,IAAI0vB,EAAW1vB,OAAO2vB,aAAajoB,QAAQ+mB,EAAOmB,gBAAiB,EAAIpB,EAAahsB,SAAS,CAC3FtC,UAAWA,EACXe,SAAUquB,GAAoBnvB,IAMhC,GAJKD,EAAU8Z,SAAS0V,KACtBA,EAAWvvB,GAEbH,OAAO2vB,aAAa3nB,QAAQymB,EAAOmB,aAAcF,GAC7CA,IAAavB,EAAiB,CAChC,IAAI0B,EAAc3iB,GAAU,GACxB4iB,EAAuC,UAAlBP,EACrBQ,GAAS,EAAIxB,EAAQyB,YAAY,IAAMN,EAtD5B,SAA0BxnB,EAAU4nB,GACzD,IAAIG,GAAa,EAAI1B,EAAQyB,YAAY,KACrCnkB,EAAS3D,EAIb,OAHIA,EAAS1I,WAAWywB,KACtBpkB,EAAS3D,EAASxH,QAAQuvB,EAAY,MAEpCH,GAAsBjkB,EAAOpK,SAAS,KACjCoK,EAAO/L,MAAM,GAAI,GAEnB+L,CACT,CA4C8DqkB,CAAiBnqB,EAASmC,SAAU4nB,GAAsBD,EAAc9pB,EAAST,MAGvI,OADAtF,OAAOomB,WAAW2J,GACX,IACT,CACF,CACF,CACA,IAAII,GAAezd,SAAmG,QAAtDmc,EAAwBnc,EAAK2c,UAA2D,IAA1BR,OAAxE,EAAoHA,EAAsBuB,QAAU,GACtMlwB,EAAUN,OAAS,GAAKuwB,EAAYvwB,OAApCM,EAGJ,IAAImwB,EAAaF,EAAYvkB,KAAI,SAAU4S,GAEzC,OADWA,EAAMjZ,KACL+qB,EACd,IAKIC,GAAoE,QAAtDzB,EAAwBE,EAAeuB,iBAAiD,IAA1BzB,OAAmC,EAASA,EAAsBpe,aAAe,cACjK6f,EAAYF,EAAWG,MAAK,SAAUF,GACpC,OAAOA,IAAOC,CAChB,KAAMA,EACN,IAAIE,EAAaJ,EAAWlvB,QAAO,SAAUmvB,GAC3C,OAAOA,IAAOC,CAChB,IACIG,EAAYP,EAAYrkB,QAAO,SAAU0O,EAAKuE,GAChD,IAAIxZ,EAAOwZ,EAAMxZ,KACborB,EAAkC,iBAAdprB,EAAKmN,KAAoBnN,EAAKmN,KAAO/K,KAAKC,MAAMrC,EAAKmN,MAG7E,OAFMnN,EAAKpF,YAAYqa,IAAMA,EAAIjV,EAAKpF,UAAY,CAAC,GACnDqa,EAAIjV,EAAKpF,UAAUoF,EAAK+qB,IAAMC,GAAaI,EACpCnW,CACT,GAAG,CAAC,GACAiV,EAAOf,EAASlsB,QAAQouB,iBAwB5B,OAvBAnB,EAAKoB,MAAK,EAAIvC,EAAU9rB,SAAS,CAAC,EAAGwsB,EAAgB,CACnD0B,UAAWA,EACXI,IAAK3wB,EACL4wB,YAAa5C,EACboC,UAAWA,EACXE,WAAYA,EACZO,OAAO,EAAI1C,EAAU9rB,SAAS,CAAC,EAAGwsB,EAAegC,MAAO,CACtDC,aAAa,OAGbxB,EAAKtvB,WAAaA,GACpBsvB,EAAKyB,eAAe/wB,GA5GN,SAAqBsvB,EAAM7B,GAC3C,OAAO,SAAU7mB,GACf,OAAoBwB,EAAO/F,QAAQqE,cAAc8nB,EAAcwC,gBAAiB,CAC9E1B,KAAMA,GACQlnB,EAAO/F,QAAQqE,cAAc+nB,EAAgBX,eAAennB,SAAU,CACpFhG,MAAO8sB,GACN7mB,GACL,CACF,CAgHSqqB,CAAY3B,EAVL,CACZvB,OAAQA,EACR/tB,SAAUA,EACVD,UAAWA,EACXwO,aAAcA,EACdyf,gBAAiBA,EACjBC,4BAA6BA,EAC7Be,QAASA,EACTliB,KAAMA,GAEDmkB,CAA2BjqB,EArFhB,CAsFpB,mCCvIAtG,EAAQoB,YAAa,EACrBpB,EAAQ+uB,kBAAe,EAEvB/uB,EAAQ+uB,aADW,gDCJnB,MAAM,gBAACvB,GAAmBljB,EAAQ,MAClCtK,EAAQwtB,gBAAkBA,iCCC1B,MAAMgD,EAAgB,CACpB9kB,KAAM,SACN,GAAAwgB,CAAI5oB,GACFI,KAAK+sB,OAAO,MAAOntB,EACrB,EACA,IAAAotB,CAAKptB,GACHI,KAAK+sB,OAAO,OAAQntB,EACtB,EACA,KAAAsW,CAAMtW,GACJI,KAAK+sB,OAAO,QAASntB,EACvB,EACA,MAAAmtB,CAAO/kB,EAAMpI,GACP8mB,SAAWA,QAAQ1e,IAAO0e,QAAQ1e,GAAMjI,MAAM2mB,QAAS9mB,EAC7D,GAEF,MAAMqtB,EACJ,WAAA3gB,CAAY4gB,GACV,IAAIzwB,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFK,KAAKssB,KAAKY,EAAgBzwB,EAC5B,CACA,IAAA6vB,CAAKY,GACH,IAAIzwB,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFK,KAAKypB,OAAShtB,EAAQgtB,QAAU,WAChCzpB,KAAKmtB,OAASD,GAAkBJ,EAChC9sB,KAAKvD,QAAUA,EACfuD,KAAKotB,MAAQ3wB,EAAQ2wB,KACvB,CACA,GAAA5E,GACE,IAAK,IAAI9oB,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,IAAAotB,GACE,IAAK,IAAIK,EAAQ1tB,UAAUtE,OAAQuE,EAAO,IAAIC,MAAMwtB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF1tB,EAAK0tB,GAAS3tB,UAAU2tB,GAE1B,OAAOttB,KAAK6E,QAAQjF,EAAM,OAAQ,IAAI,EACxC,CACA,KAAAsW,GACE,IAAK,IAAIqX,EAAQ5tB,UAAUtE,OAAQuE,EAAO,IAAIC,MAAM0tB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF5tB,EAAK4tB,GAAS7tB,UAAU6tB,GAE1B,OAAOxtB,KAAK6E,QAAQjF,EAAM,QAAS,GACrC,CACA,SAAA6tB,GACE,IAAK,IAAIC,EAAQ/tB,UAAUtE,OAAQuE,EAAO,IAAIC,MAAM6tB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF/tB,EAAK+tB,GAAShuB,UAAUguB,GAE1B,OAAO3tB,KAAK6E,QAAQjF,EAAM,OAAQ,wBAAwB,EAC5D,CACA,OAAAiF,CAAQjF,EAAMguB,EAAKnE,EAAQoE,GACzB,OAAIA,IAAc7tB,KAAKotB,MAAc,MACd,iBAAZxtB,EAAK,KAAiBA,EAAK,GAAK,GAAG6pB,IAASzpB,KAAKypB,UAAU7pB,EAAK,MACpEI,KAAKmtB,OAAOS,GAAKhuB,GAC1B,CACA,MAAAkI,CAAOgmB,GACL,OAAO,IAAIb,EAAOjtB,KAAKmtB,OAAQ,CAE3B1D,OAAQ,GAAGzpB,KAAKypB,UAAUqE,QAEzB9tB,KAAKvD,SAEZ,CACA,KAAAsxB,CAAMtxB,GAGJ,OAFAA,EAAUA,GAAWuD,KAAKvD,SAClBgtB,OAAShtB,EAAQgtB,QAAUzpB,KAAKypB,OACjC,IAAIwD,EAAOjtB,KAAKmtB,OAAQ1wB,EACjC,EAEF,IAAIuxB,EAAa,IAAIf,EAErB,MAAMgB,EACJ,WAAA3hB,GACEtM,KAAKkuB,UAAY,CAAC,CACpB,CACA,EAAAnmB,CAAGomB,EAAQC,GAKT,OAJAD,EAAOvlB,MAAM,KAAK0I,SAAQyQ,IACxB/hB,KAAKkuB,UAAUnM,GAAS/hB,KAAKkuB,UAAUnM,IAAU,GACjD/hB,KAAKkuB,UAAUnM,GAAO7Z,KAAKkmB,EAAS,IAE/BpuB,IACT,CACA,GAAAmI,CAAI4Z,EAAOqM,GACJpuB,KAAKkuB,UAAUnM,KACfqM,EAILpuB,KAAKkuB,UAAUnM,GAAS/hB,KAAKkuB,UAAUnM,GAAOnlB,QAAOyxB,GAAKA,IAAMD,WAHvDpuB,KAAKkuB,UAAUnM,GAI1B,CACA,IAAAzZ,CAAKyZ,GACH,IAAK,IAAIriB,EAAOC,UAAUtE,OAAQuE,EAAO,IAAIC,MAAMH,EAAO,EAAIA,EAAO,EAAI,GAAII,EAAO,EAAGA,EAAOJ,EAAMI,IAClGF,EAAKE,EAAO,GAAKH,UAAUG,GAE7B,GAAIE,KAAKkuB,UAAUnM,GAAQ,CACV,GAAGzmB,OAAO0E,KAAKkuB,UAAUnM,IACjCzQ,SAAQgd,IACbA,KAAY1uB,EAAK,GAErB,CACA,GAAII,KAAKkuB,UAAU,KAAM,CACR,GAAG5yB,OAAO0E,KAAKkuB,UAAU,MACjC5c,SAAQgd,IACbA,EAASvuB,MAAMuuB,EAAU,CAACvM,KAAUniB,GAAM,GAE9C,CACF,EAGF,SAAS8Z,IACP,IAAIzD,EACAsY,EACJ,MAAM5U,EAAU,IAAIhS,SAAQ,CAACC,EAASuJ,KACpC8E,EAAMrO,EACN2mB,EAAMpd,CAAM,IAId,OAFAwI,EAAQ/R,QAAUqO,EAClB0D,EAAQxI,OAASod,EACV5U,CACT,CACA,SAAS6U,EAAW1rB,GAClB,OAAc,MAAVA,EAAuB,GACpB,GAAKA,CACd,CAMA,SAAS2rB,EAAc3rB,EAAQ4F,EAAMgmB,GACnC,SAASC,EAASlwB,GAChB,OAAOA,GAAOA,EAAI4J,QAAQ,QAAU,EAAI5J,EAAItC,QAAQ,OAAQ,KAAOsC,CACrE,CACA,SAASmwB,IACP,OAAQ9rB,GAA4B,iBAAXA,CAC3B,CACA,MAAM0M,EAAwB,iBAAT9G,EAAoB,GAAGpN,OAAOoN,GAAQA,EAAKE,MAAM,KACtE,KAAO4G,EAAMnU,OAAS,GAAG,CACvB,GAAIuzB,IAAwB,MAAO,CAAC,EACpC,MAAMnwB,EAAMkwB,EAASnf,EAAMqf,UACtB/rB,EAAOrE,IAAQiwB,IAAO5rB,EAAOrE,GAAO,IAAIiwB,GAE3C5rB,EADE1G,OAAOsC,UAAUC,eAAeC,KAAKkE,EAAQrE,GACtCqE,EAAOrE,GAEP,CAAC,CAEd,CACA,OAAImwB,IAA+B,CAAC,EAC7B,CACL7wB,IAAK+E,EACLgsB,EAAGH,EAASnf,EAAMqf,SAEtB,CACA,SAASE,EAAQjsB,EAAQ4F,EAAMsmB,GAC7B,MAAM,IACJjxB,EAAG,EACH+wB,GACEL,EAAc3rB,EAAQ4F,EAAMtM,QAChC2B,EAAI+wB,GAAKE,CACX,CAUA,SAASC,EAAQnsB,EAAQ4F,GACvB,MAAM,IACJ3K,EAAG,EACH+wB,GACEL,EAAc3rB,EAAQ4F,GAC1B,GAAK3K,EACL,OAAOA,EAAI+wB,EACb,CAQA,SAASI,EAAW/zB,EAAQg0B,EAAQC,GAClC,IAAK,MAAMC,KAAQF,EACJ,cAATE,GAAiC,gBAATA,IACtBA,KAAQl0B,EACkB,iBAAjBA,EAAOk0B,IAAsBl0B,EAAOk0B,aAAiBC,QAAkC,iBAAjBH,EAAOE,IAAsBF,EAAOE,aAAiBC,OAChIF,IAAWj0B,EAAOk0B,GAAQF,EAAOE,IAErCH,EAAW/zB,EAAOk0B,GAAOF,EAAOE,GAAOD,GAGzCj0B,EAAOk0B,GAAQF,EAAOE,IAI5B,OAAOl0B,CACT,CACA,SAASo0B,EAAY/F,GACnB,OAAOA,EAAIrtB,QAAQ,sCAAuC,OAC5D,CACA,IAAIqzB,EAAa,CACf,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,QACL,IAAK,UAEP,SAASC,EAAOthB,GACd,MAAoB,iBAATA,EACFA,EAAKhS,QAAQ,cAAcqW,GAAKgd,EAAWhd,KAE7CrE,CACT,CACA,MAAMuhB,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,KAgBnC,SAASC,EAAS5xB,EAAK2K,GACrB,IAAIknB,EAAejwB,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,IACvF,IAAK5B,EAAK,OACV,GAAIA,EAAI2K,GAAO,OAAO3K,EAAI2K,GAC1B,MAAMmnB,EAAQnnB,EAAKE,MAAMgnB,GACzB,IAAIvrB,EAAUtG,EACd,IAAK,IAAIwmB,EAAI,EAAGA,EAAIsL,EAAMx0B,SAAUkpB,EAAG,CACrC,IAAKlgB,EAAS,OACd,GAAiC,iBAAtBA,EAAQwrB,EAAMtL,KAAoBA,EAAI,EAAIsL,EAAMx0B,OACzD,OAEF,QAA0B2G,IAAtBqC,EAAQwrB,EAAMtL,IAAmB,CACnC,IAAIuL,EAAI,EACJ5V,EAAI2V,EAAMt0B,MAAMgpB,EAAGA,EAAIuL,GAAGvgB,KAAKqgB,GAC/BG,EAAM1rB,EAAQ6V,GAClB,UAAelY,IAAR+tB,GAAqBF,EAAMx0B,OAASkpB,EAAIuL,GAC7CA,IACA5V,EAAI2V,EAAMt0B,MAAMgpB,EAAGA,EAAIuL,GAAGvgB,KAAKqgB,GAC/BG,EAAM1rB,EAAQ6V,GAEhB,QAAYlY,IAAR+tB,EAAmB,OACvB,GAAY,OAARA,EAAc,OAAO,KACzB,GAAIrnB,EAAKxL,SAASgd,GAAI,CACpB,GAAmB,iBAAR6V,EAAkB,OAAOA,EACpC,GAAI7V,GAAuB,iBAAX6V,EAAI7V,GAAiB,OAAO6V,EAAI7V,EAClD,CACA,MAAM8V,EAAaH,EAAMt0B,MAAMgpB,EAAIuL,GAAGvgB,KAAKqgB,GAC3C,OAAII,EAAmBL,EAASI,EAAKC,EAAYJ,QACjD,CACF,CACAvrB,EAAUA,EAAQwrB,EAAMtL,GAC1B,CACA,OAAOlgB,CACT,CACA,SAAS4rB,EAAeh0B,GACtB,OAAIA,GAAQA,EAAKoM,QAAQ,KAAO,EAAUpM,EAAKE,QAAQ,IAAK,KACrDF,CACT,CAEA,MAAMi0B,UAAsBjC,EAC1B,WAAA3hB,CAAY6B,GACV,IAAI1R,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAChFosB,GAAI,CAAC,eACLC,UAAW,eAEbmE,QACAnwB,KAAKmO,KAAOA,GAAQ,CAAC,EACrBnO,KAAKvD,QAAUA,OACmBuF,IAA9BhC,KAAKvD,QAAQmzB,eACf5vB,KAAKvD,QAAQmzB,aAAe,UAEW5tB,IAArChC,KAAKvD,QAAQ2zB,sBACfpwB,KAAKvD,QAAQ2zB,qBAAsB,EAEvC,CACA,aAAAC,CAActE,GACR/rB,KAAKvD,QAAQsvB,GAAG1jB,QAAQ0jB,GAAM,GAChC/rB,KAAKvD,QAAQsvB,GAAG7jB,KAAK6jB,EAEzB,CACA,gBAAAuE,CAAiBvE,GACf,MAAMhS,EAAQ/Z,KAAKvD,QAAQsvB,GAAG1jB,QAAQ0jB,GAClChS,GAAS,GACX/Z,KAAKvD,QAAQsvB,GAAG3jB,OAAO2R,EAAO,EAElC,CACA,WAAAwW,CAAYhE,EAAKR,EAAIttB,GACnB,IAAIhC,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAMiwB,OAAwC5tB,IAAzBvF,EAAQmzB,aAA6BnzB,EAAQmzB,aAAe5vB,KAAKvD,QAAQmzB,aACxFQ,OAAsDpuB,IAAhCvF,EAAQ2zB,oBAAoC3zB,EAAQ2zB,oBAAsBpwB,KAAKvD,QAAQ2zB,oBACnH,IAAI1nB,EAAO,CAAC6jB,EAAKR,GACbttB,GAAsB,iBAARA,IAAkBiK,EAAOA,EAAKpN,OAAOmD,IACnDA,GAAsB,iBAARA,IAAkBiK,EAAOA,EAAKpN,OAAOs0B,EAAenxB,EAAImK,MAAMgnB,GAAgBnxB,IAC5F8tB,EAAIlkB,QAAQ,MAAQ,IACtBK,EAAO6jB,EAAI3jB,MAAM,MAEnB,MAAMtB,EAAS2nB,EAAQjvB,KAAKmO,KAAMzF,GAClC,OAAIpB,IAAW8oB,GAAsC,iBAAR3xB,EAAyB6I,EAC/DqoB,EAAS3vB,KAAKmO,MAAQnO,KAAKmO,KAAKoe,IAAQvsB,KAAKmO,KAAKoe,GAAKR,GAAKttB,EAAKmxB,EAC1E,CACA,WAAAY,CAAYjE,EAAKR,EAAIttB,EAAKlC,GACxB,IAAIE,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAChF8wB,QAAQ,GAEV,MAAMb,OAAwC5tB,IAAzBvF,EAAQmzB,aAA6BnzB,EAAQmzB,aAAe5vB,KAAKvD,QAAQmzB,aAC9F,IAAIlnB,EAAO,CAAC6jB,EAAKR,GACbttB,IAAKiK,EAAOA,EAAKpN,OAAOs0B,EAAenxB,EAAImK,MAAMgnB,GAAgBnxB,IACjE8tB,EAAIlkB,QAAQ,MAAQ,IACtBK,EAAO6jB,EAAI3jB,MAAM,KACjBrM,EAAQwvB,EACRA,EAAKrjB,EAAK,IAEZ1I,KAAKqwB,cAActE,GACnBgD,EAAQ/uB,KAAKmO,KAAMzF,EAAMnM,GACpBE,EAAQg0B,QAAQzwB,KAAKsI,KAAK,QAASikB,EAAKR,EAAIttB,EAAKlC,EACxD,CACA,YAAAm0B,CAAanE,EAAKR,EAAII,GACpB,IAAI1vB,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAChF8wB,QAAQ,GAEV,IAAK,MAAMzZ,KAAKmV,EACc,iBAAjBA,EAAUnV,IAAqE,mBAAlD5a,OAAOsC,UAAUyN,SAASpM,MAAMosB,EAAUnV,KAA0BhX,KAAKwwB,YAAYjE,EAAKR,EAAI/U,EAAGmV,EAAUnV,GAAI,CACrJyZ,QAAQ,IAGPh0B,EAAQg0B,QAAQzwB,KAAKsI,KAAK,QAASikB,EAAKR,EAAII,EACnD,CACA,iBAAAwE,CAAkBpE,EAAKR,EAAII,EAAWyE,EAAMxB,GAC1C,IAAI3yB,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAChF8wB,QAAQ,GAEN/nB,EAAO,CAAC6jB,EAAKR,GACbQ,EAAIlkB,QAAQ,MAAQ,IACtBK,EAAO6jB,EAAI3jB,MAAM,KACjBgoB,EAAOzE,EACPA,EAAYJ,EACZA,EAAKrjB,EAAK,IAEZ1I,KAAKqwB,cAActE,GACnB,IAAI8E,EAAO5B,EAAQjvB,KAAKmO,KAAMzF,IAAS,CAAC,EACpCkoB,EACF1B,EAAW2B,EAAM1E,EAAWiD,GAE5ByB,EAAO,IACFA,KACA1E,GAGP4C,EAAQ/uB,KAAKmO,KAAMzF,EAAMmoB,GACpBp0B,EAAQg0B,QAAQzwB,KAAKsI,KAAK,QAASikB,EAAKR,EAAII,EACnD,CACA,oBAAA2E,CAAqBvE,EAAKR,GACpB/rB,KAAK+wB,kBAAkBxE,EAAKR,WACvB/rB,KAAKmO,KAAKoe,GAAKR,GAExB/rB,KAAKswB,iBAAiBvE,GACtB/rB,KAAKsI,KAAK,UAAWikB,EAAKR,EAC5B,CACA,iBAAAgF,CAAkBxE,EAAKR,GACrB,YAAqC/pB,IAA9BhC,KAAKuwB,YAAYhE,EAAKR,EAC/B,CACA,iBAAAiF,CAAkBzE,EAAKR,GAErB,OADKA,IAAIA,EAAK/rB,KAAKvD,QAAQuvB,WACW,OAAlChsB,KAAKvD,QAAQw0B,iBAAkC,IAE9CjxB,KAAKuwB,YAAYhE,EAAKR,IAEpB/rB,KAAKuwB,YAAYhE,EAAKR,EAC/B,CACA,iBAAAmF,CAAkB3E,GAChB,OAAOvsB,KAAKmO,KAAKoe,EACnB,CACA,2BAAA4E,CAA4B5E,GAC1B,MAAMpe,EAAOnO,KAAKkxB,kBAAkB3E,GAEpC,SADUpe,GAAQ/R,OAAOqR,KAAKU,IAAS,IAC5B8d,MAAKmF,GAAKjjB,EAAKijB,IAAMh1B,OAAOqR,KAAKU,EAAKijB,IAAI/1B,OAAS,GAChE,CACA,MAAAg2B,GACE,OAAOrxB,KAAKmO,IACd,EAGF,IAAImjB,EAAgB,CAClBC,WAAY,CAAC,EACb,gBAAAC,CAAiB9qB,GACf1G,KAAKuxB,WAAW7qB,EAAOsI,MAAQtI,CACjC,EACA,MAAA+qB,CAAOF,EAAYh1B,EAAOkC,EAAKhC,EAASi1B,GAItC,OAHAH,EAAWjgB,SAAQqgB,IACb3xB,KAAKuxB,WAAWI,KAAYp1B,EAAQyD,KAAKuxB,WAAWI,GAAWC,QAAQr1B,EAAOkC,EAAKhC,EAASi1B,GAAW,IAEtGn1B,CACT,GAGF,MAAMs1B,EAAmB,CAAC,EAC1B,MAAMC,UAAmB7D,EACvB,WAAA3hB,CAAYylB,GACV,IAAIt1B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EA/RvF,IAAiB6S,EAAGwf,EAgShB7B,QAhSa3d,EAiSyGuf,EAjStGC,EAiSgHhyB,KAA3H,CAAC,gBAAiB,gBAAiB,iBAAkB,eAAgB,mBAAoB,aAAc,SAhS5GsR,SAAQ0F,IACJxE,EAAEwE,KAAIgb,EAAEhb,GAAKxE,EAAEwE,GAAE,IAgSrBhX,KAAKvD,QAAUA,OACmBuF,IAA9BhC,KAAKvD,QAAQmzB,eACf5vB,KAAKvD,QAAQmzB,aAAe,KAE9B5vB,KAAKmtB,OAASa,EAAWlmB,OAAO,aAClC,CACA,cAAA6kB,CAAeJ,GACTA,IAAKvsB,KAAKpE,SAAW2wB,EAC3B,CACA,MAAA0F,CAAOxzB,GACL,IAAIhC,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAChFuyB,cAAe,CAAC,GAElB,GAAIzzB,QACF,OAAO,EAET,MAAM0zB,EAAWnyB,KAAK4H,QAAQnJ,EAAKhC,GACnC,OAAO01B,QAA6BnwB,IAAjBmwB,EAASlc,GAC9B,CACA,cAAAmc,CAAe3zB,EAAKhC,GAClB,IAAI41B,OAAsCrwB,IAAxBvF,EAAQ41B,YAA4B51B,EAAQ41B,YAAcryB,KAAKvD,QAAQ41B,iBACrErwB,IAAhBqwB,IAA2BA,EAAc,KAC7C,MAAMzC,OAAwC5tB,IAAzBvF,EAAQmzB,aAA6BnzB,EAAQmzB,aAAe5vB,KAAKvD,QAAQmzB,aAC9F,IAAI9D,EAAarvB,EAAQsvB,IAAM/rB,KAAKvD,QAAQuvB,WAAa,GACzD,MAAMsG,EAAuBD,GAAe5zB,EAAI4J,QAAQgqB,IAAgB,EAClEE,IAAwBvyB,KAAKvD,QAAQ+1B,yBAA4B/1B,EAAQmzB,cAAiB5vB,KAAKvD,QAAQg2B,wBAA2Bh2B,EAAQ41B,aA7NpJ,SAA6B5zB,EAAK4zB,EAAazC,GAC7CyC,EAAcA,GAAe,GAC7BzC,EAAeA,GAAgB,GAC/B,MAAM8C,EAAgBhD,EAAM9yB,QAAO+1B,GAAKN,EAAYhqB,QAAQsqB,GAAK,GAAK/C,EAAavnB,QAAQsqB,GAAK,IAChG,GAA6B,IAAzBD,EAAcr3B,OAAc,OAAO,EACvC,MAAMu3B,EAAI,IAAIC,OAAO,IAAIH,EAAcrrB,KAAIsrB,GAAW,MAANA,EAAY,MAAQA,IAAGpjB,KAAK,SAC5E,IAAIujB,GAAWF,EAAErZ,KAAK9a,GACtB,IAAKq0B,EAAS,CACZ,MAAMC,EAAKt0B,EAAI4J,QAAQunB,GACnBmD,EAAK,IAAMH,EAAErZ,KAAK9a,EAAI0C,UAAU,EAAG4xB,MACrCD,GAAU,EAEd,CACA,OAAOA,CACT,CA+MoKE,CAAoBv0B,EAAK4zB,EAAazC,IACtM,GAAI0C,IAAyBC,EAAsB,CACjD,MAAMvb,EAAIvY,EAAI9B,MAAMqD,KAAKizB,aAAaC,eACtC,GAAIlc,GAAKA,EAAE3b,OAAS,EAClB,MAAO,CACLoD,MACAqtB,cAGJ,MAAMqH,EAAQ10B,EAAImK,MAAMypB,IACpBA,IAAgBzC,GAAgByC,IAAgBzC,GAAgB5vB,KAAKvD,QAAQsvB,GAAG1jB,QAAQ8qB,EAAM,KAAO,KAAGrH,EAAaqH,EAAMtE,SAC/HpwB,EAAM00B,EAAM5jB,KAAKqgB,EACnB,CAEA,MAD0B,iBAAf9D,IAAyBA,EAAa,CAACA,IAC3C,CACLrtB,MACAqtB,aAEJ,CACA,SAAAsH,CAAU3lB,EAAMhR,EAAS42B,GAQvB,GAPuB,iBAAZ52B,GAAwBuD,KAAKvD,QAAQ62B,mCAC9C72B,EAAUuD,KAAKvD,QAAQ62B,iCAAiC3zB,YAEnC,iBAAZlD,IAAsBA,EAAU,IACtCA,IAEAA,IAASA,EAAU,CAAC,GACrBgR,QAAqC,MAAO,GAC3C5N,MAAM0zB,QAAQ9lB,KAAOA,EAAO,CAAC6hB,OAAO7hB,KACzC,MAAM+lB,OAA0CxxB,IAA1BvF,EAAQ+2B,cAA8B/2B,EAAQ+2B,cAAgBxzB,KAAKvD,QAAQ+2B,cAC3F5D,OAAwC5tB,IAAzBvF,EAAQmzB,aAA6BnzB,EAAQmzB,aAAe5vB,KAAKvD,QAAQmzB,cACxF,IACJnxB,EAAG,WACHqtB,GACE9rB,KAAKoyB,eAAe3kB,EAAKA,EAAKpS,OAAS,GAAIoB,GACzCg3B,EAAY3H,EAAWA,EAAWzwB,OAAS,GAC3CkxB,EAAM9vB,EAAQ8vB,KAAOvsB,KAAKpE,SAC1B83B,EAA0Bj3B,EAAQi3B,yBAA2B1zB,KAAKvD,QAAQi3B,wBAChF,GAAInH,GAA6B,WAAtBA,EAAIrwB,cAA4B,CACzC,GAAIw3B,EAAyB,CAC3B,MAAMrB,EAAc51B,EAAQ41B,aAAeryB,KAAKvD,QAAQ41B,YACxD,OAAImB,EACK,CACLvd,IAAK,GAAGwd,IAAYpB,IAAc5zB,IAClCk1B,QAASl1B,EACTm1B,aAAcn1B,EACdo1B,QAAStH,EACTuH,OAAQL,GAGL,GAAGA,IAAYpB,IAAc5zB,GACtC,CACA,OAAI+0B,EACK,CACLvd,IAAKxX,EACLk1B,QAASl1B,EACTm1B,aAAcn1B,EACdo1B,QAAStH,EACTuH,OAAQL,GAGLh1B,CACT,CACA,MAAM0zB,EAAWnyB,KAAK4H,QAAQ6F,EAAMhR,GACpC,IAAIwZ,EAAMkc,GAAYA,EAASlc,IAC/B,MAAM8d,EAAa5B,GAAYA,EAASwB,SAAWl1B,EAC7Cu1B,EAAkB7B,GAAYA,EAASyB,cAAgBn1B,EACvDw1B,EAAU73B,OAAOsC,UAAUyN,SAASpM,MAAMkW,GAE1Cie,OAAoClyB,IAAvBvF,EAAQy3B,WAA2Bz3B,EAAQy3B,WAAal0B,KAAKvD,QAAQy3B,WAClFC,GAA8Bn0B,KAAKo0B,YAAcp0B,KAAKo0B,WAAWC,eAEvE,GAAIF,GAA8Ble,IADI,iBAARA,GAAmC,kBAARA,GAAoC,iBAARA,IAHpE,CAAC,kBAAmB,oBAAqB,mBAIU5N,QAAQ4rB,GAAW,IAA6B,iBAAfC,GAAuC,mBAAZD,GAA+B,CAC7J,IAAKx3B,EAAQ63B,gBAAkBt0B,KAAKvD,QAAQ63B,cAAe,CACpDt0B,KAAKvD,QAAQ83B,uBAChBv0B,KAAKmtB,OAAOH,KAAK,mEAEnB,MAAM4F,EAAI5yB,KAAKvD,QAAQ83B,sBAAwBv0B,KAAKvD,QAAQ83B,sBAAsBR,EAAY9d,EAAK,IAC9FxZ,EACHsvB,GAAID,IACD,QAAQrtB,MAAQuB,KAAKpE,mDAC1B,OAAI43B,GACFrB,EAASlc,IAAM2c,EACRT,GAEFS,CACT,CACA,GAAIhD,EAAc,CAChB,MAAM4E,EAA6B,mBAAZP,EACjBQ,EAAOD,EAAiB,GAAK,CAAC,EAC9BE,EAAcF,EAAiBR,EAAkBD,EACvD,IAAK,MAAM/c,KAAKf,EACd,GAAI7Z,OAAOsC,UAAUC,eAAeC,KAAKqX,EAAKe,GAAI,CAChD,MAAM2d,EAAU,GAAGD,IAAc9E,IAAe5Y,IAChDyd,EAAKzd,GAAKhX,KAAKozB,UAAUuB,EAAS,IAC7Bl4B,EAEDy3B,YAAY,EACZnI,GAAID,IAGJ2I,EAAKzd,KAAO2d,IAASF,EAAKzd,GAAKf,EAAIe,GACzC,CAEFf,EAAMwe,CACR,CACF,MAAO,GAAIN,GAAoD,iBAAfD,GAAuC,mBAAZD,EACzEhe,EAAMA,EAAI1G,KAAK2kB,GACXje,IAAKA,EAAMjW,KAAK40B,kBAAkB3e,EAAKxI,EAAMhR,EAAS42B,QACrD,CACL,IAAIwB,GAAc,EACdlB,GAAU,EACd,MAAMmB,OAAwC9yB,IAAlBvF,EAAQs4B,OAAgD,iBAAlBt4B,EAAQs4B,MACpEC,EAAkBlD,EAAWkD,gBAAgBv4B,GAC7Cw4B,EAAqBH,EAAsB90B,KAAKk1B,eAAeC,UAAU5I,EAAK9vB,EAAQs4B,MAAOt4B,GAAW,GACxG24B,EAAoC34B,EAAQ44B,SAAWP,EAAsB90B,KAAKk1B,eAAeC,UAAU5I,EAAK9vB,EAAQs4B,MAAO,CACnIM,SAAS,IACN,GACC3M,EAAejsB,EAAQ,eAAew4B,MAAyBx4B,EAAQ,eAAe24B,MAAwC34B,EAAQisB,cACvI1oB,KAAKs1B,cAAcrf,IAAQ+e,IAC9BH,GAAc,EACd5e,EAAMyS,GAEH1oB,KAAKs1B,cAAcrf,KACtB0d,GAAU,EACV1d,EAAMxX,GAER,MACM82B,GADiC94B,EAAQ+4B,gCAAkCx1B,KAAKvD,QAAQ+4B,iCACtC7B,OAAU3xB,EAAYiU,EACxEwf,EAAgBT,GAAmBtM,IAAiBzS,GAAOjW,KAAKvD,QAAQg5B,cAC9E,GAAI9B,GAAWkB,GAAeY,EAAe,CAE3C,GADAz1B,KAAKmtB,OAAO3E,IAAIiN,EAAgB,YAAc,aAAclJ,EAAKkH,EAAWh1B,EAAKg3B,EAAgB/M,EAAezS,GAC5G2Z,EAAc,CAChB,MAAM8F,EAAK11B,KAAK4H,QAAQnJ,EAAK,IACxBhC,EACHmzB,cAAc,IAEZ8F,GAAMA,EAAGzf,KAAKjW,KAAKmtB,OAAOH,KAAK,kLACrC,CACA,IAAI2I,EAAO,GACX,MAAMC,EAAe51B,KAAK61B,cAAcC,iBAAiB91B,KAAKvD,QAAQ+vB,YAAa/vB,EAAQ8vB,KAAOvsB,KAAKpE,UACvG,GAAmC,aAA/BoE,KAAKvD,QAAQs5B,eAAgCH,GAAgBA,EAAa,GAC5E,IAAK,IAAIrR,EAAI,EAAGA,EAAIqR,EAAav6B,OAAQkpB,IACvCoR,EAAKztB,KAAK0tB,EAAarR,QAEe,QAA/BvkB,KAAKvD,QAAQs5B,cACtBJ,EAAO31B,KAAK61B,cAAcG,mBAAmBv5B,EAAQ8vB,KAAOvsB,KAAKpE,UAEjE+5B,EAAKztB,KAAKzL,EAAQ8vB,KAAOvsB,KAAKpE,UAEhC,MAAMoW,EAAO,CAACqc,EAAGS,EAAGmH,KAClB,MAAMC,EAAoBlB,GAAmBiB,IAAyBhgB,EAAMggB,EAAuBV,EAC/Fv1B,KAAKvD,QAAQ05B,kBACfn2B,KAAKvD,QAAQ05B,kBAAkB9H,EAAGoF,EAAW3E,EAAGoH,EAAmBT,EAAeh5B,GACzEuD,KAAKo2B,kBAAoBp2B,KAAKo2B,iBAAiBC,aACxDr2B,KAAKo2B,iBAAiBC,YAAYhI,EAAGoF,EAAW3E,EAAGoH,EAAmBT,EAAeh5B,GAEvFuD,KAAKsI,KAAK,aAAc+lB,EAAGoF,EAAW3E,EAAG7Y,EAAI,EAE3CjW,KAAKvD,QAAQ45B,cACXr2B,KAAKvD,QAAQ65B,oBAAsBxB,EACrCa,EAAKrkB,SAAQ1V,IACXoE,KAAKk1B,eAAeqB,YAAY36B,EAAUa,GAAS6U,SAAQnU,IACzD6U,EAAK,CAACpW,GAAW6C,EAAMtB,EAAQV,EAAQ,eAAeU,MAAaurB,EAAa,GAChF,IAGJ1W,EAAK2jB,EAAMl3B,EAAKiqB,GAGtB,CACAzS,EAAMjW,KAAK40B,kBAAkB3e,EAAKxI,EAAMhR,EAAS01B,EAAUkB,GACvDM,GAAW1d,IAAQxX,GAAOuB,KAAKvD,QAAQ+5B,8BAA6BvgB,EAAM,GAAGwd,KAAah1B,MACzFk1B,GAAWkB,IAAgB70B,KAAKvD,QAAQg6B,yBAEzCxgB,EADoC,OAAlCjW,KAAKvD,QAAQw0B,iBACTjxB,KAAKvD,QAAQg6B,uBAAuBz2B,KAAKvD,QAAQ+5B,4BAA8B,GAAG/C,KAAah1B,IAAQA,EAAKo2B,EAAc5e,OAAMjU,GAEhIhC,KAAKvD,QAAQg6B,uBAAuBxgB,GAGhD,CACA,OAAIud,GACFrB,EAASlc,IAAMA,EACRkc,GAEFlc,CACT,CACA,iBAAA2e,CAAkB3e,EAAKxX,EAAKhC,EAAS01B,EAAUkB,GAC7C,IAAI5zB,EAAQO,KACZ,GAAIA,KAAKo0B,YAAcp0B,KAAKo0B,WAAW/wB,MACrC4S,EAAMjW,KAAKo0B,WAAW/wB,MAAM4S,EAAK,IAC5BjW,KAAKvD,QAAQy1B,cAAcwE,oBAC3Bj6B,GACFA,EAAQ8vB,KAAOvsB,KAAKpE,UAAYu2B,EAAS0B,QAAS1B,EAAS2B,OAAQ3B,EAASwB,QAAS,CACtFxB,kBAEG,IAAK11B,EAAQk6B,kBAAmB,CACjCl6B,EAAQy1B,eAAelyB,KAAKizB,aAAa3G,KAAK,IAC7C7vB,EAEDy1B,cAAe,IACVlyB,KAAKvD,QAAQy1B,iBACbz1B,EAAQy1B,iBAIjB,MAAM0E,EAAiC,iBAAR3gB,IAAqBxZ,GAAWA,EAAQy1B,oBAA2DlwB,IAA1CvF,EAAQy1B,cAAc0E,gBAAgCn6B,EAAQy1B,cAAc0E,gBAAkB52B,KAAKvD,QAAQy1B,cAAc0E,iBACjN,IAAIC,EACJ,GAAID,EAAiB,CACnB,MAAME,EAAK7gB,EAAItZ,MAAMqD,KAAKizB,aAAaC,eACvC2D,EAAUC,GAAMA,EAAGz7B,MACrB,CACA,IAAI8S,EAAO1R,EAAQN,SAAsC,iBAApBM,EAAQN,QAAuBM,EAAQN,QAAUM,EAMtF,GALIuD,KAAKvD,QAAQy1B,cAAcwE,mBAAkBvoB,EAAO,IACnDnO,KAAKvD,QAAQy1B,cAAcwE,oBAC3BvoB,IAEL8H,EAAMjW,KAAKizB,aAAa8D,YAAY9gB,EAAK9H,EAAM1R,EAAQ8vB,KAAOvsB,KAAKpE,SAAUa,GACzEm6B,EAAiB,CACnB,MAAMI,EAAK/gB,EAAItZ,MAAMqD,KAAKizB,aAAaC,eAEnC2D,GADYG,GAAMA,EAAG37B,UACFoB,EAAQw6B,MAAO,EACxC,EACKx6B,EAAQ8vB,KAAyC,OAAlCvsB,KAAKvD,QAAQw0B,kBAA6BkB,GAAYA,EAASlc,MAAKxZ,EAAQ8vB,IAAM4F,EAAS0B,UAC1F,IAAjBp3B,EAAQw6B,OAAgBhhB,EAAMjW,KAAKizB,aAAagE,KAAKhhB,GAAK,WAC5D,IAAK,IAAIvW,EAAOC,UAAUtE,OAAQuE,EAAO,IAAIC,MAAMH,GAAOI,EAAO,EAAGA,EAAOJ,EAAMI,IAC/EF,EAAKE,GAAQH,UAAUG,GAEzB,OAAIuzB,GAAWA,EAAQ,KAAOzzB,EAAK,KAAOnD,EAAQ4sB,SAChD5pB,EAAM0tB,OAAOH,KAAK,6CAA6CptB,EAAK,cAAcnB,EAAI,MAC/E,MAEFgB,EAAM2zB,aAAaxzB,EAAMnB,EAClC,GAAGhC,IACCA,EAAQy1B,eAAelyB,KAAKizB,aAAaiE,OAC/C,CACA,MAAMC,EAAc16B,EAAQ06B,aAAen3B,KAAKvD,QAAQ06B,YAClDC,EAA4C,iBAAhBD,EAA2B,CAACA,GAAeA,EAO7E,OANIlhB,SAAqCmhB,GAAsBA,EAAmB/7B,SAAyC,IAA/BoB,EAAQ46B,qBAClGphB,EAAMqb,EAAcG,OAAO2F,EAAoBnhB,EAAKxX,EAAKuB,KAAKvD,SAAWuD,KAAKvD,QAAQ66B,wBAA0B,CAC9GC,aAAcpF,KACX11B,GACDA,EAASuD,OAERiW,CACT,CACA,OAAArO,CAAQ6F,GACN,IACI+pB,EACA7D,EACAC,EACAC,EACAC,EALAr3B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAqEnF,MA/DoB,iBAAT8N,IAAmBA,EAAO,CAACA,IACtCA,EAAK6D,SAAQwd,IACX,GAAI9uB,KAAKs1B,cAAckC,GAAQ,OAC/B,MAAMC,EAAYz3B,KAAKoyB,eAAetD,EAAGryB,GACnCgC,EAAMg5B,EAAUh5B,IACtBk1B,EAAUl1B,EACV,IAAIqtB,EAAa2L,EAAU3L,WACvB9rB,KAAKvD,QAAQyvB,aAAYJ,EAAaA,EAAWxwB,OAAO0E,KAAKvD,QAAQyvB,aACzE,MAAM4I,OAAwC9yB,IAAlBvF,EAAQs4B,OAAgD,iBAAlBt4B,EAAQs4B,MACpE2C,EAAwB5C,IAAwBr4B,EAAQ44B,SAA6B,IAAlB54B,EAAQs4B,OAAe/0B,KAAKk1B,eAAeyC,mBAC9GC,OAA2C51B,IAApBvF,EAAQ4sB,UAAqD,iBAApB5sB,EAAQ4sB,SAAmD,iBAApB5sB,EAAQ4sB,UAA6C,KAApB5sB,EAAQ4sB,QAChJwO,EAAQp7B,EAAQk5B,KAAOl5B,EAAQk5B,KAAO31B,KAAK61B,cAAcG,mBAAmBv5B,EAAQ8vB,KAAOvsB,KAAKpE,SAAUa,EAAQ+vB,aACxHV,EAAWxa,SAAQya,IACb/rB,KAAKs1B,cAAckC,KACvB1D,EAAS/H,GACJ8F,EAAiB,GAAGgG,EAAM,MAAM9L,MAAS/rB,KAAK83B,OAAS93B,KAAK83B,MAAMC,qBAAuB/3B,KAAK83B,MAAMC,mBAAmBjE,KAC1HjC,EAAiB,GAAGgG,EAAM,MAAM9L,MAAQ,EACxC/rB,KAAKmtB,OAAOH,KAAK,QAAQ2G,qBAA2BkE,EAAMtoB,KAAK,2CAA2CukB,wBAA8B,6NAE1I+D,EAAMvmB,SAAQrV,IACZ,GAAI+D,KAAKs1B,cAAckC,GAAQ,OAC/B3D,EAAU53B,EACV,MAAM+7B,EAAY,CAACv5B,GACnB,GAAIuB,KAAKo0B,YAAcp0B,KAAKo0B,WAAW6D,cACrCj4B,KAAKo0B,WAAW6D,cAAcD,EAAWv5B,EAAKxC,EAAM8vB,EAAItvB,OACnD,CACL,IAAIy7B,EACApD,IAAqBoD,EAAel4B,KAAKk1B,eAAeC,UAAUl5B,EAAMQ,EAAQs4B,MAAOt4B,IAC3F,MAAM07B,EAAa,GAAGn4B,KAAKvD,QAAQ27B,sBAC7BC,EAAgB,GAAGr4B,KAAKvD,QAAQ27B,yBAAyBp4B,KAAKvD,QAAQ27B,kBAU5E,GATItD,IACFkD,EAAU9vB,KAAKzJ,EAAMy5B,GACjBz7B,EAAQ44B,SAAmD,IAAxC6C,EAAa7vB,QAAQgwB,IAC1CL,EAAU9vB,KAAKzJ,EAAMy5B,EAAa/7B,QAAQk8B,EAAer4B,KAAKvD,QAAQ27B,kBAEpEV,GACFM,EAAU9vB,KAAKzJ,EAAM05B,IAGrBP,EAAsB,CACxB,MAAMU,EAAa,GAAG75B,IAAMuB,KAAKvD,QAAQ87B,mBAAmB97B,EAAQ4sB,UACpE2O,EAAU9vB,KAAKowB,GACXxD,IACFkD,EAAU9vB,KAAKowB,EAAaJ,GACxBz7B,EAAQ44B,SAAmD,IAAxC6C,EAAa7vB,QAAQgwB,IAC1CL,EAAU9vB,KAAKowB,EAAaJ,EAAa/7B,QAAQk8B,EAAer4B,KAAKvD,QAAQ27B,kBAE3EV,GACFM,EAAU9vB,KAAKowB,EAAaH,GAGlC,CACF,CACA,IAAIK,EACJ,KAAOA,EAAcR,EAAUzX,OACxBvgB,KAAKs1B,cAAckC,KACtB5D,EAAe4E,EACfhB,EAAQx3B,KAAKuwB,YAAYt0B,EAAM8vB,EAAIyM,EAAa/7B,GAEpD,IACA,GACF,IAEG,CACLwZ,IAAKuhB,EACL7D,UACAC,eACAC,UACAC,SAEJ,CACA,aAAAwB,CAAcrf,GACZ,aAAejU,IAARiU,IAAwBjW,KAAKvD,QAAQg8B,YAAsB,OAARxiB,IAAoBjW,KAAKvD,QAAQi8B,mBAA6B,KAARziB,EAClH,CACA,WAAAsa,CAAYt0B,EAAM8vB,EAAIttB,GACpB,IAAIhC,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAIK,KAAKo0B,YAAcp0B,KAAKo0B,WAAW7D,YAAoBvwB,KAAKo0B,WAAW7D,YAAYt0B,EAAM8vB,EAAIttB,EAAKhC,GAC/FuD,KAAK24B,cAAcpI,YAAYt0B,EAAM8vB,EAAIttB,EAAKhC,EACvD,CACA,sBAAOu4B,CAAgBv4B,GACrB,MAAMgtB,EAAS,eACf,IAAK,MAAMzsB,KAAUP,EACnB,GAAIL,OAAOsC,UAAUC,eAAeC,KAAKnC,EAASO,IAAWysB,IAAWzsB,EAAOmE,UAAU,EAAGsoB,UAAkBznB,IAAcvF,EAAQO,GAClI,OAAO,EAGX,OAAO,CACT,EAGF,SAAS47B,EAAW19B,GAClB,OAAOA,EAAO2N,OAAO,GAAGgwB,cAAgB39B,EAAOK,MAAM,EACvD,CACA,MAAMu9B,EACJ,WAAAxsB,CAAY7P,GACVuD,KAAKvD,QAAUA,EACfuD,KAAK+4B,cAAgB/4B,KAAKvD,QAAQs8B,gBAAiB,EACnD/4B,KAAKmtB,OAASa,EAAWlmB,OAAO,gBAClC,CACA,qBAAAkxB,CAAsB/8B,GAEpB,KADAA,EAAOg0B,EAAeh0B,KACTA,EAAKoM,QAAQ,KAAO,EAAG,OAAO,KAC3C,MAAM6R,EAAIje,EAAK2M,MAAM,KACrB,OAAiB,IAAbsR,EAAE7e,OAAqB,MAC3B6e,EAAEqG,MACoC,MAAlCrG,EAAEA,EAAE7e,OAAS,GAAGa,cAA8B,KAC3C8D,KAAKi5B,mBAAmB/e,EAAE3K,KAAK,MACxC,CACA,uBAAA2pB,CAAwBj9B,GAEtB,KADAA,EAAOg0B,EAAeh0B,KACTA,EAAKoM,QAAQ,KAAO,EAAG,OAAOpM,EAC3C,MAAMie,EAAIje,EAAK2M,MAAM,KACrB,OAAO5I,KAAKi5B,mBAAmB/e,EAAE,GACnC,CACA,kBAAA+e,CAAmBh9B,GACjB,GAAoB,iBAATA,GAAqBA,EAAKoM,QAAQ,MAAQ,EAAG,CACtD,MAAM8wB,EAAe,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QACtE,IAAIjf,EAAIje,EAAK2M,MAAM,KAcnB,OAbI5I,KAAKvD,QAAQ28B,aACflf,EAAIA,EAAE7S,KAAIgyB,GAAQA,EAAKn9B,gBACD,IAAbge,EAAE7e,QACX6e,EAAE,GAAKA,EAAE,GAAGhe,cACZge,EAAE,GAAKA,EAAE,GAAG2e,cACRM,EAAa9wB,QAAQ6R,EAAE,GAAGhe,gBAAkB,IAAGge,EAAE,GAAK0e,EAAW1e,EAAE,GAAGhe,iBACpD,IAAbge,EAAE7e,SACX6e,EAAE,GAAKA,EAAE,GAAGhe,cACQ,IAAhBge,EAAE,GAAG7e,SAAc6e,EAAE,GAAKA,EAAE,GAAG2e,eACtB,QAAT3e,EAAE,IAAgC,IAAhBA,EAAE,GAAG7e,SAAc6e,EAAE,GAAKA,EAAE,GAAG2e,eACjDM,EAAa9wB,QAAQ6R,EAAE,GAAGhe,gBAAkB,IAAGge,EAAE,GAAK0e,EAAW1e,EAAE,GAAGhe,gBACtEi9B,EAAa9wB,QAAQ6R,EAAE,GAAGhe,gBAAkB,IAAGge,EAAE,GAAK0e,EAAW1e,EAAE,GAAGhe,iBAErEge,EAAE3K,KAAK,IAChB,CACA,OAAOvP,KAAKvD,QAAQ68B,WAAat5B,KAAKvD,QAAQ28B,aAAen9B,EAAKC,cAAgBD,CACpF,CACA,eAAAs9B,CAAgBt9B,GAId,OAH0B,iBAAtB+D,KAAKvD,QAAQ+8B,MAA2Bx5B,KAAKvD,QAAQg9B,4BACvDx9B,EAAO+D,KAAKk5B,wBAAwBj9B,KAE9B+D,KAAK+4B,gBAAkB/4B,KAAK+4B,cAAc19B,QAAU2E,KAAK+4B,cAAc1wB,QAAQpM,IAAS,CAClG,CACA,qBAAAy9B,CAAsB7B,GACpB,IAAKA,EAAO,OAAO,KACnB,IAAIL,EAmBJ,OAlBAK,EAAMvmB,SAAQrV,IACZ,GAAIu7B,EAAO,OACX,MAAMmC,EAAa35B,KAAKi5B,mBAAmBh9B,GACtC+D,KAAKvD,QAAQs8B,gBAAiB/4B,KAAKu5B,gBAAgBI,KAAanC,EAAQmC,EAAU,KAEpFnC,GAASx3B,KAAKvD,QAAQs8B,eACzBlB,EAAMvmB,SAAQrV,IACZ,GAAIu7B,EAAO,OACX,MAAMoC,EAAU55B,KAAKk5B,wBAAwBj9B,GAC7C,GAAI+D,KAAKu5B,gBAAgBK,GAAU,OAAOpC,EAAQoC,EAClDpC,EAAQx3B,KAAKvD,QAAQs8B,cAAc9M,MAAK4N,GAClCA,IAAiBD,EAAgBC,EACjCA,EAAaxxB,QAAQ,KAAO,GAAKuxB,EAAQvxB,QAAQ,KAAO,OAA5D,EACsC,IAAlCwxB,EAAaxxB,QAAQuxB,GAAuBC,OAAhD,GACA,IAGDrC,IAAOA,EAAQx3B,KAAK81B,iBAAiB91B,KAAKvD,QAAQ+vB,aAAa,IAC7DgL,CACT,CACA,gBAAA1B,CAAiBgE,EAAW79B,GAC1B,IAAK69B,EAAW,MAAO,GAGvB,GAFyB,mBAAdA,IAA0BA,EAAYA,EAAU79B,IAClC,iBAAd69B,IAAwBA,EAAY,CAACA,IACG,mBAA/C19B,OAAOsC,UAAUyN,SAASpM,MAAM+5B,GAAiC,OAAOA,EAC5E,IAAK79B,EAAM,OAAO69B,EAAU77B,SAAW,GACvC,IAAIu5B,EAAQsC,EAAU79B,GAKtB,OAJKu7B,IAAOA,EAAQsC,EAAU95B,KAAKg5B,sBAAsB/8B,KACpDu7B,IAAOA,EAAQsC,EAAU95B,KAAKi5B,mBAAmBh9B,KACjDu7B,IAAOA,EAAQsC,EAAU95B,KAAKk5B,wBAAwBj9B,KACtDu7B,IAAOA,EAAQsC,EAAU77B,SACvBu5B,GAAS,EAClB,CACA,kBAAAxB,CAAmB/5B,EAAM89B,GACvB,MAAMC,EAAgBh6B,KAAK81B,iBAAiBiE,GAAgB/5B,KAAKvD,QAAQ+vB,aAAe,GAAIvwB,GACtF47B,EAAQ,GACRoC,EAAUtH,IACTA,IACD3yB,KAAKu5B,gBAAgB5G,GACvBkF,EAAM3vB,KAAKyqB,GAEX3yB,KAAKmtB,OAAOH,KAAK,uDAAuD2F,KAC1E,EAYF,MAVoB,iBAAT12B,IAAsBA,EAAKoM,QAAQ,MAAQ,GAAKpM,EAAKoM,QAAQ,MAAQ,IACpD,iBAAtBrI,KAAKvD,QAAQ+8B,MAAyBS,EAAQj6B,KAAKi5B,mBAAmBh9B,IAChD,iBAAtB+D,KAAKvD,QAAQ+8B,MAAiD,gBAAtBx5B,KAAKvD,QAAQ+8B,MAAwBS,EAAQj6B,KAAKg5B,sBAAsB/8B,IAC1F,gBAAtB+D,KAAKvD,QAAQ+8B,MAAwBS,EAAQj6B,KAAKk5B,wBAAwBj9B,KACrD,iBAATA,GAChBg+B,EAAQj6B,KAAKi5B,mBAAmBh9B,IAElC+9B,EAAc1oB,SAAQ4oB,IAChBrC,EAAMxvB,QAAQ6xB,GAAM,GAAGD,EAAQj6B,KAAKi5B,mBAAmBiB,GAAI,IAE1DrC,CACT,EAGF,IAAIsC,EAAO,CAAC,CACVxE,KAAM,CAAC,MAAO,KAAM,KAAM,MAAO,KAAM,MAAO,MAAO,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,MACjIyE,GAAI,CAAC,EAAG,GACRF,GAAI,GACH,CACDvE,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,MACzYyE,GAAI,CAAC,EAAG,GACRF,GAAI,GACH,CACDvE,KAAM,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MACxIyE,GAAI,CAAC,GACLF,GAAI,GACH,CACDvE,KAAM,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,MAClDyE,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,GACH,CACDvE,KAAM,CAAC,MACPyE,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,KACrBF,GAAI,GACH,CACDvE,KAAM,CAAC,KAAM,MACbyE,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,GACH,CACDvE,KAAM,CAAC,MAAO,MACdyE,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,GACH,CACDvE,KAAM,CAAC,MACPyE,GAAI,CAAC,EAAG,EAAG,EAAG,GACdF,GAAI,GACH,CACDvE,KAAM,CAAC,MACPyE,GAAI,CAAC,EAAG,GACRF,GAAI,GACH,CACDvE,KAAM,CAAC,MACPyE,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,IACjBF,GAAI,IACH,CACDvE,KAAM,CAAC,MACPyE,GAAI,CAAC,EAAG,EAAG,EAAG,IACdF,GAAI,IACH,CACDvE,KAAM,CAAC,MACPyE,GAAI,CAAC,EAAG,GACRF,GAAI,IACH,CACDvE,KAAM,CAAC,MACPyE,GAAI,CAAC,EAAG,GACRF,GAAI,IACH,CACDvE,KAAM,CAAC,MACPyE,GAAI,CAAC,EAAG,EAAG,EAAG,GACdF,GAAI,IACH,CACDvE,KAAM,CAAC,MACPyE,GAAI,CAAC,EAAG,EAAG,IACXF,GAAI,IACH,CACDvE,KAAM,CAAC,MACPyE,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,IACH,CACDvE,KAAM,CAAC,MACPyE,GAAI,CAAC,EAAG,GACRF,GAAI,IACH,CACDvE,KAAM,CAAC,OACPyE,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,IACH,CACDvE,KAAM,CAAC,MACPyE,GAAI,CAAC,EAAG,EAAG,GAAI,IACfF,GAAI,IACH,CACDvE,KAAM,CAAC,MACPyE,GAAI,CAAC,EAAG,GACRF,GAAI,GACH,CACDvE,KAAM,CAAC,MACPyE,GAAI,CAAC,EAAG,EAAG,IACXF,GAAI,IACH,CACDvE,KAAM,CAAC,MACPyE,GAAI,CAAC,EAAG,EAAG,EAAG,GACdF,GAAI,IACH,CACDvE,KAAM,CAAC,KAAM,MACbyE,GAAI,CAAC,EAAG,EAAG,GAAI,IACfF,GAAI,KAEFG,EAAqB,CACvB,EAAG,SAAUC,GACX,OAAO/Q,OAAO+Q,EAAI,EACpB,EACA,EAAG,SAAUA,GACX,OAAO/Q,OAAY,GAAL+Q,EAChB,EACA,EAAG,SAAUA,GACX,OAAO,CACT,EACA,EAAG,SAAUA,GACX,OAAO/Q,OAAO+Q,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,OAAO/Q,OAAY,GAAL+Q,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,OAAO/Q,OAAY,GAAL+Q,EAAS,EAAIA,GAAK,GAAKA,GAAK,EAAI,EAAI,EACpD,EACA,EAAG,SAAUA,GACX,OAAO/Q,OAAY,GAAL+Q,EAAS,EAAIA,EAAI,IAAM,GAAKA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAMA,EAAI,KAAO,IAAM,EAAI,EACjG,EACA,EAAG,SAAUA,GACX,OAAO/Q,OAAY,GAAL+Q,EAAS,EAAS,GAALA,EAAS,EAAS,GAALA,GAAe,IAALA,EAAU,EAAI,EAClE,EACA,EAAG,SAAUA,GACX,OAAO/Q,OAAO+Q,GAAK,EACrB,EACA,GAAI,SAAUA,GACZ,OAAO/Q,OAAY,GAAL+Q,EAAS,EAAS,GAALA,EAAS,EAAIA,EAAI,EAAI,EAAIA,EAAI,GAAK,EAAI,EACnE,EACA,GAAI,SAAUA,GACZ,OAAO/Q,OAAY,GAAL+Q,GAAe,IAALA,EAAU,EAAS,GAALA,GAAe,IAALA,EAAU,EAAIA,EAAI,GAAKA,EAAI,GAAK,EAAI,EACtF,EACA,GAAI,SAAUA,GACZ,OAAO/Q,OAAO+Q,EAAI,IAAM,GAAKA,EAAI,KAAO,GAC1C,EACA,GAAI,SAAUA,GACZ,OAAO/Q,OAAa,IAAN+Q,EAChB,EACA,GAAI,SAAUA,GACZ,OAAO/Q,OAAY,GAAL+Q,EAAS,EAAS,GAALA,EAAS,EAAS,GAALA,EAAS,EAAI,EACvD,EACA,GAAI,SAAUA,GACZ,OAAO/Q,OAAO+Q,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAMA,EAAI,KAAO,IAAM,EAAI,EACxG,EACA,GAAI,SAAUA,GACZ,OAAO/Q,OAAO+Q,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAU,IAANA,EAAU,EAAI,EACjE,EACA,GAAI,SAAUA,GACZ,OAAO/Q,OAAY,GAAL+Q,GAAUA,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAI,EAC7D,EACA,GAAI,SAAUA,GACZ,OAAO/Q,OAAY,GAAL+Q,EAAS,EAAS,GAALA,EAAS,EAAI,EAC1C,EACA,GAAI,SAAUA,GACZ,OAAO/Q,OAAY,GAAL+Q,EAAS,EAAS,GAALA,GAAUA,EAAI,IAAM,GAAKA,EAAI,IAAM,GAAK,EAAIA,EAAI,IAAM,IAAMA,EAAI,IAAM,GAAK,EAAI,EAC5G,EACA,GAAI,SAAUA,GACZ,OAAO/Q,OAAY,GAAL+Q,EAAS,EAAS,GAALA,GAAUA,EAAI,IAAM,GAAKA,EAAI,IAAM,GAAK,EAAI,EACzE,EACA,GAAI,SAAUA,GACZ,OAAO/Q,OAAO+Q,EAAI,KAAO,EAAI,EAAIA,EAAI,KAAO,EAAI,EAAIA,EAAI,KAAO,GAAKA,EAAI,KAAO,EAAI,EAAI,EACzF,EACA,GAAI,SAAUA,GACZ,OAAO/Q,OAAY,GAAL+Q,EAAS,EAAS,GAALA,EAAS,GAAKA,EAAI,GAAKA,EAAI,KAAOA,EAAI,IAAM,EAAI,EAAI,EACjF,GAEF,MAAMC,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,WAAA1uB,CAAYupB,GACV,IAAIp5B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFK,KAAK61B,cAAgBA,EACrB71B,KAAKvD,QAAUA,EACfuD,KAAKmtB,OAASa,EAAWlmB,OAAO,kBAC1B9H,KAAKvD,QAAQw+B,oBAAqBT,EAAa/kB,SAASzV,KAAKvD,QAAQw+B,oBAAwC,oBAATC,MAAyBA,KAAKC,cACtIn7B,KAAKvD,QAAQw+B,kBAAoB,KACjCj7B,KAAKmtB,OAAOjX,MAAM,uJAEpBlW,KAAKo7B,MAtBT,WACE,MAAMA,EAAQ,CAAC,EASf,OARAjB,EAAK7oB,SAAQxS,IACXA,EAAI62B,KAAKrkB,SAAQ+c,IACf+M,EAAM/M,GAAK,CACTgN,QAASv8B,EAAIs7B,GACbkB,QAASjB,EAAmBv7B,EAAIo7B,IACjC,GACD,IAEGkB,CACT,CAWiBG,EACf,CACA,OAAAC,CAAQjP,EAAKxuB,GACXiC,KAAKo7B,MAAM7O,GAAOxuB,CACpB,CACA,OAAA09B,CAAQx/B,GACN,IAAIQ,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,GAAIK,KAAK23B,mBACP,IACE,OAAO,IAAIuD,KAAKC,YAAYlL,EAAeh0B,GAAO,CAChD+L,KAAMvL,EAAQ44B,QAAU,UAAY,YAExC,CAAE,MACA,MACF,CAEF,OAAOr1B,KAAKo7B,MAAMn/B,IAAS+D,KAAKo7B,MAAMp7B,KAAK61B,cAAcqD,wBAAwBj9B,GACnF,CACA,WAAAy/B,CAAYz/B,GACV,IAAIQ,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAMg8B,EAAO37B,KAAKy7B,QAAQx/B,EAAMQ,GAChC,OAAIuD,KAAK23B,mBACAgE,GAAQA,EAAKC,kBAAkBC,iBAAiBxgC,OAAS,EAE3DsgC,GAAQA,EAAKN,QAAQhgC,OAAS,CACvC,CACA,mBAAAygC,CAAoB7/B,EAAMwC,GACxB,IAAIhC,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAOK,KAAKu2B,YAAYt6B,EAAMQ,GAAS4K,KAAIlK,GAAU,GAAGsB,IAAMtB,KAChE,CACA,WAAAo5B,CAAYt6B,GACV,IAAIQ,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAMg8B,EAAO37B,KAAKy7B,QAAQx/B,EAAMQ,GAChC,OAAKk/B,EAGD37B,KAAK23B,mBACAgE,EAAKC,kBAAkBC,iBAAiBE,MAAK,CAACC,EAAiBC,IAAoBxB,EAAcuB,GAAmBvB,EAAcwB,KAAkB50B,KAAI60B,GAAkB,GAAGl8B,KAAKvD,QAAQ0/B,UAAU1/B,EAAQ44B,QAAU,UAAUr1B,KAAKvD,QAAQ0/B,UAAY,KAAKD,MAEhQP,EAAKN,QAAQh0B,KAAI+0B,GAAUp8B,KAAKm1B,UAAUl5B,EAAMmgC,EAAQ3/B,KALtD,EAMX,CACA,SAAA04B,CAAUl5B,EAAM84B,GACd,IAAIt4B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAMg8B,EAAO37B,KAAKy7B,QAAQx/B,EAAMQ,GAChC,OAAIk/B,EACE37B,KAAK23B,mBACA,GAAG33B,KAAKvD,QAAQ0/B,UAAU1/B,EAAQ44B,QAAU,UAAUr1B,KAAKvD,QAAQ0/B,UAAY,KAAKR,EAAKU,OAAOtH,KAElG/0B,KAAKs8B,yBAAyBX,EAAM5G,IAE7C/0B,KAAKmtB,OAAOH,KAAK,6BAA6B/wB,KACvC,GACT,CACA,wBAAAqgC,CAAyBX,EAAM5G,GAC7B,MAAMwH,EAAMZ,EAAKa,MAAQb,EAAKL,QAAQvG,GAAS4G,EAAKL,QAAQmB,KAAKC,IAAI3H,IACrE,IAAI53B,EAASw+B,EAAKN,QAAQkB,GACtBv8B,KAAKvD,QAAQkgC,sBAAgD,IAAxBhB,EAAKN,QAAQhgC,QAAoC,IAApBsgC,EAAKN,QAAQ,KAClE,IAAXl+B,EACFA,EAAS,SACW,IAAXA,IACTA,EAAS,KAGb,MAAMy/B,EAAe,IAAM58B,KAAKvD,QAAQ0/B,SAAWh/B,EAAOgP,WAAanM,KAAKvD,QAAQ0/B,QAAUh/B,EAAOgP,WAAahP,EAAOgP,WACzH,MAAuC,OAAnCnM,KAAKvD,QAAQw+B,kBACA,IAAX99B,EAAqB,GACH,iBAAXA,EAA4B,WAAWA,EAAOgP,aAClDywB,IACqC,OAAnC58B,KAAKvD,QAAQw+B,mBAEbj7B,KAAKvD,QAAQkgC,sBAAgD,IAAxBhB,EAAKN,QAAQhgC,QAAoC,IAApBsgC,EAAKN,QAAQ,GADjFuB,IAIF58B,KAAKvD,QAAQ0/B,SAAWI,EAAIpwB,WAAanM,KAAKvD,QAAQ0/B,QAAUI,EAAIpwB,WAAaowB,EAAIpwB,UAC9F,CACA,gBAAAwrB,GACE,OAAQ4C,EAAgB9kB,SAASzV,KAAKvD,QAAQw+B,kBAChD,EAGF,SAAS4B,EAAqB1uB,EAAM2uB,EAAar+B,GAC/C,IAAImxB,EAAejwB,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,IACnFywB,IAAsBzwB,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,KAAmBA,UAAU,GACrF+I,EAj+BN,SAA6ByF,EAAM2uB,EAAar+B,GAC9C,MAAMlC,EAAQ0yB,EAAQ9gB,EAAM1P,GAC5B,YAAcuD,IAAVzF,EACKA,EAEF0yB,EAAQ6N,EAAar+B,EAC9B,CA29Bas+B,CAAoB5uB,EAAM2uB,EAAar+B,GAKlD,OAJKiK,GAAQ0nB,GAAsC,iBAAR3xB,IACzCiK,EAAOinB,EAASxhB,EAAM1P,EAAKmxB,QACd5tB,IAAT0G,IAAoBA,EAAOinB,EAASmN,EAAar+B,EAAKmxB,KAErDlnB,CACT,CACA,MAAMs0B,EACJ,WAAA1wB,GACE,IAAI7P,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFK,KAAKmtB,OAASa,EAAWlmB,OAAO,gBAChC9H,KAAKvD,QAAUA,EACfuD,KAAKi9B,OAASxgC,EAAQy1B,eAAiBz1B,EAAQy1B,cAAc+K,QAAU,CAAC1gC,GAASA,GACjFyD,KAAKssB,KAAK7vB,EACZ,CACA,IAAA6vB,GACE,IAAI7vB,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9ElD,EAAQy1B,gBAAez1B,EAAQy1B,cAAgB,CAClDgL,aAAa,IAEf,MAAMC,EAAQ1gC,EAAQy1B,cACtBlyB,KAAKyvB,YAA0BztB,IAAjBm7B,EAAM1N,OAAuB0N,EAAM1N,OAASA,EAC1DzvB,KAAKk9B,iBAAoCl7B,IAAtBm7B,EAAMD,aAA4BC,EAAMD,YAC3Dl9B,KAAKo9B,yBAAoDp7B,IAA9Bm7B,EAAMC,qBAAoCD,EAAMC,oBAC3Ep9B,KAAKypB,OAAS0T,EAAM1T,OAAS8F,EAAY4N,EAAM1T,QAAU0T,EAAME,eAAiB,KAChFr9B,KAAK7C,OAASggC,EAAMhgC,OAASoyB,EAAY4N,EAAMhgC,QAAUggC,EAAMG,eAAiB,KAChFt9B,KAAKu9B,gBAAkBJ,EAAMI,gBAAkBJ,EAAMI,gBAAkBJ,EAAMI,iBAAmB,IAChGv9B,KAAKw9B,eAAiBL,EAAMM,eAAiB,GAAKN,EAAMK,gBAAkB,IAC1Ex9B,KAAKy9B,eAAiBz9B,KAAKw9B,eAAiB,GAAKL,EAAMM,gBAAkB,GACzEz9B,KAAK09B,cAAgBP,EAAMO,cAAgBnO,EAAY4N,EAAMO,eAAiBP,EAAMQ,sBAAwBpO,EAAY,OACxHvvB,KAAK49B,cAAgBT,EAAMS,cAAgBrO,EAAY4N,EAAMS,eAAiBT,EAAMU,sBAAwBtO,EAAY,KACxHvvB,KAAK89B,wBAA0BX,EAAMW,wBAA0BX,EAAMW,wBAA0BX,EAAMW,yBAA2B,IAChI99B,KAAK+9B,YAAcZ,EAAMY,YAAcZ,EAAMY,YAAc,IAC3D/9B,KAAKg+B,kBAAsCh8B,IAAvBm7B,EAAMa,cAA6Bb,EAAMa,aAC7Dh+B,KAAKi+B,aACP,CACA,KAAA/G,GACMl3B,KAAKvD,SAASuD,KAAKssB,KAAKtsB,KAAKvD,QACnC,CACA,WAAAwhC,GACE,MAAMC,EAAY,GAAGl+B,KAAKypB,cAAczpB,KAAK7C,SAC7C6C,KAAKm+B,OAAS,IAAItL,OAAOqL,EAAW,KACpC,MAAME,EAAoB,GAAGp+B,KAAKypB,SAASzpB,KAAKw9B,sBAAsBx9B,KAAKy9B,iBAAiBz9B,KAAK7C,SACjG6C,KAAKq+B,eAAiB,IAAIxL,OAAOuL,EAAmB,KACpD,MAAME,EAAmB,GAAGt+B,KAAK09B,qBAAqB19B,KAAK49B,gBAC3D59B,KAAKkzB,cAAgB,IAAIL,OAAOyL,EAAkB,IACpD,CACA,WAAAvH,CAAYvN,EAAKrb,EAAMoe,EAAK9vB,GAC1B,IAAIE,EACAJ,EACAgiC,EACJ,MAAMzB,EAAc98B,KAAKvD,SAAWuD,KAAKvD,QAAQy1B,eAAiBlyB,KAAKvD,QAAQy1B,cAAcwE,kBAAoB,CAAC,EAClH,SAAS8H,EAAUC,GACjB,OAAOA,EAAItiC,QAAQ,MAAO,OAC5B,CACA,MAAMuiC,EAAejgC,IACnB,GAAIA,EAAI4J,QAAQrI,KAAKu9B,iBAAmB,EAAG,CACzC,MAAM70B,EAAOm0B,EAAqB1uB,EAAM2uB,EAAar+B,EAAKuB,KAAKvD,QAAQmzB,aAAc5vB,KAAKvD,QAAQ2zB,qBAClG,OAAOpwB,KAAKg+B,aAAeh+B,KAAKi9B,OAAOv0B,OAAM1G,EAAWuqB,EAAK,IACxD9vB,KACA0R,EACHwwB,iBAAkBlgC,IACfiK,CACP,CACA,MAAMwR,EAAIzb,EAAImK,MAAM5I,KAAKu9B,iBACnBzO,EAAI5U,EAAE2U,QAAQhf,OACd+uB,EAAI1kB,EAAE3K,KAAKvP,KAAKu9B,iBAAiB1tB,OACvC,OAAO7P,KAAKi9B,OAAOJ,EAAqB1uB,EAAM2uB,EAAahO,EAAG9uB,KAAKvD,QAAQmzB,aAAc5vB,KAAKvD,QAAQ2zB,qBAAsBwO,EAAGrS,EAAK,IAC/H9vB,KACA0R,EACHwwB,iBAAkB7P,GAClB,EAEJ9uB,KAAKi+B,cACL,MAAMY,EAA8BpiC,GAAWA,EAAQoiC,6BAA+B7+B,KAAKvD,QAAQoiC,4BAC7FjI,EAAkBn6B,GAAWA,EAAQy1B,oBAA2DlwB,IAA1CvF,EAAQy1B,cAAc0E,gBAAgCn6B,EAAQy1B,cAAc0E,gBAAkB52B,KAAKvD,QAAQy1B,cAAc0E,gBA2CrL,MA1Cc,CAAC,CACbkI,MAAO9+B,KAAKq+B,eACZU,UAAWN,GAAOD,EAAUC,IAC3B,CACDK,MAAO9+B,KAAKm+B,OACZY,UAAWN,GAAOz+B,KAAKk9B,YAAcsB,EAAUx+B,KAAKyvB,OAAOgP,IAAQD,EAAUC,KAEzEntB,SAAQ0tB,IAEZ,IADAT,EAAW,EACJ5hC,EAAQqiC,EAAKF,MAAMG,KAAKzV,IAAM,CACnC,MAAM0V,EAAaviC,EAAM,GAAGkT,OAE5B,GADAtT,EAAQmiC,EAAaQ,QACPl9B,IAAVzF,EACF,GAA2C,mBAAhCsiC,EAA4C,CACrD,MAAMM,EAAON,EAA4BrV,EAAK7sB,EAAOF,GACrDF,EAAwB,iBAAT4iC,EAAoBA,EAAO,EAC5C,MAAO,GAAI1iC,GAAWL,OAAOsC,UAAUC,eAAeC,KAAKnC,EAASyiC,GAClE3iC,EAAQ,OACH,IAAIq6B,EAAiB,CAC1Br6B,EAAQI,EAAM,GACd,QACF,CACEqD,KAAKmtB,OAAOH,KAAK,8BAA8BkS,uBAAgC1V,KAC/EjtB,EAAQ,EACV,KAC0B,iBAAVA,GAAuByD,KAAKo9B,sBAC5C7gC,EAAQiyB,EAAWjyB,IAErB,MAAMwiC,EAAYC,EAAKD,UAAUxiC,GASjC,GARAitB,EAAMA,EAAIrtB,QAAQQ,EAAM,GAAIoiC,GACxBnI,GACFoI,EAAKF,MAAMM,WAAa7iC,EAAMlB,OAC9B2jC,EAAKF,MAAMM,WAAaziC,EAAM,GAAGtB,QAEjC2jC,EAAKF,MAAMM,UAAY,EAEzBb,IACIA,GAAYv+B,KAAK+9B,YACnB,KAEJ,KAEKvU,CACT,CACA,IAAAyN,CAAKzN,EAAK0Q,GACR,IACIv9B,EACAJ,EACA8iC,EAHA5iC,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAInF,SAAS2/B,EAAiB7gC,EAAK8gC,GAC7B,MAAMC,EAAMx/B,KAAK89B,wBACjB,GAAIr/B,EAAI4J,QAAQm3B,GAAO,EAAG,OAAO/gC,EACjC,MAAMk0B,EAAIl0B,EAAImK,MAAM,IAAIiqB,OAAO,GAAG2M,WAClC,IAAIC,EAAgB,IAAI9M,EAAE,KAC1Bl0B,EAAMk0B,EAAE,GACR8M,EAAgBz/B,KAAK+2B,YAAY0I,EAAeJ,GAChD,MAAMK,EAAsBD,EAAc9iC,MAAM,MAC1CgjC,EAAsBF,EAAc9iC,MAAM,OAC5C+iC,GAAuBA,EAAoBrkC,OAAS,GAAM,IAAMskC,GAAuBA,EAAoBtkC,OAAS,GAAM,KAC5HokC,EAAgBA,EAActjC,QAAQ,KAAM,MAE9C,IACEkjC,EAAgBj8B,KAAKC,MAAMo8B,GACvBF,IAAkBF,EAAgB,IACjCE,KACAF,GAEP,CAAE,MAAO/7B,GAEP,OADAtD,KAAKmtB,OAAOH,KAAK,oDAAoDvuB,IAAO6E,GACrE,GAAG7E,IAAM+gC,IAAMC,GACxB,CAEA,cADOJ,EAAc3W,aACdjqB,CACT,CACA,KAAO9B,EAAQqD,KAAKkzB,cAAc+L,KAAKzV,IAAM,CAC3C,IAAIoW,EAAa,GACjBP,EAAgB,IACX5iC,GAEL4iC,EAAgBA,EAAcljC,SAA4C,iBAA1BkjC,EAAcljC,QAAuBkjC,EAAcljC,QAAUkjC,EAC7GA,EAAchI,oBAAqB,SAC5BgI,EAAc3W,aACrB,IAAImX,GAAW,EACf,IAAgD,IAA5CljC,EAAM,GAAG0L,QAAQrI,KAAKu9B,mBAA4B,OAAOhkB,KAAK5c,EAAM,IAAK,CAC3E,MAAMi2B,EAAIj2B,EAAM,GAAGiM,MAAM5I,KAAKu9B,iBAAiBl2B,KAAIy4B,GAAQA,EAAKjwB,SAChElT,EAAM,GAAKi2B,EAAE/D,QACb+Q,EAAahN,EACbiN,GAAW,CACb,CAEA,GADAtjC,EAAQ29B,EAAGoF,EAAiB1gC,KAAKoB,KAAMrD,EAAM,GAAGkT,OAAQwvB,GAAgBA,GACpE9iC,GAASI,EAAM,KAAO6sB,GAAwB,iBAAVjtB,EAAoB,OAAOA,EAC9C,iBAAVA,IAAoBA,EAAQiyB,EAAWjyB,IAC7CA,IACHyD,KAAKmtB,OAAOH,KAAK,qBAAqBrwB,EAAM,kBAAkB6sB,KAC9DjtB,EAAQ,IAENsjC,IACFtjC,EAAQqjC,EAAWr4B,QAAO,CAAC6pB,EAAGwN,IAAM5+B,KAAKi9B,OAAO7L,EAAGwN,EAAGniC,EAAQ8vB,IAAK,IAC9D9vB,EACHkiC,iBAAkBhiC,EAAM,GAAGkT,UACzBtT,EAAMsT,SAEZ2Z,EAAMA,EAAIrtB,QAAQQ,EAAM,GAAIJ,GAC5ByD,KAAKm+B,OAAOiB,UAAY,CAC1B,CACA,OAAO5V,CACT,EAgCF,SAASuW,EAAsB7zB,GAC7B,MAAMhO,EAAQ,CAAC,EACf,OAAO,SAAyBugC,EAAKlS,EAAK9vB,GACxC,MAAMgC,EAAM8tB,EAAMnpB,KAAKI,UAAU/G,GACjC,IAAIujC,EAAY9hC,EAAMO,GAKtB,OAJKuhC,IACHA,EAAY9zB,EAAG+jB,EAAe1D,GAAM9vB,GACpCyB,EAAMO,GAAOuhC,GAERA,EAAUvB,EACnB,CACF,CACA,MAAMwB,EACJ,WAAA3zB,GACE,IAAI7P,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFK,KAAKmtB,OAASa,EAAWlmB,OAAO,aAChC9H,KAAKvD,QAAUA,EACfuD,KAAKkgC,QAAU,CACb9D,OAAQ2D,GAAsB,CAACxT,EAAK4T,KAClC,MAAMH,EAAY,IAAI9E,KAAKkF,aAAa7T,EAAK,IACxC4T,IAEL,OAAO1B,GAAOuB,EAAU/C,OAAOwB,EAAI,IAErC4B,SAAUN,GAAsB,CAACxT,EAAK4T,KACpC,MAAMH,EAAY,IAAI9E,KAAKkF,aAAa7T,EAAK,IACxC4T,EACHniB,MAAO,aAET,OAAOygB,GAAOuB,EAAU/C,OAAOwB,EAAI,IAErC6B,SAAUP,GAAsB,CAACxT,EAAK4T,KACpC,MAAMH,EAAY,IAAI9E,KAAKqF,eAAehU,EAAK,IAC1C4T,IAEL,OAAO1B,GAAOuB,EAAU/C,OAAOwB,EAAI,IAErC+B,aAAcT,GAAsB,CAACxT,EAAK4T,KACxC,MAAMH,EAAY,IAAI9E,KAAKuF,mBAAmBlU,EAAK,IAC9C4T,IAEL,OAAO1B,GAAOuB,EAAU/C,OAAOwB,EAAK0B,EAAIO,OAAS,MAAM,IAEzDC,KAAMZ,GAAsB,CAACxT,EAAK4T,KAChC,MAAMH,EAAY,IAAI9E,KAAK0F,WAAWrU,EAAK,IACtC4T,IAEL,OAAO1B,GAAOuB,EAAU/C,OAAOwB,EAAI,KAGvCz+B,KAAKssB,KAAK7vB,EACZ,CACA,IAAA6vB,CAAKyF,GAIH,MAAMoL,GAHQx9B,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAChFuyB,cAAe,CAAC,IAEIA,cACtBlyB,KAAKu9B,gBAAkBJ,EAAMI,gBAAkBJ,EAAMI,gBAAkBJ,EAAMI,iBAAmB,GAClG,CACA,GAAA7iB,CAAI1L,EAAMkrB,GACRl6B,KAAKkgC,QAAQlxB,EAAK9S,cAAc2T,QAAUqqB,CAC5C,CACA,SAAA2G,CAAU7xB,EAAMkrB,GACdl6B,KAAKkgC,QAAQlxB,EAAK9S,cAAc2T,QAAUkwB,EAAsB7F,EAClE,CACA,MAAA+C,CAAO1gC,EAAO0gC,EAAQ1Q,GACpB,IAAI9vB,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EA0BnF,OAzBgBs9B,EAAOr0B,MAAM5I,KAAKu9B,iBACXh2B,QAAO,CAACu5B,EAAKlC,KAClC,MAAM,WACJmC,EAAU,cACVC,GApGR,SAAwBC,GACtB,IAAIF,EAAaE,EAAU/kC,cAAc2T,OACzC,MAAMmxB,EAAgB,CAAC,EACvB,GAAIC,EAAU54B,QAAQ,MAAQ,EAAG,CAC/B,MAAM6R,EAAI+mB,EAAUr4B,MAAM,KAC1Bm4B,EAAa7mB,EAAE,GAAGhe,cAAc2T,OAChC,MAAMqxB,EAAShnB,EAAE,GAAG/Y,UAAU,EAAG+Y,EAAE,GAAG7e,OAAS,GAC5B,aAAf0lC,GAA6BG,EAAO74B,QAAQ,KAAO,EAChD24B,EAAcX,WAAUW,EAAcX,SAAWa,EAAOrxB,QACrC,iBAAfkxB,GAAiCG,EAAO74B,QAAQ,KAAO,EAC3D24B,EAAcN,QAAOM,EAAcN,MAAQQ,EAAOrxB,QAE1CqxB,EAAOt4B,MAAM,KACrB0I,SAAQ6uB,IACX,IAAKA,EAAK,OACV,MAAO1hC,KAAQ0iC,GAAQhB,EAAIv3B,MAAM,KAC3B61B,EAAM0C,EAAK5xB,KAAK,KAAKM,OAAO1T,QAAQ,WAAY,IACjD6kC,EAAcviC,EAAIoR,UAASmxB,EAAcviC,EAAIoR,QAAU4uB,GAChD,UAARA,IAAiBuC,EAAcviC,EAAIoR,SAAU,GACrC,SAAR4uB,IAAgBuC,EAAcviC,EAAIoR,SAAU,GAC3CyZ,MAAMmV,KAAMuC,EAAcviC,EAAIoR,QAAUuxB,SAAS3C,EAAK,IAAG,GAGpE,CACA,MAAO,CACLsC,aACAC,gBAEJ,CAyEUK,CAAezC,GACnB,GAAI5+B,KAAKkgC,QAAQa,GAAa,CAC5B,IAAIO,EAAYR,EAChB,IACE,MAAMS,EAAa9kC,GAAWA,EAAQ+kC,cAAgB/kC,EAAQ+kC,aAAa/kC,EAAQkiC,mBAAqB,CAAC,EACnGtQ,EAAIkT,EAAWE,QAAUF,EAAWhV,KAAO9vB,EAAQglC,QAAUhlC,EAAQ8vB,KAAOA,EAClF+U,EAAYthC,KAAKkgC,QAAQa,GAAYD,EAAKzS,EAAG,IACxC2S,KACAvkC,KACA8kC,GAEP,CAAE,MAAOrrB,GACPlW,KAAKmtB,OAAOH,KAAK9W,EACnB,CACA,OAAOorB,CACT,CAGA,OAFEthC,KAAKmtB,OAAOH,KAAK,oCAAoC+T,KAEhDD,CAAG,GACTvkC,EAEL,EASF,MAAMmlC,UAAkBzT,EACtB,WAAA3hB,CAAYq1B,EAASC,EAAO7P,GAC1B,IAAIt1B,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFwwB,QACAnwB,KAAK2hC,QAAUA,EACf3hC,KAAK4hC,MAAQA,EACb5hC,KAAK+xB,SAAWA,EAChB/xB,KAAK61B,cAAgB9D,EAAS8D,cAC9B71B,KAAKvD,QAAUA,EACfuD,KAAKmtB,OAASa,EAAWlmB,OAAO,oBAChC9H,KAAK6hC,aAAe,GACpB7hC,KAAK8hC,iBAAmBrlC,EAAQqlC,kBAAoB,GACpD9hC,KAAK+hC,aAAe,EACpB/hC,KAAKgiC,WAAavlC,EAAQulC,YAAc,EAAIvlC,EAAQulC,WAAa,EACjEhiC,KAAKiiC,aAAexlC,EAAQwlC,cAAgB,EAAIxlC,EAAQwlC,aAAe,IACvEjiC,KAAK+D,MAAQ,CAAC,EACd/D,KAAKkiC,MAAQ,GACTliC,KAAK2hC,SAAW3hC,KAAK2hC,QAAQrV,MAC/BtsB,KAAK2hC,QAAQrV,KAAKyF,EAAUt1B,EAAQklC,QAASllC,EAEjD,CACA,SAAA0lC,CAAUxmC,EAAWmwB,EAAYrvB,EAAS2f,GACxC,MAAMgmB,EAAS,CAAC,EACVC,EAAU,CAAC,EACXC,EAAkB,CAAC,EACnBC,EAAmB,CAAC,EA4B1B,OA3BA5mC,EAAU2V,SAAQib,IAChB,IAAIiW,GAAmB,EACvB1W,EAAWxa,SAAQya,IACjB,MAAM/c,EAAO,GAAGud,KAAOR,KAClBtvB,EAAQ+pB,QAAUxmB,KAAK4hC,MAAM7Q,kBAAkBxE,EAAKR,GACvD/rB,KAAK+D,MAAMiL,GAAQ,EACVhP,KAAK+D,MAAMiL,GAAQ,IAAmC,IAArBhP,KAAK+D,MAAMiL,QAC/BhN,IAAlBqgC,EAAQrzB,KAAqBqzB,EAAQrzB,IAAQ,IAEjDhP,KAAK+D,MAAMiL,GAAQ,EACnBwzB,GAAmB,OACGxgC,IAAlBqgC,EAAQrzB,KAAqBqzB,EAAQrzB,IAAQ,QAC5BhN,IAAjBogC,EAAOpzB,KAAqBozB,EAAOpzB,IAAQ,QAClBhN,IAAzBugC,EAAiBxW,KAAmBwW,EAAiBxW,IAAM,IACjE,IAEGyW,IAAkBF,EAAgB/V,IAAO,EAAI,KAEhDnwB,OAAOqR,KAAK20B,GAAQ/mC,QAAUe,OAAOqR,KAAK40B,GAAShnC,SACrD2E,KAAKkiC,MAAMh6B,KAAK,CACdm6B,UACAI,aAAcrmC,OAAOqR,KAAK40B,GAAShnC,OACnCqnC,OAAQ,CAAC,EACTrzB,OAAQ,GACR+M,aAGG,CACLgmB,OAAQhmC,OAAOqR,KAAK20B,GACpBC,QAASjmC,OAAOqR,KAAK40B,GACrBC,gBAAiBlmC,OAAOqR,KAAK60B,GAC7BC,iBAAkBnmC,OAAOqR,KAAK80B,GAElC,CACA,MAAAG,CAAO1zB,EAAMgC,EAAK7C,GAChB,MAAMqE,EAAIxD,EAAKpG,MAAM,KACf2jB,EAAM/Z,EAAE,GACRuZ,EAAKvZ,EAAE,GACTxB,GAAKhR,KAAKsI,KAAK,gBAAiBikB,EAAKR,EAAI/a,GACzC7C,GACFnO,KAAK4hC,MAAMjR,kBAAkBpE,EAAKR,EAAI5d,GAExCnO,KAAK+D,MAAMiL,GAAQgC,GAAO,EAAI,EAC9B,MAAM0xB,EAAS,CAAC,EAChB1iC,KAAKkiC,MAAM5wB,SAAQqxB,KAp3CvB,SAAkB7/B,EAAQ4F,EAAMsmB,EAAU1zB,GACxC,MAAM,IACJyC,EAAG,EACH+wB,GACEL,EAAc3rB,EAAQ4F,EAAMtM,QAChC2B,EAAI+wB,GAAK/wB,EAAI+wB,IAAM,GACfxzB,IAAQyC,EAAI+wB,GAAK/wB,EAAI+wB,GAAGxzB,OAAO0zB,IAC9B1zB,GAAQyC,EAAI+wB,GAAG5mB,KAAK8mB,EAC3B,CA62CM4T,CAASD,EAAED,OAAQ,CAACnW,GAAMR,GA7EhC,SAAuB4W,EAAG3zB,QACAhN,IAApB2gC,EAAEN,QAAQrzB,YACL2zB,EAAEN,QAAQrzB,GACjB2zB,EAAEF,eAEN,CAyEMI,CAAcF,EAAG3zB,GACbgC,GAAK2xB,EAAEtzB,OAAOnH,KAAK8I,GACA,IAAnB2xB,EAAEF,cAAuBE,EAAEG,OAC7B1mC,OAAOqR,KAAKk1B,EAAED,QAAQpxB,SAAQ+c,IACvBqU,EAAOrU,KAAIqU,EAAOrU,GAAK,CAAC,GAC7B,MAAM0U,EAAaJ,EAAED,OAAOrU,GACxB0U,EAAW1nC,QACb0nC,EAAWzxB,SAAQgpB,SACIt4B,IAAjB0gC,EAAOrU,GAAGiM,KAAkBoI,EAAOrU,GAAGiM,IAAK,EAAI,GAEvD,IAEFqI,EAAEG,MAAO,EACLH,EAAEtzB,OAAOhU,OACXsnC,EAAEvmB,SAASumB,EAAEtzB,QAEbszB,EAAEvmB,WAEN,IAEFpc,KAAKsI,KAAK,SAAUo6B,GACpB1iC,KAAKkiC,MAAQliC,KAAKkiC,MAAMtlC,QAAO+lC,IAAMA,EAAEG,MACzC,CACA,IAAAhhC,CAAKyqB,EAAKR,EAAIiX,GACZ,IAAIC,EAAQtjC,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,EAC5EujC,EAAOvjC,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAKK,KAAKiiC,aAChF7lB,EAAWzc,UAAUtE,OAAS,EAAIsE,UAAU,QAAKqC,EACrD,IAAKuqB,EAAIlxB,OAAQ,OAAO+gB,EAAS,KAAM,CAAC,GACxC,GAAIpc,KAAK+hC,cAAgB/hC,KAAK8hC,iBAS5B,YARA9hC,KAAK6hC,aAAa35B,KAAK,CACrBqkB,MACAR,KACAiX,SACAC,QACAC,OACA9mB,aAIJpc,KAAK+hC,eACL,MAAMoB,EAAW,CAACnyB,EAAK7C,KAErB,GADAnO,KAAK+hC,eACD/hC,KAAK6hC,aAAaxmC,OAAS,EAAG,CAChC,MAAMoM,EAAOzH,KAAK6hC,aAAahT,QAC/B7uB,KAAK8B,KAAK2F,EAAK8kB,IAAK9kB,EAAKskB,GAAItkB,EAAKu7B,OAAQv7B,EAAKw7B,MAAOx7B,EAAKy7B,KAAMz7B,EAAK2U,SACxE,CACIpL,GAAO7C,GAAQ80B,EAAQjjC,KAAKgiC,WAC9BruB,YAAW,KACT3T,KAAK8B,KAAKlD,KAAKoB,KAAMusB,EAAKR,EAAIiX,EAAQC,EAAQ,EAAU,EAAPC,EAAU9mB,EAAS,GACnE8mB,GAGL9mB,EAASpL,EAAK7C,EAAK,EAEf+rB,EAAKl6B,KAAK2hC,QAAQqB,GAAQxiC,KAAKR,KAAK2hC,SAC1C,GAAkB,IAAdzH,EAAG7+B,OAaP,OAAO6+B,EAAG3N,EAAKR,EAAIoX,GAZjB,IACE,MAAMvQ,EAAIsH,EAAG3N,EAAKR,GACd6G,GAAuB,mBAAXA,EAAElrB,KAChBkrB,EAAElrB,MAAKyG,GAAQg1B,EAAS,KAAMh1B,KAAO+D,MAAMixB,GAE3CA,EAAS,KAAMvQ,EAEnB,CAAE,MAAO5hB,GACPmyB,EAASnyB,EACX,CAIJ,CACA,cAAAoyB,CAAeznC,EAAWmwB,GACxB,IAAIrvB,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Eyc,EAAWzc,UAAUtE,OAAS,EAAIsE,UAAU,QAAKqC,EACrD,IAAKhC,KAAK2hC,QAER,OADA3hC,KAAKmtB,OAAOH,KAAK,kEACV5Q,GAAYA,IAEI,iBAAdzgB,IAAwBA,EAAYqE,KAAK61B,cAAcG,mBAAmBr6B,IAC3D,iBAAfmwB,IAAyBA,EAAa,CAACA,IAClD,MAAMsW,EAASpiC,KAAKmiC,UAAUxmC,EAAWmwB,EAAYrvB,EAAS2f,GAC9D,IAAKgmB,EAAOA,OAAO/mC,OAEjB,OADK+mC,EAAOC,QAAQhnC,QAAQ+gB,IACrB,KAETgmB,EAAOA,OAAO9wB,SAAQtC,IACpBhP,KAAKqjC,QAAQr0B,EAAK,GAEtB,CACA,IAAAwqB,CAAK79B,EAAWmwB,EAAY1P,GAC1Bpc,KAAKojC,eAAeznC,EAAWmwB,EAAY,CAAC,EAAG1P,EACjD,CACA,MAAAoK,CAAO7qB,EAAWmwB,EAAY1P,GAC5Bpc,KAAKojC,eAAeznC,EAAWmwB,EAAY,CACzCtF,QAAQ,GACPpK,EACL,CACA,OAAAinB,CAAQr0B,GACN,IAAIya,EAAS9pB,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,GACjF,MAAM6S,EAAIxD,EAAKpG,MAAM,KACf2jB,EAAM/Z,EAAE,GACRuZ,EAAKvZ,EAAE,GACbxS,KAAK8B,KAAKyqB,EAAKR,EAAI,YAAQ/pB,OAAWA,GAAW,CAACgP,EAAK7C,KACjD6C,GAAKhR,KAAKmtB,OAAOH,KAAK,GAAGvD,sBAA2BsC,kBAAmBQ,WAAcvb,IACpFA,GAAO7C,GAAMnO,KAAKmtB,OAAO3E,IAAI,GAAGiB,qBAA0BsC,kBAAmBQ,IAAOpe,GACzFnO,KAAK0iC,OAAO1zB,EAAMgC,EAAK7C,EAAK,GAEhC,CACA,WAAAkoB,CAAY16B,EAAW83B,EAAWh1B,EAAK6kC,EAAeC,GACpD,IAAI9mC,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/E6jC,EAAM7jC,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,OAC9E,GAAIK,KAAK+xB,SAAS+F,OAAS93B,KAAK+xB,SAAS+F,MAAMC,qBAAuB/3B,KAAK+xB,SAAS+F,MAAMC,mBAAmBtE,GAC3GzzB,KAAKmtB,OAAOH,KAAK,qBAAqBvuB,wBAA0Bg1B,wBAAiC,iOAGnG,GAAIh1B,SAA6C,KAARA,EAAzC,CACA,GAAIuB,KAAK2hC,SAAW3hC,KAAK2hC,QAAQ75B,OAAQ,CACvC,MAAM27B,EAAO,IACRhnC,EACH8mC,YAEIrJ,EAAKl6B,KAAK2hC,QAAQ75B,OAAOtH,KAAKR,KAAK2hC,SACzC,GAAIzH,EAAG7+B,OAAS,EACd,IACE,IAAIu3B,EAEFA,EADgB,IAAdsH,EAAG7+B,OACD6+B,EAAGv+B,EAAW83B,EAAWh1B,EAAK6kC,EAAeG,GAE7CvJ,EAAGv+B,EAAW83B,EAAWh1B,EAAK6kC,GAEhC1Q,GAAuB,mBAAXA,EAAElrB,KAChBkrB,EAAElrB,MAAKyG,GAAQq1B,EAAI,KAAMr1B,KAAO+D,MAAMsxB,GAEtCA,EAAI,KAAM5Q,EAEd,CAAE,MAAO5hB,GACPwyB,EAAIxyB,EACN,MAEAkpB,EAAGv+B,EAAW83B,EAAWh1B,EAAK6kC,EAAeE,EAAKC,EAEtD,CACK9nC,GAAcA,EAAU,IAC7BqE,KAAK4hC,MAAMpR,YAAY70B,EAAU,GAAI83B,EAAWh1B,EAAK6kC,EA5BM,CA6B7D,EAGF,SAASjlC,IACP,MAAO,CACL+uB,OAAO,EACPsW,eAAe,EACf3X,GAAI,CAAC,eACLC,UAAW,CAAC,eACZQ,YAAa,CAAC,OACdN,YAAY,EACZ6M,eAAe,EACfU,0BAA0B,EAC1BD,KAAM,MACNmK,SAAS,EACThH,sBAAsB,EACtB/M,aAAc,IACdyC,YAAa,IACb+F,gBAAiB,IACjBG,iBAAkB,IAClBqL,yBAAyB,EACzBvN,aAAa,EACbZ,eAAe,EACfM,cAAe,WACfO,oBAAoB,EACpBH,mBAAmB,EACnB0I,6BAA6B,EAC7B1H,aAAa,EACbG,yBAAyB,EACzBmB,YAAY,EACZC,mBAAmB,EACnBpE,eAAe,EACfJ,YAAY,EACZK,uBAAuB,EACvBkC,wBAAwB,EACxBD,6BAA6B,EAC7B9C,yBAAyB,EACzBJ,iCAAkC,SAAgB1zB,GAChD,IAAIikC,EAAM,CAAC,EAIX,GAHuB,iBAAZjkC,EAAK,KAAiBikC,EAAMjkC,EAAK,IACrB,iBAAZA,EAAK,KAAiBikC,EAAInb,aAAe9oB,EAAK,IAClC,iBAAZA,EAAK,KAAiBikC,EAAIC,aAAelkC,EAAK,IAClC,iBAAZA,EAAK,IAAsC,iBAAZA,EAAK,GAAiB,CAC9D,MAAMnD,EAAUmD,EAAK,IAAMA,EAAK,GAChCxD,OAAOqR,KAAKhR,GAAS6U,SAAQ7S,IAC3BolC,EAAIplC,GAAOhC,EAAQgC,EAAI,GAE3B,CACA,OAAOolC,CACT,EACA3R,cAAe,CACbgL,aAAa,EACbD,OAAQ,CAAC1gC,EAAO0gC,EAAQ1Q,EAAK9vB,IAAYF,EACzCktB,OAAQ,KACRtsB,OAAQ,KACRogC,gBAAiB,IACjBC,eAAgB,IAChBE,cAAe,MACfE,cAAe,IACfE,wBAAyB,IACzBC,YAAa,IACbnH,iBAAiB,GAGvB,CACA,SAASmN,EAAiBtnC,GAOxB,MAN0B,iBAAfA,EAAQsvB,KAAiBtvB,EAAQsvB,GAAK,CAACtvB,EAAQsvB,KACvB,iBAAxBtvB,EAAQ+vB,cAA0B/vB,EAAQ+vB,YAAc,CAAC/vB,EAAQ+vB,cAC1C,iBAAvB/vB,EAAQyvB,aAAyBzvB,EAAQyvB,WAAa,CAACzvB,EAAQyvB,aACtEzvB,EAAQs8B,eAAiBt8B,EAAQs8B,cAAc1wB,QAAQ,UAAY,IACrE5L,EAAQs8B,cAAgBt8B,EAAQs8B,cAAcz9B,OAAO,CAAC,YAEjDmB,CACT,CAEA,SAASunC,IAAQ,CASjB,MAAMC,UAAahW,EACjB,WAAA3hB,GACE,IAAI7P,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Eyc,EAAWzc,UAAUtE,OAAS,EAAIsE,UAAU,QAAKqC,EAXzD,IAA6BkiC,EAoBzB,GARA/T,QACAnwB,KAAKvD,QAAUsnC,EAAiBtnC,GAChCuD,KAAK+xB,SAAW,CAAC,EACjB/xB,KAAKmtB,OAASa,EACdhuB,KAAKmkC,QAAU,CACbC,SAAU,IAjBaF,EAmBLlkC,KAlBT5D,OAAOioC,oBAAoBjoC,OAAO8O,eAAeg5B,IACzD5yB,SAAQwvB,IACc,mBAAdoD,EAAKpD,KACdoD,EAAKpD,GAAOoD,EAAKpD,GAAKtgC,KAAK0jC,GAC7B,IAeI9nB,IAAapc,KAAKskC,gBAAkB7nC,EAAQ8nC,QAAS,CACvD,IAAKvkC,KAAKvD,QAAQinC,cAEhB,OADA1jC,KAAKssB,KAAK7vB,EAAS2f,GACZpc,KAET2T,YAAW,KACT3T,KAAKssB,KAAK7vB,EAAS2f,EAAS,GAC3B,EACL,CACF,CACA,IAAAkQ,GACE,IAAI7sB,EAAQO,KACZ,IAAIvD,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Eyc,EAAWzc,UAAUtE,OAAS,EAAIsE,UAAU,QAAKqC,EAC9B,mBAAZvF,IACT2f,EAAW3f,EACXA,EAAU,CAAC,IAERA,EAAQuvB,YAAmC,IAAtBvvB,EAAQuvB,WAAuBvvB,EAAQsvB,KACrC,iBAAftvB,EAAQsvB,GACjBtvB,EAAQuvB,UAAYvvB,EAAQsvB,GACnBtvB,EAAQsvB,GAAG1jB,QAAQ,eAAiB,IAC7C5L,EAAQuvB,UAAYvvB,EAAQsvB,GAAG,KAGnC,MAAMyY,EAAUnmC,IAkBhB,SAASomC,EAAoBC,GAC3B,OAAKA,EACwB,mBAAlBA,EAAqC,IAAIA,EAC7CA,EAFoB,IAG7B,CACA,GAtBA1kC,KAAKvD,QAAU,IACV+nC,KACAxkC,KAAKvD,WACLsnC,EAAiBtnC,IAEgB,OAAlCuD,KAAKvD,QAAQw0B,mBACfjxB,KAAKvD,QAAQy1B,cAAgB,IACxBsS,EAAQtS,iBACRlyB,KAAKvD,QAAQy1B,qBAGSlwB,IAAzBvF,EAAQmzB,eACV5vB,KAAKvD,QAAQ+1B,wBAA0B/1B,EAAQmzB,mBAErB5tB,IAAxBvF,EAAQ41B,cACVryB,KAAKvD,QAAQg2B,uBAAyBh2B,EAAQ41B,cAO3CryB,KAAKvD,QAAQ8nC,QAAS,CAMzB,IAAIvE,EALAhgC,KAAKmkC,QAAQhX,OACfa,EAAW1B,KAAKmY,EAAoBzkC,KAAKmkC,QAAQhX,QAASntB,KAAKvD,SAE/DuxB,EAAW1B,KAAK,KAAMtsB,KAAKvD,SAGzBuD,KAAKmkC,QAAQnE,UACfA,EAAYhgC,KAAKmkC,QAAQnE,UACA,oBAAT9E,OAChB8E,EAAYC,GAEd,MAAM0E,EAAK,IAAI7L,EAAa94B,KAAKvD,SACjCuD,KAAK4hC,MAAQ,IAAI1R,EAAclwB,KAAKvD,QAAQ0vB,UAAWnsB,KAAKvD,SAC5D,MAAM+V,EAAIxS,KAAK+xB,SACfvf,EAAE2a,OAASa,EACXxb,EAAEmmB,cAAgB34B,KAAK4hC,MACvBpvB,EAAEqjB,cAAgB8O,EAClBnyB,EAAE0iB,eAAiB,IAAI8F,EAAe2J,EAAI,CACxCxI,QAASn8B,KAAKvD,QAAQ27B,gBACtB6C,kBAAmBj7B,KAAKvD,QAAQw+B,kBAChC0B,qBAAsB38B,KAAKvD,QAAQkgC,wBAEjCqD,GAAehgC,KAAKvD,QAAQy1B,cAAc+K,QAAUj9B,KAAKvD,QAAQy1B,cAAc+K,SAAWuH,EAAQtS,cAAc+K,SAClHzqB,EAAEwtB,UAAYyE,EAAoBzE,GAClCxtB,EAAEwtB,UAAU1T,KAAK9Z,EAAGxS,KAAKvD,SACzBuD,KAAKvD,QAAQy1B,cAAc+K,OAASzqB,EAAEwtB,UAAU/C,OAAOz8B,KAAKgS,EAAEwtB,YAEhExtB,EAAEygB,aAAe,IAAI+J,EAAah9B,KAAKvD,SACvC+V,EAAEslB,MAAQ,CACRC,mBAAoB/3B,KAAK+3B,mBAAmBv3B,KAAKR,OAEnDwS,EAAE4jB,iBAAmB,IAAIsL,EAAU+C,EAAoBzkC,KAAKmkC,QAAQxC,SAAUnvB,EAAEmmB,cAAenmB,EAAGxS,KAAKvD,SACvG+V,EAAE4jB,iBAAiBruB,GAAG,KAAK,SAAUga,GACnC,IAAK,IAAIriB,EAAOC,UAAUtE,OAAQuE,EAAO,IAAIC,MAAMH,EAAO,EAAIA,EAAO,EAAI,GAAII,EAAO,EAAGA,EAAOJ,EAAMI,IAClGF,EAAKE,EAAO,GAAKH,UAAUG,GAE7BL,EAAM6I,KAAKyZ,KAAUniB,EACvB,IACII,KAAKmkC,QAAQS,mBACfpyB,EAAEoyB,iBAAmBH,EAAoBzkC,KAAKmkC,QAAQS,kBAClDpyB,EAAEoyB,iBAAiBtY,MAAM9Z,EAAEoyB,iBAAiBtY,KAAK9Z,EAAGxS,KAAKvD,QAAQooC,UAAW7kC,KAAKvD,UAEnFuD,KAAKmkC,QAAQ/P,aACf5hB,EAAE4hB,WAAaqQ,EAAoBzkC,KAAKmkC,QAAQ/P,YAC5C5hB,EAAE4hB,WAAW9H,MAAM9Z,EAAE4hB,WAAW9H,KAAKtsB,OAE3CA,KAAK0xB,WAAa,IAAII,EAAW9xB,KAAK+xB,SAAU/xB,KAAKvD,SACrDuD,KAAK0xB,WAAW3pB,GAAG,KAAK,SAAUga,GAChC,IAAK,IAAIsL,EAAQ1tB,UAAUtE,OAAQuE,EAAO,IAAIC,MAAMwtB,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG1tB,EAAK0tB,EAAQ,GAAK3tB,UAAU2tB,GAE9B7tB,EAAM6I,KAAKyZ,KAAUniB,EACvB,IACAI,KAAKmkC,QAAQC,SAAS9yB,SAAQ0F,IACxBA,EAAEsV,MAAMtV,EAAEsV,KAAKtsB,KAAK,GAE5B,CAGA,GAFAA,KAAKi9B,OAASj9B,KAAKvD,QAAQy1B,cAAc+K,OACpC7gB,IAAUA,EAAW4nB,GACtBhkC,KAAKvD,QAAQ+vB,cAAgBxsB,KAAK+xB,SAAS6S,mBAAqB5kC,KAAKvD,QAAQ8vB,IAAK,CACpF,MAAMsL,EAAQ73B,KAAK+xB,SAAS8D,cAAcC,iBAAiB91B,KAAKvD,QAAQ+vB,aACpEqL,EAAMx8B,OAAS,GAAkB,QAAbw8B,EAAM,KAAc73B,KAAKvD,QAAQ8vB,IAAMsL,EAAM,GACvE,CACK73B,KAAK+xB,SAAS6S,kBAAqB5kC,KAAKvD,QAAQ8vB,KACnDvsB,KAAKmtB,OAAOH,KAAK,2DAEF,CAAC,cAAe,oBAAqB,oBAAqB,qBAClE1b,SAAQ0xB,IACfhjC,KAAKgjC,GAAU,WACb,OAAOvjC,EAAMmiC,MAAMoB,MAAWrjC,UAChC,CAAC,IAEqB,CAAC,cAAe,eAAgB,oBAAqB,wBAC7D2R,SAAQ0xB,IACtBhjC,KAAKgjC,GAAU,WAEb,OADAvjC,EAAMmiC,MAAMoB,MAAWrjC,WAChBF,CACT,CAAC,IAEH,MAAMqlC,EAAWprB,IACX8f,EAAO,KACX,MAAMuL,EAAS,CAAC/zB,EAAKghB,KACfhyB,KAAKskC,gBAAkBtkC,KAAKglC,sBAAsBhlC,KAAKmtB,OAAOH,KAAK,yEACvEhtB,KAAKskC,eAAgB,EAChBtkC,KAAKvD,QAAQ8nC,SAASvkC,KAAKmtB,OAAO3E,IAAI,cAAexoB,KAAKvD,SAC/DuD,KAAKsI,KAAK,cAAetI,KAAKvD,SAC9BqoC,EAASl9B,QAAQoqB,GACjB5V,EAASpL,EAAKghB,EAAE,EAElB,GAAIhyB,KAAKrE,WAA+C,OAAlCqE,KAAKvD,QAAQw0B,mBAA8BjxB,KAAKskC,cAAe,OAAOS,EAAO,KAAM/kC,KAAKgyB,EAAExxB,KAAKR,OACrHA,KAAK2sB,eAAe3sB,KAAKvD,QAAQ8vB,IAAKwY,EAAO,EAO/C,OALI/kC,KAAKvD,QAAQ0vB,YAAcnsB,KAAKvD,QAAQinC,cAC1ClK,IAEA7lB,WAAW6lB,EAAM,GAEZsL,CACT,CACA,aAAAlgB,CAAchpB,GACZ,IACIqpC,EADWtlC,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAKqkC,EAEnF,MAAMnQ,EAA8B,iBAAbj4B,EAAwBA,EAAWoE,KAAKpE,SAE/D,GADwB,mBAAbA,IAAyBqpC,EAAerpC,IAC9CoE,KAAKvD,QAAQ0vB,WAAansB,KAAKvD,QAAQmnC,wBAAyB,CACnE,GAAI/P,GAAqC,WAA1BA,EAAQ33B,iBAAgC8D,KAAKvD,QAAQknC,SAA2C,IAAhC3jC,KAAKvD,QAAQknC,QAAQtoC,QAAe,OAAO4pC,IAC1H,MAAM7C,EAAS,GACThjB,EAASmN,IACb,IAAKA,EAAK,OACV,GAAY,WAARA,EAAkB,OACTvsB,KAAK+xB,SAAS8D,cAAcG,mBAAmBzJ,GACvDjb,SAAQ+c,IACD,WAANA,GACA+T,EAAO/5B,QAAQgmB,GAAK,GAAG+T,EAAOl6B,KAAKmmB,EAAE,GACzC,EAEJ,GAAKwF,EAIHzU,EAAOyU,OAJK,CACM7zB,KAAK+xB,SAAS8D,cAAcC,iBAAiB91B,KAAKvD,QAAQ+vB,aAClElb,SAAQ+c,GAAKjP,EAAOiP,IAChC,CAGIruB,KAAKvD,QAAQknC,SACf3jC,KAAKvD,QAAQknC,QAAQryB,SAAQ+c,GAAKjP,EAAOiP,KAE3CruB,KAAK+xB,SAASqE,iBAAiBoD,KAAK4I,EAAQpiC,KAAKvD,QAAQsvB,IAAIzoB,IACtDA,GAAMtD,KAAKklC,mBAAoBllC,KAAKpE,UAAUoE,KAAKmlC,oBAAoBnlC,KAAKpE,UACjFqpC,EAAa3hC,EAAE,GAEnB,MACE2hC,EAAa,KAEjB,CACA,eAAAG,CAAgBzP,EAAM5J,EAAI3P,GACxB,MAAM0oB,EAAWprB,IAQjB,OAPKic,IAAMA,EAAO31B,KAAKrE,WAClBowB,IAAIA,EAAK/rB,KAAKvD,QAAQsvB,IACtB3P,IAAUA,EAAW4nB,GAC1BhkC,KAAK+xB,SAASqE,iBAAiB5P,OAAOmP,EAAM5J,GAAI/a,IAC9C8zB,EAASl9B,UACTwU,EAASpL,EAAI,IAER8zB,CACT,CACA,GAAAO,CAAI3+B,GACF,IAAKA,EAAQ,MAAM,IAAI6G,MAAM,iGAC7B,IAAK7G,EAAOsB,KAAM,MAAM,IAAIuF,MAAM,4FAsBlC,MArBoB,YAAhB7G,EAAOsB,OACThI,KAAKmkC,QAAQxC,QAAUj7B,IAEL,WAAhBA,EAAOsB,MAAqBtB,EAAO8hB,KAAO9hB,EAAOsmB,MAAQtmB,EAAOwP,SAClElW,KAAKmkC,QAAQhX,OAASzmB,GAEJ,qBAAhBA,EAAOsB,OACThI,KAAKmkC,QAAQS,iBAAmBl+B,GAEd,eAAhBA,EAAOsB,OACThI,KAAKmkC,QAAQ/P,WAAa1tB,GAER,kBAAhBA,EAAOsB,MACTspB,EAAcE,iBAAiB9qB,GAEb,cAAhBA,EAAOsB,OACThI,KAAKmkC,QAAQnE,UAAYt5B,GAEP,aAAhBA,EAAOsB,MACThI,KAAKmkC,QAAQC,SAASl8B,KAAKxB,GAEtB1G,IACT,CACA,mBAAAmlC,CAAoB9W,GAClB,GAAKA,GAAMruB,KAAKrE,aACZ,CAAC,SAAU,OAAO0M,QAAQgmB,IAAM,GACpC,IAAK,IAAIiX,EAAK,EAAGA,EAAKtlC,KAAKrE,UAAUN,OAAQiqC,IAAM,CACjD,MAAMC,EAAYvlC,KAAKrE,UAAU2pC,GACjC,KAAI,CAAC,SAAU,OAAOj9B,QAAQk9B,IAAc,IACxCvlC,KAAK4hC,MAAMzQ,4BAA4BoU,GAAY,CACrDvlC,KAAKklC,iBAAmBK,EACxB,KACF,CACF,CACF,CACA,cAAA5Y,CAAeJ,EAAKnQ,GAClB,IAAI+H,EAASnkB,KACbA,KAAKwlC,qBAAuBjZ,EAC5B,MAAMuY,EAAWprB,IACjB1Z,KAAKsI,KAAK,mBAAoBikB,GAC9B,MAAMkZ,EAAcpX,IAClBruB,KAAKpE,SAAWyyB,EAChBruB,KAAKrE,UAAYqE,KAAK+xB,SAAS8D,cAAcG,mBAAmB3H,GAChEruB,KAAKklC,sBAAmBljC,EACxBhC,KAAKmlC,oBAAoB9W,EAAE,EAEvByU,EAAO,CAAC9xB,EAAKqd,KACbA,GACFoX,EAAYpX,GACZruB,KAAK0xB,WAAW/E,eAAe0B,GAC/BruB,KAAKwlC,0BAAuBxjC,EAC5BhC,KAAKsI,KAAK,kBAAmB+lB,GAC7BruB,KAAKmtB,OAAO3E,IAAI,kBAAmB6F,IAEnCruB,KAAKwlC,0BAAuBxjC,EAE9B8iC,EAASl9B,SAAQ,WACf,OAAOuc,EAAO6N,KAAKryB,UACrB,IACIyc,GAAUA,EAASpL,GAAK,WAC1B,OAAOmT,EAAO6N,KAAKryB,UACrB,GAAE,EAEE+lC,EAAS/P,IACRpJ,GAAQoJ,IAAQ31B,KAAK+xB,SAAS6S,mBAAkBjP,EAAO,IAC5D,MAAMtH,EAAoB,iBAATsH,EAAoBA,EAAO31B,KAAK+xB,SAAS8D,cAAc6D,sBAAsB/D,GAC1FtH,IACGruB,KAAKpE,UACR6pC,EAAYpX,GAETruB,KAAK0xB,WAAW91B,UAAUoE,KAAK0xB,WAAW/E,eAAe0B,GAC1DruB,KAAK+xB,SAAS6S,kBAAoB5kC,KAAK+xB,SAAS6S,iBAAiBe,mBAAmB3lC,KAAK+xB,SAAS6S,iBAAiBe,kBAAkBtX,IAE3IruB,KAAK4kB,cAAcyJ,GAAGrd,IACpB8xB,EAAK9xB,EAAKqd,EAAE,GACZ,EAaJ,OAXK9B,IAAOvsB,KAAK+xB,SAAS6S,kBAAqB5kC,KAAK+xB,SAAS6S,iBAAiBgB,OAElErZ,GAAOvsB,KAAK+xB,SAAS6S,kBAAoB5kC,KAAK+xB,SAAS6S,iBAAiBgB,MAC7B,IAAjD5lC,KAAK+xB,SAAS6S,iBAAiBiB,OAAOxqC,OACxC2E,KAAK+xB,SAAS6S,iBAAiBiB,SAASn+B,KAAKg+B,GAE7C1lC,KAAK+xB,SAAS6S,iBAAiBiB,OAAOH,GAGxCA,EAAOnZ,GARPmZ,EAAO1lC,KAAK+xB,SAAS6S,iBAAiBiB,UAUjCf,CACT,CACA,SAAAgB,CAAUvZ,EAAKR,EAAIga,GACjB,IAAIC,EAAShmC,KACb,MAAMimC,EAAS,SAAUxnC,EAAKglC,GAC5B,IAAIhnC,EACJ,GAAoB,iBAATgnC,EAAmB,CAC5B,IAAK,IAAIlW,EAAQ5tB,UAAUtE,OAAQ8lC,EAAO,IAAIthC,MAAM0tB,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG2T,EAAK3T,EAAQ,GAAK7tB,UAAU6tB,GAE9B/wB,EAAUupC,EAAOvpC,QAAQ62B,iCAAiC,CAAC70B,EAAKglC,GAAMnoC,OAAO6lC,GAC/E,MACE1kC,EAAU,IACLgnC,GAGPhnC,EAAQ8vB,IAAM9vB,EAAQ8vB,KAAO0Z,EAAO1Z,IACpC9vB,EAAQk5B,KAAOl5B,EAAQk5B,MAAQsQ,EAAOtQ,KACtCl5B,EAAQsvB,GAAKtvB,EAAQsvB,IAAMka,EAAOla,GAClCtvB,EAAQspC,UAAYtpC,EAAQspC,WAAaA,GAAaE,EAAOF,UAC7D,MAAMnW,EAAeoW,EAAOvpC,QAAQmzB,cAAgB,IACpD,IAAIsW,EAMJ,OAJEA,EADEzpC,EAAQspC,WAAalmC,MAAM0zB,QAAQ90B,GACzBA,EAAI4I,KAAIynB,GAAK,GAAGryB,EAAQspC,YAAYnW,IAAed,MAEnDryB,EAAQspC,UAAY,GAAGtpC,EAAQspC,YAAYnW,IAAenxB,IAAQA,EAEzEunC,EAAOhU,EAAEkU,EAAWzpC,EAC7B,EAQA,MAPmB,iBAAR8vB,EACT0Z,EAAO1Z,IAAMA,EAEb0Z,EAAOtQ,KAAOpJ,EAEhB0Z,EAAOla,GAAKA,EACZka,EAAOF,UAAYA,EACZE,CACT,CACA,CAAAjU,GACE,OAAOhyB,KAAK0xB,YAAc1xB,KAAK0xB,WAAW0B,aAAazzB,UACzD,CACA,MAAAsyB,GACE,OAAOjyB,KAAK0xB,YAAc1xB,KAAK0xB,WAAWO,UAAUtyB,UACtD,CACA,mBAAAwmC,CAAoBpa,GAClB/rB,KAAKvD,QAAQuvB,UAAYD,CAC3B,CACA,kBAAAgM,CAAmBhM,GACjB,IAAItvB,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,IAAKK,KAAKskC,cAER,OADAtkC,KAAKmtB,OAAOH,KAAK,kDAAmDhtB,KAAKrE,YAClE,EAET,IAAKqE,KAAKrE,YAAcqE,KAAKrE,UAAUN,OAErC,OADA2E,KAAKmtB,OAAOH,KAAK,6DAA8DhtB,KAAKrE,YAC7E,EAET,MAAM4wB,EAAM9vB,EAAQ8vB,KAAOvsB,KAAKklC,kBAAoBllC,KAAKrE,UAAU,GAC7D6wB,IAAcxsB,KAAKvD,SAAUuD,KAAKvD,QAAQ+vB,YAC1C4Z,EAAUpmC,KAAKrE,UAAUqE,KAAKrE,UAAUN,OAAS,GACvD,GAA0B,WAAtBkxB,EAAIrwB,cAA4B,OAAO,EAC3C,MAAMmqC,EAAiB,CAAChY,EAAGiM,KACzB,MAAMgM,EAAYtmC,KAAK+xB,SAASqE,iBAAiBryB,MAAM,GAAGsqB,KAAKiM,KAC/D,OAAsB,IAAfgM,GAAkC,IAAdA,CAAe,EAE5C,GAAI7pC,EAAQ8pC,SAAU,CACpB,MAAMC,EAAY/pC,EAAQ8pC,SAASvmC,KAAMqmC,GACzC,QAAkBrkC,IAAdwkC,EAAyB,OAAOA,CACtC,CACA,QAAIxmC,KAAK+wB,kBAAkBxE,EAAKR,OAC3B/rB,KAAK+xB,SAASqE,iBAAiBuL,WAAW3hC,KAAKvD,QAAQ0vB,WAAcnsB,KAAKvD,QAAQmnC,8BACnFyC,EAAe9Z,EAAKR,IAASS,IAAe6Z,EAAeD,EAASra,IAE1E,CACA,cAAA0a,CAAe1a,EAAI3P,GACjB,MAAM0oB,EAAWprB,IACjB,OAAK1Z,KAAKvD,QAAQsvB,IAIA,iBAAPA,IAAiBA,EAAK,CAACA,IAClCA,EAAGza,SAAQgpB,IACLt6B,KAAKvD,QAAQsvB,GAAG1jB,QAAQiyB,GAAK,GAAGt6B,KAAKvD,QAAQsvB,GAAG7jB,KAAKoyB,EAAE,IAE7Dt6B,KAAK4kB,eAAc5T,IACjB8zB,EAASl9B,UACLwU,GAAUA,EAASpL,EAAI,IAEtB8zB,IAXD1oB,GAAUA,IACPzU,QAAQC,UAWnB,CACA,aAAA8+B,CAAc/Q,EAAMvZ,GAClB,MAAM0oB,EAAWprB,IACG,iBAATic,IAAmBA,EAAO,CAACA,IACtC,MAAMgR,EAAY3mC,KAAKvD,QAAQknC,SAAW,GACpCiD,EAAUjR,EAAK/4B,QAAO2vB,GAAOoa,EAAUt+B,QAAQkkB,GAAO,IAC5D,OAAKqa,EAAQvrC,QAIb2E,KAAKvD,QAAQknC,QAAUgD,EAAUrrC,OAAOsrC,GACxC5mC,KAAK4kB,eAAc5T,IACjB8zB,EAASl9B,UACLwU,GAAUA,EAASpL,EAAI,IAEtB8zB,IARD1oB,GAAUA,IACPzU,QAAQC,UAQnB,CACA,GAAAi/B,CAAIta,GAEF,GADKA,IAAKA,EAAMvsB,KAAKklC,mBAAqBllC,KAAKrE,WAAaqE,KAAKrE,UAAUN,OAAS,EAAI2E,KAAKrE,UAAU,GAAKqE,KAAKpE,YAC5G2wB,EAAK,MAAO,MACjB,MACMsJ,EAAgB71B,KAAK+xB,UAAY/xB,KAAK+xB,SAAS8D,eAAiB,IAAIiD,EAAaz6B,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,OAEnagK,QAAQwtB,EAAcqD,wBAAwB3M,KAAS,GAAKA,EAAIrwB,cAAcmM,QAAQ,SAAW,EAAI,MAAQ,KAC9H,CACA,qBAAOgkB,GAGL,OAAO,IAAI4X,EAFGtkC,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACpEA,UAAUtE,OAAS,EAAIsE,UAAU,QAAKqC,EAEvD,CACA,aAAA8kC,GACE,IAAIrqC,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Eyc,EAAWzc,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAKqkC,EACnF,MAAM+C,EAAoBtqC,EAAQsqC,kBAC9BA,UAA0BtqC,EAAQsqC,kBACtC,MAAMC,EAAgB,IACjBhnC,KAAKvD,WACLA,EAED8nC,SAAS,GAGPxW,EAAQ,IAAIkW,EAAK+C,QACDhlC,IAAlBvF,EAAQ2wB,YAA0CprB,IAAnBvF,EAAQgtB,SACzCsE,EAAMZ,OAASY,EAAMZ,OAAOY,MAAMtxB,IA4BpC,MA1BsB,CAAC,QAAS,WAAY,YAC9B6U,SAAQ0F,IACpB+W,EAAM/W,GAAKhX,KAAKgX,EAAE,IAEpB+W,EAAMgE,SAAW,IACZ/xB,KAAK+xB,UAEVhE,EAAMgE,SAAS+F,MAAQ,CACrBC,mBAAoBhK,EAAMgK,mBAAmBv3B,KAAKutB,IAEhDgZ,IACFhZ,EAAM6T,MAAQ,IAAI1R,EAAclwB,KAAK4hC,MAAMzzB,KAAM64B,GACjDjZ,EAAMgE,SAAS4G,cAAgB5K,EAAM6T,OAEvC7T,EAAM2D,WAAa,IAAII,EAAW/D,EAAMgE,SAAUiV,GAClDjZ,EAAM2D,WAAW3pB,GAAG,KAAK,SAAUga,GACjC,IAAK,IAAI2L,EAAQ/tB,UAAUtE,OAAQuE,EAAO,IAAIC,MAAM6tB,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG/tB,EAAK+tB,EAAQ,GAAKhuB,UAAUguB,GAE9BI,EAAMzlB,KAAKyZ,KAAUniB,EACvB,IACAmuB,EAAMzB,KAAK0a,EAAe5qB,GAC1B2R,EAAM2D,WAAWj1B,QAAUuqC,EAC3BjZ,EAAM2D,WAAW0E,iBAAiBrE,SAAS+F,MAAQ,CACjDC,mBAAoBhK,EAAMgK,mBAAmBv3B,KAAKutB,IAE7CA,CACT,CACA,MAAAsD,GACE,MAAO,CACL50B,QAASuD,KAAKvD,QACdmlC,MAAO5hC,KAAK4hC,MACZhmC,SAAUoE,KAAKpE,SACfD,UAAWqE,KAAKrE,UAChBupC,iBAAkBllC,KAAKklC,iBAE3B,EAEF,MAAMp5B,EAAWm4B,EAAK5X,iBACtBvgB,EAASugB,eAAiB4X,EAAK5X,eAE/B3lB,EAAOpK,QAAUwP,iCCnqEjBpF,EAAOpK,QA5BS,SAAS2qC,EAAWhK,EAAQpxB,EAAGyY,EAAGqO,EAAGuU,EAAG5jC,EAAGs7B,GAOzD,IAAKqI,EAAW,CACd,IAAI/wB,EACJ,QAAelU,IAAXi7B,EACF/mB,EAAQ,IAAI3I,MACV,qIAGG,CACL,IAAI3N,EAAO,CAACiM,EAAGyY,EAAGqO,EAAGuU,EAAG5jC,EAAGs7B,GACvBuI,EAAW,GACfjxB,EAAQ,IAAI3I,MACV0vB,EAAO9gC,QAAQ,OAAO,WAAa,OAAOyD,EAAKunC,IAAa,MAExDn4B,KAAO,qBACf,CAGA,MADAkH,EAAMkxB,YAAc,EACdlxB,CACR,CACF,qCC7CA,SAAS8tB,IAEL,IADA,IAAIpkC,EAAO,GACF4kB,EAAK,EAAGA,EAAK7kB,UAAUtE,OAAQmpB,IACpC5kB,EAAK4kB,GAAM7kB,UAAU6kB,EAE7B,CACA,SAAS6iB,IACL,MAAuB,oBAAZnoC,QACA,IAAIA,QAUR,CACHwb,IAAKspB,EACLlvB,OAAQkvB,EACR3lC,IAAK2lC,EACLllC,IAAKklC,EACL5lC,IAAK,SAAU0wB,GACX,OAAO,CACX,EAZR,yDAgBA,IAAIwY,EAAMlrC,OAAOsC,UAAUC,eACvBP,EAAM,SAAUL,EAAKsxB,GACrB,OAAOiY,EAAI1oC,KAAKb,EAAKsxB,EACzB,EAEA,SAASkY,EAAOpsC,EAAQg0B,GACpB,IAAK,IAAIE,KAAQF,EACT/wB,EAAI+wB,EAAQE,KACZl0B,EAAOk0B,GAAQF,EAAOE,IAG9B,OAAOl0B,CACX,CACA,IAAIqsC,EAAmB,wBACnBC,EAAoB,wBACpBC,EAA+B,gBAC/BC,EAAsB,yCACtBC,EAAwC,2BAC5C,SAASC,EAAcC,EAASC,EAA4CtrC,GAGxE,IAAIurC,EAAmB,EACnBrrC,EAAQmrC,EAAQ,GAAGnrC,MAAMgrC,GACzBhrC,IACAqrC,EAAmBrrC,EAAM,GAAGtB,QAEhC,IACI4sC,EAAgB,IAAIpV,OADT,uBAAyBmV,EAAmB,IAClB,KACrCD,IACAD,EAAUA,EAAQvsC,MAAM,IAE5B,IAAI2sC,EAAUzrC,EAAQyrC,QAASC,EAAqB1rC,EAAQ0rC,mBAAoBC,EAAsB3rC,EAAQ2rC,oBAC1GC,EAAuC,iBAAZH,EAC3B7Z,EAAIyZ,EAAQzsC,OAkBhB,OAjBuBysC,EAAQzgC,KAAI,SAAU+pB,EAAG7M,GAe5C,OAbA6M,EAAIA,EAAEj1B,QAAQ8rC,EAAe,MAEnB,IAAN1jB,GAAW4jB,IACX/W,EAAIA,EAAEj1B,QAAQqrC,EAAkB,KAGhCjjB,IAAM8J,EAAI,GAAK+Z,IACfhX,EAAIA,EAAEj1B,QAAQsrC,EAAmB,KAGjCY,IACAjX,EAAIA,EAAEj1B,QAAQ,eAAe,SAAUmsC,GAAK,OAAOJ,CAAS,KAEzD9W,CACX,GAEJ,CAqEA,IAAImX,EAjDJ,SAASlc,EAAe5vB,GAEpB,IAAI+rC,EAAuBnB,IAKvBoB,EAAkCpB,IAmClCqB,EAAcnB,GAlClB,SAASoB,EAAQC,GAEb,IADA,IAlBwBxX,EAkBpBva,EAAS,GACJ2N,EAAK,EAAGA,EAAK7kB,UAAUtE,OAAQmpB,IACpC3N,EAAO2N,EAAK,GAAK7kB,UAAU6kB,GAG/B,GAtBGpmB,EADqBgzB,EAuBGwX,EAtBjB,QAAUxqC,EAAIgzB,EAAG,UAsBmB,CAC1C,IAAI0W,EAAUc,EAEVb,GAA8ClxB,EAAO,KAAO8xB,GAAW9xB,EAAO,KAAO0xB,IACrFX,EAAsCruB,KAAKuuB,EAAQ,KACnDJ,EAA6BnuB,KAAKuuB,EAAQ,IAE1C5pC,EAAQ6pC,EACNU,EACAD,EACFK,EAAgB3qC,EAAMG,IAAIypC,GAM9B,GALKe,IACDA,EAAgBhB,EAAcC,EAASC,EAA4CtrC,GACnFyB,EAAMY,IAAIgpC,EAASe,IAGD,IAAlBhyB,EAAOxb,OACP,OAAOwtC,EAAc,GAGzB,IAAIC,EArDhB,SAAgChB,EAASjxB,GAErC,IADA,IAAIgtB,EAAM,GACDtf,EAAI,EAAG8J,EAAIyZ,EAAQzsC,OAAQkpB,EAAI8J,EAAG9J,IACvCsf,GAAOiE,EAAQvjB,GACXA,EAAI8J,EAAI,IACRwV,GAAOhtB,EAAO0N,IAGtB,OAAOsf,CACX,CA4C2BkF,CAAuBF,EAAed,EAA6ClxB,EAAOtb,MAAM,GAAKsb,GACpH,OAAOiyB,CACX,CAGI,OAAOzc,EAAekb,EAAOA,EAAO,CAAC,EAAG9qC,GAAUmsC,GAAoB,CAAC,GAE/E,GACkC,CAC9B1tC,OAAQ,SAAUsuB,GACd,OAAOqe,EAAc,CAACre,IAAM,EAAO/sB,GAAS,EAChD,IAEJ,OAAOisC,CACX,CACqBrc,CAAe,CAChC8b,oBAAoB,EACpBC,qBAAqB,IAIzB,YAMI,IACI1hC,EAAOpK,QAAUisC,EACjBnsC,OAAOC,eAAeksC,EAAgB,aAAc,CAAEhsC,OAAO,IAC7DgsC,EAAetqC,QAAUsqC,EACzBA,EAAeI,QAAUJ,CAC7B,CACA,MAAOjlC,GAAK,yCChKCwrB,EAAE,EAAQ,MAAST,EAAE,CAAC2a,QAAO,GAAI1O,EAAE,IAAIvxB,IAAImR,EAAE+uB,OAAOC,IAAI,iBAAiBvG,EAAEsG,OAAOC,IAAI,cAActW,EAAEqW,OAAOC,IAAI,uBAAuBlX,EAAElD,EAAEqa,mDAAmDC,gBAAkF,SAAShY,EAAEvlB,EAAEyY,EAAEqO,GAAG3yB,KAAKqpC,QAAQx9B,EAAE7L,KAAKspC,OAAOhlB,EAAEtkB,KAAKupC,UAAU5W,CAAC,CACjW,SAAS6W,EAAE39B,GAAG,OAAOA,EAAEw9B,SAAS,KAAK,EAAE,OAAOx9B,EAAEy9B,OAAO,KAAK,EAAE,IAAIhlB,EAAElhB,KAAKC,MAAMwI,EAAEy9B,OAAOz9B,EAAE09B,UAAUE,WAAuB,OAAZ59B,EAAEw9B,QAAQ,EAASx9B,EAAEy9B,OAAOhlB,EAAE,KAAK,EAAa,IAAI,IAAIqO,GAAnBrO,EAAEzY,EAAEy9B,QAAmBI,OAAOxC,EAAE,EAAEA,EAAEvU,EAAEt3B,OAAO6rC,IAAI,CAAC,IAAI5jC,EAAEg3B,EAAEj8B,IAAIs0B,EAAEuU,IAAI,GAAG,OAAO5jC,EAAE,MAAMA,CAAE,CAAyG,OAAxGqvB,EAAEgX,EAAoBrlB,EAAEzX,IAAIyX,EAAE,MAAMA,EAAEtV,KAAK2jB,EAAE,KAAKrO,EAAEtV,KAAK2jB,EAAEj1B,WAAWi1B,EAAE10B,QAAQ00B,EAAEA,EAAErO,EAAEtV,MAAMnD,EAAEw9B,QAAQ,EAASx9B,EAAEy9B,OAAOhlB,EAAE,KAAK,EAAE,MAAMzY,EAAE,QAAQ,MAAMA,EAAEy9B,OAAQ,CAAC,SAASM,IAAoB,OAAOJ,EAAjBK,EAAE7pC,KAAK,GAAc,CAAC,SAAS8pC,EAAEj+B,EAAEyY,GAAG,OAAO,IAAI8M,EAAE,EAAE9M,EAAEzY,EAAE,CAC3d,SAASk+B,EAAEl+B,GAAG,GAAG,OAAOA,EAAE,IAAI,IAAIyY,EAAE,EAAEA,EAAEzY,EAAExQ,OAAOipB,KAAI,EAAGzY,EAAEyY,KAAK,CAAC,SAAS0lB,EAAEn+B,EAAEyY,GAAG,GAAG,IAAIzY,EAAEw9B,QAAQ,CAAC,IAAI1W,EAAE9mB,EAAEy9B,OAAOz9B,EAAEw9B,QAAQ,EAAEx9B,EAAEy9B,OAAOhlB,EAAEylB,EAAEpX,EAAE,CAAC,CAAC,SAASsX,EAAEp+B,EAAEyY,GAAGzY,EAAEq+B,QAAQ54B,SAAQ,SAASzF,GAAGm+B,EAAEn+B,EAAEyY,EAAE,GAAE,CAAC,SAASulB,EAAEh+B,EAAEyY,GAAG,IAAIqO,EAAE9mB,EAAEq+B,QAAQhD,EAAEvU,EAAEt0B,IAAIimB,GAAqC,OAAlC4iB,IAAIA,EAAE,IAAI9V,EAAE,EAAE,KAAKvlB,GAAG8mB,EAAE7zB,IAAIwlB,EAAE4iB,IAAWA,CAAC,CAC3B,SAASiD,EAAEt+B,GAAGo+B,EAAEp+B,EAAE0B,MAAM,sBAAsB,CAC7S,SAAS68B,EAAEv+B,EAAEyY,GAAG,GAAG,KAAKA,EAAE,CAAC,IAAIqO,EAAErO,EAAE,GAAG4iB,EAAE5iB,EAAEjc,QAAQ,IAAI,GAAG/E,EAAE89B,SAAS9c,EAAEnjB,UAAU,EAAE+lC,GAAG,IAAuB,OAAnBA,EAAE5iB,EAAEnjB,UAAU+lC,EAAE,GAAUvU,GAAG,IAAK,KAAiBA,GAAbrO,EAAEzY,EAAEq+B,SAAa7rC,IAAIiF,IAAI,IAAIqvB,EAAE0W,UAAUx9B,EAAE8mB,EAAE2W,OAAO3W,EAAE0W,QAAQ,EAAE1W,EAAE2W,OAAOpC,EAAE6C,EAAEl+B,IAAIyY,EAAExlB,IAAIwE,EAAE,IAAI8tB,EAAE,EAAE8V,EAAEr7B,IAAI,MAAM,IAAK,IAAgB8mB,GAAZrO,EAAEzY,EAAEq+B,SAAY7rC,IAAIiF,GAAG4jC,EAAE9jC,KAAKC,MAAM6jC,EAAEr7B,EAAE49B,WAAW,IAAI7K,EAAE/yB,EAAEw+B,eAAqCzL,GAAtBsI,EAAEtI,EAAEA,EAAEsI,EAAEr6B,IAAIq6B,EAAEl4B,MAAMk4B,GAAMwC,OAAO,IAAI,IAAIY,EAAE,EAAEA,EAAE1L,EAAEvjC,OAAOivC,IAAI,CAAC,IAAIC,EAAE3L,EAAE0L,GAAG,QAAG,IAAShQ,EAAEj8B,IAAIksC,GAAG,CAAC,IAAIC,EAAE,IAAuBD,GAAGvzB,EAAEsjB,EAAEx7B,IAAI0B,KAAK85B,EAAEiQ,EAAE,MAAME,EAAEnQ,EAAEx7B,IAAI0B,KAAK85B,EAAEiQ,GAAGC,EAAE9iC,KAAKsP,EAAEyzB,GAAGnQ,EAAEx7B,IAAIyrC,EACxfC,EAAE,CAAC,CAAC7X,EAAE,IAAIA,EAAE0W,UAAUx9B,EAAE8mB,EAAE2W,OAAO3W,EAAE0W,QAAQ,EAAE1W,EAAE2W,OAAOpC,EAAE6C,EAAEl+B,IAAIyY,EAAExlB,IAAIwE,EAAE,IAAI8tB,EAAE,EAAE8V,EAAEr7B,IAAI,MAAM,IAAK,IAAIA,EAAEq+B,QAAQprC,IAAIwE,EAAEwmC,EAAEj+B,EAL2G,SAAWA,GAA2C,OAAxCmmB,EAAEnmB,KAAKmmB,EAAEnmB,GAAGijB,EAAEnG,oBAAoB9c,EAAE+mB,IAAWZ,EAAEnmB,EAAE,CAK1K6+B,CAAExD,GAAG3kC,WAAW,MAAM,IAAK,IAAIowB,EAAEvvB,KAAKC,MAAM6jC,GAAGr7B,EAAEq+B,QAAQprC,IAAIwE,EAAEwmC,EAAEj+B,EAAEo9B,OAAOC,IAAIvW,KAAK,MAAM,IAAK,IAAIrO,EAAElhB,KAAKC,MAAM6jC,IAAGvU,EAAEplB,MAAM+W,EAAE7U,UAAWD,MAAM8U,EAAE9U,OAAmB03B,GAAb5iB,EAAEzY,EAAEq+B,SAAa7rC,IAAIiF,IAAI0mC,EAAE9C,EAAEvU,GAAGrO,EAAExlB,IAAIwE,EAAE,IAAI8tB,EAAE,EAAEuB,EAAE9mB,IAAI,MAAM,QAAQ,MAAM0B,MAAM,8EAA+E,CAAC,CAC5a,SAASo9B,EAAE9+B,GAAG,OAAO,SAASyY,EAAEqO,GAAG,MAAM,iBAAkBA,EAH3D,SAAW9mB,EAAEyY,EAAEqO,GAAG,OAAOA,EAAE,IAAI,IAAK,IAAI,MAAG,MAAMA,EAASzY,EAAK,MAAMyY,EAAE,IAAI,MAAMA,EAAE,GAAUA,EAAExxB,UAAU,GAAiDqoC,EAAhB39B,EAAEg+B,EAAEh+B,EAAhCu1B,SAASzO,EAAExxB,UAAU,GAAG,MAAyB,IAAK,IAAI,OAAqC0K,EAAEg+B,EAAEh+B,EAAhCu1B,SAASzO,EAAExxB,UAAU,GAAG,KAAa,CAACypC,SAASjI,EAAEkI,SAASh/B,EAAEi/B,MAAMtB,GAAG,OAAO7W,CAAC,CAGjMoY,CAAEl/B,EAAE7L,EAAK2yB,GAAG,iBAAkBA,GAAG,OAAOA,EAAKA,EAAE,KAAKzY,EAAE,CAAC0wB,SAAS1wB,EAAElS,KAAK2qB,EAAE,GAAGl0B,IAAIk0B,EAAE,GAAGzuB,IAAI,KAAKtD,MAAM+xB,EAAE,GAAGqY,OAAO,MAAMrY,EAAKA,CAAC,CAAC,CAAC,SAASsY,EAAEp/B,GAAG,IAAIyY,EAAE,IAAI4mB,YAAiH,OAA3Fr/B,EAAE,CAACw+B,eAAex+B,EAAEq+B,QAA5B,IAAInhC,IAAkC2K,SAASk2B,EAAEuB,YAAY,GAAGC,eAAe9mB,IAAKmlB,UAAUkB,EAAE9+B,GAAUA,CAAC,CAC5U,SAASw/B,EAAEx/B,EAAEyY,GAAqR,SAAS4iB,EAAE5iB,GAAG2lB,EAAEp+B,EAAEyY,EAAE,CAAC,IAAIhhB,EAAEghB,EAAEgnB,YAAYhoC,EAAExB,OAAO4F,MAApU,SAASirB,EAAErO,GAAG,IAAIgmB,EAAEhmB,EAAE/nB,MAAM,IAAG+nB,EAAEwe,KAAc,CAACxe,EAAEgmB,EAAEA,EAAEz+B,EAAEu/B,eAAe,IAAI,IAAIb,EAAEjmB,EAAEjc,QAAQ,KAAK,EAAEkiC,GAAG,CAAC,IAAI3L,EAAE/yB,EAAEs/B,YAAgBn0B,EAAEsN,EAAEinB,SAAS,EAAEhB,GAAGvzB,EAAEszB,EAAEkB,OAAOx0B,GAAGozB,EAAEv+B,EAAE+yB,EAAE5nB,GAAGnL,EAAEs/B,YAAY,GAAqBZ,GAAlBjmB,EAAEA,EAAEinB,SAAShB,EAAE,IAAOliC,QAAQ,GAAG,CAA8B,OAA7BwD,EAAEs/B,aAAab,EAAEkB,OAAOlnB,EAAE+J,GAAU/qB,EAAExB,OAAO4F,KAAKirB,EAAEuU,EAAE,CAA1OiD,EAAEt+B,EAAyO,GAA0Dq7B,EAAE,CAPK9V,EAAE1yB,UAAUgJ,KAAK,SAASmE,GAAG,IAAI7L,KAAKqpC,SAAS,OAAOrpC,KAAKspC,SAAStpC,KAAKspC,OAAO,IAAItpC,KAAKspC,OAAOphC,KAAK2D,IAAIA,GAAG,EAQ9cvP,EAAQoc,yBAAyB,SAAS7M,EAAEyY,GAA+C,OAAP+mB,EAArC/mB,EAAE2mB,EAAE3mB,GAAGA,EAAEmnB,UAAUnnB,EAAEmnB,UAAU,MAAU5/B,GAAUyY,CAAC,oCCdjG5d,EAAOpK,QAAU,EAAjB,wBCEFoK,EAAOpK,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,qBCbToK,EAAOpK,QANP,SAAgCyT,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAE3B,OAAOD,CACT,EACyCrJ,EAAOpK,QAAQoB,YAAa,EAAMgJ,EAAOpK,QAAiB,QAAIoK,EAAOpK,yBCN9G,SAASovC,IAYP,OAXAhlC,EAAOpK,QAAUovC,EAAWtvC,OAAO6R,OAAS7R,OAAO6R,OAAOzN,OAAS,SAAUrF,GAC3E,IAAK,IAAIopB,EAAI,EAAGA,EAAI5kB,UAAUtE,OAAQkpB,IAAK,CACzC,IAAI4K,EAASxvB,UAAU4kB,GACvB,IAAK,IAAI9lB,KAAO0wB,EACV/yB,OAAOsC,UAAUC,eAAeC,KAAKuwB,EAAQ1wB,KAC/CtD,EAAOsD,GAAO0wB,EAAO1wB,GAG3B,CACA,OAAOtD,CACT,EAAGuL,EAAOpK,QAAQoB,YAAa,EAAMgJ,EAAOpK,QAAiB,QAAIoK,EAAOpK,QACjEovC,EAAS3rC,MAAMC,KAAML,UAC9B,CACA+G,EAAOpK,QAAUovC,EAAUhlC,EAAOpK,QAAQoB,YAAa,EAAMgJ,EAAOpK,QAAiB,QAAIoK,EAAOpK,8BCdhG,IAAI2O,EAAiB,EAAQ,MAM7BvE,EAAOpK,QALP,SAAwBqvC,EAAUC,GAChCD,EAASjtC,UAAYtC,OAAO0L,OAAO8jC,EAAWltC,WAC9CitC,EAASjtC,UAAU4N,YAAcq/B,EACjC1gC,EAAe0gC,EAAUC,EAC3B,EACiCllC,EAAOpK,QAAQoB,YAAa,EAAMgJ,EAAOpK,QAAiB,QAAIoK,EAAOpK,0BCDtGoK,EAAOpK,QALP,SAAgCyB,GAC9B,OAAOA,GAAOA,EAAIL,WAAaK,EAAM,CACnC,QAAWA,EAEf,EACyC2I,EAAOpK,QAAQoB,YAAa,EAAMgJ,EAAOpK,QAAiB,QAAIoK,EAAOpK,0BCL9G,SAASuvC,EAAgB7gC,EAAGkP,GAK1B,OAJAxT,EAAOpK,QAAUuvC,EAAkBzvC,OAAO6O,eAAiB7O,OAAO6O,eAAezK,OAAS,SAAyBwK,EAAGkP,GAEpH,OADAlP,EAAEG,UAAY+O,EACPlP,CACT,EAAGtE,EAAOpK,QAAQoB,YAAa,EAAMgJ,EAAOpK,QAAiB,QAAIoK,EAAOpK,QACjEuvC,EAAgB7gC,EAAGkP,EAC5B,CACAxT,EAAOpK,QAAUuvC,EAAiBnlC,EAAOpK,QAAQoB,YAAa,EAAMgJ,EAAOpK,QAAiB,QAAIoK,EAAOpK,0BCAvGoK,EAAOpK,QAPP,SAAqCwrC,EAASgE,GAK5C,OAJKA,IACHA,EAAMhE,EAAQvsC,MAAM,IAEtBusC,EAAQgE,IAAMA,EACPhE,CACT,EAC8CphC,EAAOpK,QAAQoB,YAAa,EAAMgJ,EAAOpK,QAAiB,QAAIoK,EAAOpK,yCCLnHF,OAAOC,eAAeC,EAAS,aAA/B,CAA+CC,OAAO,IA6CtDD,EAAQyvC,YAVY,iBAWpBzvC,EAAQoJ,iBAHkBsmC,GAvCJ,EAACA,EAAQC,KAC3B,MAAM,QAAEpnC,EAAU,MAAOqnC,GAAmBF,GAAU,CAAC,EACjDG,EAAY/oC,KAAKI,UAAU0oC,GAAgB,CAACpd,EAAGsC,KAChC,mBAANA,IACPA,EAAI9B,OAAO8B,IACLn2B,WAAW6zB,EAAI,OACjBsC,EAAI,YAAcA,GAGnBA,KAEX,MAAO,CACH,uBACAh1B,OAAOqR,KAAKy+B,GAAgB7wC,OAAS,EAC/B,iCAAiC8wC,MACjC,mBACN,kBACAtnC,EAAQxJ,OAAS,EAAI,WAAW+H,KAAKI,UAAUqB,MAAc,GAC7D,oCACAonC,GACF18B,KAAK,GAAG,EAmBuB68B,CAAcJ,EAzC1B,ogDCHV,SAAS57B,EAAeu7B,EAAUC,GAC/CD,EAASjtC,UAAYtC,OAAO0L,OAAO8jC,EAAWltC,WAC9CitC,EAASjtC,UAAU4N,YAAcq/B,GACjC,OAAeA,EAAUC,EAC3B,qCCLe,SAASC,EAAgB7gC,EAAGkP,GAKzC,OAJA2xB,EAAkBzvC,OAAO6O,eAAiB7O,OAAO6O,eAAezK,OAAS,SAAyBwK,EAAGkP,GAEnG,OADAlP,EAAEG,UAAY+O,EACPlP,CACT,EACO6gC,EAAgB7gC,EAAGkP,EAC5B,oECNe,SAASmyB,EAAkBC,EAAKC,IAClC,MAAPA,GAAeA,EAAMD,EAAIjxC,UAAQkxC,EAAMD,EAAIjxC,QAC/C,IAAK,IAAIkpB,EAAI,EAAGioB,EAAO,IAAI3sC,MAAM0sC,GAAMhoB,EAAIgoB,EAAKhoB,IAAKioB,EAAKjoB,GAAK+nB,EAAI/nB,GACnE,OAAOioB,CACT,CCAe,SAASp1B,EAAmBk1B,GACzC,OCJa,SAA4BA,GACzC,GAAIzsC,MAAM0zB,QAAQ+Y,GAAM,OAAO,EAAiBA,EAClD,CDES,CAAkBA,IELZ,SAA0BG,GACvC,GAAsB,oBAAXxD,QAAmD,MAAzBwD,EAAKxD,OAAOyD,WAA2C,MAAtBD,EAAK,cAAuB,OAAO5sC,MAAM+W,KAAK61B,EACtH,CFGmC,CAAgBH,IGJpC,SAAqCthC,EAAG2hC,GACrD,GAAK3hC,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAO,EAAiBA,EAAG2hC,GACtD,IAAIrS,EAAIl+B,OAAOsC,UAAUyN,SAASvN,KAAKoM,GAAGzP,MAAM,GAAI,GAEpD,MADU,WAAN++B,GAAkBtvB,EAAEsB,cAAaguB,EAAItvB,EAAEsB,YAAY0C,MAC7C,QAANsrB,GAAqB,QAANA,EAAoBz6B,MAAM+W,KAAK5L,GACxC,cAANsvB,GAAqB,2CAA2C/gB,KAAK+gB,GAAW,EAAiBtvB,EAAG2hC,QAAxG,CALc,CAMhB,CHH2D,CAA2BL,IILvE,WACb,MAAM,IAAIlgC,UAAU,uIACtB,CJG8F,EAC9F,ohCKNgG,SAASpB,IAAI,OAAOA,EAAE5O,OAAO6R,OAAO7R,OAAO6R,OAAOzN,OAAO,SAAS8C,GAAG,IAAI,IAAI0uB,EAAE,EAAEA,EAAEryB,UAAUtE,OAAO22B,IAAI,CAAC,IAAIY,EAAEjzB,UAAUqyB,GAAG,IAAI,IAAIsI,KAAK1H,EAAEx2B,OAAOsC,UAAUC,eAAeC,KAAKg0B,EAAE0H,KAAKh3B,EAAEg3B,GAAG1H,EAAE0H,GAAG,CAAC,OAAOh3B,CAAC,EAAE0H,EAAEjL,MAAMC,KAAKL,UAAU,CAAC,SAASkM,EAAEvI,EAAE0uB,GAAG,GAAG,MAAM1uB,EAAE,MAAM,CAAC,EAAE,IAAIsvB,EAAE0H,EAAEtvB,EAAE,CAAC,EAAEa,EAAEzP,OAAOqR,KAAKnK,GAAG,IAAIg3B,EAAE,EAAEA,EAAEzuB,EAAExQ,OAAOi/B,IAAItI,EAAE3pB,QAAQuqB,EAAE/mB,EAAEyuB,KAAK,IAAItvB,EAAE4nB,GAAGtvB,EAAEsvB,IAAI,OAAO5nB,CAAC,CAAC,MAAMwH,EAAElP,IAAI,MAAMqF,OAAOqpB,EAAEjxB,KAAK6xB,EAAEjpB,KAAK2wB,EAAEsS,OAAO5hC,EAAEkd,SAASrc,EAAEghC,KAAKr6B,EAAE2V,SAAS5D,EAAEuoB,KAAKna,GAAGrvB,EAAE9B,SAAS,IAAImC,SAAS0qB,GAAG/qB,EAAE9B,SAAS,OAAO6sB,GAAGiM,GAAGoQ,IAAIrc,EAAE,IAAI3kB,IAAI4wB,GAAG32B,UAAU,CAACA,SAASyiB,UAAUrkB,UAAUssB,IAAI1lB,OAAOqpB,EAAEjxB,KAAK6xB,EAAEjpB,KAAK2wB,EAAEsS,OAAO5hC,EAAEkd,SAASrc,EAAEghC,KAAKr6B,EAAE2V,SAAS5D,EAAEuoB,KAAKna,EAAE5uB,MAAMT,EAAEof,QAAQ3e,MAAMtF,IAAI6E,EAAEof,QAAQ3e,OAAOT,EAAEof,QAAQ3e,MAAMtF,KAAK,UAAS,EAAG8lB,EAAE,CAACjhB,EAAE0uB,KAAK,IAAIY,EAAE,GAAG0H,EAAE9nB,EAAElP,GAAGuI,GAAE,EAAG0Y,EAAE,OAAO,MAAM,CAAC,YAAI/iB,GAAW,OAAO84B,CAAC,EAAE,iBAAIyS,GAAgB,OAAOlhC,CAAC,EAAE,qBAAAmhC,GAAwBnhC,GAAE,EAAG0Y,GAAG,EAAE,MAAAY,CAAO6M,GAAGY,EAAE1qB,KAAK8pB,GAAG,MAAMhnB,EAAE,KAAKsvB,EAAE9nB,EAAElP,GAAG0uB,EAAE,CAACxwB,SAAS84B,EAAElV,OAAO,OAAM,EAAG,OAAO9hB,EAAE1B,iBAAiB,WAAWoJ,GAAG,KAAK1H,EAAEpB,oBAAoB,WAAW8I,GAAG4nB,EAAEA,EAAEh2B,QAAO0G,GAAGA,IAAI0uB,GAAC,CAAE,EAAE,QAAA5P,CAAS4P,GAAGjuB,MAAM4uB,EAAEx2B,QAAQuuC,GAAE,GAAI,CAAC,GAAG,GAAG,iBAAiB1Y,EAAE1uB,EAAEof,QAAQuqB,GAAGjb,OAAO,CAACW,EAAE3nB,EAAE,CAAC,EAAE2nB,EAAE,CAACl0B,IAAImZ,KAAKs1B,MAAM,KAAK,IAAIrhC,GAAG6+B,EAAEpnC,EAAEof,QAAQC,aAAagQ,EAAE,KAAKX,GAAG1uB,EAAEof,QAAQyqB,UAAUxa,EAAE,KAAKX,EAAE,CAAC,MAAMY,GAAGtvB,EAAE9B,SAASkpC,EAAE,UAAU,UAAU1Y,EAAE,CAAC,CAACsI,EAAE9nB,EAAElP,GAAGuI,GAAE,EAAG,MAAMwiB,EAAE,IAAI1mB,SAAQrE,GAAGihB,EAAEjhB,IAAG,OAAOsvB,EAAEthB,SAAQhO,GAAGA,EAAE,CAAC9B,SAAS84B,EAAElV,OAAO,WAAUiJ,CAAC,EAAC,EAAGsE,EAAE,CAACrvB,EAAE,OAAO,MAAM0uB,EAAE1uB,EAAE+E,QAAQ,KAAKuqB,EAAE,CAACjvB,SAASquB,GAAG,EAAE1uB,EAAE8pC,OAAO,EAAEpb,GAAG1uB,EAAEqF,OAAOqpB,GAAG,EAAE1uB,EAAE8pC,OAAOpb,GAAG,IAAI,IAAIsI,EAAE,EAAE,MAAMtvB,EAAE,CAAC4nB,GAAG/mB,EAAE,CAAC,MAAM,MAAM,CAAC,YAAIrK,GAAW,OAAOwJ,EAAEsvB,EAAE,EAAE,gBAAA14B,CAAiB0B,EAAE0uB,GAAG,EAAE,mBAAA9vB,CAAoBoB,EAAE0uB,GAAG,EAAEtP,QAAQ,CAAC,WAAIpT,GAAU,OAAOtE,CAAC,EAAE,SAAI+O,GAAQ,OAAOugB,CAAC,EAAE,SAAIv2B,GAAQ,OAAO8H,EAAEyuB,EAAE,EAAE,SAAA6S,CAAU7pC,EAAE0uB,EAAEY,GAAG,MAAMpgB,EAAE+R,EAAE,IAAIqO,EAAEhqB,MAAM,KAAK0xB,IAAItvB,EAAE9C,KAAK,CAACvE,SAAS6O,EAAE7J,OAAO4b,EAAElpB,OAAO,IAAIkpB,IAAIA,IAAI1Y,EAAE3D,KAAK5E,EAAE,EAAE,YAAAqf,CAAarf,EAAE0uB,EAAEY,GAAG,MAAMpgB,EAAE+R,EAAE,IAAIqO,EAAEhqB,MAAM,KAAKoC,EAAEsvB,GAAG,CAAC32B,SAAS6O,EAAE7J,OAAO4b,GAAG1Y,EAAEyuB,GAAGh3B,CAAC,EAAE,EAAA2pC,CAAG3pC,GAAG,MAAM0uB,EAAEsI,EAAEh3B,EAAE0uB,EAAE,GAAGA,EAAEnmB,EAAExQ,OAAO,IAAIi/B,EAAEtI,EAAE,GAAE,EAAG0Y,IAAI,oBAAoBjvC,SAASA,OAAOwF,WAAWxF,OAAOwF,SAASqB,eAAe+rB,EAAE9J,EAAEmmB,EAAEjvC,OAAOk3B,MAAMvQ,SAASlI,GAAGmU,EAAE,SAASic,EAAEhnC,EAAEsvB,GAAG,OAAO,EAAEjK,oBAAoB,EAAErlB,EAAEsvB,EAAE,QAAQhK,WAAWC,mBAAmBD,WAAWC,iBAAiB,CAAC,GAAGD,WAAWC,iBAAiBvlB,KAAKslB,WAAWC,iBAAiBvlB,GAAG,EAAEqlB,oBAAoBrlB,EAAEsvB,IAAIhK,WAAWC,iBAAiBvlB,IAApM,CAAyMA,EAAEsvB,GAAG,gBAAgBA,EAAE,CAAC,MAAM5b,EAAEszB,EAAE,OAAO,CAAC3kB,QAAQ,IAAIC,SAAS,MAAMshB,EAAEoD,EAAE,YAAY1L,EAAE,IAAI,aAAa5nB,GAAG6yB,EAAE,IAAI,aAAa3C,GAAG,SAAS6D,EAAEznC,GAAGtD,KAAKqtC,IAAI/pC,CAAC,CAAC,MAAMinC,EAAEjnC,GAAGA,aAAaynC,EAAE3Z,EAAE9tB,IAAI,MAAM,IAAIynC,EAAEznC,EAAC,EAAG,SAASghB,EAAE0N,GAAG,MAAM3P,GAAGuQ,EAAEz2B,QAAQm+B,GAAE,EAAGv2B,MAAMiH,EAAEsiC,QAAQzhC,EAAE8Z,QAAQnT,GAAGwf,EAAE,aAAY,KAAKrqB,QAAQC,UAAUF,MAAK,KAAK,MAAMpE,EAAEwrB,EAAE8D,EAAEpgB,GAAG0H,EAAEqzB,EAAEjqC,EAAE0uB,GAAG,CAAC71B,QAAQm+B,EAAEv2B,MAAMiH,GAAE,GAAE,GAAG,IAAI,MAAMuZ,EAAEuK,EAAE8D,EAAEpgB,GAAG,OAAO3G,GAAGulB,EAAEmc,EAAEhpB,EAAEyN,IAAI,IAAI,CAAC,MAAMwb,EAAExb,IAAI,MAAMY,EAAEiX,KAAKlkB,QAAQ2U,GAAGsE,IAAiB,OAAO,gBAAgBta,EAAEtZ,EAAE,CAAC,EAAE4nB,EAAE,CAACjN,QAAQ2U,GAAGtI,GAAE,EAAGwb,EAAE9qC,UAAU,CAACkU,KAAK,SAASyL,GAAG,SAASxf,YAAY,MAAMmnC,EAAE,CAAC1mC,EAAE0uB,IAAI1uB,EAAE8pC,OAAO,EAAEpb,EAAE32B,UAAU22B,EAAEwX,EAAE,CAAClmC,EAAE0uB,KAAK,IAAIY,EAAE5nB,EAAE,MAAMa,GAAGmmB,EAAEppB,MAAM,KAAK4J,EAAEi7B,EAAE5hC,GAAG0Y,EAAE,KAAK/R,EAAE,GAAGmgB,EAAE7C,EAAExsB,GAAG,IAAI,IAAIA,EAAE,EAAEuI,EAAE8mB,EAAEt3B,OAAOiI,EAAEuI,EAAEvI,IAAI,CAAC,IAAIuI,GAAE,EAAG,MAAM6+B,EAAE/X,EAAErvB,GAAGgH,MAAM,GAAGogC,EAAEzsC,QAAQ,CAAC+M,EAAE,CAACV,MAAMogC,EAAEjgC,OAAO,CAAC,EAAE4iC,IAAIrb,GAAG,QAAQ,CAAC,MAAM3D,EAAEof,EAAE/C,EAAEhiC,MAAMwR,EAAE,CAAC,EAAEowB,EAAE7N,KAAKiR,IAAIl7B,EAAEnX,OAAOgzB,EAAEhzB,QAAQ,IAAI2b,EAAE,EAAE,KAAKA,EAAEszB,EAAEtzB,IAAI,CAAC,MAAM1T,EAAE+qB,EAAErX,GAAGgb,EAAExf,EAAEwE,GAAG,GAAG22B,EAAErqC,GAAG,CAAC4W,EAAE5W,EAAE/H,MAAM,IAAI,KAAKiX,EAAEjX,MAAMyb,GAAG3P,IAAIiC,oBAAoBiG,KAAK,KAAK,KAAK,CAAC,QAAG,IAASyiB,EAAE,CAACnmB,GAAE,EAAG,KAAK,CAAC,MAAM+mB,EAAEgb,EAAE3O,KAAK37B,GAAG,GAAGsvB,IAAIrO,EAAE,CAAC,MAAMjhB,GAAG,IAAIuqC,EAAExlC,QAAQuqB,EAAE,IAAI,EAAEtvB,EAAE,6BAA6BsvB,EAAE,gEAAgE8X,EAAEhiC,UAAU,MAAMsC,EAAE1B,mBAAmB0oB,GAAG9X,EAAE0Y,EAAE,IAAI5nB,CAAC,MAAM,GAAG1H,IAAI0uB,EAAE,CAACnmB,GAAE,EAAG,KAAK,CAAC,CAAC,IAAIA,EAAE,CAAC+mB,EAAE,CAACtoB,MAAMogC,EAAEjgC,OAAOyP,EAAEmzB,IAAI,IAAI76B,EAAEjX,MAAM,EAAEyb,GAAGzH,KAAK,MAAM,KAAK,CAAC,CAAC,OAAOqjB,GAAG5nB,GAAG,MAAM4+B,EAAE,CAACtmC,EAAE0uB,IAAIwX,EAAE,CAAC,CAAC9gC,KAAKpF,IAAI0uB,GAAGlD,EAAE,CAACxrB,EAAE0uB,KAAK,GAAGgY,EAAE1mC,EAAE,KAAK,OAAOA,EAAE,MAAMsvB,EAAE0H,GAAGh3B,EAAEsF,MAAM,MAAMoC,GAAGgnB,EAAEppB,MAAM,KAAKiD,EAAE4hC,EAAE7a,GAAGpgB,EAAEi7B,EAAEziC,GAAG,GAAG,KAAKa,EAAE,GAAG,OAAOiiC,EAAE9iC,EAAEsvB,GAAG,IAAI0P,EAAEn+B,EAAE,GAAG,KAAK,CAAC,MAAMvI,EAAEkP,EAAElX,OAAOuQ,GAAG0D,KAAK,KAAK,OAAOu+B,GAAG,MAAM9iC,EAAE,GAAG,KAAK1H,EAAEg3B,EAAE,CAAC,MAAM/V,EAAE/R,EAAElX,OAAOuQ,GAAG8mB,EAAE,GAAG,IAAI,IAAIrvB,EAAE,EAAE0uB,EAAEzN,EAAElpB,OAAOiI,EAAE0uB,EAAE1uB,IAAI,CAAC,MAAM0uB,EAAEzN,EAAEjhB,GAAG,OAAO0uB,EAAEW,EAAEpS,MAAM,MAAMyR,GAAGW,EAAEzqB,KAAK8pB,EAAE,CAAC,OAAO8b,EAAE,IAAInb,EAAEpjB,KAAK,KAAK+qB,EAAC,EAAGiT,EAAE,CAACjqC,EAAE0uB,KAAK,MAAMY,EAAE0H,EAAE,IAAIh3B,EAAEsF,MAAM,KAAK,IAAIoC,EAAE,IAAIyiC,EAAE7a,GAAGvrB,KAAI/D,IAAI,MAAMsvB,EAAEgb,EAAE3O,KAAK37B,GAAG,OAAOsvB,EAAEZ,EAAEY,EAAE,IAAItvB,KAAIiM,KAAK,KAAK,MAAM/N,UAAUmH,OAAOkD,EAAE,IAAI,CAAC,GAAGmmB,EAAExf,EAAE3G,EAAEjD,MAAM,KAAK,IAAI,GAAG,OAAOoC,EAAE8iC,EAAE9iC,EAAEsvB,EAAE9nB,GAAGxH,GAAG+iC,EAAE,CAACzqC,EAAE0uB,KAAK,MAAMY,EAAEtvB,GAAGglC,EAAEhlC,GAAG,OAAOmqC,EAAEnqC,GAAG1G,OAAOg2B,GAAGmJ,OAAOxsB,KAAK,OAAOk+B,EAAEzb,GAAGp1B,OAAOg2B,GAAGmJ,OAAOxsB,KAAK,IAAG,EAAGq+B,EAAE,SAAStF,EAAEhlC,GAAGsqC,EAAEr0B,KAAKjW,GAAGqqC,EAAErqC,GAAGA,GAAG,MAAMA,EAAE,GAAG0qC,EAAE,CAAC1qC,EAAE0uB,KAAI,CAAE1nB,MAAMhH,EAAE2qC,MAAM3qC,EAAErF,QAAQ,EAAEwvC,EAAEnqC,EAAEoF,MAAMnB,QAAO,CAACjE,EAAE0uB,KAAK1uB,GAAG,EAAE,CAACA,GAAG,KAAKA,EAAT,CAAY0uB,GAAG1uB,GAAG,EAAEglC,EAAEtW,GAAG1uB,GAAG,EAAEqqC,EAAE3b,GAAG1uB,GAAG,EAAEA,GAAG,EAAEA,IAAG,GAAGyW,MAAMiY,IAAIlC,EAAExsB,GAAGA,EAAE+D,IAAI2mC,GAAGjS,MAAK,CAACz4B,EAAE0uB,IAAI1uB,EAAE2qC,MAAMjc,EAAEic,MAAM,EAAE3qC,EAAE2qC,MAAMjc,EAAEic,OAAO,EAAE3qC,EAAEyW,MAAMiY,EAAEjY,QAAO0zB,EAAEnqC,GAAGA,EAAEnH,QAAQ,eAAe,IAAIyM,MAAM,KAAKklC,EAAE,CAACxqC,KAAK0uB,IAAI1uB,IAAI0uB,EAAEA,EAAEp1B,QAAO0G,GAAGA,GAAGA,EAAEjI,OAAO,MAAK22B,EAAE32B,OAAO,EAAE,IAAI22B,EAAEziB,KAAK,OAAO,IAAIs+B,EAAE,CAAC,MAAM,QAAQ5D,EAAE,CAAC3mC,EAAE0uB,KAAK,MAAMY,EAAEx2B,OAAOqR,KAAKnK,GAAG,OAAOsvB,EAAEv3B,SAASe,OAAOqR,KAAKukB,GAAG32B,QAAQu3B,EAAEsb,OAAMtb,GAAGZ,EAAErzB,eAAei0B,IAAItvB,EAAEsvB,KAAKZ,EAAEY,IAAE,EAAGub,EAAE7qC,GAAGA,EAAEnH,QAAQ,eAAe,IAAI8uC,EAAEjZ,GAAGY,IAAI,IAAIA,EAAE,OAAO,KAAK,GAAGA,EAAE5qB,OAAO,YAAY4qB,EAAEhyB,MAAM4B,SAAS,OAAO,WAAW6E,IAAIurB,EAAEhyB,MAAM4B,SAASyoC,EAAEjZ,IAAI,GAAG,EAAEY,EAAEhyB,MAAM8H,MAAMkqB,EAAEhyB,MAAM3C,SAAS20B,EAAE5qB,OAAOwlC,EAAE,iIAAiI5a,EAAE5qB,UAAU,KAAK4qB,EAAE5qB,OAAOwlC,GAAG5a,EAAEhyB,MAAMgW,MAAMgc,EAAEhyB,MAAMyhB,IAAI,mBAAmBuQ,EAAEhyB,MAAMgW,aAAagc,EAAEhyB,MAAMyhB,qEAAqE,IAAIuQ,EAAE5qB,OAAOwlC,IAAIO,EAAEnb,EAAEhyB,MAAMgW,KAAKgc,EAAEhyB,MAAMyhB,KAAK,mBAAmBuQ,EAAEhyB,MAAMgW,YAAYgc,EAAEhyB,MAAMyhB,kGAAkGuQ,EAAEhyB,MAAM3C,QAAQ,MAAM,CAAC1B,MAAMq2B,EAAE30B,SAAQ,GAAI,MAAM+M,EAAE4nB,EAAE5qB,OAAOwlC,EAAE5a,EAAEhyB,MAAMgW,KAAKgc,EAAEhyB,MAAM8H,KAAKmD,EAAE,MAAMb,EAAEgnB,EAAE,GAAGmc,EAAEnc,MAAMmc,EAAEnjC,KAAK,MAAM,CAACzO,MAAMq2B,EAAE30B,QAAQ20B,EAAEhyB,MAAM3C,QAAQyK,KAAKkqB,EAAEhyB,MAAM4B,SAAS,GAAG2rC,EAAEtiC,OAAOA,EAAC,EAAGuiC,EAAE,CAAC,YAAYzL,EAAE,CAAC,KAAK,QAAQ,UAAU,YAAY0L,EAAE,CAAC,OAAO,IAAIC,WAAW9D,GAAG,qBAAE,IAASA,IAAIA,EAAElnC,GAAGA,GAAG,MAAM+nC,EAAE,OAAOtB,EAAES,GAAE,CAACxY,EAAEY,KAAK,IAAI2b,SAASjU,GAAGtI,EAAExf,EAAE3G,EAAEmmB,EAAEoc,GAAG,MAAMzoB,QAAQpB,GAAGqa,KAAKp9B,SAASmxB,GAAGkX,KAAKxnB,GAAGqoB,EAAE3mC,MAAMsqB,EAAElyB,QAAQmuC,EAAEkE,SAASx3B,EAAEq0B,GAAG74B,EAAE00B,EAAEr7B,EAAE2G,EAAEmwB,GAAGoI,EAAEjc,EAAE4b,EAAEnmB,GAAGgmB,EAAEnkB,UAAU2kB,GAAG3Z,EAAEuB,EAAEhvB,WAAW4mC,EAAEjmB,EAAE0lB,EAAErX,EAAEhvB,SAAS4mC,GAAgB,OAAO,gBAAgB,IAAIv/B,EAAE,CAAC9G,IAAI0uB,GAAG0H,EAAE,eAAelJ,EAAE,YAAO,GAAQ8V,EAAElwB,EAAE,CAACy3B,UAAUrd,EAAEsd,mBAAmBpqB,EAAE3a,KAAKohC,EAAEvpC,SAASmxB,IAAI,CAAChpB,KAAKohC,EAAE4D,QAAQrrC,IAAI,GAAG4jC,EAAEyH,SAASzH,EAAEyH,QAAQrrC,GAAG,CAACA,IAAIA,EAAEsrC,kBAAkB,IAAItrC,EAAEurC,UAAUvrC,EAAEwrC,SAASxrC,EAAEyrC,QAAQzrC,EAAE0rC,SAAS1rC,EAAE2rC,UAA3E,CAAsF3rC,GAAG,CAACA,EAAE4rC,iBAAiB,IAAIld,EAAEsY,EAAE,GAAG,kBAAkBA,GAAGlZ,EAAE,CAAC,MAAM9tB,EAAEuI,EAAEb,EAAE,CAAC,EAAE2nB,EAAE5uB,OAAOsqC,GAAGrc,EAAEiY,EAAEj/B,EAAE,CAAC,EAAEqjB,GAAG/qB,EAAE,CAAC4W,EAAE6wB,EAAE,CAAChnC,MAAMsqB,EAAElyB,QAAQ61B,GAAG,KAAI,IAAI+X,EAAExqC,YAAY,OAAOwqC,EAAErnC,UAAU,CAAC2f,GAAG,SAASxf,YAAY,MAAMsnC,UAAU,YAAY,WAAA79B,IAAehJ,GAAG6sB,SAAS7sB,GAAGtD,KAAKT,YAAY,uBAAuB,CAAC,iBAAA4vC,IAAqB7rC,GAAGtD,KAAK6kB,SAAS,CAAC,GAAG7kB,KAAKY,MAAMwuC,WAAW9rC,EAAE,CAAC,MAAAjB,GAAS,OAAOrC,KAAKY,MAAM4B,QAAQ,EAAE,MAAM6sC,EAAE,gBAAgB,CAACF,kBAAkB,CAAC9qC,aAAQ,GAAQ6R,WAAM,EAAOo5B,SAAS,KAAI,IAAK,SAAS3E,GAAGnoC,SAASwvB,IAAI,MAAMY,EAAE0H,GAAG,aAAatvB,EAAE,WAAWa,EAAE,WAAU,KAAI,CAAEsjC,kBAAkBnkC,EAAEkL,MAAM0c,EAAE0c,SAAShV,KAAI,CAAC1H,IAAiB,OAAO,gBAAgByc,EAAE9sC,SAAS,CAAChG,MAAMsP,GAAgB,gBAAgBs+B,EAAE,CAACj0B,MAAM0c,EAAEwc,QAAQ,CAAC9rC,EAAE0uB,KAAKsI,EAAEh3B,GAAG,MAAM0H,EAAE3G,SAAS2G,EAAE3G,QAAQf,EAAE0uB,EAAC,GAAIA,GAAG,CAAC2Y,EAAEprC,YAAY,+BAA+B,MAAMuqC,EAAE,SAAS9X,GAAG,IAAIY,EAAE0H,EAAE,SAASzuB,EAAE+mB,GAAgB,OAAO,gBAAgB+X,EAAE,KAAkB,gBAAgB3Y,EAAEhnB,EAAE,CAACvM,IAAI,oBAAoBm0B,IAAI,CAAC,OAAO/mB,EAAEtM,YAAY,qBAAqB,OAAOqzB,EAAE,OAAO0H,EAAEtI,EAAEzyB,aAAa+6B,EAAEtI,EAAEhjB,MAAM4jB,EAAE,eAAe/mB,CAAC,CAAnP,EAAqP,EAAE6W,QAAQsP,EAAE3D,EAAE7rB,SAASowB,MAAM,MAAMpxB,SAAS84B,GAAGtI,GAAGhnB,EAAEa,GAAG,WAAW,CAACrK,SAAS84B,KAAK9nB,GAAG,SAASwf,GAAG,MAAMY,EAAE,aAAayc,GAAGzc,EAAEuc,kBAAkB9qC,aAAQ,EAAO,MAAMi2B,EAAE,eAAc,KAAK1H,EAAE0c,cAAS,EAAM,GAAG,IAAI,MAAM,CAAC1c,EAAE1c,MAAMokB,EAAE,CAA3I,GAA+I,GAAG,aAAY,KAAKtI,EAAEgb,uBAAsB,GAAG,CAAChiC,EAAExJ,WAAW,aAAY,KAAK,IAAI8B,GAAE,EAAG,MAAMsvB,EAAEZ,EAAE7M,QAAO,EAAE3jB,SAASwwB,MAAMrqB,QAAQC,UAAUF,MAAK,KAAKpH,uBAAsB,KAAKgD,GAAGuI,EAAE,CAACrK,SAASwwB,GAAE,GAAE,GAAE,IAAI,MAAM,KAAK1uB,GAAE,EAAGsvB,GAAE,CAAC,GAAG,IAAIpgB,EAAE,CAAC,IAAI+3B,EAAE/3B,GAAG,MAAMA,EAAE0H,EAAE1H,EAAE66B,IAAI,CAAClxC,SAAQ,GAAI,CAAc,OAAO,gBAAgB+qC,EAAE3kC,SAAS,CAAChG,MAAMyO,GAAG,mBAAmB4nB,EAAEA,EAAE5nB,GAAG4nB,GAAG,KAAI,IAAIwX,EAAE,EAAE5nC,SAASwvB,MAAM,MAAMY,EAAEiX,IAAI,OAAOjX,EAAEZ,EAAEY,GAAgB,gBAAgBkX,EAAE,KAAK9X,EAAC,EAAGyY,EAAE,EAAEv5B,IAAI8gB,EAAExvB,SAASowB,MAAM,MAAM0H,EAAEtI,EAAE3pB,QAAQ,KAAK,IAAI2C,EAAEa,EAAE,GAAG,OAAOyuB,GAAG,GAAGtvB,EAAEgnB,EAAE7wB,UAAU,EAAEm5B,GAAGzuB,EAAEmmB,EAAE7wB,UAAUm5B,IAAItvB,EAAEgnB,EAAe,gBAAgBkV,EAAE3kC,SAAS,CAAChG,MAAM,CAACiF,SAAS,CAACmC,SAASqH,EAAErC,OAAOkD,EAAE9K,KAAK,MAAM6xB,EAAC,EAAG2c,GAAE,EAAE7mC,KAAKpF,EAAEd,SAASwvB,MAAM,MAAMrM,QAAQiN,GAAGgM,KAAKp9B,SAAS84B,GAAGuP,IAAIh+B,EAAEijB,EAAExrB,EAAEsvB,GAAGpgB,EAAEo3B,EAAE/9B,EAAEyuB,EAAE32B,UAAU,OAAOquB,EAAE,CAACxwB,SAAS84B,EAAE39B,MAAM6V,EAAExH,EAAE,CAAC,EAAEwH,EAAE/H,OAAO,CAAC4iC,IAAI76B,EAAE66B,IAAI3kC,KAAKpF,IAAI,MAAK,EAAGksC,GAAE,CAAC,MAAM,WAAW,aAAaC,GAAE,CAAC,WAAW,QAAQ,YAAY,MAAM,YAAYC,GAAG1d,IAAI,IAAIqb,IAAIza,EAAEpxB,SAAS84B,EAAEtsB,UAAUwE,GAAGwf,EAAEzN,EAAE1Y,EAAEmmB,EAAEwd,IAAgB,OAAO,gBAAgBG,GAAG3kC,EAAE,CAAC,EAAEuZ,EAAE,CAACvW,UAAUwE,EAAE66B,IAAIza,EAAEpxB,SAAS84B,IAAG,EAAG,IAAIliB,GAAG,EAAE,MAAMu3B,GAAG3d,IAAI,IAAIxvB,SAASowB,EAAE5U,MAAMsc,EAAEtsB,UAAUwE,EAAE,MAAM66B,IAAI9oB,EAAE/iB,SAASmxB,GAAGX,EAAE0Y,EAAE7+B,EAAEmmB,EAAEyd,IAAG,MAAMphB,EAAE,WAAWnU,EAAE,UAAS,GAAIowB,EAAE,SAAS/lB,GAAGvN,EAAE,SAAS2b,EAAEhvB,UAAUujC,EAAE,UAAS,GAAI,aAAY,KAAK9uB,KAAKwmB,IAAI,KAAKxmB,KAAK,IAAIA,KAAK8B,EAAE7V,SAAQ,EAAE,IAAI,IAAI,aAAY,KAAK,IAAIf,GAAE,EAAG0uB,GAAE,EAAGzN,IAAI+lB,EAAEjmC,UAAUimC,EAAEjmC,QAAQkgB,EAAEjhB,GAAE,GAAIqvB,EAAEhvB,WAAWqT,EAAE3S,UAAU2S,EAAE3S,QAAQsuB,EAAEhvB,SAASquB,GAAE,GAAIkV,EAAE7iC,QAAQf,GAAG0uB,GAAGW,EAAEhvB,WAAW4gB,EAAE2iB,EAAE7iC,SAASu6B,GAAE,GAAG,CAACra,EAAEoO,IAAI,MAAMiM,EAAE,eAAc,KAAK,IAAIt7B,EAAkC4W,EAAE7V,QAAQ6V,EAAE7V,SAAQ,GAAIf,EAAE+qB,EAAEhqB,QAAQ6iC,EAAE7iC,SAASf,GAAGA,EAAEssC,QAAQ,GAAG,IAAiB,OAAO,gBAAgBp9B,EAAExH,EAAE,CAACgT,MAAMhT,EAAE,CAAC6kC,QAAQ,QAAQvV,GAAGwV,SAAS,KAAK5rC,IAAImqB,GAAGqc,GAAG9X,EAAC,EAAGmd,GAAG,CAAC,WAAW,UAAU,WAAW,WAAW,UAAU,aAAaC,GAAGhe,IAAI,MAAMY,EAAEgM,IAAItE,EAAEuP,IAAiB,OAAO,gBAAgBoG,GAAGjlC,EAAE,CAAC,EAAE4nB,EAAE0H,EAAEtI,GAAE,EAAG,SAASie,GAAGje,GAAG,MAAMxwB,SAASoxB,EAAEsd,QAAQ5V,GAAE,EAAG93B,SAASgQ,EAAEoT,SAASrB,EAAEvW,UAAU2kB,EAAE,OAAOX,EAAE0Y,EAAE7+B,EAAEmmB,EAAE+d,IAAI1hB,EAAE,WAAW8hB,QAAQ39B,GAAGjL,QAAO,CAACjE,EAAE0uB,KAAK,MAAMY,EAAEqY,EAAE1mB,EAAF0mB,CAAKjZ,GAAG,OAAO1uB,EAAEhI,OAAOs3B,EAAC,GAAG,KAAKjvB,SAASuW,GAAG0Y,EAAE0X,EAAEd,EAAEnb,EAAEnU,GAAG,GAAGowB,EAAE,CAAC,MAAM7/B,OAAOunB,EAAEqb,IAAIxhC,EAAEvB,MAAMkI,EAAElI,OAAO/N,MAAM8xB,IAAIic,EAAEpwB,EAAE1H,EAAEvU,QAAQsmB,EAAE/R,EAAE9J,KAAKvM,QAAQ,MAAM,IAAI+qC,EAAEl8B,EAAE,CAAC,EAAEgnB,EAAE,CAACqb,IAAIxhC,EAAErK,SAASoxB,IAAIgM,EAAE,eAAevQ,EAAE6Y,EAAE7Y,EAAEztB,MAAM4B,SAAsB,gBAAgBwtC,GAAG,CAACxuC,SAASoxB,EAAEsd,QAAQ5V,GAAGjM,EAAEztB,MAAM4B,eAAU,GAAQqnC,EAAEvP,EAAEoV,GAAG/c,EAAEoY,EAAEzQ,EAAEtvB,EAAE,CAACqiC,IAAIxhC,EAAErK,SAASoxB,EAAE5kB,UAAU2kB,GAAG+X,GAAGA,EAAe,OAAO,gBAAgB1zB,EAAEzU,SAAS,CAAChG,MAAM,CAACopB,QAAQ9Z,EAAE+Z,SAAS1L,IAAiB,gBAAgB2vB,EAAEkB,EAAEnM,GAAG,CAAC,OAAO,IAAI,CAAC,MAAMwR,GAAG,KAAK,MAAM9sC,EAAEumC,IAAI,IAAIvmC,EAAE,MAAM,IAAIiK,MAAM,8JAA8J,OAAOjK,EAAE9B,UAAU6uC,GAAG,KAAK,MAAM,IAAI9iC,MAAM,wEAAuE,EAAG+iC,GAAG,KAAK,MAAMhtC,EAAEs7B,IAAI,IAAIt7B,EAAE,MAAM,IAAIiK,MAAM,4JAA4J,MAAMykB,EAAEoe,KAAKxd,EAAEgX,EAAEtmC,EAAEsiB,SAASoM,EAAEruB,UAAU,OAAOivB,EAAEA,EAAEnoB,OAAO,MAAM8lC,GAAGjtC,IAAI,IAAIA,EAAE,MAAM,IAAIiK,MAAM,4EAA4E,MAAMykB,EAAE4M,IAAI,IAAI5M,EAAE,MAAM,IAAIzkB,MAAM,2JAA2J,MAAMqlB,EAAEwd,KAAK9V,EAAExL,EAAExrB,EAAE0uB,EAAErM,SAAS9Z,EAAE+9B,EAAEtP,EAAE1H,EAAEjvB,UAAU,OAAOkI,EAAEb,EAAE,CAAC,EAAEa,EAAEpB,OAAO,CAAC4iC,IAAIxhC,EAAEwhC,IAAI3kC,KAAKpF,IAAI,sNCCv+U,SAASihB,IAAI,OAAOA,EAAEnoB,OAAO6R,OAAO7R,OAAO6R,OAAOzN,OAAO,SAASwxB,GAAG,IAAI,IAAI1uB,EAAE,EAAEA,EAAE3D,UAAUtE,OAAOiI,IAAI,CAAC,IAAIg3B,EAAE36B,UAAU2D,GAAG,IAAI,IAAIsvB,KAAK0H,EAAEl+B,OAAOsC,UAAUC,eAAeC,KAAK07B,EAAE1H,KAAKZ,EAAEY,GAAG0H,EAAE1H,GAAG,CAAC,OAAOZ,CAAC,EAAEzN,EAAExkB,MAAMC,KAAKL,UAAU,CAAC,SAASkM,EAAEmmB,GAAG,IAAI1uB,EAAE0uB,GAAG,IAAIsI,EAAE,GAAG1H,EAAE,GAAG,MAAM5nB,EAAE1H,EAAE+E,QAAQ,MAAM,IAAI2C,IAAI4nB,EAAEtvB,EAAE/H,MAAMyP,GAAG1H,EAAEA,EAAE/H,MAAM,EAAEyP,IAAI,MAAMwH,EAAElP,EAAE+E,QAAQ,KAAK,OAAO,IAAImK,IAAI8nB,EAAEh3B,EAAE/H,MAAMiX,GAAGlP,EAAEA,EAAE/H,MAAM,EAAEiX,IAAI,CAAC7O,SAASL,EAAEqF,OAAO,MAAM2xB,EAAE,GAAGA,EAAEv5B,KAAK,MAAM6xB,EAAE,GAAGA,EAAE,CAAC,MAAMD,EAAE,6BAA6BtE,EAAE2D,IAAI,GAAG,iBAAiBA,EAAE,OAAO,CAACA,GAAGW,EAAEpZ,KAAKyY,GAAX,CAAeA,EAAC,EAAG9X,EAAE,IAA+F,GAAcowB,EAAE,IAAmG,GAAgB,SAAS1L,EAAE5M,EAAE1uB,EAAE4W,KAAK,IAAIogB,EAAE,IAAIjM,EAAE2D,GAAG,OAAOA,EAAE,GAAGA,EAAE/2B,WAAW,OAAO+2B,EAAE/2B,WAAW,OAAO,OAAO+2B,EAAE,MAAMY,EAAE,OAAO0H,EAAE,MAAMh3B,EAAEA,EAAEgnC,KAAKhQ,EAAE,IAAI,MAAM,GAAG,MAAM1H,GAAGA,EAAE11B,SAAS,KAAK01B,EAAEr3B,MAAM,GAAG,GAAGq3B,IAAIZ,EAAE/2B,WAAW,KAAK+2B,EAAE,IAAIA,KAAK,CAAC,MAAM0Y,EAAE1Y,GAAG,MAAMA,OAAE,EAAOA,EAAE/2B,WAAW,KAA4E,SAASisC,EAAElV,EAAE1uB,GAAG,MAAMK,SAAS22B,EAAE3xB,OAAOiqB,EAAE7xB,KAAKiK,GAAGa,EAAEmmB,GAAG,MAAM,IAAG,OAAEsI,EAAEh3B,KAAKsvB,IAAI5nB,GAAG,CAAC,MAAMgM,EAAE,CAACgb,EAAE1uB,IAAI,iBAAiB0uB,EAAEA,EAAE3D,EAAE2D,GAAG0Y,EAAE1Y,GAAG,SAASA,GAAG,MAAM1uB,EAAEs7B,EAAE5M,GAAGsI,EAAlL,SAAwL,OAAgC4M,EAAE5jC,EAAEg3B,EAAI,CAAvE,CAAyEtI,GAAG,SAASA,EAAE1uB,GAAG,GAAGonC,EAAE1Y,GAAG,OAAOA,EAAE,MAAMY,EAA1Q,SAAgR5nB,GAAE,aAAEgnB,EAAE1uB,GAAG,OAAgC4jC,EAAEl8B,EAAE4nB,EAAI,CAA5F,CAA8FZ,EAAE1uB,GAAG0uB,EAAE6X,EAAE,CAAC,KAAK,WAAW,UAAU,eAAe,kBAAkB,cAAc,WAAW,kBAAkB,QAAQ,UAAU,aAAa,SAASzY,EAAEY,GAAG,OAAO4M,EAAE5M,EAAEsY,IAAI,CAAC,MAAMhmB,EAAE,CAACksB,gBAAgB,SAASC,YAAY,SAASC,gBAAgB,QAAQ,SAASlH,EAAExX,GAAgB,OAAO,gBAAgB,WAAE,MAAK,EAAExwB,SAAS84B,KAAkB,gBAAgBiT,EAAEhpB,EAAE,CAAC,EAAEyN,EAAE,CAAC2e,UAAUrW,MAAK,CAAC,MAAMiT,UAAU,YAAY,WAAAjhC,CAAY0lB,GAAG7B,MAAM6B,GAAGhyB,KAAK4wC,gBAAgB,EAAElC,mBAAmB1c,EAAEyc,UAAUnrC,MAAMtD,KAAKY,MAAM8vC,gBAAgB1e,EAAE1uB,GAAG,CAACutC,UAAU,CAAC7wC,KAAKY,MAAMiwC,UAAU7wC,KAAKY,MAAM4vC,iBAAiB5zC,OAAO+O,SAAS4D,KAAK,KAAKyO,MAAMuG,EAAE,CAAC,EAAEvkB,KAAKY,MAAMod,MAAMhe,KAAKY,MAAM6vC,cAAc,KAAK,IAAIntC,GAAE,EAAG,oBAAoB7H,QAAQA,OAAOq1C,uBAAuBxtC,GAAE,GAAItD,KAAK+D,MAAM,CAACgtC,YAAYztC,GAAGtD,KAAKgxC,cAAc,KAAKhxC,KAAKixC,UAAUjxC,KAAKixC,UAAUzwC,KAAKR,KAAK,CAAC,SAAAkxC,GAAY,IAAIlf,EAAEv2B,OAAO+F,SAASmC,SAASlI,OAAO+F,SAASmH,OAAO3I,KAAKY,MAAM+vC,WAAW3wC,KAAKY,MAAM+vC,UAAUhtC,WAAWquB,EAAEhyB,KAAKY,MAAM+vC,UAAUhtC,SAAS3D,KAAKY,MAAM+vC,UAAUhoC,QAAQ,MAAMrF,EAAEuI,EAAEmL,EAAEhX,KAAKY,MAAMyhB,GAAG2P,IAAIsI,EAAEh3B,EAAEK,SAASL,EAAEqF,OAAO,GAAGqpB,IAAIsI,EAAE,OAAOpV,UAAUzU,QAAQ6pB,EAAE,CAAC,oBAAAr4B,GAAuB,IAAIjC,KAAKmxC,GAAG,OAAO,MAAMrlC,SAASkmB,EAAEtK,GAAGpkB,GAAGtD,KAAKmxC,GAAGnxC,KAAKgxC,eAAehxC,KAAKgxC,cAAcv3B,QAAQuY,EAAEof,UAAU9tC,GAAG0uB,EAAEqf,YAAY,CAAC,SAAAJ,CAAUjf,GAAGhyB,KAAKY,MAAM2tC,UAAUnyC,OAAOsC,UAAUC,eAAeC,KAAKoB,KAAKY,MAAM2tC,SAAS,WAAWvuC,KAAKY,MAAM2tC,SAASlqC,QAAQ2tB,EAAEhyB,KAAKY,MAAM2tC,UAAUvuC,KAAKY,MAAM2tC,SAASvc,GAAGhyB,KAAK+D,MAAMgtC,aAAa/e,IAAIhyB,KAAKmxC,GAAG,EAAEnf,EAAE1uB,KAAK,MAAMg3B,EAAE,IAAI7+B,OAAOq1C,sBAAqBxW,IAAIA,EAAEhpB,SAAQgpB,IAAItI,IAAIsI,EAAEn/B,QAAQmI,EAAEg3B,EAAEgX,gBAAgBhX,EAAEiX,kBAAkB,EAAC,GAAE,IAAI,OAAOjX,EAAEkX,QAAQxf,GAAG,CAAClmB,SAASwuB,EAAE5S,GAAGsK,EAAG,EAAtK,CAAwKA,GAAEA,IAAIA,EAAEhyB,KAAKgxC,cAAchxC,KAAKkxC,YAAYlxC,KAAKgxC,eAAehxC,KAAKgxC,cAAcv3B,OAAM,IAAI,CAAC,MAAApX,GAAS,MAAM2vB,EAAEhyB,KAAKY,OAAOyhB,GAAGiY,EAAEkU,SAAS5b,EAAE5yB,KAAK4wC,gBAAgBjC,QAAQn8B,EAAEi/B,aAAa9e,EAAE5uB,MAAMmW,EAAE/d,QAAQmuC,EAAEqG,UAAU/R,GAAG5M,EAAE0Y,EAAE,SAAS1Y,EAAE1uB,GAAG,GAAG,MAAM0uB,EAAE,MAAM,CAAC,EAAE,IAAIsI,EAAE1H,EAAE5nB,EAAE,CAAC,EAAEwH,EAAEpW,OAAOqR,KAAKukB,GAAG,IAAIY,EAAE,EAAEA,EAAEpgB,EAAEnX,OAAOu3B,IAAItvB,EAAE+E,QAAQiyB,EAAE9nB,EAAEogB,KAAK,IAAI5nB,EAAEsvB,GAAGtI,EAAEsI,IAAI,OAAOtvB,CAAC,CAAjI,CAAmIgnB,EAAE6X,GAAgNvB,EAAEtxB,EAAEsjB,EAAEsE,EAAEj7B,UAAU,OAAO0qB,EAAEia,GAAgB,gBAAgB,OAAE/jB,EAAE,CAAClC,GAAGimB,EAAEvkC,MAAMmW,EAAEs0B,SAAS5b,EAAE2b,SAASvuC,KAAKixC,UAAUQ,aAAazf,IAAIW,GAAGA,EAAEX,GAAG,MAAM1uB,EAAEuI,EAAEy8B,GAAGpjB,UAAUlK,SAAS1X,EAAEK,SAASL,EAAEqF,OAAM,EAAGgmC,QAAQ3c,IAAI,GAAGxf,GAAGA,EAAEwf,KAAK,IAAIA,EAAE6c,QAAQ7uC,KAAKY,MAAMzF,QAAQ62B,EAAE4c,kBAAkB5c,EAAE8c,SAAS9c,EAAE+c,QAAQ/c,EAAEgd,SAAShd,EAAEid,UAAU,CAACjd,EAAEkd,iBAAiB,IAAI5rC,EAAEgnC,EAAE,MAAMhQ,EAAElU,UAAUkiB,KAAK1J,EAAEj7B,SAAS,kBAAkB2mC,GAAGhQ,IAAIh3B,GAAE,GAAI7H,OAAO6pB,YAAYgjB,EAAE,CAACvkC,MAAMmW,EAAE/d,QAAQmH,GAAG,CAAC,OAAM,CAAC,GAAIonC,IAAiB,gBAAgB,IAAInmB,EAAE,CAAC5a,KAAK2+B,GAAGoC,GAAG,EAAE6C,EAAE7qC,UAAU6hB,EAAE,CAAC,EAAED,EAAE,CAACqqB,QAAQ,OAAOtsB,GAAG,SAASxf,WAAW1G,QAAQ,OAAO4H,MAAM,WAAW,MAAMgnC,EAAE,cAAa,CAAC/Y,EAAEsI,IAAiB,gBAAgBkP,EAAEjlB,EAAE,CAACgqB,SAASjU,GAAGtI,MAAKuY,EAAE,CAACvY,EAAE1uB,KAAK7H,OAAO6pB,YAAYtO,EAAEgb,EAAEv2B,OAAO+F,SAASmC,UAAUL,EAAC,mQCAh1I,SAAS0H,IAAI,OAAOA,EAAE5O,OAAO6R,OAAO7R,OAAO6R,OAAOzN,OAAO,SAASwxB,GAAG,IAAI,IAAI1uB,EAAE,EAAEA,EAAE3D,UAAUtE,OAAOiI,IAAI,CAAC,IAAIg3B,EAAE36B,UAAU2D,GAAG,IAAI,IAAIsvB,KAAK0H,EAAEl+B,OAAOsC,UAAUC,eAAeC,KAAK07B,EAAE1H,KAAKZ,EAAEY,GAAG0H,EAAE1H,GAAG,CAAC,OAAOZ,CAAC,EAAEhnB,EAAEjL,MAAMC,KAAKL,UAAU,CAAC,MAAMkM,EAAE,IAAI9C,IAAIslB,EAAE,CAAChwB,IAAI2zB,GAAGnmB,EAAExN,IAAI2zB,IAAI,GAAG,GAAAlzB,CAAIkzB,EAAE1uB,GAAG,MAAMg3B,EAAEzuB,EAAExN,IAAI2zB,IAAI,GAAGsI,EAAEpyB,KAAK5E,GAAGuI,EAAE/M,IAAIkzB,EAAEsI,EAAE,EAAE,OAAOtI,GAAGnmB,EAAEiJ,OAAOkd,EAAE,GAAGxf,EAAE,oBAAoBzC,MAAMA,KAAKqK,qBAAqBrK,KAAKqK,oBAAoB5Z,KAAK/E,SAAS,SAASu2B,GAAG,MAAM1uB,EAAEsU,KAAKs1B,MAAM,OAAOv5B,YAAW,WAAWqe,EAAE,CAAC0f,YAAW,EAAGC,cAAc,WAAW,OAAOlV,KAAKiR,IAAI,EAAE,IAAI91B,KAAKs1B,MAAM5pC,GAAG,GAAG,GAAE,EAAE,EAAE,IAAIqvB,EAAYX,KAAiFW,IAAIA,EAAE,CAAC,IAAnFif,YAAY,eAAe5f,EAAE6f,KAAK,OAAO7f,EAAE8f,cAAc,kBAA8B,MAAMvtB,EAAE,IAAI7P,IAAI,CAAC,MAAM,WAAW,0BAA0B,WAAW,SAAS,YAAYg2B,EAAE,IAAIh2B,IAAIwyB,EAAE,IAAIn+B,IAAI,SAAS61B,EAAEt7B,GAAgB,OAAO,gBAAgB,WAAE,MAAK,IAAiB,gBAAgB4W,EAAE5W,IAAG,CAAC,SAAS4W,EAAEogB,GAAG,MAAMyX,IAAIlmC,EAAEmmC,SAASztB,EAAEoO,EAAEif,aAAatX,GAAG,CAAC,GAAG32B,SAAS+mC,IAAG,mBAAI,IAAG,gBAAE,KAAK,IAAI1Y,EAAE,OAAOzN,GAAG,KAAKoO,EAAEif,YAAY5f,EAAE6X,EAAEvP,GAAG,MAAM,KAAK3H,EAAEkf,KAAKr/B,GAAE,KAAKwf,EAAE6X,EAAEvP,EAAC,IAAI,MAAM,KAAK3H,EAAEmf,cAAc,CAAC,MAAM9f,EAAE1N,EAAEgW,GAAGjM,EAAEvvB,IAAI4rC,EAAE1Y,EAAE,EAAE,MAAM,KAAK,MAAMptB,OAAOtB,EAAE2uC,aAAa3X,EAAE4X,cAActf,GAAGZ,GAAG,CAAC,EAAEsI,IAAI,MAAMh3B,GAAGA,EAAEpB,oBAAoB,OAAOo4B,IAAI1H,IAAI,MAAMtvB,GAAGA,EAAEpB,oBAAoB,QAAQ0wB,IAAI,MAAMtvB,GAAGA,EAAE4B,QAAO,CAAC,GAAG,IAAIqf,IAAIoO,EAAEmf,cAAc,CAAC,MAAMxuC,EAAE0T,EAAEsjB,GAAG1H,EAAEtO,EAAEgW,GAAG,MAAM,oBAAoB7+B,QAAQ4yB,EAAEvvB,IAAI4rC,EAAE9X,GAAgB,gBAAgB,SAAStvB,EAAE0H,EAAE,CAAChD,KAAK,iBAAiB,gBAAgBuc,EAAEzJ,YAAY,aAAa8X,EAAE,CAACuf,wBAAwB,CAACC,OAAOp7B,EAAEsjB,MAAMtvB,EAAE,CAAChD,KAAK,iBAAiB+pC,IAAIzH,EAAEz+B,GAAG,gBAAgB0Y,EAAEzJ,YAAY,aAAa8X,GAAG,CAAC,OAAO,IAAI,CAAC,SAASiX,EAAE7X,GAAG,MAAMnlB,GAAGvJ,EAAEyuC,IAAIzX,EAAE0X,SAASpf,EAAED,EAAEif,YAAYS,OAAOxmC,EAAEujC,QAAQ/gB,GAAG2D,GAAG,CAAC,EAAExf,EAAElP,GAAGg3B,EAAE/V,EAAE,CAAC,OAAO,SAASqa,EAAE,CAACpF,KAAK3tB,EAAEqK,MAAMmY,GAAG,GAAG7b,EAAE,CAAC,IAAI,MAAMwf,KAAKzN,EAAE,GAAG,MAAMqa,GAAGA,EAAE5M,GAAG,CAAC,IAAI9X,EAAE,MAAM5W,EAAE4jC,EAAE7oC,IAAImU,IAAI,CAAC,GAAG8/B,UAAUhY,EAAE,KAAK,MAAMh3B,OAAE,EAAOA,EAAE0uB,KAAK,CAAC,EAAE,IAAI6X,EAAES,EAAEhQ,EAAEpyB,KAAK,MAAM02B,OAAE,EAAOA,EAAE5M,IAAI,MAAM1uB,GAAG,OAAO4W,EAAE5W,EAAE0uB,KAAK9X,EAAE6H,MAAM,MAAM6c,GAAG,OAAOiL,EAAEjL,EAAE5M,KAAK6X,EAAEjrC,KAAKggC,EAAE,MAAMt7B,GAAG,OAAOgnC,EAAEhnC,EAAE0uB,SAAI,EAAOsY,EAAEvoB,OAAOmlB,EAAEpoC,IAAI0T,EAAExH,EAAE,CAAC,EAAE1H,EAAE,CAAC,CAAC0uB,GAAG,CAACsgB,UAAUhY,KAAK,CAAC,GAAGoQ,EAAEtsC,IAAIoU,GAAG,OAAO,IAAI,CAAC,MAAM4e,EAAEpa,EAAEgb,GAAGlD,EAAExK,EAAE0N,GAAGwX,EAAEvoC,SAASqB,cAAc,UAAUgB,IAAIkmC,EAAE38B,GAAGvJ,GAAGkmC,EAAElkC,QAAQ0sC,SAASpf,EAAE,IAAI,MAAMZ,EAAE1uB,KAAKlH,OAAOkT,QAAQwf,GAAG0a,EAAEn4B,aAAa2gB,EAAE1uB,GAAG8tB,IAAIoY,EAAE9lB,YAAY0N,GAAGkJ,IAAIkP,EAAEuI,IAAIzX,GAAG,MAAM0P,EAAE,CAAC,EAAE,GAAGx3B,EAAE,CAAC,IAAI,MAAMwf,KAAKzN,EAAE,CAAC,MAAMjhB,EAAEA,GAAGinC,EAAEjnC,EAAEkP,EAAEwf,GAAGwX,EAAE5nC,iBAAiBowB,EAAE1uB,GAAG0mC,EAAE,GAAGhY,aAAa1uB,CAAC,CAAConC,EAAEhwB,IAAIlI,EAAE,CAAC,OAAOvR,SAASkc,KAAKvX,YAAY4jC,GAAG,CAAC5kC,OAAO4kC,EAAEyI,aAAajI,EAAEiI,aAAaC,cAAclI,EAAEkI,cAAc,CAAC,SAASl7B,EAAEgb,GAAG,MAAMmgB,wBAAwB7uC,EAAEd,SAAS83B,EAAE,IAAItI,GAAG,CAAC,GAAGogB,OAAOxf,EAAE,IAAItvB,GAAG,CAAC,EAAE,OAAOsvB,GAAG0H,CAAC,CAAC,SAAShW,EAAE0N,GAAG,MAAM1uB,EAAE,CAAC,EAAE,IAAI,MAAMg3B,EAAE1H,KAAKx2B,OAAOkT,QAAQ0iB,GAAGzN,EAAEnmB,IAAIk8B,KAAKh3B,EAAEg3B,GAAG1H,GAAG,OAAOtvB,CAAC,CAAC,SAASgnC,EAAEtY,GAAG,GAAGA,EAAE,MAAM,4BAA4B3oB,mBAAmB2oB,IAAI,CAAC,SAASuY,EAAEvY,EAAE1uB,EAAEg3B,GAAG,MAAM1H,EAAEsU,EAAE7oC,IAAIiF,IAAI,CAAC,EAAE,IAAI,MAAMA,KAAK,MAAMsvB,GAAG,OAAO5nB,EAAE4nB,EAAE0H,SAAI,EAAOtvB,EAAEsnC,YAAY,GAAG,CAAC,IAAItnC,EAAE1H,EAAE0uB,EAAE,CAACkV,EAAEpoC,IAAIwE,EAAE,CAAC,CAACg3B,GAAG,CAACvY,MAAMiQ,IAAI,yyBCDn3FA,EAAE,qDAAqD,SAASsI,EAAEA,GAAG,IAAI1H,EAAE,CAAC5qB,KAAK,MAAMgH,KAAK,GAAGujC,aAAY,EAAGC,MAAM,CAAC,EAAEhwC,SAAS,IAAI+hB,EAAE+V,EAAE39B,MAAM,uBAAuB,GAAG4nB,IAAIqO,EAAE5jB,KAAKuV,EAAE,IAAI,IAAEA,EAAE,KAAK,MAAM+V,EAAEzxB,OAAOyxB,EAAEj/B,OAAO,MAAMu3B,EAAE2f,aAAY,GAAI3f,EAAE5jB,KAAK/T,WAAW,QAAQ,CAAC,IAAIuX,EAAE8nB,EAAEjyB,QAAQ,UAAU,MAAM,CAACL,KAAK,UAAUyqC,SAAS,IAAIjgC,EAAE8nB,EAAE/+B,MAAM,EAAEiX,GAAG,GAAG,CAAC,IAAI,IAAI3G,EAAE,IAAIgnB,OAAOb,GAAGW,EAAE,KAAK,QAAQA,EAAE9mB,EAAEozB,KAAK3E,KAAK,GAAG3H,EAAE,GAAG9iB,OAAO,GAAG8iB,EAAE,GAAG,CAAC,IAAI3nB,EAAE2nB,EAAE,GAAG9iB,OAAOwe,EAAE,CAACrjB,EAAE,IAAIA,EAAE3C,QAAQ,MAAM,IAAIgmB,EAAErjB,EAAEpC,MAAM,MAAMgqB,EAAE4f,MAAMnkB,EAAE,IAAIA,EAAE,GAAGxiB,EAAEuzB,WAAW,MAAMzM,EAAE,KAAKC,EAAE4f,MAAM7f,EAAE,IAAIA,EAAE,GAAG9iB,OAAO1O,UAAU,EAAEwxB,EAAE,GAAGt3B,OAAO,IAAI,OAAOu3B,CAAC,CAAC,IAAIA,EAAE,kDAAkDrO,EAAE,QAAQ/R,EAAEpW,OAAO0L,OAAO,MAAM,SAAS+D,EAAEvI,EAAE0uB,GAAG,OAAOA,EAAEhqB,MAAM,IAAI,OAAO,OAAO1E,EAAE0uB,EAAE0gB,QAAQ,IAAI,MAAM,OAAOpvC,GAAG,IAAI0uB,EAAEhjB,MAAMgjB,EAAEwgB,MAAM,SAASlvC,GAAG,IAAI0uB,EAAE,GAAG,IAAI,IAAIsI,KAAKh3B,EAAE0uB,EAAE9pB,KAAKoyB,EAAE,KAAKh3B,EAAEg3B,GAAG,KAAK,OAAOtI,EAAE32B,OAAO,IAAI22B,EAAEziB,KAAK,KAAK,EAAE,CAA9F,CAAgGyiB,EAAEwgB,OAAO,KAAKxgB,EAAEugB,YAAY,KAAK,KAAKvgB,EAAEugB,YAAYjvC,EAAEA,EAAE0uB,EAAExvB,SAAS+E,OAAOsE,EAAE,IAAI,KAAKmmB,EAAEhjB,KAAK,IAAI,IAAI,UAAU,OAAO1L,EAAE,UAAU0uB,EAAEygB,QAAQ,SAAS,CAAC,IAAI9f,EAAE,CAACtvB,MAAM,SAASC,EAAE0uB,GAAGA,IAAIA,EAAE,CAAC,GAAGA,EAAEnsB,aAAamsB,EAAEnsB,WAAW2M,GAAG,IAAI3G,EAAE8mB,EAAE,GAAG3nB,EAAE,GAAGqjB,GAAG,EAAErX,GAAE,EAAG,GAAG,IAAI1T,EAAE+E,QAAQ,KAAK,CAAC,IAAIqiC,EAAEpnC,EAAE+E,QAAQ,KAAKsqB,EAAEzqB,KAAK,CAACF,KAAK,OAAO0qC,SAAS,IAAIhI,EAAEpnC,EAAEA,EAAEnC,UAAU,EAAEupC,IAAI,CAAC,OAAOpnC,EAAEnH,QAAQy2B,GAAE,SAASA,EAAEpgB,GAAG,GAAGwE,EAAE,CAAC,GAAG4b,IAAI,KAAK/mB,EAAEmD,KAAK,IAAI,OAAOgI,GAAE,CAAE,CAAC,IAAI0zB,EAAE9L,EAAE,MAAMhM,EAAE/pB,OAAO,GAAGyhC,EAAE1X,EAAE33B,WAAW,WAAWif,EAAE1H,EAAEogB,EAAEv3B,OAAO6rC,EAAE5jC,EAAEuF,OAAOqR,GAAG,GAAGowB,EAAE,CAAC,IAAIlZ,EAAEkJ,EAAE1H,GAAG,OAAOvE,EAAE,GAAGsE,EAAEzqB,KAAKkpB,GAAGuB,KAAK+X,EAAE1/B,EAAEqjB,IAAI7rB,SAAS0F,KAAKkpB,GAAGuB,EAAE,CAAC,GAAGiM,IAAIvQ,IAAI,SAASxiB,EAAEyuB,EAAE1H,IAAI5qB,MAAMgqB,EAAEnsB,WAAWgG,EAAEmD,QAAQnD,EAAE7D,KAAK,YAAYgP,GAAE,GAAInL,EAAE0mC,aAAav7B,IAAIkwB,GAAG,MAAMA,GAAGr7B,EAAErJ,SAAS0F,KAAK,CAACF,KAAK,OAAO0qC,QAAQpvC,EAAE/H,MAAM2e,EAAE5W,EAAE+E,QAAQ,IAAI6R,MAAM,IAAImU,GAAGsE,EAAEzqB,KAAK2D,IAAI6+B,EAAE1/B,EAAEqjB,EAAE,KAAKqc,EAAEloC,SAAS0F,KAAK2D,GAAGb,EAAEqjB,GAAGxiB,KAAK+yB,GAAG/yB,EAAE0mC,eAAelkB,GAAG,IAAIxiB,EAAE0mC,aAAa1mC,EAAEmD,OAAO4jB,EAAEr3B,MAAM,GAAG,MAAM8yB,IAAIxiB,GAAG,IAAIwiB,EAAEsE,EAAE3nB,EAAEqjB,KAAKrX,GAAG,MAAMkwB,GAAGA,GAAG,CAACwD,GAAG,IAAIrc,EAAEsE,EAAE3nB,EAAEqjB,GAAG7rB,SAAS,IAAIonC,EAAEtmC,EAAE+E,QAAQ,IAAI6R,GAAGqwB,EAAEjnC,EAAE/H,MAAM2e,GAAG,IAAI0vB,OAAE,EAAOA,GAAGrlB,EAAEhL,KAAKgxB,KAAKA,EAAE,MAAMX,GAAG,GAAGvb,EAAEqc,EAAErvC,QAAQ,GAAG,MAAMkvC,IAAIG,EAAExiC,KAAK,CAACF,KAAK,OAAO0qC,QAAQnI,GAAG,CAAC,IAAG5X,CAAC,EAAEnvB,UAAU,SAASF,GAAG,OAAOA,EAAEiE,QAAO,SAASjE,EAAE0uB,GAAG,OAAO1uB,EAAEuI,EAAE,GAAGmmB,EAAE,GAAE,GAAG,GAAG,ICA9gE,SAAShF,IACd,GAAItG,SAAWA,QAAQsG,KAAM,CAC3B,IAAK,IAAIttB,EAAOC,UAAUtE,OAAQuE,EAAO,IAAIC,MAAMH,GAAOI,EAAO,EAAGA,EAAOJ,EAAMI,IAC/EF,EAAKE,GAAQH,UAAUG,GAEF,iBAAZF,EAAK,KAAiBA,EAAK,GAAK,mBAAmBA,EAAK,MACnE8mB,QAAQsG,QAAQptB,EAClB,CACF,CACA,MAAM+yC,EAAgB,CAAC,EAChB,SAASC,IACd,IAAK,IAAIvlB,EAAQ1tB,UAAUtE,OAAQuE,EAAO,IAAIC,MAAMwtB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF1tB,EAAK0tB,GAAS3tB,UAAU2tB,GAEH,iBAAZ1tB,EAAK,IAAmB+yC,EAAc/yC,EAAK,MAC/B,iBAAZA,EAAK,KAAiB+yC,EAAc/yC,EAAK,IAAM,IAAIgY,MAC9DoV,KAAQptB,GACV,CACA,MAAMizC,EAAY,CAAC3nB,EAAM7Q,IAAO,KAC9B,GAAI6Q,EAAKoZ,cACPjqB,QACK,CACL,MAAMy4B,EAAc,KAClBn/B,YAAW,KACTuX,EAAK/iB,IAAI,cAAe2qC,EAAY,GACnC,GACHz4B,GAAI,EAEN6Q,EAAKnjB,GAAG,cAAe+qC,EACzB,GAEK,SAASrM,EAAevb,EAAMa,EAAI1R,GACvC6Q,EAAKub,eAAe1a,EAAI8mB,EAAU3nB,EAAM7Q,GAC1C,CACO,SAASqsB,EAAcxb,EAAMqB,EAAKR,EAAI1R,GACzB,iBAAP0R,IAAiBA,EAAK,CAACA,IAClCA,EAAGza,SAAQgpB,IACLpP,EAAKzuB,QAAQsvB,GAAG1jB,QAAQiyB,GAAK,GAAGpP,EAAKzuB,QAAQsvB,GAAG7jB,KAAKoyB,EAAE,IAE7DpP,EAAKwb,cAAcna,EAAKsmB,EAAU3nB,EAAM7Q,GAC1C,CAkCO,SAAS04B,EAAetwC,GAC7B,OAAOA,EAAUlD,aAAekD,EAAUuM,OAA8B,iBAAdvM,GAA0BA,EAAUpH,OAAS,EAAIoH,EAAY,UACzH,CC5EA,MAAMuwC,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,EAAqBl8B,GAAKi8B,EAAaj8B,GCtB7C,ICDIm8B,EDCAC,EAAiB,CACnBC,SAAU,kBACVC,cAAe,GACfC,oBAAqB,GACrBC,4BAA4B,EAC5BC,mBAAoB,GACpBC,2BAA4B,CAAC,KAAM,SAAU,IAAK,KAClDhnB,aAAa,EACbinB,SDesBC,GAAQA,EAAKz3C,QAAQ62C,EAAiBE,ICbvD,SAASW,IACd,IAAIp3C,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFyzC,EAAiB,IACZA,KACA32C,EAEP,CACO,SAASq3C,IACd,OAAOV,CACT,CCnBO,SAASW,EAAQjoC,GACtBqnC,EAAernC,CACjB,CACO,SAASkoC,IACd,OAAOb,CACT,CCAA,SAASvlC,EAAY5M,EAAMizC,GACzB,IAAKjzC,EAAM,OAAO,EAClB,MAAMkzC,EAAOlzC,EAAKJ,MAAQI,EAAKJ,MAAM4B,SAAWxB,EAAKwB,SACrD,OAAIyxC,EAAoBC,EAAK74C,OAAS,IAC7B64C,CACX,CACA,SAASC,EAAYnzC,GACnB,IAAKA,EAAM,MAAO,GAClB,MAAMwB,EAAWxB,EAAKJ,MAAQI,EAAKJ,MAAM4B,SAAWxB,EAAKwB,SACzD,OAAOxB,EAAKJ,OAASI,EAAKJ,MAAMwzC,kBAAoBC,EAAW7xC,GAAYA,CAC7E,CAKA,SAAS6xC,EAAWlmC,GAClB,OAAOtO,MAAM0zB,QAAQplB,GAAQA,EAAO,CAACA,EACvC,CAQO,SAASmmC,EAAc9xC,EAAU+xC,GACtC,IAAK/xC,EAAU,MAAO,GACtB,IAAIgyC,EAAa,GACjB,MAAMC,EAAgBJ,EAAW7xC,GAC3BkyC,EAAYH,EAAYf,4BAA8Be,EAAYb,2BAA6Ba,EAAYb,2BAA6B,GAsC9I,OArCAe,EAAcnjC,SAAQ,CAACqjC,EAAOC,KAC5B,GAAqB,iBAAVD,EACTH,GAAc,GAAGG,SACZ,IAAI,IAAAE,gBAAeF,GAAQ,CAChC,MAAMG,EAAkB14C,OAAOqR,KAAKknC,EAAM/zC,OAAOvF,OAC3C05C,EAAkBL,EAAUrsC,QAAQssC,EAAM3sC,OAAS,EACnDgtC,EAAgBL,EAAM/zC,MAAM4B,SAClC,IAAKwyC,GAAiBD,GAAuC,IAApBD,EACvCN,GAAc,IAAIG,EAAM3sC,cACnB,GAAKgtC,GAAmBD,GAAuC,IAApBD,EAE3C,GAAIH,EAAM/zC,MAAMwzC,kBACrBI,GAAc,IAAII,OAAgBA,UAC7B,GAAIG,GAAuC,IAApBD,GAAkD,iBAAlBE,EAC5DR,GAAc,IAAIG,EAAM3sC,QAAQgtC,MAAkBL,EAAM3sC,YACnD,CACL,MAAM0qC,EAAU4B,EAAcU,EAAeT,GAC7CC,GAAc,IAAII,KAAclC,MAAYkC,IAC9C,MAREJ,GAAc,IAAII,OAAgBA,IAStC,MAAO,GAAc,OAAVD,EACT3nB,EAAK,kFACA,GAAqB,iBAAV2nB,EAAoB,CACpC,MAAM,OACJ1X,KACGlP,GACD4mB,EACElnC,EAAOrR,OAAOqR,KAAKsgB,GACzB,GAAoB,IAAhBtgB,EAAKpS,OAAc,CACrB,MAAMkB,EAAQ0gC,EAAS,GAAGxvB,EAAK,OAAOwvB,IAAWxvB,EAAK,GACtD+mC,GAAc,KAAKj4C,KACrB,MACEywB,EAAK,mJAAoJ2nB,EAE7J,MACE3nB,EAAK,qKAAsK2nB,EAC7K,IAEKH,CACT,CACA,SAASS,EAAYzyC,EAAU0yC,EAAchqB,EAAMqpB,EAAaY,EAAeC,GAC7E,GAAqB,KAAjBF,EAAqB,MAAO,GAChC,MAAMR,EAAYH,EAAYb,4BAA8B,GACtD2B,EAAgCH,GAAgB,IAAIriB,OAAO6hB,EAAUrtC,KAAIiuC,GAAQ,IAAIA,MAAQ/lC,KAAK,MAAMgK,KAAK27B,GACnH,IAAK1yC,IAAa6yC,IAAkCD,EAAgB,MAAO,CAACF,GAC5E,MAAM/mC,EAAO,CAAC,GACd,SAASonC,EAAQC,GACOnB,EAAWmB,GACnBlkC,SAAQqjC,IACC,iBAAVA,IACP/mC,EAAY+mC,GAAQY,EAAQpB,EAAYQ,IAAkC,iBAAVA,IAAuB,IAAAE,gBAAeF,IAAQv4C,OAAO6R,OAAOE,EAAMwmC,GAAM,GAEhJ,CACAY,CAAQ/yC,GACR,MAAMizC,EAAM,EAAKpyC,MAAM,MAAM6xC,SACvBzR,EAAO,IACRt1B,KACAgnC,GAEL,SAASO,EAAYf,EAAO3zC,EAAM20C,GAChC,MAAMH,EAASrB,EAAYQ,GACrBiB,EAAiBC,EAAOL,EAAQx0C,EAAKwB,SAAUmzC,GACrD,OAhFJ,SAA+BnzC,GAC7B,MAAiD,mBAA7CpG,OAAOsC,UAAUyN,SAASvN,KAAK4D,IAC5BA,EAAS0rC,OAAMyG,IAAS,IAAAE,gBAAeF,IAChD,CA6EWmB,CAAsBN,IAAqC,IAA1BI,EAAev6C,QAAgBs5C,EAAM/zC,OAAS+zC,EAAM/zC,MAAMwzC,kBAAoBoB,EAASI,CACjI,CACA,SAASG,EAAkBpB,EAAOqB,EAAOlV,EAAKvc,EAAG0xB,GAC3CtB,EAAMuB,OACRvB,EAAMnyC,SAAWwzC,EACjBlV,EAAI54B,MAAK,IAAAiuC,cAAaxB,EAAO,CAC3Bl2C,IAAK8lB,GACJ0xB,OAASj0C,EAAYg0C,KAExBlV,EAAI54B,QAAQ,EAAAkuC,SAAS/uC,IAAI,CAACstC,IAAQhiB,IAChC,MAAM/xB,EAAQ,IACT+xB,EAAE/xB,OAGP,cADOA,EAAMwzC,kBACN,gBAAoBzhB,EAAE3qB,KAAM,EAAS,CAAC,EAAGpH,EAAO,CACrDnC,IAAK8lB,EACLrgB,IAAKyuB,EAAEzuB,KACN+xC,EAAS,CAAC,EAAI,CACfzzC,SAAUwzC,IACT,IAGT,CACA,SAASH,EAAOQ,EAAWC,EAASX,GAClC,MAAMY,EAAalC,EAAWgC,GAE9B,OADiBhC,EAAWiC,GACZ/uC,QAAO,CAACu5B,EAAK9/B,EAAMujB,KACjC,MAAMiyB,EAAqBx1C,EAAKwB,UAAYxB,EAAKwB,SAAS,IAAMxB,EAAKwB,SAAS,GAAGkwC,SAAWxnB,EAAK6G,SAASkB,aAAa8D,YAAY/1B,EAAKwB,SAAS,GAAGkwC,QAASjP,EAAMvY,EAAKtvB,UACxK,GAAkB,QAAdoF,EAAKgH,KAAgB,CACvB,IAAIyuC,EAAMF,EAAWnV,SAASpgC,EAAKgO,KAAM,KACZ,IAAzB2mC,EAAct6C,QAAiBo7C,IAAKA,EAAMd,EAAc,GAAG30C,EAAKgO,OAC/DynC,IAAKA,EAAM,CAAC,GACjB,MAAM9B,EAA2C,IAAnCv4C,OAAOqR,KAAKzM,EAAKwxC,OAAOn3C,OAzG9C,SAAoB8zB,EAAQh0B,GAC1B,MAAMu7C,EAAY,IACbv7C,GAGL,OADAu7C,EAAU91C,MAAQxE,OAAO6R,OAAOkhB,EAAOvuB,MAAOzF,EAAOyF,OAC9C81C,CACT,CAmG6DC,CAAW,CAC9D/1C,MAAOI,EAAKwxC,OACXiE,GAAOA,EACJG,GAAY,IAAA/B,gBAAeF,GAC3BkC,EAAiCD,GAAahpC,EAAY5M,GAAM,KAAUA,EAAKuxC,YAC/EuE,EAAuBzB,GAAkD,iBAAVV,GAAsBA,EAAMuB,QAAUU,EACrGG,EAAuC,iBAAbv0C,GAAsC,OAAbA,GAAqBpG,OAAOuC,eAAeC,KAAK4D,EAAUxB,EAAKgO,MACxH,GAAqB,iBAAV2lC,EAAoB,CAC7B,MAAMp4C,EAAQ2uB,EAAK6G,SAASkB,aAAa8D,YAAY4d,EAAOlR,EAAMvY,EAAKtvB,UACvEklC,EAAI54B,KAAK3L,EACX,MAAO,GAAIqR,EAAY+mC,IAAUkC,EAAgC,CAE/Dd,EAAkBpB,EADJe,EAAYf,EAAO3zC,EAAM20C,GACP7U,EAAKvc,EACvC,MAAO,GAAIuyB,EAAsB,CAE/Bf,EAAkBpB,EADJkB,EAAOU,EAAYv1C,EAAKwB,SAAUmzC,GAChB7U,EAAKvc,EACvC,MAAO,GAAIgF,OAAOD,MAAM0tB,WAAWh2C,EAAKgO,OACtC,GAAI+nC,EAAkB,CAEpBhB,EAAkBpB,EADJe,EAAYf,EAAO3zC,EAAM20C,GACP7U,EAAKvc,EAAGvjB,EAAKuxC,YAC/C,MAAO,GAAIgC,EAAYf,4BAA8BkB,EAAUrsC,QAAQrH,EAAKgO,OAAS,EACnF,GAAIhO,EAAKuxC,YACPzR,EAAI54B,MAAK,IAAA5F,eAActB,EAAKgO,KAAM,CAChCvQ,IAAK,GAAGuC,EAAKgO,QAAQuV,WAElB,CACL,MAAMyxB,EAAQH,EAAOU,EAAYv1C,EAAKwB,SAAUmzC,GAChD7U,EAAI54B,MAAK,IAAA5F,eAActB,EAAKgO,KAAM,CAChCvQ,IAAK,GAAGuC,EAAKgO,QAAQuV,KACpByxB,GACL,MACK,GAAIh1C,EAAKuxC,YACdzR,EAAI54B,KAAK,IAAIlH,EAAKgO,eACb,CACL,MAAMgnC,EAAQH,EAAOU,EAAYv1C,EAAKwB,SAAUmzC,GAChD7U,EAAI54B,KAAK,IAAIlH,EAAKgO,QAAQgnC,MAAUh1C,EAAKgO,QAC3C,MACK,GAAqB,iBAAV2lC,GAAuBiC,EAIvCb,EAAkBpB,EAAO6B,EAAoB1V,EAAKvc,EAA4B,IAAzBvjB,EAAKwB,SAASnH,SAAiBm7C,OAJlC,CAClD,MAAM9D,EAAU1xC,EAAKwB,SAAS,GAAKg0C,EAAqB,KACpD9D,GAAS5R,EAAI54B,KAAKwqC,EACxB,CAGF,MAAO,GAAkB,SAAd1xC,EAAKgH,KAAiB,CAC/B,MAAMivC,EAAgB1C,EAAYd,mBAC5Bf,EAAU0C,EAAiBb,EAAYZ,SAASzoB,EAAK6G,SAASkB,aAAa8D,YAAY/1B,EAAK0xC,QAASjP,EAAMvY,EAAKtvB,WAAasvB,EAAK6G,SAASkB,aAAa8D,YAAY/1B,EAAK0xC,QAASjP,EAAMvY,EAAKtvB,UAC/Lq7C,EACFnW,EAAI54B,MAAK,IAAA5F,eAAc20C,EAAe,CACpCx4C,IAAK,GAAGuC,EAAKgO,QAAQuV,KACpBmuB,IAEH5R,EAAI54B,KAAKwqC,EAEb,CACA,OAAO5R,CAAG,GACT,GACL,CAKA,OAAOqT,EAJQ0B,EAAO,CAAC,CACrBK,OAAO,EACP1zC,SAAUA,GAAY,KACpBizC,EAAKpB,EAAW7xC,GAAY,KACN,GAC5B,CACO,SAAS00C,EAAMjtC,GACpB,IAAI,SACFzH,EAAQ,MACRuyB,EAAK,OACLoiB,EAAM,QACNC,EAAO,QACP/tB,EAAO,SACPguB,EAAW,CAAC,EAAC,OACbxgC,EAAM,SACNygC,EAAQ,WACRzxC,EAAU,GACVkmB,EACAb,KAAMqsB,EACNvlB,EAAGwlB,EAAU,eACbpC,KACGqC,GACDxtC,EACJ,MAAMihB,EAAOqsB,GAAiBvD,IAC9B,IAAK9oB,EAEH,OADA0nB,EAAS,4EACFpwC,EAET,MAAMwvB,EAAIwlB,GAActsB,EAAK8G,EAAExxB,KAAK0qB,IAAS,CAAC4D,GAAKA,GAC/CzF,IAASguB,EAAShuB,QAAUA,GAChC,MAAMquB,EAAsB,IACvB5D,OACC5oB,EAAKzuB,SAAWyuB,EAAKzuB,QAAQgwB,OAEnC,IAAIX,EAAaC,GAAMiG,EAAEjG,IAAMb,EAAKzuB,SAAWyuB,EAAKzuB,QAAQuvB,UAC5DF,EAAmC,iBAAfA,EAA0B,CAACA,GAAcA,GAAc,CAAC,eAC5E,MAAM6rB,EAAerD,EAAc9xC,EAAUk1C,GACvChvB,EAAe4uB,GAAYK,GAAgBD,EAAoBnE,qBAAuB6D,GACtF,aACJQ,GACEF,EACEj5C,EAAM24C,IAAYQ,EAAeA,EAAaD,GAAgBjvB,GAAgBivB,GAAgBjvB,GAC9FmvB,EAAwBhhC,EAASwgC,EAASnlB,cAAgB,CAC9DA,cAAe,IACVmlB,EAASnlB,cACZzI,OAAQ,MACRtsB,OAAQ,QAGNg4C,EAAgB,IACjBkC,EACHtiB,WACGle,KACAghC,EACHnvB,eACAqD,GAAID,GAGA4mB,EAAUuC,EAAYpvC,GAAcrD,EADtB/D,EAAMuzB,EAAEvzB,EAAK02C,GAAiBzsB,EACewC,EAAMwsB,EAAqBvC,EAAeC,GACrG0C,OAAyB91C,IAAXm1C,EAAuBA,EAASO,EAAoBK,mBACxE,OAAOD,GAAc,IAAAx1C,eAAcw1C,EAAaL,EAAiB/E,GAAWA,CAC9E,CCrPO,MAAMsF,EAAmB,CAC9BhwC,KAAM,WACN,IAAAskB,CAAKxgB,GACH+nC,EAAY/nC,EAASrP,QAAQgwB,OAC7BsnB,EAAQjoC,EACV,GCFWmsC,GAAc,IAAA54C,iBACpB,MAAM64C,EACX,WAAA5rC,GACEtM,KAAKm4C,eAAiB,CAAC,CACzB,CACA,iBAAAC,CAAkBtsB,GAChBA,EAAWxa,SAAQya,IACZ/rB,KAAKm4C,eAAepsB,KAAK/rB,KAAKm4C,eAAepsB,IAAM,EAAI,GAEhE,CACA,iBAAAssB,GACE,OAAOj8C,OAAOqR,KAAKzN,KAAKm4C,eAC1B,EAEK,SAASG,EAAoBC,GAClC,OAAOC,GAAO,IAAI7wC,SAAQC,IACxB,MAAM6wC,EAAmBC,IACrBH,EAAaG,gBACfH,EAAaG,gBAAgBF,GAAK9wC,MAAKixC,IACrC/wC,EAAQ,IACH+wC,KACAF,GACH,IAGJ7wC,EAAQ6wC,EACV,GAEJ,CACO,SAASC,IACd,MAAMxtB,EAAO8oB,IACPloB,EAAaZ,EAAK0tB,iBAAmB1tB,EAAK0tB,iBAAiBP,oBAAsB,GACjFxU,EAAM,CAAC,EACPgV,EAAmB,CAAC,EAS1B,OARA3tB,EAAKvvB,UAAU2V,SAAQ+c,IACrBwqB,EAAiBxqB,GAAK,CAAC,EACvBvC,EAAWxa,SAAQya,IACjB8sB,EAAiBxqB,GAAGtC,GAAMb,EAAK8F,kBAAkB3C,EAAGtC,IAAO,CAAC,CAAC,GAC7D,IAEJ8X,EAAIgV,iBAAmBA,EACvBhV,EAAIiV,gBAAkB5tB,EAAKtvB,SACpBioC,CACT,CC5CO,SAAS,EAAM55B,GACpB,IAAI,SACFzH,EAAQ,MACRuyB,EAAK,OACLoiB,EAAM,QACNC,EAAO,QACP/tB,EAAO,SACPguB,EAAW,CAAC,EAAC,OACbxgC,EAAM,SACNygC,EAAQ,WACRzxC,EAAU,GACVkmB,EACAb,KAAMqsB,EACNvlB,EAAGwlB,EAAU,eACbpC,KACGqC,GACDxtC,EACJ,MACEihB,KAAM6tB,EACN/sB,UAAWgtB,IACT,IAAA/0C,YAAWg0C,IAAgB,CAAC,EAC1B/sB,EAAOqsB,GAAiBwB,GAAmB/E,IAC3ChiB,EAAIwlB,GAActsB,GAAQA,EAAK8G,EAAExxB,KAAK0qB,GAC5C,OAAOgsB,EAAoB,CACzB10C,WACAuyB,QACAoiB,SACAC,UACA/tB,UACAguB,WACAxgC,SACAygC,WACAzxC,aACAkmB,GAAIA,GAAMiG,GAAKA,EAAEjG,IAAMitB,GAAwB9tB,GAAQA,EAAKzuB,SAAWyuB,EAAKzuB,QAAQuvB,UACpFd,OACA8G,EAAGwlB,EACHpC,oBACGqC,GAEP,CCxCA,MAAMwB,EAAc,CAAC18C,EAAO28C,KAC1B,MAAMh1C,GAAM,IAAAC,UAIZ,OAHA,IAAAkY,YAAU,KACRnY,EAAIG,QAAU60C,EAASh1C,EAAIG,QAAU9H,CAAK,GACzC,CAACA,EAAO28C,IACJh1C,EAAIG,OAAO,EAEb,SAAS80C,EAAeptB,GAC7B,IAAInrB,EAAQjB,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACjF,MACEurB,KAAMqsB,GACJ32C,GAEFsqB,KAAM6tB,EACN/sB,UAAWgtB,IACT,IAAA/0C,YAAWg0C,IAAgB,CAAC,EAC1B/sB,EAAOqsB,GAAiBwB,GAAmB/E,IAEjD,GADI9oB,IAASA,EAAK0tB,mBAAkB1tB,EAAK0tB,iBAAmB,IAAIV,IAC3DhtB,EAAM,CACT0nB,EAAS,0EACT,MAAMwG,EAAY,CAACtqB,EAAGuqB,IACc,iBAAvBA,EAAwCA,EAC/CA,GAAoD,iBAAvBA,GAA8E,iBAApCA,EAAmB3wB,aAAkC2wB,EAAmB3wB,aAC5I7oB,MAAM0zB,QAAQzE,GAAKA,EAAEA,EAAEzzB,OAAS,GAAKyzB,EAExCwqB,EAAc,CAACF,EAAW,CAAC,GAAG,GAIpC,OAHAE,EAAYtnB,EAAIonB,EAChBE,EAAYpuB,KAAO,CAAC,EACpBouB,EAAYC,OAAQ,EACbD,CACT,CACIpuB,EAAKzuB,QAAQgwB,YAAqCzqB,IAA5BkpB,EAAKzuB,QAAQgwB,MAAMyW,MAAoB0P,EAAS,uGAC1E,MAAM2B,EAAc,IACfT,OACA5oB,EAAKzuB,QAAQgwB,SACb7rB,IAEC,YACJ8rB,EAAW,UACXqZ,GACEwO,EACJ,IAAIzoB,EAAaC,GAAMitB,GAAwB9tB,EAAKzuB,SAAWyuB,EAAKzuB,QAAQuvB,UAC5EF,EAAmC,iBAAfA,EAA0B,CAACA,GAAcA,GAAc,CAAC,eACxEZ,EAAK0tB,iBAAiBR,mBAAmBltB,EAAK0tB,iBAAiBR,kBAAkBtsB,GACrF,MAAMytB,GAASruB,EAAKoZ,eAAiBpZ,EAAK8Z,uBAAyBlZ,EAAWoiB,OAAM5T,GRU/E,SAA4BvO,EAAIb,GACrC,IAAIzuB,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAKurB,EAAKvvB,WAAcuvB,EAAKvvB,UAAUN,YAIqB2G,IAArCkpB,EAAKzuB,QAAQ2zB,oBAI7BlF,EAAK6M,mBAAmBhM,EAAI,CACjCQ,IAAK9vB,EAAQ8vB,IACbga,SAAU,CAAC4M,EAAc9M,KACvB,GAAI5pC,EAAQ42C,UAAY52C,EAAQ42C,SAAShrC,QAAQ,qBAAuB,GAAK8qC,EAAaphB,SAASqE,iBAAiBuL,SAAWwR,EAAa3N,uBAAyBa,EAAe8M,EAAa3N,qBAAsBzZ,GAAK,OAAO,CAAK,IA7B9O,SAAsCA,EAAIb,GACxC,IAAIzuB,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAM4sB,EAAMrB,EAAKvvB,UAAU,GACrB6wB,IAActB,EAAKzuB,SAAUyuB,EAAKzuB,QAAQ+vB,YAC1C4Z,EAAUlb,EAAKvvB,UAAUuvB,EAAKvvB,UAAUN,OAAS,GACvD,GAA0B,WAAtBkxB,EAAIrwB,cAA4B,OAAO,EAC3C,MAAMmqC,EAAiB,CAAChY,EAAGiM,KACzB,MAAMgM,EAAYpb,EAAK6G,SAASqE,iBAAiBryB,MAAM,GAAGsqB,KAAKiM,KAC/D,OAAsB,IAAfgM,GAAkC,IAAdA,CAAe,EAE5C,QAAI7pC,EAAQ42C,UAAY52C,EAAQ42C,SAAShrC,QAAQ,qBAAuB,GAAK6iB,EAAK6G,SAASqE,iBAAiBuL,SAAWzW,EAAKsa,uBAAyBa,EAAenb,EAAKsa,qBAAsBzZ,KAC3Lb,EAAK6F,kBAAkBxE,EAAKR,IAC3Bb,EAAK6G,SAASqE,iBAAiBuL,WAAWzW,EAAKzuB,QAAQ0vB,WAAcjB,EAAKzuB,QAAQmnC,4BACnFyC,EAAe9Z,EAAKR,IAASS,IAAe6Z,EAAeD,EAASra,IAE1E,CASWytB,CAA6BztB,EAAIb,EAAMzuB,IAL9Cm2C,EAAS,yCAA0C1nB,EAAKvvB,YACjD,EAYX,CQ1B2Fo8B,CAAmBuC,EAAGpP,EAAMqpB,KACrH,SAASkF,IACP,OAAOvuB,EAAK4a,UAAUllC,EAAM2rB,KAAO,KAA6B,aAAvBgoB,EAAYmF,OAAwB5tB,EAAaA,EAAW,GAAIia,EAC3G,CACA,MAAO/T,EAAG2nB,IAAQ,IAAAC,UAASH,GAC3B,IAAII,EAAW/tB,EAAWvc,OACtB3O,EAAM2rB,MAAKstB,EAAW,GAAGj5C,EAAM2rB,MAAMstB,KACzC,MAAMC,EAAmBb,EAAYY,GAC/BE,GAAY,IAAA51C,SAAO,IACzB,IAAAkY,YAAU,KACR,MAAM,SACJg3B,EAAQ,cACRC,GACEiB,EAgBJ,SAASyF,IACHD,EAAU11C,SAASs1C,EAAKF,EAC9B,CAGA,OApBAM,EAAU11C,SAAU,EACfk1C,GAAU7sB,IACT9rB,EAAM2rB,IACRma,EAAcxb,EAAMtqB,EAAM2rB,IAAKT,GAAY,KACrCiuB,EAAU11C,SAASs1C,EAAKF,EAAK,IAGnChT,EAAevb,EAAMY,GAAY,KAC3BiuB,EAAU11C,SAASs1C,EAAKF,EAAK,KAInCF,GAASO,GAAoBA,IAAqBD,GAAYE,EAAU11C,SAC1Es1C,EAAKF,GAKHpG,GAAYnoB,GAAMA,EAAKnjB,GAAGsrC,EAAU2G,GACpC1G,GAAiBpoB,GAAMA,EAAK0W,MAAM75B,GAAGurC,EAAe0G,GACjD,KACLD,EAAU11C,SAAU,EAChBgvC,GAAYnoB,GAAMmoB,EAASzqC,MAAM,KAAK0I,SAAQhO,GAAK4nB,EAAK/iB,IAAI7E,EAAG02C,KAC/D1G,GAAiBpoB,GAAMooB,EAAc1qC,MAAM,KAAK0I,SAAQhO,GAAK4nB,EAAK0W,MAAMz5B,IAAI7E,EAAG02C,IAAY,CAChG,GACA,CAAC9uB,EAAM2uB,IACV,MAAMI,GAAY,IAAA91C,SAAO,IACzB,IAAAkY,YAAU,KACJ09B,EAAU11C,UAAY41C,EAAU51C,SAClCs1C,EAAKF,GAEPQ,EAAU51C,SAAU,CAAK,GACxB,CAAC6mB,EAAM6a,IACV,MAAMlC,EAAM,CAAC7R,EAAG9G,EAAMquB,GAItB,GAHA1V,EAAI7R,EAAIA,EACR6R,EAAI3Y,KAAOA,EACX2Y,EAAI0V,MAAQA,EACRA,EAAO,OAAO1V,EAClB,IAAK0V,IAAU7sB,EAAa,OAAOmX,EACnC,MAAM,IAAIl8B,SAAQC,IACZhH,EAAM2rB,IACRma,EAAcxb,EAAMtqB,EAAM2rB,IAAKT,GAAY,IAAMlkB,MAEjD6+B,EAAevb,EAAMY,GAAY,IAAMlkB,KACzC,GAEJ,CCxGO,SAASsyC,EAAgBnuB,GAC9B,IAAItvB,EAAUkD,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAO,SAAgBw6C,GACrB,SAASC,EAAuBnwC,GAC9B,IAAI,aACFowC,KACGlZ,GACDl3B,EACJ,MAAO+nB,EAAG9G,EAAMquB,GAASJ,EAAeptB,EAAI,IACvCoV,EACH4E,UAAWtpC,EAAQspC,YAEfuU,EAAgB,IACjBnZ,EACHnP,IACA9G,OACAqvB,OAAQhB,GAOV,OALI98C,EAAQ+9C,SAAWH,EACrBC,EAAcp2C,IAAMm2C,GACV59C,EAAQ+9C,SAAWH,IAC7BC,EAAcD,aAAeA,IAExB,IAAA/3C,eAAc63C,EAAkBG,EACzC,CACAF,EAAuB76C,YAAc,0BAA0BwzC,EAAeoH,MAC9EC,EAAuBD,iBAAmBA,EAI1C,OAAO19C,EAAQ+9C,SAAU,IAAAlM,aAHN,CAAC1tC,EAAOsD,KAAQ,IAAA5B,eAAc83C,EAAwBh+C,OAAO6R,OAAO,CAAC,EAAGrN,EAAO,CAChGy5C,aAAcn2C,OAEuCk2C,CACzD,CACF,CClCO,SAASK,EAAY75C,GAC1B,MAAM,GACJmrB,EAAE,SACFvpB,KACG/F,GACDmE,GACGoxB,EAAG9G,EAAMquB,GAASJ,EAAeptB,EAAItvB,GAC5C,OAAO+F,EAASwvB,EAAG,CACjB9G,OACAqB,IAAKrB,EAAKtvB,UACT29C,EACL,CCVO,SAAS3sB,EAAgB3iB,GAC9B,IAAI,KACFihB,EAAI,UACJc,EAAS,SACTxpB,GACEyH,EACJ,MAAM1N,GAAQ,IAAAm+C,UAAQ,KAAM,CAC1BxvB,OACAc,eACE,CAACd,EAAMc,IACX,OAAO,IAAA1pB,eAAc21C,EAAY11C,SAAU,CACzChG,SACCiG,EACL,CCbO,SAASm4C,EAAO9B,EAAkBC,GACvC,IAAIl4C,EAAQjB,UAAUtE,OAAS,QAAsB2G,IAAjBrC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACjF,MACEurB,KAAMqsB,GACJ32C,GAEFsqB,KAAM6tB,IACJ,IAAA90C,YAAWg0C,IAAgB,CAAC,EAC1B/sB,EAAOqsB,GAAiBwB,GAAmB/E,IAC7C9oB,EAAKzuB,SAAWyuB,EAAKzuB,QAAQ8nC,UAC7BsU,IAAqB3tB,EAAK8Z,uBAC5B9Z,EAAK6G,SAAS4G,cAAcxqB,KAAO0qC,EACnC3tB,EAAKzuB,QAAQsvB,GAAK3vB,OAAOya,OAAOgiC,GAAkBtxC,QAAO,CAACu5B,EAAK8Z,KAC7Dx+C,OAAOqR,KAAKmtC,GAActpC,SAAQya,IAC5B+U,EAAIz4B,QAAQ0jB,GAAM,GAAG+U,EAAI54B,KAAK6jB,EAAG,IAEhC+U,IACN5V,EAAKzuB,QAAQsvB,IAChBb,EAAK8Z,sBAAuB,EAC5B9Z,EAAKoZ,eAAgB,GAEnBwU,IAAoB5tB,EAAK2vB,0BAC3B3vB,EAAKyB,eAAemsB,GACpB5tB,EAAK2vB,yBAA0B,GAEnC,CCvBO,SAASC,IACd,OAAO,SAAgBX,GACrB,SAASY,EAAe9wC,GACtB,IAAI,iBACF4uC,EAAgB,gBAChBC,KACG3X,GACDl3B,EAEJ,OADA0wC,EAAO9B,EAAkBC,IAClB,IAAAx2C,eAAc63C,EAAkB,IAClChZ,GAEP,CAIA,OAHA4Z,EAAerC,gBAAkBJ,EAAoB6B,GACrDY,EAAex7C,YAAc,kBAAkBwzC,EAAeoH,MAC9DY,EAAeZ,iBAAmBA,EAC3BY,CACT,CACF,CCVO,MAAMC,EAAO,IAAM,GACbC,EAAO,IAAM,GACb7e,EAAS,IAAM,GACf,EAAS,IAAM,GACf8e,GAAS,IAAM,GACfC,GAAgB,IAAM","sources":["webpack://haraldgermer.de/./node_modules/browser-lang/dist/index.js","webpack://haraldgermer.de/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://haraldgermer.de/./node_modules/gatsby-react-router-scroll/index.js","webpack://haraldgermer.de/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://haraldgermer.de/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://haraldgermer.de/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://haraldgermer.de/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://haraldgermer.de/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://haraldgermer.de/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://haraldgermer.de/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://haraldgermer.de/./.cache/api-runner-browser-plugins.js","webpack://haraldgermer.de/./.cache/api-runner-browser.js","webpack://haraldgermer.de/./.cache/create-content-digest-browser-shim.js","webpack://haraldgermer.de/./.cache/emitter.js","webpack://haraldgermer.de/./node_modules/mitt/dist/mitt.es.js","webpack://haraldgermer.de/./.cache/normalize-page-path.js","webpack://haraldgermer.de/./.cache/find-path.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://haraldgermer.de/./.cache/slice/server-slice-renderer.js","webpack://haraldgermer.de/./.cache/slice/server-slice.js","webpack://haraldgermer.de/./.cache/slice/inline-slice.js","webpack://haraldgermer.de/./.cache/slice.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://haraldgermer.de/./.cache/gatsby-browser-entry.js","webpack://haraldgermer.de/./.cache/prefetch.js","webpack://haraldgermer.de/./.cache/loader.js","webpack://haraldgermer.de/./.cache/head/components/fire-callback-in-effect.js","webpack://haraldgermer.de/./.cache/head/constants.js","webpack://haraldgermer.de/./.cache/head/utils.js","webpack://haraldgermer.de/./.cache/head/head-export-handler-for-browser.js","webpack://haraldgermer.de/./.cache/page-renderer.js","webpack://haraldgermer.de/./.cache/route-announcer-props.js","webpack://haraldgermer.de/./.cache/navigation.js","webpack://haraldgermer.de/./node_modules/shallow-compare/es/index.js","webpack://haraldgermer.de/./.cache/ensure-resources.js","webpack://haraldgermer.de/./.cache/production-app.js","webpack://haraldgermer.de/./.cache/public-page-renderer-prod.js","webpack://haraldgermer.de/./.cache/public-page-renderer.js","webpack://haraldgermer.de/./.cache/react-dom-utils.js","webpack://haraldgermer.de/./.cache/redirect-utils.js","webpack://haraldgermer.de/./.cache/register-service-worker.js","webpack://haraldgermer.de/./.cache/slice/context.js","webpack://haraldgermer.de/./.cache/static-query.js","webpack://haraldgermer.de/./.cache/context-utils.js","webpack://haraldgermer.de/./.cache/strip-prefix.js","webpack://haraldgermer.de/./node_modules/gatsby-plugin-react-i18next/dist/i18nextContext.js","webpack://haraldgermer.de/./node_modules/gatsby-plugin-react-i18next/dist/plugin/wrapPageElement.js","webpack://haraldgermer.de/./node_modules/gatsby-plugin-react-i18next/dist/types.js","webpack://haraldgermer.de/./node_modules/gatsby-plugin-react-i18next/gatsby-browser.js","webpack://haraldgermer.de/./node_modules/i18next/dist/cjs/i18next.js","webpack://haraldgermer.de/./node_modules/invariant/browser.js","webpack://haraldgermer.de/./node_modules/outdent/lib-module/index.js","webpack://haraldgermer.de/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://haraldgermer.de/./node_modules/react-server-dom-webpack/index.js","webpack://haraldgermer.de/./node_modules/void-elements/index.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/extends.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js","webpack://haraldgermer.de/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://haraldgermer.de/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://haraldgermer.de/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://haraldgermer.de/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://haraldgermer.de/./node_modules/gatsby-script/dist/index.modern.mjs","webpack://haraldgermer.de/./node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","webpack://haraldgermer.de/./node_modules/react-i18next/dist/es/utils.js","webpack://haraldgermer.de/./node_modules/react-i18next/dist/es/unescape.js","webpack://haraldgermer.de/./node_modules/react-i18next/dist/es/defaults.js","webpack://haraldgermer.de/./node_modules/react-i18next/dist/es/i18nInstance.js","webpack://haraldgermer.de/./node_modules/react-i18next/dist/es/TransWithoutContext.js","webpack://haraldgermer.de/./node_modules/react-i18next/dist/es/initReactI18next.js","webpack://haraldgermer.de/./node_modules/react-i18next/dist/es/context.js","webpack://haraldgermer.de/./node_modules/react-i18next/dist/es/Trans.js","webpack://haraldgermer.de/./node_modules/react-i18next/dist/es/useTranslation.js","webpack://haraldgermer.de/./node_modules/react-i18next/dist/es/withTranslation.js","webpack://haraldgermer.de/./node_modules/react-i18next/dist/es/Translation.js","webpack://haraldgermer.de/./node_modules/react-i18next/dist/es/I18nextProvider.js","webpack://haraldgermer.de/./node_modules/react-i18next/dist/es/useSSR.js","webpack://haraldgermer.de/./node_modules/react-i18next/dist/es/withSSR.js","webpack://haraldgermer.de/./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;\nvar _gatsbyScript = require(\"gatsby-script\");\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\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 (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname));\n\n // Clear scripts after we've used them to avoid leaky behavior\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n};\n\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.\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\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;\nvar _integration = require(\"@builder.io/partytown/integration\");\nvar _getForwards = require(\"./get-forwards\");\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 const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n if (existingSnippet) {\n existingSnippet.remove();\n }\n if (existingSandbox) {\n existingSandbox.remove();\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-aktuelles-js\": () => import(\"./../../../src/pages/aktuelles.js\" /* webpackChunkName: \"component---src-pages-aktuelles-js\" */),\n \"component---src-pages-archiv-js\": () => import(\"./../../../src/pages/archiv.js\" /* webpackChunkName: \"component---src-pages-archiv-js\" */),\n \"component---src-pages-biographie-js\": () => import(\"./../../../src/pages/biographie.js\" /* webpackChunkName: \"component---src-pages-biographie-js\" */),\n \"component---src-pages-en-aktuelles-js\": () => import(\"./../../../src/pages/en/aktuelles.js\" /* webpackChunkName: \"component---src-pages-en-aktuelles-js\" */),\n \"component---src-pages-en-archiv-js\": () => import(\"./../../../src/pages/en/archiv.js\" /* webpackChunkName: \"component---src-pages-en-archiv-js\" */),\n \"component---src-pages-impressum-js\": () => import(\"./../../../src/pages/impressum.js\" /* webpackChunkName: \"component---src-pages-impressum-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-kalligrafie-js\": () => import(\"./../../../src/pages/kalligrafie.js\" /* webpackChunkName: \"component---src-pages-kalligrafie-js\" */),\n \"component---src-pages-kontakt-js\": () => import(\"./../../../src/pages/kontakt.js\" /* webpackChunkName: \"component---src-pages-kontakt-js\" */),\n \"component---src-templates-album-js\": () => import(\"./../../../src/templates/album.js\" /* webpackChunkName: \"component---src-templates-album-js\" */),\n \"component---src-templates-bilder-js\": () => import(\"./../../../src/templates/bilder.js\" /* webpackChunkName: \"component---src-templates-bilder-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-react-i18next/gatsby-browser.js'),\n options: {\"plugins\":[],\"localeJsonSourceName\":\"locale\",\"languages\":[\"de\",\"en\"],\"defaultLanguage\":\"de\",\"siteUrl\":\"https://haraldgermer.de/\",\"i18nextOptions\":{\"interpolation\":{\"escapeValue\":false},\"nsSeparator\":false},\"pages\":[{\"matchPath\":\"/:lang?/aktuelles\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"en\"]},{\"matchPath\":\"/:lang?/archiv\",\"getLanguageFromPath\":true,\"excludeLanguages\":[\"en\"]}]},\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","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","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 (\n slicesContext.renderEnvironment === `engines` ||\n slicesContext.renderEnvironment === `dev-ssr`\n ) {\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://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","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\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\n/**\n * Utility to check the path that goes into doFetch for e.g. potential malicious intentions.\n * It checks for \"//\" because with this you could do a fetch request to a different domain.\n */\nconst shouldAbortFetch = rawPath => rawPath.startsWith(`//`)\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 = `${__PATH_PREFIX__}/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 Promise.resolve({\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 if (shouldAbortFetch(rawPath)) {\n return data\n }\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 if (shouldAbortFetch(rawPath)) {\n return data\n }\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 `html`,\n `body`,\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 serverData: input.serverData,\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid function\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 which may have been directly added or introduced by `wrapRootElement`\n * @param {string} tagName\n */\nexport function warnForInvalidTag(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = createWarningForInvalidTag(tagName)\n warnOnce(warning)\n }\n}\n\nfunction createWarningForInvalidTag(tagName) {\n return `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}.\\n\\nAlso make sure that wrapRootElement in gatsby-ssr/gatsby-browser doesn't contain UI elements: https://gatsby.dev/invalid-head-elements`\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\nexport function getValidHeadNodesAndAttributes(\n rootNode,\n htmlAndBodyAttributes = {\n html: {},\n body: {},\n }\n) {\n const seenIds = new Map()\n const validHeadNodes = []\n\n // Filter out non-element nodes before looping since we don't care about them\n for (const node of rootNode.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!isElementType(node)) continue\n\n if (isValidNodeName(nodeName)) {\n // and tags are treated differently, in that we don't render them, we only extract the attributes and apply them separetely\n if (nodeName === `html` || nodeName === `body`) {\n for (const attribute of node.attributes) {\n const isStyleAttribute = attribute.name === `style`\n\n // Merge attributes for same nodeName from previous loop iteration\n htmlAndBodyAttributes[nodeName] = {\n ...htmlAndBodyAttributes[nodeName],\n }\n\n if (!isStyleAttribute) {\n htmlAndBodyAttributes[nodeName][attribute.name] = attribute.value\n }\n\n // If there is already a style attribute, we need to merge them as otherwise the last one will \"win\"\n if (isStyleAttribute) {\n htmlAndBodyAttributes[nodeName].style = `${\n htmlAndBodyAttributes[nodeName]?.style\n ? htmlAndBodyAttributes[nodeName].style\n : ``\n }${attribute.value} `\n }\n }\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // // This is hack to make script tags work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n clonedNode = massageScript(clonedNode)\n }\n // Duplicate ids are not allowed in the head, so we need to dedupe them\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[\n indexOfPreviouslyInsertedNode\n ].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n } else {\n warnForInvalidTag(nodeName)\n }\n\n if (node.childNodes.length) {\n validHeadNodes.push(\n ...getValidHeadNodesAndAttributes(node, htmlAndBodyAttributes)\n .validHeadNodes\n )\n }\n }\n\n return { validHeadNodes, htmlAndBodyAttributes }\n}\n\nfunction massageScript(node) {\n const script = document.createElement(`script`)\n for (const attr of node.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = node.innerHTML\n\n return script\n}\n\nexport function isValidNodeName(nodeName) {\n return VALID_NODE_NAMES.includes(nodeName)\n}\n/*\n * For Head, we only care about element nodes(type = 1), so this util is used to skip over non-element nodes\n * For Node type, see https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n */\nexport function isElementType(node) {\n return node.nodeType === 1\n}\n\n/**\n * Removes all the head elements that were added by `Head`\n */\nexport function removePrevHeadElements() {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nexport function applyHtmlAndBodyAttributes(htmlAndBodyAttributes) {\n if (!htmlAndBodyAttributes) return\n\n const { html, body } = htmlAndBodyAttributes\n\n const htmlElement = document.querySelector(`html`)\n if (htmlElement) {\n Object.entries(html).forEach(([attributeName, attributeValue]) => {\n htmlElement.setAttribute(attributeName, attributeValue)\n })\n }\n\n const bodyElement = document.querySelector(`body`)\n if (bodyElement) {\n Object.entries(body).forEach(([attributeName, attributeValue]) => {\n bodyElement.setAttribute(attributeName, attributeValue)\n })\n }\n}\n\nexport function removeHtmlAndBodyAttributes(htmlAndBodyattributeList) {\n if (!htmlAndBodyattributeList) return\n\n const { html, body } = htmlAndBodyattributeList\n\n if (html) {\n const htmlElement = document.querySelector(`html`)\n html.forEach(attributeName => {\n if (htmlElement) {\n htmlElement.removeAttribute(attributeName)\n }\n })\n }\n\n if (body) {\n const bodyElement = document.querySelector(`body`)\n body.forEach(attributeName => {\n if (bodyElement) {\n bodyElement.removeAttribute(attributeName)\n }\n })\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 {\n headExportValidator,\n filterHeadProps,\n diffNodes,\n getValidHeadNodesAndAttributes,\n removePrevHeadElements,\n applyHtmlAndBodyAttributes,\n removeHtmlAndBodyAttributes,\n} from \"./utils\"\nimport { apiRunner } from \"../api-runner-browser\"\n\nconst hiddenRoot = document.createElement(`div`)\nconst keysOfHtmlAndBodyAttributes = {\n html: [],\n body: [],\n}\n\nconst onHeadRendered = () => {\n const { validHeadNodes, htmlAndBodyAttributes } =\n getValidHeadNodesAndAttributes(hiddenRoot)\n\n keysOfHtmlAndBodyAttributes.html = Object.keys(htmlAndBodyAttributes.html)\n keysOfHtmlAndBodyAttributes.body = Object.keys(htmlAndBodyAttributes.body)\n\n applyHtmlAndBodyAttributes(htmlAndBodyAttributes)\n\n /**\n * The rest of the code block below is a diffing mechanism to ensure that\n * the head elements aren't duplicted on every re-render.\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 // sigh ... and elements are not valid descedents of
(our hidden element)\n // react-dom in dev mode will warn about this. There doesn't seem to be a way to render arbitrary\n // user Head without hitting this issue (our hidden element could be just \"new Document()\", but\n // this can only have 1 child, and we don't control what is being rendered so that's not an option)\n // instead we continue to render to
, and just silence warnings for and elements\n // https://github.com/facebook/react/blob/e2424f33b3ad727321fc12e75c5e94838e84c2b5/packages/react-dom-bindings/src/client/validateDOMNesting.js#L498-L520\n const originalConsoleError = console.error.bind(console)\n console.error = (...args) => {\n if (\n Array.isArray(args) &&\n args.length >= 2 &&\n args[0]?.includes?.(`validateDOMNesting(...): %s cannot appear as`) &&\n (args[1] === `` || args[1] === ``)\n ) {\n return undefined\n }\n return originalConsoleError(...args)\n }\n\n /* We set up observer to be able to regenerate after react-refresh\n updates our hidden element.\n */\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 HeadElement = (\n \n )\n\n const WrapHeadElement = apiRunner(\n `wrapRootElement`,\n { element: HeadElement },\n HeadElement,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\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 {WrapHeadElement}\n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n removeHtmlAndBodyAttributes(keysOfHtmlAndBodyAttributes)\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(nextProps) {\n if (compareLocationProps(this.props.location, nextProps.location)) {\n onPreRouteUpdate(nextProps.location, this.props.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","\"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 this.observers[event] = this.observers[event] || [];\n this.observers[event].push(listener);\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] = this.observers[event].filter(l => l !== 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 = [].concat(this.observers[event]);\n cloned.forEach(observer => {\n observer(...args);\n });\n }\n if (this.observers['*']) {\n const cloned = [].concat(this.observers['*']);\n cloned.forEach(observer => {\n observer.apply(observer, [event, ...args]);\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}\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack.shift());\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 }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = 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}\nconst chars = [' ', ',', '?', '!', ';'];\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 = new RegExp(`(${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 paths = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n if (current[paths[i]] === undefined) {\n let j = 2;\n let p = paths.slice(i, i + j).join(keySeparator);\n let mix = current[p];\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n const joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n current = current[paths[i]];\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 = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n const result = getPath(this.data, path);\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' || Object.prototype.toString.apply(resources[m]) === '[object Array]') 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 };\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 (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 };\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 };\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' && resType === '[object Array]')) {\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 return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = resType === '[object Array]';\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' && resType === '[object Array]') {\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 defaultValue = 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 this.pluralResolver.getSuffixes(language, options).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 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: resolved,\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 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(lngOnly) === 0) 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 (Object.prototype.toString.apply(fallbacks) === '[object Array]') 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), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch {\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 iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const regexpStr = `${this.prefix}(.+?)${this.suffix}`;\n this.regexp = new RegExp(regexpStr, 'g');\n const regexpUnescapeStr = `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`;\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n const nestingRegexpStr = `${this.nestingPrefix}(.+?)${this.nestingSuffix}`;\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\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 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) return;\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\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);\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, format, lng, options) => 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 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 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);\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 `