@faststore/core 3.100.1 → 3.100.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +48 -48
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/config.json +3 -3
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/edge-server-production/0.pack +0 -0
- package/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/prerender-manifest.js +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/react-loadable-manifest.json +8 -8
- package/.next/routes-manifest.json +1 -1
- package/.next/server/chunks/948.js +2 -2
- package/.next/server/functions-config-manifest.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +2 -2
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/api/fs/password-protection/unlock.js +1 -0
- package/.next/server/pages/api/preview.js +1 -1
- package/.next/server/pages/en-US/404.html +2 -2
- package/.next/server/pages/en-US/500.html +2 -2
- package/.next/server/pages/en-US/checkout.html +2 -2
- package/.next/server/pages/en-US/login.html +2 -2
- package/.next/server/pages/en-US/{fs-auth-login.html → password-protection.html} +2 -2
- package/.next/server/pages/en-US/s.html +2 -2
- package/.next/server/pages/en-US.html +2 -2
- package/.next/server/pages-manifest.json +1 -1
- package/.next/server/src/middleware.js +33 -33
- package/.next/server/src/middleware.js.map +1 -1
- package/.next/static/0OKcQtIHO8diwBsczup15/_buildManifest.js +1 -0
- package/.next/static/chunks/{2927.23bae2c79f0ac0f3.js → 2927.5a79877943a6bf7c.js} +1 -1
- package/.next/static/chunks/3802.904f302bf009f795.js +1 -0
- package/.next/static/chunks/9380.217554eeecd9b37f.js +1 -0
- package/.next/static/chunks/{UIToast.de15325248043ce5.js → UIToast.19a8664c01a00d3a.js} +1 -1
- package/.next/static/chunks/main-a2d1cfe626f2fef1.js +1 -0
- package/.next/static/chunks/pages/{[...slug]-dc8a395a43b081f1.js → [...slug]-cf9e3bf4febd21c3.js} +1 -1
- package/.next/static/chunks/pages/password-protection-8dece47ea041d372.js +1 -0
- package/.next/static/chunks/webpack-25c67512e1907efd.js +1 -0
- package/.next/static/css/033b9397a0c0cf71.css +1 -0
- package/.next/trace +156 -156
- package/.turbo/turbo-build.log +17 -17
- package/.turbo/turbo-test.log +8 -8
- package/CHANGELOG.md +12 -0
- package/package.json +3 -3
- package/src/middleware.ts +14 -13
- package/src/pages/api/fs/{auth/login.ts → password-protection/unlock.ts} +4 -4
- package/src/pages/{fs-auth-login → password-protection}/index.tsx +10 -7
- package/src/pages/{fs-auth-login/fs-auth-login.module.scss → password-protection/password-protection.module.scss} +1 -1
- package/src/server/content/service.ts +33 -2
- package/src/server/{authentication-service.ts → password-protection-service.ts} +22 -18
- package/src/utils/{loginResponse.ts → unlockResponse.ts} +7 -2
- package/test/server/{authentication-service.test.ts → password-protection-service.test.ts} +71 -59
- package/.next/server/pages/api/fs/auth/login.js +0 -1
- package/.next/static/Lk9fl1r-H5eeVzeqYkA-Y/_buildManifest.js +0 -1
- package/.next/static/chunks/349.b3b38e1e9f719dda.js +0 -1
- package/.next/static/chunks/3802.5e8b0b689eacc0f8.js +0 -1
- package/.next/static/chunks/main-083a618181bb5fbb.js +0 -1
- package/.next/static/chunks/pages/fs-auth-login-ba2d1b3ef0ef0415.js +0 -1
- package/.next/static/chunks/webpack-ff85816fb58111fa.js +0 -1
- package/.next/static/css/3bd4edd425711792.css +0 -1
- /package/.next/server/pages/api/fs/{auth/login.js.nft.json → password-protection/unlock.js.nft.json} +0 -0
- /package/.next/server/pages/{fs-auth-login.js.nft.json → password-protection.js.nft.json} +0 -0
- /package/.next/static/{Lk9fl1r-H5eeVzeqYkA-Y → 0OKcQtIHO8diwBsczup15}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src/middleware.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,eAAeA;IACX,IAAI,cAAcC,cAAcC,SAASC,0BAArC,IAAmED,SAASC,0BAAT,CAAoCC,QAA3G,EAAqH;QACjH,IAAI;YACA,MAAMF,SAASC,0BAAT,CAAoCC,QAApC;QACT,EAAC,OAAOC,KAAK;YACVA,IAAIC,OAAJ,GAAe,yDAAwDD,IAAIC,OAAQ,EAAnF;YACA,MAAMD;QACT;IACJ;AACJ;AACD,IAAIE,iCAAiC;AAC9B,SAASC;IACZ,IAAI,CAACD,gCAAgC;QACjCA,iCAAiCP;IACpC;IACD,OAAOO;AACV;AACD,SAASE,iCAAiCC,MAA1C;IACI;IACA,OAAQ,8CAA6CA,OAAO;wEAChE,CADI;AAEH;AACD,SAASC,qBAAqBC,UAA9B;IACI,MAAMC,QAAQ,IAAIC,MAAM,YAAa,GAAE;QACnCC,KAAKC,IAAF,EAAQC,IAAR;YACC,IAAIA,SAAS,QAAQ;gBACjB,OAAO;YACV;YACD,MAAM,IAAIC,MAAMT,iCAAiCG;QACpD;QACDO;YACI,MAAM,IAAID,MAAMT,iCAAiCG;QACpD;QACDQ,OAAOC,OAAF,EAAWC,KAAX,EAAkBC,IAAlB;YACD,IAAI,OAAOA,IAAI,CAAC,EAAZ,KAAmB,YAAY;gBAC/B,OAAOA,IAAI,CAAC,EAAL,CAAQV;YAClB;YACD,MAAM,IAAIK,MAAMT,iCAAiCG;QACpD;IAfkC;IAiBvC,OAAO,IAAIE,MAAM,IAAI;QACjBC,KAAK,IAAIF;IADQ;AAGxB;AACD,SAASW;IACL;IACA,IAAIC,YAAYC,qBAAMA,CAACD,OAAvB,EAAgC;QAC5B;QACAA,QAAQE,GAAR,GAAcD,qBAAMA,CAACD,OAAP,CAAeE,GAA7B;QACAD,qBAAMA,CAACD,OAAP,GAAiBA;IACpB,EACD;IACA;IACAG,OAAOC,cAAP,CAAsB5B,YAAY,wBAAwB;QACtD6B,OAAOnB;QACPoB,YAAY;QACZC,cAAc;IAHwC,IAK1D;IACA,KAAKxB;AACR;AACDgB;;;AC7DO,MAAMS,2BAA2Bf;IACpCgB,YAAY,EAAEC,IAAAA,EAAH,CAAU;QACjB,MAAO,mBAAkBA,KAAK;;;;;;;EAOtC,CAPQ;IAQH;AAVyC;AAYvC,MAAMC,yBAAyBlB;IAClCgB,aAAa;QACT,MAAO;;EAEf,CAFQ;IAGH;AALuC;AAOrC,MAAMG,uBAAuBnB;IAChCgB,aAAa;QACT,MAAO;;EAEf,CAFQ;IAGH;AALqC;;;ACnB1C;;;;;;;;CAQA,GAAW,SAASI,4BAA4BC,WAArC;IACP,MAAMC,UAAU,IAAIC;IACpB,KAAK,IAAI,CAACC,KAAKZ,MAAf,IAAyBF,OAAOe,OAAP,CAAeJ,aAAa;QACjD,MAAMK,SAASC,MAAMC,OAAN,CAAchB,SAASA,QAAQ;YAC1CA;SADJ;QAGA,KAAK,IAAIiB,KAAKH,OAAO;YACjB,IAAI,OAAOG,MAAM,aAAa;YAC9B,IAAI,OAAOA,MAAM,UAAU;gBACvBA,IAAIA,EAAEC,QAAF;YACP;YACDR,QAAQS,MAAR,CAAeP,KAAKK;QACvB;IACJ;IACD,OAAOP;AACV;AACD;;;;;;;;;AASA,GAAU,SAASU,mBAAmBC,aAA5B;IACN,IAAIC,iBAAiB,EAArB;IACA,IAAIC,MAAM;IACV,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,SAASC;QACL,MAAMN,MAAMF,cAAcS,MAApB,IAA8B,KAAKC,IAAL,CAAUV,cAAcW,MAAd,CAAqBT,MAAM;YACrEA,OAAO;QACV;QACD,OAAOA,MAAMF,cAAcS,MAA3B;IACH;IACD,SAASG;QACLR,KAAKJ,cAAcW,MAAd,CAAqBT;QAC1B,OAAOE,OAAO,OAAOA,OAAO,OAAOA,OAAO;IAC7C;IACD,MAAMF,MAAMF,cAAcS,MAA1B,CAAiC;QAC7BN,QAAQD;QACRK,wBAAwB;QACxB,MAAMC,iBAAiB;YACnBJ,KAAKJ,cAAcW,MAAd,CAAqBT;YAC1B,IAAIE,OAAO,KAAK;gBACZ;gBACAC,YAAYH;gBACZA,OAAO;gBACPM;gBACAF,YAAYJ;gBACZ,MAAMA,MAAMF,cAAcS,MAApB,IAA8BG,iBAAiB;oBACjDV,OAAO;gBACV,EACD;gBACA,IAAIA,MAAMF,cAAcS,MAApB,IAA8BT,cAAcW,MAAd,CAAqBT,SAAS,KAAK;oBACjE;oBACAK,wBAAwB,MACxB;oBACAL,MAAMI;oBACNL,eAAeY,IAAf,CAAoBb,cAAcc,SAAd,CAAwBX,OAAOE;oBACnDF,QAAQD;gBACX,OAAM;oBACH;oBACA;oBACAA,MAAMG,YAAY;gBACrB;YACJ,OAAM;gBACHH,OAAO;YACV;QACJ;QACD,IAAI,CAACK,yBAAyBL,OAAOF,cAAcS,MAAnD,EAA2D;YACvDR,eAAeY,IAAf,CAAoBb,cAAcc,SAAd,CAAwBX,OAAOH,cAAcS,MAA7C;QACvB;IACJ;IACD,OAAOR;AACV;AACD;;;;;;CAMA,GAAW,SAASc,0BAA0B1B,OAAnC;IACP,MAAMD,cAAc;IACpB,MAAM4B,UAAU,EAAhB;IACA,IAAI3B,SAAS;QACT,KAAK,MAAM,CAACE,KAAKZ,MAAjB,IAA2BU,QAAQG,OAAR,GAAkB;YACzC,IAAID,IAAI0B,WAAJ,OAAsB,cAAc;gBACpC;gBACA;gBACA;gBACAD,QAAQH,IAAR,IAAgBd,mBAAmBpB;gBACnCS,WAAW,CAACG,IAAZ,GAAmByB,QAAQP,MAAR,KAAmB,IAAIO,OAAO,CAAC,EAA/B,GAAoCA;YAC1D,OAAM;gBACH5B,WAAW,CAACG,IAAZ,GAAmBZ;YACtB;QACJ;IACJ;IACD,OAAOS;AACV;AACD;;CAEA,GAAW,SAAS8B,YAAYC,GAArB;IACP,IAAI;QACA,OAAOC,OAAO,IAAIC,IAAID,OAAOD;IAChC,EAAC,OAAOG,OAAO;QACZ,MAAM,IAAIvD,MAAO,qBAAoBqD,OAAOD,KAAK,6FAA3C,EAA0I;YAC5II,OAAOD;QADqI;IAGnJ;AACJ;;;AC1HD;AACA,MAAME,iBAAiBC,OAAO;AAC9B,MAAMC,oBAAoBD,OAAO;AAC1B,MAAME,kBAAkBF,OAAO,aAA/B;AACP,MAAMG;IACF;IACA7C,YAAY8C,QAAD,CAAU;QACjB,KAAKF,gBAAL,GAAwB,EAAxB;QACA,KAAKD,kBAAL,GAA0B;IAC7B;IACDI,YAAYC,QAAD,EAAW;QAClB,IAAI,CAAC,KAAKP,eAAV,EAA2B;YACvB,KAAKA,eAAL,GAAuBQ,QAAQC,OAAR,CAAgBF;QAC1C;IACJ;IACDG,yBAAyB;QACrB,KAAKR,kBAAL,GAA0B;IAC7B;IACDS,UAAUC,OAAD,EAAU;QACf,KAAKT,gBAAL,CAAsBd,IAAtB,CAA2BuB;IAC9B;AAhBY;AAkBV,MAAMC,uBAAuBT;IAChC7C,YAAYuD,MAAD,CAAQ;QACf,MAAMA,OAAOC,OAAb;QACA,KAAKC,UAAL,GAAkBF,OAAOtD,IAAzB;IACH;IACD;;;;EAIJ,GAAiB,IAAPuD,UAAU;QACZ,MAAM,IAAIzD,kBAAkBA,CAAC;YACzBE,MAAM,KAAKwD,UAAAA;QADc;IAGhC;IACD;;;;EAIJ,GAAMV,cAAc;QACZ,MAAM,IAAIhD,kBAAkBA,CAAC;YACzBE,MAAM,KAAKwD,UAAAA;QADc;IAGhC;AAtB0C;;;ACtBxC,SAASC,mBAAmBC,WAA5B,EAAyCC,QAAzC,EAAmDC,cAAnD;IACH,IAAI,CAACF,aAAa;IAClB,IAAIE,gBAAgB;QAChBA,iBAAiBA,eAAe3B,WAAf;IACpB;IACD,KAAK,MAAM4B,QAAQH,YAAY;QAC3B,IAAII,cAAcC,eAClB;QACA,MAAMC,iBAAiB,CAACF,eAAeD,KAAKI,MAArB,KAAgC,OAAO,KAAK,IAAIH,aAAaI,KAAb,CAAmB,IAAnB,CAAwB,EAAxB,CAA2BjC,WAA3B;QACvE,IAAI0B,aAAaK,kBAAkBJ,mBAAmBC,KAAKM,aAAL,CAAmBlC,WAAnB,MAAqC,EAAC8B,gBAAgBF,KAAKO,OAAtB,KAAkC,OAAO,KAAK,IAAIL,cAAcM,IAAd,CAAoBC,CAAAA,SAASA,OAAOrC,WAAP,OAAyB2B,eAAtD,GAAwE;YACjN,OAAOC;QACV;IACJ;AACJ;;;ACbD;;;;;;CAMA,GAAW,SAASU,oBAAoBC,KAA7B;IACP,OAAOA,MAAMC,OAAN,CAAc,OAAO,OAAO;AACtC;;;ACRD;;;;CAIA,GAAW,SAASC,UAAUC,IAAnB;IACP,MAAMC,YAAYD,KAAKE,OAAL,CAAa;IAC/B,MAAMC,aAAaH,KAAKE,OAAL,CAAa;IAChC,MAAME,WAAWD,aAAa,CAAC,KAAMF,CAAAA,YAAY,KAAKE,aAAaF,SAAAA;IACnE,IAAIG,YAAYH,YAAY,CAAC,GAAG;QAC5B,OAAO;YACHI,UAAUL,KAAK7C,SAAL,CAAe,GAAGiD,WAAWD,aAAaF;YACpDK,OAAOF,WAAWJ,KAAK7C,SAAL,CAAegD,YAAYF,YAAY,CAAC,IAAIA,YAAYM,aAAa;YACvFC,MAAMP,YAAY,CAAC,IAAID,KAAKS,KAAL,CAAWR,aAAa;QAH5C;IAKV;IACD,OAAO;QACHI,UAAUL;QACVM,OAAO;QACPE,MAAM;IAHH;AAKV;;;ACpBD;AACA;;;CAGA,GAAW,SAASE,cAAcV,IAAvB,EAA6BW,MAA7B;IACP,IAAI,CAACX,KAAKY,UAAL,CAAgB,QAAQ,CAACD,QAAQ;QAClC,OAAOX;IACV;IACD,MAAM,EAAEK,QAAF,EAAYC,KAAZ,EAAmBE,IAAAA,EAAnB,GAA4BT,SAASA,CAACC;IAC5C,OAAO,KAAKW,SAASN,WAAWC,QAAQE;AAC3C;;;ACVD;AACA;;;;CAIA,GAAW,SAASK,cAAcb,IAAvB,EAA6Bc,MAA7B;IACP,IAAI,CAACd,KAAKY,UAAL,CAAgB,QAAQ,CAACE,QAAQ;QAClC,OAAOd;IACV;IACD,MAAM,EAAEK,QAAF,EAAYC,KAAZ,EAAmBE,IAAAA,EAAnB,GAA4BT,SAASA,CAACC;IAC5C,OAAO,KAAKK,WAAWS,SAASR,QAAQE;AAC3C;;;ACXD;AACA;;;;;;CAMA,GAAW,SAASO,cAAcf,IAAvB,EAA6BW,MAA7B;IACP,IAAI,OAAOX,SAAS,UAAU;QAC1B,OAAO;IACV;IACD,MAAM,EAAEK,QAAAA,EAAF,GAAeN,SAASA,CAACC;IAC/B,OAAOK,aAAaM,UAAUN,SAASO,UAAT,CAAoBD,SAAS;AAC9D;;;ACbD;AACA;AACA;;;;CAIA,GAAW,SAASK,UAAUhB,IAAnB,EAAyBL,MAAzB,EAAiCH,aAAjC,EAAgDyB,YAAhD;IACP;IACA;IACA,IAAI,CAACtB,UAAUA,WAAWH,eAAe,OAAOQ;IAChD,MAAMkB,QAAQlB,KAAK1C,WAAL,IACd;IACA;IACA,IAAI,CAAC2D,cAAc;QACf,IAAIF,aAAaA,CAACG,OAAO,SAAS,OAAOlB;QACzC,IAAIe,aAAaA,CAACG,OAAO,MAAMvB,OAAOrC,WAAP,KAAuB,OAAO0C;IAChE,EACD;IACA,OAAOU,aAAaA,CAACV,MAAM,MAAML;AACpC;;;ACnBD;AACA;AACA;AACA;AACO,SAASwB,uBAAuBC,IAAhC;IACH,IAAIf,WAAWW,SAASA,CAACI,KAAKf,QAAN,EAAgBe,KAAKzB,MAArB,EAA6ByB,KAAKC,OAAL,GAAed,YAAYa,KAAK5B,aAA7D,EAA4E4B,KAAKH,YAAjF;IACxB,IAAIG,KAAKC,OAAL,IAAgB,CAACD,KAAKE,aAA1B,EAAyC;QACrCjB,WAAWT,mBAAmBA,CAACS;IAClC;IACD,IAAIe,KAAKC,OAAT,EAAkB;QACdhB,WAAWQ,aAAaA,CAACH,aAAaA,CAACL,UAAU,iBAAiBe,KAAKC,OAAjC,GAA2CD,KAAKf,QAAL,KAAkB,MAAM,eAAe;IAC3H;IACDA,WAAWK,aAAaA,CAACL,UAAUe,KAAKG,QAAhB;IACxB,OAAO,CAACH,KAAKC,OAAN,IAAiBD,KAAKE,aAAtB,GAAsC,CAACjB,SAASmB,QAAT,CAAkB,OAAOX,aAAaA,CAACR,UAAU,OAAOA,WAAWT,mBAAmBA,CAACS;AACxI;;;ACdD;;;;;CAKA,GAAW,SAASoB,YAAYC,MAArB,EAA6BhG,OAA7B;IACP;IACA;IACA,IAAIsD;IACJ,IAAI,CAACtD,WAAW,OAAO,KAAK,IAAIA,QAAQiG,IAApC,KAA6C,CAAC5F,MAAMC,OAAN,CAAcN,QAAQiG,IAAtB,GAA6B;QAC3E3C,WAAWtD,QAAQiG,IAAR,CAAazF,QAAb,GAAwBqD,KAAxB,CAA8B,IAA9B,CAAmC,EAA9C;IACH,OAAM,IAAImC,OAAO1C,QAAX,EAAqB;QACxBA,WAAW0C,OAAO1C,QAAlB;IACH,OAAM;IACP,OAAOA,SAAS1B,WAAT;AACV;;;ACfD;;;;;;;;CAQA,GAAW,SAASsE,oBAAoBvB,QAA7B,EAAuCZ,OAAvC;IACP,IAAIR,gBACJ;IACA,MAAM4C,gBAAgBxB,SAASd,KAAT,CAAe;IACpCE,CAAAA,WAAW,EAAZ,EAAgBC,IAAhB,CAAsBC,CAAAA;QAClB,IAAIkC,aAAa,CAAC,EAAd,IAAoBA,aAAa,CAAC,EAAd,CAAiBvE,WAAjB,OAAmCqC,OAAOrC,WAAP,IAAsB;YAC7E2B,iBAAiBU;YACjBkC,cAAcC,MAAd,CAAqB,GAAG;YACxBzB,WAAWwB,cAAcE,IAAd,CAAmB,QAAQ;YACtC,OAAO;QACV;QACD,OAAO;IACV;IACD,OAAO;QACH1B;QACApB;IAFG;AAIV;;;ACzBD;AACA;;;;;;;CAOA,GAAW,SAAS+C,iBAAiBhC,IAA1B,EAAgCW,MAAhC;IACP;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,CAACI,aAAaA,CAACf,MAAMW,SAAS;QAC9B,OAAOX;IACV,EACD;IACA,MAAMiC,gBAAgBjC,KAAKS,KAAL,CAAWE,OAAO7D,MAAlB,GACtB;IACA,IAAImF,cAAcrB,UAAd,CAAyB,MAAM;QAC/B,OAAOqB;IACV,EACD;IACA;IACA,OAAO,MAAMA;AAChB;;;ACjCD;AACA;AACA;AACO,SAASC,oBAAoB7B,QAA7B,EAAuC8B,OAAvC;IACH,IAAIC;IACJ,MAAM,EAAEb,QAAF,EAAYc,IAAZ,EAAkBf,aAAAA,EAAlB,GAAoC,CAACc,sBAAsBD,QAAQG,UAA/B,KAA8C,OAAOF,sBAAsB;IACrH,MAAMhB,OAAO;QACTf;QACAiB,eAAejB,aAAa,MAAMA,SAASmB,QAAT,CAAkB,OAAOF;IAFlD;IAIb,IAAIC,YAAYR,aAAaA,CAACK,KAAKf,QAAN,EAAgBkB,WAAW;QACpDH,KAAKf,QAAL,GAAgB2B,gBAAgBA,CAACZ,KAAKf,QAAN,EAAgBkB;QAChDH,KAAKG,QAAL,GAAgBA;IACnB;IACD,IAAIgB,uBAAuBnB,KAAKf,QAAhC;IACA,IAAIe,KAAKf,QAAL,CAAcO,UAAd,CAAyB,mBAAmBQ,KAAKf,QAAL,CAAcmB,QAAd,CAAuB,UAAU;QAC7E,MAAMgB,QAAQpB,KAAKf,QAAL,CAAcP,OAAd,CAAsB,oBAAoB,IAAIA,OAA9C,CAAsD,WAAW,IAAIP,KAArE,CAA2E;QACzF,MAAM8B,UAAUmB,KAAK,CAAC,EAAtB;QACApB,KAAKC,OAAL,GAAeA;QACfkB,uBAAuBC,KAAK,CAAC,EAAN,KAAa,UAAU,MAAMA,MAAM/B,KAAN,CAAY,GAAGsB,IAAf,CAAoB,OAAO,KAC/E;QACA;QACA,IAAII,QAAQM,SAAR,KAAsB,MAAM;YAC5BrB,KAAKf,QAAL,GAAgBkC;QACnB;IACJ,EACD;IACA;IACA,IAAIF,MAAM;QACN,IAAIK,SAASP,QAAQQ,YAAR,GAAuBR,QAAQQ,YAAR,CAAqBC,OAArB,CAA6BxB,KAAKf,QAAlC,IAA8CuB,mBAAmBA,CAACR,KAAKf,QAAN,EAAgBgC,KAAK5C,OAArB;QACrG2B,KAAKzB,MAAL,GAAc+C,OAAOzD,cAArB;QACA,IAAI4D;QACJzB,KAAKf,QAAL,GAAgB,CAACwC,mBAAmBH,OAAOrC,QAA3B,KAAwC,OAAOwC,mBAAmBzB,KAAKf,QAAvF;QACA,IAAI,CAACqC,OAAOzD,cAAR,IAA0BmC,KAAKC,OAAnC,EAA4C;YACxCqB,SAASP,QAAQQ,YAAR,GAAuBR,QAAQQ,YAAR,CAAqBC,OAArB,CAA6BL,wBAAwBX,mBAAmBA,CAACW,sBAAsBF,KAAK5C,OAA5B;YACxG,IAAIiD,OAAOzD,cAAX,EAA2B;gBACvBmC,KAAKzB,MAAL,GAAc+C,OAAOzD,cAArB;YACH;QACJ;IACJ;IACD,OAAOmC;AACV;;;ACzCD;AACA;AACA;AACA;AACA,MAAM0B,2BAA2B;AACjC,SAASC,SAASvF,GAAlB,EAAuBwF,IAAvB;IACI,OAAO,IAAItF,IAAID,OAAOD,KAAKsC,OAAZ,CAAoBgD,0BAA0B,cAAcE,QAAQvF,OAAOuF,MAAMlD,OAAb,CAAqBgD,0BAA0B;AACrI;AACD,MAAMG,WAAWnF,OAAO;AACjB,MAAMoF;IACT9H,YAAY+H,KAAD,EAAQC,UAAR,EAAoBC,IAApB,CAAyB;QAChC,IAAIL;QACJ,IAAIb;QACJ,IAAI,OAAOiB,eAAe,YAAY,cAAcA,cAAc,OAAOA,eAAe,UAAU;YAC9FJ,OAAOI;YACPjB,UAAUkB,QAAQ;QACrB,OAAM;YACHlB,UAAUkB,QAAQD,cAAc;QACnC;QACD,KAAKH,SAAL,GAAiB;YACbzF,KAAKuF,SAASI,OAAOH,QAAQb,QAAQa,IAAxB;YACbb,SAASA;YACTZ,UAAU;QAHG;QAKjB,KAAKqB,OAAL;IACH;IACDA,UAAU;QACN,IAAIU,wCAAwCC,mCAAmCC,6BAA6BC,yCAAyCC;QACrJ,MAAMtC,OAAOc,mBAAmBA,CAAC,KAAKe,SAAL,CAAezF,GAAf,CAAmB6C,QAApB,EAA8B;YAC1DiC,YAAY,KAAKW,SAAL,CAAed,OAAf,CAAuBG,UADuB;YAE1DG,WAAW,CAAC9H,SAF8C;YAG1DgI,cAAc,KAAKM,SAAL,CAAed,OAAf,CAAuBQ,YAAAA;QAHqB;QAK9D,MAAM3D,WAAWyC,WAAWA,CAAC,KAAKwB,SAAL,CAAezF,GAAhB,EAAqB,KAAKyF,SAAL,CAAed,OAAf,CAAuBzG,OAA5C;QAC5B,KAAKuH,SAAL,CAAeW,YAAf,GAA8B,KAAKX,SAAL,CAAed,OAAf,CAAuBQ,YAAvB,GAAsC,KAAKM,SAAL,CAAed,OAAf,CAAuBQ,YAAvB,CAAoC7D,kBAApC,CAAuDE,YAAYF,kBAAkBA,CAAC,CAACyE,oCAAoC,KAAKN,SAAL,CAAed,OAAf,CAAuBG,UAA5D,KAA2E,OAAO,KAAK,IAAI,CAACgB,yCAAyCC,kCAAkClB,IAA5E,KAAqF,OAAO,KAAK,IAAIiB,uCAAuCO,OAAxO,EAAiP7E;QAC1Y,MAAMQ,gBAAgB,CAAC,CAACgE,8BAA8B,KAAKP,SAAL,CAAeW,YAA9C,KAA+D,OAAO,KAAK,IAAIJ,4BAA4BhE,aAA5G,KAA+H,EAACkE,qCAAqC,KAAKT,SAAL,CAAed,OAAf,CAAuBG,UAA7D,KAA4E,OAAO,KAAK,IAAI,CAACmB,0CAA0CC,mCAAmCrB,IAA9E,KAAuF,OAAO,KAAK,IAAIoB,wCAAwCjE,aAA1W;QACtB,KAAKyD,SAAL,CAAezF,GAAf,CAAmB6C,QAAnB,GAA8Be,KAAKf,QAAnC;QACA,KAAK4C,SAAL,CAAezD,aAAf,GAA+BA;QAC/B,KAAKyD,SAAL,CAAe1B,QAAf,GAA0BH,KAAKG,QAAL,IAAiB;QAC3C,KAAK0B,SAAL,CAAe5B,OAAf,GAAyBD,KAAKC,OAA9B;QACA,KAAK4B,SAAL,CAAetD,MAAf,GAAwByB,KAAKzB,MAAL,IAAeH;QACvC,KAAKyD,SAAL,CAAe3B,aAAf,GAA+BF,KAAKE,aAApC;IACH;IACDwC,iBAAiB;QACb,OAAO3C,sBAAsBA,CAAC;YAC1BI,UAAU,KAAK0B,SAAL,CAAe1B,QADC;YAE1BF,SAAS,KAAK4B,SAAL,CAAe5B,OAFE;YAG1B7B,eAAe,CAAC,KAAKyD,SAAL,CAAed,OAAf,CAAuB4B,WAAxB,GAAsC,KAAKd,SAAL,CAAezD,aAArD,GAAqEe;YACpFZ,QAAQ,KAAKsD,SAAL,CAAetD,MAJG;YAK1BU,UAAU,KAAK4C,SAAL,CAAezF,GAAf,CAAmB6C,QALH;YAM1BiB,eAAe,KAAK2B,SAAL,CAAe3B,aAAAA;QANJ;IAQjC;IACD0C,eAAe;QACX,OAAO,KAAKf,SAAL,CAAezF,GAAf,CAAmByG,MAA1B;IACH;IACU,IAAP5C,UAAU;QACV,OAAO,KAAK4B,SAAL,CAAe5B,OAAtB;IACH;IACU,IAAPA,QAAQA,OAAD,EAAU;QACjB,KAAK4B,SAAL,CAAe5B,OAAf,GAAyBA;IAC5B;IACS,IAAN1B,SAAS;QACT,OAAO,KAAKsD,SAAL,CAAetD,MAAf,IAAyB;IACnC;IACS,IAANA,OAAOA,MAAD,EAAS;QACf,IAAI2D,wCAAwCC;QAC5C,IAAI,CAAC,KAAKN,SAAL,CAAetD,MAAhB,IAA0B,CAAE,EAAC4D,oCAAoC,KAAKN,SAAL,CAAed,OAAf,CAAuBG,UAA5D,KAA2E,OAAO,KAAK,IAAI,CAACgB,yCAAyCC,kCAAkClB,IAA5E,KAAqF,OAAO,KAAK,IAAIiB,uCAAuC7D,OAAvC,CAA+CyE,QAA/C,CAAwDvE,OAAxD,GAAkE;YAC9R,MAAM,IAAIwE,UAAW,iDAAgDxE,OAAO,EAAtE;QACT;QACD,KAAKsD,SAAL,CAAetD,MAAf,GAAwBA;IAC3B;IACgB,IAAbH,gBAAgB;QAChB,OAAO,KAAKyD,SAAL,CAAezD,aAAtB;IACH;IACe,IAAZoE,eAAe;QACf,OAAO,KAAKX,SAAL,CAAeW,YAAtB;IACH;IACe,IAAZQ,eAAe;QACf,OAAO,KAAKnB,SAAL,CAAezF,GAAf,CAAmB4G,YAA1B;IACH;IACO,IAAJzC,OAAO;QACP,OAAO,KAAKsB,SAAL,CAAezF,GAAf,CAAmBmE,IAA1B;IACH;IACO,IAAJA,KAAK3G,KAAD,EAAQ;QACZ,KAAKiI,SAAL,CAAezF,GAAf,CAAmBmE,IAAnB,GAA0B3G;IAC7B;IACW,IAARgE,WAAW;QACX,OAAO,KAAKiE,SAAL,CAAezF,GAAf,CAAmBwB,QAA1B;IACH;IACW,IAARA,SAAShE,KAAD,EAAQ;QAChB,KAAKiI,SAAL,CAAezF,GAAf,CAAmBwB,QAAnB,GAA8BhE;IACjC;IACO,IAAJqJ,OAAO;QACP,OAAO,KAAKpB,SAAL,CAAezF,GAAf,CAAmB6G,IAA1B;IACH;IACO,IAAJA,KAAKrJ,KAAD,EAAQ;QACZ,KAAKiI,SAAL,CAAezF,GAAf,CAAmB6G,IAAnB,GAA0BrJ;IAC7B;IACW,IAARsJ,WAAW;QACX,OAAO,KAAKrB,SAAL,CAAezF,GAAf,CAAmB8G,QAA1B;IACH;IACW,IAARA,SAAStJ,KAAD,EAAQ;QAChB,KAAKiI,SAAL,CAAezF,GAAf,CAAmB8G,QAAnB,GAA8BtJ;IACjC;IACO,IAAJuJ,OAAO;QACP,MAAMlE,WAAW,KAAKyD,cAAL;QACjB,MAAMG,SAAS,KAAKD,YAAL;QACf,OAAQ,GAAE,KAAKM,QAAS,KAAI,KAAK3C,IAAK,GAAEtB,SAAS,EAAE4D,OAAO,EAAE,KAAKzD,IAAK,EAAtE;IACH;IACO,IAAJ+D,KAAK/G,GAAD,EAAM;QACV,KAAKyF,SAAL,CAAezF,GAAf,GAAqBuF,SAASvF;QAC9B,KAAKoF,OAAL;IACH;IACS,IAAN4B,SAAS;QACT,OAAO,KAAKvB,SAAL,CAAezF,GAAf,CAAmBgH,MAA1B;IACH;IACW,IAARnE,WAAW;QACX,OAAO,KAAK4C,SAAL,CAAezF,GAAf,CAAmB6C,QAA1B;IACH;IACW,IAARA,SAASrF,KAAD,EAAQ;QAChB,KAAKiI,SAAL,CAAezF,GAAf,CAAmB6C,QAAnB,GAA8BrF;IACjC;IACO,IAAJwF,OAAO;QACP,OAAO,KAAKyC,SAAL,CAAezF,GAAf,CAAmBgD,IAA1B;IACH;IACO,IAAJA,KAAKxF,KAAD,EAAQ;QACZ,KAAKiI,SAAL,CAAezF,GAAf,CAAmBgD,IAAnB,GAA0BxF;IAC7B;IACS,IAANiJ,SAAS;QACT,OAAO,KAAKhB,SAAL,CAAezF,GAAf,CAAmByG,MAA1B;IACH;IACS,IAANA,OAAOjJ,KAAD,EAAQ;QACd,KAAKiI,SAAL,CAAezF,GAAf,CAAmByG,MAAnB,GAA4BjJ;IAC/B;IACW,IAARyJ,WAAW;QACX,OAAO,KAAKxB,SAAL,CAAezF,GAAf,CAAmBiH,QAA1B;IACH;IACW,IAARA,SAASzJ,KAAD,EAAQ;QAChB,KAAKiI,SAAL,CAAezF,GAAf,CAAmBiH,QAAnB,GAA8BzJ;IACjC;IACW,IAAR0J,WAAW;QACX,OAAO,KAAKzB,SAAL,CAAezF,GAAf,CAAmBkH,QAA1B;IACH;IACW,IAARA,SAAS1J,KAAD,EAAQ;QAChB,KAAKiI,SAAL,CAAezF,GAAf,CAAmBkH,QAAnB,GAA8B1J;IACjC;IACW,IAARuG,WAAW;QACX,OAAO,KAAK0B,SAAL,CAAe1B,QAAtB;IACH;IACW,IAARA,SAASvG,KAAD,EAAQ;QAChB,KAAKiI,SAAL,CAAe1B,QAAf,GAA0BvG,MAAM4F,UAAN,CAAiB,OAAO5F,QAAS,IAAGA,MAAM,CAApE;IACH;IACDkB,WAAW;QACP,OAAO,KAAKqI,IAAZ;IACH;IACDI,SAAS;QACL,OAAO,KAAKJ,IAAZ;IACH;IACyC,CAAzCzG,OAAO8G,GAAP,CAAW,+BAA8B,GAAI;QAC1C,OAAO;YACHL,MAAM,KAAKA,IADR;YAEHC,QAAQ,KAAKA,MAFV;YAGHF,UAAU,KAAKA,QAHZ;YAIHI,UAAU,KAAKA,QAJZ;YAKHD,UAAU,KAAKA,QALZ;YAMH9C,MAAM,KAAKA,IANR;YAOH3C,UAAU,KAAKA,QAPZ;YAQHqF,MAAM,KAAKA,IARR;YASHhE,UAAU,KAAKA,QATZ;YAUH4D,QAAQ,KAAKA,MAVV;YAWHG,cAAc,KAAKA,YAXhB;YAYH5D,MAAM,KAAKA,IAAAA;QAZR;IAcV;IACDqE,QAAQ;QACJ,OAAO,IAAI3B,QAAQzF,OAAO,IAAD,GAAQ,KAAKwF,SAAL,CAAed,OAAzC;IACV;AAxKgB;;;;;ACTrB;;;ACAA;AACA;AACA;AACA;AACO,MAAM6C,YAAYlH,OAAO,oBAAzB;AACA,MAAMmH,oBAAoBC;IAC7B9J,YAAY+H,KAAD,EAAQgC,OAAO,EAAf,CAAkB;QACzB,MAAM3H,MAAM,OAAO2F,UAAU,YAAY,SAASA,QAAQA,MAAM3F,GAApD,GAA0DC,OAAO0F;QAC7E5F,WAAWA,CAACC;QACZ,IAAI2F,iBAAiB+B,SAAS,MAAM/B,OAAOgC;aACtC,MAAM3H,KAAK2H;QAChB,MAAMC,UAAU,IAAIlC,OAAOA,CAAC1F,KAAK;YAC7B9B,SAAS0B,yBAAyBA,CAAC,KAAK1B,OAAN;YAClC4G,YAAY6C,KAAK7C,UAAAA;QAFY;QAIjC,KAAK0C,UAAL,GAAkB;YACd3H,SAAS,IAAIyH,oCAAcA,CAAC,KAAKpJ,OAAxB;YACT2J,KAAKF,KAAKE,GAAL,IAAY;YACjBC,IAAIH,KAAKG,EAHK;YAIdF;YACA5H,KAAK7C,MAAA,GAAiD6C,CAAGA,GAAG4H,QAAQlJ,QAAR;QAL9C;IAOrB;IACyC,CAAzC4B,OAAO8G,GAAP,CAAW,+BAA8B,GAAI;QAC1C,OAAO;YACHvH,SAAS,KAAKA,OADX;YAEHgI,KAAK,KAAKA,GAFP;YAGHC,IAAI,KAAKA,EAHN;YAIHF,SAAS,KAAKA,OAJX;YAKH5H,KAAK,KAAKA,GALP;YAMH;YACA+H,UAAU,KAAKA,QAPZ;YAQHC,OAAO,KAAKA,KART;YASHC,aAAa,KAAKA,WATf;YAUHC,aAAa,KAAKA,WAVf;YAWHhK,SAASZ,OAAO6K,WAAP,CAAmB,KAAKjK,OAAxB;YACTkK,WAAW,KAAKA,SAZb;YAaHC,WAAW,KAAKA,SAbb;YAcHC,QAAQ,KAAKA,MAdV;YAeHC,MAAM,KAAKA,IAfR;YAgBHC,UAAU,KAAKA,QAhBZ;YAiBHC,UAAU,KAAKA,QAjBZ;YAkBHC,gBAAgB,KAAKA,cAlBlB;YAmBHC,QAAQ,KAAKA,MAAAA;QAnBV;IAqBV;IACU,IAAP9I,UAAU;QACV,OAAO,KAAK2H,UAAL,CAAgB3H,OAAvB;IACH;IACM,IAAHgI,MAAM;QACN,OAAO,KAAKL,UAAL,CAAgBK,GAAvB;IACH;IACK,IAAFC,KAAK;QACL,OAAO,KAAKN,UAAL,CAAgBM,EAAvB;IACH;IACU,IAAPF,UAAU;QACV,OAAO,KAAKJ,UAAL,CAAgBI,OAAvB;IACH;IACD;;;;EAIJ,GAAc,IAAJ/J,OAAO;QACT,MAAM,IAAIC,gBAAgBA;IAC7B;IACD;;;;EAIJ,GAAY,IAAF8K,KAAK;QACP,MAAM,IAAI7K,cAAcA;IAC3B;IACM,IAAHiC,MAAM;QACN,OAAO,KAAKwH,UAAL,CAAgBxH,GAAvB;IACH;AArEoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLzC;AACA;AACA;AACA,MAAMwH,kBAASA,GAAGlH,OAAO;AACzB,MAAMuI,YAAY,IAAIC,IAAI;IACtB;IACA;IACA;IACA;IACA;CALc;AAOlB,SAASC,sBAAsBpB,IAA/B,EAAqCzJ,OAArC;IACI,IAAI8K;IACJ,IAAIrB,QAAQ,OAAO,KAAK,IAAI,CAACqB,gBAAgBrB,KAAKvG,OAAtB,KAAkC,OAAO,KAAK,IAAI4H,cAAc9K,OAA5F,EAAqG;QACjG,IAAI,CAAEyJ,CAAAA,KAAKvG,OAAL,CAAalD,OAAb,YAAgCC,OAAAA,GAAU;YAC5C,MAAM,IAAIvB,MAAM;QACnB;QACD,MAAMqM,OAAO,EAAb;QACA,KAAK,MAAM,CAAC7K,KAAKZ,MAAjB,IAA2BmK,KAAKvG,OAAL,CAAalD,OAAxC,CAAgD;YAC5CA,QAAQgL,GAAR,CAAY,0BAA0B9K,KAAKZ;YAC3CyL,KAAKvJ,IAAL,CAAUtB;QACb;QACDF,QAAQgL,GAAR,CAAY,iCAAiCD,KAAK1E,IAAL,CAAU;IAC1D;AACJ;AACM,MAAM4E,qBAAqBC;IAC9BxL,YAAYyL,IAAD,EAAO1B,OAAO,EAAd,CAAiB;QACxB,MAAM0B,MAAM1B;QACZ,KAAKH,kBAASA,CAAd,GAAkB;YACd3H,SAAS,IAAI0H,qCAAeA,CAAC,KAAKrJ,OAAzB;YACT8B,KAAK2H,KAAK3H,GAAL,GAAW,IAAI0F,OAAOA,CAACiC,KAAK3H,GAAjB,EAAsB;gBAClC9B,SAAS0B,yBAAyBA,CAAC,KAAK1B,OAAN;gBAClC4G,YAAY6C,KAAK7C,UAAAA;YAFiB,KAGjC/B;QALS;IAOrB;IACyC,CAAzCzC,OAAO8G,GAAP,CAAW,+BAA8B,GAAI;QAC1C,OAAO;YACHvH,SAAS,KAAKA,OADX;YAEHG,KAAK,KAAKA,GAFP;YAGH;YACAqJ,MAAM,KAAKA,IAJR;YAKHtB,UAAU,KAAKA,QALZ;YAMH7J,SAASZ,OAAO6K,WAAP,CAAmB,KAAKjK,OAAxB;YACToL,IAAI,KAAKA,EAPN;YAQHC,YAAY,KAAKA,UARd;YASHC,QAAQ,KAAKA,MATV;YAUHC,YAAY,KAAKA,UAVd;YAWHC,MAAM,KAAKA,IAAAA;QAXR;IAaV;IACU,IAAP7J,UAAU;QACV,OAAO,KAAK2H,kBAASA,CAAd,CAAgB3H,OAAvB;IACH;IACU,OAAJ8J,KAAKN,IAAD,EAAO1B,IAAP,EAAa;QACpB,MAAM/G,WAAWwI,SAASO,IAAT,CAAcN,MAAM1B;QACrC,OAAO,IAAIwB,aAAavI,SAASyI,IAA1B,EAAgCzI;IAC1C;IACc,OAAR4H,SAASxI,GAAD,EAAM2H,IAAN,EAAY;QACvB,MAAM6B,SAAS,OAAO7B,SAAS,WAAWA,OAAO,CAACA,QAAQ,OAAO,KAAK,IAAIA,KAAK6B,MAA9B,KAAyC;QAC1F,IAAI,CAACX,UAAUe,GAAV,CAAcJ,SAAS;YACxB,MAAM,IAAIK,WAAW;QACxB;QACD,MAAMC,UAAU,OAAOnC,SAAS,WAAWA,OAAO;QAClD,MAAMzJ,UAAU,IAAIC,QAAQ2L,WAAW,OAAO,KAAK,IAAIA,QAAQ5L,OAA/C;QAChBA,QAAQgL,GAAR,CAAY,YAAYnJ,WAAWA,CAACC;QACpC,OAAO,IAAImJ,aAAa,MAAjBY,cAAAA,cAAA,IACAD,UADA;YAEH5L;YACAsL;QAHG;IAKV;IACa,OAAPQ,QAAQ9B,WAAD,EAAcP,IAAd,EAAoB;QAC9B,MAAMzJ,UAAU,IAAIC,QAAQwJ,QAAQ,OAAO,KAAK,IAAIA,KAAKzJ,OAAzC;QAChBA,QAAQgL,GAAR,CAAY,wBAAwBnJ,WAAWA,CAACmI;QAChDa,sBAAsBpB,MAAMzJ;QAC5B,OAAO,IAAIiL,aAAa,MAAjBY,cAAAA,cAAA,IACApC,OADA;YAEHzJ;QAFG;IAIV;IACU,OAAJ+L,KAAKtC,IAAD,EAAO;QACd,MAAMzJ,UAAU,IAAIC,QAAQwJ,QAAQ,OAAO,KAAK,IAAIA,KAAKzJ,OAAzC;QAChBA,QAAQgL,GAAR,CAAY,qBAAqB;QACjCH,sBAAsBpB,MAAMzJ;QAC5B,OAAO,IAAIiL,aAAa,MAAjBY,cAAAA,cAAA,IACApC,OADA;YAEHzJ;QAFG;IAIV;AAhEsC;;;ACzB3C;;;;CAIA,GAAW,SAASgM,cAAclK,GAAvB,EAA4BwF,IAA5B;IACP,MAAM2E,UAAU,OAAO3E,SAAS,WAAW,IAAItF,IAAIsF,QAAQA;IAC3D,MAAM4E,WAAW,IAAIlK,IAAIF,KAAKwF;IAC9B,MAAMwB,SAASmD,QAAQrD,QAAR,GAAmB,OAAOqD,QAAQhG,IAAjD;IACA,OAAOiG,SAAStD,QAAT,GAAoB,OAAOsD,SAASjG,IAApC,KAA6C6C,SAASoD,SAAS1L,QAAT,GAAoB4D,OAApB,CAA4B0E,QAAQ,MAAMoD,SAAS1L,QAAT;AAC1G;;;ACTM,MAAM2L,MAAM,MAAZ;AACA,MAAMC,SAAS,cAAf;AACA,MAAMC,yBAAyB,yBAA/B;AACA,MAAMC,uBAAuB,uBAA7B;AACA,MAAMC,WAAW,WAAjB;AACA,MAAMC,0BAA0B,mBAAhC;AACA,MAAMC,kBAAkBN,MAAM,OAAOE,yBAAyB,OAAOC,uBAAuB,OAAOC,SAAnG;AACA,MAAMG,oBAAoB;IAC7B;QACIP;KAFyB;IAI7B;QACIE;KALyB;IAO7B;QACIC;KARyB;CAA1B;AAWA,MAAMK,uBAAuB,OAA7B;;;AClBP;AACA,MAAMC,uBAAuB;IACzB;IACA;IACA;IACA;IACA;IACAD,oBAAoBA;CANxB;AAQA,MAAME,qCAAqC;IACvC;CADJ;AAGO,SAASC,qBAAqBlI,KAA9B;IACH,KAAK,MAAMmI,QAAQH,qBAAqB;QACpC,OAAOhI,KAAK,CAACmI,KAAb;IACH;AACJ;AACM,SAASC,0BAA0BlL,GAAnC,EAAwCmL,MAAxC;IACH,MAAMC,cAAc,OAAOpL,QAAQ;IACnC,MAAMqL,WAAWD,cAAc,IAAIlL,IAAIF,OAAOA;IAC9C,KAAK,MAAMiL,QAAQH,qBAAqB;QACpCO,SAASzE,YAAT,CAAsB0E,MAAtB,CAA6BL;IAChC;IACD,IAAIE,QAAQ;QACR,KAAK,MAAMF,QAAQF,mCAAmC;YAClDM,SAASzE,YAAT,CAAsB0E,MAAtB,CAA6BL;QAChC;IACJ;IACD,OAAOG,cAAcC,SAAS3M,QAAT,KAAsB2M;AAC9C;AACD;;;CAGA,GAAI,MAAME,mBAAmB;IACzB;IACA;IACA;IACA;IACA;IACA;CANA;AAQJ;;;;CAIA,GAAW,SAASC,qBAAqBtN,OAA9B;IACP,KAAK,MAAME,OAAOmN,iBAAiB;QAC/B,OAAOrN,OAAO,CAACE,IAAf;IACH;AACJ;;;ACjDD;AACA;AACA;;;;;;;;;;;;;;;;;;CAkBA,GAAW,SAASuN,iBAAiBtJ,KAA1B;IACP,OAAOoJ,mBAAmBpJ,MAAMN,KAAN,CAAY,KAAK6J,MAAjB,CAAwB,CAAC/I,UAAUgJ,SAASC,OAAOC;QACzE;QACA,IAAI,CAACF,SAAS;YACV,OAAOhJ;QACV,EACD;QACA,IAAI6I,eAAeG,UAAU;YACzB,OAAOhJ;QACV,EACD;QACA,IAAIgJ,OAAO,CAAC,EAAR,KAAe,KAAK;YACpB,OAAOhJ;QACV,EACD;QACA,IAAI,CAACgJ,YAAY,UAAUA,YAAY,YAAYC,UAAUC,SAASzM,MAAT,GAAkB,GAAG;YAC9E,OAAOuD;QACV;QACD,OAAOA,WAAW,MAAMgJ;IAC3B,GAAE;AACN;AACD;;;CAGA,GAAW,SAASG,iBAAiBnJ,QAA1B,EAAoCoJ,OAApC;IACP,OAAOA,UAAUpJ,SAASP,OAAT,CAAiB,eAClC,QAAQO;AACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/CM,MAAMqJ,0BAA0B,OAAhC;AACA,MAAMC,8BAA8B,yBAApC;AACA,MAAMC,6CAA6C,sCAAnD;AACA,MAAMC,yBAAyB,oBAA/B;AACA,MAAMC,8BAA8B,yBAApC;AACA,MAAMC,qCAAqC,0BAA3C;AACA,MAAMC,yCAAyC,8BAA/C;AACA,MAAMC,4BAA4B,IAAlC;AACA,MAAMC,iCAAiC,KAAvC;AACA,MAAMC,6BAA6B,QAAnC,CACP;AACO,MAAMC,iBAAiB,SAAvB,CACP;AACO,MAAMC,sBAAsB,aAA5B;AACA,MAAMC,6BAA8B,4DAAWD,oBAAoB,CAAnE,IACP;AACO,MAAME,gCAAgC,kBAAtC,CACP;AACA;AACO,MAAMC,kBAAkB,qBAAxB;AACA,MAAMC,iBAAiB,mBAAvB;AACA,MAAMC,iBAAiB,wBAAvB;AACA,MAAMC,gBAAgB,uBAAtB;AACA,MAAMC,0BAA0B,iCAAhC;AACA,MAAMC,4BAA4B,mCAAlC;AACA,MAAMC,yBAAyB,gCAA/B;AACA,MAAMC,kCAAkC,yCAAxC;AACA,MAAMC,iCAAkC,+NAAxC;AACA,MAAMC,iCAAkC,qJAAxC;AACA,MAAMC,uCAAwC,yIAA9C;AACA,MAAMC,4BAA6B,wKAAnC;AACA,MAAMC,6CAA8C,yJAApD;AACA,MAAMC,4BAA6B,yKAAnC;AACA,MAAMC,wBAAwB,6FAA9B;AACA,MAAMC,yBAAyB,iGAA/B;AACA,MAAMC,mCAAmC,uHAAuE,kCAAkC,GAAlJ;AACA,MAAMC,8BAA+B,0MAArC;AACA,MAAMC,wBAAyB,mQAA/B;AACA,MAAMC,4BAA6B,0MAAnC;AACA,MAAMC,sBAAsB;IAC/B;IACA;IACA;IACA;IACA;CALG;AAOA,MAAMC,uBAAuB;IAChC;QACIC,OAAO;QACPC,aAAa;QACbC,QAAQ;YACJC,SAAS;QADL;IAHZ;IAOA;QACIH,OAAO;QACPE,QAAQ;YACJC,SAAS;QADL;IAFZ;IAMA;QACIH,OAAO;QACPE,QAAQ;IAFZ;CAdG;AAmBA,MAAME,iBAAiB;IAC1BC,MAAM;IACNC,kBAAkB;IAClBC,QAAQ;AAHkB,EAAvB;AAKP;;;CAGA,GAAI,MAAMC,uBAAuB;IAC7B;;EAEJ,GAAMC,QAAQ;IACV;;EAEJ,GAAMC,uBAAuB;IACzB;;EAEJ,GAAMC,qBAAqB;IACvB;;EAEJ,GAAMC,eAAe;IACjB;;EAEJ,GAAMC,KAAK;IACP;;EAEJ,GAAMC,YAAY;IACd;;EAEJ,GAAMC,WAAW;IACb;;EAEJ,GAAMC,iBAAiB;IACnB;;EAEJ,GAAMC,kBAAkB;IACpB;;EAEJ,GAAMC,iBAAiB;AA9BU;AAgCjC,MAAMC,iBAAc1F,sBAAAA,CAAAA,sBAAAA,CAAA,IACb+E,uBADa;IAEhBY,OAAO;QACHC,QAAQ;YACJb,qBAAqBE,qBADjB;YAEJF,qBAAqBI,aAFjB;YAGJJ,qBAAqBS,gBAHjB;YAIJT,qBAAqBU,eAJjB;SADL;QAOHI,uBAAuB;YAEnBd,qBAAqBM,UAFF;YAGnBN,qBAAqBK,GAHF;SAPpB;QAYHU,KAAK;YACDf,qBAAqBE,qBADpB;YAEDF,qBAAqBI,aAFpB;YAGDJ,qBAAqBS,gBAHpB;YAIDT,qBAAqBU,eAJpB;YAKDV,qBAAqBG,mBALpB;YAMDH,qBAAqBQ,eANpB;SAAA;IAZF;AAFS;AAwBpB,MAAMQ,2BAA2B;IAC7BC,cAAc;IACdC,UAAU;IACVC,eAAe;IACfC,mBAAmB;AAJU;AAMjC;;;ACvIO,MAAMC;IACC,OAAH1T,IAAI2T,MAAD,EAASzT,IAAT,EAAe0T,QAAf,EAAyB;QAC/B,MAAM7S,QAAQ8S,QAAQ7T,GAAR,CAAY2T,QAAQzT,MAAM0T;QACxC,IAAI,OAAO7S,UAAU,YAAY;YAC7B,OAAOA,MAAM+S,IAAN,CAAWH;QACrB;QACD,OAAO5S;IACV;IACS,OAAH0L,IAAIkH,MAAD,EAASzT,IAAT,EAAea,KAAf,EAAsB6S,QAAtB,EAAgC;QACtC,OAAOC,QAAQpH,GAAR,CAAYkH,QAAQzT,MAAMa,OAAO6S;IAC3C;IACS,OAAHzG,IAAIwG,MAAD,EAASzT,IAAT,EAAe;QACrB,OAAO2T,QAAQ1G,GAAR,CAAYwG,QAAQzT;IAC9B;IACoB,OAAd6T,eAAeJ,MAAD,EAASzT,IAAT,EAAe;QAChC,OAAO2T,QAAQE,cAAR,CAAuBJ,QAAQzT;IACzC;AAhBuB;;;ACA5B;AACA;;CAEA,GAAW,MAAM8T,6BAA6B7T;IAC1CgB,aAAa;QACT,MAAM;IACT;IACc,OAAR8S,WAAW;QACd,MAAM,IAAID;IACb;AAN+C;AAQ7C,MAAME,uBAAuBxS;IAChCP,YAAYM,OAAD,CAAS;QAChB;QACA;QACA;QACA,KAAKA,OAAL,GAAe,IAAI1B,MAAM0B,SAAS;YAC9BzB,KAAK2T,MAAF,EAAUzT,IAAV,EAAgB0T,QAAhB;gBACC;gBACA;gBACA;gBACA,IAAI,OAAO1T,SAAS,UAAU;oBAC1B,OAAOwT,cAAcA,CAAC1T,GAAf,CAAmB2T,QAAQzT,MAAM0T;gBAC3C;gBACD,MAAMO,aAAajU,KAAKmD,WAAL,IACnB;gBACA;gBACA;gBACA,MAAM+Q,WAAWvT,OAAO2L,IAAP,CAAY/K,SAAS4S,IAArB,CAA2BC,CAAAA,IAAIA,EAAEjR,WAAF,OAAoB8Q,aACpE;gBACA,IAAI,OAAOC,aAAa,aAAa,QACrC;gBACA,OAAOV,cAAcA,CAAC1T,GAAf,CAAmB2T,QAAQS,UAAUR;YAC/C;YACDnH,KAAKkH,MAAF,EAAUzT,IAAV,EAAgBa,KAAhB,EAAuB6S,QAAvB;gBACC,IAAI,OAAO1T,SAAS,UAAU;oBAC1B,OAAOwT,cAAcA,CAACjH,GAAf,CAAmBkH,QAAQzT,MAAMa,OAAO6S;gBAClD;gBACD,MAAMO,aAAajU,KAAKmD,WAAL,IACnB;gBACA;gBACA;gBACA,MAAM+Q,WAAWvT,OAAO2L,IAAP,CAAY/K,SAAS4S,IAArB,CAA2BC,CAAAA,IAAIA,EAAEjR,WAAF,OAAoB8Q,aACpE;gBACA,OAAOT,cAAcA,CAACjH,GAAf,CAAmBkH,QAAQS,YAAYlU,MAAMa,OAAO6S;YAC9D;YACDzG,KAAKwG,MAAF,EAAUzT,IAAV;gBACC,IAAI,OAAOA,SAAS,UAAU,OAAOwT,cAAcA,CAACvG,GAAf,CAAmBwG,QAAQzT;gBAChE,MAAMiU,aAAajU,KAAKmD,WAAL,IACnB;gBACA;gBACA;gBACA,MAAM+Q,WAAWvT,OAAO2L,IAAP,CAAY/K,SAAS4S,IAArB,CAA2BC,CAAAA,IAAIA,EAAEjR,WAAF,OAAoB8Q,aACpE;gBACA,IAAI,OAAOC,aAAa,aAAa,OAAO,OAC5C;gBACA,OAAOV,cAAcA,CAACvG,GAAf,CAAmBwG,QAAQS;YACrC;YACDL,gBAAgBJ,MAAF,EAAUzT,IAAV;gBACV,IAAI,OAAOA,SAAS,UAAU,OAAOwT,cAAcA,CAACK,cAAf,CAA8BJ,QAAQzT;gBAC3E,MAAMiU,aAAajU,KAAKmD,WAAL,IACnB;gBACA;gBACA;gBACA,MAAM+Q,WAAWvT,OAAO2L,IAAP,CAAY/K,SAAS4S,IAArB,CAA2BC,CAAAA,IAAIA,EAAEjR,WAAF,OAAoB8Q,aACpE;gBACA,IAAI,OAAOC,aAAa,aAAa,OAAO,MAC5C;gBACA,OAAOV,cAAcA,CAACK,cAAf,CAA8BJ,QAAQS;YAChD;QArD6B;IAuDrC;IACD;;;EAGJ,GAAiB,OAAJG,KAAK9S,OAAD,EAAU;QACnB,OAAO,IAAI1B,MAAM0B,SAAS;YACtBzB,KAAK2T,MAAF,EAAUzT,IAAV,EAAgB0T,QAAhB;gBACC,OAAO1T;oBACH,KAAK;oBACL,KAAK;oBACL,KAAK;wBACD,OAAO8T,qBAAqBC,QAA5B;oBACJ;wBACI,OAAOP,cAAcA,CAAC1T,GAAf,CAAmB2T,QAAQzT,MAAM0T;gBANhD;YAQH;QAVqB;IAY7B;IACD;;;;;;EAMJ,GAAMY,MAAMzT,KAAD,EAAQ;QACX,IAAIe,MAAMC,OAAN,CAAchB,QAAQ,OAAOA,MAAM+G,IAAN,CAAW;QAC5C,OAAO/G;IACV;IACD;;;;;EAKJ,GAAiB,OAAJ0T,KAAKhT,OAAD,EAAU;QACnB,IAAIA,mBAAmBC,SAAS,OAAOD;QACvC,OAAO,IAAIyS,eAAezS;IAC7B;IACDS,OAAOsM,IAAD,EAAOzN,KAAP,EAAc;QAChB,MAAM2T,WAAW,KAAKjT,OAAL,CAAa+M,KAA9B;QACA,IAAI,OAAOkG,aAAa,UAAU;YAC9B,KAAKjT,OAAL,CAAa+M,KAAb,GAAqB;gBACjBkG;gBACA3T;aAFJ;QAIH,OAAM,IAAIe,MAAMC,OAAN,CAAc2S,WAAW;YAChCA,SAASzR,IAAT,CAAclC;QACjB,OAAM;YACH,KAAKU,OAAL,CAAa+M,KAAb,GAAqBzN;QACxB;IACJ;IACD8N,OAAOL,IAAD,EAAO;QACT,OAAO,KAAK/M,OAAL,CAAa+M,KAApB;IACH;IACDxO,IAAIwO,IAAD,EAAO;QACN,MAAMzN,QAAQ,KAAKU,OAAL,CAAa+M,KAA3B;QACA,IAAI,OAAOzN,UAAU,aAAa,OAAO,KAAKyT,KAAL,CAAWzT;QACpD,OAAO;IACV;IACDoM,IAAIqB,IAAD,EAAO;QACN,OAAO,OAAO,KAAK/M,OAAL,CAAa+M,KAApB,KAA8B;IACxC;IACD/B,IAAI+B,IAAD,EAAOzN,KAAP,EAAc;QACb,KAAKU,OAAL,CAAa+M,KAAb,GAAqBzN;IACxB;IACD4T,QAAQC,UAAD,EAAaC,OAAb,EAAsB;QACzB,KAAK,MAAM,CAACrG,MAAMzN,MAAlB,IAA4B,KAAKa,OAAL,GAAe;YACvCgT,WAAWE,IAAX,CAAgBD,SAAS9T,OAAOyN,MAAM,IAAtC;QACH;IACJ;IACO,CAAP5M,UAAU;QACP,KAAK,MAAMD,OAAOd,OAAO2L,IAAP,CAAY,KAAK/K,OAAjB,EAA0B;YACxC,MAAM+M,OAAO7M,IAAI0B,WAAJ,IACb;YACA;YACA,MAAMtC,QAAQ,KAAKf,GAAL,CAASwO;YACvB,MAAM;gBACFA;gBACAzN;aAFJ;QAIH;IACJ;IACI,CAAJyL,OAAO;QACJ,KAAK,MAAM7K,OAAOd,OAAO2L,IAAP,CAAY,KAAK/K,OAAjB,EAA0B;YACxC,MAAM+M,OAAO7M,IAAI0B,WAAJ;YACb,MAAMmL;QACT;IACJ;IACM,CAAN3M,SAAS;QACN,KAAK,MAAMF,OAAOd,OAAO2L,IAAP,CAAY,KAAK/K,OAAjB,EAA0B;YACxC;YACA;YACA,MAAMV,QAAQ,KAAKf,GAAL,CAAS2B;YACvB,MAAMZ;QACT;IACJ;IACe,CAAf8C,OAAOkR,QAAQ,IAAI;QAChB,OAAO,KAAKnT,OAAL;IACV;AA7JuC;;;ACX5C;AACA;AACA;;CAEA,GAAW,MAAMoT,oCAAoC7U;IACjDgB,aAAa;QACT,MAAM;IACT;IACc,OAAR8S,WAAW;QACd,MAAM,IAAIe;IACb;AANsD;AAQpD,MAAMC;IACE,OAAJV,KAAKnR,OAAD,EAAU;QACjB,OAAO,IAAIrD,MAAMqD,SAAS;YACtBpD,KAAK2T,MAAF,EAAUzT,IAAV,EAAgB0T,QAAhB;gBACC,OAAO1T;oBACH,KAAK;oBACL,KAAK;oBACL,KAAK;wBACD,OAAO8U,4BAA4Bf,QAAnC;oBACJ;wBACI,OAAOP,cAAcA,CAAC1T,GAAf,CAAmB2T,QAAQzT,MAAM0T;gBANhD;YAQH;QAVqB;IAY7B;AAd8B;AAgBnC,MAAMsB,8BAA8BrR,OAAO8G,GAAP,CAAW;AACxC,SAASwK,wBAAwB/R,OAAjC;IACH,MAAMgS,WAAWhS,OAAO,CAAC8R,4BAAzB;IACA,IAAI,CAACE,YAAY,CAACtT,MAAMC,OAAN,CAAcqT,aAAaA,SAASvS,MAAT,KAAoB,GAAG;QAChE,OAAO,EAAP;IACH;IACD,OAAOuS;AACV;AACM,SAASC,qBAAqB5T,OAA9B,EAAuC6T,cAAvC;IACH,MAAMC,uBAAuBJ,wBAAwBG;IACrD,IAAIC,qBAAqB1S,MAArB,KAAgC,GAAG;QACnC,OAAO;IACV,EACD;IACA;IACA;IACA,MAAM2S,aAAa,IAAI1K,gBAAgBrJ;IACvC,MAAMgU,kBAAkBD,WAAWE,MAAX,IACxB;IACA,KAAK,MAAMC,UAAUJ,qBAAqB;QACtCC,WAAW/I,GAAX,CAAekJ;IAClB,EACD;IACA,KAAK,MAAMA,UAAUF,gBAAgB;QACjCD,WAAW/I,GAAX,CAAekJ;IAClB;IACD,OAAO;AACV;AACM,MAAMC;IACE,OAAJC,KAAKzS,OAAD,EAAU0S,eAAV,EAA2B;QAClC,MAAMC,iBAAiB,IAAIjL,qCAAeA,CAAC,IAAIpJ;QAC/C,KAAK,MAAMiU,UAAUvS,QAAQsS,MAAR,GAAiB;YAClCK,eAAetJ,GAAf,CAAmBkJ;QACtB;QACD,IAAIK,iBAAiB,EAArB;QACA,MAAMC,kBAAkB,IAAI5J;QAC5B,MAAM6J,wBAAwB;YAC1B,IAAIC,6BACJ;YACA,MAAMC,6BAA6BC,MAAMC,oBAAN,IAA8B,OAAO,KAAK,IAAI,CAACH,8BAA8BE,MAAMC,oBAAN,CAA2BxB,IAA3B,CAAgCuB,MAAhC,KAA2C,OAAO,KAAK,IAAIF,4BAA4BI,QAA5B;YAC3K,IAAIH,4BAA4B;gBAC5BA,2BAA2BI,kBAA3B,GAAgD;YACnD;YACD,MAAMC,aAAaV,eAAeL,MAAf;YACnBM,iBAAiBS,WAAWC,MAAX,CAAmBC,CAAAA,IAAIV,gBAAgB9I,GAAhB,CAAoBwJ,EAAEnI,IAAtB;YACxC,IAAIsH,iBAAiB;gBACjB,MAAMc,oBAAoB,EAA1B;gBACA,KAAK,MAAMjB,UAAUK,eAAe;oBAChC,MAAMa,cAAc,IAAI/L,qCAAeA,CAAC,IAAIpJ;oBAC5CmV,YAAYpK,GAAZ,CAAgBkJ;oBAChBiB,kBAAkB3T,IAAlB,CAAuB4T,YAAY5U,QAAZ;gBAC1B;gBACD6T,gBAAgBc;YACnB;QACJ;QACD,OAAO,IAAI7W,MAAMgW,gBAAgB;YAC7B/V,KAAK2T,MAAF,EAAUzT,IAAV,EAAgB0T,QAAhB;gBACC,OAAO1T;oBACH;oBACA,KAAKgV;wBACD,OAAOc;oBACX;oBACA;oBACA,KAAK;wBACD,OAAO,SAAS,GAAGxV,IAAZ;4BACHyV,gBAAgBa,GAAhB,CAAoB,OAAOtW,IAAI,CAAC,EAAZ,KAAmB,WAAWA,IAAI,CAAC,EAAnC,GAAwCA,IAAI,CAAC,EAAL,CAAQgO,IAApE;4BACA,IAAI;gCACAmF,OAAO9E,MAAP,IAAiBrO;4BACpB,SAAQ;gCACL0V;4BACH;wBACJ;oBACL,KAAK;wBACD,OAAO,SAAS,GAAG1V,IAAZ;4BACHyV,gBAAgBa,GAAhB,CAAoB,OAAOtW,IAAI,CAAC,EAAZ,KAAmB,WAAWA,IAAI,CAAC,EAAnC,GAAwCA,IAAI,CAAC,EAAL,CAAQgO,IAApE;4BACA,IAAI;gCACA,OAAOmF,OAAOlH,GAAP,IAAcjM;4BACxB,SAAQ;gCACL0V;4BACH;wBACJ;oBACL;wBACI,OAAOxC,cAAcA,CAAC1T,GAAf,CAAmB2T,QAAQzT,MAAM0T;gBAzBhD;YA2BH;QA7B4B;IA+BpC;AA1DqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxD1C;AACA;AACA;;;;CAIA,GAAW,SAASmD,eAAeC,GAAxB,EAA6BC,UAA7B;IACPD,IAAIC,UAAJ,GAAiBA;IACjB,OAAOD;AACV;AACD;;;;;CAKA,GAAW,SAASjL,SAASiL,GAAlB,EAAuBE,WAAvB,EAAoC3T,GAApC;IACP,IAAI,OAAO2T,gBAAgB,UAAU;QACjC3T,MAAM2T;QACNA,cAAc;IACjB;IACD,IAAI,OAAOA,gBAAgB,YAAY,OAAO3T,QAAQ,UAAU;QAC5D,MAAM,IAAIpD,MAAO,uKAAX;IACT;IACD6W,IAAIG,SAAJ,CAAcD,aAAa;QACvBE,UAAU7T;IADa;IAG3ByT,IAAIK,KAAJ,CAAU9T;IACVyT,IAAIM,GAAJ;IACA,OAAON;AACV;AACM,SAASO,0BAA0BC,GAAnC,EAAwCC,YAAxC;IACH,MAAMhW,UAAUyS,cAAcA,CAACO,IAAf,CAAoB+C,IAAI/V,OAAxB;IAChB,MAAMiW,gBAAgBjW,QAAQzB,GAAR,CAAY0P,2BAA2BA;IAC7D,MAAMiI,uBAAuBD,kBAAkBD,aAAaC,aAA5D;IACA,MAAME,0BAA0BnW,QAAQ0L,GAAR,CAAYwC,0CAA0CA;IACtF,OAAO;QACHgI;QACAC;IAFG;AAIV;AACM,MAAMC,+BAAgC,oBAAtC;AACA,MAAMC,6BAA8B,qBAApC;AACA,MAAMC,yBAAyB,oDAAI,OAAO,IAAI,GAA9C;AACA,MAAMC,sBAAsBnU,OAAOiU,4BAAnC;AACA,MAAMG,yBAAyBpU,OAAOgU,8BAAtC;AACA,SAASK,iBAAiBlB,GAA1B,EAA+B9O,UAAU,EAAzC;IACH,IAAI+P,0BAA0BjB,KAAK;QAC/B,OAAOA;IACV;IACD,MAAM,EAAEmB,SAAAA,EAAF,GAAgBC,mBAAOA,CAAC,GAA2B;IACzD,MAAMC,WAAWrB,IAAIsB,SAAJ,CAAc;IAC/BtB,IAAIuB,SAAJ,CAAe,YAAf,EAA4B;WACrB,OAAOF,aAAa,WAAW;YAC9BA;SADD,GAECvW,MAAMC,OAAN,CAAcsW,YAAYA,WAAW,EAFzC;QAGAF,UAAUN,8BAA8B,IAA/BvK,sBAAAA,CAAA;YACL;YACA;YACA;YACAkL,SAAS,IAAIC,KAAK;YAClBC,UAAU;YACVC,UAAU,QAAyC,SAAS,CAAK;YACjEC,QAAM;YACN7S,MAAM;QARD,GASFmC,QAAQnC,IAAR,KAAiBO,YAAY;YAC5BP,MAAMmC,QAAQnC,IAAAA;QADc,IAE5BO;QAER6R,UAAUL,4BAA4B,IAA7BxK,sBAAAA,CAAA;YACL;YACA;YACA;YACAkL,SAAS,IAAIC,KAAK;YAClBC,UAAU;YACVC,UAAU,QAAyC,SAAS,CAAK;YACjEC,QAAM;YACN7S,MAAM;QARD,GASFmC,QAAQnC,IAAR,KAAiBO,YAAY;YAC5BP,MAAMmC,QAAQnC,IAAAA;QADc,IAE5BO;KA5BZ;IA+BAzF,OAAOC,cAAP,CAAsBkW,KAAKiB,wBAAwB;QAC/ClX,OAAO;QACPC,YAAY;IAFmC;IAInD,OAAOgW;AACV;AACD;;CAEA,GAAW,MAAM6B,iBAAiB1Y,gDAAAA,KAAKA,EAAAA;IACnCgB,YAAY8V,UAAD,EAAa1X,OAAb,CAAqB;QAC5B,MAAMA;QACN,KAAK0X,UAAL,GAAkBA;IACrB;AAJmC;AAMxC;;;;;CAKA,GAAW,SAAS6B,UAAU9B,GAAnB,EAAwBC,UAAxB,EAAoC1X,OAApC;IACPyX,IAAIC,UAAJ,GAAiBA;IACjBD,IAAI+B,aAAJ,GAAoBxZ;IACpByX,IAAIM,GAAJ,CAAQ/X;AACX;AACD;;;;;CAKA,GAAW,SAASyZ,YAAY,EAAExB,GAAAA,EAAvB,EAA8BtX,IAA9B,EAAoC+Y,MAApC;IACP,MAAM7P,OAAO;QACTnI,cAAc;QACdD,YAAY;IAFH;IAIb,MAAMkY,YAAS5L,sBAAAA,CAAAA,sBAAAA,CAAA,IACRlE,OADQ;QAEX+P,UAAU;IAFC;IAIftY,OAAOC,cAAP,CAAsB0W,KAAKtX,MAA3BoN,sBAAAA,CAAAA,sBAAAA,CAAA,IACOlE,OADP;QAEIpJ,KAAK;YACD,MAAMe,QAAQkY,UACd;YACApY,OAAOC,cAAP,CAAsB0W,KAAKtX,MAA3BoN,sBAAAA,CAAAA,sBAAAA,CAAA,IACO4L,YADP;gBAEInY;YAFJ;YAIA,OAAOA;QACV;QACD0L,KAAM1L,CAAAA;YACFF,OAAOC,cAAP,CAAsB0W,KAAKtX,MAA3BoN,sBAAAA,CAAAA,sBAAAA,CAAA,IACO4L,YADP;gBAEInY;YAFJ;QAIH;IAhBL;AAkBH;;;AC1ID;AACO,MAAMqY;IACTjY,YAAYsW,YAAD,EAAeD,GAAf,EAAoBpU,OAApB,EAA6BkS,cAA7B,CAA4C;QACnD,IAAI+D,cACJ;QACA;QACA,MAAM1B,uBAAuBF,gBAAgBF,yBAAyBA,CAACC,KAAKC,cAAcE,oBAA1F;QACA,MAAM2B,cAAc,CAACD,eAAejW,QAAQpD,GAAR,CAAY6X,4BAA4BA,CAAxC,KAA8C,OAAO,KAAK,IAAIwB,aAAatY,KAA/G;QACA,KAAKwY,SAAL,GAAiBC,QAAQ,CAAC7B,wBAAwB2B,eAAe7B,gBAAgB6B,gBAAgB7B,aAAaC,aAAtF;QACxB,KAAK+B,cAAL,GAAsBhC,gBAAgB,OAAO,KAAK,IAAIA,aAAaC,aAAnE;QACA,KAAKgC,eAAL,GAAuBpE;IAC1B;IACDqE,SAAS;QACL,IAAI,CAAC,KAAKF,cAAV,EAA0B;YACtB,MAAM,IAAItZ,MAAM;QACnB;QACD,KAAKuZ,eAAL,CAAqBjN,GAArB,CAAyB;YACrB+B,MAAMqJ,4BAA4BA;YAClC9W,OAAO,KAAK0Y,cAFS;YAGrBf,UAAU;YACVC,UAAU,QAAyC,SAAS,CAAK;YACjEC,QAAM;YACN7S,MAAM;QANe;IAQ5B;IACD6T,UAAU;QACN;QACA;QACA;QACA,KAAKF,eAAL,CAAqBjN,GAArB,CAAyB;YACrB+B,MAAMqJ,4BAA4BA;YAClC9W,OAAO;YACP2X,UAAU;YACVC,UAAU,QAAyC,SAAS,CAAK;YACjEC,QAAM;YACN7S,MAAM;YACNyS,SAAS,IAAIC,KAAK;QAPG;IAS5B;AArC0B;;;ACD/B;AACA;AACA;AACA;AACA;AACA,SAASoB,WAAWpY,OAApB;IACI,MAAMqY,UAAU5F,cAAcA,CAACO,IAAf,CAAoBhT;IACpC,KAAK,MAAMsY,SAAS5L,iBAAiBA,CAAC;QAClC2L,QAAQjL,MAAR,CAAekL,MAAM9X,QAAN,GAAiBoB,WAAjB;IAClB;IACD,OAAO6Q,cAAcA,CAACK,IAAf,CAAoBuF;AAC9B;AACD,SAASE,WAAWvY,OAApB;IACI,MAAM2B,UAAU,IAAIyH,oCAAcA,CAACqJ,cAAcA,CAACO,IAAf,CAAoBhT;IACvD,OAAOwT,qBAAqBA,CAACV,IAAtB,CAA2BnR;AACrC;AACD,SAAS6W,kBAAkBxY,OAA3B,EAAoCqU,eAApC;IACI,MAAM1S,UAAU,IAAIyH,oCAAcA,CAACqJ,cAAcA,CAACO,IAAf,CAAoBhT;IACvD,OAAOmU,4BAA4BA,CAACC,IAA7B,CAAkCzS,SAAS0S;AACrD;AACM,MAAMoE,6BAA6B;IACtC;;;;;;;;EAQJ,GAAMrE,MAAMsE,OAAF,EAAW,EAAE3C,GAAF,EAAOR,GAAP,EAAYoD,UAAAA,EAAvB,EAAqCC,QAArC;QACF,IAAI5C,eAAenR;QACnB,IAAI8T,cAAc,kBAAkBA,YAAY;YAC5C;YACA3C,eAAe2C,WAAW3C,YAA1B;QACH;QACD,SAAS6C,uBAAuBlX,OAAhC;YACI,IAAI4T,KAAK;gBACLA,IAAIuB,SAAJ,CAAc,cAAcnV;YAC/B;QACJ;QACD,MAAMmI,QAAQ;QACd,MAAMgP,QAAQ;YACV,IAAI9Y,WAAW;gBACX,IAAI,CAAC8J,MAAM9J,OAAX,EAAoB;oBAChB;oBACA;oBACA8J,MAAM9J,OAAN,GAAgBoY,WAAWrC,IAAI/V,OAAL;gBAC7B;gBACD,OAAO8J,MAAM9J,OAAb;YACH;YACD,IAAI2B,WAAW;gBACX,IAAI,CAACmI,MAAMnI,OAAX,EAAoB;oBAChB;oBACA;oBACAmI,MAAMnI,OAAN,GAAgB4W,WAAWxC,IAAI/V,OAAL;gBAC7B;gBACD,OAAO8J,MAAMnI,OAAb;YACH;YACD,IAAIkS,kBAAkB;gBAClB,IAAI,CAAC/J,MAAM+J,cAAX,EAA2B;oBACvB/J,MAAM+J,cAAN,GAAuB2E,kBAAkBzC,IAAI/V,OAAL,EAAc,CAAC2Y,cAAc,OAAO,KAAK,IAAIA,WAAWtE,eAA1C,KAA+DkB,CAAAA,MAAMsD,yBAAyBhU,SAAAA;gBACvJ;gBACD,OAAOiF,MAAM+J,cAAb;YACH;YACD,IAAIkF,aAAa;gBACb,IAAI,CAACjP,MAAMiP,SAAX,EAAsB;oBAClBjP,MAAMiP,SAAN,GAAkB,IAAIpB,iBAAiBA,CAAC3B,cAAcD,KAAK,KAAKpU,OAA9C,EAAuD,KAAKkS,cAA5D;gBACrB;gBACD,OAAO/J,MAAMiP,SAAb;YACH;QA5BS;QA8Bd,OAAOL,QAAQM,GAAR,CAAYF,OAAOF,UAAUE;IACvC;AApDqC,EAAnC;;;ACpBP,MAAMG,2CAA2C,IAAIva,MAAM;AAC3D,MAAMwa;IACFf,UAAU;QACN,MAAMc;IACT;IACDnE,WAAW;QACP;QACA,OAAOjQ;IACV;IACDmU,MAAM;QACF,MAAMC;IACT;IACDE,OAAO;QACH,MAAMF;IACT;IACDG,YAAY;QACR,MAAMH;IACT;AAhBuB;AAkB5B,MAAMI,+BAA+B5b,WAAW6b,iBAAhD;AACO,SAASC;IACZ,IAAIF,8BAA8B;QAC9B,OAAO,IAAIA;IACd;IACD,OAAO,IAAIH;AACd;;;ACzBD;AACO,MAAMM,sBAAsBD,uBAAuBA,GAAnD;;;ACDP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,wBAAwBlQ,WAAWA;IACrC7J,YAAYuD,MAAD,CAAQ;QACf,MAAMA,OAAOwE,KAAb,EAAoBxE,OAAOwG,IAA3B;QACA,KAAKtG,UAAL,GAAkBF,OAAOtD,IAAzB;IACH;IACU,IAAPuD,UAAU;QACV,MAAM,IAAIzD,kBAAkBA,CAAC;YACzBE,MAAM,KAAKwD,UAAAA;QADc;IAGhC;IACDV,cAAc;QACV,MAAM,IAAIhD,kBAAkBA,CAAC;YACzBE,MAAM,KAAKwD,UAAAA;QADc;IAGhC;IACDL,YAAY;QACR,MAAM,IAAIrD,kBAAkBA,CAAC;YACzBE,MAAM,KAAKwD,UAAAA;QADc;IAGhC;AAnBqC;AAqB1C,MAAMuJ,yBAAiBA,GAAG;IACtB;QACIP,GAAGA;KAFe;IAItB;QACIE,sBAAsBA;KALJ;IAOtB;QACIC,oBAAoBA;KARF;CAA1B;AAWO,eAAeoN,QAAQzW,MAAvB;IACH,MAAMjF,+BAA+BA,IACrC;IACA,MAAM2b,kBAAkB,OAAOC,KAAKC,gBAAZ,KAAiC;IACzD,MAAMC,oBAAoB,OAAOF,KAAKG,oBAAZ,KAAqC,WAAWC,KAAKC,KAAL,CAAWL,KAAKG,oBAAhB,IAAwClV;IAClH5B,OAAOC,OAAP,CAAepB,GAAf,GAAqBgM,gBAAgBA,CAAC7K,OAAOC,OAAP,CAAepB,GAAhB,EAAqB;IAC1D,MAAMoY,aAAa,IAAI1S,OAAOA,CAACvE,OAAOC,OAAP,CAAepB,GAA3B,EAAgC;QAC/C9B,SAASiD,OAAOC,OAAP,CAAelD,OADuB;QAE/C4G,YAAY3D,OAAOC,OAAP,CAAe0D,UAAAA;IAFoB,IAInD;IACA;IACA,MAAMmE,OAAO;WACNmP,WAAWxR,YAAX,CAAwBqC,IAAxB;KADP;IAGA,KAAK,MAAM7K,OAAO6K,KAAK;QACnB,MAAMzL,QAAQ4a,WAAWxR,YAAX,CAAwBuL,MAAxB,CAA+B/T;QAC7C,IAAIA,QAAQ8N,uBAAuBA,IAAI9N,IAAIgF,UAAJ,CAAe8I,uBAAuBA,GAAG;YAC5E,MAAMmM,gBAAgBja,IAAIuB,SAAJ,CAAcuM,uBAAuBA,CAAC5M,MAAtC;YACtB8Y,WAAWxR,YAAX,CAAwB0E,MAAxB,CAA+B+M;YAC/B,KAAK,MAAMC,OAAO9a,MAAM;gBACpB4a,WAAWxR,YAAX,CAAwBjI,MAAxB,CAA+B0Z,eAAeC;YACjD;YACDF,WAAWxR,YAAX,CAAwB0E,MAAxB,CAA+BlN;QAClC;IACJ,EACD;IACA,MAAMyF,UAAUuU,WAAWvU,OAA3B;IACAuU,WAAWvU,OAAX,GAAqB;IACrB,MAAM0U,YAAYpX,OAAOC,OAAP,CAAelD,OAAf,CAAuB,gBAAzC;IACA,IAAIqa,aAAaH,WAAWvV,QAAX,KAAwB,UAAU;QAC/CuV,WAAWvV,QAAX,GAAsB;IACzB;IACD,MAAM2V,iBAAiBxa,2BAA2BA,CAACmD,OAAOC,OAAP,CAAelD,OAAhB;IAClD,MAAMua,gBAAgB,IAAIC,OAC1B;IACA,IAAI,CAACb,iBAAiB;QAClB,KAAK,MAAMrB,SAAS5L,yBAAiBA,CAAC;YAClC,MAAMxM,MAAMoY,MAAM9X,QAAN,GAAiBoB,WAAjB;YACZ,MAAMtC,QAAQgb,eAAe/b,GAAf,CAAmB2B;YACjC,IAAIZ,OAAO;gBACPib,cAAcvP,GAAd,CAAkB9K,KAAKoa,eAAe/b,GAAf,CAAmB2B;gBAC1Coa,eAAelN,MAAf,CAAsBlN;YACzB;QACJ;IACJ;IACD,MAAMua,eAAexb,MAAA,GAAiD,IAA8Bib;IACpG,MAAMhX,UAAU,IAAIuW,gBAAgB;QAChC9Z,MAAMsD,OAAOtD,IADmB;QAEhC;QACA8H,OAAOuF,yBAAyBA,CAACyN,cAAc,MAAMja,QAA9C;QACPiJ,MAAM;YACF0B,MAAMlI,OAAOC,OAAP,CAAeiI,IADnB;YAEFxB,KAAK1G,OAAOC,OAAP,CAAeyG,GAFlB;YAGF3J,SAASsa;YACT1Q,IAAI3G,OAAOC,OAAP,CAAe0G,EAJjB;YAKFQ,QAAQnH,OAAOC,OAAP,CAAekH,MALrB;YAMFxD,YAAY3D,OAAOC,OAAP,CAAe0D,UANzB;YAOF6D,QAAQxH,OAAOC,OAAP,CAAeuH,MAAAA;QAPrB;IAJ0B;IAcpC;;;;EAIJ,GAAM,IAAI4P,WAAW;QACbjb,OAAOC,cAAP,CAAsB6D,SAAS,YAAY;YACvC3D,YAAY;YACZD,OAAO;QAFgC;IAI9C;IACD,IAAI,CAAC7B,WAAWid,kBAAZ,IAAkCzX,OAAO0X,gBAA7C,EAA+D;QAC3Dld,WAAWid,kBAAX,GAAgC,IAAIzX,OAAO0X,gBAAX,CAA4B;YACxDC,QAAQ;YACRC,YAAY;YACZC,aAAW;YACXC,qBAAqB9b,SAJmC;YAKxDgc,KAAG;YACHX,gBAAgBrX,OAAOC,OAAP,CAAelD,OANyB;YAOxDkb,iBAAiB;YACjBC,sBAAsB;gBAClB,OAAO;oBACHC,SAAS,CAAC;oBACVC,QAAQ;oBACRC,eAAe;oBACfC,gBAAgB,EAJb;oBAKHC,SAAS;wBACLvF,eAAe;oBADV;gBALN;YASV;QAlBuD;IAoB/D;IACD,MAAMwF,QAAQ,IAAIzY,cAAcA,CAAC;QAC7BE;QACAvD,MAAMsD,OAAOtD,IAAAA;IAFgB;IAIjC,IAAI+C;IACJ,IAAIgZ,qBACJ;IACA,MAAMC,eAAe1Y,OAAOtD,IAAP,KAAgB,iBAAiBsD,OAAOtD,IAAP,KAAgB;IACtE,IAAIgc,cAAc;QACdjZ,WAAW,MAAM+V,0BAA0BA,CAACrE,IAA3B,CAAgCoF,mBAAmBA,EAAE;YAClEzD,KAAK7S;YACLyV,YAAY;gBACRtE,iBAAkB1S,CAAAA;oBACd+Z,sBAAsB/Z;gBACzB;gBACD;gBACAqU,cAAc,CAAC8D,qBAAqB,OAAO,KAAK,IAAIA,kBAAkB0B,OAAxD,KAAoE;oBAC9EvF,eAAe;oBACf2F,0BAA0B;oBAC1BC,uBAAuB;gBAHuD;YAL1E;QAFsD,GAanE,IAAI5Y,OAAO6Y,OAAP,CAAe5Y,SAASuY;IAClC,OAAM;QACH/Y,WAAW,MAAMO,OAAO6Y,OAAP,CAAe5Y,SAASuY;IAC5C,EACD;IACA,IAAI/Y,YAAY,CAAEA,CAAAA,oBAAoBwI,QAAAA,GAAW;QAC7C,MAAM,IAAIzC,UAAU;IACvB;IACD,IAAI/F,YAAYgZ,qBAAqB;QACjChZ,SAAS1C,OAAT,CAAiBgL,GAAjB,CAAqB,cAAc0Q;IACtC;IACD;;;;;EAKJ,GAAM,MAAM5P,UAAUpJ,YAAY,OAAO,KAAK,IAAIA,SAAS1C,OAAT,CAAiBzB,GAAjB,CAAqB;IACnE,IAAImE,YAAYoJ,SAAS;QACrB,MAAMiQ,aAAa,IAAIvU,OAAOA,CAACsE,SAAS;YACpCzD,aAAa;YACbrI,SAASiD,OAAOC,OAAP,CAAelD,OAFY;YAGpC4G,YAAY3D,OAAOC,OAAP,CAAe0D,UAAAA;QAHS;QAKxC,IAAI,IAAJ,EAAqD;YACjD,IAAImV,WAAW9V,IAAX,KAAoB/C,QAAQwG,OAAR,CAAgBzD,IAAxC,EAA8C;gBAC1C8V,WAAWpW,OAAX,GAAqBA,WAAWoW,WAAWpW,OAA3C;gBACAjD,SAAS1C,OAAT,CAAiBgL,GAAjB,CAAqB,wBAAwBjJ,OAAOga;YACvD;QACJ;QACD;;;;IAIR,GAAQ,MAAMC,qBAAqBhQ,aAAaA,CAACjK,OAAOga,aAAaha,OAAOmY;QACpE,IAAIG,aAAa;QACjB;QACA;QACA,CAAEpb,CAAAA,SAAA,IAA0D+c,CAAA,GAA4C;YACpGtZ,SAAS1C,OAAT,CAAiBgL,GAAjB,CAAqB,oBAAoBgR;QAC5C;IACJ;IACD;;;;EAIJ,GAAM,MAAM1R,WAAW5H,YAAY,OAAO,KAAK,IAAIA,SAAS1C,OAAT,CAAiBzB,GAAjB,CAAqB;IACpE,IAAImE,YAAY4H,YAAY,CAACqP,iBAAiB;QAC1C,MAAMwC,cAAc,IAAI3U,OAAOA,CAAC8C,UAAU;YACtCjC,aAAa;YACbrI,SAASiD,OAAOC,OAAP,CAAelD,OAFc;YAGtC4G,YAAY3D,OAAOC,OAAP,CAAe0D,UAAAA;QAHW;QAK1C;;;IAGR,GAAQlE,WAAW,IAAIwI,SAASxI,SAASyI,IAAtB,EAA4BzI;QACvC,IAAI,IAAJ,EAAqD;YACjD,IAAIyZ,YAAYlW,IAAZ,KAAqB/C,QAAQwG,OAAR,CAAgBzD,IAAzC,EAA+C;gBAC3CkW,YAAYxW,OAAZ,GAAsBA,WAAWwW,YAAYxW,OAA7C;gBACAjD,SAAS1C,OAAT,CAAiBgL,GAAjB,CAAqB,YAAYjJ,OAAOoa;YAC3C;QACJ;QACD;;;;IAIR,GAAQ,IAAI9B,WAAW;YACX3X,SAAS1C,OAAT,CAAiBoN,MAAjB,CAAwB;YACxB1K,SAAS1C,OAAT,CAAiBgL,GAAjB,CAAqB,qBAAqBgB,aAAaA,CAACjK,OAAOoa,cAAcpa,OAAOmY;QACvF;IACJ;IACD,MAAMkC,gBAAgB1Z,WAAWA,WAAWuI,YAAYA,CAACc,IAAb,IAC5C;IACA,MAAMsQ,4BAA4BD,cAAcpc,OAAd,CAAsBzB,GAAtB,CAA0B;IAC5D,MAAM+d,qBAAqB,EAA3B;IACA,IAAID,2BAA2B;QAC3B,KAAK,MAAM,CAACnc,KAAKZ,MAAjB,IAA2Bib,cAAc;YACrC6B,cAAcpc,OAAd,CAAsBgL,GAAtB,CAA2B,wBAAuB9K,IAAI,CAAtD,EAAyDZ;YACzDgd,mBAAmB9a,IAAnB,CAAwBtB;QAC3B;QACD,IAAIoc,mBAAmBlb,MAAnB,GAA4B,GAAG;YAC/Bgb,cAAcpc,OAAd,CAAsBgL,GAAtB,CAA0B,iCAAiCqR,4BAA4B,MAAMC,mBAAmBjW,IAAnB,CAAwB;QACxH;IACJ;IACD,OAAO;QACH3D,UAAU0Z;QACVtZ,WAAWH,QAAQ4Z,GAAR,CAAYd,KAAK,CAACnZ,eAAeA,CAAjC;QACXka,cAActZ,QAAQsZ,YAAAA;IAHnB;AAKV;;;AC3PD;AACA;;;;;;ACDO,SAASE,mBAAYA,CAACjV,KAAtB;IACH,IAAIkV,WAAWC,SAAX,CAAqBC,QAAzB,EAAmC;QAC/B,OAAOpV,MAAMoV,QAAN;IACV;IACD,MAAMC,aAAa;IACnB,MAAMC,MAAM,EAAZ;IACA,IAAK,IAAIC,IAAI,GAAGA,IAAIvV,MAAMrG,MAA1B,EAAkC4b,KAAKF,WAAY;QAC/CC,IAAIvb,IAAJ,CAASO,OAAOkb,YAAP,CAAoBre,KAApB,CAA0B,MAAM6I,MAAMyV,QAAN,CAAeF,GAAGA,IAAIF;IAClE;IACD,OAAOK,KAAKJ,IAAI1W,IAAJ,CAAS;AACxB;AACM,SAAS+W,aAAaC,OAAtB;IACH,IAAIV,WAAWW,UAAf,EAA2B;QACvB,OAAOX,WAAWW,UAAX,CAAsBD;IAChC;IACD,MAAME,SAASC,KAAKH;IACpB,MAAMI,QAAQ,IAAId,WAAWY,OAAOnc,MAAtB;IACd,IAAK,IAAI4b,IAAI,GAAGA,IAAIO,OAAOnc,MAA3B,EAAmC4b,IAAK;QACpCS,KAAK,CAACT,EAAN,GAAWO,OAAOG,UAAP,CAAkBV;IAChC;IACD,OAAOS;AACV;;;;;;;;;;;;;;;;;ACrBM,MAAME,kBAAkBjf;IAG3BgB,YAAY5B,OAAD,EAAU2I,OAAV,CAAmB;QAC1B,MAAM3I,SAAS2I;QADWmX,qBAAAA,CAAA,cADvB;QAGH,KAAK7Q,IAAL,GAAY,KAAKrN,WAAL,CAAiBqN,IAA7B;QACArO,MAAMmf,iBAAN,GAA0B,IAA1B,EAAgC,KAAKne,WAArC;IACH;AAPgC;sBAAxBie,WAAA,QACK;AAQX,MAAMG,iCAAiCH;IAM1Cje,YAAY5B,OAAD,EAAUigB,OAAV,EAAmBC,QAAQ,aAA3B,EAA0CC,SAAS,aAAnD,CAAkE;QACzE,MAAMngB,SAAS;YAAEoE,OAAO;gBAAE8b;gBAAOC;gBAAQF;YAAjB;QAAT;QAD0DH,qBAAAA,CAAA,cAJtE;QAIsEA,qBAAAA,CAAA;QAAAA,qBAAAA,CAAA;QAAAA,qBAAAA,CAAA;QAEzE,KAAKI,KAAL,GAAaA;QACb,KAAKC,MAAL,GAAcA;QACd,KAAKF,OAAL,GAAeA;IAClB;AAXmD;sBAA3CD,0BAAA,QACK;AAYX,MAAMI,mBAAmBP;IAM5Bje,YAAY5B,OAAD,EAAUigB,OAAV,EAAmBC,QAAQ,aAA3B,EAA0CC,SAAS,aAAnD,CAAkE;QACzE,MAAMngB,SAAS;YAAEoE,OAAO;gBAAE8b;gBAAOC;gBAAQF;YAAjB;QAAT;QAD0DH,qBAAAA,CAAA,cAJtE;QAIsEA,qBAAAA,CAAA;QAAAA,qBAAAA,CAAA;QAAAA,qBAAAA,CAAA;QAEzE,KAAKI,KAAL,GAAaA;QACb,KAAKC,MAAL,GAAcA;QACd,KAAKF,OAAL,GAAeA;IAClB;AAXqC;sBAA7BG,YAAA,QACK;AAYX,MAAMC,0BAA0BR;IAAUje,YAAA,GAAAX,IAAA;QAAA,SAAAA;QAAA6e,qBAAAA,CAAA,cAEtC;IAFsC;AAAA;sBAApCO,mBAAA,QACK;AAGX,MAAMC,uBAAgBA,SAAST;IAAUje,YAAA,GAAAX,IAAA;QAAA,SAAAA;QAAA6e,qBAAAA,CAAA,cAErC;IAFqC;AAAA;sBAAnCQ,uBAAgBA,EAAhB,QACK;AAGX,MAAMC,4BAA4BV;IAGrCje,YAAY5B,UAAU,6BAAX,EAA0C2I,OAA1C,CAAmD;QAC1D,MAAM3I,SAAS2I;QAD2CmX,qBAAAA,CAAA,cADvD;IAGN;AAL8C;sBAAtCS,qBAAA,QACK;AAMX,MAAMC,mBAAmBX;IAAUje,YAAA,GAAAX,IAAA;QAAA,SAAAA;QAAA6e,qBAAAA,CAAA,cAE/B;IAF+B;AAAA;sBAA7BU,YAAA,QACK;AAGX,MAAMC,mBAAmBZ;IAAUje,YAAA,GAAAX,IAAA;QAAA,SAAAA;QAAA6e,qBAAAA,CAAA,cAE/B;IAF+B;AAAA;sBAA7BW,YAAA,QACK;AAGX,MAAMC,mBAAmBb;IAAUje,YAAA,GAAAX,IAAA;QAAA,SAAAA;QAAA6e,qBAAAA,CAAA,cAE/B;IAF+B;AAAA;sBAA7BY,YAAA,QACK;AAGX,MAAMC,mBAAmBd;IAAUje,YAAA,GAAAX,IAAA;QAAA,SAAAA;QAAA6e,qBAAAA,CAAA,cAE/B;IAF+B;AAAA;sBAA7Ba,YAAA,QACK;AAGX,MAAMC,oBAAoBf;IAAUje,YAAA,GAAAX,IAAA;QAAA,SAAAA;QAAA6e,qBAAAA,CAAA,cAEhC;IAFgC;AAAA;sBAA9Bc,aAAA,QACK;AAGX,MAAMC,0BAA0BhB;IAGnCje,YAAY5B,UAAU,iDAAX,EAA8D2I,OAA9D,CAAuE;QAC9E,MAAM3I,SAAS2I;QAD+DmX,qBAAAA,CAAA,cAD3E;IAGN;AAL4C;sBAApCe,mBAAA,QACK;wBAObvc,OAAOwc,aAAA;AADL,MAAMC,iCAAiClB;IAI1Cje,YAAY5B,UAAU,sDAAX,EAAmE2I,OAAnE,CAA4E;QACnF,MAAM3I,SAAS2I;QADoEmX,qBAAAA,CAAA,MAAAkB,uBAAA;QAAAlB,qBAAAA,CAAA,cADhF;IAGN;AANmD;sBAA3CiB,0BAAA,QAEK;AAMX,MAAME,oBAAoBpB;IAG7Bje,YAAY5B,UAAU,mBAAX,EAAgC2I,OAAhC,CAAyC;QAChD,MAAM3I,SAAS2I;QADiCmX,qBAAAA,CAAA,cAD7C;IAGN;AALsC;sBAA9BmB,aAAA,QACK;AAMX,MAAMC,uCAAuCrB;IAGhDje,YAAY5B,UAAU,+BAAX,EAA4C2I,OAA5C,CAAqD;QAC5D,MAAM3I,SAAS2I;QAD6CmX,qBAAAA,CAAA,cADzD;IAGN;AALyD;sBAAjDoB,gCAAA,QACK;;;AC7FlB;AACA;AACA;AACA;AACA,MAAMI,YAAY,CAACC,KAAKC;IACpB,MAAMC,WAAW,CAACF,IAAInD,KAAJ,CAAU,eAAe,EAA1B,EAA8B7V,IAA9B,CAAmC;IACpD,OAAQ,cAAaiZ,WAAW,SAASC,SAAS,aAAaD,WAAW,MAA1E;AACH;AACD,MAAME,gBAAgB,OAAOC,SAASC,WAAWxf;IAC7C,IAAIif,YAAYjf,MAAM;QAClB,IAAIA,IAAIsL,IAAJ,KAAaiU,SAAS;YACtB,MAAM,IAAIhX,UAAW,gBAAegX,QAAQ,KAAtC;QACT;QACD,OAAOvf,IAAIyf,MAAJ,CAAW;YAAEC,QAAQ;YAAOpU,MAAMkU;QAAvB;IACrB;IACD,IAAI,CAACR,YAAYhf,MAAM;QACnB,MAAM,IAAIuI,UAAUwW,gBAAgB/e,KAAK,aAAa;IACzD;IACD,IAAI,CAACA,IAAI2f,WAAT,EAAsB;QAClB,MAAM,IAAIpX,UAAU;IACvB;IACD,IAAIvI,IAAIsL,IAAJ,KAAaiU,SAAS;QACtB,MAAM,IAAIhX,UAAW,gBAAegX,QAAQ,KAAtC;IACT;IACD,OAAOL,UAAU1C,aAAa,IAAIC,WAAW,MAAMmD,OAAOC,MAAP,CAAcC,SAAd,CAAwBN,WAAWxf,QAAS,GAAEuf,QAAQQ,WAAR,GAAsB,KAAvG;AACnB;AACM,MAAMC,SAAUhgB,CAAAA,MAAQsf,cAAc,UAAU,QAAQtf,KAAxD;AACA,MAAMigB,UAAWjgB,CAAAA,MAAQsf,cAAc,WAAW,SAAStf,KAA3D;AACP,MAAMkgB,aAAa,CAACC,GAAGC;IACnB,IAAID,EAAEE,UAAF,KAAiBD,EAAElf,MAAvB,EACI,OAAO;IACX,IAAK,IAAI4b,IAAI,GAAGA,IAAIqD,EAAEE,UAAtB,EAAkCvD,IAAK;QACnC,IAAIqD,CAAC,CAACrD,EAAF,KAASsD,CAAC,CAACtD,EAAf,EACI,OAAO;IACd;IACD,OAAO;AACV;AACD,MAAMwD,kBAAmBC,CAAAA,OAAU;QAAEA;QAAM5f,KAAK;IAAb;AACnC,MAAM6f,cAAeC,CAAAA;IACjB,MAAMC,QAAQD,MAAMF,IAAN,CAAWE,MAAM9f,GAAN,GAAzB;IACA,IAAI+f,QAAQ,MAAM;QACd,MAAMC,cAAcD,QAAQ;QAC5B,IAAIxf,SAAS;QACb,IAAK,IAAI4b,IAAI,GAAGA,IAAI6D,aAAa7D,IAAK;YAClC5b,SAAUA,UAAU,IAAKuf,MAAMF,IAAN,CAAWE,MAAM9f,GAAN,GAApC;QACH;QACD,OAAOO;IACV;IACD,OAAOwf;AACV;AACD,MAAME,cAAc,CAACH,OAAOI,QAAQ,CAAhB;IAChB,IAAIA,SAAS,GACT;IACJJ,MAAM9f,GAAN;IACA,MAAMO,SAASsf,YAAYC;IAC3BA,MAAM9f,GAAN,IAAaO;IACb,IAAI2f,QAAQ,GAAG;QACXD,YAAYH,OAAOI,QAAQ;IAC9B;AACJ;AACD,MAAMC,YAAY,CAACL,OAAOM,aAAaC;IACnC,IAAIP,MAAMF,IAAN,CAAWE,MAAM9f,GAAN,GAAX,KAA4BogB,aAAa;QACzC,MAAM,IAAIviB,MAAMwiB;IACnB;AACJ;AACD,MAAMC,cAAc,CAACR,OAAOvf;IACxB,MAAM4F,SAAS2Z,MAAMF,IAAN,CAAWvD,QAAX,CAAoByD,MAAM9f,GAA1B,EAA+B8f,MAAM9f,GAAN,GAAYO;IAC1Duf,MAAM9f,GAAN,IAAaO;IACb,OAAO4F;AACV;AACD,MAAMoa,oBAAqBT,CAAAA;IACvBK,UAAUL,OAAO,MAAM;IACvB,MAAMU,SAASX,YAAYC;IAC3B,OAAOQ,YAAYR,OAAOU;AAC7B;AACD,SAASC,iBAAiBX,KAA1B;IACIK,UAAUL,OAAO,MAAM;IACvBD,YAAYC;IACZK,UAAUL,OAAO,MAAM;IACvB,MAAMY,SAASb,YAAYC;IAC3BA,MAAM9f,GAAN,IAAa0gB;IACbP,UAAUL,OAAO,MAAM;IACvB,MAAMa,WAAWd,YAAYC;IAC7B,MAAMc,aAAad,MAAM9f,GAAzB;IACA,OAAO;QAAE4gB;QAAYC,aAAaF;IAA3B;AACV;AACD,SAASG,gBAAgBhB,KAAzB;IACIK,UAAUL,OAAO,MAAM;IACvBD,YAAYC;IACZK,UAAUL,OAAO,MAAM;IACvB,MAAMa,WAAWd,YAAYC;IAC7B,MAAMc,aAAad,MAAM9f,GAAzB;IACA,OAAO;QAAE4gB;QAAYC,aAAaF;IAA3B;AACV;AACD,MAAMI,6BAA8BjB,CAAAA;IAChC,MAAMkB,SAAST,kBAAkBT;IACjC,IAAIP,WAAWyB,QAAQ;QAAC;QAAM;QAAM;KAAtB,GAA8B;QACxC,OAAO;IACV;IACD,IAAI,CAACzB,WAAWyB,QAAQ;QAAC;QAAM;QAAM;QAAM;QAAM;QAAM;QAAM;KAA9C,GAAsD;QACjE,MAAM,IAAInjB,MAAM;IACnB;IACDsiB,UAAUL,OAAO,MAAM;IACvB,MAAMmB,cAAcpB,YAAYC;IAChC,MAAMoB,WAAWZ,YAAYR,OAAOmB;IACpC,KAAK,MAAM,EAAE/U,IAAF,EAAQiV,GAAAA,EAAnB,IAA4B;QACxB;YAAEjV,MAAM;YAASiV,KAAK;gBAAC;gBAAM;gBAAM;gBAAM;gBAAM;gBAAM;gBAAM;gBAAM;aAA3C;QAAtB;QACA;YAAEjV,MAAM;YAASiV,KAAK;gBAAC;gBAAM;gBAAM;gBAAM;gBAAM;aAAzB;QAAtB;QACA;YAAEjV,MAAM;YAASiV,KAAK;gBAAC;gBAAM;gBAAM;gBAAM;gBAAM;aAAzB;QAAtB;KAHJ,CAIG;QACC,IAAI5B,WAAW2B,UAAUC,MAAM;YAC3B,OAAOjV;QACV;IACJ;IACD,MAAM,IAAIrO,MAAM;AACnB;AACD,MAAMujB,gBAAgB,OAAOvC,WAAWwC,SAASC,KAAK1b;IAClD,IAAI2b;IACJ,IAAIC;IACJ,MAAMC,WAAW5C,cAAc;IAC/B,MAAM6C,eAAe,IAAOD,WAAW;YAAC;SAAJ,GAAgB;YAAC;SAArD;IACA,MAAME,eAAe,IAAMF,WAAW;YAAC;YAAW;SAAf,GAA4B;YAAC;YAAW;SAA3E;IACA,OAAQH;QACJ,KAAK;QACL,KAAK;QACL,KAAK;YACDC,YAAY;gBAAErV,MAAM;gBAAWjI,MAAO,OAAMqd,IAAIpd,KAAJ,CAAU,CAAC,GAAG;YAA9C;YACZsd,YAAYE;YACZ;QACJ,KAAK;QACL,KAAK;QACL,KAAK;YACDH,YAAY;gBAAErV,MAAM;gBAAqBjI,MAAO,OAAMqd,IAAIpd,KAAJ,CAAU,CAAC,GAAG;YAAxD;YACZsd,YAAYE;YACZ;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;YACDH,YAAY;gBACRrV,MAAM;gBACNjI,MAAO,OAAM2d,SAASN,IAAIpd,KAAJ,CAAU,CAAC,IAAI,OAAO,EAAE;YAFtC;YAIZsd,YAAYG;YACZ;QACJ,KAAK;QACL,KAAK;QACL,KAAK;YAAS;gBACV,MAAME,WAAW;oBAAEC,OAAO;oBAASC,OAAO;oBAASC,OAAO;gBAAzC;gBACjBT,YAAY;oBAAErV,MAAM;oBAAS+V,YAAYJ,QAAQ,CAACP,IAAD;gBAArC;gBACZE,YAAYE;gBACZ;YACH;QACD,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;YAAkB;gBACnB,IAAI;oBACA,MAAMO,aAAarc,QAAQsc,aAAR,CAAsBb;oBACzCE,YAAYU,eAAe,WAAW;wBAAE/V,MAAM;oBAAR,IAAqB;wBAAEA,MAAM;wBAAQ+V;oBAAhB;gBAC9D,EACD,OAAO5gB,OAAO;oBACV,MAAM,IAAIkc,uBAAgBA,CAAC;gBAC9B;gBACDiE,YAAYC,WAAW,EAAH,GAAQ;oBAAC;iBAA7B;gBACA;YACH;QACD,KAAK;QACL,KAAK;YACDF,YAAY;gBAAErV,MAAM;YAAR;YACZsV,YAAYE;YACZ;QACJ,KAAK;QACL,KAAK;QACL,KAAK;YACDH,YAAY;gBAAErV,MAAMoV;YAAR;YACZE,YAAYE;YACZ;QACJ;YACI,MAAM,IAAInE,uBAAgBA,CAAC;IAzDnC;IA2DA,OAAO0B,OAAOC,MAAP,CAAciD,SAAd,CAAwBtD,WAAWwC,SAASE,WAAW3b,SAASoZ,eAAgByC,CAAAA,WAAW,OAAO,QAAQD;AACpH;AACD,MAAMY,iBAAiB,CAACC,KAAKC;IACzB,OAAO/F,YAAYA,CAAC8F,IAAI9e,OAAJ,CAAY+e,SAAS;AAC5C;AACM,MAAMC,cAASA,GAAG,CAACF,KAAKf,KAAK1b;IAChC,MAAMyb,UAAUe,eAAeC,KAAK;IACpC,IAAIvb,OAAOlB;IACX,IAAI0b,KAAKjd,aAAa,YAAY;QAC9ByC,SAAS;QACTA,KAAKob,aAAL,GAAsBb,CAAAA;YAClB,MAAMvB,QAAQH,gBAAgB0B;YAC9BZ,iBAAiBX;YACjB,OAAOiB,2BAA2BjB;QACrC;IACJ;IACD,OAAOsB,cAAc,SAASC,SAASC,KAAKxa;AAC/C,EAZM;AAaA,MAAM0b,WAAW,CAACH,KAAKf,KAAK1b;IAC/B,MAAMyb,UAAUe,eAAeC,KAAK;IACpC,IAAIvb,OAAOlB;IACX,IAAI0b,KAAKjd,aAAa,YAAY;QAC9ByC,SAAS;QACTA,KAAKob,aAAL,GAAsBb,CAAAA;YAClB,MAAMvB,QAAQH,gBAAgB0B;YAC9BP,gBAAgBhB;YAChB,OAAOiB,2BAA2BjB;QACrC;IACJ;IACD,OAAOsB,cAAc,QAAQC,SAASC,KAAKxa;AAC9C,EAZM;AAaP,SAAS2b,aAAaC,GAAtB;IACI,MAAM5C,QAAQH,gBAAgB+C;IAC9BvC,UAAUL,OAAO,MAAM;IACvBD,YAAYC;IACZK,UAAUL,OAAO,MAAM;IACvBD,YAAYC;IACZ,IAAI4C,GAAG,CAAC5C,MAAM9f,GAAP,CAAH,KAAmB,MAAM;QACzBigB,YAAYH,OAAO;IACtB,OACI;QACDG,YAAYH,OAAO;IACtB;IACD,MAAM6C,YAAY7C,MAAM9f,GAAxB;IACAmgB,UAAUL,OAAO,MAAM;IACvB,MAAM8C,iBAAiB/C,YAAYC;IACnC,OAAO4C,IAAIrG,QAAJ,CAAasG,WAAWA,YAAYC,iBAAkB9C,CAAAA,MAAM9f,GAAN,GAAY2iB,SAAAA;AAC5E;AACD,SAASE,gBAAgBC,IAAzB;IACI,MAAMC,WAAWX,eAAeU,MAAM;IACtC,OAAOL,aAAaM;AACvB;AACM,MAAMC,aAAQA,GAAG,CAACX,KAAKf,KAAK1b;IAC/B,IAAIqd;IACJ,IAAI;QACAA,OAAOJ,gBAAgBR;IAC1B,EACD,OAAOhhB,OAAO;QACV,MAAM,IAAIuG,UAAU,yCAAyC;YAAEvG;QAAF;IAChE;IACD,OAAOmhB,SAASjE,UAAU1C,aAAaoH,OAAO,eAAe3B,KAAK1b;AACrE,EATM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzOP;AACA;AACA;AACA;AACA;AACO,eAAe0d,WAAWL,IAA1B,EAAgC3B,GAAhC,EAAqC1b,OAArC;IACH,IAAI,OAAOqd,SAAS,YAAYA,KAAKtf,OAAL,CAAa,kCAAkC,GAAG;QAC9E,MAAM,IAAIiE,UAAU;IACvB;IACD,OAAO4a,QAAQA,CAACS,MAAM3B,KAAK1b;AAC9B;AACM,eAAe2d,WAAWT,IAA1B,EAAgCxB,GAAhC,EAAqC1b,OAArC;IACH,IAAI,OAAOkd,SAAS,YAAYA,KAAKnf,OAAL,CAAa,mCAAmC,GAAG;QAC/E,MAAM,IAAIiE,UAAU;IACvB;IACD,OAAOob,SAASF,MAAMxB,KAAK1b;AAC9B;AACM,eAAe4d,YAAYC,KAA3B,EAAkCnC,GAAlC,EAAuC1b,OAAvC;IACH,IAAI,OAAO6d,UAAU,YAAYA,MAAM9f,OAAN,CAAc,mCAAmC,GAAG;QACjF,MAAM,IAAIiE,UAAU;IACvB;IACD,OAAO2a,UAAUkB,OAAOnC,KAAK1b;AAChC;AACM,eAAe8d,UAAUC,GAAzB,EAA8BrC,GAA9B,EAAmC1b,OAAnC;IACH,IAAI,CAACyd,SAASM,MAAM;QAChB,MAAM,IAAI/b,UAAU;IACvB;IACD,IAAIgc;IACJtC,QAAQqC,IAAIrC,GAAZ;IACAsC,QAAQhe,SAASoZ,eAAe2E,IAAIC,GAApC;IACA,OAAQD,IAAIE,GAAZ;QACI,KAAK;YACD,IAAI,OAAOF,IAAIG,CAAX,KAAiB,YAAY,CAACH,IAAIG,CAAtC,EAAyC;gBACrC,MAAM,IAAIlc,UAAU;YACvB;YACD,OAAOub,gBAAgBQ,IAAIG,CAAL;QAC1B,KAAK;YACD,IAAI,SAASH,OAAOA,IAAII,GAAJ,KAAY/f,WAAW;gBACvC,MAAM,IAAIuZ,iBAAiB;YAC9B;YACD,OAAO6F,SAAQpY,mBAAAA,CAAAA,mBAAAA,CAAA,IAAM2Y,MAAN;gBAAWrC;gBAAKsC;YAAhB;QACnB,KAAK;YAAO;gBACR,IAAI,OAAOD,IAAIrC,GAAX,KAAmB,YAAY,CAACqC,IAAIrC,GAAxC,EAA6C;oBACzC,MAAM,IAAI1Z,UAAU;gBACvB;gBACD,IAAI0Z,QAAQtd,aAAasd,QAAQqC,IAAIrC,GAArC,EAA0C;oBACtC,MAAM,IAAI1Z,UAAU;gBACvB;gBACD,OAAOwb,SAAQpY,mBAAAA,CAAAA,mBAAAA,CAAA,IAAM2Y,MAAN;oBAAWC;gBAAX;YAClB;QACD,KAAK;QACL,KAAK;YACD,OAAOR,SAAQpY,mBAAAA,CAAAA,mBAAAA,CAAA,IAAM2Y,MAAN;gBAAWrC;gBAAKsC;YAAhB;QACnB;YACI,MAAM,IAAIrG,iBAAiB;IAxBnC;AA0BH;;;ACxDM,MAAMyG,oBAAOA,GAAG,IAAIC,cAApB;AACA,MAAMC,UAAU,IAAIC,cAApB;AACP,MAAMC,YAAY,qDAAK,EAAE;AAClB,SAASC,OAAO,GAAGC,OAAnB;IACH,MAAMC,OAAOD,QAAQzX,MAAR,CAAe,CAAC2X,KAAK,EAAEjkB,MAAAA,EAAR,GAAqBikB,MAAMjkB,QAAQ;IAC/D,MAAMmiB,MAAM,IAAI5G,WAAWyI;IAC3B,IAAIpI,IAAI;IACR,KAAK,MAAMsI,UAAUH,QAAS;QAC1B5B,IAAIvY,GAAJ,CAAQsa,QAAQtI;QAChBA,KAAKsI,OAAOlkB,MAAZ;IACH;IACD,OAAOmiB;AACV;AACD,SAASgC,cAAchC,GAAvB,EAA4BjkB,KAA5B,EAAmCkmB,MAAnC;IACI,IAAIlmB,QAAQ,KAAKA,SAAS2lB,WAAW;QACjC,MAAM,IAAItZ,WAAY,6BAA4BsZ,YAAY,EAAE,aAAa3lB,MAAM,CAA7E;IACT;IACDikB,IAAIvY,GAAJ,CAAQ;QAAC1L,UAAU;QAAIA,UAAU;QAAIA,UAAU;QAAGA,QAAQ;KAA1D,EAAiEkmB;AACpE;AACM,SAASC,SAASnmB,KAAlB;IACH,MAAMomB,OAAOC,KAAKC,KAAL,CAAWtmB,QAAQ2lB;IAChC,MAAMY,MAAMvmB,QAAQ2lB;IACpB,MAAM1B,MAAM,IAAI5G,WAAW;IAC3B4I,cAAchC,KAAKmC,MAAM;IACzBH,cAAchC,KAAKsC,KAAK;IACxB,OAAOtC;AACV;AACM,SAASuC,SAASxmB,KAAlB;IACH,MAAMikB,MAAM,IAAI5G,WAAW;IAC3B4I,cAAchC,KAAKjkB;IACnB,OAAOikB;AACV;AACM,SAASwC,OAAOC,MAAhB;IACH,MAAMvI,QAAQ,IAAId,WAAWqJ,OAAO5kB,MAAtB;IACd,IAAK,IAAI4b,IAAI,GAAGA,IAAIgJ,OAAO5kB,MAA3B,EAAmC4b,IAAK;QACpC,MAAMiJ,OAAOD,OAAOtI,UAAP,CAAkBV;QAC/B,IAAIiJ,OAAO,KAAK;YACZ,MAAM,IAAIxd,UAAU;QACvB;QACDgV,KAAK,CAACT,EAAN,GAAWiJ;IACd;IACD,OAAOxI;AACV;;;AC1CD;AACA;AACO,SAASsG,OAAOtc,KAAhB;IACH,IAAIkV,WAAWW,UAAf,EAA2B;QACvB,OAAOX,WAAWW,UAAX,CAAsB,OAAO7V,UAAU,WAAWA,QAAQsd,OAAOA,CAAChB,MAAR,CAAetc,QAAQ;YACpFye,UAAU;QAD0E;IAG3F;IACD,IAAI7I,UAAU5V;IACd,IAAI4V,mBAAmBV,YAAY;QAC/BU,UAAU0H,OAAOA,CAAChB,MAAR,CAAe1G;IAC5B;IACDA,UAAUA,QAAQjZ,OAAR,CAAgB,MAAM,KAAKA,OAA3B,CAAmC,MAAM;IACnD,IAAI;QACA,OAAOgZ,YAAYA,CAACC;IACvB,EACD,OAAM;QACF,MAAM,IAAI5U,UAAU;IACvB;AACJ;AACM,SAASsd,gBAAMA,CAACte,KAAhB;IACH,IAAI0e,YAAY1e;IAChB,IAAI,OAAO0e,cAAc,UAAU;QAC/BA,YAAYtB,QAAQkB,MAAR,CAAeI;IAC9B;IACD,IAAIxJ,WAAWC,SAAX,CAAqBC,QAAzB,EAAmC;QAC/B,OAAOsJ,UAAUtJ,QAAV,CAAmB;YAAEqJ,UAAU;YAAaE,aAAa;QAAtC;IAC7B;IACD,OAAO1J,aAAayJ,WAAW/hB,OAAxB,CAAgC,MAAM,IAAIA,OAA1C,CAAkD,OAAO,KAAKA,OAA9D,CAAsE,OAAO;AACvF;;;AC7BD,MAAMiiB,WAAW,CAACtZ,MAAMtO,OAAO,gBAAd,GAAmC,IAAIgK,UAAW,kDAAiDhK,KAAK,WAAWsO,KAAK,CAArF;AACpD,MAAMuZ,cAAc,CAAClE,WAAWrV,OAASqV,UAAUrV,IAAV,KAAmBA;AAC5D,SAASwZ,cAAczhB,IAAvB;IACI,OAAO2d,SAAS3d,KAAKiI,IAAL,CAAUhI,KAAV,CAAgB,IAAI;AACvC;AACD,SAASyhB,gBAAgBpE,SAAzB,EAAoCqE,QAApC;IACI,MAAMC,SAASH,cAAcnE,UAAUtd,IAAX;IAC5B,IAAI4hB,WAAWD,UACX,MAAMJ,SAAU,OAAMI,SAAS,CAAjB,EAAoB;AACzC;AACD,SAAS1D,cAAcZ,GAAvB;IACI,OAAQA;QACJ,KAAK;YACD,OAAO;QACX,KAAK;YACD,OAAO;QACX,KAAK;YACD,OAAO;QACX;YACI,MAAM,IAAIzjB,MAAM;IARxB;AAUH;AACD,SAASioB,WAAWzmB,GAApB,EAAyB0mB,KAAzB;IACI,IAAIA,SAAS,CAAC1mB,IAAI2mB,MAAJ,CAAWre,QAAX,CAAoBoe,QAAQ;QACtC,MAAM,IAAIne,UAAW,sEAAqEme,MAAM,EAA1F;IACT;AACJ;AACM,SAASE,kBAAkB5mB,GAA3B,EAAgCiiB,GAAhC,EAAqCyE,KAArC;IACH,OAAQzE;QACJ,KAAK;QACL,KAAK;QACL,KAAK;YAAS;gBACV,IAAI,CAACmE,YAAYpmB,IAAIkiB,SAAL,EAAgB,SAC5B,MAAMiE,SAAS;gBACnBG,gBAAgBtmB,IAAIkiB,SAAL,EAAgBK,SAASN,IAAIpd,KAAJ,CAAU,IAAI;gBACtD;YACH;QACD,KAAK;QACL,KAAK;QACL,KAAK;YAAS;gBACV,IAAI,CAACuhB,YAAYpmB,IAAIkiB,SAAL,EAAgB,sBAC5B,MAAMiE,SAAS;gBACnBG,gBAAgBtmB,IAAIkiB,SAAL,EAAgBK,SAASN,IAAIpd,KAAJ,CAAU,IAAI;gBACtD;YACH;QACD,KAAK;QACL,KAAK;QACL,KAAK;YAAS;gBACV,IAAI,CAACuhB,YAAYpmB,IAAIkiB,SAAL,EAAgB,YAC5B,MAAMiE,SAAS;gBACnBG,gBAAgBtmB,IAAIkiB,SAAL,EAAgBK,SAASN,IAAIpd,KAAJ,CAAU,IAAI;gBACtD;YACH;QACD,KAAK;QACL,KAAK;YAAS;gBACV,IAAI,CAACuhB,YAAYpmB,IAAIkiB,SAAL,EAAgB,YAC5B,MAAMiE,SAAS;gBACnB;YACH;QACD,KAAK;QACL,KAAK;QACL,KAAK;YAAa;gBACd,IAAI,CAACC,YAAYpmB,IAAIkiB,SAAL,EAAgBD,MAC5B,MAAMkE,SAASlE;gBACnB;YACH;QACD,KAAK;QACL,KAAK;QACL,KAAK;YAAS;gBACV,IAAI,CAACmE,YAAYpmB,IAAIkiB,SAAL,EAAgB,UAC5B,MAAMiE,SAAS;gBACnB,MAAMI,WAAW1D,cAAcZ;gBAC/B,MAAMuE,SAASxmB,IAAIkiB,SAAJ,CAAcU,UAA7B;gBACA,IAAI4D,WAAWD,UACX,MAAMJ,SAASI,UAAU;gBAC7B;YACH;QACD;YACI,MAAM,IAAIhe,UAAU;IAlD5B;IAoDAke,WAAWzmB,KAAK0mB;AACnB;AACM,SAASG,kBAAkB7mB,GAA3B,EAAgCiiB,GAAhC,EAAqCyE,KAArC;IACH,OAAQzE;QACJ,KAAK;QACL,KAAK;QACL,KAAK;YAAW;gBACZ,IAAI,CAACmE,YAAYpmB,IAAIkiB,SAAL,EAAgB,YAC5B,MAAMiE,SAAS;gBACnB,MAAMI,WAAWhE,SAASN,IAAIpd,KAAJ,CAAU,GAAG,IAAI;gBAC3C,MAAM2hB,SAASxmB,IAAIkiB,SAAJ,CAAchhB,MAA7B;gBACA,IAAIslB,WAAWD,UACX,MAAMJ,SAASI,UAAU;gBAC7B;YACH;QACD,KAAK;QACL,KAAK;QACL,KAAK;YAAU;gBACX,IAAI,CAACH,YAAYpmB,IAAIkiB,SAAL,EAAgB,WAC5B,MAAMiE,SAAS;gBACnB,MAAMI,WAAWhE,SAASN,IAAIpd,KAAJ,CAAU,GAAG,IAAI;gBAC3C,MAAM2hB,SAASxmB,IAAIkiB,SAAJ,CAAchhB,MAA7B;gBACA,IAAIslB,WAAWD,UACX,MAAMJ,SAASI,UAAU;gBAC7B;YACH;QACD,KAAK;YAAQ;gBACT,OAAQvmB,IAAIkiB,SAAJ,CAAcrV,IAAtB;oBACI,KAAK;oBACL,KAAK;wBACD;oBACJ;wBACI,MAAMsZ,SAAS;gBALvB;gBAOA;YACH;QACD,KAAK;QACL,KAAK;QACL,KAAK;YACD,IAAI,CAACC,YAAYpmB,IAAIkiB,SAAL,EAAgB,WAC5B,MAAMiE,SAAS;YACnB;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;YAAgB;gBACjB,IAAI,CAACC,YAAYpmB,IAAIkiB,SAAL,EAAgB,aAC5B,MAAMiE,SAAS;gBACnBG,gBAAgBtmB,IAAIkiB,SAAL,EAAgBK,SAASN,IAAIpd,KAAJ,CAAU,IAAI,OAAO;gBAC7D;YACH;QACD;YACI,MAAM,IAAI0D,UAAU;IAjD5B;IAmDAke,WAAWzmB,KAAK0mB;AACnB;;;ACvID,SAAS9oB,QAAQkpB,GAAjB,EAAsBN,MAAtB,EAA8B,GAAGO,KAAjC;IACIA,QAAQA,MAAMhS,MAAN,CAAa8C;IACrB,IAAIkP,MAAM7lB,MAAN,GAAe,GAAG;QAClB,MAAM8lB,OAAOD,MAAME,GAAN;QACbH,OAAQ,eAAcC,MAAM5gB,IAAN,CAAW,MAAM,OAAO6gB,KAAK,EAAnD;IACH,OACI,IAAID,MAAM7lB,MAAN,KAAiB,GAAG;QACzB4lB,OAAQ,eAAcC,KAAK,CAAC,EAAG,OAAMA,KAAK,CAAC,EAAG,GAA9C;IACH,OACI;QACDD,OAAQ,WAAUC,KAAK,CAAC,EAAG,GAA3B;IACH;IACD,IAAIP,UAAU,MAAM;QAChBM,OAAQ,aAAYN,OAAO,CAA3B;IACH,OACI,IAAI,OAAOA,WAAW,cAAcA,OAAO3Z,IAA3C,EAAiD;QAClDia,OAAQ,sBAAqBN,OAAO3Z,IAAK,EAAzC;IACH,OACI,IAAI,OAAO2Z,WAAW,YAAYA,UAAU,MAAM;QACnD,IAAIA,OAAOhnB,WAAP,EAAoBqN,MAAM;YAC1Bia,OAAQ,4BAA2BN,OAAOhnB,WAAP,CAAmBqN,IAAK,EAA3D;QACH;IACJ;IACD,OAAOia;AACV;AACM,MAAM/H,iCAAeA,GAAG,CAACyH,QAAQ,GAAGO,QAAUnpB,QAAQ,gBAAgB4oB,WAAWO,OAAjF;AACA,MAAMG,UAAU,CAACjF,KAAKuE,QAAQ,GAAGO,QAAUnpB,QAAS,eAAcqkB,IAAI,oBAApB,EAA0CuE,WAAWO,OAAvG;;;AC1BP;AACA;AACA;AACO,SAASI,eAAelF,GAAxB,EAA6BjiB,GAA7B;IACH,IAAIiiB,IAAIjd,UAAJ,CAAe,SAASid,IAAIjd,UAAJ,CAAe,OAAO;QAC9C,MAAM,EAAEoiB,aAAAA,EAAF,GAAoBpnB,IAAIkiB,SAA9B;QACA,IAAI,OAAOkF,kBAAkB,YAAYA,gBAAgB,MAAM;YAC3D,MAAM,IAAI7e,UAAW,GAAE0Z,IAAI,sDAArB;QACT;IACJ;AACJ;AACD,SAASoF,gBAAgBpF,GAAzB,EAA8BC,SAA9B;IACI,MAAMtd,OAAQ,OAAMqd,IAAIpd,KAAJ,CAAU,CAAC,GAAG,CAAlC;IACA,OAAQod;QACJ,KAAK;QACL,KAAK;QACL,KAAK;YACD,OAAO;gBAAErd;gBAAMiI,MAAM;YAAd;QACX,KAAK;QACL,KAAK;QACL,KAAK;YACD,OAAO;gBAAEjI;gBAAMiI,MAAM;gBAAWya,YAAY/E,SAASN,IAAIpd,KAAJ,CAAU,CAAC,IAAI,OAAO;YAApE;QACX,KAAK;QACL,KAAK;QACL,KAAK;YACD,OAAO;gBAAED;gBAAMiI,MAAM;YAAd;QACX,KAAK;QACL,KAAK;QACL,KAAK;YACD,OAAO;gBAAEjI;gBAAMiI,MAAM;gBAAS+V,YAAYV,UAAUU,UAAAA;YAA7C;QACX,KAAK;QACL,KAAK;YACD,OAAO;gBAAE/V,MAAM;YAAR;QACX,KAAK;QACL,KAAK;QACL,KAAK;YACD,OAAO;gBAAEA,MAAMoV;YAAR;QACX;YACI,MAAM,IAAI/D,uBAAgBA,CAAE,OAAM+D,IAAI,4DAAhC;IAzBd;AA2BH;AACD,eAAesF,UAAUtF,GAAzB,EAA8BjiB,GAA9B,EAAmC0mB,KAAnC;IACI,IAAI1mB,eAAeyc,YAAY;QAC3B,IAAI,CAACwF,IAAIjd,UAAJ,CAAe,OAAO;YACvB,MAAM,IAAIuD,UAAUwW,iCAAeA,CAAC/e,KAAK,aAAa,aAAa;QACtE;QACD,OAAO4f,OAAOC,MAAP,CAAciD,SAAd,CAAwB,OAAO9iB,KAAK;YAAE4E,MAAO,OAAMqd,IAAIpd,KAAJ,CAAU,CAAC,GAAG,CAA7B;YAAgCgI,MAAM;QAAtC,GAAgD,OAAO;YAAC6Z;SAA5F;IACV;IACDE,iBAAiBA,CAAC5mB,KAAKiiB,KAAKyE;IAC5B,OAAO1mB;AACV;AACM,eAAewnB,KAAKvF,GAApB,EAAyBjiB,GAAzB,EAA8BugB,IAA9B;IACH,MAAMkH,YAAY,MAAMF,UAAUtF,KAAKjiB,KAAK;IAC5CmnB,eAAelF,KAAKwF;IACpB,MAAMC,YAAY,MAAM9H,OAAOC,MAAP,CAAc2H,IAAd,CAAmBH,gBAAgBpF,KAAKwF,UAAUvF,SAAhB,GAA4BuF,WAAWlH;IACjG,OAAO,IAAI9D,WAAWiL;AACzB;AACM,eAAeC,OAAO1F,GAAtB,EAA2BjiB,GAA3B,EAAgC0nB,SAAhC,EAA2CnH,IAA3C;IACH,MAAMkH,YAAY,MAAMF,UAAUtF,KAAKjiB,KAAK;IAC5CmnB,eAAelF,KAAKwF;IACpB,MAAMvF,YAAYmF,gBAAgBpF,KAAKwF,UAAUvF,SAAhB;IACjC,IAAI;QACA,OAAO,MAAMtC,OAAOC,MAAP,CAAc8H,MAAd,CAAqBzF,WAAWuF,WAAWC,WAAWnH;IACtE,EACD,OAAM;QACF,OAAO;IACV;AACJ;;;ACnED;AACO,MAAMqH,cAAc1lB,SAApB;AACA,SAAS2lB,aAAazoB,KAAtB,EAA6ByN,IAA7B;IACH,IAAIzN,OAAO;QACP,MAAM,IAAImJ,UAAW,GAAEsE,KAAK,yBAAtB;IACT;AACJ;AACM,SAASib,gBAAgB1oB,KAAzB,EAAgC2oB,KAAhC,EAAuCC,UAAvC;IACH,IAAI;QACA,OAAOnE,MAAMA,CAACzkB;IACjB,EACD,OAAM;QACF,MAAM,IAAI4oB,WAAY,kCAAiCD,MAAM,CAAvD;IACT;AACJ;AACM,eAAeE,OAAO/F,SAAtB,EAAiC3B,IAAjC;IACH,MAAM2H,eAAgB,OAAMhG,UAAUrd,KAAV,CAAgB,CAAC,GAAG,CAAhD;IACA,OAAO,IAAI4X,WAAW,MAAMmD,OAAOC,MAAP,CAAcoI,MAAd,CAAqBC,cAAc3H;AAClE;;;AClBD,MAAM4H,eAAgB/oB,CAAAA,QAAU,OAAOA,UAAU,YAAYA,UAAU;AAChE,SAAS4kB,oBAAQA,CAACzc,KAAlB;IACH,IAAI,CAAC4gB,aAAa5gB,UAAUrI,OAAOwd,SAAP,CAAiBpc,QAAjB,CAA0B6S,IAA1B,CAA+B5L,WAAW,mBAAmB;QACrF,OAAO;IACV;IACD,IAAIrI,OAAOkpB,cAAP,CAAsB7gB,WAAW,MAAM;QACvC,OAAO;IACV;IACD,IAAI8gB,QAAQ9gB;IACZ,MAAOrI,OAAOkpB,cAAP,CAAsBC,WAAW,KAAM;QAC1CA,QAAQnpB,OAAOkpB,cAAP,CAAsBC;IACjC;IACD,OAAOnpB,OAAOkpB,cAAP,CAAsB7gB,WAAW8gB;AAC3C;AACM,SAASC,WAAW,GAAGxoB,OAAvB;IACH,MAAMyoB,UAAUzoB,QAAQiV,MAAR,CAAe8C;IAC/B,IAAI0Q,QAAQrnB,MAAR,KAAmB,KAAKqnB,QAAQrnB,MAAR,KAAmB,GAAG;QAC9C,OAAO;IACV;IACD,IAAIikB;IACJ,KAAK,MAAMqD,UAAUD,QAAS;QAC1B,MAAME,aAAavpB,OAAO2L,IAAP,CAAY2d;QAC/B,IAAI,CAACrD,OAAOA,IAAID,IAAJ,KAAa,GAAG;YACxBC,MAAM,IAAIza,IAAI+d;YACd;QACH;QACD,KAAK,MAAMC,aAAaD,WAAY;YAChC,IAAItD,IAAI3Z,GAAJ,CAAQkd,YAAY;gBACpB,OAAO;YACV;YACDvD,IAAIhQ,GAAJ,CAAQuT;QACX;IACJ;IACD,OAAO;AACV;AACM,MAAMC,QAAS3oB,CAAAA,MAAQgkB,oBAAQA,CAAChkB,QAAQ,OAAOA,IAAIwkB,GAAX,KAAmB,SAA3D;AACA,MAAMoE,eAAgB5oB,CAAAA,MAAQA,IAAIwkB,GAAJ,KAAY,SAC3CxkB,CAAAA,IAAIwkB,GAAJ,KAAY,SAAS,OAAOxkB,IAAI6oB,IAAX,KAAoB,YAAa,OAAO7oB,IAAI8oB,CAAX,KAAiB,UADtE;AAEA,MAAMC,cAAe/oB,CAAAA,MAAQA,IAAIwkB,GAAJ,KAAY,SAASxkB,IAAI8oB,CAAJ,KAAUnkB,aAAa3E,IAAI6oB,IAAJ,KAAalkB,UAAtF;AACA,MAAMqkB,cAAehpB,CAAAA,MAAQA,IAAIwkB,GAAJ,KAAY,SAAS,OAAOxkB,IAAIykB,CAAX,KAAiB,SAAnE;;;ACvCA,SAASwE,gBAAgBjpB,GAAzB;IACH,IAAI,CAACgf,uBAAWA,CAAChf,MAAM;QACnB,MAAM,IAAIxB,MAAM;IACnB;AACJ;AACM,MAAMwgB,uBAAWA,GAAIhf,CAAAA;IACxB,IAAIA,KAAG,CAAGkC,OAAOgnB,WAAV,CAAH,KAA8B,aAC9B,OAAO;IACX,IAAI;QACA,OAAOlpB,eAAempB;IACzB,EACD,OAAM;QACF,OAAO;IACV;AACJ,EATM;AAUA,MAAMlK,uBAAWA,GAAIjf,CAAAA,MAAQA,KAAG,CAAGkC,OAAOgnB,WAAV,CAAH,KAA8B,YAA3D;AACA,MAAME,YAAappB,CAAAA,MAAQgf,uBAAWA,CAAChf,QAAQif,uBAAWA,CAACjf,KAA3D;;;AChBP;AACA;AACA;AACA,MAAMqpB,MAAOrpB,CAAAA,MAAQA,KAAG,CAAGkC,OAAOgnB,WAAV,CAAxB;AACA,MAAMI,eAAe,CAACrH,KAAKjiB,KAAK0mB;IAC5B,IAAI1mB,IAAIupB,GAAJ,KAAY5kB,WAAW;QACvB,IAAI4hB;QACJ,OAAQG;YACJ,KAAK;YACL,KAAK;gBACDH,WAAW;gBACX;YACJ,KAAK;YACL,KAAK;gBACDA,WAAW;gBACX;QARR;QAUA,IAAIvmB,IAAIupB,GAAJ,KAAYhD,UAAU;YACtB,MAAM,IAAIhe,UAAW,sDAAqDge,SAAS,eAA7E;QACT;IACJ;IACD,IAAIvmB,IAAIiiB,GAAJ,KAAYtd,aAAa3E,IAAIiiB,GAAJ,KAAYA,KAAK;QAC1C,MAAM,IAAI1Z,UAAW,sDAAqD0Z,IAAI,eAAxE;IACT;IACD,IAAI9hB,MAAMC,OAAN,CAAcJ,IAAIwpB,OAAlB,GAA4B;QAC5B,IAAIC;QACJ,OAAQ;YACJ,KAAK/C,UAAU,UAAUA,UAAU;YACnC,KAAKzE,QAAQ;YACb,KAAKA,IAAI3Z,QAAJ,CAAa;gBACdmhB,gBAAgB/C;gBAChB;YACJ,KAAKzE,IAAIjd,UAAJ,CAAe;gBAChBykB,gBAAgB;gBAChB;YACJ,KAAK,0BAA0BtoB,IAA1B,CAA+B8gB;gBAChC,IAAI,CAACA,IAAI3Z,QAAJ,CAAa,UAAU2Z,IAAIrc,QAAJ,CAAa,OAAO;oBAC5C6jB,gBAAgB/C,UAAU,YAAY,YAAY;gBACrD,OACI;oBACD+C,gBAAgB/C;gBACnB;gBACD;YACJ,KAAKA,UAAU,aAAazE,IAAIjd,UAAJ,CAAe;gBACvCykB,gBAAgB;gBAChB;YACJ,KAAK/C,UAAU;gBACX+C,gBAAgBxH,IAAIjd,UAAJ,CAAe,SAAS,cAAc;gBACtD;QAtBR;QAwBA,IAAIykB,iBAAiBzpB,IAAIwpB,OAAJ,EAAalhB,WAAWmhB,mBAAmB,OAAO;YACnE,MAAM,IAAIlhB,UAAW,+DAA8DkhB,cAAc,eAA3F;QACT;IACJ;IACD,OAAO;AACV;AACD,MAAMC,qBAAqB,CAACzH,KAAKjiB,KAAK0mB;IAClC,IAAI1mB,eAAeyc,YACf;IACJ,IAAI6H,KAAA,CAAUtkB,MAAM;QAChB,IAAIskB,WAAA,CAAgBtkB,QAAQspB,aAAarH,KAAKjiB,KAAK0mB,QAC/C;QACJ,MAAM,IAAIne,UAAW,yHAAf;IACT;IACD,IAAI,CAAC6gB,SAASA,CAACppB,MAAM;QACjB,MAAM,IAAIuI,UAAUwW,OAAeA,CAACkD,KAAKjiB,KAAK,aAAa,aAAa,gBAAgB;IAC3F;IACD,IAAIA,IAAIsL,IAAJ,KAAa,UAAU;QACvB,MAAM,IAAI/C,UAAW,GAAE8gB,IAAIrpB,KAAK,6DAA1B;IACT;AACJ;AACD,MAAM2pB,sBAAsB,CAAC1H,KAAKjiB,KAAK0mB;IACnC,IAAIpC,KAAA,CAAUtkB,MAAM;QAChB,OAAQ0mB;YACJ,KAAK;YACL,KAAK;gBACD,IAAIpC,YAAA,CAAiBtkB,QAAQspB,aAAarH,KAAKjiB,KAAK0mB,QAChD;gBACJ,MAAM,IAAIne,UAAW,uDAAf;YACV,KAAK;YACL,KAAK;gBACD,IAAI+b,WAAA,CAAgBtkB,QAAQspB,aAAarH,KAAKjiB,KAAK0mB,QAC/C;gBACJ,MAAM,IAAIne,UAAW,sDAAf;QAVd;IAYH;IACD,IAAI,CAAC6gB,SAASA,CAACppB,MAAM;QACjB,MAAM,IAAIuI,UAAUwW,OAAeA,CAACkD,KAAKjiB,KAAK,aAAa,aAAa;IAC3E;IACD,IAAIA,IAAIsL,IAAJ,KAAa,UAAU;QACvB,MAAM,IAAI/C,UAAW,GAAE8gB,IAAIrpB,KAAK,kEAA1B;IACT;IACD,IAAIA,IAAIsL,IAAJ,KAAa,UAAU;QACvB,OAAQob;YACJ,KAAK;gBACD,MAAM,IAAIne,UAAW,GAAE8gB,IAAIrpB,KAAK,sEAA1B;YACV,KAAK;gBACD,MAAM,IAAIuI,UAAW,GAAE8gB,IAAIrpB,KAAK,yEAA1B;QAJd;IAMH;IACD,IAAIA,IAAIsL,IAAJ,KAAa,WAAW;QACxB,OAAQob;YACJ,KAAK;gBACD,MAAM,IAAIne,UAAW,GAAE8gB,IAAIrpB,KAAK,uEAA1B;YACV,KAAK;gBACD,MAAM,IAAIuI,UAAW,GAAE8gB,IAAIrpB,KAAK,wEAA1B;QAJd;IAMH;AACJ;AACM,SAAS4pB,aAAa3H,GAAtB,EAA2BjiB,GAA3B,EAAgC0mB,KAAhC;IACH,OAAQzE,IAAI1gB,SAAJ,CAAc,GAAG;QACrB,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;YACDmoB,mBAAmBzH,KAAKjiB,KAAK0mB;YAC7B;QACJ;YACIiD,oBAAoB1H,KAAKjiB,KAAK0mB;IATtC;AAWH;;;ACzHD;AACO,SAASmD,aAAaC,GAAtB,EAA2BC,iBAA3B,EAA8CC,gBAA9C,EAAgEC,eAAhE,EAAiFC,UAAjF;IACH,IAAIA,WAAWC,IAAX,KAAoBxlB,aAAaslB,iBAAiBE,SAASxlB,WAAW;QACtE,MAAM,IAAImlB,IAAI;IACjB;IACD,IAAI,CAACG,mBAAmBA,gBAAgBE,IAAhB,KAAyBxlB,WAAW;QACxD,OAAO,IAAI+F;IACd;IACD,IAAI,CAACvK,MAAMC,OAAN,CAAc6pB,gBAAgBE,IAA9B,KACDF,gBAAgBE,IAAhB,CAAqBjpB,MAArB,KAAgC,KAChC+oB,gBAAgBE,IAAhB,CAAqBrmB,IAArB,CAA2ByD,CAAAA,QAAU,OAAOA,UAAU,YAAYA,MAAMrG,MAAN,KAAiB,IAAI;QACvF,MAAM,IAAI4oB,IAAI;IACjB;IACD,IAAIM;IACJ,IAAIJ,qBAAqBrlB,WAAW;QAChCylB,aAAa,IAAI9P,IAAI;eAAIpb,OAAOe,OAAP,CAAe+pB;eAAsBD,kBAAkB9pB,OAAlB;SAAjD;IAChB,OACI;QACDmqB,aAAaL;IAChB;IACD,KAAK,MAAMrB,aAAauB,gBAAgBE,IAAxC,CAA8C;QAC1C,IAAI,CAACC,WAAW5e,GAAX,CAAekd,YAAY;YAC5B,MAAM,IAAIxK,uBAAgBA,CAAE,+BAA8BwK,UAAU,oBAA9D;QACT;QACD,IAAIwB,UAAU,CAACxB,UAAX,KAA0B/jB,WAAW;YACrC,MAAM,IAAImlB,IAAK,+BAA8BpB,UAAU,aAAjD;QACT;QACD,IAAI0B,WAAW/rB,GAAX,CAAeqqB,cAAcuB,eAAe,CAACvB,UAAhB,KAA+B/jB,WAAW;YACvE,MAAM,IAAImlB,IAAK,+BAA8BpB,UAAU,8BAAjD;QACT;IACJ;IACD,OAAO,IAAIhe,IAAIuf,gBAAgBE,IAAxB;AACV;;;AChCM,SAASE,mBAAmBC,MAA5B,EAAoCC,UAApC;IACH,IAAIA,eAAe5lB,aACd,EAACxE,MAAMC,OAAN,CAAcmqB,eAAeA,WAAWzmB,IAAX,CAAiB0mB,CAAAA,IAAM,OAAOA,MAAM,SAApC,GAAgD;QAC/E,MAAM,IAAIjiB,UAAW,IAAG+hB,OAAO,qCAAzB;IACT;IACD,IAAI,CAACC,YAAY;QACb,OAAO5lB;IACV;IACD,OAAO,IAAI+F,IAAI6f;AAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTD;AACA,MAAME,iBAAiB;AACvB,SAASC,cAAcpG,GAAvB;IACI,IAAIpC;IACJ,IAAIC;IACJ,OAAQmC,IAAIE,GAAZ;QACI,KAAK;YAAO;gBACR,OAAQF,IAAIrC,GAAZ;oBACI,KAAK;oBACL,KAAK;oBACL,KAAK;wBACDC,YAAY;4BAAErV,MAAMyX,IAAIrC,GAAAA;wBAAZ;wBACZE,YAAYmC,IAAIuE,IAAJ,GAAW;4BAAC;yBAAZ,GAAsB;4BAAC;yBAAnC;wBACA;oBACJ;wBACI,MAAM,IAAI3K,uBAAgBA,CAACuM;gBARnC;gBAUA;YACH;QACD,KAAK;YAAO;gBACR,OAAQnG,IAAIrC,GAAZ;oBACI,KAAK;oBACL,KAAK;oBACL,KAAK;wBACDC,YAAY;4BAAErV,MAAM;4BAAWjI,MAAO,OAAM0f,IAAIrC,GAAJ,CAAQpd,KAAR,CAAc,CAAC,GAAG;wBAAlD;wBACZsd,YAAYmC,IAAIwE,CAAJ,GAAQ;4BAAC;yBAAT,GAAmB;4BAAC;yBAAhC;wBACA;oBACJ,KAAK;oBACL,KAAK;oBACL,KAAK;wBACD5G,YAAY;4BAAErV,MAAM;4BAAqBjI,MAAO,OAAM0f,IAAIrC,GAAJ,CAAQpd,KAAR,CAAc,CAAC,GAAG;wBAA5D;wBACZsd,YAAYmC,IAAIwE,CAAJ,GAAQ;4BAAC;yBAAT,GAAmB;4BAAC;yBAAhC;wBACA;oBACJ,KAAK;oBACL,KAAK;oBACL,KAAK;oBACL,KAAK;wBACD5G,YAAY;4BACRrV,MAAM;4BACNjI,MAAO,OAAM2d,SAAS+B,IAAIrC,GAAJ,CAAQpd,KAAR,CAAc,CAAC,IAAI,OAAO,EAAE;wBAF1C;wBAIZsd,YAAYmC,IAAIwE,CAAJ,GAAQ;4BAAC;4BAAW;yBAApB,GAAmC;4BAAC;4BAAW;yBAA3D;wBACA;oBACJ;wBACI,MAAM,IAAI5K,uBAAgBA,CAACuM;gBAxBnC;gBA0BA;YACH;QACD,KAAK;YAAM;gBACP,OAAQnG,IAAIrC,GAAZ;oBACI,KAAK;oBACL,KAAK;oBACL,KAAK;wBACDC,YAAY;4BACRrV,MAAM;4BACN+V,YAAY;gCAAEH,OAAO;gCAASC,OAAO;gCAASC,OAAO;4BAAzC,GAAmD2B,IAAIrC,GAAvD;wBAFJ;wBAIZE,YAAYmC,IAAIwE,CAAJ,GAAQ;4BAAC;yBAAT,GAAmB;4BAAC;yBAAhC;wBACA;oBACJ,KAAK;oBACL,KAAK;oBACL,KAAK;oBACL,KAAK;wBACD5G,YAAY;4BAAErV,MAAM;4BAAQ+V,YAAY0B,IAAIqG,GAAAA;wBAAhC;wBACZxI,YAAYmC,IAAIwE,CAAJ,GAAQ;4BAAC;yBAAT,GAAyB,EAArC;wBACA;oBACJ;wBACI,MAAM,IAAI5K,uBAAgBA,CAACuM;gBAlBnC;gBAoBA;YACH;QACD,KAAK;YAAO;gBACR,OAAQnG,IAAIrC,GAAZ;oBACI,KAAK;oBACL,KAAK;wBACDC,YAAY;4BAAErV,MAAM;wBAAR;wBACZsV,YAAYmC,IAAIwE,CAAJ,GAAQ;4BAAC;yBAAT,GAAmB;4BAAC;yBAAhC;wBACA;oBACJ,KAAK;oBACL,KAAK;oBACL,KAAK;oBACL,KAAK;wBACD5G,YAAY;4BAAErV,MAAMyX,IAAIqG,GAAAA;wBAAZ;wBACZxI,YAAYmC,IAAIwE,CAAJ,GAAQ;4BAAC;yBAAT,GAAyB,EAArC;wBACA;oBACJ;wBACI,MAAM,IAAI5K,uBAAgBA,CAACuM;gBAdnC;gBAgBA;YACH;QACD;YACI,MAAM,IAAIvM,uBAAgBA,CAAC;IAtFnC;IAwFA,OAAO;QAAEgE;QAAWC;IAAb;AACV;AACM,eAAe4B,mBAAQA,CAACO,GAAxB;IACH,IAAI,CAACA,IAAIrC,GAAT,EAAc;QACV,MAAM,IAAI1Z,UAAU;IACvB;IACD,MAAM,EAAE2Z,SAAF,EAAaC,SAAAA,EAAb,GAA2BuI,cAAcpG;IAC/C,MAAMtC,UAAOrW,uBAAAA,CAAA,IAAQ2Y;IACrB,IAAItC,QAAQwC,GAAR,KAAgB,OAAO;QACvB,OAAOxC,QAAQC,GAAf;IACH;IACD,OAAOD,QAAQuH,GAAf;IACA,OAAO3J,OAAOC,MAAP,CAAciD,SAAd,CAAwB,OAAOd,SAASE,WAAWoC,IAAIC,GAAJ,IAAYD,CAAAA,IAAIwE,CAAJ,IAASxE,IAAIuE,IAAb,GAAoB,QAAQ,OAAOvE,IAAIkF,OAAJ,IAAerH;AAC3H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1GD;AACA;AACA;AACA;AACA,MAAMyI,iBAAiB;AACvB,IAAIhhB;AACJ,MAAMihB,YAAY,OAAO7qB,KAAKskB,KAAKrC,KAAK6I,SAAS,KAA/B;IACdlhB,UAAU,IAAImhB;IACd,IAAIC,SAASphB,MAAMvL,GAAN,CAAU2B;IACvB,IAAIgrB,QAAM,CAAG/I,IAAb,EAAmB;QACf,OAAO+I,MAAM,CAAC/I,IAAd;IACH;IACD,MAAMwF,YAAY,MAAM1D,mBAAQA,CAAApY,0BAAAA,CAAAA,0BAAAA,CAAA,IAAM2Y,MAAN;QAAWrC;IAAX;IAChC,IAAI6I,QACA5rB,OAAO4rB,MAAP,CAAc9qB;IAClB,IAAI,CAACgrB,QAAQ;QACTphB,MAAMkB,GAAN,CAAU9K,KAAK;YAAE,CAACiiB,IAAD,EAAOwF;QAAT;IAClB,OACI;QACDuD,MAAM,CAAC/I,IAAP,GAAcwF;IACjB;IACD,OAAOA;AACV;AACD,MAAMwD,kBAAkB,CAACC,WAAWjJ;IAChCrY,UAAU,IAAImhB;IACd,IAAIC,SAASphB,MAAMvL,GAAN,CAAU6sB;IACvB,IAAIF,QAAM,CAAG/I,IAAb,EAAmB;QACf,OAAO+I,MAAM,CAAC/I,IAAd;IACH;IACD,MAAMG,WAAW8I,UAAU5f,IAAV,KAAmB;IACpC,MAAMqU,cAAcyC,WAAW,OAAO;IACtC,IAAIqF;IACJ,IAAIyD,UAAUC,iBAAV,KAAgC,UAAU;QAC1C,OAAQlJ;YACJ,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;gBACD;YACJ;gBACI,MAAM,IAAI1Z,UAAUqiB;QAP5B;QASAnD,YAAYyD,UAAUE,WAAV,CAAsBF,UAAUC,iBAAhC,EAAmDxL,aAAayC,WAAW,EAAH,GAAQ;YAAC;SAAjF;IACf;IACD,IAAI8I,UAAUC,iBAAV,KAAgC,WAAW;QAC3C,IAAIlJ,QAAQ,WAAWA,QAAQ,WAAW;YACtC,MAAM,IAAI1Z,UAAUqiB;QACvB;QACDnD,YAAYyD,UAAUE,WAAV,CAAsBF,UAAUC,iBAAhC,EAAmDxL,aAAa;YACxEyC,WAAW,WAAW;SADd;IAGf;IACD,OAAQ8I,UAAUC,iBAAlB;QACI,KAAK;QACL,KAAK;QACL,KAAK;YAAa;gBACd,IAAIlJ,QAAQiJ,UAAUC,iBAAV,CAA4BpL,WAA5B,IAA2C;oBACnD,MAAM,IAAIxX,UAAUqiB;gBACvB;gBACDnD,YAAYyD,UAAUE,WAAV,CAAsBF,UAAUC,iBAAhC,EAAmDxL,aAAa;oBACxEyC,WAAW,WAAW;iBADd;YAGf;IAVL;IAYA,IAAI8I,UAAUC,iBAAV,KAAgC,OAAO;QACvC,IAAIvmB;QACJ,OAAQqd;YACJ,KAAK;gBACDrd,OAAO;gBACP;YACJ,KAAK;YACL,KAAK;YACL,KAAK;gBACDA,OAAO;gBACP;YACJ,KAAK;YACL,KAAK;YACL,KAAK;gBACDA,OAAO;gBACP;YACJ,KAAK;YACL,KAAK;YACL,KAAK;gBACDA,OAAO;gBACP;YACJ;gBACI,MAAM,IAAI2D,UAAUqiB;QApB5B;QAsBA,IAAI3I,IAAIjd,UAAJ,CAAe,aAAa;YAC5B,OAAOkmB,UAAUE,WAAV,CAAsB;gBACzBve,MAAM;gBACNjI;YAFyB,GAG1B+a,aAAayC,WAAW;gBAAC;aAAJ,GAAiB;gBAAC;aAHnC;QAIV;QACDqF,YAAYyD,UAAUE,WAAV,CAAsB;YAC9Bve,MAAMoV,IAAIjd,UAAJ,CAAe,QAAQ,YAAY;YACzCJ;QAF8B,GAG/B+a,aAAa;YAACyC,WAAW,WAAW;SAH3B;IAIf;IACD,IAAI8I,UAAUC,iBAAV,KAAgC,MAAM;QACtC,MAAME,OAAO,IAAI/Q,IAAI;YACjB;gBAAC;gBAAc;aADE;YAEjB;gBAAC;gBAAa;aAFG;YAGjB;gBAAC;gBAAa;aAHG;SAAR;QAKb,MAAMsI,aAAayI,KAAKhtB,GAAL,CAAS6sB,UAAUI,oBAAV,EAAgC1I;QAC5D,IAAI,CAACA,YAAY;YACb,MAAM,IAAIra,UAAUqiB;QACvB;QACD,MAAMW,gBAAgB;YAAE9I,OAAO;YAASC,OAAO;YAASC,OAAO;QAAzC;QACtB,IAAI4I,aAAa,CAACtJ,IAAd,IAAsBW,eAAe2I,aAAa,CAACtJ,IAAvD,EAA6D;YACzDwF,YAAYyD,UAAUE,WAAV,CAAsB;gBAC9Bve,MAAM;gBACN+V;YAF8B,GAG/BjD,aAAa;gBAACyC,WAAW,WAAW;aAH3B;QAIf;QACD,IAAIH,IAAIjd,UAAJ,CAAe,YAAY;YAC3ByiB,YAAYyD,UAAUE,WAAV,CAAsB;gBAC9Bve,MAAM;gBACN+V;YAF8B,GAG/BjD,aAAayC,WAAW,EAAH,GAAQ;gBAAC;aAHrB;QAIf;IACJ;IACD,IAAI,CAACqF,WAAW;QACZ,MAAM,IAAIlf,UAAUqiB;IACvB;IACD,IAAI,CAACI,QAAQ;QACTphB,MAAMkB,GAAN,CAAUogB,WAAW;YAAE,CAACjJ,IAAD,EAAOwF;QAAT;IACxB,OACI;QACDuD,MAAM,CAAC/I,IAAP,GAAcwF;IACjB;IACD,OAAOA;AACV;AACM,eAAe+D,aAAaxrB,GAA5B,EAAiCiiB,GAAjC;IACH,IAAIjiB,eAAeyc,YAAY;QAC3B,OAAOzc;IACV;IACD,IAAIgf,uBAAWA,CAAChf,MAAM;QAClB,OAAOA;IACV;IACD,IAAIif,uBAAWA,CAACjf,MAAM;QAClB,IAAIA,IAAIsL,IAAJ,KAAa,UAAU;YACvB,OAAOtL,IAAIyf,MAAJ;QACV;QACD,IAAI,iBAAiBzf,OAAO,OAAOA,IAAIorB,WAAX,KAA2B,YAAY;YAC/D,IAAI;gBACA,OAAOH,gBAAgBjrB,KAAKiiB;YAC/B,EACD,OAAOtkB,KAAK;gBACR,IAAIA,eAAe4K,WAAW;oBAC1B,MAAM5K;gBACT;YACJ;QACJ;QACD,IAAI2mB,MAAMtkB,IAAIyf,MAAJ,CAAW;YAAEC,QAAQ;QAAV;QACrB,OAAOmL,UAAU7qB,KAAKskB,KAAKrC;IAC9B;IACD,IAAI0G,KAAKA,CAAC3oB,MAAM;QACZ,IAAIA,IAAIykB,CAAR,EAAW;YACP,OAAOZ,MAAMA,CAAC7jB,IAAIykB,CAAL;QAChB;QACD,OAAOoG,UAAU7qB,KAAKA,KAAKiiB,KAAK;IACnC;IACD,MAAM,IAAIzjB,MAAM;AACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAektB,gBAAgBC,GAA/B,EAAoC3rB,GAApC,EAAyCuG,OAAzC;IACH,IAAI,CAACyd,oBAAQA,CAAC2H,MAAM;QAChB,MAAM,IAAItN,UAAUA,CAAC;IACxB;IACD,IAAIsN,IAAIC,SAAJ,KAAkBjnB,aAAagnB,IAAInD,MAAJ,KAAe7jB,WAAW;QACzD,MAAM,IAAI0Z,UAAUA,CAAC;IACxB;IACD,IAAIsN,IAAIC,SAAJ,KAAkBjnB,aAAa,OAAOgnB,IAAIC,SAAX,KAAyB,UAAU;QAClE,MAAM,IAAIvN,UAAUA,CAAC;IACxB;IACD,IAAIsN,IAAI9N,OAAJ,KAAgBlZ,WAAW;QAC3B,MAAM,IAAI0Z,UAAUA,CAAC;IACxB;IACD,IAAI,OAAOsN,IAAIjE,SAAX,KAAyB,UAAU;QACnC,MAAM,IAAIrJ,UAAUA,CAAC;IACxB;IACD,IAAIsN,IAAInD,MAAJ,KAAe7jB,aAAa,CAACqf,oBAAQA,CAAC2H,IAAInD,MAAL,GAAc;QACnD,MAAM,IAAInK,UAAUA,CAAC;IACxB;IACD,IAAIwN,aAAa;IACjB,IAAIF,IAAIC,SAAR,EAAmB;QACf,IAAI;YACA,MAAM3B,kBAAkBwB,MAAIA,CAACE,IAAIC,SAAL;YAC5BC,aAAa/R,KAAKC,KAAL,CAAW8K,OAAOA,CAAChB,MAAR,CAAeoG;QAC1C,EACD,OAAM;YACF,MAAM,IAAI5L,UAAUA,CAAC;QACxB;IACJ;IACD,IAAI,CAACiK,UAAUA,CAACuD,YAAYF,IAAInD,MAAjB,GAA0B;QACrC,MAAM,IAAInK,UAAUA,CAAC;IACxB;IACD,MAAM6L,aAAUve,mBAAAA,CAAAA,mBAAAA,CAAA,IACTkgB,aACAF,IAAInD,MAFK;IAIhB,MAAMsD,aAAajC,YAAYA,CAACxL,UAAUA,EAAE,IAAI/D,IAAI;QAAC;YAAC;YAAO;SAAT;KAAR,GAA0B/T,SAAS4jB,MAAM0B,YAAY3B;IACjG,IAAI/K,MAAM;IACV,IAAI2M,WAAWtgB,GAAX,CAAe,QAAQ;QACvB2T,MAAM0M,WAAW1M,GAAjB;QACA,IAAI,OAAOA,QAAQ,WAAW;YAC1B,MAAM,IAAId,UAAUA,CAAC;QACxB;IACJ;IACD,MAAM,EAAE4D,GAAAA,EAAF,GAAUiI;IAChB,IAAI,OAAOjI,QAAQ,YAAY,CAACA,KAAK;QACjC,MAAM,IAAI5D,UAAUA,CAAC;IACxB;IACD,MAAMkM,aAAahkB,WAAW8jB,kBAAkBA,CAAC,cAAc9jB,QAAQgkB,UAAvB;IAChD,IAAIA,cAAc,CAACA,WAAW/e,GAAX,CAAeyW,MAAM;QACpC,MAAM,IAAIhE,iBAAiBA,CAAC;IAC/B;IACD,IAAIkB,KAAK;QACL,IAAI,OAAOwM,IAAI9N,OAAX,KAAuB,UAAU;YACjC,MAAM,IAAIQ,UAAUA,CAAC;QACxB;IACJ,OACI,IAAI,OAAOsN,IAAI9N,OAAX,KAAuB,YAAY,CAAE8N,CAAAA,IAAI9N,OAAJ,YAAuBpB,UAAAA,GAAa;QAC9E,MAAM,IAAI4B,UAAUA,CAAC;IACxB;IACD,IAAI0N,cAAc;IAClB,IAAI,OAAO/rB,QAAQ,YAAY;QAC3BA,MAAM,MAAMA,IAAI6rB,YAAYF;QAC5BI,cAAc;IACjB;IACDnC,YAAYA,CAAC3H,KAAKjiB,KAAK;IACvB,MAAMugB,OAAOyE,MAAMA,CAAC2G,IAAIC,SAAJ,KAAkBjnB,YAAYkhB,MAAMA,CAAC8F,IAAIC,SAAL,IAAkB,IAAInP,cAAcoJ,MAAMA,CAAC,MAAM,OAAO8F,IAAI9N,OAAX,KAAuB,WAC1HsB,MACI0G,MAAMA,CAAC8F,IAAI9N,OAAL,IACN8G,oBAAOA,CAACkB,MAAR,CAAe8F,IAAI9N,OAAnB,IACJ8N,IAAI9N,OAJS;IAKnB,MAAM6J,YAAYI,eAAeA,CAAC6D,IAAIjE,SAAL,EAAgB,aAAarJ,UAAUA;IACxE,MAAMoG,IAAI,MAAM+G,YAAYA,CAACxrB,KAAKiiB;IAClC,MAAM+J,WAAW,MAAMrE,MAAMA,CAAC1F,KAAKwC,GAAGiD,WAAWnH;IACjD,IAAI,CAACyL,UAAU;QACX,MAAM,IAAIlN,8BAA8BA;IAC3C;IACD,IAAIjB;IACJ,IAAIsB,KAAK;QACLtB,UAAUiK,eAAeA,CAAC6D,IAAI9N,OAAL,EAAc,WAAWQ,UAAUA;IAC/D,OACI,IAAI,OAAOsN,IAAI9N,OAAX,KAAuB,UAAU;QACtCA,UAAU8G,oBAAOA,CAACkB,MAAR,CAAe8F,IAAI9N,OAAnB;IACb,OACI;QACDA,UAAU8N,IAAI9N,OAAd;IACH;IACD,MAAM/W,SAAS;QAAE+W;IAAF;IACf,IAAI8N,IAAIC,SAAJ,KAAkBjnB,WAAW;QAC7BmC,OAAOmjB,eAAP,GAAyB4B;IAC5B;IACD,IAAIF,IAAInD,MAAJ,KAAe7jB,WAAW;QAC1BmC,OAAOmlB,iBAAP,GAA2BN,IAAInD,MAA/B;IACH;IACD,IAAIuD,aAAa;QACb,OAAApgB,mBAAAA,CAAAA,mBAAAA,CAAA,IAAY7E,SAAZ;YAAoB9G,KAAKykB;QAAzB;IACH;IACD,OAAO3d;AACV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7GD;AACA;AACA;AACO,eAAeolB,cAAcP,GAA7B,EAAkC3rB,GAAlC,EAAuCuG,OAAvC;IACH,IAAIolB,eAAelP,YAAY;QAC3BkP,MAAM9G,OAAOA,CAAChB,MAAR,CAAe8H;IACxB;IACD,IAAI,OAAOA,QAAQ,UAAU;QACzB,MAAM,IAAItN,UAAUA,CAAC;IACxB;IACD,MAAM,EAAE,GAAG4L,eAAL,EAAsB,GAAGpM,OAAzB,EAAkC,GAAG6J,SAArC,EAAgDxmB,MAAAA,EAAhD,GAA2DyqB,IAAIhoB,KAAJ,CAAU;IAC3E,IAAIzC,WAAW,GAAG;QACd,MAAM,IAAImd,UAAUA,CAAC;IACxB;IACD,MAAM2N,WAAW,MAAMN,eAAeA,CAAC;QAAE7N;QAAS+N,WAAW3B;QAAiBvC;IAAvC,GAAoD1nB,KAAKuG;IAChG,MAAMO,SAAS;QAAE+W,SAASmO,SAASnO,OAApB;QAA6BoM,iBAAiB+B,SAAS/B,eAAAA;IAAvD;IACf,IAAI,OAAOjqB,QAAQ,YAAY;QAC3B,OAAA2L,2BAAAA,CAAAA,2BAAAA,CAAA,IAAY7E,SAAZ;YAAoB9G,KAAKgsB,SAAShsB,GAAAA;QAAlC;IACH;IACD,OAAO8G;AACV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpBD;AACA;AACA;AACA,MAAMqlB,QAASC,CAAAA,OAAS3G,KAAKC,KAAL,CAAW0G,KAAKC,OAAL,KAAiB;AACpD,MAAMC,SAAS;AACf,MAAMC,OAAOD,SAAS;AACtB,MAAME,MAAMD,OAAO;AACnB,MAAME,OAAOD,MAAM;AACnB,MAAME,OAAOF,MAAM;AACnB,MAAMG,QAAQ;AACP,SAASC,KAAKC,GAAd;IACH,MAAMC,UAAUH,MAAMI,IAAN,CAAWF;IAC3B,IAAI,CAACC,WAAYA,OAAO,CAAC,EAAR,IAAcA,OAAO,CAAC,EAAvC,EAA4C;QACxC,MAAM,IAAIvkB,UAAU;IACvB;IACD,MAAMnJ,QAAQ4tB,WAAWF,OAAO,CAAC,EAAT;IACxB,MAAMG,OAAOH,OAAO,CAAC,EAAR,CAAWprB,WAAX;IACb,IAAIwrB;IACJ,OAAQD;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;YACDC,cAAczH,KAAK0H,KAAL,CAAW/tB;YACzB;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;YACD8tB,cAAczH,KAAK0H,KAAL,CAAW/tB,QAAQktB;YACjC;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;YACDY,cAAczH,KAAK0H,KAAL,CAAW/tB,QAAQmtB;YACjC;QACJ,KAAK;QACL,KAAK;QACL,KAAK;YACDW,cAAczH,KAAK0H,KAAL,CAAW/tB,QAAQotB;YACjC;QACJ,KAAK;QACL,KAAK;QACL,KAAK;YACDU,cAAczH,KAAK0H,KAAL,CAAW/tB,QAAQqtB;YACjC;QACJ;YACIS,cAAczH,KAAK0H,KAAL,CAAW/tB,QAAQstB;YACjC;IAlCR;IAoCA,IAAII,OAAO,CAAC,EAAR,KAAe,OAAOA,OAAO,CAAC,EAAR,KAAe,OAAO;QAC5C,OAAO,CAACI;IACX;IACD,OAAOA;AACV;AACD,SAASE,cAAcrF,KAAvB,EAA8BxgB,KAA9B;IACI,IAAI,CAAC8lB,OAAOC,QAAP,CAAgB/lB,QAAQ;QACzB,MAAM,IAAIgB,UAAW,WAAUwf,MAAM,OAA/B;IACT;IACD,OAAOxgB;AACV;AACD,MAAMgmB,eAAgBnuB,CAAAA;IAClB,IAAIA,MAAMkJ,QAAN,CAAe,MAAM;QACrB,OAAOlJ,MAAMsC,WAAN;IACV;IACD,OAAQ,eAActC,MAAMsC,WAAN,GAAoB,CAA1C;AACH;AACD,MAAM8rB,wBAAwB,CAACC,YAAYC;IACvC,IAAI,OAAOD,eAAe,UAAU;QAChC,OAAOC,UAAUplB,QAAV,CAAmBmlB;IAC7B;IACD,IAAIttB,MAAMC,OAAN,CAAcqtB,aAAa;QAC3B,OAAOC,UAAU5pB,IAAV,CAAe4G,IAAIgS,SAAJ,CAAclR,GAAd,CAAkB2G,IAAlB,CAAuB,IAAIzH,IAAI+iB;IACxD;IACD,OAAO;AACV;AACM,SAASE,kBAAkB1D,eAA3B,EAA4C2D,cAA5C,EAA4DrnB,UAAU,EAAtE;IACH,IAAIsX;IACJ,IAAI;QACAA,UAAU/D,KAAKC,KAAL,CAAW8K,OAAOA,CAAChB,MAAR,CAAe+J;IACvC,EACD,OAAM,CACL;IACD,IAAI,CAAC5J,oBAAQA,CAACnG,UAAU;QACpB,MAAM,IAAIS,UAAUA,CAAC;IACxB;IACD,MAAM,EAAEuP,GAAAA,EAAF,GAAUtnB;IAChB,IAAIsnB,OACC,QAAO5D,gBAAgB4D,GAAvB,KAA+B,YAC5BN,aAAatD,gBAAgB4D,GAAjB,MAA0BN,aAAaM,IAAD,GAAQ;QAC9D,MAAM,IAAIjQ,wBAAwBA,CAAC,qCAAqCC,SAAS,OAAO;IAC3F;IACD,MAAM,EAAEiQ,iBAAiB,EAAnB,EAAuBC,MAAvB,EAA+BC,OAA/B,EAAwCC,QAAxC,EAAkDC,WAAAA,EAAlD,GAAkE3nB;IACxE,MAAM4nB,gBAAgB;WAAIL;KAA1B;IACA,IAAII,gBAAgBvpB,WAChBwpB,cAAc7sB,IAAd,CAAmB;IACvB,IAAI2sB,aAAatpB,WACbwpB,cAAc7sB,IAAd,CAAmB;IACvB,IAAI0sB,YAAYrpB,WACZwpB,cAAc7sB,IAAd,CAAmB;IACvB,IAAIysB,WAAWppB,WACXwpB,cAAc7sB,IAAd,CAAmB;IACvB,KAAK,MAAMwc,SAAS,IAAIpT,IAAIyjB,cAAcC,OAAd,IAA0B;QAClD,IAAI,CAAEtQ,CAAAA,SAASD,OAAAA,GAAU;YACrB,MAAM,IAAID,wBAAwBA,CAAE,qBAAoBE,MAAM,QAAxD,EAAkED,SAASC,OAAO;QAC3F;IACJ;IACD,IAAIiQ,UACA,CAAC,CAAC5tB,MAAMC,OAAN,CAAc2tB,UAAUA,SAAS;QAACA;KAAnC,EAA4CzlB,QAA5C,CAAqDuV,QAAQwQ,GAA7D,GAAmE;QACpE,MAAM,IAAIzQ,wBAAwBA,CAAC,gCAAgCC,SAAS,OAAO;IACtF;IACD,IAAImQ,WAAWnQ,QAAQyQ,GAAR,KAAgBN,SAAS;QACpC,MAAM,IAAIpQ,wBAAwBA,CAAC,gCAAgCC,SAAS,OAAO;IACtF;IACD,IAAIoQ,YACA,CAACT,sBAAsB3P,QAAQ0Q,GAAT,EAAc,OAAON,aAAa,WAAW;QAACA;KAAhC,GAA4CA,WAAW;QAC3F,MAAM,IAAIrQ,wBAAwBA,CAAC,gCAAgCC,SAAS,OAAO;IACtF;IACD,IAAI2Q;IACJ,OAAQ,OAAOjoB,QAAQkoB,cAAvB;QACI,KAAK;YACDD,YAAY5B,KAAKrmB,QAAQkoB,cAAT;YAChB;QACJ,KAAK;YACDD,YAAYjoB,QAAQkoB,cAApB;YACA;QACJ,KAAK;YACDD,YAAY;YACZ;QACJ;YACI,MAAM,IAAIjmB,UAAU;IAX5B;IAaA,MAAM,EAAEmmB,WAAAA,EAAF,GAAkBnoB;IACxB,MAAMooB,MAAMxC,MAAMuC,eAAe,IAAI5X;IACrC,IAAI,CAAC+G,QAAQ+Q,GAAR,KAAgBjqB,aAAaupB,WAAAA,KAAgB,OAAOrQ,QAAQ+Q,GAAf,KAAuB,UAAU;QAC/E,MAAM,IAAIhR,wBAAwBA,CAAC,gCAAgCC,SAAS,OAAO;IACtF;IACD,IAAIA,QAAQgR,GAAR,KAAgBlqB,WAAW;QAC3B,IAAI,OAAOkZ,QAAQgR,GAAf,KAAuB,UAAU;YACjC,MAAM,IAAIjR,wBAAwBA,CAAC,gCAAgCC,SAAS,OAAO;QACtF;QACD,IAAIA,QAAQgR,GAAR,GAAcF,MAAMH,WAAW;YAC/B,MAAM,IAAI5Q,wBAAwBA,CAAC,sCAAsCC,SAAS,OAAO;QAC5F;IACJ;IACD,IAAIA,QAAQiR,GAAR,KAAgBnqB,WAAW;QAC3B,IAAI,OAAOkZ,QAAQiR,GAAf,KAAuB,UAAU;YACjC,MAAM,IAAIlR,wBAAwBA,CAAC,gCAAgCC,SAAS,OAAO;QACtF;QACD,IAAIA,QAAQiR,GAAR,IAAeH,MAAMH,WAAW;YAChC,MAAM,IAAIxQ,UAAUA,CAAC,sCAAsCH,SAAS,OAAO;QAC9E;IACJ;IACD,IAAIqQ,aAAa;QACb,MAAMa,MAAMJ,MAAM9Q,QAAQ+Q,GAA1B;QACA,MAAMI,MAAM,OAAOd,gBAAgB,WAAWA,cAActB,KAAKsB;QACjE,IAAIa,MAAMP,YAAYQ,KAAK;YACvB,MAAM,IAAIhR,UAAUA,CAAC,4DAA4DH,SAAS,OAAO;QACpG;QACD,IAAIkR,MAAM,IAAIP,WAAW;YACrB,MAAM,IAAI5Q,wBAAwBA,CAAC,iEAAiEC,SAAS,OAAO;QACvH;IACJ;IACD,OAAOA;AACV;;AACM,MAAMoR;IAETzvB,YAAYqe,OAAD,CAAU;QAAAqR,2BAAA,MAAAC,UAAA;YAAA3X,UAAA;YAAApY,OAAA;QAAA;QACjB,IAAI,CAAC4kB,SAASnG,UAAU;YACpB,MAAM,IAAItV,UAAU;QACvB;QACD6mB,sBAAA,MAAAD,UAAgBE,gBAAgBxR;IACnC;IACD0C,OAAO;QACH,OAAOoE,QAAQkB,MAAR,CAAe/L,KAAKwV,SAAL,CAAAC,sBAAe,IAAf,EAAAJ;IACzB;IACM,IAAHd,MAAM;QACN,OAAOkB,sBAAA,MAAAJ,UAAcd,GAArB;IACH;IACM,IAAHA,IAAIjvB,KAAD,EAAQ;QACXmwB,sBAAA,MAAAJ,UAAcd,GAAd,GAAoBjvB;IACvB;IACM,IAAHkvB,MAAM;QACN,OAAOiB,sBAAA,MAAAJ,UAAcb,GAArB;IACH;IACM,IAAHA,IAAIlvB,KAAD,EAAQ;QACXmwB,sBAAA,MAAAJ,UAAcb,GAAd,GAAoBlvB;IACvB;IACM,IAAHmvB,MAAM;QACN,OAAOgB,sBAAA,MAAAJ,UAAcZ,GAArB;IACH;IACM,IAAHA,IAAInvB,KAAD,EAAQ;QACXmwB,sBAAA,MAAAJ,UAAcZ,GAAd,GAAoBnvB;IACvB;IACM,IAAHowB,IAAIpwB,KAAD,EAAQ;QACXmwB,sBAAA,MAAAJ,UAAcK,GAAd,GAAoBpwB;IACvB;IACM,IAAHyvB,IAAIzvB,KAAD,EAAQ;QACX,IAAI,OAAOA,UAAU,UAAU;YAC3BmwB,sBAAA,MAAAJ,UAAcN,GAAd,GAAoBzB,cAAc,gBAAgBhuB;QACrD,OACI,IAAIA,iBAAiB0X,MAAM;YAC5ByY,sBAAA,MAAAJ,UAAcN,GAAd,GAAoBzB,cAAc,gBAAgBjB,MAAM/sB;QAC3D,OACI;YACDmwB,sBAAA,MAAAJ,UAAcN,GAAd,GAAoB1C,MAAM,IAAIrV,UAAU8V,KAAKxtB;QAChD;IACJ;IACM,IAAH0vB,IAAI1vB,KAAD,EAAQ;QACX,IAAI,OAAOA,UAAU,UAAU;YAC3BmwB,sBAAA,MAAAJ,UAAcL,GAAd,GAAoB1B,cAAc,qBAAqBhuB;QAC1D,OACI,IAAIA,iBAAiB0X,MAAM;YAC5ByY,sBAAA,MAAAJ,UAAcL,GAAd,GAAoB1B,cAAc,qBAAqBjB,MAAM/sB;QAChE,OACI;YACDmwB,sBAAA,MAAAJ,UAAcL,GAAd,GAAoB3C,MAAM,IAAIrV,UAAU8V,KAAKxtB;QAChD;IACJ;IACM,IAAHwvB,IAAIxvB,KAAD,EAAQ;QACX,IAAIA,UAAUuF,WAAW;YACrB4qB,sBAAA,MAAAJ,UAAcP,GAAd,GAAoBzC,MAAM,IAAIrV;QACjC,OACI,IAAI1X,iBAAiB0X,MAAM;YAC5ByY,sBAAA,MAAAJ,UAAcP,GAAd,GAAoBxB,cAAc,eAAejB,MAAM/sB;QAC1D,OACI,IAAI,OAAOA,UAAU,UAAU;YAChCmwB,sBAAA,MAAAJ,UAAcP,GAAd,GAAoBxB,cAAc,eAAejB,MAAM,IAAIrV,UAAU8V,KAAKxtB;QAC7E,OACI;YACDmwB,sBAAA,MAAAJ,UAAcP,GAAd,GAAoBxB,cAAc,eAAehuB;QACpD;IACJ;AAnEyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzK9B;AACA;AACA;AACO,eAAeqwB,UAAUC,GAAzB,EAA8B1vB,GAA9B,EAAmCuG,OAAnC;IACH,MAAMylB,WAAW,MAAME,aAAaA,CAACwD,KAAK1vB,KAAKuG;IAC/C,IAAIylB,SAAS/B,eAAT,CAAyBE,IAAzB,EAA+B7hB,SAAS,UAAU0jB,SAAS/B,eAAT,CAAyB9K,GAAzB,KAAiC,OAAO;QAC1F,MAAM,IAAIb,UAAUA,CAAC;IACxB;IACD,MAAMT,UAAU8P,iBAAiBA,CAAC3B,SAAS/B,eAAV,EAA2B+B,SAASnO,OAApC,EAA6CtX;IAC9E,MAAMO,SAAS;QAAE+W;QAASoM,iBAAiB+B,SAAS/B,eAAAA;IAArC;IACf,IAAI,OAAOjqB,QAAQ,YAAY;QAC3B,OAAA2L,uBAAAA,CAAAA,uBAAAA,CAAA,IAAY7E,SAAZ;YAAoB9G,KAAKgsB,SAAShsB,GAAAA;QAAlC;IACH;IACD,OAAO8G;AACV;;;ACdD;AACA;AACA;AACA;AACO,SAAS6oB,UAAUD,GAAnB;IACH,IAAI,OAAOA,QAAQ,UACf,MAAM,IAAIpR,UAAUA,CAAC;IACzB,MAAM,EAAE,GAAGT,OAAL,EAAc3c,MAAAA,EAAd,GAAyBwuB,IAAI/rB,KAAJ,CAAU;IACzC,IAAIzC,WAAW,GACX,MAAM,IAAIod,UAAUA,CAAC;IACzB,IAAIpd,WAAW,GACX,MAAM,IAAIod,UAAUA,CAAC;IACzB,IAAI,CAACT,SACD,MAAM,IAAIS,UAAUA,CAAC;IACzB,IAAIsR;IACJ,IAAI;QACAA,UAAUnE,MAAIA,CAAC5N;IAClB,EACD,OAAM;QACF,MAAM,IAAIS,UAAUA,CAAC;IACxB;IACD,IAAIxX;IACJ,IAAI;QACAA,SAASgT,KAAKC,KAAL,CAAW8K,OAAOA,CAAChB,MAAR,CAAe+L;IACtC,EACD,OAAM;QACF,MAAM,IAAItR,UAAUA,CAAC;IACxB;IACD,IAAI,CAAC0F,oBAAQA,CAACld,SACV,MAAM,IAAIwX,UAAUA,CAAC;IACzB,OAAOxX;AACV;;;AC/BuD;AACxD,MAAMgpB,wBAAwB;AAE9B,SAASC;IACP,MAAMC,cAAcjxB,QAAQE,GAAG,CAACgxB,cAAc,EAAEC,UAAU;IAC1D,MAAMC,2BAA2BH,YAAY9rB,OAAO,CAAC,QAAQ;IAC7D,MAAM0E,SAASunB,yBAAyBjvB,MAAM,GAAG,IAAIivB,2BAA2BL;IAChF,OAAO,gBAAgB3uB,IAAI,CAACyH,UAAUA,SAAS,CAAC,QAAQ,EAAEA,OAAO,CAAC;AACpE;AAEO,SAASwnB;IACd,OAAO,IAAItuB,IAAI,0CAA0CiuB;AAC3D;AACO,SAASM;IACd,MAAMzuB,MAAM,IAAIE,IAAI,sCAAsCiuB;IAC1DnuB,IAAI4G,YAAY,CAACsC,GAAG,CAAC,WAAW+kB,gCAAmB,CAACS,OAAO;IAC3D,OAAO1uB;AACT;AACO,SAAS2uB;IACd,OAAO,IAAIzuB,IAAI,uCAAuCiuB;AACxD;AACO,SAASS;IACd,OAAO,IAAI1uB,IAAI,qCAAqCiuB;AACtD;AACA,6EAA6E,GAEtE,MAAMU,6BAA6B;IACxCC,aAAa;IACbC,WAAW;AACb,EAAE;;;AC7BF,SAASjT,qCAAeA,CAACkT,GAAG,EAAE5wB,GAAG,EAAEZ,KAAK;IAAI,IAAIY,OAAO4wB,KAAK;QAAE1xB,OAAOC,cAAc,CAACyxB,KAAK5wB,KAAK;YAAEZ,OAAOA;YAAOC,YAAY;YAAMC,cAAc;YAAMkY,UAAU;QAAK;IAAI,OAAO;QAAEoZ,GAAG,CAAC5wB,IAAI,GAAGZ;IAAO;IAAE,OAAOwxB;AAAK;AAErK;AACqB;AACf;AAC0E;AACpH,MAAMG,cAAc,kBAAkB;AACtC,MAAMC,oBAAoB,KAAK,GAAG;AACzC,6DAA6D,GAE7D,MAAMC,sBAAsB,KAAK,KAAK;AACtC,IAAIC,iBAAiB;AAErB,eAAeC;IACb,MAAM9b,MAAM,MAAMX,MAAM0b,YAAYA,IAAI;QACtC7lB,QAAQ6mB,YAAYC,OAAO,CAACZ,0BAA0BA,CAACC,WAAW;IACpE;IAEA,IAAI,CAACrb,IAAInK,EAAE,EAAE;QACX,MAAM,IAAI1M,MAAM,CAAC,2BAA2B,EAAE6W,IAAIjK,MAAM,CAAC,CAAC;IAC5D;IAEA,MAAMH,OAAO,MAAMoK,IAAI9J,IAAI;IAC3B,MAAMyX,MAAM/X,KAAKqmB,SAAS,EAAEpB;IAE5B,IAAI,CAAClN,KAAK;QACR,MAAM,IAAIxkB,MAAM;IAClB;IAEA,OAAOwkB;AACT;AAEA,eAAeuO;IACb,MAAM5C,MAAM7X,KAAK6X,GAAG;IAEpB,IAAIuC,kBAAkBvC,MAAMuC,eAAeM,SAAS,GAAGP,qBAAqB;QAC1E,OAAOC,eAAelxB,GAAG;IAC3B;IAEA,MAAMgjB,MAAM,MAAMmO;IAClB,MAAMnxB,MAAM,MAAMikB,UAAUA,CAACjB,KAAK;IAClCkO,iBAAiB;QACflO;QACAhjB;QACAwxB,WAAW7C;IACb;IACA,OAAO3uB;AACT;AACA,+DAA+D,GAGxD,SAASyxB;IACdP,iBAAiB;AACnB;AACO,MAAMQ;IACXlyB,aAAc;QACZke,qCAAeA,CAAC,IAAI,EAAE,WAAW,KAAK;QAEtC,IAAI,CAAC4S,OAAO,GAAGQ,gCAAe,CAACR,OAAO;IACxC;IAEAqB,kBAAkB3uB,OAAO,EAAE;QACzB,MAAM+C,OAAO/C,QAAQlD,OAAO,CAACzB,GAAG,CAAC,WAAW;QAC5C,OAAO0H,KAAKpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAACjC,WAAW;IACvC;IAEA,MAAMkwB,oBAAoB5uB,OAAO,EAAE;QACjC,IAAI,CAAC,IAAI,CAAC6uB,qBAAqB,CAAC7uB,UAAU;YACxC,OAAO;gBACLR,UAAUuI,YAAYA,CAACc,IAAI;YAC7B;QACF;QAEA,MAAMimB,QAAQ9uB,QAAQvB,OAAO,CAACpD,GAAG,CAAC0yB,cAAc3xB;QAEhD,IAAI0yB,OAAO;YACT,MAAMC,eAAe,MAAM,IAAI,CAACC,WAAW,CAACF;YAE5C,IAAIC,aAAaE,KAAK,IAAIF,aAAalU,OAAO,EAAE;gBAC9C,OAAO;oBACLrb,UAAUuI,YAAYA,CAACc,IAAI;gBAC7B;YACF;YAEA,IAAIkmB,aAAaG,OAAO,IAAIH,aAAalU,OAAO,EAAE;gBAChD,OAAO,MAAM,IAAI,CAACsU,eAAe,CAACnvB,SAAS8uB,OAAOC,aAAalU,OAAO;YACxE;QACF;QAEA,OAAO,MAAM,IAAI,CAACuU,YAAY,CAACpvB;IACjC;IAEA6uB,sBAAsB7uB,OAAO,EAAE;QAC7B,IAAI,KAAK,EAAE,EAEV;QAED,MAAMI,WAAW,IAAI,CAACuuB,iBAAiB,CAAC3uB;QACxC,MAAMqvB,kBAAkBjvB,SAASwC,QAAQ,CAAC;QAE1C,IAAIysB,iBAAiB;YACnB,OAAO;QACT;QAEA,OAAOtzB,QAAQE,GAAG,CAACqzB,iCAAiC,KAAK;IAC3D;IAEAC,oBAAoBvvB,OAAO,EAAEwvB,KAAK,EAAE;QAClC,MAAMpvB,WAAW,IAAI,CAACuuB,iBAAiB,CAAC3uB;QACxC,MAAMqvB,kBAAkBjvB,SAASwC,QAAQ,CAAC;QAC1C,OAAO4sB,UAAU,iBAAiBA,UAAU,qBAAqBH,mBAAmBG,UAAU,oBAAoB,CAACH;IACrH;IAEAI,oBAAoB5U,OAAO,EAAE;QAC3B,OAAOA,QAAQyS,OAAO,KAAK,IAAI,CAACA,OAAO;IACzC;IAEAoC,kBAAkB3wB,KAAK,EAAE;QACvB,OAAOA,iBAAiB8uB,UAAiB,IAAI9uB,iBAAiBvD,SAASuD,MAAM8K,IAAI,KAAK;IACxF;IAEA,MAAMmlB,YAAYF,KAAK,EAAE;QACvB,IAAI;YACF,MAAM9xB,MAAM,MAAMuxB;YAClB,MAAM,EACJ1T,OAAO,EACR,GAAG,MAAM4R,SAASA,CAACqC,OAAO9xB;YAC3B,MAAM2yB,IAAI9U;YAEV,IAAI,CAAC,IAAI,CAAC4U,mBAAmB,CAACE,IAAI;gBAChC,OAAO;oBACLV,OAAO;oBACPC,SAAS;gBACX;YACF;YAEA,OAAO;gBACLD,OAAO;gBACPC,SAAS;gBACTrU,SAAS8U;YACX;QACF,EAAE,OAAO5wB,OAAO;YACd,IAAI,IAAI,CAAC2wB,iBAAiB,CAAC3wB,QAAQ;gBACjC,MAAM8b,UAAU8R,SAASA,CAACmC;gBAE1B,IAAI,CAAC,IAAI,CAACW,mBAAmB,CAAC5U,UAAU;oBACtC,OAAO;wBACLoU,OAAO;wBACPC,SAAS;oBACX;gBACF;gBAEA,OAAO;oBACLD,OAAO;oBACPC,SAAS;oBACTrU;gBACF;YACF;YAEA,OAAO;gBACLoU,OAAO;gBACPC,SAAS;YACX;QACF;IACF;IAEA,MAAMC,gBAAgBnvB,OAAO,EAAE4vB,YAAY,EAAE/U,OAAO,EAAE;QACpD,IAAI;YACF,MAAMxI,MAAM,MAAMX,MAAM8b,QAAQA,IAAI;gBAClCtmB,QAAQ;gBACRpK,SAAS;oBACP,gBAAgB;gBAClB;gBACAmL,MAAM6O,KAAKwV,SAAS,CAAC;oBACnBgB,SAAS,IAAI,CAACA,OAAO;oBACrBsC;gBACF;gBACAroB,QAAQ6mB,YAAYC,OAAO,CAACZ,0BAA0BA,CAACE,SAAS;YAClE;YAEA,IAAItb,IAAInK,EAAE,EAAE;gBACV,MAAMqV,OAAO,MAAMlL,IAAI9J,IAAI;gBAE3B,IAAIgV,KAAK0R,KAAK,IAAI1R,KAAKuR,KAAK,EAAE;oBAC5B,MAAMtvB,WAAWuI,YAAYA,CAACc,IAAI;oBAClC,IAAI,CAACgnB,aAAa,CAACrwB,UAAU+d,KAAKuR,KAAK;oBACvC,OAAO;wBACLtvB;oBACF;gBACF;YACF;QACF,EAAE,OAAM,CACR;QAEA,IAAI,CAAC,IAAI,CAAC+vB,mBAAmB,CAACvvB,SAAS6a,QAAQ2U,KAAK,GAAG;YACrD,OAAO;gBACLhwB,UAAUuI,YAAYA,CAACc,IAAI;YAC7B;QACF;QAEA,OAAO;YACLrJ,UAAU,IAAI,CAACswB,eAAe,CAAC9vB;QACjC;IACF;IAEA,MAAMovB,aAAapvB,OAAO,EAAE;QAC1B,IAAI;YACF,MAAMqS,MAAM,MAAMX,MAAM2b,mBAAmBA,IAAI;gBAC7C9lB,QAAQ6mB,YAAYC,OAAO,CAACZ,0BAA0BA,CAACE,SAAS;YAClE;YAEA,IAAI,CAACtb,IAAInK,EAAE,EAAE;gBACX,OAAO;oBACL1I,UAAU,IAAI,CAACswB,eAAe,CAAC9vB;gBACjC;YACF;YAEA,MAAMoI,SAAS,MAAMiK,IAAI9J,IAAI;YAE7B,IAAI,CAACH,OAAOwgB,SAAS,EAAE;gBACrB,MAAMppB,WAAWuI,YAAYA,CAACc,IAAI;gBAElC,IAAIT,OAAO0mB,KAAK,EAAE;oBAChB,IAAI,CAACe,aAAa,CAACrwB,UAAU4I,OAAO0mB,KAAK;gBAC3C;gBAEA,OAAO;oBACLtvB;gBACF;YACF;YAEA,IAAI,CAAC,IAAI,CAAC+vB,mBAAmB,CAACvvB,SAASoI,OAAOonB,KAAK,GAAG;gBACpD,OAAO;oBACLhwB,UAAUuI,YAAYA,CAACc,IAAI;gBAC7B;YACF;YAEA,OAAO;gBACLrJ,UAAU,IAAI,CAACswB,eAAe,CAAC9vB;YACjC;QACF,EAAE,OAAM;YACN,OAAO;gBACLR,UAAU,IAAI,CAACswB,eAAe,CAAC9vB;YACjC;QACF;IACF;IAEA6vB,cAAcrwB,QAAQ,EAAEsvB,KAAK,EAAE;QAC7BtvB,SAASf,OAAO,CAACqJ,GAAG,CAACimB,aAAae,OAAO;YACvC/a,UAAU;YACVE,QAAQ;YACRD,UAAU;YACV5S,MAAM;YACN2uB,QAAQ/B;QACV;IACF;IAEA8B,gBAAgB9vB,OAAO,EAAE;QACvB,MAAMgwB,WAAW,IAAIlxB,IAAI,kBAAkBkB,QAAQpB,GAAG;QACtD,MAAMqxB,WAAW,CAAC,EAAEjwB,QAAQwG,OAAO,CAAC/E,QAAQ,CAAC,EAAEzB,QAAQwG,OAAO,CAACnB,MAAM,CAAC,CAAC;QACvE2qB,SAASxqB,YAAY,CAACsC,GAAG,CAAC,YAAYmoB;QACtC,MAAMzwB,WAAWuI,YAAYA,CAACX,QAAQ,CAAC4oB;QACvCxwB,SAAS1C,OAAO,CAACgL,GAAG,CAAC,iBAAiB;QACtC,OAAOtI;IACT;AAEF;;;AC1QA;;;;CAIC,GAC0C;AACA;AAC6B;AAExE,MAAM0wB;IACJ,MAAM70B,IAAI80B,KAAK,EAAE;QACf,yFAAyF;QACzF,OAAO;IACT;AAEF;AAEA,MAAMC,kBAAkB,IAAIF;AACrB,eAAeliB,WAAWhO,OAAO;IACtC,MAAMoB,OAAOpB,QAAQwG,OAAO,CAAC/E,QAAQ;IACrC,IAAI4uB;IAEJ,IAAI;QACF,MAAMC,cAAc,IAAI5B,qBAAqBA;QAC7C2B,aAAa,MAAMC,YAAY1B,mBAAmB,CAAC5uB;IACrD,EAAE,OAAM;QACN,OAAO+H,YAAYA,CAAChJ,KAAK;IAC3B;IAEA,IAAIsxB,WAAW7wB,QAAQ,CAAC4I,MAAM,KAAK,KAAK;QACtC,OAAOioB,WAAW7wB,QAAQ;IAC5B;IAEA,IAAIzD,QAAQE,GAAG,CAACs0B,2BAA2B,KAAK,QAAQ;QACtD,MAAMnpB,WAAW,MAAMgpB,gBAAgB/0B,GAAG,CAAC+F;QAE3C,IAAIgG,UAAU;YACZ,MAAMopB,cAAc,IAAI1xB,IAAIsI,SAASqpB,EAAE,EAAE3C,qCAAoB;YAC7D,MAAM6C,qBAAqBvpB,SAASkB,IAAI,KAAK,cAAc,MAAM;YACjE,MAAM9I,WAAWuI,YAAYA,CAACX,QAAQ,CAACopB,aAAaG;YAEpD,KAAK,MAAM3f,UAAUqf,WAAW7wB,QAAQ,CAACf,OAAO,CAACsS,MAAM,GAAI;gBACzDvR,SAASf,OAAO,CAACqJ,GAAG,CAACkJ;YACvB;YAEAxR,SAAS1C,OAAO,CAACgL,GAAG,CAAC,iBAAiB;YACtC,OAAOtI;QACT;IACF;IAEA,OAAO6wB,WAAW7wB,QAAQ;AAC5B;AACO,MAAM4N,SAAS;IACpBwjB,SAAS;QACT;;;;;;;;GAQC,GACD;QAAK;KAA6E;AACpF,EAAE;;;AChEoC;AACiB;AACvD;AACgE;AAChE;AACA,OAAO,0BAAI;AACX;AACA;AACA;AACA;AACA,uCAAuC,KAAK;AAC5C;AACe;AACf,WAAW,OAAO;AAClB;AACA;AACA;AACA,KAAK;AACL;;AAEA;;;;;;;;ACpBA;AAEA,IAAIC,oBAAoB,SAASA,kBAAkBz0B,KAAK;IACtD,OAAO00B,gBAAgB10B,UAAU,CAAC20B,UAAU30B;AAC9C;AAEA,SAAS00B,gBAAgB10B,KAAK;IAC5B,OAAO,CAAC,CAACA,SAAS,OAAOA,UAAU;AACrC;AAEA,SAAS20B,UAAU30B,KAAK;IACtB,IAAI40B,cAAc90B,OAAOwd,SAAS,CAACpc,QAAQ,CAAC6S,IAAI,CAAC/T;IACjD,OAAO40B,gBAAgB,qBAAqBA,gBAAgB,mBAAmBC,eAAe70B;AAChG,EAAE,6IAA6I;AAG/I,IAAI80B,eAAe,OAAOhyB,WAAW,cAAcA,OAAO8G,GAAG;AAC7D,IAAImrB,qBAAqBD,eAAehyB,OAAO8G,GAAG,CAAC,mBAAmB;AAEtE,SAASirB,eAAe70B,KAAK;IAC3B,OAAOA,MAAMg1B,QAAQ,KAAKD;AAC5B;AAEA,SAASE,YAAYna,GAAG;IACtB,OAAO/Z,MAAMC,OAAO,CAAC8Z,OAAO,EAAE,GAAG,CAAC;AACpC;AAEA,SAASoa,8BAA8Bl1B,KAAK,EAAEmH,OAAO;IACnD,OAAOA,QAAQ0C,KAAK,KAAK,SAAS1C,QAAQstB,iBAAiB,CAACz0B,SAASm1B,UAAUF,YAAYj1B,QAAQA,OAAOmH,WAAWnH;AACvH;AAEA,SAASo1B,kBAAkBxiB,MAAM,EAAEyiB,MAAM,EAAEluB,OAAO;IAChD,OAAOyL,OAAOgT,MAAM,CAACyP,QAAQC,GAAG,CAAC,SAAUC,OAAO;QAChD,OAAOL,8BAA8BK,SAASpuB;IAChD;AACF;AAEA,SAASquB,iBAAiB50B,GAAG,EAAEuG,OAAO;IACpC,IAAI,CAACA,QAAQsuB,WAAW,EAAE;QACxB,OAAON;IACT;IAEA,IAAIM,cAActuB,QAAQsuB,WAAW,CAAC70B;IACtC,OAAO,OAAO60B,gBAAgB,aAAaA,cAAcN;AAC3D;AAEA,SAASO,gCAAgC9iB,MAAM;IAC7C,OAAO9S,OAAO61B,qBAAqB,GAAG71B,OAAO61B,qBAAqB,CAAC/iB,QAAQ+C,MAAM,CAAC,SAAUigB,MAAM;QAChG,OAAO91B,OAAO+1B,oBAAoB,CAAC9hB,IAAI,CAACnB,QAAQgjB;IAClD,KAAK,EAAE;AACT;AAEA,SAASE,QAAQljB,MAAM;IACrB,OAAO9S,OAAO2L,IAAI,CAACmH,QAAQgT,MAAM,CAAC8P,gCAAgC9iB;AACpE;AAEA,SAASmjB,mBAAmBC,MAAM,EAAEC,QAAQ;IAC1C,IAAI;QACF,OAAOA,YAAYD;IACrB,EAAE,OAAOE,GAAG;QACV,OAAO;IACT;AACF,EAAE,mFAAmF;AAGrF,SAASC,iBAAiBvjB,MAAM,EAAEhS,GAAG;IACnC,OAAOm1B,mBAAmBnjB,QAAQhS,KAAK,sEAAsE;QAC1G,CAAEd,CAAAA,OAAOs2B,cAAc,CAACriB,IAAI,CAACnB,QAAQhS,KAAK,+CAA+C;QACzFd,OAAO+1B,oBAAoB,CAAC9hB,IAAI,CAACnB,QAAQhS,IAAG,GAAI,4CAA4C;AACjG;AAEA,SAASy1B,YAAYzjB,MAAM,EAAEyiB,MAAM,EAAEluB,OAAO;IAC1C,IAAIuD,cAAc,CAAC;IAEnB,IAAIvD,QAAQstB,iBAAiB,CAAC7hB,SAAS;QACrCkjB,QAAQljB,QAAQgB,OAAO,CAAC,SAAUhT,GAAG;YACnC8J,WAAW,CAAC9J,IAAI,GAAGs0B,8BAA8BtiB,MAAM,CAAChS,IAAI,EAAEuG;QAChE;IACF;IAEA2uB,QAAQT,QAAQzhB,OAAO,CAAC,SAAUhT,GAAG;QACnC,IAAIu1B,iBAAiBvjB,QAAQhS,MAAM;YACjC;QACF;QAEA,IAAIm1B,mBAAmBnjB,QAAQhS,QAAQuG,QAAQstB,iBAAiB,CAACY,MAAM,CAACz0B,IAAI,GAAG;YAC7E8J,WAAW,CAAC9J,IAAI,GAAG40B,iBAAiB50B,KAAKuG,SAASyL,MAAM,CAAChS,IAAI,EAAEy0B,MAAM,CAACz0B,IAAI,EAAEuG;QAC9E,OAAO;YACLuD,WAAW,CAAC9J,IAAI,GAAGs0B,8BAA8BG,MAAM,CAACz0B,IAAI,EAAEuG;QAChE;IACF;IACA,OAAOuD;AACT;AAEA,SAASyqB,UAAUviB,MAAM,EAAEyiB,MAAM,EAAEluB,OAAO;IACxCA,UAAUA,WAAW,CAAC;IACtBA,QAAQmvB,UAAU,GAAGnvB,QAAQmvB,UAAU,IAAIlB;IAC3CjuB,QAAQstB,iBAAiB,GAAGttB,QAAQstB,iBAAiB,IAAIA,mBAAmB,kFAAkF;IAC9J,6DAA6D;IAE7DttB,QAAQ+tB,6BAA6B,GAAGA;IACxC,IAAIqB,gBAAgBx1B,MAAMC,OAAO,CAACq0B;IAClC,IAAImB,gBAAgBz1B,MAAMC,OAAO,CAAC4R;IAClC,IAAI6jB,4BAA4BF,kBAAkBC;IAElD,IAAI,CAACC,2BAA2B;QAC9B,OAAOvB,8BAA8BG,QAAQluB;IAC/C,OAAO,IAAIovB,eAAe;QACxB,OAAOpvB,QAAQmvB,UAAU,CAAC1jB,QAAQyiB,QAAQluB;IAC5C,OAAO;QACL,OAAOkvB,YAAYzjB,QAAQyiB,QAAQluB;IACrC;AACF;AAEAguB,UAAUlY,GAAG,GAAG,SAASyZ,aAAaC,KAAK,EAAExvB,OAAO;IAClD,IAAI,CAACpG,MAAMC,OAAO,CAAC21B,QAAQ;QACzB,MAAM,IAAIv3B,MAAM;IAClB;IAEA,OAAOu3B,MAAMvoB,MAAM,CAAC,SAAUwoB,IAAI,EAAEnqB,IAAI;QACtC,OAAO0oB,UAAUyB,MAAMnqB,MAAMtF;IAC/B,GAAG,CAAC;AACN;AAEA,IAAI0vB,cAAc1B;AAClBv2B,OAAOk4B,OAAO,GAAGD;;;;;;;;;AC7HJ;AAEb,SAASE,QAAQf,MAAM,EAAEgB,cAAc;IAAI,IAAIvrB,OAAO3L,OAAO2L,IAAI,CAACuqB;IAAS,IAAIl2B,OAAO61B,qBAAqB,EAAE;QAAE,IAAIsB,UAAUn3B,OAAO61B,qBAAqB,CAACK;QAASgB,kBAAmBC,CAAAA,UAAUA,QAAQthB,MAAM,CAAC,SAAUuhB,GAAG;YAAI,OAAOp3B,OAAOq3B,wBAAwB,CAACnB,QAAQkB,KAAKj3B,UAAU;QAAE,EAAC,GAAIwL,KAAKvJ,IAAI,CAAC5C,KAAK,CAACmM,MAAMwrB;IAAU;IAAE,OAAOxrB;AAAM;AAEpV,SAASc,cAAcqG,MAAM;IAAI,IAAK,IAAI8K,IAAI,GAAGA,IAAI0Z,UAAUt1B,MAAM,EAAE4b,IAAK;QAAE,IAAI2X,SAAS,QAAQ+B,SAAS,CAAC1Z,EAAE,GAAG0Z,SAAS,CAAC1Z,EAAE,GAAG,CAAC;QAAGA,IAAI,IAAIqZ,QAAQj3B,OAAOu1B,SAAS,CAAC,GAAGzhB,OAAO,CAAC,SAAUhT,GAAG;YAAI0d,gBAAgB1L,QAAQhS,KAAKy0B,MAAM,CAACz0B,IAAI;QAAG,KAAKd,OAAOu3B,yBAAyB,GAAGv3B,OAAOw3B,gBAAgB,CAAC1kB,QAAQ9S,OAAOu3B,yBAAyB,CAAChC,WAAW0B,QAAQj3B,OAAOu1B,SAASzhB,OAAO,CAAC,SAAUhT,GAAG;YAAId,OAAOC,cAAc,CAAC6S,QAAQhS,KAAKd,OAAOq3B,wBAAwB,CAAC9B,QAAQz0B;QAAO;IAAI;IAAE,OAAOgS;AAAQ;AAEzf,SAAS0L,gBAAgBkT,GAAG,EAAE5wB,GAAG,EAAEZ,KAAK;IAAI,IAAIY,OAAO4wB,KAAK;QAAE1xB,OAAOC,cAAc,CAACyxB,KAAK5wB,KAAK;YAAEZ,OAAOA;YAAOC,YAAY;YAAMC,cAAc;YAAMkY,UAAU;QAAK;IAAI,OAAO;QAAEoZ,GAAG,CAAC5wB,IAAI,GAAGZ;IAAO;IAAE,OAAOwxB;AAAK;AAEhN,IAAI+F,YAAYz3B,OAAOC,cAAc;AACrC,IAAIy3B,mBAAmB13B,OAAOq3B,wBAAwB;AACtD,IAAIM,oBAAoB33B,OAAO43B,mBAAmB;AAClD,IAAIC,eAAe73B,OAAOwd,SAAS,CAAC8Y,cAAc;AAElD,IAAIwB,WAAW,CAAChlB,QAAQqK;IACtB,IAAK,IAAIxP,QAAQwP,IAAKsa,UAAU3kB,QAAQnF,MAAM;QAC5CxO,KAAKge,GAAG,CAACxP,KAAK;QACdxN,YAAY;IACd;AACF;AAEA,IAAI43B,cAAc,CAACxD,IAAI3gB,MAAMokB,QAAQC;IACnC,IAAIrkB,QAAQ,OAAOA,SAAS,YAAY,OAAOA,SAAS,YAAY;QAClE,KAAK,IAAI9S,OAAO62B,kBAAkB/jB,MAAO,IAAI,CAACikB,aAAa5jB,IAAI,CAACsgB,IAAIzzB,QAAQA,QAAQk3B,QAAQP,UAAUlD,IAAIzzB,KAAK;YAC7G3B,KAAK,IAAMyU,IAAI,CAAC9S,IAAI;YACpBX,YAAY,CAAE83B,CAAAA,OAAOP,iBAAiB9jB,MAAM9S,IAAG,KAAMm3B,KAAK93B,UAAU;QACtE;IACF;IAEA,OAAOo0B;AACT;AAEA,IAAI2D,eAAeC,CAAAA,MAAOJ,YAAYN,UAAU,CAAC,GAAG,cAAc;QAChEv3B,OAAO;IACT,IAAIi4B,MAAM,eAAe;AAGzB,IAAIC,cAAc,CAAC;AAEnBN,SAASM,aAAa;IACpBpuB,gBAAgB,IAAMA;IACtBC,iBAAiB,IAAMA;IACvBouB,aAAa,IAAMA;IACnBC,gBAAgB,IAAMA;IACtBC,iBAAiB,IAAMA;AACzB;AAEAz5B,OAAOk4B,OAAO,GAAGkB,aAAaE,cAAc,mBAAmB;AAE/D,SAASG,gBAAgBziB,CAAC;IACxB,IAAI0iB;IAEJ,MAAMC,QAAQ;QAAC,UAAU3iB,KAAKA,EAAE5Q,IAAI,IAAI,CAAC,KAAK,EAAE4Q,EAAE5Q,IAAI,CAAC,CAAC;QAAE,aAAa4Q,KAAMA,CAAAA,EAAE6B,OAAO,IAAI7B,EAAE6B,OAAO,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO7B,EAAE6B,OAAO,KAAK,WAAW,IAAIC,KAAK9B,EAAE6B,OAAO,IAAI7B,EAAE6B,OAAO,EAAE+gB,WAAW,GAAG,CAAC;QAAE,YAAY5iB,KAAK,OAAOA,EAAE+d,MAAM,KAAK,YAAY,CAAC,QAAQ,EAAE/d,EAAE+d,MAAM,CAAC,CAAC;QAAE,YAAY/d,KAAKA,EAAEtR,MAAM,IAAI,CAAC,OAAO,EAAEsR,EAAEtR,MAAM,CAAC,CAAC;QAAE,YAAYsR,KAAKA,EAAEiC,MAAM,IAAI;QAAU,cAAcjC,KAAKA,EAAE+B,QAAQ,IAAI;QAAY,cAAc/B,KAAKA,EAAEgC,QAAQ,IAAI,CAAC,SAAS,EAAEhC,EAAEgC,QAAQ,CAAC,CAAC;QAAE,cAAchC,KAAKA,EAAE6iB,QAAQ,IAAI,CAAC,SAAS,EAAE7iB,EAAE6iB,QAAQ,CAAC,CAAC;KAAC,CAAC9iB,MAAM,CAAC8C;IACxhB,OAAO,CAAC,EAAE7C,EAAEnI,IAAI,CAAC,CAAC,EAAEirB,mBAAmB,CAACJ,KAAK1iB,EAAE5V,KAAK,KAAK,OAAOs4B,KAAK,IAAI,EAAE,EAAEC,MAAMxxB,IAAI,CAAC,MAAM,CAAC;AACjG;AAEA,SAASoxB,YAAYvjB,MAAM;IACzB,MAAM0gB,MAAM,aAAa,GAAE,IAAIpa;IAE/B,KAAK,MAAMyd,QAAQ/jB,OAAOrQ,KAAK,CAAC,OAAQ;QACtC,IAAI,CAACo0B,MAAM;QACX,MAAMC,UAAUD,KAAKzzB,OAAO,CAAC;QAE7B,IAAI0zB,YAAY,CAAC,GAAG;YAClBtD,IAAI5pB,GAAG,CAACitB,MAAM;YACd;QACF;QAEA,MAAM,CAAC/3B,KAAKZ,MAAM,GAAG;YAAC24B,KAAKlzB,KAAK,CAAC,GAAGmzB;YAAUD,KAAKlzB,KAAK,CAACmzB,UAAU;SAAG;QAEtE,IAAI;YACFtD,IAAI5pB,GAAG,CAAC9K,KAAKi4B,mBAAmB74B,SAAS,OAAOA,QAAQ;QAC1D,EAAE,OAAM,CAAC;IACX;IAEA,OAAOs1B;AACT;AAEA,SAAS8C,eAAeU,SAAS;IAC/B,IAAI,CAACA,WAAW;QACd,OAAO,KAAK;IACd;IAEA,MAAM,CAAC,CAACrrB,MAAMzN,MAAM,EAAE,GAAG+4B,WAAW,GAAGZ,YAAYW;IACnD,MAAM,EACJx0B,MAAM,EACNmT,OAAO,EACPuhB,QAAQ,EACRC,MAAM,EACNj0B,IAAI,EACJk0B,QAAQ,EACRrhB,MAAM,EACN4gB,QAAQ,EACT,GAAG34B,OAAO6K,WAAW,CAACouB,WAAWzD,GAAG,CAAC,CAAC,CAAC10B,KAAKu4B,OAAO,GAAK;YAACv4B,IAAI0B,WAAW;YAAI62B;SAAO;IAEpF,MAAMvkB,SAASrI,cAAcA,cAAcA,cAAcA,cAAcA,cAAcA,cAAc;QACjGkB;QACAzN,OAAO64B,mBAAmB74B;QAC1BsE;IACF,GAAGmT,WAAW;QACZA,SAAS,IAAIC,KAAKD;IACpB,IAAIuhB,YAAY;QACdrhB,UAAU;IACZ,IAAI,OAAOshB,WAAW,YAAY;QAChCtF,QAAQ1F,OAAOgL;IACjB,IAAI,CAAC,GAAG;QACNj0B;IACF,GAAGk0B,YAAY;QACbthB,UAAUwhB,cAAcF;IAC1B,IAAIrhB,UAAU;QACZA,QAAQ;IACV,IAAI4gB,YAAY;QACdA,UAAUY,cAAcZ;IAC1B;IAEA,OAAOa,QAAQ1kB;AACjB;AAEA,SAAS0kB,QAAQC,CAAC;IAChB,MAAMC,OAAO,CAAC;IAEd,IAAK,MAAM54B,OAAO24B,EAAG;QACnB,IAAIA,CAAC,CAAC34B,IAAI,EAAE;YACV44B,IAAI,CAAC54B,IAAI,GAAG24B,CAAC,CAAC34B,IAAI;QACpB;IACF;IAEA,OAAO44B;AACT;AAEA,IAAIC,YAAY;IAAC;IAAU;IAAO;CAAO;AAEzC,SAASL,cAAc1S,MAAM;IAC3BA,SAASA,OAAOpkB,WAAW;IAC3B,OAAOm3B,UAAUvwB,QAAQ,CAACwd,UAAUA,SAAS,KAAK;AACpD;AAEA,IAAIgT,WAAW;IAAC;IAAO;IAAU;CAAO;AAExC,SAASL,cAAc3S,MAAM;IAC3BA,SAASA,OAAOpkB,WAAW;IAC3B,OAAOo3B,SAASxwB,QAAQ,CAACwd,UAAUA,SAAS,KAAK;AACnD;AAEA,SAAStlB,mBAAmBC,aAAa;IACvC,IAAI,CAACA,eAAe,OAAO,EAAE;IAC7B,IAAIC,iBAAiB,EAAE;IACvB,IAAIC,MAAM;IACV,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IAEJ,SAASC;QACP,MAAON,MAAMF,cAAcS,MAAM,IAAI,KAAKC,IAAI,CAACV,cAAcW,MAAM,CAACT,MAAO;YACzEA,OAAO;QACT;QAEA,OAAOA,MAAMF,cAAcS,MAAM;IACnC;IAEA,SAASG;QACPR,KAAKJ,cAAcW,MAAM,CAACT;QAC1B,OAAOE,OAAO,OAAOA,OAAO,OAAOA,OAAO;IAC5C;IAEA,MAAOF,MAAMF,cAAcS,MAAM,CAAE;QACjCN,QAAQD;QACRK,wBAAwB;QAExB,MAAOC,iBAAkB;YACvBJ,KAAKJ,cAAcW,MAAM,CAACT;YAE1B,IAAIE,OAAO,KAAK;gBACdC,YAAYH;gBACZA,OAAO;gBACPM;gBACAF,YAAYJ;gBAEZ,MAAOA,MAAMF,cAAcS,MAAM,IAAIG,iBAAkB;oBACrDV,OAAO;gBACT;gBAEA,IAAIA,MAAMF,cAAcS,MAAM,IAAIT,cAAcW,MAAM,CAACT,SAAS,KAAK;oBACnEK,wBAAwB;oBACxBL,MAAMI;oBACNL,eAAeY,IAAI,CAACb,cAAcc,SAAS,CAACX,OAAOE;oBACnDF,QAAQD;gBACV,OAAO;oBACLA,MAAMG,YAAY;gBACpB;YACF,OAAO;gBACLH,OAAO;YACT;QACF;QAEA,IAAI,CAACK,yBAAyBL,OAAOF,cAAcS,MAAM,EAAE;YACzDR,eAAeY,IAAI,CAACb,cAAcc,SAAS,CAACX,OAAOH,cAAcS,MAAM;QACzE;IACF;IAEA,OAAOR;AACT,EAAE,yBAAyB;AAG3B,IAAIwI,iBAAiB;IACnB1J,YAAY4a,cAAc,CAAE;QAC1B,cAAc,GACd,IAAI,CAAC2e,OAAO,GAAG,aAAa,GAAE,IAAIze;QAClC,IAAI,CAAC0e,QAAQ,GAAG5e;QAChB,MAAMoO,SAASpO,eAAe/b,GAAG,CAAC;QAElC,IAAImqB,QAAQ;YACV,MAAM1iB,SAASyxB,YAAY/O;YAE3B,KAAK,MAAM,CAAC3b,MAAMzN,MAAM,IAAI0G,OAAQ;gBAClC,IAAI,CAACizB,OAAO,CAACjuB,GAAG,CAAC+B,MAAM;oBACrBA;oBACAzN;gBACF;YACF;QACF;IACF;IAEA,CAAC8C,OAAOkR,QAAQ,CAAC,GAAG;QAClB,OAAO,IAAI,CAAC2lB,OAAO,CAAC72B,OAAOkR,QAAQ,CAAC;IACtC;IACA;;GAEC,GAGD,IAAI8R,OAAO;QACT,OAAO,IAAI,CAAC6T,OAAO,CAAC7T,IAAI;IAC1B;IAEA7mB,IAAI,GAAGQ,IAAI,EAAE;QACX,MAAMgO,OAAO,OAAOhO,IAAI,CAAC,EAAE,KAAK,WAAWA,IAAI,CAAC,EAAE,GAAGA,IAAI,CAAC,EAAE,CAACgO,IAAI;QACjE,OAAO,IAAI,CAACksB,OAAO,CAAC16B,GAAG,CAACwO;IAC1B;IAEAkH,OAAO,GAAGlV,IAAI,EAAE;QACd,IAAI64B;QAEJ,MAAMrb,MAAMlc,MAAM2S,IAAI,CAAC,IAAI,CAACimB,OAAO;QAEnC,IAAI,CAACl6B,KAAKqC,MAAM,EAAE;YAChB,OAAOmb,IAAIqY,GAAG,CAAC,CAAC,CAACY,GAAGl2B,MAAM,GAAKA;QACjC;QAEA,MAAMyN,OAAO,OAAOhO,IAAI,CAAC,EAAE,KAAK,WAAWA,IAAI,CAAC,EAAE,GAAG,CAAC64B,KAAK74B,IAAI,CAAC,EAAE,KAAK,OAAO,KAAK,IAAI64B,GAAG7qB,IAAI;QAC9F,OAAOwP,IAAItH,MAAM,CAAC,CAAC,CAACkkB,EAAE,GAAKA,MAAMpsB,MAAM6nB,GAAG,CAAC,CAAC,CAACY,GAAGl2B,MAAM,GAAKA;IAC7D;IAEAoM,IAAIqB,IAAI,EAAE;QACR,OAAO,IAAI,CAACksB,OAAO,CAACvtB,GAAG,CAACqB;IAC1B;IAEA/B,IAAI,GAAGjM,IAAI,EAAE;QACX,MAAM,CAACgO,MAAMzN,MAAM,GAAGP,KAAKqC,MAAM,KAAK,IAAI;YAACrC,IAAI,CAAC,EAAE,CAACgO,IAAI;YAAEhO,IAAI,CAAC,EAAE,CAACO,KAAK;SAAC,GAAGP;QAC1E,MAAM61B,MAAM,IAAI,CAACqE,OAAO;QACxBrE,IAAI5pB,GAAG,CAAC+B,MAAM;YACZA;YACAzN;QACF;QAEA,IAAI,CAAC45B,QAAQ,CAACluB,GAAG,CAAC,UAAU3K,MAAM2S,IAAI,CAAC4hB,KAAKA,GAAG,CAAC,CAAC,CAACY,GAAGiD,OAAO,GAAKd,gBAAgBc,SAASpyB,IAAI,CAAC;QAE/F,OAAO,IAAI;IACb;IACA;;GAEC,GAGD+G,OAAOgsB,KAAK,EAAE;QACZ,MAAMxE,MAAM,IAAI,CAACqE,OAAO;QACxB,MAAMjyB,SAAS,CAAC3G,MAAMC,OAAO,CAAC84B,SAASxE,IAAIxnB,MAAM,CAACgsB,SAASA,MAAMxE,GAAG,CAAC7nB,CAAAA,OAAQ6nB,IAAIxnB,MAAM,CAACL;QAExF,IAAI,CAACmsB,QAAQ,CAACluB,GAAG,CAAC,UAAU3K,MAAM2S,IAAI,CAAC4hB,KAAKA,GAAG,CAAC,CAAC,CAACY,GAAGl2B,MAAM,GAAKq4B,gBAAgBr4B,QAAQ+G,IAAI,CAAC;QAE7F,OAAOW;IACT;IACA;;GAEC,GAGDqyB,QAAQ;QACN,IAAI,CAACjsB,MAAM,CAAC/M,MAAM2S,IAAI,CAAC,IAAI,CAACimB,OAAO,CAACluB,IAAI;QACxC,OAAO,IAAI;IACb;IACA;;GAEC,GAGD,CAAC3I,OAAO8G,GAAG,CAAC,+BAA+B,GAAG;QAC5C,OAAO,CAAC,eAAe,EAAE8Q,KAAKwV,SAAS,CAACpwB,OAAO6K,WAAW,CAAC,IAAI,CAACgvB,OAAO,GAAG,CAAC;IAC7E;IAEAz4B,WAAW;QACT,OAAO;eAAI,IAAI,CAACy4B,OAAO,CAAC74B,MAAM;SAAG,CAACw0B,GAAG,CAACr0B,CAAAA,IAAK,CAAC,EAAEA,EAAEwM,IAAI,CAAC,CAAC,EAAEirB,mBAAmBz3B,EAAEjB,KAAK,EAAE,CAAC,EAAE+G,IAAI,CAAC;IAC9F;AAEF,GAAG,0BAA0B;AAE7B,IAAIgD,kBAAkB;IACpB3J,YAAY45B,eAAe,CAAE;QAC3B,cAAc,GACd,IAAI,CAACL,OAAO,GAAG,aAAa,GAAE,IAAIze;QAElC,IAAIod,IAAI2B,IAAIC;QAEZ,IAAI,CAACN,QAAQ,GAAGI;QAChB,MAAMlB,YAAY,CAACoB,KAAK,CAACD,KAAK,CAAC3B,KAAK0B,gBAAgBG,YAAY,KAAK,OAAO,KAAK,IAAI7B,GAAGvkB,IAAI,CAACimB,gBAAe,KAAM,OAAOC,KAAKD,gBAAgB/6B,GAAG,CAAC,aAAY,KAAM,OAAOi7B,KAAK,EAAE;QAClL,MAAME,gBAAgBr5B,MAAMC,OAAO,CAAC83B,aAAaA,YAAY13B,mBAAmB03B;QAEhF,KAAK,MAAMuB,gBAAgBD,cAAe;YACxC,MAAM1zB,SAAS0xB,eAAeiC;YAC9B,IAAI3zB,QAAQ,IAAI,CAACizB,OAAO,CAACjuB,GAAG,CAAChF,OAAO+G,IAAI,EAAE/G;QAC5C;IACF;IACA;;GAEC,GAGDzH,IAAI,GAAGQ,IAAI,EAAE;QACX,MAAMmB,MAAM,OAAOnB,IAAI,CAAC,EAAE,KAAK,WAAWA,IAAI,CAAC,EAAE,GAAGA,IAAI,CAAC,EAAE,CAACgO,IAAI;QAChE,OAAO,IAAI,CAACksB,OAAO,CAAC16B,GAAG,CAAC2B;IAC1B;IACA;;GAEC,GAGD+T,OAAO,GAAGlV,IAAI,EAAE;QACd,IAAI64B;QAEJ,MAAMrb,MAAMlc,MAAM2S,IAAI,CAAC,IAAI,CAACimB,OAAO,CAAC74B,MAAM;QAE1C,IAAI,CAACrB,KAAKqC,MAAM,EAAE;YAChB,OAAOmb;QACT;QAEA,MAAMrc,MAAM,OAAOnB,IAAI,CAAC,EAAE,KAAK,WAAWA,IAAI,CAAC,EAAE,GAAG,CAAC64B,KAAK74B,IAAI,CAAC,EAAE,KAAK,OAAO,KAAK,IAAI64B,GAAG7qB,IAAI;QAC7F,OAAOwP,IAAItH,MAAM,CAACC,CAAAA,IAAKA,EAAEnI,IAAI,KAAK7M;IACpC;IAEAwL,IAAIqB,IAAI,EAAE;QACR,OAAO,IAAI,CAACksB,OAAO,CAACvtB,GAAG,CAACqB;IAC1B;IACA;;GAEC,GAGD/B,IAAI,GAAGjM,IAAI,EAAE;QACX,MAAM,CAACgO,MAAMzN,OAAO4U,OAAO,GAAGnV,KAAKqC,MAAM,KAAK,IAAI;YAACrC,IAAI,CAAC,EAAE,CAACgO,IAAI;YAAEhO,IAAI,CAAC,EAAE,CAACO,KAAK;YAAEP,IAAI,CAAC,EAAE;SAAC,GAAGA;QAC3F,MAAM61B,MAAM,IAAI,CAACqE,OAAO;QACxBrE,IAAI5pB,GAAG,CAAC+B,MAAM6sB,gBAAgB/tB,cAAc;YAC1CkB;YACAzN;QACF,GAAG4U;QACH9P,QAAQwwB,KAAK,IAAI,CAACsE,QAAQ;QAC1B,OAAO,IAAI;IACb;IACA;;GAEC,GAGD9rB,OAAO,GAAGrO,IAAI,EAAE;QACd,MAAM,CAACgO,MAAMzI,MAAMV,OAAO,GAAG,OAAO7E,IAAI,CAAC,EAAE,KAAK,WAAW;YAACA,IAAI,CAAC,EAAE;SAAC,GAAG;YAACA,IAAI,CAAC,EAAE,CAACgO,IAAI;YAAEhO,IAAI,CAAC,EAAE,CAACuF,IAAI;YAAEvF,IAAI,CAAC,EAAE,CAAC6E,MAAM;SAAC;QACnH,OAAO,IAAI,CAACoH,GAAG,CAAC;YACd+B;YACAzI;YACAV;YACAtE,OAAO;YACPyX,SAAS,aAAa,GAAE,IAAIC,KAAK;QACnC;IACF;IAEA,CAAC5U,OAAO8G,GAAG,CAAC,+BAA+B,GAAG;QAC5C,OAAO,CAAC,gBAAgB,EAAE8Q,KAAKwV,SAAS,CAACpwB,OAAO6K,WAAW,CAAC,IAAI,CAACgvB,OAAO,GAAG,CAAC;IAC9E;IAEAz4B,WAAW;QACT,OAAO;eAAI,IAAI,CAACy4B,OAAO,CAAC74B,MAAM;SAAG,CAACw0B,GAAG,CAAC+C,iBAAiBtxB,IAAI,CAAC;IAC9D;AAEF;AAEA,SAASjC,QAAQy1B,GAAG,EAAE75B,OAAO;IAC3BA,QAAQoN,MAAM,CAAC;IAEf,KAAK,MAAM,GAAG9N,MAAM,IAAIu6B,IAAK;QAC3B,MAAMC,aAAanC,gBAAgBr4B;QACnCU,QAAQS,MAAM,CAAC,cAAcq5B;IAC/B;AACF;AAEA,SAASF,gBAAgB1lB,SAAS;IAChCnH,MAAM;IACNzN,OAAO;AACT,CAAC;IACC,IAAI,OAAO4U,OAAO6C,OAAO,KAAK,UAAU;QACtC7C,OAAO6C,OAAO,GAAG,IAAIC,KAAK9C,OAAO6C,OAAO;IAC1C;IAEA,IAAI7C,OAAO+e,MAAM,EAAE;QACjB/e,OAAO6C,OAAO,GAAG,IAAIC,KAAKA,KAAK6X,GAAG,KAAK3a,OAAO+e,MAAM,GAAG;IACzD;IAEA,IAAI/e,OAAO5P,IAAI,KAAK,QAAQ4P,OAAO5P,IAAI,KAAK,KAAK,GAAG;QAClD4P,OAAO5P,IAAI,GAAG;IAChB;IAEA,OAAO4P;AACT,EAAE,6DAA6D;AAG/D,KAAMhW,CAAAA,CAMN;;;;;;;;;;;AC7aC;IACC;IAEA,IAAI,OAAO67B,wBAAwB,aAAaA,oBAAoBC,EAAE,GAAGC,SAASA,GAAG;IACrF,IAAIC,IAAI,CAAC;IAER;QACC,IAAIC,IAAID;QACR;;;;;KAKC,GAEDC,EAAElgB,KAAK,GAAGA;QACVkgB,EAAEzjB,SAAS,GAAGA;QACd,IAAIsG,IAAImb;QACR,IAAIU,IAAIb;QACR,IAAI3X,IAAI;QACR,IAAI8Y,IAAI;QAER,SAASlf,MAAMigB,CAAC,EAAEC,CAAC;YACjB,IAAI,OAAOD,MAAM,UAAU;gBACzB,MAAM,IAAIzxB,UAAU;YACtB;YAEA,IAAIowB,IAAI,CAAC;YACT,IAAIM,IAAIgB,KAAK,CAAC;YACd,IAAItnB,IAAIqnB,EAAEr2B,KAAK,CAACwc;YAChB,IAAIqK,IAAIyO,EAAEpV,MAAM,IAAI/G;YAEpB,IAAK,IAAI6V,IAAI,GAAGA,IAAIhgB,EAAEzR,MAAM,EAAEyxB,IAAK;gBACjC,IAAIuH,IAAIvnB,CAAC,CAACggB,EAAE;gBACZ,IAAIwH,IAAID,EAAE51B,OAAO,CAAC;gBAElB,IAAI61B,IAAI,GAAG;oBACT;gBACF;gBAEA,IAAI95B,IAAI65B,EAAEE,MAAM,CAAC,GAAGD,GAAGjK,IAAI;gBAC3B,IAAIlb,IAAIklB,EAAEE,MAAM,CAAC,EAAED,GAAGD,EAAEh5B,MAAM,EAAEgvB,IAAI;gBAEpC,IAAI,OAAOlb,CAAC,CAAC,EAAE,EAAE;oBACfA,IAAIA,EAAEnQ,KAAK,CAAC,GAAG,CAAC;gBAClB;gBAEA,IAAIF,aAAag0B,CAAC,CAACt4B,EAAE,EAAE;oBACrBs4B,CAAC,CAACt4B,EAAE,GAAGg6B,UAAUrlB,GAAGwV;gBACtB;YACF;YAEA,OAAOmO;QACT;QAEA,SAASniB,UAAUwjB,CAAC,EAAEC,CAAC,EAAEnd,CAAC;YACxB,IAAIqD,IAAIrD,KAAK,CAAC;YACd,IAAInK,IAAIwN,EAAE0F,MAAM,IAAI8S;YAEpB,IAAI,OAAOhmB,MAAM,YAAY;gBAC3B,MAAM,IAAIpK,UAAU;YACtB;YAEA,IAAI,CAAC0wB,EAAE93B,IAAI,CAAC64B,IAAI;gBACd,MAAM,IAAIzxB,UAAU;YACtB;YAEA,IAAIiiB,IAAI7X,EAAEsnB;YAEV,IAAIzP,KAAK,CAACyO,EAAE93B,IAAI,CAACqpB,IAAI;gBACnB,MAAM,IAAIjiB,UAAU;YACtB;YAEA,IAAIoqB,IAAIqH,IAAI,MAAMxP;YAElB,IAAI,QAAQrK,EAAE4S,MAAM,EAAE;gBACpB,IAAImH,IAAI/Z,EAAE4S,MAAM,GAAG;gBAEnB,IAAIuH,MAAMJ,MAAM,CAAC5M,SAAS4M,IAAI;oBAC5B,MAAM,IAAI3xB,UAAU;gBACtB;gBAEAoqB,KAAK,eAAelN,KAAKC,KAAK,CAACwU;YACjC;YAEA,IAAI/Z,EAAEzc,MAAM,EAAE;gBACZ,IAAI,CAACu1B,EAAE93B,IAAI,CAACgf,EAAEzc,MAAM,GAAG;oBACrB,MAAM,IAAI6E,UAAU;gBACtB;gBAEAoqB,KAAK,cAAcxS,EAAEzc,MAAM;YAC7B;YAEA,IAAIyc,EAAE/b,IAAI,EAAE;gBACV,IAAI,CAAC60B,EAAE93B,IAAI,CAACgf,EAAE/b,IAAI,GAAG;oBACnB,MAAM,IAAImE,UAAU;gBACtB;gBAEAoqB,KAAK,YAAYxS,EAAE/b,IAAI;YACzB;YAEA,IAAI+b,EAAEtJ,OAAO,EAAE;gBACb,IAAI,OAAOsJ,EAAEtJ,OAAO,CAAC+gB,WAAW,KAAK,YAAY;oBAC/C,MAAM,IAAIrvB,UAAU;gBACtB;gBAEAoqB,KAAK,eAAexS,EAAEtJ,OAAO,CAAC+gB,WAAW;YAC3C;YAEA,IAAIzX,EAAEpJ,QAAQ,EAAE;gBACd4b,KAAK;YACP;YAEA,IAAIxS,EAAElJ,MAAM,EAAE;gBACZ0b,KAAK;YACP;YAEA,IAAIxS,EAAEnJ,QAAQ,EAAE;gBACd,IAAImjB,IAAI,OAAOha,EAAEnJ,QAAQ,KAAK,WAAWmJ,EAAEnJ,QAAQ,CAACtV,WAAW,KAAKye,EAAEnJ,QAAQ;gBAE9E,OAAQmjB;oBACN,KAAK;wBACHxH,KAAK;wBACL;oBAEF,KAAK;wBACHA,KAAK;wBACL;oBAEF,KAAK;wBACHA,KAAK;wBACL;oBAEF,KAAK;wBACHA,KAAK;wBACL;oBAEF;wBACE,MAAM,IAAIpqB,UAAU;gBACxB;YACF;YAEA,OAAOoqB;QACT;QAEA,SAAS0H,UAAUL,CAAC,EAAEC,CAAC;YACrB,IAAI;gBACF,OAAOA,EAAED;YACX,EAAE,OAAOC,GAAG;gBACV,OAAOD;YACT;QACF;IACF;IAEAh8B,OAAOk4B,OAAO,GAAG8D;AACnB;;;;;;;;;;AC3JAh8B,OAAOk4B,OAAO,GAAG;IACfqE,KAAK;QACHrqB,OAAO;QACPsqB,aAAa;QACbC,eAAe;QACfC,QAAQ;QACR7tB,MAAM;QACN8tB,aAAa;QACbC,KAAK;YACHH,eAAe;YACfI,qBAAqB;QACvB;QACAC,KAAK;YACHL,eAAe;YACfI,qBAAqB;YACrBE,8BAA8Bp2B;QAChC;QACA0D,QAAQ;YACNoyB,eAAe;YACfI,qBAAqB;YACrBG,SAAS;YACTC,UAAU;YACVC,QAAQ;QACV;IACF;IACA,UAAU;IACVC,OAAO;IACP,qBAAqB;IACrBC,UAAU;IACV,oCAAoC;IACpCrqB,KAAK;QACHuf,SAAS;QACT+K,WAAW;QACXC,iBAAiB;YAAC;SAAM;QACxBC,aAAa;QACbC,sBAAsB;QACtBC,eAAe;QACfC,kBAAkB;QAClBC,8BAA8B;IAChC;IACA,kBAAkB;IAClBC,SAAS;QACPC,UAAU;YACR9V,MAAM;YACNiP,QAAQ;QACV;QACAjxB,QAAQ;QACR+3B,SAAS;QACTC,SAAS;QACTC,cAAc;QACdC,aAAa;QACbC,MAAM;QACNC,YAAY;QACZC,gBAAgB;QAChBC,KAAK;QACLC,QAAQ;QACRC,eAAe;YACbC,aAAa;YACbC,WAAW;YACXC,WAAW;YACXC,cAAc;YACdC,UAAU;YACVC,UAAU;QACZ;QACAC,cAAc,KAAK,yCAAyC;IAE9D;IACA,eAAe;IACfC,MAAM;QACJC,IAAI;QACJC,OAAO,EAAE;QACTC,UAAU,EAAE;QACZC,iBAAiB;IACnB;IACA,kBAAkB;IAClB,uGAAuG;IACvGzJ,UAAU;IACV0J,iBAAiB;IACjBC,aAAa;IACbrK,UAAU;IACVsK,YAAY;IACZ,oBAAoB;IACpBC,kBAAkB;QAChBC,MAAM;QACN5C,KAAK;QACLvyB,QAAQ;QACRyyB,KAAK;QACL,KAAK;QACL,KAAK;IACP;IACA,gBAAgB;IAChB2C,YAAY;QACVlsB,QAAQxS,QAAQE,GAAG,CAACy+B,aAAa,IAAI;QACrCC,OAAO;YACLH,MAAM;YACN1C,KAAK;YACL8C,YAAY;QACd;IACF;IACA,SAAS;IACTC,SAAS;QACPF,OAAO;YACLH,MAAM;YACN1C,KAAK;YACL8C,YAAY;YACZE,cAAc;YACdC,qBAAqB;YACrB11B,QAAQ;QACV;IACF;IACA21B,WAAW;QACT,6FAA6F;QAC7FC,gBAAgB;IAClB;IACAC,KAAK;QACH3d,MAAMxhB,QAAQE,GAAG,CAACk/B,QAAQ;IAC5B;IACAC,eAAe;QACb9yB,MAAM;IACR;IACA+yB,iBAAiB;QACfxwB,SAAS;QACTywB,WAAW;IACb;IACAC,cAAc;QACZC,gBAAgB;QAChBC,wBAAwB;QACxBC,mBAAmB;QACnBC,UAAU;QACVC,SAAS;QACTC,UAAU;QACVC,QAAQ;QACRC,iBAAiB;QACjBC,iBAAiB;QACjBC,0BAA0B;QAC1BC,wBAAwB;QACxBC,qBAAqB;YACnBpM,QAAQ;YACR,iEAAiE;YACjEqM,sBAAsB,KAAK,GAAG,SAAS;QAEzC;QACAC,cAAc;QACdC,mBAAmB;QAEnB,kHAAkH,GAClHC,mBAAmB,EAAE;IACvB;IACA,iEAAiE;IACjEC,WAAW;AACb;;;;;;;;;;ACtJA,MAAMC,gBAAgBhpB,mBAAOA,CAAC;AAE9B,MAAMipB,gBAAgBjpB,mBAAOA,CAAC;AAE9B,MAAM8d,YAAY9d,mBAAOA,CAAC;AAC1B;;GAEG,GAGH,MAAMkpB,cAAcpL,UAAUkL,eAAeC;AAC7C1hC,OAAOk4B,OAAO,GAAGyJ;;;;;;;;;ACXjB,oEAAoE;;AACpE3hC,OAAOk4B,OAAO,GAAG,CAAC","sources":["webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/globals.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/error.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/utils.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/spec-extension/fetch-event.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/i18n/detect-domain-locale.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/add-path-suffix.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/add-locale.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/format-next-pathname-info.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/get-hostname.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/get-next-pathname-info.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/next-url.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/spec-extension/cookies.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/spec-extension/request.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/spec-extension/response.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/relativize-url.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/client/components/app-router-headers.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/internal-utils.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/lib/constants.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/api-utils/index.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/async-storage/draft-mode-provider.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/async-storage/request-async-storage-wrapper.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/client/components/async-local-storage.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/client/components/request-async-storage.external.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/adapter.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/exports/next-response.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/base64.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/util/errors.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/asn1.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/key/import.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/buffer_utils.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/util/base64url.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/crypto_key.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/invalid_key_input.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/signing.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/helpers.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/type_checks.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/is_key_like.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/check_key_type.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/validate_crit.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/validate_algorithms.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/jwk_to_key.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/normalize_key.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/jws/flattened/verify.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/jws/compact/verify.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/jwt_claims_set.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/jwt/verify.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/util/decode_jwt.js","webpack://_N_E/./src/server/password-protection/webops-api.ts","webpack://_N_E/./src/server/authentication-service.ts","webpack://_N_E/./src/middleware.ts","webpack://_N_E/","webpack://_N_E/../../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/compiled/cookie/index.js","webpack://_N_E/./discovery.config.default.js","webpack://_N_E/./discovery.config.js","webpack://_N_E/./src/customizations/discovery.config.js"],"sourcesContent":["async function registerInstrumentation() {\n if (\"_ENTRIES\" in globalThis && _ENTRIES.middleware_instrumentation && _ENTRIES.middleware_instrumentation.register) {\n try {\n await _ENTRIES.middleware_instrumentation.register();\n } catch (err) {\n err.message = `An error occurred while loading instrumentation hook: ${err.message}`;\n throw err;\n }\n }\n}\nlet registerInstrumentationPromise = null;\nexport function ensureInstrumentationRegistered() {\n if (!registerInstrumentationPromise) {\n registerInstrumentationPromise = registerInstrumentation();\n }\n return registerInstrumentationPromise;\n}\nfunction getUnsupportedModuleErrorMessage(module) {\n // warning: if you change these messages, you must adjust how react-dev-overlay's middleware detects modules not found\n return `The edge runtime does not support Node.js '${module}' module.\nLearn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;\n}\nfunction __import_unsupported(moduleName) {\n const proxy = new Proxy(function() {}, {\n get (_obj, prop) {\n if (prop === \"then\") {\n return {};\n }\n throw new Error(getUnsupportedModuleErrorMessage(moduleName));\n },\n construct () {\n throw new Error(getUnsupportedModuleErrorMessage(moduleName));\n },\n apply (_target, _this, args) {\n if (typeof args[0] === \"function\") {\n return args[0](proxy);\n }\n throw new Error(getUnsupportedModuleErrorMessage(moduleName));\n }\n });\n return new Proxy({}, {\n get: ()=>proxy\n });\n}\nfunction enhanceGlobals() {\n // The condition is true when the \"process\" module is provided\n if (process !== global.process) {\n // prefer local process but global.process has correct \"env\"\n process.env = global.process.env;\n global.process = process;\n }\n // to allow building code that import but does not use node.js modules,\n // webpack will expect this function to exist in global scope\n Object.defineProperty(globalThis, \"__import_unsupported\", {\n value: __import_unsupported,\n enumerable: false,\n configurable: false\n });\n // Eagerly fire instrumentation hook to make the startup faster.\n void ensureInstrumentationRegistered();\n}\nenhanceGlobals();\n\n//# sourceMappingURL=globals.js.map","export class 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}\nexport class 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}\nexport class 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","/**\n * Converts a Node.js IncomingHttpHeaders object to a Headers object. Any\n * headers with multiple values will be joined with a comma and space. Any\n * headers that have an undefined value will be ignored and others will be\n * coerced to strings.\n *\n * @param nodeHeaders the headers object to convert\n * @returns the converted headers object\n */ export function 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}\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n \n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/ export function 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}\n/**\n * Converts a Headers object to a Node.js OutgoingHttpHeaders object. This is\n * required to support the set-cookie header, which may have multiple values.\n *\n * @param headers the headers object to convert\n * @returns the converted headers object\n */ export function 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}\n/**\n * Validate the correctness of a user-provided URL.\n */ export function validateURL(url) {\n try {\n return String(new URL(String(url)));\n } catch (error) {\n throw new Error(`URL is malformed \"${String(url)}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, {\n cause: error\n });\n }\n}\n\n//# sourceMappingURL=utils.js.map","import { PageSignatureError } from \"../error\";\nconst responseSymbol = Symbol(\"response\");\nconst passThroughSymbol = Symbol(\"passThrough\");\nexport const waitUntilSymbol = Symbol(\"waitUntil\");\nclass FetchEvent {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(_request){\n this[waitUntilSymbol] = [];\n this[passThroughSymbol] = false;\n }\n respondWith(response) {\n if (!this[responseSymbol]) {\n this[responseSymbol] = Promise.resolve(response);\n }\n }\n passThroughOnException() {\n this[passThroughSymbol] = true;\n }\n waitUntil(promise) {\n this[waitUntilSymbol].push(promise);\n }\n}\nexport class NextFetchEvent extends FetchEvent {\n constructor(params){\n super(params.request);\n this.sourcePage = params.page;\n }\n /**\n * @deprecated The `request` is now the first parameter and the API is now async.\n *\n * Read more: https://nextjs.org/docs/messages/middleware-new-signature\n */ get request() {\n throw new PageSignatureError({\n page: this.sourcePage\n });\n }\n /**\n * @deprecated Using `respondWith` is no longer needed.\n *\n * Read more: https://nextjs.org/docs/messages/middleware-new-signature\n */ respondWith() {\n throw new PageSignatureError({\n page: this.sourcePage\n });\n }\n}\n\n//# sourceMappingURL=fetch-event.js.map","export function detectDomainLocale(domainItems, hostname, detectedLocale) {\n if (!domainItems) return;\n if (detectedLocale) {\n detectedLocale = detectedLocale.toLowerCase();\n }\n for (const item of domainItems){\n var _item_domain, _item_locales;\n // remove port if present\n const domainHostname = (_item_domain = item.domain) == null ? void 0 : _item_domain.split(\":\")[0].toLowerCase();\n if (hostname === domainHostname || detectedLocale === item.defaultLocale.toLowerCase() || ((_item_locales = item.locales) == null ? void 0 : _item_locales.some((locale)=>locale.toLowerCase() === detectedLocale))) {\n return item;\n }\n }\n}\n\n//# sourceMappingURL=detect-domain-locale.js.map","/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */ export function removeTrailingSlash(route) {\n return route.replace(/\\/$/, \"\") || \"/\";\n}\n\n//# sourceMappingURL=remove-trailing-slash.js.map","/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */ export function parsePath(path) {\n const hashIndex = path.indexOf(\"#\");\n const queryIndex = path.indexOf(\"?\");\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex);\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined) : \"\",\n hash: hashIndex > -1 ? path.slice(hashIndex) : \"\"\n };\n }\n return {\n pathname: path,\n query: \"\",\n hash: \"\"\n };\n}\n\n//# sourceMappingURL=parse-path.js.map","import { parsePath } from \"./parse-path\";\n/**\n * Adds the provided prefix to the given path. It first ensures that the path\n * is indeed starting with a slash.\n */ export function addPathPrefix(path, prefix) {\n if (!path.startsWith(\"/\") || !prefix) {\n return path;\n }\n const { pathname, query, hash } = parsePath(path);\n return \"\" + prefix + pathname + query + hash;\n}\n\n//# sourceMappingURL=add-path-prefix.js.map","import { parsePath } from \"./parse-path\";\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 */ export function addPathSuffix(path, suffix) {\n if (!path.startsWith(\"/\") || !suffix) {\n return path;\n }\n const { pathname, query, hash } = parsePath(path);\n return \"\" + pathname + suffix + query + hash;\n}\n\n//# sourceMappingURL=add-path-suffix.js.map","import { parsePath } from \"./parse-path\";\n/**\n * Checks if a given path starts with a given prefix. It ensures it matches\n * exactly without containing extra chars. e.g. prefix /docs should replace\n * for /docs, /docs/, /docs/a but not /docsss\n * @param path The path to check.\n * @param prefix The prefix to check against.\n */ export function pathHasPrefix(path, prefix) {\n if (typeof path !== \"string\") {\n return false;\n }\n const { pathname } = parsePath(path);\n return pathname === prefix || pathname.startsWith(prefix + \"/\");\n}\n\n//# sourceMappingURL=path-has-prefix.js.map","import { addPathPrefix } from \"./add-path-prefix\";\nimport { pathHasPrefix } from \"./path-has-prefix\";\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 */ export function addLocale(path, locale, defaultLocale, ignorePrefix) {\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 const lower = path.toLowerCase();\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 // Add the locale prefix to the path.\n return addPathPrefix(path, \"/\" + locale);\n}\n\n//# sourceMappingURL=add-locale.js.map","import { removeTrailingSlash } from \"./remove-trailing-slash\";\nimport { addPathPrefix } from \"./add-path-prefix\";\nimport { addPathSuffix } from \"./add-path-suffix\";\nimport { addLocale } from \"./add-locale\";\nexport function formatNextPathnameInfo(info) {\n let pathname = addLocale(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix);\n if (info.buildId || !info.trailingSlash) {\n pathname = removeTrailingSlash(pathname);\n }\n if (info.buildId) {\n pathname = addPathSuffix(addPathPrefix(pathname, \"/_next/data/\" + info.buildId), info.pathname === \"/\" ? \"index.json\" : \".json\");\n }\n pathname = addPathPrefix(pathname, info.basePath);\n return !info.buildId && info.trailingSlash ? !pathname.endsWith(\"/\") ? addPathSuffix(pathname, \"/\") : pathname : removeTrailingSlash(pathname);\n}\n\n//# sourceMappingURL=format-next-pathname-info.js.map","/**\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 */ export function getHostname(parsed, headers) {\n // Get the hostname from the headers if it exists, otherwise use the parsed\n // hostname.\n let hostname;\n if ((headers == null ? void 0 : headers.host) && !Array.isArray(headers.host)) {\n hostname = headers.host.toString().split(\":\")[0];\n } else if (parsed.hostname) {\n hostname = parsed.hostname;\n } else return;\n return hostname.toLowerCase();\n}\n\n//# sourceMappingURL=get-hostname.js.map","/**\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 */ export function normalizeLocalePath(pathname, locales) {\n let detectedLocale;\n // first item will be empty string from splitting at first char\n const pathnameParts = pathname.split(\"/\");\n (locales || []).some((locale)=>{\n if (pathnameParts[1] && pathnameParts[1].toLowerCase() === locale.toLowerCase()) {\n detectedLocale = locale;\n pathnameParts.splice(1, 1);\n pathname = pathnameParts.join(\"/\") || \"/\";\n return true;\n }\n return false;\n });\n return {\n pathname,\n detectedLocale\n };\n}\n\n//# sourceMappingURL=normalize-locale-path.js.map","import { pathHasPrefix } from \"./path-has-prefix\";\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 */ export function removePathPrefix(path, prefix) {\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 // Remove the prefix from the path via slicing.\n const withoutPrefix = path.slice(prefix.length);\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 // 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//# sourceMappingURL=remove-path-prefix.js.map","import { normalizeLocalePath } from \"../../i18n/normalize-locale-path\";\nimport { removePathPrefix } from \"./remove-path-prefix\";\nimport { pathHasPrefix } from \"./path-has-prefix\";\nexport function getNextPathnameInfo(pathname, options) {\n var _options_nextConfig;\n const { basePath, i18n, trailingSlash } = (_options_nextConfig = options.nextConfig) != null ? _options_nextConfig : {};\n const info = {\n pathname,\n trailingSlash: pathname !== \"/\" ? pathname.endsWith(\"/\") : trailingSlash\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 if (info.pathname.startsWith(\"/_next/data/\") && info.pathname.endsWith(\".json\")) {\n const paths = info.pathname.replace(/^\\/_next\\/data\\//, \"\").replace(/\\.json$/, \"\").split(\"/\");\n const buildId = paths[0];\n info.buildId = buildId;\n pathnameNoDataPrefix = paths[1] !== \"index\" ? \"/\" + paths.slice(1).join(\"/\") : \"/\";\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 // 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 ? options.i18nProvider.analyze(info.pathname) : normalizeLocalePath(info.pathname, i18n.locales);\n info.locale = result.detectedLocale;\n var _result_pathname;\n info.pathname = (_result_pathname = result.pathname) != null ? _result_pathname : info.pathname;\n if (!result.detectedLocale && info.buildId) {\n result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : normalizeLocalePath(pathnameNoDataPrefix, i18n.locales);\n if (result.detectedLocale) {\n info.locale = result.detectedLocale;\n }\n }\n }\n return info;\n}\n\n//# sourceMappingURL=get-next-pathname-info.js.map","import { detectDomainLocale } from \"../../shared/lib/i18n/detect-domain-locale\";\nimport { formatNextPathnameInfo } from \"../../shared/lib/router/utils/format-next-pathname-info\";\nimport { getHostname } from \"../../shared/lib/get-hostname\";\nimport { getNextPathnameInfo } from \"../../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\");\nexport class 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 = 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 = getHostname(this[Internal].url, this[Internal].options.headers);\n this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : 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 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 new TypeError(`The NextURL configuration includes no locale \"${locale}\"`);\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","export { RequestCookies, ResponseCookies } from \"next/dist/compiled/@edge-runtime/cookies\";\n\n//# sourceMappingURL=cookies.js.map","import { NextURL } from \"../next-url\";\nimport { toNodeOutgoingHttpHeaders, validateURL } from \"../utils\";\nimport { RemovedUAError, RemovedPageError } from \"../error\";\nimport { RequestCookies } from \"./cookies\";\nexport const INTERNALS = Symbol(\"internal request\");\nexport class NextRequest extends Request {\n constructor(input, init = {}){\n const url = typeof input !== \"string\" && \"url\" in input ? input.url : String(input);\n validateURL(url);\n if (input instanceof Request) super(input, init);\n else super(url, init);\n const nextUrl = new NextURL(url, {\n headers: toNodeOutgoingHttpHeaders(this.headers),\n nextConfig: init.nextConfig\n });\n this[INTERNALS] = {\n cookies: new RequestCookies(this.headers),\n geo: init.geo || {},\n ip: init.ip,\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 geo: this.geo,\n ip: this.ip,\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 geo() {\n return this[INTERNALS].geo;\n }\n get ip() {\n return this[INTERNALS].ip;\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 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 RemovedUAError();\n }\n get url() {\n return this[INTERNALS].url;\n }\n}\n\n//# sourceMappingURL=request.js.map","import { NextURL } from \"../next-url\";\nimport { toNodeOutgoingHttpHeaders, validateURL } from \"../utils\";\nimport { ResponseCookies } from \"./cookies\";\nconst INTERNALS = Symbol(\"internal response\");\nconst REDIRECTS = new Set([\n 301,\n 302,\n 303,\n 307,\n 308\n]);\nfunction handleMiddlewareField(init, headers) {\n var _init_request;\n if (init == null ? void 0 : (_init_request = init.request) == null ? void 0 : _init_request.headers) {\n if (!(init.request.headers instanceof Headers)) {\n throw new Error(\"request.headers must be an instance of Headers\");\n }\n const keys = [];\n for (const [key, value] of init.request.headers){\n headers.set(\"x-middleware-request-\" + key, value);\n keys.push(key);\n }\n headers.set(\"x-middleware-override-headers\", keys.join(\",\"));\n }\n}\nexport class NextResponse extends Response {\n constructor(body, init = {}){\n super(body, init);\n this[INTERNALS] = {\n cookies: new ResponseCookies(this.headers),\n url: init.url ? new NextURL(init.url, {\n headers: toNodeOutgoingHttpHeaders(this.headers),\n nextConfig: init.nextConfig\n }) : undefined\n };\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return {\n cookies: this.cookies,\n url: this.url,\n // rest of props come from Response\n body: this.body,\n bodyUsed: this.bodyUsed,\n headers: Object.fromEntries(this.headers),\n ok: this.ok,\n redirected: this.redirected,\n status: this.status,\n statusText: this.statusText,\n type: this.type\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n static json(body, init) {\n const response = Response.json(body, init);\n return new NextResponse(response.body, response);\n }\n static redirect(url, init) {\n const status = typeof init === \"number\" ? init : (init == null ? void 0 : init.status) ?? 307;\n if (!REDIRECTS.has(status)) {\n throw new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code');\n }\n const initObj = typeof init === \"object\" ? init : {};\n const headers = new Headers(initObj == null ? void 0 : initObj.headers);\n headers.set(\"Location\", validateURL(url));\n return new NextResponse(null, {\n ...initObj,\n headers,\n status\n });\n }\n static rewrite(destination, init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set(\"x-middleware-rewrite\", validateURL(destination));\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n static next(init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set(\"x-middleware-next\", \"1\");\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n}\n\n//# sourceMappingURL=response.js.map","/**\n * Given a URL as a string and a base URL it will make the URL relative\n * if the parsed protocol and host is the same as the one in the base\n * URL. Otherwise it returns the same URL string.\n */ export function relativizeURL(url, base) {\n const baseURL = typeof base === \"string\" ? new URL(base) : base;\n const relative = new URL(url, base);\n const origin = baseURL.protocol + \"//\" + baseURL.host;\n return relative.protocol + \"//\" + relative.host === origin ? relative.toString().replace(origin, \"\") : relative.toString();\n}\n\n//# sourceMappingURL=relativize-url.js.map","export const RSC = \"RSC\";\nexport const ACTION = \"Next-Action\";\nexport const NEXT_ROUTER_STATE_TREE = \"Next-Router-State-Tree\";\nexport const NEXT_ROUTER_PREFETCH = \"Next-Router-Prefetch\";\nexport const NEXT_URL = \"Next-Url\";\nexport const RSC_CONTENT_TYPE_HEADER = \"text/x-component\";\nexport const RSC_VARY_HEADER = RSC + \", \" + NEXT_ROUTER_STATE_TREE + \", \" + NEXT_ROUTER_PREFETCH + \", \" + NEXT_URL;\nexport const FLIGHT_PARAMETERS = [\n [\n RSC\n ],\n [\n NEXT_ROUTER_STATE_TREE\n ],\n [\n NEXT_ROUTER_PREFETCH\n ]\n];\nexport const NEXT_RSC_UNION_QUERY = \"_rsc\";\n\n//# sourceMappingURL=app-router-headers.js.map","import { NEXT_RSC_UNION_QUERY } from \"../client/components/app-router-headers\";\nconst INTERNAL_QUERY_NAMES = [\n \"__nextFallback\",\n \"__nextLocale\",\n \"__nextInferredLocaleFromDefault\",\n \"__nextDefaultLocale\",\n \"__nextIsNotFound\",\n NEXT_RSC_UNION_QUERY\n];\nconst EDGE_EXTENDED_INTERNAL_QUERY_NAMES = [\n \"__nextDataReq\"\n];\nexport function stripInternalQueries(query) {\n for (const name of INTERNAL_QUERY_NAMES){\n delete query[name];\n }\n}\nexport function stripInternalSearchParams(url, isEdge) {\n const isStringUrl = typeof url === \"string\";\n const instance = isStringUrl ? new URL(url) : url;\n for (const name of INTERNAL_QUERY_NAMES){\n instance.searchParams.delete(name);\n }\n if (isEdge) {\n for (const name of EDGE_EXTENDED_INTERNAL_QUERY_NAMES){\n instance.searchParams.delete(name);\n }\n }\n return isStringUrl ? instance.toString() : instance;\n}\n/**\n * Headers that are set by the Next.js server and should be stripped from the\n * request headers going to the user's application.\n */ const INTERNAL_HEADERS = [\n \"x-invoke-path\",\n \"x-invoke-status\",\n \"x-invoke-error\",\n \"x-invoke-query\",\n \"x-invoke-output\",\n \"x-middleware-invoke\"\n];\n/**\n * Strip internal headers from the request headers.\n *\n * @param headers the headers to strip of internal headers\n */ export function stripInternalHeaders(headers) {\n for (const key of INTERNAL_HEADERS){\n delete headers[key];\n }\n}\n\n//# sourceMappingURL=internal-utils.js.map","import { ensureLeadingSlash } from \"../../page-path/ensure-leading-slash\";\nimport { isGroupSegment } from \"../../segment\";\n/**\n * Normalizes an app route so it represents the actual request path. Essentially\n * performing the following transformations:\n *\n * - `/(dashboard)/user/[id]/page` to `/user/[id]`\n * - `/(dashboard)/account/page` to `/account`\n * - `/user/[id]/page` to `/user/[id]`\n * - `/account/page` to `/account`\n * - `/page` to `/`\n * - `/(dashboard)/user/[id]/route` to `/user/[id]`\n * - `/(dashboard)/account/route` to `/account`\n * - `/user/[id]/route` to `/user/[id]`\n * - `/account/route` to `/account`\n * - `/route` to `/`\n * - `/` to `/`\n *\n * @param route the app route to normalize\n * @returns the normalized pathname\n */ export function normalizeAppPath(route) {\n return ensureLeadingSlash(route.split(\"/\").reduce((pathname, segment, index, segments)=>{\n // Empty segments are ignored.\n if (!segment) {\n return pathname;\n }\n // Groups are ignored.\n if (isGroupSegment(segment)) {\n return pathname;\n }\n // Parallel segments are ignored.\n if (segment[0] === \"@\") {\n return pathname;\n }\n // The last segment (if it's a leaf) should be ignored.\n if ((segment === \"page\" || segment === \"route\") && index === segments.length - 1) {\n return pathname;\n }\n return pathname + \"/\" + segment;\n }, \"\"));\n}\n/**\n * Strips the `.rsc` extension if it's in the pathname.\n * Since this function is used on full urls it checks `?` for searchParams handling.\n */ export function normalizeRscPath(pathname, enabled) {\n return enabled ? pathname.replace(/\\.rsc($|\\?)/, // $1 ensures `?` is preserved\n \"$1\") : pathname;\n}\n\n//# sourceMappingURL=app-paths.js.map","export const NEXT_QUERY_PARAM_PREFIX = \"nxtP\";\nexport const PRERENDER_REVALIDATE_HEADER = \"x-prerender-revalidate\";\nexport const PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER = \"x-prerender-revalidate-if-generated\";\nexport const NEXT_CACHE_TAGS_HEADER = \"x-next-cache-tags\";\nexport const NEXT_CACHE_SOFT_TAGS_HEADER = \"x-next-cache-soft-tags\";\nexport const NEXT_CACHE_REVALIDATED_TAGS_HEADER = \"x-next-revalidated-tags\";\nexport const NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = \"x-next-revalidate-tag-token\";\nexport const NEXT_CACHE_TAG_MAX_LENGTH = 256;\nexport const NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024;\nexport const NEXT_CACHE_IMPLICIT_TAG_ID = \"_N_T_\";\n// in seconds\nexport const CACHE_ONE_YEAR = 31536000;\n// Patterns to detect middleware files\nexport const MIDDLEWARE_FILENAME = \"middleware\";\nexport const MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`;\n// Pattern to detect instrumentation hooks file\nexport const INSTRUMENTATION_HOOK_FILENAME = \"instrumentation\";\n// Because on Windows absolute paths in the generated code can break because of numbers, eg 1 in the path,\n// we have to use a private alias\nexport const PAGES_DIR_ALIAS = \"private-next-pages\";\nexport const DOT_NEXT_ALIAS = \"private-dot-next\";\nexport const ROOT_DIR_ALIAS = \"private-next-root-dir\";\nexport const APP_DIR_ALIAS = \"private-next-app-dir\";\nexport const RSC_MOD_REF_PROXY_ALIAS = \"private-next-rsc-mod-ref-proxy\";\nexport const RSC_ACTION_VALIDATE_ALIAS = \"private-next-rsc-action-validate\";\nexport const RSC_ACTION_PROXY_ALIAS = \"private-next-rsc-action-proxy\";\nexport const RSC_ACTION_CLIENT_WRAPPER_ALIAS = \"private-next-rsc-action-client-wrapper\";\nexport const 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`;\nexport const SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`;\nexport const SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`;\nexport const SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`;\nexport const STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`;\nexport const SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`;\nexport const GSP_NO_RETURNED_VALUE = \"Your `getStaticProps` function did not return an object. Did you forget to add a `return`?\";\nexport const GSSP_NO_RETURNED_VALUE = \"Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?\";\nexport const UNSTABLE_REVALIDATE_RENAME_ERROR = \"The `unstable_revalidate` property is available for general use.\\n\" + \"Please use `revalidate` instead.\";\nexport const 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`;\nexport const 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`;\nexport const 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`;\nexport const ESLINT_DEFAULT_DIRS = [\n \"app\",\n \"pages\",\n \"components\",\n \"lib\",\n \"src\"\n];\nexport const ESLINT_PROMPT_VALUES = [\n {\n title: \"Strict\",\n recommended: true,\n config: {\n extends: \"next/core-web-vitals\"\n }\n },\n {\n title: \"Base\",\n config: {\n extends: \"next\"\n }\n },\n {\n title: \"Cancel\",\n config: null\n }\n];\nexport const 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 * React Server Components layer (rsc).\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 layer for the API routes.\n */ api: \"api\",\n /**\n * The layer for the middleware code.\n */ middleware: \"middleware\",\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 server bundle layer for metadata routes.\n */ appMetadataRoute: \"app-metadata-route\",\n /**\n * The layer for the server bundle for App Route handlers.\n */ appRouteHandler: \"app-route-handler\"\n};\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n server: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.appMetadataRoute,\n WEBPACK_LAYERS_NAMES.appRouteHandler\n ],\n nonClientServerTarget: [\n // plus middleware and pages api\n WEBPACK_LAYERS_NAMES.middleware,\n WEBPACK_LAYERS_NAMES.api\n ],\n app: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.appMetadataRoute,\n WEBPACK_LAYERS_NAMES.appRouteHandler,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser\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};\nexport { WEBPACK_LAYERS, WEBPACK_RESOURCE_QUERIES };\n\n//# sourceMappingURL=constants.js.map","export class ReflectAdapter {\n static get(target, prop, receiver) {\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === \"function\") {\n return value.bind(target);\n }\n return value;\n }\n static set(target, prop, value, receiver) {\n return Reflect.set(target, prop, value, receiver);\n }\n static has(target, prop) {\n return Reflect.has(target, prop);\n }\n static deleteProperty(target, prop) {\n return Reflect.deleteProperty(target, prop);\n }\n}\n\n//# sourceMappingURL=reflect.js.map","import { ReflectAdapter } from \"./reflect\";\n/**\n * @internal\n */ export class ReadonlyHeadersError extends Error {\n constructor(){\n super(\"Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers\");\n }\n static callable() {\n throw new ReadonlyHeadersError();\n }\n}\nexport class HeadersAdapter extends Headers {\n constructor(headers){\n // We've already overridden the methods that would be called, so we're just\n // calling the super constructor to ensure that the instanceof check works.\n super();\n this.headers = new Proxy(headers, {\n get (target, prop, receiver) {\n // Because this is just an object, we expect that all \"get\" operations\n // are for properties. If it's a \"get\" for a symbol, we'll just return\n // the symbol.\n if (typeof prop === \"symbol\") {\n return ReflectAdapter.get(target, prop, receiver);\n }\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return undefined.\n if (typeof original === \"undefined\") return;\n // If the original casing exists, return the value.\n return ReflectAdapter.get(target, original, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === \"symbol\") {\n return ReflectAdapter.set(target, prop, value, receiver);\n }\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, use the prop as the key.\n return ReflectAdapter.set(target, original ?? prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === \"symbol\") return ReflectAdapter.has(target, prop);\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return false.\n if (typeof original === \"undefined\") return false;\n // If the original casing exists, return true.\n return ReflectAdapter.has(target, original);\n },\n deleteProperty (target, prop) {\n if (typeof prop === \"symbol\") return ReflectAdapter.deleteProperty(target, prop);\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return true.\n if (typeof original === \"undefined\") return true;\n // If the original casing exists, delete the property.\n return ReflectAdapter.deleteProperty(target, original);\n }\n });\n }\n /**\n * Seals a Headers instance to prevent modification by throwing an error when\n * any mutating method is called.\n */ static seal(headers) {\n return new Proxy(headers, {\n get (target, prop, receiver) {\n switch(prop){\n case \"append\":\n case \"delete\":\n case \"set\":\n return ReadonlyHeadersError.callable;\n default:\n return ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n /**\n * Merges a header value into a string. This stores multiple values as an\n * array, so we need to merge them into a string.\n *\n * @param value a header value\n * @returns a merged header value (a string)\n */ merge(value) {\n if (Array.isArray(value)) return value.join(\", \");\n return value;\n }\n /**\n * Creates a Headers instance from a plain object or a Headers instance.\n *\n * @param headers a plain object or a Headers instance\n * @returns a headers instance\n */ static from(headers) {\n if (headers instanceof Headers) return headers;\n return new HeadersAdapter(headers);\n }\n append(name, value) {\n const existing = this.headers[name];\n if (typeof existing === \"string\") {\n this.headers[name] = [\n existing,\n value\n ];\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n this.headers[name] = value;\n }\n }\n delete(name) {\n delete this.headers[name];\n }\n get(name) {\n const value = this.headers[name];\n if (typeof value !== \"undefined\") return this.merge(value);\n return null;\n }\n has(name) {\n return typeof this.headers[name] !== \"undefined\";\n }\n set(name, value) {\n this.headers[name] = value;\n }\n forEach(callbackfn, thisArg) {\n for (const [name, value] of this.entries()){\n callbackfn.call(thisArg, value, name, this);\n }\n }\n *entries() {\n for (const key of Object.keys(this.headers)){\n const name = key.toLowerCase();\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(name);\n yield [\n name,\n value\n ];\n }\n }\n *keys() {\n for (const key of Object.keys(this.headers)){\n const name = key.toLowerCase();\n yield name;\n }\n }\n *values() {\n for (const key of Object.keys(this.headers)){\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(key);\n yield value;\n }\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n}\n\n//# sourceMappingURL=headers.js.map","import { ResponseCookies } from \"../cookies\";\nimport { ReflectAdapter } from \"./reflect\";\n/**\n * @internal\n */ export class ReadonlyRequestCookiesError extends Error {\n constructor(){\n super(\"Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#cookiessetname-value-options\");\n }\n static callable() {\n throw new ReadonlyRequestCookiesError();\n }\n}\nexport class RequestCookiesAdapter {\n static seal(cookies) {\n return new Proxy(cookies, {\n get (target, prop, receiver) {\n switch(prop){\n case \"clear\":\n case \"delete\":\n case \"set\":\n return ReadonlyRequestCookiesError.callable;\n default:\n return ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n}\nconst SYMBOL_MODIFY_COOKIE_VALUES = Symbol.for(\"next.mutated.cookies\");\nexport function getModifiedCookieValues(cookies) {\n const modified = cookies[SYMBOL_MODIFY_COOKIE_VALUES];\n if (!modified || !Array.isArray(modified) || modified.length === 0) {\n return [];\n }\n return modified;\n}\nexport function appendMutableCookies(headers, mutableCookies) {\n const modifiedCookieValues = getModifiedCookieValues(mutableCookies);\n if (modifiedCookieValues.length === 0) {\n return false;\n }\n // Return a new response that extends the response with\n // the modified cookies as fallbacks. `res` cookies\n // will still take precedence.\n const resCookies = new ResponseCookies(headers);\n const returnedCookies = resCookies.getAll();\n // Set the modified cookies as fallbacks.\n for (const cookie of modifiedCookieValues){\n resCookies.set(cookie);\n }\n // Set the original cookies as the final values.\n for (const cookie of returnedCookies){\n resCookies.set(cookie);\n }\n return true;\n}\nexport class MutableRequestCookiesAdapter {\n static wrap(cookies, onUpdateCookies) {\n const responseCookes = new ResponseCookies(new Headers());\n for (const cookie of cookies.getAll()){\n responseCookes.set(cookie);\n }\n let modifiedValues = [];\n const modifiedCookies = new Set();\n const updateResponseCookies = ()=>{\n var _fetch___nextGetStaticStore;\n // TODO-APP: change method of getting staticGenerationAsyncStore\n const staticGenerationAsyncStore = fetch.__nextGetStaticStore == null ? void 0 : (_fetch___nextGetStaticStore = fetch.__nextGetStaticStore.call(fetch)) == null ? void 0 : _fetch___nextGetStaticStore.getStore();\n if (staticGenerationAsyncStore) {\n staticGenerationAsyncStore.pathWasRevalidated = true;\n }\n const allCookies = responseCookes.getAll();\n modifiedValues = allCookies.filter((c)=>modifiedCookies.has(c.name));\n if (onUpdateCookies) {\n const serializedCookies = [];\n for (const cookie of modifiedValues){\n const tempCookies = new ResponseCookies(new Headers());\n tempCookies.set(cookie);\n serializedCookies.push(tempCookies.toString());\n }\n onUpdateCookies(serializedCookies);\n }\n };\n return new Proxy(responseCookes, {\n get (target, prop, receiver) {\n switch(prop){\n // A special symbol to get the modified cookie values\n case SYMBOL_MODIFY_COOKIE_VALUES:\n return modifiedValues;\n // TODO: Throw error if trying to set a cookie after the response\n // headers have been set.\n case \"delete\":\n return function(...args) {\n modifiedCookies.add(typeof args[0] === \"string\" ? args[0] : args[0].name);\n try {\n target.delete(...args);\n } finally{\n updateResponseCookies();\n }\n };\n case \"set\":\n return function(...args) {\n modifiedCookies.add(typeof args[0] === \"string\" ? args[0] : args[0].name);\n try {\n return target.set(...args);\n } finally{\n updateResponseCookies();\n }\n };\n default:\n return ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n}\n\n//# sourceMappingURL=request-cookies.js.map","import { HeadersAdapter } from \"../web/spec-extension/adapters/headers\";\nimport { PRERENDER_REVALIDATE_HEADER, PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER } from \"../../lib/constants\";\n/**\n *\n * @param res response object\n * @param statusCode `HTTP` status code of response\n */ export function sendStatusCode(res, statusCode) {\n res.statusCode = statusCode;\n return res;\n}\n/**\n *\n * @param res response object\n * @param [statusOrUrl] `HTTP` status code of redirect\n * @param url URL of redirect\n */ export function redirect(res, statusOrUrl, url) {\n if (typeof statusOrUrl === \"string\") {\n url = statusOrUrl;\n statusOrUrl = 307;\n }\n if (typeof statusOrUrl !== \"number\" || typeof url !== \"string\") {\n throw new Error(`Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').`);\n }\n res.writeHead(statusOrUrl, {\n Location: url\n });\n res.write(url);\n res.end();\n return res;\n}\nexport function checkIsOnDemandRevalidate(req, previewProps) {\n const headers = HeadersAdapter.from(req.headers);\n const previewModeId = headers.get(PRERENDER_REVALIDATE_HEADER);\n const isOnDemandRevalidate = previewModeId === previewProps.previewModeId;\n const revalidateOnlyGenerated = headers.has(PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER);\n return {\n isOnDemandRevalidate,\n revalidateOnlyGenerated\n };\n}\nexport const COOKIE_NAME_PRERENDER_BYPASS = `__prerender_bypass`;\nexport const COOKIE_NAME_PRERENDER_DATA = `__next_preview_data`;\nexport const RESPONSE_LIMIT_DEFAULT = 4 * 1024 * 1024;\nexport const SYMBOL_PREVIEW_DATA = Symbol(COOKIE_NAME_PRERENDER_DATA);\nexport const SYMBOL_CLEARED_COOKIES = Symbol(COOKIE_NAME_PRERENDER_BYPASS);\nexport function clearPreviewData(res, options = {}) {\n if (SYMBOL_CLEARED_COOKIES in res) {\n return res;\n }\n const { serialize } = require(\"next/dist/compiled/cookie\");\n const previous = res.getHeader(\"Set-Cookie\");\n res.setHeader(`Set-Cookie`, [\n ...typeof previous === \"string\" ? [\n previous\n ] : Array.isArray(previous) ? previous : [],\n serialize(COOKIE_NAME_PRERENDER_BYPASS, \"\", {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== \"development\" ? \"none\" : \"lax\",\n secure: process.env.NODE_ENV !== \"development\",\n path: \"/\",\n ...options.path !== undefined ? {\n path: options.path\n } : undefined\n }),\n serialize(COOKIE_NAME_PRERENDER_DATA, \"\", {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== \"development\" ? \"none\" : \"lax\",\n secure: process.env.NODE_ENV !== \"development\",\n path: \"/\",\n ...options.path !== undefined ? {\n path: options.path\n } : undefined\n })\n ]);\n Object.defineProperty(res, SYMBOL_CLEARED_COOKIES, {\n value: true,\n enumerable: false\n });\n return res;\n}\n/**\n * Custom error class\n */ export class ApiError extends Error {\n constructor(statusCode, message){\n super(message);\n this.statusCode = statusCode;\n }\n}\n/**\n * Sends error in `response`\n * @param res response object\n * @param statusCode of response\n * @param message of response\n */ export function sendError(res, statusCode, message) {\n res.statusCode = statusCode;\n res.statusMessage = message;\n res.end(message);\n}\n/**\n * Execute getter function only if its needed\n * @param LazyProps `req` and `params` for lazyProp\n * @param prop name of property\n * @param getter function to get data\n */ export function setLazyProp({ req }, prop, getter) {\n const opts = {\n configurable: true,\n enumerable: true\n };\n const optsReset = {\n ...opts,\n writable: true\n };\n Object.defineProperty(req, prop, {\n ...opts,\n get: ()=>{\n const value = getter();\n // we set the property on the object to avoid recalculating it\n Object.defineProperty(req, prop, {\n ...optsReset,\n value\n });\n return value;\n },\n set: (value)=>{\n Object.defineProperty(req, prop, {\n ...optsReset,\n value\n });\n }\n });\n}\n\n//# sourceMappingURL=index.js.map","import { COOKIE_NAME_PRERENDER_BYPASS, checkIsOnDemandRevalidate } from \"../api-utils\";\nexport class DraftModeProvider {\n constructor(previewProps, req, cookies, mutableCookies){\n var _cookies_get;\n // The logic for draftMode() is very similar to tryGetPreviewData()\n // but Draft Mode does not have any data associated with it.\n const isOnDemandRevalidate = previewProps && checkIsOnDemandRevalidate(req, previewProps).isOnDemandRevalidate;\n const cookieValue = (_cookies_get = cookies.get(COOKIE_NAME_PRERENDER_BYPASS)) == null ? void 0 : _cookies_get.value;\n this.isEnabled = Boolean(!isOnDemandRevalidate && cookieValue && previewProps && cookieValue === previewProps.previewModeId);\n this._previewModeId = previewProps == null ? void 0 : previewProps.previewModeId;\n this._mutableCookies = mutableCookies;\n }\n enable() {\n if (!this._previewModeId) {\n throw new Error(\"Invariant: previewProps missing previewModeId this should never happen\");\n }\n this._mutableCookies.set({\n name: COOKIE_NAME_PRERENDER_BYPASS,\n value: this._previewModeId,\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== \"development\" ? \"none\" : \"lax\",\n secure: process.env.NODE_ENV !== \"development\",\n path: \"/\"\n });\n }\n disable() {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n this._mutableCookies.set({\n name: COOKIE_NAME_PRERENDER_BYPASS,\n value: \"\",\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== \"development\" ? \"none\" : \"lax\",\n secure: process.env.NODE_ENV !== \"development\",\n path: \"/\",\n expires: new Date(0)\n });\n }\n}\n\n//# sourceMappingURL=draft-mode-provider.js.map","import { FLIGHT_PARAMETERS } from \"../../client/components/app-router-headers\";\nimport { HeadersAdapter } from \"../web/spec-extension/adapters/headers\";\nimport { MutableRequestCookiesAdapter, RequestCookiesAdapter } from \"../web/spec-extension/adapters/request-cookies\";\nimport { RequestCookies } from \"../web/spec-extension/cookies\";\nimport { DraftModeProvider } from \"./draft-mode-provider\";\nfunction getHeaders(headers) {\n const cleaned = HeadersAdapter.from(headers);\n for (const param of FLIGHT_PARAMETERS){\n cleaned.delete(param.toString().toLowerCase());\n }\n return HeadersAdapter.seal(cleaned);\n}\nfunction getCookies(headers) {\n const cookies = new RequestCookies(HeadersAdapter.from(headers));\n return RequestCookiesAdapter.seal(cookies);\n}\nfunction getMutableCookies(headers, onUpdateCookies) {\n const cookies = new RequestCookies(HeadersAdapter.from(headers));\n return MutableRequestCookiesAdapter.wrap(cookies, onUpdateCookies);\n}\nexport const RequestAsyncStorageWrapper = {\n /**\n * Wrap the callback with the given store so it can access the underlying\n * store using hooks.\n *\n * @param storage underlying storage object returned by the module\n * @param context context to seed the store\n * @param callback function to call within the scope of the context\n * @returns the result returned by the callback\n */ wrap (storage, { req, res, renderOpts }, callback) {\n let previewProps = undefined;\n if (renderOpts && \"previewProps\" in renderOpts) {\n // TODO: investigate why previewProps isn't on RenderOpts\n previewProps = renderOpts.previewProps;\n }\n function defaultOnUpdateCookies(cookies) {\n if (res) {\n res.setHeader(\"Set-Cookie\", cookies);\n }\n }\n const cache = {};\n const store = {\n get headers () {\n if (!cache.headers) {\n // Seal the headers object that'll freeze out any methods that could\n // mutate the underlying data.\n cache.headers = getHeaders(req.headers);\n }\n return cache.headers;\n },\n get cookies () {\n if (!cache.cookies) {\n // Seal the cookies object that'll freeze out any methods that could\n // mutate the underlying data.\n cache.cookies = getCookies(req.headers);\n }\n return cache.cookies;\n },\n get mutableCookies () {\n if (!cache.mutableCookies) {\n cache.mutableCookies = getMutableCookies(req.headers, (renderOpts == null ? void 0 : renderOpts.onUpdateCookies) || (res ? defaultOnUpdateCookies : undefined));\n }\n return cache.mutableCookies;\n },\n get draftMode () {\n if (!cache.draftMode) {\n cache.draftMode = new DraftModeProvider(previewProps, req, this.cookies, this.mutableCookies);\n }\n return cache.draftMode;\n }\n };\n return storage.run(store, callback, store);\n }\n};\n\n//# sourceMappingURL=request-async-storage-wrapper.js.map","const sharedAsyncLocalStorageNotAvailableError = new Error(\"Invariant: AsyncLocalStorage accessed in runtime where it is not available\");\nclass FakeAsyncLocalStorage {\n disable() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n getStore() {\n // This fake implementation of AsyncLocalStorage always returns `undefined`.\n return undefined;\n }\n run() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n exit() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n enterWith() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n}\nconst maybeGlobalAsyncLocalStorage = globalThis.AsyncLocalStorage;\nexport function createAsyncLocalStorage() {\n if (maybeGlobalAsyncLocalStorage) {\n return new maybeGlobalAsyncLocalStorage();\n }\n return new FakeAsyncLocalStorage();\n}\n\n//# sourceMappingURL=async-local-storage.js.map","import { createAsyncLocalStorage } from \"./async-local-storage\";\nexport const requestAsyncStorage = createAsyncLocalStorage();\n\n//# sourceMappingURL=request-async-storage.external.js.map","import { PageSignatureError } from \"./error\";\nimport { fromNodeOutgoingHttpHeaders } from \"./utils\";\nimport { NextFetchEvent } from \"./spec-extension/fetch-event\";\nimport { NextRequest } from \"./spec-extension/request\";\nimport { NextResponse } from \"./spec-extension/response\";\nimport { relativizeURL } from \"../../shared/lib/router/utils/relativize-url\";\nimport { waitUntilSymbol } from \"./spec-extension/fetch-event\";\nimport { NextURL } from \"./next-url\";\nimport { stripInternalSearchParams } from \"../internal-utils\";\nimport { normalizeRscPath } from \"../../shared/lib/router/utils/app-paths\";\nimport { NEXT_ROUTER_PREFETCH, NEXT_ROUTER_STATE_TREE, RSC } from \"../../client/components/app-router-headers\";\nimport { NEXT_QUERY_PARAM_PREFIX } from \"../../lib/constants\";\nimport { ensureInstrumentationRegistered } from \"./globals\";\nimport { RequestAsyncStorageWrapper } from \"../async-storage/request-async-storage-wrapper\";\nimport { requestAsyncStorage } from \"../../client/components/request-async-storage.external\";\nclass NextRequestHint extends NextRequest {\n constructor(params){\n super(params.input, params.init);\n this.sourcePage = params.page;\n }\n get request() {\n throw new PageSignatureError({\n page: this.sourcePage\n });\n }\n respondWith() {\n throw new PageSignatureError({\n page: this.sourcePage\n });\n }\n waitUntil() {\n throw new PageSignatureError({\n page: this.sourcePage\n });\n }\n}\nconst FLIGHT_PARAMETERS = [\n [\n RSC\n ],\n [\n NEXT_ROUTER_STATE_TREE\n ],\n [\n NEXT_ROUTER_PREFETCH\n ]\n];\nexport async function adapter(params) {\n await ensureInstrumentationRegistered();\n // TODO-APP: use explicit marker for this\n const isEdgeRendering = typeof self.__BUILD_MANIFEST !== \"undefined\";\n const prerenderManifest = typeof self.__PRERENDER_MANIFEST === \"string\" ? JSON.parse(self.__PRERENDER_MANIFEST) : undefined;\n params.request.url = normalizeRscPath(params.request.url, true);\n const requestUrl = new NextURL(params.request.url, {\n headers: params.request.headers,\n nextConfig: params.request.nextConfig\n });\n // Iterator uses an index to keep track of the current iteration. Because of deleting and appending below we can't just use the iterator.\n // Instead we use the keys before iteration.\n const keys = [\n ...requestUrl.searchParams.keys()\n ];\n for (const key of keys){\n const value = requestUrl.searchParams.getAll(key);\n if (key !== NEXT_QUERY_PARAM_PREFIX && key.startsWith(NEXT_QUERY_PARAM_PREFIX)) {\n const normalizedKey = key.substring(NEXT_QUERY_PARAM_PREFIX.length);\n requestUrl.searchParams.delete(normalizedKey);\n for (const val of value){\n requestUrl.searchParams.append(normalizedKey, val);\n }\n requestUrl.searchParams.delete(key);\n }\n }\n // Ensure users only see page requests, never data requests.\n const buildId = requestUrl.buildId;\n requestUrl.buildId = \"\";\n const isDataReq = params.request.headers[\"x-nextjs-data\"];\n if (isDataReq && requestUrl.pathname === \"/index\") {\n requestUrl.pathname = \"/\";\n }\n const requestHeaders = fromNodeOutgoingHttpHeaders(params.request.headers);\n const flightHeaders = new Map();\n // Parameters should only be stripped for middleware\n if (!isEdgeRendering) {\n for (const param of FLIGHT_PARAMETERS){\n const key = param.toString().toLowerCase();\n const value = requestHeaders.get(key);\n if (value) {\n flightHeaders.set(key, requestHeaders.get(key));\n requestHeaders.delete(key);\n }\n }\n }\n const normalizeUrl = process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE ? new URL(params.request.url) : requestUrl;\n const request = new NextRequestHint({\n page: params.page,\n // Strip internal query parameters off the request.\n input: stripInternalSearchParams(normalizeUrl, true).toString(),\n init: {\n body: params.request.body,\n geo: params.request.geo,\n headers: requestHeaders,\n ip: params.request.ip,\n method: params.request.method,\n nextConfig: params.request.nextConfig,\n signal: params.request.signal\n }\n });\n /**\n * This allows to identify the request as a data request. The user doesn't\n * need to know about this property neither use it. We add it for testing\n * purposes.\n */ if (isDataReq) {\n Object.defineProperty(request, \"__isData\", {\n enumerable: false,\n value: true\n });\n }\n if (!globalThis.__incrementalCache && params.IncrementalCache) {\n globalThis.__incrementalCache = new params.IncrementalCache({\n appDir: true,\n fetchCache: true,\n minimalMode: process.env.NODE_ENV !== \"development\",\n fetchCacheKeyPrefix: process.env.__NEXT_FETCH_CACHE_KEY_PREFIX,\n dev: process.env.NODE_ENV === \"development\",\n requestHeaders: params.request.headers,\n requestProtocol: \"https\",\n getPrerenderManifest: ()=>{\n return {\n version: -1,\n routes: {},\n dynamicRoutes: {},\n notFoundRoutes: [],\n preview: {\n previewModeId: \"development-id\"\n }\n };\n }\n });\n }\n const event = new NextFetchEvent({\n request,\n page: params.page\n });\n let response;\n let cookiesFromResponse;\n // we only care to make async storage available for middleware\n const isMiddleware = params.page === \"/middleware\" || params.page === \"/src/middleware\";\n if (isMiddleware) {\n response = await RequestAsyncStorageWrapper.wrap(requestAsyncStorage, {\n req: request,\n renderOpts: {\n onUpdateCookies: (cookies)=>{\n cookiesFromResponse = cookies;\n },\n // @ts-expect-error: TODO: investigate why previewProps isn't on RenderOpts\n previewProps: (prerenderManifest == null ? void 0 : prerenderManifest.preview) || {\n previewModeId: \"development-id\",\n previewModeEncryptionKey: \"\",\n previewModeSigningKey: \"\"\n }\n }\n }, ()=>params.handler(request, event));\n } else {\n response = await params.handler(request, event);\n }\n // check if response is a Response object\n if (response && !(response instanceof Response)) {\n throw new TypeError(\"Expected an instance of Response to be returned\");\n }\n if (response && cookiesFromResponse) {\n response.headers.set(\"set-cookie\", cookiesFromResponse);\n }\n /**\n * For rewrites we must always include the locale in the final pathname\n * so we re-create the NextURL forcing it to include it when the it is\n * an internal rewrite. Also we make sure the outgoing rewrite URL is\n * a data URL if the request was a data request.\n */ const rewrite = response == null ? void 0 : response.headers.get(\"x-middleware-rewrite\");\n if (response && rewrite) {\n const rewriteUrl = new NextURL(rewrite, {\n forceLocale: true,\n headers: params.request.headers,\n nextConfig: params.request.nextConfig\n });\n if (!process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE) {\n if (rewriteUrl.host === request.nextUrl.host) {\n rewriteUrl.buildId = buildId || rewriteUrl.buildId;\n response.headers.set(\"x-middleware-rewrite\", String(rewriteUrl));\n }\n }\n /**\n * When the request is a data request we must show if there was a rewrite\n * with an internal header so the client knows which component to load\n * from the data request.\n */ const relativizedRewrite = relativizeURL(String(rewriteUrl), String(requestUrl));\n if (isDataReq && // if the rewrite is external and external rewrite\n // resolving config is enabled don't add this header\n // so the upstream app can set it instead\n !(process.env.__NEXT_EXTERNAL_MIDDLEWARE_REWRITE_RESOLVE && relativizedRewrite.match(/http(s)?:\\/\\//))) {\n response.headers.set(\"x-nextjs-rewrite\", relativizedRewrite);\n }\n }\n /**\n * For redirects we will not include the locale in case when it is the\n * default and we must also make sure the outgoing URL is a data one if\n * the incoming request was a data request.\n */ const redirect = response == null ? void 0 : response.headers.get(\"Location\");\n if (response && redirect && !isEdgeRendering) {\n const redirectURL = new NextURL(redirect, {\n forceLocale: false,\n headers: params.request.headers,\n nextConfig: params.request.nextConfig\n });\n /**\n * Responses created from redirects have immutable headers so we have\n * to clone the response to be able to modify it.\n */ response = new Response(response.body, response);\n if (!process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE) {\n if (redirectURL.host === request.nextUrl.host) {\n redirectURL.buildId = buildId || redirectURL.buildId;\n response.headers.set(\"Location\", String(redirectURL));\n }\n }\n /**\n * When the request is a data request we can't use the location header as\n * it may end up with CORS error. Instead we map to an internal header so\n * the client knows the destination.\n */ if (isDataReq) {\n response.headers.delete(\"Location\");\n response.headers.set(\"x-nextjs-redirect\", relativizeURL(String(redirectURL), String(requestUrl)));\n }\n }\n const finalResponse = response ? response : NextResponse.next();\n // Flight headers are not overridable / removable so they are applied at the end.\n const middlewareOverrideHeaders = finalResponse.headers.get(\"x-middleware-override-headers\");\n const overwrittenHeaders = [];\n if (middlewareOverrideHeaders) {\n for (const [key, value] of flightHeaders){\n finalResponse.headers.set(`x-middleware-request-${key}`, value);\n overwrittenHeaders.push(key);\n }\n if (overwrittenHeaders.length > 0) {\n finalResponse.headers.set(\"x-middleware-override-headers\", middlewareOverrideHeaders + \",\" + overwrittenHeaders.join(\",\"));\n }\n }\n return {\n response: finalResponse,\n waitUntil: Promise.all(event[waitUntilSymbol]),\n fetchMetrics: request.fetchMetrics\n };\n}\n\n//# sourceMappingURL=adapter.js.map","// This file is for modularized imports for next/server to get fully-treeshaking.\nexport { NextResponse as default } from \"../spec-extension/response\";\n\n//# sourceMappingURL=next-response.js.map","export function encodeBase64(input) {\n if (Uint8Array.prototype.toBase64) {\n return input.toBase64();\n }\n const CHUNK_SIZE = 0x8000;\n const arr = [];\n for (let i = 0; i < input.length; i += CHUNK_SIZE) {\n arr.push(String.fromCharCode.apply(null, input.subarray(i, i + CHUNK_SIZE)));\n }\n return btoa(arr.join(''));\n}\nexport function decodeBase64(encoded) {\n if (Uint8Array.fromBase64) {\n return Uint8Array.fromBase64(encoded);\n }\n const binary = atob(encoded);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n}\n","export class JOSEError extends Error {\n static code = 'ERR_JOSE_GENERIC';\n code = 'ERR_JOSE_GENERIC';\n constructor(message, options) {\n super(message, options);\n this.name = this.constructor.name;\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\nexport class JWTClaimValidationFailed extends JOSEError {\n static code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n claim;\n reason;\n payload;\n constructor(message, payload, claim = 'unspecified', reason = 'unspecified') {\n super(message, { cause: { claim, reason, payload } });\n this.claim = claim;\n this.reason = reason;\n this.payload = payload;\n }\n}\nexport class JWTExpired extends JOSEError {\n static code = 'ERR_JWT_EXPIRED';\n code = 'ERR_JWT_EXPIRED';\n claim;\n reason;\n payload;\n constructor(message, payload, claim = 'unspecified', reason = 'unspecified') {\n super(message, { cause: { claim, reason, payload } });\n this.claim = claim;\n this.reason = reason;\n this.payload = payload;\n }\n}\nexport class JOSEAlgNotAllowed extends JOSEError {\n static code = 'ERR_JOSE_ALG_NOT_ALLOWED';\n code = 'ERR_JOSE_ALG_NOT_ALLOWED';\n}\nexport class JOSENotSupported extends JOSEError {\n static code = 'ERR_JOSE_NOT_SUPPORTED';\n code = 'ERR_JOSE_NOT_SUPPORTED';\n}\nexport class JWEDecryptionFailed extends JOSEError {\n static code = 'ERR_JWE_DECRYPTION_FAILED';\n code = 'ERR_JWE_DECRYPTION_FAILED';\n constructor(message = 'decryption operation failed', options) {\n super(message, options);\n }\n}\nexport class JWEInvalid extends JOSEError {\n static code = 'ERR_JWE_INVALID';\n code = 'ERR_JWE_INVALID';\n}\nexport class JWSInvalid extends JOSEError {\n static code = 'ERR_JWS_INVALID';\n code = 'ERR_JWS_INVALID';\n}\nexport class JWTInvalid extends JOSEError {\n static code = 'ERR_JWT_INVALID';\n code = 'ERR_JWT_INVALID';\n}\nexport class JWKInvalid extends JOSEError {\n static code = 'ERR_JWK_INVALID';\n code = 'ERR_JWK_INVALID';\n}\nexport class JWKSInvalid extends JOSEError {\n static code = 'ERR_JWKS_INVALID';\n code = 'ERR_JWKS_INVALID';\n}\nexport class JWKSNoMatchingKey extends JOSEError {\n static code = 'ERR_JWKS_NO_MATCHING_KEY';\n code = 'ERR_JWKS_NO_MATCHING_KEY';\n constructor(message = 'no applicable key found in the JSON Web Key Set', options) {\n super(message, options);\n }\n}\nexport class JWKSMultipleMatchingKeys extends JOSEError {\n [Symbol.asyncIterator];\n static code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n constructor(message = 'multiple matching keys found in the JSON Web Key Set', options) {\n super(message, options);\n }\n}\nexport class JWKSTimeout extends JOSEError {\n static code = 'ERR_JWKS_TIMEOUT';\n code = 'ERR_JWKS_TIMEOUT';\n constructor(message = 'request timed out', options) {\n super(message, options);\n }\n}\nexport class JWSSignatureVerificationFailed extends JOSEError {\n static code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n constructor(message = 'signature verification failed', options) {\n super(message, options);\n }\n}\n","import { invalidKeyInput } from './invalid_key_input.js';\nimport { encodeBase64, decodeBase64 } from '../lib/base64.js';\nimport { JOSENotSupported } from '../util/errors.js';\nimport { isCryptoKey, isKeyObject } from './is_key_like.js';\nconst formatPEM = (b64, descriptor) => {\n const newlined = (b64.match(/.{1,64}/g) || []).join('\\n');\n return `-----BEGIN ${descriptor}-----\\n${newlined}\\n-----END ${descriptor}-----`;\n};\nconst genericExport = async (keyType, keyFormat, key) => {\n if (isKeyObject(key)) {\n if (key.type !== keyType) {\n throw new TypeError(`key is not a ${keyType} key`);\n }\n return key.export({ format: 'pem', type: keyFormat });\n }\n if (!isCryptoKey(key)) {\n throw new TypeError(invalidKeyInput(key, 'CryptoKey', 'KeyObject'));\n }\n if (!key.extractable) {\n throw new TypeError('CryptoKey is not extractable');\n }\n if (key.type !== keyType) {\n throw new TypeError(`key is not a ${keyType} key`);\n }\n return formatPEM(encodeBase64(new Uint8Array(await crypto.subtle.exportKey(keyFormat, key))), `${keyType.toUpperCase()} KEY`);\n};\nexport const toSPKI = (key) => genericExport('public', 'spki', key);\nexport const toPKCS8 = (key) => genericExport('private', 'pkcs8', key);\nconst bytesEqual = (a, b) => {\n if (a.byteLength !== b.length)\n return false;\n for (let i = 0; i < a.byteLength; i++) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n};\nconst createASN1State = (data) => ({ data, pos: 0 });\nconst parseLength = (state) => {\n const first = state.data[state.pos++];\n if (first & 0x80) {\n const lengthOfLen = first & 0x7f;\n let length = 0;\n for (let i = 0; i < lengthOfLen; i++) {\n length = (length << 8) | state.data[state.pos++];\n }\n return length;\n }\n return first;\n};\nconst skipElement = (state, count = 1) => {\n if (count <= 0)\n return;\n state.pos++;\n const length = parseLength(state);\n state.pos += length;\n if (count > 1) {\n skipElement(state, count - 1);\n }\n};\nconst expectTag = (state, expectedTag, errorMessage) => {\n if (state.data[state.pos++] !== expectedTag) {\n throw new Error(errorMessage);\n }\n};\nconst getSubarray = (state, length) => {\n const result = state.data.subarray(state.pos, state.pos + length);\n state.pos += length;\n return result;\n};\nconst parseAlgorithmOID = (state) => {\n expectTag(state, 0x06, 'Expected algorithm OID');\n const oidLen = parseLength(state);\n return getSubarray(state, oidLen);\n};\nfunction parsePKCS8Header(state) {\n expectTag(state, 0x30, 'Invalid PKCS#8 structure');\n parseLength(state);\n expectTag(state, 0x02, 'Expected version field');\n const verLen = parseLength(state);\n state.pos += verLen;\n expectTag(state, 0x30, 'Expected algorithm identifier');\n const algIdLen = parseLength(state);\n const algIdStart = state.pos;\n return { algIdStart, algIdLength: algIdLen };\n}\nfunction parseSPKIHeader(state) {\n expectTag(state, 0x30, 'Invalid SPKI structure');\n parseLength(state);\n expectTag(state, 0x30, 'Expected algorithm identifier');\n const algIdLen = parseLength(state);\n const algIdStart = state.pos;\n return { algIdStart, algIdLength: algIdLen };\n}\nconst parseECAlgorithmIdentifier = (state) => {\n const algOid = parseAlgorithmOID(state);\n if (bytesEqual(algOid, [0x2b, 0x65, 0x6e])) {\n return 'X25519';\n }\n if (!bytesEqual(algOid, [0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01])) {\n throw new Error('Unsupported key algorithm');\n }\n expectTag(state, 0x06, 'Expected curve OID');\n const curveOidLen = parseLength(state);\n const curveOid = getSubarray(state, curveOidLen);\n for (const { name, oid } of [\n { name: 'P-256', oid: [0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07] },\n { name: 'P-384', oid: [0x2b, 0x81, 0x04, 0x00, 0x22] },\n { name: 'P-521', oid: [0x2b, 0x81, 0x04, 0x00, 0x23] },\n ]) {\n if (bytesEqual(curveOid, oid)) {\n return name;\n }\n }\n throw new Error('Unsupported named curve');\n};\nconst genericImport = async (keyFormat, keyData, alg, options) => {\n let algorithm;\n let keyUsages;\n const isPublic = keyFormat === 'spki';\n const getSigUsages = () => (isPublic ? ['verify'] : ['sign']);\n const getEncUsages = () => isPublic ? ['encrypt', 'wrapKey'] : ['decrypt', 'unwrapKey'];\n switch (alg) {\n case 'PS256':\n case 'PS384':\n case 'PS512':\n algorithm = { name: 'RSA-PSS', hash: `SHA-${alg.slice(-3)}` };\n keyUsages = getSigUsages();\n break;\n case 'RS256':\n case 'RS384':\n case 'RS512':\n algorithm = { name: 'RSASSA-PKCS1-v1_5', hash: `SHA-${alg.slice(-3)}` };\n keyUsages = getSigUsages();\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512':\n algorithm = {\n name: 'RSA-OAEP',\n hash: `SHA-${parseInt(alg.slice(-3), 10) || 1}`,\n };\n keyUsages = getEncUsages();\n break;\n case 'ES256':\n case 'ES384':\n case 'ES512': {\n const curveMap = { ES256: 'P-256', ES384: 'P-384', ES512: 'P-521' };\n algorithm = { name: 'ECDSA', namedCurve: curveMap[alg] };\n keyUsages = getSigUsages();\n break;\n }\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW': {\n try {\n const namedCurve = options.getNamedCurve(keyData);\n algorithm = namedCurve === 'X25519' ? { name: 'X25519' } : { name: 'ECDH', namedCurve };\n }\n catch (cause) {\n throw new JOSENotSupported('Invalid or unsupported key format');\n }\n keyUsages = isPublic ? [] : ['deriveBits'];\n break;\n }\n case 'Ed25519':\n case 'EdDSA':\n algorithm = { name: 'Ed25519' };\n keyUsages = getSigUsages();\n break;\n case 'ML-DSA-44':\n case 'ML-DSA-65':\n case 'ML-DSA-87':\n algorithm = { name: alg };\n keyUsages = getSigUsages();\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported \"alg\" (Algorithm) value');\n }\n return crypto.subtle.importKey(keyFormat, keyData, algorithm, options?.extractable ?? (isPublic ? true : false), keyUsages);\n};\nconst processPEMData = (pem, pattern) => {\n return decodeBase64(pem.replace(pattern, ''));\n};\nexport const fromPKCS8 = (pem, alg, options) => {\n const keyData = processPEMData(pem, /(?:-----(?:BEGIN|END) PRIVATE KEY-----|\\s)/g);\n let opts = options;\n if (alg?.startsWith?.('ECDH-ES')) {\n opts ||= {};\n opts.getNamedCurve = (keyData) => {\n const state = createASN1State(keyData);\n parsePKCS8Header(state);\n return parseECAlgorithmIdentifier(state);\n };\n }\n return genericImport('pkcs8', keyData, alg, opts);\n};\nexport const fromSPKI = (pem, alg, options) => {\n const keyData = processPEMData(pem, /(?:-----(?:BEGIN|END) PUBLIC KEY-----|\\s)/g);\n let opts = options;\n if (alg?.startsWith?.('ECDH-ES')) {\n opts ||= {};\n opts.getNamedCurve = (keyData) => {\n const state = createASN1State(keyData);\n parseSPKIHeader(state);\n return parseECAlgorithmIdentifier(state);\n };\n }\n return genericImport('spki', keyData, alg, opts);\n};\nfunction spkiFromX509(buf) {\n const state = createASN1State(buf);\n expectTag(state, 0x30, 'Invalid certificate structure');\n parseLength(state);\n expectTag(state, 0x30, 'Invalid tbsCertificate structure');\n parseLength(state);\n if (buf[state.pos] === 0xa0) {\n skipElement(state, 6);\n }\n else {\n skipElement(state, 5);\n }\n const spkiStart = state.pos;\n expectTag(state, 0x30, 'Invalid SPKI structure');\n const spkiContentLen = parseLength(state);\n return buf.subarray(spkiStart, spkiStart + spkiContentLen + (state.pos - spkiStart));\n}\nfunction extractX509SPKI(x509) {\n const derBytes = processPEMData(x509, /(?:-----(?:BEGIN|END) CERTIFICATE-----|\\s)/g);\n return spkiFromX509(derBytes);\n}\nexport const fromX509 = (pem, alg, options) => {\n let spki;\n try {\n spki = extractX509SPKI(pem);\n }\n catch (cause) {\n throw new TypeError('Failed to parse the X.509 certificate', { cause });\n }\n return fromSPKI(formatPEM(encodeBase64(spki), 'PUBLIC KEY'), alg, options);\n};\n","import { decode as decodeBase64URL } from '../util/base64url.js';\nimport { fromSPKI, fromPKCS8, fromX509 } from '../lib/asn1.js';\nimport { jwkToKey } from '../lib/jwk_to_key.js';\nimport { JOSENotSupported } from '../util/errors.js';\nimport { isObject } from '../lib/type_checks.js';\nexport async function importSPKI(spki, alg, options) {\n if (typeof spki !== 'string' || spki.indexOf('-----BEGIN PUBLIC KEY-----') !== 0) {\n throw new TypeError('\"spki\" must be SPKI formatted string');\n }\n return fromSPKI(spki, alg, options);\n}\nexport async function importX509(x509, alg, options) {\n if (typeof x509 !== 'string' || x509.indexOf('-----BEGIN CERTIFICATE-----') !== 0) {\n throw new TypeError('\"x509\" must be X.509 formatted string');\n }\n return fromX509(x509, alg, options);\n}\nexport async function importPKCS8(pkcs8, alg, options) {\n if (typeof pkcs8 !== 'string' || pkcs8.indexOf('-----BEGIN PRIVATE KEY-----') !== 0) {\n throw new TypeError('\"pkcs8\" must be PKCS#8 formatted string');\n }\n return fromPKCS8(pkcs8, alg, options);\n}\nexport async function importJWK(jwk, alg, options) {\n if (!isObject(jwk)) {\n throw new TypeError('JWK must be an object');\n }\n let ext;\n alg ??= jwk.alg;\n ext ??= options?.extractable ?? jwk.ext;\n switch (jwk.kty) {\n case 'oct':\n if (typeof jwk.k !== 'string' || !jwk.k) {\n throw new TypeError('missing \"k\" (Key Value) Parameter value');\n }\n return decodeBase64URL(jwk.k);\n case 'RSA':\n if ('oth' in jwk && jwk.oth !== undefined) {\n throw new JOSENotSupported('RSA JWK \"oth\" (Other Primes Info) Parameter value is not supported');\n }\n return jwkToKey({ ...jwk, alg, ext });\n case 'AKP': {\n if (typeof jwk.alg !== 'string' || !jwk.alg) {\n throw new TypeError('missing \"alg\" (Algorithm) Parameter value');\n }\n if (alg !== undefined && alg !== jwk.alg) {\n throw new TypeError('JWK alg and alg option value mismatch');\n }\n return jwkToKey({ ...jwk, ext });\n }\n case 'EC':\n case 'OKP':\n return jwkToKey({ ...jwk, alg, ext });\n default:\n throw new JOSENotSupported('Unsupported \"kty\" (Key Type) Parameter value');\n }\n}\n","export const encoder = new TextEncoder();\nexport const decoder = new TextDecoder();\nconst MAX_INT32 = 2 ** 32;\nexport function concat(...buffers) {\n const size = buffers.reduce((acc, { length }) => acc + length, 0);\n const buf = new Uint8Array(size);\n let i = 0;\n for (const buffer of buffers) {\n buf.set(buffer, i);\n i += buffer.length;\n }\n return buf;\n}\nfunction writeUInt32BE(buf, value, offset) {\n if (value < 0 || value >= MAX_INT32) {\n throw new RangeError(`value must be >= 0 and <= ${MAX_INT32 - 1}. Received ${value}`);\n }\n buf.set([value >>> 24, value >>> 16, value >>> 8, value & 0xff], offset);\n}\nexport function uint64be(value) {\n const high = Math.floor(value / MAX_INT32);\n const low = value % MAX_INT32;\n const buf = new Uint8Array(8);\n writeUInt32BE(buf, high, 0);\n writeUInt32BE(buf, low, 4);\n return buf;\n}\nexport function uint32be(value) {\n const buf = new Uint8Array(4);\n writeUInt32BE(buf, value);\n return buf;\n}\nexport function encode(string) {\n const bytes = new Uint8Array(string.length);\n for (let i = 0; i < string.length; i++) {\n const code = string.charCodeAt(i);\n if (code > 127) {\n throw new TypeError('non-ASCII string encountered in encode()');\n }\n bytes[i] = code;\n }\n return bytes;\n}\n","import { encoder, decoder } from '../lib/buffer_utils.js';\nimport { encodeBase64, decodeBase64 } from '../lib/base64.js';\nexport function decode(input) {\n if (Uint8Array.fromBase64) {\n return Uint8Array.fromBase64(typeof input === 'string' ? input : decoder.decode(input), {\n alphabet: 'base64url',\n });\n }\n let encoded = input;\n if (encoded instanceof Uint8Array) {\n encoded = decoder.decode(encoded);\n }\n encoded = encoded.replace(/-/g, '+').replace(/_/g, '/');\n try {\n return decodeBase64(encoded);\n }\n catch {\n throw new TypeError('The input to be decoded is not correctly encoded.');\n }\n}\nexport function encode(input) {\n let unencoded = input;\n if (typeof unencoded === 'string') {\n unencoded = encoder.encode(unencoded);\n }\n if (Uint8Array.prototype.toBase64) {\n return unencoded.toBase64({ alphabet: 'base64url', omitPadding: true });\n }\n return encodeBase64(unencoded).replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n}\n","const unusable = (name, prop = 'algorithm.name') => new TypeError(`CryptoKey does not support this operation, its ${prop} must be ${name}`);\nconst isAlgorithm = (algorithm, name) => algorithm.name === name;\nfunction getHashLength(hash) {\n return parseInt(hash.name.slice(4), 10);\n}\nfunction checkHashLength(algorithm, expected) {\n const actual = getHashLength(algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n}\nfunction getNamedCurve(alg) {\n switch (alg) {\n case 'ES256':\n return 'P-256';\n case 'ES384':\n return 'P-384';\n case 'ES512':\n return 'P-521';\n default:\n throw new Error('unreachable');\n }\n}\nfunction checkUsage(key, usage) {\n if (usage && !key.usages.includes(usage)) {\n throw new TypeError(`CryptoKey does not support this operation, its usages must include ${usage}.`);\n }\n}\nexport function checkSigCryptoKey(key, alg, usage) {\n switch (alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512': {\n if (!isAlgorithm(key.algorithm, 'HMAC'))\n throw unusable('HMAC');\n checkHashLength(key.algorithm, parseInt(alg.slice(2), 10));\n break;\n }\n case 'RS256':\n case 'RS384':\n case 'RS512': {\n if (!isAlgorithm(key.algorithm, 'RSASSA-PKCS1-v1_5'))\n throw unusable('RSASSA-PKCS1-v1_5');\n checkHashLength(key.algorithm, parseInt(alg.slice(2), 10));\n break;\n }\n case 'PS256':\n case 'PS384':\n case 'PS512': {\n if (!isAlgorithm(key.algorithm, 'RSA-PSS'))\n throw unusable('RSA-PSS');\n checkHashLength(key.algorithm, parseInt(alg.slice(2), 10));\n break;\n }\n case 'Ed25519':\n case 'EdDSA': {\n if (!isAlgorithm(key.algorithm, 'Ed25519'))\n throw unusable('Ed25519');\n break;\n }\n case 'ML-DSA-44':\n case 'ML-DSA-65':\n case 'ML-DSA-87': {\n if (!isAlgorithm(key.algorithm, alg))\n throw unusable(alg);\n break;\n }\n case 'ES256':\n case 'ES384':\n case 'ES512': {\n if (!isAlgorithm(key.algorithm, 'ECDSA'))\n throw unusable('ECDSA');\n const expected = getNamedCurve(alg);\n const actual = key.algorithm.namedCurve;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.namedCurve');\n break;\n }\n default:\n throw new TypeError('CryptoKey does not support this operation');\n }\n checkUsage(key, usage);\n}\nexport function checkEncCryptoKey(key, alg, usage) {\n switch (alg) {\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM': {\n if (!isAlgorithm(key.algorithm, 'AES-GCM'))\n throw unusable('AES-GCM');\n const expected = parseInt(alg.slice(1, 4), 10);\n const actual = key.algorithm.length;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.length');\n break;\n }\n case 'A128KW':\n case 'A192KW':\n case 'A256KW': {\n if (!isAlgorithm(key.algorithm, 'AES-KW'))\n throw unusable('AES-KW');\n const expected = parseInt(alg.slice(1, 4), 10);\n const actual = key.algorithm.length;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.length');\n break;\n }\n case 'ECDH': {\n switch (key.algorithm.name) {\n case 'ECDH':\n case 'X25519':\n break;\n default:\n throw unusable('ECDH or X25519');\n }\n break;\n }\n case 'PBES2-HS256+A128KW':\n case 'PBES2-HS384+A192KW':\n case 'PBES2-HS512+A256KW':\n if (!isAlgorithm(key.algorithm, 'PBKDF2'))\n throw unusable('PBKDF2');\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512': {\n if (!isAlgorithm(key.algorithm, 'RSA-OAEP'))\n throw unusable('RSA-OAEP');\n checkHashLength(key.algorithm, parseInt(alg.slice(9), 10) || 1);\n break;\n }\n default:\n throw new TypeError('CryptoKey does not support this operation');\n }\n checkUsage(key, usage);\n}\n","function message(msg, actual, ...types) {\n types = types.filter(Boolean);\n if (types.length > 2) {\n const last = types.pop();\n msg += `one of type ${types.join(', ')}, or ${last}.`;\n }\n else if (types.length === 2) {\n msg += `one of type ${types[0]} or ${types[1]}.`;\n }\n else {\n msg += `of type ${types[0]}.`;\n }\n if (actual == null) {\n msg += ` Received ${actual}`;\n }\n else if (typeof actual === 'function' && actual.name) {\n msg += ` Received function ${actual.name}`;\n }\n else if (typeof actual === 'object' && actual != null) {\n if (actual.constructor?.name) {\n msg += ` Received an instance of ${actual.constructor.name}`;\n }\n }\n return msg;\n}\nexport const invalidKeyInput = (actual, ...types) => message('Key must be ', actual, ...types);\nexport const withAlg = (alg, actual, ...types) => message(`Key for the ${alg} algorithm must be `, actual, ...types);\n","import { JOSENotSupported } from '../util/errors.js';\nimport { checkSigCryptoKey } from './crypto_key.js';\nimport { invalidKeyInput } from './invalid_key_input.js';\nexport function checkKeyLength(alg, key) {\n if (alg.startsWith('RS') || alg.startsWith('PS')) {\n const { modulusLength } = key.algorithm;\n if (typeof modulusLength !== 'number' || modulusLength < 2048) {\n throw new TypeError(`${alg} requires key modulusLength to be 2048 bits or larger`);\n }\n }\n}\nfunction subtleAlgorithm(alg, algorithm) {\n const hash = `SHA-${alg.slice(-3)}`;\n switch (alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512':\n return { hash, name: 'HMAC' };\n case 'PS256':\n case 'PS384':\n case 'PS512':\n return { hash, name: 'RSA-PSS', saltLength: parseInt(alg.slice(-3), 10) >> 3 };\n case 'RS256':\n case 'RS384':\n case 'RS512':\n return { hash, name: 'RSASSA-PKCS1-v1_5' };\n case 'ES256':\n case 'ES384':\n case 'ES512':\n return { hash, name: 'ECDSA', namedCurve: algorithm.namedCurve };\n case 'Ed25519':\n case 'EdDSA':\n return { name: 'Ed25519' };\n case 'ML-DSA-44':\n case 'ML-DSA-65':\n case 'ML-DSA-87':\n return { name: alg };\n default:\n throw new JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n }\n}\nasync function getSigKey(alg, key, usage) {\n if (key instanceof Uint8Array) {\n if (!alg.startsWith('HS')) {\n throw new TypeError(invalidKeyInput(key, 'CryptoKey', 'KeyObject', 'JSON Web Key'));\n }\n return crypto.subtle.importKey('raw', key, { hash: `SHA-${alg.slice(-3)}`, name: 'HMAC' }, false, [usage]);\n }\n checkSigCryptoKey(key, alg, usage);\n return key;\n}\nexport async function sign(alg, key, data) {\n const cryptoKey = await getSigKey(alg, key, 'sign');\n checkKeyLength(alg, cryptoKey);\n const signature = await crypto.subtle.sign(subtleAlgorithm(alg, cryptoKey.algorithm), cryptoKey, data);\n return new Uint8Array(signature);\n}\nexport async function verify(alg, key, signature, data) {\n const cryptoKey = await getSigKey(alg, key, 'verify');\n checkKeyLength(alg, cryptoKey);\n const algorithm = subtleAlgorithm(alg, cryptoKey.algorithm);\n try {\n return await crypto.subtle.verify(algorithm, cryptoKey, signature, data);\n }\n catch {\n return false;\n }\n}\n","import { decode } from '../util/base64url.js';\nexport const unprotected = Symbol();\nexport function assertNotSet(value, name) {\n if (value) {\n throw new TypeError(`${name} can only be called once`);\n }\n}\nexport function decodeBase64url(value, label, ErrorClass) {\n try {\n return decode(value);\n }\n catch {\n throw new ErrorClass(`Failed to base64url decode the ${label}`);\n }\n}\nexport async function digest(algorithm, data) {\n const subtleDigest = `SHA-${algorithm.slice(-3)}`;\n return new Uint8Array(await crypto.subtle.digest(subtleDigest, data));\n}\n","const isObjectLike = (value) => typeof value === 'object' && value !== null;\nexport function isObject(input) {\n if (!isObjectLike(input) || Object.prototype.toString.call(input) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(input) === null) {\n return true;\n }\n let proto = input;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(input) === proto;\n}\nexport function isDisjoint(...headers) {\n const sources = headers.filter(Boolean);\n if (sources.length === 0 || sources.length === 1) {\n return true;\n }\n let acc;\n for (const header of sources) {\n const parameters = Object.keys(header);\n if (!acc || acc.size === 0) {\n acc = new Set(parameters);\n continue;\n }\n for (const parameter of parameters) {\n if (acc.has(parameter)) {\n return false;\n }\n acc.add(parameter);\n }\n }\n return true;\n}\nexport const isJWK = (key) => isObject(key) && typeof key.kty === 'string';\nexport const isPrivateJWK = (key) => key.kty !== 'oct' &&\n ((key.kty === 'AKP' && typeof key.priv === 'string') || typeof key.d === 'string');\nexport const isPublicJWK = (key) => key.kty !== 'oct' && key.d === undefined && key.priv === undefined;\nexport const isSecretJWK = (key) => key.kty === 'oct' && typeof key.k === 'string';\n","export function assertCryptoKey(key) {\n if (!isCryptoKey(key)) {\n throw new Error('CryptoKey instance expected');\n }\n}\nexport const isCryptoKey = (key) => {\n if (key?.[Symbol.toStringTag] === 'CryptoKey')\n return true;\n try {\n return key instanceof CryptoKey;\n }\n catch {\n return false;\n }\n};\nexport const isKeyObject = (key) => key?.[Symbol.toStringTag] === 'KeyObject';\nexport const isKeyLike = (key) => isCryptoKey(key) || isKeyObject(key);\n","import { withAlg as invalidKeyInput } from './invalid_key_input.js';\nimport { isKeyLike } from './is_key_like.js';\nimport * as jwk from './type_checks.js';\nconst tag = (key) => key?.[Symbol.toStringTag];\nconst jwkMatchesOp = (alg, key, usage) => {\n if (key.use !== undefined) {\n let expected;\n switch (usage) {\n case 'sign':\n case 'verify':\n expected = 'sig';\n break;\n case 'encrypt':\n case 'decrypt':\n expected = 'enc';\n break;\n }\n if (key.use !== expected) {\n throw new TypeError(`Invalid key for this operation, its \"use\" must be \"${expected}\" when present`);\n }\n }\n if (key.alg !== undefined && key.alg !== alg) {\n throw new TypeError(`Invalid key for this operation, its \"alg\" must be \"${alg}\" when present`);\n }\n if (Array.isArray(key.key_ops)) {\n let expectedKeyOp;\n switch (true) {\n case usage === 'sign' || usage === 'verify':\n case alg === 'dir':\n case alg.includes('CBC-HS'):\n expectedKeyOp = usage;\n break;\n case alg.startsWith('PBES2'):\n expectedKeyOp = 'deriveBits';\n break;\n case /^A\\d{3}(?:GCM)?(?:KW)?$/.test(alg):\n if (!alg.includes('GCM') && alg.endsWith('KW')) {\n expectedKeyOp = usage === 'encrypt' ? 'wrapKey' : 'unwrapKey';\n }\n else {\n expectedKeyOp = usage;\n }\n break;\n case usage === 'encrypt' && alg.startsWith('RSA'):\n expectedKeyOp = 'wrapKey';\n break;\n case usage === 'decrypt':\n expectedKeyOp = alg.startsWith('RSA') ? 'unwrapKey' : 'deriveBits';\n break;\n }\n if (expectedKeyOp && key.key_ops?.includes?.(expectedKeyOp) === false) {\n throw new TypeError(`Invalid key for this operation, its \"key_ops\" must include \"${expectedKeyOp}\" when present`);\n }\n }\n return true;\n};\nconst symmetricTypeCheck = (alg, key, usage) => {\n if (key instanceof Uint8Array)\n return;\n if (jwk.isJWK(key)) {\n if (jwk.isSecretJWK(key) && jwkMatchesOp(alg, key, usage))\n return;\n throw new TypeError(`JSON Web Key for symmetric algorithms must have JWK \"kty\" (Key Type) equal to \"oct\" and the JWK \"k\" (Key Value) present`);\n }\n if (!isKeyLike(key)) {\n throw new TypeError(invalidKeyInput(alg, key, 'CryptoKey', 'KeyObject', 'JSON Web Key', 'Uint8Array'));\n }\n if (key.type !== 'secret') {\n throw new TypeError(`${tag(key)} instances for symmetric algorithms must be of type \"secret\"`);\n }\n};\nconst asymmetricTypeCheck = (alg, key, usage) => {\n if (jwk.isJWK(key)) {\n switch (usage) {\n case 'decrypt':\n case 'sign':\n if (jwk.isPrivateJWK(key) && jwkMatchesOp(alg, key, usage))\n return;\n throw new TypeError(`JSON Web Key for this operation must be a private JWK`);\n case 'encrypt':\n case 'verify':\n if (jwk.isPublicJWK(key) && jwkMatchesOp(alg, key, usage))\n return;\n throw new TypeError(`JSON Web Key for this operation must be a public JWK`);\n }\n }\n if (!isKeyLike(key)) {\n throw new TypeError(invalidKeyInput(alg, key, 'CryptoKey', 'KeyObject', 'JSON Web Key'));\n }\n if (key.type === 'secret') {\n throw new TypeError(`${tag(key)} instances for asymmetric algorithms must not be of type \"secret\"`);\n }\n if (key.type === 'public') {\n switch (usage) {\n case 'sign':\n throw new TypeError(`${tag(key)} instances for asymmetric algorithm signing must be of type \"private\"`);\n case 'decrypt':\n throw new TypeError(`${tag(key)} instances for asymmetric algorithm decryption must be of type \"private\"`);\n }\n }\n if (key.type === 'private') {\n switch (usage) {\n case 'verify':\n throw new TypeError(`${tag(key)} instances for asymmetric algorithm verifying must be of type \"public\"`);\n case 'encrypt':\n throw new TypeError(`${tag(key)} instances for asymmetric algorithm encryption must be of type \"public\"`);\n }\n }\n};\nexport function checkKeyType(alg, key, usage) {\n switch (alg.substring(0, 2)) {\n case 'A1':\n case 'A2':\n case 'di':\n case 'HS':\n case 'PB':\n symmetricTypeCheck(alg, key, usage);\n break;\n default:\n asymmetricTypeCheck(alg, key, usage);\n }\n}\n","import { JOSENotSupported, JWEInvalid, JWSInvalid } from '../util/errors.js';\nexport function validateCrit(Err, recognizedDefault, recognizedOption, protectedHeader, joseHeader) {\n if (joseHeader.crit !== undefined && protectedHeader?.crit === undefined) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be integrity protected');\n }\n if (!protectedHeader || protectedHeader.crit === undefined) {\n return new Set();\n }\n if (!Array.isArray(protectedHeader.crit) ||\n protectedHeader.crit.length === 0 ||\n protectedHeader.crit.some((input) => typeof input !== 'string' || input.length === 0)) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be an array of non-empty strings when present');\n }\n let recognized;\n if (recognizedOption !== undefined) {\n recognized = new Map([...Object.entries(recognizedOption), ...recognizedDefault.entries()]);\n }\n else {\n recognized = recognizedDefault;\n }\n for (const parameter of protectedHeader.crit) {\n if (!recognized.has(parameter)) {\n throw new JOSENotSupported(`Extension Header Parameter \"${parameter}\" is not recognized`);\n }\n if (joseHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" is missing`);\n }\n if (recognized.get(parameter) && protectedHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" MUST be integrity protected`);\n }\n }\n return new Set(protectedHeader.crit);\n}\n","export function validateAlgorithms(option, algorithms) {\n if (algorithms !== undefined &&\n (!Array.isArray(algorithms) || algorithms.some((s) => typeof s !== 'string'))) {\n throw new TypeError(`\"${option}\" option must be an array of strings`);\n }\n if (!algorithms) {\n return undefined;\n }\n return new Set(algorithms);\n}\n","import { JOSENotSupported } from '../util/errors.js';\nconst unsupportedAlg = 'Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value';\nfunction subtleMapping(jwk) {\n let algorithm;\n let keyUsages;\n switch (jwk.kty) {\n case 'AKP': {\n switch (jwk.alg) {\n case 'ML-DSA-44':\n case 'ML-DSA-65':\n case 'ML-DSA-87':\n algorithm = { name: jwk.alg };\n keyUsages = jwk.priv ? ['sign'] : ['verify'];\n break;\n default:\n throw new JOSENotSupported(unsupportedAlg);\n }\n break;\n }\n case 'RSA': {\n switch (jwk.alg) {\n case 'PS256':\n case 'PS384':\n case 'PS512':\n algorithm = { name: 'RSA-PSS', hash: `SHA-${jwk.alg.slice(-3)}` };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'RS256':\n case 'RS384':\n case 'RS512':\n algorithm = { name: 'RSASSA-PKCS1-v1_5', hash: `SHA-${jwk.alg.slice(-3)}` };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512':\n algorithm = {\n name: 'RSA-OAEP',\n hash: `SHA-${parseInt(jwk.alg.slice(-3), 10) || 1}`,\n };\n keyUsages = jwk.d ? ['decrypt', 'unwrapKey'] : ['encrypt', 'wrapKey'];\n break;\n default:\n throw new JOSENotSupported(unsupportedAlg);\n }\n break;\n }\n case 'EC': {\n switch (jwk.alg) {\n case 'ES256':\n case 'ES384':\n case 'ES512':\n algorithm = {\n name: 'ECDSA',\n namedCurve: { ES256: 'P-256', ES384: 'P-384', ES512: 'P-521' }[jwk.alg],\n };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW':\n algorithm = { name: 'ECDH', namedCurve: jwk.crv };\n keyUsages = jwk.d ? ['deriveBits'] : [];\n break;\n default:\n throw new JOSENotSupported(unsupportedAlg);\n }\n break;\n }\n case 'OKP': {\n switch (jwk.alg) {\n case 'Ed25519':\n case 'EdDSA':\n algorithm = { name: 'Ed25519' };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW':\n algorithm = { name: jwk.crv };\n keyUsages = jwk.d ? ['deriveBits'] : [];\n break;\n default:\n throw new JOSENotSupported(unsupportedAlg);\n }\n break;\n }\n default:\n throw new JOSENotSupported('Invalid or unsupported JWK \"kty\" (Key Type) Parameter value');\n }\n return { algorithm, keyUsages };\n}\nexport async function jwkToKey(jwk) {\n if (!jwk.alg) {\n throw new TypeError('\"alg\" argument is required when \"jwk.alg\" is not present');\n }\n const { algorithm, keyUsages } = subtleMapping(jwk);\n const keyData = { ...jwk };\n if (keyData.kty !== 'AKP') {\n delete keyData.alg;\n }\n delete keyData.use;\n return crypto.subtle.importKey('jwk', keyData, algorithm, jwk.ext ?? (jwk.d || jwk.priv ? false : true), jwk.key_ops ?? keyUsages);\n}\n","import { isJWK } from './type_checks.js';\nimport { decode } from '../util/base64url.js';\nimport { jwkToKey } from './jwk_to_key.js';\nimport { isCryptoKey, isKeyObject } from './is_key_like.js';\nconst unusableForAlg = 'given KeyObject instance cannot be used for this algorithm';\nlet cache;\nconst handleJWK = async (key, jwk, alg, freeze = false) => {\n cache ||= new WeakMap();\n let cached = cache.get(key);\n if (cached?.[alg]) {\n return cached[alg];\n }\n const cryptoKey = await jwkToKey({ ...jwk, alg });\n if (freeze)\n Object.freeze(key);\n if (!cached) {\n cache.set(key, { [alg]: cryptoKey });\n }\n else {\n cached[alg] = cryptoKey;\n }\n return cryptoKey;\n};\nconst handleKeyObject = (keyObject, alg) => {\n cache ||= new WeakMap();\n let cached = cache.get(keyObject);\n if (cached?.[alg]) {\n return cached[alg];\n }\n const isPublic = keyObject.type === 'public';\n const extractable = isPublic ? true : false;\n let cryptoKey;\n if (keyObject.asymmetricKeyType === 'x25519') {\n switch (alg) {\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW':\n break;\n default:\n throw new TypeError(unusableForAlg);\n }\n cryptoKey = keyObject.toCryptoKey(keyObject.asymmetricKeyType, extractable, isPublic ? [] : ['deriveBits']);\n }\n if (keyObject.asymmetricKeyType === 'ed25519') {\n if (alg !== 'EdDSA' && alg !== 'Ed25519') {\n throw new TypeError(unusableForAlg);\n }\n cryptoKey = keyObject.toCryptoKey(keyObject.asymmetricKeyType, extractable, [\n isPublic ? 'verify' : 'sign',\n ]);\n }\n switch (keyObject.asymmetricKeyType) {\n case 'ml-dsa-44':\n case 'ml-dsa-65':\n case 'ml-dsa-87': {\n if (alg !== keyObject.asymmetricKeyType.toUpperCase()) {\n throw new TypeError(unusableForAlg);\n }\n cryptoKey = keyObject.toCryptoKey(keyObject.asymmetricKeyType, extractable, [\n isPublic ? 'verify' : 'sign',\n ]);\n }\n }\n if (keyObject.asymmetricKeyType === 'rsa') {\n let hash;\n switch (alg) {\n case 'RSA-OAEP':\n hash = 'SHA-1';\n break;\n case 'RS256':\n case 'PS256':\n case 'RSA-OAEP-256':\n hash = 'SHA-256';\n break;\n case 'RS384':\n case 'PS384':\n case 'RSA-OAEP-384':\n hash = 'SHA-384';\n break;\n case 'RS512':\n case 'PS512':\n case 'RSA-OAEP-512':\n hash = 'SHA-512';\n break;\n default:\n throw new TypeError(unusableForAlg);\n }\n if (alg.startsWith('RSA-OAEP')) {\n return keyObject.toCryptoKey({\n name: 'RSA-OAEP',\n hash,\n }, extractable, isPublic ? ['encrypt'] : ['decrypt']);\n }\n cryptoKey = keyObject.toCryptoKey({\n name: alg.startsWith('PS') ? 'RSA-PSS' : 'RSASSA-PKCS1-v1_5',\n hash,\n }, extractable, [isPublic ? 'verify' : 'sign']);\n }\n if (keyObject.asymmetricKeyType === 'ec') {\n const nist = new Map([\n ['prime256v1', 'P-256'],\n ['secp384r1', 'P-384'],\n ['secp521r1', 'P-521'],\n ]);\n const namedCurve = nist.get(keyObject.asymmetricKeyDetails?.namedCurve);\n if (!namedCurve) {\n throw new TypeError(unusableForAlg);\n }\n const expectedCurve = { ES256: 'P-256', ES384: 'P-384', ES512: 'P-521' };\n if (expectedCurve[alg] && namedCurve === expectedCurve[alg]) {\n cryptoKey = keyObject.toCryptoKey({\n name: 'ECDSA',\n namedCurve,\n }, extractable, [isPublic ? 'verify' : 'sign']);\n }\n if (alg.startsWith('ECDH-ES')) {\n cryptoKey = keyObject.toCryptoKey({\n name: 'ECDH',\n namedCurve,\n }, extractable, isPublic ? [] : ['deriveBits']);\n }\n }\n if (!cryptoKey) {\n throw new TypeError(unusableForAlg);\n }\n if (!cached) {\n cache.set(keyObject, { [alg]: cryptoKey });\n }\n else {\n cached[alg] = cryptoKey;\n }\n return cryptoKey;\n};\nexport async function normalizeKey(key, alg) {\n if (key instanceof Uint8Array) {\n return key;\n }\n if (isCryptoKey(key)) {\n return key;\n }\n if (isKeyObject(key)) {\n if (key.type === 'secret') {\n return key.export();\n }\n if ('toCryptoKey' in key && typeof key.toCryptoKey === 'function') {\n try {\n return handleKeyObject(key, alg);\n }\n catch (err) {\n if (err instanceof TypeError) {\n throw err;\n }\n }\n }\n let jwk = key.export({ format: 'jwk' });\n return handleJWK(key, jwk, alg);\n }\n if (isJWK(key)) {\n if (key.k) {\n return decode(key.k);\n }\n return handleJWK(key, key, alg, true);\n }\n throw new Error('unreachable');\n}\n","import { decode as b64u } from '../../util/base64url.js';\nimport { verify } from '../../lib/signing.js';\nimport { JOSEAlgNotAllowed, JWSInvalid, JWSSignatureVerificationFailed } from '../../util/errors.js';\nimport { concat, encoder, decoder, encode } from '../../lib/buffer_utils.js';\nimport { decodeBase64url } from '../../lib/helpers.js';\nimport { isDisjoint } from '../../lib/type_checks.js';\nimport { isObject } from '../../lib/type_checks.js';\nimport { checkKeyType } from '../../lib/check_key_type.js';\nimport { validateCrit } from '../../lib/validate_crit.js';\nimport { validateAlgorithms } from '../../lib/validate_algorithms.js';\nimport { normalizeKey } from '../../lib/normalize_key.js';\nexport async function flattenedVerify(jws, key, options) {\n if (!isObject(jws)) {\n throw new JWSInvalid('Flattened JWS must be an object');\n }\n if (jws.protected === undefined && jws.header === undefined) {\n throw new JWSInvalid('Flattened JWS must have either of the \"protected\" or \"header\" members');\n }\n if (jws.protected !== undefined && typeof jws.protected !== 'string') {\n throw new JWSInvalid('JWS Protected Header incorrect type');\n }\n if (jws.payload === undefined) {\n throw new JWSInvalid('JWS Payload missing');\n }\n if (typeof jws.signature !== 'string') {\n throw new JWSInvalid('JWS Signature missing or incorrect type');\n }\n if (jws.header !== undefined && !isObject(jws.header)) {\n throw new JWSInvalid('JWS Unprotected Header incorrect type');\n }\n let parsedProt = {};\n if (jws.protected) {\n try {\n const protectedHeader = b64u(jws.protected);\n parsedProt = JSON.parse(decoder.decode(protectedHeader));\n }\n catch {\n throw new JWSInvalid('JWS Protected Header is invalid');\n }\n }\n if (!isDisjoint(parsedProt, jws.header)) {\n throw new JWSInvalid('JWS Protected and JWS Unprotected Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...parsedProt,\n ...jws.header,\n };\n const extensions = validateCrit(JWSInvalid, new Map([['b64', true]]), options?.crit, parsedProt, joseHeader);\n let b64 = true;\n if (extensions.has('b64')) {\n b64 = parsedProt.b64;\n if (typeof b64 !== 'boolean') {\n throw new JWSInvalid('The \"b64\" (base64url-encode payload) Header Parameter must be a boolean');\n }\n }\n const { alg } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new JWSInvalid('JWS \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n const algorithms = options && validateAlgorithms('algorithms', options.algorithms);\n if (algorithms && !algorithms.has(alg)) {\n throw new JOSEAlgNotAllowed('\"alg\" (Algorithm) Header Parameter value not allowed');\n }\n if (b64) {\n if (typeof jws.payload !== 'string') {\n throw new JWSInvalid('JWS Payload must be a string');\n }\n }\n else if (typeof jws.payload !== 'string' && !(jws.payload instanceof Uint8Array)) {\n throw new JWSInvalid('JWS Payload must be a string or an Uint8Array instance');\n }\n let resolvedKey = false;\n if (typeof key === 'function') {\n key = await key(parsedProt, jws);\n resolvedKey = true;\n }\n checkKeyType(alg, key, 'verify');\n const data = concat(jws.protected !== undefined ? encode(jws.protected) : new Uint8Array(), encode('.'), typeof jws.payload === 'string'\n ? b64\n ? encode(jws.payload)\n : encoder.encode(jws.payload)\n : jws.payload);\n const signature = decodeBase64url(jws.signature, 'signature', JWSInvalid);\n const k = await normalizeKey(key, alg);\n const verified = await verify(alg, k, signature, data);\n if (!verified) {\n throw new JWSSignatureVerificationFailed();\n }\n let payload;\n if (b64) {\n payload = decodeBase64url(jws.payload, 'payload', JWSInvalid);\n }\n else if (typeof jws.payload === 'string') {\n payload = encoder.encode(jws.payload);\n }\n else {\n payload = jws.payload;\n }\n const result = { payload };\n if (jws.protected !== undefined) {\n result.protectedHeader = parsedProt;\n }\n if (jws.header !== undefined) {\n result.unprotectedHeader = jws.header;\n }\n if (resolvedKey) {\n return { ...result, key: k };\n }\n return result;\n}\n","import { flattenedVerify } from '../flattened/verify.js';\nimport { JWSInvalid } from '../../util/errors.js';\nimport { decoder } from '../../lib/buffer_utils.js';\nexport async function compactVerify(jws, key, options) {\n if (jws instanceof Uint8Array) {\n jws = decoder.decode(jws);\n }\n if (typeof jws !== 'string') {\n throw new JWSInvalid('Compact JWS must be a string or Uint8Array');\n }\n const { 0: protectedHeader, 1: payload, 2: signature, length } = jws.split('.');\n if (length !== 3) {\n throw new JWSInvalid('Invalid Compact JWS');\n }\n const verified = await flattenedVerify({ payload, protected: protectedHeader, signature }, key, options);\n const result = { payload: verified.payload, protectedHeader: verified.protectedHeader };\n if (typeof key === 'function') {\n return { ...result, key: verified.key };\n }\n return result;\n}\n","import { JWTClaimValidationFailed, JWTExpired, JWTInvalid } from '../util/errors.js';\nimport { encoder, decoder } from './buffer_utils.js';\nimport { isObject } from './type_checks.js';\nconst epoch = (date) => Math.floor(date.getTime() / 1000);\nconst minute = 60;\nconst hour = minute * 60;\nconst day = hour * 24;\nconst week = day * 7;\nconst year = day * 365.25;\nconst REGEX = /^(\\+|\\-)? ?(\\d+|\\d+\\.\\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;\nexport function secs(str) {\n const matched = REGEX.exec(str);\n if (!matched || (matched[4] && matched[1])) {\n throw new TypeError('Invalid time period format');\n }\n const value = parseFloat(matched[2]);\n const unit = matched[3].toLowerCase();\n let numericDate;\n switch (unit) {\n case 'sec':\n case 'secs':\n case 'second':\n case 'seconds':\n case 's':\n numericDate = Math.round(value);\n break;\n case 'minute':\n case 'minutes':\n case 'min':\n case 'mins':\n case 'm':\n numericDate = Math.round(value * minute);\n break;\n case 'hour':\n case 'hours':\n case 'hr':\n case 'hrs':\n case 'h':\n numericDate = Math.round(value * hour);\n break;\n case 'day':\n case 'days':\n case 'd':\n numericDate = Math.round(value * day);\n break;\n case 'week':\n case 'weeks':\n case 'w':\n numericDate = Math.round(value * week);\n break;\n default:\n numericDate = Math.round(value * year);\n break;\n }\n if (matched[1] === '-' || matched[4] === 'ago') {\n return -numericDate;\n }\n return numericDate;\n}\nfunction validateInput(label, input) {\n if (!Number.isFinite(input)) {\n throw new TypeError(`Invalid ${label} input`);\n }\n return input;\n}\nconst normalizeTyp = (value) => {\n if (value.includes('/')) {\n return value.toLowerCase();\n }\n return `application/${value.toLowerCase()}`;\n};\nconst checkAudiencePresence = (audPayload, audOption) => {\n if (typeof audPayload === 'string') {\n return audOption.includes(audPayload);\n }\n if (Array.isArray(audPayload)) {\n return audOption.some(Set.prototype.has.bind(new Set(audPayload)));\n }\n return false;\n};\nexport function validateClaimsSet(protectedHeader, encodedPayload, options = {}) {\n let payload;\n try {\n payload = JSON.parse(decoder.decode(encodedPayload));\n }\n catch {\n }\n if (!isObject(payload)) {\n throw new JWTInvalid('JWT Claims Set must be a top-level JSON object');\n }\n const { typ } = options;\n if (typ &&\n (typeof protectedHeader.typ !== 'string' ||\n normalizeTyp(protectedHeader.typ) !== normalizeTyp(typ))) {\n throw new JWTClaimValidationFailed('unexpected \"typ\" JWT header value', payload, 'typ', 'check_failed');\n }\n const { requiredClaims = [], issuer, subject, audience, maxTokenAge } = options;\n const presenceCheck = [...requiredClaims];\n if (maxTokenAge !== undefined)\n presenceCheck.push('iat');\n if (audience !== undefined)\n presenceCheck.push('aud');\n if (subject !== undefined)\n presenceCheck.push('sub');\n if (issuer !== undefined)\n presenceCheck.push('iss');\n for (const claim of new Set(presenceCheck.reverse())) {\n if (!(claim in payload)) {\n throw new JWTClaimValidationFailed(`missing required \"${claim}\" claim`, payload, claim, 'missing');\n }\n }\n if (issuer &&\n !(Array.isArray(issuer) ? issuer : [issuer]).includes(payload.iss)) {\n throw new JWTClaimValidationFailed('unexpected \"iss\" claim value', payload, 'iss', 'check_failed');\n }\n if (subject && payload.sub !== subject) {\n throw new JWTClaimValidationFailed('unexpected \"sub\" claim value', payload, 'sub', 'check_failed');\n }\n if (audience &&\n !checkAudiencePresence(payload.aud, typeof audience === 'string' ? [audience] : audience)) {\n throw new JWTClaimValidationFailed('unexpected \"aud\" claim value', payload, 'aud', 'check_failed');\n }\n let tolerance;\n switch (typeof options.clockTolerance) {\n case 'string':\n tolerance = secs(options.clockTolerance);\n break;\n case 'number':\n tolerance = options.clockTolerance;\n break;\n case 'undefined':\n tolerance = 0;\n break;\n default:\n throw new TypeError('Invalid clockTolerance option type');\n }\n const { currentDate } = options;\n const now = epoch(currentDate || new Date());\n if ((payload.iat !== undefined || maxTokenAge) && typeof payload.iat !== 'number') {\n throw new JWTClaimValidationFailed('\"iat\" claim must be a number', payload, 'iat', 'invalid');\n }\n if (payload.nbf !== undefined) {\n if (typeof payload.nbf !== 'number') {\n throw new JWTClaimValidationFailed('\"nbf\" claim must be a number', payload, 'nbf', 'invalid');\n }\n if (payload.nbf > now + tolerance) {\n throw new JWTClaimValidationFailed('\"nbf\" claim timestamp check failed', payload, 'nbf', 'check_failed');\n }\n }\n if (payload.exp !== undefined) {\n if (typeof payload.exp !== 'number') {\n throw new JWTClaimValidationFailed('\"exp\" claim must be a number', payload, 'exp', 'invalid');\n }\n if (payload.exp <= now - tolerance) {\n throw new JWTExpired('\"exp\" claim timestamp check failed', payload, 'exp', 'check_failed');\n }\n }\n if (maxTokenAge) {\n const age = now - payload.iat;\n const max = typeof maxTokenAge === 'number' ? maxTokenAge : secs(maxTokenAge);\n if (age - tolerance > max) {\n throw new JWTExpired('\"iat\" claim timestamp check failed (too far in the past)', payload, 'iat', 'check_failed');\n }\n if (age < 0 - tolerance) {\n throw new JWTClaimValidationFailed('\"iat\" claim timestamp check failed (it should be in the past)', payload, 'iat', 'check_failed');\n }\n }\n return payload;\n}\nexport class JWTClaimsBuilder {\n #payload;\n constructor(payload) {\n if (!isObject(payload)) {\n throw new TypeError('JWT Claims Set MUST be an object');\n }\n this.#payload = structuredClone(payload);\n }\n data() {\n return encoder.encode(JSON.stringify(this.#payload));\n }\n get iss() {\n return this.#payload.iss;\n }\n set iss(value) {\n this.#payload.iss = value;\n }\n get sub() {\n return this.#payload.sub;\n }\n set sub(value) {\n this.#payload.sub = value;\n }\n get aud() {\n return this.#payload.aud;\n }\n set aud(value) {\n this.#payload.aud = value;\n }\n set jti(value) {\n this.#payload.jti = value;\n }\n set nbf(value) {\n if (typeof value === 'number') {\n this.#payload.nbf = validateInput('setNotBefore', value);\n }\n else if (value instanceof Date) {\n this.#payload.nbf = validateInput('setNotBefore', epoch(value));\n }\n else {\n this.#payload.nbf = epoch(new Date()) + secs(value);\n }\n }\n set exp(value) {\n if (typeof value === 'number') {\n this.#payload.exp = validateInput('setExpirationTime', value);\n }\n else if (value instanceof Date) {\n this.#payload.exp = validateInput('setExpirationTime', epoch(value));\n }\n else {\n this.#payload.exp = epoch(new Date()) + secs(value);\n }\n }\n set iat(value) {\n if (value === undefined) {\n this.#payload.iat = epoch(new Date());\n }\n else if (value instanceof Date) {\n this.#payload.iat = validateInput('setIssuedAt', epoch(value));\n }\n else if (typeof value === 'string') {\n this.#payload.iat = validateInput('setIssuedAt', epoch(new Date()) + secs(value));\n }\n else {\n this.#payload.iat = validateInput('setIssuedAt', value);\n }\n }\n}\n","import { compactVerify } from '../jws/compact/verify.js';\nimport { validateClaimsSet } from '../lib/jwt_claims_set.js';\nimport { JWTInvalid } from '../util/errors.js';\nexport async function jwtVerify(jwt, key, options) {\n const verified = await compactVerify(jwt, key, options);\n if (verified.protectedHeader.crit?.includes('b64') && verified.protectedHeader.b64 === false) {\n throw new JWTInvalid('JWTs MUST NOT use unencoded payload');\n }\n const payload = validateClaimsSet(verified.protectedHeader, verified.payload, options);\n const result = { payload, protectedHeader: verified.protectedHeader };\n if (typeof key === 'function') {\n return { ...result, key: verified.key };\n }\n return result;\n}\n","import { decode as b64u } from './base64url.js';\nimport { decoder } from '../lib/buffer_utils.js';\nimport { isObject } from '../lib/type_checks.js';\nimport { JWTInvalid } from './errors.js';\nexport function decodeJwt(jwt) {\n if (typeof jwt !== 'string')\n throw new JWTInvalid('JWTs must use Compact JWS serialization, JWT must be a string');\n const { 1: payload, length } = jwt.split('.');\n if (length === 5)\n throw new JWTInvalid('Only JWTs using Compact JWS serialization can be decoded');\n if (length !== 3)\n throw new JWTInvalid('Invalid JWT');\n if (!payload)\n throw new JWTInvalid('JWTs must contain a payload');\n let decoded;\n try {\n decoded = b64u(payload);\n }\n catch {\n throw new JWTInvalid('Failed to base64url decode the payload');\n }\n let result;\n try {\n result = JSON.parse(decoder.decode(decoded));\n }\n catch {\n throw new JWTInvalid('Failed to parse the decoded payload as JSON');\n }\n if (!isObject(result))\n throw new JWTInvalid('Invalid JWT Claims Set');\n return result;\n}\n","import discoveryConfig from '../../../discovery.config';\nconst DEFAULT_WEBOPS_ORIGIN = 'https://faststore.vtex.com';\n\nfunction getWebopsOrigin() {\n const hostFromEnv = process.env.WEBOPS_API_URL?.trim() ?? '';\n const hostWithoutTrailingSlash = hostFromEnv.replace(/\\/+$/, '');\n const origin = hostWithoutTrailingSlash.length > 0 ? hostWithoutTrailingSlash : DEFAULT_WEBOPS_ORIGIN;\n return /^https?:\\/\\//i.test(origin) ? origin : `https://${origin}`;\n}\n\nexport function publicKeyUrl() {\n return new URL('/api/v1/password-protection/public-key', getWebopsOrigin());\n}\nexport function protectionStatusUrl() {\n const url = new URL('/api/v1/password-protection/status', getWebopsOrigin());\n url.searchParams.set('storeId', discoveryConfig.api.storeId);\n return url;\n}\nexport function sessionUrl() {\n return new URL('/api/v1/password-protection/session', getWebopsOrigin());\n}\nexport function renewUrl() {\n return new URL('/api/v1/password-protection/renew', getWebopsOrigin());\n}\n/** Timeouts for WebOps password-protection calls (middleware / API routes). */\n\nexport const passwordProtectionTimeouts = {\n publicKeyMs: 5000,\n defaultMs: 10000\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { NextResponse } from 'next/server';\nimport { jwtVerify, decodeJwt, importSPKI, errors } from 'jose';\nimport storeConfig from '../../discovery.config';\nimport { publicKeyUrl, renewUrl, protectionStatusUrl, passwordProtectionTimeouts } from './password-protection/webops-api';\nexport const COOKIE_NAME = '__fs_auth_token';\nexport const TOKEN_TTL_SECONDS = 10 * 60;\n/** How long to reuse the RSA public key fetched from WebOps */\n\nconst PUBLIC_KEY_CACHE_MS = 60 * 60 * 1000;\nlet publicKeyCache = null;\n\nasync function fetchPublicKeyPemFromWebOps() {\n const res = await fetch(publicKeyUrl(), {\n signal: AbortSignal.timeout(passwordProtectionTimeouts.publicKeyMs)\n });\n\n if (!res.ok) {\n throw new Error(`WebOps public-key returned ${res.status}`);\n }\n\n const body = await res.json();\n const pem = body.publicKey?.trim();\n\n if (!pem) {\n throw new Error('WebOps public-key response missing publicKey');\n }\n\n return pem;\n}\n\nasync function getPublicVerificationKey() {\n const now = Date.now();\n\n if (publicKeyCache && now - publicKeyCache.fetchedAt < PUBLIC_KEY_CACHE_MS) {\n return publicKeyCache.key;\n }\n\n const pem = await fetchPublicKeyPemFromWebOps();\n const key = await importSPKI(pem, 'RS256');\n publicKeyCache = {\n pem,\n key,\n fetchedAt: now\n };\n return key;\n}\n/** Clears the cached WebOps public key (for unit tests only). */\n\n\nexport function resetPasswordProtectionPublicKeyCacheForTests() {\n publicKeyCache = null;\n}\nexport class AuthenticationService {\n constructor() {\n _defineProperty(this, \"storeId\", void 0);\n\n this.storeId = storeConfig.api.storeId;\n }\n\n getNormalizedHost(request) {\n const host = request.headers.get('host') || '';\n return host.split(':')[0].toLowerCase();\n }\n\n async authenticateRequest(request) {\n if (!this.shouldCheckProtection(request)) {\n return {\n response: NextResponse.next()\n };\n }\n\n const token = request.cookies.get(COOKIE_NAME)?.value;\n\n if (token) {\n const verification = await this.verifyToken(token);\n\n if (verification.valid && verification.payload) {\n return {\n response: NextResponse.next()\n };\n }\n\n if (verification.expired && verification.payload) {\n return await this.tryRenewSession(request, token, verification.payload);\n }\n }\n\n return await this.handleNoAuth(request);\n }\n\n shouldCheckProtection(request) {\n if (false) {\n return false;\n }\n\n const hostname = this.getNormalizedHost(request);\n const isDefaultDomain = hostname.endsWith('.vtex.app');\n\n if (isDefaultDomain) {\n return true;\n }\n\n return process.env.CUSTOM_DOMAINS_PROTECTION_ENABLED === 'true';\n }\n\n shouldProtectDomain(request, scope) {\n const hostname = this.getNormalizedHost(request);\n const isDefaultDomain = hostname.endsWith('.vtex.app');\n return scope === 'ALL_DOMAINS' || scope === 'DEFAULT_DOMAINS' && isDefaultDomain || scope === 'CUSTOM_DOMAINS' && !isDefaultDomain;\n }\n\n payloadMatchesStore(payload) {\n return payload.storeId === this.storeId;\n }\n\n isJwtExpiredError(error) {\n return error instanceof errors.JWTExpired || error instanceof Error && error.name === 'JWTExpired';\n }\n\n async verifyToken(token) {\n try {\n const key = await getPublicVerificationKey();\n const {\n payload\n } = await jwtVerify(token, key);\n const p = payload;\n\n if (!this.payloadMatchesStore(p)) {\n return {\n valid: false,\n expired: false\n };\n }\n\n return {\n valid: true,\n expired: false,\n payload: p\n };\n } catch (error) {\n if (this.isJwtExpiredError(error)) {\n const payload = decodeJwt(token);\n\n if (!this.payloadMatchesStore(payload)) {\n return {\n valid: false,\n expired: false\n };\n }\n\n return {\n valid: false,\n expired: true,\n payload\n };\n }\n\n return {\n valid: false,\n expired: false\n };\n }\n }\n\n async tryRenewSession(request, expiredToken, payload) {\n try {\n const res = await fetch(renewUrl(), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n storeId: this.storeId,\n expiredToken\n }),\n signal: AbortSignal.timeout(passwordProtectionTimeouts.defaultMs)\n });\n\n if (res.ok) {\n const data = await res.json();\n\n if (data.valid && data.token) {\n const response = NextResponse.next();\n this.setAuthCookie(response, data.token);\n return {\n response\n };\n }\n }\n } catch {// Fall through to redirect or fail-open below\n }\n\n if (!this.shouldProtectDomain(request, payload.scope)) {\n return {\n response: NextResponse.next()\n };\n }\n\n return {\n response: this.redirectToLogin(request)\n };\n }\n\n async handleNoAuth(request) {\n try {\n const res = await fetch(protectionStatusUrl(), {\n signal: AbortSignal.timeout(passwordProtectionTimeouts.defaultMs)\n });\n\n if (!res.ok) {\n return {\n response: this.redirectToLogin(request)\n };\n }\n\n const status = await res.json();\n\n if (!status.protected) {\n const response = NextResponse.next();\n\n if (status.token) {\n this.setAuthCookie(response, status.token);\n }\n\n return {\n response\n };\n }\n\n if (!this.shouldProtectDomain(request, status.scope)) {\n return {\n response: NextResponse.next()\n };\n }\n\n return {\n response: this.redirectToLogin(request)\n };\n } catch {\n return {\n response: this.redirectToLogin(request)\n };\n }\n }\n\n setAuthCookie(response, token) {\n response.cookies.set(COOKIE_NAME, token, {\n httpOnly: true,\n secure: true,\n sameSite: 'lax',\n path: '/',\n maxAge: TOKEN_TTL_SECONDS\n });\n }\n\n redirectToLogin(request) {\n const loginUrl = new URL('/fs-auth-login', request.url);\n const returnTo = `${request.nextUrl.pathname}${request.nextUrl.search}`;\n loginUrl.searchParams.set('returnTo', returnTo);\n const response = NextResponse.redirect(loginUrl);\n response.headers.set('Cache-Control', 'no-store');\n return response;\n }\n\n}","/*\n * Middleware is always active. It runs:\n * 1. Password protection (AuthenticationService) — when applicable (default/custom domains per env).\n * 2. Redirects — only when ENABLE_REDIRECTS_MIDDLEWARE is set at runtime.\n */\nimport { NextResponse } from 'next/server';\nimport storeConfig from 'discovery.config';\nimport { AuthenticationService } from './server/authentication-service';\n\nclass DynamoRedirectsClient {\n async get(_from) {\n // TODO: Implement DynamoDB client. Ensure that the cluster has access to DynamoDB first.\n return null;\n }\n\n}\n\nconst redirectsClient = new DynamoRedirectsClient();\nexport async function middleware(request) {\n const path = request.nextUrl.pathname;\n let authResult;\n\n try {\n const authService = new AuthenticationService();\n authResult = await authService.authenticateRequest(request);\n } catch {\n return NextResponse.error();\n }\n\n if (authResult.response.status !== 200) {\n return authResult.response;\n }\n\n if (process.env.ENABLE_REDIRECTS_MIDDLEWARE === 'true') {\n const redirect = await redirectsClient.get(path);\n\n if (redirect) {\n const redirectUrl = new URL(redirect.to, storeConfig.storeUrl);\n const redirectStatusCode = redirect.type === 'permanent' ? 301 : 302;\n const response = NextResponse.redirect(redirectUrl, redirectStatusCode);\n\n for (const cookie of authResult.response.cookies.getAll()) {\n response.cookies.set(cookie);\n }\n\n response.headers.set('Cache-Control', 'public, max-age=300, stale-while-revalidate=31536000');\n return response;\n }\n }\n\n return authResult.response;\n}\nexport const config = {\n matcher: [\n /*\n * Match all paths including `/`\n * Exclude:\n * - api (e.g. api/fs/auth/login)\n * - _next/static, _next/image\n * - favicon.ico\n * - fs-auth-login (login page)\n * - ~partytown (partytown scripts)\n */\n '/', '/((?!api|_next/static|_next/image|favicon.ico|fs-auth-login|~partytown).*)']\n};","import \"next/dist/server/web/globals\";\nimport { adapter } from \"next/dist/server/web/adapter\";\n// Import the userland code.\nimport * as _mod from \"private-next-root-dir/src/middleware.ts\";\nconst mod = {\n ..._mod\n};\nconst handler = mod.middleware || mod.default;\nconst page = \"/src/middleware\";\nif (typeof handler !== \"function\") {\n throw new Error(`The Middleware \"${page}\" must export a \\`middleware\\` or a \\`default\\` function`);\n}\nexport default function nHandler(opts) {\n return adapter({\n ...opts,\n page,\n handler\n });\n}\n\n//# sourceMappingURL=middleware.js.map","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n return isNonNullObject(value) && !isSpecial(value);\n};\n\nfunction isNonNullObject(value) {\n return !!value && typeof value === 'object';\n}\n\nfunction isSpecial(value) {\n var stringValue = Object.prototype.toString.call(value);\n return stringValue === '[object RegExp]' || stringValue === '[object Date]' || isReactElement(value);\n} // see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\n\n\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n return value.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nfunction emptyTarget(val) {\n return Array.isArray(val) ? [] : {};\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n return options.clone !== false && options.isMergeableObject(value) ? deepmerge(emptyTarget(value), value, options) : value;\n}\n\nfunction defaultArrayMerge(target, source, options) {\n return target.concat(source).map(function (element) {\n return cloneUnlessOtherwiseSpecified(element, options);\n });\n}\n\nfunction getMergeFunction(key, options) {\n if (!options.customMerge) {\n return deepmerge;\n }\n\n var customMerge = options.customMerge(key);\n return typeof customMerge === 'function' ? customMerge : deepmerge;\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function (symbol) {\n return Object.propertyIsEnumerable.call(target, symbol);\n }) : [];\n}\n\nfunction getKeys(target) {\n return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));\n}\n\nfunction propertyIsOnObject(object, property) {\n try {\n return property in object;\n } catch (_) {\n return false;\n }\n} // Protects from prototype poisoning and unexpected merging up the prototype chain.\n\n\nfunction propertyIsUnsafe(target, key) {\n return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n && Object.propertyIsEnumerable.call(target, key)); // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n var destination = {};\n\n if (options.isMergeableObject(target)) {\n getKeys(target).forEach(function (key) {\n destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n });\n }\n\n getKeys(source).forEach(function (key) {\n if (propertyIsUnsafe(target, key)) {\n return;\n }\n\n if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n destination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n } else {\n destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n }\n });\n return destination;\n}\n\nfunction deepmerge(target, source, options) {\n options = options || {};\n options.arrayMerge = options.arrayMerge || defaultArrayMerge;\n options.isMergeableObject = options.isMergeableObject || isMergeableObject; // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n // implementations can use it. The caller may not replace it.\n\n options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified(source, options);\n } else if (sourceIsArray) {\n return options.arrayMerge(target, source, options);\n } else {\n return mergeObject(target, source, options);\n }\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n if (!Array.isArray(array)) {\n throw new Error('first argument should be an array');\n }\n\n return array.reduce(function (prev, next) {\n return deepmerge(prev, next, options);\n }, {});\n};\n\nvar deepmerge_1 = deepmerge;\nmodule.exports = deepmerge_1;","\"use strict\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\n\nvar __export = (target, all) => {\n for (var name in all) __defProp(target, name, {\n get: all[name],\n enumerable: true\n });\n};\n\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n get: () => from[key],\n enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n });\n }\n\n return to;\n};\n\nvar __toCommonJS = mod => __copyProps(__defProp({}, \"__esModule\", {\n value: true\n}), mod); // src/index.ts\n\n\nvar src_exports = {};\n\n__export(src_exports, {\n RequestCookies: () => RequestCookies,\n ResponseCookies: () => ResponseCookies,\n parseCookie: () => parseCookie,\n parseSetCookie: () => parseSetCookie,\n stringifyCookie: () => stringifyCookie\n});\n\nmodule.exports = __toCommonJS(src_exports); // src/serialize.ts\n\nfunction stringifyCookie(c) {\n var _a;\n\n const attrs = [\"path\" in c && c.path && `Path=${c.path}`, \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`, \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`, \"domain\" in c && c.domain && `Domain=${c.domain}`, \"secure\" in c && c.secure && \"Secure\", \"httpOnly\" in c && c.httpOnly && \"HttpOnly\", \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`, \"priority\" in c && c.priority && `Priority=${c.priority}`].filter(Boolean);\n return `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}; ${attrs.join(\"; \")}`;\n}\n\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */new Map();\n\n for (const pair of cookie.split(/; */)) {\n if (!pair) continue;\n const splitAt = pair.indexOf(\"=\");\n\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {}\n }\n\n return map;\n}\n\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\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 priority\n } = Object.fromEntries(attributes.map(([key, value2]) => [key.toLowerCase(), value2]));\n\n const cookie = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({\n name,\n value: decodeURIComponent(value),\n domain\n }, expires && {\n expires: new Date(expires)\n }), httponly && {\n httpOnly: true\n }), typeof maxage === \"string\" && {\n maxAge: Number(maxage)\n }), {}, {\n path\n }, samesite && {\n sameSite: parseSameSite(samesite)\n }), secure && {\n secure: true\n }), priority && {\n priority: parsePriority(priority)\n });\n\n return compact(cookie);\n}\n\nfunction compact(t) {\n const newT = {};\n\n for (const key in t) {\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n\n return newT;\n}\n\nvar SAME_SITE = [\"strict\", \"lax\", \"none\"];\n\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\n\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\n\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\n\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString) return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n\n return pos < cookiesString.length;\n }\n\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\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\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n\n return cookiesStrings;\n} // src/request-cookies.ts\n\n\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\n if (header) {\n const parsed = parseCookie(header);\n\n for (const [name, value] of parsed) {\n this._parsed.set(name, {\n name,\n value\n });\n }\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\n\n get size() {\n return this._parsed.size;\n }\n\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n\n getAll(...args) {\n var _a;\n\n const all = Array.from(this._parsed);\n\n if (!args.length) {\n return all.map(([_, value]) => value);\n }\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\n has(name) {\n return this._parsed.has(name);\n }\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, {\n name,\n value\n });\n\n this._headers.set(\"cookie\", 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\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\n this._headers.set(\"cookie\", 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\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\n\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n\n toString() {\n return [...this._parsed.values()].map(v => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n\n}; // src/response-cookies.ts\n\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */new Map();\n\n var _a, _b, _c;\n\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\n for (const cookieString of cookieStrings) {\n const parsed = parseSetCookie(cookieString);\n if (parsed) 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\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\n\n getAll(...args) {\n var _a;\n\n const all = Array.from(this._parsed.values());\n\n if (!args.length) {\n return all;\n }\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\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\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(_objectSpread({\n name,\n value\n }, 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\n\n delete(...args) {\n const [name, path, domain] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0].path, args[0].domain];\n return this.set({\n name,\n path,\n domain,\n value: \"\",\n expires: /* @__PURE__ */new Date(0)\n });\n }\n\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n\n toString() {\n return [...this._parsed.values()].map(stringifyCookie).join(\"; \");\n }\n\n};\n\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n\n for (const [, value] of bag) {\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\n\nfunction normalizeCookie(cookie = {\n name: \"\",\n value: \"\"\n}) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n\n return cookie;\n} // Annotate the CommonJS export names for ESM import in node:\n\n\n0 && (module.exports = {\n RequestCookies,\n ResponseCookies,\n parseCookie,\n parseSetCookie,\n stringifyCookie\n});","(() => {\n \"use strict\";\n\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var e = {};\n\n (() => {\n var r = e;\n /*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n r.parse = parse;\n r.serialize = serialize;\n var i = decodeURIComponent;\n var t = encodeURIComponent;\n var a = /; */;\n var n = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n function parse(e, r) {\n if (typeof e !== \"string\") {\n throw new TypeError(\"argument str must be a string\");\n }\n\n var t = {};\n var n = r || {};\n var o = e.split(a);\n var s = n.decode || i;\n\n for (var p = 0; p < o.length; p++) {\n var f = o[p];\n var u = f.indexOf(\"=\");\n\n if (u < 0) {\n continue;\n }\n\n var v = f.substr(0, u).trim();\n var c = f.substr(++u, f.length).trim();\n\n if ('\"' == c[0]) {\n c = c.slice(1, -1);\n }\n\n if (undefined == t[v]) {\n t[v] = tryDecode(c, s);\n }\n }\n\n return t;\n }\n\n function serialize(e, r, i) {\n var a = i || {};\n var o = a.encode || t;\n\n if (typeof o !== \"function\") {\n throw new TypeError(\"option encode is invalid\");\n }\n\n if (!n.test(e)) {\n throw new TypeError(\"argument name is invalid\");\n }\n\n var s = o(r);\n\n if (s && !n.test(s)) {\n throw new TypeError(\"argument val is invalid\");\n }\n\n var p = e + \"=\" + s;\n\n if (null != a.maxAge) {\n var f = a.maxAge - 0;\n\n if (isNaN(f) || !isFinite(f)) {\n throw new TypeError(\"option maxAge is invalid\");\n }\n\n p += \"; Max-Age=\" + Math.floor(f);\n }\n\n if (a.domain) {\n if (!n.test(a.domain)) {\n throw new TypeError(\"option domain is invalid\");\n }\n\n p += \"; Domain=\" + a.domain;\n }\n\n if (a.path) {\n if (!n.test(a.path)) {\n throw new TypeError(\"option path is invalid\");\n }\n\n p += \"; Path=\" + a.path;\n }\n\n if (a.expires) {\n if (typeof a.expires.toUTCString !== \"function\") {\n throw new TypeError(\"option expires is invalid\");\n }\n\n p += \"; Expires=\" + a.expires.toUTCString();\n }\n\n if (a.httpOnly) {\n p += \"; HttpOnly\";\n }\n\n if (a.secure) {\n p += \"; Secure\";\n }\n\n if (a.sameSite) {\n var u = typeof a.sameSite === \"string\" ? a.sameSite.toLowerCase() : a.sameSite;\n\n switch (u) {\n case true:\n p += \"; SameSite=Strict\";\n break;\n\n case \"lax\":\n p += \"; SameSite=Lax\";\n break;\n\n case \"strict\":\n p += \"; SameSite=Strict\";\n break;\n\n case \"none\":\n p += \"; SameSite=None\";\n break;\n\n default:\n throw new TypeError(\"option sameSite is invalid\");\n }\n }\n\n return p;\n }\n\n function tryDecode(e, r) {\n try {\n return r(e);\n } catch (r) {\n return e;\n }\n }\n })();\n\n module.exports = e;\n})();","module.exports = {\n seo: {\n title: 'FastStore Starter',\n description: 'Fast Demo Store',\n titleTemplate: '%s | FastStore',\n author: 'Store Framework',\n name: 'FastStore',\n publisherId: '',\n plp: {\n titleTemplate: '%s | FastStore PLP',\n descriptionTemplate: '%s products on FastStore Product Listing Page'\n },\n pdp: {\n titleTemplate: '%s | FastStore PDP',\n descriptionTemplate: '%s products on FastStore Product Detail Page',\n minPriceAmountFractionDigits: undefined\n },\n search: {\n titleTemplate: '%s | Search results',\n descriptionTemplate: '%s Search results description',\n noIndex: true,\n noFollow: true,\n bodyH1: 'Showing results for:'\n }\n },\n // Theming\n theme: 'custom-theme',\n // Ecommerce Platform\n platform: 'vtex',\n // Platform specific configs for API\n api: {\n storeId: 'storeframework',\n workspace: 'master',\n subDomainPrefix: ['www'],\n environment: 'vtexcommercestable',\n hideUnavailableItems: false,\n showSponsored: false,\n incrementAddress: true,\n enableUnavailableItemsOnCart: false\n },\n // Default session\n session: {\n currency: {\n code: 'USD',\n symbol: '$'\n },\n locale: 'en-US',\n channel: '{\"salesChannel\":\"1\",\"regionId\":\"\",\"hasOnlyDefaultSalesChannel\":\"true\"}',\n country: 'USA',\n deliveryMode: null,\n addressType: null,\n city: null,\n postalCode: null,\n geoCoordinates: null,\n b2b: null,\n person: null,\n marketingData: {\n utmCampaign: '',\n utmMedium: '',\n utmSource: '',\n utmiCampaign: '',\n utmiPart: '',\n utmiPage: ''\n },\n refreshAfter: null // timestamp in seconds e.g. '1743042990'\n\n },\n // Default cart\n cart: {\n id: '',\n items: [],\n messages: [],\n shouldSplitItem: true\n },\n // Production URLs\n // secureSubdomain is the same as storeUrl because we are using single domain approach for this account\n storeUrl: 'https://homebrewqa.fast.store',\n secureSubdomain: 'https://homebrewqa.fast.store',\n checkoutUrl: 'https://homebrewqa.fast.store/checkout',\n loginUrl: 'https://homebrewqa.fast.store/api/io/login',\n accountUrl: 'https://homebrewqa.fast.store/api/io/account',\n // Preview redirects\n previewRedirects: {\n home: '/',\n plp: '/office',\n search: '/s?q=headphone',\n pdp: '/apple-magic-mouse/p',\n 500: '/500',\n 404: '/404'\n },\n // Lighthouse CI\n lighthouse: {\n server: process.env.BASE_SITE_URL || 'http://localhost:3000',\n pages: {\n home: '/',\n pdp: '/4k-philips-monitor-99988213/p',\n collection: '/office'\n }\n },\n // E2E CI\n cypress: {\n pages: {\n home: '/',\n pdp: '/4k-philips-monitor-99988213/p',\n collection: '/office',\n collection_2: '/technology',\n collection_filtered: '/office/?category-1=office&marca=acer&facets=category-1%2Cmarca',\n search: '/s?q=orange'\n }\n },\n analytics: {\n // https://developers.google.com/tag-platform/tag-manager/web#standard_web_page_installation,\n gtmContainerId: 'GTM-PGHZ95N'\n },\n cms: {\n data: process.env.CMS_DATA\n },\n contentSource: {\n type: 'CMS'\n },\n deliveryPromise: {\n enabled: false,\n mandatory: false\n },\n experimental: {\n cypressVersion: 12,\n enableCypressExtension: false,\n enableScriptsLogs: false,\n noRobots: false,\n noindex: false,\n nofollow: false,\n preact: false,\n enableRedirects: false,\n enableSearchSSR: false,\n enableFaststoreMyAccount: false,\n useIsGiftFromOrderForm: false,\n graphqlCacheControl: {\n maxAge: 0,\n // 0 disables cache, 5 * 60 enable cache control maxAge 5 minutes\n staleWhileRevalidate: 60 * 60 // 1 hour\n\n },\n refreshToken: false,\n scrollRestoration: false,\n\n /** Package names to transpile (e.g. ['@vtex/components']). Use a non-empty list to enable Next.js transpilation. */\n transpilePackages: []\n },\n // Text direction: 'ltr' (left-to-right) or 'rtl' (right-to-left)\n direction: 'ltr'\n};","const defaultConfig = require('./discovery.config.default');\n\nconst starterConfig = require('./src/customizations/discovery.config');\n\nconst deepmerge = require('deepmerge');\n/**\n * @type {typeof defaultConfig & Record<string, any>}\n * */\n\n\nconst finalConfig = deepmerge(defaultConfig, starterConfig);\nmodule.exports = finalConfig;","// This is a placeholder file for when starter files are copied here\nmodule.exports = {};"],"names":["registerInstrumentation","globalThis","_ENTRIES","middleware_instrumentation","register","err","message","registerInstrumentationPromise","ensureInstrumentationRegistered","getUnsupportedModuleErrorMessage","module","__import_unsupported","moduleName","proxy","Proxy","get","_obj","prop","Error","construct","apply","_target","_this","args","enhanceGlobals","process","global","env","Object","defineProperty","value","enumerable","configurable","PageSignatureError","constructor","page","RemovedPageError","RemovedUAError","fromNodeOutgoingHttpHeaders","nodeHeaders","headers","Headers","key","entries","values","Array","isArray","v","toString","append","splitCookiesString","cookiesString","cookiesStrings","pos","start","ch","lastComma","nextStart","cookiesSeparatorFound","skipWhitespace","length","test","charAt","notSpecialChar","push","substring","toNodeOutgoingHttpHeaders","cookies","toLowerCase","validateURL","url","String","URL","error","cause","responseSymbol","Symbol","passThroughSymbol","waitUntilSymbol","FetchEvent","_request","respondWith","response","Promise","resolve","passThroughOnException","waitUntil","promise","NextFetchEvent","params","request","sourcePage","detectDomainLocale","domainItems","hostname","detectedLocale","item","_item_domain","_item_locales","domainHostname","domain","split","defaultLocale","locales","some","locale","removeTrailingSlash","route","replace","parsePath","path","hashIndex","indexOf","queryIndex","hasQuery","pathname","query","undefined","hash","slice","addPathPrefix","prefix","startsWith","addPathSuffix","suffix","pathHasPrefix","addLocale","ignorePrefix","lower","formatNextPathnameInfo","info","buildId","trailingSlash","basePath","endsWith","getHostname","parsed","host","normalizeLocalePath","pathnameParts","splice","join","removePathPrefix","withoutPrefix","getNextPathnameInfo","options","_options_nextConfig","i18n","nextConfig","pathnameNoDataPrefix","paths","parseData","result","i18nProvider","analyze","_result_pathname","REGEX_LOCALHOST_HOSTNAME","parseURL","base","Internal","NextURL","input","baseOrOpts","opts","_this_Internal_options_nextConfig_i18n","_this_Internal_options_nextConfig","_this_Internal_domainLocale","_this_Internal_options_nextConfig_i18n1","_this_Internal_options_nextConfig1","__NEXT_NO_MIDDLEWARE_URL_NORMALIZE","domainLocale","domains","formatPathname","forceLocale","formatSearch","search","includes","TypeError","searchParams","port","protocol","href","origin","password","username","toJSON","for","clone","RequestCookies","ResponseCookies","INTERNALS","NextRequest","Request","init","nextUrl","geo","ip","bodyUsed","cache","credentials","destination","fromEntries","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","signal","ua","REDIRECTS","Set","handleMiddlewareField","_init_request","keys","set","NextResponse","Response","body","ok","redirected","status","statusText","type","json","has","RangeError","initObj","_objectSpread","rewrite","next","relativizeURL","baseURL","relative","RSC","ACTION","NEXT_ROUTER_STATE_TREE","NEXT_ROUTER_PREFETCH","NEXT_URL","RSC_CONTENT_TYPE_HEADER","RSC_VARY_HEADER","FLIGHT_PARAMETERS","NEXT_RSC_UNION_QUERY","INTERNAL_QUERY_NAMES","EDGE_EXTENDED_INTERNAL_QUERY_NAMES","stripInternalQueries","name","stripInternalSearchParams","isEdge","isStringUrl","instance","delete","INTERNAL_HEADERS","stripInternalHeaders","ensureLeadingSlash","isGroupSegment","normalizeAppPath","reduce","segment","index","segments","normalizeRscPath","enabled","NEXT_QUERY_PARAM_PREFIX","PRERENDER_REVALIDATE_HEADER","PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER","NEXT_CACHE_TAGS_HEADER","NEXT_CACHE_SOFT_TAGS_HEADER","NEXT_CACHE_REVALIDATED_TAGS_HEADER","NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER","NEXT_CACHE_TAG_MAX_LENGTH","NEXT_CACHE_SOFT_TAG_MAX_LENGTH","NEXT_CACHE_IMPLICIT_TAG_ID","CACHE_ONE_YEAR","MIDDLEWARE_FILENAME","MIDDLEWARE_LOCATION_REGEXP","INSTRUMENTATION_HOOK_FILENAME","PAGES_DIR_ALIAS","DOT_NEXT_ALIAS","ROOT_DIR_ALIAS","APP_DIR_ALIAS","RSC_MOD_REF_PROXY_ALIAS","RSC_ACTION_VALIDATE_ALIAS","RSC_ACTION_PROXY_ALIAS","RSC_ACTION_CLIENT_WRAPPER_ALIAS","PUBLIC_DIR_MIDDLEWARE_CONFLICT","SSG_GET_INITIAL_PROPS_CONFLICT","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR","SERVER_PROPS_EXPORT_ERROR","GSP_NO_RETURNED_VALUE","GSSP_NO_RETURNED_VALUE","UNSTABLE_REVALIDATE_RENAME_ERROR","GSSP_COMPONENT_MEMBER_ERROR","NON_STANDARD_NODE_ENV","SSG_FALLBACK_EXPORT_ERROR","ESLINT_DEFAULT_DIRS","ESLINT_PROMPT_VALUES","title","recommended","config","extends","SERVER_RUNTIME","edge","experimentalEdge","nodejs","WEBPACK_LAYERS_NAMES","shared","reactServerComponents","serverSideRendering","actionBrowser","api","middleware","edgeAsset","appPagesBrowser","appMetadataRoute","appRouteHandler","WEBPACK_LAYERS","GROUP","server","nonClientServerTarget","app","WEBPACK_RESOURCE_QUERIES","edgeSSREntry","metadata","metadataRoute","metadataImageMeta","ReflectAdapter","target","receiver","Reflect","bind","deleteProperty","ReadonlyHeadersError","callable","HeadersAdapter","lowercased","original","find","o","seal","merge","from","existing","forEach","callbackfn","thisArg","call","iterator","ReadonlyRequestCookiesError","RequestCookiesAdapter","SYMBOL_MODIFY_COOKIE_VALUES","getModifiedCookieValues","modified","appendMutableCookies","mutableCookies","modifiedCookieValues","resCookies","returnedCookies","getAll","cookie","MutableRequestCookiesAdapter","wrap","onUpdateCookies","responseCookes","modifiedValues","modifiedCookies","updateResponseCookies","_fetch___nextGetStaticStore","staticGenerationAsyncStore","fetch","__nextGetStaticStore","getStore","pathWasRevalidated","allCookies","filter","c","serializedCookies","tempCookies","add","sendStatusCode","res","statusCode","statusOrUrl","writeHead","Location","write","end","checkIsOnDemandRevalidate","req","previewProps","previewModeId","isOnDemandRevalidate","revalidateOnlyGenerated","COOKIE_NAME_PRERENDER_BYPASS","COOKIE_NAME_PRERENDER_DATA","RESPONSE_LIMIT_DEFAULT","SYMBOL_PREVIEW_DATA","SYMBOL_CLEARED_COOKIES","clearPreviewData","serialize","require","previous","getHeader","setHeader","expires","Date","httpOnly","sameSite","secure","ApiError","sendError","statusMessage","setLazyProp","getter","optsReset","writable","DraftModeProvider","_cookies_get","cookieValue","isEnabled","Boolean","_previewModeId","_mutableCookies","enable","disable","getHeaders","cleaned","param","getCookies","getMutableCookies","RequestAsyncStorageWrapper","storage","renderOpts","callback","defaultOnUpdateCookies","store","draftMode","run","sharedAsyncLocalStorageNotAvailableError","FakeAsyncLocalStorage","exit","enterWith","maybeGlobalAsyncLocalStorage","AsyncLocalStorage","createAsyncLocalStorage","requestAsyncStorage","NextRequestHint","adapter","isEdgeRendering","self","__BUILD_MANIFEST","prerenderManifest","__PRERENDER_MANIFEST","JSON","parse","requestUrl","normalizedKey","val","isDataReq","requestHeaders","flightHeaders","Map","normalizeUrl","__incrementalCache","IncrementalCache","appDir","fetchCache","minimalMode","fetchCacheKeyPrefix","__NEXT_FETCH_CACHE_KEY_PREFIX","dev","requestProtocol","getPrerenderManifest","version","routes","dynamicRoutes","notFoundRoutes","preview","event","cookiesFromResponse","isMiddleware","previewModeEncryptionKey","previewModeSigningKey","handler","rewriteUrl","relativizedRewrite","__NEXT_EXTERNAL_MIDDLEWARE_REWRITE_RESOLVE","match","redirectURL","finalResponse","middlewareOverrideHeaders","overwrittenHeaders","all","fetchMetrics","default","encodeBase64","Uint8Array","prototype","toBase64","CHUNK_SIZE","arr","i","fromCharCode","subarray","btoa","decodeBase64","encoded","fromBase64","binary","atob","bytes","charCodeAt","JOSEError","_defineProperty","captureStackTrace","JWTClaimValidationFailed","payload","claim","reason","JWTExpired","JOSEAlgNotAllowed","JOSENotSupported","JWEDecryptionFailed","JWEInvalid","JWSInvalid","JWTInvalid","JWKInvalid","JWKSInvalid","JWKSNoMatchingKey","asyncIterator","JWKSMultipleMatchingKeys","_Symbol$asyncIterator","JWKSTimeout","JWSSignatureVerificationFailed","invalidKeyInput","isCryptoKey","isKeyObject","formatPEM","b64","descriptor","newlined","genericExport","keyType","keyFormat","export","format","extractable","crypto","subtle","exportKey","toUpperCase","toSPKI","toPKCS8","bytesEqual","a","b","byteLength","createASN1State","data","parseLength","state","first","lengthOfLen","skipElement","count","expectTag","expectedTag","errorMessage","getSubarray","parseAlgorithmOID","oidLen","parsePKCS8Header","verLen","algIdLen","algIdStart","algIdLength","parseSPKIHeader","parseECAlgorithmIdentifier","algOid","curveOidLen","curveOid","oid","genericImport","keyData","alg","algorithm","keyUsages","isPublic","getSigUsages","getEncUsages","parseInt","curveMap","ES256","ES384","ES512","namedCurve","getNamedCurve","importKey","processPEMData","pem","pattern","fromPKCS8","fromSPKI","spkiFromX509","buf","spkiStart","spkiContentLen","extractX509SPKI","x509","derBytes","fromX509","spki","decode","decodeBase64URL","jwkToKey","isObject","importSPKI","importX509","importPKCS8","pkcs8","importJWK","jwk","ext","kty","k","oth","encoder","TextEncoder","decoder","TextDecoder","MAX_INT32","concat","buffers","size","acc","buffer","writeUInt32BE","offset","uint64be","high","Math","floor","low","uint32be","encode","string","code","alphabet","unencoded","omitPadding","unusable","isAlgorithm","getHashLength","checkHashLength","expected","actual","checkUsage","usage","usages","checkSigCryptoKey","checkEncCryptoKey","msg","types","last","pop","withAlg","checkKeyLength","modulusLength","subtleAlgorithm","saltLength","getSigKey","sign","cryptoKey","signature","verify","unprotected","assertNotSet","decodeBase64url","label","ErrorClass","digest","subtleDigest","isObjectLike","getPrototypeOf","proto","isDisjoint","sources","header","parameters","parameter","isJWK","isPrivateJWK","priv","d","isPublicJWK","isSecretJWK","assertCryptoKey","toStringTag","CryptoKey","isKeyLike","tag","jwkMatchesOp","use","key_ops","expectedKeyOp","symmetricTypeCheck","asymmetricTypeCheck","checkKeyType","validateCrit","Err","recognizedDefault","recognizedOption","protectedHeader","joseHeader","crit","recognized","validateAlgorithms","option","algorithms","s","unsupportedAlg","subtleMapping","crv","unusableForAlg","handleJWK","freeze","WeakMap","cached","handleKeyObject","keyObject","asymmetricKeyType","toCryptoKey","nist","asymmetricKeyDetails","expectedCurve","normalizeKey","b64u","flattenedVerify","jws","protected","parsedProt","extensions","resolvedKey","verified","unprotectedHeader","compactVerify","epoch","date","getTime","minute","hour","day","week","year","REGEX","secs","str","matched","exec","parseFloat","unit","numericDate","round","validateInput","Number","isFinite","normalizeTyp","checkAudiencePresence","audPayload","audOption","validateClaimsSet","encodedPayload","typ","requiredClaims","issuer","subject","audience","maxTokenAge","presenceCheck","reverse","iss","sub","aud","tolerance","clockTolerance","currentDate","now","iat","nbf","exp","age","max","JWTClaimsBuilder","_classPrivateFieldInitSpec","_payload","_classPrivateFieldSet","structuredClone","stringify","_classPrivateFieldGet","jti","jwtVerify","jwt","decodeJwt","decoded","discoveryConfig","DEFAULT_WEBOPS_ORIGIN","getWebopsOrigin","hostFromEnv","WEBOPS_API_URL","trim","hostWithoutTrailingSlash","publicKeyUrl","protectionStatusUrl","storeId","sessionUrl","renewUrl","passwordProtectionTimeouts","publicKeyMs","defaultMs","obj","errors","storeConfig","COOKIE_NAME","TOKEN_TTL_SECONDS","PUBLIC_KEY_CACHE_MS","publicKeyCache","fetchPublicKeyPemFromWebOps","AbortSignal","timeout","publicKey","getPublicVerificationKey","fetchedAt","resetPasswordProtectionPublicKeyCacheForTests","AuthenticationService","getNormalizedHost","authenticateRequest","shouldCheckProtection","token","verification","verifyToken","valid","expired","tryRenewSession","handleNoAuth","isDefaultDomain","CUSTOM_DOMAINS_PROTECTION_ENABLED","shouldProtectDomain","scope","payloadMatchesStore","isJwtExpiredError","p","expiredToken","setAuthCookie","redirectToLogin","maxAge","loginUrl","returnTo","DynamoRedirectsClient","_from","redirectsClient","authResult","authService","ENABLE_REDIRECTS_MIDDLEWARE","redirectUrl","to","storeUrl","redirectStatusCode","matcher","isMergeableObject","isNonNullObject","isSpecial","stringValue","isReactElement","canUseSymbol","REACT_ELEMENT_TYPE","$$typeof","emptyTarget","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","source","map","element","getMergeFunction","customMerge","getEnumerableOwnPropertySymbols","getOwnPropertySymbols","symbol","propertyIsEnumerable","getKeys","propertyIsOnObject","object","property","_","propertyIsUnsafe","hasOwnProperty","mergeObject","arrayMerge","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","deepmergeAll","array","prev","deepmerge_1","exports","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","arguments","getOwnPropertyDescriptors","defineProperties","__defProp","__getOwnPropDesc","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","__export","__copyProps","except","desc","__toCommonJS","mod","src_exports","parseCookie","parseSetCookie","stringifyCookie","_a","attrs","toUTCString","priority","encodeURIComponent","pair","splitAt","decodeURIComponent","setCookie","attributes","httponly","maxage","samesite","value2","parseSameSite","parsePriority","compact","t","newT","SAME_SITE","PRIORITY","_parsed","_headers","n","names","clear","responseHeaders","_b","_c","getSetCookie","cookieStrings","cookieString","normalizeCookie","bag","serialized","__nccwpck_require__","ab","__dirname","e","r","f","u","substr","tryDecode","isNaN","seo","description","titleTemplate","author","publisherId","plp","descriptionTemplate","pdp","minPriceAmountFractionDigits","noIndex","noFollow","bodyH1","theme","platform","workspace","subDomainPrefix","environment","hideUnavailableItems","showSponsored","incrementAddress","enableUnavailableItemsOnCart","session","currency","channel","country","deliveryMode","addressType","city","postalCode","geoCoordinates","b2b","person","marketingData","utmCampaign","utmMedium","utmSource","utmiCampaign","utmiPart","utmiPage","refreshAfter","cart","id","items","messages","shouldSplitItem","secureSubdomain","checkoutUrl","accountUrl","previewRedirects","home","lighthouse","BASE_SITE_URL","pages","collection","cypress","collection_2","collection_filtered","analytics","gtmContainerId","cms","CMS_DATA","contentSource","deliveryPromise","mandatory","experimental","cypressVersion","enableCypressExtension","enableScriptsLogs","noRobots","noindex","nofollow","preact","enableRedirects","enableSearchSSR","enableFaststoreMyAccount","useIsGiftFromOrderForm","graphqlCacheControl","staleWhileRevalidate","refreshToken","scrollRestoration","transpilePackages","direction","defaultConfig","starterConfig","finalConfig"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"src/middleware.js","mappings":"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","sources":["webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/globals.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/error.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/utils.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/spec-extension/fetch-event.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/i18n/detect-domain-locale.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/add-path-suffix.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/add-locale.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/format-next-pathname-info.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/get-hostname.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/i18n/normalize-locale-path.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/get-next-pathname-info.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/next-url.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/spec-extension/cookies.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/spec-extension/request.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/spec-extension/response.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/relativize-url.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/client/components/app-router-headers.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/internal-utils.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/lib/constants.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/api-utils/index.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/async-storage/draft-mode-provider.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/async-storage/request-async-storage-wrapper.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/client/components/async-local-storage.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/client/components/request-async-storage.external.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/adapter.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/esm/server/web/exports/next-response.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/base64.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/util/errors.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/asn1.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/key/import.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/buffer_utils.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/util/base64url.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/crypto_key.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/invalid_key_input.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/signing.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/helpers.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/type_checks.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/is_key_like.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/check_key_type.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/validate_crit.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/validate_algorithms.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/jwk_to_key.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/normalize_key.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/jws/flattened/verify.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/jws/compact/verify.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/jwt_claims_set.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/jwt/verify.js","webpack://_N_E/../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/util/decode_jwt.js","webpack://_N_E/./src/server/password-protection/webops-api.ts","webpack://_N_E/./src/server/password-protection-service.ts","webpack://_N_E/./src/middleware.ts","webpack://_N_E/","webpack://_N_E/../../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js","webpack://_N_E/../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/compiled/cookie/index.js","webpack://_N_E/./discovery.config.default.js","webpack://_N_E/./discovery.config.js","webpack://_N_E/./src/customizations/discovery.config.js"],"sourcesContent":["async function registerInstrumentation() {\n if (\"_ENTRIES\" in globalThis && _ENTRIES.middleware_instrumentation && _ENTRIES.middleware_instrumentation.register) {\n try {\n await _ENTRIES.middleware_instrumentation.register();\n } catch (err) {\n err.message = `An error occurred while loading instrumentation hook: ${err.message}`;\n throw err;\n }\n }\n}\nlet registerInstrumentationPromise = null;\nexport function ensureInstrumentationRegistered() {\n if (!registerInstrumentationPromise) {\n registerInstrumentationPromise = registerInstrumentation();\n }\n return registerInstrumentationPromise;\n}\nfunction getUnsupportedModuleErrorMessage(module) {\n // warning: if you change these messages, you must adjust how react-dev-overlay's middleware detects modules not found\n return `The edge runtime does not support Node.js '${module}' module.\nLearn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`;\n}\nfunction __import_unsupported(moduleName) {\n const proxy = new Proxy(function() {}, {\n get (_obj, prop) {\n if (prop === \"then\") {\n return {};\n }\n throw new Error(getUnsupportedModuleErrorMessage(moduleName));\n },\n construct () {\n throw new Error(getUnsupportedModuleErrorMessage(moduleName));\n },\n apply (_target, _this, args) {\n if (typeof args[0] === \"function\") {\n return args[0](proxy);\n }\n throw new Error(getUnsupportedModuleErrorMessage(moduleName));\n }\n });\n return new Proxy({}, {\n get: ()=>proxy\n });\n}\nfunction enhanceGlobals() {\n // The condition is true when the \"process\" module is provided\n if (process !== global.process) {\n // prefer local process but global.process has correct \"env\"\n process.env = global.process.env;\n global.process = process;\n }\n // to allow building code that import but does not use node.js modules,\n // webpack will expect this function to exist in global scope\n Object.defineProperty(globalThis, \"__import_unsupported\", {\n value: __import_unsupported,\n enumerable: false,\n configurable: false\n });\n // Eagerly fire instrumentation hook to make the startup faster.\n void ensureInstrumentationRegistered();\n}\nenhanceGlobals();\n\n//# sourceMappingURL=globals.js.map","export class 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}\nexport class 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}\nexport class 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","/**\n * Converts a Node.js IncomingHttpHeaders object to a Headers object. Any\n * headers with multiple values will be joined with a comma and space. Any\n * headers that have an undefined value will be ignored and others will be\n * coerced to strings.\n *\n * @param nodeHeaders the headers object to convert\n * @returns the converted headers object\n */ export function 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}\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n \n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/ export function 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}\n/**\n * Converts a Headers object to a Node.js OutgoingHttpHeaders object. This is\n * required to support the set-cookie header, which may have multiple values.\n *\n * @param headers the headers object to convert\n * @returns the converted headers object\n */ export function 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}\n/**\n * Validate the correctness of a user-provided URL.\n */ export function validateURL(url) {\n try {\n return String(new URL(String(url)));\n } catch (error) {\n throw new Error(`URL is malformed \"${String(url)}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, {\n cause: error\n });\n }\n}\n\n//# sourceMappingURL=utils.js.map","import { PageSignatureError } from \"../error\";\nconst responseSymbol = Symbol(\"response\");\nconst passThroughSymbol = Symbol(\"passThrough\");\nexport const waitUntilSymbol = Symbol(\"waitUntil\");\nclass FetchEvent {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(_request){\n this[waitUntilSymbol] = [];\n this[passThroughSymbol] = false;\n }\n respondWith(response) {\n if (!this[responseSymbol]) {\n this[responseSymbol] = Promise.resolve(response);\n }\n }\n passThroughOnException() {\n this[passThroughSymbol] = true;\n }\n waitUntil(promise) {\n this[waitUntilSymbol].push(promise);\n }\n}\nexport class NextFetchEvent extends FetchEvent {\n constructor(params){\n super(params.request);\n this.sourcePage = params.page;\n }\n /**\n * @deprecated The `request` is now the first parameter and the API is now async.\n *\n * Read more: https://nextjs.org/docs/messages/middleware-new-signature\n */ get request() {\n throw new PageSignatureError({\n page: this.sourcePage\n });\n }\n /**\n * @deprecated Using `respondWith` is no longer needed.\n *\n * Read more: https://nextjs.org/docs/messages/middleware-new-signature\n */ respondWith() {\n throw new PageSignatureError({\n page: this.sourcePage\n });\n }\n}\n\n//# sourceMappingURL=fetch-event.js.map","export function detectDomainLocale(domainItems, hostname, detectedLocale) {\n if (!domainItems) return;\n if (detectedLocale) {\n detectedLocale = detectedLocale.toLowerCase();\n }\n for (const item of domainItems){\n var _item_domain, _item_locales;\n // remove port if present\n const domainHostname = (_item_domain = item.domain) == null ? void 0 : _item_domain.split(\":\")[0].toLowerCase();\n if (hostname === domainHostname || detectedLocale === item.defaultLocale.toLowerCase() || ((_item_locales = item.locales) == null ? void 0 : _item_locales.some((locale)=>locale.toLowerCase() === detectedLocale))) {\n return item;\n }\n }\n}\n\n//# sourceMappingURL=detect-domain-locale.js.map","/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */ export function removeTrailingSlash(route) {\n return route.replace(/\\/$/, \"\") || \"/\";\n}\n\n//# sourceMappingURL=remove-trailing-slash.js.map","/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */ export function parsePath(path) {\n const hashIndex = path.indexOf(\"#\");\n const queryIndex = path.indexOf(\"?\");\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex);\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined) : \"\",\n hash: hashIndex > -1 ? path.slice(hashIndex) : \"\"\n };\n }\n return {\n pathname: path,\n query: \"\",\n hash: \"\"\n };\n}\n\n//# sourceMappingURL=parse-path.js.map","import { parsePath } from \"./parse-path\";\n/**\n * Adds the provided prefix to the given path. It first ensures that the path\n * is indeed starting with a slash.\n */ export function addPathPrefix(path, prefix) {\n if (!path.startsWith(\"/\") || !prefix) {\n return path;\n }\n const { pathname, query, hash } = parsePath(path);\n return \"\" + prefix + pathname + query + hash;\n}\n\n//# sourceMappingURL=add-path-prefix.js.map","import { parsePath } from \"./parse-path\";\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 */ export function addPathSuffix(path, suffix) {\n if (!path.startsWith(\"/\") || !suffix) {\n return path;\n }\n const { pathname, query, hash } = parsePath(path);\n return \"\" + pathname + suffix + query + hash;\n}\n\n//# sourceMappingURL=add-path-suffix.js.map","import { parsePath } from \"./parse-path\";\n/**\n * Checks if a given path starts with a given prefix. It ensures it matches\n * exactly without containing extra chars. e.g. prefix /docs should replace\n * for /docs, /docs/, /docs/a but not /docsss\n * @param path The path to check.\n * @param prefix The prefix to check against.\n */ export function pathHasPrefix(path, prefix) {\n if (typeof path !== \"string\") {\n return false;\n }\n const { pathname } = parsePath(path);\n return pathname === prefix || pathname.startsWith(prefix + \"/\");\n}\n\n//# sourceMappingURL=path-has-prefix.js.map","import { addPathPrefix } from \"./add-path-prefix\";\nimport { pathHasPrefix } from \"./path-has-prefix\";\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 */ export function addLocale(path, locale, defaultLocale, ignorePrefix) {\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 const lower = path.toLowerCase();\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 // Add the locale prefix to the path.\n return addPathPrefix(path, \"/\" + locale);\n}\n\n//# sourceMappingURL=add-locale.js.map","import { removeTrailingSlash } from \"./remove-trailing-slash\";\nimport { addPathPrefix } from \"./add-path-prefix\";\nimport { addPathSuffix } from \"./add-path-suffix\";\nimport { addLocale } from \"./add-locale\";\nexport function formatNextPathnameInfo(info) {\n let pathname = addLocale(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix);\n if (info.buildId || !info.trailingSlash) {\n pathname = removeTrailingSlash(pathname);\n }\n if (info.buildId) {\n pathname = addPathSuffix(addPathPrefix(pathname, \"/_next/data/\" + info.buildId), info.pathname === \"/\" ? \"index.json\" : \".json\");\n }\n pathname = addPathPrefix(pathname, info.basePath);\n return !info.buildId && info.trailingSlash ? !pathname.endsWith(\"/\") ? addPathSuffix(pathname, \"/\") : pathname : removeTrailingSlash(pathname);\n}\n\n//# sourceMappingURL=format-next-pathname-info.js.map","/**\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 */ export function getHostname(parsed, headers) {\n // Get the hostname from the headers if it exists, otherwise use the parsed\n // hostname.\n let hostname;\n if ((headers == null ? void 0 : headers.host) && !Array.isArray(headers.host)) {\n hostname = headers.host.toString().split(\":\")[0];\n } else if (parsed.hostname) {\n hostname = parsed.hostname;\n } else return;\n return hostname.toLowerCase();\n}\n\n//# sourceMappingURL=get-hostname.js.map","/**\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 */ export function normalizeLocalePath(pathname, locales) {\n let detectedLocale;\n // first item will be empty string from splitting at first char\n const pathnameParts = pathname.split(\"/\");\n (locales || []).some((locale)=>{\n if (pathnameParts[1] && pathnameParts[1].toLowerCase() === locale.toLowerCase()) {\n detectedLocale = locale;\n pathnameParts.splice(1, 1);\n pathname = pathnameParts.join(\"/\") || \"/\";\n return true;\n }\n return false;\n });\n return {\n pathname,\n detectedLocale\n };\n}\n\n//# sourceMappingURL=normalize-locale-path.js.map","import { pathHasPrefix } from \"./path-has-prefix\";\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 */ export function removePathPrefix(path, prefix) {\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 // Remove the prefix from the path via slicing.\n const withoutPrefix = path.slice(prefix.length);\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 // 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//# sourceMappingURL=remove-path-prefix.js.map","import { normalizeLocalePath } from \"../../i18n/normalize-locale-path\";\nimport { removePathPrefix } from \"./remove-path-prefix\";\nimport { pathHasPrefix } from \"./path-has-prefix\";\nexport function getNextPathnameInfo(pathname, options) {\n var _options_nextConfig;\n const { basePath, i18n, trailingSlash } = (_options_nextConfig = options.nextConfig) != null ? _options_nextConfig : {};\n const info = {\n pathname,\n trailingSlash: pathname !== \"/\" ? pathname.endsWith(\"/\") : trailingSlash\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 if (info.pathname.startsWith(\"/_next/data/\") && info.pathname.endsWith(\".json\")) {\n const paths = info.pathname.replace(/^\\/_next\\/data\\//, \"\").replace(/\\.json$/, \"\").split(\"/\");\n const buildId = paths[0];\n info.buildId = buildId;\n pathnameNoDataPrefix = paths[1] !== \"index\" ? \"/\" + paths.slice(1).join(\"/\") : \"/\";\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 // 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 ? options.i18nProvider.analyze(info.pathname) : normalizeLocalePath(info.pathname, i18n.locales);\n info.locale = result.detectedLocale;\n var _result_pathname;\n info.pathname = (_result_pathname = result.pathname) != null ? _result_pathname : info.pathname;\n if (!result.detectedLocale && info.buildId) {\n result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : normalizeLocalePath(pathnameNoDataPrefix, i18n.locales);\n if (result.detectedLocale) {\n info.locale = result.detectedLocale;\n }\n }\n }\n return info;\n}\n\n//# sourceMappingURL=get-next-pathname-info.js.map","import { detectDomainLocale } from \"../../shared/lib/i18n/detect-domain-locale\";\nimport { formatNextPathnameInfo } from \"../../shared/lib/router/utils/format-next-pathname-info\";\nimport { getHostname } from \"../../shared/lib/get-hostname\";\nimport { getNextPathnameInfo } from \"../../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\");\nexport class 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 = 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 = getHostname(this[Internal].url, this[Internal].options.headers);\n this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : 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 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 new TypeError(`The NextURL configuration includes no locale \"${locale}\"`);\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","export { RequestCookies, ResponseCookies } from \"next/dist/compiled/@edge-runtime/cookies\";\n\n//# sourceMappingURL=cookies.js.map","import { NextURL } from \"../next-url\";\nimport { toNodeOutgoingHttpHeaders, validateURL } from \"../utils\";\nimport { RemovedUAError, RemovedPageError } from \"../error\";\nimport { RequestCookies } from \"./cookies\";\nexport const INTERNALS = Symbol(\"internal request\");\nexport class NextRequest extends Request {\n constructor(input, init = {}){\n const url = typeof input !== \"string\" && \"url\" in input ? input.url : String(input);\n validateURL(url);\n if (input instanceof Request) super(input, init);\n else super(url, init);\n const nextUrl = new NextURL(url, {\n headers: toNodeOutgoingHttpHeaders(this.headers),\n nextConfig: init.nextConfig\n });\n this[INTERNALS] = {\n cookies: new RequestCookies(this.headers),\n geo: init.geo || {},\n ip: init.ip,\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 geo: this.geo,\n ip: this.ip,\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 geo() {\n return this[INTERNALS].geo;\n }\n get ip() {\n return this[INTERNALS].ip;\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 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 RemovedUAError();\n }\n get url() {\n return this[INTERNALS].url;\n }\n}\n\n//# sourceMappingURL=request.js.map","import { NextURL } from \"../next-url\";\nimport { toNodeOutgoingHttpHeaders, validateURL } from \"../utils\";\nimport { ResponseCookies } from \"./cookies\";\nconst INTERNALS = Symbol(\"internal response\");\nconst REDIRECTS = new Set([\n 301,\n 302,\n 303,\n 307,\n 308\n]);\nfunction handleMiddlewareField(init, headers) {\n var _init_request;\n if (init == null ? void 0 : (_init_request = init.request) == null ? void 0 : _init_request.headers) {\n if (!(init.request.headers instanceof Headers)) {\n throw new Error(\"request.headers must be an instance of Headers\");\n }\n const keys = [];\n for (const [key, value] of init.request.headers){\n headers.set(\"x-middleware-request-\" + key, value);\n keys.push(key);\n }\n headers.set(\"x-middleware-override-headers\", keys.join(\",\"));\n }\n}\nexport class NextResponse extends Response {\n constructor(body, init = {}){\n super(body, init);\n this[INTERNALS] = {\n cookies: new ResponseCookies(this.headers),\n url: init.url ? new NextURL(init.url, {\n headers: toNodeOutgoingHttpHeaders(this.headers),\n nextConfig: init.nextConfig\n }) : undefined\n };\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return {\n cookies: this.cookies,\n url: this.url,\n // rest of props come from Response\n body: this.body,\n bodyUsed: this.bodyUsed,\n headers: Object.fromEntries(this.headers),\n ok: this.ok,\n redirected: this.redirected,\n status: this.status,\n statusText: this.statusText,\n type: this.type\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n static json(body, init) {\n const response = Response.json(body, init);\n return new NextResponse(response.body, response);\n }\n static redirect(url, init) {\n const status = typeof init === \"number\" ? init : (init == null ? void 0 : init.status) ?? 307;\n if (!REDIRECTS.has(status)) {\n throw new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code');\n }\n const initObj = typeof init === \"object\" ? init : {};\n const headers = new Headers(initObj == null ? void 0 : initObj.headers);\n headers.set(\"Location\", validateURL(url));\n return new NextResponse(null, {\n ...initObj,\n headers,\n status\n });\n }\n static rewrite(destination, init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set(\"x-middleware-rewrite\", validateURL(destination));\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n static next(init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set(\"x-middleware-next\", \"1\");\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n}\n\n//# sourceMappingURL=response.js.map","/**\n * Given a URL as a string and a base URL it will make the URL relative\n * if the parsed protocol and host is the same as the one in the base\n * URL. Otherwise it returns the same URL string.\n */ export function relativizeURL(url, base) {\n const baseURL = typeof base === \"string\" ? new URL(base) : base;\n const relative = new URL(url, base);\n const origin = baseURL.protocol + \"//\" + baseURL.host;\n return relative.protocol + \"//\" + relative.host === origin ? relative.toString().replace(origin, \"\") : relative.toString();\n}\n\n//# sourceMappingURL=relativize-url.js.map","export const RSC = \"RSC\";\nexport const ACTION = \"Next-Action\";\nexport const NEXT_ROUTER_STATE_TREE = \"Next-Router-State-Tree\";\nexport const NEXT_ROUTER_PREFETCH = \"Next-Router-Prefetch\";\nexport const NEXT_URL = \"Next-Url\";\nexport const RSC_CONTENT_TYPE_HEADER = \"text/x-component\";\nexport const RSC_VARY_HEADER = RSC + \", \" + NEXT_ROUTER_STATE_TREE + \", \" + NEXT_ROUTER_PREFETCH + \", \" + NEXT_URL;\nexport const FLIGHT_PARAMETERS = [\n [\n RSC\n ],\n [\n NEXT_ROUTER_STATE_TREE\n ],\n [\n NEXT_ROUTER_PREFETCH\n ]\n];\nexport const NEXT_RSC_UNION_QUERY = \"_rsc\";\n\n//# sourceMappingURL=app-router-headers.js.map","import { NEXT_RSC_UNION_QUERY } from \"../client/components/app-router-headers\";\nconst INTERNAL_QUERY_NAMES = [\n \"__nextFallback\",\n \"__nextLocale\",\n \"__nextInferredLocaleFromDefault\",\n \"__nextDefaultLocale\",\n \"__nextIsNotFound\",\n NEXT_RSC_UNION_QUERY\n];\nconst EDGE_EXTENDED_INTERNAL_QUERY_NAMES = [\n \"__nextDataReq\"\n];\nexport function stripInternalQueries(query) {\n for (const name of INTERNAL_QUERY_NAMES){\n delete query[name];\n }\n}\nexport function stripInternalSearchParams(url, isEdge) {\n const isStringUrl = typeof url === \"string\";\n const instance = isStringUrl ? new URL(url) : url;\n for (const name of INTERNAL_QUERY_NAMES){\n instance.searchParams.delete(name);\n }\n if (isEdge) {\n for (const name of EDGE_EXTENDED_INTERNAL_QUERY_NAMES){\n instance.searchParams.delete(name);\n }\n }\n return isStringUrl ? instance.toString() : instance;\n}\n/**\n * Headers that are set by the Next.js server and should be stripped from the\n * request headers going to the user's application.\n */ const INTERNAL_HEADERS = [\n \"x-invoke-path\",\n \"x-invoke-status\",\n \"x-invoke-error\",\n \"x-invoke-query\",\n \"x-invoke-output\",\n \"x-middleware-invoke\"\n];\n/**\n * Strip internal headers from the request headers.\n *\n * @param headers the headers to strip of internal headers\n */ export function stripInternalHeaders(headers) {\n for (const key of INTERNAL_HEADERS){\n delete headers[key];\n }\n}\n\n//# sourceMappingURL=internal-utils.js.map","import { ensureLeadingSlash } from \"../../page-path/ensure-leading-slash\";\nimport { isGroupSegment } from \"../../segment\";\n/**\n * Normalizes an app route so it represents the actual request path. Essentially\n * performing the following transformations:\n *\n * - `/(dashboard)/user/[id]/page` to `/user/[id]`\n * - `/(dashboard)/account/page` to `/account`\n * - `/user/[id]/page` to `/user/[id]`\n * - `/account/page` to `/account`\n * - `/page` to `/`\n * - `/(dashboard)/user/[id]/route` to `/user/[id]`\n * - `/(dashboard)/account/route` to `/account`\n * - `/user/[id]/route` to `/user/[id]`\n * - `/account/route` to `/account`\n * - `/route` to `/`\n * - `/` to `/`\n *\n * @param route the app route to normalize\n * @returns the normalized pathname\n */ export function normalizeAppPath(route) {\n return ensureLeadingSlash(route.split(\"/\").reduce((pathname, segment, index, segments)=>{\n // Empty segments are ignored.\n if (!segment) {\n return pathname;\n }\n // Groups are ignored.\n if (isGroupSegment(segment)) {\n return pathname;\n }\n // Parallel segments are ignored.\n if (segment[0] === \"@\") {\n return pathname;\n }\n // The last segment (if it's a leaf) should be ignored.\n if ((segment === \"page\" || segment === \"route\") && index === segments.length - 1) {\n return pathname;\n }\n return pathname + \"/\" + segment;\n }, \"\"));\n}\n/**\n * Strips the `.rsc` extension if it's in the pathname.\n * Since this function is used on full urls it checks `?` for searchParams handling.\n */ export function normalizeRscPath(pathname, enabled) {\n return enabled ? pathname.replace(/\\.rsc($|\\?)/, // $1 ensures `?` is preserved\n \"$1\") : pathname;\n}\n\n//# sourceMappingURL=app-paths.js.map","export const NEXT_QUERY_PARAM_PREFIX = \"nxtP\";\nexport const PRERENDER_REVALIDATE_HEADER = \"x-prerender-revalidate\";\nexport const PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER = \"x-prerender-revalidate-if-generated\";\nexport const NEXT_CACHE_TAGS_HEADER = \"x-next-cache-tags\";\nexport const NEXT_CACHE_SOFT_TAGS_HEADER = \"x-next-cache-soft-tags\";\nexport const NEXT_CACHE_REVALIDATED_TAGS_HEADER = \"x-next-revalidated-tags\";\nexport const NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = \"x-next-revalidate-tag-token\";\nexport const NEXT_CACHE_TAG_MAX_LENGTH = 256;\nexport const NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024;\nexport const NEXT_CACHE_IMPLICIT_TAG_ID = \"_N_T_\";\n// in seconds\nexport const CACHE_ONE_YEAR = 31536000;\n// Patterns to detect middleware files\nexport const MIDDLEWARE_FILENAME = \"middleware\";\nexport const MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`;\n// Pattern to detect instrumentation hooks file\nexport const INSTRUMENTATION_HOOK_FILENAME = \"instrumentation\";\n// Because on Windows absolute paths in the generated code can break because of numbers, eg 1 in the path,\n// we have to use a private alias\nexport const PAGES_DIR_ALIAS = \"private-next-pages\";\nexport const DOT_NEXT_ALIAS = \"private-dot-next\";\nexport const ROOT_DIR_ALIAS = \"private-next-root-dir\";\nexport const APP_DIR_ALIAS = \"private-next-app-dir\";\nexport const RSC_MOD_REF_PROXY_ALIAS = \"private-next-rsc-mod-ref-proxy\";\nexport const RSC_ACTION_VALIDATE_ALIAS = \"private-next-rsc-action-validate\";\nexport const RSC_ACTION_PROXY_ALIAS = \"private-next-rsc-action-proxy\";\nexport const RSC_ACTION_CLIENT_WRAPPER_ALIAS = \"private-next-rsc-action-client-wrapper\";\nexport const 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`;\nexport const SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`;\nexport const SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`;\nexport const SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`;\nexport const STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`;\nexport const SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`;\nexport const GSP_NO_RETURNED_VALUE = \"Your `getStaticProps` function did not return an object. Did you forget to add a `return`?\";\nexport const GSSP_NO_RETURNED_VALUE = \"Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?\";\nexport const UNSTABLE_REVALIDATE_RENAME_ERROR = \"The `unstable_revalidate` property is available for general use.\\n\" + \"Please use `revalidate` instead.\";\nexport const 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`;\nexport const 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`;\nexport const 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`;\nexport const ESLINT_DEFAULT_DIRS = [\n \"app\",\n \"pages\",\n \"components\",\n \"lib\",\n \"src\"\n];\nexport const ESLINT_PROMPT_VALUES = [\n {\n title: \"Strict\",\n recommended: true,\n config: {\n extends: \"next/core-web-vitals\"\n }\n },\n {\n title: \"Base\",\n config: {\n extends: \"next\"\n }\n },\n {\n title: \"Cancel\",\n config: null\n }\n];\nexport const 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 * React Server Components layer (rsc).\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 layer for the API routes.\n */ api: \"api\",\n /**\n * The layer for the middleware code.\n */ middleware: \"middleware\",\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 server bundle layer for metadata routes.\n */ appMetadataRoute: \"app-metadata-route\",\n /**\n * The layer for the server bundle for App Route handlers.\n */ appRouteHandler: \"app-route-handler\"\n};\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n server: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.appMetadataRoute,\n WEBPACK_LAYERS_NAMES.appRouteHandler\n ],\n nonClientServerTarget: [\n // plus middleware and pages api\n WEBPACK_LAYERS_NAMES.middleware,\n WEBPACK_LAYERS_NAMES.api\n ],\n app: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.appMetadataRoute,\n WEBPACK_LAYERS_NAMES.appRouteHandler,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser\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};\nexport { WEBPACK_LAYERS, WEBPACK_RESOURCE_QUERIES };\n\n//# sourceMappingURL=constants.js.map","export class ReflectAdapter {\n static get(target, prop, receiver) {\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === \"function\") {\n return value.bind(target);\n }\n return value;\n }\n static set(target, prop, value, receiver) {\n return Reflect.set(target, prop, value, receiver);\n }\n static has(target, prop) {\n return Reflect.has(target, prop);\n }\n static deleteProperty(target, prop) {\n return Reflect.deleteProperty(target, prop);\n }\n}\n\n//# sourceMappingURL=reflect.js.map","import { ReflectAdapter } from \"./reflect\";\n/**\n * @internal\n */ export class ReadonlyHeadersError extends Error {\n constructor(){\n super(\"Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers\");\n }\n static callable() {\n throw new ReadonlyHeadersError();\n }\n}\nexport class HeadersAdapter extends Headers {\n constructor(headers){\n // We've already overridden the methods that would be called, so we're just\n // calling the super constructor to ensure that the instanceof check works.\n super();\n this.headers = new Proxy(headers, {\n get (target, prop, receiver) {\n // Because this is just an object, we expect that all \"get\" operations\n // are for properties. If it's a \"get\" for a symbol, we'll just return\n // the symbol.\n if (typeof prop === \"symbol\") {\n return ReflectAdapter.get(target, prop, receiver);\n }\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return undefined.\n if (typeof original === \"undefined\") return;\n // If the original casing exists, return the value.\n return ReflectAdapter.get(target, original, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === \"symbol\") {\n return ReflectAdapter.set(target, prop, value, receiver);\n }\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, use the prop as the key.\n return ReflectAdapter.set(target, original ?? prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === \"symbol\") return ReflectAdapter.has(target, prop);\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return false.\n if (typeof original === \"undefined\") return false;\n // If the original casing exists, return true.\n return ReflectAdapter.has(target, original);\n },\n deleteProperty (target, prop) {\n if (typeof prop === \"symbol\") return ReflectAdapter.deleteProperty(target, prop);\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return true.\n if (typeof original === \"undefined\") return true;\n // If the original casing exists, delete the property.\n return ReflectAdapter.deleteProperty(target, original);\n }\n });\n }\n /**\n * Seals a Headers instance to prevent modification by throwing an error when\n * any mutating method is called.\n */ static seal(headers) {\n return new Proxy(headers, {\n get (target, prop, receiver) {\n switch(prop){\n case \"append\":\n case \"delete\":\n case \"set\":\n return ReadonlyHeadersError.callable;\n default:\n return ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n /**\n * Merges a header value into a string. This stores multiple values as an\n * array, so we need to merge them into a string.\n *\n * @param value a header value\n * @returns a merged header value (a string)\n */ merge(value) {\n if (Array.isArray(value)) return value.join(\", \");\n return value;\n }\n /**\n * Creates a Headers instance from a plain object or a Headers instance.\n *\n * @param headers a plain object or a Headers instance\n * @returns a headers instance\n */ static from(headers) {\n if (headers instanceof Headers) return headers;\n return new HeadersAdapter(headers);\n }\n append(name, value) {\n const existing = this.headers[name];\n if (typeof existing === \"string\") {\n this.headers[name] = [\n existing,\n value\n ];\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n this.headers[name] = value;\n }\n }\n delete(name) {\n delete this.headers[name];\n }\n get(name) {\n const value = this.headers[name];\n if (typeof value !== \"undefined\") return this.merge(value);\n return null;\n }\n has(name) {\n return typeof this.headers[name] !== \"undefined\";\n }\n set(name, value) {\n this.headers[name] = value;\n }\n forEach(callbackfn, thisArg) {\n for (const [name, value] of this.entries()){\n callbackfn.call(thisArg, value, name, this);\n }\n }\n *entries() {\n for (const key of Object.keys(this.headers)){\n const name = key.toLowerCase();\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(name);\n yield [\n name,\n value\n ];\n }\n }\n *keys() {\n for (const key of Object.keys(this.headers)){\n const name = key.toLowerCase();\n yield name;\n }\n }\n *values() {\n for (const key of Object.keys(this.headers)){\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(key);\n yield value;\n }\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n}\n\n//# sourceMappingURL=headers.js.map","import { ResponseCookies } from \"../cookies\";\nimport { ReflectAdapter } from \"./reflect\";\n/**\n * @internal\n */ export class ReadonlyRequestCookiesError extends Error {\n constructor(){\n super(\"Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#cookiessetname-value-options\");\n }\n static callable() {\n throw new ReadonlyRequestCookiesError();\n }\n}\nexport class RequestCookiesAdapter {\n static seal(cookies) {\n return new Proxy(cookies, {\n get (target, prop, receiver) {\n switch(prop){\n case \"clear\":\n case \"delete\":\n case \"set\":\n return ReadonlyRequestCookiesError.callable;\n default:\n return ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n}\nconst SYMBOL_MODIFY_COOKIE_VALUES = Symbol.for(\"next.mutated.cookies\");\nexport function getModifiedCookieValues(cookies) {\n const modified = cookies[SYMBOL_MODIFY_COOKIE_VALUES];\n if (!modified || !Array.isArray(modified) || modified.length === 0) {\n return [];\n }\n return modified;\n}\nexport function appendMutableCookies(headers, mutableCookies) {\n const modifiedCookieValues = getModifiedCookieValues(mutableCookies);\n if (modifiedCookieValues.length === 0) {\n return false;\n }\n // Return a new response that extends the response with\n // the modified cookies as fallbacks. `res` cookies\n // will still take precedence.\n const resCookies = new ResponseCookies(headers);\n const returnedCookies = resCookies.getAll();\n // Set the modified cookies as fallbacks.\n for (const cookie of modifiedCookieValues){\n resCookies.set(cookie);\n }\n // Set the original cookies as the final values.\n for (const cookie of returnedCookies){\n resCookies.set(cookie);\n }\n return true;\n}\nexport class MutableRequestCookiesAdapter {\n static wrap(cookies, onUpdateCookies) {\n const responseCookes = new ResponseCookies(new Headers());\n for (const cookie of cookies.getAll()){\n responseCookes.set(cookie);\n }\n let modifiedValues = [];\n const modifiedCookies = new Set();\n const updateResponseCookies = ()=>{\n var _fetch___nextGetStaticStore;\n // TODO-APP: change method of getting staticGenerationAsyncStore\n const staticGenerationAsyncStore = fetch.__nextGetStaticStore == null ? void 0 : (_fetch___nextGetStaticStore = fetch.__nextGetStaticStore.call(fetch)) == null ? void 0 : _fetch___nextGetStaticStore.getStore();\n if (staticGenerationAsyncStore) {\n staticGenerationAsyncStore.pathWasRevalidated = true;\n }\n const allCookies = responseCookes.getAll();\n modifiedValues = allCookies.filter((c)=>modifiedCookies.has(c.name));\n if (onUpdateCookies) {\n const serializedCookies = [];\n for (const cookie of modifiedValues){\n const tempCookies = new ResponseCookies(new Headers());\n tempCookies.set(cookie);\n serializedCookies.push(tempCookies.toString());\n }\n onUpdateCookies(serializedCookies);\n }\n };\n return new Proxy(responseCookes, {\n get (target, prop, receiver) {\n switch(prop){\n // A special symbol to get the modified cookie values\n case SYMBOL_MODIFY_COOKIE_VALUES:\n return modifiedValues;\n // TODO: Throw error if trying to set a cookie after the response\n // headers have been set.\n case \"delete\":\n return function(...args) {\n modifiedCookies.add(typeof args[0] === \"string\" ? args[0] : args[0].name);\n try {\n target.delete(...args);\n } finally{\n updateResponseCookies();\n }\n };\n case \"set\":\n return function(...args) {\n modifiedCookies.add(typeof args[0] === \"string\" ? args[0] : args[0].name);\n try {\n return target.set(...args);\n } finally{\n updateResponseCookies();\n }\n };\n default:\n return ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n}\n\n//# sourceMappingURL=request-cookies.js.map","import { HeadersAdapter } from \"../web/spec-extension/adapters/headers\";\nimport { PRERENDER_REVALIDATE_HEADER, PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER } from \"../../lib/constants\";\n/**\n *\n * @param res response object\n * @param statusCode `HTTP` status code of response\n */ export function sendStatusCode(res, statusCode) {\n res.statusCode = statusCode;\n return res;\n}\n/**\n *\n * @param res response object\n * @param [statusOrUrl] `HTTP` status code of redirect\n * @param url URL of redirect\n */ export function redirect(res, statusOrUrl, url) {\n if (typeof statusOrUrl === \"string\") {\n url = statusOrUrl;\n statusOrUrl = 307;\n }\n if (typeof statusOrUrl !== \"number\" || typeof url !== \"string\") {\n throw new Error(`Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').`);\n }\n res.writeHead(statusOrUrl, {\n Location: url\n });\n res.write(url);\n res.end();\n return res;\n}\nexport function checkIsOnDemandRevalidate(req, previewProps) {\n const headers = HeadersAdapter.from(req.headers);\n const previewModeId = headers.get(PRERENDER_REVALIDATE_HEADER);\n const isOnDemandRevalidate = previewModeId === previewProps.previewModeId;\n const revalidateOnlyGenerated = headers.has(PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER);\n return {\n isOnDemandRevalidate,\n revalidateOnlyGenerated\n };\n}\nexport const COOKIE_NAME_PRERENDER_BYPASS = `__prerender_bypass`;\nexport const COOKIE_NAME_PRERENDER_DATA = `__next_preview_data`;\nexport const RESPONSE_LIMIT_DEFAULT = 4 * 1024 * 1024;\nexport const SYMBOL_PREVIEW_DATA = Symbol(COOKIE_NAME_PRERENDER_DATA);\nexport const SYMBOL_CLEARED_COOKIES = Symbol(COOKIE_NAME_PRERENDER_BYPASS);\nexport function clearPreviewData(res, options = {}) {\n if (SYMBOL_CLEARED_COOKIES in res) {\n return res;\n }\n const { serialize } = require(\"next/dist/compiled/cookie\");\n const previous = res.getHeader(\"Set-Cookie\");\n res.setHeader(`Set-Cookie`, [\n ...typeof previous === \"string\" ? [\n previous\n ] : Array.isArray(previous) ? previous : [],\n serialize(COOKIE_NAME_PRERENDER_BYPASS, \"\", {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== \"development\" ? \"none\" : \"lax\",\n secure: process.env.NODE_ENV !== \"development\",\n path: \"/\",\n ...options.path !== undefined ? {\n path: options.path\n } : undefined\n }),\n serialize(COOKIE_NAME_PRERENDER_DATA, \"\", {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== \"development\" ? \"none\" : \"lax\",\n secure: process.env.NODE_ENV !== \"development\",\n path: \"/\",\n ...options.path !== undefined ? {\n path: options.path\n } : undefined\n })\n ]);\n Object.defineProperty(res, SYMBOL_CLEARED_COOKIES, {\n value: true,\n enumerable: false\n });\n return res;\n}\n/**\n * Custom error class\n */ export class ApiError extends Error {\n constructor(statusCode, message){\n super(message);\n this.statusCode = statusCode;\n }\n}\n/**\n * Sends error in `response`\n * @param res response object\n * @param statusCode of response\n * @param message of response\n */ export function sendError(res, statusCode, message) {\n res.statusCode = statusCode;\n res.statusMessage = message;\n res.end(message);\n}\n/**\n * Execute getter function only if its needed\n * @param LazyProps `req` and `params` for lazyProp\n * @param prop name of property\n * @param getter function to get data\n */ export function setLazyProp({ req }, prop, getter) {\n const opts = {\n configurable: true,\n enumerable: true\n };\n const optsReset = {\n ...opts,\n writable: true\n };\n Object.defineProperty(req, prop, {\n ...opts,\n get: ()=>{\n const value = getter();\n // we set the property on the object to avoid recalculating it\n Object.defineProperty(req, prop, {\n ...optsReset,\n value\n });\n return value;\n },\n set: (value)=>{\n Object.defineProperty(req, prop, {\n ...optsReset,\n value\n });\n }\n });\n}\n\n//# sourceMappingURL=index.js.map","import { COOKIE_NAME_PRERENDER_BYPASS, checkIsOnDemandRevalidate } from \"../api-utils\";\nexport class DraftModeProvider {\n constructor(previewProps, req, cookies, mutableCookies){\n var _cookies_get;\n // The logic for draftMode() is very similar to tryGetPreviewData()\n // but Draft Mode does not have any data associated with it.\n const isOnDemandRevalidate = previewProps && checkIsOnDemandRevalidate(req, previewProps).isOnDemandRevalidate;\n const cookieValue = (_cookies_get = cookies.get(COOKIE_NAME_PRERENDER_BYPASS)) == null ? void 0 : _cookies_get.value;\n this.isEnabled = Boolean(!isOnDemandRevalidate && cookieValue && previewProps && cookieValue === previewProps.previewModeId);\n this._previewModeId = previewProps == null ? void 0 : previewProps.previewModeId;\n this._mutableCookies = mutableCookies;\n }\n enable() {\n if (!this._previewModeId) {\n throw new Error(\"Invariant: previewProps missing previewModeId this should never happen\");\n }\n this._mutableCookies.set({\n name: COOKIE_NAME_PRERENDER_BYPASS,\n value: this._previewModeId,\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== \"development\" ? \"none\" : \"lax\",\n secure: process.env.NODE_ENV !== \"development\",\n path: \"/\"\n });\n }\n disable() {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n this._mutableCookies.set({\n name: COOKIE_NAME_PRERENDER_BYPASS,\n value: \"\",\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== \"development\" ? \"none\" : \"lax\",\n secure: process.env.NODE_ENV !== \"development\",\n path: \"/\",\n expires: new Date(0)\n });\n }\n}\n\n//# sourceMappingURL=draft-mode-provider.js.map","import { FLIGHT_PARAMETERS } from \"../../client/components/app-router-headers\";\nimport { HeadersAdapter } from \"../web/spec-extension/adapters/headers\";\nimport { MutableRequestCookiesAdapter, RequestCookiesAdapter } from \"../web/spec-extension/adapters/request-cookies\";\nimport { RequestCookies } from \"../web/spec-extension/cookies\";\nimport { DraftModeProvider } from \"./draft-mode-provider\";\nfunction getHeaders(headers) {\n const cleaned = HeadersAdapter.from(headers);\n for (const param of FLIGHT_PARAMETERS){\n cleaned.delete(param.toString().toLowerCase());\n }\n return HeadersAdapter.seal(cleaned);\n}\nfunction getCookies(headers) {\n const cookies = new RequestCookies(HeadersAdapter.from(headers));\n return RequestCookiesAdapter.seal(cookies);\n}\nfunction getMutableCookies(headers, onUpdateCookies) {\n const cookies = new RequestCookies(HeadersAdapter.from(headers));\n return MutableRequestCookiesAdapter.wrap(cookies, onUpdateCookies);\n}\nexport const RequestAsyncStorageWrapper = {\n /**\n * Wrap the callback with the given store so it can access the underlying\n * store using hooks.\n *\n * @param storage underlying storage object returned by the module\n * @param context context to seed the store\n * @param callback function to call within the scope of the context\n * @returns the result returned by the callback\n */ wrap (storage, { req, res, renderOpts }, callback) {\n let previewProps = undefined;\n if (renderOpts && \"previewProps\" in renderOpts) {\n // TODO: investigate why previewProps isn't on RenderOpts\n previewProps = renderOpts.previewProps;\n }\n function defaultOnUpdateCookies(cookies) {\n if (res) {\n res.setHeader(\"Set-Cookie\", cookies);\n }\n }\n const cache = {};\n const store = {\n get headers () {\n if (!cache.headers) {\n // Seal the headers object that'll freeze out any methods that could\n // mutate the underlying data.\n cache.headers = getHeaders(req.headers);\n }\n return cache.headers;\n },\n get cookies () {\n if (!cache.cookies) {\n // Seal the cookies object that'll freeze out any methods that could\n // mutate the underlying data.\n cache.cookies = getCookies(req.headers);\n }\n return cache.cookies;\n },\n get mutableCookies () {\n if (!cache.mutableCookies) {\n cache.mutableCookies = getMutableCookies(req.headers, (renderOpts == null ? void 0 : renderOpts.onUpdateCookies) || (res ? defaultOnUpdateCookies : undefined));\n }\n return cache.mutableCookies;\n },\n get draftMode () {\n if (!cache.draftMode) {\n cache.draftMode = new DraftModeProvider(previewProps, req, this.cookies, this.mutableCookies);\n }\n return cache.draftMode;\n }\n };\n return storage.run(store, callback, store);\n }\n};\n\n//# sourceMappingURL=request-async-storage-wrapper.js.map","const sharedAsyncLocalStorageNotAvailableError = new Error(\"Invariant: AsyncLocalStorage accessed in runtime where it is not available\");\nclass FakeAsyncLocalStorage {\n disable() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n getStore() {\n // This fake implementation of AsyncLocalStorage always returns `undefined`.\n return undefined;\n }\n run() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n exit() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n enterWith() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n}\nconst maybeGlobalAsyncLocalStorage = globalThis.AsyncLocalStorage;\nexport function createAsyncLocalStorage() {\n if (maybeGlobalAsyncLocalStorage) {\n return new maybeGlobalAsyncLocalStorage();\n }\n return new FakeAsyncLocalStorage();\n}\n\n//# sourceMappingURL=async-local-storage.js.map","import { createAsyncLocalStorage } from \"./async-local-storage\";\nexport const requestAsyncStorage = createAsyncLocalStorage();\n\n//# sourceMappingURL=request-async-storage.external.js.map","import { PageSignatureError } from \"./error\";\nimport { fromNodeOutgoingHttpHeaders } from \"./utils\";\nimport { NextFetchEvent } from \"./spec-extension/fetch-event\";\nimport { NextRequest } from \"./spec-extension/request\";\nimport { NextResponse } from \"./spec-extension/response\";\nimport { relativizeURL } from \"../../shared/lib/router/utils/relativize-url\";\nimport { waitUntilSymbol } from \"./spec-extension/fetch-event\";\nimport { NextURL } from \"./next-url\";\nimport { stripInternalSearchParams } from \"../internal-utils\";\nimport { normalizeRscPath } from \"../../shared/lib/router/utils/app-paths\";\nimport { NEXT_ROUTER_PREFETCH, NEXT_ROUTER_STATE_TREE, RSC } from \"../../client/components/app-router-headers\";\nimport { NEXT_QUERY_PARAM_PREFIX } from \"../../lib/constants\";\nimport { ensureInstrumentationRegistered } from \"./globals\";\nimport { RequestAsyncStorageWrapper } from \"../async-storage/request-async-storage-wrapper\";\nimport { requestAsyncStorage } from \"../../client/components/request-async-storage.external\";\nclass NextRequestHint extends NextRequest {\n constructor(params){\n super(params.input, params.init);\n this.sourcePage = params.page;\n }\n get request() {\n throw new PageSignatureError({\n page: this.sourcePage\n });\n }\n respondWith() {\n throw new PageSignatureError({\n page: this.sourcePage\n });\n }\n waitUntil() {\n throw new PageSignatureError({\n page: this.sourcePage\n });\n }\n}\nconst FLIGHT_PARAMETERS = [\n [\n RSC\n ],\n [\n NEXT_ROUTER_STATE_TREE\n ],\n [\n NEXT_ROUTER_PREFETCH\n ]\n];\nexport async function adapter(params) {\n await ensureInstrumentationRegistered();\n // TODO-APP: use explicit marker for this\n const isEdgeRendering = typeof self.__BUILD_MANIFEST !== \"undefined\";\n const prerenderManifest = typeof self.__PRERENDER_MANIFEST === \"string\" ? JSON.parse(self.__PRERENDER_MANIFEST) : undefined;\n params.request.url = normalizeRscPath(params.request.url, true);\n const requestUrl = new NextURL(params.request.url, {\n headers: params.request.headers,\n nextConfig: params.request.nextConfig\n });\n // Iterator uses an index to keep track of the current iteration. Because of deleting and appending below we can't just use the iterator.\n // Instead we use the keys before iteration.\n const keys = [\n ...requestUrl.searchParams.keys()\n ];\n for (const key of keys){\n const value = requestUrl.searchParams.getAll(key);\n if (key !== NEXT_QUERY_PARAM_PREFIX && key.startsWith(NEXT_QUERY_PARAM_PREFIX)) {\n const normalizedKey = key.substring(NEXT_QUERY_PARAM_PREFIX.length);\n requestUrl.searchParams.delete(normalizedKey);\n for (const val of value){\n requestUrl.searchParams.append(normalizedKey, val);\n }\n requestUrl.searchParams.delete(key);\n }\n }\n // Ensure users only see page requests, never data requests.\n const buildId = requestUrl.buildId;\n requestUrl.buildId = \"\";\n const isDataReq = params.request.headers[\"x-nextjs-data\"];\n if (isDataReq && requestUrl.pathname === \"/index\") {\n requestUrl.pathname = \"/\";\n }\n const requestHeaders = fromNodeOutgoingHttpHeaders(params.request.headers);\n const flightHeaders = new Map();\n // Parameters should only be stripped for middleware\n if (!isEdgeRendering) {\n for (const param of FLIGHT_PARAMETERS){\n const key = param.toString().toLowerCase();\n const value = requestHeaders.get(key);\n if (value) {\n flightHeaders.set(key, requestHeaders.get(key));\n requestHeaders.delete(key);\n }\n }\n }\n const normalizeUrl = process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE ? new URL(params.request.url) : requestUrl;\n const request = new NextRequestHint({\n page: params.page,\n // Strip internal query parameters off the request.\n input: stripInternalSearchParams(normalizeUrl, true).toString(),\n init: {\n body: params.request.body,\n geo: params.request.geo,\n headers: requestHeaders,\n ip: params.request.ip,\n method: params.request.method,\n nextConfig: params.request.nextConfig,\n signal: params.request.signal\n }\n });\n /**\n * This allows to identify the request as a data request. The user doesn't\n * need to know about this property neither use it. We add it for testing\n * purposes.\n */ if (isDataReq) {\n Object.defineProperty(request, \"__isData\", {\n enumerable: false,\n value: true\n });\n }\n if (!globalThis.__incrementalCache && params.IncrementalCache) {\n globalThis.__incrementalCache = new params.IncrementalCache({\n appDir: true,\n fetchCache: true,\n minimalMode: process.env.NODE_ENV !== \"development\",\n fetchCacheKeyPrefix: process.env.__NEXT_FETCH_CACHE_KEY_PREFIX,\n dev: process.env.NODE_ENV === \"development\",\n requestHeaders: params.request.headers,\n requestProtocol: \"https\",\n getPrerenderManifest: ()=>{\n return {\n version: -1,\n routes: {},\n dynamicRoutes: {},\n notFoundRoutes: [],\n preview: {\n previewModeId: \"development-id\"\n }\n };\n }\n });\n }\n const event = new NextFetchEvent({\n request,\n page: params.page\n });\n let response;\n let cookiesFromResponse;\n // we only care to make async storage available for middleware\n const isMiddleware = params.page === \"/middleware\" || params.page === \"/src/middleware\";\n if (isMiddleware) {\n response = await RequestAsyncStorageWrapper.wrap(requestAsyncStorage, {\n req: request,\n renderOpts: {\n onUpdateCookies: (cookies)=>{\n cookiesFromResponse = cookies;\n },\n // @ts-expect-error: TODO: investigate why previewProps isn't on RenderOpts\n previewProps: (prerenderManifest == null ? void 0 : prerenderManifest.preview) || {\n previewModeId: \"development-id\",\n previewModeEncryptionKey: \"\",\n previewModeSigningKey: \"\"\n }\n }\n }, ()=>params.handler(request, event));\n } else {\n response = await params.handler(request, event);\n }\n // check if response is a Response object\n if (response && !(response instanceof Response)) {\n throw new TypeError(\"Expected an instance of Response to be returned\");\n }\n if (response && cookiesFromResponse) {\n response.headers.set(\"set-cookie\", cookiesFromResponse);\n }\n /**\n * For rewrites we must always include the locale in the final pathname\n * so we re-create the NextURL forcing it to include it when the it is\n * an internal rewrite. Also we make sure the outgoing rewrite URL is\n * a data URL if the request was a data request.\n */ const rewrite = response == null ? void 0 : response.headers.get(\"x-middleware-rewrite\");\n if (response && rewrite) {\n const rewriteUrl = new NextURL(rewrite, {\n forceLocale: true,\n headers: params.request.headers,\n nextConfig: params.request.nextConfig\n });\n if (!process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE) {\n if (rewriteUrl.host === request.nextUrl.host) {\n rewriteUrl.buildId = buildId || rewriteUrl.buildId;\n response.headers.set(\"x-middleware-rewrite\", String(rewriteUrl));\n }\n }\n /**\n * When the request is a data request we must show if there was a rewrite\n * with an internal header so the client knows which component to load\n * from the data request.\n */ const relativizedRewrite = relativizeURL(String(rewriteUrl), String(requestUrl));\n if (isDataReq && // if the rewrite is external and external rewrite\n // resolving config is enabled don't add this header\n // so the upstream app can set it instead\n !(process.env.__NEXT_EXTERNAL_MIDDLEWARE_REWRITE_RESOLVE && relativizedRewrite.match(/http(s)?:\\/\\//))) {\n response.headers.set(\"x-nextjs-rewrite\", relativizedRewrite);\n }\n }\n /**\n * For redirects we will not include the locale in case when it is the\n * default and we must also make sure the outgoing URL is a data one if\n * the incoming request was a data request.\n */ const redirect = response == null ? void 0 : response.headers.get(\"Location\");\n if (response && redirect && !isEdgeRendering) {\n const redirectURL = new NextURL(redirect, {\n forceLocale: false,\n headers: params.request.headers,\n nextConfig: params.request.nextConfig\n });\n /**\n * Responses created from redirects have immutable headers so we have\n * to clone the response to be able to modify it.\n */ response = new Response(response.body, response);\n if (!process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE) {\n if (redirectURL.host === request.nextUrl.host) {\n redirectURL.buildId = buildId || redirectURL.buildId;\n response.headers.set(\"Location\", String(redirectURL));\n }\n }\n /**\n * When the request is a data request we can't use the location header as\n * it may end up with CORS error. Instead we map to an internal header so\n * the client knows the destination.\n */ if (isDataReq) {\n response.headers.delete(\"Location\");\n response.headers.set(\"x-nextjs-redirect\", relativizeURL(String(redirectURL), String(requestUrl)));\n }\n }\n const finalResponse = response ? response : NextResponse.next();\n // Flight headers are not overridable / removable so they are applied at the end.\n const middlewareOverrideHeaders = finalResponse.headers.get(\"x-middleware-override-headers\");\n const overwrittenHeaders = [];\n if (middlewareOverrideHeaders) {\n for (const [key, value] of flightHeaders){\n finalResponse.headers.set(`x-middleware-request-${key}`, value);\n overwrittenHeaders.push(key);\n }\n if (overwrittenHeaders.length > 0) {\n finalResponse.headers.set(\"x-middleware-override-headers\", middlewareOverrideHeaders + \",\" + overwrittenHeaders.join(\",\"));\n }\n }\n return {\n response: finalResponse,\n waitUntil: Promise.all(event[waitUntilSymbol]),\n fetchMetrics: request.fetchMetrics\n };\n}\n\n//# sourceMappingURL=adapter.js.map","// This file is for modularized imports for next/server to get fully-treeshaking.\nexport { NextResponse as default } from \"../spec-extension/response\";\n\n//# sourceMappingURL=next-response.js.map","export function encodeBase64(input) {\n if (Uint8Array.prototype.toBase64) {\n return input.toBase64();\n }\n const CHUNK_SIZE = 0x8000;\n const arr = [];\n for (let i = 0; i < input.length; i += CHUNK_SIZE) {\n arr.push(String.fromCharCode.apply(null, input.subarray(i, i + CHUNK_SIZE)));\n }\n return btoa(arr.join(''));\n}\nexport function decodeBase64(encoded) {\n if (Uint8Array.fromBase64) {\n return Uint8Array.fromBase64(encoded);\n }\n const binary = atob(encoded);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n}\n","export class JOSEError extends Error {\n static code = 'ERR_JOSE_GENERIC';\n code = 'ERR_JOSE_GENERIC';\n constructor(message, options) {\n super(message, options);\n this.name = this.constructor.name;\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\nexport class JWTClaimValidationFailed extends JOSEError {\n static code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n claim;\n reason;\n payload;\n constructor(message, payload, claim = 'unspecified', reason = 'unspecified') {\n super(message, { cause: { claim, reason, payload } });\n this.claim = claim;\n this.reason = reason;\n this.payload = payload;\n }\n}\nexport class JWTExpired extends JOSEError {\n static code = 'ERR_JWT_EXPIRED';\n code = 'ERR_JWT_EXPIRED';\n claim;\n reason;\n payload;\n constructor(message, payload, claim = 'unspecified', reason = 'unspecified') {\n super(message, { cause: { claim, reason, payload } });\n this.claim = claim;\n this.reason = reason;\n this.payload = payload;\n }\n}\nexport class JOSEAlgNotAllowed extends JOSEError {\n static code = 'ERR_JOSE_ALG_NOT_ALLOWED';\n code = 'ERR_JOSE_ALG_NOT_ALLOWED';\n}\nexport class JOSENotSupported extends JOSEError {\n static code = 'ERR_JOSE_NOT_SUPPORTED';\n code = 'ERR_JOSE_NOT_SUPPORTED';\n}\nexport class JWEDecryptionFailed extends JOSEError {\n static code = 'ERR_JWE_DECRYPTION_FAILED';\n code = 'ERR_JWE_DECRYPTION_FAILED';\n constructor(message = 'decryption operation failed', options) {\n super(message, options);\n }\n}\nexport class JWEInvalid extends JOSEError {\n static code = 'ERR_JWE_INVALID';\n code = 'ERR_JWE_INVALID';\n}\nexport class JWSInvalid extends JOSEError {\n static code = 'ERR_JWS_INVALID';\n code = 'ERR_JWS_INVALID';\n}\nexport class JWTInvalid extends JOSEError {\n static code = 'ERR_JWT_INVALID';\n code = 'ERR_JWT_INVALID';\n}\nexport class JWKInvalid extends JOSEError {\n static code = 'ERR_JWK_INVALID';\n code = 'ERR_JWK_INVALID';\n}\nexport class JWKSInvalid extends JOSEError {\n static code = 'ERR_JWKS_INVALID';\n code = 'ERR_JWKS_INVALID';\n}\nexport class JWKSNoMatchingKey extends JOSEError {\n static code = 'ERR_JWKS_NO_MATCHING_KEY';\n code = 'ERR_JWKS_NO_MATCHING_KEY';\n constructor(message = 'no applicable key found in the JSON Web Key Set', options) {\n super(message, options);\n }\n}\nexport class JWKSMultipleMatchingKeys extends JOSEError {\n [Symbol.asyncIterator];\n static code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n constructor(message = 'multiple matching keys found in the JSON Web Key Set', options) {\n super(message, options);\n }\n}\nexport class JWKSTimeout extends JOSEError {\n static code = 'ERR_JWKS_TIMEOUT';\n code = 'ERR_JWKS_TIMEOUT';\n constructor(message = 'request timed out', options) {\n super(message, options);\n }\n}\nexport class JWSSignatureVerificationFailed extends JOSEError {\n static code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n constructor(message = 'signature verification failed', options) {\n super(message, options);\n }\n}\n","import { invalidKeyInput } from './invalid_key_input.js';\nimport { encodeBase64, decodeBase64 } from '../lib/base64.js';\nimport { JOSENotSupported } from '../util/errors.js';\nimport { isCryptoKey, isKeyObject } from './is_key_like.js';\nconst formatPEM = (b64, descriptor) => {\n const newlined = (b64.match(/.{1,64}/g) || []).join('\\n');\n return `-----BEGIN ${descriptor}-----\\n${newlined}\\n-----END ${descriptor}-----`;\n};\nconst genericExport = async (keyType, keyFormat, key) => {\n if (isKeyObject(key)) {\n if (key.type !== keyType) {\n throw new TypeError(`key is not a ${keyType} key`);\n }\n return key.export({ format: 'pem', type: keyFormat });\n }\n if (!isCryptoKey(key)) {\n throw new TypeError(invalidKeyInput(key, 'CryptoKey', 'KeyObject'));\n }\n if (!key.extractable) {\n throw new TypeError('CryptoKey is not extractable');\n }\n if (key.type !== keyType) {\n throw new TypeError(`key is not a ${keyType} key`);\n }\n return formatPEM(encodeBase64(new Uint8Array(await crypto.subtle.exportKey(keyFormat, key))), `${keyType.toUpperCase()} KEY`);\n};\nexport const toSPKI = (key) => genericExport('public', 'spki', key);\nexport const toPKCS8 = (key) => genericExport('private', 'pkcs8', key);\nconst bytesEqual = (a, b) => {\n if (a.byteLength !== b.length)\n return false;\n for (let i = 0; i < a.byteLength; i++) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n};\nconst createASN1State = (data) => ({ data, pos: 0 });\nconst parseLength = (state) => {\n const first = state.data[state.pos++];\n if (first & 0x80) {\n const lengthOfLen = first & 0x7f;\n let length = 0;\n for (let i = 0; i < lengthOfLen; i++) {\n length = (length << 8) | state.data[state.pos++];\n }\n return length;\n }\n return first;\n};\nconst skipElement = (state, count = 1) => {\n if (count <= 0)\n return;\n state.pos++;\n const length = parseLength(state);\n state.pos += length;\n if (count > 1) {\n skipElement(state, count - 1);\n }\n};\nconst expectTag = (state, expectedTag, errorMessage) => {\n if (state.data[state.pos++] !== expectedTag) {\n throw new Error(errorMessage);\n }\n};\nconst getSubarray = (state, length) => {\n const result = state.data.subarray(state.pos, state.pos + length);\n state.pos += length;\n return result;\n};\nconst parseAlgorithmOID = (state) => {\n expectTag(state, 0x06, 'Expected algorithm OID');\n const oidLen = parseLength(state);\n return getSubarray(state, oidLen);\n};\nfunction parsePKCS8Header(state) {\n expectTag(state, 0x30, 'Invalid PKCS#8 structure');\n parseLength(state);\n expectTag(state, 0x02, 'Expected version field');\n const verLen = parseLength(state);\n state.pos += verLen;\n expectTag(state, 0x30, 'Expected algorithm identifier');\n const algIdLen = parseLength(state);\n const algIdStart = state.pos;\n return { algIdStart, algIdLength: algIdLen };\n}\nfunction parseSPKIHeader(state) {\n expectTag(state, 0x30, 'Invalid SPKI structure');\n parseLength(state);\n expectTag(state, 0x30, 'Expected algorithm identifier');\n const algIdLen = parseLength(state);\n const algIdStart = state.pos;\n return { algIdStart, algIdLength: algIdLen };\n}\nconst parseECAlgorithmIdentifier = (state) => {\n const algOid = parseAlgorithmOID(state);\n if (bytesEqual(algOid, [0x2b, 0x65, 0x6e])) {\n return 'X25519';\n }\n if (!bytesEqual(algOid, [0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01])) {\n throw new Error('Unsupported key algorithm');\n }\n expectTag(state, 0x06, 'Expected curve OID');\n const curveOidLen = parseLength(state);\n const curveOid = getSubarray(state, curveOidLen);\n for (const { name, oid } of [\n { name: 'P-256', oid: [0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07] },\n { name: 'P-384', oid: [0x2b, 0x81, 0x04, 0x00, 0x22] },\n { name: 'P-521', oid: [0x2b, 0x81, 0x04, 0x00, 0x23] },\n ]) {\n if (bytesEqual(curveOid, oid)) {\n return name;\n }\n }\n throw new Error('Unsupported named curve');\n};\nconst genericImport = async (keyFormat, keyData, alg, options) => {\n let algorithm;\n let keyUsages;\n const isPublic = keyFormat === 'spki';\n const getSigUsages = () => (isPublic ? ['verify'] : ['sign']);\n const getEncUsages = () => isPublic ? ['encrypt', 'wrapKey'] : ['decrypt', 'unwrapKey'];\n switch (alg) {\n case 'PS256':\n case 'PS384':\n case 'PS512':\n algorithm = { name: 'RSA-PSS', hash: `SHA-${alg.slice(-3)}` };\n keyUsages = getSigUsages();\n break;\n case 'RS256':\n case 'RS384':\n case 'RS512':\n algorithm = { name: 'RSASSA-PKCS1-v1_5', hash: `SHA-${alg.slice(-3)}` };\n keyUsages = getSigUsages();\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512':\n algorithm = {\n name: 'RSA-OAEP',\n hash: `SHA-${parseInt(alg.slice(-3), 10) || 1}`,\n };\n keyUsages = getEncUsages();\n break;\n case 'ES256':\n case 'ES384':\n case 'ES512': {\n const curveMap = { ES256: 'P-256', ES384: 'P-384', ES512: 'P-521' };\n algorithm = { name: 'ECDSA', namedCurve: curveMap[alg] };\n keyUsages = getSigUsages();\n break;\n }\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW': {\n try {\n const namedCurve = options.getNamedCurve(keyData);\n algorithm = namedCurve === 'X25519' ? { name: 'X25519' } : { name: 'ECDH', namedCurve };\n }\n catch (cause) {\n throw new JOSENotSupported('Invalid or unsupported key format');\n }\n keyUsages = isPublic ? [] : ['deriveBits'];\n break;\n }\n case 'Ed25519':\n case 'EdDSA':\n algorithm = { name: 'Ed25519' };\n keyUsages = getSigUsages();\n break;\n case 'ML-DSA-44':\n case 'ML-DSA-65':\n case 'ML-DSA-87':\n algorithm = { name: alg };\n keyUsages = getSigUsages();\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported \"alg\" (Algorithm) value');\n }\n return crypto.subtle.importKey(keyFormat, keyData, algorithm, options?.extractable ?? (isPublic ? true : false), keyUsages);\n};\nconst processPEMData = (pem, pattern) => {\n return decodeBase64(pem.replace(pattern, ''));\n};\nexport const fromPKCS8 = (pem, alg, options) => {\n const keyData = processPEMData(pem, /(?:-----(?:BEGIN|END) PRIVATE KEY-----|\\s)/g);\n let opts = options;\n if (alg?.startsWith?.('ECDH-ES')) {\n opts ||= {};\n opts.getNamedCurve = (keyData) => {\n const state = createASN1State(keyData);\n parsePKCS8Header(state);\n return parseECAlgorithmIdentifier(state);\n };\n }\n return genericImport('pkcs8', keyData, alg, opts);\n};\nexport const fromSPKI = (pem, alg, options) => {\n const keyData = processPEMData(pem, /(?:-----(?:BEGIN|END) PUBLIC KEY-----|\\s)/g);\n let opts = options;\n if (alg?.startsWith?.('ECDH-ES')) {\n opts ||= {};\n opts.getNamedCurve = (keyData) => {\n const state = createASN1State(keyData);\n parseSPKIHeader(state);\n return parseECAlgorithmIdentifier(state);\n };\n }\n return genericImport('spki', keyData, alg, opts);\n};\nfunction spkiFromX509(buf) {\n const state = createASN1State(buf);\n expectTag(state, 0x30, 'Invalid certificate structure');\n parseLength(state);\n expectTag(state, 0x30, 'Invalid tbsCertificate structure');\n parseLength(state);\n if (buf[state.pos] === 0xa0) {\n skipElement(state, 6);\n }\n else {\n skipElement(state, 5);\n }\n const spkiStart = state.pos;\n expectTag(state, 0x30, 'Invalid SPKI structure');\n const spkiContentLen = parseLength(state);\n return buf.subarray(spkiStart, spkiStart + spkiContentLen + (state.pos - spkiStart));\n}\nfunction extractX509SPKI(x509) {\n const derBytes = processPEMData(x509, /(?:-----(?:BEGIN|END) CERTIFICATE-----|\\s)/g);\n return spkiFromX509(derBytes);\n}\nexport const fromX509 = (pem, alg, options) => {\n let spki;\n try {\n spki = extractX509SPKI(pem);\n }\n catch (cause) {\n throw new TypeError('Failed to parse the X.509 certificate', { cause });\n }\n return fromSPKI(formatPEM(encodeBase64(spki), 'PUBLIC KEY'), alg, options);\n};\n","import { decode as decodeBase64URL } from '../util/base64url.js';\nimport { fromSPKI, fromPKCS8, fromX509 } from '../lib/asn1.js';\nimport { jwkToKey } from '../lib/jwk_to_key.js';\nimport { JOSENotSupported } from '../util/errors.js';\nimport { isObject } from '../lib/type_checks.js';\nexport async function importSPKI(spki, alg, options) {\n if (typeof spki !== 'string' || spki.indexOf('-----BEGIN PUBLIC KEY-----') !== 0) {\n throw new TypeError('\"spki\" must be SPKI formatted string');\n }\n return fromSPKI(spki, alg, options);\n}\nexport async function importX509(x509, alg, options) {\n if (typeof x509 !== 'string' || x509.indexOf('-----BEGIN CERTIFICATE-----') !== 0) {\n throw new TypeError('\"x509\" must be X.509 formatted string');\n }\n return fromX509(x509, alg, options);\n}\nexport async function importPKCS8(pkcs8, alg, options) {\n if (typeof pkcs8 !== 'string' || pkcs8.indexOf('-----BEGIN PRIVATE KEY-----') !== 0) {\n throw new TypeError('\"pkcs8\" must be PKCS#8 formatted string');\n }\n return fromPKCS8(pkcs8, alg, options);\n}\nexport async function importJWK(jwk, alg, options) {\n if (!isObject(jwk)) {\n throw new TypeError('JWK must be an object');\n }\n let ext;\n alg ??= jwk.alg;\n ext ??= options?.extractable ?? jwk.ext;\n switch (jwk.kty) {\n case 'oct':\n if (typeof jwk.k !== 'string' || !jwk.k) {\n throw new TypeError('missing \"k\" (Key Value) Parameter value');\n }\n return decodeBase64URL(jwk.k);\n case 'RSA':\n if ('oth' in jwk && jwk.oth !== undefined) {\n throw new JOSENotSupported('RSA JWK \"oth\" (Other Primes Info) Parameter value is not supported');\n }\n return jwkToKey({ ...jwk, alg, ext });\n case 'AKP': {\n if (typeof jwk.alg !== 'string' || !jwk.alg) {\n throw new TypeError('missing \"alg\" (Algorithm) Parameter value');\n }\n if (alg !== undefined && alg !== jwk.alg) {\n throw new TypeError('JWK alg and alg option value mismatch');\n }\n return jwkToKey({ ...jwk, ext });\n }\n case 'EC':\n case 'OKP':\n return jwkToKey({ ...jwk, alg, ext });\n default:\n throw new JOSENotSupported('Unsupported \"kty\" (Key Type) Parameter value');\n }\n}\n","export const encoder = new TextEncoder();\nexport const decoder = new TextDecoder();\nconst MAX_INT32 = 2 ** 32;\nexport function concat(...buffers) {\n const size = buffers.reduce((acc, { length }) => acc + length, 0);\n const buf = new Uint8Array(size);\n let i = 0;\n for (const buffer of buffers) {\n buf.set(buffer, i);\n i += buffer.length;\n }\n return buf;\n}\nfunction writeUInt32BE(buf, value, offset) {\n if (value < 0 || value >= MAX_INT32) {\n throw new RangeError(`value must be >= 0 and <= ${MAX_INT32 - 1}. Received ${value}`);\n }\n buf.set([value >>> 24, value >>> 16, value >>> 8, value & 0xff], offset);\n}\nexport function uint64be(value) {\n const high = Math.floor(value / MAX_INT32);\n const low = value % MAX_INT32;\n const buf = new Uint8Array(8);\n writeUInt32BE(buf, high, 0);\n writeUInt32BE(buf, low, 4);\n return buf;\n}\nexport function uint32be(value) {\n const buf = new Uint8Array(4);\n writeUInt32BE(buf, value);\n return buf;\n}\nexport function encode(string) {\n const bytes = new Uint8Array(string.length);\n for (let i = 0; i < string.length; i++) {\n const code = string.charCodeAt(i);\n if (code > 127) {\n throw new TypeError('non-ASCII string encountered in encode()');\n }\n bytes[i] = code;\n }\n return bytes;\n}\n","import { encoder, decoder } from '../lib/buffer_utils.js';\nimport { encodeBase64, decodeBase64 } from '../lib/base64.js';\nexport function decode(input) {\n if (Uint8Array.fromBase64) {\n return Uint8Array.fromBase64(typeof input === 'string' ? input : decoder.decode(input), {\n alphabet: 'base64url',\n });\n }\n let encoded = input;\n if (encoded instanceof Uint8Array) {\n encoded = decoder.decode(encoded);\n }\n encoded = encoded.replace(/-/g, '+').replace(/_/g, '/');\n try {\n return decodeBase64(encoded);\n }\n catch {\n throw new TypeError('The input to be decoded is not correctly encoded.');\n }\n}\nexport function encode(input) {\n let unencoded = input;\n if (typeof unencoded === 'string') {\n unencoded = encoder.encode(unencoded);\n }\n if (Uint8Array.prototype.toBase64) {\n return unencoded.toBase64({ alphabet: 'base64url', omitPadding: true });\n }\n return encodeBase64(unencoded).replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n}\n","const unusable = (name, prop = 'algorithm.name') => new TypeError(`CryptoKey does not support this operation, its ${prop} must be ${name}`);\nconst isAlgorithm = (algorithm, name) => algorithm.name === name;\nfunction getHashLength(hash) {\n return parseInt(hash.name.slice(4), 10);\n}\nfunction checkHashLength(algorithm, expected) {\n const actual = getHashLength(algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n}\nfunction getNamedCurve(alg) {\n switch (alg) {\n case 'ES256':\n return 'P-256';\n case 'ES384':\n return 'P-384';\n case 'ES512':\n return 'P-521';\n default:\n throw new Error('unreachable');\n }\n}\nfunction checkUsage(key, usage) {\n if (usage && !key.usages.includes(usage)) {\n throw new TypeError(`CryptoKey does not support this operation, its usages must include ${usage}.`);\n }\n}\nexport function checkSigCryptoKey(key, alg, usage) {\n switch (alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512': {\n if (!isAlgorithm(key.algorithm, 'HMAC'))\n throw unusable('HMAC');\n checkHashLength(key.algorithm, parseInt(alg.slice(2), 10));\n break;\n }\n case 'RS256':\n case 'RS384':\n case 'RS512': {\n if (!isAlgorithm(key.algorithm, 'RSASSA-PKCS1-v1_5'))\n throw unusable('RSASSA-PKCS1-v1_5');\n checkHashLength(key.algorithm, parseInt(alg.slice(2), 10));\n break;\n }\n case 'PS256':\n case 'PS384':\n case 'PS512': {\n if (!isAlgorithm(key.algorithm, 'RSA-PSS'))\n throw unusable('RSA-PSS');\n checkHashLength(key.algorithm, parseInt(alg.slice(2), 10));\n break;\n }\n case 'Ed25519':\n case 'EdDSA': {\n if (!isAlgorithm(key.algorithm, 'Ed25519'))\n throw unusable('Ed25519');\n break;\n }\n case 'ML-DSA-44':\n case 'ML-DSA-65':\n case 'ML-DSA-87': {\n if (!isAlgorithm(key.algorithm, alg))\n throw unusable(alg);\n break;\n }\n case 'ES256':\n case 'ES384':\n case 'ES512': {\n if (!isAlgorithm(key.algorithm, 'ECDSA'))\n throw unusable('ECDSA');\n const expected = getNamedCurve(alg);\n const actual = key.algorithm.namedCurve;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.namedCurve');\n break;\n }\n default:\n throw new TypeError('CryptoKey does not support this operation');\n }\n checkUsage(key, usage);\n}\nexport function checkEncCryptoKey(key, alg, usage) {\n switch (alg) {\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM': {\n if (!isAlgorithm(key.algorithm, 'AES-GCM'))\n throw unusable('AES-GCM');\n const expected = parseInt(alg.slice(1, 4), 10);\n const actual = key.algorithm.length;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.length');\n break;\n }\n case 'A128KW':\n case 'A192KW':\n case 'A256KW': {\n if (!isAlgorithm(key.algorithm, 'AES-KW'))\n throw unusable('AES-KW');\n const expected = parseInt(alg.slice(1, 4), 10);\n const actual = key.algorithm.length;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.length');\n break;\n }\n case 'ECDH': {\n switch (key.algorithm.name) {\n case 'ECDH':\n case 'X25519':\n break;\n default:\n throw unusable('ECDH or X25519');\n }\n break;\n }\n case 'PBES2-HS256+A128KW':\n case 'PBES2-HS384+A192KW':\n case 'PBES2-HS512+A256KW':\n if (!isAlgorithm(key.algorithm, 'PBKDF2'))\n throw unusable('PBKDF2');\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512': {\n if (!isAlgorithm(key.algorithm, 'RSA-OAEP'))\n throw unusable('RSA-OAEP');\n checkHashLength(key.algorithm, parseInt(alg.slice(9), 10) || 1);\n break;\n }\n default:\n throw new TypeError('CryptoKey does not support this operation');\n }\n checkUsage(key, usage);\n}\n","function message(msg, actual, ...types) {\n types = types.filter(Boolean);\n if (types.length > 2) {\n const last = types.pop();\n msg += `one of type ${types.join(', ')}, or ${last}.`;\n }\n else if (types.length === 2) {\n msg += `one of type ${types[0]} or ${types[1]}.`;\n }\n else {\n msg += `of type ${types[0]}.`;\n }\n if (actual == null) {\n msg += ` Received ${actual}`;\n }\n else if (typeof actual === 'function' && actual.name) {\n msg += ` Received function ${actual.name}`;\n }\n else if (typeof actual === 'object' && actual != null) {\n if (actual.constructor?.name) {\n msg += ` Received an instance of ${actual.constructor.name}`;\n }\n }\n return msg;\n}\nexport const invalidKeyInput = (actual, ...types) => message('Key must be ', actual, ...types);\nexport const withAlg = (alg, actual, ...types) => message(`Key for the ${alg} algorithm must be `, actual, ...types);\n","import { JOSENotSupported } from '../util/errors.js';\nimport { checkSigCryptoKey } from './crypto_key.js';\nimport { invalidKeyInput } from './invalid_key_input.js';\nexport function checkKeyLength(alg, key) {\n if (alg.startsWith('RS') || alg.startsWith('PS')) {\n const { modulusLength } = key.algorithm;\n if (typeof modulusLength !== 'number' || modulusLength < 2048) {\n throw new TypeError(`${alg} requires key modulusLength to be 2048 bits or larger`);\n }\n }\n}\nfunction subtleAlgorithm(alg, algorithm) {\n const hash = `SHA-${alg.slice(-3)}`;\n switch (alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512':\n return { hash, name: 'HMAC' };\n case 'PS256':\n case 'PS384':\n case 'PS512':\n return { hash, name: 'RSA-PSS', saltLength: parseInt(alg.slice(-3), 10) >> 3 };\n case 'RS256':\n case 'RS384':\n case 'RS512':\n return { hash, name: 'RSASSA-PKCS1-v1_5' };\n case 'ES256':\n case 'ES384':\n case 'ES512':\n return { hash, name: 'ECDSA', namedCurve: algorithm.namedCurve };\n case 'Ed25519':\n case 'EdDSA':\n return { name: 'Ed25519' };\n case 'ML-DSA-44':\n case 'ML-DSA-65':\n case 'ML-DSA-87':\n return { name: alg };\n default:\n throw new JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n }\n}\nasync function getSigKey(alg, key, usage) {\n if (key instanceof Uint8Array) {\n if (!alg.startsWith('HS')) {\n throw new TypeError(invalidKeyInput(key, 'CryptoKey', 'KeyObject', 'JSON Web Key'));\n }\n return crypto.subtle.importKey('raw', key, { hash: `SHA-${alg.slice(-3)}`, name: 'HMAC' }, false, [usage]);\n }\n checkSigCryptoKey(key, alg, usage);\n return key;\n}\nexport async function sign(alg, key, data) {\n const cryptoKey = await getSigKey(alg, key, 'sign');\n checkKeyLength(alg, cryptoKey);\n const signature = await crypto.subtle.sign(subtleAlgorithm(alg, cryptoKey.algorithm), cryptoKey, data);\n return new Uint8Array(signature);\n}\nexport async function verify(alg, key, signature, data) {\n const cryptoKey = await getSigKey(alg, key, 'verify');\n checkKeyLength(alg, cryptoKey);\n const algorithm = subtleAlgorithm(alg, cryptoKey.algorithm);\n try {\n return await crypto.subtle.verify(algorithm, cryptoKey, signature, data);\n }\n catch {\n return false;\n }\n}\n","import { decode } from '../util/base64url.js';\nexport const unprotected = Symbol();\nexport function assertNotSet(value, name) {\n if (value) {\n throw new TypeError(`${name} can only be called once`);\n }\n}\nexport function decodeBase64url(value, label, ErrorClass) {\n try {\n return decode(value);\n }\n catch {\n throw new ErrorClass(`Failed to base64url decode the ${label}`);\n }\n}\nexport async function digest(algorithm, data) {\n const subtleDigest = `SHA-${algorithm.slice(-3)}`;\n return new Uint8Array(await crypto.subtle.digest(subtleDigest, data));\n}\n","const isObjectLike = (value) => typeof value === 'object' && value !== null;\nexport function isObject(input) {\n if (!isObjectLike(input) || Object.prototype.toString.call(input) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(input) === null) {\n return true;\n }\n let proto = input;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(input) === proto;\n}\nexport function isDisjoint(...headers) {\n const sources = headers.filter(Boolean);\n if (sources.length === 0 || sources.length === 1) {\n return true;\n }\n let acc;\n for (const header of sources) {\n const parameters = Object.keys(header);\n if (!acc || acc.size === 0) {\n acc = new Set(parameters);\n continue;\n }\n for (const parameter of parameters) {\n if (acc.has(parameter)) {\n return false;\n }\n acc.add(parameter);\n }\n }\n return true;\n}\nexport const isJWK = (key) => isObject(key) && typeof key.kty === 'string';\nexport const isPrivateJWK = (key) => key.kty !== 'oct' &&\n ((key.kty === 'AKP' && typeof key.priv === 'string') || typeof key.d === 'string');\nexport const isPublicJWK = (key) => key.kty !== 'oct' && key.d === undefined && key.priv === undefined;\nexport const isSecretJWK = (key) => key.kty === 'oct' && typeof key.k === 'string';\n","export function assertCryptoKey(key) {\n if (!isCryptoKey(key)) {\n throw new Error('CryptoKey instance expected');\n }\n}\nexport const isCryptoKey = (key) => {\n if (key?.[Symbol.toStringTag] === 'CryptoKey')\n return true;\n try {\n return key instanceof CryptoKey;\n }\n catch {\n return false;\n }\n};\nexport const isKeyObject = (key) => key?.[Symbol.toStringTag] === 'KeyObject';\nexport const isKeyLike = (key) => isCryptoKey(key) || isKeyObject(key);\n","import { withAlg as invalidKeyInput } from './invalid_key_input.js';\nimport { isKeyLike } from './is_key_like.js';\nimport * as jwk from './type_checks.js';\nconst tag = (key) => key?.[Symbol.toStringTag];\nconst jwkMatchesOp = (alg, key, usage) => {\n if (key.use !== undefined) {\n let expected;\n switch (usage) {\n case 'sign':\n case 'verify':\n expected = 'sig';\n break;\n case 'encrypt':\n case 'decrypt':\n expected = 'enc';\n break;\n }\n if (key.use !== expected) {\n throw new TypeError(`Invalid key for this operation, its \"use\" must be \"${expected}\" when present`);\n }\n }\n if (key.alg !== undefined && key.alg !== alg) {\n throw new TypeError(`Invalid key for this operation, its \"alg\" must be \"${alg}\" when present`);\n }\n if (Array.isArray(key.key_ops)) {\n let expectedKeyOp;\n switch (true) {\n case usage === 'sign' || usage === 'verify':\n case alg === 'dir':\n case alg.includes('CBC-HS'):\n expectedKeyOp = usage;\n break;\n case alg.startsWith('PBES2'):\n expectedKeyOp = 'deriveBits';\n break;\n case /^A\\d{3}(?:GCM)?(?:KW)?$/.test(alg):\n if (!alg.includes('GCM') && alg.endsWith('KW')) {\n expectedKeyOp = usage === 'encrypt' ? 'wrapKey' : 'unwrapKey';\n }\n else {\n expectedKeyOp = usage;\n }\n break;\n case usage === 'encrypt' && alg.startsWith('RSA'):\n expectedKeyOp = 'wrapKey';\n break;\n case usage === 'decrypt':\n expectedKeyOp = alg.startsWith('RSA') ? 'unwrapKey' : 'deriveBits';\n break;\n }\n if (expectedKeyOp && key.key_ops?.includes?.(expectedKeyOp) === false) {\n throw new TypeError(`Invalid key for this operation, its \"key_ops\" must include \"${expectedKeyOp}\" when present`);\n }\n }\n return true;\n};\nconst symmetricTypeCheck = (alg, key, usage) => {\n if (key instanceof Uint8Array)\n return;\n if (jwk.isJWK(key)) {\n if (jwk.isSecretJWK(key) && jwkMatchesOp(alg, key, usage))\n return;\n throw new TypeError(`JSON Web Key for symmetric algorithms must have JWK \"kty\" (Key Type) equal to \"oct\" and the JWK \"k\" (Key Value) present`);\n }\n if (!isKeyLike(key)) {\n throw new TypeError(invalidKeyInput(alg, key, 'CryptoKey', 'KeyObject', 'JSON Web Key', 'Uint8Array'));\n }\n if (key.type !== 'secret') {\n throw new TypeError(`${tag(key)} instances for symmetric algorithms must be of type \"secret\"`);\n }\n};\nconst asymmetricTypeCheck = (alg, key, usage) => {\n if (jwk.isJWK(key)) {\n switch (usage) {\n case 'decrypt':\n case 'sign':\n if (jwk.isPrivateJWK(key) && jwkMatchesOp(alg, key, usage))\n return;\n throw new TypeError(`JSON Web Key for this operation must be a private JWK`);\n case 'encrypt':\n case 'verify':\n if (jwk.isPublicJWK(key) && jwkMatchesOp(alg, key, usage))\n return;\n throw new TypeError(`JSON Web Key for this operation must be a public JWK`);\n }\n }\n if (!isKeyLike(key)) {\n throw new TypeError(invalidKeyInput(alg, key, 'CryptoKey', 'KeyObject', 'JSON Web Key'));\n }\n if (key.type === 'secret') {\n throw new TypeError(`${tag(key)} instances for asymmetric algorithms must not be of type \"secret\"`);\n }\n if (key.type === 'public') {\n switch (usage) {\n case 'sign':\n throw new TypeError(`${tag(key)} instances for asymmetric algorithm signing must be of type \"private\"`);\n case 'decrypt':\n throw new TypeError(`${tag(key)} instances for asymmetric algorithm decryption must be of type \"private\"`);\n }\n }\n if (key.type === 'private') {\n switch (usage) {\n case 'verify':\n throw new TypeError(`${tag(key)} instances for asymmetric algorithm verifying must be of type \"public\"`);\n case 'encrypt':\n throw new TypeError(`${tag(key)} instances for asymmetric algorithm encryption must be of type \"public\"`);\n }\n }\n};\nexport function checkKeyType(alg, key, usage) {\n switch (alg.substring(0, 2)) {\n case 'A1':\n case 'A2':\n case 'di':\n case 'HS':\n case 'PB':\n symmetricTypeCheck(alg, key, usage);\n break;\n default:\n asymmetricTypeCheck(alg, key, usage);\n }\n}\n","import { JOSENotSupported, JWEInvalid, JWSInvalid } from '../util/errors.js';\nexport function validateCrit(Err, recognizedDefault, recognizedOption, protectedHeader, joseHeader) {\n if (joseHeader.crit !== undefined && protectedHeader?.crit === undefined) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be integrity protected');\n }\n if (!protectedHeader || protectedHeader.crit === undefined) {\n return new Set();\n }\n if (!Array.isArray(protectedHeader.crit) ||\n protectedHeader.crit.length === 0 ||\n protectedHeader.crit.some((input) => typeof input !== 'string' || input.length === 0)) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be an array of non-empty strings when present');\n }\n let recognized;\n if (recognizedOption !== undefined) {\n recognized = new Map([...Object.entries(recognizedOption), ...recognizedDefault.entries()]);\n }\n else {\n recognized = recognizedDefault;\n }\n for (const parameter of protectedHeader.crit) {\n if (!recognized.has(parameter)) {\n throw new JOSENotSupported(`Extension Header Parameter \"${parameter}\" is not recognized`);\n }\n if (joseHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" is missing`);\n }\n if (recognized.get(parameter) && protectedHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" MUST be integrity protected`);\n }\n }\n return new Set(protectedHeader.crit);\n}\n","export function validateAlgorithms(option, algorithms) {\n if (algorithms !== undefined &&\n (!Array.isArray(algorithms) || algorithms.some((s) => typeof s !== 'string'))) {\n throw new TypeError(`\"${option}\" option must be an array of strings`);\n }\n if (!algorithms) {\n return undefined;\n }\n return new Set(algorithms);\n}\n","import { JOSENotSupported } from '../util/errors.js';\nconst unsupportedAlg = 'Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value';\nfunction subtleMapping(jwk) {\n let algorithm;\n let keyUsages;\n switch (jwk.kty) {\n case 'AKP': {\n switch (jwk.alg) {\n case 'ML-DSA-44':\n case 'ML-DSA-65':\n case 'ML-DSA-87':\n algorithm = { name: jwk.alg };\n keyUsages = jwk.priv ? ['sign'] : ['verify'];\n break;\n default:\n throw new JOSENotSupported(unsupportedAlg);\n }\n break;\n }\n case 'RSA': {\n switch (jwk.alg) {\n case 'PS256':\n case 'PS384':\n case 'PS512':\n algorithm = { name: 'RSA-PSS', hash: `SHA-${jwk.alg.slice(-3)}` };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'RS256':\n case 'RS384':\n case 'RS512':\n algorithm = { name: 'RSASSA-PKCS1-v1_5', hash: `SHA-${jwk.alg.slice(-3)}` };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512':\n algorithm = {\n name: 'RSA-OAEP',\n hash: `SHA-${parseInt(jwk.alg.slice(-3), 10) || 1}`,\n };\n keyUsages = jwk.d ? ['decrypt', 'unwrapKey'] : ['encrypt', 'wrapKey'];\n break;\n default:\n throw new JOSENotSupported(unsupportedAlg);\n }\n break;\n }\n case 'EC': {\n switch (jwk.alg) {\n case 'ES256':\n case 'ES384':\n case 'ES512':\n algorithm = {\n name: 'ECDSA',\n namedCurve: { ES256: 'P-256', ES384: 'P-384', ES512: 'P-521' }[jwk.alg],\n };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW':\n algorithm = { name: 'ECDH', namedCurve: jwk.crv };\n keyUsages = jwk.d ? ['deriveBits'] : [];\n break;\n default:\n throw new JOSENotSupported(unsupportedAlg);\n }\n break;\n }\n case 'OKP': {\n switch (jwk.alg) {\n case 'Ed25519':\n case 'EdDSA':\n algorithm = { name: 'Ed25519' };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW':\n algorithm = { name: jwk.crv };\n keyUsages = jwk.d ? ['deriveBits'] : [];\n break;\n default:\n throw new JOSENotSupported(unsupportedAlg);\n }\n break;\n }\n default:\n throw new JOSENotSupported('Invalid or unsupported JWK \"kty\" (Key Type) Parameter value');\n }\n return { algorithm, keyUsages };\n}\nexport async function jwkToKey(jwk) {\n if (!jwk.alg) {\n throw new TypeError('\"alg\" argument is required when \"jwk.alg\" is not present');\n }\n const { algorithm, keyUsages } = subtleMapping(jwk);\n const keyData = { ...jwk };\n if (keyData.kty !== 'AKP') {\n delete keyData.alg;\n }\n delete keyData.use;\n return crypto.subtle.importKey('jwk', keyData, algorithm, jwk.ext ?? (jwk.d || jwk.priv ? false : true), jwk.key_ops ?? keyUsages);\n}\n","import { isJWK } from './type_checks.js';\nimport { decode } from '../util/base64url.js';\nimport { jwkToKey } from './jwk_to_key.js';\nimport { isCryptoKey, isKeyObject } from './is_key_like.js';\nconst unusableForAlg = 'given KeyObject instance cannot be used for this algorithm';\nlet cache;\nconst handleJWK = async (key, jwk, alg, freeze = false) => {\n cache ||= new WeakMap();\n let cached = cache.get(key);\n if (cached?.[alg]) {\n return cached[alg];\n }\n const cryptoKey = await jwkToKey({ ...jwk, alg });\n if (freeze)\n Object.freeze(key);\n if (!cached) {\n cache.set(key, { [alg]: cryptoKey });\n }\n else {\n cached[alg] = cryptoKey;\n }\n return cryptoKey;\n};\nconst handleKeyObject = (keyObject, alg) => {\n cache ||= new WeakMap();\n let cached = cache.get(keyObject);\n if (cached?.[alg]) {\n return cached[alg];\n }\n const isPublic = keyObject.type === 'public';\n const extractable = isPublic ? true : false;\n let cryptoKey;\n if (keyObject.asymmetricKeyType === 'x25519') {\n switch (alg) {\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW':\n break;\n default:\n throw new TypeError(unusableForAlg);\n }\n cryptoKey = keyObject.toCryptoKey(keyObject.asymmetricKeyType, extractable, isPublic ? [] : ['deriveBits']);\n }\n if (keyObject.asymmetricKeyType === 'ed25519') {\n if (alg !== 'EdDSA' && alg !== 'Ed25519') {\n throw new TypeError(unusableForAlg);\n }\n cryptoKey = keyObject.toCryptoKey(keyObject.asymmetricKeyType, extractable, [\n isPublic ? 'verify' : 'sign',\n ]);\n }\n switch (keyObject.asymmetricKeyType) {\n case 'ml-dsa-44':\n case 'ml-dsa-65':\n case 'ml-dsa-87': {\n if (alg !== keyObject.asymmetricKeyType.toUpperCase()) {\n throw new TypeError(unusableForAlg);\n }\n cryptoKey = keyObject.toCryptoKey(keyObject.asymmetricKeyType, extractable, [\n isPublic ? 'verify' : 'sign',\n ]);\n }\n }\n if (keyObject.asymmetricKeyType === 'rsa') {\n let hash;\n switch (alg) {\n case 'RSA-OAEP':\n hash = 'SHA-1';\n break;\n case 'RS256':\n case 'PS256':\n case 'RSA-OAEP-256':\n hash = 'SHA-256';\n break;\n case 'RS384':\n case 'PS384':\n case 'RSA-OAEP-384':\n hash = 'SHA-384';\n break;\n case 'RS512':\n case 'PS512':\n case 'RSA-OAEP-512':\n hash = 'SHA-512';\n break;\n default:\n throw new TypeError(unusableForAlg);\n }\n if (alg.startsWith('RSA-OAEP')) {\n return keyObject.toCryptoKey({\n name: 'RSA-OAEP',\n hash,\n }, extractable, isPublic ? ['encrypt'] : ['decrypt']);\n }\n cryptoKey = keyObject.toCryptoKey({\n name: alg.startsWith('PS') ? 'RSA-PSS' : 'RSASSA-PKCS1-v1_5',\n hash,\n }, extractable, [isPublic ? 'verify' : 'sign']);\n }\n if (keyObject.asymmetricKeyType === 'ec') {\n const nist = new Map([\n ['prime256v1', 'P-256'],\n ['secp384r1', 'P-384'],\n ['secp521r1', 'P-521'],\n ]);\n const namedCurve = nist.get(keyObject.asymmetricKeyDetails?.namedCurve);\n if (!namedCurve) {\n throw new TypeError(unusableForAlg);\n }\n const expectedCurve = { ES256: 'P-256', ES384: 'P-384', ES512: 'P-521' };\n if (expectedCurve[alg] && namedCurve === expectedCurve[alg]) {\n cryptoKey = keyObject.toCryptoKey({\n name: 'ECDSA',\n namedCurve,\n }, extractable, [isPublic ? 'verify' : 'sign']);\n }\n if (alg.startsWith('ECDH-ES')) {\n cryptoKey = keyObject.toCryptoKey({\n name: 'ECDH',\n namedCurve,\n }, extractable, isPublic ? [] : ['deriveBits']);\n }\n }\n if (!cryptoKey) {\n throw new TypeError(unusableForAlg);\n }\n if (!cached) {\n cache.set(keyObject, { [alg]: cryptoKey });\n }\n else {\n cached[alg] = cryptoKey;\n }\n return cryptoKey;\n};\nexport async function normalizeKey(key, alg) {\n if (key instanceof Uint8Array) {\n return key;\n }\n if (isCryptoKey(key)) {\n return key;\n }\n if (isKeyObject(key)) {\n if (key.type === 'secret') {\n return key.export();\n }\n if ('toCryptoKey' in key && typeof key.toCryptoKey === 'function') {\n try {\n return handleKeyObject(key, alg);\n }\n catch (err) {\n if (err instanceof TypeError) {\n throw err;\n }\n }\n }\n let jwk = key.export({ format: 'jwk' });\n return handleJWK(key, jwk, alg);\n }\n if (isJWK(key)) {\n if (key.k) {\n return decode(key.k);\n }\n return handleJWK(key, key, alg, true);\n }\n throw new Error('unreachable');\n}\n","import { decode as b64u } from '../../util/base64url.js';\nimport { verify } from '../../lib/signing.js';\nimport { JOSEAlgNotAllowed, JWSInvalid, JWSSignatureVerificationFailed } from '../../util/errors.js';\nimport { concat, encoder, decoder, encode } from '../../lib/buffer_utils.js';\nimport { decodeBase64url } from '../../lib/helpers.js';\nimport { isDisjoint } from '../../lib/type_checks.js';\nimport { isObject } from '../../lib/type_checks.js';\nimport { checkKeyType } from '../../lib/check_key_type.js';\nimport { validateCrit } from '../../lib/validate_crit.js';\nimport { validateAlgorithms } from '../../lib/validate_algorithms.js';\nimport { normalizeKey } from '../../lib/normalize_key.js';\nexport async function flattenedVerify(jws, key, options) {\n if (!isObject(jws)) {\n throw new JWSInvalid('Flattened JWS must be an object');\n }\n if (jws.protected === undefined && jws.header === undefined) {\n throw new JWSInvalid('Flattened JWS must have either of the \"protected\" or \"header\" members');\n }\n if (jws.protected !== undefined && typeof jws.protected !== 'string') {\n throw new JWSInvalid('JWS Protected Header incorrect type');\n }\n if (jws.payload === undefined) {\n throw new JWSInvalid('JWS Payload missing');\n }\n if (typeof jws.signature !== 'string') {\n throw new JWSInvalid('JWS Signature missing or incorrect type');\n }\n if (jws.header !== undefined && !isObject(jws.header)) {\n throw new JWSInvalid('JWS Unprotected Header incorrect type');\n }\n let parsedProt = {};\n if (jws.protected) {\n try {\n const protectedHeader = b64u(jws.protected);\n parsedProt = JSON.parse(decoder.decode(protectedHeader));\n }\n catch {\n throw new JWSInvalid('JWS Protected Header is invalid');\n }\n }\n if (!isDisjoint(parsedProt, jws.header)) {\n throw new JWSInvalid('JWS Protected and JWS Unprotected Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...parsedProt,\n ...jws.header,\n };\n const extensions = validateCrit(JWSInvalid, new Map([['b64', true]]), options?.crit, parsedProt, joseHeader);\n let b64 = true;\n if (extensions.has('b64')) {\n b64 = parsedProt.b64;\n if (typeof b64 !== 'boolean') {\n throw new JWSInvalid('The \"b64\" (base64url-encode payload) Header Parameter must be a boolean');\n }\n }\n const { alg } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new JWSInvalid('JWS \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n const algorithms = options && validateAlgorithms('algorithms', options.algorithms);\n if (algorithms && !algorithms.has(alg)) {\n throw new JOSEAlgNotAllowed('\"alg\" (Algorithm) Header Parameter value not allowed');\n }\n if (b64) {\n if (typeof jws.payload !== 'string') {\n throw new JWSInvalid('JWS Payload must be a string');\n }\n }\n else if (typeof jws.payload !== 'string' && !(jws.payload instanceof Uint8Array)) {\n throw new JWSInvalid('JWS Payload must be a string or an Uint8Array instance');\n }\n let resolvedKey = false;\n if (typeof key === 'function') {\n key = await key(parsedProt, jws);\n resolvedKey = true;\n }\n checkKeyType(alg, key, 'verify');\n const data = concat(jws.protected !== undefined ? encode(jws.protected) : new Uint8Array(), encode('.'), typeof jws.payload === 'string'\n ? b64\n ? encode(jws.payload)\n : encoder.encode(jws.payload)\n : jws.payload);\n const signature = decodeBase64url(jws.signature, 'signature', JWSInvalid);\n const k = await normalizeKey(key, alg);\n const verified = await verify(alg, k, signature, data);\n if (!verified) {\n throw new JWSSignatureVerificationFailed();\n }\n let payload;\n if (b64) {\n payload = decodeBase64url(jws.payload, 'payload', JWSInvalid);\n }\n else if (typeof jws.payload === 'string') {\n payload = encoder.encode(jws.payload);\n }\n else {\n payload = jws.payload;\n }\n const result = { payload };\n if (jws.protected !== undefined) {\n result.protectedHeader = parsedProt;\n }\n if (jws.header !== undefined) {\n result.unprotectedHeader = jws.header;\n }\n if (resolvedKey) {\n return { ...result, key: k };\n }\n return result;\n}\n","import { flattenedVerify } from '../flattened/verify.js';\nimport { JWSInvalid } from '../../util/errors.js';\nimport { decoder } from '../../lib/buffer_utils.js';\nexport async function compactVerify(jws, key, options) {\n if (jws instanceof Uint8Array) {\n jws = decoder.decode(jws);\n }\n if (typeof jws !== 'string') {\n throw new JWSInvalid('Compact JWS must be a string or Uint8Array');\n }\n const { 0: protectedHeader, 1: payload, 2: signature, length } = jws.split('.');\n if (length !== 3) {\n throw new JWSInvalid('Invalid Compact JWS');\n }\n const verified = await flattenedVerify({ payload, protected: protectedHeader, signature }, key, options);\n const result = { payload: verified.payload, protectedHeader: verified.protectedHeader };\n if (typeof key === 'function') {\n return { ...result, key: verified.key };\n }\n return result;\n}\n","import { JWTClaimValidationFailed, JWTExpired, JWTInvalid } from '../util/errors.js';\nimport { encoder, decoder } from './buffer_utils.js';\nimport { isObject } from './type_checks.js';\nconst epoch = (date) => Math.floor(date.getTime() / 1000);\nconst minute = 60;\nconst hour = minute * 60;\nconst day = hour * 24;\nconst week = day * 7;\nconst year = day * 365.25;\nconst REGEX = /^(\\+|\\-)? ?(\\d+|\\d+\\.\\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;\nexport function secs(str) {\n const matched = REGEX.exec(str);\n if (!matched || (matched[4] && matched[1])) {\n throw new TypeError('Invalid time period format');\n }\n const value = parseFloat(matched[2]);\n const unit = matched[3].toLowerCase();\n let numericDate;\n switch (unit) {\n case 'sec':\n case 'secs':\n case 'second':\n case 'seconds':\n case 's':\n numericDate = Math.round(value);\n break;\n case 'minute':\n case 'minutes':\n case 'min':\n case 'mins':\n case 'm':\n numericDate = Math.round(value * minute);\n break;\n case 'hour':\n case 'hours':\n case 'hr':\n case 'hrs':\n case 'h':\n numericDate = Math.round(value * hour);\n break;\n case 'day':\n case 'days':\n case 'd':\n numericDate = Math.round(value * day);\n break;\n case 'week':\n case 'weeks':\n case 'w':\n numericDate = Math.round(value * week);\n break;\n default:\n numericDate = Math.round(value * year);\n break;\n }\n if (matched[1] === '-' || matched[4] === 'ago') {\n return -numericDate;\n }\n return numericDate;\n}\nfunction validateInput(label, input) {\n if (!Number.isFinite(input)) {\n throw new TypeError(`Invalid ${label} input`);\n }\n return input;\n}\nconst normalizeTyp = (value) => {\n if (value.includes('/')) {\n return value.toLowerCase();\n }\n return `application/${value.toLowerCase()}`;\n};\nconst checkAudiencePresence = (audPayload, audOption) => {\n if (typeof audPayload === 'string') {\n return audOption.includes(audPayload);\n }\n if (Array.isArray(audPayload)) {\n return audOption.some(Set.prototype.has.bind(new Set(audPayload)));\n }\n return false;\n};\nexport function validateClaimsSet(protectedHeader, encodedPayload, options = {}) {\n let payload;\n try {\n payload = JSON.parse(decoder.decode(encodedPayload));\n }\n catch {\n }\n if (!isObject(payload)) {\n throw new JWTInvalid('JWT Claims Set must be a top-level JSON object');\n }\n const { typ } = options;\n if (typ &&\n (typeof protectedHeader.typ !== 'string' ||\n normalizeTyp(protectedHeader.typ) !== normalizeTyp(typ))) {\n throw new JWTClaimValidationFailed('unexpected \"typ\" JWT header value', payload, 'typ', 'check_failed');\n }\n const { requiredClaims = [], issuer, subject, audience, maxTokenAge } = options;\n const presenceCheck = [...requiredClaims];\n if (maxTokenAge !== undefined)\n presenceCheck.push('iat');\n if (audience !== undefined)\n presenceCheck.push('aud');\n if (subject !== undefined)\n presenceCheck.push('sub');\n if (issuer !== undefined)\n presenceCheck.push('iss');\n for (const claim of new Set(presenceCheck.reverse())) {\n if (!(claim in payload)) {\n throw new JWTClaimValidationFailed(`missing required \"${claim}\" claim`, payload, claim, 'missing');\n }\n }\n if (issuer &&\n !(Array.isArray(issuer) ? issuer : [issuer]).includes(payload.iss)) {\n throw new JWTClaimValidationFailed('unexpected \"iss\" claim value', payload, 'iss', 'check_failed');\n }\n if (subject && payload.sub !== subject) {\n throw new JWTClaimValidationFailed('unexpected \"sub\" claim value', payload, 'sub', 'check_failed');\n }\n if (audience &&\n !checkAudiencePresence(payload.aud, typeof audience === 'string' ? [audience] : audience)) {\n throw new JWTClaimValidationFailed('unexpected \"aud\" claim value', payload, 'aud', 'check_failed');\n }\n let tolerance;\n switch (typeof options.clockTolerance) {\n case 'string':\n tolerance = secs(options.clockTolerance);\n break;\n case 'number':\n tolerance = options.clockTolerance;\n break;\n case 'undefined':\n tolerance = 0;\n break;\n default:\n throw new TypeError('Invalid clockTolerance option type');\n }\n const { currentDate } = options;\n const now = epoch(currentDate || new Date());\n if ((payload.iat !== undefined || maxTokenAge) && typeof payload.iat !== 'number') {\n throw new JWTClaimValidationFailed('\"iat\" claim must be a number', payload, 'iat', 'invalid');\n }\n if (payload.nbf !== undefined) {\n if (typeof payload.nbf !== 'number') {\n throw new JWTClaimValidationFailed('\"nbf\" claim must be a number', payload, 'nbf', 'invalid');\n }\n if (payload.nbf > now + tolerance) {\n throw new JWTClaimValidationFailed('\"nbf\" claim timestamp check failed', payload, 'nbf', 'check_failed');\n }\n }\n if (payload.exp !== undefined) {\n if (typeof payload.exp !== 'number') {\n throw new JWTClaimValidationFailed('\"exp\" claim must be a number', payload, 'exp', 'invalid');\n }\n if (payload.exp <= now - tolerance) {\n throw new JWTExpired('\"exp\" claim timestamp check failed', payload, 'exp', 'check_failed');\n }\n }\n if (maxTokenAge) {\n const age = now - payload.iat;\n const max = typeof maxTokenAge === 'number' ? maxTokenAge : secs(maxTokenAge);\n if (age - tolerance > max) {\n throw new JWTExpired('\"iat\" claim timestamp check failed (too far in the past)', payload, 'iat', 'check_failed');\n }\n if (age < 0 - tolerance) {\n throw new JWTClaimValidationFailed('\"iat\" claim timestamp check failed (it should be in the past)', payload, 'iat', 'check_failed');\n }\n }\n return payload;\n}\nexport class JWTClaimsBuilder {\n #payload;\n constructor(payload) {\n if (!isObject(payload)) {\n throw new TypeError('JWT Claims Set MUST be an object');\n }\n this.#payload = structuredClone(payload);\n }\n data() {\n return encoder.encode(JSON.stringify(this.#payload));\n }\n get iss() {\n return this.#payload.iss;\n }\n set iss(value) {\n this.#payload.iss = value;\n }\n get sub() {\n return this.#payload.sub;\n }\n set sub(value) {\n this.#payload.sub = value;\n }\n get aud() {\n return this.#payload.aud;\n }\n set aud(value) {\n this.#payload.aud = value;\n }\n set jti(value) {\n this.#payload.jti = value;\n }\n set nbf(value) {\n if (typeof value === 'number') {\n this.#payload.nbf = validateInput('setNotBefore', value);\n }\n else if (value instanceof Date) {\n this.#payload.nbf = validateInput('setNotBefore', epoch(value));\n }\n else {\n this.#payload.nbf = epoch(new Date()) + secs(value);\n }\n }\n set exp(value) {\n if (typeof value === 'number') {\n this.#payload.exp = validateInput('setExpirationTime', value);\n }\n else if (value instanceof Date) {\n this.#payload.exp = validateInput('setExpirationTime', epoch(value));\n }\n else {\n this.#payload.exp = epoch(new Date()) + secs(value);\n }\n }\n set iat(value) {\n if (value === undefined) {\n this.#payload.iat = epoch(new Date());\n }\n else if (value instanceof Date) {\n this.#payload.iat = validateInput('setIssuedAt', epoch(value));\n }\n else if (typeof value === 'string') {\n this.#payload.iat = validateInput('setIssuedAt', epoch(new Date()) + secs(value));\n }\n else {\n this.#payload.iat = validateInput('setIssuedAt', value);\n }\n }\n}\n","import { compactVerify } from '../jws/compact/verify.js';\nimport { validateClaimsSet } from '../lib/jwt_claims_set.js';\nimport { JWTInvalid } from '../util/errors.js';\nexport async function jwtVerify(jwt, key, options) {\n const verified = await compactVerify(jwt, key, options);\n if (verified.protectedHeader.crit?.includes('b64') && verified.protectedHeader.b64 === false) {\n throw new JWTInvalid('JWTs MUST NOT use unencoded payload');\n }\n const payload = validateClaimsSet(verified.protectedHeader, verified.payload, options);\n const result = { payload, protectedHeader: verified.protectedHeader };\n if (typeof key === 'function') {\n return { ...result, key: verified.key };\n }\n return result;\n}\n","import { decode as b64u } from './base64url.js';\nimport { decoder } from '../lib/buffer_utils.js';\nimport { isObject } from '../lib/type_checks.js';\nimport { JWTInvalid } from './errors.js';\nexport function decodeJwt(jwt) {\n if (typeof jwt !== 'string')\n throw new JWTInvalid('JWTs must use Compact JWS serialization, JWT must be a string');\n const { 1: payload, length } = jwt.split('.');\n if (length === 5)\n throw new JWTInvalid('Only JWTs using Compact JWS serialization can be decoded');\n if (length !== 3)\n throw new JWTInvalid('Invalid JWT');\n if (!payload)\n throw new JWTInvalid('JWTs must contain a payload');\n let decoded;\n try {\n decoded = b64u(payload);\n }\n catch {\n throw new JWTInvalid('Failed to base64url decode the payload');\n }\n let result;\n try {\n result = JSON.parse(decoder.decode(decoded));\n }\n catch {\n throw new JWTInvalid('Failed to parse the decoded payload as JSON');\n }\n if (!isObject(result))\n throw new JWTInvalid('Invalid JWT Claims Set');\n return result;\n}\n","import discoveryConfig from '../../../discovery.config';\nconst DEFAULT_WEBOPS_ORIGIN = 'https://faststore.vtex.com';\n\nfunction getWebopsOrigin() {\n const hostFromEnv = process.env.WEBOPS_API_URL?.trim() ?? '';\n const hostWithoutTrailingSlash = hostFromEnv.replace(/\\/+$/, '');\n const origin = hostWithoutTrailingSlash.length > 0 ? hostWithoutTrailingSlash : DEFAULT_WEBOPS_ORIGIN;\n return /^https?:\\/\\//i.test(origin) ? origin : `https://${origin}`;\n}\n\nexport function publicKeyUrl() {\n return new URL('/api/v1/password-protection/public-key', getWebopsOrigin());\n}\nexport function protectionStatusUrl() {\n const url = new URL('/api/v1/password-protection/status', getWebopsOrigin());\n url.searchParams.set('storeId', discoveryConfig.api.storeId);\n return url;\n}\nexport function sessionUrl() {\n return new URL('/api/v1/password-protection/session', getWebopsOrigin());\n}\nexport function renewUrl() {\n return new URL('/api/v1/password-protection/renew', getWebopsOrigin());\n}\n/** Timeouts for WebOps password-protection calls (middleware / API routes). */\n\nexport const passwordProtectionTimeouts = {\n publicKeyMs: 5000,\n defaultMs: 10000\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { NextResponse } from 'next/server';\nimport { jwtVerify, decodeJwt, importSPKI, errors } from 'jose';\nimport storeConfig from '../../discovery.config';\nimport { publicKeyUrl, renewUrl, protectionStatusUrl, passwordProtectionTimeouts } from './password-protection/webops-api';\nexport const COOKIE_NAME = '__fs_password_protection';\nexport const TOKEN_TTL_SECONDS = 10 * 60;\n/** How long to reuse the RSA public key fetched from WebOps */\n\nconst PUBLIC_KEY_CACHE_MS = 60 * 60 * 1000;\nlet publicKeyCache = null;\n\nasync function fetchPublicKeyPemFromWebOps() {\n const res = await fetch(publicKeyUrl(), {\n signal: AbortSignal.timeout(passwordProtectionTimeouts.publicKeyMs)\n });\n\n if (!res.ok) {\n throw new Error(`WebOps public-key returned ${res.status}`);\n }\n\n const body = await res.json();\n const pem = body.publicKey?.trim();\n\n if (!pem) {\n throw new Error('WebOps public-key response missing publicKey');\n }\n\n return pem;\n}\n\nasync function getPublicVerificationKey() {\n const now = Date.now();\n\n if (publicKeyCache && now - publicKeyCache.fetchedAt < PUBLIC_KEY_CACHE_MS) {\n return publicKeyCache.key;\n }\n\n const pem = await fetchPublicKeyPemFromWebOps();\n const key = await importSPKI(pem, 'RS256');\n publicKeyCache = {\n pem,\n key,\n fetchedAt: now\n };\n return key;\n}\n/** Clears the cached WebOps public key (for unit tests only). */\n\n\nexport function resetPasswordProtectionPublicKeyCacheForTests() {\n publicKeyCache = null;\n}\nexport class PasswordProtectionService {\n constructor() {\n _defineProperty(this, \"storeId\", void 0);\n\n this.storeId = storeConfig.api.storeId;\n }\n\n getNormalizedHost(request) {\n const host = request.headers.get('host') || '';\n return host.split(':')[0].toLowerCase();\n }\n\n async checkStoreProtection(request) {\n if (!this.shouldCheckProtection(request)) {\n return {\n response: NextResponse.next()\n };\n }\n\n const token = request.cookies.get(COOKIE_NAME)?.value;\n\n if (token) {\n const verification = await this.verifyToken(token);\n\n if (verification.valid && verification.payload) {\n return {\n response: NextResponse.next()\n };\n }\n\n if (verification.expired && verification.payload) {\n return await this.tryRenewSession(request, token, verification.payload);\n }\n }\n\n return await this.handleProtectionCheck(request);\n }\n\n shouldCheckProtection(request) {\n if (false) {\n return false;\n }\n\n const hostname = this.getNormalizedHost(request);\n const isDefaultDomain = hostname.endsWith('.vtex.app');\n\n if (isDefaultDomain) {\n return true;\n }\n\n return process.env.CUSTOM_DOMAINS_PROTECTION_ENABLED === 'true';\n }\n\n shouldProtectDomain(request, scope) {\n const hostname = this.getNormalizedHost(request);\n const isDefaultDomain = hostname.endsWith('.vtex.app');\n return scope === 'ALL_DOMAINS' || scope === 'DEFAULT_DOMAINS' && isDefaultDomain || scope === 'CUSTOM_DOMAINS' && !isDefaultDomain;\n }\n\n payloadMatchesStore(payload) {\n return payload.storeId === this.storeId;\n }\n\n isJwtExpiredError(error) {\n return error instanceof errors.JWTExpired || error instanceof Error && error.name === 'JWTExpired';\n }\n\n async verifyToken(token) {\n try {\n const key = await getPublicVerificationKey();\n const {\n payload\n } = await jwtVerify(token, key);\n const p = payload;\n\n if (!this.payloadMatchesStore(p)) {\n return {\n valid: false,\n expired: false\n };\n }\n\n return {\n valid: true,\n expired: false,\n payload: p\n };\n } catch (error) {\n if (this.isJwtExpiredError(error)) {\n const payload = decodeJwt(token);\n\n if (!this.payloadMatchesStore(payload)) {\n return {\n valid: false,\n expired: false\n };\n }\n\n return {\n valid: false,\n expired: true,\n payload\n };\n }\n\n return {\n valid: false,\n expired: false\n };\n }\n }\n\n async tryRenewSession(request, expiredToken, payload) {\n try {\n const res = await fetch(renewUrl(), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n storeId: this.storeId,\n expiredToken\n }),\n signal: AbortSignal.timeout(passwordProtectionTimeouts.defaultMs)\n });\n\n if (res.ok) {\n const data = await res.json();\n\n if (data.valid && data.token) {\n const response = NextResponse.next();\n this.setProtectionCookie(response, data.token);\n return {\n response\n };\n }\n }\n } catch {// Fall through to redirect or fail-open below\n }\n\n if (!this.shouldProtectDomain(request, payload.scope)) {\n return {\n response: NextResponse.next()\n };\n }\n\n return {\n response: this.redirectToUnlockPage(request)\n };\n }\n\n async handleProtectionCheck(request) {\n try {\n const res = await fetch(protectionStatusUrl(), {\n signal: AbortSignal.timeout(passwordProtectionTimeouts.defaultMs)\n });\n\n if (!res.ok) {\n return {\n response: this.redirectToUnlockPage(request)\n };\n }\n\n const status = await res.json();\n\n if (!status.protected) {\n const response = NextResponse.next();\n\n if (status.token) {\n this.setProtectionCookie(response, status.token);\n }\n\n return {\n response\n };\n }\n\n if (!this.shouldProtectDomain(request, status.scope)) {\n return {\n response: NextResponse.next()\n };\n }\n\n return {\n response: this.redirectToUnlockPage(request)\n };\n } catch {\n return {\n response: this.redirectToUnlockPage(request)\n };\n }\n }\n\n setProtectionCookie(response, token) {\n response.cookies.set(COOKIE_NAME, token, {\n httpOnly: true,\n secure: true,\n sameSite: 'lax',\n path: '/',\n maxAge: TOKEN_TTL_SECONDS\n });\n }\n\n redirectToUnlockPage(request) {\n const unlockUrl = new URL('/password-protection', request.url);\n const returnTo = `${request.nextUrl.pathname}${request.nextUrl.search}`;\n unlockUrl.searchParams.set('returnTo', returnTo);\n const response = NextResponse.redirect(unlockUrl);\n response.headers.set('Cache-Control', 'no-store');\n return response;\n }\n\n}","/*\n * Middleware is always active. It runs:\n * 1. Password protection (PasswordProtectionService) — when applicable (default/custom domains per env).\n * 2. Redirects — only when ENABLE_REDIRECTS_MIDDLEWARE is set at runtime.\n */\nimport { NextResponse } from 'next/server';\nimport storeConfig from 'discovery.config';\nimport { PasswordProtectionService } from './server/password-protection-service';\n\nclass DynamoRedirectsClient {\n async get(_from) {\n // TODO: Implement DynamoDB client. Ensure that the cluster has access to DynamoDB first.\n return null;\n }\n\n}\n\nconst redirectsClient = new DynamoRedirectsClient();\nexport async function middleware(request) {\n const path = request.nextUrl.pathname;\n let storeProtectionResult;\n\n try {\n const protectionService = new PasswordProtectionService();\n storeProtectionResult = await protectionService.checkStoreProtection(request);\n } catch {\n return NextResponse.error();\n }\n\n if (storeProtectionResult.response.status !== 200) {\n return storeProtectionResult.response;\n }\n\n if (process.env.ENABLE_REDIRECTS_MIDDLEWARE === 'true') {\n const redirect = await redirectsClient.get(path);\n\n if (redirect) {\n const redirectUrl = new URL(redirect.to, storeConfig.storeUrl);\n const redirectStatusCode = redirect.type === 'permanent' ? 301 : 302;\n const response = NextResponse.redirect(redirectUrl, redirectStatusCode);\n\n for (const cookie of storeProtectionResult.response.cookies.getAll()) {\n response.cookies.set(cookie);\n }\n\n response.headers.set('Cache-Control', 'public, max-age=300, stale-while-revalidate=31536000');\n return response;\n }\n }\n\n return storeProtectionResult.response;\n}\nexport const config = {\n matcher: [\n /*\n * Match all paths including `/`\n * Exclude:\n * - api (e.g. api/fs/password-protection/unlock)\n * - _next/static, _next/image\n * - favicon.ico\n * - password-protection (unlock page)\n * - ~partytown (partytown scripts)\n */\n '/', '/((?!api|_next/static|_next/image|favicon.ico|password-protection|~partytown).*)']\n};","import \"next/dist/server/web/globals\";\nimport { adapter } from \"next/dist/server/web/adapter\";\n// Import the userland code.\nimport * as _mod from \"private-next-root-dir/src/middleware.ts\";\nconst mod = {\n ..._mod\n};\nconst handler = mod.middleware || mod.default;\nconst page = \"/src/middleware\";\nif (typeof handler !== \"function\") {\n throw new Error(`The Middleware \"${page}\" must export a \\`middleware\\` or a \\`default\\` function`);\n}\nexport default function nHandler(opts) {\n return adapter({\n ...opts,\n page,\n handler\n });\n}\n\n//# sourceMappingURL=middleware.js.map","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n return isNonNullObject(value) && !isSpecial(value);\n};\n\nfunction isNonNullObject(value) {\n return !!value && typeof value === 'object';\n}\n\nfunction isSpecial(value) {\n var stringValue = Object.prototype.toString.call(value);\n return stringValue === '[object RegExp]' || stringValue === '[object Date]' || isReactElement(value);\n} // see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\n\n\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n return value.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nfunction emptyTarget(val) {\n return Array.isArray(val) ? [] : {};\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n return options.clone !== false && options.isMergeableObject(value) ? deepmerge(emptyTarget(value), value, options) : value;\n}\n\nfunction defaultArrayMerge(target, source, options) {\n return target.concat(source).map(function (element) {\n return cloneUnlessOtherwiseSpecified(element, options);\n });\n}\n\nfunction getMergeFunction(key, options) {\n if (!options.customMerge) {\n return deepmerge;\n }\n\n var customMerge = options.customMerge(key);\n return typeof customMerge === 'function' ? customMerge : deepmerge;\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function (symbol) {\n return Object.propertyIsEnumerable.call(target, symbol);\n }) : [];\n}\n\nfunction getKeys(target) {\n return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));\n}\n\nfunction propertyIsOnObject(object, property) {\n try {\n return property in object;\n } catch (_) {\n return false;\n }\n} // Protects from prototype poisoning and unexpected merging up the prototype chain.\n\n\nfunction propertyIsUnsafe(target, key) {\n return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n && Object.propertyIsEnumerable.call(target, key)); // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n var destination = {};\n\n if (options.isMergeableObject(target)) {\n getKeys(target).forEach(function (key) {\n destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n });\n }\n\n getKeys(source).forEach(function (key) {\n if (propertyIsUnsafe(target, key)) {\n return;\n }\n\n if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n destination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n } else {\n destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n }\n });\n return destination;\n}\n\nfunction deepmerge(target, source, options) {\n options = options || {};\n options.arrayMerge = options.arrayMerge || defaultArrayMerge;\n options.isMergeableObject = options.isMergeableObject || isMergeableObject; // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n // implementations can use it. The caller may not replace it.\n\n options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified(source, options);\n } else if (sourceIsArray) {\n return options.arrayMerge(target, source, options);\n } else {\n return mergeObject(target, source, options);\n }\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n if (!Array.isArray(array)) {\n throw new Error('first argument should be an array');\n }\n\n return array.reduce(function (prev, next) {\n return deepmerge(prev, next, options);\n }, {});\n};\n\nvar deepmerge_1 = deepmerge;\nmodule.exports = deepmerge_1;","\"use strict\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\n\nvar __export = (target, all) => {\n for (var name in all) __defProp(target, name, {\n get: all[name],\n enumerable: true\n });\n};\n\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n get: () => from[key],\n enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n });\n }\n\n return to;\n};\n\nvar __toCommonJS = mod => __copyProps(__defProp({}, \"__esModule\", {\n value: true\n}), mod); // src/index.ts\n\n\nvar src_exports = {};\n\n__export(src_exports, {\n RequestCookies: () => RequestCookies,\n ResponseCookies: () => ResponseCookies,\n parseCookie: () => parseCookie,\n parseSetCookie: () => parseSetCookie,\n stringifyCookie: () => stringifyCookie\n});\n\nmodule.exports = __toCommonJS(src_exports); // src/serialize.ts\n\nfunction stringifyCookie(c) {\n var _a;\n\n const attrs = [\"path\" in c && c.path && `Path=${c.path}`, \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`, \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`, \"domain\" in c && c.domain && `Domain=${c.domain}`, \"secure\" in c && c.secure && \"Secure\", \"httpOnly\" in c && c.httpOnly && \"HttpOnly\", \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`, \"priority\" in c && c.priority && `Priority=${c.priority}`].filter(Boolean);\n return `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}; ${attrs.join(\"; \")}`;\n}\n\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */new Map();\n\n for (const pair of cookie.split(/; */)) {\n if (!pair) continue;\n const splitAt = pair.indexOf(\"=\");\n\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {}\n }\n\n return map;\n}\n\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\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 priority\n } = Object.fromEntries(attributes.map(([key, value2]) => [key.toLowerCase(), value2]));\n\n const cookie = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({\n name,\n value: decodeURIComponent(value),\n domain\n }, expires && {\n expires: new Date(expires)\n }), httponly && {\n httpOnly: true\n }), typeof maxage === \"string\" && {\n maxAge: Number(maxage)\n }), {}, {\n path\n }, samesite && {\n sameSite: parseSameSite(samesite)\n }), secure && {\n secure: true\n }), priority && {\n priority: parsePriority(priority)\n });\n\n return compact(cookie);\n}\n\nfunction compact(t) {\n const newT = {};\n\n for (const key in t) {\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n\n return newT;\n}\n\nvar SAME_SITE = [\"strict\", \"lax\", \"none\"];\n\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\n\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\n\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\n\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString) return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n\n return pos < cookiesString.length;\n }\n\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\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\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n\n return cookiesStrings;\n} // src/request-cookies.ts\n\n\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\n if (header) {\n const parsed = parseCookie(header);\n\n for (const [name, value] of parsed) {\n this._parsed.set(name, {\n name,\n value\n });\n }\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\n\n get size() {\n return this._parsed.size;\n }\n\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n\n getAll(...args) {\n var _a;\n\n const all = Array.from(this._parsed);\n\n if (!args.length) {\n return all.map(([_, value]) => value);\n }\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\n has(name) {\n return this._parsed.has(name);\n }\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, {\n name,\n value\n });\n\n this._headers.set(\"cookie\", 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\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\n this._headers.set(\"cookie\", 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\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\n\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n\n toString() {\n return [...this._parsed.values()].map(v => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n\n}; // src/response-cookies.ts\n\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */new Map();\n\n var _a, _b, _c;\n\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\n for (const cookieString of cookieStrings) {\n const parsed = parseSetCookie(cookieString);\n if (parsed) 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\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\n\n getAll(...args) {\n var _a;\n\n const all = Array.from(this._parsed.values());\n\n if (!args.length) {\n return all;\n }\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\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\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(_objectSpread({\n name,\n value\n }, 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\n\n delete(...args) {\n const [name, path, domain] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0].path, args[0].domain];\n return this.set({\n name,\n path,\n domain,\n value: \"\",\n expires: /* @__PURE__ */new Date(0)\n });\n }\n\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n\n toString() {\n return [...this._parsed.values()].map(stringifyCookie).join(\"; \");\n }\n\n};\n\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n\n for (const [, value] of bag) {\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\n\nfunction normalizeCookie(cookie = {\n name: \"\",\n value: \"\"\n}) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n\n return cookie;\n} // Annotate the CommonJS export names for ESM import in node:\n\n\n0 && (module.exports = {\n RequestCookies,\n ResponseCookies,\n parseCookie,\n parseSetCookie,\n stringifyCookie\n});","(() => {\n \"use strict\";\n\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var e = {};\n\n (() => {\n var r = e;\n /*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n r.parse = parse;\n r.serialize = serialize;\n var i = decodeURIComponent;\n var t = encodeURIComponent;\n var a = /; */;\n var n = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n function parse(e, r) {\n if (typeof e !== \"string\") {\n throw new TypeError(\"argument str must be a string\");\n }\n\n var t = {};\n var n = r || {};\n var o = e.split(a);\n var s = n.decode || i;\n\n for (var p = 0; p < o.length; p++) {\n var f = o[p];\n var u = f.indexOf(\"=\");\n\n if (u < 0) {\n continue;\n }\n\n var v = f.substr(0, u).trim();\n var c = f.substr(++u, f.length).trim();\n\n if ('\"' == c[0]) {\n c = c.slice(1, -1);\n }\n\n if (undefined == t[v]) {\n t[v] = tryDecode(c, s);\n }\n }\n\n return t;\n }\n\n function serialize(e, r, i) {\n var a = i || {};\n var o = a.encode || t;\n\n if (typeof o !== \"function\") {\n throw new TypeError(\"option encode is invalid\");\n }\n\n if (!n.test(e)) {\n throw new TypeError(\"argument name is invalid\");\n }\n\n var s = o(r);\n\n if (s && !n.test(s)) {\n throw new TypeError(\"argument val is invalid\");\n }\n\n var p = e + \"=\" + s;\n\n if (null != a.maxAge) {\n var f = a.maxAge - 0;\n\n if (isNaN(f) || !isFinite(f)) {\n throw new TypeError(\"option maxAge is invalid\");\n }\n\n p += \"; Max-Age=\" + Math.floor(f);\n }\n\n if (a.domain) {\n if (!n.test(a.domain)) {\n throw new TypeError(\"option domain is invalid\");\n }\n\n p += \"; Domain=\" + a.domain;\n }\n\n if (a.path) {\n if (!n.test(a.path)) {\n throw new TypeError(\"option path is invalid\");\n }\n\n p += \"; Path=\" + a.path;\n }\n\n if (a.expires) {\n if (typeof a.expires.toUTCString !== \"function\") {\n throw new TypeError(\"option expires is invalid\");\n }\n\n p += \"; Expires=\" + a.expires.toUTCString();\n }\n\n if (a.httpOnly) {\n p += \"; HttpOnly\";\n }\n\n if (a.secure) {\n p += \"; Secure\";\n }\n\n if (a.sameSite) {\n var u = typeof a.sameSite === \"string\" ? a.sameSite.toLowerCase() : a.sameSite;\n\n switch (u) {\n case true:\n p += \"; SameSite=Strict\";\n break;\n\n case \"lax\":\n p += \"; SameSite=Lax\";\n break;\n\n case \"strict\":\n p += \"; SameSite=Strict\";\n break;\n\n case \"none\":\n p += \"; SameSite=None\";\n break;\n\n default:\n throw new TypeError(\"option sameSite is invalid\");\n }\n }\n\n return p;\n }\n\n function tryDecode(e, r) {\n try {\n return r(e);\n } catch (r) {\n return e;\n }\n }\n })();\n\n module.exports = e;\n})();","module.exports = {\n seo: {\n title: 'FastStore Starter',\n description: 'Fast Demo Store',\n titleTemplate: '%s | FastStore',\n author: 'Store Framework',\n name: 'FastStore',\n publisherId: '',\n plp: {\n titleTemplate: '%s | FastStore PLP',\n descriptionTemplate: '%s products on FastStore Product Listing Page'\n },\n pdp: {\n titleTemplate: '%s | FastStore PDP',\n descriptionTemplate: '%s products on FastStore Product Detail Page',\n minPriceAmountFractionDigits: undefined\n },\n search: {\n titleTemplate: '%s | Search results',\n descriptionTemplate: '%s Search results description',\n noIndex: true,\n noFollow: true,\n bodyH1: 'Showing results for:'\n }\n },\n // Theming\n theme: 'custom-theme',\n // Ecommerce Platform\n platform: 'vtex',\n // Platform specific configs for API\n api: {\n storeId: 'storeframework',\n workspace: 'master',\n subDomainPrefix: ['www'],\n environment: 'vtexcommercestable',\n hideUnavailableItems: false,\n showSponsored: false,\n incrementAddress: true,\n enableUnavailableItemsOnCart: false\n },\n // Default session\n session: {\n currency: {\n code: 'USD',\n symbol: '$'\n },\n locale: 'en-US',\n channel: '{\"salesChannel\":\"1\",\"regionId\":\"\",\"hasOnlyDefaultSalesChannel\":\"true\"}',\n country: 'USA',\n deliveryMode: null,\n addressType: null,\n city: null,\n postalCode: null,\n geoCoordinates: null,\n b2b: null,\n person: null,\n marketingData: {\n utmCampaign: '',\n utmMedium: '',\n utmSource: '',\n utmiCampaign: '',\n utmiPart: '',\n utmiPage: ''\n },\n refreshAfter: null // timestamp in seconds e.g. '1743042990'\n\n },\n // Default cart\n cart: {\n id: '',\n items: [],\n messages: [],\n shouldSplitItem: true\n },\n // Production URLs\n // secureSubdomain is the same as storeUrl because we are using single domain approach for this account\n storeUrl: 'https://homebrewqa.fast.store',\n secureSubdomain: 'https://homebrewqa.fast.store',\n checkoutUrl: 'https://homebrewqa.fast.store/checkout',\n loginUrl: 'https://homebrewqa.fast.store/api/io/login',\n accountUrl: 'https://homebrewqa.fast.store/api/io/account',\n // Preview redirects\n previewRedirects: {\n home: '/',\n plp: '/office',\n search: '/s?q=headphone',\n pdp: '/apple-magic-mouse/p',\n 500: '/500',\n 404: '/404'\n },\n // Lighthouse CI\n lighthouse: {\n server: process.env.BASE_SITE_URL || 'http://localhost:3000',\n pages: {\n home: '/',\n pdp: '/4k-philips-monitor-99988213/p',\n collection: '/office'\n }\n },\n // E2E CI\n cypress: {\n pages: {\n home: '/',\n pdp: '/4k-philips-monitor-99988213/p',\n collection: '/office',\n collection_2: '/technology',\n collection_filtered: '/office/?category-1=office&marca=acer&facets=category-1%2Cmarca',\n search: '/s?q=orange'\n }\n },\n analytics: {\n // https://developers.google.com/tag-platform/tag-manager/web#standard_web_page_installation,\n gtmContainerId: 'GTM-PGHZ95N'\n },\n cms: {\n data: process.env.CMS_DATA\n },\n contentSource: {\n type: 'CMS'\n },\n deliveryPromise: {\n enabled: false,\n mandatory: false\n },\n experimental: {\n cypressVersion: 12,\n enableCypressExtension: false,\n enableScriptsLogs: false,\n noRobots: false,\n noindex: false,\n nofollow: false,\n preact: false,\n enableRedirects: false,\n enableSearchSSR: false,\n enableFaststoreMyAccount: false,\n useIsGiftFromOrderForm: false,\n graphqlCacheControl: {\n maxAge: 0,\n // 0 disables cache, 5 * 60 enable cache control maxAge 5 minutes\n staleWhileRevalidate: 60 * 60 // 1 hour\n\n },\n refreshToken: false,\n scrollRestoration: false,\n\n /** Package names to transpile (e.g. ['@vtex/components']). Use a non-empty list to enable Next.js transpilation. */\n transpilePackages: []\n },\n // Text direction: 'ltr' (left-to-right) or 'rtl' (right-to-left)\n direction: 'ltr'\n};","const defaultConfig = require('./discovery.config.default');\n\nconst starterConfig = require('./src/customizations/discovery.config');\n\nconst deepmerge = require('deepmerge');\n/**\n * @type {typeof defaultConfig & Record<string, any>}\n * */\n\n\nconst finalConfig = deepmerge(defaultConfig, starterConfig);\nmodule.exports = finalConfig;","// This is a placeholder file for when starter files are copied here\nmodule.exports = {};"],"names":["registerInstrumentation","globalThis","_ENTRIES","middleware_instrumentation","register","err","message","registerInstrumentationPromise","ensureInstrumentationRegistered","getUnsupportedModuleErrorMessage","module","__import_unsupported","moduleName","proxy","Proxy","get","_obj","prop","Error","construct","apply","_target","_this","args","enhanceGlobals","process","global","env","Object","defineProperty","value","enumerable","configurable","PageSignatureError","constructor","page","RemovedPageError","RemovedUAError","fromNodeOutgoingHttpHeaders","nodeHeaders","headers","Headers","key","entries","values","Array","isArray","v","toString","append","splitCookiesString","cookiesString","cookiesStrings","pos","start","ch","lastComma","nextStart","cookiesSeparatorFound","skipWhitespace","length","test","charAt","notSpecialChar","push","substring","toNodeOutgoingHttpHeaders","cookies","toLowerCase","validateURL","url","String","URL","error","cause","responseSymbol","Symbol","passThroughSymbol","waitUntilSymbol","FetchEvent","_request","respondWith","response","Promise","resolve","passThroughOnException","waitUntil","promise","NextFetchEvent","params","request","sourcePage","detectDomainLocale","domainItems","hostname","detectedLocale","item","_item_domain","_item_locales","domainHostname","domain","split","defaultLocale","locales","some","locale","removeTrailingSlash","route","replace","parsePath","path","hashIndex","indexOf","queryIndex","hasQuery","pathname","query","undefined","hash","slice","addPathPrefix","prefix","startsWith","addPathSuffix","suffix","pathHasPrefix","addLocale","ignorePrefix","lower","formatNextPathnameInfo","info","buildId","trailingSlash","basePath","endsWith","getHostname","parsed","host","normalizeLocalePath","pathnameParts","splice","join","removePathPrefix","withoutPrefix","getNextPathnameInfo","options","_options_nextConfig","i18n","nextConfig","pathnameNoDataPrefix","paths","parseData","result","i18nProvider","analyze","_result_pathname","REGEX_LOCALHOST_HOSTNAME","parseURL","base","Internal","NextURL","input","baseOrOpts","opts","_this_Internal_options_nextConfig_i18n","_this_Internal_options_nextConfig","_this_Internal_domainLocale","_this_Internal_options_nextConfig_i18n1","_this_Internal_options_nextConfig1","__NEXT_NO_MIDDLEWARE_URL_NORMALIZE","domainLocale","domains","formatPathname","forceLocale","formatSearch","search","includes","TypeError","searchParams","port","protocol","href","origin","password","username","toJSON","for","clone","RequestCookies","ResponseCookies","INTERNALS","NextRequest","Request","init","nextUrl","geo","ip","bodyUsed","cache","credentials","destination","fromEntries","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","signal","ua","REDIRECTS","Set","handleMiddlewareField","_init_request","keys","set","NextResponse","Response","body","ok","redirected","status","statusText","type","json","has","RangeError","initObj","_objectSpread","rewrite","next","relativizeURL","baseURL","relative","RSC","ACTION","NEXT_ROUTER_STATE_TREE","NEXT_ROUTER_PREFETCH","NEXT_URL","RSC_CONTENT_TYPE_HEADER","RSC_VARY_HEADER","FLIGHT_PARAMETERS","NEXT_RSC_UNION_QUERY","INTERNAL_QUERY_NAMES","EDGE_EXTENDED_INTERNAL_QUERY_NAMES","stripInternalQueries","name","stripInternalSearchParams","isEdge","isStringUrl","instance","delete","INTERNAL_HEADERS","stripInternalHeaders","ensureLeadingSlash","isGroupSegment","normalizeAppPath","reduce","segment","index","segments","normalizeRscPath","enabled","NEXT_QUERY_PARAM_PREFIX","PRERENDER_REVALIDATE_HEADER","PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER","NEXT_CACHE_TAGS_HEADER","NEXT_CACHE_SOFT_TAGS_HEADER","NEXT_CACHE_REVALIDATED_TAGS_HEADER","NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER","NEXT_CACHE_TAG_MAX_LENGTH","NEXT_CACHE_SOFT_TAG_MAX_LENGTH","NEXT_CACHE_IMPLICIT_TAG_ID","CACHE_ONE_YEAR","MIDDLEWARE_FILENAME","MIDDLEWARE_LOCATION_REGEXP","INSTRUMENTATION_HOOK_FILENAME","PAGES_DIR_ALIAS","DOT_NEXT_ALIAS","ROOT_DIR_ALIAS","APP_DIR_ALIAS","RSC_MOD_REF_PROXY_ALIAS","RSC_ACTION_VALIDATE_ALIAS","RSC_ACTION_PROXY_ALIAS","RSC_ACTION_CLIENT_WRAPPER_ALIAS","PUBLIC_DIR_MIDDLEWARE_CONFLICT","SSG_GET_INITIAL_PROPS_CONFLICT","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR","SERVER_PROPS_EXPORT_ERROR","GSP_NO_RETURNED_VALUE","GSSP_NO_RETURNED_VALUE","UNSTABLE_REVALIDATE_RENAME_ERROR","GSSP_COMPONENT_MEMBER_ERROR","NON_STANDARD_NODE_ENV","SSG_FALLBACK_EXPORT_ERROR","ESLINT_DEFAULT_DIRS","ESLINT_PROMPT_VALUES","title","recommended","config","extends","SERVER_RUNTIME","edge","experimentalEdge","nodejs","WEBPACK_LAYERS_NAMES","shared","reactServerComponents","serverSideRendering","actionBrowser","api","middleware","edgeAsset","appPagesBrowser","appMetadataRoute","appRouteHandler","WEBPACK_LAYERS","GROUP","server","nonClientServerTarget","app","WEBPACK_RESOURCE_QUERIES","edgeSSREntry","metadata","metadataRoute","metadataImageMeta","ReflectAdapter","target","receiver","Reflect","bind","deleteProperty","ReadonlyHeadersError","callable","HeadersAdapter","lowercased","original","find","o","seal","merge","from","existing","forEach","callbackfn","thisArg","call","iterator","ReadonlyRequestCookiesError","RequestCookiesAdapter","SYMBOL_MODIFY_COOKIE_VALUES","getModifiedCookieValues","modified","appendMutableCookies","mutableCookies","modifiedCookieValues","resCookies","returnedCookies","getAll","cookie","MutableRequestCookiesAdapter","wrap","onUpdateCookies","responseCookes","modifiedValues","modifiedCookies","updateResponseCookies","_fetch___nextGetStaticStore","staticGenerationAsyncStore","fetch","__nextGetStaticStore","getStore","pathWasRevalidated","allCookies","filter","c","serializedCookies","tempCookies","add","sendStatusCode","res","statusCode","statusOrUrl","writeHead","Location","write","end","checkIsOnDemandRevalidate","req","previewProps","previewModeId","isOnDemandRevalidate","revalidateOnlyGenerated","COOKIE_NAME_PRERENDER_BYPASS","COOKIE_NAME_PRERENDER_DATA","RESPONSE_LIMIT_DEFAULT","SYMBOL_PREVIEW_DATA","SYMBOL_CLEARED_COOKIES","clearPreviewData","serialize","require","previous","getHeader","setHeader","expires","Date","httpOnly","sameSite","secure","ApiError","sendError","statusMessage","setLazyProp","getter","optsReset","writable","DraftModeProvider","_cookies_get","cookieValue","isEnabled","Boolean","_previewModeId","_mutableCookies","enable","disable","getHeaders","cleaned","param","getCookies","getMutableCookies","RequestAsyncStorageWrapper","storage","renderOpts","callback","defaultOnUpdateCookies","store","draftMode","run","sharedAsyncLocalStorageNotAvailableError","FakeAsyncLocalStorage","exit","enterWith","maybeGlobalAsyncLocalStorage","AsyncLocalStorage","createAsyncLocalStorage","requestAsyncStorage","NextRequestHint","adapter","isEdgeRendering","self","__BUILD_MANIFEST","prerenderManifest","__PRERENDER_MANIFEST","JSON","parse","requestUrl","normalizedKey","val","isDataReq","requestHeaders","flightHeaders","Map","normalizeUrl","__incrementalCache","IncrementalCache","appDir","fetchCache","minimalMode","fetchCacheKeyPrefix","__NEXT_FETCH_CACHE_KEY_PREFIX","dev","requestProtocol","getPrerenderManifest","version","routes","dynamicRoutes","notFoundRoutes","preview","event","cookiesFromResponse","isMiddleware","previewModeEncryptionKey","previewModeSigningKey","handler","rewriteUrl","relativizedRewrite","__NEXT_EXTERNAL_MIDDLEWARE_REWRITE_RESOLVE","match","redirectURL","finalResponse","middlewareOverrideHeaders","overwrittenHeaders","all","fetchMetrics","default","encodeBase64","Uint8Array","prototype","toBase64","CHUNK_SIZE","arr","i","fromCharCode","subarray","btoa","decodeBase64","encoded","fromBase64","binary","atob","bytes","charCodeAt","JOSEError","_defineProperty","captureStackTrace","JWTClaimValidationFailed","payload","claim","reason","JWTExpired","JOSEAlgNotAllowed","JOSENotSupported","JWEDecryptionFailed","JWEInvalid","JWSInvalid","JWTInvalid","JWKInvalid","JWKSInvalid","JWKSNoMatchingKey","asyncIterator","JWKSMultipleMatchingKeys","_Symbol$asyncIterator","JWKSTimeout","JWSSignatureVerificationFailed","invalidKeyInput","isCryptoKey","isKeyObject","formatPEM","b64","descriptor","newlined","genericExport","keyType","keyFormat","export","format","extractable","crypto","subtle","exportKey","toUpperCase","toSPKI","toPKCS8","bytesEqual","a","b","byteLength","createASN1State","data","parseLength","state","first","lengthOfLen","skipElement","count","expectTag","expectedTag","errorMessage","getSubarray","parseAlgorithmOID","oidLen","parsePKCS8Header","verLen","algIdLen","algIdStart","algIdLength","parseSPKIHeader","parseECAlgorithmIdentifier","algOid","curveOidLen","curveOid","oid","genericImport","keyData","alg","algorithm","keyUsages","isPublic","getSigUsages","getEncUsages","parseInt","curveMap","ES256","ES384","ES512","namedCurve","getNamedCurve","importKey","processPEMData","pem","pattern","fromPKCS8","fromSPKI","spkiFromX509","buf","spkiStart","spkiContentLen","extractX509SPKI","x509","derBytes","fromX509","spki","decode","decodeBase64URL","jwkToKey","isObject","importSPKI","importX509","importPKCS8","pkcs8","importJWK","jwk","ext","kty","k","oth","encoder","TextEncoder","decoder","TextDecoder","MAX_INT32","concat","buffers","size","acc","buffer","writeUInt32BE","offset","uint64be","high","Math","floor","low","uint32be","encode","string","code","alphabet","unencoded","omitPadding","unusable","isAlgorithm","getHashLength","checkHashLength","expected","actual","checkUsage","usage","usages","checkSigCryptoKey","checkEncCryptoKey","msg","types","last","pop","withAlg","checkKeyLength","modulusLength","subtleAlgorithm","saltLength","getSigKey","sign","cryptoKey","signature","verify","unprotected","assertNotSet","decodeBase64url","label","ErrorClass","digest","subtleDigest","isObjectLike","getPrototypeOf","proto","isDisjoint","sources","header","parameters","parameter","isJWK","isPrivateJWK","priv","d","isPublicJWK","isSecretJWK","assertCryptoKey","toStringTag","CryptoKey","isKeyLike","tag","jwkMatchesOp","use","key_ops","expectedKeyOp","symmetricTypeCheck","asymmetricTypeCheck","checkKeyType","validateCrit","Err","recognizedDefault","recognizedOption","protectedHeader","joseHeader","crit","recognized","validateAlgorithms","option","algorithms","s","unsupportedAlg","subtleMapping","crv","unusableForAlg","handleJWK","freeze","WeakMap","cached","handleKeyObject","keyObject","asymmetricKeyType","toCryptoKey","nist","asymmetricKeyDetails","expectedCurve","normalizeKey","b64u","flattenedVerify","jws","protected","parsedProt","extensions","resolvedKey","verified","unprotectedHeader","compactVerify","epoch","date","getTime","minute","hour","day","week","year","REGEX","secs","str","matched","exec","parseFloat","unit","numericDate","round","validateInput","Number","isFinite","normalizeTyp","checkAudiencePresence","audPayload","audOption","validateClaimsSet","encodedPayload","typ","requiredClaims","issuer","subject","audience","maxTokenAge","presenceCheck","reverse","iss","sub","aud","tolerance","clockTolerance","currentDate","now","iat","nbf","exp","age","max","JWTClaimsBuilder","_classPrivateFieldInitSpec","_payload","_classPrivateFieldSet","structuredClone","stringify","_classPrivateFieldGet","jti","jwtVerify","jwt","decodeJwt","decoded","discoveryConfig","DEFAULT_WEBOPS_ORIGIN","getWebopsOrigin","hostFromEnv","WEBOPS_API_URL","trim","hostWithoutTrailingSlash","publicKeyUrl","protectionStatusUrl","storeId","sessionUrl","renewUrl","passwordProtectionTimeouts","publicKeyMs","defaultMs","obj","errors","storeConfig","COOKIE_NAME","TOKEN_TTL_SECONDS","PUBLIC_KEY_CACHE_MS","publicKeyCache","fetchPublicKeyPemFromWebOps","AbortSignal","timeout","publicKey","getPublicVerificationKey","fetchedAt","resetPasswordProtectionPublicKeyCacheForTests","PasswordProtectionService","getNormalizedHost","checkStoreProtection","shouldCheckProtection","token","verification","verifyToken","valid","expired","tryRenewSession","handleProtectionCheck","isDefaultDomain","CUSTOM_DOMAINS_PROTECTION_ENABLED","shouldProtectDomain","scope","payloadMatchesStore","isJwtExpiredError","p","expiredToken","setProtectionCookie","redirectToUnlockPage","maxAge","unlockUrl","returnTo","DynamoRedirectsClient","_from","redirectsClient","storeProtectionResult","protectionService","ENABLE_REDIRECTS_MIDDLEWARE","redirectUrl","to","storeUrl","redirectStatusCode","matcher","isMergeableObject","isNonNullObject","isSpecial","stringValue","isReactElement","canUseSymbol","REACT_ELEMENT_TYPE","$$typeof","emptyTarget","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","source","map","element","getMergeFunction","customMerge","getEnumerableOwnPropertySymbols","getOwnPropertySymbols","symbol","propertyIsEnumerable","getKeys","propertyIsOnObject","object","property","_","propertyIsUnsafe","hasOwnProperty","mergeObject","arrayMerge","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","deepmergeAll","array","prev","deepmerge_1","exports","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","arguments","getOwnPropertyDescriptors","defineProperties","__defProp","__getOwnPropDesc","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","__export","__copyProps","except","desc","__toCommonJS","mod","src_exports","parseCookie","parseSetCookie","stringifyCookie","_a","attrs","toUTCString","priority","encodeURIComponent","pair","splitAt","decodeURIComponent","setCookie","attributes","httponly","maxage","samesite","value2","parseSameSite","parsePriority","compact","t","newT","SAME_SITE","PRIORITY","_parsed","_headers","n","names","clear","responseHeaders","_b","_c","getSetCookie","cookieStrings","cookieString","normalizeCookie","bag","serialized","__nccwpck_require__","ab","__dirname","e","r","f","u","substr","tryDecode","isNaN","seo","description","titleTemplate","author","publisherId","plp","descriptionTemplate","pdp","minPriceAmountFractionDigits","noIndex","noFollow","bodyH1","theme","platform","workspace","subDomainPrefix","environment","hideUnavailableItems","showSponsored","incrementAddress","enableUnavailableItemsOnCart","session","currency","channel","country","deliveryMode","addressType","city","postalCode","geoCoordinates","b2b","person","marketingData","utmCampaign","utmMedium","utmSource","utmiCampaign","utmiPart","utmiPage","refreshAfter","cart","id","items","messages","shouldSplitItem","secureSubdomain","checkoutUrl","loginUrl","accountUrl","previewRedirects","home","lighthouse","BASE_SITE_URL","pages","collection","cypress","collection_2","collection_filtered","analytics","gtmContainerId","cms","CMS_DATA","contentSource","deliveryPromise","mandatory","experimental","cypressVersion","enableCypressExtension","enableScriptsLogs","noRobots","noindex","nofollow","preact","enableRedirects","enableSearchSSR","enableFaststoreMyAccount","useIsGiftFromOrderForm","graphqlCacheControl","staleWhileRevalidate","refreshToken","scrollRestoration","transpilePackages","direction","defaultConfig","starterConfig","finalConfig"],"sourceRoot":""}
|