{"version":3,"file":"static/chunks/2999-349cee5ae8ddd403.js","mappings":"yFACA,qCAA6C,CAC7C,QACA,CAAC,EAAC,CAMF,cACA,0CACA,cACA,SACK,CACL,EACA,GACA,8BACA,QACA,CAAK,CACL,4BACA,QACA,CAAK,CACL,0BACA,QACA,CACA,CAAC,CACD,uBACA,kBAAkB,EAAM,EACxB,yBAAiC,EAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,IACA,CACA,CACA,sBACA,cACA;AACA;AACA,IACA,CACA,CACA,sBACA,cACA;AACA;AACA,IACA,CACA,+BC/CA,4BAAmD,CACnD,cACA,eACA,QACA,CACA,CAAC,EAAC,IACF,EAAkC,EAAQ,KAA8C,EACxF,EAAsC,EAAQ,IAAmD,EADxD,EAEf,EAAQ,KAAoC,EACtE,UADiC,GAGjC,oCACA,2CACA,EAKM,cACN,YAEA,uBACA,yBAGA,oCAfA,uBAOA,MAWA,oHCxBgBA,qCAAAA,aARc,WACA,OAOvB,SAASA,EACdC,CAAY,CACZC,CAAuB,CACvBC,CAAsB,CACtBC,CAAsB,EAItB,GAAI,CAACF,GAAUA,IAAWC,EAAe,OAAOF,EAEhD,IAAMI,EAAQJ,EAAKK,WAAW,SAI9B,CAAKF,IACCG,CAAAA,EAAAA,EAAAA,KADa,QACA,EAACF,EAAO,SAAS,CAC9BE,EAAAA,EAAAA,aAAAA,EAAcF,EAAQ,IAAGH,EAAOI,WAAW,KAAO,EAIjDE,GAAAA,EAJwDP,aAIxDO,EAAcP,EAAO,IAAGC,EACjC,+BC5BA,qCAA6C,CAC7C,QACA,CAAC,EAAC,CAQF,cACA,0CACA,cACA,SACK,CACL,EACA,GACA,8BACA,QACA,CAAK,CACL,2BACA,QACA,CAAK,CACL,+BACA,QACA,CAAK,CACL,iCACA,QACA,CAAK,CACL,kCACA,QACA,CACA,CAAC,EACD,MAAqB,EAAQ,KAAuB,EACpD,EAAe,EAAQ,KAAa,CADR,CAE5B,EAAiB,EAAQ,KAAY,CADf,CAEtB,EAAiB,EAAQ,KAA4B,CAD7B,CAExB,UADwB,SAExB,uBACA,kBACA,uBACA,CACA,CACA,cACA,0BAQA,OAJA,oBACA,oBACA,cACA,CAAK,EACL,CACA,CACA,cACA,IAAY,uBAAqB,EACjC,QACA,mCAEA,WAAY,GAAS,KACrB,QACA,CACA,QACA,gCAKU,GAEiC,2BAC3C,iCAEA,mGACA,aACA,cACA,eACA,CAAa,CAEb,CACA,gCAEA,IAKA,EALA,OAMA,GALA,6CAEA,WAGA,yBACA,qBACU,CAEV,wCAOA,EANA,wBAMA,iBAFA,yBAIA,CACA,4BACA,gBACA,qDACA,cACA,SAMA,gBAAmC,CACnC,MACA,EACS,CACT,CACA,6BAEA,WAIA,MAHA,qCACA,WAEA,yBACA,gBACA,qDACA,cACA,wBAMA,+BAAmD,CACnD,MACA,EACS,CACT,CACA,8CC1IA,qCAA6C,CAC7C,QACA,CAAC,EAAC,CAOF,cACA,0CACA,cACA,SACK,CACL,EACA,GACA,0BACA,QACA,CAAK,CACL,6BACA,QACA,CAAK,CACL,8BACA,QACA,CAAK,CACL,yCACA,QACA,CACA,CAAC,EACD,UAOA,4BAIY,EAAO,WAEnB,CAAK,CACL,EACA,MAIA,eAEA,EACA,aACA,2BACA,CACA,aAIA,sCAEA,+BCjDA,iBAEA,8HACA,aACA,cACA,eACA,CAAS,CAgBT,CA9BA,4BAA2C,CAC3C,cACA,eACA,QACA,CACA,CAAC,EAAC,EAC4C,IAAgD,EAC1E,EAAQ,KAAoB,IADH,QAClB,+GCDXO,qCAAAA,aAVc,OAUvB,SAASA,EAAiBR,CAAY,CAAES,CAAc,EAa3D,GAAI,CAACH,GAAAA,EAAAA,aAAAA,EAAcN,EAAMS,GACvB,MADgC,CACzBT,EAIT,IAAMU,EAAgBV,EAAKW,KAAK,CAACF,EAAOG,MAAM,SAG9C,EAAkBC,UAAU,CAAC,KACpBH,CAD0B,CAM3B,IAAGA,CACb,6BChCA,qCAA6C,CAC7C,QACA,CAAC,EAAC,OACF,mCAAkD,CAClD,cACA,eACA,QACA,CACA,CAAC,CACD,CADE,MACF,EACA,cACA,MACA,CAEA,kCACA,IACA,GACA,CAAS,EAGT,eACA,aACA,CACA,gBC5BA,MAAY,qBAEZ,IADA,IACA,UACA,WACA,OACA,KACA,UACA,SACA,SAOA,IALA,KAEA,cACA,OACA,KACS,IAAW,0BAKpB,IAHA,cACA,OACA,KACS,IAAW,0BAEpB,SACA,WACI,SACJ,0BAEA,iBACA,KAEA,gCACA,EAEA,OAAa,uBAEb,IADA,MACA,UACA,WACA,OACA,gCACA,UACA,SACA,uBAmCA,IA/BA,MAFA,gBAEA,SACA,cACA,MAEA,mCACA,yBACA,IACA,MAEA,OACA,OAEA,qBAEA,SACA,IACA,MAGA,QACA,IACA,KACM,QACN,wBACA,OAEA,kCACA,MAIS,KAAW,+BAIpB,IAFA,SACA,KACS,IAAU,+BAEnB,eACA,6BCnFA,qCAA6C,CAC7C,QACA,CAAC,EAAC,CAKF,cACA,0CACA,cACA,SACK,CACL,EACA,GACA,2BACA,QACA,CAAK,CACL,gCACA,QACA,CACA,CAAC,EACD,kBAOA,OANA,sBACA,wBACA,gBACA,gBACA,sBACA,gBACA,CACA,CAAC,GAAG,EACJ,cAMA,OALA,sBACA,wBACA,gBACA,gBACA,gBACA,CACA,CAAC,GAAG,+BCrCJ,qCAA6C,CAC7C,QACA,CAAC,EAAC,CAQF,cACA,0CACA,cACA,SACK,CACL,EACA,GACA,mCACA,QACA,CAAK,CACL,6BACA,QACA,CAAK,CACL,uCACA,QACA,CAAK,CACL,oCACA,QACA,CAAK,CACL,gCACA,sCAEA,CAAC,EACD,MAAsC,EAAQ,KAAoC,EAClF,UAD6C,CAC7C,GACA,gDACA,MACA,sBACA,SAEA,+EAEA,uCAAuD,EAAkB,yFACzE,aACA,cACA,eACA,CAAa,EAEb,oBACA,uCAAuD,EAAkB,mLACzE,YACA,cACA,eACA,CAAa,EACH,6BACV,uCAAuD,EAAkB,8LACzE,YACA,cACA,eACA,CAAa,CAEb,CACA,uCAA+C,EAAkB,yIACjE,aACA,cACA,eACA,CAAK,CACL,CACA,oBACA,+CACA,2BAEA,IACA,CACA,oBACA,yEACA,mBACA,wBAIA,2BAEA,IACA,CACA,cACA,MACA,qIACA,8BClFA,qCAA6C,CAC7C,QACA,CAAC,EAAC,CAiBF,cACA,0CACA,cACA,SACK,CACL,EACA,GACA,yBACA,QACA,CAAK,CACL,qCACA,QACA,CAAK,CACL,0BACA,QACA,CAAK,CACL,8BACA,QACA,CAAK,CACL,4BACA,QACA,CAAK,CACL,0BACA,QACA,CAAK,CACL,8BACA,QACA,CAAK,CACL,0BACA,QACA,CAAK,CACL,oCACA,QACA,CAAK,CACL,oBACA,QACA,CAAK,CACL,sBACA,QACA,CAAK,CACL,+BACA,QACA,CAAK,CACL,sBACA,QACA,CAAK,CACL,2BACA,QACA,CACA,CAAC,EACD,kBAaA,OAZA,2CACA,uBACA,yBACA,2CACA,6BACA,6EACA,iDACA,yCACA,uCACA,2DACA,mDACA,mCACA,CACA,CAAC,MAAqB,EACtB,cAGA,OAFA,yEACA,iDACA,CACA,CAAC,MAAyB,EAC1B,cAKA,OAJA,mDACA,mCACA,+DACA,2CACA,CACA,CAAC,MAAqB,EACtB,cAgCA,OA/BA,2CACA,yCACA,2DACA,iEACA,+DACA,6DACA,iEACA,6DACA,iEACA,qDACA,6CACA,iCACA,iCACA,yCACA,iDACA,2CACA,uDACA,yDACA,mDACA,yEACA,uDACA,6CACA,2CACA,uDACA,uCACA,+CAEA,gBACA,0BACA,4BACA,gCACA,CACA,CAAC,MAAyB,EAC1B,cAEA,OADA,wCACA,CACA,CAAC,MAAsB,EACvB,cAMA,OALA,iDACA,yCACA,yCACA,yCACA,6CACA,CACA,CAAC,MAAiB,EAClB,cAKA,OAJA,4CACA,4DACA,0CACA,0BACA,CACA,CAAC,MAAoB,EACrB,cAEA,OADA,qCACA,CACA,CAAC,MAAiB,EAClB,cAEA,OADA,+BACA,CACA,CAAC,MAAe,EAChB,cAEA,OADA,gDACA,CACA,CAAC,MAAgC,EACjC,cAGA,OAFA,sDACA,sDACA,CACA,CAAC,MAA0B,EAC3B,cAEA,OADA,+BACA,CACA,CAAC,MAAqB,EACtB,OACA,qBACA,2BACA,4BACA,wBACA,kBACA,0BACA,wBACA,kBACA,mCACA,mCACA,mCACA,qCACA,oCACA,uCACA,+BACA,wCACA,CACA,GACA,oCACA,qCACA,wCACA,oKCrMaI,qBAAqB,mBAArBA,GAIGC,uBAAuB,mBAAvBA,KANhB,IAAMC,EAA0B,yBAEzB,OAAMF,UAA8BG,wBAApC,iBACWC,IAAAA,CAAOF,EACzB,CAEO,SAASD,EACdI,CAAc,QAEO,UAAjB,OAAOA,GAAgC,OAAVA,CAAkB,CAAE,UAAUA,GAIxDA,EAJwDA,CAAI,EAAI,CAItD,GAAKH,CACxB,yOCdA,OACA,eAAkB,WACC,cAEF,uBACC,eACA,wBACC,mBAEG,4BACC,oBACA,6BAGvB,iBACI,UACmB,mBACD,WACR,kBACO,UAAwD,CAK7E,YAGA,gBAAsB,kBACtB,gBAAsB,kBACtB,eAAqB,iBACrB,oBAA0B,sBAC1B,qBAA2B,uBAC3B,kBAAwB,oBACxB,oBAA0B,sBAC1B,mBAAyB,qECjCzB,qCAA6C,CAC7C,QACA,CAAC,EAAC,CAsBF,SANA,KACA,0CACA,cACA,QACA,CAAK,CACL,EACA,GACA,wBACA,QACA,CAAK,CACL,qCACA,QACA,CAAK,CACL,oCACA,QACA,CAAK,CACL,8BACA,QACA,CAAK,CACL,mCACA,QACA,CAAK,CACL,yCACA,QACA,CAAK,CACL,uCACA,QACA,CAAK,CACL,2CACA,QACA,CAAK,CACL,qCACA,QACA,CAAK,CACL,4BACA,QACA,CAAK,CACL,4BACA,QACA,CAAK,CACL,0BACA,QACA,CAAK,CACL,0BACA,QACA,CACA,CAAC,EACD,MAAgB,EAAQ,KAAqB,EAC7C,EAAmB,EAAQ,KAAwB,CAD5B,CAEvB,EAAyB,EAAQ,IAA4B,EAC7D,EAAmB,EAAQ,IAAqB,EAChD,CAFgC,CAEX,EAAQ,KAAe,EADlB,EAEC,EAAQ,KAAsB,CAD7B,CAE5B,UADkC,GAKlC,CAIA,sBACA,iBAGA,gBACA,+GACA,aACA,cACA,eACA,CAAS,EAGT,gBACA,YAEA,aAAY,cAAqB,oBAGjC,iBACA,eACA,CAAK,EACL,IACA,KAAU,aAAwB,KAClC,WACA,yBACA,eACA,CAAa,EACb,CAGA,WAKA,MAJA,4BAGA,SACA,CACA,CACA,cACA,2BACA,SACA,uBACA,SACA,CACA,CAAK,CACL,CACA,cACA,2BACA,SACA,aACA,SACA,CACA,CAAK,CACL,CACA,oBACA,oBACA,KACA,QACA,SAAgB,WAAc,eAC9B,KACA,MAEA,SACA,CACA,OAAW,EAAM,SACjB,CACA,sBACA,+BACA,QACA,CAAK,EACL,KACA,sBACA,4BACA,SAEA,eACA,SACA,CAAS,CACT,CAEA,OADA,YAEA,CACA,aACA,IAEA,EAFA,KACA,IAEA,MAEA,YACA,4BACA,IACA,6BACA,IACA,wBACA,IACA,YAA+B,WAA2B,KAC1D,WACA,WACA,gBAIA,WACA,IACA,YACA,CAAc,MAId,EAAc,OACd,SACA,WACA,CACA,CAAS,CACT,EACA,4BACA,eAEA,UACA,gBAEA,IACA,CAAS,CACT,QACA,KACA,iBAEA,CAAK,CACL,CACA,2BAAqC,4BAAwC,EAC7E,4GACA,CACA,cACA,SAGA,KACA,4BACA,qBACA,KACA,gBACA,MACA,MACA,kBACA,YACA,CACA,YACA,EAAc,IAEd,4DAGA,WACA,MACA,kBAMA,oCAEA,oBAEA,WAEA,6BACA,YACA,EAAsB,IACtB,aAEA,IACA,EAAkB,IAOlB,GACA,uBAEA,aACA,IAEA,CACA,CAAS,CACT,eAEA,MACA,gBACA,GACA,sBAEA,CACA,CACA,CAAK,CACL,CAyCA,cACA,WACA,KACA,oBACA,KACA,OAEA,mBAUA,8BACA,IACA,QACA,SAAwB,WAAc,eACtC,MACA,KACA,MACA,CACA,YACA,CACA,CAAU,SACV,UACA,CACA,CACA,4BACA,eACA,aAEA,GACA,QAEA,CAAS,CACT,SACA,MAGA,cACA,CACA,CAAK,CACL,CACA,uBAKA,aACA,SACA,4BACA,eACA,KACA,oBAEA,qEACA,SAIA,GAHA,KAGA,sDACA,OAGA,mBAIA,GAHA,aAGA,uDAEA,4DACA,YACA,CACA,EAAc,IACd,YAEA,CAAS,CACT,SAGA,8CACA,CACA,CAAK,CACL,CAsBA,aACA,SACA,KACA,4BACA,qBAEA,+DACA,OAEA,+DACA,OAEA,YACA,CAAS,CACT,SACA,SACA,kBACA,kBACA,UACA,mEAA8F,kBAA4B,YAC1H,CACA,CAAK,CACL,CASA,2BAAkD,oHAAqH,EAEvK,6BAMA,OAHA,mBACA,iBAEA,SAhBA,KACA,QACA,eACA,GACA,qBAEA,QACA,EASA,GAEA,IAEA,KAEA,oBAhMA,YACA,IACA,EADA,KAEA,MACA,4BACA,IACA,6BACA,IACA,sBACA,CAAc,MAId,EAAc,OACd,SACA,WACA,CACA,CAAS,CACT,EACA,4BACA,eACA,aAEA,IAEA,KACA,KACA,CAAS,CACT,SACA,sBACA,GAEA,sBACA,CACA,CAAK,CACL,EA6JA,QAEA,YAEA,WAEA,IAIA,KACA,CACA,CACA,0CAA2D,8BAAkD,EAC7G,SACA,6BAhFA,qBACA,gBAMA,mMAOA,2DACA,2DACA,aACA,CACA,CAAK,GA+DL,kBACA,iBACA,CACA,sCAA0D,sDAAqE,EAC/H,SACA,iBACA,kBACA,kBACA,kBACA,gBACA,CACA,sCAAyD,sDAAqE,EAC9H,SACA,iBACA,kBACA,kBACA,kBACA,gBACA,CACA,aACA,WACA,8BCveA,cAGA,WACA,OACA,EACA,EACA,CAEA,sBACA,kBACA,gBACA,wBACA,kBACK,EACL,+BACA,WACA,CAAK,EACL,sBACA,gBACA,wBACA,kBACK,EAIL,OAHA,+BACA,YACK,EACL,CACA,EACA,EACA,CAtCA,qCAA6C,CAC7C,QACA,CAAC,EAAC,OACF,iCAAgD,CAChD,cACA,eACA,QACA,CACA,CAAC,EAAC,uHCbcI,qCAAAA,aAPU,OAOnB,SAASA,EAAcpB,CAAY,CAAEqB,CAAe,EACzD,GAAI,CAACrB,EAAKa,UAAU,CAAC,MAAQ,CAACQ,EAC5B,MADoC,CAC7BrB,EAGT,GAAM,UAAEsB,CAAQ,OAAEC,CAAK,MAAEC,CAAI,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,SAAAA,EAAUzB,GAC5C,MAAQ,GAAEsB,EAAWD,EAASE,EAAQC,CACxC,gCCbA,qCAA6C,CAC7C,QACA,CAAC,EAAC,CAQF,cACA,0CACA,cACA,SACK,CACL,EACA,GACA,uCACA,QACA,CAAK,CACL,mCACA,QACA,CAAK,CACL,8BACA,QACA,CAAK,CACL,qCACA,QACA,CAAK,CACL,uBACA,QACA,CACA,CAAC,EACD,MAAmB,EAAQ,KAAqB,EAChD,UAD0B,CAC1B,GACA,kBACA,iCAIA,aAHA,oBACA,EACA,CAEA,aACA,oBACA,iBAEA,eAGA,QACA,CACA,cACA,IAEA,EACA,EACA,EACA,EACA,EANA,KACA,IAMA,aACA,yCACA,KAEA,kBAMA,kBAGA,IAFA,IACA,KACA,KAEA,SADA,gBACA,CAMA,IAJA,IACA,KACA,IACA,IACA,YAbA,MADA,iBACA,EAAsC,IAAtC,GAAsC,SActC,IAGA,gCAEA,KAEA,IACA,yBACA,KAIA,KAEA,EAAc,IACd,KAGA,mBACA,+BAEA,CACA,QACA,CACA,cACA,SACA,KACA,KACA,2BACA,gCAIA,gBACA,0BAEA,OAIA,QACA,CACA,cACA,IACA,iCACA,CAAM,SACN,uDAAmE,UAAY,+FAC/E,OACA,CAAS,uBACT,YACA,cACA,eACA,CAAS,CACT,CACA,CACA,cAKA,YAJA,CACA,0BACA,kCACA,CAEA,0BACA,6BAGA,WACA,gCCnJA,qCAA6C,CAC7C,QACA,CAAC,EAAC,CAKF,cACA,0CACA,cACA,SACK,CACL,EACA,GACA,qBACA,QACA,CAAK,CACL,uBACA,QACA,CACA,CAAC,EACD,MAAiB,EAAQ,KAAa,EACtC,EAAe,EAAQ,KAAU,CADT,CAExB,EAAe,EAAQ,GAAU,EACjC,CAFsB,CAEL,EAAQ,KAAW,EACpC,CAFsB,CAEtB,QADwB,kBAExB,yBACA,kBAAgC,EAChC,oDACA,qBAMA,2BACA,kBAGA,gCACA,WACA,uBACA,sDACA,wBACS,CACT,UACA,2CACA,UACA,IAAqE,CAApD,CAAoD,KAAN,GAAG,CAAG,CACrE,CACA,CACA,8CACA,OACA,qBACA,qBACA,aAEA,uBACA,iBACA,6BACA,6BACA,yCACA,yBACA,yBACA,mBACA,eACA,uBACA,uBACA,mCACA,mBAEA,CACA,cACA,uBAEA,cACA,sBACA,CAKA,WACA,6BAMA,SACA,2BAEA,UACA,mBAEA,gCC/FA,qCAA6C,CAC7C,QACA,CAAC,EAAC,OACF,2BAA0C,CAC1C,cACA,eACA,QACA,CACA,CAAC,EACD,MAAyB,EAAQ,IAAoB,CACrD,SACA,GAFgC,SAEhC,EAIA,UACA,kBACA,mBACA,oBACA,CACA,iBACA,sEACA,CAUA,iBACA,iDACA,YACA,4BAEA,0BACA,cACA,YAAgB,sBAA2B,sBAc3C,OAbA,sBACA,2BACA,IACA,mBAGA,IACA,CAAc,SACd,IACA,EAAc,OACd,sBACA,CACA,CAAS,EACT,CACA,CACA,gCCvDA,qCAA6C,CAC7C,QACA,CAAC,EAAC,CAMF,cACA,0CACA,cACA,SACK,CACL,EACA,GACA,0BACA,uBACA,CAAK,CACL,2BACA,yBACK,CACL,2BACA,wBACA,CACA,CAAC,EACD,MAAiB,EAAQ,KAA0C,YAA3C,oBCvBxB,qCAA6C,CAC7C,QACA,CAAC,EACD,4CAAoD,CACpD,cACA,eACA,QACA,CACA,CAAC,EAAC,IACF,WAWA,KACA,mBACA,SAEA,sDACA,OACA,SACA,EAEA,WACA,eACA,gBAEA,OACA,cACA,EACA,yDACA,eACA,6DACA,iDACA,mBACA,6BAEA,UAQA,OAJA,YACA,GACA,WAEA,CACA,EA3CuD,EAAQ,KAAO,GACtE,EAAuB,EAAQ,KAD+B,EAE9D,EAAwB,EAAQ,KAAkC,CADpC,CAE9B,UAD+B,CAC/B,GACA,0CACA,kBACA,cACA,qBACA,YACA,EAAK,GACL,CAsDA,cACA,cACA,OACA,yBAYA,EACA,EAZA,eAQA,cAKA,yBAIU,CAKV,8DACA,oDAKA,cAEA,EA7CA,gBA6CA,EA5CA,OACA,WA2CA,EA3CA,mBA2CA,EA1CA,KACA,WAyCA,EAxCA,YAwCA,EAvCA,SAuCA,EAtCA,eACA,YACA,EAqCA,aAhBA,EAvCA,+CAwCA,IAiBA,WACA,uBAAgD,IAAO,MACvD,cACA,SACA,mBACA,cACA,kGACA,aACA,cACA,eACA,CAAqB,EAKrB,gCAEA,OADA,UACA,CACA,CAAiB,CAEjB,CAGA,aACA,GACA,EACA,EACA,KACA,CAEA,OADA,UACA,WAKA,gCAEA,OADA,OACA,CACA,CAAS,CACT,CACA,gCCxJA,qCAA6C,CAC7C,QACA,CAAC,EAAC,CAMF,cACA,0CACA,cACA,SACK,CACL,EACA,GACA,kCACA,QACA,CAAK,CACL,2CACA,QACA,CAAK,CACL,gCACA,QACA,CACA,CAAC,EACD,MAAe,EAAQ,IAAS,EAChC,WADsB,CAGtB,EACA,0BACA,SACA,CACA,EAN6D,EAAQ,KAAkB,GACvF,EAAmB,EAAQ,KAAe,EAM1C,UAN0B,KAM1B,KACA,QACA,OACA,KACA,mEACA,6BACA,8CACA,0BACA,wBACA,uBACU,gEACV,gCACA,8CACA,4BACA,wBACA,wBACA,sBACA,+BACA,EAAU,QAEV,CACA,oBACA,eACA,EACA,CACA,gBACA,kBACA,4BACA,wBACA,mEACA,6BACA,wCACA,0BACA,wBACA,uBACU,gEACV,gCACA,wCACA,wBACA,wBACA,sBACA,4BACA,iCACU,SApBV,IAsBA,CACA,cACA,UACA,uBACA,yCACA,qBACA,4CACA,kBACA,yCACA,sBACA,gDAEA,2DAA2E,EAAU,wBACrF,YACA,cACA,eACA,CAAa,CACb,CACA,oCC7DA,iBAnCA,qCAA6C,CAC7C,QACA,CAAC,EAAC,CAQF,cACA,0CACA,cACA,SACK,CACL,EACA,GACA,wBACA,QACA,CAAK,CACL,oBACA,QACA,CAAK,CACL,0BACA,QACA,CAAK,CACL,qBACA,QACA,CAAK,CACL,0BACA,QACA,CACA,CAAC,EACD,MAAmB,EAAQ,KAAa,EACxC,EAAoB,EAAQ,KAAiC,CADnC,CAa1B,IACA,EAAc,EAAQ,EAbK,GAae,CAC1C,CAAM,SACN,CAFqB,CAEP,EAAQ,KAAuC,CAC7D,CAEA,UAHqB,EAGb,oEAAsE,CAC9E,uBACA,iBACA,mCACA,CACA,CACA,oBACA,8BACA,cACA,CACA,cACA,eACA,kCAEA,GACA,qBAEA,aACA,aACA,iCACS,GAET,OACA,EACA,UACA,wCACA,IACA,UACA,GACA,WACA,QACA,MACA,OACA,CAAS,CACT,CACA,CACA,SAKA,oBACA,qCACA,CACA,aACA,QACA,CACA,0BACA,iBACA,KAEA,OADA,gBACA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EJ,IADA,eACA,IAAyB,KAAQ,KACjC,SACA,YAAsB,IAAe,IACrC,sBACA,KACA,KACA,CAEA,aACA,CAGA,SACA,CA4IA,kBACA,uBACA,SAEA,IACA,WACA,WACA,OACA,QACA,EACA,MACA,EACA,MACA,EACA,EAEA,WACA,YAEA,UACA,OACA,OACA,MAEA,KACA,QAEA,KADA,UACA,QACA,mBACA,KACA,MAGA,KACA,QACA,SACA,SACA,4BAEA,CADA,6BACA,0BACA,MAGA,KACA,QACA,SACA,SACA,SACA,0CAEA,CADA,wCACA,kBACA,KAGA,CACA,CAEA,UAGA,QACA,KACM,UAEN,SACA,0BACA,gBAGA,UACA,IACA,CAEA,gBAQA,GACA,eACA,MAJA,KAKA,2CAIA,SACA,IACA,UACA,6BACA,OACA,aAdA,OAiBA,QACA,EAxBA,EACA,CAmGA,kBACA,sDACA,kEACA,CAyQA,wBACA,iFACA,kEACA,sDACA,CA+FA,sBACA,eAEA,kCACA,UACA,MACA,SACA,MACA,SACA,MACA,SACA,+CAQA,OAPA,SACA,MACA,SACA,MACA,SACA,MACA,SACA,CACA,CAEA,sBACA,eAEA,kCACA,UACA,MACA,SACA,MACA,SACA,MACA,SACA,+CAQA,OAPA,SACA,MACA,SACA,MACA,SACA,MACA,OACA,GACA,CAkHA,wBACA,iBACA,IADA,sCAEA,CAEA,sBAOA,OANA,KACA,OACA,GACA,sDAEA,sBACA,GACA,CAUA,sBAOA,OANA,KACA,OACA,GACA,wDAEA,sBACA,GACA,CA7nDA,IAAc,GAEd,IAAyB,IAmBzB,iCAYA,IACA,wBACA,GAAoB,eAAmB,YAGvC,OAFA,8CACA,2BACA,YACA,CAAI,SACJ,QACA,CACA,IAnBA,oDACA,kCACA,cACA,iJAkBA,4CACA,cACA,eACA,oBACA,mBAEA,CAAC,EAED,4CACA,cACA,eACA,oBACA,uBAEA,CAAC,EAmCD,gBA8DA,uBACA,eACA,EAIA,wDACA,oCA8BA,wBACA,OApBA,EAoBA,MAnBA,GACA,EAkBA,GAhBA,SAgBA,EAZA,iBAYA,EAXA,EAWA,GAXA,KAWA,KAVA,EAUA,GAVA,KAUA,GARA,EAQA,EACA,EAUA,0BACA,WACA,EAIA,8BACA,WACA,EA6GA,uBACA,kCACA,iBAGA,wBAGA,GAFA,qDACA,qDACA,+BACA,gBACA,yEAIA,kBAEA,eACA,WAEA,4BAAwC,IAAS,IACjD,gBACA,OACA,OACA,KACA,QAGA,QACA,KAEA,EAEA,yBACA,gCACA,UACA,WACA,YACA,YACA,aACA,aACA,aACA,WACA,YACA,cACA,eACA,QACA,SACA,QACA,CACA,EAEA,2BASA,EARA,qBACA,+DAGA,gBACA,kBAIA,cAEA,QADA,IACgB,WAAiB,IACjC,eAIA,uBACA,IACA,QAAc,WAAiB,KAC/B,WACA,mBACA,qBACA,6BACA,aAEA,8BACA,EACA,EACA,QAGM,iBAGN,iBAFA,+DAIA,YAEA,QACA,EAiDA,eA8EA,yBAQA,8BACA,kBACA,UACA,8DAEA,YAAkB,IAAS,KAC3B,cAEA,aAGA,8BACA,kBACA,UACA,8DAEA,YAAkB,IAAS,KAC3B,cACA,gBAEA,aAGA,8BACA,kBACA,UACA,8DAEA,YAAkB,IAAS,KAC3B,cACA,gBACA,gBACA,gBAEA,aAGA,gCACA,yBACA,SACA,gCACA,uBACA,EAEA,gDAEA,+BACA,sEACA,UACA,qBACA,EAEA,+BACA,SACA,EAAc,IAAyB,CAGvC,OAFA,uCAAiD,EAAE,kBACnD,4BACA,gBACA,EACA,GACA,qCAGA,wCAIA,GAHA,iBACA,oCAEA,eACA,gBACA,iFACA,UAiBA,GAbA,YACA,MAEA,YACA,iBAEA,YACA,MAEA,YACA,gBAGA,oCACA,uCAGA,cACA,SAEA,QACA,UAEA,QACA,SAQA,GALA,OACA,OACA,OACA,OAEA,kBAEA,UACA,MACA,gBAEA,kBACA,eAEA,YAAkB,IAAS,IAC3B,gBACA,OACA,OACA,KACA,QAGA,QACA,KAEA,EA2HA,qCACA,+BACA,EAEA,oCACA,uBACA,EAEA,wCACA,uBACA,EA4CA,wCAhBA,IAIA,IAIA,IAIA,IAMA,cACA,SACA,cACA,SAEI,kCACJ,IACA,cACA,SAEI,eACJ,OACA,aACA,OACA,yBAEA,IACA,eAGA,YACA,2EAIA,oBAGA,GAFA,yBAEA,sCACA,2DAGA,cAEA,SACA,OACA,UACA,UACA,gBAlFA,aAiBA,EAhBA,eACA,iBACA,EAGA,cACA,GACA,MAJA,IAQA,eAMA,IAJA,OACA,QAGA,IAAc,IAAY,SAotC1B,EAntCA,mCACA,GAotCA,CAFA,EAltCA,IAotCA,EAptCA,KACA,SACA,CACA,QACA,EA0DA,WAEA,YACA,YACA,OA5DA,EA4DA,EA5DA,EA4DA,EA3DA,IA2DA,OA3DA,UA2DA,KA3DA,IA6DA,aACA,aACA,aACA,OA7DA,EA6DA,EA7DA,EA6DA,EA5DA,WAypCA,GACA,SACA,YAAkB,WAAgB,IAElC,4BAEA,QACA,EApmCA,QA5DA,IA8DA,cAEA,OA7DA,EA6DA,EA7DA,EA6DA,EA5DA,IA4DA,QA5DA,IA8DA,YACA,YACA,cACA,eACA,OA/DA,EA+DA,EA/DA,EA+DA,EA9DA,WA0pCA,SACA,IACA,SACA,YAAkB,aAClB,WADkC,IAIlC,EADA,qBACA,EAEA,OADA,OAEA,UAGA,QACA,EA1mCA,OA9DA,UA8DA,KA9DA,IAgEA,SACA,6CACA,uBACA,IACA,CAEA,EAEA,8BACA,OACA,cACA,kDACA,CACA,EAwJA,gCACA,kBACA,MACA,mBAEA,IACA,OACA,SACI,KACJ,MAGA,IACA,OACA,SACI,KACJ,MAGA,WAEA,yBAIA,OAFA,qCAEA,CACA,EAUA,uBACA,uCACA,OACA,OACA,sBAEA,cACA,IACA,IACA,sBACA,eAGA,QACA,EAEA,uBACA,uCACA,OACA,OACA,GACA,mBAGA,kBACA,IACA,oBACA,iBAGA,QACA,EAEA,sBACA,oCAGA,OAFA,OACA,sBACA,SAGA,yBACA,uCAGA,OAFA,OACA,sBACA,oBACA,EAEA,yBACA,uCAGA,OAFA,OACA,sBACA,sBAGA,yBACA,uCAIA,OAHA,OACA,sBAEA,SACA,aACA,eACA,qBAGA,yBACA,uCAIA,OAHA,OACA,sBAEA,kBACA,eACA,aACA,UACA,EAEA,0CAEA,EADA,OACA,UACA,cACA,YACA,0BACA,mBAGA,QACA,cACA,gBACA,oBAEA,YACA,cACA,gBACA,YAEA,wCACA,CAAC,EAED,0CAEA,EADA,OACA,UACA,cACA,YACA,0BACA,mBAGA,kBACA,gBACA,cACA,UAEA,sBACA,gBACA,cACA,EAEA,uCACA,CAAC,EAED,sCACA,OACA,OACA,sBAEA,cACA,IACA,IACA,sBACA,eAMA,OAFA,GAFA,UAEA,qBAEA,CACA,EAEA,sCACA,OACA,OACA,sBAEA,QACA,IACA,cACA,oBACA,iBAMA,OAFA,GAFA,UAEA,qBAEA,CACA,EAEA,yCAGA,CAFA,OACA,sBACA,aACA,qBADA,SAIA,sCACA,OACA,sBACA,2BACA,6BACA,EAEA,sCACA,OACA,sBACA,2BACA,6BACA,EAEA,sCAIA,OAHA,OACA,sBAEA,QACA,aACA,cACA,aACA,EAEA,sCAIA,OAHA,OACA,sBAEA,YACA,cACA,aACA,WAGA,yCAEA,EADA,OACA,UACA,cACA,YAUA,MATA,0BACA,mBAQA,QALA,UACA,cACA,gBACA,UAEA,YACA,SACA,cACA,gBACA,oBACA,CAAC,EAED,yCAEA,EADA,OACA,UACA,cACA,YAUA,MATA,0BACA,mBAQA,QALA,QACA,gBACA,cACA,YAEA,YACA,2BACA,gBACA,cACA,EACA,CAAC,EAED,sCAGA,OAFA,OACA,sBACA,sBACA,EAEA,sCAGA,OAFA,OACA,sBACA,sBACA,EAEA,uCAGA,OAFA,OACA,sBACA,sBACA,EAEA,uCAGA,OAFA,OACA,sBACA,sBACA,EAQA,wBACA,0CAIA,GAHA,KACA,OACA,OACA,IACA,wBACA,iBACA,CAEA,QACA,IAEA,IADA,cACA,iBACA,kBAGA,UACA,EAEA,wBACA,0CAIA,GAHA,KACA,OACA,OACA,IACA,wBACA,iBACA,CAEA,UACA,IAEA,IADA,gBACA,kBACA,kBAGA,UACA,EAEA,uBACA,uCAKA,OAJA,KACA,OACA,uBACA,cACA,GACA,EAEA,0BACA,0CAMA,OALA,KACA,OACA,yBACA,cACA,gBACA,GACA,EAEA,0BACA,0CAMA,OALA,KACA,OACA,yBACA,cACA,gBACA,GACA,EAEA,0BACA,0CAQA,OAPA,KACA,OACA,8BACA,iBACA,iBACA,gBACA,cACA,GACA,EAEA,0BACA,0CAQA,OAPA,KACA,OACA,8BACA,eACA,iBACA,gBACA,gBACA,GACA,EA8CA,+CACA,yDACA,CAAC,EAED,+CACA,yDACA,CAAC,EAED,yCAGA,GAFA,KACA,OACA,IACA,wBAEA,oBACA,CAEA,QACA,IACA,IAEA,IADA,cACA,iBACA,6BACA,MAEA,yBAGA,UACA,EAEA,yCAGA,GAFA,KACA,OACA,IACA,wBAEA,oBACA,CAEA,UACA,IACA,IAEA,IADA,gBACA,kBACA,6BACA,MAEA,yBAGA,UACA,EAEA,sCAMA,OALA,KACA,OACA,0BACA,iBACA,cACA,GACA,EAEA,yCAMA,OALA,KACA,OACA,8BACA,cACA,gBACA,GACA,EAEA,yCAMA,OALA,KACA,OACA,8BACA,cACA,gBACA,GACA,EAEA,yCAQA,OAPA,KACA,OACA,wCACA,cACA,gBACA,iBACA,iBACA,GACA,EAEA,yCASA,OARA,KACA,OACA,wCACA,wBACA,eACA,iBACA,gBACA,gBACA,GACA,EAEA,8CACA,6EACA,CAAC,EAED,8CACA,6EACA,CAAC,EAiBD,yCACA,uBACA,EAEA,yCACA,uBACA,EAYA,0CACA,uBACA,EAEA,0CACA,uBACA,EAGA,mCACA,iEAQA,GAPA,SACA,0BACA,0BACA,SACA,gBAGA,OACA,8BADA,SAIA,OACA,8CAEA,8DACA,mDAGA,+BACA,gBACA,iBAGA,UAaA,OAXA,6DAEA,uBAEA,8BACA,EACA,mBACA,GAIA,CACA,EAMA,uCA6CA,EA3CA,uBASA,GARA,oBACA,IACA,IACA,eACM,qBACN,IACA,eAEA,+BACA,6CAEA,wCACA,wCAEA,iBACA,sBACA,oBACA,eAEA,KAEA,CACA,EAAI,sBACJ,OACI,qBACJ,cAIA,qCACA,uCAGA,QACA,YASA,GANA,OACA,+BAEA,SAGA,mBACA,QAAoB,IAAS,IAC7B,cAEI,CACJ,oBACA,EACA,YACA,WACA,SACA,gCA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BACA,qBACA,qBACA,CAAC,EACD,UAXA,CARA,YACA,+CACA,kBACA,oBACA,OAA6B,kDAA4F,EAEzH,SACA,EACA,IAAoD,eAAkB,SAAa,EAWnF,GAkFA,8BAKA,0BA0DA,QACA,eAEA,qBACA,gBACA,sBACA,KAEA,eADA,KAEA,yBAAiC,UAAa,CAG9C,CACA,oBACA,sCACA,CAIA,WACA,yBAEA,UACA,2CACA,0BACA,CACA,aACA,MACA,+BACA,aACA,yBAEA,8DACA,6CACA,CACA,OACA,0BACA,CACA,UACA,+CACA,eAMA,OALA,cAAoB,UAAa,EACjC,kBACA,SACA,yCAA4E,IAE5E,KAKA,UACA,mBACA,qDAKA,OAJA,kBACA,SACA,yCAA0E,IAE1E,CACA,CAIA,QAEA,OADA,6CACA,KAKA,8CACA,wBAA6B,iDAAiD,EAE9E,WACA,2CAAoD,OAAO,GAAG,4BAA4B,WAAW,EACrG,CACA,EAGA,QACA,mBAGA,KADA,sBAEA,gBACA,+FAEA,aADA,mBA3IA,YACA,MACA,SACA,IAEA,EACA,EACA,EACA,EACA,EANA,KACA,IAMA,aACA,yCACA,KAEA,kBAMA,kBAGA,IAFA,IACA,KACA,KAEA,SADA,gBACA,CAKA,IAJA,IACA,KACA,IACA,IACA,YAZA,MADA,iBACA,EAAkC,IAAlC,GAAkC,SAalC,IAEA,gCACA,KACA,IACA,yBACA,KAEA,KAEA,EAAQ,IACR,KAGA,mBACA,+BAEA,CACA,QACA,EAyFA,GACA,CACA,WACA,GACA,0BACA,CACA,CAIA,UACA,2CACA,0BACA,CAIA,aACA,MACA,wCACA,aACA,SAEA,8DACA,8BACA,CACA,OACA,0BACA,CAIA,UACA,sDACA,eAGA,OAFA,QAyBA,YAAoC,iBAAqB,EAUzD,MATA,4BACA,gCAEA,UACA,8CAEA,kCACA,aAEA,CACA,EApCA,MAAoC,eAAwB,GAC5D,SAiBA,KAEA,cADA,uBACA,IACA,WACA,wBACA,CACA,EAvBA,iBACA,KAKA,aACA,uDACA,iBAAsB,yCAAmE,CACzF,CACA,8CACA,yBAA8B,iDAAiD,EAE/E,WACA,gDAAm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BACA,gBAIA,OAEA,GADA,KACA,4BAAmD,EAAO,kCAC1D,8CACA,GACA,uBAA+C,EAAO,iCAAkC,iCACxF,iCACA,0DACyB,CAEzB,CACA,iBACA,4DACA,yBACA,CAAiB,YACjB,CACA,IACA,gBAGA,0CACA,UAIA,IACA,gBAEA,wBAEA,CAAc,SAEd,MADA,QACA,iEACA,OACA,CAAiB,uBACjB,aACA,cACA,eACA,CAAiB,CACjB,CACA,CAAS,CACT,UACA,oBACA,YACA,CAAS,CACT,gBAMA,GAHA,GACA,SAEA,mBAEA,OADA,QACA,UAEA,CAAK,CACL,EASA,IACA,mBACA,eACA,CAAS,CACT,CAAM,SAEN,cACA,8DACA,OACA,CAAS,uBACT,aACA,cACA,eACA,CAAS,CACT,CACA,8BCvIA,YAAkB,CAuClB,YACA,WACA,OACA,OACA,iBACA,EA3CA,aAAmB,CAiDnB,YAEA,IADA,EAcA,EAbA,OACA,OACA,OAEA,QATA,CASA,GATA,MASA,GAEA,IAGA,MACA,IACA,EAGA,QAAc,IAAS,KACvB,EACA,uBACA,yBACA,wBACA,qBACA,iBACA,gBACA,aAmBA,OAhBA,QACA,EACA,sBACA,wBACA,cAGA,QACA,EACA,uBACA,wBACA,wBACA,gBACA,cAGA,CACA,EA5FA,eAAqB,CAkHrB,YAQA,QAPA,EACA,WACA,MACA,KAIA,UAA2C,IAAU,GAHrD,MAIA,OAtBA,gBAGA,QAFA,EACA,KACA,IAAsB,IAAS,KAC/B,EACA,oBACA,kBACA,aACA,OAdA,EAcA,GAdA,OACA,YACA,WACA,KAWA,EAXA,EAaA,iBACA,EAWA,MAJA,MAIA,MAJA,QAyBA,OAjBA,MAEA,OACA,EAFA,YAEA,GACA,WACA,MAEI,OAEJ,OACA,EAFA,wBAEA,IACA,WACA,WACA,KAIA,UACA,EA1IA,QALA,KACA,KACA,kDAEA,qEACA,eAAmC,IAAS,IAC5C,UACA,qBAQA,cACA,eAEA,SACA,8DAKA,oBACA,eAEA,YACA,EACA,MAEA,YAnBA,wBACA,yCCnBA,MAAM,aAAa,OAAO,cAAc,sCAAsC,SAAW,EAAE,oBAAoB,a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AC,EAAC,IACF,EAA4B,EAAQ,KAA4C,EAChF,EAAgC,EAAQ,KAAyD,CAD9D,CAEnC,EAAqB,EAAQ,KAA+B,CADrB,CAEvC,EAA6B,EAAQ,KAAsD,CAD/D,CAE5B,UADoC,4DACiE,EAAE,qBACvG,gBACA,oFACA,CACA,+BACA,SACA,mBACA,MACA,CACA,yDACA,IACA,SAEA,WAEA,SACA,mBACA,UACA,WACA,EACA,cACA,CACA,UACA,cACA,sDACA,sCACA,WAAwB,EACxB,OADsE,MACtE,6BACS,EACT,wDACA,gNACA,oJACA,iCACA,wBACA,gCACA,0BACA,2BACA,qCACA,CACA,iBACA,oCACA,0BACA,wBACA,uEACA,sBACA,8BACA,oCACS,CACT,CACA,eACA,yBACA,CACA,cACA,sBACA,CACA,eACA,iBACA,CACA,aACA,yBACA,CACA,cACA,QACA,iHACA,uFAAuG,EAAO,yBAC9G,aACA,cACA,eACA,CAAa,CAEb,iBACA,CACA,oBACA,6BAEA,mBACA,4BAEA,mBACA,gCAEA,WACA,wBAEA,YACA,kBACA,CACA,eACA,4BAEA,gBACA,sBACA,CACA,WACA,uBACA,CACA,YACA,kBACA,CACA,eACA,4BAEA,gBACA,sBACA,CACA,WACA,4BACA,sBACA,SAAkB,cAAc,IAAI,UAAU,EAAE,EAAS,EAAE,EAAO,EAAE,UAAU,EAE9E,YACA,iBACA,cACA,CACA,aACA,0BAEA,eACA,4BAEA,gBACA,sBACA,CACA,WACA,wBAEA,YACA,kBACA,CACA,aACA,0BAEA,cACA,oBACA,CACA,eACA,4BAEA,gBACA,sBACA,CACA,eACA,4BAEA,gBACA,sBACA,CACA,eACA,wBAEA,gBACA,yCAAsE,EAAM,EAE5E,WACA,iBAEA,SACA,iBAEA,8CACA,OACA,eACA,mBACA,uBACA,uBACA,uBACA,eACA,uBACA,eACA,uBACA,mBACA,+BACA,eAEA,CACA,QACA,0CACA,CACA,8BC/LA,qCAA6C,CAC7C,QACA,CAAC,EAAC,CAKF,cACA,0CACA,cACA,SACK,CACL,EACA,GACA,2CACA,QACA,CAAK,CACL,qCACA,QACA,CACA,CAAC,EAED,QACA,IACA,IACA,oBACA,2BAGA,CACA,iBACA,uBACA,QACA,MAEA,IAEA,OADA,KACA,4BACA,EAAc,OACd,sBACA,CACA,CAAS,CACT,mBACA,wBACA,iCAMA,OAHA,eACA,sBACA,CAAa,EACb,CACA,CACA,EAzBA,cA0BA,CACA,eAAqD,EACrD,oBACA,2BACA,2BACA,0BACA,EAMA,OALA,UACA,IACA,IACA,KAEA,CACA,8BClEA,qCAA6C,CAC7C,QACA,CAAC,EAAC,CAQF,cACA,0CACA,cACA,SACK,CACL,EACA,GACA,6BACA,QACA,CAAK,CACL,0BACA,QACA,CAAK,CACL,0BACA,QACA,CAAK,CACL,6BACA,QACA,CAAK,CACL,0BACA,QACA,CACA,CAAC,EACD,4CACA,gBACA,eACA,+BACA,CACA,gBAEA,OADA,OACA,CACA,CACA,kBACA,WAEA,OADA,OACA,MACA,CACA,gBACA,WAEA,OADA,YACA,MACA,gCChDA,4BAAiD,CACjD,cACA,eACA,QACA,CACA,CAAC,EACD,MAAmB,EAAQ,KAAwB,EACnD,EAAoB,EAAQ,KAAuB,CADzB,CAE1B,EAAkC,EAAQ,KAA8C,CAD7D,CAE3B,EAAsC,EAAQ,IAAmD,EACjG,EAAuB,EAAQ,KAAsB,EACrD,IACA,MAF8B,SAE9B,iBACA,eACA,6BACA,MACA,UAAuB,CAEvB,uBACA,WACA,MACA,CAAS,CACT,gDACA,CAAK,EACL,cACA,OACA,WACA,UACA,CAAK,CAEL,CACA,mBAAkD,EAClD,oBACA,6HAAyI,aAAc,wBACvJ,YACA,cACA,eACA,CAAS,EAGT,yDAA8F,aAAc,MAE5G,wDAA8E,qBAAyB,GAQvG,SAAwB,aAAc,GAAG,8BAA8C,EA6KvF,OA5KA,cACA,oCACA,oCAEA,qEACA,MACA,2FAA2G,aAAc,wBACzH,aACA,cACA,eACA,CAAa,EAGb,iDACA,GACA,cAEA,IAKA,qCACA,gEACA,yDAMA,MAJA,SACA,aACA,oBAEA,UAAgE,EAAI,GAAG,SAAsB,aAI7F,KAAqC,EAAS,GAAG,kBAAqB,EACtE,8BAEA,oBAA+C,EAAS,EAAE,gBAA+B,EAAE,GAAc,EAAE,WAAc,OAAQ,IAAa,EAC9I,yBACA,MAMA,GALA,kBAKA,oGAGA,gCACA,2BAGA,6BAIA,aACA,YACA,sBAEA,eAEA,eACA,SAIA,CACA,qDAEA,GAEA,CAHA,gCAGA,2DA5DA,EA4DA,sCAEA,qBACA,kCACA,wBACA,OACA,WACA,WACA,UACA,CAAqB,EACrB,eAEA,0CAKA,2DAAuF,EAAc,OAE3E,CAG1B,sEAiBA,OAhBA,YAEA,sBACA,0BAOA,mDALA,CACA,sBACA,cACA,EAEA,gBACA,IA9FA,EA8FA,uBAEA,uDAA4F,EAAc,OAG1G,CACA,EAEA,CAMA,uCALA,CACA,sBACA,cACA,EAEA,QAIA,OAHA,eACA,IA9GA,EA8GA,sBAEA,CACA,CAAc,IACd,KAKA,yBAEA,qDACA,iBACA,kCACA,wBACA,OACA,WACA,WACA,UACA,CAAqB,EACrB,eAEA,0CAIA,2DAAuF,EAAc,QAE3E,cAE1B,uEAGA,CAMA,uCALA,CACA,sBACA,cACA,EAEA,QAEA,OADA,IAtJA,EAsJA,sBACA,CACA,CACA,EAAU,OACV,GACA,WAEA,CACA,CAGA,gCCnOA,qCAA6C,CAC7C,QACA,CAAC,EACD,uDAA+D,CAC/D,cACA,eACA,QACA,CACA,CAAC,EAED,WADmC,KAAuB,EAC1D,UADkC,aAClC,+DCVA,qCAA6C,CAC7C,QACA,CAAC,EAAC,CAcF,SANA,KACA,0CACA,cACA,QACA,CAAK,CACL,EACA,GACA,6BACA,QACA,CAAK,CACL,gCACA,QACA,CAAK,CACL,sBACA,QACA,CAAK,CACL,8BACA,QACA,CAAK,CACL,wBACA,QACA,CACA,CAAC,EACD,MAAmB,EAAQ,KAAmB,EAC9C,EAAgB,EAAQ,KAAgB,CADd,CAE1B,EAAoB,EAAQ,KAAqB,CAD1B,CAEvB,EAA0B,EAAQ,KAAiC,CADxC,CAE3B,EAA+B,EAAQ,KAA4B,CADlC,CAEjC,EAAqB,EAAQ,KAAgB,CADP,CAEtC,EAAuB,EAAQ,KAAmB,CADtB,CAE5B,EAAmB,EAAQ,IAAqB,EAChD,EAAuB,EAAQ,KAAkB,EAEjD,UAF8B,EAE9B,eAIA,gBACA,IACA,MACA,UACA,wBACU,uCACV,SACU,cACV,+DAA+E,EAAc,QAAQ,EAAM,iEAC3G,aACA,cACA,eACA,CAAa,EAEb,QACA,CAAM,SAEN,gEACA,QAEA,MACA,CACA,CACA,gBACA,SACA,KACA,YAAmB,WAAiB,KACpC,WAcA,GAbA,mBACA,QACA,MACA,uCACA,CAAa,EACH,qCACV,QACA,MACA,iCAAkD,4BAAsC,EAC3E,EAEb,UAEA,qCACA,oDAAgE,EAAY,wCAC5E,KACA,CACA,CACA,cAEA,YAAqB,YAAc,EADnC,gDAAwD,EAAY,KACjC,GACnC,qBAAiC,EAAI,IAAI,EAAO,GAGhD,QACA,CACA,gBACA,MAEA,MACA,0CACA,GAAmC,sBAAgC,MAAP,EAAO,oDAOnE,oBACA,qBACA,KACA,6CACA,oBACA,CAAK,EACL,CACA,+BAA6C,yBAAwC,EAGrF,uBACA,QACA,EACA,IAEA,CADA,yCACA,YACA,aACA,CAAU,MAEV,QACA,CACA,kCACA,oEAGA,2DACA,EAAyB,OAAO,8BAKhC,oDACA,eACA,eAEA,6CACA,GACA,cAEA,0FACA,WACA,uBACA,UACA,QACA,EACA,EACA,2BACA,YACA,aACA,gBACA,0CACA,+CACA,CACA,CAAS,eACT,MAkDA,EA+JA,EAkJA,EA7UA,EApBA,MAMA,IAKA,cAVA,cAaA,uDACA,KAEA,uBACA,cAGA,MACA,UACA,+IACA,EAGA,kBACA,2BAA2E,aAAiB,GAC5F,8GACA,MACA,kBAEA,0BACA,eACA,eACA,SAGA,CAEA,qDAGA,6DACA,wBACA,aACA,IAEA,iCAGA,2BACA,iCAEA,uBAAwD,EAAwB,qBAAqB,EAAuB,kCAC5H,SACA,UAGA,MACA,gCAEA,0CAMA,6BAGA,8BACA,KAIA,2CACA,MAEA,kCACA,aAAwC,GAAwB,EAEhE,eACA,mBACA,8DAAwI,EACxI,0CACA,IACA,MACA,OACA,iEAUA,EACA,WACA,YAEA,gBACA,UACA,EAEA,GAEA,+CACA,uCAOA,OAJA,IACA,YACA,QAEA,mDAEA,UACA,qBAEA,gCACA,KAEA,qBAEA,sCACA,4EAA4G,GAAU,uEACtH,aACA,cACA,eACA,CAA6B,EAE7B,+BACA,KAEA,kBAEA,kBACA,yEAAyG,GAAU,oEACnH,aACA,cACA,eACA,CAA6B,EAE7B,KAEA,mBAEA,sBACA,6BACA,mBAKA,CAsBA,GArBA,WACA,uBAGkB,wBAClB,IACA,mCACkB,GAClB,IACA,kBACkB,GAClB,IACA,oBAGA,eACA,oCAdA,mBACA,gCAec,GACd,kBAA6C,GAAgB,EAI7D,yBACA,IAGA,mBAGA,UACA,2BAKA,OAJA,IACA,YACA,QAEA,mDAEA,2DAA0H,GAAO,EAAE,QAAgB,EAEnJ,CAGA,UACA,gBAEA,CACA,8BAEA,kBAAoB,GAAmB,EACvC,kFACA,uDACA,IACA,mCACA,CAAkB,SAClB,mDACA,CAEA,sBACA,mBACA,4BACA,eACA,OACA,QACA,cACA,UACA,YACA,YACA,SACA,OACA,WACA,WACA,iBACA,SACA,YAEA,MACA,SACA,CACA,CACA,MACA,QACA,GACA,wBAEA,eAEA,UAEA,sBACA,EAAkB,UAClB,YAA4B,wBAAuC,EACnE,GACA,KACA,UACA,iBACA,CACA,CAEA,OACA,KACA,MACA,yBACA,mBACA,UACA,CACA,EACA,6BAYA,GAXA,OACA,KACA,QACA,MACA,iBACA,mCACA,eACA,gBACA,sBACA,CAAyB,EAEzB,wEACA,6CACA,4BAGA,4BACA,GACA,gDACA,KAAsC,EAAM,2BAC5C,gBACA,WAgBA,OAZA,eACA,6BACA,OACA,YACA,CAA6B,EAC7B,cACA,WACA,WACA,MACA,CAA6B,EAC7B,UAEA,gBACA,kBACA,gBACA,uBACA,CAA6B,CAC7B,CAA0B,IAK1B,6BA2BA,OAvBA,+BACA,MACA,MAAmD,EAAM,QACzD,GACA,gDACA,0BACA,gBACA,UAEA,2DACA,GACA,eACA,6BACA,OACA,YACA,CAAqC,EACrC,cACA,WACA,WACA,MACA,CAAqC,CAErC,CAA6B,qEAC7B,CACA,CACA,CAIA,OADA,UACA,CACA,CAAiB,YAEjB,MADA,IACA,CACA,CAAiB,CACjB,EAEA,KACA,KACA,SACA,MAKA,GAJA,8DACA,oCACA,MAEA,OACA,kBACA,iDACA,kCACA,aACA,WACA,WACA,OACA,UACA,CAAqB,EAerB,GAdA,GAIA,yBACA,4CAGA,EACA,UAGA,2CAEA,kEAGA,6BACA,SAC0B,CAC1B,eACA,0BACA,2BACA,4BACA,2BACA,kBACA,gBACA,uBACA,EAAyC,eACzC,0BACA,kCACA,CAAqC,EAGrC,uBACA,yBACA,CAEA,gBAGA,CACA,MACA,GACA,KACA,QACA,MACA,cACA,0BACA,eACA,qBACA,uCACA,CAAyB,EAEzB,mBAAkD,EAAM,uBACxD,kBACA,eACA,CAAqB,EAIrB,OAHA,+BACA,YACqB,EACrB,CACA,CACA,CACA,gDACA,UAAwB,GAAQ,EAGhC,mBAEA,2BAKA,OAJA,IACA,YACA,QAEA,mDAEA,sDAAqH,GAAO,EAAE,QAAgB,EAE9I,CACA,iBACA,MAAwB,MAAY,EACpC,gEACA,qBAEA,2BACA,yDAEA,2DAA8H,GAAO,EAAE,QAAgB,EAEvJ,CACA,iCACA,2BAEA,CACA,iBAKA,UAgDA,cAhDA,EACA,OACA,2BACA,8BACA,MACA,cACA,4BACA,kBACA,gBACA,wBACqB,CACrB,CASA,cAIA,sBAsBA,MAFA,CAnBA,mBACA,WACA,OACA,2BACA,kBACA,gBACA,wBAEA,CAAiB,eACjB,MAGA,8CAGA,8BACA,EAAiB,EAGjB,YAA8C,EAC9C,0BACA,eACA,CAGA,CAHc,EAId,KACA,IACA,cACA,EAAc,OACd,GACA,WAEA,CAEA,QACA,EASA,OAJA,mBACA,6BACA,uBACA,iBACA,CACA,CACA,cAEA,GA9pBA,mBA8pBA,OAGA,+CAEA,wBACA,8BCjtBA,qCAA6C,CAC7C,QACA,CAAC,EAAC,OACF,gCAA+C,CAC/C,cACA,eACA,QACA,CACA,CAAC,EAAC,IACF,GAEA,SAEA,qBACA,GACA,IACA,IACA,IACA,IACA,EAEA,qBACA,GACA,GACA,IACA,IACA,IACA,CACA,CAAK,CACL,QAEA,qBACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,EAEA,qBACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,EAEA,qBACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,EAEA,8BACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,CACA,CACA,8BCvEO,SAASU,EACdC,CAAoC,CACpCC,CAA6B,EAI7B,IAAItD,EACJ,GAAIsD,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAASC,IAAAA,GAAQ,CAACC,MAAMC,OAAO,CAACH,EAAQC,IAAI,EAC9CvD,CADiD,CACtCsD,EAAQC,IAAI,CAACG,QAAQ,GAAGrD,KAAK,CAAC,IAAK,EAAE,CAAC,EAAE,MAC9C,IAAIgD,EAAOrD,QAAQ,CAEnB,CAFqB,MAC1BA,EAAWqD,EAAOrD,QAAQ,CAG5B,OAAOA,EAASvB,WAAW,EAC7B,wFAdgB2E,qCAAAA,iCCPhB,qCAA6C,CAC7C,QACA,CAAC,EAAC,CAuDF,cACA,0CACA,cACA,QACA,CAAK,CACL,EACA,GACA,yBACA,QACA,CAAK,CACL,yBACA,QACA,CAAK,CACL,0BACA,QACA,CAAK,CACL,0BACA,QACA,CAAK,CACL,+BACA,QACA,CAAK,CACL,iCACA,QACA,CAAK,CACL,uCACA,QACA,CAAK,CACL,kCACA,QACA,CAAK,CACL,0BACA,QACA,CAAK,CACL,yCACA,QACA,CAAK,CACL,+BACA,QACA,CAAK,CACL,+BACA,QACA,CAAK,CACL,sCACA,QACA,CAAK,CACL,4BACA,QACA,CAAK,CACL,sCACA,QACA,CAAK,CACL,8CACA,QACA,CAAK,CACL,kDACA,QACA,CAAK,CACL,0CACA,QACA,CAAK,CACL,kCACA,QACA,CAAK,CACL,oCACA,QACA,CAAK,CACL,qCACA,QACA,CAAK,CACL,4BACA,QACA,CAAK,CACL,2CACA,QACA,CAAK,CACL,4BACA,QACA,CAAK,CACL,mCACA,QACA,CAAK,CACL,8BACA,QACA,CAAK,CACL,iCACA,QACA,CAAK,CACL,2BACA,QACA,CAAK,CACL,uCACA,QACA,CAAK,CACL,sDACA,QACA,CAAK,CACL,0CACA,QACA,CAAK,CACL,0BACA,QACA,CAAK,CACL,2CACA,QACA,CAAK,CACL,uCACA,QACA,CAAK,CACL,kCACA,QACA,CAAK,CACL,qCACA,QACA,CAAK,CACL,mCACA,QACA,CAAK,CACL,mCACA,QACA,CAAK,CACL,+BACA,QACA,CAAK,CACL,mCACA,QACA,CAAK,CACL,8BACA,QACA,CAAK,CACL,sBACA,QACA,CAAK,CACL,qCACA,QACA,CAAK,CACL,gDACA,QACA,CAAK,CACL,qCACA,QACA,CAAK,CACL,0BACA,QACA,CAAK,CACL,qCACA,QACA,CAAK,CACL,0CACA,QACA,CAAK,CACL,sDACA,QACA,CAAK,CACL,4CACA,QACA,CAAK,CACL,0BACA,QACA,CAAK,CACL,oCACA,SACA,CACA,CAAC,EACD,aACA,SACA,mBACA,2BACA,wCACA,kBACA,cACA,iBACA,SACA,YACA,UACA,UACA,UACA,sBACA,4BACA,gCACA,gBACA,MACA,MACA,OACA,UACA,UACA,aACA,eACA,cAA+C,EAAoB,EACnE,oBACA,uBACA,qBACA,0BACA,yBACA,mCACA,qCACA,sCACA,mCACA,uCACA,2CACA,kLACA,wGACA,4FACA,2HACA,4GACA,0HACA,+FACA,mGACA,uGACA,6JACA,sNACA,yJACA,GACA,MACA,QACA,aACA,MACA,MACA,CACA,GACA,YACA,qCACA,eACA,EAIA,GAGA,gBAIA,4BAGA,0BAGA,+BAGA,mBAGA,mBAGA,wBAGA,wBAGA,uBAGA,oCAGA,oCAGA,8BAGA,6BACA,EACA,GACA,KACA,OACA,cACA,wBACA,gBACA,CACA,YACA,wBACA,gBACA,aACA,aACA,CACA,eAEA,UACA,UACA,CACA,YACA,sBACA,kBACA,CACA,SACA,wBACA,gBACA,sBACA,kBACA,SACA,aACA,aACA,CACA,UAEA,wBACA,sBACA,kBACA,gBACA,CAEA,EACA,IACA,uCACA,6BACA,wCACA,gDACA,qKCnJgBO,qBAAqB,mBAArBA,GAt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AO,GACrE,EAA4B,EAAQ,KADyB,EAE7D,EAAiC,EAAQ,KAAmD,CADzD,CAEnC,EAAsC,EAAQ,IAAoC,EAD1C,EAEN,EAAQ,KAA2C,EACrF,EAA+B,EAAQ,KAA4B,CAD1B,CAEzC,EAA2B,EAAQ,KAAuC,CADpC,CAEtC,EAAmB,EAAQ,IAAqB,EAMhD,WAN0B,GAM1B,mCACA,cACA,OACA,yBACA,mBACA,6BACA,8BACA,CACA,CACA,aACA,OACA,uBACA,sBACA,sBACA,wBACA,iBAEA,CACA,cACA,MACA,0DAEA,kBACA,QACA,2CADA,GAWA,iCACA,wBACA,iEAAgG,SAAa,+EAA+E,EAAW,oJACvM,aACA,cACA,eACA,CAAS,EAET,MACA,4BACA,oCACU,gCACV,eAEA,8DAAkG,SAAa,kDAAkD,EAAW,mGAC5K,aACA,cACA,eACA,CAAa,CAGb,OAFA,4BACA,4BACA,CACA,EAAU,CAIV,CACA,OALmB,EAKnB,GAL8G,CAK9G,CALgH,EAEvG,IAIT,oCACA,6BACA,8BACA,CACA,kBAEA,8DAA0F,SAAa,oDAAoD,EAAW,qGACtK,aACA,cACA,eACA,CAAK,CAIL,OAHA,eACA,4BACA,4BACA,CACA,CACA,gBACA,GACA,6CAMA,qDACA,gBAMA,CAIA,kBAEA,QADA,SAA4B,GAAO,kEAAkE,EAAW,IAEhH,sBACA,wBACA,GACA,wBAGA,oDACA,YACA,CAAS,CAET,CACA,oBACA,wBAOA,OANA,GACA,qCACA,0BACA,+BAGA,QACA,CACA,cAGA,mBACA,CACA,oBACA,8BACA,GACA,qCACA,0BACA,8BACA,mBAGA,0BAIA,SACA,WAAmD,GAAO,kEAAkE,EAAW,GACvI,CACA,QACA,mBAAoB,UAAe,EACnC,wCAEA,MADA,mDAEA,CACA,kBACA,IACA,GACA,wBAGA,oDACA,YACA,CAAS,EAET,mCACA,CACA,gBACA,eAAoB,GAAO,kEAAkE,EAAW,oKAExG,oBACA,0DACA,YAGA,CACA,cACA,iKACA,CACA,0BACA,iJACA,aACA,cACA,eACA,CAAK,EAEL,mCACA,cACA,0DACA,aACA,cACA,eACA,CAAK,EAEL,OADA,WACA,CACA,CACA,cACA,+FACA,CACA,cACA,iBACA,CACA,gBAKA,OADA,6CACA,kBAEA,cACA,gFAAgH,UAAmB,IACnI,gBAGA,qBAEA,kCAIA,8BAIA,wBAIS,WACT,6BAA4C,EAAW;AAAA,EAAK,EAAM,GAElE,CACA,aACA,MACA,2LACA,aACA,cACA,eACA,CAAS,CAET,CACA,cACA,IACA,0BAEA,IACA,8BACA,CAAM,SACN,UACA,CACA,gBAEA,cACA,0BAgBA,OAfA,cAIA,qCACA,SACA,CAAS,EAOT,wCAEA,SAEA,gBACA,wBACA,GACA,wBACA,oDACA,YACA,CAAS,CAET,CACA,cACA,oCACA,iFAGA,wCACA,IAEA,qBAIA,0DACc,yBAEd,+BACc,6BACd,SAGA,CACA,CACA,yCACA,sBAAiD,yBAA0C,WAC3F,sBAAiD,yBAA0C,WAC3F,sBAA+C,uBAAwC,WACvF,sBACA,eAGM,cACN,wBACA,MACA,CAAM,cACN,wBACA,MACA,CAAM,cACN,yBACA,MACA,EAAM,iEACN,0BACA,MACA,EAAM,IAEN,eAKA,KACA,0DACA,aACA,cACA,eACA,CAAK,EAEL,OADA,sBACA,CACA,EAdA,UAAkC,EAAM,iVACxC,GACA,wBACA,MACA,EACA,CAUA,wBACA,EACA,EACA,EAcA,GAbA,6BACA,8BACA,0BACA,4BACM,6BACN,8BACA,0BACA,6BAEA,OACA,SACA,MAEA,0BAOA,MANA,GAGA,iBAGA,4BAEA,sBACA,aACA,YAAuB,WAA0B,IACjD,mBAEA,kCACA,CACA,2BACA,yBACA,KAEA,MADA,iBACA,4DAAyG,EAAM,sEAAsE,GAAgB,sGACrM,aACA,cACA,eACA,CAAiB,CAEjB,mEAAqG,EAAM,seAC3G,aACA,cACA,eACA,CAAa,CACb,CAAU,yBACV,KAEA,MADA,iBACA,4DAAyG,EAAM,sEAAsE,GAAgB,sGACrM,aACA,cACA,eACA,CAAiB,CAEjB,mEAAqG,EAAM,seAC3G,aACA,cACA,eACA,CAAa,CACb,CACA,CACA,uKC1hB0BiE,qBAAqB,mBAArBA,EAAAA,qBAAqB,EAAtCC,eAAe,mBAAfA,EAAAA,eAAe,EACflC,cAAc,mBAAdA,EAAAA,cAAc,YADgC,WACxB,uICUfkF,qCAAAA,aAVoB,WACN,WACA,WACJ,MAOnB,SAASA,EAAuBlE,CAAkB,EACvD,IAAIhD,EAAWvB,CAAAA,EAAAA,EAAAA,SAAAA,EACbuE,EAAKhD,QAAQ,CACbgD,EAAKrE,MAAM,CACXqE,EAAKK,OAAO,MAAG8D,EAAYnE,EAAKpE,aAAa,CAC7CoE,EAAKnE,YAAY,EAenB,OAZImE,EAAKK,OAAO,EAAI,CAACL,EAAKF,aAAAA,EAAe,EACvC9C,EAAWoH,CAAAA,EAAAA,EAAAA,mBAAAA,EAAoBpH,EAAAA,EAG7BgD,EAAKK,OAAO,EAAE,CAChBrD,EAAWF,CAAAA,EAAAA,EAAAA,aAAAA,EACTb,CAAAA,EAAAA,EAAAA,aAAAA,EAAce,EAAW,eAAcgD,EAAKK,OAAO,EACjC,MAAlBL,EAAKhD,QAAQ,CAAW,aAAe,UAI3CA,EAAWf,CAAAA,EAAAA,EAAAA,aAAAA,EAAce,EAAUgD,EAAKJ,QAAQ,EACzC,CAACI,EAAKK,OAAO,EAAIL,EAAKF,aAAa,CACtC,EAAUG,QAAQ,CAAC,KAEjBjD,EADAF,GAAAA,EAAAA,aAAAA,EAAcE,EAAU,KAE1BoH,CAAAA,EAAAA,EAAAA,mBAAAA,EAAoBpH,EAC1B,kDCnCA,qCAA6C,CAC7C,QACA,CAAC,EAAC,OACF,2BAA0C,CAC1C,cACA,eACA,QACA,CACA,CAAC,EAAC,IACF,EAA8B,EAAQ,KAAwC,EAC9E,EAAsB,EAAQ,KAAiB,CADV,OAErC,EAMA,EAP6B,KAO7B,cACA,gBACA,WACA,CAAS,CACT,CACA,2BAA4B,yBAAkC,EAC9D,gBACA,mBACA,gBACA,gBACA,CACA,kBACA,8BACA,CAIA,aACA,4BAKA,gBACA,qCAEA,wBACA,wBACA,wGACA,aACA,cACA,eACA,CAAa,EAEb,mCACA,MACA,qIACA,YACA,cACA,eACA,CAAiB,EAEjB,yCACA,CACA,OAAe,EAAM,mBACrB,CACA,wBACA,wBACA,wGACA,aACA,cACA,eACA,CAAa,EAEb,mCACA,MACA,qIACA,YACA,cACA,eACA,CAAiB,EAEjB,yCACA,CACA,qBAKA,eACA,wBACA,uGACA,YACA,cACA,eACA,CAAa,EAEb,kCACA,yGACA,aACA,cACA,eACA,CAAa,SAEb,EAAkB,wBAClB,sCAGA,6BACA,qCAEA,cASA,aASA,EARA,wBACA,gHACA,aACA,cACA,eACA,CAAa,EAoBb,CAfA,EADA,+BACA,CACA,sCACA,CACU,6BACV,cACmB,EAAM,wBACzB,CACA,sCACA,CAEA,CACA,cACA,EAGA,QAEA,eACA,CAOA,gBACA,IACA,8BAKA,eACA,CAAa,EAGb,qCAEA,eACA,CAAU,SAIV,0BAEA,iBACA,MACA,CAIA,OACA,CACA,CAMA,4BACA,8DACA,CACA,gCC9LA,qCAA6C,CAC7C,QACA,CAAC,EAAC,OACF,2BAA0C,CAC1C,cACA,eACA,QACA,CACA,CAAC,EAED,MAAiB,EAAQ,KAAmB,EAC5C,EAAmB,EAAQ,IAAqB,EADxB,EAET,EAAQ,KAAS,EADN,CAE1B,SADsB,CAEtB,IACA,mCACA,0DACA,2BACA,cACA,eACA,YAEA,CAAa,CAEb,CAAK,CAEL,EAba,EAAQ,IAAS,IAc9B,SACA,eACA,+BAGA,iBAA2B,yBAA2B,MAAM,EAAI,GAAG,UAAiC,EAIpG,iCACS,EAIT,KADA,WACA,EACA,CACA,iBAGA,MACA,UACA,eACA,uBACA,CAAa,EAEb,qBAAgB,oEAAgG,EAChH,4BACA,MACA,sBACA,CAAS,cACT,MAGA,sHACA,oCAGA,yDACA,KACA,OACA,IAMA,GALA,oBAIiB,KAJjB,eACA,OACA,sCACA,YACA,CAAiB,IACjB,KACA,KACA,KACA,0BAGA,YAGA,eACA,cACA,qBACA,iBACA,CAAiB,EAGjB,MAGA,OADA,kDACA,KAEA,0CACA,KACA,SACA,CAAiB,EACjB,MAGA,OADA,kDACA,KAyBA,OArBA,OACA,KACA,MAIA,iBACA,iBACA,wBACA,MACA,QACA,wBACA,EAEA,uBACA,4BACA,oBACA,YACA,CAAyB,GAGzB,CACA,CAAc,SAGd,kCACA,4DACA,2EACA,wBACA,cACA,aACA,QACA,CAAyB,CACzB,oBACA,YACA,CAAqB,CACrB,CAGA,KAEA,OADA,iBACA,IAGA,QACA,CACA,CAAS,EACT,mCACA,CACA","sources":["webpack://_N_E/./node_modules/next/dist/server/web/error.js","webpack://_N_E/./node_modules/next/dist/server/web/spec-extension/unstable-no-store.js","webpack://_N_E/../../../../../src/shared/lib/router/utils/add-locale.ts","webpack://_N_E/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js","webpack://_N_E/./node_modules/next/dist/lib/scheduler.js","webpack://_N_E/./node_modules/next/dist/server/use-cache/cache-tag.js","webpack://_N_E/../../../../../src/shared/lib/router/utils/remove-path-prefix.ts","webpack://_N_E/./node_modules/next/dist/lib/detached-promise.js","webpack://_N_E/./node_modules/ieee754/index.js","webpack://_N_E/./node_modules/next/dist/server/response-cache/types.js","webpack://_N_E/./node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","webpack://_N_E/./node_modules/next/dist/server/lib/trace/constants.js","webpack://_N_E/../../../src/client/components/static-generation-bailout.ts","webpack://_N_E/./node_modules/next/cache.js","webpack://_N_E/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js","webpack://_N_E/./node_modules/next/dist/server/lib/clone-response.js","webpack://_N_E/../../../../../src/shared/lib/router/utils/add-path-suffix.ts","webpack://_N_E/./node_modules/next/dist/server/web/utils.js","webpack://_N_E/./node_modules/next/dist/server/web/spec-extension/request.js","webpack://_N_E/./node_modules/next/dist/lib/batcher.js","webpack://_N_E/./node_modules/next/dist/server/web/spec-extension/cookies.js","webpack://_N_E/./node_modules/next/dist/server/lib/dedupe-fetch.js","webpack://_N_E/./node_modules/next/dist/server/response-cache/utils.js","webpack://_N_E/./node_modules/next/dist/server/lib/trace/tracer.js","webpack://_N_E/../../../../src/shared/lib/i18n/detect-domain-locale.ts","webpack://_N_E/../../../src/client/components/hooks-server-context.ts","webpack://_N_E/./node_modules/buffer/index.js","webpack://_N_E/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js","webpack://_N_E/./node_modules/next/dist/server/dynamic-rendering-utils.js","webpack://_N_E/./node_modules/next/dist/server/base-http/helpers.js","webpack://_N_E/../../../../src/shared/lib/i18n/normalize-locale-path.ts","webpack://_N_E/../../../../../src/shared/lib/router/utils/is-dynamic.ts","webpack://_N_E/./node_modules/next/dist/server/web/spec-extension/revalidate.js","webpack://_N_E/../../../../../src/shared/lib/router/utils/get-next-pathname-info.ts","webpack://_N_E/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js","webpack://_N_E/./node_modules/next/dist/server/pipe-readable.js","webpack://_N_E/./node_modules/base64-js/index.js","webpack://_N_E/./node_modules/next/dist/compiled/@opentelemetry/api/index.js","webpack://_N_E/./node_modules/next/dist/server/use-cache/cache-life.js","webpack://_N_E/./node_modules/next/dist/server/web/next-url.js","webpack://_N_E/./node_modules/next/dist/server/client-component-renderer-logger.js","webpack://_N_E/./node_modules/next/dist/server/request-meta.js","webpack://_N_E/./node_modules/next/dist/server/web/spec-extension/unstable-cache.js","webpack://_N_E/./node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","webpack://_N_E/./node_modules/next/dist/server/lib/patch-fetch.js","webpack://_N_E/./node_modules/next/dist/server/stream-utils/encodedTags.js","webpack://_N_E/../../../src/shared/lib/get-hostname.ts","webpack://_N_E/./node_modules/next/dist/lib/constants.js?1216","webpack://_N_E/../../../../../src/shared/lib/router/utils/sorted-routes.ts","webpack://_N_E/./node_modules/next/dist/server/route-kind.js","webpack://_N_E/./node_modules/next/dist/server/app-render/dynamic-rendering.js","webpack://_N_E/../../../../../src/shared/lib/router/utils/index.ts","webpack://_N_E/../../../../../src/shared/lib/router/utils/format-next-pathname-info.ts","webpack://_N_E/./node_modules/next/dist/server/render-result.js","webpack://_N_E/./node_modules/next/dist/server/response-cache/index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n PageSignatureError: null,\n RemovedPageError: null,\n RemovedUAError: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PageSignatureError: function() {\n return PageSignatureError;\n },\n RemovedPageError: function() {\n return RemovedPageError;\n },\n RemovedUAError: function() {\n return RemovedUAError;\n }\n});\nclass PageSignatureError extends Error {\n constructor({ page }){\n super(`The middleware \"${page}\" accepts an async API directly with the form:\n \n export function middleware(request, event) {\n return NextResponse.redirect('/new-location')\n }\n \n Read more: https://nextjs.org/docs/messages/middleware-new-signature\n `);\n }\n}\nclass RemovedPageError extends Error {\n constructor(){\n super(`The request.page has been deprecated in favour of \\`URLPattern\\`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n `);\n }\n}\nclass RemovedUAError extends Error {\n constructor(){\n super(`The request.ua has been removed in favour of \\`userAgent\\` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n `);\n }\n}\n\n//# sourceMappingURL=error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"unstable_noStore\", {\n enumerable: true,\n get: function() {\n return unstable_noStore;\n }\n});\nconst _workasyncstorageexternal = require(\"../../app-render/work-async-storage.external\");\nconst _workunitasyncstorageexternal = require(\"../../app-render/work-unit-async-storage.external\");\nconst _dynamicrendering = require(\"../../app-render/dynamic-rendering\");\nfunction unstable_noStore() {\n const callingExpression = 'unstable_noStore()';\n const store = _workasyncstorageexternal.workAsyncStorage.getStore();\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (!store) {\n // This generally implies we are being called in Pages router. We should probably not support\n // unstable_noStore in contexts outside of `react-server` condition but since we historically\n // have not errored here previously, we maintain that behavior for now.\n return;\n } else if (store.forceStatic) {\n return;\n } else {\n store.isUnstableNoStore = true;\n if (workUnitStore && workUnitStore.type === 'prerender') {\n // unstable_noStore() is a noop in Dynamic I/O.\n } else {\n (0, _dynamicrendering.markCurrentScopeAsDynamic)(store, workUnitStore, callingExpression);\n }\n }\n}\n\n//# sourceMappingURL=unstable-no-store.js.map","import { addPathPrefix } from './add-path-prefix'\nimport { pathHasPrefix } from './path-has-prefix'\n\n/**\n * For a given path and a locale, if the locale is given, it will prefix the\n * locale. The path shouldn't be an API path. If a default locale is given the\n * prefix will be omitted if the locale is already the default locale.\n */\nexport function addLocale(\n path: string,\n locale?: string | false,\n defaultLocale?: string,\n ignorePrefix?: boolean\n) {\n // If no locale was given or the locale is the default locale, we don't need\n // to prefix the path.\n if (!locale || locale === defaultLocale) return path\n\n const lower = path.toLowerCase()\n\n // If the path is an API path or the path already has the locale prefix, we\n // don't need to prefix the path.\n if (!ignorePrefix) {\n if (pathHasPrefix(lower, '/api')) return path\n if (pathHasPrefix(lower, `/${locale.toLowerCase()}`)) return path\n }\n\n // Add the locale prefix to the path.\n return addPathPrefix(path, `/${locale}`)\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n NextRequestAdapter: null,\n ResponseAborted: null,\n ResponseAbortedName: null,\n createAbortController: null,\n signalFromNodeResponse: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NextRequestAdapter: function() {\n return NextRequestAdapter;\n },\n ResponseAborted: function() {\n return ResponseAborted;\n },\n ResponseAbortedName: function() {\n return ResponseAbortedName;\n },\n createAbortController: function() {\n return createAbortController;\n },\n signalFromNodeResponse: function() {\n return signalFromNodeResponse;\n }\n});\nconst _requestmeta = require(\"../../../request-meta\");\nconst _utils = require(\"../../utils\");\nconst _request = require(\"../request\");\nconst _helpers = require(\"../../../base-http/helpers\");\nconst ResponseAbortedName = 'ResponseAborted';\nclass ResponseAborted extends Error {\n constructor(...args){\n super(...args), this.name = ResponseAbortedName;\n }\n}\nfunction createAbortController(response) {\n const controller = new AbortController();\n // If `finish` fires first, then `res.end()` has been called and the close is\n // just us finishing the stream on our side. If `close` fires first, then we\n // know the client disconnected before we finished.\n response.once('close', ()=>{\n if (response.writableFinished) return;\n controller.abort(new ResponseAborted());\n });\n return controller;\n}\nfunction signalFromNodeResponse(response) {\n const { errored, destroyed } = response;\n if (errored || destroyed) {\n return AbortSignal.abort(errored ?? new ResponseAborted());\n }\n const { signal } = createAbortController(response);\n return signal;\n}\nclass NextRequestAdapter {\n static fromBaseNextRequest(request, signal) {\n if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n process.env.NEXT_RUNTIME === 'edge' && (0, _helpers.isWebNextRequest)(request)) {\n return NextRequestAdapter.fromWebNextRequest(request);\n } else if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n process.env.NEXT_RUNTIME !== 'edge' && (0, _helpers.isNodeNextRequest)(request)) {\n return NextRequestAdapter.fromNodeNextRequest(request, signal);\n } else {\n throw Object.defineProperty(new Error('Invariant: Unsupported NextRequest type'), \"__NEXT_ERROR_CODE\", {\n value: \"E345\",\n enumerable: false,\n configurable: true\n });\n }\n }\n static fromNodeNextRequest(request, signal) {\n // HEAD and GET requests can not have a body.\n let body = null;\n if (request.method !== 'GET' && request.method !== 'HEAD' && request.body) {\n // @ts-expect-error - this is handled by undici, when streams/web land use it instead\n body = request.body;\n }\n let url;\n if (request.url.startsWith('http')) {\n url = new URL(request.url);\n } else {\n // Grab the full URL from the request metadata.\n const base = (0, _requestmeta.getRequestMeta)(request, 'initURL');\n if (!base || !base.startsWith('http')) {\n // Because the URL construction relies on the fact that the URL provided\n // is absolute, we need to provide a base URL. We can't use the request\n // URL because it's relative, so we use a dummy URL instead.\n url = new URL(request.url, 'http://n');\n } else {\n url = new URL(request.url, base);\n }\n }\n return new _request.NextRequest(url, {\n method: request.method,\n headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers),\n duplex: 'half',\n signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...signal.aborted ? {} : {\n body\n }\n });\n }\n static fromWebNextRequest(request) {\n // HEAD and GET requests can not have a body.\n let body = null;\n if (request.method !== 'GET' && request.method !== 'HEAD') {\n body = request.body;\n }\n return new _request.NextRequest(request.url, {\n method: request.method,\n headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers),\n duplex: 'half',\n signal: request.request.signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...request.request.signal.aborted ? {} : {\n body\n }\n });\n }\n}\n\n//# sourceMappingURL=next-request.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n atLeastOneTask: null,\n scheduleImmediate: null,\n scheduleOnNextTick: null,\n waitAtLeastOneReactRenderTask: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n atLeastOneTask: function() {\n return atLeastOneTask;\n },\n scheduleImmediate: function() {\n return scheduleImmediate;\n },\n scheduleOnNextTick: function() {\n return scheduleOnNextTick;\n },\n waitAtLeastOneReactRenderTask: function() {\n return waitAtLeastOneReactRenderTask;\n }\n});\nconst scheduleOnNextTick = (cb)=>{\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(()=>{\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0);\n } else {\n process.nextTick(cb);\n }\n });\n};\nconst scheduleImmediate = (cb)=>{\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0);\n } else {\n setImmediate(cb);\n }\n};\nfunction atLeastOneTask() {\n return new Promise((resolve)=>scheduleImmediate(resolve));\n}\nfunction waitAtLeastOneReactRenderTask() {\n if (process.env.NEXT_RUNTIME === 'edge') {\n return new Promise((r)=>setTimeout(r, 0));\n } else {\n return new Promise((r)=>setImmediate(r));\n }\n}\n\n//# sourceMappingURL=scheduler.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"cacheTag\", {\n enumerable: true,\n get: function() {\n return cacheTag;\n }\n});\nconst _workunitasyncstorageexternal = require(\"../app-render/work-unit-async-storage.external\");\nconst _patchfetch = require(\"../lib/patch-fetch\");\nfunction cacheTag(...tags) {\n if (!process.env.__NEXT_USE_CACHE) {\n throw Object.defineProperty(new Error('cacheTag() is only available with the experimental.useCache config.'), \"__NEXT_ERROR_CODE\", {\n value: \"E628\",\n enumerable: false,\n configurable: true\n });\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (!workUnitStore || workUnitStore.type !== 'cache') {\n throw Object.defineProperty(new Error('cacheTag() can only be called inside a \"use cache\" function.'), \"__NEXT_ERROR_CODE\", {\n value: \"E177\",\n enumerable: false,\n configurable: true\n });\n }\n const validTags = (0, _patchfetch.validateTags)(tags, 'cacheTag()');\n if (!workUnitStore.tags) {\n workUnitStore.tags = validTags;\n } else {\n workUnitStore.tags.push(...validTags);\n }\n}\n\n//# sourceMappingURL=cache-tag.js.map","import { pathHasPrefix } from './path-has-prefix'\n\n/**\n * Given a path and a prefix it will remove the prefix when it exists in the\n * given path. It ensures it matches exactly without containing extra chars\n * and if the prefix is not there it will be noop.\n *\n * @param path The path to remove the prefix from.\n * @param prefix The prefix to be removed.\n */\nexport function removePathPrefix(path: string, prefix: string): string {\n // If the path doesn't start with the prefix we can return it as is. This\n // protects us from situations where the prefix is a substring of the path\n // prefix such as:\n //\n // For prefix: /blog\n //\n // /blog -> true\n // /blog/ -> true\n // /blog/1 -> true\n // /blogging -> false\n // /blogging/ -> false\n // /blogging/1 -> false\n if (!pathHasPrefix(path, prefix)) {\n return path\n }\n\n // Remove the prefix from the path via slicing.\n const withoutPrefix = path.slice(prefix.length)\n\n // If the path without the prefix starts with a `/` we can return it as is.\n if (withoutPrefix.startsWith('/')) {\n return withoutPrefix\n }\n\n // If the path without the prefix doesn't start with a `/` we need to add it\n // back to the path to make sure it's a valid path.\n return `/${withoutPrefix}`\n}\n","/**\n * A `Promise.withResolvers` implementation that exposes the `resolve` and\n * `reject` functions on a `Promise`.\n *\n * @see https://tc39.es/proposal-promise-with-resolvers/\n */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"DetachedPromise\", {\n enumerable: true,\n get: function() {\n return DetachedPromise;\n }\n});\nclass DetachedPromise {\n constructor(){\n let resolve;\n let reject;\n // Create the promise and assign the resolvers to the object.\n this.promise = new Promise((res, rej)=>{\n resolve = res;\n reject = rej;\n });\n // We know that resolvers is defined because the Promise constructor runs\n // synchronously.\n this.resolve = resolve;\n this.reject = reject;\n }\n}\n\n//# sourceMappingURL=detached-promise.js.map","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n CachedRouteKind: null,\n IncrementalCacheKind: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n CachedRouteKind: function() {\n return CachedRouteKind;\n },\n IncrementalCacheKind: function() {\n return IncrementalCacheKind;\n }\n});\nvar CachedRouteKind = /*#__PURE__*/ function(CachedRouteKind) {\n CachedRouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n CachedRouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n CachedRouteKind[\"PAGES\"] = \"PAGES\";\n CachedRouteKind[\"FETCH\"] = \"FETCH\";\n CachedRouteKind[\"REDIRECT\"] = \"REDIRECT\";\n CachedRouteKind[\"IMAGE\"] = \"IMAGE\";\n return CachedRouteKind;\n}({});\nvar IncrementalCacheKind = /*#__PURE__*/ function(IncrementalCacheKind) {\n IncrementalCacheKind[\"APP_PAGE\"] = \"APP_PAGE\";\n IncrementalCacheKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n IncrementalCacheKind[\"PAGES\"] = \"PAGES\";\n IncrementalCacheKind[\"FETCH\"] = \"FETCH\";\n IncrementalCacheKind[\"IMAGE\"] = \"IMAGE\";\n return IncrementalCacheKind;\n}({});\n\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n getExpectedRequestStore: null,\n getHmrRefreshHash: null,\n getPrerenderResumeDataCache: null,\n getRenderResumeDataCache: null,\n workUnitAsyncStorage: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getExpectedRequestStore: function() {\n return getExpectedRequestStore;\n },\n getHmrRefreshHash: function() {\n return getHmrRefreshHash;\n },\n getPrerenderResumeDataCache: function() {\n return getPrerenderResumeDataCache;\n },\n getRenderResumeDataCache: function() {\n return getRenderResumeDataCache;\n },\n workUnitAsyncStorage: function() {\n return _workunitasyncstorageinstance.workUnitAsyncStorageInstance;\n }\n});\nconst _workunitasyncstorageinstance = require(\"./work-unit-async-storage-instance\");\nfunction getExpectedRequestStore(callingExpression) {\n const workUnitStore = _workunitasyncstorageinstance.workUnitAsyncStorageInstance.getStore();\n if (workUnitStore) {\n if (workUnitStore.type === 'request') {\n return workUnitStore;\n }\n if (workUnitStore.type === 'prerender' || workUnitStore.type === 'prerender-ppr' || workUnitStore.type === 'prerender-legacy') {\n // This should not happen because we should have checked it already.\n throw Object.defineProperty(new Error(`\\`${callingExpression}\\` cannot be called inside a prerender. This is a bug in Next.js.`), \"__NEXT_ERROR_CODE\", {\n value: \"E401\",\n enumerable: false,\n configurable: true\n });\n }\n if (workUnitStore.type === 'cache') {\n throw Object.defineProperty(new Error(`\\`${callingExpression}\\` cannot be called inside \"use cache\". Call it outside and pass an argument instead. Read more: https://nextjs.org/docs/messages/next-request-in-use-cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E37\",\n enumerable: false,\n configurable: true\n });\n } else if (workUnitStore.type === 'unstable-cache') {\n throw Object.defineProperty(new Error(`\\`${callingExpression}\\` cannot be called inside unstable_cache. Call it outside and pass an argument instead. Read more: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E69\",\n enumerable: false,\n configurable: true\n });\n }\n }\n throw Object.defineProperty(new Error(`\\`${callingExpression}\\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`), \"__NEXT_ERROR_CODE\", {\n value: \"E251\",\n enumerable: false,\n configurable: true\n });\n}\nfunction getPrerenderResumeDataCache(workUnitStore) {\n if (workUnitStore.type === 'prerender' || workUnitStore.type === 'prerender-ppr') {\n return workUnitStore.prerenderResumeDataCache;\n }\n return null;\n}\nfunction getRenderResumeDataCache(workUnitStore) {\n if (workUnitStore.type !== 'prerender-legacy' && workUnitStore.type !== 'cache' && workUnitStore.type !== 'unstable-cache') {\n if (workUnitStore.type === 'request') {\n return workUnitStore.renderResumeDataCache;\n }\n // We return the mutable resume data cache here as an immutable version of\n // the cache as it can also be used for reading.\n return workUnitStore.prerenderResumeDataCache;\n }\n return null;\n}\nfunction getHmrRefreshHash(workUnitStore) {\n var _workUnitStore_cookies_get;\n return workUnitStore.type === 'cache' ? workUnitStore.hmrRefreshHash : workUnitStore.type === 'request' ? (_workUnitStore_cookies_get = workUnitStore.cookies.get('__next_hmr_refresh_hash__')) == null ? void 0 : _workUnitStore_cookies_get.value : undefined;\n}\n\n//# sourceMappingURL=work-unit-async-storage.external.js.map","/**\n * Contains predefined constants for the trace span name in next/server.\n *\n * Currently, next/server/tracer is internal implementation only for tracking\n * next.js's implementation only with known span names defined here.\n **/ // eslint typescript has a bug with TS enums\n/* eslint-disable no-shadow */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n AppRenderSpan: null,\n AppRouteRouteHandlersSpan: null,\n BaseServerSpan: null,\n LoadComponentsSpan: null,\n LogSpanAllowList: null,\n MiddlewareSpan: null,\n NextNodeServerSpan: null,\n NextServerSpan: null,\n NextVanillaSpanAllowlist: null,\n NodeSpan: null,\n RenderSpan: null,\n ResolveMetadataSpan: null,\n RouterSpan: null,\n StartServerSpan: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n AppRenderSpan: function() {\n return AppRenderSpan;\n },\n AppRouteRouteHandlersSpan: function() {\n return AppRouteRouteHandlersSpan;\n },\n BaseServerSpan: function() {\n return BaseServerSpan;\n },\n LoadComponentsSpan: function() {\n return LoadComponentsSpan;\n },\n LogSpanAllowList: function() {\n return LogSpanAllowList;\n },\n MiddlewareSpan: function() {\n return MiddlewareSpan;\n },\n NextNodeServerSpan: function() {\n return NextNodeServerSpan;\n },\n NextServerSpan: function() {\n return NextServerSpan;\n },\n NextVanillaSpanAllowlist: function() {\n return NextVanillaSpanAllowlist;\n },\n NodeSpan: function() {\n return NodeSpan;\n },\n RenderSpan: function() {\n return RenderSpan;\n },\n ResolveMetadataSpan: function() {\n return ResolveMetadataSpan;\n },\n RouterSpan: function() {\n return RouterSpan;\n },\n StartServerSpan: function() {\n return StartServerSpan;\n }\n});\nvar BaseServerSpan = /*#__PURE__*/ function(BaseServerSpan) {\n BaseServerSpan[\"handleRequest\"] = \"BaseServer.handleRequest\";\n BaseServerSpan[\"run\"] = \"BaseServer.run\";\n BaseServerSpan[\"pipe\"] = \"BaseServer.pipe\";\n BaseServerSpan[\"getStaticHTML\"] = \"BaseServer.getStaticHTML\";\n BaseServerSpan[\"render\"] = \"BaseServer.render\";\n BaseServerSpan[\"renderToResponseWithComponents\"] = \"BaseServer.renderToResponseWithComponents\";\n BaseServerSpan[\"renderToResponse\"] = \"BaseServer.renderToResponse\";\n BaseServerSpan[\"renderToHTML\"] = \"BaseServer.renderToHTML\";\n BaseServerSpan[\"renderError\"] = \"BaseServer.renderError\";\n BaseServerSpan[\"renderErrorToResponse\"] = \"BaseServer.renderErrorToResponse\";\n BaseServerSpan[\"renderErrorToHTML\"] = \"BaseServer.renderErrorToHTML\";\n BaseServerSpan[\"render404\"] = \"BaseServer.render404\";\n return BaseServerSpan;\n}(BaseServerSpan || {});\nvar LoadComponentsSpan = /*#__PURE__*/ function(LoadComponentsSpan) {\n LoadComponentsSpan[\"loadDefaultErrorComponents\"] = \"LoadComponents.loadDefaultErrorComponents\";\n LoadComponentsSpan[\"loadComponents\"] = \"LoadComponents.loadComponents\";\n return LoadComponentsSpan;\n}(LoadComponentsSpan || {});\nvar NextServerSpan = /*#__PURE__*/ function(NextServerSpan) {\n NextServerSpan[\"getRequestHandler\"] = \"NextServer.getRequestHandler\";\n NextServerSpan[\"getServer\"] = \"NextServer.getServer\";\n NextServerSpan[\"getServerRequestHandler\"] = \"NextServer.getServerRequestHandler\";\n NextServerSpan[\"createServer\"] = \"createServer.createServer\";\n return NextServerSpan;\n}(NextServerSpan || {});\nvar NextNodeServerSpan = /*#__PURE__*/ function(NextNodeServerSpan) {\n NextNodeServerSpan[\"compression\"] = \"NextNodeServer.compression\";\n NextNodeServerSpan[\"getBuildId\"] = \"NextNodeServer.getBuildId\";\n NextNodeServerSpan[\"createComponentTree\"] = \"NextNodeServer.createComponentTree\";\n NextNodeServerSpan[\"clientComponentLoading\"] = \"NextNodeServer.clientComponentLoading\";\n NextNodeServerSpan[\"getLayoutOrPageModule\"] = \"NextNodeServer.getLayoutOrPageModule\";\n NextNodeServerSpan[\"generateStaticRoutes\"] = \"NextNodeServer.generateStaticRoutes\";\n NextNodeServerSpan[\"generateFsStaticRoutes\"] = \"NextNodeServer.generateFsStaticRoutes\";\n NextNodeServerSpan[\"generatePublicRoutes\"] = \"NextNodeServer.generatePublicRoutes\";\n NextNodeServerSpan[\"generateImageRoutes\"] = \"NextNodeServer.generateImageRoutes.route\";\n NextNodeServerSpan[\"sendRenderResult\"] = \"NextNodeServer.sendRenderResult\";\n NextNodeServerSpan[\"proxyRequest\"] = \"NextNodeServer.proxyRequest\";\n NextNodeServerSpan[\"runApi\"] = \"NextNodeServer.runApi\";\n NextNodeServerSpan[\"render\"] = \"NextNodeServer.render\";\n NextNodeServerSpan[\"renderHTML\"] = \"NextNodeServer.renderHTML\";\n NextNodeServerSpan[\"imageOptimizer\"] = \"NextNodeServer.imageOptimizer\";\n NextNodeServerSpan[\"getPagePath\"] = \"NextNodeServer.getPagePath\";\n NextNodeServerSpan[\"getRoutesManifest\"] = \"NextNodeServer.getRoutesManifest\";\n NextNodeServerSpan[\"findPageComponents\"] = \"NextNodeServer.findPageComponents\";\n NextNodeServerSpan[\"getFontManifest\"] = \"NextNodeServer.getFontManifest\";\n NextNodeServerSpan[\"getServerComponentManifest\"] = \"NextNodeServer.getServerComponentManifest\";\n NextNodeServerSpan[\"getRequestHandler\"] = \"NextNodeServer.getRequestHandler\";\n NextNodeServerSpan[\"renderToHTML\"] = \"NextNodeServer.renderToHTML\";\n NextNodeServerSpan[\"renderError\"] = \"NextNodeServer.renderError\";\n NextNodeServerSpan[\"renderErrorToHTML\"] = \"NextNodeServer.renderErrorToHTML\";\n NextNodeServerSpan[\"render404\"] = \"NextNodeServer.render404\";\n NextNodeServerSpan[\"startResponse\"] = \"NextNodeServer.startResponse\";\n // nested inner span, does not require parent scope name\n NextNodeServerSpan[\"route\"] = \"route\";\n NextNodeServerSpan[\"onProxyReq\"] = \"onProxyReq\";\n NextNodeServerSpan[\"apiResolver\"] = \"apiResolver\";\n NextNodeServerSpan[\"internalFetch\"] = \"internalFetch\";\n return NextNodeServerSpan;\n}(NextNodeServerSpan || {});\nvar StartServerSpan = /*#__PURE__*/ function(StartServerSpan) {\n StartServerSpan[\"startServer\"] = \"startServer.startServer\";\n return StartServerSpan;\n}(StartServerSpan || {});\nvar RenderSpan = /*#__PURE__*/ function(RenderSpan) {\n RenderSpan[\"getServerSideProps\"] = \"Render.getServerSideProps\";\n RenderSpan[\"getStaticProps\"] = \"Render.getStaticProps\";\n RenderSpan[\"renderToString\"] = \"Render.renderToString\";\n RenderSpan[\"renderDocument\"] = \"Render.renderDocument\";\n RenderSpan[\"createBodyResult\"] = \"Render.createBodyResult\";\n return RenderSpan;\n}(RenderSpan || {});\nvar AppRenderSpan = /*#__PURE__*/ function(AppRenderSpan) {\n AppRenderSpan[\"renderToString\"] = \"AppRender.renderToString\";\n AppRenderSpan[\"renderToReadableStream\"] = \"AppRender.renderToReadableStream\";\n AppRenderSpan[\"getBodyResult\"] = \"AppRender.getBodyResult\";\n AppRenderSpan[\"fetch\"] = \"AppRender.fetch\";\n return AppRenderSpan;\n}(AppRenderSpan || {});\nvar RouterSpan = /*#__PURE__*/ function(RouterSpan) {\n RouterSpan[\"executeRoute\"] = \"Router.executeRoute\";\n return RouterSpan;\n}(RouterSpan || {});\nvar NodeSpan = /*#__PURE__*/ function(NodeSpan) {\n NodeSpan[\"runHandler\"] = \"Node.runHandler\";\n return NodeSpan;\n}(NodeSpan || {});\nvar AppRouteRouteHandlersSpan = /*#__PURE__*/ function(AppRouteRouteHandlersSpan) {\n AppRouteRouteHandlersSpan[\"runHandler\"] = \"AppRouteRouteHandlers.runHandler\";\n return AppRouteRouteHandlersSpan;\n}(AppRouteRouteHandlersSpan || {});\nvar ResolveMetadataSpan = /*#__PURE__*/ function(ResolveMetadataSpan) {\n ResolveMetadataSpan[\"generateMetadata\"] = \"ResolveMetadata.generateMetadata\";\n ResolveMetadataSpan[\"generateViewport\"] = \"ResolveMetadata.generateViewport\";\n return ResolveMetadataSpan;\n}(ResolveMetadataSpan || {});\nvar MiddlewareSpan = /*#__PURE__*/ function(MiddlewareSpan) {\n MiddlewareSpan[\"execute\"] = \"Middleware.execute\";\n return MiddlewareSpan;\n}(MiddlewareSpan || {});\nconst NextVanillaSpanAllowlist = [\n \"Middleware.execute\",\n \"BaseServer.handleRequest\",\n \"Render.getServerSideProps\",\n \"Render.getStaticProps\",\n \"AppRender.fetch\",\n \"AppRender.getBodyResult\",\n \"Render.renderDocument\",\n \"Node.runHandler\",\n \"AppRouteRouteHandlers.runHandler\",\n \"ResolveMetadata.generateMetadata\",\n \"ResolveMetadata.generateViewport\",\n \"NextNodeServer.createComponentTree\",\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.getLayoutOrPageModule\",\n \"NextNodeServer.startResponse\",\n \"NextNodeServer.clientComponentLoading\"\n];\nconst LogSpanAllowList = [\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.createComponentTree\",\n \"NextNodeServer.clientComponentLoading\"\n];\n\n//# sourceMappingURL=constants.js.map","const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT'\n\nexport class StaticGenBailoutError extends Error {\n public readonly code = NEXT_STATIC_GEN_BAILOUT\n}\n\nexport function isStaticGenBailoutError(\n error: unknown\n): error is StaticGenBailoutError {\n if (typeof error !== 'object' || error === null || !('code' in error)) {\n return false\n }\n\n return error.code === NEXT_STATIC_GEN_BAILOUT\n}\n","const cacheExports = {\n unstable_cache: require('next/dist/server/web/spec-extension/unstable-cache')\n .unstable_cache,\n\n revalidateTag: require('next/dist/server/web/spec-extension/revalidate')\n .revalidateTag,\n revalidatePath: require('next/dist/server/web/spec-extension/revalidate')\n .revalidatePath,\n\n unstable_expireTag: require('next/dist/server/web/spec-extension/revalidate')\n .unstable_expireTag,\n unstable_expirePath: require('next/dist/server/web/spec-extension/revalidate')\n .unstable_expirePath,\n\n unstable_noStore:\n require('next/dist/server/web/spec-extension/unstable-no-store')\n .unstable_noStore,\n unstable_cacheLife: require('next/dist/server/use-cache/cache-life')\n .cacheLife,\n unstable_cacheTag: require('next/dist/server/use-cache/cache-tag').cacheTag,\n}\n\n// https://nodejs.org/api/esm.html#commonjs-namespaces\n// When importing CommonJS modules, the module.exports object is provided as the default export\nmodule.exports = cacheExports\n\n// make import { xxx } from 'next/cache' work\nexports.unstable_cache = cacheExports.unstable_cache\nexports.revalidatePath = cacheExports.revalidatePath\nexports.revalidateTag = cacheExports.revalidateTag\nexports.unstable_expireTag = cacheExports.unstable_expireTag\nexports.unstable_expirePath = cacheExports.unstable_expirePath\nexports.unstable_noStore = cacheExports.unstable_noStore\nexports.unstable_cacheLife = cacheExports.unstable_cacheLife\nexports.unstable_cacheTag = cacheExports.unstable_cacheTag\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n chainStreams: null,\n continueDynamicHTMLResume: null,\n continueDynamicPrerender: null,\n continueFizzStream: null,\n continueStaticPrerender: null,\n createBufferedTransformStream: null,\n createDocumentClosingStream: null,\n createRootLayoutValidatorStream: null,\n renderToInitialFizzStream: null,\n streamFromBuffer: null,\n streamFromString: null,\n streamToBuffer: null,\n streamToString: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n chainStreams: function() {\n return chainStreams;\n },\n continueDynamicHTMLResume: function() {\n return continueDynamicHTMLResume;\n },\n continueDynamicPrerender: function() {\n return continueDynamicPrerender;\n },\n continueFizzStream: function() {\n return continueFizzStream;\n },\n continueStaticPrerender: function() {\n return continueStaticPrerender;\n },\n createBufferedTransformStream: function() {\n return createBufferedTransformStream;\n },\n createDocumentClosingStream: function() {\n return createDocumentClosingStream;\n },\n createRootLayoutValidatorStream: function() {\n return createRootLayoutValidatorStream;\n },\n renderToInitialFizzStream: function() {\n return renderToInitialFizzStream;\n },\n streamFromBuffer: function() {\n return streamFromBuffer;\n },\n streamFromString: function() {\n return streamFromString;\n },\n streamToBuffer: function() {\n return streamToBuffer;\n },\n streamToString: function() {\n return streamToString;\n }\n});\nconst _tracer = require(\"../lib/trace/tracer\");\nconst _constants = require(\"../lib/trace/constants\");\nconst _detachedpromise = require(\"../../lib/detached-promise\");\nconst _scheduler = require(\"../../lib/scheduler\");\nconst _encodedTags = require(\"./encodedTags\");\nconst _uint8arrayhelpers = require(\"./uint8array-helpers\");\nfunction voidCatch() {\n// this catcher is designed to be used with pipeTo where we expect the underlying\n// pipe implementation to forward errors but we don't want the pipeTo promise to reject\n// and be unhandled\n}\n// We can share the same encoder instance everywhere\n// Notably we cannot do the same for TextDecoder because it is stateful\n// when handling streaming data\nconst encoder = new TextEncoder();\nfunction chainStreams(...streams) {\n // We could encode this invariant in the arguments but current uses of this function pass\n // use spread so it would be missed by\n if (streams.length === 0) {\n throw Object.defineProperty(new Error('Invariant: chainStreams requires at least one stream'), \"__NEXT_ERROR_CODE\", {\n value: \"E437\",\n enumerable: false,\n configurable: true\n });\n }\n // If we only have 1 stream we fast path it by returning just this stream\n if (streams.length === 1) {\n return streams[0];\n }\n const { readable, writable } = new TransformStream();\n // We always initiate pipeTo immediately. We know we have at least 2 streams\n // so we need to avoid closing the writable when this one finishes.\n let promise = streams[0].pipeTo(writable, {\n preventClose: true\n });\n let i = 1;\n for(; i < streams.length - 1; i++){\n const nextStream = streams[i];\n promise = promise.then(()=>nextStream.pipeTo(writable, {\n preventClose: true\n }));\n }\n // We can omit the length check because we halted before the last stream and there\n // is at least two streams so the lastStream here will always be defined\n const lastStream = streams[i];\n promise = promise.then(()=>lastStream.pipeTo(writable));\n // Catch any errors from the streams and ignore them, they will be handled\n // by whatever is consuming the readable stream.\n promise.catch(voidCatch);\n return readable;\n}\nfunction streamFromString(str) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(encoder.encode(str));\n controller.close();\n }\n });\n}\nfunction streamFromBuffer(chunk) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(chunk);\n controller.close();\n }\n });\n}\nasync function streamToBuffer(stream) {\n const reader = stream.getReader();\n const chunks = [];\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n }\n return Buffer.concat(chunks);\n}\nasync function streamToString(stream, signal) {\n const decoder = new TextDecoder('utf-8', {\n fatal: true\n });\n let string = '';\n for await (const chunk of stream){\n if (signal == null ? void 0 : signal.aborted) {\n return string;\n }\n string += decoder.decode(chunk, {\n stream: true\n });\n }\n string += decoder.decode();\n return string;\n}\nfunction createBufferedTransformStream() {\n let bufferedChunks = [];\n let bufferByteLength = 0;\n let pending;\n const flush = (controller)=>{\n // If we already have a pending flush, then return early.\n if (pending) return;\n const detached = new _detachedpromise.DetachedPromise();\n pending = detached;\n (0, _scheduler.scheduleImmediate)(()=>{\n try {\n const chunk = new Uint8Array(bufferByteLength);\n let copiedBytes = 0;\n for(let i = 0; i < bufferedChunks.length; i++){\n const bufferedChunk = bufferedChunks[i];\n chunk.set(bufferedChunk, copiedBytes);\n copiedBytes += bufferedChunk.byteLength;\n }\n // We just wrote all the buffered chunks so we need to reset the bufferedChunks array\n // and our bufferByteLength to prepare for the next round of buffered chunks\n bufferedChunks.length = 0;\n bufferByteLength = 0;\n controller.enqueue(chunk);\n } catch {\n // If an error occurs while enqueuing it can't be due to this\n // transformers fault. It's likely due to the controller being\n // errored due to the stream being cancelled.\n } finally{\n pending = undefined;\n detached.resolve();\n }\n });\n };\n return new TransformStream({\n transform (chunk, controller) {\n // Combine the previous buffer with the new chunk.\n bufferedChunks.push(chunk);\n bufferByteLength += chunk.byteLength;\n // Flush the buffer to the controller.\n flush(controller);\n },\n flush () {\n if (!pending) return;\n return pending.promise;\n }\n });\n}\nfunction renderToInitialFizzStream({ ReactDOMServer, element, streamOptions }) {\n return (0, _tracer.getTracer)().trace(_constants.AppRenderSpan.renderToReadableStream, async ()=>ReactDOMServer.renderToReadableStream(element, streamOptions));\n}\nfunction createHeadInsertionTransformStream(insert) {\n let inserted = false;\n // We need to track if this transform saw any bytes because if it didn't\n // we won't want to insert any server HTML at all\n let hasBytes = false;\n return new TransformStream({\n async transform (chunk, controller) {\n hasBytes = true;\n const insertion = await insert();\n if (inserted) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n controller.enqueue(encodedInsertion);\n }\n controller.enqueue(chunk);\n } else {\n // TODO (@Ethan-Arrowood): Replace the generic `indexOfUint8Array` method with something finely tuned for the subset of things actually being checked for.\n const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedTags.ENCODED_TAGS.CLOSED.HEAD);\n // In fully static rendering or non PPR rendering cases:\n // `/head>` will always be found in the chunk in first chunk rendering.\n if (index !== -1) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n // Get the total count of the bytes in the chunk and the insertion\n // e.g.\n // chunk = \n // insertion = \n // output = [ ] \n const insertedHeadContent = new Uint8Array(chunk.length + encodedInsertion.length);\n // Append the first part of the chunk, before the head tag\n insertedHeadContent.set(chunk.slice(0, index));\n // Append the server inserted content\n insertedHeadContent.set(encodedInsertion, index);\n // Append the rest of the chunk\n insertedHeadContent.set(chunk.slice(index), index + encodedInsertion.length);\n controller.enqueue(insertedHeadContent);\n } else {\n controller.enqueue(chunk);\n }\n inserted = true;\n } else {\n // This will happens in PPR rendering during next start, when the page is partially rendered.\n // When the page resumes, the head tag will be found in the middle of the chunk.\n // Where we just need to append the insertion and chunk to the current stream.\n // e.g.\n // PPR-static: ... [ resume content ] \n // PPR-resume: [ insertion ] [ rest content ]\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\n controller.enqueue(chunk);\n inserted = true;\n }\n }\n },\n async flush (controller) {\n // Check before closing if there's anything remaining to insert.\n if (hasBytes) {\n const insertion = await insert();\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\n }\n }\n });\n}\n// Suffix after main body content - scripts before ,\n// but wait for the major chunks to be enqueued.\nfunction createDeferredSuffixStream(suffix) {\n let flushed = false;\n let pending;\n const flush = (controller)=>{\n const detached = new _detachedpromise.DetachedPromise();\n pending = detached;\n (0, _scheduler.scheduleImmediate)(()=>{\n try {\n controller.enqueue(encoder.encode(suffix));\n } catch {\n // If an error occurs while enqueuing it can't be due to this\n // transformers fault. It's likely due to the controller being\n // errored due to the stream being cancelled.\n } finally{\n pending = undefined;\n detached.resolve();\n }\n });\n };\n return new TransformStream({\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // If we've already flushed, we're done.\n if (flushed) return;\n // Schedule the flush to happen.\n flushed = true;\n flush(controller);\n },\n flush (controller) {\n if (pending) return pending.promise;\n if (flushed) return;\n // Flush now.\n controller.enqueue(encoder.encode(suffix));\n }\n });\n}\n// Merge two streams into one. Ensure the final transform stream is closed\n// when both are finished.\nfunction createMergedTransformStream(stream) {\n let pull = null;\n let donePulling = false;\n async function startPulling(controller) {\n if (pull) {\n return;\n }\n const reader = stream.getReader();\n // NOTE: streaming flush\n // We are buffering here for the inlined data stream because the\n // \"shell\" stream might be chunkenized again by the underlying stream\n // implementation, e.g. with a specific high-water mark. To ensure it's\n // the safe timing to pipe the data stream, this extra tick is\n // necessary.\n // We don't start reading until we've left the current Task to ensure\n // that it's inserted after flushing the shell. Note that this implementation\n // might get stale if impl details of Fizz change in the future.\n await (0, _scheduler.atLeastOneTask)();\n try {\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n donePulling = true;\n return;\n }\n controller.enqueue(value);\n }\n } catch (err) {\n controller.error(err);\n }\n }\n return new TransformStream({\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // Start the streaming if it hasn't already been started yet.\n if (!pull) {\n pull = startPulling(controller);\n }\n },\n flush (controller) {\n if (donePulling) {\n return;\n }\n return pull || startPulling(controller);\n }\n });\n}\nconst CLOSE_TAG = '';\n/**\n * This transform stream moves the suffix to the end of the stream, so results\n * like `` will be transformed to\n * ``.\n */ function createMoveSuffixStream() {\n let foundSuffix = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (foundSuffix) {\n return controller.enqueue(chunk);\n }\n const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedTags.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n if (index > -1) {\n foundSuffix = true;\n // If the whole chunk is the suffix, then don't write anything, it will\n // be written in the flush.\n if (chunk.length === _encodedTags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length) {\n return;\n }\n // Write out the part before the suffix.\n const before = chunk.slice(0, index);\n controller.enqueue(before);\n // In the case where the suffix is in the middle of the chunk, we need\n // to split the chunk into two parts.\n if (chunk.length > _encodedTags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length + index) {\n // Write out the part after the suffix.\n const after = chunk.slice(index + _encodedTags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length);\n controller.enqueue(after);\n }\n } else {\n controller.enqueue(chunk);\n }\n },\n flush (controller) {\n // Even if we didn't find the suffix, the HTML is not valid if we don't\n // add it, so insert it at the end.\n controller.enqueue(_encodedTags.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n }\n });\n}\nfunction createStripDocumentClosingTagsTransform() {\n return new TransformStream({\n transform (chunk, controller) {\n // We rely on the assumption that chunks will never break across a code unit.\n // This is reasonable because we currently concat all of React's output from a single\n // flush into one chunk before streaming it forward which means the chunk will represent\n // a single coherent utf-8 string. This is not safe to use if we change our streaming to no\n // longer do this large buffered chunk\n if ((0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedTags.ENCODED_TAGS.CLOSED.BODY_AND_HTML) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedTags.ENCODED_TAGS.CLOSED.BODY) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedTags.ENCODED_TAGS.CLOSED.HTML)) {\n // the entire chunk is the closing tags; return without enqueueing anything.\n return;\n }\n // We assume these tags will go at together at the end of the document and that\n // they won't appear anywhere else in the document. This is not really a safe assumption\n // but until we revamp our streaming infra this is a performant way to string the tags\n chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedTags.ENCODED_TAGS.CLOSED.BODY);\n chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedTags.ENCODED_TAGS.CLOSED.HTML);\n controller.enqueue(chunk);\n }\n });\n}\nfunction createRootLayoutValidatorStream() {\n let foundHtml = false;\n let foundBody = false;\n return new TransformStream({\n async transform (chunk, controller) {\n // Peek into the streamed chunk to see if the tags are present.\n if (!foundHtml && (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedTags.ENCODED_TAGS.OPENING.HTML) > -1) {\n foundHtml = true;\n }\n if (!foundBody && (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedTags.ENCODED_TAGS.OPENING.BODY) > -1) {\n foundBody = true;\n }\n controller.enqueue(chunk);\n },\n flush (controller) {\n const missingTags = [];\n if (!foundHtml) missingTags.push('html');\n if (!foundBody) missingTags.push('body');\n if (!missingTags.length) return;\n controller.enqueue(encoder.encode(``));\n }\n });\n}\nfunction chainTransformers(readable, transformers) {\n let stream = readable;\n for (const transformer of transformers){\n if (!transformer) continue;\n stream = stream.pipeThrough(transformer);\n }\n return stream;\n}\nasync function continueFizzStream(renderStream, { suffix, inlinedDataStream, isStaticGeneration, getServerInsertedHTML, getServerInsertedMetadata, validateRootLayout }) {\n // Suffix itself might contain close tags at the end, so we need to split it.\n const suffixUnclosed = suffix ? suffix.split(CLOSE_TAG, 1)[0] : null;\n // If we're generating static HTML and there's an `allReady` promise on the\n // stream, we need to wait for it to resolve before continuing.\n if (isStaticGeneration && 'allReady' in renderStream) {\n await renderStream.allReady;\n }\n return chainTransformers(renderStream, [\n // Buffer everything to avoid flushing too frequently\n createBufferedTransformStream(),\n // Insert generated metadata\n createHeadInsertionTransformStream(getServerInsertedMetadata),\n // Insert suffix content\n suffixUnclosed != null && suffixUnclosed.length > 0 ? createDeferredSuffixStream(suffixUnclosed) : null,\n // Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n inlinedDataStream ? createMergedTransformStream(inlinedDataStream) : null,\n // Validate the root layout for missing html or body tags\n validateRootLayout ? createRootLayoutValidatorStream() : null,\n // Close tags should always be deferred to the end\n createMoveSuffixStream(),\n // Special head insertions\n // TODO-APP: Insert server side html to end of head in app layout rendering, to avoid\n // hydration errors. Remove this once it's ready to be handled by react itself.\n createHeadInsertionTransformStream(getServerInsertedHTML)\n ]);\n}\nasync function continueDynamicPrerender(prerenderStream, { getServerInsertedHTML, getServerInsertedMetadata }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream()).pipeThrough(createStripDocumentClosingTagsTransform())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Insert generated metadata\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedMetadata));\n}\nasync function continueStaticPrerender(prerenderStream, { inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Insert generated metadata to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedMetadata))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createMergedTransformStream(inlinedDataStream))// Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream());\n}\nasync function continueDynamicHTMLResume(renderStream, { inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata }) {\n return renderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Insert generated metadata to body\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedMetadata))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createMergedTransformStream(inlinedDataStream))// Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream());\n}\nfunction createDocumentClosingStream() {\n return streamFromString(CLOSE_TAG);\n}\n\n//# sourceMappingURL=node-web-streams-helper.js.map","/**\n * Clones a response by teeing the body so we can return two independent\n * ReadableStreams from it. This avoids the bug in the undici library around\n * response cloning.\n *\n * After cloning, the original response's body will be consumed and closed.\n *\n * @see https://github.com/vercel/next.js/pull/73274\n *\n * @param original - The original response to clone.\n * @returns A tuple containing two independent clones of the original response.\n */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"cloneResponse\", {\n enumerable: true,\n get: function() {\n return cloneResponse;\n }\n});\nfunction cloneResponse(original) {\n // If the response has no body, then we can just return the original response\n // twice because it's immutable.\n if (!original.body) {\n return [\n original,\n original\n ];\n }\n const [body1, body2] = original.body.tee();\n const cloned1 = new Response(body1, {\n status: original.status,\n statusText: original.statusText,\n headers: original.headers\n });\n Object.defineProperty(cloned1, 'url', {\n value: original.url\n });\n const cloned2 = new Response(body2, {\n status: original.status,\n statusText: original.statusText,\n headers: original.headers\n });\n Object.defineProperty(cloned2, 'url', {\n value: original.url\n });\n return [\n cloned1,\n cloned2\n ];\n}\n\n//# sourceMappingURL=clone-response.js.map","import { parsePath } from './parse-path'\n\n/**\n * Similarly to `addPathPrefix`, this function adds a suffix at the end on the\n * provided path. It also works only for paths ensuring the argument starts\n * with a slash.\n */\nexport function addPathSuffix(path: string, suffix?: string) {\n if (!path.startsWith('/') || !suffix) {\n return path\n }\n\n const { pathname, query, hash } = parsePath(path)\n return `${pathname}${suffix}${query}${hash}`\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n fromNodeOutgoingHttpHeaders: null,\n normalizeNextQueryParam: null,\n splitCookiesString: null,\n toNodeOutgoingHttpHeaders: null,\n validateURL: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fromNodeOutgoingHttpHeaders: function() {\n return fromNodeOutgoingHttpHeaders;\n },\n normalizeNextQueryParam: function() {\n return normalizeNextQueryParam;\n },\n splitCookiesString: function() {\n return splitCookiesString;\n },\n toNodeOutgoingHttpHeaders: function() {\n return toNodeOutgoingHttpHeaders;\n },\n validateURL: function() {\n return validateURL;\n }\n});\nconst _constants = require(\"../../lib/constants\");\nfunction fromNodeOutgoingHttpHeaders(nodeHeaders) {\n const headers = new Headers();\n for (let [key, value] of Object.entries(nodeHeaders)){\n const values = Array.isArray(value) ? value : [\n value\n ];\n for (let v of values){\n if (typeof v === 'undefined') continue;\n if (typeof v === 'number') {\n v = v.toString();\n }\n headers.append(key, v);\n }\n }\n return headers;\n}\nfunction splitCookiesString(cookiesString) {\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while(pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))){\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== '=' && ch !== ';' && ch !== ',';\n }\n while(pos < cookiesString.length){\n start = pos;\n cookiesSeparatorFound = false;\n while(skipWhitespace()){\n ch = cookiesString.charAt(pos);\n if (ch === ',') {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while(pos < cookiesString.length && notSpecialChar()){\n pos += 1;\n }\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === '=') {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\nfunction toNodeOutgoingHttpHeaders(headers) {\n const nodeHeaders = {};\n const cookies = [];\n if (headers) {\n for (const [key, value] of headers.entries()){\n if (key.toLowerCase() === 'set-cookie') {\n // We may have gotten a comma joined string of cookies, or multiple\n // set-cookie headers. We need to merge them into one header array\n // to represent all the cookies.\n cookies.push(...splitCookiesString(value));\n nodeHeaders[key] = cookies.length === 1 ? cookies[0] : cookies;\n } else {\n nodeHeaders[key] = value;\n }\n }\n }\n return nodeHeaders;\n}\nfunction validateURL(url) {\n try {\n return String(new URL(String(url)));\n } catch (error) {\n throw Object.defineProperty(new Error(`URL is malformed \"${String(url)}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, {\n cause: error\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E61\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction normalizeNextQueryParam(key) {\n const prefixes = [\n _constants.NEXT_QUERY_PARAM_PREFIX,\n _constants.NEXT_INTERCEPTION_MARKER_PREFIX\n ];\n for (const prefix of prefixes){\n if (key !== prefix && key.startsWith(prefix)) {\n return key.substring(prefix.length);\n }\n }\n return null;\n}\n\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n INTERNALS: null,\n NextRequest: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERNALS: function() {\n return INTERNALS;\n },\n NextRequest: function() {\n return NextRequest;\n }\n});\nconst _nexturl = require(\"../next-url\");\nconst _utils = require(\"../utils\");\nconst _error = require(\"../error\");\nconst _cookies = require(\"./cookies\");\nconst INTERNALS = Symbol('internal request');\nclass NextRequest extends Request {\n constructor(input, init = {}){\n const url = typeof input !== 'string' && 'url' in input ? input.url : String(input);\n (0, _utils.validateURL)(url);\n // node Request instance requires duplex option when a body\n // is present or it errors, we don't handle this for\n // Request being passed in since it would have already\n // errored if this wasn't configured\n if (process.env.NEXT_RUNTIME !== 'edge') {\n if (init.body && init.duplex !== 'half') {\n init.duplex = 'half';\n }\n }\n if (input instanceof Request) super(input, init);\n else super(url, init);\n const nextUrl = new _nexturl.NextURL(url, {\n headers: (0, _utils.toNodeOutgoingHttpHeaders)(this.headers),\n nextConfig: init.nextConfig\n });\n this[INTERNALS] = {\n cookies: new _cookies.RequestCookies(this.headers),\n nextUrl,\n url: process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE ? url : nextUrl.toString()\n };\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n cookies: this.cookies,\n nextUrl: this.nextUrl,\n url: this.url,\n // rest of props come from Request\n bodyUsed: this.bodyUsed,\n cache: this.cache,\n credentials: this.credentials,\n destination: this.destination,\n headers: Object.fromEntries(this.headers),\n integrity: this.integrity,\n keepalive: this.keepalive,\n method: this.method,\n mode: this.mode,\n redirect: this.redirect,\n referrer: this.referrer,\n referrerPolicy: this.referrerPolicy,\n signal: this.signal\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n get nextUrl() {\n return this[INTERNALS].nextUrl;\n }\n /**\n * @deprecated\n * `page` has been deprecated in favour of `URLPattern`.\n * Read more: https://nextjs.org/docs/messages/middleware-request-page\n */ get page() {\n throw new _error.RemovedPageError();\n }\n /**\n * @deprecated\n * `ua` has been removed in favour of \\`userAgent\\` function.\n * Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n */ get ua() {\n throw new _error.RemovedUAError();\n }\n get url() {\n return this[INTERNALS].url;\n }\n}\n\n//# sourceMappingURL=request.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Batcher\", {\n enumerable: true,\n get: function() {\n return Batcher;\n }\n});\nconst _detachedpromise = require(\"./detached-promise\");\nclass Batcher {\n constructor(cacheKeyFn, /**\n * A function that will be called to schedule the wrapped function to be\n * executed. This defaults to a function that will execute the function\n * immediately.\n */ schedulerFn = (fn)=>fn()){\n this.cacheKeyFn = cacheKeyFn;\n this.schedulerFn = schedulerFn;\n this.pending = new Map();\n }\n static create(options) {\n return new Batcher(options == null ? void 0 : options.cacheKeyFn, options == null ? void 0 : options.schedulerFn);\n }\n /**\n * Wraps a function in a promise that will be resolved or rejected only once\n * for a given key. This will allow multiple calls to the function to be\n * made, but only one will be executed at a time. The result of the first\n * call will be returned to all callers.\n *\n * @param key the key to use for the cache\n * @param fn the function to wrap\n * @returns a promise that resolves to the result of the function\n */ async batch(key, fn) {\n const cacheKey = this.cacheKeyFn ? await this.cacheKeyFn(key) : key;\n if (cacheKey === null) {\n return fn(cacheKey, Promise.resolve);\n }\n const pending = this.pending.get(cacheKey);\n if (pending) return pending;\n const { promise, resolve, reject } = new _detachedpromise.DetachedPromise();\n this.pending.set(cacheKey, promise);\n this.schedulerFn(async ()=>{\n try {\n const result = await fn(cacheKey, resolve);\n // Resolving a promise multiple times is a no-op, so we can safely\n // resolve all pending promises with the same result.\n resolve(result);\n } catch (err) {\n reject(err);\n } finally{\n this.pending.delete(cacheKey);\n }\n });\n return promise;\n }\n}\n\n//# sourceMappingURL=batcher.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n RequestCookies: null,\n ResponseCookies: null,\n stringifyCookie: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n RequestCookies: function() {\n return _cookies.RequestCookies;\n },\n ResponseCookies: function() {\n return _cookies.ResponseCookies;\n },\n stringifyCookie: function() {\n return _cookies.stringifyCookie;\n }\n});\nconst _cookies = require(\"next/dist/compiled/@edge-runtime/cookies\");\n\n//# sourceMappingURL=cookies.js.map","/**\n * Based on https://github.com/facebook/react/blob/d4e78c42a94be027b4dc7ed2659a5fddfbf9bd4e/packages/react/src/ReactFetch.js\n */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"createDedupeFetch\", {\n enumerable: true,\n get: function() {\n return createDedupeFetch;\n }\n});\nconst _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nconst _cloneresponse = require(\"./clone-response\");\nconst _invarianterror = require(\"../../shared/lib/invariant-error\");\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nconst simpleCacheKey = '[\"GET\",[],null,\"follow\",null,null,null,null]' // generateCacheKey(new Request('https://blank'));\n;\nfunction generateCacheKey(request) {\n // We pick the fields that goes into the key used to dedupe requests.\n // We don't include the `cache` field, because we end up using whatever\n // caching resulted from the first request.\n // Notably we currently don't consider non-standard (or future) options.\n // This might not be safe. TODO: warn for non-standard extensions differing.\n // IF YOU CHANGE THIS UPDATE THE simpleCacheKey ABOVE.\n return JSON.stringify([\n request.method,\n Array.from(request.headers.entries()),\n request.mode,\n request.redirect,\n request.credentials,\n request.referrer,\n request.referrerPolicy,\n request.integrity\n ]);\n}\nfunction createDedupeFetch(originalFetch) {\n const getCacheEntries = _react.cache(// eslint-disable-next-line @typescript-eslint/no-unused-vars -- url is the cache key\n (url)=>[]);\n return function dedupeFetch(resource, options) {\n if (options && options.signal) {\n // If we're passed a signal, then we assume that\n // someone else controls the lifetime of this object and opts out of\n // caching. It's effectively the opt-out mechanism.\n // Ideally we should be able to check this on the Request but\n // it always gets initialized with its own signal so we don't\n // know if it's supposed to override - unless we also override the\n // Request constructor.\n return originalFetch(resource, options);\n }\n // Normalize the Request\n let url;\n let cacheKey;\n if (typeof resource === 'string' && !options) {\n // Fast path.\n cacheKey = simpleCacheKey;\n url = resource;\n } else {\n // Normalize the request.\n // if resource is not a string or a URL (its an instance of Request)\n // then do not instantiate a new Request but instead\n // reuse the request as to not disturb the body in the event it's a ReadableStream.\n const request = typeof resource === 'string' || resource instanceof URL ? new Request(resource, options) : resource;\n if (request.method !== 'GET' && request.method !== 'HEAD' || request.keepalive) {\n // We currently don't dedupe requests that might have side-effects. Those\n // have to be explicitly cached. We assume that the request doesn't have a\n // body if it's GET or HEAD.\n // keepalive gets treated the same as if you passed a custom cache signal.\n return originalFetch(resource, options);\n }\n cacheKey = generateCacheKey(request);\n url = request.url;\n }\n const cacheEntries = getCacheEntries(url);\n for(let i = 0, j = cacheEntries.length; i < j; i += 1){\n const [key, promise] = cacheEntries[i];\n if (key === cacheKey) {\n return promise.then(()=>{\n const response = cacheEntries[i][2];\n if (!response) throw Object.defineProperty(new _invarianterror.InvariantError('No cached response'), \"__NEXT_ERROR_CODE\", {\n value: \"E579\",\n enumerable: false,\n configurable: true\n });\n // We're cloning the response using this utility because there exists\n // a bug in the undici library around response cloning. See the\n // following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = (0, _cloneresponse.cloneResponse)(response);\n cacheEntries[i][2] = cloned2;\n return cloned1;\n });\n }\n }\n // We pass the original arguments here in case normalizing the Request\n // doesn't include all the options in this environment.\n const promise = originalFetch(resource, options);\n const entry = [\n cacheKey,\n promise,\n null\n ];\n cacheEntries.push(entry);\n return promise.then((response)=>{\n // We're cloning the response using this utility because there exists\n // a bug in the undici library around response cloning. See the\n // following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = (0, _cloneresponse.cloneResponse)(response);\n entry[2] = cloned2;\n return cloned1;\n });\n };\n}\n\n//# sourceMappingURL=dedupe-fetch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n fromResponseCacheEntry: null,\n routeKindToIncrementalCacheKind: null,\n toResponseCacheEntry: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fromResponseCacheEntry: function() {\n return fromResponseCacheEntry;\n },\n routeKindToIncrementalCacheKind: function() {\n return routeKindToIncrementalCacheKind;\n },\n toResponseCacheEntry: function() {\n return toResponseCacheEntry;\n }\n});\nconst _types = require(\"./types\");\nconst _renderresult = /*#__PURE__*/ _interop_require_default(require(\"../render-result\"));\nconst _routekind = require(\"../route-kind\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nasync function fromResponseCacheEntry(cacheEntry) {\n var _cacheEntry_value, _cacheEntry_value1;\n return {\n ...cacheEntry,\n value: ((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) === _types.CachedRouteKind.PAGES ? {\n kind: _types.CachedRouteKind.PAGES,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n pageData: cacheEntry.value.pageData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status\n } : ((_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind) === _types.CachedRouteKind.APP_PAGE ? {\n kind: _types.CachedRouteKind.APP_PAGE,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n postponed: cacheEntry.value.postponed,\n rscData: cacheEntry.value.rscData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status,\n segmentData: cacheEntry.value.segmentData\n } : cacheEntry.value\n };\n}\nasync function toResponseCacheEntry(response) {\n var _response_value, _response_value1;\n if (!response) return null;\n return {\n isMiss: response.isMiss,\n isStale: response.isStale,\n cacheControl: response.cacheControl,\n isFallback: response.isFallback,\n value: ((_response_value = response.value) == null ? void 0 : _response_value.kind) === _types.CachedRouteKind.PAGES ? {\n kind: _types.CachedRouteKind.PAGES,\n html: _renderresult.default.fromStatic(response.value.html),\n pageData: response.value.pageData,\n headers: response.value.headers,\n status: response.value.status\n } : ((_response_value1 = response.value) == null ? void 0 : _response_value1.kind) === _types.CachedRouteKind.APP_PAGE ? {\n kind: _types.CachedRouteKind.APP_PAGE,\n html: _renderresult.default.fromStatic(response.value.html),\n rscData: response.value.rscData,\n headers: response.value.headers,\n status: response.value.status,\n postponed: response.value.postponed,\n segmentData: response.value.segmentData\n } : response.value\n };\n}\nfunction routeKindToIncrementalCacheKind(routeKind) {\n switch(routeKind){\n case _routekind.RouteKind.PAGES:\n return _types.IncrementalCacheKind.PAGES;\n case _routekind.RouteKind.APP_PAGE:\n return _types.IncrementalCacheKind.APP_PAGE;\n case _routekind.RouteKind.IMAGE:\n return _types.IncrementalCacheKind.IMAGE;\n case _routekind.RouteKind.APP_ROUTE:\n return _types.IncrementalCacheKind.APP_ROUTE;\n default:\n throw Object.defineProperty(new Error(`Unexpected route kind ${routeKind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E64\",\n enumerable: false,\n configurable: true\n });\n }\n}\n\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n BubbledError: null,\n SpanKind: null,\n SpanStatusCode: null,\n getTracer: null,\n isBubbledError: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n BubbledError: function() {\n return BubbledError;\n },\n SpanKind: function() {\n return SpanKind;\n },\n SpanStatusCode: function() {\n return SpanStatusCode;\n },\n getTracer: function() {\n return getTracer;\n },\n isBubbledError: function() {\n return isBubbledError;\n }\n});\nconst _constants = require(\"./constants\");\nconst _isthenable = require(\"../../../shared/lib/is-thenable\");\nlet api;\n// we want to allow users to use their own version of @opentelemetry/api if they\n// want to, so we try to require it first, and if it fails we fall back to the\n// version that is bundled with Next.js\n// this is because @opentelemetry/api has to be synced with the version of\n// @opentelemetry/tracing that is used, and we don't want to force users to use\n// the version that is bundled with Next.js.\n// the API is ~stable, so this should be fine\nif (process.env.NEXT_RUNTIME === 'edge') {\n api = require('@opentelemetry/api');\n} else {\n try {\n api = require('@opentelemetry/api');\n } catch (err) {\n api = require('next/dist/compiled/@opentelemetry/api');\n }\n}\nconst { context, propagation, trace, SpanStatusCode, SpanKind, ROOT_CONTEXT } = api;\nclass BubbledError extends Error {\n constructor(bubble, result){\n super(), this.bubble = bubble, this.result = result;\n }\n}\nfunction isBubbledError(error) {\n if (typeof error !== 'object' || error === null) return false;\n return error instanceof BubbledError;\n}\nconst closeSpanWithError = (span, error)=>{\n if (isBubbledError(error) && error.bubble) {\n span.setAttribute('next.bubble', true);\n } else {\n if (error) {\n span.recordException(error);\n }\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error == null ? void 0 : error.message\n });\n }\n span.end();\n};\n/** we use this map to propagate attributes from nested spans to the top span */ const rootSpanAttributesStore = new Map();\nconst rootSpanIdKey = api.createContextKey('next.rootSpanId');\nlet lastSpanId = 0;\nconst getSpanId = ()=>lastSpanId++;\nconst clientTraceDataSetter = {\n set (carrier, key, value) {\n carrier.push({\n key,\n value\n });\n }\n};\nclass NextTracerImpl {\n /**\n * Returns an instance to the trace with configured name.\n * Since wrap / trace can be defined in any place prior to actual trace subscriber initialization,\n * This should be lazily evaluated.\n */ getTracerInstance() {\n return trace.getTracer('next.js', '0.0.1');\n }\n getContext() {\n return context;\n }\n getTracePropagationData() {\n const activeContext = context.active();\n const entries = [];\n propagation.inject(activeContext, entries, clientTraceDataSetter);\n return entries;\n }\n getActiveScopeSpan() {\n return trace.getSpan(context == null ? void 0 : context.active());\n }\n withPropagatedContext(carrier, fn, getter) {\n const activeContext = context.active();\n if (trace.getSpanContext(activeContext)) {\n // Active span is already set, too late to propagate.\n return fn();\n }\n const remoteContext = propagation.extract(activeContext, carrier, getter);\n return context.with(remoteContext, fn);\n }\n trace(...args) {\n var _trace_getSpanContext;\n const [type, fnOrOptions, fnOrEmpty] = args;\n // coerce options form overload\n const { fn, options } = typeof fnOrOptions === 'function' ? {\n fn: fnOrOptions,\n options: {}\n } : {\n fn: fnOrEmpty,\n options: {\n ...fnOrOptions\n }\n };\n const spanName = options.spanName ?? type;\n if (!_constants.NextVanillaSpanAllowlist.includes(type) && process.env.NEXT_OTEL_VERBOSE !== '1' || options.hideSpan) {\n return fn();\n }\n // Trying to get active scoped span to assign parent. If option specifies parent span manually, will try to use it.\n let spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n let isRootSpan = false;\n if (!spanContext) {\n spanContext = (context == null ? void 0 : context.active()) ?? ROOT_CONTEXT;\n isRootSpan = true;\n } else if ((_trace_getSpanContext = trace.getSpanContext(spanContext)) == null ? void 0 : _trace_getSpanContext.isRemote) {\n isRootSpan = true;\n }\n const spanId = getSpanId();\n options.attributes = {\n 'next.span_name': spanName,\n 'next.span_type': type,\n ...options.attributes\n };\n return context.with(spanContext.setValue(rootSpanIdKey, spanId), ()=>this.getTracerInstance().startActiveSpan(spanName, options, (span)=>{\n const startTime = 'performance' in globalThis && 'measure' in performance ? globalThis.performance.now() : undefined;\n const onCleanup = ()=>{\n rootSpanAttributesStore.delete(spanId);\n if (startTime && process.env.NEXT_OTEL_PERFORMANCE_PREFIX && _constants.LogSpanAllowList.includes(type || '')) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(type.split('.').pop() || '').replace(/[A-Z]/g, (match)=>'-' + match.toLowerCase())}`, {\n start: startTime,\n end: performance.now()\n });\n }\n };\n if (isRootSpan) {\n rootSpanAttributesStore.set(spanId, new Map(Object.entries(options.attributes ?? {})));\n }\n try {\n if (fn.length > 1) {\n return fn(span, (err)=>closeSpanWithError(span, err));\n }\n const result = fn(span);\n if ((0, _isthenable.isThenable)(result)) {\n // If there's error make sure it throws\n return result.then((res)=>{\n span.end();\n // Need to pass down the promise result,\n // it could be react stream response with error { error, stream }\n return res;\n }).catch((err)=>{\n closeSpanWithError(span, err);\n throw err;\n }).finally(onCleanup);\n } else {\n span.end();\n onCleanup();\n }\n return result;\n } catch (err) {\n closeSpanWithError(span, err);\n onCleanup();\n throw err;\n }\n }));\n }\n wrap(...args) {\n const tracer = this;\n const [name, options, fn] = args.length === 3 ? args : [\n args[0],\n {},\n args[1]\n ];\n if (!_constants.NextVanillaSpanAllowlist.includes(name) && process.env.NEXT_OTEL_VERBOSE !== '1') {\n return fn;\n }\n return function() {\n let optionsObj = options;\n if (typeof optionsObj === 'function' && typeof fn === 'function') {\n optionsObj = optionsObj.apply(this, arguments);\n }\n const lastArgId = arguments.length - 1;\n const cb = arguments[lastArgId];\n if (typeof cb === 'function') {\n const scopeBoundCb = tracer.getContext().bind(context.active(), cb);\n return tracer.trace(name, optionsObj, (_span, done)=>{\n arguments[lastArgId] = function(err) {\n done == null ? void 0 : done(err);\n return scopeBoundCb.apply(this, arguments);\n };\n return fn.apply(this, arguments);\n });\n } else {\n return tracer.trace(name, optionsObj, ()=>fn.apply(this, arguments));\n }\n };\n }\n startSpan(...args) {\n const [type, options] = args;\n const spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n return this.getTracerInstance().startSpan(type, options, spanContext);\n }\n getSpanContext(parentSpan) {\n const spanContext = parentSpan ? trace.setSpan(context.active(), parentSpan) : undefined;\n return spanContext;\n }\n getRootSpanAttributes() {\n const spanId = context.active().getValue(rootSpanIdKey);\n return rootSpanAttributesStore.get(spanId);\n }\n setRootSpanAttribute(key, value) {\n const spanId = context.active().getValue(rootSpanIdKey);\n const attributes = rootSpanAttributesStore.get(spanId);\n if (attributes) {\n attributes.set(key, value);\n }\n }\n}\nconst getTracer = (()=>{\n const tracer = new NextTracerImpl();\n return ()=>tracer;\n})();\n\n//# sourceMappingURL=tracer.js.map","import type { DomainLocale } from '../../../server/config-shared'\n\nexport function detectDomainLocale(\n domainItems?: readonly DomainLocale[],\n hostname?: string,\n detectedLocale?: string\n) {\n if (!domainItems) return\n\n if (detectedLocale) {\n detectedLocale = detectedLocale.toLowerCase()\n }\n\n for (const item of domainItems) {\n // remove port if present\n const domainHostname = item.domain?.split(':', 1)[0].toLowerCase()\n if (\n hostname === domainHostname ||\n detectedLocale === item.defaultLocale.toLowerCase() ||\n item.locales?.some((locale) => locale.toLowerCase() === detectedLocale)\n ) {\n return item\n }\n }\n}\n","const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE'\n\nexport class DynamicServerError extends Error {\n digest: typeof DYNAMIC_ERROR_CODE = DYNAMIC_ERROR_CODE\n\n constructor(public readonly description: string) {\n super(`Dynamic server usage: ${description}`)\n }\n}\n\nexport function isDynamicServerError(err: unknown): err is DynamicServerError {\n if (\n typeof err !== 'object' ||\n err === null ||\n !('digest' in err) ||\n typeof err.digest !== 'string'\n ) {\n return false\n }\n\n return err.digest === DYNAMIC_ERROR_CODE\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n RequestCookies: () => RequestCookies,\n ResponseCookies: () => ResponseCookies,\n parseCookie: () => parseCookie,\n parseSetCookie: () => parseSetCookie,\n stringifyCookie: () => stringifyCookie\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/serialize.ts\nfunction stringifyCookie(c) {\n var _a;\n const attrs = [\n \"path\" in c && c.path && `Path=${c.path}`,\n \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`,\n \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`,\n \"domain\" in c && c.domain && `Domain=${c.domain}`,\n \"secure\" in c && c.secure && \"Secure\",\n \"httpOnly\" in c && c.httpOnly && \"HttpOnly\",\n \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`,\n \"partitioned\" in c && c.partitioned && \"Partitioned\",\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}`;\n return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)) {\n if (!pair)\n continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {\n }\n }\n return map;\n}\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\n const [[name, value], ...attributes] = parseCookie(setCookie);\n const {\n domain,\n expires,\n httponly,\n maxage,\n path,\n samesite,\n secure,\n partitioned,\n priority\n } = Object.fromEntries(\n attributes.map(([key, value2]) => [\n key.toLowerCase().replace(/-/g, \"\"),\n value2\n ])\n );\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && { expires: new Date(expires) },\n ...httponly && { httpOnly: true },\n ...typeof maxage === \"string\" && { maxAge: Number(maxage) },\n path,\n ...samesite && { sameSite: parseSameSite(samesite) },\n ...secure && { secure: true },\n ...priority && { priority: parsePriority(priority) },\n ...partitioned && { partitioned: true }\n };\n return compact(cookie);\n}\nfunction compact(t) {\n const newT = {};\n for (const key in t) {\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n return newT;\n}\nvar SAME_SITE = [\"strict\", \"lax\", \"none\"];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString)\n return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n this._headers = requestHeaders;\n const header = requestHeaders.get(\"cookie\");\n if (header) {\n const parsed = parseCookie(header);\n for (const [name, value] of parsed) {\n this._parsed.set(name, { name, value });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */\n get size() {\n return this._parsed.size;\n }\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed);\n if (!args.length) {\n return all.map(([_, value]) => value);\n }\n const name = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter(([n]) => n === name).map(([_, value]) => value);\n }\n has(name) {\n return this._parsed.has(name);\n }\n set(...args) {\n const [name, value] = args.length === 1 ? [args[0].name, args[0].value] : args;\n const map = this._parsed;\n map.set(name, { name, value });\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value2]) => stringifyCookie(value2)).join(\"; \")\n );\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */\n delete(names) {\n const map = this._parsed;\n const result = !Array.isArray(names) ? map.delete(names) : names.map((name) => map.delete(name));\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value]) => stringifyCookie(value)).join(\"; \")\n );\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */\n clear() {\n this.delete(Array.from(this._parsed.keys()));\n return this;\n }\n /**\n * Format the cookies in the request as a string for logging\n */\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map((v) => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n var _a, _b, _c;\n this._headers = responseHeaders;\n const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get(\"set-cookie\")) != null ? _c : [];\n const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);\n for (const cookieString of cookieStrings) {\n const parsed = parseSetCookie(cookieString);\n if (parsed)\n this._parsed.set(parsed.name, parsed);\n }\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.\n */\n get(...args) {\n const key = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(key);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.\n */\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed.values());\n if (!args.length) {\n return all;\n }\n const key = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter((c) => c.name === key);\n }\n has(name) {\n return this._parsed.has(name);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.\n */\n set(...args) {\n const [name, value, cookie] = args.length === 1 ? [args[0].name, args[0].value, args[0]] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({ name, value, ...cookie }));\n replace(map, this._headers);\n return this;\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.\n */\n delete(...args) {\n const [name, options] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0]];\n return this.set({ ...options, name, value: \"\", expires: /* @__PURE__ */ new Date(0) });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map(stringifyCookie).join(\"; \");\n }\n};\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n for (const [, value] of bag) {\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\nfunction normalizeCookie(cookie = { name: \"\", value: \"\" }) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n return cookie;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n RequestCookies,\n ResponseCookies,\n parseCookie,\n parseSetCookie,\n stringifyCookie\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n isHangingPromiseRejectionError: null,\n makeHangingPromise: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isHangingPromiseRejectionError: function() {\n return isHangingPromiseRejectionError;\n },\n makeHangingPromise: function() {\n return makeHangingPromise;\n }\n});\nfunction isHangingPromiseRejectionError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false;\n }\n return err.digest === HANGING_PROMISE_REJECTION;\n}\nconst HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION';\nclass HangingPromiseRejectionError extends Error {\n constructor(expression){\n super(`During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \\`setTimeout\\`, \\`after\\`, or similar functions you may observe this error and you should handle it in that context.`), this.expression = expression, this.digest = HANGING_PROMISE_REJECTION;\n }\n}\nfunction makeHangingPromise(signal, expression) {\n const hangingPromise = new Promise((_, reject)=>{\n signal.addEventListener('abort', ()=>{\n reject(new HangingPromiseRejectionError(expression));\n }, {\n once: true\n });\n });\n // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so\n // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct\n // your own promise out of it you'll need to ensure you handle the error when it rejects.\n hangingPromise.catch(ignoreReject);\n return hangingPromise;\n}\nfunction ignoreReject() {}\n\n//# sourceMappingURL=dynamic-rendering-utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n isNodeNextRequest: null,\n isNodeNextResponse: null,\n isWebNextRequest: null,\n isWebNextResponse: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isNodeNextRequest: function() {\n return isNodeNextRequest;\n },\n isNodeNextResponse: function() {\n return isNodeNextResponse;\n },\n isWebNextRequest: function() {\n return isWebNextRequest;\n },\n isWebNextResponse: function() {\n return isWebNextResponse;\n }\n});\nconst isWebNextRequest = (req)=>process.env.NEXT_RUNTIME === 'edge';\nconst isWebNextResponse = (res)=>process.env.NEXT_RUNTIME === 'edge';\nconst isNodeNextRequest = (req)=>process.env.NEXT_RUNTIME !== 'edge';\nconst isNodeNextResponse = (res)=>process.env.NEXT_RUNTIME !== 'edge';\n\n//# sourceMappingURL=helpers.js.map","export interface PathLocale {\n detectedLocale?: string\n pathname: string\n}\n\n/**\n * A cache of lowercased locales for each list of locales. This is stored as a\n * WeakMap so if the locales are garbage collected, the cache entry will be\n * removed as well.\n */\nconst cache = new WeakMap()\n\n/**\n * For a pathname that may include a locale from a list of locales, it\n * removes the locale from the pathname returning it alongside with the\n * detected locale.\n *\n * @param pathname A pathname that may include a locale.\n * @param locales A list of locales.\n * @returns The detected locale and pathname without locale\n */\nexport function normalizeLocalePath(\n pathname: string,\n locales?: readonly string[]\n): PathLocale {\n // If locales is undefined, return the pathname as is.\n if (!locales) return { pathname }\n\n // Get the cached lowercased locales or create a new cache entry.\n let lowercasedLocales = cache.get(locales)\n if (!lowercasedLocales) {\n lowercasedLocales = locales.map((locale) => locale.toLowerCase())\n cache.set(locales, lowercasedLocales)\n }\n\n let detectedLocale: string | undefined\n\n // The first segment will be empty, because it has a leading `/`. If\n // there is no further segment, there is no locale (or it's the default).\n const segments = pathname.split('/', 2)\n\n // If there's no second segment (ie, the pathname is just `/`), there's no\n // locale.\n if (!segments[1]) return { pathname }\n\n // The second segment will contain the locale part if any.\n const segment = segments[1].toLowerCase()\n\n // See if the segment matches one of the locales. If it doesn't, there is\n // no locale (or it's the default).\n const index = lowercasedLocales.indexOf(segment)\n if (index < 0) return { pathname }\n\n // Return the case-sensitive locale.\n detectedLocale = locales[index]\n\n // Remove the `/${locale}` part of the pathname.\n pathname = pathname.slice(detectedLocale.length + 1) || '/'\n\n return { pathname, detectedLocale }\n}\n","import {\n extractInterceptionRouteInformation,\n isInterceptionRouteAppPath,\n} from './interception-routes'\n\n// Identify /.*[param].*/ in route string\nconst TEST_ROUTE = /\\/[^/]*\\[[^/]+\\][^/]*(?=\\/|$)/\n\n// Identify /[param]/ in route string\nconst TEST_STRICT_ROUTE = /\\/\\[[^/]+\\](?=\\/|$)/\n\n/**\n * Check if a route is dynamic.\n *\n * @param route - The route to check.\n * @param strict - Whether to use strict mode which prohibits segments with prefixes/suffixes (default: true).\n * @returns Whether the route is dynamic.\n */\nexport function isDynamicRoute(route: string, strict: boolean = true): boolean {\n if (isInterceptionRouteAppPath(route)) {\n route = extractInterceptionRouteInformation(route).interceptedRoute\n }\n\n if (strict) {\n return TEST_STRICT_ROUTE.test(route)\n }\n\n return TEST_ROUTE.test(route)\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n revalidatePath: null,\n revalidateTag: null,\n unstable_expirePath: null,\n unstable_expireTag: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n revalidatePath: function() {\n return revalidatePath;\n },\n revalidateTag: function() {\n return revalidateTag;\n },\n unstable_expirePath: function() {\n return unstable_expirePath;\n },\n unstable_expireTag: function() {\n return unstable_expireTag;\n }\n});\nconst _dynamicrendering = require(\"../../app-render/dynamic-rendering\");\nconst _utils = require(\"../../../shared/lib/router/utils\");\nconst _constants = require(\"../../../lib/constants\");\nconst _workasyncstorageexternal = require(\"../../app-render/work-async-storage.external\");\nconst _workunitasyncstorageexternal = require(\"../../app-render/work-unit-async-storage.external\");\nconst _hooksservercontext = require(\"../../../client/components/hooks-server-context\");\nfunction revalidateTag(tag) {\n return revalidate([\n tag\n ], `revalidateTag ${tag}`);\n}\nfunction unstable_expirePath(originalPath, type) {\n if (originalPath.length > _constants.NEXT_CACHE_SOFT_TAG_MAX_LENGTH) {\n console.warn(`Warning: expirePath received \"${originalPath}\" which exceeded max length of ${_constants.NEXT_CACHE_SOFT_TAG_MAX_LENGTH}. See more info here https://nextjs.org/docs/app/api-reference/functions/unstable_expirePath`);\n return;\n }\n let normalizedPath = `${_constants.NEXT_CACHE_IMPLICIT_TAG_ID}${originalPath}`;\n if (type) {\n normalizedPath += `${normalizedPath.endsWith('/') ? '' : '/'}${type}`;\n } else if ((0, _utils.isDynamicRoute)(originalPath)) {\n console.warn(`Warning: a dynamic page path \"${originalPath}\" was passed to \"expirePath\", but the \"type\" parameter is missing. This has no effect by default, see more info here https://nextjs.org/docs/app/api-reference/functions/unstable_expirePath`);\n }\n return revalidate([\n normalizedPath\n ], `unstable_expirePath ${originalPath}`);\n}\nfunction unstable_expireTag(...tags) {\n return revalidate(tags, `unstable_expireTag ${tags.join(', ')}`);\n}\nfunction revalidatePath(originalPath, type) {\n if (originalPath.length > _constants.NEXT_CACHE_SOFT_TAG_MAX_LENGTH) {\n console.warn(`Warning: revalidatePath received \"${originalPath}\" which exceeded max length of ${_constants.NEXT_CACHE_SOFT_TAG_MAX_LENGTH}. See more info here https://nextjs.org/docs/app/api-reference/functions/revalidatePath`);\n return;\n }\n let normalizedPath = `${_constants.NEXT_CACHE_IMPLICIT_TAG_ID}${originalPath}`;\n if (type) {\n normalizedPath += `${normalizedPath.endsWith('/') ? '' : '/'}${type}`;\n } else if ((0, _utils.isDynamicRoute)(originalPath)) {\n console.warn(`Warning: a dynamic page path \"${originalPath}\" was passed to \"revalidatePath\", but the \"type\" parameter is missing. This has no effect by default, see more info here https://nextjs.org/docs/app/api-reference/functions/revalidatePath`);\n }\n return revalidate([\n normalizedPath\n ], `revalidatePath ${originalPath}`);\n}\nfunction revalidate(tags, expression) {\n const store = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (!store || !store.incrementalCache) {\n throw Object.defineProperty(new Error(`Invariant: static generation store missing in ${expression}`), \"__NEXT_ERROR_CODE\", {\n value: \"E263\",\n enumerable: false,\n configurable: true\n });\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n if (workUnitStore.type === 'cache') {\n throw Object.defineProperty(new Error(`Route ${store.route} used \"${expression}\" inside a \"use cache\" which is unsupported. To ensure revalidation is performed consistently it must always happen outside of renders and cached functions. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E181\",\n enumerable: false,\n configurable: true\n });\n } else if (workUnitStore.type === 'unstable-cache') {\n throw Object.defineProperty(new Error(`Route ${store.route} used \"${expression}\" inside a function cached with \"unstable_cache(...)\" which is unsupported. To ensure revalidation is performed consistently it must always happen outside of renders and cached functions. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E306\",\n enumerable: false,\n configurable: true\n });\n }\n if (workUnitStore.phase === 'render') {\n throw Object.defineProperty(new Error(`Route ${store.route} used \"${expression}\" during render which is unsupported. To ensure revalidation is performed consistently it must always happen outside of renders and cached functions. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E7\",\n enumerable: false,\n configurable: true\n });\n }\n if (workUnitStore.type === 'prerender') {\n // dynamicIO Prerender\n const error = Object.defineProperty(new Error(`Route ${store.route} used ${expression} without first calling \\`await connection()\\`.`), \"__NEXT_ERROR_CODE\", {\n value: \"E406\",\n enumerable: false,\n configurable: true\n });\n (0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(store.route, expression, error, workUnitStore);\n } else if (workUnitStore.type === 'prerender-ppr') {\n // PPR Prerender\n (0, _dynamicrendering.postponeWithTracking)(store.route, expression, workUnitStore.dynamicTracking);\n } else if (workUnitStore.type === 'prerender-legacy') {\n // legacy Prerender\n workUnitStore.revalidate = 0;\n const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E558\",\n enumerable: false,\n configurable: true\n });\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n } else if (process.env.NODE_ENV === 'development' && workUnitStore && workUnitStore.type === 'request') {\n workUnitStore.usedDynamic = true;\n }\n }\n if (!store.revalidatedTags) {\n store.revalidatedTags = [];\n }\n for (const tag of tags){\n if (!store.revalidatedTags.includes(tag)) {\n store.revalidatedTags.push(tag);\n }\n }\n // TODO: only revalidate if the path matches\n store.pathWasRevalidated = true;\n}\n\n//# sourceMappingURL=revalidate.js.map","import { normalizeLocalePath } from '../../i18n/normalize-locale-path'\nimport { removePathPrefix } from './remove-path-prefix'\nimport { pathHasPrefix } from './path-has-prefix'\nimport type { I18NProvider } from '../../../../server/lib/i18n-provider'\n\nexport interface NextPathnameInfo {\n /**\n * The base path in case the pathname included it.\n */\n basePath?: string\n /**\n * The buildId for when the parsed URL is a data URL. Parsing it can be\n * disabled with the `parseData` option.\n */\n buildId?: string\n /**\n * If there was a locale in the pathname, this will hold its value.\n */\n locale?: string\n /**\n * The processed pathname without a base path, locale, or data URL elements\n * when parsing it is enabled.\n */\n pathname: string\n /**\n * A boolean telling if the pathname had a trailingSlash. This can be only\n * true if trailingSlash is enabled.\n */\n trailingSlash?: boolean\n}\n\ninterface Options {\n /**\n * When passed to true, this function will also parse Nextjs data URLs.\n */\n parseData?: boolean\n /**\n * A partial of the Next.js configuration to parse the URL.\n */\n nextConfig?: {\n basePath?: string\n i18n?: { locales?: readonly string[] } | null\n trailingSlash?: boolean\n }\n\n /**\n * If provided, this normalizer will be used to detect the locale instead of\n * the default locale detection.\n */\n i18nProvider?: I18NProvider\n}\n\nexport function getNextPathnameInfo(\n pathname: string,\n options: Options\n): NextPathnameInfo {\n const { basePath, i18n, trailingSlash } = options.nextConfig ?? {}\n const info: NextPathnameInfo = {\n pathname,\n trailingSlash: pathname !== '/' ? pathname.endsWith('/') : trailingSlash,\n }\n\n if (basePath && pathHasPrefix(info.pathname, basePath)) {\n info.pathname = removePathPrefix(info.pathname, basePath)\n info.basePath = basePath\n }\n let pathnameNoDataPrefix = info.pathname\n\n if (\n info.pathname.startsWith('/_next/data/') &&\n info.pathname.endsWith('.json')\n ) {\n const paths = info.pathname\n .replace(/^\\/_next\\/data\\//, '')\n .replace(/\\.json$/, '')\n .split('/')\n\n const buildId = paths[0]\n info.buildId = buildId\n pathnameNoDataPrefix =\n paths[1] !== 'index' ? `/${paths.slice(1).join('/')}` : '/'\n\n // update pathname with normalized if enabled although\n // we use normalized to populate locale info still\n if (options.parseData === true) {\n info.pathname = pathnameNoDataPrefix\n }\n }\n\n // If provided, use the locale route normalizer to detect the locale instead\n // of the function below.\n if (i18n) {\n let result = options.i18nProvider\n ? options.i18nProvider.analyze(info.pathname)\n : normalizeLocalePath(info.pathname, i18n.locales)\n\n info.locale = result.detectedLocale\n info.pathname = result.pathname ?? info.pathname\n\n if (!result.detectedLocale && info.buildId) {\n result = options.i18nProvider\n ? options.i18nProvider.analyze(pathnameNoDataPrefix)\n : normalizeLocalePath(pathnameNoDataPrefix, i18n.locales)\n\n if (result.detectedLocale) {\n info.locale = result.detectedLocale\n }\n }\n }\n return info\n}\n","/**\n * Find the starting index of Uint8Array `b` within Uint8Array `a`.\n */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n indexOfUint8Array: null,\n isEquivalentUint8Arrays: null,\n removeFromUint8Array: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n indexOfUint8Array: function() {\n return indexOfUint8Array;\n },\n isEquivalentUint8Arrays: function() {\n return isEquivalentUint8Arrays;\n },\n removeFromUint8Array: function() {\n return removeFromUint8Array;\n }\n});\nfunction indexOfUint8Array(a, b) {\n if (b.length === 0) return 0;\n if (a.length === 0 || b.length > a.length) return -1;\n // start iterating through `a`\n for(let i = 0; i <= a.length - b.length; i++){\n let completeMatch = true;\n // from index `i`, iterate through `b` and check for mismatch\n for(let j = 0; j < b.length; j++){\n // if the values do not match, then this isn't a complete match, exit `b` iteration early and iterate to next index of `a`.\n if (a[i + j] !== b[j]) {\n completeMatch = false;\n break;\n }\n }\n if (completeMatch) {\n return i;\n }\n }\n return -1;\n}\nfunction isEquivalentUint8Arrays(a, b) {\n if (a.length !== b.length) return false;\n for(let i = 0; i < a.length; i++){\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\nfunction removeFromUint8Array(a, b) {\n const tagIndex = indexOfUint8Array(a, b);\n if (tagIndex === 0) return a.subarray(b.length);\n if (tagIndex > -1) {\n const removed = new Uint8Array(a.length - b.length);\n removed.set(a.slice(0, tagIndex));\n removed.set(a.slice(tagIndex + b.length), tagIndex);\n return removed;\n } else {\n return a;\n }\n}\n\n//# sourceMappingURL=uint8array-helpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n isAbortError: null,\n pipeToNodeResponse: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isAbortError: function() {\n return isAbortError;\n },\n pipeToNodeResponse: function() {\n return pipeToNodeResponse;\n }\n});\nconst _nextrequest = require(\"./web/spec-extension/adapters/next-request\");\nconst _detachedpromise = require(\"../lib/detached-promise\");\nconst _tracer = require(\"./lib/trace/tracer\");\nconst _constants = require(\"./lib/trace/constants\");\nconst _clientcomponentrendererlogger = require(\"./client-component-renderer-logger\");\nfunction isAbortError(e) {\n return (e == null ? void 0 : e.name) === 'AbortError' || (e == null ? void 0 : e.name) === _nextrequest.ResponseAbortedName;\n}\nfunction createWriterFromResponse(res, waitUntilForEnd) {\n let started = false;\n // Create a promise that will resolve once the response has drained. See\n // https://nodejs.org/api/stream.html#stream_event_drain\n let drained = new _detachedpromise.DetachedPromise();\n function onDrain() {\n drained.resolve();\n }\n res.on('drain', onDrain);\n // If the finish event fires, it means we shouldn't block and wait for the\n // drain event.\n res.once('close', ()=>{\n res.off('drain', onDrain);\n drained.resolve();\n });\n // Create a promise that will resolve once the response has finished. See\n // https://nodejs.org/api/http.html#event-finish_1\n const finished = new _detachedpromise.DetachedPromise();\n res.once('finish', ()=>{\n finished.resolve();\n });\n // Create a writable stream that will write to the response.\n return new WritableStream({\n write: async (chunk)=>{\n // You'd think we'd want to use `start` instead of placing this in `write`\n // but this ensures that we don't actually flush the headers until we've\n // started writing chunks.\n if (!started) {\n started = true;\n if ('performance' in globalThis && process.env.NEXT_OTEL_PERFORMANCE_PREFIX) {\n const metrics = (0, _clientcomponentrendererlogger.getClientComponentLoaderMetrics)();\n if (metrics) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`, {\n start: metrics.clientComponentLoadStart,\n end: metrics.clientComponentLoadStart + metrics.clientComponentLoadTimes\n });\n }\n }\n res.flushHeaders();\n (0, _tracer.getTracer)().trace(_constants.NextNodeServerSpan.startResponse, {\n spanName: 'start response'\n }, ()=>undefined);\n }\n try {\n const ok = res.write(chunk);\n // Added by the `compression` middleware, this is a function that will\n // flush the partially-compressed response to the client.\n if ('flush' in res && typeof res.flush === 'function') {\n res.flush();\n }\n // If the write returns false, it means there's some backpressure, so\n // wait until it's streamed before continuing.\n if (!ok) {\n await drained.promise;\n // Reset the drained promise so that we can wait for the next drain event.\n drained = new _detachedpromise.DetachedPromise();\n }\n } catch (err) {\n res.end();\n throw Object.defineProperty(new Error('failed to write chunk to response', {\n cause: err\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E321\",\n enumerable: false,\n configurable: true\n });\n }\n },\n abort: (err)=>{\n if (res.writableFinished) return;\n res.destroy(err);\n },\n close: async ()=>{\n // if a waitUntil promise was passed, wait for it to resolve before\n // ending the response.\n if (waitUntilForEnd) {\n await waitUntilForEnd;\n }\n if (res.writableFinished) return;\n res.end();\n return finished.promise;\n }\n });\n}\nasync function pipeToNodeResponse(readable, res, waitUntilForEnd) {\n try {\n // If the response has already errored, then just return now.\n const { errored, destroyed } = res;\n if (errored || destroyed) return;\n // Create a new AbortController so that we can abort the readable if the\n // client disconnects.\n const controller = (0, _nextrequest.createAbortController)(res);\n const writer = createWriterFromResponse(res, waitUntilForEnd);\n await readable.pipeTo(writer, {\n signal: controller.signal\n });\n } catch (err) {\n // If this isn't related to an abort error, re-throw it.\n if (isAbortError(err)) return;\n throw Object.defineProperty(new Error('failed to pipe response', {\n cause: err\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E180\",\n enumerable: false,\n configurable: true\n });\n }\n}\n\n//# sourceMappingURL=pipe-readable.js.map","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","(()=>{\"use strict\";var e={491:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ContextAPI=void 0;const n=r(223);const a=r(172);const o=r(930);const i=\"context\";const c=new n.NoopContextManager;class ContextAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new ContextAPI}return this._instance}setGlobalContextManager(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}active(){return this._getContextManager().active()}with(e,t,r,...n){return this._getContextManager().with(e,t,r,...n)}bind(e,t){return this._getContextManager().bind(e,t)}_getContextManager(){return(0,a.getGlobal)(i)||c}disable(){this._getContextManager().disable();(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.ContextAPI=ContextAPI},930:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagAPI=void 0;const n=r(56);const a=r(912);const o=r(957);const i=r(172);const c=\"diag\";class DiagAPI{constructor(){function _logProxy(e){return function(...t){const r=(0,i.getGlobal)(\"diag\");if(!r)return;return r[e](...t)}}const e=this;const setLogger=(t,r={logLevel:o.DiagLogLevel.INFO})=>{var n,c,s;if(t===e){const t=new Error(\"Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation\");e.error((n=t.stack)!==null&&n!==void 0?n:t.message);return false}if(typeof r===\"number\"){r={logLevel:r}}const u=(0,i.getGlobal)(\"diag\");const l=(0,a.createLogLevelDiagLogger)((c=r.logLevel)!==null&&c!==void 0?c:o.DiagLogLevel.INFO,t);if(u&&!r.suppressOverrideMessage){const e=(s=(new Error).stack)!==null&&s!==void 0?s:\"\";u.warn(`Current logger will be overwritten from ${e}`);l.warn(`Current logger will overwrite one already registered from ${e}`)}return(0,i.registerGlobal)(\"diag\",l,e,true)};e.setLogger=setLogger;e.disable=()=>{(0,i.unregisterGlobal)(c,e)};e.createComponentLogger=e=>new n.DiagComponentLogger(e);e.verbose=_logProxy(\"verbose\");e.debug=_logProxy(\"debug\");e.info=_logProxy(\"info\");e.warn=_logProxy(\"warn\");e.error=_logProxy(\"error\")}static instance(){if(!this._instance){this._instance=new DiagAPI}return this._instance}}t.DiagAPI=DiagAPI},653:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.MetricsAPI=void 0;const n=r(660);const a=r(172);const o=r(930);const i=\"metrics\";class MetricsAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new MetricsAPI}return this._instance}setGlobalMeterProvider(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}getMeterProvider(){return(0,a.getGlobal)(i)||n.NOOP_METER_PROVIDER}getMeter(e,t,r){return this.getMeterProvider().getMeter(e,t,r)}disable(){(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.MetricsAPI=MetricsAPI},181:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.PropagationAPI=void 0;const n=r(172);const a=r(874);const o=r(194);const i=r(277);const c=r(369);const s=r(930);const u=\"propagation\";const l=new a.NoopTextMapPropagator;class PropagationAPI{constructor(){this.createBaggage=c.createBaggage;this.getBaggage=i.getBaggage;this.getActiveBaggage=i.getActiveBaggage;this.setBaggage=i.setBaggage;this.deleteBaggage=i.deleteBaggage}static getInstance(){if(!this._instance){this._instance=new PropagationAPI}return this._instance}setGlobalPropagator(e){return(0,n.registerGlobal)(u,e,s.DiagAPI.instance())}inject(e,t,r=o.defaultTextMapSetter){return this._getGlobalPropagator().inject(e,t,r)}extract(e,t,r=o.defaultTextMapGetter){return this._getGlobalPropagator().extract(e,t,r)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,n.unregisterGlobal)(u,s.DiagAPI.instance())}_getGlobalPropagator(){return(0,n.getGlobal)(u)||l}}t.PropagationAPI=PropagationAPI},997:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceAPI=void 0;const n=r(172);const a=r(846);const o=r(139);const i=r(607);const c=r(930);const s=\"trace\";class TraceAPI{constructor(){this._proxyTracerProvider=new a.ProxyTracerProvider;this.wrapSpanContext=o.wrapSpanContext;this.isSpanContextValid=o.isSpanContextValid;this.deleteSpan=i.deleteSpan;this.getSpan=i.getSpan;this.getActiveSpan=i.getActiveSpan;this.getSpanContext=i.getSpanContext;this.setSpan=i.setSpan;this.setSpanContext=i.setSpanContext}static getInstance(){if(!this._instance){this._instance=new TraceAPI}return this._instance}setGlobalTracerProvider(e){const t=(0,n.registerGlobal)(s,this._proxyTracerProvider,c.DiagAPI.instance());if(t){this._proxyTracerProvider.setDelegate(e)}return t}getTracerProvider(){return(0,n.getGlobal)(s)||this._proxyTracerProvider}getTracer(e,t){return this.getTracerProvider().getTracer(e,t)}disable(){(0,n.unregisterGlobal)(s,c.DiagAPI.instance());this._proxyTracerProvider=new a.ProxyTracerProvider}}t.TraceAPI=TraceAPI},277:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.deleteBaggage=t.setBaggage=t.getActiveBaggage=t.getBaggage=void 0;const n=r(491);const a=r(780);const o=(0,a.createContextKey)(\"OpenTelemetry Baggage Key\");function getBaggage(e){return e.getValue(o)||undefined}t.getBaggage=getBaggage;function getActiveBaggage(){return getBaggage(n.ContextAPI.getInstance().active())}t.getActiveBaggage=getActiveBaggage;function setBaggage(e,t){return e.setValue(o,t)}t.setBaggage=setBaggage;function deleteBaggage(e){return e.deleteValue(o)}t.deleteBaggage=deleteBaggage},993:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.BaggageImpl=void 0;class BaggageImpl{constructor(e){this._entries=e?new Map(e):new Map}getEntry(e){const t=this._entries.get(e);if(!t){return undefined}return Object.assign({},t)}getAllEntries(){return Array.from(this._entries.entries()).map((([e,t])=>[e,t]))}setEntry(e,t){const r=new BaggageImpl(this._entries);r._entries.set(e,t);return r}removeEntry(e){const t=new BaggageImpl(this._entries);t._entries.delete(e);return t}removeEntries(...e){const t=new BaggageImpl(this._entries);for(const r of e){t._entries.delete(r)}return t}clear(){return new BaggageImpl}}t.BaggageImpl=BaggageImpl},830:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataSymbol=void 0;t.baggageEntryMetadataSymbol=Symbol(\"BaggageEntryMetadata\")},369:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataFromString=t.createBaggage=void 0;const n=r(930);const a=r(993);const o=r(830);const i=n.DiagAPI.instance();function createBaggage(e={}){return new a.BaggageImpl(new Map(Object.entries(e)))}t.createBaggage=createBaggage;function baggageEntryMetadataFromString(e){if(typeof e!==\"string\"){i.error(`Cannot create baggage metadata from unknown type: ${typeof e}`);e=\"\"}return{__TYPE__:o.baggageEntryMetadataSymbol,toString(){return e}}}t.baggageEntryMetadataFromString=baggageEntryMetadataFromString},67:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.context=void 0;const n=r(491);t.context=n.ContextAPI.getInstance()},223:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopContextManager=void 0;const n=r(780);class NoopContextManager{active(){return n.ROOT_CONTEXT}with(e,t,r,...n){return t.call(r,...n)}bind(e,t){return t}enable(){return this}disable(){return this}}t.NoopContextManager=NoopContextManager},780:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ROOT_CONTEXT=t.createContextKey=void 0;function createContextKey(e){return Symbol.for(e)}t.createContextKey=createContextKey;class BaseContext{constructor(e){const t=this;t._currentContext=e?new Map(e):new Map;t.getValue=e=>t._currentContext.get(e);t.setValue=(e,r)=>{const n=new BaseContext(t._currentContext);n._currentContext.set(e,r);return n};t.deleteValue=e=>{const r=new BaseContext(t._currentContext);r._currentContext.delete(e);return r}}}t.ROOT_CONTEXT=new BaseContext},506:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.diag=void 0;const n=r(930);t.diag=n.DiagAPI.instance()},56:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagComponentLogger=void 0;const n=r(172);class DiagComponentLogger{constructor(e){this._namespace=e.namespace||\"DiagComponentLogger\"}debug(...e){return logProxy(\"debug\",this._namespace,e)}error(...e){return logProxy(\"error\",this._namespace,e)}info(...e){return logProxy(\"info\",this._namespace,e)}warn(...e){return logProxy(\"warn\",this._namespace,e)}verbose(...e){return logProxy(\"verbose\",this._namespace,e)}}t.DiagComponentLogger=DiagComponentLogger;function logProxy(e,t,r){const a=(0,n.getGlobal)(\"diag\");if(!a){return}r.unshift(t);return a[e](...r)}},972:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagConsoleLogger=void 0;const r=[{n:\"error\",c:\"error\"},{n:\"warn\",c:\"warn\"},{n:\"info\",c:\"info\"},{n:\"debug\",c:\"debug\"},{n:\"verbose\",c:\"trace\"}];class DiagConsoleLogger{constructor(){function _consoleFunc(e){return function(...t){if(console){let r=console[e];if(typeof r!==\"function\"){r=console.log}if(typeof r===\"function\"){return r.apply(console,t)}}}}for(let e=0;e{Object.defineProperty(t,\"__esModule\",{value:true});t.createLogLevelDiagLogger=void 0;const n=r(957);function createLogLevelDiagLogger(e,t){if(en.DiagLogLevel.ALL){e=n.DiagLogLevel.ALL}t=t||{};function _filterFunc(r,n){const a=t[r];if(typeof a===\"function\"&&e>=n){return a.bind(t)}return function(){}}return{error:_filterFunc(\"error\",n.DiagLogLevel.ERROR),warn:_filterFunc(\"warn\",n.DiagLogLevel.WARN),info:_filterFunc(\"info\",n.DiagLogLevel.INFO),debug:_filterFunc(\"debug\",n.DiagLogLevel.DEBUG),verbose:_filterFunc(\"verbose\",n.DiagLogLevel.VERBOSE)}}t.createLogLevelDiagLogger=createLogLevelDiagLogger},957:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagLogLevel=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"ERROR\"]=30]=\"ERROR\";e[e[\"WARN\"]=50]=\"WARN\";e[e[\"INFO\"]=60]=\"INFO\";e[e[\"DEBUG\"]=70]=\"DEBUG\";e[e[\"VERBOSE\"]=80]=\"VERBOSE\";e[e[\"ALL\"]=9999]=\"ALL\"})(r=t.DiagLogLevel||(t.DiagLogLevel={}))},172:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.unregisterGlobal=t.getGlobal=t.registerGlobal=void 0;const n=r(200);const a=r(521);const o=r(130);const i=a.VERSION.split(\".\")[0];const c=Symbol.for(`opentelemetry.js.api.${i}`);const s=n._globalThis;function registerGlobal(e,t,r,n=false){var o;const i=s[c]=(o=s[c])!==null&&o!==void 0?o:{version:a.VERSION};if(!n&&i[e]){const t=new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);r.error(t.stack||t.message);return false}if(i.version!==a.VERSION){const t=new Error(`@opentelemetry/api: Registration of version v${i.version} for ${e} does not match previously registered API v${a.VERSION}`);r.error(t.stack||t.message);return false}i[e]=t;r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`);return true}t.registerGlobal=registerGlobal;function getGlobal(e){var t,r;const n=(t=s[c])===null||t===void 0?void 0:t.version;if(!n||!(0,o.isCompatible)(n)){return}return(r=s[c])===null||r===void 0?void 0:r[e]}t.getGlobal=getGlobal;function unregisterGlobal(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`);const r=s[c];if(r){delete r[e]}}t.unregisterGlobal=unregisterGlobal},130:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.isCompatible=t._makeCompatibilityCheck=void 0;const n=r(521);const a=/^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;function _makeCompatibilityCheck(e){const t=new Set([e]);const r=new Set;const n=e.match(a);if(!n){return()=>false}const o={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(o.prerelease!=null){return function isExactmatch(t){return t===e}}function _reject(e){r.add(e);return false}function _accept(e){t.add(e);return true}return function isCompatible(e){if(t.has(e)){return true}if(r.has(e)){return false}const n=e.match(a);if(!n){return _reject(e)}const i={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(i.prerelease!=null){return _reject(e)}if(o.major!==i.major){return _reject(e)}if(o.major===0){if(o.minor===i.minor&&o.patch<=i.patch){return _accept(e)}return _reject(e)}if(o.minor<=i.minor){return _accept(e)}return _reject(e)}}t._makeCompatibilityCheck=_makeCompatibilityCheck;t.isCompatible=_makeCompatibilityCheck(n.VERSION)},886:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.metrics=void 0;const n=r(653);t.metrics=n.MetricsAPI.getInstance()},901:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ValueType=void 0;var r;(function(e){e[e[\"INT\"]=0]=\"INT\";e[e[\"DOUBLE\"]=1]=\"DOUBLE\"})(r=t.ValueType||(t.ValueType={}))},102:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createNoopMeter=t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=t.NOOP_OBSERVABLE_GAUGE_METRIC=t.NOOP_OBSERVABLE_COUNTER_METRIC=t.NOOP_UP_DOWN_COUNTER_METRIC=t.NOOP_HISTOGRAM_METRIC=t.NOOP_COUNTER_METRIC=t.NOOP_METER=t.NoopObservableUpDownCounterMetric=t.NoopObservableGaugeMetric=t.NoopObservableCounterMetric=t.NoopObservableMetric=t.NoopHistogramMetric=t.NoopUpDownCounterMetric=t.NoopCounterMetric=t.NoopMetric=t.NoopMeter=void 0;class NoopMeter{constructor(){}createHistogram(e,r){return t.NOOP_HISTOGRAM_METRIC}createCounter(e,r){return t.NOOP_COUNTER_METRIC}createUpDownCounter(e,r){return t.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(e,r){return t.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(e,r){return t.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(e,r){return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(e,t){}removeBatchObservableCallback(e){}}t.NoopMeter=NoopMeter;class NoopMetric{}t.NoopMetric=NoopMetric;class NoopCounterMetric extends NoopMetric{add(e,t){}}t.NoopCounterMetric=NoopCounterMetric;class NoopUpDownCounterMetric extends NoopMetric{add(e,t){}}t.NoopUpDownCounterMetric=NoopUpDownCounterMetric;class NoopHistogramMetric extends NoopMetric{record(e,t){}}t.NoopHistogramMetric=NoopHistogramMetric;class NoopObservableMetric{addCallback(e){}removeCallback(e){}}t.NoopObservableMetric=NoopObservableMetric;class NoopObservableCounterMetric extends NoopObservableMetric{}t.NoopObservableCounterMetric=NoopObservableCounterMetric;class NoopObservableGaugeMetric extends NoopObservableMetric{}t.NoopObservableGaugeMetric=NoopObservableGaugeMetric;class NoopObservableUpDownCounterMetric extends NoopObservableMetric{}t.NoopObservableUpDownCounterMetric=NoopObservableUpDownCounterMetric;t.NOOP_METER=new NoopMeter;t.NOOP_COUNTER_METRIC=new NoopCounterMetric;t.NOOP_HISTOGRAM_METRIC=new NoopHistogramMetric;t.NOOP_UP_DOWN_COUNTER_METRIC=new NoopUpDownCounterMetric;t.NOOP_OBSERVABLE_COUNTER_METRIC=new NoopObservableCounterMetric;t.NOOP_OBSERVABLE_GAUGE_METRIC=new NoopObservableGaugeMetric;t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new NoopObservableUpDownCounterMetric;function createNoopMeter(){return t.NOOP_METER}t.createNoopMeter=createNoopMeter},660:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NOOP_METER_PROVIDER=t.NoopMeterProvider=void 0;const n=r(102);class NoopMeterProvider{getMeter(e,t,r){return n.NOOP_METER}}t.NoopMeterProvider=NoopMeterProvider;t.NOOP_METER_PROVIDER=new NoopMeterProvider},200:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(46),t)},651:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t._globalThis=void 0;t._globalThis=typeof globalThis===\"object\"?globalThis:global},46:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(651),t)},939:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.propagation=void 0;const n=r(181);t.propagation=n.PropagationAPI.getInstance()},874:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTextMapPropagator=void 0;class NoopTextMapPropagator{inject(e,t){}extract(e,t){return e}fields(){return[]}}t.NoopTextMapPropagator=NoopTextMapPropagator},194:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.defaultTextMapSetter=t.defaultTextMapGetter=void 0;t.defaultTextMapGetter={get(e,t){if(e==null){return undefined}return e[t]},keys(e){if(e==null){return[]}return Object.keys(e)}};t.defaultTextMapSetter={set(e,t,r){if(e==null){return}e[t]=r}}},845:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.trace=void 0;const n=r(997);t.trace=n.TraceAPI.getInstance()},403:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NonRecordingSpan=void 0;const n=r(476);class NonRecordingSpan{constructor(e=n.INVALID_SPAN_CONTEXT){this._spanContext=e}spanContext(){return this._spanContext}setAttribute(e,t){return this}setAttributes(e){return this}addEvent(e,t){return this}setStatus(e){return this}updateName(e){return this}end(e){}isRecording(){return false}recordException(e,t){}}t.NonRecordingSpan=NonRecordingSpan},614:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracer=void 0;const n=r(491);const a=r(607);const o=r(403);const i=r(139);const c=n.ContextAPI.getInstance();class NoopTracer{startSpan(e,t,r=c.active()){const n=Boolean(t===null||t===void 0?void 0:t.root);if(n){return new o.NonRecordingSpan}const s=r&&(0,a.getSpanContext)(r);if(isSpanContext(s)&&(0,i.isSpanContextValid)(s)){return new o.NonRecordingSpan(s)}else{return new o.NonRecordingSpan}}startActiveSpan(e,t,r,n){let o;let i;let s;if(arguments.length<2){return}else if(arguments.length===2){s=t}else if(arguments.length===3){o=t;s=r}else{o=t;i=r;s=n}const u=i!==null&&i!==void 0?i:c.active();const l=this.startSpan(e,o,u);const g=(0,a.setSpan)(u,l);return c.with(g,s,undefined,l)}}t.NoopTracer=NoopTracer;function isSpanContext(e){return typeof e===\"object\"&&typeof e[\"spanId\"]===\"string\"&&typeof e[\"traceId\"]===\"string\"&&typeof e[\"traceFlags\"]===\"number\"}},124:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracerProvider=void 0;const n=r(614);class NoopTracerProvider{getTracer(e,t,r){return new n.NoopTracer}}t.NoopTracerProvider=NoopTracerProvider},125:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracer=void 0;const n=r(614);const a=new n.NoopTracer;class ProxyTracer{constructor(e,t,r,n){this._provider=e;this.name=t;this.version=r;this.options=n}startSpan(e,t,r){return this._getTracer().startSpan(e,t,r)}startActiveSpan(e,t,r,n){const a=this._getTracer();return Reflect.apply(a.startActiveSpan,a,arguments)}_getTracer(){if(this._delegate){return this._delegate}const e=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!e){return a}this._delegate=e;return this._delegate}}t.ProxyTracer=ProxyTracer},846:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracerProvider=void 0;const n=r(125);const a=r(124);const o=new a.NoopTracerProvider;class ProxyTracerProvider{getTracer(e,t,r){var a;return(a=this.getDelegateTracer(e,t,r))!==null&&a!==void 0?a:new n.ProxyTracer(this,e,t,r)}getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:o}setDelegate(e){this._delegate=e}getDelegateTracer(e,t,r){var n;return(n=this._delegate)===null||n===void 0?void 0:n.getTracer(e,t,r)}}t.ProxyTracerProvider=ProxyTracerProvider},996:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SamplingDecision=void 0;var r;(function(e){e[e[\"NOT_RECORD\"]=0]=\"NOT_RECORD\";e[e[\"RECORD\"]=1]=\"RECORD\";e[e[\"RECORD_AND_SAMPLED\"]=2]=\"RECORD_AND_SAMPLED\"})(r=t.SamplingDecision||(t.SamplingDecision={}))},607:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.getSpanContext=t.setSpanContext=t.deleteSpan=t.setSpan=t.getActiveSpan=t.getSpan=void 0;const n=r(780);const a=r(403);const o=r(491);const i=(0,n.createContextKey)(\"OpenTelemetry Context Key SPAN\");function getSpan(e){return e.getValue(i)||undefined}t.getSpan=getSpan;function getActiveSpan(){return getSpan(o.ContextAPI.getInstance().active())}t.getActiveSpan=getActiveSpan;function setSpan(e,t){return e.setValue(i,t)}t.setSpan=setSpan;function deleteSpan(e){return e.deleteValue(i)}t.deleteSpan=deleteSpan;function setSpanContext(e,t){return setSpan(e,new a.NonRecordingSpan(t))}t.setSpanContext=setSpanContext;function getSpanContext(e){var t;return(t=getSpan(e))===null||t===void 0?void 0:t.spanContext()}t.getSpanContext=getSpanContext},325:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceStateImpl=void 0;const n=r(564);const a=32;const o=512;const i=\",\";const c=\"=\";class TraceStateImpl{constructor(e){this._internalState=new Map;if(e)this._parse(e)}set(e,t){const r=this._clone();if(r._internalState.has(e)){r._internalState.delete(e)}r._internalState.set(e,t);return r}unset(e){const t=this._clone();t._internalState.delete(e);return t}get(e){return this._internalState.get(e)}serialize(){return this._keys().reduce(((e,t)=>{e.push(t+c+this.get(t));return e}),[]).join(i)}_parse(e){if(e.length>o)return;this._internalState=e.split(i).reverse().reduce(((e,t)=>{const r=t.trim();const a=r.indexOf(c);if(a!==-1){const o=r.slice(0,a);const i=r.slice(a+1,t.length);if((0,n.validateKey)(o)&&(0,n.validateValue)(i)){e.set(o,i)}else{}}return e}),new Map);if(this._internalState.size>a){this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,a))}}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){const e=new TraceStateImpl;e._internalState=new Map(this._internalState);return e}}t.TraceStateImpl=TraceStateImpl},564:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.validateValue=t.validateKey=void 0;const r=\"[_0-9a-z-*/]\";const n=`[a-z]${r}{0,255}`;const a=`[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`;const o=new RegExp(`^(?:${n}|${a})$`);const i=/^[ -~]{0,255}[!-~]$/;const c=/,|=/;function validateKey(e){return o.test(e)}t.validateKey=validateKey;function validateValue(e){return i.test(e)&&!c.test(e)}t.validateValue=validateValue},98:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createTraceState=void 0;const n=r(325);function createTraceState(e){return new n.TraceStateImpl(e)}t.createTraceState=createTraceState},476:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.INVALID_SPAN_CONTEXT=t.INVALID_TRACEID=t.INVALID_SPANID=void 0;const n=r(475);t.INVALID_SPANID=\"0000000000000000\";t.INVALID_TRACEID=\"00000000000000000000000000000000\";t.INVALID_SPAN_CONTEXT={traceId:t.INVALID_TRACEID,spanId:t.INVALID_SPANID,traceFlags:n.TraceFlags.NONE}},357:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanKind=void 0;var r;(function(e){e[e[\"INTERNAL\"]=0]=\"INTERNAL\";e[e[\"SERVER\"]=1]=\"SERVER\";e[e[\"CLIENT\"]=2]=\"CLIENT\";e[e[\"PRODUCER\"]=3]=\"PRODUCER\";e[e[\"CONSUMER\"]=4]=\"CONSUMER\"})(r=t.SpanKind||(t.SpanKind={}))},139:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.wrapSpanContext=t.isSpanContextValid=t.isValidSpanId=t.isValidTraceId=void 0;const n=r(476);const a=r(403);const o=/^([0-9a-f]{32})$/i;const i=/^[0-9a-f]{16}$/i;function isValidTraceId(e){return o.test(e)&&e!==n.INVALID_TRACEID}t.isValidTraceId=isValidTraceId;function isValidSpanId(e){return i.test(e)&&e!==n.INVALID_SPANID}t.isValidSpanId=isValidSpanId;function isSpanContextValid(e){return isValidTraceId(e.traceId)&&isValidSpanId(e.spanId)}t.isSpanContextValid=isSpanContextValid;function wrapSpanContext(e){return new a.NonRecordingSpan(e)}t.wrapSpanContext=wrapSpanContext},847:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanStatusCode=void 0;var r;(function(e){e[e[\"UNSET\"]=0]=\"UNSET\";e[e[\"OK\"]=1]=\"OK\";e[e[\"ERROR\"]=2]=\"ERROR\"})(r=t.SpanStatusCode||(t.SpanStatusCode={}))},475:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceFlags=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"SAMPLED\"]=1]=\"SAMPLED\"})(r=t.TraceFlags||(t.TraceFlags={}))},521:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.VERSION=void 0;t.VERSION=\"1.6.0\"}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var a=t[r]={exports:{}};var o=true;try{e[r].call(a.exports,a,a.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return a.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r={};(()=>{var e=r;Object.defineProperty(e,\"__esModule\",{value:true});e.trace=e.propagation=e.metrics=e.diag=e.context=e.INVALID_SPAN_CONTEXT=e.INVALID_TRACEID=e.INVALID_SPANID=e.isValidSpanId=e.isValidTraceId=e.isSpanContextValid=e.createTraceState=e.TraceFlags=e.SpanStatusCode=e.SpanKind=e.SamplingDecision=e.ProxyTracerProvider=e.ProxyTracer=e.defaultTextMapSetter=e.defaultTextMapGetter=e.ValueType=e.createNoopMeter=e.DiagLogLevel=e.DiagConsoleLogger=e.ROOT_CONTEXT=e.createContextKey=e.baggageEntryMetadataFromString=void 0;var t=__nccwpck_require__(369);Object.defineProperty(e,\"baggageEntryMetadataFromString\",{enumerable:true,get:function(){return t.baggageEntryMetadataFromString}});var n=__nccwpck_require__(780);Object.defineProperty(e,\"createContextKey\",{enumerable:true,get:function(){return n.createContextKey}});Object.defineProperty(e,\"ROOT_CONTEXT\",{enumerable:true,get:function(){return n.ROOT_CONTEXT}});var a=__nccwpck_require__(972);Object.defineProperty(e,\"DiagConsoleLogger\",{enumerable:true,get:function(){return a.DiagConsoleLogger}});var o=__nccwpck_require__(957);Object.defineProperty(e,\"DiagLogLevel\",{enumerable:true,get:function(){return o.DiagLogLevel}});var i=__nccwpck_require__(102);Object.defineProperty(e,\"createNoopMeter\",{enumerable:true,get:function(){return i.createNoopMeter}});var c=__nccwpck_require__(901);Object.defineProperty(e,\"ValueType\",{enumerable:true,get:function(){return c.ValueType}});var s=__nccwpck_require__(194);Object.defineProperty(e,\"defaultTextMapGetter\",{enumerable:true,get:function(){return s.defaultTextMapGetter}});Object.defineProperty(e,\"defaultTextMapSetter\",{enumerable:true,get:function(){return s.defaultTextMapSetter}});var u=__nccwpck_require__(125);Object.defineProperty(e,\"ProxyTracer\",{enumerable:true,get:function(){return u.ProxyTracer}});var l=__nccwpck_require__(846);Object.defineProperty(e,\"ProxyTracerProvider\",{enumerable:true,get:function(){return l.ProxyTracerProvider}});var g=__nccwpck_require__(996);Object.defineProperty(e,\"SamplingDecision\",{enumerable:true,get:function(){return g.SamplingDecision}});var p=__nccwpck_require__(357);Object.defineProperty(e,\"SpanKind\",{enumerable:true,get:function(){return p.SpanKind}});var d=__nccwpck_require__(847);Object.defineProperty(e,\"SpanStatusCode\",{enumerable:true,get:function(){return d.SpanStatusCode}});var _=__nccwpck_require__(475);Object.defineProperty(e,\"TraceFlags\",{enumerable:true,get:function(){return _.TraceFlags}});var f=__nccwpck_require__(98);Object.defineProperty(e,\"createTraceState\",{enumerable:true,get:function(){return f.createTraceState}});var b=__nccwpck_require__(139);Object.defineProperty(e,\"isSpanContextValid\",{enumerable:true,get:function(){return b.isSpanContextValid}});Object.defineProperty(e,\"isValidTraceId\",{enumerable:true,get:function(){return b.isValidTraceId}});Object.defineProperty(e,\"isValidSpanId\",{enumerable:true,get:function(){return b.isValidSpanId}});var v=__nccwpck_require__(476);Object.defineProperty(e,\"INVALID_SPANID\",{enumerable:true,get:function(){return v.INVALID_SPANID}});Object.defineProperty(e,\"INVALID_TRACEID\",{enumerable:true,get:function(){return v.INVALID_TRACEID}});Object.defineProperty(e,\"INVALID_SPAN_CONTEXT\",{enumerable:true,get:function(){return v.INVALID_SPAN_CONTEXT}});const O=__nccwpck_require__(67);Object.defineProperty(e,\"context\",{enumerable:true,get:function(){return O.context}});const P=__nccwpck_require__(506);Object.defineProperty(e,\"diag\",{enumerable:true,get:function(){return P.diag}});const N=__nccwpck_require__(886);Object.defineProperty(e,\"metrics\",{enumerable:true,get:function(){return N.metrics}});const S=__nccwpck_require__(939);Object.defineProperty(e,\"propagation\",{enumerable:true,get:function(){return S.propagation}});const C=__nccwpck_require__(845);Object.defineProperty(e,\"trace\",{enumerable:true,get:function(){return C.trace}});e[\"default\"]={context:O.context,diag:P.diag,metrics:N.metrics,propagation:S.propagation,trace:C.trace}})();module.exports=r})();","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"cacheLife\", {\n enumerable: true,\n get: function() {\n return cacheLife;\n }\n});\nconst _workasyncstorageexternal = require(\"../app-render/work-async-storage.external\");\nconst _workunitasyncstorageexternal = require(\"../app-render/work-unit-async-storage.external\");\nfunction validateCacheLife(profile) {\n if (profile.stale !== undefined) {\n if (profile.stale === false) {\n throw Object.defineProperty(new Error('Pass `Infinity` instead of `false` if you want to cache on the client forever ' + 'without checking with the server.'), \"__NEXT_ERROR_CODE\", {\n value: \"E407\",\n enumerable: false,\n configurable: true\n });\n } else if (typeof profile.stale !== 'number') {\n throw Object.defineProperty(new Error('The stale option must be a number of seconds.'), \"__NEXT_ERROR_CODE\", {\n value: \"E308\",\n enumerable: false,\n configurable: true\n });\n }\n }\n if (profile.revalidate !== undefined) {\n if (profile.revalidate === false) {\n throw Object.defineProperty(new Error('Pass `Infinity` instead of `false` if you do not want to revalidate by time.'), \"__NEXT_ERROR_CODE\", {\n value: \"E104\",\n enumerable: false,\n configurable: true\n });\n } else if (typeof profile.revalidate !== 'number') {\n throw Object.defineProperty(new Error('The revalidate option must be a number of seconds.'), \"__NEXT_ERROR_CODE\", {\n value: \"E233\",\n enumerable: false,\n configurable: true\n });\n }\n }\n if (profile.expire !== undefined) {\n if (profile.expire === false) {\n throw Object.defineProperty(new Error('Pass `Infinity` instead of `false` if you want to cache on the server forever ' + 'without checking with the origin.'), \"__NEXT_ERROR_CODE\", {\n value: \"E658\",\n enumerable: false,\n configurable: true\n });\n } else if (typeof profile.expire !== 'number') {\n throw Object.defineProperty(new Error('The expire option must be a number of seconds.'), \"__NEXT_ERROR_CODE\", {\n value: \"E3\",\n enumerable: false,\n configurable: true\n });\n }\n }\n if (profile.revalidate !== undefined && profile.expire !== undefined) {\n if (profile.revalidate > profile.expire) {\n throw Object.defineProperty(new Error('If providing both the revalidate and expire options, ' + 'the expire option must be greater than the revalidate option. ' + 'The expire option indicates how many seconds from the start ' + 'until it can no longer be used.'), \"__NEXT_ERROR_CODE\", {\n value: \"E656\",\n enumerable: false,\n configurable: true\n });\n }\n }\n if (profile.stale !== undefined && profile.expire !== undefined) {\n if (profile.stale > profile.expire) {\n throw Object.defineProperty(new Error('If providing both the stale and expire options, ' + 'the expire option must be greater than the stale option. ' + 'The expire option indicates how many seconds from the start ' + 'until it can no longer be used.'), \"__NEXT_ERROR_CODE\", {\n value: \"E655\",\n enumerable: false,\n configurable: true\n });\n }\n }\n}\nfunction cacheLife(profile) {\n if (!process.env.__NEXT_USE_CACHE) {\n throw Object.defineProperty(new Error('cacheLife() is only available with the experimental.useCache config.'), \"__NEXT_ERROR_CODE\", {\n value: \"E627\",\n enumerable: false,\n configurable: true\n });\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (!workUnitStore || workUnitStore.type !== 'cache') {\n throw Object.defineProperty(new Error('cacheLife() can only be called inside a \"use cache\" function.'), \"__NEXT_ERROR_CODE\", {\n value: \"E250\",\n enumerable: false,\n configurable: true\n });\n }\n if (typeof profile === 'string') {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (!workStore) {\n throw Object.defineProperty(new Error('cacheLife() can only be called during App Router rendering at the moment.'), \"__NEXT_ERROR_CODE\", {\n value: \"E94\",\n enumerable: false,\n configurable: true\n });\n }\n if (!workStore.cacheLifeProfiles) {\n throw Object.defineProperty(new Error('cacheLifeProfiles should always be provided. This is a bug in Next.js.'), \"__NEXT_ERROR_CODE\", {\n value: \"E294\",\n enumerable: false,\n configurable: true\n });\n }\n // TODO: This should be globally available and not require an AsyncLocalStorage.\n const configuredProfile = workStore.cacheLifeProfiles[profile];\n if (configuredProfile === undefined) {\n if (workStore.cacheLifeProfiles[profile.trim()]) {\n throw Object.defineProperty(new Error(`Unknown cacheLife profile \"${profile}\" is not configured in next.config.js\\n` + `Did you mean \"${profile.trim()}\" without the spaces?`), \"__NEXT_ERROR_CODE\", {\n value: \"E16\",\n enumerable: false,\n configurable: true\n });\n }\n throw Object.defineProperty(new Error(`Unknown cacheLife profile \"${profile}\" is not configured in next.config.js\\n` + 'module.exports = {\\n' + ' experimental: {\\n' + ' cacheLife: {\\n' + ` \"${profile}\": ...\\n` + ' }\\n' + ' }\\n' + '}'), \"__NEXT_ERROR_CODE\", {\n value: \"E137\",\n enumerable: false,\n configurable: true\n });\n }\n profile = configuredProfile;\n } else if (typeof profile !== 'object' || profile === null || Array.isArray(profile)) {\n throw Object.defineProperty(new Error('Invalid cacheLife() option. Either pass a profile name or object.'), \"__NEXT_ERROR_CODE\", {\n value: \"E110\",\n enumerable: false,\n configurable: true\n });\n } else {\n validateCacheLife(profile);\n }\n if (profile.revalidate !== undefined) {\n // Track the explicit revalidate time.\n if (workUnitStore.explicitRevalidate === undefined || workUnitStore.explicitRevalidate > profile.revalidate) {\n workUnitStore.explicitRevalidate = profile.revalidate;\n }\n }\n if (profile.expire !== undefined) {\n // Track the explicit expire time.\n if (workUnitStore.explicitExpire === undefined || workUnitStore.explicitExpire > profile.expire) {\n workUnitStore.explicitExpire = profile.expire;\n }\n }\n if (profile.stale !== undefined) {\n // Track the explicit stale time.\n if (workUnitStore.explicitStale === undefined || workUnitStore.explicitStale > profile.stale) {\n workUnitStore.explicitStale = profile.stale;\n }\n }\n}\n\n//# sourceMappingURL=cache-life.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NextURL\", {\n enumerable: true,\n get: function() {\n return NextURL;\n }\n});\nconst _detectdomainlocale = require(\"../../shared/lib/i18n/detect-domain-locale\");\nconst _formatnextpathnameinfo = require(\"../../shared/lib/router/utils/format-next-pathname-info\");\nconst _gethostname = require(\"../../shared/lib/get-hostname\");\nconst _getnextpathnameinfo = require(\"../../shared/lib/router/utils/get-next-pathname-info\");\nconst REGEX_LOCALHOST_HOSTNAME = /(?!^https?:\\/\\/)(127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\\[::1\\]|localhost)/;\nfunction parseURL(url, base) {\n return new URL(String(url).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost'), base && String(base).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost'));\n}\nconst Internal = Symbol('NextURLInternal');\nclass NextURL {\n constructor(input, baseOrOpts, opts){\n let base;\n let options;\n if (typeof baseOrOpts === 'object' && 'pathname' in baseOrOpts || typeof baseOrOpts === 'string') {\n base = baseOrOpts;\n options = opts || {};\n } else {\n options = opts || baseOrOpts || {};\n }\n this[Internal] = {\n url: parseURL(input, base ?? options.base),\n options: options,\n basePath: ''\n };\n this.analyze();\n }\n analyze() {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig, _this_Internal_domainLocale, _this_Internal_options_nextConfig_i18n1, _this_Internal_options_nextConfig1;\n const info = (0, _getnextpathnameinfo.getNextPathnameInfo)(this[Internal].url.pathname, {\n nextConfig: this[Internal].options.nextConfig,\n parseData: !process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE,\n i18nProvider: this[Internal].options.i18nProvider\n });\n const hostname = (0, _gethostname.getHostname)(this[Internal].url, this[Internal].options.headers);\n this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : (0, _detectdomainlocale.detectDomainLocale)((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.domains, hostname);\n const defaultLocale = ((_this_Internal_domainLocale = this[Internal].domainLocale) == null ? void 0 : _this_Internal_domainLocale.defaultLocale) || ((_this_Internal_options_nextConfig1 = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n1 = _this_Internal_options_nextConfig1.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n1.defaultLocale);\n this[Internal].url.pathname = info.pathname;\n this[Internal].defaultLocale = defaultLocale;\n this[Internal].basePath = info.basePath ?? '';\n this[Internal].buildId = info.buildId;\n this[Internal].locale = info.locale ?? defaultLocale;\n this[Internal].trailingSlash = info.trailingSlash;\n }\n formatPathname() {\n return (0, _formatnextpathnameinfo.formatNextPathnameInfo)({\n basePath: this[Internal].basePath,\n buildId: this[Internal].buildId,\n defaultLocale: !this[Internal].options.forceLocale ? this[Internal].defaultLocale : undefined,\n locale: this[Internal].locale,\n pathname: this[Internal].url.pathname,\n trailingSlash: this[Internal].trailingSlash\n });\n }\n formatSearch() {\n return this[Internal].url.search;\n }\n get buildId() {\n return this[Internal].buildId;\n }\n set buildId(buildId) {\n this[Internal].buildId = buildId;\n }\n get locale() {\n return this[Internal].locale ?? '';\n }\n set locale(locale) {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig;\n if (!this[Internal].locale || !((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.locales.includes(locale))) {\n throw Object.defineProperty(new TypeError(`The NextURL configuration includes no locale \"${locale}\"`), \"__NEXT_ERROR_CODE\", {\n value: \"E597\",\n enumerable: false,\n configurable: true\n });\n }\n this[Internal].locale = locale;\n }\n get defaultLocale() {\n return this[Internal].defaultLocale;\n }\n get domainLocale() {\n return this[Internal].domainLocale;\n }\n get searchParams() {\n return this[Internal].url.searchParams;\n }\n get host() {\n return this[Internal].url.host;\n }\n set host(value) {\n this[Internal].url.host = value;\n }\n get hostname() {\n return this[Internal].url.hostname;\n }\n set hostname(value) {\n this[Internal].url.hostname = value;\n }\n get port() {\n return this[Internal].url.port;\n }\n set port(value) {\n this[Internal].url.port = value;\n }\n get protocol() {\n return this[Internal].url.protocol;\n }\n set protocol(value) {\n this[Internal].url.protocol = value;\n }\n get href() {\n const pathname = this.formatPathname();\n const search = this.formatSearch();\n return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`;\n }\n set href(url) {\n this[Internal].url = parseURL(url);\n this.analyze();\n }\n get origin() {\n return this[Internal].url.origin;\n }\n get pathname() {\n return this[Internal].url.pathname;\n }\n set pathname(value) {\n this[Internal].url.pathname = value;\n }\n get hash() {\n return this[Internal].url.hash;\n }\n set hash(value) {\n this[Internal].url.hash = value;\n }\n get search() {\n return this[Internal].url.search;\n }\n set search(value) {\n this[Internal].url.search = value;\n }\n get password() {\n return this[Internal].url.password;\n }\n set password(value) {\n this[Internal].url.password = value;\n }\n get username() {\n return this[Internal].url.username;\n }\n set username(value) {\n this[Internal].url.username = value;\n }\n get basePath() {\n return this[Internal].basePath;\n }\n set basePath(value) {\n this[Internal].basePath = value.startsWith('/') ? value : `/${value}`;\n }\n toString() {\n return this.href;\n }\n toJSON() {\n return this.href;\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n href: this.href,\n origin: this.origin,\n protocol: this.protocol,\n username: this.username,\n password: this.password,\n host: this.host,\n hostname: this.hostname,\n port: this.port,\n pathname: this.pathname,\n search: this.search,\n searchParams: this.searchParams,\n hash: this.hash\n };\n }\n clone() {\n return new NextURL(String(this), this[Internal].options);\n }\n}\n\n//# sourceMappingURL=next-url.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n getClientComponentLoaderMetrics: null,\n wrapClientComponentLoader: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getClientComponentLoaderMetrics: function() {\n return getClientComponentLoaderMetrics;\n },\n wrapClientComponentLoader: function() {\n return wrapClientComponentLoader;\n }\n});\n// Combined load times for loading client components\nlet clientComponentLoadStart = 0;\nlet clientComponentLoadTimes = 0;\nlet clientComponentLoadCount = 0;\nfunction wrapClientComponentLoader(ComponentMod) {\n if (!('performance' in globalThis)) {\n return ComponentMod.__next_app__;\n }\n return {\n require: (...args)=>{\n const startTime = performance.now();\n if (clientComponentLoadStart === 0) {\n clientComponentLoadStart = startTime;\n }\n try {\n clientComponentLoadCount += 1;\n return ComponentMod.__next_app__.require(...args);\n } finally{\n clientComponentLoadTimes += performance.now() - startTime;\n }\n },\n loadChunk: (...args)=>{\n const startTime = performance.now();\n const result = ComponentMod.__next_app__.loadChunk(...args);\n // Avoid wrapping `loadChunk`'s result in an extra promise in case something like React depends on its identity.\n // We only need to know when it's settled.\n result.finally(()=>{\n clientComponentLoadTimes += performance.now() - startTime;\n });\n return result;\n }\n };\n}\nfunction getClientComponentLoaderMetrics(options = {}) {\n const metrics = clientComponentLoadStart === 0 ? undefined : {\n clientComponentLoadStart,\n clientComponentLoadTimes,\n clientComponentLoadCount\n };\n if (options.reset) {\n clientComponentLoadStart = 0;\n clientComponentLoadTimes = 0;\n clientComponentLoadCount = 0;\n }\n return metrics;\n}\n\n//# sourceMappingURL=client-component-renderer-logger.js.map","/* eslint-disable no-redeclare */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n NEXT_REQUEST_META: null,\n addRequestMeta: null,\n getRequestMeta: null,\n removeRequestMeta: null,\n setRequestMeta: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NEXT_REQUEST_META: function() {\n return NEXT_REQUEST_META;\n },\n addRequestMeta: function() {\n return addRequestMeta;\n },\n getRequestMeta: function() {\n return getRequestMeta;\n },\n removeRequestMeta: function() {\n return removeRequestMeta;\n },\n setRequestMeta: function() {\n return setRequestMeta;\n }\n});\nconst NEXT_REQUEST_META = Symbol.for('NextInternalRequestMeta');\nfunction getRequestMeta(req, key) {\n const meta = req[NEXT_REQUEST_META] || {};\n return typeof key === 'string' ? meta[key] : meta;\n}\nfunction setRequestMeta(req, meta) {\n req[NEXT_REQUEST_META] = meta;\n return meta;\n}\nfunction addRequestMeta(request, key, value) {\n const meta = getRequestMeta(request);\n meta[key] = value;\n return setRequestMeta(request, meta);\n}\nfunction removeRequestMeta(request, key) {\n const meta = getRequestMeta(request);\n delete meta[key];\n return setRequestMeta(request, meta);\n}\n\n//# sourceMappingURL=request-meta.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"unstable_cache\", {\n enumerable: true,\n get: function() {\n return unstable_cache;\n }\n});\nconst _constants = require(\"../../../lib/constants\");\nconst _patchfetch = require(\"../../lib/patch-fetch\");\nconst _workasyncstorageexternal = require(\"../../app-render/work-async-storage.external\");\nconst _workunitasyncstorageexternal = require(\"../../app-render/work-unit-async-storage.external\");\nconst _responsecache = require(\"../../response-cache\");\nlet noStoreFetchIdx = 0;\nasync function cacheNewResult(result, incrementalCache, cacheKey, tags, revalidate, fetchIdx, fetchUrl) {\n await incrementalCache.set(cacheKey, {\n kind: _responsecache.CachedRouteKind.FETCH,\n data: {\n headers: {},\n // TODO: handle non-JSON values?\n body: JSON.stringify(result),\n status: 200,\n url: ''\n },\n revalidate: typeof revalidate !== 'number' ? _constants.CACHE_ONE_YEAR : revalidate\n }, {\n fetchCache: true,\n tags,\n fetchIdx,\n fetchUrl\n });\n return;\n}\nfunction unstable_cache(cb, keyParts, options = {}) {\n if (options.revalidate === 0) {\n throw Object.defineProperty(new Error(`Invariant revalidate: 0 can not be passed to unstable_cache(), must be \"false\" or \"> 0\" ${cb.toString()}`), \"__NEXT_ERROR_CODE\", {\n value: \"E57\",\n enumerable: false,\n configurable: true\n });\n }\n // Validate the tags provided are valid\n const tags = options.tags ? (0, _patchfetch.validateTags)(options.tags, `unstable_cache ${cb.toString()}`) : [];\n // Validate the revalidate options\n (0, _patchfetch.validateRevalidate)(options.revalidate, `unstable_cache ${cb.name || cb.toString()}`);\n // Stash the fixed part of the key at construction time. The invocation key will combine\n // the fixed key with the arguments when actually called\n // @TODO if cb.toString() is long we should hash it\n // @TODO come up with a collision-free way to combine keyParts\n // @TODO consider validating the keyParts are all strings. TS can't provide runtime guarantees\n // and the error produced by accidentally using something that cannot be safely coerced is likely\n // hard to debug\n const fixedKey = `${cb.toString()}-${Array.isArray(keyParts) && keyParts.join(',')}`;\n const cachedCb = async (...args)=>{\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n // We must be able to find the incremental cache otherwise we throw\n const maybeIncrementalCache = (workStore == null ? void 0 : workStore.incrementalCache) || globalThis.__incrementalCache;\n if (!maybeIncrementalCache) {\n throw Object.defineProperty(new Error(`Invariant: incrementalCache missing in unstable_cache ${cb.toString()}`), \"__NEXT_ERROR_CODE\", {\n value: \"E469\",\n enumerable: false,\n configurable: true\n });\n }\n const incrementalCache = maybeIncrementalCache;\n const cacheSignal = workUnitStore && workUnitStore.type === 'prerender' ? workUnitStore.cacheSignal : null;\n if (cacheSignal) {\n cacheSignal.beginRead();\n }\n try {\n // If there's no request store, we aren't in a request (or we're not in app\n // router) and if there's no static generation store, we aren't in app\n // router. Default to an empty pathname and search params when there's no\n // request store or static generation store available.\n const requestStore = workUnitStore && workUnitStore.type === 'request' ? workUnitStore : undefined;\n const pathname = (requestStore == null ? void 0 : requestStore.url.pathname) ?? (workStore == null ? void 0 : workStore.route) ?? '';\n const searchParams = new URLSearchParams((requestStore == null ? void 0 : requestStore.url.search) ?? '');\n const sortedSearchKeys = [\n ...searchParams.keys()\n ].sort((a, b)=>{\n return a.localeCompare(b);\n });\n const sortedSearch = sortedSearchKeys.map((key)=>`${key}=${searchParams.get(key)}`).join('&');\n // Construct the complete cache key for this function invocation\n // @TODO stringify is likely not safe here. We will coerce undefined to null which will make\n // the keyspace smaller than the execution space\n const invocationKey = `${fixedKey}-${JSON.stringify(args)}`;\n const cacheKey = await incrementalCache.generateCacheKey(invocationKey);\n // $urlWithPath,$sortedQueryStringKeys,$hashOfEveryThingElse\n const fetchUrl = `unstable_cache ${pathname}${sortedSearch.length ? '?' : ''}${sortedSearch} ${cb.name ? ` ${cb.name}` : cacheKey}`;\n const fetchIdx = (workStore ? workStore.nextFetchId : noStoreFetchIdx) ?? 1;\n if (workStore) {\n workStore.nextFetchId = fetchIdx + 1;\n // We are in an App Router context. We try to return the cached entry if it exists and is valid\n // If the entry is fresh we return it. If the entry is stale we return it but revalidate the entry in\n // the background. If the entry is missing or invalid we generate a new entry and return it.\n // We update the store's revalidate property if the option.revalidate is a higher precedence\n if (workUnitStore && (workUnitStore.type === 'cache' || workUnitStore.type === 'prerender' || workUnitStore.type === 'prerender-ppr' || workUnitStore.type === 'prerender-legacy')) {\n // options.revalidate === undefined doesn't affect timing.\n // options.revalidate === false doesn't shrink timing. it stays at the maximum.\n if (typeof options.revalidate === 'number') {\n if (workUnitStore.revalidate < options.revalidate) {\n // The store is already revalidating on a shorter time interval, leave it alone\n } else {\n workUnitStore.revalidate = options.revalidate;\n }\n }\n // We need to accumulate the tags for this invocation within the store\n const collectedTags = workUnitStore.tags;\n if (collectedTags === null) {\n workUnitStore.tags = tags.slice();\n } else {\n for (const tag of tags){\n // @TODO refactor tags to be a set to avoid this O(n) lookup\n if (!collectedTags.includes(tag)) {\n collectedTags.push(tag);\n }\n }\n }\n }\n const implicitTags = !workUnitStore || workUnitStore.type === 'unstable-cache' ? [] : workUnitStore.implicitTags;\n const isNestedUnstableCache = workUnitStore && workUnitStore.type === 'unstable-cache';\n if (// when we are nested inside of other unstable_cache's\n // we should bypass cache similar to fetches\n !isNestedUnstableCache && workStore.fetchCache !== 'force-no-store' && !workStore.isOnDemandRevalidate && !incrementalCache.isOnDemandRevalidate && !workStore.isDraftMode) {\n // We attempt to get the current cache entry from the incremental cache.\n const cacheEntry = await incrementalCache.get(cacheKey, {\n kind: _responsecache.IncrementalCacheKind.FETCH,\n revalidate: options.revalidate,\n tags,\n softTags: implicitTags,\n fetchIdx,\n fetchUrl\n });\n if (cacheEntry && cacheEntry.value) {\n // The entry exists and has a value\n if (cacheEntry.value.kind !== _responsecache.CachedRouteKind.FETCH) {\n // The entry is invalid and we need a special warning\n // @TODO why do we warn this way? Should this just be an error? How are these errors surfaced\n // so bugs can be reported\n // @TODO the invocation key can have sensitive data in it. we should not log this entire object\n console.error(`Invariant invalid cacheEntry returned for ${invocationKey}`);\n // will fall through to generating a new cache entry below\n } else {\n // We have a valid cache entry so we will be returning it. We also check to see if we need\n // to background revalidate it by checking if it is stale.\n const cachedResponse = cacheEntry.value.data.body !== undefined ? JSON.parse(cacheEntry.value.data.body) : undefined;\n if (cacheEntry.isStale) {\n // In App Router we return the stale result and revalidate in the background\n if (!workStore.pendingRevalidates) {\n workStore.pendingRevalidates = {};\n }\n const innerCacheStore = {\n type: 'unstable-cache',\n phase: 'render'\n };\n // We run the cache function asynchronously and save the result when it completes\n workStore.pendingRevalidates[invocationKey] = _workunitasyncstorageexternal.workUnitAsyncStorage.run(innerCacheStore, cb, ...args).then((result)=>{\n return cacheNewResult(result, incrementalCache, cacheKey, tags, options.revalidate, fetchIdx, fetchUrl);\n })// @TODO This error handling seems wrong. We swallow the error?\n .catch((err)=>console.error(`revalidating cache with key: ${invocationKey}`, err));\n }\n // We had a valid cache entry so we return it here\n return cachedResponse;\n }\n }\n }\n const innerCacheStore = {\n type: 'unstable-cache',\n phase: 'render'\n };\n // If we got this far then we had an invalid cache entry and need to generate a new one\n const result = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(innerCacheStore, cb, ...args);\n if (!workStore.isDraftMode) {\n cacheNewResult(result, incrementalCache, cacheKey, tags, options.revalidate, fetchIdx, fetchUrl);\n }\n return result;\n } else {\n noStoreFetchIdx += 1;\n // We are in Pages Router or were called outside of a render. We don't have a store\n // so we just call the callback directly when it needs to run.\n // If the entry is fresh we return it. If the entry is stale we return it but revalidate the entry in\n // the background. If the entry is missing or invalid we generate a new entry and return it.\n if (!incrementalCache.isOnDemandRevalidate) {\n // We aren't doing an on demand revalidation so we check use the cache if valid\n const implicitTags = !workUnitStore || workUnitStore.type === 'unstable-cache' ? [] : workUnitStore.implicitTags;\n const cacheEntry = await incrementalCache.get(cacheKey, {\n kind: _responsecache.IncrementalCacheKind.FETCH,\n revalidate: options.revalidate,\n tags,\n fetchIdx,\n fetchUrl,\n softTags: implicitTags\n });\n if (cacheEntry && cacheEntry.value) {\n // The entry exists and has a value\n if (cacheEntry.value.kind !== _responsecache.CachedRouteKind.FETCH) {\n // The entry is invalid and we need a special warning\n // @TODO why do we warn this way? Should this just be an error? How are these errors surfaced\n // so bugs can be reported\n console.error(`Invariant invalid cacheEntry returned for ${invocationKey}`);\n // will fall through to generating a new cache entry below\n } else if (!cacheEntry.isStale) {\n // We have a valid cache entry and it is fresh so we return it\n return cacheEntry.value.data.body !== undefined ? JSON.parse(cacheEntry.value.data.body) : undefined;\n }\n }\n }\n const innerCacheStore = {\n type: 'unstable-cache',\n phase: 'render'\n };\n // If we got this far then we had an invalid cache entry and need to generate a new one\n const result = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(innerCacheStore, cb, ...args);\n cacheNewResult(result, incrementalCache, cacheKey, tags, options.revalidate, fetchIdx, fetchUrl);\n return result;\n }\n } finally{\n if (cacheSignal) {\n cacheSignal.endRead();\n }\n }\n };\n // TODO: once AsyncLocalStorage.run() returns the correct types this override will no longer be necessary\n return cachedCb;\n}\n\n//# sourceMappingURL=unstable-cache.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"workUnitAsyncStorageInstance\", {\n enumerable: true,\n get: function() {\n return workUnitAsyncStorageInstance;\n }\n});\nconst _asynclocalstorage = require(\"./async-local-storage\");\nconst workUnitAsyncStorageInstance = (0, _asynclocalstorage.createAsyncLocalStorage)();\n\n//# sourceMappingURL=work-unit-async-storage-instance.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n NEXT_PATCH_SYMBOL: null,\n createPatchedFetcher: null,\n patchFetch: null,\n validateRevalidate: null,\n validateTags: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NEXT_PATCH_SYMBOL: function() {\n return NEXT_PATCH_SYMBOL;\n },\n createPatchedFetcher: function() {\n return createPatchedFetcher;\n },\n patchFetch: function() {\n return patchFetch;\n },\n validateRevalidate: function() {\n return validateRevalidate;\n },\n validateTags: function() {\n return validateTags;\n }\n});\nconst _constants = require(\"./trace/constants\");\nconst _tracer = require(\"./trace/tracer\");\nconst _constants1 = require(\"../../lib/constants\");\nconst _dynamicrendering = require(\"../app-render/dynamic-rendering\");\nconst _dynamicrenderingutils = require(\"../dynamic-rendering-utils\");\nconst _dedupefetch = require(\"./dedupe-fetch\");\nconst _responsecache = require(\"../response-cache\");\nconst _scheduler = require(\"../../lib/scheduler\");\nconst _cloneresponse = require(\"./clone-response\");\nconst isEdgeRuntime = process.env.NEXT_RUNTIME === 'edge';\nconst NEXT_PATCH_SYMBOL = Symbol.for('next-patch');\nfunction isFetchPatched() {\n return globalThis[NEXT_PATCH_SYMBOL] === true;\n}\nfunction validateRevalidate(revalidateVal, route) {\n try {\n let normalizedRevalidate = undefined;\n if (revalidateVal === false) {\n normalizedRevalidate = _constants1.INFINITE_CACHE;\n } else if (typeof revalidateVal === 'number' && !isNaN(revalidateVal) && revalidateVal > -1) {\n normalizedRevalidate = revalidateVal;\n } else if (typeof revalidateVal !== 'undefined') {\n throw Object.defineProperty(new Error(`Invalid revalidate value \"${revalidateVal}\" on \"${route}\", must be a non-negative number or false`), \"__NEXT_ERROR_CODE\", {\n value: \"E179\",\n enumerable: false,\n configurable: true\n });\n }\n return normalizedRevalidate;\n } catch (err) {\n // handle client component error from attempting to check revalidate value\n if (err instanceof Error && err.message.includes('Invalid revalidate')) {\n throw err;\n }\n return undefined;\n }\n}\nfunction validateTags(tags, description) {\n const validTags = [];\n const invalidTags = [];\n for(let i = 0; i < tags.length; i++){\n const tag = tags[i];\n if (typeof tag !== 'string') {\n invalidTags.push({\n tag,\n reason: 'invalid type, must be a string'\n });\n } else if (tag.length > _constants1.NEXT_CACHE_TAG_MAX_LENGTH) {\n invalidTags.push({\n tag,\n reason: `exceeded max length of ${_constants1.NEXT_CACHE_TAG_MAX_LENGTH}`\n });\n } else {\n validTags.push(tag);\n }\n if (validTags.length > _constants1.NEXT_CACHE_TAG_MAX_ITEMS) {\n console.warn(`Warning: exceeded max tag count for ${description}, dropped tags:`, tags.slice(i).join(', '));\n break;\n }\n }\n if (invalidTags.length > 0) {\n console.warn(`Warning: invalid tags passed to ${description}: `);\n for (const { tag, reason } of invalidTags){\n console.log(`tag: \"${tag}\" ${reason}`);\n }\n }\n return validTags;\n}\nfunction trackFetchMetric(workStore, ctx) {\n var _workStore_requestEndedState;\n // If the static generation store is not available, we can't track the fetch\n if (!workStore) return;\n if ((_workStore_requestEndedState = workStore.requestEndedState) == null ? void 0 : _workStore_requestEndedState.ended) return;\n const isDebugBuild = (!!process.env.NEXT_DEBUG_BUILD || process.env.NEXT_SSG_FETCH_METRICS === '1') && workStore.isStaticGeneration;\n const isDevelopment = process.env.NODE_ENV === 'development';\n if (// The only time we want to track fetch metrics outside of development is when\n // we are performing a static generation & we are in debug mode.\n !isDebugBuild && !isDevelopment) {\n return;\n }\n workStore.fetchMetrics ??= [];\n workStore.fetchMetrics.push({\n ...ctx,\n end: performance.timeOrigin + performance.now(),\n idx: workStore.nextFetchId || 0\n });\n}\nfunction createPatchedFetcher(originFetch, { workAsyncStorage, workUnitAsyncStorage }) {\n // Create the patched fetch function. We don't set the type here, as it's\n // verified as the return value of this function.\n const patched = async (input, init)=>{\n var _init_method, _init_next;\n let url;\n try {\n url = new URL(input instanceof Request ? input.url : input);\n url.username = '';\n url.password = '';\n } catch {\n // Error caused by malformed URL should be handled by native fetch\n url = undefined;\n }\n const fetchUrl = (url == null ? void 0 : url.href) ?? '';\n const method = (init == null ? void 0 : (_init_method = init.method) == null ? void 0 : _init_method.toUpperCase()) || 'GET';\n // Do create a new span trace for internal fetches in the\n // non-verbose mode.\n const isInternal = (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next.internal) === true;\n const hideSpan = process.env.NEXT_OTEL_FETCH_DISABLED === '1';\n // We don't track fetch metrics for internal fetches\n // so it's not critical that we have a start time, as it won't be recorded.\n // This is to workaround a flaky issue where performance APIs might\n // not be available and will require follow-up investigation.\n const fetchStart = isInternal ? undefined : performance.timeOrigin + performance.now();\n const workStore = workAsyncStorage.getStore();\n const workUnitStore = workUnitAsyncStorage.getStore();\n // During static generation we track cache reads so we can reason about when they fill\n let cacheSignal = workUnitStore && workUnitStore.type === 'prerender' ? workUnitStore.cacheSignal : null;\n if (cacheSignal) {\n cacheSignal.beginRead();\n }\n const result = (0, _tracer.getTracer)().trace(isInternal ? _constants.NextNodeServerSpan.internalFetch : _constants.AppRenderSpan.fetch, {\n hideSpan,\n kind: _tracer.SpanKind.CLIENT,\n spanName: [\n 'fetch',\n method,\n fetchUrl\n ].filter(Boolean).join(' '),\n attributes: {\n 'http.url': fetchUrl,\n 'http.method': method,\n 'net.peer.name': url == null ? void 0 : url.hostname,\n 'net.peer.port': (url == null ? void 0 : url.port) || undefined\n }\n }, async ()=>{\n var _getRequestMeta;\n // If this is an internal fetch, we should not do any special treatment.\n if (isInternal) {\n return originFetch(input, init);\n }\n // If the workStore is not available, we can't do any\n // special treatment of fetch, therefore fallback to the original\n // fetch implementation.\n if (!workStore) {\n return originFetch(input, init);\n }\n // We should also fallback to the original fetch implementation if we\n // are in draft mode, it does not constitute a static generation.\n if (workStore.isDraftMode) {\n return originFetch(input, init);\n }\n const isRequestInput = input && typeof input === 'object' && typeof input.method === 'string';\n const getRequestMeta = (field)=>{\n // If request input is present but init is not, retrieve from input first.\n const value = init == null ? void 0 : init[field];\n return value || (isRequestInput ? input[field] : null);\n };\n let finalRevalidate = undefined;\n const getNextField = (field)=>{\n var _init_next, _init_next1, _input_next;\n return typeof (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next[field]) !== 'undefined' ? init == null ? void 0 : (_init_next1 = init.next) == null ? void 0 : _init_next1[field] : isRequestInput ? (_input_next = input.next) == null ? void 0 : _input_next[field] : undefined;\n };\n // RequestInit doesn't keep extra fields e.g. next so it's\n // only available if init is used separate\n let currentFetchRevalidate = getNextField('revalidate');\n const tags = validateTags(getNextField('tags') || [], `fetch ${input.toString()}`);\n const revalidateStore = workUnitStore && (workUnitStore.type === 'cache' || workUnitStore.type === 'prerender' || workUnitStore.type === 'prerender-ppr' || workUnitStore.type === 'prerender-legacy') ? workUnitStore : undefined;\n if (revalidateStore) {\n if (Array.isArray(tags)) {\n // Collect tags onto parent caches or parent prerenders.\n const collectedTags = revalidateStore.tags ?? (revalidateStore.tags = []);\n for (const tag of tags){\n if (!collectedTags.includes(tag)) {\n collectedTags.push(tag);\n }\n }\n }\n }\n const implicitTags = !workUnitStore || workUnitStore.type === 'unstable-cache' ? [] : workUnitStore.implicitTags;\n // Inside unstable-cache we treat it the same as force-no-store on the\n // page.\n const pageFetchCacheMode = workUnitStore && workUnitStore.type === 'unstable-cache' ? 'force-no-store' : workStore.fetchCache;\n const isUsingNoStore = !!workStore.isUnstableNoStore;\n let currentFetchCacheConfig = getRequestMeta('cache');\n let cacheReason = '';\n let cacheWarning;\n if (typeof currentFetchCacheConfig === 'string' && typeof currentFetchRevalidate !== 'undefined') {\n // If the revalidate value conflicts with the cache value, we should warn the user and unset the conflicting values.\n const isConflictingRevalidate = // revalidate: 0 and cache: force-cache\n currentFetchCacheConfig === 'force-cache' && currentFetchRevalidate === 0 || // revalidate: >0 or revalidate: false and cache: no-store\n currentFetchCacheConfig === 'no-store' && (currentFetchRevalidate > 0 || currentFetchRevalidate === false);\n if (isConflictingRevalidate) {\n cacheWarning = `Specified \"cache: ${currentFetchCacheConfig}\" and \"revalidate: ${currentFetchRevalidate}\", only one should be specified.`;\n currentFetchCacheConfig = undefined;\n currentFetchRevalidate = undefined;\n }\n }\n const hasExplicitFetchCacheOptOut = // fetch config itself signals not to cache\n currentFetchCacheConfig === 'no-cache' || currentFetchCacheConfig === 'no-store' || // the fetch isn't explicitly caching and the segment level cache config signals not to cache\n // note: `pageFetchCacheMode` is also set by being in an unstable_cache context.\n pageFetchCacheMode === 'force-no-store' || pageFetchCacheMode === 'only-no-store';\n // If no explicit fetch cache mode is set, but dynamic = `force-dynamic` is set,\n // we shouldn't consider caching the fetch. This is because the `dynamic` cache\n // is considered a \"top-level\" cache mode, whereas something like `fetchCache` is more\n // fine-grained. Top-level modes are responsible for setting reasonable defaults for the\n // other configurations.\n const noFetchConfigAndForceDynamic = !pageFetchCacheMode && !currentFetchCacheConfig && !currentFetchRevalidate && workStore.forceDynamic;\n if (// force-cache was specified without a revalidate value. We set the revalidate value to false\n // which will signal the cache to not revalidate\n currentFetchCacheConfig === 'force-cache' && typeof currentFetchRevalidate === 'undefined') {\n currentFetchRevalidate = false;\n } else if (// if we are inside of \"use cache\"/\"unstable_cache\"\n // we shouldn't set the revalidate to 0 as it's overridden\n // by the cache context\n (workUnitStore == null ? void 0 : workUnitStore.type) !== 'cache' && (hasExplicitFetchCacheOptOut || noFetchConfigAndForceDynamic)) {\n currentFetchRevalidate = 0;\n }\n if (currentFetchCacheConfig === 'no-cache' || currentFetchCacheConfig === 'no-store') {\n cacheReason = `cache: ${currentFetchCacheConfig}`;\n }\n finalRevalidate = validateRevalidate(currentFetchRevalidate, workStore.route);\n const _headers = getRequestMeta('headers');\n const initHeaders = typeof (_headers == null ? void 0 : _headers.get) === 'function' ? _headers : new Headers(_headers || {});\n const hasUnCacheableHeader = initHeaders.get('authorization') || initHeaders.get('cookie');\n const isUnCacheableMethod = ![\n 'get',\n 'head'\n ].includes(((_getRequestMeta = getRequestMeta('method')) == null ? void 0 : _getRequestMeta.toLowerCase()) || 'get');\n /**\n * We automatically disable fetch caching under the following conditions:\n * - Fetch cache configs are not set. Specifically:\n * - A page fetch cache mode is not set (export const fetchCache=...)\n * - A fetch cache mode is not set in the fetch call (fetch(url, { cache: ... }))\n * or the fetch cache mode is set to 'default'\n * - A fetch revalidate value is not set in the fetch call (fetch(url, { revalidate: ... }))\n * - OR the fetch comes after a configuration that triggered dynamic rendering (e.g., reading cookies())\n * and the fetch was considered uncacheable (e.g., POST method or has authorization headers)\n */ const hasNoExplicitCacheConfig = // eslint-disable-next-line eqeqeq\n pageFetchCacheMode == undefined && // eslint-disable-next-line eqeqeq\n (currentFetchCacheConfig == undefined || // when considering whether to opt into the default \"no-cache\" fetch semantics,\n // a \"default\" cache config should be treated the same as no cache config\n currentFetchCacheConfig === 'default') && // eslint-disable-next-line eqeqeq\n currentFetchRevalidate == undefined;\n const autoNoCache = // this condition is hit for null/undefined\n // eslint-disable-next-line eqeqeq\n hasNoExplicitCacheConfig && // we disable automatic no caching behavior during build time SSG so that we can still\n // leverage the fetch cache between SSG workers\n !workStore.isPrerendering || (hasUnCacheableHeader || isUnCacheableMethod) && revalidateStore && revalidateStore.revalidate === 0;\n if (hasNoExplicitCacheConfig && workUnitStore !== undefined && workUnitStore.type === 'prerender') {\n // If we have no cache config, and we're in Dynamic I/O prerendering, it'll be a dynamic call.\n // We don't have to issue that dynamic call.\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, 'fetch()');\n }\n switch(pageFetchCacheMode){\n case 'force-no-store':\n {\n cacheReason = 'fetchCache = force-no-store';\n break;\n }\n case 'only-no-store':\n {\n if (currentFetchCacheConfig === 'force-cache' || typeof finalRevalidate !== 'undefined' && finalRevalidate > 0) {\n throw Object.defineProperty(new Error(`cache: 'force-cache' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-no-store'`), \"__NEXT_ERROR_CODE\", {\n value: \"E448\",\n enumerable: false,\n configurable: true\n });\n }\n cacheReason = 'fetchCache = only-no-store';\n break;\n }\n case 'only-cache':\n {\n if (currentFetchCacheConfig === 'no-store') {\n throw Object.defineProperty(new Error(`cache: 'no-store' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-cache'`), \"__NEXT_ERROR_CODE\", {\n value: \"E521\",\n enumerable: false,\n configurable: true\n });\n }\n break;\n }\n case 'force-cache':\n {\n if (typeof currentFetchRevalidate === 'undefined' || currentFetchRevalidate === 0) {\n cacheReason = 'fetchCache = force-cache';\n finalRevalidate = _constants1.INFINITE_CACHE;\n }\n break;\n }\n default:\n }\n if (typeof finalRevalidate === 'undefined') {\n if (pageFetchCacheMode === 'default-cache' && !isUsingNoStore) {\n finalRevalidate = _constants1.INFINITE_CACHE;\n cacheReason = 'fetchCache = default-cache';\n } else if (pageFetchCacheMode === 'default-no-store') {\n finalRevalidate = 0;\n cacheReason = 'fetchCache = default-no-store';\n } else if (isUsingNoStore) {\n finalRevalidate = 0;\n cacheReason = 'noStore call';\n } else if (autoNoCache) {\n finalRevalidate = 0;\n cacheReason = 'auto no cache';\n } else {\n // TODO: should we consider this case an invariant?\n cacheReason = 'auto cache';\n finalRevalidate = revalidateStore ? revalidateStore.revalidate : _constants1.INFINITE_CACHE;\n }\n } else if (!cacheReason) {\n cacheReason = `revalidate: ${finalRevalidate}`;\n }\n if (// when force static is configured we don't bail from\n // `revalidate: 0` values\n !(workStore.forceStatic && finalRevalidate === 0) && // we don't consider autoNoCache to switch to dynamic for ISR\n !autoNoCache && // If the revalidate value isn't currently set or the value is less\n // than the current revalidate value, we should update the revalidate\n // value.\n revalidateStore && finalRevalidate < revalidateStore.revalidate) {\n // If we were setting the revalidate value to 0, we should try to\n // postpone instead first.\n if (finalRevalidate === 0) {\n if (workUnitStore && workUnitStore.type === 'prerender') {\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, 'fetch()');\n } else {\n (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `revalidate: 0 fetch ${input} ${workStore.route}`);\n }\n }\n // We only want to set the revalidate store's revalidate time if it\n // was explicitly set for the fetch call, i.e. currentFetchRevalidate.\n if (revalidateStore && currentFetchRevalidate === finalRevalidate) {\n revalidateStore.revalidate = finalRevalidate;\n }\n }\n const isCacheableRevalidate = typeof finalRevalidate === 'number' && finalRevalidate > 0;\n let cacheKey;\n const { incrementalCache } = workStore;\n const useCacheOrRequestStore = (workUnitStore == null ? void 0 : workUnitStore.type) === 'request' || (workUnitStore == null ? void 0 : workUnitStore.type) === 'cache' ? workUnitStore : undefined;\n if (incrementalCache && (isCacheableRevalidate || (useCacheOrRequestStore == null ? void 0 : useCacheOrRequestStore.serverComponentsHmrCache))) {\n try {\n cacheKey = await incrementalCache.generateCacheKey(fetchUrl, isRequestInput ? input : init);\n } catch (err) {\n console.error(`Failed to generate cache key for`, input);\n }\n }\n const fetchIdx = workStore.nextFetchId ?? 1;\n workStore.nextFetchId = fetchIdx + 1;\n let handleUnlock = ()=>Promise.resolve();\n const doOriginalFetch = async (isStale, cacheReasonOverride)=>{\n const requestInputFields = [\n 'cache',\n 'credentials',\n 'headers',\n 'integrity',\n 'keepalive',\n 'method',\n 'mode',\n 'redirect',\n 'referrer',\n 'referrerPolicy',\n 'window',\n 'duplex',\n // don't pass through signal when revalidating\n ...isStale ? [] : [\n 'signal'\n ]\n ];\n if (isRequestInput) {\n const reqInput = input;\n const reqOptions = {\n body: reqInput._ogBody || reqInput.body\n };\n for (const field of requestInputFields){\n // @ts-expect-error custom fields\n reqOptions[field] = reqInput[field];\n }\n input = new Request(reqInput.url, reqOptions);\n } else if (init) {\n const { _ogBody, body, signal, ...otherInput } = init;\n init = {\n ...otherInput,\n body: _ogBody || body,\n signal: isStale ? undefined : signal\n };\n }\n // add metadata to init without editing the original\n const clonedInit = {\n ...init,\n next: {\n ...init == null ? void 0 : init.next,\n fetchType: 'origin',\n fetchIdx\n }\n };\n return originFetch(input, clonedInit).then(async (res)=>{\n if (!isStale && fetchStart) {\n trackFetchMetric(workStore, {\n start: fetchStart,\n url: fetchUrl,\n cacheReason: cacheReasonOverride || cacheReason,\n cacheStatus: finalRevalidate === 0 || cacheReasonOverride ? 'skip' : 'miss',\n cacheWarning,\n status: res.status,\n method: clonedInit.method || 'GET'\n });\n }\n if (res.status === 200 && incrementalCache && cacheKey && (isCacheableRevalidate || (useCacheOrRequestStore == null ? void 0 : useCacheOrRequestStore.serverComponentsHmrCache))) {\n const normalizedRevalidate = finalRevalidate >= _constants1.INFINITE_CACHE ? _constants1.CACHE_ONE_YEAR : finalRevalidate;\n if (workUnitStore && workUnitStore.type === 'prerender') {\n // We are prerendering at build time or revalidate time with dynamicIO so we need to\n // buffer the response so we can guarantee it can be read in a microtask\n const bodyBuffer = await res.arrayBuffer();\n const fetchedData = {\n headers: Object.fromEntries(res.headers.entries()),\n body: Buffer.from(bodyBuffer).toString('base64'),\n status: res.status,\n url: res.url\n };\n // We can skip checking the serverComponentsHmrCache because we aren't in\n // dev mode.\n await incrementalCache.set(cacheKey, {\n kind: _responsecache.CachedRouteKind.FETCH,\n data: fetchedData,\n revalidate: normalizedRevalidate\n }, {\n fetchCache: true,\n fetchUrl,\n fetchIdx,\n tags\n });\n await handleUnlock();\n // We return a new Response to the caller.\n return new Response(bodyBuffer, {\n headers: res.headers,\n status: res.status,\n statusText: res.statusText\n });\n } else {\n // We're cloning the response using this utility because there\n // exists a bug in the undici library around response cloning.\n // See the following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = (0, _cloneresponse.cloneResponse)(res);\n // We are dynamically rendering including dev mode. We want to return\n // the response to the caller as soon as possible because it might stream\n // over a very long time.\n cloned1.arrayBuffer().then(async (arrayBuffer)=>{\n var _useCacheOrRequestStore_serverComponentsHmrCache;\n const bodyBuffer = Buffer.from(arrayBuffer);\n const fetchedData = {\n headers: Object.fromEntries(cloned1.headers.entries()),\n body: bodyBuffer.toString('base64'),\n status: cloned1.status,\n url: cloned1.url\n };\n useCacheOrRequestStore == null ? void 0 : (_useCacheOrRequestStore_serverComponentsHmrCache = useCacheOrRequestStore.serverComponentsHmrCache) == null ? void 0 : _useCacheOrRequestStore_serverComponentsHmrCache.set(cacheKey, fetchedData);\n if (isCacheableRevalidate) {\n await incrementalCache.set(cacheKey, {\n kind: _responsecache.CachedRouteKind.FETCH,\n data: fetchedData,\n revalidate: normalizedRevalidate\n }, {\n fetchCache: true,\n fetchUrl,\n fetchIdx,\n tags\n });\n }\n }).catch((error)=>console.warn(`Failed to set fetch cache`, input, error)).finally(handleUnlock);\n return cloned2;\n }\n }\n // we had response that we determined shouldn't be cached so we return it\n // and don't cache it. This also needs to unlock the cache lock we acquired.\n await handleUnlock();\n return res;\n }).catch((error)=>{\n handleUnlock();\n throw error;\n });\n };\n let cacheReasonOverride;\n let isForegroundRevalidate = false;\n let isHmrRefreshCache = false;\n if (cacheKey && incrementalCache) {\n let cachedFetchData;\n if ((useCacheOrRequestStore == null ? void 0 : useCacheOrRequestStore.isHmrRefresh) && useCacheOrRequestStore.serverComponentsHmrCache) {\n cachedFetchData = useCacheOrRequestStore.serverComponentsHmrCache.get(cacheKey);\n isHmrRefreshCache = true;\n }\n if (isCacheableRevalidate && !cachedFetchData) {\n handleUnlock = await incrementalCache.lock(cacheKey);\n const entry = workStore.isOnDemandRevalidate ? null : await incrementalCache.get(cacheKey, {\n kind: _responsecache.IncrementalCacheKind.FETCH,\n revalidate: finalRevalidate,\n fetchUrl,\n fetchIdx,\n tags,\n softTags: implicitTags\n });\n if (hasNoExplicitCacheConfig) {\n // We sometimes use the cache to dedupe fetches that do not specify a cache configuration\n // In these cases we want to make sure we still exclude them from prerenders if dynamicIO is on\n // so we introduce an artificial Task boundary here.\n if (workUnitStore && workUnitStore.type === 'prerender') {\n await (0, _scheduler.waitAtLeastOneReactRenderTask)();\n }\n }\n if (entry) {\n await handleUnlock();\n } else {\n // in dev, incremental cache response will be null in case the browser adds `cache-control: no-cache` in the request headers\n cacheReasonOverride = 'cache-control: no-cache (hard refresh)';\n }\n if ((entry == null ? void 0 : entry.value) && entry.value.kind === _responsecache.CachedRouteKind.FETCH) {\n // when stale and is revalidating we wait for fresh data\n // so the revalidated entry has the updated data\n if (workStore.isRevalidate && entry.isStale) {\n isForegroundRevalidate = true;\n } else {\n if (entry.isStale) {\n workStore.pendingRevalidates ??= {};\n if (!workStore.pendingRevalidates[cacheKey]) {\n const pendingRevalidate = doOriginalFetch(true).then(async (response)=>({\n body: await response.arrayBuffer(),\n headers: response.headers,\n status: response.status,\n statusText: response.statusText\n })).finally(()=>{\n workStore.pendingRevalidates ??= {};\n delete workStore.pendingRevalidates[cacheKey || ''];\n });\n // Attach the empty catch here so we don't get a \"unhandled\n // promise rejection\" warning.\n pendingRevalidate.catch(console.error);\n workStore.pendingRevalidates[cacheKey] = pendingRevalidate;\n }\n }\n cachedFetchData = entry.value.data;\n }\n }\n }\n if (cachedFetchData) {\n if (fetchStart) {\n trackFetchMetric(workStore, {\n start: fetchStart,\n url: fetchUrl,\n cacheReason,\n cacheStatus: isHmrRefreshCache ? 'hmr' : 'hit',\n cacheWarning,\n status: cachedFetchData.status || 200,\n method: (init == null ? void 0 : init.method) || 'GET'\n });\n }\n const response = new Response(Buffer.from(cachedFetchData.body, 'base64'), {\n headers: cachedFetchData.headers,\n status: cachedFetchData.status\n });\n Object.defineProperty(response, 'url', {\n value: cachedFetchData.url\n });\n return response;\n }\n }\n if (workStore.isStaticGeneration && init && typeof init === 'object') {\n const { cache } = init;\n // Delete `cache` property as Cloudflare Workers will throw an error\n if (isEdgeRuntime) delete init.cache;\n if (cache === 'no-store') {\n // If enabled, we should bail out of static generation.\n if (workUnitStore && workUnitStore.type === 'prerender') {\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, 'fetch()');\n } else {\n (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `no-store fetch ${input} ${workStore.route}`);\n }\n }\n const hasNextConfig = 'next' in init;\n const { next = {} } = init;\n if (typeof next.revalidate === 'number' && revalidateStore && next.revalidate < revalidateStore.revalidate) {\n if (next.revalidate === 0) {\n // If enabled, we should bail out of static generation.\n if (workUnitStore && workUnitStore.type === 'prerender') {\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, 'fetch()');\n } else {\n (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `revalidate: 0 fetch ${input} ${workStore.route}`);\n }\n }\n if (!workStore.forceStatic || next.revalidate !== 0) {\n revalidateStore.revalidate = next.revalidate;\n }\n }\n if (hasNextConfig) delete init.next;\n }\n // if we are revalidating the whole page via time or on-demand and\n // the fetch cache entry is stale we should still de-dupe the\n // origin hit if it's a cache-able entry\n if (cacheKey && isForegroundRevalidate) {\n const pendingRevalidateKey = cacheKey;\n workStore.pendingRevalidates ??= {};\n let pendingRevalidate = workStore.pendingRevalidates[pendingRevalidateKey];\n if (pendingRevalidate) {\n const revalidatedResult = await pendingRevalidate;\n return new Response(revalidatedResult.body, {\n headers: revalidatedResult.headers,\n status: revalidatedResult.status,\n statusText: revalidatedResult.statusText\n });\n }\n // We used to just resolve the Response and clone it however for\n // static generation with dynamicIO we need the response to be able to\n // be resolved in a microtask and cloning the response will never have\n // a body that can resolve in a microtask in node (as observed through\n // experimentation) So instead we await the body and then when it is\n // available we construct manually cloned Response objects with the\n // body as an ArrayBuffer. This will be resolvable in a microtask\n // making it compatible with dynamicIO.\n const pendingResponse = doOriginalFetch(true, cacheReasonOverride)// We're cloning the response using this utility because there\n // exists a bug in the undici library around response cloning.\n // See the following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n .then(_cloneresponse.cloneResponse);\n pendingRevalidate = pendingResponse.then(async (responses)=>{\n const response = responses[0];\n return {\n body: await response.arrayBuffer(),\n headers: response.headers,\n status: response.status,\n statusText: response.statusText\n };\n }).finally(()=>{\n var _workStore_pendingRevalidates;\n // If the pending revalidate is not present in the store, then\n // we have nothing to delete.\n if (!((_workStore_pendingRevalidates = workStore.pendingRevalidates) == null ? void 0 : _workStore_pendingRevalidates[pendingRevalidateKey])) {\n return;\n }\n delete workStore.pendingRevalidates[pendingRevalidateKey];\n });\n // Attach the empty catch here so we don't get a \"unhandled promise\n // rejection\" warning\n pendingRevalidate.catch(()=>{});\n workStore.pendingRevalidates[pendingRevalidateKey] = pendingRevalidate;\n return pendingResponse.then((responses)=>responses[1]);\n } else {\n return doOriginalFetch(false, cacheReasonOverride);\n }\n });\n if (cacheSignal) {\n try {\n return await result;\n } finally{\n if (cacheSignal) {\n cacheSignal.endRead();\n }\n }\n }\n return result;\n };\n // Attach the necessary properties to the patched fetch function.\n // We don't use this to determine if the fetch function has been patched,\n // but for external consumers to determine if the fetch function has been\n // patched.\n patched.__nextPatched = true;\n patched.__nextGetStaticStore = ()=>workAsyncStorage;\n patched._nextOriginalFetch = originFetch;\n globalThis[NEXT_PATCH_SYMBOL] = true;\n return patched;\n}\nfunction patchFetch(options) {\n // If we've already patched fetch, we should not patch it again.\n if (isFetchPatched()) return;\n // Grab the original fetch function. We'll attach this so we can use it in\n // the patched fetch function.\n const original = (0, _dedupefetch.createDedupeFetch)(globalThis.fetch);\n // Set the global fetch to the patched fetch.\n globalThis.fetch = createPatchedFetcher(original, options);\n}\n\n//# sourceMappingURL=patch-fetch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"ENCODED_TAGS\", {\n enumerable: true,\n get: function() {\n return ENCODED_TAGS;\n }\n});\nconst ENCODED_TAGS = {\n // opening tags do not have the closing `>` since they can contain other attributes such as ``\n OPENING: {\n // \n HEAD: new Uint8Array([\n 60,\n 47,\n 104,\n 101,\n 97,\n 100,\n 62\n ]),\n // \n BODY: new Uint8Array([\n 60,\n 47,\n 98,\n 111,\n 100,\n 121,\n 62\n ]),\n // \n HTML: new Uint8Array([\n 60,\n 47,\n 104,\n 116,\n 109,\n 108,\n 62\n ]),\n // \n BODY_AND_HTML: new Uint8Array([\n 60,\n 47,\n 98,\n 111,\n 100,\n 121,\n 62,\n 60,\n 47,\n 104,\n 116,\n 109,\n 108,\n 62\n ])\n }\n};\n\n//# sourceMappingURL=encodedTags.js.map","import type { OutgoingHttpHeaders } from 'http'\n\n/**\n * Takes an object with a hostname property (like a parsed URL) and some\n * headers that may contain Host and returns the preferred hostname.\n * @param parsed An object containing a hostname property.\n * @param headers A dictionary with headers containing a `host`.\n */\nexport function getHostname(\n parsed: { hostname?: string | null },\n headers?: OutgoingHttpHeaders\n): string | undefined {\n // Get the hostname from the headers if it exists, otherwise use the parsed\n // hostname.\n let hostname: string\n if (headers?.host && !Array.isArray(headers.host)) {\n hostname = headers.host.toString().split(':', 1)[0]\n } else if (parsed.hostname) {\n hostname = parsed.hostname\n } else return\n\n return hostname.toLowerCase()\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n ACTION_SUFFIX: null,\n APP_DIR_ALIAS: null,\n CACHE_ONE_YEAR: null,\n DOT_NEXT_ALIAS: null,\n ESLINT_DEFAULT_DIRS: null,\n GSP_NO_RETURNED_VALUE: null,\n GSSP_COMPONENT_MEMBER_ERROR: null,\n GSSP_NO_RETURNED_VALUE: null,\n INFINITE_CACHE: null,\n INSTRUMENTATION_HOOK_FILENAME: null,\n MATCHED_PATH_HEADER: null,\n MIDDLEWARE_FILENAME: null,\n MIDDLEWARE_LOCATION_REGEXP: null,\n NEXT_BODY_SUFFIX: null,\n NEXT_CACHE_IMPLICIT_TAG_ID: null,\n NEXT_CACHE_REVALIDATED_TAGS_HEADER: null,\n NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: null,\n NEXT_CACHE_SOFT_TAG_MAX_LENGTH: null,\n NEXT_CACHE_TAGS_HEADER: null,\n NEXT_CACHE_TAG_MAX_ITEMS: null,\n NEXT_CACHE_TAG_MAX_LENGTH: null,\n NEXT_DATA_SUFFIX: null,\n NEXT_INTERCEPTION_MARKER_PREFIX: null,\n NEXT_META_SUFFIX: null,\n NEXT_QUERY_PARAM_PREFIX: null,\n NEXT_RESUME_HEADER: null,\n NON_STANDARD_NODE_ENV: null,\n PAGES_DIR_ALIAS: null,\n PRERENDER_REVALIDATE_HEADER: null,\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: null,\n PUBLIC_DIR_MIDDLEWARE_CONFLICT: null,\n ROOT_DIR_ALIAS: null,\n RSC_ACTION_CLIENT_WRAPPER_ALIAS: null,\n RSC_ACTION_ENCRYPTION_ALIAS: null,\n RSC_ACTION_PROXY_ALIAS: null,\n RSC_ACTION_VALIDATE_ALIAS: null,\n RSC_CACHE_WRAPPER_ALIAS: null,\n RSC_MOD_REF_PROXY_ALIAS: null,\n RSC_PREFETCH_SUFFIX: null,\n RSC_SEGMENTS_DIR_SUFFIX: null,\n RSC_SEGMENT_SUFFIX: null,\n RSC_SUFFIX: null,\n SERVER_PROPS_EXPORT_ERROR: null,\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT: null,\n SERVER_PROPS_SSG_CONFLICT: null,\n SERVER_RUNTIME: null,\n SSG_FALLBACK_EXPORT_ERROR: null,\n SSG_GET_INITIAL_PROPS_CONFLICT: null,\n STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: null,\n UNSTABLE_REVALIDATE_RENAME_ERROR: null,\n WEBPACK_LAYERS: null,\n WEBPACK_RESOURCE_QUERIES: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_SUFFIX: function() {\n return ACTION_SUFFIX;\n },\n APP_DIR_ALIAS: function() {\n return APP_DIR_ALIAS;\n },\n CACHE_ONE_YEAR: function() {\n return CACHE_ONE_YEAR;\n },\n DOT_NEXT_ALIAS: function() {\n return DOT_NEXT_ALIAS;\n },\n ESLINT_DEFAULT_DIRS: function() {\n return ESLINT_DEFAULT_DIRS;\n },\n GSP_NO_RETURNED_VALUE: function() {\n return GSP_NO_RETURNED_VALUE;\n },\n GSSP_COMPONENT_MEMBER_ERROR: function() {\n return GSSP_COMPONENT_MEMBER_ERROR;\n },\n GSSP_NO_RETURNED_VALUE: function() {\n return GSSP_NO_RETURNED_VALUE;\n },\n INFINITE_CACHE: function() {\n return INFINITE_CACHE;\n },\n INSTRUMENTATION_HOOK_FILENAME: function() {\n return INSTRUMENTATION_HOOK_FILENAME;\n },\n MATCHED_PATH_HEADER: function() {\n return MATCHED_PATH_HEADER;\n },\n MIDDLEWARE_FILENAME: function() {\n return MIDDLEWARE_FILENAME;\n },\n MIDDLEWARE_LOCATION_REGEXP: function() {\n return MIDDLEWARE_LOCATION_REGEXP;\n },\n NEXT_BODY_SUFFIX: function() {\n return NEXT_BODY_SUFFIX;\n },\n NEXT_CACHE_IMPLICIT_TAG_ID: function() {\n return NEXT_CACHE_IMPLICIT_TAG_ID;\n },\n NEXT_CACHE_REVALIDATED_TAGS_HEADER: function() {\n return NEXT_CACHE_REVALIDATED_TAGS_HEADER;\n },\n NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: function() {\n return NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER;\n },\n NEXT_CACHE_SOFT_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_SOFT_TAG_MAX_LENGTH;\n },\n NEXT_CACHE_TAGS_HEADER: function() {\n return NEXT_CACHE_TAGS_HEADER;\n },\n NEXT_CACHE_TAG_MAX_ITEMS: function() {\n return NEXT_CACHE_TAG_MAX_ITEMS;\n },\n NEXT_CACHE_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_TAG_MAX_LENGTH;\n },\n NEXT_DATA_SUFFIX: function() {\n return NEXT_DATA_SUFFIX;\n },\n NEXT_INTERCEPTION_MARKER_PREFIX: function() {\n return NEXT_INTERCEPTION_MARKER_PREFIX;\n },\n NEXT_META_SUFFIX: function() {\n return NEXT_META_SUFFIX;\n },\n NEXT_QUERY_PARAM_PREFIX: function() {\n return NEXT_QUERY_PARAM_PREFIX;\n },\n NEXT_RESUME_HEADER: function() {\n return NEXT_RESUME_HEADER;\n },\n NON_STANDARD_NODE_ENV: function() {\n return NON_STANDARD_NODE_ENV;\n },\n PAGES_DIR_ALIAS: function() {\n return PAGES_DIR_ALIAS;\n },\n PRERENDER_REVALIDATE_HEADER: function() {\n return PRERENDER_REVALIDATE_HEADER;\n },\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: function() {\n return PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER;\n },\n PUBLIC_DIR_MIDDLEWARE_CONFLICT: function() {\n return PUBLIC_DIR_MIDDLEWARE_CONFLICT;\n },\n ROOT_DIR_ALIAS: function() {\n return ROOT_DIR_ALIAS;\n },\n RSC_ACTION_CLIENT_WRAPPER_ALIAS: function() {\n return RSC_ACTION_CLIENT_WRAPPER_ALIAS;\n },\n RSC_ACTION_ENCRYPTION_ALIAS: function() {\n return RSC_ACTION_ENCRYPTION_ALIAS;\n },\n RSC_ACTION_PROXY_ALIAS: function() {\n return RSC_ACTION_PROXY_ALIAS;\n },\n RSC_ACTION_VALIDATE_ALIAS: function() {\n return RSC_ACTION_VALIDATE_ALIAS;\n },\n RSC_CACHE_WRAPPER_ALIAS: function() {\n return RSC_CACHE_WRAPPER_ALIAS;\n },\n RSC_MOD_REF_PROXY_ALIAS: function() {\n return RSC_MOD_REF_PROXY_ALIAS;\n },\n RSC_PREFETCH_SUFFIX: function() {\n return RSC_PREFETCH_SUFFIX;\n },\n RSC_SEGMENTS_DIR_SUFFIX: function() {\n return RSC_SEGMENTS_DIR_SUFFIX;\n },\n RSC_SEGMENT_SUFFIX: function() {\n return RSC_SEGMENT_SUFFIX;\n },\n RSC_SUFFIX: function() {\n return RSC_SUFFIX;\n },\n SERVER_PROPS_EXPORT_ERROR: function() {\n return SERVER_PROPS_EXPORT_ERROR;\n },\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT: function() {\n return SERVER_PROPS_GET_INIT_PROPS_CONFLICT;\n },\n SERVER_PROPS_SSG_CONFLICT: function() {\n return SERVER_PROPS_SSG_CONFLICT;\n },\n SERVER_RUNTIME: function() {\n return SERVER_RUNTIME;\n },\n SSG_FALLBACK_EXPORT_ERROR: function() {\n return SSG_FALLBACK_EXPORT_ERROR;\n },\n SSG_GET_INITIAL_PROPS_CONFLICT: function() {\n return SSG_GET_INITIAL_PROPS_CONFLICT;\n },\n STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: function() {\n return STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR;\n },\n UNSTABLE_REVALIDATE_RENAME_ERROR: function() {\n return UNSTABLE_REVALIDATE_RENAME_ERROR;\n },\n WEBPACK_LAYERS: function() {\n return WEBPACK_LAYERS;\n },\n WEBPACK_RESOURCE_QUERIES: function() {\n return WEBPACK_RESOURCE_QUERIES;\n }\n});\nconst NEXT_QUERY_PARAM_PREFIX = 'nxtP';\nconst NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI';\nconst MATCHED_PATH_HEADER = 'x-matched-path';\nconst PRERENDER_REVALIDATE_HEADER = 'x-prerender-revalidate';\nconst PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER = 'x-prerender-revalidate-if-generated';\nconst RSC_PREFETCH_SUFFIX = '.prefetch.rsc';\nconst RSC_SEGMENTS_DIR_SUFFIX = '.segments';\nconst RSC_SEGMENT_SUFFIX = '.segment.rsc';\nconst RSC_SUFFIX = '.rsc';\nconst ACTION_SUFFIX = '.action';\nconst NEXT_DATA_SUFFIX = '.json';\nconst NEXT_META_SUFFIX = '.meta';\nconst NEXT_BODY_SUFFIX = '.body';\nconst NEXT_CACHE_TAGS_HEADER = 'x-next-cache-tags';\nconst NEXT_CACHE_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags';\nconst NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = 'x-next-revalidate-tag-token';\nconst NEXT_RESUME_HEADER = 'next-resume';\nconst NEXT_CACHE_TAG_MAX_ITEMS = 128;\nconst NEXT_CACHE_TAG_MAX_LENGTH = 256;\nconst NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024;\nconst NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_';\nconst CACHE_ONE_YEAR = 31536000;\nconst INFINITE_CACHE = 0xfffffffe;\nconst MIDDLEWARE_FILENAME = 'middleware';\nconst MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`;\nconst INSTRUMENTATION_HOOK_FILENAME = 'instrumentation';\nconst PAGES_DIR_ALIAS = 'private-next-pages';\nconst DOT_NEXT_ALIAS = 'private-dot-next';\nconst ROOT_DIR_ALIAS = 'private-next-root-dir';\nconst APP_DIR_ALIAS = 'private-next-app-dir';\nconst RSC_MOD_REF_PROXY_ALIAS = 'private-next-rsc-mod-ref-proxy';\nconst RSC_ACTION_VALIDATE_ALIAS = 'private-next-rsc-action-validate';\nconst RSC_ACTION_PROXY_ALIAS = 'private-next-rsc-server-reference';\nconst RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper';\nconst RSC_ACTION_ENCRYPTION_ALIAS = 'private-next-rsc-action-encryption';\nconst RSC_ACTION_CLIENT_WRAPPER_ALIAS = 'private-next-rsc-action-client-wrapper';\nconst PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`;\nconst SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`;\nconst SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`;\nconst SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`;\nconst STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`;\nconst SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`;\nconst GSP_NO_RETURNED_VALUE = 'Your `getStaticProps` function did not return an object. Did you forget to add a `return`?';\nconst GSSP_NO_RETURNED_VALUE = 'Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?';\nconst UNSTABLE_REVALIDATE_RENAME_ERROR = 'The `unstable_revalidate` property is available for general use.\\n' + 'Please use `revalidate` instead.';\nconst GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`;\nconst NON_STANDARD_NODE_ENV = `You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`;\nconst SSG_FALLBACK_EXPORT_ERROR = `Pages with \\`fallback\\` enabled in \\`getStaticPaths\\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`;\nconst ESLINT_DEFAULT_DIRS = [\n 'app',\n 'pages',\n 'components',\n 'lib',\n 'src'\n];\nconst SERVER_RUNTIME = {\n edge: 'edge',\n experimentalEdge: 'experimental-edge',\n nodejs: 'nodejs'\n};\n/**\n * The names of the webpack layers. These layers are the primitives for the\n * webpack chunks.\n */ const WEBPACK_LAYERS_NAMES = {\n /**\n * The layer for the shared code between the client and server bundles.\n */ shared: 'shared',\n /**\n * The layer for server-only runtime and picking up `react-server` export conditions.\n * Including app router RSC pages and app router custom routes and metadata routes.\n */ reactServerComponents: 'rsc',\n /**\n * Server Side Rendering layer for app (ssr).\n */ serverSideRendering: 'ssr',\n /**\n * The browser client bundle layer for actions.\n */ actionBrowser: 'action-browser',\n /**\n * The Node.js bundle layer for the API routes.\n */ apiNode: 'api-node',\n /**\n * The Edge Lite bundle layer for the API routes.\n */ apiEdge: 'api-edge',\n /**\n * The layer for the middleware code.\n */ middleware: 'middleware',\n /**\n * The layer for the instrumentation hooks.\n */ instrument: 'instrument',\n /**\n * The layer for assets on the edge.\n */ edgeAsset: 'edge-asset',\n /**\n * The browser client bundle layer for App directory.\n */ appPagesBrowser: 'app-pages-browser',\n /**\n * The browser client bundle layer for Pages directory.\n */ pagesDirBrowser: 'pages-dir-browser',\n /**\n * The Edge Lite bundle layer for Pages directory.\n */ pagesDirEdge: 'pages-dir-edge',\n /**\n * The Node.js bundle layer for Pages directory.\n */ pagesDirNode: 'pages-dir-node'\n};\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n builtinReact: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ],\n serverOnly: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n neutralTarget: [\n // pages api\n WEBPACK_LAYERS_NAMES.apiNode,\n WEBPACK_LAYERS_NAMES.apiEdge\n ],\n clientOnly: [\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser\n ],\n bundled: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n appPages: [\n // app router pages and layouts\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ]\n }\n};\nconst WEBPACK_RESOURCE_QUERIES = {\n edgeSSREntry: '__next_edge_ssr_entry__',\n metadata: '__next_metadata__',\n metadataRoute: '__next_metadata_route__',\n metadataImageMeta: '__next_metadata_image_meta__'\n};\n\n//# sourceMappingURL=constants.js.map","class UrlNode {\n placeholder: boolean = true\n children: Map = new Map()\n slugName: string | null = null\n restSlugName: string | null = null\n optionalRestSlugName: string | null = null\n\n insert(urlPath: string): void {\n this._insert(urlPath.split('/').filter(Boolean), [], false)\n }\n\n smoosh(): string[] {\n return this._smoosh()\n }\n\n private _smoosh(prefix: string = '/'): string[] {\n const childrenPaths = [...this.children.keys()].sort()\n if (this.slugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[]'), 1)\n }\n if (this.restSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[...]'), 1)\n }\n if (this.optionalRestSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[[...]]'), 1)\n }\n\n const routes = childrenPaths\n .map((c) => this.children.get(c)!._smoosh(`${prefix}${c}/`))\n .reduce((prev, curr) => [...prev, ...curr], [])\n\n if (this.slugName !== null) {\n routes.push(\n ...this.children.get('[]')!._smoosh(`${prefix}[${this.slugName}]/`)\n )\n }\n\n if (!this.placeholder) {\n const r = prefix === '/' ? '/' : prefix.slice(0, -1)\n if (this.optionalRestSlugName != null) {\n throw new Error(\n `You cannot define a route with the same specificity as a optional catch-all route (\"${r}\" and \"${r}[[...${this.optionalRestSlugName}]]\").`\n )\n }\n\n routes.unshift(r)\n }\n\n if (this.restSlugName !== null) {\n routes.push(\n ...this.children\n .get('[...]')!\n ._smoosh(`${prefix}[...${this.restSlugName}]/`)\n )\n }\n\n if (this.optionalRestSlugName !== null) {\n routes.push(\n ...this.children\n .get('[[...]]')!\n ._smoosh(`${prefix}[[...${this.optionalRestSlugName}]]/`)\n )\n }\n\n return routes\n }\n\n private _insert(\n urlPaths: string[],\n slugNames: string[],\n isCatchAll: boolean\n ): void {\n if (urlPaths.length === 0) {\n this.placeholder = false\n return\n }\n\n if (isCatchAll) {\n throw new Error(`Catch-all must be the last part of the URL.`)\n }\n\n // The next segment in the urlPaths list\n let nextSegment = urlPaths[0]\n\n // Check if the segment matches `[something]`\n if (nextSegment.startsWith('[') && nextSegment.endsWith(']')) {\n // Strip `[` and `]`, leaving only `something`\n let segmentName = nextSegment.slice(1, -1)\n\n let isOptional = false\n if (segmentName.startsWith('[') && segmentName.endsWith(']')) {\n // Strip optional `[` and `]`, leaving only `something`\n segmentName = segmentName.slice(1, -1)\n isOptional = true\n }\n\n if (segmentName.startsWith('…')) {\n throw new Error(\n `Detected a three-dot character ('…') at ('${segmentName}'). Did you mean ('...')?`\n )\n }\n\n if (segmentName.startsWith('...')) {\n // Strip `...`, leaving only `something`\n segmentName = segmentName.substring(3)\n isCatchAll = true\n }\n\n if (segmentName.startsWith('[') || segmentName.endsWith(']')) {\n throw new Error(\n `Segment names may not start or end with extra brackets ('${segmentName}').`\n )\n }\n\n if (segmentName.startsWith('.')) {\n throw new Error(\n `Segment names may not start with erroneous periods ('${segmentName}').`\n )\n }\n\n function handleSlug(previousSlug: string | null, nextSlug: string) {\n if (previousSlug !== null) {\n // If the specific segment already has a slug but the slug is not `something`\n // This prevents collisions like:\n // pages/[post]/index.js\n // pages/[id]/index.js\n // Because currently multiple dynamic params on the same segment level are not supported\n if (previousSlug !== nextSlug) {\n // TODO: This error seems to be confusing for users, needs an error link, the description can be based on above comment.\n throw new Error(\n `You cannot use different slug names for the same dynamic path ('${previousSlug}' !== '${nextSlug}').`\n )\n }\n }\n\n slugNames.forEach((slug) => {\n if (slug === nextSlug) {\n throw new Error(\n `You cannot have the same slug name \"${nextSlug}\" repeat within a single dynamic path`\n )\n }\n\n if (slug.replace(/\\W/g, '') === nextSegment.replace(/\\W/g, '')) {\n throw new Error(\n `You cannot have the slug names \"${slug}\" and \"${nextSlug}\" differ only by non-word symbols within a single dynamic path`\n )\n }\n })\n\n slugNames.push(nextSlug)\n }\n\n if (isCatchAll) {\n if (isOptional) {\n if (this.restSlugName != null) {\n throw new Error(\n `You cannot use both an required and optional catch-all route at the same level (\"[...${this.restSlugName}]\" and \"${urlPaths[0]}\" ).`\n )\n }\n\n handleSlug(this.optionalRestSlugName, segmentName)\n // slugName is kept as it can only be one particular slugName\n this.optionalRestSlugName = segmentName\n // nextSegment is overwritten to [[...]] so that it can later be sorted specifically\n nextSegment = '[[...]]'\n } else {\n if (this.optionalRestSlugName != null) {\n throw new Error(\n `You cannot use both an optional and required catch-all route at the same level (\"[[...${this.optionalRestSlugName}]]\" and \"${urlPaths[0]}\").`\n )\n }\n\n handleSlug(this.restSlugName, segmentName)\n // slugName is kept as it can only be one particular slugName\n this.restSlugName = segmentName\n // nextSegment is overwritten to [...] so that it can later be sorted specifically\n nextSegment = '[...]'\n }\n } else {\n if (isOptional) {\n throw new Error(\n `Optional route parameters are not yet supported (\"${urlPaths[0]}\").`\n )\n }\n handleSlug(this.slugName, segmentName)\n // slugName is kept as it can only be one particular slugName\n this.slugName = segmentName\n // nextSegment is overwritten to [] so that it can later be sorted specifically\n nextSegment = '[]'\n }\n }\n\n // If this UrlNode doesn't have the nextSegment yet we create a new child UrlNode\n if (!this.children.has(nextSegment)) {\n this.children.set(nextSegment, new UrlNode())\n }\n\n this.children\n .get(nextSegment)!\n ._insert(urlPaths.slice(1), slugNames, isCatchAll)\n }\n}\n\nexport function getSortedRoutes(\n normalizedPages: ReadonlyArray\n): string[] {\n // First the UrlNode is created, and every UrlNode can have only 1 dynamic segment\n // Eg you can't have pages/[post]/abc.js and pages/[hello]/something-else.js\n // Only 1 dynamic segment per nesting level\n\n // So in the case that is test/integration/dynamic-routing it'll be this:\n // pages/[post]/comments.js\n // pages/blog/[post]/comment/[id].js\n // Both are fine because `pages/[post]` and `pages/blog` are on the same level\n // So in this case `UrlNode` created here has `this.slugName === 'post'`\n // And since your PR passed through `slugName` as an array basically it'd including it in too many possibilities\n // Instead what has to be passed through is the upwards path's dynamic names\n const root = new UrlNode()\n\n // Here the `root` gets injected multiple paths, and insert will break them up into sublevels\n normalizedPages.forEach((pagePath) => root.insert(pagePath))\n // Smoosh will then sort those sublevels up to the point where you get the correct route definition priority\n return root.smoosh()\n}\n\nexport function getSortedRouteObjects(\n objects: T[],\n getter: (obj: T) => string\n): T[] {\n // We're assuming here that all the pathnames are unique, that way we can\n // sort the list and use the index as the key.\n const indexes: Record = {}\n const pathnames: string[] = []\n for (let i = 0; i < objects.length; i++) {\n const pathname = getter(objects[i])\n indexes[pathname] = i\n pathnames[i] = pathname\n }\n\n // Sort the pathnames.\n const sorted = getSortedRoutes(pathnames)\n\n // Map the sorted pathnames back to the original objects using the new sorted\n // index.\n return sorted.map((pathname) => objects[indexes[pathname]])\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"RouteKind\", {\n enumerable: true,\n get: function() {\n return RouteKind;\n }\n});\nvar RouteKind = /*#__PURE__*/ function(RouteKind) {\n /**\n * `PAGES` represents all the React pages that are under `pages/`.\n */ RouteKind[\"PAGES\"] = \"PAGES\";\n /**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */ RouteKind[\"PAGES_API\"] = \"PAGES_API\";\n /**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */ RouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n /**\n * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the\n * filename of `route.{j,t}s{,x}`.\n */ RouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n /**\n * `IMAGE` represents all the images that are generated by `next/image`.\n */ RouteKind[\"IMAGE\"] = \"IMAGE\";\n return RouteKind;\n}({});\n\n//# sourceMappingURL=route-kind.js.map","/**\n * The functions provided by this module are used to communicate certain properties\n * about the currently running code so that Next.js can make decisions on how to handle\n * the current execution in different rendering modes such as pre-rendering, resuming, and SSR.\n *\n * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.\n * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts\n * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of\n * Dynamic indications.\n *\n * The first is simply an intention to be dynamic. unstable_noStore is an example of this where\n * the currently executing code simply declares that the current scope is dynamic but if you use it\n * inside unstable_cache it can still be cached. This type of indication can be removed if we ever\n * make the default dynamic to begin with because the only way you would ever be static is inside\n * a cache scope which this indication does not affect.\n *\n * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic\n * because it means that it is inappropriate to cache this at all. using a dynamic data source inside\n * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should\n * read that data outside the cache and pass it in as an argument to the cached function.\n */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n Postpone: null,\n abortAndThrowOnSynchronousRequestDataAccess: null,\n abortOnSynchronousPlatformIOAccess: null,\n accessedDynamicData: null,\n annotateDynamicAccess: null,\n consumeDynamicAccess: null,\n createDynamicTrackingState: null,\n createDynamicValidationState: null,\n createHangingInputAbortSignal: null,\n createPostponedAbortSignal: null,\n formatDynamicAPIAccesses: null,\n getFirstDynamicReason: null,\n isDynamicPostpone: null,\n isPrerenderInterruptedError: null,\n markCurrentScopeAsDynamic: null,\n postponeWithTracking: null,\n throwIfDisallowedDynamic: null,\n throwToInterruptStaticGeneration: null,\n trackAllowedDynamicAccess: null,\n trackDynamicDataInDynamicRender: null,\n trackFallbackParamAccessed: null,\n trackSynchronousPlatformIOAccessInDev: null,\n trackSynchronousRequestDataAccessInDev: null,\n useDynamicRouteParams: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n Postpone: function() {\n return Postpone;\n },\n abortAndThrowOnSynchronousRequestDataAccess: function() {\n return abortAndThrowOnSynchronousRequestDataAccess;\n },\n abortOnSynchronousPlatformIOAccess: function() {\n return abortOnSynchronousPlatformIOAccess;\n },\n accessedDynamicData: function() {\n return accessedDynamicData;\n },\n annotateDynamicAccess: function() {\n return annotateDynamicAccess;\n },\n consumeDynamicAccess: function() {\n return consumeDynamicAccess;\n },\n createDynamicTrackingState: function() {\n return createDynamicTrackingState;\n },\n createDynamicValidationState: function() {\n return createDynamicValidationState;\n },\n createHangingInputAbortSignal: function() {\n return createHangingInputAbortSignal;\n },\n createPostponedAbortSignal: function() {\n return createPostponedAbortSignal;\n },\n formatDynamicAPIAccesses: function() {\n return formatDynamicAPIAccesses;\n },\n getFirstDynamicReason: function() {\n return getFirstDynamicReason;\n },\n isDynamicPostpone: function() {\n return isDynamicPostpone;\n },\n isPrerenderInterruptedError: function() {\n return isPrerenderInterruptedError;\n },\n markCurrentScopeAsDynamic: function() {\n return markCurrentScopeAsDynamic;\n },\n postponeWithTracking: function() {\n return postponeWithTracking;\n },\n throwIfDisallowedDynamic: function() {\n return throwIfDisallowedDynamic;\n },\n throwToInterruptStaticGeneration: function() {\n return throwToInterruptStaticGeneration;\n },\n trackAllowedDynamicAccess: function() {\n return trackAllowedDynamicAccess;\n },\n trackDynamicDataInDynamicRender: function() {\n return trackDynamicDataInDynamicRender;\n },\n trackFallbackParamAccessed: function() {\n return trackFallbackParamAccessed;\n },\n trackSynchronousPlatformIOAccessInDev: function() {\n return trackSynchronousPlatformIOAccessInDev;\n },\n trackSynchronousRequestDataAccessInDev: function() {\n return trackSynchronousRequestDataAccessInDev;\n },\n useDynamicRouteParams: function() {\n return useDynamicRouteParams;\n }\n});\nconst _react = /*#__PURE__*/ _interop_require_default(require(\"react\"));\nconst _hooksservercontext = require(\"../../client/components/hooks-server-context\");\nconst _staticgenerationbailout = require(\"../../client/components/static-generation-bailout\");\nconst _workunitasyncstorageexternal = require(\"./work-unit-async-storage.external\");\nconst _workasyncstorageexternal = require(\"../app-render/work-async-storage.external\");\nconst _dynamicrenderingutils = require(\"../dynamic-rendering-utils\");\nconst _metadataconstants = require(\"../../lib/metadata/metadata-constants\");\nconst _scheduler = require(\"../../lib/scheduler\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst hasPostpone = typeof _react.default.unstable_postpone === 'function';\nfunction createDynamicTrackingState(isDebugDynamicAccesses) {\n return {\n isDebugDynamicAccesses,\n dynamicAccesses: [],\n syncDynamicExpression: undefined,\n syncDynamicErrorWithStack: null\n };\n}\nfunction createDynamicValidationState() {\n return {\n hasSuspendedDynamic: false,\n hasDynamicMetadata: false,\n hasDynamicViewport: false,\n hasSyncDynamicErrors: false,\n dynamicErrors: []\n };\n}\nfunction getFirstDynamicReason(trackingState) {\n var _trackingState_dynamicAccesses_;\n return (_trackingState_dynamicAccesses_ = trackingState.dynamicAccesses[0]) == null ? void 0 : _trackingState_dynamicAccesses_.expression;\n}\nfunction markCurrentScopeAsDynamic(store, workUnitStore, expression) {\n if (workUnitStore) {\n if (workUnitStore.type === 'cache' || workUnitStore.type === 'unstable-cache') {\n // inside cache scopes marking a scope as dynamic has no effect because the outer cache scope\n // creates a cache boundary. This is subtly different from reading a dynamic data source which is\n // forbidden inside a cache scope.\n return;\n }\n }\n // If we're forcing dynamic rendering or we're forcing static rendering, we\n // don't need to do anything here because the entire page is already dynamic\n // or it's static and it should not throw or postpone here.\n if (store.forceDynamic || store.forceStatic) return;\n if (store.dynamicShouldError) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${store.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E553\",\n enumerable: false,\n configurable: true\n });\n }\n if (workUnitStore) {\n if (workUnitStore.type === 'prerender-ppr') {\n postponeWithTracking(store.route, expression, workUnitStore.dynamicTracking);\n } else if (workUnitStore.type === 'prerender-legacy') {\n workUnitStore.revalidate = 0;\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E550\",\n enumerable: false,\n configurable: true\n });\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n } else if (process.env.NODE_ENV === 'development' && workUnitStore && workUnitStore.type === 'request') {\n workUnitStore.usedDynamic = true;\n }\n }\n}\nfunction trackFallbackParamAccessed(store, expression) {\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (!prerenderStore || prerenderStore.type !== 'prerender-ppr') return;\n postponeWithTracking(store.route, expression, prerenderStore.dynamicTracking);\n}\nfunction throwToInterruptStaticGeneration(expression, store, prerenderStore) {\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E558\",\n enumerable: false,\n configurable: true\n });\n prerenderStore.revalidate = 0;\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n}\nfunction trackDynamicDataInDynamicRender(_store, workUnitStore) {\n if (workUnitStore) {\n if (workUnitStore.type === 'cache' || workUnitStore.type === 'unstable-cache') {\n // inside cache scopes marking a scope as dynamic has no effect because the outer cache scope\n // creates a cache boundary. This is subtly different from reading a dynamic data source which is\n // forbidden inside a cache scope.\n return;\n }\n if (workUnitStore.type === 'prerender' || workUnitStore.type === 'prerender-legacy') {\n workUnitStore.revalidate = 0;\n }\n if (process.env.NODE_ENV === 'development' && workUnitStore.type === 'request') {\n workUnitStore.usedDynamic = true;\n }\n }\n}\n// Despite it's name we don't actually abort unless we have a controller to call abort on\n// There are times when we let a prerender run long to discover caches where we want the semantics\n// of tracking dynamic access without terminating the prerender early\nfunction abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore) {\n const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`;\n const error = createPrerenderInterruptedError(reason);\n prerenderStore.controller.abort(error);\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n}\nfunction abortOnSynchronousPlatformIOAccess(route, expression, errorWithStack, prerenderStore) {\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicExpression = expression;\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n }\n }\n return abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n}\nfunction trackSynchronousPlatformIOAccessInDev(requestStore) {\n // We don't actually have a controller to abort but we do the semantic equivalent by\n // advancing the request store out of prerender mode\n requestStore.prerenderPhase = false;\n}\nfunction abortAndThrowOnSynchronousRequestDataAccess(route, expression, errorWithStack, prerenderStore) {\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicExpression = expression;\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n if (prerenderStore.validating === true) {\n // We always log Request Access in dev at the point of calling the function\n // So we mark the dynamic validation as not requiring it to be printed\n dynamicTracking.syncDynamicLogged = true;\n }\n }\n }\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n throw createPrerenderInterruptedError(`Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`);\n}\nconst trackSynchronousRequestDataAccessInDev = trackSynchronousPlatformIOAccessInDev;\nfunction Postpone({ reason, route }) {\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n const dynamicTracking = prerenderStore && prerenderStore.type === 'prerender-ppr' ? prerenderStore.dynamicTracking : null;\n postponeWithTracking(route, reason, dynamicTracking);\n}\nfunction postponeWithTracking(route, expression, dynamicTracking) {\n assertPostpone();\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n _react.default.unstable_postpone(createPostponeReason(route, expression));\n}\nfunction createPostponeReason(route, expression) {\n return `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` + `React throws this special object to indicate where. It should not be caught by ` + `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`;\n}\nfunction isDynamicPostpone(err) {\n if (typeof err === 'object' && err !== null && typeof err.message === 'string') {\n return isDynamicPostponeReason(err.message);\n }\n return false;\n}\nfunction isDynamicPostponeReason(reason) {\n return reason.includes('needs to bail out of prerendering at this point because it used') && reason.includes('Learn more: https://nextjs.org/docs/messages/ppr-caught-error');\n}\nif (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {\n throw Object.defineProperty(new Error('Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E296\",\n enumerable: false,\n configurable: true\n });\n}\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED';\nfunction createPrerenderInterruptedError(message) {\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = NEXT_PRERENDER_INTERRUPTED;\n return error;\n}\nfunction isPrerenderInterruptedError(error) {\n return typeof error === 'object' && error !== null && error.digest === NEXT_PRERENDER_INTERRUPTED && 'name' in error && 'message' in error && error instanceof Error;\n}\nfunction accessedDynamicData(dynamicAccesses) {\n return dynamicAccesses.length > 0;\n}\nfunction consumeDynamicAccess(serverDynamic, clientDynamic) {\n // We mutate because we only call this once we are no longer writing\n // to the dynamicTrackingState and it's more efficient than creating a new\n // array.\n serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses);\n return serverDynamic.dynamicAccesses;\n}\nfunction formatDynamicAPIAccesses(dynamicAccesses) {\n return dynamicAccesses.filter((access)=>typeof access.stack === 'string' && access.stack.length > 0).map(({ expression, stack })=>{\n stack = stack.split('\\n')// Remove the \"Error: \" prefix from the first line of the stack trace as\n // well as the first 4 lines of the stack trace which is the distance\n // from the user code and the `new Error().stack` call.\n .slice(4).filter((line)=>{\n // Exclude Next.js internals from the stack trace.\n if (line.includes('node_modules/next/')) {\n return false;\n }\n // Exclude anonymous functions from the stack trace.\n if (line.includes(' ()')) {\n return false;\n }\n // Exclude Node.js internals from the stack trace.\n if (line.includes(' (node:')) {\n return false;\n }\n return true;\n }).join('\\n');\n return `Dynamic API Usage Debug - ${expression}:\\n${stack}`;\n });\n}\nfunction assertPostpone() {\n if (!hasPostpone) {\n throw Object.defineProperty(new Error(`Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`), \"__NEXT_ERROR_CODE\", {\n value: \"E224\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction createPostponedAbortSignal(reason) {\n assertPostpone();\n const controller = new AbortController();\n // We get our hands on a postpone instance by calling postpone and catching the throw\n try {\n _react.default.unstable_postpone(reason);\n } catch (x) {\n controller.abort(x);\n }\n return controller.signal;\n}\nfunction createHangingInputAbortSignal(workUnitStore) {\n const controller = new AbortController();\n if (workUnitStore.cacheSignal) {\n // If we have a cacheSignal it means we're in a prospective render. If the input\n // we're waiting on is coming from another cache, we do want to wait for it so that\n // we can resolve this cache entry too.\n workUnitStore.cacheSignal.inputReady().then(()=>{\n controller.abort();\n });\n } else {\n // Otherwise we're in the final render and we should already have all our caches\n // filled. We might still be waiting on some microtasks so we wait one tick before\n // giving up. When we give up, we still want to render the content of this cache\n // as deeply as we can so that we can suspend as deeply as possible in the tree\n // or not at all if we don't end up waiting for the input.\n (0, _scheduler.scheduleOnNextTick)(()=>controller.abort());\n }\n return controller.signal;\n}\nfunction annotateDynamicAccess(expression, prerenderStore) {\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n}\nfunction useDynamicRouteParams(expression) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (workStore && workStore.isStaticGeneration && workStore.fallbackRouteParams && workStore.fallbackRouteParams.size > 0) {\n // There are fallback route params, we should track these as dynamic\n // accesses.\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n // We're prerendering with dynamicIO or PPR or both\n if (workUnitStore.type === 'prerender') {\n // We are in a prerender with dynamicIO semantics\n // We are going to hang here and never resolve. This will cause the currently\n // rendering component to effectively be a dynamic hole\n _react.default.use((0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, expression));\n } else if (workUnitStore.type === 'prerender-ppr') {\n // We're prerendering with PPR\n postponeWithTracking(workStore.route, expression, workUnitStore.dynamicTracking);\n } else if (workUnitStore.type === 'prerender-legacy') {\n throwToInterruptStaticGeneration(expression, workStore, workUnitStore);\n }\n }\n }\n}\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(\\)/;\nconst hasMetadataRegex = new RegExp(`\\\\n\\\\s+at ${_metadataconstants.METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasViewportRegex = new RegExp(`\\\\n\\\\s+at ${_metadataconstants.VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${_metadataconstants.OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`);\nfunction trackAllowedDynamicAccess(route, componentStack, dynamicValidation, serverDynamic, clientDynamic) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return;\n } else if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.hasDynamicMetadata = true;\n return;\n } else if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.hasDynamicViewport = true;\n return;\n } else if (hasSuspenseRegex.test(componentStack)) {\n dynamicValidation.hasSuspendedDynamic = true;\n return;\n } else if (serverDynamic.syncDynamicErrorWithStack || clientDynamic.syncDynamicErrorWithStack) {\n dynamicValidation.hasSyncDynamicErrors = true;\n return;\n } else {\n const message = `Route \"${route}\": A component accessed data, headers, params, searchParams, or a short-lived cache without a Suspense boundary nor a \"use cache\" above it. We don't have the exact line number added to error messages yet but you can see which component in the stack below. See more info: https://nextjs.org/docs/messages/next-prerender-missing-suspense`;\n const error = createErrorWithComponentStack(message, componentStack);\n dynamicValidation.dynamicErrors.push(error);\n return;\n }\n}\nfunction createErrorWithComponentStack(message, componentStack) {\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.stack = 'Error: ' + message + componentStack;\n return error;\n}\nfunction throwIfDisallowedDynamic(route, dynamicValidation, serverDynamic, clientDynamic) {\n let syncError;\n let syncExpression;\n let syncLogged;\n if (serverDynamic.syncDynamicErrorWithStack) {\n syncError = serverDynamic.syncDynamicErrorWithStack;\n syncExpression = serverDynamic.syncDynamicExpression;\n syncLogged = serverDynamic.syncDynamicLogged === true;\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n syncError = clientDynamic.syncDynamicErrorWithStack;\n syncExpression = clientDynamic.syncDynamicExpression;\n syncLogged = clientDynamic.syncDynamicLogged === true;\n } else {\n syncError = null;\n syncExpression = undefined;\n syncLogged = false;\n }\n if (dynamicValidation.hasSyncDynamicErrors && syncError) {\n if (!syncLogged) {\n // In dev we already log errors about sync dynamic access. But during builds we need to ensure\n // the offending sync error is logged before we exit the build\n console.error(syncError);\n }\n // The actual error should have been logged when the sync access ocurred\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n const dynamicErrors = dynamicValidation.dynamicErrors;\n if (dynamicErrors.length) {\n for(let i = 0; i < dynamicErrors.length; i++){\n console.error(dynamicErrors[i]);\n }\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n if (!dynamicValidation.hasSuspendedDynamic) {\n if (dynamicValidation.hasDynamicMetadata) {\n if (syncError) {\n console.error(syncError);\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route \"${route}\" has a \\`generateMetadata\\` that could not finish rendering before ${syncExpression} was used. Follow the instructions in the error for this expression to resolve.`), \"__NEXT_ERROR_CODE\", {\n value: \"E608\",\n enumerable: false,\n configurable: true\n });\n }\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route \"${route}\" has a \\`generateMetadata\\` that depends on Request data (\\`cookies()\\`, etc...) or external data (\\`fetch(...)\\`, etc...) but the rest of the route was static or only used cached data (\\`\"use cache\"\\`). If you expected this route to be prerenderable update your \\`generateMetadata\\` to not use Request data and only use cached external data. Otherwise, add \\`await connection()\\` somewhere within this route to indicate explicitly it should not be prerendered.`), \"__NEXT_ERROR_CODE\", {\n value: \"E534\",\n enumerable: false,\n configurable: true\n });\n } else if (dynamicValidation.hasDynamicViewport) {\n if (syncError) {\n console.error(syncError);\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route \"${route}\" has a \\`generateViewport\\` that could not finish rendering before ${syncExpression} was used. Follow the instructions in the error for this expression to resolve.`), \"__NEXT_ERROR_CODE\", {\n value: \"E573\",\n enumerable: false,\n configurable: true\n });\n }\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route \"${route}\" has a \\`generateViewport\\` that depends on Request data (\\`cookies()\\`, etc...) or external data (\\`fetch(...)\\`, etc...) but the rest of the route was static or only used cached data (\\`\"use cache\"\\`). If you expected this route to be prerenderable update your \\`generateViewport\\` to not use Request data and only use cached external data. Otherwise, add \\`await connection()\\` somewhere within this route to indicate explicitly it should not be prerendered.`), \"__NEXT_ERROR_CODE\", {\n value: \"E590\",\n enumerable: false,\n configurable: true\n });\n }\n }\n}\n\n//# sourceMappingURL=dynamic-rendering.js.map","export { getSortedRoutes, getSortedRouteObjects } from './sorted-routes'\nexport { isDynamicRoute } from './is-dynamic'\n","import type { NextPathnameInfo } from './get-next-pathname-info'\nimport { removeTrailingSlash } from './remove-trailing-slash'\nimport { addPathPrefix } from './add-path-prefix'\nimport { addPathSuffix } from './add-path-suffix'\nimport { addLocale } from './add-locale'\n\ninterface ExtendedInfo extends NextPathnameInfo {\n defaultLocale?: string\n ignorePrefix?: boolean\n}\n\nexport function formatNextPathnameInfo(info: ExtendedInfo) {\n let pathname = addLocale(\n info.pathname,\n info.locale,\n info.buildId ? undefined : info.defaultLocale,\n info.ignorePrefix\n )\n\n if (info.buildId || !info.trailingSlash) {\n pathname = removeTrailingSlash(pathname)\n }\n\n if (info.buildId) {\n pathname = addPathSuffix(\n addPathPrefix(pathname, `/_next/data/${info.buildId}`),\n info.pathname === '/' ? 'index.json' : '.json'\n )\n }\n\n pathname = addPathPrefix(pathname, info.basePath)\n return !info.buildId && info.trailingSlash\n ? !pathname.endsWith('/')\n ? addPathSuffix(pathname, '/')\n : pathname\n : removeTrailingSlash(pathname)\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return RenderResult;\n }\n});\nconst _nodewebstreamshelper = require(\"./stream-utils/node-web-streams-helper\");\nconst _pipereadable = require(\"./pipe-readable\");\nclass RenderResult {\n /**\n * Creates a new RenderResult instance from a static response.\n *\n * @param value the static response value\n * @returns a new RenderResult instance\n */ static fromStatic(value) {\n return new RenderResult(value, {\n metadata: {}\n });\n }\n constructor(response, { contentType, waitUntil, metadata }){\n this.response = response;\n this.contentType = contentType;\n this.metadata = metadata;\n this.waitUntil = waitUntil;\n }\n assignMetadata(metadata) {\n Object.assign(this.metadata, metadata);\n }\n /**\n * Returns true if the response is null. It can be null if the response was\n * not found or was already sent.\n */ get isNull() {\n return this.response === null;\n }\n /**\n * Returns false if the response is a string. It can be a string if the page\n * was prerendered. If it's not, then it was generated dynamically.\n */ get isDynamic() {\n return typeof this.response !== 'string';\n }\n toUnchunkedBuffer(stream = false) {\n if (this.response === null) {\n throw Object.defineProperty(new Error('Invariant: null responses cannot be unchunked'), \"__NEXT_ERROR_CODE\", {\n value: \"E274\",\n enumerable: false,\n configurable: true\n });\n }\n if (typeof this.response !== 'string') {\n if (!stream) {\n throw Object.defineProperty(new Error('Invariant: dynamic responses cannot be unchunked. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E81\",\n enumerable: false,\n configurable: true\n });\n }\n return (0, _nodewebstreamshelper.streamToBuffer)(this.readable);\n }\n return Buffer.from(this.response);\n }\n toUnchunkedString(stream = false) {\n if (this.response === null) {\n throw Object.defineProperty(new Error('Invariant: null responses cannot be unchunked'), \"__NEXT_ERROR_CODE\", {\n value: \"E274\",\n enumerable: false,\n configurable: true\n });\n }\n if (typeof this.response !== 'string') {\n if (!stream) {\n throw Object.defineProperty(new Error('Invariant: dynamic responses cannot be unchunked. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E81\",\n enumerable: false,\n configurable: true\n });\n }\n return (0, _nodewebstreamshelper.streamToString)(this.readable);\n }\n return this.response;\n }\n /**\n * Returns the response if it is a stream, or throws an error if it is a\n * string.\n */ get readable() {\n if (this.response === null) {\n throw Object.defineProperty(new Error('Invariant: null responses cannot be streamed'), \"__NEXT_ERROR_CODE\", {\n value: \"E14\",\n enumerable: false,\n configurable: true\n });\n }\n if (typeof this.response === 'string') {\n throw Object.defineProperty(new Error('Invariant: static responses cannot be streamed'), \"__NEXT_ERROR_CODE\", {\n value: \"E151\",\n enumerable: false,\n configurable: true\n });\n }\n if (Buffer.isBuffer(this.response)) {\n return (0, _nodewebstreamshelper.streamFromBuffer)(this.response);\n }\n // If the response is an array of streams, then chain them together.\n if (Array.isArray(this.response)) {\n return (0, _nodewebstreamshelper.chainStreams)(...this.response);\n }\n return this.response;\n }\n /**\n * Chains a new stream to the response. This will convert the response to an\n * array of streams if it is not already one and will add the new stream to\n * the end. When this response is piped, all of the streams will be piped\n * one after the other.\n *\n * @param readable The new stream to chain\n */ chain(readable) {\n if (this.response === null) {\n throw Object.defineProperty(new Error('Invariant: response is null. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E258\",\n enumerable: false,\n configurable: true\n });\n }\n // If the response is not an array of streams already, make it one.\n let responses;\n if (typeof this.response === 'string') {\n responses = [\n (0, _nodewebstreamshelper.streamFromString)(this.response)\n ];\n } else if (Array.isArray(this.response)) {\n responses = this.response;\n } else if (Buffer.isBuffer(this.response)) {\n responses = [\n (0, _nodewebstreamshelper.streamFromBuffer)(this.response)\n ];\n } else {\n responses = [\n this.response\n ];\n }\n // Add the new stream to the array.\n responses.push(readable);\n // Update the response.\n this.response = responses;\n }\n /**\n * Pipes the response to a writable stream. This will close/cancel the\n * writable stream if an error is encountered. If this doesn't throw, then\n * the writable stream will be closed or aborted.\n *\n * @param writable Writable stream to pipe the response to\n */ async pipeTo(writable) {\n try {\n await this.readable.pipeTo(writable, {\n // We want to close the writable stream ourselves so that we can wait\n // for the waitUntil promise to resolve before closing it. If an error\n // is encountered, we'll abort the writable stream if we swallowed the\n // error.\n preventClose: true\n });\n // If there is a waitUntil promise, wait for it to resolve before\n // closing the writable stream.\n if (this.waitUntil) await this.waitUntil;\n // Close the writable stream.\n await writable.close();\n } catch (err) {\n // If this is an abort error, we should abort the writable stream (as we\n // took ownership of it when we started piping). We don't need to re-throw\n // because we handled the error.\n if ((0, _pipereadable.isAbortError)(err)) {\n // Abort the writable stream if an error is encountered.\n await writable.abort(err);\n return;\n }\n // We're not aborting the writer here as when this method throws it's not\n // clear as to how so the caller should assume it's their responsibility\n // to clean up the writer.\n throw err;\n }\n }\n /**\n * Pipes the response to a node response. This will close/cancel the node\n * response if an error is encountered.\n *\n * @param res\n */ async pipeToNodeResponse(res) {\n await (0, _pipereadable.pipeToNodeResponse)(this.readable, res, this.waitUntil);\n }\n}\n\n//# sourceMappingURL=render-result.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return ResponseCache;\n }\n});\n0 && __export(require(\"./types\"));\nconst _batcher = require(\"../../lib/batcher\");\nconst _scheduler = require(\"../../lib/scheduler\");\nconst _utils = require(\"./utils\");\n_export_star(require(\"./types\"), exports);\nfunction _export_star(from, to) {\n Object.keys(from).forEach(function(k) {\n if (k !== \"default\" && !Object.prototype.hasOwnProperty.call(to, k)) {\n Object.defineProperty(to, k, {\n enumerable: true,\n get: function() {\n return from[k];\n }\n });\n }\n });\n return from;\n}\nclass ResponseCache {\n constructor(minimalMode){\n this.batcher = _batcher.Batcher.create({\n // Ensure on-demand revalidate doesn't block normal requests, it should be\n // safe to run an on-demand revalidate for the same key as a normal request.\n cacheKeyFn: ({ key, isOnDemandRevalidate })=>`${key}-${isOnDemandRevalidate ? '1' : '0'}`,\n // We wait to do any async work until after we've added our promise to\n // `pendingResponses` to ensure that any any other calls will reuse the\n // same promise until we've fully finished our work.\n schedulerFn: _scheduler.scheduleOnNextTick\n });\n // this is a hack to avoid Webpack knowing this is equal to this.minimalMode\n // because we replace this.minimalMode to true in production bundles.\n const minimalModeKey = 'minimalMode';\n this[minimalModeKey] = minimalMode;\n }\n async get(key, responseGenerator, context) {\n // If there is no key for the cache, we can't possibly look this up in the\n // cache so just return the result of the response generator.\n if (!key) {\n return responseGenerator({\n hasResolved: false,\n previousCacheEntry: null\n });\n }\n const { incrementalCache, isOnDemandRevalidate = false, isFallback = false, isRoutePPREnabled = false } = context;\n const response = await this.batcher.batch({\n key,\n isOnDemandRevalidate\n }, async (cacheKey, resolve)=>{\n var _this_previousCacheItem;\n // We keep the previous cache entry around to leverage when the\n // incremental cache is disabled in minimal mode.\n if (this.minimalMode && ((_this_previousCacheItem = this.previousCacheItem) == null ? void 0 : _this_previousCacheItem.key) === cacheKey && this.previousCacheItem.expiresAt > Date.now()) {\n return this.previousCacheItem.entry;\n }\n // Coerce the kindHint into a given kind for the incremental cache.\n const kind = (0, _utils.routeKindToIncrementalCacheKind)(context.routeKind);\n let resolved = false;\n let cachedResponse = null;\n try {\n cachedResponse = !this.minimalMode ? await incrementalCache.get(key, {\n kind,\n isRoutePPREnabled: context.isRoutePPREnabled,\n isFallback\n }) : null;\n if (cachedResponse && !isOnDemandRevalidate) {\n resolve(cachedResponse);\n resolved = true;\n if (!cachedResponse.isStale || context.isPrefetch) {\n // The cached value is still valid, so we don't need\n // to update it yet.\n return null;\n }\n }\n const cacheEntry = await responseGenerator({\n hasResolved: resolved,\n previousCacheEntry: cachedResponse,\n isRevalidating: true\n });\n // If the cache entry couldn't be generated, we don't want to cache\n // the result.\n if (!cacheEntry) {\n // Unset the previous cache item if it was set.\n if (this.minimalMode) this.previousCacheItem = undefined;\n return null;\n }\n const resolveValue = await (0, _utils.fromResponseCacheEntry)({\n ...cacheEntry,\n isMiss: !cachedResponse\n });\n if (!resolveValue) {\n // Unset the previous cache item if it was set.\n if (this.minimalMode) this.previousCacheItem = undefined;\n return null;\n }\n // For on-demand revalidate wait to resolve until cache is set.\n // Otherwise resolve now.\n if (!isOnDemandRevalidate && !resolved) {\n resolve(resolveValue);\n resolved = true;\n }\n // We want to persist the result only if it has a cache control value\n // defined.\n if (resolveValue.cacheControl) {\n if (this.minimalMode) {\n this.previousCacheItem = {\n key: cacheKey,\n entry: resolveValue,\n expiresAt: Date.now() + 1000\n };\n } else {\n await incrementalCache.set(key, resolveValue.value, {\n cacheControl: resolveValue.cacheControl,\n isRoutePPREnabled,\n isFallback\n });\n }\n }\n return resolveValue;\n } catch (err) {\n // When a path is erroring we automatically re-set the existing cache\n // with new revalidate and expire times to prevent non-stop retrying.\n if (cachedResponse == null ? void 0 : cachedResponse.cacheControl) {\n const newRevalidate = Math.min(Math.max(cachedResponse.cacheControl.revalidate || 3, 3), 30);\n const newExpire = cachedResponse.cacheControl.expire === undefined ? undefined : Math.max(newRevalidate + 3, cachedResponse.cacheControl.expire);\n await incrementalCache.set(key, cachedResponse.value, {\n cacheControl: {\n revalidate: newRevalidate,\n expire: newExpire\n },\n isRoutePPREnabled,\n isFallback\n });\n }\n // While revalidating in the background we can't reject as we already\n // resolved the cache entry so log the error here.\n if (resolved) {\n console.error(err);\n return null;\n }\n // We haven't resolved yet, so let's throw to indicate an error.\n throw err;\n }\n });\n return (0, _utils.toResponseCacheEntry)(response);\n }\n}\n\n//# sourceMappingURL=index.js.map"],"names":["addLocale","path","locale","defaultLocale","ignorePrefix","lower","toLowerCase","pathHasPrefix","addPathPrefix","removePathPrefix","prefix","withoutPrefix","slice","length","startsWith","StaticGenBailoutError","isStaticGenBailoutError","NEXT_STATIC_GEN_BAILOUT","Error","code","error","addPathSuffix","suffix","pathname","query","hash","parsePath","detectDomainLocale","domainItems","hostname","detectedLocale","item","domainHostname","domain","split","locales","some","DynamicServerError","isDynamicServerError","DYNAMIC_ERROR_CODE","constructor","description","digest","err","normalizeLocalePath","cache","WeakMap","lowercasedLocales","get","map","set","segments","segment","index","indexOf","isDynamicRoute","TEST_ROUTE","TEST_STRICT_ROUTE","route","strict","isInterceptionRouteAppPath","extractInterceptionRouteInformation","interceptedRoute","test","getNextPathnameInfo","options","result","basePath","i18n","trailingSlash","nextConfig","info","endsWith","pathnameNoDataPrefix","paths","replace","buildId","join","parseData","i18nProvider","analyze","getHostname","parsed","headers","host","Array","isArray","toString","getSortedRouteObjects","getSortedRoutes","UrlNode","insert","urlPath","_insert","filter","Boolean","smoosh","_smoosh","childrenPaths","children","keys","sort","slugName","splice","restSlugName","optionalRestSlugName","routes","c","reduce","prev","curr","push","placeholder","r","unshift","urlPaths","slugNames","isCatchAll","nextSegment","segmentName","isOptional","substring","handleSlug","previousSlug","nextSlug","forEach","slug","has","Map","normalizedPages","root","pagePath","objects","getter","indexes","pathnames","i","formatNextPathnameInfo","undefined","removeTrailingSlash"],"sourceRoot":"","ignoreList":[0,1,3,4,5,7,8,9,10,11,13,14,15,17,18,19,20,21,22,23,26,27,28,29,32,34,35,36,37,38,39,40,41,42,43,44,45,47,49,50,53,54]}