@thinkable-labs/lower-third-generator 1.0.0 → 1.0.2

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 (36) hide show
  1. package/dist/prebundle.d.ts +2 -0
  2. package/dist/prebundle.js +28 -0
  3. package/dist/renderer.d.ts +4 -0
  4. package/dist/renderer.js +39 -7
  5. package/package.json +5 -3
  6. package/remotion-bundle/108.bundle.js +11 -0
  7. package/remotion-bundle/108.bundle.js.map +1 -0
  8. package/remotion-bundle/242.bundle.js +11 -0
  9. package/remotion-bundle/242.bundle.js.map +1 -0
  10. package/remotion-bundle/243.bundle.js +3479 -0
  11. package/remotion-bundle/243.bundle.js.map +1 -0
  12. package/remotion-bundle/28.bundle.js +64 -0
  13. package/remotion-bundle/28.bundle.js.map +1 -0
  14. package/remotion-bundle/29.bundle.js +11 -0
  15. package/remotion-bundle/29.bundle.js.map +1 -0
  16. package/remotion-bundle/32.bundle.js +4462 -0
  17. package/remotion-bundle/32.bundle.js.map +1 -0
  18. package/remotion-bundle/423.bundle.js +11 -0
  19. package/remotion-bundle/423.bundle.js.map +1 -0
  20. package/remotion-bundle/587.bundle.js +205 -0
  21. package/remotion-bundle/587.bundle.js.map +1 -0
  22. package/remotion-bundle/598.bundle.js +115844 -0
  23. package/remotion-bundle/598.bundle.js.map +1 -0
  24. package/remotion-bundle/610.bundle.js +14678 -0
  25. package/remotion-bundle/610.bundle.js.map +1 -0
  26. package/remotion-bundle/803.bundle.js +451 -0
  27. package/remotion-bundle/803.bundle.js.map +1 -0
  28. package/remotion-bundle/924.bundle.js +21 -0
  29. package/remotion-bundle/924.bundle.js.map +1 -0
  30. package/remotion-bundle/bundle.js +11179 -0
  31. package/remotion-bundle/bundle.js.map +1 -0
  32. package/remotion-bundle/favicon.ico +0 -0
  33. package/remotion-bundle/index.html +49 -0
  34. package/remotion-bundle/public/WoodBlockCG.otf +0 -0
  35. package/remotion-bundle/public/logo.png +0 -0
  36. package/remotion-bundle/source-map-helper.wasm +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.js","mappings":";;;;;;;;;;;;;;;;AAwFA;AAxFA;AAUA;AAGA;AACA;AAEA;AAAA;AAAA;AAEA;AACA;AAAA;AAAA;AAAA;AAUA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AAGA;AACA;AASA;AAAA;AACA;AACA;AACA;AAGA;AAAA;AACA;AACA;AACA;AAGA;AAAA;AACA;AACA;AAGA;AAAA;AACA;AACA;AACA;AAMA;AACA;AAGA;AACA;AAEA;AACA;AAEA;AAEA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAGA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAGA;;;;ACpLA;AALA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;;;;ACnBA;AACA;AAEA;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AC7IA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjUA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AAAA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AAAA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AAAA;;;;;;;;;;;;;;ACDA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AAAA;AACA;AAAA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8CA;;;;;;;;;;;;;;AC/qRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;ACr1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACRA;AACA;AACA;AACA;AACA;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AErFA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./remotion/LowerThird.tsx","./remotion/Root.tsx","./remotion/index.ts","../../node_modules/@remotion/bundler/dist/setup-environment.js","../../node_modules/@remotion/bundler/react-shim.js","../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/react-dom/client.js","../../node_modules/react-dom/index.js","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/cjs/react.production.min.js","../../node_modules/react/index.js","../../node_modules/react/jsx-runtime.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/scheduler/index.js","../../node_modules/@remotion/studio/dist/esm/renderEntry.mjs","../../node_modules/remotion/dist/esm/index.mjs","../../node_modules/remotion/dist/esm/no-react.mjs","webpack/bootstrap","webpack/runtime/compat get default export","webpack/runtime/create fake namespace object","webpack/runtime/define property getters","webpack/runtime/ensure chunk","webpack/runtime/get javascript chunk filename","webpack/runtime/global","webpack/runtime/hasOwnProperty shorthand","webpack/runtime/load script","webpack/runtime/make namespace object","webpack/runtime/publicPath","webpack/runtime/jsonp chunk loading","webpack/before-startup","webpack/startup","webpack/after-startup"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport {\n AbsoluteFill,\n continueRender,\n delayRender,\n Img,\n interpolate,\n staticFile,\n useCurrentFrame,\n useVideoConfig,\n Easing,\n} from \"remotion\";\n\nconst FONT_FAMILY = \"WoodBlockCG\";\nconst fontUrl = staticFile(\"WoodBlockCG.otf\");\n\nconst fontFace = `\n@font-face {\n font-family: '${FONT_FAMILY}';\n src: url('${fontUrl}') format('opentype');\n font-weight: normal;\n font-style: normal;\n}\n`;\n\nexport interface LowerThirdProps {\n text: string;\n}\n\nexport const LowerThird: React.FC<LowerThirdProps> = ({ text }) => {\n const [handle] = useState(() => delayRender(\"Loading font\"));\n\n useEffect(() => {\n const font = new FontFace(FONT_FAMILY, `url('${fontUrl}') format('opentype')`);\n font.load().then(() => {\n document.fonts.add(font);\n continueRender(handle);\n }).catch(() => continueRender(handle));\n }, [handle]);\n\n const frame = useCurrentFrame();\n const { fps, width, height } = useVideoConfig();\n\n // ─── Animation timeline (3.5 seconds total at 60fps = 210 frames) ───\n // 0.0s - 0.2s: Logo badge fades in\n // 0.2s - 0.5s: Text rectangle unfolds from left to right\n // 0.4s - 0.6s: Text fades in\n // 0.6s - 2.5s: Hold\n // 2.5s - 3.5s: Everything fades out\n\n const logoFadeIn = interpolate(frame, [0, fps * 0.2], [0, 1], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n easing: Easing.out(Easing.ease),\n });\n\n const barUnfold = interpolate(frame, [fps * 0.2, fps * 0.7], [0, 1], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n easing: Easing.out(Easing.cubic),\n });\n\n const textFadeIn = interpolate(frame, [fps * 0.4, fps * 0.6], [0, 1], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n });\n\n const fadeOut = interpolate(frame, [fps * 2.5, fps * 3.5], [1, 0], {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\",\n easing: Easing.in(Easing.ease),\n });\n\n // ─── Dimensions (4K) ───────────────────────────────────\n // PART 1: Logo badge — circle on left, square on right\n // The badge is a square with the left half rounded into a circle\n const badgeSize = 300;\n const borderWidth = badgeSize * 0.035;\n\n // PART 2: Text rectangle — same height as badge, width fits text\n const textBoxHeight = badgeSize;\n const fontSize = 137;\n\n const margin = width * 0.03;\n const bottomMargin = height * 0.08;\n\n return (\n <AbsoluteFill style={{ backgroundColor: \"transparent\" }}>\n <style dangerouslySetInnerHTML={{ __html: fontFace }} />\n <div\n style={{\n position: \"absolute\",\n bottom: bottomMargin,\n left: margin,\n display: \"flex\",\n alignItems: \"center\",\n opacity: fadeOut,\n height: badgeSize,\n }}\n >\n {/* PART 1: Logo badge (circle left + square right) */}\n <div\n style={{\n width: badgeSize,\n height: badgeSize,\n flexShrink: 0,\n opacity: logoFadeIn,\n zIndex: 2,\n position: \"relative\",\n }}\n >\n {/* Brown background: left half rounded, right half square */}\n <div\n style={{\n position: \"absolute\",\n inset: 0,\n backgroundColor: \"#B36231\",\n borderRadius: `${badgeSize / 2}px 0 0 ${badgeSize / 2}px`,\n boxShadow: `inset 0 0 0 ${borderWidth}px #C67F2C`,\n }}\n />\n {/* Circular logo on top with stroke */}\n <div\n style={{\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: badgeSize * 0.75,\n height: badgeSize * 0.75,\n borderRadius: \"50%\",\n overflow: \"hidden\",\n zIndex: 3,\n boxShadow: `0 0 0 ${borderWidth * 1.5}px #C67F2C, 0 ${badgeSize * 0.02}px ${badgeSize * 0.06}px rgba(0,0,0,0.4)`,\n }}\n >\n <Img\n src={staticFile(\"logo.png\")}\n style={{\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n }}\n />\n </div>\n </div>\n\n {/* PART 2: Text rectangle — unfolds from left to right */}\n <div\n style={{\n height: textBoxHeight,\n zIndex: 1,\n clipPath: `inset(0 ${(1 - barUnfold) * 100}% 0 0)`,\n marginLeft: 0,\n }}\n >\n <div\n style={{\n height: textBoxHeight,\n backgroundColor: \"#B36231\",\n boxShadow: `inset 0 0 0 ${borderWidth}px #C67F2C`,\n borderRadius: `0 ${borderWidth * 2}px ${borderWidth * 2}px 0`,\n display: \"flex\",\n alignItems: \"center\",\n paddingLeft: fontSize * 0.6,\n paddingRight: fontSize * 0.6,\n }}\n >\n <span\n style={{\n color: \"#FFFFFF\",\n fontSize,\n fontWeight: \"normal\",\n fontFamily: `'${FONT_FAMILY}', Arial, sans-serif`,\n letterSpacing: fontSize * 0.02,\n whiteSpace: \"nowrap\",\n opacity: textFadeIn,\n }}\n >\n {text}\n </span>\n </div>\n </div>\n </div>\n </AbsoluteFill>\n );\n};\n","import React from \"react\";\nimport { Composition } from \"remotion\";\nimport { LowerThird } from \"./LowerThird\";\n\nexport const Root: React.FC = () => {\n return (\n <Composition\n id=\"LowerThird\"\n // @ts-expect-error Remotion Composition typing mismatch with delayRender hooks\n component={LowerThird}\n durationInFrames={210}\n fps={60}\n width={3840}\n height={2160}\n defaultProps={{\n text: \"JESUS - MATTHEW 26:38\",\n }}\n />\n );\n};\n","import { registerRoot } from \"remotion\";\nimport { Root } from \"./Root\";\n\nregisterRoot(Root);\n","\"use strict\";\n// https://github.com/remotion-dev/remotion/issues/3412#issuecomment-1910120552\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.injectCSS = void 0;\nfunction getEnvVar() {\n const parts = ['proc', 'ess', '.', 'en', 'v', '.', 'NOD', 'E_EN', 'V'];\n return parts.join('');\n}\nconst getEnvVariables = () => {\n if (window.remotion_isStudio) {\n // For the Studio, we already set the environment variables in index-html.ts.\n // We just add NODE_ENV here.\n if (!process.env.NODE_ENV) {\n throw new Error(`${getEnvVar()} is not set`);\n }\n return {\n NODE_ENV: process.env.NODE_ENV,\n };\n }\n const param = window.remotion_envVariables;\n if (!param) {\n return {};\n }\n return { ...JSON.parse(param), NODE_ENV: process.env.NODE_ENV };\n};\nconst setupEnvVariables = () => {\n const env = getEnvVariables();\n if (!window.process) {\n window.process = {};\n }\n if (!window.process.env) {\n window.process.env = {};\n }\n Object.keys(env).forEach((key) => {\n window.process.env[key] = env[key];\n });\n};\nsetupEnvVariables();\nconst injected = {};\nconst injectCSS = (css) => {\n // Skip in node\n if (typeof document === 'undefined') {\n return;\n }\n if (injected[css]) {\n return;\n }\n const head = document.head || document.getElementsByTagName('head')[0];\n const style = document.createElement('style');\n style.appendChild(document.createTextNode(css));\n head.prepend(style);\n injected[css] = true;\n};\nexports.injectCSS = injectCSS;\n(0, exports.injectCSS)(`\n .css-reset, .css-reset * {\n font-size: 16px;\n line-height: 1.5;\n color: white;\n font-family: Arial, Helvetica, sans-serif;\n background: transparent;\n box-sizing: border-box;\n }\n\n .algolia-docsearch-suggestion--highlight {\n font-size: 15px;\n line-height: 1.25;\n }\n\n .__remotion-info-button-container code {\n font-family: monospace;\n font-size: 14px;\n color: #0584f2\n }\n\n .__remotion-vertical-scrollbar::-webkit-scrollbar {\n width: 6px;\n }\n .__remotion-vertical-scrollbar::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.0);\n }\n .__remotion-vertical-scrollbar:hover::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.6);\n }\n .__remotion-vertical-scrollbar:hover::-webkit-scrollbar-thumb:hover {\n background-color: rgba(0, 0, 0, 1);\n }\n\n\n .__remotion-horizontal-scrollbar::-webkit-scrollbar {\n height: 6px;\n }\n .__remotion-horizontal-scrollbar::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.0);\n }\n .__remotion-horizontal-scrollbar:hover::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.6);\n }\n .__remotion-horizontal-scrollbar:hover::-webkit-scrollbar-thumb:hover {\n background-color: rgba(0, 0, 0, 1);\n }\n\n\n @-moz-document url-prefix() {\n .__remotion-vertical-scrollbar {\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.6) rgba(0, 0, 0, 0);\n }\n\n .__remotion-vertical-scrollbar:hover {\n scrollbar-color: rgba(0, 0, 0, 1) rgba(0, 0, 0, 0);\n }\n\n .__remotion-horizontal-scrollbar {\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.6) rgba(0, 0, 0, 0);\n }\n\n .__remotion-horizontal-scrollbar:hover {\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 1) rgba(0, 0, 0, 0);\n }\n }\n\n\n .__remotion-timeline-slider {\n appearance: none;\n width: 100px;\n border-radius: 3px;\n height: 6px;\n background-color: rgba(255, 255, 255, 0.1);\n accent-color: #ffffff;\n }\n \n .__remotion-timeline-slider::-moz-range-thumb {\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background-color: #ffffff;\n appearance: none;\n }\n`);\n","import * as React from 'react';\n\nif (typeof globalThis === 'undefined') {\n\twindow.React = React;\n} else {\n\tglobalThis.React = React;\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[: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]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"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 submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick 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(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"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(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;\nfunction Lg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction Mg(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function Ng(a){var b=a._init;return b(a._payload)}\nfunction Og(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Pg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Qg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&Ng(f)===b.type))return d=e(b,c.props),d.ref=Lg(a,b,c),d.return=a,d;d=Rg(c.type,c.key,c.props,null,a.mode,d);d.ref=Lg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=Sg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Tg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=Qg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=Rg(b.type,b.key,b.props,null,a.mode,c),\nc.ref=Lg(a,null,b),c.return=a,c;case wa:return b=Sg(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Tg(b,a.mode,c,null),b.return=a,b;Mg(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);Mg(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);Mg(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var th={},uh=Uf(th),vh=Uf(th),wh=Uf(th);function xh(a){if(a===th)throw Error(p(174));return a}\nfunction yh(a,b){G(wh,b);G(vh,a);G(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(uh);G(uh,b)}function zh(){E(uh);E(vh);E(wh)}function Ah(a){xh(wh.current);var b=xh(uh.current);var c=lb(b,a.type);b!==c&&(G(vh,a),G(uh,c))}function Bh(a){vh.current===a&&(E(uh),E(vh))}var L=Uf(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;a<Dh.length;a++)Dh[a]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=ua.ReactCurrentDispatcher,Gh=ua.ReactCurrentBatchConfig,Hh=0,M=null,N=null,O=null,Ih=!1,Jh=!1,Kh=0,Lh=0;function P(){throw Error(p(321));}function Mh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Nh(a,b,c,d,e,f){Hh=f;M=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Fh.current=null===a||null===a.memoizedState?Oh:Ph;a=c(d,e);if(Jh){f=0;do{Jh=!1;Kh=0;if(25<=f)throw Error(p(301));f+=1;O=N=null;b.updateQueue=null;Fh.current=Qh;a=c(d,e)}while(Jh)}Fh.current=Rh;b=null!==N&&null!==N.next;Hh=0;O=N=M=null;Ih=!1;if(b)throw Error(p(300));return a}function Sh(){var a=0!==Kh;Kh=0;return a}\nfunction Th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===O?M.memoizedState=O=a:O=O.next=a;return O}function Uh(){if(null===N){var a=M.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===O?M.memoizedState:O.next;if(null!==b)O=b,N=a;else{if(null===a)throw Error(p(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===O?M.memoizedState=O=a:O=O.next=a}return O}\nfunction Vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Wh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Hh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;M.lanes|=m;rh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(dh=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,M.lanes|=f,rh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction Xh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(dh=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Yh(){}\nfunction Zh(a,b){var c=M,d=Uh(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,dh=!0);d=d.queue;$h(ai.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==O&&O.memoizedState.tag&1){c.flags|=2048;bi(9,ci.bind(null,c,d,e,b),void 0,null);if(null===Q)throw Error(p(349));0!==(Hh&30)||di(c,b,e)}return e}function di(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction ci(a,b,c,d){b.value=c;b.getSnapshot=d;ei(b)&&fi(a)}function ai(a,b,c){return c(function(){ei(b)&&fi(a)})}function ei(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function fi(a){var b=ih(a,1);null!==b&&gi(b,a,1,-1)}\nfunction hi(a){var b=Th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:a};b.queue=a;a=a.dispatch=ii.bind(null,M,a);return[b.memoizedState,a]}\nfunction bi(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function ji(){return Uh().memoizedState}function ki(a,b,c,d){var e=Th();M.flags|=a;e.memoizedState=bi(1|b,c,void 0,void 0===d?null:d)}\nfunction li(a,b,c,d){var e=Uh();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Mh(d,g.deps)){e.memoizedState=bi(b,c,f,d);return}}M.flags|=a;e.memoizedState=bi(1|b,c,f,d)}function mi(a,b){return ki(8390656,8,a,b)}function $h(a,b){return li(2048,8,a,b)}function ni(a,b){return li(4,2,a,b)}function oi(a,b){return li(4,4,a,b)}\nfunction pi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function qi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return li(4,4,pi.bind(null,b,a),c)}function ri(){}function si(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction ti(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function ui(a,b,c){if(0===(Hh&21))return a.baseState&&(a.baseState=!1,dh=!0),a.memoizedState=c;He(c,b)||(c=yc(),M.lanes|=c,rh|=c,a.baseState=!0);return b}function vi(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Lh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Ph={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Wh,useRef:ji,useState:function(){return Wh(Vh)},\nuseDebugValue:ri,useDeferredValue:function(a){var b=Uh();return ui(b,N.memoizedState,a)},useTransition:function(){var a=Wh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1},Qh={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Xh,useRef:ji,useState:function(){return Xh(Vh)},useDebugValue:ri,useDeferredValue:function(a){var b=Uh();return null===\nN?b.memoizedState=a:ui(b,N.memoizedState,a)},useTransition:function(){var a=Xh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1};function Ci(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function Di(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Ei={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=R(),d=\nyi(a),e=mh(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=nh(a,e,d);null!==b&&(gi(b,a,d,c),oh(b,a,d))}};function Fi(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction Gi(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=eh(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Ei;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Hi(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Ei.enqueueReplaceState(b,b.state,null)}\nfunction Ii(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs={};kh(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=eh(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Di(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Ei.enqueueReplaceState(e,e.state,null),qh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}function Ji(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}\nfunction Ki(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function Li(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Mi=\"function\"===typeof WeakMap?WeakMap:Map;function Ni(a,b,c){c=mh(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Oi||(Oi=!0,Pi=d);Li(a,b)};return c}\nfunction Qi(a,b,c){c=mh(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Li(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Li(a,b);\"function\"!==typeof d&&(null===Ri?Ri=new Set([this]):Ri.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Si(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Mi;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ti.bind(null,a,b,c),b.then(a,a))}function Ui(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Vi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=mh(-1,1),b.tag=2,nh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Wi=ua.ReactCurrentOwner,dh=!1;function Xi(a,b,c,d){b.child=null===a?Vg(b,null,c,d):Ug(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ch(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&c&&vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=Rg(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=Pg(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(dh=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(dh=!0);else return b.lanes=a.lanes,Zi(a,b,e)}return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(ej,fj),fj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(ej,fj),fj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(ej,fj);fj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(ej,fj),fj|=d;Xi(a,b,e,c);return b.child}function gj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);ch(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&d&&vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction hj(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;ch(b,e);if(null===b.stateNode)ij(a,b),Gi(b,c,d),Ii(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=eh(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&Hi(b,g,d,l);jh=!1;var r=b.memoizedState;g.state=r;qh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||jh?(\"function\"===typeof m&&(Di(b,c,m,d),k=b.memoizedState),(h=jh||Fi(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;lh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Ci(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=eh(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&Hi(b,g,d,k);jh=!1;r=b.memoizedState;g.state=r;qh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||jh?(\"function\"===typeof y&&(Di(b,c,y,d),n=b.memoizedState),(l=jh||Fi(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return jj(a,b,c,d,f,e)}\nfunction jj(a,b,c,d,e,f){gj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Ug(b,a.child,null,f),b.child=Ug(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function kj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);yh(a,b.containerInfo)}\nfunction lj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Xi(a,b,c,d);return b.child}var mj={dehydrated:null,treeContext:null,retryLane:0};function nj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction oj(a,b,c){var d=b.pendingProps,e=L.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(L,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=pj(g,d,0,null),a=Tg(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=nj(c),b.memoizedState=mj,a):qj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return rj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=Pg(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=Pg(h,f):(f=Tg(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?nj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=mj;return d}f=a.child;a=f.sibling;d=Pg(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction qj(a,b){b=pj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){null!==d&&Jg(d);Ug(b,a.child,null,c);a=qj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction rj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Ki(Error(p(422))),sj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=pj({mode:\"visible\",children:d.children},e,0,null);f=Tg(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Ug(b,a.child,null,g);b.child.memoizedState=nj(g);b.memoizedState=mj;return f}if(0===(b.mode&1))return sj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Ki(f,d,void 0);return sj(a,b,g,d)}h=0!==(g&a.childLanes);if(dh||h){d=Q;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,ih(a,e),gi(d,a,e,-1))}tj();d=Ki(Error(p(421)));return sj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=uj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=qj(b,d.children);b.flags|=4096;return b}function vj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);bh(a.return,b,c)}\nfunction wj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction xj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=L.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&vj(a,c,b);else if(19===a.tag)vj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(L,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);wj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}wj(b,!0,c,null,f);break;case \"together\":wj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction ij(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);rh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=Pg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Pg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction yj(a,b,c){switch(b.tag){case 3:kj(b);Ig();break;case 5:Ah(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Wg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(L,L.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return oj(a,b,c);G(L,L.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}G(L,L.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return xj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(L,L.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}var zj,Aj,Bj,Cj;\nzj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Aj=function(){};\nBj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;xh(uh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Cj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Dj(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Ej(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;zh();E(Wf);E(H);Eh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Fj(zg),zg=null));Aj(a,b);S(b);return null;case 5:Bh(b);var e=xh(wh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Bj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Cj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=xh(wh.current);xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(L);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Fj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(L.current&1)?0===T&&(T=3):tj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return zh(),\nAj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return ah(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(L);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Dj(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Ch(a);if(null!==g){b.flags|=128;Dj(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(L,L.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Gj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Xj=!1;break a;case 3:X=h.stateNode.containerInfo;Xj=!0;break a;case 4:X=h.stateNode.containerInfo;Xj=!0;break a}h=h.return}if(null===X)throw Error(p(160));Zj(f,g,e);X=null;Xj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)dk(b,a),b=b.sibling}\nfunction dk(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:ck(b,a);ek(a);if(d&4){try{Pj(3,a,a.return),Qj(3,a)}catch(t){W(a,a.return,t)}try{Pj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);break;case 5:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:ck(b,a);ek(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:ck(b,a);ek(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:ck(b,a);ek(a);break;case 13:ck(b,a);ek(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(fk=B()));d&4&&ak(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,ck(b,a),U=l):ck(b,a);ek(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Pj(4,r,r.return);break;case 1:Lj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Lj(r,r.return);break;case 22:if(null!==r.memoizedState){gk(q);continue}}null!==y?(y.return=r,V=y):gk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:ck(b,a);ek(a);d&4&&ak(a);break;case 21:break;default:ck(b,\na),ek(a)}}function ek(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Tj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Uj(a);Wj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Uj(a);Vj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function hk(a,b,c){V=a;ik(a,b,c)}\nfunction ik(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Jj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Jj;var l=U;Jj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?jk(e):null!==k?(k.return=g,V=k):jk(e);for(;null!==f;)V=f,ik(f,b,c),f=f.sibling;V=e;Jj=h;U=l}kk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):kk(a,b,c)}}\nfunction kk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Qj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Ci(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&sh(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}sh(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Rj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function gk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction jk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Qj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Rj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Rj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar lk=Math.ceil,mk=ua.ReactCurrentDispatcher,nk=ua.ReactCurrentOwner,ok=ua.ReactCurrentBatchConfig,K=0,Q=null,Y=null,Z=0,fj=0,ej=Uf(0),T=0,pk=null,rh=0,qk=0,rk=0,sk=null,tk=null,fk=0,Gj=Infinity,uk=null,Oi=!1,Pi=null,Ri=null,vk=!1,wk=null,xk=0,yk=0,zk=null,Ak=-1,Bk=0;function R(){return 0!==(K&6)?B():-1!==Ak?Ak:Ak=B()}\nfunction yi(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Bk&&(Bk=yc()),Bk;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function gi(a,b,c,d){if(50<yk)throw yk=0,zk=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==Q)a===Q&&(0===(K&2)&&(qk|=c),4===T&&Ck(a,Z)),Dk(a,d),1===c&&0===K&&0===(b.mode&1)&&(Gj=B()+500,fg&&jg())}\nfunction Dk(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===Q?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Ek.bind(null,a)):hg(Ek.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Fk(c,Gk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Gk(a,b){Ak=-1;Bk=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Hk()&&a.callbackNode!==c)return null;var d=uc(a,a===Q?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Ik(a,d);else{b=d;var e=K;K|=2;var f=Jk();if(Q!==a||Z!==b)uk=null,Gj=B()+500,Kk(a,b);do try{Lk();break}catch(h){Mk(a,h)}while(1);$g();mk.current=f;K=e;null!==Y?b=0:(Q=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Nk(a,e)));if(1===b)throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;if(6===b)Ck(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Ok(e)&&(b=Ik(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Nk(a,f))),1===b))throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Pk(a,tk,uk);break;case 3:Ck(a,d);if((d&130023424)===d&&(b=fk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){R();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),b);break}Pk(a,tk,uk);break;case 4:Ck(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),d);break}Pk(a,tk,uk);break;case 5:Pk(a,tk,uk);break;default:throw Error(p(329));}}}Dk(a,B());return a.callbackNode===c?Gk.bind(null,a):null}\nfunction Nk(a,b){var c=sk;a.current.memoizedState.isDehydrated&&(Kk(a,b).flags|=256);a=Ik(a,b);2!==a&&(b=tk,tk=c,null!==b&&Fj(b));return a}function Fj(a){null===tk?tk=a:tk.push.apply(tk,a)}\nfunction Ok(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Ck(a,b){b&=~rk;b&=~qk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Ek(a){if(0!==(K&6))throw Error(p(327));Hk();var b=uc(a,0);if(0===(b&1))return Dk(a,B()),null;var c=Ik(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Nk(a,d))}if(1===c)throw c=pk,Kk(a,0),Ck(a,b),Dk(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Pk(a,tk,uk);Dk(a,B());return null}\nfunction Qk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Gj=B()+500,fg&&jg())}}function Rk(a){null!==wk&&0===wk.tag&&0===(K&6)&&Hk();var b=K;K|=1;var c=ok.transition,d=C;try{if(ok.transition=null,C=1,a)return a()}finally{C=d,ok.transition=c,K=b,0===(K&6)&&jg()}}function Hj(){fj=ej.current;E(ej)}\nfunction Kk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:zh();E(Wf);E(H);Eh();break;case 5:Bh(d);break;case 4:zh();break;case 13:E(L);break;case 19:E(L);break;case 10:ah(d.type._context);break;case 22:case 23:Hj()}c=c.return}Q=a;Y=a=Pg(a.current,null);Z=fj=b;T=0;pk=null;rk=qk=rh=0;tk=sk=null;if(null!==fh){for(b=\n0;b<fh.length;b++)if(c=fh[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}fh=null}return a}\nfunction Mk(a,b){do{var c=Y;try{$g();Fh.current=Rh;if(Ih){for(var d=M.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Ih=!1}Hh=0;O=N=M=null;Jh=!1;Kh=0;nk.current=null;if(null===c||null===c.return){T=1;pk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Ui(g);if(null!==y){y.flags&=-257;Vi(y,g,h,f,b);y.mode&1&&Si(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Si(f,l,b);tj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Ui(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Vi(J,g,h,f,b);Jg(Ji(k,h));break a}}f=k=Ji(k,h);4!==T&&(T=2);null===sk?sk=[f]:sk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Ni(f,k,b);ph(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Ri||!Ri.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Qi(f,h,b);ph(f,F);break a}}f=f.return}while(null!==f)}Sk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Jk(){var a=mk.current;mk.current=Rh;return null===a?Rh:a}\nfunction tj(){if(0===T||3===T||2===T)T=4;null===Q||0===(rh&268435455)&&0===(qk&268435455)||Ck(Q,Z)}function Ik(a,b){var c=K;K|=2;var d=Jk();if(Q!==a||Z!==b)uk=null,Kk(a,b);do try{Tk();break}catch(e){Mk(a,e)}while(1);$g();K=c;mk.current=d;if(null!==Y)throw Error(p(261));Q=null;Z=0;return T}function Tk(){for(;null!==Y;)Uk(Y)}function Lk(){for(;null!==Y&&!cc();)Uk(Y)}function Uk(a){var b=Vk(a.alternate,a,fj);a.memoizedProps=a.pendingProps;null===b?Sk(a):Y=b;nk.current=null}\nfunction Sk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Ej(c,b,fj),null!==c){Y=c;return}}else{c=Ij(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Pk(a,b,c){var d=C,e=ok.transition;try{ok.transition=null,C=1,Wk(a,b,c,d)}finally{ok.transition=e,C=d}return null}\nfunction Wk(a,b,c,d){do Hk();while(null!==wk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===Q&&(Y=Q=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||vk||(vk=!0,Fk(hc,function(){Hk();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=ok.transition;ok.transition=null;\nvar g=C;C=1;var h=K;K|=4;nk.current=null;Oj(a,c);dk(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;hk(c,a,e);dc();K=h;C=g;ok.transition=f}else a.current=c;vk&&(vk=!1,wk=a,xk=e);f=a.pendingLanes;0===f&&(Ri=null);mc(c.stateNode,d);Dk(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Oi)throw Oi=!1,a=Pi,Pi=null,a;0!==(xk&1)&&0!==a.tag&&Hk();f=a.pendingLanes;0!==(f&1)?a===zk?yk++:(yk=0,zk=a):yk=0;jg();return null}\nfunction Hk(){if(null!==wk){var a=Dc(xk),b=ok.transition,c=C;try{ok.transition=null;C=16>a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Pj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Sj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Pj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Qj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,ok.transition=b}}return!1}function Xk(a,b,c){b=Ji(c,b);b=Ni(a,b,1);a=nh(a,b,1);b=R();null!==a&&(Ac(a,1,b),Dk(a,b))}\nfunction W(a,b,c){if(3===a.tag)Xk(a,a,c);else for(;null!==b;){if(3===b.tag){Xk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ri||!Ri.has(d))){a=Ji(c,a);a=Qi(b,a,1);b=nh(b,a,1);a=R();null!==b&&(Ac(b,1,a),Dk(b,a));break}}b=b.return}}\nfunction Ti(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=R();a.pingedLanes|=a.suspendedLanes&c;Q===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction dl(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction el(a,b,c,d,e,f,g,h,k){a=bl(c,d,!0,a,e,f,g,h,k);a.context=dl(null);c=a.current;d=R();e=yi(c);f=mh(d,e);f.callback=void 0!==b&&null!==b?b:null;nh(c,f,e);a.current.lanes=e;Ac(a,e,d);Dk(a,d);return a}function fl(a,b,c,d){var e=b.current,f=R(),g=yi(e);c=dl(c);null===b.context?b.context=c:b.pendingContext=c;b=mh(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=nh(e,b,g);null!==a&&(gi(a,e,g,f),oh(a,e,g));return g}\nfunction gl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function hl(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function il(a,b){hl(a,b);(a=a.alternate)&&hl(a,b)}function jl(){return null}var kl=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ll(a){this._internalRoot=a}\nml.prototype.render=ll.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));fl(a,b,null,null)};ml.prototype.unmount=ll.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Rk(function(){fl(null,a,null,null)});b[uf]=null}};function ml(a){this._internalRoot=a}\nml.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function nl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function pl(){}\nfunction ql(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=gl(g);f.call(a)}}var g=el(b,d,a,0,null,!1,!1,\"\",pl);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Rk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=gl(k);h.call(a)}}var k=bl(a,0,!1,null,null,!1,!1,\"\",pl);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Rk(function(){fl(b,k,c,d)});return k}\nfunction rl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=gl(g);h.call(a)}}fl(b,g,a,e)}else g=ql(c,b,a,e,d);return gl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Dk(b,B()),0===(K&6)&&(Gj=B()+500,jg()))}break;case 13:Rk(function(){var b=ih(a,1);if(null!==b){var c=R();gi(b,a,1,c)}}),il(a,1)}};\nFc=function(a){if(13===a.tag){var b=ih(a,134217728);if(null!==b){var c=R();gi(b,a,134217728,c)}il(a,134217728)}};Gc=function(a){if(13===a.tag){var b=yi(a),c=ih(a,b);if(null!==c){var d=R();gi(c,a,b,d)}il(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Qk;Hb=Rk;\nvar sl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Qk]},tl={findFiberByHostInstance:Wc,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"};\nvar ul={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||\njl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var vl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vl.isDisabled&&vl.supportsFiber)try{kc=vl.inject(ul),lc=vl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!nl(b))throw Error(p(200));return cl(a,b,null,c)};exports.createRoot=function(a,b){if(!nl(a))throw Error(p(299));var c=!1,d=\"\",e=kl;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=bl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ll(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Rk(a)};exports.hydrate=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!nl(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=kl;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=el(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new ml(b)};exports.render=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!ol(a))throw Error(p(40));return a._reactRootContainer?(Rk(function(){rl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Qk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!ol(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return rl(a,b,c,!1,d)};exports.version=\"18.3.1-next-f1338f8080-20240426\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\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.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","import {\n __require,\n __toESM\n} from \"./chunk-6jf1natv.js\";\n\n// src/renderEntry.tsx\nimport { useContext, useEffect, useRef, useState } from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport {\n AbsoluteFill,\n getInputProps,\n getRemotionEnvironment,\n continueRender as globalContinueRender,\n delayRender as globalDelayRender,\n Internals,\n useDelayRender\n} from \"remotion\";\nimport { NoReactInternals } from \"remotion/no-react\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar currentBundleMode = {\n type: \"index\"\n};\nvar setBundleMode = (state) => {\n currentBundleMode = state;\n};\nvar getBundleMode = () => {\n return currentBundleMode;\n};\nInternals.CSSUtils.injectCSS(Internals.CSSUtils.makeDefaultPreviewCSS(null, \"#1f2428\"));\nvar getCanSerializeDefaultProps = (object) => {\n try {\n const str = JSON.stringify(object);\n return str.length < 256 * 1024 * 1024 * 0.9;\n } catch (err) {\n if (err.message.includes(\"Invalid string length\")) {\n return false;\n }\n throw err;\n }\n};\nvar isInHeadlessBrowser = () => {\n return typeof window.remotion_puppeteerTimeout !== \"undefined\";\n};\nvar DelayedSpinner = () => {\n const [show, setShow] = useState(false);\n useEffect(() => {\n const timeout = setTimeout(() => {\n setShow(true);\n }, 2000);\n return () => {\n clearTimeout(timeout);\n };\n }, []);\n if (!show) {\n return null;\n }\n return /* @__PURE__ */ jsx(AbsoluteFill, {\n style: {\n justifyContent: \"center\",\n alignItems: \"center\",\n fontSize: 13,\n opacity: 0.6,\n color: \"white\",\n fontFamily: \"Helvetica, Arial, sans-serif\"\n },\n children: \"Loading Studio\"\n });\n};\nvar GetVideoComposition = ({ state }) => {\n const { compositions, currentCompositionMetadata, canvasContent } = useContext(Internals.CompositionManager);\n const { setCanvasContent } = useContext(Internals.CompositionSetters);\n const portalContainer = useRef(null);\n const { delayRender, continueRender } = useDelayRender();\n const [handle] = useState(() => delayRender(`Waiting for Composition \"${state.compositionName}\"`));\n useEffect(() => {\n return () => continueRender(handle);\n }, [handle, continueRender]);\n useEffect(() => {\n if (compositions.length === 0) {\n return;\n }\n const foundComposition = compositions.find((c) => c.id === state.compositionName);\n if (!foundComposition) {\n throw new Error(`Found no composition with the name ${state.compositionName}. The following compositions were found instead: ${compositions.map((c) => c.id).join(\", \")}. All compositions must have their ID calculated deterministically and must be mounted at the same time.`);\n }\n setCanvasContent({\n type: \"composition\",\n compositionId: foundComposition.id\n });\n }, [compositions, state, currentCompositionMetadata, setCanvasContent]);\n useEffect(() => {\n if (!canvasContent) {\n return;\n }\n const { current } = portalContainer;\n if (!current) {\n throw new Error(\"portal did not render\");\n }\n current.appendChild(Internals.portalNode());\n continueRender(handle);\n return () => {\n current.removeChild(Internals.portalNode());\n };\n }, [canvasContent, handle, continueRender]);\n if (!currentCompositionMetadata) {\n return null;\n }\n return /* @__PURE__ */ jsx(\"div\", {\n ref: portalContainer,\n id: \"remotion-canvas\",\n style: {\n width: currentCompositionMetadata.width,\n height: currentCompositionMetadata.height,\n display: \"flex\",\n backgroundColor: \"transparent\"\n }\n });\n};\nvar DEFAULT_ROOT_COMPONENT_TIMEOUT = 1e4;\nvar waitForRootHandle = globalDelayRender(\"Loading root component - See https://remotion.dev/docs/troubleshooting/loading-root-component if you experience a timeout\", {\n timeoutInMilliseconds: typeof window === \"undefined\" ? DEFAULT_ROOT_COMPONENT_TIMEOUT : window.remotion_puppeteerTimeout ?? DEFAULT_ROOT_COMPONENT_TIMEOUT\n});\nvar videoContainer = document.getElementById(\"video-container\");\nvar root = null;\nvar getRootForElement = () => {\n if (root) {\n return root;\n }\n root = ReactDOM.createRoot(videoContainer);\n return root;\n};\nvar renderToDOM = (content) => {\n if (!ReactDOM.createRoot) {\n if (NoReactInternals.ENABLE_V5_BREAKING_CHANGES) {\n throw new Error(\"Remotion 5.0 does only support React 18+. However, ReactDOM.createRoot() is undefined.\");\n }\n ReactDOM.render(content, videoContainer);\n return;\n }\n getRootForElement().render(content);\n};\nvar renderContent = (Root) => {\n const bundleMode = getBundleMode();\n if (bundleMode.type === \"composition\") {\n const markup = /* @__PURE__ */ jsx(Internals.CompositionManagerProvider, {\n initialCanvasContent: null,\n onlyRenderComposition: bundleMode.compositionName,\n currentCompositionMetadata: {\n props: NoReactInternals.deserializeJSONWithSpecialTypes(bundleMode.serializedResolvedPropsWithSchema),\n durationInFrames: bundleMode.compositionDurationInFrames,\n fps: bundleMode.compositionFps,\n height: bundleMode.compositionHeight,\n width: bundleMode.compositionWidth,\n defaultCodec: bundleMode.compositionDefaultCodec,\n defaultOutName: bundleMode.compositionDefaultOutName,\n defaultVideoImageFormat: bundleMode.compositionDefaultVideoImageFormat,\n defaultPixelFormat: bundleMode.compositionDefaultPixelFormat,\n defaultProResProfile: bundleMode.compositionDefaultProResProfile\n },\n initialCompositions: [],\n children: /* @__PURE__ */ jsx(Internals.RemotionRootContexts, {\n frameState: null,\n audioEnabled: window.remotion_audioEnabled,\n videoEnabled: window.remotion_videoEnabled,\n logLevel: window.remotion_logLevel ?? \"info\",\n numberOfAudioTags: 0,\n audioLatencyHint: window.remotion_audioLatencyHint ?? \"interactive\",\n visualModeEnabled: false,\n children: /* @__PURE__ */ jsxs(Internals.RenderAssetManagerProvider, {\n collectAssets: null,\n children: [\n /* @__PURE__ */ jsx(Root, {}),\n /* @__PURE__ */ jsx(GetVideoComposition, {\n state: bundleMode\n })\n ]\n })\n })\n });\n renderToDOM(markup);\n }\n if (bundleMode.type === \"evaluation\") {\n const markup = /* @__PURE__ */ jsx(Internals.CompositionManagerProvider, {\n initialCanvasContent: null,\n onlyRenderComposition: null,\n currentCompositionMetadata: null,\n initialCompositions: [],\n children: /* @__PURE__ */ jsx(Internals.RemotionRootContexts, {\n frameState: null,\n audioEnabled: window.remotion_audioEnabled,\n videoEnabled: window.remotion_videoEnabled,\n logLevel: window.remotion_logLevel ?? \"info\",\n numberOfAudioTags: 0,\n audioLatencyHint: window.remotion_audioLatencyHint ?? \"interactive\",\n visualModeEnabled: false,\n children: /* @__PURE__ */ jsx(Internals.RenderAssetManagerProvider, {\n collectAssets: null,\n children: /* @__PURE__ */ jsx(Root, {})\n })\n })\n });\n renderToDOM(markup);\n }\n if (bundleMode.type === \"index\") {\n if (isInHeadlessBrowser()) {\n return;\n }\n renderToDOM(/* @__PURE__ */ jsx(\"div\", {\n children: /* @__PURE__ */ jsx(DelayedSpinner, {})\n }));\n import(\"./chunk-1x2ychmc.js\").then(({ StudioInternals }) => {\n window.remotion_isStudio = true;\n window.remotion_isReadOnlyStudio = true;\n window.remotion_inputProps = \"{}\";\n renderToDOM(/* @__PURE__ */ jsx(StudioInternals.Studio, {\n readOnly: true,\n rootComponent: Root,\n visualModeEnabled: false\n }));\n }).catch((err) => {\n renderToDOM(/* @__PURE__ */ jsxs(\"div\", {\n children: [\n \"Failed to load Remotion Studio: \",\n err.message\n ]\n }));\n });\n }\n};\nInternals.waitForRoot((Root) => {\n renderContent(Root);\n globalContinueRender(waitForRootHandle);\n});\nvar setBundleModeAndUpdate = (state) => {\n setBundleMode(state);\n const delay = globalDelayRender(\"Waiting for root component to load - See https://remotion.dev/docs/troubleshooting/loading-root-component if you experience a timeout\");\n Internals.waitForRoot((Root) => {\n renderContent(Root);\n requestAnimationFrame(() => {\n globalContinueRender(delay);\n });\n });\n};\nif (typeof window !== \"undefined\") {\n const getUnevaluatedComps = () => {\n if (!Internals.getRoot()) {\n throw new Error(\"registerRoot() was never called. 1. Make sure you specified the correct entrypoint for your bundle. 2. If your registerRoot() call is deferred, use the delayRender/continueRender pattern to tell Remotion to wait.\");\n }\n if (!Internals.compositionsRef.current) {\n throw new Error(\"Unexpectedly did not have a CompositionManager\");\n }\n const compositions = Internals.compositionsRef.current.getCompositions();\n const canSerializeDefaultProps = getCanSerializeDefaultProps(compositions);\n if (!canSerializeDefaultProps) {\n Internals.Log.warn({ logLevel: window.remotion_logLevel ?? \"info\", tag: null }, \"defaultProps are too big to serialize - trying to find the problematic composition...\");\n Internals.Log.warn({ logLevel: window.remotion_logLevel ?? \"info\", tag: null }, \"Serialization:\", compositions);\n for (const comp of compositions) {\n if (!getCanSerializeDefaultProps(comp)) {\n throw new Error(`defaultProps too big - could not serialize - the defaultProps of composition with ID ${comp.id} - the object that was passed to defaultProps was too big. Learn how to mitigate this error by visiting https://remotion.dev/docs/troubleshooting/serialize-defaultprops`);\n }\n }\n Internals.Log.warn({ logLevel: window.remotion_logLevel ?? \"info\", tag: null }, \"Could not single out a problematic composition - The composition list as a whole is too big to serialize.\");\n throw new Error(\"defaultProps too big - Could not serialize - an object that was passed to defaultProps was too big. Learn how to mitigate this error by visiting https://remotion.dev/docs/troubleshooting/serialize-defaultprops\");\n }\n return compositions;\n };\n window.getStaticCompositions = () => {\n const compositions = getUnevaluatedComps();\n const inputProps = typeof window === \"undefined\" || getRemotionEnvironment().isPlayer ? {} : getInputProps() ?? {};\n return Promise.all(compositions.map(async (c) => {\n const handle = globalDelayRender(`Running calculateMetadata() for composition ${c.id}. If you didn't want to evaluate this composition, use \"selectComposition()\" instead of \"getCompositions()\"`);\n const originalProps = {\n ...c.defaultProps ?? {},\n ...inputProps ?? {}\n };\n const comp = Internals.resolveVideoConfig({\n calculateMetadata: c.calculateMetadata,\n compositionDurationInFrames: c.durationInFrames ?? null,\n compositionFps: c.fps ?? null,\n compositionHeight: c.height ?? null,\n compositionWidth: c.width ?? null,\n signal: new AbortController().signal,\n inputProps: originalProps,\n defaultProps: c.defaultProps ?? {},\n compositionId: c.id\n });\n const resolved = await Promise.resolve(comp);\n globalContinueRender(handle);\n const { props, defaultProps, ...data } = resolved;\n return {\n ...data,\n serializedResolvedPropsWithCustomSchema: NoReactInternals.serializeJSONWithSpecialTypes({\n data: props,\n indent: undefined,\n staticBase: null\n }).serializedString,\n serializedDefaultPropsWithCustomSchema: NoReactInternals.serializeJSONWithSpecialTypes({\n data: defaultProps,\n indent: undefined,\n staticBase: null\n }).serializedString\n };\n }));\n };\n window.remotion_getCompositionNames = () => {\n return getUnevaluatedComps().map((c) => c.id);\n };\n window.remotion_calculateComposition = async (compId) => {\n const compositions = getUnevaluatedComps();\n const selectedComp = compositions.find((c) => c.id === compId);\n if (!selectedComp) {\n throw new Error(`Could not find composition with ID ${compId}. Available compositions: ${compositions.map((c) => c.id).join(\", \")}`);\n }\n const abortController = new AbortController;\n const handle = globalDelayRender(`Running the calculateMetadata() function for composition ${compId}`);\n const inputProps = typeof window === \"undefined\" || getRemotionEnvironment().isPlayer ? {} : getInputProps() ?? {};\n const originalProps = {\n ...selectedComp.defaultProps ?? {},\n ...inputProps ?? {}\n };\n const prom = await Promise.resolve(Internals.resolveVideoConfig({\n calculateMetadata: selectedComp.calculateMetadata,\n compositionDurationInFrames: selectedComp.durationInFrames ?? null,\n compositionFps: selectedComp.fps ?? null,\n compositionHeight: selectedComp.height ?? null,\n compositionWidth: selectedComp.width ?? null,\n inputProps: originalProps,\n signal: abortController.signal,\n defaultProps: selectedComp.defaultProps ?? {},\n compositionId: selectedComp.id\n }));\n globalContinueRender(handle);\n const { props, defaultProps, ...data } = prom;\n return {\n ...data,\n serializedResolvedPropsWithCustomSchema: NoReactInternals.serializeJSONWithSpecialTypes({\n data: props,\n indent: undefined,\n staticBase: null\n }).serializedString,\n serializedDefaultPropsWithCustomSchema: NoReactInternals.serializeJSONWithSpecialTypes({\n data: defaultProps,\n indent: undefined,\n staticBase: null\n }).serializedString\n };\n };\n window.remotion_setBundleMode = setBundleModeAndUpdate;\n}\nexport {\n setBundleModeAndUpdate\n};\n","var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, {\n get: all[name],\n enumerable: true,\n configurable: true,\n set: (newValue) => all[name] = () => newValue\n });\n};\n\n// src/_check-rsc.ts\nimport { createContext } from \"react\";\nif (typeof createContext !== \"function\") {\n const err = [\n 'Remotion requires React.createContext, but it is \"undefined\".',\n 'If you are in a React Server Component, turn it into a client component by adding \"use client\" at the top of the file.',\n \"\",\n \"Before:\",\n ' import {useCurrentFrame} from \"remotion\";',\n \"\",\n \"After:\",\n ' \"use client\";',\n ' import {useCurrentFrame} from \"remotion\";'\n ];\n throw new Error(err.join(`\n`));\n}\n\n// src/Clipper.tsx\nvar Clipper = () => {\n throw new Error(\"<Clipper> has been removed as of Remotion v4.0.228. The native clipping APIs were experimental and subject to removal at any time. We removed them because they were sparingly used and made rendering often slower rather than faster.\");\n};\n\n// src/enable-sequence-stack-traces.ts\nvar componentsToAddStacksTo = [];\nvar getComponentsToAddStacksTo = () => componentsToAddStacksTo;\nvar addSequenceStackTraces = (component) => {\n componentsToAddStacksTo.push(component);\n};\n\n// src/is-player.tsx\nimport { createContext as createContext2, useContext } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar IsPlayerContext = createContext2(false);\nvar IsPlayerContextProvider = ({\n children\n}) => {\n return /* @__PURE__ */ jsx(IsPlayerContext.Provider, {\n value: true,\n children\n });\n};\nvar useIsPlayer = () => {\n return useContext(IsPlayerContext);\n};\n\n// src/truthy.ts\nfunction truthy(value) {\n return Boolean(value);\n}\n\n// src/version.ts\nvar VERSION = \"4.0.441\";\n\n// src/multiple-versions-warning.ts\nvar checkMultipleRemotionVersions = () => {\n if (typeof globalThis === \"undefined\") {\n return;\n }\n const set = () => {\n globalThis.remotion_imported = VERSION;\n if (typeof window !== \"undefined\") {\n window.remotion_imported = VERSION;\n }\n };\n const alreadyImported = globalThis.remotion_imported || typeof window !== \"undefined\" && window.remotion_imported;\n if (alreadyImported) {\n if (alreadyImported === VERSION) {\n return;\n }\n if (typeof alreadyImported === \"string\" && alreadyImported.includes(\"webcodecs\")) {\n set();\n return;\n }\n throw new TypeError(`\\uD83D\\uDEA8 Multiple versions of Remotion detected: ${[\n VERSION,\n typeof alreadyImported === \"string\" ? alreadyImported : \"an older version\"\n ].filter(truthy).join(\" and \")}. This will cause things to break in an unexpected way.\nCheck that all your Remotion packages are on the same version. If your dependencies depend on Remotion, make them peer dependencies. You can also run \\`npx remotion versions\\` from your terminal to see which versions are mismatching.`);\n }\n set();\n};\n\n// src/Null.tsx\nvar Null = () => {\n throw new Error(\"<Null> has been removed as of Remotion v4.0.228. The native clipping APIs were experimental and subject to removal at any time. We removed them because they were sparingly used and made rendering often slower rather than faster.\");\n};\n\n// src/Sequence.tsx\nimport {\n forwardRef as forwardRef2,\n useContext as useContext13,\n useEffect,\n useMemo as useMemo11,\n useState as useState4\n} from \"react\";\n\n// src/AbsoluteFill.tsx\nimport { forwardRef, useMemo } from \"react\";\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nvar hasTailwindClassName = ({\n className,\n classPrefix,\n type\n}) => {\n if (!className) {\n return false;\n }\n if (type === \"exact\") {\n const split = className.split(\" \");\n return classPrefix.some((token) => {\n return split.some((part) => {\n return part.trim() === token || part.trim().endsWith(`:${token}`) || part.trim().endsWith(`!${token}`);\n });\n });\n }\n return classPrefix.some((prefix) => {\n return className.startsWith(prefix) || className.includes(` ${prefix}`) || className.includes(`!${prefix}`) || className.includes(`:${prefix}`);\n });\n};\nvar AbsoluteFillRefForwarding = (props, ref) => {\n const { style, ...other } = props;\n const actualStyle = useMemo(() => {\n return {\n position: \"absolute\",\n top: hasTailwindClassName({\n className: other.className,\n classPrefix: [\"top-\", \"inset-\"],\n type: \"prefix\"\n }) ? undefined : 0,\n left: hasTailwindClassName({\n className: other.className,\n classPrefix: [\"left-\", \"inset-\"],\n type: \"prefix\"\n }) ? undefined : 0,\n right: hasTailwindClassName({\n className: other.className,\n classPrefix: [\"right-\", \"inset-\"],\n type: \"prefix\"\n }) ? undefined : 0,\n bottom: hasTailwindClassName({\n className: other.className,\n classPrefix: [\"bottom-\", \"inset-\"],\n type: \"prefix\"\n }) ? undefined : 0,\n width: hasTailwindClassName({\n className: other.className,\n classPrefix: [\"w-\"],\n type: \"prefix\"\n }) ? undefined : \"100%\",\n height: hasTailwindClassName({\n className: other.className,\n classPrefix: [\"h-\"],\n type: \"prefix\"\n }) ? undefined : \"100%\",\n display: hasTailwindClassName({\n className: other.className,\n classPrefix: [\n \"block\",\n \"inline-block\",\n \"inline\",\n \"flex\",\n \"inline-flex\",\n \"flow-root\",\n \"grid\",\n \"inline-grid\",\n \"contents\",\n \"list-item\",\n \"hidden\"\n ],\n type: \"exact\"\n }) ? undefined : \"flex\",\n flexDirection: hasTailwindClassName({\n className: other.className,\n classPrefix: [\n \"flex-row\",\n \"flex-col\",\n \"flex-row-reverse\",\n \"flex-col-reverse\"\n ],\n type: \"exact\"\n }) ? undefined : \"column\",\n ...style\n };\n }, [other.className, style]);\n return /* @__PURE__ */ jsx2(\"div\", {\n ref,\n style: actualStyle,\n ...other\n });\n};\nvar AbsoluteFill = forwardRef(AbsoluteFillRefForwarding);\n\n// src/freeze.tsx\nimport { useContext as useContext11, useMemo as useMemo8 } from \"react\";\n\n// src/SequenceContext.tsx\nimport { createContext as createContext3 } from \"react\";\nvar SequenceContext = createContext3(null);\n\n// src/timeline-position-state.ts\nvar exports_timeline_position_state = {};\n__export(exports_timeline_position_state, {\n useTimelineSetFrame: () => useTimelineSetFrame,\n useTimelinePosition: () => useTimelinePosition,\n useTimelineContext: () => useTimelineContext,\n usePlayingState: () => usePlayingState,\n useAbsoluteTimelinePosition: () => useAbsoluteTimelinePosition,\n persistCurrentFrame: () => persistCurrentFrame,\n getInitialFrameState: () => getInitialFrameState,\n getFrameForComposition: () => getFrameForComposition\n});\nimport { useContext as useContext7, useMemo as useMemo6 } from \"react\";\n\n// src/TimelineContext.tsx\nimport {\n createContext as createContext6,\n useLayoutEffect,\n useMemo as useMemo2,\n useRef,\n useState as useState2\n} from \"react\";\n\n// src/random.ts\nfunction mulberry32(a) {\n let t = a + 1831565813;\n t = Math.imul(t ^ t >>> 15, t | 1);\n t ^= t + Math.imul(t ^ t >>> 7, t | 61);\n return ((t ^ t >>> 14) >>> 0) / 4294967296;\n}\nfunction hashCode(str) {\n let i = 0;\n let chr = 0;\n let hash = 0;\n for (i = 0;i < str.length; i++) {\n chr = str.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0;\n }\n return hash;\n}\nvar random = (seed, dummy) => {\n if (dummy !== undefined) {\n throw new TypeError(\"random() takes only one argument\");\n }\n if (seed === null) {\n return Math.random();\n }\n if (typeof seed === \"string\") {\n return mulberry32(hashCode(seed));\n }\n if (typeof seed === \"number\") {\n return mulberry32(seed * 10000000000);\n }\n throw new Error(\"random() argument must be a number or a string\");\n};\n\n// src/use-delay-render.tsx\nimport { createContext as createContext5, useCallback, useContext as useContext4 } from \"react\";\n\n// src/cancel-render.ts\nvar getErrorStackWithMessage = (error) => {\n const stack = error.stack ?? \"\";\n return stack.startsWith(\"Error:\") ? stack : `${error.message}\n${stack}`;\n};\nvar isErrorLike = (err) => {\n if (err instanceof Error) {\n return true;\n }\n if (err === null) {\n return false;\n }\n if (typeof err !== \"object\") {\n return false;\n }\n if (!(\"stack\" in err)) {\n return false;\n }\n if (typeof err.stack !== \"string\") {\n return false;\n }\n if (!(\"message\" in err)) {\n return false;\n }\n if (typeof err.message !== \"string\") {\n return false;\n }\n return true;\n};\nfunction cancelRenderInternal(scope, err) {\n let error;\n if (isErrorLike(err)) {\n error = err;\n if (!error.stack) {\n error.stack = new Error(error.message).stack;\n }\n } else if (typeof err === \"string\") {\n error = Error(err);\n } else {\n error = Error(\"Rendering was cancelled\");\n }\n if (scope) {\n scope.remotion_cancelledError = getErrorStackWithMessage(error);\n }\n throw error;\n}\nfunction cancelRender(err) {\n return cancelRenderInternal(typeof window !== \"undefined\" ? window : undefined, err);\n}\n\n// src/get-remotion-environment.ts\nfunction getNodeEnvString() {\n return [\"NOD\", \"E_EN\", \"V\"].join(\"\");\n}\nvar getEnvString = () => {\n return [\"e\", \"nv\"].join(\"\");\n};\nvar getRemotionEnvironment = () => {\n const isPlayer = typeof window !== \"undefined\" && window.remotion_isPlayer;\n const isRendering = typeof window !== \"undefined\" && typeof window.process !== \"undefined\" && typeof window.process.env !== \"undefined\" && (window.process[getEnvString()][getNodeEnvString()] === \"test\" || window.process[getEnvString()][getNodeEnvString()] === \"production\" && typeof window !== \"undefined\" && typeof window.remotion_puppeteerTimeout !== \"undefined\");\n const isStudio = typeof window !== \"undefined\" && window.remotion_isStudio;\n const isReadOnlyStudio = typeof window !== \"undefined\" && window.remotion_isReadOnlyStudio;\n return {\n isStudio,\n isRendering,\n isPlayer,\n isReadOnlyStudio,\n isClientSideRendering: false\n };\n};\n\n// src/log.ts\nvar logLevels = [\"trace\", \"verbose\", \"info\", \"warn\", \"error\"];\nvar getNumberForLogLevel = (level) => {\n return logLevels.indexOf(level);\n};\nvar isEqualOrBelowLogLevel = (currentLevel, level) => {\n return getNumberForLogLevel(currentLevel) <= getNumberForLogLevel(level);\n};\nvar transformArgs = ({\n args,\n logLevel,\n tag\n}) => {\n const arr = [...args];\n if (getRemotionEnvironment().isRendering && !getRemotionEnvironment().isClientSideRendering) {\n arr.unshift(Symbol.for(`__remotion_level_${logLevel}`));\n }\n if (tag && getRemotionEnvironment().isRendering && !getRemotionEnvironment().isClientSideRendering) {\n arr.unshift(Symbol.for(`__remotion_tag_${tag}`));\n }\n return arr;\n};\nvar verbose = (options, ...args) => {\n if (isEqualOrBelowLogLevel(options.logLevel, \"verbose\")) {\n return console.debug(...transformArgs({ args, logLevel: \"verbose\", tag: options.tag }));\n }\n};\nvar trace = (options, ...args) => {\n if (isEqualOrBelowLogLevel(options.logLevel, \"trace\")) {\n return console.debug(...transformArgs({ args, logLevel: \"trace\", tag: options.tag }));\n }\n};\nvar info = (options, ...args) => {\n if (isEqualOrBelowLogLevel(options.logLevel, \"info\")) {\n return console.log(...transformArgs({ args, logLevel: \"info\", tag: options.tag }));\n }\n};\nvar warn = (options, ...args) => {\n if (isEqualOrBelowLogLevel(options.logLevel, \"warn\")) {\n return console.warn(...transformArgs({ args, logLevel: \"warn\", tag: options.tag }));\n }\n};\nvar error = (options, ...args) => {\n return console.error(...transformArgs({ args, logLevel: \"error\", tag: options.tag }));\n};\nvar Log = {\n trace,\n verbose,\n info,\n warn,\n error\n};\n\n// src/delay-render.ts\nif (typeof window !== \"undefined\") {\n window.remotion_renderReady = false;\n if (!window.remotion_delayRenderTimeouts) {\n window.remotion_delayRenderTimeouts = {};\n }\n window.remotion_delayRenderHandles = [];\n}\nvar DELAY_RENDER_CALLSTACK_TOKEN = \"The delayRender was called:\";\nvar DELAY_RENDER_RETRIES_LEFT = \"Retries left: \";\nvar DELAY_RENDER_RETRY_TOKEN = \"- Rendering the frame will be retried.\";\nvar DELAY_RENDER_CLEAR_TOKEN = \"handle was cleared after\";\nvar defaultTimeout = 30000;\nvar delayRenderInternal = ({\n scope,\n environment,\n label,\n options\n}) => {\n if (typeof label !== \"string\" && label !== null) {\n throw new Error(\"The label parameter of delayRender() must be a string or undefined, got: \" + JSON.stringify(label));\n }\n const handle = Math.random();\n scope.remotion_delayRenderHandles.push(handle);\n const called = Error().stack?.replace(/^Error/g, \"\") ?? \"\";\n if (environment.isRendering) {\n const timeoutToUse = (options?.timeoutInMilliseconds ?? scope.remotion_puppeteerTimeout ?? defaultTimeout) - 2000;\n const retriesLeft = (options?.retries ?? 0) - (scope.remotion_attempt - 1);\n scope.remotion_delayRenderTimeouts[handle] = {\n label: label ?? null,\n startTime: Date.now(),\n timeout: setTimeout(() => {\n const message = [\n `A delayRender()`,\n label ? `\"${label}\"` : null,\n `was called but not cleared after ${timeoutToUse}ms. See https://remotion.dev/docs/timeout for help.`,\n retriesLeft > 0 ? DELAY_RENDER_RETRIES_LEFT + retriesLeft : null,\n retriesLeft > 0 ? DELAY_RENDER_RETRY_TOKEN : null,\n DELAY_RENDER_CALLSTACK_TOKEN,\n called\n ].filter(truthy).join(\" \");\n if (environment.isClientSideRendering) {\n scope.remotion_cancelledError = getErrorStackWithMessage(Error(message));\n } else {\n cancelRenderInternal(scope, Error(message));\n }\n }, timeoutToUse)\n };\n }\n scope.remotion_renderReady = false;\n return handle;\n};\nvar delayRender = (label, options) => {\n if (typeof window === \"undefined\") {\n return Math.random();\n }\n return delayRenderInternal({\n scope: window,\n environment: getRemotionEnvironment(),\n label: label ?? null,\n options: options ?? {}\n });\n};\nvar continueRenderInternal = ({\n scope,\n handle,\n environment,\n logLevel\n}) => {\n if (typeof handle === \"undefined\") {\n throw new TypeError(\"The continueRender() method must be called with a parameter that is the return value of delayRender(). No value was passed.\");\n }\n if (typeof handle !== \"number\") {\n throw new TypeError(\"The parameter passed into continueRender() must be the return value of delayRender() which is a number. Got: \" + JSON.stringify(handle));\n }\n scope.remotion_delayRenderHandles = scope.remotion_delayRenderHandles.filter((h) => {\n if (h === handle) {\n if (environment.isRendering && scope !== undefined) {\n if (!scope.remotion_delayRenderTimeouts[handle]) {\n return false;\n }\n const { label, startTime, timeout } = scope.remotion_delayRenderTimeouts[handle];\n clearTimeout(timeout);\n const message = [\n label ? `\"${label}\"` : \"A handle\",\n DELAY_RENDER_CLEAR_TOKEN,\n `${Date.now() - startTime}ms`\n ].filter(truthy).join(\" \");\n Log.verbose({ logLevel, tag: \"delayRender()\" }, message);\n delete scope.remotion_delayRenderTimeouts[handle];\n }\n return false;\n }\n return true;\n });\n if (scope.remotion_delayRenderHandles.length === 0) {\n scope.remotion_renderReady = true;\n }\n};\nvar continueRender = (handle) => {\n if (typeof window === \"undefined\") {\n return;\n }\n continueRenderInternal({\n scope: window,\n handle,\n environment: getRemotionEnvironment(),\n logLevel: window.remotion_logLevel ?? \"info\"\n });\n};\n\n// src/log-level-context.tsx\nimport { createContext as createContext4 } from \"react\";\nimport * as React2 from \"react\";\nvar LogLevelContext = createContext4({\n logLevel: \"info\",\n mountTime: 0\n});\nvar useLogLevel = () => {\n const { logLevel } = React2.useContext(LogLevelContext);\n if (logLevel === null) {\n throw new Error(\"useLogLevel must be used within a LogLevelProvider\");\n }\n return logLevel;\n};\nvar useMountTime = () => {\n const { mountTime } = React2.useContext(LogLevelContext);\n if (mountTime === null) {\n throw new Error(\"useMountTime must be used within a LogLevelProvider\");\n }\n return mountTime;\n};\n\n// src/use-remotion-environment.ts\nimport { useContext as useContext3, useState } from \"react\";\n\n// src/remotion-environment-context.ts\nimport React3 from \"react\";\nvar RemotionEnvironmentContext = React3.createContext(null);\n\n// src/use-remotion-environment.ts\nvar useRemotionEnvironment = () => {\n const context = useContext3(RemotionEnvironmentContext);\n const [env] = useState(() => getRemotionEnvironment());\n return context ?? env;\n};\n\n// src/use-delay-render.tsx\nvar DelayRenderContextType = createContext5(null);\nvar useDelayRender = () => {\n const environment = useRemotionEnvironment();\n const scope = useContext4(DelayRenderContextType) ?? (typeof window !== \"undefined\" ? window : undefined);\n const logLevel = useLogLevel();\n const delayRender2 = useCallback((label, options) => {\n if (!scope) {\n return Math.random();\n }\n return delayRenderInternal({\n scope,\n environment,\n label: label ?? null,\n options: options ?? {}\n });\n }, [environment, scope]);\n const continueRender2 = useCallback((handle) => {\n if (!scope) {\n return;\n }\n continueRenderInternal({\n scope,\n handle,\n environment,\n logLevel\n });\n }, [environment, logLevel, scope]);\n const cancelRender2 = useCallback((err) => {\n return cancelRenderInternal(scope ?? (typeof window !== \"undefined\" ? window : undefined), err);\n }, [scope]);\n return { delayRender: delayRender2, continueRender: continueRender2, cancelRender: cancelRender2 };\n};\n\n// src/TimelineContext.tsx\nimport { jsx as jsx3 } from \"react/jsx-runtime\";\nvar SetTimelineContext = createContext6({\n setFrame: () => {\n throw new Error(\"default\");\n },\n setPlaying: () => {\n throw new Error(\"default\");\n }\n});\nvar TimelineContext = createContext6(null);\nvar AbsoluteTimeContext = createContext6(null);\nvar TimelineContextProvider = ({ children, frameState }) => {\n const [playing, setPlaying] = useState2(false);\n const imperativePlaying = useRef(false);\n const [playbackRate, setPlaybackRate] = useState2(1);\n const audioAndVideoTags = useRef([]);\n const [remotionRootId] = useState2(() => String(random(null)));\n const [_frame, setFrame] = useState2(() => getInitialFrameState());\n const frame = frameState ?? _frame;\n const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();\n if (typeof window !== \"undefined\") {\n useLayoutEffect(() => {\n window.remotion_setFrame = (f, composition, attempt) => {\n window.remotion_attempt = attempt;\n const id = delayRender2(`Setting the current frame to ${f}`);\n let asyncUpdate = true;\n setFrame((s) => {\n const currentFrame = s[composition] ?? window.remotion_initialFrame;\n if (currentFrame === f) {\n asyncUpdate = false;\n return s;\n }\n return {\n ...s,\n [composition]: f\n };\n });\n if (asyncUpdate) {\n requestAnimationFrame(() => continueRender2(id));\n } else {\n continueRender2(id);\n }\n };\n window.remotion_isPlayer = false;\n }, [continueRender2, delayRender2]);\n }\n const timelineContextValue = useMemo2(() => {\n return {\n frame,\n playing,\n imperativePlaying,\n rootId: remotionRootId,\n playbackRate,\n setPlaybackRate,\n audioAndVideoTags\n };\n }, [frame, playbackRate, playing, remotionRootId]);\n const setTimelineContextValue = useMemo2(() => {\n return {\n setFrame,\n setPlaying\n };\n }, []);\n return /* @__PURE__ */ jsx3(AbsoluteTimeContext.Provider, {\n value: timelineContextValue,\n children: /* @__PURE__ */ jsx3(TimelineContext.Provider, {\n value: timelineContextValue,\n children: /* @__PURE__ */ jsx3(SetTimelineContext.Provider, {\n value: setTimelineContextValue,\n children\n })\n })\n });\n};\n\n// src/use-video.ts\nimport { useContext as useContext6, useMemo as useMemo5 } from \"react\";\n\n// src/CompositionManagerContext.tsx\nimport { createContext as createContext7 } from \"react\";\nvar CompositionManager = createContext7({\n compositions: [],\n folders: [],\n currentCompositionMetadata: null,\n canvasContent: null\n});\nvar CompositionSetters = createContext7({\n registerComposition: () => {\n return;\n },\n unregisterComposition: () => {\n return;\n },\n registerFolder: () => {\n return;\n },\n unregisterFolder: () => {\n return;\n },\n setCanvasContent: () => {\n return;\n },\n onlyRenderComposition: null\n});\n\n// src/ResolveCompositionConfig.tsx\nimport { createContext as createContext9, createRef, useContext as useContext5, useMemo as useMemo4 } from \"react\";\n\n// src/input-props-override.ts\nvar getKey = () => {\n return `remotion_inputPropsOverride` + window.location.origin;\n};\nvar getInputPropsOverride = () => {\n if (typeof localStorage === \"undefined\")\n return null;\n const override = localStorage.getItem(getKey());\n if (!override)\n return null;\n return JSON.parse(override);\n};\nvar setInputPropsOverride = (override) => {\n if (typeof localStorage === \"undefined\")\n return;\n if (override === null) {\n localStorage.removeItem(getKey());\n return;\n }\n localStorage.setItem(getKey(), JSON.stringify(override));\n};\n\n// src/input-props-serialization.ts\nvar DATE_TOKEN = \"remotion-date:\";\nvar FILE_TOKEN = \"remotion-file:\";\nvar serializeJSONWithSpecialTypes = ({\n data,\n indent,\n staticBase\n}) => {\n let customDateUsed = false;\n let customFileUsed = false;\n let mapUsed = false;\n let setUsed = false;\n try {\n const serializedString = JSON.stringify(data, function(key, value) {\n const item = this[key];\n if (item instanceof Date) {\n customDateUsed = true;\n return `${DATE_TOKEN}${item.toISOString()}`;\n }\n if (item instanceof Map) {\n mapUsed = true;\n return value;\n }\n if (item instanceof Set) {\n setUsed = true;\n return value;\n }\n if (typeof item === \"string\" && staticBase !== null && item.startsWith(staticBase)) {\n customFileUsed = true;\n return `${FILE_TOKEN}${item.replace(staticBase + \"/\", \"\")}`;\n }\n return value;\n }, indent);\n return { serializedString, customDateUsed, customFileUsed, mapUsed, setUsed };\n } catch (err) {\n throw new Error(\"Could not serialize the passed input props to JSON: \" + err.message);\n }\n};\nvar deserializeJSONWithSpecialTypes = (data) => {\n return JSON.parse(data, (_, value) => {\n if (typeof value === \"string\" && value.startsWith(DATE_TOKEN)) {\n return new Date(value.replace(DATE_TOKEN, \"\"));\n }\n if (typeof value === \"string\" && value.startsWith(FILE_TOKEN)) {\n return `${window.remotion_staticBase}/${value.replace(FILE_TOKEN, \"\")}`;\n }\n return value;\n });\n};\nvar serializeThenDeserialize = (props) => {\n return deserializeJSONWithSpecialTypes(serializeJSONWithSpecialTypes({\n data: props,\n indent: 2,\n staticBase: window.remotion_staticBase\n }).serializedString);\n};\nvar serializeThenDeserializeInStudio = (props) => {\n if (getRemotionEnvironment().isStudio) {\n return serializeThenDeserialize(props);\n }\n return props;\n};\n\n// src/config/input-props.ts\nvar didWarnSSRImport = false;\nvar warnOnceSSRImport = () => {\n if (didWarnSSRImport) {\n return;\n }\n didWarnSSRImport = true;\n console.warn(\"Called `getInputProps()` on the server. This function is not available server-side and has returned an empty object.\");\n console.warn(\"To hide this warning, don't call this function on the server:\");\n console.warn(\" typeof window === 'undefined' ? {} : getInputProps()\");\n};\nvar getInputProps = () => {\n if (typeof window === \"undefined\") {\n warnOnceSSRImport();\n return {};\n }\n if (getRemotionEnvironment().isPlayer) {\n throw new Error(\"You cannot call `getInputProps()` from a <Player>. Instead, the props are available as React props from component that you passed as `component` prop.\");\n }\n const override = getInputPropsOverride();\n if (override) {\n return override;\n }\n if (typeof window === \"undefined\" || typeof window.remotion_inputProps === \"undefined\") {\n throw new Error(\"Cannot call `getInputProps()` - window.remotion_inputProps is not set. This API is only available if you are in the Studio, or while you are rendering server-side.\");\n }\n const param = window.remotion_inputProps;\n if (!param) {\n return {};\n }\n const parsed = deserializeJSONWithSpecialTypes(param);\n return parsed;\n};\n\n// src/EditorProps.tsx\nimport React5, { createContext as createContext8, useCallback as useCallback2, useMemo as useMemo3 } from \"react\";\nimport { jsx as jsx4 } from \"react/jsx-runtime\";\nvar EditorPropsContext = createContext8({\n props: {},\n updateProps: () => {\n throw new Error(\"Not implemented\");\n }\n});\nvar timeValueRef = React5.createRef();\nvar EditorPropsProvider = ({ children }) => {\n const [props, setProps] = React5.useState({});\n const updateProps = useCallback2(({\n defaultProps,\n id,\n newProps\n }) => {\n setProps((prev) => {\n return {\n ...prev,\n [id]: typeof newProps === \"function\" ? newProps(prev[id] ?? defaultProps) : newProps\n };\n });\n }, []);\n const ctx = useMemo3(() => {\n return { props, updateProps };\n }, [props, updateProps]);\n return /* @__PURE__ */ jsx4(EditorPropsContext.Provider, {\n value: ctx,\n children\n });\n};\n\n// src/validation/validate-dimensions.ts\nfunction validateDimension(amount, nameOfProp, location) {\n if (typeof amount !== \"number\") {\n throw new Error(`The \"${nameOfProp}\" prop ${location} must be a number, but you passed a value of type ${typeof amount}`);\n }\n if (isNaN(amount)) {\n throw new TypeError(`The \"${nameOfProp}\" prop ${location} must not be NaN, but is NaN.`);\n }\n if (!Number.isFinite(amount)) {\n throw new TypeError(`The \"${nameOfProp}\" prop ${location} must be finite, but is ${amount}.`);\n }\n if (amount % 1 !== 0) {\n throw new TypeError(`The \"${nameOfProp}\" prop ${location} must be an integer, but is ${amount}.`);\n }\n if (amount <= 0) {\n throw new TypeError(`The \"${nameOfProp}\" prop ${location} must be positive, but got ${amount}.`);\n }\n}\n\n// src/validation/validate-duration-in-frames.ts\nfunction validateDurationInFrames(durationInFrames, options) {\n const { allowFloats, component } = options;\n if (typeof durationInFrames === \"undefined\") {\n throw new Error(`The \"durationInFrames\" prop ${component} is missing.`);\n }\n if (typeof durationInFrames !== \"number\") {\n throw new Error(`The \"durationInFrames\" prop ${component} must be a number, but you passed a value of type ${typeof durationInFrames}`);\n }\n if (durationInFrames <= 0) {\n throw new TypeError(`The \"durationInFrames\" prop ${component} must be positive, but got ${durationInFrames}.`);\n }\n if (!allowFloats && durationInFrames % 1 !== 0) {\n throw new TypeError(`The \"durationInFrames\" prop ${component} must be an integer, but got ${durationInFrames}.`);\n }\n if (!Number.isFinite(durationInFrames)) {\n throw new TypeError(`The \"durationInFrames\" prop ${component} must be finite, but got ${durationInFrames}.`);\n }\n}\n\n// src/validation/validate-fps.ts\nfunction validateFps(fps, location, isGif) {\n if (typeof fps !== \"number\") {\n throw new Error(`\"fps\" must be a number, but you passed a value of type ${typeof fps} ${location}`);\n }\n if (!Number.isFinite(fps)) {\n throw new Error(`\"fps\" must be a finite, but you passed ${fps} ${location}`);\n }\n if (isNaN(fps)) {\n throw new Error(`\"fps\" must not be NaN, but got ${fps} ${location}`);\n }\n if (fps <= 0) {\n throw new TypeError(`\"fps\" must be positive, but got ${fps} ${location}`);\n }\n if (isGif && fps > 50) {\n throw new TypeError(`The FPS for a GIF cannot be higher than 50. Use the --every-nth-frame option to lower the FPS: https://remotion.dev/docs/render-as-gif`);\n }\n}\n\n// src/ResolveCompositionConfig.tsx\nvar ResolveCompositionContext = createContext9(null);\nvar resolveCompositionsRef = createRef();\nvar needsResolution = (composition) => {\n return Boolean(composition.calculateMetadata);\n};\nvar useResolvedVideoConfig = (preferredCompositionId) => {\n const context = useContext5(ResolveCompositionContext);\n const { props: allEditorProps } = useContext5(EditorPropsContext);\n const { compositions, canvasContent, currentCompositionMetadata } = useContext5(CompositionManager);\n const currentComposition = canvasContent?.type === \"composition\" ? canvasContent.compositionId : null;\n const compositionId = preferredCompositionId ?? currentComposition;\n const composition = compositions.find((c) => c.id === compositionId);\n const selectedEditorProps = useMemo4(() => {\n return composition ? allEditorProps[composition.id] ?? {} : {};\n }, [allEditorProps, composition]);\n const env = useRemotionEnvironment();\n return useMemo4(() => {\n if (!composition) {\n return null;\n }\n if (currentCompositionMetadata) {\n return {\n type: \"success\",\n result: {\n ...currentCompositionMetadata,\n id: composition.id,\n defaultProps: composition.defaultProps ?? {}\n }\n };\n }\n if (!needsResolution(composition)) {\n validateDurationInFrames(composition.durationInFrames, {\n allowFloats: false,\n component: `in <Composition id=\"${composition.id}\">`\n });\n validateFps(composition.fps, `in <Composition id=\"${composition.id}\">`, false);\n validateDimension(composition.width, \"width\", `in <Composition id=\"${composition.id}\">`);\n validateDimension(composition.height, \"height\", `in <Composition id=\"${composition.id}\">`);\n return {\n type: \"success\",\n result: {\n width: composition.width,\n height: composition.height,\n fps: composition.fps,\n id: composition.id,\n durationInFrames: composition.durationInFrames,\n defaultProps: composition.defaultProps ?? {},\n props: {\n ...composition.defaultProps ?? {},\n ...selectedEditorProps ?? {},\n ...typeof window === \"undefined\" || env.isPlayer || !window.remotion_inputProps ? {} : getInputProps() ?? {}\n },\n defaultCodec: null,\n defaultOutName: null,\n defaultVideoImageFormat: null,\n defaultPixelFormat: null,\n defaultProResProfile: null\n }\n };\n }\n if (!context) {\n return null;\n }\n if (!context[composition.id]) {\n return null;\n }\n return context[composition.id];\n }, [\n composition,\n context,\n currentCompositionMetadata,\n selectedEditorProps,\n env.isPlayer\n ]);\n};\n\n// src/use-video.ts\nvar useVideo = () => {\n const { canvasContent, compositions, currentCompositionMetadata } = useContext6(CompositionManager);\n const selected = compositions.find((c) => {\n return canvasContent?.type === \"composition\" && c.id === canvasContent.compositionId;\n });\n const resolved = useResolvedVideoConfig(selected?.id ?? null);\n return useMemo5(() => {\n if (!resolved) {\n return null;\n }\n if (resolved.type === \"error\") {\n return null;\n }\n if (resolved.type === \"loading\") {\n return null;\n }\n if (!selected) {\n return null;\n }\n return {\n ...resolved.result,\n defaultProps: selected.defaultProps ?? {},\n id: selected.id,\n ...currentCompositionMetadata ?? {},\n component: selected.component\n };\n }, [currentCompositionMetadata, resolved, selected]);\n};\n\n// src/timeline-position-state.ts\nvar makeKey = () => {\n return `remotion.time-all`;\n};\nvar persistCurrentFrame = (time) => {\n localStorage.setItem(makeKey(), JSON.stringify(time));\n};\nvar getInitialFrameState = () => {\n const item = localStorage.getItem(makeKey()) ?? \"{}\";\n const obj = JSON.parse(item);\n return obj;\n};\nvar getFrameForComposition = (composition) => {\n const item = localStorage.getItem(makeKey()) ?? \"{}\";\n const obj = JSON.parse(item);\n if (obj[composition] !== undefined) {\n return Number(obj[composition]);\n }\n if (typeof window === \"undefined\") {\n return 0;\n }\n return window.remotion_initialFrame ?? 0;\n};\nvar useTimelinePositionFromContext = (state) => {\n const videoConfig = useVideo();\n const env = useRemotionEnvironment();\n if (!videoConfig) {\n return typeof window === \"undefined\" ? 0 : window.remotion_initialFrame ?? 0;\n }\n const unclamped = state.frame[videoConfig.id] ?? (env.isPlayer ? 0 : getFrameForComposition(videoConfig.id));\n return Math.min(videoConfig.durationInFrames - 1, unclamped);\n};\nvar useTimelineContext = () => {\n const state = useContext7(TimelineContext);\n if (state === null) {\n throw new Error(\"TimelineContext is not available. This hook must be used inside a <Player> or the Remotion Studio.\");\n }\n return state;\n};\nvar useTimelinePosition = () => {\n const state = useTimelineContext();\n return useTimelinePositionFromContext(state);\n};\nvar useAbsoluteTimelinePosition = () => {\n const state = useContext7(AbsoluteTimeContext);\n if (state === null) {\n throw new Error(\"AbsoluteTimeContext is not available. This hook must be used inside a <Player> or the Remotion Studio.\");\n }\n return useTimelinePositionFromContext(state);\n};\nvar useTimelineSetFrame = () => {\n const { setFrame } = useContext7(SetTimelineContext);\n return setFrame;\n};\nvar usePlayingState = () => {\n const { playing, imperativePlaying } = useTimelineContext();\n const { setPlaying } = useContext7(SetTimelineContext);\n return useMemo6(() => [playing, setPlaying, imperativePlaying], [imperativePlaying, playing, setPlaying]);\n};\n\n// src/use-current-frame.ts\nimport { useContext as useContext8 } from \"react\";\n\n// src/CanUseRemotionHooks.tsx\nimport { createContext as createContext10 } from \"react\";\nimport { jsx as jsx5 } from \"react/jsx-runtime\";\nvar CanUseRemotionHooks = createContext10(false);\nvar CanUseRemotionHooksProvider = ({ children }) => {\n return /* @__PURE__ */ jsx5(CanUseRemotionHooks.Provider, {\n value: true,\n children\n });\n};\n\n// src/use-current-frame.ts\nvar useCurrentFrame = () => {\n const canUseRemotionHooks = useContext8(CanUseRemotionHooks);\n const env = useRemotionEnvironment();\n if (!canUseRemotionHooks) {\n if (env.isPlayer) {\n throw new Error(`useCurrentFrame can only be called inside a component that was passed to <Player>. See: https://www.remotion.dev/docs/player/examples`);\n }\n throw new Error(`useCurrentFrame() can only be called inside a component that was registered as a composition. See https://www.remotion.dev/docs/the-fundamentals#defining-compositions`);\n }\n const frame = useTimelinePosition();\n const context = useContext8(SequenceContext);\n const contextOffset = context ? context.cumulatedFrom + context.relativeFrom : 0;\n return frame - contextOffset;\n};\n\n// src/use-video-config.ts\nimport { useContext as useContext10 } from \"react\";\n\n// src/use-unsafe-video-config.ts\nimport { useContext as useContext9, useMemo as useMemo7 } from \"react\";\nvar useUnsafeVideoConfig = () => {\n const context = useContext9(SequenceContext);\n const ctxWidth = context?.width ?? null;\n const ctxHeight = context?.height ?? null;\n const ctxDuration = context?.durationInFrames ?? null;\n const video = useVideo();\n return useMemo7(() => {\n if (!video) {\n return null;\n }\n const {\n id,\n durationInFrames,\n fps,\n height,\n width,\n defaultProps,\n props,\n defaultCodec,\n defaultOutName,\n defaultVideoImageFormat,\n defaultPixelFormat,\n defaultProResProfile\n } = video;\n return {\n id,\n width: ctxWidth ?? width,\n height: ctxHeight ?? height,\n fps,\n durationInFrames: ctxDuration ?? durationInFrames,\n defaultProps,\n props,\n defaultCodec,\n defaultOutName,\n defaultVideoImageFormat,\n defaultPixelFormat,\n defaultProResProfile\n };\n }, [ctxDuration, ctxHeight, ctxWidth, video]);\n};\n\n// src/use-video-config.ts\nvar useVideoConfig = () => {\n const videoConfig = useUnsafeVideoConfig();\n const context = useContext10(CanUseRemotionHooks);\n const isPlayer = useIsPlayer();\n if (!videoConfig) {\n if (typeof window !== \"undefined\" && window.remotion_isPlayer || isPlayer) {\n throw new Error([\n \"No video config found. Likely reasons:\",\n \"- You are probably calling useVideoConfig() from outside the component passed to <Player />. See https://www.remotion.dev/docs/player/examples for how to set up the Player correctly.\",\n \"- You have multiple versions of Remotion installed which causes the React context to get lost.\"\n ].join(\"-\"));\n }\n throw new Error(\"No video config found. You are probably calling useVideoConfig() from a component which has not been registered as a <Composition />. See https://www.remotion.dev/docs/the-fundamentals#defining-compositions for more information.\");\n }\n if (!context) {\n throw new Error(\"Called useVideoConfig() outside a Remotion composition.\");\n }\n return videoConfig;\n};\n\n// src/freeze.tsx\nimport { jsx as jsx6 } from \"react/jsx-runtime\";\nvar Freeze = ({\n frame: frameToFreeze,\n children,\n active = true\n}) => {\n const frame = useCurrentFrame();\n const videoConfig = useVideoConfig();\n if (typeof frameToFreeze === \"undefined\") {\n throw new Error(`The <Freeze /> component requires a 'frame' prop, but none was passed.`);\n }\n if (typeof frameToFreeze !== \"number\") {\n throw new Error(`The 'frame' prop of <Freeze /> must be a number, but is of type ${typeof frameToFreeze}`);\n }\n if (Number.isNaN(frameToFreeze)) {\n throw new Error(`The 'frame' prop of <Freeze /> must be a real number, but it is NaN.`);\n }\n if (!Number.isFinite(frameToFreeze)) {\n throw new Error(`The 'frame' prop of <Freeze /> must be a finite number, but it is ${frameToFreeze}.`);\n }\n const isActive = useMemo8(() => {\n if (typeof active === \"boolean\") {\n return active;\n }\n if (typeof active === \"function\") {\n return active(frame);\n }\n }, [active, frame]);\n const timelineContext = useTimelineContext();\n const sequenceContext = useContext11(SequenceContext);\n const relativeFrom = sequenceContext?.relativeFrom ?? 0;\n const timelineValue = useMemo8(() => {\n if (!isActive) {\n return timelineContext;\n }\n return {\n ...timelineContext,\n playing: false,\n imperativePlaying: {\n current: false\n },\n frame: {\n [videoConfig.id]: frameToFreeze + relativeFrom\n }\n };\n }, [isActive, timelineContext, videoConfig.id, frameToFreeze, relativeFrom]);\n const newSequenceContext = useMemo8(() => {\n if (!sequenceContext) {\n return null;\n }\n if (!isActive) {\n return sequenceContext;\n }\n return {\n ...sequenceContext,\n cumulatedFrom: 0\n };\n }, [sequenceContext, isActive]);\n return /* @__PURE__ */ jsx6(TimelineContext.Provider, {\n value: timelineValue,\n children: /* @__PURE__ */ jsx6(SequenceContext.Provider, {\n value: newSequenceContext,\n children\n })\n });\n};\n\n// src/nonce.ts\nimport { createContext as createContext11, useCallback as useCallback3, useContext as useContext12, useMemo as useMemo9, useRef as useRef2 } from \"react\";\nvar NonceContext = createContext11({\n getNonce: () => 0\n});\nvar fastRefreshNonce = 0;\ntry {\n if (typeof __webpack_module__ !== \"undefined\") {\n if (__webpack_module__.hot) {\n __webpack_module__.hot.addStatusHandler((status) => {\n if (status === \"idle\") {\n fastRefreshNonce++;\n }\n });\n }\n }\n} catch {}\nvar useNonce = () => {\n const context = useContext12(NonceContext);\n const nonce = context.getNonce();\n const nonceRef = useRef2(nonce);\n nonceRef.current = nonce;\n const history = useRef2([[fastRefreshNonce, nonce]]);\n const get = useCallback3(() => {\n if (fastRefreshNonce !== history.current[history.current.length - 1][0]) {\n history.current = [\n ...history.current,\n [fastRefreshNonce, nonceRef.current]\n ];\n }\n return history.current;\n }, [history]);\n return useMemo9(() => {\n return { get };\n }, [get]);\n};\n\n// src/PremountContext.tsx\nimport { createContext as createContext12 } from \"react\";\nvar PremountContext = createContext12({\n premountFramesRemaining: 0,\n playing: false\n});\n\n// src/SequenceManager.tsx\nimport React8, { useCallback as useCallback4, useMemo as useMemo10, useRef as useRef3, useState as useState3 } from \"react\";\nimport { jsx as jsx7 } from \"react/jsx-runtime\";\nvar SequenceManager = React8.createContext({\n registerSequence: () => {\n throw new Error(\"SequenceManagerContext not initialized\");\n },\n unregisterSequence: () => {\n throw new Error(\"SequenceManagerContext not initialized\");\n },\n sequences: []\n});\nvar SequenceVisibilityToggleContext = React8.createContext({\n hidden: {},\n setHidden: () => {\n throw new Error(\"SequenceVisibilityToggle not initialized\");\n }\n});\nvar VisualModeOverridesContext = React8.createContext({\n dragOverrides: {},\n setDragOverrides: () => {\n throw new Error(\"VisualModeOverridesContext not initialized\");\n },\n clearDragOverrides: () => {\n throw new Error(\"VisualModeOverridesContext not initialized\");\n },\n codeValues: {},\n setCodeValues: () => {\n throw new Error(\"VisualModeOverridesContext not initialized\");\n },\n visualModeEnabled: false\n});\nvar SequenceManagerProvider = ({ children, visualModeEnabled }) => {\n const [sequences, setSequences] = useState3([]);\n const [hidden, setHidden] = useState3({});\n const [dragOverrides, setControlOverrides] = useState3({});\n const controlOverridesRef = useRef3(dragOverrides);\n controlOverridesRef.current = dragOverrides;\n const [codeValues, setCodeValuesMapState] = useState3({});\n const setDragOverrides = useCallback4((sequenceId, key, value) => {\n setControlOverrides((prev) => ({\n ...prev,\n [sequenceId]: {\n ...prev[sequenceId],\n [key]: value\n }\n }));\n }, []);\n const clearDragOverrides = useCallback4((sequenceId) => {\n setControlOverrides((prev) => {\n if (!prev[sequenceId]) {\n return prev;\n }\n const next = { ...prev };\n delete next[sequenceId];\n return next;\n });\n }, []);\n const setCodeValues = useCallback4((sequenceId, values) => {\n setCodeValuesMapState((prev) => {\n if (prev[sequenceId] === values) {\n return prev;\n }\n if (values === null) {\n if (!(sequenceId in prev)) {\n return prev;\n }\n const next = { ...prev };\n delete next[sequenceId];\n return next;\n }\n return { ...prev, [sequenceId]: values };\n });\n }, []);\n const registerSequence = useCallback4((seq) => {\n setSequences((seqs) => {\n return [...seqs, seq];\n });\n }, []);\n const unregisterSequence = useCallback4((seq) => {\n setSequences((seqs) => seqs.filter((s) => s.id !== seq));\n }, []);\n const sequenceContext = useMemo10(() => {\n return {\n registerSequence,\n sequences,\n unregisterSequence\n };\n }, [registerSequence, sequences, unregisterSequence]);\n const hiddenContext = useMemo10(() => {\n return {\n hidden,\n setHidden\n };\n }, [hidden]);\n const overrideContext = useMemo10(() => {\n return {\n visualModeEnabled,\n dragOverrides,\n setDragOverrides,\n clearDragOverrides,\n codeValues,\n setCodeValues\n };\n }, [\n visualModeEnabled,\n dragOverrides,\n setDragOverrides,\n clearDragOverrides,\n codeValues,\n setCodeValues\n ]);\n return /* @__PURE__ */ jsx7(SequenceManager.Provider, {\n value: sequenceContext,\n children: /* @__PURE__ */ jsx7(SequenceVisibilityToggleContext.Provider, {\n value: hiddenContext,\n children: /* @__PURE__ */ jsx7(VisualModeOverridesContext.Provider, {\n value: overrideContext,\n children\n })\n })\n });\n};\n\n// src/v5-flag.ts\nvar ENABLE_V5_BREAKING_CHANGES = false;\n\n// src/Sequence.tsx\nimport { jsx as jsx8 } from \"react/jsx-runtime\";\nvar RegularSequenceRefForwardingFunction = ({\n from = 0,\n durationInFrames = Infinity,\n children,\n name,\n height,\n width,\n showInTimeline = true,\n controls,\n _remotionInternalLoopDisplay: loopDisplay,\n _remotionInternalStack: stack,\n _remotionInternalPremountDisplay: premountDisplay,\n _remotionInternalPostmountDisplay: postmountDisplay,\n ...other\n}, ref) => {\n const { layout = \"absolute-fill\" } = other;\n const [id] = useState4(() => String(Math.random()));\n const parentSequence = useContext13(SequenceContext);\n const { rootId } = useTimelineContext();\n const cumulatedFrom = parentSequence ? parentSequence.cumulatedFrom + parentSequence.relativeFrom : 0;\n const nonce = useNonce();\n if (layout !== \"absolute-fill\" && layout !== \"none\") {\n throw new TypeError(`The layout prop of <Sequence /> expects either \"absolute-fill\" or \"none\", but you passed: ${layout}`);\n }\n if (layout === \"none\" && typeof other.style !== \"undefined\") {\n throw new TypeError('If layout=\"none\", you may not pass a style.');\n }\n if (typeof durationInFrames !== \"number\") {\n throw new TypeError(`You passed to durationInFrames an argument of type ${typeof durationInFrames}, but it must be a number.`);\n }\n if (durationInFrames <= 0) {\n throw new TypeError(`durationInFrames must be positive, but got ${durationInFrames}`);\n }\n if (typeof from !== \"number\") {\n throw new TypeError(`You passed to the \"from\" props of your <Sequence> an argument of type ${typeof from}, but it must be a number.`);\n }\n if (!Number.isFinite(from)) {\n throw new TypeError(`The \"from\" prop of a sequence must be finite, but got ${from}.`);\n }\n const absoluteFrame = useTimelinePosition();\n const videoConfig = useVideoConfig();\n const parentSequenceDuration = parentSequence ? Math.min(parentSequence.durationInFrames - from, durationInFrames) : durationInFrames;\n const actualDurationInFrames = Math.max(0, Math.min(videoConfig.durationInFrames - from, parentSequenceDuration));\n const { registerSequence, unregisterSequence } = useContext13(SequenceManager);\n const { hidden } = useContext13(SequenceVisibilityToggleContext);\n const premounting = useMemo11(() => {\n return parentSequence?.premounting || Boolean(other._remotionInternalIsPremounting);\n }, [other._remotionInternalIsPremounting, parentSequence?.premounting]);\n const postmounting = useMemo11(() => {\n return parentSequence?.postmounting || Boolean(other._remotionInternalIsPostmounting);\n }, [other._remotionInternalIsPostmounting, parentSequence?.postmounting]);\n const contextValue = useMemo11(() => {\n return {\n cumulatedFrom,\n relativeFrom: from,\n durationInFrames: actualDurationInFrames,\n parentFrom: parentSequence?.relativeFrom ?? 0,\n id,\n height: height ?? parentSequence?.height ?? null,\n width: width ?? parentSequence?.width ?? null,\n premounting,\n postmounting,\n premountDisplay: premountDisplay ?? null,\n postmountDisplay: postmountDisplay ?? null\n };\n }, [\n cumulatedFrom,\n from,\n actualDurationInFrames,\n parentSequence,\n id,\n height,\n width,\n premounting,\n postmounting,\n premountDisplay,\n postmountDisplay\n ]);\n const timelineClipName = useMemo11(() => {\n return name ?? \"\";\n }, [name]);\n const env = useRemotionEnvironment();\n const inheritedStack = other?.stack ?? null;\n useEffect(() => {\n if (!env.isStudio) {\n return;\n }\n registerSequence({\n from,\n duration: actualDurationInFrames,\n id,\n displayName: timelineClipName,\n parent: parentSequence?.id ?? null,\n type: \"sequence\",\n rootId,\n showInTimeline,\n nonce: nonce.get(),\n loopDisplay,\n stack: stack ?? inheritedStack,\n premountDisplay: premountDisplay ?? null,\n postmountDisplay: postmountDisplay ?? null,\n controls: controls ?? null\n });\n return () => {\n unregisterSequence(id);\n };\n }, [\n durationInFrames,\n id,\n name,\n registerSequence,\n timelineClipName,\n unregisterSequence,\n parentSequence?.id,\n actualDurationInFrames,\n rootId,\n from,\n showInTimeline,\n nonce,\n loopDisplay,\n stack,\n premountDisplay,\n postmountDisplay,\n env.isStudio,\n inheritedStack,\n controls\n ]);\n const endThreshold = Math.ceil(cumulatedFrom + from + durationInFrames - 1);\n const content = absoluteFrame < cumulatedFrom + from ? null : absoluteFrame > endThreshold ? null : children;\n const styleIfThere = other.layout === \"none\" ? undefined : other.style;\n const defaultStyle = useMemo11(() => {\n return {\n flexDirection: undefined,\n ...width ? { width } : {},\n ...height ? { height } : {},\n ...styleIfThere ?? {}\n };\n }, [height, styleIfThere, width]);\n if (ref !== null && layout === \"none\") {\n throw new TypeError('It is not supported to pass both a `ref` and `layout=\"none\"` to <Sequence />.');\n }\n const isSequenceHidden = hidden[id] ?? false;\n if (isSequenceHidden) {\n return null;\n }\n return /* @__PURE__ */ jsx8(SequenceContext.Provider, {\n value: contextValue,\n children: content === null ? null : other.layout === \"none\" ? content : /* @__PURE__ */ jsx8(AbsoluteFill, {\n ref,\n style: defaultStyle,\n className: other.className,\n children: content\n })\n });\n};\nvar RegularSequence = forwardRef2(RegularSequenceRefForwardingFunction);\nvar PremountedPostmountedSequenceRefForwardingFunction = (props, ref) => {\n const parentPremountContext = useContext13(PremountContext);\n const frame = useCurrentFrame() - parentPremountContext.premountFramesRemaining;\n if (props.layout === \"none\") {\n throw new Error('`<Sequence>` with `premountFor` and `postmountFor` props does not support layout=\"none\"');\n }\n const {\n style: passedStyle,\n from = 0,\n durationInFrames = Infinity,\n premountFor = 0,\n postmountFor = 0,\n styleWhilePremounted,\n styleWhilePostmounted,\n ...otherProps\n } = props;\n const endThreshold = Math.ceil(from + durationInFrames - 1);\n const premountingActive = frame < from && frame >= from - premountFor;\n const postmountingActive = frame > endThreshold && frame <= endThreshold + postmountFor;\n const freezeFrame = premountingActive ? from : postmountingActive ? from + durationInFrames - 1 : 0;\n const isFreezingActive = premountingActive || postmountingActive;\n const style = useMemo11(() => {\n return {\n ...passedStyle,\n opacity: premountingActive || postmountingActive ? 0 : 1,\n pointerEvents: premountingActive || postmountingActive ? \"none\" : passedStyle?.pointerEvents ?? undefined,\n ...premountingActive ? styleWhilePremounted : {},\n ...postmountingActive ? styleWhilePostmounted : {}\n };\n }, [\n passedStyle,\n premountingActive,\n postmountingActive,\n styleWhilePremounted,\n styleWhilePostmounted\n ]);\n const { playing } = useTimelineContext();\n const premountFramesRemaining = premountingActive ? from - frame : 0;\n const premountContextValue = useMemo11(() => {\n return {\n premountFramesRemaining,\n playing: parentPremountContext.playing || playing\n };\n }, [premountFramesRemaining, parentPremountContext.playing, playing]);\n return /* @__PURE__ */ jsx8(PremountContext.Provider, {\n value: premountContextValue,\n children: /* @__PURE__ */ jsx8(Freeze, {\n frame: freezeFrame,\n active: isFreezingActive,\n children: /* @__PURE__ */ jsx8(Sequence, {\n ref,\n from,\n durationInFrames,\n style,\n _remotionInternalPremountDisplay: premountFor,\n _remotionInternalPostmountDisplay: postmountFor,\n _remotionInternalIsPremounting: premountingActive,\n _remotionInternalIsPostmounting: postmountingActive,\n ...otherProps\n })\n })\n });\n};\nvar PremountedPostmountedSequence = forwardRef2(PremountedPostmountedSequenceRefForwardingFunction);\nvar SequenceRefForwardingFunction = (props, ref) => {\n const env = useRemotionEnvironment();\n const { fps } = useVideoConfig();\n if (props.layout !== \"none\" && !env.isRendering) {\n const effectivePremountFor = ENABLE_V5_BREAKING_CHANGES ? props.premountFor ?? fps : props.premountFor;\n if (effectivePremountFor || props.postmountFor) {\n return /* @__PURE__ */ jsx8(PremountedPostmountedSequence, {\n ref,\n ...props,\n premountFor: effectivePremountFor\n });\n }\n }\n return /* @__PURE__ */ jsx8(RegularSequence, {\n ...props,\n ref\n });\n};\nvar Sequence = forwardRef2(SequenceRefForwardingFunction);\n// src/animated-image/AnimatedImage.tsx\nimport {\n forwardRef as forwardRef3,\n useEffect as useEffect2,\n useImperativeHandle as useImperativeHandle2,\n useLayoutEffect as useLayoutEffect2,\n useRef as useRef5,\n useState as useState5\n} from \"react\";\n\n// src/animated-image/canvas.tsx\nimport React10, { useCallback as useCallback5, useImperativeHandle, useRef as useRef4 } from \"react\";\nimport { jsx as jsx9 } from \"react/jsx-runtime\";\nvar calcArgs = (fit, frameSize, canvasSize) => {\n switch (fit) {\n case \"fill\": {\n return [\n 0,\n 0,\n frameSize.width,\n frameSize.height,\n 0,\n 0,\n canvasSize.width,\n canvasSize.height\n ];\n }\n case \"contain\": {\n const ratio = Math.min(canvasSize.width / frameSize.width, canvasSize.height / frameSize.height);\n const centerX = (canvasSize.width - frameSize.width * ratio) / 2;\n const centerY = (canvasSize.height - frameSize.height * ratio) / 2;\n return [\n 0,\n 0,\n frameSize.width,\n frameSize.height,\n centerX,\n centerY,\n frameSize.width * ratio,\n frameSize.height * ratio\n ];\n }\n case \"cover\": {\n const ratio = Math.max(canvasSize.width / frameSize.width, canvasSize.height / frameSize.height);\n const centerX = (canvasSize.width - frameSize.width * ratio) / 2;\n const centerY = (canvasSize.height - frameSize.height * ratio) / 2;\n return [\n 0,\n 0,\n frameSize.width,\n frameSize.height,\n centerX,\n centerY,\n frameSize.width * ratio,\n frameSize.height * ratio\n ];\n }\n default:\n throw new Error(\"Unknown fit: \" + fit);\n }\n};\nvar CanvasRefForwardingFunction = ({ width, height, fit, className, style }, ref) => {\n const canvasRef = useRef4(null);\n const draw = useCallback5((imageData) => {\n const canvas = canvasRef.current;\n const canvasWidth = width ?? imageData.displayWidth;\n const canvasHeight = height ?? imageData.displayHeight;\n if (!canvas) {\n throw new Error(\"Canvas ref is not set\");\n }\n const ctx = canvasRef.current?.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Could not get 2d context\");\n }\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n ctx.drawImage(imageData, ...calcArgs(fit, {\n height: imageData.displayHeight,\n width: imageData.displayWidth\n }, {\n width: canvasWidth,\n height: canvasHeight\n }));\n }, [fit, height, width]);\n useImperativeHandle(ref, () => {\n return {\n draw,\n getCanvas: () => {\n if (!canvasRef.current) {\n throw new Error(\"Canvas ref is not set\");\n }\n return canvasRef.current;\n },\n clear: () => {\n const ctx = canvasRef.current?.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Could not get 2d context\");\n }\n ctx.clearRect(0, 0, canvasRef.current.width, canvasRef.current.height);\n }\n };\n }, [draw]);\n return /* @__PURE__ */ jsx9(\"canvas\", {\n ref: canvasRef,\n className,\n style\n });\n};\nvar Canvas = React10.forwardRef(CanvasRefForwardingFunction);\n\n// src/animated-image/decode-image.ts\nvar CACHE_SIZE = 5;\nvar getActualTime = ({\n loopBehavior,\n durationFound,\n timeInSec\n}) => {\n return loopBehavior === \"loop\" ? durationFound ? timeInSec % durationFound : timeInSec : Math.min(timeInSec, durationFound || Infinity);\n};\nvar decodeImage = async ({\n resolvedSrc,\n signal,\n currentTime,\n initialLoopBehavior\n}) => {\n if (typeof ImageDecoder === \"undefined\") {\n throw new Error(\"Your browser does not support the WebCodecs ImageDecoder API.\");\n }\n const res = await fetch(resolvedSrc, { signal });\n const { body } = res;\n if (!body) {\n throw new Error(\"Got no body\");\n }\n const decoder = new ImageDecoder({\n data: body,\n type: res.headers.get(\"Content-Type\") || \"image/gif\"\n });\n await decoder.completed;\n const { selectedTrack } = decoder.tracks;\n if (!selectedTrack) {\n throw new Error(\"No selected track\");\n }\n const cache = [];\n let durationFound = null;\n const getFrameByIndex = async (frameIndex) => {\n const foundInCache = cache.find((c) => c.frameIndex === frameIndex);\n if (foundInCache && foundInCache.frame) {\n return foundInCache;\n }\n const frame = await decoder.decode({\n frameIndex,\n completeFramesOnly: true\n });\n if (foundInCache) {\n foundInCache.frame = frame.image;\n } else {\n cache.push({\n frame: frame.image,\n frameIndex,\n timeInSeconds: frame.image.timestamp / 1e6\n });\n }\n return {\n frame: frame.image,\n frameIndex,\n timeInSeconds: frame.image.timestamp / 1e6\n };\n };\n const clearCache = (closeToTimeInSec) => {\n const itemsInCache = cache.filter((c) => c.frame);\n const sortByClosestToCurrentTime = itemsInCache.sort((a, b) => {\n const aDiff = Math.abs(a.timeInSeconds - closeToTimeInSec);\n const bDiff = Math.abs(b.timeInSeconds - closeToTimeInSec);\n return aDiff - bDiff;\n });\n for (let i = 0;i < sortByClosestToCurrentTime.length; i++) {\n if (i < CACHE_SIZE) {\n continue;\n }\n const item = sortByClosestToCurrentTime[i];\n item.frame = null;\n }\n };\n const ensureFrameBeforeAndAfter = async ({\n timeInSec,\n loopBehavior\n }) => {\n const actualTimeInSec = getActualTime({\n durationFound,\n loopBehavior,\n timeInSec\n });\n const framesBefore = cache.filter((c) => c.timeInSeconds <= actualTimeInSec);\n const biggestIndex = framesBefore.map((c) => c.frameIndex).reduce((a, b) => Math.max(a, b), 0);\n let i = biggestIndex;\n while (true) {\n const f = await getFrameByIndex(i);\n i++;\n if (!f.frame) {\n throw new Error(\"No frame found\");\n }\n if (!f.frame.duration) {\n break;\n }\n if (i === selectedTrack.frameCount && durationFound === null) {\n const duration = (f.frame.timestamp + f.frame.duration) / 1e6;\n durationFound = duration;\n }\n if (f.timeInSeconds > actualTimeInSec || i === selectedTrack.frameCount) {\n break;\n }\n }\n if (selectedTrack.frameCount - biggestIndex < 3 && loopBehavior === \"loop\") {\n await getFrameByIndex(0);\n }\n clearCache(actualTimeInSec);\n };\n await ensureFrameBeforeAndAfter({\n timeInSec: currentTime,\n loopBehavior: initialLoopBehavior\n });\n await ensureFrameBeforeAndAfter({\n timeInSec: currentTime,\n loopBehavior: initialLoopBehavior\n });\n const getFrame = async (timeInSec, loopBehavior) => {\n if (durationFound !== null && timeInSec > durationFound && loopBehavior === \"clear-after-finish\") {\n return null;\n }\n const actualTimeInSec = getActualTime({\n loopBehavior,\n durationFound,\n timeInSec\n });\n await ensureFrameBeforeAndAfter({ timeInSec: actualTimeInSec, loopBehavior });\n const itemsInCache = cache.filter((c) => c.frame);\n const closest = itemsInCache.reduce((a, b) => {\n const aDiff = Math.abs(a.timeInSeconds - actualTimeInSec);\n const bDiff = Math.abs(b.timeInSeconds - actualTimeInSec);\n return aDiff < bDiff ? a : b;\n });\n if (!closest.frame) {\n throw new Error(\"No frame found\");\n }\n return closest;\n };\n return {\n getFrame,\n frameCount: selectedTrack.frameCount\n };\n};\n\n// src/animated-image/resolve-image-source.tsx\nvar resolveAnimatedImageSource = (src) => {\n if (typeof window === \"undefined\") {\n return src;\n }\n return new URL(src, window.origin).href;\n};\n\n// src/animated-image/AnimatedImage.tsx\nimport { jsx as jsx10 } from \"react/jsx-runtime\";\nvar AnimatedImage = forwardRef3(({\n src,\n width,\n height,\n onError,\n loopBehavior = \"loop\",\n playbackRate = 1,\n fit = \"fill\",\n ...props\n}, canvasRef) => {\n const mountState = useRef5({ isMounted: true });\n useEffect2(() => {\n const { current } = mountState;\n current.isMounted = true;\n return () => {\n current.isMounted = false;\n };\n }, []);\n const resolvedSrc = resolveAnimatedImageSource(src);\n const [imageDecoder, setImageDecoder] = useState5(null);\n const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();\n const [decodeHandle] = useState5(() => delayRender2(`Rendering <AnimatedImage/> with src=\"${resolvedSrc}\"`));\n const frame = useCurrentFrame();\n const { fps } = useVideoConfig();\n const currentTime = frame / playbackRate / fps;\n const currentTimeRef = useRef5(currentTime);\n currentTimeRef.current = currentTime;\n const ref = useRef5(null);\n useImperativeHandle2(canvasRef, () => {\n const c = ref.current?.getCanvas();\n if (!c) {\n throw new Error(\"Canvas ref is not set\");\n }\n return c;\n }, []);\n const [initialLoopBehavior] = useState5(() => loopBehavior);\n useEffect2(() => {\n const controller = new AbortController;\n decodeImage({\n resolvedSrc,\n signal: controller.signal,\n currentTime: currentTimeRef.current,\n initialLoopBehavior\n }).then((d) => {\n setImageDecoder(d);\n continueRender2(decodeHandle);\n }).catch((err) => {\n if (err.name === \"AbortError\") {\n continueRender2(decodeHandle);\n return;\n }\n if (onError) {\n onError?.(err);\n continueRender2(decodeHandle);\n } else {\n cancelRender(err);\n }\n });\n return () => {\n controller.abort();\n };\n }, [\n resolvedSrc,\n decodeHandle,\n onError,\n initialLoopBehavior,\n continueRender2\n ]);\n useLayoutEffect2(() => {\n if (!imageDecoder) {\n return;\n }\n const delay = delayRender2(`Rendering frame at ${currentTime} of <AnimatedImage src=\"${src}\"/>`);\n imageDecoder.getFrame(currentTime, loopBehavior).then((videoFrame) => {\n if (mountState.current.isMounted) {\n if (videoFrame === null) {\n ref.current?.clear();\n } else {\n ref.current?.draw(videoFrame.frame);\n }\n }\n continueRender2(delay);\n }).catch((err) => {\n if (onError) {\n onError(err);\n continueRender2(delay);\n } else {\n cancelRender(err);\n }\n });\n }, [\n currentTime,\n imageDecoder,\n loopBehavior,\n onError,\n src,\n continueRender2,\n delayRender2\n ]);\n return /* @__PURE__ */ jsx10(Canvas, {\n ref,\n width,\n height,\n fit,\n ...props\n });\n});\n// src/Artifact.tsx\nimport { useContext as useContext14, useLayoutEffect as useLayoutEffect4, useState as useState7 } from \"react\";\n\n// src/RenderAssetManager.tsx\nimport {\n createContext as createContext13,\n useCallback as useCallback6,\n useImperativeHandle as useImperativeHandle3,\n useLayoutEffect as useLayoutEffect3,\n useMemo as useMemo12,\n useRef as useRef6,\n useState as useState6\n} from \"react\";\n\n// src/validation/validate-artifact.ts\nvar validateArtifactFilename = (filename) => {\n if (typeof filename !== \"string\") {\n throw new TypeError(`The \"filename\" must be a string, but you passed a value of type ${typeof filename}`);\n }\n if (filename.trim() === \"\") {\n throw new Error(\"The `filename` must not be empty\");\n }\n if (!filename.match(/^([0-9a-zA-Z-!_.*'()/:&$@=;+,?]+)/g)) {\n throw new Error('The `filename` must match \"/^([0-9a-zA-Z-!_.*\\'()/:&$@=;+,?]+)/g\". Use forward slashes only, even on Windows.');\n }\n};\nvar validateContent = (content) => {\n if (typeof content !== \"string\" && !(content instanceof Uint8Array)) {\n throw new TypeError(`The \"content\" must be a string or Uint8Array, but you passed a value of type ${typeof content}`);\n }\n if (typeof content === \"string\" && content.trim() === \"\") {\n throw new Error(\"The `content` must not be empty\");\n }\n};\nvar validateRenderAsset = (artifact) => {\n if (artifact.type !== \"artifact\") {\n return;\n }\n validateArtifactFilename(artifact.filename);\n if (artifact.contentType === \"thumbnail\") {\n return;\n }\n validateContent(artifact.content);\n};\n\n// src/RenderAssetManager.tsx\nimport { jsx as jsx11 } from \"react/jsx-runtime\";\nvar RenderAssetManager = createContext13({\n registerRenderAsset: () => {\n return;\n },\n unregisterRenderAsset: () => {\n return;\n },\n renderAssets: []\n});\nvar RenderAssetManagerProvider = ({ children, collectAssets }) => {\n const [renderAssets, setRenderAssets] = useState6([]);\n const renderAssetsRef = useRef6([]);\n const registerRenderAsset = useCallback6((renderAsset) => {\n validateRenderAsset(renderAsset);\n renderAssetsRef.current = [...renderAssetsRef.current, renderAsset];\n setRenderAssets(renderAssetsRef.current);\n }, []);\n if (collectAssets) {\n useImperativeHandle3(collectAssets, () => {\n return {\n collectAssets: () => {\n const assets = renderAssetsRef.current;\n renderAssetsRef.current = [];\n setRenderAssets([]);\n return assets;\n }\n };\n }, []);\n }\n const unregisterRenderAsset = useCallback6((id) => {\n renderAssetsRef.current = renderAssetsRef.current.filter((a) => a.id !== id);\n setRenderAssets(renderAssetsRef.current);\n }, []);\n useLayoutEffect3(() => {\n if (typeof window !== \"undefined\") {\n window.remotion_collectAssets = () => {\n const assets = renderAssetsRef.current;\n renderAssetsRef.current = [];\n setRenderAssets([]);\n return assets;\n };\n }\n }, []);\n const contextValue = useMemo12(() => {\n return {\n registerRenderAsset,\n unregisterRenderAsset,\n renderAssets\n };\n }, [renderAssets, registerRenderAsset, unregisterRenderAsset]);\n return /* @__PURE__ */ jsx11(RenderAssetManager.Provider, {\n value: contextValue,\n children\n });\n};\n\n// src/Artifact.tsx\nvar ArtifactThumbnail = Symbol(\"Thumbnail\");\nvar Artifact = ({ filename, content, downloadBehavior }) => {\n const { registerRenderAsset, unregisterRenderAsset } = useContext14(RenderAssetManager);\n const env = useRemotionEnvironment();\n const frame = useCurrentFrame();\n const [id] = useState7(() => {\n return String(Math.random());\n });\n useLayoutEffect4(() => {\n if (!env.isRendering) {\n return;\n }\n if (content instanceof Uint8Array) {\n registerRenderAsset({\n type: \"artifact\",\n id,\n content: btoa(new TextDecoder(\"utf8\").decode(content)),\n filename,\n frame,\n contentType: \"binary\",\n downloadBehavior: downloadBehavior ?? null\n });\n } else if (content === ArtifactThumbnail) {\n registerRenderAsset({\n type: \"artifact\",\n id,\n filename,\n frame,\n contentType: \"thumbnail\",\n downloadBehavior: downloadBehavior ?? null\n });\n } else {\n registerRenderAsset({\n type: \"artifact\",\n id,\n content,\n filename,\n frame,\n contentType: \"text\",\n downloadBehavior: downloadBehavior ?? null\n });\n }\n return () => {\n return unregisterRenderAsset(id);\n };\n }, [\n content,\n env.isRendering,\n filename,\n frame,\n id,\n registerRenderAsset,\n unregisterRenderAsset,\n downloadBehavior\n ]);\n return null;\n};\nArtifact.Thumbnail = ArtifactThumbnail;\n// src/audio/Audio.tsx\nimport { forwardRef as forwardRef6, useCallback as useCallback11, useContext as useContext26 } from \"react\";\n\n// src/absolute-src.ts\nvar getAbsoluteSrc = (relativeSrc) => {\n if (typeof window === \"undefined\") {\n return relativeSrc;\n }\n if (relativeSrc.startsWith(\"http://\") || relativeSrc.startsWith(\"https://\") || relativeSrc.startsWith(\"file://\") || relativeSrc.startsWith(\"blob:\") || relativeSrc.startsWith(\"data:\")) {\n return relativeSrc;\n }\n return new URL(relativeSrc, window.origin).href;\n};\n\n// src/calculate-media-duration.ts\nvar calculateMediaDuration = ({\n trimAfter,\n mediaDurationInFrames,\n playbackRate,\n trimBefore\n}) => {\n let duration = mediaDurationInFrames;\n if (typeof trimAfter !== \"undefined\") {\n duration = trimAfter;\n }\n if (typeof trimBefore !== \"undefined\") {\n duration -= trimBefore;\n }\n const actualDuration = duration / playbackRate;\n return Math.floor(actualDuration);\n};\n\n// src/loop/index.tsx\nimport React11, { createContext as createContext14, useMemo as useMemo13 } from \"react\";\nimport { jsx as jsx12 } from \"react/jsx-runtime\";\nvar LoopContext = createContext14(null);\nvar useLoop = () => {\n return React11.useContext(LoopContext);\n};\nvar Loop = ({ durationInFrames, times = Infinity, children, name, ...props }) => {\n const currentFrame = useCurrentFrame();\n const { durationInFrames: compDuration } = useVideoConfig();\n validateDurationInFrames(durationInFrames, {\n component: \"of the <Loop /> component\",\n allowFloats: true\n });\n if (typeof times !== \"number\") {\n throw new TypeError(`You passed to \"times\" an argument of type ${typeof times}, but it must be a number.`);\n }\n if (times !== Infinity && times % 1 !== 0) {\n throw new TypeError(`The \"times\" prop of a loop must be an integer, but got ${times}.`);\n }\n if (times < 0) {\n throw new TypeError(`The \"times\" prop of a loop must be at least 0, but got ${times}`);\n }\n const maxTimes = Math.ceil(compDuration / durationInFrames);\n const actualTimes = Math.min(maxTimes, times);\n const style = props.layout === \"none\" ? undefined : props.style;\n const maxFrame = durationInFrames * (actualTimes - 1);\n const iteration = Math.floor(currentFrame / durationInFrames);\n const start = iteration * durationInFrames;\n const from = Math.min(start, maxFrame);\n const loopDisplay = useMemo13(() => {\n return {\n numberOfTimes: Math.min(compDuration / durationInFrames, times),\n startOffset: -from,\n durationInFrames\n };\n }, [compDuration, durationInFrames, from, times]);\n const loopContext = useMemo13(() => {\n return {\n iteration: Math.floor(currentFrame / durationInFrames),\n durationInFrames\n };\n }, [currentFrame, durationInFrames]);\n return /* @__PURE__ */ jsx12(LoopContext.Provider, {\n value: loopContext,\n children: /* @__PURE__ */ jsx12(Sequence, {\n durationInFrames,\n from,\n name: name ?? \"<Loop>\",\n _remotionInternalLoopDisplay: loopDisplay,\n layout: props.layout,\n style,\n children\n })\n });\n};\nLoop.useLoop = useLoop;\n\n// src/prefetch.ts\nimport { useContext as useContext15 } from \"react\";\n\n// src/playback-logging.ts\nvar playbackLogging = ({\n logLevel,\n tag,\n message,\n mountTime\n}) => {\n const tags = [mountTime ? Date.now() - mountTime + \"ms \" : null, tag].filter(Boolean).join(\" \");\n Log.trace({ logLevel, tag: null }, `[${tags}]`, message);\n};\n\n// src/prefetch-state.tsx\nimport { createContext as createContext15, useEffect as useEffect3, useState as useState8 } from \"react\";\nimport { jsx as jsx13 } from \"react/jsx-runtime\";\nvar PreloadContext = createContext15({});\nvar preloads = {};\nvar updaters = [];\nvar setPreloads = (updater) => {\n preloads = updater(preloads);\n updaters.forEach((u) => u());\n};\nvar PrefetchProvider = ({ children }) => {\n const [_preloads, _setPreloads] = useState8(() => preloads);\n useEffect3(() => {\n const updaterFunction = () => {\n _setPreloads(preloads);\n };\n updaters.push(updaterFunction);\n return () => {\n updaters = updaters.filter((u) => u !== updaterFunction);\n };\n }, []);\n return /* @__PURE__ */ jsx13(PreloadContext.Provider, {\n value: _preloads,\n children\n });\n};\n\n// src/prefetch.ts\nvar removeAndGetHashFragment = (src) => {\n const hashIndex = src.indexOf(\"#\");\n if (hashIndex === -1) {\n return null;\n }\n return hashIndex;\n};\nvar getSrcWithoutHash = (src) => {\n const hashIndex = removeAndGetHashFragment(src);\n if (hashIndex === null) {\n return src;\n }\n return src.slice(0, hashIndex);\n};\nvar usePreload = (src) => {\n const preloads2 = useContext15(PreloadContext);\n const hashFragmentIndex = removeAndGetHashFragment(src);\n const withoutHashFragment = getSrcWithoutHash(src);\n if (!preloads2[withoutHashFragment]) {\n return src;\n }\n if (hashFragmentIndex !== null) {\n return preloads2[withoutHashFragment] + src.slice(hashFragmentIndex);\n }\n return preloads2[withoutHashFragment];\n};\nvar blobToBase64 = function(blob) {\n const reader = new FileReader;\n return new Promise((resolve, reject) => {\n reader.onload = function() {\n const dataUrl = reader.result;\n resolve(dataUrl);\n };\n reader.onerror = (err) => {\n return reject(err);\n };\n reader.readAsDataURL(blob);\n });\n};\nvar getBlobFromReader = async ({\n reader,\n contentType,\n contentLength,\n onProgress\n}) => {\n let receivedLength = 0;\n const chunks = [];\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n receivedLength += value.length;\n if (onProgress) {\n onProgress({ loadedBytes: receivedLength, totalBytes: contentLength });\n }\n }\n const chunksAll = new Uint8Array(receivedLength);\n let position = 0;\n for (const chunk of chunks) {\n chunksAll.set(chunk, position);\n position += chunk.length;\n }\n return new Blob([chunksAll], {\n type: contentType ?? undefined\n });\n};\nvar prefetch = (src, options) => {\n const method = options?.method ?? \"blob-url\";\n const logLevel = options?.logLevel ?? \"info\";\n const srcWithoutHash = getSrcWithoutHash(src);\n if (getRemotionEnvironment().isRendering) {\n return {\n free: () => {\n return;\n },\n waitUntilDone: () => Promise.resolve(srcWithoutHash)\n };\n }\n Log.verbose({ logLevel, tag: \"prefetch\" }, `Starting prefetch ${srcWithoutHash}`);\n let canceled = false;\n let objectUrl = null;\n let resolve = () => {\n return;\n };\n let reject = () => {\n return;\n };\n const waitUntilDone = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n const controller = new AbortController;\n let canBeAborted = true;\n fetch(srcWithoutHash, {\n signal: controller.signal,\n credentials: options?.credentials ?? undefined\n }).then((res) => {\n canBeAborted = false;\n if (canceled) {\n return null;\n }\n if (!res.ok) {\n throw new Error(`HTTP error, status = ${res.status}`);\n }\n const headerContentType = res.headers.get(\"Content-Type\");\n const contentType = options?.contentType ?? headerContentType;\n const hasProperContentType = contentType && (contentType.startsWith(\"video/\") || contentType.startsWith(\"audio/\") || contentType.startsWith(\"image/\"));\n if (!hasProperContentType) {\n console.warn(`Called prefetch() on ${srcWithoutHash} which returned a \"Content-Type\" of ${headerContentType}. Prefetched content should have a proper content type (video/... or audio/...) or a contentType passed the options of prefetch(). Otherwise, prefetching will not work properly in all browsers.`);\n }\n if (!res.body) {\n throw new Error(`HTTP response of ${srcWithoutHash} has no body`);\n }\n const reader = res.body.getReader();\n return getBlobFromReader({\n reader,\n contentType: options?.contentType ?? headerContentType ?? null,\n contentLength: res.headers.get(\"Content-Length\") ? parseInt(res.headers.get(\"Content-Length\"), 10) : null,\n onProgress: options?.onProgress\n });\n }).then((buf) => {\n if (!buf) {\n return;\n }\n const actualBlob = options?.contentType ? new Blob([buf], { type: options.contentType }) : buf;\n if (method === \"base64\") {\n return blobToBase64(actualBlob);\n }\n return URL.createObjectURL(actualBlob);\n }).then((url) => {\n if (canceled) {\n return;\n }\n playbackLogging({\n logLevel,\n tag: \"prefetch\",\n message: `Finished prefetch ${srcWithoutHash} with method ${method}`,\n mountTime: null\n });\n objectUrl = url;\n setPreloads((p) => ({\n ...p,\n [srcWithoutHash]: objectUrl\n }));\n resolve(objectUrl);\n }).catch((err) => {\n if (err?.message.includes(\"free() called\")) {\n return;\n }\n reject(err);\n });\n return {\n free: () => {\n playbackLogging({\n logLevel,\n tag: \"prefetch\",\n message: `Freeing ${srcWithoutHash}`,\n mountTime: null\n });\n if (objectUrl) {\n if (method === \"blob-url\") {\n URL.revokeObjectURL(objectUrl);\n }\n setPreloads((p) => {\n const copy = { ...p };\n delete copy[srcWithoutHash];\n return copy;\n });\n } else {\n canceled = true;\n if (canBeAborted) {\n try {\n controller.abort(new Error(\"free() called\"));\n } catch {}\n }\n }\n },\n waitUntilDone: () => {\n return waitUntilDone;\n }\n };\n};\n\n// src/validate-media-props.ts\nvar validateMediaProps = (props, component) => {\n if (typeof props.volume !== \"number\" && typeof props.volume !== \"function\" && typeof props.volume !== \"undefined\") {\n throw new TypeError(`You have passed a volume of type ${typeof props.volume} to your <${component} /> component. Volume must be a number or a function with the signature '(frame: number) => number' undefined.`);\n }\n if (typeof props.volume === \"number\" && props.volume < 0) {\n throw new TypeError(`You have passed a volume below 0 to your <${component} /> component. Volume must be between 0 and 1`);\n }\n if (typeof props.playbackRate !== \"number\" && typeof props.playbackRate !== \"undefined\") {\n throw new TypeError(`You have passed a playbackRate of type ${typeof props.playbackRate} to your <${component} /> component. Playback rate must a real number or undefined.`);\n }\n if (typeof props.playbackRate === \"number\" && (isNaN(props.playbackRate) || !Number.isFinite(props.playbackRate) || props.playbackRate <= 0)) {\n throw new TypeError(`You have passed a playbackRate of ${props.playbackRate} to your <${component} /> component. Playback rate must be a real number above 0.`);\n }\n};\n\n// src/validate-start-from-props.ts\nvar validateStartFromProps = (startFrom, endAt) => {\n if (typeof startFrom !== \"undefined\") {\n if (typeof startFrom !== \"number\") {\n throw new TypeError(`type of startFrom prop must be a number, instead got type ${typeof startFrom}.`);\n }\n if (isNaN(startFrom) || startFrom === Infinity) {\n throw new TypeError(\"startFrom prop can not be NaN or Infinity.\");\n }\n if (startFrom < 0) {\n throw new TypeError(`startFrom must be greater than equal to 0 instead got ${startFrom}.`);\n }\n }\n if (typeof endAt !== \"undefined\") {\n if (typeof endAt !== \"number\") {\n throw new TypeError(`type of endAt prop must be a number, instead got type ${typeof endAt}.`);\n }\n if (isNaN(endAt)) {\n throw new TypeError(\"endAt prop can not be NaN.\");\n }\n if (endAt <= 0) {\n throw new TypeError(`endAt must be a positive number, instead got ${endAt}.`);\n }\n }\n if (endAt < startFrom) {\n throw new TypeError(\"endAt prop must be greater than startFrom prop.\");\n }\n};\nvar validateTrimProps = (trimBefore, trimAfter) => {\n if (typeof trimBefore !== \"undefined\") {\n if (typeof trimBefore !== \"number\") {\n throw new TypeError(`type of trimBefore prop must be a number, instead got type ${typeof trimBefore}.`);\n }\n if (isNaN(trimBefore) || trimBefore === Infinity) {\n throw new TypeError(\"trimBefore prop can not be NaN or Infinity.\");\n }\n if (trimBefore < 0) {\n throw new TypeError(`trimBefore must be greater than equal to 0 instead got ${trimBefore}.`);\n }\n }\n if (typeof trimAfter !== \"undefined\") {\n if (typeof trimAfter !== \"number\") {\n throw new TypeError(`type of trimAfter prop must be a number, instead got type ${typeof trimAfter}.`);\n }\n if (isNaN(trimAfter)) {\n throw new TypeError(\"trimAfter prop can not be NaN.\");\n }\n if (trimAfter <= 0) {\n throw new TypeError(`trimAfter must be a positive number, instead got ${trimAfter}.`);\n }\n }\n if (trimAfter <= trimBefore) {\n throw new TypeError(\"trimAfter prop must be greater than trimBefore prop.\");\n }\n};\nvar validateMediaTrimProps = ({\n startFrom,\n endAt,\n trimBefore,\n trimAfter\n}) => {\n if (typeof startFrom !== \"undefined\" && typeof trimBefore !== \"undefined\") {\n throw new TypeError(\"Cannot use both startFrom and trimBefore props. Use trimBefore instead as startFrom is deprecated.\");\n }\n if (typeof endAt !== \"undefined\" && typeof trimAfter !== \"undefined\") {\n throw new TypeError(\"Cannot use both endAt and trimAfter props. Use trimAfter instead as endAt is deprecated.\");\n }\n const hasNewProps = typeof trimBefore !== \"undefined\" || typeof trimAfter !== \"undefined\";\n const hasOldProps = typeof startFrom !== \"undefined\" || typeof endAt !== \"undefined\";\n if (hasNewProps) {\n validateTrimProps(trimBefore, trimAfter);\n } else if (hasOldProps) {\n validateStartFromProps(startFrom, endAt);\n }\n};\nvar resolveTrimProps = ({\n startFrom,\n endAt,\n trimBefore,\n trimAfter\n}) => {\n const trimBeforeValue = trimBefore ?? startFrom ?? undefined;\n const trimAfterValue = trimAfter ?? endAt ?? undefined;\n return { trimBeforeValue, trimAfterValue };\n};\n\n// src/video/duration-state.tsx\nimport { createContext as createContext16, useMemo as useMemo14, useReducer } from \"react\";\nimport { jsx as jsx14 } from \"react/jsx-runtime\";\nvar durationReducer = (state, action) => {\n switch (action.type) {\n case \"got-duration\": {\n const absoluteSrc = getAbsoluteSrc(action.src);\n if (state[absoluteSrc] === action.durationInSeconds) {\n return state;\n }\n return {\n ...state,\n [absoluteSrc]: action.durationInSeconds\n };\n }\n default:\n return state;\n }\n};\nvar DurationsContext = createContext16({\n durations: {},\n setDurations: () => {\n throw new Error(\"context missing\");\n }\n});\nvar DurationsContextProvider = ({ children }) => {\n const [durations, setDurations] = useReducer(durationReducer, {});\n const value = useMemo14(() => {\n return {\n durations,\n setDurations\n };\n }, [durations]);\n return /* @__PURE__ */ jsx14(DurationsContext.Provider, {\n value,\n children\n });\n};\n\n// src/audio/AudioForPreview.tsx\nimport React17, {\n forwardRef as forwardRef4,\n useContext as useContext24,\n useEffect as useEffect10,\n useImperativeHandle as useImperativeHandle4,\n useMemo as useMemo22,\n useRef as useRef14,\n useState as useState13\n} from \"react\";\n\n// src/get-cross-origin-value.ts\nvar getCrossOriginValue = ({\n crossOrigin,\n requestsVideoFrame,\n isClientSideRendering\n}) => {\n if (crossOrigin !== undefined && crossOrigin !== null) {\n return crossOrigin;\n }\n if (isClientSideRendering) {\n return \"anonymous\";\n }\n if (requestsVideoFrame) {\n return \"anonymous\";\n }\n return;\n};\n\n// src/use-amplification.ts\nimport { useContext as useContext17, useLayoutEffect as useLayoutEffect5, useRef as useRef9 } from \"react\";\n\n// src/audio/shared-audio-tags.tsx\nimport React14, {\n createContext as createContext17,\n createRef as createRef2,\n useCallback as useCallback7,\n useContext as useContext16,\n useMemo as useMemo16,\n useRef as useRef7,\n useState as useState9\n} from \"react\";\n\n// src/play-and-handle-not-allowed-error.ts\nvar playAndHandleNotAllowedError = ({\n mediaRef,\n mediaType,\n onAutoPlayError,\n logLevel,\n mountTime,\n reason,\n isPlayer\n}) => {\n const { current } = mediaRef;\n if (!current) {\n return;\n }\n playbackLogging({\n logLevel,\n tag: \"play\",\n message: `Attempting to play ${current.src}. Reason: ${reason}`,\n mountTime\n });\n const prom = current.play();\n if (!prom.catch) {\n return;\n }\n prom.catch((err) => {\n if (!current) {\n return;\n }\n if (err.message.includes(\"request was interrupted by a call to pause\")) {\n return;\n }\n if (err.message.includes(\"The operation was aborted.\")) {\n return;\n }\n if (err.message.includes(\"The fetching process for the media resource was aborted by the user agent\")) {\n return;\n }\n if (err.message.includes(\"request was interrupted by a new load request\")) {\n return;\n }\n if (err.message.includes(\"because the media was removed from the document\")) {\n return;\n }\n if (err.message.includes(\"user didn't interact with the document\") && current.muted) {\n return;\n }\n console.log(`Could not play ${mediaType} due to following error: `, err);\n if (!current.muted) {\n if (onAutoPlayError) {\n onAutoPlayError();\n return;\n }\n if (mediaType === \"video\" && isPlayer) {\n Log.info({ logLevel, tag: \"<\" + mediaType + \">\" }, `The video will be muted and we'll retry playing it.`);\n Log.info({ logLevel, tag: \"<\" + mediaType + \">\" }, \"Use onAutoPlayError() to handle this error yourself.\");\n current.muted = true;\n current.play();\n }\n }\n });\n};\n\n// src/audio/shared-element-source-node.ts\nvar makeSharedElementSourceNode = ({\n audioContext,\n ref\n}) => {\n let connected = null;\n let disposed = false;\n return {\n attemptToConnect: () => {\n if (disposed) {\n throw new Error(\"SharedElementSourceNode has been disposed\");\n }\n if (!connected && ref.current) {\n const mediaElementSourceNode = audioContext.createMediaElementSource(ref.current);\n connected = mediaElementSourceNode;\n }\n },\n get: () => {\n if (!connected) {\n throw new Error(\"Audio element not connected\");\n }\n return connected;\n },\n cleanup: () => {\n if (connected) {\n connected.disconnect();\n connected = null;\n }\n disposed = true;\n }\n };\n};\n\n// src/audio/use-audio-context.ts\nimport { useMemo as useMemo15 } from \"react\";\nvar warned = false;\nvar warnOnce = (logLevel) => {\n if (warned) {\n return;\n }\n warned = true;\n if (typeof window !== \"undefined\") {\n Log.warn({ logLevel, tag: null }, \"AudioContext is not supported in this browser\");\n }\n};\nvar useSingletonAudioContext = ({\n logLevel,\n latencyHint,\n audioEnabled\n}) => {\n const env = useRemotionEnvironment();\n const audioContext = useMemo15(() => {\n if (env.isRendering) {\n return null;\n }\n if (!audioEnabled) {\n return null;\n }\n if (typeof AudioContext === \"undefined\") {\n warnOnce(logLevel);\n return null;\n }\n return new AudioContext({\n latencyHint,\n sampleRate: 48000\n });\n }, [logLevel, latencyHint, env.isRendering, audioEnabled]);\n return audioContext;\n};\n\n// src/audio/shared-audio-tags.tsx\nimport { jsx as jsx15, jsxs } from \"react/jsx-runtime\";\nvar EMPTY_AUDIO = \"data:audio/mp3;base64,/+MYxAAJcAV8AAgAABn//////+/gQ5BAMA+D4Pg+BAQBAEAwD4Pg+D4EBAEAQDAPg++hYBH///hUFQVBUFREDQNHmf///////+MYxBUGkAGIMAAAAP/29Xt6lUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV/+MYxDUAAANIAAAAAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV\";\nvar compareProps = (obj1, obj2) => {\n const keysA = Object.keys(obj1).sort();\n const keysB = Object.keys(obj2).sort();\n if (keysA.length !== keysB.length) {\n return false;\n }\n for (let i = 0;i < keysA.length; i++) {\n if (keysA[i] !== keysB[i]) {\n return false;\n }\n if (obj1[keysA[i]] !== obj2[keysB[i]]) {\n return false;\n }\n }\n return true;\n};\nvar didPropChange = (key, newProp, prevProp) => {\n if (key === \"src\" && !prevProp.startsWith(\"data:\") && !newProp.startsWith(\"data:\")) {\n return new URL(prevProp, window.origin).toString() !== new URL(newProp, window.origin).toString();\n }\n if (prevProp === newProp) {\n return false;\n }\n return true;\n};\nvar SharedAudioContext = createContext17(null);\nvar SharedAudioContextProvider = ({ children, numberOfAudioTags, audioLatencyHint, audioEnabled }) => {\n const audios = useRef7([]);\n const [initialNumberOfAudioTags] = useState9(numberOfAudioTags);\n if (numberOfAudioTags !== initialNumberOfAudioTags) {\n throw new Error(\"The number of shared audio tags has changed dynamically. Once you have set this property, you cannot change it afterwards.\");\n }\n const logLevel = useLogLevel();\n const audioContext = useSingletonAudioContext({\n logLevel,\n latencyHint: audioLatencyHint,\n audioEnabled\n });\n const audioSyncAnchor = useMemo16(() => ({ value: 0 }), []);\n const prevEndTimes = useRef7({ scheduledEndTime: null, mediaEndTime: null });\n const scheduleAudioNode = useMemo16(() => {\n return ({\n node,\n mediaTimestamp,\n targetTime,\n currentTime,\n sequenceEndTime,\n sequenceStartTime,\n debugAudioScheduling\n }) => {\n if (!audioContext) {\n throw new Error(\"Audio context not found\");\n }\n const bufferDuration = node.buffer?.duration ?? 0;\n const unclampedMediaEndTime = mediaTimestamp + bufferDuration;\n const needsTrimEnd = unclampedMediaEndTime > sequenceEndTime;\n const needsTrimStart = mediaTimestamp < sequenceStartTime;\n const offsetBecauseOfTrim = needsTrimStart ? sequenceStartTime - mediaTimestamp : 0;\n const offsetBecauseOfTooLate = targetTime < 0 ? -targetTime : 0;\n const offset = offsetBecauseOfTrim + offsetBecauseOfTooLate;\n const duration = needsTrimEnd ? bufferDuration - Math.max(0, unclampedMediaEndTime - sequenceEndTime) - offset : bufferDuration - offset;\n const scheduledTime = targetTime + currentTime + offset;\n if (offset < 0) {\n throw new Error(\"offset < 0: \" + JSON.stringify({\n offset,\n targetTime,\n currentTime,\n offsetBecauseOfTrim,\n offsetBecauseOfTooLate\n }));\n }\n if (duration > 0) {\n node.start(scheduledTime, offset, duration);\n }\n const scheduledEndTime = scheduledTime + duration / node.playbackRate.value;\n const mediaTime = mediaTimestamp + offset;\n const mediaEndTime = mediaTime + duration;\n const latency = audioContext.baseLatency + audioContext.outputLatency;\n const timeDiff = scheduledTime - currentTime - latency;\n const prev = prevEndTimes.current;\n const scheduledMismatch = prev.scheduledEndTime !== null && Math.abs(scheduledTime - prev.scheduledEndTime) > 0.001;\n const mediaMismatch = prev.mediaEndTime !== null && Math.abs(mediaTime - prev.mediaEndTime) > 0.001;\n if (debugAudioScheduling) {\n Log.info({ logLevel, tag: \"audio-scheduling\" }, \"scheduled %c%s%c %s %c%s%c %s %c%s%c %s %s %s\", scheduledMismatch ? \"color: red; font-weight: bold\" : \"\", scheduledTime.toFixed(4), \"\", scheduledEndTime.toFixed(4), mediaMismatch ? \"color: red; font-weight: bold\" : \"\", mediaTime.toFixed(4), \"\", mediaEndTime.toFixed(4), duration < 0 ? \"color: red; font-weight: bold\" : timeDiff < 0 ? \"color: red; font-weight: bold\" : \"color: blue; font-weight: bold\", duration < 0 ? \"missed \" + Math.abs(offset).toFixed(2) + \"s\" : Math.abs(timeDiff).toFixed(2) + (timeDiff < 0 ? \" delay\" : \" ahead\"), \"\", \"current=\" + currentTime.toFixed(4), \"offset=\" + offset.toFixed(4), \"latency=\" + latency.toFixed(4), \"state=\" + audioContext.state);\n }\n prev.scheduledEndTime = scheduledEndTime;\n prev.mediaEndTime = mediaEndTime;\n return duration > 0 ? {\n type: \"started\",\n scheduledTime\n } : {\n type: \"not-started\"\n };\n };\n }, [audioContext, logLevel]);\n const refs = useMemo16(() => {\n return new Array(numberOfAudioTags).fill(true).map(() => {\n const ref = createRef2();\n return {\n id: Math.random(),\n ref,\n mediaElementSourceNode: audioContext ? makeSharedElementSourceNode({\n audioContext,\n ref\n }) : null\n };\n });\n }, [audioContext, numberOfAudioTags]);\n const effectToUse = React14.useInsertionEffect ?? React14.useLayoutEffect;\n effectToUse(() => {\n return () => {\n requestAnimationFrame(() => {\n refs.forEach(({ mediaElementSourceNode }) => {\n mediaElementSourceNode?.cleanup();\n });\n });\n };\n }, [refs]);\n const takenAudios = useRef7(new Array(numberOfAudioTags).fill(false));\n const rerenderAudios = useCallback7(() => {\n refs.forEach(({ ref, id }) => {\n const data = audios.current?.find((a) => a.id === id);\n const { current } = ref;\n if (!current) {\n return;\n }\n if (data === undefined) {\n current.src = EMPTY_AUDIO;\n return;\n }\n if (!data) {\n throw new TypeError(\"Expected audio data to be there\");\n }\n Object.keys(data.props).forEach((key) => {\n if (didPropChange(key, data.props[key], current[key])) {\n current[key] = data.props[key];\n }\n });\n });\n }, [refs]);\n const registerAudio = useCallback7((options) => {\n const { aud, audioId, premounting, postmounting } = options;\n const found = audios.current?.find((a) => a.audioId === audioId);\n if (found) {\n return found;\n }\n const firstFreeAudio = takenAudios.current.findIndex((a) => a === false);\n if (firstFreeAudio === -1) {\n throw new Error(`Tried to simultaneously mount ${numberOfAudioTags + 1} <Html5Audio /> tags at the same time. With the current settings, the maximum amount of <Html5Audio /> tags is limited to ${numberOfAudioTags} at the same time. Remotion pre-mounts silent audio tags to help avoid browser autoplay restrictions. See https://remotion.dev/docs/player/autoplay#using-the-numberofsharedaudiotags-prop for more information on how to increase this limit.`);\n }\n const { id, ref, mediaElementSourceNode } = refs[firstFreeAudio];\n const cloned = [...takenAudios.current];\n cloned[firstFreeAudio] = id;\n takenAudios.current = cloned;\n const newElem = {\n props: aud,\n id,\n el: ref,\n audioId,\n mediaElementSourceNode,\n premounting,\n audioMounted: Boolean(ref.current),\n postmounting,\n cleanupOnMediaTagUnmount: () => {}\n };\n audios.current?.push(newElem);\n rerenderAudios();\n return newElem;\n }, [numberOfAudioTags, refs, rerenderAudios]);\n const unregisterAudio = useCallback7((id) => {\n const cloned = [...takenAudios.current];\n const index = refs.findIndex((r) => r.id === id);\n if (index === -1) {\n throw new TypeError(\"Error occured in \");\n }\n cloned[index] = false;\n takenAudios.current = cloned;\n audios.current = audios.current?.filter((a) => a.id !== id);\n rerenderAudios();\n }, [refs, rerenderAudios]);\n const updateAudio = useCallback7(({\n aud,\n audioId,\n id,\n premounting,\n postmounting\n }) => {\n let changed = false;\n audios.current = audios.current?.map((prevA) => {\n const audioMounted = Boolean(prevA.el.current);\n if (prevA.audioMounted !== audioMounted) {\n changed = true;\n }\n if (prevA.id === id) {\n const isTheSame = compareProps(aud, prevA.props) && prevA.premounting === premounting && prevA.postmounting === postmounting;\n if (isTheSame) {\n return prevA;\n }\n changed = true;\n return {\n ...prevA,\n props: aud,\n premounting,\n postmounting,\n audioId,\n audioMounted\n };\n }\n return prevA;\n });\n if (changed) {\n rerenderAudios();\n }\n }, [rerenderAudios]);\n const mountTime = useMountTime();\n const env = useRemotionEnvironment();\n const playAllAudios = useCallback7(() => {\n refs.forEach((ref) => {\n const audio = audios.current.find((a) => a.el === ref.ref);\n if (audio?.premounting) {\n return;\n }\n playAndHandleNotAllowedError({\n mediaRef: ref.ref,\n mediaType: \"audio\",\n onAutoPlayError: null,\n logLevel,\n mountTime,\n reason: \"playing all audios\",\n isPlayer: env.isPlayer\n });\n });\n audioContext?.resume();\n }, [audioContext, logLevel, mountTime, refs, env.isPlayer]);\n const value = useMemo16(() => {\n return {\n registerAudio,\n unregisterAudio,\n updateAudio,\n playAllAudios,\n numberOfAudioTags,\n audioContext,\n audioSyncAnchor,\n scheduleAudioNode\n };\n }, [\n numberOfAudioTags,\n playAllAudios,\n registerAudio,\n unregisterAudio,\n updateAudio,\n audioContext,\n audioSyncAnchor,\n scheduleAudioNode\n ]);\n return /* @__PURE__ */ jsxs(SharedAudioContext.Provider, {\n value,\n children: [\n refs.map(({ id, ref }) => {\n return /* @__PURE__ */ jsx15(\"audio\", {\n ref,\n preload: \"metadata\",\n src: EMPTY_AUDIO\n }, id);\n }),\n children\n ]\n });\n};\nvar useSharedAudio = ({\n aud,\n audioId,\n premounting,\n postmounting\n}) => {\n const ctx = useContext16(SharedAudioContext);\n const [elem] = useState9(() => {\n if (ctx && ctx.numberOfAudioTags > 0) {\n return ctx.registerAudio({ aud, audioId, premounting, postmounting });\n }\n const el = React14.createRef();\n const mediaElementSourceNode = ctx?.audioContext ? makeSharedElementSourceNode({\n audioContext: ctx.audioContext,\n ref: el\n }) : null;\n return {\n el,\n id: Math.random(),\n props: aud,\n audioId,\n mediaElementSourceNode,\n premounting,\n audioMounted: Boolean(el.current),\n postmounting,\n cleanupOnMediaTagUnmount: () => {\n mediaElementSourceNode?.cleanup();\n }\n };\n });\n const effectToUse = React14.useInsertionEffect ?? React14.useLayoutEffect;\n if (typeof document !== \"undefined\") {\n effectToUse(() => {\n if (ctx && ctx.numberOfAudioTags > 0) {\n ctx.updateAudio({ id: elem.id, aud, audioId, premounting, postmounting });\n }\n }, [aud, ctx, elem.id, audioId, premounting, postmounting]);\n effectToUse(() => {\n return () => {\n if (ctx && ctx.numberOfAudioTags > 0) {\n ctx.unregisterAudio(elem.id);\n }\n };\n }, [ctx, elem.id]);\n }\n return elem;\n};\n\n// src/is-approximately-the-same.ts\nvar FLOATING_POINT_ERROR_THRESHOLD = 0.00001;\nvar isApproximatelyTheSame = (num1, num2) => {\n return Math.abs(num1 - num2) < FLOATING_POINT_ERROR_THRESHOLD;\n};\n\n// src/video/video-fragment.ts\nimport { useRef as useRef8 } from \"react\";\nvar toSeconds = (time, fps) => {\n return Math.round(time / fps * 100) / 100;\n};\nvar isSafari = () => {\n if (typeof window === \"undefined\") {\n return false;\n }\n const isAppleWebKit = /AppleWebKit/.test(window.navigator.userAgent);\n if (!isAppleWebKit) {\n return false;\n }\n const isNotChrome = !window.navigator.userAgent.includes(\"Chrome/\");\n return isNotChrome;\n};\nvar isIosSafari = () => {\n if (typeof window === \"undefined\") {\n return false;\n }\n const isIpadIPodIPhone = /iP(ad|od|hone)/i.test(window.navigator.userAgent);\n return isIpadIPodIPhone && isSafari();\n};\nvar isIOSSafariAndBlob = (actualSrc) => {\n return isIosSafari() && actualSrc.startsWith(\"blob:\");\n};\nvar getVideoFragmentStart = ({\n actualFrom,\n fps\n}) => {\n return toSeconds(Math.max(0, -actualFrom), fps);\n};\nvar getVideoFragmentEnd = ({\n duration,\n fps\n}) => {\n return toSeconds(duration, fps);\n};\nvar appendVideoFragment = ({\n actualSrc,\n actualFrom,\n duration,\n fps\n}) => {\n if (isIOSSafariAndBlob(actualSrc)) {\n return actualSrc;\n }\n if (actualSrc.startsWith(\"data:\")) {\n return actualSrc;\n }\n const existingHash = Boolean(new URL(actualSrc, (typeof window === \"undefined\" ? null : window.location.href) ?? \"http://localhost:3000\").hash);\n if (existingHash) {\n return actualSrc;\n }\n if (!Number.isFinite(actualFrom)) {\n return actualSrc;\n }\n const withStartHash = `${actualSrc}#t=${getVideoFragmentStart({ actualFrom, fps })}`;\n if (!Number.isFinite(duration)) {\n return withStartHash;\n }\n return `${withStartHash},${getVideoFragmentEnd({ duration, fps })}`;\n};\nvar isSubsetOfDuration = ({\n prevStartFrom,\n newStartFrom,\n prevDuration,\n newDuration,\n fps\n}) => {\n const previousFrom = getVideoFragmentStart({ actualFrom: prevStartFrom, fps });\n const newFrom = getVideoFragmentStart({ actualFrom: newStartFrom, fps });\n const previousEnd = getVideoFragmentEnd({ duration: prevDuration, fps });\n const newEnd = getVideoFragmentEnd({ duration: newDuration, fps });\n if (newFrom < previousFrom) {\n return false;\n }\n if (newEnd > previousEnd) {\n return false;\n }\n return true;\n};\nvar useAppendVideoFragment = ({\n actualSrc: initialActualSrc,\n actualFrom: initialActualFrom,\n duration: initialDuration,\n fps\n}) => {\n const actualFromRef = useRef8(initialActualFrom);\n const actualDuration = useRef8(initialDuration);\n const actualSrc = useRef8(initialActualSrc);\n if (!isSubsetOfDuration({\n prevStartFrom: actualFromRef.current,\n newStartFrom: initialActualFrom,\n prevDuration: actualDuration.current,\n newDuration: initialDuration,\n fps\n }) || initialActualSrc !== actualSrc.current) {\n actualFromRef.current = initialActualFrom;\n actualDuration.current = initialDuration;\n actualSrc.current = initialActualSrc;\n }\n const appended = appendVideoFragment({\n actualSrc: actualSrc.current,\n actualFrom: actualFromRef.current,\n duration: actualDuration.current,\n fps\n });\n return appended;\n};\n\n// src/use-amplification.ts\nvar warned2 = false;\nvar warnSafariOnce = (logLevel) => {\n if (warned2) {\n return;\n }\n warned2 = true;\n Log.warn({ logLevel, tag: null }, \"In Safari, setting a volume and a playback rate at the same time is buggy.\");\n Log.warn({ logLevel, tag: null }, \"In Desktop Safari, only volumes <= 1 will be applied.\");\n Log.warn({ logLevel, tag: null }, logLevel, \"In Mobile Safari, the volume will be ignored and set to 1 if a playbackRate is set.\");\n};\nvar useVolume = ({\n mediaRef,\n volume,\n logLevel,\n source,\n shouldUseWebAudioApi\n}) => {\n const audioStuffRef = useRef9(null);\n const currentVolumeRef = useRef9(volume);\n currentVolumeRef.current = volume;\n const sharedAudioContext = useContext17(SharedAudioContext);\n if (!sharedAudioContext) {\n throw new Error(\"useAmplification must be used within a SharedAudioContext\");\n }\n const { audioContext } = sharedAudioContext;\n if (typeof window !== \"undefined\") {\n useLayoutEffect5(() => {\n if (!audioContext) {\n return;\n }\n if (!mediaRef.current) {\n return;\n }\n if (!shouldUseWebAudioApi) {\n return;\n }\n if (mediaRef.current.playbackRate !== 1 && isSafari()) {\n warnSafariOnce(logLevel);\n return;\n }\n if (!source) {\n return;\n }\n const gainNode = new GainNode(audioContext, {\n gain: currentVolumeRef.current\n });\n source.attemptToConnect();\n source.get().connect(gainNode);\n gainNode.connect(audioContext.destination);\n audioStuffRef.current = {\n gainNode\n };\n Log.trace({ logLevel, tag: null }, `Starting to amplify ${mediaRef.current?.src}. Gain = ${currentVolumeRef.current}, playbackRate = ${mediaRef.current?.playbackRate}`);\n return () => {\n audioStuffRef.current = null;\n gainNode.disconnect();\n source.get().disconnect();\n };\n }, [logLevel, mediaRef, audioContext, source, shouldUseWebAudioApi]);\n }\n if (audioStuffRef.current) {\n const valueToSet = volume;\n if (!isApproximatelyTheSame(audioStuffRef.current.gainNode.gain.value, valueToSet)) {\n audioStuffRef.current.gainNode.gain.value = valueToSet;\n Log.trace({ logLevel, tag: null }, `Setting gain to ${valueToSet} for ${mediaRef.current?.src}`);\n }\n }\n const safariCase = isSafari() && mediaRef.current && mediaRef.current?.playbackRate !== 1;\n const shouldUseTraditionalVolume = safariCase || !shouldUseWebAudioApi;\n if (shouldUseTraditionalVolume && mediaRef.current && !isApproximatelyTheSame(volume, mediaRef.current?.volume)) {\n mediaRef.current.volume = Math.min(volume, 1);\n }\n return audioStuffRef;\n};\n\n// src/use-media-in-timeline.ts\nimport { useContext as useContext19, useEffect as useEffect4, useMemo as useMemo17, useState as useState10 } from \"react\";\n\n// src/audio/use-audio-frame.ts\nimport { useContext as useContext18 } from \"react\";\nvar useMediaStartsAt = () => {\n const parentSequence = useContext18(SequenceContext);\n const startsAt = Math.min(0, parentSequence?.relativeFrom ?? 0);\n return startsAt;\n};\nvar useFrameForVolumeProp = (behavior) => {\n const loop = Loop.useLoop();\n const frame = useCurrentFrame();\n const startsAt = useMediaStartsAt();\n if (behavior === \"repeat\" || loop === null) {\n return frame + startsAt;\n }\n return frame + startsAt + loop.durationInFrames * loop.iteration;\n};\n\n// src/get-asset-file-name.ts\nvar getAssetDisplayName = (filename) => {\n if (/data:|blob:/.test(filename.substring(0, 5))) {\n return \"Data URL\";\n }\n const splitted = filename.split(\"/\").map((s) => s.split(\"\\\\\")).flat(1);\n return splitted[splitted.length - 1];\n};\n\n// src/volume-prop.ts\nvar evaluateVolume = ({\n frame,\n volume,\n mediaVolume = 1\n}) => {\n if (typeof volume === \"number\") {\n return volume * mediaVolume;\n }\n if (typeof volume === \"undefined\") {\n return Number(mediaVolume);\n }\n const evaluated = volume(frame) * mediaVolume;\n if (typeof evaluated !== \"number\") {\n throw new TypeError(`You passed in a a function to the volume prop but it did not return a number but a value of type ${typeof evaluated} for frame ${frame}`);\n }\n if (Number.isNaN(evaluated)) {\n throw new TypeError(`You passed in a function to the volume prop but it returned NaN for frame ${frame}.`);\n }\n if (!Number.isFinite(evaluated)) {\n throw new TypeError(`You passed in a function to the volume prop but it returned a non-finite number for frame ${frame}.`);\n }\n return Math.max(0, evaluated);\n};\n\n// src/use-media-in-timeline.ts\nvar didWarn = {};\nvar warnOnce2 = (message) => {\n if (didWarn[message]) {\n return;\n }\n console.warn(message);\n didWarn[message] = true;\n};\nvar useBasicMediaInTimeline = ({\n volume,\n mediaVolume,\n mediaType,\n src,\n displayName,\n trimBefore,\n trimAfter,\n playbackRate\n}) => {\n if (!src) {\n throw new Error(\"No src passed\");\n }\n const startsAt = useMediaStartsAt();\n const parentSequence = useContext19(SequenceContext);\n const videoConfig = useVideoConfig();\n const [initialVolume] = useState10(() => volume);\n const mediaDuration = calculateMediaDuration({\n mediaDurationInFrames: videoConfig.durationInFrames + (trimBefore ?? 0),\n playbackRate,\n trimBefore,\n trimAfter\n });\n const duration = parentSequence ? Math.min(parentSequence.durationInFrames, mediaDuration) : mediaDuration;\n const volumes = useMemo17(() => {\n if (typeof volume === \"number\") {\n return volume;\n }\n return new Array(Math.floor(Math.max(0, duration + startsAt))).fill(true).map((_, i) => {\n return evaluateVolume({\n frame: i + startsAt,\n volume,\n mediaVolume\n });\n }).join(\",\");\n }, [duration, startsAt, volume, mediaVolume]);\n useEffect4(() => {\n if (typeof volume === \"number\" && volume !== initialVolume) {\n warnOnce2(`Remotion: The ${mediaType} with src ${src} has changed it's volume. Prefer the callback syntax for setting volume to get better timeline display: https://www.remotion.dev/docs/audio/volume`);\n }\n }, [initialVolume, mediaType, src, volume]);\n const doesVolumeChange = typeof volume === \"function\";\n const nonce = useNonce();\n const { rootId } = useTimelineContext();\n const env = useRemotionEnvironment();\n return {\n volumes,\n duration,\n doesVolumeChange,\n nonce,\n rootId,\n isStudio: env.isStudio,\n finalDisplayName: displayName ?? getAssetDisplayName(src)\n };\n};\nvar useImageInTimeline = ({\n src,\n displayName,\n id,\n stack,\n showInTimeline,\n premountDisplay,\n postmountDisplay,\n loopDisplay\n}) => {\n const parentSequence = useContext19(SequenceContext);\n const { registerSequence, unregisterSequence } = useContext19(SequenceManager);\n const { duration, nonce, rootId, isStudio, finalDisplayName } = useBasicMediaInTimeline({\n volume: undefined,\n mediaVolume: 0,\n mediaType: \"image\",\n src,\n displayName,\n trimAfter: undefined,\n trimBefore: undefined,\n playbackRate: 1\n });\n useEffect4(() => {\n if (!src) {\n throw new Error(\"No src passed\");\n }\n if (!isStudio && window.process?.env?.NODE_ENV !== \"test\") {\n return;\n }\n if (!showInTimeline) {\n return;\n }\n registerSequence({\n type: \"image\",\n src,\n id,\n duration,\n from: 0,\n parent: parentSequence?.id ?? null,\n displayName: finalDisplayName,\n rootId,\n showInTimeline: true,\n nonce: nonce.get(),\n loopDisplay,\n stack,\n premountDisplay,\n postmountDisplay,\n controls: null\n });\n return () => {\n unregisterSequence(id);\n };\n }, [\n duration,\n id,\n parentSequence,\n src,\n registerSequence,\n unregisterSequence,\n nonce,\n stack,\n showInTimeline,\n premountDisplay,\n postmountDisplay,\n isStudio,\n loopDisplay,\n rootId,\n finalDisplayName\n ]);\n};\nvar useMediaInTimeline = ({\n volume,\n mediaVolume,\n src,\n mediaType,\n playbackRate,\n displayName,\n id,\n stack,\n showInTimeline,\n premountDisplay,\n postmountDisplay,\n loopDisplay\n}) => {\n const parentSequence = useContext19(SequenceContext);\n const startsAt = useMediaStartsAt();\n const { registerSequence, unregisterSequence } = useContext19(SequenceManager);\n const {\n volumes,\n duration,\n doesVolumeChange,\n nonce,\n rootId,\n isStudio,\n finalDisplayName\n } = useBasicMediaInTimeline({\n volume,\n mediaVolume,\n mediaType,\n src,\n displayName,\n trimAfter: undefined,\n trimBefore: undefined,\n playbackRate\n });\n useEffect4(() => {\n if (!src) {\n throw new Error(\"No src passed\");\n }\n if (!isStudio && window.process?.env?.NODE_ENV !== \"test\") {\n return;\n }\n if (!showInTimeline) {\n return;\n }\n registerSequence({\n type: mediaType,\n src,\n id,\n duration,\n from: 0,\n parent: parentSequence?.id ?? null,\n displayName: finalDisplayName,\n rootId,\n volume: volumes,\n showInTimeline: true,\n nonce: nonce.get(),\n startMediaFrom: 0 - startsAt,\n doesVolumeChange,\n loopDisplay,\n playbackRate,\n stack,\n premountDisplay,\n postmountDisplay,\n controls: null\n });\n return () => {\n unregisterSequence(id);\n };\n }, [\n duration,\n id,\n parentSequence,\n src,\n registerSequence,\n unregisterSequence,\n volumes,\n doesVolumeChange,\n nonce,\n mediaType,\n startsAt,\n playbackRate,\n stack,\n showInTimeline,\n premountDisplay,\n postmountDisplay,\n isStudio,\n loopDisplay,\n rootId,\n finalDisplayName\n ]);\n};\n\n// src/use-media-playback.ts\nimport {\n useCallback as useCallback10,\n useContext as useContext22,\n useEffect as useEffect8,\n useLayoutEffect as useLayoutEffect7,\n useRef as useRef13\n} from \"react\";\n\n// src/buffer-until-first-frame.ts\nimport { useCallback as useCallback9, useMemo as useMemo20, useRef as useRef11 } from \"react\";\n\n// src/use-buffer-state.ts\nimport { useContext as useContext21, useMemo as useMemo19 } from \"react\";\n\n// src/buffering.tsx\nimport React15, {\n useCallback as useCallback8,\n useContext as useContext20,\n useEffect as useEffect5,\n useLayoutEffect as useLayoutEffect6,\n useMemo as useMemo18,\n useRef as useRef10,\n useState as useState11\n} from \"react\";\nimport { jsx as jsx16 } from \"react/jsx-runtime\";\nvar useBufferManager = (logLevel, mountTime) => {\n const [blocks, setBlocks] = useState11([]);\n const [onBufferingCallbacks, setOnBufferingCallbacks] = useState11([]);\n const [onResumeCallbacks, setOnResumeCallbacks] = useState11([]);\n const env = useRemotionEnvironment();\n const rendering = env.isRendering;\n const buffering = useRef10(false);\n const addBlock = useCallback8((block) => {\n if (rendering) {\n return {\n unblock: () => {\n return;\n }\n };\n }\n setBlocks((b) => [...b, block]);\n return {\n unblock: () => {\n setBlocks((b) => {\n const newArr = b.filter((bx) => bx !== block);\n if (newArr.length === b.length) {\n return b;\n }\n return newArr;\n });\n }\n };\n }, [rendering]);\n const listenForBuffering = useCallback8((callback) => {\n setOnBufferingCallbacks((c) => [...c, callback]);\n return {\n remove: () => {\n setOnBufferingCallbacks((c) => c.filter((cb) => cb !== callback));\n }\n };\n }, []);\n const listenForResume = useCallback8((callback) => {\n setOnResumeCallbacks((c) => [...c, callback]);\n return {\n remove: () => {\n setOnResumeCallbacks((c) => c.filter((cb) => cb !== callback));\n }\n };\n }, []);\n useEffect5(() => {\n if (rendering) {\n return;\n }\n if (blocks.length > 0) {\n onBufferingCallbacks.forEach((c) => c());\n playbackLogging({\n logLevel,\n message: \"Player is entering buffer state\",\n mountTime,\n tag: \"player\"\n });\n }\n }, [blocks]);\n if (typeof window !== \"undefined\") {\n useLayoutEffect6(() => {\n if (rendering) {\n return;\n }\n if (blocks.length === 0) {\n onResumeCallbacks.forEach((c) => c());\n playbackLogging({\n logLevel,\n message: \"Player is exiting buffer state\",\n mountTime,\n tag: \"player\"\n });\n }\n }, [blocks]);\n }\n return useMemo18(() => {\n return { addBlock, listenForBuffering, listenForResume, buffering };\n }, [addBlock, buffering, listenForBuffering, listenForResume]);\n};\nvar BufferingContextReact = React15.createContext(null);\nvar BufferingProvider = ({ children }) => {\n const { logLevel, mountTime } = useContext20(LogLevelContext);\n const bufferManager = useBufferManager(logLevel ?? \"info\", mountTime);\n return /* @__PURE__ */ jsx16(BufferingContextReact.Provider, {\n value: bufferManager,\n children\n });\n};\nvar useIsPlayerBuffering = (bufferManager) => {\n const [isBuffering, setIsBuffering] = useState11(bufferManager.buffering.current);\n useEffect5(() => {\n const onBuffer = () => {\n setIsBuffering(true);\n };\n const onResume = () => {\n setIsBuffering(false);\n };\n bufferManager.listenForBuffering(onBuffer);\n bufferManager.listenForResume(onResume);\n return () => {\n bufferManager.listenForBuffering(() => {\n return;\n });\n bufferManager.listenForResume(() => {\n return;\n });\n };\n }, [bufferManager]);\n return isBuffering;\n};\n\n// src/use-buffer-state.ts\nvar useBufferState = () => {\n const buffer = useContext21(BufferingContextReact);\n const addBlock = buffer ? buffer.addBlock : null;\n return useMemo19(() => ({\n delayPlayback: () => {\n if (!addBlock) {\n throw new Error(\"Tried to enable the buffering state, but a Remotion context was not found. This API can only be called in a component that was passed to the Remotion Player or a <Composition>. Or you might have experienced a version mismatch - run `npx remotion versions` and ensure all packages have the same version. This error is thrown by the buffer state https://remotion.dev/docs/player/buffer-state\");\n }\n const { unblock } = addBlock({\n id: String(Math.random())\n });\n return { unblock };\n }\n }), [addBlock]);\n};\n\n// src/buffer-until-first-frame.ts\nvar isSafariWebkit = () => {\n const isSafari2 = /^((?!chrome|android).)*safari/i.test(window.navigator.userAgent);\n return isSafari2;\n};\nvar useBufferUntilFirstFrame = ({\n mediaRef,\n mediaType,\n onVariableFpsVideoDetected,\n pauseWhenBuffering,\n logLevel,\n mountTime\n}) => {\n const bufferingRef = useRef11(false);\n const { delayPlayback } = useBufferState();\n const bufferUntilFirstFrame = useCallback9((requestedTime) => {\n if (mediaType !== \"video\") {\n return;\n }\n if (!pauseWhenBuffering) {\n return;\n }\n const current = mediaRef.current;\n if (!current) {\n return;\n }\n if (current.readyState >= current.HAVE_FUTURE_DATA && !isSafariWebkit()) {\n playbackLogging({\n logLevel,\n message: `Not using buffer until first frame, because readyState is ${current.readyState} and is not Safari or Desktop Chrome`,\n mountTime,\n tag: \"buffer\"\n });\n return;\n }\n if (!current.requestVideoFrameCallback) {\n playbackLogging({\n logLevel,\n message: `Not using buffer until first frame, because requestVideoFrameCallback is not supported`,\n mountTime,\n tag: \"buffer\"\n });\n return;\n }\n bufferingRef.current = true;\n playbackLogging({\n logLevel,\n message: `Buffering ${mediaRef.current?.src} until the first frame is received`,\n mountTime,\n tag: \"buffer\"\n });\n const playback = delayPlayback();\n const unblock = () => {\n playback.unblock();\n current.removeEventListener(\"ended\", unblock, {\n once: true\n });\n current.removeEventListener(\"pause\", unblock, {\n once: true\n });\n bufferingRef.current = false;\n };\n const onEndedOrPauseOrCanPlay = () => {\n unblock();\n };\n current.requestVideoFrameCallback((_, info2) => {\n const differenceFromRequested = Math.abs(info2.mediaTime - requestedTime);\n if (differenceFromRequested > 0.5) {\n onVariableFpsVideoDetected();\n }\n unblock();\n });\n current.addEventListener(\"ended\", onEndedOrPauseOrCanPlay, { once: true });\n current.addEventListener(\"pause\", onEndedOrPauseOrCanPlay, { once: true });\n current.addEventListener(\"canplay\", onEndedOrPauseOrCanPlay, {\n once: true\n });\n }, [\n delayPlayback,\n logLevel,\n mediaRef,\n mediaType,\n mountTime,\n onVariableFpsVideoDetected,\n pauseWhenBuffering\n ]);\n return useMemo20(() => {\n return {\n isBuffering: () => bufferingRef.current,\n bufferUntilFirstFrame\n };\n }, [bufferUntilFirstFrame]);\n};\n\n// src/media-tag-current-time-timestamp.ts\nimport React16 from \"react\";\nvar useCurrentTimeOfMediaTagWithUpdateTimeStamp = (mediaRef) => {\n const lastUpdate = React16.useRef({\n time: mediaRef.current?.currentTime ?? 0,\n lastUpdate: performance.now()\n });\n const nowCurrentTime = mediaRef.current?.currentTime ?? null;\n if (nowCurrentTime !== null) {\n if (lastUpdate.current.time !== nowCurrentTime) {\n lastUpdate.current.time = nowCurrentTime;\n lastUpdate.current.lastUpdate = performance.now();\n }\n }\n return lastUpdate;\n};\n\n// src/seek.ts\nvar seek = ({\n mediaRef,\n time,\n logLevel,\n why,\n mountTime\n}) => {\n const timeToSet = isIosSafari() ? Number(time.toFixed(1)) : time;\n playbackLogging({\n logLevel,\n tag: \"seek\",\n message: `Seeking from ${mediaRef.currentTime} to ${timeToSet}. src= ${mediaRef.src} Reason: ${why}`,\n mountTime\n });\n mediaRef.currentTime = timeToSet;\n return timeToSet;\n};\n\n// src/use-media-buffering.ts\nimport { useEffect as useEffect6, useState as useState12 } from \"react\";\nvar useMediaBuffering = ({\n element,\n shouldBuffer,\n isPremounting,\n isPostmounting,\n logLevel,\n mountTime,\n src\n}) => {\n const buffer = useBufferState();\n const [isBuffering, setIsBuffering] = useState12(false);\n useEffect6(() => {\n let cleanupFns = [];\n const { current } = element;\n if (!current) {\n return;\n }\n if (!shouldBuffer) {\n return;\n }\n if (isPremounting || isPostmounting) {\n if ((isPremounting || isPostmounting) && current.readyState < current.HAVE_FUTURE_DATA) {\n if (!navigator.userAgent.includes(\"Firefox/\")) {\n playbackLogging({\n logLevel,\n message: `Calling .load() on ${current.src} because readyState is ${current.readyState} and it is not Firefox. Element is premounted ${current.playbackRate}`,\n tag: \"load\",\n mountTime\n });\n const previousPlaybackRate = current.playbackRate;\n current.load();\n current.playbackRate = previousPlaybackRate;\n }\n }\n return;\n }\n const cleanup = (reason) => {\n let didDoSomething = false;\n cleanupFns.forEach((fn) => {\n fn(reason);\n didDoSomething = true;\n });\n cleanupFns = [];\n setIsBuffering((previous) => {\n if (previous) {\n didDoSomething = true;\n }\n return false;\n });\n if (didDoSomething) {\n playbackLogging({\n logLevel,\n message: `Unmarking as buffering: ${current.src}. Reason: ${reason}`,\n tag: \"buffer\",\n mountTime\n });\n }\n };\n const blockMedia = (reason) => {\n setIsBuffering(true);\n playbackLogging({\n logLevel,\n message: `Marking as buffering: ${current.src}. Reason: ${reason}`,\n tag: \"buffer\",\n mountTime\n });\n const { unblock } = buffer.delayPlayback();\n const onCanPlay = () => {\n cleanup('\"canplay\" was fired');\n init();\n };\n const onError = () => {\n cleanup('\"error\" event was occurred');\n init();\n };\n current.addEventListener(\"canplay\", onCanPlay, {\n once: true\n });\n cleanupFns.push(() => {\n current.removeEventListener(\"canplay\", onCanPlay);\n });\n current.addEventListener(\"error\", onError, {\n once: true\n });\n cleanupFns.push(() => {\n current.removeEventListener(\"error\", onError);\n });\n cleanupFns.push((cleanupReason) => {\n playbackLogging({\n logLevel,\n message: `Unblocking ${current.src} from buffer. Reason: ${cleanupReason}`,\n tag: \"buffer\",\n mountTime\n });\n unblock();\n });\n };\n const init = () => {\n if (current.readyState < current.HAVE_FUTURE_DATA) {\n blockMedia(`readyState is ${current.readyState}, which is less than HAVE_FUTURE_DATA`);\n if (!navigator.userAgent.includes(\"Firefox/\")) {\n playbackLogging({\n logLevel,\n message: `Calling .load() on ${src} because readyState is ${current.readyState} and it is not Firefox. ${current.playbackRate}`,\n tag: \"load\",\n mountTime\n });\n const previousPlaybackRate = current.playbackRate;\n current.load();\n current.playbackRate = previousPlaybackRate;\n }\n } else {\n const onWaiting = () => {\n blockMedia('\"waiting\" event was fired');\n };\n current.addEventListener(\"waiting\", onWaiting);\n cleanupFns.push(() => {\n current.removeEventListener(\"waiting\", onWaiting);\n });\n }\n };\n init();\n return () => {\n cleanup(\"element was unmounted or prop changed\");\n };\n }, [\n buffer,\n src,\n element,\n isPremounting,\n isPostmounting,\n logLevel,\n shouldBuffer,\n mountTime\n ]);\n return isBuffering;\n};\n\n// src/use-request-video-callback-time.ts\nimport { useEffect as useEffect7, useRef as useRef12 } from \"react\";\nvar useRequestVideoCallbackTime = ({\n mediaRef,\n mediaType,\n lastSeek,\n onVariableFpsVideoDetected\n}) => {\n const currentTime = useRef12(null);\n useEffect7(() => {\n const { current } = mediaRef;\n if (current) {\n currentTime.current = {\n time: current.currentTime,\n lastUpdate: performance.now()\n };\n } else {\n currentTime.current = null;\n return;\n }\n if (mediaType !== \"video\") {\n currentTime.current = null;\n return;\n }\n const videoTag = current;\n if (!videoTag.requestVideoFrameCallback) {\n return;\n }\n let cancel = () => {\n return;\n };\n const request = () => {\n if (!videoTag) {\n return;\n }\n const cb = videoTag.requestVideoFrameCallback((_, info2) => {\n if (currentTime.current !== null) {\n const difference = Math.abs(currentTime.current.time - info2.mediaTime);\n const differenceToLastSeek = Math.abs(lastSeek.current === null ? Infinity : info2.mediaTime - lastSeek.current);\n if (difference > 0.5 && differenceToLastSeek > 0.5 && info2.mediaTime > currentTime.current.time) {\n onVariableFpsVideoDetected();\n }\n }\n currentTime.current = {\n time: info2.mediaTime,\n lastUpdate: performance.now()\n };\n request();\n });\n cancel = () => {\n videoTag.cancelVideoFrameCallback(cb);\n cancel = () => {\n return;\n };\n };\n };\n request();\n return () => {\n cancel();\n };\n }, [lastSeek, mediaRef, mediaType, onVariableFpsVideoDetected]);\n return currentTime;\n};\n\n// src/interpolate.ts\nfunction interpolateFunction(input, inputRange, outputRange, options) {\n const { extrapolateLeft, extrapolateRight, easing } = options;\n let result = input;\n const [inputMin, inputMax] = inputRange;\n const [outputMin, outputMax] = outputRange;\n if (result < inputMin) {\n if (extrapolateLeft === \"identity\") {\n return result;\n }\n if (extrapolateLeft === \"clamp\") {\n result = inputMin;\n } else if (extrapolateLeft === \"wrap\") {\n const range = inputMax - inputMin;\n result = ((result - inputMin) % range + range) % range + inputMin;\n } else if (extrapolateLeft === \"extend\") {}\n }\n if (result > inputMax) {\n if (extrapolateRight === \"identity\") {\n return result;\n }\n if (extrapolateRight === \"clamp\") {\n result = inputMax;\n } else if (extrapolateRight === \"wrap\") {\n const range = inputMax - inputMin;\n result = ((result - inputMin) % range + range) % range + inputMin;\n } else if (extrapolateRight === \"extend\") {}\n }\n if (outputMin === outputMax) {\n return outputMin;\n }\n result = (result - inputMin) / (inputMax - inputMin);\n result = easing(result);\n result = result * (outputMax - outputMin) + outputMin;\n return result;\n}\nfunction findRange(input, inputRange) {\n let i;\n for (i = 1;i < inputRange.length - 1; ++i) {\n if (inputRange[i] >= input) {\n break;\n }\n }\n return i - 1;\n}\nfunction checkValidInputRange(arr) {\n for (let i = 1;i < arr.length; ++i) {\n if (!(arr[i] > arr[i - 1])) {\n throw new Error(`inputRange must be strictly monotonically increasing but got [${arr.join(\",\")}]`);\n }\n }\n}\nfunction checkInfiniteRange(name, arr) {\n if (arr.length < 2) {\n throw new Error(name + \" must have at least 2 elements\");\n }\n for (const element of arr) {\n if (typeof element !== \"number\") {\n throw new Error(`${name} must contain only numbers`);\n }\n if (!Number.isFinite(element)) {\n throw new Error(`${name} must contain only finite numbers, but got [${arr.join(\",\")}]`);\n }\n }\n}\nfunction interpolate(input, inputRange, outputRange, options) {\n if (typeof input === \"undefined\") {\n throw new Error(\"input can not be undefined\");\n }\n if (typeof inputRange === \"undefined\") {\n throw new Error(\"inputRange can not be undefined\");\n }\n if (typeof outputRange === \"undefined\") {\n throw new Error(\"outputRange can not be undefined\");\n }\n if (inputRange.length !== outputRange.length) {\n throw new Error(\"inputRange (\" + inputRange.length + \") and outputRange (\" + outputRange.length + \") must have the same length\");\n }\n checkInfiniteRange(\"inputRange\", inputRange);\n checkInfiniteRange(\"outputRange\", outputRange);\n checkValidInputRange(inputRange);\n const easing = options?.easing ?? ((num) => num);\n let extrapolateLeft = \"extend\";\n if (options?.extrapolateLeft !== undefined) {\n extrapolateLeft = options.extrapolateLeft;\n }\n let extrapolateRight = \"extend\";\n if (options?.extrapolateRight !== undefined) {\n extrapolateRight = options.extrapolateRight;\n }\n if (typeof input !== \"number\") {\n throw new TypeError(\"Cannot interpolate an input which is not a number\");\n }\n const range = findRange(input, inputRange);\n return interpolateFunction(input, [inputRange[range], inputRange[range + 1]], [outputRange[range], outputRange[range + 1]], {\n easing,\n extrapolateLeft,\n extrapolateRight\n });\n}\n\n// src/video/get-current-time.ts\nvar getExpectedMediaFrameUncorrected = ({\n frame,\n playbackRate,\n startFrom\n}) => {\n return interpolate(frame, [-1, startFrom, startFrom + 1], [-1, startFrom, startFrom + playbackRate]);\n};\nvar getMediaTime = ({\n fps,\n frame,\n playbackRate,\n startFrom\n}) => {\n const expectedFrame = getExpectedMediaFrameUncorrected({\n frame,\n playbackRate,\n startFrom\n });\n const msPerFrame = 1000 / fps;\n return expectedFrame * msPerFrame / 1000;\n};\n\n// src/warn-about-non-seekable-media.ts\nvar alreadyWarned = {};\nvar warnAboutNonSeekableMedia = (ref, type) => {\n if (ref === null) {\n return;\n }\n if (ref.seekable.length === 0) {\n return;\n }\n if (ref.seekable.length > 1) {\n return;\n }\n if (alreadyWarned[ref.src]) {\n return;\n }\n const range = { start: ref.seekable.start(0), end: ref.seekable.end(0) };\n if (range.start === 0 && range.end === 0) {\n const msg = [\n `The media ${ref.src} cannot be seeked. This could be one of few reasons:`,\n \"1) The media resource was replaced while the video is playing but it was not loaded yet.\",\n \"2) The media does not support seeking.\",\n \"3) The media was loaded with security headers prventing it from being included.\",\n \"Please see https://remotion.dev/docs/non-seekable-media for assistance.\"\n ].join(`\n`);\n if (type === \"console-error\") {\n console.error(msg);\n } else if (type === \"console-warning\") {\n console.warn(`The media ${ref.src} does not support seeking. The video will render fine, but may not play correctly in the Remotion Studio and in the <Player>. See https://remotion.dev/docs/non-seekable-media for an explanation.`);\n } else {\n throw new Error(msg);\n }\n alreadyWarned[ref.src] = true;\n }\n};\n\n// src/use-media-playback.ts\nvar useMediaPlayback = ({\n mediaRef,\n src,\n mediaType,\n playbackRate: localPlaybackRate,\n onlyWarnForMediaSeekingError,\n acceptableTimeshift,\n pauseWhenBuffering,\n isPremounting,\n isPostmounting,\n onAutoPlayError\n}) => {\n const { playbackRate: globalPlaybackRate } = useTimelineContext();\n const frame = useCurrentFrame();\n const absoluteFrame = useTimelinePosition();\n const [playing] = usePlayingState();\n const buffering = useContext22(BufferingContextReact);\n const { fps } = useVideoConfig();\n const mediaStartsAt = useMediaStartsAt();\n const lastSeekDueToShift = useRef13(null);\n const lastSeek = useRef13(null);\n const logLevel = useLogLevel();\n const mountTime = useMountTime();\n if (!buffering) {\n throw new Error(\"useMediaPlayback must be used inside a <BufferingContext>\");\n }\n const isVariableFpsVideoMap = useRef13({});\n const onVariableFpsVideoDetected = useCallback10(() => {\n if (!src) {\n return;\n }\n if (isVariableFpsVideoMap.current[src]) {\n return;\n }\n Log.verbose({ logLevel, tag: null }, `Detected ${src} as a variable FPS video. Disabling buffering while seeking.`);\n isVariableFpsVideoMap.current[src] = true;\n }, [logLevel, src]);\n const rvcCurrentTime = useRequestVideoCallbackTime({\n mediaRef,\n mediaType,\n lastSeek,\n onVariableFpsVideoDetected\n });\n const mediaTagCurrentTime = useCurrentTimeOfMediaTagWithUpdateTimeStamp(mediaRef);\n const desiredUnclampedTime = getMediaTime({\n frame,\n playbackRate: localPlaybackRate,\n startFrom: -mediaStartsAt,\n fps\n });\n const isMediaTagBuffering = useMediaBuffering({\n element: mediaRef,\n shouldBuffer: pauseWhenBuffering,\n isPremounting,\n isPostmounting,\n logLevel,\n mountTime,\n src: src ?? null\n });\n const { bufferUntilFirstFrame, isBuffering } = useBufferUntilFirstFrame({\n mediaRef,\n mediaType,\n onVariableFpsVideoDetected,\n pauseWhenBuffering,\n logLevel,\n mountTime\n });\n const playbackRate = localPlaybackRate * globalPlaybackRate;\n const acceptableTimeShiftButLessThanDuration = (() => {\n const DEFAULT_ACCEPTABLE_TIMESHIFT_WITH_NORMAL_PLAYBACK = 0.45;\n const DEFAULT_ACCEPTABLE_TIMESHIFT_WITH_AMPLIFICATION = DEFAULT_ACCEPTABLE_TIMESHIFT_WITH_NORMAL_PLAYBACK + 0.2;\n const defaultAcceptableTimeshift = DEFAULT_ACCEPTABLE_TIMESHIFT_WITH_AMPLIFICATION;\n if (mediaRef.current?.duration) {\n return Math.min(mediaRef.current.duration, acceptableTimeshift ?? defaultAcceptableTimeshift);\n }\n return acceptableTimeshift ?? defaultAcceptableTimeshift;\n })();\n const isPlayerBuffering = useIsPlayerBuffering(buffering);\n useEffect8(() => {\n if (mediaRef.current?.paused) {\n return;\n }\n if (!playing) {\n playbackLogging({\n logLevel,\n tag: \"pause\",\n message: `Pausing ${mediaRef.current?.src} because ${isPremounting ? \"media is premounting\" : isPostmounting ? \"media is postmounting\" : \"Player is not playing\"}`,\n mountTime\n });\n mediaRef.current?.pause();\n return;\n }\n const isMediaTagBufferingOrStalled = isMediaTagBuffering || isBuffering();\n const playerBufferingNotStateButLive = buffering.buffering.current;\n if (playerBufferingNotStateButLive && !isMediaTagBufferingOrStalled) {\n playbackLogging({\n logLevel,\n tag: \"pause\",\n message: `Pausing ${mediaRef.current?.src} because player is buffering but media tag is not`,\n mountTime\n });\n mediaRef.current?.pause();\n }\n }, [\n isBuffering,\n isMediaTagBuffering,\n buffering,\n isPlayerBuffering,\n isPremounting,\n logLevel,\n mediaRef,\n mediaType,\n mountTime,\n playing,\n isPostmounting\n ]);\n const env = useRemotionEnvironment();\n useLayoutEffect7(() => {\n const playbackRateToSet = Math.max(0, playbackRate);\n if (mediaRef.current && mediaRef.current.playbackRate !== playbackRateToSet) {\n mediaRef.current.playbackRate = playbackRateToSet;\n }\n }, [mediaRef, playbackRate]);\n useEffect8(() => {\n const tagName = mediaType === \"audio\" ? \"<Html5Audio>\" : \"<Html5Video>\";\n if (!mediaRef.current) {\n throw new Error(`No ${mediaType} ref found`);\n }\n if (!src) {\n throw new Error(`No 'src' attribute was passed to the ${tagName} element.`);\n }\n const { duration } = mediaRef.current;\n const shouldBeTime = !Number.isNaN(duration) && Number.isFinite(duration) ? Math.min(duration, desiredUnclampedTime) : desiredUnclampedTime;\n const mediaTagTime = mediaTagCurrentTime.current.time;\n const rvcTime = rvcCurrentTime.current?.time ?? null;\n const isVariableFpsVideo = isVariableFpsVideoMap.current[src];\n const timeShiftMediaTag = Math.abs(shouldBeTime - mediaTagTime);\n const timeShiftRvcTag = rvcTime ? Math.abs(shouldBeTime - rvcTime) : null;\n const mostRecentTimeshift = rvcCurrentTime.current?.lastUpdate && rvcCurrentTime.current.time > mediaTagCurrentTime.current.lastUpdate ? timeShiftRvcTag : timeShiftMediaTag;\n const timeShift = timeShiftRvcTag && !isVariableFpsVideo ? mostRecentTimeshift : timeShiftMediaTag;\n if (timeShift > acceptableTimeShiftButLessThanDuration && lastSeekDueToShift.current !== shouldBeTime) {\n lastSeek.current = seek({\n mediaRef: mediaRef.current,\n time: shouldBeTime,\n logLevel,\n why: `because time shift is too big. shouldBeTime = ${shouldBeTime}, isTime = ${mediaTagTime}, requestVideoCallbackTime = ${rvcTime}, timeShift = ${timeShift}${isVariableFpsVideo ? \", isVariableFpsVideo = true\" : \"\"}, isPremounting = ${isPremounting}, isPostmounting = ${isPostmounting}, pauseWhenBuffering = ${pauseWhenBuffering}`,\n mountTime\n });\n lastSeekDueToShift.current = lastSeek.current;\n if (playing) {\n if (playbackRate > 0) {\n bufferUntilFirstFrame(shouldBeTime);\n }\n if (mediaRef.current.paused) {\n playAndHandleNotAllowedError({\n mediaRef,\n mediaType,\n onAutoPlayError,\n logLevel,\n mountTime,\n reason: \"player is playing but media tag is paused, and just seeked\",\n isPlayer: env.isPlayer\n });\n }\n }\n if (!onlyWarnForMediaSeekingError) {\n warnAboutNonSeekableMedia(mediaRef.current, onlyWarnForMediaSeekingError ? \"console-warning\" : \"console-error\");\n }\n return;\n }\n const seekThreshold = playing ? 0.15 : 0.01;\n const makesSenseToSeek = Math.abs(mediaRef.current.currentTime - shouldBeTime) > seekThreshold;\n const isMediaTagBufferingOrStalled = isMediaTagBuffering || isBuffering();\n const isSomethingElseBuffering = buffering.buffering.current && !isMediaTagBufferingOrStalled;\n if (!playing || isSomethingElseBuffering) {\n if (makesSenseToSeek) {\n lastSeek.current = seek({\n mediaRef: mediaRef.current,\n time: shouldBeTime,\n logLevel,\n why: `not playing or something else is buffering. time offset is over seek threshold (${seekThreshold})`,\n mountTime\n });\n }\n return;\n }\n if (!playing || buffering.buffering.current) {\n return;\n }\n const pausedCondition = mediaRef.current.paused && !mediaRef.current.ended;\n const firstFrameCondition = absoluteFrame === 0;\n if (pausedCondition || firstFrameCondition) {\n const reason = pausedCondition ? \"media tag is paused\" : \"absolute frame is 0\";\n if (makesSenseToSeek) {\n lastSeek.current = seek({\n mediaRef: mediaRef.current,\n time: shouldBeTime,\n logLevel,\n why: `is over timeshift threshold (threshold = ${seekThreshold}) and ${reason}`,\n mountTime\n });\n }\n playAndHandleNotAllowedError({\n mediaRef,\n mediaType,\n onAutoPlayError,\n logLevel,\n mountTime,\n reason: `player is playing and ${reason}`,\n isPlayer: env.isPlayer\n });\n if (!isVariableFpsVideo && playbackRate > 0) {\n bufferUntilFirstFrame(shouldBeTime);\n }\n }\n }, [\n absoluteFrame,\n acceptableTimeShiftButLessThanDuration,\n bufferUntilFirstFrame,\n buffering.buffering,\n rvcCurrentTime,\n logLevel,\n desiredUnclampedTime,\n isBuffering,\n isMediaTagBuffering,\n mediaRef,\n mediaType,\n onlyWarnForMediaSeekingError,\n playbackRate,\n playing,\n src,\n onAutoPlayError,\n isPremounting,\n isPostmounting,\n pauseWhenBuffering,\n mountTime,\n mediaTagCurrentTime,\n env.isPlayer\n ]);\n};\n\n// src/use-media-tag.ts\nimport { useEffect as useEffect9 } from \"react\";\nvar useMediaTag = ({\n mediaRef,\n id,\n mediaType,\n onAutoPlayError,\n isPremounting,\n isPostmounting\n}) => {\n const { audioAndVideoTags, imperativePlaying } = useTimelineContext();\n const logLevel = useLogLevel();\n const mountTime = useMountTime();\n const env = useRemotionEnvironment();\n useEffect9(() => {\n const tag = {\n id,\n play: (reason) => {\n if (!imperativePlaying.current) {\n return;\n }\n if (isPremounting || isPostmounting) {\n return;\n }\n return playAndHandleNotAllowedError({\n mediaRef,\n mediaType,\n onAutoPlayError,\n logLevel,\n mountTime,\n reason,\n isPlayer: env.isPlayer\n });\n }\n };\n audioAndVideoTags.current.push(tag);\n return () => {\n audioAndVideoTags.current = audioAndVideoTags.current.filter((a) => a.id !== id);\n };\n }, [\n audioAndVideoTags,\n id,\n mediaRef,\n mediaType,\n onAutoPlayError,\n imperativePlaying,\n isPremounting,\n isPostmounting,\n logLevel,\n mountTime,\n env.isPlayer\n ]);\n};\n\n// src/volume-position-state.ts\nimport { createContext as createContext18, useContext as useContext23, useMemo as useMemo21 } from \"react\";\nvar MediaVolumeContext = createContext18({\n mediaMuted: false,\n mediaVolume: 1\n});\nvar SetMediaVolumeContext = createContext18({\n setMediaMuted: () => {\n throw new Error(\"default\");\n },\n setMediaVolume: () => {\n throw new Error(\"default\");\n }\n});\nvar useMediaVolumeState = () => {\n const { mediaVolume } = useContext23(MediaVolumeContext);\n const { setMediaVolume } = useContext23(SetMediaVolumeContext);\n return useMemo21(() => {\n return [mediaVolume, setMediaVolume];\n }, [mediaVolume, setMediaVolume]);\n};\nvar useMediaMutedState = () => {\n const { mediaMuted } = useContext23(MediaVolumeContext);\n const { setMediaMuted } = useContext23(SetMediaVolumeContext);\n return useMemo21(() => {\n return [mediaMuted, setMediaMuted];\n }, [mediaMuted, setMediaMuted]);\n};\n\n// src/volume-safeguard.ts\nvar warnAboutTooHighVolume = (volume) => {\n if (volume >= 100) {\n throw new Error(`Volume was set to ${volume}, but regular volume is 1, not 100. Did you forget to divide by 100? Set a volume of less than 100 to dismiss this error.`);\n }\n};\n\n// src/audio/AudioForPreview.tsx\nimport { jsx as jsx17 } from \"react/jsx-runtime\";\nvar AudioForDevelopmentForwardRefFunction = (props, ref) => {\n const [initialShouldPreMountAudioElements] = useState13(props.shouldPreMountAudioTags);\n if (props.shouldPreMountAudioTags !== initialShouldPreMountAudioElements) {\n throw new Error(\"Cannot change the behavior for pre-mounting audio tags dynamically.\");\n }\n const logLevel = useLogLevel();\n const {\n volume,\n muted,\n playbackRate,\n shouldPreMountAudioTags,\n src,\n onDuration,\n acceptableTimeShiftInSeconds,\n _remotionInternalNeedsDurationCalculation,\n _remotionInternalNativeLoopPassed,\n _remotionInternalStack,\n allowAmplificationDuringRender,\n name,\n pauseWhenBuffering,\n showInTimeline,\n loopVolumeCurveBehavior,\n stack,\n crossOrigin,\n delayRenderRetries,\n delayRenderTimeoutInMilliseconds,\n toneFrequency,\n useWebAudioApi,\n onError,\n onNativeError,\n audioStreamIndex,\n ...nativeProps\n } = props;\n const _propsValid = true;\n if (!_propsValid) {\n throw new Error(\"typecheck error\");\n }\n const [mediaVolume] = useMediaVolumeState();\n const [mediaMuted] = useMediaMutedState();\n const volumePropFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? \"repeat\");\n const { hidden } = useContext24(SequenceVisibilityToggleContext);\n if (!src) {\n throw new TypeError(\"No 'src' was passed to <Html5Audio>.\");\n }\n const preloadedSrc = usePreload(src);\n const sequenceContext = useContext24(SequenceContext);\n const [timelineId] = useState13(() => String(Math.random()));\n const isSequenceHidden = hidden[timelineId] ?? false;\n const userPreferredVolume = evaluateVolume({\n frame: volumePropFrame,\n volume,\n mediaVolume\n });\n warnAboutTooHighVolume(userPreferredVolume);\n const crossOriginValue = getCrossOriginValue({\n crossOrigin,\n requestsVideoFrame: false,\n isClientSideRendering: false\n });\n const propsToPass = useMemo22(() => {\n return {\n muted: muted || mediaMuted || isSequenceHidden || userPreferredVolume <= 0,\n src: preloadedSrc,\n loop: _remotionInternalNativeLoopPassed,\n crossOrigin: crossOriginValue,\n ...nativeProps\n };\n }, [\n _remotionInternalNativeLoopPassed,\n isSequenceHidden,\n mediaMuted,\n muted,\n nativeProps,\n preloadedSrc,\n userPreferredVolume,\n crossOriginValue\n ]);\n const id = useMemo22(() => `audio-${random(src ?? \"\")}-${sequenceContext?.relativeFrom}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.durationInFrames}-muted:${props.muted}-loop:${props.loop}`, [\n src,\n sequenceContext?.relativeFrom,\n sequenceContext?.cumulatedFrom,\n sequenceContext?.durationInFrames,\n props.muted,\n props.loop\n ]);\n const {\n el: audioRef,\n mediaElementSourceNode,\n cleanupOnMediaTagUnmount\n } = useSharedAudio({\n aud: propsToPass,\n audioId: id,\n premounting: Boolean(sequenceContext?.premounting),\n postmounting: Boolean(sequenceContext?.postmounting)\n });\n useMediaInTimeline({\n volume,\n mediaVolume,\n src,\n mediaType: \"audio\",\n playbackRate: playbackRate ?? 1,\n displayName: name ?? null,\n id: timelineId,\n stack: _remotionInternalStack,\n showInTimeline,\n premountDisplay: sequenceContext?.premountDisplay ?? null,\n postmountDisplay: sequenceContext?.postmountDisplay ?? null,\n loopDisplay: undefined\n });\n useMediaPlayback({\n mediaRef: audioRef,\n src,\n mediaType: \"audio\",\n playbackRate: playbackRate ?? 1,\n onlyWarnForMediaSeekingError: false,\n acceptableTimeshift: acceptableTimeShiftInSeconds ?? null,\n isPremounting: Boolean(sequenceContext?.premounting),\n isPostmounting: Boolean(sequenceContext?.postmounting),\n pauseWhenBuffering,\n onAutoPlayError: null\n });\n useMediaTag({\n id: timelineId,\n isPostmounting: Boolean(sequenceContext?.postmounting),\n isPremounting: Boolean(sequenceContext?.premounting),\n mediaRef: audioRef,\n mediaType: \"audio\",\n onAutoPlayError: null\n });\n useVolume({\n logLevel,\n mediaRef: audioRef,\n source: mediaElementSourceNode,\n volume: userPreferredVolume,\n shouldUseWebAudioApi: useWebAudioApi ?? false\n });\n const effectToUse = React17.useInsertionEffect ?? React17.useLayoutEffect;\n effectToUse(() => {\n return () => {\n requestAnimationFrame(() => {\n cleanupOnMediaTagUnmount();\n });\n };\n }, [cleanupOnMediaTagUnmount]);\n useImperativeHandle4(ref, () => {\n return audioRef.current;\n }, [audioRef]);\n const currentOnDurationCallback = useRef14(onDuration);\n currentOnDurationCallback.current = onDuration;\n useEffect10(() => {\n const { current } = audioRef;\n if (!current) {\n return;\n }\n if (current.duration) {\n currentOnDurationCallback.current?.(current.src, current.duration);\n return;\n }\n const onLoadedMetadata = () => {\n currentOnDurationCallback.current?.(current.src, current.duration);\n };\n current.addEventListener(\"loadedmetadata\", onLoadedMetadata);\n return () => {\n current.removeEventListener(\"loadedmetadata\", onLoadedMetadata);\n };\n }, [audioRef, src]);\n if (initialShouldPreMountAudioElements) {\n return null;\n }\n return /* @__PURE__ */ jsx17(\"audio\", {\n ref: audioRef,\n preload: \"metadata\",\n crossOrigin: crossOriginValue,\n ...propsToPass\n });\n};\nvar AudioForPreview = forwardRef4(AudioForDevelopmentForwardRefFunction);\n\n// src/audio/AudioForRendering.tsx\nimport {\n forwardRef as forwardRef5,\n useContext as useContext25,\n useEffect as useEffect11,\n useImperativeHandle as useImperativeHandle5,\n useLayoutEffect as useLayoutEffect8,\n useMemo as useMemo23,\n useRef as useRef15\n} from \"react\";\nimport { jsx as jsx18 } from \"react/jsx-runtime\";\nvar AudioForRenderingRefForwardingFunction = (props, ref) => {\n const audioRef = useRef15(null);\n const {\n volume: volumeProp,\n playbackRate,\n allowAmplificationDuringRender,\n onDuration,\n toneFrequency,\n _remotionInternalNeedsDurationCalculation,\n _remotionInternalNativeLoopPassed,\n acceptableTimeShiftInSeconds,\n name,\n onNativeError,\n delayRenderRetries,\n delayRenderTimeoutInMilliseconds,\n loopVolumeCurveBehavior,\n pauseWhenBuffering,\n audioStreamIndex,\n ...nativeProps\n } = props;\n const absoluteFrame = useTimelinePosition();\n const volumePropFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? \"repeat\");\n const frame = useCurrentFrame();\n const sequenceContext = useContext25(SequenceContext);\n const { registerRenderAsset, unregisterRenderAsset } = useContext25(RenderAssetManager);\n const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();\n const id = useMemo23(() => `audio-${random(props.src ?? \"\")}-${sequenceContext?.relativeFrom}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.durationInFrames}`, [\n props.src,\n sequenceContext?.relativeFrom,\n sequenceContext?.cumulatedFrom,\n sequenceContext?.durationInFrames\n ]);\n const volume = evaluateVolume({\n volume: volumeProp,\n frame: volumePropFrame,\n mediaVolume: 1\n });\n warnAboutTooHighVolume(volume);\n useImperativeHandle5(ref, () => {\n return audioRef.current;\n }, []);\n useEffect11(() => {\n if (!props.src) {\n throw new Error(\"No src passed\");\n }\n if (!window.remotion_audioEnabled) {\n return;\n }\n if (props.muted) {\n return;\n }\n if (volume <= 0) {\n return;\n }\n registerRenderAsset({\n type: \"audio\",\n src: getAbsoluteSrc(props.src),\n id,\n frame: absoluteFrame,\n volume,\n mediaFrame: frame,\n playbackRate: props.playbackRate ?? 1,\n toneFrequency: toneFrequency ?? 1,\n audioStartFrame: Math.max(0, -(sequenceContext?.relativeFrom ?? 0)),\n audioStreamIndex: audioStreamIndex ?? 0\n });\n return () => unregisterRenderAsset(id);\n }, [\n props.muted,\n props.src,\n registerRenderAsset,\n absoluteFrame,\n id,\n unregisterRenderAsset,\n volume,\n volumePropFrame,\n frame,\n playbackRate,\n props.playbackRate,\n toneFrequency,\n sequenceContext?.relativeFrom,\n audioStreamIndex\n ]);\n const { src } = props;\n const needsToRenderAudioTag = ref || _remotionInternalNeedsDurationCalculation;\n useLayoutEffect8(() => {\n if (window.process?.env?.NODE_ENV === \"test\") {\n return;\n }\n if (!needsToRenderAudioTag) {\n return;\n }\n const newHandle = delayRender2(\"Loading <Html5Audio> duration with src=\" + src, {\n retries: delayRenderRetries ?? undefined,\n timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined\n });\n const { current } = audioRef;\n const didLoad = () => {\n if (current?.duration) {\n onDuration(current.src, current.duration);\n }\n continueRender2(newHandle);\n };\n if (current?.duration) {\n onDuration(current.src, current.duration);\n continueRender2(newHandle);\n } else {\n current?.addEventListener(\"loadedmetadata\", didLoad, { once: true });\n }\n return () => {\n current?.removeEventListener(\"loadedmetadata\", didLoad);\n continueRender2(newHandle);\n };\n }, [\n src,\n onDuration,\n needsToRenderAudioTag,\n delayRenderRetries,\n delayRenderTimeoutInMilliseconds,\n continueRender2,\n delayRender2\n ]);\n if (!needsToRenderAudioTag) {\n return null;\n }\n return /* @__PURE__ */ jsx18(\"audio\", {\n ref: audioRef,\n ...nativeProps,\n onError: onNativeError\n });\n};\nvar AudioForRendering = forwardRef5(AudioForRenderingRefForwardingFunction);\n\n// src/audio/Audio.tsx\nimport { jsx as jsx19 } from \"react/jsx-runtime\";\nvar AudioRefForwardingFunction = (props, ref) => {\n const audioContext = useContext26(SharedAudioContext);\n const {\n startFrom,\n endAt,\n trimBefore,\n trimAfter,\n name,\n stack,\n pauseWhenBuffering,\n showInTimeline,\n onError: onRemotionError,\n ...otherProps\n } = props;\n const { loop, ...propsOtherThanLoop } = props;\n const { fps } = useVideoConfig();\n const environment = useRemotionEnvironment();\n if (environment.isClientSideRendering) {\n throw new Error(\"<Html5Audio> is not supported in @remotion/web-renderer. Use <Audio> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations\");\n }\n const { durations, setDurations } = useContext26(DurationsContext);\n if (typeof props.src !== \"string\") {\n throw new TypeError(`The \\`<Html5Audio>\\` tag requires a string for \\`src\\`, but got ${JSON.stringify(props.src)} instead.`);\n }\n const preloadedSrc = usePreload(props.src);\n const onError = useCallback11((e) => {\n console.log(e.currentTarget.error);\n const errMessage = `Could not play audio with src ${preloadedSrc}: ${e.currentTarget.error}. See https://remotion.dev/docs/media-playback-error for help.`;\n if (loop) {\n if (onRemotionError) {\n onRemotionError(new Error(errMessage));\n return;\n }\n cancelRender(new Error(errMessage));\n } else {\n onRemotionError?.(new Error(errMessage));\n console.warn(errMessage);\n }\n }, [loop, onRemotionError, preloadedSrc]);\n const onDuration = useCallback11((src, durationInSeconds) => {\n setDurations({ type: \"got-duration\", durationInSeconds, src });\n }, [setDurations]);\n const durationFetched = durations[getAbsoluteSrc(preloadedSrc)] ?? durations[getAbsoluteSrc(props.src)];\n validateMediaTrimProps({ startFrom, endAt, trimBefore, trimAfter });\n const { trimBeforeValue, trimAfterValue } = resolveTrimProps({\n startFrom,\n endAt,\n trimBefore,\n trimAfter\n });\n if (loop && durationFetched !== undefined) {\n if (!Number.isFinite(durationFetched)) {\n return /* @__PURE__ */ jsx19(Html5Audio, {\n ...propsOtherThanLoop,\n ref,\n _remotionInternalNativeLoopPassed: true\n });\n }\n const duration = durationFetched * fps;\n return /* @__PURE__ */ jsx19(Loop, {\n layout: \"none\",\n durationInFrames: calculateMediaDuration({\n trimAfter: trimAfterValue,\n mediaDurationInFrames: duration,\n playbackRate: props.playbackRate ?? 1,\n trimBefore: trimBeforeValue\n }),\n children: /* @__PURE__ */ jsx19(Html5Audio, {\n ...propsOtherThanLoop,\n ref,\n _remotionInternalNativeLoopPassed: true\n })\n });\n }\n if (typeof trimBeforeValue !== \"undefined\" || typeof trimAfterValue !== \"undefined\") {\n return /* @__PURE__ */ jsx19(Sequence, {\n layout: \"none\",\n from: 0 - (trimBeforeValue ?? 0),\n showInTimeline: false,\n durationInFrames: trimAfterValue,\n name,\n children: /* @__PURE__ */ jsx19(Html5Audio, {\n _remotionInternalNeedsDurationCalculation: Boolean(loop),\n pauseWhenBuffering: pauseWhenBuffering ?? false,\n ...otherProps,\n ref\n })\n });\n }\n validateMediaProps({ playbackRate: props.playbackRate, volume: props.volume }, \"Html5Audio\");\n if (environment.isRendering) {\n return /* @__PURE__ */ jsx19(AudioForRendering, {\n onDuration,\n ...props,\n ref,\n onNativeError: onError,\n _remotionInternalNeedsDurationCalculation: Boolean(loop)\n });\n }\n return /* @__PURE__ */ jsx19(AudioForPreview, {\n _remotionInternalNativeLoopPassed: props._remotionInternalNativeLoopPassed ?? false,\n _remotionInternalStack: stack ?? null,\n shouldPreMountAudioTags: audioContext !== null && audioContext.numberOfAudioTags > 0,\n ...props,\n ref,\n onNativeError: onError,\n onDuration,\n pauseWhenBuffering: pauseWhenBuffering ?? false,\n _remotionInternalNeedsDurationCalculation: Boolean(loop),\n showInTimeline: showInTimeline ?? true\n });\n};\nvar Html5Audio = forwardRef6(AudioRefForwardingFunction);\naddSequenceStackTraces(Html5Audio);\nvar Audio = Html5Audio;\n// src/Composition.tsx\nimport { Suspense, useContext as useContext28, useEffect as useEffect13 } from \"react\";\nimport { createPortal } from \"react-dom\";\n\n// src/Folder.tsx\nimport { createContext as createContext19, useContext as useContext27, useEffect as useEffect12, useMemo as useMemo24 } from \"react\";\n\n// src/validation/validate-folder-name.ts\nvar getRegex = () => /^([a-zA-Z0-9-\\u4E00-\\u9FFF])+$/g;\nvar isFolderNameValid = (name) => name.match(getRegex());\nvar validateFolderName = (name) => {\n if (name === undefined || name === null) {\n throw new TypeError(\"You must pass a name to a <Folder />.\");\n }\n if (typeof name !== \"string\") {\n throw new TypeError(`The \"name\" you pass into <Folder /> must be a string. Got: ${typeof name}`);\n }\n if (!isFolderNameValid(name)) {\n throw new Error(`Folder name can only contain a-z, A-Z, 0-9 and -. You passed ${name}`);\n }\n};\nvar invalidFolderNameErrorMessage = `Folder name must match ${String(getRegex())}`;\n\n// src/Folder.tsx\nimport { jsx as jsx20 } from \"react/jsx-runtime\";\nvar FolderContext = createContext19({\n folderName: null,\n parentName: null\n});\nvar Folder = ({ name, children }) => {\n const parent = useContext27(FolderContext);\n const { registerFolder, unregisterFolder } = useContext27(CompositionSetters);\n const nonce = useNonce();\n validateFolderName(name);\n const parentNameArr = [parent.parentName, parent.folderName].filter(truthy);\n const parentName = parentNameArr.length === 0 ? null : parentNameArr.join(\"/\");\n const value = useMemo24(() => {\n return {\n folderName: name,\n parentName\n };\n }, [name, parentName]);\n useEffect12(() => {\n registerFolder(name, parentName, nonce.get());\n return () => {\n unregisterFolder(name, parentName);\n };\n }, [\n name,\n parent.folderName,\n parentName,\n registerFolder,\n unregisterFolder,\n nonce\n ]);\n return /* @__PURE__ */ jsx20(FolderContext.Provider, {\n value,\n children\n });\n};\n\n// src/loading-indicator.tsx\nimport { jsx as jsx21, jsxs as jsxs2 } from \"react/jsx-runtime\";\nvar rotate = {\n transform: `rotate(90deg)`\n};\nvar ICON_SIZE = 40;\nvar label = {\n color: \"white\",\n fontSize: 14,\n fontFamily: \"sans-serif\"\n};\nvar container = {\n justifyContent: \"center\",\n alignItems: \"center\"\n};\nvar Loading = () => {\n return /* @__PURE__ */ jsxs2(AbsoluteFill, {\n style: container,\n id: \"remotion-comp-loading\",\n children: [\n /* @__PURE__ */ jsx21(\"style\", {\n type: \"text/css\",\n children: `\n\t\t\t\t@keyframes anim {\n\t\t\t\t\tfrom {\n\t\t\t\t\t\topacity: 0\n\t\t\t\t\t}\n\t\t\t\t\tto {\n\t\t\t\t\t\topacity: 1\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t#remotion-comp-loading {\n\t\t\t\t\tanimation: anim 2s;\n\t\t\t\t\tanimation-fill-mode: forwards;\n\t\t\t\t}\n\t\t\t`\n }),\n /* @__PURE__ */ jsx21(\"svg\", {\n width: ICON_SIZE,\n height: ICON_SIZE,\n viewBox: \"-100 -100 400 400\",\n style: rotate,\n children: /* @__PURE__ */ jsx21(\"path\", {\n fill: \"#555\",\n stroke: \"#555\",\n strokeWidth: \"100\",\n strokeLinejoin: \"round\",\n d: \"M 2 172 a 196 100 0 0 0 195 5 A 196 240 0 0 0 100 2.259 A 196 240 0 0 0 2 172 z\"\n })\n }),\n /* @__PURE__ */ jsxs2(\"p\", {\n style: label,\n children: [\n \"Resolving \",\n \"<Suspense>\",\n \"...\"\n ]\n })\n ]\n });\n};\n\n// src/portal-node.ts\nvar _portalNode = null;\nvar portalNode = () => {\n if (!_portalNode) {\n if (typeof document === \"undefined\") {\n throw new Error(\"Tried to call an API that only works in the browser from outside the browser\");\n }\n _portalNode = document.createElement(\"div\");\n _portalNode.style.position = \"absolute\";\n _portalNode.style.top = \"0px\";\n _portalNode.style.left = \"0px\";\n _portalNode.style.right = \"0px\";\n _portalNode.style.bottom = \"0px\";\n _portalNode.style.width = \"100%\";\n _portalNode.style.height = \"100%\";\n _portalNode.style.display = \"flex\";\n _portalNode.style.flexDirection = \"column\";\n const containerNode = document.createElement(\"div\");\n containerNode.style.position = \"fixed\";\n containerNode.style.top = -999999 + \"px\";\n containerNode.appendChild(_portalNode);\n document.body.appendChild(containerNode);\n }\n return _portalNode;\n};\n\n// src/use-lazy-component.ts\nimport React20, { useMemo as useMemo25, useRef as useRef16 } from \"react\";\nvar useLazyComponent = ({\n compProps,\n componentName,\n noSuspense\n}) => {\n const componentRef = useRef16(null);\n if (\"component\" in compProps) {\n componentRef.current = compProps.component;\n }\n const lazy = useMemo25(() => {\n if (\"component\" in compProps) {\n if (typeof document === \"undefined\" || noSuspense) {\n return compProps.component;\n }\n if (typeof compProps.component === \"undefined\") {\n throw new Error(`A value of \\`undefined\\` was passed to the \\`component\\` prop. Check the value you are passing to the <${componentName}/> component.`);\n }\n const Wrapper = (props2) => {\n const Comp = componentRef.current;\n return React20.createElement(Comp, props2);\n };\n return Wrapper;\n }\n if (\"lazyComponent\" in compProps && typeof compProps.lazyComponent !== \"undefined\") {\n if (typeof compProps.lazyComponent === \"undefined\") {\n throw new Error(`A value of \\`undefined\\` was passed to the \\`lazyComponent\\` prop. Check the value you are passing to the <${componentName}/> component.`);\n }\n return React20.lazy(compProps.lazyComponent);\n }\n throw new Error(\"You must pass either 'component' or 'lazyComponent'\");\n }, [compProps.lazyComponent]);\n return lazy;\n};\n\n// src/validation/validate-composition-id.ts\nvar getRegex2 = () => /^([a-zA-Z0-9-\\u4E00-\\u9FFF])+$/g;\nvar isCompositionIdValid = (id) => id.match(getRegex2());\nvar validateCompositionId = (id) => {\n if (!isCompositionIdValid(id)) {\n throw new Error(`Composition id can only contain a-z, A-Z, 0-9, CJK characters and -. You passed ${id}`);\n }\n};\nvar invalidCompositionErrorMessage = `Composition ID must match ${String(getRegex2())}`;\n\n// src/validation/validate-default-props.ts\nvar validateDefaultAndInputProps = (defaultProps, name, compositionId) => {\n if (!defaultProps) {\n return;\n }\n if (typeof defaultProps !== \"object\") {\n throw new Error(`\"${name}\" must be an object, but you passed a value of type ${typeof defaultProps}`);\n }\n if (Array.isArray(defaultProps)) {\n throw new Error(`\"${name}\" must be an object, an array was passed ${compositionId ? `for composition \"${compositionId}\"` : \"\"}`);\n }\n};\n\n// src/Composition.tsx\nimport { jsx as jsx22 } from \"react/jsx-runtime\";\nvar Fallback = () => {\n const { continueRender: continueRender2, delayRender: delayRender2 } = useDelayRender();\n useEffect13(() => {\n const fallback = delayRender2(\"Waiting for Root component to unsuspend\");\n return () => continueRender2(fallback);\n }, [continueRender2, delayRender2]);\n return null;\n};\nvar InnerComposition = ({\n width,\n height,\n fps,\n durationInFrames,\n id,\n defaultProps,\n schema,\n ...compProps\n}) => {\n const compManager = useContext28(CompositionSetters);\n const { registerComposition, unregisterComposition } = compManager;\n const video = useVideo();\n const lazy = useLazyComponent({\n compProps,\n componentName: \"Composition\",\n noSuspense: false\n });\n const nonce = useNonce();\n const isPlayer = useIsPlayer();\n const environment = useRemotionEnvironment();\n const canUseComposition = useContext28(CanUseRemotionHooks);\n if (typeof window !== \"undefined\") {\n window.remotion_seenCompositionIds = Array.from(new Set([...window.remotion_seenCompositionIds ?? [], id]));\n }\n if (canUseComposition) {\n if (isPlayer) {\n throw new Error(\"<Composition> was mounted inside the `component` that was passed to the <Player>. See https://remotion.dev/docs/wrong-composition-mount for help.\");\n }\n throw new Error(\"<Composition> mounted inside another composition. See https://remotion.dev/docs/wrong-composition-mount for help.\");\n }\n const { folderName, parentName } = useContext28(FolderContext);\n useEffect13(() => {\n if (!id) {\n throw new Error(\"No id for composition passed.\");\n }\n validateCompositionId(id);\n validateDefaultAndInputProps(defaultProps, \"defaultProps\", id);\n registerComposition({\n durationInFrames: durationInFrames ?? undefined,\n fps: fps ?? undefined,\n height: height ?? undefined,\n width: width ?? undefined,\n id,\n folderName,\n component: lazy,\n defaultProps: serializeThenDeserializeInStudio(defaultProps ?? {}),\n nonce: nonce.get(),\n parentFolderName: parentName,\n schema: schema ?? null,\n calculateMetadata: compProps.calculateMetadata ?? null\n });\n return () => {\n unregisterComposition(id);\n };\n }, [\n durationInFrames,\n fps,\n height,\n lazy,\n id,\n folderName,\n defaultProps,\n width,\n nonce,\n parentName,\n schema,\n compProps.calculateMetadata,\n registerComposition,\n unregisterComposition\n ]);\n const resolved = useResolvedVideoConfig(id);\n if (environment.isStudio && video && video.component === lazy && video.id === id) {\n const Comp = lazy;\n if (resolved === null || resolved.type !== \"success\" && resolved.type !== \"success-and-refreshing\") {\n return null;\n }\n return createPortal(/* @__PURE__ */ jsx22(CanUseRemotionHooksProvider, {\n children: /* @__PURE__ */ jsx22(Suspense, {\n fallback: /* @__PURE__ */ jsx22(Loading, {}),\n children: /* @__PURE__ */ jsx22(Comp, {\n ...resolved.result.props ?? {}\n })\n })\n }), portalNode());\n }\n if (environment.isRendering && video && video.component === lazy && video.id === id) {\n const Comp = lazy;\n if (resolved === null || resolved.type !== \"success\" && resolved.type !== \"success-and-refreshing\") {\n return null;\n }\n return createPortal(/* @__PURE__ */ jsx22(CanUseRemotionHooksProvider, {\n children: /* @__PURE__ */ jsx22(Suspense, {\n fallback: /* @__PURE__ */ jsx22(Fallback, {}),\n children: /* @__PURE__ */ jsx22(Comp, {\n ...resolved.result.props ?? {}\n })\n })\n }), portalNode());\n }\n return null;\n};\nvar Composition = (props2) => {\n const { onlyRenderComposition } = useContext28(CompositionSetters);\n if (onlyRenderComposition && onlyRenderComposition !== props2.id) {\n return null;\n }\n return /* @__PURE__ */ jsx22(InnerComposition, {\n ...props2\n });\n};\n// src/bezier.ts\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1 / (kSplineTableSize - 1);\nvar float32ArraySupported = typeof Float32Array === \"function\";\nfunction a(aA1, aA2) {\n return 1 - 3 * aA2 + 3 * aA1;\n}\nfunction b(aA1, aA2) {\n return 3 * aA2 - 6 * aA1;\n}\nfunction c(aA1) {\n return 3 * aA1;\n}\nfunction calcBezier(aT, aA1, aA2) {\n return ((a(aA1, aA2) * aT + b(aA1, aA2)) * aT + c(aA1)) * aT;\n}\nfunction getSlope(aT, aA1, aA2) {\n return 3 * a(aA1, aA2) * aT * aT + 2 * b(aA1, aA2) * aT + c(aA1);\n}\nfunction binarySubdivide({\n aX,\n _aA,\n _aB,\n mX1,\n mX2\n}) {\n let currentX;\n let currentT;\n let i = 0;\n let aA = _aA;\n let aB = _aB;\n do {\n currentT = aA + (aB - aA) / 2;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n}\nfunction newtonRaphsonIterate(aX, _aGuessT, mX1, mX2) {\n let aGuessT = _aGuessT;\n for (let i = 0;i < NEWTON_ITERATIONS; ++i) {\n const currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0) {\n return aGuessT;\n }\n const currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\nfunction bezier(mX1, mY1, mX2, mY2) {\n if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {\n throw new Error(\"bezier x values must be in [0, 1] range\");\n }\n const sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (let i = 0;i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n function getTForX(aX) {\n let intervalStart = 0;\n let currentSample = 1;\n const lastSample = kSplineTableSize - 1;\n for (;currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n const dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n const guessForT = intervalStart + dist * kSampleStepSize;\n const initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n if (initialSlope === 0) {\n return guessForT;\n }\n return binarySubdivide({\n aX,\n _aA: intervalStart,\n _aB: intervalStart + kSampleStepSize,\n mX1,\n mX2\n });\n }\n return function(x) {\n if (mX1 === mY1 && mX2 === mY2) {\n return x;\n }\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n\n// src/easing.ts\nclass Easing {\n static step0(n) {\n return n > 0 ? 1 : 0;\n }\n static step1(n) {\n return n >= 1 ? 1 : 0;\n }\n static linear(t) {\n return t;\n }\n static ease(t) {\n return Easing.bezier(0.42, 0, 1, 1)(t);\n }\n static quad(t) {\n return t * t;\n }\n static cubic(t) {\n return t * t * t;\n }\n static poly(n) {\n return (t) => t ** n;\n }\n static sin(t) {\n return 1 - Math.cos(t * Math.PI / 2);\n }\n static circle(t) {\n return 1 - Math.sqrt(1 - t * t);\n }\n static exp(t) {\n return 2 ** (10 * (t - 1));\n }\n static elastic(bounciness = 1) {\n const p = bounciness * Math.PI;\n return (t) => 1 - Math.cos(t * Math.PI / 2) ** 3 * Math.cos(t * p);\n }\n static back(s = 1.70158) {\n return (t) => t * t * ((s + 1) * t - s);\n }\n static bounce(t) {\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n if (t < 2 / 2.75) {\n const t2_ = t - 1.5 / 2.75;\n return 7.5625 * t2_ * t2_ + 0.75;\n }\n if (t < 2.5 / 2.75) {\n const t2_ = t - 2.25 / 2.75;\n return 7.5625 * t2_ * t2_ + 0.9375;\n }\n const t2 = t - 2.625 / 2.75;\n return 7.5625 * t2 * t2 + 0.984375;\n }\n static bezier(x1, y1, x2, y2) {\n return bezier(x1, y1, x2, y2);\n }\n static in(easing) {\n return easing;\n }\n static out(easing) {\n return (t) => 1 - easing(1 - t);\n }\n static inOut(easing) {\n return (t) => {\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n return 1 - easing((1 - t) * 2) / 2;\n };\n }\n}\n// src/get-static-files.ts\nvar warnedServer = false;\nvar warnedPlayer = false;\nvar warnServerOnce = () => {\n if (warnedServer) {\n return;\n }\n warnedServer = true;\n console.warn(\"Called getStaticFiles() on the server. The API is only available in the browser. An empty array was returned.\");\n};\nvar warnPlayerOnce = () => {\n if (warnedPlayer) {\n return;\n }\n warnedPlayer = true;\n console.warn(\"Called getStaticFiles() while using the Remotion Player. The API is only available while using the Remotion Studio. An empty array was returned.\");\n};\nvar getStaticFiles = () => {\n if (ENABLE_V5_BREAKING_CHANGES) {\n throw new Error(\"getStaticFiles() has moved into the `@remotion/studio` package. Update your imports.\");\n }\n if (typeof document === \"undefined\") {\n warnServerOnce();\n return [];\n }\n if (window.remotion_isPlayer) {\n warnPlayerOnce();\n return [];\n }\n return window.remotion_staticFiles;\n};\n// src/IFrame.tsx\nimport { forwardRef as forwardRef7, useCallback as useCallback12, useState as useState14 } from \"react\";\nimport { jsx as jsx23 } from \"react/jsx-runtime\";\nvar IFrameRefForwarding = ({\n onLoad,\n onError,\n delayRenderRetries,\n delayRenderTimeoutInMilliseconds,\n ...props2\n}, ref) => {\n const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();\n const [handle] = useState14(() => delayRender2(`Loading <IFrame> with source ${props2.src}`, {\n retries: delayRenderRetries ?? undefined,\n timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined\n }));\n const didLoad = useCallback12((e) => {\n continueRender2(handle);\n onLoad?.(e);\n }, [handle, onLoad, continueRender2]);\n const didGetError = useCallback12((e) => {\n continueRender2(handle);\n if (onError) {\n onError(e);\n } else {\n console.error(\"Error loading iframe:\", e, \"Handle the event using the onError() prop to make this message disappear.\");\n }\n }, [handle, onError, continueRender2]);\n return /* @__PURE__ */ jsx23(\"iframe\", {\n referrerPolicy: \"strict-origin-when-cross-origin\",\n ...props2,\n ref,\n onError: didGetError,\n onLoad: didLoad\n });\n};\nvar IFrame = forwardRef7(IFrameRefForwarding);\n// src/Img.tsx\nimport {\n forwardRef as forwardRef8,\n useCallback as useCallback13,\n useContext as useContext29,\n useImperativeHandle as useImperativeHandle6,\n useLayoutEffect as useLayoutEffect9,\n useRef as useRef17,\n useState as useState15\n} from \"react\";\nimport { jsx as jsx24 } from \"react/jsx-runtime\";\nfunction exponentialBackoff(errorCount) {\n return 1000 * 2 ** (errorCount - 1);\n}\nvar ImgRefForwarding = ({\n onError,\n maxRetries = 2,\n src,\n pauseWhenLoading,\n delayRenderRetries,\n delayRenderTimeoutInMilliseconds,\n onImageFrame,\n crossOrigin,\n showInTimeline,\n name,\n stack,\n ...props2\n}, ref) => {\n const imageRef = useRef17(null);\n const errors = useRef17({});\n const { delayPlayback } = useBufferState();\n const sequenceContext = useContext29(SequenceContext);\n const [timelineId] = useState15(() => String(Math.random()));\n if (!src) {\n throw new Error('No \"src\" prop was passed to <Img>.');\n }\n const _propsValid = true;\n if (!_propsValid) {\n throw new Error(\"typecheck error\");\n }\n useImperativeHandle6(ref, () => {\n return imageRef.current;\n }, []);\n useImageInTimeline({\n src,\n displayName: name ?? null,\n id: timelineId,\n stack: stack ?? null,\n showInTimeline: showInTimeline ?? true,\n premountDisplay: sequenceContext?.premountDisplay ?? null,\n postmountDisplay: sequenceContext?.postmountDisplay ?? null,\n loopDisplay: undefined\n });\n const actualSrc = usePreload(src);\n const retryIn = useCallback13((timeout) => {\n if (!imageRef.current) {\n return;\n }\n const currentSrc = imageRef.current.src;\n setTimeout(() => {\n if (!imageRef.current) {\n return;\n }\n const newSrc = imageRef.current?.src;\n if (newSrc !== currentSrc) {\n return;\n }\n imageRef.current.removeAttribute(\"src\");\n imageRef.current.setAttribute(\"src\", newSrc);\n }, timeout);\n }, []);\n const { delayRender: delayRender2, continueRender: continueRender2, cancelRender: cancelRender2 } = useDelayRender();\n const didGetError = useCallback13((e) => {\n if (!errors.current) {\n return;\n }\n errors.current[imageRef.current?.src] = (errors.current[imageRef.current?.src] ?? 0) + 1;\n if (onError && (errors.current[imageRef.current?.src] ?? 0) > maxRetries) {\n onError(e);\n return;\n }\n if ((errors.current[imageRef.current?.src] ?? 0) <= maxRetries) {\n const backoff = exponentialBackoff(errors.current[imageRef.current?.src] ?? 0);\n console.warn(`Could not load image with source ${imageRef.current?.src}, retrying again in ${backoff}ms`);\n retryIn(backoff);\n return;\n }\n try {\n cancelRender2(\"Error loading image with src: \" + imageRef.current?.src);\n } catch {}\n }, [cancelRender2, maxRetries, onError, retryIn]);\n if (typeof window !== \"undefined\") {\n const isPremounting = Boolean(sequenceContext?.premounting);\n const isPostmounting = Boolean(sequenceContext?.postmounting);\n useLayoutEffect9(() => {\n if (window.process?.env?.NODE_ENV === \"test\") {\n if (imageRef.current) {\n imageRef.current.src = actualSrc;\n }\n return;\n }\n const { current } = imageRef;\n if (!current) {\n return;\n }\n const newHandle = delayRender2(\"Loading <Img> with src=\" + actualSrc, {\n retries: delayRenderRetries ?? undefined,\n timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined\n });\n const unblock = pauseWhenLoading && !isPremounting && !isPostmounting ? delayPlayback().unblock : () => {\n return;\n };\n let unmounted = false;\n const onComplete = () => {\n if (unmounted) {\n continueRender2(newHandle);\n return;\n }\n if ((errors.current[imageRef.current?.src] ?? 0) > 0) {\n delete errors.current[imageRef.current?.src];\n console.info(`Retry successful - ${imageRef.current?.src} is now loaded`);\n }\n if (current) {\n onImageFrame?.(current);\n }\n unblock();\n continueRender2(newHandle);\n };\n if (!imageRef.current) {\n onComplete();\n return;\n }\n current.src = actualSrc;\n current.decode().then(onComplete).catch((err) => {\n console.warn(err);\n if (current.complete && current.naturalWidth > 0 && current.naturalHeight > 0) {\n onComplete();\n } else {\n current.addEventListener(\"load\", onComplete);\n }\n });\n return () => {\n unmounted = true;\n current.removeEventListener(\"load\", onComplete);\n unblock();\n continueRender2(newHandle);\n };\n }, [\n actualSrc,\n delayPlayback,\n delayRenderRetries,\n delayRenderTimeoutInMilliseconds,\n pauseWhenLoading,\n isPremounting,\n isPostmounting,\n onImageFrame,\n continueRender2,\n delayRender2\n ]);\n }\n const { isClientSideRendering } = useRemotionEnvironment();\n const crossOriginValue = getCrossOriginValue({\n crossOrigin,\n requestsVideoFrame: false,\n isClientSideRendering\n });\n return /* @__PURE__ */ jsx24(\"img\", {\n ...props2,\n ref: imageRef,\n crossOrigin: crossOriginValue,\n onError: didGetError,\n decoding: \"sync\"\n });\n};\nvar Img = forwardRef8(ImgRefForwarding);\naddSequenceStackTraces(Img);\n// src/internals.ts\nimport { createRef as createRef3 } from \"react\";\n\n// src/CompositionManager.tsx\nimport React24 from \"react\";\nvar compositionsRef = React24.createRef();\n\n// src/CompositionManagerProvider.tsx\nimport {\n useCallback as useCallback14,\n useImperativeHandle as useImperativeHandle7,\n useMemo as useMemo26,\n useRef as useRef18,\n useState as useState16\n} from \"react\";\nimport { jsx as jsx25 } from \"react/jsx-runtime\";\nvar CompositionManagerProvider = ({\n children,\n onlyRenderComposition,\n currentCompositionMetadata,\n initialCompositions,\n initialCanvasContent\n}) => {\n const [folders, setFolders] = useState16([]);\n const [canvasContent, setCanvasContent] = useState16(initialCanvasContent);\n const [compositions, setCompositions] = useState16(initialCompositions);\n const currentcompositionsRef = useRef18(compositions);\n const updateCompositions = useCallback14((updateComps) => {\n setCompositions((comps) => {\n const updated = updateComps(comps);\n currentcompositionsRef.current = updated;\n return updated;\n });\n }, []);\n const registerComposition = useCallback14((comp) => {\n updateCompositions((comps) => {\n if (comps.find((c2) => c2.id === comp.id)) {\n throw new Error(`Multiple composition with id ${comp.id} are registered.`);\n }\n return [...comps, comp];\n });\n }, [updateCompositions]);\n const unregisterComposition = useCallback14((id) => {\n setCompositions((comps) => {\n return comps.filter((c2) => c2.id !== id);\n });\n }, []);\n const registerFolder = useCallback14((name, parent, nonce) => {\n setFolders((prevFolders) => {\n return [\n ...prevFolders,\n {\n name,\n parent,\n nonce\n }\n ];\n });\n }, []);\n const unregisterFolder = useCallback14((name, parent) => {\n setFolders((prevFolders) => {\n return prevFolders.filter((p) => !(p.name === name && p.parent === parent));\n });\n }, []);\n useImperativeHandle7(compositionsRef, () => {\n return {\n getCompositions: () => currentcompositionsRef.current\n };\n }, []);\n const compositionManagerSetters = useMemo26(() => {\n return {\n registerComposition,\n unregisterComposition,\n registerFolder,\n unregisterFolder,\n setCanvasContent,\n onlyRenderComposition\n };\n }, [\n registerComposition,\n registerFolder,\n unregisterComposition,\n unregisterFolder,\n onlyRenderComposition\n ]);\n const compositionManagerContextValue = useMemo26(() => {\n return {\n compositions,\n folders,\n currentCompositionMetadata,\n canvasContent\n };\n }, [compositions, folders, currentCompositionMetadata, canvasContent]);\n return /* @__PURE__ */ jsx25(CompositionManager.Provider, {\n value: compositionManagerContextValue,\n children: /* @__PURE__ */ jsx25(CompositionSetters.Provider, {\n value: compositionManagerSetters,\n children\n })\n });\n};\n\n// src/default-css.ts\nvar exports_default_css = {};\n__export(exports_default_css, {\n makeDefaultPreviewCSS: () => makeDefaultPreviewCSS,\n injectCSS: () => injectCSS,\n OBJECTFIT_CONTAIN_CLASS_NAME: () => OBJECTFIT_CONTAIN_CLASS_NAME\n});\nvar injected = {};\nvar injectCSS = (css) => {\n if (typeof document === \"undefined\") {\n return () => {};\n }\n if (injected[css]) {\n return () => {};\n }\n const head = document.head || document.getElementsByTagName(\"head\")[0];\n const style = document.createElement(\"style\");\n style.appendChild(document.createTextNode(css));\n head.prepend(style);\n injected[css] = style;\n return () => {\n const styleElement = injected[css];\n if (styleElement) {\n if (styleElement.parentNode) {\n styleElement.parentNode.removeChild(styleElement);\n }\n delete injected[css];\n }\n };\n};\nvar OBJECTFIT_CONTAIN_CLASS_NAME = \"__remotion_objectfitcontain\";\nvar makeDefaultPreviewCSS = (scope, backgroundColor) => {\n if (!scope) {\n return `\n * {\n box-sizing: border-box;\n }\n body {\n margin: 0;\n\t background-color: ${backgroundColor};\n }\n .${OBJECTFIT_CONTAIN_CLASS_NAME} {\n object-fit: contain;\n }\n `;\n }\n return `\n ${scope} * {\n box-sizing: border-box;\n }\n ${scope} *:-webkit-full-screen {\n width: 100%;\n height: 100%;\n }\n ${scope} .${OBJECTFIT_CONTAIN_CLASS_NAME} {\n object-fit: contain;\n }\n `;\n};\n\n// src/get-effective-visual-mode-value.ts\nvar getEffectiveVisualModeValue = ({\n codeValue,\n runtimeValue,\n dragOverrideValue,\n defaultValue,\n shouldResortToDefaultValueIfUndefined = false\n}) => {\n if (dragOverrideValue !== undefined) {\n return dragOverrideValue;\n }\n if (!codeValue) {\n return runtimeValue;\n }\n if (!codeValue.canUpdate) {\n return runtimeValue;\n }\n if (codeValue.codeValue === undefined && shouldResortToDefaultValueIfUndefined) {\n return defaultValue;\n }\n return codeValue.codeValue;\n};\n\n// src/get-preview-dom-element.ts\nvar REMOTION_STUDIO_CONTAINER_ELEMENT = \"__remotion-studio-container\";\nvar getPreviewDomElement = () => {\n return document.getElementById(REMOTION_STUDIO_CONTAINER_ELEMENT);\n};\n\n// src/max-video-cache-size.ts\nimport React25 from \"react\";\nvar MaxMediaCacheSizeContext = React25.createContext(null);\n\n// src/register-root.ts\nvar Root = null;\nvar listeners = [];\nvar registerRoot = (comp) => {\n if (!comp) {\n throw new Error(`You must pass a React component to registerRoot(), but ${JSON.stringify(comp)} was passed.`);\n }\n if (Root) {\n throw new Error(\"registerRoot() was called more than once.\");\n }\n Root = comp;\n listeners.forEach((l) => {\n l(comp);\n });\n};\nvar getRoot = () => {\n return Root;\n};\nvar waitForRoot = (fn) => {\n if (Root) {\n fn(Root);\n return () => {\n return;\n };\n }\n listeners.push(fn);\n return () => {\n listeners = listeners.filter((l) => l !== fn);\n };\n};\n\n// src/RemotionRoot.tsx\nimport { useMemo as useMemo28 } from \"react\";\n\n// src/use-media-enabled.tsx\nimport { createContext as createContext20, useContext as useContext30, useMemo as useMemo27 } from \"react\";\nimport { jsx as jsx26 } from \"react/jsx-runtime\";\nvar MediaEnabledContext = createContext20(null);\nvar useVideoEnabled = () => {\n const context = useContext30(MediaEnabledContext);\n if (!context) {\n return window.remotion_videoEnabled;\n }\n if (context.videoEnabled === null) {\n return window.remotion_videoEnabled;\n }\n return context.videoEnabled;\n};\nvar useAudioEnabled = () => {\n const context = useContext30(MediaEnabledContext);\n if (!context) {\n return window.remotion_audioEnabled;\n }\n if (context.audioEnabled === null) {\n return window.remotion_audioEnabled;\n }\n return context.audioEnabled;\n};\nvar MediaEnabledProvider = ({\n children,\n videoEnabled,\n audioEnabled\n}) => {\n const value = useMemo27(() => ({ videoEnabled, audioEnabled }), [videoEnabled, audioEnabled]);\n return /* @__PURE__ */ jsx26(MediaEnabledContext.Provider, {\n value,\n children\n });\n};\n\n// src/RemotionRoot.tsx\nimport { jsx as jsx27 } from \"react/jsx-runtime\";\nvar RemotionRootContexts = ({\n children,\n numberOfAudioTags,\n logLevel,\n audioLatencyHint,\n videoEnabled,\n audioEnabled,\n frameState,\n visualModeEnabled\n}) => {\n const nonceContext = useMemo28(() => {\n let counter = 0;\n return {\n getNonce: () => counter++\n };\n }, []);\n const logging = useMemo28(() => {\n return { logLevel, mountTime: Date.now() };\n }, [logLevel]);\n return /* @__PURE__ */ jsx27(LogLevelContext.Provider, {\n value: logging,\n children: /* @__PURE__ */ jsx27(NonceContext.Provider, {\n value: nonceContext,\n children: /* @__PURE__ */ jsx27(TimelineContextProvider, {\n frameState,\n children: /* @__PURE__ */ jsx27(MediaEnabledProvider, {\n videoEnabled,\n audioEnabled,\n children: /* @__PURE__ */ jsx27(EditorPropsProvider, {\n children: /* @__PURE__ */ jsx27(PrefetchProvider, {\n children: /* @__PURE__ */ jsx27(SequenceManagerProvider, {\n visualModeEnabled,\n children: /* @__PURE__ */ jsx27(SharedAudioContextProvider, {\n numberOfAudioTags,\n audioLatencyHint,\n audioEnabled,\n children: /* @__PURE__ */ jsx27(DurationsContextProvider, {\n children: /* @__PURE__ */ jsx27(BufferingProvider, {\n children\n })\n })\n })\n })\n })\n })\n })\n })\n })\n });\n};\n\n// src/codec.ts\nvar validCodecs = [\n \"h264\",\n \"h265\",\n \"vp8\",\n \"vp9\",\n \"av1\",\n \"mp3\",\n \"aac\",\n \"wav\",\n \"prores\",\n \"h264-mkv\",\n \"h264-ts\",\n \"gif\"\n];\n\n// src/validation/validate-default-codec.ts\nfunction validateCodec(defaultCodec, location, name) {\n if (typeof defaultCodec === \"undefined\") {\n return;\n }\n if (typeof defaultCodec !== \"string\") {\n throw new TypeError(`The \"${name}\" prop ${location} must be a string, but you passed a value of type ${typeof defaultCodec}.`);\n }\n if (!validCodecs.includes(defaultCodec)) {\n throw new Error(`The \"${name}\" prop ${location} must be one of ${validCodecs.join(\", \")}, but you passed ${defaultCodec}.`);\n }\n}\n\n// src/resolve-video-config.ts\nvar validateCalculated = ({\n calculated,\n compositionId,\n compositionFps,\n compositionHeight,\n compositionWidth,\n compositionDurationInFrames\n}) => {\n const calculateMetadataErrorLocation = `calculated by calculateMetadata() for the composition \"${compositionId}\"`;\n const defaultErrorLocation = `of the \"<Composition />\" component with the id \"${compositionId}\"`;\n const width = calculated?.width ?? compositionWidth ?? undefined;\n validateDimension(width, \"width\", calculated?.width ? calculateMetadataErrorLocation : defaultErrorLocation);\n const height = calculated?.height ?? compositionHeight ?? undefined;\n validateDimension(height, \"height\", calculated?.height ? calculateMetadataErrorLocation : defaultErrorLocation);\n const fps = calculated?.fps ?? compositionFps ?? null;\n validateFps(fps, calculated?.fps ? calculateMetadataErrorLocation : defaultErrorLocation, false);\n const durationInFrames = calculated?.durationInFrames ?? compositionDurationInFrames ?? null;\n validateDurationInFrames(durationInFrames, {\n allowFloats: false,\n component: `of the \"<Composition />\" component with the id \"${compositionId}\"`\n });\n const defaultCodec = calculated?.defaultCodec;\n validateCodec(defaultCodec, calculateMetadataErrorLocation, \"defaultCodec\");\n const defaultOutName = calculated?.defaultOutName;\n const defaultVideoImageFormat = calculated?.defaultVideoImageFormat;\n const defaultPixelFormat = calculated?.defaultPixelFormat;\n const defaultProResProfile = calculated?.defaultProResProfile;\n return {\n width,\n height,\n fps,\n durationInFrames,\n defaultCodec,\n defaultOutName,\n defaultVideoImageFormat,\n defaultPixelFormat,\n defaultProResProfile\n };\n};\nvar resolveVideoConfig = ({\n calculateMetadata,\n signal,\n defaultProps,\n inputProps: originalProps,\n compositionId,\n compositionDurationInFrames,\n compositionFps,\n compositionHeight,\n compositionWidth\n}) => {\n const calculatedProm = calculateMetadata ? calculateMetadata({\n defaultProps,\n props: originalProps,\n abortSignal: signal,\n compositionId,\n isRendering: getRemotionEnvironment().isRendering\n }) : null;\n if (calculatedProm !== null && typeof calculatedProm === \"object\" && \"then\" in calculatedProm) {\n return calculatedProm.then((c2) => {\n const {\n height,\n width,\n durationInFrames,\n fps,\n defaultCodec,\n defaultOutName,\n defaultVideoImageFormat,\n defaultPixelFormat,\n defaultProResProfile\n } = validateCalculated({\n calculated: c2,\n compositionDurationInFrames,\n compositionFps,\n compositionHeight,\n compositionWidth,\n compositionId\n });\n return {\n width,\n height,\n fps,\n durationInFrames,\n id: compositionId,\n defaultProps: serializeThenDeserializeInStudio(defaultProps),\n props: serializeThenDeserializeInStudio(c2.props ?? originalProps),\n defaultCodec: defaultCodec ?? null,\n defaultOutName: defaultOutName ?? null,\n defaultVideoImageFormat: defaultVideoImageFormat ?? null,\n defaultPixelFormat: defaultPixelFormat ?? null,\n defaultProResProfile: defaultProResProfile ?? null\n };\n });\n }\n const data = validateCalculated({\n calculated: calculatedProm,\n compositionDurationInFrames,\n compositionFps,\n compositionHeight,\n compositionWidth,\n compositionId\n });\n if (calculatedProm === null) {\n return {\n ...data,\n id: compositionId,\n defaultProps: serializeThenDeserializeInStudio(defaultProps ?? {}),\n props: serializeThenDeserializeInStudio(originalProps),\n defaultCodec: null,\n defaultOutName: null,\n defaultVideoImageFormat: null,\n defaultPixelFormat: null,\n defaultProResProfile: null\n };\n }\n return {\n ...data,\n id: compositionId,\n defaultProps: serializeThenDeserializeInStudio(defaultProps ?? {}),\n props: serializeThenDeserializeInStudio(calculatedProm.props ?? originalProps),\n defaultCodec: calculatedProm.defaultCodec ?? null,\n defaultOutName: calculatedProm.defaultOutName ?? null,\n defaultVideoImageFormat: calculatedProm.defaultVideoImageFormat ?? null,\n defaultPixelFormat: calculatedProm.defaultPixelFormat ?? null,\n defaultProResProfile: calculatedProm.defaultProResProfile ?? null\n };\n};\nvar resolveVideoConfigOrCatch = (params) => {\n try {\n const promiseOrReturnValue = resolveVideoConfig(params);\n return {\n type: \"success\",\n result: promiseOrReturnValue\n };\n } catch (err) {\n return {\n type: \"error\",\n error: err\n };\n }\n};\n\n// src/sequence-stack-traces.ts\nimport React27 from \"react\";\nvar SequenceStackTracesUpdateContext = React27.createContext(() => {});\n\n// src/setup-env-variables.ts\nvar getEnvVariables = () => {\n if (getRemotionEnvironment().isRendering) {\n const param = window.remotion_envVariables;\n if (!param) {\n return {};\n }\n return { ...JSON.parse(param), NODE_ENV: \"production\" };\n }\n if (false) {}\n return {\n NODE_ENV: \"production\"\n };\n};\nvar setupEnvVariables = () => {\n const env = getEnvVariables();\n if (!window.process) {\n window.process = {};\n }\n if (!window.process.env) {\n window.process.env = {};\n }\n Object.keys(env).forEach((key) => {\n window.process.env[key] = env[key];\n });\n};\n\n// src/use-current-scale.ts\nimport React28, { createContext as createContext21 } from \"react\";\nvar CurrentScaleContext = React28.createContext(null);\nvar PreviewSizeContext = createContext21({\n setSize: () => {\n return;\n },\n size: { size: \"auto\", translation: { x: 0, y: 0 } }\n});\nvar calculateScale = ({\n canvasSize,\n compositionHeight,\n compositionWidth,\n previewSize\n}) => {\n const heightRatio = canvasSize.height / compositionHeight;\n const widthRatio = canvasSize.width / compositionWidth;\n const ratio = Math.min(heightRatio, widthRatio);\n if (previewSize === \"auto\") {\n if (ratio === 0) {\n return 1;\n }\n return ratio;\n }\n return Number(previewSize);\n};\nvar useCurrentScale = (options) => {\n const hasContext = React28.useContext(CurrentScaleContext);\n const zoomContext = React28.useContext(PreviewSizeContext);\n const config = useUnsafeVideoConfig();\n const env = useRemotionEnvironment();\n if (hasContext === null || config === null || zoomContext === null) {\n if (options?.dontThrowIfOutsideOfRemotion) {\n return 1;\n }\n if (env.isRendering) {\n return 1;\n }\n throw new Error([\n \"useCurrentScale() was called outside of a Remotion context.\",\n \"This hook can only be called in a component that is being rendered by Remotion.\",\n \"If you want to this hook to return 1 outside of Remotion, pass {dontThrowIfOutsideOfRemotion: true} as an option.\",\n \"If you think you called this hook in a Remotion component, make sure all versions of Remotion are aligned.\"\n ].join(`\n`));\n }\n if (hasContext.type === \"scale\") {\n return hasContext.scale;\n }\n return calculateScale({\n canvasSize: hasContext.canvasSize,\n compositionHeight: config.height,\n compositionWidth: config.width,\n previewSize: zoomContext.size.size\n });\n};\n\n// src/use-schema.ts\nimport { useContext as useContext31, useMemo as useMemo29, useState as useState17 } from \"react\";\nvar useSchema = (schema, currentValue) => {\n const env = useRemotionEnvironment();\n const earlyReturn = useMemo29(() => {\n if (!env.isStudio || env.isReadOnlyStudio) {\n return {\n controls: undefined,\n values: currentValue ?? {}\n };\n }\n return;\n }, [env.isStudio, env.isReadOnlyStudio, currentValue]);\n if (earlyReturn) {\n return earlyReturn;\n }\n const [overrideId] = useState17(() => String(Math.random()));\n const {\n visualModeEnabled,\n dragOverrides: overrides,\n codeValues\n } = useContext31(VisualModeOverridesContext);\n const controls = useMemo29(() => {\n if (!visualModeEnabled) {\n return;\n }\n if (schema === null || currentValue === null) {\n return;\n }\n return {\n schema,\n currentValue,\n overrideId\n };\n }, [schema, currentValue, overrideId, visualModeEnabled]);\n return useMemo29(() => {\n if (controls === undefined || currentValue === null || schema === null || !visualModeEnabled) {\n return {\n controls: undefined,\n values: currentValue ?? {}\n };\n }\n const overrideValues = overrides[overrideId] ?? {};\n const propStatus = codeValues[overrideId];\n const currentValueKeys = Object.keys(currentValue);\n const keysToUpdate = [...new Set(currentValueKeys)];\n const merged = {};\n for (const key of keysToUpdate) {\n const codeValueStatus = propStatus?.[key] ?? null;\n merged[key] = getEffectiveVisualModeValue({\n codeValue: codeValueStatus,\n runtimeValue: currentValue[key],\n dragOverrideValue: overrideValues[key],\n defaultValue: schema[key]?.default,\n shouldResortToDefaultValueIfUndefined: false\n });\n }\n return {\n controls,\n values: merged\n };\n }, [\n controls,\n currentValue,\n overrideId,\n overrides,\n codeValues,\n schema,\n visualModeEnabled\n ]);\n};\n\n// src/use-sequence-control-override.ts\nimport { useContext as useContext32 } from \"react\";\nvar useSequenceControlOverride = (key) => {\n const seqContext = useContext32(SequenceContext);\n const { dragOverrides: overrides } = useContext32(VisualModeOverridesContext);\n if (!seqContext) {\n return;\n }\n return overrides[seqContext.id]?.[key];\n};\n\n// src/video/OffthreadVideo.tsx\nimport { useCallback as useCallback16 } from \"react\";\n\n// src/video/OffthreadVideoForRendering.tsx\nimport {\n useCallback as useCallback15,\n useContext as useContext33,\n useEffect as useEffect14,\n useLayoutEffect as useLayoutEffect10,\n useMemo as useMemo30,\n useState as useState18\n} from \"react\";\n\n// src/video/offthread-video-source.ts\nvar getOffthreadVideoSource = ({\n src,\n transparent,\n currentTime,\n toneMapped\n}) => {\n return `http://localhost:${window.remotion_proxyPort}/proxy?src=${encodeURIComponent(getAbsoluteSrc(src))}&time=${encodeURIComponent(Math.max(0, currentTime))}&transparent=${String(transparent)}&toneMapped=${String(toneMapped)}`;\n};\n\n// src/video/OffthreadVideoForRendering.tsx\nimport { jsx as jsx28 } from \"react/jsx-runtime\";\nvar OffthreadVideoForRendering = ({\n onError,\n volume: volumeProp,\n playbackRate,\n src,\n muted,\n allowAmplificationDuringRender,\n transparent,\n toneMapped,\n toneFrequency,\n name,\n loopVolumeCurveBehavior,\n delayRenderRetries,\n delayRenderTimeoutInMilliseconds,\n onVideoFrame,\n crossOrigin,\n audioStreamIndex,\n ...props2\n}) => {\n const absoluteFrame = useTimelinePosition();\n const frame = useCurrentFrame();\n const volumePropsFrame = useFrameForVolumeProp(loopVolumeCurveBehavior);\n const videoConfig = useUnsafeVideoConfig();\n const sequenceContext = useContext33(SequenceContext);\n const mediaStartsAt = useMediaStartsAt();\n const { registerRenderAsset, unregisterRenderAsset } = useContext33(RenderAssetManager);\n if (!src) {\n throw new TypeError(\"No `src` was passed to <OffthreadVideo>.\");\n }\n const id = useMemo30(() => `offthreadvideo-${random(src)}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`, [\n src,\n sequenceContext?.cumulatedFrom,\n sequenceContext?.relativeFrom,\n sequenceContext?.durationInFrames\n ]);\n if (!videoConfig) {\n throw new Error(\"No video config found\");\n }\n const volume = evaluateVolume({\n volume: volumeProp,\n frame: volumePropsFrame,\n mediaVolume: 1\n });\n warnAboutTooHighVolume(volume);\n useEffect14(() => {\n if (!src) {\n throw new Error(\"No src passed\");\n }\n if (!window.remotion_audioEnabled) {\n return;\n }\n if (muted) {\n return;\n }\n if (volume <= 0) {\n return;\n }\n registerRenderAsset({\n type: \"video\",\n src: getAbsoluteSrc(src),\n id,\n frame: absoluteFrame,\n volume,\n mediaFrame: frame,\n playbackRate,\n toneFrequency,\n audioStartFrame: Math.max(0, -(sequenceContext?.relativeFrom ?? 0)),\n audioStreamIndex\n });\n return () => unregisterRenderAsset(id);\n }, [\n muted,\n src,\n registerRenderAsset,\n id,\n unregisterRenderAsset,\n volume,\n frame,\n absoluteFrame,\n playbackRate,\n toneFrequency,\n sequenceContext?.relativeFrom,\n audioStreamIndex\n ]);\n const currentTime = useMemo30(() => {\n return getExpectedMediaFrameUncorrected({\n frame,\n playbackRate: playbackRate || 1,\n startFrom: -mediaStartsAt\n }) / videoConfig.fps;\n }, [frame, mediaStartsAt, playbackRate, videoConfig.fps]);\n const actualSrc = useMemo30(() => {\n return getOffthreadVideoSource({\n src,\n currentTime,\n transparent,\n toneMapped\n });\n }, [toneMapped, currentTime, src, transparent]);\n const [imageSrc, setImageSrc] = useState18(null);\n const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();\n useLayoutEffect10(() => {\n if (!window.remotion_videoEnabled) {\n return;\n }\n const cleanup = [];\n setImageSrc(null);\n const controller = new AbortController;\n const newHandle = delayRender2(`Fetching ${actualSrc} from server`, {\n retries: delayRenderRetries ?? undefined,\n timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined\n });\n const execute = async () => {\n try {\n const res = await fetch(actualSrc, {\n signal: controller.signal,\n cache: \"no-store\"\n });\n if (res.status !== 200) {\n if (res.status === 500) {\n const json = await res.json();\n if (json.error) {\n const cleanedUpErrorMessage = json.error.replace(/^Error: /, \"\");\n throw new Error(cleanedUpErrorMessage);\n }\n }\n throw new Error(`Server returned status ${res.status} while fetching ${actualSrc}`);\n }\n const blob = await res.blob();\n const url = URL.createObjectURL(blob);\n cleanup.push(() => URL.revokeObjectURL(url));\n setImageSrc({\n src: url,\n handle: newHandle\n });\n } catch (err) {\n if (err.message.includes(\"aborted\")) {\n continueRender2(newHandle);\n return;\n }\n if (controller.signal.aborted) {\n continueRender2(newHandle);\n return;\n }\n if (err.message.includes(\"Failed to fetch\")) {\n err = new Error(`Failed to fetch ${actualSrc}. This could be caused by Chrome rejecting the request because the disk space is low. Consider increasing the disk size of your environment.`, { cause: err });\n }\n if (onError) {\n onError(err);\n } else {\n cancelRender(err);\n }\n }\n };\n execute();\n cleanup.push(() => {\n if (controller.signal.aborted) {\n return;\n }\n controller.abort();\n });\n return () => {\n cleanup.forEach((c2) => c2());\n };\n }, [\n actualSrc,\n delayRenderRetries,\n delayRenderTimeoutInMilliseconds,\n onError,\n continueRender2,\n delayRender2\n ]);\n const onErr = useCallback15(() => {\n if (onError) {\n onError?.(new Error(\"Failed to load image with src \" + imageSrc));\n } else {\n cancelRender(\"Failed to load image with src \" + imageSrc);\n }\n }, [imageSrc, onError]);\n const className = useMemo30(() => {\n return [OBJECTFIT_CONTAIN_CLASS_NAME, props2.className].filter(truthy).join(\" \");\n }, [props2.className]);\n const onImageFrame = useCallback15((img) => {\n if (onVideoFrame) {\n onVideoFrame(img);\n }\n }, [onVideoFrame]);\n if (!imageSrc || !window.remotion_videoEnabled) {\n return null;\n }\n continueRender2(imageSrc.handle);\n return /* @__PURE__ */ jsx28(Img, {\n src: imageSrc.src,\n delayRenderRetries,\n delayRenderTimeoutInMilliseconds,\n onImageFrame,\n ...props2,\n onError: onErr,\n className\n });\n};\n\n// src/video/VideoForPreview.tsx\nimport React30, {\n forwardRef as forwardRef9,\n useContext as useContext34,\n useEffect as useEffect16,\n useImperativeHandle as useImperativeHandle8,\n useMemo as useMemo31,\n useRef as useRef19,\n useState as useState19\n} from \"react\";\n\n// src/video/emit-video-frame.ts\nimport { useEffect as useEffect15 } from \"react\";\nvar useEmitVideoFrame = ({\n ref,\n onVideoFrame\n}) => {\n useEffect15(() => {\n const { current } = ref;\n if (!current) {\n return;\n }\n if (!onVideoFrame) {\n return;\n }\n let handle = 0;\n const callback = () => {\n if (!ref.current) {\n return;\n }\n onVideoFrame(ref.current);\n handle = ref.current.requestVideoFrameCallback(callback);\n };\n callback();\n return () => {\n current.cancelVideoFrameCallback(handle);\n };\n }, [onVideoFrame, ref]);\n};\n\n// src/video/VideoForPreview.tsx\nimport { jsx as jsx29 } from \"react/jsx-runtime\";\nvar VideoForDevelopmentRefForwardingFunction = (props2, ref) => {\n const context = useContext34(SharedAudioContext);\n if (!context) {\n throw new Error(\"SharedAudioContext not found\");\n }\n const videoRef = useRef19(null);\n const sharedSource = useMemo31(() => {\n if (!context.audioContext) {\n return null;\n }\n return makeSharedElementSourceNode({\n audioContext: context.audioContext,\n ref: videoRef\n });\n }, [context.audioContext]);\n const effectToUse = React30.useInsertionEffect ?? React30.useLayoutEffect;\n effectToUse(() => {\n return () => {\n requestAnimationFrame(() => {\n sharedSource?.cleanup();\n });\n };\n }, [sharedSource]);\n const {\n volume,\n muted,\n playbackRate,\n onlyWarnForMediaSeekingError,\n src,\n onDuration,\n acceptableTimeShift,\n acceptableTimeShiftInSeconds,\n toneFrequency,\n name,\n _remotionInternalNativeLoopPassed,\n _remotionInternalStack,\n style,\n pauseWhenBuffering,\n showInTimeline,\n loopVolumeCurveBehavior,\n onError,\n onAutoPlayError,\n onVideoFrame,\n crossOrigin,\n delayRenderRetries,\n delayRenderTimeoutInMilliseconds,\n allowAmplificationDuringRender,\n useWebAudioApi,\n audioStreamIndex,\n ...nativeProps\n } = props2;\n const _propsValid = true;\n if (!_propsValid) {\n throw new Error(\"typecheck error\");\n }\n const volumePropFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? \"repeat\");\n const { fps, durationInFrames } = useVideoConfig();\n const parentSequence = useContext34(SequenceContext);\n const { hidden } = useContext34(SequenceVisibilityToggleContext);\n const logLevel = useLogLevel();\n const mountTime = useMountTime();\n const [timelineId] = useState19(() => String(Math.random()));\n const isSequenceHidden = hidden[timelineId] ?? false;\n if (typeof acceptableTimeShift !== \"undefined\") {\n throw new Error(\"acceptableTimeShift has been removed. Use acceptableTimeShiftInSeconds instead.\");\n }\n const [mediaVolume] = useMediaVolumeState();\n const [mediaMuted] = useMediaMutedState();\n const userPreferredVolume = evaluateVolume({\n frame: volumePropFrame,\n volume,\n mediaVolume\n });\n warnAboutTooHighVolume(userPreferredVolume);\n useMediaInTimeline({\n volume,\n mediaVolume,\n mediaType: \"video\",\n src,\n playbackRate: props2.playbackRate ?? 1,\n displayName: name ?? null,\n id: timelineId,\n stack: _remotionInternalStack,\n showInTimeline,\n premountDisplay: parentSequence?.premountDisplay ?? null,\n postmountDisplay: parentSequence?.postmountDisplay ?? null,\n loopDisplay: undefined\n });\n useMediaPlayback({\n mediaRef: videoRef,\n src,\n mediaType: \"video\",\n playbackRate: props2.playbackRate ?? 1,\n onlyWarnForMediaSeekingError,\n acceptableTimeshift: acceptableTimeShiftInSeconds ?? null,\n isPremounting: Boolean(parentSequence?.premounting),\n isPostmounting: Boolean(parentSequence?.postmounting),\n pauseWhenBuffering,\n onAutoPlayError: onAutoPlayError ?? null\n });\n useMediaTag({\n id: timelineId,\n isPostmounting: Boolean(parentSequence?.postmounting),\n isPremounting: Boolean(parentSequence?.premounting),\n mediaRef: videoRef,\n mediaType: \"video\",\n onAutoPlayError: onAutoPlayError ?? null\n });\n useVolume({\n logLevel,\n mediaRef: videoRef,\n volume: userPreferredVolume,\n source: sharedSource,\n shouldUseWebAudioApi: useWebAudioApi ?? false\n });\n const actualFrom = parentSequence ? parentSequence.relativeFrom : 0;\n const duration = parentSequence ? Math.min(parentSequence.durationInFrames, durationInFrames) : durationInFrames;\n const preloadedSrc = usePreload(src);\n const actualSrc = useAppendVideoFragment({\n actualSrc: preloadedSrc,\n actualFrom,\n duration,\n fps\n });\n useImperativeHandle8(ref, () => {\n return videoRef.current;\n }, []);\n useState19(() => playbackLogging({\n logLevel,\n message: `Mounting video with source = ${actualSrc}, v=${VERSION}, user agent=${typeof navigator === \"undefined\" ? \"server\" : navigator.userAgent}`,\n tag: \"video\",\n mountTime\n }));\n useEffect16(() => {\n const { current } = videoRef;\n if (!current) {\n return;\n }\n const errorHandler = () => {\n if (current.error) {\n console.error(\"Error occurred in video\", current?.error);\n if (onError) {\n const err = new Error(`Code ${current.error.code}: ${current.error.message}`);\n onError(err);\n return;\n }\n throw new Error(`The browser threw an error while playing the video ${src}: Code ${current.error.code} - ${current?.error?.message}. See https://remotion.dev/docs/media-playback-error for help. Pass an onError() prop to handle the error.`);\n } else {\n if (onError) {\n const err = new Error(`The browser threw an error while playing the video ${src}`);\n onError(err);\n return;\n }\n throw new Error(\"The browser threw an error while playing the video\");\n }\n };\n current.addEventListener(\"error\", errorHandler, { once: true });\n return () => {\n current.removeEventListener(\"error\", errorHandler);\n };\n }, [onError, src]);\n const currentOnDurationCallback = useRef19(onDuration);\n currentOnDurationCallback.current = onDuration;\n useEmitVideoFrame({ ref: videoRef, onVideoFrame });\n useEffect16(() => {\n const { current } = videoRef;\n if (!current) {\n return;\n }\n if (current.duration) {\n currentOnDurationCallback.current?.(src, current.duration);\n return;\n }\n const onLoadedMetadata = () => {\n currentOnDurationCallback.current?.(src, current.duration);\n };\n current.addEventListener(\"loadedmetadata\", onLoadedMetadata);\n return () => {\n current.removeEventListener(\"loadedmetadata\", onLoadedMetadata);\n };\n }, [src]);\n useEffect16(() => {\n const { current } = videoRef;\n if (!current) {\n return;\n }\n if (isIosSafari()) {\n current.preload = \"metadata\";\n } else {\n current.preload = \"auto\";\n }\n }, []);\n const actualStyle = useMemo31(() => {\n return {\n ...style,\n opacity: isSequenceHidden ? 0 : style?.opacity ?? 1\n };\n }, [isSequenceHidden, style]);\n const crossOriginValue = getCrossOriginValue({\n crossOrigin,\n requestsVideoFrame: Boolean(onVideoFrame),\n isClientSideRendering: false\n });\n return /* @__PURE__ */ jsx29(\"video\", {\n ref: videoRef,\n muted: muted || mediaMuted || isSequenceHidden || userPreferredVolume <= 0,\n playsInline: true,\n src: actualSrc,\n loop: _remotionInternalNativeLoopPassed,\n style: actualStyle,\n disableRemotePlayback: true,\n crossOrigin: crossOriginValue,\n ...nativeProps\n });\n};\nvar VideoForPreview = forwardRef9(VideoForDevelopmentRefForwardingFunction);\n\n// src/video/OffthreadVideo.tsx\nimport { jsx as jsx30 } from \"react/jsx-runtime\";\nvar InnerOffthreadVideo = (props2) => {\n const {\n startFrom,\n endAt,\n trimBefore,\n trimAfter,\n name,\n pauseWhenBuffering,\n stack,\n showInTimeline,\n ...otherProps\n } = props2;\n const environment = useRemotionEnvironment();\n if (environment.isClientSideRendering) {\n throw new Error(\"<OffthreadVideo> is not supported in @remotion/web-renderer. Use <Video> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations\");\n }\n const onDuration = useCallback16(() => {\n return;\n }, []);\n if (typeof props2.src !== \"string\") {\n throw new TypeError(`The \\`<OffthreadVideo>\\` tag requires a string for \\`src\\`, but got ${JSON.stringify(props2.src)} instead.`);\n }\n validateMediaTrimProps({ startFrom, endAt, trimBefore, trimAfter });\n const { trimBeforeValue, trimAfterValue } = resolveTrimProps({\n startFrom,\n endAt,\n trimBefore,\n trimAfter\n });\n if (typeof trimBeforeValue !== \"undefined\" || typeof trimAfterValue !== \"undefined\") {\n return /* @__PURE__ */ jsx30(Sequence, {\n layout: \"none\",\n from: 0 - (trimBeforeValue ?? 0),\n showInTimeline: false,\n durationInFrames: trimAfterValue,\n name,\n children: /* @__PURE__ */ jsx30(InnerOffthreadVideo, {\n pauseWhenBuffering: pauseWhenBuffering ?? false,\n ...otherProps,\n trimAfter: undefined,\n name: undefined,\n showInTimeline,\n trimBefore: undefined,\n stack: undefined,\n startFrom: undefined,\n endAt: undefined\n })\n });\n }\n validateMediaProps(props2, \"Video\");\n if (environment.isRendering) {\n return /* @__PURE__ */ jsx30(OffthreadVideoForRendering, {\n pauseWhenBuffering: pauseWhenBuffering ?? false,\n ...otherProps,\n trimAfter: undefined,\n name: undefined,\n showInTimeline,\n trimBefore: undefined,\n stack: undefined,\n startFrom: undefined,\n endAt: undefined\n });\n }\n const {\n transparent,\n toneMapped,\n onAutoPlayError,\n onVideoFrame,\n crossOrigin,\n delayRenderRetries,\n delayRenderTimeoutInMilliseconds,\n ...propsForPreview\n } = otherProps;\n return /* @__PURE__ */ jsx30(VideoForPreview, {\n _remotionInternalStack: stack ?? null,\n onDuration,\n onlyWarnForMediaSeekingError: true,\n pauseWhenBuffering: pauseWhenBuffering ?? false,\n showInTimeline: showInTimeline ?? true,\n onAutoPlayError: onAutoPlayError ?? undefined,\n onVideoFrame: onVideoFrame ?? null,\n crossOrigin,\n ...propsForPreview,\n _remotionInternalNativeLoopPassed: false\n });\n};\nvar OffthreadVideo = ({\n src,\n acceptableTimeShiftInSeconds,\n allowAmplificationDuringRender,\n audioStreamIndex,\n className,\n crossOrigin,\n delayRenderRetries,\n delayRenderTimeoutInMilliseconds,\n id,\n loopVolumeCurveBehavior,\n muted,\n name,\n onAutoPlayError,\n onError,\n onVideoFrame,\n pauseWhenBuffering,\n playbackRate,\n showInTimeline,\n style,\n toneFrequency,\n toneMapped,\n transparent,\n trimAfter,\n trimBefore,\n useWebAudioApi,\n volume,\n _remotionInternalNativeLoopPassed,\n endAt,\n stack,\n startFrom,\n imageFormat\n}) => {\n if (imageFormat) {\n throw new TypeError(`The \\`<OffthreadVideo>\\` tag does no longer accept \\`imageFormat\\`. Use the \\`transparent\\` prop if you want to render a transparent video.`);\n }\n return /* @__PURE__ */ jsx30(InnerOffthreadVideo, {\n acceptableTimeShiftInSeconds,\n allowAmplificationDuringRender: allowAmplificationDuringRender ?? true,\n audioStreamIndex: audioStreamIndex ?? 0,\n className,\n crossOrigin,\n delayRenderRetries,\n delayRenderTimeoutInMilliseconds,\n id,\n loopVolumeCurveBehavior: loopVolumeCurveBehavior ?? \"repeat\",\n muted: muted ?? false,\n name,\n onAutoPlayError: onAutoPlayError ?? null,\n onError,\n onVideoFrame,\n pauseWhenBuffering: pauseWhenBuffering ?? true,\n playbackRate: playbackRate ?? 1,\n toneFrequency: toneFrequency ?? 1,\n showInTimeline: showInTimeline ?? true,\n src,\n stack,\n startFrom,\n _remotionInternalNativeLoopPassed: _remotionInternalNativeLoopPassed ?? false,\n endAt,\n style,\n toneMapped: toneMapped ?? true,\n transparent: transparent ?? false,\n trimAfter,\n trimBefore,\n useWebAudioApi: useWebAudioApi ?? false,\n volume\n });\n};\naddSequenceStackTraces(OffthreadVideo);\n\n// src/watch-static-file.ts\nvar WATCH_REMOTION_STATIC_FILES = \"remotion_staticFilesChanged\";\nvar watchStaticFile = (fileName, callback) => {\n if (ENABLE_V5_BREAKING_CHANGES) {\n throw new Error(\"watchStaticFile() has moved into the `@remotion/studio` package. Update your imports.\");\n }\n if (!getRemotionEnvironment().isStudio) {\n console.warn(\"The watchStaticFile() API is only available while using the Remotion Studio.\");\n return { cancel: () => {\n return;\n } };\n }\n const withoutStaticBase = fileName.startsWith(window.remotion_staticBase) ? fileName.replace(window.remotion_staticBase, \"\") : fileName;\n const withoutLeadingSlash = withoutStaticBase.startsWith(\"/\") ? withoutStaticBase.slice(1) : withoutStaticBase;\n let prevFileData = window.remotion_staticFiles.find((file) => file.name === withoutLeadingSlash);\n const checkFile = (event) => {\n const staticFiles = event.detail.files;\n const newFileData = staticFiles.find((file) => file.name === withoutLeadingSlash);\n if (!newFileData) {\n if (prevFileData !== undefined) {\n callback(null);\n }\n prevFileData = undefined;\n return;\n }\n if (prevFileData === undefined || prevFileData.lastModified !== newFileData.lastModified) {\n callback(newFileData);\n prevFileData = newFileData;\n }\n };\n window.addEventListener(WATCH_REMOTION_STATIC_FILES, checkFile);\n const cancel = () => {\n return window.removeEventListener(WATCH_REMOTION_STATIC_FILES, checkFile);\n };\n return { cancel };\n};\n\n// src/wrap-in-schema.ts\nimport React32, { forwardRef as forwardRef10, useMemo as useMemo32 } from \"react\";\nvar getNestedValue = (obj, key) => {\n const parts = key.split(\".\");\n let current = obj;\n for (const part of parts) {\n if (current === null || current === undefined || typeof current !== \"object\")\n return;\n current = current[part];\n }\n return current;\n};\nvar mergeValues = (props2, values, schemaKeys) => {\n const merged = { ...props2 };\n for (const key of schemaKeys) {\n const value = values[key];\n const parts = key.split(\".\");\n if (parts.length === 1) {\n merged[key] = value;\n continue;\n }\n let current = merged;\n for (let i = 0;i < parts.length - 1; i++) {\n const part = parts[i];\n if (typeof current[part] === \"object\" && current[part] !== null) {\n current[part] = { ...current[part] };\n } else {\n current[part] = {};\n }\n current = current[part];\n }\n current[parts[parts.length - 1]] = value;\n }\n return merged;\n};\nvar wrapInSchema = (Component, schema) => {\n const schemaKeys = Object.keys(schema);\n const Wrapped = forwardRef10((props2, ref) => {\n const env = useRemotionEnvironment();\n if (!env.isStudio || env.isReadOnlyStudio || env.isRendering || !process.env.EXPERIMENTAL_VISUAL_MODE_ENABLED) {\n return React32.createElement(Component, {\n ...props2,\n controls: null,\n ref\n });\n }\n const schemaInput = useMemo32(() => {\n const input = {};\n for (const key of schemaKeys) {\n input[key] = getNestedValue(props2, key);\n }\n return input;\n }, schemaKeys.map((key) => getNestedValue(props2, key)));\n const { controls, values } = useSchema(schema, schemaInput);\n const mergedProps = mergeValues(props2, values, schemaKeys);\n return React32.createElement(Component, {\n ...mergedProps,\n controls,\n ref\n });\n });\n Wrapped.displayName = `wrapInSchema(${Component.displayName || Component.name || \"Component\"})`;\n return Wrapped;\n};\n\n// src/wrap-remotion-context.tsx\nimport React33, { useMemo as useMemo33 } from \"react\";\nimport { jsx as jsx31 } from \"react/jsx-runtime\";\nfunction useRemotionContexts() {\n const compositionManagerCtx = React33.useContext(CompositionManager);\n const timelineContext = React33.useContext(TimelineContext);\n const setTimelineContext = React33.useContext(SetTimelineContext);\n const sequenceContext = React33.useContext(SequenceContext);\n const nonceContext = React33.useContext(NonceContext);\n const canUseRemotionHooksContext = React33.useContext(CanUseRemotionHooks);\n const preloadContext = React33.useContext(PreloadContext);\n const resolveCompositionContext = React33.useContext(ResolveCompositionContext);\n const renderAssetManagerContext = React33.useContext(RenderAssetManager);\n const sequenceManagerContext = React33.useContext(SequenceManager);\n const bufferManagerContext = React33.useContext(BufferingContextReact);\n const logLevelContext = React33.useContext(LogLevelContext);\n return useMemo33(() => ({\n compositionManagerCtx,\n timelineContext,\n setTimelineContext,\n sequenceContext,\n nonceContext,\n canUseRemotionHooksContext,\n preloadContext,\n resolveCompositionContext,\n renderAssetManagerContext,\n sequenceManagerContext,\n bufferManagerContext,\n logLevelContext\n }), [\n compositionManagerCtx,\n nonceContext,\n sequenceContext,\n setTimelineContext,\n timelineContext,\n canUseRemotionHooksContext,\n preloadContext,\n resolveCompositionContext,\n renderAssetManagerContext,\n sequenceManagerContext,\n bufferManagerContext,\n logLevelContext\n ]);\n}\nvar RemotionContextProvider = (props2) => {\n const { children, contexts } = props2;\n return /* @__PURE__ */ jsx31(LogLevelContext.Provider, {\n value: contexts.logLevelContext,\n children: /* @__PURE__ */ jsx31(CanUseRemotionHooks.Provider, {\n value: contexts.canUseRemotionHooksContext,\n children: /* @__PURE__ */ jsx31(NonceContext.Provider, {\n value: contexts.nonceContext,\n children: /* @__PURE__ */ jsx31(PreloadContext.Provider, {\n value: contexts.preloadContext,\n children: /* @__PURE__ */ jsx31(CompositionManager.Provider, {\n value: contexts.compositionManagerCtx,\n children: /* @__PURE__ */ jsx31(SequenceManager.Provider, {\n value: contexts.sequenceManagerContext,\n children: /* @__PURE__ */ jsx31(RenderAssetManager.Provider, {\n value: contexts.renderAssetManagerContext,\n children: /* @__PURE__ */ jsx31(ResolveCompositionContext.Provider, {\n value: contexts.resolveCompositionContext,\n children: /* @__PURE__ */ jsx31(TimelineContext.Provider, {\n value: contexts.timelineContext,\n children: /* @__PURE__ */ jsx31(SetTimelineContext.Provider, {\n value: contexts.setTimelineContext,\n children: /* @__PURE__ */ jsx31(SequenceContext.Provider, {\n value: contexts.sequenceContext,\n children: /* @__PURE__ */ jsx31(BufferingContextReact.Provider, {\n value: contexts.bufferManagerContext,\n children\n })\n })\n })\n })\n })\n })\n })\n })\n })\n })\n })\n });\n};\n\n// src/internals.ts\nvar compositionSelectorRef = createRef3();\nvar Internals = {\n MaxMediaCacheSizeContext,\n useUnsafeVideoConfig,\n useFrameForVolumeProp,\n useTimelinePosition,\n useAbsoluteTimelinePosition,\n evaluateVolume,\n getAbsoluteSrc,\n Timeline: exports_timeline_position_state,\n validateMediaTrimProps,\n validateMediaProps,\n resolveTrimProps,\n VideoForPreview,\n CompositionManager,\n CompositionSetters,\n VisualModeOverridesContext,\n SequenceManager,\n SequenceStackTracesUpdateContext,\n SequenceVisibilityToggleContext,\n useSchema,\n wrapInSchema,\n useSequenceControlOverride,\n RemotionRootContexts,\n CompositionManagerProvider,\n useVideo,\n getRoot,\n useMediaVolumeState,\n useMediaMutedState,\n useMediaInTimeline,\n useLazyComponent,\n truthy,\n SequenceContext,\n PremountContext,\n useRemotionContexts,\n RemotionContextProvider,\n CSSUtils: exports_default_css,\n setupEnvVariables,\n MediaVolumeContext,\n SetMediaVolumeContext,\n getRemotionEnvironment,\n SharedAudioContext,\n SharedAudioContextProvider,\n invalidCompositionErrorMessage,\n calculateMediaDuration,\n isCompositionIdValid,\n getPreviewDomElement,\n compositionsRef,\n portalNode,\n waitForRoot,\n SetTimelineContext,\n CanUseRemotionHooksProvider,\n CanUseRemotionHooks,\n PrefetchProvider,\n DurationsContextProvider,\n IsPlayerContextProvider,\n useIsPlayer,\n EditorPropsProvider,\n EditorPropsContext,\n usePreload,\n NonceContext,\n resolveVideoConfig,\n resolveVideoConfigOrCatch,\n ResolveCompositionContext,\n useResolvedVideoConfig,\n resolveCompositionsRef,\n REMOTION_STUDIO_CONTAINER_ELEMENT,\n RenderAssetManager,\n persistCurrentFrame,\n useTimelineContext,\n useTimelineSetFrame,\n isIosSafari,\n WATCH_REMOTION_STATIC_FILES,\n addSequenceStackTraces,\n useMediaStartsAt,\n BufferingProvider,\n BufferingContextReact,\n getComponentsToAddStacksTo,\n CurrentScaleContext,\n PreviewSizeContext,\n calculateScale,\n validateRenderAsset,\n Log,\n LogLevelContext,\n useLogLevel,\n playbackLogging,\n timeValueRef,\n compositionSelectorRef,\n RemotionEnvironmentContext,\n warnAboutTooHighVolume,\n AudioForPreview,\n OBJECTFIT_CONTAIN_CLASS_NAME,\n InnerOffthreadVideo,\n useBasicMediaInTimeline,\n getInputPropsOverride,\n setInputPropsOverride,\n useVideoEnabled,\n useAudioEnabled,\n useIsPlayerBuffering,\n TimelinePosition: exports_timeline_position_state,\n DelayRenderContextType,\n TimelineContext,\n AbsoluteTimeContext,\n RenderAssetManagerProvider,\n getEffectiveVisualModeValue\n};\n// src/interpolate-colors.ts\nvar NUMBER = \"[-+]?\\\\d*\\\\.?\\\\d+\";\nvar PERCENTAGE = NUMBER + \"%\";\nfunction call(...args) {\n return \"\\\\(\\\\s*(\" + args.join(\")\\\\s*,\\\\s*(\") + \")\\\\s*\\\\)\";\n}\nvar MODERN_VALUE = \"(?:none|[-+]?\\\\d*\\\\.?\\\\d+(?:%|deg|rad|grad|turn)?)\";\nfunction modernColorCall(name) {\n return new RegExp(name + \"\\\\(\\\\s*(\" + MODERN_VALUE + \")\\\\s+(\" + MODERN_VALUE + \")\\\\s+(\" + MODERN_VALUE + \")(?:\\\\s*\\\\/\\\\s*(\" + MODERN_VALUE + \"))?\\\\s*\\\\)\");\n}\nfunction getMatchers() {\n const cachedMatchers = {\n rgb: undefined,\n rgba: undefined,\n hsl: undefined,\n hsla: undefined,\n hex3: undefined,\n hex4: undefined,\n hex5: undefined,\n hex6: undefined,\n hex8: undefined,\n oklch: undefined,\n oklab: undefined,\n lab: undefined,\n lch: undefined,\n hwb: undefined\n };\n if (cachedMatchers.rgb === undefined) {\n cachedMatchers.rgb = new RegExp(\"rgb\" + call(NUMBER, NUMBER, NUMBER));\n cachedMatchers.rgba = new RegExp(\"rgba\" + call(NUMBER, NUMBER, NUMBER, NUMBER));\n cachedMatchers.hsl = new RegExp(\"hsl\" + call(NUMBER, PERCENTAGE, PERCENTAGE));\n cachedMatchers.hsla = new RegExp(\"hsla\" + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));\n cachedMatchers.hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex6 = /^#([0-9a-fA-F]{6})$/;\n cachedMatchers.hex8 = /^#([0-9a-fA-F]{8})$/;\n cachedMatchers.oklch = modernColorCall(\"oklch\");\n cachedMatchers.oklab = modernColorCall(\"oklab\");\n cachedMatchers.lab = modernColorCall(\"lab\");\n cachedMatchers.lch = modernColorCall(\"lch\");\n cachedMatchers.hwb = modernColorCall(\"hwb\");\n }\n return cachedMatchers;\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b2 = hue2rgb(p, q, h - 1 / 3);\n return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b2 * 255) << 8;\n}\nfunction parse255(str) {\n const int = Number.parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\nfunction parse360(str) {\n const int = Number.parseFloat(str);\n return (int % 360 + 360) % 360 / 360;\n}\nfunction parse1(str) {\n const num = Number.parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\nfunction parsePercentage(str) {\n const int = Number.parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\nfunction parseModernComponent(str, percentScale) {\n if (str === \"none\")\n return 0;\n if (str.endsWith(\"%\")) {\n return Number.parseFloat(str) / 100 * percentScale;\n }\n return Number.parseFloat(str);\n}\nfunction parseHueAngle(str) {\n if (str === \"none\")\n return 0;\n if (str.endsWith(\"rad\")) {\n return Number.parseFloat(str) * 180 / Math.PI;\n }\n if (str.endsWith(\"grad\"))\n return Number.parseFloat(str) * 0.9;\n if (str.endsWith(\"turn\"))\n return Number.parseFloat(str) * 360;\n return Number.parseFloat(str);\n}\nfunction parseModernAlpha(str) {\n if (str === undefined || str === \"none\")\n return 1;\n if (str.endsWith(\"%\")) {\n return Math.max(0, Math.min(1, Number.parseFloat(str) / 100));\n }\n return Math.max(0, Math.min(1, Number.parseFloat(str)));\n}\nfunction linearToSrgb(c2) {\n if (c2 <= 0.0031308)\n return 12.92 * c2;\n return 1.055 * c2 ** (1 / 2.4) - 0.055;\n}\nfunction clamp01(v) {\n return Math.max(0, Math.min(1, v));\n}\nfunction rgbFloatToInt(r, g, b2, alpha) {\n const ri = Math.round(clamp01(r) * 255);\n const gi = Math.round(clamp01(g) * 255);\n const bi = Math.round(clamp01(b2) * 255);\n const ai = Math.round(clamp01(alpha) * 255);\n return (ri << 24 | gi << 16 | bi << 8 | ai) >>> 0;\n}\nfunction oklabToSrgb(L, a2, b2) {\n const l_ = L + 0.3963377774 * a2 + 0.2158037573 * b2;\n const m_ = L - 0.1055613458 * a2 - 0.0638541728 * b2;\n const s_ = L - 0.0894841775 * a2 - 1.291485548 * b2;\n const l = l_ * l_ * l_;\n const m = m_ * m_ * m_;\n const s = s_ * s_ * s_;\n const rLin = 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s;\n const gLin = -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s;\n const bLin = -0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s;\n return [linearToSrgb(rLin), linearToSrgb(gLin), linearToSrgb(bLin)];\n}\nfunction labToSrgb(L, a2, b2) {\n const epsilon = 216 / 24389;\n const kappa = 24389 / 27;\n const Xn = 0.95047;\n const Yn = 1;\n const Zn = 1.08883;\n const fy = (L + 16) / 116;\n const fx = a2 / 500 + fy;\n const fz = fy - b2 / 200;\n const fx3 = fx * fx * fx;\n const fz3 = fz * fz * fz;\n const xr = fx3 > epsilon ? fx3 : (116 * fx - 16) / kappa;\n const yr = L > kappa * epsilon ? ((L + 16) / 116) ** 3 : L / kappa;\n const zr = fz3 > epsilon ? fz3 : (116 * fz - 16) / kappa;\n const X = xr * Xn;\n const Y = yr * Yn;\n const Z = zr * Zn;\n const rLin = 3.2404542 * X - 1.5371385 * Y - 0.4985314 * Z;\n const gLin = -0.969266 * X + 1.8760108 * Y + 0.041556 * Z;\n const bLin = 0.0556434 * X - 0.2040259 * Y + 1.0572252 * Z;\n return [linearToSrgb(rLin), linearToSrgb(gLin), linearToSrgb(bLin)];\n}\nfunction hwbToSrgb(h, w, bk) {\n if (w + bk >= 1) {\n const gray = w / (w + bk);\n return [gray, gray, gray];\n }\n const q = 1;\n const p = 0;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const bl = hue2rgb(p, q, h - 1 / 3);\n const factor = 1 - w - bk;\n return [r * factor + w, g * factor + w, bl * factor + w];\n}\nvar colorNames = {\n transparent: 0,\n aliceblue: 4042850303,\n antiquewhite: 4209760255,\n aqua: 16777215,\n aquamarine: 2147472639,\n azure: 4043309055,\n beige: 4126530815,\n bisque: 4293182719,\n black: 255,\n blanchedalmond: 4293643775,\n blue: 65535,\n blueviolet: 2318131967,\n brown: 2771004159,\n burlywood: 3736635391,\n burntsienna: 3934150143,\n cadetblue: 1604231423,\n chartreuse: 2147418367,\n chocolate: 3530104575,\n coral: 4286533887,\n cornflowerblue: 1687547391,\n cornsilk: 4294499583,\n crimson: 3692313855,\n cyan: 16777215,\n darkblue: 35839,\n darkcyan: 9145343,\n darkgoldenrod: 3095792639,\n darkgray: 2846468607,\n darkgreen: 6553855,\n darkgrey: 2846468607,\n darkkhaki: 3182914559,\n darkmagenta: 2332068863,\n darkolivegreen: 1433087999,\n darkorange: 4287365375,\n darkorchid: 2570243327,\n darkred: 2332033279,\n darksalmon: 3918953215,\n darkseagreen: 2411499519,\n darkslateblue: 1211993087,\n darkslategray: 793726975,\n darkslategrey: 793726975,\n darkturquoise: 13554175,\n darkviolet: 2483082239,\n deeppink: 4279538687,\n deepskyblue: 12582911,\n dimgray: 1768516095,\n dimgrey: 1768516095,\n dodgerblue: 512819199,\n firebrick: 2988581631,\n floralwhite: 4294635775,\n forestgreen: 579543807,\n fuchsia: 4278255615,\n gainsboro: 3705462015,\n ghostwhite: 4177068031,\n gold: 4292280575,\n goldenrod: 3668254975,\n gray: 2155905279,\n green: 8388863,\n greenyellow: 2919182335,\n grey: 2155905279,\n honeydew: 4043305215,\n hotpink: 4285117695,\n indianred: 3445382399,\n indigo: 1258324735,\n ivory: 4294963455,\n khaki: 4041641215,\n lavender: 3873897215,\n lavenderblush: 4293981695,\n lawngreen: 2096890111,\n lemonchiffon: 4294626815,\n lightblue: 2916673279,\n lightcoral: 4034953471,\n lightcyan: 3774873599,\n lightgoldenrodyellow: 4210742015,\n lightgray: 3553874943,\n lightgreen: 2431553791,\n lightgrey: 3553874943,\n lightpink: 4290167295,\n lightsalmon: 4288707327,\n lightseagreen: 548580095,\n lightskyblue: 2278488831,\n lightslategray: 2005441023,\n lightslategrey: 2005441023,\n lightsteelblue: 2965692159,\n lightyellow: 4294959359,\n lime: 16711935,\n limegreen: 852308735,\n linen: 4210091775,\n magenta: 4278255615,\n maroon: 2147483903,\n mediumaquamarine: 1724754687,\n mediumblue: 52735,\n mediumorchid: 3126187007,\n mediumpurple: 2473647103,\n mediumseagreen: 1018393087,\n mediumslateblue: 2070474495,\n mediumspringgreen: 16423679,\n mediumturquoise: 1221709055,\n mediumvioletred: 3340076543,\n midnightblue: 421097727,\n mintcream: 4127193855,\n mistyrose: 4293190143,\n moccasin: 4293178879,\n navajowhite: 4292783615,\n navy: 33023,\n oldlace: 4260751103,\n olive: 2155872511,\n olivedrab: 1804477439,\n orange: 4289003775,\n orangered: 4282712319,\n orchid: 3664828159,\n palegoldenrod: 4008225535,\n palegreen: 2566625535,\n paleturquoise: 2951671551,\n palevioletred: 3681588223,\n papayawhip: 4293907967,\n peachpuff: 4292524543,\n peru: 3448061951,\n pink: 4290825215,\n plum: 3718307327,\n powderblue: 2967529215,\n purple: 2147516671,\n rebeccapurple: 1714657791,\n red: 4278190335,\n rosybrown: 3163525119,\n royalblue: 1097458175,\n saddlebrown: 2336560127,\n salmon: 4202722047,\n sandybrown: 4104413439,\n seagreen: 780883967,\n seashell: 4294307583,\n sienna: 2689740287,\n silver: 3233857791,\n skyblue: 2278484991,\n slateblue: 1784335871,\n slategray: 1887473919,\n slategrey: 1887473919,\n snow: 4294638335,\n springgreen: 16744447,\n steelblue: 1182971135,\n tan: 3535047935,\n teal: 8421631,\n thistle: 3636451583,\n tomato: 4284696575,\n turquoise: 1088475391,\n violet: 4001558271,\n wheat: 4125012991,\n white: 4294967295,\n whitesmoke: 4126537215,\n yellow: 4294902015,\n yellowgreen: 2597139199\n};\nfunction normalizeColor(color) {\n const matchers = getMatchers();\n let match;\n if (matchers.hex6) {\n if (match = matchers.hex6.exec(color)) {\n return Number.parseInt(match[1] + \"ff\", 16) >>> 0;\n }\n }\n if (colorNames[color] !== undefined) {\n return colorNames[color];\n }\n if (matchers.rgb) {\n if (match = matchers.rgb.exec(color)) {\n return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | 255) >>> 0;\n }\n }\n if (matchers.rgba) {\n if (match = matchers.rgba.exec(color)) {\n return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | parse1(match[4])) >>> 0;\n }\n }\n if (matchers.hex3) {\n if (match = matchers.hex3.exec(color)) {\n return Number.parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + \"ff\", 16) >>> 0;\n }\n }\n if (matchers.hex8) {\n if (match = matchers.hex8.exec(color)) {\n return Number.parseInt(match[1], 16) >>> 0;\n }\n }\n if (matchers.hex4) {\n if (match = matchers.hex4.exec(color)) {\n return Number.parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + match[4] + match[4], 16) >>> 0;\n }\n }\n if (matchers.hsl) {\n if (match = matchers.hsl.exec(color)) {\n return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | 255) >>> 0;\n }\n }\n if (matchers.hsla) {\n if (match = matchers.hsla.exec(color)) {\n return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | parse1(match[4])) >>> 0;\n }\n }\n if (matchers.oklch) {\n if (match = matchers.oklch.exec(color)) {\n const L = parseModernComponent(match[1], 1);\n const C = parseModernComponent(match[2], 0.4);\n const H = parseHueAngle(match[3]);\n const alpha = parseModernAlpha(match[4]);\n const hRad = H * Math.PI / 180;\n const [r, g, b2] = oklabToSrgb(L, C * Math.cos(hRad), C * Math.sin(hRad));\n return rgbFloatToInt(r, g, b2, alpha);\n }\n }\n if (matchers.oklab) {\n if (match = matchers.oklab.exec(color)) {\n const L = parseModernComponent(match[1], 1);\n const a2 = parseModernComponent(match[2], 0.4);\n const b2 = parseModernComponent(match[3], 0.4);\n const alpha = parseModernAlpha(match[4]);\n const [r, g, bl] = oklabToSrgb(L, a2, b2);\n return rgbFloatToInt(r, g, bl, alpha);\n }\n }\n if (matchers.lab) {\n if (match = matchers.lab.exec(color)) {\n const L = parseModernComponent(match[1], 100);\n const a2 = parseModernComponent(match[2], 125);\n const b2 = parseModernComponent(match[3], 125);\n const alpha = parseModernAlpha(match[4]);\n const [r, g, bl] = labToSrgb(L, a2, b2);\n return rgbFloatToInt(r, g, bl, alpha);\n }\n }\n if (matchers.lch) {\n if (match = matchers.lch.exec(color)) {\n const L = parseModernComponent(match[1], 100);\n const C = parseModernComponent(match[2], 150);\n const H = parseHueAngle(match[3]);\n const alpha = parseModernAlpha(match[4]);\n const hRad = H * Math.PI / 180;\n const [r, g, bl] = labToSrgb(L, C * Math.cos(hRad), C * Math.sin(hRad));\n return rgbFloatToInt(r, g, bl, alpha);\n }\n }\n if (matchers.hwb) {\n if (match = matchers.hwb.exec(color)) {\n const H = parseHueAngle(match[1]);\n const W = parseModernComponent(match[2], 1);\n const B = parseModernComponent(match[3], 1);\n const alpha = parseModernAlpha(match[4]);\n const [r, g, bl] = hwbToSrgb(H / 360, W, B);\n return rgbFloatToInt(r, g, bl, alpha);\n }\n }\n throw new Error(`invalid color string ${color} provided`);\n}\nvar opacity = (c2) => {\n return (c2 >> 24 & 255) / 255;\n};\nvar red = (c2) => {\n return c2 >> 16 & 255;\n};\nvar green = (c2) => {\n return c2 >> 8 & 255;\n};\nvar blue = (c2) => {\n return c2 & 255;\n};\nvar rgbaColor = (r, g, b2, alpha) => {\n return `rgba(${r}, ${g}, ${b2}, ${alpha})`;\n};\nfunction processColor(color) {\n const normalizedColor = normalizeColor(color);\n return (normalizedColor << 24 | normalizedColor >>> 8) >>> 0;\n}\nvar interpolateColorsRGB = (value, inputRange, colors) => {\n const [r, g, b2, a2] = [red, green, blue, opacity].map((f) => {\n const unrounded = interpolate(value, inputRange, colors.map((c2) => f(c2)), {\n extrapolateLeft: \"clamp\",\n extrapolateRight: \"clamp\"\n });\n if (f === opacity) {\n return Number(unrounded.toFixed(3));\n }\n return Math.round(unrounded);\n });\n return rgbaColor(r, g, b2, a2);\n};\nvar interpolateColors = (input, inputRange, outputRange) => {\n if (typeof input === \"undefined\") {\n throw new TypeError(\"input can not be undefined\");\n }\n if (typeof inputRange === \"undefined\") {\n throw new TypeError(\"inputRange can not be undefined\");\n }\n if (typeof outputRange === \"undefined\") {\n throw new TypeError(\"outputRange can not be undefined\");\n }\n if (inputRange.length !== outputRange.length) {\n throw new TypeError(\"inputRange (\" + inputRange.length + \" values provided) and outputRange (\" + outputRange.length + \" values provided) must have the same length\");\n }\n const processedOutputRange = outputRange.map((c2) => processColor(c2));\n return interpolateColorsRGB(input, inputRange, processedOutputRange);\n};\n// src/validate-frame.ts\nvar validateFrame = ({\n allowFloats,\n durationInFrames,\n frame\n}) => {\n if (typeof frame === \"undefined\") {\n throw new TypeError(`Argument missing for parameter \"frame\"`);\n }\n if (typeof frame !== \"number\") {\n throw new TypeError(`Argument passed for \"frame\" is not a number: ${frame}`);\n }\n if (!Number.isFinite(frame)) {\n throw new RangeError(`Frame ${frame} is not finite`);\n }\n if (frame % 1 !== 0 && !allowFloats) {\n throw new RangeError(`Argument for frame must be an integer, but got ${frame}`);\n }\n if (frame < 0 && frame < -durationInFrames) {\n throw new RangeError(`Cannot use frame ${frame}: Duration of composition is ${durationInFrames}, therefore the lowest frame that can be rendered is ${-durationInFrames}`);\n }\n if (frame > durationInFrames - 1) {\n throw new RangeError(`Cannot use frame ${frame}: Duration of composition is ${durationInFrames}, therefore the highest frame that can be rendered is ${durationInFrames - 1}`);\n }\n};\n// src/series/index.tsx\nimport { Children, forwardRef as forwardRef11, useMemo as useMemo34 } from \"react\";\n\n// src/series/flatten-children.tsx\nimport React34 from \"react\";\nvar flattenChildren = (children) => {\n const childrenArray = React34.Children.toArray(children);\n return childrenArray.reduce((flatChildren, child) => {\n if (child.type === React34.Fragment) {\n return flatChildren.concat(flattenChildren(child.props.children));\n }\n flatChildren.push(child);\n return flatChildren;\n }, []);\n};\n\n// src/series/is-inside-series.tsx\nimport React35, { createContext as createContext22 } from \"react\";\nimport { jsx as jsx32 } from \"react/jsx-runtime\";\nvar IsInsideSeriesContext = createContext22(false);\nvar IsInsideSeriesContainer = ({ children }) => {\n return /* @__PURE__ */ jsx32(IsInsideSeriesContext.Provider, {\n value: true,\n children\n });\n};\nvar IsNotInsideSeriesProvider = ({ children }) => {\n return /* @__PURE__ */ jsx32(IsInsideSeriesContext.Provider, {\n value: false,\n children\n });\n};\nvar useRequireToBeInsideSeries = () => {\n const isInsideSeries = React35.useContext(IsInsideSeriesContext);\n if (!isInsideSeries) {\n throw new Error(\"This component must be inside a <Series /> component.\");\n }\n};\n\n// src/series/index.tsx\nimport { jsx as jsx33 } from \"react/jsx-runtime\";\nvar SeriesSequenceRefForwardingFunction = ({ children }, _ref) => {\n useRequireToBeInsideSeries();\n return /* @__PURE__ */ jsx33(IsNotInsideSeriesProvider, {\n children\n });\n};\nvar SeriesSequence = forwardRef11(SeriesSequenceRefForwardingFunction);\nvar Series = (props2) => {\n const childrenValue = useMemo34(() => {\n let startFrame = 0;\n const flattenedChildren = flattenChildren(props2.children);\n return Children.map(flattenedChildren, (child, i) => {\n const castedChild = child;\n if (typeof castedChild === \"string\") {\n if (castedChild.trim() === \"\") {\n return null;\n }\n throw new TypeError(`The <Series /> component only accepts a list of <Series.Sequence /> components as its children, but you passed a string \"${castedChild}\"`);\n }\n if (castedChild.type !== SeriesSequence) {\n throw new TypeError(`The <Series /> component only accepts a list of <Series.Sequence /> components as its children, but got ${castedChild} instead`);\n }\n const debugInfo = `index = ${i}, duration = ${castedChild.props.durationInFrames}`;\n if (!castedChild?.props.children) {\n throw new TypeError(`A <Series.Sequence /> component (${debugInfo}) was detected to not have any children. Delete it to fix this error.`);\n }\n const durationInFramesProp = castedChild.props.durationInFrames;\n const {\n durationInFrames,\n children: _children,\n from,\n name,\n ...passedProps\n } = castedChild.props;\n if (i !== flattenedChildren.length - 1 || durationInFramesProp !== Infinity) {\n validateDurationInFrames(durationInFramesProp, {\n component: `of a <Series.Sequence /> component`,\n allowFloats: true\n });\n }\n const offset = castedChild.props.offset ?? 0;\n if (Number.isNaN(offset)) {\n throw new TypeError(`The \"offset\" property of a <Series.Sequence /> must not be NaN, but got NaN (${debugInfo}).`);\n }\n if (!Number.isFinite(offset)) {\n throw new TypeError(`The \"offset\" property of a <Series.Sequence /> must be finite, but got ${offset} (${debugInfo}).`);\n }\n if (offset % 1 !== 0) {\n throw new TypeError(`The \"offset\" property of a <Series.Sequence /> must be finite, but got ${offset} (${debugInfo}).`);\n }\n const currentStartFrame = startFrame + offset;\n startFrame += durationInFramesProp + offset;\n return /* @__PURE__ */ jsx33(Sequence, {\n name: name || \"<Series.Sequence>\",\n from: currentStartFrame,\n durationInFrames: durationInFramesProp,\n ...passedProps,\n ref: castedChild.ref,\n children: child\n });\n });\n }, [props2.children]);\n if (ENABLE_V5_BREAKING_CHANGES) {\n return /* @__PURE__ */ jsx33(IsInsideSeriesContainer, {\n children: /* @__PURE__ */ jsx33(Sequence, {\n ...props2,\n children: childrenValue\n })\n });\n }\n return /* @__PURE__ */ jsx33(IsInsideSeriesContainer, {\n children: childrenValue\n });\n};\nSeries.Sequence = SeriesSequence;\naddSequenceStackTraces(SeriesSequence);\n// src/validation/validation-spring-duration.ts\nvar validateSpringDuration = (dur) => {\n if (typeof dur === \"undefined\") {\n return;\n }\n if (typeof dur !== \"number\") {\n throw new TypeError(`A \"duration\" of a spring must be a \"number\" but is \"${typeof dur}\"`);\n }\n if (Number.isNaN(dur)) {\n throw new TypeError('A \"duration\" of a spring is NaN, which it must not be');\n }\n if (!Number.isFinite(dur)) {\n throw new TypeError('A \"duration\" of a spring must be finite, but is ' + dur);\n }\n if (dur <= 0) {\n throw new TypeError('A \"duration\" of a spring must be positive, but is ' + dur);\n }\n};\n\n// src/spring/spring-utils.ts\nvar defaultSpringConfig = {\n damping: 10,\n mass: 1,\n stiffness: 100,\n overshootClamping: false\n};\nvar advanceCache = {};\nfunction advance({\n animation,\n now,\n config\n}) {\n const { toValue, lastTimestamp, current, velocity } = animation;\n const deltaTime = Math.min(now - lastTimestamp, 64);\n if (config.damping <= 0) {\n throw new Error(\"Spring damping must be greater than 0, otherwise the spring() animation will never end, causing an infinite loop.\");\n }\n const c2 = config.damping;\n const m = config.mass;\n const k = config.stiffness;\n const cacheKey = [\n toValue,\n lastTimestamp,\n current,\n velocity,\n c2,\n m,\n k,\n now\n ].join(\"-\");\n if (advanceCache[cacheKey]) {\n return advanceCache[cacheKey];\n }\n const v0 = -velocity;\n const x0 = toValue - current;\n const zeta = c2 / (2 * Math.sqrt(k * m));\n const omega0 = Math.sqrt(k / m);\n const omega1 = omega0 * Math.sqrt(1 - zeta ** 2);\n const t = deltaTime / 1000;\n const sin1 = Math.sin(omega1 * t);\n const cos1 = Math.cos(omega1 * t);\n const underDampedEnvelope = Math.exp(-zeta * omega0 * t);\n const underDampedFrag1 = underDampedEnvelope * (sin1 * ((v0 + zeta * omega0 * x0) / omega1) + x0 * cos1);\n const underDampedPosition = toValue - underDampedFrag1;\n const underDampedVelocity = zeta * omega0 * underDampedFrag1 - underDampedEnvelope * (cos1 * (v0 + zeta * omega0 * x0) - omega1 * x0 * sin1);\n const criticallyDampedEnvelope = Math.exp(-omega0 * t);\n const criticallyDampedPosition = toValue - criticallyDampedEnvelope * (x0 + (v0 + omega0 * x0) * t);\n const criticallyDampedVelocity = criticallyDampedEnvelope * (v0 * (t * omega0 - 1) + t * x0 * omega0 * omega0);\n const animationNode = {\n toValue,\n prevPosition: current,\n lastTimestamp: now,\n current: zeta < 1 ? underDampedPosition : criticallyDampedPosition,\n velocity: zeta < 1 ? underDampedVelocity : criticallyDampedVelocity\n };\n advanceCache[cacheKey] = animationNode;\n return animationNode;\n}\nvar calculationCache = {};\nfunction springCalculation({\n frame,\n fps,\n config = {}\n}) {\n const from = 0;\n const to = 1;\n const cacheKey = [\n frame,\n fps,\n config.damping,\n config.mass,\n config.overshootClamping,\n config.stiffness\n ].join(\"-\");\n if (calculationCache[cacheKey]) {\n return calculationCache[cacheKey];\n }\n let animation = {\n lastTimestamp: 0,\n current: from,\n toValue: to,\n velocity: 0,\n prevPosition: 0\n };\n const frameClamped = Math.max(0, frame);\n const unevenRest = frameClamped % 1;\n for (let f = 0;f <= Math.floor(frameClamped); f++) {\n if (f === Math.floor(frameClamped)) {\n f += unevenRest;\n }\n const time = f / fps * 1000;\n animation = advance({\n animation,\n now: time,\n config: {\n ...defaultSpringConfig,\n ...config\n }\n });\n }\n calculationCache[cacheKey] = animation;\n return animation;\n}\n\n// src/spring/measure-spring.ts\nvar cache = new Map;\nfunction measureSpring({\n fps,\n config = {},\n threshold = 0.005\n}) {\n if (typeof threshold !== \"number\") {\n throw new TypeError(`threshold must be a number, got ${threshold} of type ${typeof threshold}`);\n }\n if (threshold === 0) {\n return Infinity;\n }\n if (threshold === 1) {\n return 0;\n }\n if (isNaN(threshold)) {\n throw new TypeError(\"Threshold is NaN\");\n }\n if (!Number.isFinite(threshold)) {\n throw new TypeError(\"Threshold is not finite\");\n }\n if (threshold < 0) {\n throw new TypeError(\"Threshold is below 0\");\n }\n const cacheKey = [\n fps,\n config.damping,\n config.mass,\n config.overshootClamping,\n config.stiffness,\n threshold\n ].join(\"-\");\n if (cache.has(cacheKey)) {\n return cache.get(cacheKey);\n }\n validateFps(fps, \"to the measureSpring() function\", false);\n let frame = 0;\n let finishedFrame = 0;\n const calc = () => {\n return springCalculation({\n fps,\n frame,\n config\n });\n };\n let animation = calc();\n const calcDifference = () => {\n return Math.abs(animation.current - animation.toValue);\n };\n let difference = calcDifference();\n while (difference >= threshold) {\n frame++;\n animation = calc();\n difference = calcDifference();\n }\n finishedFrame = frame;\n for (let i = 0;i < 20; i++) {\n frame++;\n animation = calc();\n difference = calcDifference();\n if (difference >= threshold) {\n i = 0;\n finishedFrame = frame + 1;\n }\n }\n cache.set(cacheKey, finishedFrame);\n return finishedFrame;\n}\n\n// src/spring/index.ts\nfunction spring({\n frame: passedFrame,\n fps,\n config = {},\n from = 0,\n to = 1,\n durationInFrames: passedDurationInFrames,\n durationRestThreshold,\n delay = 0,\n reverse = false\n}) {\n validateSpringDuration(passedDurationInFrames);\n validateFrame({\n frame: passedFrame,\n durationInFrames: Infinity,\n allowFloats: true\n });\n validateFps(fps, \"to spring()\", false);\n const needsToCalculateNaturalDuration = reverse || typeof passedDurationInFrames !== \"undefined\";\n const naturalDuration = needsToCalculateNaturalDuration ? measureSpring({\n fps,\n config,\n threshold: durationRestThreshold\n }) : undefined;\n const naturalDurationGetter = needsToCalculateNaturalDuration ? {\n get: () => naturalDuration\n } : {\n get: () => {\n throw new Error(\"did not calculate natural duration, this is an error with Remotion. Please report\");\n }\n };\n const reverseProcessed = reverse ? (passedDurationInFrames ?? naturalDurationGetter.get()) - passedFrame : passedFrame;\n const delayProcessed = reverseProcessed + (reverse ? delay : -delay);\n const durationProcessed = passedDurationInFrames === undefined ? delayProcessed : delayProcessed / (passedDurationInFrames / naturalDurationGetter.get());\n if (passedDurationInFrames && delayProcessed > passedDurationInFrames) {\n return to;\n }\n const spr = springCalculation({\n fps,\n frame: durationProcessed,\n config\n });\n const inner = config.overshootClamping ? to >= from ? Math.min(spr.current, to) : Math.max(spr.current, to) : spr.current;\n const interpolated = from === 0 && to === 1 ? inner : interpolate(inner, [0, 1], [from, to]);\n return interpolated;\n}\n// src/static-file.ts\nvar problematicCharacters = {\n \"%3A\": \":\",\n \"%2F\": \"/\",\n \"%3F\": \"?\",\n \"%23\": \"#\",\n \"%5B\": \"[\",\n \"%5D\": \"]\",\n \"%40\": \"@\",\n \"%21\": \"!\",\n \"%24\": \"$\",\n \"%26\": \"&\",\n \"%27\": \"'\",\n \"%28\": \"(\",\n \"%29\": \")\",\n \"%2A\": \"*\",\n \"%2B\": \"+\",\n \"%2C\": \",\",\n \"%3B\": \";\"\n};\nvar didWarn2 = {};\nvar warnOnce3 = (message) => {\n if (didWarn2[message]) {\n return;\n }\n console.warn(message);\n didWarn2[message] = true;\n};\nvar includesHexOfUnsafeChar = (path) => {\n for (const key of Object.keys(problematicCharacters)) {\n if (path.includes(key)) {\n return { containsHex: true, hexCode: key };\n }\n }\n return { containsHex: false };\n};\nvar trimLeadingSlash = (path) => {\n if (path.startsWith(\"/\")) {\n return trimLeadingSlash(path.substring(1));\n }\n return path;\n};\nvar inner = (path) => {\n if (typeof window !== \"undefined\" && window.remotion_staticBase) {\n if (path.startsWith(window.remotion_staticBase)) {\n throw new Error(`The value \"${path}\" is already prefixed with the static base ${window.remotion_staticBase}. You don't need to call staticFile() on it.`);\n }\n return `${window.remotion_staticBase}/${trimLeadingSlash(path)}`;\n }\n return `/${trimLeadingSlash(path)}`;\n};\nvar encodeBySplitting = (path) => {\n const splitBySlash = path.split(\"/\");\n const encodedArray = splitBySlash.map((element) => {\n return encodeURIComponent(element);\n });\n const merged = encodedArray.join(\"/\");\n return merged;\n};\nvar staticFile = (path) => {\n if (path === null) {\n throw new TypeError(\"null was passed to staticFile()\");\n }\n if (typeof path === \"undefined\") {\n throw new TypeError(\"undefined was passed to staticFile()\");\n }\n if (path.startsWith(\"http://\") || path.startsWith(\"https://\")) {\n throw new TypeError(`staticFile() does not support remote URLs - got \"${path}\". Instead, pass the URL without wrapping it in staticFile(). See: https://remotion.dev/docs/staticfile-remote-urls`);\n }\n if (path.startsWith(\"..\") || path.startsWith(\"./\")) {\n throw new TypeError(`staticFile() does not support relative paths - got \"${path}\". Instead, pass the name of a file that is inside the public/ folder. See: https://remotion.dev/docs/staticfile-relative-paths`);\n }\n if (path.startsWith(\"/Users\") || path.startsWith(\"/home\") || path.startsWith(\"/tmp\") || path.startsWith(\"/etc\") || path.startsWith(\"/opt\") || path.startsWith(\"/var\") || path.startsWith(\"C:\") || path.startsWith(\"D:\") || path.startsWith(\"E:\")) {\n throw new TypeError(`staticFile() does not support absolute paths - got \"${path}\". Instead, pass the name of a file that is inside the public/ folder. See: https://remotion.dev/docs/staticfile-relative-paths`);\n }\n if (path.startsWith(\"public/\")) {\n throw new TypeError(`Do not include the public/ prefix when using staticFile() - got \"${path}\". See: https://remotion.dev/docs/staticfile-relative-paths`);\n }\n const includesHex = includesHexOfUnsafeChar(path);\n if (includesHex.containsHex) {\n warnOnce3(`WARNING: You seem to pass an already encoded path (path contains ${includesHex.hexCode}). Since Remotion 4.0, the encoding is done by staticFile() itself. You may want to remove a encodeURIComponent() wrapping.`);\n }\n const preprocessed = encodeBySplitting(path);\n const preparsed = inner(preprocessed);\n if (!preparsed.startsWith(\"/\")) {\n return `/${preparsed}`;\n }\n return preparsed;\n};\n// src/Still.tsx\nimport React37 from \"react\";\nvar Still = (props2) => {\n const newProps = {\n ...props2,\n durationInFrames: 1,\n fps: 1\n };\n return React37.createElement(Composition, newProps);\n};\n// src/video/Video.tsx\nimport { forwardRef as forwardRef13, useCallback as useCallback17, useContext as useContext36 } from \"react\";\n\n// src/video/VideoForRendering.tsx\nimport {\n forwardRef as forwardRef12,\n useContext as useContext35,\n useEffect as useEffect17,\n useImperativeHandle as useImperativeHandle9,\n useLayoutEffect as useLayoutEffect11,\n useMemo as useMemo35,\n useRef as useRef20\n} from \"react\";\n\n// src/video/seek-until-right.ts\nvar roundTo6Commas = (num) => {\n return Math.round(num * 1e5) / 1e5;\n};\nvar seekToTime = ({\n element,\n desiredTime,\n logLevel,\n mountTime\n}) => {\n if (isApproximatelyTheSame(element.currentTime, desiredTime)) {\n return {\n wait: Promise.resolve(desiredTime),\n cancel: () => {}\n };\n }\n seek({\n logLevel,\n mediaRef: element,\n time: desiredTime,\n why: \"Seeking during rendering\",\n mountTime\n });\n let cancel;\n let cancelSeeked = null;\n const prom = new Promise((resolve) => {\n cancel = element.requestVideoFrameCallback((now, metadata) => {\n const displayIn = metadata.expectedDisplayTime - now;\n if (displayIn <= 0) {\n resolve(metadata.mediaTime);\n return;\n }\n setTimeout(() => {\n resolve(metadata.mediaTime);\n }, displayIn + 150);\n });\n });\n const waitForSeekedEvent = new Promise((resolve) => {\n const onDone = () => {\n resolve();\n };\n element.addEventListener(\"seeked\", onDone, {\n once: true\n });\n cancelSeeked = () => {\n element.removeEventListener(\"seeked\", onDone);\n };\n });\n return {\n wait: Promise.all([prom, waitForSeekedEvent]).then(([time]) => time),\n cancel: () => {\n cancelSeeked?.();\n element.cancelVideoFrameCallback(cancel);\n }\n };\n};\nvar seekToTimeMultipleUntilRight = ({\n element,\n desiredTime,\n fps,\n logLevel,\n mountTime\n}) => {\n const threshold = 1 / fps / 2;\n let currentCancel = () => {\n return;\n };\n if (Number.isFinite(element.duration) && element.currentTime >= element.duration && desiredTime >= element.duration) {\n return {\n prom: Promise.resolve(),\n cancel: () => {}\n };\n }\n const prom = new Promise((resolve, reject) => {\n const firstSeek = seekToTime({\n element,\n desiredTime: desiredTime + threshold,\n logLevel,\n mountTime\n });\n firstSeek.wait.then((seekedTo) => {\n const difference = Math.abs(desiredTime - seekedTo);\n if (difference <= threshold) {\n return resolve();\n }\n const sign = desiredTime > seekedTo ? 1 : -1;\n const newSeek = seekToTime({\n element,\n desiredTime: seekedTo + threshold * sign,\n logLevel,\n mountTime\n });\n currentCancel = newSeek.cancel;\n newSeek.wait.then((newTime) => {\n const newDifference = Math.abs(desiredTime - newTime);\n if (roundTo6Commas(newDifference) <= roundTo6Commas(threshold)) {\n return resolve();\n }\n const thirdSeek = seekToTime({\n element,\n desiredTime: desiredTime + threshold,\n logLevel,\n mountTime\n });\n currentCancel = thirdSeek.cancel;\n return thirdSeek.wait.then(() => {\n resolve();\n }).catch((err) => {\n reject(err);\n });\n }).catch((err) => {\n reject(err);\n });\n });\n currentCancel = firstSeek.cancel;\n });\n return {\n prom,\n cancel: () => {\n currentCancel();\n }\n };\n};\n\n// src/video/VideoForRendering.tsx\nimport { jsx as jsx34 } from \"react/jsx-runtime\";\nvar VideoForRenderingForwardFunction = ({\n onError,\n volume: volumeProp,\n allowAmplificationDuringRender,\n playbackRate,\n onDuration,\n toneFrequency,\n name,\n acceptableTimeShiftInSeconds,\n delayRenderRetries,\n delayRenderTimeoutInMilliseconds,\n loopVolumeCurveBehavior,\n audioStreamIndex,\n onVideoFrame,\n ...props2\n}, ref) => {\n const absoluteFrame = useTimelinePosition();\n const frame = useCurrentFrame();\n const volumePropsFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? \"repeat\");\n const videoConfig = useUnsafeVideoConfig();\n const videoRef = useRef20(null);\n const sequenceContext = useContext35(SequenceContext);\n const mediaStartsAt = useMediaStartsAt();\n const environment = useRemotionEnvironment();\n const logLevel = useLogLevel();\n const mountTime = useMountTime();\n const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();\n const { registerRenderAsset, unregisterRenderAsset } = useContext35(RenderAssetManager);\n const id = useMemo35(() => `video-${random(props2.src ?? \"\")}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`, [\n props2.src,\n sequenceContext?.cumulatedFrom,\n sequenceContext?.relativeFrom,\n sequenceContext?.durationInFrames\n ]);\n if (!videoConfig) {\n throw new Error(\"No video config found\");\n }\n const volume = evaluateVolume({\n volume: volumeProp,\n frame: volumePropsFrame,\n mediaVolume: 1\n });\n warnAboutTooHighVolume(volume);\n useEffect17(() => {\n if (!props2.src) {\n throw new Error(\"No src passed\");\n }\n if (props2.muted) {\n return;\n }\n if (volume <= 0) {\n return;\n }\n if (!window.remotion_audioEnabled) {\n return;\n }\n registerRenderAsset({\n type: \"video\",\n src: getAbsoluteSrc(props2.src),\n id,\n frame: absoluteFrame,\n volume,\n mediaFrame: frame,\n playbackRate: playbackRate ?? 1,\n toneFrequency: toneFrequency ?? 1,\n audioStartFrame: Math.max(0, -(sequenceContext?.relativeFrom ?? 0)),\n audioStreamIndex: audioStreamIndex ?? 0\n });\n return () => unregisterRenderAsset(id);\n }, [\n props2.muted,\n props2.src,\n registerRenderAsset,\n id,\n unregisterRenderAsset,\n volume,\n frame,\n absoluteFrame,\n playbackRate,\n toneFrequency,\n sequenceContext?.relativeFrom,\n audioStreamIndex\n ]);\n useImperativeHandle9(ref, () => {\n return videoRef.current;\n }, []);\n useEffect17(() => {\n if (!window.remotion_videoEnabled) {\n return;\n }\n const { current } = videoRef;\n if (!current) {\n return;\n }\n const currentTime = getMediaTime({\n frame,\n playbackRate: playbackRate || 1,\n startFrom: -mediaStartsAt,\n fps: videoConfig.fps\n });\n const handle = delayRender2(`Rendering <Html5Video /> with src=\"${props2.src}\" at time ${currentTime}`, {\n retries: delayRenderRetries ?? undefined,\n timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined\n });\n if (window.process?.env?.NODE_ENV === \"test\") {\n continueRender2(handle);\n return;\n }\n if (isApproximatelyTheSame(current.currentTime, currentTime)) {\n if (current.readyState >= 2) {\n continueRender2(handle);\n return;\n }\n const loadedDataHandler = () => {\n continueRender2(handle);\n };\n current.addEventListener(\"loadeddata\", loadedDataHandler, { once: true });\n return () => {\n current.removeEventListener(\"loadeddata\", loadedDataHandler);\n };\n }\n const endedHandler = () => {\n continueRender2(handle);\n };\n const seek2 = seekToTimeMultipleUntilRight({\n element: current,\n desiredTime: currentTime,\n fps: videoConfig.fps,\n logLevel,\n mountTime\n });\n seek2.prom.then(() => {\n continueRender2(handle);\n });\n current.addEventListener(\"ended\", endedHandler, { once: true });\n const errorHandler = () => {\n if (current?.error) {\n console.error(\"Error occurred in video\", current?.error);\n if (onError) {\n return;\n }\n throw new Error(`The browser threw an error while playing the video ${props2.src}: Code ${current.error.code} - ${current?.error?.message}. See https://remotion.dev/docs/media-playback-error for help. Pass an onError() prop to handle the error.`);\n } else {\n throw new Error(\"The browser threw an error\");\n }\n };\n current.addEventListener(\"error\", errorHandler, { once: true });\n return () => {\n seek2.cancel();\n current.removeEventListener(\"ended\", endedHandler);\n current.removeEventListener(\"error\", errorHandler);\n continueRender2(handle);\n };\n }, [\n volumePropsFrame,\n props2.src,\n playbackRate,\n videoConfig.fps,\n frame,\n mediaStartsAt,\n onError,\n delayRenderRetries,\n delayRenderTimeoutInMilliseconds,\n logLevel,\n mountTime,\n continueRender2,\n delayRender2\n ]);\n const { src } = props2;\n if (environment.isRendering) {\n useLayoutEffect11(() => {\n if (window.process?.env?.NODE_ENV === \"test\") {\n return;\n }\n const newHandle = delayRender2(\"Loading <Html5Video> duration with src=\" + src, {\n retries: delayRenderRetries ?? undefined,\n timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined\n });\n const { current } = videoRef;\n const didLoad = () => {\n if (current?.duration) {\n onDuration(src, current.duration);\n }\n continueRender2(newHandle);\n };\n if (current?.duration) {\n onDuration(src, current.duration);\n continueRender2(newHandle);\n } else {\n current?.addEventListener(\"loadedmetadata\", didLoad, { once: true });\n }\n return () => {\n current?.removeEventListener(\"loadedmetadata\", didLoad);\n continueRender2(newHandle);\n };\n }, [\n src,\n onDuration,\n delayRenderRetries,\n delayRenderTimeoutInMilliseconds,\n continueRender2,\n delayRender2\n ]);\n }\n return /* @__PURE__ */ jsx34(\"video\", {\n ref: videoRef,\n disableRemotePlayback: true,\n ...props2\n });\n};\nvar VideoForRendering = forwardRef12(VideoForRenderingForwardFunction);\n\n// src/video/Video.tsx\nimport { jsx as jsx35 } from \"react/jsx-runtime\";\nvar VideoForwardingFunction = (props2, ref) => {\n const {\n startFrom,\n endAt,\n trimBefore,\n trimAfter,\n name,\n pauseWhenBuffering,\n stack,\n _remotionInternalNativeLoopPassed,\n showInTimeline,\n onAutoPlayError,\n ...otherProps\n } = props2;\n const { loop, ...propsOtherThanLoop } = props2;\n const { fps } = useVideoConfig();\n const environment = useRemotionEnvironment();\n if (environment.isClientSideRendering) {\n throw new Error(\"<Html5Video> is not supported in @remotion/web-renderer. Use <Video> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations\");\n }\n const { durations, setDurations } = useContext36(DurationsContext);\n if (typeof ref === \"string\") {\n throw new Error(\"string refs are not supported\");\n }\n if (typeof props2.src !== \"string\") {\n throw new TypeError(`The \\`<Html5Video>\\` tag requires a string for \\`src\\`, but got ${JSON.stringify(props2.src)} instead.`);\n }\n const preloadedSrc = usePreload(props2.src);\n const onDuration = useCallback17((src, durationInSeconds) => {\n setDurations({ type: \"got-duration\", durationInSeconds, src });\n }, [setDurations]);\n const onVideoFrame = useCallback17(() => {}, []);\n const durationFetched = durations[getAbsoluteSrc(preloadedSrc)] ?? durations[getAbsoluteSrc(props2.src)];\n validateMediaTrimProps({ startFrom, endAt, trimBefore, trimAfter });\n const { trimBeforeValue, trimAfterValue } = resolveTrimProps({\n startFrom,\n endAt,\n trimBefore,\n trimAfter\n });\n if (loop && durationFetched !== undefined) {\n if (!Number.isFinite(durationFetched)) {\n return /* @__PURE__ */ jsx35(Html5Video, {\n ...propsOtherThanLoop,\n ref,\n stack,\n _remotionInternalNativeLoopPassed: true\n });\n }\n const mediaDuration = durationFetched * fps;\n return /* @__PURE__ */ jsx35(Loop, {\n durationInFrames: calculateMediaDuration({\n trimAfter: trimAfterValue,\n mediaDurationInFrames: mediaDuration,\n playbackRate: props2.playbackRate ?? 1,\n trimBefore: trimBeforeValue\n }),\n layout: \"none\",\n name,\n children: /* @__PURE__ */ jsx35(Html5Video, {\n ...propsOtherThanLoop,\n ref,\n stack,\n _remotionInternalNativeLoopPassed: true\n })\n });\n }\n if (typeof trimBeforeValue !== \"undefined\" || typeof trimAfterValue !== \"undefined\") {\n return /* @__PURE__ */ jsx35(Sequence, {\n layout: \"none\",\n from: 0 - (trimBeforeValue ?? 0),\n showInTimeline: false,\n durationInFrames: trimAfterValue === undefined ? undefined : trimAfterValue / (props2.playbackRate ?? 1),\n name,\n children: /* @__PURE__ */ jsx35(Html5Video, {\n pauseWhenBuffering: pauseWhenBuffering ?? false,\n ...otherProps,\n ref,\n stack\n })\n });\n }\n validateMediaProps({ playbackRate: props2.playbackRate, volume: props2.volume }, \"Html5Video\");\n if (environment.isRendering) {\n return /* @__PURE__ */ jsx35(VideoForRendering, {\n onDuration,\n onVideoFrame: onVideoFrame ?? null,\n ...otherProps,\n ref\n });\n }\n return /* @__PURE__ */ jsx35(VideoForPreview, {\n onlyWarnForMediaSeekingError: false,\n ...otherProps,\n ref,\n onVideoFrame: null,\n pauseWhenBuffering: pauseWhenBuffering ?? false,\n onDuration,\n _remotionInternalStack: stack ?? null,\n _remotionInternalNativeLoopPassed: _remotionInternalNativeLoopPassed ?? false,\n showInTimeline: showInTimeline ?? true,\n onAutoPlayError: onAutoPlayError ?? undefined\n });\n};\nvar Html5Video = forwardRef13(VideoForwardingFunction);\naddSequenceStackTraces(Html5Video);\nvar Video = Html5Video;\n// src/index.ts\ncheckMultipleRemotionVersions();\nvar Experimental = {\n Clipper,\n Null,\n useIsPlayer\n};\nvar proxyObj = {};\nvar Config = new Proxy(proxyObj, {\n get(_, prop) {\n if (prop === \"Bundling\" || prop === \"Rendering\" || prop === \"Log\" || prop === \"Puppeteer\" || prop === \"Output\") {\n return Config;\n }\n return () => {\n console.warn(\"⚠️ The CLI configuration has been extracted from Remotion Core.\");\n console.warn(\"Update the import from the config file:\");\n console.warn();\n console.warn(\"- Delete:\");\n console.warn('import {Config} from \"remotion\";');\n console.warn(\"+ Replace:\");\n console.warn('import {Config} from \"@remotion/cli/config\";');\n console.warn();\n console.warn(\"For more information, see https://www.remotion.dev/docs/4-0-migration.\");\n process.exit(1);\n };\n }\n});\nSequence.displayName = \"Sequence\";\naddSequenceStackTraces(Sequence);\nexport {\n watchStaticFile,\n useVideoConfig,\n useRemotionEnvironment,\n useDelayRender,\n useCurrentScale,\n useCurrentFrame,\n useBufferState,\n staticFile,\n spring,\n registerRoot,\n random,\n prefetch,\n measureSpring,\n interpolateColors,\n interpolate,\n getStaticFiles,\n getRemotionEnvironment,\n getInputProps,\n delayRender,\n continueRender,\n cancelRender,\n Video,\n VERSION,\n Still,\n Series,\n Sequence,\n OffthreadVideo,\n Loop,\n Internals,\n Img,\n IFrame,\n Html5Video,\n Html5Audio,\n Freeze,\n FolderContext,\n Folder,\n Experimental,\n Easing,\n Config,\n Composition,\n Audio,\n Artifact,\n AnimatedImage,\n AbsoluteFill\n};\n","// src/interpolate.ts\nfunction interpolateFunction(input, inputRange, outputRange, options) {\n const { extrapolateLeft, extrapolateRight, easing } = options;\n let result = input;\n const [inputMin, inputMax] = inputRange;\n const [outputMin, outputMax] = outputRange;\n if (result < inputMin) {\n if (extrapolateLeft === \"identity\") {\n return result;\n }\n if (extrapolateLeft === \"clamp\") {\n result = inputMin;\n } else if (extrapolateLeft === \"wrap\") {\n const range = inputMax - inputMin;\n result = ((result - inputMin) % range + range) % range + inputMin;\n } else if (extrapolateLeft === \"extend\") {}\n }\n if (result > inputMax) {\n if (extrapolateRight === \"identity\") {\n return result;\n }\n if (extrapolateRight === \"clamp\") {\n result = inputMax;\n } else if (extrapolateRight === \"wrap\") {\n const range = inputMax - inputMin;\n result = ((result - inputMin) % range + range) % range + inputMin;\n } else if (extrapolateRight === \"extend\") {}\n }\n if (outputMin === outputMax) {\n return outputMin;\n }\n result = (result - inputMin) / (inputMax - inputMin);\n result = easing(result);\n result = result * (outputMax - outputMin) + outputMin;\n return result;\n}\nfunction findRange(input, inputRange) {\n let i;\n for (i = 1;i < inputRange.length - 1; ++i) {\n if (inputRange[i] >= input) {\n break;\n }\n }\n return i - 1;\n}\nfunction checkValidInputRange(arr) {\n for (let i = 1;i < arr.length; ++i) {\n if (!(arr[i] > arr[i - 1])) {\n throw new Error(`inputRange must be strictly monotonically increasing but got [${arr.join(\",\")}]`);\n }\n }\n}\nfunction checkInfiniteRange(name, arr) {\n if (arr.length < 2) {\n throw new Error(name + \" must have at least 2 elements\");\n }\n for (const element of arr) {\n if (typeof element !== \"number\") {\n throw new Error(`${name} must contain only numbers`);\n }\n if (!Number.isFinite(element)) {\n throw new Error(`${name} must contain only finite numbers, but got [${arr.join(\",\")}]`);\n }\n }\n}\nfunction interpolate(input, inputRange, outputRange, options) {\n if (typeof input === \"undefined\") {\n throw new Error(\"input can not be undefined\");\n }\n if (typeof inputRange === \"undefined\") {\n throw new Error(\"inputRange can not be undefined\");\n }\n if (typeof outputRange === \"undefined\") {\n throw new Error(\"outputRange can not be undefined\");\n }\n if (inputRange.length !== outputRange.length) {\n throw new Error(\"inputRange (\" + inputRange.length + \") and outputRange (\" + outputRange.length + \") must have the same length\");\n }\n checkInfiniteRange(\"inputRange\", inputRange);\n checkInfiniteRange(\"outputRange\", outputRange);\n checkValidInputRange(inputRange);\n const easing = options?.easing ?? ((num) => num);\n let extrapolateLeft = \"extend\";\n if (options?.extrapolateLeft !== undefined) {\n extrapolateLeft = options.extrapolateLeft;\n }\n let extrapolateRight = \"extend\";\n if (options?.extrapolateRight !== undefined) {\n extrapolateRight = options.extrapolateRight;\n }\n if (typeof input !== \"number\") {\n throw new TypeError(\"Cannot interpolate an input which is not a number\");\n }\n const range = findRange(input, inputRange);\n return interpolateFunction(input, [inputRange[range], inputRange[range + 1]], [outputRange[range], outputRange[range + 1]], {\n easing,\n extrapolateLeft,\n extrapolateRight\n });\n}\n// src/random.ts\nfunction mulberry32(a) {\n let t = a + 1831565813;\n t = Math.imul(t ^ t >>> 15, t | 1);\n t ^= t + Math.imul(t ^ t >>> 7, t | 61);\n return ((t ^ t >>> 14) >>> 0) / 4294967296;\n}\nfunction hashCode(str) {\n let i = 0;\n let chr = 0;\n let hash = 0;\n for (i = 0;i < str.length; i++) {\n chr = str.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0;\n }\n return hash;\n}\nvar random = (seed, dummy) => {\n if (dummy !== undefined) {\n throw new TypeError(\"random() takes only one argument\");\n }\n if (seed === null) {\n return Math.random();\n }\n if (typeof seed === \"string\") {\n return mulberry32(hashCode(seed));\n }\n if (typeof seed === \"number\") {\n return mulberry32(seed * 10000000000);\n }\n throw new Error(\"random() argument must be a number or a string\");\n};\n// src/truthy.ts\nfunction truthy(value) {\n return Boolean(value);\n}\n\n// src/delay-render.ts\nif (typeof window !== \"undefined\") {\n window.remotion_renderReady = false;\n if (!window.remotion_delayRenderTimeouts) {\n window.remotion_delayRenderTimeouts = {};\n }\n window.remotion_delayRenderHandles = [];\n}\nvar DELAY_RENDER_CALLSTACK_TOKEN = \"The delayRender was called:\";\nvar DELAY_RENDER_RETRIES_LEFT = \"Retries left: \";\nvar DELAY_RENDER_RETRY_TOKEN = \"- Rendering the frame will be retried.\";\nvar DELAY_RENDER_CLEAR_TOKEN = \"handle was cleared after\";\n\n// src/input-props-serialization.ts\nvar DATE_TOKEN = \"remotion-date:\";\nvar FILE_TOKEN = \"remotion-file:\";\nvar serializeJSONWithSpecialTypes = ({\n data,\n indent,\n staticBase\n}) => {\n let customDateUsed = false;\n let customFileUsed = false;\n let mapUsed = false;\n let setUsed = false;\n try {\n const serializedString = JSON.stringify(data, function(key, value) {\n const item = this[key];\n if (item instanceof Date) {\n customDateUsed = true;\n return `${DATE_TOKEN}${item.toISOString()}`;\n }\n if (item instanceof Map) {\n mapUsed = true;\n return value;\n }\n if (item instanceof Set) {\n setUsed = true;\n return value;\n }\n if (typeof item === \"string\" && staticBase !== null && item.startsWith(staticBase)) {\n customFileUsed = true;\n return `${FILE_TOKEN}${item.replace(staticBase + \"/\", \"\")}`;\n }\n return value;\n }, indent);\n return { serializedString, customDateUsed, customFileUsed, mapUsed, setUsed };\n } catch (err) {\n throw new Error(\"Could not serialize the passed input props to JSON: \" + err.message);\n }\n};\nvar deserializeJSONWithSpecialTypes = (data) => {\n return JSON.parse(data, (_, value) => {\n if (typeof value === \"string\" && value.startsWith(DATE_TOKEN)) {\n return new Date(value.replace(DATE_TOKEN, \"\"));\n }\n if (typeof value === \"string\" && value.startsWith(FILE_TOKEN)) {\n return `${window.remotion_staticBase}/${value.replace(FILE_TOKEN, \"\")}`;\n }\n return value;\n });\n};\n\n// src/interpolate-colors.ts\nvar NUMBER = \"[-+]?\\\\d*\\\\.?\\\\d+\";\nvar PERCENTAGE = NUMBER + \"%\";\nfunction call(...args) {\n return \"\\\\(\\\\s*(\" + args.join(\")\\\\s*,\\\\s*(\") + \")\\\\s*\\\\)\";\n}\nvar MODERN_VALUE = \"(?:none|[-+]?\\\\d*\\\\.?\\\\d+(?:%|deg|rad|grad|turn)?)\";\nfunction modernColorCall(name) {\n return new RegExp(name + \"\\\\(\\\\s*(\" + MODERN_VALUE + \")\\\\s+(\" + MODERN_VALUE + \")\\\\s+(\" + MODERN_VALUE + \")(?:\\\\s*\\\\/\\\\s*(\" + MODERN_VALUE + \"))?\\\\s*\\\\)\");\n}\nfunction getMatchers() {\n const cachedMatchers = {\n rgb: undefined,\n rgba: undefined,\n hsl: undefined,\n hsla: undefined,\n hex3: undefined,\n hex4: undefined,\n hex5: undefined,\n hex6: undefined,\n hex8: undefined,\n oklch: undefined,\n oklab: undefined,\n lab: undefined,\n lch: undefined,\n hwb: undefined\n };\n if (cachedMatchers.rgb === undefined) {\n cachedMatchers.rgb = new RegExp(\"rgb\" + call(NUMBER, NUMBER, NUMBER));\n cachedMatchers.rgba = new RegExp(\"rgba\" + call(NUMBER, NUMBER, NUMBER, NUMBER));\n cachedMatchers.hsl = new RegExp(\"hsl\" + call(NUMBER, PERCENTAGE, PERCENTAGE));\n cachedMatchers.hsla = new RegExp(\"hsla\" + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));\n cachedMatchers.hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex6 = /^#([0-9a-fA-F]{6})$/;\n cachedMatchers.hex8 = /^#([0-9a-fA-F]{8})$/;\n cachedMatchers.oklch = modernColorCall(\"oklch\");\n cachedMatchers.oklab = modernColorCall(\"oklab\");\n cachedMatchers.lab = modernColorCall(\"lab\");\n cachedMatchers.lch = modernColorCall(\"lch\");\n cachedMatchers.hwb = modernColorCall(\"hwb\");\n }\n return cachedMatchers;\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;\n}\nfunction parse255(str) {\n const int = Number.parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\nfunction parse360(str) {\n const int = Number.parseFloat(str);\n return (int % 360 + 360) % 360 / 360;\n}\nfunction parse1(str) {\n const num = Number.parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\nfunction parsePercentage(str) {\n const int = Number.parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\nfunction parseModernComponent(str, percentScale) {\n if (str === \"none\")\n return 0;\n if (str.endsWith(\"%\")) {\n return Number.parseFloat(str) / 100 * percentScale;\n }\n return Number.parseFloat(str);\n}\nfunction parseHueAngle(str) {\n if (str === \"none\")\n return 0;\n if (str.endsWith(\"rad\")) {\n return Number.parseFloat(str) * 180 / Math.PI;\n }\n if (str.endsWith(\"grad\"))\n return Number.parseFloat(str) * 0.9;\n if (str.endsWith(\"turn\"))\n return Number.parseFloat(str) * 360;\n return Number.parseFloat(str);\n}\nfunction parseModernAlpha(str) {\n if (str === undefined || str === \"none\")\n return 1;\n if (str.endsWith(\"%\")) {\n return Math.max(0, Math.min(1, Number.parseFloat(str) / 100));\n }\n return Math.max(0, Math.min(1, Number.parseFloat(str)));\n}\nfunction linearToSrgb(c) {\n if (c <= 0.0031308)\n return 12.92 * c;\n return 1.055 * c ** (1 / 2.4) - 0.055;\n}\nfunction clamp01(v) {\n return Math.max(0, Math.min(1, v));\n}\nfunction rgbFloatToInt(r, g, b, alpha) {\n const ri = Math.round(clamp01(r) * 255);\n const gi = Math.round(clamp01(g) * 255);\n const bi = Math.round(clamp01(b) * 255);\n const ai = Math.round(clamp01(alpha) * 255);\n return (ri << 24 | gi << 16 | bi << 8 | ai) >>> 0;\n}\nfunction oklabToSrgb(L, a, b) {\n const l_ = L + 0.3963377774 * a + 0.2158037573 * b;\n const m_ = L - 0.1055613458 * a - 0.0638541728 * b;\n const s_ = L - 0.0894841775 * a - 1.291485548 * b;\n const l = l_ * l_ * l_;\n const m = m_ * m_ * m_;\n const s = s_ * s_ * s_;\n const rLin = 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s;\n const gLin = -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s;\n const bLin = -0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s;\n return [linearToSrgb(rLin), linearToSrgb(gLin), linearToSrgb(bLin)];\n}\nfunction labToSrgb(L, a, b) {\n const epsilon = 216 / 24389;\n const kappa = 24389 / 27;\n const Xn = 0.95047;\n const Yn = 1;\n const Zn = 1.08883;\n const fy = (L + 16) / 116;\n const fx = a / 500 + fy;\n const fz = fy - b / 200;\n const fx3 = fx * fx * fx;\n const fz3 = fz * fz * fz;\n const xr = fx3 > epsilon ? fx3 : (116 * fx - 16) / kappa;\n const yr = L > kappa * epsilon ? ((L + 16) / 116) ** 3 : L / kappa;\n const zr = fz3 > epsilon ? fz3 : (116 * fz - 16) / kappa;\n const X = xr * Xn;\n const Y = yr * Yn;\n const Z = zr * Zn;\n const rLin = 3.2404542 * X - 1.5371385 * Y - 0.4985314 * Z;\n const gLin = -0.969266 * X + 1.8760108 * Y + 0.041556 * Z;\n const bLin = 0.0556434 * X - 0.2040259 * Y + 1.0572252 * Z;\n return [linearToSrgb(rLin), linearToSrgb(gLin), linearToSrgb(bLin)];\n}\nfunction hwbToSrgb(h, w, bk) {\n if (w + bk >= 1) {\n const gray = w / (w + bk);\n return [gray, gray, gray];\n }\n const q = 1;\n const p = 0;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const bl = hue2rgb(p, q, h - 1 / 3);\n const factor = 1 - w - bk;\n return [r * factor + w, g * factor + w, bl * factor + w];\n}\nvar colorNames = {\n transparent: 0,\n aliceblue: 4042850303,\n antiquewhite: 4209760255,\n aqua: 16777215,\n aquamarine: 2147472639,\n azure: 4043309055,\n beige: 4126530815,\n bisque: 4293182719,\n black: 255,\n blanchedalmond: 4293643775,\n blue: 65535,\n blueviolet: 2318131967,\n brown: 2771004159,\n burlywood: 3736635391,\n burntsienna: 3934150143,\n cadetblue: 1604231423,\n chartreuse: 2147418367,\n chocolate: 3530104575,\n coral: 4286533887,\n cornflowerblue: 1687547391,\n cornsilk: 4294499583,\n crimson: 3692313855,\n cyan: 16777215,\n darkblue: 35839,\n darkcyan: 9145343,\n darkgoldenrod: 3095792639,\n darkgray: 2846468607,\n darkgreen: 6553855,\n darkgrey: 2846468607,\n darkkhaki: 3182914559,\n darkmagenta: 2332068863,\n darkolivegreen: 1433087999,\n darkorange: 4287365375,\n darkorchid: 2570243327,\n darkred: 2332033279,\n darksalmon: 3918953215,\n darkseagreen: 2411499519,\n darkslateblue: 1211993087,\n darkslategray: 793726975,\n darkslategrey: 793726975,\n darkturquoise: 13554175,\n darkviolet: 2483082239,\n deeppink: 4279538687,\n deepskyblue: 12582911,\n dimgray: 1768516095,\n dimgrey: 1768516095,\n dodgerblue: 512819199,\n firebrick: 2988581631,\n floralwhite: 4294635775,\n forestgreen: 579543807,\n fuchsia: 4278255615,\n gainsboro: 3705462015,\n ghostwhite: 4177068031,\n gold: 4292280575,\n goldenrod: 3668254975,\n gray: 2155905279,\n green: 8388863,\n greenyellow: 2919182335,\n grey: 2155905279,\n honeydew: 4043305215,\n hotpink: 4285117695,\n indianred: 3445382399,\n indigo: 1258324735,\n ivory: 4294963455,\n khaki: 4041641215,\n lavender: 3873897215,\n lavenderblush: 4293981695,\n lawngreen: 2096890111,\n lemonchiffon: 4294626815,\n lightblue: 2916673279,\n lightcoral: 4034953471,\n lightcyan: 3774873599,\n lightgoldenrodyellow: 4210742015,\n lightgray: 3553874943,\n lightgreen: 2431553791,\n lightgrey: 3553874943,\n lightpink: 4290167295,\n lightsalmon: 4288707327,\n lightseagreen: 548580095,\n lightskyblue: 2278488831,\n lightslategray: 2005441023,\n lightslategrey: 2005441023,\n lightsteelblue: 2965692159,\n lightyellow: 4294959359,\n lime: 16711935,\n limegreen: 852308735,\n linen: 4210091775,\n magenta: 4278255615,\n maroon: 2147483903,\n mediumaquamarine: 1724754687,\n mediumblue: 52735,\n mediumorchid: 3126187007,\n mediumpurple: 2473647103,\n mediumseagreen: 1018393087,\n mediumslateblue: 2070474495,\n mediumspringgreen: 16423679,\n mediumturquoise: 1221709055,\n mediumvioletred: 3340076543,\n midnightblue: 421097727,\n mintcream: 4127193855,\n mistyrose: 4293190143,\n moccasin: 4293178879,\n navajowhite: 4292783615,\n navy: 33023,\n oldlace: 4260751103,\n olive: 2155872511,\n olivedrab: 1804477439,\n orange: 4289003775,\n orangered: 4282712319,\n orchid: 3664828159,\n palegoldenrod: 4008225535,\n palegreen: 2566625535,\n paleturquoise: 2951671551,\n palevioletred: 3681588223,\n papayawhip: 4293907967,\n peachpuff: 4292524543,\n peru: 3448061951,\n pink: 4290825215,\n plum: 3718307327,\n powderblue: 2967529215,\n purple: 2147516671,\n rebeccapurple: 1714657791,\n red: 4278190335,\n rosybrown: 3163525119,\n royalblue: 1097458175,\n saddlebrown: 2336560127,\n salmon: 4202722047,\n sandybrown: 4104413439,\n seagreen: 780883967,\n seashell: 4294307583,\n sienna: 2689740287,\n silver: 3233857791,\n skyblue: 2278484991,\n slateblue: 1784335871,\n slategray: 1887473919,\n slategrey: 1887473919,\n snow: 4294638335,\n springgreen: 16744447,\n steelblue: 1182971135,\n tan: 3535047935,\n teal: 8421631,\n thistle: 3636451583,\n tomato: 4284696575,\n turquoise: 1088475391,\n violet: 4001558271,\n wheat: 4125012991,\n white: 4294967295,\n whitesmoke: 4126537215,\n yellow: 4294902015,\n yellowgreen: 2597139199\n};\nfunction normalizeColor(color) {\n const matchers = getMatchers();\n let match;\n if (matchers.hex6) {\n if (match = matchers.hex6.exec(color)) {\n return Number.parseInt(match[1] + \"ff\", 16) >>> 0;\n }\n }\n if (colorNames[color] !== undefined) {\n return colorNames[color];\n }\n if (matchers.rgb) {\n if (match = matchers.rgb.exec(color)) {\n return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | 255) >>> 0;\n }\n }\n if (matchers.rgba) {\n if (match = matchers.rgba.exec(color)) {\n return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | parse1(match[4])) >>> 0;\n }\n }\n if (matchers.hex3) {\n if (match = matchers.hex3.exec(color)) {\n return Number.parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + \"ff\", 16) >>> 0;\n }\n }\n if (matchers.hex8) {\n if (match = matchers.hex8.exec(color)) {\n return Number.parseInt(match[1], 16) >>> 0;\n }\n }\n if (matchers.hex4) {\n if (match = matchers.hex4.exec(color)) {\n return Number.parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + match[4] + match[4], 16) >>> 0;\n }\n }\n if (matchers.hsl) {\n if (match = matchers.hsl.exec(color)) {\n return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | 255) >>> 0;\n }\n }\n if (matchers.hsla) {\n if (match = matchers.hsla.exec(color)) {\n return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | parse1(match[4])) >>> 0;\n }\n }\n if (matchers.oklch) {\n if (match = matchers.oklch.exec(color)) {\n const L = parseModernComponent(match[1], 1);\n const C = parseModernComponent(match[2], 0.4);\n const H = parseHueAngle(match[3]);\n const alpha = parseModernAlpha(match[4]);\n const hRad = H * Math.PI / 180;\n const [r, g, b] = oklabToSrgb(L, C * Math.cos(hRad), C * Math.sin(hRad));\n return rgbFloatToInt(r, g, b, alpha);\n }\n }\n if (matchers.oklab) {\n if (match = matchers.oklab.exec(color)) {\n const L = parseModernComponent(match[1], 1);\n const a = parseModernComponent(match[2], 0.4);\n const b = parseModernComponent(match[3], 0.4);\n const alpha = parseModernAlpha(match[4]);\n const [r, g, bl] = oklabToSrgb(L, a, b);\n return rgbFloatToInt(r, g, bl, alpha);\n }\n }\n if (matchers.lab) {\n if (match = matchers.lab.exec(color)) {\n const L = parseModernComponent(match[1], 100);\n const a = parseModernComponent(match[2], 125);\n const b = parseModernComponent(match[3], 125);\n const alpha = parseModernAlpha(match[4]);\n const [r, g, bl] = labToSrgb(L, a, b);\n return rgbFloatToInt(r, g, bl, alpha);\n }\n }\n if (matchers.lch) {\n if (match = matchers.lch.exec(color)) {\n const L = parseModernComponent(match[1], 100);\n const C = parseModernComponent(match[2], 150);\n const H = parseHueAngle(match[3]);\n const alpha = parseModernAlpha(match[4]);\n const hRad = H * Math.PI / 180;\n const [r, g, bl] = labToSrgb(L, C * Math.cos(hRad), C * Math.sin(hRad));\n return rgbFloatToInt(r, g, bl, alpha);\n }\n }\n if (matchers.hwb) {\n if (match = matchers.hwb.exec(color)) {\n const H = parseHueAngle(match[1]);\n const W = parseModernComponent(match[2], 1);\n const B = parseModernComponent(match[3], 1);\n const alpha = parseModernAlpha(match[4]);\n const [r, g, bl] = hwbToSrgb(H / 360, W, B);\n return rgbFloatToInt(r, g, bl, alpha);\n }\n }\n throw new Error(`invalid color string ${color} provided`);\n}\nfunction processColor(color) {\n const normalizedColor = normalizeColor(color);\n return (normalizedColor << 24 | normalizedColor >>> 8) >>> 0;\n}\n\n// src/prores-profile.ts\nvar proResProfileOptions = [\n \"4444-xq\",\n \"4444\",\n \"hq\",\n \"standard\",\n \"light\",\n \"proxy\"\n];\n\n// src/v5-flag.ts\nvar ENABLE_V5_BREAKING_CHANGES = false;\n\n// src/validate-frame.ts\nvar validateFrame = ({\n allowFloats,\n durationInFrames,\n frame\n}) => {\n if (typeof frame === \"undefined\") {\n throw new TypeError(`Argument missing for parameter \"frame\"`);\n }\n if (typeof frame !== \"number\") {\n throw new TypeError(`Argument passed for \"frame\" is not a number: ${frame}`);\n }\n if (!Number.isFinite(frame)) {\n throw new RangeError(`Frame ${frame} is not finite`);\n }\n if (frame % 1 !== 0 && !allowFloats) {\n throw new RangeError(`Argument for frame must be an integer, but got ${frame}`);\n }\n if (frame < 0 && frame < -durationInFrames) {\n throw new RangeError(`Cannot use frame ${frame}: Duration of composition is ${durationInFrames}, therefore the lowest frame that can be rendered is ${-durationInFrames}`);\n }\n if (frame > durationInFrames - 1) {\n throw new RangeError(`Cannot use frame ${frame}: Duration of composition is ${durationInFrames}, therefore the highest frame that can be rendered is ${durationInFrames - 1}`);\n }\n};\n\n// src/codec.ts\nvar validCodecs = [\n \"h264\",\n \"h265\",\n \"vp8\",\n \"vp9\",\n \"av1\",\n \"mp3\",\n \"aac\",\n \"wav\",\n \"prores\",\n \"h264-mkv\",\n \"h264-ts\",\n \"gif\"\n];\n\n// src/validation/validate-default-codec.ts\nfunction validateCodec(defaultCodec, location, name) {\n if (typeof defaultCodec === \"undefined\") {\n return;\n }\n if (typeof defaultCodec !== \"string\") {\n throw new TypeError(`The \"${name}\" prop ${location} must be a string, but you passed a value of type ${typeof defaultCodec}.`);\n }\n if (!validCodecs.includes(defaultCodec)) {\n throw new Error(`The \"${name}\" prop ${location} must be one of ${validCodecs.join(\", \")}, but you passed ${defaultCodec}.`);\n }\n}\n\n// src/validation/validate-default-props.ts\nvar validateDefaultAndInputProps = (defaultProps, name, compositionId) => {\n if (!defaultProps) {\n return;\n }\n if (typeof defaultProps !== \"object\") {\n throw new Error(`\"${name}\" must be an object, but you passed a value of type ${typeof defaultProps}`);\n }\n if (Array.isArray(defaultProps)) {\n throw new Error(`\"${name}\" must be an object, an array was passed ${compositionId ? `for composition \"${compositionId}\"` : \"\"}`);\n }\n};\n\n// src/validation/validate-dimensions.ts\nfunction validateDimension(amount, nameOfProp, location) {\n if (typeof amount !== \"number\") {\n throw new Error(`The \"${nameOfProp}\" prop ${location} must be a number, but you passed a value of type ${typeof amount}`);\n }\n if (isNaN(amount)) {\n throw new TypeError(`The \"${nameOfProp}\" prop ${location} must not be NaN, but is NaN.`);\n }\n if (!Number.isFinite(amount)) {\n throw new TypeError(`The \"${nameOfProp}\" prop ${location} must be finite, but is ${amount}.`);\n }\n if (amount % 1 !== 0) {\n throw new TypeError(`The \"${nameOfProp}\" prop ${location} must be an integer, but is ${amount}.`);\n }\n if (amount <= 0) {\n throw new TypeError(`The \"${nameOfProp}\" prop ${location} must be positive, but got ${amount}.`);\n }\n}\n\n// src/validation/validate-duration-in-frames.ts\nfunction validateDurationInFrames(durationInFrames, options) {\n const { allowFloats, component } = options;\n if (typeof durationInFrames === \"undefined\") {\n throw new Error(`The \"durationInFrames\" prop ${component} is missing.`);\n }\n if (typeof durationInFrames !== \"number\") {\n throw new Error(`The \"durationInFrames\" prop ${component} must be a number, but you passed a value of type ${typeof durationInFrames}`);\n }\n if (durationInFrames <= 0) {\n throw new TypeError(`The \"durationInFrames\" prop ${component} must be positive, but got ${durationInFrames}.`);\n }\n if (!allowFloats && durationInFrames % 1 !== 0) {\n throw new TypeError(`The \"durationInFrames\" prop ${component} must be an integer, but got ${durationInFrames}.`);\n }\n if (!Number.isFinite(durationInFrames)) {\n throw new TypeError(`The \"durationInFrames\" prop ${component} must be finite, but got ${durationInFrames}.`);\n }\n}\n\n// src/validation/validate-fps.ts\nfunction validateFps(fps, location, isGif) {\n if (typeof fps !== \"number\") {\n throw new Error(`\"fps\" must be a number, but you passed a value of type ${typeof fps} ${location}`);\n }\n if (!Number.isFinite(fps)) {\n throw new Error(`\"fps\" must be a finite, but you passed ${fps} ${location}`);\n }\n if (isNaN(fps)) {\n throw new Error(`\"fps\" must not be NaN, but got ${fps} ${location}`);\n }\n if (fps <= 0) {\n throw new TypeError(`\"fps\" must be positive, but got ${fps} ${location}`);\n }\n if (isGif && fps > 50) {\n throw new TypeError(`The FPS for a GIF cannot be higher than 50. Use the --every-nth-frame option to lower the FPS: https://remotion.dev/docs/render-as-gif`);\n }\n}\n\n// src/video/get-current-time.ts\nvar getExpectedMediaFrameUncorrected = ({\n frame,\n playbackRate,\n startFrom\n}) => {\n return interpolate(frame, [-1, startFrom, startFrom + 1], [-1, startFrom, startFrom + playbackRate]);\n};\n\n// src/absolute-src.ts\nvar getAbsoluteSrc = (relativeSrc) => {\n if (typeof window === \"undefined\") {\n return relativeSrc;\n }\n if (relativeSrc.startsWith(\"http://\") || relativeSrc.startsWith(\"https://\") || relativeSrc.startsWith(\"file://\") || relativeSrc.startsWith(\"blob:\") || relativeSrc.startsWith(\"data:\")) {\n return relativeSrc;\n }\n return new URL(relativeSrc, window.origin).href;\n};\n\n// src/video/offthread-video-source.ts\nvar getOffthreadVideoSource = ({\n src,\n transparent,\n currentTime,\n toneMapped\n}) => {\n return `http://localhost:${window.remotion_proxyPort}/proxy?src=${encodeURIComponent(getAbsoluteSrc(src))}&time=${encodeURIComponent(Math.max(0, currentTime))}&transparent=${String(transparent)}&toneMapped=${String(toneMapped)}`;\n};\n\n// src/no-react.ts\nvar NoReactInternals = {\n processColor,\n truthy,\n validateFps,\n validateDimension,\n validateDurationInFrames,\n validateDefaultAndInputProps,\n validateFrame,\n serializeJSONWithSpecialTypes,\n bundleName: \"bundle.js\",\n bundleMapName: \"bundle.js.map\",\n deserializeJSONWithSpecialTypes,\n DELAY_RENDER_CALLSTACK_TOKEN,\n DELAY_RENDER_RETRY_TOKEN,\n DELAY_RENDER_CLEAR_TOKEN,\n DELAY_RENDER_ATTEMPT_TOKEN: DELAY_RENDER_RETRIES_LEFT,\n getOffthreadVideoSource,\n getExpectedMediaFrameUncorrected,\n ENABLE_V5_BREAKING_CHANGES,\n MIN_NODE_VERSION: ENABLE_V5_BREAKING_CHANGES ? 18 : 16,\n MIN_BUN_VERSION: ENABLE_V5_BREAKING_CHANGES ? \"1.1.3\" : \"1.0.3\",\n colorNames,\n DATE_TOKEN,\n FILE_TOKEN,\n validateCodec,\n proResProfileOptions\n};\nexport {\n random,\n interpolate,\n NoReactInternals\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".bundle.js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"@thinkable-labs/lower-third-generator:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_thinkable_labs_lower_third_generator\"] = self[\"webpackChunk_thinkable_labs_lower_third_generator\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\n__webpack_require__(5460);\n__webpack_require__(70);\n__webpack_require__(3257);\nvar __webpack_exports__ = __webpack_require__(9681);\n",""],"names":[],"sourceRoot":""}