Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update React from c3048aab4 to cb151849e1 #64994

Closed
wants to merge 7 commits into from
Closed

Conversation

eps1lon
Copy link
Member

@eps1lon eps1lon commented Apr 24, 2024

React upstream changes

Closes NEXT-3218

Would be nice to do this via onCaughtError but I copying the full impl of `defaultOnCaughtError` seems sketchy.
See https://vercel.slack.com/archives/C04TR3U872A/p1713969391445789 for quick proposal
Fixes displaying 2 errors in the redbox when just one was thrown.
It counted 2 because we had the actual error and React's "the above occured"
`next/dist/compiled/react-dom` can never appear in a require call i.e. be treated as an external because these modules don't import from vendored react-dom
but installed react-dom
@ijjk
Copy link
Member

ijjk commented Apr 24, 2024

Failing test suites

Commit: ccb01f5

TURBOPACK=1 pnpm test test/integration/app-dir-export/test/dev-custom-dist-dir.test.ts (turbopack)

  • app dir - with output export and custom distDir (next dev) > should render properly
Expand output

● app dir - with output export and custom distDir (next dev) › should render properly

expect(received).toBe(expected) // Object.is equality

Expected: 200
Received: 500

  31 |   it('should render properly', async () => {
  32 |     const res = await fetchViaHTTP(appPort, '/')
> 33 |     expect(res.status).toBe(200)
     |                        ^
  34 |     expect(await res.text()).toContain('Home')
  35 |   })
  36 | })

  at Object.toBe (integration/app-dir-export/test/dev-custom-dist-dir.test.ts:33:24)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test-start test/e2e/app-dir/app-css-pageextensions/index.test.ts (turbopack)

  • app dir - css with pageextensions > css support with pageextensions > page in app directory with pageextention, css should work > should support global css inside layout
Expand output

● app dir - css with pageextensions › css support with pageextensions › page in app directory with pageextention, css should work › should support global css inside layout

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test-start test/e2e/app-dir/app-config-crossorigin/index.test.ts (turbopack)

  • app dir - crossOrigin config > skip in start mode
Expand output

● app dir - crossOrigin config › skip in start mode

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

Read more about building and testing Next.js in contributing.md.

__NEXT_EXPERIMENTAL_PPR=true pnpm test test/integration/app-dynamic-error/test/index.test.ts (PPR)

  • app-dynamic-error > production mode > throws an error when prerendering a page with config dynamic error
Expand output

● app-dynamic-error › production mode › throws an error when prerendering a page with config dynamic error

expect(received).toContain(expected) // indexOf

Expected substring: "Error occurred prerendering page \"/dynamic-error\""
Received string:    " ⚠ `experimental.ppr` has been defaulted to `true` because `__NEXT_EXPERIMENTAL_PPR` was set to `true` during testing.
 ⚠ `experimental.ppr` has been defaulted to `true` because `__NEXT_EXPERIMENTAL_PPR` was set to `true` during testing.
 ⚠ `experimental.ppr` has been defaulted to `true` because `__NEXT_EXPERIMENTAL_PPR` was set to `true` during testing.
 ⚠ `experimental.ppr` has been defaulted to `true` because `__NEXT_EXPERIMENTAL_PPR` was set to `true` during testing.
 ⚠ `experimental.ppr` has been defaulted to `true` because `__NEXT_EXPERIMENTAL_PPR` was set to `true` during testing.·
 ⚠ The Next.js plugin was not detected in your ESLint configuration. See https://nextjs.org/docs/basic-features/eslint#migrating-existing-config
TypeError: Cannot read properties of undefined (reading 'ReactCurrentDispatcher')

  10 |  * Copyright(c) 2015 Douglas Christopher Wilson
  11 |  * MIT Licensed
> 12 |  */t.parse=function(t,r){if("string"!=typeof t)throw TypeError("argument str must be a string");for(var o={},a=t.split(n),i=(r||{}).decode||e,s=0;s<a.length;s++){var l=a[s],u=l.indexOf("=");if(!(u<0)){var c=l.substr(0,u).trim(),d=l.substr(++u,l.length).trim();'"'==d[0]&&(d=d.slice(1,-1)),void 0==o[c]&&(o[c]=function(e,t){try{return t(e)}catch(t){return e}}(d,i))}}return o},t.serialize=function(e,t,n){var a=n||{},i=a.encode||r;if("function"!=typeof i)throw TypeError("option encode is invalid");if(!o.test(e))throw TypeError("argument name is invalid");var s=i(t);if(s&&!o.test(s))throw TypeError("argument val is invalid");var l=e+"="+s;if(null!=a.maxAge){var u=a.maxAge-0;if(isNaN(u)||!isFinite(u))throw TypeError("option maxAge is invalid");l+="; Max-Age="+Math.floor(u)}if(a.domain){if(!o.test(a.domain))throw TypeError("option domain is invalid");l+="; Domain="+a.domain}if(a.path){if(!o.test(a.path))throw TypeError("option path is invalid");l+="; Path="+a.path}if(a.expires){if("function"!=typeof a.expires.toUTCString)throw TypeError("option expires is invalid");l+="; Expires="+a.expires.toUTCString()}if(a.httpOnly&&(l+="; HttpOnly"),a.secure&&(l+="; Secure"),a.sameSite)switch("string"==typeof a.sameSite?a.sameSite.toLowerCase():a.sameSite){case!0:case"strict":l+="; SameSite=Strict";break;case"lax":l+="; SameSite=Lax";break;case"none":l+="; SameSite=None";break;default:throw TypeError("option sameSite is invalid")}return l};var e=decodeURIComponent,r=encodeURIComponent,n=/; */,o=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/})(),e.exports=t})()},"./dist/compiled/react-dom-experimental/cjs/react-dom-server-rendering-stub.production.min.js":(e,t,r)=>{"use strict";var n=r("./dist/compiled/react-experimental/index.js");function o(){}var a={usingClientEntryPoint:!1,Events:null,ReactDOMCurrentDispatcher:{current:{prefetchDNS:o,preconnect:o,preload:o,preloadModule:o,preinitScript:o,preinitStyle:o,preinitModuleScript:o}}};function i(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var r=2;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function s(e,t){return"font"===e?"":"string"==typeof t?"use-credentials"===t?t:"":void 0}var l=a.ReactDOMCurrentDispatcher,u=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentDispatcher;function c(){return u.current.useHostTransitionStatus()}function d(e,t,r){return u.current.useFormState(e,t,r)}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=a,t.createPortal=function(){throw Error(i(448))},t.experimental_useFormState=function(e,t,r){return d(e,t,r)},t.experimental_useFormStatus=function(){return c()},t.flushSync=function(){throw Error(i(449))},t.preconnect=function(e,t){"string"==typeof e&&(t=t?"string"==typeof(t=t.crossOrigin)?"use-credentials"===t?t:"":void 0:null,l.current.preconnect(e,t))},t.prefetchDNS=function(e){"string"==typeof e&&l.current.prefetchDNS(e)},t.preinit=function(e,t){if("string"==typeof e&&t&&"string"==typeof t.as){var r=t.as,n=s(r,t.crossOrigin),o="string"==typeof t.integrity?t.integrity:void 0,a="string"==typeof t.fetchPriority?t.fetchPriority:void 0;"style"===r?l.current.preinitStyle(e,"string"==typeof t.precedence?t.precedence:void 0,{crossOrigin:n,integrity:o,fetchPriority:a}):"script"===r&&l.current.preinitScript(e,{crossOrigin:n,integrity:o,fetchPriority:a,nonce:"string"==typeof t.nonce?t.nonce:void 0})}},t.preinitModule=function(e,t){if("string"==typeof e){if("object"==typeof t&&null!==t){if(null==t.as||"script"===t.as){var r=s(t.as,t.crossOrigin);l.current.preinitModuleScript(e,{crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0})}}else null==t&&l.current.preinitModuleScript(e)}},t.preload=function(e,t){if("string"==typeof e&&"object"==typeof t&&null!==t&&"string"==typeof t.as){var r=t.as,n=s(r,t.crossOrigin);l.current.preload(e,r,{crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,type:"string"==typeof t.type?t.type:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0,referrerPolicy:"string"==typeof t.referrerPolicy?t.referrerPolicy:void 0,imageSrcSet:"string"==typeof t.imageSrcSet?t.imageSrcSet:void 0,imageSizes:"string"==typeof t.imageSizes?t.imageSizes:void 0})}},t.preloadModule=function(e,t){if("string"==typeof e){if(t){var r=s(t.as,t.crossOrigin);l.current.preloadModule(e,{as:"string"==typeof t.as&&"script"!==t.as?t.as:void 0,crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0})}else l.current.preloadModule(e)}},t.unstable_batchedUpdates=function(e,t){return e(t)},t.useFormState=d,t.useFormStatus=c,t.version="18.3.0-experimental-c3048aab4-20240326"},"./dist/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js":(e,t,r)=>{"use strict";/**
     |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ^
  13 |  * @license React
  14 |  * react-dom-server.edge.production.js
  15 |  *

  at ./dist/compiled/react-dom-experimental/cjs/react-dom-server-rendering-stub.production.min.js (../packages/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js:12:2476)
  at r (../packages/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js:108:49534)
  at ./dist/compiled/react-dom-experimental/server-rendering-stub.js (../packages/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js:20:180960)
  at r (../packages/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js:108:49534)
  at ../packages/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js:112:2791
  at ../packages/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js:115:4632
  at Object.<anonymous> (../packages/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js:115:4653)
  at Module.load (../node:internal/modules/cjs/loader:1119:32)·
  > Build error occurred
  Error: Failed to collect page data for /_not-found
  at ../packages/next/dist/build/utils.js:1267:15
  at process.processTicksAndRejections (../node:internal/process/task_queues:95:5) {
    type: 'Error'
  }
  "
  at Object.toContain (integration/app-dynamic-error/test/index.test.ts:13:24)

Read more about building and testing Next.js in contributing.md.

pnpm test test/integration/build-trace-extra-entries-turbo/test/index.test.js

  • build trace with extra entries > production mode > should build and trace correctly
Expand output

● build trace with extra entries › production mode › should build and trace correctly

expect(received).toBe(expected) // Object.is equality

Expected: 0
Received: 1

  18 |         })
  19 |         console.log(result)
> 20 |         expect(result.code).toBe(0)
     |                             ^
  21 |
  22 |         const appTrace = await fs.readJSON(
  23 |           join(appDir, '.next/server/pages/_app.js.nft.json')

  at Object.toBe (integration/build-trace-extra-entries-turbo/test/index.test.js:20:29)

Read more about building and testing Next.js in contributing.md.

pnpm test-dev test/development/app-dir/hmr-deleted-page/hmr-deleted-page.test.ts

  • hmr-deleted-page > should not show errors for a deleted page
Expand output

● hmr-deleted-page › should not show errors for a deleted page

expect(received).toBe(expected) // Object.is equality

Expected: "nested hello world"
Received: ""

  14 |   it('should not show errors for a deleted page', async () => {
  15 |     const browser = await next.browser('/page')
> 16 |     expect(await browser.elementByCss('p').text()).toBe('nested hello world')
     |                                                    ^
  17 |
  18 |     await next.deleteFile('app/page/test.tsx')
  19 |     await next.deleteFile('app/page/style.css')

  at Object.toBe (development/app-dir/hmr-deleted-page/hmr-deleted-page.test.ts:16:52)

Read more about building and testing Next.js in contributing.md.

pnpm test-start test/e2e/app-dir/app-basepath-custom-server/index.test.ts

  • custom-app-server-action-redirect > redirects with basepath properly when server action handler uses redirect
  • custom-app-server-action-redirect > redirects with proper cookies set from both redirect response and post respose
Expand output

● custom-app-server-action-redirect › redirects with basepath properly when server action handler uses redirect

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

● custom-app-server-action-redirect › redirects with proper cookies set from both redirect response and post respose

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

Read more about building and testing Next.js in contributing.md.

pnpm test-start test/e2e/app-dir/actions-allowed-origins/app-action-disallowed-origins.test.ts

  • app-dir action disallowed origins > should error if x-forwarded-host does not match the origin
Expand output

● app-dir action disallowed origins › should error if x-forwarded-host does not match the origin

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

Read more about building and testing Next.js in contributing.md.

pnpm test test/integration/babel-next-image/babel-next-image.test.js

  • babel-next-image > should work with babel and next/image
Expand output

● babel-next-image › should work with babel and next/image

expect(received).toBe(expected) // Object.is equality

Expected: 200
Received: 500

  15 |   it('should work with babel and next/image', async () => {
  16 |     const res = await fetchViaHTTP(appPort, '/')
> 17 |     expect(res.status).toBe(200)
     |                        ^
  18 |   })
  19 | })
  20 |

  at Object.toBe (integration/babel-next-image/babel-next-image.test.js:17:24)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/app-config-asset-prefix/test/index.test.js (turbopack)

  • App assetPrefix config > should render correctly with assetPrefix: "/"
Expand output

● App assetPrefix config › should render correctly with assetPrefix: "/"

expect(received).toBe(expected) // Object.is equality

Expected: false
Received: true

  26 |     try {
  27 |       await waitFor(2000)
> 28 |       expect(await hasRedbox(browser)).toBe(false)
     |                                        ^
  29 |       const title = await browser.elementById('title').text()
  30 |       expect(title).toBe('IndexPage')
  31 |     } finally {

  at Object.toBe (integration/app-config-asset-prefix/test/index.test.js:28:40)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test-start test/e2e/app-dir/app-prefetch-static/app-prefetch-static.test.ts (turbopack)

  • app-prefetch-static > should correctly navigate between static & dynamic pages
Expand output

● app-prefetch-static › should correctly navigate between static & dynamic pages

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

Read more about building and testing Next.js in contributing.md.

pnpm test-start test/e2e/app-dir/_allow-underscored-root-directory/_allow-underscored-root-directory.test.ts

  • _allow-underscored-root-directory > should not serve app path with underscore
  • _allow-underscored-root-directory > should pages path with a underscore at the root
  • _allow-underscored-root-directory > should serve app path with %5F
Expand output

● _allow-underscored-root-directory › should not serve app path with underscore

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

● _allow-underscored-root-directory › should pages path with a underscore at the root

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

● _allow-underscored-root-directory › should serve app path with %5F

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

Read more about building and testing Next.js in contributing.md.

pnpm test-dev test/development/acceptance-app/dynamic-error.test.ts

  • dynamic = "error" in devmode > should show error overlay when dynamic is forced
Expand output

● dynamic = "error" in devmode › should show error overlay when dynamic is forced

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `dynamic = "error" in devmode should show error overlay when dynamic is forced 1`

Snapshot: "Error: Route /server with `dynamic = "error"` couldn't be rendered statically because it used `cookies`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering"
Received: "TypeError: Cannot read properties of undefined (reading 'ReactCurrentDispatcher')"

  33 |     await session.hasRedbox()
  34 |     console.log(await session.getRedboxDescription())
> 35 |     expect(await session.getRedboxDescription()).toMatchInlineSnapshot(
     |                                                  ^
  36 |       `"Error: Route /server with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering"`
  37 |     )
  38 |

  at Object.toMatchInlineSnapshot (development/acceptance-app/dynamic-error.test.ts:35:50)

Read more about building and testing Next.js in contributing.md.

pnpm test-dev test/development/acceptance-app/ReactRefresh.test.ts

  • ReactRefresh app > can edit a component without losing state
  • ReactRefresh app > cyclic dependencies
Expand output

● ReactRefresh app › can edit a component without losing state

expect(received).toBe(expected) // Object.is equality

Expected: "1"
Received: ""

  36 |     expect(
  37 |       await session.evaluate(() => document.querySelector('p').textContent)
> 38 |     ).toBe('1')
     |       ^
  39 |     await session.patch(
  40 |       'index.js',
  41 |       outdent`

  at Object.toBe (development/acceptance-app/ReactRefresh.test.ts:38:7)

● ReactRefresh app › cyclic dependencies

expect(received).toBe(expected) // Object.is equality

Expected: "Hello. 100"
Received: ""

  165 |     expect(
  166 |       await session.evaluate(() => document.querySelector('p').textContent)
> 167 |     ).toBe('Hello. 100')
      |       ^
  168 |
  169 |     let didFullRefresh = !(await session.patch(
  170 |       'SurveyOverview.js',

  at Object.toBe (development/acceptance-app/ReactRefresh.test.ts:167:7)

Read more about building and testing Next.js in contributing.md.

pnpm test test/integration/build-trace-extra-entries/test/index.test.js

  • build trace with extra entries > production mode > should build and trace correctly
Expand output

● build trace with extra entries › production mode › should build and trace correctly

expect(received).toBe(expected) // Object.is equality

Expected: 0
Received: 1

  18 |         })
  19 |         console.log(result)
> 20 |         expect(result.code).toBe(0)
     |                             ^
  21 |
  22 |         const appTrace = await fs.readJSON(
  23 |           join(appDir, '.next/server/pages/_app.js.nft.json')

  at Object.toBe (integration/build-trace-extra-entries/test/index.test.js:20:29)

Read more about building and testing Next.js in contributing.md.

__NEXT_EXPERIMENTAL_PPR=true pnpm test-dev test/e2e/app-dir/app-simple-routes/app-simple-routes.test.ts (PPR)

  • app-simple-routes > works with simple routes > renders a node route
  • app-simple-routes > works with simple routes > renders a edge route
Expand output

● app-simple-routes › works with simple routes › renders a node route

SyntaxError: Unexpected token '<', "<!DOCTYPE "... is not valid JSON
    at JSON.parse (<anonymous>)

  12 |       it('renders a node route', async () => {
  13 |         expect(
> 14 |           JSON.parse(await next.render(bathPath + '/api/node.json'))
     |                ^
  15 |         ).toEqual({
  16 |           pathname: '/api/node.json',
  17 |         })

  at Object.parse (e2e/app-dir/app-simple-routes/app-simple-routes.test.ts:14:16)

● app-simple-routes › works with simple routes › renders a edge route

SyntaxError: Unexpected token '<', "<!DOCTYPE "... is not valid JSON
    at JSON.parse (<anonymous>)

  19 |       it('renders a edge route', async () => {
  20 |         expect(
> 21 |           JSON.parse(await next.render(bathPath + '/api/edge.json'))
     |                ^
  22 |         ).toEqual({
  23 |           pathname: '/api/edge.json',
  24 |         })

  at Object.parse (e2e/app-dir/app-simple-routes/app-simple-routes.test.ts:21:16)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/app-dir-export/test/config.test.ts (turbopack)

  • app dir - with output export (next dev / next build) > production mode > should error when running next export
Expand output

● app dir - with output export (next dev / next build) › production mode › should error when running next export

command failed with code 1 signal null
  ▲ Next.js 14.3.0-canary.21 (turbo)

   Creating an optimized production build ...
next-swc build: local built @next/swc from NEXT_TEST_NATIVE_DIR
   Building (0/11) ...
   Building (2/11) 
   Building (5/11) 
   Building (8/11) 
 ✓ Building (11/11)
   Linting and checking validity of types ...

 ⚠ The Next.js plugin was not detected in your ESLint configuration. See https://nextjs.org/docs/basic-features/eslint#migrating-existing-config
   Collecting page data ...
TypeError: Cannot read properties of undefined (reading 'ReactCurrentDispatcher')

  10 |  * Copyright(c) 2015 Douglas Christopher Wilson
  11 |  * MIT Licensed
> 12 |  */t.parse=function(t,r){if("string"!=typeof t)throw TypeError("argument str must be a string");for(var o={},i=t.split(n),a=(r||{}).decode||e,s=0;s<i.length;s++){var l=i[s],u=l.indexOf("=");if(!(u<0)){var c=l.substr(0,u).trim(),d=l.substr(++u,l.length).trim();'"'==d[0]&&(d=d.slice(1,-1)),void 0==o[c]&&(o[c]=function(e,t){try{return t(e)}catch(t){return e}}(d,a))}}return o},t.serialize=function(e,t,n){var i=n||{},a=i.encode||r;if("function"!=typeof a)throw TypeError("option encode is invalid");if(!o.test(e))throw TypeError("argument name is invalid");var s=a(t);if(s&&!o.test(s))throw TypeError("argument val is invalid");var l=e+"="+s;if(null!=i.maxAge){var u=i.maxAge-0;if(isNaN(u)||!isFinite(u))throw TypeError("option maxAge is invalid");l+="; Max-Age="+Math.floor(u)}if(i.domain){if(!o.test(i.domain))throw TypeError("option domain is invalid");l+="; Domain="+i.domain}if(i.path){if(!o.test(i.path))throw TypeError("option path is invalid");l+="; Path="+i.path}if(i.expires){if("function"!=typeof i.expires.toUTCString)throw TypeError("option expires is invalid");l+="; Expires="+i.expires.toUTCString()}if(i.httpOnly&&(l+="; HttpOnly"),i.secure&&(l+="; Secure"),i.sameSite)switch("string"==typeof i.sameSite?i.sameSite.toLowerCase():i.sameSite){case!0:case"strict":l+="; SameSite=Strict";break;case"lax":l+="; SameSite=Lax";break;case"none":l+="; SameSite=None";break;default:throw TypeError("option sameSite is invalid")}return l};var e=decodeURIComponent,r=encodeURIComponent,n=/; */,o=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/})(),e.exports=t})()},"./dist/compiled/react-dom/cjs/react-dom-server-rendering-stub.production.min.js":(e,t,r)=>{"use strict";var n=r("./dist/compiled/react/index.js");function o(){}var i={usingClientEntryPoint:!1,Events:null,ReactDOMCurrentDispatcher:{current:{prefetchDNS:o,preconnect:o,preload:o,preloadModule:o,preinitScript:o,preinitStyle:o,preinitModuleScript:o}}};function a(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var r=2;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function s(e,t){return"font"===e?"":"string"==typeof t?"use-credentials"===t?t:"":void 0}var l=i.ReactDOMCurrentDispatcher,u=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentDispatcher;function c(){return u.current.useHostTransitionStatus()}function d(e,t,r){return u.current.useFormState(e,t,r)}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=i,t.createPortal=function(){throw Error(a(448))},t.experimental_useFormState=function(e,t,r){return d(e,t,r)},t.experimental_useFormStatus=function(){return c()},t.flushSync=function(){throw Error(a(449))},t.preconnect=function(e,t){"string"==typeof e&&(t=t?"string"==typeof(t=t.crossOrigin)?"use-credentials"===t?t:"":void 0:null,l.current.preconnect(e,t))},t.prefetchDNS=function(e){"string"==typeof e&&l.current.prefetchDNS(e)},t.preinit=function(e,t){if("string"==typeof e&&t&&"string"==typeof t.as){var r=t.as,n=s(r,t.crossOrigin),o="string"==typeof t.integrity?t.integrity:void 0,i="string"==typeof t.fetchPriority?t.fetchPriority:void 0;"style"===r?l.current.preinitStyle(e,"string"==typeof t.precedence?t.precedence:void 0,{crossOrigin:n,integrity:o,fetchPriority:i}):"script"===r&&l.current.preinitScript(e,{crossOrigin:n,integrity:o,fetchPriority:i,nonce:"string"==typeof t.nonce?t.nonce:void 0})}},t.preinitModule=function(e,t){if("string"==typeof e){if("object"==typeof t&&null!==t){if(null==t.as||"script"===t.as){var r=s(t.as,t.crossOrigin);l.current.preinitModuleScript(e,{crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0})}}else null==t&&l.current.preinitModuleScript(e)}},t.preload=function(e,t){if("string"==typeof e&&"object"==typeof t&&null!==t&&"string"==typeof t.as){var r=t.as,n=s(r,t.crossOrigin);l.current.preload(e,r,{crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,type:"string"==typeof t.type?t.type:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0,referrerPolicy:"string"==typeof t.referrerPolicy?t.referrerPolicy:void 0,imageSrcSet:"string"==typeof t.imageSrcSet?t.imageSrcSet:void 0,imageSizes:"string"==typeof t.imageSizes?t.imageSizes:void 0})}},t.preloadModule=function(e,t){if("string"==typeof e){if(t){var r=s(t.as,t.crossOrigin);l.current.preloadModule(e,{as:"string"==typeof t.as&&"script"!==t.as?t.as:void 0,crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0})}else l.current.preloadModule(e)}},t.unstable_batchedUpdates=function(e,t){return e(t)},t.useFormState=d,t.useFormStatus=c,t.version="18.3.0-canary-c3048aab4-20240326"},"./dist/compiled/react-dom/cjs/react-dom-server.edge.production.min.js":(e,t,r)=>{"use strict";var n=r("./dist/compiled/react/index.js"),o=r("./dist/compiled/react-dom/server-rendering-stub.js"),i=Symbol.for("react.element"),a=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),u=Symbol.for("react.profiler"),c=Symbol.for("react.provider"),d=Symbol.for("react.consumer"),f=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),m=Symbol.for("react.suspense_list"),y=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),v=Symbol.for("react.scope"),b=Symbol.for("react.debug_trace_mode"),S=Symbol.for("react.offscreen"),w=Symbol.for("react.legacy_hidden"),k=Symbol.for("react.cache"),_=Symbol.iterator,x=Array.isArray;function C(e,t){var r=3&e.length,n=e.length-r,o=t;for(t=0;t<n;){var i=255&e.charCodeAt(t)|(255&e.charCodeAt(++t))<<8|(255&e.charCodeAt(++t))<<16|(255&e.charCodeAt(++t))<<24;++t,o^=i=461845907*(65535&(i=(i=3432918353*(65535&i)+((3432918353*(i>>>16)&65535)<<16)&4294967295)<<15|i>>>17))+((461845907*(i>>>16)&65535)<<16)&4294967295,o=(65535&(o=5*(65535&(o=o<<13|o>>>19))+((5*(o>>>16)&65535)<<16)&4294967295))+27492+(((o>>>16)+58964&65535)<<16)}switch(i=0,r){case 3:i^=(255&e.charCodeAt(t+2))<<16;case 2:i^=(255&e.charCodeAt(t+1))<<8;case 1:i^=255&e.charCodeAt(t),o^=461845907*(65535&(i=(i=3432918353*(65535&i)+((3432918353*(i>>>16)&65535)<<16)&4294967295)<<15|i>>>17))+((461845907*(i>>>16)&65535)<<16)&4294967295}return o^=e.length,o^=o>>>16,o=2246822507*(65535&o)+((2246822507*(o>>>16)&65535)<<16)&4294967295,o^=o>>>13,((o=3266489909*(65535&o)+((3266489909*(o>>>16)&65535)<<16)&4294967295)^o>>>16)>>>0}var $=null,P=0;function E(e,t){if(0!==t.byteLength){if(2048<t.byteLength)0<P&&(e.enqueue(new Uint8Array($.buffer,0,P)),$=new Uint8Array(2048),P=0),e.enqueue(t);else{var r=$.length-P;r<t.byteLength&&(0===r?e.enqueue($):($.set(t.subarray(0,r),P),e.enqueue($),t=t.subarray(r)),$=new Uint8Array(2048),P=0),$.set(t,P),P+=t.byteLength}}}function R(e,t){return E(e,t),!0}function T(e){$&&0<P&&(e.enqueue(new Uint8Array($.buffer,0,P)),$=null,P=0)}var j=new TextEncoder;function O(e){return j.encode(e)}function A(e){return j.encode(e)}function I(e,t){"function"==typeof e.error?e.error(t):e.close()}var N=Object.assign,M=Object.prototype.hasOwnProperty,L=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),D={},F={};function H(e){return!!M.call(F,e)||!M.call(D,e)&&(L.test(e)?F[e]=!0:(D[e]=!0,!1))}var U=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" ")),B=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),q=/["'&<>]/;function W(e){if("boolean"==typeof e||"number"==typeof e)return""+e;e=""+e;var t=q.exec(e);if(t){var r,n="",o=0;for(r=t.index;r<e.length;r++){switch(e.charCodeAt(r)){case 34:t="&quot;";break;case 38:t="&amp;";break;case 39:t="&#x27;";break;case 60:t="&lt;";break;case 62:t="&gt;";break;default:continue}o!==r&&(n+=e.slice(o,r)),o=r+1,n+=t}e=o!==r?n+e.slice(o,r):n}return e}var z=/([A-Z])/g,J=/^ms-/,V=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,G={pending:!1,data:null,method:null,action:null},Y=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDOMCurrentDispatcher,X=Y.current;Y.current={prefetchDNS:function(e){var t=nk();if(t){var r,n,o=t.resumableState,i=t.renderState;"string"==typeof e&&e&&(o.dnsResources.hasOwnProperty(e)||(o.dnsResources[e]=null,(n=(o=i.headers)&&0<o.remainingCapacity)&&(r="<"+(""+e).replace(rg,rv)+">; rel=dns-prefetch",n=2<=(o.remainingCapacity-=r.length)),n?(i.resets.dns[e]=null,o.preconnects&&(o.preconnects+=", "),o.preconnects+=r):(eH(r=[],{href:e,rel:"dns-prefetch"}),i.preconnects.add(r))),n6(t))}else X.prefetchDNS(e)},preconnect:function(e,t){var r=nk();if(r){var n=r.resumableState,o=r.renderState;if("string"==typeof e&&e){var i,a,s="use-credentials"===t?"credentials":"string"==typeof t?"anonymous":"default";n.connectResources[s].hasOwnProperty(e)||(n.connectResources[s][e]=null,(a=(n=o.headers)&&0<n.remainingCapacity)&&(a="<"+(""+e).replace(rg,rv)+">; rel=preconnect","string"==typeof t&&(a+='; crossorigin="'+(""+t).replace(rb,rS)+'"'),i=a,a=2<=(n.remainingCapacity-=i.length)),a?(o.resets.connect[s][e]=null,n.preconnects&&(n.preconnects+=", "),n.preconnects+=i):(eH(s=[],{rel:"preconnect",href:e,crossOrigin:t}),o.preconnects.add(s))),n6(r)}}else X.preconnect(e,t)},preload:function(e,t,r){var n=nk();if(n){var o=n.resumableState,i=n.renderState;if(t&&e){switch(t){case"image":if(r)var a,s=r.imageSrcSet,l=r.imageSizes,u=r.fetchPriority;var c=s?s+"\n"+(l||""):e;if(o.imageResources.hasOwnProperty(c))return;o.imageResources[c]=K,(o=i.headers)&&0<o.remainingCapacity&&"high"===u&&(a=ry(e,t,r),2<=(o.remainingCapacity-=a.length))?(i.resets.image[c]=K,o.highImagePreloads&&(o.highImagePreloads+=", "),o.highImagePreloads+=a):(eH(o=[],N({rel:"preload",href:s?void 0:e,as:t},r)),"high"===u?i.highImagePreloads.add(o):(i.bulkPreloads.add(o),i.preloads.images.set(c,o)));break;case"style":if(o.styleResources.hasOwnProperty(e))return;eH(s=[],N({rel:"preload",href:e,as:t},r)),o.styleResources[e]=r&&("string"==typeof r.crossOrigin||"string"==typeof r.integrity)?[r.crossOrigin,r.integrity]:K,i.preloads.stylesheets.set(e,s),i.bulkPreloads.add(s);break;case"script":if(o.scriptResources.hasOwnProperty(e))return;s=[],i.preloads.scripts.set(e,s),i.bulkPreloads.add(s),eH(s,N({rel:"preload",href:e,as:t},r)),o.scriptResources[e]=r&&("string"==typeof r.crossOrigin||"string"==typeof r.integrity)?[r.crossOrigin,r.integrity]:K;break;default:if(o.unknownResources.hasOwnProperty(t)){if((s=o.unknownResources[t]).hasOwnProperty(e))return}else s={},o.unknownResources[t]=s;(s[e]=K,(o=i.headers)&&0<o.remainingCapacity&&"font"===t&&(c=ry(e,t,r),2<=(o.remainingCapacity-=c.length)))?(i.resets.font[e]=K,o.fontPreloads&&(o.fontPreloads+=", "),o.fontPreloads+=c):(eH(o=[],e=N({rel:"preload",href:e,as:t},r)),"font"===t)?i.fontPreloads.add(o):i.bulkPreloads.add(o)}n6(n)}}else X.preload(e,t,r)},preloadModule:function(e,t){var r=nk();if(r){var n=r.resumableState,o=r.renderState;if(e){var i=t&&"string"==typeof t.as?t.as:"script";if("script"===i){if(n.moduleScriptResources.hasOwnProperty(e))return;i=[],n.moduleScriptResources[e]=t&&("string"==typeof t.crossOrigin||"string"==typeof t.integrity)?[t.crossOrigin,t.integrity]:K,o.preloads.moduleScripts.set(e,i)}else{if(n.moduleUnknownResources.hasOwnProperty(i)){var a=n.unknownResources[i];if(a.hasOwnProperty(e))return}else a={},n.moduleUnknownResources[i]=a;i=[],a[e]=K}eH(i,N({rel:"modulepreload",href:e},t)),o.bulkPreloads.add(i),n6(r)}}else X.preloadModule(e,t)},preinitScript:function(e,t){var r=nk();if(r){var n=r.resumableState,o=r.renderState;if(e){var i=n.scriptResources.hasOwnProperty(e)?n.scriptResources[e]:void 0;null!==i&&(n.scriptResources[e]=null,t=N({src:e,async:!0},t),i&&(2===i.length&&rm(t,i),e=o.preloads.scripts.get(e))&&(e.length=0),e=[],o.scripts.add(e),eq(e,t),n6(r))}}else X.preinitScript(e,t)},preinitStyle:function(e,t,r){var n=nk();if(n){var o=n.resumableState,i=n.renderState;if(e){t=t||"default";var a=i.styles.get(t),s=o.styleResources.hasOwnProperty(e)?o.styleResources[e]:void 0;null!==s&&(o.styleResources[e]=null,a||(a={precedence:O(W(t)),rules:[],hrefs:[],sheets:new Map},i.styles.set(t,a)),t={state:0,props:N({rel:"stylesheet",href:e,"data-precedence":t},r)},s&&(2===s.length&&rm(t.props,s),(i=i.preloads.stylesheets.get(e))&&0<i.length?i.length=0:t.state=1),a.sheets.set(e,t),n6(n))}}else X.preinitStyle(e,t,r)},preinitModuleScript:function(e,t){var r=nk();if(r){var n=r.resumableState,o=r.renderState;if(e){var i=n.moduleScriptResources.hasOwnProperty(e)?n.moduleScriptResources[e]:void 0;null!==i&&(n.moduleScriptResources[e]=null,t=N({src:e,type:"module",async:!0},t),i&&(2===i.length&&rm(t,i),e=o.preloads.moduleScripts.get(e))&&(e.length=0),e=[],o.scripts.add(e),eq(e,t),n6(r))}}else X.preinitModuleScript(e,t)}};var K=[],Z=A('"></template>'),Q=A("<script>"),ee=A("</script>"),et=A('<script src="'),er=A('<script type="module" src="'),en=A('" nonce="'),eo=A('" integrity="'),ei=A('" crossorigin="'),ea=A('" async=""></script>'),es=/(<\/|<)(s)(cript)/gi;function el(e,t,r,n){return""+t+("s"===r?"\\u0073":"\\u0053")+n}var eu=A('<script type="importmap">'),ec=A("</script>");function ed(e,t,r){return{insertionMode:e,selectedValue:t,tagScope:r}}function ef(e,t,r){switch(t){case"noscript":return ed(2,null,1|e.tagScope);case"select":return ed(2,null!=r.value?r.value:r.defaultValue,e.tagScope);case"svg":return ed(3,null,e.tagScope);case"picture":return ed(2,null,2|e.tagScope);case"math":return ed(4,null,e.tagScope);case"foreignObject":return ed(2,null,e.tagScope);case"table":return ed(5,null,e.tagScope);case"thead":case"tbody":case"tfoot":return ed(6,null,e.tagScope);case"colgroup":return ed(8,null,e.tagScope);case"tr":return ed(7,null,e.tagScope)}return 5<=e.insertionMode?ed(2,null,e.tagScope):0===e.insertionMode?"html"===t?ed(1,null,e.tagScope):ed(2,null,e.tagScope):1===e.insertionMode?ed(2,null,e.tagScope):e}var ep=A("<!-- -->");function eh(e,t,r,n){return""===t?n:(n&&e.push(ep),e.push(O(W(t))),!0)}var em=new Map,ey=A(' style="'),eg=A(":"),ev=A(";");function eb(e,t){if("object"!=typeof t)throw Error("The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.");var r,n=!0;for(r in t)if(M.call(t,r)){var o=t[r];if(null!=o&&"boolean"!=typeof o&&""!==o){if(0===r.indexOf("--")){var i=O(W(r));o=O(W((""+o).trim()))}else void 0===(i=em.get(r))&&(i=A(W(r.replace(z,"-$1").toLowerCase().replace(J,"-ms-"))),em.set(r,i)),o="number"==typeof o?0===o||U.has(r)?O(""+o):O(o+"px"):O(W((""+o).trim()));n?(n=!1,e.push(ey,i,eg,o)):e.push(ev,i,eg,o)}}n||e.push(ek)}var eS=A(" "),ew=A('="'),ek=A('"'),e_=A('=""');function ex(e,t,r){r&&"function"!=typeof r&&"symbol"!=typeof r&&e.push(eS,O(t),e_)}function eC(e,t,r){"function"!=typeof r&&"symbol"!=typeof r&&"boolean"!=typeof r&&e.push(eS,O(t),ew,O(W(r)),ek)}var e$=A(W("javascript:throw new Error('React form unexpectedly submitted.')")),eP=A('<input type="hidden"');function eE(e,t){if(this.push(eP),"string"!=typeof e)throw Error("File/Blob fields are not yet supported in progressive forms. It probably means you are closing over binary data or FormData in a Server Action.");eC(this,"name",t),eC(this,"value",e),this.push(eA)}function eR(e,t){if("function"==typeof t.$$FORM_ACTION){var r=e.nextFormID++;e=e.idPrefix+r;try{return t.$$FORM_ACTION(e)}catch(e){if("object"==typeof e&&null!==e&&"function"==typeof e.then)throw e}}return null}function eT(e,t,r,n,o,i,a,s){var l=null;if("function"==typeof n){var u=eR(t,n);null!==u?(s=u.name,n=u.action||"",o=u.encType,i=u.method,a=u.target,l=u.data):(e.push(eS,O("formAction"),ew,e$,ek),a=i=o=n=s=null,eL(t,r))}return null!=s&&ej(e,"name",s),null!=n&&ej(e,"formAction",n),null!=o&&ej(e,"formEncType",o),null!=i&&ej(e,"formMethod",i),null!=a&&ej(e,"formTarget",a),l}function ej(e,t,r){switch(t){case"className":eC(e,"class",r);break;case"tabIndex":eC(e,"tabindex",r);break;case"dir":case"role":case"viewBox":case"width":case"height":eC(e,t,r);break;case"style":eb(e,r);break;case"src":case"href":case"action":case"formAction":if(null==r||"function"==typeof r||"symbol"==typeof r||"boolean"==typeof r)break;r=""+r,e.push(eS,O(t),ew,O(W(r)),ek);break;case"defaultValue":case"defaultChecked":case"innerHTML":case"suppressContentEditableWarning":case"suppressHydrationWarning":case"ref":break;case"autoFocus":case"multiple":case"muted":ex(e,t.toLowerCase(),r);break;case"xlinkHref":if("function"==typeof r||"symbol"==typeof r||"boolean"==typeof r)break;r=""+r,e.push(eS,O("xlink:href"),ew,O(W(r)),ek);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":"function"!=typeof r&&"symbol"!=typeof r&&e.push(eS,O(t),ew,O(W(r)),ek);break;case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":r&&"function"!=typeof r&&"symbol"!=typeof r&&e.push(eS,O(t),e_);break;case"capture":case"download":!0===r?e.push(eS,O(t),e_):!1!==r&&"function"!=typeof r&&"symbol"!=typeof r&&e.push(eS,O(t),ew,O(W(r)),ek);break;case"cols":case"rows":case"size":case"span":"function"!=typeof r&&"symbol"!=typeof r&&!isNaN(r)&&1<=r&&e.push(eS,O(t),ew,O(W(r)),ek);break;case"rowSpan":case"start":"function"==typeof r||"symbol"==typeof r||isNaN(r)||e.push(eS,O(t),ew,O(W(r)),ek);break;case"xlinkActuate":eC(e,"xlink:actuate",r);break;case"xlinkArcrole":eC(e,"xlink:arcrole",r);break;case"xlinkRole":eC(e,"xlink:role",r);break;case"xlinkShow":eC(e,"xlink:show",r);break;case"xlinkTitle":eC(e,"xlink:title",r);break;case"xlinkType":eC(e,"xlink:type",r);break;case"xmlBase":eC(e,"xml:base",r);break;case"xmlLang":eC(e,"xml:lang",r);break;case"xmlSpace":eC(e,"xml:space",r);break;default:if((!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&H(t=B.get(t)||t)){switch(typeof r){case"function":case"symbol":return;case"boolean":var n=t.toLowerCase().slice(0,5);if("data-"!==n&&"aria-"!==n)return}e.push(eS,O(t),ew,O(W(r)),ek)}}}var eO=A(">"),eA=A("/>");function eI(e,t,r){if(null!=t){if(null!=r)throw Error("Can only set one of `children` or `props.dangerouslySetInnerHTML`.");if("object"!=typeof t||!("__html"in t))throw Error("`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information.");null!=(t=t.__html)&&e.push(O(""+t))}}var eN=A(' selected=""'),eM=A('addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});');function eL(e,t){0!=(16&e.instructions)||t.externalRuntimeScript||(e.instructions|=16,t.bootstrapChunks.unshift(t.startInlineScript,eM,ee))}var eD=A("<!--F!-->"),eF=A("<!--F-->");function eH(e,t){for(var r in e.push(eG("link")),t)if(M.call(t,r)){var n=t[r];if(null!=n)switch(r){case"children":case"dangerouslySetInnerHTML":throw Error("link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`.");default:ej(e,r,n)}}return e.push(eA),null}function eU(e,t,r){for(var n in e.push(eG(r)),t)if(M.call(t,n)){var o=t[n];if(null!=o)switch(n){case"children":case"dangerouslySetInnerHTML":throw Error(r+" is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`.");default:ej(e,n,o)}}return e.push(eA),null}function eB(e,t){e.push(eG("title"));var r,n=null,o=null;for(r in t)if(M.call(t,r)){var i=t[r];if(null!=i)switch(r){case"children":n=i;break;case"dangerouslySetInnerHTML":o=i;break;default:ej(e,r,i)}}return e.push(eO),"function"!=typeof(t=Array.isArray(n)?2>n.length?n[0]:null:n)&&"symbol"!=typeof t&&null!=t&&e.push(O(W(""+t))),eI(e,o,n),e.push(eK("title")),null}function eq(e,t){e.push(eG("script"));var r,n=null,o=null;for(r in t)if(M.call(t,r)){var i=t[r];if(null!=i)switch(r){case"children":n=i;break;case"dangerouslySetInnerHTML":o=i;break;default:ej(e,r,i)}}return e.push(eO),eI(e,o,n),"string"==typeof n&&e.push(O(W(n))),e.push(eK("script")),null}function eW(e,t,r){e.push(eG(r));var n,o=r=null;for(n in t)if(M.call(t,n)){var i=t[n];if(null!=i)switch(n){case"children":r=i;break;case"dangerouslySetInnerHTML":o=i;break;default:ej(e,n,i)}}return e.push(eO),eI(e,o,r),"string"==typeof r?(e.push(O(W(r))),null):r}var ez=A("\n"),eJ=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,eV=new Map;function eG(e){var t=eV.get(e);if(void 0===t){if(!eJ.test(e))throw Error("Invalid tag: "+e);t=A("<"+e),eV.set(e,t)}return t}var eY=A("<!DOCTYPE html>"),eX=new Map;function eK(e){var t=eX.get(e);return void 0===t&&(t=A("</"+e+">"),eX.set(e,t)),t}function eZ(e,t){t=t.bootstrapChunks;for(var r=0;r<t.length-1;r++)E(e,t[r]);return!(r<t.length)||(r=t[r],t.length=0,R(e,r))}var eQ=A('<template id="'),e0=A('"></template>'),e1=A("<!--$-->"),e2=A('<!--$?--><template id="'),e6=A('"></template>'),e4=A("<!--$!-->"),e3=A("<!--/$-->"),e8=A("<template"),e5=A('"'),e9=A(' data-dgst="');A(' data-msg="'),A(' data-stck="');var e7=A("></template>");function te(e,t,r){if(E(e,e2),null===r)throw Error("An ID must have been assigned before we can complete the boundary.");return E(e,t.boundaryPrefix),E(e,O(r.toString(16))),R(e,e6)}var tt=A('<div hidden id="'),tr=A('">'),tn=A("</div>"),to=A('<svg aria-hidden="true" style="display:none" id="'),ti=A('">'),ta=A("</svg>"),ts=A('<math aria-hidden="true" style="display:none" id="'),tl=A('">'),tu=A("</math>"),tc=A('<table hidden id="'),td=A('">'),tf=A("</table>"),tp=A('<table hidden><tbody id="'),th=A('">'),tm=A("</tbody></table>"),ty=A('<table hidden><tr id="'),tg=A('">'),tv=A("</tr></table>"),tb=A('<table hidden><colgroup id="'),tS=A('">'),tw=A("</colgroup></table>"),tk=A('$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("'),t_=A('$RS("'),tx=A('","'),tC=A('")</script>'),t$=A('<template data-rsi="" data-sid="'),tP=A('" data-pid="'),tE=A('$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data="$!",a.setAttribute("data-dgst",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if("/$"===d)if(0===f)break;else f--;else"$"!==d&&"$?"!==d&&"$!"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data="$"}b._reactRetry&&b._reactRetry()}};$RC("'),tR=A('$RC("'),tT=A('$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data="$!",a.setAttribute("data-dgst",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if("/$"===d)if(0===f)break;else f--;else"$"!==d&&"$?"!==d&&"$!"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data="$"}b._reactRetry&&b._reactRetry()}};$RM=new Map;\n$RR=function(r,t,w){for(var u=$RC,n=$RM,p=new Map,q=document,g,b,h=q.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=h[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&n.set(b.getAttribute("href"),b),p.set(b.dataset.precedence,g=b));b=0;h=[];var l,a;for(k=!0;;){if(k){var f=w[b++];if(!f){k=!1;b=0;continue}var c=!1,m=0;var d=f[m++];if(a=n.get(d)){var e=a._p;c=!0}else{a=q.createElement("link");a.href=d;a.rel="stylesheet";for(a.dataset.precedence=\nl=f[m++];e=f[m++];)a.setAttribute(e,f[m++]);e=a._p=new Promise(function(x,y){a.onload=x;a.onerror=y});n.set(d,a)}d=a.getAttribute("media");!e||"l"===e.s||d&&!matchMedia(d).matches||h.push(e);if(c)continue}else{a=v[b++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=p.get(l)||g;c===g&&(g=a);p.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=q.head,c.insertBefore(a,c.firstChild))}Promise.all(h).then(u.bind(null,r,t,""),u.bind(null,r,t,"Resource failed to load"))};$RR("'),tj=A('$RM=new Map;\n$RR=function(r,t,w){for(var u=$RC,n=$RM,p=new Map,q=document,g,b,h=q.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=h[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&n.set(b.getAttribute("href"),b),p.set(b.dataset.precedence,g=b));b=0;h=[];var l,a;for(k=!0;;){if(k){var f=w[b++];if(!f){k=!1;b=0;continue}var c=!1,m=0;var d=f[m++];if(a=n.get(d)){var e=a._p;c=!0}else{a=q.createElement("link");a.href=d;a.rel="stylesheet";for(a.dataset.precedence=\nl=f[m++];e=f[m++];)a.setAttribute(e,f[m++]);e=a._p=new Promise(function(x,y){a.onload=x;a.onerror=y});n.set(d,a)}d=a.getAttribute("media");!e||"l"===e.s||d&&!matchMedia(d).matches||h.push(e);if(c)continue}else{a=v[b++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=p.get(l)||g;c===g&&(g=a);p.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=q.head,c.insertBefore(a,c.firstChild))}Promise.all(h).then(u.bind(null,r,t,""),u.bind(null,r,t,"Resource failed to load"))};$RR("'),tO=A('$RR("'),tA=A('","'),tI=A('",'),tN=A('"'),tM=A(")</script>"),tL=A('<template data-rci="" data-bid="'),tD=A('<template data-rri="" data-bid="'),tF=A('" data-sid="'),tH=A('" data-sty="'),tU=A('$RX=function(b,c,d,e){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),b._reactRetry&&b._reactRetry())};;$RX("'),tB=A('$RX("'),tq=A('"'),tW=A(","),tz=A(")</script>"),tJ=A('<template data-rxi="" data-bid="'),tV=A('" data-dgst="'),tG=A('" data-msg="'),tY=A('" data-stck="'),tX=/[<\u2028\u2029]/g;function tK(e){return JSON.stringify(e).replace(tX,function(e){switch(e){case"<":return"\\u003c";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:throw Error("escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React")}})}var tZ=/[&><\u2028\u2029]/g;function tQ(e){return JSON.stringify(e).replace(tZ,function(e){switch(e){case"&":return"\\u0026";case">":return"\\u003e";case"<":return"\\u003c";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:throw Error("escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React")}})}var t0=A('<style media="not all" data-precedence="'),t1=A('" data-href="'),t2=A('">'),t6=A("</style>"),t4=!1,t3=!0;function t8(e){var t=e.rules,r=e.hrefs,n=0;if(r.length){for(E(this,t0),E(this,e.precedence),E(this,t1);n<r.length-1;n++)E(this,r[n]),E(this,ro);for(E(this,r[n]),E(this,t2),n=0;n<t.length;n++)E(this,t[n]);t3=R(this,t6),t4=!0,t.length=0,r.length=0}}function t5(e){return 2!==e.state&&(t4=!0)}function t9(e,t,r){return t4=!1,t3=!0,t.styles.forEach(t8,e),t.stylesheets.forEach(t5),t4&&(r.stylesToHoist=!0),t3}function t7(e){for(var t=0;t<e.length;t++)E(this,e[t]);e.length=0}var re=[];function rt(e){eH(re,e.props);for(var t=0;t<re.length;t++)E(this,re[t]);re.length=0,e.state=2}var rr=A('<style data-precedence="'),rn=A('" data-href="'),ro=A(" "),ri=A('">'),ra=A("</style>");function rs(e){var t=0<e.sheets.size;e.sheets.forEach(rt,this),e.sheets.clear();var r=e.rules,n=e.hrefs;if(!t||n.length){if(E(this,rr),E(this,e.precedence),e=0,n.length){for(E(this,rn);e<n.length-1;e++)E(this,n[e]),E(this,ro);E(this,n[e])}for(E(this,ri),e=0;e<r.length;e++)E(this,r[e]);E(this,ra),r.length=0,n.length=0}}function rl(e){if(0===e.state){e.state=1;var t=e.props;for(eH(re,{rel:"preload",as:"style",href:e.props.href,crossOrigin:t.crossOrigin,fetchPriority:t.fetchPriority,integrity:t.integrity,media:t.media,hrefLang:t.hrefLang,referrerPolicy:t.referrerPolicy}),e=0;e<re.length;e++)E(this,re[e]);re.length=0}}function ru(e){e.sheets.forEach(rl,this),e.sheets.clear()}var rc=A("["),rd=A(",["),rf=A(","),rp=A("]");function rh(){return{styles:new Set,stylesheets:new Set}}function rm(e,t){null==e.crossOrigin&&(e.crossOrigin=t[0]),null==e.integrity&&(e.integrity=t[1])}function ry(e,t,r){for(var n in t="<"+(e=(""+e).replace(rg,rv))+'>; rel=preload; as="'+(t=(""+t).replace(rb,rS))+'"',r)M.call(r,n)&&"string"==typeof(e=r[n])&&(t+="; "+n.toLowerCase()+'="'+(""+e).replace(rb,rS)+'"');return t}var rg=/[<>\r\n]/g;function rv(e){switch(e){case"<":return"%3C";case">":return"%3E";case"\n":return"%0A";case"\r":return"%0D";default:throw Error("escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React")}}var rb=/["';,\r\n]/g;function rS(e){switch(e){case'"':return"%22";case"'":return"%27";case";":return"%3B";case",":return"%2C";case"\n":return"%0A";case"\r":return"%0D";default:throw Error("escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React")}}function rw(e){this.styles.add(e)}function rk(e){this.stylesheets.add(e)}var r_="function"==typeof AsyncLocalStorage,rx=r_?new AsyncLocalStorage:null,rC=Symbol.for("react.client.reference");function r$(e){if(null==e)return null;if("function"==typeof e)return e.$$typeof===rC?null:e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case s:return"Fragment";case a:return"Portal";case u:return"Profiler";case l:return"StrictMode";case h:return"Suspense";case m:return"SuspenseList";case k:return"Cache"}if("object"==typeof e)switch(e.$$typeof){case c:return(e._context.displayName||"Context")+".Provider";case f:return(e.displayName||"Context")+".Consumer";case p:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case y:return null!==(t=e.displayName||null)?t:r$(e.type)||"Memo";case g:t=e._payload,e=e._init;try{return r$(e(t))}catch(e){}}return null}var rP={};function rE(e,t){if(!(e=e.contextTypes))return rP;var r,n={};for(r in e)n[r]=t[r];return n}var rR=null;function rT(e,t){if(e!==t){e.context._currentValue=e.parentValue,e=e.parent;var r=t.parent;if(null===e){if(null!==r)throw Error("The stacks must reach the root at the same time. This is a bug in React.")}else{if(null===r)throw Error("The stacks must reach the root at the same time. This is a bug in React.");rT(e,r)}t.context._currentValue=t.value}}function rj(e){var t=rR;t!==e&&(null===t?function e(t){var r=t.parent;null!==r&&e(r),t.context._currentValue=t.value}(e):null===e?function e(t){t.context._currentValue=t.parentValue,null!==(t=t.parent)&&e(t)}(t):t.depth===e.depth?rT(t,e):t.depth>e.depth?function e(t,r){if(t.context._currentValue=t.parentValue,null===(t=t.parent))throw Error("The depth must equal at least at zero before reaching the root. This is a bug in React.");t.depth===r.depth?rT(t,r):e(t,r)}(t,e):function e(t,r){var n=r.parent;if(null===n)throw Error("The depth must equal at least at zero before reaching the root. This is a bug in React.");t.depth===n.depth?rT(t,n):e(t,n),r.context._currentValue=r.value}(t,e),rR=e)}var rO={isMounted:function(){return!1},enqueueSetState:function(e,t){null!==(e=e._reactInternals).queue&&e.queue.push(t)},enqueueReplaceState:function(e,t){(e=e._reactInternals).replace=!0,e.queue=[t]},enqueueForceUpdate:function(){}};function rA(e,t,r,n){var o=void 0!==e.state?e.state:null;e.updater=rO,e.props=r,e.state=o;var i={queue:[],replace:!1};e._reactInternals=i;var a=t.contextType;if(e.context="object"==typeof a&&null!==a?a._currentValue:n,"function"==typeof(a=t.getDerivedStateFromProps)&&(o=null==(a=a(r,o))?o:N({},o,a),e.state=o),"function"!=typeof t.getDerivedStateFromProps&&"function"!=typeof e.getSnapshotBeforeUpdate&&("function"==typeof e.UNSAFE_componentWillMount||"function"==typeof e.componentWillMount)){if(t=e.state,"function"==typeof e.componentWillMount&&e.componentWillMount(),"function"==typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),t!==e.state&&rO.enqueueReplaceState(e,e.state,null),null!==i.queue&&0<i.queue.length){if(t=i.queue,a=i.replace,i.queue=null,i.replace=!1,a&&1===t.length)e.state=t[0];else{for(i=a?t[0]:e.state,o=!0,a=a?1:0;a<t.length;a++){var s=t[a];null!=(s="function"==typeof s?s.call(e,i,r,n):s)&&(o?(o=!1,i=N({},i,s)):N(i,s))}e.state=i}}else i.queue=null}}var rI={id:1,overflow:""};function rN(e,t,r){var n=e.id;e=e.overflow;var o=32-rM(n)-1;n&=~(1<<o),r+=1;var i=32-rM(t)+o;if(30<i){var a=o-o%5;return i=(n&(1<<a)-1).toString(32),n>>=a,o-=a,{id:1<<32-rM(t)+o|r<<o|n,overflow:i+e}}return{id:1<<i|r<<o|n,overflow:e}}var rM=Math.clz32?Math.clz32:function(e){return 0==(e>>>=0)?32:31-(rL(e)/rD|0)|0},rL=Math.log,rD=Math.LN2,rF=Error("Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`");function rH(){}var rU=null;function rB(){if(null===rU)throw Error("Expected a suspended thenable. This is a bug in React. Please file an issue.");var e=rU;return rU=null,e}var rq="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},rW=null,rz=null,rJ=null,rV=null,rG=null,rY=null,rX=!1,rK=!1,rZ=0,rQ=0,r0=-1,r1=0,r2=null,r6=null,r4=0;function r3(){if(null===rW)throw Error("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.");return rW}function r8(){if(0<r4)throw Error("Rendered more hooks than during the previous render");return{memoizedState:null,queue:null,next:null}}function r5(){return null===rY?null===rG?(rX=!1,rG=rY=r8()):(rX=!0,rY=rG):null===rY.next?(rX=!1,rY=rY.next=r8()):(rX=!0,rY=rY.next),rY}function r9(){var e=r2;return r2=null,e}function r7(){rV=rJ=rz=rW=null,rK=!1,rG=null,r4=0,rY=r6=null}function ne(e,t){return"function"==typeof t?t(e):t}function nt(e,t,r){if(rW=r3(),rY=r5(),rX){var n=rY.queue;if(t=n.dispatch,null!==r6&&void 0!==(r=r6.get(n))){r6.delete(n),n=rY.memoizedState;do n=e(n,r.action),r=r.next;while(null!==r)return rY.memoizedState=n,[n,t]}return[rY.memoizedState,t]}return e=e===ne?"function"==typeof t?t():t:void 0!==r?r(t):t,rY.memoizedState=e,e=(e=rY.queue={last:null,dispatch:null}).dispatch=nn.bind(null,rW,e),[rY.memoizedState,e]}function nr(e,t){if(rW=r3(),rY=r5(),t=void 0===t?null:t,null!==rY){var r=rY.memoizedState;if(null!==r&&null!==t){var n=r[1];t:if(null===n)n=!1;else{for(var o=0;o<n.length&&o<t.length;o++)if(!rq(t[o],n[o])){n=!1;break t}n=!0}if(n)return r[0]}}return e=e(),rY.memoizedState=[e,t],e}function nn(e,t,r){if(25<=r4)throw Error("Too many re-renders. React limits the number of renders to prevent an infinite loop.");if(e===rW){if(rK=!0,e={action:r,next:null},null===r6&&(r6=new Map),void 0===(r=r6.get(t)))r6.set(t,e);else{for(t=r;null!==t.next;)t=t.next;t.next=e}}}function no(){throw Error("startTransition cannot be called during server rendering.")}function ni(){throw Error("Cannot update optimistic state while rendering.")}function na(e,t,r){r3();var n=rQ++,o=rJ;if("function"==typeof e.$$FORM_ACTION){var i=null,a=rV;o=o.formState;var s=e.$$IS_SIGNATURE_EQUAL;if(null!==o&&"function"==typeof s){var l=o[1];s.call(e,o[2],o[3])&&l===(i=void 0!==r?"p"+r:"k"+C(JSON.stringify([a,null,n]),0))&&(r0=n,t=o[0])}var u=e.bind(null,t);return e=function(e){u(e)},"function"==typeof u.$$FORM_ACTION&&(e.$$FORM_ACTION=function(e){e=u.$$FORM_ACTION(e),void 0!==r&&(r+="",e.action=r);var t=e.data;return t&&(null===i&&(i=void 0!==r?"p"+r:"k"+C(JSON.stringify([a,null,n]),0)),t.append("$ACTION_KEY",i)),e}),[t,e,!1]}var c=e.bind(null,t);return[t,function(e){c(e)},!1]}function ns(e){var t=r1;return r1+=1,null===r2&&(r2=[]),function(e,t,r){switch(void 0===(r=e[r])?e.push(t):r!==t&&(t.then(rH,rH),t=r),t.status){case"fulfilled":return t.value;case"rejected":throw t.reason;default:if("string"!=typeof t.status)switch((e=t).status="pending",e.then(function(e){if("pending"===t.status){var r=t;r.status="fulfilled",r.value=e}},function(e){if("pending"===t.status){var r=t;r.status="rejected",r.reason=e}}),t.status){case"fulfilled":return t.value;case"rejected":throw t.reason}throw rU=t,rF}}(r2,e,t)}function nl(){throw Error("Cache cannot be refreshed during server rendering.")}function nu(){}var nc={readContext:function(e){return e._currentValue},use:function(e){if(null!==e&&"object"==typeof e){if("function"==typeof e.then)return ns(e);if(e.$$typeof===f)return e._currentValue}throw Error("An unsupported type was passed to use(): "+String(e))},useContext:function(e){return r3(),e._currentValue},useMemo:nr,useReducer:nt,useRef:function(e){rW=r3();var t=(rY=r5()).memoizedState;return null===t?(e={current:e},rY.memoizedState=e):t},useState:function(e){return nt(ne,e)},useInsertionEffect:nu,useLayoutEffect:nu,useCallback:function(e,t){return nr(function(){return e},t)},useImperativeHandle:nu,useEffect:nu,useDebugValue:nu,useDeferredValue:function(e){return r3(),e},useTransition:function(){return r3(),[!1,no]},useId:function(){var e=rz.treeContext,t=e.overflow;e=((e=e.id)&~(1<<32-rM(e)-1)).toString(32)+t;var r=nf;if(null===r)throw Error("Invalid hook call. Hooks can only be called inside of the body of a function component.");return t=rZ++,e=":"+r.idPrefix+"R"+e,0<t&&(e+="H"+t.toString(32)),e+":"},useSyncExternalStore:function(e,t,r){if(void 0===r)throw Error("Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering.");return r()},useCacheRefresh:function(){return nl},useHostTransitionStatus:function(){return r3(),G},useOptimistic:function(e){return r3(),[e,ni]}};nc.useFormState=na,nc.useActionState=na;var nd,nf=null,np={getCacheSignal:function(){throw Error("Not implemented.")},getCacheForType:function(){throw Error("Not implemented.")}};function nh(e){if(void 0===nd)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);nd=t&&t[1]||""}return"\n"+nd+e}var nm=!1;function ny(e,t){if(!e||nm)return"";nm=!0;var r=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var n={DetermineComponentFrameRoot:function(){try{if(t){var r=function(){throw Error()};if(Object.defineProperty(r.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(r,[])}catch(e){var n=e}Reflect.construct(e,[],r)}else{try{r.call()}catch(e){n=e}e.call(r.prototype)}}else{try{throw Error()}catch(e){n=e}(r=e())&&"function"==typeof r.catch&&r.catch(function(){})}}catch(e){if(e&&n&&"string"==typeof e.stack)return[e.stack,n.stack]}return[null,null]}};n.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var o=Object.getOwnPropertyDescriptor(n.DetermineComponentFrameRoot,"name");o&&o.configurable&&Object.defineProperty(n.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});try{var i=n.DetermineComponentFrameRoot(),a=i[0],s=i[1];if(a&&s){var l=a.split("\n"),u=s.split("\n");for(o=n=0;n<l.length&&!l[n].includes("DetermineComponentFrameRoot");)n++;for(;o<u.length&&!u[o].includes("DetermineComponentFrameRoot");)o++;if(n===l.length||o===u.length)for(n=l.length-1,o=u.length-1;1<=n&&0<=o&&l[n]!==u[o];)o--;for(;1<=n&&0<=o;n--,o--)if(l[n]!==u[o]){if(1!==n||1!==o)do if(n--,o--,0>o||l[n]!==u[o]){var c="\n"+l[n].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=n&&0<=o)break}}}finally{nm=!1,Error.prepareStackTrace=r}return(r=e?e.displayName||e.name:"")?nh(r):""}var ng=V.ReactCurrentDispatcher,nv=V.ReactCurrentCache;function nb(e){return console.error(e),null}function nS(){}var nw=null;function nk(){if(nw)return nw;if(r_){var e=rx.getStore();if(e)return e}return null}function n_(e,t){e.pingedTasks.push(t),1===e.pingedTasks.length&&(e.flushScheduled=null!==e.destination,setTimeout(function(){return nY(e)},0))}function nx(e,t){return{status:0,rootSegmentID:-1,parentFlushed:!1,pendingTasks:0,completedSegments:[],byteSize:0,fallbackAbortableTasks:t,errorDigest:null,contentState:rh(),fallbackState:rh(),trackedContentKeyPath:null,trackedFallbackNode:null}}function nC(e,t,r,n,o,i,a,s,l,u,c,d,f,p,h){e.allPendingTasks++,null===o?e.pendingRootTasks++:o.pendingTasks++;var m={replay:null,node:r,childIndex:n,ping:function(){return n_(e,m)},blockedBoundary:o,blockedSegment:i,hoistableState:a,abortSet:s,keyPath:l,formatContext:u,legacyContext:c,context:d,treeContext:f,componentStack:p,thenableState:t,isFallback:h};return s.add(m),m}function n$(e,t,r,n,o,i,a,s,l,u,c,d,f,p,h){e.allPendingTasks++,null===i?e.pendingRootTasks++:i.pendingTasks++,r.pendingTasks++;var m={replay:r,node:n,childIndex:o,ping:function(){return n_(e,m)},blockedBoundary:i,blockedSegment:null,hoistableState:a,abortSet:s,keyPath:l,formatContext:u,legacyContext:c,context:d,treeContext:f,componentStack:p,thenableState:t,isFallback:h};return s.add(m),m}function nP(e,t,r,n,o,i){return{status:0,id:-1,index:t,parentFlushed:!1,chunks:[],children:[],parentFormatContext:n,boundary:r,lastPushedText:o,textEmbedded:i}}function nE(e,t){return{tag:0,parent:e.componentStack,type:t}}function nR(e,t){if(t&&null!==e.trackedPostpones){try{e="";do{switch(t.tag){case 0:e+=nh(t.type,null);break;case 1:e+=ny(t.type,!1);break;case 2:e+=ny(t.type,!0)}t=t.parent}while(t)var r=e}catch(e){r="\nError generating stack: "+e.message+"\n"+e.stack}r={componentStack:r}}else r={};return r}function nT(e,t,r){if(null==(e=e.onError(t,r))||"string"==typeof e)return e}function nj(e,t){var r=e.onShellError;r(t),(r=e.onFatalError)(t),null!==e.destination?(e.status=2,I(e.destination,t)):(e.status=1,e.fatalError=t)}function nO(e,t,r,n,o,i){var a=t.thenableState;for(t.thenableState=null,rW={},rz=t,rJ=e,rV=r,rQ=rZ=0,r0=-1,r1=0,r2=a,e=n(o,i);rK;)rK=!1,rQ=rZ=0,r0=-1,r1=0,r4+=1,rY=null,e=n(o,i);return r7(),e}function nA(e,t,r,n,o){var i=n.render(),a=o.childContextTypes;if(null!=a){if(r=t.legacyContext,"function"!=typeof n.getChildContext)o=r;else{for(var s in n=n.getChildContext())if(!(s in a))throw Error((r$(o)||"Unknown")+'.getChildContext(): key "'+s+'" is not defined in childContextTypes.');o=N({},r,n)}t.legacyContext=o,nD(e,t,i,-1),t.legacyContext=r}else o=t.keyPath,t.keyPath=r,nD(e,t,i,-1),t.keyPath=o}function nI(e,t,r,n,o,i,a){var s=!1;if(0!==i&&null!==e.formState){var l=t.blockedSegment;if(null!==l){s=!0,l=l.chunks;for(var u=0;u<i;u++)u===a?l.push(eD):l.push(eF)}}i=t.keyPath,t.keyPath=r,o?(r=t.treeContext,t.treeContext=rN(r,1,0),nU(e,t,n,-1),t.treeContext=r):s?nU(e,t,n,-1):nD(e,t,n,-1),t.keyPath=i}function nN(e,t){if(e&&e.defaultProps)for(var r in t=N({},t),e=e.defaultProps)void 0===t[r]&&(t[r]=e[r]);return t}function nM(e,t,r,o,i,a){if("function"==typeof o){if(o.prototype&&o.prototype.isReactComponent){a=t.componentStack,t.componentStack={tag:2,parent:t.componentStack,type:o};var k=rE(o,t.legacyContext),_=o.contextType;rA(_=new o(i,"object"==typeof _&&null!==_?_._currentValue:k),o,i,k),nA(e,t,r,_,o),t.componentStack=a}else{a=rE(o,t.legacyContext),k=t.componentStack,t.componentStack={tag:1,parent:t.componentStack,type:o},_=nO(e,t,r,o,i,a);var C=0!==rZ,$=rQ,P=r0;"object"==typeof _&&null!==_&&"function"==typeof _.render&&void 0===_.$$typeof?(rA(_,o,i,a),nA(e,t,r,_,o)):nI(e,t,r,_,C,$,P),t.componentStack=k}}else if("string"==typeof o){if(a=t.componentStack,t.componentStack=nE(t,o),null===(k=t.blockedSegment))k=i.children,_=t.formatContext,C=t.keyPath,t.formatContext=ef(_,o,i),t.keyPath=r,nU(e,t,k,-1),t.formatContext=_,t.keyPath=C;else{C=function(e,t,r,o,i,a,s,l,u){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":break;case"select":e.push(eG("select"));var c,d=null,f=null;for(c in r)if(M.call(r,c)){var p=r[c];if(null!=p)switch(c){case"children":d=p;break;case"dangerouslySetInnerHTML":f=p;break;case"defaultValue":case"value":break;default:ej(e,c,p)}}return e.push(eO),eI(e,f,d),d;case"option":var h=s.selectedValue;e.push(eG("option"));var m,y=null,g=null,v=null,b=null;for(m in r)if(M.call(r,m)){var S=r[m];if(null!=S)switch(m){case"children":y=S;break;case"selected":v=S;break;case"dangerouslySetInnerHTML":b=S;break;case"value":g=S;default:ej(e,m,S)}}if(null!=h){var w,k,_=null!==g?""+g:(w=y,k="",n.Children.forEach(w,function(e){null!=e&&(k+=e)}),k);if(x(h)){for(var C=0;C<h.length;C++)if(""+h[C]===_){e.push(eN);break}}else""+h===_&&e.push(eN)}else v&&e.push(eN);return e.push(eO),eI(e,b,y),y;case"textarea":e.push(eG("textarea"));var $,P=null,E=null,R=null;for($ in r)if(M.call(r,$)){var T=r[$];if(null!=T)switch($){case"children":R=T;break;case"value":P=T;break;case"defaultValue":E=T;break;case"dangerouslySetInnerHTML":throw Error("`dangerouslySetInnerHTML` does not make sense on <textarea>.");default:ej(e,$,T)}}if(null===P&&null!==E&&(P=E),e.push(eO),null!=R){if(null!=P)throw Error("If you supply `defaultValue` on a <textarea>, do not pass children.");if(x(R)){if(1<R.length)throw Error("<textarea> can only have at most one child.");P=""+R[0]}P=""+R}return"string"==typeof P&&"\n"===P[0]&&e.push(ez),null!==P&&e.push(O(W(""+P))),null;case"input":e.push(eG("input"));var j,A=null,I=null,L=null,D=null,F=null,U=null,B=null,q=null,z=null;for(j in r)if(M.call(r,j)){var J=r[j];if(null!=J)switch(j){case"children":case"dangerouslySetInnerHTML":throw Error("input is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`.");case"name":A=J;break;case"formAction":I=J;break;case"formEncType":L=J;break;case"formMethod":D=J;break;case"formTarget":F=J;break;case"defaultChecked":z=J;break;case"defaultValue":B=J;break;case"checked":q=J;break;case"value":U=J;break;default:ej(e,j,J)}}var V=eT(e,o,i,I,L,D,F,A);return null!==q?ex(e,"checked",q):null!==z&&ex(e,"checked",z),null!==U?ej(e,"value",U):null!==B&&ej(e,"value",B),e.push(eA),null!=V&&V.forEach(eE,e),null;case"button":e.push(eG("button"));var G,Y=null,X=null,Z=null,Q=null,ee=null,et=null,er=null;for(G in r)if(M.call(r,G)){var en=r[G];if(null!=en)switch(G){case"children":Y=en;break;case"dangerouslySetInnerHTML":X=en;break;case"name":Z=en;break;case"formAction":Q=en;break;case"formEncType":ee=en;break;case"formMethod":et=en;break;case"formTarget":er=en;break;default:ej(e,G,en)}}var eo=eT(e,o,i,Q,ee,et,er,Z);if(e.push(eO),null!=eo&&eo.forEach(eE,e),eI(e,X,Y),"string"==typeof Y){e.push(O(W(Y)));var ei=null}else ei=Y;return ei;case"form":e.push(eG("form"));var ea,es=null,el=null,eu=null,ec=null,ed=null,ef=null;for(ea in r)if(M.call(r,ea)){var eh=r[ea];if(null!=eh)switch(ea){case"children":es=eh;break;case"dangerouslySetInnerHTML":el=eh;break;case"action":eu=eh;break;case"encType":ec=eh;break;case"method":ed=eh;break;case"target":ef=eh;break;default:ej(e,ea,eh)}}var em=null,ey=null;if("function"==typeof eu){var eg=eR(o,eu);null!==eg?(eu=eg.action||"",ec=eg.encType,ed=eg.method,ef=eg.target,em=eg.data,ey=eg.name):(e.push(eS,O("action"),ew,e$,ek),ef=ed=ec=eu=null,eL(o,i))}if(null!=eu&&ej(e,"action",eu),null!=ec&&ej(e,"encType",ec),null!=ed&&ej(e,"method",ed),null!=ef&&ej(e,"target",ef),e.push(eO),null!==ey&&(e.push(eP),eC(e,"name",ey),e.push(eA),null!=em&&em.forEach(eE,e)),eI(e,el,es),"string"==typeof es){e.push(O(W(es)));var ev=null}else ev=es;return ev;case"menuitem":for(var e_ in e.push(eG("menuitem")),r)if(M.call(r,e_)){var eM=r[e_];if(null!=eM)switch(e_){case"children":case"dangerouslySetInnerHTML":throw Error("menuitems cannot have `children` nor `dangerouslySetInnerHTML`.");default:ej(e,e_,eM)}}return e.push(eO),null;case"title":if(3===s.insertionMode||1&s.tagScope||null!=r.itemProp)var eD=eB(e,r);else u?eD=null:(eB(i.hoistableChunks,r),eD=void 0);return eD;case"link":var eF=r.rel,eJ=r.href,eV=r.precedence;if(3===s.insertionMode||1&s.tagScope||null!=r.itemProp||"string"!=typeof eF||"string"!=typeof eJ||""===eJ){eH(e,r);var eX=null}else if("stylesheet"===r.rel){if("string"!=typeof eV||null!=r.disabled||r.onLoad||r.onError)eX=eH(e,r);else{var eZ=i.styles.get(eV),eQ=o.styleResources.hasOwnProperty(eJ)?o.styleResources[eJ]:void 0;if(null!==eQ){o.styleResources[eJ]=null,eZ||(eZ={precedence:O(W(eV)),rules:[],hrefs:[],sheets:new Map},i.styles.set(eV,eZ));var e0={state:0,props:N({},r,{"data-precedence":r.precedence,precedence:null})};if(eQ){2===eQ.length&&rm(e0.props,eQ);var e1=i.preloads.stylesheets.get(eJ);e1&&0<e1.length?e1.length=0:e0.state=1}eZ.sheets.set(eJ,e0),a&&a.stylesheets.add(e0)}else if(eZ){var e2=eZ.sheets.get(eJ);e2&&a&&a.stylesheets.add(e2)}l&&e.push(ep),eX=null}}else r.onLoad||r.onError?eX=eH(e,r):(l&&e.push(ep),eX=u?null:eH(i.hoistableChunks,r));return eX;case"script":var e6=r.async;if("string"!=typeof r.src||!r.src||!e6||"function"==typeof e6||"symbol"==typeof e6||r.onLoad||r.onError||3===s.insertionMode||1&s.tagScope||null!=r.itemProp)var e4=eq(e,r);else{var e3=r.src;if("module"===r.type)var e8=o.moduleScriptResources,e5=i.preloads.moduleScripts;else e8=o.scriptResources,e5=i.preloads.scripts;var e9=e8.hasOwnProperty(e3)?e8[e3]:void 0;if(null!==e9){e8[e3]=null;var e7=r;if(e9){2===e9.length&&rm(e7=N({},r),e9);var te=e5.get(e3);te&&(te.length=0)}var tt=[];i.scripts.add(tt),eq(tt,e7)}l&&e.push(ep),e4=null}return e4;case"style":var tr=r.precedence,tn=r.href;if(3===s.insertionMode||1&s.tagScope||null!=r.itemProp||"string"!=typeof tr||"string"!=typeof tn||""===tn){e.push(eG("style"));var to,ti=null,ta=null;for(to in r)if(M.call(r,to)){var ts=r[to];if(null!=ts)switch(to){case"children":ti=ts;break;case"dangerouslySetInnerHTML":ta=ts;break;default:ej(e,to,ts)}}e.push(eO);var tl=Array.isArray(ti)?2>ti.length?ti[0]:null:ti;"function"!=typeof tl&&"symbol"!=typeof tl&&null!=tl&&e.push(O(W(""+tl))),eI(e,ta,ti),e.push(eK("style"));var tu=null}else{var tc=i.styles.get(tr);if(null!==(o.styleResources.hasOwnProperty(tn)?o.styleResources[tn]:void 0)){o.styleResources[tn]=null,tc?tc.hrefs.push(O(W(tn))):(tc={precedence:O(W(tr)),rules:[],hrefs:[O(W(tn))],sheets:new Map},i.styles.set(tr,tc));var td,tf=tc.rules,tp=null,th=null;for(td in r)if(M.call(r,td)){var tm=r[td];if(null!=tm)switch(td){case"children":tp=tm;break;case"dangerouslySetInnerHTML":th=tm}}var ty=Array.isArray(tp)?2>tp.length?tp[0]:null:tp;"function"!=typeof ty&&"symbol"!=typeof ty&&null!=ty&&tf.push(O(W(""+ty))),eI(tf,th,tp)}tc&&a&&a.styles.add(tc),l&&e.push(ep),tu=void 0}return tu;case"meta":if(3===s.insertionMode||1&s.tagScope||null!=r.itemProp)var tg=eU(e,r,"meta");else l&&e.push(ep),tg=u?null:"string"==typeof r.charSet?eU(i.charsetChunks,r,"meta"):"viewport"===r.name?eU(i.viewportChunks,r,"meta"):eU(i.hoistableChunks,r,"meta");return tg;case"listing":case"pre":e.push(eG(t));var tv,tb=null,tS=null;for(tv in r)if(M.call(r,tv)){var tw=r[tv];if(null!=tw)switch(tv){case"children":tb=tw;break;case"dangerouslySetInnerHTML":tS=tw;break;default:ej(e,tv,tw)}}if(e.push(eO),null!=tS){if(null!=tb)throw Error("Can only set one of `children` or `props.dangerouslySetInnerHTML`.");if("object"!=typeof tS||!("__html"in tS))throw Error("`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information.");var tk=tS.__html;null!=tk&&("string"==typeof tk&&0<tk.length&&"\n"===tk[0]?e.push(ez,O(tk)):e.push(O(""+tk)))}return"string"==typeof tb&&"\n"===tb[0]&&e.push(ez),tb;case"img":var t_=r.src,tx=r.srcSet;if(!("lazy"===r.loading||!t_&&!tx||"string"!=typeof t_&&null!=t_||"string"!=typeof tx&&null!=tx)&&"low"!==r.fetchPriority&&!1==!!(2&s.tagScope)&&("string"!=typeof t_||":"!==t_[4]||"d"!==t_[0]&&"D"!==t_[0]||"a"!==t_[1]&&"A"!==t_[1]||"t"!==t_[2]&&"T"!==t_[2]||"a"!==t_[3]&&"A"!==t_[3])&&("string"!=typeof tx||":"!==tx[4]||"d"!==tx[0]&&"D"!==tx[0]||"a"!==tx[1]&&"A"!==tx[1]||"t"!==tx[2]&&"T"!==tx[2]||"a"!==tx[3]&&"A"!==tx[3])){var tC="string"==typeof r.sizes?r.sizes:void 0,t$=tx?tx+"\n"+(tC||""):t_,tP=i.preloads.images,tE=tP.get(t$);if(tE)("high"===r.fetchPriority||10>i.highImagePreloads.size)&&(tP.delete(t$),i.highImagePreloads.add(tE));else if(!o.imageResources.hasOwnProperty(t$)){o.imageResources[t$]=K;var tR,tT=r.crossOrigin,tj="string"==typeof tT?"use-credentials"===tT?tT:"":void 0,tO=i.headers;tO&&0<tO.remainingCapacity&&("high"===r.fetchPriority||500>tO.highImagePreloads.length)&&(tR=ry(t_,"image",{imageSrcSet:r.srcSet,imageSizes:r.sizes,crossOrigin:tj,integrity:r.integrity,nonce:r.nonce,type:r.type,fetchPriority:r.fetchPriority,referrerPolicy:r.refererPolicy}),2<=(tO.remainingCapacity-=tR.length))?(i.resets.image[t$]=K,tO.highImagePreloads&&(tO.highImagePreloads+=", "),tO.highImagePreloads+=tR):(eH(tE=[],{rel:"preload",as:"image",href:tx?void 0:t_,imageSrcSet:tx,imageSizes:tC,crossOrigin:tj,integrity:r.integrity,type:r.type,fetchPriority:r.fetchPriority,referrerPolicy:r.referrerPolicy}),"high"===r.fetchPriority||10>i.highImagePreloads.size?i.highImagePreloads.add(tE):(i.bulkPreloads.add(tE),tP.set(t$,tE)))}}return eU(e,r,"img");case"base":case"area":case"br":case"col":case"embed":case"hr":case"keygen":case"param":case"source":case"track":case"wbr":return eU(e,r,t);case"head":if(2>s.insertionMode&&null===i.headChunks){i.headChunks=[];var tA=eW(i.headChunks,r,"head")}else tA=eW(e,r,"head");return tA;case"html":if(0===s.insertionMode&&null===i.htmlChunks){i.htmlChunks=[eY];var tI=eW(i.htmlChunks,r,"html")}else tI=eW(e,r,"html");return tI;default:if(-1!==t.indexOf("-")){e.push(eG(t));var tN,tM=null,tL=null;for(tN in r)if(M.call(r,tN)){var tD=r[tN];if(null!=tD)switch(tN){case"children":tM=tD;break;case"dangerouslySetInnerHTML":tL=tD;break;case"style":eb(e,tD);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"ref":break;default:H(tN)&&"function"!=typeof tD&&"symbol"!=typeof tD&&e.push(eS,O(tN),ew,O(W(tD)),ek)}}return e.push(eO),eI(e,tL,tM),tM}}return eW(e,r,t)}(k.chunks,o,i,e.resumableState,e.renderState,t.hoistableState,t.formatContext,k.lastPushedText,t.isFallback),k.lastPushedText=!1,_=t.formatContext,$=t.keyPath,t.formatContext=ef(_,o,i),t.keyPath=r,nU(e,t,C,-1),t.formatContext=_,t.keyPath=$;t:{switch(r=k.chunks,e=e.resumableState,o){case"title":case"style":case"script":case"area":case"base":case"br":case"col":case"embed":case"hr":case"img":case"input":case"keygen":case"link":case"meta":case"param":case"source":case"track":case"wbr":break t;case"body":if(1>=_.insertionMode){e.hasBody=!0;break t}break;case"html":if(0===_.insertionMode){e.hasHtml=!0;break t}}r.push(eK(o))}k.lastPushedText=!1}t.componentStack=a}else{switch(o){case w:case b:case l:case u:case s:o=t.keyPath,t.keyPath=r,nD(e,t,i.children,-1),t.keyPath=o;return;case S:"hidden"!==i.mode&&(o=t.keyPath,t.keyPath=r,nD(e,t,i.children,-1),t.keyPath=o);return;case m:o=t.componentStack,t.componentStack=nE(t,"SuspenseList"),a=t.keyPath,t.keyPath=r,nD(e,t,i.children,-1),t.keyPath=a,t.componentStack=o;return;case v:throw Error("ReactDOMServer does not yet support scope components.");case h:t:if(null!==t.replay){o=t.keyPath,t.keyPath=r,r=i.children;try{nU(e,t,r,-1)}finally{t.keyPath=o}}else{var E=t.componentStack;o=t.componentStack=nE(t,"Suspense");var R=t.keyPath;a=t.blockedBoundary;var T=t.hoistableState,j=t.blockedSegment;k=i.fallback;var A=i.children;_=nx(e,i=new Set),null!==e.trackedPostpones&&(_.trackedContentKeyPath=r),C=nP(e,j.chunks.length,_,t.formatContext,!1,!1),j.children.push(C),j.lastPushedText=!1;var I=nP(e,0,null,t.formatContext,!1,!1);I.parentFlushed=!0,t.blockedBoundary=_,t.hoistableState=_.contentState,t.blockedSegment=I,t.keyPath=r;try{if(nU(e,t,A,-1),I.lastPushedText&&I.textEmbedded&&I.chunks.push(ep),I.status=1,nV(_,I),0===_.pendingTasks&&0===_.status){_.status=1,t.componentStack=E;break t}}catch(r){I.status=4,_.status=4,$=nR(e,t.componentStack),P=nT(e,r,$),_.errorDigest=P,nH(e,_)}finally{t.blockedBoundary=a,t.hoistableState=T,t.blockedSegment=j,t.keyPath=R,t.componentStack=E}$=[r[0],"Suspense Fallback",r[2]],null!==(P=e.trackedPostpones)&&(E=[$[1],$[2],[],null],P.workingMap.set($,E),5===_.status?P.workingMap.get(r)[4]=E:_.trackedFallbackNode=E),t=nC(e,null,k,-1,a,C,_.fallbackState,i,$,t.formatContext,t.legacyContext,t.context,t.treeContext,o,!0),e.pingedTasks.push(t)}return}if("object"==typeof o&&null!==o)switch(o.$$typeof){case p:k=t.componentStack,t.componentStack={tag:1,parent:t.componentStack,type:o.render},i=nO(e,t,r,o.render,i,a),nI(e,t,r,i,0!==rZ,rQ,r0),t.componentStack=k;return;case y:i=nN(o=o.type,i),nM(e,t,r,o,i,a);return;case c:if(k=i.children,a=t.keyPath,o=o._context,i=i.value,_=o._currentValue,o._currentValue=i,rR=i={parent:C=rR,depth:null===C?0:C.depth+1,context:o,parentValue:_,value:i},t.context=i,t.keyPath=r,nD(e,t,k,-1),null===(e=rR))throw Error("Tried to pop a Context at the root of the app. This is a bug in React.");e.context._currentValue=e.parentValue,e=rR=e.parent,t.context=e,t.keyPath=a;return;case f:i=(i=i.children)(o._currentValue),o=t.keyPath,t.keyPath=r,nD(e,t,i,-1),t.keyPath=o;return;case d:case g:a=t.componentStack,t.componentStack=nE(t,"Lazy"),i=nN(o=(k=o._init)(o._payload),i),nM(e,t,r,o,i,void 0),t.componentStack=a;return}throw Error("Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: "+(null==o?o:typeof o)+".")}}function nL(e,t,r,n,o){var i=t.replay,a=t.blockedBoundary,s=nP(e,0,null,t.formatContext,!1,!1);s.id=r,s.parentFlushed=!0;try{t.replay=null,t.blockedSegment=s,nU(e,t,n,o),s.status=1,null===a?e.completedRootSegment=s:(nV(a,s),a.parentFlushed&&e.partialBoundaries.push(a))}finally{t.replay=i,t.blockedSegment=null}}function nD(e,t,r,n){if(null!==t.replay&&"number"==typeof t.replay.slots)nL(e,t,t.replay.slots,r,n);else if(t.node=r,t.childIndex=n,null!==r){if("object"==typeof r){switch(r.$$typeof){case i:var o=r.type,s=r.key,l=r.props,u=r.ref,c=r$(o),d=null==s?-1===n?0:n:s;if(s=[t.keyPath,c,d],null!==t.replay)t:{var p=t.replay;for(r=0,n=p.nodes;r<n.length;r++){var m=n[r];if(d===m[1]){if(4===m.length){if(null!==c&&c!==m[0])throw Error("Expected the resume to render <"+m[0]+"> in this slot but instead it rendered <"+c+">. The tree doesn't match so React will fallback to client rendering.");var y=m[2];c=m[3],d=t.node,t.replay={nodes:y,slots:c,pendingTasks:1};try{if(nM(e,t,s,o,l,u),1===t.replay.pendingTasks&&0<t.replay.nodes.length)throw Error("Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering.");t.replay.pendingTasks--}catch(r){if("object"==typeof r&&null!==r&&(r===rF||"function"==typeof r.then))throw t.node===d&&(t.replay=p),r;t.replay.pendingTasks--,l=nR(e,t.componentStack),s=e,e=t.blockedBoundary,l=nT(s,o=r,l),nq(s,e,y,c,o,l)}t.replay=p}else{if(o!==h)throw Error("Expected the resume to render <Suspense> in this slot but instead it rendered <"+(r$(o)||"Unknown")+">. The tree doesn't match so React will fallback to client rendering.");r:{p=void 0,o=m[5],u=m[2],c=m[3],d=null===m[4]?[]:m[4][2],m=null===m[4]?null:m[4][3];var v=t.componentStack,b=t.componentStack=nE(t,"Suspense"),S=t.keyPath,w=t.replay,k=t.blockedBoundary,C=t.hoistableState,$=l.children;l=l.fallback;var P=new Set,E=nx(e,P);E.parentFlushed=!0,E.rootSegmentID=o,t.blockedBoundary=E,t.hoistableState=E.contentState,t.replay={nodes:u,slots:c,pendingTasks:1};try{if(nU(e,t,$,-1),1===t.replay.pendingTasks&&0<t.replay.nodes.length)throw Error("Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering.");if(t.replay.pendingTasks--,0===E.pendingTasks&&0===E.status){E.status=1,e.completedBoundaries.push(E);break r}}catch(r){E.status=4,y=nR(e,t.componentStack),p=nT(e,r,y),E.errorDigest=p,t.replay.pendingTasks--,e.clientRenderedBoundaries.push(E)}finally{t.blockedBoundary=k,t.hoistableState=C,t.replay=w,t.keyPath=S,t.componentStack=v}t=n$(e,null,{nodes:d,slots:m,pendingTasks:0},l,-1,k,E.fallbackState,P,[s[0],"Suspense Fallback",s[2]],t.formatContext,t.legacyContext,t.context,t.treeContext,b,!0),e.pingedTasks.push(t)}}n.splice(r,1);break t}}}else nM(e,t,s,o,l,u);return;case a:throw Error("Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render.");case g:l=t.componentStack,t.componentStack=nE(t,"Lazy"),r=(s=r._init)(r._payload),t.componentStack=l,nD(e,t,r,n);return}if(x(r)){nF(e,t,r,n);return}if((l=null===r||"object"!=typeof r?null:"function"==typeof(l=_&&r[_]||r["@@iterator"])?l:null)&&(l=l.call(r))){if(!(r=l.next()).done){s=[];do s.push(r.value),r=l.next();while(!r.done)nF(e,t,s,n)}return}if("function"==typeof r.then)return t.thenableState=null,nD(e,t,ns(r),n);if(r.$$typeof===f)return nD(e,t,r._currentValue,n);throw Error("Objects are not valid as a React child (found: "+("[object Object]"===(n=Object.prototype.toString.call(r))?"object with keys {"+Object.keys(r).join(", ")+"}":n)+"). If you meant to render a collection of children, use an array instead.")}"string"==typeof r?null!==(n=t.blockedSegment)&&(n.lastPushedText=eh(n.chunks,r,e.renderState,n.lastPushedText)):"number"==typeof r&&null!==(n=t.blockedSegment)&&(n.lastPushedText=eh(n.chunks,""+r,e.renderState,n.lastPushedText))}}function nF(e,t,r,n){var o=t.keyPath;if(-1!==n&&(t.keyPath=[t.keyPath,"Fragment",n],null!==t.replay)){for(var i=t.replay,a=i.nodes,s=0;s<a.length;s++){var l=a[s];if(l[1]===n){n=l[2],l=l[3],t.replay={nodes:n,slots:l,pendingTasks:1};try{if(nF(e,t,r,-1),1===t.replay.pendingTasks&&0<t.replay.nodes.length)throw Error("Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering.");t.replay.pendingTasks--}catch(o){if("object"==typeof o&&null!==o&&(o===rF||"function"==typeof o.then))throw o;t.replay.pendingTasks--,r=nR(e,t.componentStack);var u=t.blockedBoundary;r=nT(e,o,r),nq(e,u,n,l,o,r)}t.replay=i,a.splice(s,1);break}}t.keyPath=o;return}if(i=t.treeContext,a=r.length,null!==t.replay&&null!==(s=t.replay.slots)&&"object"==typeof s){for(n=0;n<a;n++)l=r[n],t.treeContext=rN(i,a,n),"number"==typeof(u=s[n])?(nL(e,t,u,l,n),delete s[n]):nU(e,t,l,n);t.treeContext=i,t.keyPath=o;return}for(s=0;s<a;s++)n=r[s],t.treeContext=rN(i,a,s),nU(e,t,n,s);t.treeContext=i,t.keyPath=o}function nH(e,t){null!==(e=e.trackedPostpones)&&null!==(t=t.trackedContentKeyPath)&&void 0!==(t=e.workingMap.get(t))&&(t.length=4,t[2]=[],t[3]=null)}function nU(e,t,r,n){var o=t.formatContext,i=t.legacyContext,a=t.context,s=t.keyPath,l=t.treeContext,u=t.componentStack,c=t.blockedSegment;if(null===c)try{return nD(e,t,r,n)}catch(c){if(r7(),"object"==typeof(r=c===rF?rB():c)&&null!==r&&"function"==typeof r.then){e=n$(e,n=r9(),t.replay,t.node,t.childIndex,t.blockedBoundary,t.hoistableState,t.abortSet,t.keyPath,t.formatContext,t.legacyContext,t.context,t.treeContext,null!==t.componentStack?t.componentStack.parent:null,t.isFallback).ping,r.then(e,e),t.formatContext=o,t.legacyContext=i,t.context=a,t.keyPath=s,t.treeContext=l,t.componentStack=u,rj(a);return}}else{var d=c.children.length,f=c.chunks.length;try{return nD(e,t,r,n)}catch(p){if(r7(),c.children.length=d,c.chunks.length=f,"object"==typeof(r=p===rF?rB():p)&&null!==r&&"function"==typeof r.then){n=r9(),d=nP(e,(c=t.blockedSegment).chunks.length,null,t.formatContext,c.lastPushedText,!0),c.children.push(d),c.lastPushedText=!1,e=nC(e,n,t.node,t.childIndex,t.blockedBoundary,d,t.hoistableState,t.abortSet,t.keyPath,t.formatContext,t.legacyContext,t.context,t.treeContext,null!==t.componentStack?t.componentStack.parent:null,t.isFallback).ping,r.then(e,e),t.formatContext=o,t.legacyContext=i,t.context=a,t.keyPath=s,t.treeContext=l,t.componentStack=u,rj(a);return}}}throw t.formatContext=o,t.legacyContext=i,t.context=a,t.keyPath=s,t.treeContext=l,rj(a),r}function nB(e){var t=e.blockedBoundary;null!==(e=e.blockedSegment)&&(e.status=3,nG(this,t,e))}function nq(e,t,r,n,o,i){for(var a=0;a<r.length;a++){var s=r[a];if(4===s.length)nq(e,t,s[2],s[3],o,i);else{s=s[5];var l=nx(e,new Set);l.parentFlushed=!0,l.rootSegmentID=s,l.status=4,l.errorDigest=i,l.parentFlushed&&e.clientRenderedBoundaries.push(l)}}if(r.length=0,null!==n){if(null===t)throw Error("We should not have any resumable nodes in the shell. This is a bug in React.");if(4!==t.status&&(t.status=4,t.errorDigest=i,t.parentFlushed&&e.clientRenderedBoundaries.push(t)),"object"==typeof n)for(var u in n)delete n[u]}}function nW(e,t){try{var r=e.renderState,n=r.onHeaders;if(n){var o=r.headers;if(o){r.headers=null;var i=o.preconnects;if(o.fontPreloads&&(i&&(i+=", "),i+=o.fontPreloads),o.highImagePreloads&&(i&&(i+=", "),i+=o.highImagePreloads),!t){var a=r.styles.values(),s=a.next();r:for(;0<o.remainingCapacity&&!s.done;s=a.next())for(var l=s.value.sheets.values(),u=l.next();0<o.remainingCapacity&&!u.done;u=l.next()){var c=u.value,d=c.props,f=d.href,p=c.props,h=ry(p.href,"style",{crossOrigin:p.crossOrigin,integrity:p.integrity,nonce:p.nonce,type:p.type,fetchPriority:p.fetchPriority,referrerPolicy:p.referrerPolicy,media:p.media});if(2<=(o.remainingCapacity-=h.length))r.resets.style[f]=K,i&&(i+=", "),i+=h,r.resets.style[f]="string"==typeof d.crossOrigin||"string"==typeof d.integrity?[d.crossOrigin,d.integrity]:K;else break r}}n(i?{Link:i}:{})}}}catch(t){nT(e,t,{})}}function nz(e){null===e.trackedPostpones&&nW(e,!0),e.onShellError=nS,(e=e.onShellReady)()}function nJ(e){nW(e,null===e.trackedPostpones||null===e.completedRootSegment||5!==e.completedRootSegment.status),(e=e.onAllReady)()}function nV(e,t){if(0===t.chunks.length&&1===t.children.length&&null===t.children[0].boundary&&-1===t.children[0].id){var r=t.children[0];r.id=t.id,r.parentFlushed=!0,1===r.status&&nV(e,r)}else e.completedSegments.push(t)}function nG(e,t,r){if(null===t){if(null!==r&&r.parentFlushed){if(null!==e.completedRootSegment)throw Error("There can only be one root segment. This is a bug in React.");e.completedRootSegment=r}e.pendingRootTasks--,0===e.pendingRootTasks&&nz(e)}else t.pendingTasks--,4!==t.status&&(0===t.pendingTasks?(0===t.status&&(t.status=1),null!==r&&r.parentFlushed&&1===r.status&&nV(t,r),t.parentFlushed&&e.completedBoundaries.push(t),1===t.status&&(t.fallbackAbortableTasks.forEach(nB,e),t.fallbackAbortableTasks.clear())):null!==r&&r.parentFlushed&&1===r.status&&(nV(t,r),1===t.completedSegments.length&&t.parentFlushed&&e.partialBoundaries.push(t)));e.allPendingTasks--,0===e.allPendingTasks&&nJ(e)}function nY(e){if(2!==e.status){var t=rR,r=ng.current;ng.current=nc;var n=nv.current;nv.current=np;var o=nw;nw=e;var i=nf;nf=e.resumableState;try{var a,s=e.pingedTasks;for(a=0;a<s.length;a++){var l=s[a],u=e,c=l.blockedSegment;if(null===c){var d=u;if(0!==l.replay.pendingTasks){rj(l.context);try{if(nD(d,l,l.node,l.childIndex),1===l.replay.pendingTasks&&0<l.replay.nodes.length)throw Error("Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering.");l.replay.pendingTasks--,l.abortSet.delete(l),nG(d,l.blockedBoundary,null)}catch(e){r7();var f=e===rF?rB():e;if("object"==typeof f&&null!==f&&"function"==typeof f.then){var p=l.ping;f.then(p,p),l.thenableState=r9()}else{l.replay.pendingTasks--,l.abortSet.delete(l);var h=nR(d,l.componentStack);u=void 0;var m=d,y=l.blockedBoundary,g=l.replay.nodes,v=l.replay.slots;u=nT(m,f,h),nq(m,y,g,v,f,u),d.pendingRootTasks--,0===d.pendingRootTasks&&nz(d),d.allPendingTasks--,0===d.allPendingTasks&&nJ(d)}}finally{}}}else if(d=void 0,m=c,0===m.status){rj(l.context);var b=m.children.length,S=m.chunks.length;try{nD(u,l,l.node,l.childIndex),m.lastPushedText&&m.textEmbedded&&m.chunks.push(ep),l.abortSet.delete(l),m.status=1,nG(u,l.blockedBoundary,m)}catch(e){r7(),m.children.length=b,m.chunks.length=S;var w=e===rF?rB():e;if("object"==typeof w&&null!==w&&"function"==typeof w.then){var k=l.ping;w.then(k,k),l.thenableState=r9()}else{var _=nR(u,l.componentStack);l.abortSet.delete(l),m.status=4;var x=l.blockedBoundary;d=nT(u,w,_),null===x?nj(u,w):(x.pendingTasks--,4!==x.status&&(x.status=4,x.errorDigest=d,nH(u,x),x.parentFlushed&&u.clientRenderedBoundaries.push(x))),u.allPendingTasks--,0===u.allPendingTasks&&nJ(u)}}finally{}}}s.splice(0,a),null!==e.destination&&n1(e,e.destination)}catch(t){nT(e,t,{}),nj(e,t)}finally{nf=i,ng.current=r,nv.current=n,r===nc&&rj(t),nw=o}}}function nX(e,t,r,n){switch(r.parentFlushed=!0,r.status){case 0:r.id=e.nextSegmentId++;case 5:return n=r.id,r.lastPushedText=!1,r.textEmbedded=!1,e=e.renderState,E(t,eQ),E(t,e.placeholderPrefix),E(t,e=O(n.toString(16))),R(t,e0);case 1:r.status=2;var o=!0,i=r.chunks,a=0;r=r.children;for(var s=0;s<r.length;s++){for(o=r[s];a<o.index;a++)E(t,i[a]);o=nK(e,t,o,n)}for(;a<i.length-1;a++)E(t,i[a]);return a<i.length&&(o=R(t,i[a])),o;default:throw Error("Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React.")}}function nK(e,t,r,n){var o=r.boundary;if(null===o)return nX(e,t,r,n);if(o.parentFlushed=!0,4===o.status)o=o.errorDigest,R(t,e4),E(t,e8),o&&(E(t,e9),E(t,O(W(o))),E(t,e5)),R(t,e7),nX(e,t,r,n);else if(1!==o.status)0===o.status&&(o.rootSegmentID=e.nextSegmentId++),0<o.completedSegments.length&&e.partialBoundaries.push(o),te(t,e.renderState,o.rootSegmentID),n&&((o=o.fallbackState).styles.forEach(rw,n),o.stylesheets.forEach(rk,n)),nX(e,t,r,n);else if(o.byteSize>e.progressiveChunkSize)o.rootSegmentID=e.nextSegmentId++,e.completedBoundaries.push(o),te(t,e.renderState,o.rootSegmentID),nX(e,t,r,n);else{if(n&&((r=o.contentState).styles.forEach(rw,n),r.stylesheets.forEach(rk,n)),R(t,e1),1!==(r=o.completedSegments).length)throw Error("A previously unvisited boundary must have exactly one root segment. This is a bug in React.");nK(e,t,r[0],n)}return R(t,e3)}function nZ(e,t,r,n){return!function(e,t,r,n){switch(r.insertionMode){case 0:case 1:case 2:return E(e,tt),E(e,t.segmentPrefix),E(e,O(n.toString(16))),R(e,tr);case 3:return E(e,to),E(e,t.segmentPrefix),E(e,O(n.toString(16))),R(e,ti);case 4:return E(e,ts),E(e,t.segmentPrefix),E(e,O(n.toString(16))),R(e,tl);case 5:return E(e,tc),E(e,t.segmentPrefix),E(e,O(n.toString(16))),R(e,td);case 6:return E(e,tp),E(e,t.segmentPrefix),E(e,O(n.toString(16))),R(e,th);case 7:return E(e,ty),E(e,t.segmentPrefix),E(e,O(n.toString(16))),R(e,tg);case 8:return E(e,tb),E(e,t.segmentPrefix),E(e,O(n.toString(16))),R(e,tS);default:throw Error("Unknown insertion mode. This is a bug in React.")}}(t,e.renderState,r.parentFormatContext,r.id),nK(e,t,r,n),function(e,t){switch(t.insertionMode){case 0:case 1:case 2:return R(e,tn);case 3:return R(e,ta);case 4:return R(e,tu);case 5:return R(e,tf);case 6:return R(e,tm);case 7:return R(e,tv);case 8:return R(e,tw);default:throw Error("Unknown insertion mode. This is a bug in React.")}}(t,r.parentFormatContext)}function nQ(e,t,r){for(var n,o,i,a,s=r.completedSegments,l=0;l<s.length;l++)n0(e,t,r,s[l]);s.length=0,t9(t,r.contentState,e.renderState),s=e.resumableState,e=e.renderState,l=r.rootSegmentID,r=r.contentState;var u=e.stylesToHoist;e.stylesToHoist=!1;var c=0===s.streamingFormat;return c?(E(t,e.startInlineScript),u?0==(2&s.instructions)?(s.instructions|=10,E(t,tT)):0==(8&s.instructions)?(s.instructions|=8,E(t,tj)):E(t,tO):0==(2&s.instructions)?(s.instructions|=2,E(t,tE)):E(t,tR)):u?E(t,tD):E(t,tL),s=O(l.toString(16)),E(t,e.boundaryPrefix),E(t,s),c?E(t,tA):E(t,tF),E(t,e.segmentPrefix),E(t,s),u?(c?(E(t,tI),n=r,E(t,rc),o=rc,n.stylesheets.forEach(function(e){if(2!==e.state){if(3===e.state)E(t,o),E(t,O(tQ(""+e.props.href))),E(t,rp),o=rd;else{E(t,o);var r=e.props["data-precedence"],n=e.props;for(var i in E(t,O(tQ(""+e.props.href))),r=""+r,E(t,rf),E(t,O(tQ(r))),n)if(M.call(n,i)){var a=n[i];if(null!=a)switch(i){case"href":case"rel":case"precedence":case"data-precedence":break;case"children":case"dangerouslySetInnerHTML":throw Error("link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`.");default:t:{r=t;var s=i.toLowerCase();switch(typeof a){case"function":case"symbol":break t}switch(i){case"innerHTML":case"dangerouslySetInnerHTML":case"suppressContentEditableWarning":case"suppressHydrationWarning":case"style":case"ref":break t;case"className":s="class",a=""+a;break;case"hidden":if(!1===a)break t;a="";break;case"src":case"href":a=""+a;break;default:if(2<i.length&&("o"===i[0]||"O"===i[0])&&("n"===i[1]||"N"===i[1])||!H(i))break t;a=""+a}E(r,rf),E(r,O(tQ(s))),E(r,rf),E(r,O(tQ(a)))}}}E(t,rp),o=rd,e.state=3}}})):(E(t,tH),i=r,E(t,rc),a=rc,i.stylesheets.forEach(function(e){if(2!==e.state){if(3===e.state)E(t,a),E(t,O(W(JSON.stringify(""+e.props.href)))),E(t,rp),a=rd;else{E(t,a);var r=e.props["data-precedence"],n=e.props;for(var o in E(t,O(W(JSON.stringify(""+e.props.href)))),r=""+r,E(t,rf),E(t,O(W(JSON.stringify(r)))),n)if(M.call(n,o)){var i=n[o];if(null!=i)switch(o){case"href":case"rel":case"precedence":case"data-precedence":break;case"children":case"dangerouslySetInnerHTML":throw Error("link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`.");default:t:{r=t;var s=o.toLowerCase();switch(typeof i){case"function":case"symbol":break t}switch(o){case"innerHTML":case"dangerouslySetInnerHTML":case"suppressContentEditableWarning":case"suppressHydrationWarning":case"style":case"ref":break t;case"className":s="class",i=""+i;break;case"hidden":if(!1===i)break t;i="";break;case"src":case"href":i=""+i;break;default:if(2<o.length&&("o"===o[0]||"O"===o[0])&&("n"===o[1]||"N"===o[1])||!H(o))break t;i=""+i}E(r,rf),E(r,O(W(JSON.stringify(s)))),E(r,rf),E(r,O(W(JSON.stringify(i))))}}}E(t,rp),a=rd,e.state=3}}})),E(t,rp)):c&&E(t,tN),s=c?R(t,tM):R(t,Z),eZ(t,e)&&s}function n0(e,t,r,n){if(2===n.status)return!0;var o=r.contentState,i=n.id;if(-1===i){if(-1===(n.id=r.rootSegmentID))throw Error("A root segment ID must have been assigned by now. This is a bug in React.");return nZ(e,t,n,o)}return i===r.rootSegmentID?nZ(e,t,n,o):(nZ(e,t,n,o),r=e.resumableState,e=e.renderState,(n=0===r.streamingFormat)?(E(t,e.startInlineScript),0==(1&r.instructions)?(r.instructions|=1,E(t,tk)):E(t,t_)):E(t,t$),E(t,e.segmentPrefix),E(t,i=O(i.toString(16))),n?E(t,tx):E(t,tP),E(t,e.placeholderPrefix),E(t,i),t=n?R(t,tC):R(t,Z))}function n1(e,t){$=new Uint8Array(2048),P=0;try{var r,n=e.completedRootSegment;if(null!==n){if(5===n.status||0!==e.pendingRootTasks)return;var o=e.renderState;if((0!==e.allPendingTasks||null!==e.trackedPostpones)&&o.externalRuntimeScript){var i=o.externalRuntimeScript,a=e.resumableState,s=i.src,l=i.chunks;a.scriptResources.hasOwnProperty(s)||(a.scriptResources[s]=null,o.scripts.add(l))}var u,c=o.htmlChunks,d=o.headChunks;if(c){for(u=0;u<c.length;u++)E(t,c[u]);if(d)for(u=0;u<d.length;u++)E(t,d[u]);else E(t,eG("head")),E(t,eO)}else if(d)for(u=0;u<d.length;u++)E(t,d[u]);var f=o.charsetChunks;for(u=0;u<f.length;u++)E(t,f[u]);f.length=0,o.preconnects.forEach(t7,t),o.preconnects.clear();var p=o.viewportChunks;for(u=0;u<p.length;u++)E(t,p[u]);p.length=0,o.fontPreloads.forEach(t7,t),o.fontPreloads.clear(),o.highImagePreloads.forEach(t7,t),o.highImagePreloads.clear(),o.styles.forEach(rs,t);var h=o.importMapChunks;for(u=0;u<h.length;u++)E(t,h[u]);h.length=0,o.bootstrapScripts.forEach(t7,t),o.scripts.forEach(t7,t),o.scripts.clear(),o.bulkPreloads.forEach(t7,t),o.bulkPreloads.clear();var m=o.hoistableChunks;for(u=0;u<m.length;u++)E(t,m[u]);m.length=0,c&&null===d&&E(t,eK("head")),nK(e,t,n,null),e.completedRootSegment=null,eZ(t,e.renderState)}var y=e.renderState;n=0;var g=y.viewportChunks;for(n=0;n<g.length;n++)E(t,g[n]);g.length=0,y.preconnects.forEach(t7,t),y.preconnects.clear(),y.fontPreloads.forEach(t7,t),y.fontPreloads.clear(),y.highImagePreloads.forEach(t7,t),y.highImagePreloads.clear(),y.styles.forEach(ru,t),y.scripts.forEach(t7,t),y.scripts.clear(),y.bulkPreloads.forEach(t7,t),y.bulkPreloads.clear();var v=y.hoistableChunks;for(n=0;n<v.length;n++)E(t,v[n]);v.length=0;var b=e.clientRenderedBoundaries;for(r=0;r<b.length;r++){var S=b[r];y=t;var w=e.resumableState,k=e.renderState,_=S.rootSegmentID,x=S.errorDigest,C=S.errorMessage,j=S.errorComponentStack,A=0===w.streamingFormat;if(A?(E(y,k.startInlineScript),0==(4&w.instructions)?(w.instructions|=4,E(y,tU)):E(y,tB)):E(y,tJ),E(y,k.boundaryPrefix),E(y,O(_.toString(16))),A&&E(y,tq),(x||C||j)&&(A?(E(y,tW),E(y,O(tK(x||"")))):(E(y,tV),E(y,O(W(x||""))))),(C||j)&&(A?(E(y,tW),E(y,O(tK(C||"")))):(E(y,tG),E(y,O(W(C||""))))),j&&(A?(E(y,tW),E(y,O(tK(j)))):(E(y,tY),E(y,O(W(j))))),A?!R(y,tz):!R(y,Z)){e.destination=null,r++,b.splice(0,r);return}}b.splice(0,r);var I=e.completedBoundaries;for(r=0;r<I.length;r++)if(!nQ(e,t,I[r])){e.destination=null,r++,I.splice(0,r);return}I.splice(0,r),T(t),$=new Uint8Array(2048),P=0;var N=e.partialBoundaries;for(r=0;r<N.length;r++){var M=N[r];t:{b=e,S=t;var L=M.completedSegments;for(w=0;w<L.length;w++)if(!n0(b,S,M,L[w])){w++,L.splice(0,w);var D=!1;break t}L.splice(0,w),D=t9(S,M.contentState,b.renderState)}if(!D){e.destination=null,r++,N.splice(0,r);return}}N.splice(0,r);var F=e.completedBoundaries;for(r=0;r<F.length;r++)if(!nQ(e,t,F[r])){e.destination=null,r++,F.splice(0,r);return}F.splice(0,r)}finally{0===e.allPendingTasks&&0===e.pingedTasks.length&&0===e.clientRenderedBoundaries.length&&0===e.completedBoundaries.length?(e.flushScheduled=!1,(r=e.resumableState).hasBody&&E(t,eK("body")),r.hasHtml&&E(t,eK("html")),T(t),t.close(),e.destination=null):T(t)}}function n2(e){nW(e,0===e.pendingRootTasks)}function n6(e){!1===e.flushScheduled&&0===e.pingedTasks.length&&null!==e.destination&&(e.flushScheduled=!0,setTimeout(function(){var t=e.destination;t?n1(e,t):e.flushScheduled=!1},0))}function n4(e,t){try{var r=e.abortableTasks;if(0<r.size){var n=void 0===t?Error("The render was aborted by the server without a reason."):t;r.forEach(function(t){return function e(t,r,n){var o=t.blockedBoundary,i=t.blockedSegment;if(null!==i&&(i.status=3),null===o){if(o={},1!==r.status&&2!==r.status){if(null===(t=t.replay)){nT(r,n,o),nj(r,n);return}t.pendingTasks--,0===t.pendingTasks&&0<t.nodes.length&&(o=nT(r,n,o),nq(r,null,t.nodes,t.slots,n,o)),r.pendingRootTasks--,0===r.pendingRootTasks&&nz(r)}}else o.pendingTasks--,4!==o.status&&(o.status=4,t=nR(r,t.componentStack),t=nT(r,n,t),o.errorDigest=t,nH(r,o),o.parentFlushed&&r.clientRenderedBoundaries.push(o)),o.fallbackAbortableTasks.forEach(function(t){return e(t,r,n)}),o.fallbackAbortableTasks.clear();r.allPendingTasks--,0===r.allPendingTasks&&nJ(r)}(t,e,n)}),r.clear()}null!==e.destination&&n1(e,e.destination)}catch(t){nT(e,t,{}),nj(e,t)}}t.renderToReadableStream=function(e,t){return new Promise(function(r,n){var o,i,a,s,l,u,c,d,f,p,h,m,y,g,v,b,S,w,k,_,x,C,$,P,E=new Promise(function(e,t){$=e,C=t}),R=t?t.onHeaders:void 0;R&&(P=function(e){R(new Headers(e))});var T=(o=t?t.identifierPrefix:void 0,i=t?t.unstable_externalRuntimeSrc:void 0,a=t?t.bootstrapScriptContent:void 0,s=t?t.bootstrapScripts:void 0,l=t?t.bootstrapModules:void 0,u=0,void 0!==i&&(u=1),{idPrefix:void 0===o?"":o,nextFormID:0,streamingFormat:u,bootstrapScriptContent:a,bootstrapScripts:s,bootstrapModules:l,instructions:0,hasBody:!1,hasHtml:!1,unknownResources:{},dnsResources:{},connectResources:{default:{},anonymous:{},credentials:{}},imageResources:{},styleResources:{},scriptResources:{},moduleUnknownResources:{},moduleScriptResources:{}}),j=(d=e,f=T,p=function(e,t,r,n,o,i){var a=void 0===t?Q:A('<script nonce="'+W(t)+'">'),s=e.idPrefix,l=[],u=null,c=e.bootstrapScriptContent,d=e.bootstrapScripts,f=e.bootstrapModules;if(void 0!==c&&l.push(a,O((""+c).replace(es,el)),ee),void 0!==r&&("string"==typeof r?eq((u={src:r,chunks:[]}).chunks,{src:r,async:!0,integrity:void 0,nonce:t}):eq((u={src:r.src,chunks:[]}).chunks,{src:r.src,async:!0,integrity:r.integrity,nonce:t})),r=[],void 0!==n&&(r.push(eu),r.push(O((""+JSON.stringify(n)).replace(es,el))),r.push(ec)),n=o?{preconnects:"",fontPreloads:"",highImagePreloads:"",remainingCapacity:"number"==typeof i?i:2e3}:null,o={placeholderPrefix:A(s+"P:"),segmentPrefix:A(s+"S:"),boundaryPrefix:A(s+"B:"),startInlineScript:a,htmlChunks:null,headChunks:null,externalRuntimeScript:u,bootstrapChunks:l,importMapChunks:r,onHeaders:o,headers:n,resets:{font:{},dns:{},connect:{default:{},anonymous:{},credentials:{}},image:{},style:{}},charsetChunks:[],viewportChunks:[],hoistableChunks:[],preconnects:new Set,fontPreloads:new Set,highImagePreloads:new Set,styles:new Map,bootstrapScripts:new Set,scripts:new Set,bulkPreloads:new Set,preloads:{images:new Map,stylesheets:new Map,scripts:new Map,moduleScripts:new Map},nonce:t,hoistableState:null,stylesToHoist:!1},void 0!==d)for(a=0;a<d.length;a++)r=d[a],n=u=void 0,i={rel:"preload",as:"script",fetchPriority:"low",nonce:t},"string"==typeof r?i.href=s=r:(i.href=s=r.src,i.integrity=n="string"==typeof r.integrity?r.integrity:void 0,i.crossOrigin=u="string"==typeof r||null==r.crossOrigin?void 0:"use-credentials"===r.crossOrigin?"use-credentials":""),r=e,c=s,r.scriptResources[c]=null,r.moduleScriptResources[c]=null,eH(r=[],i),o.bootstrapScripts.add(r),l.push(et,O(W(s))),t&&l.push(en,O(W(t))),"string"==typeof n&&l.push(eo,O(W(n))),"string"==typeof u&&l.push(ei,O(W(u))),l.push(ea);if(void 0!==f)for(d=0;d<f.length;d++)i=f[d],u=s=void 0,n={rel:"modulepreload",fetchPriority:"low",nonce:t},"string"==typeof i?n.href=a=i:(n.href=a=i.src,n.integrity=u="string"==typeof i.integrity?i.integrity:void 0,n.crossOrigin=s="string"==typeof i||null==i.crossOrigin?void 0:"use-credentials"===i.crossOrigin?"use-credentials":""),i=e,r=a,i.scriptResources[r]=null,i.moduleScriptResources[r]=null,eH(i=[],n),o.bootstrapScripts.add(i),l.push(er,O(W(a))),t&&l.push(en,O(W(t))),"string"==typeof u&&l.push(eo,O(W(u))),"string"==typeof s&&l.push(ei,O(W(s))),l.push(ea);return o}(T,t?t.nonce:void 0,t?t.unstable_externalRuntimeSrc:void 0,t?t.importMap:void 0,P,t?t.maxHeadersLength:void 0),h=ed("http://www.w3.org/2000/svg"===(c=t?t.namespaceURI:void 0)?3:"http://www.w3.org/1998/Math/MathML"===c?4:0,null,0),m=t?t.progressiveChunkSize:void 0,y=t?t.onError:void 0,g=$,v=function(){var e=new ReadableStream({type:"bytes",pull:function(e){if(1===j.status)j.status=2,I(e,j.fatalError);else if(2!==j.status&&null===j.destination){j.destination=e;try{n1(j,e)}catch(e){nT(j,e,{}),nj(j,e)}}},cancel:function(e){j.destination=null,n4(j,e)}},{highWaterMark:0});e.allReady=E,r(e)},b=function(e){E.catch(function(){}),n(e)},S=C,w=t?t.onPostpone:void 0,k=t?t.formState:void 0,_=[],(p=nP(f={destination:null,flushScheduled:!1,resumableState:f,renderState:p,rootFormatContext:h,progressiveChunkSize:void 0===m?12800:m,status:0,fatalError:null,nextSegmentId:0,allPendingTasks:0,pendingRootTasks:0,completedRootSegment:null,abortableTasks:x=new Set,pingedTasks:_,clientRenderedBoundaries:[],completedBoundaries:[],partialBoundaries:[],trackedPostpones:null,onError:void 0===y?nb:y,onPostpone:void 0===w?nS:w,onAllReady:void 0===g?nS:g,onShellReady:void 0===v?nS:v,onShellError:void 0===b?nS:b,onFatalError:void 0===S?nS:S,formState:void 0===k?null:k},0,null,h,!1,!1)).parentFlushed=!0,d=nC(f,null,d,-1,null,p,null,x,null,h,rP,null,rI,null,!1),_.push(d),f);if(t&&t.signal){var N=t.signal;if(N.aborted)n4(j,N.reason);else{var M=function(){n4(j,N.reason),N.removeEventListener("abort",M)};N.addEventListener("abort",M)}}j.flushScheduled=null!==j.destination,r_?setTimeout(function(){return rx.run(j,nY,j)},0):setTimeout(function(){return nY(j)},0),null===j.trackedPostpones&&(r_?setTimeout(function(){return rx.run(j,n2,j)},0):setTimeout(function(){return n2(j)},0))})},t.version="18.3.0-canary-c3048aab4-20240326"},"./dist/compiled/react-dom/server-rendering-stub.js":(e,t,r)=>{"use strict";e.exports=r("./dist/compiled/react-dom/cjs/react-dom-server-rendering-stub.production.min.js")},"./dist/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.production.js":(e,t,r)=>{"use strict";/**
     |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ^
  13 |  * @license React
  14 |  * react-server-dom-turbopack-client.edge.production.js
  15 |  *

  at ./dist/compiled/react-dom/cjs/react-dom-server-rendering-stub.production.min.js (../packages/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js:12:2450)
  at r (../packages/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js:100:18824)
  at ./dist/compiled/react-dom/server-rendering-stub.js (../packages/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js:12:88367)
  at r (../packages/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js:100:18824)
  at ../packages/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js:104:2791
  at ../packages/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js:107:4632
  at Object.<anonymous> (../packages/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js:107:4653)
  > Build error occurred
  Error: Failed to collect page data for /client
  at ../packages/next/dist/build/utils.js:1267:15
  at process.processTicksAndRejections (../node:internal/process/task_queues:95:5) {
    type: 'Error'
  }
  at ChildProcess.<anonymous> (lib/next-test-utils.ts:284:11)

Read more about building and testing Next.js in contributing.md.

__NEXT_EXPERIMENTAL_PPR=true pnpm test-dev test/e2e/app-dir/app-routes-trailing-slash/app-routes-trailing-slash.test.ts (PPR)

  • app-routes-trailing-slash > should handle trailing slash for edge runtime
  • app-routes-trailing-slash > should handle trailing slash for node runtime
Expand output

● app-routes-trailing-slash › should handle trailing slash for edge runtime

expect(received).toEqual(expected) // deep equality

Expected: 200
Received: 500

  21 |         })
  22 |
> 23 |         expect(res.status).toEqual(200)
     |                            ^
  24 |         await expect(res.json()).resolves.toEqual({
  25 |           url: `/runtime/${runtime}/`,
  26 |           nextUrl: `/runtime/${runtime}/`,

  at toEqual (e2e/app-dir/app-routes-trailing-slash/app-routes-trailing-slash.test.ts:23:28)

● app-routes-trailing-slash › should handle trailing slash for node runtime

expect(received).toEqual(expected) // deep equality

Expected: 200
Received: 500

  21 |         })
  22 |
> 23 |         expect(res.status).toEqual(200)
     |                            ^
  24 |         await expect(res.json()).resolves.toEqual({
  25 |           url: `/runtime/${runtime}/`,
  26 |           nextUrl: `/runtime/${runtime}/`,

  at toEqual (e2e/app-dir/app-routes-trailing-slash/app-routes-trailing-slash.test.ts:23:28)

Read more about building and testing Next.js in contributing.md.

__NEXT_EXPERIMENTAL_PPR=true pnpm test-start test/e2e/app-dir/app-compilation/index.test.ts (PPR)

  • app dir > Loading > should render loading.js in initial html for slow page
Expand output

● app dir › Loading › should render loading.js in initial html for slow page

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

Read more about building and testing Next.js in contributing.md.

__NEXT_EXPERIMENTAL_PPR=true pnpm test-start test/e2e/app-dir/app-rendering/rendering.test.ts (PPR)

  • app dir rendering > should serve app/page.server.js at /
  • app dir rendering > ISR > should revalidate the page when revalidate is configured
  • app dir rendering > SSR only > should run data in layout and page
  • app dir rendering > SSR only > should run data fetch in parallel
  • app dir rendering > static only > should run data in layout and page
  • app dir rendering > static only > should run data in parallel and use cached version for production
Expand output

● app dir rendering › should serve app/page.server.js at /

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

● app dir rendering › SSR only › should run data in layout and page

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

● app dir rendering › SSR only › should run data fetch in parallel

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

● app dir rendering › static only › should run data in layout and page

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

● app dir rendering › static only › should run data in parallel and use cached version for production

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

● app dir rendering › ISR › should revalidate the page when revalidate is configured

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

● app dir rendering › mixed static and dynamic › should generate static data during build and use it

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

Read more about building and testing Next.js in contributing.md.

__NEXT_EXPERIMENTAL_PPR=true pnpm test-start test/e2e/app-dir/actions-allowed-origins/app-action-allowed-origins.test.ts (PPR)

  • app-dir action allowed origins > should pass if localhost is set as a safe origin
Expand output

● app-dir action allowed origins › should pass if localhost is set as a safe origin

next build failed with code/signal 1

  89 |           if (code || signal)
  90 |             reject(
> 91 |               new Error(`next build failed with code/signal ${code || signal}`)
     |               ^
  92 |             )
  93 |           else resolve()
  94 |         })

  at ChildProcess.<anonymous> (lib/next-modes/next-start.ts:91:15)

Read more about building and testing Next.js in contributing.md.

pnpm test-dev test/development/acceptance-app/ReactRefreshRequire.test.ts

  • ReactRefreshRequire app > re-runs accepted modules
  • ReactRefreshRequire app > propagates a hot update to closest accepted module
  • ReactRefreshRequire app > propagates hot update to all inverse dependencies
Expand output

● ReactRefreshRequire app › re-runs accepted modules

expect(received).toEqual(expected) // deep equality

Expected: ["init FooV1", "init BarV1"]
Received: undefined

  38 |       `require('./foo'); export default function Noop() { return null; };`
  39 |     )
> 40 |     expect(await session.evaluate(() => (window as any).log)).toEqual([
     |                                                               ^
  41 |       'init FooV1',
  42 |       'init BarV1',
  43 |     ])

  at Object.toEqual (development/acceptance-app/ReactRefreshRequire.test.ts:40:63)

● ReactRefreshRequire app › propagates a hot update to closest accepted module

expect(received).toEqual(expected) // deep equality

Expected: ["init FooV1", "init BarV1"]
Received: undefined

  100 |     )
  101 |
> 102 |     expect(await session.evaluate(() => (window as any).log)).toEqual([
      |                                                               ^
  103 |       'init FooV1',
  104 |       'init BarV1',
  105 |     ])

  at Object.toEqual (development/acceptance-app/ReactRefreshRequire.test.ts:102:63)

● ReactRefreshRequire app › propagates hot update to all inverse dependencies

expect(received).toEqual(expected) // deep equality

Expected: ["init LeafV1", "init MiddleAV1", "init MiddleBV1", "init MiddleCV1", "init RootV1"]
Received: undefined

  249 |     )
  250 |
> 251 |     expect(await session.evaluate(() => (window as any).log)).toEqual([
      |                                                               ^
  252 |       'init LeafV1',
  253 |       'init MiddleAV1',
  254 |       'init MiddleBV1',

  at Object.toEqual (development/acceptance-app/ReactRefreshRequire.test.ts:251:63)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/next-image-new/app-dir-image-from-node-modules/test/index.test.ts (turbopack)

  • Image Component from node_modules development mode > should apply image config for node_modules
Expand output

● Image Component from node_modules development mode › should apply image config for node_modules

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  15 |
  16 | function runTests() {
> 17 |   it('should apply image config for node_modules', async () => {
     |   ^
  18 |     const browser = await webdriver(appPort, '/')
  19 |     const src = await browser
  20 |       .elementById('image-from-node-modules')

  at it (integration/next-image-new/app-dir-image-from-node-modules/test/index.test.ts:17:3)
  at runTests (integration/next-image-new/app-dir-image-from-node-modules/test/index.test.ts:58:3)
  at Object.describe (integration/next-image-new/app-dir-image-from-node-modules/test/index.test.ts:49:1)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/turborepo-access-trace/test/index.test.js (turbopack)

  • build with proxy trace > production mode > should build and output trace correctly
Expand output

● build with proxy trace › production mode › should build and output trace correctly

expect(received).toBe(expected) // Object.is equality

Expected: 0
Received: 1

  21 |           },
  22 |         })
> 23 |         expect(result.code).toBe(0)
     |                             ^
  24 |
  25 |         const accessTrace = await fs.readJSON(
  26 |           join(appDir, '.turbo', 'turborepo-trace.json')

  at Object.toBe (integration/turborepo-access-trace/test/index.test.js:23:29)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/next-image-new/app-dir/test/static.test.ts (turbopack)

  • Static Image Component Tests > development mode > Should allow an image with a static src to omit height and width
  • Static Image Component Tests > development mode > should have containing followed by for priority image
  • Static Image Component Tests > development mode > Should automatically provide an image height and width
  • Static Image Component Tests > development mode > should use width and height prop to override import
  • Static Image Component Tests > development mode > should use height prop to adjust both width and height
  • Static Image Component Tests > development mode > should use width prop to adjust both width and height
  • Static Image Component Tests > development mode > should add a data URL placeholder to an image
  • Static Image Component Tests > development mode > should add a blur placeholder a statically imported jpg
  • Static Image Component Tests > development mode > should add a blur placeholder a statically imported png
  • Static Image Component Tests > development mode > should add a blur placeholder a statically imported png with fill
  • Static Image Component Tests > development mode > should add placeholder with blurDataURL and fill
  • Static Image Component Tests > development mode > should add placeholder even when blurDataURL aspect ratio does not match width/height ratio
  • Static Image Component Tests > development mode > should load direct imported image
Expand output

● Static Image Component Tests › development mode › Should allow an image with a static src to omit height and width

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  23 |
  24 | const runTests = (isDev) => {
> 25 |   it('Should allow an image with a static src to omit height and width', async () => {
     |   ^
  26 |     expect(await browser.elementById('basic-static')).toBeTruthy()
  27 |     expect(await browser.elementById('blur-png')).toBeTruthy()
  28 |     expect(await browser.elementById('blur-webp')).toBeTruthy()

  at it (integration/next-image-new/app-dir/test/static.test.ts:25:3)
  at runTests (integration/next-image-new/app-dir/test/static.test.ts:279:7)
  at integration/next-image-new/app-dir/test/static.test.ts:266:58
  at Object.describe (integration/next-image-new/app-dir/test/static.test.ts:248:1)

● Static Image Component Tests › development mode › should have containing followed by for priority image

expect(received).toMatch(expected)

Matcher error: received value must be a string

Received has value: undefined

  89 |       })
  90 |     expect(metaViewport.attribs.content).toContain('width=device-width')
> 91 |     expect(linkPreload.attribs.imagesrcset).toMatch(
     |                                             ^
  92 |       /%2F_next%2Fstatic%2Fmedia%2Ftest-rect\.(.*)\.jpg/g
  93 |     )
  94 |     expect(metaViewport.index).toBeLessThan(linkPreload.index)

  at Object.toMatch (integration/next-image-new/app-dir/test/static.test.ts:91:45)

● Static Image Component Tests › development mode › Should automatically provide an image height and width

expect(received).toBe(expected) // Object.is equality

Expected: "400"
Received: undefined

   96 |   it('Should automatically provide an image height and width', async () => {
   97 |     const img = $('#basic-non-static')
>  98 |     expect(img.attr('width')).toBe('400')
      |                               ^
   99 |     expect(img.attr('height')).toBe('300')
  100 |   })
  101 |   it('should use width and height prop to override import', async () => {

  at Object.toBe (integration/next-image-new/app-dir/test/static.test.ts:98:31)

● Static Image Component Tests › development mode › should use width and height prop to override import

expect(received).toBe(expected) // Object.is equality

Expected: "150"
Received: undefined

  101 |   it('should use width and height prop to override import', async () => {
  102 |     const img = $('#defined-width-and-height')
> 103 |     expect(img.attr('width')).toBe('150')
      |                               ^
  104 |     expect(img.attr('height')).toBe('150')
  105 |   })
  106 |   it('should use height prop to adjust both width and height', async () => {

  at Object.toBe (integration/next-image-new/app-dir/test/static.test.ts:103:31)

● Static Image Component Tests › development mode › should use height prop to adjust both width and height

expect(received).toBe(expected) // Object.is equality

Expected: "600"
Received: undefined

  106 |   it('should use height prop to adjust both width and height', async () => {
  107 |     const img = $('#defined-height-only')
> 108 |     expect(img.attr('width')).toBe('600')
      |                               ^
  109 |     expect(img.attr('height')).toBe('350')
  110 |   })
  111 |   it('should use width prop to adjust both width and height', async () => {

  at Object.toBe (integration/next-image-new/app-dir/test/static.test.ts:108:31)

● Static Image Component Tests › development mode › should use width prop to adjust both width and height

expect(received).toBe(expected) // Object.is equality

Expected: "400"
Received: undefined

  111 |   it('should use width prop to adjust both width and height', async () => {
  112 |     const img = $('#defined-width-only')
> 113 |     expect(img.attr('width')).toBe('400')
      |                               ^
  114 |     expect(img.attr('height')).toBe('233')
  115 |   })
  116 |

  at Object.toBe (integration/next-image-new/app-dir/test/static.test.ts:113:31)

● Static Image Component Tests › development mode › should add a data URL placeholder to an image

expect(received).toBe(expected) // Object.is equality

Expected: "color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(\"data:image/svg+xml;base64,Cjxzdmcgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImciPgogICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMzMzIiBvZmZzZXQ9IjIwJSIgLz4KICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzIyMiIgb2Zmc2V0PSI1MCUiIC8+CiAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMzMzMiIG9mZnNldD0iNzAlIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICA8L2RlZnM+CiAgPHJlY3Qgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIGZpbGw9IiMzMzMiIC8+CiAgPHJlY3QgaWQ9InIiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBmaWxsPSJ1cmwoI2cpIiAvPgogIDxhbmltYXRlIHhsaW5rOmhyZWY9IiNyIiBhdHRyaWJ1dGVOYW1lPSJ4IiBmcm9tPSItMjAwIiB0bz0iMjAwIiBkdXI9IjFzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgIC8+Cjwvc3ZnPg==\")"
Received: undefined

  117 |   it('should add a data URL placeholder to an image', async () => {
  118 |     const style = $('#data-url-placeholder').attr('style')
> 119 |     expect(style).toBe(
      |                   ^
  120 |       `color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;base64,Cjxzdmcgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImciPgogICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMzMzIiBvZmZzZXQ9IjIwJSIgLz4KICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzIyMiIgb2Zmc2V0PSI1MCUiIC8+CiAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMzMzMiIG9mZnNldD0iNzAlIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICA8L2RlZnM+CiAgPHJlY3Qgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIGZpbGw9IiMzMzMiIC8+CiAgPHJlY3QgaWQ9InIiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBmaWxsPSJ1cmwoI2cpIiAvPgogIDxhbmltYXRlIHhsaW5rOmhyZWY9IiNyIiBhdHRyaWJ1dGVOYW1lPSJ4IiBmcm9tPSItMjAwIiB0bz0iMjAwIiBkdXI9IjFzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgIC8+Cjwvc3ZnPg==")`
  121 |     )
  122 |   })

  at Object.toBe (integration/next-image-new/app-dir/test/static.test.ts:119:19)

● Static Image Component Tests › development mode › should add a blur placeholder a statically imported jpg

expect(received).toContain(expected) // indexOf

Matcher error: received value must not be null nor undefined

Received has value: undefined

  126 |     if (isDev) {
  127 |       if (process.env.TURBOPACK) {
> 128 |         expect(style).toContain(
      |                       ^
  129 |           `color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml`
  130 |         )
  131 |       } else {

  at Object.toContain (integration/next-image-new/app-dir/test/static.test.ts:128:23)

● Static Image Component Tests › development mode › should add a blur placeholder a statically imported png

expect(received).toContain(expected) // indexOf

Matcher error: received value must not be null nor undefined

Received has value: undefined

  151 |     if (isDev) {
  152 |       if (process.env.TURBOPACK) {
> 153 |         expect(style).toContain(
      |                       ^
  154 |           `color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml`
  155 |         )
  156 |       } else {

  at Object.toContain (integration/next-image-new/app-dir/test/static.test.ts:153:23)

● Static Image Component Tests › development mode › should add a blur placeholder a statically imported png with fill

expect(received).toContain(expected) // indexOf

Matcher error: received value must not be null nor undefined

Received has value: undefined

  176 |     if (isDev) {
  177 |       if (process.env.TURBOPACK) {
> 178 |         expect(style).toContain(
      |                       ^
  179 |           `position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml`
  180 |         )
  181 |       } else {

  at Object.toContain (integration/next-image-new/app-dir/test/static.test.ts:178:23)

● Static Image Component Tests › development mode › should add placeholder with blurDataURL and fill

expect(received).toBe(expected) // Object.is equality

Expected: "position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' %3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNM/s/wBwAFjwJgf8HDLgAAAABJRU5ErkJggg=='/%3E%3C/svg%3E\")"
Received: undefined

  199 |   it('should add placeholder with blurDataURL and fill', async () => {
  200 |     const style = $('#blurdataurl-fill').attr('style')
> 201 |     expect(style).toBe(
      |                   ^
  202 |       `position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' %3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNM/s/wBwAFjwJgf8HDLgAAAABJRU5ErkJggg=='/%3E%3C/svg%3E")`
  203 |     )
  204 |   })

  at Object.toBe (integration/next-image-new/app-dir/test/static.test.ts:201:19)

● Static Image Component Tests › development mode › should add placeholder even when blurDataURL aspect ratio does not match width/height ratio

expect(received).toBe(expected) // Object.is equality

Expected: "color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 200'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNM/s/wBwAFjwJgf8HDLgAAAABJRU5ErkJggg=='/%3E%3C/svg%3E\")"
Received: undefined

  206 |   it('should add placeholder even when blurDataURL aspect ratio does not match width/height ratio', async () => {
  207 |     const style = $('#blurdataurl-ratio').attr('style')
> 208 |     expect(style).toBe(
      |                   ^
  209 |       `color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 200'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNM/s/wBwAFjwJgf8HDLgAAAABJRU5ErkJggg=='/%3E%3C/svg%3E")`
  210 |     )
  211 |   })

  at Object.toBe (integration/next-image-new/app-dir/test/static.test.ts:208:19)

● Static Image Component Tests › development mode › should load direct imported image

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  211 |   })
  212 |
> 213 |   it('should load direct imported image', async () => {
      |   ^
  214 |     const src = await browser.elementById('basic-static').getAttribute('src')
  215 |     expect(src).toMatch(
  216 |       /_next\/image\?url=%2F_next%2Fstatic%2Fmedia%2Ftest-rect(.+)\.jpg&w=828&q=75/

  at it (integration/next-image-new/app-dir/test/static.test.ts:213:3)
  at runTests (integration/next-image-new/app-dir/test/static.test.ts:279:7)
  at integration/next-image-new/app-dir/test/static.test.ts:266:58
  at Object.describe (integration/next-image-new/app-dir/test/static.test.ts:248:1)

Read more about building and testing Next.js in contributing.md.

@eps1lon eps1lon closed this Apr 24, 2024
@eps1lon eps1lon deleted the sebbie/react-19-sync branch April 24, 2024 19:57
@eps1lon eps1lon restored the sebbie/react-19-sync branch April 25, 2024 18:22
@eps1lon eps1lon changed the title Ensure experimental versions don't use Canary release channel Update React from c3048aab4 to cb151849e1 Apr 25, 2024
@eps1lon
Copy link
Member Author

eps1lon commented Apr 25, 2024

Continued in #65058

@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 11, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants