prime-dev-cli 1.0.7 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (513) hide show
  1. package/config/projects.json +34 -1
  2. package/dist/server/.next/BUILD_ID +1 -1
  3. package/dist/server/.next/app-build-manifest.json +34 -180
  4. package/dist/server/.next/app-path-routes-manifest.json +13 -12
  5. package/dist/server/.next/build/chunks/[root-of-the-server]__5583c180._.js +491 -0
  6. package/dist/server/.next/build/chunks/[root-of-the-server]__5583c180._.js.map +11 -0
  7. package/dist/server/.next/build/chunks/[root-of-the-server]__f95a3f97._.js +173 -0
  8. package/dist/server/.next/build/chunks/[root-of-the-server]__f95a3f97._.js.map +7 -0
  9. package/dist/server/.next/build/chunks/[turbopack]_runtime.js +688 -0
  10. package/dist/server/.next/build/chunks/[turbopack]_runtime.js.map +10 -0
  11. package/dist/server/.next/build/chunks/node_modules__pnpm_ec38a98b._.js +6748 -0
  12. package/dist/server/.next/build/chunks/node_modules__pnpm_ec38a98b._.js.map +47 -0
  13. package/dist/server/.next/build/chunks/packages_server_postcss_config_mjs_transform_ts_18d17415._.js +17 -0
  14. package/dist/server/.next/build/chunks/packages_server_postcss_config_mjs_transform_ts_18d17415._.js.map +5 -0
  15. package/dist/server/.next/build-manifest.json +22 -24
  16. package/dist/server/.next/cache/.rscinfo +1 -1
  17. package/dist/server/.next/cache/.tsbuildinfo +1 -1
  18. package/dist/server/.next/cache/eslint/.cache_1qa5vxt +1 -1
  19. package/dist/server/.next/cache/webpack/client-production/0.pack +0 -0
  20. package/dist/server/.next/cache/webpack/client-production/1.pack +0 -0
  21. package/dist/server/.next/cache/webpack/client-production/2.pack +0 -0
  22. package/dist/server/.next/cache/webpack/client-production/index.pack +0 -0
  23. package/dist/server/.next/cache/webpack/client-production/index.pack.old +0 -0
  24. package/dist/server/.next/cache/webpack/edge-server-production/index.pack +0 -0
  25. package/dist/server/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
  26. package/dist/server/.next/cache/webpack/server-production/0.pack +0 -0
  27. package/dist/server/.next/cache/webpack/server-production/1.pack +0 -0
  28. package/dist/server/.next/cache/webpack/server-production/index.pack +0 -0
  29. package/dist/server/.next/cache/webpack/server-production/index.pack.old +0 -0
  30. package/dist/server/.next/fallback-build-manifest.json +23 -0
  31. package/dist/server/.next/next-minimal-server.js.nft.json +1 -1
  32. package/dist/server/.next/next-server.js.nft.json +1 -1
  33. package/dist/server/.next/prerender-manifest.json +3 -3
  34. package/dist/server/.next/required-server-files.json +0 -2
  35. package/dist/server/.next/server/app/_not-found/page/app-build-manifest.json +13 -0
  36. package/dist/server/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  37. package/dist/server/.next/server/app/_not-found/page/build-manifest.json +17 -0
  38. package/dist/server/.next/server/app/_not-found/page/next-font-manifest.json +6 -0
  39. package/dist/server/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  40. package/dist/server/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
  41. package/dist/server/.next/server/app/_not-found/page.js +13 -1
  42. package/dist/server/.next/server/app/_not-found/page.js.map +5 -0
  43. package/dist/server/.next/server/app/_not-found/page.js.nft.json +1 -1
  44. package/dist/server/.next/server/app/_not-found/page_client-reference-manifest.js +2 -1
  45. package/dist/server/.next/server/app/_not-found.html +1 -1
  46. package/dist/server/.next/server/app/_not-found.rsc +11 -11
  47. package/dist/server/.next/server/app/api/all-projects-envs/route/app-build-manifest.json +11 -0
  48. package/dist/server/.next/server/app/api/all-projects-envs/route/app-paths-manifest.json +3 -0
  49. package/dist/server/.next/server/app/api/all-projects-envs/route/build-manifest.json +17 -0
  50. package/dist/server/.next/server/app/api/all-projects-envs/route/next-font-manifest.json +6 -0
  51. package/dist/server/.next/server/app/api/all-projects-envs/route/react-loadable-manifest.json +1 -0
  52. package/dist/server/.next/server/app/api/all-projects-envs/route/server-reference-manifest.json +4 -0
  53. package/dist/server/.next/server/app/api/all-projects-envs/route.js +8 -1
  54. package/dist/server/.next/server/app/api/all-projects-envs/route.js.map +5 -0
  55. package/dist/server/.next/server/app/api/all-projects-envs/route.js.nft.json +1 -1
  56. package/dist/server/.next/server/app/api/all-projects-envs/route_client-reference-manifest.js +2 -1
  57. package/dist/server/.next/server/app/api/check-mock-intercept/route/app-build-manifest.json +11 -0
  58. package/dist/server/.next/server/app/api/check-mock-intercept/route/app-paths-manifest.json +3 -0
  59. package/dist/server/.next/server/app/api/check-mock-intercept/route/build-manifest.json +17 -0
  60. package/dist/server/.next/server/app/api/check-mock-intercept/route/next-font-manifest.json +6 -0
  61. package/dist/server/.next/server/app/api/check-mock-intercept/route/react-loadable-manifest.json +1 -0
  62. package/dist/server/.next/server/app/api/check-mock-intercept/route/server-reference-manifest.json +4 -0
  63. package/dist/server/.next/server/app/api/check-mock-intercept/route.js +8 -1
  64. package/dist/server/.next/server/app/api/check-mock-intercept/route.js.map +5 -0
  65. package/dist/server/.next/server/app/api/check-mock-intercept/route.js.nft.json +1 -1
  66. package/dist/server/.next/server/app/api/check-mock-intercept/route_client-reference-manifest.js +2 -1
  67. package/dist/server/.next/server/app/api/check-workspace/route/app-build-manifest.json +11 -0
  68. package/dist/server/.next/server/app/api/check-workspace/route/app-paths-manifest.json +3 -0
  69. package/dist/server/.next/server/app/api/check-workspace/route/build-manifest.json +17 -0
  70. package/dist/server/.next/server/app/api/check-workspace/route/next-font-manifest.json +6 -0
  71. package/dist/server/.next/server/app/api/check-workspace/route/react-loadable-manifest.json +1 -0
  72. package/dist/server/.next/server/app/api/check-workspace/route/server-reference-manifest.json +4 -0
  73. package/dist/server/.next/server/app/api/check-workspace/route.js +7 -14
  74. package/dist/server/.next/server/app/api/check-workspace/route.js.map +5 -0
  75. package/dist/server/.next/server/app/api/check-workspace/route.js.nft.json +1 -1
  76. package/dist/server/.next/server/app/api/check-workspace/route_client-reference-manifest.js +2 -1
  77. package/dist/server/.next/server/app/api/cleanup-mock/route/app-build-manifest.json +11 -0
  78. package/dist/server/.next/server/app/api/cleanup-mock/route/app-paths-manifest.json +3 -0
  79. package/dist/server/.next/server/app/api/cleanup-mock/route/build-manifest.json +17 -0
  80. package/dist/server/.next/server/app/api/cleanup-mock/route/next-font-manifest.json +6 -0
  81. package/dist/server/.next/server/app/api/cleanup-mock/route/react-loadable-manifest.json +1 -0
  82. package/dist/server/.next/server/app/api/cleanup-mock/route/server-reference-manifest.json +4 -0
  83. package/dist/server/.next/server/app/api/cleanup-mock/route.js +8 -6
  84. package/dist/server/.next/server/app/api/cleanup-mock/route.js.map +5 -0
  85. package/dist/server/.next/server/app/api/cleanup-mock/route.js.nft.json +1 -1
  86. package/dist/server/.next/server/app/api/cleanup-mock/route_client-reference-manifest.js +2 -1
  87. package/dist/server/.next/server/app/api/cleanup-project/route/app-build-manifest.json +11 -0
  88. package/dist/server/.next/server/app/api/cleanup-project/route/app-paths-manifest.json +3 -0
  89. package/dist/server/.next/server/app/api/cleanup-project/route/build-manifest.json +17 -0
  90. package/dist/server/.next/server/app/api/cleanup-project/route/next-font-manifest.json +6 -0
  91. package/dist/server/.next/server/app/api/cleanup-project/route/react-loadable-manifest.json +1 -0
  92. package/dist/server/.next/server/app/api/cleanup-project/route/server-reference-manifest.json +4 -0
  93. package/dist/server/.next/server/app/api/cleanup-project/route.js +8 -1
  94. package/dist/server/.next/server/app/api/cleanup-project/route.js.map +5 -0
  95. package/dist/server/.next/server/app/api/cleanup-project/route.js.nft.json +1 -1
  96. package/dist/server/.next/server/app/api/cleanup-project/route_client-reference-manifest.js +2 -1
  97. package/dist/server/.next/server/app/api/delete-mock-api/route/app-build-manifest.json +11 -0
  98. package/dist/server/.next/server/app/api/delete-mock-api/route/app-paths-manifest.json +3 -0
  99. package/dist/server/.next/server/app/api/delete-mock-api/route/build-manifest.json +17 -0
  100. package/dist/server/.next/server/app/api/delete-mock-api/route/next-font-manifest.json +6 -0
  101. package/dist/server/.next/server/app/api/delete-mock-api/route/react-loadable-manifest.json +1 -0
  102. package/dist/server/.next/server/app/api/delete-mock-api/route/server-reference-manifest.json +4 -0
  103. package/dist/server/.next/server/app/api/delete-mock-api/route.js +8 -0
  104. package/dist/server/.next/server/app/api/delete-mock-api/route.js.map +5 -0
  105. package/dist/server/.next/server/app/api/delete-mock-api/route.js.nft.json +1 -0
  106. package/dist/server/.next/server/app/api/delete-mock-api/route_client-reference-manifest.js +2 -0
  107. package/dist/server/.next/server/app/api/get-mock-data/route/app-build-manifest.json +11 -0
  108. package/dist/server/.next/server/app/api/get-mock-data/route/app-paths-manifest.json +3 -0
  109. package/dist/server/.next/server/app/api/get-mock-data/route/build-manifest.json +17 -0
  110. package/dist/server/.next/server/app/api/get-mock-data/route/next-font-manifest.json +6 -0
  111. package/dist/server/.next/server/app/api/get-mock-data/route/react-loadable-manifest.json +1 -0
  112. package/dist/server/.next/server/app/api/get-mock-data/route/server-reference-manifest.json +4 -0
  113. package/dist/server/.next/server/app/api/get-mock-data/route.js +8 -1
  114. package/dist/server/.next/server/app/api/get-mock-data/route.js.map +5 -0
  115. package/dist/server/.next/server/app/api/get-mock-data/route.js.nft.json +1 -1
  116. package/dist/server/.next/server/app/api/get-mock-data/route_client-reference-manifest.js +2 -1
  117. package/dist/server/.next/server/app/api/initialize-workspace/route/app-build-manifest.json +11 -0
  118. package/dist/server/.next/server/app/api/initialize-workspace/route/app-paths-manifest.json +3 -0
  119. package/dist/server/.next/server/app/api/initialize-workspace/route/build-manifest.json +17 -0
  120. package/dist/server/.next/server/app/api/initialize-workspace/route/next-font-manifest.json +6 -0
  121. package/dist/server/.next/server/app/api/initialize-workspace/route/react-loadable-manifest.json +1 -0
  122. package/dist/server/.next/server/app/api/initialize-workspace/route/server-reference-manifest.json +4 -0
  123. package/dist/server/.next/server/app/api/initialize-workspace/route.js +7 -18
  124. package/dist/server/.next/server/app/api/initialize-workspace/route.js.map +5 -0
  125. package/dist/server/.next/server/app/api/initialize-workspace/route.js.nft.json +1 -1
  126. package/dist/server/.next/server/app/api/initialize-workspace/route_client-reference-manifest.js +2 -1
  127. package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route/app-build-manifest.json +11 -0
  128. package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route/app-paths-manifest.json +3 -0
  129. package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route/build-manifest.json +17 -0
  130. package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route/next-font-manifest.json +6 -0
  131. package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route/react-loadable-manifest.json +1 -0
  132. package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route/server-reference-manifest.json +4 -0
  133. package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route.js +8 -5
  134. package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route.js.map +5 -0
  135. package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route.js.nft.json +1 -1
  136. package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route_client-reference-manifest.js +2 -1
  137. package/dist/server/.next/server/app/api/microapp-proxy-config/route/app-build-manifest.json +11 -0
  138. package/dist/server/.next/server/app/api/microapp-proxy-config/route/app-paths-manifest.json +3 -0
  139. package/dist/server/.next/server/app/api/microapp-proxy-config/route/build-manifest.json +17 -0
  140. package/dist/server/.next/server/app/api/microapp-proxy-config/route/next-font-manifest.json +6 -0
  141. package/dist/server/.next/server/app/api/microapp-proxy-config/route/react-loadable-manifest.json +1 -0
  142. package/dist/server/.next/server/app/api/microapp-proxy-config/route/server-reference-manifest.json +4 -0
  143. package/dist/server/.next/server/app/api/microapp-proxy-config/route.js +8 -3
  144. package/dist/server/.next/server/app/api/microapp-proxy-config/route.js.map +5 -0
  145. package/dist/server/.next/server/app/api/microapp-proxy-config/route.js.nft.json +1 -1
  146. package/dist/server/.next/server/app/api/microapp-proxy-config/route_client-reference-manifest.js +2 -1
  147. package/dist/server/.next/server/app/api/mock-file/route/app-build-manifest.json +11 -0
  148. package/dist/server/.next/server/app/api/mock-file/route/app-paths-manifest.json +3 -0
  149. package/dist/server/.next/server/app/api/mock-file/route/build-manifest.json +17 -0
  150. package/dist/server/.next/server/app/api/mock-file/route/next-font-manifest.json +6 -0
  151. package/dist/server/.next/server/app/api/mock-file/route/react-loadable-manifest.json +1 -0
  152. package/dist/server/.next/server/app/api/mock-file/route/server-reference-manifest.json +4 -0
  153. package/dist/server/.next/server/app/api/mock-file/route.js +8 -6
  154. package/dist/server/.next/server/app/api/mock-file/route.js.map +5 -0
  155. package/dist/server/.next/server/app/api/mock-file/route.js.nft.json +1 -1
  156. package/dist/server/.next/server/app/api/mock-file/route_client-reference-manifest.js +2 -1
  157. package/dist/server/.next/server/app/api/mock-file-content/route/app-build-manifest.json +11 -0
  158. package/dist/server/.next/server/app/api/mock-file-content/route/app-paths-manifest.json +3 -0
  159. package/dist/server/.next/server/app/api/mock-file-content/route/build-manifest.json +17 -0
  160. package/dist/server/.next/server/app/api/mock-file-content/route/next-font-manifest.json +6 -0
  161. package/dist/server/.next/server/app/api/mock-file-content/route/react-loadable-manifest.json +1 -0
  162. package/dist/server/.next/server/app/api/mock-file-content/route/server-reference-manifest.json +4 -0
  163. package/dist/server/.next/server/app/api/mock-file-content/route.js +8 -1
  164. package/dist/server/.next/server/app/api/mock-file-content/route.js.map +5 -0
  165. package/dist/server/.next/server/app/api/mock-file-content/route.js.nft.json +1 -1
  166. package/dist/server/.next/server/app/api/mock-file-content/route_client-reference-manifest.js +2 -1
  167. package/dist/server/.next/server/app/api/mock-open-status/route/app-build-manifest.json +11 -0
  168. package/dist/server/.next/server/app/api/mock-open-status/route/app-paths-manifest.json +3 -0
  169. package/dist/server/.next/server/app/api/mock-open-status/route/build-manifest.json +17 -0
  170. package/dist/server/.next/server/app/api/mock-open-status/route/next-font-manifest.json +6 -0
  171. package/dist/server/.next/server/app/api/mock-open-status/route/react-loadable-manifest.json +1 -0
  172. package/dist/server/.next/server/app/api/mock-open-status/route/server-reference-manifest.json +4 -0
  173. package/dist/server/.next/server/app/api/mock-open-status/route.js +8 -6
  174. package/dist/server/.next/server/app/api/mock-open-status/route.js.map +5 -0
  175. package/dist/server/.next/server/app/api/mock-open-status/route.js.nft.json +1 -1
  176. package/dist/server/.next/server/app/api/mock-open-status/route_client-reference-manifest.js +2 -1
  177. package/dist/server/.next/server/app/api/mock-setting/route/app-build-manifest.json +11 -0
  178. package/dist/server/.next/server/app/api/mock-setting/route/app-paths-manifest.json +3 -0
  179. package/dist/server/.next/server/app/api/mock-setting/route/build-manifest.json +17 -0
  180. package/dist/server/.next/server/app/api/mock-setting/route/next-font-manifest.json +6 -0
  181. package/dist/server/.next/server/app/api/mock-setting/route/react-loadable-manifest.json +1 -0
  182. package/dist/server/.next/server/app/api/mock-setting/route/server-reference-manifest.json +4 -0
  183. package/dist/server/.next/server/app/api/mock-setting/route.js +8 -1
  184. package/dist/server/.next/server/app/api/mock-setting/route.js.map +5 -0
  185. package/dist/server/.next/server/app/api/mock-setting/route.js.nft.json +1 -1
  186. package/dist/server/.next/server/app/api/mock-setting/route_client-reference-manifest.js +2 -1
  187. package/dist/server/.next/server/app/api/open-all-mock/route/app-build-manifest.json +11 -0
  188. package/dist/server/.next/server/app/api/open-all-mock/route/app-paths-manifest.json +3 -0
  189. package/dist/server/.next/server/app/api/open-all-mock/route/build-manifest.json +17 -0
  190. package/dist/server/.next/server/app/api/open-all-mock/route/next-font-manifest.json +6 -0
  191. package/dist/server/.next/server/app/api/open-all-mock/route/react-loadable-manifest.json +1 -0
  192. package/dist/server/.next/server/app/api/open-all-mock/route/server-reference-manifest.json +4 -0
  193. package/dist/server/.next/server/app/api/open-all-mock/route.js +8 -11
  194. package/dist/server/.next/server/app/api/open-all-mock/route.js.map +5 -0
  195. package/dist/server/.next/server/app/api/open-all-mock/route.js.nft.json +1 -1
  196. package/dist/server/.next/server/app/api/open-all-mock/route_client-reference-manifest.js +2 -1
  197. package/dist/server/.next/server/app/api/open-project/route/app-build-manifest.json +11 -0
  198. package/dist/server/.next/server/app/api/open-project/route/app-paths-manifest.json +3 -0
  199. package/dist/server/.next/server/app/api/open-project/route/build-manifest.json +17 -0
  200. package/dist/server/.next/server/app/api/open-project/route/next-font-manifest.json +6 -0
  201. package/dist/server/.next/server/app/api/open-project/route/react-loadable-manifest.json +1 -0
  202. package/dist/server/.next/server/app/api/open-project/route/server-reference-manifest.json +4 -0
  203. package/dist/server/.next/server/app/api/open-project/route.js +7 -14
  204. package/dist/server/.next/server/app/api/open-project/route.js.map +5 -0
  205. package/dist/server/.next/server/app/api/open-project/route.js.nft.json +1 -1
  206. package/dist/server/.next/server/app/api/open-project/route_client-reference-manifest.js +2 -1
  207. package/dist/server/.next/server/app/api/process/logs/route/app-build-manifest.json +11 -0
  208. package/dist/server/.next/server/app/api/process/logs/route/app-paths-manifest.json +3 -0
  209. package/dist/server/.next/server/app/api/process/logs/route/build-manifest.json +17 -0
  210. package/dist/server/.next/server/app/api/process/logs/route/next-font-manifest.json +6 -0
  211. package/dist/server/.next/server/app/api/process/logs/route/react-loadable-manifest.json +1 -0
  212. package/dist/server/.next/server/app/api/process/logs/route/server-reference-manifest.json +4 -0
  213. package/dist/server/.next/server/app/api/process/logs/route.js +8 -1
  214. package/dist/server/.next/server/app/api/process/logs/route.js.map +5 -0
  215. package/dist/server/.next/server/app/api/process/logs/route.js.nft.json +1 -1
  216. package/dist/server/.next/server/app/api/process/logs/route_client-reference-manifest.js +2 -1
  217. package/dist/server/.next/server/app/api/process/logs/stream/route/app-build-manifest.json +11 -0
  218. package/dist/server/.next/server/app/api/process/logs/stream/route/app-paths-manifest.json +3 -0
  219. package/dist/server/.next/server/app/api/process/logs/stream/route/build-manifest.json +17 -0
  220. package/dist/server/.next/server/app/api/process/logs/stream/route/next-font-manifest.json +6 -0
  221. package/dist/server/.next/server/app/api/process/logs/stream/route/react-loadable-manifest.json +1 -0
  222. package/dist/server/.next/server/app/api/process/logs/stream/route/server-reference-manifest.json +4 -0
  223. package/dist/server/.next/server/app/api/process/logs/stream/route.js +7 -9
  224. package/dist/server/.next/server/app/api/process/logs/stream/route.js.map +5 -0
  225. package/dist/server/.next/server/app/api/process/logs/stream/route.js.nft.json +1 -1
  226. package/dist/server/.next/server/app/api/process/logs/stream/route_client-reference-manifest.js +2 -1
  227. package/dist/server/.next/server/app/api/process/start/route/app-build-manifest.json +11 -0
  228. package/dist/server/.next/server/app/api/process/start/route/app-paths-manifest.json +3 -0
  229. package/dist/server/.next/server/app/api/process/start/route/build-manifest.json +17 -0
  230. package/dist/server/.next/server/app/api/process/start/route/next-font-manifest.json +6 -0
  231. package/dist/server/.next/server/app/api/process/start/route/react-loadable-manifest.json +1 -0
  232. package/dist/server/.next/server/app/api/process/start/route/server-reference-manifest.json +4 -0
  233. package/dist/server/.next/server/app/api/process/start/route.js +8 -1
  234. package/dist/server/.next/server/app/api/process/start/route.js.map +5 -0
  235. package/dist/server/.next/server/app/api/process/start/route.js.nft.json +1 -1
  236. package/dist/server/.next/server/app/api/process/start/route_client-reference-manifest.js +2 -1
  237. package/dist/server/.next/server/app/api/process/status/route/app-build-manifest.json +11 -0
  238. package/dist/server/.next/server/app/api/process/status/route/app-paths-manifest.json +3 -0
  239. package/dist/server/.next/server/app/api/process/status/route/build-manifest.json +17 -0
  240. package/dist/server/.next/server/app/api/process/status/route/next-font-manifest.json +6 -0
  241. package/dist/server/.next/server/app/api/process/status/route/react-loadable-manifest.json +1 -0
  242. package/dist/server/.next/server/app/api/process/status/route/server-reference-manifest.json +4 -0
  243. package/dist/server/.next/server/app/api/process/status/route.js +8 -1
  244. package/dist/server/.next/server/app/api/process/status/route.js.map +5 -0
  245. package/dist/server/.next/server/app/api/process/status/route.js.nft.json +1 -1
  246. package/dist/server/.next/server/app/api/process/status/route_client-reference-manifest.js +2 -1
  247. package/dist/server/.next/server/app/api/project-config/route/app-build-manifest.json +11 -0
  248. package/dist/server/.next/server/app/api/project-config/route/app-paths-manifest.json +3 -0
  249. package/dist/server/.next/server/app/api/project-config/route/build-manifest.json +17 -0
  250. package/dist/server/.next/server/app/api/project-config/route/next-font-manifest.json +6 -0
  251. package/dist/server/.next/server/app/api/project-config/route/react-loadable-manifest.json +1 -0
  252. package/dist/server/.next/server/app/api/project-config/route/server-reference-manifest.json +4 -0
  253. package/dist/server/.next/server/app/api/project-config/route.js +8 -1
  254. package/dist/server/.next/server/app/api/project-config/route.js.map +5 -0
  255. package/dist/server/.next/server/app/api/project-config/route.js.nft.json +1 -1
  256. package/dist/server/.next/server/app/api/project-config/route_client-reference-manifest.js +2 -1
  257. package/dist/server/.next/server/app/api/retry-project/route/app-build-manifest.json +11 -0
  258. package/dist/server/.next/server/app/api/retry-project/route/app-paths-manifest.json +3 -0
  259. package/dist/server/.next/server/app/api/retry-project/route/build-manifest.json +17 -0
  260. package/dist/server/.next/server/app/api/retry-project/route/next-font-manifest.json +6 -0
  261. package/dist/server/.next/server/app/api/retry-project/route/react-loadable-manifest.json +1 -0
  262. package/dist/server/.next/server/app/api/retry-project/route/server-reference-manifest.json +4 -0
  263. package/dist/server/.next/server/app/api/retry-project/route.js +7 -14
  264. package/dist/server/.next/server/app/api/retry-project/route.js.map +5 -0
  265. package/dist/server/.next/server/app/api/retry-project/route.js.nft.json +1 -1
  266. package/dist/server/.next/server/app/api/retry-project/route_client-reference-manifest.js +2 -1
  267. package/dist/server/.next/server/app/configuration/page/app-build-manifest.json +15 -0
  268. package/dist/server/.next/server/app/configuration/page/app-paths-manifest.json +3 -0
  269. package/dist/server/.next/server/app/configuration/page/build-manifest.json +17 -0
  270. package/dist/server/.next/server/app/configuration/page/next-font-manifest.json +6 -0
  271. package/dist/server/.next/server/app/configuration/page/react-loadable-manifest.json +1 -0
  272. package/dist/server/.next/server/app/configuration/page/server-reference-manifest.json +4 -0
  273. package/dist/server/.next/server/app/configuration/page.js +14 -37
  274. package/dist/server/.next/server/app/configuration/page.js.map +5 -0
  275. package/dist/server/.next/server/app/configuration/page.js.nft.json +1 -1
  276. package/dist/server/.next/server/app/configuration/page_client-reference-manifest.js +2 -1
  277. package/dist/server/.next/server/app/configuration.html +1 -1
  278. package/dist/server/.next/server/app/configuration.rsc +13 -13
  279. package/dist/server/.next/server/app/favicon.ico/route/app-build-manifest.json +11 -0
  280. package/dist/server/.next/server/app/favicon.ico/route/app-paths-manifest.json +3 -0
  281. package/dist/server/.next/server/app/favicon.ico/route/build-manifest.json +17 -0
  282. package/dist/server/.next/server/app/favicon.ico/route.js +9 -1
  283. package/dist/server/.next/server/app/favicon.ico/route.js.map +5 -0
  284. package/dist/server/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  285. package/dist/server/.next/server/app/index.html +1 -1
  286. package/dist/server/.next/server/app/index.rsc +11 -11
  287. package/dist/server/.next/server/app/initialization/page/app-build-manifest.json +15 -0
  288. package/dist/server/.next/server/app/initialization/page/app-paths-manifest.json +3 -0
  289. package/dist/server/.next/server/app/initialization/page/build-manifest.json +17 -0
  290. package/dist/server/.next/server/app/initialization/page/next-font-manifest.json +6 -0
  291. package/dist/server/.next/server/app/initialization/page/react-loadable-manifest.json +1 -0
  292. package/dist/server/.next/server/app/initialization/page/server-reference-manifest.json +4 -0
  293. package/dist/server/.next/server/app/initialization/page.js +14 -1
  294. package/dist/server/.next/server/app/initialization/page.js.map +5 -0
  295. package/dist/server/.next/server/app/initialization/page.js.nft.json +1 -1
  296. package/dist/server/.next/server/app/initialization/page_client-reference-manifest.js +2 -1
  297. package/dist/server/.next/server/app/initialization.html +1 -1
  298. package/dist/server/.next/server/app/initialization.rsc +12 -12
  299. package/dist/server/.next/server/app/page/app-build-manifest.json +13 -0
  300. package/dist/server/.next/server/app/page/app-paths-manifest.json +3 -0
  301. package/dist/server/.next/server/app/page/build-manifest.json +17 -0
  302. package/dist/server/.next/server/app/page/next-font-manifest.json +6 -0
  303. package/dist/server/.next/server/app/page/react-loadable-manifest.json +1 -0
  304. package/dist/server/.next/server/app/page/server-reference-manifest.json +4 -0
  305. package/dist/server/.next/server/app/page.js +16 -1
  306. package/dist/server/.next/server/app/page.js.map +5 -0
  307. package/dist/server/.next/server/app/page.js.nft.json +1 -1
  308. package/dist/server/.next/server/app/page_client-reference-manifest.js +2 -1
  309. package/dist/server/.next/server/app-paths-manifest.json +13 -12
  310. package/dist/server/.next/server/chunks/9bf22_next_37c78c05._.js +15 -0
  311. package/dist/server/.next/server/chunks/9bf22_next_37c78c05._.js.map +1 -0
  312. package/dist/server/.next/server/chunks/9bf22_next_dist_6f19b364._.js +22 -0
  313. package/dist/server/.next/server/chunks/9bf22_next_dist_6f19b364._.js.map +1 -0
  314. package/dist/server/.next/server/chunks/9bf22_next_dist_7a32bfc3._.js +22 -0
  315. package/dist/server/.next/server/chunks/9bf22_next_dist_7a32bfc3._.js.map +1 -0
  316. package/dist/server/.next/server/chunks/9bf22_next_dist_800492fd._.js +4 -0
  317. package/dist/server/.next/server/chunks/9bf22_next_dist_800492fd._.js.map +1 -0
  318. package/dist/server/.next/server/chunks/[root-of-the-server]__0111ac14._.js +18 -0
  319. package/dist/server/.next/server/chunks/[root-of-the-server]__0111ac14._.js.map +1 -0
  320. package/dist/server/.next/server/chunks/[root-of-the-server]__1efea51d._.js +13 -0
  321. package/dist/server/.next/server/chunks/[root-of-the-server]__1efea51d._.js.map +1 -0
  322. package/dist/server/.next/server/chunks/[root-of-the-server]__21616bf9._.js +3 -0
  323. package/dist/server/.next/server/chunks/[root-of-the-server]__21616bf9._.js.map +1 -0
  324. package/dist/server/.next/server/chunks/[root-of-the-server]__27f3b464._.js +3 -0
  325. package/dist/server/.next/server/chunks/[root-of-the-server]__27f3b464._.js.map +1 -0
  326. package/dist/server/.next/server/chunks/[root-of-the-server]__29969c0b._.js +3 -0
  327. package/dist/server/.next/server/chunks/[root-of-the-server]__29969c0b._.js.map +1 -0
  328. package/dist/server/.next/server/chunks/[root-of-the-server]__3da8edfd._.js +3 -0
  329. package/dist/server/.next/server/chunks/[root-of-the-server]__3da8edfd._.js.map +1 -0
  330. package/dist/server/.next/server/chunks/[root-of-the-server]__525f44e0._.js +7 -0
  331. package/dist/server/.next/server/chunks/[root-of-the-server]__525f44e0._.js.map +1 -0
  332. package/dist/server/.next/server/chunks/[root-of-the-server]__5fde5218._.js +3 -0
  333. package/dist/server/.next/server/chunks/[root-of-the-server]__5fde5218._.js.map +1 -0
  334. package/dist/server/.next/server/chunks/[root-of-the-server]__616d1a09._.js +3 -0
  335. package/dist/server/.next/server/chunks/[root-of-the-server]__616d1a09._.js.map +1 -0
  336. package/dist/server/.next/server/chunks/[root-of-the-server]__63462bcb._.js +16 -0
  337. package/dist/server/.next/server/chunks/[root-of-the-server]__63462bcb._.js.map +1 -0
  338. package/dist/server/.next/server/chunks/[root-of-the-server]__66ca8d3f._.js +11 -0
  339. package/dist/server/.next/server/chunks/[root-of-the-server]__66ca8d3f._.js.map +1 -0
  340. package/dist/server/.next/server/chunks/[root-of-the-server]__7a46f739._.js +16 -0
  341. package/dist/server/.next/server/chunks/[root-of-the-server]__7a46f739._.js.map +1 -0
  342. package/dist/server/.next/server/chunks/[root-of-the-server]__84542811._.js +8 -0
  343. package/dist/server/.next/server/chunks/[root-of-the-server]__84542811._.js.map +1 -0
  344. package/dist/server/.next/server/chunks/[root-of-the-server]__92625851._.js +5 -0
  345. package/dist/server/.next/server/chunks/[root-of-the-server]__92625851._.js.map +1 -0
  346. package/dist/server/.next/server/chunks/[root-of-the-server]__9544d1f9._.js +20 -0
  347. package/dist/server/.next/server/chunks/[root-of-the-server]__9544d1f9._.js.map +1 -0
  348. package/dist/server/.next/server/chunks/[root-of-the-server]__b68e0025._.js +3 -0
  349. package/dist/server/.next/server/chunks/[root-of-the-server]__b68e0025._.js.map +1 -0
  350. package/dist/server/.next/server/chunks/[root-of-the-server]__c43c9880._.js +3 -0
  351. package/dist/server/.next/server/chunks/[root-of-the-server]__c43c9880._.js.map +1 -0
  352. package/dist/server/.next/server/chunks/[root-of-the-server]__c513ec4a._.js +8 -0
  353. package/dist/server/.next/server/chunks/[root-of-the-server]__c513ec4a._.js.map +1 -0
  354. package/dist/server/.next/server/chunks/[root-of-the-server]__dfe36c1a._.js +3 -0
  355. package/dist/server/.next/server/chunks/[root-of-the-server]__dfe36c1a._.js.map +1 -0
  356. package/dist/server/.next/server/chunks/[root-of-the-server]__ec0f2f72._.js +3 -0
  357. package/dist/server/.next/server/chunks/[root-of-the-server]__ec0f2f72._.js.map +1 -0
  358. package/dist/server/.next/server/chunks/[root-of-the-server]__ec631eb4._.js +3 -0
  359. package/dist/server/.next/server/chunks/[root-of-the-server]__ec631eb4._.js.map +1 -0
  360. package/dist/server/.next/server/chunks/[root-of-the-server]__f6d4fb58._.js +16 -0
  361. package/dist/server/.next/server/chunks/[root-of-the-server]__f6d4fb58._.js.map +1 -0
  362. package/dist/server/.next/server/chunks/[root-of-the-server]__fab72f0c._.js +3 -0
  363. package/dist/server/.next/server/chunks/[root-of-the-server]__fab72f0c._.js.map +1 -0
  364. package/dist/server/.next/server/chunks/[turbopack]_runtime.js +688 -0
  365. package/dist/server/.next/server/chunks/[turbopack]_runtime.js.map +10 -0
  366. package/dist/server/.next/server/chunks/_88faf93c._.js +14 -0
  367. package/dist/server/.next/server/chunks/_88faf93c._.js.map +1 -0
  368. package/dist/server/.next/server/chunks/ssr/9bf22_next_dist_05ac4f07._.js +4 -0
  369. package/dist/server/.next/server/chunks/ssr/9bf22_next_dist_05ac4f07._.js.map +1 -0
  370. package/dist/server/.next/server/chunks/ssr/9bf22_next_dist_0c9074c5._.js +22 -0
  371. package/dist/server/.next/server/chunks/ssr/9bf22_next_dist_0c9074c5._.js.map +1 -0
  372. package/dist/server/.next/server/chunks/ssr/9bf22_next_dist_client_components_forbidden-error_bdb9d650.js +3 -0
  373. package/dist/server/.next/server/chunks/ssr/9bf22_next_dist_client_components_forbidden-error_bdb9d650.js.map +1 -0
  374. package/dist/server/.next/server/chunks/ssr/9bf22_next_dist_client_components_unauthorized-error_67370d77.js +3 -0
  375. package/dist/server/.next/server/chunks/ssr/9bf22_next_dist_client_components_unauthorized-error_67370d77.js.map +1 -0
  376. package/dist/server/.next/server/chunks/ssr/9bf22_next_f7d8365b._.js +3 -0
  377. package/dist/server/.next/server/chunks/ssr/9bf22_next_f7d8365b._.js.map +1 -0
  378. package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__065bacdf._.js +8 -0
  379. package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__065bacdf._.js.map +1 -0
  380. package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__63c188bd._.js +3 -0
  381. package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__63c188bd._.js.map +1 -0
  382. package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__6d393273._.js +3 -0
  383. package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__6d393273._.js.map +1 -0
  384. package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__789bc4bd._.js +3 -0
  385. package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__789bc4bd._.js.map +1 -0
  386. package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__b0aa0fa4._.js +6 -0
  387. package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__b0aa0fa4._.js.map +1 -0
  388. package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__b3e3ec35._.js +3 -0
  389. package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__b3e3ec35._.js.map +1 -0
  390. package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__c53d10ac._.js +3 -0
  391. package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__c53d10ac._.js.map +1 -0
  392. package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__f617a52d._.js +3 -0
  393. package/dist/server/.next/server/chunks/ssr/[root-of-the-server]__f617a52d._.js.map +1 -0
  394. package/dist/server/.next/server/chunks/ssr/[turbopack]_runtime.js +688 -0
  395. package/dist/server/.next/server/chunks/ssr/[turbopack]_runtime.js.map +10 -0
  396. package/dist/server/.next/server/chunks/ssr/_2488faea._.js +61 -0
  397. package/dist/server/.next/server/chunks/ssr/_2488faea._.js.map +1 -0
  398. package/dist/server/.next/server/chunks/ssr/_89496b8a._.js +3 -0
  399. package/dist/server/.next/server/chunks/ssr/_89496b8a._.js.map +1 -0
  400. package/dist/server/.next/server/chunks/ssr/_b0947ff2._.js +3 -0
  401. package/dist/server/.next/server/chunks/ssr/_b0947ff2._.js.map +1 -0
  402. package/dist/server/.next/server/chunks/ssr/_c38b6dab._.js +3 -0
  403. package/dist/server/.next/server/chunks/ssr/_c38b6dab._.js.map +1 -0
  404. package/dist/server/.next/server/chunks/ssr/_c9f0c772._.js +3 -0
  405. package/dist/server/.next/server/chunks/ssr/_c9f0c772._.js.map +1 -0
  406. package/dist/server/.next/server/chunks/ssr/_e037a20f._.js +4 -0
  407. package/dist/server/.next/server/chunks/ssr/_e037a20f._.js.map +1 -0
  408. package/dist/server/.next/server/chunks/ssr/_fbed5872._.js +3 -0
  409. package/dist/server/.next/server/chunks/ssr/_fbed5872._.js.map +1 -0
  410. package/dist/server/.next/server/chunks/ssr/node_modules__pnpm_50840a33._.js +3 -0
  411. package/dist/server/.next/server/chunks/ssr/node_modules__pnpm_50840a33._.js.map +1 -0
  412. package/dist/server/.next/server/chunks/ssr/node_modules__pnpm_bde53e93._.js +3 -0
  413. package/dist/server/.next/server/chunks/ssr/node_modules__pnpm_bde53e93._.js.map +1 -0
  414. package/dist/server/.next/server/chunks/ssr/node_modules__pnpm_da0d20e8._.js +4 -0
  415. package/dist/server/.next/server/chunks/ssr/node_modules__pnpm_da0d20e8._.js.map +1 -0
  416. package/dist/server/.next/server/chunks/ssr/packages_server_src_7cef6dbd._.js +3 -0
  417. package/dist/server/.next/server/chunks/ssr/packages_server_src_7cef6dbd._.js.map +1 -0
  418. package/dist/server/.next/server/chunks/ssr/packages_server_src_app_eb845476._.js +3 -0
  419. package/dist/server/.next/server/chunks/ssr/packages_server_src_app_eb845476._.js.map +1 -0
  420. package/dist/server/.next/server/chunks/ssr/packages_server_src_app_layout_tsx_0712e1b4._.js +3 -0
  421. package/dist/server/.next/server/chunks/ssr/packages_server_src_app_layout_tsx_0712e1b4._.js.map +1 -0
  422. package/dist/server/.next/server/middleware-build-manifest.js +33 -1
  423. package/dist/server/.next/server/middleware-manifest.json +2 -2
  424. package/dist/server/.next/server/next-font-manifest.js +1 -1
  425. package/dist/server/.next/server/next-font-manifest.json +6 -1
  426. package/dist/server/.next/server/pages/404.html +1 -1
  427. package/dist/server/.next/server/pages/500.html +1 -1
  428. package/dist/server/.next/server/pages/_app/build-manifest.json +15 -0
  429. package/dist/server/.next/server/pages/_app/next-font-manifest.json +6 -0
  430. package/dist/server/.next/server/pages/_app/pages-manifest.json +3 -0
  431. package/dist/server/.next/server/pages/_app/react-loadable-manifest.json +1 -0
  432. package/dist/server/.next/server/pages/_app.js +5 -1
  433. package/dist/server/.next/server/pages/_app.js.map +5 -0
  434. package/dist/server/.next/server/pages/_app.js.nft.json +1 -1
  435. package/dist/server/.next/server/pages/_document/next-font-manifest.json +6 -0
  436. package/dist/server/.next/server/pages/_document/pages-manifest.json +3 -0
  437. package/dist/server/.next/server/pages/_document/react-loadable-manifest.json +1 -0
  438. package/dist/server/.next/server/pages/_document.js +6 -1
  439. package/dist/server/.next/server/pages/_document.js.map +5 -0
  440. package/dist/server/.next/server/pages/_document.js.nft.json +1 -1
  441. package/dist/server/.next/server/pages/_error/build-manifest.json +15 -0
  442. package/dist/server/.next/server/pages/_error/next-font-manifest.json +6 -0
  443. package/dist/server/.next/server/pages/_error/pages-manifest.json +3 -0
  444. package/dist/server/.next/server/pages/_error/react-loadable-manifest.json +1 -0
  445. package/dist/server/.next/server/pages/_error.js +8 -1
  446. package/dist/server/.next/server/pages/_error.js.map +5 -0
  447. package/dist/server/.next/server/pages/_error.js.nft.json +1 -1
  448. package/dist/server/.next/server/pages-manifest.json +1 -1
  449. package/dist/server/.next/server/server-reference-manifest.js +1 -1
  450. package/dist/server/.next/server/server-reference-manifest.json +5 -1
  451. package/dist/server/.next/static/0L93NbbowsMpjl-fJPWIj/_buildManifest.js +1 -0
  452. package/dist/server/.next/static/0L93NbbowsMpjl-fJPWIj/_ssgManifest.js +1 -0
  453. package/dist/server/.next/static/CcPdKvbUmZBYZz_Z0RQOI/_buildManifest.js +1 -0
  454. package/dist/server/.next/static/CcPdKvbUmZBYZz_Z0RQOI/_clientMiddlewareManifest.json +1 -0
  455. package/dist/server/.next/static/CcPdKvbUmZBYZz_Z0RQOI/_ssgManifest.js +1 -0
  456. package/dist/server/.next/static/G7Z-m_yayOJWJic2pMxim/_buildManifest.js +1 -0
  457. package/dist/server/.next/static/G7Z-m_yayOJWJic2pMxim/_clientMiddlewareManifest.json +1 -0
  458. package/dist/server/.next/static/G7Z-m_yayOJWJic2pMxim/_ssgManifest.js +1 -0
  459. package/dist/server/.next/static/Vj8TOfdXSkRSgi8JoSCLF/_buildManifest.js +1 -0
  460. package/dist/server/.next/static/Vj8TOfdXSkRSgi8JoSCLF/_ssgManifest.js +1 -0
  461. package/dist/server/.next/static/chunks/09f18d884b3a25a2.js.map +1 -0
  462. package/dist/server/.next/static/chunks/0dfafa95d29e5c79.js +3 -0
  463. package/dist/server/.next/static/chunks/0e57f1354cda05d5.js +3 -0
  464. package/dist/server/.next/static/chunks/1923d6510bea25be.js +3 -0
  465. package/dist/server/.next/static/chunks/1f1c09f06b1f73d5.css +3 -0
  466. package/dist/server/.next/static/chunks/2316c3dde76bf12d.js.map +1 -0
  467. package/dist/server/.next/static/chunks/249486689b72c55c.js +3 -0
  468. package/dist/server/.next/static/chunks/28309924e4c23ccc.js +5 -0
  469. package/dist/server/.next/static/chunks/2af4b91fa7a98c52.js.map +1 -0
  470. package/dist/server/.next/static/chunks/2b6075b99689b028.css.map +1 -0
  471. package/dist/server/.next/static/chunks/2c669537f498f2db.js.map +1 -0
  472. package/dist/server/.next/static/chunks/371387b426d53320.js +3 -0
  473. package/dist/server/.next/static/chunks/4553c25757d4836f.js +3 -0
  474. package/dist/server/.next/static/chunks/4695aadfc21f48b8.js +5 -0
  475. package/dist/server/.next/static/chunks/512b4b5323114f56.js +61 -0
  476. package/dist/server/.next/static/chunks/5a52f39dbf60c0c2.js +3 -0
  477. package/dist/server/.next/static/chunks/5e9dc9d078da6e2d.js.map +1 -0
  478. package/dist/server/.next/static/chunks/62b241f445063308.js.map +1 -0
  479. package/dist/server/.next/static/chunks/65c345a4e9ef046d.js.map +1 -0
  480. package/dist/server/.next/static/chunks/671a03c1fdfc08f8.js.map +1 -0
  481. package/dist/server/.next/static/chunks/684226c5a0f22bc1.js +3 -0
  482. package/dist/server/.next/static/chunks/6c6c1dcf9e7e2204.js.map +1 -0
  483. package/dist/server/.next/static/chunks/76692beeeb707278.css.map +1 -0
  484. package/dist/server/.next/static/chunks/7d7379cdf8fe9ec5.js +3 -0
  485. package/dist/server/.next/static/chunks/84f5ecdc99cc0be6.js.map +1 -0
  486. package/dist/server/.next/static/chunks/86b5e8830b67bd88.js.map +1 -0
  487. package/dist/server/.next/static/chunks/8969a52917bb9c0d.js.map +1 -0
  488. package/dist/server/.next/static/chunks/8d6bbd36cdf03018.js +5 -0
  489. package/dist/server/.next/static/chunks/9af4740ebb92591d.js.map +1 -0
  490. package/dist/server/.next/static/chunks/a7b45611d4ad55fe.js +4 -0
  491. package/dist/server/.next/static/chunks/a9cba6096fe97a30.js +5 -0
  492. package/dist/server/.next/static/chunks/c2cc02f47cf64419.js.map +1 -0
  493. package/dist/server/.next/static/chunks/cf3b2abf3523d13f.js +3 -0
  494. package/dist/server/.next/static/chunks/cf6e515377591a1f.js +3 -0
  495. package/dist/server/.next/static/chunks/d0ab7593ca8c77ca.js.map +1 -0
  496. package/dist/server/.next/static/chunks/d5028315079b40b4.js +5 -0
  497. package/dist/server/.next/static/chunks/da35f4984aadc7ee.css +3 -0
  498. package/dist/server/.next/static/chunks/ebfa652ea6e39124.js.map +1 -0
  499. package/dist/server/.next/static/chunks/ec548c7ce307cf6d.js +1 -0
  500. package/dist/server/.next/static/chunks/ecfccf4677b4777a.js +3 -0
  501. package/dist/server/.next/static/chunks/fc31ec097889736e.js +61 -0
  502. package/dist/server/.next/static/chunks/ffb74809cc596ae9.js.map +1 -0
  503. package/dist/server/.next/static/chunks/pages/_app.js +5 -0
  504. package/dist/server/.next/static/chunks/pages/_error.js +5 -0
  505. package/dist/server/.next/static/media/favicon.45db1c09.ico +0 -0
  506. package/dist/server/.next/static/qPRyAah5ijpk6JBI-hD27/_buildManifest.js +1 -0
  507. package/dist/server/.next/static/qPRyAah5ijpk6JBI-hD27/_clientMiddlewareManifest.json +1 -0
  508. package/dist/server/.next/static/qPRyAah5ijpk6JBI-hD27/_ssgManifest.js +1 -0
  509. package/dist/server/.next/trace +1 -4
  510. package/dist/server/.next/transform.js +7 -0
  511. package/dist/server/.next/transform.js.map +5 -0
  512. package/dist/server/.next/turbopack +0 -0
  513. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/app-bootstrap.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/lib/require-instrumentation-client.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/build/polyfills/polyfill-module.js","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/shared/lib/is-plain-object.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/lib/is-error.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/is-hydration-error.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/errors/hydration-error-info.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/errors/attach-hydration-error-state.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/lib/console.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/errors/console-error.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/errors/enqueue-client-error.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/lib/error-telemetry-utils.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/errors/stitched-error.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/errors/use-error-handler.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/globals/intercept-console-error.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/globals/patch-console.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/globals/handle-global-errors.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/compiled/scheduler/cjs/scheduler.production.js","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/compiled/scheduler/index.js","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/compiled/react-dom/cjs/react-dom-client.production.js","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/compiled/react-dom/client.js","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/shared/lib/head-manager-context.shared-runtime.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/react-client-callbacks/report-global-error.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/react-client-callbacks/on-recoverable-error.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/react-client-callbacks/error-boundary-callbacks.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/invalidate-cache-by-router-state.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/fill-cache-with-new-subtree-data.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/apply-flight-data.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/refetch-inactive-parallel-segments.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/apply-router-state-patch-to-tree.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/should-hard-navigate.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/is-navigating-to-new-root-layout.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/compute-changed-path.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/handle-mutable.ts","turbopack:///[project]/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_loose_base.cjs","turbopack:///[project]/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_loose_key.cjs","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/promise-queue.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/prefetch-cache-utils.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/reducers/prefetch-reducer.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/shared/lib/router/utils/html-bots.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/shared/lib/router/utils/is-bot.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/shared/lib/router/utils/parse-path.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/shared/lib/router/utils/add-path-prefix.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/shared/lib/router/utils/remove-trailing-slash.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/normalize-trailing-slash.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/add-base-path.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/app-router-announcer.tsx","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/reducers/find-head-in-cache.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/shared/lib/router/utils/path-has-prefix.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/has-base-path.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/remove-base-path.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/segment-cache.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/links.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/app-router.tsx","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/ppr-navigations.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/clear-cache-node-data-for-segment-path.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/aliased-prefetch-navigations.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/reducers/navigate-reducer.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/reducers/server-patch-reducer.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/reducers/restore-reducer.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/handle-segment-mismatch.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/reducers/refresh-reducer.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/reducers/hmr-refresh-reducer.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/assign-location.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/shared/lib/server-reference-info.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/reducers/server-action-reducer.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/router-reducer.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/app-router-instance.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/components/router-reducer/create-initial-router-state.ts","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/app-index.tsx","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/src/client/app-next-turbopack.ts"],"sourcesContent":["/**\n * Before starting the Next.js runtime and requiring any module, we need to make\n * sure the following scripts are executed in the correct order:\n * - Polyfills\n * - next/script with `beforeInteractive` strategy\n */\n\nconst version = process.env.__NEXT_VERSION\n\nwindow.next = {\n version,\n appDir: true,\n}\n\nfunction loadScriptsInSequence(\n scripts: [src: string, props: { [prop: string]: any }][],\n hydrate: () => void\n) {\n if (!scripts || !scripts.length) {\n return hydrate()\n }\n\n return scripts\n .reduce((promise, [src, props]) => {\n return promise.then(() => {\n return new Promise<void>((resolve, reject) => {\n const el = document.createElement('script')\n\n if (props) {\n for (const key in props) {\n if (key !== 'children') {\n el.setAttribute(key, props[key])\n }\n }\n }\n\n if (src) {\n el.src = src\n el.onload = () => resolve()\n el.onerror = reject\n } else if (props) {\n el.innerHTML = props.children\n setTimeout(resolve)\n }\n\n document.head.appendChild(el)\n })\n })\n }, Promise.resolve())\n .catch((err: Error) => {\n console.error(err)\n // Still try to hydrate even if there's an error.\n })\n .then(() => {\n hydrate()\n })\n}\n\nexport function appBootstrap(hydrate: () => void) {\n loadScriptsInSequence((self as any).__next_s, () => {\n // If the static shell is being debugged, skip hydration if the\n // `__nextppronly` query is present. This is only enabled when the\n // environment variable `__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING` is\n // set to `1`. Otherwise the following is optimized out.\n if (process.env.__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING === '1') {\n const search = new URLSearchParams(window.location.search)\n if (\n search.get('__nextppronly') === 'fallback' ||\n search.get('__nextppronly') === '1'\n ) {\n console.warn(\n `Skipping hydration due to __nextppronly=${search.get('__nextppronly')}`\n )\n return\n }\n }\n\n hydrate()\n })\n}\n","/**\n * This module imports the client instrumentation hook from the project root.\n *\n * The `private-next-instrumentation-client` module is automatically aliased to\n * the `instrumentation-client.ts` file in the project root by webpack or turbopack.\n */\nif (process.env.NODE_ENV === 'development') {\n const measureName = 'Client Instrumentation Hook'\n const startTime = performance.now()\n module.exports = require('private-next-instrumentation-client')\n const endTime = performance.now()\n\n const duration = endTime - startTime\n performance.measure(measureName, {\n start: startTime,\n end: endTime,\n detail: 'Client instrumentation initialization',\n })\n\n // Using 16ms threshold as it represents one frame (1000ms/60fps)\n // This helps identify if the instrumentation hook initialization\n // could potentially cause frame drops during development.\n const THRESHOLD = 16\n if (duration > THRESHOLD) {\n console.log(\n `[${measureName}] Slow execution detected: ${duration.toFixed(0)}ms (Note: Code download overhead is not included in this measurement)`\n )\n }\n} else {\n module.exports = require('private-next-instrumentation-client')\n}\n","\"trimStart\"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),\"trimEnd\"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),\"description\"in Symbol.prototype||Object.defineProperty(Symbol.prototype,\"description\",{configurable:!0,get:function(){var t=/\\((.*)\\)/.exec(this.toString());return t?t[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(t,r){return r=this.concat.apply([],this),t>1&&r.some(Array.isArray)?r.flat(t-1):r},Array.prototype.flatMap=function(t,r){return this.map(t,r).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(t){if(\"function\"!=typeof t)return this.then(t,t);var r=this.constructor||Promise;return this.then(function(n){return r.resolve(t()).then(function(){return n})},function(n){return r.resolve(t()).then(function(){throw n})})}),Object.fromEntries||(Object.fromEntries=function(t){return Array.from(t).reduce(function(t,r){return t[r[0]]=r[1],t},{})}),Array.prototype.at||(Array.prototype.at=function(t){var r=Math.trunc(t)||0;if(r<0&&(r+=this.length),!(r<0||r>=this.length))return this[r]}),Object.hasOwn||(Object.hasOwn=function(t,r){if(null==t)throw new TypeError(\"Cannot convert undefined or null to object\");return Object.prototype.hasOwnProperty.call(Object(t),r)}),\"canParse\"in URL||(URL.canParse=function(t,r){try{return!!new URL(t,r)}catch(t){return!1}});\n","export function getObjectClassLabel(value: any): string {\n return Object.prototype.toString.call(value)\n}\n\nexport function isPlainObject(value: any): boolean {\n if (getObjectClassLabel(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n\n /**\n * this used to be previously:\n *\n * `return prototype === null || prototype === Object.prototype`\n *\n * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.\n *\n * It was changed to the current implementation since it's resilient to serialization.\n */\n return prototype === null || prototype.hasOwnProperty('isPrototypeOf')\n}\n","import { isPlainObject } from '../shared/lib/is-plain-object'\n\n// We allow some additional attached properties for Next.js errors\nexport interface NextError extends Error {\n type?: string\n page?: string\n code?: string | number\n cancelled?: boolean\n digest?: number\n}\n\n/**\n * Checks whether the given value is a NextError.\n * This can be used to print a more detailed error message with properties like `code` & `digest`.\n */\nexport default function isError(err: unknown): err is NextError {\n return (\n typeof err === 'object' && err !== null && 'name' in err && 'message' in err\n )\n}\n\nfunction safeStringify(obj: any) {\n const seen = new WeakSet()\n\n return JSON.stringify(obj, (_key, value) => {\n // If value is an object and already seen, replace with \"[Circular]\"\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular]'\n }\n seen.add(value)\n }\n return value\n })\n}\n\nexport function getProperError(err: unknown): Error {\n if (isError(err)) {\n return err\n }\n\n if (process.env.NODE_ENV === 'development') {\n // provide better error for case where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return new Error(\n 'An undefined error was thrown, ' +\n 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'\n )\n }\n\n if (err === null) {\n return new Error(\n 'A null error was thrown, ' +\n 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'\n )\n }\n }\n\n return new Error(isPlainObject(err) ? safeStringify(err) : err + '')\n}\n","import isError from '../../lib/is-error'\n\nconst hydrationErrorRegex =\n /hydration failed|while hydrating|content does not match|did not match|HTML didn't match|text didn't match/i\n\nconst reactUnifiedMismatchWarning = `Hydration failed because the server rendered HTML didn't match the client. As a result this tree will be regenerated on the client. This can happen if a SSR-ed Client Component used:`\n\nconst reactHydrationStartMessages = [\n reactUnifiedMismatchWarning,\n `Hydration failed because the server rendered text didn't match the client. As a result this tree will be regenerated on the client. This can happen if a SSR-ed Client Component used:`,\n `A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:`,\n]\n\nexport const REACT_HYDRATION_ERROR_LINK =\n 'https://react.dev/link/hydration-mismatch'\nexport const NEXTJS_HYDRATION_ERROR_LINK =\n 'https://nextjs.org/docs/messages/react-hydration-error'\n\nexport const getDefaultHydrationErrorMessage = () => {\n return reactUnifiedMismatchWarning\n}\n\nexport function isHydrationError(error: unknown): boolean {\n return isError(error) && hydrationErrorRegex.test(error.message)\n}\n\nexport function isReactHydrationErrorMessage(msg: string): boolean {\n return reactHydrationStartMessages.some((prefix) => msg.startsWith(prefix))\n}\n\nconst hydrationWarningRegexes = [\n /^In HTML, (.+?) cannot be a child of <(.+?)>\\.(.*)\\nThis will cause a hydration error\\.(.*)/,\n /^In HTML, (.+?) cannot be a descendant of <(.+?)>\\.\\nThis will cause a hydration error\\.(.*)/,\n /^In HTML, text nodes cannot be a child of <(.+?)>\\.\\nThis will cause a hydration error\\./,\n /^In HTML, whitespace text nodes cannot be a child of <(.+?)>\\. Make sure you don't have any extra whitespace between tags on each line of your source code\\.\\nThis will cause a hydration error\\./,\n /^Expected server HTML to contain a matching <(.+?)> in <(.+?)>\\.(.*)/,\n /^Did not expect server HTML to contain a <(.+?)> in <(.+?)>\\.(.*)/,\n /^Expected server HTML to contain a matching text node for \"(.+?)\" in <(.+?)>\\.(.*)/,\n /^Did not expect server HTML to contain the text node \"(.+?)\" in <(.+?)>\\.(.*)/,\n /^Text content did not match\\. Server: \"(.+?)\" Client: \"(.+?)\"(.*)/,\n]\n\nexport function testReactHydrationWarning(msg: string): boolean {\n if (typeof msg !== 'string' || !msg) return false\n // React 18 has the `Warning: ` prefix.\n // React 19 does not.\n if (msg.startsWith('Warning: ')) {\n msg = msg.slice('Warning: '.length)\n }\n return hydrationWarningRegexes.some((regex) => regex.test(msg))\n}\n\nexport function getHydrationErrorStackInfo(rawMessage: string): {\n message: string | null\n stack?: string\n diff?: string\n} {\n rawMessage = rawMessage.replace(/^Error: /, '')\n rawMessage = rawMessage.replace('Warning: ', '')\n const isReactHydrationWarning = testReactHydrationWarning(rawMessage)\n\n if (!isReactHydrationErrorMessage(rawMessage) && !isReactHydrationWarning) {\n return {\n message: null,\n stack: rawMessage,\n diff: '',\n }\n }\n\n if (isReactHydrationWarning) {\n const [message, diffLog] = rawMessage.split('\\n\\n')\n return {\n message: message.trim(),\n stack: '',\n diff: (diffLog || '').trim(),\n }\n }\n\n const firstLineBreak = rawMessage.indexOf('\\n')\n rawMessage = rawMessage.slice(firstLineBreak + 1).trim()\n\n const [message, trailing] = rawMessage.split(`${REACT_HYDRATION_ERROR_LINK}`)\n const trimmedMessage = message.trim()\n // React built-in hydration diff starts with a newline, checking if length is > 1\n if (trailing && trailing.length > 1) {\n const stacks: string[] = []\n const diffs: string[] = []\n trailing.split('\\n').forEach((line) => {\n if (line.trim() === '') return\n if (line.trim().startsWith('at ')) {\n stacks.push(line)\n } else {\n diffs.push(line)\n }\n })\n\n return {\n message: trimmedMessage,\n diff: diffs.join('\\n'),\n stack: stacks.join('\\n'),\n }\n } else {\n return {\n message: trimmedMessage,\n stack: trailing, // without hydration diff\n }\n }\n}\n","import {\n getHydrationErrorStackInfo,\n testReactHydrationWarning,\n} from '../is-hydration-error'\n\nexport type HydrationErrorState = {\n // Hydration warning template format: <message> <serverContent> <clientContent>\n warning?: [string, string, string]\n serverContent?: string\n clientContent?: string\n // React 19 hydration diff format: <notes> <link> <component diff?>\n notes?: string\n reactOutputComponentDiff?: string\n}\n\ntype NullableText = string | null | undefined\n\nexport const hydrationErrorState: HydrationErrorState = {}\n\n// https://github.com/facebook/react/blob/main/packages/react-dom/src/__tests__/ReactDOMHydrationDiff-test.js used as a reference\nconst htmlTagsWarnings = new Set([\n 'Warning: In HTML, %s cannot be a child of <%s>.%s\\nThis will cause a hydration error.%s',\n 'Warning: In HTML, %s cannot be a descendant of <%s>.\\nThis will cause a hydration error.%s',\n 'Warning: In HTML, text nodes cannot be a child of <%s>.\\nThis will cause a hydration error.',\n \"Warning: In HTML, whitespace text nodes cannot be a child of <%s>. Make sure you don't have any extra whitespace between tags on each line of your source code.\\nThis will cause a hydration error.\",\n 'Warning: Expected server HTML to contain a matching <%s> in <%s>.%s',\n 'Warning: Did not expect server HTML to contain a <%s> in <%s>.%s',\n])\nconst textAndTagsMismatchWarnings = new Set([\n 'Warning: Expected server HTML to contain a matching text node for \"%s\" in <%s>.%s',\n 'Warning: Did not expect server HTML to contain the text node \"%s\" in <%s>.%s',\n])\n\nexport const getHydrationWarningType = (\n message: NullableText\n): 'tag' | 'text' | 'text-in-tag' => {\n if (typeof message !== 'string') {\n // TODO: Doesn't make sense to treat no message as a hydration error message.\n // We should bail out somewhere earlier.\n return 'text'\n }\n\n const normalizedMessage = message.startsWith('Warning: ')\n ? message\n : `Warning: ${message}`\n\n if (isHtmlTagsWarning(normalizedMessage)) return 'tag'\n if (isTextInTagsMismatchWarning(normalizedMessage)) return 'text-in-tag'\n\n return 'text'\n}\n\nconst isHtmlTagsWarning = (message: string) => htmlTagsWarnings.has(message)\n\nconst isTextInTagsMismatchWarning = (msg: string) =>\n textAndTagsMismatchWarnings.has(msg)\n\nexport const getReactHydrationDiffSegments = (msg: NullableText) => {\n if (msg) {\n const { message, diff } = getHydrationErrorStackInfo(msg)\n if (message) return [message, diff]\n }\n return undefined\n}\n\n/**\n * Patch console.error to capture hydration errors.\n * If any of the knownHydrationWarnings are logged, store the message and component stack.\n * When the hydration runtime error is thrown, the message and component stack are added to the error.\n * This results in a more helpful error message in the error overlay.\n */\n\nexport function storeHydrationErrorStateFromConsoleArgs(...args: any[]) {\n let [msg, firstContent, secondContent, ...rest] = args\n if (testReactHydrationWarning(msg)) {\n // Some hydration warnings has 4 arguments, some has 3, fallback to the last argument\n // when the 3rd argument is not the component stack but an empty string\n const isReact18 = msg.startsWith('Warning: ')\n\n // For some warnings, there's only 1 argument for template.\n // The second argument is the diff or component stack.\n if (args.length === 3) {\n secondContent = ''\n }\n\n const warning: [string, string, string] = [\n // remove the last %s from the message\n msg,\n firstContent,\n secondContent,\n ]\n\n const lastArg = (rest[rest.length - 1] || '').trim()\n if (!isReact18) {\n hydrationErrorState.reactOutputComponentDiff = lastArg\n } else {\n hydrationErrorState.reactOutputComponentDiff =\n generateHydrationDiffReact18(msg, firstContent, secondContent, lastArg)\n }\n\n hydrationErrorState.warning = warning\n hydrationErrorState.serverContent = firstContent\n hydrationErrorState.clientContent = secondContent\n }\n}\n\n/*\n * Some hydration errors in React 18 does not have the diff in the error message.\n * Instead it has the error stack trace which is component stack that we can leverage.\n * Will parse the diff from the error stack trace\n * e.g.\n * Warning: Expected server HTML to contain a matching <div> in <p>.\n * at div\n * at p\n * at div\n * at div\n * at Page\n * output:\n * <Page>\n * <div>\n * <p>\n * > <div>\n *\n */\nfunction generateHydrationDiffReact18(\n message: string,\n firstContent: string,\n secondContent: string,\n lastArg: string\n) {\n const componentStack = lastArg\n let firstIndex = -1\n let secondIndex = -1\n const hydrationWarningType = getHydrationWarningType(message)\n\n // at div\\n at Foo\\n at Bar (....)\\n -> [div, Foo]\n const components = componentStack\n .split('\\n')\n // .reverse()\n .map((line: string, index: number) => {\n // `<space>at <component> (<location>)` -> `at <component> (<location>)`\n line = line.trim()\n // extract `<space>at <component>` to `<<component>>`\n // e.g. ` at Foo` -> `<Foo>`\n const [, component, location] = /at (\\w+)( \\((.*)\\))?/.exec(line) || []\n // If there's no location then it's user-land stack frame\n if (!location) {\n if (component === firstContent && firstIndex === -1) {\n firstIndex = index\n } else if (component === secondContent && secondIndex === -1) {\n secondIndex = index\n }\n }\n return location ? '' : component\n })\n .filter(Boolean)\n .reverse()\n\n let diff = ''\n for (let i = 0; i < components.length; i++) {\n const component = components[i]\n const matchFirstContent =\n hydrationWarningType === 'tag' && i === components.length - firstIndex - 1\n const matchSecondContent =\n hydrationWarningType === 'tag' &&\n i === components.length - secondIndex - 1\n if (matchFirstContent || matchSecondContent) {\n const spaces = ' '.repeat(Math.max(i * 2 - 2, 0) + 2)\n diff += `> ${spaces}<${component}>\\n`\n } else {\n const spaces = ' '.repeat(i * 2 + 2)\n diff += `${spaces}<${component}>\\n`\n }\n }\n if (hydrationWarningType === 'text') {\n const spaces = ' '.repeat(components.length * 2)\n diff += `+ ${spaces}\"${firstContent}\"\\n`\n diff += `- ${spaces}\"${secondContent}\"\\n`\n } else if (hydrationWarningType === 'text-in-tag') {\n const spaces = ' '.repeat(components.length * 2)\n diff += `> ${spaces}<${secondContent}>\\n`\n diff += `> ${spaces}\"${firstContent}\"\\n`\n }\n return diff\n}\n","import {\n getDefaultHydrationErrorMessage,\n isHydrationError,\n testReactHydrationWarning,\n} from '../is-hydration-error'\nimport {\n hydrationErrorState,\n getReactHydrationDiffSegments,\n type HydrationErrorState,\n} from './hydration-error-info'\n\nexport function attachHydrationErrorState(error: Error) {\n let parsedHydrationErrorState: typeof hydrationErrorState = {}\n const isHydrationWarning = testReactHydrationWarning(error.message)\n const isHydrationRuntimeError = isHydrationError(error)\n\n // If it's not hydration warnings or errors, skip\n if (!(isHydrationRuntimeError || isHydrationWarning)) {\n return\n }\n\n const reactHydrationDiffSegments = getReactHydrationDiffSegments(\n error.message\n )\n // If the reactHydrationDiffSegments exists\n // and the diff (reactHydrationDiffSegments[1]) exists\n // e.g. the hydration diff log error.\n if (reactHydrationDiffSegments) {\n const diff = reactHydrationDiffSegments[1]\n parsedHydrationErrorState = {\n ...((error as any).details as HydrationErrorState),\n ...hydrationErrorState,\n // If diff is present in error, we don't need to pick up the console logged warning.\n // - if hydration error has diff, and is not hydration diff log, then it's a normal hydration error.\n // - if hydration error no diff, then leverage the one from the hydration diff log.\n\n warning: (diff && !isHydrationWarning\n ? null\n : hydrationErrorState.warning) || [\n getDefaultHydrationErrorMessage(),\n '',\n '',\n ],\n // When it's hydration diff log, do not show notes section.\n // This condition is only for the 1st squashed error.\n notes: isHydrationWarning ? '' : reactHydrationDiffSegments[0],\n reactOutputComponentDiff: diff,\n }\n // Cache the `reactOutputComponentDiff` into hydrationErrorState.\n // This is only required for now when we still squashed the hydration diff log into hydration error.\n // Once the all error is logged to dev overlay in order, this will go away.\n if (!hydrationErrorState.reactOutputComponentDiff && diff) {\n hydrationErrorState.reactOutputComponentDiff = diff\n }\n // If it's hydration runtime error that doesn't contain the diff, combine the diff from the cached hydration diff.\n if (\n !diff &&\n isHydrationRuntimeError &&\n hydrationErrorState.reactOutputComponentDiff\n ) {\n parsedHydrationErrorState.reactOutputComponentDiff =\n hydrationErrorState.reactOutputComponentDiff\n }\n } else {\n // Normal runtime error, where it doesn't contain the hydration diff.\n\n // If there's any extra information in the error message to display,\n // append it to the error message details property\n if (hydrationErrorState.warning) {\n // The patched console.error found hydration errors logged by React\n // Append the logged warning to the error message\n parsedHydrationErrorState = {\n ...(error as any).details,\n // It contains the warning, component stack, server and client tag names\n ...hydrationErrorState,\n }\n }\n // Consume the cached hydration diff.\n // This is only required for now when we still squashed the hydration diff log into hydration error.\n // Once the all error is logged to dev overlay in order, this will go away.\n if (hydrationErrorState.reactOutputComponentDiff) {\n parsedHydrationErrorState.reactOutputComponentDiff =\n hydrationErrorState.reactOutputComponentDiff\n }\n }\n // If it's a hydration error, store the hydration error state into the error object\n ;(error as any).details = parsedHydrationErrorState\n}\n","import isError from '../../lib/is-error'\n\nfunction formatObject(arg: unknown, depth: number) {\n switch (typeof arg) {\n case 'object':\n if (arg === null) {\n return 'null'\n } else if (Array.isArray(arg)) {\n let result = '['\n if (depth < 1) {\n for (let i = 0; i < arg.length; i++) {\n if (result !== '[') {\n result += ','\n }\n if (Object.prototype.hasOwnProperty.call(arg, i)) {\n result += formatObject(arg[i], depth + 1)\n }\n }\n } else {\n result += arg.length > 0 ? '...' : ''\n }\n result += ']'\n return result\n } else if (arg instanceof Error) {\n return arg + ''\n } else {\n const keys = Object.keys(arg)\n let result = '{'\n if (depth < 1) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n const desc = Object.getOwnPropertyDescriptor(arg, 'key')\n if (desc && !desc.get && !desc.set) {\n const jsonKey = JSON.stringify(key)\n if (jsonKey !== '\"' + key + '\"') {\n result += jsonKey + ': '\n } else {\n result += key + ': '\n }\n result += formatObject(desc.value, depth + 1)\n }\n }\n } else {\n result += keys.length > 0 ? '...' : ''\n }\n result += '}'\n return result\n }\n case 'string':\n return JSON.stringify(arg)\n default:\n return String(arg)\n }\n}\n\nexport function formatConsoleArgs(args: unknown[]): string {\n let message: string\n let idx: number\n if (typeof args[0] === 'string') {\n message = args[0]\n idx = 1\n } else {\n message = ''\n idx = 0\n }\n let result = ''\n let startQuote = false\n for (let i = 0; i < message.length; ++i) {\n const char = message[i]\n if (char !== '%' || i === message.length - 1 || idx >= args.length) {\n result += char\n continue\n }\n\n const code = message[++i]\n switch (code) {\n case 'c': {\n // TODO: We should colorize with HTML instead of turning into a string.\n // Ignore for now.\n result = startQuote ? `${result}]` : `[${result}`\n startQuote = !startQuote\n idx++\n break\n }\n case 'O':\n case 'o': {\n result += formatObject(args[idx++], 0)\n break\n }\n case 'd':\n case 'i': {\n result += parseInt(args[idx++] as any, 10)\n break\n }\n case 'f': {\n result += parseFloat(args[idx++] as any)\n break\n }\n case 's': {\n result += String(args[idx++])\n break\n }\n default:\n result += '%' + code\n }\n }\n\n for (; idx < args.length; idx++) {\n result += (idx > 0 ? ' ' : '') + formatObject(args[idx], 0)\n }\n\n return result\n}\n\nexport function parseConsoleArgs(args: unknown[]): {\n environmentName: string | null\n error: Error | null\n} {\n // See\n // https://github.com/facebook/react/blob/65a56d0e99261481c721334a3ec4561d173594cd/packages/react-devtools-shared/src/backend/flight/renderer.js#L88-L93\n //\n // Logs replayed from the server look like this:\n // [\n // \"%c%s%c %o\\n\\n%s\\n\\n%s\\n\",\n // \"background: #e6e6e6; ...\",\n // \" Server \", // can also be e.g. \" Prerender \"\n // \"\",\n // Error,\n // \"The above error occurred in the <Page> component.\",\n // ...\n // ]\n if (\n args.length > 3 &&\n typeof args[0] === 'string' &&\n args[0].startsWith('%c%s%c ') &&\n typeof args[1] === 'string' &&\n typeof args[2] === 'string' &&\n typeof args[3] === 'string'\n ) {\n const environmentName = args[2]\n const maybeError = args[4]\n\n return {\n environmentName: environmentName.trim(),\n error: isError(maybeError) ? maybeError : null,\n }\n }\n\n return {\n environmentName: null,\n error: null,\n }\n}\n","// To distinguish from React error.digest, we use a different symbol here to determine if the error is from console.error or unhandled promise rejection.\nconst digestSym = Symbol.for('next.console.error.digest')\nconst consoleTypeSym = Symbol.for('next.console.error.type')\n\n// Represent non Error shape unhandled promise rejections or console.error errors.\n// Those errors will be captured and displayed in Error Overlay.\nexport type ConsoleError = Error & {\n [digestSym]: 'NEXT_CONSOLE_ERROR'\n [consoleTypeSym]: 'string' | 'error'\n environmentName: string\n}\n\nexport function createConsoleError(\n message: string | Error,\n environmentName?: string | null\n): ConsoleError {\n const error = (\n typeof message === 'string' ? new Error(message) : message\n ) as ConsoleError\n error[digestSym] = 'NEXT_CONSOLE_ERROR'\n error[consoleTypeSym] = typeof message === 'string' ? 'string' : 'error'\n\n if (environmentName && !error.environmentName) {\n error.environmentName = environmentName\n }\n\n return error\n}\n\nexport const isConsoleError = (error: any): error is ConsoleError => {\n return error && error[digestSym] === 'NEXT_CONSOLE_ERROR'\n}\n\nexport const getConsoleErrorType = (error: ConsoleError) => {\n return error[consoleTypeSym]\n}\n","// Dedupe the two consecutive errors: If the previous one is same as current one, ignore the current one.\nexport function enqueueConsecutiveDedupedError(\n queue: Array<Error>,\n error: Error\n) {\n const previousError = queue[queue.length - 1]\n // Compare the error stack to dedupe the consecutive errors\n if (previousError && previousError.stack === error.stack) {\n return\n }\n queue.push(error)\n}\n","const ERROR_CODE_DELIMITER = '@'\n\n/**\n * Augments the digest field of errors thrown in React Server Components (RSC) with an error code.\n * Since RSC errors can only be serialized through the digest field, this provides a way to include\n * an additional error code that can be extracted client-side via `extractNextErrorCode`.\n *\n * The error code is appended to the digest string with a semicolon separator, allowing it to be\n * parsed out later while preserving the original digest value.\n */\nexport const createDigestWithErrorCode = (\n thrownValue: unknown,\n originalDigest: string\n): string => {\n if (\n typeof thrownValue === 'object' &&\n thrownValue !== null &&\n '__NEXT_ERROR_CODE' in thrownValue\n ) {\n return `${originalDigest}${ERROR_CODE_DELIMITER}${thrownValue.__NEXT_ERROR_CODE}`\n }\n return originalDigest\n}\n\n/**\n * Copies the error code from one error to another by setting the __NEXT_ERROR_CODE property.\n * This allows error codes to be preserved when wrapping or transforming errors.\n */\nexport const copyNextErrorCode = (source: unknown, target: unknown): void => {\n const errorCode = extractNextErrorCode(source)\n if (errorCode && typeof target === 'object' && target !== null) {\n Object.defineProperty(target, '__NEXT_ERROR_CODE', {\n value: errorCode,\n enumerable: false,\n configurable: true,\n })\n }\n}\n\nexport const extractNextErrorCode = (error: unknown): string | undefined => {\n if (\n typeof error === 'object' &&\n error !== null &&\n '__NEXT_ERROR_CODE' in error &&\n typeof error.__NEXT_ERROR_CODE === 'string'\n ) {\n return error.__NEXT_ERROR_CODE\n }\n\n if (\n typeof error === 'object' &&\n error !== null &&\n 'digest' in error &&\n typeof error.digest === 'string'\n ) {\n const segments = error.digest.split(ERROR_CODE_DELIMITER)\n const errorCode = segments.find((segment) => segment.startsWith('E'))\n return errorCode\n }\n\n return undefined\n}\n","import React from 'react'\nimport isError from '../../../lib/is-error'\nimport { copyNextErrorCode } from '../../../lib/error-telemetry-utils'\n\nconst REACT_ERROR_STACK_BOTTOM_FRAME = 'react-stack-bottom-frame'\nconst REACT_ERROR_STACK_BOTTOM_FRAME_REGEX = new RegExp(\n `(at ${REACT_ERROR_STACK_BOTTOM_FRAME} )|(${REACT_ERROR_STACK_BOTTOM_FRAME}\\\\@)`\n)\n\nexport function getReactStitchedError<T = unknown>(err: T): Error | T {\n const isErrorInstance = isError(err)\n const originStack = isErrorInstance ? err.stack || '' : ''\n const originMessage = isErrorInstance ? err.message : ''\n const stackLines = originStack.split('\\n')\n const indexOfSplit = stackLines.findIndex((line) =>\n REACT_ERROR_STACK_BOTTOM_FRAME_REGEX.test(line)\n )\n const isOriginalReactError = indexOfSplit >= 0 // has the react-stack-bottom-frame\n let newStack = isOriginalReactError\n ? stackLines.slice(0, indexOfSplit).join('\\n')\n : originStack\n\n const newError = new Error(originMessage)\n // Copy all enumerable properties, e.g. digest\n Object.assign(newError, err)\n copyNextErrorCode(err, newError)\n newError.stack = newStack\n\n // Avoid duplicate overriding stack frames\n appendOwnerStack(newError)\n\n return newError\n}\n\nfunction appendOwnerStack(error: Error) {\n if (!React.captureOwnerStack) {\n return\n }\n let stack = error.stack || ''\n // This module is only bundled in development mode so this is safe.\n const ownerStack = React.captureOwnerStack()\n // Avoid duplicate overriding stack frames\n if (ownerStack && stack.endsWith(ownerStack) === false) {\n stack += ownerStack\n // Override stack\n error.stack = stack\n }\n}\n","import { useEffect } from 'react'\nimport { attachHydrationErrorState } from './attach-hydration-error-state'\nimport { isNextRouterError } from '../is-next-router-error'\nimport { storeHydrationErrorStateFromConsoleArgs } from './hydration-error-info'\nimport { formatConsoleArgs, parseConsoleArgs } from '../../lib/console'\nimport isError from '../../../lib/is-error'\nimport { createConsoleError } from './console-error'\nimport { enqueueConsecutiveDedupedError } from './enqueue-client-error'\nimport { getReactStitchedError } from '../errors/stitched-error'\n\nconst queueMicroTask =\n globalThis.queueMicrotask || ((cb: () => void) => Promise.resolve().then(cb))\n\nexport type ErrorHandler = (error: Error) => void\n\nconst errorQueue: Array<Error> = []\nconst errorHandlers: Array<ErrorHandler> = []\nconst rejectionQueue: Array<Error> = []\nconst rejectionHandlers: Array<ErrorHandler> = []\n\nexport function handleConsoleError(\n originError: unknown,\n consoleErrorArgs: any[]\n) {\n let error: Error\n const { environmentName } = parseConsoleArgs(consoleErrorArgs)\n if (isError(originError)) {\n error = createConsoleError(originError, environmentName)\n } else {\n error = createConsoleError(\n formatConsoleArgs(consoleErrorArgs),\n environmentName\n )\n }\n error = getReactStitchedError(error)\n\n storeHydrationErrorStateFromConsoleArgs(...consoleErrorArgs)\n attachHydrationErrorState(error)\n\n enqueueConsecutiveDedupedError(errorQueue, error)\n for (const handler of errorHandlers) {\n // Delayed the error being passed to React Dev Overlay,\n // avoid the state being synchronously updated in the component.\n queueMicroTask(() => {\n handler(error)\n })\n }\n}\n\nexport function handleClientError(originError: unknown) {\n let error: Error\n if (isError(originError)) {\n error = originError\n } else {\n // If it's not an error, format the args into an error\n const formattedErrorMessage = originError + ''\n error = new Error(formattedErrorMessage)\n }\n error = getReactStitchedError(error)\n\n attachHydrationErrorState(error)\n\n enqueueConsecutiveDedupedError(errorQueue, error)\n for (const handler of errorHandlers) {\n // Delayed the error being passed to React Dev Overlay,\n // avoid the state being synchronously updated in the component.\n queueMicroTask(() => {\n handler(error)\n })\n }\n}\n\nexport function useErrorHandler(\n handleOnUnhandledError: ErrorHandler,\n handleOnUnhandledRejection: ErrorHandler\n) {\n useEffect(() => {\n // Handle queued errors.\n errorQueue.forEach(handleOnUnhandledError)\n rejectionQueue.forEach(handleOnUnhandledRejection)\n\n // Listen to new errors.\n errorHandlers.push(handleOnUnhandledError)\n rejectionHandlers.push(handleOnUnhandledRejection)\n\n return () => {\n // Remove listeners.\n errorHandlers.splice(errorHandlers.indexOf(handleOnUnhandledError), 1)\n rejectionHandlers.splice(\n rejectionHandlers.indexOf(handleOnUnhandledRejection),\n 1\n )\n\n // Reset error queues.\n errorQueue.splice(0, errorQueue.length)\n rejectionQueue.splice(0, rejectionQueue.length)\n }\n }, [handleOnUnhandledError, handleOnUnhandledRejection])\n}\n\nfunction onUnhandledError(event: WindowEventMap['error']): void | boolean {\n if (isNextRouterError(event.error)) {\n event.preventDefault()\n return false\n }\n // When there's an error property present, we log the error to error overlay.\n // Otherwise we don't do anything as it's not logging in the console either.\n if (event.error) {\n handleClientError(event.error)\n }\n}\n\nfunction onUnhandledRejection(ev: WindowEventMap['unhandledrejection']): void {\n const reason = ev?.reason\n if (isNextRouterError(reason)) {\n ev.preventDefault()\n return\n }\n\n let error = reason\n if (error && !isError(error)) {\n error = new Error(error + '')\n }\n\n rejectionQueue.push(error)\n for (const handler of rejectionHandlers) {\n handler(error)\n }\n}\n\nexport function handleGlobalErrors() {\n if (typeof window !== 'undefined') {\n try {\n // Increase the number of stack frames on the client\n Error.stackTraceLimit = 50\n } catch {}\n\n window.addEventListener('error', onUnhandledError)\n window.addEventListener('unhandledrejection', onUnhandledRejection)\n }\n}\n","import isError from '../../../lib/is-error'\nimport { isNextRouterError } from '../is-next-router-error'\nimport { handleConsoleError } from '../errors/use-error-handler'\nimport { parseConsoleArgs } from '../../lib/console'\n\nexport const originConsoleError = globalThis.console.error\n\n// Patch console.error to collect information about hydration errors\nexport function patchConsoleError() {\n // Ensure it's only patched once\n if (typeof window === 'undefined') {\n return\n }\n window.console.error = function error(...args: any[]) {\n let maybeError: unknown\n if (process.env.NODE_ENV !== 'production') {\n const { error: replayedError } = parseConsoleArgs(args)\n if (replayedError) {\n maybeError = replayedError\n } else if (isError(args[0])) {\n maybeError = args[0]\n } else {\n // See https://github.com/facebook/react/blob/d50323eb845c5fde0d720cae888bf35dedd05506/packages/react-reconciler/src/ReactFiberErrorLogger.js#L78\n maybeError = args[1]\n }\n } else {\n maybeError = args[0]\n }\n\n if (!isNextRouterError(maybeError)) {\n if (process.env.NODE_ENV !== 'production') {\n handleConsoleError(\n // replayed errors have their own complex format string that should be used,\n // but if we pass the error directly, `handleClientError` will ignore it\n maybeError,\n args\n )\n }\n\n originConsoleError.apply(window.console, args)\n }\n }\n}\n","import { patchConsoleError } from './intercept-console-error'\n\npatchConsoleError()\n","import { handleGlobalErrors } from '../errors/use-error-handler'\n\nhandleGlobalErrors()\n","/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n else break a;\n }\n}\nfunction peek(heap) {\n return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n else break a;\n }\n }\n return first;\n}\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\nvar taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n}\nvar isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\nfunction shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n}\nfunction performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime && shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\nelse if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n task.callback = null;\n};\nexports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n};\nexports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_requestPaint = function () {\n needsPaint = !0;\n};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"next/dist/compiled/scheduler\"),\n React = require(\"next/dist/compiled/react\"),\n ReactDOM = require(\"next/dist/compiled/react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\nSymbol.for(\"react.view_transition\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$1) {\n control = x$1;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$2) {\n control = x$2;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"<anonymous>\") &&\n (frame = frame.replace(\"<anonymous>\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\";\n do\n (info += describeFiber(workInProgress)),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionLane = 256,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 4194048;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextTransitionLane() {\n var lane = nextTransitionLane;\n nextTransitionLane <<= 1;\n 0 === (nextTransitionLane & 4194048) && (nextTransitionLane = 256);\n return lane;\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 4194090);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentSuspenseInstance(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentSuspenseInstance(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[: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]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\",\n descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n ),\n currentValue = \"\" + node[valueField];\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n node._valueTracker || (node._valueTracker = trackValueOnNode(node));\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n )\n return;\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"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(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$284;\n if (canUseDOM) {\n var isSupported$jscomp$inline_421 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_421) {\n var element$jscomp$inline_422 = document.createElement(\"div\");\n element$jscomp$inline_422.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_421 =\n \"function\" === typeof element$jscomp$inline_422.oninput;\n }\n JSCompiler_inline_result$jscomp$284 = isSupported$jscomp$inline_421;\n } else JSCompiler_inline_result$jscomp$284 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$284 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(\n formatProdErrorMessage(\n 418,\n 1 < arguments.length && void 0 !== arguments[1] && arguments[1]\n ? \"text\"\n : \"HTML\",\n \"\"\n )\n );\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n track(instance);\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children),\n track(instance);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber, !0);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n a: {\n fiber = fiber.nextSibling;\n for (tag = 0; fiber; ) {\n if (8 === fiber.nodeType)\n if (((JSCompiler_temp = fiber.data), \"/$\" === JSCompiler_temp)) {\n if (0 === tag) {\n nextHydratableInstance = getNextHydratable(fiber.nextSibling);\n break a;\n }\n tag--;\n } else\n (\"$\" !== JSCompiler_temp &&\n \"$!\" !== JSCompiler_temp &&\n \"$?\" !== JSCompiler_temp) ||\n tag++;\n fiber = fiber.nextSibling;\n }\n nextHydratableInstance = null;\n }\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction noop$3() {}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$3, noop$3), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$3, noop$3);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction resolveLazy(lazyType) {\n var init = lazyType._init;\n return init(lazyType._payload);\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n newChild = init(newChild._payload);\n return createChild(returnFiber, newChild, lanes);\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n (newChild = key(newChild._payload)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n newChild = init(newChild._payload);\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n (newChild = key(newChild._payload)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n if (22 === fiber.tag) {\n if (\n (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary)\n ) {\n var current = fiber.alternate;\n null !== current &&\n null !== current.memoizedState &&\n (shellBoundary = fiber);\n }\n } else reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n \"$?\" === state.data ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (19 === node.tag && void 0 !== node.memoizedProps.revealOrder) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$60 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$60 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 124) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$66) {\n onActionError(actionQueue, node, error$66);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (void 0 === initialValue || 0 !== (renderLanes & 1073741824))\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (0 === (renderLanes & 42) || 0 !== (renderLanes & 1073741824))\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop$2() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop$2\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var resetStateQueue = ensureFormComponentIsStateful(formFiber).next.queue;\n dispatchSetStateInternal(formFiber, resetStateQueue, {}, requestUpdateLane());\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$69 = enqueueUpdate(provider, fiber, lane);\n null !== root$69 &&\n (scheduleUpdateOnFiber(root$69, provider, lane),\n entangleTransitions(root$69, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n },\n HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 124) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"\\u00ab\" + identifierPrefix + \"R\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"\\u00bb\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"\\u00ab\" +\n identifierPrefix +\n \"r\" +\n JSCompiler_inline_result.toString(32) +\n \"\\u00bb\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n },\n HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n };\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$73 in Component)\n void 0 === newProps[propName$73] &&\n (newProps[propName$73] = Component[propName$73]);\n }\n return newProps;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n };\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$74) {\n setTimeout(function () {\n throw e$74;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$75) {\n setTimeout(function () {\n throw e$75;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n nextProps =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextChildren = workInProgress.child = current.child;\n for (prevState = 0; null !== nextChildren; )\n (prevState =\n prevState | nextChildren.lanes | nextChildren.childLanes),\n (nextChildren = nextChildren.sibling);\n workInProgress.childLanes = prevState & ~nextProps;\n } else (workInProgress.childLanes = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextProps,\n renderLanes\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (workInProgress.lanes = workInProgress.childLanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n return null;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n if (isHydrating) {\n var nextInstance = nextHydratableInstance,\n JSCompiler_temp$jscomp$0;\n if ((JSCompiler_temp$jscomp$0 = nextInstance)) {\n c: {\n JSCompiler_temp$jscomp$0 = nextInstance;\n for (\n nextInstance = rootOrSingletonContext;\n 8 !== JSCompiler_temp$jscomp$0.nodeType;\n\n ) {\n if (!nextInstance) {\n nextInstance = null;\n break c;\n }\n JSCompiler_temp$jscomp$0 = getNextHydratable(\n JSCompiler_temp$jscomp$0.nextSibling\n );\n if (null === JSCompiler_temp$jscomp$0) {\n nextInstance = null;\n break c;\n }\n }\n nextInstance = JSCompiler_temp$jscomp$0;\n }\n null !== nextInstance\n ? ((workInProgress.memoizedState = {\n dehydrated: nextInstance,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (JSCompiler_temp$jscomp$0 = createFiberImplClass(\n 18,\n null,\n null,\n 0\n )),\n (JSCompiler_temp$jscomp$0.stateNode = nextInstance),\n (JSCompiler_temp$jscomp$0.return = workInProgress),\n (workInProgress.child = JSCompiler_temp$jscomp$0),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (JSCompiler_temp$jscomp$0 = !0))\n : (JSCompiler_temp$jscomp$0 = !1);\n }\n JSCompiler_temp$jscomp$0 || throwOnHydrationMismatch(workInProgress);\n }\n nextInstance = workInProgress.memoizedState;\n if (\n null !== nextInstance &&\n ((nextInstance = nextInstance.dehydrated), null !== nextInstance)\n )\n return (\n isSuspenseInstanceFallback(nextInstance)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912),\n null\n );\n popSuspenseHandler(workInProgress);\n }\n nextInstance = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextInstance = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextInstance },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextInstance.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextInstance.sibling = nextProps),\n (workInProgress.child = nextInstance),\n (showFallback = workInProgress.child),\n (showFallback.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (showFallback.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n nextProps\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextInstance);\n }\n JSCompiler_temp$jscomp$0 = current.memoizedState;\n if (\n null !== JSCompiler_temp$jscomp$0 &&\n ((nextInstance = JSCompiler_temp$jscomp$0.dehydrated),\n null !== nextInstance)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = nextProps.fallback),\n (nextInstance = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n nextInstance\n )),\n (showFallback = createFiberFromFragment(\n showFallback,\n nextInstance,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2),\n (nextProps.return = workInProgress),\n (showFallback.return = workInProgress),\n (nextProps.sibling = showFallback),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = showFallback));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isSuspenseInstanceFallback(nextInstance))\n ) {\n JSCompiler_temp =\n nextInstance.nextSibling && nextInstance.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (\n null !== JSCompiler_temp &&\n ((nextProps = renderLanes & -renderLanes),\n (nextProps =\n 0 !== (nextProps & 42)\n ? 1\n : getBumpedLaneForHydrationByLane(nextProps)),\n (nextProps =\n 0 !== (nextProps & (JSCompiler_temp.suspendedLanes | renderLanes))\n ? 0\n : nextProps),\n 0 !== nextProps && nextProps !== JSCompiler_temp$jscomp$0.retryLane)\n )\n throw (\n ((JSCompiler_temp$jscomp$0.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n \"$?\" === nextInstance.data || renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n \"$?\" === nextInstance.data\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = JSCompiler_temp$jscomp$0.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextInstance.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n ((idStack[idStackIndex++] = treeContextId),\n (idStack[idStackIndex++] = treeContextOverflow),\n (idStack[idStackIndex++] = treeContextProvider),\n (treeContextId = current.id),\n (treeContextOverflow = current.overflow),\n (treeContextProvider = workInProgress)),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = nextProps.fallback),\n (nextInstance = workInProgress.mode),\n (JSCompiler_temp$jscomp$0 = current.child),\n (digest = JSCompiler_temp$jscomp$0.sibling),\n (nextProps = createWorkInProgress(JSCompiler_temp$jscomp$0, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags =\n JSCompiler_temp$jscomp$0.subtreeFlags & 65011712),\n null !== digest\n ? (showFallback = createWorkInProgress(digest, showFallback))\n : ((showFallback = createFiberFromFragment(\n showFallback,\n nextInstance,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2)),\n (showFallback.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = showFallback),\n (workInProgress.child = nextProps),\n (nextProps = showFallback),\n (showFallback = workInProgress.child),\n (nextInstance = current.child.memoizedState),\n null === nextInstance\n ? (nextInstance = mountSuspenseOffscreenState(renderLanes))\n : ((JSCompiler_temp$jscomp$0 = nextInstance.cachePool),\n null !== JSCompiler_temp$jscomp$0\n ? ((digest = CacheContext._currentValue),\n (JSCompiler_temp$jscomp$0 =\n JSCompiler_temp$jscomp$0.parent !== digest\n ? { parent: digest, pool: digest }\n : JSCompiler_temp$jscomp$0))\n : (JSCompiler_temp$jscomp$0 = getSuspendedCache()),\n (nextInstance = {\n baseLanes: nextInstance.baseLanes | renderLanes,\n cachePool: JSCompiler_temp$jscomp$0\n })),\n (showFallback.memoizedState = nextInstance),\n (showFallback.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n nextProps\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n offscreenProps.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n };\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n reconcileChildren(current, workInProgress, nextProps.children, renderLanes);\n nextProps = suspenseStackCursor.current;\n if (0 !== (nextProps & 2))\n (nextProps = (nextProps & 1) | 2), (workInProgress.flags |= 128);\n else {\n if (null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n nextProps &= 1;\n }\n push(suspenseStackCursor, nextProps);\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode\n );\n break;\n case \"backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode\n );\n break;\n case \"together\":\n initSuspenseListRenderState(workInProgress, !1, null, null, void 0);\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 13:\n var state = workInProgress.memoizedState;\n if (null !== state) {\n if (null !== state.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state = 0 !== (renderLanes & workInProgress.childLanes);\n state ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state) break;\n else return null;\n case 22:\n case 23:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(current, workInProgress, renderLanes)\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n current = workInProgress.pendingProps;\n var lazyComponent = workInProgress.elementType,\n init = lazyComponent._init;\n lazyComponent = init(lazyComponent._payload);\n workInProgress.type = lazyComponent;\n if (\"function\" === typeof lazyComponent)\n shouldConstruct(lazyComponent)\n ? ((current = resolveClassComponentProps(lazyComponent, current)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n )));\n else {\n if (void 0 !== lazyComponent && null !== lazyComponent)\n if (\n ((init = lazyComponent.$$typeof), init === REACT_FORWARD_REF_TYPE)\n ) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n );\n break a;\n } else if (init === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n );\n break a;\n }\n workInProgress =\n getComponentNameFromType(lazyComponent) || lazyComponent;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (lazyComponent = workInProgress.type),\n (init = resolveClassComponentProps(\n lazyComponent,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n lazyComponent,\n init,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n lazyComponent = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n init = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, lazyComponent, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n lazyComponent = nextState.cache;\n pushProvider(workInProgress, CacheContext, lazyComponent);\n lazyComponent !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n lazyComponent = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: lazyComponent,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n );\n break a;\n } else if (lazyComponent !== init) {\n init = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError(init);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n lazyComponent,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (lazyComponent === init) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n );\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (lazyComponent = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (lazyComponent[internalInstanceKey] = workInProgress),\n (lazyComponent[internalPropsKey] = current),\n setInitialProperties(lazyComponent, renderLanes, current),\n markNodeAsHoistable(lazyComponent),\n (workInProgress.stateNode = lazyComponent))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((lazyComponent = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n (init = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = init),\n (nextHydratableInstance = getNextHydratable(\n lazyComponent.firstChild\n )))\n : (nextHydratableInstance = init)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if ((init = lazyComponent = nextHydratableInstance))\n (lazyComponent = canHydrateInstance(\n lazyComponent,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== lazyComponent\n ? ((workInProgress.stateNode = lazyComponent),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(\n lazyComponent.firstChild\n )),\n (rootOrSingletonContext = !1),\n (init = !0))\n : (init = !1);\n init || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n init = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n lazyComponent = prevState.children;\n shouldSetTextContent(init, prevState)\n ? (lazyComponent = null)\n : null !== nextState &&\n shouldSetTextContent(init, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n ((init = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = init));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, lazyComponent, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (lazyComponent = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n lazyComponent,\n renderLanes\n ))\n : reconcileChildren(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n ),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (lazyComponent = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, lazyComponent.value),\n reconcileChildren(\n current,\n workInProgress,\n lazyComponent.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 9:\n return (\n (init = workInProgress.type._context),\n (lazyComponent = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n (init = readContext(init)),\n (lazyComponent = lazyComponent(init)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, lazyComponent, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n return (\n (lazyComponent = workInProgress.pendingProps),\n (renderLanes = workInProgress.mode),\n (lazyComponent = {\n mode: lazyComponent.mode,\n children: lazyComponent.children\n }),\n null === current\n ? ((renderLanes = mountWorkInProgressOffscreenFiber(\n lazyComponent,\n renderLanes\n )),\n (renderLanes.ref = workInProgress.ref),\n (workInProgress.child = renderLanes),\n (renderLanes.return = workInProgress),\n (workInProgress = renderLanes))\n : ((renderLanes = createWorkInProgress(current.child, lazyComponent)),\n (renderLanes.ref = workInProgress.ref),\n (workInProgress.child = renderLanes),\n (renderLanes.return = workInProgress),\n (workInProgress = renderLanes)),\n workInProgress\n );\n case 22:\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (lazyComponent = readContext(CacheContext)),\n null === current\n ? ((init = peekCacheFromPool()),\n null === init &&\n ((init = workInProgressRoot),\n (prevState = createCache()),\n (init.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && (init.pooledCacheLanes |= renderLanes),\n (init = prevState)),\n (workInProgress.memoizedState = {\n parent: lazyComponent,\n cache: init\n }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, init))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n (init = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n init.parent !== lazyComponent\n ? ((init = { parent: lazyComponent, cache: lazyComponent }),\n (workInProgress.memoizedState = init),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n init),\n pushProvider(workInProgress, CacheContext, lazyComponent))\n : ((lazyComponent = prevState.cache),\n pushProvider(workInProgress, CacheContext, lazyComponent),\n lazyComponent !== init.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n) {\n if ((type = 0 !== (workInProgress.mode & 32))) type = !1;\n if (type) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$113 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$113 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$113\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$113.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$114 = completedWork.child; null !== child$114; )\n (newChildLanes |= child$114.lanes | child$114.childLanes),\n (subtreeFlags |= child$114.subtreeFlags & 65011712),\n (subtreeFlags |= child$114.flags & 65011712),\n (child$114.return = completedWork),\n (child$114 = child$114.sibling);\n else\n for (child$114 = completedWork.child; null !== child$114; )\n (newChildLanes |= child$114.lanes | child$114.childLanes),\n (subtreeFlags |= child$114.subtreeFlags),\n (subtreeFlags |= child$114.flags),\n (child$114.return = completedWork),\n (child$114 = child$114.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 31:\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n nextResource = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, nextResource);\n else {\n var ownerDocument = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (nextResource) {\n case 1:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case 2:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case \"math\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n case \"script\":\n nextResource = ownerDocument.createElement(\"div\");\n nextResource.innerHTML = \"<script>\\x3c/script>\";\n nextResource = nextResource.removeChild(\n nextResource.firstChild\n );\n break;\n case \"select\":\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(\"select\", {\n is: newProps.is\n })\n : ownerDocument.createElement(\"select\");\n newProps.multiple\n ? (nextResource.multiple = !0)\n : newProps.size && (nextResource.size = newProps.size);\n break;\n default:\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(type, { is: newProps.is })\n : ownerDocument.createElement(type);\n }\n }\n nextResource[internalInstanceKey] = workInProgress;\n nextResource[internalPropsKey] = newProps;\n a: for (\n ownerDocument = workInProgress.child;\n null !== ownerDocument;\n\n ) {\n if (5 === ownerDocument.tag || 6 === ownerDocument.tag)\n nextResource.appendChild(ownerDocument.stateNode);\n else if (\n 4 !== ownerDocument.tag &&\n 27 !== ownerDocument.tag &&\n null !== ownerDocument.child\n ) {\n ownerDocument.child.return = ownerDocument;\n ownerDocument = ownerDocument.child;\n continue;\n }\n if (ownerDocument === workInProgress) break a;\n for (; null === ownerDocument.sibling; ) {\n if (\n null === ownerDocument.return ||\n ownerDocument.return === workInProgress\n )\n break a;\n ownerDocument = ownerDocument.return;\n }\n ownerDocument.sibling.return = ownerDocument.return;\n ownerDocument = ownerDocument.sibling;\n }\n workInProgress.stateNode = nextResource;\n a: switch (\n (setInitialProperties(nextResource, type, newProps), type)\n ) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n newProps = !!newProps.autoFocus;\n break a;\n case \"img\":\n newProps = !0;\n break a;\n default:\n newProps = !1;\n }\n newProps && markUpdate(workInProgress);\n }\n }\n bubbleProperties(workInProgress);\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n workInProgress.type,\n null === current ? null : current.memoizedProps,\n workInProgress.pendingProps,\n renderLanes\n );\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n current = rootInstanceStackCursor.current;\n if (popHydrationState(workInProgress)) {\n current = workInProgress.stateNode;\n renderLanes = workInProgress.memoizedProps;\n newProps = null;\n type = hydrationParentFiber;\n if (null !== type)\n switch (type.tag) {\n case 27:\n case 5:\n newProps = type.memoizedProps;\n }\n current[internalInstanceKey] = workInProgress;\n current =\n current.nodeValue === renderLanes ||\n (null !== newProps && !0 === newProps.suppressHydrationWarning) ||\n checkForUnmatchedText(current.nodeValue, renderLanes)\n ? !0\n : !1;\n current || throwOnHydrationMismatch(workInProgress, !0);\n } else\n (current =\n getOwnerDocumentFromRootContainer(current).createTextNode(\n newProps\n )),\n (current[internalInstanceKey] = workInProgress),\n (workInProgress.stateNode = current);\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n type = popHydrationState(workInProgress);\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n if (!type) throw Error(formatProdErrorMessage(318));\n type = workInProgress.memoizedState;\n type = null !== type ? type.dehydrated : null;\n if (!type) throw Error(formatProdErrorMessage(317));\n type[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n type = !1;\n } else\n (type = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = type),\n (type = !0);\n if (!type) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n }\n popSuspenseHandler(workInProgress);\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n current = null !== current && null !== current.memoizedState;\n renderLanes &&\n ((newProps = workInProgress.child),\n (type = null),\n null !== newProps.alternate &&\n null !== newProps.alternate.memoizedState &&\n null !== newProps.alternate.memoizedState.cachePool &&\n (type = newProps.alternate.memoizedState.cachePool.pool),\n (nextResource = null),\n null !== newProps.memoizedState &&\n null !== newProps.memoizedState.cachePool &&\n (nextResource = newProps.memoizedState.cachePool.pool),\n nextResource !== type && (newProps.flags |= 2048));\n renderLanes !== current &&\n renderLanes &&\n (workInProgress.child.flags |= 8192);\n scheduleRetryEffect(workInProgress, workInProgress.updateQueue);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n null === current &&\n listenToAllSupportedEvents(workInProgress.stateNode.containerInfo),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type), bubbleProperties(workInProgress), null\n );\n case 19:\n pop(suspenseStackCursor);\n type = workInProgress.memoizedState;\n if (null === type) return bubbleProperties(workInProgress), null;\n newProps = 0 !== (workInProgress.flags & 128);\n nextResource = type.rendering;\n if (null === nextResource)\n if (newProps) cutOffTailIfNeeded(type, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n nextResource = findFirstSuspended(current);\n if (null !== nextResource) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(type, !1);\n current = nextResource.updateQueue;\n workInProgress.updateQueue = current;\n scheduleRetryEffect(workInProgress, current);\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n resetWorkInProgress(renderLanes, current),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== type.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!newProps)\n if (\n ((current = findFirstSuspended(nextResource)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (newProps = !0),\n (current = current.updateQueue),\n (workInProgress.updateQueue = current),\n scheduleRetryEffect(workInProgress, current),\n cutOffTailIfNeeded(type, !0),\n null === type.tail &&\n \"hidden\" === type.tailMode &&\n !nextResource.alternate &&\n !isHydrating)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - type.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 536870912 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n type.isBackwards\n ? ((nextResource.sibling = workInProgress.child),\n (workInProgress.child = nextResource))\n : ((current = type.last),\n null !== current\n ? (current.sibling = nextResource)\n : (workInProgress.child = nextResource),\n (type.last = nextResource));\n }\n if (null !== type.tail)\n return (\n (workInProgress = type.tail),\n (type.rendering = workInProgress),\n (type.tail = workInProgress.sibling),\n (type.renderingStartTime = now()),\n (workInProgress.sibling = null),\n (current = suspenseStackCursor.current),\n push(suspenseStackCursor, newProps ? (current & 1) | 2 : current & 1),\n workInProgress\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n (newProps = null !== workInProgress.memoizedState),\n null !== current\n ? (null !== current.memoizedState) !== newProps &&\n (workInProgress.flags |= 8192)\n : newProps && (workInProgress.flags |= 8192),\n newProps\n ? 0 !== (renderLanes & 536870912) &&\n 0 === (workInProgress.flags & 128) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n (renderLanes = workInProgress.updateQueue),\n null !== renderLanes &&\n scheduleRetryEffect(workInProgress, renderLanes.retryQueue),\n (renderLanes = null),\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (renderLanes = current.memoizedState.cachePool.pool),\n (newProps = null),\n null !== workInProgress.memoizedState &&\n null !== workInProgress.memoizedState.cachePool &&\n (newProps = workInProgress.memoizedState.cachePool.pool),\n newProps !== renderLanes && (workInProgress.flags |= 2048),\n null !== current && pop(resumedCache),\n null\n );\n case 24:\n return (\n (renderLanes = null),\n null !== current && (renderLanes = current.memoizedState.cache),\n workInProgress.memoizedState.cache !== renderLanes &&\n (workInProgress.flags |= 2048),\n popProvider(CacheContext),\n bubbleProperties(workInProgress),\n null\n );\n case 25:\n return null;\n case 30:\n return null;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popProvider(CacheContext),\n popHostContainer(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 26:\n case 27:\n case 5:\n return popHostContext(workInProgress), null;\n case 13:\n popSuspenseHandler(workInProgress);\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated) {\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type), null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n null !== current && pop(resumedCache),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 24:\n return popProvider(CacheContext), null;\n case 25:\n return null;\n default:\n return null;\n }\n}\nfunction unwindInterruptedWork(current, interruptedWork) {\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 3:\n popProvider(CacheContext);\n popHostContainer();\n break;\n case 26:\n case 27:\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 13:\n popSuspenseHandler(interruptedWork);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type);\n break;\n case 22:\n case 23:\n popSuspenseHandler(interruptedWork);\n popHiddenContext();\n null !== current && pop(resumedCache);\n break;\n case 24:\n popProvider(CacheContext);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n lastEffect = void 0;\n var create = updateQueue.create,\n inst = updateQueue.inst;\n lastEffect = create();\n inst.destroy = lastEffect;\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor$jscomp$0\n) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n if (void 0 !== destroy) {\n inst.destroy = void 0;\n lastEffect = finishedWork;\n var nearestMountedAncestor = nearestMountedAncestor$jscomp$0,\n destroy_ = destroy;\n try {\n destroy_();\n } catch (error) {\n captureCommitPhaseError(\n lastEffect,\n nearestMountedAncestor,\n error\n );\n }\n }\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n try {\n commitCallbacks(updateQueue, instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n var ref = current.ref;\n if (null !== ref) {\n switch (current.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = current.stateNode;\n break;\n case 30:\n instanceToUse = current.stateNode;\n break;\n default:\n instanceToUse = current.stateNode;\n }\n \"function\" === typeof ref\n ? (current.refCleanup = ref(instanceToUse))\n : (ref.current = instanceToUse);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n refCleanup();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error$144) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$144);\n }\n else ref.current = null;\n}\nfunction commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n a: switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n props.autoFocus && instance.focus();\n break a;\n case \"img\":\n props.src\n ? (instance.src = props.src)\n : props.srcSet && (instance.srcset = props.srcSet);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n var domElement = finishedWork.stateNode;\n updateProperties(domElement, finishedWork.type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n (27 === fiber.tag && isSingletonScope(fiber.type)) ||\n 4 === fiber.tag\n );\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(node, before)\n : ((before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(node),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (\n 4 !== tag &&\n (27 === tag &&\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (\n 4 !== tag &&\n (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nfunction commitHostSingletonAcquisition(finishedWork) {\n var singleton = finishedWork.stateNode,\n props = finishedWork.memoizedProps;\n try {\n for (\n var type = finishedWork.type, attributes = singleton.attributes;\n attributes.length;\n\n )\n singleton.removeAttributeNode(attributes[0]);\n setInitialProperties(singleton, type, props);\n singleton[internalInstanceKey] = finishedWork;\n singleton[internalPropsKey] = props;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$20) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1024) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n firstChild = nextEffect;\n focusNode = firstChild.alternate;\n root = firstChild.flags;\n switch (firstChild.tag) {\n case 0:\n break;\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (root & 1024) && null !== focusNode) {\n root = void 0;\n JSCompiler_temp = firstChild;\n anchorOffset = focusNode.memoizedProps;\n focusNode = focusNode.memoizedState;\n selection = JSCompiler_temp.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n JSCompiler_temp.type,\n anchorOffset,\n JSCompiler_temp.elementType === JSCompiler_temp.type\n );\n root = selection.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n focusNode\n );\n selection.__reactInternalSnapshotBeforeUpdate = root;\n } catch (error) {\n captureCommitPhaseError(\n JSCompiler_temp,\n JSCompiler_temp.return,\n error\n );\n }\n }\n break;\n case 3:\n if (0 !== (root & 1024))\n if (\n ((root = firstChild.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitHookEffectListMount(5, finishedWork);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n try {\n finishedRoot.componentDidUpdate(\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n } catch (error$143) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$143\n );\n }\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (\n flags & 64 &&\n ((finishedRoot = finishedWork.updateQueue), null !== finishedRoot)\n ) {\n current = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n current = finishedWork.child.stateNode;\n break;\n case 1:\n current = finishedWork.child.stateNode;\n }\n try {\n commitCallbacks(finishedRoot, current);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 27:\n null === current &&\n flags & 4 &&\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n flags & 64 &&\n ((finishedRoot = finishedWork.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated),\n null !== finishedRoot &&\n ((finishedWork = retryDehydratedSuspenseBoundary.bind(\n null,\n finishedWork\n )),\n registerSuspenseInstanceRetry(finishedRoot, finishedWork))));\n break;\n case 22:\n flags = null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!flags) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n prevProps = offscreenSubtreeIsHidden;\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden\n ? recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n )\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevProps;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n break;\n case 30:\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n isSingletonScope(deletedFiber.type) &&\n ((hostParent = deletedFiber.stateNode), (hostParentIsContainer = !1));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n releaseSingletonInstance(deletedFiber.stateNode);\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n (9 === hostParent.nodeType\n ? hostParent.body\n : \"HTML\" === hostParent.nodeName\n ? hostParent.ownerDocument.body\n : hostParent\n ).removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n clearSuspenseBoundary(\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot,\n deletedFiber.stateNode\n ),\n retryIfBlockedOn(finishedRoot))\n : clearSuspenseBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(formatProdErrorMessage(435, finishedWork.tag));\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n retryCache.has(wakeable) ||\n (retryCache.add(wakeable), wakeable.then(retry, retry));\n });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n if (isSingletonScope(parent.type)) {\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n }\n break;\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent) throw Error(formatProdErrorMessage(160));\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n root = childToDelete.alternate;\n null !== root && (root.return = null);\n childToDelete.return = null;\n }\n if (parentFiber.subtreeFlags & 13878)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork),\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((flags = finishedWork.callbacks),\n null !== flags &&\n ((current = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === current ? flags : current.concat(flags)))));\n break;\n case 26:\n var hoistableRoot = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4) {\n var currentResource = null !== current ? current.memoizedState : null;\n flags = finishedWork.memoizedState;\n if (null === current)\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n b: switch (flags) {\n case \"title\":\n currentResource =\n hoistableRoot.getElementsByTagName(\"title\")[0];\n if (\n !currentResource ||\n currentResource[internalHoistableMarker] ||\n currentResource[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" ===\n currentResource.namespaceURI ||\n currentResource.hasAttribute(\"itemprop\")\n )\n (currentResource = hoistableRoot.createElement(flags)),\n hoistableRoot.head.insertBefore(\n currentResource,\n hoistableRoot.querySelector(\"head > title\")\n );\n setInitialProperties(currentResource, flags, current);\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n hoistableRoot\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"href\") ===\n (null == current.href || \"\" === current.href\n ? null\n : current.href) &&\n currentResource.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n currentResource.getAttribute(\"title\") ===\n (null == current.title ? null : current.title) &&\n currentResource.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n hoistableRoot\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n currentResource.getAttribute(\"name\") ===\n (null == current.name ? null : current.name) &&\n currentResource.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n currentResource.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n currentResource.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n default:\n throw Error(formatProdErrorMessage(468, flags));\n }\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n );\n else\n currentResource !== flags\n ? (null === currentResource\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : currentResource.count--,\n null === flags\n ? mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n }\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n null !== current &&\n flags & 4 &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n hoistableRoot = finishedWork.stateNode;\n try {\n setTextContent(hoistableRoot, \"\");\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((hoistableRoot = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n hoistableRoot,\n null !== current ? current.memoizedProps : hoistableRoot\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n flags = finishedWork.memoizedProps;\n current = finishedWork.stateNode;\n try {\n current.nodeValue = flags;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n tagCaches = null;\n hoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = hoistableRoot;\n commitReconciliationEffects(finishedWork);\n if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n try {\n retryIfBlockedOn(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n hoistableRoot = null !== finishedWork.memoizedState;\n var wasHidden = null !== current && null !== current.memoizedState,\n prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || hoistableRoot;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n root = finishedWork.stateNode,\n root._visibility = hoistableRoot\n ? root._visibility & -2\n : root._visibility | 1,\n hoistableRoot &&\n (null === current ||\n wasHidden ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n current = null,\n root = finishedWork;\n ;\n\n ) {\n if (5 === root.tag || 26 === root.tag) {\n if (null === current) {\n wasHidden = current = root;\n try {\n if (((currentResource = wasHidden.stateNode), hoistableRoot))\n (maybeNodes = currentResource.style),\n \"function\" === typeof maybeNodes.setProperty\n ? maybeNodes.setProperty(\"display\", \"none\", \"important\")\n : (maybeNodes.display = \"none\");\n else {\n i = wasHidden.stateNode;\n var styleProp = wasHidden.memoizedProps.style,\n display =\n void 0 !== styleProp &&\n null !== styleProp &&\n styleProp.hasOwnProperty(\"display\")\n ? styleProp.display\n : null;\n i.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n wasHidden.stateNode.nodeValue = hoistableRoot\n ? \"\"\n : wasHidden.memoizedProps;\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork) break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 30:\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n for (\n var hostParentFiber, parentFiber = finishedWork.return;\n null !== parentFiber;\n\n ) {\n if (isHostParent(parentFiber)) {\n hostParentFiber = parentFiber;\n break;\n }\n parentFiber = parentFiber.return;\n }\n if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));\n switch (hostParentFiber.tag) {\n case 27:\n var parent = hostParentFiber.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent);\n break;\n case 5:\n var parent$145 = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (setTextContent(parent$145, \"\"), (hostParentFiber.flags &= -33));\n var before$146 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before$146, parent$145);\n break;\n case 3:\n case 4:\n var parent$147 = hostParentFiber.stateNode.containerInfo,\n before$148 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$148,\n parent$147\n );\n break;\n default:\n throw Error(formatProdErrorMessage(161));\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 27:\n releaseSingletonInstance(finishedWork.stateNode);\n case 26:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 30:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var current = parentFiber.alternate,\n finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork;\n finishedRoot = current.stateNode;\n if (\"function\" === typeof finishedRoot.componentDidMount)\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n current = finishedWork;\n finishedRoot = current.updateQueue;\n if (null !== finishedRoot) {\n var instance = current.stateNode;\n try {\n var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n finishedRoot < hiddenCallbacks.length;\n finishedRoot++\n )\n callCallback(hiddenCallbacks[finishedRoot], instance);\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && current.refCount++,\n null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 && commitHookEffectListMount(9, finishedWork);\n break;\n case 1:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 3:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n ((finishedRoot = null),\n null !== finishedWork.alternate &&\n (finishedRoot = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== finishedRoot &&\n (finishedWork.refCount++,\n null != finishedRoot && releaseCache(finishedRoot)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n finishedRoot = finishedWork.stateNode;\n try {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n id = _finishedWork$memoize2.id,\n onPostCommit = _finishedWork$memoize2.onPostCommit;\n \"function\" === typeof onPostCommit &&\n onPostCommit(\n id,\n null === finishedWork.alternate ? \"mount\" : \"update\",\n finishedRoot.passiveEffectDuration,\n -0\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 13:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n _finishedWork$memoize2 = finishedWork.stateNode;\n id = finishedWork.alternate;\n null !== finishedWork.memoizedState\n ? _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)\n : _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((_finishedWork$memoize2._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256)\n ));\n flags & 2048 && commitOffscreenPassiveMountEffects(id, finishedWork);\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 10256);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(8, finishedWork);\n break;\n case 23:\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? instance._visibility & 2\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((instance._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(parentFiber) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(fiber) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(fiber);\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(fiber);\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n recursivelyAccumulateSuspenseyCommit(fiber);\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(fiber),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(fiber));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(fiber);\n }\n}\nfunction detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 12:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n instance._visibility & 2 &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((instance._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n deletions = parentFiber;\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, deletions, deletions.return);\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n break;\n case 22:\n i = deletions.stateNode;\n i._visibility & 2 &&\n ((i._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(deletions));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n break;\n case 23:\n case 22:\n if (\n null !== fiber.memoizedState &&\n null !== fiber.memoizedState.cachePool\n ) {\n var cache = fiber.memoizedState.cachePool.pool;\n null != cache && cache.refCount++;\n }\n break;\n case 24:\n releaseCache(fiber.memoizedState.cache);\n }\n cache = fiber.child;\n if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n cache = nextEffect;\n var sibling = cache.sibling,\n returnFiber = cache.return;\n detachFiberAfterEffects(cache);\n if (cache === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n}\nvar DefaultAsyncDispatcher = {\n getCacheForType: function (resourceType) {\n var cache = readContext(CacheContext),\n cacheForType = cache.data.get(resourceType);\n void 0 === cacheForType &&\n ((cacheForType = resourceType()),\n cache.data.set(resourceType, cacheForType));\n return cacheForType;\n }\n },\n PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n workInProgressSuspendedReason = 0,\n workInProgressThrownValue = null,\n workInProgressRootDidSkipSuspendedSiblings = !1,\n workInProgressRootIsPrerendering = !1,\n workInProgressRootDidAttachPingListener = !1,\n entangledRenderLanes = 0,\n workInProgressRootExitStatus = 0,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressDeferredLane = 0,\n workInProgressSuspendedRetryLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1,\n globalMostRecentFallbackTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n pendingEffectsStatus = 0,\n pendingEffectsRoot = null,\n pendingFinishedWork = null,\n pendingEffectsLanes = 0,\n pendingEffectsRemainingLanes = 0,\n pendingPassiveTransitions = null,\n pendingRecoverableErrors = null,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null;\nfunction requestUpdateLane() {\n if (0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes)\n return workInProgressRootRenderLanes & -workInProgressRootRenderLanes;\n if (null !== ReactSharedInternals.T) {\n var actionScopeLane = currentEntangledLane;\n return 0 !== actionScopeLane ? actionScopeLane : requestTransitionLane();\n }\n return resolveUpdatePriority();\n}\nfunction requestDeferredLane() {\n 0 === workInProgressDeferredLane &&\n (workInProgressDeferredLane =\n 0 === (workInProgressRootRenderLanes & 536870912) || isHydrating\n ? claimNextTransitionLane()\n : 536870912);\n var suspenseHandler = suspenseHandlerStackCursor.current;\n null !== suspenseHandler && (suspenseHandler.flags |= 32);\n return workInProgressDeferredLane;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane) {\n if (\n (root === workInProgressRoot &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n prepareFreshStack(root, 0),\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n markRootUpdated$1(root, lane);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n )),\n ensureRootIsScheduled(root);\n}\nfunction performWorkOnRoot(root$jscomp$0, lanes, forceSync) {\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n var shouldTimeSlice =\n (!forceSync &&\n 0 === (lanes & 124) &&\n 0 === (lanes & root$jscomp$0.expiredLanes)) ||\n checkIfRootIsPrerendering(root$jscomp$0, lanes),\n exitStatus = shouldTimeSlice\n ? renderRootConcurrent(root$jscomp$0, lanes)\n : renderRootSync(root$jscomp$0, lanes, !0),\n renderWasConcurrent = shouldTimeSlice;\n do {\n if (0 === exitStatus) {\n workInProgressRootIsPrerendering &&\n !shouldTimeSlice &&\n markRootSuspended(root$jscomp$0, lanes, 0, !1);\n break;\n } else {\n forceSync = root$jscomp$0.current.alternate;\n if (\n renderWasConcurrent &&\n !isRenderConsistentWithExternalStores(forceSync)\n ) {\n exitStatus = renderRootSync(root$jscomp$0, lanes, !1);\n renderWasConcurrent = !1;\n continue;\n }\n if (2 === exitStatus) {\n renderWasConcurrent = lanes;\n if (root$jscomp$0.errorRecoveryDisabledLanes & renderWasConcurrent)\n var JSCompiler_inline_result = 0;\n else\n (JSCompiler_inline_result = root$jscomp$0.pendingLanes & -536870913),\n (JSCompiler_inline_result =\n 0 !== JSCompiler_inline_result\n ? JSCompiler_inline_result\n : JSCompiler_inline_result & 536870912\n ? 536870912\n : 0);\n if (0 !== JSCompiler_inline_result) {\n lanes = JSCompiler_inline_result;\n a: {\n var root = root$jscomp$0;\n exitStatus = workInProgressRootConcurrentErrors;\n var wasRootDehydrated = root.current.memoizedState.isDehydrated;\n wasRootDehydrated &&\n (prepareFreshStack(root, JSCompiler_inline_result).flags |= 256);\n JSCompiler_inline_result = renderRootSync(\n root,\n JSCompiler_inline_result,\n !1\n );\n if (2 !== JSCompiler_inline_result) {\n if (\n workInProgressRootDidAttachPingListener &&\n !wasRootDehydrated\n ) {\n root.errorRecoveryDisabledLanes |= renderWasConcurrent;\n workInProgressRootInterleavedUpdatedLanes |=\n renderWasConcurrent;\n exitStatus = 4;\n break a;\n }\n renderWasConcurrent = workInProgressRootRecoverableErrors;\n workInProgressRootRecoverableErrors = exitStatus;\n null !== renderWasConcurrent &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = renderWasConcurrent)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n renderWasConcurrent\n ));\n }\n exitStatus = JSCompiler_inline_result;\n }\n renderWasConcurrent = !1;\n if (2 !== exitStatus) continue;\n }\n }\n if (1 === exitStatus) {\n prepareFreshStack(root$jscomp$0, 0);\n markRootSuspended(root$jscomp$0, lanes, 0, !0);\n break;\n }\n a: {\n shouldTimeSlice = root$jscomp$0;\n renderWasConcurrent = exitStatus;\n switch (renderWasConcurrent) {\n case 0:\n case 1:\n throw Error(formatProdErrorMessage(345));\n case 4:\n if ((lanes & 4194048) !== lanes) break;\n case 6:\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n break a;\n case 2:\n workInProgressRootRecoverableErrors = null;\n break;\n case 3:\n case 5:\n break;\n default:\n throw Error(formatProdErrorMessage(329));\n }\n if (\n (lanes & 62914560) === lanes &&\n ((exitStatus = globalMostRecentFallbackTime + 300 - now()),\n 10 < exitStatus)\n ) {\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n if (0 !== getNextLanes(shouldTimeSlice, 0, !0)) break a;\n shouldTimeSlice.timeoutHandle = scheduleTimeout(\n commitRootWhenReady.bind(\n null,\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n 2,\n -0,\n 0\n ),\n exitStatus\n );\n break a;\n }\n commitRootWhenReady(\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n 0,\n -0,\n 0\n );\n }\n }\n break;\n } while (1);\n ensureRootIsScheduled(root$jscomp$0);\n}\nfunction commitRootWhenReady(\n root,\n finishedWork,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n) {\n root.timeoutHandle = -1;\n suspendedCommitReason = finishedWork.subtreeFlags;\n if (\n suspendedCommitReason & 8192 ||\n 16785408 === (suspendedCommitReason & 16785408)\n )\n if (\n ((suspendedState = { stylesheets: null, count: 0, unsuspend: noop }),\n accumulateSuspenseyCommitOnFiber(finishedWork),\n (suspendedCommitReason = waitForCommitToBeReady()),\n null !== suspendedCommitReason)\n ) {\n root.cancelPendingCommit = suspendedCommitReason(\n commitRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n exitStatus,\n 1,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);\n return;\n }\n commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n var tag = node.tag;\n if (\n (0 === tag || 11 === tag || 15 === tag) &&\n node.flags & 16384 &&\n ((tag = node.updateQueue),\n null !== tag && ((tag = tag.stores), null !== tag))\n )\n for (var i = 0; i < tag.length; i++) {\n var check = tag[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n tag = node.child;\n if (node.subtreeFlags & 16384 && null !== tag)\n (tag.return = node), (node = tag);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended(\n root,\n suspendedLanes,\n spawnedLane,\n didAttemptEntireTree\n) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n didAttemptEntireTree && (root.warmLanes |= suspendedLanes);\n didAttemptEntireTree = root.expirationTimes;\n for (var lanes = suspendedLanes; 0 < lanes; ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6;\n didAttemptEntireTree[index$6] = -1;\n lanes &= ~lane;\n }\n 0 !== spawnedLane &&\n markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);\n}\nfunction flushSyncWork$1() {\n return 0 === (executionContext & 6)\n ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)\n : !0;\n}\nfunction resetWorkInProgressStack() {\n if (null !== workInProgress) {\n if (0 === workInProgressSuspendedReason)\n var interruptedWork = workInProgress.return;\n else\n (interruptedWork = workInProgress),\n (lastContextDependency = currentlyRenderingFiber$1 = null),\n resetHooksOnUnwind(interruptedWork),\n (thenableState$1 = null),\n (thenableIndexCounter$1 = 0),\n (interruptedWork = workInProgress);\n for (; null !== interruptedWork; )\n unwindInterruptedWork(interruptedWork.alternate, interruptedWork),\n (interruptedWork = interruptedWork.return);\n workInProgress = null;\n }\n}\nfunction prepareFreshStack(root, lanes) {\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n timeoutHandle = root.cancelPendingCommit;\n null !== timeoutHandle &&\n ((root.cancelPendingCommit = null), timeoutHandle());\n resetWorkInProgressStack();\n workInProgressRoot = root;\n workInProgress = timeoutHandle = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = lanes;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n workInProgressRootDidSkipSuspendedSiblings = !1;\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);\n workInProgressRootDidAttachPingListener = !1;\n workInProgressSuspendedRetryLanes =\n workInProgressDeferredLane =\n workInProgressRootPingedLanes =\n workInProgressRootInterleavedUpdatedLanes =\n workInProgressRootSkippedLanes =\n workInProgressRootExitStatus =\n 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =\n null;\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1;\n 0 !== (lanes & 8) && (lanes |= lanes & 32);\n var allEntangledLanes = root.entangledLanes;\n if (0 !== allEntangledLanes)\n for (\n root = root.entanglements, allEntangledLanes &= lanes;\n 0 < allEntangledLanes;\n\n ) {\n var index$4 = 31 - clz32(allEntangledLanes),\n lane = 1 << index$4;\n lanes |= root[index$4];\n allEntangledLanes &= ~lane;\n }\n entangledRenderLanes = lanes;\n finishQueueingConcurrentUpdates();\n return timeoutHandle;\n}\nfunction handleThrow(root, thrownValue) {\n currentlyRenderingFiber = null;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n thrownValue === SuspenseException || thrownValue === SuspenseActionException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 3))\n : thrownValue === SuspenseyCommitException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 4))\n : (workInProgressSuspendedReason =\n thrownValue === SelectiveHydrationException\n ? 8\n : null !== thrownValue &&\n \"object\" === typeof thrownValue &&\n \"function\" === typeof thrownValue.then\n ? 6\n : 1);\n workInProgressThrownValue = thrownValue;\n null === workInProgress &&\n ((workInProgressRootExitStatus = 1),\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n ));\n}\nfunction shouldRemainOnPreviousScreen() {\n var handler = suspenseHandlerStackCursor.current;\n return null === handler\n ? !0\n : (workInProgressRootRenderLanes & 4194048) ===\n workInProgressRootRenderLanes\n ? null === shellBoundary\n ? !0\n : !1\n : (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n ? handler === shellBoundary\n : !1;\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction pushAsyncDispatcher() {\n var prevAsyncDispatcher = ReactSharedInternals.A;\n ReactSharedInternals.A = DefaultAsyncDispatcher;\n return prevAsyncDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n workInProgressRootExitStatus = 4;\n workInProgressRootDidSkipSuspendedSiblings ||\n ((workInProgressRootRenderLanes & 4194048) !==\n workInProgressRootRenderLanes &&\n null !== suspenseHandlerStackCursor.current) ||\n (workInProgressRootIsPrerendering = !0);\n (0 === (workInProgressRootSkippedLanes & 134217727) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||\n null === workInProgressRoot ||\n markRootSuspended(\n workInProgressRoot,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n}\nfunction renderRootSync(root, lanes, shouldYieldForPrerendering) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n lanes = !1;\n var exitStatus = workInProgressRootExitStatus;\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n var unitOfWork = workInProgress,\n thrownValue = workInProgressThrownValue;\n switch (workInProgressSuspendedReason) {\n case 8:\n resetWorkInProgressStack();\n exitStatus = 6;\n break a;\n case 3:\n case 2:\n case 9:\n case 6:\n null === suspenseHandlerStackCursor.current && (lanes = !0);\n var reason = workInProgressSuspendedReason;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n if (\n shouldYieldForPrerendering &&\n workInProgressRootIsPrerendering\n ) {\n exitStatus = 0;\n break a;\n }\n break;\n default:\n (reason = workInProgressSuspendedReason),\n (workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n }\n }\n workLoopSync();\n exitStatus = workInProgressRootExitStatus;\n break;\n } catch (thrownValue$168) {\n handleThrow(root, thrownValue$168);\n }\n while (1);\n lanes && root.shellSuspendCounter++;\n lastContextDependency = currentlyRenderingFiber$1 = null;\n executionContext = prevExecutionContext;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n null === workInProgress &&\n ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n finishQueueingConcurrentUpdates());\n return exitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes\n ? ((workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, lanes))\n : (workInProgressRootIsPrerendering = checkIfRootIsPrerendering(\n root,\n lanes\n ));\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n lanes = workInProgress;\n var thrownValue = workInProgressThrownValue;\n b: switch (workInProgressSuspendedReason) {\n case 1:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 1);\n break;\n case 2:\n case 9:\n if (isThenableResolved(thrownValue)) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n replaySuspendedUnitOfWork(lanes);\n break;\n }\n lanes = function () {\n (2 !== workInProgressSuspendedReason &&\n 9 !== workInProgressSuspendedReason) ||\n workInProgressRoot !== root ||\n (workInProgressSuspendedReason = 7);\n ensureRootIsScheduled(root);\n };\n thrownValue.then(lanes, lanes);\n break a;\n case 3:\n workInProgressSuspendedReason = 7;\n break a;\n case 4:\n workInProgressSuspendedReason = 5;\n break a;\n case 7:\n isThenableResolved(thrownValue)\n ? ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n replaySuspendedUnitOfWork(lanes))\n : ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 7));\n break;\n case 5:\n var resource = null;\n switch (workInProgress.tag) {\n case 26:\n resource = workInProgress.memoizedState;\n case 5:\n case 27:\n var hostFiber = workInProgress;\n if (\n resource\n ? preloadResource(resource)\n : hostFiber.stateNode.complete\n ) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n var sibling = hostFiber.sibling;\n if (null !== sibling) workInProgress = sibling;\n else {\n var returnFiber = hostFiber.return;\n null !== returnFiber\n ? ((workInProgress = returnFiber),\n completeUnitOfWork(returnFiber))\n : (workInProgress = null);\n }\n break b;\n }\n }\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 5);\n break;\n case 6:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 6);\n break;\n case 8:\n resetWorkInProgressStack();\n workInProgressRootExitStatus = 6;\n break a;\n default:\n throw Error(formatProdErrorMessage(462));\n }\n }\n workLoopConcurrentByScheduler();\n break;\n } catch (thrownValue$170) {\n handleThrow(root, thrownValue$170);\n }\n while (1);\n lastContextDependency = currentlyRenderingFiber$1 = null;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n executionContext = prevExecutionContext;\n if (null !== workInProgress) return 0;\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n finishQueueingConcurrentUpdates();\n return workInProgressRootExitStatus;\n}\nfunction workLoopConcurrentByScheduler() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork(unitOfWork.alternate, unitOfWork, entangledRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction replaySuspendedUnitOfWork(unitOfWork) {\n var next = unitOfWork;\n var current = next.alternate;\n switch (next.tag) {\n case 15:\n case 0:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type,\n void 0,\n workInProgressRootRenderLanes\n );\n break;\n case 11:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type.render,\n next.ref,\n workInProgressRootRenderLanes\n );\n break;\n case 5:\n resetHooksOnUnwind(next);\n default:\n unwindInterruptedWork(current, next),\n (next = workInProgress =\n resetWorkInProgress(next, entangledRenderLanes)),\n (next = beginWork(current, next, entangledRenderLanes));\n }\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction throwAndUnwindWorkLoop(\n root,\n unitOfWork,\n thrownValue,\n suspendedReason\n) {\n lastContextDependency = currentlyRenderingFiber$1 = null;\n resetHooksOnUnwind(unitOfWork);\n thenableState$1 = null;\n thenableIndexCounter$1 = 0;\n var returnFiber = unitOfWork.return;\n try {\n if (\n throwException(\n root,\n returnFiber,\n unitOfWork,\n thrownValue,\n workInProgressRootRenderLanes\n )\n ) {\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n } catch (error) {\n if (null !== returnFiber) throw ((workInProgress = returnFiber), error);\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n if (unitOfWork.flags & 32768) {\n if (isHydrating || 1 === suspendedReason) root = !0;\n else if (\n workInProgressRootIsPrerendering ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n )\n root = !1;\n else if (\n ((workInProgressRootDidSkipSuspendedSiblings = root = !0),\n 2 === suspendedReason ||\n 9 === suspendedReason ||\n 3 === suspendedReason ||\n 6 === suspendedReason)\n )\n (suspendedReason = suspenseHandlerStackCursor.current),\n null !== suspendedReason &&\n 13 === suspendedReason.tag &&\n (suspendedReason.flags |= 16384);\n unwindUnitOfWork(unitOfWork, root);\n } else completeUnitOfWork(unitOfWork);\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n if (0 !== (completedWork.flags & 32768)) {\n unwindUnitOfWork(\n completedWork,\n workInProgressRootDidSkipSuspendedSiblings\n );\n return;\n }\n unitOfWork = completedWork.return;\n var next = completeWork(\n completedWork.alternate,\n completedWork,\n entangledRenderLanes\n );\n if (null !== next) {\n workInProgress = next;\n return;\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction unwindUnitOfWork(unitOfWork, skipSiblings) {\n do {\n var next = unwindWork(unitOfWork.alternate, unitOfWork);\n if (null !== next) {\n next.flags &= 32767;\n workInProgress = next;\n return;\n }\n next = unitOfWork.return;\n null !== next &&\n ((next.flags |= 32768), (next.subtreeFlags = 0), (next.deletions = null));\n if (\n !skipSiblings &&\n ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)\n ) {\n workInProgress = unitOfWork;\n return;\n }\n workInProgress = unitOfWork = next;\n } while (null !== unitOfWork);\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n}\nfunction commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n root.cancelPendingCommit = null;\n do flushPendingEffects();\n while (0 !== pendingEffectsStatus);\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n if (null !== finishedWork) {\n if (finishedWork === root.current) throw Error(formatProdErrorMessage(177));\n didIncludeRenderPhaseUpdate = finishedWork.lanes | finishedWork.childLanes;\n didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? ((root.callbackNode = null),\n (root.callbackPriority = 0),\n scheduleCallback$1(NormalPriority$1, function () {\n flushPassiveEffects(!0);\n return null;\n }))\n : ((root.callbackNode = null), (root.callbackPriority = 0));\n recoverableErrors = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {\n recoverableErrors = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n transitions = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n spawnedLane = executionContext;\n executionContext |= 4;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = spawnedLane),\n (ReactDOMSharedInternals.p = transitions),\n (ReactSharedInternals.T = recoverableErrors);\n }\n }\n pendingEffectsStatus = 1;\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n }\n}\nfunction flushMutationEffects() {\n if (1 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || rootMutationHasEffect) {\n rootMutationHasEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitMutationEffectsOnFiber(finishedWork, root);\n var priorSelectionInformation = selectionInformation,\n curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = priorSelectionInformation.focusedElem,\n priorSelectionRange = priorSelectionInformation.selectionRange;\n if (\n curFocusedElem !== priorFocusedElem &&\n priorFocusedElem &&\n priorFocusedElem.ownerDocument &&\n containsNode(\n priorFocusedElem.ownerDocument.documentElement,\n priorFocusedElem\n )\n ) {\n if (\n null !== priorSelectionRange &&\n hasSelectionCapabilities(priorFocusedElem)\n ) {\n var start = priorSelectionRange.start,\n end = priorSelectionRange.end;\n void 0 === end && (end = start);\n if (\"selectionStart\" in priorFocusedElem)\n (priorFocusedElem.selectionStart = start),\n (priorFocusedElem.selectionEnd = Math.min(\n end,\n priorFocusedElem.value.length\n ));\n else {\n var doc = priorFocusedElem.ownerDocument || document,\n win = (doc && doc.defaultView) || window;\n if (win.getSelection) {\n var selection = win.getSelection(),\n length = priorFocusedElem.textContent.length,\n start$jscomp$0 = Math.min(priorSelectionRange.start, length),\n end$jscomp$0 =\n void 0 === priorSelectionRange.end\n ? start$jscomp$0\n : Math.min(priorSelectionRange.end, length);\n !selection.extend &&\n start$jscomp$0 > end$jscomp$0 &&\n ((curFocusedElem = end$jscomp$0),\n (end$jscomp$0 = start$jscomp$0),\n (start$jscomp$0 = curFocusedElem));\n var startMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n start$jscomp$0\n ),\n endMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n end$jscomp$0\n );\n if (\n startMarker &&\n endMarker &&\n (1 !== selection.rangeCount ||\n selection.anchorNode !== startMarker.node ||\n selection.anchorOffset !== startMarker.offset ||\n selection.focusNode !== endMarker.node ||\n selection.focusOffset !== endMarker.offset)\n ) {\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n start$jscomp$0 > end$jscomp$0\n ? (selection.addRange(range),\n selection.extend(endMarker.node, endMarker.offset))\n : (range.setEnd(endMarker.node, endMarker.offset),\n selection.addRange(range));\n }\n }\n }\n }\n doc = [];\n for (\n selection = priorFocusedElem;\n (selection = selection.parentNode);\n\n )\n 1 === selection.nodeType &&\n doc.push({\n element: selection,\n left: selection.scrollLeft,\n top: selection.scrollTop\n });\n \"function\" === typeof priorFocusedElem.focus &&\n priorFocusedElem.focus();\n for (\n priorFocusedElem = 0;\n priorFocusedElem < doc.length;\n priorFocusedElem++\n ) {\n var info = doc[priorFocusedElem];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n _enabled = !!eventsEnabled;\n selectionInformation = eventsEnabled = null;\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootMutationHasEffect);\n }\n }\n root.current = finishedWork;\n pendingEffectsStatus = 2;\n }\n}\nfunction flushLayoutEffects() {\n if (2 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772);\n if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {\n rootHasLayoutEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitLayoutEffectOnFiber(root, finishedWork.alternate, finishedWork);\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootHasLayoutEffect);\n }\n }\n pendingEffectsStatus = 3;\n }\n}\nfunction flushSpawnedWork() {\n if (4 === pendingEffectsStatus || 3 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n requestPaint();\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n recoverableErrors = pendingRecoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? (pendingEffectsStatus = 5)\n : ((pendingEffectsStatus = 0),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(root, root.pendingLanes));\n var remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n lanesToEventPriority(lanes);\n finishedWork = finishedWork.stateNode;\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n finishedWork,\n void 0,\n 128 === (finishedWork.current.flags & 128)\n );\n } catch (err) {}\n if (null !== recoverableErrors) {\n finishedWork = ReactSharedInternals.T;\n remainingLanes = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n ReactSharedInternals.T = null;\n try {\n for (\n var onRecoverableError = root.onRecoverableError, i = 0;\n i < recoverableErrors.length;\n i++\n ) {\n var recoverableError = recoverableErrors[i];\n onRecoverableError(recoverableError.value, {\n componentStack: recoverableError.stack\n });\n }\n } finally {\n (ReactSharedInternals.T = finishedWork),\n (ReactDOMSharedInternals.p = remainingLanes);\n }\n }\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(root);\n remainingLanes = root.pendingLanes;\n 0 !== (lanes & 4194090) && 0 !== (remainingLanes & 42)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncWorkAcrossRoots_impl(0, !1);\n }\n}\nfunction releaseRootPooledCache(root, remainingLanes) {\n 0 === (root.pooledCacheLanes &= remainingLanes) &&\n ((remainingLanes = root.pooledCache),\n null != remainingLanes &&\n ((root.pooledCache = null), releaseCache(remainingLanes)));\n}\nfunction flushPendingEffects(wasDelayedCommit) {\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n return flushPassiveEffects(wasDelayedCommit);\n}\nfunction flushPassiveEffects() {\n if (5 !== pendingEffectsStatus) return !1;\n var root = pendingEffectsRoot,\n remainingLanes = pendingEffectsRemainingLanes;\n pendingEffectsRemainingLanes = 0;\n var renderPriority = lanesToEventPriority(pendingEffectsLanes),\n prevTransition = ReactSharedInternals.T,\n previousPriority = ReactDOMSharedInternals.p;\n try {\n ReactDOMSharedInternals.p = 32 > renderPriority ? 32 : renderPriority;\n ReactSharedInternals.T = null;\n renderPriority = pendingPassiveTransitions;\n pendingPassiveTransitions = null;\n var root$jscomp$0 = pendingEffectsRoot,\n lanes = pendingEffectsLanes;\n pendingEffectsStatus = 0;\n pendingFinishedWork = pendingEffectsRoot = null;\n pendingEffectsLanes = 0;\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(331));\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n commitPassiveUnmountOnFiber(root$jscomp$0.current);\n commitPassiveMountOnFiber(\n root$jscomp$0,\n root$jscomp$0.current,\n lanes,\n renderPriority\n );\n executionContext = prevExecutionContext;\n flushSyncWorkAcrossRoots_impl(0, !1);\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, root$jscomp$0);\n } catch (err) {}\n return !0;\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition),\n releaseRootPooledCache(root, remainingLanes);\n }\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);\n null !== rootFiber &&\n (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (; null !== nearestMountedAncestor; ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n error = createClassErrorUpdate(2);\n instance = enqueueUpdate(nearestMountedAncestor, error, 2);\n null !== instance &&\n (initializeClassErrorUpdate(\n error,\n instance,\n nearestMountedAncestor,\n sourceFiber\n ),\n markRootUpdated$1(instance, 2),\n ensureRootIsScheduled(instance));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n ((workInProgressRootDidAttachPingListener = !0),\n threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n root.warmLanes &= ~pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes &&\n 300 > now() - globalMostRecentFallbackTime)\n ? 0 === (executionContext & 2) && prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes),\n workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&\n (workInProgressSuspendedRetryLanes = 0));\n ensureRootIsScheduled(root);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane && (retryLane = claimNextRetryLane());\n boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated$1(boundaryFiber, retryLane),\n ensureRootIsScheduled(boundaryFiber));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n case 22:\n retryCache = boundaryFiber.stateNode._retryCache;\n break;\n default:\n throw Error(formatProdErrorMessage(314));\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback$3(priorityLevel, callback);\n}\nvar firstScheduledRoot = null,\n lastScheduledRoot = null,\n didScheduleMicrotask = !1,\n mightHavePendingSyncWork = !1,\n isFlushingWork = !1,\n currentEventTransitionLane = 0;\nfunction ensureRootIsScheduled(root) {\n root !== lastScheduledRoot &&\n null === root.next &&\n (null === lastScheduledRoot\n ? (firstScheduledRoot = lastScheduledRoot = root)\n : (lastScheduledRoot = lastScheduledRoot.next = root));\n mightHavePendingSyncWork = !0;\n didScheduleMicrotask ||\n ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());\n}\nfunction flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {\n if (!isFlushingWork && mightHavePendingSyncWork) {\n isFlushingWork = !0;\n do {\n var didPerformSomeWork = !1;\n for (var root$175 = firstScheduledRoot; null !== root$175; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root$175.pendingLanes;\n if (0 === pendingLanes) var JSCompiler_inline_result = 0;\n else {\n var suspendedLanes = root$175.suspendedLanes,\n pingedLanes = root$175.pingedLanes;\n JSCompiler_inline_result =\n (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;\n JSCompiler_inline_result &=\n pendingLanes & ~(suspendedLanes & ~pingedLanes);\n JSCompiler_inline_result =\n JSCompiler_inline_result & 201326741\n ? (JSCompiler_inline_result & 201326741) | 1\n : JSCompiler_inline_result\n ? JSCompiler_inline_result | 2\n : 0;\n }\n 0 !== JSCompiler_inline_result &&\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$175, JSCompiler_inline_result));\n } else\n (JSCompiler_inline_result = workInProgressRootRenderLanes),\n (JSCompiler_inline_result = getNextLanes(\n root$175,\n root$175 === workInProgressRoot ? JSCompiler_inline_result : 0,\n null !== root$175.cancelPendingCommit ||\n -1 !== root$175.timeoutHandle\n )),\n 0 === (JSCompiler_inline_result & 3) ||\n checkIfRootIsPrerendering(root$175, JSCompiler_inline_result) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$175, JSCompiler_inline_result));\n root$175 = root$175.next;\n }\n } while (didPerformSomeWork);\n isFlushingWork = !1;\n }\n}\nfunction processRootScheduleInImmediateTask() {\n processRootScheduleInMicrotask();\n}\nfunction processRootScheduleInMicrotask() {\n mightHavePendingSyncWork = didScheduleMicrotask = !1;\n var syncTransitionLanes = 0;\n 0 !== currentEventTransitionLane &&\n (shouldAttemptEagerTransition() &&\n (syncTransitionLanes = currentEventTransitionLane),\n (currentEventTransitionLane = 0));\n for (\n var currentTime = now(), prev = null, root = firstScheduledRoot;\n null !== root;\n\n ) {\n var next = root.next,\n nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);\n if (0 === nextLanes)\n (root.next = null),\n null === prev ? (firstScheduledRoot = next) : (prev.next = next),\n null === next && (lastScheduledRoot = prev);\n else if (\n ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))\n )\n mightHavePendingSyncWork = !0;\n root = next;\n }\n (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus) ||\n flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);\n}\nfunction scheduleTaskForRootDuringMicrotask(root, currentTime) {\n for (\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes & -62914561;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n currentTime = workInProgressRoot;\n suspendedLanes = workInProgressRootRenderLanes;\n suspendedLanes = getNextLanes(\n root,\n root === currentTime ? suspendedLanes : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n pingedLanes = root.callbackNode;\n if (\n 0 === suspendedLanes ||\n (root === currentTime &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n return (\n null !== pingedLanes &&\n null !== pingedLanes &&\n cancelCallback$1(pingedLanes),\n (root.callbackNode = null),\n (root.callbackPriority = 0)\n );\n if (\n 0 === (suspendedLanes & 3) ||\n checkIfRootIsPrerendering(root, suspendedLanes)\n ) {\n currentTime = suspendedLanes & -suspendedLanes;\n if (currentTime === root.callbackPriority) return currentTime;\n null !== pingedLanes && cancelCallback$1(pingedLanes);\n switch (lanesToEventPriority(suspendedLanes)) {\n case 2:\n case 8:\n suspendedLanes = UserBlockingPriority;\n break;\n case 32:\n suspendedLanes = NormalPriority$1;\n break;\n case 268435456:\n suspendedLanes = IdlePriority;\n break;\n default:\n suspendedLanes = NormalPriority$1;\n }\n pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);\n suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes);\n root.callbackPriority = currentTime;\n root.callbackNode = suspendedLanes;\n return currentTime;\n }\n null !== pingedLanes && null !== pingedLanes && cancelCallback$1(pingedLanes);\n root.callbackPriority = 2;\n root.callbackNode = null;\n return 2;\n}\nfunction performWorkOnRootViaSchedulerTask(root, didTimeout) {\n if (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus)\n return (root.callbackNode = null), (root.callbackPriority = 0), null;\n var originalCallbackNode = root.callbackNode;\n if (flushPendingEffects(!0) && root.callbackNode !== originalCallbackNode)\n return null;\n var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes;\n workInProgressRootRenderLanes$jscomp$0 = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes$jscomp$0 : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n if (0 === workInProgressRootRenderLanes$jscomp$0) return null;\n performWorkOnRoot(root, workInProgressRootRenderLanes$jscomp$0, didTimeout);\n scheduleTaskForRootDuringMicrotask(root, now());\n return null != root.callbackNode && root.callbackNode === originalCallbackNode\n ? performWorkOnRootViaSchedulerTask.bind(null, root)\n : null;\n}\nfunction performSyncWorkOnRoot(root, lanes) {\n if (flushPendingEffects()) return null;\n performWorkOnRoot(root, lanes, !0);\n}\nfunction scheduleImmediateRootScheduleTask() {\n scheduleMicrotask(function () {\n 0 !== (executionContext & 6)\n ? scheduleCallback$3(\n ImmediatePriority,\n processRootScheduleInImmediateTask\n )\n : processRootScheduleInMicrotask();\n });\n}\nfunction requestTransitionLane() {\n 0 === currentEventTransitionLane &&\n (currentEventTransitionLane = claimNextTransitionLane());\n return currentEventTransitionLane;\n}\nfunction coerceFormActionProp(actionProp) {\n return null == actionProp ||\n \"symbol\" === typeof actionProp ||\n \"boolean\" === typeof actionProp\n ? null\n : \"function\" === typeof actionProp\n ? actionProp\n : sanitizeURL(\"\" + actionProp);\n}\nfunction createFormDataWithSubmitter(form, submitter) {\n var temp = submitter.ownerDocument.createElement(\"input\");\n temp.name = submitter.name;\n temp.value = submitter.value;\n form.id && temp.setAttribute(\"form\", form.id);\n submitter.parentNode.insertBefore(temp, submitter);\n form = new FormData(form);\n temp.parentNode.removeChild(temp);\n return form;\n}\nfunction extractEvents$1(\n dispatchQueue,\n domEventName,\n maybeTargetInst,\n nativeEvent,\n nativeEventTarget\n) {\n if (\n \"submit\" === domEventName &&\n maybeTargetInst &&\n maybeTargetInst.stateNode === nativeEventTarget\n ) {\n var action = coerceFormActionProp(\n (nativeEventTarget[internalPropsKey] || null).action\n ),\n submitter = nativeEvent.submitter;\n submitter &&\n ((domEventName = (domEventName = submitter[internalPropsKey] || null)\n ? coerceFormActionProp(domEventName.formAction)\n : submitter.getAttribute(\"formAction\")),\n null !== domEventName && ((action = domEventName), (submitter = null)));\n var event = new SyntheticEvent(\n \"action\",\n \"action\",\n null,\n nativeEvent,\n nativeEventTarget\n );\n dispatchQueue.push({\n event: event,\n listeners: [\n {\n instance: null,\n listener: function () {\n if (nativeEvent.defaultPrevented) {\n if (0 !== currentEventTransitionLane) {\n var formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget);\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n null,\n formData\n );\n }\n } else\n \"function\" === typeof action &&\n (event.preventDefault(),\n (formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget)),\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n action,\n formData\n ));\n },\n currentTarget: nativeEventTarget\n }\n ]\n });\n }\n}\nfor (\n var i$jscomp$inline_1526 = 0;\n i$jscomp$inline_1526 < simpleEventPluginEvents.length;\n i$jscomp$inline_1526++\n) {\n var eventName$jscomp$inline_1527 =\n simpleEventPluginEvents[i$jscomp$inline_1526],\n domEventName$jscomp$inline_1528 =\n eventName$jscomp$inline_1527.toLowerCase(),\n capitalizedEvent$jscomp$inline_1529 =\n eventName$jscomp$inline_1527[0].toUpperCase() +\n eventName$jscomp$inline_1527.slice(1);\n registerSimpleEvent(\n domEventName$jscomp$inline_1528,\n \"on\" + capitalizedEvent$jscomp$inline_1529\n );\n}\nregisterSimpleEvent(ANIMATION_END, \"onAnimationEnd\");\nregisterSimpleEvent(ANIMATION_ITERATION, \"onAnimationIteration\");\nregisterSimpleEvent(ANIMATION_START, \"onAnimationStart\");\nregisterSimpleEvent(\"dblclick\", \"onDoubleClick\");\nregisterSimpleEvent(\"focusin\", \"onFocus\");\nregisterSimpleEvent(\"focusout\", \"onBlur\");\nregisterSimpleEvent(TRANSITION_RUN, \"onTransitionRun\");\nregisterSimpleEvent(TRANSITION_START, \"onTransitionStart\");\nregisterSimpleEvent(TRANSITION_CANCEL, \"onTransitionCancel\");\nregisterSimpleEvent(TRANSITION_END, \"onTransitionEnd\");\nregisterDirectEvent(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nregisterDirectEvent(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nregisterTwoPhaseEvent(\n \"onChange\",\n \"change click focusin focusout input keydown keyup selectionchange\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onSelect\",\n \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\n \" \"\n )\n);\nregisterTwoPhaseEvent(\"onBeforeInput\", [\n \"compositionend\",\n \"keypress\",\n \"textInput\",\n \"paste\"\n]);\nregisterTwoPhaseEvent(\n \"onCompositionEnd\",\n \"compositionend focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionStart\",\n \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionUpdate\",\n \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \")\n);\nvar mediaEventTypes =\n \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\n \" \"\n ),\n nonDelegatedEvents = new Set(\n \"beforetoggle cancel close invalid load scroll scrollend toggle\"\n .split(\" \")\n .concat(mediaEventTypes)\n );\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n eventSystemFlags = 0 !== (eventSystemFlags & 4);\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event;\n _dispatchQueue$i = _dispatchQueue$i.listeners;\n a: {\n var previousInstance = void 0;\n if (eventSystemFlags)\n for (\n var i$jscomp$0 = _dispatchQueue$i.length - 1;\n 0 <= i$jscomp$0;\n i$jscomp$0--\n ) {\n var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n else\n for (\n i$jscomp$0 = 0;\n i$jscomp$0 < _dispatchQueue$i.length;\n i$jscomp$0++\n ) {\n _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];\n instance = _dispatchListeners$i.instance;\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n }\n }\n}\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n var JSCompiler_inline_result = targetElement[internalEventHandlersKey];\n void 0 === JSCompiler_inline_result &&\n (JSCompiler_inline_result = targetElement[internalEventHandlersKey] =\n new Set());\n var listenerSetKey = domEventName + \"__bubble\";\n JSCompiler_inline_result.has(listenerSetKey) ||\n (addTrappedEventListener(targetElement, domEventName, 2, !1),\n JSCompiler_inline_result.add(listenerSetKey));\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n var eventSystemFlags = 0;\n isCapturePhaseListener && (eventSystemFlags |= 4);\n addTrappedEventListener(\n target,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n );\n}\nvar listeningMarker = \"_reactListening\" + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n if (!rootContainerElement[listeningMarker]) {\n rootContainerElement[listeningMarker] = !0;\n allNativeEvents.forEach(function (domEventName) {\n \"selectionchange\" !== domEventName &&\n (nonDelegatedEvents.has(domEventName) ||\n listenToNativeEvent(domEventName, !1, rootContainerElement),\n listenToNativeEvent(domEventName, !0, rootContainerElement));\n });\n var ownerDocument =\n 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n null === ownerDocument ||\n ownerDocument[listeningMarker] ||\n ((ownerDocument[listeningMarker] = !0),\n listenToNativeEvent(\"selectionchange\", !1, ownerDocument));\n }\n}\nfunction addTrappedEventListener(\n targetContainer,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n) {\n switch (getEventPriority(domEventName)) {\n case 2:\n var listenerWrapper = dispatchDiscreteEvent;\n break;\n case 8:\n listenerWrapper = dispatchContinuousEvent;\n break;\n default:\n listenerWrapper = dispatchEvent;\n }\n eventSystemFlags = listenerWrapper.bind(\n null,\n domEventName,\n eventSystemFlags,\n targetContainer\n );\n listenerWrapper = void 0;\n !passiveBrowserEventsSupported ||\n (\"touchstart\" !== domEventName &&\n \"touchmove\" !== domEventName &&\n \"wheel\" !== domEventName) ||\n (listenerWrapper = !0);\n isCapturePhaseListener\n ? void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n capture: !0,\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)\n : void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !1);\n}\nfunction dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n targetInst$jscomp$0,\n targetContainer\n) {\n var ancestorInst = targetInst$jscomp$0;\n if (\n 0 === (eventSystemFlags & 1) &&\n 0 === (eventSystemFlags & 2) &&\n null !== targetInst$jscomp$0\n )\n a: for (;;) {\n if (null === targetInst$jscomp$0) return;\n var nodeTag = targetInst$jscomp$0.tag;\n if (3 === nodeTag || 4 === nodeTag) {\n var container = targetInst$jscomp$0.stateNode.containerInfo;\n if (container === targetContainer) break;\n if (4 === nodeTag)\n for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {\n var grandTag = nodeTag.tag;\n if (\n (3 === grandTag || 4 === grandTag) &&\n nodeTag.stateNode.containerInfo === targetContainer\n )\n return;\n nodeTag = nodeTag.return;\n }\n for (; null !== container; ) {\n nodeTag = getClosestInstanceFromNode(container);\n if (null === nodeTag) return;\n grandTag = nodeTag.tag;\n if (\n 5 === grandTag ||\n 6 === grandTag ||\n 26 === grandTag ||\n 27 === grandTag\n ) {\n targetInst$jscomp$0 = ancestorInst = nodeTag;\n continue a;\n }\n container = container.parentNode;\n }\n }\n targetInst$jscomp$0 = targetInst$jscomp$0.return;\n }\n batchedUpdates$1(function () {\n var targetInst = ancestorInst,\n nativeEventTarget = getEventTarget(nativeEvent),\n dispatchQueue = [];\n a: {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n if (void 0 !== reactName) {\n var SyntheticEventCtor = SyntheticEvent,\n reactEventType = domEventName;\n switch (domEventName) {\n case \"keypress\":\n if (0 === getEventCharCode(nativeEvent)) break a;\n case \"keydown\":\n case \"keyup\":\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n case \"focusin\":\n reactEventType = \"focus\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"focusout\":\n reactEventType = \"blur\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"click\":\n if (2 === nativeEvent.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n case \"scroll\":\n case \"scrollend\":\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n case \"wheel\":\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n case \"toggle\":\n case \"beforetoggle\":\n SyntheticEventCtor = SyntheticToggleEvent;\n }\n var inCapturePhase = 0 !== (eventSystemFlags & 4),\n accumulateTargetOnly =\n !inCapturePhase &&\n (\"scroll\" === domEventName || \"scrollend\" === domEventName),\n reactEventName = inCapturePhase\n ? null !== reactName\n ? reactName + \"Capture\"\n : null\n : reactName;\n inCapturePhase = [];\n for (\n var instance = targetInst, lastHostComponent;\n null !== instance;\n\n ) {\n var _instance = instance;\n lastHostComponent = _instance.stateNode;\n _instance = _instance.tag;\n (5 !== _instance && 26 !== _instance && 27 !== _instance) ||\n null === lastHostComponent ||\n null === reactEventName ||\n ((_instance = getListener(instance, reactEventName)),\n null != _instance &&\n inCapturePhase.push(\n createDispatchListener(instance, _instance, lastHostComponent)\n ));\n if (accumulateTargetOnly) break;\n instance = instance.return;\n }\n 0 < inCapturePhase.length &&\n ((reactName = new SyntheticEventCtor(\n reactName,\n reactEventType,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: reactName, listeners: inCapturePhase }));\n }\n }\n if (0 === (eventSystemFlags & 7)) {\n a: {\n reactName =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n SyntheticEventCtor =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n reactName &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (SyntheticEventCtor || reactName) {\n reactName =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (reactName = nativeEventTarget.ownerDocument)\n ? reactName.defaultView || reactName.parentWindow\n : window;\n if (SyntheticEventCtor) {\n if (\n ((reactEventType =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (SyntheticEventCtor = targetInst),\n (reactEventType = reactEventType\n ? getClosestInstanceFromNode(reactEventType)\n : null),\n null !== reactEventType &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(reactEventType)),\n (inCapturePhase = reactEventType.tag),\n reactEventType !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n reactEventType = null;\n } else (SyntheticEventCtor = null), (reactEventType = targetInst);\n if (SyntheticEventCtor !== reactEventType) {\n inCapturePhase = SyntheticMouseEvent;\n _instance = \"onMouseLeave\";\n reactEventName = \"onMouseEnter\";\n instance = \"mouse\";\n if (\"pointerout\" === domEventName || \"pointerover\" === domEventName)\n (inCapturePhase = SyntheticPointerEvent),\n (_instance = \"onPointerLeave\"),\n (reactEventName = \"onPointerEnter\"),\n (instance = \"pointer\");\n accumulateTargetOnly =\n null == SyntheticEventCtor\n ? reactName\n : getNodeFromInstance(SyntheticEventCtor);\n lastHostComponent =\n null == reactEventType\n ? reactName\n : getNodeFromInstance(reactEventType);\n reactName = new inCapturePhase(\n _instance,\n instance + \"leave\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n );\n reactName.target = accumulateTargetOnly;\n reactName.relatedTarget = lastHostComponent;\n _instance = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n reactEventType,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance = inCapturePhase));\n accumulateTargetOnly = _instance;\n if (SyntheticEventCtor && reactEventType)\n b: {\n inCapturePhase = SyntheticEventCtor;\n reactEventName = reactEventType;\n instance = 0;\n for (\n lastHostComponent = inCapturePhase;\n lastHostComponent;\n lastHostComponent = getParent(lastHostComponent)\n )\n instance++;\n lastHostComponent = 0;\n for (\n _instance = reactEventName;\n _instance;\n _instance = getParent(_instance)\n )\n lastHostComponent++;\n for (; 0 < instance - lastHostComponent; )\n (inCapturePhase = getParent(inCapturePhase)), instance--;\n for (; 0 < lastHostComponent - instance; )\n (reactEventName = getParent(reactEventName)),\n lastHostComponent--;\n for (; instance--; ) {\n if (\n inCapturePhase === reactEventName ||\n (null !== reactEventName &&\n inCapturePhase === reactEventName.alternate)\n )\n break b;\n inCapturePhase = getParent(inCapturePhase);\n reactEventName = getParent(reactEventName);\n }\n inCapturePhase = null;\n }\n else inCapturePhase = null;\n null !== SyntheticEventCtor &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactName,\n SyntheticEventCtor,\n inCapturePhase,\n !1\n );\n null !== reactEventType &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n reactEventType,\n inCapturePhase,\n !0\n );\n }\n }\n }\n a: {\n reactName = targetInst ? getNodeFromInstance(targetInst) : window;\n SyntheticEventCtor =\n reactName.nodeName && reactName.nodeName.toLowerCase();\n if (\n \"select\" === SyntheticEventCtor ||\n (\"input\" === SyntheticEventCtor && \"file\" === reactName.type)\n )\n var getTargetInstFunc = getTargetInstForChangeEvent;\n else if (isTextInputElement(reactName))\n if (isInputEventSupported)\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n var handleEventFunc = handleEventsForInputEventPolyfill;\n }\n else\n (SyntheticEventCtor = reactName.nodeName),\n !SyntheticEventCtor ||\n \"input\" !== SyntheticEventCtor.toLowerCase() ||\n (\"checkbox\" !== reactName.type && \"radio\" !== reactName.type)\n ? targetInst &&\n isCustomElement(targetInst.elementType) &&\n (getTargetInstFunc = getTargetInstForChangeEvent)\n : (getTargetInstFunc = getTargetInstForClickEvent);\n if (\n getTargetInstFunc &&\n (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))\n ) {\n createAndAccumulateChangeEvent(\n dispatchQueue,\n getTargetInstFunc,\n nativeEvent,\n nativeEventTarget\n );\n break a;\n }\n handleEventFunc && handleEventFunc(domEventName, reactName, targetInst);\n \"focusout\" === domEventName &&\n targetInst &&\n \"number\" === reactName.type &&\n null != targetInst.memoizedProps.value &&\n setDefaultValue(reactName, \"number\", reactName.value);\n }\n handleEventFunc = targetInst ? getNodeFromInstance(targetInst) : window;\n switch (domEventName) {\n case \"focusin\":\n if (\n isTextInputElement(handleEventFunc) ||\n \"true\" === handleEventFunc.contentEditable\n )\n (activeElement = handleEventFunc),\n (activeElementInst = targetInst),\n (lastSelection = null);\n break;\n case \"focusout\":\n lastSelection = activeElementInst = activeElement = null;\n break;\n case \"mousedown\":\n mouseDown = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n mouseDown = !1;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n case \"selectionchange\":\n if (skipSelectionChangeEvent) break;\n case \"keydown\":\n case \"keyup\":\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n var fallbackData;\n if (canUseCompositionEvent)\n b: {\n switch (domEventName) {\n case \"compositionstart\":\n var eventType = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n eventType = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n eventType = \"onCompositionUpdate\";\n break b;\n }\n eventType = void 0;\n }\n else\n isComposing\n ? isFallbackCompositionEnd(domEventName, nativeEvent) &&\n (eventType = \"onCompositionEnd\")\n : \"keydown\" === domEventName &&\n 229 === nativeEvent.keyCode &&\n (eventType = \"onCompositionStart\");\n eventType &&\n (useFallbackCompositionData &&\n \"ko\" !== nativeEvent.locale &&\n (isComposing || \"onCompositionStart\" !== eventType\n ? \"onCompositionEnd\" === eventType &&\n isComposing &&\n (fallbackData = getData())\n : ((root = nativeEventTarget),\n (startText = \"value\" in root ? root.value : root.textContent),\n (isComposing = !0))),\n (handleEventFunc = accumulateTwoPhaseListeners(targetInst, eventType)),\n 0 < handleEventFunc.length &&\n ((eventType = new SyntheticCompositionEvent(\n eventType,\n domEventName,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: eventType, listeners: handleEventFunc }),\n fallbackData\n ? (eventType.data = fallbackData)\n : ((fallbackData = getDataFromCustomEvent(nativeEvent)),\n null !== fallbackData && (eventType.data = fallbackData))));\n if (\n (fallbackData = canUseTextInputEvent\n ? getNativeBeforeInputChars(domEventName, nativeEvent)\n : getFallbackBeforeInputChars(domEventName, nativeEvent))\n )\n (eventType = accumulateTwoPhaseListeners(targetInst, \"onBeforeInput\")),\n 0 < eventType.length &&\n ((handleEventFunc = new SyntheticCompositionEvent(\n \"onBeforeInput\",\n \"beforeinput\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: handleEventFunc,\n listeners: eventType\n }),\n (handleEventFunc.data = fallbackData));\n extractEvents$1(\n dispatchQueue,\n domEventName,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n }\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n });\n}\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n for (\n var captureName = reactName + \"Capture\", listeners = [];\n null !== targetFiber;\n\n ) {\n var _instance2 = targetFiber,\n stateNode = _instance2.stateNode;\n _instance2 = _instance2.tag;\n (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||\n null === stateNode ||\n ((_instance2 = getListener(targetFiber, captureName)),\n null != _instance2 &&\n listeners.unshift(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ),\n (_instance2 = getListener(targetFiber, reactName)),\n null != _instance2 &&\n listeners.push(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ));\n if (3 === targetFiber.tag) return listeners;\n targetFiber = targetFiber.return;\n }\n return [];\n}\nfunction getParent(inst) {\n if (null === inst) return null;\n do inst = inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag);\n return inst ? inst : null;\n}\nfunction accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n event,\n target,\n common,\n inCapturePhase\n) {\n for (\n var registrationName = event._reactName, listeners = [];\n null !== target && target !== common;\n\n ) {\n var _instance3 = target,\n alternate = _instance3.alternate,\n stateNode = _instance3.stateNode;\n _instance3 = _instance3.tag;\n if (null !== alternate && alternate === common) break;\n (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||\n null === stateNode ||\n ((alternate = stateNode),\n inCapturePhase\n ? ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.unshift(\n createDispatchListener(target, stateNode, alternate)\n ))\n : inCapturePhase ||\n ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.push(\n createDispatchListener(target, stateNode, alternate)\n )));\n target = target.return;\n }\n 0 !== listeners.length &&\n dispatchQueue.push({ event: event, listeners: listeners });\n}\nvar NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g,\n NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\nfunction normalizeMarkupForTextOrAttribute(markup) {\n return (\"string\" === typeof markup ? markup : \"\" + markup)\n .replace(NORMALIZE_NEWLINES_REGEX, \"\\n\")\n .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, \"\");\n}\nfunction checkForUnmatchedText(serverText, clientText) {\n clientText = normalizeMarkupForTextOrAttribute(clientText);\n return normalizeMarkupForTextOrAttribute(serverText) === clientText ? !0 : !1;\n}\nfunction noop$1() {}\nfunction setProp(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"children\":\n \"string\" === typeof value\n ? \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n \"body\" !== tag &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"className\":\n setValueForKnownAttribute(domElement, \"class\", value);\n break;\n case \"tabIndex\":\n setValueForKnownAttribute(domElement, \"tabindex\", value);\n break;\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n setValueForKnownAttribute(domElement, key, value);\n break;\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"data\":\n if (\"object\" !== tag) {\n setValueForKnownAttribute(domElement, \"data\", value);\n break;\n }\n case \"src\":\n case \"href\":\n if (\"\" === value && (\"a\" !== tag || \"href\" !== key)) {\n domElement.removeAttribute(key);\n break;\n }\n if (\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"action\":\n case \"formAction\":\n if (\"function\" === typeof value) {\n domElement.setAttribute(\n key,\n \"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\"\n );\n break;\n } else\n \"function\" === typeof prevValue &&\n (\"formAction\" === key\n ? (\"input\" !== tag &&\n setProp(domElement, tag, \"name\", props.name, props, null),\n setProp(\n domElement,\n tag,\n \"formEncType\",\n props.formEncType,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formMethod\",\n props.formMethod,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formTarget\",\n props.formTarget,\n props,\n null\n ))\n : (setProp(domElement, tag, \"encType\", props.encType, props, null),\n setProp(domElement, tag, \"method\", props.method, props, null),\n setProp(domElement, tag, \"target\", props.target, props, null)));\n if (\n null == value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"multiple\":\n domElement.multiple =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"muted\":\n domElement.muted =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"autoFocus\":\n break;\n case \"xlinkHref\":\n if (\n null == value ||\n \"function\" === typeof value ||\n \"boolean\" === typeof value ||\n \"symbol\" === typeof value\n ) {\n domElement.removeAttribute(\"xlink:href\");\n break;\n }\n key = sanitizeURL(\"\" + value);\n domElement.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n \"xlink:href\",\n key\n );\n break;\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n null != value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\" + value)\n : domElement.removeAttribute(key);\n break;\n case \"inert\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\")\n : domElement.removeAttribute(key);\n break;\n case \"capture\":\n case \"download\":\n !0 === value\n ? domElement.setAttribute(key, \"\")\n : !1 !== value &&\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n !isNaN(value) &&\n 1 <= value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"rowSpan\":\n case \"start\":\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n isNaN(value)\n ? domElement.removeAttribute(key)\n : domElement.setAttribute(key, value);\n break;\n case \"popover\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n setValueForAttribute(domElement, \"popover\", value);\n break;\n case \"xlinkActuate\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:actuate\",\n value\n );\n break;\n case \"xlinkArcrole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:arcrole\",\n value\n );\n break;\n case \"xlinkRole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:role\",\n value\n );\n break;\n case \"xlinkShow\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:show\",\n value\n );\n break;\n case \"xlinkTitle\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:title\",\n value\n );\n break;\n case \"xlinkType\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:type\",\n value\n );\n break;\n case \"xmlBase\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:base\",\n value\n );\n break;\n case \"xmlLang\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:lang\",\n value\n );\n break;\n case \"xmlSpace\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:space\",\n value\n );\n break;\n case \"is\":\n setValueForAttribute(domElement, \"is\", value);\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (\n !(2 < key.length) ||\n (\"o\" !== key[0] && \"O\" !== key[0]) ||\n (\"n\" !== key[1] && \"N\" !== key[1])\n )\n (key = aliases.get(key) || key),\n setValueForAttribute(domElement, key, value);\n }\n}\nfunction setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"children\":\n \"string\" === typeof value\n ? setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (!registrationNameDependencies.hasOwnProperty(key))\n a: {\n if (\n \"o\" === key[0] &&\n \"n\" === key[1] &&\n ((props = key.endsWith(\"Capture\")),\n (tag = key.slice(2, props ? key.length - 7 : void 0)),\n (prevValue = domElement[internalPropsKey] || null),\n (prevValue = null != prevValue ? prevValue[key] : null),\n \"function\" === typeof prevValue &&\n domElement.removeEventListener(tag, prevValue, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof prevValue &&\n null !== prevValue &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(tag, value, props);\n break a;\n }\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n }\n}\nfunction setInitialProperties(domElement, tag, props) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"img\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n var hasSrc = !1,\n hasSrcSet = !1,\n propKey;\n for (propKey in props)\n if (props.hasOwnProperty(propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"src\":\n hasSrc = !0;\n break;\n case \"srcSet\":\n hasSrcSet = !0;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, propKey, propValue, props, null);\n }\n }\n hasSrcSet &&\n setProp(domElement, tag, \"srcSet\", props.srcSet, props, null);\n hasSrc && setProp(domElement, tag, \"src\", props.src, props, null);\n return;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n var defaultValue = (propKey = propValue = hasSrcSet = null),\n checked = null,\n defaultChecked = null;\n for (hasSrc in props)\n if (props.hasOwnProperty(hasSrc)) {\n var propValue$189 = props[hasSrc];\n if (null != propValue$189)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = propValue$189;\n break;\n case \"type\":\n propValue = propValue$189;\n break;\n case \"checked\":\n checked = propValue$189;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue$189;\n break;\n case \"value\":\n propKey = propValue$189;\n break;\n case \"defaultValue\":\n defaultValue = propValue$189;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propValue$189)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(domElement, tag, hasSrc, propValue$189, props, null);\n }\n }\n initInput(\n domElement,\n propKey,\n defaultValue,\n checked,\n defaultChecked,\n propValue,\n hasSrcSet,\n !1\n );\n track(domElement);\n return;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n hasSrc = propValue = propKey = null;\n for (hasSrcSet in props)\n if (\n props.hasOwnProperty(hasSrcSet) &&\n ((defaultValue = props[hasSrcSet]), null != defaultValue)\n )\n switch (hasSrcSet) {\n case \"value\":\n propKey = defaultValue;\n break;\n case \"defaultValue\":\n propValue = defaultValue;\n break;\n case \"multiple\":\n hasSrc = defaultValue;\n default:\n setProp(domElement, tag, hasSrcSet, defaultValue, props, null);\n }\n tag = propKey;\n props = propValue;\n domElement.multiple = !!hasSrc;\n null != tag\n ? updateOptions(domElement, !!hasSrc, tag, !1)\n : null != props && updateOptions(domElement, !!hasSrc, props, !0);\n return;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n propKey = hasSrcSet = hasSrc = null;\n for (propValue in props)\n if (\n props.hasOwnProperty(propValue) &&\n ((defaultValue = props[propValue]), null != defaultValue)\n )\n switch (propValue) {\n case \"value\":\n hasSrc = defaultValue;\n break;\n case \"defaultValue\":\n hasSrcSet = defaultValue;\n break;\n case \"children\":\n propKey = defaultValue;\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != defaultValue) throw Error(formatProdErrorMessage(91));\n break;\n default:\n setProp(domElement, tag, propValue, defaultValue, props, null);\n }\n initTextarea(domElement, hasSrc, hasSrcSet, propKey);\n track(domElement);\n return;\n case \"option\":\n for (checked in props)\n if (\n props.hasOwnProperty(checked) &&\n ((hasSrc = props[checked]), null != hasSrc)\n )\n switch (checked) {\n case \"selected\":\n domElement.selected =\n hasSrc &&\n \"function\" !== typeof hasSrc &&\n \"symbol\" !== typeof hasSrc;\n break;\n default:\n setProp(domElement, tag, checked, hasSrc, props, null);\n }\n return;\n case \"dialog\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n listenToNonDelegatedEvent(\"cancel\", domElement);\n listenToNonDelegatedEvent(\"close\", domElement);\n break;\n case \"iframe\":\n case \"object\":\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"video\":\n case \"audio\":\n for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)\n listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);\n break;\n case \"image\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", domElement);\n break;\n case \"embed\":\n case \"source\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", domElement),\n listenToNonDelegatedEvent(\"load\", domElement);\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (defaultChecked in props)\n if (\n props.hasOwnProperty(defaultChecked) &&\n ((hasSrc = props[defaultChecked]), null != hasSrc)\n )\n switch (defaultChecked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, defaultChecked, hasSrc, props, null);\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (propValue$189 in props)\n props.hasOwnProperty(propValue$189) &&\n ((hasSrc = props[propValue$189]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n propValue$189,\n hasSrc,\n props,\n void 0\n ));\n return;\n }\n }\n for (defaultValue in props)\n props.hasOwnProperty(defaultValue) &&\n ((hasSrc = props[defaultValue]),\n null != hasSrc &&\n setProp(domElement, tag, defaultValue, hasSrc, props, null));\n}\nfunction updateProperties(domElement, tag, lastProps, nextProps) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"input\":\n var name = null,\n type = null,\n value = null,\n defaultValue = null,\n lastDefaultValue = null,\n checked = null,\n defaultChecked = null;\n for (propKey in lastProps) {\n var lastProp = lastProps[propKey];\n if (lastProps.hasOwnProperty(propKey) && null != lastProp)\n switch (propKey) {\n case \"checked\":\n break;\n case \"value\":\n break;\n case \"defaultValue\":\n lastDefaultValue = lastProp;\n default:\n nextProps.hasOwnProperty(propKey) ||\n setProp(domElement, tag, propKey, null, nextProps, lastProp);\n }\n }\n for (var propKey$206 in nextProps) {\n var propKey = nextProps[propKey$206];\n lastProp = lastProps[propKey$206];\n if (\n nextProps.hasOwnProperty(propKey$206) &&\n (null != propKey || null != lastProp)\n )\n switch (propKey$206) {\n case \"type\":\n type = propKey;\n break;\n case \"name\":\n name = propKey;\n break;\n case \"checked\":\n checked = propKey;\n break;\n case \"defaultChecked\":\n defaultChecked = propKey;\n break;\n case \"value\":\n value = propKey;\n break;\n case \"defaultValue\":\n defaultValue = propKey;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n propKey !== lastProp &&\n setProp(\n domElement,\n tag,\n propKey$206,\n propKey,\n nextProps,\n lastProp\n );\n }\n }\n updateInput(\n domElement,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n );\n return;\n case \"select\":\n propKey = value = defaultValue = propKey$206 = null;\n for (type in lastProps)\n if (\n ((lastDefaultValue = lastProps[type]),\n lastProps.hasOwnProperty(type) && null != lastDefaultValue)\n )\n switch (type) {\n case \"value\":\n break;\n case \"multiple\":\n propKey = lastDefaultValue;\n default:\n nextProps.hasOwnProperty(type) ||\n setProp(\n domElement,\n tag,\n type,\n null,\n nextProps,\n lastDefaultValue\n );\n }\n for (name in nextProps)\n if (\n ((type = nextProps[name]),\n (lastDefaultValue = lastProps[name]),\n nextProps.hasOwnProperty(name) &&\n (null != type || null != lastDefaultValue))\n )\n switch (name) {\n case \"value\":\n propKey$206 = type;\n break;\n case \"defaultValue\":\n defaultValue = type;\n break;\n case \"multiple\":\n value = type;\n default:\n type !== lastDefaultValue &&\n setProp(\n domElement,\n tag,\n name,\n type,\n nextProps,\n lastDefaultValue\n );\n }\n tag = defaultValue;\n lastProps = value;\n nextProps = propKey;\n null != propKey$206\n ? updateOptions(domElement, !!lastProps, propKey$206, !1)\n : !!nextProps !== !!lastProps &&\n (null != tag\n ? updateOptions(domElement, !!lastProps, tag, !0)\n : updateOptions(domElement, !!lastProps, lastProps ? [] : \"\", !1));\n return;\n case \"textarea\":\n propKey = propKey$206 = null;\n for (defaultValue in lastProps)\n if (\n ((name = lastProps[defaultValue]),\n lastProps.hasOwnProperty(defaultValue) &&\n null != name &&\n !nextProps.hasOwnProperty(defaultValue))\n )\n switch (defaultValue) {\n case \"value\":\n break;\n case \"children\":\n break;\n default:\n setProp(domElement, tag, defaultValue, null, nextProps, name);\n }\n for (value in nextProps)\n if (\n ((name = nextProps[value]),\n (type = lastProps[value]),\n nextProps.hasOwnProperty(value) && (null != name || null != type))\n )\n switch (value) {\n case \"value\":\n propKey$206 = name;\n break;\n case \"defaultValue\":\n propKey = name;\n break;\n case \"children\":\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != name) throw Error(formatProdErrorMessage(91));\n break;\n default:\n name !== type &&\n setProp(domElement, tag, value, name, nextProps, type);\n }\n updateTextarea(domElement, propKey$206, propKey);\n return;\n case \"option\":\n for (var propKey$222 in lastProps)\n if (\n ((propKey$206 = lastProps[propKey$222]),\n lastProps.hasOwnProperty(propKey$222) &&\n null != propKey$206 &&\n !nextProps.hasOwnProperty(propKey$222))\n )\n switch (propKey$222) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n propKey$222,\n null,\n nextProps,\n propKey$206\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((propKey$206 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n propKey$206 !== propKey &&\n (null != propKey$206 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n domElement.selected =\n propKey$206 &&\n \"function\" !== typeof propKey$206 &&\n \"symbol\" !== typeof propKey$206;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n propKey$206,\n nextProps,\n propKey\n );\n }\n return;\n case \"img\":\n case \"link\":\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (var propKey$227 in lastProps)\n (propKey$206 = lastProps[propKey$227]),\n lastProps.hasOwnProperty(propKey$227) &&\n null != propKey$206 &&\n !nextProps.hasOwnProperty(propKey$227) &&\n setProp(domElement, tag, propKey$227, null, nextProps, propKey$206);\n for (checked in nextProps)\n if (\n ((propKey$206 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n propKey$206 !== propKey &&\n (null != propKey$206 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey$206)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n propKey$206,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var propKey$232 in lastProps)\n (propKey$206 = lastProps[propKey$232]),\n lastProps.hasOwnProperty(propKey$232) &&\n void 0 !== propKey$206 &&\n !nextProps.hasOwnProperty(propKey$232) &&\n setPropOnCustomElement(\n domElement,\n tag,\n propKey$232,\n void 0,\n nextProps,\n propKey$206\n );\n for (defaultChecked in nextProps)\n (propKey$206 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n propKey$206 === propKey ||\n (void 0 === propKey$206 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n propKey$206,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var propKey$237 in lastProps)\n (propKey$206 = lastProps[propKey$237]),\n lastProps.hasOwnProperty(propKey$237) &&\n null != propKey$206 &&\n !nextProps.hasOwnProperty(propKey$237) &&\n setProp(domElement, tag, propKey$237, null, nextProps, propKey$206);\n for (lastProp in nextProps)\n (propKey$206 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n propKey$206 === propKey ||\n (null == propKey$206 && null == propKey) ||\n setProp(domElement, tag, lastProp, propKey$206, nextProps, propKey);\n}\nvar eventsEnabled = null,\n selectionInformation = null;\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n}\nfunction getOwnHostContext(namespaceURI) {\n switch (namespaceURI) {\n case \"http://www.w3.org/2000/svg\":\n return 1;\n case \"http://www.w3.org/1998/Math/MathML\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getChildHostContextProd(parentNamespace, type) {\n if (0 === parentNamespace)\n switch (type) {\n case \"svg\":\n return 1;\n case \"math\":\n return 2;\n default:\n return 0;\n }\n return 1 === parentNamespace && \"foreignObject\" === type\n ? 0\n : parentNamespace;\n}\nfunction shouldSetTextContent(type, props) {\n return (\n \"textarea\" === type ||\n \"noscript\" === type ||\n \"string\" === typeof props.children ||\n \"number\" === typeof props.children ||\n \"bigint\" === typeof props.children ||\n (\"object\" === typeof props.dangerouslySetInnerHTML &&\n null !== props.dangerouslySetInnerHTML &&\n null != props.dangerouslySetInnerHTML.__html)\n );\n}\nvar currentPopstateTransitionEvent = null;\nfunction shouldAttemptEagerTransition() {\n var event = window.event;\n if (event && \"popstate\" === event.type) {\n if (event === currentPopstateTransitionEvent) return !1;\n currentPopstateTransitionEvent = event;\n return !0;\n }\n currentPopstateTransitionEvent = null;\n return !1;\n}\nvar scheduleTimeout = \"function\" === typeof setTimeout ? setTimeout : void 0,\n cancelTimeout = \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n localPromise = \"function\" === typeof Promise ? Promise : void 0,\n scheduleMicrotask =\n \"function\" === typeof queueMicrotask\n ? queueMicrotask\n : \"undefined\" !== typeof localPromise\n ? function (callback) {\n return localPromise\n .resolve(null)\n .then(callback)\n .catch(handleErrorInNextTick);\n }\n : scheduleTimeout;\nfunction handleErrorInNextTick(error) {\n setTimeout(function () {\n throw error;\n });\n}\nfunction isSingletonScope(type) {\n return \"head\" === type;\n}\nfunction clearSuspenseBoundary(parentInstance, suspenseInstance) {\n var node = suspenseInstance,\n possiblePreambleContribution = 0,\n depth = 0;\n do {\n var nextNode = node.nextSibling;\n parentInstance.removeChild(node);\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node)) {\n if (\n 0 < possiblePreambleContribution &&\n 8 > possiblePreambleContribution\n ) {\n node = possiblePreambleContribution;\n var ownerDocument = parentInstance.ownerDocument;\n node & 1 && releaseSingletonInstance(ownerDocument.documentElement);\n node & 2 && releaseSingletonInstance(ownerDocument.body);\n if (node & 4)\n for (\n node = ownerDocument.head,\n releaseSingletonInstance(node),\n ownerDocument = node.firstChild;\n ownerDocument;\n\n ) {\n var nextNode$jscomp$0 = ownerDocument.nextSibling,\n nodeName = ownerDocument.nodeName;\n ownerDocument[internalHoistableMarker] ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === ownerDocument.rel.toLowerCase()) ||\n node.removeChild(ownerDocument);\n ownerDocument = nextNode$jscomp$0;\n }\n }\n if (0 === depth) {\n parentInstance.removeChild(nextNode);\n retryIfBlockedOn(suspenseInstance);\n return;\n }\n depth--;\n } else\n \"$\" === node || \"$?\" === node || \"$!\" === node\n ? depth++\n : (possiblePreambleContribution = node.charCodeAt(0) - 48);\n else possiblePreambleContribution = 0;\n node = nextNode;\n } while (node);\n retryIfBlockedOn(suspenseInstance);\n}\nfunction clearContainerSparingly(container) {\n var nextNode = container.firstChild;\n nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);\n for (; nextNode; ) {\n var node = nextNode;\n nextNode = nextNode.nextSibling;\n switch (node.nodeName) {\n case \"HTML\":\n case \"HEAD\":\n case \"BODY\":\n clearContainerSparingly(node);\n detachDeletedInstance(node);\n continue;\n case \"SCRIPT\":\n case \"STYLE\":\n continue;\n case \"LINK\":\n if (\"stylesheet\" === node.rel.toLowerCase()) continue;\n }\n container.removeChild(node);\n }\n}\nfunction canHydrateInstance(instance, type, props, inRootOrSingleton) {\n for (; 1 === instance.nodeType; ) {\n var anyProps = props;\n if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {\n if (\n !inRootOrSingleton &&\n (\"INPUT\" !== instance.nodeName || \"hidden\" !== instance.type)\n )\n break;\n } else if (!inRootOrSingleton)\n if (\"input\" === type && \"hidden\" === instance.type) {\n var name = null == anyProps.name ? null : \"\" + anyProps.name;\n if (\n \"hidden\" === anyProps.type &&\n instance.getAttribute(\"name\") === name\n )\n return instance;\n } else return instance;\n else if (!instance[internalHoistableMarker])\n switch (type) {\n case \"meta\":\n if (!instance.hasAttribute(\"itemprop\")) break;\n return instance;\n case \"link\":\n name = instance.getAttribute(\"rel\");\n if (\"stylesheet\" === name && instance.hasAttribute(\"data-precedence\"))\n break;\n else if (\n name !== anyProps.rel ||\n instance.getAttribute(\"href\") !==\n (null == anyProps.href || \"\" === anyProps.href\n ? null\n : anyProps.href) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) ||\n instance.getAttribute(\"title\") !==\n (null == anyProps.title ? null : anyProps.title)\n )\n break;\n return instance;\n case \"style\":\n if (instance.hasAttribute(\"data-precedence\")) break;\n return instance;\n case \"script\":\n name = instance.getAttribute(\"src\");\n if (\n (name !== (null == anyProps.src ? null : anyProps.src) ||\n instance.getAttribute(\"type\") !==\n (null == anyProps.type ? null : anyProps.type) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) &&\n name &&\n instance.hasAttribute(\"async\") &&\n !instance.hasAttribute(\"itemprop\")\n )\n break;\n return instance;\n default:\n return instance;\n }\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) break;\n }\n return null;\n}\nfunction canHydrateTextInstance(instance, text, inRootOrSingleton) {\n if (\"\" === text) return null;\n for (; 3 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return (\n \"$!\" === instance.data ||\n (\"$?\" === instance.data && \"complete\" === instance.ownerDocument.readyState)\n );\n}\nfunction registerSuspenseInstanceRetry(instance, callback) {\n var ownerDocument = instance.ownerDocument;\n if (\"$?\" !== instance.data || \"complete\" === ownerDocument.readyState)\n callback();\n else {\n var listener = function () {\n callback();\n ownerDocument.removeEventListener(\"DOMContentLoaded\", listener);\n };\n ownerDocument.addEventListener(\"DOMContentLoaded\", listener);\n instance._reactRetry = listener;\n }\n}\nfunction getNextHydratable(node) {\n for (; null != node; node = node.nextSibling) {\n var nodeType = node.nodeType;\n if (1 === nodeType || 3 === nodeType) break;\n if (8 === nodeType) {\n nodeType = node.data;\n if (\n \"$\" === nodeType ||\n \"$!\" === nodeType ||\n \"$?\" === nodeType ||\n \"F!\" === nodeType ||\n \"F\" === nodeType\n )\n break;\n if (\"/$\" === nodeType) return null;\n }\n }\n return node;\n}\nvar previousHydratableOnEnteringScopedSingleton = null;\nfunction getParentSuspenseInstance(targetInstance) {\n targetInstance = targetInstance.previousSibling;\n for (var depth = 0; targetInstance; ) {\n if (8 === targetInstance.nodeType) {\n var data = targetInstance.data;\n if (\"$\" === data || \"$!\" === data || \"$?\" === data) {\n if (0 === depth) return targetInstance;\n depth--;\n } else \"/$\" === data && depth++;\n }\n targetInstance = targetInstance.previousSibling;\n }\n return null;\n}\nfunction resolveSingletonInstance(type, props, rootContainerInstance) {\n props = getOwnerDocumentFromRootContainer(rootContainerInstance);\n switch (type) {\n case \"html\":\n type = props.documentElement;\n if (!type) throw Error(formatProdErrorMessage(452));\n return type;\n case \"head\":\n type = props.head;\n if (!type) throw Error(formatProdErrorMessage(453));\n return type;\n case \"body\":\n type = props.body;\n if (!type) throw Error(formatProdErrorMessage(454));\n return type;\n default:\n throw Error(formatProdErrorMessage(451));\n }\n}\nfunction releaseSingletonInstance(instance) {\n for (var attributes = instance.attributes; attributes.length; )\n instance.removeAttributeNode(attributes[0]);\n detachDeletedInstance(instance);\n}\nvar preloadPropsMap = new Map(),\n preconnectsSet = new Set();\nfunction getHoistableRoot(container) {\n return \"function\" === typeof container.getRootNode\n ? container.getRootNode()\n : 9 === container.nodeType\n ? container\n : container.ownerDocument;\n}\nvar previousDispatcher = ReactDOMSharedInternals.d;\nReactDOMSharedInternals.d = {\n f: flushSyncWork,\n r: requestFormReset,\n D: prefetchDNS,\n C: preconnect,\n L: preload,\n m: preloadModule,\n X: preinitScript,\n S: preinitStyle,\n M: preinitModuleScript\n};\nfunction flushSyncWork() {\n var previousWasRendering = previousDispatcher.f(),\n wasRendering = flushSyncWork$1();\n return previousWasRendering || wasRendering;\n}\nfunction requestFormReset(form) {\n var formInst = getInstanceFromNode(form);\n null !== formInst && 5 === formInst.tag && \"form\" === formInst.type\n ? requestFormReset$1(formInst)\n : previousDispatcher.r(form);\n}\nvar globalDocument = \"undefined\" === typeof document ? null : document;\nfunction preconnectAs(rel, href, crossOrigin) {\n var ownerDocument = globalDocument;\n if (ownerDocument && \"string\" === typeof href && href) {\n var limitedEscapedHref =\n escapeSelectorAttributeValueInsideDoubleQuotes(href);\n limitedEscapedHref =\n 'link[rel=\"' + rel + '\"][href=\"' + limitedEscapedHref + '\"]';\n \"string\" === typeof crossOrigin &&\n (limitedEscapedHref += '[crossorigin=\"' + crossOrigin + '\"]');\n preconnectsSet.has(limitedEscapedHref) ||\n (preconnectsSet.add(limitedEscapedHref),\n (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),\n null === ownerDocument.querySelector(limitedEscapedHref) &&\n ((href = ownerDocument.createElement(\"link\")),\n setInitialProperties(href, \"link\", rel),\n markNodeAsHoistable(href),\n ownerDocument.head.appendChild(href)));\n }\n}\nfunction prefetchDNS(href) {\n previousDispatcher.D(href);\n preconnectAs(\"dns-prefetch\", href, null);\n}\nfunction preconnect(href, crossOrigin) {\n previousDispatcher.C(href, crossOrigin);\n preconnectAs(\"preconnect\", href, crossOrigin);\n}\nfunction preload(href, as, options) {\n previousDispatcher.L(href, as, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href && as) {\n var preloadSelector =\n 'link[rel=\"preload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"]';\n \"image\" === as\n ? options && options.imageSrcSet\n ? ((preloadSelector +=\n '[imagesrcset=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSrcSet\n ) +\n '\"]'),\n \"string\" === typeof options.imageSizes &&\n (preloadSelector +=\n '[imagesizes=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSizes\n ) +\n '\"]'))\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]')\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]');\n var key = preloadSelector;\n switch (as) {\n case \"style\":\n key = getStyleKey(href);\n break;\n case \"script\":\n key = getScriptKey(href);\n }\n preloadPropsMap.has(key) ||\n ((href = assign(\n {\n rel: \"preload\",\n href:\n \"image\" === as && options && options.imageSrcSet ? void 0 : href,\n as: as\n },\n options\n )),\n preloadPropsMap.set(key, href),\n null !== ownerDocument.querySelector(preloadSelector) ||\n (\"style\" === as &&\n ownerDocument.querySelector(getStylesheetSelectorFromKey(key))) ||\n (\"script\" === as &&\n ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||\n ((as = ownerDocument.createElement(\"link\")),\n setInitialProperties(as, \"link\", href),\n markNodeAsHoistable(as),\n ownerDocument.head.appendChild(as)));\n }\n}\nfunction preloadModule(href, options) {\n previousDispatcher.m(href, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var as = options && \"string\" === typeof options.as ? options.as : \"script\",\n preloadSelector =\n 'link[rel=\"modulepreload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"][href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]',\n key = preloadSelector;\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n key = getScriptKey(href);\n }\n if (\n !preloadPropsMap.has(key) &&\n ((href = assign({ rel: \"modulepreload\", href: href }, options)),\n preloadPropsMap.set(key, href),\n null === ownerDocument.querySelector(preloadSelector))\n ) {\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))\n return;\n }\n as = ownerDocument.createElement(\"link\");\n setInitialProperties(as, \"link\", href);\n markNodeAsHoistable(as);\n ownerDocument.head.appendChild(as);\n }\n }\n}\nfunction preinitStyle(href, precedence, options) {\n previousDispatcher.S(href, precedence, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,\n key = getStyleKey(href);\n precedence = precedence || \"default\";\n var resource = styles.get(key);\n if (!resource) {\n var state = { loading: 0, preload: null };\n if (\n (resource = ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n ))\n )\n state.loading = 5;\n else {\n href = assign(\n { rel: \"stylesheet\", href: href, \"data-precedence\": precedence },\n options\n );\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(href, options);\n var link = (resource = ownerDocument.createElement(\"link\"));\n markNodeAsHoistable(link);\n setInitialProperties(link, \"link\", href);\n link._p = new Promise(function (resolve, reject) {\n link.onload = resolve;\n link.onerror = reject;\n });\n link.addEventListener(\"load\", function () {\n state.loading |= 1;\n });\n link.addEventListener(\"error\", function () {\n state.loading |= 2;\n });\n state.loading |= 4;\n insertStylesheet(resource, precedence, ownerDocument);\n }\n resource = {\n type: \"stylesheet\",\n instance: resource,\n count: 1,\n state: state\n };\n styles.set(key, resource);\n }\n }\n}\nfunction preinitScript(src, options) {\n previousDispatcher.X(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0 }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction preinitModuleScript(src, options) {\n previousDispatcher.M(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0, type: \"module\" }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction getResource(type, currentProps, pendingProps, currentResource) {\n var JSCompiler_inline_result = (JSCompiler_inline_result =\n rootInstanceStackCursor.current)\n ? getHoistableRoot(JSCompiler_inline_result)\n : null;\n if (!JSCompiler_inline_result) throw Error(formatProdErrorMessage(446));\n switch (type) {\n case \"meta\":\n case \"title\":\n return null;\n case \"style\":\n return \"string\" === typeof pendingProps.precedence &&\n \"string\" === typeof pendingProps.href\n ? ((currentProps = getStyleKey(pendingProps.href)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null };\n case \"link\":\n if (\n \"stylesheet\" === pendingProps.rel &&\n \"string\" === typeof pendingProps.href &&\n \"string\" === typeof pendingProps.precedence\n ) {\n type = getStyleKey(pendingProps.href);\n var styles$246 = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles,\n resource$247 = styles$246.get(type);\n resource$247 ||\n ((JSCompiler_inline_result =\n JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),\n (resource$247 = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: 0, preload: null }\n }),\n styles$246.set(type, resource$247),\n (styles$246 = JSCompiler_inline_result.querySelector(\n getStylesheetSelectorFromKey(type)\n )) &&\n !styles$246._p &&\n ((resource$247.instance = styles$246),\n (resource$247.state.loading = 5)),\n preloadPropsMap.has(type) ||\n ((pendingProps = {\n rel: \"preload\",\n as: \"style\",\n href: pendingProps.href,\n crossOrigin: pendingProps.crossOrigin,\n integrity: pendingProps.integrity,\n media: pendingProps.media,\n hrefLang: pendingProps.hrefLang,\n referrerPolicy: pendingProps.referrerPolicy\n }),\n preloadPropsMap.set(type, pendingProps),\n styles$246 ||\n preloadStylesheet(\n JSCompiler_inline_result,\n type,\n pendingProps,\n resource$247.state\n )));\n if (currentProps && null === currentResource)\n throw Error(formatProdErrorMessage(528, \"\"));\n return resource$247;\n }\n if (currentProps && null !== currentResource)\n throw Error(formatProdErrorMessage(529, \"\"));\n return null;\n case \"script\":\n return (\n (currentProps = pendingProps.async),\n (pendingProps = pendingProps.src),\n \"string\" === typeof pendingProps &&\n currentProps &&\n \"function\" !== typeof currentProps &&\n \"symbol\" !== typeof currentProps\n ? ((currentProps = getScriptKey(pendingProps)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableScripts),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null }\n );\n default:\n throw Error(formatProdErrorMessage(444, type));\n }\n}\nfunction getStyleKey(href) {\n return 'href=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '\"';\n}\nfunction getStylesheetSelectorFromKey(key) {\n return 'link[rel=\"stylesheet\"][' + key + \"]\";\n}\nfunction stylesheetPropsFromRawProps(rawProps) {\n return assign({}, rawProps, {\n \"data-precedence\": rawProps.precedence,\n precedence: null\n });\n}\nfunction preloadStylesheet(ownerDocument, key, preloadProps, state) {\n ownerDocument.querySelector('link[rel=\"preload\"][as=\"style\"][' + key + \"]\")\n ? (state.loading = 1)\n : ((key = ownerDocument.createElement(\"link\")),\n (state.preload = key),\n key.addEventListener(\"load\", function () {\n return (state.loading |= 1);\n }),\n key.addEventListener(\"error\", function () {\n return (state.loading |= 2);\n }),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key));\n}\nfunction getScriptKey(src) {\n return '[src=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '\"]';\n}\nfunction getScriptSelectorFromKey(key) {\n return \"script[async]\" + key;\n}\nfunction acquireResource(hoistableRoot, resource, props) {\n resource.count++;\n if (null === resource.instance)\n switch (resource.type) {\n case \"style\":\n var instance = hoistableRoot.querySelector(\n 'style[data-href~=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +\n '\"]'\n );\n if (instance)\n return (\n (resource.instance = instance),\n markNodeAsHoistable(instance),\n instance\n );\n var styleProps = assign({}, props, {\n \"data-href\": props.href,\n \"data-precedence\": props.precedence,\n href: null,\n precedence: null\n });\n instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement(\n \"style\"\n );\n markNodeAsHoistable(instance);\n setInitialProperties(instance, \"style\", styleProps);\n insertStylesheet(instance, props.precedence, hoistableRoot);\n return (resource.instance = instance);\n case \"stylesheet\":\n styleProps = getStyleKey(props.href);\n var instance$252 = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (instance$252)\n return (\n (resource.state.loading |= 4),\n (resource.instance = instance$252),\n markNodeAsHoistable(instance$252),\n instance$252\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n instance$252 = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(instance$252);\n var linkInstance = instance$252;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance$252, \"link\", instance);\n resource.state.loading |= 4;\n insertStylesheet(instance$252, props.precedence, hoistableRoot);\n return (resource.instance = instance$252);\n case \"script\":\n instance$252 = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(instance$252)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(instance$252)))\n (instance = assign({}, props)),\n adoptPreloadPropsForScript(instance, styleProps);\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n styleProps = hoistableRoot.createElement(\"script\");\n markNodeAsHoistable(styleProps);\n setInitialProperties(styleProps, \"link\", instance);\n hoistableRoot.head.appendChild(styleProps);\n return (resource.instance = styleProps);\n case \"void\":\n return null;\n default:\n throw Error(formatProdErrorMessage(443, resource.type));\n }\n else\n \"stylesheet\" === resource.type &&\n 0 === (resource.state.loading & 4) &&\n ((instance = resource.instance),\n (resource.state.loading |= 4),\n insertStylesheet(instance, props.precedence, hoistableRoot));\n return resource.instance;\n}\nfunction insertStylesheet(instance, precedence, root) {\n for (\n var nodes = root.querySelectorAll(\n 'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'\n ),\n last = nodes.length ? nodes[nodes.length - 1] : null,\n prior = last,\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (node.dataset.precedence === precedence) prior = node;\n else if (prior !== last) break;\n }\n prior\n ? prior.parentNode.insertBefore(instance, prior.nextSibling)\n : ((precedence = 9 === root.nodeType ? root.head : root),\n precedence.insertBefore(instance, precedence.firstChild));\n}\nfunction adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {\n null == stylesheetProps.crossOrigin &&\n (stylesheetProps.crossOrigin = preloadProps.crossOrigin);\n null == stylesheetProps.referrerPolicy &&\n (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);\n null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);\n}\nfunction adoptPreloadPropsForScript(scriptProps, preloadProps) {\n null == scriptProps.crossOrigin &&\n (scriptProps.crossOrigin = preloadProps.crossOrigin);\n null == scriptProps.referrerPolicy &&\n (scriptProps.referrerPolicy = preloadProps.referrerPolicy);\n null == scriptProps.integrity &&\n (scriptProps.integrity = preloadProps.integrity);\n}\nvar tagCaches = null;\nfunction getHydratableHoistableCache(type, keyAttribute, ownerDocument) {\n if (null === tagCaches) {\n var cache = new Map();\n var caches = (tagCaches = new Map());\n caches.set(ownerDocument, cache);\n } else\n (caches = tagCaches),\n (cache = caches.get(ownerDocument)),\n cache || ((cache = new Map()), caches.set(ownerDocument, cache));\n if (cache.has(type)) return cache;\n cache.set(type, null);\n ownerDocument = ownerDocument.getElementsByTagName(type);\n for (caches = 0; caches < ownerDocument.length; caches++) {\n var node = ownerDocument[caches];\n if (\n !(\n node[internalHoistableMarker] ||\n node[internalInstanceKey] ||\n (\"link\" === type && \"stylesheet\" === node.getAttribute(\"rel\"))\n ) &&\n \"http://www.w3.org/2000/svg\" !== node.namespaceURI\n ) {\n var nodeKey = node.getAttribute(keyAttribute) || \"\";\n nodeKey = type + nodeKey;\n var existing = cache.get(nodeKey);\n existing ? existing.push(node) : cache.set(nodeKey, [node]);\n }\n }\n return cache;\n}\nfunction mountHoistable(hoistableRoot, type, instance) {\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n hoistableRoot.head.insertBefore(\n instance,\n \"title\" === type ? hoistableRoot.querySelector(\"head > title\") : null\n );\n}\nfunction isHostHoistableType(type, props, hostContext) {\n if (1 === hostContext || null != props.itemProp) return !1;\n switch (type) {\n case \"meta\":\n case \"title\":\n return !0;\n case \"style\":\n if (\n \"string\" !== typeof props.precedence ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n )\n break;\n return !0;\n case \"link\":\n if (\n \"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href ||\n props.onLoad ||\n props.onError\n )\n break;\n switch (props.rel) {\n case \"stylesheet\":\n return (\n (type = props.disabled),\n \"string\" === typeof props.precedence && null == type\n );\n default:\n return !0;\n }\n case \"script\":\n if (\n props.async &&\n \"function\" !== typeof props.async &&\n \"symbol\" !== typeof props.async &&\n !props.onLoad &&\n !props.onError &&\n props.src &&\n \"string\" === typeof props.src\n )\n return !0;\n }\n return !1;\n}\nfunction preloadResource(resource) {\n return \"stylesheet\" === resource.type && 0 === (resource.state.loading & 3)\n ? !1\n : !0;\n}\nvar suspendedState = null;\nfunction noop() {}\nfunction suspendResource(hoistableRoot, resource, props) {\n if (null === suspendedState) throw Error(formatProdErrorMessage(475));\n var state = suspendedState;\n if (\n \"stylesheet\" === resource.type &&\n (\"string\" !== typeof props.media ||\n !1 !== matchMedia(props.media).matches) &&\n 0 === (resource.state.loading & 4)\n ) {\n if (null === resource.instance) {\n var key = getStyleKey(props.href),\n instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(key)\n );\n if (instance) {\n hoistableRoot = instance._p;\n null !== hoistableRoot &&\n \"object\" === typeof hoistableRoot &&\n \"function\" === typeof hoistableRoot.then &&\n (state.count++,\n (state = onUnsuspend.bind(state)),\n hoistableRoot.then(state, state));\n resource.state.loading |= 4;\n resource.instance = instance;\n markNodeAsHoistable(instance);\n return;\n }\n instance = hoistableRoot.ownerDocument || hoistableRoot;\n props = stylesheetPropsFromRawProps(props);\n (key = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(props, key);\n instance = instance.createElement(\"link\");\n markNodeAsHoistable(instance);\n var linkInstance = instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance, \"link\", props);\n resource.instance = instance;\n }\n null === state.stylesheets && (state.stylesheets = new Map());\n state.stylesheets.set(resource, hoistableRoot);\n (hoistableRoot = resource.state.preload) &&\n 0 === (resource.state.loading & 3) &&\n (state.count++,\n (resource = onUnsuspend.bind(state)),\n hoistableRoot.addEventListener(\"load\", resource),\n hoistableRoot.addEventListener(\"error\", resource));\n }\n}\nfunction waitForCommitToBeReady() {\n if (null === suspendedState) throw Error(formatProdErrorMessage(475));\n var state = suspendedState;\n state.stylesheets &&\n 0 === state.count &&\n insertSuspendedStylesheets(state, state.stylesheets);\n return 0 < state.count\n ? function (commit) {\n var stylesheetTimer = setTimeout(function () {\n state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets);\n if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n }, 6e4);\n state.unsuspend = commit;\n return function () {\n state.unsuspend = null;\n clearTimeout(stylesheetTimer);\n };\n }\n : null;\n}\nfunction onUnsuspend() {\n this.count--;\n if (0 === this.count)\n if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets);\n else if (this.unsuspend) {\n var unsuspend = this.unsuspend;\n this.unsuspend = null;\n unsuspend();\n }\n}\nvar precedencesByRoot = null;\nfunction insertSuspendedStylesheets(state, resources) {\n state.stylesheets = null;\n null !== state.unsuspend &&\n (state.count++,\n (precedencesByRoot = new Map()),\n resources.forEach(insertStylesheetIntoRoot, state),\n (precedencesByRoot = null),\n onUnsuspend.call(state));\n}\nfunction insertStylesheetIntoRoot(root, resource) {\n if (!(resource.state.loading & 4)) {\n var precedences = precedencesByRoot.get(root);\n if (precedences) var last = precedences.get(null);\n else {\n precedences = new Map();\n precedencesByRoot.set(root, precedences);\n for (\n var nodes = root.querySelectorAll(\n \"link[data-precedence],style[data-precedence]\"\n ),\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (\n \"LINK\" === node.nodeName ||\n \"not all\" !== node.getAttribute(\"media\")\n )\n precedences.set(node.dataset.precedence, node), (last = node);\n }\n last && precedences.set(null, last);\n }\n nodes = resource.instance;\n node = nodes.getAttribute(\"data-precedence\");\n i = precedences.get(node) || last;\n i === last && precedences.set(null, nodes);\n precedences.set(node, nodes);\n this.count++;\n last = onUnsuspend.bind(this);\n nodes.addEventListener(\"load\", last);\n nodes.addEventListener(\"error\", last);\n i\n ? i.parentNode.insertBefore(nodes, i.nextSibling)\n : ((root = 9 === root.nodeType ? root.head : root),\n root.insertBefore(nodes, root.firstChild));\n resource.state.loading |= 4;\n }\n}\nvar HostTransitionContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Provider: null,\n Consumer: null,\n _currentValue: sharedNotPendingObject,\n _currentValue2: sharedNotPendingObject,\n _threadCount: 0\n};\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n formState\n) {\n this.tag = 1;\n this.containerInfo = containerInfo;\n this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode =\n this.next =\n this.pendingContext =\n this.context =\n this.cancelPendingCommit =\n null;\n this.callbackPriority = 0;\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes =\n this.shellSuspendCounter =\n this.errorRecoveryDisabledLanes =\n this.expiredLanes =\n this.warmLanes =\n this.pingedLanes =\n this.suspendedLanes =\n this.pendingLanes =\n 0;\n this.entanglements = createLaneMap(0);\n this.hiddenUpdates = createLaneMap(null);\n this.identifierPrefix = identifierPrefix;\n this.onUncaughtError = onUncaughtError;\n this.onCaughtError = onCaughtError;\n this.onRecoverableError = onRecoverableError;\n this.pooledCache = null;\n this.pooledCacheLanes = 0;\n this.formState = formState;\n this.incompleteTransitions = new Map();\n}\nfunction createFiberRoot(\n containerInfo,\n tag,\n hydrate,\n initialChildren,\n hydrationCallbacks,\n isStrictMode,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n transitionCallbacks,\n formState\n) {\n containerInfo = new FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n formState\n );\n tag = 1;\n !0 === isStrictMode && (tag |= 24);\n isStrictMode = createFiberImplClass(3, null, null, tag);\n containerInfo.current = isStrictMode;\n isStrictMode.stateNode = containerInfo;\n tag = createCache();\n tag.refCount++;\n containerInfo.pooledCache = tag;\n tag.refCount++;\n isStrictMode.memoizedState = {\n element: initialChildren,\n isDehydrated: hydrate,\n cache: tag\n };\n initializeUpdateQueue(isStrictMode);\n return containerInfo;\n}\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) return emptyContextObject;\n parentComponent = emptyContextObject;\n return parentComponent;\n}\nfunction updateContainerImpl(\n rootFiber,\n lane,\n element,\n container,\n parentComponent,\n callback\n) {\n parentComponent = getContextForSubtree(parentComponent);\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(rootFiber, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, rootFiber, lane),\n entangleTransitions(element, rootFiber, lane));\n}\nfunction markRetryLaneImpl(fiber, retryLane) {\n fiber = fiber.memoizedState;\n if (null !== fiber && null !== fiber.dehydrated) {\n var a = fiber.retryLane;\n fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;\n }\n}\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);\n}\nfunction attemptContinuousHydration(fiber) {\n if (13 === fiber.tag) {\n var root = enqueueConcurrentRenderForLane(fiber, 67108864);\n null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);\n markRetryLaneIfNotHydrated(fiber, 67108864);\n }\n}\nvar _enabled = !0;\nfunction dispatchDiscreteEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 2),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchContinuousEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 8),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchEvent(\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (_enabled) {\n var blockedOn = findInstanceBlockingEvent(nativeEvent);\n if (null === blockedOn)\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n ),\n clearIfContinuousEvent(domEventName, nativeEvent);\n else if (\n queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n )\n nativeEvent.stopPropagation();\n else if (\n (clearIfContinuousEvent(domEventName, nativeEvent),\n eventSystemFlags & 4 &&\n -1 < discreteReplayableEvents.indexOf(domEventName))\n ) {\n for (; null !== blockedOn; ) {\n var fiber = getInstanceFromNode(blockedOn);\n if (null !== fiber)\n switch (fiber.tag) {\n case 3:\n fiber = fiber.stateNode;\n if (fiber.current.memoizedState.isDehydrated) {\n var lanes = getHighestPriorityLanes(fiber.pendingLanes);\n if (0 !== lanes) {\n var root = fiber;\n root.pendingLanes |= 2;\n for (root.entangledLanes |= 2; lanes; ) {\n var lane = 1 << (31 - clz32(lanes));\n root.entanglements[1] |= lane;\n lanes &= ~lane;\n }\n ensureRootIsScheduled(fiber);\n 0 === (executionContext & 6) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n flushSyncWorkAcrossRoots_impl(0, !1));\n }\n }\n break;\n case 13:\n (root = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== root && scheduleUpdateOnFiber(root, fiber, 2),\n flushSyncWork$1(),\n markRetryLaneIfNotHydrated(fiber, 2);\n }\n fiber = findInstanceBlockingEvent(nativeEvent);\n null === fiber &&\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n );\n if (fiber === blockedOn) break;\n blockedOn = fiber;\n }\n null !== blockedOn && nativeEvent.stopPropagation();\n } else\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n null,\n targetContainer\n );\n }\n}\nfunction findInstanceBlockingEvent(nativeEvent) {\n nativeEvent = getEventTarget(nativeEvent);\n return findInstanceBlockingTarget(nativeEvent);\n}\nvar return_targetInst = null;\nfunction findInstanceBlockingTarget(targetNode) {\n return_targetInst = null;\n targetNode = getClosestInstanceFromNode(targetNode);\n if (null !== targetNode) {\n var nearestMounted = getNearestMountedFiber(targetNode);\n if (null === nearestMounted) targetNode = null;\n else {\n var tag = nearestMounted.tag;\n if (13 === tag) {\n targetNode = getSuspenseInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (3 === tag) {\n if (nearestMounted.stateNode.current.memoizedState.isDehydrated)\n return 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n targetNode = null;\n } else nearestMounted !== targetNode && (targetNode = null);\n }\n }\n return_targetInst = targetNode;\n return null;\n}\nfunction getEventPriority(domEventName) {\n switch (domEventName) {\n case \"beforetoggle\":\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"resize\":\n case \"seeked\":\n case \"submit\":\n case \"toggle\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return 2;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"scroll\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return 8;\n case \"message\":\n switch (getCurrentPriorityLevel()) {\n case ImmediatePriority:\n return 2;\n case UserBlockingPriority:\n return 8;\n case NormalPriority$1:\n case LowPriority:\n return 32;\n case IdlePriority:\n return 268435456;\n default:\n return 32;\n }\n default:\n return 32;\n }\n}\nvar hasScheduledReplayAttempt = !1,\n queuedFocus = null,\n queuedDrag = null,\n queuedMouse = null,\n queuedPointers = new Map(),\n queuedPointerCaptures = new Map(),\n queuedExplicitHydrationTargets = [],\n discreteReplayableEvents =\n \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\n \" \"\n );\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"focusin\":\n case \"focusout\":\n queuedFocus = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n queuedDrag = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n queuedMouse = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n queuedPointers.delete(nativeEvent.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n queuedPointerCaptures.delete(nativeEvent.pointerId);\n }\n}\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(\n existingQueuedEvent,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (\n null === existingQueuedEvent ||\n existingQueuedEvent.nativeEvent !== nativeEvent\n )\n return (\n (existingQueuedEvent = {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n }),\n null !== blockedOn &&\n ((blockedOn = getInstanceFromNode(blockedOn)),\n null !== blockedOn && attemptContinuousHydration(blockedOn)),\n existingQueuedEvent\n );\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n blockedOn = existingQueuedEvent.targetContainers;\n null !== targetContainer &&\n -1 === blockedOn.indexOf(targetContainer) &&\n blockedOn.push(targetContainer);\n return existingQueuedEvent;\n}\nfunction queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n switch (domEventName) {\n case \"focusin\":\n return (\n (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedFocus,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"dragenter\":\n return (\n (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedDrag,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"mouseover\":\n return (\n (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedMouse,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"pointerover\":\n var pointerId = nativeEvent.pointerId;\n queuedPointers.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointers.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n );\n return !0;\n case \"gotpointercapture\":\n return (\n (pointerId = nativeEvent.pointerId),\n queuedPointerCaptures.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointerCaptures.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n ),\n !0\n );\n }\n return !1;\n}\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n if (null !== targetInst) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n if (null !== nearestMounted)\n if (((targetInst = nearestMounted.tag), 13 === targetInst)) {\n if (\n ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n if (13 === nearestMounted.tag) {\n var lane = requestUpdateLane();\n lane = getBumpedLaneForHydrationByLane(lane);\n var root = enqueueConcurrentRenderForLane(nearestMounted, lane);\n null !== root &&\n scheduleUpdateOnFiber(root, nearestMounted, lane);\n markRetryLaneIfNotHydrated(nearestMounted, lane);\n }\n });\n return;\n }\n } else if (\n 3 === targetInst &&\n nearestMounted.stateNode.current.memoizedState.isDehydrated\n ) {\n queuedTarget.blockedOn =\n 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n return;\n }\n }\n queuedTarget.blockedOn = null;\n}\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (null !== queuedEvent.blockedOn) return !1;\n for (\n var targetContainers = queuedEvent.targetContainers;\n 0 < targetContainers.length;\n\n ) {\n var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);\n if (null === nextBlockedOn) {\n nextBlockedOn = queuedEvent.nativeEvent;\n var nativeEventClone = new nextBlockedOn.constructor(\n nextBlockedOn.type,\n nextBlockedOn\n );\n currentReplayingEvent = nativeEventClone;\n nextBlockedOn.target.dispatchEvent(nativeEventClone);\n currentReplayingEvent = null;\n } else\n return (\n (targetContainers = getInstanceFromNode(nextBlockedOn)),\n null !== targetContainers &&\n attemptContinuousHydration(targetContainers),\n (queuedEvent.blockedOn = nextBlockedOn),\n !1\n );\n targetContainers.shift();\n }\n return !0;\n}\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);\n}\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = !1;\n null !== queuedFocus &&\n attemptReplayContinuousQueuedEvent(queuedFocus) &&\n (queuedFocus = null);\n null !== queuedDrag &&\n attemptReplayContinuousQueuedEvent(queuedDrag) &&\n (queuedDrag = null);\n null !== queuedMouse &&\n attemptReplayContinuousQueuedEvent(queuedMouse) &&\n (queuedMouse = null);\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n queuedEvent.blockedOn === unblocked &&\n ((queuedEvent.blockedOn = null),\n hasScheduledReplayAttempt ||\n ((hasScheduledReplayAttempt = !0),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n replayUnblockedEvents\n )));\n}\nvar lastScheduledReplayQueue = null;\nfunction scheduleReplayQueueIfNeeded(formReplayingQueue) {\n lastScheduledReplayQueue !== formReplayingQueue &&\n ((lastScheduledReplayQueue = formReplayingQueue),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n function () {\n lastScheduledReplayQueue === formReplayingQueue &&\n (lastScheduledReplayQueue = null);\n for (var i = 0; i < formReplayingQueue.length; i += 3) {\n var form = formReplayingQueue[i],\n submitterOrAction = formReplayingQueue[i + 1],\n formData = formReplayingQueue[i + 2];\n if (\"function\" !== typeof submitterOrAction)\n if (null === findInstanceBlockingTarget(submitterOrAction || form))\n continue;\n else break;\n var formInst = getInstanceFromNode(form);\n null !== formInst &&\n (formReplayingQueue.splice(i, 3),\n (i -= 3),\n startHostTransition(\n formInst,\n {\n pending: !0,\n data: formData,\n method: form.method,\n action: submitterOrAction\n },\n submitterOrAction,\n formData\n ));\n }\n }\n ));\n}\nfunction retryIfBlockedOn(unblocked) {\n function unblock(queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n }\n null !== queuedFocus && scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n null !== queuedMouse && scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {\n var queuedTarget = queuedExplicitHydrationTargets[i];\n queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);\n }\n for (\n ;\n 0 < queuedExplicitHydrationTargets.length &&\n ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);\n\n )\n attemptExplicitHydrationTarget(i),\n null === i.blockedOn && queuedExplicitHydrationTargets.shift();\n i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;\n if (null != i)\n for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {\n var form = i[queuedTarget],\n submitterOrAction = i[queuedTarget + 1],\n formProps = form[internalPropsKey] || null;\n if (\"function\" === typeof submitterOrAction)\n formProps || scheduleReplayQueueIfNeeded(i);\n else if (formProps) {\n var action = null;\n if (submitterOrAction && submitterOrAction.hasAttribute(\"formAction\"))\n if (\n ((form = submitterOrAction),\n (formProps = submitterOrAction[internalPropsKey] || null))\n )\n action = formProps.formAction;\n else {\n if (null !== findInstanceBlockingTarget(form)) continue;\n }\n else action = formProps.action;\n \"function\" === typeof action\n ? (i[queuedTarget + 1] = action)\n : (i.splice(queuedTarget, 3), (queuedTarget -= 3));\n scheduleReplayQueueIfNeeded(i);\n }\n }\n}\nfunction ReactDOMRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =\n function (children) {\n var root = this._internalRoot;\n if (null === root) throw Error(formatProdErrorMessage(409));\n var current = root.current,\n lane = requestUpdateLane();\n updateContainerImpl(current, lane, children, root, null, null);\n };\nReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =\n function () {\n var root = this._internalRoot;\n if (null !== root) {\n this._internalRoot = null;\n var container = root.containerInfo;\n updateContainerImpl(root.current, 2, null, root, null, null);\n flushSyncWork$1();\n container[internalContainerInstanceKey] = null;\n }\n };\nfunction ReactDOMHydrationRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {\n if (target) {\n var updatePriority = resolveUpdatePriority();\n target = { blockedOn: null, target: target, priority: updatePriority };\n for (\n var i = 0;\n i < queuedExplicitHydrationTargets.length &&\n 0 !== updatePriority &&\n updatePriority < queuedExplicitHydrationTargets[i].priority;\n i++\n );\n queuedExplicitHydrationTargets.splice(i, 0, target);\n 0 === i && attemptExplicitHydrationTarget(target);\n }\n};\nvar isomorphicReactPackageVersion$jscomp$inline_1783 = React.version;\nif (\n \"19.2.0-canary-3fbfb9ba-20250409\" !==\n isomorphicReactPackageVersion$jscomp$inline_1783\n)\n throw Error(\n formatProdErrorMessage(\n 527,\n isomorphicReactPackageVersion$jscomp$inline_1783,\n \"19.2.0-canary-3fbfb9ba-20250409\"\n )\n );\nReactDOMSharedInternals.findDOMNode = function (componentOrElement) {\n var fiber = componentOrElement._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof componentOrElement.render)\n throw Error(formatProdErrorMessage(188));\n componentOrElement = Object.keys(componentOrElement).join(\",\");\n throw Error(formatProdErrorMessage(268, componentOrElement));\n }\n componentOrElement = findCurrentFiberUsingSlowPath(fiber);\n componentOrElement =\n null !== componentOrElement\n ? findCurrentHostFiberImpl(componentOrElement)\n : null;\n componentOrElement =\n null === componentOrElement ? null : componentOrElement.stateNode;\n return componentOrElement;\n};\nvar internals$jscomp$inline_2257 = {\n bundleType: 0,\n version: \"19.2.0-canary-3fbfb9ba-20250409\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.2.0-canary-3fbfb9ba-20250409\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_2258 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_2258.isDisabled &&\n hook$jscomp$inline_2258.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_2258.inject(\n internals$jscomp$inline_2257\n )),\n (injectedHook = hook$jscomp$inline_2258);\n } catch (err) {}\n}\nexports.createRoot = function (container, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n transitionCallbacks = null;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.unstable_transitionCallbacks &&\n (transitionCallbacks = options.unstable_transitionCallbacks));\n options = createFiberRoot(\n container,\n 1,\n !1,\n null,\n null,\n isStrictMode,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n transitionCallbacks,\n null\n );\n container[internalContainerInstanceKey] = options.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMRoot(options);\n};\nexports.hydrateRoot = function (container, initialChildren, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n transitionCallbacks = null,\n formState = null;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.unstable_transitionCallbacks &&\n (transitionCallbacks = options.unstable_transitionCallbacks),\n void 0 !== options.formState && (formState = options.formState));\n initialChildren = createFiberRoot(\n container,\n 1,\n !0,\n initialChildren,\n null != options ? options : null,\n isStrictMode,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n transitionCallbacks,\n formState\n );\n initialChildren.context = getContextForSubtree(null);\n options = initialChildren.current;\n isStrictMode = requestUpdateLane();\n isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);\n identifierPrefix = createUpdate(isStrictMode);\n identifierPrefix.callback = null;\n enqueueUpdate(options, identifierPrefix, isStrictMode);\n options = isStrictMode;\n initialChildren.current.lanes = options;\n markRootUpdated$1(initialChildren, options);\n ensureRootIsScheduled(initialChildren);\n container[internalContainerInstanceKey] = initialChildren.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMHydrationRoot(initialChildren);\n};\nexports.version = \"19.2.0-canary-3fbfb9ba-20250409\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom-client.production.js');\n} else {\n module.exports = require('./cjs/react-dom-client.development.js');\n}\n","import React from 'react'\n\nexport const HeadManagerContext: React.Context<{\n updateHead?: (state: any) => void\n mountedInstances?: any\n updateScripts?: (state: any) => void\n scripts?: any\n getIsSsr?: () => boolean\n\n // Used in app directory, to render script tags as server components.\n appDir?: boolean\n nonce?: string\n}> = React.createContext({})\n\nif (process.env.NODE_ENV !== 'production') {\n HeadManagerContext.displayName = 'HeadManagerContext'\n}\n","export const reportGlobalError =\n typeof reportError === 'function'\n ? // In modern browsers, reportError will dispatch an error event,\n // emulating an uncaught JavaScript error.\n reportError\n : (error: unknown) => {\n // TODO: Dispatch error event\n globalThis.console.error(error)\n }\n","// This module can be shared between both pages router and app router\n\nimport type { HydrationOptions } from 'react-dom/client'\nimport { isBailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { reportGlobalError } from './report-global-error'\nimport { getReactStitchedError } from '../components/errors/stitched-error'\nimport isError from '../../lib/is-error'\n\nexport const onRecoverableError: HydrationOptions['onRecoverableError'] = (\n error,\n errorInfo\n) => {\n // x-ref: https://github.com/facebook/react/pull/28736\n const cause = isError(error) && 'cause' in error ? error.cause : error\n const stitchedError = getReactStitchedError(cause)\n // In development mode, pass along the component stack to the error\n if (process.env.NODE_ENV === 'development' && errorInfo.componentStack) {\n ;(stitchedError as any)._componentStack = errorInfo.componentStack\n }\n // Skip certain custom errors which are not expected to be reported on client\n if (isBailoutToCSRError(cause)) return\n\n reportGlobalError(stitchedError)\n}\n","// This file is only used in app router due to the specific error state handling.\n\nimport type { ErrorInfo } from 'react'\nimport { getReactStitchedError } from '../components/errors/stitched-error'\nimport { handleClientError } from '../components/errors/use-error-handler'\nimport { isNextRouterError } from '../components/is-next-router-error'\nimport { isBailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { reportGlobalError } from './report-global-error'\nimport { originConsoleError } from '../components/globals/intercept-console-error'\nimport {\n ErrorBoundaryHandler,\n GlobalError as DefaultErrorBoundary,\n} from '../components/error-boundary'\n\nexport function onCaughtError(\n err: unknown,\n errorInfo: ErrorInfo & { errorBoundary?: React.Component }\n) {\n const errorBoundaryComponent = errorInfo.errorBoundary?.constructor\n\n let isImplicitErrorBoundary\n\n if (process.env.NODE_ENV !== 'production') {\n const { AppDevOverlayErrorBoundary } =\n require('../components/react-dev-overlay/app/app-dev-overlay-error-boundary') as typeof import('../components/react-dev-overlay/app/app-dev-overlay-error-boundary')\n\n isImplicitErrorBoundary =\n errorBoundaryComponent === AppDevOverlayErrorBoundary\n }\n\n isImplicitErrorBoundary =\n isImplicitErrorBoundary ||\n (errorBoundaryComponent === ErrorBoundaryHandler &&\n (errorInfo.errorBoundary! as InstanceType<typeof ErrorBoundaryHandler>)\n .props.errorComponent === DefaultErrorBoundary)\n\n if (isImplicitErrorBoundary) {\n // We don't consider errors caught unless they're caught by an explicit error\n // boundary. The built-in ones are considered implicit.\n // This mimics how the same app would behave without Next.js.\n return onUncaughtError(err, errorInfo)\n }\n\n // Skip certain custom errors which are not expected to be reported on client\n if (isBailoutToCSRError(err) || isNextRouterError(err)) return\n\n if (process.env.NODE_ENV !== 'production') {\n const errorBoundaryName =\n // read react component displayName\n (errorBoundaryComponent as any)?.displayName ||\n errorBoundaryComponent?.name ||\n 'Unknown'\n\n const componentThatErroredFrame = errorInfo?.componentStack?.split('\\n')[1]\n\n // Match chrome or safari stack trace\n const matches =\n // regex to match the function name in the stack trace\n // example 1: at Page (http://localhost:3000/_next/static/chunks/pages/index.js?ts=1631600000000:2:1)\n // example 2: Page@http://localhost:3000/_next/static/chunks/pages/index.js?ts=1631600000000:2:1\n componentThatErroredFrame?.match(/\\s+at (\\w+)\\s+|(\\w+)@/) ?? []\n const componentThatErroredName = matches[1] || matches[2] || 'Unknown'\n\n // Create error location with errored component and error boundary, to match the behavior of default React onCaughtError handler.\n const errorBoundaryMessage = `It was handled by the <${errorBoundaryName}> error boundary.`\n const componentErrorMessage = componentThatErroredName\n ? `The above error occurred in the <${componentThatErroredName}> component.`\n : `The above error occurred in one of your components.`\n\n const errorLocation = `${componentErrorMessage} ${errorBoundaryMessage}`\n\n const stitchedError = getReactStitchedError(err)\n // TODO: change to passing down errorInfo later\n // In development mode, pass along the component stack to the error\n if (errorInfo.componentStack) {\n ;(stitchedError as any)._componentStack = errorInfo.componentStack\n }\n\n // Log and report the error with location but without modifying the error stack\n originConsoleError('%o\\n\\n%s', err, errorLocation)\n\n handleClientError(stitchedError)\n } else {\n originConsoleError(err)\n }\n}\n\nexport function onUncaughtError(err: unknown, errorInfo: React.ErrorInfo) {\n // Skip certain custom errors which are not expected to be reported on client\n if (isBailoutToCSRError(err) || isNextRouterError(err)) return\n\n if (process.env.NODE_ENV !== 'production') {\n const stitchedError = getReactStitchedError(err)\n // TODO: change to passing down errorInfo later\n // In development mode, pass along the component stack to the error\n if (errorInfo.componentStack) {\n ;(stitchedError as any)._componentStack = errorInfo.componentStack\n }\n\n // TODO: Add an adendum to the overlay telling people about custom error boundaries.\n reportGlobalError(stitchedError)\n } else {\n reportGlobalError(err)\n }\n}\n","import type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport type { FlightSegmentPath } from '../../../server/app-render/types'\nimport { createRouterCacheKey } from './create-router-cache-key'\nimport { getNextFlightSegmentPath } from '../../flight-data-helpers'\n\n/**\n * Fill cache up to the end of the flightSegmentPath, invalidating anything below it.\n */\nexport function invalidateCacheBelowFlightSegmentPath(\n newCache: CacheNode,\n existingCache: CacheNode,\n flightSegmentPath: FlightSegmentPath\n): void {\n const isLastEntry = flightSegmentPath.length <= 2\n const [parallelRouteKey, segment] = flightSegmentPath\n\n const cacheKey = createRouterCacheKey(segment)\n\n const existingChildSegmentMap =\n existingCache.parallelRoutes.get(parallelRouteKey)\n\n if (!existingChildSegmentMap) {\n // Bailout because the existing cache does not have the path to the leaf node\n // Will trigger lazy fetch in layout-router because of missing segment\n return\n }\n\n let childSegmentMap = newCache.parallelRoutes.get(parallelRouteKey)\n if (!childSegmentMap || childSegmentMap === existingChildSegmentMap) {\n childSegmentMap = new Map(existingChildSegmentMap)\n newCache.parallelRoutes.set(parallelRouteKey, childSegmentMap)\n }\n\n // In case of last entry don't copy further down.\n if (isLastEntry) {\n childSegmentMap.delete(cacheKey)\n return\n }\n\n const existingChildCacheNode = existingChildSegmentMap.get(cacheKey)\n let childCacheNode = childSegmentMap.get(cacheKey)\n\n if (!childCacheNode || !existingChildCacheNode) {\n // Bailout because the existing cache does not have the path to the leaf node\n // Will trigger lazy fetch in layout-router because of missing segment\n return\n }\n\n if (childCacheNode === existingChildCacheNode) {\n childCacheNode = {\n lazyData: childCacheNode.lazyData,\n rsc: childCacheNode.rsc,\n prefetchRsc: childCacheNode.prefetchRsc,\n head: childCacheNode.head,\n prefetchHead: childCacheNode.prefetchHead,\n parallelRoutes: new Map(childCacheNode.parallelRoutes),\n } as CacheNode\n childSegmentMap.set(cacheKey, childCacheNode)\n }\n\n invalidateCacheBelowFlightSegmentPath(\n childCacheNode,\n existingChildCacheNode,\n getNextFlightSegmentPath(flightSegmentPath)\n )\n}\n","import type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport type {\n FlightRouterState,\n CacheNodeSeedData,\n} from '../../../server/app-render/types'\nimport { createRouterCacheKey } from './create-router-cache-key'\nimport {\n PrefetchCacheEntryStatus,\n type PrefetchCacheEntry,\n} from './router-reducer-types'\n\nexport function fillLazyItemsTillLeafWithHead(\n navigatedAt: number,\n newCache: CacheNode,\n existingCache: CacheNode | undefined,\n routerState: FlightRouterState,\n cacheNodeSeedData: CacheNodeSeedData | null,\n head: React.ReactNode,\n prefetchEntry: PrefetchCacheEntry | undefined\n): void {\n const isLastSegment = Object.keys(routerState[1]).length === 0\n if (isLastSegment) {\n newCache.head = head\n return\n }\n // Remove segment that we got data for so that it is filled in during rendering of rsc.\n for (const key in routerState[1]) {\n const parallelRouteState = routerState[1][key]\n const segmentForParallelRoute = parallelRouteState[0]\n const cacheKey = createRouterCacheKey(segmentForParallelRoute)\n\n // TODO: We should traverse the cacheNodeSeedData tree instead of the router\n // state tree. Ideally, they would always be the same shape, but because of\n // the loading.js pattern, cacheNodeSeedData sometimes only represents a\n // partial tree. That's why this node is sometimes null. Once PPR lands,\n // loading.js will no longer have special behavior and we can traverse the\n // data tree instead.\n //\n // We should also consider merging the router state tree and the data tree\n // in the response format, so that we don't have to send the keys twice.\n // Then the client can convert them into separate representations.\n const parallelSeedData =\n cacheNodeSeedData !== null && cacheNodeSeedData[2][key] !== undefined\n ? cacheNodeSeedData[2][key]\n : null\n if (existingCache) {\n const existingParallelRoutesCacheNode =\n existingCache.parallelRoutes.get(key)\n if (existingParallelRoutesCacheNode) {\n const hasReusablePrefetch =\n prefetchEntry?.kind === 'auto' &&\n prefetchEntry.status === PrefetchCacheEntryStatus.reusable\n\n let parallelRouteCacheNode = new Map(existingParallelRoutesCacheNode)\n const existingCacheNode = parallelRouteCacheNode.get(cacheKey)\n let newCacheNode: CacheNode\n if (parallelSeedData !== null) {\n // New data was sent from the server.\n const seedNode = parallelSeedData[1]\n const loading = parallelSeedData[3]\n newCacheNode = {\n lazyData: null,\n rsc: seedNode,\n // This is a PPR-only field. When PPR is enabled, we shouldn't hit\n // this path during a navigation, but until PPR is fully implemented\n // yet it's possible the existing node does have a non-null\n // `prefetchRsc`. As an incremental step, we'll just de-opt to the\n // old behavior — no PPR value.\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n loading,\n parallelRoutes: new Map(existingCacheNode?.parallelRoutes),\n navigatedAt,\n }\n } else if (hasReusablePrefetch && existingCacheNode) {\n // No new data was sent from the server, but the existing cache node\n // was prefetched, so we should reuse that.\n newCacheNode = {\n lazyData: existingCacheNode.lazyData,\n rsc: existingCacheNode.rsc,\n // This is a PPR-only field. Unlike the previous branch, since we're\n // just cloning the existing cache node, we might as well keep the\n // PPR value, if it exists.\n prefetchRsc: existingCacheNode.prefetchRsc,\n head: existingCacheNode.head,\n prefetchHead: existingCacheNode.prefetchHead,\n parallelRoutes: new Map(existingCacheNode.parallelRoutes),\n loading: existingCacheNode.loading,\n } as CacheNode\n } else {\n // No data available for this node. This will trigger a lazy fetch\n // during render.\n newCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(existingCacheNode?.parallelRoutes),\n loading: null,\n navigatedAt,\n }\n }\n\n // Overrides the cache key with the new cache node.\n parallelRouteCacheNode.set(cacheKey, newCacheNode)\n // Traverse deeper to apply the head / fill lazy items till the head.\n fillLazyItemsTillLeafWithHead(\n navigatedAt,\n newCacheNode,\n existingCacheNode,\n parallelRouteState,\n parallelSeedData ? parallelSeedData : null,\n head,\n prefetchEntry\n )\n\n newCache.parallelRoutes.set(key, parallelRouteCacheNode)\n continue\n }\n }\n\n let newCacheNode: CacheNode\n if (parallelSeedData !== null) {\n // New data was sent from the server.\n const seedNode = parallelSeedData[1]\n const loading = parallelSeedData[3]\n newCacheNode = {\n lazyData: null,\n rsc: seedNode,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading,\n navigatedAt,\n }\n } else {\n // No data available for this node. This will trigger a lazy fetch\n // during render.\n newCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt,\n }\n }\n\n const existingParallelRoutes = newCache.parallelRoutes.get(key)\n if (existingParallelRoutes) {\n existingParallelRoutes.set(cacheKey, newCacheNode)\n } else {\n newCache.parallelRoutes.set(key, new Map([[cacheKey, newCacheNode]]))\n }\n\n fillLazyItemsTillLeafWithHead(\n navigatedAt,\n newCacheNode,\n undefined,\n parallelRouteState,\n parallelSeedData,\n head,\n prefetchEntry\n )\n }\n}\n","import type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport type { FlightRouterState } from '../../../server/app-render/types'\nimport { createRouterCacheKey } from './create-router-cache-key'\n\n/**\n * Invalidate cache one level down from the router state.\n */\nexport function invalidateCacheByRouterState(\n newCache: CacheNode,\n existingCache: CacheNode,\n routerState: FlightRouterState\n): void {\n // Remove segment that we got data for so that it is filled in during rendering of rsc.\n for (const key in routerState[1]) {\n const segmentForParallelRoute = routerState[1][key][0]\n const cacheKey = createRouterCacheKey(segmentForParallelRoute)\n const existingParallelRoutesCacheNode =\n existingCache.parallelRoutes.get(key)\n if (existingParallelRoutesCacheNode) {\n let parallelRouteCacheNode = new Map(existingParallelRoutesCacheNode)\n parallelRouteCacheNode.delete(cacheKey)\n newCache.parallelRoutes.set(key, parallelRouteCacheNode)\n }\n }\n}\n","import type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport type { Segment } from '../../../server/app-render/types'\nimport { invalidateCacheByRouterState } from './invalidate-cache-by-router-state'\nimport { fillLazyItemsTillLeafWithHead } from './fill-lazy-items-till-leaf-with-head'\nimport { createRouterCacheKey } from './create-router-cache-key'\nimport type { PrefetchCacheEntry } from './router-reducer-types'\nimport { PAGE_SEGMENT_KEY } from '../../../shared/lib/segment'\nimport type { NormalizedFlightData } from '../../flight-data-helpers'\n\n/**\n * Common logic for filling cache with new sub tree data.\n */\nfunction fillCacheHelper(\n navigatedAt: number,\n newCache: CacheNode,\n existingCache: CacheNode,\n flightData: NormalizedFlightData,\n prefetchEntry: PrefetchCacheEntry | undefined,\n fillLazyItems: boolean\n): void {\n const {\n segmentPath,\n seedData: cacheNodeSeedData,\n tree: treePatch,\n head,\n } = flightData\n let newCacheNode = newCache\n let existingCacheNode = existingCache\n\n for (let i = 0; i < segmentPath.length; i += 2) {\n const parallelRouteKey: string = segmentPath[i]\n const segment: Segment = segmentPath[i + 1]\n\n // segmentPath is a repeating tuple of parallelRouteKey and segment\n // we know we've hit the last entry we've reached our final pair\n const isLastEntry = i === segmentPath.length - 2\n const cacheKey = createRouterCacheKey(segment)\n\n const existingChildSegmentMap =\n existingCacheNode.parallelRoutes.get(parallelRouteKey)\n\n if (!existingChildSegmentMap) {\n // Bailout because the existing cache does not have the path to the leaf node\n // Will trigger lazy fetch in layout-router because of missing segment\n continue\n }\n\n let childSegmentMap = newCacheNode.parallelRoutes.get(parallelRouteKey)\n if (!childSegmentMap || childSegmentMap === existingChildSegmentMap) {\n childSegmentMap = new Map(existingChildSegmentMap)\n newCacheNode.parallelRoutes.set(parallelRouteKey, childSegmentMap)\n }\n\n const existingChildCacheNode = existingChildSegmentMap.get(cacheKey)\n let childCacheNode = childSegmentMap.get(cacheKey)\n\n if (isLastEntry) {\n if (\n cacheNodeSeedData &&\n (!childCacheNode ||\n !childCacheNode.lazyData ||\n childCacheNode === existingChildCacheNode)\n ) {\n const incomingSegment = cacheNodeSeedData[0]\n const rsc = cacheNodeSeedData[1]\n const loading = cacheNodeSeedData[3]\n\n childCacheNode = {\n lazyData: null,\n // When `fillLazyItems` is false, we only want to fill the RSC data for the layout,\n // not the page segment.\n rsc:\n fillLazyItems || incomingSegment !== PAGE_SEGMENT_KEY ? rsc : null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n loading,\n parallelRoutes:\n fillLazyItems && existingChildCacheNode\n ? new Map(existingChildCacheNode.parallelRoutes)\n : new Map(),\n navigatedAt,\n }\n\n if (existingChildCacheNode && fillLazyItems) {\n invalidateCacheByRouterState(\n childCacheNode,\n existingChildCacheNode,\n treePatch\n )\n }\n if (fillLazyItems) {\n fillLazyItemsTillLeafWithHead(\n navigatedAt,\n childCacheNode,\n existingChildCacheNode,\n treePatch,\n cacheNodeSeedData,\n head,\n prefetchEntry\n )\n }\n\n childSegmentMap.set(cacheKey, childCacheNode)\n }\n continue\n }\n\n if (!childCacheNode || !existingChildCacheNode) {\n // Bailout because the existing cache does not have the path to the leaf node\n // Will trigger lazy fetch in layout-router because of missing segment\n continue\n }\n\n if (childCacheNode === existingChildCacheNode) {\n childCacheNode = {\n lazyData: childCacheNode.lazyData,\n rsc: childCacheNode.rsc,\n prefetchRsc: childCacheNode.prefetchRsc,\n head: childCacheNode.head,\n prefetchHead: childCacheNode.prefetchHead,\n parallelRoutes: new Map(childCacheNode.parallelRoutes),\n loading: childCacheNode.loading,\n } as CacheNode\n childSegmentMap.set(cacheKey, childCacheNode)\n }\n\n // Move deeper into the cache nodes\n newCacheNode = childCacheNode\n existingCacheNode = existingChildCacheNode\n }\n}\n\n/**\n * Fill cache with rsc based on flightDataPath\n */\nexport function fillCacheWithNewSubTreeData(\n navigatedAt: number,\n newCache: CacheNode,\n existingCache: CacheNode,\n flightData: NormalizedFlightData,\n prefetchEntry?: PrefetchCacheEntry\n): void {\n fillCacheHelper(\n navigatedAt,\n newCache,\n existingCache,\n flightData,\n prefetchEntry,\n true\n )\n}\n\nexport function fillCacheWithNewSubTreeDataButOnlyLoading(\n navigatedAt: number,\n newCache: CacheNode,\n existingCache: CacheNode,\n flightData: NormalizedFlightData,\n prefetchEntry?: PrefetchCacheEntry\n): void {\n fillCacheHelper(\n navigatedAt,\n newCache,\n existingCache,\n flightData,\n prefetchEntry,\n false\n )\n}\n","import type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport { fillLazyItemsTillLeafWithHead } from './fill-lazy-items-till-leaf-with-head'\nimport { fillCacheWithNewSubTreeData } from './fill-cache-with-new-subtree-data'\nimport type { PrefetchCacheEntry } from './router-reducer-types'\nimport type { NormalizedFlightData } from '../../flight-data-helpers'\n\nexport function applyFlightData(\n navigatedAt: number,\n existingCache: CacheNode,\n cache: CacheNode,\n flightData: NormalizedFlightData,\n prefetchEntry?: PrefetchCacheEntry\n): boolean {\n // The one before last item is the router state tree patch\n const { tree: treePatch, seedData, head, isRootRender } = flightData\n\n // Handles case where prefetch only returns the router tree patch without rendered components.\n if (seedData === null) {\n return false\n }\n\n if (isRootRender) {\n const rsc = seedData[1]\n const loading = seedData[3]\n cache.loading = loading\n cache.rsc = rsc\n // This is a PPR-only field. When PPR is enabled, we shouldn't hit\n // this path during a navigation, but until PPR is fully implemented\n // yet it's possible the existing node does have a non-null\n // `prefetchRsc`. As an incremental step, we'll just de-opt to the\n // old behavior — no PPR value.\n cache.prefetchRsc = null\n fillLazyItemsTillLeafWithHead(\n navigatedAt,\n cache,\n existingCache,\n treePatch,\n seedData,\n head,\n prefetchEntry\n )\n } else {\n // Copy rsc for the root node of the cache.\n cache.rsc = existingCache.rsc\n // This is a PPR-only field. Unlike the previous branch, since we're\n // just cloning the existing cache node, we might as well keep the\n // PPR value, if it exists.\n cache.prefetchRsc = existingCache.prefetchRsc\n cache.parallelRoutes = new Map(existingCache.parallelRoutes)\n cache.loading = existingCache.loading\n // Create a copy of the existing cache with the rsc applied.\n fillCacheWithNewSubTreeData(\n navigatedAt,\n cache,\n existingCache,\n flightData,\n prefetchEntry\n )\n }\n\n return true\n}\n","import type { FlightRouterState } from '../../../server/app-render/types'\nimport type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport type { AppRouterState } from './router-reducer-types'\nimport { applyFlightData } from './apply-flight-data'\nimport { fetchServerResponse } from './fetch-server-response'\nimport { PAGE_SEGMENT_KEY } from '../../../shared/lib/segment'\n\ninterface RefreshInactiveParallelSegments {\n navigatedAt: number\n state: AppRouterState\n updatedTree: FlightRouterState\n updatedCache: CacheNode\n includeNextUrl: boolean\n canonicalUrl: string\n}\n\n/**\n * Refreshes inactive segments that are still in the current FlightRouterState.\n * A segment is considered \"inactive\" when the server response indicates it didn't match to a page component.\n * This happens during a soft-navigation, where the server will want to patch in the segment\n * with the \"default\" component, but we explicitly ignore the server in this case\n * and keep the existing state for that segment. New data for inactive segments are inherently\n * not part of the server response when we patch the tree, because they were associated with a response\n * from an earlier navigation/request. For each segment, once it becomes \"active\", we encode the URL that provided\n * the data for it. This function traverses parallel routes looking for these markers so that it can re-fetch\n * and patch the new data into the tree.\n */\nexport async function refreshInactiveParallelSegments(\n options: RefreshInactiveParallelSegments\n) {\n const fetchedSegments = new Set<string>()\n await refreshInactiveParallelSegmentsImpl({\n ...options,\n rootTree: options.updatedTree,\n fetchedSegments,\n })\n}\n\nasync function refreshInactiveParallelSegmentsImpl({\n navigatedAt,\n state,\n updatedTree,\n updatedCache,\n includeNextUrl,\n fetchedSegments,\n rootTree = updatedTree,\n canonicalUrl,\n}: RefreshInactiveParallelSegments & {\n fetchedSegments: Set<string>\n rootTree: FlightRouterState\n}) {\n const [, parallelRoutes, refetchPath, refetchMarker] = updatedTree\n const fetchPromises = []\n\n if (\n refetchPath &&\n refetchPath !== canonicalUrl &&\n refetchMarker === 'refresh' &&\n // it's possible for the tree to contain multiple segments that contain data at the same URL\n // we keep track of them so we can dedupe the requests\n !fetchedSegments.has(refetchPath)\n ) {\n fetchedSegments.add(refetchPath) // Mark this URL as fetched\n\n // Eagerly kick off the fetch for the refetch path & the parallel routes. This should be fine to do as they each operate\n // independently on their own cache nodes, and `applyFlightData` will copy anything it doesn't care about from the existing cache.\n const fetchPromise = fetchServerResponse(\n new URL(refetchPath, location.origin),\n {\n // refetch from the root of the updated tree, otherwise it will be scoped to the current segment\n // and might not contain the data we need to patch in interception route data (such as dynamic params from a previous segment)\n flightRouterState: [rootTree[0], rootTree[1], rootTree[2], 'refetch'],\n nextUrl: includeNextUrl ? state.nextUrl : null,\n }\n ).then(({ flightData }) => {\n if (typeof flightData !== 'string') {\n for (const flightDataPath of flightData) {\n // we only pass the new cache as this function is called after clearing the router cache\n // and filling in the new page data from the server. Meaning the existing cache is actually the cache that's\n // just been created & has been written to, but hasn't been \"committed\" yet.\n applyFlightData(\n navigatedAt,\n updatedCache,\n updatedCache,\n flightDataPath\n )\n }\n } else {\n // When flightData is a string, it suggests that the server response should have triggered an MPA navigation\n // I'm not 100% sure of this decision, but it seems unlikely that we'd want to introduce a redirect side effect\n // when refreshing on-screen data, so handling this has been ommitted.\n }\n })\n\n fetchPromises.push(fetchPromise)\n }\n\n for (const key in parallelRoutes) {\n const parallelFetchPromise = refreshInactiveParallelSegmentsImpl({\n navigatedAt,\n state,\n updatedTree: parallelRoutes[key],\n updatedCache,\n includeNextUrl,\n fetchedSegments,\n rootTree,\n canonicalUrl,\n })\n\n fetchPromises.push(parallelFetchPromise)\n }\n\n await Promise.all(fetchPromises)\n}\n\n/**\n * Walks the current parallel segments to determine if they are \"active\".\n * An active parallel route will have a `__PAGE__` segment in the FlightRouterState.\n * As opposed to a `__DEFAULT__` segment, which means there was no match for that parallel route.\n * We add a special marker here so that we know how to refresh its data when the router is revalidated.\n */\nexport function addRefreshMarkerToActiveParallelSegments(\n tree: FlightRouterState,\n path: string\n) {\n const [segment, parallelRoutes, , refetchMarker] = tree\n // a page segment might also contain concatenated search params, so we do a partial match on the key\n if (segment.includes(PAGE_SEGMENT_KEY) && refetchMarker !== 'refresh') {\n tree[2] = path\n tree[3] = 'refresh'\n }\n\n for (const key in parallelRoutes) {\n addRefreshMarkerToActiveParallelSegments(parallelRoutes[key], path)\n }\n}\n","import type {\n FlightRouterState,\n FlightSegmentPath,\n} from '../../../server/app-render/types'\nimport { DEFAULT_SEGMENT_KEY } from '../../../shared/lib/segment'\nimport { getNextFlightSegmentPath } from '../../flight-data-helpers'\nimport { matchSegment } from '../match-segments'\nimport { addRefreshMarkerToActiveParallelSegments } from './refetch-inactive-parallel-segments'\n\n/**\n * Deep merge of the two router states. Parallel route keys are preserved if the patch doesn't have them.\n */\nfunction applyPatch(\n initialTree: FlightRouterState,\n patchTree: FlightRouterState\n): FlightRouterState {\n const [initialSegment, initialParallelRoutes] = initialTree\n const [patchSegment, patchParallelRoutes] = patchTree\n\n // if the applied patch segment is __DEFAULT__ then it can be ignored in favor of the initial tree\n // this is because the __DEFAULT__ segment is used as a placeholder on navigation\n if (\n patchSegment === DEFAULT_SEGMENT_KEY &&\n initialSegment !== DEFAULT_SEGMENT_KEY\n ) {\n return initialTree\n }\n\n if (matchSegment(initialSegment, patchSegment)) {\n const newParallelRoutes: FlightRouterState[1] = {}\n for (const key in initialParallelRoutes) {\n const isInPatchTreeParallelRoutes =\n typeof patchParallelRoutes[key] !== 'undefined'\n if (isInPatchTreeParallelRoutes) {\n newParallelRoutes[key] = applyPatch(\n initialParallelRoutes[key],\n patchParallelRoutes[key]\n )\n } else {\n newParallelRoutes[key] = initialParallelRoutes[key]\n }\n }\n\n for (const key in patchParallelRoutes) {\n if (newParallelRoutes[key]) {\n continue\n }\n\n newParallelRoutes[key] = patchParallelRoutes[key]\n }\n\n const tree: FlightRouterState = [initialSegment, newParallelRoutes]\n\n // Copy over the existing tree\n if (initialTree[2]) {\n tree[2] = initialTree[2]\n }\n\n if (initialTree[3]) {\n tree[3] = initialTree[3]\n }\n\n if (initialTree[4]) {\n tree[4] = initialTree[4]\n }\n\n return tree\n }\n\n return patchTree\n}\n\n/**\n * Apply the router state from the Flight response, but skip patching default segments.\n * Useful for patching the router cache when navigating, where we persist the existing default segment if there isn't a new one.\n * Creates a new router state tree.\n */\nexport function applyRouterStatePatchToTree(\n flightSegmentPath: FlightSegmentPath,\n flightRouterState: FlightRouterState,\n treePatch: FlightRouterState,\n path: string\n): FlightRouterState | null {\n const [segment, parallelRoutes, url, refetch, isRootLayout] =\n flightRouterState\n\n // Root refresh\n if (flightSegmentPath.length === 1) {\n const tree: FlightRouterState = applyPatch(flightRouterState, treePatch)\n\n addRefreshMarkerToActiveParallelSegments(tree, path)\n\n return tree\n }\n\n const [currentSegment, parallelRouteKey] = flightSegmentPath\n\n // Tree path returned from the server should always match up with the current tree in the browser\n if (!matchSegment(currentSegment, segment)) {\n return null\n }\n\n const lastSegment = flightSegmentPath.length === 2\n\n let parallelRoutePatch\n if (lastSegment) {\n parallelRoutePatch = applyPatch(parallelRoutes[parallelRouteKey], treePatch)\n } else {\n parallelRoutePatch = applyRouterStatePatchToTree(\n getNextFlightSegmentPath(flightSegmentPath),\n parallelRoutes[parallelRouteKey],\n treePatch,\n path\n )\n\n if (parallelRoutePatch === null) {\n return null\n }\n }\n\n const tree: FlightRouterState = [\n flightSegmentPath[0],\n {\n ...parallelRoutes,\n [parallelRouteKey]: parallelRoutePatch,\n },\n url,\n refetch,\n ]\n\n // Current segment is the root layout\n if (isRootLayout) {\n tree[4] = true\n }\n\n addRefreshMarkerToActiveParallelSegments(tree, path)\n\n return tree\n}\n","import type {\n FlightRouterState,\n FlightDataPath,\n Segment,\n} from '../../../server/app-render/types'\nimport { getNextFlightSegmentPath } from '../../flight-data-helpers'\nimport { matchSegment } from '../match-segments'\n\n// TODO-APP: flightSegmentPath will be empty in case of static response, needs to be handled.\nexport function shouldHardNavigate(\n flightSegmentPath: FlightDataPath,\n flightRouterState: FlightRouterState\n): boolean {\n const [segment, parallelRoutes] = flightRouterState\n // TODO-APP: Check if `as` can be replaced.\n const [currentSegment, parallelRouteKey] = flightSegmentPath as [\n Segment,\n string,\n ]\n\n // Check if current segment matches the existing segment.\n if (!matchSegment(currentSegment, segment)) {\n // If dynamic parameter in tree doesn't match up with segment path a hard navigation is triggered.\n if (Array.isArray(currentSegment)) {\n return true\n }\n\n // If the existing segment did not match soft navigation is triggered.\n return false\n }\n const lastSegment = flightSegmentPath.length <= 2\n\n if (lastSegment) {\n return false\n }\n\n return shouldHardNavigate(\n getNextFlightSegmentPath(flightSegmentPath),\n parallelRoutes[parallelRouteKey]\n )\n}\n","import type { FlightRouterState } from '../../../server/app-render/types'\n\nexport function isNavigatingToNewRootLayout(\n currentTree: FlightRouterState,\n nextTree: FlightRouterState\n): boolean {\n // Compare segments\n const currentTreeSegment = currentTree[0]\n const nextTreeSegment = nextTree[0]\n\n // If any segment is different before we find the root layout, the root layout has changed.\n // E.g. /same/(group1)/layout.js -> /same/(group2)/layout.js\n // First segment is 'same' for both, keep looking. (group1) changed to (group2) before the root layout was found, it must have changed.\n if (Array.isArray(currentTreeSegment) && Array.isArray(nextTreeSegment)) {\n // Compare dynamic param name and type but ignore the value, different values would not affect the current root layout\n // /[name] - /slug1 and /slug2, both values (slug1 & slug2) still has the same layout /[name]/layout.js\n if (\n currentTreeSegment[0] !== nextTreeSegment[0] ||\n currentTreeSegment[2] !== nextTreeSegment[2]\n ) {\n return true\n }\n } else if (currentTreeSegment !== nextTreeSegment) {\n return true\n }\n\n // Current tree root layout found\n if (currentTree[4]) {\n // If the next tree doesn't have the root layout flag, it must have changed.\n return !nextTree[4]\n }\n // Current tree didn't have its root layout here, must have changed.\n if (nextTree[4]) {\n return true\n }\n // We can't assume it's `parallelRoutes.children` here in case the root layout is `app/@something/layout.js`\n // But it's not possible to be more than one parallelRoutes before the root layout is found\n // TODO-APP: change to traverse all parallel routes\n const currentTreeChild = Object.values(currentTree[1])[0]\n const nextTreeChild = Object.values(nextTree[1])[0]\n if (!currentTreeChild || !nextTreeChild) return true\n return isNavigatingToNewRootLayout(currentTreeChild, nextTreeChild)\n}\n","import type {\n FlightRouterState,\n Segment,\n} from '../../../server/app-render/types'\nimport { INTERCEPTION_ROUTE_MARKERS } from '../../../shared/lib/router/utils/interception-routes'\nimport type { Params } from '../../../server/request/params'\nimport {\n isGroupSegment,\n DEFAULT_SEGMENT_KEY,\n PAGE_SEGMENT_KEY,\n} from '../../../shared/lib/segment'\nimport { matchSegment } from '../match-segments'\n\nconst removeLeadingSlash = (segment: string): string => {\n return segment[0] === '/' ? segment.slice(1) : segment\n}\n\nconst segmentToPathname = (segment: Segment): string => {\n if (typeof segment === 'string') {\n // 'children' is not a valid path -- it's technically a parallel route that corresponds with the current segment's page\n // if we don't skip it, then the computed pathname might be something like `/children` which doesn't make sense.\n if (segment === 'children') return ''\n\n return segment\n }\n\n return segment[1]\n}\n\nfunction normalizeSegments(segments: string[]): string {\n return (\n segments.reduce((acc, segment) => {\n segment = removeLeadingSlash(segment)\n if (segment === '' || isGroupSegment(segment)) {\n return acc\n }\n\n return `${acc}/${segment}`\n }, '') || '/'\n )\n}\n\nexport function extractPathFromFlightRouterState(\n flightRouterState: FlightRouterState\n): string | undefined {\n const segment = Array.isArray(flightRouterState[0])\n ? flightRouterState[0][1]\n : flightRouterState[0]\n\n if (\n segment === DEFAULT_SEGMENT_KEY ||\n INTERCEPTION_ROUTE_MARKERS.some((m) => segment.startsWith(m))\n )\n return undefined\n\n if (segment.startsWith(PAGE_SEGMENT_KEY)) return ''\n\n const segments = [segmentToPathname(segment)]\n const parallelRoutes = flightRouterState[1] ?? {}\n\n const childrenPath = parallelRoutes.children\n ? extractPathFromFlightRouterState(parallelRoutes.children)\n : undefined\n\n if (childrenPath !== undefined) {\n segments.push(childrenPath)\n } else {\n for (const [key, value] of Object.entries(parallelRoutes)) {\n if (key === 'children') continue\n\n const childPath = extractPathFromFlightRouterState(value)\n\n if (childPath !== undefined) {\n segments.push(childPath)\n }\n }\n }\n\n return normalizeSegments(segments)\n}\n\nfunction computeChangedPathImpl(\n treeA: FlightRouterState,\n treeB: FlightRouterState\n): string | null {\n const [segmentA, parallelRoutesA] = treeA\n const [segmentB, parallelRoutesB] = treeB\n\n const normalizedSegmentA = segmentToPathname(segmentA)\n const normalizedSegmentB = segmentToPathname(segmentB)\n\n if (\n INTERCEPTION_ROUTE_MARKERS.some(\n (m) =>\n normalizedSegmentA.startsWith(m) || normalizedSegmentB.startsWith(m)\n )\n ) {\n return ''\n }\n\n if (!matchSegment(segmentA, segmentB)) {\n // once we find where the tree changed, we compute the rest of the path by traversing the tree\n return extractPathFromFlightRouterState(treeB) ?? ''\n }\n\n for (const parallelRouterKey in parallelRoutesA) {\n if (parallelRoutesB[parallelRouterKey]) {\n const changedPath = computeChangedPathImpl(\n parallelRoutesA[parallelRouterKey],\n parallelRoutesB[parallelRouterKey]\n )\n if (changedPath !== null) {\n return `${segmentToPathname(segmentB)}/${changedPath}`\n }\n }\n }\n\n return null\n}\n\nexport function computeChangedPath(\n treeA: FlightRouterState,\n treeB: FlightRouterState\n): string | null {\n const changedPath = computeChangedPathImpl(treeA, treeB)\n\n if (changedPath == null || changedPath === '/') {\n return changedPath\n }\n\n // lightweight normalization to remove route groups\n return normalizeSegments(changedPath.split('/'))\n}\n\n/**\n * Recursively extracts dynamic parameters from FlightRouterState.\n */\nexport function getSelectedParams(\n currentTree: FlightRouterState,\n params: Params = {}\n): Params {\n const parallelRoutes = currentTree[1]\n\n for (const parallelRoute of Object.values(parallelRoutes)) {\n const segment = parallelRoute[0]\n const isDynamicParameter = Array.isArray(segment)\n const segmentValue = isDynamicParameter ? segment[1] : segment\n if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) continue\n\n // Ensure catchAll and optional catchall are turned into an array\n const isCatchAll =\n isDynamicParameter && (segment[2] === 'c' || segment[2] === 'oc')\n\n if (isCatchAll) {\n params[segment[0]] = segment[1].split('/')\n } else if (isDynamicParameter) {\n params[segment[0]] = segment[1]\n }\n\n params = getSelectedParams(parallelRoute, params)\n }\n\n return params\n}\n","import { computeChangedPath } from './compute-changed-path'\nimport type {\n Mutable,\n ReadonlyReducerState,\n ReducerState,\n} from './router-reducer-types'\n\nfunction isNotUndefined<T>(value: T): value is Exclude<T, undefined> {\n return typeof value !== 'undefined'\n}\n\nexport function handleMutable(\n state: ReadonlyReducerState,\n mutable: Mutable\n): ReducerState {\n // shouldScroll is true by default, can override to false.\n const shouldScroll = mutable.shouldScroll ?? true\n\n let nextUrl = state.nextUrl\n\n if (isNotUndefined(mutable.patchedTree)) {\n // If we received a patched tree, we need to compute the changed path.\n const changedPath = computeChangedPath(state.tree, mutable.patchedTree)\n if (changedPath) {\n // If the tree changed, we need to update the nextUrl\n nextUrl = changedPath\n } else if (!nextUrl) {\n // if the tree ends up being the same (ie, no changed path), and we don't have a nextUrl, then we should use the canonicalUrl\n nextUrl = state.canonicalUrl\n }\n // otherwise this will be a no-op and continue to use the existing nextUrl\n }\n\n return {\n // Set href.\n canonicalUrl: isNotUndefined(mutable.canonicalUrl)\n ? mutable.canonicalUrl === state.canonicalUrl\n ? state.canonicalUrl\n : mutable.canonicalUrl\n : state.canonicalUrl,\n pushRef: {\n pendingPush: isNotUndefined(mutable.pendingPush)\n ? mutable.pendingPush\n : state.pushRef.pendingPush,\n mpaNavigation: isNotUndefined(mutable.mpaNavigation)\n ? mutable.mpaNavigation\n : state.pushRef.mpaNavigation,\n preserveCustomHistoryState: isNotUndefined(\n mutable.preserveCustomHistoryState\n )\n ? mutable.preserveCustomHistoryState\n : state.pushRef.preserveCustomHistoryState,\n },\n // All navigation requires scroll and focus management to trigger.\n focusAndScrollRef: {\n apply: shouldScroll\n ? isNotUndefined(mutable?.scrollableSegments)\n ? true\n : state.focusAndScrollRef.apply\n : // If shouldScroll is false then we should not apply scroll and focus management.\n false,\n onlyHashChange: mutable.onlyHashChange || false,\n hashFragment: shouldScroll\n ? // Empty hash should trigger default behavior of scrolling layout into view.\n // #top is handled in layout-router.\n mutable.hashFragment && mutable.hashFragment !== ''\n ? // Remove leading # and decode hash to make non-latin hashes work.\n decodeURIComponent(mutable.hashFragment.slice(1))\n : state.focusAndScrollRef.hashFragment\n : // If shouldScroll is false then we should not apply scroll and focus management.\n null,\n segmentPaths: shouldScroll\n ? mutable?.scrollableSegments ?? state.focusAndScrollRef.segmentPaths\n : // If shouldScroll is false then we should not apply scroll and focus management.\n [],\n },\n // Apply cache.\n cache: mutable.cache ? mutable.cache : state.cache,\n prefetchCache: mutable.prefetchCache\n ? mutable.prefetchCache\n : state.prefetchCache,\n // Apply patched router state.\n tree: isNotUndefined(mutable.patchedTree)\n ? mutable.patchedTree\n : state.tree,\n nextUrl,\n }\n}\n","\"use strict\";\n\nfunction _class_private_field_loose_base(receiver, privateKey) {\n if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {\n throw new TypeError(\"attempted to use private field on non-instance\");\n }\n\n return receiver;\n}\nexports._ = _class_private_field_loose_base;\n","\"use strict\";\n\nvar id = 0;\n\nfunction _class_private_field_loose_key(name) {\n return \"__private_\" + id++ + \"_\" + name;\n}\nexports._ = _class_private_field_loose_key;\n","/*\n This is a simple promise queue that allows you to limit the number of concurrent promises\n that are running at any given time. It's used to limit the number of concurrent\n prefetch requests that are being made to the server but could be used for other\n things as well.\n*/\nexport class PromiseQueue {\n #maxConcurrency: number\n #runningCount: number\n #queue: Array<{\n promiseFn: Promise<any>\n task: () => void\n }>\n\n constructor(maxConcurrency = 5) {\n this.#maxConcurrency = maxConcurrency\n this.#runningCount = 0\n this.#queue = []\n }\n\n enqueue<T>(promiseFn: () => Promise<T>): Promise<T> {\n let taskResolve: (value: T | PromiseLike<T>) => void\n let taskReject: (reason?: any) => void\n\n const taskPromise = new Promise((resolve, reject) => {\n taskResolve = resolve\n taskReject = reject\n }) as Promise<T>\n\n const task = async () => {\n try {\n this.#runningCount++\n const result = await promiseFn()\n taskResolve(result)\n } catch (error) {\n taskReject(error)\n } finally {\n this.#runningCount--\n this.#processNext()\n }\n }\n\n const enqueueResult = { promiseFn: taskPromise, task }\n // wonder if we should take a LIFO approach here\n this.#queue.push(enqueueResult)\n this.#processNext()\n\n return taskPromise\n }\n\n bump(promiseFn: Promise<any>) {\n const index = this.#queue.findIndex((item) => item.promiseFn === promiseFn)\n\n if (index > -1) {\n const bumpedItem = this.#queue.splice(index, 1)[0]\n this.#queue.unshift(bumpedItem)\n this.#processNext(true)\n }\n }\n\n #processNext(forced = false) {\n if (\n (this.#runningCount < this.#maxConcurrency || forced) &&\n this.#queue.length > 0\n ) {\n this.#queue.shift()?.task()\n }\n }\n}\n","import {\n fetchServerResponse,\n type FetchServerResponseResult,\n} from './fetch-server-response'\nimport {\n PrefetchCacheEntryStatus,\n type PrefetchCacheEntry,\n PrefetchKind,\n type ReadonlyReducerState,\n} from './router-reducer-types'\nimport { prefetchQueue } from './reducers/prefetch-reducer'\n\nconst INTERCEPTION_CACHE_KEY_MARKER = '%'\n\nexport type AliasedPrefetchCacheEntry = PrefetchCacheEntry & {\n /** This is a special property that indicates a prefetch entry associated with a different URL\n * was returned rather than the requested URL. This signals to the router that it should only\n * apply the part that doesn't depend on searchParams (specifically the loading state).\n */\n aliased?: boolean\n}\n\n/**\n * Creates a cache key for the router prefetch cache\n *\n * @param url - The URL being navigated to\n * @param nextUrl - an internal URL, primarily used for handling rewrites. Defaults to '/'.\n * @return The generated prefetch cache key.\n */\nfunction createPrefetchCacheKeyImpl(\n url: URL,\n includeSearchParams: boolean,\n prefix?: string | null\n) {\n // Initially we only use the pathname as the cache key. We don't want to include\n // search params so that multiple URLs with the same search parameter can re-use\n // loading states.\n let pathnameFromUrl = url.pathname\n\n // RSC responses can differ based on search params, specifically in the case where we aren't\n // returning a partial response (ie with `PrefetchKind.AUTO`).\n // In the auto case, since loading.js & layout.js won't have access to search params,\n // we can safely re-use that cache entry. But for full prefetches, we should not\n // re-use the cache entry as the response may differ.\n if (includeSearchParams) {\n // if we have a full prefetch, we can include the search param in the key,\n // as we'll be getting back a full response. The server might have read the search\n // params when generating the full response.\n pathnameFromUrl += url.search\n }\n\n if (prefix) {\n return `${prefix}${INTERCEPTION_CACHE_KEY_MARKER}${pathnameFromUrl}`\n }\n\n return pathnameFromUrl\n}\n\nfunction createPrefetchCacheKey(\n url: URL,\n kind: PrefetchKind | undefined,\n nextUrl?: string | null\n) {\n return createPrefetchCacheKeyImpl(url, kind === PrefetchKind.FULL, nextUrl)\n}\n\nfunction getExistingCacheEntry(\n url: URL,\n kind: PrefetchKind = PrefetchKind.TEMPORARY,\n nextUrl: string | null,\n prefetchCache: Map<string, PrefetchCacheEntry>,\n allowAliasing: boolean\n): AliasedPrefetchCacheEntry | undefined {\n // We first check if there's a more specific interception route prefetch entry\n // This is because when we detect a prefetch that corresponds with an interception route, we prefix it with nextUrl (see `createPrefetchCacheKey`)\n // to avoid conflicts with other pages that may have the same URL but render different things depending on the `Next-URL` header.\n for (const maybeNextUrl of [nextUrl, null]) {\n const cacheKeyWithParams = createPrefetchCacheKeyImpl(\n url,\n true,\n maybeNextUrl\n )\n const cacheKeyWithoutParams = createPrefetchCacheKeyImpl(\n url,\n false,\n maybeNextUrl\n )\n\n // First, we check if we have a cache entry that exactly matches the URL\n const cacheKeyToUse = url.search\n ? cacheKeyWithParams\n : cacheKeyWithoutParams\n\n const existingEntry = prefetchCache.get(cacheKeyToUse)\n if (existingEntry && allowAliasing) {\n // We know we're returning an aliased entry when the pathname matches but the search params don't,\n const isAliased =\n existingEntry.url.pathname === url.pathname &&\n existingEntry.url.search !== url.search\n\n if (isAliased) {\n return {\n ...existingEntry,\n aliased: true,\n }\n }\n\n return existingEntry\n }\n\n // If the request contains search params, and we're not doing a full prefetch, we can return the\n // param-less entry if it exists.\n // This is technically covered by the check at the bottom of this function, which iterates over cache entries,\n // but lets us arrive there quicker in the param-full case.\n const entryWithoutParams = prefetchCache.get(cacheKeyWithoutParams)\n if (\n process.env.NODE_ENV !== 'development' &&\n allowAliasing &&\n url.search &&\n kind !== PrefetchKind.FULL &&\n entryWithoutParams &&\n // We shouldn't return the aliased entry if it was relocated to a new cache key.\n // Since it's rewritten, it could respond with a completely different loading state.\n !entryWithoutParams.key.includes(INTERCEPTION_CACHE_KEY_MARKER)\n ) {\n return { ...entryWithoutParams, aliased: true }\n }\n }\n\n // If we've gotten to this point, we didn't find a specific cache entry that matched\n // the request URL.\n // We attempt a partial match by checking if there's a cache entry with the same pathname.\n // Regardless of what we find, since it doesn't correspond with the requested URL, we'll mark it \"aliased\".\n // This will signal to the router that it should only apply the loading state on the prefetched data.\n if (\n process.env.NODE_ENV !== 'development' &&\n kind !== PrefetchKind.FULL &&\n allowAliasing\n ) {\n for (const cacheEntry of prefetchCache.values()) {\n if (\n cacheEntry.url.pathname === url.pathname &&\n // We shouldn't return the aliased entry if it was relocated to a new cache key.\n // Since it's rewritten, it could respond with a completely different loading state.\n !cacheEntry.key.includes(INTERCEPTION_CACHE_KEY_MARKER)\n ) {\n return { ...cacheEntry, aliased: true }\n }\n }\n }\n\n return undefined\n}\n\n/**\n * Returns a prefetch cache entry if one exists. Otherwise creates a new one and enqueues a fetch request\n * to retrieve the prefetch data from the server.\n */\nexport function getOrCreatePrefetchCacheEntry({\n url,\n nextUrl,\n tree,\n prefetchCache,\n kind,\n allowAliasing = true,\n}: Pick<ReadonlyReducerState, 'nextUrl' | 'prefetchCache' | 'tree'> & {\n url: URL\n kind?: PrefetchKind\n allowAliasing: boolean\n}): AliasedPrefetchCacheEntry {\n const existingCacheEntry = getExistingCacheEntry(\n url,\n kind,\n nextUrl,\n prefetchCache,\n allowAliasing\n )\n\n if (existingCacheEntry) {\n // Grab the latest status of the cache entry and update it\n existingCacheEntry.status = getPrefetchEntryCacheStatus(existingCacheEntry)\n\n // when `kind` is provided, an explicit prefetch was requested.\n // if the requested prefetch is \"full\" and the current cache entry wasn't, we want to re-prefetch with the new intent\n const switchedToFullPrefetch =\n existingCacheEntry.kind !== PrefetchKind.FULL &&\n kind === PrefetchKind.FULL\n\n if (switchedToFullPrefetch) {\n // If we switched to a full prefetch, validate that the existing cache entry contained partial data.\n // It's possible that the cache entry was seeded with full data but has a cache type of \"auto\" (ie when cache entries\n // are seeded but without a prefetch intent)\n existingCacheEntry.data.then((prefetchResponse) => {\n const isFullPrefetch =\n Array.isArray(prefetchResponse.flightData) &&\n prefetchResponse.flightData.some((flightData) => {\n // If we started rendering from the root and we returned RSC data (seedData), we already had a full prefetch.\n return flightData.isRootRender && flightData.seedData !== null\n })\n\n if (!isFullPrefetch) {\n return createLazyPrefetchEntry({\n tree,\n url,\n nextUrl,\n prefetchCache,\n // If we didn't get an explicit prefetch kind, we want to set a temporary kind\n // rather than assuming the same intent as the previous entry, to be consistent with how we\n // lazily create prefetch entries when intent is left unspecified.\n kind: kind ?? PrefetchKind.TEMPORARY,\n })\n }\n })\n }\n\n // If the existing cache entry was marked as temporary, it means it was lazily created when attempting to get an entry,\n // where we didn't have the prefetch intent. Now that we have the intent (in `kind`), we want to update the entry to the more accurate kind.\n if (kind && existingCacheEntry.kind === PrefetchKind.TEMPORARY) {\n existingCacheEntry.kind = kind\n }\n\n // We've determined that the existing entry we found is still valid, so we return it.\n return existingCacheEntry\n }\n\n // If we didn't return an entry, create a new one.\n return createLazyPrefetchEntry({\n tree,\n url,\n nextUrl,\n prefetchCache,\n kind: kind || PrefetchKind.TEMPORARY,\n })\n}\n\n/*\n * Used to take an existing cache entry and prefix it with the nextUrl, if it exists.\n * This ensures that we don't have conflicting cache entries for the same URL (as is the case with route interception).\n */\nfunction prefixExistingPrefetchCacheEntry({\n url,\n nextUrl,\n prefetchCache,\n existingCacheKey,\n}: Pick<ReadonlyReducerState, 'nextUrl' | 'prefetchCache'> & {\n url: URL\n existingCacheKey: string\n}) {\n const existingCacheEntry = prefetchCache.get(existingCacheKey)\n if (!existingCacheEntry) {\n // no-op -- there wasn't an entry to move\n return\n }\n\n const newCacheKey = createPrefetchCacheKey(\n url,\n existingCacheEntry.kind,\n nextUrl\n )\n prefetchCache.set(newCacheKey, { ...existingCacheEntry, key: newCacheKey })\n prefetchCache.delete(existingCacheKey)\n\n return newCacheKey\n}\n\n/**\n * Use to seed the prefetch cache with data that has already been fetched.\n */\nexport function createSeededPrefetchCacheEntry({\n nextUrl,\n tree,\n prefetchCache,\n url,\n data,\n kind,\n}: Pick<ReadonlyReducerState, 'nextUrl' | 'tree' | 'prefetchCache'> & {\n url: URL\n data: FetchServerResponseResult\n kind: PrefetchKind\n}) {\n // The initial cache entry technically includes full data, but it isn't explicitly prefetched -- we just seed the\n // prefetch cache so that we can skip an extra prefetch request later, since we already have the data.\n // if the prefetch corresponds with an interception route, we use the nextUrl to prefix the cache key\n const prefetchCacheKey = data.couldBeIntercepted\n ? createPrefetchCacheKey(url, kind, nextUrl)\n : createPrefetchCacheKey(url, kind)\n\n const prefetchEntry = {\n treeAtTimeOfPrefetch: tree,\n data: Promise.resolve(data),\n kind,\n prefetchTime: Date.now(),\n lastUsedTime: Date.now(),\n staleTime: -1,\n key: prefetchCacheKey,\n status: PrefetchCacheEntryStatus.fresh,\n url,\n } satisfies PrefetchCacheEntry\n\n prefetchCache.set(prefetchCacheKey, prefetchEntry)\n\n return prefetchEntry\n}\n\n/**\n * Creates a prefetch entry entry and enqueues a fetch request to retrieve the data.\n */\nfunction createLazyPrefetchEntry({\n url,\n kind,\n tree,\n nextUrl,\n prefetchCache,\n}: Pick<ReadonlyReducerState, 'nextUrl' | 'tree' | 'prefetchCache'> & {\n url: URL\n kind: PrefetchKind\n}): PrefetchCacheEntry {\n const prefetchCacheKey = createPrefetchCacheKey(url, kind)\n\n // initiates the fetch request for the prefetch and attaches a listener\n // to the promise to update the prefetch cache entry when the promise resolves (if necessary)\n const data = prefetchQueue.enqueue(() =>\n fetchServerResponse(url, {\n flightRouterState: tree,\n nextUrl,\n prefetchKind: kind,\n }).then((prefetchResponse) => {\n // TODO: `fetchServerResponse` should be more tighly coupled to these prefetch cache operations\n // to avoid drift between this cache key prefixing logic\n // (which is currently directly influenced by the server response)\n let newCacheKey\n\n if (prefetchResponse.couldBeIntercepted) {\n // Determine if we need to prefix the cache key with the nextUrl\n newCacheKey = prefixExistingPrefetchCacheEntry({\n url,\n existingCacheKey: prefetchCacheKey,\n nextUrl,\n prefetchCache,\n })\n }\n\n // If the prefetch was a cache hit, we want to update the existing cache entry to reflect that it was a full prefetch.\n // This is because we know that a static response will contain the full RSC payload, and can be updated to respect the `static`\n // staleTime.\n if (prefetchResponse.prerendered) {\n const existingCacheEntry = prefetchCache.get(\n // if we prefixed the cache key due to route interception, we want to use the new key. Otherwise we use the original key\n newCacheKey ?? prefetchCacheKey\n )\n if (existingCacheEntry) {\n existingCacheEntry.kind = PrefetchKind.FULL\n if (prefetchResponse.staleTime !== -1) {\n // This is the stale time that was collected by the server during\n // static generation. Use this in place of the default stale time.\n existingCacheEntry.staleTime = prefetchResponse.staleTime\n }\n }\n }\n\n return prefetchResponse\n })\n )\n\n const prefetchEntry = {\n treeAtTimeOfPrefetch: tree,\n data,\n kind,\n prefetchTime: Date.now(),\n lastUsedTime: null,\n staleTime: -1,\n key: prefetchCacheKey,\n status: PrefetchCacheEntryStatus.fresh,\n url,\n }\n\n prefetchCache.set(prefetchCacheKey, prefetchEntry)\n\n return prefetchEntry\n}\n\nexport function prunePrefetchCache(\n prefetchCache: ReadonlyReducerState['prefetchCache']\n) {\n for (const [href, prefetchCacheEntry] of prefetchCache) {\n if (\n getPrefetchEntryCacheStatus(prefetchCacheEntry) ===\n PrefetchCacheEntryStatus.expired\n ) {\n prefetchCache.delete(href)\n }\n }\n}\n\n// These values are set by `define-env-plugin` (based on `nextConfig.experimental.staleTimes`)\n// and default to 5 minutes (static) / 0 seconds (dynamic)\nexport const DYNAMIC_STALETIME_MS =\n Number(process.env.__NEXT_CLIENT_ROUTER_DYNAMIC_STALETIME) * 1000\n\nexport const STATIC_STALETIME_MS =\n Number(process.env.__NEXT_CLIENT_ROUTER_STATIC_STALETIME) * 1000\n\nfunction getPrefetchEntryCacheStatus({\n kind,\n prefetchTime,\n lastUsedTime,\n staleTime,\n}: PrefetchCacheEntry): PrefetchCacheEntryStatus {\n if (staleTime !== -1) {\n // `staleTime` is the value sent by the server during static generation.\n // When this is available, it takes precedence over any of the heuristics\n // that follow.\n //\n // TODO: When PPR is enabled, the server will *always* return a stale time\n // when prefetching. We should never use a prefetch entry that hasn't yet\n // received data from the server. So the only two cases should be 1) we use\n // the server-generated stale time 2) the unresolved entry is discarded.\n return Date.now() < prefetchTime + staleTime\n ? PrefetchCacheEntryStatus.fresh\n : PrefetchCacheEntryStatus.stale\n }\n\n // We will re-use the cache entry data for up to the `dynamic` staletime window.\n if (Date.now() < (lastUsedTime ?? prefetchTime) + DYNAMIC_STALETIME_MS) {\n return lastUsedTime\n ? PrefetchCacheEntryStatus.reusable\n : PrefetchCacheEntryStatus.fresh\n }\n\n // For \"auto\" prefetching, we'll re-use only the loading boundary for up to `static` staletime window.\n // A stale entry will only re-use the `loading` boundary, not the full data.\n // This will trigger a \"lazy fetch\" for the full data.\n if (kind === PrefetchKind.AUTO) {\n if (Date.now() < prefetchTime + STATIC_STALETIME_MS) {\n return PrefetchCacheEntryStatus.stale\n }\n }\n\n // for \"full\" prefetching, we'll re-use the cache entry data for up to `static` staletime window.\n if (kind === PrefetchKind.FULL) {\n if (Date.now() < prefetchTime + STATIC_STALETIME_MS) {\n return PrefetchCacheEntryStatus.reusable\n }\n }\n\n return PrefetchCacheEntryStatus.expired\n}\n","import type {\n PrefetchAction,\n ReducerState,\n ReadonlyReducerState,\n} from '../router-reducer-types'\nimport { PromiseQueue } from '../../promise-queue'\nimport {\n getOrCreatePrefetchCacheEntry,\n prunePrefetchCache,\n} from '../prefetch-cache-utils'\nexport const prefetchQueue = new PromiseQueue(5)\n\nexport const prefetchReducer = process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? identityReducerWhenSegmentCacheIsEnabled\n : prefetchReducerImpl\n\nfunction identityReducerWhenSegmentCacheIsEnabled<T>(state: T): T {\n // Unlike the old implementation, the Segment Cache doesn't store its data in\n // the router reducer state.\n //\n // This shouldn't be reachable because we wrap the prefetch API in a check,\n // too, which prevents the action from being dispatched. But it's here for\n // clarity + code elimination.\n return state\n}\n\nfunction prefetchReducerImpl(\n state: ReadonlyReducerState,\n action: PrefetchAction\n): ReducerState {\n // let's prune the prefetch cache before we do anything else\n prunePrefetchCache(state.prefetchCache)\n\n const { url } = action\n\n getOrCreatePrefetchCacheEntry({\n url,\n nextUrl: state.nextUrl,\n prefetchCache: state.prefetchCache,\n kind: action.kind,\n tree: state.tree,\n allowAliasing: true,\n })\n\n return state\n}\n","// This regex contains the bots that we need to do a blocking render for and can't safely stream the response\n// due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent.\nexport const HTML_LIMITED_BOT_UA_RE =\n /Mediapartners-Google|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti/i\n","import { HTML_LIMITED_BOT_UA_RE } from './html-bots'\n\n// Bot crawler that will spin up a headless browser and execute JS\nconst HEADLESS_BROWSER_BOT_UA_RE =\n /Googlebot|Google-PageRenderer|AdsBot-Google|googleweblight|Storebot-Google/i\n\nexport const HTML_LIMITED_BOT_UA_RE_STRING = HTML_LIMITED_BOT_UA_RE.source\n\nexport { HTML_LIMITED_BOT_UA_RE }\n\nfunction isDomBotUA(userAgent: string) {\n return HEADLESS_BROWSER_BOT_UA_RE.test(userAgent)\n}\n\nfunction isHtmlLimitedBotUA(userAgent: string) {\n return HTML_LIMITED_BOT_UA_RE.test(userAgent)\n}\n\nexport function isBot(userAgent: string): boolean {\n return isDomBotUA(userAgent) || isHtmlLimitedBotUA(userAgent)\n}\n\nexport function getBotType(userAgent: string): 'dom' | 'html' | undefined {\n if (isDomBotUA(userAgent)) {\n return 'dom'\n }\n if (isHtmlLimitedBotUA(userAgent)) {\n return 'html'\n }\n return undefined\n}\n","/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */\nexport function parsePath(path: string) {\n const hashIndex = path.indexOf('#')\n const queryIndex = path.indexOf('?')\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex)\n\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery\n ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined)\n : '',\n hash: hashIndex > -1 ? path.slice(hashIndex) : '',\n }\n }\n\n return { pathname: path, query: '', hash: '' }\n}\n","import { parsePath } from './parse-path'\n\n/**\n * Adds the provided prefix to the given path. It first ensures that the path\n * is indeed starting with a slash.\n */\nexport function addPathPrefix(path: string, prefix?: string) {\n if (!path.startsWith('/') || !prefix) {\n return path\n }\n\n const { pathname, query, hash } = parsePath(path)\n return `${prefix}${pathname}${query}${hash}`\n}\n","/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */\nexport function removeTrailingSlash(route: string) {\n return route.replace(/\\/$/, '') || '/'\n}\n","import { removeTrailingSlash } from '../shared/lib/router/utils/remove-trailing-slash'\nimport { parsePath } from '../shared/lib/router/utils/parse-path'\n\n/**\n * Normalizes the trailing slash of a path according to the `trailingSlash` option\n * in `next.config.js`.\n */\nexport const normalizePathTrailingSlash = (path: string) => {\n if (!path.startsWith('/') || process.env.__NEXT_MANUAL_TRAILING_SLASH) {\n return path\n }\n\n const { pathname, query, hash } = parsePath(path)\n if (process.env.__NEXT_TRAILING_SLASH) {\n if (/\\.[^/]+\\/?$/.test(pathname)) {\n return `${removeTrailingSlash(pathname)}${query}${hash}`\n } else if (pathname.endsWith('/')) {\n return `${pathname}${query}${hash}`\n } else {\n return `${pathname}/${query}${hash}`\n }\n }\n\n return `${removeTrailingSlash(pathname)}${query}${hash}`\n}\n","import { addPathPrefix } from '../shared/lib/router/utils/add-path-prefix'\nimport { normalizePathTrailingSlash } from './normalize-trailing-slash'\n\nconst basePath = (process.env.__NEXT_ROUTER_BASEPATH as string) || ''\n\nexport function addBasePath(path: string, required?: boolean): string {\n return normalizePathTrailingSlash(\n process.env.__NEXT_MANUAL_CLIENT_BASE_PATH && !required\n ? path\n : addPathPrefix(path, basePath)\n )\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport type { FlightRouterState } from '../../server/app-render/types'\n\nconst ANNOUNCER_TYPE = 'next-route-announcer'\nconst ANNOUNCER_ID = '__next-route-announcer__'\n\nfunction getAnnouncerNode() {\n const existingAnnouncer = document.getElementsByName(ANNOUNCER_TYPE)[0]\n if (existingAnnouncer?.shadowRoot?.childNodes[0]) {\n return existingAnnouncer.shadowRoot.childNodes[0] as HTMLElement\n } else {\n const container = document.createElement(ANNOUNCER_TYPE)\n container.style.cssText = 'position:absolute'\n const announcer = document.createElement('div')\n announcer.ariaLive = 'assertive'\n announcer.id = ANNOUNCER_ID\n announcer.role = 'alert'\n announcer.style.cssText =\n 'position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal'\n\n // Use shadow DOM here to avoid any potential CSS bleed\n const shadow = container.attachShadow({ mode: 'open' })\n shadow.appendChild(announcer)\n document.body.appendChild(container)\n return announcer\n }\n}\n\nexport function AppRouterAnnouncer({ tree }: { tree: FlightRouterState }) {\n const [portalNode, setPortalNode] = useState<HTMLElement | null>(null)\n\n useEffect(() => {\n const announcer = getAnnouncerNode()\n setPortalNode(announcer)\n return () => {\n const container = document.getElementsByTagName(ANNOUNCER_TYPE)[0]\n if (container?.isConnected) {\n document.body.removeChild(container)\n }\n }\n }, [])\n\n const [routeAnnouncement, setRouteAnnouncement] = useState('')\n const previousTitle = useRef<string | undefined>(undefined)\n\n useEffect(() => {\n let currentTitle = ''\n if (document.title) {\n currentTitle = document.title\n } else {\n const pageHeader = document.querySelector('h1')\n if (pageHeader) {\n currentTitle = pageHeader.innerText || pageHeader.textContent || ''\n }\n }\n\n // Only announce the title change, but not for the first load because screen\n // readers do that automatically.\n if (\n previousTitle.current !== undefined &&\n previousTitle.current !== currentTitle\n ) {\n setRouteAnnouncement(currentTitle)\n }\n previousTitle.current = currentTitle\n }, [tree])\n\n return portalNode ? createPortal(routeAnnouncement, portalNode) : null\n}\n","import type { FlightRouterState } from '../../../../server/app-render/types'\nimport type { CacheNode } from '../../../../shared/lib/app-router-context.shared-runtime'\nimport { createRouterCacheKey } from '../create-router-cache-key'\n\nexport function findHeadInCache(\n cache: CacheNode,\n parallelRoutes: FlightRouterState[1]\n): [CacheNode, string] | null {\n return findHeadInCacheImpl(cache, parallelRoutes, '')\n}\n\nfunction findHeadInCacheImpl(\n cache: CacheNode,\n parallelRoutes: FlightRouterState[1],\n keyPrefix: string\n): [CacheNode, string] | null {\n const isLastItem = Object.keys(parallelRoutes).length === 0\n if (isLastItem) {\n // Returns the entire Cache Node of the segment whose head we will render.\n return [cache, keyPrefix]\n }\n\n // First try the 'children' parallel route if it exists\n // when starting from the \"root\", this corresponds with the main page component\n const parallelRoutesKeys = Object.keys(parallelRoutes).filter(\n (key) => key !== 'children'\n )\n\n // if we are at the root, we need to check the children slot first\n if ('children' in parallelRoutes) {\n parallelRoutesKeys.unshift('children')\n }\n\n for (const key of parallelRoutesKeys) {\n const [segment, childParallelRoutes] = parallelRoutes[key]\n const childSegmentMap = cache.parallelRoutes.get(key)\n if (!childSegmentMap) {\n continue\n }\n\n const cacheKey = createRouterCacheKey(segment)\n\n const cacheNode = childSegmentMap.get(cacheKey)\n if (!cacheNode) {\n continue\n }\n\n const item = findHeadInCacheImpl(\n cacheNode,\n childParallelRoutes,\n keyPrefix + '/' + cacheKey\n )\n if (item) {\n return item\n }\n }\n\n return null\n}\n","import { parsePath } from './parse-path'\n\n/**\n * Checks if a given path starts with a given prefix. It ensures it matches\n * exactly without containing extra chars. e.g. prefix /docs should replace\n * for /docs, /docs/, /docs/a but not /docsss\n * @param path The path to check.\n * @param prefix The prefix to check against.\n */\nexport function pathHasPrefix(path: string, prefix: string) {\n if (typeof path !== 'string') {\n return false\n }\n\n const { pathname } = parsePath(path)\n return pathname === prefix || pathname.startsWith(prefix + '/')\n}\n","import { pathHasPrefix } from '../shared/lib/router/utils/path-has-prefix'\n\nconst basePath = (process.env.__NEXT_ROUTER_BASEPATH as string) || ''\n\nexport function hasBasePath(path: string): boolean {\n return pathHasPrefix(path, basePath)\n}\n","import { hasBasePath } from './has-base-path'\n\nconst basePath = (process.env.__NEXT_ROUTER_BASEPATH as string) || ''\n\nexport function removeBasePath(path: string): string {\n if (process.env.__NEXT_MANUAL_CLIENT_BASE_PATH) {\n if (!hasBasePath(path)) {\n return path\n }\n }\n\n // Can't trim the basePath if it has zero length!\n if (basePath.length === 0) return path\n\n path = path.slice(basePath.length)\n if (!path.startsWith('/')) path = `/${path}`\n return path\n}\n","/**\n * Entry point to the Segment Cache implementation.\n *\n * All code related to the Segment Cache lives `segment-cache-impl` directory.\n * Callers access it through this indirection.\n *\n * This is to ensure the code is dead code eliminated from the bundle if the\n * flag is disabled.\n *\n * TODO: This is super tedious. Since experimental flags are an essential part\n * of our workflow, we should establish a better pattern for dead code\n * elimination. Ideally it would be done at the bundler level, like how React's\n * build process works. In the React repo, you don't even need to add any extra\n * configuration per experiment — if the code is not reachable, it gets stripped\n * from the build automatically by Rollup. Or, shorter term, we could stub out\n * experimental modules at build time by updating the build config, i.e. a more\n * automated version of what I'm doing manually in this file.\n */\n\nexport type { NavigationResult } from './segment-cache-impl/navigation'\nexport type { PrefetchTask } from './segment-cache-impl/scheduler'\n\nconst notEnabled: any = () => {\n throw new Error(\n 'Segment Cache experiment is not enabled. This is a bug in Next.js.'\n )\n}\n\nexport const prefetch: typeof import('./segment-cache-impl/prefetch').prefetch =\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? function (...args) {\n return require('./segment-cache-impl/prefetch').prefetch(...args)\n }\n : notEnabled\n\nexport const navigate: typeof import('./segment-cache-impl/navigation').navigate =\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? function (...args) {\n return require('./segment-cache-impl/navigation').navigate(...args)\n }\n : notEnabled\n\nexport const revalidateEntireCache: typeof import('./segment-cache-impl/cache').revalidateEntireCache =\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? function (...args) {\n return require('./segment-cache-impl/cache').revalidateEntireCache(\n ...args\n )\n }\n : notEnabled\n\nexport const getCurrentCacheVersion: typeof import('./segment-cache-impl/cache').getCurrentCacheVersion =\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? function (...args) {\n return require('./segment-cache-impl/cache').getCurrentCacheVersion(\n ...args\n )\n }\n : notEnabled\n\nexport const schedulePrefetchTask: typeof import('./segment-cache-impl/scheduler').schedulePrefetchTask =\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? function (...args) {\n return require('./segment-cache-impl/scheduler').schedulePrefetchTask(\n ...args\n )\n }\n : notEnabled\n\nexport const cancelPrefetchTask: typeof import('./segment-cache-impl/scheduler').cancelPrefetchTask =\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? function (...args) {\n return require('./segment-cache-impl/scheduler').cancelPrefetchTask(\n ...args\n )\n }\n : notEnabled\n\nexport const reschedulePrefetchTask: typeof import('./segment-cache-impl/scheduler').reschedulePrefetchTask =\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? function (...args) {\n return require('./segment-cache-impl/scheduler').reschedulePrefetchTask(\n ...args\n )\n }\n : notEnabled\n\nexport const createCacheKey: typeof import('./segment-cache-impl/cache-key').createCacheKey =\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? function (...args) {\n return require('./segment-cache-impl/cache-key').createCacheKey(...args)\n }\n : notEnabled\n\n/**\n * Below are public constants. They're small enough that we don't need to\n * DCE them.\n */\n\nexport const enum NavigationResultTag {\n MPA,\n Success,\n NoOp,\n Async,\n}\n\n/**\n * The priority of the prefetch task. Higher numbers are higher priority.\n */\nexport const enum PrefetchPriority {\n /**\n * Assigned to any visible link that was hovered/touched at some point. This\n * is not removed on mouse exit, because a link that was momentarily\n * hovered is more likely to to be interacted with than one that was not.\n */\n Intent = 2,\n /**\n * The default priority for prefetch tasks.\n */\n Default = 1,\n /**\n * Assigned to tasks when they spawn non-blocking background work, like\n * revalidating a partially cached entry to see if more data is available.\n */\n Background = 0,\n}\n","import type { FlightRouterState } from '../../server/app-render/types'\nimport type { AppRouterInstance } from '../../shared/lib/app-router-context.shared-runtime'\nimport { getCurrentAppRouterState } from './app-router-instance'\nimport { createPrefetchURL } from './app-router'\nimport { PrefetchKind } from './router-reducer/router-reducer-types'\nimport { getCurrentCacheVersion } from './segment-cache'\nimport { createCacheKey } from './segment-cache'\nimport {\n type PrefetchTask,\n PrefetchPriority,\n schedulePrefetchTask as scheduleSegmentPrefetchTask,\n cancelPrefetchTask,\n reschedulePrefetchTask,\n} from './segment-cache'\nimport { startTransition } from 'react'\n\ntype LinkElement = HTMLAnchorElement | SVGAElement\n\ntype Element = LinkElement | HTMLFormElement\n\n// Properties that are shared between Link and Form instances. We use the same\n// shape for both to prevent a polymorphic de-opt in the VM.\ntype LinkOrFormInstanceShared = {\n router: AppRouterInstance\n kind: PrefetchKind.AUTO | PrefetchKind.FULL\n\n isVisible: boolean\n wasHoveredOrTouched: boolean\n\n // The most recently initiated prefetch task. It may or may not have\n // already completed. The same prefetch task object can be reused across\n // multiple prefetches of the same link.\n prefetchTask: PrefetchTask | null\n\n // The cache version at the time the task was initiated. This is used to\n // determine if the cache was invalidated since the task was initiated.\n cacheVersion: number\n}\n\nexport type FormInstance = LinkOrFormInstanceShared & {\n prefetchHref: string\n setOptimisticLinkStatus: null\n}\n\ntype PrefetchableLinkInstance = LinkOrFormInstanceShared & {\n prefetchHref: string\n setOptimisticLinkStatus: (status: { pending: boolean }) => void\n}\n\ntype NonPrefetchableLinkInstance = LinkOrFormInstanceShared & {\n prefetchHref: null\n setOptimisticLinkStatus: (status: { pending: boolean }) => void\n}\n\ntype PrefetchableInstance = PrefetchableLinkInstance | FormInstance\n\nexport type LinkInstance =\n | PrefetchableLinkInstance\n | NonPrefetchableLinkInstance\n\n// Tracks the most recently navigated link instance. When null, indicates\n// the current navigation was not initiated by a link click.\nlet linkForMostRecentNavigation: LinkInstance | null = null\n\n// Status object indicating link is pending\nexport const PENDING_LINK_STATUS = { pending: true }\n\n// Status object indicating link is idle\nexport const IDLE_LINK_STATUS = { pending: false }\n\n// Updates the loading state when navigating between links\n// - Resets the previous link's loading state\n// - Sets the new link's loading state\n// - Updates tracking of current navigation\nexport function setLinkForCurrentNavigation(link: LinkInstance | null) {\n startTransition(() => {\n linkForMostRecentNavigation?.setOptimisticLinkStatus(IDLE_LINK_STATUS)\n link?.setOptimisticLinkStatus(PENDING_LINK_STATUS)\n linkForMostRecentNavigation = link\n })\n}\n\n// Unmounts the current link instance from navigation tracking\nexport function unmountLinkForCurrentNavigation(link: LinkInstance) {\n if (linkForMostRecentNavigation === link) {\n linkForMostRecentNavigation = null\n }\n}\n\n// Use a WeakMap to associate a Link instance with its DOM element. This is\n// used by the IntersectionObserver to track the link's visibility.\nconst prefetchable:\n | WeakMap<Element, PrefetchableInstance>\n | Map<Element, PrefetchableInstance> =\n typeof WeakMap === 'function' ? new WeakMap() : new Map()\n\n// A Set of the currently visible links. We re-prefetch visible links after a\n// cache invalidation, or when the current URL changes. It's a separate data\n// structure from the WeakMap above because only the visible links need to\n// be enumerated.\nconst prefetchableAndVisible: Set<PrefetchableInstance> = new Set()\n\n// A single IntersectionObserver instance shared by all <Link> components.\nconst observer: IntersectionObserver | null =\n typeof IntersectionObserver === 'function'\n ? new IntersectionObserver(handleIntersect, {\n rootMargin: '200px',\n })\n : null\n\nfunction observeVisibility(element: Element, instance: PrefetchableInstance) {\n const existingInstance = prefetchable.get(element)\n if (existingInstance !== undefined) {\n // This shouldn't happen because each <Link> component should have its own\n // anchor tag instance, but it's defensive coding to avoid a memory leak in\n // case there's a logical error somewhere else.\n unmountPrefetchableInstance(element)\n }\n // Only track prefetchable links that have a valid prefetch URL\n prefetchable.set(element, instance)\n if (observer !== null) {\n observer.observe(element)\n }\n}\n\nfunction coercePrefetchableUrl(href: string): URL | null {\n try {\n return createPrefetchURL(href)\n } catch {\n // createPrefetchURL sometimes throws an error if an invalid URL is\n // provided, though I'm not sure if it's actually necessary.\n // TODO: Consider removing the throw from the inner function, or change it\n // to reportError. Or maybe the error isn't even necessary for automatic\n // prefetches, just navigations.\n const reportErrorFn =\n typeof reportError === 'function' ? reportError : console.error\n reportErrorFn(\n `Cannot prefetch '${href}' because it cannot be converted to a URL.`\n )\n return null\n }\n}\n\nexport function mountLinkInstance(\n element: LinkElement,\n href: string,\n router: AppRouterInstance,\n kind: PrefetchKind.AUTO | PrefetchKind.FULL,\n prefetchEnabled: boolean,\n setOptimisticLinkStatus: (status: { pending: boolean }) => void\n): LinkInstance {\n if (prefetchEnabled) {\n const prefetchURL = coercePrefetchableUrl(href)\n if (prefetchURL !== null) {\n const instance: PrefetchableLinkInstance = {\n router,\n kind,\n isVisible: false,\n wasHoveredOrTouched: false,\n prefetchTask: null,\n cacheVersion: -1,\n prefetchHref: prefetchURL.href,\n setOptimisticLinkStatus,\n }\n // We only observe the link's visibility if it's prefetchable. For\n // example, this excludes links to external URLs.\n observeVisibility(element, instance)\n return instance\n }\n }\n // If the link is not prefetchable, we still create an instance so we can\n // track its optimistic state (i.e. useLinkStatus).\n const instance: NonPrefetchableLinkInstance = {\n router,\n kind,\n isVisible: false,\n wasHoveredOrTouched: false,\n prefetchTask: null,\n cacheVersion: -1,\n prefetchHref: null,\n setOptimisticLinkStatus,\n }\n return instance\n}\n\nexport function mountFormInstance(\n element: HTMLFormElement,\n href: string,\n router: AppRouterInstance,\n kind: PrefetchKind.AUTO | PrefetchKind.FULL\n): void {\n const prefetchURL = coercePrefetchableUrl(href)\n if (prefetchURL === null) {\n // This href is not prefetchable, so we don't track it.\n // TODO: We currently observe/unobserve a form every time its href changes.\n // For Links, this isn't a big deal because the href doesn't usually change,\n // but for forms it's extremely common. We should optimize this.\n return\n }\n const instance: FormInstance = {\n router,\n kind,\n isVisible: false,\n wasHoveredOrTouched: false,\n prefetchTask: null,\n cacheVersion: -1,\n prefetchHref: prefetchURL.href,\n setOptimisticLinkStatus: null,\n }\n observeVisibility(element, instance)\n}\n\nexport function unmountPrefetchableInstance(element: Element) {\n const instance = prefetchable.get(element)\n if (instance !== undefined) {\n prefetchable.delete(element)\n prefetchableAndVisible.delete(instance)\n const prefetchTask = instance.prefetchTask\n if (prefetchTask !== null) {\n cancelPrefetchTask(prefetchTask)\n }\n }\n if (observer !== null) {\n observer.unobserve(element)\n }\n}\n\nfunction handleIntersect(entries: Array<IntersectionObserverEntry>) {\n for (const entry of entries) {\n // Some extremely old browsers or polyfills don't reliably support\n // isIntersecting so we check intersectionRatio instead. (Do we care? Not\n // really. But whatever this is fine.)\n const isVisible = entry.intersectionRatio > 0\n onLinkVisibilityChanged(entry.target as HTMLAnchorElement, isVisible)\n }\n}\n\nexport function onLinkVisibilityChanged(element: Element, isVisible: boolean) {\n if (process.env.NODE_ENV !== 'production') {\n // Prefetching on viewport is disabled in development for performance\n // reasons, because it requires compiling the target page.\n // TODO: Investigate re-enabling this.\n return\n }\n\n const instance = prefetchable.get(element)\n if (instance === undefined) {\n return\n }\n\n instance.isVisible = isVisible\n if (isVisible) {\n prefetchableAndVisible.add(instance)\n } else {\n prefetchableAndVisible.delete(instance)\n }\n rescheduleLinkPrefetch(instance)\n}\n\nexport function onNavigationIntent(\n element: HTMLAnchorElement | SVGAElement,\n unstable_upgradeToDynamicPrefetch: boolean\n) {\n const instance = prefetchable.get(element)\n if (instance === undefined) {\n return\n }\n // Prefetch the link on hover/touchstart.\n if (instance !== undefined) {\n instance.wasHoveredOrTouched = true\n if (\n process.env.__NEXT_DYNAMIC_ON_HOVER &&\n unstable_upgradeToDynamicPrefetch\n ) {\n // Switch to a full, dynamic prefetch\n instance.kind = PrefetchKind.FULL\n }\n rescheduleLinkPrefetch(instance)\n }\n}\n\nfunction rescheduleLinkPrefetch(instance: PrefetchableInstance) {\n const existingPrefetchTask = instance.prefetchTask\n\n if (!instance.isVisible) {\n // Cancel any in-progress prefetch task. (If it already finished then this\n // is a no-op.)\n if (existingPrefetchTask !== null) {\n cancelPrefetchTask(existingPrefetchTask)\n }\n // We don't need to reset the prefetchTask to null upon cancellation; an\n // old task object can be rescheduled with reschedulePrefetchTask. This is a\n // micro-optimization but also makes the code simpler (don't need to\n // worry about whether an old task object is stale).\n return\n }\n\n if (!process.env.__NEXT_CLIENT_SEGMENT_CACHE) {\n // The old prefetch implementation does not have different priority levels.\n // Just schedule a new prefetch task.\n prefetchWithOldCacheImplementation(instance)\n return\n }\n\n // In the Segment Cache implementation, we assign a higher priority level to\n // links that were at one point hovered or touched. Since the queue is last-\n // in-first-out, the highest priority Link is whichever one was hovered last.\n //\n // We also increase the relative priority of links whenever they re-enter the\n // viewport, as if they were being scheduled for the first time.\n const priority = instance.wasHoveredOrTouched\n ? PrefetchPriority.Intent\n : PrefetchPriority.Default\n const appRouterState = getCurrentAppRouterState()\n if (appRouterState !== null) {\n const treeAtTimeOfPrefetch = appRouterState.tree\n if (existingPrefetchTask === null) {\n // Initiate a prefetch task.\n const nextUrl = appRouterState.nextUrl\n const cacheKey = createCacheKey(instance.prefetchHref, nextUrl)\n instance.prefetchTask = scheduleSegmentPrefetchTask(\n cacheKey,\n treeAtTimeOfPrefetch,\n instance.kind === PrefetchKind.FULL,\n priority\n )\n } else {\n // We already have an old task object that we can reschedule. This is\n // effectively the same as canceling the old task and creating a new one.\n reschedulePrefetchTask(\n existingPrefetchTask,\n treeAtTimeOfPrefetch,\n instance.kind === PrefetchKind.FULL,\n priority\n )\n }\n\n // Keep track of the cache version at the time the prefetch was requested.\n // This is used to check if the prefetch is stale.\n instance.cacheVersion = getCurrentCacheVersion()\n }\n}\n\nexport function pingVisibleLinks(\n nextUrl: string | null,\n tree: FlightRouterState\n) {\n // For each currently visible link, cancel the existing prefetch task (if it\n // exists) and schedule a new one. This is effectively the same as if all the\n // visible links left and then re-entered the viewport.\n //\n // This is called when the Next-Url or the base tree changes, since those\n // may affect the result of a prefetch task. It's also called after a\n // cache invalidation.\n const currentCacheVersion = getCurrentCacheVersion()\n for (const instance of prefetchableAndVisible) {\n const task = instance.prefetchTask\n if (\n task !== null &&\n instance.cacheVersion === currentCacheVersion &&\n task.key.nextUrl === nextUrl &&\n task.treeAtTimeOfPrefetch === tree\n ) {\n // The cache has not been invalidated, and none of the inputs have\n // changed. Bail out.\n continue\n }\n // Something changed. Cancel the existing prefetch task and schedule a\n // new one.\n if (task !== null) {\n cancelPrefetchTask(task)\n }\n const cacheKey = createCacheKey(instance.prefetchHref, nextUrl)\n const priority = instance.wasHoveredOrTouched\n ? PrefetchPriority.Intent\n : PrefetchPriority.Default\n instance.prefetchTask = scheduleSegmentPrefetchTask(\n cacheKey,\n tree,\n instance.kind === PrefetchKind.FULL,\n priority\n )\n instance.cacheVersion = getCurrentCacheVersion()\n }\n}\n\nfunction prefetchWithOldCacheImplementation(instance: PrefetchableInstance) {\n // This is the path used when the Segment Cache is not enabled.\n if (typeof window === 'undefined') {\n return\n }\n\n const doPrefetch = async () => {\n // note that `appRouter.prefetch()` is currently sync,\n // so we have to wrap this call in an async function to be able to catch() errors below.\n return instance.router.prefetch(instance.prefetchHref, {\n kind: instance.kind,\n })\n }\n\n // Prefetch the page if asked (only in the client)\n // We need to handle a prefetch error here since we may be\n // loading with priority which can reject but we don't\n // want to force navigation since this is only a prefetch\n doPrefetch().catch((err) => {\n if (process.env.NODE_ENV !== 'production') {\n // rethrow to show invalid URL errors\n throw err\n }\n })\n}\n","'use client'\n\nimport React, {\n use,\n useEffect,\n useMemo,\n startTransition,\n useInsertionEffect,\n useDeferredValue,\n} from 'react'\nimport {\n AppRouterContext,\n LayoutRouterContext,\n GlobalLayoutRouterContext,\n} from '../../shared/lib/app-router-context.shared-runtime'\nimport type { CacheNode } from '../../shared/lib/app-router-context.shared-runtime'\nimport { ACTION_RESTORE } from './router-reducer/router-reducer-types'\nimport type { AppRouterState } from './router-reducer/router-reducer-types'\nimport { createHrefFromUrl } from './router-reducer/create-href-from-url'\nimport {\n SearchParamsContext,\n PathnameContext,\n PathParamsContext,\n} from '../../shared/lib/hooks-client-context.shared-runtime'\nimport { dispatchAppRouterAction, useActionQueue } from './use-action-queue'\nimport {\n default as DefaultGlobalError,\n ErrorBoundary,\n type GlobalErrorComponent,\n} from './error-boundary'\nimport { isBot } from '../../shared/lib/router/utils/is-bot'\nimport { addBasePath } from '../add-base-path'\nimport { AppRouterAnnouncer } from './app-router-announcer'\nimport { RedirectBoundary } from './redirect-boundary'\nimport { findHeadInCache } from './router-reducer/reducers/find-head-in-cache'\nimport { unresolvedThenable } from './unresolved-thenable'\nimport { removeBasePath } from '../remove-base-path'\nimport { hasBasePath } from '../has-base-path'\nimport { getSelectedParams } from './router-reducer/compute-changed-path'\nimport type { FlightRouterState } from '../../server/app-render/types'\nimport { useNavFailureHandler } from './nav-failure-handler'\nimport {\n dispatchTraverseAction,\n publicAppRouterInstance,\n type AppRouterActionQueue,\n} from './app-router-instance'\nimport { getRedirectTypeFromError, getURLFromRedirectError } from './redirect'\nimport { isRedirectError, RedirectType } from './redirect-error'\nimport { pingVisibleLinks } from './links'\n\nconst globalMutable: {\n pendingMpaPath?: string\n} = {}\n\nexport function isExternalURL(url: URL) {\n return url.origin !== window.location.origin\n}\n\n/**\n * Given a link href, constructs the URL that should be prefetched. Returns null\n * in cases where prefetching should be disabled, like external URLs, or\n * during development.\n * @param href The href passed to <Link>, router.prefetch(), or similar\n * @returns A URL object to prefetch, or null if prefetching should be disabled\n */\nexport function createPrefetchURL(href: string): URL | null {\n // Don't prefetch for bots as they don't navigate.\n if (isBot(window.navigator.userAgent)) {\n return null\n }\n\n let url: URL\n try {\n url = new URL(addBasePath(href), window.location.href)\n } catch (_) {\n // TODO: Does this need to throw or can we just console.error instead? Does\n // anyone rely on this throwing? (Seems unlikely.)\n throw new Error(\n `Cannot prefetch '${href}' because it cannot be converted to a URL.`\n )\n }\n\n // Don't prefetch during development (improves compilation performance)\n if (process.env.NODE_ENV === 'development') {\n return null\n }\n\n // External urls can't be prefetched in the same way.\n if (isExternalURL(url)) {\n return null\n }\n\n return url\n}\n\nfunction HistoryUpdater({\n appRouterState,\n}: {\n appRouterState: AppRouterState\n}) {\n useInsertionEffect(() => {\n if (process.env.__NEXT_APP_NAV_FAIL_HANDLING) {\n // clear pending URL as navigation is no longer\n // in flight\n window.next.__pendingUrl = undefined\n }\n\n const { tree, pushRef, canonicalUrl } = appRouterState\n const historyState = {\n ...(pushRef.preserveCustomHistoryState ? window.history.state : {}),\n // Identifier is shortened intentionally.\n // __NA is used to identify if the history entry can be handled by the app-router.\n // __N is used to identify if the history entry can be handled by the old router.\n __NA: true,\n __PRIVATE_NEXTJS_INTERNALS_TREE: tree,\n }\n if (\n pushRef.pendingPush &&\n // Skip pushing an additional history entry if the canonicalUrl is the same as the current url.\n // This mirrors the browser behavior for normal navigation.\n createHrefFromUrl(new URL(window.location.href)) !== canonicalUrl\n ) {\n // This intentionally mutates React state, pushRef is overwritten to ensure additional push/replace calls do not trigger an additional history entry.\n pushRef.pendingPush = false\n window.history.pushState(historyState, '', canonicalUrl)\n } else {\n window.history.replaceState(historyState, '', canonicalUrl)\n }\n }, [appRouterState])\n\n useEffect(() => {\n // The Next-Url and the base tree may affect the result of a prefetch\n // task. Re-prefetch all visible links with the updated values. In most\n // cases, this will not result in any new network requests, only if\n // the prefetch result actually varies on one of these inputs.\n if (process.env.__NEXT_CLIENT_SEGMENT_CACHE) {\n pingVisibleLinks(appRouterState.nextUrl, appRouterState.tree)\n }\n }, [appRouterState.nextUrl, appRouterState.tree])\n\n return null\n}\n\nexport function createEmptyCacheNode(): CacheNode {\n return {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1,\n }\n}\n\nfunction copyNextJsInternalHistoryState(data: any) {\n if (data == null) data = {}\n const currentState = window.history.state\n const __NA = currentState?.__NA\n if (__NA) {\n data.__NA = __NA\n }\n const __PRIVATE_NEXTJS_INTERNALS_TREE =\n currentState?.__PRIVATE_NEXTJS_INTERNALS_TREE\n if (__PRIVATE_NEXTJS_INTERNALS_TREE) {\n data.__PRIVATE_NEXTJS_INTERNALS_TREE = __PRIVATE_NEXTJS_INTERNALS_TREE\n }\n\n return data\n}\n\nfunction Head({\n headCacheNode,\n}: {\n headCacheNode: CacheNode | null\n}): React.ReactNode {\n // If this segment has a `prefetchHead`, it's the statically prefetched data.\n // We should use that on initial render instead of `head`. Then we'll switch\n // to `head` when the dynamic response streams in.\n const head = headCacheNode !== null ? headCacheNode.head : null\n const prefetchHead =\n headCacheNode !== null ? headCacheNode.prefetchHead : null\n\n // If no prefetch data is available, then we go straight to rendering `head`.\n const resolvedPrefetchRsc = prefetchHead !== null ? prefetchHead : head\n\n // We use `useDeferredValue` to handle switching between the prefetched and\n // final values. The second argument is returned on initial render, then it\n // re-renders with the first argument.\n return useDeferredValue(head, resolvedPrefetchRsc)\n}\n\n/**\n * The global router that wraps the application components.\n */\nfunction Router({\n actionQueue,\n assetPrefix,\n globalError,\n}: {\n actionQueue: AppRouterActionQueue\n assetPrefix: string\n globalError: [GlobalErrorComponent, React.ReactNode]\n}) {\n const state = useActionQueue(actionQueue)\n const { canonicalUrl } = state\n // Add memoized pathname/query for useSearchParams and usePathname.\n const { searchParams, pathname } = useMemo(() => {\n const url = new URL(\n canonicalUrl,\n typeof window === 'undefined' ? 'http://n' : window.location.href\n )\n\n return {\n // This is turned into a readonly class in `useSearchParams`\n searchParams: url.searchParams,\n pathname: hasBasePath(url.pathname)\n ? removeBasePath(url.pathname)\n : url.pathname,\n }\n }, [canonicalUrl])\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { cache, prefetchCache, tree } = state\n\n // This hook is in a conditional but that is ok because `process.env.NODE_ENV` never changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n // Add `window.nd` for debugging purposes.\n // This is not meant for use in applications as concurrent rendering will affect the cache/tree/router.\n // @ts-ignore this is for debugging\n window.nd = {\n router: publicAppRouterInstance,\n cache,\n prefetchCache,\n tree,\n }\n }, [cache, prefetchCache, tree])\n }\n\n useEffect(() => {\n // If the app is restored from bfcache, it's possible that\n // pushRef.mpaNavigation is true, which would mean that any re-render of this component\n // would trigger the mpa navigation logic again from the lines below.\n // This will restore the router to the initial state in the event that the app is restored from bfcache.\n function handlePageShow(event: PageTransitionEvent) {\n if (\n !event.persisted ||\n !window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE\n ) {\n return\n }\n\n // Clear the pendingMpaPath value so that a subsequent MPA navigation to the same URL can be triggered.\n // This is necessary because if the browser restored from bfcache, the pendingMpaPath would still be set to the value\n // of the last MPA navigation.\n globalMutable.pendingMpaPath = undefined\n\n dispatchAppRouterAction({\n type: ACTION_RESTORE,\n url: new URL(window.location.href),\n tree: window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE,\n })\n }\n\n window.addEventListener('pageshow', handlePageShow)\n\n return () => {\n window.removeEventListener('pageshow', handlePageShow)\n }\n }, [])\n\n useEffect(() => {\n // Ensure that any redirect errors that bubble up outside of the RedirectBoundary\n // are caught and handled by the router.\n function handleUnhandledRedirect(\n event: ErrorEvent | PromiseRejectionEvent\n ) {\n const error = 'reason' in event ? event.reason : event.error\n if (isRedirectError(error)) {\n event.preventDefault()\n const url = getURLFromRedirectError(error)\n const redirectType = getRedirectTypeFromError(error)\n // TODO: This should access the router methods directly, rather than\n // go through the public interface.\n if (redirectType === RedirectType.push) {\n publicAppRouterInstance.push(url, {})\n } else {\n publicAppRouterInstance.replace(url, {})\n }\n }\n }\n window.addEventListener('error', handleUnhandledRedirect)\n window.addEventListener('unhandledrejection', handleUnhandledRedirect)\n\n return () => {\n window.removeEventListener('error', handleUnhandledRedirect)\n window.removeEventListener('unhandledrejection', handleUnhandledRedirect)\n }\n }, [])\n\n // When mpaNavigation flag is set do a hard navigation to the new url.\n // Infinitely suspend because we don't actually want to rerender any child\n // components with the new URL and any entangled state updates shouldn't\n // commit either (eg: useTransition isPending should stay true until the page\n // unloads).\n //\n // This is a side effect in render. Don't try this at home, kids. It's\n // probably safe because we know this is a singleton component and it's never\n // in <Offscreen>. At least I hope so. (It will run twice in dev strict mode,\n // but that's... fine?)\n const { pushRef } = state\n if (pushRef.mpaNavigation) {\n // if there's a re-render, we don't want to trigger another redirect if one is already in flight to the same URL\n if (globalMutable.pendingMpaPath !== canonicalUrl) {\n const location = window.location\n if (pushRef.pendingPush) {\n location.assign(canonicalUrl)\n } else {\n location.replace(canonicalUrl)\n }\n\n globalMutable.pendingMpaPath = canonicalUrl\n }\n // TODO-APP: Should we listen to navigateerror here to catch failed\n // navigations somehow? And should we call window.stop() if a SPA navigation\n // should interrupt an MPA one?\n use(unresolvedThenable)\n }\n\n useEffect(() => {\n const originalPushState = window.history.pushState.bind(window.history)\n const originalReplaceState = window.history.replaceState.bind(\n window.history\n )\n\n // Ensure the canonical URL in the Next.js Router is updated when the URL is changed so that `usePathname` and `useSearchParams` hold the pushed values.\n const applyUrlFromHistoryPushReplace = (\n url: string | URL | null | undefined\n ) => {\n const href = window.location.href\n const tree: FlightRouterState | undefined =\n window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE\n\n startTransition(() => {\n dispatchAppRouterAction({\n type: ACTION_RESTORE,\n url: new URL(url ?? href, href),\n tree,\n })\n })\n }\n\n /**\n * Patch pushState to ensure external changes to the history are reflected in the Next.js Router.\n * Ensures Next.js internal history state is copied to the new history entry.\n * Ensures usePathname and useSearchParams hold the newly provided url.\n */\n window.history.pushState = function pushState(\n data: any,\n _unused: string,\n url?: string | URL | null\n ): void {\n // Avoid a loop when Next.js internals trigger pushState/replaceState\n if (data?.__NA || data?._N) {\n return originalPushState(data, _unused, url)\n }\n\n data = copyNextJsInternalHistoryState(data)\n\n if (url) {\n applyUrlFromHistoryPushReplace(url)\n }\n\n return originalPushState(data, _unused, url)\n }\n\n /**\n * Patch replaceState to ensure external changes to the history are reflected in the Next.js Router.\n * Ensures Next.js internal history state is copied to the new history entry.\n * Ensures usePathname and useSearchParams hold the newly provided url.\n */\n window.history.replaceState = function replaceState(\n data: any,\n _unused: string,\n url?: string | URL | null\n ): void {\n // Avoid a loop when Next.js internals trigger pushState/replaceState\n if (data?.__NA || data?._N) {\n return originalReplaceState(data, _unused, url)\n }\n data = copyNextJsInternalHistoryState(data)\n\n if (url) {\n applyUrlFromHistoryPushReplace(url)\n }\n return originalReplaceState(data, _unused, url)\n }\n\n /**\n * Handle popstate event, this is used to handle back/forward in the browser.\n * By default dispatches ACTION_RESTORE, however if the history entry was not pushed/replaced by app-router it will reload the page.\n * That case can happen when the old router injected the history entry.\n */\n const onPopState = (event: PopStateEvent) => {\n if (!event.state) {\n // TODO-APP: this case only happens when pushState/replaceState was called outside of Next.js. It should probably reload the page in this case.\n return\n }\n\n // This case happens when the history entry was pushed by the `pages` router.\n if (!event.state.__NA) {\n window.location.reload()\n return\n }\n\n // TODO-APP: Ideally the back button should not use startTransition as it should apply the updates synchronously\n // Without startTransition works if the cache is there for this path\n startTransition(() => {\n dispatchTraverseAction(\n window.location.href,\n event.state.__PRIVATE_NEXTJS_INTERNALS_TREE\n )\n })\n }\n\n // Register popstate event to call onPopstate.\n window.addEventListener('popstate', onPopState)\n return () => {\n window.history.pushState = originalPushState\n window.history.replaceState = originalReplaceState\n window.removeEventListener('popstate', onPopState)\n }\n }, [])\n\n const { cache, tree, nextUrl, focusAndScrollRef } = state\n\n const matchingHead = useMemo(() => {\n return findHeadInCache(cache, tree[1])\n }, [cache, tree])\n\n // Add memoized pathParams for useParams.\n const pathParams = useMemo(() => {\n return getSelectedParams(tree)\n }, [tree])\n\n const layoutRouterContext = useMemo(() => {\n return {\n parentTree: tree,\n parentCacheNode: cache,\n parentSegmentPath: null,\n // Root node always has `url`\n // Provided in AppTreeContext to ensure it can be overwritten in layout-router\n url: canonicalUrl,\n }\n }, [tree, cache, canonicalUrl])\n\n const globalLayoutRouterContext = useMemo(() => {\n return {\n tree,\n focusAndScrollRef,\n nextUrl,\n }\n }, [tree, focusAndScrollRef, nextUrl])\n\n let head\n if (matchingHead !== null) {\n // The head is wrapped in an extra component so we can use\n // `useDeferredValue` to swap between the prefetched and final versions of\n // the head. (This is what LayoutRouter does for segment data, too.)\n //\n // The `key` is used to remount the component whenever the head moves to\n // a different segment.\n const [headCacheNode, headKey] = matchingHead\n head = <Head key={headKey} headCacheNode={headCacheNode} />\n } else {\n head = null\n }\n\n let content = (\n <RedirectBoundary>\n {head}\n {cache.rsc}\n <AppRouterAnnouncer tree={tree} />\n </RedirectBoundary>\n )\n\n if (process.env.NODE_ENV !== 'production') {\n // In development, we apply few error boundaries and hot-reloader:\n // - DevRootHTTPAccessFallbackBoundary: avoid using navigation API like notFound() in root layout\n // - HotReloader:\n // - hot-reload the app when the code changes\n // - render dev overlay\n // - catch runtime errors and display global-error when necessary\n if (typeof window !== 'undefined') {\n const { DevRootHTTPAccessFallbackBoundary } =\n require('./dev-root-http-access-fallback-boundary') as typeof import('./dev-root-http-access-fallback-boundary')\n content = (\n <DevRootHTTPAccessFallbackBoundary>\n {content}\n </DevRootHTTPAccessFallbackBoundary>\n )\n }\n const HotReloader: typeof import('./react-dev-overlay/app/hot-reloader-client').default =\n require('./react-dev-overlay/app/hot-reloader-client').default\n\n content = (\n <HotReloader assetPrefix={assetPrefix} globalError={globalError}>\n {content}\n </HotReloader>\n )\n } else {\n // In production, we only apply the user-customized global error boundary.\n content = (\n <ErrorBoundary\n errorComponent={globalError[0]}\n errorStyles={globalError[1]}\n >\n {content}\n </ErrorBoundary>\n )\n }\n\n return (\n <>\n <HistoryUpdater appRouterState={state} />\n <RuntimeStyles />\n <PathParamsContext.Provider value={pathParams}>\n <PathnameContext.Provider value={pathname}>\n <SearchParamsContext.Provider value={searchParams}>\n <GlobalLayoutRouterContext.Provider\n value={globalLayoutRouterContext}\n >\n {/* TODO: We should be able to remove this context. useRouter\n should import from app-router-instance instead. It's only\n necessary because useRouter is shared between Pages and\n App Router. We should fork that module, then remove this\n context provider. */}\n <AppRouterContext.Provider value={publicAppRouterInstance}>\n <LayoutRouterContext.Provider value={layoutRouterContext}>\n {content}\n </LayoutRouterContext.Provider>\n </AppRouterContext.Provider>\n </GlobalLayoutRouterContext.Provider>\n </SearchParamsContext.Provider>\n </PathnameContext.Provider>\n </PathParamsContext.Provider>\n </>\n )\n}\n\nexport default function AppRouter({\n actionQueue,\n globalErrorComponentAndStyles: [globalErrorComponent, globalErrorStyles],\n assetPrefix,\n}: {\n actionQueue: AppRouterActionQueue\n globalErrorComponentAndStyles: [GlobalErrorComponent, React.ReactNode]\n assetPrefix: string\n}) {\n useNavFailureHandler()\n\n return (\n <ErrorBoundary\n // At the very top level, use the default GlobalError component as the final fallback.\n // When the app router itself fails, which means the framework itself fails, we show the default error.\n errorComponent={DefaultGlobalError}\n >\n <Router\n actionQueue={actionQueue}\n assetPrefix={assetPrefix}\n globalError={[globalErrorComponent, globalErrorStyles]}\n />\n </ErrorBoundary>\n )\n}\n\nconst runtimeStyles = new Set<string>()\nlet runtimeStyleChanged = new Set<() => void>()\n\nglobalThis._N_E_STYLE_LOAD = function (href: string) {\n let len = runtimeStyles.size\n runtimeStyles.add(href)\n if (runtimeStyles.size !== len) {\n runtimeStyleChanged.forEach((cb) => cb())\n }\n // TODO figure out how to get a promise here\n // But maybe it's not necessary as react would block rendering until it's loaded\n return Promise.resolve()\n}\n\nfunction RuntimeStyles() {\n const [, forceUpdate] = React.useState(0)\n const renderedStylesSize = runtimeStyles.size\n useEffect(() => {\n const changed = () => forceUpdate((c) => c + 1)\n runtimeStyleChanged.add(changed)\n if (renderedStylesSize !== runtimeStyles.size) {\n changed()\n }\n return () => {\n runtimeStyleChanged.delete(changed)\n }\n }, [renderedStylesSize, forceUpdate])\n\n const dplId = process.env.NEXT_DEPLOYMENT_ID\n ? `?dpl=${process.env.NEXT_DEPLOYMENT_ID}`\n : ''\n return [...runtimeStyles].map((href, i) => (\n <link\n key={i}\n rel=\"stylesheet\"\n href={`${href}${dplId}`}\n // @ts-ignore\n precedence=\"next\"\n // TODO figure out crossOrigin and nonce\n // crossOrigin={TODO}\n // nonce={TODO}\n />\n ))\n}\n","import type {\n CacheNodeSeedData,\n FlightRouterState,\n FlightSegmentPath,\n Segment,\n} from '../../../server/app-render/types'\nimport type {\n CacheNode,\n ChildSegmentMap,\n HeadData,\n LoadingModuleData,\n ReadyCacheNode,\n} from '../../../shared/lib/app-router-context.shared-runtime'\nimport { DEFAULT_SEGMENT_KEY } from '../../../shared/lib/segment'\nimport { matchSegment } from '../match-segments'\nimport { createRouterCacheKey } from './create-router-cache-key'\nimport type { FetchServerResponseResult } from './fetch-server-response'\nimport { isNavigatingToNewRootLayout } from './is-navigating-to-new-root-layout'\nimport { DYNAMIC_STALETIME_MS } from './prefetch-cache-utils'\n\n// This is yet another tree type that is used to track pending promises that\n// need to be fulfilled once the dynamic data is received. The terminal nodes of\n// this tree represent the new Cache Node trees that were created during this\n// request. We can't use the Cache Node tree or Route State tree directly\n// because those include reused nodes, too. This tree is discarded as soon as\n// the navigation response is received.\ntype SPANavigationTask = {\n // The router state that corresponds to the tree that this Task represents.\n route: FlightRouterState\n // The CacheNode that corresponds to the tree that this Task represents. If\n // `children` is null (i.e. if this is a terminal task node), then `node`\n // represents a brand new Cache Node tree, which way or may not need to be\n // filled with dynamic data from the server.\n node: CacheNode | null\n // The tree sent to the server during the dynamic request. This is the\n // same as `route`, except with the `refetch` marker set on dynamic segments.\n // If all the segments are static, then this will be null, and no server\n // request is required.\n dynamicRequestTree: FlightRouterState | null\n children: Map<string, SPANavigationTask> | null\n}\n\n// A special type used to bail out and trigger a full-page navigation.\ntype MPANavigationTask = {\n // MPA tasks are distinguised from SPA tasks by having a null `route`.\n route: null\n node: null\n dynamicRequestTree: null\n children: null\n}\n\nconst MPA_NAVIGATION_TASK: MPANavigationTask = {\n route: null,\n node: null,\n dynamicRequestTree: null,\n children: null,\n}\n\nexport type Task = SPANavigationTask | MPANavigationTask\n\n// Creates a new Cache Node tree (i.e. copy-on-write) that represents the\n// optimistic result of a navigation, using both the current Cache Node tree and\n// data that was prefetched prior to navigation.\n//\n// At the moment we call this function, we haven't yet received the navigation\n// response from the server. It could send back something completely different\n// from the tree that was prefetched — due to rewrites, default routes, parallel\n// routes, etc.\n//\n// But in most cases, it will return the same tree that we prefetched, just with\n// the dynamic holes filled in. So we optimistically assume this will happen,\n// and accept that the real result could be arbitrarily different.\n//\n// We'll reuse anything that was already in the previous tree, since that's what\n// the server does.\n//\n// New segments (ones that don't appear in the old tree) are assigned an\n// unresolved promise. The data for these promises will be fulfilled later, when\n// the navigation response is received.\n//\n// The tree can be rendered immediately after it is created (that's why this is\n// a synchronous function). Any new trees that do not have prefetch data will\n// suspend during rendering, until the dynamic data streams in.\n//\n// Returns a Task object, which contains both the updated Cache Node and a path\n// to the pending subtrees that need to be resolved by the navigation response.\n//\n// A return value of `null` means there were no changes, and the previous tree\n// can be reused without initiating a server request.\nexport function startPPRNavigation(\n navigatedAt: number,\n oldCacheNode: CacheNode,\n oldRouterState: FlightRouterState,\n newRouterState: FlightRouterState,\n prefetchData: CacheNodeSeedData | null,\n prefetchHead: HeadData | null,\n isPrefetchHeadPartial: boolean,\n isSamePageNavigation: boolean,\n scrollableSegmentsResult: Array<FlightSegmentPath>\n): Task | null {\n const segmentPath: Array<FlightSegmentPath> = []\n return updateCacheNodeOnNavigation(\n navigatedAt,\n oldCacheNode,\n oldRouterState,\n newRouterState,\n false,\n prefetchData,\n prefetchHead,\n isPrefetchHeadPartial,\n isSamePageNavigation,\n segmentPath,\n scrollableSegmentsResult\n )\n}\n\nfunction updateCacheNodeOnNavigation(\n navigatedAt: number,\n oldCacheNode: CacheNode,\n oldRouterState: FlightRouterState,\n newRouterState: FlightRouterState,\n didFindRootLayout: boolean,\n prefetchData: CacheNodeSeedData | null,\n prefetchHead: HeadData | null,\n isPrefetchHeadPartial: boolean,\n isSamePageNavigation: boolean,\n segmentPath: FlightSegmentPath,\n scrollableSegmentsResult: Array<FlightSegmentPath>\n): Task | null {\n // Diff the old and new trees to reuse the shared layouts.\n const oldRouterStateChildren = oldRouterState[1]\n const newRouterStateChildren = newRouterState[1]\n const prefetchDataChildren = prefetchData !== null ? prefetchData[2] : null\n\n if (!didFindRootLayout) {\n // We're currently traversing the part of the tree that was also part of\n // the previous route. If we discover a root layout, then we don't need to\n // trigger an MPA navigation. See beginRenderingNewRouteTree for context.\n const isRootLayout = newRouterState[4] === true\n if (isRootLayout) {\n // Found a matching root layout.\n didFindRootLayout = true\n }\n }\n\n const oldParallelRoutes = oldCacheNode.parallelRoutes\n\n // Clone the current set of segment children, even if they aren't active in\n // the new tree.\n // TODO: We currently retain all the inactive segments indefinitely, until\n // there's an explicit refresh, or a parent layout is lazily refreshed. We\n // rely on this for popstate navigations, which update the Router State Tree\n // but do not eagerly perform a data fetch, because they expect the segment\n // data to already be in the Cache Node tree. For highly static sites that\n // are mostly read-only, this may happen only rarely, causing memory to\n // leak. We should figure out a better model for the lifetime of inactive\n // segments, so we can maintain instant back/forward navigations without\n // leaking memory indefinitely.\n const prefetchParallelRoutes = new Map(oldParallelRoutes)\n\n // As we diff the trees, we may sometimes modify (copy-on-write, not mutate)\n // the Route Tree that was returned by the server — for example, in the case\n // of default parallel routes, we preserve the currently active segment. To\n // avoid mutating the original tree, we clone the router state children along\n // the return path.\n let patchedRouterStateChildren: {\n [parallelRouteKey: string]: FlightRouterState\n } = {}\n let taskChildren = null\n\n // Most navigations require a request to fetch additional data from the\n // server, either because the data was not already prefetched, or because the\n // target route contains dynamic data that cannot be prefetched.\n //\n // However, if the target route is fully static, and it's already completely\n // loaded into the segment cache, then we can skip the server request.\n //\n // This starts off as `false`, and is set to `true` if any of the child\n // routes requires a dynamic request.\n let needsDynamicRequest = false\n // As we traverse the children, we'll construct a FlightRouterState that can\n // be sent to the server to request the dynamic data. If it turns out that\n // nothing in the subtree is dynamic (i.e. needsDynamicRequest is false at the\n // end), then this will be discarded.\n // TODO: We can probably optimize the format of this data structure to only\n // include paths that are dynamic. Instead of reusing the\n // FlightRouterState type.\n let dynamicRequestTreeChildren: {\n [parallelRouteKey: string]: FlightRouterState\n } = {}\n\n for (let parallelRouteKey in newRouterStateChildren) {\n const newRouterStateChild: FlightRouterState =\n newRouterStateChildren[parallelRouteKey]\n const oldRouterStateChild: FlightRouterState | void =\n oldRouterStateChildren[parallelRouteKey]\n const oldSegmentMapChild = oldParallelRoutes.get(parallelRouteKey)\n const prefetchDataChild: CacheNodeSeedData | void | null =\n prefetchDataChildren !== null\n ? prefetchDataChildren[parallelRouteKey]\n : null\n\n const newSegmentChild = newRouterStateChild[0]\n const newSegmentPathChild = segmentPath.concat([\n parallelRouteKey,\n newSegmentChild,\n ])\n const newSegmentKeyChild = createRouterCacheKey(newSegmentChild)\n\n const oldSegmentChild =\n oldRouterStateChild !== undefined ? oldRouterStateChild[0] : undefined\n\n const oldCacheNodeChild =\n oldSegmentMapChild !== undefined\n ? oldSegmentMapChild.get(newSegmentKeyChild)\n : undefined\n\n let taskChild: Task | null\n if (newSegmentChild === DEFAULT_SEGMENT_KEY) {\n // This is another kind of leaf segment — a default route.\n //\n // Default routes have special behavior. When there's no matching segment\n // for a parallel route, Next.js preserves the currently active segment\n // during a client navigation — but not for initial render. The server\n // leaves it to the client to account for this. So we need to handle\n // it here.\n if (oldRouterStateChild !== undefined) {\n // Reuse the existing Router State for this segment. We spawn a \"task\"\n // just to keep track of the updated router state; unlike most, it's\n // already fulfilled and won't be affected by the dynamic response.\n taskChild = spawnReusedTask(oldRouterStateChild)\n } else {\n // There's no currently active segment. Switch to the \"create\" path.\n taskChild = beginRenderingNewRouteTree(\n navigatedAt,\n oldRouterStateChild,\n newRouterStateChild,\n oldCacheNodeChild,\n didFindRootLayout,\n prefetchDataChild !== undefined ? prefetchDataChild : null,\n prefetchHead,\n isPrefetchHeadPartial,\n newSegmentPathChild,\n scrollableSegmentsResult\n )\n }\n } else if (\n isSamePageNavigation &&\n // Check if this is a page segment.\n // TODO: We're not consistent about how we do this check. Some places\n // check if the segment starts with PAGE_SEGMENT_KEY, but most seem to\n // check if there any any children, which is why I'm doing it here. We\n // should probably encode an empty children set as `null` though. Either\n // way, we should update all the checks to be consistent.\n Object.keys(newRouterStateChild[1]).length === 0\n ) {\n // We special case navigations to the exact same URL as the current\n // location. It's a common UI pattern for apps to refresh when you click a\n // link to the current page. So when this happens, we refresh the dynamic\n // data in the page segments.\n //\n // Note that this does not apply if the any part of the hash or search\n // query has changed. This might feel a bit weird but it makes more sense\n // when you consider that the way to trigger this behavior is to click\n // the same link multiple times.\n //\n // TODO: We should probably refresh the *entire* route when this case\n // occurs, not just the page segments. Essentially treating it the same as\n // a refresh() triggered by an action, which is the more explicit way of\n // modeling the UI pattern described above.\n //\n // Also note that this only refreshes the dynamic data, not static/\n // cached data. If the page segment is fully static and prefetched, the\n // request is skipped. (This is also how refresh() works.)\n taskChild = beginRenderingNewRouteTree(\n navigatedAt,\n oldRouterStateChild,\n newRouterStateChild,\n oldCacheNodeChild,\n didFindRootLayout,\n prefetchDataChild !== undefined ? prefetchDataChild : null,\n prefetchHead,\n isPrefetchHeadPartial,\n newSegmentPathChild,\n scrollableSegmentsResult\n )\n } else if (\n oldRouterStateChild !== undefined &&\n oldSegmentChild !== undefined &&\n matchSegment(newSegmentChild, oldSegmentChild)\n ) {\n if (\n oldCacheNodeChild !== undefined &&\n oldRouterStateChild !== undefined\n ) {\n // This segment exists in both the old and new trees. Recursively update\n // the children.\n taskChild = updateCacheNodeOnNavigation(\n navigatedAt,\n oldCacheNodeChild,\n oldRouterStateChild,\n newRouterStateChild,\n didFindRootLayout,\n prefetchDataChild,\n prefetchHead,\n isPrefetchHeadPartial,\n isSamePageNavigation,\n newSegmentPathChild,\n scrollableSegmentsResult\n )\n } else {\n // There's no existing Cache Node for this segment. Switch to the\n // \"create\" path.\n taskChild = beginRenderingNewRouteTree(\n navigatedAt,\n oldRouterStateChild,\n newRouterStateChild,\n oldCacheNodeChild,\n didFindRootLayout,\n prefetchDataChild !== undefined ? prefetchDataChild : null,\n prefetchHead,\n isPrefetchHeadPartial,\n newSegmentPathChild,\n scrollableSegmentsResult\n )\n }\n } else {\n // This is a new tree. Switch to the \"create\" path.\n taskChild = beginRenderingNewRouteTree(\n navigatedAt,\n oldRouterStateChild,\n newRouterStateChild,\n oldCacheNodeChild,\n didFindRootLayout,\n prefetchDataChild !== undefined ? prefetchDataChild : null,\n prefetchHead,\n isPrefetchHeadPartial,\n newSegmentPathChild,\n scrollableSegmentsResult\n )\n }\n\n if (taskChild !== null) {\n // Recursively propagate up the child tasks.\n\n if (taskChild.route === null) {\n // One of the child tasks discovered a change to the root layout.\n // Immediately unwind from this recursive traversal.\n return MPA_NAVIGATION_TASK\n }\n\n if (taskChildren === null) {\n taskChildren = new Map()\n }\n taskChildren.set(parallelRouteKey, taskChild)\n const newCacheNodeChild = taskChild.node\n if (newCacheNodeChild !== null) {\n const newSegmentMapChild: ChildSegmentMap = new Map(oldSegmentMapChild)\n newSegmentMapChild.set(newSegmentKeyChild, newCacheNodeChild)\n prefetchParallelRoutes.set(parallelRouteKey, newSegmentMapChild)\n }\n\n // The child tree's route state may be different from the prefetched\n // route sent by the server. We need to clone it as we traverse back up\n // the tree.\n const taskChildRoute = taskChild.route\n patchedRouterStateChildren[parallelRouteKey] = taskChildRoute\n\n const dynamicRequestTreeChild = taskChild.dynamicRequestTree\n if (dynamicRequestTreeChild !== null) {\n // Something in the child tree is dynamic.\n needsDynamicRequest = true\n dynamicRequestTreeChildren[parallelRouteKey] = dynamicRequestTreeChild\n } else {\n dynamicRequestTreeChildren[parallelRouteKey] = taskChildRoute\n }\n } else {\n // The child didn't change. We can use the prefetched router state.\n patchedRouterStateChildren[parallelRouteKey] = newRouterStateChild\n dynamicRequestTreeChildren[parallelRouteKey] = newRouterStateChild\n }\n }\n\n if (taskChildren === null) {\n // No new tasks were spawned.\n return null\n }\n\n const newCacheNode: ReadyCacheNode = {\n lazyData: null,\n rsc: oldCacheNode.rsc,\n // We intentionally aren't updating the prefetchRsc field, since this node\n // is already part of the current tree, because it would be weird for\n // prefetch data to be newer than the final data. It probably won't ever be\n // observable anyway, but it could happen if the segment is unmounted then\n // mounted again, because LayoutRouter will momentarily switch to rendering\n // prefetchRsc, via useDeferredValue.\n prefetchRsc: oldCacheNode.prefetchRsc,\n head: oldCacheNode.head,\n prefetchHead: oldCacheNode.prefetchHead,\n loading: oldCacheNode.loading,\n\n // Everything is cloned except for the children, which we computed above.\n parallelRoutes: prefetchParallelRoutes,\n\n navigatedAt,\n }\n\n return {\n // Return a cloned copy of the router state with updated children.\n route: patchRouterStateWithNewChildren(\n newRouterState,\n patchedRouterStateChildren\n ),\n node: newCacheNode,\n dynamicRequestTree: needsDynamicRequest\n ? patchRouterStateWithNewChildren(\n newRouterState,\n dynamicRequestTreeChildren\n )\n : null,\n children: taskChildren,\n }\n}\n\nfunction beginRenderingNewRouteTree(\n navigatedAt: number,\n oldRouterState: FlightRouterState | void,\n newRouterState: FlightRouterState,\n existingCacheNode: CacheNode | void,\n didFindRootLayout: boolean,\n prefetchData: CacheNodeSeedData | null,\n possiblyPartialPrefetchHead: HeadData | null,\n isPrefetchHeadPartial: boolean,\n segmentPath: FlightSegmentPath,\n scrollableSegmentsResult: Array<FlightSegmentPath>\n): Task {\n if (!didFindRootLayout) {\n // The route tree changed before we reached a layout. (The highest-level\n // layout in a route tree is referred to as the \"root\" layout.) This could\n // mean that we're navigating between two different root layouts. When this\n // happens, we perform a full-page (MPA-style) navigation.\n //\n // However, the algorithm for deciding where to start rendering a route\n // (i.e. the one performed in order to reach this function) is stricter\n // than the one used to detect a change in the root layout. So just because\n // we're re-rendering a segment outside of the root layout does not mean we\n // should trigger a full-page navigation.\n //\n // Specifically, we handle dynamic parameters differently: two segments are\n // considered the same even if their parameter values are different.\n //\n // Refer to isNavigatingToNewRootLayout for details.\n //\n // Note that we only have to perform this extra traversal if we didn't\n // already discover a root layout in the part of the tree that is unchanged.\n // In the common case, this branch is skipped completely.\n if (\n oldRouterState === undefined ||\n isNavigatingToNewRootLayout(oldRouterState, newRouterState)\n ) {\n // The root layout changed. Perform a full-page navigation.\n return MPA_NAVIGATION_TASK\n }\n }\n return createCacheNodeOnNavigation(\n navigatedAt,\n newRouterState,\n existingCacheNode,\n prefetchData,\n possiblyPartialPrefetchHead,\n isPrefetchHeadPartial,\n segmentPath,\n scrollableSegmentsResult\n )\n}\n\nfunction createCacheNodeOnNavigation(\n navigatedAt: number,\n routerState: FlightRouterState,\n existingCacheNode: CacheNode | void,\n prefetchData: CacheNodeSeedData | null,\n possiblyPartialPrefetchHead: HeadData | null,\n isPrefetchHeadPartial: boolean,\n segmentPath: FlightSegmentPath,\n scrollableSegmentsResult: Array<FlightSegmentPath>\n): SPANavigationTask {\n // Same traversal as updateCacheNodeNavigation, but we switch to this path\n // once we reach the part of the tree that was not in the previous route. We\n // don't need to diff against the old tree, we just need to create a new one.\n\n // The head is assigned to every leaf segment delivered by the server. Based\n // on corresponding logic in fill-lazy-items-till-leaf-with-head.ts\n const routerStateChildren = routerState[1]\n const isLeafSegment = Object.keys(routerStateChildren).length === 0\n\n // Even we're rendering inside the \"new\" part of the target tree, we may have\n // a locally cached segment that we can reuse. This may come from either 1)\n // the CacheNode tree, which lives in React state and is populated by previous\n // navigations; or 2) the prefetch cache, which is a separate cache that is\n // populated by prefetches.\n let rsc: React.ReactNode\n let loading: LoadingModuleData | Promise<LoadingModuleData>\n let head: HeadData | null\n let cacheNodeNavigatedAt: number\n if (\n existingCacheNode !== undefined &&\n // DYNAMIC_STALETIME_MS defaults to 0, but it can be increased using\n // the experimental.staleTimes.dynamic config. When set, we'll avoid\n // refetching dynamic data if it was fetched within the given threshold.\n existingCacheNode.navigatedAt + DYNAMIC_STALETIME_MS > navigatedAt\n ) {\n // We have an existing CacheNode for this segment, and it's not stale. We\n // should reuse it rather than request a new one.\n rsc = existingCacheNode.rsc\n loading = existingCacheNode.loading\n head = existingCacheNode.head\n\n // Don't update the navigatedAt timestamp, since we're reusing stale data.\n cacheNodeNavigatedAt = existingCacheNode.navigatedAt\n } else if (prefetchData !== null) {\n // There's no existing CacheNode for this segment, but we do have prefetch\n // data. If the prefetch data is fully static (i.e. does not contain any\n // dynamic holes), we don't need to request it from the server.\n rsc = prefetchData[1]\n loading = prefetchData[3]\n head = isLeafSegment ? possiblyPartialPrefetchHead : null\n // Even though we're accessing the data from the prefetch cache, this is\n // conceptually a new segment, not a reused one. So we should update the\n // navigatedAt timestamp.\n cacheNodeNavigatedAt = navigatedAt\n const isPrefetchRscPartial = prefetchData[4]\n if (\n // Check if the segment data is partial\n isPrefetchRscPartial ||\n // Check if the head is partial (only relevant if this is a leaf segment)\n (isPrefetchHeadPartial && isLeafSegment)\n ) {\n // We only have partial data from this segment. Like missing segments, we\n // must request the full data from the server.\n return spawnPendingTask(\n navigatedAt,\n routerState,\n prefetchData,\n possiblyPartialPrefetchHead,\n isPrefetchHeadPartial,\n segmentPath,\n scrollableSegmentsResult\n )\n } else {\n // The prefetch data is fully static, so we can omit it from the\n // navigation request.\n }\n } else {\n // There's no prefetch for this segment. Everything from this point will be\n // requested from the server, even if there are static children below it.\n // Create a terminal task node that will later be fulfilled by\n // server response.\n return spawnPendingTask(\n navigatedAt,\n routerState,\n null,\n possiblyPartialPrefetchHead,\n isPrefetchHeadPartial,\n segmentPath,\n scrollableSegmentsResult\n )\n }\n\n // We already have a full segment we can render, so we don't need to request a\n // new one from the server. Keep traversing down the tree until we reach\n // something that requires a dynamic request.\n const prefetchDataChildren = prefetchData !== null ? prefetchData[2] : null\n const taskChildren = new Map()\n const existingCacheNodeChildren =\n existingCacheNode !== undefined ? existingCacheNode.parallelRoutes : null\n const cacheNodeChildren = new Map(existingCacheNodeChildren)\n let dynamicRequestTreeChildren: {\n [parallelRouteKey: string]: FlightRouterState\n } = {}\n let needsDynamicRequest = false\n if (isLeafSegment) {\n // The segment path of every leaf segment (i.e. page) is collected into\n // a result array. This is used by the LayoutRouter to scroll to ensure that\n // new pages are visible after a navigation.\n // TODO: We should use a string to represent the segment path instead of\n // an array. We already use a string representation for the path when\n // accessing the Segment Cache, so we can use the same one.\n scrollableSegmentsResult.push(segmentPath)\n } else {\n for (let parallelRouteKey in routerStateChildren) {\n const routerStateChild: FlightRouterState =\n routerStateChildren[parallelRouteKey]\n const prefetchDataChild: CacheNodeSeedData | void | null =\n prefetchDataChildren !== null\n ? prefetchDataChildren[parallelRouteKey]\n : null\n const existingSegmentMapChild =\n existingCacheNodeChildren !== null\n ? existingCacheNodeChildren.get(parallelRouteKey)\n : undefined\n const segmentChild = routerStateChild[0]\n const segmentPathChild = segmentPath.concat([\n parallelRouteKey,\n segmentChild,\n ])\n const segmentKeyChild = createRouterCacheKey(segmentChild)\n\n const existingCacheNodeChild =\n existingSegmentMapChild !== undefined\n ? existingSegmentMapChild.get(segmentKeyChild)\n : undefined\n\n const taskChild = createCacheNodeOnNavigation(\n navigatedAt,\n routerStateChild,\n existingCacheNodeChild,\n prefetchDataChild,\n possiblyPartialPrefetchHead,\n isPrefetchHeadPartial,\n segmentPathChild,\n scrollableSegmentsResult\n )\n taskChildren.set(parallelRouteKey, taskChild)\n const dynamicRequestTreeChild = taskChild.dynamicRequestTree\n if (dynamicRequestTreeChild !== null) {\n // Something in the child tree is dynamic.\n needsDynamicRequest = true\n dynamicRequestTreeChildren[parallelRouteKey] = dynamicRequestTreeChild\n } else {\n dynamicRequestTreeChildren[parallelRouteKey] = routerStateChild\n }\n const newCacheNodeChild = taskChild.node\n if (newCacheNodeChild !== null) {\n const newSegmentMapChild: ChildSegmentMap = new Map()\n newSegmentMapChild.set(segmentKeyChild, newCacheNodeChild)\n cacheNodeChildren.set(parallelRouteKey, newSegmentMapChild)\n }\n }\n }\n\n return {\n // Since we're inside a new route tree, unlike the\n // `updateCacheNodeOnNavigation` path, the router state on the children\n // tasks is always the same as the router state we pass in. So we don't need\n // to clone/modify it.\n route: routerState,\n node: {\n lazyData: null,\n // Since this segment is already full, we don't need to use the\n // `prefetchRsc` field.\n rsc,\n prefetchRsc: null,\n head,\n prefetchHead: null,\n loading,\n parallelRoutes: cacheNodeChildren,\n navigatedAt: cacheNodeNavigatedAt,\n },\n dynamicRequestTree: needsDynamicRequest\n ? patchRouterStateWithNewChildren(routerState, dynamicRequestTreeChildren)\n : null,\n children: taskChildren,\n }\n}\n\nfunction patchRouterStateWithNewChildren(\n baseRouterState: FlightRouterState,\n newChildren: { [parallelRouteKey: string]: FlightRouterState }\n): FlightRouterState {\n const clone: FlightRouterState = [baseRouterState[0], newChildren]\n // Based on equivalent logic in apply-router-state-patch-to-tree, but should\n // confirm whether we need to copy all of these fields. Not sure the server\n // ever sends, e.g. the refetch marker.\n if (2 in baseRouterState) {\n clone[2] = baseRouterState[2]\n }\n if (3 in baseRouterState) {\n clone[3] = baseRouterState[3]\n }\n if (4 in baseRouterState) {\n clone[4] = baseRouterState[4]\n }\n return clone\n}\n\nfunction spawnPendingTask(\n navigatedAt: number,\n routerState: FlightRouterState,\n prefetchData: CacheNodeSeedData | null,\n prefetchHead: HeadData | null,\n isPrefetchHeadPartial: boolean,\n segmentPath: FlightSegmentPath,\n scrollableSegmentsResult: Array<FlightSegmentPath>\n): SPANavigationTask {\n // Create a task that will later be fulfilled by data from the server.\n\n // Clone the prefetched route tree and the `refetch` marker to it. We'll send\n // this to the server so it knows where to start rendering.\n const dynamicRequestTree = patchRouterStateWithNewChildren(\n routerState,\n routerState[1]\n )\n dynamicRequestTree[3] = 'refetch'\n\n const newTask: Task = {\n route: routerState,\n\n // Corresponds to the part of the route that will be rendered on the server.\n node: createPendingCacheNode(\n navigatedAt,\n routerState,\n prefetchData,\n prefetchHead,\n isPrefetchHeadPartial,\n segmentPath,\n scrollableSegmentsResult\n ),\n // Because this is non-null, and it gets propagated up through the parent\n // tasks, the root task will know that it needs to perform a server request.\n dynamicRequestTree,\n children: null,\n }\n return newTask\n}\n\nfunction spawnReusedTask(reusedRouterState: FlightRouterState): Task {\n // Create a task that reuses an existing segment, e.g. when reusing\n // the current active segment in place of a default route.\n return {\n route: reusedRouterState,\n node: null,\n dynamicRequestTree: null,\n children: null,\n }\n}\n\n// Writes a dynamic server response into the tree created by\n// updateCacheNodeOnNavigation. All pending promises that were spawned by the\n// navigation will be resolved, either with dynamic data from the server, or\n// `null` to indicate that the data is missing.\n//\n// A `null` value will trigger a lazy fetch during render, which will then patch\n// up the tree using the same mechanism as the non-PPR implementation\n// (serverPatchReducer).\n//\n// Usually, the server will respond with exactly the subset of data that we're\n// waiting for — everything below the nearest shared layout. But technically,\n// the server can return anything it wants.\n//\n// This does _not_ create a new tree; it modifies the existing one in place.\n// Which means it must follow the Suspense rules of cache safety.\nexport function listenForDynamicRequest(\n task: SPANavigationTask,\n responsePromise: Promise<FetchServerResponseResult>\n) {\n responsePromise.then(\n ({ flightData }: FetchServerResponseResult) => {\n if (typeof flightData === 'string') {\n // Happens when navigating to page in `pages` from `app`. We shouldn't\n // get here because should have already handled this during\n // the prefetch.\n return\n }\n for (const normalizedFlightData of flightData) {\n const {\n segmentPath,\n tree: serverRouterState,\n seedData: dynamicData,\n head: dynamicHead,\n } = normalizedFlightData\n\n if (!dynamicData) {\n // This shouldn't happen. PPR should always send back a response.\n // However, `FlightDataPath` is a shared type and the pre-PPR handling of\n // this might return null.\n continue\n }\n\n writeDynamicDataIntoPendingTask(\n task,\n segmentPath,\n serverRouterState,\n dynamicData,\n dynamicHead\n )\n }\n\n // Now that we've exhausted all the data we received from the server, if\n // there are any remaining pending tasks in the tree, abort them now.\n // If there's any missing data, it will trigger a lazy fetch.\n abortTask(task, null)\n },\n (error: any) => {\n // This will trigger an error during render\n abortTask(task, error)\n }\n )\n}\n\nfunction writeDynamicDataIntoPendingTask(\n rootTask: SPANavigationTask,\n segmentPath: FlightSegmentPath,\n serverRouterState: FlightRouterState,\n dynamicData: CacheNodeSeedData,\n dynamicHead: HeadData\n) {\n // The data sent by the server represents only a subtree of the app. We need\n // to find the part of the task tree that matches the server response, and\n // fulfill it using the dynamic data.\n //\n // segmentPath represents the parent path of subtree. It's a repeating pattern\n // of parallel route key and segment:\n //\n // [string, Segment, string, Segment, string, Segment, ...]\n //\n // Iterate through the path and finish any tasks that match this payload.\n let task = rootTask\n for (let i = 0; i < segmentPath.length; i += 2) {\n const parallelRouteKey: string = segmentPath[i]\n const segment: Segment = segmentPath[i + 1]\n const taskChildren = task.children\n if (taskChildren !== null) {\n const taskChild = taskChildren.get(parallelRouteKey)\n if (taskChild !== undefined) {\n const taskSegment = taskChild.route[0]\n if (matchSegment(segment, taskSegment)) {\n // Found a match for this task. Keep traversing down the task tree.\n task = taskChild\n continue\n }\n }\n }\n // We didn't find a child task that matches the server data. Exit. We won't\n // abort the task, though, because a different FlightDataPath may be able to\n // fulfill it (see loop in listenForDynamicRequest). We only abort tasks\n // once we've run out of data.\n return\n }\n\n finishTaskUsingDynamicDataPayload(\n task,\n serverRouterState,\n dynamicData,\n dynamicHead\n )\n}\n\nfunction finishTaskUsingDynamicDataPayload(\n task: SPANavigationTask,\n serverRouterState: FlightRouterState,\n dynamicData: CacheNodeSeedData,\n dynamicHead: HeadData\n) {\n if (task.dynamicRequestTree === null) {\n // Everything in this subtree is already complete. Bail out.\n return\n }\n\n // dynamicData may represent a larger subtree than the task. Before we can\n // finish the task, we need to line them up.\n const taskChildren = task.children\n const taskNode = task.node\n if (taskChildren === null) {\n // We've reached the leaf node of the pending task. The server data tree\n // lines up the pending Cache Node tree. We can now switch to the\n // normal algorithm.\n if (taskNode !== null) {\n finishPendingCacheNode(\n taskNode,\n task.route,\n serverRouterState,\n dynamicData,\n dynamicHead\n )\n // Set this to null to indicate that this task is now complete.\n task.dynamicRequestTree = null\n }\n return\n }\n // The server returned more data than we need to finish the task. Skip over\n // the extra segments until we reach the leaf task node.\n const serverChildren = serverRouterState[1]\n const dynamicDataChildren = dynamicData[2]\n\n for (const parallelRouteKey in serverRouterState) {\n const serverRouterStateChild: FlightRouterState =\n serverChildren[parallelRouteKey]\n const dynamicDataChild: CacheNodeSeedData | null | void =\n dynamicDataChildren[parallelRouteKey]\n\n const taskChild = taskChildren.get(parallelRouteKey)\n if (taskChild !== undefined) {\n const taskSegment = taskChild.route[0]\n if (\n matchSegment(serverRouterStateChild[0], taskSegment) &&\n dynamicDataChild !== null &&\n dynamicDataChild !== undefined\n ) {\n // Found a match for this task. Keep traversing down the task tree.\n return finishTaskUsingDynamicDataPayload(\n taskChild,\n serverRouterStateChild,\n dynamicDataChild,\n dynamicHead\n )\n }\n }\n // We didn't find a child task that matches the server data. We won't abort\n // the task, though, because a different FlightDataPath may be able to\n // fulfill it (see loop in listenForDynamicRequest). We only abort tasks\n // once we've run out of data.\n }\n}\n\nfunction createPendingCacheNode(\n navigatedAt: number,\n routerState: FlightRouterState,\n prefetchData: CacheNodeSeedData | null,\n prefetchHead: HeadData | null,\n isPrefetchHeadPartial: boolean,\n segmentPath: FlightSegmentPath,\n scrollableSegmentsResult: Array<FlightSegmentPath>\n): ReadyCacheNode {\n const routerStateChildren = routerState[1]\n const prefetchDataChildren = prefetchData !== null ? prefetchData[2] : null\n\n const parallelRoutes = new Map()\n for (let parallelRouteKey in routerStateChildren) {\n const routerStateChild: FlightRouterState =\n routerStateChildren[parallelRouteKey]\n const prefetchDataChild: CacheNodeSeedData | null | void =\n prefetchDataChildren !== null\n ? prefetchDataChildren[parallelRouteKey]\n : null\n\n const segmentChild = routerStateChild[0]\n const segmentPathChild = segmentPath.concat([\n parallelRouteKey,\n segmentChild,\n ])\n const segmentKeyChild = createRouterCacheKey(segmentChild)\n\n const newCacheNodeChild = createPendingCacheNode(\n navigatedAt,\n routerStateChild,\n prefetchDataChild === undefined ? null : prefetchDataChild,\n prefetchHead,\n isPrefetchHeadPartial,\n segmentPathChild,\n scrollableSegmentsResult\n )\n\n const newSegmentMapChild: ChildSegmentMap = new Map()\n newSegmentMapChild.set(segmentKeyChild, newCacheNodeChild)\n parallelRoutes.set(parallelRouteKey, newSegmentMapChild)\n }\n\n // The head is assigned to every leaf segment delivered by the server. Based\n // on corresponding logic in fill-lazy-items-till-leaf-with-head.ts\n const isLeafSegment = parallelRoutes.size === 0\n\n if (isLeafSegment) {\n // The segment path of every leaf segment (i.e. page) is collected into\n // a result array. This is used by the LayoutRouter to scroll to ensure that\n // new pages are visible after a navigation.\n // TODO: We should use a string to represent the segment path instead of\n // an array. We already use a string representation for the path when\n // accessing the Segment Cache, so we can use the same one.\n scrollableSegmentsResult.push(segmentPath)\n }\n\n const maybePrefetchRsc = prefetchData !== null ? prefetchData[1] : null\n const maybePrefetchLoading = prefetchData !== null ? prefetchData[3] : null\n return {\n lazyData: null,\n parallelRoutes: parallelRoutes,\n\n prefetchRsc: maybePrefetchRsc !== undefined ? maybePrefetchRsc : null,\n prefetchHead: isLeafSegment ? prefetchHead : [null, null],\n\n // TODO: Technically, a loading boundary could contain dynamic data. We must\n // have separate `loading` and `prefetchLoading` fields to handle this, like\n // we do for the segment data and head.\n loading: maybePrefetchLoading !== undefined ? maybePrefetchLoading : null,\n\n // Create a deferred promise. This will be fulfilled once the dynamic\n // response is received from the server.\n rsc: createDeferredRsc() as React.ReactNode,\n head: isLeafSegment ? (createDeferredRsc() as React.ReactNode) : null,\n\n navigatedAt,\n }\n}\n\nfunction finishPendingCacheNode(\n cacheNode: CacheNode,\n taskState: FlightRouterState,\n serverState: FlightRouterState,\n dynamicData: CacheNodeSeedData,\n dynamicHead: HeadData\n): void {\n // Writes a dynamic response into an existing Cache Node tree. This does _not_\n // create a new tree, it updates the existing tree in-place. So it must follow\n // the Suspense rules of cache safety — it can resolve pending promises, but\n // it cannot overwrite existing data. It can add segments to the tree (because\n // a missing segment will cause the layout router to suspend).\n // but it cannot delete them.\n //\n // We must resolve every promise in the tree, or else it will suspend\n // indefinitely. If we did not receive data for a segment, we will resolve its\n // data promise to `null` to trigger a lazy fetch during render.\n const taskStateChildren = taskState[1]\n const serverStateChildren = serverState[1]\n const dataChildren = dynamicData[2]\n\n // The router state that we traverse the tree with (taskState) is the same one\n // that we used to construct the pending Cache Node tree. That way we're sure\n // to resolve all the pending promises.\n const parallelRoutes = cacheNode.parallelRoutes\n for (let parallelRouteKey in taskStateChildren) {\n const taskStateChild: FlightRouterState =\n taskStateChildren[parallelRouteKey]\n const serverStateChild: FlightRouterState | void =\n serverStateChildren[parallelRouteKey]\n const dataChild: CacheNodeSeedData | null | void =\n dataChildren[parallelRouteKey]\n\n const segmentMapChild = parallelRoutes.get(parallelRouteKey)\n const taskSegmentChild = taskStateChild[0]\n const taskSegmentKeyChild = createRouterCacheKey(taskSegmentChild)\n\n const cacheNodeChild =\n segmentMapChild !== undefined\n ? segmentMapChild.get(taskSegmentKeyChild)\n : undefined\n\n if (cacheNodeChild !== undefined) {\n if (\n serverStateChild !== undefined &&\n matchSegment(taskSegmentChild, serverStateChild[0])\n ) {\n if (dataChild !== undefined && dataChild !== null) {\n // This is the happy path. Recursively update all the children.\n finishPendingCacheNode(\n cacheNodeChild,\n taskStateChild,\n serverStateChild,\n dataChild,\n dynamicHead\n )\n } else {\n // The server never returned data for this segment. Trigger a lazy\n // fetch during render. This shouldn't happen because the Route Tree\n // and the Seed Data tree sent by the server should always be the same\n // shape when part of the same server response.\n abortPendingCacheNode(taskStateChild, cacheNodeChild, null)\n }\n } else {\n // The server never returned data for this segment. Trigger a lazy\n // fetch during render.\n abortPendingCacheNode(taskStateChild, cacheNodeChild, null)\n }\n } else {\n // The server response matches what was expected to receive, but there's\n // no matching Cache Node in the task tree. This is a bug in the\n // implementation because we should have created a node for every\n // segment in the tree that's associated with this task.\n }\n }\n\n // Use the dynamic data from the server to fulfill the deferred RSC promise\n // on the Cache Node.\n const rsc = cacheNode.rsc\n const dynamicSegmentData = dynamicData[1]\n if (rsc === null) {\n // This is a lazy cache node. We can overwrite it. This is only safe\n // because we know that the LayoutRouter suspends if `rsc` is `null`.\n cacheNode.rsc = dynamicSegmentData\n } else if (isDeferredRsc(rsc)) {\n // This is a deferred RSC promise. We can fulfill it with the data we just\n // received from the server. If it was already resolved by a different\n // navigation, then this does nothing because we can't overwrite data.\n rsc.resolve(dynamicSegmentData)\n } else {\n // This is not a deferred RSC promise, nor is it empty, so it must have\n // been populated by a different navigation. We must not overwrite it.\n }\n\n // Check if this is a leaf segment. If so, it will have a `head` property with\n // a pending promise that needs to be resolved with the dynamic head from\n // the server.\n const head = cacheNode.head\n if (isDeferredRsc(head)) {\n head.resolve(dynamicHead)\n }\n}\n\nexport function abortTask(task: SPANavigationTask, error: any): void {\n const cacheNode = task.node\n if (cacheNode === null) {\n // This indicates the task is already complete.\n return\n }\n\n const taskChildren = task.children\n if (taskChildren === null) {\n // Reached the leaf task node. This is the root of a pending cache\n // node tree.\n abortPendingCacheNode(task.route, cacheNode, error)\n } else {\n // This is an intermediate task node. Keep traversing until we reach a\n // task node with no children. That will be the root of the cache node tree\n // that needs to be resolved.\n for (const taskChild of taskChildren.values()) {\n abortTask(taskChild, error)\n }\n }\n\n // Set this to null to indicate that this task is now complete.\n task.dynamicRequestTree = null\n}\n\nfunction abortPendingCacheNode(\n routerState: FlightRouterState,\n cacheNode: CacheNode,\n error: any\n): void {\n // For every pending segment in the tree, resolve its `rsc` promise to `null`\n // to trigger a lazy fetch during render.\n //\n // Or, if an error object is provided, it will error instead.\n const routerStateChildren = routerState[1]\n const parallelRoutes = cacheNode.parallelRoutes\n for (let parallelRouteKey in routerStateChildren) {\n const routerStateChild: FlightRouterState =\n routerStateChildren[parallelRouteKey]\n const segmentMapChild = parallelRoutes.get(parallelRouteKey)\n if (segmentMapChild === undefined) {\n // This shouldn't happen because we're traversing the same tree that was\n // used to construct the cache nodes in the first place.\n continue\n }\n const segmentChild = routerStateChild[0]\n const segmentKeyChild = createRouterCacheKey(segmentChild)\n const cacheNodeChild = segmentMapChild.get(segmentKeyChild)\n if (cacheNodeChild !== undefined) {\n abortPendingCacheNode(routerStateChild, cacheNodeChild, error)\n } else {\n // This shouldn't happen because we're traversing the same tree that was\n // used to construct the cache nodes in the first place.\n }\n }\n const rsc = cacheNode.rsc\n if (isDeferredRsc(rsc)) {\n if (error === null) {\n // This will trigger a lazy fetch during render.\n rsc.resolve(null)\n } else {\n // This will trigger an error during rendering.\n rsc.reject(error)\n }\n }\n\n // Check if this is a leaf segment. If so, it will have a `head` property with\n // a pending promise that needs to be resolved. If an error was provided, we\n // will not resolve it with an error, since this is rendered at the root of\n // the app. We want the segment to error, not the entire app.\n const head = cacheNode.head\n if (isDeferredRsc(head)) {\n head.resolve(null)\n }\n}\n\nexport function updateCacheNodeOnPopstateRestoration(\n oldCacheNode: CacheNode,\n routerState: FlightRouterState\n): ReadyCacheNode {\n // A popstate navigation reads data from the local cache. It does not issue\n // new network requests (unless the cache entries have been evicted). So, we\n // update the cache to drop the prefetch data for any segment whose dynamic\n // data was already received. This prevents an unnecessary flash back to PPR\n // state during a back/forward navigation.\n //\n // This function clones the entire cache node tree and sets the `prefetchRsc`\n // field to `null` to prevent it from being rendered. We can't mutate the node\n // in place because this is a concurrent data structure.\n\n const routerStateChildren = routerState[1]\n const oldParallelRoutes = oldCacheNode.parallelRoutes\n const newParallelRoutes = new Map(oldParallelRoutes)\n for (let parallelRouteKey in routerStateChildren) {\n const routerStateChild: FlightRouterState =\n routerStateChildren[parallelRouteKey]\n const segmentChild = routerStateChild[0]\n const segmentKeyChild = createRouterCacheKey(segmentChild)\n const oldSegmentMapChild = oldParallelRoutes.get(parallelRouteKey)\n if (oldSegmentMapChild !== undefined) {\n const oldCacheNodeChild = oldSegmentMapChild.get(segmentKeyChild)\n if (oldCacheNodeChild !== undefined) {\n const newCacheNodeChild = updateCacheNodeOnPopstateRestoration(\n oldCacheNodeChild,\n routerStateChild\n )\n const newSegmentMapChild = new Map(oldSegmentMapChild)\n newSegmentMapChild.set(segmentKeyChild, newCacheNodeChild)\n newParallelRoutes.set(parallelRouteKey, newSegmentMapChild)\n }\n }\n }\n\n // Only show prefetched data if the dynamic data is still pending.\n //\n // Tehnically, what we're actually checking is whether the dynamic network\n // response was received. But since it's a streaming response, this does not\n // mean that all the dynamic data has fully streamed in. It just means that\n // _some_ of the dynamic data was received. But as a heuristic, we assume that\n // the rest dynamic data will stream in quickly, so it's still better to skip\n // the prefetch state.\n const rsc = oldCacheNode.rsc\n const shouldUsePrefetch = isDeferredRsc(rsc) && rsc.status === 'pending'\n\n return {\n lazyData: null,\n rsc,\n head: oldCacheNode.head,\n\n prefetchHead: shouldUsePrefetch ? oldCacheNode.prefetchHead : [null, null],\n prefetchRsc: shouldUsePrefetch ? oldCacheNode.prefetchRsc : null,\n loading: oldCacheNode.loading,\n\n // These are the cloned children we computed above\n parallelRoutes: newParallelRoutes,\n\n navigatedAt: oldCacheNode.navigatedAt,\n }\n}\n\nconst DEFERRED = Symbol()\n\ntype PendingDeferredRsc = Promise<React.ReactNode> & {\n status: 'pending'\n resolve: (value: React.ReactNode) => void\n reject: (error: any) => void\n tag: Symbol\n}\n\ntype FulfilledDeferredRsc = Promise<React.ReactNode> & {\n status: 'fulfilled'\n value: React.ReactNode\n resolve: (value: React.ReactNode) => void\n reject: (error: any) => void\n tag: Symbol\n}\n\ntype RejectedDeferredRsc = Promise<React.ReactNode> & {\n status: 'rejected'\n reason: any\n resolve: (value: React.ReactNode) => void\n reject: (error: any) => void\n tag: Symbol\n}\n\ntype DeferredRsc =\n | PendingDeferredRsc\n | FulfilledDeferredRsc\n | RejectedDeferredRsc\n\n// This type exists to distinguish a DeferredRsc from a Flight promise. It's a\n// compromise to avoid adding an extra field on every Cache Node, which would be\n// awkward because the pre-PPR parts of codebase would need to account for it,\n// too. We can remove it once type Cache Node type is more settled.\nfunction isDeferredRsc(value: any): value is DeferredRsc {\n return value && value.tag === DEFERRED\n}\n\nfunction createDeferredRsc(): PendingDeferredRsc {\n let resolve: any\n let reject: any\n const pendingRsc = new Promise<React.ReactNode>((res, rej) => {\n resolve = res\n reject = rej\n }) as PendingDeferredRsc\n pendingRsc.status = 'pending'\n pendingRsc.resolve = (value: React.ReactNode) => {\n if (pendingRsc.status === 'pending') {\n const fulfilledRsc: FulfilledDeferredRsc = pendingRsc as any\n fulfilledRsc.status = 'fulfilled'\n fulfilledRsc.value = value\n resolve(value)\n }\n }\n pendingRsc.reject = (error: any) => {\n if (pendingRsc.status === 'pending') {\n const rejectedRsc: RejectedDeferredRsc = pendingRsc as any\n rejectedRsc.status = 'rejected'\n rejectedRsc.reason = error\n reject(error)\n }\n }\n pendingRsc.tag = DEFERRED\n return pendingRsc\n}\n","import type { FlightSegmentPath } from '../../../server/app-render/types'\nimport type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport { getNextFlightSegmentPath } from '../../flight-data-helpers'\nimport { createRouterCacheKey } from './create-router-cache-key'\n\n/**\n * This will clear the CacheNode data for a particular segment path. This will cause a lazy-fetch in layout router to fill in new data.\n */\nexport function clearCacheNodeDataForSegmentPath(\n newCache: CacheNode,\n existingCache: CacheNode,\n flightSegmentPath: FlightSegmentPath\n): void {\n const isLastEntry = flightSegmentPath.length <= 2\n\n const [parallelRouteKey, segment] = flightSegmentPath\n const cacheKey = createRouterCacheKey(segment)\n\n const existingChildSegmentMap =\n existingCache.parallelRoutes.get(parallelRouteKey)\n\n let childSegmentMap = newCache.parallelRoutes.get(parallelRouteKey)\n\n if (!childSegmentMap || childSegmentMap === existingChildSegmentMap) {\n childSegmentMap = new Map(existingChildSegmentMap)\n newCache.parallelRoutes.set(parallelRouteKey, childSegmentMap)\n }\n\n const existingChildCacheNode = existingChildSegmentMap?.get(cacheKey)\n let childCacheNode = childSegmentMap.get(cacheKey)\n\n // In case of last segment start off the fetch at this level and don't copy further down.\n if (isLastEntry) {\n if (\n !childCacheNode ||\n !childCacheNode.lazyData ||\n childCacheNode === existingChildCacheNode\n ) {\n childSegmentMap.set(cacheKey, {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1,\n })\n }\n return\n }\n\n if (!childCacheNode || !existingChildCacheNode) {\n // Start fetch in the place where the existing cache doesn't have the data yet.\n if (!childCacheNode) {\n childSegmentMap.set(cacheKey, {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1,\n })\n }\n return\n }\n\n if (childCacheNode === existingChildCacheNode) {\n childCacheNode = {\n lazyData: childCacheNode.lazyData,\n rsc: childCacheNode.rsc,\n prefetchRsc: childCacheNode.prefetchRsc,\n head: childCacheNode.head,\n prefetchHead: childCacheNode.prefetchHead,\n parallelRoutes: new Map(childCacheNode.parallelRoutes),\n loading: childCacheNode.loading,\n } as CacheNode\n childSegmentMap.set(cacheKey, childCacheNode)\n }\n\n return clearCacheNodeDataForSegmentPath(\n childCacheNode,\n existingChildCacheNode,\n getNextFlightSegmentPath(flightSegmentPath)\n )\n}\n","import type {\n CacheNodeSeedData,\n FlightRouterState,\n} from '../../../server/app-render/types'\nimport type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport {\n addSearchParamsIfPageSegment,\n PAGE_SEGMENT_KEY,\n} from '../../../shared/lib/segment'\nimport type { NormalizedFlightData } from '../../flight-data-helpers'\nimport { createEmptyCacheNode } from '../app-router'\nimport { applyRouterStatePatchToTree } from './apply-router-state-patch-to-tree'\nimport { createHrefFromUrl } from './create-href-from-url'\nimport { createRouterCacheKey } from './create-router-cache-key'\nimport { fillCacheWithNewSubTreeDataButOnlyLoading } from './fill-cache-with-new-subtree-data'\nimport { handleMutable } from './handle-mutable'\nimport type { Mutable, ReadonlyReducerState } from './router-reducer-types'\n\n/**\n * This is a stop-gap until per-segment caching is implemented. It leverages the `aliased` flag that is added\n * to prefetch entries when it's determined that the loading state from that entry should be used for this navigation.\n * This function takes the aliased entry and only applies the loading state to the updated cache node.\n * We should remove this once per-segment fetching is implemented as ideally the prefetch cache will contain a\n * more granular segment map and so the router will be able to simply re-use the loading segment for the new navigation.\n */\nexport function handleAliasedPrefetchEntry(\n navigatedAt: number,\n state: ReadonlyReducerState,\n flightData: string | NormalizedFlightData[],\n url: URL,\n mutable: Mutable\n) {\n let currentTree = state.tree\n let currentCache = state.cache\n const href = createHrefFromUrl(url)\n let applied\n\n if (typeof flightData === 'string') {\n return false\n }\n\n for (const normalizedFlightData of flightData) {\n // If the segment doesn't have a loading component, we don't need to do anything.\n if (!hasLoadingComponentInSeedData(normalizedFlightData.seedData)) {\n continue\n }\n\n let treePatch = normalizedFlightData.tree\n // Segments are keyed by searchParams (e.g. __PAGE__?{\"foo\":\"bar\"}). We might return a less specific, param-less entry,\n // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree.\n // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set\n treePatch = addSearchParamsToPageSegments(\n treePatch,\n Object.fromEntries(url.searchParams)\n )\n\n const { seedData, isRootRender, pathToSegment } = normalizedFlightData\n // TODO-APP: remove ''\n const flightSegmentPathWithLeadingEmpty = ['', ...pathToSegment]\n\n // Segments are keyed by searchParams (e.g. __PAGE__?{\"foo\":\"bar\"}). We might return a less specific, param-less entry,\n // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree.\n // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set\n treePatch = addSearchParamsToPageSegments(\n treePatch,\n Object.fromEntries(url.searchParams)\n )\n\n let newTree = applyRouterStatePatchToTree(\n flightSegmentPathWithLeadingEmpty,\n currentTree,\n treePatch,\n href\n )\n\n const newCache = createEmptyCacheNode()\n\n // The prefetch cache entry was aliased -- this signals that we only fill in the cache with the\n // loading state and not the actual parallel route seed data.\n if (isRootRender && seedData) {\n // Fill in the cache with the new loading / rsc data\n const rsc = seedData[1]\n const loading = seedData[3]\n newCache.loading = loading\n newCache.rsc = rsc\n\n // Construct a new tree and apply the aliased loading state for each parallel route\n fillNewTreeWithOnlyLoadingSegments(\n navigatedAt,\n newCache,\n currentCache,\n treePatch,\n seedData\n )\n } else {\n // Copy rsc for the root node of the cache.\n newCache.rsc = currentCache.rsc\n newCache.prefetchRsc = currentCache.prefetchRsc\n newCache.loading = currentCache.loading\n newCache.parallelRoutes = new Map(currentCache.parallelRoutes)\n\n // copy the loading state only into the leaf node (the part that changed)\n fillCacheWithNewSubTreeDataButOnlyLoading(\n navigatedAt,\n newCache,\n currentCache,\n normalizedFlightData\n )\n }\n\n // If we don't have an updated tree, there's no reason to update the cache, as the tree\n // dictates what cache nodes to render.\n if (newTree) {\n currentTree = newTree\n currentCache = newCache\n applied = true\n }\n }\n\n if (!applied) {\n return false\n }\n\n mutable.patchedTree = currentTree\n mutable.cache = currentCache\n mutable.canonicalUrl = href\n mutable.hashFragment = url.hash\n\n return handleMutable(state, mutable)\n}\n\nfunction hasLoadingComponentInSeedData(seedData: CacheNodeSeedData | null) {\n if (!seedData) return false\n\n const parallelRoutes = seedData[2]\n const loading = seedData[3]\n\n if (loading) {\n return true\n }\n\n for (const key in parallelRoutes) {\n if (hasLoadingComponentInSeedData(parallelRoutes[key])) {\n return true\n }\n }\n\n return false\n}\n\nfunction fillNewTreeWithOnlyLoadingSegments(\n navigatedAt: number,\n newCache: CacheNode,\n existingCache: CacheNode,\n routerState: FlightRouterState,\n cacheNodeSeedData: CacheNodeSeedData | null\n) {\n const isLastSegment = Object.keys(routerState[1]).length === 0\n if (isLastSegment) {\n return\n }\n\n for (const key in routerState[1]) {\n const parallelRouteState = routerState[1][key]\n const segmentForParallelRoute = parallelRouteState[0]\n const cacheKey = createRouterCacheKey(segmentForParallelRoute)\n\n const parallelSeedData =\n cacheNodeSeedData !== null && cacheNodeSeedData[2][key] !== undefined\n ? cacheNodeSeedData[2][key]\n : null\n\n let newCacheNode: CacheNode\n if (parallelSeedData !== null) {\n // New data was sent from the server.\n const rsc = parallelSeedData[1]\n const loading = parallelSeedData[3]\n newCacheNode = {\n lazyData: null,\n // copy the layout but null the page segment as that's not meant to be used\n rsc: segmentForParallelRoute.includes(PAGE_SEGMENT_KEY) ? null : rsc,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading,\n navigatedAt,\n }\n } else {\n // No data available for this node. This will trigger a lazy fetch\n // during render.\n newCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1,\n }\n }\n\n const existingParallelRoutes = newCache.parallelRoutes.get(key)\n if (existingParallelRoutes) {\n existingParallelRoutes.set(cacheKey, newCacheNode)\n } else {\n newCache.parallelRoutes.set(key, new Map([[cacheKey, newCacheNode]]))\n }\n\n fillNewTreeWithOnlyLoadingSegments(\n navigatedAt,\n newCacheNode,\n existingCache,\n parallelRouteState,\n parallelSeedData\n )\n }\n}\n\n/**\n * Add search params to the page segments in the flight router state\n * Page segments that are associated with search params have a page segment key\n * followed by a query string. This function will add those params to the page segment.\n * This is useful if we return an aliased prefetch entry (ie, won't have search params)\n * but the canonical router URL has search params.\n */\nexport function addSearchParamsToPageSegments(\n flightRouterState: FlightRouterState,\n searchParams: Record<string, string | string[] | undefined>\n): FlightRouterState {\n const [segment, parallelRoutes, ...rest] = flightRouterState\n\n // If it's a page segment, modify the segment by adding search params\n if (segment.includes(PAGE_SEGMENT_KEY)) {\n const newSegment = addSearchParamsIfPageSegment(segment, searchParams)\n return [newSegment, parallelRoutes, ...rest]\n }\n\n // Otherwise, recurse through the parallel routes and return a new tree\n const updatedParallelRoutes: { [key: string]: FlightRouterState } = {}\n\n for (const [key, parallelRoute] of Object.entries(parallelRoutes)) {\n updatedParallelRoutes[key] = addSearchParamsToPageSegments(\n parallelRoute,\n searchParams\n )\n }\n\n return [segment, updatedParallelRoutes, ...rest]\n}\n","import type { CacheNode } from '../../../../shared/lib/app-router-context.shared-runtime'\nimport type {\n FlightRouterState,\n FlightSegmentPath,\n} from '../../../../server/app-render/types'\nimport { fetchServerResponse } from '../fetch-server-response'\nimport { createHrefFromUrl } from '../create-href-from-url'\nimport { invalidateCacheBelowFlightSegmentPath } from '../invalidate-cache-below-flight-segmentpath'\nimport { applyRouterStatePatchToTree } from '../apply-router-state-patch-to-tree'\nimport { shouldHardNavigate } from '../should-hard-navigate'\nimport { isNavigatingToNewRootLayout } from '../is-navigating-to-new-root-layout'\nimport {\n PrefetchCacheEntryStatus,\n type Mutable,\n type NavigateAction,\n type ReadonlyReducerState,\n type ReducerState,\n} from '../router-reducer-types'\nimport { handleMutable } from '../handle-mutable'\nimport { applyFlightData } from '../apply-flight-data'\nimport { prefetchQueue } from './prefetch-reducer'\nimport { createEmptyCacheNode } from '../../app-router'\nimport { DEFAULT_SEGMENT_KEY } from '../../../../shared/lib/segment'\nimport { listenForDynamicRequest, startPPRNavigation } from '../ppr-navigations'\nimport {\n getOrCreatePrefetchCacheEntry,\n prunePrefetchCache,\n} from '../prefetch-cache-utils'\nimport { clearCacheNodeDataForSegmentPath } from '../clear-cache-node-data-for-segment-path'\nimport { handleAliasedPrefetchEntry } from '../aliased-prefetch-navigations'\nimport {\n navigate as navigateUsingSegmentCache,\n NavigationResultTag,\n type NavigationResult,\n} from '../../segment-cache'\n\nexport function handleExternalUrl(\n state: ReadonlyReducerState,\n mutable: Mutable,\n url: string,\n pendingPush: boolean\n) {\n mutable.mpaNavigation = true\n mutable.canonicalUrl = url\n mutable.pendingPush = pendingPush\n mutable.scrollableSegments = undefined\n\n return handleMutable(state, mutable)\n}\n\nfunction generateSegmentsFromPatch(\n flightRouterPatch: FlightRouterState\n): FlightSegmentPath[] {\n const segments: FlightSegmentPath[] = []\n const [segment, parallelRoutes] = flightRouterPatch\n\n if (Object.keys(parallelRoutes).length === 0) {\n return [[segment]]\n }\n\n for (const [parallelRouteKey, parallelRoute] of Object.entries(\n parallelRoutes\n )) {\n for (const childSegment of generateSegmentsFromPatch(parallelRoute)) {\n // If the segment is empty, it means we are at the root of the tree\n if (segment === '') {\n segments.push([parallelRouteKey, ...childSegment])\n } else {\n segments.push([segment, parallelRouteKey, ...childSegment])\n }\n }\n }\n\n return segments\n}\n\nfunction triggerLazyFetchForLeafSegments(\n newCache: CacheNode,\n currentCache: CacheNode,\n flightSegmentPath: FlightSegmentPath,\n treePatch: FlightRouterState\n) {\n let appliedPatch = false\n\n newCache.rsc = currentCache.rsc\n newCache.prefetchRsc = currentCache.prefetchRsc\n newCache.loading = currentCache.loading\n newCache.parallelRoutes = new Map(currentCache.parallelRoutes)\n\n const segmentPathsToFill = generateSegmentsFromPatch(treePatch).map(\n (segment) => [...flightSegmentPath, ...segment]\n )\n\n for (const segmentPaths of segmentPathsToFill) {\n clearCacheNodeDataForSegmentPath(newCache, currentCache, segmentPaths)\n\n appliedPatch = true\n }\n\n return appliedPatch\n}\n\nfunction handleNavigationResult(\n url: URL,\n state: ReadonlyReducerState,\n mutable: Mutable,\n pendingPush: boolean,\n result: NavigationResult\n): ReducerState {\n switch (result.tag) {\n case NavigationResultTag.MPA: {\n // Perform an MPA navigation.\n const newUrl = result.data\n return handleExternalUrl(state, mutable, newUrl, pendingPush)\n }\n case NavigationResultTag.NoOp: {\n // The server responded with no change to the current page. However, if\n // the URL changed, we still need to update that.\n const newCanonicalUrl = result.data.canonicalUrl\n mutable.canonicalUrl = newCanonicalUrl\n\n // Check if the only thing that changed was the hash fragment.\n const oldUrl = new URL(state.canonicalUrl, url)\n const onlyHashChange =\n // We don't need to compare the origins, because client-driven\n // navigations are always same-origin.\n url.pathname === oldUrl.pathname &&\n url.search === oldUrl.search &&\n url.hash !== oldUrl.hash\n if (onlyHashChange) {\n // The only updated part of the URL is the hash.\n mutable.onlyHashChange = true\n mutable.shouldScroll = result.data.shouldScroll\n mutable.hashFragment = url.hash\n // Setting this to an empty array triggers a scroll for all new and\n // updated segments. See `ScrollAndFocusHandler` for more details.\n mutable.scrollableSegments = []\n }\n\n return handleMutable(state, mutable)\n }\n case NavigationResultTag.Success: {\n // Received a new result.\n mutable.cache = result.data.cacheNode\n mutable.patchedTree = result.data.flightRouterState\n mutable.canonicalUrl = result.data.canonicalUrl\n mutable.scrollableSegments = result.data.scrollableSegments\n mutable.shouldScroll = result.data.shouldScroll\n mutable.hashFragment = result.data.hash\n return handleMutable(state, mutable)\n }\n case NavigationResultTag.Async: {\n return result.data.then(\n (asyncResult) =>\n handleNavigationResult(url, state, mutable, pendingPush, asyncResult),\n // If the navigation failed, return the current state.\n // TODO: This matches the current behavior but we need to do something\n // better here if the network fails.\n () => {\n return state\n }\n )\n }\n default: {\n result satisfies never\n return state\n }\n }\n}\n\nexport function navigateReducer(\n state: ReadonlyReducerState,\n action: NavigateAction\n): ReducerState {\n const { url, isExternalUrl, navigateType, shouldScroll, allowAliasing } =\n action\n const mutable: Mutable = {}\n const { hash } = url\n const href = createHrefFromUrl(url)\n const pendingPush = navigateType === 'push'\n // we want to prune the prefetch cache on every navigation to avoid it growing too large\n prunePrefetchCache(state.prefetchCache)\n\n mutable.preserveCustomHistoryState = false\n mutable.pendingPush = pendingPush\n\n if (isExternalUrl) {\n return handleExternalUrl(state, mutable, url.toString(), pendingPush)\n }\n\n // Handles case where `<meta http-equiv=\"refresh\">` tag is present,\n // which will trigger an MPA navigation.\n if (document.getElementById('__next-page-redirect')) {\n return handleExternalUrl(state, mutable, href, pendingPush)\n }\n\n if (process.env.__NEXT_CLIENT_SEGMENT_CACHE) {\n // (Very Early Experimental Feature) Segment Cache\n //\n // Bypass the normal prefetch cache and use the new per-segment cache\n // implementation instead. This is only supported if PPR is enabled, too.\n //\n // Temporary glue code between the router reducer and the new navigation\n // implementation. Eventually we'll rewrite the router reducer to a\n // state machine.\n const result = navigateUsingSegmentCache(\n url,\n state.cache,\n state.tree,\n state.nextUrl,\n shouldScroll\n )\n return handleNavigationResult(url, state, mutable, pendingPush, result)\n }\n\n const prefetchValues = getOrCreatePrefetchCacheEntry({\n url,\n nextUrl: state.nextUrl,\n tree: state.tree,\n prefetchCache: state.prefetchCache,\n allowAliasing,\n })\n const { treeAtTimeOfPrefetch, data } = prefetchValues\n\n prefetchQueue.bump(data)\n\n return data.then(\n ({ flightData, canonicalUrl: canonicalUrlOverride, postponed }) => {\n const navigatedAt = Date.now()\n\n let isFirstRead = false\n // we only want to mark this once\n if (!prefetchValues.lastUsedTime) {\n // important: we should only mark the cache node as dirty after we unsuspend from the call above\n prefetchValues.lastUsedTime = navigatedAt\n isFirstRead = true\n }\n\n if (prefetchValues.aliased) {\n const result = handleAliasedPrefetchEntry(\n navigatedAt,\n state,\n flightData,\n url,\n mutable\n )\n\n // We didn't return new router state because we didn't apply the aliased entry for some reason.\n // We'll re-invoke the navigation handler but ensure that we don't attempt to use the aliased entry. This\n // will create an on-demand prefetch entry.\n if (result === false) {\n return navigateReducer(state, { ...action, allowAliasing: false })\n }\n\n return result\n }\n\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === 'string') {\n return handleExternalUrl(state, mutable, flightData, pendingPush)\n }\n\n const updatedCanonicalUrl = canonicalUrlOverride\n ? createHrefFromUrl(canonicalUrlOverride)\n : href\n\n const onlyHashChange =\n !!hash &&\n state.canonicalUrl.split('#', 1)[0] ===\n updatedCanonicalUrl.split('#', 1)[0]\n\n // If only the hash has changed, the server hasn't sent us any new data. We can just update\n // the mutable properties responsible for URL and scroll handling and return early.\n if (onlyHashChange) {\n mutable.onlyHashChange = true\n mutable.canonicalUrl = updatedCanonicalUrl\n mutable.shouldScroll = shouldScroll\n mutable.hashFragment = hash\n mutable.scrollableSegments = []\n return handleMutable(state, mutable)\n }\n\n let currentTree = state.tree\n let currentCache = state.cache\n let scrollableSegments: FlightSegmentPath[] = []\n for (const normalizedFlightData of flightData) {\n const {\n pathToSegment: flightSegmentPath,\n seedData,\n head,\n isHeadPartial,\n isRootRender,\n } = normalizedFlightData\n let treePatch = normalizedFlightData.tree\n\n // TODO-APP: remove ''\n const flightSegmentPathWithLeadingEmpty = ['', ...flightSegmentPath]\n\n // Create new tree based on the flightSegmentPath and router state patch\n let newTree = applyRouterStatePatchToTree(\n // TODO-APP: remove ''\n flightSegmentPathWithLeadingEmpty,\n currentTree,\n treePatch,\n href\n )\n\n // If the tree patch can't be applied to the current tree then we use the tree at time of prefetch\n // TODO-APP: This should instead fill in the missing pieces in `currentTree` with the data from `treeAtTimeOfPrefetch`, then apply the patch.\n if (newTree === null) {\n newTree = applyRouterStatePatchToTree(\n // TODO-APP: remove ''\n flightSegmentPathWithLeadingEmpty,\n treeAtTimeOfPrefetch,\n treePatch,\n href\n )\n }\n\n if (newTree !== null) {\n if (\n // This is just a paranoid check. When a route is PPRed, the server\n // will send back a static response that's rendered from\n // the root. If for some reason it doesn't, we fall back to the\n // non-PPR implementation.\n // TODO: We should get rid of the else branch and do all navigations\n // via startPPRNavigation. The current structure is just\n // an incremental step.\n seedData &&\n isRootRender &&\n postponed\n ) {\n const task = startPPRNavigation(\n navigatedAt,\n currentCache,\n currentTree,\n treePatch,\n seedData,\n head,\n isHeadPartial,\n false,\n scrollableSegments\n )\n\n if (task !== null) {\n if (task.route === null) {\n // Detected a change to the root layout. Perform an full-\n // page navigation.\n return handleExternalUrl(state, mutable, href, pendingPush)\n }\n // Use the tree computed by startPPRNavigation instead\n // of the one computed by applyRouterStatePatchToTree.\n // TODO: We should remove applyRouterStatePatchToTree\n // from the PPR path entirely.\n const patchedRouterState: FlightRouterState = task.route\n newTree = patchedRouterState\n\n const newCache = task.node\n if (newCache !== null) {\n // We've created a new Cache Node tree that contains a prefetched\n // version of the next page. This can be rendered instantly.\n mutable.cache = newCache\n }\n const dynamicRequestTree = task.dynamicRequestTree\n if (dynamicRequestTree !== null) {\n // The prefetched tree has dynamic holes in it. We initiate a\n // dynamic request to fill them in.\n //\n // Do not block on the result. We'll immediately render the Cache\n // Node tree and suspend on the dynamic parts. When the request\n // comes in, we'll fill in missing data and ping React to\n // re-render. Unlike the lazy fetching model in the non-PPR\n // implementation, this is modeled as a single React update +\n // streaming, rather than multiple top-level updates. (However,\n // even in the new model, we'll still need to sometimes update the\n // root multiple times per navigation, like if the server sends us\n // a different response than we expected. For now, we revert back\n // to the lazy fetching mechanism in that case.)\n const dynamicRequest = fetchServerResponse(url, {\n flightRouterState: dynamicRequestTree,\n nextUrl: state.nextUrl,\n })\n\n listenForDynamicRequest(task, dynamicRequest)\n // We store the dynamic request on the `lazyData` property of the CacheNode\n // because we're not going to await the dynamic request here. Since we're not blocking\n // on the dynamic request, `layout-router` will\n // task.node.lazyData = dynamicRequest\n } else {\n // The prefetched tree does not contain dynamic holes — it's\n // fully static. We can skip the dynamic request.\n }\n } else {\n // Nothing changed, so reuse the old cache.\n // TODO: What if the head changed but not any of the segment data?\n // Is that possible? If so, we should clone the whole tree and\n // update the head.\n newTree = treePatch\n }\n } else {\n // The static response does not include any dynamic holes, so\n // there's no need to do a second request.\n // TODO: As an incremental step this just reverts back to the\n // non-PPR implementation. We can simplify this branch further,\n // given that PPR prefetches are always static and return the whole\n // tree. Or in the meantime we could factor it out into a\n // separate function.\n\n if (isNavigatingToNewRootLayout(currentTree, newTree)) {\n return handleExternalUrl(state, mutable, href, pendingPush)\n }\n\n const cache: CacheNode = createEmptyCacheNode()\n let applied = false\n\n if (\n prefetchValues.status === PrefetchCacheEntryStatus.stale &&\n !isFirstRead\n ) {\n // When we have a stale prefetch entry, we only want to re-use the loading state of the route we're navigating to, to support instant loading navigations\n // this will trigger a lazy fetch for the actual page data by nulling the `rsc` and `prefetchRsc` values for page data,\n // while copying over the `loading` for the segment that contains the page data.\n // We only do this on subsequent reads, as otherwise there'd be no loading data to re-use.\n\n // We skip this branch if only the hash fragment has changed, as we don't want to trigger a lazy fetch in that case\n applied = triggerLazyFetchForLeafSegments(\n cache,\n currentCache,\n flightSegmentPath,\n treePatch\n )\n // since we re-used the stale cache's loading state & refreshed the data,\n // update the `lastUsedTime` so that it can continue to be re-used for the next 30s\n prefetchValues.lastUsedTime = navigatedAt\n } else {\n applied = applyFlightData(\n navigatedAt,\n currentCache,\n cache,\n normalizedFlightData,\n prefetchValues\n )\n }\n\n const hardNavigate = shouldHardNavigate(\n // TODO-APP: remove ''\n flightSegmentPathWithLeadingEmpty,\n currentTree\n )\n\n if (hardNavigate) {\n // Copy rsc for the root node of the cache.\n cache.rsc = currentCache.rsc\n cache.prefetchRsc = currentCache.prefetchRsc\n\n invalidateCacheBelowFlightSegmentPath(\n cache,\n currentCache,\n flightSegmentPath\n )\n // Ensure the existing cache value is used when the cache was not invalidated.\n mutable.cache = cache\n } else if (applied) {\n mutable.cache = cache\n // If we applied the cache, we update the \"current cache\" value so any other\n // segments in the FlightDataPath will be able to reference the updated cache.\n currentCache = cache\n }\n\n for (const subSegment of generateSegmentsFromPatch(treePatch)) {\n const scrollableSegmentPath = [\n ...flightSegmentPath,\n ...subSegment,\n ]\n // Filter out the __DEFAULT__ paths as they shouldn't be scrolled to in this case.\n if (\n scrollableSegmentPath[scrollableSegmentPath.length - 1] !==\n DEFAULT_SEGMENT_KEY\n ) {\n scrollableSegments.push(scrollableSegmentPath)\n }\n }\n }\n\n currentTree = newTree\n }\n }\n\n mutable.patchedTree = currentTree\n mutable.canonicalUrl = updatedCanonicalUrl\n mutable.scrollableSegments = scrollableSegments\n mutable.hashFragment = hash\n mutable.shouldScroll = shouldScroll\n\n return handleMutable(state, mutable)\n },\n () => state\n )\n}\n","import { createHrefFromUrl } from '../create-href-from-url'\nimport { applyRouterStatePatchToTree } from '../apply-router-state-patch-to-tree'\nimport { isNavigatingToNewRootLayout } from '../is-navigating-to-new-root-layout'\nimport type {\n ServerPatchAction,\n ReducerState,\n ReadonlyReducerState,\n Mutable,\n} from '../router-reducer-types'\nimport { handleExternalUrl } from './navigate-reducer'\nimport { applyFlightData } from '../apply-flight-data'\nimport { handleMutable } from '../handle-mutable'\nimport type { CacheNode } from '../../../../shared/lib/app-router-context.shared-runtime'\nimport { createEmptyCacheNode } from '../../app-router'\n\nexport function serverPatchReducer(\n state: ReadonlyReducerState,\n action: ServerPatchAction\n): ReducerState {\n const {\n serverResponse: { flightData, canonicalUrl: canonicalUrlOverride },\n navigatedAt,\n } = action\n\n const mutable: Mutable = {}\n\n mutable.preserveCustomHistoryState = false\n\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === 'string') {\n return handleExternalUrl(\n state,\n mutable,\n flightData,\n state.pushRef.pendingPush\n )\n }\n\n let currentTree = state.tree\n let currentCache = state.cache\n\n for (const normalizedFlightData of flightData) {\n const { segmentPath: flightSegmentPath, tree: treePatch } =\n normalizedFlightData\n\n const newTree = applyRouterStatePatchToTree(\n // TODO-APP: remove ''\n ['', ...flightSegmentPath],\n currentTree,\n treePatch,\n state.canonicalUrl\n )\n\n // `applyRouterStatePatchToTree` returns `null` when it determined that the server response is not applicable to the current tree.\n // In other words, the server responded with a tree that doesn't match what the client is currently rendering.\n // This can happen if the server patch action took longer to resolve than a subsequent navigation which would have changed the tree.\n // Previously this case triggered an MPA navigation but it should be safe to simply discard the server response rather than forcing\n // the entire page to reload.\n if (newTree === null) {\n return state\n }\n\n if (isNavigatingToNewRootLayout(currentTree, newTree)) {\n return handleExternalUrl(\n state,\n mutable,\n state.canonicalUrl,\n state.pushRef.pendingPush\n )\n }\n\n const canonicalUrlOverrideHref = canonicalUrlOverride\n ? createHrefFromUrl(canonicalUrlOverride)\n : undefined\n\n if (canonicalUrlOverrideHref) {\n mutable.canonicalUrl = canonicalUrlOverrideHref\n }\n\n const cache: CacheNode = createEmptyCacheNode()\n applyFlightData(navigatedAt, currentCache, cache, normalizedFlightData)\n\n mutable.patchedTree = newTree\n mutable.cache = cache\n\n currentCache = cache\n currentTree = newTree\n }\n\n return handleMutable(state, mutable)\n}\n","import { createHrefFromUrl } from '../create-href-from-url'\nimport type {\n ReadonlyReducerState,\n ReducerState,\n RestoreAction,\n} from '../router-reducer-types'\nimport { extractPathFromFlightRouterState } from '../compute-changed-path'\nimport { updateCacheNodeOnPopstateRestoration } from '../ppr-navigations'\n\nexport function restoreReducer(\n state: ReadonlyReducerState,\n action: RestoreAction\n): ReducerState {\n const { url, tree } = action\n const href = createHrefFromUrl(url)\n // This action is used to restore the router state from the history state.\n // However, it's possible that the history state no longer contains the `FlightRouterState`.\n // We will copy over the internal state on pushState/replaceState events, but if a history entry\n // occurred before hydration, or if the user navigated to a hash using a regular anchor link,\n // the history state will not contain the `FlightRouterState`.\n // In this case, we'll continue to use the existing tree so the router doesn't get into an invalid state.\n const treeToRestore = tree || state.tree\n\n const oldCache = state.cache\n const newCache = process.env.__NEXT_PPR\n ? // When PPR is enabled, we update the cache to drop the prefetch\n // data for any segment whose dynamic data was already received. This\n // prevents an unnecessary flash back to PPR state during a\n // back/forward navigation.\n updateCacheNodeOnPopstateRestoration(oldCache, treeToRestore)\n : oldCache\n\n return {\n // Set canonical url\n canonicalUrl: href,\n pushRef: {\n pendingPush: false,\n mpaNavigation: false,\n // Ensures that the custom history state that was set is preserved when applying this update.\n preserveCustomHistoryState: true,\n },\n focusAndScrollRef: state.focusAndScrollRef,\n cache: newCache,\n prefetchCache: state.prefetchCache,\n // Restore provided tree\n tree: treeToRestore,\n nextUrl: extractPathFromFlightRouterState(treeToRestore) ?? url.pathname,\n }\n}\n","import type { FlightRouterState } from '../../../server/app-render/types'\nimport { handleExternalUrl } from './reducers/navigate-reducer'\nimport type {\n ReadonlyReducerState,\n ReducerActions,\n} from './router-reducer-types'\n\n/**\n * Handles the case where the client router attempted to patch the tree but, due to a mismatch, the patch failed.\n * This will perform an MPA navigation to return the router to a valid state.\n */\nexport function handleSegmentMismatch(\n state: ReadonlyReducerState,\n action: ReducerActions,\n treePatch: FlightRouterState\n) {\n if (process.env.NODE_ENV === 'development') {\n console.warn(\n 'Performing hard navigation because your application experienced an unrecoverable error. If this keeps occurring, please file a Next.js issue.\\n\\n' +\n 'Reason: Segment mismatch\\n' +\n `Last Action: ${action.type}\\n\\n` +\n `Current Tree: ${JSON.stringify(state.tree)}\\n\\n` +\n `Tree Patch Payload: ${JSON.stringify(treePatch)}`\n )\n }\n\n return handleExternalUrl(state, {}, state.canonicalUrl, true)\n}\n","import { fetchServerResponse } from '../fetch-server-response'\nimport { createHrefFromUrl } from '../create-href-from-url'\nimport { applyRouterStatePatchToTree } from '../apply-router-state-patch-to-tree'\nimport { isNavigatingToNewRootLayout } from '../is-navigating-to-new-root-layout'\nimport type {\n Mutable,\n ReadonlyReducerState,\n ReducerState,\n RefreshAction,\n} from '../router-reducer-types'\nimport { handleExternalUrl } from './navigate-reducer'\nimport { handleMutable } from '../handle-mutable'\nimport type { CacheNode } from '../../../../shared/lib/app-router-context.shared-runtime'\nimport { fillLazyItemsTillLeafWithHead } from '../fill-lazy-items-till-leaf-with-head'\nimport { createEmptyCacheNode } from '../../app-router'\nimport { handleSegmentMismatch } from '../handle-segment-mismatch'\nimport { hasInterceptionRouteInCurrentTree } from './has-interception-route-in-current-tree'\nimport { refreshInactiveParallelSegments } from '../refetch-inactive-parallel-segments'\nimport { revalidateEntireCache } from '../../segment-cache'\n\nexport function refreshReducer(\n state: ReadonlyReducerState,\n action: RefreshAction\n): ReducerState {\n const { origin } = action\n const mutable: Mutable = {}\n const href = state.canonicalUrl\n\n let currentTree = state.tree\n\n mutable.preserveCustomHistoryState = false\n\n const cache: CacheNode = createEmptyCacheNode()\n\n // If the current tree was intercepted, the nextUrl should be included in the request.\n // This is to ensure that the refresh request doesn't get intercepted, accidentally triggering the interception route.\n const includeNextUrl = hasInterceptionRouteInCurrentTree(state.tree)\n\n // TODO-APP: verify that `href` is not an external url.\n // Fetch data from the root of the tree.\n cache.lazyData = fetchServerResponse(new URL(href, origin), {\n flightRouterState: [\n currentTree[0],\n currentTree[1],\n currentTree[2],\n 'refetch',\n ],\n nextUrl: includeNextUrl ? state.nextUrl : null,\n })\n\n const navigatedAt = Date.now()\n return cache.lazyData.then(\n async ({ flightData, canonicalUrl: canonicalUrlOverride }) => {\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === 'string') {\n return handleExternalUrl(\n state,\n mutable,\n flightData,\n state.pushRef.pendingPush\n )\n }\n\n // Remove cache.lazyData as it has been resolved at this point.\n cache.lazyData = null\n\n for (const normalizedFlightData of flightData) {\n const {\n tree: treePatch,\n seedData: cacheNodeSeedData,\n head,\n isRootRender,\n } = normalizedFlightData\n\n if (!isRootRender) {\n // TODO-APP: handle this case better\n console.log('REFRESH FAILED')\n return state\n }\n\n const newTree = applyRouterStatePatchToTree(\n // TODO-APP: remove ''\n [''],\n currentTree,\n treePatch,\n state.canonicalUrl\n )\n\n if (newTree === null) {\n return handleSegmentMismatch(state, action, treePatch)\n }\n\n if (isNavigatingToNewRootLayout(currentTree, newTree)) {\n return handleExternalUrl(\n state,\n mutable,\n href,\n state.pushRef.pendingPush\n )\n }\n\n const canonicalUrlOverrideHref = canonicalUrlOverride\n ? createHrefFromUrl(canonicalUrlOverride)\n : undefined\n\n if (canonicalUrlOverride) {\n mutable.canonicalUrl = canonicalUrlOverrideHref\n }\n\n // Handles case where prefetch only returns the router tree patch without rendered components.\n if (cacheNodeSeedData !== null) {\n const rsc = cacheNodeSeedData[1]\n const loading = cacheNodeSeedData[3]\n cache.rsc = rsc\n cache.prefetchRsc = null\n cache.loading = loading\n fillLazyItemsTillLeafWithHead(\n navigatedAt,\n cache,\n // Existing cache is not passed in as `router.refresh()` has to invalidate the entire cache.\n undefined,\n treePatch,\n cacheNodeSeedData,\n head,\n undefined\n )\n if (process.env.__NEXT_CLIENT_SEGMENT_CACHE) {\n revalidateEntireCache(state.nextUrl, newTree)\n } else {\n mutable.prefetchCache = new Map()\n }\n }\n\n await refreshInactiveParallelSegments({\n navigatedAt,\n state,\n updatedTree: newTree,\n updatedCache: cache,\n includeNextUrl,\n canonicalUrl: mutable.canonicalUrl || state.canonicalUrl,\n })\n\n mutable.cache = cache\n mutable.patchedTree = newTree\n\n currentTree = newTree\n }\n\n return handleMutable(state, mutable)\n },\n () => state\n )\n}\n","import { fetchServerResponse } from '../fetch-server-response'\nimport { createHrefFromUrl } from '../create-href-from-url'\nimport { applyRouterStatePatchToTree } from '../apply-router-state-patch-to-tree'\nimport { isNavigatingToNewRootLayout } from '../is-navigating-to-new-root-layout'\nimport type {\n ReadonlyReducerState,\n ReducerState,\n HmrRefreshAction,\n Mutable,\n} from '../router-reducer-types'\nimport { handleExternalUrl } from './navigate-reducer'\nimport { handleMutable } from '../handle-mutable'\nimport { applyFlightData } from '../apply-flight-data'\nimport type { CacheNode } from '../../../../shared/lib/app-router-context.shared-runtime'\nimport { createEmptyCacheNode } from '../../app-router'\nimport { handleSegmentMismatch } from '../handle-segment-mismatch'\nimport { hasInterceptionRouteInCurrentTree } from './has-interception-route-in-current-tree'\n\n// A version of refresh reducer that keeps the cache around instead of wiping all of it.\nfunction hmrRefreshReducerImpl(\n state: ReadonlyReducerState,\n action: HmrRefreshAction\n): ReducerState {\n const { origin } = action\n const mutable: Mutable = {}\n const href = state.canonicalUrl\n\n mutable.preserveCustomHistoryState = false\n\n const cache: CacheNode = createEmptyCacheNode()\n // If the current tree was intercepted, the nextUrl should be included in the request.\n // This is to ensure that the refresh request doesn't get intercepted, accidentally triggering the interception route.\n const includeNextUrl = hasInterceptionRouteInCurrentTree(state.tree)\n\n // TODO-APP: verify that `href` is not an external url.\n // Fetch data from the root of the tree.\n const navigatedAt = Date.now()\n cache.lazyData = fetchServerResponse(new URL(href, origin), {\n flightRouterState: [state.tree[0], state.tree[1], state.tree[2], 'refetch'],\n nextUrl: includeNextUrl ? state.nextUrl : null,\n isHmrRefresh: true,\n })\n\n return cache.lazyData.then(\n ({ flightData, canonicalUrl: canonicalUrlOverride }) => {\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === 'string') {\n return handleExternalUrl(\n state,\n mutable,\n flightData,\n state.pushRef.pendingPush\n )\n }\n\n // Remove cache.lazyData as it has been resolved at this point.\n cache.lazyData = null\n\n let currentTree = state.tree\n let currentCache = state.cache\n\n for (const normalizedFlightData of flightData) {\n const { tree: treePatch, isRootRender } = normalizedFlightData\n if (!isRootRender) {\n // TODO-APP: handle this case better\n console.log('REFRESH FAILED')\n return state\n }\n\n const newTree = applyRouterStatePatchToTree(\n // TODO-APP: remove ''\n [''],\n currentTree,\n treePatch,\n state.canonicalUrl\n )\n\n if (newTree === null) {\n return handleSegmentMismatch(state, action, treePatch)\n }\n\n if (isNavigatingToNewRootLayout(currentTree, newTree)) {\n return handleExternalUrl(\n state,\n mutable,\n href,\n state.pushRef.pendingPush\n )\n }\n\n const canonicalUrlOverrideHref = canonicalUrlOverride\n ? createHrefFromUrl(canonicalUrlOverride)\n : undefined\n\n if (canonicalUrlOverride) {\n mutable.canonicalUrl = canonicalUrlOverrideHref\n }\n const applied = applyFlightData(\n navigatedAt,\n currentCache,\n cache,\n normalizedFlightData\n )\n\n if (applied) {\n mutable.cache = cache\n currentCache = cache\n }\n\n mutable.patchedTree = newTree\n mutable.canonicalUrl = href\n\n currentTree = newTree\n }\n return handleMutable(state, mutable)\n },\n () => state\n )\n}\n\nfunction hmrRefreshReducerNoop(\n state: ReadonlyReducerState,\n _action: HmrRefreshAction\n): ReducerState {\n return state\n}\n\nexport const hmrRefreshReducer =\n process.env.NODE_ENV === 'production'\n ? hmrRefreshReducerNoop\n : hmrRefreshReducerImpl\n","import { addBasePath } from './add-base-path'\n\n/**\n * Function to correctly assign location to URL\n *\n * The method will add basePath, and will also correctly add location (including if it is a relative path)\n * @param location Location that should be added to the url\n * @param url Base URL to which the location should be assigned\n */\nexport function assignLocation(location: string, url: URL): URL {\n if (location.startsWith('.')) {\n const urlBase = url.origin + url.pathname\n return new URL(\n // In order for a relative path to be added to the current url correctly, the current url must end with a slash\n // new URL('./relative', 'https://example.com/subdir').href -> 'https://example.com/relative'\n // new URL('./relative', 'https://example.com/subdir/').href -> 'https://example.com/subdir/relative'\n (urlBase.endsWith('/') ? urlBase : urlBase + '/') + location\n )\n }\n\n return new URL(addBasePath(location), url.href)\n}\n","export interface ServerReferenceInfo {\n type: 'server-action' | 'use-cache'\n usedArgs: [boolean, boolean, boolean, boolean, boolean, boolean]\n hasRestArgs: boolean\n}\n\n/**\n * Extracts info about the server reference for the given server reference ID by\n * parsing the first byte of the hex-encoded ID.\n *\n * ```\n * Bit positions: [7] [6] [5] [4] [3] [2] [1] [0]\n * Bits: typeBit argMask restArgs\n * ```\n *\n * If the `typeBit` is `1` the server reference represents a `\"use cache\"`\n * function, otherwise a server action.\n *\n * The `argMask` encodes whether the function uses the argument at the\n * respective position.\n *\n * The `restArgs` bit indicates whether the function uses a rest parameter. It's\n * also set to 1 if the function has more than 6 args.\n *\n * @param id hex-encoded server reference ID\n */\nexport function extractInfoFromServerReferenceId(\n id: string\n): ServerReferenceInfo {\n const infoByte = parseInt(id.slice(0, 2), 16)\n const typeBit = (infoByte >> 7) & 0x1\n const argMask = (infoByte >> 1) & 0x3f\n const restArgs = infoByte & 0x1\n const usedArgs = Array(6)\n\n for (let index = 0; index < 6; index++) {\n const bitPosition = 5 - index\n const bit = (argMask >> bitPosition) & 0x1\n usedArgs[index] = bit === 1\n }\n\n return {\n type: typeBit === 1 ? 'use-cache' : 'server-action',\n usedArgs: usedArgs as [\n boolean,\n boolean,\n boolean,\n boolean,\n boolean,\n boolean,\n ],\n hasRestArgs: restArgs === 1,\n }\n}\n\n/**\n * Creates a sparse array containing only the used arguments based on the\n * provided action info.\n */\nexport function omitUnusedArgs(\n args: unknown[],\n info: ServerReferenceInfo\n): unknown[] {\n const filteredArgs = new Array(args.length)\n\n for (let index = 0; index < args.length; index++) {\n if (\n (index < 6 && info.usedArgs[index]) ||\n // This assumes that the server reference info byte has the restArgs bit\n // set to 1 if there are more than 6 args.\n (index >= 6 && info.hasRestArgs)\n ) {\n filteredArgs[index] = args[index]\n }\n }\n\n return filteredArgs\n}\n","import type {\n ActionFlightResponse,\n ActionResult,\n} from '../../../../server/app-render/types'\nimport { callServer } from '../../../app-call-server'\nimport { findSourceMapURL } from '../../../app-find-source-map-url'\nimport {\n ACTION_HEADER,\n NEXT_IS_PRERENDER_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_URL,\n RSC_CONTENT_TYPE_HEADER,\n} from '../../app-router-headers'\n\n// // eslint-disable-next-line import/no-extraneous-dependencies\n// import { createFromFetch } from 'react-server-dom-webpack/client'\n// // eslint-disable-next-line import/no-extraneous-dependencies\n// import { encodeReply } from 'react-server-dom-webpack/client'\nconst { createFromFetch, createTemporaryReferenceSet, encodeReply } = (\n !!process.env.NEXT_RUNTIME\n ? // eslint-disable-next-line import/no-extraneous-dependencies\n require('react-server-dom-webpack/client.edge')\n : // eslint-disable-next-line import/no-extraneous-dependencies\n require('react-server-dom-webpack/client')\n) as typeof import('react-server-dom-webpack/client')\n\nimport {\n PrefetchKind,\n type ReadonlyReducerState,\n type ReducerState,\n type ServerActionAction,\n type ServerActionMutable,\n} from '../router-reducer-types'\nimport { assignLocation } from '../../../assign-location'\nimport { createHrefFromUrl } from '../create-href-from-url'\nimport { handleExternalUrl } from './navigate-reducer'\nimport { applyRouterStatePatchToTree } from '../apply-router-state-patch-to-tree'\nimport { isNavigatingToNewRootLayout } from '../is-navigating-to-new-root-layout'\nimport type { CacheNode } from '../../../../shared/lib/app-router-context.shared-runtime'\nimport { handleMutable } from '../handle-mutable'\nimport { fillLazyItemsTillLeafWithHead } from '../fill-lazy-items-till-leaf-with-head'\nimport { createEmptyCacheNode } from '../../app-router'\nimport { hasInterceptionRouteInCurrentTree } from './has-interception-route-in-current-tree'\nimport { handleSegmentMismatch } from '../handle-segment-mismatch'\nimport { refreshInactiveParallelSegments } from '../refetch-inactive-parallel-segments'\nimport {\n normalizeFlightData,\n type NormalizedFlightData,\n} from '../../../flight-data-helpers'\nimport { getRedirectError } from '../../redirect'\nimport { RedirectType } from '../../redirect-error'\nimport { createSeededPrefetchCacheEntry } from '../prefetch-cache-utils'\nimport { removeBasePath } from '../../../remove-base-path'\nimport { hasBasePath } from '../../../has-base-path'\nimport {\n extractInfoFromServerReferenceId,\n omitUnusedArgs,\n} from '../../../../shared/lib/server-reference-info'\nimport { revalidateEntireCache } from '../../segment-cache'\n\ntype FetchServerActionResult = {\n redirectLocation: URL | undefined\n redirectType: RedirectType | undefined\n actionResult?: ActionResult\n actionFlightData?: NormalizedFlightData[] | string\n isPrerender: boolean\n revalidatedParts: {\n tag: boolean\n cookie: boolean\n paths: string[]\n }\n}\n\nasync function fetchServerAction(\n state: ReadonlyReducerState,\n nextUrl: ReadonlyReducerState['nextUrl'],\n { actionId, actionArgs }: ServerActionAction\n): Promise<FetchServerActionResult> {\n const temporaryReferences = createTemporaryReferenceSet()\n const info = extractInfoFromServerReferenceId(actionId)\n\n // TODO: Currently, we're only omitting unused args for the experimental \"use\n // cache\" functions. Once the server reference info byte feature is stable, we\n // should apply this to server actions as well.\n const usedArgs =\n info.type === 'use-cache' ? omitUnusedArgs(actionArgs, info) : actionArgs\n\n const body = await encodeReply(usedArgs, { temporaryReferences })\n\n const res = await fetch('', {\n method: 'POST',\n headers: {\n Accept: RSC_CONTENT_TYPE_HEADER,\n [ACTION_HEADER]: actionId,\n [NEXT_ROUTER_STATE_TREE_HEADER]: encodeURIComponent(\n JSON.stringify(state.tree)\n ),\n ...(process.env.NEXT_DEPLOYMENT_ID\n ? {\n 'x-deployment-id': process.env.NEXT_DEPLOYMENT_ID,\n }\n : {}),\n ...(nextUrl\n ? {\n [NEXT_URL]: nextUrl,\n }\n : {}),\n },\n body,\n })\n\n const redirectHeader = res.headers.get('x-action-redirect')\n const [location, _redirectType] = redirectHeader?.split(';') || []\n let redirectType: RedirectType | undefined\n switch (_redirectType) {\n case 'push':\n redirectType = RedirectType.push\n break\n case 'replace':\n redirectType = RedirectType.replace\n break\n default:\n redirectType = undefined\n }\n\n const isPrerender = !!res.headers.get(NEXT_IS_PRERENDER_HEADER)\n let revalidatedParts: FetchServerActionResult['revalidatedParts']\n try {\n const revalidatedHeader = JSON.parse(\n res.headers.get('x-action-revalidated') || '[[],0,0]'\n )\n revalidatedParts = {\n paths: revalidatedHeader[0] || [],\n tag: !!revalidatedHeader[1],\n cookie: revalidatedHeader[2],\n }\n } catch (e) {\n revalidatedParts = {\n paths: [],\n tag: false,\n cookie: false,\n }\n }\n\n const redirectLocation = location\n ? assignLocation(\n location,\n new URL(state.canonicalUrl, window.location.href)\n )\n : undefined\n\n const contentType = res.headers.get('content-type')\n\n if (contentType?.startsWith(RSC_CONTENT_TYPE_HEADER)) {\n const response: ActionFlightResponse = await createFromFetch(\n Promise.resolve(res),\n { callServer, findSourceMapURL, temporaryReferences }\n )\n\n if (location) {\n // if it was a redirection, then result is just a regular RSC payload\n return {\n actionFlightData: normalizeFlightData(response.f),\n redirectLocation,\n redirectType,\n revalidatedParts,\n isPrerender,\n }\n }\n\n return {\n actionResult: response.a,\n actionFlightData: normalizeFlightData(response.f),\n redirectLocation,\n redirectType,\n revalidatedParts,\n isPrerender,\n }\n }\n\n // Handle invalid server action responses\n if (res.status >= 400) {\n // The server can respond with a text/plain error message, but we'll fallback to something generic\n // if there isn't one.\n const error =\n contentType === 'text/plain'\n ? await res.text()\n : 'An unexpected response was received from the server.'\n\n throw new Error(error)\n }\n\n return {\n redirectLocation,\n redirectType,\n revalidatedParts,\n isPrerender,\n }\n}\n\n/*\n * This reducer is responsible for calling the server action and processing any side-effects from the server action.\n * It does not mutate the state by itself but rather delegates to other reducers to do the actual mutation.\n */\nexport function serverActionReducer(\n state: ReadonlyReducerState,\n action: ServerActionAction\n): ReducerState {\n const { resolve, reject } = action\n const mutable: ServerActionMutable = {}\n\n let currentTree = state.tree\n\n mutable.preserveCustomHistoryState = false\n\n // only pass along the `nextUrl` param (used for interception routes) if the current route was intercepted.\n // If the route has been intercepted, the action should be as well.\n // Otherwise the server action might be intercepted with the wrong action id\n // (ie, one that corresponds with the intercepted route)\n const nextUrl =\n state.nextUrl && hasInterceptionRouteInCurrentTree(state.tree)\n ? state.nextUrl\n : null\n\n const navigatedAt = Date.now()\n\n return fetchServerAction(state, nextUrl, action).then(\n async ({\n actionResult,\n actionFlightData: flightData,\n redirectLocation,\n redirectType,\n isPrerender,\n revalidatedParts,\n }) => {\n let redirectHref: string | undefined\n\n // honor the redirect type instead of defaulting to push in case of server actions.\n if (redirectLocation) {\n if (redirectType === RedirectType.replace) {\n state.pushRef.pendingPush = false\n mutable.pendingPush = false\n } else {\n state.pushRef.pendingPush = true\n mutable.pendingPush = true\n }\n\n redirectHref = createHrefFromUrl(redirectLocation, false)\n mutable.canonicalUrl = redirectHref\n }\n\n if (!flightData) {\n resolve(actionResult)\n\n // If there is a redirect but no flight data we need to do a mpaNavigation.\n if (redirectLocation) {\n return handleExternalUrl(\n state,\n mutable,\n redirectLocation.href,\n state.pushRef.pendingPush\n )\n }\n return state\n }\n\n if (typeof flightData === 'string') {\n // Handle case when navigating to page in `pages` from `app`\n resolve(actionResult)\n\n return handleExternalUrl(\n state,\n mutable,\n flightData,\n state.pushRef.pendingPush\n )\n }\n\n const actionRevalidated =\n revalidatedParts.paths.length > 0 ||\n revalidatedParts.tag ||\n revalidatedParts.cookie\n\n for (const normalizedFlightData of flightData) {\n const {\n tree: treePatch,\n seedData: cacheNodeSeedData,\n head,\n isRootRender,\n } = normalizedFlightData\n\n if (!isRootRender) {\n // TODO-APP: handle this case better\n console.log('SERVER ACTION APPLY FAILED')\n resolve(actionResult)\n\n return state\n }\n\n // Given the path can only have two items the items are only the router state and rsc for the root.\n const newTree = applyRouterStatePatchToTree(\n // TODO-APP: remove ''\n [''],\n currentTree,\n treePatch,\n redirectHref ? redirectHref : state.canonicalUrl\n )\n\n if (newTree === null) {\n resolve(actionResult)\n\n return handleSegmentMismatch(state, action, treePatch)\n }\n\n if (isNavigatingToNewRootLayout(currentTree, newTree)) {\n resolve(actionResult)\n\n return handleExternalUrl(\n state,\n mutable,\n redirectHref || state.canonicalUrl,\n state.pushRef.pendingPush\n )\n }\n\n // The server sent back RSC data for the server action, so we need to apply it to the cache.\n if (cacheNodeSeedData !== null) {\n const rsc = cacheNodeSeedData[1]\n const cache: CacheNode = createEmptyCacheNode()\n cache.rsc = rsc\n cache.prefetchRsc = null\n cache.loading = cacheNodeSeedData[3]\n fillLazyItemsTillLeafWithHead(\n navigatedAt,\n cache,\n // Existing cache is not passed in as server actions have to invalidate the entire cache.\n undefined,\n treePatch,\n cacheNodeSeedData,\n head,\n undefined\n )\n\n mutable.cache = cache\n if (process.env.__NEXT_CLIENT_SEGMENT_CACHE) {\n revalidateEntireCache(state.nextUrl, newTree)\n } else {\n mutable.prefetchCache = new Map()\n }\n if (actionRevalidated) {\n await refreshInactiveParallelSegments({\n navigatedAt,\n state,\n updatedTree: newTree,\n updatedCache: cache,\n includeNextUrl: Boolean(nextUrl),\n canonicalUrl: mutable.canonicalUrl || state.canonicalUrl,\n })\n }\n }\n\n mutable.patchedTree = newTree\n currentTree = newTree\n }\n\n if (redirectLocation && redirectHref) {\n if (!process.env.__NEXT_CLIENT_SEGMENT_CACHE && !actionRevalidated) {\n // Because the RedirectBoundary will trigger a navigation, we need to seed the prefetch cache\n // with the FlightData that we got from the server action for the target page, so that it's\n // available when the page is navigated to and doesn't need to be re-fetched.\n // We only do this if the server action didn't revalidate any data, as in that case the\n // client cache will be cleared and the data will be re-fetched anyway.\n // NOTE: We don't do this in the Segment Cache implementation.\n // Dynamic data should never be placed into the cache, unless it's\n // \"converted\" to static data using <Link prefetch={true}>. What we\n // do instead is re-prefetch links and forms whenever the cache is\n // invalidated.\n createSeededPrefetchCacheEntry({\n url: redirectLocation,\n data: {\n flightData,\n canonicalUrl: undefined,\n couldBeIntercepted: false,\n prerendered: false,\n postponed: false,\n // TODO: We should be able to set this if the server action\n // returned a fully static response.\n staleTime: -1,\n },\n tree: state.tree,\n prefetchCache: state.prefetchCache,\n nextUrl: state.nextUrl,\n kind: isPrerender ? PrefetchKind.FULL : PrefetchKind.AUTO,\n })\n mutable.prefetchCache = state.prefetchCache\n }\n\n // If the action triggered a redirect, the action promise will be rejected with\n // a redirect so that it's handled by RedirectBoundary as we won't have a valid\n // action result to resolve the promise with. This will effectively reset the state of\n // the component that called the action as the error boundary will remount the tree.\n // The status code doesn't matter here as the action handler will have already sent\n // a response with the correct status code.\n reject(\n getRedirectError(\n hasBasePath(redirectHref)\n ? removeBasePath(redirectHref)\n : redirectHref,\n redirectType || RedirectType.push\n )\n )\n } else {\n resolve(actionResult)\n }\n\n return handleMutable(state, mutable)\n },\n (e: any) => {\n // When the server action is rejected we don't update the state and instead call the reject handler of the promise.\n reject(e)\n\n return state\n }\n )\n}\n","import {\n ACTION_NAVIGATE,\n ACTION_SERVER_PATCH,\n ACTION_RESTORE,\n ACTION_REFRESH,\n ACTION_PREFETCH,\n ACTION_HMR_REFRESH,\n ACTION_SERVER_ACTION,\n} from './router-reducer-types'\nimport type {\n ReducerActions,\n ReducerState,\n ReadonlyReducerState,\n} from './router-reducer-types'\nimport { navigateReducer } from './reducers/navigate-reducer'\nimport { serverPatchReducer } from './reducers/server-patch-reducer'\nimport { restoreReducer } from './reducers/restore-reducer'\nimport { refreshReducer } from './reducers/refresh-reducer'\nimport { prefetchReducer } from './reducers/prefetch-reducer'\nimport { hmrRefreshReducer } from './reducers/hmr-refresh-reducer'\nimport { serverActionReducer } from './reducers/server-action-reducer'\n\n/**\n * Reducer that handles the app-router state updates.\n */\nfunction clientReducer(\n state: ReadonlyReducerState,\n action: ReducerActions\n): ReducerState {\n switch (action.type) {\n case ACTION_NAVIGATE: {\n return navigateReducer(state, action)\n }\n case ACTION_SERVER_PATCH: {\n return serverPatchReducer(state, action)\n }\n case ACTION_RESTORE: {\n return restoreReducer(state, action)\n }\n case ACTION_REFRESH: {\n return refreshReducer(state, action)\n }\n case ACTION_HMR_REFRESH: {\n return hmrRefreshReducer(state, action)\n }\n case ACTION_PREFETCH: {\n return prefetchReducer(state, action)\n }\n case ACTION_SERVER_ACTION: {\n return serverActionReducer(state, action)\n }\n // This case should never be hit as dispatch is strongly typed.\n default:\n throw new Error('Unknown action')\n }\n}\n\nfunction serverReducer(\n state: ReadonlyReducerState,\n _action: ReducerActions\n): ReducerState {\n return state\n}\n\n// we don't run the client reducer on the server, so we use a noop function for better tree shaking\nexport const reducer =\n typeof window === 'undefined' ? serverReducer : clientReducer\n","import {\n type AppRouterState,\n type ReducerActions,\n type ReducerState,\n ACTION_REFRESH,\n ACTION_SERVER_ACTION,\n ACTION_NAVIGATE,\n ACTION_RESTORE,\n type NavigateAction,\n ACTION_HMR_REFRESH,\n PrefetchKind,\n ACTION_PREFETCH,\n} from './router-reducer/router-reducer-types'\nimport { reducer } from './router-reducer/router-reducer'\nimport { startTransition } from 'react'\nimport { isThenable } from '../../shared/lib/is-thenable'\nimport { prefetch as prefetchWithSegmentCache } from './segment-cache'\nimport { dispatchAppRouterAction } from './use-action-queue'\nimport { addBasePath } from '../add-base-path'\nimport { createPrefetchURL, isExternalURL } from './app-router'\nimport { prefetchReducer } from './router-reducer/reducers/prefetch-reducer'\nimport type {\n AppRouterInstance,\n NavigateOptions,\n PrefetchOptions,\n} from '../../shared/lib/app-router-context.shared-runtime'\nimport { setLinkForCurrentNavigation, type LinkInstance } from './links'\nimport type { FlightRouterState } from '../../server/app-render/types'\nimport type { ClientInstrumentationHooks } from '../app-index'\n\nexport type DispatchStatePromise = React.Dispatch<ReducerState>\n\nexport type AppRouterActionQueue = {\n state: AppRouterState\n dispatch: (payload: ReducerActions, setState: DispatchStatePromise) => void\n action: (state: AppRouterState, action: ReducerActions) => ReducerState\n\n onRouterTransitionStart:\n | ((url: string, type: 'push' | 'replace' | 'traverse') => void)\n | null\n\n pending: ActionQueueNode | null\n needsRefresh?: boolean\n last: ActionQueueNode | null\n}\n\nexport type ActionQueueNode = {\n payload: ReducerActions\n next: ActionQueueNode | null\n resolve: (value: ReducerState) => void\n reject: (err: Error) => void\n discarded?: boolean\n}\n\nfunction runRemainingActions(\n actionQueue: AppRouterActionQueue,\n setState: DispatchStatePromise\n) {\n if (actionQueue.pending !== null) {\n actionQueue.pending = actionQueue.pending.next\n if (actionQueue.pending !== null) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n runAction({\n actionQueue,\n action: actionQueue.pending,\n setState,\n })\n } else {\n // No more actions are pending, check if a refresh is needed\n if (actionQueue.needsRefresh) {\n actionQueue.needsRefresh = false\n actionQueue.dispatch(\n {\n type: ACTION_REFRESH,\n origin: window.location.origin,\n },\n setState\n )\n }\n }\n }\n}\n\nasync function runAction({\n actionQueue,\n action,\n setState,\n}: {\n actionQueue: AppRouterActionQueue\n action: ActionQueueNode\n setState: DispatchStatePromise\n}) {\n const prevState = actionQueue.state\n\n actionQueue.pending = action\n\n const payload = action.payload\n const actionResult = actionQueue.action(prevState, payload)\n\n function handleResult(nextState: AppRouterState) {\n // if we discarded this action, the state should also be discarded\n if (action.discarded) {\n return\n }\n\n actionQueue.state = nextState\n\n runRemainingActions(actionQueue, setState)\n action.resolve(nextState)\n }\n\n // if the action is a promise, set up a callback to resolve it\n if (isThenable(actionResult)) {\n actionResult.then(handleResult, (err) => {\n runRemainingActions(actionQueue, setState)\n action.reject(err)\n })\n } else {\n handleResult(actionResult)\n }\n}\n\nfunction dispatchAction(\n actionQueue: AppRouterActionQueue,\n payload: ReducerActions,\n setState: DispatchStatePromise\n) {\n let resolvers: {\n resolve: (value: ReducerState) => void\n reject: (reason: any) => void\n } = { resolve: setState, reject: () => {} }\n\n // most of the action types are async with the exception of restore\n // it's important that restore is handled quickly since it's fired on the popstate event\n // and we don't want to add any delay on a back/forward nav\n // this only creates a promise for the async actions\n if (payload.type !== ACTION_RESTORE) {\n // Create the promise and assign the resolvers to the object.\n const deferredPromise = new Promise<AppRouterState>((resolve, reject) => {\n resolvers = { resolve, reject }\n })\n\n startTransition(() => {\n // we immediately notify React of the pending promise -- the resolver is attached to the action node\n // and will be called when the associated action promise resolves\n setState(deferredPromise)\n })\n }\n\n const newAction: ActionQueueNode = {\n payload,\n next: null,\n resolve: resolvers.resolve,\n reject: resolvers.reject,\n }\n\n // Check if the queue is empty\n if (actionQueue.pending === null) {\n // The queue is empty, so add the action and start it immediately\n // Mark this action as the last in the queue\n actionQueue.last = newAction\n\n runAction({\n actionQueue,\n action: newAction,\n setState,\n })\n } else if (\n payload.type === ACTION_NAVIGATE ||\n payload.type === ACTION_RESTORE\n ) {\n // Navigations (including back/forward) take priority over any pending actions.\n // Mark the pending action as discarded (so the state is never applied) and start the navigation action immediately.\n actionQueue.pending.discarded = true\n\n // The rest of the current queue should still execute after this navigation.\n // (Note that it can't contain any earlier navigations, because we always put those into `actionQueue.pending` by calling `runAction`)\n newAction.next = actionQueue.pending.next\n\n // if the pending action was a server action, mark the queue as needing a refresh once events are processed\n if (actionQueue.pending.payload.type === ACTION_SERVER_ACTION) {\n actionQueue.needsRefresh = true\n }\n\n runAction({\n actionQueue,\n action: newAction,\n setState,\n })\n } else {\n // The queue is not empty, so add the action to the end of the queue\n // It will be started by runRemainingActions after the previous action finishes\n if (actionQueue.last !== null) {\n actionQueue.last.next = newAction\n }\n actionQueue.last = newAction\n }\n}\n\nlet globalActionQueue: AppRouterActionQueue | null = null\n\nexport function createMutableActionQueue(\n initialState: AppRouterState,\n instrumentationHooks: ClientInstrumentationHooks | null\n): AppRouterActionQueue {\n const actionQueue: AppRouterActionQueue = {\n state: initialState,\n dispatch: (payload: ReducerActions, setState: DispatchStatePromise) =>\n dispatchAction(actionQueue, payload, setState),\n action: async (state: AppRouterState, action: ReducerActions) => {\n const result = reducer(state, action)\n return result\n },\n pending: null,\n last: null,\n onRouterTransitionStart:\n instrumentationHooks !== null &&\n typeof instrumentationHooks.onRouterTransitionStart === 'function'\n ? // This profiling hook will be called at the start of every navigation.\n instrumentationHooks.onRouterTransitionStart\n : null,\n }\n\n if (typeof window !== 'undefined') {\n // The action queue is lazily created on hydration, but after that point\n // it doesn't change. So we can store it in a global rather than pass\n // it around everywhere via props/context.\n if (globalActionQueue !== null) {\n throw new Error(\n 'Internal Next.js Error: createMutableActionQueue was called more ' +\n 'than once'\n )\n }\n globalActionQueue = actionQueue\n }\n\n return actionQueue\n}\n\nexport function getCurrentAppRouterState(): AppRouterState | null {\n return globalActionQueue !== null ? globalActionQueue.state : null\n}\n\nfunction getAppRouterActionQueue(): AppRouterActionQueue {\n if (globalActionQueue === null) {\n throw new Error(\n 'Internal Next.js error: Router action dispatched before initialization.'\n )\n }\n return globalActionQueue\n}\n\nfunction getProfilingHookForOnNavigationStart() {\n if (globalActionQueue !== null) {\n return globalActionQueue.onRouterTransitionStart\n }\n return null\n}\n\nexport function dispatchNavigateAction(\n href: string,\n navigateType: NavigateAction['navigateType'],\n shouldScroll: boolean,\n linkInstanceRef: LinkInstance | null\n): void {\n // TODO: This stuff could just go into the reducer. Leaving as-is for now\n // since we're about to rewrite all the router reducer stuff anyway.\n const url = new URL(addBasePath(href), location.href)\n if (process.env.__NEXT_APP_NAV_FAIL_HANDLING) {\n window.next.__pendingUrl = url\n }\n\n setLinkForCurrentNavigation(linkInstanceRef)\n\n const onRouterTransitionStart = getProfilingHookForOnNavigationStart()\n if (onRouterTransitionStart !== null) {\n onRouterTransitionStart(href, navigateType)\n }\n\n dispatchAppRouterAction({\n type: ACTION_NAVIGATE,\n url,\n isExternalUrl: isExternalURL(url),\n locationSearch: location.search,\n shouldScroll,\n navigateType,\n allowAliasing: true,\n })\n}\n\nexport function dispatchTraverseAction(\n href: string,\n tree: FlightRouterState | undefined\n) {\n const onRouterTransitionStart = getProfilingHookForOnNavigationStart()\n if (onRouterTransitionStart !== null) {\n onRouterTransitionStart(href, 'traverse')\n }\n dispatchAppRouterAction({\n type: ACTION_RESTORE,\n url: new URL(href),\n tree,\n })\n}\n\n/**\n * The app router that is exposed through `useRouter`. These are public API\n * methods. Internal Next.js code should call the lower level methods directly\n * (although there's lots of existing code that doesn't do that).\n */\nexport const publicAppRouterInstance: AppRouterInstance = {\n back: () => window.history.back(),\n forward: () => window.history.forward(),\n prefetch: process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? // Unlike the old implementation, the Segment Cache doesn't store its\n // data in the router reducer state; it writes into a global mutable\n // cache. So we don't need to dispatch an action.\n (href: string, options?: PrefetchOptions) => {\n const actionQueue = getAppRouterActionQueue()\n prefetchWithSegmentCache(\n href,\n actionQueue.state.nextUrl,\n actionQueue.state.tree,\n options?.kind === PrefetchKind.FULL\n )\n }\n : (href: string, options?: PrefetchOptions) => {\n // Use the old prefetch implementation.\n const actionQueue = getAppRouterActionQueue()\n const url = createPrefetchURL(href)\n if (url !== null) {\n // The prefetch reducer doesn't actually update any state or\n // trigger a rerender. It just writes to a mutable cache. So we\n // shouldn't bother calling setState/dispatch; we can just re-run\n // the reducer directly using the current state.\n // TODO: Refactor this away from a \"reducer\" so it's\n // less confusing.\n prefetchReducer(actionQueue.state, {\n type: ACTION_PREFETCH,\n url,\n kind: options?.kind ?? PrefetchKind.FULL,\n })\n }\n },\n replace: (href: string, options?: NavigateOptions) => {\n startTransition(() => {\n dispatchNavigateAction(href, 'replace', options?.scroll ?? true, null)\n })\n },\n push: (href: string, options?: NavigateOptions) => {\n startTransition(() => {\n dispatchNavigateAction(href, 'push', options?.scroll ?? true, null)\n })\n },\n refresh: () => {\n startTransition(() => {\n dispatchAppRouterAction({\n type: ACTION_REFRESH,\n origin: window.location.origin,\n })\n })\n },\n hmrRefresh: () => {\n if (process.env.NODE_ENV !== 'development') {\n throw new Error(\n 'hmrRefresh can only be used in development mode. Please use refresh instead.'\n )\n } else {\n startTransition(() => {\n dispatchAppRouterAction({\n type: ACTION_HMR_REFRESH,\n origin: window.location.origin,\n })\n })\n }\n },\n}\n\n// Exists for debugging purposes. Don't use in application code.\nif (typeof window !== 'undefined' && window.next) {\n window.next.router = publicAppRouterInstance\n}\n","import type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport type { FlightDataPath } from '../../../server/app-render/types'\n\nimport { createHrefFromUrl } from './create-href-from-url'\nimport { fillLazyItemsTillLeafWithHead } from './fill-lazy-items-till-leaf-with-head'\nimport { extractPathFromFlightRouterState } from './compute-changed-path'\nimport { createSeededPrefetchCacheEntry } from './prefetch-cache-utils'\nimport { PrefetchKind, type PrefetchCacheEntry } from './router-reducer-types'\nimport { addRefreshMarkerToActiveParallelSegments } from './refetch-inactive-parallel-segments'\nimport { getFlightDataPartsFromPath } from '../../flight-data-helpers'\n\nexport interface InitialRouterStateParameters {\n navigatedAt: number\n initialCanonicalUrlParts: string[]\n initialParallelRoutes: CacheNode['parallelRoutes']\n initialFlightData: FlightDataPath[]\n location: Location | null\n couldBeIntercepted: boolean\n postponed: boolean\n prerendered: boolean\n}\n\nexport function createInitialRouterState({\n navigatedAt,\n initialFlightData,\n initialCanonicalUrlParts,\n initialParallelRoutes,\n location,\n couldBeIntercepted,\n postponed,\n prerendered,\n}: InitialRouterStateParameters) {\n // When initialized on the server, the canonical URL is provided as an array of parts.\n // This is to ensure that when the RSC payload streamed to the client, crawlers don't interpret it\n // as a URL that should be crawled.\n const initialCanonicalUrl = initialCanonicalUrlParts.join('/')\n const normalizedFlightData = getFlightDataPartsFromPath(initialFlightData[0])\n const {\n tree: initialTree,\n seedData: initialSeedData,\n head: initialHead,\n } = normalizedFlightData\n // For the SSR render, seed data should always be available (we only send back a `null` response\n // in the case of a `loading` segment, pre-PPR.)\n const rsc = initialSeedData?.[1]\n const loading = initialSeedData?.[3] ?? null\n\n const cache: CacheNode = {\n lazyData: null,\n rsc,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n // The cache gets seeded during the first render. `initialParallelRoutes` ensures the cache from the first render is there during the second render.\n parallelRoutes: initialParallelRoutes,\n loading,\n navigatedAt,\n }\n\n const canonicalUrl =\n // location.href is read as the initial value for canonicalUrl in the browser\n // This is safe to do as canonicalUrl can't be rendered, it's only used to control the history updates in the useEffect further down in this file.\n location\n ? // window.location does not have the same type as URL but has all the fields createHrefFromUrl needs.\n createHrefFromUrl(location)\n : initialCanonicalUrl\n\n addRefreshMarkerToActiveParallelSegments(initialTree, canonicalUrl)\n\n const prefetchCache = new Map<string, PrefetchCacheEntry>()\n\n // When the cache hasn't been seeded yet we fill the cache with the head.\n if (initialParallelRoutes === null || initialParallelRoutes.size === 0) {\n fillLazyItemsTillLeafWithHead(\n navigatedAt,\n cache,\n undefined,\n initialTree,\n initialSeedData,\n initialHead,\n undefined\n )\n }\n\n const initialState = {\n tree: initialTree,\n cache,\n prefetchCache,\n pushRef: {\n pendingPush: false,\n mpaNavigation: false,\n // First render needs to preserve the previous window.history.state\n // to avoid it being overwritten on navigation back/forward with MPA Navigation.\n preserveCustomHistoryState: true,\n },\n focusAndScrollRef: {\n apply: false,\n onlyHashChange: false,\n hashFragment: null,\n segmentPaths: [],\n },\n canonicalUrl,\n nextUrl:\n // the || operator is intentional, the pathname can be an empty string\n (extractPathFromFlightRouterState(initialTree) || location?.pathname) ??\n null,\n }\n\n if (process.env.NODE_ENV !== 'development' && location) {\n // Seed the prefetch cache with this page's data.\n // This is to prevent needlessly re-prefetching a page that is already reusable,\n // and will avoid triggering a loading state/data fetch stall when navigating back to the page.\n // We don't currently do this in development because links aren't prefetched in development\n // so having a mismatch between prefetch/no prefetch provides inconsistent behavior based on which page\n // was loaded first.\n const url = new URL(\n `${location.pathname}${location.search}`,\n location.origin\n )\n\n createSeededPrefetchCacheEntry({\n url,\n data: {\n flightData: [normalizedFlightData],\n canonicalUrl: undefined,\n couldBeIntercepted: !!couldBeIntercepted,\n prerendered,\n postponed,\n // TODO: The initial RSC payload includes both static and dynamic data\n // in the same response, even if PPR is enabled. So if there's any\n // dynamic data at all, we can't set a stale time. In the future we may\n // add a way to split a single Flight stream into static and dynamic\n // parts. But in the meantime we should at least make this work for\n // fully static pages.\n staleTime: -1,\n },\n tree: initialState.tree,\n prefetchCache: initialState.prefetchCache,\n nextUrl: initialState.nextUrl,\n kind: prerendered ? PrefetchKind.FULL : PrefetchKind.AUTO,\n })\n }\n\n return initialState\n}\n","// imports polyfill from `@next/polyfill-module` after build.\nimport '../build/polyfills/polyfill-module'\n\nimport './components/globals/patch-console'\nimport './components/globals/handle-global-errors'\n\nimport ReactDOMClient from 'react-dom/client'\nimport React, { use } from 'react'\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { createFromReadableStream } from 'react-server-dom-webpack/client'\nimport { HeadManagerContext } from '../shared/lib/head-manager-context.shared-runtime'\nimport { onRecoverableError } from './react-client-callbacks/on-recoverable-error'\nimport {\n onCaughtError,\n onUncaughtError,\n} from './react-client-callbacks/error-boundary-callbacks'\nimport { callServer } from './app-call-server'\nimport { findSourceMapURL } from './app-find-source-map-url'\nimport {\n type AppRouterActionQueue,\n createMutableActionQueue,\n} from './components/app-router-instance'\nimport AppRouter from './components/app-router'\nimport type { InitialRSCPayload } from '../server/app-render/types'\nimport { createInitialRouterState } from './components/router-reducer/create-initial-router-state'\nimport { MissingSlotContext } from '../shared/lib/app-router-context.shared-runtime'\nimport { setAppBuildId } from './app-build-id'\n\n/// <reference types=\"react-dom/experimental\" />\n\nconst appElement: HTMLElement | Document = document\n\nconst encoder = new TextEncoder()\n\nlet initialServerDataBuffer: (string | Uint8Array)[] | undefined = undefined\nlet initialServerDataWriter: ReadableStreamDefaultController | undefined =\n undefined\nlet initialServerDataLoaded = false\nlet initialServerDataFlushed = false\n\nlet initialFormStateData: null | any = null\n\ntype FlightSegment =\n | [isBootStrap: 0]\n | [isNotBootstrap: 1, responsePartial: string]\n | [isFormState: 2, formState: any]\n | [isBinary: 3, responseBase64Partial: string]\n\ntype NextFlight = Omit<Array<FlightSegment>, 'push'> & {\n push: (seg: FlightSegment) => void\n}\n\ndeclare global {\n // If you're working in a browser environment\n interface Window {\n __next_f: NextFlight\n }\n}\n\nfunction nextServerDataCallback(seg: FlightSegment): void {\n if (seg[0] === 0) {\n initialServerDataBuffer = []\n } else if (seg[0] === 1) {\n if (!initialServerDataBuffer)\n throw new Error('Unexpected server data: missing bootstrap script.')\n\n if (initialServerDataWriter) {\n initialServerDataWriter.enqueue(encoder.encode(seg[1]))\n } else {\n initialServerDataBuffer.push(seg[1])\n }\n } else if (seg[0] === 2) {\n initialFormStateData = seg[1]\n } else if (seg[0] === 3) {\n if (!initialServerDataBuffer)\n throw new Error('Unexpected server data: missing bootstrap script.')\n\n // Decode the base64 string back to binary data.\n const binaryString = atob(seg[1])\n const decodedChunk = new Uint8Array(binaryString.length)\n for (var i = 0; i < binaryString.length; i++) {\n decodedChunk[i] = binaryString.charCodeAt(i)\n }\n\n if (initialServerDataWriter) {\n initialServerDataWriter.enqueue(decodedChunk)\n } else {\n initialServerDataBuffer.push(decodedChunk)\n }\n }\n}\n\nfunction isStreamErrorOrUnfinished(ctr: ReadableStreamDefaultController) {\n // If `desiredSize` is null, it means the stream is closed or errored. If it is lower than 0, the stream is still unfinished.\n return ctr.desiredSize === null || ctr.desiredSize < 0\n}\n\n// There might be race conditions between `nextServerDataRegisterWriter` and\n// `DOMContentLoaded`. The former will be called when React starts to hydrate\n// the root, the latter will be called when the DOM is fully loaded.\n// For streaming, the former is called first due to partial hydration.\n// For non-streaming, the latter can be called first.\n// Hence, we use two variables `initialServerDataLoaded` and\n// `initialServerDataFlushed` to make sure the writer will be closed and\n// `initialServerDataBuffer` will be cleared in the right time.\nfunction nextServerDataRegisterWriter(ctr: ReadableStreamDefaultController) {\n if (initialServerDataBuffer) {\n initialServerDataBuffer.forEach((val) => {\n ctr.enqueue(typeof val === 'string' ? encoder.encode(val) : val)\n })\n if (initialServerDataLoaded && !initialServerDataFlushed) {\n if (isStreamErrorOrUnfinished(ctr)) {\n ctr.error(\n new Error(\n 'The connection to the page was unexpectedly closed, possibly due to the stop button being clicked, loss of Wi-Fi, or an unstable internet connection.'\n )\n )\n } else {\n ctr.close()\n }\n initialServerDataFlushed = true\n initialServerDataBuffer = undefined\n }\n }\n\n initialServerDataWriter = ctr\n}\n\n// When `DOMContentLoaded`, we can close all pending writers to finish hydration.\nconst DOMContentLoaded = function () {\n if (initialServerDataWriter && !initialServerDataFlushed) {\n initialServerDataWriter.close()\n initialServerDataFlushed = true\n initialServerDataBuffer = undefined\n }\n initialServerDataLoaded = true\n}\n\n// It's possible that the DOM is already loaded.\nif (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', DOMContentLoaded, false)\n} else {\n // Delayed in marco task to ensure it's executed later than hydration\n setTimeout(DOMContentLoaded)\n}\n\nconst nextServerDataLoadingGlobal = (self.__next_f = self.__next_f || [])\nnextServerDataLoadingGlobal.forEach(nextServerDataCallback)\nnextServerDataLoadingGlobal.push = nextServerDataCallback\n\nconst readable = new ReadableStream({\n start(controller) {\n nextServerDataRegisterWriter(controller)\n },\n})\n\nconst initialServerResponse = createFromReadableStream<InitialRSCPayload>(\n readable,\n { callServer, findSourceMapURL }\n)\n\nfunction ServerRoot({\n pendingActionQueue,\n}: {\n pendingActionQueue: Promise<AppRouterActionQueue>\n}): React.ReactNode {\n const initialRSCPayload = use(initialServerResponse)\n const actionQueue = use<AppRouterActionQueue>(pendingActionQueue)\n\n const router = (\n <AppRouter\n actionQueue={actionQueue}\n globalErrorComponentAndStyles={initialRSCPayload.G}\n assetPrefix={initialRSCPayload.p}\n />\n )\n\n if (process.env.NODE_ENV === 'development' && initialRSCPayload.m) {\n // We provide missing slot information in a context provider only during development\n // as we log some additional information about the missing slots in the console.\n return (\n <MissingSlotContext value={initialRSCPayload.m}>\n {router}\n </MissingSlotContext>\n )\n }\n\n return router\n}\n\nconst StrictModeIfEnabled = process.env.__NEXT_STRICT_MODE_APP\n ? React.StrictMode\n : React.Fragment\n\nfunction Root({ children }: React.PropsWithChildren<{}>) {\n if (process.env.__NEXT_TEST_MODE) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n window.__NEXT_HYDRATED = true\n window.__NEXT_HYDRATED_AT = performance.now()\n window.__NEXT_HYDRATED_CB?.()\n }, [])\n }\n\n return children\n}\n\nconst reactRootOptions: ReactDOMClient.RootOptions = {\n onRecoverableError,\n onCaughtError,\n onUncaughtError,\n}\n\nexport type ClientInstrumentationHooks = {\n onRouterTransitionStart?: (\n url: string,\n navigationType: 'push' | 'replace' | 'traverse'\n ) => void\n}\n\nexport function hydrate(\n instrumentationHooks: ClientInstrumentationHooks | null\n) {\n // React overrides `.then` and doesn't return a new promise chain,\n // so we wrap the action queue in a promise to ensure that its value\n // is defined when the promise resolves.\n // https://github.com/facebook/react/blob/163365a07872337e04826c4f501565d43dbd2fd4/packages/react-client/src/ReactFlightClient.js#L189-L190\n const pendingActionQueue: Promise<AppRouterActionQueue> = new Promise(\n (resolve, reject) => {\n initialServerResponse.then(\n (initialRSCPayload) => {\n // setAppBuildId should be called only once, during JS initialization\n // and before any components have hydrated.\n setAppBuildId(initialRSCPayload.b)\n\n const initialTimestamp = Date.now()\n\n resolve(\n createMutableActionQueue(\n createInitialRouterState({\n navigatedAt: initialTimestamp,\n initialFlightData: initialRSCPayload.f,\n initialCanonicalUrlParts: initialRSCPayload.c,\n initialParallelRoutes: new Map(),\n location: window.location,\n couldBeIntercepted: initialRSCPayload.i,\n postponed: initialRSCPayload.s,\n prerendered: initialRSCPayload.S,\n }),\n instrumentationHooks\n )\n )\n },\n (err: Error) => reject(err)\n )\n }\n )\n\n const reactEl = (\n <StrictModeIfEnabled>\n <HeadManagerContext.Provider value={{ appDir: true }}>\n <Root>\n <ServerRoot pendingActionQueue={pendingActionQueue} />\n </Root>\n </HeadManagerContext.Provider>\n </StrictModeIfEnabled>\n )\n\n if (document.documentElement.id === '__next_error__') {\n let element = reactEl\n // Server rendering failed, fall back to client-side rendering\n if (process.env.NODE_ENV !== 'production') {\n const { createRootLevelDevOverlayElement } =\n require('./components/react-dev-overlay/app/client-entry') as typeof import('./components/react-dev-overlay/app/client-entry')\n\n // Note this won't cause hydration mismatch because we are doing CSR w/o hydration\n element = createRootLevelDevOverlayElement(element)\n }\n\n ReactDOMClient.createRoot(appElement, reactRootOptions).render(element)\n } else {\n React.startTransition(() => {\n ReactDOMClient.hydrateRoot(appElement, reactEl, {\n ...reactRootOptions,\n formState: initialFormStateData,\n })\n })\n }\n\n // TODO-APP: Remove this logic when Float has GC built-in in development.\n if (process.env.NODE_ENV !== 'production') {\n const { linkGc } =\n require('./app-link-gc') as typeof import('./app-link-gc')\n linkGc()\n }\n}\n","// TODO-APP: hydration warning\n\nimport { appBootstrap } from './app-bootstrap'\n\nwindow.next.version += '-turbo'\n;(self as any).__webpack_hash__ = ''\n\nconst instrumentationHooks = require('../lib/require-instrumentation-client')\n\nappBootstrap(() => {\n const { hydrate } = require('./app-index')\n hydrate(instrumentationHooks)\n\n if (process.env.NODE_ENV !== 'production') {\n const { initializeDevBuildIndicatorForAppRouter } =\n require('./dev/dev-build-indicator/initialize-for-app-router') as typeof import('./dev/dev-build-indicator/initialize-for-app-router')\n initializeDevBuildIndicatorForAppRouter()\n }\n})\n"],"names":["process","env","__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING","appBootstrap","version","__NEXT_VERSION","window","next","appDir","loadScriptsInSequence","scripts","hydrate","length","reduce","promise","src","props","then","Promise","resolve","reject","el","document","createElement","key","setAttribute","onload","onerror","innerHTML","children","setTimeout","head","appendChild","catch","err","console","error","self","__next_s","NODE_ENV","module","exports","require","getObjectClassLabel","isPlainObject","value","Object","prototype","toString","call","getPrototypeOf","hasOwnProperty","isError","getProperError","safeStringify","obj","seen","WeakSet","JSON","stringify","_key","has","add","Error","NEXTJS_HYDRATION_ERROR_LINK","REACT_HYDRATION_ERROR_LINK","getDefaultHydrationErrorMessage","getHydrationErrorStackInfo","isHydrationError","isReactHydrationErrorMessage","testReactHydrationWarning","hydrationErrorRegex","reactUnifiedMismatchWarning","reactHydrationStartMessages","test","message","msg","some","prefix","startsWith","hydrationWarningRegexes","slice","regex","rawMessage","replace","isReactHydrationWarning","stack","diff","diffLog","split","trim","firstLineBreak","indexOf","trailing","trimmedMessage","stacks","diffs","forEach","line","push","join","getHydrationWarningType","getReactHydrationDiffSegments","hydrationErrorState","storeHydrationErrorStateFromConsoleArgs","htmlTagsWarnings","Set","textAndTagsMismatchWarnings","normalizedMessage","isHtmlTagsWarning","isTextInTagsMismatchWarning","undefined","args","firstContent","secondContent","rest","isReact18","warning","lastArg","reactOutputComponentDiff","generateHydrationDiffReact18","serverContent","clientContent","componentStack","firstIndex","secondIndex","hydrationWarningType","components","map","index","component","location","exec","filter","Boolean","reverse","i","matchFirstContent","matchSecondContent","spaces","repeat","Math","max","attachHydrationErrorState","parsedHydrationErrorState","isHydrationWarning","isHydrationRuntimeError","reactHydrationDiffSegments","details","notes","formatConsoleArgs","parseConsoleArgs","formatObject","arg","depth","Array","isArray","result","keys","desc","getOwnPropertyDescriptor","get","set","jsonKey","String","idx","startQuote","char","code","parseInt","parseFloat","environmentName","maybeError","createConsoleError","getConsoleErrorType","isConsoleError","digestSym","Symbol","for","consoleTypeSym","enqueueConsecutiveDedupedError","queue","previousError","copyNextErrorCode","createDigestWithErrorCode","extractNextErrorCode","ERROR_CODE_DELIMITER","thrownValue","originalDigest","__NEXT_ERROR_CODE","source","target","errorCode","defineProperty","enumerable","configurable","digest","segments","find","segment","getReactStitchedError","REACT_ERROR_STACK_BOTTOM_FRAME","REACT_ERROR_STACK_BOTTOM_FRAME_REGEX","RegExp","isErrorInstance","originStack","originMessage","stackLines","indexOfSplit","findIndex","isOriginalReactError","newStack","newError","assign","appendOwnerStack","React","captureOwnerStack","ownerStack","endsWith","handleClientError","handleConsoleError","handleGlobalErrors","useErrorHandler","queueMicroTask","globalThis","queueMicrotask","cb","errorQueue","errorHandlers","rejectionQueue","rejectionHandlers","originError","consoleErrorArgs","handler","formattedErrorMessage","handleOnUnhandledError","handleOnUnhandledRejection","useEffect","splice","onUnhandledError","event","isNextRouterError","preventDefault","onUnhandledRejection","ev","reason","stackTraceLimit","addEventListener","originConsoleError","patchConsoleError","apply","HeadManagerContext","createContext","reportGlobalError","reportError","errorInfo","onRecoverableError","cause","stitchedError","isBailoutToCSRError","onCaughtError","onUncaughtError","errorBoundaryComponent","errorBoundary","constructor","isImplicitErrorBoundary","ErrorBoundaryHandler","errorComponent","DefaultErrorBoundary","componentThatErroredFrame","invalidateCacheBelowFlightSegmentPath","newCache","existingCache","flightSegmentPath","isLastEntry","parallelRouteKey","cacheKey","createRouterCacheKey","existingChildSegmentMap","parallelRoutes","childSegmentMap","Map","delete","existingChildCacheNode","childCacheNode","lazyData","rsc","prefetchRsc","prefetchHead","getNextFlightSegmentPath","fillLazyItemsTillLeafWithHead","navigatedAt","routerState","cacheNodeSeedData","prefetchEntry","isLastSegment","parallelRouteState","segmentForParallelRoute","parallelSeedData","existingParallelRoutesCacheNode","hasReusablePrefetch","kind","status","PrefetchCacheEntryStatus","reusable","parallelRouteCacheNode","existingCacheNode","newCacheNode","seedNode","loading","existingParallelRoutes","invalidateCacheByRouterState","fillCacheWithNewSubTreeData","fillCacheWithNewSubTreeDataButOnlyLoading","fillCacheHelper","flightData","fillLazyItems","segmentPath","seedData","tree","treePatch","incomingSegment","PAGE_SEGMENT_KEY","applyFlightData","cache","isRootRender","addRefreshMarkerToActiveParallelSegments","refreshInactiveParallelSegments","options","fetchedSegments","refreshInactiveParallelSegmentsImpl","rootTree","updatedTree","state","updatedCache","includeNextUrl","canonicalUrl","refetchPath","refetchMarker","fetchPromises","fetchPromise","fetchServerResponse","URL","origin","flightRouterState","nextUrl","flightDataPath","parallelFetchPromise","all","path","includes","applyRouterStatePatchToTree","applyPatch","initialTree","patchTree","initialSegment","initialParallelRoutes","patchSegment","patchParallelRoutes","DEFAULT_SEGMENT_KEY","matchSegment","newParallelRoutes","isInPatchTreeParallelRoutes","url","refetch","isRootLayout","currentSegment","lastSegment","parallelRoutePatch","shouldHardNavigate","isNavigatingToNewRootLayout","currentTree","nextTree","currentTreeSegment","nextTreeSegment","currentTreeChild","values","nextTreeChild","computeChangedPath","extractPathFromFlightRouterState","getSelectedParams","removeLeadingSlash","segmentToPathname","normalizeSegments","acc","isGroupSegment","INTERCEPTION_ROUTE_MARKERS","m","childrenPath","entries","childPath","computeChangedPathImpl","treeA","treeB","segmentA","parallelRoutesA","segmentB","parallelRoutesB","normalizedSegmentA","normalizedSegmentB","parallelRouterKey","changedPath","params","parallelRoute","isDynamicParameter","segmentValue","isCatchAll","handleMutable","isNotUndefined","mutable","shouldScroll","patchedTree","pushRef","pendingPush","mpaNavigation","preserveCustomHistoryState","focusAndScrollRef","scrollableSegments","onlyHashChange","hashFragment","decodeURIComponent","segmentPaths","prefetchCache","PromiseQueue","enqueue","promiseFn","taskResolve","taskReject","taskPromise","task","enqueueResult","bump","item","bumpedItem","unshift","maxConcurrency","forced","shift","DYNAMIC_STALETIME_MS","STATIC_STALETIME_MS","createSeededPrefetchCacheEntry","getOrCreatePrefetchCacheEntry","prunePrefetchCache","INTERCEPTION_CACHE_KEY_MARKER","createPrefetchCacheKeyImpl","includeSearchParams","pathnameFromUrl","pathname","search","createPrefetchCacheKey","PrefetchKind","FULL","getExistingCacheEntry","allowAliasing","TEMPORARY","maybeNextUrl","cacheKeyWithParams","cacheKeyWithoutParams","cacheKeyToUse","existingEntry","isAliased","aliased","entryWithoutParams","cacheEntry","existingCacheEntry","getPrefetchEntryCacheStatus","switchedToFullPrefetch","data","prefetchResponse","isFullPrefetch","createLazyPrefetchEntry","prefixExistingPrefetchCacheEntry","existingCacheKey","newCacheKey","prefetchCacheKey","couldBeIntercepted","treeAtTimeOfPrefetch","prefetchTime","Date","now","lastUsedTime","staleTime","fresh","prefetchQueue","prefetchKind","prerendered","href","prefetchCacheEntry","expired","Number","__NEXT_CLIENT_ROUTER_DYNAMIC_STALETIME","__NEXT_CLIENT_ROUTER_STATIC_STALETIME","stale","AUTO","__NEXT_CLIENT_SEGMENT_CACHE","identityReducerWhenSegmentCacheIsEnabled","prefetchReducer","prefetchReducerImpl","action","HTML_LIMITED_BOT_UA_RE","HTML_LIMITED_BOT_UA_RE_STRING","getBotType","isBot","HEADLESS_BROWSER_BOT_UA_RE","isDomBotUA","userAgent","isHtmlLimitedBotUA","parsePath","hashIndex","queryIndex","hasQuery","substring","query","hash","addPathPrefix","removeTrailingSlash","route","normalizePathTrailingSlash","__NEXT_MANUAL_TRAILING_SLASH","__NEXT_TRAILING_SLASH","__NEXT_ROUTER_BASEPATH","addBasePath","basePath","required","__NEXT_MANUAL_CLIENT_BASE_PATH","AppRouterAnnouncer","ANNOUNCER_TYPE","ANNOUNCER_ID","getAnnouncerNode","existingAnnouncer","getElementsByName","shadowRoot","childNodes","container","style","cssText","announcer","ariaLive","id","role","shadow","attachShadow","mode","body","portalNode","setPortalNode","useState","getElementsByTagName","isConnected","removeChild","routeAnnouncement","setRouteAnnouncement","previousTitle","useRef","currentTitle","title","pageHeader","querySelector","innerText","textContent","current","createPortal","findHeadInCache","findHeadInCacheImpl","keyPrefix","isLastItem","parallelRoutesKeys","childParallelRoutes","cacheNode","pathHasPrefix","hasBasePath","removeBasePath","NavigationResultTag","PrefetchPriority","cancelPrefetchTask","createCacheKey","getCurrentCacheVersion","navigate","prefetch","reschedulePrefetchTask","revalidateEntireCache","schedulePrefetchTask","notEnabled","IDLE_LINK_STATUS","PENDING_LINK_STATUS","mountFormInstance","mountLinkInstance","onLinkVisibilityChanged","onNavigationIntent","pingVisibleLinks","setLinkForCurrentNavigation","unmountLinkForCurrentNavigation","unmountPrefetchableInstance","linkForMostRecentNavigation","pending","link","startTransition","setOptimisticLinkStatus","prefetchable","WeakMap","prefetchableAndVisible","observer","IntersectionObserver","handleIntersect","rootMargin","observeVisibility","element","instance","existingInstance","observe","coercePrefetchableUrl","createPrefetchURL","reportErrorFn","router","prefetchEnabled","prefetchURL","isVisible","wasHoveredOrTouched","prefetchTask","cacheVersion","prefetchHref","unobserve","entry","intersectionRatio","rescheduleLinkPrefetch","unstable_upgradeToDynamicPrefetch","__NEXT_DYNAMIC_ON_HOVER","existingPrefetchTask","prefetchWithOldCacheImplementation","priority","Intent","Default","appRouterState","getCurrentAppRouterState","currentCacheVersion","scheduleSegmentPrefetchTask","doPrefetch","createEmptyCacheNode","AppRouter","isExternalURL","globalMutable","navigator","_","HistoryUpdater","useInsertionEffect","__NEXT_APP_NAV_FAIL_HANDLING","historyState","history","__NA","__PRIVATE_NEXTJS_INTERNALS_TREE","createHrefFromUrl","pushState","replaceState","copyNextJsInternalHistoryState","currentState","Head","headCacheNode","resolvedPrefetchRsc","useDeferredValue","Router","actionQueue","assetPrefix","globalError","useActionQueue","searchParams","useMemo","handlePageShow","persisted","pendingMpaPath","dispatchAppRouterAction","type","ACTION_RESTORE","removeEventListener","handleUnhandledRedirect","isRedirectError","getURLFromRedirectError","redirectType","getRedirectTypeFromError","RedirectType","publicAppRouterInstance","use","unresolvedThenable","originalPushState","bind","originalReplaceState","applyUrlFromHistoryPushReplace","_unused","_N","onPopState","reload","dispatchTraverseAction","matchingHead","pathParams","layoutRouterContext","parentTree","parentCacheNode","parentSegmentPath","globalLayoutRouterContext","headKey","content","RedirectBoundary","ErrorBoundary","errorStyles","RuntimeStyles","PathParamsContext","Provider","PathnameContext","SearchParamsContext","GlobalLayoutRouterContext","AppRouterContext","LayoutRouterContext","globalErrorComponentAndStyles","globalErrorComponent","globalErrorStyles","useNavFailureHandler","DefaultGlobalError","runtimeStyles","runtimeStyleChanged","_N_E_STYLE_LOAD","len","size","forceUpdate","renderedStylesSize","changed","c","dplId","NEXT_DEPLOYMENT_ID","rel","precedence","abortTask","listenForDynamicRequest","startPPRNavigation","updateCacheNodeOnPopstateRestoration","MPA_NAVIGATION_TASK","node","dynamicRequestTree","oldCacheNode","oldRouterState","newRouterState","prefetchData","isPrefetchHeadPartial","isSamePageNavigation","scrollableSegmentsResult","updateCacheNodeOnNavigation","didFindRootLayout","oldRouterStateChildren","newRouterStateChildren","prefetchDataChildren","oldParallelRoutes","prefetchParallelRoutes","patchedRouterStateChildren","taskChildren","needsDynamicRequest","dynamicRequestTreeChildren","newRouterStateChild","oldRouterStateChild","oldSegmentMapChild","prefetchDataChild","newSegmentChild","newSegmentPathChild","concat","newSegmentKeyChild","oldSegmentChild","oldCacheNodeChild","taskChild","spawnReusedTask","beginRenderingNewRouteTree","newCacheNodeChild","newSegmentMapChild","taskChildRoute","dynamicRequestTreeChild","patchRouterStateWithNewChildren","possiblyPartialPrefetchHead","createCacheNodeOnNavigation","routerStateChildren","isLeafSegment","cacheNodeNavigatedAt","isPrefetchRscPartial","spawnPendingTask","existingCacheNodeChildren","cacheNodeChildren","routerStateChild","existingSegmentMapChild","segmentChild","segmentPathChild","segmentKeyChild","existingCacheNodeChild","baseRouterState","newChildren","clone","newTask","createPendingCacheNode","reusedRouterState","responsePromise","normalizedFlightData","serverRouterState","dynamicData","dynamicHead","writeDynamicDataIntoPendingTask","rootTask","taskSegment","finishTaskUsingDynamicDataPayload","taskNode","finishPendingCacheNode","serverChildren","dynamicDataChildren","serverRouterStateChild","dynamicDataChild","maybePrefetchRsc","maybePrefetchLoading","createDeferredRsc","taskState","serverState","taskStateChildren","serverStateChildren","dataChildren","taskStateChild","serverStateChild","dataChild","segmentMapChild","taskSegmentChild","taskSegmentKeyChild","cacheNodeChild","abortPendingCacheNode","dynamicSegmentData","isDeferredRsc","shouldUsePrefetch","DEFERRED","tag","pendingRsc","res","rej","fulfilledRsc","rejectedRsc","clearCacheNodeDataForSegmentPath","addSearchParamsToPageSegments","handleAliasedPrefetchEntry","currentCache","applied","hasLoadingComponentInSeedData","fromEntries","pathToSegment","flightSegmentPathWithLeadingEmpty","newTree","fillNewTreeWithOnlyLoadingSegments","newSegment","addSearchParamsIfPageSegment","updatedParallelRoutes","handleExternalUrl","navigateReducer","generateSegmentsFromPatch","flightRouterPatch","childSegment","triggerLazyFetchForLeafSegments","appliedPatch","segmentPathsToFill","handleNavigationResult","MPA","newUrl","NoOp","newCanonicalUrl","oldUrl","Success","Async","asyncResult","isExternalUrl","navigateType","getElementById","prefetchValues","canonicalUrlOverride","postponed","isFirstRead","updatedCanonicalUrl","isHeadPartial","patchedRouterState","dynamicRequest","hardNavigate","subSegment","scrollableSegmentPath","serverPatchReducer","serverResponse","canonicalUrlOverrideHref","__NEXT_PPR","restoreReducer","treeToRestore","oldCache","handleSegmentMismatch","refreshReducer","hasInterceptionRouteInCurrentTree","log","hmrRefreshReducer","hmrRefreshReducerImpl","isHmrRefresh","hmrRefreshReducerNoop","_action","assignLocation","urlBase","extractInfoFromServerReferenceId","omitUnusedArgs","infoByte","typeBit","argMask","restArgs","usedArgs","bitPosition","bit","hasRestArgs","info","filteredArgs","NEXT_RUNTIME","serverActionReducer","createFromFetch","createTemporaryReferenceSet","encodeReply","fetchServerAction","actionId","actionArgs","temporaryReferences","fetch","method","headers","Accept","RSC_CONTENT_TYPE_HEADER","ACTION_HEADER","NEXT_ROUTER_STATE_TREE_HEADER","encodeURIComponent","NEXT_URL","redirectHeader","_redirectType","isPrerender","NEXT_IS_PRERENDER_HEADER","revalidatedParts","revalidatedHeader","parse","paths","cookie","e","redirectLocation","contentType","response","callServer","findSourceMapURL","actionFlightData","normalizeFlightData","f","actionResult","a","text","redirectHref","actionRevalidated","getRedirectError","reducer","clientReducer","ACTION_NAVIGATE","ACTION_SERVER_PATCH","ACTION_REFRESH","ACTION_HMR_REFRESH","ACTION_PREFETCH","ACTION_SERVER_ACTION","serverReducer","createMutableActionQueue","dispatchNavigateAction","runRemainingActions","setState","runAction","needsRefresh","dispatch","prevState","payload","handleResult","nextState","discarded","isThenable","dispatchAction","resolvers","deferredPromise","newAction","last","globalActionQueue","initialState","instrumentationHooks","onRouterTransitionStart","getAppRouterActionQueue","getProfilingHookForOnNavigationStart","linkInstanceRef","locationSearch","back","forward","scroll","refresh","hmrRefresh","createInitialRouterState","initialFlightData","initialCanonicalUrlParts","initialCanonicalUrl","getFlightDataPartsFromPath","initialSeedData","initialHead","initialRSCPayload","appElement","encoder","TextEncoder","initialServerDataBuffer","initialServerDataWriter","initialServerDataLoaded","initialServerDataFlushed","initialFormStateData","nextServerDataCallback","seg","encode","binaryString","atob","decodedChunk","Uint8Array","charCodeAt","isStreamErrorOrUnfinished","ctr","desiredSize","nextServerDataRegisterWriter","val","close","DOMContentLoaded","readyState","nextServerDataLoadingGlobal","__next_f","readable","ReadableStream","start","controller","initialServerResponse","createFromReadableStream","ServerRoot","pendingActionQueue","G","p","StrictModeIfEnabled","__NEXT_STRICT_MODE_APP","StrictMode","Fragment","Root","__NEXT_TEST_MODE","reactRootOptions","setAppBuildId","b","initialTimestamp","s","S","reactEl","documentElement","ReactDOMClient","createRoot","render","hydrateRoot","formState","__webpack_hash__"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72]}