← back to Bertha
chore(rc,src): update 13 files (.js) [+15752] Files changed: M src/app/api/alerts/route.js M src/app/api/bankroll/route.js M src/app/api/dashboard/route.js M src/app/api/health/route.js M src/app/api/markets/route.js M src/app/api/models/route.js M src/app/api/risk/route.js M src/app/api/trades/route.js M src/app/api/weather/route.js M src/app/api/workers/route.js ?? .gitignore ?? kalshi-dash/ ?? react-dash/
c021c2c0ddbe3598704fe407c7c2bdd39f891543 · 2026-02-13 18:18:50 +0000 · DW Commit Agent
Files touched
A .gitignoreA kalshi-dash/dist/assets/index-BjOCoYyH.cssA kalshi-dash/dist/assets/index-R455jfx-.jsA kalshi-dash/dist/index.htmlA kalshi-dash/index.htmlA kalshi-dash/package-lock.jsonA kalshi-dash/package.jsonA kalshi-dash/postcss.config.jsA kalshi-dash/server.jsA kalshi-dash/src/Layout.jsxA kalshi-dash/src/Login.jsxA kalshi-dash/src/api.jsA kalshi-dash/src/index.cssA kalshi-dash/src/main.jsxA kalshi-dash/src/pages/Dashboard.jsxA kalshi-dash/src/pages/Markets.jsxA kalshi-dash/src/pages/Orders.jsxA kalshi-dash/src/pages/Positions.jsxA kalshi-dash/src/pages/Risk.jsxA kalshi-dash/src/pages/Settings.jsxA kalshi-dash/src/pages/Weather.jsxA kalshi-dash/src/setup/SetupWizard.jsxA kalshi-dash/src/setup/steps/BrowseMarkets.jsxA kalshi-dash/src/setup/steps/ConnectKalshi.jsxA kalshi-dash/src/setup/steps/FetchWeather.jsxA kalshi-dash/src/setup/steps/GoLive.jsxA kalshi-dash/src/setup/steps/RiskProfile.jsxA kalshi-dash/src/setup/steps/RunPredictions.jsxA kalshi-dash/src/setup/steps/TestConnection.jsxA kalshi-dash/src/setup/steps/Welcome.jsxA kalshi-dash/tailwind.config.jsA kalshi-dash/vite.config.jsA react-dash/dist/assets/index-DCWex4nn.jsA react-dash/dist/assets/index-X3aldCwL.cssA react-dash/dist/index.htmlA react-dash/index.htmlA react-dash/package-lock.jsonA react-dash/package.jsonA react-dash/postcss.config.jsA react-dash/server.jsA react-dash/src/Layout.jsxA react-dash/src/Login.jsxA react-dash/src/api.jsA react-dash/src/index.cssA react-dash/src/main.jsxA react-dash/src/pages/Bankroll.jsxA react-dash/src/pages/Dashboard.jsxA react-dash/src/pages/Markets.jsxA react-dash/src/pages/Models.jsxA react-dash/src/pages/Polymarket.jsxA react-dash/src/pages/Risk.jsxA react-dash/src/pages/Settings.jsxA react-dash/src/pages/Trades.jsxA react-dash/src/pages/Weather.jsxA react-dash/src/setup/SetupWizard.jsxA react-dash/src/setup/steps/ConnectPoly.jsxA react-dash/src/setup/steps/FetchWeather.jsxA react-dash/src/setup/steps/GoLive.jsxA react-dash/src/setup/steps/IngestMarkets.jsxA react-dash/src/setup/steps/RiskProfile.jsxA react-dash/src/setup/steps/RunPredictions.jsxA react-dash/src/setup/steps/TestConnection.jsxA react-dash/src/setup/steps/Welcome.jsxA react-dash/tailwind.config.jsA react-dash/vite.config.jsM src/app/api/alerts/route.jsM src/app/api/bankroll/route.jsM src/app/api/dashboard/route.jsM src/app/api/health/route.jsM src/app/api/markets/route.jsM src/app/api/models/route.jsM src/app/api/risk/route.jsM src/app/api/trades/route.jsM src/app/api/weather/route.jsM src/app/api/workers/route.js
Diff
commit c021c2c0ddbe3598704fe407c7c2bdd39f891543
Author: DW Commit Agent <commit-agent@dw-agents.com>
Date: Fri Feb 13 18:18:50 2026 +0000
chore(rc,src): update 13 files (.js) [+15752]
Files changed:
M src/app/api/alerts/route.js
M src/app/api/bankroll/route.js
M src/app/api/dashboard/route.js
M src/app/api/health/route.js
M src/app/api/markets/route.js
M src/app/api/models/route.js
M src/app/api/risk/route.js
M src/app/api/trades/route.js
M src/app/api/weather/route.js
M src/app/api/workers/route.js
?? .gitignore
?? kalshi-dash/
?? react-dash/
---
.gitignore | 1 +
kalshi-dash/dist/assets/index-BjOCoYyH.css | 1 +
kalshi-dash/dist/assets/index-R455jfx-.js | 136 +
kalshi-dash/dist/index.html | 15 +
kalshi-dash/index.html | 14 +
kalshi-dash/package-lock.json | 3444 ++++++++++++++++
kalshi-dash/package.json | 26 +
kalshi-dash/postcss.config.js | 6 +
kalshi-dash/server.js | 889 +++++
kalshi-dash/src/Layout.jsx | 73 +
kalshi-dash/src/Login.jsx | 121 +
kalshi-dash/src/api.js | 45 +
kalshi-dash/src/index.css | 27 +
kalshi-dash/src/main.jsx | 36 +
kalshi-dash/src/pages/Dashboard.jsx | 119 +
kalshi-dash/src/pages/Markets.jsx | 155 +
kalshi-dash/src/pages/Orders.jsx | 100 +
kalshi-dash/src/pages/Positions.jsx | 82 +
kalshi-dash/src/pages/Risk.jsx | 121 +
kalshi-dash/src/pages/Settings.jsx | 106 +
kalshi-dash/src/pages/Weather.jsx | 90 +
kalshi-dash/src/setup/SetupWizard.jsx | 119 +
kalshi-dash/src/setup/steps/BrowseMarkets.jsx | 94 +
kalshi-dash/src/setup/steps/ConnectKalshi.jsx | 95 +
kalshi-dash/src/setup/steps/FetchWeather.jsx | 79 +
kalshi-dash/src/setup/steps/GoLive.jsx | 106 +
kalshi-dash/src/setup/steps/RiskProfile.jsx | 68 +
kalshi-dash/src/setup/steps/RunPredictions.jsx | 87 +
kalshi-dash/src/setup/steps/TestConnection.jsx | 91 +
kalshi-dash/src/setup/steps/Welcome.jsx | 69 +
kalshi-dash/tailwind.config.js | 5 +
kalshi-dash/vite.config.js | 7 +
react-dash/dist/assets/index-DCWex4nn.js | 139 +
react-dash/dist/assets/index-X3aldCwL.css | 1 +
react-dash/dist/index.html | 14 +
react-dash/index.html | 13 +
react-dash/package-lock.json | 5100 ++++++++++++++++++++++++
react-dash/package.json | 28 +
react-dash/postcss.config.js | 3 +
react-dash/server.js | 690 ++++
react-dash/src/Layout.jsx | 82 +
react-dash/src/Login.jsx | 168 +
react-dash/src/api.js | 67 +
react-dash/src/index.css | 38 +
react-dash/src/main.jsx | 40 +
react-dash/src/pages/Bankroll.jsx | 153 +
react-dash/src/pages/Dashboard.jsx | 347 ++
react-dash/src/pages/Markets.jsx | 43 +
react-dash/src/pages/Models.jsx | 162 +
react-dash/src/pages/Polymarket.jsx | 325 ++
react-dash/src/pages/Risk.jsx | 255 ++
react-dash/src/pages/Settings.jsx | 331 ++
react-dash/src/pages/Trades.jsx | 134 +
react-dash/src/pages/Weather.jsx | 151 +
react-dash/src/setup/SetupWizard.jsx | 150 +
react-dash/src/setup/steps/ConnectPoly.jsx | 123 +
react-dash/src/setup/steps/FetchWeather.jsx | 85 +
react-dash/src/setup/steps/GoLive.jsx | 115 +
react-dash/src/setup/steps/IngestMarkets.jsx | 94 +
react-dash/src/setup/steps/RiskProfile.jsx | 109 +
react-dash/src/setup/steps/RunPredictions.jsx | 118 +
react-dash/src/setup/steps/TestConnection.jsx | 127 +
react-dash/src/setup/steps/Welcome.jsx | 69 +
react-dash/tailwind.config.js | 11 +
react-dash/vite.config.js | 20 +
src/app/api/alerts/route.js | 2 +
src/app/api/bankroll/route.js | 2 +
src/app/api/dashboard/route.js | 2 +
src/app/api/health/route.js | 2 +
src/app/api/markets/route.js | 2 +
src/app/api/models/route.js | 2 +
src/app/api/risk/route.js | 2 +
src/app/api/trades/route.js | 2 +
src/app/api/weather/route.js | 2 +
src/app/api/workers/route.js | 2 +
75 files changed, 15752 insertions(+)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3c3629e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+node_modules
diff --git a/kalshi-dash/dist/assets/index-BjOCoYyH.css b/kalshi-dash/dist/assets/index-BjOCoYyH.css
new file mode 100644
index 0000000..0b8befa
--- /dev/null
+++ b/kalshi-dash/dist/assets/index-BjOCoYyH.css
@@ -0,0 +1 @@
+*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.-top-2{top:-.5rem}.left-1{left:.25rem}.left-6{left:1.5rem}.right-3{right:.75rem}.top-1{top:.25rem}.top-1\/2{top:50%}.z-10{z-index:10}.mx-auto{margin-left:auto;margin-right:auto}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-20{height:5rem}.h-3{height:.75rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.max-h-48{max-height:12rem}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-20{width:5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-\[1600px\]{max-width:1600px}.max-w-\[180px\]{max-width:180px}.max-w-\[250px\]{max-width:250px}.max-w-\[300px\]{max-width:300px}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-amber-500{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.border-black{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity, 1))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-green-500{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.border-green-500\/20{border-color:#22c55e33}.border-green-500\/30{border-color:#22c55e4d}.border-red-500\/20{border-color:#ef444433}.border-yellow-500\/20{border-color:#eab30833}.border-yellow-500\/30{border-color:#eab3084d}.border-t-transparent{border-top-color:transparent}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-500\/15{background-color:#f59e0b26}.bg-blue-500\/10{background-color:#3b82f61a}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-800\/30{background-color:#1f29374d}.bg-gray-800\/50{background-color:#1f293780}.bg-gray-900\/50{background-color:#11182780}.bg-green-400{--tw-bg-opacity: 1;background-color:rgb(74 222 128 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-500\/15{background-color:#22c55e26}.bg-green-500\/30{background-color:#22c55e4d}.bg-green-500\/5{background-color:#22c55e0d}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-yellow-400{--tw-bg-opacity: 1;background-color:rgb(250 204 21 / var(--tw-bg-opacity, 1))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-yellow-500\/15{background-color:#eab30826}.bg-yellow-500\/30{background-color:#eab3084d}.bg-yellow-500\/5{background-color:#eab3080d}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pr-10{padding-right:2.5rem}.pt-3{padding-top:.75rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.opacity-50{opacity:.5}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}:root{--bg: #0a0e1a;--card: #111827;--border: #1e293b;--accent: #f59e0b}body{background:var(--bg);color:#e2e8f0;font-family:Inter,sans-serif;margin:0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#374151;border-radius:3px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.25rem}.stat-v{font-size:1.75rem;font-weight:700;line-height:1}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:9999px;font-size:.75rem;font-weight:600}.bg-green{background:#10b98126;color:#10b981}.bg-red{background:#ef444426;color:#ef4444}.bg-yellow{background:#f59e0b26;color:#f59e0b}.bg-blue{background:#3b82f626;color:#3b82f6}.bg-orange{background:#f9731626;color:#f97316}.pulse-g{animation:pg 2s infinite}@keyframes pg{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 6px #f59e0b00}}.btn{padding:.5rem 1rem;border-radius:8px;font-weight:600;font-size:.875rem;cursor:pointer;border:none;transition:all .15s}.btn-p{background:#f59e0b;color:#111}.btn-p:hover{background:#d97706}.btn-d{background:#ef4444;color:#fff}.btn-d:hover{background:#dc2626}.btn-s{background:#10b981;color:#fff}.btn-s:hover{background:#059669}.btn-o{background:transparent;border:1px solid var(--border);color:#9ca3af}.btn-o:hover{border-color:#f59e0b;color:#f59e0b}table{width:100%;border-collapse:collapse}th{text-align:left;padding:.75rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b;border-bottom:1px solid var(--border)}td{padding:.75rem;border-bottom:1px solid rgba(30,41,59,.5);font-size:.85rem}tr:hover td{background:#f59e0b08}.kalshi-gradient{background:linear-gradient(135deg,#f59e0b,#f97316);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hover\:bg-gray-800\/50:hover{background-color:#1f293780}.hover\:bg-gray-800\/60:hover{background-color:#1f293799}.hover\:text-amber-300:hover{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.hover\:text-gray-200:hover{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.hover\:text-gray-300:hover{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.hover\:text-red-300:hover{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.focus\:border-amber-500:focus{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\:opacity-50:disabled{opacity:.5}
diff --git a/kalshi-dash/dist/assets/index-R455jfx-.js b/kalshi-dash/dist/assets/index-R455jfx-.js
new file mode 100644
index 0000000..c4b7058
--- /dev/null
+++ b/kalshi-dash/dist/assets/index-R455jfx-.js
@@ -0,0 +1,136 @@
+function z_(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const i in n)if(i!=="default"&&!(i in e)){const a=Object.getOwnPropertyDescriptor(n,i);a&&Object.defineProperty(e,i,a.get?a:{enumerable:!0,get:()=>n[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();var Il=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function he(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ub={exports:{}},Ju={},Wb={exports:{}},te={};/**
+ * @license React
+ * react.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var xl=Symbol.for("react.element"),F_=Symbol.for("react.portal"),U_=Symbol.for("react.fragment"),W_=Symbol.for("react.strict_mode"),H_=Symbol.for("react.profiler"),K_=Symbol.for("react.provider"),V_=Symbol.for("react.context"),G_=Symbol.for("react.forward_ref"),X_=Symbol.for("react.suspense"),q_=Symbol.for("react.memo"),Y_=Symbol.for("react.lazy"),Dm=Symbol.iterator;function Q_(e){return e===null||typeof e!="object"?null:(e=Dm&&e[Dm]||e["@@iterator"],typeof e=="function"?e:null)}var Hb={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Kb=Object.assign,Vb={};function va(e,t,r){this.props=e,this.context=t,this.refs=Vb,this.updater=r||Hb}va.prototype.isReactComponent={};va.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)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,e,t,"setState")};va.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Gb(){}Gb.prototype=va.prototype;function kh(e,t,r){this.props=e,this.context=t,this.refs=Vb,this.updater=r||Hb}var $h=kh.prototype=new Gb;$h.constructor=kh;Kb($h,va.prototype);$h.isPureReactComponent=!0;var Lm=Array.isArray,Xb=Object.prototype.hasOwnProperty,Nh={current:null},qb={key:!0,ref:!0,__self:!0,__source:!0};function Yb(e,t,r){var n,i={},a=null,o=null;if(t!=null)for(n in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(a=""+t.key),t)Xb.call(t,n)&&!qb.hasOwnProperty(n)&&(i[n]=t[n]);var l=arguments.length-2;if(l===1)i.children=r;else if(1<l){for(var s=Array(l),u=0;u<l;u++)s[u]=arguments[u+2];i.children=s}if(e&&e.defaultProps)for(n in l=e.defaultProps,l)i[n]===void 0&&(i[n]=l[n]);return{$$typeof:xl,type:e,key:a,ref:o,props:i,_owner:Nh.current}}function Z_(e,t){return{$$typeof:xl,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function Th(e){return typeof e=="object"&&e!==null&&e.$$typeof===xl}function J_(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return t[r]})}var Rm=/\/+/g;function lf(e,t){return typeof e=="object"&&e!==null&&e.key!=null?J_(""+e.key):t.toString(36)}function hs(e,t,r,n,i){var a=typeof e;(a==="undefined"||a==="boolean")&&(e=null);var o=!1;if(e===null)o=!0;else switch(a){case"string":case"number":o=!0;break;case"object":switch(e.$$typeof){case xl:case F_:o=!0}}if(o)return o=e,i=i(o),e=n===""?"."+lf(o,0):n,Lm(i)?(r="",e!=null&&(r=e.replace(Rm,"$&/")+"/"),hs(i,t,r,"",function(u){return u})):i!=null&&(Th(i)&&(i=Z_(i,r+(!i.key||o&&o.key===i.key?"":(""+i.key).replace(Rm,"$&/")+"/")+e)),t.push(i)),1;if(o=0,n=n===""?".":n+":",Lm(e))for(var l=0;l<e.length;l++){a=e[l];var s=n+lf(a,l);o+=hs(a,t,r,s,i)}else if(s=Q_(e),typeof s=="function")for(e=s.call(e),l=0;!(a=e.next()).done;)a=a.value,s=n+lf(a,l++),o+=hs(a,t,r,s,i);else if(a==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return o}function Dl(e,t,r){if(e==null)return e;var n=[],i=0;return hs(e,n,"","",function(a){return t.call(r,a,i++)}),n}function eP(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(r){(e._status===0||e._status===-1)&&(e._status=1,e._result=r)},function(r){(e._status===0||e._status===-1)&&(e._status=2,e._result=r)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var ct={current:null},vs={transition:null},tP={ReactCurrentDispatcher:ct,ReactCurrentBatchConfig:vs,ReactCurrentOwner:Nh};function Qb(){throw Error("act(...) is not supported in production builds of React.")}te.Children={map:Dl,forEach:function(e,t,r){Dl(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return Dl(e,function(){t++}),t},toArray:function(e){return Dl(e,function(t){return t})||[]},only:function(e){if(!Th(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};te.Component=va;te.Fragment=U_;te.Profiler=H_;te.PureComponent=kh;te.StrictMode=W_;te.Suspense=X_;te.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tP;te.act=Qb;te.cloneElement=function(e,t,r){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var n=Kb({},e.props),i=e.key,a=e.ref,o=e._owner;if(t!=null){if(t.ref!==void 0&&(a=t.ref,o=Nh.current),t.key!==void 0&&(i=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(s in t)Xb.call(t,s)&&!qb.hasOwnProperty(s)&&(n[s]=t[s]===void 0&&l!==void 0?l[s]:t[s])}var s=arguments.length-2;if(s===1)n.children=r;else if(1<s){l=Array(s);for(var u=0;u<s;u++)l[u]=arguments[u+2];n.children=l}return{$$typeof:xl,type:e.type,key:i,ref:a,props:n,_owner:o}};te.createContext=function(e){return e={$$typeof:V_,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:K_,_context:e},e.Consumer=e};te.createElement=Yb;te.createFactory=function(e){var t=Yb.bind(null,e);return t.type=e,t};te.createRef=function(){return{current:null}};te.forwardRef=function(e){return{$$typeof:G_,render:e}};te.isValidElement=Th;te.lazy=function(e){return{$$typeof:Y_,_payload:{_status:-1,_result:e},_init:eP}};te.memo=function(e,t){return{$$typeof:q_,type:e,compare:t===void 0?null:t}};te.startTransition=function(e){var t=vs.transition;vs.transition={};try{e()}finally{vs.transition=t}};te.unstable_act=Qb;te.useCallback=function(e,t){return ct.current.useCallback(e,t)};te.useContext=function(e){return ct.current.useContext(e)};te.useDebugValue=function(){};te.useDeferredValue=function(e){return ct.current.useDeferredValue(e)};te.useEffect=function(e,t){return ct.current.useEffect(e,t)};te.useId=function(){return ct.current.useId()};te.useImperativeHandle=function(e,t,r){return ct.current.useImperativeHandle(e,t,r)};te.useInsertionEffect=function(e,t){return ct.current.useInsertionEffect(e,t)};te.useLayoutEffect=function(e,t){return ct.current.useLayoutEffect(e,t)};te.useMemo=function(e,t){return ct.current.useMemo(e,t)};te.useReducer=function(e,t,r){return ct.current.useReducer(e,t,r)};te.useRef=function(e){return ct.current.useRef(e)};te.useState=function(e){return ct.current.useState(e)};te.useSyncExternalStore=function(e,t,r){return ct.current.useSyncExternalStore(e,t,r)};te.useTransition=function(){return ct.current.useTransition()};te.version="18.3.1";Wb.exports=te;var P=Wb.exports;const E=he(P),rP=z_({__proto__:null,default:E},[P]);/**
+ * @license React
+ * react-jsx-runtime.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var nP=P,iP=Symbol.for("react.element"),aP=Symbol.for("react.fragment"),oP=Object.prototype.hasOwnProperty,lP=nP.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,sP={key:!0,ref:!0,__self:!0,__source:!0};function Zb(e,t,r){var n,i={},a=null,o=null;r!==void 0&&(a=""+r),t.key!==void 0&&(a=""+t.key),t.ref!==void 0&&(o=t.ref);for(n in t)oP.call(t,n)&&!sP.hasOwnProperty(n)&&(i[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps,t)i[n]===void 0&&(i[n]=t[n]);return{$$typeof:iP,type:e,key:a,ref:o,props:i,_owner:lP.current}}Ju.Fragment=aP;Ju.jsx=Zb;Ju.jsxs=Zb;Ub.exports=Ju;var d=Ub.exports,cd={},Jb={exports:{}},kt={},e1={exports:{}},t1={};/**
+ * @license React
+ * scheduler.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */(function(e){function t(T,L){var B=T.length;T.push(L);e:for(;0<B;){var K=B-1>>>1,W=T[K];if(0<i(W,L))T[K]=L,T[B]=W,B=K;else break e}}function r(T){return T.length===0?null:T[0]}function n(T){if(T.length===0)return null;var L=T[0],B=T.pop();if(B!==L){T[0]=B;e:for(var K=0,W=T.length,q=W>>>1;K<q;){var ne=2*(K+1)-1,we=T[ne],Ne=ne+1,Nt=T[Ne];if(0>i(we,B))Ne<W&&0>i(Nt,we)?(T[K]=Nt,T[Ne]=B,K=Ne):(T[K]=we,T[ne]=B,K=ne);else if(Ne<W&&0>i(Nt,B))T[K]=Nt,T[Ne]=B,K=Ne;else break e}}return L}function i(T,L){var B=T.sortIndex-L.sortIndex;return B!==0?B:T.id-L.id}if(typeof performance=="object"&&typeof performance.now=="function"){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,l=o.now();e.unstable_now=function(){return o.now()-l}}var s=[],u=[],f=1,c=null,p=3,h=!1,y=!1,b=!1,g=typeof setTimeout=="function"?setTimeout:null,m=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function x(T){for(var L=r(u);L!==null;){if(L.callback===null)n(u);else if(L.startTime<=T)n(u),L.sortIndex=L.expirationTime,t(s,L);else break;L=r(u)}}function O(T){if(b=!1,x(T),!y)if(r(s)!==null)y=!0,R(w);else{var L=r(u);L!==null&&z(O,L.startTime-T)}}function w(T,L){y=!1,b&&(b=!1,m(_),_=-1),h=!0;var B=p;try{for(x(L),c=r(s);c!==null&&(!(c.expirationTime>L)||T&&!N());){var K=c.callback;if(typeof K=="function"){c.callback=null,p=c.priorityLevel;var W=K(c.expirationTime<=L);L=e.unstable_now(),typeof W=="function"?c.callback=W:c===r(s)&&n(s),x(L)}else n(s);c=r(s)}if(c!==null)var q=!0;else{var ne=r(u);ne!==null&&z(O,ne.startTime-L),q=!1}return q}finally{c=null,p=B,h=!1}}var S=!1,j=null,_=-1,A=5,$=-1;function N(){return!(e.unstable_now()-$<A)}function k(){if(j!==null){var T=e.unstable_now();$=T;var L=!0;try{L=j(!0,T)}finally{L?D():(S=!1,j=null)}}else S=!1}var D;if(typeof v=="function")D=function(){v(k)};else if(typeof MessageChannel<"u"){var I=new MessageChannel,M=I.port2;I.port1.onmessage=k,D=function(){M.postMessage(null)}}else D=function(){g(k,0)};function R(T){j=T,S||(S=!0,D())}function z(T,L){_=g(function(){T(e.unstable_now())},L)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(T){T.callback=null},e.unstable_continueExecution=function(){y||h||(y=!0,R(w))},e.unstable_forceFrameRate=function(T){0>T||125<T?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):A=0<T?Math.floor(1e3/T):5},e.unstable_getCurrentPriorityLevel=function(){return p},e.unstable_getFirstCallbackNode=function(){return r(s)},e.unstable_next=function(T){switch(p){case 1:case 2:case 3:var L=3;break;default:L=p}var B=p;p=L;try{return T()}finally{p=B}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(T,L){switch(T){case 1:case 2:case 3:case 4:case 5:break;default:T=3}var B=p;p=T;try{return L()}finally{p=B}},e.unstable_scheduleCallback=function(T,L,B){var K=e.unstable_now();switch(typeof B=="object"&&B!==null?(B=B.delay,B=typeof B=="number"&&0<B?K+B:K):B=K,T){case 1:var W=-1;break;case 2:W=250;break;case 5:W=1073741823;break;case 4:W=1e4;break;default:W=5e3}return W=B+W,T={id:f++,callback:L,priorityLevel:T,startTime:B,expirationTime:W,sortIndex:-1},B>K?(T.sortIndex=B,t(u,T),r(s)===null&&T===r(u)&&(b?(m(_),_=-1):b=!0,z(O,B-K))):(T.sortIndex=W,t(s,T),y||h||(y=!0,R(w))),T},e.unstable_shouldYield=N,e.unstable_wrapCallback=function(T){var L=p;return function(){var B=p;p=L;try{return T.apply(this,arguments)}finally{p=B}}}})(t1);e1.exports=t1;var uP=e1.exports;/**
+ * @license React
+ * react-dom.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var cP=P,At=uP;function U(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var r1=new Set,go={};function ni(e,t){zi(e,t),zi(e+"Capture",t)}function zi(e,t){for(go[e]=t,e=0;e<t.length;e++)r1.add(t[e])}var Nr=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),fd=Object.prototype.hasOwnProperty,fP=/^[: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]*$/,Bm={},zm={};function dP(e){return fd.call(zm,e)?!0:fd.call(Bm,e)?!1:fP.test(e)?zm[e]=!0:(Bm[e]=!0,!1)}function pP(e,t,r,n){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return n?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function hP(e,t,r,n){if(t===null||typeof t>"u"||pP(e,t,r,n))return!0;if(n)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ft(e,t,r,n,i,a,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=i,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=o}var Je={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Je[e]=new ft(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Je[t]=new ft(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Je[e]=new ft(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Je[e]=new ft(e,2,!1,e,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(e){Je[e]=new ft(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Je[e]=new ft(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Je[e]=new ft(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Je[e]=new ft(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Je[e]=new ft(e,5,!1,e.toLowerCase(),null,!1,!1)});var Ch=/[\-:]([a-z])/g;function Mh(e){return e[1].toUpperCase()}"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(e){var t=e.replace(Ch,Mh);Je[t]=new ft(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Ch,Mh);Je[t]=new ft(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Ch,Mh);Je[t]=new ft(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Je[e]=new ft(e,1,!1,e.toLowerCase(),null,!1,!1)});Je.xlinkHref=new ft("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Je[e]=new ft(e,1,!1,e.toLowerCase(),null,!0,!0)});function Ih(e,t,r,n){var i=Je.hasOwnProperty(t)?Je[t]:null;(i!==null?i.type!==0:n||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(hP(t,r,i,n)&&(r=null),n||i===null?dP(t)&&(r===null?e.removeAttribute(t):e.setAttribute(t,""+r)):i.mustUseProperty?e[i.propertyName]=r===null?i.type===3?!1:"":r:(t=i.attributeName,n=i.attributeNamespace,r===null?e.removeAttribute(t):(i=i.type,r=i===3||i===4&&r===!0?"":""+r,n?e.setAttributeNS(n,t,r):e.setAttribute(t,r))))}var Br=cP.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Ll=Symbol.for("react.element"),vi=Symbol.for("react.portal"),mi=Symbol.for("react.fragment"),Dh=Symbol.for("react.strict_mode"),dd=Symbol.for("react.profiler"),n1=Symbol.for("react.provider"),i1=Symbol.for("react.context"),Lh=Symbol.for("react.forward_ref"),pd=Symbol.for("react.suspense"),hd=Symbol.for("react.suspense_list"),Rh=Symbol.for("react.memo"),Vr=Symbol.for("react.lazy"),a1=Symbol.for("react.offscreen"),Fm=Symbol.iterator;function Ma(e){return e===null||typeof e!="object"?null:(e=Fm&&e[Fm]||e["@@iterator"],typeof e=="function"?e:null)}var Ae=Object.assign,sf;function Za(e){if(sf===void 0)try{throw Error()}catch(r){var t=r.stack.trim().match(/\n( *(at )?)/);sf=t&&t[1]||""}return`
+`+sf+e}var uf=!1;function cf(e,t){if(!e||uf)return"";uf=!0;var r=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var n=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){n=u}e.call(t.prototype)}else{try{throw Error()}catch(u){n=u}e()}}catch(u){if(u&&n&&typeof u.stack=="string"){for(var i=u.stack.split(`
+`),a=n.stack.split(`
+`),o=i.length-1,l=a.length-1;1<=o&&0<=l&&i[o]!==a[l];)l--;for(;1<=o&&0<=l;o--,l--)if(i[o]!==a[l]){if(o!==1||l!==1)do if(o--,l--,0>l||i[o]!==a[l]){var s=`
+`+i[o].replace(" at new "," at ");return e.displayName&&s.includes("<anonymous>")&&(s=s.replace("<anonymous>",e.displayName)),s}while(1<=o&&0<=l);break}}}finally{uf=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?Za(e):""}function vP(e){switch(e.tag){case 5:return Za(e.type);case 16:return Za("Lazy");case 13:return Za("Suspense");case 19:return Za("SuspenseList");case 0:case 2:case 15:return e=cf(e.type,!1),e;case 11:return e=cf(e.type.render,!1),e;case 1:return e=cf(e.type,!0),e;default:return""}}function vd(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case mi:return"Fragment";case vi:return"Portal";case dd:return"Profiler";case Dh:return"StrictMode";case pd:return"Suspense";case hd:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case i1:return(e.displayName||"Context")+".Consumer";case n1:return(e._context.displayName||"Context")+".Provider";case Lh:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Rh:return t=e.displayName||null,t!==null?t:vd(e.type)||"Memo";case Vr:t=e._payload,e=e._init;try{return vd(e(t))}catch{}}return null}function mP(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return vd(t);case 8:return t===Dh?"StrictMode":"Mode";case 22:return"Offscreen";case 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(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function vn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function o1(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function yP(e){var t=o1(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){n=""+o,a.call(this,o)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(o){n=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Rl(e){e._valueTracker||(e._valueTracker=yP(e))}function l1(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=o1(e)?e.checked?"true":"false":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function As(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function md(e,t){var r=t.checked;return Ae({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function Um(e,t){var r=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=vn(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function s1(e,t){t=t.checked,t!=null&&Ih(e,"checked",t,!1)}function yd(e,t){s1(e,t);var r=vn(t.value),n=t.type;if(r!=null)n==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?gd(e,t.type,r):t.hasOwnProperty("defaultValue")&&gd(e,t.type,vn(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Wm(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function gd(e,t,r){(t!=="number"||As(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var Ja=Array.isArray;function $i(e,t,r,n){if(e=e.options,t){t={};for(var i=0;i<r.length;i++)t["$"+r[i]]=!0;for(r=0;r<e.length;r++)i=t.hasOwnProperty("$"+e[r].value),e[r].selected!==i&&(e[r].selected=i),i&&n&&(e[r].defaultSelected=!0)}else{for(r=""+vn(r),t=null,i=0;i<e.length;i++){if(e[i].value===r){e[i].selected=!0,n&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function xd(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(U(91));return Ae({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Hm(e,t){var r=t.value;if(r==null){if(r=t.children,t=t.defaultValue,r!=null){if(t!=null)throw Error(U(92));if(Ja(r)){if(1<r.length)throw Error(U(93));r=r[0]}t=r}t==null&&(t=""),r=t}e._wrapperState={initialValue:vn(r)}}function u1(e,t){var r=vn(t.value),n=vn(t.defaultValue);r!=null&&(r=""+r,r!==e.value&&(e.value=r),t.defaultValue==null&&e.defaultValue!==r&&(e.defaultValue=r)),n!=null&&(e.defaultValue=""+n)}function Km(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function c1(e){switch(e){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"}}function bd(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?c1(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Bl,f1=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,r,n,i){MSApp.execUnsafeLocalFunction(function(){return e(t,r,n,i)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(Bl=Bl||document.createElement("div"),Bl.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Bl.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function xo(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var no={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,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},gP=["Webkit","ms","Moz","O"];Object.keys(no).forEach(function(e){gP.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),no[t]=no[e]})});function d1(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||no.hasOwnProperty(e)&&no[e]?(""+t).trim():t+"px"}function p1(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf("--")===0,i=d1(r,t[r],n);r==="float"&&(r="cssFloat"),n?e.setProperty(r,i):e[r]=i}}var xP=Ae({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});function wd(e,t){if(t){if(xP[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(U(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(U(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(U(61))}if(t.style!=null&&typeof t.style!="object")throw Error(U(62))}}function Sd(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){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 Od=null;function Bh(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var jd=null,Ni=null,Ti=null;function Vm(e){if(e=Sl(e)){if(typeof jd!="function")throw Error(U(280));var t=e.stateNode;t&&(t=ic(t),jd(e.stateNode,e.type,t))}}function h1(e){Ni?Ti?Ti.push(e):Ti=[e]:Ni=e}function v1(){if(Ni){var e=Ni,t=Ti;if(Ti=Ni=null,Vm(e),t)for(e=0;e<t.length;e++)Vm(t[e])}}function m1(e,t){return e(t)}function y1(){}var ff=!1;function g1(e,t,r){if(ff)return e(t,r);ff=!0;try{return m1(e,t,r)}finally{ff=!1,(Ni!==null||Ti!==null)&&(y1(),v1())}}function bo(e,t){var r=e.stateNode;if(r===null)return null;var n=ic(r);if(n===null)return null;r=n[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(n=!n.disabled)||(e=e.type,n=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!n;break e;default:e=!1}if(e)return null;if(r&&typeof r!="function")throw Error(U(231,t,typeof r));return r}var _d=!1;if(Nr)try{var Ia={};Object.defineProperty(Ia,"passive",{get:function(){_d=!0}}),window.addEventListener("test",Ia,Ia),window.removeEventListener("test",Ia,Ia)}catch{_d=!1}function bP(e,t,r,n,i,a,o,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(r,u)}catch(f){this.onError(f)}}var io=!1,Es=null,ks=!1,Pd=null,wP={onError:function(e){io=!0,Es=e}};function SP(e,t,r,n,i,a,o,l,s){io=!1,Es=null,bP.apply(wP,arguments)}function OP(e,t,r,n,i,a,o,l,s){if(SP.apply(this,arguments),io){if(io){var u=Es;io=!1,Es=null}else throw Error(U(198));ks||(ks=!0,Pd=u)}}function ii(e){var t=e,r=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(r=t.return),e=t.return;while(e)}return t.tag===3?r:null}function x1(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function Gm(e){if(ii(e)!==e)throw Error(U(188))}function jP(e){var t=e.alternate;if(!t){if(t=ii(e),t===null)throw Error(U(188));return t!==e?null:e}for(var r=e,n=t;;){var i=r.return;if(i===null)break;var a=i.alternate;if(a===null){if(n=i.return,n!==null){r=n;continue}break}if(i.child===a.child){for(a=i.child;a;){if(a===r)return Gm(i),e;if(a===n)return Gm(i),t;a=a.sibling}throw Error(U(188))}if(r.return!==n.return)r=i,n=a;else{for(var o=!1,l=i.child;l;){if(l===r){o=!0,r=i,n=a;break}if(l===n){o=!0,n=i,r=a;break}l=l.sibling}if(!o){for(l=a.child;l;){if(l===r){o=!0,r=a,n=i;break}if(l===n){o=!0,n=a,r=i;break}l=l.sibling}if(!o)throw Error(U(189))}}if(r.alternate!==n)throw Error(U(190))}if(r.tag!==3)throw Error(U(188));return r.stateNode.current===r?e:t}function b1(e){return e=jP(e),e!==null?w1(e):null}function w1(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=w1(e);if(t!==null)return t;e=e.sibling}return null}var S1=At.unstable_scheduleCallback,Xm=At.unstable_cancelCallback,_P=At.unstable_shouldYield,PP=At.unstable_requestPaint,Te=At.unstable_now,AP=At.unstable_getCurrentPriorityLevel,zh=At.unstable_ImmediatePriority,O1=At.unstable_UserBlockingPriority,$s=At.unstable_NormalPriority,EP=At.unstable_LowPriority,j1=At.unstable_IdlePriority,ec=null,pr=null;function kP(e){if(pr&&typeof pr.onCommitFiberRoot=="function")try{pr.onCommitFiberRoot(ec,e,void 0,(e.current.flags&128)===128)}catch{}}var rr=Math.clz32?Math.clz32:TP,$P=Math.log,NP=Math.LN2;function TP(e){return e>>>=0,e===0?32:31-($P(e)/NP|0)|0}var zl=64,Fl=4194304;function eo(e){switch(e&-e){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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ns(e,t){var r=e.pendingLanes;if(r===0)return 0;var n=0,i=e.suspendedLanes,a=e.pingedLanes,o=r&268435455;if(o!==0){var l=o&~i;l!==0?n=eo(l):(a&=o,a!==0&&(n=eo(a)))}else o=r&~i,o!==0?n=eo(o):a!==0&&(n=eo(a));if(n===0)return 0;if(t!==0&&t!==n&&!(t&i)&&(i=n&-n,a=t&-t,i>=a||i===16&&(a&4194240)!==0))return t;if(n&4&&(n|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0<t;)r=31-rr(t),i=1<<r,n|=e[r],t&=~i;return n}function CP(e,t){switch(e){case 1:case 2:case 4:return t+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 t+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}}function MP(e,t){for(var r=e.suspendedLanes,n=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes;0<a;){var o=31-rr(a),l=1<<o,s=i[o];s===-1?(!(l&r)||l&n)&&(i[o]=CP(l,t)):s<=t&&(e.expiredLanes|=l),a&=~l}}function Ad(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function _1(){var e=zl;return zl<<=1,!(zl&4194240)&&(zl=64),e}function df(e){for(var t=[],r=0;31>r;r++)t.push(e);return t}function bl(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-rr(t),e[t]=r}function IP(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var n=e.eventTimes;for(e=e.expirationTimes;0<r;){var i=31-rr(r),a=1<<i;t[i]=0,n[i]=-1,e[i]=-1,r&=~a}}function Fh(e,t){var r=e.entangledLanes|=t;for(e=e.entanglements;r;){var n=31-rr(r),i=1<<n;i&t|e[n]&t&&(e[n]|=t),r&=~i}}var ue=0;function P1(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var A1,Uh,E1,k1,$1,Ed=!1,Ul=[],nn=null,an=null,on=null,wo=new Map,So=new Map,qr=[],DP="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(" ");function qm(e,t){switch(e){case"focusin":case"focusout":nn=null;break;case"dragenter":case"dragleave":an=null;break;case"mouseover":case"mouseout":on=null;break;case"pointerover":case"pointerout":wo.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":So.delete(t.pointerId)}}function Da(e,t,r,n,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:r,eventSystemFlags:n,nativeEvent:a,targetContainers:[i]},t!==null&&(t=Sl(t),t!==null&&Uh(t)),e):(e.eventSystemFlags|=n,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function LP(e,t,r,n,i){switch(t){case"focusin":return nn=Da(nn,e,t,r,n,i),!0;case"dragenter":return an=Da(an,e,t,r,n,i),!0;case"mouseover":return on=Da(on,e,t,r,n,i),!0;case"pointerover":var a=i.pointerId;return wo.set(a,Da(wo.get(a)||null,e,t,r,n,i)),!0;case"gotpointercapture":return a=i.pointerId,So.set(a,Da(So.get(a)||null,e,t,r,n,i)),!0}return!1}function N1(e){var t=In(e.target);if(t!==null){var r=ii(t);if(r!==null){if(t=r.tag,t===13){if(t=x1(r),t!==null){e.blockedOn=t,$1(e.priority,function(){E1(r)});return}}else if(t===3&&r.stateNode.current.memoizedState.isDehydrated){e.blockedOn=r.tag===3?r.stateNode.containerInfo:null;return}}}e.blockedOn=null}function ms(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var r=kd(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(r===null){r=e.nativeEvent;var n=new r.constructor(r.type,r);Od=n,r.target.dispatchEvent(n),Od=null}else return t=Sl(r),t!==null&&Uh(t),e.blockedOn=r,!1;t.shift()}return!0}function Ym(e,t,r){ms(e)&&r.delete(t)}function RP(){Ed=!1,nn!==null&&ms(nn)&&(nn=null),an!==null&&ms(an)&&(an=null),on!==null&&ms(on)&&(on=null),wo.forEach(Ym),So.forEach(Ym)}function La(e,t){e.blockedOn===t&&(e.blockedOn=null,Ed||(Ed=!0,At.unstable_scheduleCallback(At.unstable_NormalPriority,RP)))}function Oo(e){function t(i){return La(i,e)}if(0<Ul.length){La(Ul[0],e);for(var r=1;r<Ul.length;r++){var n=Ul[r];n.blockedOn===e&&(n.blockedOn=null)}}for(nn!==null&&La(nn,e),an!==null&&La(an,e),on!==null&&La(on,e),wo.forEach(t),So.forEach(t),r=0;r<qr.length;r++)n=qr[r],n.blockedOn===e&&(n.blockedOn=null);for(;0<qr.length&&(r=qr[0],r.blockedOn===null);)N1(r),r.blockedOn===null&&qr.shift()}var Ci=Br.ReactCurrentBatchConfig,Ts=!0;function BP(e,t,r,n){var i=ue,a=Ci.transition;Ci.transition=null;try{ue=1,Wh(e,t,r,n)}finally{ue=i,Ci.transition=a}}function zP(e,t,r,n){var i=ue,a=Ci.transition;Ci.transition=null;try{ue=4,Wh(e,t,r,n)}finally{ue=i,Ci.transition=a}}function Wh(e,t,r,n){if(Ts){var i=kd(e,t,r,n);if(i===null)Sf(e,t,n,Cs,r),qm(e,n);else if(LP(i,e,t,r,n))n.stopPropagation();else if(qm(e,n),t&4&&-1<DP.indexOf(e)){for(;i!==null;){var a=Sl(i);if(a!==null&&A1(a),a=kd(e,t,r,n),a===null&&Sf(e,t,n,Cs,r),a===i)break;i=a}i!==null&&n.stopPropagation()}else Sf(e,t,n,null,r)}}var Cs=null;function kd(e,t,r,n){if(Cs=null,e=Bh(n),e=In(e),e!==null)if(t=ii(e),t===null)e=null;else if(r=t.tag,r===13){if(e=x1(t),e!==null)return e;e=null}else if(r===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Cs=e,null}function T1(e){switch(e){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;case"message":switch(AP()){case zh:return 1;case O1:return 4;case $s:case EP:return 16;case j1:return 536870912;default:return 16}default:return 16}}var Zr=null,Hh=null,ys=null;function C1(){if(ys)return ys;var e,t=Hh,r=t.length,n,i="value"in Zr?Zr.value:Zr.textContent,a=i.length;for(e=0;e<r&&t[e]===i[e];e++);var o=r-e;for(n=1;n<=o&&t[r-n]===i[a-n];n++);return ys=i.slice(e,1<n?1-n:void 0)}function gs(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Wl(){return!0}function Qm(){return!1}function $t(e){function t(r,n,i,a,o){this._reactName=r,this._targetInst=i,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null;for(var l in e)e.hasOwnProperty(l)&&(r=e[l],this[l]=r?r(a):a[l]);return this.isDefaultPrevented=(a.defaultPrevented!=null?a.defaultPrevented:a.returnValue===!1)?Wl:Qm,this.isPropagationStopped=Qm,this}return Ae(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var r=this.nativeEvent;r&&(r.preventDefault?r.preventDefault():typeof r.returnValue!="unknown"&&(r.returnValue=!1),this.isDefaultPrevented=Wl)},stopPropagation:function(){var r=this.nativeEvent;r&&(r.stopPropagation?r.stopPropagation():typeof r.cancelBubble!="unknown"&&(r.cancelBubble=!0),this.isPropagationStopped=Wl)},persist:function(){},isPersistent:Wl}),t}var ma={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Kh=$t(ma),wl=Ae({},ma,{view:0,detail:0}),FP=$t(wl),pf,hf,Ra,tc=Ae({},wl,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Vh,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Ra&&(Ra&&e.type==="mousemove"?(pf=e.screenX-Ra.screenX,hf=e.screenY-Ra.screenY):hf=pf=0,Ra=e),pf)},movementY:function(e){return"movementY"in e?e.movementY:hf}}),Zm=$t(tc),UP=Ae({},tc,{dataTransfer:0}),WP=$t(UP),HP=Ae({},wl,{relatedTarget:0}),vf=$t(HP),KP=Ae({},ma,{animationName:0,elapsedTime:0,pseudoElement:0}),VP=$t(KP),GP=Ae({},ma,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),XP=$t(GP),qP=Ae({},ma,{data:0}),Jm=$t(qP),YP={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},QP={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",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},ZP={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function JP(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=ZP[e])?!!t[e]:!1}function Vh(){return JP}var eA=Ae({},wl,{key:function(e){if(e.key){var t=YP[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=gs(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?QP[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Vh,charCode:function(e){return e.type==="keypress"?gs(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?gs(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),tA=$t(eA),rA=Ae({},tc,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),ey=$t(rA),nA=Ae({},wl,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Vh}),iA=$t(nA),aA=Ae({},ma,{propertyName:0,elapsedTime:0,pseudoElement:0}),oA=$t(aA),lA=Ae({},tc,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),sA=$t(lA),uA=[9,13,27,32],Gh=Nr&&"CompositionEvent"in window,ao=null;Nr&&"documentMode"in document&&(ao=document.documentMode);var cA=Nr&&"TextEvent"in window&&!ao,M1=Nr&&(!Gh||ao&&8<ao&&11>=ao),ty=" ",ry=!1;function I1(e,t){switch(e){case"keyup":return uA.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function D1(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var yi=!1;function fA(e,t){switch(e){case"compositionend":return D1(t);case"keypress":return t.which!==32?null:(ry=!0,ty);case"textInput":return e=t.data,e===ty&&ry?null:e;default:return null}}function dA(e,t){if(yi)return e==="compositionend"||!Gh&&I1(e,t)?(e=C1(),ys=Hh=Zr=null,yi=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return M1&&t.locale!=="ko"?null:t.data;default:return null}}var pA={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 ny(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!pA[e.type]:t==="textarea"}function L1(e,t,r,n){h1(n),t=Ms(t,"onChange"),0<t.length&&(r=new Kh("onChange","change",null,r,n),e.push({event:r,listeners:t}))}var oo=null,jo=null;function hA(e){X1(e,0)}function rc(e){var t=bi(e);if(l1(t))return e}function vA(e,t){if(e==="change")return t}var R1=!1;if(Nr){var mf;if(Nr){var yf="oninput"in document;if(!yf){var iy=document.createElement("div");iy.setAttribute("oninput","return;"),yf=typeof iy.oninput=="function"}mf=yf}else mf=!1;R1=mf&&(!document.documentMode||9<document.documentMode)}function ay(){oo&&(oo.detachEvent("onpropertychange",B1),jo=oo=null)}function B1(e){if(e.propertyName==="value"&&rc(jo)){var t=[];L1(t,jo,e,Bh(e)),g1(hA,t)}}function mA(e,t,r){e==="focusin"?(ay(),oo=t,jo=r,oo.attachEvent("onpropertychange",B1)):e==="focusout"&&ay()}function yA(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return rc(jo)}function gA(e,t){if(e==="click")return rc(t)}function xA(e,t){if(e==="input"||e==="change")return rc(t)}function bA(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var ar=typeof Object.is=="function"?Object.is:bA;function _o(e,t){if(ar(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(n=0;n<r.length;n++){var i=r[n];if(!fd.call(t,i)||!ar(e[i],t[i]))return!1}return!0}function oy(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ly(e,t){var r=oy(e);e=0;for(var n;r;){if(r.nodeType===3){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=oy(r)}}function z1(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?z1(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function F1(){for(var e=window,t=As();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=As(e.document)}return t}function Xh(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function wA(e){var t=F1(),r=e.focusedElem,n=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&z1(r.ownerDocument.documentElement,r)){if(n!==null&&Xh(r)){if(t=n.start,e=n.end,e===void 0&&(e=t),"selectionStart"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=r.textContent.length,a=Math.min(n.start,i);n=n.end===void 0?a:Math.min(n.end,i),!e.extend&&a>n&&(i=n,n=a,a=i),i=ly(r,a);var o=ly(r,n);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),a>n?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r<t.length;r++)e=t[r],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var SA=Nr&&"documentMode"in document&&11>=document.documentMode,gi=null,$d=null,lo=null,Nd=!1;function sy(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;Nd||gi==null||gi!==As(n)||(n=gi,"selectionStart"in n&&Xh(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),lo&&_o(lo,n)||(lo=n,n=Ms($d,"onSelect"),0<n.length&&(t=new Kh("onSelect","select",null,t,r),e.push({event:t,listeners:n}),t.target=gi)))}function Hl(e,t){var r={};return r[e.toLowerCase()]=t.toLowerCase(),r["Webkit"+e]="webkit"+t,r["Moz"+e]="moz"+t,r}var xi={animationend:Hl("Animation","AnimationEnd"),animationiteration:Hl("Animation","AnimationIteration"),animationstart:Hl("Animation","AnimationStart"),transitionend:Hl("Transition","TransitionEnd")},gf={},U1={};Nr&&(U1=document.createElement("div").style,"AnimationEvent"in window||(delete xi.animationend.animation,delete xi.animationiteration.animation,delete xi.animationstart.animation),"TransitionEvent"in window||delete xi.transitionend.transition);function nc(e){if(gf[e])return gf[e];if(!xi[e])return e;var t=xi[e],r;for(r in t)if(t.hasOwnProperty(r)&&r in U1)return gf[e]=t[r];return e}var W1=nc("animationend"),H1=nc("animationiteration"),K1=nc("animationstart"),V1=nc("transitionend"),G1=new Map,uy="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(" ");function yn(e,t){G1.set(e,t),ni(t,[e])}for(var xf=0;xf<uy.length;xf++){var bf=uy[xf],OA=bf.toLowerCase(),jA=bf[0].toUpperCase()+bf.slice(1);yn(OA,"on"+jA)}yn(W1,"onAnimationEnd");yn(H1,"onAnimationIteration");yn(K1,"onAnimationStart");yn("dblclick","onDoubleClick");yn("focusin","onFocus");yn("focusout","onBlur");yn(V1,"onTransitionEnd");zi("onMouseEnter",["mouseout","mouseover"]);zi("onMouseLeave",["mouseout","mouseover"]);zi("onPointerEnter",["pointerout","pointerover"]);zi("onPointerLeave",["pointerout","pointerover"]);ni("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));ni("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));ni("onBeforeInput",["compositionend","keypress","textInput","paste"]);ni("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));ni("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));ni("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var to="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(" "),_A=new Set("cancel close invalid load scroll toggle".split(" ").concat(to));function cy(e,t,r){var n=e.type||"unknown-event";e.currentTarget=r,OP(n,t,void 0,e),e.currentTarget=null}function X1(e,t){t=(t&4)!==0;for(var r=0;r<e.length;r++){var n=e[r],i=n.event;n=n.listeners;e:{var a=void 0;if(t)for(var o=n.length-1;0<=o;o--){var l=n[o],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==a&&i.isPropagationStopped())break e;cy(i,l,u),a=s}else for(o=0;o<n.length;o++){if(l=n[o],s=l.instance,u=l.currentTarget,l=l.listener,s!==a&&i.isPropagationStopped())break e;cy(i,l,u),a=s}}}if(ks)throw e=Pd,ks=!1,Pd=null,e}function ye(e,t){var r=t[Dd];r===void 0&&(r=t[Dd]=new Set);var n=e+"__bubble";r.has(n)||(q1(t,e,2,!1),r.add(n))}function wf(e,t,r){var n=0;t&&(n|=4),q1(r,e,n,t)}var Kl="_reactListening"+Math.random().toString(36).slice(2);function Po(e){if(!e[Kl]){e[Kl]=!0,r1.forEach(function(r){r!=="selectionchange"&&(_A.has(r)||wf(r,!1,e),wf(r,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Kl]||(t[Kl]=!0,wf("selectionchange",!1,t))}}function q1(e,t,r,n){switch(T1(t)){case 1:var i=BP;break;case 4:i=zP;break;default:i=Wh}r=i.bind(null,t,r,e),i=void 0,!_d||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(i=!0),n?i!==void 0?e.addEventListener(t,r,{capture:!0,passive:i}):e.addEventListener(t,r,!0):i!==void 0?e.addEventListener(t,r,{passive:i}):e.addEventListener(t,r,!1)}function Sf(e,t,r,n,i){var a=n;if(!(t&1)&&!(t&2)&&n!==null)e:for(;;){if(n===null)return;var o=n.tag;if(o===3||o===4){var l=n.stateNode.containerInfo;if(l===i||l.nodeType===8&&l.parentNode===i)break;if(o===4)for(o=n.return;o!==null;){var s=o.tag;if((s===3||s===4)&&(s=o.stateNode.containerInfo,s===i||s.nodeType===8&&s.parentNode===i))return;o=o.return}for(;l!==null;){if(o=In(l),o===null)return;if(s=o.tag,s===5||s===6){n=a=o;continue e}l=l.parentNode}}n=n.return}g1(function(){var u=a,f=Bh(r),c=[];e:{var p=G1.get(e);if(p!==void 0){var h=Kh,y=e;switch(e){case"keypress":if(gs(r)===0)break e;case"keydown":case"keyup":h=tA;break;case"focusin":y="focus",h=vf;break;case"focusout":y="blur",h=vf;break;case"beforeblur":case"afterblur":h=vf;break;case"click":if(r.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":h=Zm;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":h=WP;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":h=iA;break;case W1:case H1:case K1:h=VP;break;case V1:h=oA;break;case"scroll":h=FP;break;case"wheel":h=sA;break;case"copy":case"cut":case"paste":h=XP;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":h=ey}var b=(t&4)!==0,g=!b&&e==="scroll",m=b?p!==null?p+"Capture":null:p;b=[];for(var v=u,x;v!==null;){x=v;var O=x.stateNode;if(x.tag===5&&O!==null&&(x=O,m!==null&&(O=bo(v,m),O!=null&&b.push(Ao(v,O,x)))),g)break;v=v.return}0<b.length&&(p=new h(p,y,null,r,f),c.push({event:p,listeners:b}))}}if(!(t&7)){e:{if(p=e==="mouseover"||e==="pointerover",h=e==="mouseout"||e==="pointerout",p&&r!==Od&&(y=r.relatedTarget||r.fromElement)&&(In(y)||y[Tr]))break e;if((h||p)&&(p=f.window===f?f:(p=f.ownerDocument)?p.defaultView||p.parentWindow:window,h?(y=r.relatedTarget||r.toElement,h=u,y=y?In(y):null,y!==null&&(g=ii(y),y!==g||y.tag!==5&&y.tag!==6)&&(y=null)):(h=null,y=u),h!==y)){if(b=Zm,O="onMouseLeave",m="onMouseEnter",v="mouse",(e==="pointerout"||e==="pointerover")&&(b=ey,O="onPointerLeave",m="onPointerEnter",v="pointer"),g=h==null?p:bi(h),x=y==null?p:bi(y),p=new b(O,v+"leave",h,r,f),p.target=g,p.relatedTarget=x,O=null,In(f)===u&&(b=new b(m,v+"enter",y,r,f),b.target=x,b.relatedTarget=g,O=b),g=O,h&&y)t:{for(b=h,m=y,v=0,x=b;x;x=fi(x))v++;for(x=0,O=m;O;O=fi(O))x++;for(;0<v-x;)b=fi(b),v--;for(;0<x-v;)m=fi(m),x--;for(;v--;){if(b===m||m!==null&&b===m.alternate)break t;b=fi(b),m=fi(m)}b=null}else b=null;h!==null&&fy(c,p,h,b,!1),y!==null&&g!==null&&fy(c,g,y,b,!0)}}e:{if(p=u?bi(u):window,h=p.nodeName&&p.nodeName.toLowerCase(),h==="select"||h==="input"&&p.type==="file")var w=vA;else if(ny(p))if(R1)w=xA;else{w=yA;var S=mA}else(h=p.nodeName)&&h.toLowerCase()==="input"&&(p.type==="checkbox"||p.type==="radio")&&(w=gA);if(w&&(w=w(e,u))){L1(c,w,r,f);break e}S&&S(e,p,u),e==="focusout"&&(S=p._wrapperState)&&S.controlled&&p.type==="number"&&gd(p,"number",p.value)}switch(S=u?bi(u):window,e){case"focusin":(ny(S)||S.contentEditable==="true")&&(gi=S,$d=u,lo=null);break;case"focusout":lo=$d=gi=null;break;case"mousedown":Nd=!0;break;case"contextmenu":case"mouseup":case"dragend":Nd=!1,sy(c,r,f);break;case"selectionchange":if(SA)break;case"keydown":case"keyup":sy(c,r,f)}var j;if(Gh)e:{switch(e){case"compositionstart":var _="onCompositionStart";break e;case"compositionend":_="onCompositionEnd";break e;case"compositionupdate":_="onCompositionUpdate";break e}_=void 0}else yi?I1(e,r)&&(_="onCompositionEnd"):e==="keydown"&&r.keyCode===229&&(_="onCompositionStart");_&&(M1&&r.locale!=="ko"&&(yi||_!=="onCompositionStart"?_==="onCompositionEnd"&&yi&&(j=C1()):(Zr=f,Hh="value"in Zr?Zr.value:Zr.textContent,yi=!0)),S=Ms(u,_),0<S.length&&(_=new Jm(_,e,null,r,f),c.push({event:_,listeners:S}),j?_.data=j:(j=D1(r),j!==null&&(_.data=j)))),(j=cA?fA(e,r):dA(e,r))&&(u=Ms(u,"onBeforeInput"),0<u.length&&(f=new Jm("onBeforeInput","beforeinput",null,r,f),c.push({event:f,listeners:u}),f.data=j))}X1(c,t)})}function Ao(e,t,r){return{instance:e,listener:t,currentTarget:r}}function Ms(e,t){for(var r=t+"Capture",n=[];e!==null;){var i=e,a=i.stateNode;i.tag===5&&a!==null&&(i=a,a=bo(e,r),a!=null&&n.unshift(Ao(e,a,i)),a=bo(e,t),a!=null&&n.push(Ao(e,a,i))),e=e.return}return n}function fi(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function fy(e,t,r,n,i){for(var a=t._reactName,o=[];r!==null&&r!==n;){var l=r,s=l.alternate,u=l.stateNode;if(s!==null&&s===n)break;l.tag===5&&u!==null&&(l=u,i?(s=bo(r,a),s!=null&&o.unshift(Ao(r,s,l))):i||(s=bo(r,a),s!=null&&o.push(Ao(r,s,l)))),r=r.return}o.length!==0&&e.push({event:t,listeners:o})}var PA=/\r\n?/g,AA=/\u0000|\uFFFD/g;function dy(e){return(typeof e=="string"?e:""+e).replace(PA,`
+`).replace(AA,"")}function Vl(e,t,r){if(t=dy(t),dy(e)!==t&&r)throw Error(U(425))}function Is(){}var Td=null,Cd=null;function Md(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Id=typeof setTimeout=="function"?setTimeout:void 0,EA=typeof clearTimeout=="function"?clearTimeout:void 0,py=typeof Promise=="function"?Promise:void 0,kA=typeof queueMicrotask=="function"?queueMicrotask:typeof py<"u"?function(e){return py.resolve(null).then(e).catch($A)}:Id;function $A(e){setTimeout(function(){throw e})}function Of(e,t){var r=t,n=0;do{var i=r.nextSibling;if(e.removeChild(r),i&&i.nodeType===8)if(r=i.data,r==="/$"){if(n===0){e.removeChild(i),Oo(t);return}n--}else r!=="$"&&r!=="$?"&&r!=="$!"||n++;r=i}while(r);Oo(t)}function ln(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function hy(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var r=e.data;if(r==="$"||r==="$!"||r==="$?"){if(t===0)return e;t--}else r==="/$"&&t++}e=e.previousSibling}return null}var ya=Math.random().toString(36).slice(2),cr="__reactFiber$"+ya,Eo="__reactProps$"+ya,Tr="__reactContainer$"+ya,Dd="__reactEvents$"+ya,NA="__reactListeners$"+ya,TA="__reactHandles$"+ya;function In(e){var t=e[cr];if(t)return t;for(var r=e.parentNode;r;){if(t=r[Tr]||r[cr]){if(r=t.alternate,t.child!==null||r!==null&&r.child!==null)for(e=hy(e);e!==null;){if(r=e[cr])return r;e=hy(e)}return t}e=r,r=e.parentNode}return null}function Sl(e){return e=e[cr]||e[Tr],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function bi(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(U(33))}function ic(e){return e[Eo]||null}var Ld=[],wi=-1;function gn(e){return{current:e}}function be(e){0>wi||(e.current=Ld[wi],Ld[wi]=null,wi--)}function me(e,t){wi++,Ld[wi]=e.current,e.current=t}var mn={},ot=gn(mn),yt=gn(!1),Gn=mn;function Fi(e,t){var r=e.type.contextTypes;if(!r)return mn;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var i={},a;for(a in r)i[a]=t[a];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function gt(e){return e=e.childContextTypes,e!=null}function Ds(){be(yt),be(ot)}function vy(e,t,r){if(ot.current!==mn)throw Error(U(168));me(ot,t),me(yt,r)}function Y1(e,t,r){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var i in n)if(!(i in t))throw Error(U(108,mP(e)||"Unknown",i));return Ae({},r,n)}function Ls(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||mn,Gn=ot.current,me(ot,e),me(yt,yt.current),!0}function my(e,t,r){var n=e.stateNode;if(!n)throw Error(U(169));r?(e=Y1(e,t,Gn),n.__reactInternalMemoizedMergedChildContext=e,be(yt),be(ot),me(ot,e)):be(yt),me(yt,r)}var wr=null,ac=!1,jf=!1;function Q1(e){wr===null?wr=[e]:wr.push(e)}function CA(e){ac=!0,Q1(e)}function xn(){if(!jf&&wr!==null){jf=!0;var e=0,t=ue;try{var r=wr;for(ue=1;e<r.length;e++){var n=r[e];do n=n(!0);while(n!==null)}wr=null,ac=!1}catch(i){throw wr!==null&&(wr=wr.slice(e+1)),S1(zh,xn),i}finally{ue=t,jf=!1}}return null}var Si=[],Oi=0,Rs=null,Bs=0,It=[],Dt=0,Xn=null,Sr=1,Or="";function $n(e,t){Si[Oi++]=Bs,Si[Oi++]=Rs,Rs=e,Bs=t}function Z1(e,t,r){It[Dt++]=Sr,It[Dt++]=Or,It[Dt++]=Xn,Xn=e;var n=Sr;e=Or;var i=32-rr(n)-1;n&=~(1<<i),r+=1;var a=32-rr(t)+i;if(30<a){var o=i-i%5;a=(n&(1<<o)-1).toString(32),n>>=o,i-=o,Sr=1<<32-rr(t)+i|r<<i|n,Or=a+e}else Sr=1<<a|r<<i|n,Or=e}function qh(e){e.return!==null&&($n(e,1),Z1(e,1,0))}function Yh(e){for(;e===Rs;)Rs=Si[--Oi],Si[Oi]=null,Bs=Si[--Oi],Si[Oi]=null;for(;e===Xn;)Xn=It[--Dt],It[Dt]=null,Or=It[--Dt],It[Dt]=null,Sr=It[--Dt],It[Dt]=null}var Pt=null,_t=null,Se=!1,Jt=null;function J1(e,t){var r=Rt(5,null,null,0);r.elementType="DELETED",r.stateNode=t,r.return=e,t=e.deletions,t===null?(e.deletions=[r],e.flags|=16):t.push(r)}function yy(e,t){switch(e.tag){case 5:var r=e.type;return t=t.nodeType!==1||r.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,Pt=e,_t=ln(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,Pt=e,_t=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(r=Xn!==null?{id:Sr,overflow:Or}:null,e.memoizedState={dehydrated:t,treeContext:r,retryLane:1073741824},r=Rt(18,null,null,0),r.stateNode=t,r.return=e,e.child=r,Pt=e,_t=null,!0):!1;default:return!1}}function Rd(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Bd(e){if(Se){var t=_t;if(t){var r=t;if(!yy(e,t)){if(Rd(e))throw Error(U(418));t=ln(r.nextSibling);var n=Pt;t&&yy(e,t)?J1(n,r):(e.flags=e.flags&-4097|2,Se=!1,Pt=e)}}else{if(Rd(e))throw Error(U(418));e.flags=e.flags&-4097|2,Se=!1,Pt=e}}}function gy(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Pt=e}function Gl(e){if(e!==Pt)return!1;if(!Se)return gy(e),Se=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Md(e.type,e.memoizedProps)),t&&(t=_t)){if(Rd(e))throw ew(),Error(U(418));for(;t;)J1(e,t),t=ln(t.nextSibling)}if(gy(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(U(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var r=e.data;if(r==="/$"){if(t===0){_t=ln(e.nextSibling);break e}t--}else r!=="$"&&r!=="$!"&&r!=="$?"||t++}e=e.nextSibling}_t=null}}else _t=Pt?ln(e.stateNode.nextSibling):null;return!0}function ew(){for(var e=_t;e;)e=ln(e.nextSibling)}function Ui(){_t=Pt=null,Se=!1}function Qh(e){Jt===null?Jt=[e]:Jt.push(e)}var MA=Br.ReactCurrentBatchConfig;function Ba(e,t,r){if(e=r.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(r._owner){if(r=r._owner,r){if(r.tag!==1)throw Error(U(309));var n=r.stateNode}if(!n)throw Error(U(147,e));var i=n,a=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===a?t.ref:(t=function(o){var l=i.refs;o===null?delete l[a]:l[a]=o},t._stringRef=a,t)}if(typeof e!="string")throw Error(U(284));if(!r._owner)throw Error(U(290,e))}return e}function Xl(e,t){throw e=Object.prototype.toString.call(t),Error(U(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function xy(e){var t=e._init;return t(e._payload)}function tw(e){function t(m,v){if(e){var x=m.deletions;x===null?(m.deletions=[v],m.flags|=16):x.push(v)}}function r(m,v){if(!e)return null;for(;v!==null;)t(m,v),v=v.sibling;return null}function n(m,v){for(m=new Map;v!==null;)v.key!==null?m.set(v.key,v):m.set(v.index,v),v=v.sibling;return m}function i(m,v){return m=fn(m,v),m.index=0,m.sibling=null,m}function a(m,v,x){return m.index=x,e?(x=m.alternate,x!==null?(x=x.index,x<v?(m.flags|=2,v):x):(m.flags|=2,v)):(m.flags|=1048576,v)}function o(m){return e&&m.alternate===null&&(m.flags|=2),m}function l(m,v,x,O){return v===null||v.tag!==6?(v=Nf(x,m.mode,O),v.return=m,v):(v=i(v,x),v.return=m,v)}function s(m,v,x,O){var w=x.type;return w===mi?f(m,v,x.props.children,O,x.key):v!==null&&(v.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===Vr&&xy(w)===v.type)?(O=i(v,x.props),O.ref=Ba(m,v,x),O.return=m,O):(O=_s(x.type,x.key,x.props,null,m.mode,O),O.ref=Ba(m,v,x),O.return=m,O)}function u(m,v,x,O){return v===null||v.tag!==4||v.stateNode.containerInfo!==x.containerInfo||v.stateNode.implementation!==x.implementation?(v=Tf(x,m.mode,O),v.return=m,v):(v=i(v,x.children||[]),v.return=m,v)}function f(m,v,x,O,w){return v===null||v.tag!==7?(v=Hn(x,m.mode,O,w),v.return=m,v):(v=i(v,x),v.return=m,v)}function c(m,v,x){if(typeof v=="string"&&v!==""||typeof v=="number")return v=Nf(""+v,m.mode,x),v.return=m,v;if(typeof v=="object"&&v!==null){switch(v.$$typeof){case Ll:return x=_s(v.type,v.key,v.props,null,m.mode,x),x.ref=Ba(m,null,v),x.return=m,x;case vi:return v=Tf(v,m.mode,x),v.return=m,v;case Vr:var O=v._init;return c(m,O(v._payload),x)}if(Ja(v)||Ma(v))return v=Hn(v,m.mode,x,null),v.return=m,v;Xl(m,v)}return null}function p(m,v,x,O){var w=v!==null?v.key:null;if(typeof x=="string"&&x!==""||typeof x=="number")return w!==null?null:l(m,v,""+x,O);if(typeof x=="object"&&x!==null){switch(x.$$typeof){case Ll:return x.key===w?s(m,v,x,O):null;case vi:return x.key===w?u(m,v,x,O):null;case Vr:return w=x._init,p(m,v,w(x._payload),O)}if(Ja(x)||Ma(x))return w!==null?null:f(m,v,x,O,null);Xl(m,x)}return null}function h(m,v,x,O,w){if(typeof O=="string"&&O!==""||typeof O=="number")return m=m.get(x)||null,l(v,m,""+O,w);if(typeof O=="object"&&O!==null){switch(O.$$typeof){case Ll:return m=m.get(O.key===null?x:O.key)||null,s(v,m,O,w);case vi:return m=m.get(O.key===null?x:O.key)||null,u(v,m,O,w);case Vr:var S=O._init;return h(m,v,x,S(O._payload),w)}if(Ja(O)||Ma(O))return m=m.get(x)||null,f(v,m,O,w,null);Xl(v,O)}return null}function y(m,v,x,O){for(var w=null,S=null,j=v,_=v=0,A=null;j!==null&&_<x.length;_++){j.index>_?(A=j,j=null):A=j.sibling;var $=p(m,j,x[_],O);if($===null){j===null&&(j=A);break}e&&j&&$.alternate===null&&t(m,j),v=a($,v,_),S===null?w=$:S.sibling=$,S=$,j=A}if(_===x.length)return r(m,j),Se&&$n(m,_),w;if(j===null){for(;_<x.length;_++)j=c(m,x[_],O),j!==null&&(v=a(j,v,_),S===null?w=j:S.sibling=j,S=j);return Se&&$n(m,_),w}for(j=n(m,j);_<x.length;_++)A=h(j,m,_,x[_],O),A!==null&&(e&&A.alternate!==null&&j.delete(A.key===null?_:A.key),v=a(A,v,_),S===null?w=A:S.sibling=A,S=A);return e&&j.forEach(function(N){return t(m,N)}),Se&&$n(m,_),w}function b(m,v,x,O){var w=Ma(x);if(typeof w!="function")throw Error(U(150));if(x=w.call(x),x==null)throw Error(U(151));for(var S=w=null,j=v,_=v=0,A=null,$=x.next();j!==null&&!$.done;_++,$=x.next()){j.index>_?(A=j,j=null):A=j.sibling;var N=p(m,j,$.value,O);if(N===null){j===null&&(j=A);break}e&&j&&N.alternate===null&&t(m,j),v=a(N,v,_),S===null?w=N:S.sibling=N,S=N,j=A}if($.done)return r(m,j),Se&&$n(m,_),w;if(j===null){for(;!$.done;_++,$=x.next())$=c(m,$.value,O),$!==null&&(v=a($,v,_),S===null?w=$:S.sibling=$,S=$);return Se&&$n(m,_),w}for(j=n(m,j);!$.done;_++,$=x.next())$=h(j,m,_,$.value,O),$!==null&&(e&&$.alternate!==null&&j.delete($.key===null?_:$.key),v=a($,v,_),S===null?w=$:S.sibling=$,S=$);return e&&j.forEach(function(k){return t(m,k)}),Se&&$n(m,_),w}function g(m,v,x,O){if(typeof x=="object"&&x!==null&&x.type===mi&&x.key===null&&(x=x.props.children),typeof x=="object"&&x!==null){switch(x.$$typeof){case Ll:e:{for(var w=x.key,S=v;S!==null;){if(S.key===w){if(w=x.type,w===mi){if(S.tag===7){r(m,S.sibling),v=i(S,x.props.children),v.return=m,m=v;break e}}else if(S.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===Vr&&xy(w)===S.type){r(m,S.sibling),v=i(S,x.props),v.ref=Ba(m,S,x),v.return=m,m=v;break e}r(m,S);break}else t(m,S);S=S.sibling}x.type===mi?(v=Hn(x.props.children,m.mode,O,x.key),v.return=m,m=v):(O=_s(x.type,x.key,x.props,null,m.mode,O),O.ref=Ba(m,v,x),O.return=m,m=O)}return o(m);case vi:e:{for(S=x.key;v!==null;){if(v.key===S)if(v.tag===4&&v.stateNode.containerInfo===x.containerInfo&&v.stateNode.implementation===x.implementation){r(m,v.sibling),v=i(v,x.children||[]),v.return=m,m=v;break e}else{r(m,v);break}else t(m,v);v=v.sibling}v=Tf(x,m.mode,O),v.return=m,m=v}return o(m);case Vr:return S=x._init,g(m,v,S(x._payload),O)}if(Ja(x))return y(m,v,x,O);if(Ma(x))return b(m,v,x,O);Xl(m,x)}return typeof x=="string"&&x!==""||typeof x=="number"?(x=""+x,v!==null&&v.tag===6?(r(m,v.sibling),v=i(v,x),v.return=m,m=v):(r(m,v),v=Nf(x,m.mode,O),v.return=m,m=v),o(m)):r(m,v)}return g}var Wi=tw(!0),rw=tw(!1),zs=gn(null),Fs=null,ji=null,Zh=null;function Jh(){Zh=ji=Fs=null}function ev(e){var t=zs.current;be(zs),e._currentValue=t}function zd(e,t,r){for(;e!==null;){var n=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,n!==null&&(n.childLanes|=t)):n!==null&&(n.childLanes&t)!==t&&(n.childLanes|=t),e===r)break;e=e.return}}function Mi(e,t){Fs=e,Zh=ji=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(vt=!0),e.firstContext=null)}function Ut(e){var t=e._currentValue;if(Zh!==e)if(e={context:e,memoizedValue:t,next:null},ji===null){if(Fs===null)throw Error(U(308));ji=e,Fs.dependencies={lanes:0,firstContext:e}}else ji=ji.next=e;return t}var Dn=null;function tv(e){Dn===null?Dn=[e]:Dn.push(e)}function nw(e,t,r,n){var i=t.interleaved;return i===null?(r.next=r,tv(t)):(r.next=i.next,i.next=r),t.interleaved=r,Cr(e,n)}function Cr(e,t){e.lanes|=t;var r=e.alternate;for(r!==null&&(r.lanes|=t),r=e,e=e.return;e!==null;)e.childLanes|=t,r=e.alternate,r!==null&&(r.childLanes|=t),r=e,e=e.return;return r.tag===3?r.stateNode:null}var Gr=!1;function rv(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function iw(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ar(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function sn(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,ae&2){var i=n.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),n.pending=t,Cr(e,r)}return i=n.interleaved,i===null?(t.next=t,tv(n)):(t.next=i.next,i.next=t),n.interleaved=t,Cr(e,r)}function xs(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194240)!==0)){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,Fh(e,r)}}function by(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var i=null,a=null;if(r=r.firstBaseUpdate,r!==null){do{var o={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};a===null?i=a=o:a=a.next=o,r=r.next}while(r!==null);a===null?i=a=t:a=a.next=t}else i=a=t;r={baseState:n.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:n.shared,effects:n.effects},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}function Us(e,t,r,n){var i=e.updateQueue;Gr=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,l=i.shared.pending;if(l!==null){i.shared.pending=null;var s=l,u=s.next;s.next=null,o===null?a=u:o.next=u,o=s;var f=e.alternate;f!==null&&(f=f.updateQueue,l=f.lastBaseUpdate,l!==o&&(l===null?f.firstBaseUpdate=u:l.next=u,f.lastBaseUpdate=s))}if(a!==null){var c=i.baseState;o=0,f=u=s=null,l=a;do{var p=l.lane,h=l.eventTime;if((n&p)===p){f!==null&&(f=f.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var y=e,b=l;switch(p=t,h=r,b.tag){case 1:if(y=b.payload,typeof y=="function"){c=y.call(h,c,p);break e}c=y;break e;case 3:y.flags=y.flags&-65537|128;case 0:if(y=b.payload,p=typeof y=="function"?y.call(h,c,p):y,p==null)break e;c=Ae({},c,p);break e;case 2:Gr=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,p=i.effects,p===null?i.effects=[l]:p.push(l))}else h={eventTime:h,lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},f===null?(u=f=h,s=c):f=f.next=h,o|=p;if(l=l.next,l===null){if(l=i.shared.pending,l===null)break;p=l,l=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(!0);if(f===null&&(s=c),i.baseState=s,i.firstBaseUpdate=u,i.lastBaseUpdate=f,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else a===null&&(i.shared.lanes=0);Yn|=o,e.lanes=o,e.memoizedState=c}}function wy(e,t,r){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var n=e[t],i=n.callback;if(i!==null){if(n.callback=null,n=r,typeof i!="function")throw Error(U(191,i));i.call(n)}}}var Ol={},hr=gn(Ol),ko=gn(Ol),$o=gn(Ol);function Ln(e){if(e===Ol)throw Error(U(174));return e}function nv(e,t){switch(me($o,t),me(ko,e),me(hr,Ol),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:bd(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=bd(t,e)}be(hr),me(hr,t)}function Hi(){be(hr),be(ko),be($o)}function aw(e){Ln($o.current);var t=Ln(hr.current),r=bd(t,e.type);t!==r&&(me(ko,e),me(hr,r))}function iv(e){ko.current===e&&(be(hr),be(ko))}var je=gn(0);function Ws(e){for(var t=e;t!==null;){if(t.tag===13){var r=t.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||r.data==="$?"||r.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var _f=[];function av(){for(var e=0;e<_f.length;e++)_f[e]._workInProgressVersionPrimary=null;_f.length=0}var bs=Br.ReactCurrentDispatcher,Pf=Br.ReactCurrentBatchConfig,qn=0,Pe=null,Fe=null,Ve=null,Hs=!1,so=!1,No=0,IA=0;function et(){throw Error(U(321))}function ov(e,t){if(t===null)return!1;for(var r=0;r<t.length&&r<e.length;r++)if(!ar(e[r],t[r]))return!1;return!0}function lv(e,t,r,n,i,a){if(qn=a,Pe=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,bs.current=e===null||e.memoizedState===null?BA:zA,e=r(n,i),so){a=0;do{if(so=!1,No=0,25<=a)throw Error(U(301));a+=1,Ve=Fe=null,t.updateQueue=null,bs.current=FA,e=r(n,i)}while(so)}if(bs.current=Ks,t=Fe!==null&&Fe.next!==null,qn=0,Ve=Fe=Pe=null,Hs=!1,t)throw Error(U(300));return e}function sv(){var e=No!==0;return No=0,e}function sr(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ve===null?Pe.memoizedState=Ve=e:Ve=Ve.next=e,Ve}function Wt(){if(Fe===null){var e=Pe.alternate;e=e!==null?e.memoizedState:null}else e=Fe.next;var t=Ve===null?Pe.memoizedState:Ve.next;if(t!==null)Ve=t,Fe=e;else{if(e===null)throw Error(U(310));Fe=e,e={memoizedState:Fe.memoizedState,baseState:Fe.baseState,baseQueue:Fe.baseQueue,queue:Fe.queue,next:null},Ve===null?Pe.memoizedState=Ve=e:Ve=Ve.next=e}return Ve}function To(e,t){return typeof t=="function"?t(e):t}function Af(e){var t=Wt(),r=t.queue;if(r===null)throw Error(U(311));r.lastRenderedReducer=e;var n=Fe,i=n.baseQueue,a=r.pending;if(a!==null){if(i!==null){var o=i.next;i.next=a.next,a.next=o}n.baseQueue=i=a,r.pending=null}if(i!==null){a=i.next,n=n.baseState;var l=o=null,s=null,u=a;do{var f=u.lane;if((qn&f)===f)s!==null&&(s=s.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),n=u.hasEagerState?u.eagerState:e(n,u.action);else{var c={lane:f,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};s===null?(l=s=c,o=n):s=s.next=c,Pe.lanes|=f,Yn|=f}u=u.next}while(u!==null&&u!==a);s===null?o=n:s.next=l,ar(n,t.memoizedState)||(vt=!0),t.memoizedState=n,t.baseState=o,t.baseQueue=s,r.lastRenderedState=n}if(e=r.interleaved,e!==null){i=e;do a=i.lane,Pe.lanes|=a,Yn|=a,i=i.next;while(i!==e)}else i===null&&(r.lanes=0);return[t.memoizedState,r.dispatch]}function Ef(e){var t=Wt(),r=t.queue;if(r===null)throw Error(U(311));r.lastRenderedReducer=e;var n=r.dispatch,i=r.pending,a=t.memoizedState;if(i!==null){r.pending=null;var o=i=i.next;do a=e(a,o.action),o=o.next;while(o!==i);ar(a,t.memoizedState)||(vt=!0),t.memoizedState=a,t.baseQueue===null&&(t.baseState=a),r.lastRenderedState=a}return[a,n]}function ow(){}function lw(e,t){var r=Pe,n=Wt(),i=t(),a=!ar(n.memoizedState,i);if(a&&(n.memoizedState=i,vt=!0),n=n.queue,uv(cw.bind(null,r,n,e),[e]),n.getSnapshot!==t||a||Ve!==null&&Ve.memoizedState.tag&1){if(r.flags|=2048,Co(9,uw.bind(null,r,n,i,t),void 0,null),Ge===null)throw Error(U(349));qn&30||sw(r,t,i)}return i}function sw(e,t,r){e.flags|=16384,e={getSnapshot:t,value:r},t=Pe.updateQueue,t===null?(t={lastEffect:null,stores:null},Pe.updateQueue=t,t.stores=[e]):(r=t.stores,r===null?t.stores=[e]:r.push(e))}function uw(e,t,r,n){t.value=r,t.getSnapshot=n,fw(t)&&dw(e)}function cw(e,t,r){return r(function(){fw(t)&&dw(e)})}function fw(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!ar(e,r)}catch{return!0}}function dw(e){var t=Cr(e,1);t!==null&&nr(t,e,1,-1)}function Sy(e){var t=sr();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:To,lastRenderedState:e},t.queue=e,e=e.dispatch=RA.bind(null,Pe,e),[t.memoizedState,e]}function Co(e,t,r,n){return e={tag:e,create:t,destroy:r,deps:n,next:null},t=Pe.updateQueue,t===null?(t={lastEffect:null,stores:null},Pe.updateQueue=t,t.lastEffect=e.next=e):(r=t.lastEffect,r===null?t.lastEffect=e.next=e:(n=r.next,r.next=e,e.next=n,t.lastEffect=e)),e}function pw(){return Wt().memoizedState}function ws(e,t,r,n){var i=sr();Pe.flags|=e,i.memoizedState=Co(1|t,r,void 0,n===void 0?null:n)}function oc(e,t,r,n){var i=Wt();n=n===void 0?null:n;var a=void 0;if(Fe!==null){var o=Fe.memoizedState;if(a=o.destroy,n!==null&&ov(n,o.deps)){i.memoizedState=Co(t,r,a,n);return}}Pe.flags|=e,i.memoizedState=Co(1|t,r,a,n)}function Oy(e,t){return ws(8390656,8,e,t)}function uv(e,t){return oc(2048,8,e,t)}function hw(e,t){return oc(4,2,e,t)}function vw(e,t){return oc(4,4,e,t)}function mw(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function yw(e,t,r){return r=r!=null?r.concat([e]):null,oc(4,4,mw.bind(null,t,e),r)}function cv(){}function gw(e,t){var r=Wt();t=t===void 0?null:t;var n=r.memoizedState;return n!==null&&t!==null&&ov(t,n[1])?n[0]:(r.memoizedState=[e,t],e)}function xw(e,t){var r=Wt();t=t===void 0?null:t;var n=r.memoizedState;return n!==null&&t!==null&&ov(t,n[1])?n[0]:(e=e(),r.memoizedState=[e,t],e)}function bw(e,t,r){return qn&21?(ar(r,t)||(r=_1(),Pe.lanes|=r,Yn|=r,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,vt=!0),e.memoizedState=r)}function DA(e,t){var r=ue;ue=r!==0&&4>r?r:4,e(!0);var n=Pf.transition;Pf.transition={};try{e(!1),t()}finally{ue=r,Pf.transition=n}}function ww(){return Wt().memoizedState}function LA(e,t,r){var n=cn(e);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},Sw(e))Ow(t,r);else if(r=nw(e,t,r,n),r!==null){var i=ut();nr(r,e,n,i),jw(r,t,n)}}function RA(e,t,r){var n=cn(e),i={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(Sw(e))Ow(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,l=a(o,r);if(i.hasEagerState=!0,i.eagerState=l,ar(l,o)){var s=t.interleaved;s===null?(i.next=i,tv(t)):(i.next=s.next,s.next=i),t.interleaved=i;return}}catch{}finally{}r=nw(e,t,i,n),r!==null&&(i=ut(),nr(r,e,n,i),jw(r,t,n))}}function Sw(e){var t=e.alternate;return e===Pe||t!==null&&t===Pe}function Ow(e,t){so=Hs=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function jw(e,t,r){if(r&4194240){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,Fh(e,r)}}var Ks={readContext:Ut,useCallback:et,useContext:et,useEffect:et,useImperativeHandle:et,useInsertionEffect:et,useLayoutEffect:et,useMemo:et,useReducer:et,useRef:et,useState:et,useDebugValue:et,useDeferredValue:et,useTransition:et,useMutableSource:et,useSyncExternalStore:et,useId:et,unstable_isNewReconciler:!1},BA={readContext:Ut,useCallback:function(e,t){return sr().memoizedState=[e,t===void 0?null:t],e},useContext:Ut,useEffect:Oy,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,ws(4194308,4,mw.bind(null,t,e),r)},useLayoutEffect:function(e,t){return ws(4194308,4,e,t)},useInsertionEffect:function(e,t){return ws(4,2,e,t)},useMemo:function(e,t){var r=sr();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var n=sr();return t=r!==void 0?r(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=LA.bind(null,Pe,e),[n.memoizedState,e]},useRef:function(e){var t=sr();return e={current:e},t.memoizedState=e},useState:Sy,useDebugValue:cv,useDeferredValue:function(e){return sr().memoizedState=e},useTransition:function(){var e=Sy(!1),t=e[0];return e=DA.bind(null,e[1]),sr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var n=Pe,i=sr();if(Se){if(r===void 0)throw Error(U(407));r=r()}else{if(r=t(),Ge===null)throw Error(U(349));qn&30||sw(n,t,r)}i.memoizedState=r;var a={value:r,getSnapshot:t};return i.queue=a,Oy(cw.bind(null,n,a,e),[e]),n.flags|=2048,Co(9,uw.bind(null,n,a,r,t),void 0,null),r},useId:function(){var e=sr(),t=Ge.identifierPrefix;if(Se){var r=Or,n=Sr;r=(n&~(1<<32-rr(n)-1)).toString(32)+r,t=":"+t+"R"+r,r=No++,0<r&&(t+="H"+r.toString(32)),t+=":"}else r=IA++,t=":"+t+"r"+r.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},zA={readContext:Ut,useCallback:gw,useContext:Ut,useEffect:uv,useImperativeHandle:yw,useInsertionEffect:hw,useLayoutEffect:vw,useMemo:xw,useReducer:Af,useRef:pw,useState:function(){return Af(To)},useDebugValue:cv,useDeferredValue:function(e){var t=Wt();return bw(t,Fe.memoizedState,e)},useTransition:function(){var e=Af(To)[0],t=Wt().memoizedState;return[e,t]},useMutableSource:ow,useSyncExternalStore:lw,useId:ww,unstable_isNewReconciler:!1},FA={readContext:Ut,useCallback:gw,useContext:Ut,useEffect:uv,useImperativeHandle:yw,useInsertionEffect:hw,useLayoutEffect:vw,useMemo:xw,useReducer:Ef,useRef:pw,useState:function(){return Ef(To)},useDebugValue:cv,useDeferredValue:function(e){var t=Wt();return Fe===null?t.memoizedState=e:bw(t,Fe.memoizedState,e)},useTransition:function(){var e=Ef(To)[0],t=Wt().memoizedState;return[e,t]},useMutableSource:ow,useSyncExternalStore:lw,useId:ww,unstable_isNewReconciler:!1};function Yt(e,t){if(e&&e.defaultProps){t=Ae({},t),e=e.defaultProps;for(var r in e)t[r]===void 0&&(t[r]=e[r]);return t}return t}function Fd(e,t,r,n){t=e.memoizedState,r=r(n,t),r=r==null?t:Ae({},t,r),e.memoizedState=r,e.lanes===0&&(e.updateQueue.baseState=r)}var lc={isMounted:function(e){return(e=e._reactInternals)?ii(e)===e:!1},enqueueSetState:function(e,t,r){e=e._reactInternals;var n=ut(),i=cn(e),a=Ar(n,i);a.payload=t,r!=null&&(a.callback=r),t=sn(e,a,i),t!==null&&(nr(t,e,i,n),xs(t,e,i))},enqueueReplaceState:function(e,t,r){e=e._reactInternals;var n=ut(),i=cn(e),a=Ar(n,i);a.tag=1,a.payload=t,r!=null&&(a.callback=r),t=sn(e,a,i),t!==null&&(nr(t,e,i,n),xs(t,e,i))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var r=ut(),n=cn(e),i=Ar(r,n);i.tag=2,t!=null&&(i.callback=t),t=sn(e,i,n),t!==null&&(nr(t,e,n,r),xs(t,e,n))}};function jy(e,t,r,n,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(n,a,o):t.prototype&&t.prototype.isPureReactComponent?!_o(r,n)||!_o(i,a):!0}function _w(e,t,r){var n=!1,i=mn,a=t.contextType;return typeof a=="object"&&a!==null?a=Ut(a):(i=gt(t)?Gn:ot.current,n=t.contextTypes,a=(n=n!=null)?Fi(e,i):mn),t=new t(r,a),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=lc,e.stateNode=t,t._reactInternals=e,n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=i,e.__reactInternalMemoizedMaskedChildContext=a),t}function _y(e,t,r,n){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(r,n),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(r,n),t.state!==e&&lc.enqueueReplaceState(t,t.state,null)}function Ud(e,t,r,n){var i=e.stateNode;i.props=r,i.state=e.memoizedState,i.refs={},rv(e);var a=t.contextType;typeof a=="object"&&a!==null?i.context=Ut(a):(a=gt(t)?Gn:ot.current,i.context=Fi(e,a)),i.state=e.memoizedState,a=t.getDerivedStateFromProps,typeof a=="function"&&(Fd(e,t,a,r),i.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof i.getSnapshotBeforeUpdate=="function"||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(t=i.state,typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount(),t!==i.state&&lc.enqueueReplaceState(i,i.state,null),Us(e,r,i,n),i.state=e.memoizedState),typeof i.componentDidMount=="function"&&(e.flags|=4194308)}function Ki(e,t){try{var r="",n=t;do r+=vP(n),n=n.return;while(n);var i=r}catch(a){i=`
+Error generating stack: `+a.message+`
+`+a.stack}return{value:e,source:t,stack:i,digest:null}}function kf(e,t,r){return{value:e,source:null,stack:r??null,digest:t??null}}function Wd(e,t){try{console.error(t.value)}catch(r){setTimeout(function(){throw r})}}var UA=typeof WeakMap=="function"?WeakMap:Map;function Pw(e,t,r){r=Ar(-1,r),r.tag=3,r.payload={element:null};var n=t.value;return r.callback=function(){Gs||(Gs=!0,Jd=n),Wd(e,t)},r}function Aw(e,t,r){r=Ar(-1,r),r.tag=3;var n=e.type.getDerivedStateFromError;if(typeof n=="function"){var i=t.value;r.payload=function(){return n(i)},r.callback=function(){Wd(e,t)}}var a=e.stateNode;return a!==null&&typeof a.componentDidCatch=="function"&&(r.callback=function(){Wd(e,t),typeof n!="function"&&(un===null?un=new Set([this]):un.add(this));var o=t.stack;this.componentDidCatch(t.value,{componentStack:o!==null?o:""})}),r}function Py(e,t,r){var n=e.pingCache;if(n===null){n=e.pingCache=new UA;var i=new Set;n.set(t,i)}else i=n.get(t),i===void 0&&(i=new Set,n.set(t,i));i.has(r)||(i.add(r),e=r2.bind(null,e,t,r),t.then(e,e))}function Ay(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Ey(e,t,r,n,i){return e.mode&1?(e.flags|=65536,e.lanes=i,e):(e===t?e.flags|=65536:(e.flags|=128,r.flags|=131072,r.flags&=-52805,r.tag===1&&(r.alternate===null?r.tag=17:(t=Ar(-1,1),t.tag=2,sn(r,t,1))),r.lanes|=1),e)}var WA=Br.ReactCurrentOwner,vt=!1;function lt(e,t,r,n){t.child=e===null?rw(t,null,r,n):Wi(t,e.child,r,n)}function ky(e,t,r,n,i){r=r.render;var a=t.ref;return Mi(t,i),n=lv(e,t,r,n,a,i),r=sv(),e!==null&&!vt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Mr(e,t,i)):(Se&&r&&qh(t),t.flags|=1,lt(e,t,n,i),t.child)}function $y(e,t,r,n,i){if(e===null){var a=r.type;return typeof a=="function"&&!gv(a)&&a.defaultProps===void 0&&r.compare===null&&r.defaultProps===void 0?(t.tag=15,t.type=a,Ew(e,t,a,n,i)):(e=_s(r.type,null,n,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!(e.lanes&i)){var o=a.memoizedProps;if(r=r.compare,r=r!==null?r:_o,r(o,n)&&e.ref===t.ref)return Mr(e,t,i)}return t.flags|=1,e=fn(a,n),e.ref=t.ref,e.return=t,t.child=e}function Ew(e,t,r,n,i){if(e!==null){var a=e.memoizedProps;if(_o(a,n)&&e.ref===t.ref)if(vt=!1,t.pendingProps=n=a,(e.lanes&i)!==0)e.flags&131072&&(vt=!0);else return t.lanes=e.lanes,Mr(e,t,i)}return Hd(e,t,r,n,i)}function kw(e,t,r){var n=t.pendingProps,i=n.children,a=e!==null?e.memoizedState:null;if(n.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},me(Pi,St),St|=r;else{if(!(r&1073741824))return e=a!==null?a.baseLanes|r:r,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,me(Pi,St),St|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},n=a!==null?a.baseLanes:r,me(Pi,St),St|=n}else a!==null?(n=a.baseLanes|r,t.memoizedState=null):n=r,me(Pi,St),St|=n;return lt(e,t,i,r),t.child}function $w(e,t){var r=t.ref;(e===null&&r!==null||e!==null&&e.ref!==r)&&(t.flags|=512,t.flags|=2097152)}function Hd(e,t,r,n,i){var a=gt(r)?Gn:ot.current;return a=Fi(t,a),Mi(t,i),r=lv(e,t,r,n,a,i),n=sv(),e!==null&&!vt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Mr(e,t,i)):(Se&&n&&qh(t),t.flags|=1,lt(e,t,r,i),t.child)}function Ny(e,t,r,n,i){if(gt(r)){var a=!0;Ls(t)}else a=!1;if(Mi(t,i),t.stateNode===null)Ss(e,t),_w(t,r,n),Ud(t,r,n,i),n=!0;else if(e===null){var o=t.stateNode,l=t.memoizedProps;o.props=l;var s=o.context,u=r.contextType;typeof u=="object"&&u!==null?u=Ut(u):(u=gt(r)?Gn:ot.current,u=Fi(t,u));var f=r.getDerivedStateFromProps,c=typeof f=="function"||typeof o.getSnapshotBeforeUpdate=="function";c||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(l!==n||s!==u)&&_y(t,o,n,u),Gr=!1;var p=t.memoizedState;o.state=p,Us(t,n,o,i),s=t.memoizedState,l!==n||p!==s||yt.current||Gr?(typeof f=="function"&&(Fd(t,r,f,n),s=t.memoizedState),(l=Gr||jy(t,r,l,n,p,s,u))?(c||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(t.flags|=4194308)):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=n,t.memoizedState=s),o.props=n,o.state=s,o.context=u,n=l):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),n=!1)}else{o=t.stateNode,iw(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Yt(t.type,l),o.props=u,c=t.pendingProps,p=o.context,s=r.contextType,typeof s=="object"&&s!==null?s=Ut(s):(s=gt(r)?Gn:ot.current,s=Fi(t,s));var h=r.getDerivedStateFromProps;(f=typeof h=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(l!==c||p!==s)&&_y(t,o,n,s),Gr=!1,p=t.memoizedState,o.state=p,Us(t,n,o,i);var y=t.memoizedState;l!==c||p!==y||yt.current||Gr?(typeof h=="function"&&(Fd(t,r,h,n),y=t.memoizedState),(u=Gr||jy(t,r,u,n,p,y,s)||!1)?(f||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(n,y,s),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(n,y,s)),typeof o.componentDidUpdate=="function"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof o.componentDidUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=n,t.memoizedState=y),o.props=n,o.state=y,o.context=s,n=u):(typeof o.componentDidUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),n=!1)}return Kd(e,t,r,n,a,i)}function Kd(e,t,r,n,i,a){$w(e,t);var o=(t.flags&128)!==0;if(!n&&!o)return i&&my(t,r,!1),Mr(e,t,a);n=t.stateNode,WA.current=t;var l=o&&typeof r.getDerivedStateFromError!="function"?null:n.render();return t.flags|=1,e!==null&&o?(t.child=Wi(t,e.child,null,a),t.child=Wi(t,null,l,a)):lt(e,t,l,a),t.memoizedState=n.state,i&&my(t,r,!0),t.child}function Nw(e){var t=e.stateNode;t.pendingContext?vy(e,t.pendingContext,t.pendingContext!==t.context):t.context&&vy(e,t.context,!1),nv(e,t.containerInfo)}function Ty(e,t,r,n,i){return Ui(),Qh(i),t.flags|=256,lt(e,t,r,n),t.child}var Vd={dehydrated:null,treeContext:null,retryLane:0};function Gd(e){return{baseLanes:e,cachePool:null,transitions:null}}function Tw(e,t,r){var n=t.pendingProps,i=je.current,a=!1,o=(t.flags&128)!==0,l;if((l=o)||(l=e!==null&&e.memoizedState===null?!1:(i&2)!==0),l?(a=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(i|=1),me(je,i&1),e===null)return Bd(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=n.children,e=n.fallback,a?(n=t.mode,a=t.child,o={mode:"hidden",children:o},!(n&1)&&a!==null?(a.childLanes=0,a.pendingProps=o):a=cc(o,n,0,null),e=Hn(e,n,r,null),a.return=t,e.return=t,a.sibling=e,t.child=a,t.child.memoizedState=Gd(r),t.memoizedState=Vd,e):fv(t,o));if(i=e.memoizedState,i!==null&&(l=i.dehydrated,l!==null))return HA(e,t,o,n,l,i,r);if(a){a=n.fallback,o=t.mode,i=e.child,l=i.sibling;var s={mode:"hidden",children:n.children};return!(o&1)&&t.child!==i?(n=t.child,n.childLanes=0,n.pendingProps=s,t.deletions=null):(n=fn(i,s),n.subtreeFlags=i.subtreeFlags&14680064),l!==null?a=fn(l,a):(a=Hn(a,o,r,null),a.flags|=2),a.return=t,n.return=t,n.sibling=a,t.child=n,n=a,a=t.child,o=e.child.memoizedState,o=o===null?Gd(r):{baseLanes:o.baseLanes|r,cachePool:null,transitions:o.transitions},a.memoizedState=o,a.childLanes=e.childLanes&~r,t.memoizedState=Vd,n}return a=e.child,e=a.sibling,n=fn(a,{mode:"visible",children:n.children}),!(t.mode&1)&&(n.lanes=r),n.return=t,n.sibling=null,e!==null&&(r=t.deletions,r===null?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n}function fv(e,t){return t=cc({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function ql(e,t,r,n){return n!==null&&Qh(n),Wi(t,e.child,null,r),e=fv(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function HA(e,t,r,n,i,a,o){if(r)return t.flags&256?(t.flags&=-257,n=kf(Error(U(422))),ql(e,t,o,n)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(a=n.fallback,i=t.mode,n=cc({mode:"visible",children:n.children},i,0,null),a=Hn(a,i,o,null),a.flags|=2,n.return=t,a.return=t,n.sibling=a,t.child=n,t.mode&1&&Wi(t,e.child,null,o),t.child.memoizedState=Gd(o),t.memoizedState=Vd,a);if(!(t.mode&1))return ql(e,t,o,null);if(i.data==="$!"){if(n=i.nextSibling&&i.nextSibling.dataset,n)var l=n.dgst;return n=l,a=Error(U(419)),n=kf(a,n,void 0),ql(e,t,o,n)}if(l=(o&e.childLanes)!==0,vt||l){if(n=Ge,n!==null){switch(o&-o){case 4:i=2;break;case 16:i=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:i=32;break;case 536870912:i=268435456;break;default:i=0}i=i&(n.suspendedLanes|o)?0:i,i!==0&&i!==a.retryLane&&(a.retryLane=i,Cr(e,i),nr(n,e,i,-1))}return yv(),n=kf(Error(U(421))),ql(e,t,o,n)}return i.data==="$?"?(t.flags|=128,t.child=e.child,t=n2.bind(null,e),i._reactRetry=t,null):(e=a.treeContext,_t=ln(i.nextSibling),Pt=t,Se=!0,Jt=null,e!==null&&(It[Dt++]=Sr,It[Dt++]=Or,It[Dt++]=Xn,Sr=e.id,Or=e.overflow,Xn=t),t=fv(t,n.children),t.flags|=4096,t)}function Cy(e,t,r){e.lanes|=t;var n=e.alternate;n!==null&&(n.lanes|=t),zd(e.return,t,r)}function $f(e,t,r,n,i){var a=e.memoizedState;a===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:n,tail:r,tailMode:i}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=n,a.tail=r,a.tailMode=i)}function Cw(e,t,r){var n=t.pendingProps,i=n.revealOrder,a=n.tail;if(lt(e,t,n.children,r),n=je.current,n&2)n=n&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Cy(e,r,t);else if(e.tag===19)Cy(e,r,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}n&=1}if(me(je,n),!(t.mode&1))t.memoizedState=null;else switch(i){case"forwards":for(r=t.child,i=null;r!==null;)e=r.alternate,e!==null&&Ws(e)===null&&(i=r),r=r.sibling;r=i,r===null?(i=t.child,t.child=null):(i=r.sibling,r.sibling=null),$f(t,!1,i,r,a);break;case"backwards":for(r=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&Ws(e)===null){t.child=i;break}e=i.sibling,i.sibling=r,r=i,i=e}$f(t,!0,r,null,a);break;case"together":$f(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Ss(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Mr(e,t,r){if(e!==null&&(t.dependencies=e.dependencies),Yn|=t.lanes,!(r&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(U(153));if(t.child!==null){for(e=t.child,r=fn(e,e.pendingProps),t.child=r,r.return=t;e.sibling!==null;)e=e.sibling,r=r.sibling=fn(e,e.pendingProps),r.return=t;r.sibling=null}return t.child}function KA(e,t,r){switch(t.tag){case 3:Nw(t),Ui();break;case 5:aw(t);break;case 1:gt(t.type)&&Ls(t);break;case 4:nv(t,t.stateNode.containerInfo);break;case 10:var n=t.type._context,i=t.memoizedProps.value;me(zs,n._currentValue),n._currentValue=i;break;case 13:if(n=t.memoizedState,n!==null)return n.dehydrated!==null?(me(je,je.current&1),t.flags|=128,null):r&t.child.childLanes?Tw(e,t,r):(me(je,je.current&1),e=Mr(e,t,r),e!==null?e.sibling:null);me(je,je.current&1);break;case 19:if(n=(r&t.childLanes)!==0,e.flags&128){if(n)return Cw(e,t,r);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),me(je,je.current),n)break;return null;case 22:case 23:return t.lanes=0,kw(e,t,r)}return Mr(e,t,r)}var Mw,Xd,Iw,Dw;Mw=function(e,t){for(var r=t.child;r!==null;){if(r.tag===5||r.tag===6)e.appendChild(r.stateNode);else if(r.tag!==4&&r.child!==null){r.child.return=r,r=r.child;continue}if(r===t)break;for(;r.sibling===null;){if(r.return===null||r.return===t)return;r=r.return}r.sibling.return=r.return,r=r.sibling}};Xd=function(){};Iw=function(e,t,r,n){var i=e.memoizedProps;if(i!==n){e=t.stateNode,Ln(hr.current);var a=null;switch(r){case"input":i=md(e,i),n=md(e,n),a=[];break;case"select":i=Ae({},i,{value:void 0}),n=Ae({},n,{value:void 0}),a=[];break;case"textarea":i=xd(e,i),n=xd(e,n),a=[];break;default:typeof i.onClick!="function"&&typeof n.onClick=="function"&&(e.onclick=Is)}wd(r,n);var o;r=null;for(u in i)if(!n.hasOwnProperty(u)&&i.hasOwnProperty(u)&&i[u]!=null)if(u==="style"){var l=i[u];for(o in l)l.hasOwnProperty(o)&&(r||(r={}),r[o]="")}else u!=="dangerouslySetInnerHTML"&&u!=="children"&&u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(go.hasOwnProperty(u)?a||(a=[]):(a=a||[]).push(u,null));for(u in n){var s=n[u];if(l=i!=null?i[u]:void 0,n.hasOwnProperty(u)&&s!==l&&(s!=null||l!=null))if(u==="style")if(l){for(o in l)!l.hasOwnProperty(o)||s&&s.hasOwnProperty(o)||(r||(r={}),r[o]="");for(o in s)s.hasOwnProperty(o)&&l[o]!==s[o]&&(r||(r={}),r[o]=s[o])}else r||(a||(a=[]),a.push(u,r)),r=s;else u==="dangerouslySetInnerHTML"?(s=s?s.__html:void 0,l=l?l.__html:void 0,s!=null&&l!==s&&(a=a||[]).push(u,s)):u==="children"?typeof s!="string"&&typeof s!="number"||(a=a||[]).push(u,""+s):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&(go.hasOwnProperty(u)?(s!=null&&u==="onScroll"&&ye("scroll",e),a||l===s||(a=[])):(a=a||[]).push(u,s))}r&&(a=a||[]).push("style",r);var u=a;(t.updateQueue=u)&&(t.flags|=4)}};Dw=function(e,t,r,n){r!==n&&(t.flags|=4)};function za(e,t){if(!Se)switch(e.tailMode){case"hidden":t=e.tail;for(var r=null;t!==null;)t.alternate!==null&&(r=t),t=t.sibling;r===null?e.tail=null:r.sibling=null;break;case"collapsed":r=e.tail;for(var n=null;r!==null;)r.alternate!==null&&(n=r),r=r.sibling;n===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:n.sibling=null}}function tt(e){var t=e.alternate!==null&&e.alternate.child===e.child,r=0,n=0;if(t)for(var i=e.child;i!==null;)r|=i.lanes|i.childLanes,n|=i.subtreeFlags&14680064,n|=i.flags&14680064,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)r|=i.lanes|i.childLanes,n|=i.subtreeFlags,n|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=n,e.childLanes=r,t}function VA(e,t,r){var n=t.pendingProps;switch(Yh(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return tt(t),null;case 1:return gt(t.type)&&Ds(),tt(t),null;case 3:return n=t.stateNode,Hi(),be(yt),be(ot),av(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Gl(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Jt!==null&&(rp(Jt),Jt=null))),Xd(e,t),tt(t),null;case 5:iv(t);var i=Ln($o.current);if(r=t.type,e!==null&&t.stateNode!=null)Iw(e,t,r,n,i),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!n){if(t.stateNode===null)throw Error(U(166));return tt(t),null}if(e=Ln(hr.current),Gl(t)){n=t.stateNode,r=t.type;var a=t.memoizedProps;switch(n[cr]=t,n[Eo]=a,e=(t.mode&1)!==0,r){case"dialog":ye("cancel",n),ye("close",n);break;case"iframe":case"object":case"embed":ye("load",n);break;case"video":case"audio":for(i=0;i<to.length;i++)ye(to[i],n);break;case"source":ye("error",n);break;case"img":case"image":case"link":ye("error",n),ye("load",n);break;case"details":ye("toggle",n);break;case"input":Um(n,a),ye("invalid",n);break;case"select":n._wrapperState={wasMultiple:!!a.multiple},ye("invalid",n);break;case"textarea":Hm(n,a),ye("invalid",n)}wd(r,a),i=null;for(var o in a)if(a.hasOwnProperty(o)){var l=a[o];o==="children"?typeof l=="string"?n.textContent!==l&&(a.suppressHydrationWarning!==!0&&Vl(n.textContent,l,e),i=["children",l]):typeof l=="number"&&n.textContent!==""+l&&(a.suppressHydrationWarning!==!0&&Vl(n.textContent,l,e),i=["children",""+l]):go.hasOwnProperty(o)&&l!=null&&o==="onScroll"&&ye("scroll",n)}switch(r){case"input":Rl(n),Wm(n,a,!0);break;case"textarea":Rl(n),Km(n);break;case"select":case"option":break;default:typeof a.onClick=="function"&&(n.onclick=Is)}n=i,t.updateQueue=n,n!==null&&(t.flags|=4)}else{o=i.nodeType===9?i:i.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=c1(r)),e==="http://www.w3.org/1999/xhtml"?r==="script"?(e=o.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=o.createElement(r,{is:n.is}):(e=o.createElement(r),r==="select"&&(o=e,n.multiple?o.multiple=!0:n.size&&(o.size=n.size))):e=o.createElementNS(e,r),e[cr]=t,e[Eo]=n,Mw(e,t,!1,!1),t.stateNode=e;e:{switch(o=Sd(r,n),r){case"dialog":ye("cancel",e),ye("close",e),i=n;break;case"iframe":case"object":case"embed":ye("load",e),i=n;break;case"video":case"audio":for(i=0;i<to.length;i++)ye(to[i],e);i=n;break;case"source":ye("error",e),i=n;break;case"img":case"image":case"link":ye("error",e),ye("load",e),i=n;break;case"details":ye("toggle",e),i=n;break;case"input":Um(e,n),i=md(e,n),ye("invalid",e);break;case"option":i=n;break;case"select":e._wrapperState={wasMultiple:!!n.multiple},i=Ae({},n,{value:void 0}),ye("invalid",e);break;case"textarea":Hm(e,n),i=xd(e,n),ye("invalid",e);break;default:i=n}wd(r,i),l=i;for(a in l)if(l.hasOwnProperty(a)){var s=l[a];a==="style"?p1(e,s):a==="dangerouslySetInnerHTML"?(s=s?s.__html:void 0,s!=null&&f1(e,s)):a==="children"?typeof s=="string"?(r!=="textarea"||s!=="")&&xo(e,s):typeof s=="number"&&xo(e,""+s):a!=="suppressContentEditableWarning"&&a!=="suppressHydrationWarning"&&a!=="autoFocus"&&(go.hasOwnProperty(a)?s!=null&&a==="onScroll"&&ye("scroll",e):s!=null&&Ih(e,a,s,o))}switch(r){case"input":Rl(e),Wm(e,n,!1);break;case"textarea":Rl(e),Km(e);break;case"option":n.value!=null&&e.setAttribute("value",""+vn(n.value));break;case"select":e.multiple=!!n.multiple,a=n.value,a!=null?$i(e,!!n.multiple,a,!1):n.defaultValue!=null&&$i(e,!!n.multiple,n.defaultValue,!0);break;default:typeof i.onClick=="function"&&(e.onclick=Is)}switch(r){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}}n&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return tt(t),null;case 6:if(e&&t.stateNode!=null)Dw(e,t,e.memoizedProps,n);else{if(typeof n!="string"&&t.stateNode===null)throw Error(U(166));if(r=Ln($o.current),Ln(hr.current),Gl(t)){if(n=t.stateNode,r=t.memoizedProps,n[cr]=t,(a=n.nodeValue!==r)&&(e=Pt,e!==null))switch(e.tag){case 3:Vl(n.nodeValue,r,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Vl(n.nodeValue,r,(e.mode&1)!==0)}a&&(t.flags|=4)}else n=(r.nodeType===9?r:r.ownerDocument).createTextNode(n),n[cr]=t,t.stateNode=n}return tt(t),null;case 13:if(be(je),n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(Se&&_t!==null&&t.mode&1&&!(t.flags&128))ew(),Ui(),t.flags|=98560,a=!1;else if(a=Gl(t),n!==null&&n.dehydrated!==null){if(e===null){if(!a)throw Error(U(318));if(a=t.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error(U(317));a[cr]=t}else Ui(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;tt(t),a=!1}else Jt!==null&&(rp(Jt),Jt=null),a=!0;if(!a)return t.flags&65536?t:null}return t.flags&128?(t.lanes=r,t):(n=n!==null,n!==(e!==null&&e.memoizedState!==null)&&n&&(t.child.flags|=8192,t.mode&1&&(e===null||je.current&1?Ue===0&&(Ue=3):yv())),t.updateQueue!==null&&(t.flags|=4),tt(t),null);case 4:return Hi(),Xd(e,t),e===null&&Po(t.stateNode.containerInfo),tt(t),null;case 10:return ev(t.type._context),tt(t),null;case 17:return gt(t.type)&&Ds(),tt(t),null;case 19:if(be(je),a=t.memoizedState,a===null)return tt(t),null;if(n=(t.flags&128)!==0,o=a.rendering,o===null)if(n)za(a,!1);else{if(Ue!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=Ws(e),o!==null){for(t.flags|=128,za(a,!1),n=o.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),t.subtreeFlags=0,n=r,r=t.child;r!==null;)a=r,e=n,a.flags&=14680066,o=a.alternate,o===null?(a.childLanes=0,a.lanes=e,a.child=null,a.subtreeFlags=0,a.memoizedProps=null,a.memoizedState=null,a.updateQueue=null,a.dependencies=null,a.stateNode=null):(a.childLanes=o.childLanes,a.lanes=o.lanes,a.child=o.child,a.subtreeFlags=0,a.deletions=null,a.memoizedProps=o.memoizedProps,a.memoizedState=o.memoizedState,a.updateQueue=o.updateQueue,a.type=o.type,e=o.dependencies,a.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),r=r.sibling;return me(je,je.current&1|2),t.child}e=e.sibling}a.tail!==null&&Te()>Vi&&(t.flags|=128,n=!0,za(a,!1),t.lanes=4194304)}else{if(!n)if(e=Ws(o),e!==null){if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),za(a,!0),a.tail===null&&a.tailMode==="hidden"&&!o.alternate&&!Se)return tt(t),null}else 2*Te()-a.renderingStartTime>Vi&&r!==1073741824&&(t.flags|=128,n=!0,za(a,!1),t.lanes=4194304);a.isBackwards?(o.sibling=t.child,t.child=o):(r=a.last,r!==null?r.sibling=o:t.child=o,a.last=o)}return a.tail!==null?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=Te(),t.sibling=null,r=je.current,me(je,n?r&1|2:r&1),t):(tt(t),null);case 22:case 23:return mv(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&t.mode&1?St&1073741824&&(tt(t),t.subtreeFlags&6&&(t.flags|=8192)):tt(t),null;case 24:return null;case 25:return null}throw Error(U(156,t.tag))}function GA(e,t){switch(Yh(t),t.tag){case 1:return gt(t.type)&&Ds(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Hi(),be(yt),be(ot),av(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return iv(t),null;case 13:if(be(je),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(U(340));Ui()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return be(je),null;case 4:return Hi(),null;case 10:return ev(t.type._context),null;case 22:case 23:return mv(),null;case 24:return null;default:return null}}var Yl=!1,nt=!1,XA=typeof WeakSet=="function"?WeakSet:Set,G=null;function _i(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){ke(e,t,n)}else r.current=null}function qd(e,t,r){try{r()}catch(n){ke(e,t,n)}}var My=!1;function qA(e,t){if(Td=Ts,e=F1(),Xh(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var i=n.anchorOffset,a=n.focusNode;n=n.focusOffset;try{r.nodeType,a.nodeType}catch{r=null;break e}var o=0,l=-1,s=-1,u=0,f=0,c=e,p=null;t:for(;;){for(var h;c!==r||i!==0&&c.nodeType!==3||(l=o+i),c!==a||n!==0&&c.nodeType!==3||(s=o+n),c.nodeType===3&&(o+=c.nodeValue.length),(h=c.firstChild)!==null;)p=c,c=h;for(;;){if(c===e)break t;if(p===r&&++u===i&&(l=o),p===a&&++f===n&&(s=o),(h=c.nextSibling)!==null)break;c=p,p=c.parentNode}c=h}r=l===-1||s===-1?null:{start:l,end:s}}else r=null}r=r||{start:0,end:0}}else r=null;for(Cd={focusedElem:e,selectionRange:r},Ts=!1,G=t;G!==null;)if(t=G,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,G=e;else for(;G!==null;){t=G;try{var y=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(y!==null){var b=y.memoizedProps,g=y.memoizedState,m=t.stateNode,v=m.getSnapshotBeforeUpdate(t.elementType===t.type?b:Yt(t.type,b),g);m.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var x=t.stateNode.containerInfo;x.nodeType===1?x.textContent="":x.nodeType===9&&x.documentElement&&x.removeChild(x.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(U(163))}}catch(O){ke(t,t.return,O)}if(e=t.sibling,e!==null){e.return=t.return,G=e;break}G=t.return}return y=My,My=!1,y}function uo(e,t,r){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var i=n=n.next;do{if((i.tag&e)===e){var a=i.destroy;i.destroy=void 0,a!==void 0&&qd(t,r,a)}i=i.next}while(i!==n)}}function sc(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var n=r.create;r.destroy=n()}r=r.next}while(r!==t)}}function Yd(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function Lw(e){var t=e.alternate;t!==null&&(e.alternate=null,Lw(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[cr],delete t[Eo],delete t[Dd],delete t[NA],delete t[TA])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Rw(e){return e.tag===5||e.tag===3||e.tag===4}function Iy(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Rw(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Qd(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=Is));else if(n!==4&&(e=e.child,e!==null))for(Qd(e,t,r),e=e.sibling;e!==null;)Qd(e,t,r),e=e.sibling}function Zd(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(Zd(e,t,r),e=e.sibling;e!==null;)Zd(e,t,r),e=e.sibling}var Ye=null,Qt=!1;function Hr(e,t,r){for(r=r.child;r!==null;)Bw(e,t,r),r=r.sibling}function Bw(e,t,r){if(pr&&typeof pr.onCommitFiberUnmount=="function")try{pr.onCommitFiberUnmount(ec,r)}catch{}switch(r.tag){case 5:nt||_i(r,t);case 6:var n=Ye,i=Qt;Ye=null,Hr(e,t,r),Ye=n,Qt=i,Ye!==null&&(Qt?(e=Ye,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):Ye.removeChild(r.stateNode));break;case 18:Ye!==null&&(Qt?(e=Ye,r=r.stateNode,e.nodeType===8?Of(e.parentNode,r):e.nodeType===1&&Of(e,r),Oo(e)):Of(Ye,r.stateNode));break;case 4:n=Ye,i=Qt,Ye=r.stateNode.containerInfo,Qt=!0,Hr(e,t,r),Ye=n,Qt=i;break;case 0:case 11:case 14:case 15:if(!nt&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){i=n=n.next;do{var a=i,o=a.destroy;a=a.tag,o!==void 0&&(a&2||a&4)&&qd(r,t,o),i=i.next}while(i!==n)}Hr(e,t,r);break;case 1:if(!nt&&(_i(r,t),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(l){ke(r,t,l)}Hr(e,t,r);break;case 21:Hr(e,t,r);break;case 22:r.mode&1?(nt=(n=nt)||r.memoizedState!==null,Hr(e,t,r),nt=n):Hr(e,t,r);break;default:Hr(e,t,r)}}function Dy(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new XA),t.forEach(function(n){var i=i2.bind(null,e,n);r.has(n)||(r.add(n),n.then(i,i))})}}function Gt(e,t){var r=t.deletions;if(r!==null)for(var n=0;n<r.length;n++){var i=r[n];try{var a=e,o=t,l=o;e:for(;l!==null;){switch(l.tag){case 5:Ye=l.stateNode,Qt=!1;break e;case 3:Ye=l.stateNode.containerInfo,Qt=!0;break e;case 4:Ye=l.stateNode.containerInfo,Qt=!0;break e}l=l.return}if(Ye===null)throw Error(U(160));Bw(a,o,i),Ye=null,Qt=!1;var s=i.alternate;s!==null&&(s.return=null),i.return=null}catch(u){ke(i,t,u)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)zw(t,e),t=t.sibling}function zw(e,t){var r=e.alternate,n=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Gt(t,e),lr(e),n&4){try{uo(3,e,e.return),sc(3,e)}catch(b){ke(e,e.return,b)}try{uo(5,e,e.return)}catch(b){ke(e,e.return,b)}}break;case 1:Gt(t,e),lr(e),n&512&&r!==null&&_i(r,r.return);break;case 5:if(Gt(t,e),lr(e),n&512&&r!==null&&_i(r,r.return),e.flags&32){var i=e.stateNode;try{xo(i,"")}catch(b){ke(e,e.return,b)}}if(n&4&&(i=e.stateNode,i!=null)){var a=e.memoizedProps,o=r!==null?r.memoizedProps:a,l=e.type,s=e.updateQueue;if(e.updateQueue=null,s!==null)try{l==="input"&&a.type==="radio"&&a.name!=null&&s1(i,a),Sd(l,o);var u=Sd(l,a);for(o=0;o<s.length;o+=2){var f=s[o],c=s[o+1];f==="style"?p1(i,c):f==="dangerouslySetInnerHTML"?f1(i,c):f==="children"?xo(i,c):Ih(i,f,c,u)}switch(l){case"input":yd(i,a);break;case"textarea":u1(i,a);break;case"select":var p=i._wrapperState.wasMultiple;i._wrapperState.wasMultiple=!!a.multiple;var h=a.value;h!=null?$i(i,!!a.multiple,h,!1):p!==!!a.multiple&&(a.defaultValue!=null?$i(i,!!a.multiple,a.defaultValue,!0):$i(i,!!a.multiple,a.multiple?[]:"",!1))}i[Eo]=a}catch(b){ke(e,e.return,b)}}break;case 6:if(Gt(t,e),lr(e),n&4){if(e.stateNode===null)throw Error(U(162));i=e.stateNode,a=e.memoizedProps;try{i.nodeValue=a}catch(b){ke(e,e.return,b)}}break;case 3:if(Gt(t,e),lr(e),n&4&&r!==null&&r.memoizedState.isDehydrated)try{Oo(t.containerInfo)}catch(b){ke(e,e.return,b)}break;case 4:Gt(t,e),lr(e);break;case 13:Gt(t,e),lr(e),i=e.child,i.flags&8192&&(a=i.memoizedState!==null,i.stateNode.isHidden=a,!a||i.alternate!==null&&i.alternate.memoizedState!==null||(hv=Te())),n&4&&Dy(e);break;case 22:if(f=r!==null&&r.memoizedState!==null,e.mode&1?(nt=(u=nt)||f,Gt(t,e),nt=u):Gt(t,e),lr(e),n&8192){if(u=e.memoizedState!==null,(e.stateNode.isHidden=u)&&!f&&e.mode&1)for(G=e,f=e.child;f!==null;){for(c=G=f;G!==null;){switch(p=G,h=p.child,p.tag){case 0:case 11:case 14:case 15:uo(4,p,p.return);break;case 1:_i(p,p.return);var y=p.stateNode;if(typeof y.componentWillUnmount=="function"){n=p,r=p.return;try{t=n,y.props=t.memoizedProps,y.state=t.memoizedState,y.componentWillUnmount()}catch(b){ke(n,r,b)}}break;case 5:_i(p,p.return);break;case 22:if(p.memoizedState!==null){Ry(c);continue}}h!==null?(h.return=p,G=h):Ry(c)}f=f.sibling}e:for(f=null,c=e;;){if(c.tag===5){if(f===null){f=c;try{i=c.stateNode,u?(a=i.style,typeof a.setProperty=="function"?a.setProperty("display","none","important"):a.display="none"):(l=c.stateNode,s=c.memoizedProps.style,o=s!=null&&s.hasOwnProperty("display")?s.display:null,l.style.display=d1("display",o))}catch(b){ke(e,e.return,b)}}}else if(c.tag===6){if(f===null)try{c.stateNode.nodeValue=u?"":c.memoizedProps}catch(b){ke(e,e.return,b)}}else if((c.tag!==22&&c.tag!==23||c.memoizedState===null||c===e)&&c.child!==null){c.child.return=c,c=c.child;continue}if(c===e)break e;for(;c.sibling===null;){if(c.return===null||c.return===e)break e;f===c&&(f=null),c=c.return}f===c&&(f=null),c.sibling.return=c.return,c=c.sibling}}break;case 19:Gt(t,e),lr(e),n&4&&Dy(e);break;case 21:break;default:Gt(t,e),lr(e)}}function lr(e){var t=e.flags;if(t&2){try{e:{for(var r=e.return;r!==null;){if(Rw(r)){var n=r;break e}r=r.return}throw Error(U(160))}switch(n.tag){case 5:var i=n.stateNode;n.flags&32&&(xo(i,""),n.flags&=-33);var a=Iy(e);Zd(e,a,i);break;case 3:case 4:var o=n.stateNode.containerInfo,l=Iy(e);Qd(e,l,o);break;default:throw Error(U(161))}}catch(s){ke(e,e.return,s)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function YA(e,t,r){G=e,Fw(e)}function Fw(e,t,r){for(var n=(e.mode&1)!==0;G!==null;){var i=G,a=i.child;if(i.tag===22&&n){var o=i.memoizedState!==null||Yl;if(!o){var l=i.alternate,s=l!==null&&l.memoizedState!==null||nt;l=Yl;var u=nt;if(Yl=o,(nt=s)&&!u)for(G=i;G!==null;)o=G,s=o.child,o.tag===22&&o.memoizedState!==null?By(i):s!==null?(s.return=o,G=s):By(i);for(;a!==null;)G=a,Fw(a),a=a.sibling;G=i,Yl=l,nt=u}Ly(e)}else i.subtreeFlags&8772&&a!==null?(a.return=i,G=a):Ly(e)}}function Ly(e){for(;G!==null;){var t=G;if(t.flags&8772){var r=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:nt||sc(5,t);break;case 1:var n=t.stateNode;if(t.flags&4&&!nt)if(r===null)n.componentDidMount();else{var i=t.elementType===t.type?r.memoizedProps:Yt(t.type,r.memoizedProps);n.componentDidUpdate(i,r.memoizedState,n.__reactInternalSnapshotBeforeUpdate)}var a=t.updateQueue;a!==null&&wy(t,a,n);break;case 3:var o=t.updateQueue;if(o!==null){if(r=null,t.child!==null)switch(t.child.tag){case 5:r=t.child.stateNode;break;case 1:r=t.child.stateNode}wy(t,o,r)}break;case 5:var l=t.stateNode;if(r===null&&t.flags&4){r=l;var s=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":s.autoFocus&&r.focus();break;case"img":s.src&&(r.src=s.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var u=t.alternate;if(u!==null){var f=u.memoizedState;if(f!==null){var c=f.dehydrated;c!==null&&Oo(c)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(U(163))}nt||t.flags&512&&Yd(t)}catch(p){ke(t,t.return,p)}}if(t===e){G=null;break}if(r=t.sibling,r!==null){r.return=t.return,G=r;break}G=t.return}}function Ry(e){for(;G!==null;){var t=G;if(t===e){G=null;break}var r=t.sibling;if(r!==null){r.return=t.return,G=r;break}G=t.return}}function By(e){for(;G!==null;){var t=G;try{switch(t.tag){case 0:case 11:case 15:var r=t.return;try{sc(4,t)}catch(s){ke(t,r,s)}break;case 1:var n=t.stateNode;if(typeof n.componentDidMount=="function"){var i=t.return;try{n.componentDidMount()}catch(s){ke(t,i,s)}}var a=t.return;try{Yd(t)}catch(s){ke(t,a,s)}break;case 5:var o=t.return;try{Yd(t)}catch(s){ke(t,o,s)}}}catch(s){ke(t,t.return,s)}if(t===e){G=null;break}var l=t.sibling;if(l!==null){l.return=t.return,G=l;break}G=t.return}}var QA=Math.ceil,Vs=Br.ReactCurrentDispatcher,dv=Br.ReactCurrentOwner,zt=Br.ReactCurrentBatchConfig,ae=0,Ge=null,Me=null,Ze=0,St=0,Pi=gn(0),Ue=0,Mo=null,Yn=0,uc=0,pv=0,co=null,ht=null,hv=0,Vi=1/0,br=null,Gs=!1,Jd=null,un=null,Ql=!1,Jr=null,Xs=0,fo=0,ep=null,Os=-1,js=0;function ut(){return ae&6?Te():Os!==-1?Os:Os=Te()}function cn(e){return e.mode&1?ae&2&&Ze!==0?Ze&-Ze:MA.transition!==null?(js===0&&(js=_1()),js):(e=ue,e!==0||(e=window.event,e=e===void 0?16:T1(e.type)),e):1}function nr(e,t,r,n){if(50<fo)throw fo=0,ep=null,Error(U(185));bl(e,r,n),(!(ae&2)||e!==Ge)&&(e===Ge&&(!(ae&2)&&(uc|=r),Ue===4&&Yr(e,Ze)),xt(e,n),r===1&&ae===0&&!(t.mode&1)&&(Vi=Te()+500,ac&&xn()))}function xt(e,t){var r=e.callbackNode;MP(e,t);var n=Ns(e,e===Ge?Ze:0);if(n===0)r!==null&&Xm(r),e.callbackNode=null,e.callbackPriority=0;else if(t=n&-n,e.callbackPriority!==t){if(r!=null&&Xm(r),t===1)e.tag===0?CA(zy.bind(null,e)):Q1(zy.bind(null,e)),kA(function(){!(ae&6)&&xn()}),r=null;else{switch(P1(n)){case 1:r=zh;break;case 4:r=O1;break;case 16:r=$s;break;case 536870912:r=j1;break;default:r=$s}r=qw(r,Uw.bind(null,e))}e.callbackPriority=t,e.callbackNode=r}}function Uw(e,t){if(Os=-1,js=0,ae&6)throw Error(U(327));var r=e.callbackNode;if(Ii()&&e.callbackNode!==r)return null;var n=Ns(e,e===Ge?Ze:0);if(n===0)return null;if(n&30||n&e.expiredLanes||t)t=qs(e,n);else{t=n;var i=ae;ae|=2;var a=Hw();(Ge!==e||Ze!==t)&&(br=null,Vi=Te()+500,Wn(e,t));do try{e2();break}catch(l){Ww(e,l)}while(!0);Jh(),Vs.current=a,ae=i,Me!==null?t=0:(Ge=null,Ze=0,t=Ue)}if(t!==0){if(t===2&&(i=Ad(e),i!==0&&(n=i,t=tp(e,i))),t===1)throw r=Mo,Wn(e,0),Yr(e,n),xt(e,Te()),r;if(t===6)Yr(e,n);else{if(i=e.current.alternate,!(n&30)&&!ZA(i)&&(t=qs(e,n),t===2&&(a=Ad(e),a!==0&&(n=a,t=tp(e,a))),t===1))throw r=Mo,Wn(e,0),Yr(e,n),xt(e,Te()),r;switch(e.finishedWork=i,e.finishedLanes=n,t){case 0:case 1:throw Error(U(345));case 2:Nn(e,ht,br);break;case 3:if(Yr(e,n),(n&130023424)===n&&(t=hv+500-Te(),10<t)){if(Ns(e,0)!==0)break;if(i=e.suspendedLanes,(i&n)!==n){ut(),e.pingedLanes|=e.suspendedLanes&i;break}e.timeoutHandle=Id(Nn.bind(null,e,ht,br),t);break}Nn(e,ht,br);break;case 4:if(Yr(e,n),(n&4194240)===n)break;for(t=e.eventTimes,i=-1;0<n;){var o=31-rr(n);a=1<<o,o=t[o],o>i&&(i=o),n&=~a}if(n=i,n=Te()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*QA(n/1960))-n,10<n){e.timeoutHandle=Id(Nn.bind(null,e,ht,br),n);break}Nn(e,ht,br);break;case 5:Nn(e,ht,br);break;default:throw Error(U(329))}}}return xt(e,Te()),e.callbackNode===r?Uw.bind(null,e):null}function tp(e,t){var r=co;return e.current.memoizedState.isDehydrated&&(Wn(e,t).flags|=256),e=qs(e,t),e!==2&&(t=ht,ht=r,t!==null&&rp(t)),e}function rp(e){ht===null?ht=e:ht.push.apply(ht,e)}function ZA(e){for(var t=e;;){if(t.flags&16384){var r=t.updateQueue;if(r!==null&&(r=r.stores,r!==null))for(var n=0;n<r.length;n++){var i=r[n],a=i.getSnapshot;i=i.value;try{if(!ar(a(),i))return!1}catch{return!1}}}if(r=t.child,t.subtreeFlags&16384&&r!==null)r.return=t,t=r;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Yr(e,t){for(t&=~pv,t&=~uc,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var r=31-rr(t),n=1<<r;e[r]=-1,t&=~n}}function zy(e){if(ae&6)throw Error(U(327));Ii();var t=Ns(e,0);if(!(t&1))return xt(e,Te()),null;var r=qs(e,t);if(e.tag!==0&&r===2){var n=Ad(e);n!==0&&(t=n,r=tp(e,n))}if(r===1)throw r=Mo,Wn(e,0),Yr(e,t),xt(e,Te()),r;if(r===6)throw Error(U(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Nn(e,ht,br),xt(e,Te()),null}function vv(e,t){var r=ae;ae|=1;try{return e(t)}finally{ae=r,ae===0&&(Vi=Te()+500,ac&&xn())}}function Qn(e){Jr!==null&&Jr.tag===0&&!(ae&6)&&Ii();var t=ae;ae|=1;var r=zt.transition,n=ue;try{if(zt.transition=null,ue=1,e)return e()}finally{ue=n,zt.transition=r,ae=t,!(ae&6)&&xn()}}function mv(){St=Pi.current,be(Pi)}function Wn(e,t){e.finishedWork=null,e.finishedLanes=0;var r=e.timeoutHandle;if(r!==-1&&(e.timeoutHandle=-1,EA(r)),Me!==null)for(r=Me.return;r!==null;){var n=r;switch(Yh(n),n.tag){case 1:n=n.type.childContextTypes,n!=null&&Ds();break;case 3:Hi(),be(yt),be(ot),av();break;case 5:iv(n);break;case 4:Hi();break;case 13:be(je);break;case 19:be(je);break;case 10:ev(n.type._context);break;case 22:case 23:mv()}r=r.return}if(Ge=e,Me=e=fn(e.current,null),Ze=St=t,Ue=0,Mo=null,pv=uc=Yn=0,ht=co=null,Dn!==null){for(t=0;t<Dn.length;t++)if(r=Dn[t],n=r.interleaved,n!==null){r.interleaved=null;var i=n.next,a=r.pending;if(a!==null){var o=a.next;a.next=i,n.next=o}r.pending=n}Dn=null}return e}function Ww(e,t){do{var r=Me;try{if(Jh(),bs.current=Ks,Hs){for(var n=Pe.memoizedState;n!==null;){var i=n.queue;i!==null&&(i.pending=null),n=n.next}Hs=!1}if(qn=0,Ve=Fe=Pe=null,so=!1,No=0,dv.current=null,r===null||r.return===null){Ue=1,Mo=t,Me=null;break}e:{var a=e,o=r.return,l=r,s=t;if(t=Ze,l.flags|=32768,s!==null&&typeof s=="object"&&typeof s.then=="function"){var u=s,f=l,c=f.tag;if(!(f.mode&1)&&(c===0||c===11||c===15)){var p=f.alternate;p?(f.updateQueue=p.updateQueue,f.memoizedState=p.memoizedState,f.lanes=p.lanes):(f.updateQueue=null,f.memoizedState=null)}var h=Ay(o);if(h!==null){h.flags&=-257,Ey(h,o,l,a,t),h.mode&1&&Py(a,u,t),t=h,s=u;var y=t.updateQueue;if(y===null){var b=new Set;b.add(s),t.updateQueue=b}else y.add(s);break e}else{if(!(t&1)){Py(a,u,t),yv();break e}s=Error(U(426))}}else if(Se&&l.mode&1){var g=Ay(o);if(g!==null){!(g.flags&65536)&&(g.flags|=256),Ey(g,o,l,a,t),Qh(Ki(s,l));break e}}a=s=Ki(s,l),Ue!==4&&(Ue=2),co===null?co=[a]:co.push(a),a=o;do{switch(a.tag){case 3:a.flags|=65536,t&=-t,a.lanes|=t;var m=Pw(a,s,t);by(a,m);break e;case 1:l=s;var v=a.type,x=a.stateNode;if(!(a.flags&128)&&(typeof v.getDerivedStateFromError=="function"||x!==null&&typeof x.componentDidCatch=="function"&&(un===null||!un.has(x)))){a.flags|=65536,t&=-t,a.lanes|=t;var O=Aw(a,l,t);by(a,O);break e}}a=a.return}while(a!==null)}Vw(r)}catch(w){t=w,Me===r&&r!==null&&(Me=r=r.return);continue}break}while(!0)}function Hw(){var e=Vs.current;return Vs.current=Ks,e===null?Ks:e}function yv(){(Ue===0||Ue===3||Ue===2)&&(Ue=4),Ge===null||!(Yn&268435455)&&!(uc&268435455)||Yr(Ge,Ze)}function qs(e,t){var r=ae;ae|=2;var n=Hw();(Ge!==e||Ze!==t)&&(br=null,Wn(e,t));do try{JA();break}catch(i){Ww(e,i)}while(!0);if(Jh(),ae=r,Vs.current=n,Me!==null)throw Error(U(261));return Ge=null,Ze=0,Ue}function JA(){for(;Me!==null;)Kw(Me)}function e2(){for(;Me!==null&&!_P();)Kw(Me)}function Kw(e){var t=Xw(e.alternate,e,St);e.memoizedProps=e.pendingProps,t===null?Vw(e):Me=t,dv.current=null}function Vw(e){var t=e;do{var r=t.alternate;if(e=t.return,t.flags&32768){if(r=GA(r,t),r!==null){r.flags&=32767,Me=r;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Ue=6,Me=null;return}}else if(r=VA(r,t,St),r!==null){Me=r;return}if(t=t.sibling,t!==null){Me=t;return}Me=t=e}while(t!==null);Ue===0&&(Ue=5)}function Nn(e,t,r){var n=ue,i=zt.transition;try{zt.transition=null,ue=1,t2(e,t,r,n)}finally{zt.transition=i,ue=n}return null}function t2(e,t,r,n){do Ii();while(Jr!==null);if(ae&6)throw Error(U(327));r=e.finishedWork;var i=e.finishedLanes;if(r===null)return null;if(e.finishedWork=null,e.finishedLanes=0,r===e.current)throw Error(U(177));e.callbackNode=null,e.callbackPriority=0;var a=r.lanes|r.childLanes;if(IP(e,a),e===Ge&&(Me=Ge=null,Ze=0),!(r.subtreeFlags&2064)&&!(r.flags&2064)||Ql||(Ql=!0,qw($s,function(){return Ii(),null})),a=(r.flags&15990)!==0,r.subtreeFlags&15990||a){a=zt.transition,zt.transition=null;var o=ue;ue=1;var l=ae;ae|=4,dv.current=null,qA(e,r),zw(r,e),wA(Cd),Ts=!!Td,Cd=Td=null,e.current=r,YA(r),PP(),ae=l,ue=o,zt.transition=a}else e.current=r;if(Ql&&(Ql=!1,Jr=e,Xs=i),a=e.pendingLanes,a===0&&(un=null),kP(r.stateNode),xt(e,Te()),t!==null)for(n=e.onRecoverableError,r=0;r<t.length;r++)i=t[r],n(i.value,{componentStack:i.stack,digest:i.digest});if(Gs)throw Gs=!1,e=Jd,Jd=null,e;return Xs&1&&e.tag!==0&&Ii(),a=e.pendingLanes,a&1?e===ep?fo++:(fo=0,ep=e):fo=0,xn(),null}function Ii(){if(Jr!==null){var e=P1(Xs),t=zt.transition,r=ue;try{if(zt.transition=null,ue=16>e?16:e,Jr===null)var n=!1;else{if(e=Jr,Jr=null,Xs=0,ae&6)throw Error(U(331));var i=ae;for(ae|=4,G=e.current;G!==null;){var a=G,o=a.child;if(G.flags&16){var l=a.deletions;if(l!==null){for(var s=0;s<l.length;s++){var u=l[s];for(G=u;G!==null;){var f=G;switch(f.tag){case 0:case 11:case 15:uo(8,f,a)}var c=f.child;if(c!==null)c.return=f,G=c;else for(;G!==null;){f=G;var p=f.sibling,h=f.return;if(Lw(f),f===u){G=null;break}if(p!==null){p.return=h,G=p;break}G=h}}}var y=a.alternate;if(y!==null){var b=y.child;if(b!==null){y.child=null;do{var g=b.sibling;b.sibling=null,b=g}while(b!==null)}}G=a}}if(a.subtreeFlags&2064&&o!==null)o.return=a,G=o;else e:for(;G!==null;){if(a=G,a.flags&2048)switch(a.tag){case 0:case 11:case 15:uo(9,a,a.return)}var m=a.sibling;if(m!==null){m.return=a.return,G=m;break e}G=a.return}}var v=e.current;for(G=v;G!==null;){o=G;var x=o.child;if(o.subtreeFlags&2064&&x!==null)x.return=o,G=x;else e:for(o=v;G!==null;){if(l=G,l.flags&2048)try{switch(l.tag){case 0:case 11:case 15:sc(9,l)}}catch(w){ke(l,l.return,w)}if(l===o){G=null;break e}var O=l.sibling;if(O!==null){O.return=l.return,G=O;break e}G=l.return}}if(ae=i,xn(),pr&&typeof pr.onPostCommitFiberRoot=="function")try{pr.onPostCommitFiberRoot(ec,e)}catch{}n=!0}return n}finally{ue=r,zt.transition=t}}return!1}function Fy(e,t,r){t=Ki(r,t),t=Pw(e,t,1),e=sn(e,t,1),t=ut(),e!==null&&(bl(e,1,t),xt(e,t))}function ke(e,t,r){if(e.tag===3)Fy(e,e,r);else for(;t!==null;){if(t.tag===3){Fy(t,e,r);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(un===null||!un.has(n))){e=Ki(r,e),e=Aw(t,e,1),t=sn(t,e,1),e=ut(),t!==null&&(bl(t,1,e),xt(t,e));break}}t=t.return}}function r2(e,t,r){var n=e.pingCache;n!==null&&n.delete(t),t=ut(),e.pingedLanes|=e.suspendedLanes&r,Ge===e&&(Ze&r)===r&&(Ue===4||Ue===3&&(Ze&130023424)===Ze&&500>Te()-hv?Wn(e,0):pv|=r),xt(e,t)}function Gw(e,t){t===0&&(e.mode&1?(t=Fl,Fl<<=1,!(Fl&130023424)&&(Fl=4194304)):t=1);var r=ut();e=Cr(e,t),e!==null&&(bl(e,t,r),xt(e,r))}function n2(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),Gw(e,r)}function i2(e,t){var r=0;switch(e.tag){case 13:var n=e.stateNode,i=e.memoizedState;i!==null&&(r=i.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(U(314))}n!==null&&n.delete(t),Gw(e,r)}var Xw;Xw=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||yt.current)vt=!0;else{if(!(e.lanes&r)&&!(t.flags&128))return vt=!1,KA(e,t,r);vt=!!(e.flags&131072)}else vt=!1,Se&&t.flags&1048576&&Z1(t,Bs,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;Ss(e,t),e=t.pendingProps;var i=Fi(t,ot.current);Mi(t,r),i=lv(null,t,n,e,i,r);var a=sv();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,gt(n)?(a=!0,Ls(t)):a=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,rv(t),i.updater=lc,t.stateNode=i,i._reactInternals=t,Ud(t,n,e,r),t=Kd(null,t,n,!0,a,r)):(t.tag=0,Se&&a&&qh(t),lt(null,t,i,r),t=t.child),t;case 16:n=t.elementType;e:{switch(Ss(e,t),e=t.pendingProps,i=n._init,n=i(n._payload),t.type=n,i=t.tag=o2(n),e=Yt(n,e),i){case 0:t=Hd(null,t,n,e,r);break e;case 1:t=Ny(null,t,n,e,r);break e;case 11:t=ky(null,t,n,e,r);break e;case 14:t=$y(null,t,n,Yt(n.type,e),r);break e}throw Error(U(306,n,""))}return t;case 0:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:Yt(n,i),Hd(e,t,n,i,r);case 1:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:Yt(n,i),Ny(e,t,n,i,r);case 3:e:{if(Nw(t),e===null)throw Error(U(387));n=t.pendingProps,a=t.memoizedState,i=a.element,iw(e,t),Us(t,n,null,r);var o=t.memoizedState;if(n=o.element,a.isDehydrated)if(a={element:n,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){i=Ki(Error(U(423)),t),t=Ty(e,t,n,r,i);break e}else if(n!==i){i=Ki(Error(U(424)),t),t=Ty(e,t,n,r,i);break e}else for(_t=ln(t.stateNode.containerInfo.firstChild),Pt=t,Se=!0,Jt=null,r=rw(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(Ui(),n===i){t=Mr(e,t,r);break e}lt(e,t,n,r)}t=t.child}return t;case 5:return aw(t),e===null&&Bd(t),n=t.type,i=t.pendingProps,a=e!==null?e.memoizedProps:null,o=i.children,Md(n,i)?o=null:a!==null&&Md(n,a)&&(t.flags|=32),$w(e,t),lt(e,t,o,r),t.child;case 6:return e===null&&Bd(t),null;case 13:return Tw(e,t,r);case 4:return nv(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=Wi(t,null,n,r):lt(e,t,n,r),t.child;case 11:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:Yt(n,i),ky(e,t,n,i,r);case 7:return lt(e,t,t.pendingProps,r),t.child;case 8:return lt(e,t,t.pendingProps.children,r),t.child;case 12:return lt(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(n=t.type._context,i=t.pendingProps,a=t.memoizedProps,o=i.value,me(zs,n._currentValue),n._currentValue=o,a!==null)if(ar(a.value,o)){if(a.children===i.children&&!yt.current){t=Mr(e,t,r);break e}}else for(a=t.child,a!==null&&(a.return=t);a!==null;){var l=a.dependencies;if(l!==null){o=a.child;for(var s=l.firstContext;s!==null;){if(s.context===n){if(a.tag===1){s=Ar(-1,r&-r),s.tag=2;var u=a.updateQueue;if(u!==null){u=u.shared;var f=u.pending;f===null?s.next=s:(s.next=f.next,f.next=s),u.pending=s}}a.lanes|=r,s=a.alternate,s!==null&&(s.lanes|=r),zd(a.return,r,t),l.lanes|=r;break}s=s.next}}else if(a.tag===10)o=a.type===t.type?null:a.child;else if(a.tag===18){if(o=a.return,o===null)throw Error(U(341));o.lanes|=r,l=o.alternate,l!==null&&(l.lanes|=r),zd(o,r,t),o=a.sibling}else o=a.child;if(o!==null)o.return=a;else for(o=a;o!==null;){if(o===t){o=null;break}if(a=o.sibling,a!==null){a.return=o.return,o=a;break}o=o.return}a=o}lt(e,t,i.children,r),t=t.child}return t;case 9:return i=t.type,n=t.pendingProps.children,Mi(t,r),i=Ut(i),n=n(i),t.flags|=1,lt(e,t,n,r),t.child;case 14:return n=t.type,i=Yt(n,t.pendingProps),i=Yt(n.type,i),$y(e,t,n,i,r);case 15:return Ew(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:Yt(n,i),Ss(e,t),t.tag=1,gt(n)?(e=!0,Ls(t)):e=!1,Mi(t,r),_w(t,n,i),Ud(t,n,i,r),Kd(null,t,n,!0,e,r);case 19:return Cw(e,t,r);case 22:return kw(e,t,r)}throw Error(U(156,t.tag))};function qw(e,t){return S1(e,t)}function a2(e,t,r,n){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Rt(e,t,r,n){return new a2(e,t,r,n)}function gv(e){return e=e.prototype,!(!e||!e.isReactComponent)}function o2(e){if(typeof e=="function")return gv(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Lh)return 11;if(e===Rh)return 14}return 2}function fn(e,t){var r=e.alternate;return r===null?(r=Rt(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function _s(e,t,r,n,i,a){var o=2;if(n=e,typeof e=="function")gv(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case mi:return Hn(r.children,i,a,t);case Dh:o=8,i|=8;break;case dd:return e=Rt(12,r,t,i|2),e.elementType=dd,e.lanes=a,e;case pd:return e=Rt(13,r,t,i),e.elementType=pd,e.lanes=a,e;case hd:return e=Rt(19,r,t,i),e.elementType=hd,e.lanes=a,e;case a1:return cc(r,i,a,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case n1:o=10;break e;case i1:o=9;break e;case Lh:o=11;break e;case Rh:o=14;break e;case Vr:o=16,n=null;break e}throw Error(U(130,e==null?e:typeof e,""))}return t=Rt(o,r,t,i),t.elementType=e,t.type=n,t.lanes=a,t}function Hn(e,t,r,n){return e=Rt(7,e,n,t),e.lanes=r,e}function cc(e,t,r,n){return e=Rt(22,e,n,t),e.elementType=a1,e.lanes=r,e.stateNode={isHidden:!1},e}function Nf(e,t,r){return e=Rt(6,e,null,t),e.lanes=r,e}function Tf(e,t,r){return t=Rt(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function l2(e,t,r,n,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=df(0),this.expirationTimes=df(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=df(0),this.identifierPrefix=n,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function xv(e,t,r,n,i,a,o,l,s){return e=new l2(e,t,r,l,s),t===1?(t=1,a===!0&&(t|=8)):t=0,a=Rt(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},rv(a),e}function s2(e,t,r){var n=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:vi,key:n==null?null:""+n,children:e,containerInfo:t,implementation:r}}function Yw(e){if(!e)return mn;e=e._reactInternals;e:{if(ii(e)!==e||e.tag!==1)throw Error(U(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(gt(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(U(171))}if(e.tag===1){var r=e.type;if(gt(r))return Y1(e,r,t)}return t}function Qw(e,t,r,n,i,a,o,l,s){return e=xv(r,n,!0,e,i,a,o,l,s),e.context=Yw(null),r=e.current,n=ut(),i=cn(r),a=Ar(n,i),a.callback=t??null,sn(r,a,i),e.current.lanes=i,bl(e,i,n),xt(e,n),e}function fc(e,t,r,n){var i=t.current,a=ut(),o=cn(i);return r=Yw(r),t.context===null?t.context=r:t.pendingContext=r,t=Ar(a,o),t.payload={element:e},n=n===void 0?null:n,n!==null&&(t.callback=n),e=sn(i,t,o),e!==null&&(nr(e,i,o,a),xs(e,i,o)),o}function Ys(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function Uy(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var r=e.retryLane;e.retryLane=r!==0&&r<t?r:t}}function bv(e,t){Uy(e,t),(e=e.alternate)&&Uy(e,t)}function u2(){return null}var Zw=typeof reportError=="function"?reportError:function(e){console.error(e)};function wv(e){this._internalRoot=e}dc.prototype.render=wv.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(U(409));fc(e,t,null,null)};dc.prototype.unmount=wv.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Qn(function(){fc(null,e,null,null)}),t[Tr]=null}};function dc(e){this._internalRoot=e}dc.prototype.unstable_scheduleHydration=function(e){if(e){var t=k1();e={blockedOn:null,target:e,priority:t};for(var r=0;r<qr.length&&t!==0&&t<qr[r].priority;r++);qr.splice(r,0,e),r===0&&N1(e)}};function Sv(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function pc(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Wy(){}function c2(e,t,r,n,i){if(i){if(typeof n=="function"){var a=n;n=function(){var u=Ys(o);a.call(u)}}var o=Qw(t,n,e,0,null,!1,!1,"",Wy);return e._reactRootContainer=o,e[Tr]=o.current,Po(e.nodeType===8?e.parentNode:e),Qn(),o}for(;i=e.lastChild;)e.removeChild(i);if(typeof n=="function"){var l=n;n=function(){var u=Ys(s);l.call(u)}}var s=xv(e,0,!1,null,null,!1,!1,"",Wy);return e._reactRootContainer=s,e[Tr]=s.current,Po(e.nodeType===8?e.parentNode:e),Qn(function(){fc(t,s,r,n)}),s}function hc(e,t,r,n,i){var a=r._reactRootContainer;if(a){var o=a;if(typeof i=="function"){var l=i;i=function(){var s=Ys(o);l.call(s)}}fc(t,o,e,i)}else o=c2(r,t,e,i,n);return Ys(o)}A1=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var r=eo(t.pendingLanes);r!==0&&(Fh(t,r|1),xt(t,Te()),!(ae&6)&&(Vi=Te()+500,xn()))}break;case 13:Qn(function(){var n=Cr(e,1);if(n!==null){var i=ut();nr(n,e,1,i)}}),bv(e,1)}};Uh=function(e){if(e.tag===13){var t=Cr(e,134217728);if(t!==null){var r=ut();nr(t,e,134217728,r)}bv(e,134217728)}};E1=function(e){if(e.tag===13){var t=cn(e),r=Cr(e,t);if(r!==null){var n=ut();nr(r,e,t,n)}bv(e,t)}};k1=function(){return ue};$1=function(e,t){var r=ue;try{return ue=e,t()}finally{ue=r}};jd=function(e,t,r){switch(t){case"input":if(yd(e,r),t=r.name,r.type==="radio"&&t!=null){for(r=e;r.parentNode;)r=r.parentNode;for(r=r.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<r.length;t++){var n=r[t];if(n!==e&&n.form===e.form){var i=ic(n);if(!i)throw Error(U(90));l1(n),yd(n,i)}}}break;case"textarea":u1(e,r);break;case"select":t=r.value,t!=null&&$i(e,!!r.multiple,t,!1)}};m1=vv;y1=Qn;var f2={usingClientEntryPoint:!1,Events:[Sl,bi,ic,h1,v1,vv]},Fa={findFiberByHostInstance:In,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},d2={bundleType:Fa.bundleType,version:Fa.version,rendererPackageName:Fa.rendererPackageName,rendererConfig:Fa.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Br.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=b1(e),e===null?null:e.stateNode},findFiberByHostInstance:Fa.findFiberByHostInstance||u2,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Zl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Zl.isDisabled&&Zl.supportsFiber)try{ec=Zl.inject(d2),pr=Zl}catch{}}kt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=f2;kt.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Sv(t))throw Error(U(200));return s2(e,t,null,r)};kt.createRoot=function(e,t){if(!Sv(e))throw Error(U(299));var r=!1,n="",i=Zw;return t!=null&&(t.unstable_strictMode===!0&&(r=!0),t.identifierPrefix!==void 0&&(n=t.identifierPrefix),t.onRecoverableError!==void 0&&(i=t.onRecoverableError)),t=xv(e,1,!1,null,null,r,!1,n,i),e[Tr]=t.current,Po(e.nodeType===8?e.parentNode:e),new wv(t)};kt.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(U(188)):(e=Object.keys(e).join(","),Error(U(268,e)));return e=b1(t),e=e===null?null:e.stateNode,e};kt.flushSync=function(e){return Qn(e)};kt.hydrate=function(e,t,r){if(!pc(t))throw Error(U(200));return hc(null,e,t,!0,r)};kt.hydrateRoot=function(e,t,r){if(!Sv(e))throw Error(U(405));var n=r!=null&&r.hydratedSources||null,i=!1,a="",o=Zw;if(r!=null&&(r.unstable_strictMode===!0&&(i=!0),r.identifierPrefix!==void 0&&(a=r.identifierPrefix),r.onRecoverableError!==void 0&&(o=r.onRecoverableError)),t=Qw(t,null,e,1,r??null,i,!1,a,o),e[Tr]=t.current,Po(e),n)for(e=0;e<n.length;e++)r=n[e],i=r._getVersion,i=i(r._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[r,i]:t.mutableSourceEagerHydrationData.push(r,i);return new dc(t)};kt.render=function(e,t,r){if(!pc(t))throw Error(U(200));return hc(null,e,t,!1,r)};kt.unmountComponentAtNode=function(e){if(!pc(e))throw Error(U(40));return e._reactRootContainer?(Qn(function(){hc(null,null,e,!1,function(){e._reactRootContainer=null,e[Tr]=null})}),!0):!1};kt.unstable_batchedUpdates=vv;kt.unstable_renderSubtreeIntoContainer=function(e,t,r,n){if(!pc(r))throw Error(U(200));if(e==null||e._reactInternals===void 0)throw Error(U(38));return hc(e,t,r,!1,n)};kt.version="18.3.1-next-f1338f8080-20240426";function Jw(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Jw)}catch(e){console.error(e)}}Jw(),Jb.exports=kt;var p2=Jb.exports,Hy=p2;cd.createRoot=Hy.createRoot,cd.hydrateRoot=Hy.hydrateRoot;/**
+ * @remix-run/router v1.23.2
+ *
+ * Copyright (c) Remix Software Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */function Io(){return Io=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Io.apply(this,arguments)}var en;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(en||(en={}));const Ky="popstate";function h2(e){e===void 0&&(e={});function t(n,i){let{pathname:a,search:o,hash:l}=n.location;return np("",{pathname:a,search:o,hash:l},i.state&&i.state.usr||null,i.state&&i.state.key||"default")}function r(n,i){return typeof i=="string"?i:Qs(i)}return m2(t,r,null,e)}function Ie(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Ov(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function v2(){return Math.random().toString(36).substr(2,8)}function Vy(e,t){return{usr:e.state,key:e.key,idx:t}}function np(e,t,r,n){return r===void 0&&(r=null),Io({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?ga(t):t,{state:r,key:t&&t.key||n||v2()})}function Qs(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function ga(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function m2(e,t,r,n){n===void 0&&(n={});let{window:i=document.defaultView,v5Compat:a=!1}=n,o=i.history,l=en.Pop,s=null,u=f();u==null&&(u=0,o.replaceState(Io({},o.state,{idx:u}),""));function f(){return(o.state||{idx:null}).idx}function c(){l=en.Pop;let g=f(),m=g==null?null:g-u;u=g,s&&s({action:l,location:b.location,delta:m})}function p(g,m){l=en.Push;let v=np(b.location,g,m);u=f()+1;let x=Vy(v,u),O=b.createHref(v);try{o.pushState(x,"",O)}catch(w){if(w instanceof DOMException&&w.name==="DataCloneError")throw w;i.location.assign(O)}a&&s&&s({action:l,location:b.location,delta:1})}function h(g,m){l=en.Replace;let v=np(b.location,g,m);u=f();let x=Vy(v,u),O=b.createHref(v);o.replaceState(x,"",O),a&&s&&s({action:l,location:b.location,delta:0})}function y(g){let m=i.location.origin!=="null"?i.location.origin:i.location.href,v=typeof g=="string"?g:Qs(g);return v=v.replace(/ $/,"%20"),Ie(m,"No window.location.(origin|href) available to create URL for href: "+v),new URL(v,m)}let b={get action(){return l},get location(){return e(i,o)},listen(g){if(s)throw new Error("A history only accepts one active listener");return i.addEventListener(Ky,c),s=g,()=>{i.removeEventListener(Ky,c),s=null}},createHref(g){return t(i,g)},createURL:y,encodeLocation(g){let m=y(g);return{pathname:m.pathname,search:m.search,hash:m.hash}},push:p,replace:h,go(g){return o.go(g)}};return b}var Gy;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(Gy||(Gy={}));function y2(e,t,r){return r===void 0&&(r="/"),g2(e,t,r)}function g2(e,t,r,n){let i=typeof t=="string"?ga(t):t,a=jv(i.pathname||"/",r);if(a==null)return null;let o=eS(e);x2(o);let l=null;for(let s=0;l==null&&s<o.length;++s){let u=N2(a);l=E2(o[s],u)}return l}function eS(e,t,r,n){t===void 0&&(t=[]),r===void 0&&(r=[]),n===void 0&&(n="");let i=(a,o,l)=>{let s={relativePath:l===void 0?a.path||"":l,caseSensitive:a.caseSensitive===!0,childrenIndex:o,route:a};s.relativePath.startsWith("/")&&(Ie(s.relativePath.startsWith(n),'Absolute route path "'+s.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),s.relativePath=s.relativePath.slice(n.length));let u=dn([n,s.relativePath]),f=r.concat(s);a.children&&a.children.length>0&&(Ie(a.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),eS(a.children,t,f,u)),!(a.path==null&&!a.index)&&t.push({path:u,score:P2(u,a.index),routesMeta:f})};return e.forEach((a,o)=>{var l;if(a.path===""||!((l=a.path)!=null&&l.includes("?")))i(a,o);else for(let s of tS(a.path))i(a,o,s)}),t}function tS(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,i=r.endsWith("?"),a=r.replace(/\?$/,"");if(n.length===0)return i?[a,""]:[a];let o=tS(n.join("/")),l=[];return l.push(...o.map(s=>s===""?a:[a,s].join("/"))),i&&l.push(...o),l.map(s=>e.startsWith("/")&&s===""?"/":s)}function x2(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:A2(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const b2=/^:[\w-]+$/,w2=3,S2=2,O2=1,j2=10,_2=-2,Xy=e=>e==="*";function P2(e,t){let r=e.split("/"),n=r.length;return r.some(Xy)&&(n+=_2),t&&(n+=S2),r.filter(i=>!Xy(i)).reduce((i,a)=>i+(b2.test(a)?w2:a===""?O2:j2),n)}function A2(e,t){return e.length===t.length&&e.slice(0,-1).every((n,i)=>n===t[i])?e[e.length-1]-t[t.length-1]:0}function E2(e,t,r){let{routesMeta:n}=e,i={},a="/",o=[];for(let l=0;l<n.length;++l){let s=n[l],u=l===n.length-1,f=a==="/"?t:t.slice(a.length)||"/",c=k2({path:s.relativePath,caseSensitive:s.caseSensitive,end:u},f),p=s.route;if(!c)return null;Object.assign(i,c.params),o.push({params:i,pathname:dn([a,c.pathname]),pathnameBase:D2(dn([a,c.pathnameBase])),route:p}),c.pathnameBase!=="/"&&(a=dn([a,c.pathnameBase]))}return o}function k2(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=$2(e.path,e.caseSensitive,e.end),i=t.match(r);if(!i)return null;let a=i[0],o=a.replace(/(.)\/+$/,"$1"),l=i.slice(1);return{params:n.reduce((u,f,c)=>{let{paramName:p,isOptional:h}=f;if(p==="*"){let b=l[c]||"";o=a.slice(0,a.length-b.length).replace(/(.)\/+$/,"$1")}const y=l[c];return h&&!y?u[p]=void 0:u[p]=(y||"").replace(/%2F/g,"/"),u},{}),pathname:a,pathnameBase:o,pattern:e}}function $2(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),Ov(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let n=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,l,s)=>(n.push({paramName:l,isOptional:s!=null}),s?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),n]}function N2(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Ov(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function jv(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}const T2=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,C2=e=>T2.test(e);function M2(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:i=""}=typeof e=="string"?ga(e):e,a;if(r)if(C2(r))a=r;else{if(r.includes("//")){let o=r;r=r.replace(/\/\/+/g,"/"),Ov(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+r))}r.startsWith("/")?a=qy(r.substring(1),"/"):a=qy(r,t)}else a=t;return{pathname:a,search:L2(n),hash:R2(i)}}function qy(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?r.length>1&&r.pop():i!=="."&&r.push(i)}),r.length>1?r.join("/"):"/"}function Cf(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(n)+"]. Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function I2(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function rS(e,t){let r=I2(e);return t?r.map((n,i)=>i===r.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function nS(e,t,r,n){n===void 0&&(n=!1);let i;typeof e=="string"?i=ga(e):(i=Io({},e),Ie(!i.pathname||!i.pathname.includes("?"),Cf("?","pathname","search",i)),Ie(!i.pathname||!i.pathname.includes("#"),Cf("#","pathname","hash",i)),Ie(!i.search||!i.search.includes("#"),Cf("#","search","hash",i)));let a=e===""||i.pathname==="",o=a?"/":i.pathname,l;if(o==null)l=r;else{let c=t.length-1;if(!n&&o.startsWith("..")){let p=o.split("/");for(;p[0]==="..";)p.shift(),c-=1;i.pathname=p.join("/")}l=c>=0?t[c]:"/"}let s=M2(i,l),u=o&&o!=="/"&&o.endsWith("/"),f=(a||o===".")&&r.endsWith("/");return!s.pathname.endsWith("/")&&(u||f)&&(s.pathname+="/"),s}const dn=e=>e.join("/").replace(/\/\/+/g,"/"),D2=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),L2=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,R2=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function B2(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const iS=["post","put","patch","delete"];new Set(iS);const z2=["get",...iS];new Set(z2);/**
+ * React Router v6.30.3
+ *
+ * Copyright (c) Remix Software Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */function Do(){return Do=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Do.apply(this,arguments)}const _v=P.createContext(null),F2=P.createContext(null),ai=P.createContext(null),vc=P.createContext(null),bn=P.createContext({outlet:null,matches:[],isDataRoute:!1}),aS=P.createContext(null);function U2(e,t){let{relative:r}=t===void 0?{}:t;jl()||Ie(!1);let{basename:n,navigator:i}=P.useContext(ai),{hash:a,pathname:o,search:l}=lS(e,{relative:r}),s=o;return n!=="/"&&(s=o==="/"?n:dn([n,o])),i.createHref({pathname:s,search:l,hash:a})}function jl(){return P.useContext(vc)!=null}function _l(){return jl()||Ie(!1),P.useContext(vc).location}function oS(e){P.useContext(ai).static||P.useLayoutEffect(e)}function mc(){let{isDataRoute:e}=P.useContext(bn);return e?nE():W2()}function W2(){jl()||Ie(!1);let e=P.useContext(_v),{basename:t,future:r,navigator:n}=P.useContext(ai),{matches:i}=P.useContext(bn),{pathname:a}=_l(),o=JSON.stringify(rS(i,r.v7_relativeSplatPath)),l=P.useRef(!1);return oS(()=>{l.current=!0}),P.useCallback(function(u,f){if(f===void 0&&(f={}),!l.current)return;if(typeof u=="number"){n.go(u);return}let c=nS(u,JSON.parse(o),a,f.relative==="path");e==null&&t!=="/"&&(c.pathname=c.pathname==="/"?t:dn([t,c.pathname])),(f.replace?n.replace:n.push)(c,f.state,f)},[t,n,o,a,e])}const H2=P.createContext(null);function K2(e){let t=P.useContext(bn).outlet;return t&&P.createElement(H2.Provider,{value:e},t)}function lS(e,t){let{relative:r}=t===void 0?{}:t,{future:n}=P.useContext(ai),{matches:i}=P.useContext(bn),{pathname:a}=_l(),o=JSON.stringify(rS(i,n.v7_relativeSplatPath));return P.useMemo(()=>nS(e,JSON.parse(o),a,r==="path"),[e,o,a,r])}function V2(e,t){return G2(e,t)}function G2(e,t,r,n){jl()||Ie(!1);let{navigator:i}=P.useContext(ai),{matches:a}=P.useContext(bn),o=a[a.length-1],l=o?o.params:{};o&&o.pathname;let s=o?o.pathnameBase:"/";o&&o.route;let u=_l(),f;if(t){var c;let g=typeof t=="string"?ga(t):t;s==="/"||(c=g.pathname)!=null&&c.startsWith(s)||Ie(!1),f=g}else f=u;let p=f.pathname||"/",h=p;if(s!=="/"){let g=s.replace(/^\//,"").split("/");h="/"+p.replace(/^\//,"").split("/").slice(g.length).join("/")}let y=y2(e,{pathname:h}),b=Z2(y&&y.map(g=>Object.assign({},g,{params:Object.assign({},l,g.params),pathname:dn([s,i.encodeLocation?i.encodeLocation(g.pathname).pathname:g.pathname]),pathnameBase:g.pathnameBase==="/"?s:dn([s,i.encodeLocation?i.encodeLocation(g.pathnameBase).pathname:g.pathnameBase])})),a,r,n);return t&&b?P.createElement(vc.Provider,{value:{location:Do({pathname:"/",search:"",hash:"",state:null,key:"default"},f),navigationType:en.Pop}},b):b}function X2(){let e=rE(),t=B2(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,i={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return P.createElement(P.Fragment,null,P.createElement("h2",null,"Unexpected Application Error!"),P.createElement("h3",{style:{fontStyle:"italic"}},t),r?P.createElement("pre",{style:i},r):null,null)}const q2=P.createElement(X2,null);class Y2 extends P.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error!==void 0?P.createElement(bn.Provider,{value:this.props.routeContext},P.createElement(aS.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Q2(e){let{routeContext:t,match:r,children:n}=e,i=P.useContext(_v);return i&&i.static&&i.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=r.route.id),P.createElement(bn.Provider,{value:t},n)}function Z2(e,t,r,n){var i;if(t===void 0&&(t=[]),r===void 0&&(r=null),n===void 0&&(n=null),e==null){var a;if(!r)return null;if(r.errors)e=r.matches;else if((a=n)!=null&&a.v7_partialHydration&&t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,l=(i=r)==null?void 0:i.errors;if(l!=null){let f=o.findIndex(c=>c.route.id&&(l==null?void 0:l[c.route.id])!==void 0);f>=0||Ie(!1),o=o.slice(0,Math.min(o.length,f+1))}let s=!1,u=-1;if(r&&n&&n.v7_partialHydration)for(let f=0;f<o.length;f++){let c=o[f];if((c.route.HydrateFallback||c.route.hydrateFallbackElement)&&(u=f),c.route.id){let{loaderData:p,errors:h}=r,y=c.route.loader&&p[c.route.id]===void 0&&(!h||h[c.route.id]===void 0);if(c.route.lazy||y){s=!0,u>=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((f,c,p)=>{let h,y=!1,b=null,g=null;r&&(h=l&&c.route.id?l[c.route.id]:void 0,b=c.route.errorElement||q2,s&&(u<0&&p===0?(iE("route-fallback"),y=!0,g=null):u===p&&(y=!0,g=c.route.hydrateFallbackElement||null)));let m=t.concat(o.slice(0,p+1)),v=()=>{let x;return h?x=b:y?x=g:c.route.Component?x=P.createElement(c.route.Component,null):c.route.element?x=c.route.element:x=f,P.createElement(Q2,{match:c,routeContext:{outlet:f,matches:m,isDataRoute:r!=null},children:x})};return r&&(c.route.ErrorBoundary||c.route.errorElement||p===0)?P.createElement(Y2,{location:r.location,revalidation:r.revalidation,component:b,error:h,children:v(),routeContext:{outlet:null,matches:m,isDataRoute:!0}}):v()},null)}var sS=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(sS||{}),uS=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(uS||{});function J2(e){let t=P.useContext(_v);return t||Ie(!1),t}function eE(e){let t=P.useContext(F2);return t||Ie(!1),t}function tE(e){let t=P.useContext(bn);return t||Ie(!1),t}function cS(e){let t=tE(),r=t.matches[t.matches.length-1];return r.route.id||Ie(!1),r.route.id}function rE(){var e;let t=P.useContext(aS),r=eE(),n=cS();return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function nE(){let{router:e}=J2(sS.UseNavigateStable),t=cS(uS.UseNavigateStable),r=P.useRef(!1);return oS(()=>{r.current=!0}),P.useCallback(function(i,a){a===void 0&&(a={}),r.current&&(typeof i=="number"?e.navigate(i):e.navigate(i,Do({fromRouteId:t},a)))},[e,t])}const Yy={};function iE(e,t,r){Yy[e]||(Yy[e]=!0)}function aE(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function oE(e){return K2(e.context)}function qt(e){Ie(!1)}function lE(e){let{basename:t="/",children:r=null,location:n,navigationType:i=en.Pop,navigator:a,static:o=!1,future:l}=e;jl()&&Ie(!1);let s=t.replace(/^\/*/,"/"),u=P.useMemo(()=>({basename:s,navigator:a,static:o,future:Do({v7_relativeSplatPath:!1},l)}),[s,l,a,o]);typeof n=="string"&&(n=ga(n));let{pathname:f="/",search:c="",hash:p="",state:h=null,key:y="default"}=n,b=P.useMemo(()=>{let g=jv(f,s);return g==null?null:{location:{pathname:g,search:c,hash:p,state:h,key:y},navigationType:i}},[s,f,c,p,h,y,i]);return b==null?null:P.createElement(ai.Provider,{value:u},P.createElement(vc.Provider,{children:r,value:b}))}function sE(e){let{children:t,location:r}=e;return V2(ip(t),r)}new Promise(()=>{});function ip(e,t){t===void 0&&(t=[]);let r=[];return P.Children.forEach(e,(n,i)=>{if(!P.isValidElement(n))return;let a=[...t,i];if(n.type===P.Fragment){r.push.apply(r,ip(n.props.children,a));return}n.type!==qt&&Ie(!1),!n.props.index||!n.props.children||Ie(!1);let o={id:n.props.id||a.join("-"),caseSensitive:n.props.caseSensitive,element:n.props.element,Component:n.props.Component,index:n.props.index,path:n.props.path,loader:n.props.loader,action:n.props.action,errorElement:n.props.errorElement,ErrorBoundary:n.props.ErrorBoundary,hasErrorBoundary:n.props.ErrorBoundary!=null||n.props.errorElement!=null,shouldRevalidate:n.props.shouldRevalidate,handle:n.props.handle,lazy:n.props.lazy};n.props.children&&(o.children=ip(n.props.children,a)),r.push(o)}),r}/**
+ * React Router DOM v6.30.3
+ *
+ * Copyright (c) Remix Software Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */function ap(){return ap=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ap.apply(this,arguments)}function uE(e,t){if(e==null)return{};var r={},n=Object.keys(e),i,a;for(a=0;a<n.length;a++)i=n[a],!(t.indexOf(i)>=0)&&(r[i]=e[i]);return r}function cE(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function fE(e,t){return e.button===0&&(!t||t==="_self")&&!cE(e)}const dE=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],pE="6";try{window.__reactRouterVersion=pE}catch{}const hE="startTransition",Qy=rP[hE];function vE(e){let{basename:t,children:r,future:n,window:i}=e,a=P.useRef();a.current==null&&(a.current=h2({window:i,v5Compat:!0}));let o=a.current,[l,s]=P.useState({action:o.action,location:o.location}),{v7_startTransition:u}=n||{},f=P.useCallback(c=>{u&&Qy?Qy(()=>s(c)):s(c)},[s,u]);return P.useLayoutEffect(()=>o.listen(f),[o,f]),P.useEffect(()=>aE(n),[n]),P.createElement(lE,{basename:t,children:r,location:l.location,navigationType:l.action,navigator:o,future:n})}const mE=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",yE=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Ps=P.forwardRef(function(t,r){let{onClick:n,relative:i,reloadDocument:a,replace:o,state:l,target:s,to:u,preventScrollReset:f,viewTransition:c}=t,p=uE(t,dE),{basename:h}=P.useContext(ai),y,b=!1;if(typeof u=="string"&&yE.test(u)&&(y=u,mE))try{let x=new URL(window.location.href),O=u.startsWith("//")?new URL(x.protocol+u):new URL(u),w=jv(O.pathname,h);O.origin===x.origin&&w!=null?u=w+O.search+O.hash:b=!0}catch{}let g=U2(u,{relative:i}),m=gE(u,{replace:o,state:l,target:s,preventScrollReset:f,relative:i,viewTransition:c});function v(x){n&&n(x),x.defaultPrevented||m(x)}return P.createElement("a",ap({},p,{href:y||g,onClick:b||a?n:v,ref:r,target:s}))});var Zy;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Zy||(Zy={}));var Jy;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Jy||(Jy={}));function gE(e,t){let{target:r,replace:n,state:i,preventScrollReset:a,relative:o,viewTransition:l}=t===void 0?{}:t,s=mc(),u=_l(),f=lS(e,{relative:o});return P.useCallback(c=>{if(fE(c,r)){c.preventDefault();let p=n!==void 0?n:Qs(u)===Qs(f);s(e,{replace:p,state:i,preventScrollReset:a,relative:o,viewTransition:l})}},[u,s,f,n,i,r,e,a,o,l])}const xE="/api";async function xa(e,t={}){const r=await fetch(`${xE}${e}`,{...t,credentials:"same-origin",headers:{"Content-Type":"application/json",...t.headers}});return r.status===401&&!e.startsWith("/auth/")?(window.location.href="/login",{}):r.json()}async function de(e,t){return xa(e,{method:"POST",body:JSON.stringify(t)})}async function Pv(){try{return(await xa("/auth/session")).authenticated===!0}catch{return!1}}async function bE(e,t){return(await de("/auth/login",{username:e,password:t})).success===!0}async function wE(e){return await de("/auth/google",{credential:e})}async function SE(){try{return await xa("/auth/google-config")}catch{return{configured:!1}}}async function OE(){await de("/auth/logout",{}),window.location.href="/login"}function jE(){const[e,t]=P.useState(""),[r,n]=P.useState(""),[i,a]=P.useState(!1),[o,l]=P.useState(""),[s,u]=P.useState(!1),[f,c]=P.useState(!0),[p,h]=P.useState(!1),[y,b]=P.useState(null),g=P.useRef(null),m=mc();P.useEffect(()=>{Pv().then(S=>{S?m("/"):c(!1)}),SE().then(S=>{S.configured&&S.client_id&&(b(S.client_id),v(S.client_id))})},[]);function v(S){if(document.getElementById("google-gsi")){x(S);return}const j=document.createElement("script");j.id="google-gsi",j.src="https://accounts.google.com/gsi/client",j.async=!0,j.defer=!0,j.onload=()=>x(S),document.head.appendChild(j)}function x(S){var j,_;(_=(j=window.google)==null?void 0:j.accounts)!=null&&_.id&&(window.google.accounts.id.initialize({client_id:S,callback:O,auto_select:!1}),h(!0))}P.useEffect(()=>{var S,j;p&&g.current&&((j=(S=window.google)==null?void 0:S.accounts)!=null&&j.id)&&window.google.accounts.id.renderButton(g.current,{type:"standard",theme:"filled_black",size:"large",text:"signin_with",shape:"pill",width:360})},[p]);async function O(S){l(""),u(!0);try{const j=await wE(S.credential);j.success?m("/"):l(j.error||"Google login failed")}catch{l("Connection error")}u(!1)}async function w(S){S.preventDefault(),l(""),u(!0);try{await bE(e,r)?m("/"):l("Invalid credentials")}catch{l("Connection error")}u(!1)}return f?d.jsx("div",{className:"min-h-screen flex items-center justify-center",children:d.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})}):d.jsx("div",{className:"min-h-screen flex items-center justify-center p-4",children:d.jsxs("div",{className:"w-full max-w-md",children:[d.jsxs("div",{className:"text-center mb-8",children:[d.jsx("div",{className:"inline-flex items-center justify-center w-20 h-20 rounded-2xl mb-4",style:{background:"linear-gradient(135deg,#f59e0b,#f97316)"},children:d.jsx("span",{className:"text-3xl font-black text-black",children:"K"})}),d.jsx("h1",{className:"text-3xl font-extrabold kalshi-gradient",children:"KALSHI TRADER"}),d.jsx("p",{className:"text-gray-400 mt-2 text-sm",children:"Event Contracts Trading System"}),d.jsx("p",{className:"text-xs text-green-400 mt-1",children:"CFTC-Regulated DCM"})]}),o&&d.jsxs("div",{className:"text-red-400 text-sm bg-red-500/10 rounded-lg p-3 flex items-center gap-2 mb-4",children:[d.jsx("svg",{className:"w-4 h-4 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})}),o]}),y&&d.jsxs("div",{className:"mb-4",children:[d.jsx("div",{ref:g,className:"flex justify-center"}),d.jsxs("div",{className:"relative my-5",children:[d.jsx("div",{className:"absolute inset-0 flex items-center",children:d.jsx("div",{className:"w-full border-t border-gray-800"})}),d.jsx("div",{className:"relative flex justify-center text-xs",children:d.jsx("span",{className:"px-3 text-gray-500",style:{background:"var(--bg)"},children:"or sign in with password"})})]})]}),d.jsxs("form",{onSubmit:w,className:"card space-y-4",children:[d.jsxs("div",{children:[d.jsx("label",{className:"block text-xs font-medium text-gray-400 mb-1.5",children:"Username"}),d.jsx("input",{type:"text",value:e,onChange:S=>t(S.target.value),required:!0,autoComplete:"username",className:"w-full bg-gray-800/50 border border-gray-700 rounded-lg px-3 py-2.5 text-sm focus:outline-none focus:border-amber-500 transition",placeholder:"admin"})]}),d.jsxs("div",{children:[d.jsx("label",{className:"block text-xs font-medium text-gray-400 mb-1.5",children:"Password"}),d.jsxs("div",{className:"relative",children:[d.jsx("input",{type:i?"text":"password",value:r,onChange:S=>n(S.target.value),required:!0,autoComplete:"current-password",className:"w-full bg-gray-800/50 border border-gray-700 rounded-lg px-3 py-2.5 pr-10 text-sm focus:outline-none focus:border-amber-500 transition",placeholder:"Enter password"}),d.jsx("button",{type:"button",onClick:()=>a(!i),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-500 hover:text-gray-300",children:d.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:i?"M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.878 9.878L3 3m6.878 6.879L21 21":"M15 12a3 3 0 11-6 0 3 3 0 016 0z M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"})})})]})]}),d.jsxs("button",{type:"submit",disabled:s,className:"btn btn-p w-full py-2.5 flex items-center justify-center gap-2 disabled:opacity-50",children:[s&&d.jsx("span",{className:"animate-spin w-4 h-4 border-2 border-black border-t-transparent rounded-full"}),s?"Signing in...":"Sign In"]})]}),d.jsx("p",{className:"text-center text-gray-600 text-[10px] mt-4",children:"Kalshi operates as a CFTC-regulated Designated Contract Market"})]})})}const _E=[{to:"/",label:"Dashboard",d:"M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"},{to:"/markets",label:"Markets",d:"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"},{to:"/positions",label:"Positions",d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"},{to:"/orders",label:"Orders",d:"M8 7h12m0 0l-4-4m4 4l-4 4m0 6H4m0 0l4 4m-4-4l4-4"},{to:"/weather",label:"Weather",d:"M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z"},{to:"/risk",label:"Risk",d:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"},{to:"/settings",label:"Settings",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z"}];function PE(){const e=_l(),t=mc(),[r,n]=P.useState(null),[i,a]=P.useState(!1),[o,l]=P.useState(!1);return P.useEffect(()=>{Pv().then(s=>{if(!s){t("/login");return}l(!0);const u=()=>xa("/health").then(n).catch(()=>{});u();const f=setInterval(u,15e3);return()=>clearInterval(f)})},[]),o?d.jsxs("div",{className:"flex min-h-screen",children:[d.jsxs("aside",{className:`${i?"w-16":"w-56"} bg-gray-900/50 border-r border-gray-800 flex flex-col transition-all duration-200`,children:[d.jsxs("div",{className:"p-4 border-b border-gray-800 flex items-center gap-3",children:[d.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{background:"linear-gradient(135deg,#f59e0b,#f97316)"},children:d.jsx("span",{className:"text-black font-bold text-sm",children:"K"})}),!i&&d.jsx("span",{className:"font-bold text-sm kalshi-gradient",children:"KALSHI TRADER"})]}),d.jsx("nav",{className:"flex-1 p-2 space-y-0.5",children:_E.map(s=>{const u=e.pathname===s.to||s.to!=="/"&&e.pathname.startsWith(s.to);return d.jsxs(Ps,{to:s.to,className:`flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition ${u?"bg-amber-500/15 text-amber-400 font-medium":"text-gray-400 hover:text-gray-200 hover:bg-gray-800/50"}`,children:[d.jsx("svg",{className:"flex-shrink-0",style:{width:18,height:18},fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:s.d})}),!i&&d.jsx("span",{children:s.label})]},s.to)})}),d.jsxs("div",{className:"p-3 border-t border-gray-800",children:[!i&&r&&d.jsxs("div",{className:"space-y-1.5 text-[11px]",children:[d.jsxs("div",{className:"flex justify-between",children:[d.jsx("span",{className:"text-gray-500",children:"Env"}),d.jsx("span",{className:r.env==="demo"?"text-yellow-400":"text-green-400",children:(r.env||"demo").toUpperCase()})]}),d.jsxs("div",{className:"flex justify-between",children:[d.jsx("span",{className:"text-gray-500",children:"API"}),d.jsx("span",{className:r.kalshi_connected?"text-green-400":"text-gray-500",children:r.kalshi_connected?"CONNECTED":"OFF"})]}),d.jsxs("div",{className:"flex justify-between",children:[d.jsx("span",{className:"text-gray-500",children:"DB"}),d.jsx("span",{className:r.db_connected?"text-green-400":"text-red-400",children:r.db_connected?"OK":"DOWN"})]}),d.jsxs("div",{className:"flex justify-between",children:[d.jsx("span",{className:"text-gray-500",children:"Safe Mode"}),d.jsx("span",{className:r.safe_mode?"text-yellow-400":"text-green-400",children:r.safe_mode?"ON":"OFF"})]})]}),d.jsxs("div",{className:"flex gap-1 mt-2",children:[d.jsx("button",{onClick:()=>a(!i),className:"flex-1 flex items-center justify-center py-1.5 text-gray-500 hover:text-gray-300",children:d.jsx("svg",{className:`w-4 h-4 transition-transform ${i?"":"rotate-180"}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M11 19l-7-7 7-7m8 14l-7-7 7-7"})})}),!i&&d.jsx("button",{onClick:OE,className:"px-2 py-1 text-xs text-gray-500 hover:text-red-400",children:"Logout"})]})]})]}),d.jsx("main",{className:"flex-1 overflow-auto",children:d.jsx("div",{className:"p-6 max-w-[1600px] mx-auto",children:d.jsx(oE,{})})})]}):d.jsx("div",{className:"flex items-center justify-center min-h-screen",children:d.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})})}const AE=[{title:"Event Contracts",desc:"Trade CFTC-regulated event contracts on weather, economics, and more",icon:"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"},{title:"Weather Intelligence",desc:"NWS forecast data + settlement normalization for weather markets",icon:"M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z"},{title:"Automated Execution",desc:"Paper or live order execution with risk limits and safe mode controls",icon:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"}],EE=["Connect to Kalshi API (demo or production)","Browse weather event contracts","Fetch NWS settlement data","Generate probability models & edges","Set risk limits & safe mode controls","Execute trades (paper or live)"];function kE({next:e}){return d.jsxs("div",{className:"space-y-8",children:[d.jsxs("div",{className:"text-center",children:[d.jsx("h1",{className:"text-4xl font-bold kalshi-gradient mb-3",children:"Welcome to Kalshi Trader"}),d.jsx("p",{className:"text-gray-400 text-lg",children:"CFTC-regulated event contracts trading"})]}),d.jsx("div",{className:"grid grid-cols-3 gap-4",children:AE.map(t=>d.jsxs("div",{className:"card text-center",children:[d.jsx("div",{className:"w-10 h-10 rounded-lg bg-amber-500/10 flex items-center justify-center mx-auto mb-3",children:d.jsx("svg",{className:"w-5 h-5 text-amber-400",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:t.icon})})}),d.jsx("h3",{className:"font-semibold text-sm mb-1",children:t.title}),d.jsx("p",{className:"text-xs text-gray-500 leading-relaxed",children:t.desc})]},t.title))}),d.jsxs("div",{className:"card",children:[d.jsx("h3",{className:"font-semibold text-sm mb-3",children:"How it works"}),d.jsx("div",{className:"grid grid-cols-2 gap-2",children:EE.map((t,r)=>d.jsxs("div",{className:"flex items-center gap-3 py-1.5",children:[d.jsx("span",{className:"w-6 h-6 rounded-full bg-amber-500/15 text-amber-400 flex items-center justify-center text-xs font-bold flex-shrink-0",children:r+1}),d.jsx("span",{className:"text-sm text-gray-300",children:t})]},r))})]}),d.jsx("div",{className:"card bg-green-500/5 border-green-500/20",children:d.jsxs("div",{className:"flex items-start gap-3",children:[d.jsx("svg",{className:"w-5 h-5 text-green-400 mt-0.5 flex-shrink-0",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"})}),d.jsxs("div",{children:[d.jsx("p",{className:"text-sm font-medium text-green-400",children:"Kalshi is a CFTC-regulated exchange"}),d.jsx("p",{className:"text-xs text-gray-400 mt-1",children:"Unlike offshore prediction markets, Kalshi operates as a Designated Contract Market. You'll need a Kalshi account with API access enabled."})]})]})}),d.jsx("div",{className:"flex justify-center",children:d.jsx("button",{onClick:e,className:"btn btn-p px-8 py-3 text-base font-bold rounded-xl",children:"Get Started"})})]})}function $E({data:e,update:t,next:r,back:n}){var g,m,v;const[i,a]=P.useState(((g=e.keys)==null?void 0:g.api_key)||""),[o,l]=P.useState(((m=e.keys)==null?void 0:m.private_key)||""),[s,u]=P.useState(((v=e.keys)==null?void 0:v.env)||"demo"),[f,c]=P.useState(!1),[p,h]=P.useState(null);async function y(){c(!0),h(null);try{const x=await de("/kalshi",{action:"save_keys",api_key:i,private_key:o,env:s});x.success?(t({keys:{api_key:i,private_key:"***",env:s}}),r()):h(x.error||"Failed to save")}catch{h("Connection error")}c(!1)}function b(){t({keys:null,skippedConnect:!0}),r()}return d.jsxs("div",{className:"space-y-6",children:[d.jsxs("div",{className:"text-center",children:[d.jsx("h2",{className:"text-2xl font-bold mb-2",children:"Connect Kalshi"}),d.jsx("p",{className:"text-gray-400 text-sm",children:"Enter your Kalshi API credentials"})]}),d.jsxs("div",{className:"card space-y-4",children:[d.jsxs("div",{children:[d.jsx("label",{className:"block text-xs text-gray-400 mb-1.5 font-medium",children:"Environment"}),d.jsxs("div",{className:"flex gap-2",children:[d.jsx("button",{onClick:()=>u("demo"),className:`flex-1 py-2 rounded-lg text-sm font-medium transition ${s==="demo"?"bg-yellow-500/15 text-yellow-400 border border-yellow-500/30":"bg-gray-800/50 text-gray-500 border border-gray-700"}`,children:"Demo (Safe)"}),d.jsx("button",{onClick:()=>u("prod"),className:`flex-1 py-2 rounded-lg text-sm font-medium transition ${s==="prod"?"bg-green-500/15 text-green-400 border border-green-500/30":"bg-gray-800/50 text-gray-500 border border-gray-700"}`,children:"Production"})]})]}),d.jsxs("div",{children:[d.jsx("label",{className:"block text-xs text-gray-400 mb-1.5 font-medium",children:"API Key ID"}),d.jsx("input",{type:"text",value:i,onChange:x=>a(x.target.value),placeholder:"Your Kalshi API key ID",className:"w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none font-mono"})]}),d.jsxs("div",{children:[d.jsx("label",{className:"block text-xs text-gray-400 mb-1.5 font-medium",children:"Private Key (PEM)"}),d.jsx("textarea",{value:o,onChange:x=>l(x.target.value),placeholder:`-----BEGIN RSA PRIVATE KEY-----
+...
+-----END RSA PRIVATE KEY-----`,rows:6,className:"w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none font-mono text-xs leading-relaxed"}),d.jsx("p",{className:"text-[10px] text-gray-600 mt-1",children:"This key is stored encrypted and never leaves this server"})]}),p&&d.jsx("p",{className:"text-red-400 text-xs",children:p})]}),d.jsxs("div",{className:"card bg-gray-800/30",children:[d.jsx("h3",{className:"text-sm font-medium mb-2",children:"Where to get your API keys"}),d.jsxs("ol",{className:"text-xs text-gray-400 space-y-1.5 list-decimal list-inside",children:[d.jsxs("li",{children:["Log into ",d.jsx("span",{className:"text-amber-400 font-mono",children:"kalshi.com"})]}),d.jsx("li",{children:"Go to Settings → API Keys"}),d.jsx("li",{children:'Click "Create API Key" — download the private key file immediately'}),d.jsx("li",{children:"Copy the API Key ID and paste the PEM contents above"})]}),d.jsx("p",{className:"text-[10px] text-red-400 mt-2",children:"The private key file cannot be downloaded again after creation!"})]}),d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("button",{onClick:n,className:"text-sm text-gray-500 hover:text-gray-300",children:"Back"}),d.jsxs("div",{className:"flex items-center gap-3",children:[d.jsx("button",{onClick:b,className:"text-sm text-gray-500 hover:text-gray-300",children:"Skip (paper only)"}),d.jsx("button",{onClick:y,disabled:f||!i||!o,className:"btn btn-p",children:f?"Saving...":"Save & Continue"})]})]})]})}function NE({data:e,update:t,next:r,back:n}){const[i,a]=P.useState(null),[o,l]=P.useState(null),[s,u]=P.useState(!0),[f,c]=P.useState(!1);P.useEffect(()=>{p()},[]);async function p(){u(!0);try{const g=await de("/kalshi",{action:"test_connection"});a(g),g.success&&e.keys&&!e.skippedConnect&&h()}catch{a({error:!0})}u(!1)}async function h(){c(!0);try{const g=await de("/kalshi",{action:"get_balance"});l(g),g.success&&t({connectionOk:!0})}catch{l({error:!0})}c(!1)}const y=e.skippedConnect,b=({title:g,loading:m,result:v,skippedMsg:x})=>d.jsxs("div",{className:"card",children:[d.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[x?d.jsx("div",{className:"w-5 h-5 rounded-full bg-yellow-500 flex items-center justify-center",children:d.jsx("span",{className:"text-white text-xs font-bold",children:"—"})}):m?d.jsx("div",{className:"animate-spin w-5 h-5 border-2 border-amber-500 border-t-transparent rounded-full"}):v!=null&&v.success?d.jsx("div",{className:"w-5 h-5 rounded-full bg-green-500 flex items-center justify-center",children:d.jsx("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",strokeWidth:"3",viewBox:"0 0 24 24",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})})}):v!=null&&v.error?d.jsx("div",{className:"w-5 h-5 rounded-full bg-red-500 flex items-center justify-center",children:d.jsx("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",strokeWidth:"3",viewBox:"0 0 24 24",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})}):d.jsx("div",{className:"w-5 h-5 rounded-full bg-gray-600"}),d.jsx("h3",{className:"font-semibold text-sm",children:g})]}),x?d.jsx("p",{className:"text-xs text-yellow-400",children:x}):v!=null&&v.success?d.jsxs("div",{className:"space-y-1 text-xs text-gray-400",children:[v.exchange_status&&d.jsxs("p",{children:["Exchange: ",d.jsx("span",{className:"text-green-400 font-mono",children:v.exchange_status})]}),v.balance!==void 0&&d.jsxs("p",{children:["Balance: ",d.jsxs("span",{className:"text-green-400 font-mono",children:["$",(v.balance/100).toFixed(2)]})]}),v.env&&d.jsxs("p",{children:["Env: ",d.jsx("span",{className:"text-amber-400 font-mono",children:v.env.toUpperCase()})]})]}):v!=null&&v.error?d.jsx("p",{className:"text-xs text-red-400",children:typeof v.error=="string"?v.error:"Connection failed"}):null]});return d.jsxs("div",{className:"space-y-6",children:[d.jsxs("div",{className:"text-center",children:[d.jsx("h2",{className:"text-2xl font-bold mb-2",children:"Test Connection"}),d.jsx("p",{className:"text-gray-400 text-sm",children:"Verifying Kalshi API access"})]}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(b,{title:"Exchange Status",loading:s,result:i}),d.jsx(b,{title:"Authenticated",loading:f,result:o,skippedMsg:y?"Skipped — paper mode only":e.keys?null:"No keys provided"})]}),!s&&!f&&d.jsx("div",{className:"flex justify-center",children:d.jsx("button",{onClick:p,className:"text-xs text-gray-500 hover:text-gray-300",children:"Retry Tests"})}),d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("button",{onClick:n,className:"text-sm text-gray-500 hover:text-gray-300",children:"Back"}),d.jsx("button",{onClick:r,className:"btn btn-p",children:"Continue"})]})]})}function TE({data:e,update:t,next:r,back:n}){var p,h;const[i,a]=P.useState(!0),[o,l]=P.useState(null),[s,u]=P.useState(null);P.useEffect(()=>{f()},[]);async function f(){var y;a(!0),u(null);try{const b=await de("/kalshi",{action:"get_events",params:{status:"open",limit:50}});l(b);const g=((y=b.events)==null?void 0:y.length)||0;t({marketsLoaded:g})}catch{u("Failed to load markets")}a(!1)}const c=((o==null?void 0:o.events)||[]).filter(y=>(y.category||"").toLowerCase().includes("climate")||(y.category||"").toLowerCase().includes("weather")||(y.title||"").toLowerCase().includes("temperature")||(y.title||"").toLowerCase().includes("rain")||(y.title||"").toLowerCase().includes("snow")||(y.title||"").toLowerCase().includes("precipitation"));return d.jsxs("div",{className:"space-y-6",children:[d.jsxs("div",{className:"text-center",children:[d.jsx("h2",{className:"text-2xl font-bold mb-2",children:"Browse Markets"}),d.jsx("p",{className:"text-gray-400 text-sm",children:"Loading event contracts from Kalshi"})]}),d.jsx("div",{className:"card",children:i?d.jsxs("div",{className:"flex flex-col items-center justify-center py-12 gap-4",children:[d.jsx("div",{className:"animate-spin w-10 h-10 border-3 border-amber-500 border-t-transparent rounded-full"}),d.jsx("p",{className:"text-sm text-gray-400",children:"Fetching markets from Kalshi..."})]}):s?d.jsxs("div",{className:"text-center py-8",children:[d.jsx("p",{className:"text-red-400 text-sm mb-3",children:s}),d.jsx("button",{onClick:f,className:"btn btn-s text-sm",children:"Retry"})]}):d.jsxs("div",{className:"space-y-4",children:[d.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[d.jsxs("div",{className:"text-center",children:[d.jsx("p",{className:"stat-v text-amber-400",children:((p=o==null?void 0:o.events)==null?void 0:p.length)||0}),d.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Total Events"})]}),d.jsxs("div",{className:"text-center",children:[d.jsx("p",{className:"stat-v text-blue-400",children:c.length}),d.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Weather Events"})]}),d.jsxs("div",{className:"text-center",children:[d.jsx("p",{className:"stat-v text-green-400",children:((h=o==null?void 0:o.markets)==null?void 0:h.length)||"—"}),d.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Contracts"})]})]}),c.length>0&&d.jsxs("div",{className:"border-t border-gray-800 pt-3",children:[d.jsx("p",{className:"text-xs text-gray-500 mb-2 uppercase font-medium",children:"Weather Events Found"}),d.jsx("div",{className:"space-y-1.5 max-h-48 overflow-y-auto",children:c.slice(0,12).map((y,b)=>d.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[d.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-amber-500 flex-shrink-0"}),d.jsx("span",{className:"text-gray-300 truncate",children:y.title}),d.jsx("span",{className:"text-gray-600 ml-auto font-mono text-[10px]",children:y.event_ticker})]},b))})]}),c.length===0&&d.jsx("p",{className:"text-center text-gray-500 text-sm py-4",children:"No weather events found — other market categories loaded"})]})}),d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("button",{onClick:n,className:"text-sm text-gray-500 hover:text-gray-300",children:"Back"}),d.jsx("button",{onClick:r,disabled:i,className:"btn btn-p",children:i?"Loading...":"Continue"})]})]})}function CE({data:e,update:t,next:r,back:n}){var c;const[i,a]=P.useState(!0),[o,l]=P.useState(null),[s,u]=P.useState(null);P.useEffect(()=>{f()},[]);async function f(){a(!0),u(null);try{const p=await de("/weather",{action:"fetch_all"});l(p),t({weatherFetched:!0})}catch{u("Failed to fetch weather data")}a(!1)}return d.jsxs("div",{className:"space-y-6",children:[d.jsxs("div",{className:"text-center",children:[d.jsx("h2",{className:"text-2xl font-bold mb-2",children:"Weather Data"}),d.jsx("p",{className:"text-gray-400 text-sm",children:"Pulling NWS forecast & settlement data"})]}),d.jsx("div",{className:"card",children:i?d.jsxs("div",{className:"flex flex-col items-center justify-center py-12 gap-4",children:[d.jsx("div",{className:"animate-spin w-10 h-10 border-3 border-blue-500 border-t-transparent rounded-full"}),d.jsx("p",{className:"text-sm text-gray-400",children:"Fetching NWS Daily Climate Reports..."})]}):s?d.jsxs("div",{className:"text-center py-8",children:[d.jsx("p",{className:"text-red-400 text-sm mb-3",children:s}),d.jsx("button",{onClick:f,className:"btn btn-s text-sm",children:"Retry"})]}):d.jsxs("div",{className:"space-y-4",children:[d.jsxs("div",{className:"flex items-center justify-center gap-3 py-4",children:[d.jsx("div",{className:"w-12 h-12 rounded-full bg-green-500/10 flex items-center justify-center",children:d.jsx("svg",{className:"w-6 h-6 text-green-400",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})})}),d.jsxs("div",{children:[d.jsx("p",{className:"font-semibold text-green-400",children:"Weather Data Loaded"}),d.jsx("p",{className:"text-xs text-gray-400",children:"Settlement-grade NWS data fetched"})]})]}),d.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[d.jsxs("div",{className:"text-center p-3 bg-gray-800/30 rounded-lg",children:[d.jsx("p",{className:"stat-v text-blue-400",children:(o==null?void 0:o.stations)||"—"}),d.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Stations"})]}),d.jsxs("div",{className:"text-center p-3 bg-gray-800/30 rounded-lg",children:[d.jsx("p",{className:"stat-v text-amber-400",children:(o==null?void 0:o.data_points)||"—"}),d.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Data Points"})]}),d.jsxs("div",{className:"text-center p-3 bg-gray-800/30 rounded-lg",children:[d.jsx("p",{className:"stat-v text-green-400",children:((c=o==null?void 0:o.metrics)==null?void 0:c.length)||"—"}),d.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Metrics"})]})]})]})}),d.jsxs("div",{className:"card bg-gray-800/30",children:[d.jsx("p",{className:"text-xs text-gray-500 mb-1 font-medium",children:"Settlement Sources"}),d.jsxs("p",{className:"text-xs text-gray-400",children:["Kalshi weather contracts settle on the ",d.jsx("span",{className:"text-amber-400",children:"final NWS Daily Climate Report"}),". Trace values = 0.00, missing = 0.00. First complete report is determinative — later revisions do not change settlement."]})]}),d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("button",{onClick:n,className:"text-sm text-gray-500 hover:text-gray-300",children:"Back"}),d.jsx("button",{onClick:r,disabled:i,className:"btn btn-p",children:i?"Fetching...":"Continue"})]})]})}function ME({data:e,update:t,next:r,back:n}){const[i,a]=P.useState(!0),[o,l]=P.useState(null),[s,u]=P.useState(null);P.useEffect(()=>{f()},[]);async function f(){a(!0),u(null);try{const h=await de("/kalshi",{action:"run_predictions"});l(h),t({predictionsRun:!0})}catch{u("Failed to generate predictions")}a(!1)}const c=(o==null?void 0:o.predictions)||[],p=c.filter(h=>(h.edge_bps||0)>0);return d.jsxs("div",{className:"space-y-6",children:[d.jsxs("div",{className:"text-center",children:[d.jsx("h2",{className:"text-2xl font-bold mb-2",children:"AI Predictions"}),d.jsx("p",{className:"text-gray-400 text-sm",children:"Generating probability models and calculating edges"})]}),d.jsx("div",{className:"card",children:i?d.jsxs("div",{className:"flex flex-col items-center justify-center py-12 gap-4",children:[d.jsx("div",{className:"animate-spin w-10 h-10 border-3 border-green-500 border-t-transparent rounded-full"}),d.jsx("p",{className:"text-sm text-gray-400",children:"Running prediction models..."})]}):s?d.jsxs("div",{className:"text-center py-8",children:[d.jsx("p",{className:"text-red-400 text-sm mb-3",children:s}),d.jsx("button",{onClick:f,className:"btn btn-s text-sm",children:"Retry"})]}):d.jsxs("div",{className:"space-y-4",children:[d.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[d.jsxs("div",{className:"text-center",children:[d.jsx("p",{className:"stat-v text-amber-400",children:c.length}),d.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Predictions"})]}),d.jsxs("div",{className:"text-center",children:[d.jsx("p",{className:"stat-v text-green-400",children:p.length}),d.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Buy Signals"})]}),d.jsxs("div",{className:"text-center",children:[d.jsxs("p",{className:"stat-v text-blue-400",children:[(o==null?void 0:o.avg_edge_bps)||0,"bps"]}),d.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Avg Edge"})]})]}),c.length>0&&d.jsx("div",{className:"border-t border-gray-800 pt-3",children:d.jsxs("table",{children:[d.jsx("thead",{children:d.jsxs("tr",{children:[d.jsx("th",{children:"Contract"}),d.jsx("th",{children:"Side"}),d.jsx("th",{children:"Price"}),d.jsx("th",{children:"Edge"}),d.jsx("th",{children:"Signal"})]})}),d.jsx("tbody",{children:c.slice(0,6).map((h,y)=>d.jsxs("tr",{children:[d.jsx("td",{className:"max-w-[180px]",children:d.jsx("span",{className:"truncate block text-xs",children:h.ticker||h.market})}),d.jsx("td",{children:d.jsx("span",{className:`badge ${h.side==="yes"?"bg-green":"bg-red"}`,children:(h.side||"yes").toUpperCase()})}),d.jsxs("td",{className:"font-mono text-sm",children:[h.price_cents||"—","c"]}),d.jsxs("td",{className:`font-mono text-sm ${(h.edge_bps||0)>0?"text-green-400":"text-gray-500"}`,children:[h.edge_bps||0,"bps"]}),d.jsx("td",{children:d.jsx("span",{className:`badge ${(h.edge_bps||0)>0?"bg-green":"bg-yellow"}`,children:(h.edge_bps||0)>0?"BUY":"HOLD"})})]},y))})]})})]})}),d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("button",{onClick:n,className:"text-sm text-gray-500 hover:text-gray-300",children:"Back"}),d.jsx("button",{onClick:r,disabled:i,className:"btn btn-p",children:i?"Processing...":"Continue"})]})]})}const eg=[{name:"Conservative",maxContracts:5,maxDollars:25,dailyLoss:10,color:"blue",desc:"Small positions, tight stops. Best for learning Kalshi."},{name:"Moderate",maxContracts:20,maxDollars:100,dailyLoss:50,color:"amber",desc:"Balanced risk/reward. Recommended for most traders.",recommended:!0},{name:"Aggressive",maxContracts:50,maxDollars:500,dailyLoss:200,color:"red",desc:"Larger positions, higher variance. For experienced traders."}];function IE({data:e,update:t,next:r,back:n}){const[i,a]=P.useState(e.riskProfile||"Moderate"),[o,l]=P.useState(!1);async function s(){l(!0);const u=eg.find(f=>f.name===i);try{await de("/risk",{action:"update_config",max_contracts_per_market:u.maxContracts,max_dollars_at_risk:u.maxDollars,daily_loss_cap:u.dailyLoss,risk_profile:u.name}),t({riskProfile:i}),r()}catch{}l(!1)}return d.jsxs("div",{className:"space-y-6",children:[d.jsxs("div",{className:"text-center",children:[d.jsx("h2",{className:"text-2xl font-bold mb-2",children:"Risk Profile"}),d.jsx("p",{className:"text-gray-400 text-sm",children:"Set your trading risk limits"})]}),d.jsx("div",{className:"grid grid-cols-3 gap-4",children:eg.map(u=>{const c={blue:{ring:"#3b82f6",text:"text-blue-400"},amber:{ring:"#f59e0b",text:"text-amber-400"},red:{ring:"#ef4444",text:"text-red-400"}}[u.color];return d.jsxs("button",{onClick:()=>a(u.name),className:"card text-left transition-all relative",style:i===u.name?{boxShadow:`0 0 0 2px ${c.ring}`}:{},children:[u.recommended&&d.jsx("span",{className:"absolute -top-2 right-3 text-[9px] font-bold uppercase px-2 py-0.5 rounded-full bg-amber-500 text-black",children:"Recommended"}),d.jsx("h3",{className:`font-bold text-lg mb-1 ${c.text}`,children:u.name}),d.jsx("p",{className:"text-xs text-gray-500 mb-3",children:u.desc}),d.jsxs("div",{className:"space-y-1.5 text-xs",children:[d.jsxs("div",{className:"flex justify-between",children:[d.jsx("span",{className:"text-gray-500",children:"Max Contracts"}),d.jsx("span",{className:"font-mono text-gray-300",children:u.maxContracts})]}),d.jsxs("div",{className:"flex justify-between",children:[d.jsx("span",{className:"text-gray-500",children:"Max $ at Risk"}),d.jsxs("span",{className:"font-mono text-gray-300",children:["$",u.maxDollars]})]}),d.jsxs("div",{className:"flex justify-between",children:[d.jsx("span",{className:"text-gray-500",children:"Daily Loss Cap"}),d.jsxs("span",{className:"font-mono text-gray-300",children:["$",u.dailyLoss]})]})]})]},u.name)})}),d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("button",{onClick:n,className:"text-sm text-gray-500 hover:text-gray-300",children:"Back"}),d.jsx("button",{onClick:s,disabled:o,className:"btn btn-p",children:o?"Saving...":"Save & Continue"})]})]})}const Mf=[{key:"keys",label:"Kalshi API Connected",check:e=>!!e.keys},{key:"conn",label:"Connection Verified",check:e=>!!e.connectionOk},{key:"markets",label:"Markets Loaded",check:e=>e.marketsLoaded>0},{key:"weather",label:"Weather Data Fetched",check:e=>!!e.weatherFetched},{key:"preds",label:"Predictions Generated",check:e=>!!e.predictionsRun},{key:"risk",label:"Risk Profile Set",check:e=>!!e.riskProfile}];function DE({data:e,complete:t,back:r}){const[n,i]=P.useState(!0),[a,o]=P.useState(!1),l=Mf.filter(f=>f.check(e)).length,s=e.skippedConnect;async function u(){o(!0),await t()}return d.jsxs("div",{className:"space-y-6",children:[d.jsxs("div",{className:"text-center",children:[d.jsx("h2",{className:"text-2xl font-bold mb-2",children:"Ready to Trade"}),d.jsx("p",{className:"text-gray-400 text-sm",children:"Review your setup and launch"})]}),d.jsxs("div",{className:"card",children:[d.jsx("h3",{className:"font-semibold text-sm mb-3",children:"Setup Summary"}),d.jsx("div",{className:"space-y-2",children:Mf.map(f=>{const c=f.check(e),p=f.key==="keys"&&s;return d.jsxs("div",{className:"flex items-center gap-3",children:[c?d.jsx("div",{className:"w-5 h-5 rounded-full bg-green-500 flex items-center justify-center flex-shrink-0",children:d.jsx("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",strokeWidth:"3",viewBox:"0 0 24 24",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})})}):p?d.jsx("div",{className:"w-5 h-5 rounded-full bg-yellow-500 flex items-center justify-center flex-shrink-0",children:d.jsx("span",{className:"text-white text-[10px] font-bold",children:"—"})}):d.jsx("div",{className:"w-5 h-5 rounded-full bg-gray-700 flex-shrink-0"}),d.jsxs("span",{className:`text-sm ${c?"text-gray-200":p?"text-yellow-400":"text-gray-500"}`,children:[f.label,p?" (skipped)":""]})]},f.key)})}),d.jsxs("p",{className:"text-xs text-gray-500 mt-3 pt-3 border-t border-gray-800",children:[l,"/",Mf.length," steps completed"]})]}),d.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[d.jsxs("div",{className:"card text-center",children:[d.jsx("p",{className:"stat-v text-amber-400",children:e.marketsLoaded||0}),d.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Markets"})]}),d.jsxs("div",{className:"card text-center",children:[d.jsx("p",{className:"stat-v text-blue-400",children:e.riskProfile||"—"}),d.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Risk Profile"})]}),d.jsxs("div",{className:"card text-center",children:[d.jsx("p",{className:"stat-v text-green-400",children:e.keys?(e.keys.env||"demo").toUpperCase():"PAPER"}),d.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Mode"})]})]}),d.jsxs("div",{className:"card",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsxs("div",{children:[d.jsx("h3",{className:"font-semibold text-sm",children:"Safe Mode"}),d.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:n?"Paper trading only — no real orders":"Live orders enabled on Kalshi"})]}),d.jsxs("div",{className:"flex items-center gap-3",children:[d.jsx("span",{className:`text-xs font-medium ${n?"text-yellow-400":"text-gray-500"}`,children:"Safe"}),d.jsx("button",{onClick:()=>i(!n),disabled:!e.keys,className:`w-11 h-6 rounded-full transition-colors relative ${n?"bg-yellow-500/30":"bg-green-500/30"} ${e.keys?"":"opacity-50 cursor-not-allowed"}`,children:d.jsx("div",{className:`w-4 h-4 rounded-full absolute top-1 transition-all ${n?"left-1 bg-yellow-400":"left-6 bg-green-400"}`})}),d.jsx("span",{className:`text-xs font-medium ${n?"text-gray-500":"text-green-400"}`,children:"Live"})]})]}),!n&&d.jsx("div",{className:"mt-3 p-2 bg-red-500/10 border border-red-500/20 rounded-lg",children:d.jsx("p",{className:"text-xs text-red-400",children:"Live mode submits real orders to Kalshi. Make sure your account is funded and risk limits are set."})})]}),d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("button",{onClick:r,className:"text-sm text-gray-500 hover:text-gray-300",children:"Back"}),d.jsx("button",{onClick:u,disabled:a,className:"btn btn-p text-lg px-8 py-3 rounded-xl font-bold",children:a?"Launching...":"Launch Kalshi Trader"})]})]})}const Jl=[{label:"Welcome",icon:"1"},{label:"Connect",icon:"2"},{label:"Test",icon:"3"},{label:"Markets",icon:"4"},{label:"Weather",icon:"5"},{label:"Predict",icon:"6"},{label:"Risk",icon:"7"},{label:"Go Live",icon:"8"}],LE=[kE,$E,NE,TE,CE,ME,IE,DE];function RE(){const e=mc(),[t,r]=P.useState(!1),[n,i]=P.useState(0),[a,o]=P.useState({keys:null,connectionOk:!1,marketsLoaded:0,weatherFetched:!1,predictionsRun:!1,riskProfile:null});P.useEffect(()=>{Pv().then(h=>{if(!h){e("/login");return}r(!0),xa("/setup").then(y=>{if(y.setup_complete){e("/");return}y.setup_progress&&(i(y.setup_progress.step||0),o(b=>({...b,...y.setup_progress.data})))}).catch(()=>{})})},[]),P.useEffect(()=>{t&&n>0&&de("/setup",{action:"save_progress",progress:{step:n,data:a}}).catch(()=>{})},[n]);function l(){n<Jl.length-1&&i(h=>h+1)}function s(){n>0&&i(h=>h-1)}function u(h){h<=n&&i(h)}function f(h){o(y=>({...y,...h}))}async function c(){await de("/setup",{action:"complete",progress:{step:Jl.length-1,data:a}}),e("/")}if(!t)return d.jsx("div",{className:"flex items-center justify-center min-h-screen",children:d.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})});const p=LE[n];return d.jsxs("div",{className:"min-h-screen flex flex-col",style:{background:"var(--bg)"},children:[d.jsxs("div",{className:"flex items-center gap-3 px-6 py-4 border-b border-gray-800",children:[d.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{background:"linear-gradient(135deg,#f59e0b,#f97316)"},children:d.jsx("span",{className:"text-black font-bold text-sm",children:"K"})}),d.jsx("span",{className:"font-bold text-sm kalshi-gradient",children:"KALSHI SETUP"})]}),d.jsx("div",{className:"px-6 py-5",children:d.jsx("div",{className:"max-w-3xl mx-auto flex items-center",children:Jl.map((h,y)=>d.jsxs(E.Fragment,{children:[d.jsxs("button",{onClick:()=>u(y),disabled:y>n,className:"flex flex-col items-center gap-1.5 group",style:{minWidth:56},children:[d.jsx("div",{className:`w-8 h-8 rounded-full flex items-center justify-center text-xs font-bold transition-all ${y<n?"bg-green-500 text-white":y===n?"bg-amber-500 text-black":"bg-gray-800 text-gray-500"} ${y<=n?"cursor-pointer":"cursor-default"}`,style:y===n?{animation:"pg 2s infinite"}:{},children:y<n?d.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",strokeWidth:"2.5",viewBox:"0 0 24 24",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})}):h.icon}),d.jsx("span",{className:`text-[10px] font-medium ${y<n?"text-green-400":y===n?"text-amber-400":"text-gray-600"}`,children:h.label})]}),y<Jl.length-1&&d.jsx("div",{className:`h-0.5 flex-1 transition-colors ${y<n?"bg-green-500":"bg-gray-800"}`})]},y))})}),d.jsx("div",{className:"flex-1 flex items-start justify-center px-6 pb-10",children:d.jsx("div",{className:"w-full max-w-2xl",children:d.jsx(p,{data:a,update:f,next:l,back:s,complete:c,step:n})},n)})]})}function fS(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(r=fS(e[t]))&&(n&&(n+=" "),n+=r)}else for(r in e)e[r]&&(n&&(n+=" "),n+=r);return n}function oe(){for(var e,t,r=0,n="",i=arguments.length;r<i;r++)(e=arguments[r])&&(t=fS(e))&&(n&&(n+=" "),n+=t);return n}var BE=Array.isArray,bt=BE,zE=typeof Il=="object"&&Il&&Il.Object===Object&&Il,dS=zE,FE=dS,UE=typeof self=="object"&&self&&self.Object===Object&&self,WE=FE||UE||Function("return this")(),gr=WE,HE=gr,KE=HE.Symbol,Pl=KE,tg=Pl,pS=Object.prototype,VE=pS.hasOwnProperty,GE=pS.toString,Ua=tg?tg.toStringTag:void 0;function XE(e){var t=VE.call(e,Ua),r=e[Ua];try{e[Ua]=void 0;var n=!0}catch{}var i=GE.call(e);return n&&(t?e[Ua]=r:delete e[Ua]),i}var qE=XE,YE=Object.prototype,QE=YE.toString;function ZE(e){return QE.call(e)}var JE=ZE,rg=Pl,ek=qE,tk=JE,rk="[object Null]",nk="[object Undefined]",ng=rg?rg.toStringTag:void 0;function ik(e){return e==null?e===void 0?nk:rk:ng&&ng in Object(e)?ek(e):tk(e)}var zr=ik;function ak(e){return e!=null&&typeof e=="object"}var Fr=ak,ok=zr,lk=Fr,sk="[object Symbol]";function uk(e){return typeof e=="symbol"||lk(e)&&ok(e)==sk}var ba=uk,ck=bt,fk=ba,dk=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,pk=/^\w*$/;function hk(e,t){if(ck(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||fk(e)?!0:pk.test(e)||!dk.test(e)||t!=null&&e in Object(t)}var Av=hk;function vk(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var wn=vk;const wa=he(wn);var mk=zr,yk=wn,gk="[object AsyncFunction]",xk="[object Function]",bk="[object GeneratorFunction]",wk="[object Proxy]";function Sk(e){if(!yk(e))return!1;var t=mk(e);return t==xk||t==bk||t==gk||t==wk}var Ev=Sk;const Z=he(Ev);var Ok=gr,jk=Ok["__core-js_shared__"],_k=jk,If=_k,ig=function(){var e=/[^.]+$/.exec(If&&If.keys&&If.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Pk(e){return!!ig&&ig in e}var Ak=Pk,Ek=Function.prototype,kk=Ek.toString;function $k(e){if(e!=null){try{return kk.call(e)}catch{}try{return e+""}catch{}}return""}var hS=$k,Nk=Ev,Tk=Ak,Ck=wn,Mk=hS,Ik=/[\\^$.*+?()[\]{}|]/g,Dk=/^\[object .+?Constructor\]$/,Lk=Function.prototype,Rk=Object.prototype,Bk=Lk.toString,zk=Rk.hasOwnProperty,Fk=RegExp("^"+Bk.call(zk).replace(Ik,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Uk(e){if(!Ck(e)||Tk(e))return!1;var t=Nk(e)?Fk:Dk;return t.test(Mk(e))}var Wk=Uk;function Hk(e,t){return e==null?void 0:e[t]}var Kk=Hk,Vk=Wk,Gk=Kk;function Xk(e,t){var r=Gk(e,t);return Vk(r)?r:void 0}var oi=Xk,qk=oi,Yk=qk(Object,"create"),yc=Yk,ag=yc;function Qk(){this.__data__=ag?ag(null):{},this.size=0}var Zk=Qk;function Jk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var e$=Jk,t$=yc,r$="__lodash_hash_undefined__",n$=Object.prototype,i$=n$.hasOwnProperty;function a$(e){var t=this.__data__;if(t$){var r=t[e];return r===r$?void 0:r}return i$.call(t,e)?t[e]:void 0}var o$=a$,l$=yc,s$=Object.prototype,u$=s$.hasOwnProperty;function c$(e){var t=this.__data__;return l$?t[e]!==void 0:u$.call(t,e)}var f$=c$,d$=yc,p$="__lodash_hash_undefined__";function h$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=d$&&t===void 0?p$:t,this}var v$=h$,m$=Zk,y$=e$,g$=o$,x$=f$,b$=v$;function Sa(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Sa.prototype.clear=m$;Sa.prototype.delete=y$;Sa.prototype.get=g$;Sa.prototype.has=x$;Sa.prototype.set=b$;var w$=Sa;function S$(){this.__data__=[],this.size=0}var O$=S$;function j$(e,t){return e===t||e!==e&&t!==t}var kv=j$,_$=kv;function P$(e,t){for(var r=e.length;r--;)if(_$(e[r][0],t))return r;return-1}var gc=P$,A$=gc,E$=Array.prototype,k$=E$.splice;function $$(e){var t=this.__data__,r=A$(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():k$.call(t,r,1),--this.size,!0}var N$=$$,T$=gc;function C$(e){var t=this.__data__,r=T$(t,e);return r<0?void 0:t[r][1]}var M$=C$,I$=gc;function D$(e){return I$(this.__data__,e)>-1}var L$=D$,R$=gc;function B$(e,t){var r=this.__data__,n=R$(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var z$=B$,F$=O$,U$=N$,W$=M$,H$=L$,K$=z$;function Oa(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Oa.prototype.clear=F$;Oa.prototype.delete=U$;Oa.prototype.get=W$;Oa.prototype.has=H$;Oa.prototype.set=K$;var xc=Oa,V$=oi,G$=gr,X$=V$(G$,"Map"),$v=X$,og=w$,q$=xc,Y$=$v;function Q$(){this.size=0,this.__data__={hash:new og,map:new(Y$||q$),string:new og}}var Z$=Q$;function J$(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var eN=J$,tN=eN;function rN(e,t){var r=e.__data__;return tN(t)?r[typeof t=="string"?"string":"hash"]:r.map}var bc=rN,nN=bc;function iN(e){var t=nN(this,e).delete(e);return this.size-=t?1:0,t}var aN=iN,oN=bc;function lN(e){return oN(this,e).get(e)}var sN=lN,uN=bc;function cN(e){return uN(this,e).has(e)}var fN=cN,dN=bc;function pN(e,t){var r=dN(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var hN=pN,vN=Z$,mN=aN,yN=sN,gN=fN,xN=hN;function ja(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ja.prototype.clear=vN;ja.prototype.delete=mN;ja.prototype.get=yN;ja.prototype.has=gN;ja.prototype.set=xN;var Nv=ja,vS=Nv,bN="Expected a function";function Tv(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(bN);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var o=e.apply(this,n);return r.cache=a.set(i,o)||a,o};return r.cache=new(Tv.Cache||vS),r}Tv.Cache=vS;var mS=Tv;const wN=he(mS);var SN=mS,ON=500;function jN(e){var t=SN(e,function(n){return r.size===ON&&r.clear(),n}),r=t.cache;return t}var _N=jN,PN=_N,AN=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,EN=/\\(\\)?/g,kN=PN(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(AN,function(r,n,i,a){t.push(i?a.replace(EN,"$1"):n||r)}),t}),$N=kN;function NN(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}var Cv=NN,lg=Pl,TN=Cv,CN=bt,MN=ba,sg=lg?lg.prototype:void 0,ug=sg?sg.toString:void 0;function yS(e){if(typeof e=="string")return e;if(CN(e))return TN(e,yS)+"";if(MN(e))return ug?ug.call(e):"";var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}var IN=yS,DN=IN;function LN(e){return e==null?"":DN(e)}var gS=LN,RN=bt,BN=Av,zN=$N,FN=gS;function UN(e,t){return RN(e)?e:BN(e,t)?[e]:zN(FN(e))}var xS=UN,WN=ba;function HN(e){if(typeof e=="string"||WN(e))return e;var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}var wc=HN,KN=xS,VN=wc;function GN(e,t){t=KN(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[VN(t[r++])];return r&&r==n?e:void 0}var Mv=GN,XN=Mv;function qN(e,t,r){var n=e==null?void 0:XN(e,t);return n===void 0?r:n}var bS=qN;const Ft=he(bS);function YN(e){return e==null}var QN=YN;const re=he(QN);var ZN=zr,JN=bt,eT=Fr,tT="[object String]";function rT(e){return typeof e=="string"||!JN(e)&&eT(e)&&ZN(e)==tT}var nT=rT;const Zn=he(nT);var wS={exports:{}},ce={};/**
+ * @license React
+ * react-is.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var Iv=Symbol.for("react.element"),Dv=Symbol.for("react.portal"),Sc=Symbol.for("react.fragment"),Oc=Symbol.for("react.strict_mode"),jc=Symbol.for("react.profiler"),_c=Symbol.for("react.provider"),Pc=Symbol.for("react.context"),iT=Symbol.for("react.server_context"),Ac=Symbol.for("react.forward_ref"),Ec=Symbol.for("react.suspense"),kc=Symbol.for("react.suspense_list"),$c=Symbol.for("react.memo"),Nc=Symbol.for("react.lazy"),aT=Symbol.for("react.offscreen"),SS;SS=Symbol.for("react.module.reference");function Kt(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case Iv:switch(e=e.type,e){case Sc:case jc:case Oc:case Ec:case kc:return e;default:switch(e=e&&e.$$typeof,e){case iT:case Pc:case Ac:case Nc:case $c:case _c:return e;default:return t}}case Dv:return t}}}ce.ContextConsumer=Pc;ce.ContextProvider=_c;ce.Element=Iv;ce.ForwardRef=Ac;ce.Fragment=Sc;ce.Lazy=Nc;ce.Memo=$c;ce.Portal=Dv;ce.Profiler=jc;ce.StrictMode=Oc;ce.Suspense=Ec;ce.SuspenseList=kc;ce.isAsyncMode=function(){return!1};ce.isConcurrentMode=function(){return!1};ce.isContextConsumer=function(e){return Kt(e)===Pc};ce.isContextProvider=function(e){return Kt(e)===_c};ce.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===Iv};ce.isForwardRef=function(e){return Kt(e)===Ac};ce.isFragment=function(e){return Kt(e)===Sc};ce.isLazy=function(e){return Kt(e)===Nc};ce.isMemo=function(e){return Kt(e)===$c};ce.isPortal=function(e){return Kt(e)===Dv};ce.isProfiler=function(e){return Kt(e)===jc};ce.isStrictMode=function(e){return Kt(e)===Oc};ce.isSuspense=function(e){return Kt(e)===Ec};ce.isSuspenseList=function(e){return Kt(e)===kc};ce.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===Sc||e===jc||e===Oc||e===Ec||e===kc||e===aT||typeof e=="object"&&e!==null&&(e.$$typeof===Nc||e.$$typeof===$c||e.$$typeof===_c||e.$$typeof===Pc||e.$$typeof===Ac||e.$$typeof===SS||e.getModuleId!==void 0)};ce.typeOf=Kt;wS.exports=ce;var oT=wS.exports,lT=zr,sT=Fr,uT="[object Number]";function cT(e){return typeof e=="number"||sT(e)&&lT(e)==uT}var OS=cT;const fT=he(OS);var dT=OS;function pT(e){return dT(e)&&e!=+e}var hT=pT;const _a=he(hT);var tr=function(t){return t===0?0:t>0?1:-1},Rn=function(t){return Zn(t)&&t.indexOf("%")===t.length-1},H=function(t){return fT(t)&&!_a(t)},vT=function(t){return re(t)},We=function(t){return H(t)||Zn(t)},mT=0,Al=function(t){var r=++mT;return"".concat(t||"").concat(r)},Jn=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!H(t)&&!Zn(t))return n;var a;if(Rn(t)){var o=t.indexOf("%");a=r*parseFloat(t.slice(0,o))/100}else a=+t;return _a(a)&&(a=n),i&&a>r&&(a=r),a},Qr=function(t){if(!t)return null;var r=Object.keys(t);return r&&r.length?t[r[0]]:null},yT=function(t){if(!Array.isArray(t))return!1;for(var r=t.length,n={},i=0;i<r;i++)if(!n[t[i]])n[t[i]]=!0;else return!0;return!1},Lt=function(t,r){return H(t)&&H(r)?function(n){return t+n*(r-t)}:function(){return r}};function Zs(e,t,r){return!e||!e.length?null:e.find(function(n){return n&&(typeof t=="function"?t(n):Ft(n,t))===r})}var gT=function(t,r){return H(t)&&H(r)?t-r:Zn(t)&&Zn(r)?t.localeCompare(r):t instanceof Date&&r instanceof Date?t.getTime()-r.getTime():String(t).localeCompare(String(r))};function Di(e,t){for(var r in e)if({}.hasOwnProperty.call(e,r)&&(!{}.hasOwnProperty.call(t,r)||e[r]!==t[r]))return!1;for(var n in t)if({}.hasOwnProperty.call(t,n)&&!{}.hasOwnProperty.call(e,n))return!1;return!0}function op(e){"@babel/helpers - typeof";return op=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},op(e)}var xT=["viewBox","children"],bT=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],cg=["points","pathLength"],Df={svg:xT,polygon:cg,polyline:cg},Lv=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"],Js=function(t,r){if(!t||typeof t=="function"||typeof t=="boolean")return null;var n=t;if(P.isValidElement(t)&&(n=t.props),!wa(n))return null;var i={};return Object.keys(n).forEach(function(a){Lv.includes(a)&&(i[a]=r||function(o){return n[a](n,o)})}),i},wT=function(t,r,n){return function(i){return t(r,n,i),null}},eu=function(t,r,n){if(!wa(t)||op(t)!=="object")return null;var i=null;return Object.keys(t).forEach(function(a){var o=t[a];Lv.includes(a)&&typeof o=="function"&&(i||(i={}),i[a]=wT(o,r,n))}),i},ST=["children"],OT=["children"];function fg(e,t){if(e==null)return{};var r=jT(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function jT(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function lp(e){"@babel/helpers - typeof";return lp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lp(e)}var dg={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},Er=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},pg=null,Lf=null,Rv=function e(t){if(t===pg&&Array.isArray(Lf))return Lf;var r=[];return P.Children.forEach(t,function(n){re(n)||(oT.isFragment(n)?r=r.concat(e(n.props.children)):r.push(n))}),Lf=r,pg=t,r};function ir(e,t){var r=[],n=[];return Array.isArray(t)?n=t.map(function(i){return Er(i)}):n=[Er(t)],Rv(e).forEach(function(i){var a=Ft(i,"type.displayName")||Ft(i,"type.name");n.indexOf(a)!==-1&&r.push(i)}),r}function Ot(e,t){var r=ir(e,t);return r&&r[0]}var hg=function(t){if(!t||!t.props)return!1;var r=t.props,n=r.width,i=r.height;return!(!H(n)||n<=0||!H(i)||i<=0)},_T=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],PT=function(t){return t&&t.type&&Zn(t.type)&&_T.indexOf(t.type)>=0},AT=function(t){return t&&lp(t)==="object"&&"clipDot"in t},ET=function(t,r,n,i){var a,o=(a=Df==null?void 0:Df[i])!==null&&a!==void 0?a:[];return r.startsWith("data-")||!Z(t)&&(i&&o.includes(r)||bT.includes(r))||n&&Lv.includes(r)},ee=function(t,r,n){if(!t||typeof t=="function"||typeof t=="boolean")return null;var i=t;if(P.isValidElement(t)&&(i=t.props),!wa(i))return null;var a={};return Object.keys(i).forEach(function(o){var l;ET((l=i)===null||l===void 0?void 0:l[o],o,r,n)&&(a[o]=i[o])}),a},sp=function e(t,r){if(t===r)return!0;var n=P.Children.count(t);if(n!==P.Children.count(r))return!1;if(n===0)return!0;if(n===1)return vg(Array.isArray(t)?t[0]:t,Array.isArray(r)?r[0]:r);for(var i=0;i<n;i++){var a=t[i],o=r[i];if(Array.isArray(a)||Array.isArray(o)){if(!e(a,o))return!1}else if(!vg(a,o))return!1}return!0},vg=function(t,r){if(re(t)&&re(r))return!0;if(!re(t)&&!re(r)){var n=t.props||{},i=n.children,a=fg(n,ST),o=r.props||{},l=o.children,s=fg(o,OT);return i&&l?Di(a,s)&&sp(i,l):!i&&!l?Di(a,s):!1}return!1},mg=function(t,r){var n=[],i={};return Rv(t).forEach(function(a,o){if(PT(a))n.push(a);else if(a){var l=Er(a.type),s=r[l]||{},u=s.handler,f=s.once;if(u&&(!f||!i[l])){var c=u(a,l,o);n.push(c),i[l]=!0}}}),n},kT=function(t){var r=t&&t.type;return r&&dg[r]?dg[r]:null},$T=function(t,r){return Rv(r).indexOf(t)},NT=["children","width","height","viewBox","className","style","title","desc"];function up(){return up=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},up.apply(this,arguments)}function TT(e,t){if(e==null)return{};var r=CT(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function CT(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function cp(e){var t=e.children,r=e.width,n=e.height,i=e.viewBox,a=e.className,o=e.style,l=e.title,s=e.desc,u=TT(e,NT),f=i||{width:r,height:n,x:0,y:0},c=oe("recharts-surface",a);return E.createElement("svg",up({},ee(u,!0,"svg"),{className:c,width:r,height:n,style:o,viewBox:"".concat(f.x," ").concat(f.y," ").concat(f.width," ").concat(f.height)}),E.createElement("title",null,l),E.createElement("desc",null,s),t)}var MT=["children","className"];function fp(){return fp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},fp.apply(this,arguments)}function IT(e,t){if(e==null)return{};var r=DT(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function DT(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var _e=E.forwardRef(function(e,t){var r=e.children,n=e.className,i=IT(e,MT),a=oe("recharts-layer",n);return E.createElement("g",fp({className:a},ee(i,!0),{ref:t}),r)}),kr=function(t,r){for(var n=arguments.length,i=new Array(n>2?n-2:0),a=2;a<n;a++)i[a-2]=arguments[a]};function LT(e,t,r){var n=-1,i=e.length;t<0&&(t=-t>i?0:i+t),r=r>i?i:r,r<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var a=Array(i);++n<i;)a[n]=e[n+t];return a}var RT=LT,BT=RT;function zT(e,t,r){var n=e.length;return r=r===void 0?n:r,!t&&r>=n?e:BT(e,t,r)}var FT=zT,UT="\\ud800-\\udfff",WT="\\u0300-\\u036f",HT="\\ufe20-\\ufe2f",KT="\\u20d0-\\u20ff",VT=WT+HT+KT,GT="\\ufe0e\\ufe0f",XT="\\u200d",qT=RegExp("["+XT+UT+VT+GT+"]");function YT(e){return qT.test(e)}var jS=YT;function QT(e){return e.split("")}var ZT=QT,_S="\\ud800-\\udfff",JT="\\u0300-\\u036f",eC="\\ufe20-\\ufe2f",tC="\\u20d0-\\u20ff",rC=JT+eC+tC,nC="\\ufe0e\\ufe0f",iC="["+_S+"]",dp="["+rC+"]",pp="\\ud83c[\\udffb-\\udfff]",aC="(?:"+dp+"|"+pp+")",PS="[^"+_S+"]",AS="(?:\\ud83c[\\udde6-\\uddff]){2}",ES="[\\ud800-\\udbff][\\udc00-\\udfff]",oC="\\u200d",kS=aC+"?",$S="["+nC+"]?",lC="(?:"+oC+"(?:"+[PS,AS,ES].join("|")+")"+$S+kS+")*",sC=$S+kS+lC,uC="(?:"+[PS+dp+"?",dp,AS,ES,iC].join("|")+")",cC=RegExp(pp+"(?="+pp+")|"+uC+sC,"g");function fC(e){return e.match(cC)||[]}var dC=fC,pC=ZT,hC=jS,vC=dC;function mC(e){return hC(e)?vC(e):pC(e)}var yC=mC,gC=FT,xC=jS,bC=yC,wC=gS;function SC(e){return function(t){t=wC(t);var r=xC(t)?bC(t):void 0,n=r?r[0]:t.charAt(0),i=r?gC(r,1).join(""):t.slice(1);return n[e]()+i}}var OC=SC,jC=OC,_C=jC("toUpperCase"),PC=_C;const Tc=he(PC);function ve(e){return function(){return e}}const NS=Math.cos,tu=Math.sin,or=Math.sqrt,ru=Math.PI,Cc=2*ru,hp=Math.PI,vp=2*hp,Tn=1e-6,AC=vp-Tn;function TS(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=arguments[t]+e[t]}function EC(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return TS;const r=10**t;return function(n){this._+=n[0];for(let i=1,a=n.length;i<a;++i)this._+=Math.round(arguments[i]*r)/r+n[i]}}class kC{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?TS:EC(t)}moveTo(t,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,r){this._append`L${this._x1=+t},${this._y1=+r}`}quadraticCurveTo(t,r,n,i){this._append`Q${+t},${+r},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(t,r,n,i,a,o){this._append`C${+t},${+r},${+n},${+i},${this._x1=+a},${this._y1=+o}`}arcTo(t,r,n,i,a){if(t=+t,r=+r,n=+n,i=+i,a=+a,a<0)throw new Error(`negative radius: ${a}`);let o=this._x1,l=this._y1,s=n-t,u=i-r,f=o-t,c=l-r,p=f*f+c*c;if(this._x1===null)this._append`M${this._x1=t},${this._y1=r}`;else if(p>Tn)if(!(Math.abs(c*s-u*f)>Tn)||!a)this._append`L${this._x1=t},${this._y1=r}`;else{let h=n-o,y=i-l,b=s*s+u*u,g=h*h+y*y,m=Math.sqrt(b),v=Math.sqrt(p),x=a*Math.tan((hp-Math.acos((b+p-g)/(2*m*v)))/2),O=x/v,w=x/m;Math.abs(O-1)>Tn&&this._append`L${t+O*f},${r+O*c}`,this._append`A${a},${a},0,0,${+(c*h>f*y)},${this._x1=t+w*s},${this._y1=r+w*u}`}}arc(t,r,n,i,a,o){if(t=+t,r=+r,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let l=n*Math.cos(i),s=n*Math.sin(i),u=t+l,f=r+s,c=1^o,p=o?i-a:a-i;this._x1===null?this._append`M${u},${f}`:(Math.abs(this._x1-u)>Tn||Math.abs(this._y1-f)>Tn)&&this._append`L${u},${f}`,n&&(p<0&&(p=p%vp+vp),p>AC?this._append`A${n},${n},0,1,${c},${t-l},${r-s}A${n},${n},0,1,${c},${this._x1=u},${this._y1=f}`:p>Tn&&this._append`A${n},${n},0,${+(p>=hp)},${c},${this._x1=t+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(t,r,n,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}}function Bv(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{const n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new kC(t)}function zv(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function CS(e){this._context=e}CS.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Mc(e){return new CS(e)}function MS(e){return e[0]}function IS(e){return e[1]}function DS(e,t){var r=ve(!0),n=null,i=Mc,a=null,o=Bv(l);e=typeof e=="function"?e:e===void 0?MS:ve(e),t=typeof t=="function"?t:t===void 0?IS:ve(t);function l(s){var u,f=(s=zv(s)).length,c,p=!1,h;for(n==null&&(a=i(h=o())),u=0;u<=f;++u)!(u<f&&r(c=s[u],u,s))===p&&((p=!p)?a.lineStart():a.lineEnd()),p&&a.point(+e(c,u,s),+t(c,u,s));if(h)return a=null,h+""||null}return l.x=function(s){return arguments.length?(e=typeof s=="function"?s:ve(+s),l):e},l.y=function(s){return arguments.length?(t=typeof s=="function"?s:ve(+s),l):t},l.defined=function(s){return arguments.length?(r=typeof s=="function"?s:ve(!!s),l):r},l.curve=function(s){return arguments.length?(i=s,n!=null&&(a=i(n)),l):i},l.context=function(s){return arguments.length?(s==null?n=a=null:a=i(n=s),l):n},l}function es(e,t,r){var n=null,i=ve(!0),a=null,o=Mc,l=null,s=Bv(u);e=typeof e=="function"?e:e===void 0?MS:ve(+e),t=typeof t=="function"?t:ve(t===void 0?0:+t),r=typeof r=="function"?r:r===void 0?IS:ve(+r);function u(c){var p,h,y,b=(c=zv(c)).length,g,m=!1,v,x=new Array(b),O=new Array(b);for(a==null&&(l=o(v=s())),p=0;p<=b;++p){if(!(p<b&&i(g=c[p],p,c))===m)if(m=!m)h=p,l.areaStart(),l.lineStart();else{for(l.lineEnd(),l.lineStart(),y=p-1;y>=h;--y)l.point(x[y],O[y]);l.lineEnd(),l.areaEnd()}m&&(x[p]=+e(g,p,c),O[p]=+t(g,p,c),l.point(n?+n(g,p,c):x[p],r?+r(g,p,c):O[p]))}if(v)return l=null,v+""||null}function f(){return DS().defined(i).curve(o).context(a)}return u.x=function(c){return arguments.length?(e=typeof c=="function"?c:ve(+c),n=null,u):e},u.x0=function(c){return arguments.length?(e=typeof c=="function"?c:ve(+c),u):e},u.x1=function(c){return arguments.length?(n=c==null?null:typeof c=="function"?c:ve(+c),u):n},u.y=function(c){return arguments.length?(t=typeof c=="function"?c:ve(+c),r=null,u):t},u.y0=function(c){return arguments.length?(t=typeof c=="function"?c:ve(+c),u):t},u.y1=function(c){return arguments.length?(r=c==null?null:typeof c=="function"?c:ve(+c),u):r},u.lineX0=u.lineY0=function(){return f().x(e).y(t)},u.lineY1=function(){return f().x(e).y(r)},u.lineX1=function(){return f().x(n).y(t)},u.defined=function(c){return arguments.length?(i=typeof c=="function"?c:ve(!!c),u):i},u.curve=function(c){return arguments.length?(o=c,a!=null&&(l=o(a)),u):o},u.context=function(c){return arguments.length?(c==null?a=l=null:l=o(a=c),u):a},u}class LS{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}}function $C(e){return new LS(e,!0)}function NC(e){return new LS(e,!1)}const Fv={draw(e,t){const r=or(t/ru);e.moveTo(r,0),e.arc(0,0,r,0,Cc)}},TC={draw(e,t){const r=or(t/5)/2;e.moveTo(-3*r,-r),e.lineTo(-r,-r),e.lineTo(-r,-3*r),e.lineTo(r,-3*r),e.lineTo(r,-r),e.lineTo(3*r,-r),e.lineTo(3*r,r),e.lineTo(r,r),e.lineTo(r,3*r),e.lineTo(-r,3*r),e.lineTo(-r,r),e.lineTo(-3*r,r),e.closePath()}},RS=or(1/3),CC=RS*2,MC={draw(e,t){const r=or(t/CC),n=r*RS;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}},IC={draw(e,t){const r=or(t),n=-r/2;e.rect(n,n,r,r)}},DC=.8908130915292852,BS=tu(ru/10)/tu(7*ru/10),LC=tu(Cc/10)*BS,RC=-NS(Cc/10)*BS,BC={draw(e,t){const r=or(t*DC),n=LC*r,i=RC*r;e.moveTo(0,-r),e.lineTo(n,i);for(let a=1;a<5;++a){const o=Cc*a/5,l=NS(o),s=tu(o);e.lineTo(s*r,-l*r),e.lineTo(l*n-s*i,s*n+l*i)}e.closePath()}},Rf=or(3),zC={draw(e,t){const r=-or(t/(Rf*3));e.moveTo(0,r*2),e.lineTo(-Rf*r,-r),e.lineTo(Rf*r,-r),e.closePath()}},Tt=-.5,Ct=or(3)/2,mp=1/or(12),FC=(mp/2+1)*3,UC={draw(e,t){const r=or(t/FC),n=r/2,i=r*mp,a=n,o=r*mp+r,l=-a,s=o;e.moveTo(n,i),e.lineTo(a,o),e.lineTo(l,s),e.lineTo(Tt*n-Ct*i,Ct*n+Tt*i),e.lineTo(Tt*a-Ct*o,Ct*a+Tt*o),e.lineTo(Tt*l-Ct*s,Ct*l+Tt*s),e.lineTo(Tt*n+Ct*i,Tt*i-Ct*n),e.lineTo(Tt*a+Ct*o,Tt*o-Ct*a),e.lineTo(Tt*l+Ct*s,Tt*s-Ct*l),e.closePath()}};function WC(e,t){let r=null,n=Bv(i);e=typeof e=="function"?e:ve(e||Fv),t=typeof t=="function"?t:ve(t===void 0?64:+t);function i(){let a;if(r||(r=a=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),a)return r=null,a+""||null}return i.type=function(a){return arguments.length?(e=typeof a=="function"?a:ve(a),i):e},i.size=function(a){return arguments.length?(t=typeof a=="function"?a:ve(+a),i):t},i.context=function(a){return arguments.length?(r=a??null,i):r},i}function nu(){}function iu(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function zS(e){this._context=e}zS.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:iu(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:iu(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function HC(e){return new zS(e)}function FS(e){this._context=e}FS.prototype={areaStart:nu,areaEnd:nu,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:iu(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function KC(e){return new FS(e)}function US(e){this._context=e}US.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:iu(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function VC(e){return new US(e)}function WS(e){this._context=e}WS.prototype={areaStart:nu,areaEnd:nu,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function GC(e){return new WS(e)}function yg(e){return e<0?-1:1}function gg(e,t,r){var n=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(n||i<0&&-0),o=(r-e._y1)/(i||n<0&&-0),l=(a*i+o*n)/(n+i);return(yg(a)+yg(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(l))||0}function xg(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function Bf(e,t,r){var n=e._x0,i=e._y0,a=e._x1,o=e._y1,l=(a-n)/3;e._context.bezierCurveTo(n+l,i+l*t,a-l,o-l*r,a,o)}function au(e){this._context=e}au.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Bf(this,this._t0,xg(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,Bf(this,xg(this,r=gg(this,e,t)),r);break;default:Bf(this,this._t0,r=gg(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function HS(e){this._context=new KS(e)}(HS.prototype=Object.create(au.prototype)).point=function(e,t){au.prototype.point.call(this,t,e)};function KS(e){this._context=e}KS.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,i,a){this._context.bezierCurveTo(t,e,n,r,a,i)}};function XC(e){return new au(e)}function qC(e){return new HS(e)}function VS(e){this._context=e}VS.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=bg(e),i=bg(t),a=0,o=1;o<r;++a,++o)this._context.bezierCurveTo(n[0][a],i[0][a],n[1][a],i[1][a],e[o],t[o]);(this._line||this._line!==0&&r===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}};function bg(e){var t,r=e.length-1,n,i=new Array(r),a=new Array(r),o=new Array(r);for(i[0]=0,a[0]=2,o[0]=e[0]+2*e[1],t=1;t<r-1;++t)i[t]=1,a[t]=4,o[t]=4*e[t]+2*e[t+1];for(i[r-1]=2,a[r-1]=7,o[r-1]=8*e[r-1]+e[r],t=1;t<r;++t)n=i[t]/a[t-1],a[t]-=n,o[t]-=n*o[t-1];for(i[r-1]=o[r-1]/a[r-1],t=r-2;t>=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[r-1]=(e[r]+i[r-1])/2,t=0;t<r-1;++t)a[t]=2*e[t+1]-i[t+1];return[i,a]}function YC(e){return new VS(e)}function Ic(e,t){this._context=e,this._t=t}Ic.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function QC(e){return new Ic(e,.5)}function ZC(e){return new Ic(e,0)}function JC(e){return new Ic(e,1)}function Gi(e,t){if((o=e.length)>1)for(var r=1,n,i,a=e[t[0]],o,l=a.length;r<o;++r)for(i=a,a=e[t[r]],n=0;n<l;++n)a[n][1]+=a[n][0]=isNaN(i[n][1])?i[n][0]:i[n][1]}function yp(e){for(var t=e.length,r=new Array(t);--t>=0;)r[t]=t;return r}function eM(e,t){return e[t]}function tM(e){const t=[];return t.key=e,t}function rM(){var e=ve([]),t=yp,r=Gi,n=eM;function i(a){var o=Array.from(e.apply(this,arguments),tM),l,s=o.length,u=-1,f;for(const c of a)for(l=0,++u;l<s;++l)(o[l][u]=[0,+n(c,o[l].key,u,a)]).data=c;for(l=0,f=zv(t(o));l<s;++l)o[f[l]].index=l;return r(o,f),o}return i.keys=function(a){return arguments.length?(e=typeof a=="function"?a:ve(Array.from(a)),i):e},i.value=function(a){return arguments.length?(n=typeof a=="function"?a:ve(+a),i):n},i.order=function(a){return arguments.length?(t=a==null?yp:typeof a=="function"?a:ve(Array.from(a)),i):t},i.offset=function(a){return arguments.length?(r=a??Gi,i):r},i}function nM(e,t){if((n=e.length)>0){for(var r,n,i=0,a=e[0].length,o;i<a;++i){for(o=r=0;r<n;++r)o+=e[r][i][1]||0;if(o)for(r=0;r<n;++r)e[r][i][1]/=o}Gi(e,t)}}function iM(e,t){if((i=e.length)>0){for(var r=0,n=e[t[0]],i,a=n.length;r<a;++r){for(var o=0,l=0;o<i;++o)l+=e[o][r][1]||0;n[r][1]+=n[r][0]=-l/2}Gi(e,t)}}function aM(e,t){if(!(!((o=e.length)>0)||!((a=(i=e[t[0]]).length)>0))){for(var r=0,n=1,i,a,o;n<a;++n){for(var l=0,s=0,u=0;l<o;++l){for(var f=e[t[l]],c=f[n][1]||0,p=f[n-1][1]||0,h=(c-p)/2,y=0;y<l;++y){var b=e[t[y]],g=b[n][1]||0,m=b[n-1][1]||0;h+=g-m}s+=c,u+=h*c}i[n-1][1]+=i[n-1][0]=r,s&&(r-=u/s)}i[n-1][1]+=i[n-1][0]=r,Gi(e,t)}}function Lo(e){"@babel/helpers - typeof";return Lo=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Lo(e)}var oM=["type","size","sizeType"];function gp(){return gp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},gp.apply(this,arguments)}function wg(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Sg(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?wg(Object(r),!0).forEach(function(n){lM(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):wg(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function lM(e,t,r){return t=sM(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function sM(e){var t=uM(e,"string");return Lo(t)=="symbol"?t:t+""}function uM(e,t){if(Lo(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Lo(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function cM(e,t){if(e==null)return{};var r=fM(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function fM(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var GS={symbolCircle:Fv,symbolCross:TC,symbolDiamond:MC,symbolSquare:IC,symbolStar:BC,symbolTriangle:zC,symbolWye:UC},dM=Math.PI/180,pM=function(t){var r="symbol".concat(Tc(t));return GS[r]||Fv},hM=function(t,r,n){if(r==="area")return t;switch(n){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var i=18*dM;return 1.25*t*t*(Math.tan(i)-Math.tan(i*2)*Math.pow(Math.tan(i),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},vM=function(t,r){GS["symbol".concat(Tc(t))]=r},Uv=function(t){var r=t.type,n=r===void 0?"circle":r,i=t.size,a=i===void 0?64:i,o=t.sizeType,l=o===void 0?"area":o,s=cM(t,oM),u=Sg(Sg({},s),{},{type:n,size:a,sizeType:l}),f=function(){var g=pM(n),m=WC().type(g).size(hM(a,l,n));return m()},c=u.className,p=u.cx,h=u.cy,y=ee(u,!0);return p===+p&&h===+h&&a===+a?E.createElement("path",gp({},y,{className:oe("recharts-symbols",c),transform:"translate(".concat(p,", ").concat(h,")"),d:f()})):null};Uv.registerSymbol=vM;function Xi(e){"@babel/helpers - typeof";return Xi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Xi(e)}function xp(){return xp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},xp.apply(this,arguments)}function Og(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function mM(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Og(Object(r),!0).forEach(function(n){Ro(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Og(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function yM(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function gM(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,qS(n.key),n)}}function xM(e,t,r){return t&&gM(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function bM(e,t,r){return t=ou(t),wM(e,XS()?Reflect.construct(t,r||[],ou(e).constructor):t.apply(e,r))}function wM(e,t){if(t&&(Xi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return SM(e)}function SM(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function XS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(XS=function(){return!!e})()}function ou(e){return ou=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},ou(e)}function OM(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&bp(e,t)}function bp(e,t){return bp=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},bp(e,t)}function Ro(e,t,r){return t=qS(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function qS(e){var t=jM(e,"string");return Xi(t)=="symbol"?t:t+""}function jM(e,t){if(Xi(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Xi(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Mt=32,Wv=function(e){function t(){return yM(this,t),bM(this,t,arguments)}return OM(t,e),xM(t,[{key:"renderIcon",value:function(n){var i=this.props.inactiveColor,a=Mt/2,o=Mt/6,l=Mt/3,s=n.inactive?i:n.color;if(n.type==="plainline")return E.createElement("line",{strokeWidth:4,fill:"none",stroke:s,strokeDasharray:n.payload.strokeDasharray,x1:0,y1:a,x2:Mt,y2:a,className:"recharts-legend-icon"});if(n.type==="line")return E.createElement("path",{strokeWidth:4,fill:"none",stroke:s,d:"M0,".concat(a,"h").concat(l,`
+ A`).concat(o,",").concat(o,",0,1,1,").concat(2*l,",").concat(a,`
+ H`).concat(Mt,"M").concat(2*l,",").concat(a,`
+ A`).concat(o,",").concat(o,",0,1,1,").concat(l,",").concat(a),className:"recharts-legend-icon"});if(n.type==="rect")return E.createElement("path",{stroke:"none",fill:s,d:"M0,".concat(Mt/8,"h").concat(Mt,"v").concat(Mt*3/4,"h").concat(-Mt,"z"),className:"recharts-legend-icon"});if(E.isValidElement(n.legendIcon)){var u=mM({},n);return delete u.legendIcon,E.cloneElement(n.legendIcon,u)}return E.createElement(Uv,{fill:s,cx:a,cy:a,size:Mt,sizeType:"diameter",type:n.type})}},{key:"renderItems",value:function(){var n=this,i=this.props,a=i.payload,o=i.iconSize,l=i.layout,s=i.formatter,u=i.inactiveColor,f={x:0,y:0,width:Mt,height:Mt},c={display:l==="horizontal"?"inline-block":"block",marginRight:10},p={display:"inline-block",verticalAlign:"middle",marginRight:4};return a.map(function(h,y){var b=h.formatter||s,g=oe(Ro(Ro({"recharts-legend-item":!0},"legend-item-".concat(y),!0),"inactive",h.inactive));if(h.type==="none")return null;var m=Z(h.value)?null:h.value;kr(!Z(h.value),`The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: <Bar name="Name of my Data"/>`);var v=h.inactive?u:h.color;return E.createElement("li",xp({className:g,style:c,key:"legend-item-".concat(y)},eu(n.props,h,y)),E.createElement(cp,{width:o,height:o,viewBox:f,style:p},n.renderIcon(h)),E.createElement("span",{className:"recharts-legend-item-text",style:{color:v}},b?b(m,h,y):m))})}},{key:"render",value:function(){var n=this.props,i=n.payload,a=n.layout,o=n.align;if(!i||!i.length)return null;var l={padding:0,margin:0,textAlign:a==="horizontal"?o:"left"};return E.createElement("ul",{className:"recharts-default-legend",style:l},this.renderItems())}}])}(P.PureComponent);Ro(Wv,"displayName","Legend");Ro(Wv,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var _M=xc;function PM(){this.__data__=new _M,this.size=0}var AM=PM;function EM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var kM=EM;function $M(e){return this.__data__.get(e)}var NM=$M;function TM(e){return this.__data__.has(e)}var CM=TM,MM=xc,IM=$v,DM=Nv,LM=200;function RM(e,t){var r=this.__data__;if(r instanceof MM){var n=r.__data__;if(!IM||n.length<LM-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new DM(n)}return r.set(e,t),this.size=r.size,this}var BM=RM,zM=xc,FM=AM,UM=kM,WM=NM,HM=CM,KM=BM;function Pa(e){var t=this.__data__=new zM(e);this.size=t.size}Pa.prototype.clear=FM;Pa.prototype.delete=UM;Pa.prototype.get=WM;Pa.prototype.has=HM;Pa.prototype.set=KM;var YS=Pa,VM="__lodash_hash_undefined__";function GM(e){return this.__data__.set(e,VM),this}var XM=GM;function qM(e){return this.__data__.has(e)}var YM=qM,QM=Nv,ZM=XM,JM=YM;function lu(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new QM;++t<r;)this.add(e[t])}lu.prototype.add=lu.prototype.push=ZM;lu.prototype.has=JM;var QS=lu;function eI(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}var ZS=eI;function tI(e,t){return e.has(t)}var JS=tI,rI=QS,nI=ZS,iI=JS,aI=1,oI=2;function lI(e,t,r,n,i,a){var o=r&aI,l=e.length,s=t.length;if(l!=s&&!(o&&s>l))return!1;var u=a.get(e),f=a.get(t);if(u&&f)return u==t&&f==e;var c=-1,p=!0,h=r&oI?new rI:void 0;for(a.set(e,t),a.set(t,e);++c<l;){var y=e[c],b=t[c];if(n)var g=o?n(b,y,c,t,e,a):n(y,b,c,e,t,a);if(g!==void 0){if(g)continue;p=!1;break}if(h){if(!nI(t,function(m,v){if(!iI(h,v)&&(y===m||i(y,m,r,n,a)))return h.push(v)})){p=!1;break}}else if(!(y===b||i(y,b,r,n,a))){p=!1;break}}return a.delete(e),a.delete(t),p}var eO=lI,sI=gr,uI=sI.Uint8Array,cI=uI;function fI(e){var t=-1,r=Array(e.size);return e.forEach(function(n,i){r[++t]=[i,n]}),r}var dI=fI;function pI(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}var Hv=pI,jg=Pl,_g=cI,hI=kv,vI=eO,mI=dI,yI=Hv,gI=1,xI=2,bI="[object Boolean]",wI="[object Date]",SI="[object Error]",OI="[object Map]",jI="[object Number]",_I="[object RegExp]",PI="[object Set]",AI="[object String]",EI="[object Symbol]",kI="[object ArrayBuffer]",$I="[object DataView]",Pg=jg?jg.prototype:void 0,zf=Pg?Pg.valueOf:void 0;function NI(e,t,r,n,i,a,o){switch(r){case $I:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case kI:return!(e.byteLength!=t.byteLength||!a(new _g(e),new _g(t)));case bI:case wI:case jI:return hI(+e,+t);case SI:return e.name==t.name&&e.message==t.message;case _I:case AI:return e==t+"";case OI:var l=mI;case PI:var s=n&gI;if(l||(l=yI),e.size!=t.size&&!s)return!1;var u=o.get(e);if(u)return u==t;n|=xI,o.set(e,t);var f=vI(l(e),l(t),n,i,a,o);return o.delete(e),f;case EI:if(zf)return zf.call(e)==zf.call(t)}return!1}var TI=NI;function CI(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}var tO=CI,MI=tO,II=bt;function DI(e,t,r){var n=t(e);return II(e)?n:MI(n,r(e))}var LI=DI;function RI(e,t){for(var r=-1,n=e==null?0:e.length,i=0,a=[];++r<n;){var o=e[r];t(o,r,e)&&(a[i++]=o)}return a}var BI=RI;function zI(){return[]}var FI=zI,UI=BI,WI=FI,HI=Object.prototype,KI=HI.propertyIsEnumerable,Ag=Object.getOwnPropertySymbols,VI=Ag?function(e){return e==null?[]:(e=Object(e),UI(Ag(e),function(t){return KI.call(e,t)}))}:WI,GI=VI;function XI(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}var qI=XI,YI=zr,QI=Fr,ZI="[object Arguments]";function JI(e){return QI(e)&&YI(e)==ZI}var e3=JI,Eg=e3,t3=Fr,rO=Object.prototype,r3=rO.hasOwnProperty,n3=rO.propertyIsEnumerable,i3=Eg(function(){return arguments}())?Eg:function(e){return t3(e)&&r3.call(e,"callee")&&!n3.call(e,"callee")},Kv=i3,su={exports:{}};function a3(){return!1}var o3=a3;su.exports;(function(e,t){var r=gr,n=o3,i=t&&!t.nodeType&&t,a=i&&!0&&e&&!e.nodeType&&e,o=a&&a.exports===i,l=o?r.Buffer:void 0,s=l?l.isBuffer:void 0,u=s||n;e.exports=u})(su,su.exports);var nO=su.exports,l3=9007199254740991,s3=/^(?:0|[1-9]\d*)$/;function u3(e,t){var r=typeof e;return t=t??l3,!!t&&(r=="number"||r!="symbol"&&s3.test(e))&&e>-1&&e%1==0&&e<t}var Vv=u3,c3=9007199254740991;function f3(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=c3}var Gv=f3,d3=zr,p3=Gv,h3=Fr,v3="[object Arguments]",m3="[object Array]",y3="[object Boolean]",g3="[object Date]",x3="[object Error]",b3="[object Function]",w3="[object Map]",S3="[object Number]",O3="[object Object]",j3="[object RegExp]",_3="[object Set]",P3="[object String]",A3="[object WeakMap]",E3="[object ArrayBuffer]",k3="[object DataView]",$3="[object Float32Array]",N3="[object Float64Array]",T3="[object Int8Array]",C3="[object Int16Array]",M3="[object Int32Array]",I3="[object Uint8Array]",D3="[object Uint8ClampedArray]",L3="[object Uint16Array]",R3="[object Uint32Array]",ge={};ge[$3]=ge[N3]=ge[T3]=ge[C3]=ge[M3]=ge[I3]=ge[D3]=ge[L3]=ge[R3]=!0;ge[v3]=ge[m3]=ge[E3]=ge[y3]=ge[k3]=ge[g3]=ge[x3]=ge[b3]=ge[w3]=ge[S3]=ge[O3]=ge[j3]=ge[_3]=ge[P3]=ge[A3]=!1;function B3(e){return h3(e)&&p3(e.length)&&!!ge[d3(e)]}var z3=B3;function F3(e){return function(t){return e(t)}}var iO=F3,uu={exports:{}};uu.exports;(function(e,t){var r=dS,n=t&&!t.nodeType&&t,i=n&&!0&&e&&!e.nodeType&&e,a=i&&i.exports===n,o=a&&r.process,l=function(){try{var s=i&&i.require&&i.require("util").types;return s||o&&o.binding&&o.binding("util")}catch{}}();e.exports=l})(uu,uu.exports);var U3=uu.exports,W3=z3,H3=iO,kg=U3,$g=kg&&kg.isTypedArray,K3=$g?H3($g):W3,aO=K3,V3=qI,G3=Kv,X3=bt,q3=nO,Y3=Vv,Q3=aO,Z3=Object.prototype,J3=Z3.hasOwnProperty;function e4(e,t){var r=X3(e),n=!r&&G3(e),i=!r&&!n&&q3(e),a=!r&&!n&&!i&&Q3(e),o=r||n||i||a,l=o?V3(e.length,String):[],s=l.length;for(var u in e)(t||J3.call(e,u))&&!(o&&(u=="length"||i&&(u=="offset"||u=="parent")||a&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Y3(u,s)))&&l.push(u);return l}var t4=e4,r4=Object.prototype;function n4(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||r4;return e===r}var i4=n4;function a4(e,t){return function(r){return e(t(r))}}var oO=a4,o4=oO,l4=o4(Object.keys,Object),s4=l4,u4=i4,c4=s4,f4=Object.prototype,d4=f4.hasOwnProperty;function p4(e){if(!u4(e))return c4(e);var t=[];for(var r in Object(e))d4.call(e,r)&&r!="constructor"&&t.push(r);return t}var h4=p4,v4=Ev,m4=Gv;function y4(e){return e!=null&&m4(e.length)&&!v4(e)}var El=y4,g4=t4,x4=h4,b4=El;function w4(e){return b4(e)?g4(e):x4(e)}var Dc=w4,S4=LI,O4=GI,j4=Dc;function _4(e){return S4(e,j4,O4)}var P4=_4,Ng=P4,A4=1,E4=Object.prototype,k4=E4.hasOwnProperty;function $4(e,t,r,n,i,a){var o=r&A4,l=Ng(e),s=l.length,u=Ng(t),f=u.length;if(s!=f&&!o)return!1;for(var c=s;c--;){var p=l[c];if(!(o?p in t:k4.call(t,p)))return!1}var h=a.get(e),y=a.get(t);if(h&&y)return h==t&&y==e;var b=!0;a.set(e,t),a.set(t,e);for(var g=o;++c<s;){p=l[c];var m=e[p],v=t[p];if(n)var x=o?n(v,m,p,t,e,a):n(m,v,p,e,t,a);if(!(x===void 0?m===v||i(m,v,r,n,a):x)){b=!1;break}g||(g=p=="constructor")}if(b&&!g){var O=e.constructor,w=t.constructor;O!=w&&"constructor"in e&&"constructor"in t&&!(typeof O=="function"&&O instanceof O&&typeof w=="function"&&w instanceof w)&&(b=!1)}return a.delete(e),a.delete(t),b}var N4=$4,T4=oi,C4=gr,M4=T4(C4,"DataView"),I4=M4,D4=oi,L4=gr,R4=D4(L4,"Promise"),B4=R4,z4=oi,F4=gr,U4=z4(F4,"Set"),lO=U4,W4=oi,H4=gr,K4=W4(H4,"WeakMap"),V4=K4,wp=I4,Sp=$v,Op=B4,jp=lO,_p=V4,sO=zr,Aa=hS,Tg="[object Map]",G4="[object Object]",Cg="[object Promise]",Mg="[object Set]",Ig="[object WeakMap]",Dg="[object DataView]",X4=Aa(wp),q4=Aa(Sp),Y4=Aa(Op),Q4=Aa(jp),Z4=Aa(_p),Cn=sO;(wp&&Cn(new wp(new ArrayBuffer(1)))!=Dg||Sp&&Cn(new Sp)!=Tg||Op&&Cn(Op.resolve())!=Cg||jp&&Cn(new jp)!=Mg||_p&&Cn(new _p)!=Ig)&&(Cn=function(e){var t=sO(e),r=t==G4?e.constructor:void 0,n=r?Aa(r):"";if(n)switch(n){case X4:return Dg;case q4:return Tg;case Y4:return Cg;case Q4:return Mg;case Z4:return Ig}return t});var J4=Cn,Ff=YS,eD=eO,tD=TI,rD=N4,Lg=J4,Rg=bt,Bg=nO,nD=aO,iD=1,zg="[object Arguments]",Fg="[object Array]",ts="[object Object]",aD=Object.prototype,Ug=aD.hasOwnProperty;function oD(e,t,r,n,i,a){var o=Rg(e),l=Rg(t),s=o?Fg:Lg(e),u=l?Fg:Lg(t);s=s==zg?ts:s,u=u==zg?ts:u;var f=s==ts,c=u==ts,p=s==u;if(p&&Bg(e)){if(!Bg(t))return!1;o=!0,f=!1}if(p&&!f)return a||(a=new Ff),o||nD(e)?eD(e,t,r,n,i,a):tD(e,t,s,r,n,i,a);if(!(r&iD)){var h=f&&Ug.call(e,"__wrapped__"),y=c&&Ug.call(t,"__wrapped__");if(h||y){var b=h?e.value():e,g=y?t.value():t;return a||(a=new Ff),i(b,g,r,n,a)}}return p?(a||(a=new Ff),rD(e,t,r,n,i,a)):!1}var lD=oD,sD=lD,Wg=Fr;function uO(e,t,r,n,i){return e===t?!0:e==null||t==null||!Wg(e)&&!Wg(t)?e!==e&&t!==t:sD(e,t,r,n,uO,i)}var Xv=uO,uD=YS,cD=Xv,fD=1,dD=2;function pD(e,t,r,n){var i=r.length,a=i,o=!n;if(e==null)return!a;for(e=Object(e);i--;){var l=r[i];if(o&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++i<a;){l=r[i];var s=l[0],u=e[s],f=l[1];if(o&&l[2]){if(u===void 0&&!(s in e))return!1}else{var c=new uD;if(n)var p=n(u,f,s,e,t,c);if(!(p===void 0?cD(f,u,fD|dD,n,c):p))return!1}}return!0}var hD=pD,vD=wn;function mD(e){return e===e&&!vD(e)}var cO=mD,yD=cO,gD=Dc;function xD(e){for(var t=gD(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,yD(i)]}return t}var bD=xD;function wD(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}var fO=wD,SD=hD,OD=bD,jD=fO;function _D(e){var t=OD(e);return t.length==1&&t[0][2]?jD(t[0][0],t[0][1]):function(r){return r===e||SD(r,e,t)}}var PD=_D;function AD(e,t){return e!=null&&t in Object(e)}var ED=AD,kD=xS,$D=Kv,ND=bt,TD=Vv,CD=Gv,MD=wc;function ID(e,t,r){t=kD(t,e);for(var n=-1,i=t.length,a=!1;++n<i;){var o=MD(t[n]);if(!(a=e!=null&&r(e,o)))break;e=e[o]}return a||++n!=i?a:(i=e==null?0:e.length,!!i&&CD(i)&&TD(o,i)&&(ND(e)||$D(e)))}var DD=ID,LD=ED,RD=DD;function BD(e,t){return e!=null&&RD(e,t,LD)}var zD=BD,FD=Xv,UD=bS,WD=zD,HD=Av,KD=cO,VD=fO,GD=wc,XD=1,qD=2;function YD(e,t){return HD(e)&&KD(t)?VD(GD(e),t):function(r){var n=UD(r,e);return n===void 0&&n===t?WD(r,e):FD(t,n,XD|qD)}}var QD=YD;function ZD(e){return e}var Ea=ZD;function JD(e){return function(t){return t==null?void 0:t[e]}}var eL=JD,tL=Mv;function rL(e){return function(t){return tL(t,e)}}var nL=rL,iL=eL,aL=nL,oL=Av,lL=wc;function sL(e){return oL(e)?iL(lL(e)):aL(e)}var uL=sL,cL=PD,fL=QD,dL=Ea,pL=bt,hL=uL;function vL(e){return typeof e=="function"?e:e==null?dL:typeof e=="object"?pL(e)?fL(e[0],e[1]):cL(e):hL(e)}var Sn=vL;function mL(e,t,r,n){for(var i=e.length,a=r+(n?1:-1);n?a--:++a<i;)if(t(e[a],a,e))return a;return-1}var dO=mL;function yL(e){return e!==e}var gL=yL;function xL(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}var bL=xL,wL=dO,SL=gL,OL=bL;function jL(e,t,r){return t===t?OL(e,t,r):wL(e,SL,r)}var _L=jL,PL=_L;function AL(e,t){var r=e==null?0:e.length;return!!r&&PL(e,t,0)>-1}var EL=AL;function kL(e,t,r){for(var n=-1,i=e==null?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}var $L=kL;function NL(){}var TL=NL,Uf=lO,CL=TL,ML=Hv,IL=1/0,DL=Uf&&1/ML(new Uf([,-0]))[1]==IL?function(e){return new Uf(e)}:CL,LL=DL,RL=QS,BL=EL,zL=$L,FL=JS,UL=LL,WL=Hv,HL=200;function KL(e,t,r){var n=-1,i=BL,a=e.length,o=!0,l=[],s=l;if(r)o=!1,i=zL;else if(a>=HL){var u=t?null:UL(e);if(u)return WL(u);o=!1,i=FL,s=new RL}else s=t?[]:l;e:for(;++n<a;){var f=e[n],c=t?t(f):f;if(f=r||f!==0?f:0,o&&c===c){for(var p=s.length;p--;)if(s[p]===c)continue e;t&&s.push(c),l.push(f)}else i(s,c,r)||(s!==l&&s.push(c),l.push(f))}return l}var VL=KL,GL=Sn,XL=VL;function qL(e,t){return e&&e.length?XL(e,GL(t)):[]}var YL=qL;const Hg=he(YL);function pO(e,t,r){return t===!0?Hg(e,r):Z(t)?Hg(e,t):e}function qi(e){"@babel/helpers - typeof";return qi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},qi(e)}var QL=["ref"];function Kg(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function xr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Kg(Object(r),!0).forEach(function(n){Lc(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Kg(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function ZL(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Vg(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,vO(n.key),n)}}function JL(e,t,r){return t&&Vg(e.prototype,t),r&&Vg(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function eR(e,t,r){return t=cu(t),tR(e,hO()?Reflect.construct(t,r||[],cu(e).constructor):t.apply(e,r))}function tR(e,t){if(t&&(qi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return rR(e)}function rR(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function hO(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(hO=function(){return!!e})()}function cu(e){return cu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},cu(e)}function nR(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Pp(e,t)}function Pp(e,t){return Pp=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Pp(e,t)}function Lc(e,t,r){return t=vO(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function vO(e){var t=iR(e,"string");return qi(t)=="symbol"?t:t+""}function iR(e,t){if(qi(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(qi(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function aR(e,t){if(e==null)return{};var r=oR(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function oR(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function lR(e){return e.value}function sR(e,t){if(E.isValidElement(e))return E.cloneElement(e,t);if(typeof e=="function")return E.createElement(e,t);t.ref;var r=aR(t,QL);return E.createElement(Wv,r)}var Gg=1,Li=function(e){function t(){var r;ZL(this,t);for(var n=arguments.length,i=new Array(n),a=0;a<n;a++)i[a]=arguments[a];return r=eR(this,t,[].concat(i)),Lc(r,"lastBoundingBox",{width:-1,height:-1}),r}return nR(t,e),JL(t,[{key:"componentDidMount",value:function(){this.updateBBox()}},{key:"componentDidUpdate",value:function(){this.updateBBox()}},{key:"getBBox",value:function(){if(this.wrapperNode&&this.wrapperNode.getBoundingClientRect){var n=this.wrapperNode.getBoundingClientRect();return n.height=this.wrapperNode.offsetHeight,n.width=this.wrapperNode.offsetWidth,n}return null}},{key:"updateBBox",value:function(){var n=this.props.onBBoxUpdate,i=this.getBBox();i?(Math.abs(i.width-this.lastBoundingBox.width)>Gg||Math.abs(i.height-this.lastBoundingBox.height)>Gg)&&(this.lastBoundingBox.width=i.width,this.lastBoundingBox.height=i.height,n&&n(i)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,n&&n(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?xr({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(n){var i=this.props,a=i.layout,o=i.align,l=i.verticalAlign,s=i.margin,u=i.chartWidth,f=i.chartHeight,c,p;if(!n||(n.left===void 0||n.left===null)&&(n.right===void 0||n.right===null))if(o==="center"&&a==="vertical"){var h=this.getBBoxSnapshot();c={left:((u||0)-h.width)/2}}else c=o==="right"?{right:s&&s.right||0}:{left:s&&s.left||0};if(!n||(n.top===void 0||n.top===null)&&(n.bottom===void 0||n.bottom===null))if(l==="middle"){var y=this.getBBoxSnapshot();p={top:((f||0)-y.height)/2}}else p=l==="bottom"?{bottom:s&&s.bottom||0}:{top:s&&s.top||0};return xr(xr({},c),p)}},{key:"render",value:function(){var n=this,i=this.props,a=i.content,o=i.width,l=i.height,s=i.wrapperStyle,u=i.payloadUniqBy,f=i.payload,c=xr(xr({position:"absolute",width:o||"auto",height:l||"auto"},this.getDefaultPosition(s)),s);return E.createElement("div",{className:"recharts-legend-wrapper",style:c,ref:function(h){n.wrapperNode=h}},sR(a,xr(xr({},this.props),{},{payload:pO(f,u,lR)})))}}],[{key:"getWithHeight",value:function(n,i){var a=xr(xr({},this.defaultProps),n.props),o=a.layout;return o==="vertical"&&H(n.props.height)?{height:n.props.height}:o==="horizontal"?{width:n.props.width||i}:null}}])}(P.PureComponent);Lc(Li,"displayName","Legend");Lc(Li,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var Xg=Pl,uR=Kv,cR=bt,qg=Xg?Xg.isConcatSpreadable:void 0;function fR(e){return cR(e)||uR(e)||!!(qg&&e&&e[qg])}var dR=fR,pR=tO,hR=dR;function mO(e,t,r,n,i){var a=-1,o=e.length;for(r||(r=hR),i||(i=[]);++a<o;){var l=e[a];t>0&&r(l)?t>1?mO(l,t-1,r,n,i):pR(i,l):n||(i[i.length]=l)}return i}var yO=mO;function vR(e){return function(t,r,n){for(var i=-1,a=Object(t),o=n(t),l=o.length;l--;){var s=o[e?l:++i];if(r(a[s],s,a)===!1)break}return t}}var mR=vR,yR=mR,gR=yR(),xR=gR,bR=xR,wR=Dc;function SR(e,t){return e&&bR(e,t,wR)}var gO=SR,OR=El;function jR(e,t){return function(r,n){if(r==null)return r;if(!OR(r))return e(r,n);for(var i=r.length,a=t?i:-1,o=Object(r);(t?a--:++a<i)&&n(o[a],a,o)!==!1;);return r}}var _R=jR,PR=gO,AR=_R,ER=AR(PR),qv=ER,kR=qv,$R=El;function NR(e,t){var r=-1,n=$R(e)?Array(e.length):[];return kR(e,function(i,a,o){n[++r]=t(i,a,o)}),n}var xO=NR;function TR(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}var CR=TR,Yg=ba;function MR(e,t){if(e!==t){var r=e!==void 0,n=e===null,i=e===e,a=Yg(e),o=t!==void 0,l=t===null,s=t===t,u=Yg(t);if(!l&&!u&&!a&&e>t||a&&o&&s&&!l&&!u||n&&o&&s||!r&&s||!i)return 1;if(!n&&!a&&!u&&e<t||u&&r&&i&&!n&&!a||l&&r&&i||!o&&i||!s)return-1}return 0}var IR=MR,DR=IR;function LR(e,t,r){for(var n=-1,i=e.criteria,a=t.criteria,o=i.length,l=r.length;++n<o;){var s=DR(i[n],a[n]);if(s){if(n>=l)return s;var u=r[n];return s*(u=="desc"?-1:1)}}return e.index-t.index}var RR=LR,Wf=Cv,BR=Mv,zR=Sn,FR=xO,UR=CR,WR=iO,HR=RR,KR=Ea,VR=bt;function GR(e,t,r){t.length?t=Wf(t,function(a){return VR(a)?function(o){return BR(o,a.length===1?a[0]:a)}:a}):t=[KR];var n=-1;t=Wf(t,WR(zR));var i=FR(e,function(a,o,l){var s=Wf(t,function(u){return u(a)});return{criteria:s,index:++n,value:a}});return UR(i,function(a,o){return HR(a,o,r)})}var XR=GR;function qR(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var YR=qR,QR=YR,Qg=Math.max;function ZR(e,t,r){return t=Qg(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,a=Qg(n.length-t,0),o=Array(a);++i<a;)o[i]=n[t+i];i=-1;for(var l=Array(t+1);++i<t;)l[i]=n[i];return l[t]=r(o),QR(e,this,l)}}var JR=ZR;function e5(e){return function(){return e}}var t5=e5,r5=oi,n5=function(){try{var e=r5(Object,"defineProperty");return e({},"",{}),e}catch{}}(),bO=n5,i5=t5,Zg=bO,a5=Ea,o5=Zg?function(e,t){return Zg(e,"toString",{configurable:!0,enumerable:!1,value:i5(t),writable:!0})}:a5,l5=o5,s5=800,u5=16,c5=Date.now;function f5(e){var t=0,r=0;return function(){var n=c5(),i=u5-(n-r);if(r=n,i>0){if(++t>=s5)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var d5=f5,p5=l5,h5=d5,v5=h5(p5),m5=v5,y5=Ea,g5=JR,x5=m5;function b5(e,t){return x5(g5(e,t,y5),e+"")}var w5=b5,S5=kv,O5=El,j5=Vv,_5=wn;function P5(e,t,r){if(!_5(r))return!1;var n=typeof t;return(n=="number"?O5(r)&&j5(t,r.length):n=="string"&&t in r)?S5(r[t],e):!1}var Rc=P5,A5=yO,E5=XR,k5=w5,Jg=Rc,$5=k5(function(e,t){if(e==null)return[];var r=t.length;return r>1&&Jg(e,t[0],t[1])?t=[]:r>2&&Jg(t[0],t[1],t[2])&&(t=[t[0]]),E5(e,A5(t,1),[])}),N5=$5;const Yv=he(N5);function Bo(e){"@babel/helpers - typeof";return Bo=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Bo(e)}function Ap(){return Ap=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ap.apply(this,arguments)}function T5(e,t){return D5(e)||I5(e,t)||M5(e,t)||C5()}function C5(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function M5(e,t){if(e){if(typeof e=="string")return e0(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return e0(e,t)}}function e0(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function I5(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,l=[],s=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(s=(n=a.call(r)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(f){u=!0,i=f}finally{try{if(!s&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return l}}function D5(e){if(Array.isArray(e))return e}function t0(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Hf(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?t0(Object(r),!0).forEach(function(n){L5(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):t0(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function L5(e,t,r){return t=R5(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function R5(e){var t=B5(e,"string");return Bo(t)=="symbol"?t:t+""}function B5(e,t){if(Bo(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Bo(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function z5(e){return Array.isArray(e)&&We(e[0])&&We(e[1])?e.join(" ~ "):e}var F5=function(t){var r=t.separator,n=r===void 0?" : ":r,i=t.contentStyle,a=i===void 0?{}:i,o=t.itemStyle,l=o===void 0?{}:o,s=t.labelStyle,u=s===void 0?{}:s,f=t.payload,c=t.formatter,p=t.itemSorter,h=t.wrapperClassName,y=t.labelClassName,b=t.label,g=t.labelFormatter,m=t.accessibilityLayer,v=m===void 0?!1:m,x=function(){if(f&&f.length){var k={padding:0,margin:0},D=(p?Yv(f,p):f).map(function(I,M){if(I.type==="none")return null;var R=Hf({display:"block",paddingTop:4,paddingBottom:4,color:I.color||"#000"},l),z=I.formatter||c||z5,T=I.value,L=I.name,B=T,K=L;if(z&&B!=null&&K!=null){var W=z(T,L,I,M,f);if(Array.isArray(W)){var q=T5(W,2);B=q[0],K=q[1]}else B=W}return E.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(M),style:R},We(K)?E.createElement("span",{className:"recharts-tooltip-item-name"},K):null,We(K)?E.createElement("span",{className:"recharts-tooltip-item-separator"},n):null,E.createElement("span",{className:"recharts-tooltip-item-value"},B),E.createElement("span",{className:"recharts-tooltip-item-unit"},I.unit||""))});return E.createElement("ul",{className:"recharts-tooltip-item-list",style:k},D)}return null},O=Hf({margin:0,padding:10,backgroundColor:"#fff",border:"1px solid #ccc",whiteSpace:"nowrap"},a),w=Hf({margin:0},u),S=!re(b),j=S?b:"",_=oe("recharts-default-tooltip",h),A=oe("recharts-tooltip-label",y);S&&g&&f!==void 0&&f!==null&&(j=g(b,f));var $=v?{role:"status","aria-live":"assertive"}:{};return E.createElement("div",Ap({className:_,style:O},$),E.createElement("p",{className:A,style:w},E.isValidElement(j)?j:"".concat(j)),x())};function zo(e){"@babel/helpers - typeof";return zo=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zo(e)}function rs(e,t,r){return t=U5(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function U5(e){var t=W5(e,"string");return zo(t)=="symbol"?t:t+""}function W5(e,t){if(zo(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(zo(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Wa="recharts-tooltip-wrapper",H5={visibility:"hidden"};function K5(e){var t=e.coordinate,r=e.translateX,n=e.translateY;return oe(Wa,rs(rs(rs(rs({},"".concat(Wa,"-right"),H(r)&&t&&H(t.x)&&r>=t.x),"".concat(Wa,"-left"),H(r)&&t&&H(t.x)&&r<t.x),"".concat(Wa,"-bottom"),H(n)&&t&&H(t.y)&&n>=t.y),"".concat(Wa,"-top"),H(n)&&t&&H(t.y)&&n<t.y))}function r0(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.key,i=e.offsetTopLeft,a=e.position,o=e.reverseDirection,l=e.tooltipDimension,s=e.viewBox,u=e.viewBoxDimension;if(a&&H(a[n]))return a[n];var f=r[n]-l-i,c=r[n]+i;if(t[n])return o[n]?f:c;if(o[n]){var p=f,h=s[n];return p<h?Math.max(c,s[n]):Math.max(f,s[n])}var y=c+l,b=s[n]+u;return y>b?Math.max(f,s[n]):Math.max(c,s[n])}function V5(e){var t=e.translateX,r=e.translateY,n=e.useTranslate3d;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function G5(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTopLeft,i=e.position,a=e.reverseDirection,o=e.tooltipBox,l=e.useTranslate3d,s=e.viewBox,u,f,c;return o.height>0&&o.width>0&&r?(f=r0({allowEscapeViewBox:t,coordinate:r,key:"x",offsetTopLeft:n,position:i,reverseDirection:a,tooltipDimension:o.width,viewBox:s,viewBoxDimension:s.width}),c=r0({allowEscapeViewBox:t,coordinate:r,key:"y",offsetTopLeft:n,position:i,reverseDirection:a,tooltipDimension:o.height,viewBox:s,viewBoxDimension:s.height}),u=V5({translateX:f,translateY:c,useTranslate3d:l})):u=H5,{cssProperties:u,cssClasses:K5({translateX:f,translateY:c,coordinate:r})}}function Yi(e){"@babel/helpers - typeof";return Yi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Yi(e)}function n0(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function i0(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?n0(Object(r),!0).forEach(function(n){kp(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n0(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function X5(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function q5(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,SO(n.key),n)}}function Y5(e,t,r){return t&&q5(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Q5(e,t,r){return t=fu(t),Z5(e,wO()?Reflect.construct(t,r||[],fu(e).constructor):t.apply(e,r))}function Z5(e,t){if(t&&(Yi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return J5(e)}function J5(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function wO(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(wO=function(){return!!e})()}function fu(e){return fu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},fu(e)}function eB(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ep(e,t)}function Ep(e,t){return Ep=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Ep(e,t)}function kp(e,t,r){return t=SO(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function SO(e){var t=tB(e,"string");return Yi(t)=="symbol"?t:t+""}function tB(e,t){if(Yi(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Yi(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var a0=1,rB=function(e){function t(){var r;X5(this,t);for(var n=arguments.length,i=new Array(n),a=0;a<n;a++)i[a]=arguments[a];return r=Q5(this,t,[].concat(i)),kp(r,"state",{dismissed:!1,dismissedAtCoordinate:{x:0,y:0},lastBoundingBox:{width:-1,height:-1}}),kp(r,"handleKeyDown",function(o){if(o.key==="Escape"){var l,s,u,f;r.setState({dismissed:!0,dismissedAtCoordinate:{x:(l=(s=r.props.coordinate)===null||s===void 0?void 0:s.x)!==null&&l!==void 0?l:0,y:(u=(f=r.props.coordinate)===null||f===void 0?void 0:f.y)!==null&&u!==void 0?u:0}})}}),r}return eB(t,e),Y5(t,[{key:"updateBBox",value:function(){if(this.wrapperNode&&this.wrapperNode.getBoundingClientRect){var n=this.wrapperNode.getBoundingClientRect();(Math.abs(n.width-this.state.lastBoundingBox.width)>a0||Math.abs(n.height-this.state.lastBoundingBox.height)>a0)&&this.setState({lastBoundingBox:{width:n.width,height:n.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var n,i;this.props.active&&this.updateBBox(),this.state.dismissed&&(((n=this.props.coordinate)===null||n===void 0?void 0:n.x)!==this.state.dismissedAtCoordinate.x||((i=this.props.coordinate)===null||i===void 0?void 0:i.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var n=this,i=this.props,a=i.active,o=i.allowEscapeViewBox,l=i.animationDuration,s=i.animationEasing,u=i.children,f=i.coordinate,c=i.hasPayload,p=i.isAnimationActive,h=i.offset,y=i.position,b=i.reverseDirection,g=i.useTranslate3d,m=i.viewBox,v=i.wrapperStyle,x=G5({allowEscapeViewBox:o,coordinate:f,offsetTopLeft:h,position:y,reverseDirection:b,tooltipBox:this.state.lastBoundingBox,useTranslate3d:g,viewBox:m}),O=x.cssClasses,w=x.cssProperties,S=i0(i0({transition:p&&a?"transform ".concat(l,"ms ").concat(s):void 0},w),{},{pointerEvents:"none",visibility:!this.state.dismissed&&a&&c?"visible":"hidden",position:"absolute",top:0,left:0},v);return E.createElement("div",{tabIndex:-1,className:O,style:S,ref:function(_){n.wrapperNode=_}},u)}}])}(P.PureComponent),nB=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},ka={isSsr:nB()};function Qi(e){"@babel/helpers - typeof";return Qi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Qi(e)}function o0(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function l0(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?o0(Object(r),!0).forEach(function(n){Qv(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o0(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function iB(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function aB(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,jO(n.key),n)}}function oB(e,t,r){return t&&aB(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function lB(e,t,r){return t=du(t),sB(e,OO()?Reflect.construct(t,r||[],du(e).constructor):t.apply(e,r))}function sB(e,t){if(t&&(Qi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return uB(e)}function uB(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function OO(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(OO=function(){return!!e})()}function du(e){return du=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},du(e)}function cB(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&$p(e,t)}function $p(e,t){return $p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},$p(e,t)}function Qv(e,t,r){return t=jO(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function jO(e){var t=fB(e,"string");return Qi(t)=="symbol"?t:t+""}function fB(e,t){if(Qi(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Qi(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function dB(e){return e.dataKey}function pB(e,t){return E.isValidElement(e)?E.cloneElement(e,t):typeof e=="function"?E.createElement(e,t):E.createElement(F5,t)}var ur=function(e){function t(){return iB(this,t),lB(this,t,arguments)}return cB(t,e),oB(t,[{key:"render",value:function(){var n=this,i=this.props,a=i.active,o=i.allowEscapeViewBox,l=i.animationDuration,s=i.animationEasing,u=i.content,f=i.coordinate,c=i.filterNull,p=i.isAnimationActive,h=i.offset,y=i.payload,b=i.payloadUniqBy,g=i.position,m=i.reverseDirection,v=i.useTranslate3d,x=i.viewBox,O=i.wrapperStyle,w=y??[];c&&w.length&&(w=pO(y.filter(function(j){return j.value!=null&&(j.hide!==!0||n.props.includeHidden)}),b,dB));var S=w.length>0;return E.createElement(rB,{allowEscapeViewBox:o,animationDuration:l,animationEasing:s,isAnimationActive:p,active:a,coordinate:f,hasPayload:S,offset:h,position:g,reverseDirection:m,useTranslate3d:v,viewBox:x,wrapperStyle:O},pB(u,l0(l0({},this.props),{},{payload:w})))}}])}(P.PureComponent);Qv(ur,"displayName","Tooltip");Qv(ur,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!ka.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var hB=gr,vB=function(){return hB.Date.now()},mB=vB,yB=/\s/;function gB(e){for(var t=e.length;t--&&yB.test(e.charAt(t)););return t}var xB=gB,bB=xB,wB=/^\s+/;function SB(e){return e&&e.slice(0,bB(e)+1).replace(wB,"")}var OB=SB,jB=OB,s0=wn,_B=ba,u0=NaN,PB=/^[-+]0x[0-9a-f]+$/i,AB=/^0b[01]+$/i,EB=/^0o[0-7]+$/i,kB=parseInt;function $B(e){if(typeof e=="number")return e;if(_B(e))return u0;if(s0(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=s0(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=jB(e);var r=AB.test(e);return r||EB.test(e)?kB(e.slice(2),r?2:8):PB.test(e)?u0:+e}var _O=$B,NB=wn,Kf=mB,c0=_O,TB="Expected a function",CB=Math.max,MB=Math.min;function IB(e,t,r){var n,i,a,o,l,s,u=0,f=!1,c=!1,p=!0;if(typeof e!="function")throw new TypeError(TB);t=c0(t)||0,NB(r)&&(f=!!r.leading,c="maxWait"in r,a=c?CB(c0(r.maxWait)||0,t):a,p="trailing"in r?!!r.trailing:p);function h(S){var j=n,_=i;return n=i=void 0,u=S,o=e.apply(_,j),o}function y(S){return u=S,l=setTimeout(m,t),f?h(S):o}function b(S){var j=S-s,_=S-u,A=t-j;return c?MB(A,a-_):A}function g(S){var j=S-s,_=S-u;return s===void 0||j>=t||j<0||c&&_>=a}function m(){var S=Kf();if(g(S))return v(S);l=setTimeout(m,b(S))}function v(S){return l=void 0,p&&n?h(S):(n=i=void 0,o)}function x(){l!==void 0&&clearTimeout(l),u=0,n=s=i=l=void 0}function O(){return l===void 0?o:v(Kf())}function w(){var S=Kf(),j=g(S);if(n=arguments,i=this,s=S,j){if(l===void 0)return y(s);if(c)return clearTimeout(l),l=setTimeout(m,t),h(s)}return l===void 0&&(l=setTimeout(m,t)),o}return w.cancel=x,w.flush=O,w}var DB=IB,LB=DB,RB=wn,BB="Expected a function";function zB(e,t,r){var n=!0,i=!0;if(typeof e!="function")throw new TypeError(BB);return RB(r)&&(n="leading"in r?!!r.leading:n,i="trailing"in r?!!r.trailing:i),LB(e,t,{leading:n,maxWait:t,trailing:i})}var FB=zB;const PO=he(FB);function Fo(e){"@babel/helpers - typeof";return Fo=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Fo(e)}function f0(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ns(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?f0(Object(r),!0).forEach(function(n){UB(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f0(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function UB(e,t,r){return t=WB(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function WB(e){var t=HB(e,"string");return Fo(t)=="symbol"?t:t+""}function HB(e,t){if(Fo(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Fo(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function KB(e,t){return qB(e)||XB(e,t)||GB(e,t)||VB()}function VB(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function GB(e,t){if(e){if(typeof e=="string")return d0(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return d0(e,t)}}function d0(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function XB(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,l=[],s=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(s=(n=a.call(r)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(f){u=!0,i=f}finally{try{if(!s&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return l}}function qB(e){if(Array.isArray(e))return e}var YB=P.forwardRef(function(e,t){var r=e.aspect,n=e.initialDimension,i=n===void 0?{width:-1,height:-1}:n,a=e.width,o=a===void 0?"100%":a,l=e.height,s=l===void 0?"100%":l,u=e.minWidth,f=u===void 0?0:u,c=e.minHeight,p=e.maxHeight,h=e.children,y=e.debounce,b=y===void 0?0:y,g=e.id,m=e.className,v=e.onResize,x=e.style,O=x===void 0?{}:x,w=P.useRef(null),S=P.useRef();S.current=v,P.useImperativeHandle(t,function(){return Object.defineProperty(w.current,"current",{get:function(){return console.warn("The usage of ref.current.current is deprecated and will no longer be supported."),w.current},configurable:!0})});var j=P.useState({containerWidth:i.width,containerHeight:i.height}),_=KB(j,2),A=_[0],$=_[1],N=P.useCallback(function(D,I){$(function(M){var R=Math.round(D),z=Math.round(I);return M.containerWidth===R&&M.containerHeight===z?M:{containerWidth:R,containerHeight:z}})},[]);P.useEffect(function(){var D=function(L){var B,K=L[0].contentRect,W=K.width,q=K.height;N(W,q),(B=S.current)===null||B===void 0||B.call(S,W,q)};b>0&&(D=PO(D,b,{trailing:!0,leading:!1}));var I=new ResizeObserver(D),M=w.current.getBoundingClientRect(),R=M.width,z=M.height;return N(R,z),I.observe(w.current),function(){I.disconnect()}},[N,b]);var k=P.useMemo(function(){var D=A.containerWidth,I=A.containerHeight;if(D<0||I<0)return null;kr(Rn(o)||Rn(s),`The width(%s) and height(%s) are both fixed numbers,
+ maybe you don't need to use a ResponsiveContainer.`,o,s),kr(!r||r>0,"The aspect(%s) must be greater than zero.",r);var M=Rn(o)?D:o,R=Rn(s)?I:s;r&&r>0&&(M?R=M/r:R&&(M=R*r),p&&R>p&&(R=p)),kr(M>0||R>0,`The width(%s) and height(%s) of chart should be greater than 0,
+ please check the style of container, or the props width(%s) and height(%s),
+ or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the
+ height and width.`,M,R,o,s,f,c,r);var z=!Array.isArray(h)&&Er(h.type).endsWith("Chart");return E.Children.map(h,function(T){return E.isValidElement(T)?P.cloneElement(T,ns({width:M,height:R},z?{style:ns({height:"100%",width:"100%",maxHeight:R,maxWidth:M},T.props.style)}:{})):T})},[r,h,s,p,c,f,A,o]);return E.createElement("div",{id:g?"".concat(g):void 0,className:oe("recharts-responsive-container",m),style:ns(ns({},O),{},{width:o,height:s,minWidth:f,minHeight:c,maxHeight:p}),ref:w},k)}),AO=function(t){return null};AO.displayName="Cell";function Uo(e){"@babel/helpers - typeof";return Uo=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Uo(e)}function p0(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Np(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?p0(Object(r),!0).forEach(function(n){QB(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p0(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function QB(e,t,r){return t=ZB(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ZB(e){var t=JB(e,"string");return Uo(t)=="symbol"?t:t+""}function JB(e,t){if(Uo(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Uo(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var di={widthCache:{},cacheCount:0},e8=2e3,t8={position:"absolute",top:"-20000px",left:0,padding:0,margin:0,border:"none",whiteSpace:"pre"},h0="recharts_measurement_span";function r8(e){var t=Np({},e);return Object.keys(t).forEach(function(r){t[r]||delete t[r]}),t}var po=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||ka.isSsr)return{width:0,height:0};var n=r8(r),i=JSON.stringify({text:t,copyStyle:n});if(di.widthCache[i])return di.widthCache[i];try{var a=document.getElementById(h0);a||(a=document.createElement("span"),a.setAttribute("id",h0),a.setAttribute("aria-hidden","true"),document.body.appendChild(a));var o=Np(Np({},t8),n);Object.assign(a.style,o),a.textContent="".concat(t);var l=a.getBoundingClientRect(),s={width:l.width,height:l.height};return di.widthCache[i]=s,++di.cacheCount>e8&&(di.cacheCount=0,di.widthCache={}),s}catch{return{width:0,height:0}}},n8=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function Wo(e){"@babel/helpers - typeof";return Wo=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Wo(e)}function pu(e,t){return l8(e)||o8(e,t)||a8(e,t)||i8()}function i8(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function a8(e,t){if(e){if(typeof e=="string")return v0(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return v0(e,t)}}function v0(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function o8(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,l=[],s=!0,u=!1;try{if(a=(r=r.call(e)).next,t===0){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=a.call(r)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(f){u=!0,i=f}finally{try{if(!s&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return l}}function l8(e){if(Array.isArray(e))return e}function s8(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function m0(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,c8(n.key),n)}}function u8(e,t,r){return t&&m0(e.prototype,t),r&&m0(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function c8(e){var t=f8(e,"string");return Wo(t)=="symbol"?t:t+""}function f8(e,t){if(Wo(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Wo(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var y0=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,g0=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,d8=/^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/,p8=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,EO={cm:96/2.54,mm:96/25.4,pt:96/72,pc:96/6,in:96,Q:96/(2.54*40),px:1},h8=Object.keys(EO),Ai="NaN";function v8(e,t){return e*EO[t]}var is=function(){function e(t,r){s8(this,e),this.num=t,this.unit=r,this.num=t,this.unit=r,Number.isNaN(t)&&(this.unit=""),r!==""&&!d8.test(r)&&(this.num=NaN,this.unit=""),h8.includes(r)&&(this.num=v8(t,r),this.unit="px")}return u8(e,[{key:"add",value:function(r){return this.unit!==r.unit?new e(NaN,""):new e(this.num+r.num,this.unit)}},{key:"subtract",value:function(r){return this.unit!==r.unit?new e(NaN,""):new e(this.num-r.num,this.unit)}},{key:"multiply",value:function(r){return this.unit!==""&&r.unit!==""&&this.unit!==r.unit?new e(NaN,""):new e(this.num*r.num,this.unit||r.unit)}},{key:"divide",value:function(r){return this.unit!==""&&r.unit!==""&&this.unit!==r.unit?new e(NaN,""):new e(this.num/r.num,this.unit||r.unit)}},{key:"toString",value:function(){return"".concat(this.num).concat(this.unit)}},{key:"isNaN",value:function(){return Number.isNaN(this.num)}}],[{key:"parse",value:function(r){var n,i=(n=p8.exec(r))!==null&&n!==void 0?n:[],a=pu(i,3),o=a[1],l=a[2];return new e(parseFloat(o),l??"")}}])}();function kO(e){if(e.includes(Ai))return Ai;for(var t=e;t.includes("*")||t.includes("/");){var r,n=(r=y0.exec(t))!==null&&r!==void 0?r:[],i=pu(n,4),a=i[1],o=i[2],l=i[3],s=is.parse(a??""),u=is.parse(l??""),f=o==="*"?s.multiply(u):s.divide(u);if(f.isNaN())return Ai;t=t.replace(y0,f.toString())}for(;t.includes("+")||/.-\d+(?:\.\d+)?/.test(t);){var c,p=(c=g0.exec(t))!==null&&c!==void 0?c:[],h=pu(p,4),y=h[1],b=h[2],g=h[3],m=is.parse(y??""),v=is.parse(g??""),x=b==="+"?m.add(v):m.subtract(v);if(x.isNaN())return Ai;t=t.replace(g0,x.toString())}return t}var x0=/\(([^()]*)\)/;function m8(e){for(var t=e;t.includes("(");){var r=x0.exec(t),n=pu(r,2),i=n[1];t=t.replace(x0,kO(i))}return t}function y8(e){var t=e.replace(/\s+/g,"");return t=m8(t),t=kO(t),t}function g8(e){try{return y8(e)}catch{return Ai}}function Vf(e){var t=g8(e.slice(5,-1));return t===Ai?"":t}var x8=["x","y","lineHeight","capHeight","scaleToFit","textAnchor","verticalAnchor","fill"],b8=["dx","dy","angle","className","breakAll"];function Tp(){return Tp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Tp.apply(this,arguments)}function b0(e,t){if(e==null)return{};var r=w8(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function w8(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function w0(e,t){return _8(e)||j8(e,t)||O8(e,t)||S8()}function S8(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function O8(e,t){if(e){if(typeof e=="string")return S0(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return S0(e,t)}}function S0(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function j8(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,l=[],s=!0,u=!1;try{if(a=(r=r.call(e)).next,t===0){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=a.call(r)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(f){u=!0,i=f}finally{try{if(!s&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return l}}function _8(e){if(Array.isArray(e))return e}var $O=/[ \f\n\r\t\v\u2028\u2029]+/,NO=function(t){var r=t.children,n=t.breakAll,i=t.style;try{var a=[];re(r)||(n?a=r.toString().split(""):a=r.toString().split($O));var o=a.map(function(s){return{word:s,width:po(s,i).width}}),l=n?0:po(" ",i).width;return{wordsWithComputedWidth:o,spaceWidth:l}}catch{return null}},P8=function(t,r,n,i,a){var o=t.maxLines,l=t.children,s=t.style,u=t.breakAll,f=H(o),c=l,p=function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return M.reduce(function(R,z){var T=z.word,L=z.width,B=R[R.length-1];if(B&&(i==null||a||B.width+L+n<Number(i)))B.words.push(T),B.width+=L+n;else{var K={words:[T],width:L};R.push(K)}return R},[])},h=p(r),y=function(M){return M.reduce(function(R,z){return R.width>z.width?R:z})};if(!f)return h;for(var b="…",g=function(M){var R=c.slice(0,M),z=NO({breakAll:u,style:s,children:R+b}).wordsWithComputedWidth,T=p(z),L=T.length>o||y(T).width>Number(i);return[L,T]},m=0,v=c.length-1,x=0,O;m<=v&&x<=c.length-1;){var w=Math.floor((m+v)/2),S=w-1,j=g(S),_=w0(j,2),A=_[0],$=_[1],N=g(w),k=w0(N,1),D=k[0];if(!A&&!D&&(m=w+1),A&&D&&(v=w-1),!A&&D){O=$;break}x++}return O||h},O0=function(t){var r=re(t)?[]:t.toString().split($O);return[{words:r}]},A8=function(t){var r=t.width,n=t.scaleToFit,i=t.children,a=t.style,o=t.breakAll,l=t.maxLines;if((r||n)&&!ka.isSsr){var s,u,f=NO({breakAll:o,children:i,style:a});if(f){var c=f.wordsWithComputedWidth,p=f.spaceWidth;s=c,u=p}else return O0(i);return P8({breakAll:o,children:i,maxLines:l,style:a},s,u,r,n)}return O0(i)},j0="#808080",hu=function(t){var r=t.x,n=r===void 0?0:r,i=t.y,a=i===void 0?0:i,o=t.lineHeight,l=o===void 0?"1em":o,s=t.capHeight,u=s===void 0?"0.71em":s,f=t.scaleToFit,c=f===void 0?!1:f,p=t.textAnchor,h=p===void 0?"start":p,y=t.verticalAnchor,b=y===void 0?"end":y,g=t.fill,m=g===void 0?j0:g,v=b0(t,x8),x=P.useMemo(function(){return A8({breakAll:v.breakAll,children:v.children,maxLines:v.maxLines,scaleToFit:c,style:v.style,width:v.width})},[v.breakAll,v.children,v.maxLines,c,v.style,v.width]),O=v.dx,w=v.dy,S=v.angle,j=v.className,_=v.breakAll,A=b0(v,b8);if(!We(n)||!We(a))return null;var $=n+(H(O)?O:0),N=a+(H(w)?w:0),k;switch(b){case"start":k=Vf("calc(".concat(u,")"));break;case"middle":k=Vf("calc(".concat((x.length-1)/2," * -").concat(l," + (").concat(u," / 2))"));break;default:k=Vf("calc(".concat(x.length-1," * -").concat(l,")"));break}var D=[];if(c){var I=x[0].width,M=v.width;D.push("scale(".concat((H(M)?M/I:1)/I,")"))}return S&&D.push("rotate(".concat(S,", ").concat($,", ").concat(N,")")),D.length&&(A.transform=D.join(" ")),E.createElement("text",Tp({},ee(A,!0),{x:$,y:N,className:oe("recharts-text",j),textAnchor:h,fill:m.includes("url")?j0:m}),x.map(function(R,z){var T=R.words.join(_?"":" ");return E.createElement("tspan",{x:$,dy:z===0?k:l,key:"".concat(T,"-").concat(z)},T)}))};function pn(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function E8(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Zv(e){let t,r,n;e.length!==2?(t=pn,r=(l,s)=>pn(e(l),s),n=(l,s)=>e(l)-s):(t=e===pn||e===E8?e:k8,r=e,n=e);function i(l,s,u=0,f=l.length){if(u<f){if(t(s,s)!==0)return f;do{const c=u+f>>>1;r(l[c],s)<0?u=c+1:f=c}while(u<f)}return u}function a(l,s,u=0,f=l.length){if(u<f){if(t(s,s)!==0)return f;do{const c=u+f>>>1;r(l[c],s)<=0?u=c+1:f=c}while(u<f)}return u}function o(l,s,u=0,f=l.length){const c=i(l,s,u,f-1);return c>u&&n(l[c-1],s)>-n(l[c],s)?c-1:c}return{left:i,center:o,right:a}}function k8(){return 0}function TO(e){return e===null?NaN:+e}function*$8(e,t){for(let r of e)r!=null&&(r=+r)>=r&&(yield r)}const N8=Zv(pn),kl=N8.right;Zv(TO).center;class _0 extends Map{constructor(t,r=M8){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(const[n,i]of t)this.set(n,i)}get(t){return super.get(P0(this,t))}has(t){return super.has(P0(this,t))}set(t,r){return super.set(T8(this,t),r)}delete(t){return super.delete(C8(this,t))}}function P0({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):r}function T8({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function C8({_intern:e,_key:t},r){const n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function M8(e){return e!==null&&typeof e=="object"?e.valueOf():e}function I8(e=pn){if(e===pn)return CO;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{const n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function CO(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:e>t?1:0)}const D8=Math.sqrt(50),L8=Math.sqrt(10),R8=Math.sqrt(2);function vu(e,t,r){const n=(t-e)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),o=a>=D8?10:a>=L8?5:a>=R8?2:1;let l,s,u;return i<0?(u=Math.pow(10,-i)/o,l=Math.round(e*u),s=Math.round(t*u),l/u<e&&++l,s/u>t&&--s,u=-u):(u=Math.pow(10,i)*o,l=Math.round(e/u),s=Math.round(t/u),l*u<e&&++l,s*u>t&&--s),s<l&&.5<=r&&r<2?vu(e,t,r*2):[l,s,u]}function Cp(e,t,r){if(t=+t,e=+e,r=+r,!(r>0))return[];if(e===t)return[e];const n=t<e,[i,a,o]=n?vu(t,e,r):vu(e,t,r);if(!(a>=i))return[];const l=a-i+1,s=new Array(l);if(n)if(o<0)for(let u=0;u<l;++u)s[u]=(a-u)/-o;else for(let u=0;u<l;++u)s[u]=(a-u)*o;else if(o<0)for(let u=0;u<l;++u)s[u]=(i+u)/-o;else for(let u=0;u<l;++u)s[u]=(i+u)*o;return s}function Mp(e,t,r){return t=+t,e=+e,r=+r,vu(e,t,r)[2]}function Ip(e,t,r){t=+t,e=+e,r=+r;const n=t<e,i=n?Mp(t,e,r):Mp(e,t,r);return(n?-1:1)*(i<0?1/-i:i)}function A0(e,t){let r;for(const n of e)n!=null&&(r<n||r===void 0&&n>=n)&&(r=n);return r}function E0(e,t){let r;for(const n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);return r}function MO(e,t,r=0,n=1/0,i){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(i=i===void 0?CO:I8(i);n>r;){if(n-r>600){const s=n-r+1,u=t-r+1,f=Math.log(s),c=.5*Math.exp(2*f/3),p=.5*Math.sqrt(f*c*(s-c)/s)*(u-s/2<0?-1:1),h=Math.max(r,Math.floor(t-u*c/s+p)),y=Math.min(n,Math.floor(t+(s-u)*c/s+p));MO(e,t,h,y,i)}const a=e[t];let o=r,l=n;for(Ha(e,r,t),i(e[n],a)>0&&Ha(e,r,n);o<l;){for(Ha(e,o,l),++o,--l;i(e[o],a)<0;)++o;for(;i(e[l],a)>0;)--l}i(e[r],a)===0?Ha(e,r,l):(++l,Ha(e,l,n)),l<=t&&(r=l+1),t<=l&&(n=l-1)}return e}function Ha(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function B8(e,t,r){if(e=Float64Array.from($8(e)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return E0(e);if(t>=1)return A0(e);var n,i=(n-1)*t,a=Math.floor(i),o=A0(MO(e,a).subarray(0,a+1)),l=E0(e.subarray(a+1));return o+(l-o)*(i-a)}}function z8(e,t,r=TO){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,i=(n-1)*t,a=Math.floor(i),o=+r(e[a],a,e),l=+r(e[a+1],a+1,e);return o+(l-o)*(i-a)}}function F8(e,t,r){e=+e,t=+t,r=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((t-e)/r))|0,a=new Array(i);++n<i;)a[n]=e+n*r;return a}function Vt(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function Ur(e,t){switch(arguments.length){case 0:break;case 1:{typeof e=="function"?this.interpolator(e):this.range(e);break}default:{this.domain(e),typeof t=="function"?this.interpolator(t):this.range(t);break}}return this}const Dp=Symbol("implicit");function Jv(){var e=new _0,t=[],r=[],n=Dp;function i(a){let o=e.get(a);if(o===void 0){if(n!==Dp)return n;e.set(a,o=t.push(a)-1)}return r[o%r.length]}return i.domain=function(a){if(!arguments.length)return t.slice();t=[],e=new _0;for(const o of a)e.has(o)||e.set(o,t.push(o)-1);return i},i.range=function(a){return arguments.length?(r=Array.from(a),i):r.slice()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return Jv(t,r).unknown(n)},Vt.apply(i,arguments),i}function Ho(){var e=Jv().unknown(void 0),t=e.domain,r=e.range,n=0,i=1,a,o,l=!1,s=0,u=0,f=.5;delete e.unknown;function c(){var p=t().length,h=i<n,y=h?i:n,b=h?n:i;a=(b-y)/Math.max(1,p-s+u*2),l&&(a=Math.floor(a)),y+=(b-y-a*(p-s))*f,o=a*(1-s),l&&(y=Math.round(y),o=Math.round(o));var g=F8(p).map(function(m){return y+a*m});return r(h?g.reverse():g)}return e.domain=function(p){return arguments.length?(t(p),c()):t()},e.range=function(p){return arguments.length?([n,i]=p,n=+n,i=+i,c()):[n,i]},e.rangeRound=function(p){return[n,i]=p,n=+n,i=+i,l=!0,c()},e.bandwidth=function(){return o},e.step=function(){return a},e.round=function(p){return arguments.length?(l=!!p,c()):l},e.padding=function(p){return arguments.length?(s=Math.min(1,u=+p),c()):s},e.paddingInner=function(p){return arguments.length?(s=Math.min(1,p),c()):s},e.paddingOuter=function(p){return arguments.length?(u=+p,c()):u},e.align=function(p){return arguments.length?(f=Math.max(0,Math.min(1,p)),c()):f},e.copy=function(){return Ho(t(),[n,i]).round(l).paddingInner(s).paddingOuter(u).align(f)},Vt.apply(c(),arguments)}function IO(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return IO(t())},e}function ho(){return IO(Ho.apply(null,arguments).paddingInner(1))}function em(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function DO(e,t){var r=Object.create(e.prototype);for(var n in t)r[n]=t[n];return r}function $l(){}var Ko=.7,mu=1/Ko,Ri="\\s*([+-]?\\d+)\\s*",Vo="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",vr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",U8=/^#([0-9a-f]{3,8})$/,W8=new RegExp(`^rgb\\(${Ri},${Ri},${Ri}\\)$`),H8=new RegExp(`^rgb\\(${vr},${vr},${vr}\\)$`),K8=new RegExp(`^rgba\\(${Ri},${Ri},${Ri},${Vo}\\)$`),V8=new RegExp(`^rgba\\(${vr},${vr},${vr},${Vo}\\)$`),G8=new RegExp(`^hsl\\(${Vo},${vr},${vr}\\)$`),X8=new RegExp(`^hsla\\(${Vo},${vr},${vr},${Vo}\\)$`),k0={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};em($l,Go,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:$0,formatHex:$0,formatHex8:q8,formatHsl:Y8,formatRgb:N0,toString:N0});function $0(){return this.rgb().formatHex()}function q8(){return this.rgb().formatHex8()}function Y8(){return LO(this).formatHsl()}function N0(){return this.rgb().formatRgb()}function Go(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=U8.exec(e))?(r=t[1].length,t=parseInt(t[1],16),r===6?T0(t):r===3?new mt(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?as(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?as(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=W8.exec(e))?new mt(t[1],t[2],t[3],1):(t=H8.exec(e))?new mt(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=K8.exec(e))?as(t[1],t[2],t[3],t[4]):(t=V8.exec(e))?as(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=G8.exec(e))?I0(t[1],t[2]/100,t[3]/100,1):(t=X8.exec(e))?I0(t[1],t[2]/100,t[3]/100,t[4]):k0.hasOwnProperty(e)?T0(k0[e]):e==="transparent"?new mt(NaN,NaN,NaN,0):null}function T0(e){return new mt(e>>16&255,e>>8&255,e&255,1)}function as(e,t,r,n){return n<=0&&(e=t=r=NaN),new mt(e,t,r,n)}function Q8(e){return e instanceof $l||(e=Go(e)),e?(e=e.rgb(),new mt(e.r,e.g,e.b,e.opacity)):new mt}function Lp(e,t,r,n){return arguments.length===1?Q8(e):new mt(e,t,r,n??1)}function mt(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}em(mt,Lp,DO($l,{brighter(e){return e=e==null?mu:Math.pow(mu,e),new mt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Ko:Math.pow(Ko,e),new mt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new mt(Kn(this.r),Kn(this.g),Kn(this.b),yu(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:C0,formatHex:C0,formatHex8:Z8,formatRgb:M0,toString:M0}));function C0(){return`#${Bn(this.r)}${Bn(this.g)}${Bn(this.b)}`}function Z8(){return`#${Bn(this.r)}${Bn(this.g)}${Bn(this.b)}${Bn((isNaN(this.opacity)?1:this.opacity)*255)}`}function M0(){const e=yu(this.opacity);return`${e===1?"rgb(":"rgba("}${Kn(this.r)}, ${Kn(this.g)}, ${Kn(this.b)}${e===1?")":`, ${e})`}`}function yu(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Kn(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Bn(e){return e=Kn(e),(e<16?"0":"")+e.toString(16)}function I0(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new er(e,t,r,n)}function LO(e){if(e instanceof er)return new er(e.h,e.s,e.l,e.opacity);if(e instanceof $l||(e=Go(e)),!e)return new er;if(e instanceof er)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,i=Math.min(t,r,n),a=Math.max(t,r,n),o=NaN,l=a-i,s=(a+i)/2;return l?(t===a?o=(r-n)/l+(r<n)*6:r===a?o=(n-t)/l+2:o=(t-r)/l+4,l/=s<.5?a+i:2-a-i,o*=60):l=s>0&&s<1?0:o,new er(o,l,s,e.opacity)}function J8(e,t,r,n){return arguments.length===1?LO(e):new er(e,t,r,n??1)}function er(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}em(er,J8,DO($l,{brighter(e){return e=e==null?mu:Math.pow(mu,e),new er(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ko:Math.pow(Ko,e),new er(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,i=2*r-n;return new mt(Gf(e>=240?e-240:e+120,i,n),Gf(e,i,n),Gf(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new er(D0(this.h),os(this.s),os(this.l),yu(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=yu(this.opacity);return`${e===1?"hsl(":"hsla("}${D0(this.h)}, ${os(this.s)*100}%, ${os(this.l)*100}%${e===1?")":`, ${e})`}`}}));function D0(e){return e=(e||0)%360,e<0?e+360:e}function os(e){return Math.max(0,Math.min(1,e||0))}function Gf(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}const tm=e=>()=>e;function e6(e,t){return function(r){return e+r*t}}function t6(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function r6(e){return(e=+e)==1?RO:function(t,r){return r-t?t6(t,r,e):tm(isNaN(t)?r:t)}}function RO(e,t){var r=t-e;return r?e6(e,r):tm(isNaN(e)?t:e)}const L0=function e(t){var r=r6(t);function n(i,a){var o=r((i=Lp(i)).r,(a=Lp(a)).r),l=r(i.g,a.g),s=r(i.b,a.b),u=RO(i.opacity,a.opacity);return function(f){return i.r=o(f),i.g=l(f),i.b=s(f),i.opacity=u(f),i+""}}return n.gamma=e,n}(1);function n6(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,n=t.slice(),i;return function(a){for(i=0;i<r;++i)n[i]=e[i]*(1-a)+t[i]*a;return n}}function i6(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function a6(e,t){var r=t?t.length:0,n=e?Math.min(r,e.length):0,i=new Array(n),a=new Array(r),o;for(o=0;o<n;++o)i[o]=$a(e[o],t[o]);for(;o<r;++o)a[o]=t[o];return function(l){for(o=0;o<n;++o)a[o]=i[o](l);return a}}function o6(e,t){var r=new Date;return e=+e,t=+t,function(n){return r.setTime(e*(1-n)+t*n),r}}function gu(e,t){return e=+e,t=+t,function(r){return e*(1-r)+t*r}}function l6(e,t){var r={},n={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?r[i]=$a(e[i],t[i]):n[i]=t[i];return function(a){for(i in r)n[i]=r[i](a);return n}}var Rp=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Xf=new RegExp(Rp.source,"g");function s6(e){return function(){return e}}function u6(e){return function(t){return e(t)+""}}function c6(e,t){var r=Rp.lastIndex=Xf.lastIndex=0,n,i,a,o=-1,l=[],s=[];for(e=e+"",t=t+"";(n=Rp.exec(e))&&(i=Xf.exec(t));)(a=i.index)>r&&(a=t.slice(r,a),l[o]?l[o]+=a:l[++o]=a),(n=n[0])===(i=i[0])?l[o]?l[o]+=i:l[++o]=i:(l[++o]=null,s.push({i:o,x:gu(n,i)})),r=Xf.lastIndex;return r<t.length&&(a=t.slice(r),l[o]?l[o]+=a:l[++o]=a),l.length<2?s[0]?u6(s[0].x):s6(t):(t=s.length,function(u){for(var f=0,c;f<t;++f)l[(c=s[f]).i]=c.x(u);return l.join("")})}function $a(e,t){var r=typeof t,n;return t==null||r==="boolean"?tm(t):(r==="number"?gu:r==="string"?(n=Go(t))?(t=n,L0):c6:t instanceof Go?L0:t instanceof Date?o6:i6(t)?n6:Array.isArray(t)?a6:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?l6:gu)(e,t)}function rm(e,t){return e=+e,t=+t,function(r){return Math.round(e*(1-r)+t*r)}}function f6(e,t){t===void 0&&(t=e,e=$a);for(var r=0,n=t.length-1,i=t[0],a=new Array(n<0?0:n);r<n;)a[r]=e(i,i=t[++r]);return function(o){var l=Math.max(0,Math.min(n-1,Math.floor(o*=n)));return a[l](o-l)}}function d6(e){return function(){return e}}function xu(e){return+e}var R0=[0,1];function st(e){return e}function Bp(e,t){return(t-=e=+e)?function(r){return(r-e)/t}:d6(isNaN(t)?NaN:.5)}function p6(e,t){var r;return e>t&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function h6(e,t,r){var n=e[0],i=e[1],a=t[0],o=t[1];return i<n?(n=Bp(i,n),a=r(o,a)):(n=Bp(n,i),a=r(a,o)),function(l){return a(n(l))}}function v6(e,t,r){var n=Math.min(e.length,t.length)-1,i=new Array(n),a=new Array(n),o=-1;for(e[n]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<n;)i[o]=Bp(e[o],e[o+1]),a[o]=r(t[o],t[o+1]);return function(l){var s=kl(e,l,1,n)-1;return a[s](i[s](l))}}function Nl(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Bc(){var e=R0,t=R0,r=$a,n,i,a,o=st,l,s,u;function f(){var p=Math.min(e.length,t.length);return o!==st&&(o=p6(e[0],e[p-1])),l=p>2?v6:h6,s=u=null,c}function c(p){return p==null||isNaN(p=+p)?a:(s||(s=l(e.map(n),t,r)))(n(o(p)))}return c.invert=function(p){return o(i((u||(u=l(t,e.map(n),gu)))(p)))},c.domain=function(p){return arguments.length?(e=Array.from(p,xu),f()):e.slice()},c.range=function(p){return arguments.length?(t=Array.from(p),f()):t.slice()},c.rangeRound=function(p){return t=Array.from(p),r=rm,f()},c.clamp=function(p){return arguments.length?(o=p?!0:st,f()):o!==st},c.interpolate=function(p){return arguments.length?(r=p,f()):r},c.unknown=function(p){return arguments.length?(a=p,c):a},function(p,h){return n=p,i=h,f()}}function nm(){return Bc()(st,st)}function m6(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function bu(e,t){if(!isFinite(e)||e===0)return null;var r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function Zi(e){return e=bu(Math.abs(e)),e?e[1]:NaN}function y6(e,t){return function(r,n){for(var i=r.length,a=[],o=0,l=e[0],s=0;i>0&&l>0&&(s+l+1>n&&(l=Math.max(1,n-s)),a.push(r.substring(i-=l,i+l)),!((s+=l+1)>n));)l=e[o=(o+1)%e.length];return a.reverse().join(t)}}function g6(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var x6=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Xo(e){if(!(t=x6.exec(e)))throw new Error("invalid format: "+e);var t;return new im({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Xo.prototype=im.prototype;function im(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}im.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function b6(e){e:for(var t=e.length,r=1,n=-1,i;r<t;++r)switch(e[r]){case".":n=i=r;break;case"0":n===0&&(n=r),i=r;break;default:if(!+e[r])break e;n>0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(i+1):e}var wu;function w6(e,t){var r=bu(e,t);if(!r)return wu=void 0,e.toPrecision(t);var n=r[0],i=r[1],a=i-(wu=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=n.length;return a===o?n:a>o?n+new Array(a-o+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+bu(e,Math.max(0,t+a-1))[0]}function B0(e,t){var r=bu(e,t);if(!r)return e+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}const z0={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:m6,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>B0(e*100,t),r:B0,s:w6,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function F0(e){return e}var U0=Array.prototype.map,W0=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function S6(e){var t=e.grouping===void 0||e.thousands===void 0?F0:y6(U0.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?F0:g6(U0.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",l=e.minus===void 0?"−":e.minus+"",s=e.nan===void 0?"NaN":e.nan+"";function u(c,p){c=Xo(c);var h=c.fill,y=c.align,b=c.sign,g=c.symbol,m=c.zero,v=c.width,x=c.comma,O=c.precision,w=c.trim,S=c.type;S==="n"?(x=!0,S="g"):z0[S]||(O===void 0&&(O=12),w=!0,S="g"),(m||h==="0"&&y==="=")&&(m=!0,h="0",y="=");var j=(p&&p.prefix!==void 0?p.prefix:"")+(g==="$"?r:g==="#"&&/[boxX]/.test(S)?"0"+S.toLowerCase():""),_=(g==="$"?n:/[%p]/.test(S)?o:"")+(p&&p.suffix!==void 0?p.suffix:""),A=z0[S],$=/[defgprs%]/.test(S);O=O===void 0?6:/[gprs]/.test(S)?Math.max(1,Math.min(21,O)):Math.max(0,Math.min(20,O));function N(k){var D=j,I=_,M,R,z;if(S==="c")I=A(k)+I,k="";else{k=+k;var T=k<0||1/k<0;if(k=isNaN(k)?s:A(Math.abs(k),O),w&&(k=b6(k)),T&&+k==0&&b!=="+"&&(T=!1),D=(T?b==="("?b:l:b==="-"||b==="("?"":b)+D,I=(S==="s"&&!isNaN(k)&&wu!==void 0?W0[8+wu/3]:"")+I+(T&&b==="("?")":""),$){for(M=-1,R=k.length;++M<R;)if(z=k.charCodeAt(M),48>z||z>57){I=(z===46?i+k.slice(M+1):k.slice(M))+I,k=k.slice(0,M);break}}}x&&!m&&(k=t(k,1/0));var L=D.length+k.length+I.length,B=L<v?new Array(v-L+1).join(h):"";switch(x&&m&&(k=t(B+k,B.length?v-I.length:1/0),B=""),y){case"<":k=D+k+I+B;break;case"=":k=D+B+k+I;break;case"^":k=B.slice(0,L=B.length>>1)+D+k+I+B.slice(L);break;default:k=B+D+k+I;break}return a(k)}return N.toString=function(){return c+""},N}function f(c,p){var h=Math.max(-8,Math.min(8,Math.floor(Zi(p)/3)))*3,y=Math.pow(10,-h),b=u((c=Xo(c),c.type="f",c),{suffix:W0[8+h/3]});return function(g){return b(y*g)}}return{format:u,formatPrefix:f}}var ls,am,BO;O6({thousands:",",grouping:[3],currency:["$",""]});function O6(e){return ls=S6(e),am=ls.format,BO=ls.formatPrefix,ls}function j6(e){return Math.max(0,-Zi(Math.abs(e)))}function _6(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Zi(t)/3)))*3-Zi(Math.abs(e)))}function P6(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Zi(t)-Zi(e))+1}function zO(e,t,r,n){var i=Ip(e,t,r),a;switch(n=Xo(n??",f"),n.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(a=_6(i,o))&&(n.precision=a),BO(n,o)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=P6(i,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=j6(i))&&(n.precision=a-(n.type==="%")*2);break}}return am(n)}function On(e){var t=e.domain;return e.ticks=function(r){var n=t();return Cp(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var i=t();return zO(i[0],i[i.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),i=0,a=n.length-1,o=n[i],l=n[a],s,u,f=10;for(l<o&&(u=o,o=l,l=u,u=i,i=a,a=u);f-- >0;){if(u=Mp(o,l,r),u===s)return n[i]=o,n[a]=l,t(n);if(u>0)o=Math.floor(o/u)*u,l=Math.ceil(l/u)*u;else if(u<0)o=Math.ceil(o*u)/u,l=Math.floor(l*u)/u;else break;s=u}return e},e}function Su(){var e=nm();return e.copy=function(){return Nl(e,Su())},Vt.apply(e,arguments),On(e)}function FO(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,xu),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return FO(e).unknown(t)},e=arguments.length?Array.from(e,xu):[0,1],On(r)}function UO(e,t){e=e.slice();var r=0,n=e.length-1,i=e[r],a=e[n],o;return a<i&&(o=r,r=n,n=o,o=i,i=a,a=o),e[r]=t.floor(i),e[n]=t.ceil(a),e}function H0(e){return Math.log(e)}function K0(e){return Math.exp(e)}function A6(e){return-Math.log(-e)}function E6(e){return-Math.exp(-e)}function k6(e){return isFinite(e)?+("1e"+e):e<0?0:e}function $6(e){return e===10?k6:e===Math.E?Math.exp:t=>Math.pow(e,t)}function N6(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function V0(e){return(t,r)=>-e(-t,r)}function om(e){const t=e(H0,K0),r=t.domain;let n=10,i,a;function o(){return i=N6(n),a=$6(n),r()[0]<0?(i=V0(i),a=V0(a),e(A6,E6)):e(H0,K0),t}return t.base=function(l){return arguments.length?(n=+l,o()):n},t.domain=function(l){return arguments.length?(r(l),o()):r()},t.ticks=l=>{const s=r();let u=s[0],f=s[s.length-1];const c=f<u;c&&([u,f]=[f,u]);let p=i(u),h=i(f),y,b;const g=l==null?10:+l;let m=[];if(!(n%1)&&h-p<g){if(p=Math.floor(p),h=Math.ceil(h),u>0){for(;p<=h;++p)for(y=1;y<n;++y)if(b=p<0?y/a(-p):y*a(p),!(b<u)){if(b>f)break;m.push(b)}}else for(;p<=h;++p)for(y=n-1;y>=1;--y)if(b=p>0?y/a(-p):y*a(p),!(b<u)){if(b>f)break;m.push(b)}m.length*2<g&&(m=Cp(u,f,g))}else m=Cp(p,h,Math.min(h-p,g)).map(a);return c?m.reverse():m},t.tickFormat=(l,s)=>{if(l==null&&(l=10),s==null&&(s=n===10?"s":","),typeof s!="function"&&(!(n%1)&&(s=Xo(s)).precision==null&&(s.trim=!0),s=am(s)),l===1/0)return s;const u=Math.max(1,n*l/t.ticks().length);return f=>{let c=f/a(Math.round(i(f)));return c*n<n-.5&&(c*=n),c<=u?s(f):""}},t.nice=()=>r(UO(r(),{floor:l=>a(Math.floor(i(l))),ceil:l=>a(Math.ceil(i(l)))})),t}function WO(){const e=om(Bc()).domain([1,10]);return e.copy=()=>Nl(e,WO()).base(e.base()),Vt.apply(e,arguments),e}function G0(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function X0(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function lm(e){var t=1,r=e(G0(t),X0(t));return r.constant=function(n){return arguments.length?e(G0(t=+n),X0(t)):t},On(r)}function HO(){var e=lm(Bc());return e.copy=function(){return Nl(e,HO()).constant(e.constant())},Vt.apply(e,arguments)}function q0(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function T6(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function C6(e){return e<0?-e*e:e*e}function sm(e){var t=e(st,st),r=1;function n(){return r===1?e(st,st):r===.5?e(T6,C6):e(q0(r),q0(1/r))}return t.exponent=function(i){return arguments.length?(r=+i,n()):r},On(t)}function um(){var e=sm(Bc());return e.copy=function(){return Nl(e,um()).exponent(e.exponent())},Vt.apply(e,arguments),e}function M6(){return um.apply(null,arguments).exponent(.5)}function Y0(e){return Math.sign(e)*e*e}function I6(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function KO(){var e=nm(),t=[0,1],r=!1,n;function i(a){var o=I6(e(a));return isNaN(o)?n:r?Math.round(o):o}return i.invert=function(a){return e.invert(Y0(a))},i.domain=function(a){return arguments.length?(e.domain(a),i):e.domain()},i.range=function(a){return arguments.length?(e.range((t=Array.from(a,xu)).map(Y0)),i):t.slice()},i.rangeRound=function(a){return i.range(a).round(!0)},i.round=function(a){return arguments.length?(r=!!a,i):r},i.clamp=function(a){return arguments.length?(e.clamp(a),i):e.clamp()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return KO(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},Vt.apply(i,arguments),On(i)}function VO(){var e=[],t=[],r=[],n;function i(){var o=0,l=Math.max(1,t.length);for(r=new Array(l-1);++o<l;)r[o-1]=z8(e,o/l);return a}function a(o){return o==null||isNaN(o=+o)?n:t[kl(r,o)]}return a.invertExtent=function(o){var l=t.indexOf(o);return l<0?[NaN,NaN]:[l>0?r[l-1]:e[0],l<r.length?r[l]:e[e.length-1]]},a.domain=function(o){if(!arguments.length)return e.slice();e=[];for(let l of o)l!=null&&!isNaN(l=+l)&&e.push(l);return e.sort(pn),i()},a.range=function(o){return arguments.length?(t=Array.from(o),i()):t.slice()},a.unknown=function(o){return arguments.length?(n=o,a):n},a.quantiles=function(){return r.slice()},a.copy=function(){return VO().domain(e).range(t).unknown(n)},Vt.apply(a,arguments)}function GO(){var e=0,t=1,r=1,n=[.5],i=[0,1],a;function o(s){return s!=null&&s<=s?i[kl(n,s,0,r)]:a}function l(){var s=-1;for(n=new Array(r);++s<r;)n[s]=((s+1)*t-(s-r)*e)/(r+1);return o}return o.domain=function(s){return arguments.length?([e,t]=s,e=+e,t=+t,l()):[e,t]},o.range=function(s){return arguments.length?(r=(i=Array.from(s)).length-1,l()):i.slice()},o.invertExtent=function(s){var u=i.indexOf(s);return u<0?[NaN,NaN]:u<1?[e,n[0]]:u>=r?[n[r-1],t]:[n[u-1],n[u]]},o.unknown=function(s){return arguments.length&&(a=s),o},o.thresholds=function(){return n.slice()},o.copy=function(){return GO().domain([e,t]).range(i).unknown(a)},Vt.apply(On(o),arguments)}function XO(){var e=[.5],t=[0,1],r,n=1;function i(a){return a!=null&&a<=a?t[kl(e,a,0,n)]:r}return i.domain=function(a){return arguments.length?(e=Array.from(a),n=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(a){return arguments.length?(t=Array.from(a),n=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(a){var o=t.indexOf(a);return[e[o-1],e[o]]},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return XO().domain(e).range(t).unknown(r)},Vt.apply(i,arguments)}const qf=new Date,Yf=new Date;function He(e,t,r,n){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=a=>(e(a=new Date(+a)),a),i.ceil=a=>(e(a=new Date(a-1)),t(a,1),e(a),a),i.round=a=>{const o=i(a),l=i.ceil(a);return a-o<l-a?o:l},i.offset=(a,o)=>(t(a=new Date(+a),o==null?1:Math.floor(o)),a),i.range=(a,o,l)=>{const s=[];if(a=i.ceil(a),l=l==null?1:Math.floor(l),!(a<o)||!(l>0))return s;let u;do s.push(u=new Date(+a)),t(a,l),e(a);while(u<a&&a<o);return s},i.filter=a=>He(o=>{if(o>=o)for(;e(o),!a(o);)o.setTime(o-1)},(o,l)=>{if(o>=o)if(l<0)for(;++l<=0;)for(;t(o,-1),!a(o););else for(;--l>=0;)for(;t(o,1),!a(o););}),r&&(i.count=(a,o)=>(qf.setTime(+a),Yf.setTime(+o),e(qf),e(Yf),Math.floor(r(qf,Yf))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?o=>n(o)%a===0:o=>i.count(0,o)%a===0):i)),i}const Ou=He(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Ou.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?He(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):Ou);Ou.range;const jr=1e3,Bt=jr*60,_r=Bt*60,Ir=_r*24,cm=Ir*7,Q0=Ir*30,Qf=Ir*365,zn=He(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*jr)},(e,t)=>(t-e)/jr,e=>e.getUTCSeconds());zn.range;const fm=He(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*jr)},(e,t)=>{e.setTime(+e+t*Bt)},(e,t)=>(t-e)/Bt,e=>e.getMinutes());fm.range;const dm=He(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Bt)},(e,t)=>(t-e)/Bt,e=>e.getUTCMinutes());dm.range;const pm=He(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*jr-e.getMinutes()*Bt)},(e,t)=>{e.setTime(+e+t*_r)},(e,t)=>(t-e)/_r,e=>e.getHours());pm.range;const hm=He(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*_r)},(e,t)=>(t-e)/_r,e=>e.getUTCHours());hm.range;const Tl=He(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Bt)/Ir,e=>e.getDate()-1);Tl.range;const zc=He(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/Ir,e=>e.getUTCDate()-1);zc.range;const qO=He(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/Ir,e=>Math.floor(e/Ir));qO.range;function li(e){return He(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*Bt)/cm)}const Fc=li(0),ju=li(1),D6=li(2),L6=li(3),Ji=li(4),R6=li(5),B6=li(6);Fc.range;ju.range;D6.range;L6.range;Ji.range;R6.range;B6.range;function si(e){return He(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/cm)}const Uc=si(0),_u=si(1),z6=si(2),F6=si(3),ea=si(4),U6=si(5),W6=si(6);Uc.range;_u.range;z6.range;F6.range;ea.range;U6.range;W6.range;const vm=He(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());vm.range;const mm=He(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());mm.range;const Dr=He(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());Dr.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:He(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});Dr.range;const Lr=He(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Lr.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:He(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});Lr.range;function YO(e,t,r,n,i,a){const o=[[zn,1,jr],[zn,5,5*jr],[zn,15,15*jr],[zn,30,30*jr],[a,1,Bt],[a,5,5*Bt],[a,15,15*Bt],[a,30,30*Bt],[i,1,_r],[i,3,3*_r],[i,6,6*_r],[i,12,12*_r],[n,1,Ir],[n,2,2*Ir],[r,1,cm],[t,1,Q0],[t,3,3*Q0],[e,1,Qf]];function l(u,f,c){const p=f<u;p&&([u,f]=[f,u]);const h=c&&typeof c.range=="function"?c:s(u,f,c),y=h?h.range(u,+f+1):[];return p?y.reverse():y}function s(u,f,c){const p=Math.abs(f-u)/c,h=Zv(([,,g])=>g).right(o,p);if(h===o.length)return e.every(Ip(u/Qf,f/Qf,c));if(h===0)return Ou.every(Math.max(Ip(u,f,c),1));const[y,b]=o[p/o[h-1][2]<o[h][2]/p?h-1:h];return y.every(b)}return[l,s]}const[H6,K6]=YO(Lr,mm,Uc,qO,hm,dm),[V6,G6]=YO(Dr,vm,Fc,Tl,pm,fm);function Zf(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function Jf(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Ka(e,t,r){return{y:e,m:t,d:r,H:0,M:0,S:0,L:0}}function X6(e){var t=e.dateTime,r=e.date,n=e.time,i=e.periods,a=e.days,o=e.shortDays,l=e.months,s=e.shortMonths,u=Va(i),f=Ga(i),c=Va(a),p=Ga(a),h=Va(o),y=Ga(o),b=Va(l),g=Ga(l),m=Va(s),v=Ga(s),x={a:z,A:T,b:L,B,c:null,d:nx,e:nx,f:yz,g:Az,G:kz,H:hz,I:vz,j:mz,L:QO,m:gz,M:xz,p:K,q:W,Q:ox,s:lx,S:bz,u:wz,U:Sz,V:Oz,w:jz,W:_z,x:null,X:null,y:Pz,Y:Ez,Z:$z,"%":ax},O={a:q,A:ne,b:we,B:Ne,c:null,d:ix,e:ix,f:Mz,g:Hz,G:Vz,H:Nz,I:Tz,j:Cz,L:JO,m:Iz,M:Dz,p:Nt,q:dt,Q:ox,s:lx,S:Lz,u:Rz,U:Bz,V:zz,w:Fz,W:Uz,x:null,X:null,y:Wz,Y:Kz,Z:Gz,"%":ax},w={a:$,A:N,b:k,B:D,c:I,d:tx,e:tx,f:cz,g:ex,G:J0,H:rx,I:rx,j:oz,L:uz,m:az,M:lz,p:A,q:iz,Q:dz,s:pz,S:sz,u:J6,U:ez,V:tz,w:Z6,W:rz,x:M,X:R,y:ex,Y:J0,Z:nz,"%":fz};x.x=S(r,x),x.X=S(n,x),x.c=S(t,x),O.x=S(r,O),O.X=S(n,O),O.c=S(t,O);function S(V,Q){return function(J){var F=[],Ee=-1,ie=0,Le=V.length,Re,pt,Wr;for(J instanceof Date||(J=new Date(+J));++Ee<Le;)V.charCodeAt(Ee)===37&&(F.push(V.slice(ie,Ee)),(pt=Z0[Re=V.charAt(++Ee)])!=null?Re=V.charAt(++Ee):pt=Re==="e"?" ":"0",(Wr=Q[Re])&&(Re=Wr(J,pt)),F.push(Re),ie=Ee+1);return F.push(V.slice(ie,Ee)),F.join("")}}function j(V,Q){return function(J){var F=Ka(1900,void 0,1),Ee=_(F,V,J+="",0),ie,Le;if(Ee!=J.length)return null;if("Q"in F)return new Date(F.Q);if("s"in F)return new Date(F.s*1e3+("L"in F?F.L:0));if(Q&&!("Z"in F)&&(F.Z=0),"p"in F&&(F.H=F.H%12+F.p*12),F.m===void 0&&(F.m="q"in F?F.q:0),"V"in F){if(F.V<1||F.V>53)return null;"w"in F||(F.w=1),"Z"in F?(ie=Jf(Ka(F.y,0,1)),Le=ie.getUTCDay(),ie=Le>4||Le===0?_u.ceil(ie):_u(ie),ie=zc.offset(ie,(F.V-1)*7),F.y=ie.getUTCFullYear(),F.m=ie.getUTCMonth(),F.d=ie.getUTCDate()+(F.w+6)%7):(ie=Zf(Ka(F.y,0,1)),Le=ie.getDay(),ie=Le>4||Le===0?ju.ceil(ie):ju(ie),ie=Tl.offset(ie,(F.V-1)*7),F.y=ie.getFullYear(),F.m=ie.getMonth(),F.d=ie.getDate()+(F.w+6)%7)}else("W"in F||"U"in F)&&("w"in F||(F.w="u"in F?F.u%7:"W"in F?1:0),Le="Z"in F?Jf(Ka(F.y,0,1)).getUTCDay():Zf(Ka(F.y,0,1)).getDay(),F.m=0,F.d="W"in F?(F.w+6)%7+F.W*7-(Le+5)%7:F.w+F.U*7-(Le+6)%7);return"Z"in F?(F.H+=F.Z/100|0,F.M+=F.Z%100,Jf(F)):Zf(F)}}function _(V,Q,J,F){for(var Ee=0,ie=Q.length,Le=J.length,Re,pt;Ee<ie;){if(F>=Le)return-1;if(Re=Q.charCodeAt(Ee++),Re===37){if(Re=Q.charAt(Ee++),pt=w[Re in Z0?Q.charAt(Ee++):Re],!pt||(F=pt(V,J,F))<0)return-1}else if(Re!=J.charCodeAt(F++))return-1}return F}function A(V,Q,J){var F=u.exec(Q.slice(J));return F?(V.p=f.get(F[0].toLowerCase()),J+F[0].length):-1}function $(V,Q,J){var F=h.exec(Q.slice(J));return F?(V.w=y.get(F[0].toLowerCase()),J+F[0].length):-1}function N(V,Q,J){var F=c.exec(Q.slice(J));return F?(V.w=p.get(F[0].toLowerCase()),J+F[0].length):-1}function k(V,Q,J){var F=m.exec(Q.slice(J));return F?(V.m=v.get(F[0].toLowerCase()),J+F[0].length):-1}function D(V,Q,J){var F=b.exec(Q.slice(J));return F?(V.m=g.get(F[0].toLowerCase()),J+F[0].length):-1}function I(V,Q,J){return _(V,t,Q,J)}function M(V,Q,J){return _(V,r,Q,J)}function R(V,Q,J){return _(V,n,Q,J)}function z(V){return o[V.getDay()]}function T(V){return a[V.getDay()]}function L(V){return s[V.getMonth()]}function B(V){return l[V.getMonth()]}function K(V){return i[+(V.getHours()>=12)]}function W(V){return 1+~~(V.getMonth()/3)}function q(V){return o[V.getUTCDay()]}function ne(V){return a[V.getUTCDay()]}function we(V){return s[V.getUTCMonth()]}function Ne(V){return l[V.getUTCMonth()]}function Nt(V){return i[+(V.getUTCHours()>=12)]}function dt(V){return 1+~~(V.getUTCMonth()/3)}return{format:function(V){var Q=S(V+="",x);return Q.toString=function(){return V},Q},parse:function(V){var Q=j(V+="",!1);return Q.toString=function(){return V},Q},utcFormat:function(V){var Q=S(V+="",O);return Q.toString=function(){return V},Q},utcParse:function(V){var Q=j(V+="",!0);return Q.toString=function(){return V},Q}}}var Z0={"-":"",_:" ",0:"0"},Xe=/^\s*\d+/,q6=/^%/,Y6=/[\\^$*+?|[\]().{}]/g;function le(e,t,r){var n=e<0?"-":"",i=(n?-e:e)+"",a=i.length;return n+(a<r?new Array(r-a+1).join(t)+i:i)}function Q6(e){return e.replace(Y6,"\\$&")}function Va(e){return new RegExp("^(?:"+e.map(Q6).join("|")+")","i")}function Ga(e){return new Map(e.map((t,r)=>[t.toLowerCase(),r]))}function Z6(e,t,r){var n=Xe.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function J6(e,t,r){var n=Xe.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function ez(e,t,r){var n=Xe.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function tz(e,t,r){var n=Xe.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function rz(e,t,r){var n=Xe.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function J0(e,t,r){var n=Xe.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function ex(e,t,r){var n=Xe.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function nz(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function iz(e,t,r){var n=Xe.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function az(e,t,r){var n=Xe.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function tx(e,t,r){var n=Xe.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function oz(e,t,r){var n=Xe.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function rx(e,t,r){var n=Xe.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function lz(e,t,r){var n=Xe.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function sz(e,t,r){var n=Xe.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function uz(e,t,r){var n=Xe.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function cz(e,t,r){var n=Xe.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function fz(e,t,r){var n=q6.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function dz(e,t,r){var n=Xe.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function pz(e,t,r){var n=Xe.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function nx(e,t){return le(e.getDate(),t,2)}function hz(e,t){return le(e.getHours(),t,2)}function vz(e,t){return le(e.getHours()%12||12,t,2)}function mz(e,t){return le(1+Tl.count(Dr(e),e),t,3)}function QO(e,t){return le(e.getMilliseconds(),t,3)}function yz(e,t){return QO(e,t)+"000"}function gz(e,t){return le(e.getMonth()+1,t,2)}function xz(e,t){return le(e.getMinutes(),t,2)}function bz(e,t){return le(e.getSeconds(),t,2)}function wz(e){var t=e.getDay();return t===0?7:t}function Sz(e,t){return le(Fc.count(Dr(e)-1,e),t,2)}function ZO(e){var t=e.getDay();return t>=4||t===0?Ji(e):Ji.ceil(e)}function Oz(e,t){return e=ZO(e),le(Ji.count(Dr(e),e)+(Dr(e).getDay()===4),t,2)}function jz(e){return e.getDay()}function _z(e,t){return le(ju.count(Dr(e)-1,e),t,2)}function Pz(e,t){return le(e.getFullYear()%100,t,2)}function Az(e,t){return e=ZO(e),le(e.getFullYear()%100,t,2)}function Ez(e,t){return le(e.getFullYear()%1e4,t,4)}function kz(e,t){var r=e.getDay();return e=r>=4||r===0?Ji(e):Ji.ceil(e),le(e.getFullYear()%1e4,t,4)}function $z(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+le(t/60|0,"0",2)+le(t%60,"0",2)}function ix(e,t){return le(e.getUTCDate(),t,2)}function Nz(e,t){return le(e.getUTCHours(),t,2)}function Tz(e,t){return le(e.getUTCHours()%12||12,t,2)}function Cz(e,t){return le(1+zc.count(Lr(e),e),t,3)}function JO(e,t){return le(e.getUTCMilliseconds(),t,3)}function Mz(e,t){return JO(e,t)+"000"}function Iz(e,t){return le(e.getUTCMonth()+1,t,2)}function Dz(e,t){return le(e.getUTCMinutes(),t,2)}function Lz(e,t){return le(e.getUTCSeconds(),t,2)}function Rz(e){var t=e.getUTCDay();return t===0?7:t}function Bz(e,t){return le(Uc.count(Lr(e)-1,e),t,2)}function ej(e){var t=e.getUTCDay();return t>=4||t===0?ea(e):ea.ceil(e)}function zz(e,t){return e=ej(e),le(ea.count(Lr(e),e)+(Lr(e).getUTCDay()===4),t,2)}function Fz(e){return e.getUTCDay()}function Uz(e,t){return le(_u.count(Lr(e)-1,e),t,2)}function Wz(e,t){return le(e.getUTCFullYear()%100,t,2)}function Hz(e,t){return e=ej(e),le(e.getUTCFullYear()%100,t,2)}function Kz(e,t){return le(e.getUTCFullYear()%1e4,t,4)}function Vz(e,t){var r=e.getUTCDay();return e=r>=4||r===0?ea(e):ea.ceil(e),le(e.getUTCFullYear()%1e4,t,4)}function Gz(){return"+0000"}function ax(){return"%"}function ox(e){return+e}function lx(e){return Math.floor(+e/1e3)}var pi,tj,rj;Xz({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Xz(e){return pi=X6(e),tj=pi.format,pi.parse,rj=pi.utcFormat,pi.utcParse,pi}function qz(e){return new Date(e)}function Yz(e){return e instanceof Date?+e:+new Date(+e)}function ym(e,t,r,n,i,a,o,l,s,u){var f=nm(),c=f.invert,p=f.domain,h=u(".%L"),y=u(":%S"),b=u("%I:%M"),g=u("%I %p"),m=u("%a %d"),v=u("%b %d"),x=u("%B"),O=u("%Y");function w(S){return(s(S)<S?h:l(S)<S?y:o(S)<S?b:a(S)<S?g:n(S)<S?i(S)<S?m:v:r(S)<S?x:O)(S)}return f.invert=function(S){return new Date(c(S))},f.domain=function(S){return arguments.length?p(Array.from(S,Yz)):p().map(qz)},f.ticks=function(S){var j=p();return e(j[0],j[j.length-1],S??10)},f.tickFormat=function(S,j){return j==null?w:u(j)},f.nice=function(S){var j=p();return(!S||typeof S.range!="function")&&(S=t(j[0],j[j.length-1],S??10)),S?p(UO(j,S)):f},f.copy=function(){return Nl(f,ym(e,t,r,n,i,a,o,l,s,u))},f}function Qz(){return Vt.apply(ym(V6,G6,Dr,vm,Fc,Tl,pm,fm,zn,tj).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function Zz(){return Vt.apply(ym(H6,K6,Lr,mm,Uc,zc,hm,dm,zn,rj).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Wc(){var e=0,t=1,r,n,i,a,o=st,l=!1,s;function u(c){return c==null||isNaN(c=+c)?s:o(i===0?.5:(c=(a(c)-r)*i,l?Math.max(0,Math.min(1,c)):c))}u.domain=function(c){return arguments.length?([e,t]=c,r=a(e=+e),n=a(t=+t),i=r===n?0:1/(n-r),u):[e,t]},u.clamp=function(c){return arguments.length?(l=!!c,u):l},u.interpolator=function(c){return arguments.length?(o=c,u):o};function f(c){return function(p){var h,y;return arguments.length?([h,y]=p,o=c(h,y),u):[o(0),o(1)]}}return u.range=f($a),u.rangeRound=f(rm),u.unknown=function(c){return arguments.length?(s=c,u):s},function(c){return a=c,r=c(e),n=c(t),i=r===n?0:1/(n-r),u}}function jn(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function nj(){var e=On(Wc()(st));return e.copy=function(){return jn(e,nj())},Ur.apply(e,arguments)}function ij(){var e=om(Wc()).domain([1,10]);return e.copy=function(){return jn(e,ij()).base(e.base())},Ur.apply(e,arguments)}function aj(){var e=lm(Wc());return e.copy=function(){return jn(e,aj()).constant(e.constant())},Ur.apply(e,arguments)}function gm(){var e=sm(Wc());return e.copy=function(){return jn(e,gm()).exponent(e.exponent())},Ur.apply(e,arguments)}function Jz(){return gm.apply(null,arguments).exponent(.5)}function oj(){var e=[],t=st;function r(n){if(n!=null&&!isNaN(n=+n))return t((kl(e,n,1)-1)/(e.length-1))}return r.domain=function(n){if(!arguments.length)return e.slice();e=[];for(let i of n)i!=null&&!isNaN(i=+i)&&e.push(i);return e.sort(pn),r},r.interpolator=function(n){return arguments.length?(t=n,r):t},r.range=function(){return e.map((n,i)=>t(i/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(i,a)=>B8(e,a/n))},r.copy=function(){return oj(t).domain(e)},Ur.apply(r,arguments)}function Hc(){var e=0,t=.5,r=1,n=1,i,a,o,l,s,u=st,f,c=!1,p;function h(b){return isNaN(b=+b)?p:(b=.5+((b=+f(b))-a)*(n*b<n*a?l:s),u(c?Math.max(0,Math.min(1,b)):b))}h.domain=function(b){return arguments.length?([e,t,r]=b,i=f(e=+e),a=f(t=+t),o=f(r=+r),l=i===a?0:.5/(a-i),s=a===o?0:.5/(o-a),n=a<i?-1:1,h):[e,t,r]},h.clamp=function(b){return arguments.length?(c=!!b,h):c},h.interpolator=function(b){return arguments.length?(u=b,h):u};function y(b){return function(g){var m,v,x;return arguments.length?([m,v,x]=g,u=f6(b,[m,v,x]),h):[u(0),u(.5),u(1)]}}return h.range=y($a),h.rangeRound=y(rm),h.unknown=function(b){return arguments.length?(p=b,h):p},function(b){return f=b,i=b(e),a=b(t),o=b(r),l=i===a?0:.5/(a-i),s=a===o?0:.5/(o-a),n=a<i?-1:1,h}}function lj(){var e=On(Hc()(st));return e.copy=function(){return jn(e,lj())},Ur.apply(e,arguments)}function sj(){var e=om(Hc()).domain([.1,1,10]);return e.copy=function(){return jn(e,sj()).base(e.base())},Ur.apply(e,arguments)}function uj(){var e=lm(Hc());return e.copy=function(){return jn(e,uj()).constant(e.constant())},Ur.apply(e,arguments)}function xm(){var e=sm(Hc());return e.copy=function(){return jn(e,xm()).exponent(e.exponent())},Ur.apply(e,arguments)}function eF(){return xm.apply(null,arguments).exponent(.5)}const sx=Object.freeze(Object.defineProperty({__proto__:null,scaleBand:Ho,scaleDiverging:lj,scaleDivergingLog:sj,scaleDivergingPow:xm,scaleDivergingSqrt:eF,scaleDivergingSymlog:uj,scaleIdentity:FO,scaleImplicit:Dp,scaleLinear:Su,scaleLog:WO,scaleOrdinal:Jv,scalePoint:ho,scalePow:um,scaleQuantile:VO,scaleQuantize:GO,scaleRadial:KO,scaleSequential:nj,scaleSequentialLog:ij,scaleSequentialPow:gm,scaleSequentialQuantile:oj,scaleSequentialSqrt:Jz,scaleSequentialSymlog:aj,scaleSqrt:M6,scaleSymlog:HO,scaleThreshold:XO,scaleTime:Qz,scaleUtc:Zz,tickFormat:zO},Symbol.toStringTag,{value:"Module"}));var tF=ba;function rF(e,t,r){for(var n=-1,i=e.length;++n<i;){var a=e[n],o=t(a);if(o!=null&&(l===void 0?o===o&&!tF(o):r(o,l)))var l=o,s=a}return s}var cj=rF;function nF(e,t){return e>t}var iF=nF,aF=cj,oF=iF,lF=Ea;function sF(e){return e&&e.length?aF(e,lF,oF):void 0}var uF=sF;const tn=he(uF);function cF(e,t){return e<t}var fF=cF,dF=cj,pF=fF,hF=Ea;function vF(e){return e&&e.length?dF(e,hF,pF):void 0}var mF=vF;const Kc=he(mF);var yF=Cv,gF=Sn,xF=xO,bF=bt;function wF(e,t){var r=bF(e)?yF:xF;return r(e,gF(t))}var SF=wF,OF=yO,jF=SF;function _F(e,t){return OF(jF(e,t),1)}var PF=_F;const AF=he(PF);var EF=Xv;function kF(e,t){return EF(e,t)}var $F=kF;const qo=he($F);var Na=1e9,NF={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},wm,Oe=!0,Ht="[DecimalError] ",Vn=Ht+"Invalid argument: ",bm=Ht+"Exponent out of range: ",Ta=Math.floor,Mn=Math.pow,TF=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,jt,Ke=1e7,xe=7,fj=9007199254740991,Pu=Ta(fj/xe),X={};X.absoluteValue=X.abs=function(){var e=new this.constructor(this);return e.s&&(e.s=1),e};X.comparedTo=X.cmp=function(e){var t,r,n,i,a=this;if(e=new a.constructor(e),a.s!==e.s)return a.s||-e.s;if(a.e!==e.e)return a.e>e.e^a.s<0?1:-1;for(n=a.d.length,i=e.d.length,t=0,r=n<i?n:i;t<r;++t)if(a.d[t]!==e.d[t])return a.d[t]>e.d[t]^a.s<0?1:-1;return n===i?0:n>i^a.s<0?1:-1};X.decimalPlaces=X.dp=function(){var e=this,t=e.d.length-1,r=(t-e.e)*xe;if(t=e.d[t],t)for(;t%10==0;t/=10)r--;return r<0?0:r};X.dividedBy=X.div=function(e){return $r(this,new this.constructor(e))};X.dividedToIntegerBy=X.idiv=function(e){var t=this,r=t.constructor;return pe($r(t,new r(e),0,1),r.precision)};X.equals=X.eq=function(e){return!this.cmp(e)};X.exponent=function(){return De(this)};X.greaterThan=X.gt=function(e){return this.cmp(e)>0};X.greaterThanOrEqualTo=X.gte=function(e){return this.cmp(e)>=0};X.isInteger=X.isint=function(){return this.e>this.d.length-2};X.isNegative=X.isneg=function(){return this.s<0};X.isPositive=X.ispos=function(){return this.s>0};X.isZero=function(){return this.s===0};X.lessThan=X.lt=function(e){return this.cmp(e)<0};X.lessThanOrEqualTo=X.lte=function(e){return this.cmp(e)<1};X.logarithm=X.log=function(e){var t,r=this,n=r.constructor,i=n.precision,a=i+5;if(e===void 0)e=new n(10);else if(e=new n(e),e.s<1||e.eq(jt))throw Error(Ht+"NaN");if(r.s<1)throw Error(Ht+(r.s?"NaN":"-Infinity"));return r.eq(jt)?new n(0):(Oe=!1,t=$r(Yo(r,a),Yo(e,a),a),Oe=!0,pe(t,i))};X.minus=X.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?hj(t,e):dj(t,(e.s=-e.s,e))};X.modulo=X.mod=function(e){var t,r=this,n=r.constructor,i=n.precision;if(e=new n(e),!e.s)throw Error(Ht+"NaN");return r.s?(Oe=!1,t=$r(r,e,0,1).times(e),Oe=!0,r.minus(t)):pe(new n(r),i)};X.naturalExponential=X.exp=function(){return pj(this)};X.naturalLogarithm=X.ln=function(){return Yo(this)};X.negated=X.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};X.plus=X.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?dj(t,e):hj(t,(e.s=-e.s,e))};X.precision=X.sd=function(e){var t,r,n,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Vn+e);if(t=De(i)+1,n=i.d.length-1,r=n*xe+1,n=i.d[n],n){for(;n%10==0;n/=10)r--;for(n=i.d[0];n>=10;n/=10)r++}return e&&t>r?t:r};X.squareRoot=X.sqrt=function(){var e,t,r,n,i,a,o,l=this,s=l.constructor;if(l.s<1){if(!l.s)return new s(0);throw Error(Ht+"NaN")}for(e=De(l),Oe=!1,i=Math.sqrt(+l),i==0||i==1/0?(t=fr(l.d),(t.length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=Ta((e+1)/2)-(e<0||e%2),i==1/0?t="5e"+e:(t=i.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),n=new s(t)):n=new s(i.toString()),r=s.precision,i=o=r+3;;)if(a=n,n=a.plus($r(l,a,o+2)).times(.5),fr(a.d).slice(0,o)===(t=fr(n.d)).slice(0,o)){if(t=t.slice(o-3,o+1),i==o&&t=="4999"){if(pe(a,r+1,0),a.times(a).eq(l)){n=a;break}}else if(t!="9999")break;o+=4}return Oe=!0,pe(n,r)};X.times=X.mul=function(e){var t,r,n,i,a,o,l,s,u,f=this,c=f.constructor,p=f.d,h=(e=new c(e)).d;if(!f.s||!e.s)return new c(0);for(e.s*=f.s,r=f.e+e.e,s=p.length,u=h.length,s<u&&(a=p,p=h,h=a,o=s,s=u,u=o),a=[],o=s+u,n=o;n--;)a.push(0);for(n=u;--n>=0;){for(t=0,i=s+n;i>n;)l=a[i]+h[n]*p[i-n-1]+t,a[i--]=l%Ke|0,t=l/Ke|0;a[i]=(a[i]+t)%Ke|0}for(;!a[--o];)a.pop();return t?++r:a.shift(),e.d=a,e.e=r,Oe?pe(e,c.precision):e};X.toDecimalPlaces=X.todp=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(yr(e,0,Na),t===void 0?t=n.rounding:yr(t,0,8),pe(r,e+De(r)+1,t))};X.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=ei(n,!0):(yr(e,0,Na),t===void 0?t=i.rounding:yr(t,0,8),n=pe(new i(n),e+1,t),r=ei(n,!0,e+1)),r};X.toFixed=function(e,t){var r,n,i=this,a=i.constructor;return e===void 0?ei(i):(yr(e,0,Na),t===void 0?t=a.rounding:yr(t,0,8),n=pe(new a(i),e+De(i)+1,t),r=ei(n.abs(),!1,e+De(n)+1),i.isneg()&&!i.isZero()?"-"+r:r)};X.toInteger=X.toint=function(){var e=this,t=e.constructor;return pe(new t(e),De(e)+1,t.rounding)};X.toNumber=function(){return+this};X.toPower=X.pow=function(e){var t,r,n,i,a,o,l=this,s=l.constructor,u=12,f=+(e=new s(e));if(!e.s)return new s(jt);if(l=new s(l),!l.s){if(e.s<1)throw Error(Ht+"Infinity");return l}if(l.eq(jt))return l;if(n=s.precision,e.eq(jt))return pe(l,n);if(t=e.e,r=e.d.length-1,o=t>=r,a=l.s,o){if((r=f<0?-f:f)<=fj){for(i=new s(jt),t=Math.ceil(n/xe+4),Oe=!1;r%2&&(i=i.times(l),cx(i.d,t)),r=Ta(r/2),r!==0;)l=l.times(l),cx(l.d,t);return Oe=!0,e.s<0?new s(jt).div(i):pe(i,n)}}else if(a<0)throw Error(Ht+"NaN");return a=a<0&&e.d[Math.max(t,r)]&1?-1:1,l.s=1,Oe=!1,i=e.times(Yo(l,n+u)),Oe=!0,i=pj(i),i.s=a,i};X.toPrecision=function(e,t){var r,n,i=this,a=i.constructor;return e===void 0?(r=De(i),n=ei(i,r<=a.toExpNeg||r>=a.toExpPos)):(yr(e,1,Na),t===void 0?t=a.rounding:yr(t,0,8),i=pe(new a(i),e,t),r=De(i),n=ei(i,e<=r||r<=a.toExpNeg,e)),n};X.toSignificantDigits=X.tosd=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(yr(e,1,Na),t===void 0?t=n.rounding:yr(t,0,8)),pe(new n(r),e,t)};X.toString=X.valueOf=X.val=X.toJSON=X[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=De(e),r=e.constructor;return ei(e,t<=r.toExpNeg||t>=r.toExpPos)};function dj(e,t){var r,n,i,a,o,l,s,u,f=e.constructor,c=f.precision;if(!e.s||!t.s)return t.s||(t=new f(e)),Oe?pe(t,c):t;if(s=e.d,u=t.d,o=e.e,i=t.e,s=s.slice(),a=o-i,a){for(a<0?(n=s,a=-a,l=u.length):(n=u,i=o,l=s.length),o=Math.ceil(c/xe),l=o>l?o+1:l+1,a>l&&(a=l,n.length=1),n.reverse();a--;)n.push(0);n.reverse()}for(l=s.length,a=u.length,l-a<0&&(a=l,n=u,u=s,s=n),r=0;a;)r=(s[--a]=s[a]+u[a]+r)/Ke|0,s[a]%=Ke;for(r&&(s.unshift(r),++i),l=s.length;s[--l]==0;)s.pop();return t.d=s,t.e=i,Oe?pe(t,c):t}function yr(e,t,r){if(e!==~~e||e<t||e>r)throw Error(Vn+e)}function fr(e){var t,r,n,i=e.length-1,a="",o=e[0];if(i>0){for(a+=o,t=1;t<i;t++)n=e[t]+"",r=xe-n.length,r&&(a+=Xr(r)),a+=n;o=e[t],n=o+"",r=xe-n.length,r&&(a+=Xr(r))}else if(o===0)return"0";for(;o%10===0;)o/=10;return a+o}var $r=function(){function e(n,i){var a,o=0,l=n.length;for(n=n.slice();l--;)a=n[l]*i+o,n[l]=a%Ke|0,o=a/Ke|0;return o&&n.unshift(o),n}function t(n,i,a,o){var l,s;if(a!=o)s=a>o?1:-1;else for(l=s=0;l<a;l++)if(n[l]!=i[l]){s=n[l]>i[l]?1:-1;break}return s}function r(n,i,a){for(var o=0;a--;)n[a]-=o,o=n[a]<i[a]?1:0,n[a]=o*Ke+n[a]-i[a];for(;!n[0]&&n.length>1;)n.shift()}return function(n,i,a,o){var l,s,u,f,c,p,h,y,b,g,m,v,x,O,w,S,j,_,A=n.constructor,$=n.s==i.s?1:-1,N=n.d,k=i.d;if(!n.s)return new A(n);if(!i.s)throw Error(Ht+"Division by zero");for(s=n.e-i.e,j=k.length,w=N.length,h=new A($),y=h.d=[],u=0;k[u]==(N[u]||0);)++u;if(k[u]>(N[u]||0)&&--s,a==null?v=a=A.precision:o?v=a+(De(n)-De(i))+1:v=a,v<0)return new A(0);if(v=v/xe+2|0,u=0,j==1)for(f=0,k=k[0],v++;(u<w||f)&&v--;u++)x=f*Ke+(N[u]||0),y[u]=x/k|0,f=x%k|0;else{for(f=Ke/(k[0]+1)|0,f>1&&(k=e(k,f),N=e(N,f),j=k.length,w=N.length),O=j,b=N.slice(0,j),g=b.length;g<j;)b[g++]=0;_=k.slice(),_.unshift(0),S=k[0],k[1]>=Ke/2&&++S;do f=0,l=t(k,b,j,g),l<0?(m=b[0],j!=g&&(m=m*Ke+(b[1]||0)),f=m/S|0,f>1?(f>=Ke&&(f=Ke-1),c=e(k,f),p=c.length,g=b.length,l=t(c,b,p,g),l==1&&(f--,r(c,j<p?_:k,p))):(f==0&&(l=f=1),c=k.slice()),p=c.length,p<g&&c.unshift(0),r(b,c,g),l==-1&&(g=b.length,l=t(k,b,j,g),l<1&&(f++,r(b,j<g?_:k,g))),g=b.length):l===0&&(f++,b=[0]),y[u++]=f,l&&b[0]?b[g++]=N[O]||0:(b=[N[O]],g=1);while((O++<w||b[0]!==void 0)&&v--)}return y[0]||y.shift(),h.e=s,pe(h,o?a+De(h)+1:a)}}();function pj(e,t){var r,n,i,a,o,l,s=0,u=0,f=e.constructor,c=f.precision;if(De(e)>16)throw Error(bm+De(e));if(!e.s)return new f(jt);for(Oe=!1,l=c,o=new f(.03125);e.abs().gte(.1);)e=e.times(o),u+=5;for(n=Math.log(Mn(2,u))/Math.LN10*2+5|0,l+=n,r=i=a=new f(jt),f.precision=l;;){if(i=pe(i.times(e),l),r=r.times(++s),o=a.plus($r(i,r,l)),fr(o.d).slice(0,l)===fr(a.d).slice(0,l)){for(;u--;)a=pe(a.times(a),l);return f.precision=c,t==null?(Oe=!0,pe(a,c)):a}a=o}}function De(e){for(var t=e.e*xe,r=e.d[0];r>=10;r/=10)t++;return t}function ed(e,t,r){if(t>e.LN10.sd())throw Oe=!0,r&&(e.precision=r),Error(Ht+"LN10 precision limit exceeded");return pe(new e(e.LN10),t)}function Xr(e){for(var t="";e--;)t+="0";return t}function Yo(e,t){var r,n,i,a,o,l,s,u,f,c=1,p=10,h=e,y=h.d,b=h.constructor,g=b.precision;if(h.s<1)throw Error(Ht+(h.s?"NaN":"-Infinity"));if(h.eq(jt))return new b(0);if(t==null?(Oe=!1,u=g):u=t,h.eq(10))return t==null&&(Oe=!0),ed(b,u);if(u+=p,b.precision=u,r=fr(y),n=r.charAt(0),a=De(h),Math.abs(a)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)h=h.times(e),r=fr(h.d),n=r.charAt(0),c++;a=De(h),n>1?(h=new b("0."+r),a++):h=new b(n+"."+r.slice(1))}else return s=ed(b,u+2,g).times(a+""),h=Yo(new b(n+"."+r.slice(1)),u-p).plus(s),b.precision=g,t==null?(Oe=!0,pe(h,g)):h;for(l=o=h=$r(h.minus(jt),h.plus(jt),u),f=pe(h.times(h),u),i=3;;){if(o=pe(o.times(f),u),s=l.plus($r(o,new b(i),u)),fr(s.d).slice(0,u)===fr(l.d).slice(0,u))return l=l.times(2),a!==0&&(l=l.plus(ed(b,u+2,g).times(a+""))),l=$r(l,new b(c),u),b.precision=g,t==null?(Oe=!0,pe(l,g)):l;l=s,i+=2}}function ux(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;)++n;for(i=t.length;t.charCodeAt(i-1)===48;)--i;if(t=t.slice(n,i),t){if(i-=n,r=r-n-1,e.e=Ta(r/xe),e.d=[],n=(r+1)%xe,r<0&&(n+=xe),n<i){for(n&&e.d.push(+t.slice(0,n)),i-=xe;n<i;)e.d.push(+t.slice(n,n+=xe));t=t.slice(n),n=xe-t.length}else n-=i;for(;n--;)t+="0";if(e.d.push(+t),Oe&&(e.e>Pu||e.e<-Pu))throw Error(bm+r)}else e.s=0,e.e=0,e.d=[0];return e}function pe(e,t,r){var n,i,a,o,l,s,u,f,c=e.d;for(o=1,a=c[0];a>=10;a/=10)o++;if(n=t-o,n<0)n+=xe,i=t,u=c[f=0];else{if(f=Math.ceil((n+1)/xe),a=c.length,f>=a)return e;for(u=a=c[f],o=1;a>=10;a/=10)o++;n%=xe,i=n-xe+o}if(r!==void 0&&(a=Mn(10,o-i-1),l=u/a%10|0,s=t<0||c[f+1]!==void 0||u%a,s=r<4?(l||s)&&(r==0||r==(e.s<0?3:2)):l>5||l==5&&(r==4||s||r==6&&(n>0?i>0?u/Mn(10,o-i):0:c[f-1])%10&1||r==(e.s<0?8:7))),t<1||!c[0])return s?(a=De(e),c.length=1,t=t-a-1,c[0]=Mn(10,(xe-t%xe)%xe),e.e=Ta(-t/xe)||0):(c.length=1,c[0]=e.e=e.s=0),e;if(n==0?(c.length=f,a=1,f--):(c.length=f+1,a=Mn(10,xe-n),c[f]=i>0?(u/Mn(10,o-i)%Mn(10,i)|0)*a:0),s)for(;;)if(f==0){(c[0]+=a)==Ke&&(c[0]=1,++e.e);break}else{if(c[f]+=a,c[f]!=Ke)break;c[f--]=0,a=1}for(n=c.length;c[--n]===0;)c.pop();if(Oe&&(e.e>Pu||e.e<-Pu))throw Error(bm+De(e));return e}function hj(e,t){var r,n,i,a,o,l,s,u,f,c,p=e.constructor,h=p.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new p(e),Oe?pe(t,h):t;if(s=e.d,c=t.d,n=t.e,u=e.e,s=s.slice(),o=u-n,o){for(f=o<0,f?(r=s,o=-o,l=c.length):(r=c,n=u,l=s.length),i=Math.max(Math.ceil(h/xe),l)+2,o>i&&(o=i,r.length=1),r.reverse(),i=o;i--;)r.push(0);r.reverse()}else{for(i=s.length,l=c.length,f=i<l,f&&(l=i),i=0;i<l;i++)if(s[i]!=c[i]){f=s[i]<c[i];break}o=0}for(f&&(r=s,s=c,c=r,t.s=-t.s),l=s.length,i=c.length-l;i>0;--i)s[l++]=0;for(i=c.length;i>o;){if(s[--i]<c[i]){for(a=i;a&&s[--a]===0;)s[a]=Ke-1;--s[a],s[i]+=Ke}s[i]-=c[i]}for(;s[--l]===0;)s.pop();for(;s[0]===0;s.shift())--n;return s[0]?(t.d=s,t.e=n,Oe?pe(t,h):t):new p(0)}function ei(e,t,r){var n,i=De(e),a=fr(e.d),o=a.length;return t?(r&&(n=r-o)>0?a=a.charAt(0)+"."+a.slice(1)+Xr(n):o>1&&(a=a.charAt(0)+"."+a.slice(1)),a=a+(i<0?"e":"e+")+i):i<0?(a="0."+Xr(-i-1)+a,r&&(n=r-o)>0&&(a+=Xr(n))):i>=o?(a+=Xr(i+1-o),r&&(n=r-i-1)>0&&(a=a+"."+Xr(n))):((n=i+1)<o&&(a=a.slice(0,n)+"."+a.slice(n)),r&&(n=r-o)>0&&(i+1===o&&(a+="."),a+=Xr(n))),e.s<0?"-"+a:a}function cx(e,t){if(e.length>t)return e.length=t,!0}function vj(e){var t,r,n;function i(a){var o=this;if(!(o instanceof i))return new i(a);if(o.constructor=i,a instanceof i){o.s=a.s,o.e=a.e,o.d=(a=a.d)?a.slice():a;return}if(typeof a=="number"){if(a*0!==0)throw Error(Vn+a);if(a>0)o.s=1;else if(a<0)a=-a,o.s=-1;else{o.s=0,o.e=0,o.d=[0];return}if(a===~~a&&a<1e7){o.e=0,o.d=[a];return}return ux(o,a.toString())}else if(typeof a!="string")throw Error(Vn+a);if(a.charCodeAt(0)===45?(a=a.slice(1),o.s=-1):o.s=1,TF.test(a))ux(o,a);else throw Error(Vn+a)}if(i.prototype=X,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=vj,i.config=i.set=CF,e===void 0&&(e={}),e)for(n=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t<n.length;)e.hasOwnProperty(r=n[t++])||(e[r]=this[r]);return i.config(e),i}function CF(e){if(!e||typeof e!="object")throw Error(Ht+"Object expected");var t,r,n,i=["precision",1,Na,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(t=0;t<i.length;t+=3)if((n=e[r=i[t]])!==void 0)if(Ta(n)===n&&n>=i[t+1]&&n<=i[t+2])this[r]=n;else throw Error(Vn+r+": "+n);if((n=e[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(Vn+r+": "+n);return this}var wm=vj(NF);jt=new wm(1);const fe=wm;function MF(e){return RF(e)||LF(e)||DF(e)||IF()}function IF(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function DF(e,t){if(e){if(typeof e=="string")return zp(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return zp(e,t)}}function LF(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function RF(e){if(Array.isArray(e))return zp(e)}function zp(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var BF=function(t){return t},mj={},yj=function(t){return t===mj},fx=function(t){return function r(){return arguments.length===0||arguments.length===1&&yj(arguments.length<=0?void 0:arguments[0])?r:t.apply(void 0,arguments)}},zF=function e(t,r){return t===1?r:fx(function(){for(var n=arguments.length,i=new Array(n),a=0;a<n;a++)i[a]=arguments[a];var o=i.filter(function(l){return l!==mj}).length;return o>=t?r.apply(void 0,i):e(t-o,fx(function(){for(var l=arguments.length,s=new Array(l),u=0;u<l;u++)s[u]=arguments[u];var f=i.map(function(c){return yj(c)?s.shift():c});return r.apply(void 0,MF(f).concat(s))}))})},Vc=function(t){return zF(t.length,t)},Fp=function(t,r){for(var n=[],i=t;i<r;++i)n[i-t]=i;return n},FF=Vc(function(e,t){return Array.isArray(t)?t.map(e):Object.keys(t).map(function(r){return t[r]}).map(e)}),UF=function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];if(!r.length)return BF;var i=r.reverse(),a=i[0],o=i.slice(1);return function(){return o.reduce(function(l,s){return s(l)},a.apply(void 0,arguments))}},Up=function(t){return Array.isArray(t)?t.reverse():t.split("").reverse.join("")},gj=function(t){var r=null,n=null;return function(){for(var i=arguments.length,a=new Array(i),o=0;o<i;o++)a[o]=arguments[o];return r&&a.every(function(l,s){return l===r[s]})||(r=a,n=t.apply(void 0,a)),n}};function WF(e){var t;return e===0?t=1:t=Math.floor(new fe(e).abs().log(10).toNumber())+1,t}function HF(e,t,r){for(var n=new fe(e),i=0,a=[];n.lt(t)&&i<1e5;)a.push(n.toNumber()),n=n.add(r),i++;return a}var KF=Vc(function(e,t,r){var n=+e,i=+t;return n+r*(i-n)}),VF=Vc(function(e,t,r){var n=t-+e;return n=n||1/0,(r-e)/n}),GF=Vc(function(e,t,r){var n=t-+e;return n=n||1/0,Math.max(0,Math.min(1,(r-e)/n))});const Gc={rangeStep:HF,getDigitCount:WF,interpolateNumber:KF,uninterpolateNumber:VF,uninterpolateTruncation:GF};function Wp(e){return YF(e)||qF(e)||xj(e)||XF()}function XF(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function qF(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function YF(e){if(Array.isArray(e))return Hp(e)}function Qo(e,t){return JF(e)||ZF(e,t)||xj(e,t)||QF()}function QF(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xj(e,t){if(e){if(typeof e=="string")return Hp(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Hp(e,t)}}function Hp(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function ZF(e,t){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(e)))){var r=[],n=!0,i=!1,a=void 0;try{for(var o=e[Symbol.iterator](),l;!(n=(l=o.next()).done)&&(r.push(l.value),!(t&&r.length===t));n=!0);}catch(s){i=!0,a=s}finally{try{!n&&o.return!=null&&o.return()}finally{if(i)throw a}}return r}}function JF(e){if(Array.isArray(e))return e}function bj(e){var t=Qo(e,2),r=t[0],n=t[1],i=r,a=n;return r>n&&(i=n,a=r),[i,a]}function wj(e,t,r){if(e.lte(0))return new fe(0);var n=Gc.getDigitCount(e.toNumber()),i=new fe(10).pow(n),a=e.div(i),o=n!==1?.05:.1,l=new fe(Math.ceil(a.div(o).toNumber())).add(r).mul(o),s=l.mul(i);return t?s:new fe(Math.ceil(s))}function eU(e,t,r){var n=1,i=new fe(e);if(!i.isint()&&r){var a=Math.abs(e);a<1?(n=new fe(10).pow(Gc.getDigitCount(e)-1),i=new fe(Math.floor(i.div(n).toNumber())).mul(n)):a>1&&(i=new fe(Math.floor(e)))}else e===0?i=new fe(Math.floor((t-1)/2)):r||(i=new fe(Math.floor(e)));var o=Math.floor((t-1)/2),l=UF(FF(function(s){return i.add(new fe(s-o).mul(n)).toNumber()}),Fp);return l(0,t)}function Sj(e,t,r,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(r-1)))return{step:new fe(0),tickMin:new fe(0),tickMax:new fe(0)};var a=wj(new fe(t).sub(e).div(r-1),n,i),o;e<=0&&t>=0?o=new fe(0):(o=new fe(e).add(t).div(2),o=o.sub(new fe(o).mod(a)));var l=Math.ceil(o.sub(e).div(a).toNumber()),s=Math.ceil(new fe(t).sub(o).div(a).toNumber()),u=l+s+1;return u>r?Sj(e,t,r,n,i+1):(u<r&&(s=t>0?s+(r-u):s,l=t>0?l:l+(r-u)),{step:a,tickMin:o.sub(new fe(l).mul(a)),tickMax:o.add(new fe(s).mul(a))})}function tU(e){var t=Qo(e,2),r=t[0],n=t[1],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=Math.max(i,2),l=bj([r,n]),s=Qo(l,2),u=s[0],f=s[1];if(u===-1/0||f===1/0){var c=f===1/0?[u].concat(Wp(Fp(0,i-1).map(function(){return 1/0}))):[].concat(Wp(Fp(0,i-1).map(function(){return-1/0})),[f]);return r>n?Up(c):c}if(u===f)return eU(u,i,a);var p=Sj(u,f,o,a),h=p.step,y=p.tickMin,b=p.tickMax,g=Gc.rangeStep(y,b.add(new fe(.1).mul(h)),h);return r>n?Up(g):g}function rU(e,t){var r=Qo(e,2),n=r[0],i=r[1],a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=bj([n,i]),l=Qo(o,2),s=l[0],u=l[1];if(s===-1/0||u===1/0)return[n,i];if(s===u)return[s];var f=Math.max(t,2),c=wj(new fe(u).sub(s).div(f-1),a,0),p=[].concat(Wp(Gc.rangeStep(new fe(s),new fe(u).sub(new fe(.99).mul(c)),c)),[u]);return n>i?Up(p):p}var nU=gj(tU),iU=gj(rU),aU="Invariant failed";function ti(e,t){throw new Error(aU)}var oU=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function ta(e){"@babel/helpers - typeof";return ta=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ta(e)}function Au(){return Au=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Au.apply(this,arguments)}function lU(e,t){return fU(e)||cU(e,t)||uU(e,t)||sU()}function sU(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function uU(e,t){if(e){if(typeof e=="string")return dx(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return dx(e,t)}}function dx(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function cU(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,l=[],s=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(s=(n=a.call(r)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(f){u=!0,i=f}finally{try{if(!s&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return l}}function fU(e){if(Array.isArray(e))return e}function dU(e,t){if(e==null)return{};var r=pU(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function pU(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function hU(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function vU(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,_j(n.key),n)}}function mU(e,t,r){return t&&vU(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function yU(e,t,r){return t=Eu(t),gU(e,Oj()?Reflect.construct(t,r||[],Eu(e).constructor):t.apply(e,r))}function gU(e,t){if(t&&(ta(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return xU(e)}function xU(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Oj(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Oj=function(){return!!e})()}function Eu(e){return Eu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Eu(e)}function bU(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Kp(e,t)}function Kp(e,t){return Kp=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Kp(e,t)}function jj(e,t,r){return t=_j(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _j(e){var t=wU(e,"string");return ta(t)=="symbol"?t:t+""}function wU(e,t){if(ta(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(ta(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Xc=function(e){function t(){return hU(this,t),yU(this,t,arguments)}return bU(t,e),mU(t,[{key:"render",value:function(){var n=this.props,i=n.offset,a=n.layout,o=n.width,l=n.dataKey,s=n.data,u=n.dataPointFormatter,f=n.xAxis,c=n.yAxis,p=dU(n,oU),h=ee(p,!1);this.props.direction==="x"&&f.type!=="number"&&ti();var y=s.map(function(b){var g=u(b,l),m=g.x,v=g.y,x=g.value,O=g.errorVal;if(!O)return null;var w=[],S,j;if(Array.isArray(O)){var _=lU(O,2);S=_[0],j=_[1]}else S=j=O;if(a==="vertical"){var A=f.scale,$=v+i,N=$+o,k=$-o,D=A(x-S),I=A(x+j);w.push({x1:I,y1:N,x2:I,y2:k}),w.push({x1:D,y1:$,x2:I,y2:$}),w.push({x1:D,y1:N,x2:D,y2:k})}else if(a==="horizontal"){var M=c.scale,R=m+i,z=R-o,T=R+o,L=M(x-S),B=M(x+j);w.push({x1:z,y1:B,x2:T,y2:B}),w.push({x1:R,y1:L,x2:R,y2:B}),w.push({x1:z,y1:L,x2:T,y2:L})}return E.createElement(_e,Au({className:"recharts-errorBar",key:"bar-".concat(w.map(function(K){return"".concat(K.x1,"-").concat(K.x2,"-").concat(K.y1,"-").concat(K.y2)}))},h),w.map(function(K){return E.createElement("line",Au({},K,{key:"line-".concat(K.x1,"-").concat(K.x2,"-").concat(K.y1,"-").concat(K.y2)}))}))});return E.createElement(_e,{className:"recharts-errorBars"},y)}}])}(E.Component);jj(Xc,"defaultProps",{stroke:"black",strokeWidth:1.5,width:5,offset:0,layout:"horizontal"});jj(Xc,"displayName","ErrorBar");function Zo(e){"@babel/helpers - typeof";return Zo=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Zo(e)}function px(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function kn(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?px(Object(r),!0).forEach(function(n){SU(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):px(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function SU(e,t,r){return t=OU(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function OU(e){var t=jU(e,"string");return Zo(t)=="symbol"?t:t+""}function jU(e,t){if(Zo(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Zo(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Pj=function(t){var r=t.children,n=t.formattedGraphicalItems,i=t.legendWidth,a=t.legendContent,o=Ot(r,Li);if(!o)return null;var l=Li.defaultProps,s=l!==void 0?kn(kn({},l),o.props):{},u;return o.props&&o.props.payload?u=o.props&&o.props.payload:a==="children"?u=(n||[]).reduce(function(f,c){var p=c.item,h=c.props,y=h.sectors||h.data||[];return f.concat(y.map(function(b){return{type:o.props.iconType||p.props.legendType,value:b.name,color:b.fill,payload:b}}))},[]):u=(n||[]).map(function(f){var c=f.item,p=c.type.defaultProps,h=p!==void 0?kn(kn({},p),c.props):{},y=h.dataKey,b=h.name,g=h.legendType,m=h.hide;return{inactive:m,dataKey:y,type:s.iconType||g||"square",color:Sm(c),value:b||y,payload:h}}),kn(kn(kn({},s),Li.getWithHeight(o,i)),{},{payload:u,item:o})};function Jo(e){"@babel/helpers - typeof";return Jo=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Jo(e)}function hx(e){return EU(e)||AU(e)||PU(e)||_U()}function _U(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function PU(e,t){if(e){if(typeof e=="string")return Vp(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Vp(e,t)}}function AU(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function EU(e){if(Array.isArray(e))return Vp(e)}function Vp(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function vx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function $e(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?vx(Object(r),!0).forEach(function(n){Bi(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):vx(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Bi(e,t,r){return t=kU(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function kU(e){var t=$U(e,"string");return Jo(t)=="symbol"?t:t+""}function $U(e,t){if(Jo(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Jo(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Et(e,t,r){return re(e)||re(t)?r:We(t)?Ft(e,t,r):Z(t)?t(e):r}function vo(e,t,r,n){var i=AF(e,function(l){return Et(l,t)});if(r==="number"){var a=i.filter(function(l){return H(l)||parseFloat(l)});return a.length?[Kc(a),tn(a)]:[1/0,-1/0]}var o=n?i.filter(function(l){return!re(l)}):i;return o.map(function(l){return We(l)||l instanceof Date?l:""})}var NU=function(t){var r,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0,a=arguments.length>3?arguments[3]:void 0,o=-1,l=(r=n==null?void 0:n.length)!==null&&r!==void 0?r:0;if(l<=1)return 0;if(a&&a.axisType==="angleAxis"&&Math.abs(Math.abs(a.range[1]-a.range[0])-360)<=1e-6)for(var s=a.range,u=0;u<l;u++){var f=u>0?i[u-1].coordinate:i[l-1].coordinate,c=i[u].coordinate,p=u>=l-1?i[0].coordinate:i[u+1].coordinate,h=void 0;if(tr(c-f)!==tr(p-c)){var y=[];if(tr(p-c)===tr(s[1]-s[0])){h=p;var b=c+s[1]-s[0];y[0]=Math.min(b,(b+f)/2),y[1]=Math.max(b,(b+f)/2)}else{h=f;var g=p+s[1]-s[0];y[0]=Math.min(c,(g+c)/2),y[1]=Math.max(c,(g+c)/2)}var m=[Math.min(c,(h+c)/2),Math.max(c,(h+c)/2)];if(t>m[0]&&t<=m[1]||t>=y[0]&&t<=y[1]){o=i[u].index;break}}else{var v=Math.min(f,p),x=Math.max(f,p);if(t>(v+c)/2&&t<=(x+c)/2){o=i[u].index;break}}}else for(var O=0;O<l;O++)if(O===0&&t<=(n[O].coordinate+n[O+1].coordinate)/2||O>0&&O<l-1&&t>(n[O].coordinate+n[O-1].coordinate)/2&&t<=(n[O].coordinate+n[O+1].coordinate)/2||O===l-1&&t>(n[O].coordinate+n[O-1].coordinate)/2){o=n[O].index;break}return o},Sm=function(t){var r,n=t,i=n.type.displayName,a=(r=t.type)!==null&&r!==void 0&&r.defaultProps?$e($e({},t.type.defaultProps),t.props):t.props,o=a.stroke,l=a.fill,s;switch(i){case"Line":s=o;break;case"Area":case"Radar":s=o&&o!=="none"?o:l;break;default:s=l;break}return s},TU=function(t){var r=t.barSize,n=t.totalSize,i=t.stackGroups,a=i===void 0?{}:i;if(!a)return{};for(var o={},l=Object.keys(a),s=0,u=l.length;s<u;s++)for(var f=a[l[s]].stackGroups,c=Object.keys(f),p=0,h=c.length;p<h;p++){var y=f[c[p]],b=y.items,g=y.cateAxisId,m=b.filter(function(j){return Er(j.type).indexOf("Bar")>=0});if(m&&m.length){var v=m[0].type.defaultProps,x=v!==void 0?$e($e({},v),m[0].props):m[0].props,O=x.barSize,w=x[g];o[w]||(o[w]=[]);var S=re(O)?r:O;o[w].push({item:m[0],stackList:m.slice(1),barSize:re(S)?void 0:Jn(S,n,0)})}}return o},CU=function(t){var r=t.barGap,n=t.barCategoryGap,i=t.bandSize,a=t.sizeList,o=a===void 0?[]:a,l=t.maxBarSize,s=o.length;if(s<1)return null;var u=Jn(r,i,0,!0),f,c=[];if(o[0].barSize===+o[0].barSize){var p=!1,h=i/s,y=o.reduce(function(O,w){return O+w.barSize||0},0);y+=(s-1)*u,y>=i&&(y-=(s-1)*u,u=0),y>=i&&h>0&&(p=!0,h*=.9,y=s*h);var b=(i-y)/2>>0,g={offset:b-u,size:0};f=o.reduce(function(O,w){var S={item:w.item,position:{offset:g.offset+g.size+u,size:p?h:w.barSize}},j=[].concat(hx(O),[S]);return g=j[j.length-1].position,w.stackList&&w.stackList.length&&w.stackList.forEach(function(_){j.push({item:_,position:g})}),j},c)}else{var m=Jn(n,i,0,!0);i-2*m-(s-1)*u<=0&&(u=0);var v=(i-2*m-(s-1)*u)/s;v>1&&(v>>=0);var x=l===+l?Math.min(v,l):v;f=o.reduce(function(O,w,S){var j=[].concat(hx(O),[{item:w.item,position:{offset:m+(v+u)*S+(v-x)/2,size:x}}]);return w.stackList&&w.stackList.length&&w.stackList.forEach(function(_){j.push({item:_,position:j[j.length-1].position})}),j},c)}return f},MU=function(t,r,n,i){var a=n.children,o=n.width,l=n.margin,s=o-(l.left||0)-(l.right||0),u=Pj({children:a,legendWidth:s});if(u){var f=i||{},c=f.width,p=f.height,h=u.align,y=u.verticalAlign,b=u.layout;if((b==="vertical"||b==="horizontal"&&y==="middle")&&h!=="center"&&H(t[h]))return $e($e({},t),{},Bi({},h,t[h]+(c||0)));if((b==="horizontal"||b==="vertical"&&h==="center")&&y!=="middle"&&H(t[y]))return $e($e({},t),{},Bi({},y,t[y]+(p||0)))}return t},IU=function(t,r,n){return re(r)?!0:t==="horizontal"?r==="yAxis":t==="vertical"||n==="x"?r==="xAxis":n==="y"?r==="yAxis":!0},Aj=function(t,r,n,i,a){var o=r.props.children,l=ir(o,Xc).filter(function(u){return IU(i,a,u.props.direction)});if(l&&l.length){var s=l.map(function(u){return u.props.dataKey});return t.reduce(function(u,f){var c=Et(f,n);if(re(c))return u;var p=Array.isArray(c)?[Kc(c),tn(c)]:[c,c],h=s.reduce(function(y,b){var g=Et(f,b,0),m=p[0]-Math.abs(Array.isArray(g)?g[0]:g),v=p[1]+Math.abs(Array.isArray(g)?g[1]:g);return[Math.min(m,y[0]),Math.max(v,y[1])]},[1/0,-1/0]);return[Math.min(h[0],u[0]),Math.max(h[1],u[1])]},[1/0,-1/0])}return null},DU=function(t,r,n,i,a){var o=r.map(function(l){return Aj(t,l,n,a,i)}).filter(function(l){return!re(l)});return o&&o.length?o.reduce(function(l,s){return[Math.min(l[0],s[0]),Math.max(l[1],s[1])]},[1/0,-1/0]):null},Ej=function(t,r,n,i,a){var o=r.map(function(s){var u=s.props.dataKey;return n==="number"&&u&&Aj(t,s,u,i)||vo(t,u,n,a)});if(n==="number")return o.reduce(function(s,u){return[Math.min(s[0],u[0]),Math.max(s[1],u[1])]},[1/0,-1/0]);var l={};return o.reduce(function(s,u){for(var f=0,c=u.length;f<c;f++)l[u[f]]||(l[u[f]]=!0,s.push(u[f]));return s},[])},kj=function(t,r){return t==="horizontal"&&r==="xAxis"||t==="vertical"&&r==="yAxis"||t==="centric"&&r==="angleAxis"||t==="radial"&&r==="radiusAxis"},$j=function(t,r,n,i){if(i)return t.map(function(s){return s.coordinate});var a,o,l=t.map(function(s){return s.coordinate===r&&(a=!0),s.coordinate===n&&(o=!0),s.coordinate});return a||l.push(r),o||l.push(n),l},Pr=function(t,r,n){if(!t)return null;var i=t.scale,a=t.duplicateDomain,o=t.type,l=t.range,s=t.realScaleType==="scaleBand"?i.bandwidth()/2:2,u=(r||n)&&o==="category"&&i.bandwidth?i.bandwidth()/s:0;if(u=t.axisType==="angleAxis"&&(l==null?void 0:l.length)>=2?tr(l[0]-l[1])*2*u:u,r&&(t.ticks||t.niceTicks)){var f=(t.ticks||t.niceTicks).map(function(c){var p=a?a.indexOf(c):c;return{coordinate:i(p)+u,value:c,offset:u}});return f.filter(function(c){return!_a(c.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(c,p){return{coordinate:i(c)+u,value:c,index:p,offset:u}}):i.ticks&&!n?i.ticks(t.tickCount).map(function(c){return{coordinate:i(c)+u,value:c,offset:u}}):i.domain().map(function(c,p){return{coordinate:i(c)+u,value:a?a[c]:c,index:p,offset:u}})},td=new WeakMap,ss=function(t,r){if(typeof r!="function")return t;td.has(t)||td.set(t,new WeakMap);var n=td.get(t);if(n.has(r))return n.get(r);var i=function(){t.apply(void 0,arguments),r.apply(void 0,arguments)};return n.set(r,i),i},LU=function(t,r,n){var i=t.scale,a=t.type,o=t.layout,l=t.axisType;if(i==="auto")return o==="radial"&&l==="radiusAxis"?{scale:Ho(),realScaleType:"band"}:o==="radial"&&l==="angleAxis"?{scale:Su(),realScaleType:"linear"}:a==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!n)?{scale:ho(),realScaleType:"point"}:a==="category"?{scale:Ho(),realScaleType:"band"}:{scale:Su(),realScaleType:"linear"};if(Zn(i)){var s="scale".concat(Tc(i));return{scale:(sx[s]||ho)(),realScaleType:sx[s]?s:"point"}}return Z(i)?{scale:i}:{scale:ho(),realScaleType:"point"}},mx=1e-4,RU=function(t){var r=t.domain();if(!(!r||r.length<=2)){var n=r.length,i=t.range(),a=Math.min(i[0],i[1])-mx,o=Math.max(i[0],i[1])+mx,l=t(r[0]),s=t(r[n-1]);(l<a||l>o||s<a||s>o)&&t.domain([r[0],r[n-1]])}},BU=function(t,r){if(!t)return null;for(var n=0,i=t.length;n<i;n++)if(t[n].item===r)return t[n].position;return null},zU=function(t,r){if(!r||r.length!==2||!H(r[0])||!H(r[1]))return t;var n=Math.min(r[0],r[1]),i=Math.max(r[0],r[1]),a=[t[0],t[1]];return(!H(t[0])||t[0]<n)&&(a[0]=n),(!H(t[1])||t[1]>i)&&(a[1]=i),a[0]>i&&(a[0]=i),a[1]<n&&(a[1]=n),a},FU=function(t){var r=t.length;if(!(r<=0))for(var n=0,i=t[0].length;n<i;++n)for(var a=0,o=0,l=0;l<r;++l){var s=_a(t[l][n][1])?t[l][n][0]:t[l][n][1];s>=0?(t[l][n][0]=a,t[l][n][1]=a+s,a=t[l][n][1]):(t[l][n][0]=o,t[l][n][1]=o+s,o=t[l][n][1])}},UU=function(t){var r=t.length;if(!(r<=0))for(var n=0,i=t[0].length;n<i;++n)for(var a=0,o=0;o<r;++o){var l=_a(t[o][n][1])?t[o][n][0]:t[o][n][1];l>=0?(t[o][n][0]=a,t[o][n][1]=a+l,a=t[o][n][1]):(t[o][n][0]=0,t[o][n][1]=0)}},WU={sign:FU,expand:nM,none:Gi,silhouette:iM,wiggle:aM,positive:UU},HU=function(t,r,n){var i=r.map(function(l){return l.props.dataKey}),a=WU[n],o=rM().keys(i).value(function(l,s){return+Et(l,s,0)}).order(yp).offset(a);return o(t)},KU=function(t,r,n,i,a,o){if(!t)return null;var l=o?r.reverse():r,s={},u=l.reduce(function(c,p){var h,y=(h=p.type)!==null&&h!==void 0&&h.defaultProps?$e($e({},p.type.defaultProps),p.props):p.props,b=y.stackId,g=y.hide;if(g)return c;var m=y[n],v=c[m]||{hasStack:!1,stackGroups:{}};if(We(b)){var x=v.stackGroups[b]||{numericAxisId:n,cateAxisId:i,items:[]};x.items.push(p),v.hasStack=!0,v.stackGroups[b]=x}else v.stackGroups[Al("_stackId_")]={numericAxisId:n,cateAxisId:i,items:[p]};return $e($e({},c),{},Bi({},m,v))},s),f={};return Object.keys(u).reduce(function(c,p){var h=u[p];if(h.hasStack){var y={};h.stackGroups=Object.keys(h.stackGroups).reduce(function(b,g){var m=h.stackGroups[g];return $e($e({},b),{},Bi({},g,{numericAxisId:n,cateAxisId:i,items:m.items,stackedData:HU(t,m.items,a)}))},y)}return $e($e({},c),{},Bi({},p,h))},f)},VU=function(t,r){var n=r.realScaleType,i=r.type,a=r.tickCount,o=r.originalDomain,l=r.allowDecimals,s=n||r.scale;if(s!=="auto"&&s!=="linear")return null;if(a&&i==="number"&&o&&(o[0]==="auto"||o[1]==="auto")){var u=t.domain();if(!u.length)return null;var f=nU(u,a,l);return t.domain([Kc(f),tn(f)]),{niceTicks:f}}if(a&&i==="number"){var c=t.domain(),p=iU(c,a,l);return{niceTicks:p}}return null};function yx(e){var t=e.axis,r=e.ticks,n=e.bandSize,i=e.entry,a=e.index,o=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!re(i[t.dataKey])){var l=Zs(r,"value",i[t.dataKey]);if(l)return l.coordinate+n/2}return r[a]?r[a].coordinate+n/2:null}var s=Et(i,re(o)?t.dataKey:o);return re(s)?null:t.scale(s)}var gx=function(t){var r=t.axis,n=t.ticks,i=t.offset,a=t.bandSize,o=t.entry,l=t.index;if(r.type==="category")return n[l]?n[l].coordinate+i:null;var s=Et(o,r.dataKey,r.domain[l]);return re(s)?null:r.scale(s)-a/2+i},GU=function(t){var r=t.numericAxis,n=r.scale.domain();if(r.type==="number"){var i=Math.min(n[0],n[1]),a=Math.max(n[0],n[1]);return i<=0&&a>=0?0:a<0?a:i}return n[0]},XU=function(t,r){var n,i=(n=t.type)!==null&&n!==void 0&&n.defaultProps?$e($e({},t.type.defaultProps),t.props):t.props,a=i.stackId;if(We(a)){var o=r[a];if(o){var l=o.items.indexOf(t);return l>=0?o.stackedData[l]:null}}return null},qU=function(t){return t.reduce(function(r,n){return[Kc(n.concat([r[0]]).filter(H)),tn(n.concat([r[1]]).filter(H))]},[1/0,-1/0])},Nj=function(t,r,n){return Object.keys(t).reduce(function(i,a){var o=t[a],l=o.stackedData,s=l.reduce(function(u,f){var c=qU(f.slice(r,n+1));return[Math.min(u[0],c[0]),Math.max(u[1],c[1])]},[1/0,-1/0]);return[Math.min(s[0],i[0]),Math.max(s[1],i[1])]},[1/0,-1/0]).map(function(i){return i===1/0||i===-1/0?0:i})},xx=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,bx=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Gp=function(t,r,n){if(Z(t))return t(r,n);if(!Array.isArray(t))return r;var i=[];if(H(t[0]))i[0]=n?t[0]:Math.min(t[0],r[0]);else if(xx.test(t[0])){var a=+xx.exec(t[0])[1];i[0]=r[0]-a}else Z(t[0])?i[0]=t[0](r[0]):i[0]=r[0];if(H(t[1]))i[1]=n?t[1]:Math.max(t[1],r[1]);else if(bx.test(t[1])){var o=+bx.exec(t[1])[1];i[1]=r[1]+o}else Z(t[1])?i[1]=t[1](r[1]):i[1]=r[1];return i},ku=function(t,r,n){if(t&&t.scale&&t.scale.bandwidth){var i=t.scale.bandwidth();if(!n||i>0)return i}if(t&&r&&r.length>=2){for(var a=Yv(r,function(c){return c.coordinate}),o=1/0,l=1,s=a.length;l<s;l++){var u=a[l],f=a[l-1];o=Math.min((u.coordinate||0)-(f.coordinate||0),o)}return o===1/0?0:o}return n?void 0:0},wx=function(t,r,n){return!t||!t.length||qo(t,Ft(n,"type.defaultProps.domain"))?r:t},Tj=function(t,r){var n=t.type.defaultProps?$e($e({},t.type.defaultProps),t.props):t.props,i=n.dataKey,a=n.name,o=n.unit,l=n.formatter,s=n.tooltipType,u=n.chartType,f=n.hide;return $e($e({},ee(t,!1)),{},{dataKey:i,unit:o,formatter:l,name:a||i,color:Sm(t),value:Et(r,i),type:s,payload:r,chartType:u,hide:f})};function el(e){"@babel/helpers - typeof";return el=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},el(e)}function Sx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ox(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Sx(Object(r),!0).forEach(function(n){YU(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Sx(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function YU(e,t,r){return t=QU(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function QU(e){var t=ZU(e,"string");return el(t)=="symbol"?t:t+""}function ZU(e,t){if(el(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(el(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var $u=Math.PI/180,JU=function(t){return t*180/Math.PI},Qe=function(t,r,n,i){return{x:t+Math.cos(-$u*i)*n,y:r+Math.sin(-$u*i)*n}},eW=function(t,r){var n=t.x,i=t.y,a=r.x,o=r.y;return Math.sqrt(Math.pow(n-a,2)+Math.pow(i-o,2))},tW=function(t,r){var n=t.x,i=t.y,a=r.cx,o=r.cy,l=eW({x:n,y:i},{x:a,y:o});if(l<=0)return{radius:l};var s=(n-a)/l,u=Math.acos(s);return i>o&&(u=2*Math.PI-u),{radius:l,angle:JU(u),angleInRadian:u}},rW=function(t){var r=t.startAngle,n=t.endAngle,i=Math.floor(r/360),a=Math.floor(n/360),o=Math.min(i,a);return{startAngle:r-o*360,endAngle:n-o*360}},nW=function(t,r){var n=r.startAngle,i=r.endAngle,a=Math.floor(n/360),o=Math.floor(i/360),l=Math.min(a,o);return t+l*360},jx=function(t,r){var n=t.x,i=t.y,a=tW({x:n,y:i},r),o=a.radius,l=a.angle,s=r.innerRadius,u=r.outerRadius;if(o<s||o>u)return!1;if(o===0)return!0;var f=rW(r),c=f.startAngle,p=f.endAngle,h=l,y;if(c<=p){for(;h>p;)h-=360;for(;h<c;)h+=360;y=h>=c&&h<=p}else{for(;h>c;)h-=360;for(;h<p;)h+=360;y=h>=p&&h<=c}return y?Ox(Ox({},r),{},{radius:o,angle:nW(h,r)}):null};function tl(e){"@babel/helpers - typeof";return tl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},tl(e)}var iW=["offset"];function aW(e){return uW(e)||sW(e)||lW(e)||oW()}function oW(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function lW(e,t){if(e){if(typeof e=="string")return Xp(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Xp(e,t)}}function sW(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function uW(e){if(Array.isArray(e))return Xp(e)}function Xp(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function cW(e,t){if(e==null)return{};var r=fW(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function fW(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function _x(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ze(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?_x(Object(r),!0).forEach(function(n){dW(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_x(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function dW(e,t,r){return t=pW(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function pW(e){var t=hW(e,"string");return tl(t)=="symbol"?t:t+""}function hW(e,t){if(tl(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(tl(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function rl(){return rl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},rl.apply(this,arguments)}var vW=function(t){var r=t.value,n=t.formatter,i=re(t.children)?r:t.children;return Z(n)?n(i):i},mW=function(t,r){var n=tr(r-t),i=Math.min(Math.abs(r-t),360);return n*i},yW=function(t,r,n){var i=t.position,a=t.viewBox,o=t.offset,l=t.className,s=a,u=s.cx,f=s.cy,c=s.innerRadius,p=s.outerRadius,h=s.startAngle,y=s.endAngle,b=s.clockWise,g=(c+p)/2,m=mW(h,y),v=m>=0?1:-1,x,O;i==="insideStart"?(x=h+v*o,O=b):i==="insideEnd"?(x=y-v*o,O=!b):i==="end"&&(x=y+v*o,O=b),O=m<=0?O:!O;var w=Qe(u,f,g,x),S=Qe(u,f,g,x+(O?1:-1)*359),j="M".concat(w.x,",").concat(w.y,`
+ A`).concat(g,",").concat(g,",0,1,").concat(O?0:1,`,
+ `).concat(S.x,",").concat(S.y),_=re(t.id)?Al("recharts-radial-line-"):t.id;return E.createElement("text",rl({},n,{dominantBaseline:"central",className:oe("recharts-radial-bar-label",l)}),E.createElement("defs",null,E.createElement("path",{id:_,d:j})),E.createElement("textPath",{xlinkHref:"#".concat(_)},r))},gW=function(t){var r=t.viewBox,n=t.offset,i=t.position,a=r,o=a.cx,l=a.cy,s=a.innerRadius,u=a.outerRadius,f=a.startAngle,c=a.endAngle,p=(f+c)/2;if(i==="outside"){var h=Qe(o,l,u+n,p),y=h.x,b=h.y;return{x:y,y:b,textAnchor:y>=o?"start":"end",verticalAnchor:"middle"}}if(i==="center")return{x:o,y:l,textAnchor:"middle",verticalAnchor:"middle"};if(i==="centerTop")return{x:o,y:l,textAnchor:"middle",verticalAnchor:"start"};if(i==="centerBottom")return{x:o,y:l,textAnchor:"middle",verticalAnchor:"end"};var g=(s+u)/2,m=Qe(o,l,g,p),v=m.x,x=m.y;return{x:v,y:x,textAnchor:"middle",verticalAnchor:"middle"}},xW=function(t){var r=t.viewBox,n=t.parentViewBox,i=t.offset,a=t.position,o=r,l=o.x,s=o.y,u=o.width,f=o.height,c=f>=0?1:-1,p=c*i,h=c>0?"end":"start",y=c>0?"start":"end",b=u>=0?1:-1,g=b*i,m=b>0?"end":"start",v=b>0?"start":"end";if(a==="top"){var x={x:l+u/2,y:s-c*i,textAnchor:"middle",verticalAnchor:h};return ze(ze({},x),n?{height:Math.max(s-n.y,0),width:u}:{})}if(a==="bottom"){var O={x:l+u/2,y:s+f+p,textAnchor:"middle",verticalAnchor:y};return ze(ze({},O),n?{height:Math.max(n.y+n.height-(s+f),0),width:u}:{})}if(a==="left"){var w={x:l-g,y:s+f/2,textAnchor:m,verticalAnchor:"middle"};return ze(ze({},w),n?{width:Math.max(w.x-n.x,0),height:f}:{})}if(a==="right"){var S={x:l+u+g,y:s+f/2,textAnchor:v,verticalAnchor:"middle"};return ze(ze({},S),n?{width:Math.max(n.x+n.width-S.x,0),height:f}:{})}var j=n?{width:u,height:f}:{};return a==="insideLeft"?ze({x:l+g,y:s+f/2,textAnchor:v,verticalAnchor:"middle"},j):a==="insideRight"?ze({x:l+u-g,y:s+f/2,textAnchor:m,verticalAnchor:"middle"},j):a==="insideTop"?ze({x:l+u/2,y:s+p,textAnchor:"middle",verticalAnchor:y},j):a==="insideBottom"?ze({x:l+u/2,y:s+f-p,textAnchor:"middle",verticalAnchor:h},j):a==="insideTopLeft"?ze({x:l+g,y:s+p,textAnchor:v,verticalAnchor:y},j):a==="insideTopRight"?ze({x:l+u-g,y:s+p,textAnchor:m,verticalAnchor:y},j):a==="insideBottomLeft"?ze({x:l+g,y:s+f-p,textAnchor:v,verticalAnchor:h},j):a==="insideBottomRight"?ze({x:l+u-g,y:s+f-p,textAnchor:m,verticalAnchor:h},j):wa(a)&&(H(a.x)||Rn(a.x))&&(H(a.y)||Rn(a.y))?ze({x:l+Jn(a.x,u),y:s+Jn(a.y,f),textAnchor:"end",verticalAnchor:"end"},j):ze({x:l+u/2,y:s+f/2,textAnchor:"middle",verticalAnchor:"middle"},j)},bW=function(t){return"cx"in t&&H(t.cx)};function it(e){var t=e.offset,r=t===void 0?5:t,n=cW(e,iW),i=ze({offset:r},n),a=i.viewBox,o=i.position,l=i.value,s=i.children,u=i.content,f=i.className,c=f===void 0?"":f,p=i.textBreakAll;if(!a||re(l)&&re(s)&&!P.isValidElement(u)&&!Z(u))return null;if(P.isValidElement(u))return P.cloneElement(u,i);var h;if(Z(u)){if(h=P.createElement(u,i),P.isValidElement(h))return h}else h=vW(i);var y=bW(a),b=ee(i,!0);if(y&&(o==="insideStart"||o==="insideEnd"||o==="end"))return yW(i,h,b);var g=y?gW(i):xW(i);return E.createElement(hu,rl({className:oe("recharts-label",c)},b,g,{breakAll:p}),h)}it.displayName="Label";var Cj=function(t){var r=t.cx,n=t.cy,i=t.angle,a=t.startAngle,o=t.endAngle,l=t.r,s=t.radius,u=t.innerRadius,f=t.outerRadius,c=t.x,p=t.y,h=t.top,y=t.left,b=t.width,g=t.height,m=t.clockWise,v=t.labelViewBox;if(v)return v;if(H(b)&&H(g)){if(H(c)&&H(p))return{x:c,y:p,width:b,height:g};if(H(h)&&H(y))return{x:h,y,width:b,height:g}}return H(c)&&H(p)?{x:c,y:p,width:0,height:0}:H(r)&&H(n)?{cx:r,cy:n,startAngle:a||i||0,endAngle:o||i||0,innerRadius:u||0,outerRadius:f||s||l||0,clockWise:m}:t.viewBox?t.viewBox:{}},wW=function(t,r){return t?t===!0?E.createElement(it,{key:"label-implicit",viewBox:r}):We(t)?E.createElement(it,{key:"label-implicit",viewBox:r,value:t}):P.isValidElement(t)?t.type===it?P.cloneElement(t,{key:"label-implicit",viewBox:r}):E.createElement(it,{key:"label-implicit",content:t,viewBox:r}):Z(t)?E.createElement(it,{key:"label-implicit",content:t,viewBox:r}):wa(t)?E.createElement(it,rl({viewBox:r},t,{key:"label-implicit"})):null:null},SW=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&n&&!t.label)return null;var i=t.children,a=Cj(t),o=ir(i,it).map(function(s,u){return P.cloneElement(s,{viewBox:r||a,key:"label-".concat(u)})});if(!n)return o;var l=wW(t.label,r||a);return[l].concat(aW(o))};it.parseViewBox=Cj;it.renderCallByParent=SW;function OW(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var jW=OW;const _W=he(jW);function nl(e){"@babel/helpers - typeof";return nl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nl(e)}var PW=["valueAccessor"],AW=["data","dataKey","clockWise","id","textBreakAll"];function EW(e){return TW(e)||NW(e)||$W(e)||kW()}function kW(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $W(e,t){if(e){if(typeof e=="string")return qp(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return qp(e,t)}}function NW(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function TW(e){if(Array.isArray(e))return qp(e)}function qp(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Nu(){return Nu=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Nu.apply(this,arguments)}function Px(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ax(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Px(Object(r),!0).forEach(function(n){CW(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Px(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function CW(e,t,r){return t=MW(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function MW(e){var t=IW(e,"string");return nl(t)=="symbol"?t:t+""}function IW(e,t){if(nl(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(nl(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ex(e,t){if(e==null)return{};var r=DW(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function DW(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var LW=function(t){return Array.isArray(t.value)?_W(t.value):t.value};function hn(e){var t=e.valueAccessor,r=t===void 0?LW:t,n=Ex(e,PW),i=n.data,a=n.dataKey,o=n.clockWise,l=n.id,s=n.textBreakAll,u=Ex(n,AW);return!i||!i.length?null:E.createElement(_e,{className:"recharts-label-list"},i.map(function(f,c){var p=re(a)?r(f,c):Et(f&&f.payload,a),h=re(l)?{}:{id:"".concat(l,"-").concat(c)};return E.createElement(it,Nu({},ee(f,!0),u,h,{parentViewBox:f.parentViewBox,value:p,textBreakAll:s,viewBox:it.parseViewBox(re(o)?f:Ax(Ax({},f),{},{clockWise:o})),key:"label-".concat(c),index:c}))}))}hn.displayName="LabelList";function RW(e,t){return e?e===!0?E.createElement(hn,{key:"labelList-implicit",data:t}):E.isValidElement(e)||Z(e)?E.createElement(hn,{key:"labelList-implicit",data:t,content:e}):wa(e)?E.createElement(hn,Nu({data:t},e,{key:"labelList-implicit"})):null:null}function BW(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&r&&!e.label)return null;var n=e.children,i=ir(n,hn).map(function(o,l){return P.cloneElement(o,{data:t,key:"labelList-".concat(l)})});if(!r)return i;var a=RW(e.label,t);return[a].concat(EW(i))}hn.renderCallByParent=BW;function il(e){"@babel/helpers - typeof";return il=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},il(e)}function Yp(){return Yp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Yp.apply(this,arguments)}function kx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function $x(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?kx(Object(r),!0).forEach(function(n){zW(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):kx(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function zW(e,t,r){return t=FW(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function FW(e){var t=UW(e,"string");return il(t)=="symbol"?t:t+""}function UW(e,t){if(il(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(il(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var WW=function(t,r){var n=tr(r-t),i=Math.min(Math.abs(r-t),359.999);return n*i},us=function(t){var r=t.cx,n=t.cy,i=t.radius,a=t.angle,o=t.sign,l=t.isExternal,s=t.cornerRadius,u=t.cornerIsExternal,f=s*(l?1:-1)+i,c=Math.asin(s/f)/$u,p=u?a:a+o*c,h=Qe(r,n,f,p),y=Qe(r,n,i,p),b=u?a-o*c:a,g=Qe(r,n,f*Math.cos(c*$u),b);return{center:h,circleTangency:y,lineTangency:g,theta:c}},Mj=function(t){var r=t.cx,n=t.cy,i=t.innerRadius,a=t.outerRadius,o=t.startAngle,l=t.endAngle,s=WW(o,l),u=o+s,f=Qe(r,n,a,o),c=Qe(r,n,a,u),p="M ".concat(f.x,",").concat(f.y,`
+ A `).concat(a,",").concat(a,`,0,
+ `).concat(+(Math.abs(s)>180),",").concat(+(o>u),`,
+ `).concat(c.x,",").concat(c.y,`
+ `);if(i>0){var h=Qe(r,n,i,o),y=Qe(r,n,i,u);p+="L ".concat(y.x,",").concat(y.y,`
+ A `).concat(i,",").concat(i,`,0,
+ `).concat(+(Math.abs(s)>180),",").concat(+(o<=u),`,
+ `).concat(h.x,",").concat(h.y," Z")}else p+="L ".concat(r,",").concat(n," Z");return p},HW=function(t){var r=t.cx,n=t.cy,i=t.innerRadius,a=t.outerRadius,o=t.cornerRadius,l=t.forceCornerRadius,s=t.cornerIsExternal,u=t.startAngle,f=t.endAngle,c=tr(f-u),p=us({cx:r,cy:n,radius:a,angle:u,sign:c,cornerRadius:o,cornerIsExternal:s}),h=p.circleTangency,y=p.lineTangency,b=p.theta,g=us({cx:r,cy:n,radius:a,angle:f,sign:-c,cornerRadius:o,cornerIsExternal:s}),m=g.circleTangency,v=g.lineTangency,x=g.theta,O=s?Math.abs(u-f):Math.abs(u-f)-b-x;if(O<0)return l?"M ".concat(y.x,",").concat(y.y,`
+ a`).concat(o,",").concat(o,",0,0,1,").concat(o*2,`,0
+ a`).concat(o,",").concat(o,",0,0,1,").concat(-o*2,`,0
+ `):Mj({cx:r,cy:n,innerRadius:i,outerRadius:a,startAngle:u,endAngle:f});var w="M ".concat(y.x,",").concat(y.y,`
+ A`).concat(o,",").concat(o,",0,0,").concat(+(c<0),",").concat(h.x,",").concat(h.y,`
+ A`).concat(a,",").concat(a,",0,").concat(+(O>180),",").concat(+(c<0),",").concat(m.x,",").concat(m.y,`
+ A`).concat(o,",").concat(o,",0,0,").concat(+(c<0),",").concat(v.x,",").concat(v.y,`
+ `);if(i>0){var S=us({cx:r,cy:n,radius:i,angle:u,sign:c,isExternal:!0,cornerRadius:o,cornerIsExternal:s}),j=S.circleTangency,_=S.lineTangency,A=S.theta,$=us({cx:r,cy:n,radius:i,angle:f,sign:-c,isExternal:!0,cornerRadius:o,cornerIsExternal:s}),N=$.circleTangency,k=$.lineTangency,D=$.theta,I=s?Math.abs(u-f):Math.abs(u-f)-A-D;if(I<0&&o===0)return"".concat(w,"L").concat(r,",").concat(n,"Z");w+="L".concat(k.x,",").concat(k.y,`
+ A`).concat(o,",").concat(o,",0,0,").concat(+(c<0),",").concat(N.x,",").concat(N.y,`
+ A`).concat(i,",").concat(i,",0,").concat(+(I>180),",").concat(+(c>0),",").concat(j.x,",").concat(j.y,`
+ A`).concat(o,",").concat(o,",0,0,").concat(+(c<0),",").concat(_.x,",").concat(_.y,"Z")}else w+="L".concat(r,",").concat(n,"Z");return w},KW={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},Ij=function(t){var r=$x($x({},KW),t),n=r.cx,i=r.cy,a=r.innerRadius,o=r.outerRadius,l=r.cornerRadius,s=r.forceCornerRadius,u=r.cornerIsExternal,f=r.startAngle,c=r.endAngle,p=r.className;if(o<a||f===c)return null;var h=oe("recharts-sector",p),y=o-a,b=Jn(l,y,0,!0),g;return b>0&&Math.abs(f-c)<360?g=HW({cx:n,cy:i,innerRadius:a,outerRadius:o,cornerRadius:Math.min(b,y/2),forceCornerRadius:s,cornerIsExternal:u,startAngle:f,endAngle:c}):g=Mj({cx:n,cy:i,innerRadius:a,outerRadius:o,startAngle:f,endAngle:c}),E.createElement("path",Yp({},ee(r,!0),{className:h,d:g,role:"img"}))};function al(e){"@babel/helpers - typeof";return al=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},al(e)}function Qp(){return Qp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Qp.apply(this,arguments)}function Nx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Tx(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Nx(Object(r),!0).forEach(function(n){VW(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Nx(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function VW(e,t,r){return t=GW(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function GW(e){var t=XW(e,"string");return al(t)=="symbol"?t:t+""}function XW(e,t){if(al(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(al(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Cx={curveBasisClosed:KC,curveBasisOpen:VC,curveBasis:HC,curveBumpX:$C,curveBumpY:NC,curveLinearClosed:GC,curveLinear:Mc,curveMonotoneX:XC,curveMonotoneY:qC,curveNatural:YC,curveStep:QC,curveStepAfter:JC,curveStepBefore:ZC},cs=function(t){return t.x===+t.x&&t.y===+t.y},Xa=function(t){return t.x},qa=function(t){return t.y},qW=function(t,r){if(Z(t))return t;var n="curve".concat(Tc(t));return(n==="curveMonotone"||n==="curveBump")&&r?Cx["".concat(n).concat(r==="vertical"?"Y":"X")]:Cx[n]||Mc},YW=function(t){var r=t.type,n=r===void 0?"linear":r,i=t.points,a=i===void 0?[]:i,o=t.baseLine,l=t.layout,s=t.connectNulls,u=s===void 0?!1:s,f=qW(n,l),c=u?a.filter(function(b){return cs(b)}):a,p;if(Array.isArray(o)){var h=u?o.filter(function(b){return cs(b)}):o,y=c.map(function(b,g){return Tx(Tx({},b),{},{base:h[g]})});return l==="vertical"?p=es().y(qa).x1(Xa).x0(function(b){return b.base.x}):p=es().x(Xa).y1(qa).y0(function(b){return b.base.y}),p.defined(cs).curve(f),p(y)}return l==="vertical"&&H(o)?p=es().y(qa).x1(Xa).x0(o):H(o)?p=es().x(Xa).y1(qa).y0(o):p=DS().x(Xa).y(qa),p.defined(cs).curve(f),p(c)},mo=function(t){var r=t.className,n=t.points,i=t.path,a=t.pathRef;if((!n||!n.length)&&!i)return null;var o=n&&n.length?YW(t):i;return P.createElement("path",Qp({},ee(t,!1),Js(t),{className:oe("recharts-curve",r),d:o,ref:a}))},Dj={exports:{}},QW="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",ZW=QW,JW=ZW;function Lj(){}function Rj(){}Rj.resetWarningCache=Lj;var e9=function(){function e(n,i,a,o,l,s){if(s!==JW){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}e.isRequired=e;function t(){return e}var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:Rj,resetWarningCache:Lj};return r.PropTypes=r,r};Dj.exports=e9();var t9=Dj.exports;const se=he(t9),{getOwnPropertyNames:r9,getOwnPropertySymbols:n9}=Object,{hasOwnProperty:i9}=Object.prototype;function rd(e,t){return function(n,i,a){return e(n,i,a)&&t(n,i,a)}}function fs(e){return function(r,n,i){if(!r||!n||typeof r!="object"||typeof n!="object")return e(r,n,i);const{cache:a}=i,o=a.get(r),l=a.get(n);if(o&&l)return o===n&&l===r;a.set(r,n),a.set(n,r);const s=e(r,n,i);return a.delete(r),a.delete(n),s}}function a9(e){return e!=null?e[Symbol.toStringTag]:void 0}function Mx(e){return r9(e).concat(n9(e))}const o9=Object.hasOwn||((e,t)=>i9.call(e,t));function ui(e,t){return e===t||!e&&!t&&e!==e&&t!==t}const l9="__v",s9="__o",u9="_owner",{getOwnPropertyDescriptor:Ix,keys:Dx}=Object;function c9(e,t){return e.byteLength===t.byteLength&&Tu(new Uint8Array(e),new Uint8Array(t))}function f9(e,t,r){let n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(!r.equals(e[n],t[n],n,n,e,t,r))return!1;return!0}function d9(e,t){return e.byteLength===t.byteLength&&Tu(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function p9(e,t){return ui(e.getTime(),t.getTime())}function h9(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function v9(e,t){return e===t}function Lx(e,t,r){const n=e.size;if(n!==t.size)return!1;if(!n)return!0;const i=new Array(n),a=e.entries();let o,l,s=0;for(;(o=a.next())&&!o.done;){const u=t.entries();let f=!1,c=0;for(;(l=u.next())&&!l.done;){if(i[c]){c++;continue}const p=o.value,h=l.value;if(r.equals(p[0],h[0],s,c,e,t,r)&&r.equals(p[1],h[1],p[0],h[0],e,t,r)){f=i[c]=!0;break}c++}if(!f)return!1;s++}return!0}const m9=ui;function y9(e,t,r){const n=Dx(e);let i=n.length;if(Dx(t).length!==i)return!1;for(;i-- >0;)if(!Bj(e,t,r,n[i]))return!1;return!0}function Ya(e,t,r){const n=Mx(e);let i=n.length;if(Mx(t).length!==i)return!1;let a,o,l;for(;i-- >0;)if(a=n[i],!Bj(e,t,r,a)||(o=Ix(e,a),l=Ix(t,a),(o||l)&&(!o||!l||o.configurable!==l.configurable||o.enumerable!==l.enumerable||o.writable!==l.writable)))return!1;return!0}function g9(e,t){return ui(e.valueOf(),t.valueOf())}function x9(e,t){return e.source===t.source&&e.flags===t.flags}function Rx(e,t,r){const n=e.size;if(n!==t.size)return!1;if(!n)return!0;const i=new Array(n),a=e.values();let o,l;for(;(o=a.next())&&!o.done;){const s=t.values();let u=!1,f=0;for(;(l=s.next())&&!l.done;){if(!i[f]&&r.equals(o.value,l.value,o.value,l.value,e,t,r)){u=i[f]=!0;break}f++}if(!u)return!1}return!0}function Tu(e,t){let r=e.byteLength;if(t.byteLength!==r||e.byteOffset!==t.byteOffset)return!1;for(;r-- >0;)if(e[r]!==t[r])return!1;return!0}function b9(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function Bj(e,t,r,n){return(n===u9||n===s9||n===l9)&&(e.$$typeof||t.$$typeof)?!0:o9(t,n)&&r.equals(e[n],t[n],n,n,e,t,r)}const w9="[object ArrayBuffer]",S9="[object Arguments]",O9="[object Boolean]",j9="[object DataView]",_9="[object Date]",P9="[object Error]",A9="[object Map]",E9="[object Number]",k9="[object Object]",$9="[object RegExp]",N9="[object Set]",T9="[object String]",C9={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},M9="[object URL]",I9=Object.prototype.toString;function D9({areArrayBuffersEqual:e,areArraysEqual:t,areDataViewsEqual:r,areDatesEqual:n,areErrorsEqual:i,areFunctionsEqual:a,areMapsEqual:o,areNumbersEqual:l,areObjectsEqual:s,arePrimitiveWrappersEqual:u,areRegExpsEqual:f,areSetsEqual:c,areTypedArraysEqual:p,areUrlsEqual:h,unknownTagComparators:y}){return function(g,m,v){if(g===m)return!0;if(g==null||m==null)return!1;const x=typeof g;if(x!==typeof m)return!1;if(x!=="object")return x==="number"?l(g,m,v):x==="function"?a(g,m,v):!1;const O=g.constructor;if(O!==m.constructor)return!1;if(O===Object)return s(g,m,v);if(Array.isArray(g))return t(g,m,v);if(O===Date)return n(g,m,v);if(O===RegExp)return f(g,m,v);if(O===Map)return o(g,m,v);if(O===Set)return c(g,m,v);const w=I9.call(g);if(w===_9)return n(g,m,v);if(w===$9)return f(g,m,v);if(w===A9)return o(g,m,v);if(w===N9)return c(g,m,v);if(w===k9)return typeof g.then!="function"&&typeof m.then!="function"&&s(g,m,v);if(w===M9)return h(g,m,v);if(w===P9)return i(g,m,v);if(w===S9)return s(g,m,v);if(C9[w])return p(g,m,v);if(w===w9)return e(g,m,v);if(w===j9)return r(g,m,v);if(w===O9||w===E9||w===T9)return u(g,m,v);if(y){let S=y[w];if(!S){const j=a9(g);j&&(S=y[j])}if(S)return S(g,m,v)}return!1}}function L9({circular:e,createCustomConfig:t,strict:r}){let n={areArrayBuffersEqual:c9,areArraysEqual:r?Ya:f9,areDataViewsEqual:d9,areDatesEqual:p9,areErrorsEqual:h9,areFunctionsEqual:v9,areMapsEqual:r?rd(Lx,Ya):Lx,areNumbersEqual:m9,areObjectsEqual:r?Ya:y9,arePrimitiveWrappersEqual:g9,areRegExpsEqual:x9,areSetsEqual:r?rd(Rx,Ya):Rx,areTypedArraysEqual:r?rd(Tu,Ya):Tu,areUrlsEqual:b9,unknownTagComparators:void 0};if(t&&(n=Object.assign({},n,t(n))),e){const i=fs(n.areArraysEqual),a=fs(n.areMapsEqual),o=fs(n.areObjectsEqual),l=fs(n.areSetsEqual);n=Object.assign({},n,{areArraysEqual:i,areMapsEqual:a,areObjectsEqual:o,areSetsEqual:l})}return n}function R9(e){return function(t,r,n,i,a,o,l){return e(t,r,l)}}function B9({circular:e,comparator:t,createState:r,equals:n,strict:i}){if(r)return function(l,s){const{cache:u=e?new WeakMap:void 0,meta:f}=r();return t(l,s,{cache:u,equals:n,meta:f,strict:i})};if(e)return function(l,s){return t(l,s,{cache:new WeakMap,equals:n,meta:void 0,strict:i})};const a={cache:void 0,equals:n,meta:void 0,strict:i};return function(l,s){return t(l,s,a)}}const z9=_n();_n({strict:!0});_n({circular:!0});_n({circular:!0,strict:!0});_n({createInternalComparator:()=>ui});_n({strict:!0,createInternalComparator:()=>ui});_n({circular:!0,createInternalComparator:()=>ui});_n({circular:!0,createInternalComparator:()=>ui,strict:!0});function _n(e={}){const{circular:t=!1,createInternalComparator:r,createState:n,strict:i=!1}=e,a=L9(e),o=D9(a),l=r?r(o):R9(o);return B9({circular:t,comparator:o,createState:n,equals:l,strict:i})}function F9(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function Bx(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=-1,n=function i(a){r<0&&(r=a),a-r>t?(e(a),r=-1):F9(i)};requestAnimationFrame(n)}function Zp(e){"@babel/helpers - typeof";return Zp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Zp(e)}function U9(e){return V9(e)||K9(e)||H9(e)||W9()}function W9(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function H9(e,t){if(e){if(typeof e=="string")return zx(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return zx(e,t)}}function zx(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function K9(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function V9(e){if(Array.isArray(e))return e}function G9(){var e={},t=function(){return null},r=!1,n=function i(a){if(!r){if(Array.isArray(a)){if(!a.length)return;var o=a,l=U9(o),s=l[0],u=l.slice(1);if(typeof s=="number"){Bx(i.bind(null,u),s);return}i(s),Bx(i.bind(null,u));return}Zp(a)==="object"&&(e=a,t(e)),typeof a=="function"&&a()}};return{stop:function(){r=!0},start:function(a){r=!1,n(a)},subscribe:function(a){return t=a,function(){t=function(){return null}}}}}function ol(e){"@babel/helpers - typeof";return ol=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ol(e)}function Fx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ux(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Fx(Object(r),!0).forEach(function(n){zj(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Fx(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function zj(e,t,r){return t=X9(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function X9(e){var t=q9(e,"string");return ol(t)==="symbol"?t:String(t)}function q9(e,t){if(ol(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(ol(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Y9=function(t,r){return[Object.keys(t),Object.keys(r)].reduce(function(n,i){return n.filter(function(a){return i.includes(a)})})},Q9=function(t){return t},Z9=function(t){return t.replace(/([A-Z])/g,function(r){return"-".concat(r.toLowerCase())})},yo=function(t,r){return Object.keys(r).reduce(function(n,i){return Ux(Ux({},n),{},zj({},i,t(i,r[i])))},{})},Wx=function(t,r,n){return t.map(function(i){return"".concat(Z9(i)," ").concat(r,"ms ").concat(n)}).join(",")};function J9(e,t){return r7(e)||t7(e,t)||Fj(e,t)||e7()}function e7(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function t7(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,l=[],s=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(s=(n=a.call(r)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(f){u=!0,i=f}finally{try{if(!s&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return l}}function r7(e){if(Array.isArray(e))return e}function n7(e){return o7(e)||a7(e)||Fj(e)||i7()}function i7(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Fj(e,t){if(e){if(typeof e=="string")return Jp(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Jp(e,t)}}function a7(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function o7(e){if(Array.isArray(e))return Jp(e)}function Jp(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var Cu=1e-4,Uj=function(t,r){return[0,3*t,3*r-6*t,3*t-3*r+1]},Wj=function(t,r){return t.map(function(n,i){return n*Math.pow(r,i)}).reduce(function(n,i){return n+i})},Hx=function(t,r){return function(n){var i=Uj(t,r);return Wj(i,n)}},l7=function(t,r){return function(n){var i=Uj(t,r),a=[].concat(n7(i.map(function(o,l){return o*l}).slice(1)),[0]);return Wj(a,n)}},Kx=function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=r[0],a=r[1],o=r[2],l=r[3];if(r.length===1)switch(r[0]){case"linear":i=0,a=0,o=1,l=1;break;case"ease":i=.25,a=.1,o=.25,l=1;break;case"ease-in":i=.42,a=0,o=1,l=1;break;case"ease-out":i=.42,a=0,o=.58,l=1;break;case"ease-in-out":i=0,a=0,o=.58,l=1;break;default:{var s=r[0].split("(");if(s[0]==="cubic-bezier"&&s[1].split(")")[0].split(",").length===4){var u=s[1].split(")")[0].split(",").map(function(g){return parseFloat(g)}),f=J9(u,4);i=f[0],a=f[1],o=f[2],l=f[3]}}}var c=Hx(i,o),p=Hx(a,l),h=l7(i,o),y=function(m){return m>1?1:m<0?0:m},b=function(m){for(var v=m>1?1:m,x=v,O=0;O<8;++O){var w=c(x)-v,S=h(x);if(Math.abs(w-v)<Cu||S<Cu)return p(x);x=y(x-w/S)}return p(x)};return b.isStepper=!1,b},s7=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,i=t.damping,a=i===void 0?8:i,o=t.dt,l=o===void 0?17:o,s=function(f,c,p){var h=-(f-c)*n,y=p*a,b=p+(h-y)*l/1e3,g=p*l/1e3+f;return Math.abs(g-c)<Cu&&Math.abs(b)<Cu?[c,0]:[g,b]};return s.isStepper=!0,s.dt=l,s},u7=function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=r[0];if(typeof i=="string")switch(i){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return Kx(i);case"spring":return s7();default:if(i.split("(")[0]==="cubic-bezier")return Kx(i)}return typeof i=="function"?i:null};function ll(e){"@babel/helpers - typeof";return ll=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ll(e)}function Vx(e){return d7(e)||f7(e)||Hj(e)||c7()}function c7(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function f7(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function d7(e){if(Array.isArray(e))return th(e)}function Gx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function qe(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Gx(Object(r),!0).forEach(function(n){eh(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Gx(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function eh(e,t,r){return t=p7(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function p7(e){var t=h7(e,"string");return ll(t)==="symbol"?t:String(t)}function h7(e,t){if(ll(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(ll(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function v7(e,t){return g7(e)||y7(e,t)||Hj(e,t)||m7()}function m7(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Hj(e,t){if(e){if(typeof e=="string")return th(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return th(e,t)}}function th(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function y7(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,l=[],s=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(s=(n=a.call(r)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(f){u=!0,i=f}finally{try{if(!s&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return l}}function g7(e){if(Array.isArray(e))return e}var Mu=function(t,r,n){return t+(r-t)*n},rh=function(t){var r=t.from,n=t.to;return r!==n},x7=function e(t,r,n){var i=yo(function(a,o){if(rh(o)){var l=t(o.from,o.to,o.velocity),s=v7(l,2),u=s[0],f=s[1];return qe(qe({},o),{},{from:u,velocity:f})}return o},r);return n<1?yo(function(a,o){return rh(o)?qe(qe({},o),{},{velocity:Mu(o.velocity,i[a].velocity,n),from:Mu(o.from,i[a].from,n)}):o},r):e(t,i,n-1)};const b7=function(e,t,r,n,i){var a=Y9(e,t),o=a.reduce(function(g,m){return qe(qe({},g),{},eh({},m,[e[m],t[m]]))},{}),l=a.reduce(function(g,m){return qe(qe({},g),{},eh({},m,{from:e[m],velocity:0,to:t[m]}))},{}),s=-1,u,f,c=function(){return null},p=function(){return yo(function(m,v){return v.from},l)},h=function(){return!Object.values(l).filter(rh).length},y=function(m){u||(u=m);var v=m-u,x=v/r.dt;l=x7(r,l,x),i(qe(qe(qe({},e),t),p())),u=m,h()||(s=requestAnimationFrame(c))},b=function(m){f||(f=m);var v=(m-f)/n,x=yo(function(w,S){return Mu.apply(void 0,Vx(S).concat([r(v)]))},o);if(i(qe(qe(qe({},e),t),x)),v<1)s=requestAnimationFrame(c);else{var O=yo(function(w,S){return Mu.apply(void 0,Vx(S).concat([r(1)]))},o);i(qe(qe(qe({},e),t),O))}};return c=r.isStepper?y:b,function(){return requestAnimationFrame(c),function(){cancelAnimationFrame(s)}}};function ra(e){"@babel/helpers - typeof";return ra=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ra(e)}var w7=["children","begin","duration","attributeName","easing","isActive","steps","from","to","canBegin","onAnimationEnd","shouldReAnimate","onAnimationReStart"];function S7(e,t){if(e==null)return{};var r=O7(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function O7(e,t){if(e==null)return{};var r={},n=Object.keys(e),i,a;for(a=0;a<n.length;a++)i=n[a],!(t.indexOf(i)>=0)&&(r[i]=e[i]);return r}function nd(e){return A7(e)||P7(e)||_7(e)||j7()}function j7(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _7(e,t){if(e){if(typeof e=="string")return nh(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return nh(e,t)}}function P7(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function A7(e){if(Array.isArray(e))return nh(e)}function nh(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Xx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Xt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Xx(Object(r),!0).forEach(function(n){ro(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Xx(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function ro(e,t,r){return t=Kj(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function E7(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function k7(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Kj(n.key),n)}}function $7(e,t,r){return t&&k7(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Kj(e){var t=N7(e,"string");return ra(t)==="symbol"?t:String(t)}function N7(e,t){if(ra(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(ra(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function T7(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ih(e,t)}function ih(e,t){return ih=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},ih(e,t)}function C7(e){var t=M7();return function(){var n=Iu(e),i;if(t){var a=Iu(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return ah(this,i)}}function ah(e,t){if(t&&(ra(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return oh(e)}function oh(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function M7(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Iu(e){return Iu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Iu(e)}var Rr=function(e){T7(r,e);var t=C7(r);function r(n,i){var a;E7(this,r),a=t.call(this,n,i);var o=a.props,l=o.isActive,s=o.attributeName,u=o.from,f=o.to,c=o.steps,p=o.children,h=o.duration;if(a.handleStyleChange=a.handleStyleChange.bind(oh(a)),a.changeStyle=a.changeStyle.bind(oh(a)),!l||h<=0)return a.state={style:{}},typeof p=="function"&&(a.state={style:f}),ah(a);if(c&&c.length)a.state={style:c[0].style};else if(u){if(typeof p=="function")return a.state={style:u},ah(a);a.state={style:s?ro({},s,u):u}}else a.state={style:{}};return a}return $7(r,[{key:"componentDidMount",value:function(){var i=this.props,a=i.isActive,o=i.canBegin;this.mounted=!0,!(!a||!o)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(i){var a=this.props,o=a.isActive,l=a.canBegin,s=a.attributeName,u=a.shouldReAnimate,f=a.to,c=a.from,p=this.state.style;if(l){if(!o){var h={style:s?ro({},s,f):f};this.state&&p&&(s&&p[s]!==f||!s&&p!==f)&&this.setState(h);return}if(!(z9(i.to,f)&&i.canBegin&&i.isActive)){var y=!i.canBegin||!i.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var b=y||u?c:i.to;if(this.state&&p){var g={style:s?ro({},s,b):b};(s&&p[s]!==b||!s&&p!==b)&&this.setState(g)}this.runAnimation(Xt(Xt({},this.props),{},{from:b,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var i=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),i&&i()}},{key:"handleStyleChange",value:function(i){this.changeStyle(i)}},{key:"changeStyle",value:function(i){this.mounted&&this.setState({style:i})}},{key:"runJSAnimation",value:function(i){var a=this,o=i.from,l=i.to,s=i.duration,u=i.easing,f=i.begin,c=i.onAnimationEnd,p=i.onAnimationStart,h=b7(o,l,u7(u),s,this.changeStyle),y=function(){a.stopJSAnimation=h()};this.manager.start([p,f,y,s,c])}},{key:"runStepAnimation",value:function(i){var a=this,o=i.steps,l=i.begin,s=i.onAnimationStart,u=o[0],f=u.style,c=u.duration,p=c===void 0?0:c,h=function(b,g,m){if(m===0)return b;var v=g.duration,x=g.easing,O=x===void 0?"ease":x,w=g.style,S=g.properties,j=g.onAnimationEnd,_=m>0?o[m-1]:g,A=S||Object.keys(w);if(typeof O=="function"||O==="spring")return[].concat(nd(b),[a.runJSAnimation.bind(a,{from:_.style,to:w,duration:v,easing:O}),v]);var $=Wx(A,v,O),N=Xt(Xt(Xt({},_.style),w),{},{transition:$});return[].concat(nd(b),[N,v,j]).filter(Q9)};return this.manager.start([s].concat(nd(o.reduce(h,[f,Math.max(p,l)])),[i.onAnimationEnd]))}},{key:"runAnimation",value:function(i){this.manager||(this.manager=G9());var a=i.begin,o=i.duration,l=i.attributeName,s=i.to,u=i.easing,f=i.onAnimationStart,c=i.onAnimationEnd,p=i.steps,h=i.children,y=this.manager;if(this.unSubscribe=y.subscribe(this.handleStyleChange),typeof u=="function"||typeof h=="function"||u==="spring"){this.runJSAnimation(i);return}if(p.length>1){this.runStepAnimation(i);return}var b=l?ro({},l,s):s,g=Wx(Object.keys(b),o,u);y.start([f,a,Xt(Xt({},b),{},{transition:g}),o,c])}},{key:"render",value:function(){var i=this.props,a=i.children;i.begin;var o=i.duration;i.attributeName,i.easing;var l=i.isActive;i.steps,i.from,i.to,i.canBegin,i.onAnimationEnd,i.shouldReAnimate,i.onAnimationReStart;var s=S7(i,w7),u=P.Children.count(a),f=this.state.style;if(typeof a=="function")return a(f);if(!l||u===0||o<=0)return a;var c=function(h){var y=h.props,b=y.style,g=b===void 0?{}:b,m=y.className,v=P.cloneElement(h,Xt(Xt({},s),{},{style:Xt(Xt({},g),f),className:m}));return v};return u===1?c(P.Children.only(a)):E.createElement("div",null,P.Children.map(a,function(p){return c(p)}))}}]),r}(P.PureComponent);Rr.displayName="Animate";Rr.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};Rr.propTypes={from:se.oneOfType([se.object,se.string]),to:se.oneOfType([se.object,se.string]),attributeName:se.string,duration:se.number,begin:se.number,easing:se.oneOfType([se.string,se.func]),steps:se.arrayOf(se.shape({duration:se.number.isRequired,style:se.object.isRequired,easing:se.oneOfType([se.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),se.func]),properties:se.arrayOf("string"),onAnimationEnd:se.func})),children:se.oneOfType([se.node,se.func]),isActive:se.bool,canBegin:se.bool,onAnimationEnd:se.func,shouldReAnimate:se.bool,onAnimationStart:se.func,onAnimationReStart:se.func};function sl(e){"@babel/helpers - typeof";return sl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},sl(e)}function Du(){return Du=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Du.apply(this,arguments)}function I7(e,t){return B7(e)||R7(e,t)||L7(e,t)||D7()}function D7(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function L7(e,t){if(e){if(typeof e=="string")return qx(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return qx(e,t)}}function qx(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function R7(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,l=[],s=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(s=(n=a.call(r)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(f){u=!0,i=f}finally{try{if(!s&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return l}}function B7(e){if(Array.isArray(e))return e}function Yx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Qx(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Yx(Object(r),!0).forEach(function(n){z7(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Yx(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function z7(e,t,r){return t=F7(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function F7(e){var t=U7(e,"string");return sl(t)=="symbol"?t:t+""}function U7(e,t){if(sl(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(sl(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Zx=function(t,r,n,i,a){var o=Math.min(Math.abs(n)/2,Math.abs(i)/2),l=i>=0?1:-1,s=n>=0?1:-1,u=i>=0&&n>=0||i<0&&n<0?1:0,f;if(o>0&&a instanceof Array){for(var c=[0,0,0,0],p=0,h=4;p<h;p++)c[p]=a[p]>o?o:a[p];f="M".concat(t,",").concat(r+l*c[0]),c[0]>0&&(f+="A ".concat(c[0],",").concat(c[0],",0,0,").concat(u,",").concat(t+s*c[0],",").concat(r)),f+="L ".concat(t+n-s*c[1],",").concat(r),c[1]>0&&(f+="A ".concat(c[1],",").concat(c[1],",0,0,").concat(u,`,
+ `).concat(t+n,",").concat(r+l*c[1])),f+="L ".concat(t+n,",").concat(r+i-l*c[2]),c[2]>0&&(f+="A ".concat(c[2],",").concat(c[2],",0,0,").concat(u,`,
+ `).concat(t+n-s*c[2],",").concat(r+i)),f+="L ".concat(t+s*c[3],",").concat(r+i),c[3]>0&&(f+="A ".concat(c[3],",").concat(c[3],",0,0,").concat(u,`,
+ `).concat(t,",").concat(r+i-l*c[3])),f+="Z"}else if(o>0&&a===+a&&a>0){var y=Math.min(o,a);f="M ".concat(t,",").concat(r+l*y,`
+ A `).concat(y,",").concat(y,",0,0,").concat(u,",").concat(t+s*y,",").concat(r,`
+ L `).concat(t+n-s*y,",").concat(r,`
+ A `).concat(y,",").concat(y,",0,0,").concat(u,",").concat(t+n,",").concat(r+l*y,`
+ L `).concat(t+n,",").concat(r+i-l*y,`
+ A `).concat(y,",").concat(y,",0,0,").concat(u,",").concat(t+n-s*y,",").concat(r+i,`
+ L `).concat(t+s*y,",").concat(r+i,`
+ A `).concat(y,",").concat(y,",0,0,").concat(u,",").concat(t,",").concat(r+i-l*y," Z")}else f="M ".concat(t,",").concat(r," h ").concat(n," v ").concat(i," h ").concat(-n," Z");return f},W7=function(t,r){if(!t||!r)return!1;var n=t.x,i=t.y,a=r.x,o=r.y,l=r.width,s=r.height;if(Math.abs(l)>0&&Math.abs(s)>0){var u=Math.min(a,a+l),f=Math.max(a,a+l),c=Math.min(o,o+s),p=Math.max(o,o+s);return n>=u&&n<=f&&i>=c&&i<=p}return!1},H7={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},Om=function(t){var r=Qx(Qx({},H7),t),n=P.useRef(),i=P.useState(-1),a=I7(i,2),o=a[0],l=a[1];P.useEffect(function(){if(n.current&&n.current.getTotalLength)try{var O=n.current.getTotalLength();O&&l(O)}catch{}},[]);var s=r.x,u=r.y,f=r.width,c=r.height,p=r.radius,h=r.className,y=r.animationEasing,b=r.animationDuration,g=r.animationBegin,m=r.isAnimationActive,v=r.isUpdateAnimationActive;if(s!==+s||u!==+u||f!==+f||c!==+c||f===0||c===0)return null;var x=oe("recharts-rectangle",h);return v?E.createElement(Rr,{canBegin:o>0,from:{width:f,height:c,x:s,y:u},to:{width:f,height:c,x:s,y:u},duration:b,animationEasing:y,isActive:v},function(O){var w=O.width,S=O.height,j=O.x,_=O.y;return E.createElement(Rr,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:g,duration:b,isActive:m,easing:y},E.createElement("path",Du({},ee(r,!0),{className:x,d:Zx(j,_,w,S,p),ref:n})))}):E.createElement("path",Du({},ee(r,!0),{className:x,d:Zx(s,u,f,c,p)}))};function lh(){return lh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},lh.apply(this,arguments)}var jm=function(t){var r=t.cx,n=t.cy,i=t.r,a=t.className,o=oe("recharts-dot",a);return r===+r&&n===+n&&i===+i?P.createElement("circle",lh({},ee(t,!1),Js(t),{className:o,cx:r,cy:n,r:i})):null};function ul(e){"@babel/helpers - typeof";return ul=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ul(e)}var K7=["x","y","top","left","width","height","className"];function sh(){return sh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},sh.apply(this,arguments)}function Jx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function V7(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Jx(Object(r),!0).forEach(function(n){G7(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Jx(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function G7(e,t,r){return t=X7(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function X7(e){var t=q7(e,"string");return ul(t)=="symbol"?t:t+""}function q7(e,t){if(ul(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(ul(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Y7(e,t){if(e==null)return{};var r=Q7(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Q7(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var Z7=function(t,r,n,i,a,o){return"M".concat(t,",").concat(a,"v").concat(i,"M").concat(o,",").concat(r,"h").concat(n)},J7=function(t){var r=t.x,n=r===void 0?0:r,i=t.y,a=i===void 0?0:i,o=t.top,l=o===void 0?0:o,s=t.left,u=s===void 0?0:s,f=t.width,c=f===void 0?0:f,p=t.height,h=p===void 0?0:p,y=t.className,b=Y7(t,K7),g=V7({x:n,y:a,top:l,left:u,width:c,height:h},b);return!H(n)||!H(a)||!H(c)||!H(h)||!H(l)||!H(u)?null:E.createElement("path",sh({},ee(g,!0),{className:oe("recharts-cross",y),d:Z7(n,a,c,h,l,u)}))},eH=oO,tH=eH(Object.getPrototypeOf,Object),rH=tH,nH=zr,iH=rH,aH=Fr,oH="[object Object]",lH=Function.prototype,sH=Object.prototype,Vj=lH.toString,uH=sH.hasOwnProperty,cH=Vj.call(Object);function fH(e){if(!aH(e)||nH(e)!=oH)return!1;var t=iH(e);if(t===null)return!0;var r=uH.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Vj.call(r)==cH}var dH=fH;const pH=he(dH);var hH=zr,vH=Fr,mH="[object Boolean]";function yH(e){return e===!0||e===!1||vH(e)&&hH(e)==mH}var gH=yH;const xH=he(gH);function cl(e){"@babel/helpers - typeof";return cl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},cl(e)}function Lu(){return Lu=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Lu.apply(this,arguments)}function bH(e,t){return jH(e)||OH(e,t)||SH(e,t)||wH()}function wH(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function SH(e,t){if(e){if(typeof e=="string")return eb(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return eb(e,t)}}function eb(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function OH(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,l=[],s=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(s=(n=a.call(r)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(f){u=!0,i=f}finally{try{if(!s&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return l}}function jH(e){if(Array.isArray(e))return e}function tb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function rb(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?tb(Object(r),!0).forEach(function(n){_H(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):tb(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function _H(e,t,r){return t=PH(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function PH(e){var t=AH(e,"string");return cl(t)=="symbol"?t:t+""}function AH(e,t){if(cl(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(cl(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var nb=function(t,r,n,i,a){var o=n-i,l;return l="M ".concat(t,",").concat(r),l+="L ".concat(t+n,",").concat(r),l+="L ".concat(t+n-o/2,",").concat(r+a),l+="L ".concat(t+n-o/2-i,",").concat(r+a),l+="L ".concat(t,",").concat(r," Z"),l},EH={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},kH=function(t){var r=rb(rb({},EH),t),n=P.useRef(),i=P.useState(-1),a=bH(i,2),o=a[0],l=a[1];P.useEffect(function(){if(n.current&&n.current.getTotalLength)try{var x=n.current.getTotalLength();x&&l(x)}catch{}},[]);var s=r.x,u=r.y,f=r.upperWidth,c=r.lowerWidth,p=r.height,h=r.className,y=r.animationEasing,b=r.animationDuration,g=r.animationBegin,m=r.isUpdateAnimationActive;if(s!==+s||u!==+u||f!==+f||c!==+c||p!==+p||f===0&&c===0||p===0)return null;var v=oe("recharts-trapezoid",h);return m?E.createElement(Rr,{canBegin:o>0,from:{upperWidth:0,lowerWidth:0,height:p,x:s,y:u},to:{upperWidth:f,lowerWidth:c,height:p,x:s,y:u},duration:b,animationEasing:y,isActive:m},function(x){var O=x.upperWidth,w=x.lowerWidth,S=x.height,j=x.x,_=x.y;return E.createElement(Rr,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:g,duration:b,easing:y},E.createElement("path",Lu({},ee(r,!0),{className:v,d:nb(j,_,O,w,S),ref:n})))}):E.createElement("g",null,E.createElement("path",Lu({},ee(r,!0),{className:v,d:nb(s,u,f,c,p)})))},$H=["option","shapeType","propTransformer","activeClassName","isActive"];function fl(e){"@babel/helpers - typeof";return fl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},fl(e)}function NH(e,t){if(e==null)return{};var r=TH(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function TH(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function ib(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ru(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ib(Object(r),!0).forEach(function(n){CH(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ib(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function CH(e,t,r){return t=MH(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function MH(e){var t=IH(e,"string");return fl(t)=="symbol"?t:t+""}function IH(e,t){if(fl(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(fl(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function DH(e,t){return Ru(Ru({},t),e)}function LH(e,t){return e==="symbols"}function ab(e){var t=e.shapeType,r=e.elementProps;switch(t){case"rectangle":return E.createElement(Om,r);case"trapezoid":return E.createElement(kH,r);case"sector":return E.createElement(Ij,r);case"symbols":if(LH(t))return E.createElement(Uv,r);break;default:return null}}function RH(e){return P.isValidElement(e)?e.props:e}function BH(e){var t=e.option,r=e.shapeType,n=e.propTransformer,i=n===void 0?DH:n,a=e.activeClassName,o=a===void 0?"recharts-active-shape":a,l=e.isActive,s=NH(e,$H),u;if(P.isValidElement(t))u=P.cloneElement(t,Ru(Ru({},s),RH(t)));else if(Z(t))u=t(s);else if(pH(t)&&!xH(t)){var f=i(t,s);u=E.createElement(ab,{shapeType:r,elementProps:f})}else{var c=s;u=E.createElement(ab,{shapeType:r,elementProps:c})}return l?E.createElement(_e,{className:o},u):u}function qc(e,t){return t!=null&&"trapezoids"in e.props}function Yc(e,t){return t!=null&&"sectors"in e.props}function dl(e,t){return t!=null&&"points"in e.props}function zH(e,t){var r,n,i=e.x===(t==null||(r=t.labelViewBox)===null||r===void 0?void 0:r.x)||e.x===t.x,a=e.y===(t==null||(n=t.labelViewBox)===null||n===void 0?void 0:n.y)||e.y===t.y;return i&&a}function FH(e,t){var r=e.endAngle===t.endAngle,n=e.startAngle===t.startAngle;return r&&n}function UH(e,t){var r=e.x===t.x,n=e.y===t.y,i=e.z===t.z;return r&&n&&i}function WH(e,t){var r;return qc(e,t)?r=zH:Yc(e,t)?r=FH:dl(e,t)&&(r=UH),r}function HH(e,t){var r;return qc(e,t)?r="trapezoids":Yc(e,t)?r="sectors":dl(e,t)&&(r="points"),r}function KH(e,t){if(qc(e,t)){var r;return(r=t.tooltipPayload)===null||r===void 0||(r=r[0])===null||r===void 0||(r=r.payload)===null||r===void 0?void 0:r.payload}if(Yc(e,t)){var n;return(n=t.tooltipPayload)===null||n===void 0||(n=n[0])===null||n===void 0||(n=n.payload)===null||n===void 0?void 0:n.payload}return dl(e,t)?t.payload:{}}function VH(e){var t=e.activeTooltipItem,r=e.graphicalItem,n=e.itemData,i=HH(r,t),a=KH(r,t),o=n.filter(function(s,u){var f=qo(a,s),c=r.props[i].filter(function(y){var b=WH(r,t);return b(y,t)}),p=r.props[i].indexOf(c[c.length-1]),h=u===p;return f&&h}),l=n.indexOf(o[o.length-1]);return l}var GH=Math.ceil,XH=Math.max;function qH(e,t,r,n){for(var i=-1,a=XH(GH((t-e)/(r||1)),0),o=Array(a);a--;)o[n?a:++i]=e,e+=r;return o}var YH=qH,QH=_O,ob=1/0,ZH=17976931348623157e292;function JH(e){if(!e)return e===0?e:0;if(e=QH(e),e===ob||e===-ob){var t=e<0?-1:1;return t*ZH}return e===e?e:0}var Gj=JH,eK=YH,tK=Rc,id=Gj;function rK(e){return function(t,r,n){return n&&typeof n!="number"&&tK(t,r,n)&&(r=n=void 0),t=id(t),r===void 0?(r=t,t=0):r=id(r),n=n===void 0?t<r?1:-1:id(n),eK(t,r,n,e)}}var nK=rK,iK=nK,aK=iK(),oK=aK;const Bu=he(oK);function pl(e){"@babel/helpers - typeof";return pl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pl(e)}function lb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function sb(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?lb(Object(r),!0).forEach(function(n){Xj(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):lb(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Xj(e,t,r){return t=lK(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function lK(e){var t=sK(e,"string");return pl(t)=="symbol"?t:t+""}function sK(e,t){if(pl(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(pl(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var uK=["Webkit","Moz","O","ms"],cK=function(t,r){var n=t.replace(/(\w)/,function(a){return a.toUpperCase()}),i=uK.reduce(function(a,o){return sb(sb({},a),{},Xj({},o+n,r))},{});return i[t]=r,i};function na(e){"@babel/helpers - typeof";return na=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},na(e)}function zu(){return zu=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},zu.apply(this,arguments)}function ub(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ad(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ub(Object(r),!0).forEach(function(n){wt(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ub(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function fK(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function cb(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Yj(n.key),n)}}function dK(e,t,r){return t&&cb(e.prototype,t),r&&cb(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function pK(e,t,r){return t=Fu(t),hK(e,qj()?Reflect.construct(t,r||[],Fu(e).constructor):t.apply(e,r))}function hK(e,t){if(t&&(na(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return vK(e)}function vK(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function qj(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(qj=function(){return!!e})()}function Fu(e){return Fu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Fu(e)}function mK(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&uh(e,t)}function uh(e,t){return uh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},uh(e,t)}function wt(e,t,r){return t=Yj(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Yj(e){var t=yK(e,"string");return na(t)=="symbol"?t:t+""}function yK(e,t){if(na(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(na(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var gK=function(t){var r=t.data,n=t.startIndex,i=t.endIndex,a=t.x,o=t.width,l=t.travellerWidth;if(!r||!r.length)return{};var s=r.length,u=ho().domain(Bu(0,s)).range([a,a+o-l]),f=u.domain().map(function(c){return u(c)});return{isTextActive:!1,isSlideMoving:!1,isTravellerMoving:!1,isTravellerFocused:!1,startX:u(n),endX:u(i),scale:u,scaleValues:f}},fb=function(t){return t.changedTouches&&!!t.changedTouches.length},ia=function(e){function t(r){var n;return fK(this,t),n=pK(this,t,[r]),wt(n,"handleDrag",function(i){n.leaveTimer&&(clearTimeout(n.leaveTimer),n.leaveTimer=null),n.state.isTravellerMoving?n.handleTravellerMove(i):n.state.isSlideMoving&&n.handleSlideDrag(i)}),wt(n,"handleTouchMove",function(i){i.changedTouches!=null&&i.changedTouches.length>0&&n.handleDrag(i.changedTouches[0])}),wt(n,"handleDragEnd",function(){n.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var i=n.props,a=i.endIndex,o=i.onDragEnd,l=i.startIndex;o==null||o({endIndex:a,startIndex:l})}),n.detachDragEndListener()}),wt(n,"handleLeaveWrapper",function(){(n.state.isTravellerMoving||n.state.isSlideMoving)&&(n.leaveTimer=window.setTimeout(n.handleDragEnd,n.props.leaveTimeOut))}),wt(n,"handleEnterSlideOrTraveller",function(){n.setState({isTextActive:!0})}),wt(n,"handleLeaveSlideOrTraveller",function(){n.setState({isTextActive:!1})}),wt(n,"handleSlideDragStart",function(i){var a=fb(i)?i.changedTouches[0]:i;n.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:a.pageX}),n.attachDragEndListener()}),n.travellerDragStartHandlers={startX:n.handleTravellerDragStart.bind(n,"startX"),endX:n.handleTravellerDragStart.bind(n,"endX")},n.state={},n}return mK(t,e),dK(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(n){var i=n.startX,a=n.endX,o=this.state.scaleValues,l=this.props,s=l.gap,u=l.data,f=u.length-1,c=Math.min(i,a),p=Math.max(i,a),h=t.getIndexInRange(o,c),y=t.getIndexInRange(o,p);return{startIndex:h-h%s,endIndex:y===f?f:y-y%s}}},{key:"getTextOfTick",value:function(n){var i=this.props,a=i.data,o=i.tickFormatter,l=i.dataKey,s=Et(a[n],l,n);return Z(o)?o(s,n):s}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(n){var i=this.state,a=i.slideMoveStartX,o=i.startX,l=i.endX,s=this.props,u=s.x,f=s.width,c=s.travellerWidth,p=s.startIndex,h=s.endIndex,y=s.onChange,b=n.pageX-a;b>0?b=Math.min(b,u+f-c-l,u+f-c-o):b<0&&(b=Math.max(b,u-o,u-l));var g=this.getIndex({startX:o+b,endX:l+b});(g.startIndex!==p||g.endIndex!==h)&&y&&y(g),this.setState({startX:o+b,endX:l+b,slideMoveStartX:n.pageX})}},{key:"handleTravellerDragStart",value:function(n,i){var a=fb(i)?i.changedTouches[0]:i;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:n,brushMoveStartX:a.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(n){var i=this.state,a=i.brushMoveStartX,o=i.movingTravellerId,l=i.endX,s=i.startX,u=this.state[o],f=this.props,c=f.x,p=f.width,h=f.travellerWidth,y=f.onChange,b=f.gap,g=f.data,m={startX:this.state.startX,endX:this.state.endX},v=n.pageX-a;v>0?v=Math.min(v,c+p-h-u):v<0&&(v=Math.max(v,c-u)),m[o]=u+v;var x=this.getIndex(m),O=x.startIndex,w=x.endIndex,S=function(){var _=g.length-1;return o==="startX"&&(l>s?O%b===0:w%b===0)||l<s&&w===_||o==="endX"&&(l>s?w%b===0:O%b===0)||l>s&&w===_};this.setState(wt(wt({},o,u+v),"brushMoveStartX",n.pageX),function(){y&&S()&&y(x)})}},{key:"handleTravellerMoveKeyboard",value:function(n,i){var a=this,o=this.state,l=o.scaleValues,s=o.startX,u=o.endX,f=this.state[i],c=l.indexOf(f);if(c!==-1){var p=c+n;if(!(p===-1||p>=l.length)){var h=l[p];i==="startX"&&h>=u||i==="endX"&&h<=s||this.setState(wt({},i,h),function(){a.props.onChange(a.getIndex({startX:a.state.startX,endX:a.state.endX}))})}}}},{key:"renderBackground",value:function(){var n=this.props,i=n.x,a=n.y,o=n.width,l=n.height,s=n.fill,u=n.stroke;return E.createElement("rect",{stroke:u,fill:s,x:i,y:a,width:o,height:l})}},{key:"renderPanorama",value:function(){var n=this.props,i=n.x,a=n.y,o=n.width,l=n.height,s=n.data,u=n.children,f=n.padding,c=P.Children.only(u);return c?E.cloneElement(c,{x:i,y:a,width:o,height:l,margin:f,compact:!0,data:s}):null}},{key:"renderTravellerLayer",value:function(n,i){var a,o,l=this,s=this.props,u=s.y,f=s.travellerWidth,c=s.height,p=s.traveller,h=s.ariaLabel,y=s.data,b=s.startIndex,g=s.endIndex,m=Math.max(n,this.props.x),v=ad(ad({},ee(this.props,!1)),{},{x:m,y:u,width:f,height:c}),x=h||"Min value: ".concat((a=y[b])===null||a===void 0?void 0:a.name,", Max value: ").concat((o=y[g])===null||o===void 0?void 0:o.name);return E.createElement(_e,{tabIndex:0,role:"slider","aria-label":x,"aria-valuenow":n,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[i],onTouchStart:this.travellerDragStartHandlers[i],onKeyDown:function(w){["ArrowLeft","ArrowRight"].includes(w.key)&&(w.preventDefault(),w.stopPropagation(),l.handleTravellerMoveKeyboard(w.key==="ArrowRight"?1:-1,i))},onFocus:function(){l.setState({isTravellerFocused:!0})},onBlur:function(){l.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(p,v))}},{key:"renderSlide",value:function(n,i){var a=this.props,o=a.y,l=a.height,s=a.stroke,u=a.travellerWidth,f=Math.min(n,i)+u,c=Math.max(Math.abs(i-n)-u,0);return E.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:s,fillOpacity:.2,x:f,y:o,width:c,height:l})}},{key:"renderText",value:function(){var n=this.props,i=n.startIndex,a=n.endIndex,o=n.y,l=n.height,s=n.travellerWidth,u=n.stroke,f=this.state,c=f.startX,p=f.endX,h=5,y={pointerEvents:"none",fill:u};return E.createElement(_e,{className:"recharts-brush-texts"},E.createElement(hu,zu({textAnchor:"end",verticalAnchor:"middle",x:Math.min(c,p)-h,y:o+l/2},y),this.getTextOfTick(i)),E.createElement(hu,zu({textAnchor:"start",verticalAnchor:"middle",x:Math.max(c,p)+s+h,y:o+l/2},y),this.getTextOfTick(a)))}},{key:"render",value:function(){var n=this.props,i=n.data,a=n.className,o=n.children,l=n.x,s=n.y,u=n.width,f=n.height,c=n.alwaysShowText,p=this.state,h=p.startX,y=p.endX,b=p.isTextActive,g=p.isSlideMoving,m=p.isTravellerMoving,v=p.isTravellerFocused;if(!i||!i.length||!H(l)||!H(s)||!H(u)||!H(f)||u<=0||f<=0)return null;var x=oe("recharts-brush",a),O=E.Children.count(o)===1,w=cK("userSelect","none");return E.createElement(_e,{className:x,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:w},this.renderBackground(),O&&this.renderPanorama(),this.renderSlide(h,y),this.renderTravellerLayer(h,"startX"),this.renderTravellerLayer(y,"endX"),(b||g||m||v||c)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(n){var i=n.x,a=n.y,o=n.width,l=n.height,s=n.stroke,u=Math.floor(a+l/2)-1;return E.createElement(E.Fragment,null,E.createElement("rect",{x:i,y:a,width:o,height:l,fill:s,stroke:"none"}),E.createElement("line",{x1:i+1,y1:u,x2:i+o-1,y2:u,fill:"none",stroke:"#fff"}),E.createElement("line",{x1:i+1,y1:u+2,x2:i+o-1,y2:u+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(n,i){var a;return E.isValidElement(n)?a=E.cloneElement(n,i):Z(n)?a=n(i):a=t.renderDefaultTraveller(i),a}},{key:"getDerivedStateFromProps",value:function(n,i){var a=n.data,o=n.width,l=n.x,s=n.travellerWidth,u=n.updateId,f=n.startIndex,c=n.endIndex;if(a!==i.prevData||u!==i.prevUpdateId)return ad({prevData:a,prevTravellerWidth:s,prevUpdateId:u,prevX:l,prevWidth:o},a&&a.length?gK({data:a,width:o,x:l,travellerWidth:s,startIndex:f,endIndex:c}):{scale:null,scaleValues:null});if(i.scale&&(o!==i.prevWidth||l!==i.prevX||s!==i.prevTravellerWidth)){i.scale.range([l,l+o-s]);var p=i.scale.domain().map(function(h){return i.scale(h)});return{prevData:a,prevTravellerWidth:s,prevUpdateId:u,prevX:l,prevWidth:o,startX:i.scale(n.startIndex),endX:i.scale(n.endIndex),scaleValues:p}}return null}},{key:"getIndexInRange",value:function(n,i){for(var a=n.length,o=0,l=a-1;l-o>1;){var s=Math.floor((o+l)/2);n[s]>i?l=s:o=s}return i>=n[l]?l:o}}])}(P.PureComponent);wt(ia,"displayName","Brush");wt(ia,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var xK=qv;function bK(e,t){var r;return xK(e,function(n,i,a){return r=t(n,i,a),!r}),!!r}var wK=bK,SK=ZS,OK=Sn,jK=wK,_K=bt,PK=Rc;function AK(e,t,r){var n=_K(e)?SK:jK;return r&&PK(e,t,r)&&(t=void 0),n(e,OK(t))}var EK=AK;const kK=he(EK);var mr=function(t,r){var n=t.alwaysShow,i=t.ifOverflow;return n&&(i="extendDomain"),i===r},db=bO;function $K(e,t,r){t=="__proto__"&&db?db(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var NK=$K,TK=NK,CK=gO,MK=Sn;function IK(e,t){var r={};return t=MK(t),CK(e,function(n,i,a){TK(r,i,t(n,i,a))}),r}var DK=IK;const LK=he(DK);function RK(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(!t(e[r],r,e))return!1;return!0}var BK=RK,zK=qv;function FK(e,t){var r=!0;return zK(e,function(n,i,a){return r=!!t(n,i,a),r}),r}var UK=FK,WK=BK,HK=UK,KK=Sn,VK=bt,GK=Rc;function XK(e,t,r){var n=VK(e)?WK:HK;return r&&GK(e,t,r)&&(t=void 0),n(e,KK(t))}var qK=XK;const Qj=he(qK);var YK=["x","y"];function hl(e){"@babel/helpers - typeof";return hl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},hl(e)}function ch(){return ch=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ch.apply(this,arguments)}function pb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Qa(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?pb(Object(r),!0).forEach(function(n){QK(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):pb(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function QK(e,t,r){return t=ZK(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ZK(e){var t=JK(e,"string");return hl(t)=="symbol"?t:t+""}function JK(e,t){if(hl(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(hl(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function eV(e,t){if(e==null)return{};var r=tV(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function tV(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function rV(e,t){var r=e.x,n=e.y,i=eV(e,YK),a="".concat(r),o=parseInt(a,10),l="".concat(n),s=parseInt(l,10),u="".concat(t.height||i.height),f=parseInt(u,10),c="".concat(t.width||i.width),p=parseInt(c,10);return Qa(Qa(Qa(Qa(Qa({},t),i),o?{x:o}:{}),s?{y:s}:{}),{},{height:f,width:p,name:t.name,radius:t.radius})}function hb(e){return E.createElement(BH,ch({shapeType:"rectangle",propTransformer:rV,activeClassName:"recharts-active-bar"},e))}var nV=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(n,i){if(typeof t=="number")return t;var a=H(n)||vT(n);return a?t(n,i):(a||ti(),r)}},iV=["value","background"],Zj;function aa(e){"@babel/helpers - typeof";return aa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},aa(e)}function aV(e,t){if(e==null)return{};var r=oV(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function oV(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Uu(){return Uu=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Uu.apply(this,arguments)}function vb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ce(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?vb(Object(r),!0).forEach(function(n){rn(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):vb(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function lV(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function mb(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,e_(n.key),n)}}function sV(e,t,r){return t&&mb(e.prototype,t),r&&mb(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function uV(e,t,r){return t=Wu(t),cV(e,Jj()?Reflect.construct(t,r||[],Wu(e).constructor):t.apply(e,r))}function cV(e,t){if(t&&(aa(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return fV(e)}function fV(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Jj(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Jj=function(){return!!e})()}function Wu(e){return Wu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Wu(e)}function dV(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&fh(e,t)}function fh(e,t){return fh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},fh(e,t)}function rn(e,t,r){return t=e_(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function e_(e){var t=pV(e,"string");return aa(t)=="symbol"?t:t+""}function pV(e,t){if(aa(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(aa(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Cl=function(e){function t(){var r;lV(this,t);for(var n=arguments.length,i=new Array(n),a=0;a<n;a++)i[a]=arguments[a];return r=uV(this,t,[].concat(i)),rn(r,"state",{isAnimationFinished:!1}),rn(r,"id",Al("recharts-bar-")),rn(r,"handleAnimationEnd",function(){var o=r.props.onAnimationEnd;r.setState({isAnimationFinished:!0}),o&&o()}),rn(r,"handleAnimationStart",function(){var o=r.props.onAnimationStart;r.setState({isAnimationFinished:!1}),o&&o()}),r}return dV(t,e),sV(t,[{key:"renderRectanglesStatically",value:function(n){var i=this,a=this.props,o=a.shape,l=a.dataKey,s=a.activeIndex,u=a.activeBar,f=ee(this.props,!1);return n&&n.map(function(c,p){var h=p===s,y=h?u:o,b=Ce(Ce(Ce({},f),c),{},{isActive:h,option:y,index:p,dataKey:l,onAnimationStart:i.handleAnimationStart,onAnimationEnd:i.handleAnimationEnd});return E.createElement(_e,Uu({className:"recharts-bar-rectangle"},eu(i.props,c,p),{key:"rectangle-".concat(c==null?void 0:c.x,"-").concat(c==null?void 0:c.y,"-").concat(c==null?void 0:c.value,"-").concat(p)}),E.createElement(hb,b))})}},{key:"renderRectanglesWithAnimation",value:function(){var n=this,i=this.props,a=i.data,o=i.layout,l=i.isAnimationActive,s=i.animationBegin,u=i.animationDuration,f=i.animationEasing,c=i.animationId,p=this.state.prevData;return E.createElement(Rr,{begin:s,duration:u,isActive:l,easing:f,from:{t:0},to:{t:1},key:"bar-".concat(c),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(h){var y=h.t,b=a.map(function(g,m){var v=p&&p[m];if(v){var x=Lt(v.x,g.x),O=Lt(v.y,g.y),w=Lt(v.width,g.width),S=Lt(v.height,g.height);return Ce(Ce({},g),{},{x:x(y),y:O(y),width:w(y),height:S(y)})}if(o==="horizontal"){var j=Lt(0,g.height),_=j(y);return Ce(Ce({},g),{},{y:g.y+g.height-_,height:_})}var A=Lt(0,g.width),$=A(y);return Ce(Ce({},g),{},{width:$})});return E.createElement(_e,null,n.renderRectanglesStatically(b))})}},{key:"renderRectangles",value:function(){var n=this.props,i=n.data,a=n.isAnimationActive,o=this.state.prevData;return a&&i&&i.length&&(!o||!qo(o,i))?this.renderRectanglesWithAnimation():this.renderRectanglesStatically(i)}},{key:"renderBackground",value:function(){var n=this,i=this.props,a=i.data,o=i.dataKey,l=i.activeIndex,s=ee(this.props.background,!1);return a.map(function(u,f){u.value;var c=u.background,p=aV(u,iV);if(!c)return null;var h=Ce(Ce(Ce(Ce(Ce({},p),{},{fill:"#eee"},c),s),eu(n.props,u,f)),{},{onAnimationStart:n.handleAnimationStart,onAnimationEnd:n.handleAnimationEnd,dataKey:o,index:f,className:"recharts-bar-background-rectangle"});return E.createElement(hb,Uu({key:"background-bar-".concat(f),option:n.props.background,isActive:f===l},h))})}},{key:"renderErrorBar",value:function(n,i){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var a=this.props,o=a.data,l=a.xAxis,s=a.yAxis,u=a.layout,f=a.children,c=ir(f,Xc);if(!c)return null;var p=u==="vertical"?o[0].height/2:o[0].width/2,h=function(g,m){var v=Array.isArray(g.value)?g.value[1]:g.value;return{x:g.x,y:g.y,value:v,errorVal:Et(g,m)}},y={clipPath:n?"url(#clipPath-".concat(i,")"):null};return E.createElement(_e,y,c.map(function(b){return E.cloneElement(b,{key:"error-bar-".concat(i,"-").concat(b.props.dataKey),data:o,xAxis:l,yAxis:s,layout:u,offset:p,dataPointFormatter:h})}))}},{key:"render",value:function(){var n=this.props,i=n.hide,a=n.data,o=n.className,l=n.xAxis,s=n.yAxis,u=n.left,f=n.top,c=n.width,p=n.height,h=n.isAnimationActive,y=n.background,b=n.id;if(i||!a||!a.length)return null;var g=this.state.isAnimationFinished,m=oe("recharts-bar",o),v=l&&l.allowDataOverflow,x=s&&s.allowDataOverflow,O=v||x,w=re(b)?this.id:b;return E.createElement(_e,{className:m},v||x?E.createElement("defs",null,E.createElement("clipPath",{id:"clipPath-".concat(w)},E.createElement("rect",{x:v?u:u-c/2,y:x?f:f-p/2,width:v?c:c*2,height:x?p:p*2}))):null,E.createElement(_e,{className:"recharts-bar-rectangles",clipPath:O?"url(#clipPath-".concat(w,")"):null},y?this.renderBackground():null,this.renderRectangles()),this.renderErrorBar(O,w),(!h||g)&&hn.renderCallByParent(this.props,a))}}],[{key:"getDerivedStateFromProps",value:function(n,i){return n.animationId!==i.prevAnimationId?{prevAnimationId:n.animationId,curData:n.data,prevData:i.curData}:n.data!==i.curData?{curData:n.data}:null}}])}(P.PureComponent);Zj=Cl;rn(Cl,"displayName","Bar");rn(Cl,"defaultProps",{xAxisId:0,yAxisId:0,legendType:"rect",minPointSize:0,hide:!1,data:[],layout:"vertical",activeBar:!1,isAnimationActive:!ka.isSsr,animationBegin:0,animationDuration:400,animationEasing:"ease"});rn(Cl,"getComposedData",function(e){var t=e.props,r=e.item,n=e.barPosition,i=e.bandSize,a=e.xAxis,o=e.yAxis,l=e.xAxisTicks,s=e.yAxisTicks,u=e.stackedData,f=e.dataStartIndex,c=e.displayedData,p=e.offset,h=BU(n,r);if(!h)return null;var y=t.layout,b=r.type.defaultProps,g=b!==void 0?Ce(Ce({},b),r.props):r.props,m=g.dataKey,v=g.children,x=g.minPointSize,O=y==="horizontal"?o:a,w=u?O.scale.domain():null,S=GU({numericAxis:O}),j=ir(v,AO),_=c.map(function(A,$){var N,k,D,I,M,R;u?N=zU(u[f+$],w):(N=Et(A,m),Array.isArray(N)||(N=[S,N]));var z=nV(x,Zj.defaultProps.minPointSize)(N[1],$);if(y==="horizontal"){var T,L=[o.scale(N[0]),o.scale(N[1])],B=L[0],K=L[1];k=gx({axis:a,ticks:l,bandSize:i,offset:h.offset,entry:A,index:$}),D=(T=K??B)!==null&&T!==void 0?T:void 0,I=h.size;var W=B-K;if(M=Number.isNaN(W)?0:W,R={x:k,y:o.y,width:I,height:o.height},Math.abs(z)>0&&Math.abs(M)<Math.abs(z)){var q=tr(M||z)*(Math.abs(z)-Math.abs(M));D-=q,M+=q}}else{var ne=[a.scale(N[0]),a.scale(N[1])],we=ne[0],Ne=ne[1];if(k=we,D=gx({axis:o,ticks:s,bandSize:i,offset:h.offset,entry:A,index:$}),I=Ne-we,M=h.size,R={x:a.x,y:D,width:a.width,height:M},Math.abs(z)>0&&Math.abs(I)<Math.abs(z)){var Nt=tr(I||z)*(Math.abs(z)-Math.abs(I));I+=Nt}}return Ce(Ce(Ce({},A),{},{x:k,y:D,width:I,height:M,value:u?N:N[1],payload:A,background:R},j&&j[$]&&j[$].props),{},{tooltipPayload:[Tj(r,A)],tooltipPosition:{x:k+I/2,y:D+M/2}})});return Ce({data:_,layout:y},p)});function vl(e){"@babel/helpers - typeof";return vl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vl(e)}function hV(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function yb(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,t_(n.key),n)}}function vV(e,t,r){return t&&yb(e.prototype,t),r&&yb(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function gb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Zt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?gb(Object(r),!0).forEach(function(n){Qc(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):gb(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Qc(e,t,r){return t=t_(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function t_(e){var t=mV(e,"string");return vl(t)=="symbol"?t:t+""}function mV(e,t){if(vl(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(vl(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var yV=function(t,r,n,i,a){var o=t.width,l=t.height,s=t.layout,u=t.children,f=Object.keys(r),c={left:n.left,leftMirror:n.left,right:o-n.right,rightMirror:o-n.right,top:n.top,topMirror:n.top,bottom:l-n.bottom,bottomMirror:l-n.bottom},p=!!Ot(u,Cl);return f.reduce(function(h,y){var b=r[y],g=b.orientation,m=b.domain,v=b.padding,x=v===void 0?{}:v,O=b.mirror,w=b.reversed,S="".concat(g).concat(O?"Mirror":""),j,_,A,$,N;if(b.type==="number"&&(b.padding==="gap"||b.padding==="no-gap")){var k=m[1]-m[0],D=1/0,I=b.categoricalDomain.sort(gT);if(I.forEach(function(ne,we){we>0&&(D=Math.min((ne||0)-(I[we-1]||0),D))}),Number.isFinite(D)){var M=D/k,R=b.layout==="vertical"?n.height:n.width;if(b.padding==="gap"&&(j=M*R/2),b.padding==="no-gap"){var z=Jn(t.barCategoryGap,M*R),T=M*R/2;j=T-z-(T-z)/R*z}}}i==="xAxis"?_=[n.left+(x.left||0)+(j||0),n.left+n.width-(x.right||0)-(j||0)]:i==="yAxis"?_=s==="horizontal"?[n.top+n.height-(x.bottom||0),n.top+(x.top||0)]:[n.top+(x.top||0)+(j||0),n.top+n.height-(x.bottom||0)-(j||0)]:_=b.range,w&&(_=[_[1],_[0]]);var L=LU(b,a,p),B=L.scale,K=L.realScaleType;B.domain(m).range(_),RU(B);var W=VU(B,Zt(Zt({},b),{},{realScaleType:K}));i==="xAxis"?(N=g==="top"&&!O||g==="bottom"&&O,A=n.left,$=c[S]-N*b.height):i==="yAxis"&&(N=g==="left"&&!O||g==="right"&&O,A=c[S]-N*b.width,$=n.top);var q=Zt(Zt(Zt({},b),W),{},{realScaleType:K,x:A,y:$,scale:B,width:i==="xAxis"?n.width:b.width,height:i==="yAxis"?n.height:b.height});return q.bandSize=ku(q,W),!b.hide&&i==="xAxis"?c[S]+=(N?-1:1)*q.height:b.hide||(c[S]+=(N?-1:1)*q.width),Zt(Zt({},h),{},Qc({},y,q))},{})},r_=function(t,r){var n=t.x,i=t.y,a=r.x,o=r.y;return{x:Math.min(n,a),y:Math.min(i,o),width:Math.abs(a-n),height:Math.abs(o-i)}},gV=function(t){var r=t.x1,n=t.y1,i=t.x2,a=t.y2;return r_({x:r,y:n},{x:i,y:a})},n_=function(){function e(t){hV(this,e),this.scale=t}return vV(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(r){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=n.bandAware,a=n.position;if(r!==void 0){if(a)switch(a){case"start":return this.scale(r);case"middle":{var o=this.bandwidth?this.bandwidth()/2:0;return this.scale(r)+o}case"end":{var l=this.bandwidth?this.bandwidth():0;return this.scale(r)+l}default:return this.scale(r)}if(i){var s=this.bandwidth?this.bandwidth()/2:0;return this.scale(r)+s}return this.scale(r)}}},{key:"isInRange",value:function(r){var n=this.range(),i=n[0],a=n[n.length-1];return i<=a?r>=i&&r<=a:r>=a&&r<=i}}],[{key:"create",value:function(r){return new e(r)}}])}();Qc(n_,"EPS",1e-4);var _m=function(t){var r=Object.keys(t).reduce(function(n,i){return Zt(Zt({},n),{},Qc({},i,n_.create(t[i])))},{});return Zt(Zt({},r),{},{apply:function(i){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=a.bandAware,l=a.position;return LK(i,function(s,u){return r[u].apply(s,{bandAware:o,position:l})})},isInRange:function(i){return Qj(i,function(a,o){return r[o].isInRange(a)})}})};function xV(e){return(e%180+180)%180}var bV=function(t){var r=t.width,n=t.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=xV(i),o=a*Math.PI/180,l=Math.atan(n/r),s=o>l&&o<Math.PI-l?n/Math.sin(o):r/Math.cos(o);return Math.abs(s)},wV=Sn,SV=El,OV=Dc;function jV(e){return function(t,r,n){var i=Object(t);if(!SV(t)){var a=wV(r);t=OV(t),r=function(l){return a(i[l],l,i)}}var o=e(t,r,n);return o>-1?i[a?t[o]:o]:void 0}}var _V=jV,PV=Gj;function AV(e){var t=PV(e),r=t%1;return t===t?r?t-r:t:0}var EV=AV,kV=dO,$V=Sn,NV=EV,TV=Math.max;function CV(e,t,r){var n=e==null?0:e.length;if(!n)return-1;var i=r==null?0:NV(r);return i<0&&(i=TV(n+i,0)),kV(e,$V(t),i)}var MV=CV,IV=_V,DV=MV,LV=IV(DV),RV=LV;const BV=he(RV);var zV=wN(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),Pm=P.createContext(void 0),Am=P.createContext(void 0),i_=P.createContext(void 0),a_=P.createContext({}),o_=P.createContext(void 0),l_=P.createContext(0),s_=P.createContext(0),xb=function(t){var r=t.state,n=r.xAxisMap,i=r.yAxisMap,a=r.offset,o=t.clipPathId,l=t.children,s=t.width,u=t.height,f=zV(a);return E.createElement(Pm.Provider,{value:n},E.createElement(Am.Provider,{value:i},E.createElement(a_.Provider,{value:a},E.createElement(i_.Provider,{value:f},E.createElement(o_.Provider,{value:o},E.createElement(l_.Provider,{value:u},E.createElement(s_.Provider,{value:s},l)))))))},FV=function(){return P.useContext(o_)},u_=function(t){var r=P.useContext(Pm);r==null&&ti();var n=r[t];return n==null&&ti(),n},UV=function(){var t=P.useContext(Pm);return Qr(t)},WV=function(){var t=P.useContext(Am),r=BV(t,function(n){return Qj(n.domain,Number.isFinite)});return r||Qr(t)},c_=function(t){var r=P.useContext(Am);r==null&&ti();var n=r[t];return n==null&&ti(),n},HV=function(){var t=P.useContext(i_);return t},KV=function(){return P.useContext(a_)},Em=function(){return P.useContext(s_)},km=function(){return P.useContext(l_)};function oa(e){"@babel/helpers - typeof";return oa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},oa(e)}function VV(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function GV(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,d_(n.key),n)}}function XV(e,t,r){return t&&GV(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function qV(e,t,r){return t=Hu(t),YV(e,f_()?Reflect.construct(t,r||[],Hu(e).constructor):t.apply(e,r))}function YV(e,t){if(t&&(oa(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return QV(e)}function QV(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f_(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(f_=function(){return!!e})()}function Hu(e){return Hu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Hu(e)}function ZV(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&dh(e,t)}function dh(e,t){return dh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},dh(e,t)}function bb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function wb(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?bb(Object(r),!0).forEach(function(n){$m(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):bb(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function $m(e,t,r){return t=d_(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function d_(e){var t=JV(e,"string");return oa(t)=="symbol"?t:t+""}function JV(e,t){if(oa(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(oa(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function eG(e,t){return iG(e)||nG(e,t)||rG(e,t)||tG()}function tG(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function rG(e,t){if(e){if(typeof e=="string")return Sb(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Sb(e,t)}}function Sb(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function nG(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,l=[],s=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(s=(n=a.call(r)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(f){u=!0,i=f}finally{try{if(!s&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return l}}function iG(e){if(Array.isArray(e))return e}function ph(){return ph=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ph.apply(this,arguments)}var aG=function(t,r){var n;return E.isValidElement(t)?n=E.cloneElement(t,r):Z(t)?n=t(r):n=E.createElement("line",ph({},r,{className:"recharts-reference-line-line"})),n},oG=function(t,r,n,i,a,o,l,s,u){var f=a.x,c=a.y,p=a.width,h=a.height;if(n){var y=u.y,b=t.y.apply(y,{position:o});if(mr(u,"discard")&&!t.y.isInRange(b))return null;var g=[{x:f+p,y:b},{x:f,y:b}];return s==="left"?g.reverse():g}if(r){var m=u.x,v=t.x.apply(m,{position:o});if(mr(u,"discard")&&!t.x.isInRange(v))return null;var x=[{x:v,y:c+h},{x:v,y:c}];return l==="top"?x.reverse():x}if(i){var O=u.segment,w=O.map(function(S){return t.apply(S,{position:o})});return mr(u,"discard")&&kK(w,function(S){return!t.isInRange(S)})?null:w}return null};function lG(e){var t=e.x,r=e.y,n=e.segment,i=e.xAxisId,a=e.yAxisId,o=e.shape,l=e.className,s=e.alwaysShow,u=FV(),f=u_(i),c=c_(a),p=HV();if(!u||!p)return null;kr(s===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.');var h=_m({x:f.scale,y:c.scale}),y=We(t),b=We(r),g=n&&n.length===2,m=oG(h,y,b,g,p,e.position,f.orientation,c.orientation,e);if(!m)return null;var v=eG(m,2),x=v[0],O=x.x,w=x.y,S=v[1],j=S.x,_=S.y,A=mr(e,"hidden")?"url(#".concat(u,")"):void 0,$=wb(wb({clipPath:A},ee(e,!0)),{},{x1:O,y1:w,x2:j,y2:_});return E.createElement(_e,{className:oe("recharts-reference-line",l)},aG(o,$),it.renderCallByParent(e,gV({x1:O,y1:w,x2:j,y2:_})))}var Nm=function(e){function t(){return VV(this,t),qV(this,t,arguments)}return ZV(t,e),XV(t,[{key:"render",value:function(){return E.createElement(lG,this.props)}}])}(E.Component);$m(Nm,"displayName","ReferenceLine");$m(Nm,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,fill:"none",stroke:"#ccc",fillOpacity:1,strokeWidth:1,position:"middle"});function hh(){return hh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},hh.apply(this,arguments)}function la(e){"@babel/helpers - typeof";return la=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},la(e)}function Ob(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function jb(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ob(Object(r),!0).forEach(function(n){Zc(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ob(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function sG(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function uG(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,h_(n.key),n)}}function cG(e,t,r){return t&&uG(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function fG(e,t,r){return t=Ku(t),dG(e,p_()?Reflect.construct(t,r||[],Ku(e).constructor):t.apply(e,r))}function dG(e,t){if(t&&(la(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return pG(e)}function pG(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function p_(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(p_=function(){return!!e})()}function Ku(e){return Ku=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Ku(e)}function hG(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&vh(e,t)}function vh(e,t){return vh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},vh(e,t)}function Zc(e,t,r){return t=h_(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function h_(e){var t=vG(e,"string");return la(t)=="symbol"?t:t+""}function vG(e,t){if(la(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(la(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var mG=function(t){var r=t.x,n=t.y,i=t.xAxis,a=t.yAxis,o=_m({x:i.scale,y:a.scale}),l=o.apply({x:r,y:n},{bandAware:!0});return mr(t,"discard")&&!o.isInRange(l)?null:l},Jc=function(e){function t(){return sG(this,t),fG(this,t,arguments)}return hG(t,e),cG(t,[{key:"render",value:function(){var n=this.props,i=n.x,a=n.y,o=n.r,l=n.alwaysShow,s=n.clipPathId,u=We(i),f=We(a);if(kr(l===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.'),!u||!f)return null;var c=mG(this.props);if(!c)return null;var p=c.x,h=c.y,y=this.props,b=y.shape,g=y.className,m=mr(this.props,"hidden")?"url(#".concat(s,")"):void 0,v=jb(jb({clipPath:m},ee(this.props,!0)),{},{cx:p,cy:h});return E.createElement(_e,{className:oe("recharts-reference-dot",g)},t.renderDot(b,v),it.renderCallByParent(this.props,{x:p-o,y:h-o,width:2*o,height:2*o}))}}])}(E.Component);Zc(Jc,"displayName","ReferenceDot");Zc(Jc,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,r:10,fill:"#fff",stroke:"#ccc",fillOpacity:1,strokeWidth:1});Zc(Jc,"renderDot",function(e,t){var r;return E.isValidElement(e)?r=E.cloneElement(e,t):Z(e)?r=e(t):r=E.createElement(jm,hh({},t,{cx:t.cx,cy:t.cy,className:"recharts-reference-dot-dot"})),r});function mh(){return mh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},mh.apply(this,arguments)}function sa(e){"@babel/helpers - typeof";return sa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},sa(e)}function _b(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Pb(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?_b(Object(r),!0).forEach(function(n){ef(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_b(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function yG(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function gG(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,m_(n.key),n)}}function xG(e,t,r){return t&&gG(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function bG(e,t,r){return t=Vu(t),wG(e,v_()?Reflect.construct(t,r||[],Vu(e).constructor):t.apply(e,r))}function wG(e,t){if(t&&(sa(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return SG(e)}function SG(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function v_(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(v_=function(){return!!e})()}function Vu(e){return Vu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Vu(e)}function OG(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&yh(e,t)}function yh(e,t){return yh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},yh(e,t)}function ef(e,t,r){return t=m_(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function m_(e){var t=jG(e,"string");return sa(t)=="symbol"?t:t+""}function jG(e,t){if(sa(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(sa(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var _G=function(t,r,n,i,a){var o=a.x1,l=a.x2,s=a.y1,u=a.y2,f=a.xAxis,c=a.yAxis;if(!f||!c)return null;var p=_m({x:f.scale,y:c.scale}),h={x:t?p.x.apply(o,{position:"start"}):p.x.rangeMin,y:n?p.y.apply(s,{position:"start"}):p.y.rangeMin},y={x:r?p.x.apply(l,{position:"end"}):p.x.rangeMax,y:i?p.y.apply(u,{position:"end"}):p.y.rangeMax};return mr(a,"discard")&&(!p.isInRange(h)||!p.isInRange(y))?null:r_(h,y)},tf=function(e){function t(){return yG(this,t),bG(this,t,arguments)}return OG(t,e),xG(t,[{key:"render",value:function(){var n=this.props,i=n.x1,a=n.x2,o=n.y1,l=n.y2,s=n.className,u=n.alwaysShow,f=n.clipPathId;kr(u===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.');var c=We(i),p=We(a),h=We(o),y=We(l),b=this.props.shape;if(!c&&!p&&!h&&!y&&!b)return null;var g=_G(c,p,h,y,this.props);if(!g&&!b)return null;var m=mr(this.props,"hidden")?"url(#".concat(f,")"):void 0;return E.createElement(_e,{className:oe("recharts-reference-area",s)},t.renderRect(b,Pb(Pb({clipPath:m},ee(this.props,!0)),g)),it.renderCallByParent(this.props,g))}}])}(E.Component);ef(tf,"displayName","ReferenceArea");ef(tf,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,r:10,fill:"#ccc",fillOpacity:.5,stroke:"none",strokeWidth:1});ef(tf,"renderRect",function(e,t){var r;return E.isValidElement(e)?r=E.cloneElement(e,t):Z(e)?r=e(t):r=E.createElement(Om,mh({},t,{className:"recharts-reference-area-rect"})),r});function y_(e,t,r){if(t<1)return[];if(t===1&&r===void 0)return e;for(var n=[],i=0;i<e.length;i+=t)n.push(e[i]);return n}function PG(e,t,r){var n={width:e.width+t.width,height:e.height+t.height};return bV(n,r)}function AG(e,t,r){var n=r==="width",i=e.x,a=e.y,o=e.width,l=e.height;return t===1?{start:n?i:a,end:n?i+o:a+l}:{start:n?i+o:a+l,end:n?i:a}}function Gu(e,t,r,n,i){if(e*t<e*n||e*t>e*i)return!1;var a=r();return e*(t-e*a/2-n)>=0&&e*(t+e*a/2-i)<=0}function EG(e,t){return y_(e,t+1)}function kG(e,t,r,n,i){for(var a=(n||[]).slice(),o=t.start,l=t.end,s=0,u=1,f=o,c=function(){var y=n==null?void 0:n[s];if(y===void 0)return{v:y_(n,u)};var b=s,g,m=function(){return g===void 0&&(g=r(y,b)),g},v=y.coordinate,x=s===0||Gu(e,v,m,f,l);x||(s=0,f=o,u+=1),x&&(f=v+e*(m()/2+i),s+=u)},p;u<=a.length;)if(p=c(),p)return p.v;return[]}function ml(e){"@babel/helpers - typeof";return ml=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ml(e)}function Ab(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function rt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ab(Object(r),!0).forEach(function(n){$G(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ab(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function $G(e,t,r){return t=NG(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function NG(e){var t=TG(e,"string");return ml(t)=="symbol"?t:t+""}function TG(e,t){if(ml(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(ml(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function CG(e,t,r,n,i){for(var a=(n||[]).slice(),o=a.length,l=t.start,s=t.end,u=function(p){var h=a[p],y,b=function(){return y===void 0&&(y=r(h,p)),y};if(p===o-1){var g=e*(h.coordinate+e*b()/2-s);a[p]=h=rt(rt({},h),{},{tickCoord:g>0?h.coordinate-g*e:h.coordinate})}else a[p]=h=rt(rt({},h),{},{tickCoord:h.coordinate});var m=Gu(e,h.tickCoord,b,l,s);m&&(s=h.tickCoord-e*(b()/2+i),a[p]=rt(rt({},h),{},{isShow:!0}))},f=o-1;f>=0;f--)u(f);return a}function MG(e,t,r,n,i,a){var o=(n||[]).slice(),l=o.length,s=t.start,u=t.end;if(a){var f=n[l-1],c=r(f,l-1),p=e*(f.coordinate+e*c/2-u);o[l-1]=f=rt(rt({},f),{},{tickCoord:p>0?f.coordinate-p*e:f.coordinate});var h=Gu(e,f.tickCoord,function(){return c},s,u);h&&(u=f.tickCoord-e*(c/2+i),o[l-1]=rt(rt({},f),{},{isShow:!0}))}for(var y=a?l-1:l,b=function(v){var x=o[v],O,w=function(){return O===void 0&&(O=r(x,v)),O};if(v===0){var S=e*(x.coordinate-e*w()/2-s);o[v]=x=rt(rt({},x),{},{tickCoord:S<0?x.coordinate-S*e:x.coordinate})}else o[v]=x=rt(rt({},x),{},{tickCoord:x.coordinate});var j=Gu(e,x.tickCoord,w,s,u);j&&(s=x.tickCoord+e*(w()/2+i),o[v]=rt(rt({},x),{},{isShow:!0}))},g=0;g<y;g++)b(g);return o}function Tm(e,t,r){var n=e.tick,i=e.ticks,a=e.viewBox,o=e.minTickGap,l=e.orientation,s=e.interval,u=e.tickFormatter,f=e.unit,c=e.angle;if(!i||!i.length||!n)return[];if(H(s)||ka.isSsr)return EG(i,typeof s=="number"&&H(s)?s:0);var p=[],h=l==="top"||l==="bottom"?"width":"height",y=f&&h==="width"?po(f,{fontSize:t,letterSpacing:r}):{width:0,height:0},b=function(x,O){var w=Z(u)?u(x.value,O):x.value;return h==="width"?PG(po(w,{fontSize:t,letterSpacing:r}),y,c):po(w,{fontSize:t,letterSpacing:r})[h]},g=i.length>=2?tr(i[1].coordinate-i[0].coordinate):1,m=AG(a,g,h);return s==="equidistantPreserveStart"?kG(g,m,b,i,o):(s==="preserveStart"||s==="preserveStartEnd"?p=MG(g,m,b,i,o,s==="preserveStartEnd"):p=CG(g,m,b,i,o),p.filter(function(v){return v.isShow}))}var IG=["viewBox"],DG=["viewBox"],LG=["ticks"];function ua(e){"@babel/helpers - typeof";return ua=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ua(e)}function Ei(){return Ei=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ei.apply(this,arguments)}function Eb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Be(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Eb(Object(r),!0).forEach(function(n){Cm(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Eb(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function od(e,t){if(e==null)return{};var r=RG(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function RG(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function BG(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function kb(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,x_(n.key),n)}}function zG(e,t,r){return t&&kb(e.prototype,t),r&&kb(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function FG(e,t,r){return t=Xu(t),UG(e,g_()?Reflect.construct(t,r||[],Xu(e).constructor):t.apply(e,r))}function UG(e,t){if(t&&(ua(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return WG(e)}function WG(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function g_(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(g_=function(){return!!e})()}function Xu(e){return Xu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Xu(e)}function HG(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&gh(e,t)}function gh(e,t){return gh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},gh(e,t)}function Cm(e,t,r){return t=x_(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function x_(e){var t=KG(e,"string");return ua(t)=="symbol"?t:t+""}function KG(e,t){if(ua(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(ua(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Ca=function(e){function t(r){var n;return BG(this,t),n=FG(this,t,[r]),n.state={fontSize:"",letterSpacing:""},n}return HG(t,e),zG(t,[{key:"shouldComponentUpdate",value:function(n,i){var a=n.viewBox,o=od(n,IG),l=this.props,s=l.viewBox,u=od(l,DG);return!Di(a,s)||!Di(o,u)||!Di(i,this.state)}},{key:"componentDidMount",value:function(){var n=this.layerReference;if(n){var i=n.getElementsByClassName("recharts-cartesian-axis-tick-value")[0];i&&this.setState({fontSize:window.getComputedStyle(i).fontSize,letterSpacing:window.getComputedStyle(i).letterSpacing})}}},{key:"getTickLineCoord",value:function(n){var i=this.props,a=i.x,o=i.y,l=i.width,s=i.height,u=i.orientation,f=i.tickSize,c=i.mirror,p=i.tickMargin,h,y,b,g,m,v,x=c?-1:1,O=n.tickSize||f,w=H(n.tickCoord)?n.tickCoord:n.coordinate;switch(u){case"top":h=y=n.coordinate,g=o+ +!c*s,b=g-x*O,v=b-x*p,m=w;break;case"left":b=g=n.coordinate,y=a+ +!c*l,h=y-x*O,m=h-x*p,v=w;break;case"right":b=g=n.coordinate,y=a+ +c*l,h=y+x*O,m=h+x*p,v=w;break;default:h=y=n.coordinate,g=o+ +c*s,b=g+x*O,v=b+x*p,m=w;break}return{line:{x1:h,y1:b,x2:y,y2:g},tick:{x:m,y:v}}}},{key:"getTickTextAnchor",value:function(){var n=this.props,i=n.orientation,a=n.mirror,o;switch(i){case"left":o=a?"start":"end";break;case"right":o=a?"end":"start";break;default:o="middle";break}return o}},{key:"getTickVerticalAnchor",value:function(){var n=this.props,i=n.orientation,a=n.mirror,o="end";switch(i){case"left":case"right":o="middle";break;case"top":o=a?"start":"end";break;default:o=a?"end":"start";break}return o}},{key:"renderAxisLine",value:function(){var n=this.props,i=n.x,a=n.y,o=n.width,l=n.height,s=n.orientation,u=n.mirror,f=n.axisLine,c=Be(Be(Be({},ee(this.props,!1)),ee(f,!1)),{},{fill:"none"});if(s==="top"||s==="bottom"){var p=+(s==="top"&&!u||s==="bottom"&&u);c=Be(Be({},c),{},{x1:i,y1:a+p*l,x2:i+o,y2:a+p*l})}else{var h=+(s==="left"&&!u||s==="right"&&u);c=Be(Be({},c),{},{x1:i+h*o,y1:a,x2:i+h*o,y2:a+l})}return E.createElement("line",Ei({},c,{className:oe("recharts-cartesian-axis-line",Ft(f,"className"))}))}},{key:"renderTicks",value:function(n,i,a){var o=this,l=this.props,s=l.tickLine,u=l.stroke,f=l.tick,c=l.tickFormatter,p=l.unit,h=Tm(Be(Be({},this.props),{},{ticks:n}),i,a),y=this.getTickTextAnchor(),b=this.getTickVerticalAnchor(),g=ee(this.props,!1),m=ee(f,!1),v=Be(Be({},g),{},{fill:"none"},ee(s,!1)),x=h.map(function(O,w){var S=o.getTickLineCoord(O),j=S.line,_=S.tick,A=Be(Be(Be(Be({textAnchor:y,verticalAnchor:b},g),{},{stroke:"none",fill:u},m),_),{},{index:w,payload:O,visibleTicksCount:h.length,tickFormatter:c});return E.createElement(_e,Ei({className:"recharts-cartesian-axis-tick",key:"tick-".concat(O.value,"-").concat(O.coordinate,"-").concat(O.tickCoord)},eu(o.props,O,w)),s&&E.createElement("line",Ei({},v,j,{className:oe("recharts-cartesian-axis-tick-line",Ft(s,"className"))})),f&&t.renderTickItem(f,A,"".concat(Z(c)?c(O.value,w):O.value).concat(p||"")))});return E.createElement("g",{className:"recharts-cartesian-axis-ticks"},x)}},{key:"render",value:function(){var n=this,i=this.props,a=i.axisLine,o=i.width,l=i.height,s=i.ticksGenerator,u=i.className,f=i.hide;if(f)return null;var c=this.props,p=c.ticks,h=od(c,LG),y=p;return Z(s)&&(y=p&&p.length>0?s(this.props):s(h)),o<=0||l<=0||!y||!y.length?null:E.createElement(_e,{className:oe("recharts-cartesian-axis",u),ref:function(g){n.layerReference=g}},a&&this.renderAxisLine(),this.renderTicks(y,this.state.fontSize,this.state.letterSpacing),it.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(n,i,a){var o,l=oe(i.className,"recharts-cartesian-axis-tick-value");return E.isValidElement(n)?o=E.cloneElement(n,Be(Be({},i),{},{className:l})):Z(n)?o=n(Be(Be({},i),{},{className:l})):o=E.createElement(hu,Ei({},i,{className:"recharts-cartesian-axis-tick-value"}),a),o}}])}(P.Component);Cm(Ca,"displayName","CartesianAxis");Cm(Ca,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var VG=["x1","y1","x2","y2","key"],GG=["offset"];function ri(e){"@babel/helpers - typeof";return ri=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ri(e)}function $b(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function at(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?$b(Object(r),!0).forEach(function(n){XG(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$b(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function XG(e,t,r){return t=qG(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function qG(e){var t=YG(e,"string");return ri(t)=="symbol"?t:t+""}function YG(e,t){if(ri(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(ri(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Fn(){return Fn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Fn.apply(this,arguments)}function Nb(e,t){if(e==null)return{};var r=QG(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function QG(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var ZG=function(t){var r=t.fill;if(!r||r==="none")return null;var n=t.fillOpacity,i=t.x,a=t.y,o=t.width,l=t.height,s=t.ry;return E.createElement("rect",{x:i,y:a,ry:s,width:o,height:l,stroke:"none",fill:r,fillOpacity:n,className:"recharts-cartesian-grid-bg"})};function b_(e,t){var r;if(E.isValidElement(e))r=E.cloneElement(e,t);else if(Z(e))r=e(t);else{var n=t.x1,i=t.y1,a=t.x2,o=t.y2,l=t.key,s=Nb(t,VG),u=ee(s,!1);u.offset;var f=Nb(u,GG);r=E.createElement("line",Fn({},f,{x1:n,y1:i,x2:a,y2:o,fill:"none",key:l}))}return r}function JG(e){var t=e.x,r=e.width,n=e.horizontal,i=n===void 0?!0:n,a=e.horizontalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(l,s){var u=at(at({},e),{},{x1:t,y1:l,x2:t+r,y2:l,key:"line-".concat(s),index:s});return b_(i,u)});return E.createElement("g",{className:"recharts-cartesian-grid-horizontal"},o)}function eX(e){var t=e.y,r=e.height,n=e.vertical,i=n===void 0?!0:n,a=e.verticalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(l,s){var u=at(at({},e),{},{x1:l,y1:t,x2:l,y2:t+r,key:"line-".concat(s),index:s});return b_(i,u)});return E.createElement("g",{className:"recharts-cartesian-grid-vertical"},o)}function tX(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,i=e.y,a=e.width,o=e.height,l=e.horizontalPoints,s=e.horizontal,u=s===void 0?!0:s;if(!u||!t||!t.length)return null;var f=l.map(function(p){return Math.round(p+i-i)}).sort(function(p,h){return p-h});i!==f[0]&&f.unshift(0);var c=f.map(function(p,h){var y=!f[h+1],b=y?i+o-p:f[h+1]-p;if(b<=0)return null;var g=h%t.length;return E.createElement("rect",{key:"react-".concat(h),y:p,x:n,height:b,width:a,stroke:"none",fill:t[g],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return E.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},c)}function rX(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,i=e.fillOpacity,a=e.x,o=e.y,l=e.width,s=e.height,u=e.verticalPoints;if(!r||!n||!n.length)return null;var f=u.map(function(p){return Math.round(p+a-a)}).sort(function(p,h){return p-h});a!==f[0]&&f.unshift(0);var c=f.map(function(p,h){var y=!f[h+1],b=y?a+l-p:f[h+1]-p;if(b<=0)return null;var g=h%n.length;return E.createElement("rect",{key:"react-".concat(h),x:p,y:o,width:b,height:s,stroke:"none",fill:n[g],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return E.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},c)}var nX=function(t,r){var n=t.xAxis,i=t.width,a=t.height,o=t.offset;return $j(Tm(at(at(at({},Ca.defaultProps),n),{},{ticks:Pr(n,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.left,o.left+o.width,r)},iX=function(t,r){var n=t.yAxis,i=t.width,a=t.height,o=t.offset;return $j(Tm(at(at(at({},Ca.defaultProps),n),{},{ticks:Pr(n,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.top,o.top+o.height,r)},hi={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function w_(e){var t,r,n,i,a,o,l=Em(),s=km(),u=KV(),f=at(at({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:hi.stroke,fill:(r=e.fill)!==null&&r!==void 0?r:hi.fill,horizontal:(n=e.horizontal)!==null&&n!==void 0?n:hi.horizontal,horizontalFill:(i=e.horizontalFill)!==null&&i!==void 0?i:hi.horizontalFill,vertical:(a=e.vertical)!==null&&a!==void 0?a:hi.vertical,verticalFill:(o=e.verticalFill)!==null&&o!==void 0?o:hi.verticalFill,x:H(e.x)?e.x:u.left,y:H(e.y)?e.y:u.top,width:H(e.width)?e.width:u.width,height:H(e.height)?e.height:u.height}),c=f.x,p=f.y,h=f.width,y=f.height,b=f.syncWithTicks,g=f.horizontalValues,m=f.verticalValues,v=UV(),x=WV();if(!H(h)||h<=0||!H(y)||y<=0||!H(c)||c!==+c||!H(p)||p!==+p)return null;var O=f.verticalCoordinatesGenerator||nX,w=f.horizontalCoordinatesGenerator||iX,S=f.horizontalPoints,j=f.verticalPoints;if((!S||!S.length)&&Z(w)){var _=g&&g.length,A=w({yAxis:x?at(at({},x),{},{ticks:_?g:x.ticks}):void 0,width:l,height:s,offset:u},_?!0:b);kr(Array.isArray(A),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(ri(A),"]")),Array.isArray(A)&&(S=A)}if((!j||!j.length)&&Z(O)){var $=m&&m.length,N=O({xAxis:v?at(at({},v),{},{ticks:$?m:v.ticks}):void 0,width:l,height:s,offset:u},$?!0:b);kr(Array.isArray(N),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(ri(N),"]")),Array.isArray(N)&&(j=N)}return E.createElement("g",{className:"recharts-cartesian-grid"},E.createElement(ZG,{fill:f.fill,fillOpacity:f.fillOpacity,x:f.x,y:f.y,width:f.width,height:f.height,ry:f.ry}),E.createElement(JG,Fn({},f,{offset:u,horizontalPoints:S,xAxis:v,yAxis:x})),E.createElement(eX,Fn({},f,{offset:u,verticalPoints:j,xAxis:v,yAxis:x})),E.createElement(tX,Fn({},f,{horizontalPoints:S})),E.createElement(rX,Fn({},f,{verticalPoints:j})))}w_.displayName="CartesianGrid";var aX=["layout","type","stroke","connectNulls","isRange","ref"],oX=["key"],S_;function ca(e){"@babel/helpers - typeof";return ca=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ca(e)}function O_(e,t){if(e==null)return{};var r=lX(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function lX(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Un(){return Un=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Un.apply(this,arguments)}function Tb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Kr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Tb(Object(r),!0).forEach(function(n){dr(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Tb(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function sX(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Cb(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,__(n.key),n)}}function uX(e,t,r){return t&&Cb(e.prototype,t),r&&Cb(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function cX(e,t,r){return t=qu(t),fX(e,j_()?Reflect.construct(t,r||[],qu(e).constructor):t.apply(e,r))}function fX(e,t){if(t&&(ca(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return dX(e)}function dX(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function j_(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(j_=function(){return!!e})()}function qu(e){return qu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},qu(e)}function pX(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&xh(e,t)}function xh(e,t){return xh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},xh(e,t)}function dr(e,t,r){return t=__(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function __(e){var t=hX(e,"string");return ca(t)=="symbol"?t:t+""}function hX(e,t){if(ca(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(ca(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Pn=function(e){function t(){var r;sX(this,t);for(var n=arguments.length,i=new Array(n),a=0;a<n;a++)i[a]=arguments[a];return r=cX(this,t,[].concat(i)),dr(r,"state",{isAnimationFinished:!0}),dr(r,"id",Al("recharts-area-")),dr(r,"handleAnimationEnd",function(){var o=r.props.onAnimationEnd;r.setState({isAnimationFinished:!0}),Z(o)&&o()}),dr(r,"handleAnimationStart",function(){var o=r.props.onAnimationStart;r.setState({isAnimationFinished:!1}),Z(o)&&o()}),r}return pX(t,e),uX(t,[{key:"renderDots",value:function(n,i,a){var o=this.props.isAnimationActive,l=this.state.isAnimationFinished;if(o&&!l)return null;var s=this.props,u=s.dot,f=s.points,c=s.dataKey,p=ee(this.props,!1),h=ee(u,!0),y=f.map(function(g,m){var v=Kr(Kr(Kr({key:"dot-".concat(m),r:3},p),h),{},{index:m,cx:g.x,cy:g.y,dataKey:c,value:g.value,payload:g.payload,points:f});return t.renderDotItem(u,v)}),b={clipPath:n?"url(#clipPath-".concat(i?"":"dots-").concat(a,")"):null};return E.createElement(_e,Un({className:"recharts-area-dots"},b),y)}},{key:"renderHorizontalRect",value:function(n){var i=this.props,a=i.baseLine,o=i.points,l=i.strokeWidth,s=o[0].x,u=o[o.length-1].x,f=n*Math.abs(s-u),c=tn(o.map(function(p){return p.y||0}));return H(a)&&typeof a=="number"?c=Math.max(a,c):a&&Array.isArray(a)&&a.length&&(c=Math.max(tn(a.map(function(p){return p.y||0})),c)),H(c)?E.createElement("rect",{x:s<u?s:s-f,y:0,width:f,height:Math.floor(c+(l?parseInt("".concat(l),10):1))}):null}},{key:"renderVerticalRect",value:function(n){var i=this.props,a=i.baseLine,o=i.points,l=i.strokeWidth,s=o[0].y,u=o[o.length-1].y,f=n*Math.abs(s-u),c=tn(o.map(function(p){return p.x||0}));return H(a)&&typeof a=="number"?c=Math.max(a,c):a&&Array.isArray(a)&&a.length&&(c=Math.max(tn(a.map(function(p){return p.x||0})),c)),H(c)?E.createElement("rect",{x:0,y:s<u?s:s-f,width:c+(l?parseInt("".concat(l),10):1),height:Math.floor(f)}):null}},{key:"renderClipRect",value:function(n){var i=this.props.layout;return i==="vertical"?this.renderVerticalRect(n):this.renderHorizontalRect(n)}},{key:"renderAreaStatically",value:function(n,i,a,o){var l=this.props,s=l.layout,u=l.type,f=l.stroke,c=l.connectNulls,p=l.isRange;l.ref;var h=O_(l,aX);return E.createElement(_e,{clipPath:a?"url(#clipPath-".concat(o,")"):null},E.createElement(mo,Un({},ee(h,!0),{points:n,connectNulls:c,type:u,baseLine:i,layout:s,stroke:"none",className:"recharts-area-area"})),f!=="none"&&E.createElement(mo,Un({},ee(this.props,!1),{className:"recharts-area-curve",layout:s,type:u,connectNulls:c,fill:"none",points:n})),f!=="none"&&p&&E.createElement(mo,Un({},ee(this.props,!1),{className:"recharts-area-curve",layout:s,type:u,connectNulls:c,fill:"none",points:i})))}},{key:"renderAreaWithAnimation",value:function(n,i){var a=this,o=this.props,l=o.points,s=o.baseLine,u=o.isAnimationActive,f=o.animationBegin,c=o.animationDuration,p=o.animationEasing,h=o.animationId,y=this.state,b=y.prevPoints,g=y.prevBaseLine;return E.createElement(Rr,{begin:f,duration:c,isActive:u,easing:p,from:{t:0},to:{t:1},key:"area-".concat(h),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(m){var v=m.t;if(b){var x=b.length/l.length,O=l.map(function(_,A){var $=Math.floor(A*x);if(b[$]){var N=b[$],k=Lt(N.x,_.x),D=Lt(N.y,_.y);return Kr(Kr({},_),{},{x:k(v),y:D(v)})}return _}),w;if(H(s)&&typeof s=="number"){var S=Lt(g,s);w=S(v)}else if(re(s)||_a(s)){var j=Lt(g,0);w=j(v)}else w=s.map(function(_,A){var $=Math.floor(A*x);if(g[$]){var N=g[$],k=Lt(N.x,_.x),D=Lt(N.y,_.y);return Kr(Kr({},_),{},{x:k(v),y:D(v)})}return _});return a.renderAreaStatically(O,w,n,i)}return E.createElement(_e,null,E.createElement("defs",null,E.createElement("clipPath",{id:"animationClipPath-".concat(i)},a.renderClipRect(v))),E.createElement(_e,{clipPath:"url(#animationClipPath-".concat(i,")")},a.renderAreaStatically(l,s,n,i)))})}},{key:"renderArea",value:function(n,i){var a=this.props,o=a.points,l=a.baseLine,s=a.isAnimationActive,u=this.state,f=u.prevPoints,c=u.prevBaseLine,p=u.totalLength;return s&&o&&o.length&&(!f&&p>0||!qo(f,o)||!qo(c,l))?this.renderAreaWithAnimation(n,i):this.renderAreaStatically(o,l,n,i)}},{key:"render",value:function(){var n,i=this.props,a=i.hide,o=i.dot,l=i.points,s=i.className,u=i.top,f=i.left,c=i.xAxis,p=i.yAxis,h=i.width,y=i.height,b=i.isAnimationActive,g=i.id;if(a||!l||!l.length)return null;var m=this.state.isAnimationFinished,v=l.length===1,x=oe("recharts-area",s),O=c&&c.allowDataOverflow,w=p&&p.allowDataOverflow,S=O||w,j=re(g)?this.id:g,_=(n=ee(o,!1))!==null&&n!==void 0?n:{r:3,strokeWidth:2},A=_.r,$=A===void 0?3:A,N=_.strokeWidth,k=N===void 0?2:N,D=AT(o)?o:{},I=D.clipDot,M=I===void 0?!0:I,R=$*2+k;return E.createElement(_e,{className:x},O||w?E.createElement("defs",null,E.createElement("clipPath",{id:"clipPath-".concat(j)},E.createElement("rect",{x:O?f:f-h/2,y:w?u:u-y/2,width:O?h:h*2,height:w?y:y*2})),!M&&E.createElement("clipPath",{id:"clipPath-dots-".concat(j)},E.createElement("rect",{x:f-R/2,y:u-R/2,width:h+R,height:y+R}))):null,v?null:this.renderArea(S,j),(o||v)&&this.renderDots(S,M,j),(!b||m)&&hn.renderCallByParent(this.props,l))}}],[{key:"getDerivedStateFromProps",value:function(n,i){return n.animationId!==i.prevAnimationId?{prevAnimationId:n.animationId,curPoints:n.points,curBaseLine:n.baseLine,prevPoints:i.curPoints,prevBaseLine:i.curBaseLine}:n.points!==i.curPoints||n.baseLine!==i.curBaseLine?{curPoints:n.points,curBaseLine:n.baseLine}:null}}])}(P.PureComponent);S_=Pn;dr(Pn,"displayName","Area");dr(Pn,"defaultProps",{stroke:"#3182bd",fill:"#3182bd",fillOpacity:.6,xAxisId:0,yAxisId:0,legendType:"line",connectNulls:!1,points:[],dot:!1,activeDot:!0,hide:!1,isAnimationActive:!ka.isSsr,animationBegin:0,animationDuration:1500,animationEasing:"ease"});dr(Pn,"getBaseValue",function(e,t,r,n){var i=e.layout,a=e.baseValue,o=t.props.baseValue,l=o??a;if(H(l)&&typeof l=="number")return l;var s=i==="horizontal"?n:r,u=s.scale.domain();if(s.type==="number"){var f=Math.max(u[0],u[1]),c=Math.min(u[0],u[1]);return l==="dataMin"?c:l==="dataMax"||f<0?f:Math.max(Math.min(u[0],u[1]),0)}return l==="dataMin"?u[0]:l==="dataMax"?u[1]:u[0]});dr(Pn,"getComposedData",function(e){var t=e.props,r=e.item,n=e.xAxis,i=e.yAxis,a=e.xAxisTicks,o=e.yAxisTicks,l=e.bandSize,s=e.dataKey,u=e.stackedData,f=e.dataStartIndex,c=e.displayedData,p=e.offset,h=t.layout,y=u&&u.length,b=S_.getBaseValue(t,r,n,i),g=h==="horizontal",m=!1,v=c.map(function(O,w){var S;y?S=u[f+w]:(S=Et(O,s),Array.isArray(S)?m=!0:S=[b,S]);var j=S[1]==null||y&&Et(O,s)==null;return g?{x:yx({axis:n,ticks:a,bandSize:l,entry:O,index:w}),y:j?null:i.scale(S[1]),value:S,payload:O}:{x:j?null:n.scale(S[1]),y:yx({axis:i,ticks:o,bandSize:l,entry:O,index:w}),value:S,payload:O}}),x;return y||m?x=v.map(function(O){var w=Array.isArray(O.value)?O.value[0]:null;return g?{x:O.x,y:w!=null&&O.y!=null?i.scale(w):null}:{x:w!=null?n.scale(w):null,y:O.y}}):x=g?i.scale(b):n.scale(b),Kr({points:v,baseLine:x,layout:h,isRange:m},p)});dr(Pn,"renderDotItem",function(e,t){var r;if(E.isValidElement(e))r=E.cloneElement(e,t);else if(Z(e))r=e(t);else{var n=oe("recharts-area-dot",typeof e!="boolean"?e.className:""),i=t.key,a=O_(t,oX);r=E.createElement(jm,Un({},a,{key:i,className:n}))}return r});function fa(e){"@babel/helpers - typeof";return fa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},fa(e)}function vX(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function mX(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,E_(n.key),n)}}function yX(e,t,r){return t&&mX(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function gX(e,t,r){return t=Yu(t),xX(e,P_()?Reflect.construct(t,r||[],Yu(e).constructor):t.apply(e,r))}function xX(e,t){if(t&&(fa(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return bX(e)}function bX(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function P_(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(P_=function(){return!!e})()}function Yu(e){return Yu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Yu(e)}function wX(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&bh(e,t)}function bh(e,t){return bh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},bh(e,t)}function A_(e,t,r){return t=E_(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function E_(e){var t=SX(e,"string");return fa(t)=="symbol"?t:t+""}function SX(e,t){if(fa(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(fa(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function wh(){return wh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},wh.apply(this,arguments)}function OX(e){var t=e.xAxisId,r=Em(),n=km(),i=u_(t);return i==null?null:P.createElement(Ca,wh({},i,{className:oe("recharts-".concat(i.axisType," ").concat(i.axisType),i.className),viewBox:{x:0,y:0,width:r,height:n},ticksGenerator:function(o){return Pr(o,!0)}}))}var rf=function(e){function t(){return vX(this,t),gX(this,t,arguments)}return wX(t,e),yX(t,[{key:"render",value:function(){return P.createElement(OX,this.props)}}])}(P.Component);A_(rf,"displayName","XAxis");A_(rf,"defaultProps",{allowDecimals:!0,hide:!1,orientation:"bottom",width:0,height:30,mirror:!1,xAxisId:0,tickCount:5,type:"category",padding:{left:0,right:0},allowDataOverflow:!1,scale:"auto",reversed:!1,allowDuplicatedCategory:!0});function da(e){"@babel/helpers - typeof";return da=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},da(e)}function jX(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _X(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,N_(n.key),n)}}function PX(e,t,r){return t&&_X(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function AX(e,t,r){return t=Qu(t),EX(e,k_()?Reflect.construct(t,r||[],Qu(e).constructor):t.apply(e,r))}function EX(e,t){if(t&&(da(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return kX(e)}function kX(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function k_(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(k_=function(){return!!e})()}function Qu(e){return Qu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Qu(e)}function $X(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Sh(e,t)}function Sh(e,t){return Sh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Sh(e,t)}function $_(e,t,r){return t=N_(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function N_(e){var t=NX(e,"string");return da(t)=="symbol"?t:t+""}function NX(e,t){if(da(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(da(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function Oh(){return Oh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Oh.apply(this,arguments)}var TX=function(t){var r=t.yAxisId,n=Em(),i=km(),a=c_(r);return a==null?null:P.createElement(Ca,Oh({},a,{className:oe("recharts-".concat(a.axisType," ").concat(a.axisType),a.className),viewBox:{x:0,y:0,width:n,height:i},ticksGenerator:function(l){return Pr(l,!0)}}))},nf=function(e){function t(){return jX(this,t),AX(this,t,arguments)}return $X(t,e),PX(t,[{key:"render",value:function(){return P.createElement(TX,this.props)}}])}(P.Component);$_(nf,"displayName","YAxis");$_(nf,"defaultProps",{allowDuplicatedCategory:!0,allowDecimals:!0,hide:!1,orientation:"left",width:60,height:0,mirror:!1,yAxisId:0,tickCount:5,type:"number",padding:{top:0,bottom:0},allowDataOverflow:!1,scale:"auto",reversed:!1});function Mb(e){return DX(e)||IX(e)||MX(e)||CX()}function CX(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function MX(e,t){if(e){if(typeof e=="string")return jh(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return jh(e,t)}}function IX(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function DX(e){if(Array.isArray(e))return jh(e)}function jh(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var _h=function(t,r,n,i,a){var o=ir(t,Nm),l=ir(t,Jc),s=[].concat(Mb(o),Mb(l)),u=ir(t,tf),f="".concat(i,"Id"),c=i[0],p=r;if(s.length&&(p=s.reduce(function(b,g){if(g.props[f]===n&&mr(g.props,"extendDomain")&&H(g.props[c])){var m=g.props[c];return[Math.min(b[0],m),Math.max(b[1],m)]}return b},p)),u.length){var h="".concat(c,"1"),y="".concat(c,"2");p=u.reduce(function(b,g){if(g.props[f]===n&&mr(g.props,"extendDomain")&&H(g.props[h])&&H(g.props[y])){var m=g.props[h],v=g.props[y];return[Math.min(b[0],m,v),Math.max(b[1],m,v)]}return b},p)}return a&&a.length&&(p=a.reduce(function(b,g){return H(g)?[Math.min(b[0],g),Math.max(b[1],g)]:b},p)),p},T_={exports:{}};(function(e){var t=Object.prototype.hasOwnProperty,r="~";function n(){}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(r=!1));function i(s,u,f){this.fn=s,this.context=u,this.once=f||!1}function a(s,u,f,c,p){if(typeof f!="function")throw new TypeError("The listener must be a function");var h=new i(f,c||s,p),y=r?r+u:u;return s._events[y]?s._events[y].fn?s._events[y]=[s._events[y],h]:s._events[y].push(h):(s._events[y]=h,s._eventsCount++),s}function o(s,u){--s._eventsCount===0?s._events=new n:delete s._events[u]}function l(){this._events=new n,this._eventsCount=0}l.prototype.eventNames=function(){var u=[],f,c;if(this._eventsCount===0)return u;for(c in f=this._events)t.call(f,c)&&u.push(r?c.slice(1):c);return Object.getOwnPropertySymbols?u.concat(Object.getOwnPropertySymbols(f)):u},l.prototype.listeners=function(u){var f=r?r+u:u,c=this._events[f];if(!c)return[];if(c.fn)return[c.fn];for(var p=0,h=c.length,y=new Array(h);p<h;p++)y[p]=c[p].fn;return y},l.prototype.listenerCount=function(u){var f=r?r+u:u,c=this._events[f];return c?c.fn?1:c.length:0},l.prototype.emit=function(u,f,c,p,h,y){var b=r?r+u:u;if(!this._events[b])return!1;var g=this._events[b],m=arguments.length,v,x;if(g.fn){switch(g.once&&this.removeListener(u,g.fn,void 0,!0),m){case 1:return g.fn.call(g.context),!0;case 2:return g.fn.call(g.context,f),!0;case 3:return g.fn.call(g.context,f,c),!0;case 4:return g.fn.call(g.context,f,c,p),!0;case 5:return g.fn.call(g.context,f,c,p,h),!0;case 6:return g.fn.call(g.context,f,c,p,h,y),!0}for(x=1,v=new Array(m-1);x<m;x++)v[x-1]=arguments[x];g.fn.apply(g.context,v)}else{var O=g.length,w;for(x=0;x<O;x++)switch(g[x].once&&this.removeListener(u,g[x].fn,void 0,!0),m){case 1:g[x].fn.call(g[x].context);break;case 2:g[x].fn.call(g[x].context,f);break;case 3:g[x].fn.call(g[x].context,f,c);break;case 4:g[x].fn.call(g[x].context,f,c,p);break;default:if(!v)for(w=1,v=new Array(m-1);w<m;w++)v[w-1]=arguments[w];g[x].fn.apply(g[x].context,v)}}return!0},l.prototype.on=function(u,f,c){return a(this,u,f,c,!1)},l.prototype.once=function(u,f,c){return a(this,u,f,c,!0)},l.prototype.removeListener=function(u,f,c,p){var h=r?r+u:u;if(!this._events[h])return this;if(!f)return o(this,h),this;var y=this._events[h];if(y.fn)y.fn===f&&(!p||y.once)&&(!c||y.context===c)&&o(this,h);else{for(var b=0,g=[],m=y.length;b<m;b++)(y[b].fn!==f||p&&!y[b].once||c&&y[b].context!==c)&&g.push(y[b]);g.length?this._events[h]=g.length===1?g[0]:g:o(this,h)}return this},l.prototype.removeAllListeners=function(u){var f;return u?(f=r?r+u:u,this._events[f]&&o(this,f)):(this._events=new n,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=r,l.EventEmitter=l,e.exports=l})(T_);var LX=T_.exports;const RX=he(LX);var ld=new RX,sd="recharts.syncMouseEvents";function yl(e){"@babel/helpers - typeof";return yl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},yl(e)}function BX(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function zX(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,C_(n.key),n)}}function FX(e,t,r){return t&&zX(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function ud(e,t,r){return t=C_(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function C_(e){var t=UX(e,"string");return yl(t)=="symbol"?t:t+""}function UX(e,t){if(yl(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(yl(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var WX=function(){function e(){BX(this,e),ud(this,"activeIndex",0),ud(this,"coordinateList",[]),ud(this,"layout","horizontal")}return FX(e,[{key:"setDetails",value:function(r){var n,i=r.coordinateList,a=i===void 0?null:i,o=r.container,l=o===void 0?null:o,s=r.layout,u=s===void 0?null:s,f=r.offset,c=f===void 0?null:f,p=r.mouseHandlerCallback,h=p===void 0?null:p;this.coordinateList=(n=a??this.coordinateList)!==null&&n!==void 0?n:[],this.container=l??this.container,this.layout=u??this.layout,this.offset=c??this.offset,this.mouseHandlerCallback=h??this.mouseHandlerCallback,this.activeIndex=Math.min(Math.max(this.activeIndex,0),this.coordinateList.length-1)}},{key:"focus",value:function(){this.spoofMouse()}},{key:"keyboardEvent",value:function(r){if(this.coordinateList.length!==0)switch(r.key){case"ArrowRight":{if(this.layout!=="horizontal")return;this.activeIndex=Math.min(this.activeIndex+1,this.coordinateList.length-1),this.spoofMouse();break}case"ArrowLeft":{if(this.layout!=="horizontal")return;this.activeIndex=Math.max(this.activeIndex-1,0),this.spoofMouse();break}}}},{key:"setIndex",value:function(r){this.activeIndex=r}},{key:"spoofMouse",value:function(){var r,n;if(this.layout==="horizontal"&&this.coordinateList.length!==0){var i=this.container.getBoundingClientRect(),a=i.x,o=i.y,l=i.height,s=this.coordinateList[this.activeIndex].coordinate,u=((r=window)===null||r===void 0?void 0:r.scrollX)||0,f=((n=window)===null||n===void 0?void 0:n.scrollY)||0,c=a+s+u,p=o+this.offset.top+l/2+f;this.mouseHandlerCallback({pageX:c,pageY:p})}}}])}();function HX(e,t,r){if(r==="number"&&t===!0&&Array.isArray(e)){var n=e==null?void 0:e[0],i=e==null?void 0:e[1];if(n&&i&&H(n)&&H(i))return!0}return!1}function KX(e,t,r,n){var i=n/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-i:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-i,width:e==="horizontal"?n:r.width-1,height:e==="horizontal"?r.height-1:n}}function M_(e){var t=e.cx,r=e.cy,n=e.radius,i=e.startAngle,a=e.endAngle,o=Qe(t,r,n,i),l=Qe(t,r,n,a);return{points:[o,l],cx:t,cy:r,radius:n,startAngle:i,endAngle:a}}function VX(e,t,r){var n,i,a,o;if(e==="horizontal")n=t.x,a=n,i=r.top,o=r.top+r.height;else if(e==="vertical")i=t.y,o=i,n=r.left,a=r.left+r.width;else if(t.cx!=null&&t.cy!=null)if(e==="centric"){var l=t.cx,s=t.cy,u=t.innerRadius,f=t.outerRadius,c=t.angle,p=Qe(l,s,u,c),h=Qe(l,s,f,c);n=p.x,i=p.y,a=h.x,o=h.y}else return M_(t);return[{x:n,y:i},{x:a,y:o}]}function gl(e){"@babel/helpers - typeof";return gl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},gl(e)}function Ib(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ds(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ib(Object(r),!0).forEach(function(n){GX(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ib(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function GX(e,t,r){return t=XX(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function XX(e){var t=qX(e,"string");return gl(t)=="symbol"?t:t+""}function qX(e,t){if(gl(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(gl(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function YX(e){var t,r,n=e.element,i=e.tooltipEventType,a=e.isActive,o=e.activeCoordinate,l=e.activePayload,s=e.offset,u=e.activeTooltipIndex,f=e.tooltipAxisBandSize,c=e.layout,p=e.chartName,h=(t=n.props.cursor)!==null&&t!==void 0?t:(r=n.type.defaultProps)===null||r===void 0?void 0:r.cursor;if(!n||!h||!a||!o||p!=="ScatterChart"&&i!=="axis")return null;var y,b=mo;if(p==="ScatterChart")y=o,b=J7;else if(p==="BarChart")y=KX(c,o,s,f),b=Om;else if(c==="radial"){var g=M_(o),m=g.cx,v=g.cy,x=g.radius,O=g.startAngle,w=g.endAngle;y={cx:m,cy:v,startAngle:O,endAngle:w,innerRadius:x,outerRadius:x},b=Ij}else y={points:VX(c,o,s)},b=mo;var S=ds(ds(ds(ds({stroke:"#ccc",pointerEvents:"none"},s),y),ee(h,!1)),{},{payload:l,payloadIndex:u,className:oe("recharts-tooltip-cursor",h.className)});return P.isValidElement(h)?P.cloneElement(h,S):P.createElement(b,S)}var QX=["item"],ZX=["children","className","width","height","style","compact","title","desc"];function pa(e){"@babel/helpers - typeof";return pa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pa(e)}function ki(){return ki=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ki.apply(this,arguments)}function Db(e,t){return tq(e)||eq(e,t)||D_(e,t)||JX()}function JX(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function eq(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,l=[],s=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(s=(n=a.call(r)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(f){u=!0,i=f}finally{try{if(!s&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return l}}function tq(e){if(Array.isArray(e))return e}function Lb(e,t){if(e==null)return{};var r=rq(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function rq(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function nq(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function iq(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,L_(n.key),n)}}function aq(e,t,r){return t&&iq(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function oq(e,t,r){return t=Zu(t),lq(e,I_()?Reflect.construct(t,r||[],Zu(e).constructor):t.apply(e,r))}function lq(e,t){if(t&&(pa(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return sq(e)}function sq(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function I_(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(I_=function(){return!!e})()}function Zu(e){return Zu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Zu(e)}function uq(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ph(e,t)}function Ph(e,t){return Ph=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Ph(e,t)}function ha(e){return dq(e)||fq(e)||D_(e)||cq()}function cq(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function D_(e,t){if(e){if(typeof e=="string")return Ah(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Ah(e,t)}}function fq(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function dq(e){if(Array.isArray(e))return Ah(e)}function Ah(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Rb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function C(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Rb(Object(r),!0).forEach(function(n){Y(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Rb(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Y(e,t,r){return t=L_(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function L_(e){var t=pq(e,"string");return pa(t)=="symbol"?t:t+""}function pq(e,t){if(pa(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(pa(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var hq={xAxis:["bottom","top"],yAxis:["left","right"]},vq={width:"100%",height:"100%"},R_={x:0,y:0};function ps(e){return e}var mq=function(t,r){return r==="horizontal"?t.x:r==="vertical"?t.y:r==="centric"?t.angle:t.radius},yq=function(t,r,n,i){var a=r.find(function(f){return f&&f.index===n});if(a){if(t==="horizontal")return{x:a.coordinate,y:i.y};if(t==="vertical")return{x:i.x,y:a.coordinate};if(t==="centric"){var o=a.coordinate,l=i.radius;return C(C(C({},i),Qe(i.cx,i.cy,l,o)),{},{angle:o,radius:l})}var s=a.coordinate,u=i.angle;return C(C(C({},i),Qe(i.cx,i.cy,s,u)),{},{angle:u,radius:s})}return R_},af=function(t,r){var n=r.graphicalItems,i=r.dataStartIndex,a=r.dataEndIndex,o=(n??[]).reduce(function(l,s){var u=s.props.data;return u&&u.length?[].concat(ha(l),ha(u)):l},[]);return o.length>0?o:t&&t.length&&H(i)&&H(a)?t.slice(i,a+1):[]};function B_(e){return e==="number"?[0,"auto"]:void 0}var Eh=function(t,r,n,i){var a=t.graphicalItems,o=t.tooltipAxis,l=af(r,t);return n<0||!a||!a.length||n>=l.length?null:a.reduce(function(s,u){var f,c=(f=u.props.data)!==null&&f!==void 0?f:r;c&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=n&&(c=c.slice(t.dataStartIndex,t.dataEndIndex+1));var p;if(o.dataKey&&!o.allowDuplicatedCategory){var h=c===void 0?l:c;p=Zs(h,o.dataKey,i)}else p=c&&c[n]||l[n];return p?[].concat(ha(s),[Tj(u,p)]):s},[])},Bb=function(t,r,n,i){var a=i||{x:t.chartX,y:t.chartY},o=mq(a,n),l=t.orderedTooltipTicks,s=t.tooltipAxis,u=t.tooltipTicks,f=NU(o,l,u,s);if(f>=0&&u){var c=u[f]&&u[f].value,p=Eh(t,r,f,c),h=yq(n,l,f,a);return{activeTooltipIndex:f,activeLabel:c,activePayload:p,activeCoordinate:h}}return null},gq=function(t,r){var n=r.axes,i=r.graphicalItems,a=r.axisType,o=r.axisIdKey,l=r.stackGroups,s=r.dataStartIndex,u=r.dataEndIndex,f=t.layout,c=t.children,p=t.stackOffset,h=kj(f,a);return n.reduce(function(y,b){var g,m=b.type.defaultProps!==void 0?C(C({},b.type.defaultProps),b.props):b.props,v=m.type,x=m.dataKey,O=m.allowDataOverflow,w=m.allowDuplicatedCategory,S=m.scale,j=m.ticks,_=m.includeHidden,A=m[o];if(y[A])return y;var $=af(t.data,{graphicalItems:i.filter(function(W){var q,ne=o in W.props?W.props[o]:(q=W.type.defaultProps)===null||q===void 0?void 0:q[o];return ne===A}),dataStartIndex:s,dataEndIndex:u}),N=$.length,k,D,I;HX(m.domain,O,v)&&(k=Gp(m.domain,null,O),h&&(v==="number"||S!=="auto")&&(I=vo($,x,"category")));var M=B_(v);if(!k||k.length===0){var R,z=(R=m.domain)!==null&&R!==void 0?R:M;if(x){if(k=vo($,x,v),v==="category"&&h){var T=yT(k);w&&T?(D=k,k=Bu(0,N)):w||(k=wx(z,k,b).reduce(function(W,q){return W.indexOf(q)>=0?W:[].concat(ha(W),[q])},[]))}else if(v==="category")w?k=k.filter(function(W){return W!==""&&!re(W)}):k=wx(z,k,b).reduce(function(W,q){return W.indexOf(q)>=0||q===""||re(q)?W:[].concat(ha(W),[q])},[]);else if(v==="number"){var L=DU($,i.filter(function(W){var q,ne,we=o in W.props?W.props[o]:(q=W.type.defaultProps)===null||q===void 0?void 0:q[o],Ne="hide"in W.props?W.props.hide:(ne=W.type.defaultProps)===null||ne===void 0?void 0:ne.hide;return we===A&&(_||!Ne)}),x,a,f);L&&(k=L)}h&&(v==="number"||S!=="auto")&&(I=vo($,x,"category"))}else h?k=Bu(0,N):l&&l[A]&&l[A].hasStack&&v==="number"?k=p==="expand"?[0,1]:Nj(l[A].stackGroups,s,u):k=Ej($,i.filter(function(W){var q=o in W.props?W.props[o]:W.type.defaultProps[o],ne="hide"in W.props?W.props.hide:W.type.defaultProps.hide;return q===A&&(_||!ne)}),v,f,!0);if(v==="number")k=_h(c,k,A,a,j),z&&(k=Gp(z,k,O));else if(v==="category"&&z){var B=z,K=k.every(function(W){return B.indexOf(W)>=0});K&&(k=B)}}return C(C({},y),{},Y({},A,C(C({},m),{},{axisType:a,domain:k,categoricalDomain:I,duplicateDomain:D,originalDomain:(g=m.domain)!==null&&g!==void 0?g:M,isCategorical:h,layout:f})))},{})},xq=function(t,r){var n=r.graphicalItems,i=r.Axis,a=r.axisType,o=r.axisIdKey,l=r.stackGroups,s=r.dataStartIndex,u=r.dataEndIndex,f=t.layout,c=t.children,p=af(t.data,{graphicalItems:n,dataStartIndex:s,dataEndIndex:u}),h=p.length,y=kj(f,a),b=-1;return n.reduce(function(g,m){var v=m.type.defaultProps!==void 0?C(C({},m.type.defaultProps),m.props):m.props,x=v[o],O=B_("number");if(!g[x]){b++;var w;return y?w=Bu(0,h):l&&l[x]&&l[x].hasStack?(w=Nj(l[x].stackGroups,s,u),w=_h(c,w,x,a)):(w=Gp(O,Ej(p,n.filter(function(S){var j,_,A=o in S.props?S.props[o]:(j=S.type.defaultProps)===null||j===void 0?void 0:j[o],$="hide"in S.props?S.props.hide:(_=S.type.defaultProps)===null||_===void 0?void 0:_.hide;return A===x&&!$}),"number",f),i.defaultProps.allowDataOverflow),w=_h(c,w,x,a)),C(C({},g),{},Y({},x,C(C({axisType:a},i.defaultProps),{},{hide:!0,orientation:Ft(hq,"".concat(a,".").concat(b%2),null),domain:w,originalDomain:O,isCategorical:y,layout:f})))}return g},{})},bq=function(t,r){var n=r.axisType,i=n===void 0?"xAxis":n,a=r.AxisComp,o=r.graphicalItems,l=r.stackGroups,s=r.dataStartIndex,u=r.dataEndIndex,f=t.children,c="".concat(i,"Id"),p=ir(f,a),h={};return p&&p.length?h=gq(t,{axes:p,graphicalItems:o,axisType:i,axisIdKey:c,stackGroups:l,dataStartIndex:s,dataEndIndex:u}):o&&o.length&&(h=xq(t,{Axis:a,graphicalItems:o,axisType:i,axisIdKey:c,stackGroups:l,dataStartIndex:s,dataEndIndex:u})),h},wq=function(t){var r=Qr(t),n=Pr(r,!1,!0);return{tooltipTicks:n,orderedTooltipTicks:Yv(n,function(i){return i.coordinate}),tooltipAxis:r,tooltipAxisBandSize:ku(r,n)}},zb=function(t){var r=t.children,n=t.defaultShowTooltip,i=Ot(r,ia),a=0,o=0;return t.data&&t.data.length!==0&&(o=t.data.length-1),i&&i.props&&(i.props.startIndex>=0&&(a=i.props.startIndex),i.props.endIndex>=0&&(o=i.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:a,dataEndIndex:o,activeTooltipIndex:-1,isTooltipActive:!!n}},Sq=function(t){return!t||!t.length?!1:t.some(function(r){var n=Er(r&&r.type);return n&&n.indexOf("Bar")>=0})},Fb=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},Oq=function(t,r){var n=t.props,i=t.graphicalItems,a=t.xAxisMap,o=a===void 0?{}:a,l=t.yAxisMap,s=l===void 0?{}:l,u=n.width,f=n.height,c=n.children,p=n.margin||{},h=Ot(c,ia),y=Ot(c,Li),b=Object.keys(s).reduce(function(w,S){var j=s[S],_=j.orientation;return!j.mirror&&!j.hide?C(C({},w),{},Y({},_,w[_]+j.width)):w},{left:p.left||0,right:p.right||0}),g=Object.keys(o).reduce(function(w,S){var j=o[S],_=j.orientation;return!j.mirror&&!j.hide?C(C({},w),{},Y({},_,Ft(w,"".concat(_))+j.height)):w},{top:p.top||0,bottom:p.bottom||0}),m=C(C({},g),b),v=m.bottom;h&&(m.bottom+=h.props.height||ia.defaultProps.height),y&&r&&(m=MU(m,i,n,r));var x=u-m.left-m.right,O=f-m.top-m.bottom;return C(C({brushBottom:v},m),{},{width:Math.max(x,0),height:Math.max(O,0)})},jq=function(t,r){if(r==="xAxis")return t[r].width;if(r==="yAxis")return t[r].height},_q=function(t){var r=t.chartName,n=t.GraphicalChild,i=t.defaultTooltipEventType,a=i===void 0?"axis":i,o=t.validateTooltipEventTypes,l=o===void 0?["axis"]:o,s=t.axisComponents,u=t.legendContent,f=t.formatAxisMap,c=t.defaultProps,p=function(m,v){var x=v.graphicalItems,O=v.stackGroups,w=v.offset,S=v.updateId,j=v.dataStartIndex,_=v.dataEndIndex,A=m.barSize,$=m.layout,N=m.barGap,k=m.barCategoryGap,D=m.maxBarSize,I=Fb($),M=I.numericAxisName,R=I.cateAxisName,z=Sq(x),T=[];return x.forEach(function(L,B){var K=af(m.data,{graphicalItems:[L],dataStartIndex:j,dataEndIndex:_}),W=L.type.defaultProps!==void 0?C(C({},L.type.defaultProps),L.props):L.props,q=W.dataKey,ne=W.maxBarSize,we=W["".concat(M,"Id")],Ne=W["".concat(R,"Id")],Nt={},dt=s.reduce(function(An,En){var of=v["".concat(En.axisType,"Map")],Mm=W["".concat(En.axisType,"Id")];of&&of[Mm]||En.axisType==="zAxis"||ti();var Im=of[Mm];return C(C({},An),{},Y(Y({},En.axisType,Im),"".concat(En.axisType,"Ticks"),Pr(Im)))},Nt),V=dt[R],Q=dt["".concat(R,"Ticks")],J=O&&O[we]&&O[we].hasStack&&XU(L,O[we].stackGroups),F=Er(L.type).indexOf("Bar")>=0,Ee=ku(V,Q),ie=[],Le=z&&TU({barSize:A,stackGroups:O,totalSize:jq(dt,R)});if(F){var Re,pt,Wr=re(ne)?D:ne,ci=(Re=(pt=ku(V,Q,!0))!==null&&pt!==void 0?pt:Wr)!==null&&Re!==void 0?Re:0;ie=CU({barGap:N,barCategoryGap:k,bandSize:ci!==Ee?ci:Ee,sizeList:Le[Ne],maxBarSize:Wr}),ci!==Ee&&(ie=ie.map(function(An){return C(C({},An),{},{position:C(C({},An.position),{},{offset:An.position.offset-ci/2})})}))}var Ml=L&&L.type&&L.type.getComposedData;Ml&&T.push({props:C(C({},Ml(C(C({},dt),{},{displayedData:K,props:m,dataKey:q,item:L,bandSize:Ee,barPosition:ie,offset:w,stackedData:J,layout:$,dataStartIndex:j,dataEndIndex:_}))),{},Y(Y(Y({key:L.key||"item-".concat(B)},M,dt[M]),R,dt[R]),"animationId",S)),childIndex:$T(L,m.children),item:L})}),T},h=function(m,v){var x=m.props,O=m.dataStartIndex,w=m.dataEndIndex,S=m.updateId;if(!hg({props:x}))return null;var j=x.children,_=x.layout,A=x.stackOffset,$=x.data,N=x.reverseStackOrder,k=Fb(_),D=k.numericAxisName,I=k.cateAxisName,M=ir(j,n),R=KU($,M,"".concat(D,"Id"),"".concat(I,"Id"),A,N),z=s.reduce(function(W,q){var ne="".concat(q.axisType,"Map");return C(C({},W),{},Y({},ne,bq(x,C(C({},q),{},{graphicalItems:M,stackGroups:q.axisType===D&&R,dataStartIndex:O,dataEndIndex:w}))))},{}),T=Oq(C(C({},z),{},{props:x,graphicalItems:M}),v==null?void 0:v.legendBBox);Object.keys(z).forEach(function(W){z[W]=f(x,z[W],T,W.replace("Map",""),r)});var L=z["".concat(I,"Map")],B=wq(L),K=p(x,C(C({},z),{},{dataStartIndex:O,dataEndIndex:w,updateId:S,graphicalItems:M,stackGroups:R,offset:T}));return C(C({formattedGraphicalItems:K,graphicalItems:M,offset:T,stackGroups:R},B),z)},y=function(g){function m(v){var x,O,w;return nq(this,m),w=oq(this,m,[v]),Y(w,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),Y(w,"accessibilityManager",new WX),Y(w,"handleLegendBBoxUpdate",function(S){if(S){var j=w.state,_=j.dataStartIndex,A=j.dataEndIndex,$=j.updateId;w.setState(C({legendBBox:S},h({props:w.props,dataStartIndex:_,dataEndIndex:A,updateId:$},C(C({},w.state),{},{legendBBox:S}))))}}),Y(w,"handleReceiveSyncEvent",function(S,j,_){if(w.props.syncId===S){if(_===w.eventEmitterSymbol&&typeof w.props.syncMethod!="function")return;w.applySyncEvent(j)}}),Y(w,"handleBrushChange",function(S){var j=S.startIndex,_=S.endIndex;if(j!==w.state.dataStartIndex||_!==w.state.dataEndIndex){var A=w.state.updateId;w.setState(function(){return C({dataStartIndex:j,dataEndIndex:_},h({props:w.props,dataStartIndex:j,dataEndIndex:_,updateId:A},w.state))}),w.triggerSyncEvent({dataStartIndex:j,dataEndIndex:_})}}),Y(w,"handleMouseEnter",function(S){var j=w.getMouseInfo(S);if(j){var _=C(C({},j),{},{isTooltipActive:!0});w.setState(_),w.triggerSyncEvent(_);var A=w.props.onMouseEnter;Z(A)&&A(_,S)}}),Y(w,"triggeredAfterMouseMove",function(S){var j=w.getMouseInfo(S),_=j?C(C({},j),{},{isTooltipActive:!0}):{isTooltipActive:!1};w.setState(_),w.triggerSyncEvent(_);var A=w.props.onMouseMove;Z(A)&&A(_,S)}),Y(w,"handleItemMouseEnter",function(S){w.setState(function(){return{isTooltipActive:!0,activeItem:S,activePayload:S.tooltipPayload,activeCoordinate:S.tooltipPosition||{x:S.cx,y:S.cy}}})}),Y(w,"handleItemMouseLeave",function(){w.setState(function(){return{isTooltipActive:!1}})}),Y(w,"handleMouseMove",function(S){S.persist(),w.throttleTriggeredAfterMouseMove(S)}),Y(w,"handleMouseLeave",function(S){w.throttleTriggeredAfterMouseMove.cancel();var j={isTooltipActive:!1};w.setState(j),w.triggerSyncEvent(j);var _=w.props.onMouseLeave;Z(_)&&_(j,S)}),Y(w,"handleOuterEvent",function(S){var j=kT(S),_=Ft(w.props,"".concat(j));if(j&&Z(_)){var A,$;/.*touch.*/i.test(j)?$=w.getMouseInfo(S.changedTouches[0]):$=w.getMouseInfo(S),_((A=$)!==null&&A!==void 0?A:{},S)}}),Y(w,"handleClick",function(S){var j=w.getMouseInfo(S);if(j){var _=C(C({},j),{},{isTooltipActive:!0});w.setState(_),w.triggerSyncEvent(_);var A=w.props.onClick;Z(A)&&A(_,S)}}),Y(w,"handleMouseDown",function(S){var j=w.props.onMouseDown;if(Z(j)){var _=w.getMouseInfo(S);j(_,S)}}),Y(w,"handleMouseUp",function(S){var j=w.props.onMouseUp;if(Z(j)){var _=w.getMouseInfo(S);j(_,S)}}),Y(w,"handleTouchMove",function(S){S.changedTouches!=null&&S.changedTouches.length>0&&w.throttleTriggeredAfterMouseMove(S.changedTouches[0])}),Y(w,"handleTouchStart",function(S){S.changedTouches!=null&&S.changedTouches.length>0&&w.handleMouseDown(S.changedTouches[0])}),Y(w,"handleTouchEnd",function(S){S.changedTouches!=null&&S.changedTouches.length>0&&w.handleMouseUp(S.changedTouches[0])}),Y(w,"handleDoubleClick",function(S){var j=w.props.onDoubleClick;if(Z(j)){var _=w.getMouseInfo(S);j(_,S)}}),Y(w,"handleContextMenu",function(S){var j=w.props.onContextMenu;if(Z(j)){var _=w.getMouseInfo(S);j(_,S)}}),Y(w,"triggerSyncEvent",function(S){w.props.syncId!==void 0&&ld.emit(sd,w.props.syncId,S,w.eventEmitterSymbol)}),Y(w,"applySyncEvent",function(S){var j=w.props,_=j.layout,A=j.syncMethod,$=w.state.updateId,N=S.dataStartIndex,k=S.dataEndIndex;if(S.dataStartIndex!==void 0||S.dataEndIndex!==void 0)w.setState(C({dataStartIndex:N,dataEndIndex:k},h({props:w.props,dataStartIndex:N,dataEndIndex:k,updateId:$},w.state)));else if(S.activeTooltipIndex!==void 0){var D=S.chartX,I=S.chartY,M=S.activeTooltipIndex,R=w.state,z=R.offset,T=R.tooltipTicks;if(!z)return;if(typeof A=="function")M=A(T,S);else if(A==="value"){M=-1;for(var L=0;L<T.length;L++)if(T[L].value===S.activeLabel){M=L;break}}var B=C(C({},z),{},{x:z.left,y:z.top}),K=Math.min(D,B.x+B.width),W=Math.min(I,B.y+B.height),q=T[M]&&T[M].value,ne=Eh(w.state,w.props.data,M),we=T[M]?{x:_==="horizontal"?T[M].coordinate:K,y:_==="horizontal"?W:T[M].coordinate}:R_;w.setState(C(C({},S),{},{activeLabel:q,activeCoordinate:we,activePayload:ne,activeTooltipIndex:M}))}else w.setState(S)}),Y(w,"renderCursor",function(S){var j,_=w.state,A=_.isTooltipActive,$=_.activeCoordinate,N=_.activePayload,k=_.offset,D=_.activeTooltipIndex,I=_.tooltipAxisBandSize,M=w.getTooltipEventType(),R=(j=S.props.active)!==null&&j!==void 0?j:A,z=w.props.layout,T=S.key||"_recharts-cursor";return E.createElement(YX,{key:T,activeCoordinate:$,activePayload:N,activeTooltipIndex:D,chartName:r,element:S,isActive:R,layout:z,offset:k,tooltipAxisBandSize:I,tooltipEventType:M})}),Y(w,"renderPolarAxis",function(S,j,_){var A=Ft(S,"type.axisType"),$=Ft(w.state,"".concat(A,"Map")),N=S.type.defaultProps,k=N!==void 0?C(C({},N),S.props):S.props,D=$&&$[k["".concat(A,"Id")]];return P.cloneElement(S,C(C({},D),{},{className:oe(A,D.className),key:S.key||"".concat(j,"-").concat(_),ticks:Pr(D,!0)}))}),Y(w,"renderPolarGrid",function(S){var j=S.props,_=j.radialLines,A=j.polarAngles,$=j.polarRadius,N=w.state,k=N.radiusAxisMap,D=N.angleAxisMap,I=Qr(k),M=Qr(D),R=M.cx,z=M.cy,T=M.innerRadius,L=M.outerRadius;return P.cloneElement(S,{polarAngles:Array.isArray(A)?A:Pr(M,!0).map(function(B){return B.coordinate}),polarRadius:Array.isArray($)?$:Pr(I,!0).map(function(B){return B.coordinate}),cx:R,cy:z,innerRadius:T,outerRadius:L,key:S.key||"polar-grid",radialLines:_})}),Y(w,"renderLegend",function(){var S=w.state.formattedGraphicalItems,j=w.props,_=j.children,A=j.width,$=j.height,N=w.props.margin||{},k=A-(N.left||0)-(N.right||0),D=Pj({children:_,formattedGraphicalItems:S,legendWidth:k,legendContent:u});if(!D)return null;var I=D.item,M=Lb(D,QX);return P.cloneElement(I,C(C({},M),{},{chartWidth:A,chartHeight:$,margin:N,onBBoxUpdate:w.handleLegendBBoxUpdate}))}),Y(w,"renderTooltip",function(){var S,j=w.props,_=j.children,A=j.accessibilityLayer,$=Ot(_,ur);if(!$)return null;var N=w.state,k=N.isTooltipActive,D=N.activeCoordinate,I=N.activePayload,M=N.activeLabel,R=N.offset,z=(S=$.props.active)!==null&&S!==void 0?S:k;return P.cloneElement($,{viewBox:C(C({},R),{},{x:R.left,y:R.top}),active:z,label:M,payload:z?I:[],coordinate:D,accessibilityLayer:A})}),Y(w,"renderBrush",function(S){var j=w.props,_=j.margin,A=j.data,$=w.state,N=$.offset,k=$.dataStartIndex,D=$.dataEndIndex,I=$.updateId;return P.cloneElement(S,{key:S.key||"_recharts-brush",onChange:ss(w.handleBrushChange,S.props.onChange),data:A,x:H(S.props.x)?S.props.x:N.left,y:H(S.props.y)?S.props.y:N.top+N.height+N.brushBottom-(_.bottom||0),width:H(S.props.width)?S.props.width:N.width,startIndex:k,endIndex:D,updateId:"brush-".concat(I)})}),Y(w,"renderReferenceElement",function(S,j,_){if(!S)return null;var A=w,$=A.clipPathId,N=w.state,k=N.xAxisMap,D=N.yAxisMap,I=N.offset,M=S.type.defaultProps||{},R=S.props,z=R.xAxisId,T=z===void 0?M.xAxisId:z,L=R.yAxisId,B=L===void 0?M.yAxisId:L;return P.cloneElement(S,{key:S.key||"".concat(j,"-").concat(_),xAxis:k[T],yAxis:D[B],viewBox:{x:I.left,y:I.top,width:I.width,height:I.height},clipPathId:$})}),Y(w,"renderActivePoints",function(S){var j=S.item,_=S.activePoint,A=S.basePoint,$=S.childIndex,N=S.isRange,k=[],D=j.props.key,I=j.item.type.defaultProps!==void 0?C(C({},j.item.type.defaultProps),j.item.props):j.item.props,M=I.activeDot,R=I.dataKey,z=C(C({index:$,dataKey:R,cx:_.x,cy:_.y,r:4,fill:Sm(j.item),strokeWidth:2,stroke:"#fff",payload:_.payload,value:_.value},ee(M,!1)),Js(M));return k.push(m.renderActiveDot(M,z,"".concat(D,"-activePoint-").concat($))),A?k.push(m.renderActiveDot(M,C(C({},z),{},{cx:A.x,cy:A.y}),"".concat(D,"-basePoint-").concat($))):N&&k.push(null),k}),Y(w,"renderGraphicChild",function(S,j,_){var A=w.filterFormatItem(S,j,_);if(!A)return null;var $=w.getTooltipEventType(),N=w.state,k=N.isTooltipActive,D=N.tooltipAxis,I=N.activeTooltipIndex,M=N.activeLabel,R=w.props.children,z=Ot(R,ur),T=A.props,L=T.points,B=T.isRange,K=T.baseLine,W=A.item.type.defaultProps!==void 0?C(C({},A.item.type.defaultProps),A.item.props):A.item.props,q=W.activeDot,ne=W.hide,we=W.activeBar,Ne=W.activeShape,Nt=!!(!ne&&k&&z&&(q||we||Ne)),dt={};$!=="axis"&&z&&z.props.trigger==="click"?dt={onClick:ss(w.handleItemMouseEnter,S.props.onClick)}:$!=="axis"&&(dt={onMouseLeave:ss(w.handleItemMouseLeave,S.props.onMouseLeave),onMouseEnter:ss(w.handleItemMouseEnter,S.props.onMouseEnter)});var V=P.cloneElement(S,C(C({},A.props),dt));function Q(En){return typeof D.dataKey=="function"?D.dataKey(En.payload):null}if(Nt)if(I>=0){var J,F;if(D.dataKey&&!D.allowDuplicatedCategory){var Ee=typeof D.dataKey=="function"?Q:"payload.".concat(D.dataKey.toString());J=Zs(L,Ee,M),F=B&&K&&Zs(K,Ee,M)}else J=L==null?void 0:L[I],F=B&&K&&K[I];if(Ne||we){var ie=S.props.activeIndex!==void 0?S.props.activeIndex:I;return[P.cloneElement(S,C(C(C({},A.props),dt),{},{activeIndex:ie})),null,null]}if(!re(J))return[V].concat(ha(w.renderActivePoints({item:A,activePoint:J,basePoint:F,childIndex:I,isRange:B})))}else{var Le,Re=(Le=w.getItemByXY(w.state.activeCoordinate))!==null&&Le!==void 0?Le:{graphicalItem:V},pt=Re.graphicalItem,Wr=pt.item,ci=Wr===void 0?S:Wr,Ml=pt.childIndex,An=C(C(C({},A.props),dt),{},{activeIndex:Ml});return[P.cloneElement(ci,An),null,null]}return B?[V,null,null]:[V,null]}),Y(w,"renderCustomized",function(S,j,_){return P.cloneElement(S,C(C({key:"recharts-customized-".concat(_)},w.props),w.state))}),Y(w,"renderMap",{CartesianGrid:{handler:ps,once:!0},ReferenceArea:{handler:w.renderReferenceElement},ReferenceLine:{handler:ps},ReferenceDot:{handler:w.renderReferenceElement},XAxis:{handler:ps},YAxis:{handler:ps},Brush:{handler:w.renderBrush,once:!0},Bar:{handler:w.renderGraphicChild},Line:{handler:w.renderGraphicChild},Area:{handler:w.renderGraphicChild},Radar:{handler:w.renderGraphicChild},RadialBar:{handler:w.renderGraphicChild},Scatter:{handler:w.renderGraphicChild},Pie:{handler:w.renderGraphicChild},Funnel:{handler:w.renderGraphicChild},Tooltip:{handler:w.renderCursor,once:!0},PolarGrid:{handler:w.renderPolarGrid,once:!0},PolarAngleAxis:{handler:w.renderPolarAxis},PolarRadiusAxis:{handler:w.renderPolarAxis},Customized:{handler:w.renderCustomized}}),w.clipPathId="".concat((x=v.id)!==null&&x!==void 0?x:Al("recharts"),"-clip"),w.throttleTriggeredAfterMouseMove=PO(w.triggeredAfterMouseMove,(O=v.throttleDelay)!==null&&O!==void 0?O:1e3/60),w.state={},w}return uq(m,g),aq(m,[{key:"componentDidMount",value:function(){var x,O;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(x=this.props.margin.left)!==null&&x!==void 0?x:0,top:(O=this.props.margin.top)!==null&&O!==void 0?O:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var x=this.props,O=x.children,w=x.data,S=x.height,j=x.layout,_=Ot(O,ur);if(_){var A=_.props.defaultIndex;if(!(typeof A!="number"||A<0||A>this.state.tooltipTicks.length-1)){var $=this.state.tooltipTicks[A]&&this.state.tooltipTicks[A].value,N=Eh(this.state,w,A,$),k=this.state.tooltipTicks[A].coordinate,D=(this.state.offset.top+S)/2,I=j==="horizontal",M=I?{x:k,y:D}:{y:k,x:D},R=this.state.formattedGraphicalItems.find(function(T){var L=T.item;return L.type.name==="Scatter"});R&&(M=C(C({},M),R.props.points[A].tooltipPosition),N=R.props.points[A].tooltipPayload);var z={activeTooltipIndex:A,isTooltipActive:!0,activeLabel:$,activePayload:N,activeCoordinate:M};this.setState(z),this.renderCursor(_),this.accessibilityManager.setIndex(A)}}}},{key:"getSnapshotBeforeUpdate",value:function(x,O){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==O.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==x.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==x.margin){var w,S;this.accessibilityManager.setDetails({offset:{left:(w=this.props.margin.left)!==null&&w!==void 0?w:0,top:(S=this.props.margin.top)!==null&&S!==void 0?S:0}})}return null}},{key:"componentDidUpdate",value:function(x){sp([Ot(x.children,ur)],[Ot(this.props.children,ur)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var x=Ot(this.props.children,ur);if(x&&typeof x.props.shared=="boolean"){var O=x.props.shared?"axis":"item";return l.indexOf(O)>=0?O:a}return a}},{key:"getMouseInfo",value:function(x){if(!this.container)return null;var O=this.container,w=O.getBoundingClientRect(),S=n8(w),j={chartX:Math.round(x.pageX-S.left),chartY:Math.round(x.pageY-S.top)},_=w.width/O.offsetWidth||1,A=this.inRange(j.chartX,j.chartY,_);if(!A)return null;var $=this.state,N=$.xAxisMap,k=$.yAxisMap,D=this.getTooltipEventType(),I=Bb(this.state,this.props.data,this.props.layout,A);if(D!=="axis"&&N&&k){var M=Qr(N).scale,R=Qr(k).scale,z=M&&M.invert?M.invert(j.chartX):null,T=R&&R.invert?R.invert(j.chartY):null;return C(C({},j),{},{xValue:z,yValue:T},I)}return I?C(C({},j),I):null}},{key:"inRange",value:function(x,O){var w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,S=this.props.layout,j=x/w,_=O/w;if(S==="horizontal"||S==="vertical"){var A=this.state.offset,$=j>=A.left&&j<=A.left+A.width&&_>=A.top&&_<=A.top+A.height;return $?{x:j,y:_}:null}var N=this.state,k=N.angleAxisMap,D=N.radiusAxisMap;if(k&&D){var I=Qr(k);return jx({x:j,y:_},I)}return null}},{key:"parseEventsOfWrapper",value:function(){var x=this.props.children,O=this.getTooltipEventType(),w=Ot(x,ur),S={};w&&O==="axis"&&(w.props.trigger==="click"?S={onClick:this.handleClick}:S={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var j=Js(this.props,this.handleOuterEvent);return C(C({},j),S)}},{key:"addListener",value:function(){ld.on(sd,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){ld.removeListener(sd,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(x,O,w){for(var S=this.state.formattedGraphicalItems,j=0,_=S.length;j<_;j++){var A=S[j];if(A.item===x||A.props.key===x.key||O===Er(A.item.type)&&w===A.childIndex)return A}return null}},{key:"renderClipPath",value:function(){var x=this.clipPathId,O=this.state.offset,w=O.left,S=O.top,j=O.height,_=O.width;return E.createElement("defs",null,E.createElement("clipPath",{id:x},E.createElement("rect",{x:w,y:S,height:j,width:_})))}},{key:"getXScales",value:function(){var x=this.state.xAxisMap;return x?Object.entries(x).reduce(function(O,w){var S=Db(w,2),j=S[0],_=S[1];return C(C({},O),{},Y({},j,_.scale))},{}):null}},{key:"getYScales",value:function(){var x=this.state.yAxisMap;return x?Object.entries(x).reduce(function(O,w){var S=Db(w,2),j=S[0],_=S[1];return C(C({},O),{},Y({},j,_.scale))},{}):null}},{key:"getXScaleByAxisId",value:function(x){var O;return(O=this.state.xAxisMap)===null||O===void 0||(O=O[x])===null||O===void 0?void 0:O.scale}},{key:"getYScaleByAxisId",value:function(x){var O;return(O=this.state.yAxisMap)===null||O===void 0||(O=O[x])===null||O===void 0?void 0:O.scale}},{key:"getItemByXY",value:function(x){var O=this.state,w=O.formattedGraphicalItems,S=O.activeItem;if(w&&w.length)for(var j=0,_=w.length;j<_;j++){var A=w[j],$=A.props,N=A.item,k=N.type.defaultProps!==void 0?C(C({},N.type.defaultProps),N.props):N.props,D=Er(N.type);if(D==="Bar"){var I=($.data||[]).find(function(T){return W7(x,T)});if(I)return{graphicalItem:A,payload:I}}else if(D==="RadialBar"){var M=($.data||[]).find(function(T){return jx(x,T)});if(M)return{graphicalItem:A,payload:M}}else if(qc(A,S)||Yc(A,S)||dl(A,S)){var R=VH({graphicalItem:A,activeTooltipItem:S,itemData:k.data}),z=k.activeIndex===void 0?R:k.activeIndex;return{graphicalItem:C(C({},A),{},{childIndex:z}),payload:dl(A,S)?k.data[R]:A.props.data[R]}}}return null}},{key:"render",value:function(){var x=this;if(!hg(this))return null;var O=this.props,w=O.children,S=O.className,j=O.width,_=O.height,A=O.style,$=O.compact,N=O.title,k=O.desc,D=Lb(O,ZX),I=ee(D,!1);if($)return E.createElement(xb,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},E.createElement(cp,ki({},I,{width:j,height:_,title:N,desc:k}),this.renderClipPath(),mg(w,this.renderMap)));if(this.props.accessibilityLayer){var M,R;I.tabIndex=(M=this.props.tabIndex)!==null&&M!==void 0?M:0,I.role=(R=this.props.role)!==null&&R!==void 0?R:"application",I.onKeyDown=function(T){x.accessibilityManager.keyboardEvent(T)},I.onFocus=function(){x.accessibilityManager.focus()}}var z=this.parseEventsOfWrapper();return E.createElement(xb,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},E.createElement("div",ki({className:oe("recharts-wrapper",S),style:C({position:"relative",cursor:"default",width:j,height:_},A)},z,{ref:function(L){x.container=L}}),E.createElement(cp,ki({},I,{width:j,height:_,title:N,desc:k,style:vq}),this.renderClipPath(),mg(w,this.renderMap)),this.renderLegend(),this.renderTooltip()))}}])}(P.Component);Y(y,"displayName",r),Y(y,"defaultProps",C({layout:"horizontal",stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:"index"},c)),Y(y,"getDerivedStateFromProps",function(g,m){var v=g.dataKey,x=g.data,O=g.children,w=g.width,S=g.height,j=g.layout,_=g.stackOffset,A=g.margin,$=m.dataStartIndex,N=m.dataEndIndex;if(m.updateId===void 0){var k=zb(g);return C(C(C({},k),{},{updateId:0},h(C(C({props:g},k),{},{updateId:0}),m)),{},{prevDataKey:v,prevData:x,prevWidth:w,prevHeight:S,prevLayout:j,prevStackOffset:_,prevMargin:A,prevChildren:O})}if(v!==m.prevDataKey||x!==m.prevData||w!==m.prevWidth||S!==m.prevHeight||j!==m.prevLayout||_!==m.prevStackOffset||!Di(A,m.prevMargin)){var D=zb(g),I={chartX:m.chartX,chartY:m.chartY,isTooltipActive:m.isTooltipActive},M=C(C({},Bb(m,x,j)),{},{updateId:m.updateId+1}),R=C(C(C({},D),I),M);return C(C(C({},R),h(C({props:g},R),m)),{},{prevDataKey:v,prevData:x,prevWidth:w,prevHeight:S,prevLayout:j,prevStackOffset:_,prevMargin:A,prevChildren:O})}if(!sp(O,m.prevChildren)){var z,T,L,B,K=Ot(O,ia),W=K&&(z=(T=K.props)===null||T===void 0?void 0:T.startIndex)!==null&&z!==void 0?z:$,q=K&&(L=(B=K.props)===null||B===void 0?void 0:B.endIndex)!==null&&L!==void 0?L:N,ne=W!==$||q!==N,we=!re(x),Ne=we&&!ne?m.updateId:m.updateId+1;return C(C({updateId:Ne},h(C(C({props:g},m),{},{updateId:Ne,dataStartIndex:W,dataEndIndex:q}),m)),{},{prevChildren:O,dataStartIndex:W,dataEndIndex:q})}return null}),Y(y,"renderActiveDot",function(g,m,v){var x;return P.isValidElement(g)?x=P.cloneElement(g,m):Z(g)?x=g(m):x=E.createElement(jm,m),E.createElement(_e,{className:"recharts-active-dot",key:v},x)});var b=P.forwardRef(function(m,v){return E.createElement(y,ki({},m,{ref:v}))});return b.displayName=y.displayName,b},Pq=_q({chartName:"AreaChart",GraphicalChild:Pn,axisComponents:[{axisType:"xAxis",AxisComp:rf},{axisType:"yAxis",AxisComp:nf}],formatAxisMap:yV});function Aq(){const[e,t]=P.useState(null),[r,n]=P.useState(!0);P.useEffect(()=>{i();const l=setInterval(i,3e4);return()=>clearInterval(l)},[]);async function i(){try{const l=await xa("/dashboard");t(l)}catch{}n(!1)}if(r)return d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})});const a=e||{},o=(a.pnl_history||[]).map((l,s)=>({day:s+1,pnl:l}));return d.jsxs("div",{className:"space-y-6",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsxs("div",{children:[d.jsx("h1",{className:"text-2xl font-bold",children:"Dashboard"}),d.jsx("p",{className:"text-gray-500 text-sm",children:"Kalshi event contracts overview"})]}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("span",{className:`badge ${a.env==="prod"?"bg-green":"bg-yellow"}`,children:(a.env||"DEMO").toUpperCase()}),a.safe_mode&&d.jsx("span",{className:"badge bg-yellow",children:"SAFE MODE"})]})]}),d.jsx("div",{className:"grid grid-cols-5 gap-4",children:[{label:"Balance",value:a.balance?`$${(a.balance/100).toFixed(2)}`:"—",color:"text-green-400"},{label:"Positions",value:a.position_count??"—",color:"text-amber-400"},{label:"Open Orders",value:a.open_orders??"—",color:"text-blue-400"},{label:"Today P&L",value:a.daily_pnl?`$${(a.daily_pnl/100).toFixed(2)}`:"$0.00",color:(a.daily_pnl||0)>=0?"text-green-400":"text-red-400"},{label:"Markets Tracked",value:a.markets_tracked??"—",color:"text-purple-400"}].map(l=>d.jsxs("div",{className:"card",children:[d.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:l.label}),d.jsx("p",{className:`stat-v ${l.color}`,children:l.value})]},l.label))}),o.length>0&&d.jsxs("div",{className:"card",children:[d.jsx("h2",{className:"font-semibold mb-3",children:"P&L History"}),d.jsx(YB,{width:"100%",height:200,children:d.jsxs(Pq,{data:o,children:[d.jsx(w_,{strokeDasharray:"3 3",stroke:"#1f2937"}),d.jsx(rf,{dataKey:"day",stroke:"#6b7280"}),d.jsx(nf,{stroke:"#6b7280",tickFormatter:l=>`$${l}`}),d.jsx(ur,{contentStyle:{background:"#1f2937",border:"1px solid #374151",borderRadius:8}}),d.jsx(Pn,{type:"monotone",dataKey:"pnl",stroke:"#f59e0b",fill:"#f59e0b",fillOpacity:.1})]})})]}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsxs("div",{className:"card",children:[d.jsx("h2",{className:"font-semibold mb-3",children:"Recent Fills"}),(a.recent_fills||[]).length>0?d.jsx("div",{className:"space-y-2",children:(a.recent_fills||[]).slice(0,5).map((l,s)=>{var u;return d.jsxs("div",{className:"flex items-center justify-between text-sm",children:[d.jsxs("div",{children:[d.jsx("span",{className:"font-mono text-xs text-gray-400",children:l.ticker}),d.jsx("span",{className:`ml-2 badge ${l.side==="yes"?"bg-green":"bg-red"}`,children:(u=l.side)==null?void 0:u.toUpperCase()})]}),d.jsxs("span",{className:"font-mono text-gray-300",children:[l.count,"@",l.yes_price,"c"]})]},s)})}):d.jsx("p",{className:"text-gray-600 text-sm text-center py-6",children:"No recent fills"})]}),d.jsxs("div",{className:"card",children:[d.jsx("h2",{className:"font-semibold mb-3",children:"Quick Actions"}),d.jsxs("div",{className:"space-y-2",children:[d.jsxs(Ps,{to:"/markets",className:"flex items-center gap-3 p-3 rounded-lg bg-gray-800/30 hover:bg-gray-800/60 transition",children:[d.jsx("div",{className:"w-8 h-8 rounded-lg bg-amber-500/10 flex items-center justify-center",children:d.jsx("svg",{className:"w-4 h-4 text-amber-400",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"})})}),d.jsxs("div",{children:[d.jsx("p",{className:"text-sm font-medium",children:"Browse Markets"}),d.jsx("p",{className:"text-xs text-gray-500",children:"Find weather contracts"})]})]}),d.jsxs(Ps,{to:"/positions",className:"flex items-center gap-3 p-3 rounded-lg bg-gray-800/30 hover:bg-gray-800/60 transition",children:[d.jsx("div",{className:"w-8 h-8 rounded-lg bg-green-500/10 flex items-center justify-center",children:d.jsx("svg",{className:"w-4 h-4 text-green-400",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"})})}),d.jsxs("div",{children:[d.jsx("p",{className:"text-sm font-medium",children:"View Positions"}),d.jsx("p",{className:"text-xs text-gray-500",children:"Current portfolio"})]})]}),d.jsxs(Ps,{to:"/risk",className:"flex items-center gap-3 p-3 rounded-lg bg-gray-800/30 hover:bg-gray-800/60 transition",children:[d.jsx("div",{className:"w-8 h-8 rounded-lg bg-blue-500/10 flex items-center justify-center",children:d.jsx("svg",{className:"w-4 h-4 text-blue-400",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"})})}),d.jsxs("div",{children:[d.jsx("p",{className:"text-sm font-medium",children:"Risk Controls"}),d.jsx("p",{className:"text-xs text-gray-500",children:"Limits & safe mode"})]})]})]})]})]})]})}function Eq(){const[e,t]=P.useState([]),[r,n]=P.useState([]),[i,a]=P.useState(!0),[o,l]=P.useState(null),[s,u]=P.useState(null),[f,c]=P.useState(!1),[p,h]=P.useState("");P.useEffect(()=>{y()},[]);async function y(){a(!0);try{const v=await de("/kalshi",{action:"get_events",params:{status:"open",limit:100}});t(v.events||[])}catch{}a(!1)}async function b(v){l(v),n([]);try{const x=await de("/kalshi",{action:"get_markets",params:{event_ticker:v}});n(x.markets||[])}catch{}}async function g(v){c(!0),u(null);try{const x=await de("/kalshi",{action:"get_orderbook",ticker:v});x.success&&u({...x.orderbook,ticker:v})}catch{}c(!1)}const m=e.filter(v=>!p||(v.title||"").toLowerCase().includes(p.toLowerCase())||(v.category||"").toLowerCase().includes(p.toLowerCase()));return i?d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})}):d.jsxs("div",{className:"space-y-6",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsxs("div",{children:[d.jsx("h1",{className:"text-2xl font-bold",children:"Markets"}),d.jsxs("p",{className:"text-gray-500 text-sm",children:[e.length," events loaded"]})]}),d.jsx("button",{onClick:y,className:"btn btn-o text-sm",children:"Refresh"})]}),d.jsx("input",{type:"text",value:p,onChange:v=>h(v.target.value),placeholder:"Filter by name or category...",className:"w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none"}),d.jsx("div",{className:"card overflow-x-auto",children:d.jsxs("table",{children:[d.jsx("thead",{children:d.jsxs("tr",{children:[d.jsx("th",{children:"Event"}),d.jsx("th",{children:"Category"}),d.jsx("th",{children:"Ticker"}),d.jsx("th",{children:"Markets"}),d.jsx("th",{children:"Action"})]})}),d.jsx("tbody",{children:m.length===0?d.jsx("tr",{children:d.jsx("td",{colSpan:5,className:"text-center text-gray-500 py-8",children:"No events found"})}):m.slice(0,50).map(v=>d.jsxs("tr",{children:[d.jsx("td",{className:"max-w-[300px]",children:d.jsx("span",{className:"truncate block font-medium",children:v.title})}),d.jsx("td",{children:d.jsx("span",{className:"badge bg-orange",children:v.category||"—"})}),d.jsx("td",{className:"font-mono text-xs text-gray-500",children:v.event_ticker}),d.jsx("td",{className:"text-sm",children:v.mutually_exclusive?"ME":"—"}),d.jsx("td",{children:d.jsx("button",{onClick:()=>b(v.event_ticker),className:"text-xs text-amber-400 hover:text-amber-300",children:"View Contracts"})})]},v.event_ticker))})]})}),o&&r.length>0&&d.jsxs("div",{className:"card",children:[d.jsxs("div",{className:"flex items-center justify-between mb-3",children:[d.jsxs("h2",{className:"font-semibold",children:["Contracts — ",o]}),d.jsx("button",{onClick:()=>{l(null),n([])},className:"text-xs text-gray-500 hover:text-gray-300",children:"Close"})]}),d.jsxs("table",{children:[d.jsx("thead",{children:d.jsxs("tr",{children:[d.jsx("th",{children:"Contract"}),d.jsx("th",{children:"Ticker"}),d.jsx("th",{children:"Yes Bid"}),d.jsx("th",{children:"Yes Ask"}),d.jsx("th",{children:"Volume"}),d.jsx("th",{children:"Book"})]})}),d.jsx("tbody",{children:r.map(v=>d.jsxs("tr",{children:[d.jsx("td",{className:"max-w-[250px]",children:d.jsx("span",{className:"truncate block text-sm",children:v.title||v.subtitle||v.ticker})}),d.jsx("td",{className:"font-mono text-xs text-gray-500",children:v.ticker}),d.jsxs("td",{className:"font-mono text-green-400",children:[v.yes_bid??"—","c"]}),d.jsxs("td",{className:"font-mono text-red-400",children:[v.yes_ask??"—","c"]}),d.jsx("td",{className:"font-mono text-gray-400",children:v.volume??"—"}),d.jsx("td",{children:d.jsx("button",{onClick:()=>g(v.ticker),className:"text-xs text-amber-400 hover:text-amber-300",children:"Orderbook"})})]},v.ticker))})]})]}),(s||f)&&d.jsxs("div",{className:"card",children:[d.jsxs("div",{className:"flex items-center justify-between mb-4",children:[d.jsxs("h2",{className:"font-semibold",children:["Orderbook — ",(s==null?void 0:s.ticker)||"..."]}),d.jsx("button",{onClick:()=>u(null),className:"text-xs text-gray-500 hover:text-gray-300",children:"Close"})]}),f?d.jsx("div",{className:"flex items-center justify-center h-32",children:d.jsx("div",{className:"animate-spin w-6 h-6 border-2 border-amber-500 border-t-transparent rounded-full"})}):s?d.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[d.jsxs("div",{children:[d.jsx("h3",{className:"text-sm font-medium text-green-400 mb-2",children:"YES Bids"}),d.jsxs("div",{className:"space-y-1",children:[d.jsxs("div",{className:"flex justify-between text-[10px] text-gray-500 uppercase px-2",children:[d.jsx("span",{children:"Price"}),d.jsx("span",{children:"Qty"})]}),(s.yes||[]).slice(0,10).map((v,x)=>d.jsxs("div",{className:"flex justify-between text-sm px-2 py-1 rounded relative overflow-hidden",children:[d.jsx("div",{className:"absolute inset-0 bg-green-500/10",style:{width:`${Math.min((v[1]||0)*2,100)}%`}}),d.jsxs("span",{className:"font-mono text-green-400 relative z-10",children:[v[0],"c"]}),d.jsx("span",{className:"font-mono text-gray-400 relative z-10",children:v[1]})]},x))]})]}),d.jsxs("div",{children:[d.jsx("h3",{className:"text-sm font-medium text-red-400 mb-2",children:"NO Bids"}),d.jsxs("div",{className:"space-y-1",children:[d.jsxs("div",{className:"flex justify-between text-[10px] text-gray-500 uppercase px-2",children:[d.jsx("span",{children:"Price"}),d.jsx("span",{children:"Qty"})]}),(s.no||[]).slice(0,10).map((v,x)=>d.jsxs("div",{className:"flex justify-between text-sm px-2 py-1 rounded relative overflow-hidden",children:[d.jsx("div",{className:"absolute inset-0 bg-red-500/10",style:{width:`${Math.min((v[1]||0)*2,100)}%`}}),d.jsxs("span",{className:"font-mono text-red-400 relative z-10",children:[v[0],"c"]}),d.jsx("span",{className:"font-mono text-gray-400 relative z-10",children:v[1]})]},x))]})]})]}):null]})]})}function kq(){const[e,t]=P.useState([]),[r,n]=P.useState(!0);P.useEffect(()=>{i();const o=setInterval(i,15e3);return()=>clearInterval(o)},[]);async function i(){try{const o=await de("/kalshi",{action:"get_positions"});t(o.market_positions||o.positions||[])}catch{}n(!1)}if(r)return d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})});const a=e.reduce((o,l)=>o+(l.realized_pnl||0),0);return d.jsxs("div",{className:"space-y-6",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsxs("div",{children:[d.jsx("h1",{className:"text-2xl font-bold",children:"Positions"}),d.jsxs("p",{className:"text-gray-500 text-sm",children:[e.length," active positions"]})]}),d.jsx("button",{onClick:i,className:"btn btn-o text-sm",children:"Refresh"})]}),d.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[d.jsxs("div",{className:"card",children:[d.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Positions"}),d.jsx("p",{className:"stat-v text-amber-400",children:e.length})]}),d.jsxs("div",{className:"card",children:[d.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Total Realized P&L"}),d.jsxs("p",{className:`stat-v ${a>=0?"text-green-400":"text-red-400"}`,children:["$",(a/1e4).toFixed(2)]})]}),d.jsxs("div",{className:"card",children:[d.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Fees Paid"}),d.jsxs("p",{className:"stat-v text-gray-400",children:["$",(e.reduce((o,l)=>o+(l.fees_paid||0),0)/1e4).toFixed(2)]})]})]}),d.jsx("div",{className:"card overflow-x-auto",children:d.jsxs("table",{children:[d.jsx("thead",{children:d.jsxs("tr",{children:[d.jsx("th",{children:"Ticker"}),d.jsx("th",{children:"Side"}),d.jsx("th",{children:"Contracts"}),d.jsx("th",{children:"Cost"}),d.jsx("th",{children:"Realized P&L"}),d.jsx("th",{children:"Fees"})]})}),d.jsx("tbody",{children:e.length===0?d.jsx("tr",{children:d.jsx("td",{colSpan:6,className:"text-center text-gray-500 py-8",children:"No open positions"})}):e.map((o,l)=>d.jsxs("tr",{children:[d.jsx("td",{className:"font-mono text-sm",children:o.ticker||o.market_ticker}),d.jsx("td",{children:(o.market_exposure||o.position)>0?d.jsx("span",{className:"badge bg-green",children:"YES"}):(o.market_exposure||o.position)<0?d.jsx("span",{className:"badge bg-red",children:"NO"}):d.jsx("span",{className:"text-gray-500",children:"—"})}),d.jsx("td",{className:"font-mono",children:Math.abs(o.market_exposure||o.position||0)}),d.jsxs("td",{className:"font-mono text-gray-400",children:["$",((o.position_cost||0)/1e4).toFixed(2)]}),d.jsxs("td",{className:`font-mono ${(o.realized_pnl||0)>=0?"text-green-400":"text-red-400"}`,children:["$",((o.realized_pnl||0)/1e4).toFixed(2)]}),d.jsxs("td",{className:"font-mono text-gray-400",children:["$",((o.fees_paid||0)/1e4).toFixed(2)]})]},l))})]})})]})}function $q(){const[e,t]=P.useState([]),[r,n]=P.useState([]),[i,a]=P.useState(!0),[o,l]=P.useState("orders");P.useEffect(()=>{s()},[]);async function s(){a(!0);try{const[f,c]=await Promise.all([de("/kalshi",{action:"get_orders"}),de("/kalshi",{action:"get_fills"})]);t(f.orders||[]),n(c.fills||[])}catch{}a(!1)}async function u(f){try{await de("/kalshi",{action:"cancel_order",order_id:f}),s()}catch{}}return i?d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})}):d.jsxs("div",{className:"space-y-6",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsxs("div",{children:[d.jsx("h1",{className:"text-2xl font-bold",children:"Orders & Fills"}),d.jsxs("p",{className:"text-gray-500 text-sm",children:[e.length," orders, ",r.length," fills"]})]}),d.jsx("button",{onClick:s,className:"btn btn-o text-sm",children:"Refresh"})]}),d.jsxs("div",{className:"flex gap-2",children:[d.jsxs("button",{onClick:()=>l("orders"),className:`btn text-sm ${o==="orders"?"btn-p":"btn-o"}`,children:["Orders (",e.length,")"]}),d.jsxs("button",{onClick:()=>l("fills"),className:`btn text-sm ${o==="fills"?"btn-p":"btn-o"}`,children:["Fills (",r.length,")"]})]}),o==="orders"?d.jsx("div",{className:"card overflow-x-auto",children:d.jsxs("table",{children:[d.jsx("thead",{children:d.jsxs("tr",{children:[d.jsx("th",{children:"Ticker"}),d.jsx("th",{children:"Side"}),d.jsx("th",{children:"Action"}),d.jsx("th",{children:"Type"}),d.jsx("th",{children:"Price"}),d.jsx("th",{children:"Qty"}),d.jsx("th",{children:"Filled"}),d.jsx("th",{children:"Status"}),d.jsx("th",{})]})}),d.jsx("tbody",{children:e.length===0?d.jsx("tr",{children:d.jsx("td",{colSpan:9,className:"text-center text-gray-500 py-8",children:"No orders"})}):e.map((f,c)=>d.jsxs("tr",{children:[d.jsx("td",{className:"font-mono text-xs",children:f.ticker}),d.jsx("td",{children:d.jsx("span",{className:`badge ${f.side==="yes"?"bg-green":"bg-red"}`,children:(f.side||"").toUpperCase()})}),d.jsx("td",{className:"text-xs text-gray-400",children:(f.action||"").toUpperCase()}),d.jsx("td",{className:"text-xs",children:f.type}),d.jsxs("td",{className:"font-mono",children:[f.yes_price||f.no_price||"—","c"]}),d.jsx("td",{className:"font-mono",children:f.count||f.remaining_count||0}),d.jsx("td",{className:"font-mono text-green-400",children:f.count-(f.remaining_count||0)}),d.jsx("td",{children:d.jsx("span",{className:`badge ${f.status==="resting"?"bg-blue":f.status==="filled"?"bg-green":f.status==="canceled"?"bg-red":"bg-yellow"}`,children:f.status})}),d.jsx("td",{children:f.status==="resting"&&d.jsx("button",{onClick:()=>u(f.order_id),className:"text-xs text-red-400 hover:text-red-300",children:"Cancel"})})]},c))})]})}):d.jsx("div",{className:"card overflow-x-auto",children:d.jsxs("table",{children:[d.jsx("thead",{children:d.jsxs("tr",{children:[d.jsx("th",{children:"Ticker"}),d.jsx("th",{children:"Side"}),d.jsx("th",{children:"Action"}),d.jsx("th",{children:"Price"}),d.jsx("th",{children:"Qty"}),d.jsx("th",{children:"Taker"}),d.jsx("th",{children:"Time"})]})}),d.jsx("tbody",{children:r.length===0?d.jsx("tr",{children:d.jsx("td",{colSpan:7,className:"text-center text-gray-500 py-8",children:"No fills"})}):r.map((f,c)=>d.jsxs("tr",{children:[d.jsx("td",{className:"font-mono text-xs",children:f.ticker}),d.jsx("td",{children:d.jsx("span",{className:`badge ${f.side==="yes"?"bg-green":"bg-red"}`,children:(f.side||"").toUpperCase()})}),d.jsx("td",{className:"text-xs text-gray-400",children:(f.action||"").toUpperCase()}),d.jsxs("td",{className:"font-mono",children:[f.yes_price||f.no_price||"—","c"]}),d.jsx("td",{className:"font-mono",children:f.count}),d.jsx("td",{children:f.is_taker?d.jsx("span",{className:"text-yellow-400 text-xs",children:"TAKER"}):d.jsx("span",{className:"text-green-400 text-xs",children:"MAKER"})}),d.jsx("td",{className:"text-xs text-gray-500",children:f.created_time?new Date(f.created_time).toLocaleString():"—"})]},c))})]})})]})}function Nq(){const[e,t]=P.useState(null),[r,n]=P.useState(!0);P.useEffect(()=>{i()},[]);async function i(){n(!0);try{const o=await de("/weather",{action:"get_data"});t(o)}catch{}n(!1)}async function a(){n(!0);try{const o=await de("/weather",{action:"fetch_all"});t(o)}catch{}n(!1)}return r?d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})}):d.jsxs("div",{className:"space-y-6",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsxs("div",{children:[d.jsx("h1",{className:"text-2xl font-bold",children:"Weather Data"}),d.jsx("p",{className:"text-gray-500 text-sm",children:"NWS settlement data for Kalshi weather contracts"})]}),d.jsx("button",{onClick:a,className:"btn btn-p text-sm",children:"Fetch Latest"})]}),d.jsx("div",{className:"grid grid-cols-4 gap-4",children:["Stations","Forecasts","Observations","Metrics"].map((o,l)=>d.jsxs("div",{className:"card",children:[d.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:o}),d.jsx("p",{className:"stat-v text-blue-400",children:(e==null?void 0:e[o.toLowerCase()])||"—"})]},o))}),d.jsxs("div",{className:"card",children:[d.jsx("h2",{className:"font-semibold mb-3",children:"Settlement Rule Reference"}),d.jsxs("div",{className:"grid grid-cols-2 gap-4 text-sm",children:[d.jsxs("div",{children:[d.jsx("p",{className:"text-gray-500 text-xs uppercase mb-2",children:"Temperature Contracts"}),d.jsxs("ul",{className:"space-y-1 text-xs text-gray-400",children:[d.jsx("li",{children:"Source: NWS Daily Climate Report (final)"}),d.jsx("li",{children:"Station: Market-specified (e.g. KORD, KLGA)"}),d.jsx("li",{children:"Values: Tmax/Tmin in degrees F"}),d.jsx("li",{children:"Missing data: treated as 0"})]})]}),d.jsxs("div",{children:[d.jsx("p",{className:"text-gray-500 text-xs uppercase mb-2",children:"Precipitation Contracts"}),d.jsxs("ul",{className:"space-y-1 text-xs text-gray-400",children:[d.jsx("li",{children:"Source: NWS Daily Climate Report (first complete)"}),d.jsx("li",{children:"Trace: counted as 0.00 inches"}),d.jsx("li",{children:"Missing: counted as 0.00 inches"}),d.jsx("li",{children:"Revisions: do NOT change settlement"})]})]})]})]}),((e==null?void 0:e.outcomes)||[]).length>0&&d.jsxs("div",{className:"card overflow-x-auto",children:[d.jsx("h2",{className:"font-semibold mb-3",children:"Recent Observations"}),d.jsxs("table",{children:[d.jsx("thead",{children:d.jsxs("tr",{children:[d.jsx("th",{children:"Station"}),d.jsx("th",{children:"Metric"}),d.jsx("th",{children:"Value"}),d.jsx("th",{children:"Source"}),d.jsx("th",{children:"Date"})]})}),d.jsx("tbody",{children:e.outcomes.map((o,l)=>d.jsxs("tr",{children:[d.jsx("td",{className:"font-mono text-sm",children:o.station_id}),d.jsx("td",{children:d.jsx("span",{className:"badge bg-blue",children:o.metric})}),d.jsxs("td",{className:"font-mono",children:[o.value,o.units]}),d.jsx("td",{className:"text-xs text-gray-400",children:o.source}),d.jsx("td",{className:"text-xs text-gray-400",children:o.period_end})]},l))})]})]})]})}function Tq(){const[e,t]=P.useState(null),[r,n]=P.useState(!0);P.useEffect(()=>{i()},[]);async function i(){try{const l=await de("/risk",{action:"get_config"});t(l)}catch{}n(!1)}async function a(){try{await de("/risk",{action:"update_config",safe_mode:!(e!=null&&e.safe_mode)}),i()}catch{}}if(r)return d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})});const o=e||{};return d.jsxs("div",{className:"space-y-6",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsxs("div",{children:[d.jsx("h1",{className:"text-2xl font-bold",children:"Risk Controls"}),d.jsx("p",{className:"text-gray-500 text-sm",children:"Trading limits and safety mechanisms"})]}),d.jsx("button",{onClick:a,className:`btn ${o.safe_mode?"btn-s":"btn-d"} text-sm`,children:o.safe_mode?"Disable Safe Mode":"Enable Safe Mode"})]}),o.safe_mode&&d.jsx("div",{className:"card bg-yellow-500/5 border-yellow-500/20",children:d.jsxs("div",{className:"flex items-center gap-3",children:[d.jsx("svg",{className:"w-6 h-6 text-yellow-400",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"})}),d.jsxs("div",{children:[d.jsx("p",{className:"text-sm font-medium text-yellow-400",children:"Safe Mode Active"}),d.jsx("p",{className:"text-xs text-gray-400",children:"All orders are paper-only. No real trades will be submitted to Kalshi."})]})]})}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsxs("div",{className:"card",children:[d.jsx("h2",{className:"font-semibold text-sm mb-3",children:"Position Limits"}),d.jsx("div",{className:"space-y-3",children:[{label:"Max Contracts / Market",value:o.max_contracts_per_market||20,unit:"contracts"},{label:"Max $ at Risk / Market",value:o.max_dollars_at_risk||100,unit:"$"},{label:"Max $ at Risk / Cluster",value:o.max_dollars_cluster||300,unit:"$"}].map(l=>d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("span",{className:"text-sm text-gray-400",children:l.label}),d.jsx("span",{className:"font-mono text-sm text-gray-200",children:l.unit==="$"?`$${l.value}`:l.value})]},l.label))})]}),d.jsxs("div",{className:"card",children:[d.jsx("h2",{className:"font-semibold text-sm mb-3",children:"Loss Controls"}),d.jsx("div",{className:"space-y-3",children:[{label:"Daily Loss Cap",value:o.daily_loss_cap||50,unit:"$"},{label:"Max Stale Market Data",value:o.max_stale_market||60,unit:"s"},{label:"Max Stale Weather Data",value:o.max_stale_weather||3600,unit:"s"}].map(l=>d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("span",{className:"text-sm text-gray-400",children:l.label}),d.jsx("span",{className:"font-mono text-sm text-gray-200",children:l.unit==="$"?`$${l.value}`:`${l.value}${l.unit}`})]},l.label))})]})]}),d.jsxs("div",{className:"card",children:[d.jsx("h2",{className:"font-semibold text-sm mb-3",children:"Current Profile"}),d.jsxs("div",{className:"flex items-center gap-4",children:[d.jsx("span",{className:`text-2xl font-bold ${o.risk_profile==="Conservative"?"text-blue-400":o.risk_profile==="Aggressive"?"text-red-400":"text-amber-400"}`,children:o.risk_profile||"Moderate"}),d.jsx("span",{className:"text-xs text-gray-500",children:"Change in Settings → Setup Wizard"})]})]}),d.jsxs("div",{className:"card",children:[d.jsx("h2",{className:"font-semibold text-sm mb-3",children:"Kalshi Exchange Rules"}),d.jsxs("div",{className:"grid grid-cols-2 gap-4 text-xs text-gray-400",children:[d.jsxs("ul",{className:"space-y-1",children:[d.jsx("li",{children:"Min order: 1 contract"}),d.jsx("li",{children:"Min price increment: $0.01"}),d.jsx("li",{children:"Prices: 1-99 cents (binary)"}),d.jsx("li",{children:"Collateral: USD (100 cents = $1)"})]}),d.jsxs("ul",{className:"space-y-1",children:[d.jsx("li",{children:"Maker orders: fee-exempt (resting)"}),d.jsx("li",{children:"Taker fees: vary by price tier"}),d.jsx("li",{children:"P&L values: in centi-cents (1/10000 $)"}),d.jsx("li",{children:"Rate limits: vary by API tier"})]})]})]})]})}function Cq(){const[e,t]=P.useState(null),[r,n]=P.useState(!0),[i,a]=P.useState(""),[o,l]=P.useState(""),[s,u]=P.useState("demo"),[f,c]=P.useState(!1),[p,h]=P.useState(null);P.useEffect(()=>{y()},[]);async function y(){try{const v=await de("/kalshi",{action:"status"});t(v),v.env&&u(v.env)}catch{}n(!1)}async function b(){c(!0),h(null);try{const v=await de("/kalshi",{action:"save_keys",api_key:i,private_key:o,env:s});v.success?(h({type:"ok",text:"Keys saved"}),y(),a(""),l("")):h({type:"err",text:v.error||"Failed"})}catch{h({type:"err",text:"Connection error"})}c(!1)}async function g(){try{await de("/kalshi",{action:"disconnect"}),y()}catch{}}async function m(){h(null);try{const v=await de("/kalshi",{action:"test_connection"});h({type:v.success?"ok":"err",text:v.success?`Connected! Exchange: ${v.exchange_status}`:"Connection failed"})}catch{h({type:"err",text:"Connection error"})}}return r?d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full"})}):d.jsxs("div",{className:"space-y-6",children:[d.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),d.jsxs("div",{className:"card",children:[d.jsxs("div",{className:"flex items-center gap-4 mb-3",children:[d.jsx("span",{className:`w-3 h-3 rounded-full ${e!=null&&e.connected?"bg-green-500 pulse-g":"bg-gray-600"}`}),d.jsx("h2",{className:"font-semibold",children:"Kalshi API Connection"})]}),e!=null&&e.connected?d.jsxs("div",{className:"space-y-2 text-sm",children:[d.jsxs("div",{className:"flex justify-between",children:[d.jsx("span",{className:"text-gray-500",children:"API Key"}),d.jsx("span",{className:"font-mono text-gray-300",children:e.api_key_masked||"***"})]}),d.jsxs("div",{className:"flex justify-between",children:[d.jsx("span",{className:"text-gray-500",children:"Environment"}),d.jsx("span",{className:e.env==="prod"?"text-green-400":"text-yellow-400",children:(e.env||"demo").toUpperCase()})]}),d.jsxs("div",{className:"flex gap-2 mt-3",children:[d.jsx("button",{onClick:m,className:"btn btn-o text-sm",children:"Test Connection"}),d.jsx("button",{onClick:g,className:"btn btn-d text-sm",children:"Disconnect"})]})]}):d.jsxs("div",{className:"space-y-4",children:[d.jsxs("div",{className:"flex gap-2",children:[d.jsx("button",{onClick:()=>u("demo"),className:`flex-1 py-2 rounded-lg text-sm font-medium transition ${s==="demo"?"bg-yellow-500/15 text-yellow-400 border border-yellow-500/30":"bg-gray-800/50 text-gray-500 border border-gray-700"}`,children:"Demo"}),d.jsx("button",{onClick:()=>u("prod"),className:`flex-1 py-2 rounded-lg text-sm font-medium transition ${s==="prod"?"bg-green-500/15 text-green-400 border border-green-500/30":"bg-gray-800/50 text-gray-500 border border-gray-700"}`,children:"Production"})]}),d.jsxs("div",{children:[d.jsx("label",{className:"block text-xs text-gray-400 mb-1",children:"API Key ID"}),d.jsx("input",{type:"text",value:i,onChange:v=>a(v.target.value),placeholder:"Your API key",className:"w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none font-mono"})]}),d.jsxs("div",{children:[d.jsx("label",{className:"block text-xs text-gray-400 mb-1",children:"Private Key (PEM)"}),d.jsx("textarea",{value:o,onChange:v=>l(v.target.value),placeholder:"-----BEGIN RSA PRIVATE KEY-----",rows:4,className:"w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none font-mono text-xs"})]}),d.jsx("button",{onClick:b,disabled:f||!i,className:"btn btn-p w-full",children:f?"Saving...":"Save & Connect"})]}),p&&d.jsx("p",{className:`text-xs mt-2 ${p.type==="ok"?"text-green-400":"text-red-400"}`,children:p.text})]}),d.jsxs("div",{className:"card",children:[d.jsx("h2",{className:"font-semibold mb-3",children:"Kalshi API Reference"}),d.jsxs("div",{className:"grid grid-cols-2 gap-4 text-xs text-gray-400",children:[d.jsxs("div",{children:[d.jsx("p",{className:"text-gray-500 uppercase mb-1 font-medium",children:"Environments"}),d.jsxs("p",{children:["Demo: ",d.jsx("span",{className:"font-mono text-amber-400",children:"demo-api.kalshi.co"})]}),d.jsxs("p",{children:["Prod: ",d.jsx("span",{className:"font-mono text-green-400",children:"api.elections.kalshi.com"})]})]}),d.jsxs("div",{children:[d.jsx("p",{className:"text-gray-500 uppercase mb-1 font-medium",children:"Auth"}),d.jsx("p",{children:"Method: RSA-PSS + SHA-256"}),d.jsx("p",{children:"Headers: KALSHI-ACCESS-KEY, TIMESTAMP, SIGNATURE"})]})]})]})]})}function Mq(){return d.jsx(vE,{children:d.jsxs(sE,{children:[d.jsx(qt,{path:"/login",element:d.jsx(jE,{})}),d.jsx(qt,{path:"/setup",element:d.jsx(RE,{})}),d.jsxs(qt,{path:"/",element:d.jsx(PE,{}),children:[d.jsx(qt,{index:!0,element:d.jsx(Aq,{})}),d.jsx(qt,{path:"markets",element:d.jsx(Eq,{})}),d.jsx(qt,{path:"positions",element:d.jsx(kq,{})}),d.jsx(qt,{path:"orders",element:d.jsx($q,{})}),d.jsx(qt,{path:"weather",element:d.jsx(Nq,{})}),d.jsx(qt,{path:"risk",element:d.jsx(Tq,{})}),d.jsx(qt,{path:"settings",element:d.jsx(Cq,{})})]})]})})}cd.createRoot(document.getElementById("root")).render(d.jsx(Mq,{}));
diff --git a/kalshi-dash/dist/index.html b/kalshi-dash/dist/index.html
new file mode 100644
index 0000000..eb2dca8
--- /dev/null
+++ b/kalshi-dash/dist/index.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <title>Kalshi - Event Contracts Trading</title>
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet" />
+ <script type="module" crossorigin src="/assets/index-R455jfx-.js"></script>
+ <link rel="stylesheet" crossorigin href="/assets/index-BjOCoYyH.css">
+</head>
+<body>
+ <div id="root"></div>
+</body>
+</html>
diff --git a/kalshi-dash/index.html b/kalshi-dash/index.html
new file mode 100644
index 0000000..76536d0
--- /dev/null
+++ b/kalshi-dash/index.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <title>Kalshi - Event Contracts Trading</title>
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet" />
+</head>
+<body>
+ <div id="root"></div>
+ <script type="module" src="/src/main.jsx"></script>
+</body>
+</html>
diff --git a/kalshi-dash/package-lock.json b/kalshi-dash/package-lock.json
new file mode 100644
index 0000000..05cab5c
--- /dev/null
+++ b/kalshi-dash/package-lock.json
@@ -0,0 +1,3444 @@
+{
+ "name": "kalshi-dash",
+ "version": "1.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "kalshi-dash",
+ "version": "1.0.0",
+ "dependencies": {
+ "google-auth-library": "^9.0.0",
+ "pg": "^8.11.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "react-router-dom": "^6.20.0",
+ "recharts": "^2.10.0"
+ },
+ "devDependencies": {
+ "@types/react": "^18.2.0",
+ "@vitejs/plugin-react": "^4.2.0",
+ "autoprefixer": "^10.4.0",
+ "postcss": "^8.4.0",
+ "tailwindcss": "^3.4.0",
+ "vite": "^5.0.0"
+ }
+ },
+ "node_modules/@alloc/quick-lru": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
+ "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz",
+ "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
+ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helpers": "^7.28.6",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/remapping": "^2.3.5",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.29.1",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
+ "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/gen-mapping": "^0.3.12",
+ "@jridgewell/trace-mapping": "^0.3.28",
+ "jsesc": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
+ "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.28.6",
+ "@babel/helper-validator-option": "^7.27.1",
+ "browserslist": "^4.24.0",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-globals": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
+ "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
+ "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "@babel/traverse": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
+ "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz",
+ "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz",
+ "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.29.0"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-self": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",
+ "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-source": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",
+ "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz",
+ "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
+ "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.28.6",
+ "@babel/parser": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
+ "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-globals": "^7.28.0",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0",
+ "debug": "^4.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
+ "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.28.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
+ "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
+ "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
+ "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
+ "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
+ "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
+ "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
+ "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
+ "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
+ "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
+ "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
+ "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
+ "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
+ "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
+ "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
+ "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
+ "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
+ "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
+ "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@remix-run/router": {
+ "version": "1.23.2",
+ "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz",
+ "integrity": "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@rolldown/pluginutils": {
+ "version": "1.0.0-beta.27",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz",
+ "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz",
+ "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz",
+ "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz",
+ "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz",
+ "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz",
+ "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz",
+ "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz",
+ "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz",
+ "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz",
+ "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz",
+ "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz",
+ "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-musl": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz",
+ "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz",
+ "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-musl": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz",
+ "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz",
+ "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz",
+ "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz",
+ "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz",
+ "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz",
+ "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-openbsd-x64": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz",
+ "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-openharmony-arm64": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz",
+ "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz",
+ "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz",
+ "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz",
+ "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz",
+ "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
+ "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
+ "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.28.2"
+ }
+ },
+ "node_modules/@types/d3-array": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz",
+ "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-color": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
+ "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-ease": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",
+ "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-interpolate": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
+ "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-color": "*"
+ }
+ },
+ "node_modules/@types/d3-path": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz",
+ "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-scale": {
+ "version": "4.0.9",
+ "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz",
+ "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-time": "*"
+ }
+ },
+ "node_modules/@types/d3-shape": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz",
+ "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-path": "*"
+ }
+ },
+ "node_modules/@types/d3-time": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
+ "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-timer": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
+ "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.15",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz",
+ "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/react": {
+ "version": "18.3.28",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz",
+ "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "csstype": "^3.2.2"
+ }
+ },
+ "node_modules/@vitejs/plugin-react": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz",
+ "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.28.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.27.1",
+ "@babel/plugin-transform-react-jsx-source": "^7.27.1",
+ "@rolldown/pluginutils": "1.0.0-beta.27",
+ "@types/babel__core": "^7.20.5",
+ "react-refresh": "^0.17.0"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
+ }
+ },
+ "node_modules/agent-base": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/autoprefixer": {
+ "version": "10.4.24",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.24.tgz",
+ "integrity": "sha512-uHZg7N9ULTVbutaIsDRoUkoS8/h3bdsmVJYZ5l3wv8Cp/6UIIoRDm90hZ+BwxUj/hGBEzLxdHNSKuFpn8WOyZw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.28.1",
+ "caniuse-lite": "^1.0.30001766",
+ "fraction.js": "^5.3.4",
+ "picocolors": "^1.1.1",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.9.19",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz",
+ "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.js"
+ }
+ },
+ "node_modules/bignumber.js": {
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz",
+ "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
+ "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "baseline-browser-mapping": "^2.9.0",
+ "caniuse-lite": "^1.0.30001759",
+ "electron-to-chromium": "^1.5.263",
+ "node-releases": "^2.0.27",
+ "update-browserslist-db": "^1.2.0"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/buffer-equal-constant-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/camelcase-css": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001769",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001769.tgz",
+ "integrity": "sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chokidar/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/commander": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
+ "license": "MIT"
+ },
+ "node_modules/d3-array": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
+ "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
+ "license": "ISC",
+ "dependencies": {
+ "internmap": "1 - 2"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-color": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
+ "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-ease": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
+ "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-format": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz",
+ "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-interpolate": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
+ "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-path": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
+ "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-scale": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
+ "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2.10.0 - 3",
+ "d3-format": "1 - 3",
+ "d3-interpolate": "1.2.0 - 3",
+ "d3-time": "2.1.1 - 3",
+ "d3-time-format": "2 - 4"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-shape": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
+ "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-path": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
+ "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time-format": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
+ "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-time": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-timer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
+ "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decimal.js-light": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz",
+ "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==",
+ "license": "MIT"
+ },
+ "node_modules/didyoumean": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/dlv": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/dom-helpers": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
+ "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.8.7",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/ecdsa-sig-formatter": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.286",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz",
+ "integrity": "sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/esbuild": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.21.5",
+ "@esbuild/android-arm": "0.21.5",
+ "@esbuild/android-arm64": "0.21.5",
+ "@esbuild/android-x64": "0.21.5",
+ "@esbuild/darwin-arm64": "0.21.5",
+ "@esbuild/darwin-x64": "0.21.5",
+ "@esbuild/freebsd-arm64": "0.21.5",
+ "@esbuild/freebsd-x64": "0.21.5",
+ "@esbuild/linux-arm": "0.21.5",
+ "@esbuild/linux-arm64": "0.21.5",
+ "@esbuild/linux-ia32": "0.21.5",
+ "@esbuild/linux-loong64": "0.21.5",
+ "@esbuild/linux-mips64el": "0.21.5",
+ "@esbuild/linux-ppc64": "0.21.5",
+ "@esbuild/linux-riscv64": "0.21.5",
+ "@esbuild/linux-s390x": "0.21.5",
+ "@esbuild/linux-x64": "0.21.5",
+ "@esbuild/netbsd-x64": "0.21.5",
+ "@esbuild/openbsd-x64": "0.21.5",
+ "@esbuild/sunos-x64": "0.21.5",
+ "@esbuild/win32-arm64": "0.21.5",
+ "@esbuild/win32-ia32": "0.21.5",
+ "@esbuild/win32-x64": "0.21.5"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+ "license": "MIT"
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "license": "MIT"
+ },
+ "node_modules/fast-equals": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.4.0.tgz",
+ "integrity": "sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
+ "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fraction.js": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz",
+ "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/rawify"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gaxios": {
+ "version": "6.7.1",
+ "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz",
+ "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "extend": "^3.0.2",
+ "https-proxy-agent": "^7.0.1",
+ "is-stream": "^2.0.0",
+ "node-fetch": "^2.6.9",
+ "uuid": "^9.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/gcp-metadata": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz",
+ "integrity": "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "gaxios": "^6.1.1",
+ "google-logging-utils": "^0.0.2",
+ "json-bigint": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/google-auth-library": {
+ "version": "9.15.1",
+ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz",
+ "integrity": "sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "base64-js": "^1.3.0",
+ "ecdsa-sig-formatter": "^1.0.11",
+ "gaxios": "^6.1.1",
+ "gcp-metadata": "^6.1.0",
+ "gtoken": "^7.0.0",
+ "jws": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/google-logging-utils": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz",
+ "integrity": "sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/gtoken": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz",
+ "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==",
+ "license": "MIT",
+ "dependencies": {
+ "gaxios": "^6.0.0",
+ "jws": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/https-proxy-agent": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "^7.1.2",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/internmap": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
+ "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/jiti": {
+ "version": "1.21.7",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
+ "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jiti": "bin/jiti.js"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "license": "MIT"
+ },
+ "node_modules/jsesc": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json-bigint": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
+ "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "bignumber.js": "^9.0.0"
+ }
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jwa": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz",
+ "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer-equal-constant-time": "^1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/jws": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz",
+ "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==",
+ "license": "MIT",
+ "dependencies": {
+ "jwa": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/lilconfig": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
+ "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antonk52"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash": {
+ "version": "4.17.23",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
+ "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
+ "license": "MIT"
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
+ },
+ "node_modules/mz": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.27",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
+ "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-hash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/pg": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/pg/-/pg-8.18.0.tgz",
+ "integrity": "sha512-xqrUDL1b9MbkydY/s+VZ6v+xiMUmOUk7SS9d/1kpyQxoJ6U9AO1oIJyUWVZojbfe5Cc/oluutcgFG4L9RDP1iQ==",
+ "license": "MIT",
+ "dependencies": {
+ "pg-connection-string": "^2.11.0",
+ "pg-pool": "^3.11.0",
+ "pg-protocol": "^1.11.0",
+ "pg-types": "2.2.0",
+ "pgpass": "1.0.5"
+ },
+ "engines": {
+ "node": ">= 16.0.0"
+ },
+ "optionalDependencies": {
+ "pg-cloudflare": "^1.3.0"
+ },
+ "peerDependencies": {
+ "pg-native": ">=3.0.1"
+ },
+ "peerDependenciesMeta": {
+ "pg-native": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/pg-cloudflare": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.3.0.tgz",
+ "integrity": "sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/pg-connection-string": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.11.0.tgz",
+ "integrity": "sha512-kecgoJwhOpxYU21rZjULrmrBJ698U2RxXofKVzOn5UDj61BPj/qMb7diYUR1nLScCDbrztQFl1TaQZT0t1EtzQ==",
+ "license": "MIT"
+ },
+ "node_modules/pg-int8": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
+ "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/pg-pool": {
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.11.0.tgz",
+ "integrity": "sha512-MJYfvHwtGp870aeusDh+hg9apvOe2zmpZJpyt+BMtzUWlVqbhFmMK6bOBXLBUPd7iRtIF9fZplDc7KrPN3PN7w==",
+ "license": "MIT",
+ "peerDependencies": {
+ "pg": ">=8.0"
+ }
+ },
+ "node_modules/pg-protocol": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.11.0.tgz",
+ "integrity": "sha512-pfsxk2M9M3BuGgDOfuy37VNRRX3jmKgMjcvAcWqNDpZSf4cUmv8HSOl5ViRQFsfARFn0KuUQTgLxVMbNq5NW3g==",
+ "license": "MIT"
+ },
+ "node_modules/pg-types": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
+ "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
+ "license": "MIT",
+ "dependencies": {
+ "pg-int8": "1.0.1",
+ "postgres-array": "~2.0.0",
+ "postgres-bytea": "~1.0.0",
+ "postgres-date": "~1.0.4",
+ "postgres-interval": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pgpass": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz",
+ "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==",
+ "license": "MIT",
+ "dependencies": {
+ "split2": "^4.1.0"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
+ "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-import": {
+ "version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
+ "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
+ }
+ },
+ "node_modules/postcss-js": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz",
+ "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "camelcase-css": "^2.0.1"
+ },
+ "engines": {
+ "node": "^12 || ^14 || >= 16"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.21"
+ }
+ },
+ "node_modules/postcss-load-config": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz",
+ "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "lilconfig": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "jiti": ">=1.21.0",
+ "postcss": ">=8.0.9",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "jiti": {
+ "optional": true
+ },
+ "postcss": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/postcss-nested": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
+ "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "^6.1.1"
+ },
+ "engines": {
+ "node": ">=12.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.14"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
+ "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postgres-array": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
+ "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postgres-bytea": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.1.tgz",
+ "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/postgres-date": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
+ "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/postgres-interval": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
+ "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
+ "license": "MIT",
+ "dependencies": {
+ "xtend": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "node_modules/prop-types/node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "license": "MIT"
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/react": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
+ "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
+ "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.2"
+ },
+ "peerDependencies": {
+ "react": "^18.3.1"
+ }
+ },
+ "node_modules/react-is": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
+ "license": "MIT"
+ },
+ "node_modules/react-refresh": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz",
+ "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-router": {
+ "version": "6.30.3",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.3.tgz",
+ "integrity": "sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==",
+ "license": "MIT",
+ "dependencies": {
+ "@remix-run/router": "1.23.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8"
+ }
+ },
+ "node_modules/react-router-dom": {
+ "version": "6.30.3",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz",
+ "integrity": "sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==",
+ "license": "MIT",
+ "dependencies": {
+ "@remix-run/router": "1.23.2",
+ "react-router": "6.30.3"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8",
+ "react-dom": ">=16.8"
+ }
+ },
+ "node_modules/react-smooth": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz",
+ "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-equals": "^5.0.1",
+ "prop-types": "^15.8.1",
+ "react-transition-group": "^4.4.5"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/react-transition-group": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
+ "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@babel/runtime": "^7.5.5",
+ "dom-helpers": "^5.0.1",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.6.0",
+ "react-dom": ">=16.6.0"
+ }
+ },
+ "node_modules/read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pify": "^2.3.0"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/recharts": {
+ "version": "2.15.4",
+ "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.4.tgz",
+ "integrity": "sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==",
+ "license": "MIT",
+ "dependencies": {
+ "clsx": "^2.0.0",
+ "eventemitter3": "^4.0.1",
+ "lodash": "^4.17.21",
+ "react-is": "^18.3.1",
+ "react-smooth": "^4.0.4",
+ "recharts-scale": "^0.4.4",
+ "tiny-invariant": "^1.3.1",
+ "victory-vendor": "^36.6.8"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/recharts-scale": {
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz",
+ "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==",
+ "license": "MIT",
+ "dependencies": {
+ "decimal.js-light": "^2.4.1"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.11",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
+ "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.16.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz",
+ "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.8"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.57.1",
+ "@rollup/rollup-android-arm64": "4.57.1",
+ "@rollup/rollup-darwin-arm64": "4.57.1",
+ "@rollup/rollup-darwin-x64": "4.57.1",
+ "@rollup/rollup-freebsd-arm64": "4.57.1",
+ "@rollup/rollup-freebsd-x64": "4.57.1",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.57.1",
+ "@rollup/rollup-linux-arm-musleabihf": "4.57.1",
+ "@rollup/rollup-linux-arm64-gnu": "4.57.1",
+ "@rollup/rollup-linux-arm64-musl": "4.57.1",
+ "@rollup/rollup-linux-loong64-gnu": "4.57.1",
+ "@rollup/rollup-linux-loong64-musl": "4.57.1",
+ "@rollup/rollup-linux-ppc64-gnu": "4.57.1",
+ "@rollup/rollup-linux-ppc64-musl": "4.57.1",
+ "@rollup/rollup-linux-riscv64-gnu": "4.57.1",
+ "@rollup/rollup-linux-riscv64-musl": "4.57.1",
+ "@rollup/rollup-linux-s390x-gnu": "4.57.1",
+ "@rollup/rollup-linux-x64-gnu": "4.57.1",
+ "@rollup/rollup-linux-x64-musl": "4.57.1",
+ "@rollup/rollup-openbsd-x64": "4.57.1",
+ "@rollup/rollup-openharmony-arm64": "4.57.1",
+ "@rollup/rollup-win32-arm64-msvc": "4.57.1",
+ "@rollup/rollup-win32-ia32-msvc": "4.57.1",
+ "@rollup/rollup-win32-x64-gnu": "4.57.1",
+ "@rollup/rollup-win32-x64-msvc": "4.57.1",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/scheduler": {
+ "version": "0.23.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
+ "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
+ },
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/split2": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">= 10.x"
+ }
+ },
+ "node_modules/sucrase": {
+ "version": "3.35.1",
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz",
+ "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "commander": "^4.0.0",
+ "lines-and-columns": "^1.1.6",
+ "mz": "^2.7.0",
+ "pirates": "^4.0.1",
+ "tinyglobby": "^0.2.11",
+ "ts-interface-checker": "^0.1.9"
+ },
+ "bin": {
+ "sucrase": "bin/sucrase",
+ "sucrase-node": "bin/sucrase-node"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/tailwindcss": {
+ "version": "3.4.19",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz",
+ "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@alloc/quick-lru": "^5.2.0",
+ "arg": "^5.0.2",
+ "chokidar": "^3.6.0",
+ "didyoumean": "^1.2.2",
+ "dlv": "^1.1.3",
+ "fast-glob": "^3.3.2",
+ "glob-parent": "^6.0.2",
+ "is-glob": "^4.0.3",
+ "jiti": "^1.21.7",
+ "lilconfig": "^3.1.3",
+ "micromatch": "^4.0.8",
+ "normalize-path": "^3.0.0",
+ "object-hash": "^3.0.0",
+ "picocolors": "^1.1.1",
+ "postcss": "^8.4.47",
+ "postcss-import": "^15.1.0",
+ "postcss-js": "^4.0.1",
+ "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0",
+ "postcss-nested": "^6.2.0",
+ "postcss-selector-parser": "^6.1.2",
+ "resolve": "^1.22.8",
+ "sucrase": "^3.35.0"
+ },
+ "bin": {
+ "tailwind": "lib/cli.js",
+ "tailwindcss": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/thenify": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "any-promise": "^1.0.0"
+ }
+ },
+ "node_modules/thenify-all": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "thenify": ">= 3.1.0 < 4"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/tiny-invariant": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
+ "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
+ "license": "MIT"
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.15",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
+ "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "license": "MIT"
+ },
+ "node_modules/ts-interface-checker": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+ "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/uuid": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/victory-vendor": {
+ "version": "36.9.2",
+ "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz",
+ "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==",
+ "license": "MIT AND ISC",
+ "dependencies": {
+ "@types/d3-array": "^3.0.3",
+ "@types/d3-ease": "^3.0.0",
+ "@types/d3-interpolate": "^3.0.1",
+ "@types/d3-scale": "^4.0.2",
+ "@types/d3-shape": "^3.1.0",
+ "@types/d3-time": "^3.0.0",
+ "@types/d3-timer": "^3.0.0",
+ "d3-array": "^3.1.6",
+ "d3-ease": "^3.0.1",
+ "d3-interpolate": "^3.0.1",
+ "d3-scale": "^4.0.2",
+ "d3-shape": "^3.1.0",
+ "d3-time": "^3.0.0",
+ "d3-timer": "^3.0.1"
+ }
+ },
+ "node_modules/vite": {
+ "version": "5.4.21",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz",
+ "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.21.3",
+ "postcss": "^8.4.43",
+ "rollup": "^4.20.0"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || >=20.0.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true,
+ "license": "ISC"
+ }
+ }
+}
diff --git a/kalshi-dash/package.json b/kalshi-dash/package.json
new file mode 100644
index 0000000..ed24c96
--- /dev/null
+++ b/kalshi-dash/package.json
@@ -0,0 +1,26 @@
+{
+ "name": "kalshi-dash",
+ "version": "1.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "react-router-dom": "^6.20.0",
+ "recharts": "^2.10.0",
+ "pg": "^8.11.0",
+ "google-auth-library": "^9.0.0"
+ },
+ "devDependencies": {
+ "@vitejs/plugin-react": "^4.2.0",
+ "vite": "^5.0.0",
+ "tailwindcss": "^3.4.0",
+ "postcss": "^8.4.0",
+ "autoprefixer": "^10.4.0",
+ "@types/react": "^18.2.0"
+ }
+}
diff --git a/kalshi-dash/postcss.config.js b/kalshi-dash/postcss.config.js
new file mode 100644
index 0000000..2aa7205
--- /dev/null
+++ b/kalshi-dash/postcss.config.js
@@ -0,0 +1,6 @@
+export default {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+};
diff --git a/kalshi-dash/server.js b/kalshi-dash/server.js
new file mode 100644
index 0000000..d9a4b66
--- /dev/null
+++ b/kalshi-dash/server.js
@@ -0,0 +1,889 @@
+import http from 'http';
+import fs from 'fs';
+import path from 'path';
+import { fileURLToPath } from 'url';
+import pg from 'pg';
+import crypto from 'crypto';
+import { OAuth2Client } from 'google-auth-library';
+
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = path.dirname(__filename);
+
+const PORT = 7810;
+const DIST = path.join(__dirname, 'dist');
+
+// ── Unified DW Auth Config ──
+const AUTH_USER = 'admin';
+const AUTH_PASS = 'DWSecure2024!';
+const SESSION_COOKIE = 'kalshi_session';
+const SESSION_MAX_AGE = 30 * 24 * 60 * 60; // 30 days in seconds
+const WHITELISTED_IPS = ['127.0.0.1', '::1', '45.61.58.125', 'localhost'];
+
+// ── Google OAuth Config ──
+const GOOGLE_CLIENT_ID = process.env.GOOGLE_CLIENT_ID || '';
+const ALLOWED_EMAILS = (process.env.ALLOWED_EMAILS || '').split(',').filter(Boolean);
+const googleClient = GOOGLE_CLIENT_ID ? new OAuth2Client(GOOGLE_CLIENT_ID) : null;
+
+// ── Kalshi API Config ──
+const KALSHI_ENV = (process.env.KALSHI_ENV || 'demo').toLowerCase();
+const KALSHI_BASE_URLS = {
+ demo: 'https://demo-api.kalshi.co/trade-api/v2',
+ prod: 'https://api.elections.kalshi.com/trade-api/v2',
+};
+const KALSHI_BASE_URL = KALSHI_BASE_URLS[KALSHI_ENV] || KALSHI_BASE_URLS.demo;
+
+// ── Database ──
+const pool = new pg.Pool({
+ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/bertha_betting',
+ max: 10,
+ idleTimeoutMillis: 30000,
+});
+
+const MIME = {
+ '.html': 'text/html', '.js': 'application/javascript', '.css': 'text/css',
+ '.json': 'application/json', '.png': 'image/png', '.svg': 'image/svg+xml',
+ '.ico': 'image/x-icon', '.woff2': 'font/woff2', '.woff': 'font/woff',
+ '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg', '.gif': 'image/gif',
+ '.webp': 'image/webp', '.map': 'application/json', '.txt': 'text/plain',
+};
+
+// ── DB Helper ──
+async function q(text, params) {
+ return pool.query(text, params);
+}
+
+// ── Response Helper ──
+function json(res, data, status = 200, extraHeaders = {}) {
+ res.writeHead(status, {
+ 'Content-Type': 'application/json',
+ 'Access-Control-Allow-Origin': '*',
+ 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
+ 'Access-Control-Allow-Headers': 'Content-Type, Authorization',
+ ...extraHeaders,
+ });
+ res.end(JSON.stringify(data));
+}
+
+// ── Body Parser ──
+async function readBody(req) {
+ return new Promise(resolve => {
+ let d = '';
+ req.on('data', c => d += c);
+ req.on('end', () => { try { resolve(JSON.parse(d)); } catch { resolve({}); } });
+ });
+}
+
+// ── Cookie / Session Helpers ──
+function parseCookies(req) {
+ const obj = {};
+ (req.headers.cookie || '').split(';').forEach(c => {
+ const [k, ...v] = c.trim().split('=');
+ if (k) obj[k] = v.join('=');
+ });
+ return obj;
+}
+
+function getSession(req) {
+ const cookies = parseCookies(req);
+ const token = cookies[SESSION_COOKIE];
+ if (!token) return null;
+ try {
+ const data = JSON.parse(Buffer.from(decodeURIComponent(token), 'base64').toString());
+ if (!data.authenticated) return null;
+ const age = Date.now() - data.loginTime;
+ if (age > SESSION_MAX_AGE * 1000) return null;
+ return data;
+ } catch { return null; }
+}
+
+function getClientIP(req) {
+ return req.headers['x-forwarded-for']?.split(',')[0]?.trim() || req.socket.remoteAddress || '';
+}
+
+function isWhitelistedIP(req) {
+ const ip = getClientIP(req);
+ return WHITELISTED_IPS.some(w => ip.includes(w));
+}
+
+function hasBasicAuth(req) {
+ const auth = req.headers.authorization;
+ if (!auth || !auth.startsWith('Basic ')) return false;
+ const [user, pass] = Buffer.from(auth.split(' ')[1], 'base64').toString().split(':');
+ return user === AUTH_USER && pass === AUTH_PASS;
+}
+
+function isAuthenticated(req) {
+ if (isWhitelistedIP(req)) return true;
+ if (hasBasicAuth(req)) return true;
+ if (getSession(req)) return true;
+ return false;
+}
+
+function setSessionCookie(res, sessionToken) {
+ return `${SESSION_COOKIE}=${encodeURIComponent(sessionToken)}; Path=/; HttpOnly; SameSite=Lax; Max-Age=${SESSION_MAX_AGE}`;
+}
+
+function clearSessionCookie() {
+ return `${SESSION_COOKIE}=; Path=/; HttpOnly; SameSite=Lax; Max-Age=0`;
+}
+
+// ── Kalshi API Signing ──
+// RSA-PSS with SHA-256, salt length 32
+// Signs: timestamp_ms_string + method_uppercase + path
+function signKalshiRequest(privateKeyPem, timestampMs, method, requestPath) {
+ const message = timestampMs + method.toUpperCase() + requestPath;
+ const signature = crypto.sign('sha256', Buffer.from(message), {
+ key: privateKeyPem,
+ padding: crypto.constants.RSA_PKCS1_PSS_PADDING,
+ saltLength: 32,
+ });
+ return signature.toString('base64');
+}
+
+// ── Kalshi Authenticated Fetch ──
+async function kalshiFetch(method, apiPath, body = null) {
+ // Load keys from DB
+ const result = await q('SELECT config FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const cfg = result.rows[0]?.config || {};
+
+ const apiKey = cfg.kalshi_api_key;
+ const privateKeyPem = cfg.kalshi_private_key;
+
+ if (!apiKey || !privateKeyPem) {
+ throw new Error('Kalshi API keys not configured. Please save your API key and private key first.');
+ }
+
+ const timestampMs = Date.now().toString();
+ // The path for signing is everything after the base domain, starting with /trade-api/v2
+ const basePath = KALSHI_ENV === 'prod' ? '/trade-api/v2' : '/trade-api/v2';
+ const fullSignPath = basePath + apiPath;
+ const signature = signKalshiRequest(privateKeyPem, timestampMs, method, fullSignPath);
+
+ const url = KALSHI_BASE_URL + apiPath;
+ const headers = {
+ 'KALSHI-ACCESS-KEY': apiKey,
+ 'KALSHI-ACCESS-TIMESTAMP': timestampMs,
+ 'KALSHI-ACCESS-SIGNATURE': signature,
+ 'Content-Type': 'application/json',
+ 'Accept': 'application/json',
+ };
+
+ const fetchOpts = { method, headers };
+ if (body && method !== 'GET' && method !== 'DELETE') {
+ fetchOpts.body = JSON.stringify(body);
+ }
+
+ const response = await fetch(url, fetchOpts);
+ const text = await response.text();
+
+ let data;
+ try {
+ data = JSON.parse(text);
+ } catch {
+ data = { raw: text };
+ }
+
+ if (!response.ok) {
+ const errMsg = data?.message || data?.error || data?.raw || `HTTP ${response.status}`;
+ throw new Error(`Kalshi API error (${response.status}): ${errMsg}`);
+ }
+
+ return data;
+}
+
+// ── Kalshi Unauthenticated Fetch (for public endpoints) ──
+async function kalshiPublicFetch(method, apiPath) {
+ const url = KALSHI_BASE_URL + apiPath;
+ const response = await fetch(url, {
+ method,
+ headers: { 'Accept': 'application/json' },
+ });
+ const text = await response.text();
+
+ let data;
+ try {
+ data = JSON.parse(text);
+ } catch {
+ data = { raw: text };
+ }
+
+ if (!response.ok) {
+ const errMsg = data?.message || data?.error || data?.raw || `HTTP ${response.status}`;
+ throw new Error(`Kalshi API error (${response.status}): ${errMsg}`);
+ }
+
+ return data;
+}
+
+// ── Build query string from params object ──
+function buildQueryString(params) {
+ if (!params || Object.keys(params).length === 0) return '';
+ const qs = Object.entries(params)
+ .filter(([, v]) => v !== undefined && v !== null && v !== '')
+ .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`)
+ .join('&');
+ return qs ? `?${qs}` : '';
+}
+
+// ── API Route Handlers ──
+const routes = {
+
+ // ════════════════════════════════════════
+ // AUTH ENDPOINTS (same DW pattern)
+ // ════════════════════════════════════════
+
+ 'POST /api/auth/login': async (req, res) => {
+ const body = await readBody(req);
+ if (body.username === AUTH_USER && body.password === AUTH_PASS) {
+ const sessionData = { authenticated: true, username: AUTH_USER, loginTime: Date.now() };
+ const token = Buffer.from(JSON.stringify(sessionData)).toString('base64');
+ json(res, { success: true, message: 'Login successful', username: AUTH_USER }, 200, {
+ 'Set-Cookie': setSessionCookie(res, token),
+ });
+ } else {
+ json(res, { error: 'Invalid credentials' }, 401);
+ }
+ },
+
+ 'POST /api/auth/logout': async (req, res) => {
+ json(res, { success: true, message: 'Logged out successfully' }, 200, {
+ 'Set-Cookie': clearSessionCookie(),
+ });
+ },
+
+ 'GET /api/auth/session': async (req, res) => {
+ if (isWhitelistedIP(req)) {
+ return json(res, { authenticated: true, username: AUTH_USER, bypassReason: 'whitelisted_ip' });
+ }
+ if (hasBasicAuth(req)) {
+ return json(res, { authenticated: true, username: AUTH_USER, bypassReason: 'basic_auth' });
+ }
+ const session = getSession(req);
+ if (session) {
+ return json(res, {
+ authenticated: true,
+ username: session.username,
+ email: session.email,
+ picture: session.picture,
+ provider: session.provider,
+ loginTime: session.loginTime,
+ });
+ }
+ json(res, { authenticated: false }, 401);
+ },
+
+ 'POST /api/auth/google': async (req, res) => {
+ if (!googleClient) return json(res, { error: 'Google OAuth not configured' }, 400);
+ const body = await readBody(req);
+ if (!body.credential) return json(res, { error: 'Missing credential' }, 400);
+ try {
+ const ticket = await googleClient.verifyIdToken({ idToken: body.credential, audience: GOOGLE_CLIENT_ID });
+ const payload = ticket.getPayload();
+ const email = payload.email;
+ if (!payload.email_verified) return json(res, { error: 'Email not verified' }, 401);
+ if (ALLOWED_EMAILS.length > 0 && !ALLOWED_EMAILS.includes(email)) {
+ return json(res, { error: 'Email not authorized' }, 403);
+ }
+ const sessionData = {
+ authenticated: true,
+ username: payload.name || email,
+ email,
+ picture: payload.picture,
+ provider: 'google',
+ loginTime: Date.now(),
+ };
+ const token = Buffer.from(JSON.stringify(sessionData)).toString('base64');
+ json(res, { success: true, username: payload.name || email, email, picture: payload.picture }, 200, {
+ 'Set-Cookie': setSessionCookie(res, token),
+ });
+ } catch (err) {
+ json(res, { error: 'Invalid Google token', details: err.message }, 401);
+ }
+ },
+
+ 'GET /api/auth/google-config': async (req, res) => {
+ json(res, { client_id: GOOGLE_CLIENT_ID || null, configured: !!GOOGLE_CLIENT_ID });
+ },
+
+ // ════════════════════════════════════════
+ // HEALTH
+ // ════════════════════════════════════════
+
+ 'GET /api/health': async (req, res) => {
+ try {
+ const dbCheck = await q('SELECT 1');
+ const risk = await q('SELECT * FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const cfg = risk.rows[0]?.config || {};
+
+ // Test Kalshi connection
+ let kalshiConnected = false;
+ let balance = null;
+ if (cfg.kalshi_api_key && cfg.kalshi_private_key) {
+ try {
+ const balData = await kalshiFetch('GET', '/portfolio/balance');
+ kalshiConnected = true;
+ balance = balData.balance ?? balData;
+ } catch {
+ // Keys exist but connection failed
+ kalshiConnected = false;
+ }
+ }
+
+ json(res, {
+ status: 'ok',
+ db_connected: !!dbCheck,
+ kalshi_connected: kalshiConnected,
+ env: KALSHI_ENV,
+ safe_mode: cfg.safe_mode ?? true,
+ balance,
+ });
+ } catch (err) {
+ json(res, { status: 'error', error: err.message }, 500);
+ }
+ },
+
+ // ════════════════════════════════════════
+ // KALSHI PROXY (all actions via POST)
+ // ════════════════════════════════════════
+
+ 'POST /api/kalshi': async (req, res) => {
+ const body = await readBody(req);
+ const { action } = body;
+
+ if (!action) {
+ return json(res, { error: 'Missing action field' }, 400);
+ }
+
+ try {
+ switch (action) {
+
+ // ── Save API Keys ──
+ case 'save_keys': {
+ if (!body.api_key || !body.private_key) {
+ return json(res, { error: 'api_key and private_key (PEM) required' }, 400);
+ }
+ const current = await q('SELECT * FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const row = current.rows[0] || {};
+ const newConfig = {
+ ...row.config,
+ kalshi_api_key: body.api_key,
+ kalshi_private_key: body.private_key,
+ kalshi_connected: true,
+ kalshi_connected_at: new Date().toISOString(),
+ kalshi_env: KALSHI_ENV,
+ };
+ await q('UPDATE risk_state SET config = $1, updated_at = NOW() WHERE id = $2', [
+ JSON.stringify(newConfig), row.id,
+ ]);
+ json(res, {
+ success: true,
+ api_key: body.api_key.substring(0, 12) + '...',
+ env: KALSHI_ENV,
+ message: 'Kalshi API keys saved',
+ });
+ break;
+ }
+
+ // ── Test Connection ──
+ case 'test_connection': {
+ try {
+ const data = await kalshiPublicFetch('GET', '/exchange/status');
+ json(res, { success: true, exchange_status: data, env: KALSHI_ENV });
+ } catch (err) {
+ json(res, { success: false, error: err.message }, 500);
+ }
+ break;
+ }
+
+ // ── Get Balance ──
+ case 'get_balance': {
+ const data = await kalshiFetch('GET', '/portfolio/balance');
+ json(res, { success: true, balance: data });
+ break;
+ }
+
+ // ── Get Markets (public) ──
+ case 'get_markets': {
+ const params = {};
+ if (body.category) params.category = body.category;
+ if (body.status) params.status = body.status;
+ if (body.limit) params.limit = body.limit;
+ if (body.cursor) params.cursor = body.cursor;
+ if (body.series_ticker) params.series_ticker = body.series_ticker;
+ if (body.event_ticker) params.event_ticker = body.event_ticker;
+ const qs = buildQueryString(params);
+ const data = await kalshiPublicFetch('GET', `/markets${qs}`);
+ json(res, { success: true, ...data });
+ break;
+ }
+
+ // ── Get Single Market ──
+ case 'get_market': {
+ if (!body.ticker) return json(res, { error: 'ticker required' }, 400);
+ const data = await kalshiPublicFetch('GET', `/markets/${encodeURIComponent(body.ticker)}`);
+ json(res, { success: true, market: data });
+ break;
+ }
+
+ // ── Get Orderbook ──
+ case 'get_orderbook': {
+ if (!body.ticker) return json(res, { error: 'ticker required' }, 400);
+ const qs = body.depth ? `?depth=${body.depth}` : '';
+ const data = await kalshiPublicFetch('GET', `/markets/${encodeURIComponent(body.ticker)}/orderbook${qs}`);
+ json(res, { success: true, orderbook: data });
+ break;
+ }
+
+ // ── Get Trades (public market trades) ──
+ case 'get_trades': {
+ if (!body.ticker) return json(res, { error: 'ticker required' }, 400);
+ const params = {};
+ if (body.limit) params.limit = body.limit;
+ if (body.cursor) params.cursor = body.cursor;
+ const qs = buildQueryString(params);
+ const data = await kalshiPublicFetch('GET', `/markets/${encodeURIComponent(body.ticker)}/trades${qs}`);
+ json(res, { success: true, ...data });
+ break;
+ }
+
+ // ── Get Events ──
+ case 'get_events': {
+ const params = {};
+ if (body.status) params.status = body.status;
+ if (body.limit) params.limit = body.limit;
+ if (body.cursor) params.cursor = body.cursor;
+ if (body.series_ticker) params.series_ticker = body.series_ticker;
+ if (body.with_nested_markets !== undefined) params.with_nested_markets = body.with_nested_markets;
+ const qs = buildQueryString(params);
+ const data = await kalshiPublicFetch('GET', `/events${qs}`);
+ json(res, { success: true, ...data });
+ break;
+ }
+
+ // ── Get Single Event ──
+ case 'get_event': {
+ if (!body.event_ticker) return json(res, { error: 'event_ticker required' }, 400);
+ const qs = body.with_nested_markets ? '?with_nested_markets=true' : '';
+ const data = await kalshiPublicFetch('GET', `/events/${encodeURIComponent(body.event_ticker)}${qs}`);
+ json(res, { success: true, event: data });
+ break;
+ }
+
+ // ── Get Series ──
+ case 'get_series': {
+ if (!body.series_ticker) return json(res, { error: 'series_ticker required' }, 400);
+ const data = await kalshiPublicFetch('GET', `/series/${encodeURIComponent(body.series_ticker)}`);
+ json(res, { success: true, series: data });
+ break;
+ }
+
+ // ── Get Positions (auth required) ──
+ case 'get_positions': {
+ const params = {};
+ if (body.limit) params.limit = body.limit;
+ if (body.cursor) params.cursor = body.cursor;
+ if (body.settlement_status) params.settlement_status = body.settlement_status;
+ if (body.ticker) params.ticker = body.ticker;
+ if (body.event_ticker) params.event_ticker = body.event_ticker;
+ const qs = buildQueryString(params);
+ const data = await kalshiFetch('GET', `/portfolio/positions${qs}`);
+ json(res, { success: true, ...data });
+ break;
+ }
+
+ // ── Get Fills (auth required) ──
+ case 'get_fills': {
+ const params = {};
+ if (body.limit) params.limit = body.limit;
+ if (body.cursor) params.cursor = body.cursor;
+ if (body.ticker) params.ticker = body.ticker;
+ if (body.order_id) params.order_id = body.order_id;
+ const qs = buildQueryString(params);
+ const data = await kalshiFetch('GET', `/portfolio/fills${qs}`);
+ json(res, { success: true, ...data });
+ break;
+ }
+
+ // ── Get Orders (auth required) ──
+ case 'get_orders': {
+ const params = {};
+ if (body.limit) params.limit = body.limit;
+ if (body.cursor) params.cursor = body.cursor;
+ if (body.ticker) params.ticker = body.ticker;
+ if (body.status) params.status = body.status;
+ const qs = buildQueryString(params);
+ const data = await kalshiFetch('GET', `/portfolio/orders${qs}`);
+ json(res, { success: true, ...data });
+ break;
+ }
+
+ // ── Create Order (auth required) ──
+ case 'create_order': {
+ if (!body.ticker || !body.side || !body.action || !body.type || !body.count) {
+ return json(res, { error: 'ticker, side, action, type, and count are required' }, 400);
+ }
+ const orderPayload = {
+ ticker: body.ticker,
+ side: body.side, // 'yes' or 'no'
+ action: body.action, // 'buy' or 'sell'
+ type: body.type, // 'limit' or 'market'
+ count: body.count,
+ };
+ if (body.yes_price !== undefined) orderPayload.yes_price = body.yes_price;
+ if (body.no_price !== undefined) orderPayload.no_price = body.no_price;
+ if (body.client_order_id) orderPayload.client_order_id = body.client_order_id;
+ if (body.time_in_force) orderPayload.time_in_force = body.time_in_force;
+ if (body.expiration_ts) orderPayload.expiration_ts = body.expiration_ts;
+
+ const data = await kalshiFetch('POST', '/portfolio/orders', orderPayload);
+ json(res, { success: true, order: data });
+ break;
+ }
+
+ // ── Cancel Order (auth required) ──
+ case 'cancel_order': {
+ if (!body.order_id) return json(res, { error: 'order_id required' }, 400);
+ const data = await kalshiFetch('DELETE', `/portfolio/orders/${encodeURIComponent(body.order_id)}`);
+ json(res, { success: true, result: data });
+ break;
+ }
+
+ // ── Get Single Order (auth required) ──
+ case 'get_order': {
+ if (!body.order_id) return json(res, { error: 'order_id required' }, 400);
+ const data = await kalshiFetch('GET', `/portfolio/orders/${encodeURIComponent(body.order_id)}`);
+ json(res, { success: true, order: data });
+ break;
+ }
+
+ // ── Disconnect: remove keys from config ──
+ case 'disconnect': {
+ const current = await q('SELECT * FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const row = current.rows[0] || {};
+ const newConfig = {
+ ...row.config,
+ kalshi_api_key: null,
+ kalshi_private_key: null,
+ kalshi_connected: false,
+ kalshi_connected_at: null,
+ };
+ await q('UPDATE risk_state SET config = $1, updated_at = NOW() WHERE id = $2', [
+ JSON.stringify(newConfig), row.id,
+ ]);
+ json(res, { success: true, message: 'Kalshi keys removed, disconnected' });
+ break;
+ }
+
+ // ── Status: show current connection config (masked) ──
+ case 'status': {
+ const current = await q('SELECT config FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const cfg = current.rows[0]?.config || {};
+ json(res, {
+ connected: !!cfg.kalshi_connected,
+ api_key: cfg.kalshi_api_key ? cfg.kalshi_api_key.substring(0, 12) + '...' : null,
+ has_private_key: !!cfg.kalshi_private_key,
+ connected_at: cfg.kalshi_connected_at || null,
+ env: KALSHI_ENV,
+ });
+ break;
+ }
+
+ default:
+ json(res, {
+ error: `Unknown action: ${action}`,
+ available_actions: [
+ 'save_keys', 'test_connection', 'get_balance',
+ 'get_markets', 'get_market', 'get_orderbook', 'get_trades',
+ 'get_events', 'get_event', 'get_series',
+ 'get_positions', 'get_fills', 'get_orders',
+ 'create_order', 'cancel_order', 'get_order',
+ 'disconnect', 'status',
+ ],
+ }, 400);
+ }
+ } catch (err) {
+ json(res, { success: false, error: err.message }, 500);
+ }
+ },
+
+ // ════════════════════════════════════════
+ // WEATHER ENDPOINTS
+ // ════════════════════════════════════════
+
+ 'POST /api/weather': async (req, res) => {
+ const body = await readBody(req);
+
+ if (body.action === 'fetch_all') {
+ // Stub: returns mock success for now
+ // In production, this would call NWS API endpoints
+ json(res, {
+ success: true,
+ message: 'Weather data fetch stub - NWS integration pending',
+ stations: [],
+ forecasts: [],
+ fetched_at: new Date().toISOString(),
+ });
+ } else {
+ json(res, { error: `Unknown weather action: ${body.action}` }, 400);
+ }
+ },
+
+ // ════════════════════════════════════════
+ // RISK ENDPOINTS
+ // ════════════════════════════════════════
+
+ 'POST /api/risk': async (req, res) => {
+ const body = await readBody(req);
+
+ try {
+ const current = await q('SELECT * FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const row = current.rows[0] || {};
+ const cfg = row.config || {};
+
+ if (body.action === 'get_config') {
+ json(res, {
+ success: true,
+ config: {
+ safe_mode: cfg.safe_mode ?? true,
+ max_position_size: cfg.max_position_size ?? 100,
+ max_daily_loss: cfg.max_daily_loss ?? 50,
+ max_open_orders: cfg.max_open_orders ?? 10,
+ max_exposure: cfg.max_exposure ?? 500,
+ stop_loss_pct: cfg.stop_loss_pct ?? 20,
+ auto_hedge: cfg.auto_hedge ?? false,
+ allowed_categories: cfg.allowed_categories ?? [],
+ kill_switch_active: row.kill_switch_active || false,
+ kill_reason: row.kill_reason || null,
+ bankroll: parseFloat(row.bankroll || 0),
+ daily_pnl: parseFloat(row.daily_pnl || 0),
+ open_exposure: parseFloat(row.open_exposure || 0),
+ },
+ });
+ } else if (body.action === 'update_config') {
+ if (!body.config || typeof body.config !== 'object') {
+ return json(res, { error: 'config object required' }, 400);
+ }
+ const newConfig = { ...cfg, ...body.config };
+ await q('UPDATE risk_state SET config = $1, updated_at = NOW() WHERE id = $2', [
+ JSON.stringify(newConfig), row.id,
+ ]);
+
+ // Also update top-level risk fields if provided
+ if (body.config.kill_switch_active !== undefined) {
+ await q('UPDATE risk_state SET kill_switch_active = $1, kill_reason = $2, updated_at = NOW() WHERE id = $3', [
+ body.config.kill_switch_active,
+ body.config.kill_reason || null,
+ row.id,
+ ]);
+ }
+
+ const updated = await q('SELECT * FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const u = updated.rows[0] || {};
+ json(res, {
+ success: true,
+ message: 'Risk config updated',
+ config: u.config || {},
+ });
+ } else {
+ json(res, { error: `Unknown risk action: ${body.action}` }, 400);
+ }
+ } catch (err) {
+ json(res, { success: false, error: err.message }, 500);
+ }
+ },
+
+ // ════════════════════════════════════════
+ // PAPER TRADING
+ // ════════════════════════════════════════
+
+ 'POST /api/paper': async (req, res) => {
+ const body = await readBody(req);
+
+ try {
+ const current = await q('SELECT * FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const row = current.rows[0] || {};
+ const cfg = row.config || {};
+ const paperTrades = cfg.paper_trades || [];
+
+ if (body.action === 'submit_order') {
+ if (!body.ticker || !body.side || !body.count) {
+ return json(res, { error: 'ticker, side, and count required' }, 400);
+ }
+
+ const orderId = `paper_${Date.now()}_${Math.random().toString(36).substring(2, 8)}`;
+ const fillPrice = body.yes_price || body.no_price || body.price || 50; // cents
+
+ const paperOrder = {
+ order_id: orderId,
+ ticker: body.ticker,
+ side: body.side, // 'yes' or 'no'
+ action: body.action_type || 'buy',
+ type: body.type || 'market',
+ count: body.count,
+ price: fillPrice,
+ cost: fillPrice * body.count, // in cents
+ status: 'filled',
+ created_at: new Date().toISOString(),
+ filled_at: new Date().toISOString(),
+ is_paper: true,
+ };
+
+ paperTrades.push(paperOrder);
+
+ const newConfig = { ...cfg, paper_trades: paperTrades };
+ await q('UPDATE risk_state SET config = $1, updated_at = NOW() WHERE id = $2', [
+ JSON.stringify(newConfig), row.id,
+ ]);
+
+ json(res, { success: true, order: paperOrder, message: 'Paper order filled' });
+
+ } else if (body.action === 'get_positions') {
+ // Aggregate paper trades into positions
+ const positionMap = {};
+ for (const trade of paperTrades) {
+ const key = `${trade.ticker}_${trade.side}`;
+ if (!positionMap[key]) {
+ positionMap[key] = {
+ ticker: trade.ticker,
+ side: trade.side,
+ total_contracts: 0,
+ avg_price: 0,
+ total_cost: 0,
+ trades: 0,
+ };
+ }
+ const pos = positionMap[key];
+ if (trade.action === 'buy') {
+ pos.total_cost += trade.price * trade.count;
+ pos.total_contracts += trade.count;
+ } else {
+ pos.total_cost -= trade.price * trade.count;
+ pos.total_contracts -= trade.count;
+ }
+ pos.trades++;
+ pos.avg_price = pos.total_contracts > 0
+ ? Math.round(pos.total_cost / pos.total_contracts)
+ : 0;
+ }
+
+ const positions = Object.values(positionMap).filter(p => p.total_contracts !== 0);
+ json(res, { success: true, positions, is_paper: true });
+
+ } else if (body.action === 'get_fills') {
+ // Return paper trade history
+ const limit = body.limit || 50;
+ const fills = paperTrades.slice(-limit).reverse();
+ json(res, { success: true, fills, total: paperTrades.length, is_paper: true });
+
+ } else if (body.action === 'clear') {
+ // Clear all paper trades
+ const newConfig = { ...cfg, paper_trades: [] };
+ await q('UPDATE risk_state SET config = $1, updated_at = NOW() WHERE id = $2', [
+ JSON.stringify(newConfig), row.id,
+ ]);
+ json(res, { success: true, message: 'Paper trades cleared' });
+
+ } else {
+ json(res, { error: `Unknown paper action: ${body.action}` }, 400);
+ }
+ } catch (err) {
+ json(res, { success: false, error: err.message }, 500);
+ }
+ },
+};
+
+// ════════════════════════════════════════
+// HTTP SERVER
+// ════════════════════════════════════════
+
+const server = http.createServer(async (req, res) => {
+ // CORS preflight
+ if (req.method === 'OPTIONS') {
+ res.writeHead(200, {
+ 'Access-Control-Allow-Origin': '*',
+ 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
+ 'Access-Control-Allow-Headers': 'Content-Type, Authorization',
+ });
+ res.end();
+ return;
+ }
+
+ // Route key for matching
+ const urlPath = req.url.split('?')[0];
+ const routeKey = `${req.method} ${urlPath}`;
+
+ // Public endpoints (no auth required)
+ const publicPaths = [
+ '/api/auth/login',
+ '/api/auth/logout',
+ '/api/auth/session',
+ '/api/auth/google',
+ '/api/auth/google-config',
+ '/api/health',
+ ];
+ const isPublic = publicPaths.includes(urlPath);
+
+ // Enforce auth on all other API routes
+ if (!isPublic && urlPath.startsWith('/api/') && !isAuthenticated(req)) {
+ return json(res, { error: 'Authentication required' }, 401);
+ }
+
+ // Check route handlers
+ if (routes[routeKey]) {
+ try {
+ await routes[routeKey](req, res);
+ } catch (err) {
+ console.error(`[ERROR] ${routeKey}:`, err.message);
+ json(res, { error: err.message }, 500);
+ }
+ return;
+ }
+
+ // Unknown API route
+ if (urlPath.startsWith('/api/')) {
+ return json(res, { error: `Unknown API endpoint: ${req.method} ${urlPath}` }, 404);
+ }
+
+ // ── Serve Static Files / SPA Routing ──
+ let filePath = path.join(DIST, urlPath === '/' ? 'index.html' : urlPath);
+
+ // Security: prevent directory traversal
+ if (!filePath.startsWith(DIST)) {
+ res.writeHead(403);
+ res.end('Forbidden');
+ return;
+ }
+
+ // Check if file exists; if not, serve index.html for SPA routing
+ if (!fs.existsSync(filePath) || fs.statSync(filePath).isDirectory()) {
+ filePath = path.join(DIST, 'index.html');
+ }
+
+ try {
+ const content = fs.readFileSync(filePath);
+ const ext = path.extname(filePath);
+ const contentType = MIME[ext] || 'application/octet-stream';
+
+ // Cache static assets (hashed filenames from Vite)
+ const cacheHeader = ext === '.html'
+ ? 'no-cache, no-store, must-revalidate'
+ : 'public, max-age=31536000, immutable';
+
+ res.writeHead(200, {
+ 'Content-Type': contentType,
+ 'Cache-Control': cacheHeader,
+ });
+ res.end(content);
+ } catch {
+ res.writeHead(404);
+ res.end('Not found');
+ }
+});
+
+// ── Start Server ──
+server.listen(PORT, '0.0.0.0', () => {
+ console.log(`[Kalshi Dash] Server running on http://0.0.0.0:${PORT}`);
+ console.log(`[Kalshi Dash] Kalshi environment: ${KALSHI_ENV.toUpperCase()} (${KALSHI_BASE_URL})`);
+ console.log(`[Kalshi Dash] Static files: ${DIST}`);
+ console.log(`[Kalshi Dash] Auth: session cookie + IP whitelist + basic auth`);
+});
diff --git a/kalshi-dash/src/Layout.jsx b/kalshi-dash/src/Layout.jsx
new file mode 100644
index 0000000..8b93c1c
--- /dev/null
+++ b/kalshi-dash/src/Layout.jsx
@@ -0,0 +1,73 @@
+import React, { useState, useEffect } from 'react';
+import { Outlet, Link, useLocation, useNavigate } from 'react-router-dom';
+import { api, checkSession, logout } from './api';
+
+const NAV = [
+ { to: '/', label: 'Dashboard', d: 'M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6' },
+ { to: '/markets', label: 'Markets', d: 'M13 7h8m0 0v8m0-8l-8 8-4-4-6 6' },
+ { to: '/positions', label: 'Positions', d: 'M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z' },
+ { to: '/orders', label: 'Orders', d: 'M8 7h12m0 0l-4-4m4 4l-4 4m0 6H4m0 0l4 4m-4-4l4-4' },
+ { to: '/weather', label: 'Weather', d: 'M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z' },
+ { to: '/risk', label: 'Risk', d: 'M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z' },
+ { to: '/settings', label: 'Settings', d: 'M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z' },
+];
+
+export default function Layout() {
+ const loc = useLocation();
+ const nav = useNavigate();
+ const [h, setH] = useState(null);
+ const [col, setCol] = useState(false);
+ const [authChecked, setAuthChecked] = useState(false);
+
+ useEffect(() => {
+ checkSession().then(ok => {
+ if (!ok) { nav('/login'); return; }
+ setAuthChecked(true);
+ const load = () => api('/health').then(setH).catch(() => {});
+ load();
+ const i = setInterval(load, 15000);
+ return () => clearInterval(i);
+ });
+ }, []);
+
+ if (!authChecked) return <div className="flex items-center justify-center min-h-screen"><div className="animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full" /></div>;
+
+ return (
+ <div className="flex min-h-screen">
+ <aside className={`${col ? 'w-16' : 'w-56'} bg-gray-900/50 border-r border-gray-800 flex flex-col transition-all duration-200`}>
+ <div className="p-4 border-b border-gray-800 flex items-center gap-3">
+ <div className="w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0" style={{ background: 'linear-gradient(135deg,#f59e0b,#f97316)' }}>
+ <span className="text-black font-bold text-sm">K</span>
+ </div>
+ {!col && <span className="font-bold text-sm kalshi-gradient">KALSHI TRADER</span>}
+ </div>
+ <nav className="flex-1 p-2 space-y-0.5">
+ {NAV.map(n => {
+ const active = loc.pathname === n.to || (n.to !== '/' && loc.pathname.startsWith(n.to));
+ return (
+ <Link key={n.to} to={n.to} className={`flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition ${active ? 'bg-amber-500/15 text-amber-400 font-medium' : 'text-gray-400 hover:text-gray-200 hover:bg-gray-800/50'}`}>
+ <svg className="flex-shrink-0" style={{ width: 18, height: 18 }} fill="none" stroke="currentColor" strokeWidth="1.5" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d={n.d} /></svg>
+ {!col && <span>{n.label}</span>}
+ </Link>
+ );
+ })}
+ </nav>
+ <div className="p-3 border-t border-gray-800">
+ {!col && h && <div className="space-y-1.5 text-[11px]">
+ <div className="flex justify-between"><span className="text-gray-500">Env</span><span className={h.env === 'demo' ? 'text-yellow-400' : 'text-green-400'}>{(h.env || 'demo').toUpperCase()}</span></div>
+ <div className="flex justify-between"><span className="text-gray-500">API</span><span className={h.kalshi_connected ? 'text-green-400' : 'text-gray-500'}>{h.kalshi_connected ? 'CONNECTED' : 'OFF'}</span></div>
+ <div className="flex justify-between"><span className="text-gray-500">DB</span><span className={h.db_connected ? 'text-green-400' : 'text-red-400'}>{h.db_connected ? 'OK' : 'DOWN'}</span></div>
+ <div className="flex justify-between"><span className="text-gray-500">Safe Mode</span><span className={h.safe_mode ? 'text-yellow-400' : 'text-green-400'}>{h.safe_mode ? 'ON' : 'OFF'}</span></div>
+ </div>}
+ <div className="flex gap-1 mt-2">
+ <button onClick={() => setCol(!col)} className="flex-1 flex items-center justify-center py-1.5 text-gray-500 hover:text-gray-300">
+ <svg className={`w-4 h-4 transition-transform ${col ? '' : 'rotate-180'}`} fill="none" stroke="currentColor" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M11 19l-7-7 7-7m8 14l-7-7 7-7" /></svg>
+ </button>
+ {!col && <button onClick={logout} className="px-2 py-1 text-xs text-gray-500 hover:text-red-400">Logout</button>}
+ </div>
+ </div>
+ </aside>
+ <main className="flex-1 overflow-auto"><div className="p-6 max-w-[1600px] mx-auto"><Outlet /></div></main>
+ </div>
+ );
+}
diff --git a/kalshi-dash/src/Login.jsx b/kalshi-dash/src/Login.jsx
new file mode 100644
index 0000000..a6e3c2e
--- /dev/null
+++ b/kalshi-dash/src/Login.jsx
@@ -0,0 +1,121 @@
+import React, { useState, useEffect, useRef } from 'react';
+import { useNavigate } from 'react-router-dom';
+import { login, checkSession, googleLogin, getGoogleConfig } from './api';
+
+export default function Login() {
+ const [user, setUser] = useState('');
+ const [pass, setPass] = useState('');
+ const [showPass, setShowPass] = useState(false);
+ const [err, setErr] = useState('');
+ const [loading, setLoading] = useState(false);
+ const [checking, setChecking] = useState(true);
+ const [googleReady, setGoogleReady] = useState(false);
+ const [googleClientId, setGoogleClientId] = useState(null);
+ const googleBtnRef = useRef(null);
+ const nav = useNavigate();
+
+ useEffect(() => {
+ checkSession().then(ok => { if (ok) nav('/'); else setChecking(false); });
+ getGoogleConfig().then(cfg => {
+ if (cfg.configured && cfg.client_id) {
+ setGoogleClientId(cfg.client_id);
+ loadGoogleScript(cfg.client_id);
+ }
+ });
+ }, []);
+
+ function loadGoogleScript(clientId) {
+ if (document.getElementById('google-gsi')) { initGoogle(clientId); return; }
+ const s = document.createElement('script');
+ s.id = 'google-gsi'; s.src = 'https://accounts.google.com/gsi/client';
+ s.async = true; s.defer = true;
+ s.onload = () => initGoogle(clientId);
+ document.head.appendChild(s);
+ }
+
+ function initGoogle(clientId) {
+ if (!window.google?.accounts?.id) return;
+ window.google.accounts.id.initialize({ client_id: clientId, callback: handleGoogleResponse, auto_select: false });
+ setGoogleReady(true);
+ }
+
+ useEffect(() => {
+ if (googleReady && googleBtnRef.current && window.google?.accounts?.id) {
+ window.google.accounts.id.renderButton(googleBtnRef.current, {
+ type: 'standard', theme: 'filled_black', size: 'large', text: 'signin_with', shape: 'pill', width: 360,
+ });
+ }
+ }, [googleReady]);
+
+ async function handleGoogleResponse(response) {
+ setErr(''); setLoading(true);
+ try {
+ const r = await googleLogin(response.credential);
+ if (r.success) nav('/'); else setErr(r.error || 'Google login failed');
+ } catch { setErr('Connection error'); }
+ setLoading(false);
+ }
+
+ async function submit(e) {
+ e.preventDefault(); setErr(''); setLoading(true);
+ try {
+ const ok = await login(user, pass);
+ if (ok) nav('/'); else setErr('Invalid credentials');
+ } catch { setErr('Connection error'); }
+ setLoading(false);
+ }
+
+ if (checking) return <div className="min-h-screen flex items-center justify-center"><div className="animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full" /></div>;
+
+ return (
+ <div className="min-h-screen flex items-center justify-center p-4">
+ <div className="w-full max-w-md">
+ <div className="text-center mb-8">
+ <div className="inline-flex items-center justify-center w-20 h-20 rounded-2xl mb-4" style={{ background: 'linear-gradient(135deg,#f59e0b,#f97316)' }}>
+ <span className="text-3xl font-black text-black">K</span>
+ </div>
+ <h1 className="text-3xl font-extrabold kalshi-gradient">KALSHI TRADER</h1>
+ <p className="text-gray-400 mt-2 text-sm">Event Contracts Trading System</p>
+ <p className="text-xs text-green-400 mt-1">CFTC-Regulated DCM</p>
+ </div>
+
+ {err && <div className="text-red-400 text-sm bg-red-500/10 rounded-lg p-3 flex items-center gap-2 mb-4">
+ <svg className="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" /></svg>
+ {err}
+ </div>}
+
+ {googleClientId && (
+ <div className="mb-4">
+ <div ref={googleBtnRef} className="flex justify-center" />
+ <div className="relative my-5">
+ <div className="absolute inset-0 flex items-center"><div className="w-full border-t border-gray-800" /></div>
+ <div className="relative flex justify-center text-xs"><span className="px-3 text-gray-500" style={{ background: 'var(--bg)' }}>or sign in with password</span></div>
+ </div>
+ </div>
+ )}
+
+ <form onSubmit={submit} className="card space-y-4">
+ <div>
+ <label className="block text-xs font-medium text-gray-400 mb-1.5">Username</label>
+ <input type="text" value={user} onChange={e => setUser(e.target.value)} required autoComplete="username" className="w-full bg-gray-800/50 border border-gray-700 rounded-lg px-3 py-2.5 text-sm focus:outline-none focus:border-amber-500 transition" placeholder="admin" />
+ </div>
+ <div>
+ <label className="block text-xs font-medium text-gray-400 mb-1.5">Password</label>
+ <div className="relative">
+ <input type={showPass ? 'text' : 'password'} value={pass} onChange={e => setPass(e.target.value)} required autoComplete="current-password" className="w-full bg-gray-800/50 border border-gray-700 rounded-lg px-3 py-2.5 pr-10 text-sm focus:outline-none focus:border-amber-500 transition" placeholder="Enter password" />
+ <button type="button" onClick={() => setShowPass(!showPass)} className="absolute right-3 top-1/2 -translate-y-1/2 text-gray-500 hover:text-gray-300">
+ <svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d={showPass ? 'M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.878 9.878L3 3m6.878 6.879L21 21' : 'M15 12a3 3 0 11-6 0 3 3 0 016 0z M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z'} /></svg>
+ </button>
+ </div>
+ </div>
+ <button type="submit" disabled={loading} className="btn btn-p w-full py-2.5 flex items-center justify-center gap-2 disabled:opacity-50">
+ {loading && <span className="animate-spin w-4 h-4 border-2 border-black border-t-transparent rounded-full" />}
+ {loading ? 'Signing in...' : 'Sign In'}
+ </button>
+ </form>
+
+ <p className="text-center text-gray-600 text-[10px] mt-4">Kalshi operates as a CFTC-regulated Designated Contract Market</p>
+ </div>
+ </div>
+ );
+}
diff --git a/kalshi-dash/src/api.js b/kalshi-dash/src/api.js
new file mode 100644
index 0000000..4674d9e
--- /dev/null
+++ b/kalshi-dash/src/api.js
@@ -0,0 +1,45 @@
+const API = '/api';
+
+export async function api(path, opts = {}) {
+ const res = await fetch(`${API}${path}`, {
+ ...opts,
+ credentials: 'same-origin',
+ headers: { 'Content-Type': 'application/json', ...opts.headers },
+ });
+ if (res.status === 401 && !path.startsWith('/auth/')) {
+ window.location.href = '/login';
+ return {};
+ }
+ return res.json();
+}
+
+export async function post(path, body) {
+ return api(path, { method: 'POST', body: JSON.stringify(body) });
+}
+
+export async function checkSession() {
+ try {
+ const data = await api('/auth/session');
+ return data.authenticated === true;
+ } catch { return false; }
+}
+
+export async function login(username, password) {
+ const data = await post('/auth/login', { username, password });
+ return data.success === true;
+}
+
+export async function googleLogin(credential) {
+ const data = await post('/auth/google', { credential });
+ return data;
+}
+
+export async function getGoogleConfig() {
+ try { return await api('/auth/google-config'); }
+ catch { return { configured: false }; }
+}
+
+export async function logout() {
+ await post('/auth/logout', {});
+ window.location.href = '/login';
+}
diff --git a/kalshi-dash/src/index.css b/kalshi-dash/src/index.css
new file mode 100644
index 0000000..3053384
--- /dev/null
+++ b/kalshi-dash/src/index.css
@@ -0,0 +1,27 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+:root { --bg: #0a0e1a; --card: #111827; --border: #1e293b; --accent: #f59e0b; }
+body { background: var(--bg); color: #e2e8f0; font-family: 'Inter', sans-serif; margin: 0; }
+::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: var(--bg); } ::-webkit-scrollbar-thumb { background: #374151; border-radius: 3px; }
+.card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 1.25rem; }
+.stat-v { font-size: 1.75rem; font-weight: 700; line-height: 1; }
+.badge { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 9999px; font-size: 0.75rem; font-weight: 600; }
+.bg-green { background: rgba(16,185,129,0.15); color: #10b981; }
+.bg-red { background: rgba(239,68,68,0.15); color: #ef4444; }
+.bg-yellow { background: rgba(245,158,11,0.15); color: #f59e0b; }
+.bg-blue { background: rgba(59,130,246,0.15); color: #3b82f6; }
+.bg-orange { background: rgba(249,115,22,0.15); color: #f97316; }
+.pulse-g { animation: pg 2s infinite; }
+@keyframes pg { 0%,100%{box-shadow:0 0 0 0 rgba(245,158,11,0.4)} 50%{box-shadow:0 0 0 6px rgba(245,158,11,0)} }
+.btn { padding: 0.5rem 1rem; border-radius: 8px; font-weight: 600; font-size: 0.875rem; cursor: pointer; border: none; transition: all 0.15s; }
+.btn-p { background: #f59e0b; color: #111; } .btn-p:hover { background: #d97706; }
+.btn-d { background: #ef4444; color: white; } .btn-d:hover { background: #dc2626; }
+.btn-s { background: #10b981; color: white; } .btn-s:hover { background: #059669; }
+.btn-o { background: transparent; border: 1px solid var(--border); color: #9ca3af; } .btn-o:hover { border-color: #f59e0b; color: #f59e0b; }
+table { width: 100%; border-collapse: collapse; }
+th { text-align: left; padding: 0.75rem; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; color: #64748b; border-bottom: 1px solid var(--border); }
+td { padding: 0.75rem; border-bottom: 1px solid rgba(30,41,59,0.5); font-size: 0.85rem; }
+tr:hover td { background: rgba(245,158,11,0.03); }
+.kalshi-gradient { background: linear-gradient(135deg, #f59e0b, #f97316); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
diff --git a/kalshi-dash/src/main.jsx b/kalshi-dash/src/main.jsx
new file mode 100644
index 0000000..db01147
--- /dev/null
+++ b/kalshi-dash/src/main.jsx
@@ -0,0 +1,36 @@
+import React from 'react';
+import ReactDOM from 'react-dom/client';
+import { BrowserRouter, Routes, Route } from 'react-router-dom';
+import './index.css';
+import Login from './Login';
+import Layout from './Layout';
+import SetupWizard from './setup/SetupWizard';
+import Dashboard from './pages/Dashboard';
+import Markets from './pages/Markets';
+import Positions from './pages/Positions';
+import Orders from './pages/Orders';
+import Weather from './pages/Weather';
+import Risk from './pages/Risk';
+import Settings from './pages/Settings';
+
+function App() {
+ return (
+ <BrowserRouter>
+ <Routes>
+ <Route path="/login" element={<Login />} />
+ <Route path="/setup" element={<SetupWizard />} />
+ <Route path="/" element={<Layout />}>
+ <Route index element={<Dashboard />} />
+ <Route path="markets" element={<Markets />} />
+ <Route path="positions" element={<Positions />} />
+ <Route path="orders" element={<Orders />} />
+ <Route path="weather" element={<Weather />} />
+ <Route path="risk" element={<Risk />} />
+ <Route path="settings" element={<Settings />} />
+ </Route>
+ </Routes>
+ </BrowserRouter>
+ );
+}
+
+ReactDOM.createRoot(document.getElementById('root')).render(<App />);
diff --git a/kalshi-dash/src/pages/Dashboard.jsx b/kalshi-dash/src/pages/Dashboard.jsx
new file mode 100644
index 0000000..3b3230c
--- /dev/null
+++ b/kalshi-dash/src/pages/Dashboard.jsx
@@ -0,0 +1,119 @@
+import React, { useState, useEffect } from 'react';
+import { api, post } from '../api';
+import { Link } from 'react-router-dom';
+import { AreaChart, Area, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts';
+
+export default function Dashboard() {
+ const [data, setData] = useState(null);
+ const [loading, setLoading] = useState(true);
+
+ useEffect(() => {
+ loadDashboard();
+ const i = setInterval(loadDashboard, 30000);
+ return () => clearInterval(i);
+ }, []);
+
+ async function loadDashboard() {
+ try {
+ const r = await api('/dashboard');
+ setData(r);
+ } catch {}
+ setLoading(false);
+ }
+
+ if (loading) return <div className="flex items-center justify-center h-64"><div className="animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full" /></div>;
+
+ const d = data || {};
+ const pnlData = (d.pnl_history || []).map((p, i) => ({ day: i + 1, pnl: p }));
+
+ return (
+ <div className="space-y-6">
+ <div className="flex items-center justify-between">
+ <div>
+ <h1 className="text-2xl font-bold">Dashboard</h1>
+ <p className="text-gray-500 text-sm">Kalshi event contracts overview</p>
+ </div>
+ <div className="flex items-center gap-2">
+ <span className={`badge ${d.env === 'prod' ? 'bg-green' : 'bg-yellow'}`}>{(d.env || 'DEMO').toUpperCase()}</span>
+ {d.safe_mode && <span className="badge bg-yellow">SAFE MODE</span>}
+ </div>
+ </div>
+
+ {/* Stats Grid */}
+ <div className="grid grid-cols-5 gap-4">
+ {[
+ { label: 'Balance', value: d.balance ? `$${(d.balance / 100).toFixed(2)}` : '—', color: 'text-green-400' },
+ { label: 'Positions', value: d.position_count ?? '—', color: 'text-amber-400' },
+ { label: 'Open Orders', value: d.open_orders ?? '—', color: 'text-blue-400' },
+ { label: 'Today P&L', value: d.daily_pnl ? `$${(d.daily_pnl / 100).toFixed(2)}` : '$0.00', color: (d.daily_pnl || 0) >= 0 ? 'text-green-400' : 'text-red-400' },
+ { label: 'Markets Tracked', value: d.markets_tracked ?? '—', color: 'text-purple-400' },
+ ].map(s => (
+ <div key={s.label} className="card">
+ <p className="text-xs text-gray-500 uppercase mb-1">{s.label}</p>
+ <p className={`stat-v ${s.color}`}>{s.value}</p>
+ </div>
+ ))}
+ </div>
+
+ {/* P&L Chart */}
+ {pnlData.length > 0 && (
+ <div className="card">
+ <h2 className="font-semibold mb-3">P&L History</h2>
+ <ResponsiveContainer width="100%" height={200}>
+ <AreaChart data={pnlData}>
+ <CartesianGrid strokeDasharray="3 3" stroke="#1f2937" />
+ <XAxis dataKey="day" stroke="#6b7280" />
+ <YAxis stroke="#6b7280" tickFormatter={v => `$${v}`} />
+ <Tooltip contentStyle={{ background: '#1f2937', border: '1px solid #374151', borderRadius: 8 }} />
+ <Area type="monotone" dataKey="pnl" stroke="#f59e0b" fill="#f59e0b" fillOpacity={0.1} />
+ </AreaChart>
+ </ResponsiveContainer>
+ </div>
+ )}
+
+ {/* Recent Activity */}
+ <div className="grid grid-cols-2 gap-4">
+ <div className="card">
+ <h2 className="font-semibold mb-3">Recent Fills</h2>
+ {(d.recent_fills || []).length > 0 ? (
+ <div className="space-y-2">
+ {(d.recent_fills || []).slice(0, 5).map((f, i) => (
+ <div key={i} className="flex items-center justify-between text-sm">
+ <div>
+ <span className="font-mono text-xs text-gray-400">{f.ticker}</span>
+ <span className={`ml-2 badge ${f.side === 'yes' ? 'bg-green' : 'bg-red'}`}>{f.side?.toUpperCase()}</span>
+ </div>
+ <span className="font-mono text-gray-300">{f.count}@{f.yes_price}c</span>
+ </div>
+ ))}
+ </div>
+ ) : <p className="text-gray-600 text-sm text-center py-6">No recent fills</p>}
+ </div>
+
+ <div className="card">
+ <h2 className="font-semibold mb-3">Quick Actions</h2>
+ <div className="space-y-2">
+ <Link to="/markets" className="flex items-center gap-3 p-3 rounded-lg bg-gray-800/30 hover:bg-gray-800/60 transition">
+ <div className="w-8 h-8 rounded-lg bg-amber-500/10 flex items-center justify-center">
+ <svg className="w-4 h-4 text-amber-400" fill="none" stroke="currentColor" strokeWidth="1.5" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6" /></svg>
+ </div>
+ <div><p className="text-sm font-medium">Browse Markets</p><p className="text-xs text-gray-500">Find weather contracts</p></div>
+ </Link>
+ <Link to="/positions" className="flex items-center gap-3 p-3 rounded-lg bg-gray-800/30 hover:bg-gray-800/60 transition">
+ <div className="w-8 h-8 rounded-lg bg-green-500/10 flex items-center justify-center">
+ <svg className="w-4 h-4 text-green-400" fill="none" stroke="currentColor" strokeWidth="1.5" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" /></svg>
+ </div>
+ <div><p className="text-sm font-medium">View Positions</p><p className="text-xs text-gray-500">Current portfolio</p></div>
+ </Link>
+ <Link to="/risk" className="flex items-center gap-3 p-3 rounded-lg bg-gray-800/30 hover:bg-gray-800/60 transition">
+ <div className="w-8 h-8 rounded-lg bg-blue-500/10 flex items-center justify-center">
+ <svg className="w-4 h-4 text-blue-400" fill="none" stroke="currentColor" strokeWidth="1.5" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" /></svg>
+ </div>
+ <div><p className="text-sm font-medium">Risk Controls</p><p className="text-xs text-gray-500">Limits & safe mode</p></div>
+ </Link>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+}
diff --git a/kalshi-dash/src/pages/Markets.jsx b/kalshi-dash/src/pages/Markets.jsx
new file mode 100644
index 0000000..77f5c8c
--- /dev/null
+++ b/kalshi-dash/src/pages/Markets.jsx
@@ -0,0 +1,155 @@
+import React, { useState, useEffect } from 'react';
+import { post } from '../api';
+import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, Cell } from 'recharts';
+
+export default function Markets() {
+ const [events, setEvents] = useState([]);
+ const [markets, setMarkets] = useState([]);
+ const [loading, setLoading] = useState(true);
+ const [selectedEvent, setSelectedEvent] = useState(null);
+ const [orderbook, setOrderbook] = useState(null);
+ const [obLoading, setObLoading] = useState(false);
+ const [filter, setFilter] = useState('');
+
+ useEffect(() => { loadEvents(); }, []);
+
+ async function loadEvents() {
+ setLoading(true);
+ try {
+ const r = await post('/kalshi', { action: 'get_events', params: { status: 'open', limit: 100 } });
+ setEvents(r.events || []);
+ } catch {}
+ setLoading(false);
+ }
+
+ async function loadMarkets(eventTicker) {
+ setSelectedEvent(eventTicker);
+ setMarkets([]);
+ try {
+ const r = await post('/kalshi', { action: 'get_markets', params: { event_ticker: eventTicker } });
+ setMarkets(r.markets || []);
+ } catch {}
+ }
+
+ async function loadOrderbook(ticker) {
+ setObLoading(true); setOrderbook(null);
+ try {
+ const r = await post('/kalshi', { action: 'get_orderbook', ticker });
+ if (r.success) setOrderbook({ ...r.orderbook, ticker });
+ } catch {}
+ setObLoading(false);
+ }
+
+ const filtered = events.filter(e =>
+ !filter || (e.title || '').toLowerCase().includes(filter.toLowerCase()) ||
+ (e.category || '').toLowerCase().includes(filter.toLowerCase())
+ );
+
+ if (loading) return <div className="flex items-center justify-center h-64"><div className="animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full" /></div>;
+
+ return (
+ <div className="space-y-6">
+ <div className="flex items-center justify-between">
+ <div>
+ <h1 className="text-2xl font-bold">Markets</h1>
+ <p className="text-gray-500 text-sm">{events.length} events loaded</p>
+ </div>
+ <button onClick={loadEvents} className="btn btn-o text-sm">Refresh</button>
+ </div>
+
+ <input type="text" value={filter} onChange={e => setFilter(e.target.value)} placeholder="Filter by name or category..."
+ className="w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none" />
+
+ {/* Events List */}
+ <div className="card overflow-x-auto">
+ <table>
+ <thead><tr><th>Event</th><th>Category</th><th>Ticker</th><th>Markets</th><th>Action</th></tr></thead>
+ <tbody>
+ {filtered.length === 0 ? (
+ <tr><td colSpan={5} className="text-center text-gray-500 py-8">No events found</td></tr>
+ ) : filtered.slice(0, 50).map(e => (
+ <tr key={e.event_ticker}>
+ <td className="max-w-[300px]"><span className="truncate block font-medium">{e.title}</span></td>
+ <td><span className="badge bg-orange">{e.category || '—'}</span></td>
+ <td className="font-mono text-xs text-gray-500">{e.event_ticker}</td>
+ <td className="text-sm">{e.mutually_exclusive ? 'ME' : '—'}</td>
+ <td>
+ <button onClick={() => loadMarkets(e.event_ticker)} className="text-xs text-amber-400 hover:text-amber-300">
+ View Contracts
+ </button>
+ </td>
+ </tr>
+ ))}
+ </tbody>
+ </table>
+ </div>
+
+ {/* Markets for selected event */}
+ {selectedEvent && markets.length > 0 && (
+ <div className="card">
+ <div className="flex items-center justify-between mb-3">
+ <h2 className="font-semibold">Contracts — {selectedEvent}</h2>
+ <button onClick={() => { setSelectedEvent(null); setMarkets([]); }} className="text-xs text-gray-500 hover:text-gray-300">Close</button>
+ </div>
+ <table>
+ <thead><tr><th>Contract</th><th>Ticker</th><th>Yes Bid</th><th>Yes Ask</th><th>Volume</th><th>Book</th></tr></thead>
+ <tbody>
+ {markets.map(m => (
+ <tr key={m.ticker}>
+ <td className="max-w-[250px]"><span className="truncate block text-sm">{m.title || m.subtitle || m.ticker}</span></td>
+ <td className="font-mono text-xs text-gray-500">{m.ticker}</td>
+ <td className="font-mono text-green-400">{m.yes_bid ?? '—'}c</td>
+ <td className="font-mono text-red-400">{m.yes_ask ?? '—'}c</td>
+ <td className="font-mono text-gray-400">{m.volume ?? '—'}</td>
+ <td><button onClick={() => loadOrderbook(m.ticker)} className="text-xs text-amber-400 hover:text-amber-300">Orderbook</button></td>
+ </tr>
+ ))}
+ </tbody>
+ </table>
+ </div>
+ )}
+
+ {/* Orderbook */}
+ {(orderbook || obLoading) && (
+ <div className="card">
+ <div className="flex items-center justify-between mb-4">
+ <h2 className="font-semibold">Orderbook — {orderbook?.ticker || '...'}</h2>
+ <button onClick={() => setOrderbook(null)} className="text-xs text-gray-500 hover:text-gray-300">Close</button>
+ </div>
+ {obLoading ? (
+ <div className="flex items-center justify-center h-32"><div className="animate-spin w-6 h-6 border-2 border-amber-500 border-t-transparent rounded-full" /></div>
+ ) : orderbook ? (
+ <div className="grid grid-cols-2 gap-6">
+ <div>
+ <h3 className="text-sm font-medium text-green-400 mb-2">YES Bids</h3>
+ <div className="space-y-1">
+ <div className="flex justify-between text-[10px] text-gray-500 uppercase px-2"><span>Price</span><span>Qty</span></div>
+ {(orderbook.yes || []).slice(0, 10).map((b, i) => (
+ <div key={i} className="flex justify-between text-sm px-2 py-1 rounded relative overflow-hidden">
+ <div className="absolute inset-0 bg-green-500/10" style={{ width: `${Math.min((b[1] || 0) * 2, 100)}%` }} />
+ <span className="font-mono text-green-400 relative z-10">{b[0]}c</span>
+ <span className="font-mono text-gray-400 relative z-10">{b[1]}</span>
+ </div>
+ ))}
+ </div>
+ </div>
+ <div>
+ <h3 className="text-sm font-medium text-red-400 mb-2">NO Bids</h3>
+ <div className="space-y-1">
+ <div className="flex justify-between text-[10px] text-gray-500 uppercase px-2"><span>Price</span><span>Qty</span></div>
+ {(orderbook.no || []).slice(0, 10).map((a, i) => (
+ <div key={i} className="flex justify-between text-sm px-2 py-1 rounded relative overflow-hidden">
+ <div className="absolute inset-0 bg-red-500/10" style={{ width: `${Math.min((a[1] || 0) * 2, 100)}%` }} />
+ <span className="font-mono text-red-400 relative z-10">{a[0]}c</span>
+ <span className="font-mono text-gray-400 relative z-10">{a[1]}</span>
+ </div>
+ ))}
+ </div>
+ </div>
+ </div>
+ ) : null}
+ </div>
+ )}
+ </div>
+ );
+}
diff --git a/kalshi-dash/src/pages/Orders.jsx b/kalshi-dash/src/pages/Orders.jsx
new file mode 100644
index 0000000..f467b82
--- /dev/null
+++ b/kalshi-dash/src/pages/Orders.jsx
@@ -0,0 +1,100 @@
+import React, { useState, useEffect } from 'react';
+import { post } from '../api';
+
+export default function Orders() {
+ const [orders, setOrders] = useState([]);
+ const [fills, setFills] = useState([]);
+ const [loading, setLoading] = useState(true);
+ const [tab, setTab] = useState('orders');
+
+ useEffect(() => { load(); }, []);
+
+ async function load() {
+ setLoading(true);
+ try {
+ const [o, f] = await Promise.all([
+ post('/kalshi', { action: 'get_orders' }),
+ post('/kalshi', { action: 'get_fills' }),
+ ]);
+ setOrders(o.orders || []);
+ setFills(f.fills || []);
+ } catch {}
+ setLoading(false);
+ }
+
+ async function cancelOrder(orderId) {
+ try {
+ await post('/kalshi', { action: 'cancel_order', order_id: orderId });
+ load();
+ } catch {}
+ }
+
+ if (loading) return <div className="flex items-center justify-center h-64"><div className="animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full" /></div>;
+
+ return (
+ <div className="space-y-6">
+ <div className="flex items-center justify-between">
+ <div>
+ <h1 className="text-2xl font-bold">Orders & Fills</h1>
+ <p className="text-gray-500 text-sm">{orders.length} orders, {fills.length} fills</p>
+ </div>
+ <button onClick={load} className="btn btn-o text-sm">Refresh</button>
+ </div>
+
+ <div className="flex gap-2">
+ <button onClick={() => setTab('orders')} className={`btn text-sm ${tab === 'orders' ? 'btn-p' : 'btn-o'}`}>Orders ({orders.length})</button>
+ <button onClick={() => setTab('fills')} className={`btn text-sm ${tab === 'fills' ? 'btn-p' : 'btn-o'}`}>Fills ({fills.length})</button>
+ </div>
+
+ {tab === 'orders' ? (
+ <div className="card overflow-x-auto">
+ <table>
+ <thead><tr><th>Ticker</th><th>Side</th><th>Action</th><th>Type</th><th>Price</th><th>Qty</th><th>Filled</th><th>Status</th><th></th></tr></thead>
+ <tbody>
+ {orders.length === 0 ? (
+ <tr><td colSpan={9} className="text-center text-gray-500 py-8">No orders</td></tr>
+ ) : orders.map((o, i) => (
+ <tr key={i}>
+ <td className="font-mono text-xs">{o.ticker}</td>
+ <td><span className={`badge ${o.side === 'yes' ? 'bg-green' : 'bg-red'}`}>{(o.side || '').toUpperCase()}</span></td>
+ <td className="text-xs text-gray-400">{(o.action || '').toUpperCase()}</td>
+ <td className="text-xs">{o.type}</td>
+ <td className="font-mono">{o.yes_price || o.no_price || '—'}c</td>
+ <td className="font-mono">{o.count || o.remaining_count || 0}</td>
+ <td className="font-mono text-green-400">{o.count - (o.remaining_count || 0)}</td>
+ <td><span className={`badge ${o.status === 'resting' ? 'bg-blue' : o.status === 'filled' ? 'bg-green' : o.status === 'canceled' ? 'bg-red' : 'bg-yellow'}`}>{o.status}</span></td>
+ <td>
+ {o.status === 'resting' && (
+ <button onClick={() => cancelOrder(o.order_id)} className="text-xs text-red-400 hover:text-red-300">Cancel</button>
+ )}
+ </td>
+ </tr>
+ ))}
+ </tbody>
+ </table>
+ </div>
+ ) : (
+ <div className="card overflow-x-auto">
+ <table>
+ <thead><tr><th>Ticker</th><th>Side</th><th>Action</th><th>Price</th><th>Qty</th><th>Taker</th><th>Time</th></tr></thead>
+ <tbody>
+ {fills.length === 0 ? (
+ <tr><td colSpan={7} className="text-center text-gray-500 py-8">No fills</td></tr>
+ ) : fills.map((f, i) => (
+ <tr key={i}>
+ <td className="font-mono text-xs">{f.ticker}</td>
+ <td><span className={`badge ${f.side === 'yes' ? 'bg-green' : 'bg-red'}`}>{(f.side || '').toUpperCase()}</span></td>
+ <td className="text-xs text-gray-400">{(f.action || '').toUpperCase()}</td>
+ <td className="font-mono">{f.yes_price || f.no_price || '—'}c</td>
+ <td className="font-mono">{f.count}</td>
+ <td>{f.is_taker ? <span className="text-yellow-400 text-xs">TAKER</span> : <span className="text-green-400 text-xs">MAKER</span>}</td>
+ <td className="text-xs text-gray-500">{f.created_time ? new Date(f.created_time).toLocaleString() : '—'}</td>
+ </tr>
+ ))}
+ </tbody>
+ </table>
+ </div>
+ )}
+ </div>
+ );
+}
diff --git a/kalshi-dash/src/pages/Positions.jsx b/kalshi-dash/src/pages/Positions.jsx
new file mode 100644
index 0000000..8ba951f
--- /dev/null
+++ b/kalshi-dash/src/pages/Positions.jsx
@@ -0,0 +1,82 @@
+import React, { useState, useEffect } from 'react';
+import { post } from '../api';
+
+export default function Positions() {
+ const [positions, setPositions] = useState([]);
+ const [loading, setLoading] = useState(true);
+
+ useEffect(() => { load(); const i = setInterval(load, 15000); return () => clearInterval(i); }, []);
+
+ async function load() {
+ try {
+ const r = await post('/kalshi', { action: 'get_positions' });
+ setPositions(r.market_positions || r.positions || []);
+ } catch {}
+ setLoading(false);
+ }
+
+ if (loading) return <div className="flex items-center justify-center h-64"><div className="animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full" /></div>;
+
+ const totalPnl = positions.reduce((s, p) => s + (p.realized_pnl || 0), 0);
+
+ return (
+ <div className="space-y-6">
+ <div className="flex items-center justify-between">
+ <div>
+ <h1 className="text-2xl font-bold">Positions</h1>
+ <p className="text-gray-500 text-sm">{positions.length} active positions</p>
+ </div>
+ <button onClick={load} className="btn btn-o text-sm">Refresh</button>
+ </div>
+
+ <div className="grid grid-cols-3 gap-4">
+ <div className="card">
+ <p className="text-xs text-gray-500 uppercase mb-1">Positions</p>
+ <p className="stat-v text-amber-400">{positions.length}</p>
+ </div>
+ <div className="card">
+ <p className="text-xs text-gray-500 uppercase mb-1">Total Realized P&L</p>
+ <p className={`stat-v ${totalPnl >= 0 ? 'text-green-400' : 'text-red-400'}`}>
+ ${(totalPnl / 10000).toFixed(2)}
+ </p>
+ </div>
+ <div className="card">
+ <p className="text-xs text-gray-500 uppercase mb-1">Fees Paid</p>
+ <p className="stat-v text-gray-400">
+ ${(positions.reduce((s, p) => s + (p.fees_paid || 0), 0) / 10000).toFixed(2)}
+ </p>
+ </div>
+ </div>
+
+ <div className="card overflow-x-auto">
+ <table>
+ <thead>
+ <tr><th>Ticker</th><th>Side</th><th>Contracts</th><th>Cost</th><th>Realized P&L</th><th>Fees</th></tr>
+ </thead>
+ <tbody>
+ {positions.length === 0 ? (
+ <tr><td colSpan={6} className="text-center text-gray-500 py-8">No open positions</td></tr>
+ ) : positions.map((p, i) => (
+ <tr key={i}>
+ <td className="font-mono text-sm">{p.ticker || p.market_ticker}</td>
+ <td>
+ {(p.market_exposure || p.position) > 0 ? (
+ <span className="badge bg-green">YES</span>
+ ) : (p.market_exposure || p.position) < 0 ? (
+ <span className="badge bg-red">NO</span>
+ ) : <span className="text-gray-500">—</span>}
+ </td>
+ <td className="font-mono">{Math.abs(p.market_exposure || p.position || 0)}</td>
+ <td className="font-mono text-gray-400">${((p.position_cost || 0) / 10000).toFixed(2)}</td>
+ <td className={`font-mono ${(p.realized_pnl || 0) >= 0 ? 'text-green-400' : 'text-red-400'}`}>
+ ${((p.realized_pnl || 0) / 10000).toFixed(2)}
+ </td>
+ <td className="font-mono text-gray-400">${((p.fees_paid || 0) / 10000).toFixed(2)}</td>
+ </tr>
+ ))}
+ </tbody>
+ </table>
+ </div>
+ </div>
+ );
+}
diff --git a/kalshi-dash/src/pages/Risk.jsx b/kalshi-dash/src/pages/Risk.jsx
new file mode 100644
index 0000000..15c04ff
--- /dev/null
+++ b/kalshi-dash/src/pages/Risk.jsx
@@ -0,0 +1,121 @@
+import React, { useState, useEffect } from 'react';
+import { post } from '../api';
+
+export default function Risk() {
+ const [config, setConfig] = useState(null);
+ const [loading, setLoading] = useState(true);
+
+ useEffect(() => { load(); }, []);
+
+ async function load() {
+ try { const r = await post('/risk', { action: 'get_config' }); setConfig(r); }
+ catch {}
+ setLoading(false);
+ }
+
+ async function toggleSafeMode() {
+ try {
+ await post('/risk', { action: 'update_config', safe_mode: !config?.safe_mode });
+ load();
+ } catch {}
+ }
+
+ if (loading) return <div className="flex items-center justify-center h-64"><div className="animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full" /></div>;
+
+ const c = config || {};
+
+ return (
+ <div className="space-y-6">
+ <div className="flex items-center justify-between">
+ <div>
+ <h1 className="text-2xl font-bold">Risk Controls</h1>
+ <p className="text-gray-500 text-sm">Trading limits and safety mechanisms</p>
+ </div>
+ <button onClick={toggleSafeMode} className={`btn ${c.safe_mode ? 'btn-s' : 'btn-d'} text-sm`}>
+ {c.safe_mode ? 'Disable Safe Mode' : 'Enable Safe Mode'}
+ </button>
+ </div>
+
+ {/* Safe Mode Banner */}
+ {c.safe_mode && (
+ <div className="card bg-yellow-500/5 border-yellow-500/20">
+ <div className="flex items-center gap-3">
+ <svg className="w-6 h-6 text-yellow-400" fill="none" stroke="currentColor" strokeWidth="1.5" viewBox="0 0 24 24">
+ <path strokeLinecap="round" strokeLinejoin="round" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" />
+ </svg>
+ <div>
+ <p className="text-sm font-medium text-yellow-400">Safe Mode Active</p>
+ <p className="text-xs text-gray-400">All orders are paper-only. No real trades will be submitted to Kalshi.</p>
+ </div>
+ </div>
+ </div>
+ )}
+
+ {/* Risk Limits */}
+ <div className="grid grid-cols-2 gap-4">
+ <div className="card">
+ <h2 className="font-semibold text-sm mb-3">Position Limits</h2>
+ <div className="space-y-3">
+ {[
+ { label: 'Max Contracts / Market', value: c.max_contracts_per_market || 20, unit: 'contracts' },
+ { label: 'Max $ at Risk / Market', value: c.max_dollars_at_risk || 100, unit: '$' },
+ { label: 'Max $ at Risk / Cluster', value: c.max_dollars_cluster || 300, unit: '$' },
+ ].map(r => (
+ <div key={r.label} className="flex items-center justify-between">
+ <span className="text-sm text-gray-400">{r.label}</span>
+ <span className="font-mono text-sm text-gray-200">{r.unit === '$' ? `$${r.value}` : r.value}</span>
+ </div>
+ ))}
+ </div>
+ </div>
+
+ <div className="card">
+ <h2 className="font-semibold text-sm mb-3">Loss Controls</h2>
+ <div className="space-y-3">
+ {[
+ { label: 'Daily Loss Cap', value: c.daily_loss_cap || 50, unit: '$' },
+ { label: 'Max Stale Market Data', value: c.max_stale_market || 60, unit: 's' },
+ { label: 'Max Stale Weather Data', value: c.max_stale_weather || 3600, unit: 's' },
+ ].map(r => (
+ <div key={r.label} className="flex items-center justify-between">
+ <span className="text-sm text-gray-400">{r.label}</span>
+ <span className="font-mono text-sm text-gray-200">{r.unit === '$' ? `$${r.value}` : `${r.value}${r.unit}`}</span>
+ </div>
+ ))}
+ </div>
+ </div>
+ </div>
+
+ {/* Risk Profile */}
+ <div className="card">
+ <h2 className="font-semibold text-sm mb-3">Current Profile</h2>
+ <div className="flex items-center gap-4">
+ <span className={`text-2xl font-bold ${
+ c.risk_profile === 'Conservative' ? 'text-blue-400' :
+ c.risk_profile === 'Aggressive' ? 'text-red-400' : 'text-amber-400'
+ }`}>{c.risk_profile || 'Moderate'}</span>
+ <span className="text-xs text-gray-500">Change in Settings → Setup Wizard</span>
+ </div>
+ </div>
+
+ {/* Kalshi-Specific Notes */}
+ <div className="card">
+ <h2 className="font-semibold text-sm mb-3">Kalshi Exchange Rules</h2>
+ <div className="grid grid-cols-2 gap-4 text-xs text-gray-400">
+ <ul className="space-y-1">
+ <li>Min order: 1 contract</li>
+ <li>Min price increment: $0.01</li>
+ <li>Prices: 1-99 cents (binary)</li>
+ <li>Collateral: USD (100 cents = $1)</li>
+ </ul>
+ <ul className="space-y-1">
+ <li>Maker orders: fee-exempt (resting)</li>
+ <li>Taker fees: vary by price tier</li>
+ <li>P&L values: in centi-cents (1/10000 $)</li>
+ <li>Rate limits: vary by API tier</li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ );
+}
diff --git a/kalshi-dash/src/pages/Settings.jsx b/kalshi-dash/src/pages/Settings.jsx
new file mode 100644
index 0000000..d4c82ed
--- /dev/null
+++ b/kalshi-dash/src/pages/Settings.jsx
@@ -0,0 +1,106 @@
+import React, { useState, useEffect } from 'react';
+import { post } from '../api';
+
+export default function Settings() {
+ const [status, setStatus] = useState(null);
+ const [loading, setLoading] = useState(true);
+ const [apiKey, setApiKey] = useState('');
+ const [privateKey, setPrivateKey] = useState('');
+ const [env, setEnv] = useState('demo');
+ const [saving, setSaving] = useState(false);
+ const [msg, setMsg] = useState(null);
+
+ useEffect(() => { loadStatus(); }, []);
+
+ async function loadStatus() {
+ try {
+ const r = await post('/kalshi', { action: 'status' });
+ setStatus(r);
+ if (r.env) setEnv(r.env);
+ } catch {}
+ setLoading(false);
+ }
+
+ async function saveKeys() {
+ setSaving(true); setMsg(null);
+ try {
+ const r = await post('/kalshi', { action: 'save_keys', api_key: apiKey, private_key: privateKey, env });
+ if (r.success) { setMsg({ type: 'ok', text: 'Keys saved' }); loadStatus(); setApiKey(''); setPrivateKey(''); }
+ else setMsg({ type: 'err', text: r.error || 'Failed' });
+ } catch { setMsg({ type: 'err', text: 'Connection error' }); }
+ setSaving(false);
+ }
+
+ async function disconnect() {
+ try { await post('/kalshi', { action: 'disconnect' }); loadStatus(); }
+ catch {}
+ }
+
+ async function testConnection() {
+ setMsg(null);
+ try {
+ const r = await post('/kalshi', { action: 'test_connection' });
+ setMsg({ type: r.success ? 'ok' : 'err', text: r.success ? `Connected! Exchange: ${r.exchange_status}` : 'Connection failed' });
+ } catch { setMsg({ type: 'err', text: 'Connection error' }); }
+ }
+
+ if (loading) return <div className="flex items-center justify-center h-64"><div className="animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full" /></div>;
+
+ return (
+ <div className="space-y-6">
+ <h1 className="text-2xl font-bold">Settings</h1>
+
+ {/* Connection Status */}
+ <div className="card">
+ <div className="flex items-center gap-4 mb-3">
+ <span className={`w-3 h-3 rounded-full ${status?.connected ? 'bg-green-500 pulse-g' : 'bg-gray-600'}`} />
+ <h2 className="font-semibold">Kalshi API Connection</h2>
+ </div>
+ {status?.connected ? (
+ <div className="space-y-2 text-sm">
+ <div className="flex justify-between"><span className="text-gray-500">API Key</span><span className="font-mono text-gray-300">{status.api_key_masked || '***'}</span></div>
+ <div className="flex justify-between"><span className="text-gray-500">Environment</span><span className={status.env === 'prod' ? 'text-green-400' : 'text-yellow-400'}>{(status.env || 'demo').toUpperCase()}</span></div>
+ <div className="flex gap-2 mt-3">
+ <button onClick={testConnection} className="btn btn-o text-sm">Test Connection</button>
+ <button onClick={disconnect} className="btn btn-d text-sm">Disconnect</button>
+ </div>
+ </div>
+ ) : (
+ <div className="space-y-4">
+ <div className="flex gap-2">
+ <button onClick={() => setEnv('demo')} className={`flex-1 py-2 rounded-lg text-sm font-medium transition ${env === 'demo' ? 'bg-yellow-500/15 text-yellow-400 border border-yellow-500/30' : 'bg-gray-800/50 text-gray-500 border border-gray-700'}`}>Demo</button>
+ <button onClick={() => setEnv('prod')} className={`flex-1 py-2 rounded-lg text-sm font-medium transition ${env === 'prod' ? 'bg-green-500/15 text-green-400 border border-green-500/30' : 'bg-gray-800/50 text-gray-500 border border-gray-700'}`}>Production</button>
+ </div>
+ <div>
+ <label className="block text-xs text-gray-400 mb-1">API Key ID</label>
+ <input type="text" value={apiKey} onChange={e => setApiKey(e.target.value)} placeholder="Your API key" className="w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none font-mono" />
+ </div>
+ <div>
+ <label className="block text-xs text-gray-400 mb-1">Private Key (PEM)</label>
+ <textarea value={privateKey} onChange={e => setPrivateKey(e.target.value)} placeholder="-----BEGIN RSA PRIVATE KEY-----" rows={4} className="w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none font-mono text-xs" />
+ </div>
+ <button onClick={saveKeys} disabled={saving || !apiKey} className="btn btn-p w-full">{saving ? 'Saving...' : 'Save & Connect'}</button>
+ </div>
+ )}
+ {msg && <p className={`text-xs mt-2 ${msg.type === 'ok' ? 'text-green-400' : 'text-red-400'}`}>{msg.text}</p>}
+ </div>
+
+ {/* API Reference */}
+ <div className="card">
+ <h2 className="font-semibold mb-3">Kalshi API Reference</h2>
+ <div className="grid grid-cols-2 gap-4 text-xs text-gray-400">
+ <div>
+ <p className="text-gray-500 uppercase mb-1 font-medium">Environments</p>
+ <p>Demo: <span className="font-mono text-amber-400">demo-api.kalshi.co</span></p>
+ <p>Prod: <span className="font-mono text-green-400">api.elections.kalshi.com</span></p>
+ </div>
+ <div>
+ <p className="text-gray-500 uppercase mb-1 font-medium">Auth</p>
+ <p>Method: RSA-PSS + SHA-256</p>
+ <p>Headers: KALSHI-ACCESS-KEY, TIMESTAMP, SIGNATURE</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+}
diff --git a/kalshi-dash/src/pages/Weather.jsx b/kalshi-dash/src/pages/Weather.jsx
new file mode 100644
index 0000000..dd4e6c2
--- /dev/null
+++ b/kalshi-dash/src/pages/Weather.jsx
@@ -0,0 +1,90 @@
+import React, { useState, useEffect } from 'react';
+import { post } from '../api';
+
+export default function Weather() {
+ const [data, setData] = useState(null);
+ const [loading, setLoading] = useState(true);
+
+ useEffect(() => { load(); }, []);
+
+ async function load() {
+ setLoading(true);
+ try { const r = await post('/weather', { action: 'get_data' }); setData(r); }
+ catch {}
+ setLoading(false);
+ }
+
+ async function fetchAll() {
+ setLoading(true);
+ try { const r = await post('/weather', { action: 'fetch_all' }); setData(r); }
+ catch {}
+ setLoading(false);
+ }
+
+ if (loading) return <div className="flex items-center justify-center h-64"><div className="animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full" /></div>;
+
+ return (
+ <div className="space-y-6">
+ <div className="flex items-center justify-between">
+ <div>
+ <h1 className="text-2xl font-bold">Weather Data</h1>
+ <p className="text-gray-500 text-sm">NWS settlement data for Kalshi weather contracts</p>
+ </div>
+ <button onClick={fetchAll} className="btn btn-p text-sm">Fetch Latest</button>
+ </div>
+
+ <div className="grid grid-cols-4 gap-4">
+ {['Stations', 'Forecasts', 'Observations', 'Metrics'].map((label, i) => (
+ <div key={label} className="card">
+ <p className="text-xs text-gray-500 uppercase mb-1">{label}</p>
+ <p className="stat-v text-blue-400">{data?.[label.toLowerCase()] || '—'}</p>
+ </div>
+ ))}
+ </div>
+
+ <div className="card">
+ <h2 className="font-semibold mb-3">Settlement Rule Reference</h2>
+ <div className="grid grid-cols-2 gap-4 text-sm">
+ <div>
+ <p className="text-gray-500 text-xs uppercase mb-2">Temperature Contracts</p>
+ <ul className="space-y-1 text-xs text-gray-400">
+ <li>Source: NWS Daily Climate Report (final)</li>
+ <li>Station: Market-specified (e.g. KORD, KLGA)</li>
+ <li>Values: Tmax/Tmin in degrees F</li>
+ <li>Missing data: treated as 0</li>
+ </ul>
+ </div>
+ <div>
+ <p className="text-gray-500 text-xs uppercase mb-2">Precipitation Contracts</p>
+ <ul className="space-y-1 text-xs text-gray-400">
+ <li>Source: NWS Daily Climate Report (first complete)</li>
+ <li>Trace: counted as 0.00 inches</li>
+ <li>Missing: counted as 0.00 inches</li>
+ <li>Revisions: do NOT change settlement</li>
+ </ul>
+ </div>
+ </div>
+ </div>
+
+ {(data?.outcomes || []).length > 0 && (
+ <div className="card overflow-x-auto">
+ <h2 className="font-semibold mb-3">Recent Observations</h2>
+ <table>
+ <thead><tr><th>Station</th><th>Metric</th><th>Value</th><th>Source</th><th>Date</th></tr></thead>
+ <tbody>
+ {data.outcomes.map((o, i) => (
+ <tr key={i}>
+ <td className="font-mono text-sm">{o.station_id}</td>
+ <td><span className="badge bg-blue">{o.metric}</span></td>
+ <td className="font-mono">{o.value}{o.units}</td>
+ <td className="text-xs text-gray-400">{o.source}</td>
+ <td className="text-xs text-gray-400">{o.period_end}</td>
+ </tr>
+ ))}
+ </tbody>
+ </table>
+ </div>
+ )}
+ </div>
+ );
+}
diff --git a/kalshi-dash/src/setup/SetupWizard.jsx b/kalshi-dash/src/setup/SetupWizard.jsx
new file mode 100644
index 0000000..59bd33e
--- /dev/null
+++ b/kalshi-dash/src/setup/SetupWizard.jsx
@@ -0,0 +1,119 @@
+import React, { useState, useEffect } from 'react';
+import { useNavigate } from 'react-router-dom';
+import { checkSession, post, api } from '../api';
+import Welcome from './steps/Welcome';
+import ConnectKalshi from './steps/ConnectKalshi';
+import TestConnection from './steps/TestConnection';
+import BrowseMarkets from './steps/BrowseMarkets';
+import FetchWeather from './steps/FetchWeather';
+import RunPredictions from './steps/RunPredictions';
+import RiskProfile from './steps/RiskProfile';
+import GoLive from './steps/GoLive';
+
+const STEPS = [
+ { label: 'Welcome', icon: '1' },
+ { label: 'Connect', icon: '2' },
+ { label: 'Test', icon: '3' },
+ { label: 'Markets', icon: '4' },
+ { label: 'Weather', icon: '5' },
+ { label: 'Predict', icon: '6' },
+ { label: 'Risk', icon: '7' },
+ { label: 'Go Live', icon: '8' },
+];
+
+const COMPS = [Welcome, ConnectKalshi, TestConnection, BrowseMarkets, FetchWeather, RunPredictions, RiskProfile, GoLive];
+
+export default function SetupWizard() {
+ const nav = useNavigate();
+ const [authed, setAuthed] = useState(false);
+ const [step, setStep] = useState(0);
+ const [data, setData] = useState({
+ keys: null,
+ connectionOk: false,
+ marketsLoaded: 0,
+ weatherFetched: false,
+ predictionsRun: false,
+ riskProfile: null,
+ });
+
+ useEffect(() => {
+ checkSession().then(ok => {
+ if (!ok) { nav('/login'); return; }
+ setAuthed(true);
+ api('/setup').then(r => {
+ if (r.setup_complete) { nav('/'); return; }
+ if (r.setup_progress) {
+ setStep(r.setup_progress.step || 0);
+ setData(d => ({ ...d, ...r.setup_progress.data }));
+ }
+ }).catch(() => {});
+ });
+ }, []);
+
+ useEffect(() => {
+ if (authed && step > 0) {
+ post('/setup', { action: 'save_progress', progress: { step, data } }).catch(() => {});
+ }
+ }, [step]);
+
+ function next() { if (step < STEPS.length - 1) setStep(s => s + 1); }
+ function back() { if (step > 0) setStep(s => s - 1); }
+ function goTo(i) { if (i <= step) setStep(i); }
+ function update(partial) { setData(d => ({ ...d, ...partial })); }
+ async function complete() {
+ await post('/setup', { action: 'complete', progress: { step: STEPS.length - 1, data } });
+ nav('/');
+ }
+
+ if (!authed) return <div className="flex items-center justify-center min-h-screen"><div className="animate-spin w-8 h-8 border-2 border-amber-500 border-t-transparent rounded-full" /></div>;
+
+ const StepComponent = COMPS[step];
+
+ return (
+ <div className="min-h-screen flex flex-col" style={{ background: 'var(--bg)' }}>
+ {/* Header */}
+ <div className="flex items-center gap-3 px-6 py-4 border-b border-gray-800">
+ <div className="w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0" style={{ background: 'linear-gradient(135deg,#f59e0b,#f97316)' }}>
+ <span className="text-black font-bold text-sm">K</span>
+ </div>
+ <span className="font-bold text-sm kalshi-gradient">KALSHI SETUP</span>
+ </div>
+
+ {/* Stepper */}
+ <div className="px-6 py-5">
+ <div className="max-w-3xl mx-auto flex items-center">
+ {STEPS.map((s, i) => (
+ <React.Fragment key={i}>
+ <button onClick={() => goTo(i)} disabled={i > step} className="flex flex-col items-center gap-1.5 group" style={{ minWidth: 56 }}>
+ <div className={`w-8 h-8 rounded-full flex items-center justify-center text-xs font-bold transition-all ${
+ i < step ? 'bg-green-500 text-white' :
+ i === step ? 'bg-amber-500 text-black' :
+ 'bg-gray-800 text-gray-500'
+ } ${i <= step ? 'cursor-pointer' : 'cursor-default'}`}
+ style={i === step ? { animation: 'pg 2s infinite' } : {}}
+ >
+ {i < step ? (
+ <svg className="w-4 h-4" fill="none" stroke="currentColor" strokeWidth="2.5" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d="M5 13l4 4L19 7" /></svg>
+ ) : s.icon}
+ </div>
+ <span className={`text-[10px] font-medium ${
+ i < step ? 'text-green-400' : i === step ? 'text-amber-400' : 'text-gray-600'
+ }`}>{s.label}</span>
+ </button>
+ {i < STEPS.length - 1 && (
+ <div className={`h-0.5 flex-1 transition-colors ${i < step ? 'bg-green-500' : 'bg-gray-800'}`} />
+ )}
+ </React.Fragment>
+ ))}
+ </div>
+ </div>
+
+ {/* Content */}
+ <div className="flex-1 flex items-start justify-center px-6 pb-10">
+ <div className="w-full max-w-2xl" key={step}>
+ <StepComponent data={data} update={update} next={next} back={back} complete={complete} step={step} />
+ </div>
+ </div>
+ </div>
+ );
+}
diff --git a/kalshi-dash/src/setup/steps/BrowseMarkets.jsx b/kalshi-dash/src/setup/steps/BrowseMarkets.jsx
new file mode 100644
index 0000000..a311ecd
--- /dev/null
+++ b/kalshi-dash/src/setup/steps/BrowseMarkets.jsx
@@ -0,0 +1,94 @@
+import React, { useState, useEffect } from 'react';
+import { post } from '../../api';
+
+export default function BrowseMarkets({ data, update, next, back }) {
+ const [loading, setLoading] = useState(true);
+ const [result, setResult] = useState(null);
+ const [error, setError] = useState(null);
+
+ useEffect(() => { loadMarkets(); }, []);
+
+ async function loadMarkets() {
+ setLoading(true); setError(null);
+ try {
+ const r = await post('/kalshi', { action: 'get_events', params: { status: 'open', limit: 50 } });
+ setResult(r);
+ const count = r.events?.length || 0;
+ update({ marketsLoaded: count });
+ } catch { setError('Failed to load markets'); }
+ setLoading(false);
+ }
+
+ const weatherEvents = (result?.events || []).filter(e =>
+ (e.category || '').toLowerCase().includes('climate') ||
+ (e.category || '').toLowerCase().includes('weather') ||
+ (e.title || '').toLowerCase().includes('temperature') ||
+ (e.title || '').toLowerCase().includes('rain') ||
+ (e.title || '').toLowerCase().includes('snow') ||
+ (e.title || '').toLowerCase().includes('precipitation')
+ );
+
+ return (
+ <div className="space-y-6">
+ <div className="text-center">
+ <h2 className="text-2xl font-bold mb-2">Browse Markets</h2>
+ <p className="text-gray-400 text-sm">Loading event contracts from Kalshi</p>
+ </div>
+
+ <div className="card">
+ {loading ? (
+ <div className="flex flex-col items-center justify-center py-12 gap-4">
+ <div className="animate-spin w-10 h-10 border-3 border-amber-500 border-t-transparent rounded-full" />
+ <p className="text-sm text-gray-400">Fetching markets from Kalshi...</p>
+ </div>
+ ) : error ? (
+ <div className="text-center py-8">
+ <p className="text-red-400 text-sm mb-3">{error}</p>
+ <button onClick={loadMarkets} className="btn btn-s text-sm">Retry</button>
+ </div>
+ ) : (
+ <div className="space-y-4">
+ <div className="grid grid-cols-3 gap-4">
+ <div className="text-center">
+ <p className="stat-v text-amber-400">{result?.events?.length || 0}</p>
+ <p className="text-xs text-gray-500 mt-1">Total Events</p>
+ </div>
+ <div className="text-center">
+ <p className="stat-v text-blue-400">{weatherEvents.length}</p>
+ <p className="text-xs text-gray-500 mt-1">Weather Events</p>
+ </div>
+ <div className="text-center">
+ <p className="stat-v text-green-400">{result?.markets?.length || '—'}</p>
+ <p className="text-xs text-gray-500 mt-1">Contracts</p>
+ </div>
+ </div>
+
+ {weatherEvents.length > 0 && (
+ <div className="border-t border-gray-800 pt-3">
+ <p className="text-xs text-gray-500 mb-2 uppercase font-medium">Weather Events Found</p>
+ <div className="space-y-1.5 max-h-48 overflow-y-auto">
+ {weatherEvents.slice(0, 12).map((e, i) => (
+ <div key={i} className="flex items-center gap-2 text-xs">
+ <span className="w-1.5 h-1.5 rounded-full bg-amber-500 flex-shrink-0" />
+ <span className="text-gray-300 truncate">{e.title}</span>
+ <span className="text-gray-600 ml-auto font-mono text-[10px]">{e.event_ticker}</span>
+ </div>
+ ))}
+ </div>
+ </div>
+ )}
+
+ {weatherEvents.length === 0 && (
+ <p className="text-center text-gray-500 text-sm py-4">No weather events found — other market categories loaded</p>
+ )}
+ </div>
+ )}
+ </div>
+
+ <div className="flex items-center justify-between">
+ <button onClick={back} className="text-sm text-gray-500 hover:text-gray-300">Back</button>
+ <button onClick={next} disabled={loading} className="btn btn-p">{loading ? 'Loading...' : 'Continue'}</button>
+ </div>
+ </div>
+ );
+}
diff --git a/kalshi-dash/src/setup/steps/ConnectKalshi.jsx b/kalshi-dash/src/setup/steps/ConnectKalshi.jsx
new file mode 100644
index 0000000..691d823
--- /dev/null
+++ b/kalshi-dash/src/setup/steps/ConnectKalshi.jsx
@@ -0,0 +1,95 @@
+import React, { useState } from 'react';
+import { post } from '../../api';
+
+export default function ConnectKalshi({ data, update, next, back }) {
+ const [apiKey, setApiKey] = useState(data.keys?.api_key || '');
+ const [privateKey, setPrivateKey] = useState(data.keys?.private_key || '');
+ const [env, setEnv] = useState(data.keys?.env || 'demo');
+ const [saving, setSaving] = useState(false);
+ const [error, setError] = useState(null);
+
+ async function save() {
+ setSaving(true); setError(null);
+ try {
+ const r = await post('/kalshi', {
+ action: 'save_keys',
+ api_key: apiKey,
+ private_key: privateKey,
+ env,
+ });
+ if (r.success) {
+ update({ keys: { api_key: apiKey, private_key: '***', env } });
+ next();
+ } else setError(r.error || 'Failed to save');
+ } catch { setError('Connection error'); }
+ setSaving(false);
+ }
+
+ function skip() {
+ update({ keys: null, skippedConnect: true });
+ next();
+ }
+
+ return (
+ <div className="space-y-6">
+ <div className="text-center">
+ <h2 className="text-2xl font-bold mb-2">Give Me the Keys</h2>
+ <p className="text-gray-400 text-sm">Your API credentials, darling. I don't have all day.</p>
+ </div>
+
+ <div className="card space-y-4">
+ {/* Environment Toggle */}
+ <div>
+ <label className="block text-xs text-gray-400 mb-1.5 font-medium">Which playground are we using?</label>
+ <div className="flex gap-2">
+ <button onClick={() => setEnv('demo')} className={`flex-1 py-2 rounded-lg text-sm font-medium transition ${env === 'demo' ? 'bg-yellow-500/15 text-yellow-400 border border-yellow-500/30' : 'bg-gray-800/50 text-gray-500 border border-gray-700'}`}>
+ Demo (Smart)
+ </button>
+ <button onClick={() => setEnv('prod')} className={`flex-1 py-2 rounded-lg text-sm font-medium transition ${env === 'prod' ? 'bg-green-500/15 text-green-400 border border-green-500/30' : 'bg-gray-800/50 text-gray-500 border border-gray-700'}`}>
+ Production
+ </button>
+ </div>
+ </div>
+
+ <div>
+ <label className="block text-xs text-gray-400 mb-1.5 font-medium">API Key ID</label>
+ <input type="text" value={apiKey} onChange={e => setApiKey(e.target.value)}
+ placeholder="Your Kalshi API key ID"
+ className="w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none font-mono" />
+ </div>
+
+ <div>
+ <label className="block text-xs text-gray-400 mb-1.5 font-medium">Private Key (PEM)</label>
+ <textarea value={privateKey} onChange={e => setPrivateKey(e.target.value)}
+ placeholder="-----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY-----"
+ rows={6}
+ className="w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-amber-500 focus:outline-none font-mono text-xs leading-relaxed" />
+ <p className="text-[10px] text-gray-600 mt-1">This key is stored encrypted and never leaves this server</p>
+ </div>
+
+ {error && <p className="text-red-400 text-xs">{error}</p>}
+ </div>
+
+ <div className="card bg-gray-800/30">
+ <h3 className="text-sm font-medium mb-2">Where to get your API keys</h3>
+ <ol className="text-xs text-gray-400 space-y-1.5 list-decimal list-inside">
+ <li>Log into <span className="text-amber-400 font-mono">kalshi.com</span></li>
+ <li>Go to Settings → API Keys</li>
+ <li>Click "Create API Key" — download the private key file immediately</li>
+ <li>Copy the API Key ID and paste the PEM contents above</li>
+ </ol>
+ <p className="text-[10px] text-red-400 mt-2">The private key file cannot be downloaded again after creation!</p>
+ </div>
+
+ <div className="flex items-center justify-between">
+ <button onClick={back} className="text-sm text-gray-500 hover:text-gray-300">Back</button>
+ <div className="flex items-center gap-3">
+ <button onClick={skip} className="text-sm text-gray-500 hover:text-gray-300">Skip (paper only)</button>
+ <button onClick={save} disabled={saving || !apiKey || !privateKey} className="btn btn-p">
+ {saving ? 'Saving...' : 'Save & Continue'}
+ </button>
+ </div>
+ </div>
+ </div>
+ );
+}
diff --git a/kalshi-dash/src/setup/steps/FetchWeather.jsx b/kalshi-dash/src/setup/steps/FetchWeather.jsx
new file mode 100644
index 0000000..f0df6ed
--- /dev/null
+++ b/kalshi-dash/src/setup/steps/FetchWeather.jsx
@@ -0,0 +1,79 @@
+import React, { useState, useEffect } from 'react';
+import { post } from '../../api';
+
+export default function FetchWeather({ data, update, next, back }) {
+ const [loading, setLoading] = useState(true);
+ const [result, setResult] = useState(null);
+ const [error, setError] = useState(null);
+
+ useEffect(() => { runFetch(); }, []);
+
+ async function runFetch() {
+ setLoading(true); setError(null);
+ try {
+ const r = await post('/weather', { action: 'fetch_all' });
+ setResult(r);
+ update({ weatherFetched: true });
+ } catch { setError('Failed to fetch weather data'); }
+ setLoading(false);
+ }
+
+ return (
+ <div className="space-y-6">
+ <div className="text-center">
+ <h2 className="text-2xl font-bold mb-2">Weather Data</h2>
+ <p className="text-gray-400 text-sm">Pulling NWS forecast & settlement data</p>
+ </div>
+
+ <div className="card">
+ {loading ? (
+ <div className="flex flex-col items-center justify-center py-12 gap-4">
+ <div className="animate-spin w-10 h-10 border-3 border-blue-500 border-t-transparent rounded-full" />
+ <p className="text-sm text-gray-400">Fetching NWS Daily Climate Reports...</p>
+ </div>
+ ) : error ? (
+ <div className="text-center py-8">
+ <p className="text-red-400 text-sm mb-3">{error}</p>
+ <button onClick={runFetch} className="btn btn-s text-sm">Retry</button>
+ </div>
+ ) : (
+ <div className="space-y-4">
+ <div className="flex items-center justify-center gap-3 py-4">
+ <div className="w-12 h-12 rounded-full bg-green-500/10 flex items-center justify-center">
+ <svg className="w-6 h-6 text-green-400" fill="none" stroke="currentColor" strokeWidth="2" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d="M5 13l4 4L19 7" /></svg>
+ </div>
+ <div>
+ <p className="font-semibold text-green-400">Weather Data Loaded</p>
+ <p className="text-xs text-gray-400">Settlement-grade NWS data fetched</p>
+ </div>
+ </div>
+ <div className="grid grid-cols-3 gap-4">
+ <div className="text-center p-3 bg-gray-800/30 rounded-lg">
+ <p className="stat-v text-blue-400">{result?.stations || '—'}</p>
+ <p className="text-xs text-gray-500 mt-1">Stations</p>
+ </div>
+ <div className="text-center p-3 bg-gray-800/30 rounded-lg">
+ <p className="stat-v text-amber-400">{result?.data_points || '—'}</p>
+ <p className="text-xs text-gray-500 mt-1">Data Points</p>
+ </div>
+ <div className="text-center p-3 bg-gray-800/30 rounded-lg">
+ <p className="stat-v text-green-400">{result?.metrics?.length || '—'}</p>
+ <p className="text-xs text-gray-500 mt-1">Metrics</p>
+ </div>
+ </div>
+ </div>
+ )}
+ </div>
+
+ <div className="card bg-gray-800/30">
+ <p className="text-xs text-gray-500 mb-1 font-medium">Settlement Sources</p>
+ <p className="text-xs text-gray-400">Kalshi weather contracts settle on the <span className="text-amber-400">final NWS Daily Climate Report</span>. Trace values = 0.00, missing = 0.00. First complete report is determinative — later revisions do not change settlement.</p>
+ </div>
+
+ <div className="flex items-center justify-between">
+ <button onClick={back} className="text-sm text-gray-500 hover:text-gray-300">Back</button>
+ <button onClick={next} disabled={loading} className="btn btn-p">{loading ? 'Fetching...' : 'Continue'}</button>
+ </div>
+ </div>
+ );
+}
diff --git a/kalshi-dash/src/setup/steps/GoLive.jsx b/kalshi-dash/src/setup/steps/GoLive.jsx
new file mode 100644
index 0000000..15992d7
--- /dev/null
+++ b/kalshi-dash/src/setup/steps/GoLive.jsx
@@ -0,0 +1,106 @@
+import React, { useState } from 'react';
+
+const CHECKS = [
+ { key: 'keys', label: 'Kalshi API Connected', check: d => !!d.keys },
+ { key: 'conn', label: 'Connection Verified', check: d => !!d.connectionOk },
+ { key: 'markets', label: 'Markets Loaded', check: d => d.marketsLoaded > 0 },
+ { key: 'weather', label: 'Weather Data Fetched', check: d => !!d.weatherFetched },
+ { key: 'preds', label: 'Predictions Generated', check: d => !!d.predictionsRun },
+ { key: 'risk', label: 'Risk Profile Set', check: d => !!d.riskProfile },
+];
+
+export default function GoLive({ data, complete, back }) {
+ const [safeMode, setSafeMode] = useState(true);
+ const [launching, setLaunching] = useState(false);
+
+ const done = CHECKS.filter(c => c.check(data)).length;
+ const skipped = data.skippedConnect;
+
+ async function launch() {
+ setLaunching(true);
+ await complete();
+ }
+
+ return (
+ <div className="space-y-6">
+ <div className="text-center">
+ <h2 className="text-2xl font-bold mb-2">Ready to Trade</h2>
+ <p className="text-gray-400 text-sm">Review your setup and launch</p>
+ </div>
+
+ <div className="card">
+ <h3 className="font-semibold text-sm mb-3">Setup Summary</h3>
+ <div className="space-y-2">
+ {CHECKS.map(c => {
+ const ok = c.check(data);
+ const skip = c.key === 'keys' && skipped;
+ return (
+ <div key={c.key} className="flex items-center gap-3">
+ {ok ? (
+ <div className="w-5 h-5 rounded-full bg-green-500 flex items-center justify-center flex-shrink-0">
+ <svg className="w-3 h-3 text-white" fill="none" stroke="currentColor" strokeWidth="3" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d="M5 13l4 4L19 7" /></svg>
+ </div>
+ ) : skip ? (
+ <div className="w-5 h-5 rounded-full bg-yellow-500 flex items-center justify-center flex-shrink-0"><span className="text-white text-[10px] font-bold">—</span></div>
+ ) : (
+ <div className="w-5 h-5 rounded-full bg-gray-700 flex-shrink-0" />
+ )}
+ <span className={`text-sm ${ok ? 'text-gray-200' : skip ? 'text-yellow-400' : 'text-gray-500'}`}>
+ {c.label}{skip ? ' (skipped)' : ''}
+ </span>
+ </div>
+ );
+ })}
+ </div>
+ <p className="text-xs text-gray-500 mt-3 pt-3 border-t border-gray-800">{done}/{CHECKS.length} steps completed</p>
+ </div>
+
+ <div className="grid grid-cols-3 gap-4">
+ <div className="card text-center">
+ <p className="stat-v text-amber-400">{data.marketsLoaded || 0}</p>
+ <p className="text-xs text-gray-500 mt-1">Markets</p>
+ </div>
+ <div className="card text-center">
+ <p className="stat-v text-blue-400">{data.riskProfile || '—'}</p>
+ <p className="text-xs text-gray-500 mt-1">Risk Profile</p>
+ </div>
+ <div className="card text-center">
+ <p className="stat-v text-green-400">{data.keys ? (data.keys.env || 'demo').toUpperCase() : 'PAPER'}</p>
+ <p className="text-xs text-gray-500 mt-1">Mode</p>
+ </div>
+ </div>
+
+ {/* Safe Mode Toggle */}
+ <div className="card">
+ <div className="flex items-center justify-between">
+ <div>
+ <h3 className="font-semibold text-sm">Safe Mode</h3>
+ <p className="text-xs text-gray-500 mt-0.5">
+ {safeMode ? 'Paper trading only — no real orders' : 'Live orders enabled on Kalshi'}
+ </p>
+ </div>
+ <div className="flex items-center gap-3">
+ <span className={`text-xs font-medium ${safeMode ? 'text-yellow-400' : 'text-gray-500'}`}>Safe</span>
+ <button onClick={() => setSafeMode(!safeMode)} disabled={!data.keys}
+ className={`w-11 h-6 rounded-full transition-colors relative ${safeMode ? 'bg-yellow-500/30' : 'bg-green-500/30'} ${!data.keys ? 'opacity-50 cursor-not-allowed' : ''}`}>
+ <div className={`w-4 h-4 rounded-full absolute top-1 transition-all ${safeMode ? 'left-1 bg-yellow-400' : 'left-6 bg-green-400'}`} />
+ </button>
+ <span className={`text-xs font-medium ${!safeMode ? 'text-green-400' : 'text-gray-500'}`}>Live</span>
+ </div>
+ </div>
+ {!safeMode && (
+ <div className="mt-3 p-2 bg-red-500/10 border border-red-500/20 rounded-lg">
+ <p className="text-xs text-red-400">Live mode submits real orders to Kalshi. Make sure your account is funded and risk limits are set.</p>
+ </div>
+ )}
+ </div>
+
+ <div className="flex items-center justify-between">
+ <button onClick={back} className="text-sm text-gray-500 hover:text-gray-300">Back</button>
+ <button onClick={launch} disabled={launching} className="btn btn-p text-lg px-8 py-3 rounded-xl font-bold">
+ {launching ? 'Launching...' : 'Launch Kalshi Trader'}
+ </button>
+ </div>
+ </div>
+ );
+}
diff --git a/kalshi-dash/src/setup/steps/RiskProfile.jsx b/kalshi-dash/src/setup/steps/RiskProfile.jsx
new file mode 100644
index 0000000..d3523bd
--- /dev/null
+++ b/kalshi-dash/src/setup/steps/RiskProfile.jsx
@@ -0,0 +1,68 @@
+import React, { useState } from 'react';
+import { post } from '../../api';
+
+const PROFILES = [
+ { name: 'Conservative', maxContracts: 5, maxDollars: 25, dailyLoss: 10, color: 'blue',
+ desc: 'Small positions, tight stops. Best for learning Kalshi.' },
+ { name: 'Moderate', maxContracts: 20, maxDollars: 100, dailyLoss: 50, color: 'amber',
+ desc: 'Balanced risk/reward. Recommended for most traders.', recommended: true },
+ { name: 'Aggressive', maxContracts: 50, maxDollars: 500, dailyLoss: 200, color: 'red',
+ desc: 'Larger positions, higher variance. For experienced traders.' },
+];
+
+export default function RiskProfile({ data, update, next, back }) {
+ const [selected, setSelected] = useState(data.riskProfile || 'Moderate');
+ const [saving, setSaving] = useState(false);
+
+ async function save() {
+ setSaving(true);
+ const p = PROFILES.find(x => x.name === selected);
+ try {
+ await post('/risk', {
+ action: 'update_config',
+ max_contracts_per_market: p.maxContracts,
+ max_dollars_at_risk: p.maxDollars,
+ daily_loss_cap: p.dailyLoss,
+ risk_profile: p.name,
+ });
+ update({ riskProfile: selected });
+ next();
+ } catch {}
+ setSaving(false);
+ }
+
+ return (
+ <div className="space-y-6">
+ <div className="text-center">
+ <h2 className="text-2xl font-bold mb-2">Risk Profile</h2>
+ <p className="text-gray-400 text-sm">Set your trading risk limits</p>
+ </div>
+
+ <div className="grid grid-cols-3 gap-4">
+ {PROFILES.map(p => {
+ const colors = { blue: { ring: '#3b82f6', text: 'text-blue-400' }, amber: { ring: '#f59e0b', text: 'text-amber-400' }, red: { ring: '#ef4444', text: 'text-red-400' } };
+ const c = colors[p.color];
+ return (
+ <button key={p.name} onClick={() => setSelected(p.name)}
+ className="card text-left transition-all relative"
+ style={selected === p.name ? { boxShadow: `0 0 0 2px ${c.ring}` } : {}}>
+ {p.recommended && <span className="absolute -top-2 right-3 text-[9px] font-bold uppercase px-2 py-0.5 rounded-full bg-amber-500 text-black">Recommended</span>}
+ <h3 className={`font-bold text-lg mb-1 ${c.text}`}>{p.name}</h3>
+ <p className="text-xs text-gray-500 mb-3">{p.desc}</p>
+ <div className="space-y-1.5 text-xs">
+ <div className="flex justify-between"><span className="text-gray-500">Max Contracts</span><span className="font-mono text-gray-300">{p.maxContracts}</span></div>
+ <div className="flex justify-between"><span className="text-gray-500">Max $ at Risk</span><span className="font-mono text-gray-300">${p.maxDollars}</span></div>
+ <div className="flex justify-between"><span className="text-gray-500">Daily Loss Cap</span><span className="font-mono text-gray-300">${p.dailyLoss}</span></div>
+ </div>
+ </button>
+ );
+ })}
+ </div>
+
+ <div className="flex items-center justify-between">
+ <button onClick={back} className="text-sm text-gray-500 hover:text-gray-300">Back</button>
+ <button onClick={save} disabled={saving} className="btn btn-p">{saving ? 'Saving...' : 'Save & Continue'}</button>
+ </div>
+ </div>
+ );
+}
diff --git a/kalshi-dash/src/setup/steps/RunPredictions.jsx b/kalshi-dash/src/setup/steps/RunPredictions.jsx
new file mode 100644
index 0000000..c424eac
--- /dev/null
+++ b/kalshi-dash/src/setup/steps/RunPredictions.jsx
@@ -0,0 +1,87 @@
+import React, { useState, useEffect } from 'react';
+import { post } from '../../api';
+
+export default function RunPredictions({ data, update, next, back }) {
+ const [loading, setLoading] = useState(true);
+ const [result, setResult] = useState(null);
+ const [error, setError] = useState(null);
+
+ useEffect(() => { run(); }, []);
+
+ async function run() {
+ setLoading(true); setError(null);
+ try {
+ const r = await post('/kalshi', { action: 'run_predictions' });
+ setResult(r);
+ update({ predictionsRun: true });
+ } catch { setError('Failed to generate predictions'); }
+ setLoading(false);
+ }
+
+ const predictions = result?.predictions || [];
+ const buySignals = predictions.filter(p => (p.edge_bps || 0) > 0);
+
+ return (
+ <div className="space-y-6">
+ <div className="text-center">
+ <h2 className="text-2xl font-bold mb-2">AI Predictions</h2>
+ <p className="text-gray-400 text-sm">Generating probability models and calculating edges</p>
+ </div>
+
+ <div className="card">
+ {loading ? (
+ <div className="flex flex-col items-center justify-center py-12 gap-4">
+ <div className="animate-spin w-10 h-10 border-3 border-green-500 border-t-transparent rounded-full" />
+ <p className="text-sm text-gray-400">Running prediction models...</p>
+ </div>
+ ) : error ? (
+ <div className="text-center py-8">
+ <p className="text-red-400 text-sm mb-3">{error}</p>
+ <button onClick={run} className="btn btn-s text-sm">Retry</button>
+ </div>
+ ) : (
+ <div className="space-y-4">
+ <div className="grid grid-cols-3 gap-4">
+ <div className="text-center">
+ <p className="stat-v text-amber-400">{predictions.length}</p>
+ <p className="text-xs text-gray-500 mt-1">Predictions</p>
+ </div>
+ <div className="text-center">
+ <p className="stat-v text-green-400">{buySignals.length}</p>
+ <p className="text-xs text-gray-500 mt-1">Buy Signals</p>
+ </div>
+ <div className="text-center">
+ <p className="stat-v text-blue-400">{result?.avg_edge_bps || 0}bps</p>
+ <p className="text-xs text-gray-500 mt-1">Avg Edge</p>
+ </div>
+ </div>
+
+ {predictions.length > 0 && (
+ <div className="border-t border-gray-800 pt-3">
+ <table>
+ <thead><tr><th>Contract</th><th>Side</th><th>Price</th><th>Edge</th><th>Signal</th></tr></thead>
+ <tbody>
+ {predictions.slice(0, 6).map((p, i) => (
+ <tr key={i}>
+ <td className="max-w-[180px]"><span className="truncate block text-xs">{p.ticker || p.market}</span></td>
+ <td><span className={`badge ${p.side === 'yes' ? 'bg-green' : 'bg-red'}`}>{(p.side || 'yes').toUpperCase()}</span></td>
+ <td className="font-mono text-sm">{p.price_cents || '—'}c</td>
+ <td className={`font-mono text-sm ${(p.edge_bps || 0) > 0 ? 'text-green-400' : 'text-gray-500'}`}>{p.edge_bps || 0}bps</td>
+ <td><span className={`badge ${(p.edge_bps || 0) > 0 ? 'bg-green' : 'bg-yellow'}`}>{(p.edge_bps || 0) > 0 ? 'BUY' : 'HOLD'}</span></td>
+ </tr>
+ ))}
+ </tbody>
+ </table>
+ </div>
+ )}
+ </div>
+ )}
+ </div>
+
+ <div className="flex items-center justify-between">
+ <button onClick={back} className="text-sm text-gray-500 hover:text-gray-300">Back</button>
+ <button onClick={next} disabled={loading} className="btn btn-p">{loading ? 'Processing...' : 'Continue'}</button>
+ </div>
+ </div>
+ );
+}
diff --git a/kalshi-dash/src/setup/steps/TestConnection.jsx b/kalshi-dash/src/setup/steps/TestConnection.jsx
new file mode 100644
index 0000000..3f79da4
--- /dev/null
+++ b/kalshi-dash/src/setup/steps/TestConnection.jsx
@@ -0,0 +1,91 @@
+import React, { useState, useEffect } from 'react';
+import { post } from '../../api';
+
+export default function TestConnection({ data, update, next, back }) {
+ const [exchangeTest, setExchangeTest] = useState(null);
+ const [authTest, setAuthTest] = useState(null);
+ const [exLoading, setExLoading] = useState(true);
+ const [authLoading, setAuthLoading] = useState(false);
+
+ useEffect(() => { runExchangeTest(); }, []);
+
+ async function runExchangeTest() {
+ setExLoading(true);
+ try {
+ const r = await post('/kalshi', { action: 'test_connection' });
+ setExchangeTest(r);
+ if (r.success && data.keys && !data.skippedConnect) runAuthTest();
+ } catch { setExchangeTest({ error: true }); }
+ setExLoading(false);
+ }
+
+ async function runAuthTest() {
+ setAuthLoading(true);
+ try {
+ const r = await post('/kalshi', { action: 'get_balance' });
+ setAuthTest(r);
+ if (r.success) update({ connectionOk: true });
+ } catch { setAuthTest({ error: true }); }
+ setAuthLoading(false);
+ }
+
+ const skipped = data.skippedConnect;
+
+ const TestCard = ({ title, loading, result, skippedMsg }) => (
+ <div className="card">
+ <div className="flex items-center gap-2 mb-3">
+ {skippedMsg ? (
+ <div className="w-5 h-5 rounded-full bg-yellow-500 flex items-center justify-center"><span className="text-white text-xs font-bold">—</span></div>
+ ) : loading ? (
+ <div className="animate-spin w-5 h-5 border-2 border-amber-500 border-t-transparent rounded-full" />
+ ) : result?.success ? (
+ <div className="w-5 h-5 rounded-full bg-green-500 flex items-center justify-center">
+ <svg className="w-3 h-3 text-white" fill="none" stroke="currentColor" strokeWidth="3" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d="M5 13l4 4L19 7" /></svg>
+ </div>
+ ) : result?.error ? (
+ <div className="w-5 h-5 rounded-full bg-red-500 flex items-center justify-center">
+ <svg className="w-3 h-3 text-white" fill="none" stroke="currentColor" strokeWidth="3" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d="M6 18L18 6M6 6l12 12" /></svg>
+ </div>
+ ) : <div className="w-5 h-5 rounded-full bg-gray-600" />}
+ <h3 className="font-semibold text-sm">{title}</h3>
+ </div>
+ {skippedMsg ? (
+ <p className="text-xs text-yellow-400">{skippedMsg}</p>
+ ) : result?.success ? (
+ <div className="space-y-1 text-xs text-gray-400">
+ {result.exchange_status && <p>Exchange: <span className="text-green-400 font-mono">{result.exchange_status}</span></p>}
+ {result.balance !== undefined && <p>Balance: <span className="text-green-400 font-mono">${(result.balance / 100).toFixed(2)}</span></p>}
+ {result.env && <p>Env: <span className="text-amber-400 font-mono">{result.env.toUpperCase()}</span></p>}
+ </div>
+ ) : result?.error ? (
+ <p className="text-xs text-red-400">{typeof result.error === 'string' ? result.error : 'Connection failed'}</p>
+ ) : null}
+ </div>
+ );
+
+ return (
+ <div className="space-y-6">
+ <div className="text-center">
+ <h2 className="text-2xl font-bold mb-2">Test Connection</h2>
+ <p className="text-gray-400 text-sm">Verifying Kalshi API access</p>
+ </div>
+
+ <div className="grid grid-cols-2 gap-4">
+ <TestCard title="Exchange Status" loading={exLoading} result={exchangeTest} />
+ <TestCard title="Authenticated" loading={authLoading} result={authTest}
+ skippedMsg={skipped ? 'Skipped — paper mode only' : (!data.keys ? 'No keys provided' : null)} />
+ </div>
+
+ {!exLoading && !authLoading && (
+ <div className="flex justify-center">
+ <button onClick={runExchangeTest} className="text-xs text-gray-500 hover:text-gray-300">Retry Tests</button>
+ </div>
+ )}
+
+ <div className="flex items-center justify-between">
+ <button onClick={back} className="text-sm text-gray-500 hover:text-gray-300">Back</button>
+ <button onClick={next} className="btn btn-p">Continue</button>
+ </div>
+ </div>
+ );
+}
diff --git a/kalshi-dash/src/setup/steps/Welcome.jsx b/kalshi-dash/src/setup/steps/Welcome.jsx
new file mode 100644
index 0000000..e2cad16
--- /dev/null
+++ b/kalshi-dash/src/setup/steps/Welcome.jsx
@@ -0,0 +1,69 @@
+import React from 'react';
+
+const FEATURES = [
+ { title: 'Event Contracts', desc: 'Betting on weather like a person who never learned to just look outside. CFTC-regulated, at least.', icon: 'M13 7h8m0 0v8m0-8l-8 8-4-4-6 6' },
+ { title: 'Weather Intelligence', desc: 'We schlepp forecast data from the government so you don\'t have to read the almanac yourself.', icon: 'M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z' },
+ { title: 'Automated Execution', desc: 'The machine places your bets so your hands stay clean. Safe mode included, because I worry.', icon: 'M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z' },
+];
+
+const PIPELINE = [
+ 'Hook up to Kalshi (demo first, like a sensible person)',
+ 'Snoop around the weather contracts',
+ 'Schlep in the NWS settlement data',
+ 'Let the computer do the math you were too lazy to learn',
+ 'Set some limits so you don\'t lose your shirt',
+ 'Place the bets (on paper first, God willing)',
+];
+
+export default function Welcome({ next }) {
+ return (
+ <div className="space-y-8">
+ <div className="text-center">
+ <h1 className="text-4xl font-bold kalshi-gradient mb-3">Oy, Look Who Finally Showed Up</h1>
+ <p className="text-gray-400 text-lg">So you want to bet on the weather? Your mother would be so proud.</p>
+ </div>
+
+ <div className="grid grid-cols-3 gap-4">
+ {FEATURES.map(f => (
+ <div key={f.title} className="card text-center">
+ <div className="w-10 h-10 rounded-lg bg-amber-500/10 flex items-center justify-center mx-auto mb-3">
+ <svg className="w-5 h-5 text-amber-400" fill="none" stroke="currentColor" strokeWidth="1.5" viewBox="0 0 24 24">
+ <path strokeLinecap="round" strokeLinejoin="round" d={f.icon} />
+ </svg>
+ </div>
+ <h3 className="font-semibold text-sm mb-1">{f.title}</h3>
+ <p className="text-xs text-gray-500 leading-relaxed">{f.desc}</p>
+ </div>
+ ))}
+ </div>
+
+ <div className="card">
+ <h3 className="font-semibold text-sm mb-3">Listen, this is how it works</h3>
+ <div className="grid grid-cols-2 gap-2">
+ {PIPELINE.map((p, i) => (
+ <div key={i} className="flex items-center gap-3 py-1.5">
+ <span className="w-6 h-6 rounded-full bg-amber-500/15 text-amber-400 flex items-center justify-center text-xs font-bold flex-shrink-0">{i + 1}</span>
+ <span className="text-sm text-gray-300">{p}</span>
+ </div>
+ ))}
+ </div>
+ </div>
+
+ <div className="card bg-green-500/5 border-green-500/20">
+ <div className="flex items-start gap-3">
+ <svg className="w-5 h-5 text-green-400 mt-0.5 flex-shrink-0" fill="none" stroke="currentColor" strokeWidth="1.5" viewBox="0 0 24 24">
+ <path strokeLinecap="round" strokeLinejoin="round" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" />
+ </svg>
+ <div>
+ <p className="text-sm font-medium text-green-400">At least it's legal, thank God</p>
+ <p className="text-xs text-gray-400 mt-1">Kalshi is a real CFTC-regulated exchange, not some offshore mishegoss. You'll need an account with API access. Go make one already, I'll wait.</p>
+ </div>
+ </div>
+ </div>
+
+ <div className="flex justify-center">
+ <button onClick={next} className="btn btn-p px-8 py-3 text-base font-bold rounded-xl">Nu, Let's Go Already</button>
+ </div>
+ </div>
+ );
+}
diff --git a/kalshi-dash/tailwind.config.js b/kalshi-dash/tailwind.config.js
new file mode 100644
index 0000000..bac94e1
--- /dev/null
+++ b/kalshi-dash/tailwind.config.js
@@ -0,0 +1,5 @@
+export default {
+ content: ['./index.html', './src/**/*.{js,jsx}'],
+ theme: { extend: {} },
+ plugins: [],
+};
diff --git a/kalshi-dash/vite.config.js b/kalshi-dash/vite.config.js
new file mode 100644
index 0000000..48c4635
--- /dev/null
+++ b/kalshi-dash/vite.config.js
@@ -0,0 +1,7 @@
+import { defineConfig } from 'vite';
+import react from '@vitejs/plugin-react';
+
+export default defineConfig({
+ plugins: [react()],
+ server: { proxy: { '/api': 'http://localhost:7810' } },
+});
diff --git a/react-dash/dist/assets/index-DCWex4nn.js b/react-dash/dist/assets/index-DCWex4nn.js
new file mode 100644
index 0000000..bbe0368
--- /dev/null
+++ b/react-dash/dist/assets/index-DCWex4nn.js
@@ -0,0 +1,139 @@
+function $A(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const i in n)if(i!=="default"&&!(i in e)){const a=Object.getOwnPropertyDescriptor(n,i);a&&Object.defineProperty(e,i,a.get?a:{enumerable:!0,get:()=>n[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();var Sl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function de(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var pw={exports:{}},qc={},hw={exports:{}},ae={};/**
+ * @license React
+ * react.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var al=Symbol.for("react.element"),EA=Symbol.for("react.portal"),TA=Symbol.for("react.fragment"),CA=Symbol.for("react.strict_mode"),MA=Symbol.for("react.profiler"),IA=Symbol.for("react.provider"),LA=Symbol.for("react.context"),DA=Symbol.for("react.forward_ref"),RA=Symbol.for("react.suspense"),BA=Symbol.for("react.memo"),FA=Symbol.for("react.lazy"),Uy=Symbol.iterator;function zA(e){return e===null||typeof e!="object"?null:(e=Uy&&e[Uy]||e["@@iterator"],typeof e=="function"?e:null)}var mw={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},vw=Object.assign,yw={};function Ja(e,t,r){this.props=e,this.context=t,this.refs=yw,this.updater=r||mw}Ja.prototype.isReactComponent={};Ja.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)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,e,t,"setState")};Ja.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function gw(){}gw.prototype=Ja.prototype;function Rm(e,t,r){this.props=e,this.context=t,this.refs=yw,this.updater=r||mw}var Bm=Rm.prototype=new gw;Bm.constructor=Rm;vw(Bm,Ja.prototype);Bm.isPureReactComponent=!0;var Ky=Array.isArray,xw=Object.prototype.hasOwnProperty,Fm={current:null},bw={key:!0,ref:!0,__self:!0,__source:!0};function ww(e,t,r){var n,i={},a=null,o=null;if(t!=null)for(n in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(a=""+t.key),t)xw.call(t,n)&&!bw.hasOwnProperty(n)&&(i[n]=t[n]);var s=arguments.length-2;if(s===1)i.children=r;else if(1<s){for(var l=Array(s),u=0;u<s;u++)l[u]=arguments[u+2];i.children=l}if(e&&e.defaultProps)for(n in s=e.defaultProps,s)i[n]===void 0&&(i[n]=s[n]);return{$$typeof:al,type:e,key:a,ref:o,props:i,_owner:Fm.current}}function WA(e,t){return{$$typeof:al,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function zm(e){return typeof e=="object"&&e!==null&&e.$$typeof===al}function UA(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return t[r]})}var Hy=/\/+/g;function ad(e,t){return typeof e=="object"&&e!==null&&e.key!=null?UA(""+e.key):t.toString(36)}function nu(e,t,r,n,i){var a=typeof e;(a==="undefined"||a==="boolean")&&(e=null);var o=!1;if(e===null)o=!0;else switch(a){case"string":case"number":o=!0;break;case"object":switch(e.$$typeof){case al:case EA:o=!0}}if(o)return o=e,i=i(o),e=n===""?"."+ad(o,0):n,Ky(i)?(r="",e!=null&&(r=e.replace(Hy,"$&/")+"/"),nu(i,t,r,"",function(u){return u})):i!=null&&(zm(i)&&(i=WA(i,r+(!i.key||o&&o.key===i.key?"":(""+i.key).replace(Hy,"$&/")+"/")+e)),t.push(i)),1;if(o=0,n=n===""?".":n+":",Ky(e))for(var s=0;s<e.length;s++){a=e[s];var l=n+ad(a,s);o+=nu(a,t,r,l,i)}else if(l=zA(e),typeof l=="function")for(e=l.call(e),s=0;!(a=e.next()).done;)a=a.value,l=n+ad(a,s++),o+=nu(a,t,r,l,i);else if(a==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return o}function Ol(e,t,r){if(e==null)return e;var n=[],i=0;return nu(e,n,"","",function(a){return t.call(r,a,i++)}),n}function KA(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(r){(e._status===0||e._status===-1)&&(e._status=1,e._result=r)},function(r){(e._status===0||e._status===-1)&&(e._status=2,e._result=r)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var jt={current:null},iu={transition:null},HA={ReactCurrentDispatcher:jt,ReactCurrentBatchConfig:iu,ReactCurrentOwner:Fm};function jw(){throw Error("act(...) is not supported in production builds of React.")}ae.Children={map:Ol,forEach:function(e,t,r){Ol(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return Ol(e,function(){t++}),t},toArray:function(e){return Ol(e,function(t){return t})||[]},only:function(e){if(!zm(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};ae.Component=Ja;ae.Fragment=TA;ae.Profiler=MA;ae.PureComponent=Rm;ae.StrictMode=CA;ae.Suspense=RA;ae.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=HA;ae.act=jw;ae.cloneElement=function(e,t,r){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var n=vw({},e.props),i=e.key,a=e.ref,o=e._owner;if(t!=null){if(t.ref!==void 0&&(a=t.ref,o=Fm.current),t.key!==void 0&&(i=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(l in t)xw.call(t,l)&&!bw.hasOwnProperty(l)&&(n[l]=t[l]===void 0&&s!==void 0?s[l]:t[l])}var l=arguments.length-2;if(l===1)n.children=r;else if(1<l){s=Array(l);for(var u=0;u<l;u++)s[u]=arguments[u+2];n.children=s}return{$$typeof:al,type:e.type,key:i,ref:a,props:n,_owner:o}};ae.createContext=function(e){return e={$$typeof:LA,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:IA,_context:e},e.Consumer=e};ae.createElement=ww;ae.createFactory=function(e){var t=ww.bind(null,e);return t.type=e,t};ae.createRef=function(){return{current:null}};ae.forwardRef=function(e){return{$$typeof:DA,render:e}};ae.isValidElement=zm;ae.lazy=function(e){return{$$typeof:FA,_payload:{_status:-1,_result:e},_init:KA}};ae.memo=function(e,t){return{$$typeof:BA,type:e,compare:t===void 0?null:t}};ae.startTransition=function(e){var t=iu.transition;iu.transition={};try{e()}finally{iu.transition=t}};ae.unstable_act=jw;ae.useCallback=function(e,t){return jt.current.useCallback(e,t)};ae.useContext=function(e){return jt.current.useContext(e)};ae.useDebugValue=function(){};ae.useDeferredValue=function(e){return jt.current.useDeferredValue(e)};ae.useEffect=function(e,t){return jt.current.useEffect(e,t)};ae.useId=function(){return jt.current.useId()};ae.useImperativeHandle=function(e,t,r){return jt.current.useImperativeHandle(e,t,r)};ae.useInsertionEffect=function(e,t){return jt.current.useInsertionEffect(e,t)};ae.useLayoutEffect=function(e,t){return jt.current.useLayoutEffect(e,t)};ae.useMemo=function(e,t){return jt.current.useMemo(e,t)};ae.useReducer=function(e,t,r){return jt.current.useReducer(e,t,r)};ae.useRef=function(e){return jt.current.useRef(e)};ae.useState=function(e){return jt.current.useState(e)};ae.useSyncExternalStore=function(e,t,r){return jt.current.useSyncExternalStore(e,t,r)};ae.useTransition=function(){return jt.current.useTransition()};ae.version="18.3.1";hw.exports=ae;var A=hw.exports;const k=de(A),VA=$A({__proto__:null,default:k},[A]);/**
+ * @license React
+ * react-jsx-runtime.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var GA=A,qA=Symbol.for("react.element"),XA=Symbol.for("react.fragment"),YA=Object.prototype.hasOwnProperty,QA=GA.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,ZA={key:!0,ref:!0,__self:!0,__source:!0};function Sw(e,t,r){var n,i={},a=null,o=null;r!==void 0&&(a=""+r),t.key!==void 0&&(a=""+t.key),t.ref!==void 0&&(o=t.ref);for(n in t)YA.call(t,n)&&!ZA.hasOwnProperty(n)&&(i[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps,t)i[n]===void 0&&(i[n]=t[n]);return{$$typeof:qA,type:e,key:a,ref:o,props:i,_owner:QA.current}}qc.Fragment=XA;qc.jsx=Sw;qc.jsxs=Sw;pw.exports=qc;var c=pw.exports,fp={},Ow={exports:{}},Kt={},_w={exports:{}},Pw={};/**
+ * @license React
+ * scheduler.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */(function(e){function t(M,B){var E=M.length;M.push(B);e:for(;0<E;){var W=E-1>>>1,z=M[W];if(0<i(z,B))M[W]=B,M[E]=z,E=W;else break e}}function r(M){return M.length===0?null:M[0]}function n(M){if(M.length===0)return null;var B=M[0],E=M.pop();if(E!==B){M[0]=E;e:for(var W=0,z=M.length,Y=z>>>1;W<Y;){var oe=2*(W+1)-1,Pe=M[oe],Le=oe+1,Vt=M[Le];if(0>i(Pe,E))Le<z&&0>i(Vt,Pe)?(M[W]=Vt,M[Le]=E,W=Le):(M[W]=Pe,M[oe]=E,W=oe);else if(Le<z&&0>i(Vt,E))M[W]=Vt,M[Le]=E,W=Le;else break e}}return B}function i(M,B){var E=M.sortIndex-B.sortIndex;return E!==0?E:M.id-B.id}if(typeof performance=="object"&&typeof performance.now=="function"){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var l=[],u=[],f=1,d=null,p=3,h=!1,m=!1,g=!1,x=typeof setTimeout=="function"?setTimeout:null,y=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function b(M){for(var B=r(u);B!==null;){if(B.callback===null)n(u);else if(B.startTime<=M)n(u),B.sortIndex=B.expirationTime,t(l,B);else break;B=r(u)}}function S(M){if(g=!1,b(M),!m)if(r(l)!==null)m=!0,C(w);else{var B=r(u);B!==null&&F(S,B.startTime-M)}}function w(M,B){m=!1,g&&(g=!1,y(_),_=-1),h=!0;var E=p;try{for(b(B),d=r(l);d!==null&&(!(d.expirationTime>B)||M&&!T());){var W=d.callback;if(typeof W=="function"){d.callback=null,p=d.priorityLevel;var z=W(d.expirationTime<=B);B=e.unstable_now(),typeof z=="function"?d.callback=z:d===r(l)&&n(l),b(B)}else n(l);d=r(l)}if(d!==null)var Y=!0;else{var oe=r(u);oe!==null&&F(S,oe.startTime-B),Y=!1}return Y}finally{d=null,p=E,h=!1}}var j=!1,O=null,_=-1,P=5,N=-1;function T(){return!(e.unstable_now()-N<P)}function $(){if(O!==null){var M=e.unstable_now();N=M;var B=!0;try{B=O(!0,M)}finally{B?I():(j=!1,O=null)}}else j=!1}var I;if(typeof v=="function")I=function(){v($)};else if(typeof MessageChannel<"u"){var D=new MessageChannel,L=D.port2;D.port1.onmessage=$,I=function(){L.postMessage(null)}}else I=function(){x($,0)};function C(M){O=M,j||(j=!0,I())}function F(M,B){_=x(function(){M(e.unstable_now())},B)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(M){M.callback=null},e.unstable_continueExecution=function(){m||h||(m=!0,C(w))},e.unstable_forceFrameRate=function(M){0>M||125<M?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):P=0<M?Math.floor(1e3/M):5},e.unstable_getCurrentPriorityLevel=function(){return p},e.unstable_getFirstCallbackNode=function(){return r(l)},e.unstable_next=function(M){switch(p){case 1:case 2:case 3:var B=3;break;default:B=p}var E=p;p=B;try{return M()}finally{p=E}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(M,B){switch(M){case 1:case 2:case 3:case 4:case 5:break;default:M=3}var E=p;p=M;try{return B()}finally{p=E}},e.unstable_scheduleCallback=function(M,B,E){var W=e.unstable_now();switch(typeof E=="object"&&E!==null?(E=E.delay,E=typeof E=="number"&&0<E?W+E:W):E=W,M){case 1:var z=-1;break;case 2:z=250;break;case 5:z=1073741823;break;case 4:z=1e4;break;default:z=5e3}return z=E+z,M={id:f++,callback:B,priorityLevel:M,startTime:E,expirationTime:z,sortIndex:-1},E>W?(M.sortIndex=E,t(u,M),r(l)===null&&M===r(u)&&(g?(y(_),_=-1):g=!0,F(S,E-W))):(M.sortIndex=z,t(l,M),m||h||(m=!0,C(w))),M},e.unstable_shouldYield=T,e.unstable_wrapCallback=function(M){var B=p;return function(){var E=p;p=B;try{return M.apply(this,arguments)}finally{p=E}}}})(Pw);_w.exports=Pw;var JA=_w.exports;/**
+ * @license React
+ * react-dom.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var ek=A,Ut=JA;function H(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var Aw=new Set,as={};function Ei(e,t){ya(e,t),ya(e+"Capture",t)}function ya(e,t){for(as[e]=t,e=0;e<t.length;e++)Aw.add(t[e])}var Yr=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),dp=Object.prototype.hasOwnProperty,tk=/^[: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]*$/,Vy={},Gy={};function rk(e){return dp.call(Gy,e)?!0:dp.call(Vy,e)?!1:tk.test(e)?Gy[e]=!0:(Vy[e]=!0,!1)}function nk(e,t,r,n){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return n?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function ik(e,t,r,n){if(t===null||typeof t>"u"||nk(e,t,r,n))return!0;if(n)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function St(e,t,r,n,i,a,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=i,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=o}var st={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){st[e]=new St(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];st[t]=new St(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){st[e]=new St(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){st[e]=new St(e,2,!1,e,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(e){st[e]=new St(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){st[e]=new St(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){st[e]=new St(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){st[e]=new St(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){st[e]=new St(e,5,!1,e.toLowerCase(),null,!1,!1)});var Wm=/[\-:]([a-z])/g;function Um(e){return e[1].toUpperCase()}"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(e){var t=e.replace(Wm,Um);st[t]=new St(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Wm,Um);st[t]=new St(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Wm,Um);st[t]=new St(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){st[e]=new St(e,1,!1,e.toLowerCase(),null,!1,!1)});st.xlinkHref=new St("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){st[e]=new St(e,1,!1,e.toLowerCase(),null,!0,!0)});function Km(e,t,r,n){var i=st.hasOwnProperty(t)?st[t]:null;(i!==null?i.type!==0:n||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(ik(t,r,i,n)&&(r=null),n||i===null?rk(t)&&(r===null?e.removeAttribute(t):e.setAttribute(t,""+r)):i.mustUseProperty?e[i.propertyName]=r===null?i.type===3?!1:"":r:(t=i.attributeName,n=i.attributeNamespace,r===null?e.removeAttribute(t):(i=i.type,r=i===3||i===4&&r===!0?"":""+r,n?e.setAttributeNS(n,t,r):e.setAttribute(t,r))))}var nn=ek.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,_l=Symbol.for("react.element"),Hi=Symbol.for("react.portal"),Vi=Symbol.for("react.fragment"),Hm=Symbol.for("react.strict_mode"),pp=Symbol.for("react.profiler"),kw=Symbol.for("react.provider"),Nw=Symbol.for("react.context"),Vm=Symbol.for("react.forward_ref"),hp=Symbol.for("react.suspense"),mp=Symbol.for("react.suspense_list"),Gm=Symbol.for("react.memo"),pn=Symbol.for("react.lazy"),$w=Symbol.for("react.offscreen"),qy=Symbol.iterator;function go(e){return e===null||typeof e!="object"?null:(e=qy&&e[qy]||e["@@iterator"],typeof e=="function"?e:null)}var Te=Object.assign,od;function Lo(e){if(od===void 0)try{throw Error()}catch(r){var t=r.stack.trim().match(/\n( *(at )?)/);od=t&&t[1]||""}return`
+`+od+e}var sd=!1;function ld(e,t){if(!e||sd)return"";sd=!0;var r=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var n=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){n=u}e.call(t.prototype)}else{try{throw Error()}catch(u){n=u}e()}}catch(u){if(u&&n&&typeof u.stack=="string"){for(var i=u.stack.split(`
+`),a=n.stack.split(`
+`),o=i.length-1,s=a.length-1;1<=o&&0<=s&&i[o]!==a[s];)s--;for(;1<=o&&0<=s;o--,s--)if(i[o]!==a[s]){if(o!==1||s!==1)do if(o--,s--,0>s||i[o]!==a[s]){var l=`
+`+i[o].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}while(1<=o&&0<=s);break}}}finally{sd=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?Lo(e):""}function ak(e){switch(e.tag){case 5:return Lo(e.type);case 16:return Lo("Lazy");case 13:return Lo("Suspense");case 19:return Lo("SuspenseList");case 0:case 2:case 15:return e=ld(e.type,!1),e;case 11:return e=ld(e.type.render,!1),e;case 1:return e=ld(e.type,!0),e;default:return""}}function vp(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Vi:return"Fragment";case Hi:return"Portal";case pp:return"Profiler";case Hm:return"StrictMode";case hp:return"Suspense";case mp:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Nw:return(e.displayName||"Context")+".Consumer";case kw:return(e._context.displayName||"Context")+".Provider";case Vm:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Gm:return t=e.displayName||null,t!==null?t:vp(e.type)||"Memo";case pn:t=e._payload,e=e._init;try{return vp(e(t))}catch{}}return null}function ok(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return vp(t);case 8:return t===Hm?"StrictMode":"Mode";case 22:return"Offscreen";case 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(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Dn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Ew(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function sk(e){var t=Ew(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){n=""+o,a.call(this,o)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(o){n=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Pl(e){e._valueTracker||(e._valueTracker=sk(e))}function Tw(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=Ew(e)?e.checked?"true":"false":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function vu(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function yp(e,t){var r=t.checked;return Te({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function Xy(e,t){var r=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=Dn(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Cw(e,t){t=t.checked,t!=null&&Km(e,"checked",t,!1)}function gp(e,t){Cw(e,t);var r=Dn(t.value),n=t.type;if(r!=null)n==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?xp(e,t.type,r):t.hasOwnProperty("defaultValue")&&xp(e,t.type,Dn(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Yy(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function xp(e,t,r){(t!=="number"||vu(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var Do=Array.isArray;function la(e,t,r,n){if(e=e.options,t){t={};for(var i=0;i<r.length;i++)t["$"+r[i]]=!0;for(r=0;r<e.length;r++)i=t.hasOwnProperty("$"+e[r].value),e[r].selected!==i&&(e[r].selected=i),i&&n&&(e[r].defaultSelected=!0)}else{for(r=""+Dn(r),t=null,i=0;i<e.length;i++){if(e[i].value===r){e[i].selected=!0,n&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function bp(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(H(91));return Te({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Qy(e,t){var r=t.value;if(r==null){if(r=t.children,t=t.defaultValue,r!=null){if(t!=null)throw Error(H(92));if(Do(r)){if(1<r.length)throw Error(H(93));r=r[0]}t=r}t==null&&(t=""),r=t}e._wrapperState={initialValue:Dn(r)}}function Mw(e,t){var r=Dn(t.value),n=Dn(t.defaultValue);r!=null&&(r=""+r,r!==e.value&&(e.value=r),t.defaultValue==null&&e.defaultValue!==r&&(e.defaultValue=r)),n!=null&&(e.defaultValue=""+n)}function Zy(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function Iw(e){switch(e){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"}}function wp(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?Iw(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Al,Lw=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,r,n,i){MSApp.execUnsafeLocalFunction(function(){return e(t,r,n,i)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(Al=Al||document.createElement("div"),Al.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Al.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function os(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var zo={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,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},lk=["Webkit","ms","Moz","O"];Object.keys(zo).forEach(function(e){lk.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),zo[t]=zo[e]})});function Dw(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||zo.hasOwnProperty(e)&&zo[e]?(""+t).trim():t+"px"}function Rw(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf("--")===0,i=Dw(r,t[r],n);r==="float"&&(r="cssFloat"),n?e.setProperty(r,i):e[r]=i}}var uk=Te({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});function jp(e,t){if(t){if(uk[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(H(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(H(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(H(61))}if(t.style!=null&&typeof t.style!="object")throw Error(H(62))}}function Sp(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){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 Op=null;function qm(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var _p=null,ua=null,ca=null;function Jy(e){if(e=ll(e)){if(typeof _p!="function")throw Error(H(280));var t=e.stateNode;t&&(t=Jc(t),_p(e.stateNode,e.type,t))}}function Bw(e){ua?ca?ca.push(e):ca=[e]:ua=e}function Fw(){if(ua){var e=ua,t=ca;if(ca=ua=null,Jy(e),t)for(e=0;e<t.length;e++)Jy(t[e])}}function zw(e,t){return e(t)}function Ww(){}var ud=!1;function Uw(e,t,r){if(ud)return e(t,r);ud=!0;try{return zw(e,t,r)}finally{ud=!1,(ua!==null||ca!==null)&&(Ww(),Fw())}}function ss(e,t){var r=e.stateNode;if(r===null)return null;var n=Jc(r);if(n===null)return null;r=n[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(n=!n.disabled)||(e=e.type,n=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!n;break e;default:e=!1}if(e)return null;if(r&&typeof r!="function")throw Error(H(231,t,typeof r));return r}var Pp=!1;if(Yr)try{var xo={};Object.defineProperty(xo,"passive",{get:function(){Pp=!0}}),window.addEventListener("test",xo,xo),window.removeEventListener("test",xo,xo)}catch{Pp=!1}function ck(e,t,r,n,i,a,o,s,l){var u=Array.prototype.slice.call(arguments,3);try{t.apply(r,u)}catch(f){this.onError(f)}}var Wo=!1,yu=null,gu=!1,Ap=null,fk={onError:function(e){Wo=!0,yu=e}};function dk(e,t,r,n,i,a,o,s,l){Wo=!1,yu=null,ck.apply(fk,arguments)}function pk(e,t,r,n,i,a,o,s,l){if(dk.apply(this,arguments),Wo){if(Wo){var u=yu;Wo=!1,yu=null}else throw Error(H(198));gu||(gu=!0,Ap=u)}}function Ti(e){var t=e,r=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(r=t.return),e=t.return;while(e)}return t.tag===3?r:null}function Kw(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function eg(e){if(Ti(e)!==e)throw Error(H(188))}function hk(e){var t=e.alternate;if(!t){if(t=Ti(e),t===null)throw Error(H(188));return t!==e?null:e}for(var r=e,n=t;;){var i=r.return;if(i===null)break;var a=i.alternate;if(a===null){if(n=i.return,n!==null){r=n;continue}break}if(i.child===a.child){for(a=i.child;a;){if(a===r)return eg(i),e;if(a===n)return eg(i),t;a=a.sibling}throw Error(H(188))}if(r.return!==n.return)r=i,n=a;else{for(var o=!1,s=i.child;s;){if(s===r){o=!0,r=i,n=a;break}if(s===n){o=!0,n=i,r=a;break}s=s.sibling}if(!o){for(s=a.child;s;){if(s===r){o=!0,r=a,n=i;break}if(s===n){o=!0,n=a,r=i;break}s=s.sibling}if(!o)throw Error(H(189))}}if(r.alternate!==n)throw Error(H(190))}if(r.tag!==3)throw Error(H(188));return r.stateNode.current===r?e:t}function Hw(e){return e=hk(e),e!==null?Vw(e):null}function Vw(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=Vw(e);if(t!==null)return t;e=e.sibling}return null}var Gw=Ut.unstable_scheduleCallback,tg=Ut.unstable_cancelCallback,mk=Ut.unstable_shouldYield,vk=Ut.unstable_requestPaint,De=Ut.unstable_now,yk=Ut.unstable_getCurrentPriorityLevel,Xm=Ut.unstable_ImmediatePriority,qw=Ut.unstable_UserBlockingPriority,xu=Ut.unstable_NormalPriority,gk=Ut.unstable_LowPriority,Xw=Ut.unstable_IdlePriority,Xc=null,$r=null;function xk(e){if($r&&typeof $r.onCommitFiberRoot=="function")try{$r.onCommitFiberRoot(Xc,e,void 0,(e.current.flags&128)===128)}catch{}}var yr=Math.clz32?Math.clz32:jk,bk=Math.log,wk=Math.LN2;function jk(e){return e>>>=0,e===0?32:31-(bk(e)/wk|0)|0}var kl=64,Nl=4194304;function Ro(e){switch(e&-e){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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function bu(e,t){var r=e.pendingLanes;if(r===0)return 0;var n=0,i=e.suspendedLanes,a=e.pingedLanes,o=r&268435455;if(o!==0){var s=o&~i;s!==0?n=Ro(s):(a&=o,a!==0&&(n=Ro(a)))}else o=r&~i,o!==0?n=Ro(o):a!==0&&(n=Ro(a));if(n===0)return 0;if(t!==0&&t!==n&&!(t&i)&&(i=n&-n,a=t&-t,i>=a||i===16&&(a&4194240)!==0))return t;if(n&4&&(n|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0<t;)r=31-yr(t),i=1<<r,n|=e[r],t&=~i;return n}function Sk(e,t){switch(e){case 1:case 2:case 4:return t+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 t+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}}function Ok(e,t){for(var r=e.suspendedLanes,n=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes;0<a;){var o=31-yr(a),s=1<<o,l=i[o];l===-1?(!(s&r)||s&n)&&(i[o]=Sk(s,t)):l<=t&&(e.expiredLanes|=s),a&=~s}}function kp(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Yw(){var e=kl;return kl<<=1,!(kl&4194240)&&(kl=64),e}function cd(e){for(var t=[],r=0;31>r;r++)t.push(e);return t}function ol(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-yr(t),e[t]=r}function _k(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var n=e.eventTimes;for(e=e.expirationTimes;0<r;){var i=31-yr(r),a=1<<i;t[i]=0,n[i]=-1,e[i]=-1,r&=~a}}function Ym(e,t){var r=e.entangledLanes|=t;for(e=e.entanglements;r;){var n=31-yr(r),i=1<<n;i&t|e[n]&t&&(e[n]|=t),r&=~i}}var fe=0;function Qw(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var Zw,Qm,Jw,ej,tj,Np=!1,$l=[],Pn=null,An=null,kn=null,ls=new Map,us=new Map,vn=[],Pk="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(" ");function rg(e,t){switch(e){case"focusin":case"focusout":Pn=null;break;case"dragenter":case"dragleave":An=null;break;case"mouseover":case"mouseout":kn=null;break;case"pointerover":case"pointerout":ls.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":us.delete(t.pointerId)}}function bo(e,t,r,n,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:r,eventSystemFlags:n,nativeEvent:a,targetContainers:[i]},t!==null&&(t=ll(t),t!==null&&Qm(t)),e):(e.eventSystemFlags|=n,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Ak(e,t,r,n,i){switch(t){case"focusin":return Pn=bo(Pn,e,t,r,n,i),!0;case"dragenter":return An=bo(An,e,t,r,n,i),!0;case"mouseover":return kn=bo(kn,e,t,r,n,i),!0;case"pointerover":var a=i.pointerId;return ls.set(a,bo(ls.get(a)||null,e,t,r,n,i)),!0;case"gotpointercapture":return a=i.pointerId,us.set(a,bo(us.get(a)||null,e,t,r,n,i)),!0}return!1}function rj(e){var t=li(e.target);if(t!==null){var r=Ti(t);if(r!==null){if(t=r.tag,t===13){if(t=Kw(r),t!==null){e.blockedOn=t,tj(e.priority,function(){Jw(r)});return}}else if(t===3&&r.stateNode.current.memoizedState.isDehydrated){e.blockedOn=r.tag===3?r.stateNode.containerInfo:null;return}}}e.blockedOn=null}function au(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var r=$p(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(r===null){r=e.nativeEvent;var n=new r.constructor(r.type,r);Op=n,r.target.dispatchEvent(n),Op=null}else return t=ll(r),t!==null&&Qm(t),e.blockedOn=r,!1;t.shift()}return!0}function ng(e,t,r){au(e)&&r.delete(t)}function kk(){Np=!1,Pn!==null&&au(Pn)&&(Pn=null),An!==null&&au(An)&&(An=null),kn!==null&&au(kn)&&(kn=null),ls.forEach(ng),us.forEach(ng)}function wo(e,t){e.blockedOn===t&&(e.blockedOn=null,Np||(Np=!0,Ut.unstable_scheduleCallback(Ut.unstable_NormalPriority,kk)))}function cs(e){function t(i){return wo(i,e)}if(0<$l.length){wo($l[0],e);for(var r=1;r<$l.length;r++){var n=$l[r];n.blockedOn===e&&(n.blockedOn=null)}}for(Pn!==null&&wo(Pn,e),An!==null&&wo(An,e),kn!==null&&wo(kn,e),ls.forEach(t),us.forEach(t),r=0;r<vn.length;r++)n=vn[r],n.blockedOn===e&&(n.blockedOn=null);for(;0<vn.length&&(r=vn[0],r.blockedOn===null);)rj(r),r.blockedOn===null&&vn.shift()}var fa=nn.ReactCurrentBatchConfig,wu=!0;function Nk(e,t,r,n){var i=fe,a=fa.transition;fa.transition=null;try{fe=1,Zm(e,t,r,n)}finally{fe=i,fa.transition=a}}function $k(e,t,r,n){var i=fe,a=fa.transition;fa.transition=null;try{fe=4,Zm(e,t,r,n)}finally{fe=i,fa.transition=a}}function Zm(e,t,r,n){if(wu){var i=$p(e,t,r,n);if(i===null)bd(e,t,n,ju,r),rg(e,n);else if(Ak(i,e,t,r,n))n.stopPropagation();else if(rg(e,n),t&4&&-1<Pk.indexOf(e)){for(;i!==null;){var a=ll(i);if(a!==null&&Zw(a),a=$p(e,t,r,n),a===null&&bd(e,t,n,ju,r),a===i)break;i=a}i!==null&&n.stopPropagation()}else bd(e,t,n,null,r)}}var ju=null;function $p(e,t,r,n){if(ju=null,e=qm(n),e=li(e),e!==null)if(t=Ti(e),t===null)e=null;else if(r=t.tag,r===13){if(e=Kw(t),e!==null)return e;e=null}else if(r===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return ju=e,null}function nj(e){switch(e){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;case"message":switch(yk()){case Xm:return 1;case qw:return 4;case xu:case gk:return 16;case Xw:return 536870912;default:return 16}default:return 16}}var xn=null,Jm=null,ou=null;function ij(){if(ou)return ou;var e,t=Jm,r=t.length,n,i="value"in xn?xn.value:xn.textContent,a=i.length;for(e=0;e<r&&t[e]===i[e];e++);var o=r-e;for(n=1;n<=o&&t[r-n]===i[a-n];n++);return ou=i.slice(e,1<n?1-n:void 0)}function su(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function El(){return!0}function ig(){return!1}function Ht(e){function t(r,n,i,a,o){this._reactName=r,this._targetInst=i,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null;for(var s in e)e.hasOwnProperty(s)&&(r=e[s],this[s]=r?r(a):a[s]);return this.isDefaultPrevented=(a.defaultPrevented!=null?a.defaultPrevented:a.returnValue===!1)?El:ig,this.isPropagationStopped=ig,this}return Te(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var r=this.nativeEvent;r&&(r.preventDefault?r.preventDefault():typeof r.returnValue!="unknown"&&(r.returnValue=!1),this.isDefaultPrevented=El)},stopPropagation:function(){var r=this.nativeEvent;r&&(r.stopPropagation?r.stopPropagation():typeof r.cancelBubble!="unknown"&&(r.cancelBubble=!0),this.isPropagationStopped=El)},persist:function(){},isPersistent:El}),t}var eo={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ev=Ht(eo),sl=Te({},eo,{view:0,detail:0}),Ek=Ht(sl),fd,dd,jo,Yc=Te({},sl,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:tv,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==jo&&(jo&&e.type==="mousemove"?(fd=e.screenX-jo.screenX,dd=e.screenY-jo.screenY):dd=fd=0,jo=e),fd)},movementY:function(e){return"movementY"in e?e.movementY:dd}}),ag=Ht(Yc),Tk=Te({},Yc,{dataTransfer:0}),Ck=Ht(Tk),Mk=Te({},sl,{relatedTarget:0}),pd=Ht(Mk),Ik=Te({},eo,{animationName:0,elapsedTime:0,pseudoElement:0}),Lk=Ht(Ik),Dk=Te({},eo,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Rk=Ht(Dk),Bk=Te({},eo,{data:0}),og=Ht(Bk),Fk={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},zk={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",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Wk={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Uk(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Wk[e])?!!t[e]:!1}function tv(){return Uk}var Kk=Te({},sl,{key:function(e){if(e.key){var t=Fk[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=su(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?zk[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:tv,charCode:function(e){return e.type==="keypress"?su(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?su(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Hk=Ht(Kk),Vk=Te({},Yc,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),sg=Ht(Vk),Gk=Te({},sl,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:tv}),qk=Ht(Gk),Xk=Te({},eo,{propertyName:0,elapsedTime:0,pseudoElement:0}),Yk=Ht(Xk),Qk=Te({},Yc,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Zk=Ht(Qk),Jk=[9,13,27,32],rv=Yr&&"CompositionEvent"in window,Uo=null;Yr&&"documentMode"in document&&(Uo=document.documentMode);var e2=Yr&&"TextEvent"in window&&!Uo,aj=Yr&&(!rv||Uo&&8<Uo&&11>=Uo),lg=" ",ug=!1;function oj(e,t){switch(e){case"keyup":return Jk.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function sj(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Gi=!1;function t2(e,t){switch(e){case"compositionend":return sj(t);case"keypress":return t.which!==32?null:(ug=!0,lg);case"textInput":return e=t.data,e===lg&&ug?null:e;default:return null}}function r2(e,t){if(Gi)return e==="compositionend"||!rv&&oj(e,t)?(e=ij(),ou=Jm=xn=null,Gi=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return aj&&t.locale!=="ko"?null:t.data;default:return null}}var n2={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 cg(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!n2[e.type]:t==="textarea"}function lj(e,t,r,n){Bw(n),t=Su(t,"onChange"),0<t.length&&(r=new ev("onChange","change",null,r,n),e.push({event:r,listeners:t}))}var Ko=null,fs=null;function i2(e){xj(e,0)}function Qc(e){var t=Yi(e);if(Tw(t))return e}function a2(e,t){if(e==="change")return t}var uj=!1;if(Yr){var hd;if(Yr){var md="oninput"in document;if(!md){var fg=document.createElement("div");fg.setAttribute("oninput","return;"),md=typeof fg.oninput=="function"}hd=md}else hd=!1;uj=hd&&(!document.documentMode||9<document.documentMode)}function dg(){Ko&&(Ko.detachEvent("onpropertychange",cj),fs=Ko=null)}function cj(e){if(e.propertyName==="value"&&Qc(fs)){var t=[];lj(t,fs,e,qm(e)),Uw(i2,t)}}function o2(e,t,r){e==="focusin"?(dg(),Ko=t,fs=r,Ko.attachEvent("onpropertychange",cj)):e==="focusout"&&dg()}function s2(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Qc(fs)}function l2(e,t){if(e==="click")return Qc(t)}function u2(e,t){if(e==="input"||e==="change")return Qc(t)}function c2(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var wr=typeof Object.is=="function"?Object.is:c2;function ds(e,t){if(wr(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(n=0;n<r.length;n++){var i=r[n];if(!dp.call(t,i)||!wr(e[i],t[i]))return!1}return!0}function pg(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function hg(e,t){var r=pg(e);e=0;for(var n;r;){if(r.nodeType===3){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=pg(r)}}function fj(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?fj(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function dj(){for(var e=window,t=vu();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=vu(e.document)}return t}function nv(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function f2(e){var t=dj(),r=e.focusedElem,n=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&fj(r.ownerDocument.documentElement,r)){if(n!==null&&nv(r)){if(t=n.start,e=n.end,e===void 0&&(e=t),"selectionStart"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=r.textContent.length,a=Math.min(n.start,i);n=n.end===void 0?a:Math.min(n.end,i),!e.extend&&a>n&&(i=n,n=a,a=i),i=hg(r,a);var o=hg(r,n);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),a>n?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r<t.length;r++)e=t[r],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var d2=Yr&&"documentMode"in document&&11>=document.documentMode,qi=null,Ep=null,Ho=null,Tp=!1;function mg(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;Tp||qi==null||qi!==vu(n)||(n=qi,"selectionStart"in n&&nv(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),Ho&&ds(Ho,n)||(Ho=n,n=Su(Ep,"onSelect"),0<n.length&&(t=new ev("onSelect","select",null,t,r),e.push({event:t,listeners:n}),t.target=qi)))}function Tl(e,t){var r={};return r[e.toLowerCase()]=t.toLowerCase(),r["Webkit"+e]="webkit"+t,r["Moz"+e]="moz"+t,r}var Xi={animationend:Tl("Animation","AnimationEnd"),animationiteration:Tl("Animation","AnimationIteration"),animationstart:Tl("Animation","AnimationStart"),transitionend:Tl("Transition","TransitionEnd")},vd={},pj={};Yr&&(pj=document.createElement("div").style,"AnimationEvent"in window||(delete Xi.animationend.animation,delete Xi.animationiteration.animation,delete Xi.animationstart.animation),"TransitionEvent"in window||delete Xi.transitionend.transition);function Zc(e){if(vd[e])return vd[e];if(!Xi[e])return e;var t=Xi[e],r;for(r in t)if(t.hasOwnProperty(r)&&r in pj)return vd[e]=t[r];return e}var hj=Zc("animationend"),mj=Zc("animationiteration"),vj=Zc("animationstart"),yj=Zc("transitionend"),gj=new Map,vg="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(" ");function Wn(e,t){gj.set(e,t),Ei(t,[e])}for(var yd=0;yd<vg.length;yd++){var gd=vg[yd],p2=gd.toLowerCase(),h2=gd[0].toUpperCase()+gd.slice(1);Wn(p2,"on"+h2)}Wn(hj,"onAnimationEnd");Wn(mj,"onAnimationIteration");Wn(vj,"onAnimationStart");Wn("dblclick","onDoubleClick");Wn("focusin","onFocus");Wn("focusout","onBlur");Wn(yj,"onTransitionEnd");ya("onMouseEnter",["mouseout","mouseover"]);ya("onMouseLeave",["mouseout","mouseover"]);ya("onPointerEnter",["pointerout","pointerover"]);ya("onPointerLeave",["pointerout","pointerover"]);Ei("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Ei("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Ei("onBeforeInput",["compositionend","keypress","textInput","paste"]);Ei("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Ei("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Ei("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Bo="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(" "),m2=new Set("cancel close invalid load scroll toggle".split(" ").concat(Bo));function yg(e,t,r){var n=e.type||"unknown-event";e.currentTarget=r,pk(n,t,void 0,e),e.currentTarget=null}function xj(e,t){t=(t&4)!==0;for(var r=0;r<e.length;r++){var n=e[r],i=n.event;n=n.listeners;e:{var a=void 0;if(t)for(var o=n.length-1;0<=o;o--){var s=n[o],l=s.instance,u=s.currentTarget;if(s=s.listener,l!==a&&i.isPropagationStopped())break e;yg(i,s,u),a=l}else for(o=0;o<n.length;o++){if(s=n[o],l=s.instance,u=s.currentTarget,s=s.listener,l!==a&&i.isPropagationStopped())break e;yg(i,s,u),a=l}}}if(gu)throw e=Ap,gu=!1,Ap=null,e}function be(e,t){var r=t[Dp];r===void 0&&(r=t[Dp]=new Set);var n=e+"__bubble";r.has(n)||(bj(t,e,2,!1),r.add(n))}function xd(e,t,r){var n=0;t&&(n|=4),bj(r,e,n,t)}var Cl="_reactListening"+Math.random().toString(36).slice(2);function ps(e){if(!e[Cl]){e[Cl]=!0,Aw.forEach(function(r){r!=="selectionchange"&&(m2.has(r)||xd(r,!1,e),xd(r,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Cl]||(t[Cl]=!0,xd("selectionchange",!1,t))}}function bj(e,t,r,n){switch(nj(t)){case 1:var i=Nk;break;case 4:i=$k;break;default:i=Zm}r=i.bind(null,t,r,e),i=void 0,!Pp||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(i=!0),n?i!==void 0?e.addEventListener(t,r,{capture:!0,passive:i}):e.addEventListener(t,r,!0):i!==void 0?e.addEventListener(t,r,{passive:i}):e.addEventListener(t,r,!1)}function bd(e,t,r,n,i){var a=n;if(!(t&1)&&!(t&2)&&n!==null)e:for(;;){if(n===null)return;var o=n.tag;if(o===3||o===4){var s=n.stateNode.containerInfo;if(s===i||s.nodeType===8&&s.parentNode===i)break;if(o===4)for(o=n.return;o!==null;){var l=o.tag;if((l===3||l===4)&&(l=o.stateNode.containerInfo,l===i||l.nodeType===8&&l.parentNode===i))return;o=o.return}for(;s!==null;){if(o=li(s),o===null)return;if(l=o.tag,l===5||l===6){n=a=o;continue e}s=s.parentNode}}n=n.return}Uw(function(){var u=a,f=qm(r),d=[];e:{var p=gj.get(e);if(p!==void 0){var h=ev,m=e;switch(e){case"keypress":if(su(r)===0)break e;case"keydown":case"keyup":h=Hk;break;case"focusin":m="focus",h=pd;break;case"focusout":m="blur",h=pd;break;case"beforeblur":case"afterblur":h=pd;break;case"click":if(r.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":h=ag;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":h=Ck;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":h=qk;break;case hj:case mj:case vj:h=Lk;break;case yj:h=Yk;break;case"scroll":h=Ek;break;case"wheel":h=Zk;break;case"copy":case"cut":case"paste":h=Rk;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":h=sg}var g=(t&4)!==0,x=!g&&e==="scroll",y=g?p!==null?p+"Capture":null:p;g=[];for(var v=u,b;v!==null;){b=v;var S=b.stateNode;if(b.tag===5&&S!==null&&(b=S,y!==null&&(S=ss(v,y),S!=null&&g.push(hs(v,S,b)))),x)break;v=v.return}0<g.length&&(p=new h(p,m,null,r,f),d.push({event:p,listeners:g}))}}if(!(t&7)){e:{if(p=e==="mouseover"||e==="pointerover",h=e==="mouseout"||e==="pointerout",p&&r!==Op&&(m=r.relatedTarget||r.fromElement)&&(li(m)||m[Qr]))break e;if((h||p)&&(p=f.window===f?f:(p=f.ownerDocument)?p.defaultView||p.parentWindow:window,h?(m=r.relatedTarget||r.toElement,h=u,m=m?li(m):null,m!==null&&(x=Ti(m),m!==x||m.tag!==5&&m.tag!==6)&&(m=null)):(h=null,m=u),h!==m)){if(g=ag,S="onMouseLeave",y="onMouseEnter",v="mouse",(e==="pointerout"||e==="pointerover")&&(g=sg,S="onPointerLeave",y="onPointerEnter",v="pointer"),x=h==null?p:Yi(h),b=m==null?p:Yi(m),p=new g(S,v+"leave",h,r,f),p.target=x,p.relatedTarget=b,S=null,li(f)===u&&(g=new g(y,v+"enter",m,r,f),g.target=b,g.relatedTarget=x,S=g),x=S,h&&m)t:{for(g=h,y=m,v=0,b=g;b;b=Bi(b))v++;for(b=0,S=y;S;S=Bi(S))b++;for(;0<v-b;)g=Bi(g),v--;for(;0<b-v;)y=Bi(y),b--;for(;v--;){if(g===y||y!==null&&g===y.alternate)break t;g=Bi(g),y=Bi(y)}g=null}else g=null;h!==null&&gg(d,p,h,g,!1),m!==null&&x!==null&&gg(d,x,m,g,!0)}}e:{if(p=u?Yi(u):window,h=p.nodeName&&p.nodeName.toLowerCase(),h==="select"||h==="input"&&p.type==="file")var w=a2;else if(cg(p))if(uj)w=u2;else{w=s2;var j=o2}else(h=p.nodeName)&&h.toLowerCase()==="input"&&(p.type==="checkbox"||p.type==="radio")&&(w=l2);if(w&&(w=w(e,u))){lj(d,w,r,f);break e}j&&j(e,p,u),e==="focusout"&&(j=p._wrapperState)&&j.controlled&&p.type==="number"&&xp(p,"number",p.value)}switch(j=u?Yi(u):window,e){case"focusin":(cg(j)||j.contentEditable==="true")&&(qi=j,Ep=u,Ho=null);break;case"focusout":Ho=Ep=qi=null;break;case"mousedown":Tp=!0;break;case"contextmenu":case"mouseup":case"dragend":Tp=!1,mg(d,r,f);break;case"selectionchange":if(d2)break;case"keydown":case"keyup":mg(d,r,f)}var O;if(rv)e:{switch(e){case"compositionstart":var _="onCompositionStart";break e;case"compositionend":_="onCompositionEnd";break e;case"compositionupdate":_="onCompositionUpdate";break e}_=void 0}else Gi?oj(e,r)&&(_="onCompositionEnd"):e==="keydown"&&r.keyCode===229&&(_="onCompositionStart");_&&(aj&&r.locale!=="ko"&&(Gi||_!=="onCompositionStart"?_==="onCompositionEnd"&&Gi&&(O=ij()):(xn=f,Jm="value"in xn?xn.value:xn.textContent,Gi=!0)),j=Su(u,_),0<j.length&&(_=new og(_,e,null,r,f),d.push({event:_,listeners:j}),O?_.data=O:(O=sj(r),O!==null&&(_.data=O)))),(O=e2?t2(e,r):r2(e,r))&&(u=Su(u,"onBeforeInput"),0<u.length&&(f=new og("onBeforeInput","beforeinput",null,r,f),d.push({event:f,listeners:u}),f.data=O))}xj(d,t)})}function hs(e,t,r){return{instance:e,listener:t,currentTarget:r}}function Su(e,t){for(var r=t+"Capture",n=[];e!==null;){var i=e,a=i.stateNode;i.tag===5&&a!==null&&(i=a,a=ss(e,r),a!=null&&n.unshift(hs(e,a,i)),a=ss(e,t),a!=null&&n.push(hs(e,a,i))),e=e.return}return n}function Bi(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function gg(e,t,r,n,i){for(var a=t._reactName,o=[];r!==null&&r!==n;){var s=r,l=s.alternate,u=s.stateNode;if(l!==null&&l===n)break;s.tag===5&&u!==null&&(s=u,i?(l=ss(r,a),l!=null&&o.unshift(hs(r,l,s))):i||(l=ss(r,a),l!=null&&o.push(hs(r,l,s)))),r=r.return}o.length!==0&&e.push({event:t,listeners:o})}var v2=/\r\n?/g,y2=/\u0000|\uFFFD/g;function xg(e){return(typeof e=="string"?e:""+e).replace(v2,`
+`).replace(y2,"")}function Ml(e,t,r){if(t=xg(t),xg(e)!==t&&r)throw Error(H(425))}function Ou(){}var Cp=null,Mp=null;function Ip(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Lp=typeof setTimeout=="function"?setTimeout:void 0,g2=typeof clearTimeout=="function"?clearTimeout:void 0,bg=typeof Promise=="function"?Promise:void 0,x2=typeof queueMicrotask=="function"?queueMicrotask:typeof bg<"u"?function(e){return bg.resolve(null).then(e).catch(b2)}:Lp;function b2(e){setTimeout(function(){throw e})}function wd(e,t){var r=t,n=0;do{var i=r.nextSibling;if(e.removeChild(r),i&&i.nodeType===8)if(r=i.data,r==="/$"){if(n===0){e.removeChild(i),cs(t);return}n--}else r!=="$"&&r!=="$?"&&r!=="$!"||n++;r=i}while(r);cs(t)}function Nn(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function wg(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var r=e.data;if(r==="$"||r==="$!"||r==="$?"){if(t===0)return e;t--}else r==="/$"&&t++}e=e.previousSibling}return null}var to=Math.random().toString(36).slice(2),Ar="__reactFiber$"+to,ms="__reactProps$"+to,Qr="__reactContainer$"+to,Dp="__reactEvents$"+to,w2="__reactListeners$"+to,j2="__reactHandles$"+to;function li(e){var t=e[Ar];if(t)return t;for(var r=e.parentNode;r;){if(t=r[Qr]||r[Ar]){if(r=t.alternate,t.child!==null||r!==null&&r.child!==null)for(e=wg(e);e!==null;){if(r=e[Ar])return r;e=wg(e)}return t}e=r,r=e.parentNode}return null}function ll(e){return e=e[Ar]||e[Qr],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Yi(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(H(33))}function Jc(e){return e[ms]||null}var Rp=[],Qi=-1;function Un(e){return{current:e}}function _e(e){0>Qi||(e.current=Rp[Qi],Rp[Qi]=null,Qi--)}function ge(e,t){Qi++,Rp[Qi]=e.current,e.current=t}var Rn={},mt=Un(Rn),Nt=Un(!1),wi=Rn;function ga(e,t){var r=e.type.contextTypes;if(!r)return Rn;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var i={},a;for(a in r)i[a]=t[a];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function $t(e){return e=e.childContextTypes,e!=null}function _u(){_e(Nt),_e(mt)}function jg(e,t,r){if(mt.current!==Rn)throw Error(H(168));ge(mt,t),ge(Nt,r)}function wj(e,t,r){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var i in n)if(!(i in t))throw Error(H(108,ok(e)||"Unknown",i));return Te({},r,n)}function Pu(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Rn,wi=mt.current,ge(mt,e),ge(Nt,Nt.current),!0}function Sg(e,t,r){var n=e.stateNode;if(!n)throw Error(H(169));r?(e=wj(e,t,wi),n.__reactInternalMemoizedMergedChildContext=e,_e(Nt),_e(mt),ge(mt,e)):_e(Nt),ge(Nt,r)}var Fr=null,ef=!1,jd=!1;function jj(e){Fr===null?Fr=[e]:Fr.push(e)}function S2(e){ef=!0,jj(e)}function Kn(){if(!jd&&Fr!==null){jd=!0;var e=0,t=fe;try{var r=Fr;for(fe=1;e<r.length;e++){var n=r[e];do n=n(!0);while(n!==null)}Fr=null,ef=!1}catch(i){throw Fr!==null&&(Fr=Fr.slice(e+1)),Gw(Xm,Kn),i}finally{fe=t,jd=!1}}return null}var Zi=[],Ji=0,Au=null,ku=0,Qt=[],Zt=0,ji=null,zr=1,Wr="";function ri(e,t){Zi[Ji++]=ku,Zi[Ji++]=Au,Au=e,ku=t}function Sj(e,t,r){Qt[Zt++]=zr,Qt[Zt++]=Wr,Qt[Zt++]=ji,ji=e;var n=zr;e=Wr;var i=32-yr(n)-1;n&=~(1<<i),r+=1;var a=32-yr(t)+i;if(30<a){var o=i-i%5;a=(n&(1<<o)-1).toString(32),n>>=o,i-=o,zr=1<<32-yr(t)+i|r<<i|n,Wr=a+e}else zr=1<<a|r<<i|n,Wr=e}function iv(e){e.return!==null&&(ri(e,1),Sj(e,1,0))}function av(e){for(;e===Au;)Au=Zi[--Ji],Zi[Ji]=null,ku=Zi[--Ji],Zi[Ji]=null;for(;e===ji;)ji=Qt[--Zt],Qt[Zt]=null,Wr=Qt[--Zt],Qt[Zt]=null,zr=Qt[--Zt],Qt[Zt]=null}var zt=null,Ft=null,Ae=!1,mr=null;function Oj(e,t){var r=er(5,null,null,0);r.elementType="DELETED",r.stateNode=t,r.return=e,t=e.deletions,t===null?(e.deletions=[r],e.flags|=16):t.push(r)}function Og(e,t){switch(e.tag){case 5:var r=e.type;return t=t.nodeType!==1||r.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,zt=e,Ft=Nn(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,zt=e,Ft=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(r=ji!==null?{id:zr,overflow:Wr}:null,e.memoizedState={dehydrated:t,treeContext:r,retryLane:1073741824},r=er(18,null,null,0),r.stateNode=t,r.return=e,e.child=r,zt=e,Ft=null,!0):!1;default:return!1}}function Bp(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Fp(e){if(Ae){var t=Ft;if(t){var r=t;if(!Og(e,t)){if(Bp(e))throw Error(H(418));t=Nn(r.nextSibling);var n=zt;t&&Og(e,t)?Oj(n,r):(e.flags=e.flags&-4097|2,Ae=!1,zt=e)}}else{if(Bp(e))throw Error(H(418));e.flags=e.flags&-4097|2,Ae=!1,zt=e}}}function _g(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;zt=e}function Il(e){if(e!==zt)return!1;if(!Ae)return _g(e),Ae=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Ip(e.type,e.memoizedProps)),t&&(t=Ft)){if(Bp(e))throw _j(),Error(H(418));for(;t;)Oj(e,t),t=Nn(t.nextSibling)}if(_g(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(H(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var r=e.data;if(r==="/$"){if(t===0){Ft=Nn(e.nextSibling);break e}t--}else r!=="$"&&r!=="$!"&&r!=="$?"||t++}e=e.nextSibling}Ft=null}}else Ft=zt?Nn(e.stateNode.nextSibling):null;return!0}function _j(){for(var e=Ft;e;)e=Nn(e.nextSibling)}function xa(){Ft=zt=null,Ae=!1}function ov(e){mr===null?mr=[e]:mr.push(e)}var O2=nn.ReactCurrentBatchConfig;function So(e,t,r){if(e=r.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(r._owner){if(r=r._owner,r){if(r.tag!==1)throw Error(H(309));var n=r.stateNode}if(!n)throw Error(H(147,e));var i=n,a=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===a?t.ref:(t=function(o){var s=i.refs;o===null?delete s[a]:s[a]=o},t._stringRef=a,t)}if(typeof e!="string")throw Error(H(284));if(!r._owner)throw Error(H(290,e))}return e}function Ll(e,t){throw e=Object.prototype.toString.call(t),Error(H(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Pg(e){var t=e._init;return t(e._payload)}function Pj(e){function t(y,v){if(e){var b=y.deletions;b===null?(y.deletions=[v],y.flags|=16):b.push(v)}}function r(y,v){if(!e)return null;for(;v!==null;)t(y,v),v=v.sibling;return null}function n(y,v){for(y=new Map;v!==null;)v.key!==null?y.set(v.key,v):y.set(v.index,v),v=v.sibling;return y}function i(y,v){return y=Cn(y,v),y.index=0,y.sibling=null,y}function a(y,v,b){return y.index=b,e?(b=y.alternate,b!==null?(b=b.index,b<v?(y.flags|=2,v):b):(y.flags|=2,v)):(y.flags|=1048576,v)}function o(y){return e&&y.alternate===null&&(y.flags|=2),y}function s(y,v,b,S){return v===null||v.tag!==6?(v=Nd(b,y.mode,S),v.return=y,v):(v=i(v,b),v.return=y,v)}function l(y,v,b,S){var w=b.type;return w===Vi?f(y,v,b.props.children,S,b.key):v!==null&&(v.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===pn&&Pg(w)===v.type)?(S=i(v,b.props),S.ref=So(y,v,b),S.return=y,S):(S=hu(b.type,b.key,b.props,null,y.mode,S),S.ref=So(y,v,b),S.return=y,S)}function u(y,v,b,S){return v===null||v.tag!==4||v.stateNode.containerInfo!==b.containerInfo||v.stateNode.implementation!==b.implementation?(v=$d(b,y.mode,S),v.return=y,v):(v=i(v,b.children||[]),v.return=y,v)}function f(y,v,b,S,w){return v===null||v.tag!==7?(v=yi(b,y.mode,S,w),v.return=y,v):(v=i(v,b),v.return=y,v)}function d(y,v,b){if(typeof v=="string"&&v!==""||typeof v=="number")return v=Nd(""+v,y.mode,b),v.return=y,v;if(typeof v=="object"&&v!==null){switch(v.$$typeof){case _l:return b=hu(v.type,v.key,v.props,null,y.mode,b),b.ref=So(y,null,v),b.return=y,b;case Hi:return v=$d(v,y.mode,b),v.return=y,v;case pn:var S=v._init;return d(y,S(v._payload),b)}if(Do(v)||go(v))return v=yi(v,y.mode,b,null),v.return=y,v;Ll(y,v)}return null}function p(y,v,b,S){var w=v!==null?v.key:null;if(typeof b=="string"&&b!==""||typeof b=="number")return w!==null?null:s(y,v,""+b,S);if(typeof b=="object"&&b!==null){switch(b.$$typeof){case _l:return b.key===w?l(y,v,b,S):null;case Hi:return b.key===w?u(y,v,b,S):null;case pn:return w=b._init,p(y,v,w(b._payload),S)}if(Do(b)||go(b))return w!==null?null:f(y,v,b,S,null);Ll(y,b)}return null}function h(y,v,b,S,w){if(typeof S=="string"&&S!==""||typeof S=="number")return y=y.get(b)||null,s(v,y,""+S,w);if(typeof S=="object"&&S!==null){switch(S.$$typeof){case _l:return y=y.get(S.key===null?b:S.key)||null,l(v,y,S,w);case Hi:return y=y.get(S.key===null?b:S.key)||null,u(v,y,S,w);case pn:var j=S._init;return h(y,v,b,j(S._payload),w)}if(Do(S)||go(S))return y=y.get(b)||null,f(v,y,S,w,null);Ll(v,S)}return null}function m(y,v,b,S){for(var w=null,j=null,O=v,_=v=0,P=null;O!==null&&_<b.length;_++){O.index>_?(P=O,O=null):P=O.sibling;var N=p(y,O,b[_],S);if(N===null){O===null&&(O=P);break}e&&O&&N.alternate===null&&t(y,O),v=a(N,v,_),j===null?w=N:j.sibling=N,j=N,O=P}if(_===b.length)return r(y,O),Ae&&ri(y,_),w;if(O===null){for(;_<b.length;_++)O=d(y,b[_],S),O!==null&&(v=a(O,v,_),j===null?w=O:j.sibling=O,j=O);return Ae&&ri(y,_),w}for(O=n(y,O);_<b.length;_++)P=h(O,y,_,b[_],S),P!==null&&(e&&P.alternate!==null&&O.delete(P.key===null?_:P.key),v=a(P,v,_),j===null?w=P:j.sibling=P,j=P);return e&&O.forEach(function(T){return t(y,T)}),Ae&&ri(y,_),w}function g(y,v,b,S){var w=go(b);if(typeof w!="function")throw Error(H(150));if(b=w.call(b),b==null)throw Error(H(151));for(var j=w=null,O=v,_=v=0,P=null,N=b.next();O!==null&&!N.done;_++,N=b.next()){O.index>_?(P=O,O=null):P=O.sibling;var T=p(y,O,N.value,S);if(T===null){O===null&&(O=P);break}e&&O&&T.alternate===null&&t(y,O),v=a(T,v,_),j===null?w=T:j.sibling=T,j=T,O=P}if(N.done)return r(y,O),Ae&&ri(y,_),w;if(O===null){for(;!N.done;_++,N=b.next())N=d(y,N.value,S),N!==null&&(v=a(N,v,_),j===null?w=N:j.sibling=N,j=N);return Ae&&ri(y,_),w}for(O=n(y,O);!N.done;_++,N=b.next())N=h(O,y,_,N.value,S),N!==null&&(e&&N.alternate!==null&&O.delete(N.key===null?_:N.key),v=a(N,v,_),j===null?w=N:j.sibling=N,j=N);return e&&O.forEach(function($){return t(y,$)}),Ae&&ri(y,_),w}function x(y,v,b,S){if(typeof b=="object"&&b!==null&&b.type===Vi&&b.key===null&&(b=b.props.children),typeof b=="object"&&b!==null){switch(b.$$typeof){case _l:e:{for(var w=b.key,j=v;j!==null;){if(j.key===w){if(w=b.type,w===Vi){if(j.tag===7){r(y,j.sibling),v=i(j,b.props.children),v.return=y,y=v;break e}}else if(j.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===pn&&Pg(w)===j.type){r(y,j.sibling),v=i(j,b.props),v.ref=So(y,j,b),v.return=y,y=v;break e}r(y,j);break}else t(y,j);j=j.sibling}b.type===Vi?(v=yi(b.props.children,y.mode,S,b.key),v.return=y,y=v):(S=hu(b.type,b.key,b.props,null,y.mode,S),S.ref=So(y,v,b),S.return=y,y=S)}return o(y);case Hi:e:{for(j=b.key;v!==null;){if(v.key===j)if(v.tag===4&&v.stateNode.containerInfo===b.containerInfo&&v.stateNode.implementation===b.implementation){r(y,v.sibling),v=i(v,b.children||[]),v.return=y,y=v;break e}else{r(y,v);break}else t(y,v);v=v.sibling}v=$d(b,y.mode,S),v.return=y,y=v}return o(y);case pn:return j=b._init,x(y,v,j(b._payload),S)}if(Do(b))return m(y,v,b,S);if(go(b))return g(y,v,b,S);Ll(y,b)}return typeof b=="string"&&b!==""||typeof b=="number"?(b=""+b,v!==null&&v.tag===6?(r(y,v.sibling),v=i(v,b),v.return=y,y=v):(r(y,v),v=Nd(b,y.mode,S),v.return=y,y=v),o(y)):r(y,v)}return x}var ba=Pj(!0),Aj=Pj(!1),Nu=Un(null),$u=null,ea=null,sv=null;function lv(){sv=ea=$u=null}function uv(e){var t=Nu.current;_e(Nu),e._currentValue=t}function zp(e,t,r){for(;e!==null;){var n=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,n!==null&&(n.childLanes|=t)):n!==null&&(n.childLanes&t)!==t&&(n.childLanes|=t),e===r)break;e=e.return}}function da(e,t){$u=e,sv=ea=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(At=!0),e.firstContext=null)}function nr(e){var t=e._currentValue;if(sv!==e)if(e={context:e,memoizedValue:t,next:null},ea===null){if($u===null)throw Error(H(308));ea=e,$u.dependencies={lanes:0,firstContext:e}}else ea=ea.next=e;return t}var ui=null;function cv(e){ui===null?ui=[e]:ui.push(e)}function kj(e,t,r,n){var i=t.interleaved;return i===null?(r.next=r,cv(t)):(r.next=i.next,i.next=r),t.interleaved=r,Zr(e,n)}function Zr(e,t){e.lanes|=t;var r=e.alternate;for(r!==null&&(r.lanes|=t),r=e,e=e.return;e!==null;)e.childLanes|=t,r=e.alternate,r!==null&&(r.childLanes|=t),r=e,e=e.return;return r.tag===3?r.stateNode:null}var hn=!1;function fv(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Nj(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Vr(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function $n(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,le&2){var i=n.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),n.pending=t,Zr(e,r)}return i=n.interleaved,i===null?(t.next=t,cv(n)):(t.next=i.next,i.next=t),n.interleaved=t,Zr(e,r)}function lu(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194240)!==0)){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,Ym(e,r)}}function Ag(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var i=null,a=null;if(r=r.firstBaseUpdate,r!==null){do{var o={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};a===null?i=a=o:a=a.next=o,r=r.next}while(r!==null);a===null?i=a=t:a=a.next=t}else i=a=t;r={baseState:n.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:n.shared,effects:n.effects},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}function Eu(e,t,r,n){var i=e.updateQueue;hn=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var l=s,u=l.next;l.next=null,o===null?a=u:o.next=u,o=l;var f=e.alternate;f!==null&&(f=f.updateQueue,s=f.lastBaseUpdate,s!==o&&(s===null?f.firstBaseUpdate=u:s.next=u,f.lastBaseUpdate=l))}if(a!==null){var d=i.baseState;o=0,f=u=l=null,s=a;do{var p=s.lane,h=s.eventTime;if((n&p)===p){f!==null&&(f=f.next={eventTime:h,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var m=e,g=s;switch(p=t,h=r,g.tag){case 1:if(m=g.payload,typeof m=="function"){d=m.call(h,d,p);break e}d=m;break e;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,p=typeof m=="function"?m.call(h,d,p):m,p==null)break e;d=Te({},d,p);break e;case 2:hn=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,p=i.effects,p===null?i.effects=[s]:p.push(s))}else h={eventTime:h,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},f===null?(u=f=h,l=d):f=f.next=h,o|=p;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(!0);if(f===null&&(l=d),i.baseState=l,i.firstBaseUpdate=u,i.lastBaseUpdate=f,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else a===null&&(i.shared.lanes=0);Oi|=o,e.lanes=o,e.memoizedState=d}}function kg(e,t,r){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var n=e[t],i=n.callback;if(i!==null){if(n.callback=null,n=r,typeof i!="function")throw Error(H(191,i));i.call(n)}}}var ul={},Er=Un(ul),vs=Un(ul),ys=Un(ul);function ci(e){if(e===ul)throw Error(H(174));return e}function dv(e,t){switch(ge(ys,t),ge(vs,e),ge(Er,ul),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:wp(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=wp(t,e)}_e(Er),ge(Er,t)}function wa(){_e(Er),_e(vs),_e(ys)}function $j(e){ci(ys.current);var t=ci(Er.current),r=wp(t,e.type);t!==r&&(ge(vs,e),ge(Er,r))}function pv(e){vs.current===e&&(_e(Er),_e(vs))}var Ne=Un(0);function Tu(e){for(var t=e;t!==null;){if(t.tag===13){var r=t.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||r.data==="$?"||r.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Sd=[];function hv(){for(var e=0;e<Sd.length;e++)Sd[e]._workInProgressVersionPrimary=null;Sd.length=0}var uu=nn.ReactCurrentDispatcher,Od=nn.ReactCurrentBatchConfig,Si=0,Ee=null,qe=null,Je=null,Cu=!1,Vo=!1,gs=0,_2=0;function lt(){throw Error(H(321))}function mv(e,t){if(t===null)return!1;for(var r=0;r<t.length&&r<e.length;r++)if(!wr(e[r],t[r]))return!1;return!0}function vv(e,t,r,n,i,a){if(Si=a,Ee=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,uu.current=e===null||e.memoizedState===null?N2:$2,e=r(n,i),Vo){a=0;do{if(Vo=!1,gs=0,25<=a)throw Error(H(301));a+=1,Je=qe=null,t.updateQueue=null,uu.current=E2,e=r(n,i)}while(Vo)}if(uu.current=Mu,t=qe!==null&&qe.next!==null,Si=0,Je=qe=Ee=null,Cu=!1,t)throw Error(H(300));return e}function yv(){var e=gs!==0;return gs=0,e}function Pr(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Je===null?Ee.memoizedState=Je=e:Je=Je.next=e,Je}function ir(){if(qe===null){var e=Ee.alternate;e=e!==null?e.memoizedState:null}else e=qe.next;var t=Je===null?Ee.memoizedState:Je.next;if(t!==null)Je=t,qe=e;else{if(e===null)throw Error(H(310));qe=e,e={memoizedState:qe.memoizedState,baseState:qe.baseState,baseQueue:qe.baseQueue,queue:qe.queue,next:null},Je===null?Ee.memoizedState=Je=e:Je=Je.next=e}return Je}function xs(e,t){return typeof t=="function"?t(e):t}function _d(e){var t=ir(),r=t.queue;if(r===null)throw Error(H(311));r.lastRenderedReducer=e;var n=qe,i=n.baseQueue,a=r.pending;if(a!==null){if(i!==null){var o=i.next;i.next=a.next,a.next=o}n.baseQueue=i=a,r.pending=null}if(i!==null){a=i.next,n=n.baseState;var s=o=null,l=null,u=a;do{var f=u.lane;if((Si&f)===f)l!==null&&(l=l.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),n=u.hasEagerState?u.eagerState:e(n,u.action);else{var d={lane:f,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};l===null?(s=l=d,o=n):l=l.next=d,Ee.lanes|=f,Oi|=f}u=u.next}while(u!==null&&u!==a);l===null?o=n:l.next=s,wr(n,t.memoizedState)||(At=!0),t.memoizedState=n,t.baseState=o,t.baseQueue=l,r.lastRenderedState=n}if(e=r.interleaved,e!==null){i=e;do a=i.lane,Ee.lanes|=a,Oi|=a,i=i.next;while(i!==e)}else i===null&&(r.lanes=0);return[t.memoizedState,r.dispatch]}function Pd(e){var t=ir(),r=t.queue;if(r===null)throw Error(H(311));r.lastRenderedReducer=e;var n=r.dispatch,i=r.pending,a=t.memoizedState;if(i!==null){r.pending=null;var o=i=i.next;do a=e(a,o.action),o=o.next;while(o!==i);wr(a,t.memoizedState)||(At=!0),t.memoizedState=a,t.baseQueue===null&&(t.baseState=a),r.lastRenderedState=a}return[a,n]}function Ej(){}function Tj(e,t){var r=Ee,n=ir(),i=t(),a=!wr(n.memoizedState,i);if(a&&(n.memoizedState=i,At=!0),n=n.queue,gv(Ij.bind(null,r,n,e),[e]),n.getSnapshot!==t||a||Je!==null&&Je.memoizedState.tag&1){if(r.flags|=2048,bs(9,Mj.bind(null,r,n,i,t),void 0,null),rt===null)throw Error(H(349));Si&30||Cj(r,t,i)}return i}function Cj(e,t,r){e.flags|=16384,e={getSnapshot:t,value:r},t=Ee.updateQueue,t===null?(t={lastEffect:null,stores:null},Ee.updateQueue=t,t.stores=[e]):(r=t.stores,r===null?t.stores=[e]:r.push(e))}function Mj(e,t,r,n){t.value=r,t.getSnapshot=n,Lj(t)&&Dj(e)}function Ij(e,t,r){return r(function(){Lj(t)&&Dj(e)})}function Lj(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!wr(e,r)}catch{return!0}}function Dj(e){var t=Zr(e,1);t!==null&&gr(t,e,1,-1)}function Ng(e){var t=Pr();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:xs,lastRenderedState:e},t.queue=e,e=e.dispatch=k2.bind(null,Ee,e),[t.memoizedState,e]}function bs(e,t,r,n){return e={tag:e,create:t,destroy:r,deps:n,next:null},t=Ee.updateQueue,t===null?(t={lastEffect:null,stores:null},Ee.updateQueue=t,t.lastEffect=e.next=e):(r=t.lastEffect,r===null?t.lastEffect=e.next=e:(n=r.next,r.next=e,e.next=n,t.lastEffect=e)),e}function Rj(){return ir().memoizedState}function cu(e,t,r,n){var i=Pr();Ee.flags|=e,i.memoizedState=bs(1|t,r,void 0,n===void 0?null:n)}function tf(e,t,r,n){var i=ir();n=n===void 0?null:n;var a=void 0;if(qe!==null){var o=qe.memoizedState;if(a=o.destroy,n!==null&&mv(n,o.deps)){i.memoizedState=bs(t,r,a,n);return}}Ee.flags|=e,i.memoizedState=bs(1|t,r,a,n)}function $g(e,t){return cu(8390656,8,e,t)}function gv(e,t){return tf(2048,8,e,t)}function Bj(e,t){return tf(4,2,e,t)}function Fj(e,t){return tf(4,4,e,t)}function zj(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Wj(e,t,r){return r=r!=null?r.concat([e]):null,tf(4,4,zj.bind(null,t,e),r)}function xv(){}function Uj(e,t){var r=ir();t=t===void 0?null:t;var n=r.memoizedState;return n!==null&&t!==null&&mv(t,n[1])?n[0]:(r.memoizedState=[e,t],e)}function Kj(e,t){var r=ir();t=t===void 0?null:t;var n=r.memoizedState;return n!==null&&t!==null&&mv(t,n[1])?n[0]:(e=e(),r.memoizedState=[e,t],e)}function Hj(e,t,r){return Si&21?(wr(r,t)||(r=Yw(),Ee.lanes|=r,Oi|=r,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,At=!0),e.memoizedState=r)}function P2(e,t){var r=fe;fe=r!==0&&4>r?r:4,e(!0);var n=Od.transition;Od.transition={};try{e(!1),t()}finally{fe=r,Od.transition=n}}function Vj(){return ir().memoizedState}function A2(e,t,r){var n=Tn(e);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},Gj(e))qj(t,r);else if(r=kj(e,t,r,n),r!==null){var i=bt();gr(r,e,n,i),Xj(r,t,n)}}function k2(e,t,r){var n=Tn(e),i={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(Gj(e))qj(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,r);if(i.hasEagerState=!0,i.eagerState=s,wr(s,o)){var l=t.interleaved;l===null?(i.next=i,cv(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}r=kj(e,t,i,n),r!==null&&(i=bt(),gr(r,e,n,i),Xj(r,t,n))}}function Gj(e){var t=e.alternate;return e===Ee||t!==null&&t===Ee}function qj(e,t){Vo=Cu=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function Xj(e,t,r){if(r&4194240){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,Ym(e,r)}}var Mu={readContext:nr,useCallback:lt,useContext:lt,useEffect:lt,useImperativeHandle:lt,useInsertionEffect:lt,useLayoutEffect:lt,useMemo:lt,useReducer:lt,useRef:lt,useState:lt,useDebugValue:lt,useDeferredValue:lt,useTransition:lt,useMutableSource:lt,useSyncExternalStore:lt,useId:lt,unstable_isNewReconciler:!1},N2={readContext:nr,useCallback:function(e,t){return Pr().memoizedState=[e,t===void 0?null:t],e},useContext:nr,useEffect:$g,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,cu(4194308,4,zj.bind(null,t,e),r)},useLayoutEffect:function(e,t){return cu(4194308,4,e,t)},useInsertionEffect:function(e,t){return cu(4,2,e,t)},useMemo:function(e,t){var r=Pr();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var n=Pr();return t=r!==void 0?r(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=A2.bind(null,Ee,e),[n.memoizedState,e]},useRef:function(e){var t=Pr();return e={current:e},t.memoizedState=e},useState:Ng,useDebugValue:xv,useDeferredValue:function(e){return Pr().memoizedState=e},useTransition:function(){var e=Ng(!1),t=e[0];return e=P2.bind(null,e[1]),Pr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var n=Ee,i=Pr();if(Ae){if(r===void 0)throw Error(H(407));r=r()}else{if(r=t(),rt===null)throw Error(H(349));Si&30||Cj(n,t,r)}i.memoizedState=r;var a={value:r,getSnapshot:t};return i.queue=a,$g(Ij.bind(null,n,a,e),[e]),n.flags|=2048,bs(9,Mj.bind(null,n,a,r,t),void 0,null),r},useId:function(){var e=Pr(),t=rt.identifierPrefix;if(Ae){var r=Wr,n=zr;r=(n&~(1<<32-yr(n)-1)).toString(32)+r,t=":"+t+"R"+r,r=gs++,0<r&&(t+="H"+r.toString(32)),t+=":"}else r=_2++,t=":"+t+"r"+r.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},$2={readContext:nr,useCallback:Uj,useContext:nr,useEffect:gv,useImperativeHandle:Wj,useInsertionEffect:Bj,useLayoutEffect:Fj,useMemo:Kj,useReducer:_d,useRef:Rj,useState:function(){return _d(xs)},useDebugValue:xv,useDeferredValue:function(e){var t=ir();return Hj(t,qe.memoizedState,e)},useTransition:function(){var e=_d(xs)[0],t=ir().memoizedState;return[e,t]},useMutableSource:Ej,useSyncExternalStore:Tj,useId:Vj,unstable_isNewReconciler:!1},E2={readContext:nr,useCallback:Uj,useContext:nr,useEffect:gv,useImperativeHandle:Wj,useInsertionEffect:Bj,useLayoutEffect:Fj,useMemo:Kj,useReducer:Pd,useRef:Rj,useState:function(){return Pd(xs)},useDebugValue:xv,useDeferredValue:function(e){var t=ir();return qe===null?t.memoizedState=e:Hj(t,qe.memoizedState,e)},useTransition:function(){var e=Pd(xs)[0],t=ir().memoizedState;return[e,t]},useMutableSource:Ej,useSyncExternalStore:Tj,useId:Vj,unstable_isNewReconciler:!1};function fr(e,t){if(e&&e.defaultProps){t=Te({},t),e=e.defaultProps;for(var r in e)t[r]===void 0&&(t[r]=e[r]);return t}return t}function Wp(e,t,r,n){t=e.memoizedState,r=r(n,t),r=r==null?t:Te({},t,r),e.memoizedState=r,e.lanes===0&&(e.updateQueue.baseState=r)}var rf={isMounted:function(e){return(e=e._reactInternals)?Ti(e)===e:!1},enqueueSetState:function(e,t,r){e=e._reactInternals;var n=bt(),i=Tn(e),a=Vr(n,i);a.payload=t,r!=null&&(a.callback=r),t=$n(e,a,i),t!==null&&(gr(t,e,i,n),lu(t,e,i))},enqueueReplaceState:function(e,t,r){e=e._reactInternals;var n=bt(),i=Tn(e),a=Vr(n,i);a.tag=1,a.payload=t,r!=null&&(a.callback=r),t=$n(e,a,i),t!==null&&(gr(t,e,i,n),lu(t,e,i))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var r=bt(),n=Tn(e),i=Vr(r,n);i.tag=2,t!=null&&(i.callback=t),t=$n(e,i,n),t!==null&&(gr(t,e,n,r),lu(t,e,n))}};function Eg(e,t,r,n,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(n,a,o):t.prototype&&t.prototype.isPureReactComponent?!ds(r,n)||!ds(i,a):!0}function Yj(e,t,r){var n=!1,i=Rn,a=t.contextType;return typeof a=="object"&&a!==null?a=nr(a):(i=$t(t)?wi:mt.current,n=t.contextTypes,a=(n=n!=null)?ga(e,i):Rn),t=new t(r,a),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=rf,e.stateNode=t,t._reactInternals=e,n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=i,e.__reactInternalMemoizedMaskedChildContext=a),t}function Tg(e,t,r,n){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(r,n),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(r,n),t.state!==e&&rf.enqueueReplaceState(t,t.state,null)}function Up(e,t,r,n){var i=e.stateNode;i.props=r,i.state=e.memoizedState,i.refs={},fv(e);var a=t.contextType;typeof a=="object"&&a!==null?i.context=nr(a):(a=$t(t)?wi:mt.current,i.context=ga(e,a)),i.state=e.memoizedState,a=t.getDerivedStateFromProps,typeof a=="function"&&(Wp(e,t,a,r),i.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof i.getSnapshotBeforeUpdate=="function"||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(t=i.state,typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount(),t!==i.state&&rf.enqueueReplaceState(i,i.state,null),Eu(e,r,i,n),i.state=e.memoizedState),typeof i.componentDidMount=="function"&&(e.flags|=4194308)}function ja(e,t){try{var r="",n=t;do r+=ak(n),n=n.return;while(n);var i=r}catch(a){i=`
+Error generating stack: `+a.message+`
+`+a.stack}return{value:e,source:t,stack:i,digest:null}}function Ad(e,t,r){return{value:e,source:null,stack:r??null,digest:t??null}}function Kp(e,t){try{console.error(t.value)}catch(r){setTimeout(function(){throw r})}}var T2=typeof WeakMap=="function"?WeakMap:Map;function Qj(e,t,r){r=Vr(-1,r),r.tag=3,r.payload={element:null};var n=t.value;return r.callback=function(){Lu||(Lu=!0,eh=n),Kp(e,t)},r}function Zj(e,t,r){r=Vr(-1,r),r.tag=3;var n=e.type.getDerivedStateFromError;if(typeof n=="function"){var i=t.value;r.payload=function(){return n(i)},r.callback=function(){Kp(e,t)}}var a=e.stateNode;return a!==null&&typeof a.componentDidCatch=="function"&&(r.callback=function(){Kp(e,t),typeof n!="function"&&(En===null?En=new Set([this]):En.add(this));var o=t.stack;this.componentDidCatch(t.value,{componentStack:o!==null?o:""})}),r}function Cg(e,t,r){var n=e.pingCache;if(n===null){n=e.pingCache=new T2;var i=new Set;n.set(t,i)}else i=n.get(t),i===void 0&&(i=new Set,n.set(t,i));i.has(r)||(i.add(r),e=V2.bind(null,e,t,r),t.then(e,e))}function Mg(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Ig(e,t,r,n,i){return e.mode&1?(e.flags|=65536,e.lanes=i,e):(e===t?e.flags|=65536:(e.flags|=128,r.flags|=131072,r.flags&=-52805,r.tag===1&&(r.alternate===null?r.tag=17:(t=Vr(-1,1),t.tag=2,$n(r,t,1))),r.lanes|=1),e)}var C2=nn.ReactCurrentOwner,At=!1;function vt(e,t,r,n){t.child=e===null?Aj(t,null,r,n):ba(t,e.child,r,n)}function Lg(e,t,r,n,i){r=r.render;var a=t.ref;return da(t,i),n=vv(e,t,r,n,a,i),r=yv(),e!==null&&!At?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Jr(e,t,i)):(Ae&&r&&iv(t),t.flags|=1,vt(e,t,n,i),t.child)}function Dg(e,t,r,n,i){if(e===null){var a=r.type;return typeof a=="function"&&!Av(a)&&a.defaultProps===void 0&&r.compare===null&&r.defaultProps===void 0?(t.tag=15,t.type=a,Jj(e,t,a,n,i)):(e=hu(r.type,null,n,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!(e.lanes&i)){var o=a.memoizedProps;if(r=r.compare,r=r!==null?r:ds,r(o,n)&&e.ref===t.ref)return Jr(e,t,i)}return t.flags|=1,e=Cn(a,n),e.ref=t.ref,e.return=t,t.child=e}function Jj(e,t,r,n,i){if(e!==null){var a=e.memoizedProps;if(ds(a,n)&&e.ref===t.ref)if(At=!1,t.pendingProps=n=a,(e.lanes&i)!==0)e.flags&131072&&(At=!0);else return t.lanes=e.lanes,Jr(e,t,i)}return Hp(e,t,r,n,i)}function eS(e,t,r){var n=t.pendingProps,i=n.children,a=e!==null?e.memoizedState:null;if(n.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},ge(ra,Dt),Dt|=r;else{if(!(r&1073741824))return e=a!==null?a.baseLanes|r:r,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,ge(ra,Dt),Dt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},n=a!==null?a.baseLanes:r,ge(ra,Dt),Dt|=n}else a!==null?(n=a.baseLanes|r,t.memoizedState=null):n=r,ge(ra,Dt),Dt|=n;return vt(e,t,i,r),t.child}function tS(e,t){var r=t.ref;(e===null&&r!==null||e!==null&&e.ref!==r)&&(t.flags|=512,t.flags|=2097152)}function Hp(e,t,r,n,i){var a=$t(r)?wi:mt.current;return a=ga(t,a),da(t,i),r=vv(e,t,r,n,a,i),n=yv(),e!==null&&!At?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Jr(e,t,i)):(Ae&&n&&iv(t),t.flags|=1,vt(e,t,r,i),t.child)}function Rg(e,t,r,n,i){if($t(r)){var a=!0;Pu(t)}else a=!1;if(da(t,i),t.stateNode===null)fu(e,t),Yj(t,r,n),Up(t,r,n,i),n=!0;else if(e===null){var o=t.stateNode,s=t.memoizedProps;o.props=s;var l=o.context,u=r.contextType;typeof u=="object"&&u!==null?u=nr(u):(u=$t(r)?wi:mt.current,u=ga(t,u));var f=r.getDerivedStateFromProps,d=typeof f=="function"||typeof o.getSnapshotBeforeUpdate=="function";d||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(s!==n||l!==u)&&Tg(t,o,n,u),hn=!1;var p=t.memoizedState;o.state=p,Eu(t,n,o,i),l=t.memoizedState,s!==n||p!==l||Nt.current||hn?(typeof f=="function"&&(Wp(t,r,f,n),l=t.memoizedState),(s=hn||Eg(t,r,s,n,p,l,u))?(d||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(t.flags|=4194308)):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=n,t.memoizedState=l),o.props=n,o.state=l,o.context=u,n=s):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),n=!1)}else{o=t.stateNode,Nj(e,t),s=t.memoizedProps,u=t.type===t.elementType?s:fr(t.type,s),o.props=u,d=t.pendingProps,p=o.context,l=r.contextType,typeof l=="object"&&l!==null?l=nr(l):(l=$t(r)?wi:mt.current,l=ga(t,l));var h=r.getDerivedStateFromProps;(f=typeof h=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(s!==d||p!==l)&&Tg(t,o,n,l),hn=!1,p=t.memoizedState,o.state=p,Eu(t,n,o,i);var m=t.memoizedState;s!==d||p!==m||Nt.current||hn?(typeof h=="function"&&(Wp(t,r,h,n),m=t.memoizedState),(u=hn||Eg(t,r,u,n,p,m,l)||!1)?(f||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(n,m,l),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(n,m,l)),typeof o.componentDidUpdate=="function"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof o.componentDidUpdate!="function"||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=n,t.memoizedState=m),o.props=n,o.state=m,o.context=l,n=u):(typeof o.componentDidUpdate!="function"||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),n=!1)}return Vp(e,t,r,n,a,i)}function Vp(e,t,r,n,i,a){tS(e,t);var o=(t.flags&128)!==0;if(!n&&!o)return i&&Sg(t,r,!1),Jr(e,t,a);n=t.stateNode,C2.current=t;var s=o&&typeof r.getDerivedStateFromError!="function"?null:n.render();return t.flags|=1,e!==null&&o?(t.child=ba(t,e.child,null,a),t.child=ba(t,null,s,a)):vt(e,t,s,a),t.memoizedState=n.state,i&&Sg(t,r,!0),t.child}function rS(e){var t=e.stateNode;t.pendingContext?jg(e,t.pendingContext,t.pendingContext!==t.context):t.context&&jg(e,t.context,!1),dv(e,t.containerInfo)}function Bg(e,t,r,n,i){return xa(),ov(i),t.flags|=256,vt(e,t,r,n),t.child}var Gp={dehydrated:null,treeContext:null,retryLane:0};function qp(e){return{baseLanes:e,cachePool:null,transitions:null}}function nS(e,t,r){var n=t.pendingProps,i=Ne.current,a=!1,o=(t.flags&128)!==0,s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:(i&2)!==0),s?(a=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(i|=1),ge(Ne,i&1),e===null)return Fp(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=n.children,e=n.fallback,a?(n=t.mode,a=t.child,o={mode:"hidden",children:o},!(n&1)&&a!==null?(a.childLanes=0,a.pendingProps=o):a=of(o,n,0,null),e=yi(e,n,r,null),a.return=t,e.return=t,a.sibling=e,t.child=a,t.child.memoizedState=qp(r),t.memoizedState=Gp,e):bv(t,o));if(i=e.memoizedState,i!==null&&(s=i.dehydrated,s!==null))return M2(e,t,o,n,s,i,r);if(a){a=n.fallback,o=t.mode,i=e.child,s=i.sibling;var l={mode:"hidden",children:n.children};return!(o&1)&&t.child!==i?(n=t.child,n.childLanes=0,n.pendingProps=l,t.deletions=null):(n=Cn(i,l),n.subtreeFlags=i.subtreeFlags&14680064),s!==null?a=Cn(s,a):(a=yi(a,o,r,null),a.flags|=2),a.return=t,n.return=t,n.sibling=a,t.child=n,n=a,a=t.child,o=e.child.memoizedState,o=o===null?qp(r):{baseLanes:o.baseLanes|r,cachePool:null,transitions:o.transitions},a.memoizedState=o,a.childLanes=e.childLanes&~r,t.memoizedState=Gp,n}return a=e.child,e=a.sibling,n=Cn(a,{mode:"visible",children:n.children}),!(t.mode&1)&&(n.lanes=r),n.return=t,n.sibling=null,e!==null&&(r=t.deletions,r===null?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n}function bv(e,t){return t=of({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function Dl(e,t,r,n){return n!==null&&ov(n),ba(t,e.child,null,r),e=bv(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function M2(e,t,r,n,i,a,o){if(r)return t.flags&256?(t.flags&=-257,n=Ad(Error(H(422))),Dl(e,t,o,n)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(a=n.fallback,i=t.mode,n=of({mode:"visible",children:n.children},i,0,null),a=yi(a,i,o,null),a.flags|=2,n.return=t,a.return=t,n.sibling=a,t.child=n,t.mode&1&&ba(t,e.child,null,o),t.child.memoizedState=qp(o),t.memoizedState=Gp,a);if(!(t.mode&1))return Dl(e,t,o,null);if(i.data==="$!"){if(n=i.nextSibling&&i.nextSibling.dataset,n)var s=n.dgst;return n=s,a=Error(H(419)),n=Ad(a,n,void 0),Dl(e,t,o,n)}if(s=(o&e.childLanes)!==0,At||s){if(n=rt,n!==null){switch(o&-o){case 4:i=2;break;case 16:i=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:i=32;break;case 536870912:i=268435456;break;default:i=0}i=i&(n.suspendedLanes|o)?0:i,i!==0&&i!==a.retryLane&&(a.retryLane=i,Zr(e,i),gr(n,e,i,-1))}return Pv(),n=Ad(Error(H(421))),Dl(e,t,o,n)}return i.data==="$?"?(t.flags|=128,t.child=e.child,t=G2.bind(null,e),i._reactRetry=t,null):(e=a.treeContext,Ft=Nn(i.nextSibling),zt=t,Ae=!0,mr=null,e!==null&&(Qt[Zt++]=zr,Qt[Zt++]=Wr,Qt[Zt++]=ji,zr=e.id,Wr=e.overflow,ji=t),t=bv(t,n.children),t.flags|=4096,t)}function Fg(e,t,r){e.lanes|=t;var n=e.alternate;n!==null&&(n.lanes|=t),zp(e.return,t,r)}function kd(e,t,r,n,i){var a=e.memoizedState;a===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:n,tail:r,tailMode:i}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=n,a.tail=r,a.tailMode=i)}function iS(e,t,r){var n=t.pendingProps,i=n.revealOrder,a=n.tail;if(vt(e,t,n.children,r),n=Ne.current,n&2)n=n&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Fg(e,r,t);else if(e.tag===19)Fg(e,r,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}n&=1}if(ge(Ne,n),!(t.mode&1))t.memoizedState=null;else switch(i){case"forwards":for(r=t.child,i=null;r!==null;)e=r.alternate,e!==null&&Tu(e)===null&&(i=r),r=r.sibling;r=i,r===null?(i=t.child,t.child=null):(i=r.sibling,r.sibling=null),kd(t,!1,i,r,a);break;case"backwards":for(r=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&Tu(e)===null){t.child=i;break}e=i.sibling,i.sibling=r,r=i,i=e}kd(t,!0,r,null,a);break;case"together":kd(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function fu(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Jr(e,t,r){if(e!==null&&(t.dependencies=e.dependencies),Oi|=t.lanes,!(r&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(H(153));if(t.child!==null){for(e=t.child,r=Cn(e,e.pendingProps),t.child=r,r.return=t;e.sibling!==null;)e=e.sibling,r=r.sibling=Cn(e,e.pendingProps),r.return=t;r.sibling=null}return t.child}function I2(e,t,r){switch(t.tag){case 3:rS(t),xa();break;case 5:$j(t);break;case 1:$t(t.type)&&Pu(t);break;case 4:dv(t,t.stateNode.containerInfo);break;case 10:var n=t.type._context,i=t.memoizedProps.value;ge(Nu,n._currentValue),n._currentValue=i;break;case 13:if(n=t.memoizedState,n!==null)return n.dehydrated!==null?(ge(Ne,Ne.current&1),t.flags|=128,null):r&t.child.childLanes?nS(e,t,r):(ge(Ne,Ne.current&1),e=Jr(e,t,r),e!==null?e.sibling:null);ge(Ne,Ne.current&1);break;case 19:if(n=(r&t.childLanes)!==0,e.flags&128){if(n)return iS(e,t,r);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),ge(Ne,Ne.current),n)break;return null;case 22:case 23:return t.lanes=0,eS(e,t,r)}return Jr(e,t,r)}var aS,Xp,oS,sS;aS=function(e,t){for(var r=t.child;r!==null;){if(r.tag===5||r.tag===6)e.appendChild(r.stateNode);else if(r.tag!==4&&r.child!==null){r.child.return=r,r=r.child;continue}if(r===t)break;for(;r.sibling===null;){if(r.return===null||r.return===t)return;r=r.return}r.sibling.return=r.return,r=r.sibling}};Xp=function(){};oS=function(e,t,r,n){var i=e.memoizedProps;if(i!==n){e=t.stateNode,ci(Er.current);var a=null;switch(r){case"input":i=yp(e,i),n=yp(e,n),a=[];break;case"select":i=Te({},i,{value:void 0}),n=Te({},n,{value:void 0}),a=[];break;case"textarea":i=bp(e,i),n=bp(e,n),a=[];break;default:typeof i.onClick!="function"&&typeof n.onClick=="function"&&(e.onclick=Ou)}jp(r,n);var o;r=null;for(u in i)if(!n.hasOwnProperty(u)&&i.hasOwnProperty(u)&&i[u]!=null)if(u==="style"){var s=i[u];for(o in s)s.hasOwnProperty(o)&&(r||(r={}),r[o]="")}else u!=="dangerouslySetInnerHTML"&&u!=="children"&&u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(as.hasOwnProperty(u)?a||(a=[]):(a=a||[]).push(u,null));for(u in n){var l=n[u];if(s=i!=null?i[u]:void 0,n.hasOwnProperty(u)&&l!==s&&(l!=null||s!=null))if(u==="style")if(s){for(o in s)!s.hasOwnProperty(o)||l&&l.hasOwnProperty(o)||(r||(r={}),r[o]="");for(o in l)l.hasOwnProperty(o)&&s[o]!==l[o]&&(r||(r={}),r[o]=l[o])}else r||(a||(a=[]),a.push(u,r)),r=l;else u==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,s=s?s.__html:void 0,l!=null&&s!==l&&(a=a||[]).push(u,l)):u==="children"?typeof l!="string"&&typeof l!="number"||(a=a||[]).push(u,""+l):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&(as.hasOwnProperty(u)?(l!=null&&u==="onScroll"&&be("scroll",e),a||s===l||(a=[])):(a=a||[]).push(u,l))}r&&(a=a||[]).push("style",r);var u=a;(t.updateQueue=u)&&(t.flags|=4)}};sS=function(e,t,r,n){r!==n&&(t.flags|=4)};function Oo(e,t){if(!Ae)switch(e.tailMode){case"hidden":t=e.tail;for(var r=null;t!==null;)t.alternate!==null&&(r=t),t=t.sibling;r===null?e.tail=null:r.sibling=null;break;case"collapsed":r=e.tail;for(var n=null;r!==null;)r.alternate!==null&&(n=r),r=r.sibling;n===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:n.sibling=null}}function ut(e){var t=e.alternate!==null&&e.alternate.child===e.child,r=0,n=0;if(t)for(var i=e.child;i!==null;)r|=i.lanes|i.childLanes,n|=i.subtreeFlags&14680064,n|=i.flags&14680064,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)r|=i.lanes|i.childLanes,n|=i.subtreeFlags,n|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=n,e.childLanes=r,t}function L2(e,t,r){var n=t.pendingProps;switch(av(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return ut(t),null;case 1:return $t(t.type)&&_u(),ut(t),null;case 3:return n=t.stateNode,wa(),_e(Nt),_e(mt),hv(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Il(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,mr!==null&&(nh(mr),mr=null))),Xp(e,t),ut(t),null;case 5:pv(t);var i=ci(ys.current);if(r=t.type,e!==null&&t.stateNode!=null)oS(e,t,r,n,i),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!n){if(t.stateNode===null)throw Error(H(166));return ut(t),null}if(e=ci(Er.current),Il(t)){n=t.stateNode,r=t.type;var a=t.memoizedProps;switch(n[Ar]=t,n[ms]=a,e=(t.mode&1)!==0,r){case"dialog":be("cancel",n),be("close",n);break;case"iframe":case"object":case"embed":be("load",n);break;case"video":case"audio":for(i=0;i<Bo.length;i++)be(Bo[i],n);break;case"source":be("error",n);break;case"img":case"image":case"link":be("error",n),be("load",n);break;case"details":be("toggle",n);break;case"input":Xy(n,a),be("invalid",n);break;case"select":n._wrapperState={wasMultiple:!!a.multiple},be("invalid",n);break;case"textarea":Qy(n,a),be("invalid",n)}jp(r,a),i=null;for(var o in a)if(a.hasOwnProperty(o)){var s=a[o];o==="children"?typeof s=="string"?n.textContent!==s&&(a.suppressHydrationWarning!==!0&&Ml(n.textContent,s,e),i=["children",s]):typeof s=="number"&&n.textContent!==""+s&&(a.suppressHydrationWarning!==!0&&Ml(n.textContent,s,e),i=["children",""+s]):as.hasOwnProperty(o)&&s!=null&&o==="onScroll"&&be("scroll",n)}switch(r){case"input":Pl(n),Yy(n,a,!0);break;case"textarea":Pl(n),Zy(n);break;case"select":case"option":break;default:typeof a.onClick=="function"&&(n.onclick=Ou)}n=i,t.updateQueue=n,n!==null&&(t.flags|=4)}else{o=i.nodeType===9?i:i.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=Iw(r)),e==="http://www.w3.org/1999/xhtml"?r==="script"?(e=o.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=o.createElement(r,{is:n.is}):(e=o.createElement(r),r==="select"&&(o=e,n.multiple?o.multiple=!0:n.size&&(o.size=n.size))):e=o.createElementNS(e,r),e[Ar]=t,e[ms]=n,aS(e,t,!1,!1),t.stateNode=e;e:{switch(o=Sp(r,n),r){case"dialog":be("cancel",e),be("close",e),i=n;break;case"iframe":case"object":case"embed":be("load",e),i=n;break;case"video":case"audio":for(i=0;i<Bo.length;i++)be(Bo[i],e);i=n;break;case"source":be("error",e),i=n;break;case"img":case"image":case"link":be("error",e),be("load",e),i=n;break;case"details":be("toggle",e),i=n;break;case"input":Xy(e,n),i=yp(e,n),be("invalid",e);break;case"option":i=n;break;case"select":e._wrapperState={wasMultiple:!!n.multiple},i=Te({},n,{value:void 0}),be("invalid",e);break;case"textarea":Qy(e,n),i=bp(e,n),be("invalid",e);break;default:i=n}jp(r,i),s=i;for(a in s)if(s.hasOwnProperty(a)){var l=s[a];a==="style"?Rw(e,l):a==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,l!=null&&Lw(e,l)):a==="children"?typeof l=="string"?(r!=="textarea"||l!=="")&&os(e,l):typeof l=="number"&&os(e,""+l):a!=="suppressContentEditableWarning"&&a!=="suppressHydrationWarning"&&a!=="autoFocus"&&(as.hasOwnProperty(a)?l!=null&&a==="onScroll"&&be("scroll",e):l!=null&&Km(e,a,l,o))}switch(r){case"input":Pl(e),Yy(e,n,!1);break;case"textarea":Pl(e),Zy(e);break;case"option":n.value!=null&&e.setAttribute("value",""+Dn(n.value));break;case"select":e.multiple=!!n.multiple,a=n.value,a!=null?la(e,!!n.multiple,a,!1):n.defaultValue!=null&&la(e,!!n.multiple,n.defaultValue,!0);break;default:typeof i.onClick=="function"&&(e.onclick=Ou)}switch(r){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}}n&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return ut(t),null;case 6:if(e&&t.stateNode!=null)sS(e,t,e.memoizedProps,n);else{if(typeof n!="string"&&t.stateNode===null)throw Error(H(166));if(r=ci(ys.current),ci(Er.current),Il(t)){if(n=t.stateNode,r=t.memoizedProps,n[Ar]=t,(a=n.nodeValue!==r)&&(e=zt,e!==null))switch(e.tag){case 3:Ml(n.nodeValue,r,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Ml(n.nodeValue,r,(e.mode&1)!==0)}a&&(t.flags|=4)}else n=(r.nodeType===9?r:r.ownerDocument).createTextNode(n),n[Ar]=t,t.stateNode=n}return ut(t),null;case 13:if(_e(Ne),n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(Ae&&Ft!==null&&t.mode&1&&!(t.flags&128))_j(),xa(),t.flags|=98560,a=!1;else if(a=Il(t),n!==null&&n.dehydrated!==null){if(e===null){if(!a)throw Error(H(318));if(a=t.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error(H(317));a[Ar]=t}else xa(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;ut(t),a=!1}else mr!==null&&(nh(mr),mr=null),a=!0;if(!a)return t.flags&65536?t:null}return t.flags&128?(t.lanes=r,t):(n=n!==null,n!==(e!==null&&e.memoizedState!==null)&&n&&(t.child.flags|=8192,t.mode&1&&(e===null||Ne.current&1?Xe===0&&(Xe=3):Pv())),t.updateQueue!==null&&(t.flags|=4),ut(t),null);case 4:return wa(),Xp(e,t),e===null&&ps(t.stateNode.containerInfo),ut(t),null;case 10:return uv(t.type._context),ut(t),null;case 17:return $t(t.type)&&_u(),ut(t),null;case 19:if(_e(Ne),a=t.memoizedState,a===null)return ut(t),null;if(n=(t.flags&128)!==0,o=a.rendering,o===null)if(n)Oo(a,!1);else{if(Xe!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=Tu(e),o!==null){for(t.flags|=128,Oo(a,!1),n=o.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),t.subtreeFlags=0,n=r,r=t.child;r!==null;)a=r,e=n,a.flags&=14680066,o=a.alternate,o===null?(a.childLanes=0,a.lanes=e,a.child=null,a.subtreeFlags=0,a.memoizedProps=null,a.memoizedState=null,a.updateQueue=null,a.dependencies=null,a.stateNode=null):(a.childLanes=o.childLanes,a.lanes=o.lanes,a.child=o.child,a.subtreeFlags=0,a.deletions=null,a.memoizedProps=o.memoizedProps,a.memoizedState=o.memoizedState,a.updateQueue=o.updateQueue,a.type=o.type,e=o.dependencies,a.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),r=r.sibling;return ge(Ne,Ne.current&1|2),t.child}e=e.sibling}a.tail!==null&&De()>Sa&&(t.flags|=128,n=!0,Oo(a,!1),t.lanes=4194304)}else{if(!n)if(e=Tu(o),e!==null){if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),Oo(a,!0),a.tail===null&&a.tailMode==="hidden"&&!o.alternate&&!Ae)return ut(t),null}else 2*De()-a.renderingStartTime>Sa&&r!==1073741824&&(t.flags|=128,n=!0,Oo(a,!1),t.lanes=4194304);a.isBackwards?(o.sibling=t.child,t.child=o):(r=a.last,r!==null?r.sibling=o:t.child=o,a.last=o)}return a.tail!==null?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=De(),t.sibling=null,r=Ne.current,ge(Ne,n?r&1|2:r&1),t):(ut(t),null);case 22:case 23:return _v(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&t.mode&1?Dt&1073741824&&(ut(t),t.subtreeFlags&6&&(t.flags|=8192)):ut(t),null;case 24:return null;case 25:return null}throw Error(H(156,t.tag))}function D2(e,t){switch(av(t),t.tag){case 1:return $t(t.type)&&_u(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return wa(),_e(Nt),_e(mt),hv(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return pv(t),null;case 13:if(_e(Ne),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(H(340));xa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return _e(Ne),null;case 4:return wa(),null;case 10:return uv(t.type._context),null;case 22:case 23:return _v(),null;case 24:return null;default:return null}}var Rl=!1,ft=!1,R2=typeof WeakSet=="function"?WeakSet:Set,G=null;function ta(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){Me(e,t,n)}else r.current=null}function Yp(e,t,r){try{r()}catch(n){Me(e,t,n)}}var zg=!1;function B2(e,t){if(Cp=wu,e=dj(),nv(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var i=n.anchorOffset,a=n.focusNode;n=n.focusOffset;try{r.nodeType,a.nodeType}catch{r=null;break e}var o=0,s=-1,l=-1,u=0,f=0,d=e,p=null;t:for(;;){for(var h;d!==r||i!==0&&d.nodeType!==3||(s=o+i),d!==a||n!==0&&d.nodeType!==3||(l=o+n),d.nodeType===3&&(o+=d.nodeValue.length),(h=d.firstChild)!==null;)p=d,d=h;for(;;){if(d===e)break t;if(p===r&&++u===i&&(s=o),p===a&&++f===n&&(l=o),(h=d.nextSibling)!==null)break;d=p,p=d.parentNode}d=h}r=s===-1||l===-1?null:{start:s,end:l}}else r=null}r=r||{start:0,end:0}}else r=null;for(Mp={focusedElem:e,selectionRange:r},wu=!1,G=t;G!==null;)if(t=G,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,G=e;else for(;G!==null;){t=G;try{var m=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(m!==null){var g=m.memoizedProps,x=m.memoizedState,y=t.stateNode,v=y.getSnapshotBeforeUpdate(t.elementType===t.type?g:fr(t.type,g),x);y.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var b=t.stateNode.containerInfo;b.nodeType===1?b.textContent="":b.nodeType===9&&b.documentElement&&b.removeChild(b.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(H(163))}}catch(S){Me(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,G=e;break}G=t.return}return m=zg,zg=!1,m}function Go(e,t,r){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var i=n=n.next;do{if((i.tag&e)===e){var a=i.destroy;i.destroy=void 0,a!==void 0&&Yp(t,r,a)}i=i.next}while(i!==n)}}function nf(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var n=r.create;r.destroy=n()}r=r.next}while(r!==t)}}function Qp(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function lS(e){var t=e.alternate;t!==null&&(e.alternate=null,lS(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Ar],delete t[ms],delete t[Dp],delete t[w2],delete t[j2])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function uS(e){return e.tag===5||e.tag===3||e.tag===4}function Wg(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||uS(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Zp(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=Ou));else if(n!==4&&(e=e.child,e!==null))for(Zp(e,t,r),e=e.sibling;e!==null;)Zp(e,t,r),e=e.sibling}function Jp(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(Jp(e,t,r),e=e.sibling;e!==null;)Jp(e,t,r),e=e.sibling}var at=null,dr=!1;function fn(e,t,r){for(r=r.child;r!==null;)cS(e,t,r),r=r.sibling}function cS(e,t,r){if($r&&typeof $r.onCommitFiberUnmount=="function")try{$r.onCommitFiberUnmount(Xc,r)}catch{}switch(r.tag){case 5:ft||ta(r,t);case 6:var n=at,i=dr;at=null,fn(e,t,r),at=n,dr=i,at!==null&&(dr?(e=at,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):at.removeChild(r.stateNode));break;case 18:at!==null&&(dr?(e=at,r=r.stateNode,e.nodeType===8?wd(e.parentNode,r):e.nodeType===1&&wd(e,r),cs(e)):wd(at,r.stateNode));break;case 4:n=at,i=dr,at=r.stateNode.containerInfo,dr=!0,fn(e,t,r),at=n,dr=i;break;case 0:case 11:case 14:case 15:if(!ft&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){i=n=n.next;do{var a=i,o=a.destroy;a=a.tag,o!==void 0&&(a&2||a&4)&&Yp(r,t,o),i=i.next}while(i!==n)}fn(e,t,r);break;case 1:if(!ft&&(ta(r,t),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(s){Me(r,t,s)}fn(e,t,r);break;case 21:fn(e,t,r);break;case 22:r.mode&1?(ft=(n=ft)||r.memoizedState!==null,fn(e,t,r),ft=n):fn(e,t,r);break;default:fn(e,t,r)}}function Ug(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new R2),t.forEach(function(n){var i=q2.bind(null,e,n);r.has(n)||(r.add(n),n.then(i,i))})}}function ur(e,t){var r=t.deletions;if(r!==null)for(var n=0;n<r.length;n++){var i=r[n];try{var a=e,o=t,s=o;e:for(;s!==null;){switch(s.tag){case 5:at=s.stateNode,dr=!1;break e;case 3:at=s.stateNode.containerInfo,dr=!0;break e;case 4:at=s.stateNode.containerInfo,dr=!0;break e}s=s.return}if(at===null)throw Error(H(160));cS(a,o,i),at=null,dr=!1;var l=i.alternate;l!==null&&(l.return=null),i.return=null}catch(u){Me(i,t,u)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)fS(t,e),t=t.sibling}function fS(e,t){var r=e.alternate,n=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(ur(t,e),_r(e),n&4){try{Go(3,e,e.return),nf(3,e)}catch(g){Me(e,e.return,g)}try{Go(5,e,e.return)}catch(g){Me(e,e.return,g)}}break;case 1:ur(t,e),_r(e),n&512&&r!==null&&ta(r,r.return);break;case 5:if(ur(t,e),_r(e),n&512&&r!==null&&ta(r,r.return),e.flags&32){var i=e.stateNode;try{os(i,"")}catch(g){Me(e,e.return,g)}}if(n&4&&(i=e.stateNode,i!=null)){var a=e.memoizedProps,o=r!==null?r.memoizedProps:a,s=e.type,l=e.updateQueue;if(e.updateQueue=null,l!==null)try{s==="input"&&a.type==="radio"&&a.name!=null&&Cw(i,a),Sp(s,o);var u=Sp(s,a);for(o=0;o<l.length;o+=2){var f=l[o],d=l[o+1];f==="style"?Rw(i,d):f==="dangerouslySetInnerHTML"?Lw(i,d):f==="children"?os(i,d):Km(i,f,d,u)}switch(s){case"input":gp(i,a);break;case"textarea":Mw(i,a);break;case"select":var p=i._wrapperState.wasMultiple;i._wrapperState.wasMultiple=!!a.multiple;var h=a.value;h!=null?la(i,!!a.multiple,h,!1):p!==!!a.multiple&&(a.defaultValue!=null?la(i,!!a.multiple,a.defaultValue,!0):la(i,!!a.multiple,a.multiple?[]:"",!1))}i[ms]=a}catch(g){Me(e,e.return,g)}}break;case 6:if(ur(t,e),_r(e),n&4){if(e.stateNode===null)throw Error(H(162));i=e.stateNode,a=e.memoizedProps;try{i.nodeValue=a}catch(g){Me(e,e.return,g)}}break;case 3:if(ur(t,e),_r(e),n&4&&r!==null&&r.memoizedState.isDehydrated)try{cs(t.containerInfo)}catch(g){Me(e,e.return,g)}break;case 4:ur(t,e),_r(e);break;case 13:ur(t,e),_r(e),i=e.child,i.flags&8192&&(a=i.memoizedState!==null,i.stateNode.isHidden=a,!a||i.alternate!==null&&i.alternate.memoizedState!==null||(Sv=De())),n&4&&Ug(e);break;case 22:if(f=r!==null&&r.memoizedState!==null,e.mode&1?(ft=(u=ft)||f,ur(t,e),ft=u):ur(t,e),_r(e),n&8192){if(u=e.memoizedState!==null,(e.stateNode.isHidden=u)&&!f&&e.mode&1)for(G=e,f=e.child;f!==null;){for(d=G=f;G!==null;){switch(p=G,h=p.child,p.tag){case 0:case 11:case 14:case 15:Go(4,p,p.return);break;case 1:ta(p,p.return);var m=p.stateNode;if(typeof m.componentWillUnmount=="function"){n=p,r=p.return;try{t=n,m.props=t.memoizedProps,m.state=t.memoizedState,m.componentWillUnmount()}catch(g){Me(n,r,g)}}break;case 5:ta(p,p.return);break;case 22:if(p.memoizedState!==null){Hg(d);continue}}h!==null?(h.return=p,G=h):Hg(d)}f=f.sibling}e:for(f=null,d=e;;){if(d.tag===5){if(f===null){f=d;try{i=d.stateNode,u?(a=i.style,typeof a.setProperty=="function"?a.setProperty("display","none","important"):a.display="none"):(s=d.stateNode,l=d.memoizedProps.style,o=l!=null&&l.hasOwnProperty("display")?l.display:null,s.style.display=Dw("display",o))}catch(g){Me(e,e.return,g)}}}else if(d.tag===6){if(f===null)try{d.stateNode.nodeValue=u?"":d.memoizedProps}catch(g){Me(e,e.return,g)}}else if((d.tag!==22&&d.tag!==23||d.memoizedState===null||d===e)&&d.child!==null){d.child.return=d,d=d.child;continue}if(d===e)break e;for(;d.sibling===null;){if(d.return===null||d.return===e)break e;f===d&&(f=null),d=d.return}f===d&&(f=null),d.sibling.return=d.return,d=d.sibling}}break;case 19:ur(t,e),_r(e),n&4&&Ug(e);break;case 21:break;default:ur(t,e),_r(e)}}function _r(e){var t=e.flags;if(t&2){try{e:{for(var r=e.return;r!==null;){if(uS(r)){var n=r;break e}r=r.return}throw Error(H(160))}switch(n.tag){case 5:var i=n.stateNode;n.flags&32&&(os(i,""),n.flags&=-33);var a=Wg(e);Jp(e,a,i);break;case 3:case 4:var o=n.stateNode.containerInfo,s=Wg(e);Zp(e,s,o);break;default:throw Error(H(161))}}catch(l){Me(e,e.return,l)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function F2(e,t,r){G=e,dS(e)}function dS(e,t,r){for(var n=(e.mode&1)!==0;G!==null;){var i=G,a=i.child;if(i.tag===22&&n){var o=i.memoizedState!==null||Rl;if(!o){var s=i.alternate,l=s!==null&&s.memoizedState!==null||ft;s=Rl;var u=ft;if(Rl=o,(ft=l)&&!u)for(G=i;G!==null;)o=G,l=o.child,o.tag===22&&o.memoizedState!==null?Vg(i):l!==null?(l.return=o,G=l):Vg(i);for(;a!==null;)G=a,dS(a),a=a.sibling;G=i,Rl=s,ft=u}Kg(e)}else i.subtreeFlags&8772&&a!==null?(a.return=i,G=a):Kg(e)}}function Kg(e){for(;G!==null;){var t=G;if(t.flags&8772){var r=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:ft||nf(5,t);break;case 1:var n=t.stateNode;if(t.flags&4&&!ft)if(r===null)n.componentDidMount();else{var i=t.elementType===t.type?r.memoizedProps:fr(t.type,r.memoizedProps);n.componentDidUpdate(i,r.memoizedState,n.__reactInternalSnapshotBeforeUpdate)}var a=t.updateQueue;a!==null&&kg(t,a,n);break;case 3:var o=t.updateQueue;if(o!==null){if(r=null,t.child!==null)switch(t.child.tag){case 5:r=t.child.stateNode;break;case 1:r=t.child.stateNode}kg(t,o,r)}break;case 5:var s=t.stateNode;if(r===null&&t.flags&4){r=s;var l=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":l.autoFocus&&r.focus();break;case"img":l.src&&(r.src=l.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var u=t.alternate;if(u!==null){var f=u.memoizedState;if(f!==null){var d=f.dehydrated;d!==null&&cs(d)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(H(163))}ft||t.flags&512&&Qp(t)}catch(p){Me(t,t.return,p)}}if(t===e){G=null;break}if(r=t.sibling,r!==null){r.return=t.return,G=r;break}G=t.return}}function Hg(e){for(;G!==null;){var t=G;if(t===e){G=null;break}var r=t.sibling;if(r!==null){r.return=t.return,G=r;break}G=t.return}}function Vg(e){for(;G!==null;){var t=G;try{switch(t.tag){case 0:case 11:case 15:var r=t.return;try{nf(4,t)}catch(l){Me(t,r,l)}break;case 1:var n=t.stateNode;if(typeof n.componentDidMount=="function"){var i=t.return;try{n.componentDidMount()}catch(l){Me(t,i,l)}}var a=t.return;try{Qp(t)}catch(l){Me(t,a,l)}break;case 5:var o=t.return;try{Qp(t)}catch(l){Me(t,o,l)}}}catch(l){Me(t,t.return,l)}if(t===e){G=null;break}var s=t.sibling;if(s!==null){s.return=t.return,G=s;break}G=t.return}}var z2=Math.ceil,Iu=nn.ReactCurrentDispatcher,wv=nn.ReactCurrentOwner,rr=nn.ReactCurrentBatchConfig,le=0,rt=null,ze=null,ot=0,Dt=0,ra=Un(0),Xe=0,ws=null,Oi=0,af=0,jv=0,qo=null,Pt=null,Sv=0,Sa=1/0,Rr=null,Lu=!1,eh=null,En=null,Bl=!1,bn=null,Du=0,Xo=0,th=null,du=-1,pu=0;function bt(){return le&6?De():du!==-1?du:du=De()}function Tn(e){return e.mode&1?le&2&&ot!==0?ot&-ot:O2.transition!==null?(pu===0&&(pu=Yw()),pu):(e=fe,e!==0||(e=window.event,e=e===void 0?16:nj(e.type)),e):1}function gr(e,t,r,n){if(50<Xo)throw Xo=0,th=null,Error(H(185));ol(e,r,n),(!(le&2)||e!==rt)&&(e===rt&&(!(le&2)&&(af|=r),Xe===4&&yn(e,ot)),Et(e,n),r===1&&le===0&&!(t.mode&1)&&(Sa=De()+500,ef&&Kn()))}function Et(e,t){var r=e.callbackNode;Ok(e,t);var n=bu(e,e===rt?ot:0);if(n===0)r!==null&&tg(r),e.callbackNode=null,e.callbackPriority=0;else if(t=n&-n,e.callbackPriority!==t){if(r!=null&&tg(r),t===1)e.tag===0?S2(Gg.bind(null,e)):jj(Gg.bind(null,e)),x2(function(){!(le&6)&&Kn()}),r=null;else{switch(Qw(n)){case 1:r=Xm;break;case 4:r=qw;break;case 16:r=xu;break;case 536870912:r=Xw;break;default:r=xu}r=bS(r,pS.bind(null,e))}e.callbackPriority=t,e.callbackNode=r}}function pS(e,t){if(du=-1,pu=0,le&6)throw Error(H(327));var r=e.callbackNode;if(pa()&&e.callbackNode!==r)return null;var n=bu(e,e===rt?ot:0);if(n===0)return null;if(n&30||n&e.expiredLanes||t)t=Ru(e,n);else{t=n;var i=le;le|=2;var a=mS();(rt!==e||ot!==t)&&(Rr=null,Sa=De()+500,vi(e,t));do try{K2();break}catch(s){hS(e,s)}while(!0);lv(),Iu.current=a,le=i,ze!==null?t=0:(rt=null,ot=0,t=Xe)}if(t!==0){if(t===2&&(i=kp(e),i!==0&&(n=i,t=rh(e,i))),t===1)throw r=ws,vi(e,0),yn(e,n),Et(e,De()),r;if(t===6)yn(e,n);else{if(i=e.current.alternate,!(n&30)&&!W2(i)&&(t=Ru(e,n),t===2&&(a=kp(e),a!==0&&(n=a,t=rh(e,a))),t===1))throw r=ws,vi(e,0),yn(e,n),Et(e,De()),r;switch(e.finishedWork=i,e.finishedLanes=n,t){case 0:case 1:throw Error(H(345));case 2:ni(e,Pt,Rr);break;case 3:if(yn(e,n),(n&130023424)===n&&(t=Sv+500-De(),10<t)){if(bu(e,0)!==0)break;if(i=e.suspendedLanes,(i&n)!==n){bt(),e.pingedLanes|=e.suspendedLanes&i;break}e.timeoutHandle=Lp(ni.bind(null,e,Pt,Rr),t);break}ni(e,Pt,Rr);break;case 4:if(yn(e,n),(n&4194240)===n)break;for(t=e.eventTimes,i=-1;0<n;){var o=31-yr(n);a=1<<o,o=t[o],o>i&&(i=o),n&=~a}if(n=i,n=De()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*z2(n/1960))-n,10<n){e.timeoutHandle=Lp(ni.bind(null,e,Pt,Rr),n);break}ni(e,Pt,Rr);break;case 5:ni(e,Pt,Rr);break;default:throw Error(H(329))}}}return Et(e,De()),e.callbackNode===r?pS.bind(null,e):null}function rh(e,t){var r=qo;return e.current.memoizedState.isDehydrated&&(vi(e,t).flags|=256),e=Ru(e,t),e!==2&&(t=Pt,Pt=r,t!==null&&nh(t)),e}function nh(e){Pt===null?Pt=e:Pt.push.apply(Pt,e)}function W2(e){for(var t=e;;){if(t.flags&16384){var r=t.updateQueue;if(r!==null&&(r=r.stores,r!==null))for(var n=0;n<r.length;n++){var i=r[n],a=i.getSnapshot;i=i.value;try{if(!wr(a(),i))return!1}catch{return!1}}}if(r=t.child,t.subtreeFlags&16384&&r!==null)r.return=t,t=r;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function yn(e,t){for(t&=~jv,t&=~af,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var r=31-yr(t),n=1<<r;e[r]=-1,t&=~n}}function Gg(e){if(le&6)throw Error(H(327));pa();var t=bu(e,0);if(!(t&1))return Et(e,De()),null;var r=Ru(e,t);if(e.tag!==0&&r===2){var n=kp(e);n!==0&&(t=n,r=rh(e,n))}if(r===1)throw r=ws,vi(e,0),yn(e,t),Et(e,De()),r;if(r===6)throw Error(H(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,ni(e,Pt,Rr),Et(e,De()),null}function Ov(e,t){var r=le;le|=1;try{return e(t)}finally{le=r,le===0&&(Sa=De()+500,ef&&Kn())}}function _i(e){bn!==null&&bn.tag===0&&!(le&6)&&pa();var t=le;le|=1;var r=rr.transition,n=fe;try{if(rr.transition=null,fe=1,e)return e()}finally{fe=n,rr.transition=r,le=t,!(le&6)&&Kn()}}function _v(){Dt=ra.current,_e(ra)}function vi(e,t){e.finishedWork=null,e.finishedLanes=0;var r=e.timeoutHandle;if(r!==-1&&(e.timeoutHandle=-1,g2(r)),ze!==null)for(r=ze.return;r!==null;){var n=r;switch(av(n),n.tag){case 1:n=n.type.childContextTypes,n!=null&&_u();break;case 3:wa(),_e(Nt),_e(mt),hv();break;case 5:pv(n);break;case 4:wa();break;case 13:_e(Ne);break;case 19:_e(Ne);break;case 10:uv(n.type._context);break;case 22:case 23:_v()}r=r.return}if(rt=e,ze=e=Cn(e.current,null),ot=Dt=t,Xe=0,ws=null,jv=af=Oi=0,Pt=qo=null,ui!==null){for(t=0;t<ui.length;t++)if(r=ui[t],n=r.interleaved,n!==null){r.interleaved=null;var i=n.next,a=r.pending;if(a!==null){var o=a.next;a.next=i,n.next=o}r.pending=n}ui=null}return e}function hS(e,t){do{var r=ze;try{if(lv(),uu.current=Mu,Cu){for(var n=Ee.memoizedState;n!==null;){var i=n.queue;i!==null&&(i.pending=null),n=n.next}Cu=!1}if(Si=0,Je=qe=Ee=null,Vo=!1,gs=0,wv.current=null,r===null||r.return===null){Xe=1,ws=t,ze=null;break}e:{var a=e,o=r.return,s=r,l=t;if(t=ot,s.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){var u=l,f=s,d=f.tag;if(!(f.mode&1)&&(d===0||d===11||d===15)){var p=f.alternate;p?(f.updateQueue=p.updateQueue,f.memoizedState=p.memoizedState,f.lanes=p.lanes):(f.updateQueue=null,f.memoizedState=null)}var h=Mg(o);if(h!==null){h.flags&=-257,Ig(h,o,s,a,t),h.mode&1&&Cg(a,u,t),t=h,l=u;var m=t.updateQueue;if(m===null){var g=new Set;g.add(l),t.updateQueue=g}else m.add(l);break e}else{if(!(t&1)){Cg(a,u,t),Pv();break e}l=Error(H(426))}}else if(Ae&&s.mode&1){var x=Mg(o);if(x!==null){!(x.flags&65536)&&(x.flags|=256),Ig(x,o,s,a,t),ov(ja(l,s));break e}}a=l=ja(l,s),Xe!==4&&(Xe=2),qo===null?qo=[a]:qo.push(a),a=o;do{switch(a.tag){case 3:a.flags|=65536,t&=-t,a.lanes|=t;var y=Qj(a,l,t);Ag(a,y);break e;case 1:s=l;var v=a.type,b=a.stateNode;if(!(a.flags&128)&&(typeof v.getDerivedStateFromError=="function"||b!==null&&typeof b.componentDidCatch=="function"&&(En===null||!En.has(b)))){a.flags|=65536,t&=-t,a.lanes|=t;var S=Zj(a,s,t);Ag(a,S);break e}}a=a.return}while(a!==null)}yS(r)}catch(w){t=w,ze===r&&r!==null&&(ze=r=r.return);continue}break}while(!0)}function mS(){var e=Iu.current;return Iu.current=Mu,e===null?Mu:e}function Pv(){(Xe===0||Xe===3||Xe===2)&&(Xe=4),rt===null||!(Oi&268435455)&&!(af&268435455)||yn(rt,ot)}function Ru(e,t){var r=le;le|=2;var n=mS();(rt!==e||ot!==t)&&(Rr=null,vi(e,t));do try{U2();break}catch(i){hS(e,i)}while(!0);if(lv(),le=r,Iu.current=n,ze!==null)throw Error(H(261));return rt=null,ot=0,Xe}function U2(){for(;ze!==null;)vS(ze)}function K2(){for(;ze!==null&&!mk();)vS(ze)}function vS(e){var t=xS(e.alternate,e,Dt);e.memoizedProps=e.pendingProps,t===null?yS(e):ze=t,wv.current=null}function yS(e){var t=e;do{var r=t.alternate;if(e=t.return,t.flags&32768){if(r=D2(r,t),r!==null){r.flags&=32767,ze=r;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Xe=6,ze=null;return}}else if(r=L2(r,t,Dt),r!==null){ze=r;return}if(t=t.sibling,t!==null){ze=t;return}ze=t=e}while(t!==null);Xe===0&&(Xe=5)}function ni(e,t,r){var n=fe,i=rr.transition;try{rr.transition=null,fe=1,H2(e,t,r,n)}finally{rr.transition=i,fe=n}return null}function H2(e,t,r,n){do pa();while(bn!==null);if(le&6)throw Error(H(327));r=e.finishedWork;var i=e.finishedLanes;if(r===null)return null;if(e.finishedWork=null,e.finishedLanes=0,r===e.current)throw Error(H(177));e.callbackNode=null,e.callbackPriority=0;var a=r.lanes|r.childLanes;if(_k(e,a),e===rt&&(ze=rt=null,ot=0),!(r.subtreeFlags&2064)&&!(r.flags&2064)||Bl||(Bl=!0,bS(xu,function(){return pa(),null})),a=(r.flags&15990)!==0,r.subtreeFlags&15990||a){a=rr.transition,rr.transition=null;var o=fe;fe=1;var s=le;le|=4,wv.current=null,B2(e,r),fS(r,e),f2(Mp),wu=!!Cp,Mp=Cp=null,e.current=r,F2(r),vk(),le=s,fe=o,rr.transition=a}else e.current=r;if(Bl&&(Bl=!1,bn=e,Du=i),a=e.pendingLanes,a===0&&(En=null),xk(r.stateNode),Et(e,De()),t!==null)for(n=e.onRecoverableError,r=0;r<t.length;r++)i=t[r],n(i.value,{componentStack:i.stack,digest:i.digest});if(Lu)throw Lu=!1,e=eh,eh=null,e;return Du&1&&e.tag!==0&&pa(),a=e.pendingLanes,a&1?e===th?Xo++:(Xo=0,th=e):Xo=0,Kn(),null}function pa(){if(bn!==null){var e=Qw(Du),t=rr.transition,r=fe;try{if(rr.transition=null,fe=16>e?16:e,bn===null)var n=!1;else{if(e=bn,bn=null,Du=0,le&6)throw Error(H(331));var i=le;for(le|=4,G=e.current;G!==null;){var a=G,o=a.child;if(G.flags&16){var s=a.deletions;if(s!==null){for(var l=0;l<s.length;l++){var u=s[l];for(G=u;G!==null;){var f=G;switch(f.tag){case 0:case 11:case 15:Go(8,f,a)}var d=f.child;if(d!==null)d.return=f,G=d;else for(;G!==null;){f=G;var p=f.sibling,h=f.return;if(lS(f),f===u){G=null;break}if(p!==null){p.return=h,G=p;break}G=h}}}var m=a.alternate;if(m!==null){var g=m.child;if(g!==null){m.child=null;do{var x=g.sibling;g.sibling=null,g=x}while(g!==null)}}G=a}}if(a.subtreeFlags&2064&&o!==null)o.return=a,G=o;else e:for(;G!==null;){if(a=G,a.flags&2048)switch(a.tag){case 0:case 11:case 15:Go(9,a,a.return)}var y=a.sibling;if(y!==null){y.return=a.return,G=y;break e}G=a.return}}var v=e.current;for(G=v;G!==null;){o=G;var b=o.child;if(o.subtreeFlags&2064&&b!==null)b.return=o,G=b;else e:for(o=v;G!==null;){if(s=G,s.flags&2048)try{switch(s.tag){case 0:case 11:case 15:nf(9,s)}}catch(w){Me(s,s.return,w)}if(s===o){G=null;break e}var S=s.sibling;if(S!==null){S.return=s.return,G=S;break e}G=s.return}}if(le=i,Kn(),$r&&typeof $r.onPostCommitFiberRoot=="function")try{$r.onPostCommitFiberRoot(Xc,e)}catch{}n=!0}return n}finally{fe=r,rr.transition=t}}return!1}function qg(e,t,r){t=ja(r,t),t=Qj(e,t,1),e=$n(e,t,1),t=bt(),e!==null&&(ol(e,1,t),Et(e,t))}function Me(e,t,r){if(e.tag===3)qg(e,e,r);else for(;t!==null;){if(t.tag===3){qg(t,e,r);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(En===null||!En.has(n))){e=ja(r,e),e=Zj(t,e,1),t=$n(t,e,1),e=bt(),t!==null&&(ol(t,1,e),Et(t,e));break}}t=t.return}}function V2(e,t,r){var n=e.pingCache;n!==null&&n.delete(t),t=bt(),e.pingedLanes|=e.suspendedLanes&r,rt===e&&(ot&r)===r&&(Xe===4||Xe===3&&(ot&130023424)===ot&&500>De()-Sv?vi(e,0):jv|=r),Et(e,t)}function gS(e,t){t===0&&(e.mode&1?(t=Nl,Nl<<=1,!(Nl&130023424)&&(Nl=4194304)):t=1);var r=bt();e=Zr(e,t),e!==null&&(ol(e,t,r),Et(e,r))}function G2(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),gS(e,r)}function q2(e,t){var r=0;switch(e.tag){case 13:var n=e.stateNode,i=e.memoizedState;i!==null&&(r=i.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(H(314))}n!==null&&n.delete(t),gS(e,r)}var xS;xS=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||Nt.current)At=!0;else{if(!(e.lanes&r)&&!(t.flags&128))return At=!1,I2(e,t,r);At=!!(e.flags&131072)}else At=!1,Ae&&t.flags&1048576&&Sj(t,ku,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;fu(e,t),e=t.pendingProps;var i=ga(t,mt.current);da(t,r),i=vv(null,t,n,e,i,r);var a=yv();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,$t(n)?(a=!0,Pu(t)):a=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,fv(t),i.updater=rf,t.stateNode=i,i._reactInternals=t,Up(t,n,e,r),t=Vp(null,t,n,!0,a,r)):(t.tag=0,Ae&&a&&iv(t),vt(null,t,i,r),t=t.child),t;case 16:n=t.elementType;e:{switch(fu(e,t),e=t.pendingProps,i=n._init,n=i(n._payload),t.type=n,i=t.tag=Y2(n),e=fr(n,e),i){case 0:t=Hp(null,t,n,e,r);break e;case 1:t=Rg(null,t,n,e,r);break e;case 11:t=Lg(null,t,n,e,r);break e;case 14:t=Dg(null,t,n,fr(n.type,e),r);break e}throw Error(H(306,n,""))}return t;case 0:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:fr(n,i),Hp(e,t,n,i,r);case 1:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:fr(n,i),Rg(e,t,n,i,r);case 3:e:{if(rS(t),e===null)throw Error(H(387));n=t.pendingProps,a=t.memoizedState,i=a.element,Nj(e,t),Eu(t,n,null,r);var o=t.memoizedState;if(n=o.element,a.isDehydrated)if(a={element:n,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){i=ja(Error(H(423)),t),t=Bg(e,t,n,r,i);break e}else if(n!==i){i=ja(Error(H(424)),t),t=Bg(e,t,n,r,i);break e}else for(Ft=Nn(t.stateNode.containerInfo.firstChild),zt=t,Ae=!0,mr=null,r=Aj(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(xa(),n===i){t=Jr(e,t,r);break e}vt(e,t,n,r)}t=t.child}return t;case 5:return $j(t),e===null&&Fp(t),n=t.type,i=t.pendingProps,a=e!==null?e.memoizedProps:null,o=i.children,Ip(n,i)?o=null:a!==null&&Ip(n,a)&&(t.flags|=32),tS(e,t),vt(e,t,o,r),t.child;case 6:return e===null&&Fp(t),null;case 13:return nS(e,t,r);case 4:return dv(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=ba(t,null,n,r):vt(e,t,n,r),t.child;case 11:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:fr(n,i),Lg(e,t,n,i,r);case 7:return vt(e,t,t.pendingProps,r),t.child;case 8:return vt(e,t,t.pendingProps.children,r),t.child;case 12:return vt(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(n=t.type._context,i=t.pendingProps,a=t.memoizedProps,o=i.value,ge(Nu,n._currentValue),n._currentValue=o,a!==null)if(wr(a.value,o)){if(a.children===i.children&&!Nt.current){t=Jr(e,t,r);break e}}else for(a=t.child,a!==null&&(a.return=t);a!==null;){var s=a.dependencies;if(s!==null){o=a.child;for(var l=s.firstContext;l!==null;){if(l.context===n){if(a.tag===1){l=Vr(-1,r&-r),l.tag=2;var u=a.updateQueue;if(u!==null){u=u.shared;var f=u.pending;f===null?l.next=l:(l.next=f.next,f.next=l),u.pending=l}}a.lanes|=r,l=a.alternate,l!==null&&(l.lanes|=r),zp(a.return,r,t),s.lanes|=r;break}l=l.next}}else if(a.tag===10)o=a.type===t.type?null:a.child;else if(a.tag===18){if(o=a.return,o===null)throw Error(H(341));o.lanes|=r,s=o.alternate,s!==null&&(s.lanes|=r),zp(o,r,t),o=a.sibling}else o=a.child;if(o!==null)o.return=a;else for(o=a;o!==null;){if(o===t){o=null;break}if(a=o.sibling,a!==null){a.return=o.return,o=a;break}o=o.return}a=o}vt(e,t,i.children,r),t=t.child}return t;case 9:return i=t.type,n=t.pendingProps.children,da(t,r),i=nr(i),n=n(i),t.flags|=1,vt(e,t,n,r),t.child;case 14:return n=t.type,i=fr(n,t.pendingProps),i=fr(n.type,i),Dg(e,t,n,i,r);case 15:return Jj(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:fr(n,i),fu(e,t),t.tag=1,$t(n)?(e=!0,Pu(t)):e=!1,da(t,r),Yj(t,n,i),Up(t,n,i,r),Vp(null,t,n,!0,e,r);case 19:return iS(e,t,r);case 22:return eS(e,t,r)}throw Error(H(156,t.tag))};function bS(e,t){return Gw(e,t)}function X2(e,t,r,n){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function er(e,t,r,n){return new X2(e,t,r,n)}function Av(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Y2(e){if(typeof e=="function")return Av(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Vm)return 11;if(e===Gm)return 14}return 2}function Cn(e,t){var r=e.alternate;return r===null?(r=er(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function hu(e,t,r,n,i,a){var o=2;if(n=e,typeof e=="function")Av(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Vi:return yi(r.children,i,a,t);case Hm:o=8,i|=8;break;case pp:return e=er(12,r,t,i|2),e.elementType=pp,e.lanes=a,e;case hp:return e=er(13,r,t,i),e.elementType=hp,e.lanes=a,e;case mp:return e=er(19,r,t,i),e.elementType=mp,e.lanes=a,e;case $w:return of(r,i,a,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case kw:o=10;break e;case Nw:o=9;break e;case Vm:o=11;break e;case Gm:o=14;break e;case pn:o=16,n=null;break e}throw Error(H(130,e==null?e:typeof e,""))}return t=er(o,r,t,i),t.elementType=e,t.type=n,t.lanes=a,t}function yi(e,t,r,n){return e=er(7,e,n,t),e.lanes=r,e}function of(e,t,r,n){return e=er(22,e,n,t),e.elementType=$w,e.lanes=r,e.stateNode={isHidden:!1},e}function Nd(e,t,r){return e=er(6,e,null,t),e.lanes=r,e}function $d(e,t,r){return t=er(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Q2(e,t,r,n,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=cd(0),this.expirationTimes=cd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=cd(0),this.identifierPrefix=n,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function kv(e,t,r,n,i,a,o,s,l){return e=new Q2(e,t,r,s,l),t===1?(t=1,a===!0&&(t|=8)):t=0,a=er(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},fv(a),e}function Z2(e,t,r){var n=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:Hi,key:n==null?null:""+n,children:e,containerInfo:t,implementation:r}}function wS(e){if(!e)return Rn;e=e._reactInternals;e:{if(Ti(e)!==e||e.tag!==1)throw Error(H(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if($t(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(H(171))}if(e.tag===1){var r=e.type;if($t(r))return wj(e,r,t)}return t}function jS(e,t,r,n,i,a,o,s,l){return e=kv(r,n,!0,e,i,a,o,s,l),e.context=wS(null),r=e.current,n=bt(),i=Tn(r),a=Vr(n,i),a.callback=t??null,$n(r,a,i),e.current.lanes=i,ol(e,i,n),Et(e,n),e}function sf(e,t,r,n){var i=t.current,a=bt(),o=Tn(i);return r=wS(r),t.context===null?t.context=r:t.pendingContext=r,t=Vr(a,o),t.payload={element:e},n=n===void 0?null:n,n!==null&&(t.callback=n),e=$n(i,t,o),e!==null&&(gr(e,i,o,a),lu(e,i,o)),o}function Bu(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function Xg(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var r=e.retryLane;e.retryLane=r!==0&&r<t?r:t}}function Nv(e,t){Xg(e,t),(e=e.alternate)&&Xg(e,t)}function J2(){return null}var SS=typeof reportError=="function"?reportError:function(e){console.error(e)};function $v(e){this._internalRoot=e}lf.prototype.render=$v.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(H(409));sf(e,t,null,null)};lf.prototype.unmount=$v.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;_i(function(){sf(null,e,null,null)}),t[Qr]=null}};function lf(e){this._internalRoot=e}lf.prototype.unstable_scheduleHydration=function(e){if(e){var t=ej();e={blockedOn:null,target:e,priority:t};for(var r=0;r<vn.length&&t!==0&&t<vn[r].priority;r++);vn.splice(r,0,e),r===0&&rj(e)}};function Ev(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function uf(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Yg(){}function eN(e,t,r,n,i){if(i){if(typeof n=="function"){var a=n;n=function(){var u=Bu(o);a.call(u)}}var o=jS(t,n,e,0,null,!1,!1,"",Yg);return e._reactRootContainer=o,e[Qr]=o.current,ps(e.nodeType===8?e.parentNode:e),_i(),o}for(;i=e.lastChild;)e.removeChild(i);if(typeof n=="function"){var s=n;n=function(){var u=Bu(l);s.call(u)}}var l=kv(e,0,!1,null,null,!1,!1,"",Yg);return e._reactRootContainer=l,e[Qr]=l.current,ps(e.nodeType===8?e.parentNode:e),_i(function(){sf(t,l,r,n)}),l}function cf(e,t,r,n,i){var a=r._reactRootContainer;if(a){var o=a;if(typeof i=="function"){var s=i;i=function(){var l=Bu(o);s.call(l)}}sf(t,o,e,i)}else o=eN(r,t,e,i,n);return Bu(o)}Zw=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var r=Ro(t.pendingLanes);r!==0&&(Ym(t,r|1),Et(t,De()),!(le&6)&&(Sa=De()+500,Kn()))}break;case 13:_i(function(){var n=Zr(e,1);if(n!==null){var i=bt();gr(n,e,1,i)}}),Nv(e,1)}};Qm=function(e){if(e.tag===13){var t=Zr(e,134217728);if(t!==null){var r=bt();gr(t,e,134217728,r)}Nv(e,134217728)}};Jw=function(e){if(e.tag===13){var t=Tn(e),r=Zr(e,t);if(r!==null){var n=bt();gr(r,e,t,n)}Nv(e,t)}};ej=function(){return fe};tj=function(e,t){var r=fe;try{return fe=e,t()}finally{fe=r}};_p=function(e,t,r){switch(t){case"input":if(gp(e,r),t=r.name,r.type==="radio"&&t!=null){for(r=e;r.parentNode;)r=r.parentNode;for(r=r.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<r.length;t++){var n=r[t];if(n!==e&&n.form===e.form){var i=Jc(n);if(!i)throw Error(H(90));Tw(n),gp(n,i)}}}break;case"textarea":Mw(e,r);break;case"select":t=r.value,t!=null&&la(e,!!r.multiple,t,!1)}};zw=Ov;Ww=_i;var tN={usingClientEntryPoint:!1,Events:[ll,Yi,Jc,Bw,Fw,Ov]},_o={findFiberByHostInstance:li,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},rN={bundleType:_o.bundleType,version:_o.version,rendererPackageName:_o.rendererPackageName,rendererConfig:_o.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:nn.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=Hw(e),e===null?null:e.stateNode},findFiberByHostInstance:_o.findFiberByHostInstance||J2,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Fl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Fl.isDisabled&&Fl.supportsFiber)try{Xc=Fl.inject(rN),$r=Fl}catch{}}Kt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tN;Kt.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Ev(t))throw Error(H(200));return Z2(e,t,null,r)};Kt.createRoot=function(e,t){if(!Ev(e))throw Error(H(299));var r=!1,n="",i=SS;return t!=null&&(t.unstable_strictMode===!0&&(r=!0),t.identifierPrefix!==void 0&&(n=t.identifierPrefix),t.onRecoverableError!==void 0&&(i=t.onRecoverableError)),t=kv(e,1,!1,null,null,r,!1,n,i),e[Qr]=t.current,ps(e.nodeType===8?e.parentNode:e),new $v(t)};Kt.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(H(188)):(e=Object.keys(e).join(","),Error(H(268,e)));return e=Hw(t),e=e===null?null:e.stateNode,e};Kt.flushSync=function(e){return _i(e)};Kt.hydrate=function(e,t,r){if(!uf(t))throw Error(H(200));return cf(null,e,t,!0,r)};Kt.hydrateRoot=function(e,t,r){if(!Ev(e))throw Error(H(405));var n=r!=null&&r.hydratedSources||null,i=!1,a="",o=SS;if(r!=null&&(r.unstable_strictMode===!0&&(i=!0),r.identifierPrefix!==void 0&&(a=r.identifierPrefix),r.onRecoverableError!==void 0&&(o=r.onRecoverableError)),t=jS(t,null,e,1,r??null,i,!1,a,o),e[Qr]=t.current,ps(e),n)for(e=0;e<n.length;e++)r=n[e],i=r._getVersion,i=i(r._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[r,i]:t.mutableSourceEagerHydrationData.push(r,i);return new lf(t)};Kt.render=function(e,t,r){if(!uf(t))throw Error(H(200));return cf(null,e,t,!1,r)};Kt.unmountComponentAtNode=function(e){if(!uf(e))throw Error(H(40));return e._reactRootContainer?(_i(function(){cf(null,null,e,!1,function(){e._reactRootContainer=null,e[Qr]=null})}),!0):!1};Kt.unstable_batchedUpdates=Ov;Kt.unstable_renderSubtreeIntoContainer=function(e,t,r,n){if(!uf(r))throw Error(H(200));if(e==null||e._reactInternals===void 0)throw Error(H(38));return cf(e,t,r,!1,n)};Kt.version="18.3.1-next-f1338f8080-20240426";function OS(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(OS)}catch(e){console.error(e)}}OS(),Ow.exports=Kt;var nN=Ow.exports,Qg=nN;fp.createRoot=Qg.createRoot,fp.hydrateRoot=Qg.hydrateRoot;/**
+ * @remix-run/router v1.23.2
+ *
+ * Copyright (c) Remix Software Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */function js(){return js=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},js.apply(this,arguments)}var wn;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(wn||(wn={}));const Zg="popstate";function iN(e){e===void 0&&(e={});function t(n,i){let{pathname:a,search:o,hash:s}=n.location;return ih("",{pathname:a,search:o,hash:s},i.state&&i.state.usr||null,i.state&&i.state.key||"default")}function r(n,i){return typeof i=="string"?i:Fu(i)}return oN(t,r,null,e)}function We(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Tv(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function aN(){return Math.random().toString(36).substr(2,8)}function Jg(e,t){return{usr:e.state,key:e.key,idx:t}}function ih(e,t,r,n){return r===void 0&&(r=null),js({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?ro(t):t,{state:r,key:t&&t.key||n||aN()})}function Fu(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function ro(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function oN(e,t,r,n){n===void 0&&(n={});let{window:i=document.defaultView,v5Compat:a=!1}=n,o=i.history,s=wn.Pop,l=null,u=f();u==null&&(u=0,o.replaceState(js({},o.state,{idx:u}),""));function f(){return(o.state||{idx:null}).idx}function d(){s=wn.Pop;let x=f(),y=x==null?null:x-u;u=x,l&&l({action:s,location:g.location,delta:y})}function p(x,y){s=wn.Push;let v=ih(g.location,x,y);u=f()+1;let b=Jg(v,u),S=g.createHref(v);try{o.pushState(b,"",S)}catch(w){if(w instanceof DOMException&&w.name==="DataCloneError")throw w;i.location.assign(S)}a&&l&&l({action:s,location:g.location,delta:1})}function h(x,y){s=wn.Replace;let v=ih(g.location,x,y);u=f();let b=Jg(v,u),S=g.createHref(v);o.replaceState(b,"",S),a&&l&&l({action:s,location:g.location,delta:0})}function m(x){let y=i.location.origin!=="null"?i.location.origin:i.location.href,v=typeof x=="string"?x:Fu(x);return v=v.replace(/ $/,"%20"),We(y,"No window.location.(origin|href) available to create URL for href: "+v),new URL(v,y)}let g={get action(){return s},get location(){return e(i,o)},listen(x){if(l)throw new Error("A history only accepts one active listener");return i.addEventListener(Zg,d),l=x,()=>{i.removeEventListener(Zg,d),l=null}},createHref(x){return t(i,x)},createURL:m,encodeLocation(x){let y=m(x);return{pathname:y.pathname,search:y.search,hash:y.hash}},push:p,replace:h,go(x){return o.go(x)}};return g}var e0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(e0||(e0={}));function sN(e,t,r){return r===void 0&&(r="/"),lN(e,t,r)}function lN(e,t,r,n){let i=typeof t=="string"?ro(t):t,a=Cv(i.pathname||"/",r);if(a==null)return null;let o=_S(e);uN(o);let s=null;for(let l=0;s==null&&l<o.length;++l){let u=wN(a);s=gN(o[l],u)}return s}function _S(e,t,r,n){t===void 0&&(t=[]),r===void 0&&(r=[]),n===void 0&&(n="");let i=(a,o,s)=>{let l={relativePath:s===void 0?a.path||"":s,caseSensitive:a.caseSensitive===!0,childrenIndex:o,route:a};l.relativePath.startsWith("/")&&(We(l.relativePath.startsWith(n),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(n.length));let u=Mn([n,l.relativePath]),f=r.concat(l);a.children&&a.children.length>0&&(We(a.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),_S(a.children,t,f,u)),!(a.path==null&&!a.index)&&t.push({path:u,score:vN(u,a.index),routesMeta:f})};return e.forEach((a,o)=>{var s;if(a.path===""||!((s=a.path)!=null&&s.includes("?")))i(a,o);else for(let l of PS(a.path))i(a,o,l)}),t}function PS(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,i=r.endsWith("?"),a=r.replace(/\?$/,"");if(n.length===0)return i?[a,""]:[a];let o=PS(n.join("/")),s=[];return s.push(...o.map(l=>l===""?a:[a,l].join("/"))),i&&s.push(...o),s.map(l=>e.startsWith("/")&&l===""?"/":l)}function uN(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:yN(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const cN=/^:[\w-]+$/,fN=3,dN=2,pN=1,hN=10,mN=-2,t0=e=>e==="*";function vN(e,t){let r=e.split("/"),n=r.length;return r.some(t0)&&(n+=mN),t&&(n+=dN),r.filter(i=>!t0(i)).reduce((i,a)=>i+(cN.test(a)?fN:a===""?pN:hN),n)}function yN(e,t){return e.length===t.length&&e.slice(0,-1).every((n,i)=>n===t[i])?e[e.length-1]-t[t.length-1]:0}function gN(e,t,r){let{routesMeta:n}=e,i={},a="/",o=[];for(let s=0;s<n.length;++s){let l=n[s],u=s===n.length-1,f=a==="/"?t:t.slice(a.length)||"/",d=xN({path:l.relativePath,caseSensitive:l.caseSensitive,end:u},f),p=l.route;if(!d)return null;Object.assign(i,d.params),o.push({params:i,pathname:Mn([a,d.pathname]),pathnameBase:PN(Mn([a,d.pathnameBase])),route:p}),d.pathnameBase!=="/"&&(a=Mn([a,d.pathnameBase]))}return o}function xN(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=bN(e.path,e.caseSensitive,e.end),i=t.match(r);if(!i)return null;let a=i[0],o=a.replace(/(.)\/+$/,"$1"),s=i.slice(1);return{params:n.reduce((u,f,d)=>{let{paramName:p,isOptional:h}=f;if(p==="*"){let g=s[d]||"";o=a.slice(0,a.length-g.length).replace(/(.)\/+$/,"$1")}const m=s[d];return h&&!m?u[p]=void 0:u[p]=(m||"").replace(/%2F/g,"/"),u},{}),pathname:a,pathnameBase:o,pattern:e}}function bN(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),Tv(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let n=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,s,l)=>(n.push({paramName:s,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),n]}function wN(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Tv(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function Cv(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}const jN=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,SN=e=>jN.test(e);function ON(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:i=""}=typeof e=="string"?ro(e):e,a;if(r)if(SN(r))a=r;else{if(r.includes("//")){let o=r;r=r.replace(/\/\/+/g,"/"),Tv(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+r))}r.startsWith("/")?a=r0(r.substring(1),"/"):a=r0(r,t)}else a=t;return{pathname:a,search:AN(n),hash:kN(i)}}function r0(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?r.length>1&&r.pop():i!=="."&&r.push(i)}),r.length>1?r.join("/"):"/"}function Ed(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(n)+"]. Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function _N(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function AS(e,t){let r=_N(e);return t?r.map((n,i)=>i===r.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function kS(e,t,r,n){n===void 0&&(n=!1);let i;typeof e=="string"?i=ro(e):(i=js({},e),We(!i.pathname||!i.pathname.includes("?"),Ed("?","pathname","search",i)),We(!i.pathname||!i.pathname.includes("#"),Ed("#","pathname","hash",i)),We(!i.search||!i.search.includes("#"),Ed("#","search","hash",i)));let a=e===""||i.pathname==="",o=a?"/":i.pathname,s;if(o==null)s=r;else{let d=t.length-1;if(!n&&o.startsWith("..")){let p=o.split("/");for(;p[0]==="..";)p.shift(),d-=1;i.pathname=p.join("/")}s=d>=0?t[d]:"/"}let l=ON(i,s),u=o&&o!=="/"&&o.endsWith("/"),f=(a||o===".")&&r.endsWith("/");return!l.pathname.endsWith("/")&&(u||f)&&(l.pathname+="/"),l}const Mn=e=>e.join("/").replace(/\/\/+/g,"/"),PN=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),AN=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,kN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function NN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const NS=["post","put","patch","delete"];new Set(NS);const $N=["get",...NS];new Set($N);/**
+ * React Router v6.30.3
+ *
+ * Copyright (c) Remix Software Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */function Ss(){return Ss=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ss.apply(this,arguments)}const Mv=A.createContext(null),EN=A.createContext(null),Ci=A.createContext(null),ff=A.createContext(null),Hn=A.createContext({outlet:null,matches:[],isDataRoute:!1}),$S=A.createContext(null);function TN(e,t){let{relative:r}=t===void 0?{}:t;cl()||We(!1);let{basename:n,navigator:i}=A.useContext(Ci),{hash:a,pathname:o,search:s}=TS(e,{relative:r}),l=o;return n!=="/"&&(l=o==="/"?n:Mn([n,o])),i.createHref({pathname:l,search:s,hash:a})}function cl(){return A.useContext(ff)!=null}function fl(){return cl()||We(!1),A.useContext(ff).location}function ES(e){A.useContext(Ci).static||A.useLayoutEffect(e)}function dl(){let{isDataRoute:e}=A.useContext(Hn);return e?GN():CN()}function CN(){cl()||We(!1);let e=A.useContext(Mv),{basename:t,future:r,navigator:n}=A.useContext(Ci),{matches:i}=A.useContext(Hn),{pathname:a}=fl(),o=JSON.stringify(AS(i,r.v7_relativeSplatPath)),s=A.useRef(!1);return ES(()=>{s.current=!0}),A.useCallback(function(u,f){if(f===void 0&&(f={}),!s.current)return;if(typeof u=="number"){n.go(u);return}let d=kS(u,JSON.parse(o),a,f.relative==="path");e==null&&t!=="/"&&(d.pathname=d.pathname==="/"?t:Mn([t,d.pathname])),(f.replace?n.replace:n.push)(d,f.state,f)},[t,n,o,a,e])}const MN=A.createContext(null);function IN(e){let t=A.useContext(Hn).outlet;return t&&A.createElement(MN.Provider,{value:e},t)}function TS(e,t){let{relative:r}=t===void 0?{}:t,{future:n}=A.useContext(Ci),{matches:i}=A.useContext(Hn),{pathname:a}=fl(),o=JSON.stringify(AS(i,n.v7_relativeSplatPath));return A.useMemo(()=>kS(e,JSON.parse(o),a,r==="path"),[e,o,a,r])}function LN(e,t){return DN(e,t)}function DN(e,t,r,n){cl()||We(!1);let{navigator:i}=A.useContext(Ci),{matches:a}=A.useContext(Hn),o=a[a.length-1],s=o?o.params:{};o&&o.pathname;let l=o?o.pathnameBase:"/";o&&o.route;let u=fl(),f;if(t){var d;let x=typeof t=="string"?ro(t):t;l==="/"||(d=x.pathname)!=null&&d.startsWith(l)||We(!1),f=x}else f=u;let p=f.pathname||"/",h=p;if(l!=="/"){let x=l.replace(/^\//,"").split("/");h="/"+p.replace(/^\//,"").split("/").slice(x.length).join("/")}let m=sN(e,{pathname:h}),g=WN(m&&m.map(x=>Object.assign({},x,{params:Object.assign({},s,x.params),pathname:Mn([l,i.encodeLocation?i.encodeLocation(x.pathname).pathname:x.pathname]),pathnameBase:x.pathnameBase==="/"?l:Mn([l,i.encodeLocation?i.encodeLocation(x.pathnameBase).pathname:x.pathnameBase])})),a,r,n);return t&&g?A.createElement(ff.Provider,{value:{location:Ss({pathname:"/",search:"",hash:"",state:null,key:"default"},f),navigationType:wn.Pop}},g):g}function RN(){let e=VN(),t=NN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,i={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return A.createElement(A.Fragment,null,A.createElement("h2",null,"Unexpected Application Error!"),A.createElement("h3",{style:{fontStyle:"italic"}},t),r?A.createElement("pre",{style:i},r):null,null)}const BN=A.createElement(RN,null);class FN extends A.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error!==void 0?A.createElement(Hn.Provider,{value:this.props.routeContext},A.createElement($S.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function zN(e){let{routeContext:t,match:r,children:n}=e,i=A.useContext(Mv);return i&&i.static&&i.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=r.route.id),A.createElement(Hn.Provider,{value:t},n)}function WN(e,t,r,n){var i;if(t===void 0&&(t=[]),r===void 0&&(r=null),n===void 0&&(n=null),e==null){var a;if(!r)return null;if(r.errors)e=r.matches;else if((a=n)!=null&&a.v7_partialHydration&&t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,s=(i=r)==null?void 0:i.errors;if(s!=null){let f=o.findIndex(d=>d.route.id&&(s==null?void 0:s[d.route.id])!==void 0);f>=0||We(!1),o=o.slice(0,Math.min(o.length,f+1))}let l=!1,u=-1;if(r&&n&&n.v7_partialHydration)for(let f=0;f<o.length;f++){let d=o[f];if((d.route.HydrateFallback||d.route.hydrateFallbackElement)&&(u=f),d.route.id){let{loaderData:p,errors:h}=r,m=d.route.loader&&p[d.route.id]===void 0&&(!h||h[d.route.id]===void 0);if(d.route.lazy||m){l=!0,u>=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((f,d,p)=>{let h,m=!1,g=null,x=null;r&&(h=s&&d.route.id?s[d.route.id]:void 0,g=d.route.errorElement||BN,l&&(u<0&&p===0?(qN("route-fallback"),m=!0,x=null):u===p&&(m=!0,x=d.route.hydrateFallbackElement||null)));let y=t.concat(o.slice(0,p+1)),v=()=>{let b;return h?b=g:m?b=x:d.route.Component?b=A.createElement(d.route.Component,null):d.route.element?b=d.route.element:b=f,A.createElement(zN,{match:d,routeContext:{outlet:f,matches:y,isDataRoute:r!=null},children:b})};return r&&(d.route.ErrorBoundary||d.route.errorElement||p===0)?A.createElement(FN,{location:r.location,revalidation:r.revalidation,component:g,error:h,children:v(),routeContext:{outlet:null,matches:y,isDataRoute:!0}}):v()},null)}var CS=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(CS||{}),MS=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(MS||{});function UN(e){let t=A.useContext(Mv);return t||We(!1),t}function KN(e){let t=A.useContext(EN);return t||We(!1),t}function HN(e){let t=A.useContext(Hn);return t||We(!1),t}function IS(e){let t=HN(),r=t.matches[t.matches.length-1];return r.route.id||We(!1),r.route.id}function VN(){var e;let t=A.useContext($S),r=KN(),n=IS();return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function GN(){let{router:e}=UN(CS.UseNavigateStable),t=IS(MS.UseNavigateStable),r=A.useRef(!1);return ES(()=>{r.current=!0}),A.useCallback(function(i,a){a===void 0&&(a={}),r.current&&(typeof i=="number"?e.navigate(i):e.navigate(i,Ss({fromRouteId:t},a)))},[e,t])}const n0={};function qN(e,t,r){n0[e]||(n0[e]=!0)}function XN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function YN(e){return IN(e.context)}function Mt(e){We(!1)}function QN(e){let{basename:t="/",children:r=null,location:n,navigationType:i=wn.Pop,navigator:a,static:o=!1,future:s}=e;cl()&&We(!1);let l=t.replace(/^\/*/,"/"),u=A.useMemo(()=>({basename:l,navigator:a,static:o,future:Ss({v7_relativeSplatPath:!1},s)}),[l,s,a,o]);typeof n=="string"&&(n=ro(n));let{pathname:f="/",search:d="",hash:p="",state:h=null,key:m="default"}=n,g=A.useMemo(()=>{let x=Cv(f,l);return x==null?null:{location:{pathname:x,search:d,hash:p,state:h,key:m},navigationType:i}},[l,f,d,p,h,m,i]);return g==null?null:A.createElement(Ci.Provider,{value:u},A.createElement(ff.Provider,{children:r,value:g}))}function ZN(e){let{children:t,location:r}=e;return LN(ah(t),r)}new Promise(()=>{});function ah(e,t){t===void 0&&(t=[]);let r=[];return A.Children.forEach(e,(n,i)=>{if(!A.isValidElement(n))return;let a=[...t,i];if(n.type===A.Fragment){r.push.apply(r,ah(n.props.children,a));return}n.type!==Mt&&We(!1),!n.props.index||!n.props.children||We(!1);let o={id:n.props.id||a.join("-"),caseSensitive:n.props.caseSensitive,element:n.props.element,Component:n.props.Component,index:n.props.index,path:n.props.path,loader:n.props.loader,action:n.props.action,errorElement:n.props.errorElement,ErrorBoundary:n.props.ErrorBoundary,hasErrorBoundary:n.props.ErrorBoundary!=null||n.props.errorElement!=null,shouldRevalidate:n.props.shouldRevalidate,handle:n.props.handle,lazy:n.props.lazy};n.props.children&&(o.children=ah(n.props.children,a)),r.push(o)}),r}/**
+ * React Router DOM v6.30.3
+ *
+ * Copyright (c) Remix Software Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */function oh(){return oh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},oh.apply(this,arguments)}function JN(e,t){if(e==null)return{};var r={},n=Object.keys(e),i,a;for(a=0;a<n.length;a++)i=n[a],!(t.indexOf(i)>=0)&&(r[i]=e[i]);return r}function e$(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function t$(e,t){return e.button===0&&(!t||t==="_self")&&!e$(e)}const r$=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],n$="6";try{window.__reactRouterVersion=n$}catch{}const i$="startTransition",i0=VA[i$];function a$(e){let{basename:t,children:r,future:n,window:i}=e,a=A.useRef();a.current==null&&(a.current=iN({window:i,v5Compat:!0}));let o=a.current,[s,l]=A.useState({action:o.action,location:o.location}),{v7_startTransition:u}=n||{},f=A.useCallback(d=>{u&&i0?i0(()=>l(d)):l(d)},[l,u]);return A.useLayoutEffect(()=>o.listen(f),[o,f]),A.useEffect(()=>XN(n),[n]),A.createElement(QN,{basename:t,children:r,location:s.location,navigationType:s.action,navigator:o,future:n})}const o$=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",s$=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,l$=A.forwardRef(function(t,r){let{onClick:n,relative:i,reloadDocument:a,replace:o,state:s,target:l,to:u,preventScrollReset:f,viewTransition:d}=t,p=JN(t,r$),{basename:h}=A.useContext(Ci),m,g=!1;if(typeof u=="string"&&s$.test(u)&&(m=u,o$))try{let b=new URL(window.location.href),S=u.startsWith("//")?new URL(b.protocol+u):new URL(u),w=Cv(S.pathname,h);S.origin===b.origin&&w!=null?u=w+S.search+S.hash:g=!0}catch{}let x=TN(u,{relative:i}),y=u$(u,{replace:o,state:s,target:l,preventScrollReset:f,relative:i,viewTransition:d});function v(b){n&&n(b),b.defaultPrevented||y(b)}return A.createElement("a",oh({},p,{href:m||x,onClick:g||a?n:v,ref:r,target:l}))});var a0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(a0||(a0={}));var o0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(o0||(o0={}));function u$(e,t){let{target:r,replace:n,state:i,preventScrollReset:a,relative:o,viewTransition:s}=t===void 0?{}:t,l=dl(),u=fl(),f=TS(e,{relative:o});return A.useCallback(d=>{if(t$(d,r)){d.preventDefault();let p=n!==void 0?n:Fu(u)===Fu(f);l(e,{replace:p,state:i,preventScrollReset:a,relative:o,viewTransition:s})}},[u,l,f,n,i,r,e,a,o,s])}const c$="/api";async function tt(e,t={}){const r=await fetch(`${c$}${e}`,{...t,credentials:"same-origin",headers:{"Content-Type":"application/json",...t.headers}});return r.status===401&&!e.startsWith("/auth/")?(window.location.href="/login",{}):r.json()}async function ie(e,t){return tt(e,{method:"POST",body:JSON.stringify(t)})}async function Iv(){try{return(await tt("/auth/session")).authenticated===!0}catch{return!1}}async function f$(e,t){return(await ie("/auth/login",{username:e,password:t})).success===!0}async function d$(e){return await ie("/auth/google",{credential:e})}async function p$(){try{return await tt("/auth/google-config")}catch{return{configured:!1}}}async function h$(){await ie("/auth/logout",{}),window.location.href="/login"}function m$(){const[e,t]=A.useState(""),[r,n]=A.useState(""),[i,a]=A.useState(!1),[o,s]=A.useState(""),[l,u]=A.useState(!1),[f,d]=A.useState(!0),[p,h]=A.useState(!1),[m,g]=A.useState(null),x=A.useRef(null),y=dl();A.useEffect(()=>{Iv().then(j=>{j?y("/"):d(!1)}),p$().then(j=>{j.configured&&j.client_id&&(g(j.client_id),v(j.client_id))})},[]);function v(j){if(document.getElementById("google-gsi"))return;const O=document.createElement("script");O.id="google-gsi",O.src="https://accounts.google.com/gsi/client",O.async=!0,O.defer=!0,O.onload=()=>b(j),document.head.appendChild(O)}function b(j){var O,_;(_=(O=window.google)==null?void 0:O.accounts)!=null&&_.id&&(window.google.accounts.id.initialize({client_id:j,callback:S,auto_select:!1}),h(!0),x.current&&window.google.accounts.id.renderButton(x.current,{type:"standard",theme:"filled_black",size:"large",text:"signin_with",shape:"pill",width:"100%"}))}A.useEffect(()=>{var j,O;p&&x.current&&((O=(j=window.google)==null?void 0:j.accounts)!=null&&O.id)&&window.google.accounts.id.renderButton(x.current,{type:"standard",theme:"filled_black",size:"large",text:"signin_with",shape:"pill",width:360})},[p]);async function S(j){s(""),u(!0);try{const O=await d$(j.credential);O.success?y("/"):s(O.error||"Google login failed")}catch{s("Connection error")}u(!1)}async function w(j){j.preventDefault(),s(""),u(!0);try{await f$(e,r)?y("/"):s("Invalid credentials")}catch{s("Connection error")}u(!1)}return f?c.jsx("div",{className:"min-h-screen flex items-center justify-center",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full"})}):c.jsx("div",{className:"min-h-screen flex items-center justify-center p-4",children:c.jsxs("div",{className:"w-full max-w-md",children:[c.jsxs("div",{className:"text-center mb-8",children:[c.jsx("div",{className:"inline-flex items-center justify-center w-20 h-20 rounded-2xl mb-4",style:{background:"linear-gradient(135deg,#3b82f6,#8b5cf6)"},children:c.jsxs("svg",{width:"40",height:"40",viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"2",children:[c.jsx("path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z"}),c.jsx("circle",{cx:"12",cy:"12",r:"3"})]})}),c.jsx("h1",{className:"text-3xl font-extrabold bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent",children:"BERTHA"}),c.jsx("p",{className:"text-gray-400 mt-2 text-sm",children:"Weather Forecast Micro-Betting System"})]}),o&&c.jsxs("div",{className:"text-red-400 text-sm bg-red-500/10 rounded-lg p-3 flex items-center gap-2 mb-4",children:[c.jsx("svg",{className:"w-4 h-4 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})}),o]}),m&&c.jsxs("div",{className:"mb-4",children:[c.jsx("div",{ref:x,className:"flex justify-center"}),c.jsxs("div",{className:"relative my-5",children:[c.jsx("div",{className:"absolute inset-0 flex items-center",children:c.jsx("div",{className:"w-full border-t border-gray-800"})}),c.jsx("div",{className:"relative flex justify-center text-xs",children:c.jsx("span",{className:"px-3 text-gray-500",style:{background:"var(--bg)"},children:"or sign in with password"})})]})]}),c.jsxs("form",{onSubmit:w,className:"card space-y-4",children:[c.jsxs("div",{children:[c.jsx("label",{className:"block text-xs font-medium text-gray-400 mb-1.5",children:"Username"}),c.jsx("input",{type:"text",value:e,onChange:j=>t(j.target.value),required:!0,autoComplete:"username",className:"w-full bg-gray-800/50 border border-gray-700 rounded-lg px-3 py-2.5 text-sm focus:outline-none focus:border-blue-500 transition",placeholder:"admin"})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-xs font-medium text-gray-400 mb-1.5",children:"Password"}),c.jsxs("div",{className:"relative",children:[c.jsx("input",{type:i?"text":"password",value:r,onChange:j=>n(j.target.value),required:!0,autoComplete:"current-password",className:"w-full bg-gray-800/50 border border-gray-700 rounded-lg px-3 py-2.5 pr-10 text-sm focus:outline-none focus:border-blue-500 transition",placeholder:"Enter password"}),c.jsx("button",{type:"button",onClick:()=>a(!i),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-500 hover:text-gray-300",children:c.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:i?"M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.878 9.878L3 3m6.878 6.879L21 21":"M15 12a3 3 0 11-6 0 3 3 0 016 0z M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"})})})]})]}),c.jsxs("button",{type:"submit",disabled:l,className:"btn btn-p w-full py-2.5 flex items-center justify-center gap-2 disabled:opacity-50",children:[l&&c.jsx("span",{className:"animate-spin w-4 h-4 border-2 border-white border-t-transparent rounded-full"}),l?"Signing in...":"Sign In"]})]}),c.jsx("div",{className:"mt-6 grid grid-cols-3 gap-2 text-center",children:[{l:"Bankroll",v:"$50",c:"text-green-400"},{l:"Mode",v:"Paper",c:"text-yellow-400"},{l:"Status",v:"Active",c:"text-blue-400"}].map(j=>c.jsxs("div",{className:"card !p-3",children:[c.jsx("div",{className:`text-lg font-bold ${j.c}`,children:j.v}),c.jsx("div",{className:"text-[10px] text-gray-500 uppercase",children:j.l})]},j.l))}),c.jsxs("div",{className:"text-center mt-4 space-y-1",children:[c.jsx("p",{className:"text-gray-600 text-[10px]",children:"Session: httpOnly cookie / 30-day expiry / IP whitelist"}),m&&c.jsx("p",{className:"text-gray-600 text-[10px]",children:"Google OAuth 2.0 enabled"})]})]})})}const v$=[{to:"/",label:"Overview",d:"M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"},{to:"/markets",label:"Markets",d:"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"},{to:"/polymarket",label:"Polymarket",d:"M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9"},{to:"/weather",label:"Weather",d:"M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z"},{to:"/models",label:"Models",d:"M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z"},{to:"/risk",label:"Risk",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"},{to:"/trades",label:"Trades",d:"M8 7h12m0 0l-4-4m4 4l-4 4m0 6H4m0 0l4 4m-4-4l4-4"},{to:"/bankroll",label:"Bankroll",d:"M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"},{to:"/settings",label:"Settings",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z"}];function y$(){const e=fl(),t=dl(),[r,n]=A.useState(null),[i,a]=A.useState(!1),[o,s]=A.useState(!1);if(A.useEffect(()=>{Iv().then(u=>{if(!u){t("/login");return}s(!0);const f=()=>tt("/health").then(p=>{n(p),p&&!p.setup_complete&&t("/setup")}).catch(()=>{});f();const d=setInterval(f,2e4);return()=>clearInterval(d)})},[]),!o)return c.jsx("div",{className:"flex items-center justify-center min-h-screen",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full"})});const l=r==null?void 0:r.paper_mode;return c.jsxs("div",{className:"flex min-h-screen",children:[c.jsxs("aside",{className:`${i?"w-16":"w-56"} bg-gray-900/50 border-r border-gray-800 flex flex-col transition-all duration-200`,children:[c.jsxs("div",{className:"p-4 border-b border-gray-800 flex items-center gap-3",children:[c.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{background:"linear-gradient(135deg,#3b82f6,#8b5cf6)"},children:c.jsx("span",{className:"text-white font-bold text-sm",children:"B"})}),!i&&c.jsx("span",{className:"font-bold text-sm bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent",children:"BERTHA"})]}),c.jsx("nav",{className:"flex-1 p-2 space-y-0.5",children:v$.map(u=>{const f=e.pathname===u.to||u.to!=="/"&&e.pathname.startsWith(u.to);return c.jsxs(l$,{to:u.to,className:`flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition ${f?"bg-blue-500/15 text-blue-400 font-medium":"text-gray-400 hover:text-gray-200 hover:bg-gray-800/50"}`,children:[c.jsx("svg",{className:"flex-shrink-0",style:{width:18,height:18},fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:u.d})}),!i&&c.jsx("span",{children:u.label})]},u.to)})}),c.jsxs("div",{className:"p-3 border-t border-gray-800",children:[!i&&r&&c.jsxs("div",{className:"space-y-1.5 text-[11px]",children:[c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Mode"}),c.jsx("span",{className:l?"text-yellow-400":"text-green-400",children:l?"PAPER":"LIVE"})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Kill Switch"}),c.jsx("span",{className:r.kill_switch?"text-red-400":"text-green-400",children:r.kill_switch?"ACTIVE":"OFF"})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"DB"}),c.jsx("span",{className:r.db_connected?"text-green-400":"text-red-400",children:r.db_connected?"OK":"DOWN"})]})]}),c.jsxs("div",{className:"flex gap-1 mt-2",children:[c.jsx("button",{onClick:()=>a(!i),className:"flex-1 flex items-center justify-center py-1.5 text-gray-500 hover:text-gray-300",children:c.jsx("svg",{className:`w-4 h-4 transition-transform ${i?"":"rotate-180"}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M11 19l-7-7 7-7m8 14l-7-7 7-7"})})}),!i&&c.jsx("button",{onClick:h$,className:"px-2 py-1 text-xs text-gray-500 hover:text-red-400",children:"Logout"})]})]})]}),c.jsx("main",{className:"flex-1 overflow-auto",children:c.jsx("div",{className:"p-6 max-w-[1600px] mx-auto",children:c.jsx(YN,{})})})]})}const g$=[{title:"Market Intelligence",desc:"Scans Polymarket for weather prediction markets and identifies profitable opportunities",icon:"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"},{title:"Weather Forecasting",desc:"Pulls real NWS forecast data and builds probability models for weather outcomes",icon:"M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z"},{title:"Automated Trading",desc:"Places bets on Polymarket when edges exceed your risk threshold, fully automated",icon:"M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z"}],x$=["Connect to Polymarket API","Ingest weather prediction markets","Fetch NWS forecast data","Generate AI probability models","Calculate edges & signals","Execute trades automatically"];function b$({next:e}){return c.jsxs("div",{className:"space-y-8",children:[c.jsxs("div",{className:"text-center",children:[c.jsx("h1",{className:"text-4xl font-bold wizard-gradient mb-3",children:"Welcome to Bertha"}),c.jsx("p",{className:"text-gray-400 text-lg",children:"Weather-forecast micro-betting on Polymarket"})]}),c.jsx("div",{className:"grid grid-cols-3 gap-4",children:g$.map(t=>c.jsxs("div",{className:"card text-center",children:[c.jsx("div",{className:"w-10 h-10 rounded-lg bg-blue-500/10 flex items-center justify-center mx-auto mb-3",children:c.jsx("svg",{className:"w-5 h-5 text-blue-400",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:t.icon})})}),c.jsx("h3",{className:"font-semibold text-sm mb-1",children:t.title}),c.jsx("p",{className:"text-xs text-gray-500 leading-relaxed",children:t.desc})]},t.title))}),c.jsxs("div",{className:"card",children:[c.jsx("h3",{className:"font-semibold text-sm mb-3",children:"How it works"}),c.jsx("div",{className:"grid grid-cols-2 gap-2",children:x$.map((t,r)=>c.jsxs("div",{className:"flex items-center gap-3 py-1.5",children:[c.jsx("span",{className:"w-6 h-6 rounded-full bg-blue-500/15 text-blue-400 flex items-center justify-center text-xs font-bold flex-shrink-0",children:r+1}),c.jsx("span",{className:"text-sm text-gray-300",children:t})]},r))})]}),c.jsx("div",{className:"card bg-yellow-500/5 border-yellow-500/20",children:c.jsxs("div",{className:"flex items-start gap-3",children:[c.jsx("svg",{className:"w-5 h-5 text-yellow-400 mt-0.5 flex-shrink-0",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z"})}),c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium text-yellow-400",children:"You'll need Polymarket Builder API keys"}),c.jsx("p",{className:"text-xs text-gray-400 mt-1",children:"Go to polymarket.com → Settings → Builder tab to create API credentials. You can also skip this and use paper mode."})]})]})}),c.jsx("div",{className:"flex justify-center",children:c.jsx("button",{onClick:e,className:"wizard-btn",children:"Get Started"})})]})}function w$({data:e,update:t,next:r,back:n}){var S,w,j,O;const[i,a]=A.useState(((S=e.keys)==null?void 0:S.api_key)||""),[o,s]=A.useState(((w=e.keys)==null?void 0:w.api_secret)||""),[l,u]=A.useState(((j=e.keys)==null?void 0:j.api_passphrase)||""),[f,d]=A.useState(((O=e.keys)==null?void 0:O.wallet)||""),[p,h]=A.useState(!1),[m,g]=A.useState(!1),[x,y]=A.useState(null);async function v(){g(!0),y(null);try{const _=await ie("/polymarket",{action:"save_keys",api_key:i,api_secret:o,api_passphrase:l,wallet:f||void 0});_.success?(t({keys:{api_key:i,api_secret:o,api_passphrase:l,wallet:f}}),r()):y(_.error||"Failed to save")}catch{y("Connection error")}g(!1)}function b(){t({keys:null,skippedConnect:!0}),r()}return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"text-center",children:[c.jsx("h2",{className:"text-2xl font-bold mb-2",children:"Connect Polymarket"}),c.jsx("p",{className:"text-gray-400 text-sm",children:"Enter your Builder API credentials to enable live trading"})]}),c.jsxs("div",{className:"card space-y-4",children:[c.jsxs("div",{children:[c.jsx("label",{className:"block text-xs text-gray-400 mb-1.5 font-medium",children:"API Key"}),c.jsx("input",{type:"text",value:i,onChange:_=>a(_.target.value),placeholder:"Your Polymarket API key",className:"w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-blue-500 focus:outline-none font-mono"})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-xs text-gray-400 mb-1.5 font-medium",children:"API Secret"}),c.jsxs("div",{className:"relative",children:[c.jsx("input",{type:p?"text":"password",value:o,onChange:_=>s(_.target.value),placeholder:"Your API secret",className:"w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-blue-500 focus:outline-none font-mono pr-16"}),c.jsx("button",{onClick:()=>h(!p),className:"absolute right-2 top-1/2 -translate-y-1/2 text-xs text-gray-500 hover:text-gray-300",children:p?"Hide":"Show"})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-xs text-gray-400 mb-1.5 font-medium",children:"Passphrase"}),c.jsx("input",{type:"password",value:l,onChange:_=>u(_.target.value),placeholder:"Your API passphrase",className:"w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-blue-500 focus:outline-none font-mono"})]}),c.jsxs("div",{children:[c.jsxs("label",{className:"block text-xs text-gray-400 mb-1.5 font-medium",children:["Wallet Address ",c.jsx("span",{className:"text-gray-600",children:"(optional)"})]}),c.jsx("input",{type:"text",value:f,onChange:_=>d(_.target.value),placeholder:"0x...",className:"w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-blue-500 focus:outline-none font-mono"})]}),x&&c.jsx("p",{className:"text-red-400 text-xs",children:x})]}),c.jsxs("div",{className:"card bg-gray-800/30",children:[c.jsx("h3",{className:"text-sm font-medium mb-2",children:"Where to get your keys"}),c.jsxs("ol",{className:"text-xs text-gray-400 space-y-1.5 list-decimal list-inside",children:[c.jsxs("li",{children:["Go to ",c.jsx("span",{className:"text-blue-400 font-mono",children:"polymarket.com"})]}),c.jsx("li",{children:"Click your profile → Settings"}),c.jsxs("li",{children:["Navigate to the ",c.jsx("span",{className:"text-blue-400",children:"Builder"})," tab"]}),c.jsx("li",{children:"Create a new API key — save the secret immediately"})]})]}),c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("button",{onClick:n,className:"text-sm text-gray-500 hover:text-gray-300",children:"Back"}),c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsx("button",{onClick:b,className:"text-sm text-gray-500 hover:text-gray-300",children:"Skip (paper mode)"}),c.jsx("button",{onClick:v,disabled:m||!i&&!o,className:"wizard-btn",children:m?"Saving...":"Save & Continue"})]})]})]})}function j$({data:e,update:t,next:r,back:n}){const[i,a]=A.useState(null),[o,s]=A.useState(null),[l,u]=A.useState(!0),[f,d]=A.useState(!1);A.useEffect(()=>{p()},[]);async function p(){u(!0);try{const g=await ie("/polymarket",{action:"test_public"});a(g),g.success&&e.keys&&h()}catch{a({error:!0})}u(!1)}async function h(){d(!0);try{const g=await ie("/polymarket",{action:"auth_test"});s(g),g.success&&t({connectionOk:!0})}catch{s({error:!0})}d(!1)}const m=e.skippedConnect;return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"text-center",children:[c.jsx("h2",{className:"text-2xl font-bold mb-2",children:"Test Connection"}),c.jsx("p",{className:"text-gray-400 text-sm",children:"Verifying your Polymarket API access"})]}),c.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[l?c.jsx("div",{className:"animate-spin w-5 h-5 border-2 border-blue-500 border-t-transparent rounded-full"}):i!=null&&i.success?c.jsx("div",{className:"w-5 h-5 rounded-full bg-green-500 flex items-center justify-center",children:c.jsx("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",strokeWidth:"3",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})})}):c.jsx("div",{className:"w-5 h-5 rounded-full bg-red-500 flex items-center justify-center",children:c.jsx("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",strokeWidth:"3",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})}),c.jsx("h3",{className:"font-semibold text-sm",children:"Public CLOB"})]}),i!=null&&i.success?c.jsxs("div",{className:"space-y-1 text-xs text-gray-400",children:[c.jsxs("p",{children:["Server Time: ",c.jsx("span",{className:"text-green-400 font-mono",children:i.server_time?new Date(parseInt(i.server_time)*1e3).toLocaleTimeString():"OK"})]}),c.jsxs("p",{children:["Endpoint: ",c.jsx("span",{className:"text-gray-300 font-mono",children:"clob.polymarket.com"})]})]}):i!=null&&i.error?c.jsx("p",{className:"text-xs text-red-400",children:"Could not reach CLOB API"}):null]}),c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[m?c.jsx("div",{className:"w-5 h-5 rounded-full bg-yellow-500 flex items-center justify-center",children:c.jsx("span",{className:"text-white text-xs font-bold",children:"—"})}):f?c.jsx("div",{className:"animate-spin w-5 h-5 border-2 border-purple-500 border-t-transparent rounded-full"}):o!=null&&o.success?c.jsx("div",{className:"w-5 h-5 rounded-full bg-green-500 flex items-center justify-center",children:c.jsx("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",strokeWidth:"3",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})})}):o!=null&&o.error?c.jsx("div",{className:"w-5 h-5 rounded-full bg-red-500 flex items-center justify-center",children:c.jsx("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",strokeWidth:"3",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})}):c.jsx("div",{className:"w-5 h-5 rounded-full bg-gray-600"}),c.jsx("h3",{className:"font-semibold text-sm",children:"Authenticated"})]}),m?c.jsx("p",{className:"text-xs text-yellow-400",children:"Skipped — paper mode only"}):o!=null&&o.success?c.jsx("p",{className:"text-xs text-green-400",children:"HMAC-SHA256 auth verified"}):o!=null&&o.error?c.jsx("p",{className:"text-xs text-red-400",children:"Auth failed — check credentials"}):e.keys?c.jsx("p",{className:"text-xs text-gray-500",children:"Waiting for public test..."}):c.jsx("p",{className:"text-xs text-gray-500",children:"No keys provided"})]})]}),!l&&!f&&c.jsx("div",{className:"flex justify-center",children:c.jsx("button",{onClick:p,className:"text-xs text-gray-500 hover:text-gray-300",children:"Retry Tests"})}),c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("button",{onClick:n,className:"text-sm text-gray-500 hover:text-gray-300",children:"Back"}),c.jsx("button",{onClick:r,className:"wizard-btn",children:"Continue"})]})]})}function S$({data:e,update:t,next:r,back:n}){var d;const[i,a]=A.useState(!0),[o,s]=A.useState(null),[l,u]=A.useState(null);A.useEffect(()=>{f()},[]);async function f(){var p;a(!0),u(null);try{const h=await ie("/markets",{action:"ingest"});s(h),t({marketsIngested:h.ingested||((p=h.markets)==null?void 0:p.length)||0})}catch{u("Failed to ingest markets")}a(!1)}return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"text-center",children:[c.jsx("h2",{className:"text-2xl font-bold mb-2",children:"Ingest Markets"}),c.jsx("p",{className:"text-gray-400 text-sm",children:"Scanning Polymarket for weather prediction markets"})]}),c.jsx("div",{className:"card",children:i?c.jsxs("div",{className:"flex flex-col items-center justify-center py-12 gap-4",children:[c.jsx("div",{className:"animate-spin w-10 h-10 border-3 border-purple-500 border-t-transparent rounded-full"}),c.jsx("p",{className:"text-sm text-gray-400",children:"Scanning Polymarket for weather markets..."})]}):l?c.jsxs("div",{className:"text-center py-8",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-red-500/10 flex items-center justify-center mx-auto mb-3",children:c.jsx("svg",{className:"w-6 h-6 text-red-400",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z"})})}),c.jsx("p",{className:"text-red-400 text-sm mb-3",children:l}),c.jsx("button",{onClick:f,className:"btn btn-s text-sm",children:"Retry"})]}):c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[c.jsxs("div",{className:"text-center",children:[c.jsx("p",{className:"stat-v text-purple-400",children:(o==null?void 0:o.scanned)||"—"}),c.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Scanned"})]}),c.jsxs("div",{className:"text-center",children:[c.jsx("p",{className:"stat-v text-green-400",children:(o==null?void 0:o.ingested)||((d=o==null?void 0:o.markets)==null?void 0:d.length)||0}),c.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Ingested"})]}),c.jsxs("div",{className:"text-center",children:[c.jsx("p",{className:"stat-v text-blue-400",children:(o==null?void 0:o.skipped)||0}),c.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Skipped"})]})]}),((o==null?void 0:o.markets)||[]).length>0&&c.jsxs("div",{className:"border-t border-gray-800 pt-3 mt-3",children:[c.jsx("p",{className:"text-xs text-gray-500 mb-2 uppercase font-medium",children:"Ingested Markets"}),c.jsxs("div",{className:"space-y-1.5 max-h-48 overflow-y-auto",children:[(o.markets||[]).slice(0,10).map((p,h)=>c.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[c.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500 flex-shrink-0"}),c.jsx("span",{className:"text-gray-300 truncate",children:p.question||p})]},h)),(o.markets||[]).length>10&&c.jsxs("p",{className:"text-xs text-gray-600",children:["+",o.markets.length-10," more"]})]})]})]})}),c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("button",{onClick:n,className:"text-sm text-gray-500 hover:text-gray-300",children:"Back"}),c.jsx("button",{onClick:r,disabled:i,className:"wizard-btn",children:i?"Processing...":"Continue"})]})]})}function O$({data:e,update:t,next:r,back:n}){const[i,a]=A.useState(!0),[o,s]=A.useState(null),[l,u]=A.useState(null);A.useEffect(()=>{f()},[]);async function f(){a(!0),u(null);try{const d=await ie("/weather",{action:"fetch_all"});s(d),t({weatherFetched:!0})}catch{u("Failed to fetch weather data")}a(!1)}return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"text-center",children:[c.jsx("h2",{className:"text-2xl font-bold mb-2",children:"Weather Data"}),c.jsx("p",{className:"text-gray-400 text-sm",children:"Pulling NWS forecast data for tracked markets"})]}),c.jsx("div",{className:"card",children:i?c.jsxs("div",{className:"flex flex-col items-center justify-center py-12 gap-4",children:[c.jsx("div",{className:"animate-spin w-10 h-10 border-3 border-blue-500 border-t-transparent rounded-full"}),c.jsx("p",{className:"text-sm text-gray-400",children:"Fetching NWS forecast data..."})]}):l?c.jsxs("div",{className:"text-center py-8",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-red-500/10 flex items-center justify-center mx-auto mb-3",children:c.jsx("svg",{className:"w-6 h-6 text-red-400",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z"})})}),c.jsx("p",{className:"text-red-400 text-sm mb-3",children:l}),c.jsx("button",{onClick:f,className:"btn btn-s text-sm",children:"Retry"})]}):c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"flex items-center justify-center gap-3 py-4",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-green-500/10 flex items-center justify-center",children:c.jsx("svg",{className:"w-6 h-6 text-green-400",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})})}),c.jsxs("div",{children:[c.jsx("p",{className:"font-semibold text-green-400",children:"Weather Data Loaded"}),c.jsx("p",{className:"text-xs text-gray-400",children:"NWS forecasts fetched successfully"})]})]}),c.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[c.jsxs("div",{className:"text-center p-3 bg-gray-800/30 rounded-lg",children:[c.jsx("p",{className:"stat-v text-blue-400",children:(o==null?void 0:o.cities)||(o==null?void 0:o.locations)||"—"}),c.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Cities Fetched"})]}),c.jsxs("div",{className:"text-center p-3 bg-gray-800/30 rounded-lg",children:[c.jsx("p",{className:"stat-v text-purple-400",children:(o==null?void 0:o.data_points)||(o==null?void 0:o.forecasts)||"—"}),c.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Data Points"})]})]})]})}),c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("button",{onClick:n,className:"text-sm text-gray-500 hover:text-gray-300",children:"Back"}),c.jsx("button",{onClick:r,disabled:i,className:"wizard-btn",children:i?"Fetching...":"Continue"})]})]})}function _$({data:e,update:t,next:r,back:n}){const[i,a]=A.useState(!0),[o,s]=A.useState(null),[l,u]=A.useState(null);A.useEffect(()=>{f()},[]);async function f(){a(!0),u(null);try{const h=await ie("/models",{action:"run_predictions"});s(h),t({predictionsRun:!0})}catch{u("Failed to generate predictions")}a(!1)}const d=(o==null?void 0:o.predictions)||[],p=d.filter(h=>h.signal==="BUY"||h.edge>0);return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"text-center",children:[c.jsx("h2",{className:"text-2xl font-bold mb-2",children:"AI Predictions"}),c.jsx("p",{className:"text-gray-400 text-sm",children:"Generating probability models and calculating edges"})]}),c.jsx("div",{className:"card",children:i?c.jsxs("div",{className:"flex flex-col items-center justify-center py-12 gap-4",children:[c.jsx("div",{className:"animate-spin w-10 h-10 border-3 border-green-500 border-t-transparent rounded-full"}),c.jsx("p",{className:"text-sm text-gray-400",children:"Running prediction models..."})]}):l?c.jsxs("div",{className:"text-center py-8",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-red-500/10 flex items-center justify-center mx-auto mb-3",children:c.jsx("svg",{className:"w-6 h-6 text-red-400",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z"})})}),c.jsx("p",{className:"text-red-400 text-sm mb-3",children:l}),c.jsx("button",{onClick:f,className:"btn btn-s text-sm",children:"Retry"})]}):c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[c.jsxs("div",{className:"text-center",children:[c.jsx("p",{className:"stat-v text-purple-400",children:d.length}),c.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Predictions"})]}),c.jsxs("div",{className:"text-center",children:[c.jsx("p",{className:"stat-v text-green-400",children:p.length}),c.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Buy Signals"})]}),c.jsxs("div",{className:"text-center",children:[c.jsx("p",{className:"stat-v text-blue-400",children:(o==null?void 0:o.edges_found)||p.length}),c.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Edges Found"})]})]}),d.length>0&&c.jsxs("div",{className:"border-t border-gray-800 pt-3",children:[c.jsx("p",{className:"text-xs text-gray-500 mb-2 uppercase font-medium",children:"Top Predictions"}),c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Market"}),c.jsx("th",{children:"P(Yes)"}),c.jsx("th",{children:"Edge"}),c.jsx("th",{children:"Signal"})]})}),c.jsx("tbody",{children:d.slice(0,6).map((h,m)=>c.jsxs("tr",{children:[c.jsx("td",{className:"max-w-[200px]",children:c.jsx("span",{className:"truncate block text-xs",children:h.question||h.market})}),c.jsxs("td",{className:"font-mono text-sm",children:[((h.p_yes||h.probability||0)*100).toFixed(1),"%"]}),c.jsxs("td",{className:`font-mono text-sm ${(h.edge||0)>0?"text-green-400":"text-gray-500"}`,children:[((h.edge||0)*100).toFixed(1),"%"]}),c.jsx("td",{children:c.jsx("span",{className:`badge ${h.signal==="BUY"||(h.edge||0)>0?"bg-green":"bg-red"}`,children:h.signal||((h.edge||0)>0?"BUY":"HOLD")})})]},m))})]})]}),d.length===0&&!l&&c.jsx("div",{className:"text-center py-4",children:c.jsx("p",{className:"text-gray-500 text-sm",children:"No predictions generated yet — models may need more market data"})})]})}),c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("button",{onClick:n,className:"text-sm text-gray-500 hover:text-gray-300",children:"Back"}),c.jsx("button",{onClick:r,disabled:i,className:"wizard-btn",children:i?"Processing...":"Continue"})]})]})}const s0=[{name:"Conservative",kelly:.05,maxBet:.25,survival:.99,color:"blue",desc:"Small bets, maximum safety. Best for learning."},{name:"Moderate",kelly:.1,maxBet:.5,survival:.9,color:"purple",desc:"Balanced risk/reward. Recommended for most users.",recommended:!0},{name:"Aggressive",kelly:.2,maxBet:1,survival:.7,color:"red",desc:"Larger bets, higher variance. For experienced traders."}];function P$({data:e,update:t,next:r,back:n}){const[i,a]=A.useState(e.riskProfile||"Moderate"),[o,s]=A.useState(!1);async function l(){s(!0);const u=s0.find(f=>f.name===i);try{await ie("/risk",{action:"update_config",kelly_fraction:u.kelly,max_bet:u.maxBet,survival_target:u.survival,risk_profile:u.name}),t({riskProfile:i}),r()}catch{}s(!1)}return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"text-center",children:[c.jsx("h2",{className:"text-2xl font-bold mb-2",children:"Risk Profile"}),c.jsx("p",{className:"text-gray-400 text-sm",children:"Choose how aggressively Bertha should trade"})]}),c.jsx("div",{className:"grid grid-cols-3 gap-4",children:s0.map(u=>c.jsxs("button",{onClick:()=>a(u.name),className:`card text-left transition-all relative ${i===u.name?`ring-2 ring-${u.color==="blue"?"blue":u.color==="purple"?"purple":"red"}-500 bg-${u.color==="blue"?"blue":u.color==="purple"?"purple":"red"}-500/5`:"hover:border-gray-700"}`,style:i===u.name?{boxShadow:`0 0 0 2px ${u.color==="blue"?"#3b82f6":u.color==="purple"?"#8b5cf6":"#ef4444"}`}:{},children:[u.recommended&&c.jsx("span",{className:"absolute -top-2 right-3 text-[9px] font-bold uppercase px-2 py-0.5 rounded-full bg-purple-500 text-white",children:"Recommended"}),c.jsx("h3",{className:`font-bold text-lg mb-1 ${u.color==="blue"?"text-blue-400":u.color==="purple"?"text-purple-400":"text-red-400"}`,children:u.name}),c.jsx("p",{className:"text-xs text-gray-500 mb-3",children:u.desc}),c.jsxs("div",{className:"space-y-1.5 text-xs",children:[c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Kelly Fraction"}),c.jsxs("span",{className:"font-mono text-gray-300",children:[(u.kelly*100).toFixed(0),"%"]})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Max Bet"}),c.jsxs("span",{className:"font-mono text-gray-300",children:["$",u.maxBet.toFixed(2)]})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Survival Target"}),c.jsxs("span",{className:"font-mono text-gray-300",children:[(u.survival*100).toFixed(0),"%"]})]})]})]},u.name))}),c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("button",{onClick:n,className:"text-sm text-gray-500 hover:text-gray-300",children:"Back"}),c.jsx("button",{onClick:l,disabled:o,className:"wizard-btn",children:o?"Saving...":"Save & Continue"})]})]})}const Td=[{key:"keys",label:"Polymarket Connected",check:e=>!!e.keys},{key:"conn",label:"Connection Verified",check:e=>!!e.connectionOk},{key:"markets",label:"Markets Ingested",check:e=>e.marketsIngested>0},{key:"weather",label:"Weather Data Loaded",check:e=>!!e.weatherFetched},{key:"preds",label:"Predictions Generated",check:e=>!!e.predictionsRun},{key:"risk",label:"Risk Profile Set",check:e=>!!e.riskProfile}];function A$({data:e,update:t,complete:r,back:n}){const[i,a]=A.useState(!0),[o,s]=A.useState(!1),l=Td.filter(d=>d.check(e)).length,u=e.skippedConnect;async function f(){s(!0),await r()}return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"text-center",children:[c.jsx("h2",{className:"text-2xl font-bold mb-2",children:"Ready to Launch"}),c.jsx("p",{className:"text-gray-400 text-sm",children:"Review your setup and start trading"})]}),c.jsxs("div",{className:"card",children:[c.jsx("h3",{className:"font-semibold text-sm mb-3",children:"Setup Summary"}),c.jsx("div",{className:"space-y-2",children:Td.map(d=>{const p=d.check(e),h=d.key==="keys"&&u;return c.jsxs("div",{className:"flex items-center gap-3",children:[p?c.jsx("div",{className:"w-5 h-5 rounded-full bg-green-500 flex items-center justify-center flex-shrink-0",children:c.jsx("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",strokeWidth:"3",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})})}):h?c.jsx("div",{className:"w-5 h-5 rounded-full bg-yellow-500 flex items-center justify-center flex-shrink-0",children:c.jsx("span",{className:"text-white text-[10px] font-bold",children:"—"})}):c.jsx("div",{className:"w-5 h-5 rounded-full bg-gray-700 flex-shrink-0"}),c.jsxs("span",{className:`text-sm ${p?"text-gray-200":h?"text-yellow-400":"text-gray-500"}`,children:[d.label,h?" (skipped)":""]})]},d.key)})}),c.jsx("div",{className:"mt-3 pt-3 border-t border-gray-800",children:c.jsxs("p",{className:"text-xs text-gray-500",children:[l,"/",Td.length," steps completed"]})})]}),c.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[c.jsxs("div",{className:"card text-center",children:[c.jsx("p",{className:"stat-v text-purple-400",children:e.marketsIngested||0}),c.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Markets"})]}),c.jsxs("div",{className:"card text-center",children:[c.jsx("p",{className:"stat-v text-blue-400",children:e.riskProfile||"—"}),c.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Risk Profile"})]}),c.jsxs("div",{className:"card text-center",children:[c.jsx("p",{className:"stat-v text-green-400",children:e.keys?"LIVE":"PAPER"}),c.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Mode"})]})]}),c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h3",{className:"font-semibold text-sm",children:"Trading Mode"}),c.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:i?"Simulated trades, no real funds":"Real trades on Polymarket"})]}),c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsx("span",{className:`text-xs font-medium ${i?"text-yellow-400":"text-gray-500"}`,children:"Paper"}),c.jsx("button",{onClick:()=>a(!i),disabled:!e.keys,className:`w-11 h-6 rounded-full transition-colors relative ${i?"bg-yellow-500/30":"bg-green-500/30"} ${e.keys?"":"opacity-50 cursor-not-allowed"}`,children:c.jsx("div",{className:`w-4 h-4 rounded-full absolute top-1 transition-all ${i?"left-1 bg-yellow-400":"left-6 bg-green-400"}`})}),c.jsx("span",{className:`text-xs font-medium ${i?"text-gray-500":"text-green-400"}`,children:"Live"})]})]}),!i&&c.jsx("div",{className:"mt-3 p-2 bg-red-500/10 border border-red-500/20 rounded-lg",children:c.jsx("p",{className:"text-xs text-red-400",children:"Live mode will use real USDC on Polygon. Make sure your wallet is funded."})})]}),c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("button",{onClick:n,className:"text-sm text-gray-500 hover:text-gray-300",children:"Back"}),c.jsx("button",{onClick:f,disabled:o,className:"wizard-btn text-lg px-8",children:o?"Launching...":"Launch Bertha"})]})]})}const zl=[{label:"Welcome",icon:"1"},{label:"Connect",icon:"2"},{label:"Test",icon:"3"},{label:"Ingest",icon:"4"},{label:"Weather",icon:"5"},{label:"Predict",icon:"6"},{label:"Risk",icon:"7"},{label:"Go Live",icon:"8"}];function k$(){const e=dl(),[t,r]=A.useState(!1),[n,i]=A.useState(0),[a,o]=A.useState("forward"),[s,l]=A.useState({keys:null,connectionOk:!1,marketsIngested:0,weatherFetched:!1,predictionsRun:!1,riskProfile:null}),u=A.useRef(null);A.useEffect(()=>{Iv().then(x=>{if(!x){e("/login");return}r(!0),tt("/setup").then(y=>{if(y.setup_complete){e("/");return}y.setup_progress&&(i(y.setup_progress.step||0),l(v=>({...v,...y.setup_progress.data})))}).catch(()=>{})})},[]),A.useEffect(()=>{t&&n>0&&ie("/setup",{action:"save_progress",progress:{step:n,data:s}}).catch(()=>{})},[n]);function f(){o("forward"),n<zl.length-1&&i(x=>x+1)}function d(){o("back"),n>0&&i(x=>x-1)}function p(x){x<=n&&(o(x<n?"back":"forward"),i(x))}function h(x){l(y=>({...y,...x}))}async function m(){await ie("/setup",{action:"complete",progress:{step:zl.length-1,data:s}}),e("/")}if(!t)return c.jsx("div",{className:"flex items-center justify-center min-h-screen",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full"})});const g=[b$,w$,j$,S$,O$,_$,P$,A$][n];return c.jsxs("div",{className:"min-h-screen flex flex-col",style:{background:"var(--bg)"},children:[c.jsxs("div",{className:"flex items-center gap-3 px-6 py-4 border-b border-gray-800",children:[c.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",style:{background:"linear-gradient(135deg,#3b82f6,#8b5cf6)"},children:c.jsx("span",{className:"text-white font-bold text-sm",children:"B"})}),c.jsx("span",{className:"font-bold text-sm wizard-gradient",children:"BERTHA SETUP"})]}),c.jsx("div",{className:"px-6 py-5",children:c.jsx("div",{className:"max-w-3xl mx-auto flex items-center",children:zl.map((x,y)=>c.jsxs(k.Fragment,{children:[c.jsxs("button",{onClick:()=>p(y),disabled:y>n,className:"flex flex-col items-center gap-1.5 group",style:{minWidth:56},children:[c.jsx("div",{className:`w-8 h-8 rounded-full flex items-center justify-center text-xs font-bold transition-all ${y<n?"bg-green-500 text-white":y===n?"bg-blue-500 text-white step-active-pulse":"bg-gray-800 text-gray-500"} ${y<=n?"cursor-pointer":"cursor-default"}`,children:y<n?c.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",strokeWidth:"2.5",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})}):x.icon}),c.jsx("span",{className:`text-[10px] font-medium ${y<n?"text-green-400":y===n?"text-blue-400":"text-gray-600"}`,children:x.label})]}),y<zl.length-1&&c.jsx("div",{className:`stepper-line ${y<n?"done":""}`})]},y))})}),c.jsx("div",{className:"flex-1 flex items-start justify-center px-6 pb-10",children:c.jsx("div",{className:"w-full max-w-2xl",ref:u,children:c.jsx("div",{className:"step-enter step-active",children:c.jsx(g,{data:s,update:h,next:f,back:d,complete:m,step:n})},n)})})]})}function LS(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(r=LS(e[t]))&&(n&&(n+=" "),n+=r)}else for(r in e)e[r]&&(n&&(n+=" "),n+=r);return n}function ee(){for(var e,t,r=0,n="",i=arguments.length;r<i;r++)(e=arguments[r])&&(t=LS(e))&&(n&&(n+=" "),n+=t);return n}var N$=Array.isArray,Ct=N$,$$=typeof Sl=="object"&&Sl&&Sl.Object===Object&&Sl,DS=$$,E$=DS,T$=typeof self=="object"&&self&&self.Object===Object&&self,C$=E$||T$||Function("return this")(),Ir=C$,M$=Ir,I$=M$.Symbol,pl=I$,l0=pl,RS=Object.prototype,L$=RS.hasOwnProperty,D$=RS.toString,Po=l0?l0.toStringTag:void 0;function R$(e){var t=L$.call(e,Po),r=e[Po];try{e[Po]=void 0;var n=!0}catch{}var i=D$.call(e);return n&&(t?e[Po]=r:delete e[Po]),i}var B$=R$,F$=Object.prototype,z$=F$.toString;function W$(e){return z$.call(e)}var U$=W$,u0=pl,K$=B$,H$=U$,V$="[object Null]",G$="[object Undefined]",c0=u0?u0.toStringTag:void 0;function q$(e){return e==null?e===void 0?G$:V$:c0&&c0 in Object(e)?K$(e):H$(e)}var an=q$;function X$(e){return e!=null&&typeof e=="object"}var on=X$,Y$=an,Q$=on,Z$="[object Symbol]";function J$(e){return typeof e=="symbol"||Q$(e)&&Y$(e)==Z$}var no=J$,eE=Ct,tE=no,rE=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nE=/^\w*$/;function iE(e,t){if(eE(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||tE(e)?!0:nE.test(e)||!rE.test(e)||t!=null&&e in Object(t)}var Lv=iE;function aE(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Vn=aE;const io=de(Vn);var oE=an,sE=Vn,lE="[object AsyncFunction]",uE="[object Function]",cE="[object GeneratorFunction]",fE="[object Proxy]";function dE(e){if(!sE(e))return!1;var t=oE(e);return t==uE||t==cE||t==lE||t==fE}var Dv=dE;const Z=de(Dv);var pE=Ir,hE=pE["__core-js_shared__"],mE=hE,Cd=mE,f0=function(){var e=/[^.]+$/.exec(Cd&&Cd.keys&&Cd.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function vE(e){return!!f0&&f0 in e}var yE=vE,gE=Function.prototype,xE=gE.toString;function bE(e){if(e!=null){try{return xE.call(e)}catch{}try{return e+""}catch{}}return""}var BS=bE,wE=Dv,jE=yE,SE=Vn,OE=BS,_E=/[\\^$.*+?()[\]{}|]/g,PE=/^\[object .+?Constructor\]$/,AE=Function.prototype,kE=Object.prototype,NE=AE.toString,$E=kE.hasOwnProperty,EE=RegExp("^"+NE.call($E).replace(_E,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function TE(e){if(!SE(e)||jE(e))return!1;var t=wE(e)?EE:PE;return t.test(OE(e))}var CE=TE;function ME(e,t){return e==null?void 0:e[t]}var IE=ME,LE=CE,DE=IE;function RE(e,t){var r=DE(e,t);return LE(r)?r:void 0}var Mi=RE,BE=Mi,FE=BE(Object,"create"),df=FE,d0=df;function zE(){this.__data__=d0?d0(null):{},this.size=0}var WE=zE;function UE(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var KE=UE,HE=df,VE="__lodash_hash_undefined__",GE=Object.prototype,qE=GE.hasOwnProperty;function XE(e){var t=this.__data__;if(HE){var r=t[e];return r===VE?void 0:r}return qE.call(t,e)?t[e]:void 0}var YE=XE,QE=df,ZE=Object.prototype,JE=ZE.hasOwnProperty;function eT(e){var t=this.__data__;return QE?t[e]!==void 0:JE.call(t,e)}var tT=eT,rT=df,nT="__lodash_hash_undefined__";function iT(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=rT&&t===void 0?nT:t,this}var aT=iT,oT=WE,sT=KE,lT=YE,uT=tT,cT=aT;function ao(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ao.prototype.clear=oT;ao.prototype.delete=sT;ao.prototype.get=lT;ao.prototype.has=uT;ao.prototype.set=cT;var fT=ao;function dT(){this.__data__=[],this.size=0}var pT=dT;function hT(e,t){return e===t||e!==e&&t!==t}var Rv=hT,mT=Rv;function vT(e,t){for(var r=e.length;r--;)if(mT(e[r][0],t))return r;return-1}var pf=vT,yT=pf,gT=Array.prototype,xT=gT.splice;function bT(e){var t=this.__data__,r=yT(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():xT.call(t,r,1),--this.size,!0}var wT=bT,jT=pf;function ST(e){var t=this.__data__,r=jT(t,e);return r<0?void 0:t[r][1]}var OT=ST,_T=pf;function PT(e){return _T(this.__data__,e)>-1}var AT=PT,kT=pf;function NT(e,t){var r=this.__data__,n=kT(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var $T=NT,ET=pT,TT=wT,CT=OT,MT=AT,IT=$T;function oo(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}oo.prototype.clear=ET;oo.prototype.delete=TT;oo.prototype.get=CT;oo.prototype.has=MT;oo.prototype.set=IT;var hf=oo,LT=Mi,DT=Ir,RT=LT(DT,"Map"),Bv=RT,p0=fT,BT=hf,FT=Bv;function zT(){this.size=0,this.__data__={hash:new p0,map:new(FT||BT),string:new p0}}var WT=zT;function UT(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var KT=UT,HT=KT;function VT(e,t){var r=e.__data__;return HT(t)?r[typeof t=="string"?"string":"hash"]:r.map}var mf=VT,GT=mf;function qT(e){var t=GT(this,e).delete(e);return this.size-=t?1:0,t}var XT=qT,YT=mf;function QT(e){return YT(this,e).get(e)}var ZT=QT,JT=mf;function eC(e){return JT(this,e).has(e)}var tC=eC,rC=mf;function nC(e,t){var r=rC(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var iC=nC,aC=WT,oC=XT,sC=ZT,lC=tC,uC=iC;function so(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}so.prototype.clear=aC;so.prototype.delete=oC;so.prototype.get=sC;so.prototype.has=lC;so.prototype.set=uC;var Fv=so,FS=Fv,cC="Expected a function";function zv(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(cC);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var o=e.apply(this,n);return r.cache=a.set(i,o)||a,o};return r.cache=new(zv.Cache||FS),r}zv.Cache=FS;var zS=zv;const fC=de(zS);var dC=zS,pC=500;function hC(e){var t=dC(e,function(n){return r.size===pC&&r.clear(),n}),r=t.cache;return t}var mC=hC,vC=mC,yC=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,gC=/\\(\\)?/g,xC=vC(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(yC,function(r,n,i,a){t.push(i?a.replace(gC,"$1"):n||r)}),t}),bC=xC;function wC(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}var Wv=wC,h0=pl,jC=Wv,SC=Ct,OC=no,m0=h0?h0.prototype:void 0,v0=m0?m0.toString:void 0;function WS(e){if(typeof e=="string")return e;if(SC(e))return jC(e,WS)+"";if(OC(e))return v0?v0.call(e):"";var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}var _C=WS,PC=_C;function AC(e){return e==null?"":PC(e)}var US=AC,kC=Ct,NC=Lv,$C=bC,EC=US;function TC(e,t){return kC(e)?e:NC(e,t)?[e]:$C(EC(e))}var KS=TC,CC=no;function MC(e){if(typeof e=="string"||CC(e))return e;var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}var vf=MC,IC=KS,LC=vf;function DC(e,t){t=IC(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[LC(t[r++])];return r&&r==n?e:void 0}var Uv=DC,RC=Uv;function BC(e,t,r){var n=e==null?void 0:RC(e,t);return n===void 0?r:n}var HS=BC;const Wt=de(HS);function FC(e){return e==null}var zC=FC;const Q=de(zC);var WC=an,UC=Ct,KC=on,HC="[object String]";function VC(e){return typeof e=="string"||!UC(e)&&KC(e)&&WC(e)==HC}var GC=VC;const Pi=de(GC);var VS={exports:{}},pe={};/**
+ * @license React
+ * react-is.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var Kv=Symbol.for("react.element"),Hv=Symbol.for("react.portal"),yf=Symbol.for("react.fragment"),gf=Symbol.for("react.strict_mode"),xf=Symbol.for("react.profiler"),bf=Symbol.for("react.provider"),wf=Symbol.for("react.context"),qC=Symbol.for("react.server_context"),jf=Symbol.for("react.forward_ref"),Sf=Symbol.for("react.suspense"),Of=Symbol.for("react.suspense_list"),_f=Symbol.for("react.memo"),Pf=Symbol.for("react.lazy"),XC=Symbol.for("react.offscreen"),GS;GS=Symbol.for("react.module.reference");function sr(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case Kv:switch(e=e.type,e){case yf:case xf:case gf:case Sf:case Of:return e;default:switch(e=e&&e.$$typeof,e){case qC:case wf:case jf:case Pf:case _f:case bf:return e;default:return t}}case Hv:return t}}}pe.ContextConsumer=wf;pe.ContextProvider=bf;pe.Element=Kv;pe.ForwardRef=jf;pe.Fragment=yf;pe.Lazy=Pf;pe.Memo=_f;pe.Portal=Hv;pe.Profiler=xf;pe.StrictMode=gf;pe.Suspense=Sf;pe.SuspenseList=Of;pe.isAsyncMode=function(){return!1};pe.isConcurrentMode=function(){return!1};pe.isContextConsumer=function(e){return sr(e)===wf};pe.isContextProvider=function(e){return sr(e)===bf};pe.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===Kv};pe.isForwardRef=function(e){return sr(e)===jf};pe.isFragment=function(e){return sr(e)===yf};pe.isLazy=function(e){return sr(e)===Pf};pe.isMemo=function(e){return sr(e)===_f};pe.isPortal=function(e){return sr(e)===Hv};pe.isProfiler=function(e){return sr(e)===xf};pe.isStrictMode=function(e){return sr(e)===gf};pe.isSuspense=function(e){return sr(e)===Sf};pe.isSuspenseList=function(e){return sr(e)===Of};pe.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===yf||e===xf||e===gf||e===Sf||e===Of||e===XC||typeof e=="object"&&e!==null&&(e.$$typeof===Pf||e.$$typeof===_f||e.$$typeof===bf||e.$$typeof===wf||e.$$typeof===jf||e.$$typeof===GS||e.getModuleId!==void 0)};pe.typeOf=sr;VS.exports=pe;var YC=VS.exports,QC=an,ZC=on,JC="[object Number]";function eM(e){return typeof e=="number"||ZC(e)&&QC(e)==JC}var qS=eM;const tM=de(qS);var rM=qS;function nM(e){return rM(e)&&e!=+e}var iM=nM;const lo=de(iM);var yt=function(t){return t===0?0:t>0?1:-1},fi=function(t){return Pi(t)&&t.indexOf("%")===t.length-1},K=function(t){return tM(t)&&!lo(t)},aM=function(t){return Q(t)},Ye=function(t){return K(t)||Pi(t)},oM=0,Gn=function(t){var r=++oM;return"".concat(t||"").concat(r)},gt=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!K(t)&&!Pi(t))return n;var a;if(fi(t)){var o=t.indexOf("%");a=r*parseFloat(t.slice(0,o))/100}else a=+t;return lo(a)&&(a=n),i&&a>r&&(a=r),a},gn=function(t){if(!t)return null;var r=Object.keys(t);return r&&r.length?t[r[0]]:null},sM=function(t){if(!Array.isArray(t))return!1;for(var r=t.length,n={},i=0;i<r;i++)if(!n[t[i]])n[t[i]]=!0;else return!0;return!1},$e=function(t,r){return K(t)&&K(r)?function(n){return t+n*(r-t)}:function(){return r}};function zu(e,t,r){return!e||!e.length?null:e.find(function(n){return n&&(typeof t=="function"?t(n):Wt(n,t))===r})}var lM=function(t){if(!t||!t.length)return null;for(var r=t.length,n=0,i=0,a=0,o=0,s=1/0,l=-1/0,u=0,f=0,d=0;d<r;d++)u=t[d].cx||0,f=t[d].cy||0,n+=u,i+=f,a+=u*f,o+=u*u,s=Math.min(s,u),l=Math.max(l,u);var p=r*o!==n*n?(r*a-n*i)/(r*o-n*n):0;return{xmin:s,xmax:l,a:p,b:(i-p*n)/r}},uM=function(t,r){return K(t)&&K(r)?t-r:Pi(t)&&Pi(r)?t.localeCompare(r):t instanceof Date&&r instanceof Date?t.getTime()-r.getTime():String(t).localeCompare(String(r))};function ha(e,t){for(var r in e)if({}.hasOwnProperty.call(e,r)&&(!{}.hasOwnProperty.call(t,r)||e[r]!==t[r]))return!1;for(var n in t)if({}.hasOwnProperty.call(t,n)&&!{}.hasOwnProperty.call(e,n))return!1;return!0}function sh(e){"@babel/helpers - typeof";return sh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},sh(e)}var cM=["viewBox","children"],fM=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],y0=["points","pathLength"],Md={svg:cM,polygon:y0,polyline:y0},Vv=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"],Wu=function(t,r){if(!t||typeof t=="function"||typeof t=="boolean")return null;var n=t;if(A.isValidElement(t)&&(n=t.props),!io(n))return null;var i={};return Object.keys(n).forEach(function(a){Vv.includes(a)&&(i[a]=r||function(o){return n[a](n,o)})}),i},dM=function(t,r,n){return function(i){return t(r,n,i),null}},Bn=function(t,r,n){if(!io(t)||sh(t)!=="object")return null;var i=null;return Object.keys(t).forEach(function(a){var o=t[a];Vv.includes(a)&&typeof o=="function"&&(i||(i={}),i[a]=dM(o,r,n))}),i},pM=["children"],hM=["children"];function g0(e,t){if(e==null)return{};var r=mM(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function mM(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function lh(e){"@babel/helpers - typeof";return lh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lh(e)}var x0={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},Gr=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},b0=null,Id=null,Gv=function e(t){if(t===b0&&Array.isArray(Id))return Id;var r=[];return A.Children.forEach(t,function(n){Q(n)||(YC.isFragment(n)?r=r.concat(e(n.props.children)):r.push(n))}),Id=r,b0=t,r};function wt(e,t){var r=[],n=[];return Array.isArray(t)?n=t.map(function(i){return Gr(i)}):n=[Gr(t)],Gv(e).forEach(function(i){var a=Wt(i,"type.displayName")||Wt(i,"type.name");n.indexOf(a)!==-1&&r.push(i)}),r}function Rt(e,t){var r=wt(e,t);return r&&r[0]}var w0=function(t){if(!t||!t.props)return!1;var r=t.props,n=r.width,i=r.height;return!(!K(n)||n<=0||!K(i)||i<=0)},vM=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],yM=function(t){return t&&t.type&&Pi(t.type)&&vM.indexOf(t.type)>=0},XS=function(t){return t&&lh(t)==="object"&&"clipDot"in t},gM=function(t,r,n,i){var a,o=(a=Md==null?void 0:Md[i])!==null&&a!==void 0?a:[];return r.startsWith("data-")||!Z(t)&&(i&&o.includes(r)||fM.includes(r))||n&&Vv.includes(r)},X=function(t,r,n){if(!t||typeof t=="function"||typeof t=="boolean")return null;var i=t;if(A.isValidElement(t)&&(i=t.props),!io(i))return null;var a={};return Object.keys(i).forEach(function(o){var s;gM((s=i)===null||s===void 0?void 0:s[o],o,r,n)&&(a[o]=i[o])}),a},uh=function e(t,r){if(t===r)return!0;var n=A.Children.count(t);if(n!==A.Children.count(r))return!1;if(n===0)return!0;if(n===1)return j0(Array.isArray(t)?t[0]:t,Array.isArray(r)?r[0]:r);for(var i=0;i<n;i++){var a=t[i],o=r[i];if(Array.isArray(a)||Array.isArray(o)){if(!e(a,o))return!1}else if(!j0(a,o))return!1}return!0},j0=function(t,r){if(Q(t)&&Q(r))return!0;if(!Q(t)&&!Q(r)){var n=t.props||{},i=n.children,a=g0(n,pM),o=r.props||{},s=o.children,l=g0(o,hM);return i&&s?ha(a,l)&&uh(i,s):!i&&!s?ha(a,l):!1}return!1},S0=function(t,r){var n=[],i={};return Gv(t).forEach(function(a,o){if(yM(a))n.push(a);else if(a){var s=Gr(a.type),l=r[s]||{},u=l.handler,f=l.once;if(u&&(!f||!i[s])){var d=u(a,s,o);n.push(d),i[s]=!0}}}),n},xM=function(t){var r=t&&t.type;return r&&x0[r]?x0[r]:null},bM=function(t,r){return Gv(r).indexOf(t)},wM=["children","width","height","viewBox","className","style","title","desc"];function ch(){return ch=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ch.apply(this,arguments)}function jM(e,t){if(e==null)return{};var r=SM(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function SM(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function fh(e){var t=e.children,r=e.width,n=e.height,i=e.viewBox,a=e.className,o=e.style,s=e.title,l=e.desc,u=jM(e,wM),f=i||{width:r,height:n,x:0,y:0},d=ee("recharts-surface",a);return k.createElement("svg",ch({},X(u,!0,"svg"),{className:d,width:r,height:n,style:o,viewBox:"".concat(f.x," ").concat(f.y," ").concat(f.width," ").concat(f.height)}),k.createElement("title",null,s),k.createElement("desc",null,l),t)}var OM=["children","className"];function dh(){return dh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},dh.apply(this,arguments)}function _M(e,t){if(e==null)return{};var r=PM(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function PM(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var te=k.forwardRef(function(e,t){var r=e.children,n=e.className,i=_M(e,OM),a=ee("recharts-layer",n);return k.createElement("g",dh({className:a},X(i,!0),{ref:t}),r)}),xr=function(t,r){for(var n=arguments.length,i=new Array(n>2?n-2:0),a=2;a<n;a++)i[a-2]=arguments[a]};function AM(e,t,r){var n=-1,i=e.length;t<0&&(t=-t>i?0:i+t),r=r>i?i:r,r<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var a=Array(i);++n<i;)a[n]=e[n+t];return a}var kM=AM,NM=kM;function $M(e,t,r){var n=e.length;return r=r===void 0?n:r,!t&&r>=n?e:NM(e,t,r)}var EM=$M,TM="\\ud800-\\udfff",CM="\\u0300-\\u036f",MM="\\ufe20-\\ufe2f",IM="\\u20d0-\\u20ff",LM=CM+MM+IM,DM="\\ufe0e\\ufe0f",RM="\\u200d",BM=RegExp("["+RM+TM+LM+DM+"]");function FM(e){return BM.test(e)}var YS=FM;function zM(e){return e.split("")}var WM=zM,QS="\\ud800-\\udfff",UM="\\u0300-\\u036f",KM="\\ufe20-\\ufe2f",HM="\\u20d0-\\u20ff",VM=UM+KM+HM,GM="\\ufe0e\\ufe0f",qM="["+QS+"]",ph="["+VM+"]",hh="\\ud83c[\\udffb-\\udfff]",XM="(?:"+ph+"|"+hh+")",ZS="[^"+QS+"]",JS="(?:\\ud83c[\\udde6-\\uddff]){2}",eO="[\\ud800-\\udbff][\\udc00-\\udfff]",YM="\\u200d",tO=XM+"?",rO="["+GM+"]?",QM="(?:"+YM+"(?:"+[ZS,JS,eO].join("|")+")"+rO+tO+")*",ZM=rO+tO+QM,JM="(?:"+[ZS+ph+"?",ph,JS,eO,qM].join("|")+")",e3=RegExp(hh+"(?="+hh+")|"+JM+ZM,"g");function t3(e){return e.match(e3)||[]}var r3=t3,n3=WM,i3=YS,a3=r3;function o3(e){return i3(e)?a3(e):n3(e)}var s3=o3,l3=EM,u3=YS,c3=s3,f3=US;function d3(e){return function(t){t=f3(t);var r=u3(t)?c3(t):void 0,n=r?r[0]:t.charAt(0),i=r?l3(r,1).join(""):t.slice(1);return n[e]()+i}}var p3=d3,h3=p3,m3=h3("toUpperCase"),v3=m3;const Af=de(v3);function ye(e){return function(){return e}}const nO=Math.cos,Uu=Math.sin,Or=Math.sqrt,Ku=Math.PI,kf=2*Ku,mh=Math.PI,vh=2*mh,ii=1e-6,y3=vh-ii;function iO(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=arguments[t]+e[t]}function g3(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return iO;const r=10**t;return function(n){this._+=n[0];for(let i=1,a=n.length;i<a;++i)this._+=Math.round(arguments[i]*r)/r+n[i]}}class x3{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?iO:g3(t)}moveTo(t,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,r){this._append`L${this._x1=+t},${this._y1=+r}`}quadraticCurveTo(t,r,n,i){this._append`Q${+t},${+r},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(t,r,n,i,a,o){this._append`C${+t},${+r},${+n},${+i},${this._x1=+a},${this._y1=+o}`}arcTo(t,r,n,i,a){if(t=+t,r=+r,n=+n,i=+i,a=+a,a<0)throw new Error(`negative radius: ${a}`);let o=this._x1,s=this._y1,l=n-t,u=i-r,f=o-t,d=s-r,p=f*f+d*d;if(this._x1===null)this._append`M${this._x1=t},${this._y1=r}`;else if(p>ii)if(!(Math.abs(d*l-u*f)>ii)||!a)this._append`L${this._x1=t},${this._y1=r}`;else{let h=n-o,m=i-s,g=l*l+u*u,x=h*h+m*m,y=Math.sqrt(g),v=Math.sqrt(p),b=a*Math.tan((mh-Math.acos((g+p-x)/(2*y*v)))/2),S=b/v,w=b/y;Math.abs(S-1)>ii&&this._append`L${t+S*f},${r+S*d}`,this._append`A${a},${a},0,0,${+(d*h>f*m)},${this._x1=t+w*l},${this._y1=r+w*u}`}}arc(t,r,n,i,a,o){if(t=+t,r=+r,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let s=n*Math.cos(i),l=n*Math.sin(i),u=t+s,f=r+l,d=1^o,p=o?i-a:a-i;this._x1===null?this._append`M${u},${f}`:(Math.abs(this._x1-u)>ii||Math.abs(this._y1-f)>ii)&&this._append`L${u},${f}`,n&&(p<0&&(p=p%vh+vh),p>y3?this._append`A${n},${n},0,1,${d},${t-s},${r-l}A${n},${n},0,1,${d},${this._x1=u},${this._y1=f}`:p>ii&&this._append`A${n},${n},0,${+(p>=mh)},${d},${this._x1=t+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(t,r,n,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}}function qv(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{const n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new x3(t)}function Xv(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function aO(e){this._context=e}aO.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Nf(e){return new aO(e)}function oO(e){return e[0]}function sO(e){return e[1]}function lO(e,t){var r=ye(!0),n=null,i=Nf,a=null,o=qv(s);e=typeof e=="function"?e:e===void 0?oO:ye(e),t=typeof t=="function"?t:t===void 0?sO:ye(t);function s(l){var u,f=(l=Xv(l)).length,d,p=!1,h;for(n==null&&(a=i(h=o())),u=0;u<=f;++u)!(u<f&&r(d=l[u],u,l))===p&&((p=!p)?a.lineStart():a.lineEnd()),p&&a.point(+e(d,u,l),+t(d,u,l));if(h)return a=null,h+""||null}return s.x=function(l){return arguments.length?(e=typeof l=="function"?l:ye(+l),s):e},s.y=function(l){return arguments.length?(t=typeof l=="function"?l:ye(+l),s):t},s.defined=function(l){return arguments.length?(r=typeof l=="function"?l:ye(!!l),s):r},s.curve=function(l){return arguments.length?(i=l,n!=null&&(a=i(n)),s):i},s.context=function(l){return arguments.length?(l==null?n=a=null:a=i(n=l),s):n},s}function Wl(e,t,r){var n=null,i=ye(!0),a=null,o=Nf,s=null,l=qv(u);e=typeof e=="function"?e:e===void 0?oO:ye(+e),t=typeof t=="function"?t:ye(t===void 0?0:+t),r=typeof r=="function"?r:r===void 0?sO:ye(+r);function u(d){var p,h,m,g=(d=Xv(d)).length,x,y=!1,v,b=new Array(g),S=new Array(g);for(a==null&&(s=o(v=l())),p=0;p<=g;++p){if(!(p<g&&i(x=d[p],p,d))===y)if(y=!y)h=p,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),m=p-1;m>=h;--m)s.point(b[m],S[m]);s.lineEnd(),s.areaEnd()}y&&(b[p]=+e(x,p,d),S[p]=+t(x,p,d),s.point(n?+n(x,p,d):b[p],r?+r(x,p,d):S[p]))}if(v)return s=null,v+""||null}function f(){return lO().defined(i).curve(o).context(a)}return u.x=function(d){return arguments.length?(e=typeof d=="function"?d:ye(+d),n=null,u):e},u.x0=function(d){return arguments.length?(e=typeof d=="function"?d:ye(+d),u):e},u.x1=function(d){return arguments.length?(n=d==null?null:typeof d=="function"?d:ye(+d),u):n},u.y=function(d){return arguments.length?(t=typeof d=="function"?d:ye(+d),r=null,u):t},u.y0=function(d){return arguments.length?(t=typeof d=="function"?d:ye(+d),u):t},u.y1=function(d){return arguments.length?(r=d==null?null:typeof d=="function"?d:ye(+d),u):r},u.lineX0=u.lineY0=function(){return f().x(e).y(t)},u.lineY1=function(){return f().x(e).y(r)},u.lineX1=function(){return f().x(n).y(t)},u.defined=function(d){return arguments.length?(i=typeof d=="function"?d:ye(!!d),u):i},u.curve=function(d){return arguments.length?(o=d,a!=null&&(s=o(a)),u):o},u.context=function(d){return arguments.length?(d==null?a=s=null:s=o(a=d),u):a},u}class uO{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}}function b3(e){return new uO(e,!0)}function w3(e){return new uO(e,!1)}const Yv={draw(e,t){const r=Or(t/Ku);e.moveTo(r,0),e.arc(0,0,r,0,kf)}},j3={draw(e,t){const r=Or(t/5)/2;e.moveTo(-3*r,-r),e.lineTo(-r,-r),e.lineTo(-r,-3*r),e.lineTo(r,-3*r),e.lineTo(r,-r),e.lineTo(3*r,-r),e.lineTo(3*r,r),e.lineTo(r,r),e.lineTo(r,3*r),e.lineTo(-r,3*r),e.lineTo(-r,r),e.lineTo(-3*r,r),e.closePath()}},cO=Or(1/3),S3=cO*2,O3={draw(e,t){const r=Or(t/S3),n=r*cO;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}},_3={draw(e,t){const r=Or(t),n=-r/2;e.rect(n,n,r,r)}},P3=.8908130915292852,fO=Uu(Ku/10)/Uu(7*Ku/10),A3=Uu(kf/10)*fO,k3=-nO(kf/10)*fO,N3={draw(e,t){const r=Or(t*P3),n=A3*r,i=k3*r;e.moveTo(0,-r),e.lineTo(n,i);for(let a=1;a<5;++a){const o=kf*a/5,s=nO(o),l=Uu(o);e.lineTo(l*r,-s*r),e.lineTo(s*n-l*i,l*n+s*i)}e.closePath()}},Ld=Or(3),$3={draw(e,t){const r=-Or(t/(Ld*3));e.moveTo(0,r*2),e.lineTo(-Ld*r,-r),e.lineTo(Ld*r,-r),e.closePath()}},Gt=-.5,qt=Or(3)/2,yh=1/Or(12),E3=(yh/2+1)*3,T3={draw(e,t){const r=Or(t/E3),n=r/2,i=r*yh,a=n,o=r*yh+r,s=-a,l=o;e.moveTo(n,i),e.lineTo(a,o),e.lineTo(s,l),e.lineTo(Gt*n-qt*i,qt*n+Gt*i),e.lineTo(Gt*a-qt*o,qt*a+Gt*o),e.lineTo(Gt*s-qt*l,qt*s+Gt*l),e.lineTo(Gt*n+qt*i,Gt*i-qt*n),e.lineTo(Gt*a+qt*o,Gt*o-qt*a),e.lineTo(Gt*s+qt*l,Gt*l-qt*s),e.closePath()}};function C3(e,t){let r=null,n=qv(i);e=typeof e=="function"?e:ye(e||Yv),t=typeof t=="function"?t:ye(t===void 0?64:+t);function i(){let a;if(r||(r=a=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),a)return r=null,a+""||null}return i.type=function(a){return arguments.length?(e=typeof a=="function"?a:ye(a),i):e},i.size=function(a){return arguments.length?(t=typeof a=="function"?a:ye(+a),i):t},i.context=function(a){return arguments.length?(r=a??null,i):r},i}function Hu(){}function Vu(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function dO(e){this._context=e}dO.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Vu(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Vu(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function M3(e){return new dO(e)}function pO(e){this._context=e}pO.prototype={areaStart:Hu,areaEnd:Hu,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Vu(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function I3(e){return new pO(e)}function hO(e){this._context=e}hO.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:Vu(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function L3(e){return new hO(e)}function mO(e){this._context=e}mO.prototype={areaStart:Hu,areaEnd:Hu,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function D3(e){return new mO(e)}function O0(e){return e<0?-1:1}function _0(e,t,r){var n=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(n||i<0&&-0),o=(r-e._y1)/(i||n<0&&-0),s=(a*i+o*n)/(n+i);return(O0(a)+O0(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function P0(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function Dd(e,t,r){var n=e._x0,i=e._y0,a=e._x1,o=e._y1,s=(a-n)/3;e._context.bezierCurveTo(n+s,i+s*t,a-s,o-s*r,a,o)}function Gu(e){this._context=e}Gu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Dd(this,this._t0,P0(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,Dd(this,P0(this,r=_0(this,e,t)),r);break;default:Dd(this,this._t0,r=_0(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function vO(e){this._context=new yO(e)}(vO.prototype=Object.create(Gu.prototype)).point=function(e,t){Gu.prototype.point.call(this,t,e)};function yO(e){this._context=e}yO.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,i,a){this._context.bezierCurveTo(t,e,n,r,a,i)}};function R3(e){return new Gu(e)}function B3(e){return new vO(e)}function gO(e){this._context=e}gO.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=A0(e),i=A0(t),a=0,o=1;o<r;++a,++o)this._context.bezierCurveTo(n[0][a],i[0][a],n[1][a],i[1][a],e[o],t[o]);(this._line||this._line!==0&&r===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}};function A0(e){var t,r=e.length-1,n,i=new Array(r),a=new Array(r),o=new Array(r);for(i[0]=0,a[0]=2,o[0]=e[0]+2*e[1],t=1;t<r-1;++t)i[t]=1,a[t]=4,o[t]=4*e[t]+2*e[t+1];for(i[r-1]=2,a[r-1]=7,o[r-1]=8*e[r-1]+e[r],t=1;t<r;++t)n=i[t]/a[t-1],a[t]-=n,o[t]-=n*o[t-1];for(i[r-1]=o[r-1]/a[r-1],t=r-2;t>=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[r-1]=(e[r]+i[r-1])/2,t=0;t<r-1;++t)a[t]=2*e[t+1]-i[t+1];return[i,a]}function F3(e){return new gO(e)}function $f(e,t){this._context=e,this._t=t}$f.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function z3(e){return new $f(e,.5)}function W3(e){return new $f(e,0)}function U3(e){return new $f(e,1)}function Oa(e,t){if((o=e.length)>1)for(var r=1,n,i,a=e[t[0]],o,s=a.length;r<o;++r)for(i=a,a=e[t[r]],n=0;n<s;++n)a[n][1]+=a[n][0]=isNaN(i[n][1])?i[n][0]:i[n][1]}function gh(e){for(var t=e.length,r=new Array(t);--t>=0;)r[t]=t;return r}function K3(e,t){return e[t]}function H3(e){const t=[];return t.key=e,t}function V3(){var e=ye([]),t=gh,r=Oa,n=K3;function i(a){var o=Array.from(e.apply(this,arguments),H3),s,l=o.length,u=-1,f;for(const d of a)for(s=0,++u;s<l;++s)(o[s][u]=[0,+n(d,o[s].key,u,a)]).data=d;for(s=0,f=Xv(t(o));s<l;++s)o[f[s]].index=s;return r(o,f),o}return i.keys=function(a){return arguments.length?(e=typeof a=="function"?a:ye(Array.from(a)),i):e},i.value=function(a){return arguments.length?(n=typeof a=="function"?a:ye(+a),i):n},i.order=function(a){return arguments.length?(t=a==null?gh:typeof a=="function"?a:ye(Array.from(a)),i):t},i.offset=function(a){return arguments.length?(r=a??Oa,i):r},i}function G3(e,t){if((n=e.length)>0){for(var r,n,i=0,a=e[0].length,o;i<a;++i){for(o=r=0;r<n;++r)o+=e[r][i][1]||0;if(o)for(r=0;r<n;++r)e[r][i][1]/=o}Oa(e,t)}}function q3(e,t){if((i=e.length)>0){for(var r=0,n=e[t[0]],i,a=n.length;r<a;++r){for(var o=0,s=0;o<i;++o)s+=e[o][r][1]||0;n[r][1]+=n[r][0]=-s/2}Oa(e,t)}}function X3(e,t){if(!(!((o=e.length)>0)||!((a=(i=e[t[0]]).length)>0))){for(var r=0,n=1,i,a,o;n<a;++n){for(var s=0,l=0,u=0;s<o;++s){for(var f=e[t[s]],d=f[n][1]||0,p=f[n-1][1]||0,h=(d-p)/2,m=0;m<s;++m){var g=e[t[m]],x=g[n][1]||0,y=g[n-1][1]||0;h+=x-y}l+=d,u+=h*d}i[n-1][1]+=i[n-1][0]=r,l&&(r-=u/l)}i[n-1][1]+=i[n-1][0]=r,Oa(e,t)}}function Os(e){"@babel/helpers - typeof";return Os=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Os(e)}var Y3=["type","size","sizeType"];function xh(){return xh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},xh.apply(this,arguments)}function k0(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function N0(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?k0(Object(r),!0).forEach(function(n){Q3(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):k0(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Q3(e,t,r){return t=Z3(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Z3(e){var t=J3(e,"string");return Os(t)=="symbol"?t:t+""}function J3(e,t){if(Os(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Os(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function eI(e,t){if(e==null)return{};var r=tI(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function tI(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var xO={symbolCircle:Yv,symbolCross:j3,symbolDiamond:O3,symbolSquare:_3,symbolStar:N3,symbolTriangle:$3,symbolWye:T3},rI=Math.PI/180,nI=function(t){var r="symbol".concat(Af(t));return xO[r]||Yv},iI=function(t,r,n){if(r==="area")return t;switch(n){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var i=18*rI;return 1.25*t*t*(Math.tan(i)-Math.tan(i*2)*Math.pow(Math.tan(i),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},aI=function(t,r){xO["symbol".concat(Af(t))]=r},Ef=function(t){var r=t.type,n=r===void 0?"circle":r,i=t.size,a=i===void 0?64:i,o=t.sizeType,s=o===void 0?"area":o,l=eI(t,Y3),u=N0(N0({},l),{},{type:n,size:a,sizeType:s}),f=function(){var x=nI(n),y=C3().type(x).size(iI(a,s,n));return y()},d=u.className,p=u.cx,h=u.cy,m=X(u,!0);return p===+p&&h===+h&&a===+a?k.createElement("path",xh({},m,{className:ee("recharts-symbols",d),transform:"translate(".concat(p,", ").concat(h,")"),d:f()})):null};Ef.registerSymbol=aI;function _a(e){"@babel/helpers - typeof";return _a=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_a(e)}function bh(){return bh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},bh.apply(this,arguments)}function $0(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function oI(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?$0(Object(r),!0).forEach(function(n){_s(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$0(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function sI(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function lI(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,wO(n.key),n)}}function uI(e,t,r){return t&&lI(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function cI(e,t,r){return t=qu(t),fI(e,bO()?Reflect.construct(t,r||[],qu(e).constructor):t.apply(e,r))}function fI(e,t){if(t&&(_a(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return dI(e)}function dI(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function bO(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(bO=function(){return!!e})()}function qu(e){return qu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},qu(e)}function pI(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&wh(e,t)}function wh(e,t){return wh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},wh(e,t)}function _s(e,t,r){return t=wO(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function wO(e){var t=hI(e,"string");return _a(t)=="symbol"?t:t+""}function hI(e,t){if(_a(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(_a(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Xt=32,Qv=function(e){function t(){return sI(this,t),cI(this,t,arguments)}return pI(t,e),uI(t,[{key:"renderIcon",value:function(n){var i=this.props.inactiveColor,a=Xt/2,o=Xt/6,s=Xt/3,l=n.inactive?i:n.color;if(n.type==="plainline")return k.createElement("line",{strokeWidth:4,fill:"none",stroke:l,strokeDasharray:n.payload.strokeDasharray,x1:0,y1:a,x2:Xt,y2:a,className:"recharts-legend-icon"});if(n.type==="line")return k.createElement("path",{strokeWidth:4,fill:"none",stroke:l,d:"M0,".concat(a,"h").concat(s,`
+ A`).concat(o,",").concat(o,",0,1,1,").concat(2*s,",").concat(a,`
+ H`).concat(Xt,"M").concat(2*s,",").concat(a,`
+ A`).concat(o,",").concat(o,",0,1,1,").concat(s,",").concat(a),className:"recharts-legend-icon"});if(n.type==="rect")return k.createElement("path",{stroke:"none",fill:l,d:"M0,".concat(Xt/8,"h").concat(Xt,"v").concat(Xt*3/4,"h").concat(-Xt,"z"),className:"recharts-legend-icon"});if(k.isValidElement(n.legendIcon)){var u=oI({},n);return delete u.legendIcon,k.cloneElement(n.legendIcon,u)}return k.createElement(Ef,{fill:l,cx:a,cy:a,size:Xt,sizeType:"diameter",type:n.type})}},{key:"renderItems",value:function(){var n=this,i=this.props,a=i.payload,o=i.iconSize,s=i.layout,l=i.formatter,u=i.inactiveColor,f={x:0,y:0,width:Xt,height:Xt},d={display:s==="horizontal"?"inline-block":"block",marginRight:10},p={display:"inline-block",verticalAlign:"middle",marginRight:4};return a.map(function(h,m){var g=h.formatter||l,x=ee(_s(_s({"recharts-legend-item":!0},"legend-item-".concat(m),!0),"inactive",h.inactive));if(h.type==="none")return null;var y=Z(h.value)?null:h.value;xr(!Z(h.value),`The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: <Bar name="Name of my Data"/>`);var v=h.inactive?u:h.color;return k.createElement("li",bh({className:x,style:d,key:"legend-item-".concat(m)},Bn(n.props,h,m)),k.createElement(fh,{width:o,height:o,viewBox:f,style:p},n.renderIcon(h)),k.createElement("span",{className:"recharts-legend-item-text",style:{color:v}},g?g(y,h,m):y))})}},{key:"render",value:function(){var n=this.props,i=n.payload,a=n.layout,o=n.align;if(!i||!i.length)return null;var s={padding:0,margin:0,textAlign:a==="horizontal"?o:"left"};return k.createElement("ul",{className:"recharts-default-legend",style:s},this.renderItems())}}])}(A.PureComponent);_s(Qv,"displayName","Legend");_s(Qv,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var mI=hf;function vI(){this.__data__=new mI,this.size=0}var yI=vI;function gI(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var xI=gI;function bI(e){return this.__data__.get(e)}var wI=bI;function jI(e){return this.__data__.has(e)}var SI=jI,OI=hf,_I=Bv,PI=Fv,AI=200;function kI(e,t){var r=this.__data__;if(r instanceof OI){var n=r.__data__;if(!_I||n.length<AI-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new PI(n)}return r.set(e,t),this.size=r.size,this}var NI=kI,$I=hf,EI=yI,TI=xI,CI=wI,MI=SI,II=NI;function uo(e){var t=this.__data__=new $I(e);this.size=t.size}uo.prototype.clear=EI;uo.prototype.delete=TI;uo.prototype.get=CI;uo.prototype.has=MI;uo.prototype.set=II;var jO=uo,LI="__lodash_hash_undefined__";function DI(e){return this.__data__.set(e,LI),this}var RI=DI;function BI(e){return this.__data__.has(e)}var FI=BI,zI=Fv,WI=RI,UI=FI;function Xu(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new zI;++t<r;)this.add(e[t])}Xu.prototype.add=Xu.prototype.push=WI;Xu.prototype.has=UI;var SO=Xu;function KI(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}var OO=KI;function HI(e,t){return e.has(t)}var _O=HI,VI=SO,GI=OO,qI=_O,XI=1,YI=2;function QI(e,t,r,n,i,a){var o=r&XI,s=e.length,l=t.length;if(s!=l&&!(o&&l>s))return!1;var u=a.get(e),f=a.get(t);if(u&&f)return u==t&&f==e;var d=-1,p=!0,h=r&YI?new VI:void 0;for(a.set(e,t),a.set(t,e);++d<s;){var m=e[d],g=t[d];if(n)var x=o?n(g,m,d,t,e,a):n(m,g,d,e,t,a);if(x!==void 0){if(x)continue;p=!1;break}if(h){if(!GI(t,function(y,v){if(!qI(h,v)&&(m===y||i(m,y,r,n,a)))return h.push(v)})){p=!1;break}}else if(!(m===g||i(m,g,r,n,a))){p=!1;break}}return a.delete(e),a.delete(t),p}var PO=QI,ZI=Ir,JI=ZI.Uint8Array,e4=JI;function t4(e){var t=-1,r=Array(e.size);return e.forEach(function(n,i){r[++t]=[i,n]}),r}var r4=t4;function n4(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}var Zv=n4,E0=pl,T0=e4,i4=Rv,a4=PO,o4=r4,s4=Zv,l4=1,u4=2,c4="[object Boolean]",f4="[object Date]",d4="[object Error]",p4="[object Map]",h4="[object Number]",m4="[object RegExp]",v4="[object Set]",y4="[object String]",g4="[object Symbol]",x4="[object ArrayBuffer]",b4="[object DataView]",C0=E0?E0.prototype:void 0,Rd=C0?C0.valueOf:void 0;function w4(e,t,r,n,i,a,o){switch(r){case b4:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case x4:return!(e.byteLength!=t.byteLength||!a(new T0(e),new T0(t)));case c4:case f4:case h4:return i4(+e,+t);case d4:return e.name==t.name&&e.message==t.message;case m4:case y4:return e==t+"";case p4:var s=o4;case v4:var l=n&l4;if(s||(s=s4),e.size!=t.size&&!l)return!1;var u=o.get(e);if(u)return u==t;n|=u4,o.set(e,t);var f=a4(s(e),s(t),n,i,a,o);return o.delete(e),f;case g4:if(Rd)return Rd.call(e)==Rd.call(t)}return!1}var j4=w4;function S4(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}var AO=S4,O4=AO,_4=Ct;function P4(e,t,r){var n=t(e);return _4(e)?n:O4(n,r(e))}var A4=P4;function k4(e,t){for(var r=-1,n=e==null?0:e.length,i=0,a=[];++r<n;){var o=e[r];t(o,r,e)&&(a[i++]=o)}return a}var N4=k4;function $4(){return[]}var E4=$4,T4=N4,C4=E4,M4=Object.prototype,I4=M4.propertyIsEnumerable,M0=Object.getOwnPropertySymbols,L4=M0?function(e){return e==null?[]:(e=Object(e),T4(M0(e),function(t){return I4.call(e,t)}))}:C4,D4=L4;function R4(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}var B4=R4,F4=an,z4=on,W4="[object Arguments]";function U4(e){return z4(e)&&F4(e)==W4}var K4=U4,I0=K4,H4=on,kO=Object.prototype,V4=kO.hasOwnProperty,G4=kO.propertyIsEnumerable,q4=I0(function(){return arguments}())?I0:function(e){return H4(e)&&V4.call(e,"callee")&&!G4.call(e,"callee")},Jv=q4,Yu={exports:{}};function X4(){return!1}var Y4=X4;Yu.exports;(function(e,t){var r=Ir,n=Y4,i=t&&!t.nodeType&&t,a=i&&!0&&e&&!e.nodeType&&e,o=a&&a.exports===i,s=o?r.Buffer:void 0,l=s?s.isBuffer:void 0,u=l||n;e.exports=u})(Yu,Yu.exports);var NO=Yu.exports,Q4=9007199254740991,Z4=/^(?:0|[1-9]\d*)$/;function J4(e,t){var r=typeof e;return t=t??Q4,!!t&&(r=="number"||r!="symbol"&&Z4.test(e))&&e>-1&&e%1==0&&e<t}var ey=J4,eL=9007199254740991;function tL(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=eL}var ty=tL,rL=an,nL=ty,iL=on,aL="[object Arguments]",oL="[object Array]",sL="[object Boolean]",lL="[object Date]",uL="[object Error]",cL="[object Function]",fL="[object Map]",dL="[object Number]",pL="[object Object]",hL="[object RegExp]",mL="[object Set]",vL="[object String]",yL="[object WeakMap]",gL="[object ArrayBuffer]",xL="[object DataView]",bL="[object Float32Array]",wL="[object Float64Array]",jL="[object Int8Array]",SL="[object Int16Array]",OL="[object Int32Array]",_L="[object Uint8Array]",PL="[object Uint8ClampedArray]",AL="[object Uint16Array]",kL="[object Uint32Array]",we={};we[bL]=we[wL]=we[jL]=we[SL]=we[OL]=we[_L]=we[PL]=we[AL]=we[kL]=!0;we[aL]=we[oL]=we[gL]=we[sL]=we[xL]=we[lL]=we[uL]=we[cL]=we[fL]=we[dL]=we[pL]=we[hL]=we[mL]=we[vL]=we[yL]=!1;function NL(e){return iL(e)&&nL(e.length)&&!!we[rL(e)]}var $L=NL;function EL(e){return function(t){return e(t)}}var $O=EL,Qu={exports:{}};Qu.exports;(function(e,t){var r=DS,n=t&&!t.nodeType&&t,i=n&&!0&&e&&!e.nodeType&&e,a=i&&i.exports===n,o=a&&r.process,s=function(){try{var l=i&&i.require&&i.require("util").types;return l||o&&o.binding&&o.binding("util")}catch{}}();e.exports=s})(Qu,Qu.exports);var TL=Qu.exports,CL=$L,ML=$O,L0=TL,D0=L0&&L0.isTypedArray,IL=D0?ML(D0):CL,EO=IL,LL=B4,DL=Jv,RL=Ct,BL=NO,FL=ey,zL=EO,WL=Object.prototype,UL=WL.hasOwnProperty;function KL(e,t){var r=RL(e),n=!r&&DL(e),i=!r&&!n&&BL(e),a=!r&&!n&&!i&&zL(e),o=r||n||i||a,s=o?LL(e.length,String):[],l=s.length;for(var u in e)(t||UL.call(e,u))&&!(o&&(u=="length"||i&&(u=="offset"||u=="parent")||a&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||FL(u,l)))&&s.push(u);return s}var HL=KL,VL=Object.prototype;function GL(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||VL;return e===r}var qL=GL;function XL(e,t){return function(r){return e(t(r))}}var TO=XL,YL=TO,QL=YL(Object.keys,Object),ZL=QL,JL=qL,e5=ZL,t5=Object.prototype,r5=t5.hasOwnProperty;function n5(e){if(!JL(e))return e5(e);var t=[];for(var r in Object(e))r5.call(e,r)&&r!="constructor"&&t.push(r);return t}var i5=n5,a5=Dv,o5=ty;function s5(e){return e!=null&&o5(e.length)&&!a5(e)}var hl=s5,l5=HL,u5=i5,c5=hl;function f5(e){return c5(e)?l5(e):u5(e)}var Tf=f5,d5=A4,p5=D4,h5=Tf;function m5(e){return d5(e,h5,p5)}var v5=m5,R0=v5,y5=1,g5=Object.prototype,x5=g5.hasOwnProperty;function b5(e,t,r,n,i,a){var o=r&y5,s=R0(e),l=s.length,u=R0(t),f=u.length;if(l!=f&&!o)return!1;for(var d=l;d--;){var p=s[d];if(!(o?p in t:x5.call(t,p)))return!1}var h=a.get(e),m=a.get(t);if(h&&m)return h==t&&m==e;var g=!0;a.set(e,t),a.set(t,e);for(var x=o;++d<l;){p=s[d];var y=e[p],v=t[p];if(n)var b=o?n(v,y,p,t,e,a):n(y,v,p,e,t,a);if(!(b===void 0?y===v||i(y,v,r,n,a):b)){g=!1;break}x||(x=p=="constructor")}if(g&&!x){var S=e.constructor,w=t.constructor;S!=w&&"constructor"in e&&"constructor"in t&&!(typeof S=="function"&&S instanceof S&&typeof w=="function"&&w instanceof w)&&(g=!1)}return a.delete(e),a.delete(t),g}var w5=b5,j5=Mi,S5=Ir,O5=j5(S5,"DataView"),_5=O5,P5=Mi,A5=Ir,k5=P5(A5,"Promise"),N5=k5,$5=Mi,E5=Ir,T5=$5(E5,"Set"),CO=T5,C5=Mi,M5=Ir,I5=C5(M5,"WeakMap"),L5=I5,jh=_5,Sh=Bv,Oh=N5,_h=CO,Ph=L5,MO=an,co=BS,B0="[object Map]",D5="[object Object]",F0="[object Promise]",z0="[object Set]",W0="[object WeakMap]",U0="[object DataView]",R5=co(jh),B5=co(Sh),F5=co(Oh),z5=co(_h),W5=co(Ph),ai=MO;(jh&&ai(new jh(new ArrayBuffer(1)))!=U0||Sh&&ai(new Sh)!=B0||Oh&&ai(Oh.resolve())!=F0||_h&&ai(new _h)!=z0||Ph&&ai(new Ph)!=W0)&&(ai=function(e){var t=MO(e),r=t==D5?e.constructor:void 0,n=r?co(r):"";if(n)switch(n){case R5:return U0;case B5:return B0;case F5:return F0;case z5:return z0;case W5:return W0}return t});var U5=ai,Bd=jO,K5=PO,H5=j4,V5=w5,K0=U5,H0=Ct,V0=NO,G5=EO,q5=1,G0="[object Arguments]",q0="[object Array]",Ul="[object Object]",X5=Object.prototype,X0=X5.hasOwnProperty;function Y5(e,t,r,n,i,a){var o=H0(e),s=H0(t),l=o?q0:K0(e),u=s?q0:K0(t);l=l==G0?Ul:l,u=u==G0?Ul:u;var f=l==Ul,d=u==Ul,p=l==u;if(p&&V0(e)){if(!V0(t))return!1;o=!0,f=!1}if(p&&!f)return a||(a=new Bd),o||G5(e)?K5(e,t,r,n,i,a):H5(e,t,l,r,n,i,a);if(!(r&q5)){var h=f&&X0.call(e,"__wrapped__"),m=d&&X0.call(t,"__wrapped__");if(h||m){var g=h?e.value():e,x=m?t.value():t;return a||(a=new Bd),i(g,x,r,n,a)}}return p?(a||(a=new Bd),V5(e,t,r,n,i,a)):!1}var Q5=Y5,Z5=Q5,Y0=on;function IO(e,t,r,n,i){return e===t?!0:e==null||t==null||!Y0(e)&&!Y0(t)?e!==e&&t!==t:Z5(e,t,r,n,IO,i)}var ry=IO,J5=jO,eD=ry,tD=1,rD=2;function nD(e,t,r,n){var i=r.length,a=i,o=!n;if(e==null)return!a;for(e=Object(e);i--;){var s=r[i];if(o&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++i<a;){s=r[i];var l=s[0],u=e[l],f=s[1];if(o&&s[2]){if(u===void 0&&!(l in e))return!1}else{var d=new J5;if(n)var p=n(u,f,l,e,t,d);if(!(p===void 0?eD(f,u,tD|rD,n,d):p))return!1}}return!0}var iD=nD,aD=Vn;function oD(e){return e===e&&!aD(e)}var LO=oD,sD=LO,lD=Tf;function uD(e){for(var t=lD(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,sD(i)]}return t}var cD=uD;function fD(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}var DO=fD,dD=iD,pD=cD,hD=DO;function mD(e){var t=pD(e);return t.length==1&&t[0][2]?hD(t[0][0],t[0][1]):function(r){return r===e||dD(r,e,t)}}var vD=mD;function yD(e,t){return e!=null&&t in Object(e)}var gD=yD,xD=KS,bD=Jv,wD=Ct,jD=ey,SD=ty,OD=vf;function _D(e,t,r){t=xD(t,e);for(var n=-1,i=t.length,a=!1;++n<i;){var o=OD(t[n]);if(!(a=e!=null&&r(e,o)))break;e=e[o]}return a||++n!=i?a:(i=e==null?0:e.length,!!i&&SD(i)&&jD(o,i)&&(wD(e)||bD(e)))}var PD=_D,AD=gD,kD=PD;function ND(e,t){return e!=null&&kD(e,t,AD)}var $D=ND,ED=ry,TD=HS,CD=$D,MD=Lv,ID=LO,LD=DO,DD=vf,RD=1,BD=2;function FD(e,t){return MD(e)&&ID(t)?LD(DD(e),t):function(r){var n=TD(r,e);return n===void 0&&n===t?CD(r,e):ED(t,n,RD|BD)}}var zD=FD;function WD(e){return e}var fo=WD;function UD(e){return function(t){return t==null?void 0:t[e]}}var KD=UD,HD=Uv;function VD(e){return function(t){return HD(t,e)}}var GD=VD,qD=KD,XD=GD,YD=Lv,QD=vf;function ZD(e){return YD(e)?qD(QD(e)):XD(e)}var JD=ZD,eR=vD,tR=zD,rR=fo,nR=Ct,iR=JD;function aR(e){return typeof e=="function"?e:e==null?rR:typeof e=="object"?nR(e)?tR(e[0],e[1]):eR(e):iR(e)}var Lr=aR;function oR(e,t,r,n){for(var i=e.length,a=r+(n?1:-1);n?a--:++a<i;)if(t(e[a],a,e))return a;return-1}var RO=oR;function sR(e){return e!==e}var lR=sR;function uR(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}var cR=uR,fR=RO,dR=lR,pR=cR;function hR(e,t,r){return t===t?pR(e,t,r):fR(e,dR,r)}var mR=hR,vR=mR;function yR(e,t){var r=e==null?0:e.length;return!!r&&vR(e,t,0)>-1}var gR=yR;function xR(e,t,r){for(var n=-1,i=e==null?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}var bR=xR;function wR(){}var jR=wR,Fd=CO,SR=jR,OR=Zv,_R=1/0,PR=Fd&&1/OR(new Fd([,-0]))[1]==_R?function(e){return new Fd(e)}:SR,AR=PR,kR=SO,NR=gR,$R=bR,ER=_O,TR=AR,CR=Zv,MR=200;function IR(e,t,r){var n=-1,i=NR,a=e.length,o=!0,s=[],l=s;if(r)o=!1,i=$R;else if(a>=MR){var u=t?null:TR(e);if(u)return CR(u);o=!1,i=ER,l=new kR}else l=t?[]:s;e:for(;++n<a;){var f=e[n],d=t?t(f):f;if(f=r||f!==0?f:0,o&&d===d){for(var p=l.length;p--;)if(l[p]===d)continue e;t&&l.push(d),s.push(f)}else i(l,d,r)||(l!==s&&l.push(d),s.push(f))}return s}var LR=IR,DR=Lr,RR=LR;function BR(e,t){return e&&e.length?RR(e,DR(t)):[]}var FR=BR;const Q0=de(FR);function BO(e,t,r){return t===!0?Q0(e,r):Z(t)?Q0(e,t):e}function Pa(e){"@babel/helpers - typeof";return Pa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Pa(e)}var zR=["ref"];function Z0(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Dr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Z0(Object(r),!0).forEach(function(n){Cf(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Z0(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function WR(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function J0(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,zO(n.key),n)}}function UR(e,t,r){return t&&J0(e.prototype,t),r&&J0(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function KR(e,t,r){return t=Zu(t),HR(e,FO()?Reflect.construct(t,r||[],Zu(e).constructor):t.apply(e,r))}function HR(e,t){if(t&&(Pa(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return VR(e)}function VR(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function FO(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(FO=function(){return!!e})()}function Zu(e){return Zu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Zu(e)}function GR(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ah(e,t)}function Ah(e,t){return Ah=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Ah(e,t)}function Cf(e,t,r){return t=zO(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function zO(e){var t=qR(e,"string");return Pa(t)=="symbol"?t:t+""}function qR(e,t){if(Pa(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Pa(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function XR(e,t){if(e==null)return{};var r=YR(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function YR(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function QR(e){return e.value}function ZR(e,t){if(k.isValidElement(e))return k.cloneElement(e,t);if(typeof e=="function")return k.createElement(e,t);t.ref;var r=XR(t,zR);return k.createElement(Qv,r)}var ex=1,qr=function(e){function t(){var r;WR(this,t);for(var n=arguments.length,i=new Array(n),a=0;a<n;a++)i[a]=arguments[a];return r=KR(this,t,[].concat(i)),Cf(r,"lastBoundingBox",{width:-1,height:-1}),r}return GR(t,e),UR(t,[{key:"componentDidMount",value:function(){this.updateBBox()}},{key:"componentDidUpdate",value:function(){this.updateBBox()}},{key:"getBBox",value:function(){if(this.wrapperNode&&this.wrapperNode.getBoundingClientRect){var n=this.wrapperNode.getBoundingClientRect();return n.height=this.wrapperNode.offsetHeight,n.width=this.wrapperNode.offsetWidth,n}return null}},{key:"updateBBox",value:function(){var n=this.props.onBBoxUpdate,i=this.getBBox();i?(Math.abs(i.width-this.lastBoundingBox.width)>ex||Math.abs(i.height-this.lastBoundingBox.height)>ex)&&(this.lastBoundingBox.width=i.width,this.lastBoundingBox.height=i.height,n&&n(i)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,n&&n(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Dr({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(n){var i=this.props,a=i.layout,o=i.align,s=i.verticalAlign,l=i.margin,u=i.chartWidth,f=i.chartHeight,d,p;if(!n||(n.left===void 0||n.left===null)&&(n.right===void 0||n.right===null))if(o==="center"&&a==="vertical"){var h=this.getBBoxSnapshot();d={left:((u||0)-h.width)/2}}else d=o==="right"?{right:l&&l.right||0}:{left:l&&l.left||0};if(!n||(n.top===void 0||n.top===null)&&(n.bottom===void 0||n.bottom===null))if(s==="middle"){var m=this.getBBoxSnapshot();p={top:((f||0)-m.height)/2}}else p=s==="bottom"?{bottom:l&&l.bottom||0}:{top:l&&l.top||0};return Dr(Dr({},d),p)}},{key:"render",value:function(){var n=this,i=this.props,a=i.content,o=i.width,s=i.height,l=i.wrapperStyle,u=i.payloadUniqBy,f=i.payload,d=Dr(Dr({position:"absolute",width:o||"auto",height:s||"auto"},this.getDefaultPosition(l)),l);return k.createElement("div",{className:"recharts-legend-wrapper",style:d,ref:function(h){n.wrapperNode=h}},ZR(a,Dr(Dr({},this.props),{},{payload:BO(f,u,QR)})))}}],[{key:"getWithHeight",value:function(n,i){var a=Dr(Dr({},this.defaultProps),n.props),o=a.layout;return o==="vertical"&&K(n.props.height)?{height:n.props.height}:o==="horizontal"?{width:n.props.width||i}:null}}])}(A.PureComponent);Cf(qr,"displayName","Legend");Cf(qr,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var tx=pl,JR=Jv,e8=Ct,rx=tx?tx.isConcatSpreadable:void 0;function t8(e){return e8(e)||JR(e)||!!(rx&&e&&e[rx])}var r8=t8,n8=AO,i8=r8;function WO(e,t,r,n,i){var a=-1,o=e.length;for(r||(r=i8),i||(i=[]);++a<o;){var s=e[a];t>0&&r(s)?t>1?WO(s,t-1,r,n,i):n8(i,s):n||(i[i.length]=s)}return i}var UO=WO;function a8(e){return function(t,r,n){for(var i=-1,a=Object(t),o=n(t),s=o.length;s--;){var l=o[e?s:++i];if(r(a[l],l,a)===!1)break}return t}}var o8=a8,s8=o8,l8=s8(),u8=l8,c8=u8,f8=Tf;function d8(e,t){return e&&c8(e,t,f8)}var KO=d8,p8=hl;function h8(e,t){return function(r,n){if(r==null)return r;if(!p8(r))return e(r,n);for(var i=r.length,a=t?i:-1,o=Object(r);(t?a--:++a<i)&&n(o[a],a,o)!==!1;);return r}}var m8=h8,v8=KO,y8=m8,g8=y8(v8),ny=g8,x8=ny,b8=hl;function w8(e,t){var r=-1,n=b8(e)?Array(e.length):[];return x8(e,function(i,a,o){n[++r]=t(i,a,o)}),n}var HO=w8;function j8(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}var S8=j8,nx=no;function O8(e,t){if(e!==t){var r=e!==void 0,n=e===null,i=e===e,a=nx(e),o=t!==void 0,s=t===null,l=t===t,u=nx(t);if(!s&&!u&&!a&&e>t||a&&o&&l&&!s&&!u||n&&o&&l||!r&&l||!i)return 1;if(!n&&!a&&!u&&e<t||u&&r&&i&&!n&&!a||s&&r&&i||!o&&i||!l)return-1}return 0}var _8=O8,P8=_8;function A8(e,t,r){for(var n=-1,i=e.criteria,a=t.criteria,o=i.length,s=r.length;++n<o;){var l=P8(i[n],a[n]);if(l){if(n>=s)return l;var u=r[n];return l*(u=="desc"?-1:1)}}return e.index-t.index}var k8=A8,zd=Wv,N8=Uv,$8=Lr,E8=HO,T8=S8,C8=$O,M8=k8,I8=fo,L8=Ct;function D8(e,t,r){t.length?t=zd(t,function(a){return L8(a)?function(o){return N8(o,a.length===1?a[0]:a)}:a}):t=[I8];var n=-1;t=zd(t,C8($8));var i=E8(e,function(a,o,s){var l=zd(t,function(u){return u(a)});return{criteria:l,index:++n,value:a}});return T8(i,function(a,o){return M8(a,o,r)})}var R8=D8;function B8(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var F8=B8,z8=F8,ix=Math.max;function W8(e,t,r){return t=ix(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,a=ix(n.length-t,0),o=Array(a);++i<a;)o[i]=n[t+i];i=-1;for(var s=Array(t+1);++i<t;)s[i]=n[i];return s[t]=r(o),z8(e,this,s)}}var U8=W8;function K8(e){return function(){return e}}var H8=K8,V8=Mi,G8=function(){try{var e=V8(Object,"defineProperty");return e({},"",{}),e}catch{}}(),VO=G8,q8=H8,ax=VO,X8=fo,Y8=ax?function(e,t){return ax(e,"toString",{configurable:!0,enumerable:!1,value:q8(t),writable:!0})}:X8,Q8=Y8,Z8=800,J8=16,eB=Date.now;function tB(e){var t=0,r=0;return function(){var n=eB(),i=J8-(n-r);if(r=n,i>0){if(++t>=Z8)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var rB=tB,nB=Q8,iB=rB,aB=iB(nB),oB=aB,sB=fo,lB=U8,uB=oB;function cB(e,t){return uB(lB(e,t,sB),e+"")}var fB=cB,dB=Rv,pB=hl,hB=ey,mB=Vn;function vB(e,t,r){if(!mB(r))return!1;var n=typeof t;return(n=="number"?pB(r)&&hB(t,r.length):n=="string"&&t in r)?dB(r[t],e):!1}var Mf=vB,yB=UO,gB=R8,xB=fB,ox=Mf,bB=xB(function(e,t){if(e==null)return[];var r=t.length;return r>1&&ox(e,t[0],t[1])?t=[]:r>2&&ox(t[0],t[1],t[2])&&(t=[t[0]]),gB(e,yB(t,1),[])}),wB=bB;const iy=de(wB);function Ps(e){"@babel/helpers - typeof";return Ps=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ps(e)}function kh(){return kh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},kh.apply(this,arguments)}function jB(e,t){return PB(e)||_B(e,t)||OB(e,t)||SB()}function SB(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function OB(e,t){if(e){if(typeof e=="string")return sx(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return sx(e,t)}}function sx(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _B(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,s=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(l=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(f){u=!0,i=f}finally{try{if(!l&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}function PB(e){if(Array.isArray(e))return e}function lx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Wd(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?lx(Object(r),!0).forEach(function(n){AB(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):lx(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function AB(e,t,r){return t=kB(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function kB(e){var t=NB(e,"string");return Ps(t)=="symbol"?t:t+""}function NB(e,t){if(Ps(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ps(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function $B(e){return Array.isArray(e)&&Ye(e[0])&&Ye(e[1])?e.join(" ~ "):e}var EB=function(t){var r=t.separator,n=r===void 0?" : ":r,i=t.contentStyle,a=i===void 0?{}:i,o=t.itemStyle,s=o===void 0?{}:o,l=t.labelStyle,u=l===void 0?{}:l,f=t.payload,d=t.formatter,p=t.itemSorter,h=t.wrapperClassName,m=t.labelClassName,g=t.label,x=t.labelFormatter,y=t.accessibilityLayer,v=y===void 0?!1:y,b=function(){if(f&&f.length){var $={padding:0,margin:0},I=(p?iy(f,p):f).map(function(D,L){if(D.type==="none")return null;var C=Wd({display:"block",paddingTop:4,paddingBottom:4,color:D.color||"#000"},s),F=D.formatter||d||$B,M=D.value,B=D.name,E=M,W=B;if(F&&E!=null&&W!=null){var z=F(M,B,D,L,f);if(Array.isArray(z)){var Y=jB(z,2);E=Y[0],W=Y[1]}else E=z}return k.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(L),style:C},Ye(W)?k.createElement("span",{className:"recharts-tooltip-item-name"},W):null,Ye(W)?k.createElement("span",{className:"recharts-tooltip-item-separator"},n):null,k.createElement("span",{className:"recharts-tooltip-item-value"},E),k.createElement("span",{className:"recharts-tooltip-item-unit"},D.unit||""))});return k.createElement("ul",{className:"recharts-tooltip-item-list",style:$},I)}return null},S=Wd({margin:0,padding:10,backgroundColor:"#fff",border:"1px solid #ccc",whiteSpace:"nowrap"},a),w=Wd({margin:0},u),j=!Q(g),O=j?g:"",_=ee("recharts-default-tooltip",h),P=ee("recharts-tooltip-label",m);j&&x&&f!==void 0&&f!==null&&(O=x(g,f));var N=v?{role:"status","aria-live":"assertive"}:{};return k.createElement("div",kh({className:_,style:S},N),k.createElement("p",{className:P,style:w},k.isValidElement(O)?O:"".concat(O)),b())};function As(e){"@babel/helpers - typeof";return As=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},As(e)}function Kl(e,t,r){return t=TB(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function TB(e){var t=CB(e,"string");return As(t)=="symbol"?t:t+""}function CB(e,t){if(As(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(As(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Ao="recharts-tooltip-wrapper",MB={visibility:"hidden"};function IB(e){var t=e.coordinate,r=e.translateX,n=e.translateY;return ee(Ao,Kl(Kl(Kl(Kl({},"".concat(Ao,"-right"),K(r)&&t&&K(t.x)&&r>=t.x),"".concat(Ao,"-left"),K(r)&&t&&K(t.x)&&r<t.x),"".concat(Ao,"-bottom"),K(n)&&t&&K(t.y)&&n>=t.y),"".concat(Ao,"-top"),K(n)&&t&&K(t.y)&&n<t.y))}function ux(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.key,i=e.offsetTopLeft,a=e.position,o=e.reverseDirection,s=e.tooltipDimension,l=e.viewBox,u=e.viewBoxDimension;if(a&&K(a[n]))return a[n];var f=r[n]-s-i,d=r[n]+i;if(t[n])return o[n]?f:d;if(o[n]){var p=f,h=l[n];return p<h?Math.max(d,l[n]):Math.max(f,l[n])}var m=d+s,g=l[n]+u;return m>g?Math.max(f,l[n]):Math.max(d,l[n])}function LB(e){var t=e.translateX,r=e.translateY,n=e.useTranslate3d;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function DB(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTopLeft,i=e.position,a=e.reverseDirection,o=e.tooltipBox,s=e.useTranslate3d,l=e.viewBox,u,f,d;return o.height>0&&o.width>0&&r?(f=ux({allowEscapeViewBox:t,coordinate:r,key:"x",offsetTopLeft:n,position:i,reverseDirection:a,tooltipDimension:o.width,viewBox:l,viewBoxDimension:l.width}),d=ux({allowEscapeViewBox:t,coordinate:r,key:"y",offsetTopLeft:n,position:i,reverseDirection:a,tooltipDimension:o.height,viewBox:l,viewBoxDimension:l.height}),u=LB({translateX:f,translateY:d,useTranslate3d:s})):u=MB,{cssProperties:u,cssClasses:IB({translateX:f,translateY:d,coordinate:r})}}function Aa(e){"@babel/helpers - typeof";return Aa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Aa(e)}function cx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function fx(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?cx(Object(r),!0).forEach(function(n){$h(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):cx(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function RB(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function BB(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,qO(n.key),n)}}function FB(e,t,r){return t&&BB(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function zB(e,t,r){return t=Ju(t),WB(e,GO()?Reflect.construct(t,r||[],Ju(e).constructor):t.apply(e,r))}function WB(e,t){if(t&&(Aa(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return UB(e)}function UB(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function GO(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(GO=function(){return!!e})()}function Ju(e){return Ju=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Ju(e)}function KB(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Nh(e,t)}function Nh(e,t){return Nh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Nh(e,t)}function $h(e,t,r){return t=qO(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function qO(e){var t=HB(e,"string");return Aa(t)=="symbol"?t:t+""}function HB(e,t){if(Aa(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Aa(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var dx=1,VB=function(e){function t(){var r;RB(this,t);for(var n=arguments.length,i=new Array(n),a=0;a<n;a++)i[a]=arguments[a];return r=zB(this,t,[].concat(i)),$h(r,"state",{dismissed:!1,dismissedAtCoordinate:{x:0,y:0},lastBoundingBox:{width:-1,height:-1}}),$h(r,"handleKeyDown",function(o){if(o.key==="Escape"){var s,l,u,f;r.setState({dismissed:!0,dismissedAtCoordinate:{x:(s=(l=r.props.coordinate)===null||l===void 0?void 0:l.x)!==null&&s!==void 0?s:0,y:(u=(f=r.props.coordinate)===null||f===void 0?void 0:f.y)!==null&&u!==void 0?u:0}})}}),r}return KB(t,e),FB(t,[{key:"updateBBox",value:function(){if(this.wrapperNode&&this.wrapperNode.getBoundingClientRect){var n=this.wrapperNode.getBoundingClientRect();(Math.abs(n.width-this.state.lastBoundingBox.width)>dx||Math.abs(n.height-this.state.lastBoundingBox.height)>dx)&&this.setState({lastBoundingBox:{width:n.width,height:n.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var n,i;this.props.active&&this.updateBBox(),this.state.dismissed&&(((n=this.props.coordinate)===null||n===void 0?void 0:n.x)!==this.state.dismissedAtCoordinate.x||((i=this.props.coordinate)===null||i===void 0?void 0:i.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var n=this,i=this.props,a=i.active,o=i.allowEscapeViewBox,s=i.animationDuration,l=i.animationEasing,u=i.children,f=i.coordinate,d=i.hasPayload,p=i.isAnimationActive,h=i.offset,m=i.position,g=i.reverseDirection,x=i.useTranslate3d,y=i.viewBox,v=i.wrapperStyle,b=DB({allowEscapeViewBox:o,coordinate:f,offsetTopLeft:h,position:m,reverseDirection:g,tooltipBox:this.state.lastBoundingBox,useTranslate3d:x,viewBox:y}),S=b.cssClasses,w=b.cssProperties,j=fx(fx({transition:p&&a?"transform ".concat(s,"ms ").concat(l):void 0},w),{},{pointerEvents:"none",visibility:!this.state.dismissed&&a&&d?"visible":"hidden",position:"absolute",top:0,left:0},v);return k.createElement("div",{tabIndex:-1,className:S,style:j,ref:function(_){n.wrapperNode=_}},u)}}])}(A.PureComponent),GB=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},sn={isSsr:GB()};function ka(e){"@babel/helpers - typeof";return ka=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ka(e)}function px(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function hx(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?px(Object(r),!0).forEach(function(n){ay(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):px(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function qB(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function XB(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,YO(n.key),n)}}function YB(e,t,r){return t&&XB(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function QB(e,t,r){return t=ec(t),ZB(e,XO()?Reflect.construct(t,r||[],ec(e).constructor):t.apply(e,r))}function ZB(e,t){if(t&&(ka(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return JB(e)}function JB(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function XO(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(XO=function(){return!!e})()}function ec(e){return ec=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},ec(e)}function e6(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Eh(e,t)}function Eh(e,t){return Eh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Eh(e,t)}function ay(e,t,r){return t=YO(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function YO(e){var t=t6(e,"string");return ka(t)=="symbol"?t:t+""}function t6(e,t){if(ka(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(ka(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function r6(e){return e.dataKey}function n6(e,t){return k.isValidElement(e)?k.cloneElement(e,t):typeof e=="function"?k.createElement(e,t):k.createElement(EB,t)}var Se=function(e){function t(){return qB(this,t),QB(this,t,arguments)}return e6(t,e),YB(t,[{key:"render",value:function(){var n=this,i=this.props,a=i.active,o=i.allowEscapeViewBox,s=i.animationDuration,l=i.animationEasing,u=i.content,f=i.coordinate,d=i.filterNull,p=i.isAnimationActive,h=i.offset,m=i.payload,g=i.payloadUniqBy,x=i.position,y=i.reverseDirection,v=i.useTranslate3d,b=i.viewBox,S=i.wrapperStyle,w=m??[];d&&w.length&&(w=BO(m.filter(function(O){return O.value!=null&&(O.hide!==!0||n.props.includeHidden)}),g,r6));var j=w.length>0;return k.createElement(VB,{allowEscapeViewBox:o,animationDuration:s,animationEasing:l,isAnimationActive:p,active:a,coordinate:f,hasPayload:j,offset:h,position:x,reverseDirection:y,useTranslate3d:v,viewBox:b,wrapperStyle:S},n6(u,hx(hx({},this.props),{},{payload:w})))}}])}(A.PureComponent);ay(Se,"displayName","Tooltip");ay(Se,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!sn.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var i6=Ir,a6=function(){return i6.Date.now()},o6=a6,s6=/\s/;function l6(e){for(var t=e.length;t--&&s6.test(e.charAt(t)););return t}var u6=l6,c6=u6,f6=/^\s+/;function d6(e){return e&&e.slice(0,c6(e)+1).replace(f6,"")}var p6=d6,h6=p6,mx=Vn,m6=no,vx=NaN,v6=/^[-+]0x[0-9a-f]+$/i,y6=/^0b[01]+$/i,g6=/^0o[0-7]+$/i,x6=parseInt;function b6(e){if(typeof e=="number")return e;if(m6(e))return vx;if(mx(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=mx(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=h6(e);var r=y6.test(e);return r||g6.test(e)?x6(e.slice(2),r?2:8):v6.test(e)?vx:+e}var QO=b6,w6=Vn,Ud=o6,yx=QO,j6="Expected a function",S6=Math.max,O6=Math.min;function _6(e,t,r){var n,i,a,o,s,l,u=0,f=!1,d=!1,p=!0;if(typeof e!="function")throw new TypeError(j6);t=yx(t)||0,w6(r)&&(f=!!r.leading,d="maxWait"in r,a=d?S6(yx(r.maxWait)||0,t):a,p="trailing"in r?!!r.trailing:p);function h(j){var O=n,_=i;return n=i=void 0,u=j,o=e.apply(_,O),o}function m(j){return u=j,s=setTimeout(y,t),f?h(j):o}function g(j){var O=j-l,_=j-u,P=t-O;return d?O6(P,a-_):P}function x(j){var O=j-l,_=j-u;return l===void 0||O>=t||O<0||d&&_>=a}function y(){var j=Ud();if(x(j))return v(j);s=setTimeout(y,g(j))}function v(j){return s=void 0,p&&n?h(j):(n=i=void 0,o)}function b(){s!==void 0&&clearTimeout(s),u=0,n=l=i=s=void 0}function S(){return s===void 0?o:v(Ud())}function w(){var j=Ud(),O=x(j);if(n=arguments,i=this,l=j,O){if(s===void 0)return m(l);if(d)return clearTimeout(s),s=setTimeout(y,t),h(l)}return s===void 0&&(s=setTimeout(y,t)),o}return w.cancel=b,w.flush=S,w}var P6=_6,A6=P6,k6=Vn,N6="Expected a function";function $6(e,t,r){var n=!0,i=!0;if(typeof e!="function")throw new TypeError(N6);return k6(r)&&(n="leading"in r?!!r.leading:n,i="trailing"in r?!!r.trailing:i),A6(e,t,{leading:n,maxWait:t,trailing:i})}var E6=$6;const ZO=de(E6);function ks(e){"@babel/helpers - typeof";return ks=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ks(e)}function gx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Hl(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?gx(Object(r),!0).forEach(function(n){T6(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):gx(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function T6(e,t,r){return t=C6(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function C6(e){var t=M6(e,"string");return ks(t)=="symbol"?t:t+""}function M6(e,t){if(ks(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(ks(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function I6(e,t){return B6(e)||R6(e,t)||D6(e,t)||L6()}function L6(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function D6(e,t){if(e){if(typeof e=="string")return xx(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return xx(e,t)}}function xx(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function R6(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,s=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(l=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(f){u=!0,i=f}finally{try{if(!l&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}function B6(e){if(Array.isArray(e))return e}var pt=A.forwardRef(function(e,t){var r=e.aspect,n=e.initialDimension,i=n===void 0?{width:-1,height:-1}:n,a=e.width,o=a===void 0?"100%":a,s=e.height,l=s===void 0?"100%":s,u=e.minWidth,f=u===void 0?0:u,d=e.minHeight,p=e.maxHeight,h=e.children,m=e.debounce,g=m===void 0?0:m,x=e.id,y=e.className,v=e.onResize,b=e.style,S=b===void 0?{}:b,w=A.useRef(null),j=A.useRef();j.current=v,A.useImperativeHandle(t,function(){return Object.defineProperty(w.current,"current",{get:function(){return console.warn("The usage of ref.current.current is deprecated and will no longer be supported."),w.current},configurable:!0})});var O=A.useState({containerWidth:i.width,containerHeight:i.height}),_=I6(O,2),P=_[0],N=_[1],T=A.useCallback(function(I,D){N(function(L){var C=Math.round(I),F=Math.round(D);return L.containerWidth===C&&L.containerHeight===F?L:{containerWidth:C,containerHeight:F}})},[]);A.useEffect(function(){var I=function(B){var E,W=B[0].contentRect,z=W.width,Y=W.height;T(z,Y),(E=j.current)===null||E===void 0||E.call(j,z,Y)};g>0&&(I=ZO(I,g,{trailing:!0,leading:!1}));var D=new ResizeObserver(I),L=w.current.getBoundingClientRect(),C=L.width,F=L.height;return T(C,F),D.observe(w.current),function(){D.disconnect()}},[T,g]);var $=A.useMemo(function(){var I=P.containerWidth,D=P.containerHeight;if(I<0||D<0)return null;xr(fi(o)||fi(l),`The width(%s) and height(%s) are both fixed numbers,
+ maybe you don't need to use a ResponsiveContainer.`,o,l),xr(!r||r>0,"The aspect(%s) must be greater than zero.",r);var L=fi(o)?I:o,C=fi(l)?D:l;r&&r>0&&(L?C=L/r:C&&(L=C*r),p&&C>p&&(C=p)),xr(L>0||C>0,`The width(%s) and height(%s) of chart should be greater than 0,
+ please check the style of container, or the props width(%s) and height(%s),
+ or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the
+ height and width.`,L,C,o,l,f,d,r);var F=!Array.isArray(h)&&Gr(h.type).endsWith("Chart");return k.Children.map(h,function(M){return k.isValidElement(M)?A.cloneElement(M,Hl({width:L,height:C},F?{style:Hl({height:"100%",width:"100%",maxHeight:C,maxWidth:L},M.props.style)}:{})):M})},[r,h,l,p,d,f,P,o]);return k.createElement("div",{id:x?"".concat(x):void 0,className:ee("recharts-responsive-container",y),style:Hl(Hl({},S),{},{width:o,height:l,minWidth:f,minHeight:d,maxHeight:p}),ref:w},$)}),jr=function(t){return null};jr.displayName="Cell";function Ns(e){"@babel/helpers - typeof";return Ns=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ns(e)}function bx(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Th(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?bx(Object(r),!0).forEach(function(n){F6(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):bx(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function F6(e,t,r){return t=z6(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function z6(e){var t=W6(e,"string");return Ns(t)=="symbol"?t:t+""}function W6(e,t){if(Ns(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ns(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Fi={widthCache:{},cacheCount:0},U6=2e3,K6={position:"absolute",top:"-20000px",left:0,padding:0,margin:0,border:"none",whiteSpace:"pre"},wx="recharts_measurement_span";function H6(e){var t=Th({},e);return Object.keys(t).forEach(function(r){t[r]||delete t[r]}),t}var Yo=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||sn.isSsr)return{width:0,height:0};var n=H6(r),i=JSON.stringify({text:t,copyStyle:n});if(Fi.widthCache[i])return Fi.widthCache[i];try{var a=document.getElementById(wx);a||(a=document.createElement("span"),a.setAttribute("id",wx),a.setAttribute("aria-hidden","true"),document.body.appendChild(a));var o=Th(Th({},K6),n);Object.assign(a.style,o),a.textContent="".concat(t);var s=a.getBoundingClientRect(),l={width:s.width,height:s.height};return Fi.widthCache[i]=l,++Fi.cacheCount>U6&&(Fi.cacheCount=0,Fi.widthCache={}),l}catch{return{width:0,height:0}}},V6=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function $s(e){"@babel/helpers - typeof";return $s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$s(e)}function tc(e,t){return Y6(e)||X6(e,t)||q6(e,t)||G6()}function G6(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function q6(e,t){if(e){if(typeof e=="string")return jx(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return jx(e,t)}}function jx(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function X6(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,s=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,t===0){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(f){u=!0,i=f}finally{try{if(!l&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}function Y6(e){if(Array.isArray(e))return e}function Q6(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Sx(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,J6(n.key),n)}}function Z6(e,t,r){return t&&Sx(e.prototype,t),r&&Sx(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function J6(e){var t=eF(e,"string");return $s(t)=="symbol"?t:t+""}function eF(e,t){if($s(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if($s(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Ox=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,_x=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,tF=/^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/,rF=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,JO={cm:96/2.54,mm:96/25.4,pt:96/72,pc:96/6,in:96,Q:96/(2.54*40),px:1},nF=Object.keys(JO),na="NaN";function iF(e,t){return e*JO[t]}var Vl=function(){function e(t,r){Q6(this,e),this.num=t,this.unit=r,this.num=t,this.unit=r,Number.isNaN(t)&&(this.unit=""),r!==""&&!tF.test(r)&&(this.num=NaN,this.unit=""),nF.includes(r)&&(this.num=iF(t,r),this.unit="px")}return Z6(e,[{key:"add",value:function(r){return this.unit!==r.unit?new e(NaN,""):new e(this.num+r.num,this.unit)}},{key:"subtract",value:function(r){return this.unit!==r.unit?new e(NaN,""):new e(this.num-r.num,this.unit)}},{key:"multiply",value:function(r){return this.unit!==""&&r.unit!==""&&this.unit!==r.unit?new e(NaN,""):new e(this.num*r.num,this.unit||r.unit)}},{key:"divide",value:function(r){return this.unit!==""&&r.unit!==""&&this.unit!==r.unit?new e(NaN,""):new e(this.num/r.num,this.unit||r.unit)}},{key:"toString",value:function(){return"".concat(this.num).concat(this.unit)}},{key:"isNaN",value:function(){return Number.isNaN(this.num)}}],[{key:"parse",value:function(r){var n,i=(n=rF.exec(r))!==null&&n!==void 0?n:[],a=tc(i,3),o=a[1],s=a[2];return new e(parseFloat(o),s??"")}}])}();function e_(e){if(e.includes(na))return na;for(var t=e;t.includes("*")||t.includes("/");){var r,n=(r=Ox.exec(t))!==null&&r!==void 0?r:[],i=tc(n,4),a=i[1],o=i[2],s=i[3],l=Vl.parse(a??""),u=Vl.parse(s??""),f=o==="*"?l.multiply(u):l.divide(u);if(f.isNaN())return na;t=t.replace(Ox,f.toString())}for(;t.includes("+")||/.-\d+(?:\.\d+)?/.test(t);){var d,p=(d=_x.exec(t))!==null&&d!==void 0?d:[],h=tc(p,4),m=h[1],g=h[2],x=h[3],y=Vl.parse(m??""),v=Vl.parse(x??""),b=g==="+"?y.add(v):y.subtract(v);if(b.isNaN())return na;t=t.replace(_x,b.toString())}return t}var Px=/\(([^()]*)\)/;function aF(e){for(var t=e;t.includes("(");){var r=Px.exec(t),n=tc(r,2),i=n[1];t=t.replace(Px,e_(i))}return t}function oF(e){var t=e.replace(/\s+/g,"");return t=aF(t),t=e_(t),t}function sF(e){try{return oF(e)}catch{return na}}function Kd(e){var t=sF(e.slice(5,-1));return t===na?"":t}var lF=["x","y","lineHeight","capHeight","scaleToFit","textAnchor","verticalAnchor","fill"],uF=["dx","dy","angle","className","breakAll"];function Ch(){return Ch=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ch.apply(this,arguments)}function Ax(e,t){if(e==null)return{};var r=cF(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function cF(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function kx(e,t){return hF(e)||pF(e,t)||dF(e,t)||fF()}function fF(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function dF(e,t){if(e){if(typeof e=="string")return Nx(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Nx(e,t)}}function Nx(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function pF(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,s=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,t===0){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(f){u=!0,i=f}finally{try{if(!l&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}function hF(e){if(Array.isArray(e))return e}var t_=/[ \f\n\r\t\v\u2028\u2029]+/,r_=function(t){var r=t.children,n=t.breakAll,i=t.style;try{var a=[];Q(r)||(n?a=r.toString().split(""):a=r.toString().split(t_));var o=a.map(function(l){return{word:l,width:Yo(l,i).width}}),s=n?0:Yo(" ",i).width;return{wordsWithComputedWidth:o,spaceWidth:s}}catch{return null}},mF=function(t,r,n,i,a){var o=t.maxLines,s=t.children,l=t.style,u=t.breakAll,f=K(o),d=s,p=function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return L.reduce(function(C,F){var M=F.word,B=F.width,E=C[C.length-1];if(E&&(i==null||a||E.width+B+n<Number(i)))E.words.push(M),E.width+=B+n;else{var W={words:[M],width:B};C.push(W)}return C},[])},h=p(r),m=function(L){return L.reduce(function(C,F){return C.width>F.width?C:F})};if(!f)return h;for(var g="…",x=function(L){var C=d.slice(0,L),F=r_({breakAll:u,style:l,children:C+g}).wordsWithComputedWidth,M=p(F),B=M.length>o||m(M).width>Number(i);return[B,M]},y=0,v=d.length-1,b=0,S;y<=v&&b<=d.length-1;){var w=Math.floor((y+v)/2),j=w-1,O=x(j),_=kx(O,2),P=_[0],N=_[1],T=x(w),$=kx(T,1),I=$[0];if(!P&&!I&&(y=w+1),P&&I&&(v=w-1),!P&&I){S=N;break}b++}return S||h},$x=function(t){var r=Q(t)?[]:t.toString().split(t_);return[{words:r}]},vF=function(t){var r=t.width,n=t.scaleToFit,i=t.children,a=t.style,o=t.breakAll,s=t.maxLines;if((r||n)&&!sn.isSsr){var l,u,f=r_({breakAll:o,children:i,style:a});if(f){var d=f.wordsWithComputedWidth,p=f.spaceWidth;l=d,u=p}else return $x(i);return mF({breakAll:o,children:i,maxLines:s,style:a},l,u,r,n)}return $x(i)},Ex="#808080",Ai=function(t){var r=t.x,n=r===void 0?0:r,i=t.y,a=i===void 0?0:i,o=t.lineHeight,s=o===void 0?"1em":o,l=t.capHeight,u=l===void 0?"0.71em":l,f=t.scaleToFit,d=f===void 0?!1:f,p=t.textAnchor,h=p===void 0?"start":p,m=t.verticalAnchor,g=m===void 0?"end":m,x=t.fill,y=x===void 0?Ex:x,v=Ax(t,lF),b=A.useMemo(function(){return vF({breakAll:v.breakAll,children:v.children,maxLines:v.maxLines,scaleToFit:d,style:v.style,width:v.width})},[v.breakAll,v.children,v.maxLines,d,v.style,v.width]),S=v.dx,w=v.dy,j=v.angle,O=v.className,_=v.breakAll,P=Ax(v,uF);if(!Ye(n)||!Ye(a))return null;var N=n+(K(S)?S:0),T=a+(K(w)?w:0),$;switch(g){case"start":$=Kd("calc(".concat(u,")"));break;case"middle":$=Kd("calc(".concat((b.length-1)/2," * -").concat(s," + (").concat(u," / 2))"));break;default:$=Kd("calc(".concat(b.length-1," * -").concat(s,")"));break}var I=[];if(d){var D=b[0].width,L=v.width;I.push("scale(".concat((K(L)?L/D:1)/D,")"))}return j&&I.push("rotate(".concat(j,", ").concat(N,", ").concat(T,")")),I.length&&(P.transform=I.join(" ")),k.createElement("text",Ch({},X(P,!0),{x:N,y:T,className:ee("recharts-text",O),textAnchor:h,fill:y.includes("url")?Ex:y}),b.map(function(C,F){var M=C.words.join(_?"":" ");return k.createElement("tspan",{x:N,dy:F===0?$:s,key:"".concat(M,"-").concat(F)},M)}))};function In(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function yF(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function oy(e){let t,r,n;e.length!==2?(t=In,r=(s,l)=>In(e(s),l),n=(s,l)=>e(s)-l):(t=e===In||e===yF?e:gF,r=e,n=e);function i(s,l,u=0,f=s.length){if(u<f){if(t(l,l)!==0)return f;do{const d=u+f>>>1;r(s[d],l)<0?u=d+1:f=d}while(u<f)}return u}function a(s,l,u=0,f=s.length){if(u<f){if(t(l,l)!==0)return f;do{const d=u+f>>>1;r(s[d],l)<=0?u=d+1:f=d}while(u<f)}return u}function o(s,l,u=0,f=s.length){const d=i(s,l,u,f-1);return d>u&&n(s[d-1],l)>-n(s[d],l)?d-1:d}return{left:i,center:o,right:a}}function gF(){return 0}function n_(e){return e===null?NaN:+e}function*xF(e,t){for(let r of e)r!=null&&(r=+r)>=r&&(yield r)}const bF=oy(In),ml=bF.right;oy(n_).center;class Tx extends Map{constructor(t,r=SF){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(const[n,i]of t)this.set(n,i)}get(t){return super.get(Cx(this,t))}has(t){return super.has(Cx(this,t))}set(t,r){return super.set(wF(this,t),r)}delete(t){return super.delete(jF(this,t))}}function Cx({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):r}function wF({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function jF({_intern:e,_key:t},r){const n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function SF(e){return e!==null&&typeof e=="object"?e.valueOf():e}function OF(e=In){if(e===In)return i_;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{const n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function i_(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:e>t?1:0)}const _F=Math.sqrt(50),PF=Math.sqrt(10),AF=Math.sqrt(2);function rc(e,t,r){const n=(t-e)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),o=a>=_F?10:a>=PF?5:a>=AF?2:1;let s,l,u;return i<0?(u=Math.pow(10,-i)/o,s=Math.round(e*u),l=Math.round(t*u),s/u<e&&++s,l/u>t&&--l,u=-u):(u=Math.pow(10,i)*o,s=Math.round(e/u),l=Math.round(t/u),s*u<e&&++s,l*u>t&&--l),l<s&&.5<=r&&r<2?rc(e,t,r*2):[s,l,u]}function Mh(e,t,r){if(t=+t,e=+e,r=+r,!(r>0))return[];if(e===t)return[e];const n=t<e,[i,a,o]=n?rc(t,e,r):rc(e,t,r);if(!(a>=i))return[];const s=a-i+1,l=new Array(s);if(n)if(o<0)for(let u=0;u<s;++u)l[u]=(a-u)/-o;else for(let u=0;u<s;++u)l[u]=(a-u)*o;else if(o<0)for(let u=0;u<s;++u)l[u]=(i+u)/-o;else for(let u=0;u<s;++u)l[u]=(i+u)*o;return l}function Ih(e,t,r){return t=+t,e=+e,r=+r,rc(e,t,r)[2]}function Lh(e,t,r){t=+t,e=+e,r=+r;const n=t<e,i=n?Ih(t,e,r):Ih(e,t,r);return(n?-1:1)*(i<0?1/-i:i)}function Mx(e,t){let r;for(const n of e)n!=null&&(r<n||r===void 0&&n>=n)&&(r=n);return r}function Ix(e,t){let r;for(const n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);return r}function a_(e,t,r=0,n=1/0,i){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(i=i===void 0?i_:OF(i);n>r;){if(n-r>600){const l=n-r+1,u=t-r+1,f=Math.log(l),d=.5*Math.exp(2*f/3),p=.5*Math.sqrt(f*d*(l-d)/l)*(u-l/2<0?-1:1),h=Math.max(r,Math.floor(t-u*d/l+p)),m=Math.min(n,Math.floor(t+(l-u)*d/l+p));a_(e,t,h,m,i)}const a=e[t];let o=r,s=n;for(ko(e,r,t),i(e[n],a)>0&&ko(e,r,n);o<s;){for(ko(e,o,s),++o,--s;i(e[o],a)<0;)++o;for(;i(e[s],a)>0;)--s}i(e[r],a)===0?ko(e,r,s):(++s,ko(e,s,n)),s<=t&&(r=s+1),t<=s&&(n=s-1)}return e}function ko(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function kF(e,t,r){if(e=Float64Array.from(xF(e)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return Ix(e);if(t>=1)return Mx(e);var n,i=(n-1)*t,a=Math.floor(i),o=Mx(a_(e,a).subarray(0,a+1)),s=Ix(e.subarray(a+1));return o+(s-o)*(i-a)}}function NF(e,t,r=n_){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,i=(n-1)*t,a=Math.floor(i),o=+r(e[a],a,e),s=+r(e[a+1],a+1,e);return o+(s-o)*(i-a)}}function $F(e,t,r){e=+e,t=+t,r=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((t-e)/r))|0,a=new Array(i);++n<i;)a[n]=e+n*r;return a}function lr(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function ln(e,t){switch(arguments.length){case 0:break;case 1:{typeof e=="function"?this.interpolator(e):this.range(e);break}default:{this.domain(e),typeof t=="function"?this.interpolator(t):this.range(t);break}}return this}const Dh=Symbol("implicit");function sy(){var e=new Tx,t=[],r=[],n=Dh;function i(a){let o=e.get(a);if(o===void 0){if(n!==Dh)return n;e.set(a,o=t.push(a)-1)}return r[o%r.length]}return i.domain=function(a){if(!arguments.length)return t.slice();t=[],e=new Tx;for(const o of a)e.has(o)||e.set(o,t.push(o)-1);return i},i.range=function(a){return arguments.length?(r=Array.from(a),i):r.slice()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return sy(t,r).unknown(n)},lr.apply(i,arguments),i}function Es(){var e=sy().unknown(void 0),t=e.domain,r=e.range,n=0,i=1,a,o,s=!1,l=0,u=0,f=.5;delete e.unknown;function d(){var p=t().length,h=i<n,m=h?i:n,g=h?n:i;a=(g-m)/Math.max(1,p-l+u*2),s&&(a=Math.floor(a)),m+=(g-m-a*(p-l))*f,o=a*(1-l),s&&(m=Math.round(m),o=Math.round(o));var x=$F(p).map(function(y){return m+a*y});return r(h?x.reverse():x)}return e.domain=function(p){return arguments.length?(t(p),d()):t()},e.range=function(p){return arguments.length?([n,i]=p,n=+n,i=+i,d()):[n,i]},e.rangeRound=function(p){return[n,i]=p,n=+n,i=+i,s=!0,d()},e.bandwidth=function(){return o},e.step=function(){return a},e.round=function(p){return arguments.length?(s=!!p,d()):s},e.padding=function(p){return arguments.length?(l=Math.min(1,u=+p),d()):l},e.paddingInner=function(p){return arguments.length?(l=Math.min(1,p),d()):l},e.paddingOuter=function(p){return arguments.length?(u=+p,d()):u},e.align=function(p){return arguments.length?(f=Math.max(0,Math.min(1,p)),d()):f},e.copy=function(){return Es(t(),[n,i]).round(s).paddingInner(l).paddingOuter(u).align(f)},lr.apply(d(),arguments)}function o_(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return o_(t())},e}function Qo(){return o_(Es.apply(null,arguments).paddingInner(1))}function ly(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function s_(e,t){var r=Object.create(e.prototype);for(var n in t)r[n]=t[n];return r}function vl(){}var Ts=.7,nc=1/Ts,ma="\\s*([+-]?\\d+)\\s*",Cs="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Tr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",EF=/^#([0-9a-f]{3,8})$/,TF=new RegExp(`^rgb\\(${ma},${ma},${ma}\\)$`),CF=new RegExp(`^rgb\\(${Tr},${Tr},${Tr}\\)$`),MF=new RegExp(`^rgba\\(${ma},${ma},${ma},${Cs}\\)$`),IF=new RegExp(`^rgba\\(${Tr},${Tr},${Tr},${Cs}\\)$`),LF=new RegExp(`^hsl\\(${Cs},${Tr},${Tr}\\)$`),DF=new RegExp(`^hsla\\(${Cs},${Tr},${Tr},${Cs}\\)$`),Lx={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};ly(vl,Ms,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Dx,formatHex:Dx,formatHex8:RF,formatHsl:BF,formatRgb:Rx,toString:Rx});function Dx(){return this.rgb().formatHex()}function RF(){return this.rgb().formatHex8()}function BF(){return l_(this).formatHsl()}function Rx(){return this.rgb().formatRgb()}function Ms(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=EF.exec(e))?(r=t[1].length,t=parseInt(t[1],16),r===6?Bx(t):r===3?new kt(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?Gl(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?Gl(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=TF.exec(e))?new kt(t[1],t[2],t[3],1):(t=CF.exec(e))?new kt(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=MF.exec(e))?Gl(t[1],t[2],t[3],t[4]):(t=IF.exec(e))?Gl(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=LF.exec(e))?Wx(t[1],t[2]/100,t[3]/100,1):(t=DF.exec(e))?Wx(t[1],t[2]/100,t[3]/100,t[4]):Lx.hasOwnProperty(e)?Bx(Lx[e]):e==="transparent"?new kt(NaN,NaN,NaN,0):null}function Bx(e){return new kt(e>>16&255,e>>8&255,e&255,1)}function Gl(e,t,r,n){return n<=0&&(e=t=r=NaN),new kt(e,t,r,n)}function FF(e){return e instanceof vl||(e=Ms(e)),e?(e=e.rgb(),new kt(e.r,e.g,e.b,e.opacity)):new kt}function Rh(e,t,r,n){return arguments.length===1?FF(e):new kt(e,t,r,n??1)}function kt(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}ly(kt,Rh,s_(vl,{brighter(e){return e=e==null?nc:Math.pow(nc,e),new kt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Ts:Math.pow(Ts,e),new kt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new kt(gi(this.r),gi(this.g),gi(this.b),ic(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Fx,formatHex:Fx,formatHex8:zF,formatRgb:zx,toString:zx}));function Fx(){return`#${di(this.r)}${di(this.g)}${di(this.b)}`}function zF(){return`#${di(this.r)}${di(this.g)}${di(this.b)}${di((isNaN(this.opacity)?1:this.opacity)*255)}`}function zx(){const e=ic(this.opacity);return`${e===1?"rgb(":"rgba("}${gi(this.r)}, ${gi(this.g)}, ${gi(this.b)}${e===1?")":`, ${e})`}`}function ic(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function gi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function di(e){return e=gi(e),(e<16?"0":"")+e.toString(16)}function Wx(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new vr(e,t,r,n)}function l_(e){if(e instanceof vr)return new vr(e.h,e.s,e.l,e.opacity);if(e instanceof vl||(e=Ms(e)),!e)return new vr;if(e instanceof vr)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,i=Math.min(t,r,n),a=Math.max(t,r,n),o=NaN,s=a-i,l=(a+i)/2;return s?(t===a?o=(r-n)/s+(r<n)*6:r===a?o=(n-t)/s+2:o=(t-r)/s+4,s/=l<.5?a+i:2-a-i,o*=60):s=l>0&&l<1?0:o,new vr(o,s,l,e.opacity)}function WF(e,t,r,n){return arguments.length===1?l_(e):new vr(e,t,r,n??1)}function vr(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}ly(vr,WF,s_(vl,{brighter(e){return e=e==null?nc:Math.pow(nc,e),new vr(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ts:Math.pow(Ts,e),new vr(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,i=2*r-n;return new kt(Hd(e>=240?e-240:e+120,i,n),Hd(e,i,n),Hd(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new vr(Ux(this.h),ql(this.s),ql(this.l),ic(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=ic(this.opacity);return`${e===1?"hsl(":"hsla("}${Ux(this.h)}, ${ql(this.s)*100}%, ${ql(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Ux(e){return e=(e||0)%360,e<0?e+360:e}function ql(e){return Math.max(0,Math.min(1,e||0))}function Hd(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}const uy=e=>()=>e;function UF(e,t){return function(r){return e+r*t}}function KF(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function HF(e){return(e=+e)==1?u_:function(t,r){return r-t?KF(t,r,e):uy(isNaN(t)?r:t)}}function u_(e,t){var r=t-e;return r?UF(e,r):uy(isNaN(e)?t:e)}const Kx=function e(t){var r=HF(t);function n(i,a){var o=r((i=Rh(i)).r,(a=Rh(a)).r),s=r(i.g,a.g),l=r(i.b,a.b),u=u_(i.opacity,a.opacity);return function(f){return i.r=o(f),i.g=s(f),i.b=l(f),i.opacity=u(f),i+""}}return n.gamma=e,n}(1);function VF(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,n=t.slice(),i;return function(a){for(i=0;i<r;++i)n[i]=e[i]*(1-a)+t[i]*a;return n}}function GF(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function qF(e,t){var r=t?t.length:0,n=e?Math.min(r,e.length):0,i=new Array(n),a=new Array(r),o;for(o=0;o<n;++o)i[o]=po(e[o],t[o]);for(;o<r;++o)a[o]=t[o];return function(s){for(o=0;o<n;++o)a[o]=i[o](s);return a}}function XF(e,t){var r=new Date;return e=+e,t=+t,function(n){return r.setTime(e*(1-n)+t*n),r}}function ac(e,t){return e=+e,t=+t,function(r){return e*(1-r)+t*r}}function YF(e,t){var r={},n={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?r[i]=po(e[i],t[i]):n[i]=t[i];return function(a){for(i in r)n[i]=r[i](a);return n}}var Bh=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Vd=new RegExp(Bh.source,"g");function QF(e){return function(){return e}}function ZF(e){return function(t){return e(t)+""}}function JF(e,t){var r=Bh.lastIndex=Vd.lastIndex=0,n,i,a,o=-1,s=[],l=[];for(e=e+"",t=t+"";(n=Bh.exec(e))&&(i=Vd.exec(t));)(a=i.index)>r&&(a=t.slice(r,a),s[o]?s[o]+=a:s[++o]=a),(n=n[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,l.push({i:o,x:ac(n,i)})),r=Vd.lastIndex;return r<t.length&&(a=t.slice(r),s[o]?s[o]+=a:s[++o]=a),s.length<2?l[0]?ZF(l[0].x):QF(t):(t=l.length,function(u){for(var f=0,d;f<t;++f)s[(d=l[f]).i]=d.x(u);return s.join("")})}function po(e,t){var r=typeof t,n;return t==null||r==="boolean"?uy(t):(r==="number"?ac:r==="string"?(n=Ms(t))?(t=n,Kx):JF:t instanceof Ms?Kx:t instanceof Date?XF:GF(t)?VF:Array.isArray(t)?qF:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?YF:ac)(e,t)}function cy(e,t){return e=+e,t=+t,function(r){return Math.round(e*(1-r)+t*r)}}function ez(e,t){t===void 0&&(t=e,e=po);for(var r=0,n=t.length-1,i=t[0],a=new Array(n<0?0:n);r<n;)a[r]=e(i,i=t[++r]);return function(o){var s=Math.max(0,Math.min(n-1,Math.floor(o*=n)));return a[s](o-s)}}function tz(e){return function(){return e}}function oc(e){return+e}var Hx=[0,1];function xt(e){return e}function Fh(e,t){return(t-=e=+e)?function(r){return(r-e)/t}:tz(isNaN(t)?NaN:.5)}function rz(e,t){var r;return e>t&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function nz(e,t,r){var n=e[0],i=e[1],a=t[0],o=t[1];return i<n?(n=Fh(i,n),a=r(o,a)):(n=Fh(n,i),a=r(a,o)),function(s){return a(n(s))}}function iz(e,t,r){var n=Math.min(e.length,t.length)-1,i=new Array(n),a=new Array(n),o=-1;for(e[n]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<n;)i[o]=Fh(e[o],e[o+1]),a[o]=r(t[o],t[o+1]);return function(s){var l=ml(e,s,1,n)-1;return a[l](i[l](s))}}function yl(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function If(){var e=Hx,t=Hx,r=po,n,i,a,o=xt,s,l,u;function f(){var p=Math.min(e.length,t.length);return o!==xt&&(o=rz(e[0],e[p-1])),s=p>2?iz:nz,l=u=null,d}function d(p){return p==null||isNaN(p=+p)?a:(l||(l=s(e.map(n),t,r)))(n(o(p)))}return d.invert=function(p){return o(i((u||(u=s(t,e.map(n),ac)))(p)))},d.domain=function(p){return arguments.length?(e=Array.from(p,oc),f()):e.slice()},d.range=function(p){return arguments.length?(t=Array.from(p),f()):t.slice()},d.rangeRound=function(p){return t=Array.from(p),r=cy,f()},d.clamp=function(p){return arguments.length?(o=p?!0:xt,f()):o!==xt},d.interpolate=function(p){return arguments.length?(r=p,f()):r},d.unknown=function(p){return arguments.length?(a=p,d):a},function(p,h){return n=p,i=h,f()}}function fy(){return If()(xt,xt)}function az(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function sc(e,t){if(!isFinite(e)||e===0)return null;var r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function Na(e){return e=sc(Math.abs(e)),e?e[1]:NaN}function oz(e,t){return function(r,n){for(var i=r.length,a=[],o=0,s=e[0],l=0;i>0&&s>0&&(l+s+1>n&&(s=Math.max(1,n-l)),a.push(r.substring(i-=s,i+s)),!((l+=s+1)>n));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function sz(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var lz=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Is(e){if(!(t=lz.exec(e)))throw new Error("invalid format: "+e);var t;return new dy({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Is.prototype=dy.prototype;function dy(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}dy.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function uz(e){e:for(var t=e.length,r=1,n=-1,i;r<t;++r)switch(e[r]){case".":n=i=r;break;case"0":n===0&&(n=r),i=r;break;default:if(!+e[r])break e;n>0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(i+1):e}var lc;function cz(e,t){var r=sc(e,t);if(!r)return lc=void 0,e.toPrecision(t);var n=r[0],i=r[1],a=i-(lc=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=n.length;return a===o?n:a>o?n+new Array(a-o+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+sc(e,Math.max(0,t+a-1))[0]}function Vx(e,t){var r=sc(e,t);if(!r)return e+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}const Gx={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:az,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Vx(e*100,t),r:Vx,s:cz,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function qx(e){return e}var Xx=Array.prototype.map,Yx=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function fz(e){var t=e.grouping===void 0||e.thousands===void 0?qx:oz(Xx.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?qx:sz(Xx.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function u(d,p){d=Is(d);var h=d.fill,m=d.align,g=d.sign,x=d.symbol,y=d.zero,v=d.width,b=d.comma,S=d.precision,w=d.trim,j=d.type;j==="n"?(b=!0,j="g"):Gx[j]||(S===void 0&&(S=12),w=!0,j="g"),(y||h==="0"&&m==="=")&&(y=!0,h="0",m="=");var O=(p&&p.prefix!==void 0?p.prefix:"")+(x==="$"?r:x==="#"&&/[boxX]/.test(j)?"0"+j.toLowerCase():""),_=(x==="$"?n:/[%p]/.test(j)?o:"")+(p&&p.suffix!==void 0?p.suffix:""),P=Gx[j],N=/[defgprs%]/.test(j);S=S===void 0?6:/[gprs]/.test(j)?Math.max(1,Math.min(21,S)):Math.max(0,Math.min(20,S));function T($){var I=O,D=_,L,C,F;if(j==="c")D=P($)+D,$="";else{$=+$;var M=$<0||1/$<0;if($=isNaN($)?l:P(Math.abs($),S),w&&($=uz($)),M&&+$==0&&g!=="+"&&(M=!1),I=(M?g==="("?g:s:g==="-"||g==="("?"":g)+I,D=(j==="s"&&!isNaN($)&&lc!==void 0?Yx[8+lc/3]:"")+D+(M&&g==="("?")":""),N){for(L=-1,C=$.length;++L<C;)if(F=$.charCodeAt(L),48>F||F>57){D=(F===46?i+$.slice(L+1):$.slice(L))+D,$=$.slice(0,L);break}}}b&&!y&&($=t($,1/0));var B=I.length+$.length+D.length,E=B<v?new Array(v-B+1).join(h):"";switch(b&&y&&($=t(E+$,E.length?v-D.length:1/0),E=""),m){case"<":$=I+$+D+E;break;case"=":$=I+E+$+D;break;case"^":$=E.slice(0,B=E.length>>1)+I+$+D+E.slice(B);break;default:$=E+I+$+D;break}return a($)}return T.toString=function(){return d+""},T}function f(d,p){var h=Math.max(-8,Math.min(8,Math.floor(Na(p)/3)))*3,m=Math.pow(10,-h),g=u((d=Is(d),d.type="f",d),{suffix:Yx[8+h/3]});return function(x){return g(m*x)}}return{format:u,formatPrefix:f}}var Xl,py,c_;dz({thousands:",",grouping:[3],currency:["$",""]});function dz(e){return Xl=fz(e),py=Xl.format,c_=Xl.formatPrefix,Xl}function pz(e){return Math.max(0,-Na(Math.abs(e)))}function hz(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Na(t)/3)))*3-Na(Math.abs(e)))}function mz(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Na(t)-Na(e))+1}function f_(e,t,r,n){var i=Lh(e,t,r),a;switch(n=Is(n??",f"),n.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(a=hz(i,o))&&(n.precision=a),c_(n,o)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=mz(i,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=pz(i))&&(n.precision=a-(n.type==="%")*2);break}}return py(n)}function qn(e){var t=e.domain;return e.ticks=function(r){var n=t();return Mh(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var i=t();return f_(i[0],i[i.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),i=0,a=n.length-1,o=n[i],s=n[a],l,u,f=10;for(s<o&&(u=o,o=s,s=u,u=i,i=a,a=u);f-- >0;){if(u=Ih(o,s,r),u===l)return n[i]=o,n[a]=s,t(n);if(u>0)o=Math.floor(o/u)*u,s=Math.ceil(s/u)*u;else if(u<0)o=Math.ceil(o*u)/u,s=Math.floor(s*u)/u;else break;l=u}return e},e}function uc(){var e=fy();return e.copy=function(){return yl(e,uc())},lr.apply(e,arguments),qn(e)}function d_(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,oc),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return d_(e).unknown(t)},e=arguments.length?Array.from(e,oc):[0,1],qn(r)}function p_(e,t){e=e.slice();var r=0,n=e.length-1,i=e[r],a=e[n],o;return a<i&&(o=r,r=n,n=o,o=i,i=a,a=o),e[r]=t.floor(i),e[n]=t.ceil(a),e}function Qx(e){return Math.log(e)}function Zx(e){return Math.exp(e)}function vz(e){return-Math.log(-e)}function yz(e){return-Math.exp(-e)}function gz(e){return isFinite(e)?+("1e"+e):e<0?0:e}function xz(e){return e===10?gz:e===Math.E?Math.exp:t=>Math.pow(e,t)}function bz(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function Jx(e){return(t,r)=>-e(-t,r)}function hy(e){const t=e(Qx,Zx),r=t.domain;let n=10,i,a;function o(){return i=bz(n),a=xz(n),r()[0]<0?(i=Jx(i),a=Jx(a),e(vz,yz)):e(Qx,Zx),t}return t.base=function(s){return arguments.length?(n=+s,o()):n},t.domain=function(s){return arguments.length?(r(s),o()):r()},t.ticks=s=>{const l=r();let u=l[0],f=l[l.length-1];const d=f<u;d&&([u,f]=[f,u]);let p=i(u),h=i(f),m,g;const x=s==null?10:+s;let y=[];if(!(n%1)&&h-p<x){if(p=Math.floor(p),h=Math.ceil(h),u>0){for(;p<=h;++p)for(m=1;m<n;++m)if(g=p<0?m/a(-p):m*a(p),!(g<u)){if(g>f)break;y.push(g)}}else for(;p<=h;++p)for(m=n-1;m>=1;--m)if(g=p>0?m/a(-p):m*a(p),!(g<u)){if(g>f)break;y.push(g)}y.length*2<x&&(y=Mh(u,f,x))}else y=Mh(p,h,Math.min(h-p,x)).map(a);return d?y.reverse():y},t.tickFormat=(s,l)=>{if(s==null&&(s=10),l==null&&(l=n===10?"s":","),typeof l!="function"&&(!(n%1)&&(l=Is(l)).precision==null&&(l.trim=!0),l=py(l)),s===1/0)return l;const u=Math.max(1,n*s/t.ticks().length);return f=>{let d=f/a(Math.round(i(f)));return d*n<n-.5&&(d*=n),d<=u?l(f):""}},t.nice=()=>r(p_(r(),{floor:s=>a(Math.floor(i(s))),ceil:s=>a(Math.ceil(i(s)))})),t}function h_(){const e=hy(If()).domain([1,10]);return e.copy=()=>yl(e,h_()).base(e.base()),lr.apply(e,arguments),e}function eb(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function tb(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function my(e){var t=1,r=e(eb(t),tb(t));return r.constant=function(n){return arguments.length?e(eb(t=+n),tb(t)):t},qn(r)}function m_(){var e=my(If());return e.copy=function(){return yl(e,m_()).constant(e.constant())},lr.apply(e,arguments)}function rb(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function wz(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function jz(e){return e<0?-e*e:e*e}function vy(e){var t=e(xt,xt),r=1;function n(){return r===1?e(xt,xt):r===.5?e(wz,jz):e(rb(r),rb(1/r))}return t.exponent=function(i){return arguments.length?(r=+i,n()):r},qn(t)}function yy(){var e=vy(If());return e.copy=function(){return yl(e,yy()).exponent(e.exponent())},lr.apply(e,arguments),e}function Sz(){return yy.apply(null,arguments).exponent(.5)}function nb(e){return Math.sign(e)*e*e}function Oz(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function v_(){var e=fy(),t=[0,1],r=!1,n;function i(a){var o=Oz(e(a));return isNaN(o)?n:r?Math.round(o):o}return i.invert=function(a){return e.invert(nb(a))},i.domain=function(a){return arguments.length?(e.domain(a),i):e.domain()},i.range=function(a){return arguments.length?(e.range((t=Array.from(a,oc)).map(nb)),i):t.slice()},i.rangeRound=function(a){return i.range(a).round(!0)},i.round=function(a){return arguments.length?(r=!!a,i):r},i.clamp=function(a){return arguments.length?(e.clamp(a),i):e.clamp()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return v_(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},lr.apply(i,arguments),qn(i)}function y_(){var e=[],t=[],r=[],n;function i(){var o=0,s=Math.max(1,t.length);for(r=new Array(s-1);++o<s;)r[o-1]=NF(e,o/s);return a}function a(o){return o==null||isNaN(o=+o)?n:t[ml(r,o)]}return a.invertExtent=function(o){var s=t.indexOf(o);return s<0?[NaN,NaN]:[s>0?r[s-1]:e[0],s<r.length?r[s]:e[e.length-1]]},a.domain=function(o){if(!arguments.length)return e.slice();e=[];for(let s of o)s!=null&&!isNaN(s=+s)&&e.push(s);return e.sort(In),i()},a.range=function(o){return arguments.length?(t=Array.from(o),i()):t.slice()},a.unknown=function(o){return arguments.length?(n=o,a):n},a.quantiles=function(){return r.slice()},a.copy=function(){return y_().domain(e).range(t).unknown(n)},lr.apply(a,arguments)}function g_(){var e=0,t=1,r=1,n=[.5],i=[0,1],a;function o(l){return l!=null&&l<=l?i[ml(n,l,0,r)]:a}function s(){var l=-1;for(n=new Array(r);++l<r;)n[l]=((l+1)*t-(l-r)*e)/(r+1);return o}return o.domain=function(l){return arguments.length?([e,t]=l,e=+e,t=+t,s()):[e,t]},o.range=function(l){return arguments.length?(r=(i=Array.from(l)).length-1,s()):i.slice()},o.invertExtent=function(l){var u=i.indexOf(l);return u<0?[NaN,NaN]:u<1?[e,n[0]]:u>=r?[n[r-1],t]:[n[u-1],n[u]]},o.unknown=function(l){return arguments.length&&(a=l),o},o.thresholds=function(){return n.slice()},o.copy=function(){return g_().domain([e,t]).range(i).unknown(a)},lr.apply(qn(o),arguments)}function x_(){var e=[.5],t=[0,1],r,n=1;function i(a){return a!=null&&a<=a?t[ml(e,a,0,n)]:r}return i.domain=function(a){return arguments.length?(e=Array.from(a),n=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(a){return arguments.length?(t=Array.from(a),n=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(a){var o=t.indexOf(a);return[e[o-1],e[o]]},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return x_().domain(e).range(t).unknown(r)},lr.apply(i,arguments)}const Gd=new Date,qd=new Date;function Qe(e,t,r,n){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=a=>(e(a=new Date(+a)),a),i.ceil=a=>(e(a=new Date(a-1)),t(a,1),e(a),a),i.round=a=>{const o=i(a),s=i.ceil(a);return a-o<s-a?o:s},i.offset=(a,o)=>(t(a=new Date(+a),o==null?1:Math.floor(o)),a),i.range=(a,o,s)=>{const l=[];if(a=i.ceil(a),s=s==null?1:Math.floor(s),!(a<o)||!(s>0))return l;let u;do l.push(u=new Date(+a)),t(a,s),e(a);while(u<a&&a<o);return l},i.filter=a=>Qe(o=>{if(o>=o)for(;e(o),!a(o);)o.setTime(o-1)},(o,s)=>{if(o>=o)if(s<0)for(;++s<=0;)for(;t(o,-1),!a(o););else for(;--s>=0;)for(;t(o,1),!a(o););}),r&&(i.count=(a,o)=>(Gd.setTime(+a),qd.setTime(+o),e(Gd),e(qd),Math.floor(r(Gd,qd))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?o=>n(o)%a===0:o=>i.count(0,o)%a===0):i)),i}const cc=Qe(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);cc.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Qe(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):cc);cc.range;const Ur=1e3,tr=Ur*60,Kr=tr*60,en=Kr*24,gy=en*7,ib=en*30,Xd=en*365,pi=Qe(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Ur)},(e,t)=>(t-e)/Ur,e=>e.getUTCSeconds());pi.range;const xy=Qe(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Ur)},(e,t)=>{e.setTime(+e+t*tr)},(e,t)=>(t-e)/tr,e=>e.getMinutes());xy.range;const by=Qe(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*tr)},(e,t)=>(t-e)/tr,e=>e.getUTCMinutes());by.range;const wy=Qe(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Ur-e.getMinutes()*tr)},(e,t)=>{e.setTime(+e+t*Kr)},(e,t)=>(t-e)/Kr,e=>e.getHours());wy.range;const jy=Qe(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Kr)},(e,t)=>(t-e)/Kr,e=>e.getUTCHours());jy.range;const gl=Qe(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*tr)/en,e=>e.getDate()-1);gl.range;const Lf=Qe(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/en,e=>e.getUTCDate()-1);Lf.range;const b_=Qe(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/en,e=>Math.floor(e/en));b_.range;function Ii(e){return Qe(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*tr)/gy)}const Df=Ii(0),fc=Ii(1),_z=Ii(2),Pz=Ii(3),$a=Ii(4),Az=Ii(5),kz=Ii(6);Df.range;fc.range;_z.range;Pz.range;$a.range;Az.range;kz.range;function Li(e){return Qe(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/gy)}const Rf=Li(0),dc=Li(1),Nz=Li(2),$z=Li(3),Ea=Li(4),Ez=Li(5),Tz=Li(6);Rf.range;dc.range;Nz.range;$z.range;Ea.range;Ez.range;Tz.range;const Sy=Qe(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());Sy.range;const Oy=Qe(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());Oy.range;const tn=Qe(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());tn.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Qe(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});tn.range;const rn=Qe(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());rn.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Qe(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});rn.range;function w_(e,t,r,n,i,a){const o=[[pi,1,Ur],[pi,5,5*Ur],[pi,15,15*Ur],[pi,30,30*Ur],[a,1,tr],[a,5,5*tr],[a,15,15*tr],[a,30,30*tr],[i,1,Kr],[i,3,3*Kr],[i,6,6*Kr],[i,12,12*Kr],[n,1,en],[n,2,2*en],[r,1,gy],[t,1,ib],[t,3,3*ib],[e,1,Xd]];function s(u,f,d){const p=f<u;p&&([u,f]=[f,u]);const h=d&&typeof d.range=="function"?d:l(u,f,d),m=h?h.range(u,+f+1):[];return p?m.reverse():m}function l(u,f,d){const p=Math.abs(f-u)/d,h=oy(([,,x])=>x).right(o,p);if(h===o.length)return e.every(Lh(u/Xd,f/Xd,d));if(h===0)return cc.every(Math.max(Lh(u,f,d),1));const[m,g]=o[p/o[h-1][2]<o[h][2]/p?h-1:h];return m.every(g)}return[s,l]}const[Cz,Mz]=w_(rn,Oy,Rf,b_,jy,by),[Iz,Lz]=w_(tn,Sy,Df,gl,wy,xy);function Yd(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function Qd(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function No(e,t,r){return{y:e,m:t,d:r,H:0,M:0,S:0,L:0}}function Dz(e){var t=e.dateTime,r=e.date,n=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,l=e.shortMonths,u=$o(i),f=Eo(i),d=$o(a),p=Eo(a),h=$o(o),m=Eo(o),g=$o(s),x=Eo(s),y=$o(l),v=Eo(l),b={a:F,A:M,b:B,B:E,c:null,d:cb,e:cb,f:o9,g:v9,G:g9,H:n9,I:i9,j:a9,L:j_,m:s9,M:l9,p:W,q:z,Q:pb,s:hb,S:u9,u:c9,U:f9,V:d9,w:p9,W:h9,x:null,X:null,y:m9,Y:y9,Z:x9,"%":db},S={a:Y,A:oe,b:Pe,B:Le,c:null,d:fb,e:fb,f:S9,g:C9,G:I9,H:b9,I:w9,j:j9,L:O_,m:O9,M:_9,p:Vt,q:Ot,Q:pb,s:hb,S:P9,u:A9,U:k9,V:N9,w:$9,W:E9,x:null,X:null,y:T9,Y:M9,Z:L9,"%":db},w={a:N,A:T,b:$,B:I,c:D,d:lb,e:lb,f:Jz,g:sb,G:ob,H:ub,I:ub,j:Xz,L:Zz,m:qz,M:Yz,p:P,q:Gz,Q:t9,s:r9,S:Qz,u:Wz,U:Uz,V:Kz,w:zz,W:Hz,x:L,X:C,y:sb,Y:ob,Z:Vz,"%":e9};b.x=j(r,b),b.X=j(n,b),b.c=j(t,b),S.x=j(r,S),S.X=j(n,S),S.c=j(t,S);function j(V,re){return function(ne){var U=[],Ce=-1,se=0,Ke=V.length,He,_t,cn;for(ne instanceof Date||(ne=new Date(+ne));++Ce<Ke;)V.charCodeAt(Ce)===37&&(U.push(V.slice(se,Ce)),(_t=ab[He=V.charAt(++Ce)])!=null?He=V.charAt(++Ce):_t=He==="e"?" ":"0",(cn=re[He])&&(He=cn(ne,_t)),U.push(He),se=Ce+1);return U.push(V.slice(se,Ce)),U.join("")}}function O(V,re){return function(ne){var U=No(1900,void 0,1),Ce=_(U,V,ne+="",0),se,Ke;if(Ce!=ne.length)return null;if("Q"in U)return new Date(U.Q);if("s"in U)return new Date(U.s*1e3+("L"in U?U.L:0));if(re&&!("Z"in U)&&(U.Z=0),"p"in U&&(U.H=U.H%12+U.p*12),U.m===void 0&&(U.m="q"in U?U.q:0),"V"in U){if(U.V<1||U.V>53)return null;"w"in U||(U.w=1),"Z"in U?(se=Qd(No(U.y,0,1)),Ke=se.getUTCDay(),se=Ke>4||Ke===0?dc.ceil(se):dc(se),se=Lf.offset(se,(U.V-1)*7),U.y=se.getUTCFullYear(),U.m=se.getUTCMonth(),U.d=se.getUTCDate()+(U.w+6)%7):(se=Yd(No(U.y,0,1)),Ke=se.getDay(),se=Ke>4||Ke===0?fc.ceil(se):fc(se),se=gl.offset(se,(U.V-1)*7),U.y=se.getFullYear(),U.m=se.getMonth(),U.d=se.getDate()+(U.w+6)%7)}else("W"in U||"U"in U)&&("w"in U||(U.w="u"in U?U.u%7:"W"in U?1:0),Ke="Z"in U?Qd(No(U.y,0,1)).getUTCDay():Yd(No(U.y,0,1)).getDay(),U.m=0,U.d="W"in U?(U.w+6)%7+U.W*7-(Ke+5)%7:U.w+U.U*7-(Ke+6)%7);return"Z"in U?(U.H+=U.Z/100|0,U.M+=U.Z%100,Qd(U)):Yd(U)}}function _(V,re,ne,U){for(var Ce=0,se=re.length,Ke=ne.length,He,_t;Ce<se;){if(U>=Ke)return-1;if(He=re.charCodeAt(Ce++),He===37){if(He=re.charAt(Ce++),_t=w[He in ab?re.charAt(Ce++):He],!_t||(U=_t(V,ne,U))<0)return-1}else if(He!=ne.charCodeAt(U++))return-1}return U}function P(V,re,ne){var U=u.exec(re.slice(ne));return U?(V.p=f.get(U[0].toLowerCase()),ne+U[0].length):-1}function N(V,re,ne){var U=h.exec(re.slice(ne));return U?(V.w=m.get(U[0].toLowerCase()),ne+U[0].length):-1}function T(V,re,ne){var U=d.exec(re.slice(ne));return U?(V.w=p.get(U[0].toLowerCase()),ne+U[0].length):-1}function $(V,re,ne){var U=y.exec(re.slice(ne));return U?(V.m=v.get(U[0].toLowerCase()),ne+U[0].length):-1}function I(V,re,ne){var U=g.exec(re.slice(ne));return U?(V.m=x.get(U[0].toLowerCase()),ne+U[0].length):-1}function D(V,re,ne){return _(V,t,re,ne)}function L(V,re,ne){return _(V,r,re,ne)}function C(V,re,ne){return _(V,n,re,ne)}function F(V){return o[V.getDay()]}function M(V){return a[V.getDay()]}function B(V){return l[V.getMonth()]}function E(V){return s[V.getMonth()]}function W(V){return i[+(V.getHours()>=12)]}function z(V){return 1+~~(V.getMonth()/3)}function Y(V){return o[V.getUTCDay()]}function oe(V){return a[V.getUTCDay()]}function Pe(V){return l[V.getUTCMonth()]}function Le(V){return s[V.getUTCMonth()]}function Vt(V){return i[+(V.getUTCHours()>=12)]}function Ot(V){return 1+~~(V.getUTCMonth()/3)}return{format:function(V){var re=j(V+="",b);return re.toString=function(){return V},re},parse:function(V){var re=O(V+="",!1);return re.toString=function(){return V},re},utcFormat:function(V){var re=j(V+="",S);return re.toString=function(){return V},re},utcParse:function(V){var re=O(V+="",!0);return re.toString=function(){return V},re}}}var ab={"-":"",_:" ",0:"0"},nt=/^\s*\d+/,Rz=/^%/,Bz=/[\\^$*+?|[\]().{}]/g;function ue(e,t,r){var n=e<0?"-":"",i=(n?-e:e)+"",a=i.length;return n+(a<r?new Array(r-a+1).join(t)+i:i)}function Fz(e){return e.replace(Bz,"\\$&")}function $o(e){return new RegExp("^(?:"+e.map(Fz).join("|")+")","i")}function Eo(e){return new Map(e.map((t,r)=>[t.toLowerCase(),r]))}function zz(e,t,r){var n=nt.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function Wz(e,t,r){var n=nt.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function Uz(e,t,r){var n=nt.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function Kz(e,t,r){var n=nt.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function Hz(e,t,r){var n=nt.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function ob(e,t,r){var n=nt.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function sb(e,t,r){var n=nt.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function Vz(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function Gz(e,t,r){var n=nt.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function qz(e,t,r){var n=nt.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function lb(e,t,r){var n=nt.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function Xz(e,t,r){var n=nt.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function ub(e,t,r){var n=nt.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function Yz(e,t,r){var n=nt.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function Qz(e,t,r){var n=nt.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function Zz(e,t,r){var n=nt.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function Jz(e,t,r){var n=nt.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function e9(e,t,r){var n=Rz.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function t9(e,t,r){var n=nt.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function r9(e,t,r){var n=nt.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function cb(e,t){return ue(e.getDate(),t,2)}function n9(e,t){return ue(e.getHours(),t,2)}function i9(e,t){return ue(e.getHours()%12||12,t,2)}function a9(e,t){return ue(1+gl.count(tn(e),e),t,3)}function j_(e,t){return ue(e.getMilliseconds(),t,3)}function o9(e,t){return j_(e,t)+"000"}function s9(e,t){return ue(e.getMonth()+1,t,2)}function l9(e,t){return ue(e.getMinutes(),t,2)}function u9(e,t){return ue(e.getSeconds(),t,2)}function c9(e){var t=e.getDay();return t===0?7:t}function f9(e,t){return ue(Df.count(tn(e)-1,e),t,2)}function S_(e){var t=e.getDay();return t>=4||t===0?$a(e):$a.ceil(e)}function d9(e,t){return e=S_(e),ue($a.count(tn(e),e)+(tn(e).getDay()===4),t,2)}function p9(e){return e.getDay()}function h9(e,t){return ue(fc.count(tn(e)-1,e),t,2)}function m9(e,t){return ue(e.getFullYear()%100,t,2)}function v9(e,t){return e=S_(e),ue(e.getFullYear()%100,t,2)}function y9(e,t){return ue(e.getFullYear()%1e4,t,4)}function g9(e,t){var r=e.getDay();return e=r>=4||r===0?$a(e):$a.ceil(e),ue(e.getFullYear()%1e4,t,4)}function x9(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+ue(t/60|0,"0",2)+ue(t%60,"0",2)}function fb(e,t){return ue(e.getUTCDate(),t,2)}function b9(e,t){return ue(e.getUTCHours(),t,2)}function w9(e,t){return ue(e.getUTCHours()%12||12,t,2)}function j9(e,t){return ue(1+Lf.count(rn(e),e),t,3)}function O_(e,t){return ue(e.getUTCMilliseconds(),t,3)}function S9(e,t){return O_(e,t)+"000"}function O9(e,t){return ue(e.getUTCMonth()+1,t,2)}function _9(e,t){return ue(e.getUTCMinutes(),t,2)}function P9(e,t){return ue(e.getUTCSeconds(),t,2)}function A9(e){var t=e.getUTCDay();return t===0?7:t}function k9(e,t){return ue(Rf.count(rn(e)-1,e),t,2)}function __(e){var t=e.getUTCDay();return t>=4||t===0?Ea(e):Ea.ceil(e)}function N9(e,t){return e=__(e),ue(Ea.count(rn(e),e)+(rn(e).getUTCDay()===4),t,2)}function $9(e){return e.getUTCDay()}function E9(e,t){return ue(dc.count(rn(e)-1,e),t,2)}function T9(e,t){return ue(e.getUTCFullYear()%100,t,2)}function C9(e,t){return e=__(e),ue(e.getUTCFullYear()%100,t,2)}function M9(e,t){return ue(e.getUTCFullYear()%1e4,t,4)}function I9(e,t){var r=e.getUTCDay();return e=r>=4||r===0?Ea(e):Ea.ceil(e),ue(e.getUTCFullYear()%1e4,t,4)}function L9(){return"+0000"}function db(){return"%"}function pb(e){return+e}function hb(e){return Math.floor(+e/1e3)}var zi,P_,A_;D9({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function D9(e){return zi=Dz(e),P_=zi.format,zi.parse,A_=zi.utcFormat,zi.utcParse,zi}function R9(e){return new Date(e)}function B9(e){return e instanceof Date?+e:+new Date(+e)}function _y(e,t,r,n,i,a,o,s,l,u){var f=fy(),d=f.invert,p=f.domain,h=u(".%L"),m=u(":%S"),g=u("%I:%M"),x=u("%I %p"),y=u("%a %d"),v=u("%b %d"),b=u("%B"),S=u("%Y");function w(j){return(l(j)<j?h:s(j)<j?m:o(j)<j?g:a(j)<j?x:n(j)<j?i(j)<j?y:v:r(j)<j?b:S)(j)}return f.invert=function(j){return new Date(d(j))},f.domain=function(j){return arguments.length?p(Array.from(j,B9)):p().map(R9)},f.ticks=function(j){var O=p();return e(O[0],O[O.length-1],j??10)},f.tickFormat=function(j,O){return O==null?w:u(O)},f.nice=function(j){var O=p();return(!j||typeof j.range!="function")&&(j=t(O[0],O[O.length-1],j??10)),j?p(p_(O,j)):f},f.copy=function(){return yl(f,_y(e,t,r,n,i,a,o,s,l,u))},f}function F9(){return lr.apply(_y(Iz,Lz,tn,Sy,Df,gl,wy,xy,pi,P_).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function z9(){return lr.apply(_y(Cz,Mz,rn,Oy,Rf,Lf,jy,by,pi,A_).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Bf(){var e=0,t=1,r,n,i,a,o=xt,s=!1,l;function u(d){return d==null||isNaN(d=+d)?l:o(i===0?.5:(d=(a(d)-r)*i,s?Math.max(0,Math.min(1,d)):d))}u.domain=function(d){return arguments.length?([e,t]=d,r=a(e=+e),n=a(t=+t),i=r===n?0:1/(n-r),u):[e,t]},u.clamp=function(d){return arguments.length?(s=!!d,u):s},u.interpolator=function(d){return arguments.length?(o=d,u):o};function f(d){return function(p){var h,m;return arguments.length?([h,m]=p,o=d(h,m),u):[o(0),o(1)]}}return u.range=f(po),u.rangeRound=f(cy),u.unknown=function(d){return arguments.length?(l=d,u):l},function(d){return a=d,r=d(e),n=d(t),i=r===n?0:1/(n-r),u}}function Xn(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function k_(){var e=qn(Bf()(xt));return e.copy=function(){return Xn(e,k_())},ln.apply(e,arguments)}function N_(){var e=hy(Bf()).domain([1,10]);return e.copy=function(){return Xn(e,N_()).base(e.base())},ln.apply(e,arguments)}function $_(){var e=my(Bf());return e.copy=function(){return Xn(e,$_()).constant(e.constant())},ln.apply(e,arguments)}function Py(){var e=vy(Bf());return e.copy=function(){return Xn(e,Py()).exponent(e.exponent())},ln.apply(e,arguments)}function W9(){return Py.apply(null,arguments).exponent(.5)}function E_(){var e=[],t=xt;function r(n){if(n!=null&&!isNaN(n=+n))return t((ml(e,n,1)-1)/(e.length-1))}return r.domain=function(n){if(!arguments.length)return e.slice();e=[];for(let i of n)i!=null&&!isNaN(i=+i)&&e.push(i);return e.sort(In),r},r.interpolator=function(n){return arguments.length?(t=n,r):t},r.range=function(){return e.map((n,i)=>t(i/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(i,a)=>kF(e,a/n))},r.copy=function(){return E_(t).domain(e)},ln.apply(r,arguments)}function Ff(){var e=0,t=.5,r=1,n=1,i,a,o,s,l,u=xt,f,d=!1,p;function h(g){return isNaN(g=+g)?p:(g=.5+((g=+f(g))-a)*(n*g<n*a?s:l),u(d?Math.max(0,Math.min(1,g)):g))}h.domain=function(g){return arguments.length?([e,t,r]=g,i=f(e=+e),a=f(t=+t),o=f(r=+r),s=i===a?0:.5/(a-i),l=a===o?0:.5/(o-a),n=a<i?-1:1,h):[e,t,r]},h.clamp=function(g){return arguments.length?(d=!!g,h):d},h.interpolator=function(g){return arguments.length?(u=g,h):u};function m(g){return function(x){var y,v,b;return arguments.length?([y,v,b]=x,u=ez(g,[y,v,b]),h):[u(0),u(.5),u(1)]}}return h.range=m(po),h.rangeRound=m(cy),h.unknown=function(g){return arguments.length?(p=g,h):p},function(g){return f=g,i=g(e),a=g(t),o=g(r),s=i===a?0:.5/(a-i),l=a===o?0:.5/(o-a),n=a<i?-1:1,h}}function T_(){var e=qn(Ff()(xt));return e.copy=function(){return Xn(e,T_())},ln.apply(e,arguments)}function C_(){var e=hy(Ff()).domain([.1,1,10]);return e.copy=function(){return Xn(e,C_()).base(e.base())},ln.apply(e,arguments)}function M_(){var e=my(Ff());return e.copy=function(){return Xn(e,M_()).constant(e.constant())},ln.apply(e,arguments)}function Ay(){var e=vy(Ff());return e.copy=function(){return Xn(e,Ay()).exponent(e.exponent())},ln.apply(e,arguments)}function U9(){return Ay.apply(null,arguments).exponent(.5)}const mb=Object.freeze(Object.defineProperty({__proto__:null,scaleBand:Es,scaleDiverging:T_,scaleDivergingLog:C_,scaleDivergingPow:Ay,scaleDivergingSqrt:U9,scaleDivergingSymlog:M_,scaleIdentity:d_,scaleImplicit:Dh,scaleLinear:uc,scaleLog:h_,scaleOrdinal:sy,scalePoint:Qo,scalePow:yy,scaleQuantile:y_,scaleQuantize:g_,scaleRadial:v_,scaleSequential:k_,scaleSequentialLog:N_,scaleSequentialPow:Py,scaleSequentialQuantile:E_,scaleSequentialSqrt:W9,scaleSequentialSymlog:$_,scaleSqrt:Sz,scaleSymlog:m_,scaleThreshold:x_,scaleTime:F9,scaleUtc:z9,tickFormat:f_},Symbol.toStringTag,{value:"Module"}));var K9=no;function H9(e,t,r){for(var n=-1,i=e.length;++n<i;){var a=e[n],o=t(a);if(o!=null&&(s===void 0?o===o&&!K9(o):r(o,s)))var s=o,l=a}return l}var zf=H9;function V9(e,t){return e>t}var I_=V9,G9=zf,q9=I_,X9=fo;function Y9(e){return e&&e.length?G9(e,X9,q9):void 0}var Q9=Y9;const jn=de(Q9);function Z9(e,t){return e<t}var L_=Z9,J9=zf,e7=L_,t7=fo;function r7(e){return e&&e.length?J9(e,t7,e7):void 0}var n7=r7;const Wf=de(n7);var i7=Wv,a7=Lr,o7=HO,s7=Ct;function l7(e,t){var r=s7(e)?i7:o7;return r(e,a7(t))}var u7=l7,c7=UO,f7=u7;function d7(e,t){return c7(f7(e,t),1)}var p7=d7;const h7=de(p7);var m7=ry;function v7(e,t){return m7(e,t)}var y7=v7;const Fn=de(y7);var ho=1e9,g7={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},Ny,ke=!0,ar="[DecimalError] ",xi=ar+"Invalid argument: ",ky=ar+"Exponent out of range: ",mo=Math.floor,oi=Math.pow,x7=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Bt,Ze=1e7,je=7,D_=9007199254740991,pc=mo(D_/je),q={};q.absoluteValue=q.abs=function(){var e=new this.constructor(this);return e.s&&(e.s=1),e};q.comparedTo=q.cmp=function(e){var t,r,n,i,a=this;if(e=new a.constructor(e),a.s!==e.s)return a.s||-e.s;if(a.e!==e.e)return a.e>e.e^a.s<0?1:-1;for(n=a.d.length,i=e.d.length,t=0,r=n<i?n:i;t<r;++t)if(a.d[t]!==e.d[t])return a.d[t]>e.d[t]^a.s<0?1:-1;return n===i?0:n>i^a.s<0?1:-1};q.decimalPlaces=q.dp=function(){var e=this,t=e.d.length-1,r=(t-e.e)*je;if(t=e.d[t],t)for(;t%10==0;t/=10)r--;return r<0?0:r};q.dividedBy=q.div=function(e){return Xr(this,new this.constructor(e))};q.dividedToIntegerBy=q.idiv=function(e){var t=this,r=t.constructor;return me(Xr(t,new r(e),0,1),r.precision)};q.equals=q.eq=function(e){return!this.cmp(e)};q.exponent=function(){return Ue(this)};q.greaterThan=q.gt=function(e){return this.cmp(e)>0};q.greaterThanOrEqualTo=q.gte=function(e){return this.cmp(e)>=0};q.isInteger=q.isint=function(){return this.e>this.d.length-2};q.isNegative=q.isneg=function(){return this.s<0};q.isPositive=q.ispos=function(){return this.s>0};q.isZero=function(){return this.s===0};q.lessThan=q.lt=function(e){return this.cmp(e)<0};q.lessThanOrEqualTo=q.lte=function(e){return this.cmp(e)<1};q.logarithm=q.log=function(e){var t,r=this,n=r.constructor,i=n.precision,a=i+5;if(e===void 0)e=new n(10);else if(e=new n(e),e.s<1||e.eq(Bt))throw Error(ar+"NaN");if(r.s<1)throw Error(ar+(r.s?"NaN":"-Infinity"));return r.eq(Bt)?new n(0):(ke=!1,t=Xr(Ls(r,a),Ls(e,a),a),ke=!0,me(t,i))};q.minus=q.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?F_(t,e):R_(t,(e.s=-e.s,e))};q.modulo=q.mod=function(e){var t,r=this,n=r.constructor,i=n.precision;if(e=new n(e),!e.s)throw Error(ar+"NaN");return r.s?(ke=!1,t=Xr(r,e,0,1).times(e),ke=!0,r.minus(t)):me(new n(r),i)};q.naturalExponential=q.exp=function(){return B_(this)};q.naturalLogarithm=q.ln=function(){return Ls(this)};q.negated=q.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};q.plus=q.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?R_(t,e):F_(t,(e.s=-e.s,e))};q.precision=q.sd=function(e){var t,r,n,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(xi+e);if(t=Ue(i)+1,n=i.d.length-1,r=n*je+1,n=i.d[n],n){for(;n%10==0;n/=10)r--;for(n=i.d[0];n>=10;n/=10)r++}return e&&t>r?t:r};q.squareRoot=q.sqrt=function(){var e,t,r,n,i,a,o,s=this,l=s.constructor;if(s.s<1){if(!s.s)return new l(0);throw Error(ar+"NaN")}for(e=Ue(s),ke=!1,i=Math.sqrt(+s),i==0||i==1/0?(t=kr(s.d),(t.length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=mo((e+1)/2)-(e<0||e%2),i==1/0?t="5e"+e:(t=i.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),n=new l(t)):n=new l(i.toString()),r=l.precision,i=o=r+3;;)if(a=n,n=a.plus(Xr(s,a,o+2)).times(.5),kr(a.d).slice(0,o)===(t=kr(n.d)).slice(0,o)){if(t=t.slice(o-3,o+1),i==o&&t=="4999"){if(me(a,r+1,0),a.times(a).eq(s)){n=a;break}}else if(t!="9999")break;o+=4}return ke=!0,me(n,r)};q.times=q.mul=function(e){var t,r,n,i,a,o,s,l,u,f=this,d=f.constructor,p=f.d,h=(e=new d(e)).d;if(!f.s||!e.s)return new d(0);for(e.s*=f.s,r=f.e+e.e,l=p.length,u=h.length,l<u&&(a=p,p=h,h=a,o=l,l=u,u=o),a=[],o=l+u,n=o;n--;)a.push(0);for(n=u;--n>=0;){for(t=0,i=l+n;i>n;)s=a[i]+h[n]*p[i-n-1]+t,a[i--]=s%Ze|0,t=s/Ze|0;a[i]=(a[i]+t)%Ze|0}for(;!a[--o];)a.pop();return t?++r:a.shift(),e.d=a,e.e=r,ke?me(e,d.precision):e};q.toDecimalPlaces=q.todp=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(Mr(e,0,ho),t===void 0?t=n.rounding:Mr(t,0,8),me(r,e+Ue(r)+1,t))};q.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=ki(n,!0):(Mr(e,0,ho),t===void 0?t=i.rounding:Mr(t,0,8),n=me(new i(n),e+1,t),r=ki(n,!0,e+1)),r};q.toFixed=function(e,t){var r,n,i=this,a=i.constructor;return e===void 0?ki(i):(Mr(e,0,ho),t===void 0?t=a.rounding:Mr(t,0,8),n=me(new a(i),e+Ue(i)+1,t),r=ki(n.abs(),!1,e+Ue(n)+1),i.isneg()&&!i.isZero()?"-"+r:r)};q.toInteger=q.toint=function(){var e=this,t=e.constructor;return me(new t(e),Ue(e)+1,t.rounding)};q.toNumber=function(){return+this};q.toPower=q.pow=function(e){var t,r,n,i,a,o,s=this,l=s.constructor,u=12,f=+(e=new l(e));if(!e.s)return new l(Bt);if(s=new l(s),!s.s){if(e.s<1)throw Error(ar+"Infinity");return s}if(s.eq(Bt))return s;if(n=l.precision,e.eq(Bt))return me(s,n);if(t=e.e,r=e.d.length-1,o=t>=r,a=s.s,o){if((r=f<0?-f:f)<=D_){for(i=new l(Bt),t=Math.ceil(n/je+4),ke=!1;r%2&&(i=i.times(s),yb(i.d,t)),r=mo(r/2),r!==0;)s=s.times(s),yb(s.d,t);return ke=!0,e.s<0?new l(Bt).div(i):me(i,n)}}else if(a<0)throw Error(ar+"NaN");return a=a<0&&e.d[Math.max(t,r)]&1?-1:1,s.s=1,ke=!1,i=e.times(Ls(s,n+u)),ke=!0,i=B_(i),i.s=a,i};q.toPrecision=function(e,t){var r,n,i=this,a=i.constructor;return e===void 0?(r=Ue(i),n=ki(i,r<=a.toExpNeg||r>=a.toExpPos)):(Mr(e,1,ho),t===void 0?t=a.rounding:Mr(t,0,8),i=me(new a(i),e,t),r=Ue(i),n=ki(i,e<=r||r<=a.toExpNeg,e)),n};q.toSignificantDigits=q.tosd=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(Mr(e,1,ho),t===void 0?t=n.rounding:Mr(t,0,8)),me(new n(r),e,t)};q.toString=q.valueOf=q.val=q.toJSON=q[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=Ue(e),r=e.constructor;return ki(e,t<=r.toExpNeg||t>=r.toExpPos)};function R_(e,t){var r,n,i,a,o,s,l,u,f=e.constructor,d=f.precision;if(!e.s||!t.s)return t.s||(t=new f(e)),ke?me(t,d):t;if(l=e.d,u=t.d,o=e.e,i=t.e,l=l.slice(),a=o-i,a){for(a<0?(n=l,a=-a,s=u.length):(n=u,i=o,s=l.length),o=Math.ceil(d/je),s=o>s?o+1:s+1,a>s&&(a=s,n.length=1),n.reverse();a--;)n.push(0);n.reverse()}for(s=l.length,a=u.length,s-a<0&&(a=s,n=u,u=l,l=n),r=0;a;)r=(l[--a]=l[a]+u[a]+r)/Ze|0,l[a]%=Ze;for(r&&(l.unshift(r),++i),s=l.length;l[--s]==0;)l.pop();return t.d=l,t.e=i,ke?me(t,d):t}function Mr(e,t,r){if(e!==~~e||e<t||e>r)throw Error(xi+e)}function kr(e){var t,r,n,i=e.length-1,a="",o=e[0];if(i>0){for(a+=o,t=1;t<i;t++)n=e[t]+"",r=je-n.length,r&&(a+=mn(r)),a+=n;o=e[t],n=o+"",r=je-n.length,r&&(a+=mn(r))}else if(o===0)return"0";for(;o%10===0;)o/=10;return a+o}var Xr=function(){function e(n,i){var a,o=0,s=n.length;for(n=n.slice();s--;)a=n[s]*i+o,n[s]=a%Ze|0,o=a/Ze|0;return o&&n.unshift(o),n}function t(n,i,a,o){var s,l;if(a!=o)l=a>o?1:-1;else for(s=l=0;s<a;s++)if(n[s]!=i[s]){l=n[s]>i[s]?1:-1;break}return l}function r(n,i,a){for(var o=0;a--;)n[a]-=o,o=n[a]<i[a]?1:0,n[a]=o*Ze+n[a]-i[a];for(;!n[0]&&n.length>1;)n.shift()}return function(n,i,a,o){var s,l,u,f,d,p,h,m,g,x,y,v,b,S,w,j,O,_,P=n.constructor,N=n.s==i.s?1:-1,T=n.d,$=i.d;if(!n.s)return new P(n);if(!i.s)throw Error(ar+"Division by zero");for(l=n.e-i.e,O=$.length,w=T.length,h=new P(N),m=h.d=[],u=0;$[u]==(T[u]||0);)++u;if($[u]>(T[u]||0)&&--l,a==null?v=a=P.precision:o?v=a+(Ue(n)-Ue(i))+1:v=a,v<0)return new P(0);if(v=v/je+2|0,u=0,O==1)for(f=0,$=$[0],v++;(u<w||f)&&v--;u++)b=f*Ze+(T[u]||0),m[u]=b/$|0,f=b%$|0;else{for(f=Ze/($[0]+1)|0,f>1&&($=e($,f),T=e(T,f),O=$.length,w=T.length),S=O,g=T.slice(0,O),x=g.length;x<O;)g[x++]=0;_=$.slice(),_.unshift(0),j=$[0],$[1]>=Ze/2&&++j;do f=0,s=t($,g,O,x),s<0?(y=g[0],O!=x&&(y=y*Ze+(g[1]||0)),f=y/j|0,f>1?(f>=Ze&&(f=Ze-1),d=e($,f),p=d.length,x=g.length,s=t(d,g,p,x),s==1&&(f--,r(d,O<p?_:$,p))):(f==0&&(s=f=1),d=$.slice()),p=d.length,p<x&&d.unshift(0),r(g,d,x),s==-1&&(x=g.length,s=t($,g,O,x),s<1&&(f++,r(g,O<x?_:$,x))),x=g.length):s===0&&(f++,g=[0]),m[u++]=f,s&&g[0]?g[x++]=T[S]||0:(g=[T[S]],x=1);while((S++<w||g[0]!==void 0)&&v--)}return m[0]||m.shift(),h.e=l,me(h,o?a+Ue(h)+1:a)}}();function B_(e,t){var r,n,i,a,o,s,l=0,u=0,f=e.constructor,d=f.precision;if(Ue(e)>16)throw Error(ky+Ue(e));if(!e.s)return new f(Bt);for(ke=!1,s=d,o=new f(.03125);e.abs().gte(.1);)e=e.times(o),u+=5;for(n=Math.log(oi(2,u))/Math.LN10*2+5|0,s+=n,r=i=a=new f(Bt),f.precision=s;;){if(i=me(i.times(e),s),r=r.times(++l),o=a.plus(Xr(i,r,s)),kr(o.d).slice(0,s)===kr(a.d).slice(0,s)){for(;u--;)a=me(a.times(a),s);return f.precision=d,t==null?(ke=!0,me(a,d)):a}a=o}}function Ue(e){for(var t=e.e*je,r=e.d[0];r>=10;r/=10)t++;return t}function Zd(e,t,r){if(t>e.LN10.sd())throw ke=!0,r&&(e.precision=r),Error(ar+"LN10 precision limit exceeded");return me(new e(e.LN10),t)}function mn(e){for(var t="";e--;)t+="0";return t}function Ls(e,t){var r,n,i,a,o,s,l,u,f,d=1,p=10,h=e,m=h.d,g=h.constructor,x=g.precision;if(h.s<1)throw Error(ar+(h.s?"NaN":"-Infinity"));if(h.eq(Bt))return new g(0);if(t==null?(ke=!1,u=x):u=t,h.eq(10))return t==null&&(ke=!0),Zd(g,u);if(u+=p,g.precision=u,r=kr(m),n=r.charAt(0),a=Ue(h),Math.abs(a)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)h=h.times(e),r=kr(h.d),n=r.charAt(0),d++;a=Ue(h),n>1?(h=new g("0."+r),a++):h=new g(n+"."+r.slice(1))}else return l=Zd(g,u+2,x).times(a+""),h=Ls(new g(n+"."+r.slice(1)),u-p).plus(l),g.precision=x,t==null?(ke=!0,me(h,x)):h;for(s=o=h=Xr(h.minus(Bt),h.plus(Bt),u),f=me(h.times(h),u),i=3;;){if(o=me(o.times(f),u),l=s.plus(Xr(o,new g(i),u)),kr(l.d).slice(0,u)===kr(s.d).slice(0,u))return s=s.times(2),a!==0&&(s=s.plus(Zd(g,u+2,x).times(a+""))),s=Xr(s,new g(d),u),g.precision=x,t==null?(ke=!0,me(s,x)):s;s=l,i+=2}}function vb(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;)++n;for(i=t.length;t.charCodeAt(i-1)===48;)--i;if(t=t.slice(n,i),t){if(i-=n,r=r-n-1,e.e=mo(r/je),e.d=[],n=(r+1)%je,r<0&&(n+=je),n<i){for(n&&e.d.push(+t.slice(0,n)),i-=je;n<i;)e.d.push(+t.slice(n,n+=je));t=t.slice(n),n=je-t.length}else n-=i;for(;n--;)t+="0";if(e.d.push(+t),ke&&(e.e>pc||e.e<-pc))throw Error(ky+r)}else e.s=0,e.e=0,e.d=[0];return e}function me(e,t,r){var n,i,a,o,s,l,u,f,d=e.d;for(o=1,a=d[0];a>=10;a/=10)o++;if(n=t-o,n<0)n+=je,i=t,u=d[f=0];else{if(f=Math.ceil((n+1)/je),a=d.length,f>=a)return e;for(u=a=d[f],o=1;a>=10;a/=10)o++;n%=je,i=n-je+o}if(r!==void 0&&(a=oi(10,o-i-1),s=u/a%10|0,l=t<0||d[f+1]!==void 0||u%a,l=r<4?(s||l)&&(r==0||r==(e.s<0?3:2)):s>5||s==5&&(r==4||l||r==6&&(n>0?i>0?u/oi(10,o-i):0:d[f-1])%10&1||r==(e.s<0?8:7))),t<1||!d[0])return l?(a=Ue(e),d.length=1,t=t-a-1,d[0]=oi(10,(je-t%je)%je),e.e=mo(-t/je)||0):(d.length=1,d[0]=e.e=e.s=0),e;if(n==0?(d.length=f,a=1,f--):(d.length=f+1,a=oi(10,je-n),d[f]=i>0?(u/oi(10,o-i)%oi(10,i)|0)*a:0),l)for(;;)if(f==0){(d[0]+=a)==Ze&&(d[0]=1,++e.e);break}else{if(d[f]+=a,d[f]!=Ze)break;d[f--]=0,a=1}for(n=d.length;d[--n]===0;)d.pop();if(ke&&(e.e>pc||e.e<-pc))throw Error(ky+Ue(e));return e}function F_(e,t){var r,n,i,a,o,s,l,u,f,d,p=e.constructor,h=p.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new p(e),ke?me(t,h):t;if(l=e.d,d=t.d,n=t.e,u=e.e,l=l.slice(),o=u-n,o){for(f=o<0,f?(r=l,o=-o,s=d.length):(r=d,n=u,s=l.length),i=Math.max(Math.ceil(h/je),s)+2,o>i&&(o=i,r.length=1),r.reverse(),i=o;i--;)r.push(0);r.reverse()}else{for(i=l.length,s=d.length,f=i<s,f&&(s=i),i=0;i<s;i++)if(l[i]!=d[i]){f=l[i]<d[i];break}o=0}for(f&&(r=l,l=d,d=r,t.s=-t.s),s=l.length,i=d.length-s;i>0;--i)l[s++]=0;for(i=d.length;i>o;){if(l[--i]<d[i]){for(a=i;a&&l[--a]===0;)l[a]=Ze-1;--l[a],l[i]+=Ze}l[i]-=d[i]}for(;l[--s]===0;)l.pop();for(;l[0]===0;l.shift())--n;return l[0]?(t.d=l,t.e=n,ke?me(t,h):t):new p(0)}function ki(e,t,r){var n,i=Ue(e),a=kr(e.d),o=a.length;return t?(r&&(n=r-o)>0?a=a.charAt(0)+"."+a.slice(1)+mn(n):o>1&&(a=a.charAt(0)+"."+a.slice(1)),a=a+(i<0?"e":"e+")+i):i<0?(a="0."+mn(-i-1)+a,r&&(n=r-o)>0&&(a+=mn(n))):i>=o?(a+=mn(i+1-o),r&&(n=r-i-1)>0&&(a=a+"."+mn(n))):((n=i+1)<o&&(a=a.slice(0,n)+"."+a.slice(n)),r&&(n=r-o)>0&&(i+1===o&&(a+="."),a+=mn(n))),e.s<0?"-"+a:a}function yb(e,t){if(e.length>t)return e.length=t,!0}function z_(e){var t,r,n;function i(a){var o=this;if(!(o instanceof i))return new i(a);if(o.constructor=i,a instanceof i){o.s=a.s,o.e=a.e,o.d=(a=a.d)?a.slice():a;return}if(typeof a=="number"){if(a*0!==0)throw Error(xi+a);if(a>0)o.s=1;else if(a<0)a=-a,o.s=-1;else{o.s=0,o.e=0,o.d=[0];return}if(a===~~a&&a<1e7){o.e=0,o.d=[a];return}return vb(o,a.toString())}else if(typeof a!="string")throw Error(xi+a);if(a.charCodeAt(0)===45?(a=a.slice(1),o.s=-1):o.s=1,x7.test(a))vb(o,a);else throw Error(xi+a)}if(i.prototype=q,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=z_,i.config=i.set=b7,e===void 0&&(e={}),e)for(n=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t<n.length;)e.hasOwnProperty(r=n[t++])||(e[r]=this[r]);return i.config(e),i}function b7(e){if(!e||typeof e!="object")throw Error(ar+"Object expected");var t,r,n,i=["precision",1,ho,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(t=0;t<i.length;t+=3)if((n=e[r=i[t]])!==void 0)if(mo(n)===n&&n>=i[t+1]&&n<=i[t+2])this[r]=n;else throw Error(xi+r+": "+n);if((n=e[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(xi+r+": "+n);return this}var Ny=z_(g7);Bt=new Ny(1);const he=Ny;function w7(e){return _7(e)||O7(e)||S7(e)||j7()}function j7(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function S7(e,t){if(e){if(typeof e=="string")return zh(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return zh(e,t)}}function O7(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function _7(e){if(Array.isArray(e))return zh(e)}function zh(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var P7=function(t){return t},W_={},U_=function(t){return t===W_},gb=function(t){return function r(){return arguments.length===0||arguments.length===1&&U_(arguments.length<=0?void 0:arguments[0])?r:t.apply(void 0,arguments)}},A7=function e(t,r){return t===1?r:gb(function(){for(var n=arguments.length,i=new Array(n),a=0;a<n;a++)i[a]=arguments[a];var o=i.filter(function(s){return s!==W_}).length;return o>=t?r.apply(void 0,i):e(t-o,gb(function(){for(var s=arguments.length,l=new Array(s),u=0;u<s;u++)l[u]=arguments[u];var f=i.map(function(d){return U_(d)?l.shift():d});return r.apply(void 0,w7(f).concat(l))}))})},Uf=function(t){return A7(t.length,t)},Wh=function(t,r){for(var n=[],i=t;i<r;++i)n[i-t]=i;return n},k7=Uf(function(e,t){return Array.isArray(t)?t.map(e):Object.keys(t).map(function(r){return t[r]}).map(e)}),N7=function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];if(!r.length)return P7;var i=r.reverse(),a=i[0],o=i.slice(1);return function(){return o.reduce(function(s,l){return l(s)},a.apply(void 0,arguments))}},Uh=function(t){return Array.isArray(t)?t.reverse():t.split("").reverse.join("")},K_=function(t){var r=null,n=null;return function(){for(var i=arguments.length,a=new Array(i),o=0;o<i;o++)a[o]=arguments[o];return r&&a.every(function(s,l){return s===r[l]})||(r=a,n=t.apply(void 0,a)),n}};function $7(e){var t;return e===0?t=1:t=Math.floor(new he(e).abs().log(10).toNumber())+1,t}function E7(e,t,r){for(var n=new he(e),i=0,a=[];n.lt(t)&&i<1e5;)a.push(n.toNumber()),n=n.add(r),i++;return a}var T7=Uf(function(e,t,r){var n=+e,i=+t;return n+r*(i-n)}),C7=Uf(function(e,t,r){var n=t-+e;return n=n||1/0,(r-e)/n}),M7=Uf(function(e,t,r){var n=t-+e;return n=n||1/0,Math.max(0,Math.min(1,(r-e)/n))});const Kf={rangeStep:E7,getDigitCount:$7,interpolateNumber:T7,uninterpolateNumber:C7,uninterpolateTruncation:M7};function Kh(e){return D7(e)||L7(e)||H_(e)||I7()}function I7(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function L7(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function D7(e){if(Array.isArray(e))return Hh(e)}function Ds(e,t){return F7(e)||B7(e,t)||H_(e,t)||R7()}function R7(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function H_(e,t){if(e){if(typeof e=="string")return Hh(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Hh(e,t)}}function Hh(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function B7(e,t){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(e)))){var r=[],n=!0,i=!1,a=void 0;try{for(var o=e[Symbol.iterator](),s;!(n=(s=o.next()).done)&&(r.push(s.value),!(t&&r.length===t));n=!0);}catch(l){i=!0,a=l}finally{try{!n&&o.return!=null&&o.return()}finally{if(i)throw a}}return r}}function F7(e){if(Array.isArray(e))return e}function V_(e){var t=Ds(e,2),r=t[0],n=t[1],i=r,a=n;return r>n&&(i=n,a=r),[i,a]}function G_(e,t,r){if(e.lte(0))return new he(0);var n=Kf.getDigitCount(e.toNumber()),i=new he(10).pow(n),a=e.div(i),o=n!==1?.05:.1,s=new he(Math.ceil(a.div(o).toNumber())).add(r).mul(o),l=s.mul(i);return t?l:new he(Math.ceil(l))}function z7(e,t,r){var n=1,i=new he(e);if(!i.isint()&&r){var a=Math.abs(e);a<1?(n=new he(10).pow(Kf.getDigitCount(e)-1),i=new he(Math.floor(i.div(n).toNumber())).mul(n)):a>1&&(i=new he(Math.floor(e)))}else e===0?i=new he(Math.floor((t-1)/2)):r||(i=new he(Math.floor(e)));var o=Math.floor((t-1)/2),s=N7(k7(function(l){return i.add(new he(l-o).mul(n)).toNumber()}),Wh);return s(0,t)}function q_(e,t,r,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(r-1)))return{step:new he(0),tickMin:new he(0),tickMax:new he(0)};var a=G_(new he(t).sub(e).div(r-1),n,i),o;e<=0&&t>=0?o=new he(0):(o=new he(e).add(t).div(2),o=o.sub(new he(o).mod(a)));var s=Math.ceil(o.sub(e).div(a).toNumber()),l=Math.ceil(new he(t).sub(o).div(a).toNumber()),u=s+l+1;return u>r?q_(e,t,r,n,i+1):(u<r&&(l=t>0?l+(r-u):l,s=t>0?s:s+(r-u)),{step:a,tickMin:o.sub(new he(s).mul(a)),tickMax:o.add(new he(l).mul(a))})}function W7(e){var t=Ds(e,2),r=t[0],n=t[1],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=Math.max(i,2),s=V_([r,n]),l=Ds(s,2),u=l[0],f=l[1];if(u===-1/0||f===1/0){var d=f===1/0?[u].concat(Kh(Wh(0,i-1).map(function(){return 1/0}))):[].concat(Kh(Wh(0,i-1).map(function(){return-1/0})),[f]);return r>n?Uh(d):d}if(u===f)return z7(u,i,a);var p=q_(u,f,o,a),h=p.step,m=p.tickMin,g=p.tickMax,x=Kf.rangeStep(m,g.add(new he(.1).mul(h)),h);return r>n?Uh(x):x}function U7(e,t){var r=Ds(e,2),n=r[0],i=r[1],a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=V_([n,i]),s=Ds(o,2),l=s[0],u=s[1];if(l===-1/0||u===1/0)return[n,i];if(l===u)return[l];var f=Math.max(t,2),d=G_(new he(u).sub(l).div(f-1),a,0),p=[].concat(Kh(Kf.rangeStep(new he(l),new he(u).sub(new he(.99).mul(d)),d)),[u]);return n>i?Uh(p):p}var K7=K_(W7),H7=K_(U7),V7="Invariant failed";function Ni(e,t){throw new Error(V7)}var G7=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function Ta(e){"@babel/helpers - typeof";return Ta=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ta(e)}function hc(){return hc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},hc.apply(this,arguments)}function q7(e,t){return Z7(e)||Q7(e,t)||Y7(e,t)||X7()}function X7(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Y7(e,t){if(e){if(typeof e=="string")return xb(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return xb(e,t)}}function xb(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Q7(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,s=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(l=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(f){u=!0,i=f}finally{try{if(!l&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}function Z7(e){if(Array.isArray(e))return e}function J7(e,t){if(e==null)return{};var r=eW(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function eW(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function tW(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function rW(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Q_(n.key),n)}}function nW(e,t,r){return t&&rW(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function iW(e,t,r){return t=mc(t),aW(e,X_()?Reflect.construct(t,r||[],mc(e).constructor):t.apply(e,r))}function aW(e,t){if(t&&(Ta(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return oW(e)}function oW(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function X_(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(X_=function(){return!!e})()}function mc(e){return mc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},mc(e)}function sW(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Vh(e,t)}function Vh(e,t){return Vh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Vh(e,t)}function Y_(e,t,r){return t=Q_(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Q_(e){var t=lW(e,"string");return Ta(t)=="symbol"?t:t+""}function lW(e,t){if(Ta(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ta(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var vo=function(e){function t(){return tW(this,t),iW(this,t,arguments)}return sW(t,e),nW(t,[{key:"render",value:function(){var n=this.props,i=n.offset,a=n.layout,o=n.width,s=n.dataKey,l=n.data,u=n.dataPointFormatter,f=n.xAxis,d=n.yAxis,p=J7(n,G7),h=X(p,!1);this.props.direction==="x"&&f.type!=="number"&&Ni();var m=l.map(function(g){var x=u(g,s),y=x.x,v=x.y,b=x.value,S=x.errorVal;if(!S)return null;var w=[],j,O;if(Array.isArray(S)){var _=q7(S,2);j=_[0],O=_[1]}else j=O=S;if(a==="vertical"){var P=f.scale,N=v+i,T=N+o,$=N-o,I=P(b-j),D=P(b+O);w.push({x1:D,y1:T,x2:D,y2:$}),w.push({x1:I,y1:N,x2:D,y2:N}),w.push({x1:I,y1:T,x2:I,y2:$})}else if(a==="horizontal"){var L=d.scale,C=y+i,F=C-o,M=C+o,B=L(b-j),E=L(b+O);w.push({x1:F,y1:E,x2:M,y2:E}),w.push({x1:C,y1:B,x2:C,y2:E}),w.push({x1:F,y1:B,x2:M,y2:B})}return k.createElement(te,hc({className:"recharts-errorBar",key:"bar-".concat(w.map(function(W){return"".concat(W.x1,"-").concat(W.x2,"-").concat(W.y1,"-").concat(W.y2)}))},h),w.map(function(W){return k.createElement("line",hc({},W,{key:"line-".concat(W.x1,"-").concat(W.x2,"-").concat(W.y1,"-").concat(W.y2)}))}))});return k.createElement(te,{className:"recharts-errorBars"},m)}}])}(k.Component);Y_(vo,"defaultProps",{stroke:"black",strokeWidth:1.5,width:5,offset:0,layout:"horizontal"});Y_(vo,"displayName","ErrorBar");function Rs(e){"@babel/helpers - typeof";return Rs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Rs(e)}function bb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Jn(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?bb(Object(r),!0).forEach(function(n){uW(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):bb(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function uW(e,t,r){return t=cW(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function cW(e){var t=fW(e,"string");return Rs(t)=="symbol"?t:t+""}function fW(e,t){if(Rs(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Rs(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Z_=function(t){var r=t.children,n=t.formattedGraphicalItems,i=t.legendWidth,a=t.legendContent,o=Rt(r,qr);if(!o)return null;var s=qr.defaultProps,l=s!==void 0?Jn(Jn({},s),o.props):{},u;return o.props&&o.props.payload?u=o.props&&o.props.payload:a==="children"?u=(n||[]).reduce(function(f,d){var p=d.item,h=d.props,m=h.sectors||h.data||[];return f.concat(m.map(function(g){return{type:o.props.iconType||p.props.legendType,value:g.name,color:g.fill,payload:g}}))},[]):u=(n||[]).map(function(f){var d=f.item,p=d.type.defaultProps,h=p!==void 0?Jn(Jn({},p),d.props):{},m=h.dataKey,g=h.name,x=h.legendType,y=h.hide;return{inactive:y,dataKey:m,type:l.iconType||x||"square",color:$y(d),value:g||m,payload:h}}),Jn(Jn(Jn({},l),qr.getWithHeight(o,i)),{},{payload:u,item:o})};function Bs(e){"@babel/helpers - typeof";return Bs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Bs(e)}function wb(e){return mW(e)||hW(e)||pW(e)||dW()}function dW(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pW(e,t){if(e){if(typeof e=="string")return Gh(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Gh(e,t)}}function hW(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function mW(e){if(Array.isArray(e))return Gh(e)}function Gh(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function jb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ie(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?jb(Object(r),!0).forEach(function(n){va(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):jb(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function va(e,t,r){return t=vW(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function vW(e){var t=yW(e,"string");return Bs(t)=="symbol"?t:t+""}function yW(e,t){if(Bs(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Bs(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Oe(e,t,r){return Q(e)||Q(t)?r:Ye(t)?Wt(e,t,r):Z(t)?t(e):r}function Zo(e,t,r,n){var i=h7(e,function(s){return Oe(s,t)});if(r==="number"){var a=i.filter(function(s){return K(s)||parseFloat(s)});return a.length?[Wf(a),jn(a)]:[1/0,-1/0]}var o=n?i.filter(function(s){return!Q(s)}):i;return o.map(function(s){return Ye(s)||s instanceof Date?s:""})}var gW=function(t){var r,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0,a=arguments.length>3?arguments[3]:void 0,o=-1,s=(r=n==null?void 0:n.length)!==null&&r!==void 0?r:0;if(s<=1)return 0;if(a&&a.axisType==="angleAxis"&&Math.abs(Math.abs(a.range[1]-a.range[0])-360)<=1e-6)for(var l=a.range,u=0;u<s;u++){var f=u>0?i[u-1].coordinate:i[s-1].coordinate,d=i[u].coordinate,p=u>=s-1?i[0].coordinate:i[u+1].coordinate,h=void 0;if(yt(d-f)!==yt(p-d)){var m=[];if(yt(p-d)===yt(l[1]-l[0])){h=p;var g=d+l[1]-l[0];m[0]=Math.min(g,(g+f)/2),m[1]=Math.max(g,(g+f)/2)}else{h=f;var x=p+l[1]-l[0];m[0]=Math.min(d,(x+d)/2),m[1]=Math.max(d,(x+d)/2)}var y=[Math.min(d,(h+d)/2),Math.max(d,(h+d)/2)];if(t>y[0]&&t<=y[1]||t>=m[0]&&t<=m[1]){o=i[u].index;break}}else{var v=Math.min(f,p),b=Math.max(f,p);if(t>(v+d)/2&&t<=(b+d)/2){o=i[u].index;break}}}else for(var S=0;S<s;S++)if(S===0&&t<=(n[S].coordinate+n[S+1].coordinate)/2||S>0&&S<s-1&&t>(n[S].coordinate+n[S-1].coordinate)/2&&t<=(n[S].coordinate+n[S+1].coordinate)/2||S===s-1&&t>(n[S].coordinate+n[S-1].coordinate)/2){o=n[S].index;break}return o},$y=function(t){var r,n=t,i=n.type.displayName,a=(r=t.type)!==null&&r!==void 0&&r.defaultProps?Ie(Ie({},t.type.defaultProps),t.props):t.props,o=a.stroke,s=a.fill,l;switch(i){case"Line":l=o;break;case"Area":case"Radar":l=o&&o!=="none"?o:s;break;default:l=s;break}return l},xW=function(t){var r=t.barSize,n=t.totalSize,i=t.stackGroups,a=i===void 0?{}:i;if(!a)return{};for(var o={},s=Object.keys(a),l=0,u=s.length;l<u;l++)for(var f=a[s[l]].stackGroups,d=Object.keys(f),p=0,h=d.length;p<h;p++){var m=f[d[p]],g=m.items,x=m.cateAxisId,y=g.filter(function(O){return Gr(O.type).indexOf("Bar")>=0});if(y&&y.length){var v=y[0].type.defaultProps,b=v!==void 0?Ie(Ie({},v),y[0].props):y[0].props,S=b.barSize,w=b[x];o[w]||(o[w]=[]);var j=Q(S)?r:S;o[w].push({item:y[0],stackList:y.slice(1),barSize:Q(j)?void 0:gt(j,n,0)})}}return o},bW=function(t){var r=t.barGap,n=t.barCategoryGap,i=t.bandSize,a=t.sizeList,o=a===void 0?[]:a,s=t.maxBarSize,l=o.length;if(l<1)return null;var u=gt(r,i,0,!0),f,d=[];if(o[0].barSize===+o[0].barSize){var p=!1,h=i/l,m=o.reduce(function(S,w){return S+w.barSize||0},0);m+=(l-1)*u,m>=i&&(m-=(l-1)*u,u=0),m>=i&&h>0&&(p=!0,h*=.9,m=l*h);var g=(i-m)/2>>0,x={offset:g-u,size:0};f=o.reduce(function(S,w){var j={item:w.item,position:{offset:x.offset+x.size+u,size:p?h:w.barSize}},O=[].concat(wb(S),[j]);return x=O[O.length-1].position,w.stackList&&w.stackList.length&&w.stackList.forEach(function(_){O.push({item:_,position:x})}),O},d)}else{var y=gt(n,i,0,!0);i-2*y-(l-1)*u<=0&&(u=0);var v=(i-2*y-(l-1)*u)/l;v>1&&(v>>=0);var b=s===+s?Math.min(v,s):v;f=o.reduce(function(S,w,j){var O=[].concat(wb(S),[{item:w.item,position:{offset:y+(v+u)*j+(v-b)/2,size:b}}]);return w.stackList&&w.stackList.length&&w.stackList.forEach(function(_){O.push({item:_,position:O[O.length-1].position})}),O},d)}return f},wW=function(t,r,n,i){var a=n.children,o=n.width,s=n.margin,l=o-(s.left||0)-(s.right||0),u=Z_({children:a,legendWidth:l});if(u){var f=i||{},d=f.width,p=f.height,h=u.align,m=u.verticalAlign,g=u.layout;if((g==="vertical"||g==="horizontal"&&m==="middle")&&h!=="center"&&K(t[h]))return Ie(Ie({},t),{},va({},h,t[h]+(d||0)));if((g==="horizontal"||g==="vertical"&&h==="center")&&m!=="middle"&&K(t[m]))return Ie(Ie({},t),{},va({},m,t[m]+(p||0)))}return t},jW=function(t,r,n){return Q(r)?!0:t==="horizontal"?r==="yAxis":t==="vertical"||n==="x"?r==="xAxis":n==="y"?r==="yAxis":!0},J_=function(t,r,n,i,a){var o=r.props.children,s=wt(o,vo).filter(function(u){return jW(i,a,u.props.direction)});if(s&&s.length){var l=s.map(function(u){return u.props.dataKey});return t.reduce(function(u,f){var d=Oe(f,n);if(Q(d))return u;var p=Array.isArray(d)?[Wf(d),jn(d)]:[d,d],h=l.reduce(function(m,g){var x=Oe(f,g,0),y=p[0]-Math.abs(Array.isArray(x)?x[0]:x),v=p[1]+Math.abs(Array.isArray(x)?x[1]:x);return[Math.min(y,m[0]),Math.max(v,m[1])]},[1/0,-1/0]);return[Math.min(h[0],u[0]),Math.max(h[1],u[1])]},[1/0,-1/0])}return null},SW=function(t,r,n,i,a){var o=r.map(function(s){return J_(t,s,n,a,i)}).filter(function(s){return!Q(s)});return o&&o.length?o.reduce(function(s,l){return[Math.min(s[0],l[0]),Math.max(s[1],l[1])]},[1/0,-1/0]):null},eP=function(t,r,n,i,a){var o=r.map(function(l){var u=l.props.dataKey;return n==="number"&&u&&J_(t,l,u,i)||Zo(t,u,n,a)});if(n==="number")return o.reduce(function(l,u){return[Math.min(l[0],u[0]),Math.max(l[1],u[1])]},[1/0,-1/0]);var s={};return o.reduce(function(l,u){for(var f=0,d=u.length;f<d;f++)s[u[f]]||(s[u[f]]=!0,l.push(u[f]));return l},[])},tP=function(t,r){return t==="horizontal"&&r==="xAxis"||t==="vertical"&&r==="yAxis"||t==="centric"&&r==="angleAxis"||t==="radial"&&r==="radiusAxis"},rP=function(t,r,n,i){if(i)return t.map(function(l){return l.coordinate});var a,o,s=t.map(function(l){return l.coordinate===r&&(a=!0),l.coordinate===n&&(o=!0),l.coordinate});return a||s.push(r),o||s.push(n),s},Hr=function(t,r,n){if(!t)return null;var i=t.scale,a=t.duplicateDomain,o=t.type,s=t.range,l=t.realScaleType==="scaleBand"?i.bandwidth()/2:2,u=(r||n)&&o==="category"&&i.bandwidth?i.bandwidth()/l:0;if(u=t.axisType==="angleAxis"&&(s==null?void 0:s.length)>=2?yt(s[0]-s[1])*2*u:u,r&&(t.ticks||t.niceTicks)){var f=(t.ticks||t.niceTicks).map(function(d){var p=a?a.indexOf(d):d;return{coordinate:i(p)+u,value:d,offset:u}});return f.filter(function(d){return!lo(d.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(d,p){return{coordinate:i(d)+u,value:d,index:p,offset:u}}):i.ticks&&!n?i.ticks(t.tickCount).map(function(d){return{coordinate:i(d)+u,value:d,offset:u}}):i.domain().map(function(d,p){return{coordinate:i(d)+u,value:a?a[d]:d,index:p,offset:u}})},Jd=new WeakMap,Yl=function(t,r){if(typeof r!="function")return t;Jd.has(t)||Jd.set(t,new WeakMap);var n=Jd.get(t);if(n.has(r))return n.get(r);var i=function(){t.apply(void 0,arguments),r.apply(void 0,arguments)};return n.set(r,i),i},nP=function(t,r,n){var i=t.scale,a=t.type,o=t.layout,s=t.axisType;if(i==="auto")return o==="radial"&&s==="radiusAxis"?{scale:Es(),realScaleType:"band"}:o==="radial"&&s==="angleAxis"?{scale:uc(),realScaleType:"linear"}:a==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!n)?{scale:Qo(),realScaleType:"point"}:a==="category"?{scale:Es(),realScaleType:"band"}:{scale:uc(),realScaleType:"linear"};if(Pi(i)){var l="scale".concat(Af(i));return{scale:(mb[l]||Qo)(),realScaleType:mb[l]?l:"point"}}return Z(i)?{scale:i}:{scale:Qo(),realScaleType:"point"}},Sb=1e-4,iP=function(t){var r=t.domain();if(!(!r||r.length<=2)){var n=r.length,i=t.range(),a=Math.min(i[0],i[1])-Sb,o=Math.max(i[0],i[1])+Sb,s=t(r[0]),l=t(r[n-1]);(s<a||s>o||l<a||l>o)&&t.domain([r[0],r[n-1]])}},OW=function(t,r){if(!t)return null;for(var n=0,i=t.length;n<i;n++)if(t[n].item===r)return t[n].position;return null},_W=function(t,r){if(!r||r.length!==2||!K(r[0])||!K(r[1]))return t;var n=Math.min(r[0],r[1]),i=Math.max(r[0],r[1]),a=[t[0],t[1]];return(!K(t[0])||t[0]<n)&&(a[0]=n),(!K(t[1])||t[1]>i)&&(a[1]=i),a[0]>i&&(a[0]=i),a[1]<n&&(a[1]=n),a},PW=function(t){var r=t.length;if(!(r<=0))for(var n=0,i=t[0].length;n<i;++n)for(var a=0,o=0,s=0;s<r;++s){var l=lo(t[s][n][1])?t[s][n][0]:t[s][n][1];l>=0?(t[s][n][0]=a,t[s][n][1]=a+l,a=t[s][n][1]):(t[s][n][0]=o,t[s][n][1]=o+l,o=t[s][n][1])}},AW=function(t){var r=t.length;if(!(r<=0))for(var n=0,i=t[0].length;n<i;++n)for(var a=0,o=0;o<r;++o){var s=lo(t[o][n][1])?t[o][n][0]:t[o][n][1];s>=0?(t[o][n][0]=a,t[o][n][1]=a+s,a=t[o][n][1]):(t[o][n][0]=0,t[o][n][1]=0)}},kW={sign:PW,expand:G3,none:Oa,silhouette:q3,wiggle:X3,positive:AW},NW=function(t,r,n){var i=r.map(function(s){return s.props.dataKey}),a=kW[n],o=V3().keys(i).value(function(s,l){return+Oe(s,l,0)}).order(gh).offset(a);return o(t)},$W=function(t,r,n,i,a,o){if(!t)return null;var s=o?r.reverse():r,l={},u=s.reduce(function(d,p){var h,m=(h=p.type)!==null&&h!==void 0&&h.defaultProps?Ie(Ie({},p.type.defaultProps),p.props):p.props,g=m.stackId,x=m.hide;if(x)return d;var y=m[n],v=d[y]||{hasStack:!1,stackGroups:{}};if(Ye(g)){var b=v.stackGroups[g]||{numericAxisId:n,cateAxisId:i,items:[]};b.items.push(p),v.hasStack=!0,v.stackGroups[g]=b}else v.stackGroups[Gn("_stackId_")]={numericAxisId:n,cateAxisId:i,items:[p]};return Ie(Ie({},d),{},va({},y,v))},l),f={};return Object.keys(u).reduce(function(d,p){var h=u[p];if(h.hasStack){var m={};h.stackGroups=Object.keys(h.stackGroups).reduce(function(g,x){var y=h.stackGroups[x];return Ie(Ie({},g),{},va({},x,{numericAxisId:n,cateAxisId:i,items:y.items,stackedData:NW(t,y.items,a)}))},m)}return Ie(Ie({},d),{},va({},p,h))},f)},aP=function(t,r){var n=r.realScaleType,i=r.type,a=r.tickCount,o=r.originalDomain,s=r.allowDecimals,l=n||r.scale;if(l!=="auto"&&l!=="linear")return null;if(a&&i==="number"&&o&&(o[0]==="auto"||o[1]==="auto")){var u=t.domain();if(!u.length)return null;var f=K7(u,a,s);return t.domain([Wf(f),jn(f)]),{niceTicks:f}}if(a&&i==="number"){var d=t.domain(),p=H7(d,a,s);return{niceTicks:p}}return null};function Ca(e){var t=e.axis,r=e.ticks,n=e.bandSize,i=e.entry,a=e.index,o=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Q(i[t.dataKey])){var s=zu(r,"value",i[t.dataKey]);if(s)return s.coordinate+n/2}return r[a]?r[a].coordinate+n/2:null}var l=Oe(i,Q(o)?t.dataKey:o);return Q(l)?null:t.scale(l)}var Ob=function(t){var r=t.axis,n=t.ticks,i=t.offset,a=t.bandSize,o=t.entry,s=t.index;if(r.type==="category")return n[s]?n[s].coordinate+i:null;var l=Oe(o,r.dataKey,r.domain[s]);return Q(l)?null:r.scale(l)-a/2+i},EW=function(t){var r=t.numericAxis,n=r.scale.domain();if(r.type==="number"){var i=Math.min(n[0],n[1]),a=Math.max(n[0],n[1]);return i<=0&&a>=0?0:a<0?a:i}return n[0]},TW=function(t,r){var n,i=(n=t.type)!==null&&n!==void 0&&n.defaultProps?Ie(Ie({},t.type.defaultProps),t.props):t.props,a=i.stackId;if(Ye(a)){var o=r[a];if(o){var s=o.items.indexOf(t);return s>=0?o.stackedData[s]:null}}return null},CW=function(t){return t.reduce(function(r,n){return[Wf(n.concat([r[0]]).filter(K)),jn(n.concat([r[1]]).filter(K))]},[1/0,-1/0])},oP=function(t,r,n){return Object.keys(t).reduce(function(i,a){var o=t[a],s=o.stackedData,l=s.reduce(function(u,f){var d=CW(f.slice(r,n+1));return[Math.min(u[0],d[0]),Math.max(u[1],d[1])]},[1/0,-1/0]);return[Math.min(l[0],i[0]),Math.max(l[1],i[1])]},[1/0,-1/0]).map(function(i){return i===1/0||i===-1/0?0:i})},_b=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Pb=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,qh=function(t,r,n){if(Z(t))return t(r,n);if(!Array.isArray(t))return r;var i=[];if(K(t[0]))i[0]=n?t[0]:Math.min(t[0],r[0]);else if(_b.test(t[0])){var a=+_b.exec(t[0])[1];i[0]=r[0]-a}else Z(t[0])?i[0]=t[0](r[0]):i[0]=r[0];if(K(t[1]))i[1]=n?t[1]:Math.max(t[1],r[1]);else if(Pb.test(t[1])){var o=+Pb.exec(t[1])[1];i[1]=r[1]+o}else Z(t[1])?i[1]=t[1](r[1]):i[1]=r[1];return i},vc=function(t,r,n){if(t&&t.scale&&t.scale.bandwidth){var i=t.scale.bandwidth();if(!n||i>0)return i}if(t&&r&&r.length>=2){for(var a=iy(r,function(d){return d.coordinate}),o=1/0,s=1,l=a.length;s<l;s++){var u=a[s],f=a[s-1];o=Math.min((u.coordinate||0)-(f.coordinate||0),o)}return o===1/0?0:o}return n?void 0:0},Ab=function(t,r,n){return!t||!t.length||Fn(t,Wt(n,"type.defaultProps.domain"))?r:t},sP=function(t,r){var n=t.type.defaultProps?Ie(Ie({},t.type.defaultProps),t.props):t.props,i=n.dataKey,a=n.name,o=n.unit,s=n.formatter,l=n.tooltipType,u=n.chartType,f=n.hide;return Ie(Ie({},X(t,!1)),{},{dataKey:i,unit:o,formatter:s,name:a||i,color:$y(t),value:Oe(r,i),type:l,payload:r,chartType:u,hide:f})};function Fs(e){"@babel/helpers - typeof";return Fs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Fs(e)}function kb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Br(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?kb(Object(r),!0).forEach(function(n){lP(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):kb(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function lP(e,t,r){return t=MW(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function MW(e){var t=IW(e,"string");return Fs(t)=="symbol"?t:t+""}function IW(e,t){if(Fs(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Fs(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function LW(e,t){return FW(e)||BW(e,t)||RW(e,t)||DW()}function DW(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function RW(e,t){if(e){if(typeof e=="string")return Nb(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Nb(e,t)}}function Nb(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function BW(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,s=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(l=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(f){u=!0,i=f}finally{try{if(!l&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}function FW(e){if(Array.isArray(e))return e}var yc=Math.PI/180,zW=function(t){return t*180/Math.PI},xe=function(t,r,n,i){return{x:t+Math.cos(-yc*i)*n,y:r+Math.sin(-yc*i)*n}},uP=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(n.left||0)-(n.right||0)),Math.abs(r-(n.top||0)-(n.bottom||0)))/2},WW=function(t,r,n,i,a){var o=t.width,s=t.height,l=t.startAngle,u=t.endAngle,f=gt(t.cx,o,o/2),d=gt(t.cy,s,s/2),p=uP(o,s,n),h=gt(t.innerRadius,p,0),m=gt(t.outerRadius,p,p*.8),g=Object.keys(r);return g.reduce(function(x,y){var v=r[y],b=v.domain,S=v.reversed,w;if(Q(v.range))i==="angleAxis"?w=[l,u]:i==="radiusAxis"&&(w=[h,m]),S&&(w=[w[1],w[0]]);else{w=v.range;var j=w,O=LW(j,2);l=O[0],u=O[1]}var _=nP(v,a),P=_.realScaleType,N=_.scale;N.domain(b).range(w),iP(N);var T=aP(N,Br(Br({},v),{},{realScaleType:P})),$=Br(Br(Br({},v),T),{},{range:w,radius:m,realScaleType:P,scale:N,cx:f,cy:d,innerRadius:h,outerRadius:m,startAngle:l,endAngle:u});return Br(Br({},x),{},lP({},y,$))},{})},UW=function(t,r){var n=t.x,i=t.y,a=r.x,o=r.y;return Math.sqrt(Math.pow(n-a,2)+Math.pow(i-o,2))},KW=function(t,r){var n=t.x,i=t.y,a=r.cx,o=r.cy,s=UW({x:n,y:i},{x:a,y:o});if(s<=0)return{radius:s};var l=(n-a)/s,u=Math.acos(l);return i>o&&(u=2*Math.PI-u),{radius:s,angle:zW(u),angleInRadian:u}},HW=function(t){var r=t.startAngle,n=t.endAngle,i=Math.floor(r/360),a=Math.floor(n/360),o=Math.min(i,a);return{startAngle:r-o*360,endAngle:n-o*360}},VW=function(t,r){var n=r.startAngle,i=r.endAngle,a=Math.floor(n/360),o=Math.floor(i/360),s=Math.min(a,o);return t+s*360},$b=function(t,r){var n=t.x,i=t.y,a=KW({x:n,y:i},r),o=a.radius,s=a.angle,l=r.innerRadius,u=r.outerRadius;if(o<l||o>u)return!1;if(o===0)return!0;var f=HW(r),d=f.startAngle,p=f.endAngle,h=s,m;if(d<=p){for(;h>p;)h-=360;for(;h<d;)h+=360;m=h>=d&&h<=p}else{for(;h>d;)h-=360;for(;h<p;)h+=360;m=h>=p&&h<=d}return m?Br(Br({},r),{},{radius:o,angle:VW(h,r)}):null},cP=function(t){return!A.isValidElement(t)&&!Z(t)&&typeof t!="boolean"?t.className:""};function zs(e){"@babel/helpers - typeof";return zs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zs(e)}var GW=["offset"];function qW(e){return ZW(e)||QW(e)||YW(e)||XW()}function XW(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function YW(e,t){if(e){if(typeof e=="string")return Xh(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Xh(e,t)}}function QW(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function ZW(e){if(Array.isArray(e))return Xh(e)}function Xh(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function JW(e,t){if(e==null)return{};var r=eU(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function eU(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Eb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ge(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Eb(Object(r),!0).forEach(function(n){tU(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Eb(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function tU(e,t,r){return t=rU(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function rU(e){var t=nU(e,"string");return zs(t)=="symbol"?t:t+""}function nU(e,t){if(zs(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(zs(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ws(){return Ws=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ws.apply(this,arguments)}var iU=function(t){var r=t.value,n=t.formatter,i=Q(t.children)?r:t.children;return Z(n)?n(i):i},aU=function(t,r){var n=yt(r-t),i=Math.min(Math.abs(r-t),360);return n*i},oU=function(t,r,n){var i=t.position,a=t.viewBox,o=t.offset,s=t.className,l=a,u=l.cx,f=l.cy,d=l.innerRadius,p=l.outerRadius,h=l.startAngle,m=l.endAngle,g=l.clockWise,x=(d+p)/2,y=aU(h,m),v=y>=0?1:-1,b,S;i==="insideStart"?(b=h+v*o,S=g):i==="insideEnd"?(b=m-v*o,S=!g):i==="end"&&(b=m+v*o,S=g),S=y<=0?S:!S;var w=xe(u,f,x,b),j=xe(u,f,x,b+(S?1:-1)*359),O="M".concat(w.x,",").concat(w.y,`
+ A`).concat(x,",").concat(x,",0,1,").concat(S?0:1,`,
+ `).concat(j.x,",").concat(j.y),_=Q(t.id)?Gn("recharts-radial-line-"):t.id;return k.createElement("text",Ws({},n,{dominantBaseline:"central",className:ee("recharts-radial-bar-label",s)}),k.createElement("defs",null,k.createElement("path",{id:_,d:O})),k.createElement("textPath",{xlinkHref:"#".concat(_)},r))},sU=function(t){var r=t.viewBox,n=t.offset,i=t.position,a=r,o=a.cx,s=a.cy,l=a.innerRadius,u=a.outerRadius,f=a.startAngle,d=a.endAngle,p=(f+d)/2;if(i==="outside"){var h=xe(o,s,u+n,p),m=h.x,g=h.y;return{x:m,y:g,textAnchor:m>=o?"start":"end",verticalAnchor:"middle"}}if(i==="center")return{x:o,y:s,textAnchor:"middle",verticalAnchor:"middle"};if(i==="centerTop")return{x:o,y:s,textAnchor:"middle",verticalAnchor:"start"};if(i==="centerBottom")return{x:o,y:s,textAnchor:"middle",verticalAnchor:"end"};var x=(l+u)/2,y=xe(o,s,x,p),v=y.x,b=y.y;return{x:v,y:b,textAnchor:"middle",verticalAnchor:"middle"}},lU=function(t){var r=t.viewBox,n=t.parentViewBox,i=t.offset,a=t.position,o=r,s=o.x,l=o.y,u=o.width,f=o.height,d=f>=0?1:-1,p=d*i,h=d>0?"end":"start",m=d>0?"start":"end",g=u>=0?1:-1,x=g*i,y=g>0?"end":"start",v=g>0?"start":"end";if(a==="top"){var b={x:s+u/2,y:l-d*i,textAnchor:"middle",verticalAnchor:h};return Ge(Ge({},b),n?{height:Math.max(l-n.y,0),width:u}:{})}if(a==="bottom"){var S={x:s+u/2,y:l+f+p,textAnchor:"middle",verticalAnchor:m};return Ge(Ge({},S),n?{height:Math.max(n.y+n.height-(l+f),0),width:u}:{})}if(a==="left"){var w={x:s-x,y:l+f/2,textAnchor:y,verticalAnchor:"middle"};return Ge(Ge({},w),n?{width:Math.max(w.x-n.x,0),height:f}:{})}if(a==="right"){var j={x:s+u+x,y:l+f/2,textAnchor:v,verticalAnchor:"middle"};return Ge(Ge({},j),n?{width:Math.max(n.x+n.width-j.x,0),height:f}:{})}var O=n?{width:u,height:f}:{};return a==="insideLeft"?Ge({x:s+x,y:l+f/2,textAnchor:v,verticalAnchor:"middle"},O):a==="insideRight"?Ge({x:s+u-x,y:l+f/2,textAnchor:y,verticalAnchor:"middle"},O):a==="insideTop"?Ge({x:s+u/2,y:l+p,textAnchor:"middle",verticalAnchor:m},O):a==="insideBottom"?Ge({x:s+u/2,y:l+f-p,textAnchor:"middle",verticalAnchor:h},O):a==="insideTopLeft"?Ge({x:s+x,y:l+p,textAnchor:v,verticalAnchor:m},O):a==="insideTopRight"?Ge({x:s+u-x,y:l+p,textAnchor:y,verticalAnchor:m},O):a==="insideBottomLeft"?Ge({x:s+x,y:l+f-p,textAnchor:v,verticalAnchor:h},O):a==="insideBottomRight"?Ge({x:s+u-x,y:l+f-p,textAnchor:y,verticalAnchor:h},O):io(a)&&(K(a.x)||fi(a.x))&&(K(a.y)||fi(a.y))?Ge({x:s+gt(a.x,u),y:l+gt(a.y,f),textAnchor:"end",verticalAnchor:"end"},O):Ge({x:s+u/2,y:l+f/2,textAnchor:"middle",verticalAnchor:"middle"},O)},uU=function(t){return"cx"in t&&K(t.cx)};function et(e){var t=e.offset,r=t===void 0?5:t,n=JW(e,GW),i=Ge({offset:r},n),a=i.viewBox,o=i.position,s=i.value,l=i.children,u=i.content,f=i.className,d=f===void 0?"":f,p=i.textBreakAll;if(!a||Q(s)&&Q(l)&&!A.isValidElement(u)&&!Z(u))return null;if(A.isValidElement(u))return A.cloneElement(u,i);var h;if(Z(u)){if(h=A.createElement(u,i),A.isValidElement(h))return h}else h=iU(i);var m=uU(a),g=X(i,!0);if(m&&(o==="insideStart"||o==="insideEnd"||o==="end"))return oU(i,h,g);var x=m?sU(i):lU(i);return k.createElement(Ai,Ws({className:ee("recharts-label",d)},g,x,{breakAll:p}),h)}et.displayName="Label";var fP=function(t){var r=t.cx,n=t.cy,i=t.angle,a=t.startAngle,o=t.endAngle,s=t.r,l=t.radius,u=t.innerRadius,f=t.outerRadius,d=t.x,p=t.y,h=t.top,m=t.left,g=t.width,x=t.height,y=t.clockWise,v=t.labelViewBox;if(v)return v;if(K(g)&&K(x)){if(K(d)&&K(p))return{x:d,y:p,width:g,height:x};if(K(h)&&K(m))return{x:h,y:m,width:g,height:x}}return K(d)&&K(p)?{x:d,y:p,width:0,height:0}:K(r)&&K(n)?{cx:r,cy:n,startAngle:a||i||0,endAngle:o||i||0,innerRadius:u||0,outerRadius:f||l||s||0,clockWise:y}:t.viewBox?t.viewBox:{}},cU=function(t,r){return t?t===!0?k.createElement(et,{key:"label-implicit",viewBox:r}):Ye(t)?k.createElement(et,{key:"label-implicit",viewBox:r,value:t}):A.isValidElement(t)?t.type===et?A.cloneElement(t,{key:"label-implicit",viewBox:r}):k.createElement(et,{key:"label-implicit",content:t,viewBox:r}):Z(t)?k.createElement(et,{key:"label-implicit",content:t,viewBox:r}):io(t)?k.createElement(et,Ws({viewBox:r},t,{key:"label-implicit"})):null:null},fU=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&n&&!t.label)return null;var i=t.children,a=fP(t),o=wt(i,et).map(function(l,u){return A.cloneElement(l,{viewBox:r||a,key:"label-".concat(u)})});if(!n)return o;var s=cU(t.label,r||a);return[s].concat(qW(o))};et.parseViewBox=fP;et.renderCallByParent=fU;function dU(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var pU=dU;const hU=de(pU);function Us(e){"@babel/helpers - typeof";return Us=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Us(e)}var mU=["valueAccessor"],vU=["data","dataKey","clockWise","id","textBreakAll"];function yU(e){return wU(e)||bU(e)||xU(e)||gU()}function gU(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xU(e,t){if(e){if(typeof e=="string")return Yh(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Yh(e,t)}}function bU(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function wU(e){if(Array.isArray(e))return Yh(e)}function Yh(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function gc(){return gc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},gc.apply(this,arguments)}function Tb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Cb(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Tb(Object(r),!0).forEach(function(n){jU(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Tb(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function jU(e,t,r){return t=SU(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function SU(e){var t=OU(e,"string");return Us(t)=="symbol"?t:t+""}function OU(e,t){if(Us(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Us(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Mb(e,t){if(e==null)return{};var r=_U(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function _U(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var PU=function(t){return Array.isArray(t.value)?hU(t.value):t.value};function br(e){var t=e.valueAccessor,r=t===void 0?PU:t,n=Mb(e,mU),i=n.data,a=n.dataKey,o=n.clockWise,s=n.id,l=n.textBreakAll,u=Mb(n,vU);return!i||!i.length?null:k.createElement(te,{className:"recharts-label-list"},i.map(function(f,d){var p=Q(a)?r(f,d):Oe(f&&f.payload,a),h=Q(s)?{}:{id:"".concat(s,"-").concat(d)};return k.createElement(et,gc({},X(f,!0),u,h,{parentViewBox:f.parentViewBox,value:p,textBreakAll:l,viewBox:et.parseViewBox(Q(o)?f:Cb(Cb({},f),{},{clockWise:o})),key:"label-".concat(d),index:d}))}))}br.displayName="LabelList";function AU(e,t){return e?e===!0?k.createElement(br,{key:"labelList-implicit",data:t}):k.isValidElement(e)||Z(e)?k.createElement(br,{key:"labelList-implicit",data:t,content:e}):io(e)?k.createElement(br,gc({data:t},e,{key:"labelList-implicit"})):null:null}function kU(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&r&&!e.label)return null;var n=e.children,i=wt(n,br).map(function(o,s){return A.cloneElement(o,{data:t,key:"labelList-".concat(s)})});if(!r)return i;var a=AU(e.label,t);return[a].concat(yU(i))}br.renderCallByParent=kU;function Ks(e){"@babel/helpers - typeof";return Ks=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ks(e)}function Qh(){return Qh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Qh.apply(this,arguments)}function Ib(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Lb(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ib(Object(r),!0).forEach(function(n){NU(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ib(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function NU(e,t,r){return t=$U(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function $U(e){var t=EU(e,"string");return Ks(t)=="symbol"?t:t+""}function EU(e,t){if(Ks(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ks(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var TU=function(t,r){var n=yt(r-t),i=Math.min(Math.abs(r-t),359.999);return n*i},Ql=function(t){var r=t.cx,n=t.cy,i=t.radius,a=t.angle,o=t.sign,s=t.isExternal,l=t.cornerRadius,u=t.cornerIsExternal,f=l*(s?1:-1)+i,d=Math.asin(l/f)/yc,p=u?a:a+o*d,h=xe(r,n,f,p),m=xe(r,n,i,p),g=u?a-o*d:a,x=xe(r,n,f*Math.cos(d*yc),g);return{center:h,circleTangency:m,lineTangency:x,theta:d}},dP=function(t){var r=t.cx,n=t.cy,i=t.innerRadius,a=t.outerRadius,o=t.startAngle,s=t.endAngle,l=TU(o,s),u=o+l,f=xe(r,n,a,o),d=xe(r,n,a,u),p="M ".concat(f.x,",").concat(f.y,`
+ A `).concat(a,",").concat(a,`,0,
+ `).concat(+(Math.abs(l)>180),",").concat(+(o>u),`,
+ `).concat(d.x,",").concat(d.y,`
+ `);if(i>0){var h=xe(r,n,i,o),m=xe(r,n,i,u);p+="L ".concat(m.x,",").concat(m.y,`
+ A `).concat(i,",").concat(i,`,0,
+ `).concat(+(Math.abs(l)>180),",").concat(+(o<=u),`,
+ `).concat(h.x,",").concat(h.y," Z")}else p+="L ".concat(r,",").concat(n," Z");return p},CU=function(t){var r=t.cx,n=t.cy,i=t.innerRadius,a=t.outerRadius,o=t.cornerRadius,s=t.forceCornerRadius,l=t.cornerIsExternal,u=t.startAngle,f=t.endAngle,d=yt(f-u),p=Ql({cx:r,cy:n,radius:a,angle:u,sign:d,cornerRadius:o,cornerIsExternal:l}),h=p.circleTangency,m=p.lineTangency,g=p.theta,x=Ql({cx:r,cy:n,radius:a,angle:f,sign:-d,cornerRadius:o,cornerIsExternal:l}),y=x.circleTangency,v=x.lineTangency,b=x.theta,S=l?Math.abs(u-f):Math.abs(u-f)-g-b;if(S<0)return s?"M ".concat(m.x,",").concat(m.y,`
+ a`).concat(o,",").concat(o,",0,0,1,").concat(o*2,`,0
+ a`).concat(o,",").concat(o,",0,0,1,").concat(-o*2,`,0
+ `):dP({cx:r,cy:n,innerRadius:i,outerRadius:a,startAngle:u,endAngle:f});var w="M ".concat(m.x,",").concat(m.y,`
+ A`).concat(o,",").concat(o,",0,0,").concat(+(d<0),",").concat(h.x,",").concat(h.y,`
+ A`).concat(a,",").concat(a,",0,").concat(+(S>180),",").concat(+(d<0),",").concat(y.x,",").concat(y.y,`
+ A`).concat(o,",").concat(o,",0,0,").concat(+(d<0),",").concat(v.x,",").concat(v.y,`
+ `);if(i>0){var j=Ql({cx:r,cy:n,radius:i,angle:u,sign:d,isExternal:!0,cornerRadius:o,cornerIsExternal:l}),O=j.circleTangency,_=j.lineTangency,P=j.theta,N=Ql({cx:r,cy:n,radius:i,angle:f,sign:-d,isExternal:!0,cornerRadius:o,cornerIsExternal:l}),T=N.circleTangency,$=N.lineTangency,I=N.theta,D=l?Math.abs(u-f):Math.abs(u-f)-P-I;if(D<0&&o===0)return"".concat(w,"L").concat(r,",").concat(n,"Z");w+="L".concat($.x,",").concat($.y,`
+ A`).concat(o,",").concat(o,",0,0,").concat(+(d<0),",").concat(T.x,",").concat(T.y,`
+ A`).concat(i,",").concat(i,",0,").concat(+(D>180),",").concat(+(d>0),",").concat(O.x,",").concat(O.y,`
+ A`).concat(o,",").concat(o,",0,0,").concat(+(d<0),",").concat(_.x,",").concat(_.y,"Z")}else w+="L".concat(r,",").concat(n,"Z");return w},MU={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},pP=function(t){var r=Lb(Lb({},MU),t),n=r.cx,i=r.cy,a=r.innerRadius,o=r.outerRadius,s=r.cornerRadius,l=r.forceCornerRadius,u=r.cornerIsExternal,f=r.startAngle,d=r.endAngle,p=r.className;if(o<a||f===d)return null;var h=ee("recharts-sector",p),m=o-a,g=gt(s,m,0,!0),x;return g>0&&Math.abs(f-d)<360?x=CU({cx:n,cy:i,innerRadius:a,outerRadius:o,cornerRadius:Math.min(g,m/2),forceCornerRadius:l,cornerIsExternal:u,startAngle:f,endAngle:d}):x=dP({cx:n,cy:i,innerRadius:a,outerRadius:o,startAngle:f,endAngle:d}),k.createElement("path",Qh({},X(r,!0),{className:h,d:x,role:"img"}))};function Hs(e){"@babel/helpers - typeof";return Hs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Hs(e)}function Zh(){return Zh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Zh.apply(this,arguments)}function Db(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Rb(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Db(Object(r),!0).forEach(function(n){IU(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Db(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function IU(e,t,r){return t=LU(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function LU(e){var t=DU(e,"string");return Hs(t)=="symbol"?t:t+""}function DU(e,t){if(Hs(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Hs(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Bb={curveBasisClosed:I3,curveBasisOpen:L3,curveBasis:M3,curveBumpX:b3,curveBumpY:w3,curveLinearClosed:D3,curveLinear:Nf,curveMonotoneX:R3,curveMonotoneY:B3,curveNatural:F3,curveStep:z3,curveStepAfter:U3,curveStepBefore:W3},Zl=function(t){return t.x===+t.x&&t.y===+t.y},To=function(t){return t.x},Co=function(t){return t.y},RU=function(t,r){if(Z(t))return t;var n="curve".concat(Af(t));return(n==="curveMonotone"||n==="curveBump")&&r?Bb["".concat(n).concat(r==="vertical"?"Y":"X")]:Bb[n]||Nf},BU=function(t){var r=t.type,n=r===void 0?"linear":r,i=t.points,a=i===void 0?[]:i,o=t.baseLine,s=t.layout,l=t.connectNulls,u=l===void 0?!1:l,f=RU(n,s),d=u?a.filter(function(g){return Zl(g)}):a,p;if(Array.isArray(o)){var h=u?o.filter(function(g){return Zl(g)}):o,m=d.map(function(g,x){return Rb(Rb({},g),{},{base:h[x]})});return s==="vertical"?p=Wl().y(Co).x1(To).x0(function(g){return g.base.x}):p=Wl().x(To).y1(Co).y0(function(g){return g.base.y}),p.defined(Zl).curve(f),p(m)}return s==="vertical"&&K(o)?p=Wl().y(Co).x1(To).x0(o):K(o)?p=Wl().x(To).y1(Co).y0(o):p=lO().x(To).y(Co),p.defined(Zl).curve(f),p(d)},Ln=function(t){var r=t.className,n=t.points,i=t.path,a=t.pathRef;if((!n||!n.length)&&!i)return null;var o=n&&n.length?BU(t):i;return A.createElement("path",Zh({},X(t,!1),Wu(t),{className:ee("recharts-curve",r),d:o,ref:a}))},hP={exports:{}},FU="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",zU=FU,WU=zU;function mP(){}function vP(){}vP.resetWarningCache=mP;var UU=function(){function e(n,i,a,o,s,l){if(l!==WU){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}e.isRequired=e;function t(){return e}var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:vP,resetWarningCache:mP};return r.PropTypes=r,r};hP.exports=UU();var KU=hP.exports;const ce=de(KU),{getOwnPropertyNames:HU,getOwnPropertySymbols:VU}=Object,{hasOwnProperty:GU}=Object.prototype;function ep(e,t){return function(n,i,a){return e(n,i,a)&&t(n,i,a)}}function Jl(e){return function(r,n,i){if(!r||!n||typeof r!="object"||typeof n!="object")return e(r,n,i);const{cache:a}=i,o=a.get(r),s=a.get(n);if(o&&s)return o===n&&s===r;a.set(r,n),a.set(n,r);const l=e(r,n,i);return a.delete(r),a.delete(n),l}}function qU(e){return e!=null?e[Symbol.toStringTag]:void 0}function Fb(e){return HU(e).concat(VU(e))}const XU=Object.hasOwn||((e,t)=>GU.call(e,t));function Di(e,t){return e===t||!e&&!t&&e!==e&&t!==t}const YU="__v",QU="__o",ZU="_owner",{getOwnPropertyDescriptor:zb,keys:Wb}=Object;function JU(e,t){return e.byteLength===t.byteLength&&xc(new Uint8Array(e),new Uint8Array(t))}function eK(e,t,r){let n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(!r.equals(e[n],t[n],n,n,e,t,r))return!1;return!0}function tK(e,t){return e.byteLength===t.byteLength&&xc(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function rK(e,t){return Di(e.getTime(),t.getTime())}function nK(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function iK(e,t){return e===t}function Ub(e,t,r){const n=e.size;if(n!==t.size)return!1;if(!n)return!0;const i=new Array(n),a=e.entries();let o,s,l=0;for(;(o=a.next())&&!o.done;){const u=t.entries();let f=!1,d=0;for(;(s=u.next())&&!s.done;){if(i[d]){d++;continue}const p=o.value,h=s.value;if(r.equals(p[0],h[0],l,d,e,t,r)&&r.equals(p[1],h[1],p[0],h[0],e,t,r)){f=i[d]=!0;break}d++}if(!f)return!1;l++}return!0}const aK=Di;function oK(e,t,r){const n=Wb(e);let i=n.length;if(Wb(t).length!==i)return!1;for(;i-- >0;)if(!yP(e,t,r,n[i]))return!1;return!0}function Mo(e,t,r){const n=Fb(e);let i=n.length;if(Fb(t).length!==i)return!1;let a,o,s;for(;i-- >0;)if(a=n[i],!yP(e,t,r,a)||(o=zb(e,a),s=zb(t,a),(o||s)&&(!o||!s||o.configurable!==s.configurable||o.enumerable!==s.enumerable||o.writable!==s.writable)))return!1;return!0}function sK(e,t){return Di(e.valueOf(),t.valueOf())}function lK(e,t){return e.source===t.source&&e.flags===t.flags}function Kb(e,t,r){const n=e.size;if(n!==t.size)return!1;if(!n)return!0;const i=new Array(n),a=e.values();let o,s;for(;(o=a.next())&&!o.done;){const l=t.values();let u=!1,f=0;for(;(s=l.next())&&!s.done;){if(!i[f]&&r.equals(o.value,s.value,o.value,s.value,e,t,r)){u=i[f]=!0;break}f++}if(!u)return!1}return!0}function xc(e,t){let r=e.byteLength;if(t.byteLength!==r||e.byteOffset!==t.byteOffset)return!1;for(;r-- >0;)if(e[r]!==t[r])return!1;return!0}function uK(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function yP(e,t,r,n){return(n===ZU||n===QU||n===YU)&&(e.$$typeof||t.$$typeof)?!0:XU(t,n)&&r.equals(e[n],t[n],n,n,e,t,r)}const cK="[object ArrayBuffer]",fK="[object Arguments]",dK="[object Boolean]",pK="[object DataView]",hK="[object Date]",mK="[object Error]",vK="[object Map]",yK="[object Number]",gK="[object Object]",xK="[object RegExp]",bK="[object Set]",wK="[object String]",jK={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},SK="[object URL]",OK=Object.prototype.toString;function _K({areArrayBuffersEqual:e,areArraysEqual:t,areDataViewsEqual:r,areDatesEqual:n,areErrorsEqual:i,areFunctionsEqual:a,areMapsEqual:o,areNumbersEqual:s,areObjectsEqual:l,arePrimitiveWrappersEqual:u,areRegExpsEqual:f,areSetsEqual:d,areTypedArraysEqual:p,areUrlsEqual:h,unknownTagComparators:m}){return function(x,y,v){if(x===y)return!0;if(x==null||y==null)return!1;const b=typeof x;if(b!==typeof y)return!1;if(b!=="object")return b==="number"?s(x,y,v):b==="function"?a(x,y,v):!1;const S=x.constructor;if(S!==y.constructor)return!1;if(S===Object)return l(x,y,v);if(Array.isArray(x))return t(x,y,v);if(S===Date)return n(x,y,v);if(S===RegExp)return f(x,y,v);if(S===Map)return o(x,y,v);if(S===Set)return d(x,y,v);const w=OK.call(x);if(w===hK)return n(x,y,v);if(w===xK)return f(x,y,v);if(w===vK)return o(x,y,v);if(w===bK)return d(x,y,v);if(w===gK)return typeof x.then!="function"&&typeof y.then!="function"&&l(x,y,v);if(w===SK)return h(x,y,v);if(w===mK)return i(x,y,v);if(w===fK)return l(x,y,v);if(jK[w])return p(x,y,v);if(w===cK)return e(x,y,v);if(w===pK)return r(x,y,v);if(w===dK||w===yK||w===wK)return u(x,y,v);if(m){let j=m[w];if(!j){const O=qU(x);O&&(j=m[O])}if(j)return j(x,y,v)}return!1}}function PK({circular:e,createCustomConfig:t,strict:r}){let n={areArrayBuffersEqual:JU,areArraysEqual:r?Mo:eK,areDataViewsEqual:tK,areDatesEqual:rK,areErrorsEqual:nK,areFunctionsEqual:iK,areMapsEqual:r?ep(Ub,Mo):Ub,areNumbersEqual:aK,areObjectsEqual:r?Mo:oK,arePrimitiveWrappersEqual:sK,areRegExpsEqual:lK,areSetsEqual:r?ep(Kb,Mo):Kb,areTypedArraysEqual:r?ep(xc,Mo):xc,areUrlsEqual:uK,unknownTagComparators:void 0};if(t&&(n=Object.assign({},n,t(n))),e){const i=Jl(n.areArraysEqual),a=Jl(n.areMapsEqual),o=Jl(n.areObjectsEqual),s=Jl(n.areSetsEqual);n=Object.assign({},n,{areArraysEqual:i,areMapsEqual:a,areObjectsEqual:o,areSetsEqual:s})}return n}function AK(e){return function(t,r,n,i,a,o,s){return e(t,r,s)}}function kK({circular:e,comparator:t,createState:r,equals:n,strict:i}){if(r)return function(s,l){const{cache:u=e?new WeakMap:void 0,meta:f}=r();return t(s,l,{cache:u,equals:n,meta:f,strict:i})};if(e)return function(s,l){return t(s,l,{cache:new WeakMap,equals:n,meta:void 0,strict:i})};const a={cache:void 0,equals:n,meta:void 0,strict:i};return function(s,l){return t(s,l,a)}}const NK=Yn();Yn({strict:!0});Yn({circular:!0});Yn({circular:!0,strict:!0});Yn({createInternalComparator:()=>Di});Yn({strict:!0,createInternalComparator:()=>Di});Yn({circular:!0,createInternalComparator:()=>Di});Yn({circular:!0,createInternalComparator:()=>Di,strict:!0});function Yn(e={}){const{circular:t=!1,createInternalComparator:r,createState:n,strict:i=!1}=e,a=PK(e),o=_K(a),s=r?r(o):AK(o);return kK({circular:t,comparator:o,createState:n,equals:s,strict:i})}function $K(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function Hb(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=-1,n=function i(a){r<0&&(r=a),a-r>t?(e(a),r=-1):$K(i)};requestAnimationFrame(n)}function Jh(e){"@babel/helpers - typeof";return Jh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Jh(e)}function EK(e){return IK(e)||MK(e)||CK(e)||TK()}function TK(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function CK(e,t){if(e){if(typeof e=="string")return Vb(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Vb(e,t)}}function Vb(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function MK(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function IK(e){if(Array.isArray(e))return e}function LK(){var e={},t=function(){return null},r=!1,n=function i(a){if(!r){if(Array.isArray(a)){if(!a.length)return;var o=a,s=EK(o),l=s[0],u=s.slice(1);if(typeof l=="number"){Hb(i.bind(null,u),l);return}i(l),Hb(i.bind(null,u));return}Jh(a)==="object"&&(e=a,t(e)),typeof a=="function"&&a()}};return{stop:function(){r=!0},start:function(a){r=!1,n(a)},subscribe:function(a){return t=a,function(){t=function(){return null}}}}}function Vs(e){"@babel/helpers - typeof";return Vs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Vs(e)}function Gb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function qb(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Gb(Object(r),!0).forEach(function(n){gP(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Gb(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function gP(e,t,r){return t=DK(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function DK(e){var t=RK(e,"string");return Vs(t)==="symbol"?t:String(t)}function RK(e,t){if(Vs(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Vs(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var BK=function(t,r){return[Object.keys(t),Object.keys(r)].reduce(function(n,i){return n.filter(function(a){return i.includes(a)})})},FK=function(t){return t},zK=function(t){return t.replace(/([A-Z])/g,function(r){return"-".concat(r.toLowerCase())})},Jo=function(t,r){return Object.keys(r).reduce(function(n,i){return qb(qb({},n),{},gP({},i,t(i,r[i])))},{})},Xb=function(t,r,n){return t.map(function(i){return"".concat(zK(i)," ").concat(r,"ms ").concat(n)}).join(",")};function WK(e,t){return HK(e)||KK(e,t)||xP(e,t)||UK()}function UK(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function KK(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,s=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(l=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(f){u=!0,i=f}finally{try{if(!l&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}function HK(e){if(Array.isArray(e))return e}function VK(e){return XK(e)||qK(e)||xP(e)||GK()}function GK(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xP(e,t){if(e){if(typeof e=="string")return em(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return em(e,t)}}function qK(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function XK(e){if(Array.isArray(e))return em(e)}function em(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var bc=1e-4,bP=function(t,r){return[0,3*t,3*r-6*t,3*t-3*r+1]},wP=function(t,r){return t.map(function(n,i){return n*Math.pow(r,i)}).reduce(function(n,i){return n+i})},Yb=function(t,r){return function(n){var i=bP(t,r);return wP(i,n)}},YK=function(t,r){return function(n){var i=bP(t,r),a=[].concat(VK(i.map(function(o,s){return o*s}).slice(1)),[0]);return wP(a,n)}},Qb=function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=r[0],a=r[1],o=r[2],s=r[3];if(r.length===1)switch(r[0]){case"linear":i=0,a=0,o=1,s=1;break;case"ease":i=.25,a=.1,o=.25,s=1;break;case"ease-in":i=.42,a=0,o=1,s=1;break;case"ease-out":i=.42,a=0,o=.58,s=1;break;case"ease-in-out":i=0,a=0,o=.58,s=1;break;default:{var l=r[0].split("(");if(l[0]==="cubic-bezier"&&l[1].split(")")[0].split(",").length===4){var u=l[1].split(")")[0].split(",").map(function(x){return parseFloat(x)}),f=WK(u,4);i=f[0],a=f[1],o=f[2],s=f[3]}}}var d=Yb(i,o),p=Yb(a,s),h=YK(i,o),m=function(y){return y>1?1:y<0?0:y},g=function(y){for(var v=y>1?1:y,b=v,S=0;S<8;++S){var w=d(b)-v,j=h(b);if(Math.abs(w-v)<bc||j<bc)return p(b);b=m(b-w/j)}return p(b)};return g.isStepper=!1,g},QK=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,i=t.damping,a=i===void 0?8:i,o=t.dt,s=o===void 0?17:o,l=function(f,d,p){var h=-(f-d)*n,m=p*a,g=p+(h-m)*s/1e3,x=p*s/1e3+f;return Math.abs(x-d)<bc&&Math.abs(g)<bc?[d,0]:[x,g]};return l.isStepper=!0,l.dt=s,l},ZK=function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=r[0];if(typeof i=="string")switch(i){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return Qb(i);case"spring":return QK();default:if(i.split("(")[0]==="cubic-bezier")return Qb(i)}return typeof i=="function"?i:null};function Gs(e){"@babel/helpers - typeof";return Gs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Gs(e)}function Zb(e){return tH(e)||eH(e)||jP(e)||JK()}function JK(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function eH(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function tH(e){if(Array.isArray(e))return rm(e)}function Jb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function it(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Jb(Object(r),!0).forEach(function(n){tm(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Jb(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function tm(e,t,r){return t=rH(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function rH(e){var t=nH(e,"string");return Gs(t)==="symbol"?t:String(t)}function nH(e,t){if(Gs(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Gs(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function iH(e,t){return sH(e)||oH(e,t)||jP(e,t)||aH()}function aH(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function jP(e,t){if(e){if(typeof e=="string")return rm(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return rm(e,t)}}function rm(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function oH(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,s=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(l=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(f){u=!0,i=f}finally{try{if(!l&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}function sH(e){if(Array.isArray(e))return e}var wc=function(t,r,n){return t+(r-t)*n},nm=function(t){var r=t.from,n=t.to;return r!==n},lH=function e(t,r,n){var i=Jo(function(a,o){if(nm(o)){var s=t(o.from,o.to,o.velocity),l=iH(s,2),u=l[0],f=l[1];return it(it({},o),{},{from:u,velocity:f})}return o},r);return n<1?Jo(function(a,o){return nm(o)?it(it({},o),{},{velocity:wc(o.velocity,i[a].velocity,n),from:wc(o.from,i[a].from,n)}):o},r):e(t,i,n-1)};const uH=function(e,t,r,n,i){var a=BK(e,t),o=a.reduce(function(x,y){return it(it({},x),{},tm({},y,[e[y],t[y]]))},{}),s=a.reduce(function(x,y){return it(it({},x),{},tm({},y,{from:e[y],velocity:0,to:t[y]}))},{}),l=-1,u,f,d=function(){return null},p=function(){return Jo(function(y,v){return v.from},s)},h=function(){return!Object.values(s).filter(nm).length},m=function(y){u||(u=y);var v=y-u,b=v/r.dt;s=lH(r,s,b),i(it(it(it({},e),t),p())),u=y,h()||(l=requestAnimationFrame(d))},g=function(y){f||(f=y);var v=(y-f)/n,b=Jo(function(w,j){return wc.apply(void 0,Zb(j).concat([r(v)]))},o);if(i(it(it(it({},e),t),b)),v<1)l=requestAnimationFrame(d);else{var S=Jo(function(w,j){return wc.apply(void 0,Zb(j).concat([r(1)]))},o);i(it(it(it({},e),t),S))}};return d=r.isStepper?m:g,function(){return requestAnimationFrame(d),function(){cancelAnimationFrame(l)}}};function Ma(e){"@babel/helpers - typeof";return Ma=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ma(e)}var cH=["children","begin","duration","attributeName","easing","isActive","steps","from","to","canBegin","onAnimationEnd","shouldReAnimate","onAnimationReStart"];function fH(e,t){if(e==null)return{};var r=dH(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function dH(e,t){if(e==null)return{};var r={},n=Object.keys(e),i,a;for(a=0;a<n.length;a++)i=n[a],!(t.indexOf(i)>=0)&&(r[i]=e[i]);return r}function tp(e){return vH(e)||mH(e)||hH(e)||pH()}function pH(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function hH(e,t){if(e){if(typeof e=="string")return im(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return im(e,t)}}function mH(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function vH(e){if(Array.isArray(e))return im(e)}function im(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function e1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function cr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?e1(Object(r),!0).forEach(function(n){Fo(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):e1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Fo(e,t,r){return t=SP(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function yH(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function gH(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,SP(n.key),n)}}function xH(e,t,r){return t&&gH(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function SP(e){var t=bH(e,"string");return Ma(t)==="symbol"?t:String(t)}function bH(e,t){if(Ma(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ma(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function wH(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&am(e,t)}function am(e,t){return am=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},am(e,t)}function jH(e){var t=SH();return function(){var n=jc(e),i;if(t){var a=jc(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return om(this,i)}}function om(e,t){if(t&&(Ma(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return sm(e)}function sm(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function SH(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function jc(e){return jc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},jc(e)}var or=function(e){wH(r,e);var t=jH(r);function r(n,i){var a;yH(this,r),a=t.call(this,n,i);var o=a.props,s=o.isActive,l=o.attributeName,u=o.from,f=o.to,d=o.steps,p=o.children,h=o.duration;if(a.handleStyleChange=a.handleStyleChange.bind(sm(a)),a.changeStyle=a.changeStyle.bind(sm(a)),!s||h<=0)return a.state={style:{}},typeof p=="function"&&(a.state={style:f}),om(a);if(d&&d.length)a.state={style:d[0].style};else if(u){if(typeof p=="function")return a.state={style:u},om(a);a.state={style:l?Fo({},l,u):u}}else a.state={style:{}};return a}return xH(r,[{key:"componentDidMount",value:function(){var i=this.props,a=i.isActive,o=i.canBegin;this.mounted=!0,!(!a||!o)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(i){var a=this.props,o=a.isActive,s=a.canBegin,l=a.attributeName,u=a.shouldReAnimate,f=a.to,d=a.from,p=this.state.style;if(s){if(!o){var h={style:l?Fo({},l,f):f};this.state&&p&&(l&&p[l]!==f||!l&&p!==f)&&this.setState(h);return}if(!(NK(i.to,f)&&i.canBegin&&i.isActive)){var m=!i.canBegin||!i.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var g=m||u?d:i.to;if(this.state&&p){var x={style:l?Fo({},l,g):g};(l&&p[l]!==g||!l&&p!==g)&&this.setState(x)}this.runAnimation(cr(cr({},this.props),{},{from:g,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var i=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),i&&i()}},{key:"handleStyleChange",value:function(i){this.changeStyle(i)}},{key:"changeStyle",value:function(i){this.mounted&&this.setState({style:i})}},{key:"runJSAnimation",value:function(i){var a=this,o=i.from,s=i.to,l=i.duration,u=i.easing,f=i.begin,d=i.onAnimationEnd,p=i.onAnimationStart,h=uH(o,s,ZK(u),l,this.changeStyle),m=function(){a.stopJSAnimation=h()};this.manager.start([p,f,m,l,d])}},{key:"runStepAnimation",value:function(i){var a=this,o=i.steps,s=i.begin,l=i.onAnimationStart,u=o[0],f=u.style,d=u.duration,p=d===void 0?0:d,h=function(g,x,y){if(y===0)return g;var v=x.duration,b=x.easing,S=b===void 0?"ease":b,w=x.style,j=x.properties,O=x.onAnimationEnd,_=y>0?o[y-1]:x,P=j||Object.keys(w);if(typeof S=="function"||S==="spring")return[].concat(tp(g),[a.runJSAnimation.bind(a,{from:_.style,to:w,duration:v,easing:S}),v]);var N=Xb(P,v,S),T=cr(cr(cr({},_.style),w),{},{transition:N});return[].concat(tp(g),[T,v,O]).filter(FK)};return this.manager.start([l].concat(tp(o.reduce(h,[f,Math.max(p,s)])),[i.onAnimationEnd]))}},{key:"runAnimation",value:function(i){this.manager||(this.manager=LK());var a=i.begin,o=i.duration,s=i.attributeName,l=i.to,u=i.easing,f=i.onAnimationStart,d=i.onAnimationEnd,p=i.steps,h=i.children,m=this.manager;if(this.unSubscribe=m.subscribe(this.handleStyleChange),typeof u=="function"||typeof h=="function"||u==="spring"){this.runJSAnimation(i);return}if(p.length>1){this.runStepAnimation(i);return}var g=s?Fo({},s,l):l,x=Xb(Object.keys(g),o,u);m.start([f,a,cr(cr({},g),{},{transition:x}),o,d])}},{key:"render",value:function(){var i=this.props,a=i.children;i.begin;var o=i.duration;i.attributeName,i.easing;var s=i.isActive;i.steps,i.from,i.to,i.canBegin,i.onAnimationEnd,i.shouldReAnimate,i.onAnimationReStart;var l=fH(i,cH),u=A.Children.count(a),f=this.state.style;if(typeof a=="function")return a(f);if(!s||u===0||o<=0)return a;var d=function(h){var m=h.props,g=m.style,x=g===void 0?{}:g,y=m.className,v=A.cloneElement(h,cr(cr({},l),{},{style:cr(cr({},x),f),className:y}));return v};return u===1?d(A.Children.only(a)):k.createElement("div",null,A.Children.map(a,function(p){return d(p)}))}}]),r}(A.PureComponent);or.displayName="Animate";or.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};or.propTypes={from:ce.oneOfType([ce.object,ce.string]),to:ce.oneOfType([ce.object,ce.string]),attributeName:ce.string,duration:ce.number,begin:ce.number,easing:ce.oneOfType([ce.string,ce.func]),steps:ce.arrayOf(ce.shape({duration:ce.number.isRequired,style:ce.object.isRequired,easing:ce.oneOfType([ce.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),ce.func]),properties:ce.arrayOf("string"),onAnimationEnd:ce.func})),children:ce.oneOfType([ce.node,ce.func]),isActive:ce.bool,canBegin:ce.bool,onAnimationEnd:ce.func,shouldReAnimate:ce.bool,onAnimationStart:ce.func,onAnimationReStart:ce.func};function qs(e){"@babel/helpers - typeof";return qs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},qs(e)}function Sc(){return Sc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Sc.apply(this,arguments)}function OH(e,t){return kH(e)||AH(e,t)||PH(e,t)||_H()}function _H(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function PH(e,t){if(e){if(typeof e=="string")return t1(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return t1(e,t)}}function t1(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function AH(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,s=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(l=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(f){u=!0,i=f}finally{try{if(!l&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}function kH(e){if(Array.isArray(e))return e}function r1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function n1(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?r1(Object(r),!0).forEach(function(n){NH(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):r1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function NH(e,t,r){return t=$H(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function $H(e){var t=EH(e,"string");return qs(t)=="symbol"?t:t+""}function EH(e,t){if(qs(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(qs(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var i1=function(t,r,n,i,a){var o=Math.min(Math.abs(n)/2,Math.abs(i)/2),s=i>=0?1:-1,l=n>=0?1:-1,u=i>=0&&n>=0||i<0&&n<0?1:0,f;if(o>0&&a instanceof Array){for(var d=[0,0,0,0],p=0,h=4;p<h;p++)d[p]=a[p]>o?o:a[p];f="M".concat(t,",").concat(r+s*d[0]),d[0]>0&&(f+="A ".concat(d[0],",").concat(d[0],",0,0,").concat(u,",").concat(t+l*d[0],",").concat(r)),f+="L ".concat(t+n-l*d[1],",").concat(r),d[1]>0&&(f+="A ".concat(d[1],",").concat(d[1],",0,0,").concat(u,`,
+ `).concat(t+n,",").concat(r+s*d[1])),f+="L ".concat(t+n,",").concat(r+i-s*d[2]),d[2]>0&&(f+="A ".concat(d[2],",").concat(d[2],",0,0,").concat(u,`,
+ `).concat(t+n-l*d[2],",").concat(r+i)),f+="L ".concat(t+l*d[3],",").concat(r+i),d[3]>0&&(f+="A ".concat(d[3],",").concat(d[3],",0,0,").concat(u,`,
+ `).concat(t,",").concat(r+i-s*d[3])),f+="Z"}else if(o>0&&a===+a&&a>0){var m=Math.min(o,a);f="M ".concat(t,",").concat(r+s*m,`
+ A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(t+l*m,",").concat(r,`
+ L `).concat(t+n-l*m,",").concat(r,`
+ A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(t+n,",").concat(r+s*m,`
+ L `).concat(t+n,",").concat(r+i-s*m,`
+ A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(t+n-l*m,",").concat(r+i,`
+ L `).concat(t+l*m,",").concat(r+i,`
+ A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(t,",").concat(r+i-s*m," Z")}else f="M ".concat(t,",").concat(r," h ").concat(n," v ").concat(i," h ").concat(-n," Z");return f},TH=function(t,r){if(!t||!r)return!1;var n=t.x,i=t.y,a=r.x,o=r.y,s=r.width,l=r.height;if(Math.abs(s)>0&&Math.abs(l)>0){var u=Math.min(a,a+s),f=Math.max(a,a+s),d=Math.min(o,o+l),p=Math.max(o,o+l);return n>=u&&n<=f&&i>=d&&i<=p}return!1},CH={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},Ey=function(t){var r=n1(n1({},CH),t),n=A.useRef(),i=A.useState(-1),a=OH(i,2),o=a[0],s=a[1];A.useEffect(function(){if(n.current&&n.current.getTotalLength)try{var S=n.current.getTotalLength();S&&s(S)}catch{}},[]);var l=r.x,u=r.y,f=r.width,d=r.height,p=r.radius,h=r.className,m=r.animationEasing,g=r.animationDuration,x=r.animationBegin,y=r.isAnimationActive,v=r.isUpdateAnimationActive;if(l!==+l||u!==+u||f!==+f||d!==+d||f===0||d===0)return null;var b=ee("recharts-rectangle",h);return v?k.createElement(or,{canBegin:o>0,from:{width:f,height:d,x:l,y:u},to:{width:f,height:d,x:l,y:u},duration:g,animationEasing:m,isActive:v},function(S){var w=S.width,j=S.height,O=S.x,_=S.y;return k.createElement(or,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:x,duration:g,isActive:y,easing:m},k.createElement("path",Sc({},X(r,!0),{className:b,d:i1(O,_,w,j,p),ref:n})))}):k.createElement("path",Sc({},X(r,!0),{className:b,d:i1(l,u,f,d,p)}))},MH=["points","className","baseLinePoints","connectNulls"];function ia(){return ia=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ia.apply(this,arguments)}function IH(e,t){if(e==null)return{};var r=LH(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function LH(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function a1(e){return FH(e)||BH(e)||RH(e)||DH()}function DH(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function RH(e,t){if(e){if(typeof e=="string")return lm(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return lm(e,t)}}function BH(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function FH(e){if(Array.isArray(e))return lm(e)}function lm(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var o1=function(t){return t&&t.x===+t.x&&t.y===+t.y},zH=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],r=[[]];return t.forEach(function(n){o1(n)?r[r.length-1].push(n):r[r.length-1].length>0&&r.push([])}),o1(t[0])&&r[r.length-1].push(t[0]),r[r.length-1].length<=0&&(r=r.slice(0,-1)),r},es=function(t,r){var n=zH(t);r&&(n=[n.reduce(function(a,o){return[].concat(a1(a),a1(o))},[])]);var i=n.map(function(a){return a.reduce(function(o,s,l){return"".concat(o).concat(l===0?"M":"L").concat(s.x,",").concat(s.y)},"")}).join("");return n.length===1?"".concat(i,"Z"):i},WH=function(t,r,n){var i=es(t,n);return"".concat(i.slice(-1)==="Z"?i.slice(0,-1):i,"L").concat(es(r.reverse(),n).slice(1))},UH=function(t){var r=t.points,n=t.className,i=t.baseLinePoints,a=t.connectNulls,o=IH(t,MH);if(!r||!r.length)return null;var s=ee("recharts-polygon",n);if(i&&i.length){var l=o.stroke&&o.stroke!=="none",u=WH(r,i,a);return k.createElement("g",{className:s},k.createElement("path",ia({},X(o,!0),{fill:u.slice(-1)==="Z"?o.fill:"none",stroke:"none",d:u})),l?k.createElement("path",ia({},X(o,!0),{fill:"none",d:es(r,a)})):null,l?k.createElement("path",ia({},X(o,!0),{fill:"none",d:es(i,a)})):null)}var f=es(r,a);return k.createElement("path",ia({},X(o,!0),{fill:f.slice(-1)==="Z"?o.fill:"none",className:s,d:f}))};function um(){return um=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},um.apply(this,arguments)}var xl=function(t){var r=t.cx,n=t.cy,i=t.r,a=t.className,o=ee("recharts-dot",a);return r===+r&&n===+n&&i===+i?A.createElement("circle",um({},X(t,!1),Wu(t),{className:o,cx:r,cy:n,r:i})):null};function Xs(e){"@babel/helpers - typeof";return Xs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Xs(e)}var KH=["x","y","top","left","width","height","className"];function cm(){return cm=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},cm.apply(this,arguments)}function s1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function HH(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?s1(Object(r),!0).forEach(function(n){VH(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function VH(e,t,r){return t=GH(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function GH(e){var t=qH(e,"string");return Xs(t)=="symbol"?t:t+""}function qH(e,t){if(Xs(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Xs(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function XH(e,t){if(e==null)return{};var r=YH(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function YH(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var QH=function(t,r,n,i,a,o){return"M".concat(t,",").concat(a,"v").concat(i,"M").concat(o,",").concat(r,"h").concat(n)},ZH=function(t){var r=t.x,n=r===void 0?0:r,i=t.y,a=i===void 0?0:i,o=t.top,s=o===void 0?0:o,l=t.left,u=l===void 0?0:l,f=t.width,d=f===void 0?0:f,p=t.height,h=p===void 0?0:p,m=t.className,g=XH(t,KH),x=HH({x:n,y:a,top:s,left:u,width:d,height:h},g);return!K(n)||!K(a)||!K(d)||!K(h)||!K(s)||!K(u)?null:k.createElement("path",cm({},X(x,!0),{className:ee("recharts-cross",m),d:QH(n,a,d,h,s,u)}))},JH=zf,eV=I_,tV=Lr;function rV(e,t){return e&&e.length?JH(e,tV(t),eV):void 0}var nV=rV;const iV=de(nV);var aV=zf,oV=Lr,sV=L_;function lV(e,t){return e&&e.length?aV(e,oV(t),sV):void 0}var uV=lV;const cV=de(uV);var fV=["cx","cy","angle","ticks","axisLine"],dV=["ticks","tick","angle","tickFormatter","stroke"];function Ia(e){"@babel/helpers - typeof";return Ia=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ia(e)}function ts(){return ts=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ts.apply(this,arguments)}function l1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ei(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?l1(Object(r),!0).forEach(function(n){Hf(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function u1(e,t){if(e==null)return{};var r=pV(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function pV(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function hV(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c1(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,_P(n.key),n)}}function mV(e,t,r){return t&&c1(e.prototype,t),r&&c1(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function vV(e,t,r){return t=Oc(t),yV(e,OP()?Reflect.construct(t,r||[],Oc(e).constructor):t.apply(e,r))}function yV(e,t){if(t&&(Ia(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return gV(e)}function gV(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function OP(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(OP=function(){return!!e})()}function Oc(e){return Oc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Oc(e)}function xV(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&fm(e,t)}function fm(e,t){return fm=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},fm(e,t)}function Hf(e,t,r){return t=_P(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _P(e){var t=bV(e,"string");return Ia(t)=="symbol"?t:t+""}function bV(e,t){if(Ia(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ia(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Vf=function(e){function t(){return hV(this,t),vV(this,t,arguments)}return xV(t,e),mV(t,[{key:"getTickValueCoord",value:function(n){var i=n.coordinate,a=this.props,o=a.angle,s=a.cx,l=a.cy;return xe(s,l,i,o)}},{key:"getTickTextAnchor",value:function(){var n=this.props.orientation,i;switch(n){case"left":i="end";break;case"right":i="start";break;default:i="middle";break}return i}},{key:"getViewBox",value:function(){var n=this.props,i=n.cx,a=n.cy,o=n.angle,s=n.ticks,l=iV(s,function(f){return f.coordinate||0}),u=cV(s,function(f){return f.coordinate||0});return{cx:i,cy:a,startAngle:o,endAngle:o,innerRadius:u.coordinate||0,outerRadius:l.coordinate||0}}},{key:"renderAxisLine",value:function(){var n=this.props,i=n.cx,a=n.cy,o=n.angle,s=n.ticks,l=n.axisLine,u=u1(n,fV),f=s.reduce(function(m,g){return[Math.min(m[0],g.coordinate),Math.max(m[1],g.coordinate)]},[1/0,-1/0]),d=xe(i,a,f[0],o),p=xe(i,a,f[1],o),h=ei(ei(ei({},X(u,!1)),{},{fill:"none"},X(l,!1)),{},{x1:d.x,y1:d.y,x2:p.x,y2:p.y});return k.createElement("line",ts({className:"recharts-polar-radius-axis-line"},h))}},{key:"renderTicks",value:function(){var n=this,i=this.props,a=i.ticks,o=i.tick,s=i.angle,l=i.tickFormatter,u=i.stroke,f=u1(i,dV),d=this.getTickTextAnchor(),p=X(f,!1),h=X(o,!1),m=a.map(function(g,x){var y=n.getTickValueCoord(g),v=ei(ei(ei(ei({textAnchor:d,transform:"rotate(".concat(90-s,", ").concat(y.x,", ").concat(y.y,")")},p),{},{stroke:"none",fill:u},h),{},{index:x},y),{},{payload:g});return k.createElement(te,ts({className:ee("recharts-polar-radius-axis-tick",cP(o)),key:"tick-".concat(g.coordinate)},Bn(n.props,g,x)),t.renderTickItem(o,v,l?l(g.value,x):g.value))});return k.createElement(te,{className:"recharts-polar-radius-axis-ticks"},m)}},{key:"render",value:function(){var n=this.props,i=n.ticks,a=n.axisLine,o=n.tick;return!i||!i.length?null:k.createElement(te,{className:ee("recharts-polar-radius-axis",this.props.className)},a&&this.renderAxisLine(),o&&this.renderTicks(),et.renderCallByParent(this.props,this.getViewBox()))}}],[{key:"renderTickItem",value:function(n,i,a){var o;return k.isValidElement(n)?o=k.cloneElement(n,i):Z(n)?o=n(i):o=k.createElement(Ai,ts({},i,{className:"recharts-polar-radius-axis-tick-value"}),a),o}}])}(A.PureComponent);Hf(Vf,"displayName","PolarRadiusAxis");Hf(Vf,"axisType","radiusAxis");Hf(Vf,"defaultProps",{type:"number",radiusAxisId:0,cx:0,cy:0,angle:0,orientation:"right",stroke:"#ccc",axisLine:!0,tick:!0,tickCount:5,allowDataOverflow:!1,scale:"auto",allowDuplicatedCategory:!0});function La(e){"@babel/helpers - typeof";return La=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},La(e)}function si(){return si=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},si.apply(this,arguments)}function f1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ti(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?f1(Object(r),!0).forEach(function(n){Gf(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function wV(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function d1(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,AP(n.key),n)}}function jV(e,t,r){return t&&d1(e.prototype,t),r&&d1(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function SV(e,t,r){return t=_c(t),OV(e,PP()?Reflect.construct(t,r||[],_c(e).constructor):t.apply(e,r))}function OV(e,t){if(t&&(La(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _V(e)}function _V(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function PP(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(PP=function(){return!!e})()}function _c(e){return _c=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},_c(e)}function PV(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&dm(e,t)}function dm(e,t){return dm=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},dm(e,t)}function Gf(e,t,r){return t=AP(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function AP(e){var t=AV(e,"string");return La(t)=="symbol"?t:t+""}function AV(e,t){if(La(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(La(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var kV=Math.PI/180,p1=1e-5,qf=function(e){function t(){return wV(this,t),SV(this,t,arguments)}return PV(t,e),jV(t,[{key:"getTickLineCoord",value:function(n){var i=this.props,a=i.cx,o=i.cy,s=i.radius,l=i.orientation,u=i.tickSize,f=u||8,d=xe(a,o,s,n.coordinate),p=xe(a,o,s+(l==="inner"?-1:1)*f,n.coordinate);return{x1:d.x,y1:d.y,x2:p.x,y2:p.y}}},{key:"getTickTextAnchor",value:function(n){var i=this.props.orientation,a=Math.cos(-n.coordinate*kV),o;return a>p1?o=i==="outer"?"start":"end":a<-p1?o=i==="outer"?"end":"start":o="middle",o}},{key:"renderAxisLine",value:function(){var n=this.props,i=n.cx,a=n.cy,o=n.radius,s=n.axisLine,l=n.axisLineType,u=ti(ti({},X(this.props,!1)),{},{fill:"none"},X(s,!1));if(l==="circle")return k.createElement(xl,si({className:"recharts-polar-angle-axis-line"},u,{cx:i,cy:a,r:o}));var f=this.props.ticks,d=f.map(function(p){return xe(i,a,o,p.coordinate)});return k.createElement(UH,si({className:"recharts-polar-angle-axis-line"},u,{points:d}))}},{key:"renderTicks",value:function(){var n=this,i=this.props,a=i.ticks,o=i.tick,s=i.tickLine,l=i.tickFormatter,u=i.stroke,f=X(this.props,!1),d=X(o,!1),p=ti(ti({},f),{},{fill:"none"},X(s,!1)),h=a.map(function(m,g){var x=n.getTickLineCoord(m),y=n.getTickTextAnchor(m),v=ti(ti(ti({textAnchor:y},f),{},{stroke:"none",fill:u},d),{},{index:g,payload:m,x:x.x2,y:x.y2});return k.createElement(te,si({className:ee("recharts-polar-angle-axis-tick",cP(o)),key:"tick-".concat(m.coordinate)},Bn(n.props,m,g)),s&&k.createElement("line",si({className:"recharts-polar-angle-axis-tick-line"},p,x)),o&&t.renderTickItem(o,v,l?l(m.value,g):m.value))});return k.createElement(te,{className:"recharts-polar-angle-axis-ticks"},h)}},{key:"render",value:function(){var n=this.props,i=n.ticks,a=n.radius,o=n.axisLine;return a<=0||!i||!i.length?null:k.createElement(te,{className:ee("recharts-polar-angle-axis",this.props.className)},o&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(n,i,a){var o;return k.isValidElement(n)?o=k.cloneElement(n,i):Z(n)?o=n(i):o=k.createElement(Ai,si({},i,{className:"recharts-polar-angle-axis-tick-value"}),a),o}}])}(A.PureComponent);Gf(qf,"displayName","PolarAngleAxis");Gf(qf,"axisType","angleAxis");Gf(qf,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var NV=TO,$V=NV(Object.getPrototypeOf,Object),EV=$V,TV=an,CV=EV,MV=on,IV="[object Object]",LV=Function.prototype,DV=Object.prototype,kP=LV.toString,RV=DV.hasOwnProperty,BV=kP.call(Object);function FV(e){if(!MV(e)||TV(e)!=IV)return!1;var t=CV(e);if(t===null)return!0;var r=RV.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&kP.call(r)==BV}var zV=FV;const WV=de(zV);var UV=an,KV=on,HV="[object Boolean]";function VV(e){return e===!0||e===!1||KV(e)&&UV(e)==HV}var GV=VV;const qV=de(GV);function Ys(e){"@babel/helpers - typeof";return Ys=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ys(e)}function Pc(){return Pc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Pc.apply(this,arguments)}function XV(e,t){return JV(e)||ZV(e,t)||QV(e,t)||YV()}function YV(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function QV(e,t){if(e){if(typeof e=="string")return h1(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return h1(e,t)}}function h1(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function ZV(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,s=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(l=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(f){u=!0,i=f}finally{try{if(!l&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}function JV(e){if(Array.isArray(e))return e}function m1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function v1(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?m1(Object(r),!0).forEach(function(n){eG(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):m1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function eG(e,t,r){return t=tG(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function tG(e){var t=rG(e,"string");return Ys(t)=="symbol"?t:t+""}function rG(e,t){if(Ys(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ys(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var y1=function(t,r,n,i,a){var o=n-i,s;return s="M ".concat(t,",").concat(r),s+="L ".concat(t+n,",").concat(r),s+="L ".concat(t+n-o/2,",").concat(r+a),s+="L ".concat(t+n-o/2-i,",").concat(r+a),s+="L ".concat(t,",").concat(r," Z"),s},nG={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},iG=function(t){var r=v1(v1({},nG),t),n=A.useRef(),i=A.useState(-1),a=XV(i,2),o=a[0],s=a[1];A.useEffect(function(){if(n.current&&n.current.getTotalLength)try{var b=n.current.getTotalLength();b&&s(b)}catch{}},[]);var l=r.x,u=r.y,f=r.upperWidth,d=r.lowerWidth,p=r.height,h=r.className,m=r.animationEasing,g=r.animationDuration,x=r.animationBegin,y=r.isUpdateAnimationActive;if(l!==+l||u!==+u||f!==+f||d!==+d||p!==+p||f===0&&d===0||p===0)return null;var v=ee("recharts-trapezoid",h);return y?k.createElement(or,{canBegin:o>0,from:{upperWidth:0,lowerWidth:0,height:p,x:l,y:u},to:{upperWidth:f,lowerWidth:d,height:p,x:l,y:u},duration:g,animationEasing:m,isActive:y},function(b){var S=b.upperWidth,w=b.lowerWidth,j=b.height,O=b.x,_=b.y;return k.createElement(or,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:x,duration:g,easing:m},k.createElement("path",Pc({},X(r,!0),{className:v,d:y1(O,_,S,w,j),ref:n})))}):k.createElement("g",null,k.createElement("path",Pc({},X(r,!0),{className:v,d:y1(l,u,f,d,p)})))},aG=["option","shapeType","propTransformer","activeClassName","isActive"];function Qs(e){"@babel/helpers - typeof";return Qs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Qs(e)}function oG(e,t){if(e==null)return{};var r=sG(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function sG(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function g1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ac(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?g1(Object(r),!0).forEach(function(n){lG(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):g1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function lG(e,t,r){return t=uG(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function uG(e){var t=cG(e,"string");return Qs(t)=="symbol"?t:t+""}function cG(e,t){if(Qs(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Qs(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function fG(e,t){return Ac(Ac({},t),e)}function dG(e,t){return e==="symbols"}function x1(e){var t=e.shapeType,r=e.elementProps;switch(t){case"rectangle":return k.createElement(Ey,r);case"trapezoid":return k.createElement(iG,r);case"sector":return k.createElement(pP,r);case"symbols":if(dG(t))return k.createElement(Ef,r);break;default:return null}}function pG(e){return A.isValidElement(e)?e.props:e}function kc(e){var t=e.option,r=e.shapeType,n=e.propTransformer,i=n===void 0?fG:n,a=e.activeClassName,o=a===void 0?"recharts-active-shape":a,s=e.isActive,l=oG(e,aG),u;if(A.isValidElement(t))u=A.cloneElement(t,Ac(Ac({},l),pG(t)));else if(Z(t))u=t(l);else if(WV(t)&&!qV(t)){var f=i(t,l);u=k.createElement(x1,{shapeType:r,elementProps:f})}else{var d=l;u=k.createElement(x1,{shapeType:r,elementProps:d})}return s?k.createElement(te,{className:o},u):u}function Xf(e,t){return t!=null&&"trapezoids"in e.props}function Yf(e,t){return t!=null&&"sectors"in e.props}function Zs(e,t){return t!=null&&"points"in e.props}function hG(e,t){var r,n,i=e.x===(t==null||(r=t.labelViewBox)===null||r===void 0?void 0:r.x)||e.x===t.x,a=e.y===(t==null||(n=t.labelViewBox)===null||n===void 0?void 0:n.y)||e.y===t.y;return i&&a}function mG(e,t){var r=e.endAngle===t.endAngle,n=e.startAngle===t.startAngle;return r&&n}function vG(e,t){var r=e.x===t.x,n=e.y===t.y,i=e.z===t.z;return r&&n&&i}function yG(e,t){var r;return Xf(e,t)?r=hG:Yf(e,t)?r=mG:Zs(e,t)&&(r=vG),r}function gG(e,t){var r;return Xf(e,t)?r="trapezoids":Yf(e,t)?r="sectors":Zs(e,t)&&(r="points"),r}function xG(e,t){if(Xf(e,t)){var r;return(r=t.tooltipPayload)===null||r===void 0||(r=r[0])===null||r===void 0||(r=r.payload)===null||r===void 0?void 0:r.payload}if(Yf(e,t)){var n;return(n=t.tooltipPayload)===null||n===void 0||(n=n[0])===null||n===void 0||(n=n.payload)===null||n===void 0?void 0:n.payload}return Zs(e,t)?t.payload:{}}function bG(e){var t=e.activeTooltipItem,r=e.graphicalItem,n=e.itemData,i=gG(r,t),a=xG(r,t),o=n.filter(function(l,u){var f=Fn(a,l),d=r.props[i].filter(function(m){var g=yG(r,t);return g(m,t)}),p=r.props[i].indexOf(d[d.length-1]),h=u===p;return f&&h}),s=n.indexOf(o[o.length-1]);return s}var mu;function Da(e){"@babel/helpers - typeof";return Da=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Da(e)}function aa(){return aa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},aa.apply(this,arguments)}function b1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ve(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?b1(Object(r),!0).forEach(function(n){Jt(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):b1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function wG(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function w1(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,$P(n.key),n)}}function jG(e,t,r){return t&&w1(e.prototype,t),r&&w1(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function SG(e,t,r){return t=Nc(t),OG(e,NP()?Reflect.construct(t,r||[],Nc(e).constructor):t.apply(e,r))}function OG(e,t){if(t&&(Da(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _G(e)}function _G(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function NP(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(NP=function(){return!!e})()}function Nc(e){return Nc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Nc(e)}function PG(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&pm(e,t)}function pm(e,t){return pm=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},pm(e,t)}function Jt(e,t,r){return t=$P(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function $P(e){var t=AG(e,"string");return Da(t)=="symbol"?t:t+""}function AG(e,t){if(Da(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Da(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var un=function(e){function t(r){var n;return wG(this,t),n=SG(this,t,[r]),Jt(n,"pieRef",null),Jt(n,"sectorRefs",[]),Jt(n,"id",Gn("recharts-pie-")),Jt(n,"handleAnimationEnd",function(){var i=n.props.onAnimationEnd;n.setState({isAnimationFinished:!0}),Z(i)&&i()}),Jt(n,"handleAnimationStart",function(){var i=n.props.onAnimationStart;n.setState({isAnimationFinished:!1}),Z(i)&&i()}),n.state={isAnimationFinished:!r.isAnimationActive,prevIsAnimationActive:r.isAnimationActive,prevAnimationId:r.animationId,sectorToFocus:0},n}return PG(t,e),jG(t,[{key:"isActiveIndex",value:function(n){var i=this.props.activeIndex;return Array.isArray(i)?i.indexOf(n)!==-1:n===i}},{key:"hasActiveIndex",value:function(){var n=this.props.activeIndex;return Array.isArray(n)?n.length!==0:n||n===0}},{key:"renderLabels",value:function(n){var i=this.props.isAnimationActive;if(i&&!this.state.isAnimationFinished)return null;var a=this.props,o=a.label,s=a.labelLine,l=a.dataKey,u=a.valueKey,f=X(this.props,!1),d=X(o,!1),p=X(s,!1),h=o&&o.offsetRadius||20,m=n.map(function(g,x){var y=(g.startAngle+g.endAngle)/2,v=xe(g.cx,g.cy,g.outerRadius+h,y),b=ve(ve(ve(ve({},f),g),{},{stroke:"none"},d),{},{index:x,textAnchor:t.getTextAnchor(v.x,g.cx)},v),S=ve(ve(ve(ve({},f),g),{},{fill:"none",stroke:g.fill},p),{},{index:x,points:[xe(g.cx,g.cy,g.outerRadius,y),v]}),w=l;return Q(l)&&Q(u)?w="value":Q(l)&&(w=u),k.createElement(te,{key:"label-".concat(g.startAngle,"-").concat(g.endAngle,"-").concat(g.midAngle,"-").concat(x)},s&&t.renderLabelLineItem(s,S,"line"),t.renderLabelItem(o,b,Oe(g,w)))});return k.createElement(te,{className:"recharts-pie-labels"},m)}},{key:"renderSectorsStatically",value:function(n){var i=this,a=this.props,o=a.activeShape,s=a.blendStroke,l=a.inactiveShape;return n.map(function(u,f){if((u==null?void 0:u.startAngle)===0&&(u==null?void 0:u.endAngle)===0&&n.length!==1)return null;var d=i.isActiveIndex(f),p=l&&i.hasActiveIndex()?l:null,h=d?o:p,m=ve(ve({},u),{},{stroke:s?u.fill:u.stroke,tabIndex:-1});return k.createElement(te,aa({ref:function(x){x&&!i.sectorRefs.includes(x)&&i.sectorRefs.push(x)},tabIndex:-1,className:"recharts-pie-sector"},Bn(i.props,u,f),{key:"sector-".concat(u==null?void 0:u.startAngle,"-").concat(u==null?void 0:u.endAngle,"-").concat(u.midAngle,"-").concat(f)}),k.createElement(kc,aa({option:h,isActive:d,shapeType:"sector"},m)))})}},{key:"renderSectorsWithAnimation",value:function(){var n=this,i=this.props,a=i.sectors,o=i.isAnimationActive,s=i.animationBegin,l=i.animationDuration,u=i.animationEasing,f=i.animationId,d=this.state,p=d.prevSectors,h=d.prevIsAnimationActive;return k.createElement(or,{begin:s,duration:l,isActive:o,easing:u,from:{t:0},to:{t:1},key:"pie-".concat(f,"-").concat(h),onAnimationStart:this.handleAnimationStart,onAnimationEnd:this.handleAnimationEnd},function(m){var g=m.t,x=[],y=a&&a[0],v=y.startAngle;return a.forEach(function(b,S){var w=p&&p[S],j=S>0?Wt(b,"paddingAngle",0):0;if(w){var O=$e(w.endAngle-w.startAngle,b.endAngle-b.startAngle),_=ve(ve({},b),{},{startAngle:v+j,endAngle:v+O(g)+j});x.push(_),v=_.endAngle}else{var P=b.endAngle,N=b.startAngle,T=$e(0,P-N),$=T(g),I=ve(ve({},b),{},{startAngle:v+j,endAngle:v+$+j});x.push(I),v=I.endAngle}}),k.createElement(te,null,n.renderSectorsStatically(x))})}},{key:"attachKeyboardHandlers",value:function(n){var i=this;n.onkeydown=function(a){if(!a.altKey)switch(a.key){case"ArrowLeft":{var o=++i.state.sectorToFocus%i.sectorRefs.length;i.sectorRefs[o].focus(),i.setState({sectorToFocus:o});break}case"ArrowRight":{var s=--i.state.sectorToFocus<0?i.sectorRefs.length-1:i.state.sectorToFocus%i.sectorRefs.length;i.sectorRefs[s].focus(),i.setState({sectorToFocus:s});break}case"Escape":{i.sectorRefs[i.state.sectorToFocus].blur(),i.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var n=this.props,i=n.sectors,a=n.isAnimationActive,o=this.state.prevSectors;return a&&i&&i.length&&(!o||!Fn(o,i))?this.renderSectorsWithAnimation():this.renderSectorsStatically(i)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var n=this,i=this.props,a=i.hide,o=i.sectors,s=i.className,l=i.label,u=i.cx,f=i.cy,d=i.innerRadius,p=i.outerRadius,h=i.isAnimationActive,m=this.state.isAnimationFinished;if(a||!o||!o.length||!K(u)||!K(f)||!K(d)||!K(p))return null;var g=ee("recharts-pie",s);return k.createElement(te,{tabIndex:this.props.rootTabIndex,className:g,ref:function(y){n.pieRef=y}},this.renderSectors(),l&&this.renderLabels(o),et.renderCallByParent(this.props,null,!1),(!h||m)&&br.renderCallByParent(this.props,o,!1))}}],[{key:"getDerivedStateFromProps",value:function(n,i){return i.prevIsAnimationActive!==n.isAnimationActive?{prevIsAnimationActive:n.isAnimationActive,prevAnimationId:n.animationId,curSectors:n.sectors,prevSectors:[],isAnimationFinished:!0}:n.isAnimationActive&&n.animationId!==i.prevAnimationId?{prevAnimationId:n.animationId,curSectors:n.sectors,prevSectors:i.curSectors,isAnimationFinished:!0}:n.sectors!==i.curSectors?{curSectors:n.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(n,i){return n>i?"start":n<i?"end":"middle"}},{key:"renderLabelLineItem",value:function(n,i,a){if(k.isValidElement(n))return k.cloneElement(n,i);if(Z(n))return n(i);var o=ee("recharts-pie-label-line",typeof n!="boolean"?n.className:"");return k.createElement(Ln,aa({},i,{key:a,type:"linear",className:o}))}},{key:"renderLabelItem",value:function(n,i,a){if(k.isValidElement(n))return k.cloneElement(n,i);var o=a;if(Z(n)&&(o=n(i),k.isValidElement(o)))return o;var s=ee("recharts-pie-label-text",typeof n!="boolean"&&!Z(n)?n.className:"");return k.createElement(Ai,aa({},i,{alignmentBaseline:"middle",className:s}),o)}}])}(A.PureComponent);mu=un;Jt(un,"displayName","Pie");Jt(un,"defaultProps",{stroke:"#fff",fill:"#808080",legendType:"rect",cx:"50%",cy:"50%",startAngle:0,endAngle:360,innerRadius:0,outerRadius:"80%",paddingAngle:0,labelLine:!0,hide:!1,minAngle:0,isAnimationActive:!sn.isSsr,animationBegin:400,animationDuration:1500,animationEasing:"ease",nameKey:"name",blendStroke:!1,rootTabIndex:0});Jt(un,"parseDeltaAngle",function(e,t){var r=yt(t-e),n=Math.min(Math.abs(t-e),360);return r*n});Jt(un,"getRealPieData",function(e){var t=e.data,r=e.children,n=X(e,!1),i=wt(r,jr);return t&&t.length?t.map(function(a,o){return ve(ve(ve({payload:a},n),a),i&&i[o]&&i[o].props)}):i&&i.length?i.map(function(a){return ve(ve({},n),a.props)}):[]});Jt(un,"parseCoordinateOfPie",function(e,t){var r=t.top,n=t.left,i=t.width,a=t.height,o=uP(i,a),s=n+gt(e.cx,i,i/2),l=r+gt(e.cy,a,a/2),u=gt(e.innerRadius,o,0),f=gt(e.outerRadius,o,o*.8),d=e.maxRadius||Math.sqrt(i*i+a*a)/2;return{cx:s,cy:l,innerRadius:u,outerRadius:f,maxRadius:d}});Jt(un,"getComposedData",function(e){var t=e.item,r=e.offset,n=t.type.defaultProps!==void 0?ve(ve({},t.type.defaultProps),t.props):t.props,i=mu.getRealPieData(n);if(!i||!i.length)return null;var a=n.cornerRadius,o=n.startAngle,s=n.endAngle,l=n.paddingAngle,u=n.dataKey,f=n.nameKey,d=n.valueKey,p=n.tooltipType,h=Math.abs(n.minAngle),m=mu.parseCoordinateOfPie(n,r),g=mu.parseDeltaAngle(o,s),x=Math.abs(g),y=u;Q(u)&&Q(d)?(xr(!1,`Use "dataKey" to specify the value of pie,
+ the props "valueKey" will be deprecated in 1.1.0`),y="value"):Q(u)&&(xr(!1,`Use "dataKey" to specify the value of pie,
+ the props "valueKey" will be deprecated in 1.1.0`),y=d);var v=i.filter(function(_){return Oe(_,y,0)!==0}).length,b=(x>=360?v:v-1)*l,S=x-v*h-b,w=i.reduce(function(_,P){var N=Oe(P,y,0);return _+(K(N)?N:0)},0),j;if(w>0){var O;j=i.map(function(_,P){var N=Oe(_,y,0),T=Oe(_,f,P),$=(K(N)?N:0)/w,I;P?I=O.endAngle+yt(g)*l*(N!==0?1:0):I=o;var D=I+yt(g)*((N!==0?h:0)+$*S),L=(I+D)/2,C=(m.innerRadius+m.outerRadius)/2,F=[{name:T,value:N,payload:_,dataKey:y,type:p}],M=xe(m.cx,m.cy,C,L);return O=ve(ve(ve({percent:$,cornerRadius:a,name:T,tooltipPayload:F,midAngle:L,middleRadius:C,tooltipPosition:M},_),m),{},{value:Oe(_,y),startAngle:I,endAngle:D,payload:_,paddingAngle:yt(g)*l}),O})}return ve(ve({},m),{},{sectors:j,data:i})});var kG=Math.ceil,NG=Math.max;function $G(e,t,r,n){for(var i=-1,a=NG(kG((t-e)/(r||1)),0),o=Array(a);a--;)o[n?a:++i]=e,e+=r;return o}var EG=$G,TG=QO,j1=1/0,CG=17976931348623157e292;function MG(e){if(!e)return e===0?e:0;if(e=TG(e),e===j1||e===-j1){var t=e<0?-1:1;return t*CG}return e===e?e:0}var EP=MG,IG=EG,LG=Mf,rp=EP;function DG(e){return function(t,r,n){return n&&typeof n!="number"&&LG(t,r,n)&&(r=n=void 0),t=rp(t),r===void 0?(r=t,t=0):r=rp(r),n=n===void 0?t<r?1:-1:rp(n),IG(t,r,n,e)}}var RG=DG,BG=RG,FG=BG(),zG=FG;const $c=de(zG);function Js(e){"@babel/helpers - typeof";return Js=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Js(e)}function S1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function O1(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?S1(Object(r),!0).forEach(function(n){TP(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):S1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function TP(e,t,r){return t=WG(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function WG(e){var t=UG(e,"string");return Js(t)=="symbol"?t:t+""}function UG(e,t){if(Js(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Js(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var KG=["Webkit","Moz","O","ms"],HG=function(t,r){var n=t.replace(/(\w)/,function(a){return a.toUpperCase()}),i=KG.reduce(function(a,o){return O1(O1({},a),{},TP({},o+n,r))},{});return i[t]=r,i};function Ra(e){"@babel/helpers - typeof";return Ra=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ra(e)}function Ec(){return Ec=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ec.apply(this,arguments)}function _1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function np(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?_1(Object(r),!0).forEach(function(n){Lt(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function VG(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function P1(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,MP(n.key),n)}}function GG(e,t,r){return t&&P1(e.prototype,t),r&&P1(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function qG(e,t,r){return t=Tc(t),XG(e,CP()?Reflect.construct(t,r||[],Tc(e).constructor):t.apply(e,r))}function XG(e,t){if(t&&(Ra(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return YG(e)}function YG(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function CP(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(CP=function(){return!!e})()}function Tc(e){return Tc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Tc(e)}function QG(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&hm(e,t)}function hm(e,t){return hm=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},hm(e,t)}function Lt(e,t,r){return t=MP(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function MP(e){var t=ZG(e,"string");return Ra(t)=="symbol"?t:t+""}function ZG(e,t){if(Ra(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ra(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var JG=function(t){var r=t.data,n=t.startIndex,i=t.endIndex,a=t.x,o=t.width,s=t.travellerWidth;if(!r||!r.length)return{};var l=r.length,u=Qo().domain($c(0,l)).range([a,a+o-s]),f=u.domain().map(function(d){return u(d)});return{isTextActive:!1,isSlideMoving:!1,isTravellerMoving:!1,isTravellerFocused:!1,startX:u(n),endX:u(i),scale:u,scaleValues:f}},A1=function(t){return t.changedTouches&&!!t.changedTouches.length},Ba=function(e){function t(r){var n;return VG(this,t),n=qG(this,t,[r]),Lt(n,"handleDrag",function(i){n.leaveTimer&&(clearTimeout(n.leaveTimer),n.leaveTimer=null),n.state.isTravellerMoving?n.handleTravellerMove(i):n.state.isSlideMoving&&n.handleSlideDrag(i)}),Lt(n,"handleTouchMove",function(i){i.changedTouches!=null&&i.changedTouches.length>0&&n.handleDrag(i.changedTouches[0])}),Lt(n,"handleDragEnd",function(){n.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var i=n.props,a=i.endIndex,o=i.onDragEnd,s=i.startIndex;o==null||o({endIndex:a,startIndex:s})}),n.detachDragEndListener()}),Lt(n,"handleLeaveWrapper",function(){(n.state.isTravellerMoving||n.state.isSlideMoving)&&(n.leaveTimer=window.setTimeout(n.handleDragEnd,n.props.leaveTimeOut))}),Lt(n,"handleEnterSlideOrTraveller",function(){n.setState({isTextActive:!0})}),Lt(n,"handleLeaveSlideOrTraveller",function(){n.setState({isTextActive:!1})}),Lt(n,"handleSlideDragStart",function(i){var a=A1(i)?i.changedTouches[0]:i;n.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:a.pageX}),n.attachDragEndListener()}),n.travellerDragStartHandlers={startX:n.handleTravellerDragStart.bind(n,"startX"),endX:n.handleTravellerDragStart.bind(n,"endX")},n.state={},n}return QG(t,e),GG(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(n){var i=n.startX,a=n.endX,o=this.state.scaleValues,s=this.props,l=s.gap,u=s.data,f=u.length-1,d=Math.min(i,a),p=Math.max(i,a),h=t.getIndexInRange(o,d),m=t.getIndexInRange(o,p);return{startIndex:h-h%l,endIndex:m===f?f:m-m%l}}},{key:"getTextOfTick",value:function(n){var i=this.props,a=i.data,o=i.tickFormatter,s=i.dataKey,l=Oe(a[n],s,n);return Z(o)?o(l,n):l}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(n){var i=this.state,a=i.slideMoveStartX,o=i.startX,s=i.endX,l=this.props,u=l.x,f=l.width,d=l.travellerWidth,p=l.startIndex,h=l.endIndex,m=l.onChange,g=n.pageX-a;g>0?g=Math.min(g,u+f-d-s,u+f-d-o):g<0&&(g=Math.max(g,u-o,u-s));var x=this.getIndex({startX:o+g,endX:s+g});(x.startIndex!==p||x.endIndex!==h)&&m&&m(x),this.setState({startX:o+g,endX:s+g,slideMoveStartX:n.pageX})}},{key:"handleTravellerDragStart",value:function(n,i){var a=A1(i)?i.changedTouches[0]:i;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:n,brushMoveStartX:a.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(n){var i=this.state,a=i.brushMoveStartX,o=i.movingTravellerId,s=i.endX,l=i.startX,u=this.state[o],f=this.props,d=f.x,p=f.width,h=f.travellerWidth,m=f.onChange,g=f.gap,x=f.data,y={startX:this.state.startX,endX:this.state.endX},v=n.pageX-a;v>0?v=Math.min(v,d+p-h-u):v<0&&(v=Math.max(v,d-u)),y[o]=u+v;var b=this.getIndex(y),S=b.startIndex,w=b.endIndex,j=function(){var _=x.length-1;return o==="startX"&&(s>l?S%g===0:w%g===0)||s<l&&w===_||o==="endX"&&(s>l?w%g===0:S%g===0)||s>l&&w===_};this.setState(Lt(Lt({},o,u+v),"brushMoveStartX",n.pageX),function(){m&&j()&&m(b)})}},{key:"handleTravellerMoveKeyboard",value:function(n,i){var a=this,o=this.state,s=o.scaleValues,l=o.startX,u=o.endX,f=this.state[i],d=s.indexOf(f);if(d!==-1){var p=d+n;if(!(p===-1||p>=s.length)){var h=s[p];i==="startX"&&h>=u||i==="endX"&&h<=l||this.setState(Lt({},i,h),function(){a.props.onChange(a.getIndex({startX:a.state.startX,endX:a.state.endX}))})}}}},{key:"renderBackground",value:function(){var n=this.props,i=n.x,a=n.y,o=n.width,s=n.height,l=n.fill,u=n.stroke;return k.createElement("rect",{stroke:u,fill:l,x:i,y:a,width:o,height:s})}},{key:"renderPanorama",value:function(){var n=this.props,i=n.x,a=n.y,o=n.width,s=n.height,l=n.data,u=n.children,f=n.padding,d=A.Children.only(u);return d?k.cloneElement(d,{x:i,y:a,width:o,height:s,margin:f,compact:!0,data:l}):null}},{key:"renderTravellerLayer",value:function(n,i){var a,o,s=this,l=this.props,u=l.y,f=l.travellerWidth,d=l.height,p=l.traveller,h=l.ariaLabel,m=l.data,g=l.startIndex,x=l.endIndex,y=Math.max(n,this.props.x),v=np(np({},X(this.props,!1)),{},{x:y,y:u,width:f,height:d}),b=h||"Min value: ".concat((a=m[g])===null||a===void 0?void 0:a.name,", Max value: ").concat((o=m[x])===null||o===void 0?void 0:o.name);return k.createElement(te,{tabIndex:0,role:"slider","aria-label":b,"aria-valuenow":n,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[i],onTouchStart:this.travellerDragStartHandlers[i],onKeyDown:function(w){["ArrowLeft","ArrowRight"].includes(w.key)&&(w.preventDefault(),w.stopPropagation(),s.handleTravellerMoveKeyboard(w.key==="ArrowRight"?1:-1,i))},onFocus:function(){s.setState({isTravellerFocused:!0})},onBlur:function(){s.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(p,v))}},{key:"renderSlide",value:function(n,i){var a=this.props,o=a.y,s=a.height,l=a.stroke,u=a.travellerWidth,f=Math.min(n,i)+u,d=Math.max(Math.abs(i-n)-u,0);return k.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:l,fillOpacity:.2,x:f,y:o,width:d,height:s})}},{key:"renderText",value:function(){var n=this.props,i=n.startIndex,a=n.endIndex,o=n.y,s=n.height,l=n.travellerWidth,u=n.stroke,f=this.state,d=f.startX,p=f.endX,h=5,m={pointerEvents:"none",fill:u};return k.createElement(te,{className:"recharts-brush-texts"},k.createElement(Ai,Ec({textAnchor:"end",verticalAnchor:"middle",x:Math.min(d,p)-h,y:o+s/2},m),this.getTextOfTick(i)),k.createElement(Ai,Ec({textAnchor:"start",verticalAnchor:"middle",x:Math.max(d,p)+l+h,y:o+s/2},m),this.getTextOfTick(a)))}},{key:"render",value:function(){var n=this.props,i=n.data,a=n.className,o=n.children,s=n.x,l=n.y,u=n.width,f=n.height,d=n.alwaysShowText,p=this.state,h=p.startX,m=p.endX,g=p.isTextActive,x=p.isSlideMoving,y=p.isTravellerMoving,v=p.isTravellerFocused;if(!i||!i.length||!K(s)||!K(l)||!K(u)||!K(f)||u<=0||f<=0)return null;var b=ee("recharts-brush",a),S=k.Children.count(o)===1,w=HG("userSelect","none");return k.createElement(te,{className:b,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:w},this.renderBackground(),S&&this.renderPanorama(),this.renderSlide(h,m),this.renderTravellerLayer(h,"startX"),this.renderTravellerLayer(m,"endX"),(g||x||y||v||d)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(n){var i=n.x,a=n.y,o=n.width,s=n.height,l=n.stroke,u=Math.floor(a+s/2)-1;return k.createElement(k.Fragment,null,k.createElement("rect",{x:i,y:a,width:o,height:s,fill:l,stroke:"none"}),k.createElement("line",{x1:i+1,y1:u,x2:i+o-1,y2:u,fill:"none",stroke:"#fff"}),k.createElement("line",{x1:i+1,y1:u+2,x2:i+o-1,y2:u+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(n,i){var a;return k.isValidElement(n)?a=k.cloneElement(n,i):Z(n)?a=n(i):a=t.renderDefaultTraveller(i),a}},{key:"getDerivedStateFromProps",value:function(n,i){var a=n.data,o=n.width,s=n.x,l=n.travellerWidth,u=n.updateId,f=n.startIndex,d=n.endIndex;if(a!==i.prevData||u!==i.prevUpdateId)return np({prevData:a,prevTravellerWidth:l,prevUpdateId:u,prevX:s,prevWidth:o},a&&a.length?JG({data:a,width:o,x:s,travellerWidth:l,startIndex:f,endIndex:d}):{scale:null,scaleValues:null});if(i.scale&&(o!==i.prevWidth||s!==i.prevX||l!==i.prevTravellerWidth)){i.scale.range([s,s+o-l]);var p=i.scale.domain().map(function(h){return i.scale(h)});return{prevData:a,prevTravellerWidth:l,prevUpdateId:u,prevX:s,prevWidth:o,startX:i.scale(n.startIndex),endX:i.scale(n.endIndex),scaleValues:p}}return null}},{key:"getIndexInRange",value:function(n,i){for(var a=n.length,o=0,s=a-1;s-o>1;){var l=Math.floor((o+s)/2);n[l]>i?s=l:o=l}return i>=n[s]?s:o}}])}(A.PureComponent);Lt(Ba,"displayName","Brush");Lt(Ba,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var eq=ny;function tq(e,t){var r;return eq(e,function(n,i,a){return r=t(n,i,a),!r}),!!r}var rq=tq,nq=OO,iq=Lr,aq=rq,oq=Ct,sq=Mf;function lq(e,t,r){var n=oq(e)?nq:aq;return r&&sq(e,t,r)&&(t=void 0),n(e,iq(t))}var uq=lq;const cq=de(uq);var Cr=function(t,r){var n=t.alwaysShow,i=t.ifOverflow;return n&&(i="extendDomain"),i===r},k1=VO;function fq(e,t,r){t=="__proto__"&&k1?k1(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var dq=fq,pq=dq,hq=KO,mq=Lr;function vq(e,t){var r={};return t=mq(t),hq(e,function(n,i,a){pq(r,i,t(n,i,a))}),r}var yq=vq;const gq=de(yq);function xq(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(!t(e[r],r,e))return!1;return!0}var bq=xq,wq=ny;function jq(e,t){var r=!0;return wq(e,function(n,i,a){return r=!!t(n,i,a),r}),r}var Sq=jq,Oq=bq,_q=Sq,Pq=Lr,Aq=Ct,kq=Mf;function Nq(e,t,r){var n=Aq(e)?Oq:_q;return r&&kq(e,t,r)&&(t=void 0),n(e,Pq(t))}var $q=Nq;const IP=de($q);var Eq=["x","y"];function el(e){"@babel/helpers - typeof";return el=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},el(e)}function mm(){return mm=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},mm.apply(this,arguments)}function N1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Io(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?N1(Object(r),!0).forEach(function(n){Tq(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):N1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Tq(e,t,r){return t=Cq(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Cq(e){var t=Mq(e,"string");return el(t)=="symbol"?t:t+""}function Mq(e,t){if(el(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(el(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Iq(e,t){if(e==null)return{};var r=Lq(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Lq(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Dq(e,t){var r=e.x,n=e.y,i=Iq(e,Eq),a="".concat(r),o=parseInt(a,10),s="".concat(n),l=parseInt(s,10),u="".concat(t.height||i.height),f=parseInt(u,10),d="".concat(t.width||i.width),p=parseInt(d,10);return Io(Io(Io(Io(Io({},t),i),o?{x:o}:{}),l?{y:l}:{}),{},{height:f,width:p,name:t.name,radius:t.radius})}function $1(e){return k.createElement(kc,mm({shapeType:"rectangle",propTransformer:Dq,activeClassName:"recharts-active-bar"},e))}var Rq=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(n,i){if(typeof t=="number")return t;var a=K(n)||aM(n);return a?t(n,i):(a||Ni(),r)}},Bq=["value","background"],LP;function Fa(e){"@babel/helpers - typeof";return Fa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Fa(e)}function Fq(e,t){if(e==null)return{};var r=zq(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function zq(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Cc(){return Cc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Cc.apply(this,arguments)}function E1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Fe(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?E1(Object(r),!0).forEach(function(n){Sn(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):E1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Wq(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function T1(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,RP(n.key),n)}}function Uq(e,t,r){return t&&T1(e.prototype,t),r&&T1(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function Kq(e,t,r){return t=Mc(t),Hq(e,DP()?Reflect.construct(t,r||[],Mc(e).constructor):t.apply(e,r))}function Hq(e,t){if(t&&(Fa(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Vq(e)}function Vq(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function DP(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(DP=function(){return!!e})()}function Mc(e){return Mc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Mc(e)}function Gq(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&vm(e,t)}function vm(e,t){return vm=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},vm(e,t)}function Sn(e,t,r){return t=RP(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function RP(e){var t=qq(e,"string");return Fa(t)=="symbol"?t:t+""}function qq(e,t){if(Fa(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Fa(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Tt=function(e){function t(){var r;Wq(this,t);for(var n=arguments.length,i=new Array(n),a=0;a<n;a++)i[a]=arguments[a];return r=Kq(this,t,[].concat(i)),Sn(r,"state",{isAnimationFinished:!1}),Sn(r,"id",Gn("recharts-bar-")),Sn(r,"handleAnimationEnd",function(){var o=r.props.onAnimationEnd;r.setState({isAnimationFinished:!0}),o&&o()}),Sn(r,"handleAnimationStart",function(){var o=r.props.onAnimationStart;r.setState({isAnimationFinished:!1}),o&&o()}),r}return Gq(t,e),Uq(t,[{key:"renderRectanglesStatically",value:function(n){var i=this,a=this.props,o=a.shape,s=a.dataKey,l=a.activeIndex,u=a.activeBar,f=X(this.props,!1);return n&&n.map(function(d,p){var h=p===l,m=h?u:o,g=Fe(Fe(Fe({},f),d),{},{isActive:h,option:m,index:p,dataKey:s,onAnimationStart:i.handleAnimationStart,onAnimationEnd:i.handleAnimationEnd});return k.createElement(te,Cc({className:"recharts-bar-rectangle"},Bn(i.props,d,p),{key:"rectangle-".concat(d==null?void 0:d.x,"-").concat(d==null?void 0:d.y,"-").concat(d==null?void 0:d.value,"-").concat(p)}),k.createElement($1,g))})}},{key:"renderRectanglesWithAnimation",value:function(){var n=this,i=this.props,a=i.data,o=i.layout,s=i.isAnimationActive,l=i.animationBegin,u=i.animationDuration,f=i.animationEasing,d=i.animationId,p=this.state.prevData;return k.createElement(or,{begin:l,duration:u,isActive:s,easing:f,from:{t:0},to:{t:1},key:"bar-".concat(d),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(h){var m=h.t,g=a.map(function(x,y){var v=p&&p[y];if(v){var b=$e(v.x,x.x),S=$e(v.y,x.y),w=$e(v.width,x.width),j=$e(v.height,x.height);return Fe(Fe({},x),{},{x:b(m),y:S(m),width:w(m),height:j(m)})}if(o==="horizontal"){var O=$e(0,x.height),_=O(m);return Fe(Fe({},x),{},{y:x.y+x.height-_,height:_})}var P=$e(0,x.width),N=P(m);return Fe(Fe({},x),{},{width:N})});return k.createElement(te,null,n.renderRectanglesStatically(g))})}},{key:"renderRectangles",value:function(){var n=this.props,i=n.data,a=n.isAnimationActive,o=this.state.prevData;return a&&i&&i.length&&(!o||!Fn(o,i))?this.renderRectanglesWithAnimation():this.renderRectanglesStatically(i)}},{key:"renderBackground",value:function(){var n=this,i=this.props,a=i.data,o=i.dataKey,s=i.activeIndex,l=X(this.props.background,!1);return a.map(function(u,f){u.value;var d=u.background,p=Fq(u,Bq);if(!d)return null;var h=Fe(Fe(Fe(Fe(Fe({},p),{},{fill:"#eee"},d),l),Bn(n.props,u,f)),{},{onAnimationStart:n.handleAnimationStart,onAnimationEnd:n.handleAnimationEnd,dataKey:o,index:f,className:"recharts-bar-background-rectangle"});return k.createElement($1,Cc({key:"background-bar-".concat(f),option:n.props.background,isActive:f===s},h))})}},{key:"renderErrorBar",value:function(n,i){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var a=this.props,o=a.data,s=a.xAxis,l=a.yAxis,u=a.layout,f=a.children,d=wt(f,vo);if(!d)return null;var p=u==="vertical"?o[0].height/2:o[0].width/2,h=function(x,y){var v=Array.isArray(x.value)?x.value[1]:x.value;return{x:x.x,y:x.y,value:v,errorVal:Oe(x,y)}},m={clipPath:n?"url(#clipPath-".concat(i,")"):null};return k.createElement(te,m,d.map(function(g){return k.cloneElement(g,{key:"error-bar-".concat(i,"-").concat(g.props.dataKey),data:o,xAxis:s,yAxis:l,layout:u,offset:p,dataPointFormatter:h})}))}},{key:"render",value:function(){var n=this.props,i=n.hide,a=n.data,o=n.className,s=n.xAxis,l=n.yAxis,u=n.left,f=n.top,d=n.width,p=n.height,h=n.isAnimationActive,m=n.background,g=n.id;if(i||!a||!a.length)return null;var x=this.state.isAnimationFinished,y=ee("recharts-bar",o),v=s&&s.allowDataOverflow,b=l&&l.allowDataOverflow,S=v||b,w=Q(g)?this.id:g;return k.createElement(te,{className:y},v||b?k.createElement("defs",null,k.createElement("clipPath",{id:"clipPath-".concat(w)},k.createElement("rect",{x:v?u:u-d/2,y:b?f:f-p/2,width:v?d:d*2,height:b?p:p*2}))):null,k.createElement(te,{className:"recharts-bar-rectangles",clipPath:S?"url(#clipPath-".concat(w,")"):null},m?this.renderBackground():null,this.renderRectangles()),this.renderErrorBar(S,w),(!h||x)&&br.renderCallByParent(this.props,a))}}],[{key:"getDerivedStateFromProps",value:function(n,i){return n.animationId!==i.prevAnimationId?{prevAnimationId:n.animationId,curData:n.data,prevData:i.curData}:n.data!==i.curData?{curData:n.data}:null}}])}(A.PureComponent);LP=Tt;Sn(Tt,"displayName","Bar");Sn(Tt,"defaultProps",{xAxisId:0,yAxisId:0,legendType:"rect",minPointSize:0,hide:!1,data:[],layout:"vertical",activeBar:!1,isAnimationActive:!sn.isSsr,animationBegin:0,animationDuration:400,animationEasing:"ease"});Sn(Tt,"getComposedData",function(e){var t=e.props,r=e.item,n=e.barPosition,i=e.bandSize,a=e.xAxis,o=e.yAxis,s=e.xAxisTicks,l=e.yAxisTicks,u=e.stackedData,f=e.dataStartIndex,d=e.displayedData,p=e.offset,h=OW(n,r);if(!h)return null;var m=t.layout,g=r.type.defaultProps,x=g!==void 0?Fe(Fe({},g),r.props):r.props,y=x.dataKey,v=x.children,b=x.minPointSize,S=m==="horizontal"?o:a,w=u?S.scale.domain():null,j=EW({numericAxis:S}),O=wt(v,jr),_=d.map(function(P,N){var T,$,I,D,L,C;u?T=_W(u[f+N],w):(T=Oe(P,y),Array.isArray(T)||(T=[j,T]));var F=Rq(b,LP.defaultProps.minPointSize)(T[1],N);if(m==="horizontal"){var M,B=[o.scale(T[0]),o.scale(T[1])],E=B[0],W=B[1];$=Ob({axis:a,ticks:s,bandSize:i,offset:h.offset,entry:P,index:N}),I=(M=W??E)!==null&&M!==void 0?M:void 0,D=h.size;var z=E-W;if(L=Number.isNaN(z)?0:z,C={x:$,y:o.y,width:D,height:o.height},Math.abs(F)>0&&Math.abs(L)<Math.abs(F)){var Y=yt(L||F)*(Math.abs(F)-Math.abs(L));I-=Y,L+=Y}}else{var oe=[a.scale(T[0]),a.scale(T[1])],Pe=oe[0],Le=oe[1];if($=Pe,I=Ob({axis:o,ticks:l,bandSize:i,offset:h.offset,entry:P,index:N}),D=Le-Pe,L=h.size,C={x:a.x,y:I,width:a.width,height:L},Math.abs(F)>0&&Math.abs(D)<Math.abs(F)){var Vt=yt(D||F)*(Math.abs(F)-Math.abs(D));D+=Vt}}return Fe(Fe(Fe({},P),{},{x:$,y:I,width:D,height:L,value:u?T:T[1],payload:P,background:C},O&&O[N]&&O[N].props),{},{tooltipPayload:[sP(r,P)],tooltipPosition:{x:$+D/2,y:I+L/2}})});return Fe({data:_,layout:m},p)});function tl(e){"@babel/helpers - typeof";return tl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},tl(e)}function Xq(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function C1(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,BP(n.key),n)}}function Yq(e,t,r){return t&&C1(e.prototype,t),r&&C1(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function M1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function pr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?M1(Object(r),!0).forEach(function(n){Qf(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):M1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Qf(e,t,r){return t=BP(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function BP(e){var t=Qq(e,"string");return tl(t)=="symbol"?t:t+""}function Qq(e,t){if(tl(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(tl(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Zf=function(t,r,n,i,a){var o=t.width,s=t.height,l=t.layout,u=t.children,f=Object.keys(r),d={left:n.left,leftMirror:n.left,right:o-n.right,rightMirror:o-n.right,top:n.top,topMirror:n.top,bottom:s-n.bottom,bottomMirror:s-n.bottom},p=!!Rt(u,Tt);return f.reduce(function(h,m){var g=r[m],x=g.orientation,y=g.domain,v=g.padding,b=v===void 0?{}:v,S=g.mirror,w=g.reversed,j="".concat(x).concat(S?"Mirror":""),O,_,P,N,T;if(g.type==="number"&&(g.padding==="gap"||g.padding==="no-gap")){var $=y[1]-y[0],I=1/0,D=g.categoricalDomain.sort(uM);if(D.forEach(function(oe,Pe){Pe>0&&(I=Math.min((oe||0)-(D[Pe-1]||0),I))}),Number.isFinite(I)){var L=I/$,C=g.layout==="vertical"?n.height:n.width;if(g.padding==="gap"&&(O=L*C/2),g.padding==="no-gap"){var F=gt(t.barCategoryGap,L*C),M=L*C/2;O=M-F-(M-F)/C*F}}}i==="xAxis"?_=[n.left+(b.left||0)+(O||0),n.left+n.width-(b.right||0)-(O||0)]:i==="yAxis"?_=l==="horizontal"?[n.top+n.height-(b.bottom||0),n.top+(b.top||0)]:[n.top+(b.top||0)+(O||0),n.top+n.height-(b.bottom||0)-(O||0)]:_=g.range,w&&(_=[_[1],_[0]]);var B=nP(g,a,p),E=B.scale,W=B.realScaleType;E.domain(y).range(_),iP(E);var z=aP(E,pr(pr({},g),{},{realScaleType:W}));i==="xAxis"?(T=x==="top"&&!S||x==="bottom"&&S,P=n.left,N=d[j]-T*g.height):i==="yAxis"&&(T=x==="left"&&!S||x==="right"&&S,P=d[j]-T*g.width,N=n.top);var Y=pr(pr(pr({},g),z),{},{realScaleType:W,x:P,y:N,scale:E,width:i==="xAxis"?n.width:g.width,height:i==="yAxis"?n.height:g.height});return Y.bandSize=vc(Y,z),!g.hide&&i==="xAxis"?d[j]+=(T?-1:1)*Y.height:g.hide||(d[j]+=(T?-1:1)*Y.width),pr(pr({},h),{},Qf({},m,Y))},{})},FP=function(t,r){var n=t.x,i=t.y,a=r.x,o=r.y;return{x:Math.min(n,a),y:Math.min(i,o),width:Math.abs(a-n),height:Math.abs(o-i)}},Zq=function(t){var r=t.x1,n=t.y1,i=t.x2,a=t.y2;return FP({x:r,y:n},{x:i,y:a})},zP=function(){function e(t){Xq(this,e),this.scale=t}return Yq(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(r){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=n.bandAware,a=n.position;if(r!==void 0){if(a)switch(a){case"start":return this.scale(r);case"middle":{var o=this.bandwidth?this.bandwidth()/2:0;return this.scale(r)+o}case"end":{var s=this.bandwidth?this.bandwidth():0;return this.scale(r)+s}default:return this.scale(r)}if(i){var l=this.bandwidth?this.bandwidth()/2:0;return this.scale(r)+l}return this.scale(r)}}},{key:"isInRange",value:function(r){var n=this.range(),i=n[0],a=n[n.length-1];return i<=a?r>=i&&r<=a:r>=a&&r<=i}}],[{key:"create",value:function(r){return new e(r)}}])}();Qf(zP,"EPS",1e-4);var Ty=function(t){var r=Object.keys(t).reduce(function(n,i){return pr(pr({},n),{},Qf({},i,zP.create(t[i])))},{});return pr(pr({},r),{},{apply:function(i){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=a.bandAware,s=a.position;return gq(i,function(l,u){return r[u].apply(l,{bandAware:o,position:s})})},isInRange:function(i){return IP(i,function(a,o){return r[o].isInRange(a)})}})};function Jq(e){return(e%180+180)%180}var eX=function(t){var r=t.width,n=t.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=Jq(i),o=a*Math.PI/180,s=Math.atan(n/r),l=o>s&&o<Math.PI-s?n/Math.sin(o):r/Math.cos(o);return Math.abs(l)},tX=Lr,rX=hl,nX=Tf;function iX(e){return function(t,r,n){var i=Object(t);if(!rX(t)){var a=tX(r);t=nX(t),r=function(s){return a(i[s],s,i)}}var o=e(t,r,n);return o>-1?i[a?t[o]:o]:void 0}}var aX=iX,oX=EP;function sX(e){var t=oX(e),r=t%1;return t===t?r?t-r:t:0}var lX=sX,uX=RO,cX=Lr,fX=lX,dX=Math.max;function pX(e,t,r){var n=e==null?0:e.length;if(!n)return-1;var i=r==null?0:fX(r);return i<0&&(i=dX(n+i,0)),uX(e,cX(t),i)}var hX=pX,mX=aX,vX=hX,yX=mX(vX),gX=yX;const xX=de(gX);var bX=fC(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),Cy=A.createContext(void 0),My=A.createContext(void 0),WP=A.createContext(void 0),UP=A.createContext({}),KP=A.createContext(void 0),HP=A.createContext(0),VP=A.createContext(0),I1=function(t){var r=t.state,n=r.xAxisMap,i=r.yAxisMap,a=r.offset,o=t.clipPathId,s=t.children,l=t.width,u=t.height,f=bX(a);return k.createElement(Cy.Provider,{value:n},k.createElement(My.Provider,{value:i},k.createElement(UP.Provider,{value:a},k.createElement(WP.Provider,{value:f},k.createElement(KP.Provider,{value:o},k.createElement(HP.Provider,{value:u},k.createElement(VP.Provider,{value:l},s)))))))},wX=function(){return A.useContext(KP)},GP=function(t){var r=A.useContext(Cy);r==null&&Ni();var n=r[t];return n==null&&Ni(),n},jX=function(){var t=A.useContext(Cy);return gn(t)},SX=function(){var t=A.useContext(My),r=xX(t,function(n){return IP(n.domain,Number.isFinite)});return r||gn(t)},qP=function(t){var r=A.useContext(My);r==null&&Ni();var n=r[t];return n==null&&Ni(),n},OX=function(){var t=A.useContext(WP);return t},_X=function(){return A.useContext(UP)},Iy=function(){return A.useContext(VP)},Ly=function(){return A.useContext(HP)};function za(e){"@babel/helpers - typeof";return za=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},za(e)}function PX(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function AX(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,YP(n.key),n)}}function kX(e,t,r){return t&&AX(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function NX(e,t,r){return t=Ic(t),$X(e,XP()?Reflect.construct(t,r||[],Ic(e).constructor):t.apply(e,r))}function $X(e,t){if(t&&(za(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return EX(e)}function EX(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function XP(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(XP=function(){return!!e})()}function Ic(e){return Ic=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Ic(e)}function TX(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ym(e,t)}function ym(e,t){return ym=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},ym(e,t)}function L1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function D1(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?L1(Object(r),!0).forEach(function(n){Dy(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):L1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Dy(e,t,r){return t=YP(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function YP(e){var t=CX(e,"string");return za(t)=="symbol"?t:t+""}function CX(e,t){if(za(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(za(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function MX(e,t){return RX(e)||DX(e,t)||LX(e,t)||IX()}function IX(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function LX(e,t){if(e){if(typeof e=="string")return R1(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return R1(e,t)}}function R1(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function DX(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,s=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(l=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(f){u=!0,i=f}finally{try{if(!l&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}function RX(e){if(Array.isArray(e))return e}function gm(){return gm=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},gm.apply(this,arguments)}var BX=function(t,r){var n;return k.isValidElement(t)?n=k.cloneElement(t,r):Z(t)?n=t(r):n=k.createElement("line",gm({},r,{className:"recharts-reference-line-line"})),n},FX=function(t,r,n,i,a,o,s,l,u){var f=a.x,d=a.y,p=a.width,h=a.height;if(n){var m=u.y,g=t.y.apply(m,{position:o});if(Cr(u,"discard")&&!t.y.isInRange(g))return null;var x=[{x:f+p,y:g},{x:f,y:g}];return l==="left"?x.reverse():x}if(r){var y=u.x,v=t.x.apply(y,{position:o});if(Cr(u,"discard")&&!t.x.isInRange(v))return null;var b=[{x:v,y:d+h},{x:v,y:d}];return s==="top"?b.reverse():b}if(i){var S=u.segment,w=S.map(function(j){return t.apply(j,{position:o})});return Cr(u,"discard")&&cq(w,function(j){return!t.isInRange(j)})?null:w}return null};function zX(e){var t=e.x,r=e.y,n=e.segment,i=e.xAxisId,a=e.yAxisId,o=e.shape,s=e.className,l=e.alwaysShow,u=wX(),f=GP(i),d=qP(a),p=OX();if(!u||!p)return null;xr(l===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.');var h=Ty({x:f.scale,y:d.scale}),m=Ye(t),g=Ye(r),x=n&&n.length===2,y=FX(h,m,g,x,p,e.position,f.orientation,d.orientation,e);if(!y)return null;var v=MX(y,2),b=v[0],S=b.x,w=b.y,j=v[1],O=j.x,_=j.y,P=Cr(e,"hidden")?"url(#".concat(u,")"):void 0,N=D1(D1({clipPath:P},X(e,!0)),{},{x1:S,y1:w,x2:O,y2:_});return k.createElement(te,{className:ee("recharts-reference-line",s)},BX(o,N),et.renderCallByParent(e,Zq({x1:S,y1:w,x2:O,y2:_})))}var Ry=function(e){function t(){return PX(this,t),NX(this,t,arguments)}return TX(t,e),kX(t,[{key:"render",value:function(){return k.createElement(zX,this.props)}}])}(k.Component);Dy(Ry,"displayName","ReferenceLine");Dy(Ry,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,fill:"none",stroke:"#ccc",fillOpacity:1,strokeWidth:1,position:"middle"});function xm(){return xm=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},xm.apply(this,arguments)}function Wa(e){"@babel/helpers - typeof";return Wa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Wa(e)}function B1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function F1(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?B1(Object(r),!0).forEach(function(n){Jf(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):B1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function WX(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function UX(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,ZP(n.key),n)}}function KX(e,t,r){return t&&UX(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function HX(e,t,r){return t=Lc(t),VX(e,QP()?Reflect.construct(t,r||[],Lc(e).constructor):t.apply(e,r))}function VX(e,t){if(t&&(Wa(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return GX(e)}function GX(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function QP(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(QP=function(){return!!e})()}function Lc(e){return Lc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Lc(e)}function qX(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&bm(e,t)}function bm(e,t){return bm=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},bm(e,t)}function Jf(e,t,r){return t=ZP(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ZP(e){var t=XX(e,"string");return Wa(t)=="symbol"?t:t+""}function XX(e,t){if(Wa(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Wa(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var YX=function(t){var r=t.x,n=t.y,i=t.xAxis,a=t.yAxis,o=Ty({x:i.scale,y:a.scale}),s=o.apply({x:r,y:n},{bandAware:!0});return Cr(t,"discard")&&!o.isInRange(s)?null:s},ed=function(e){function t(){return WX(this,t),HX(this,t,arguments)}return qX(t,e),KX(t,[{key:"render",value:function(){var n=this.props,i=n.x,a=n.y,o=n.r,s=n.alwaysShow,l=n.clipPathId,u=Ye(i),f=Ye(a);if(xr(s===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.'),!u||!f)return null;var d=YX(this.props);if(!d)return null;var p=d.x,h=d.y,m=this.props,g=m.shape,x=m.className,y=Cr(this.props,"hidden")?"url(#".concat(l,")"):void 0,v=F1(F1({clipPath:y},X(this.props,!0)),{},{cx:p,cy:h});return k.createElement(te,{className:ee("recharts-reference-dot",x)},t.renderDot(g,v),et.renderCallByParent(this.props,{x:p-o,y:h-o,width:2*o,height:2*o}))}}])}(k.Component);Jf(ed,"displayName","ReferenceDot");Jf(ed,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,r:10,fill:"#fff",stroke:"#ccc",fillOpacity:1,strokeWidth:1});Jf(ed,"renderDot",function(e,t){var r;return k.isValidElement(e)?r=k.cloneElement(e,t):Z(e)?r=e(t):r=k.createElement(xl,xm({},t,{cx:t.cx,cy:t.cy,className:"recharts-reference-dot-dot"})),r});function wm(){return wm=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},wm.apply(this,arguments)}function Ua(e){"@babel/helpers - typeof";return Ua=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ua(e)}function z1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function W1(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?z1(Object(r),!0).forEach(function(n){td(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):z1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function QX(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ZX(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,eA(n.key),n)}}function JX(e,t,r){return t&&ZX(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function eY(e,t,r){return t=Dc(t),tY(e,JP()?Reflect.construct(t,r||[],Dc(e).constructor):t.apply(e,r))}function tY(e,t){if(t&&(Ua(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return rY(e)}function rY(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function JP(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(JP=function(){return!!e})()}function Dc(e){return Dc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Dc(e)}function nY(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&jm(e,t)}function jm(e,t){return jm=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},jm(e,t)}function td(e,t,r){return t=eA(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function eA(e){var t=iY(e,"string");return Ua(t)=="symbol"?t:t+""}function iY(e,t){if(Ua(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ua(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var aY=function(t,r,n,i,a){var o=a.x1,s=a.x2,l=a.y1,u=a.y2,f=a.xAxis,d=a.yAxis;if(!f||!d)return null;var p=Ty({x:f.scale,y:d.scale}),h={x:t?p.x.apply(o,{position:"start"}):p.x.rangeMin,y:n?p.y.apply(l,{position:"start"}):p.y.rangeMin},m={x:r?p.x.apply(s,{position:"end"}):p.x.rangeMax,y:i?p.y.apply(u,{position:"end"}):p.y.rangeMax};return Cr(a,"discard")&&(!p.isInRange(h)||!p.isInRange(m))?null:FP(h,m)},rd=function(e){function t(){return QX(this,t),eY(this,t,arguments)}return nY(t,e),JX(t,[{key:"render",value:function(){var n=this.props,i=n.x1,a=n.x2,o=n.y1,s=n.y2,l=n.className,u=n.alwaysShow,f=n.clipPathId;xr(u===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.');var d=Ye(i),p=Ye(a),h=Ye(o),m=Ye(s),g=this.props.shape;if(!d&&!p&&!h&&!m&&!g)return null;var x=aY(d,p,h,m,this.props);if(!x&&!g)return null;var y=Cr(this.props,"hidden")?"url(#".concat(f,")"):void 0;return k.createElement(te,{className:ee("recharts-reference-area",l)},t.renderRect(g,W1(W1({clipPath:y},X(this.props,!0)),x)),et.renderCallByParent(this.props,x))}}])}(k.Component);td(rd,"displayName","ReferenceArea");td(rd,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,r:10,fill:"#ccc",fillOpacity:.5,stroke:"none",strokeWidth:1});td(rd,"renderRect",function(e,t){var r;return k.isValidElement(e)?r=k.cloneElement(e,t):Z(e)?r=e(t):r=k.createElement(Ey,wm({},t,{className:"recharts-reference-area-rect"})),r});function tA(e,t,r){if(t<1)return[];if(t===1&&r===void 0)return e;for(var n=[],i=0;i<e.length;i+=t)n.push(e[i]);return n}function oY(e,t,r){var n={width:e.width+t.width,height:e.height+t.height};return eX(n,r)}function sY(e,t,r){var n=r==="width",i=e.x,a=e.y,o=e.width,s=e.height;return t===1?{start:n?i:a,end:n?i+o:a+s}:{start:n?i+o:a+s,end:n?i:a}}function Rc(e,t,r,n,i){if(e*t<e*n||e*t>e*i)return!1;var a=r();return e*(t-e*a/2-n)>=0&&e*(t+e*a/2-i)<=0}function lY(e,t){return tA(e,t+1)}function uY(e,t,r,n,i){for(var a=(n||[]).slice(),o=t.start,s=t.end,l=0,u=1,f=o,d=function(){var m=n==null?void 0:n[l];if(m===void 0)return{v:tA(n,u)};var g=l,x,y=function(){return x===void 0&&(x=r(m,g)),x},v=m.coordinate,b=l===0||Rc(e,v,y,f,s);b||(l=0,f=o,u+=1),b&&(f=v+e*(y()/2+i),l+=u)},p;u<=a.length;)if(p=d(),p)return p.v;return[]}function rl(e){"@babel/helpers - typeof";return rl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},rl(e)}function U1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ct(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?U1(Object(r),!0).forEach(function(n){cY(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):U1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function cY(e,t,r){return t=fY(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function fY(e){var t=dY(e,"string");return rl(t)=="symbol"?t:t+""}function dY(e,t){if(rl(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(rl(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function pY(e,t,r,n,i){for(var a=(n||[]).slice(),o=a.length,s=t.start,l=t.end,u=function(p){var h=a[p],m,g=function(){return m===void 0&&(m=r(h,p)),m};if(p===o-1){var x=e*(h.coordinate+e*g()/2-l);a[p]=h=ct(ct({},h),{},{tickCoord:x>0?h.coordinate-x*e:h.coordinate})}else a[p]=h=ct(ct({},h),{},{tickCoord:h.coordinate});var y=Rc(e,h.tickCoord,g,s,l);y&&(l=h.tickCoord-e*(g()/2+i),a[p]=ct(ct({},h),{},{isShow:!0}))},f=o-1;f>=0;f--)u(f);return a}function hY(e,t,r,n,i,a){var o=(n||[]).slice(),s=o.length,l=t.start,u=t.end;if(a){var f=n[s-1],d=r(f,s-1),p=e*(f.coordinate+e*d/2-u);o[s-1]=f=ct(ct({},f),{},{tickCoord:p>0?f.coordinate-p*e:f.coordinate});var h=Rc(e,f.tickCoord,function(){return d},l,u);h&&(u=f.tickCoord-e*(d/2+i),o[s-1]=ct(ct({},f),{},{isShow:!0}))}for(var m=a?s-1:s,g=function(v){var b=o[v],S,w=function(){return S===void 0&&(S=r(b,v)),S};if(v===0){var j=e*(b.coordinate-e*w()/2-l);o[v]=b=ct(ct({},b),{},{tickCoord:j<0?b.coordinate-j*e:b.coordinate})}else o[v]=b=ct(ct({},b),{},{tickCoord:b.coordinate});var O=Rc(e,b.tickCoord,w,l,u);O&&(l=b.tickCoord+e*(w()/2+i),o[v]=ct(ct({},b),{},{isShow:!0}))},x=0;x<m;x++)g(x);return o}function By(e,t,r){var n=e.tick,i=e.ticks,a=e.viewBox,o=e.minTickGap,s=e.orientation,l=e.interval,u=e.tickFormatter,f=e.unit,d=e.angle;if(!i||!i.length||!n)return[];if(K(l)||sn.isSsr)return lY(i,typeof l=="number"&&K(l)?l:0);var p=[],h=s==="top"||s==="bottom"?"width":"height",m=f&&h==="width"?Yo(f,{fontSize:t,letterSpacing:r}):{width:0,height:0},g=function(b,S){var w=Z(u)?u(b.value,S):b.value;return h==="width"?oY(Yo(w,{fontSize:t,letterSpacing:r}),m,d):Yo(w,{fontSize:t,letterSpacing:r})[h]},x=i.length>=2?yt(i[1].coordinate-i[0].coordinate):1,y=sY(a,x,h);return l==="equidistantPreserveStart"?uY(x,y,g,i,o):(l==="preserveStart"||l==="preserveStartEnd"?p=hY(x,y,g,i,o,l==="preserveStartEnd"):p=pY(x,y,g,i,o),p.filter(function(v){return v.isShow}))}var mY=["viewBox"],vY=["viewBox"],yY=["ticks"];function Ka(e){"@babel/helpers - typeof";return Ka=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ka(e)}function oa(){return oa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},oa.apply(this,arguments)}function K1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ve(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?K1(Object(r),!0).forEach(function(n){Fy(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):K1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function ip(e,t){if(e==null)return{};var r=gY(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function gY(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function xY(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function H1(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,nA(n.key),n)}}function bY(e,t,r){return t&&H1(e.prototype,t),r&&H1(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function wY(e,t,r){return t=Bc(t),jY(e,rA()?Reflect.construct(t,r||[],Bc(e).constructor):t.apply(e,r))}function jY(e,t){if(t&&(Ka(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return SY(e)}function SY(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function rA(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(rA=function(){return!!e})()}function Bc(e){return Bc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Bc(e)}function OY(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Sm(e,t)}function Sm(e,t){return Sm=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Sm(e,t)}function Fy(e,t,r){return t=nA(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function nA(e){var t=_Y(e,"string");return Ka(t)=="symbol"?t:t+""}function _Y(e,t){if(Ka(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ka(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var yo=function(e){function t(r){var n;return xY(this,t),n=wY(this,t,[r]),n.state={fontSize:"",letterSpacing:""},n}return OY(t,e),bY(t,[{key:"shouldComponentUpdate",value:function(n,i){var a=n.viewBox,o=ip(n,mY),s=this.props,l=s.viewBox,u=ip(s,vY);return!ha(a,l)||!ha(o,u)||!ha(i,this.state)}},{key:"componentDidMount",value:function(){var n=this.layerReference;if(n){var i=n.getElementsByClassName("recharts-cartesian-axis-tick-value")[0];i&&this.setState({fontSize:window.getComputedStyle(i).fontSize,letterSpacing:window.getComputedStyle(i).letterSpacing})}}},{key:"getTickLineCoord",value:function(n){var i=this.props,a=i.x,o=i.y,s=i.width,l=i.height,u=i.orientation,f=i.tickSize,d=i.mirror,p=i.tickMargin,h,m,g,x,y,v,b=d?-1:1,S=n.tickSize||f,w=K(n.tickCoord)?n.tickCoord:n.coordinate;switch(u){case"top":h=m=n.coordinate,x=o+ +!d*l,g=x-b*S,v=g-b*p,y=w;break;case"left":g=x=n.coordinate,m=a+ +!d*s,h=m-b*S,y=h-b*p,v=w;break;case"right":g=x=n.coordinate,m=a+ +d*s,h=m+b*S,y=h+b*p,v=w;break;default:h=m=n.coordinate,x=o+ +d*l,g=x+b*S,v=g+b*p,y=w;break}return{line:{x1:h,y1:g,x2:m,y2:x},tick:{x:y,y:v}}}},{key:"getTickTextAnchor",value:function(){var n=this.props,i=n.orientation,a=n.mirror,o;switch(i){case"left":o=a?"start":"end";break;case"right":o=a?"end":"start";break;default:o="middle";break}return o}},{key:"getTickVerticalAnchor",value:function(){var n=this.props,i=n.orientation,a=n.mirror,o="end";switch(i){case"left":case"right":o="middle";break;case"top":o=a?"start":"end";break;default:o=a?"end":"start";break}return o}},{key:"renderAxisLine",value:function(){var n=this.props,i=n.x,a=n.y,o=n.width,s=n.height,l=n.orientation,u=n.mirror,f=n.axisLine,d=Ve(Ve(Ve({},X(this.props,!1)),X(f,!1)),{},{fill:"none"});if(l==="top"||l==="bottom"){var p=+(l==="top"&&!u||l==="bottom"&&u);d=Ve(Ve({},d),{},{x1:i,y1:a+p*s,x2:i+o,y2:a+p*s})}else{var h=+(l==="left"&&!u||l==="right"&&u);d=Ve(Ve({},d),{},{x1:i+h*o,y1:a,x2:i+h*o,y2:a+s})}return k.createElement("line",oa({},d,{className:ee("recharts-cartesian-axis-line",Wt(f,"className"))}))}},{key:"renderTicks",value:function(n,i,a){var o=this,s=this.props,l=s.tickLine,u=s.stroke,f=s.tick,d=s.tickFormatter,p=s.unit,h=By(Ve(Ve({},this.props),{},{ticks:n}),i,a),m=this.getTickTextAnchor(),g=this.getTickVerticalAnchor(),x=X(this.props,!1),y=X(f,!1),v=Ve(Ve({},x),{},{fill:"none"},X(l,!1)),b=h.map(function(S,w){var j=o.getTickLineCoord(S),O=j.line,_=j.tick,P=Ve(Ve(Ve(Ve({textAnchor:m,verticalAnchor:g},x),{},{stroke:"none",fill:u},y),_),{},{index:w,payload:S,visibleTicksCount:h.length,tickFormatter:d});return k.createElement(te,oa({className:"recharts-cartesian-axis-tick",key:"tick-".concat(S.value,"-").concat(S.coordinate,"-").concat(S.tickCoord)},Bn(o.props,S,w)),l&&k.createElement("line",oa({},v,O,{className:ee("recharts-cartesian-axis-tick-line",Wt(l,"className"))})),f&&t.renderTickItem(f,P,"".concat(Z(d)?d(S.value,w):S.value).concat(p||"")))});return k.createElement("g",{className:"recharts-cartesian-axis-ticks"},b)}},{key:"render",value:function(){var n=this,i=this.props,a=i.axisLine,o=i.width,s=i.height,l=i.ticksGenerator,u=i.className,f=i.hide;if(f)return null;var d=this.props,p=d.ticks,h=ip(d,yY),m=p;return Z(l)&&(m=p&&p.length>0?l(this.props):l(h)),o<=0||s<=0||!m||!m.length?null:k.createElement(te,{className:ee("recharts-cartesian-axis",u),ref:function(x){n.layerReference=x}},a&&this.renderAxisLine(),this.renderTicks(m,this.state.fontSize,this.state.letterSpacing),et.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(n,i,a){var o,s=ee(i.className,"recharts-cartesian-axis-tick-value");return k.isValidElement(n)?o=k.cloneElement(n,Ve(Ve({},i),{},{className:s})):Z(n)?o=n(Ve(Ve({},i),{},{className:s})):o=k.createElement(Ai,oa({},i,{className:"recharts-cartesian-axis-tick-value"}),a),o}}])}(A.Component);Fy(yo,"displayName","CartesianAxis");Fy(yo,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var PY=["x1","y1","x2","y2","key"],AY=["offset"];function $i(e){"@babel/helpers - typeof";return $i=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$i(e)}function V1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function dt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?V1(Object(r),!0).forEach(function(n){kY(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):V1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function kY(e,t,r){return t=NY(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function NY(e){var t=$Y(e,"string");return $i(t)=="symbol"?t:t+""}function $Y(e,t){if($i(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if($i(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function hi(){return hi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},hi.apply(this,arguments)}function G1(e,t){if(e==null)return{};var r=EY(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function EY(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var TY=function(t){var r=t.fill;if(!r||r==="none")return null;var n=t.fillOpacity,i=t.x,a=t.y,o=t.width,s=t.height,l=t.ry;return k.createElement("rect",{x:i,y:a,ry:l,width:o,height:s,stroke:"none",fill:r,fillOpacity:n,className:"recharts-cartesian-grid-bg"})};function iA(e,t){var r;if(k.isValidElement(e))r=k.cloneElement(e,t);else if(Z(e))r=e(t);else{var n=t.x1,i=t.y1,a=t.x2,o=t.y2,s=t.key,l=G1(t,PY),u=X(l,!1);u.offset;var f=G1(u,AY);r=k.createElement("line",hi({},f,{x1:n,y1:i,x2:a,y2:o,fill:"none",key:s}))}return r}function CY(e){var t=e.x,r=e.width,n=e.horizontal,i=n===void 0?!0:n,a=e.horizontalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(s,l){var u=dt(dt({},e),{},{x1:t,y1:s,x2:t+r,y2:s,key:"line-".concat(l),index:l});return iA(i,u)});return k.createElement("g",{className:"recharts-cartesian-grid-horizontal"},o)}function MY(e){var t=e.y,r=e.height,n=e.vertical,i=n===void 0?!0:n,a=e.verticalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(s,l){var u=dt(dt({},e),{},{x1:s,y1:t,x2:s,y2:t+r,key:"line-".concat(l),index:l});return iA(i,u)});return k.createElement("g",{className:"recharts-cartesian-grid-vertical"},o)}function IY(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,i=e.y,a=e.width,o=e.height,s=e.horizontalPoints,l=e.horizontal,u=l===void 0?!0:l;if(!u||!t||!t.length)return null;var f=s.map(function(p){return Math.round(p+i-i)}).sort(function(p,h){return p-h});i!==f[0]&&f.unshift(0);var d=f.map(function(p,h){var m=!f[h+1],g=m?i+o-p:f[h+1]-p;if(g<=0)return null;var x=h%t.length;return k.createElement("rect",{key:"react-".concat(h),y:p,x:n,height:g,width:a,stroke:"none",fill:t[x],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return k.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},d)}function LY(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,i=e.fillOpacity,a=e.x,o=e.y,s=e.width,l=e.height,u=e.verticalPoints;if(!r||!n||!n.length)return null;var f=u.map(function(p){return Math.round(p+a-a)}).sort(function(p,h){return p-h});a!==f[0]&&f.unshift(0);var d=f.map(function(p,h){var m=!f[h+1],g=m?a+s-p:f[h+1]-p;if(g<=0)return null;var x=h%n.length;return k.createElement("rect",{key:"react-".concat(h),x:p,y:o,width:g,height:l,stroke:"none",fill:n[x],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return k.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},d)}var DY=function(t,r){var n=t.xAxis,i=t.width,a=t.height,o=t.offset;return rP(By(dt(dt(dt({},yo.defaultProps),n),{},{ticks:Hr(n,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.left,o.left+o.width,r)},RY=function(t,r){var n=t.yAxis,i=t.width,a=t.height,o=t.offset;return rP(By(dt(dt(dt({},yo.defaultProps),n),{},{ticks:Hr(n,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.top,o.top+o.height,r)},Wi={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function ht(e){var t,r,n,i,a,o,s=Iy(),l=Ly(),u=_X(),f=dt(dt({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:Wi.stroke,fill:(r=e.fill)!==null&&r!==void 0?r:Wi.fill,horizontal:(n=e.horizontal)!==null&&n!==void 0?n:Wi.horizontal,horizontalFill:(i=e.horizontalFill)!==null&&i!==void 0?i:Wi.horizontalFill,vertical:(a=e.vertical)!==null&&a!==void 0?a:Wi.vertical,verticalFill:(o=e.verticalFill)!==null&&o!==void 0?o:Wi.verticalFill,x:K(e.x)?e.x:u.left,y:K(e.y)?e.y:u.top,width:K(e.width)?e.width:u.width,height:K(e.height)?e.height:u.height}),d=f.x,p=f.y,h=f.width,m=f.height,g=f.syncWithTicks,x=f.horizontalValues,y=f.verticalValues,v=jX(),b=SX();if(!K(h)||h<=0||!K(m)||m<=0||!K(d)||d!==+d||!K(p)||p!==+p)return null;var S=f.verticalCoordinatesGenerator||DY,w=f.horizontalCoordinatesGenerator||RY,j=f.horizontalPoints,O=f.verticalPoints;if((!j||!j.length)&&Z(w)){var _=x&&x.length,P=w({yAxis:b?dt(dt({},b),{},{ticks:_?x:b.ticks}):void 0,width:s,height:l,offset:u},_?!0:g);xr(Array.isArray(P),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat($i(P),"]")),Array.isArray(P)&&(j=P)}if((!O||!O.length)&&Z(S)){var N=y&&y.length,T=S({xAxis:v?dt(dt({},v),{},{ticks:N?y:v.ticks}):void 0,width:s,height:l,offset:u},N?!0:g);xr(Array.isArray(T),"verticalCoordinatesGenerator should return Array but instead it returned [".concat($i(T),"]")),Array.isArray(T)&&(O=T)}return k.createElement("g",{className:"recharts-cartesian-grid"},k.createElement(TY,{fill:f.fill,fillOpacity:f.fillOpacity,x:f.x,y:f.y,width:f.width,height:f.height,ry:f.ry}),k.createElement(CY,hi({},f,{offset:u,horizontalPoints:j,xAxis:v,yAxis:b})),k.createElement(MY,hi({},f,{offset:u,verticalPoints:O,xAxis:v,yAxis:b})),k.createElement(IY,hi({},f,{horizontalPoints:j})),k.createElement(LY,hi({},f,{verticalPoints:O})))}ht.displayName="CartesianGrid";var BY=["type","layout","connectNulls","ref"],FY=["key"];function Ha(e){"@babel/helpers - typeof";return Ha=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ha(e)}function q1(e,t){if(e==null)return{};var r=zY(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function zY(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function rs(){return rs=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},rs.apply(this,arguments)}function X1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function It(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?X1(Object(r),!0).forEach(function(n){hr(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):X1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Ui(e){return HY(e)||KY(e)||UY(e)||WY()}function WY(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function UY(e,t){if(e){if(typeof e=="string")return Om(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Om(e,t)}}function KY(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function HY(e){if(Array.isArray(e))return Om(e)}function Om(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function VY(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Y1(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,oA(n.key),n)}}function GY(e,t,r){return t&&Y1(e.prototype,t),r&&Y1(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function qY(e,t,r){return t=Fc(t),XY(e,aA()?Reflect.construct(t,r||[],Fc(e).constructor):t.apply(e,r))}function XY(e,t){if(t&&(Ha(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return YY(e)}function YY(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function aA(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(aA=function(){return!!e})()}function Fc(e){return Fc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Fc(e)}function QY(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_m(e,t)}function _m(e,t){return _m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},_m(e,t)}function hr(e,t,r){return t=oA(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function oA(e){var t=ZY(e,"string");return Ha(t)=="symbol"?t:t+""}function ZY(e,t){if(Ha(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ha(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var On=function(e){function t(){var r;VY(this,t);for(var n=arguments.length,i=new Array(n),a=0;a<n;a++)i[a]=arguments[a];return r=qY(this,t,[].concat(i)),hr(r,"state",{isAnimationFinished:!0,totalLength:0}),hr(r,"generateSimpleStrokeDasharray",function(o,s){return"".concat(s,"px ").concat(o-s,"px")}),hr(r,"getStrokeDasharray",function(o,s,l){var u=l.reduce(function(y,v){return y+v});if(!u)return r.generateSimpleStrokeDasharray(s,o);for(var f=Math.floor(o/u),d=o%u,p=s-o,h=[],m=0,g=0;m<l.length;g+=l[m],++m)if(g+l[m]>d){h=[].concat(Ui(l.slice(0,m)),[d-g]);break}var x=h.length%2===0?[0,p]:[p];return[].concat(Ui(t.repeat(l,f)),Ui(h),x).map(function(y){return"".concat(y,"px")}).join(", ")}),hr(r,"id",Gn("recharts-line-")),hr(r,"pathRef",function(o){r.mainCurve=o}),hr(r,"handleAnimationEnd",function(){r.setState({isAnimationFinished:!0}),r.props.onAnimationEnd&&r.props.onAnimationEnd()}),hr(r,"handleAnimationStart",function(){r.setState({isAnimationFinished:!1}),r.props.onAnimationStart&&r.props.onAnimationStart()}),r}return QY(t,e),GY(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var n=this.getTotalLength();this.setState({totalLength:n})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var n=this.getTotalLength();n!==this.state.totalLength&&this.setState({totalLength:n})}}},{key:"getTotalLength",value:function(){var n=this.mainCurve;try{return n&&n.getTotalLength&&n.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(n,i){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var a=this.props,o=a.points,s=a.xAxis,l=a.yAxis,u=a.layout,f=a.children,d=wt(f,vo);if(!d)return null;var p=function(g,x){return{x:g.x,y:g.y,value:g.value,errorVal:Oe(g.payload,x)}},h={clipPath:n?"url(#clipPath-".concat(i,")"):null};return k.createElement(te,h,d.map(function(m){return k.cloneElement(m,{key:"bar-".concat(m.props.dataKey),data:o,xAxis:s,yAxis:l,layout:u,dataPointFormatter:p})}))}},{key:"renderDots",value:function(n,i,a){var o=this.props.isAnimationActive;if(o&&!this.state.isAnimationFinished)return null;var s=this.props,l=s.dot,u=s.points,f=s.dataKey,d=X(this.props,!1),p=X(l,!0),h=u.map(function(g,x){var y=It(It(It({key:"dot-".concat(x),r:3},d),p),{},{index:x,cx:g.x,cy:g.y,value:g.value,dataKey:f,payload:g.payload,points:u});return t.renderDotItem(l,y)}),m={clipPath:n?"url(#clipPath-".concat(i?"":"dots-").concat(a,")"):null};return k.createElement(te,rs({className:"recharts-line-dots",key:"dots"},m),h)}},{key:"renderCurveStatically",value:function(n,i,a,o){var s=this.props,l=s.type,u=s.layout,f=s.connectNulls;s.ref;var d=q1(s,BY),p=It(It(It({},X(d,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:i?"url(#clipPath-".concat(a,")"):null,points:n},o),{},{type:l,layout:u,connectNulls:f});return k.createElement(Ln,rs({},p,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(n,i){var a=this,o=this.props,s=o.points,l=o.strokeDasharray,u=o.isAnimationActive,f=o.animationBegin,d=o.animationDuration,p=o.animationEasing,h=o.animationId,m=o.animateNewValues,g=o.width,x=o.height,y=this.state,v=y.prevPoints,b=y.totalLength;return k.createElement(or,{begin:f,duration:d,isActive:u,easing:p,from:{t:0},to:{t:1},key:"line-".concat(h),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(S){var w=S.t;if(v){var j=v.length/s.length,O=s.map(function($,I){var D=Math.floor(I*j);if(v[D]){var L=v[D],C=$e(L.x,$.x),F=$e(L.y,$.y);return It(It({},$),{},{x:C(w),y:F(w)})}if(m){var M=$e(g*2,$.x),B=$e(x/2,$.y);return It(It({},$),{},{x:M(w),y:B(w)})}return It(It({},$),{},{x:$.x,y:$.y})});return a.renderCurveStatically(O,n,i)}var _=$e(0,b),P=_(w),N;if(l){var T="".concat(l).split(/[,\s]+/gim).map(function($){return parseFloat($)});N=a.getStrokeDasharray(P,b,T)}else N=a.generateSimpleStrokeDasharray(b,P);return a.renderCurveStatically(s,n,i,{strokeDasharray:N})})}},{key:"renderCurve",value:function(n,i){var a=this.props,o=a.points,s=a.isAnimationActive,l=this.state,u=l.prevPoints,f=l.totalLength;return s&&o&&o.length&&(!u&&f>0||!Fn(u,o))?this.renderCurveWithAnimation(n,i):this.renderCurveStatically(o,n,i)}},{key:"render",value:function(){var n,i=this.props,a=i.hide,o=i.dot,s=i.points,l=i.className,u=i.xAxis,f=i.yAxis,d=i.top,p=i.left,h=i.width,m=i.height,g=i.isAnimationActive,x=i.id;if(a||!s||!s.length)return null;var y=this.state.isAnimationFinished,v=s.length===1,b=ee("recharts-line",l),S=u&&u.allowDataOverflow,w=f&&f.allowDataOverflow,j=S||w,O=Q(x)?this.id:x,_=(n=X(o,!1))!==null&&n!==void 0?n:{r:3,strokeWidth:2},P=_.r,N=P===void 0?3:P,T=_.strokeWidth,$=T===void 0?2:T,I=XS(o)?o:{},D=I.clipDot,L=D===void 0?!0:D,C=N*2+$;return k.createElement(te,{className:b},S||w?k.createElement("defs",null,k.createElement("clipPath",{id:"clipPath-".concat(O)},k.createElement("rect",{x:S?p:p-h/2,y:w?d:d-m/2,width:S?h:h*2,height:w?m:m*2})),!L&&k.createElement("clipPath",{id:"clipPath-dots-".concat(O)},k.createElement("rect",{x:p-C/2,y:d-C/2,width:h+C,height:m+C}))):null,!v&&this.renderCurve(j,O),this.renderErrorBar(j,O),(v||o)&&this.renderDots(j,L,O),(!g||y)&&br.renderCallByParent(this.props,s))}}],[{key:"getDerivedStateFromProps",value:function(n,i){return n.animationId!==i.prevAnimationId?{prevAnimationId:n.animationId,curPoints:n.points,prevPoints:i.curPoints}:n.points!==i.curPoints?{curPoints:n.points}:null}},{key:"repeat",value:function(n,i){for(var a=n.length%2!==0?[].concat(Ui(n),[0]):n,o=[],s=0;s<i;++s)o=[].concat(Ui(o),Ui(a));return o}},{key:"renderDotItem",value:function(n,i){var a;if(k.isValidElement(n))a=k.cloneElement(n,i);else if(Z(n))a=n(i);else{var o=i.key,s=q1(i,FY),l=ee("recharts-line-dot",typeof n!="boolean"?n.className:"");a=k.createElement(xl,rs({key:o},s,{className:l}))}return a}}])}(A.PureComponent);hr(On,"displayName","Line");hr(On,"defaultProps",{xAxisId:0,yAxisId:0,connectNulls:!1,activeDot:!0,dot:!0,legendType:"line",stroke:"#3182bd",strokeWidth:1,fill:"#fff",points:[],isAnimationActive:!sn.isSsr,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",hide:!1,label:!1});hr(On,"getComposedData",function(e){var t=e.props,r=e.xAxis,n=e.yAxis,i=e.xAxisTicks,a=e.yAxisTicks,o=e.dataKey,s=e.bandSize,l=e.displayedData,u=e.offset,f=t.layout,d=l.map(function(p,h){var m=Oe(p,o);return f==="horizontal"?{x:Ca({axis:r,ticks:i,bandSize:s,entry:p,index:h}),y:Q(m)?null:n.scale(m),value:m,payload:p}:{x:Q(m)?null:r.scale(m),y:Ca({axis:n,ticks:a,bandSize:s,entry:p,index:h}),value:m,payload:p}});return It({points:d,layout:f},u)});var JY=["layout","type","stroke","connectNulls","isRange","ref"],eQ=["key"],sA;function Va(e){"@babel/helpers - typeof";return Va=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Va(e)}function lA(e,t){if(e==null)return{};var r=tQ(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function tQ(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function mi(){return mi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},mi.apply(this,arguments)}function Q1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function dn(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Q1(Object(r),!0).forEach(function(n){Nr(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Q1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function rQ(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Z1(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,cA(n.key),n)}}function nQ(e,t,r){return t&&Z1(e.prototype,t),r&&Z1(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function iQ(e,t,r){return t=zc(t),aQ(e,uA()?Reflect.construct(t,r||[],zc(e).constructor):t.apply(e,r))}function aQ(e,t){if(t&&(Va(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return oQ(e)}function oQ(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function uA(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(uA=function(){return!!e})()}function zc(e){return zc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},zc(e)}function sQ(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Pm(e,t)}function Pm(e,t){return Pm=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Pm(e,t)}function Nr(e,t,r){return t=cA(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function cA(e){var t=lQ(e,"string");return Va(t)=="symbol"?t:t+""}function lQ(e,t){if(Va(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Va(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Sr=function(e){function t(){var r;rQ(this,t);for(var n=arguments.length,i=new Array(n),a=0;a<n;a++)i[a]=arguments[a];return r=iQ(this,t,[].concat(i)),Nr(r,"state",{isAnimationFinished:!0}),Nr(r,"id",Gn("recharts-area-")),Nr(r,"handleAnimationEnd",function(){var o=r.props.onAnimationEnd;r.setState({isAnimationFinished:!0}),Z(o)&&o()}),Nr(r,"handleAnimationStart",function(){var o=r.props.onAnimationStart;r.setState({isAnimationFinished:!1}),Z(o)&&o()}),r}return sQ(t,e),nQ(t,[{key:"renderDots",value:function(n,i,a){var o=this.props.isAnimationActive,s=this.state.isAnimationFinished;if(o&&!s)return null;var l=this.props,u=l.dot,f=l.points,d=l.dataKey,p=X(this.props,!1),h=X(u,!0),m=f.map(function(x,y){var v=dn(dn(dn({key:"dot-".concat(y),r:3},p),h),{},{index:y,cx:x.x,cy:x.y,dataKey:d,value:x.value,payload:x.payload,points:f});return t.renderDotItem(u,v)}),g={clipPath:n?"url(#clipPath-".concat(i?"":"dots-").concat(a,")"):null};return k.createElement(te,mi({className:"recharts-area-dots"},g),m)}},{key:"renderHorizontalRect",value:function(n){var i=this.props,a=i.baseLine,o=i.points,s=i.strokeWidth,l=o[0].x,u=o[o.length-1].x,f=n*Math.abs(l-u),d=jn(o.map(function(p){return p.y||0}));return K(a)&&typeof a=="number"?d=Math.max(a,d):a&&Array.isArray(a)&&a.length&&(d=Math.max(jn(a.map(function(p){return p.y||0})),d)),K(d)?k.createElement("rect",{x:l<u?l:l-f,y:0,width:f,height:Math.floor(d+(s?parseInt("".concat(s),10):1))}):null}},{key:"renderVerticalRect",value:function(n){var i=this.props,a=i.baseLine,o=i.points,s=i.strokeWidth,l=o[0].y,u=o[o.length-1].y,f=n*Math.abs(l-u),d=jn(o.map(function(p){return p.x||0}));return K(a)&&typeof a=="number"?d=Math.max(a,d):a&&Array.isArray(a)&&a.length&&(d=Math.max(jn(a.map(function(p){return p.x||0})),d)),K(d)?k.createElement("rect",{x:0,y:l<u?l:l-f,width:d+(s?parseInt("".concat(s),10):1),height:Math.floor(f)}):null}},{key:"renderClipRect",value:function(n){var i=this.props.layout;return i==="vertical"?this.renderVerticalRect(n):this.renderHorizontalRect(n)}},{key:"renderAreaStatically",value:function(n,i,a,o){var s=this.props,l=s.layout,u=s.type,f=s.stroke,d=s.connectNulls,p=s.isRange;s.ref;var h=lA(s,JY);return k.createElement(te,{clipPath:a?"url(#clipPath-".concat(o,")"):null},k.createElement(Ln,mi({},X(h,!0),{points:n,connectNulls:d,type:u,baseLine:i,layout:l,stroke:"none",className:"recharts-area-area"})),f!=="none"&&k.createElement(Ln,mi({},X(this.props,!1),{className:"recharts-area-curve",layout:l,type:u,connectNulls:d,fill:"none",points:n})),f!=="none"&&p&&k.createElement(Ln,mi({},X(this.props,!1),{className:"recharts-area-curve",layout:l,type:u,connectNulls:d,fill:"none",points:i})))}},{key:"renderAreaWithAnimation",value:function(n,i){var a=this,o=this.props,s=o.points,l=o.baseLine,u=o.isAnimationActive,f=o.animationBegin,d=o.animationDuration,p=o.animationEasing,h=o.animationId,m=this.state,g=m.prevPoints,x=m.prevBaseLine;return k.createElement(or,{begin:f,duration:d,isActive:u,easing:p,from:{t:0},to:{t:1},key:"area-".concat(h),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(y){var v=y.t;if(g){var b=g.length/s.length,S=s.map(function(_,P){var N=Math.floor(P*b);if(g[N]){var T=g[N],$=$e(T.x,_.x),I=$e(T.y,_.y);return dn(dn({},_),{},{x:$(v),y:I(v)})}return _}),w;if(K(l)&&typeof l=="number"){var j=$e(x,l);w=j(v)}else if(Q(l)||lo(l)){var O=$e(x,0);w=O(v)}else w=l.map(function(_,P){var N=Math.floor(P*b);if(x[N]){var T=x[N],$=$e(T.x,_.x),I=$e(T.y,_.y);return dn(dn({},_),{},{x:$(v),y:I(v)})}return _});return a.renderAreaStatically(S,w,n,i)}return k.createElement(te,null,k.createElement("defs",null,k.createElement("clipPath",{id:"animationClipPath-".concat(i)},a.renderClipRect(v))),k.createElement(te,{clipPath:"url(#animationClipPath-".concat(i,")")},a.renderAreaStatically(s,l,n,i)))})}},{key:"renderArea",value:function(n,i){var a=this.props,o=a.points,s=a.baseLine,l=a.isAnimationActive,u=this.state,f=u.prevPoints,d=u.prevBaseLine,p=u.totalLength;return l&&o&&o.length&&(!f&&p>0||!Fn(f,o)||!Fn(d,s))?this.renderAreaWithAnimation(n,i):this.renderAreaStatically(o,s,n,i)}},{key:"render",value:function(){var n,i=this.props,a=i.hide,o=i.dot,s=i.points,l=i.className,u=i.top,f=i.left,d=i.xAxis,p=i.yAxis,h=i.width,m=i.height,g=i.isAnimationActive,x=i.id;if(a||!s||!s.length)return null;var y=this.state.isAnimationFinished,v=s.length===1,b=ee("recharts-area",l),S=d&&d.allowDataOverflow,w=p&&p.allowDataOverflow,j=S||w,O=Q(x)?this.id:x,_=(n=X(o,!1))!==null&&n!==void 0?n:{r:3,strokeWidth:2},P=_.r,N=P===void 0?3:P,T=_.strokeWidth,$=T===void 0?2:T,I=XS(o)?o:{},D=I.clipDot,L=D===void 0?!0:D,C=N*2+$;return k.createElement(te,{className:b},S||w?k.createElement("defs",null,k.createElement("clipPath",{id:"clipPath-".concat(O)},k.createElement("rect",{x:S?f:f-h/2,y:w?u:u-m/2,width:S?h:h*2,height:w?m:m*2})),!L&&k.createElement("clipPath",{id:"clipPath-dots-".concat(O)},k.createElement("rect",{x:f-C/2,y:u-C/2,width:h+C,height:m+C}))):null,v?null:this.renderArea(j,O),(o||v)&&this.renderDots(j,L,O),(!g||y)&&br.renderCallByParent(this.props,s))}}],[{key:"getDerivedStateFromProps",value:function(n,i){return n.animationId!==i.prevAnimationId?{prevAnimationId:n.animationId,curPoints:n.points,curBaseLine:n.baseLine,prevPoints:i.curPoints,prevBaseLine:i.curBaseLine}:n.points!==i.curPoints||n.baseLine!==i.curBaseLine?{curPoints:n.points,curBaseLine:n.baseLine}:null}}])}(A.PureComponent);sA=Sr;Nr(Sr,"displayName","Area");Nr(Sr,"defaultProps",{stroke:"#3182bd",fill:"#3182bd",fillOpacity:.6,xAxisId:0,yAxisId:0,legendType:"line",connectNulls:!1,points:[],dot:!1,activeDot:!0,hide:!1,isAnimationActive:!sn.isSsr,animationBegin:0,animationDuration:1500,animationEasing:"ease"});Nr(Sr,"getBaseValue",function(e,t,r,n){var i=e.layout,a=e.baseValue,o=t.props.baseValue,s=o??a;if(K(s)&&typeof s=="number")return s;var l=i==="horizontal"?n:r,u=l.scale.domain();if(l.type==="number"){var f=Math.max(u[0],u[1]),d=Math.min(u[0],u[1]);return s==="dataMin"?d:s==="dataMax"||f<0?f:Math.max(Math.min(u[0],u[1]),0)}return s==="dataMin"?u[0]:s==="dataMax"?u[1]:u[0]});Nr(Sr,"getComposedData",function(e){var t=e.props,r=e.item,n=e.xAxis,i=e.yAxis,a=e.xAxisTicks,o=e.yAxisTicks,s=e.bandSize,l=e.dataKey,u=e.stackedData,f=e.dataStartIndex,d=e.displayedData,p=e.offset,h=t.layout,m=u&&u.length,g=sA.getBaseValue(t,r,n,i),x=h==="horizontal",y=!1,v=d.map(function(S,w){var j;m?j=u[f+w]:(j=Oe(S,l),Array.isArray(j)?y=!0:j=[g,j]);var O=j[1]==null||m&&Oe(S,l)==null;return x?{x:Ca({axis:n,ticks:a,bandSize:s,entry:S,index:w}),y:O?null:i.scale(j[1]),value:j,payload:S}:{x:O?null:n.scale(j[1]),y:Ca({axis:i,ticks:o,bandSize:s,entry:S,index:w}),value:j,payload:S}}),b;return m||y?b=v.map(function(S){var w=Array.isArray(S.value)?S.value[0]:null;return x?{x:S.x,y:w!=null&&S.y!=null?i.scale(w):null}:{x:w!=null?n.scale(w):null,y:S.y}}):b=x?i.scale(g):n.scale(g),dn({points:v,baseLine:b,layout:h,isRange:y},p)});Nr(Sr,"renderDotItem",function(e,t){var r;if(k.isValidElement(e))r=k.cloneElement(e,t);else if(Z(e))r=e(t);else{var n=ee("recharts-area-dot",typeof e!="boolean"?e.className:""),i=t.key,a=lA(t,eQ);r=k.createElement(xl,mi({},a,{key:i,className:n}))}return r});function Ga(e){"@babel/helpers - typeof";return Ga=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ga(e)}function uQ(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function cQ(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,pA(n.key),n)}}function fQ(e,t,r){return t&&cQ(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function dQ(e,t,r){return t=Wc(t),pQ(e,fA()?Reflect.construct(t,r||[],Wc(e).constructor):t.apply(e,r))}function pQ(e,t){if(t&&(Ga(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return hQ(e)}function hQ(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function fA(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(fA=function(){return!!e})()}function Wc(e){return Wc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Wc(e)}function mQ(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Am(e,t)}function Am(e,t){return Am=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Am(e,t)}function dA(e,t,r){return t=pA(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function pA(e){var t=vQ(e,"string");return Ga(t)=="symbol"?t:t+""}function vQ(e,t){if(Ga(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ga(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var bl=function(e){function t(){return uQ(this,t),dQ(this,t,arguments)}return mQ(t,e),fQ(t,[{key:"render",value:function(){return null}}])}(A.Component);dA(bl,"displayName","ZAxis");dA(bl,"defaultProps",{zAxisId:0,range:[64,64],scale:"auto",type:"number"});var yQ=["option","isActive"];function ns(){return ns=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ns.apply(this,arguments)}function gQ(e,t){if(e==null)return{};var r=xQ(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function xQ(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function bQ(e){var t=e.option,r=e.isActive,n=gQ(e,yQ);return typeof t=="string"?A.createElement(kc,ns({option:A.createElement(Ef,ns({type:t},n)),isActive:r,shapeType:"symbols"},n)):A.createElement(kc,ns({option:t,isActive:r,shapeType:"symbols"},n))}function qa(e){"@babel/helpers - typeof";return qa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},qa(e)}function is(){return is=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},is.apply(this,arguments)}function J1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Yt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?J1(Object(r),!0).forEach(function(n){_n(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):J1(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function wQ(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ew(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,mA(n.key),n)}}function jQ(e,t,r){return t&&ew(e.prototype,t),r&&ew(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function SQ(e,t,r){return t=Uc(t),OQ(e,hA()?Reflect.construct(t,r||[],Uc(e).constructor):t.apply(e,r))}function OQ(e,t){if(t&&(qa(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _Q(e)}function _Q(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function hA(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(hA=function(){return!!e})()}function Uc(e){return Uc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Uc(e)}function PQ(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&km(e,t)}function km(e,t){return km=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},km(e,t)}function _n(e,t,r){return t=mA(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function mA(e){var t=AQ(e,"string");return qa(t)=="symbol"?t:t+""}function AQ(e,t){if(qa(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(qa(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var bi=function(e){function t(){var r;wQ(this,t);for(var n=arguments.length,i=new Array(n),a=0;a<n;a++)i[a]=arguments[a];return r=SQ(this,t,[].concat(i)),_n(r,"state",{isAnimationFinished:!1}),_n(r,"handleAnimationEnd",function(){r.setState({isAnimationFinished:!0})}),_n(r,"handleAnimationStart",function(){r.setState({isAnimationFinished:!1})}),_n(r,"id",Gn("recharts-scatter-")),r}return PQ(t,e),jQ(t,[{key:"renderSymbolsStatically",value:function(n){var i=this,a=this.props,o=a.shape,s=a.activeShape,l=a.activeIndex,u=X(this.props,!1);return n.map(function(f,d){var p=l===d,h=p?s:o,m=Yt(Yt({},u),f);return k.createElement(te,is({className:"recharts-scatter-symbol",key:"symbol-".concat(f==null?void 0:f.cx,"-").concat(f==null?void 0:f.cy,"-").concat(f==null?void 0:f.size,"-").concat(d)},Bn(i.props,f,d),{role:"img"}),k.createElement(bQ,is({option:h,isActive:p,key:"symbol-".concat(d)},m)))})}},{key:"renderSymbolsWithAnimation",value:function(){var n=this,i=this.props,a=i.points,o=i.isAnimationActive,s=i.animationBegin,l=i.animationDuration,u=i.animationEasing,f=i.animationId,d=this.state.prevPoints;return k.createElement(or,{begin:s,duration:l,isActive:o,easing:u,from:{t:0},to:{t:1},key:"pie-".concat(f),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(p){var h=p.t,m=a.map(function(g,x){var y=d&&d[x];if(y){var v=$e(y.cx,g.cx),b=$e(y.cy,g.cy),S=$e(y.size,g.size);return Yt(Yt({},g),{},{cx:v(h),cy:b(h),size:S(h)})}var w=$e(0,g.size);return Yt(Yt({},g),{},{size:w(h)})});return k.createElement(te,null,n.renderSymbolsStatically(m))})}},{key:"renderSymbols",value:function(){var n=this.props,i=n.points,a=n.isAnimationActive,o=this.state.prevPoints;return a&&i&&i.length&&(!o||!Fn(o,i))?this.renderSymbolsWithAnimation():this.renderSymbolsStatically(i)}},{key:"renderErrorBar",value:function(){var n=this.props.isAnimationActive;if(n&&!this.state.isAnimationFinished)return null;var i=this.props,a=i.points,o=i.xAxis,s=i.yAxis,l=i.children,u=wt(l,vo);return u?u.map(function(f,d){var p=f.props,h=p.direction,m=p.dataKey;return k.cloneElement(f,{key:"".concat(h,"-").concat(m,"-").concat(a[d]),data:a,xAxis:o,yAxis:s,layout:h==="x"?"vertical":"horizontal",dataPointFormatter:function(x,y){return{x:x.cx,y:x.cy,value:h==="x"?+x.node.x:+x.node.y,errorVal:Oe(x,y)}}})}):null}},{key:"renderLine",value:function(){var n=this.props,i=n.points,a=n.line,o=n.lineType,s=n.lineJointType,l=X(this.props,!1),u=X(a,!1),f,d;if(o==="joint")f=i.map(function(b){return{x:b.cx,y:b.cy}});else if(o==="fitting"){var p=lM(i),h=p.xmin,m=p.xmax,g=p.a,x=p.b,y=function(S){return g*S+x};f=[{x:h,y:y(h)},{x:m,y:y(m)}]}var v=Yt(Yt(Yt({},l),{},{fill:"none",stroke:l&&l.fill},u),{},{points:f});return k.isValidElement(a)?d=k.cloneElement(a,v):Z(a)?d=a(v):d=k.createElement(Ln,is({},v,{type:s})),k.createElement(te,{className:"recharts-scatter-line",key:"recharts-scatter-line"},d)}},{key:"render",value:function(){var n=this.props,i=n.hide,a=n.points,o=n.line,s=n.className,l=n.xAxis,u=n.yAxis,f=n.left,d=n.top,p=n.width,h=n.height,m=n.id,g=n.isAnimationActive;if(i||!a||!a.length)return null;var x=this.state.isAnimationFinished,y=ee("recharts-scatter",s),v=l&&l.allowDataOverflow,b=u&&u.allowDataOverflow,S=v||b,w=Q(m)?this.id:m;return k.createElement(te,{className:y,clipPath:S?"url(#clipPath-".concat(w,")"):null},v||b?k.createElement("defs",null,k.createElement("clipPath",{id:"clipPath-".concat(w)},k.createElement("rect",{x:v?f:f-p/2,y:b?d:d-h/2,width:v?p:p*2,height:b?h:h*2}))):null,o&&this.renderLine(),this.renderErrorBar(),k.createElement(te,{key:"recharts-scatter-symbols"},this.renderSymbols()),(!g||x)&&br.renderCallByParent(this.props,a))}}],[{key:"getDerivedStateFromProps",value:function(n,i){return n.animationId!==i.prevAnimationId?{prevAnimationId:n.animationId,curPoints:n.points,prevPoints:i.curPoints}:n.points!==i.curPoints?{curPoints:n.points}:null}}])}(A.PureComponent);_n(bi,"displayName","Scatter");_n(bi,"defaultProps",{xAxisId:0,yAxisId:0,zAxisId:0,legendType:"circle",lineType:"joint",lineJointType:"linear",data:[],shape:"circle",hide:!1,isAnimationActive:!sn.isSsr,animationBegin:0,animationDuration:400,animationEasing:"linear"});_n(bi,"getComposedData",function(e){var t=e.xAxis,r=e.yAxis,n=e.zAxis,i=e.item,a=e.displayedData,o=e.xAxisTicks,s=e.yAxisTicks,l=e.offset,u=i.props.tooltipType,f=wt(i.props.children,jr),d=Q(t.dataKey)?i.props.dataKey:t.dataKey,p=Q(r.dataKey)?i.props.dataKey:r.dataKey,h=n&&n.dataKey,m=n?n.range:bl.defaultProps.range,g=m&&m[0],x=t.scale.bandwidth?t.scale.bandwidth():0,y=r.scale.bandwidth?r.scale.bandwidth():0,v=a.map(function(b,S){var w=Oe(b,d),j=Oe(b,p),O=!Q(h)&&Oe(b,h)||"-",_=[{name:Q(t.dataKey)?i.props.name:t.name||t.dataKey,unit:t.unit||"",value:w,payload:b,dataKey:d,type:u},{name:Q(r.dataKey)?i.props.name:r.name||r.dataKey,unit:r.unit||"",value:j,payload:b,dataKey:p,type:u}];O!=="-"&&_.push({name:n.name||n.dataKey,unit:n.unit||"",value:O,payload:b,dataKey:h,type:u});var P=Ca({axis:t,ticks:o,bandSize:x,entry:b,index:S,dataKey:d}),N=Ca({axis:r,ticks:s,bandSize:y,entry:b,index:S,dataKey:p}),T=O!=="-"?n.scale(O):g,$=Math.sqrt(Math.max(T,0)/Math.PI);return Yt(Yt({},b),{},{cx:P,cy:N,x:P-$,y:N-$,xAxis:t,yAxis:r,zAxis:n,width:2*$,height:2*$,size:T,node:{x:w,y:j,z:O},tooltipPayload:_,tooltipPosition:{x:P,y:N},payload:b},f&&f[S]&&f[S].props)});return Yt({points:v},l)});function Xa(e){"@babel/helpers - typeof";return Xa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Xa(e)}function kQ(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function NQ(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,gA(n.key),n)}}function $Q(e,t,r){return t&&NQ(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function EQ(e,t,r){return t=Kc(t),TQ(e,vA()?Reflect.construct(t,r||[],Kc(e).constructor):t.apply(e,r))}function TQ(e,t){if(t&&(Xa(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return CQ(e)}function CQ(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function vA(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(vA=function(){return!!e})()}function Kc(e){return Kc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Kc(e)}function MQ(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Nm(e,t)}function Nm(e,t){return Nm=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Nm(e,t)}function yA(e,t,r){return t=gA(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function gA(e){var t=IQ(e,"string");return Xa(t)=="symbol"?t:t+""}function IQ(e,t){if(Xa(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Xa(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function $m(){return $m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},$m.apply(this,arguments)}function LQ(e){var t=e.xAxisId,r=Iy(),n=Ly(),i=GP(t);return i==null?null:A.createElement(yo,$m({},i,{className:ee("recharts-".concat(i.axisType," ").concat(i.axisType),i.className),viewBox:{x:0,y:0,width:r,height:n},ticksGenerator:function(o){return Hr(o,!0)}}))}var Re=function(e){function t(){return kQ(this,t),EQ(this,t,arguments)}return MQ(t,e),$Q(t,[{key:"render",value:function(){return A.createElement(LQ,this.props)}}])}(A.Component);yA(Re,"displayName","XAxis");yA(Re,"defaultProps",{allowDecimals:!0,hide:!1,orientation:"bottom",width:0,height:30,mirror:!1,xAxisId:0,tickCount:5,type:"category",padding:{left:0,right:0},allowDataOverflow:!1,scale:"auto",reversed:!1,allowDuplicatedCategory:!0});function Ya(e){"@babel/helpers - typeof";return Ya=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ya(e)}function DQ(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function RQ(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,wA(n.key),n)}}function BQ(e,t,r){return t&&RQ(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function FQ(e,t,r){return t=Hc(t),zQ(e,xA()?Reflect.construct(t,r||[],Hc(e).constructor):t.apply(e,r))}function zQ(e,t){if(t&&(Ya(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return WQ(e)}function WQ(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function xA(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(xA=function(){return!!e})()}function Hc(e){return Hc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Hc(e)}function UQ(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Em(e,t)}function Em(e,t){return Em=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Em(e,t)}function bA(e,t,r){return t=wA(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function wA(e){var t=KQ(e,"string");return Ya(t)=="symbol"?t:t+""}function KQ(e,t){if(Ya(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Ya(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function Tm(){return Tm=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Tm.apply(this,arguments)}var HQ=function(t){var r=t.yAxisId,n=Iy(),i=Ly(),a=qP(r);return a==null?null:A.createElement(yo,Tm({},a,{className:ee("recharts-".concat(a.axisType," ").concat(a.axisType),a.className),viewBox:{x:0,y:0,width:n,height:i},ticksGenerator:function(s){return Hr(s,!0)}}))},Be=function(e){function t(){return DQ(this,t),FQ(this,t,arguments)}return UQ(t,e),BQ(t,[{key:"render",value:function(){return A.createElement(HQ,this.props)}}])}(A.Component);bA(Be,"displayName","YAxis");bA(Be,"defaultProps",{allowDuplicatedCategory:!0,allowDecimals:!0,hide:!1,orientation:"left",width:60,height:0,mirror:!1,yAxisId:0,tickCount:5,type:"number",padding:{top:0,bottom:0},allowDataOverflow:!1,scale:"auto",reversed:!1});function tw(e){return XQ(e)||qQ(e)||GQ(e)||VQ()}function VQ(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function GQ(e,t){if(e){if(typeof e=="string")return Cm(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Cm(e,t)}}function qQ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function XQ(e){if(Array.isArray(e))return Cm(e)}function Cm(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var Mm=function(t,r,n,i,a){var o=wt(t,Ry),s=wt(t,ed),l=[].concat(tw(o),tw(s)),u=wt(t,rd),f="".concat(i,"Id"),d=i[0],p=r;if(l.length&&(p=l.reduce(function(g,x){if(x.props[f]===n&&Cr(x.props,"extendDomain")&&K(x.props[d])){var y=x.props[d];return[Math.min(g[0],y),Math.max(g[1],y)]}return g},p)),u.length){var h="".concat(d,"1"),m="".concat(d,"2");p=u.reduce(function(g,x){if(x.props[f]===n&&Cr(x.props,"extendDomain")&&K(x.props[h])&&K(x.props[m])){var y=x.props[h],v=x.props[m];return[Math.min(g[0],y,v),Math.max(g[1],y,v)]}return g},p)}return a&&a.length&&(p=a.reduce(function(g,x){return K(x)?[Math.min(g[0],x),Math.max(g[1],x)]:g},p)),p},jA={exports:{}};(function(e){var t=Object.prototype.hasOwnProperty,r="~";function n(){}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(r=!1));function i(l,u,f){this.fn=l,this.context=u,this.once=f||!1}function a(l,u,f,d,p){if(typeof f!="function")throw new TypeError("The listener must be a function");var h=new i(f,d||l,p),m=r?r+u:u;return l._events[m]?l._events[m].fn?l._events[m]=[l._events[m],h]:l._events[m].push(h):(l._events[m]=h,l._eventsCount++),l}function o(l,u){--l._eventsCount===0?l._events=new n:delete l._events[u]}function s(){this._events=new n,this._eventsCount=0}s.prototype.eventNames=function(){var u=[],f,d;if(this._eventsCount===0)return u;for(d in f=this._events)t.call(f,d)&&u.push(r?d.slice(1):d);return Object.getOwnPropertySymbols?u.concat(Object.getOwnPropertySymbols(f)):u},s.prototype.listeners=function(u){var f=r?r+u:u,d=this._events[f];if(!d)return[];if(d.fn)return[d.fn];for(var p=0,h=d.length,m=new Array(h);p<h;p++)m[p]=d[p].fn;return m},s.prototype.listenerCount=function(u){var f=r?r+u:u,d=this._events[f];return d?d.fn?1:d.length:0},s.prototype.emit=function(u,f,d,p,h,m){var g=r?r+u:u;if(!this._events[g])return!1;var x=this._events[g],y=arguments.length,v,b;if(x.fn){switch(x.once&&this.removeListener(u,x.fn,void 0,!0),y){case 1:return x.fn.call(x.context),!0;case 2:return x.fn.call(x.context,f),!0;case 3:return x.fn.call(x.context,f,d),!0;case 4:return x.fn.call(x.context,f,d,p),!0;case 5:return x.fn.call(x.context,f,d,p,h),!0;case 6:return x.fn.call(x.context,f,d,p,h,m),!0}for(b=1,v=new Array(y-1);b<y;b++)v[b-1]=arguments[b];x.fn.apply(x.context,v)}else{var S=x.length,w;for(b=0;b<S;b++)switch(x[b].once&&this.removeListener(u,x[b].fn,void 0,!0),y){case 1:x[b].fn.call(x[b].context);break;case 2:x[b].fn.call(x[b].context,f);break;case 3:x[b].fn.call(x[b].context,f,d);break;case 4:x[b].fn.call(x[b].context,f,d,p);break;default:if(!v)for(w=1,v=new Array(y-1);w<y;w++)v[w-1]=arguments[w];x[b].fn.apply(x[b].context,v)}}return!0},s.prototype.on=function(u,f,d){return a(this,u,f,d,!1)},s.prototype.once=function(u,f,d){return a(this,u,f,d,!0)},s.prototype.removeListener=function(u,f,d,p){var h=r?r+u:u;if(!this._events[h])return this;if(!f)return o(this,h),this;var m=this._events[h];if(m.fn)m.fn===f&&(!p||m.once)&&(!d||m.context===d)&&o(this,h);else{for(var g=0,x=[],y=m.length;g<y;g++)(m[g].fn!==f||p&&!m[g].once||d&&m[g].context!==d)&&x.push(m[g]);x.length?this._events[h]=x.length===1?x[0]:x:o(this,h)}return this},s.prototype.removeAllListeners=function(u){var f;return u?(f=r?r+u:u,this._events[f]&&o(this,f)):(this._events=new n,this._eventsCount=0),this},s.prototype.off=s.prototype.removeListener,s.prototype.addListener=s.prototype.on,s.prefixed=r,s.EventEmitter=s,e.exports=s})(jA);var YQ=jA.exports;const QQ=de(YQ);var ap=new QQ,op="recharts.syncMouseEvents";function nl(e){"@babel/helpers - typeof";return nl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nl(e)}function ZQ(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function JQ(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,SA(n.key),n)}}function eZ(e,t,r){return t&&JQ(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function sp(e,t,r){return t=SA(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function SA(e){var t=tZ(e,"string");return nl(t)=="symbol"?t:t+""}function tZ(e,t){if(nl(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(nl(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var rZ=function(){function e(){ZQ(this,e),sp(this,"activeIndex",0),sp(this,"coordinateList",[]),sp(this,"layout","horizontal")}return eZ(e,[{key:"setDetails",value:function(r){var n,i=r.coordinateList,a=i===void 0?null:i,o=r.container,s=o===void 0?null:o,l=r.layout,u=l===void 0?null:l,f=r.offset,d=f===void 0?null:f,p=r.mouseHandlerCallback,h=p===void 0?null:p;this.coordinateList=(n=a??this.coordinateList)!==null&&n!==void 0?n:[],this.container=s??this.container,this.layout=u??this.layout,this.offset=d??this.offset,this.mouseHandlerCallback=h??this.mouseHandlerCallback,this.activeIndex=Math.min(Math.max(this.activeIndex,0),this.coordinateList.length-1)}},{key:"focus",value:function(){this.spoofMouse()}},{key:"keyboardEvent",value:function(r){if(this.coordinateList.length!==0)switch(r.key){case"ArrowRight":{if(this.layout!=="horizontal")return;this.activeIndex=Math.min(this.activeIndex+1,this.coordinateList.length-1),this.spoofMouse();break}case"ArrowLeft":{if(this.layout!=="horizontal")return;this.activeIndex=Math.max(this.activeIndex-1,0),this.spoofMouse();break}}}},{key:"setIndex",value:function(r){this.activeIndex=r}},{key:"spoofMouse",value:function(){var r,n;if(this.layout==="horizontal"&&this.coordinateList.length!==0){var i=this.container.getBoundingClientRect(),a=i.x,o=i.y,s=i.height,l=this.coordinateList[this.activeIndex].coordinate,u=((r=window)===null||r===void 0?void 0:r.scrollX)||0,f=((n=window)===null||n===void 0?void 0:n.scrollY)||0,d=a+l+u,p=o+this.offset.top+s/2+f;this.mouseHandlerCallback({pageX:d,pageY:p})}}}])}();function nZ(e,t,r){if(r==="number"&&t===!0&&Array.isArray(e)){var n=e==null?void 0:e[0],i=e==null?void 0:e[1];if(n&&i&&K(n)&&K(i))return!0}return!1}function iZ(e,t,r,n){var i=n/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-i:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-i,width:e==="horizontal"?n:r.width-1,height:e==="horizontal"?r.height-1:n}}function OA(e){var t=e.cx,r=e.cy,n=e.radius,i=e.startAngle,a=e.endAngle,o=xe(t,r,n,i),s=xe(t,r,n,a);return{points:[o,s],cx:t,cy:r,radius:n,startAngle:i,endAngle:a}}function aZ(e,t,r){var n,i,a,o;if(e==="horizontal")n=t.x,a=n,i=r.top,o=r.top+r.height;else if(e==="vertical")i=t.y,o=i,n=r.left,a=r.left+r.width;else if(t.cx!=null&&t.cy!=null)if(e==="centric"){var s=t.cx,l=t.cy,u=t.innerRadius,f=t.outerRadius,d=t.angle,p=xe(s,l,u,d),h=xe(s,l,f,d);n=p.x,i=p.y,a=h.x,o=h.y}else return OA(t);return[{x:n,y:i},{x:a,y:o}]}function il(e){"@babel/helpers - typeof";return il=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},il(e)}function rw(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function eu(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?rw(Object(r),!0).forEach(function(n){oZ(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):rw(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function oZ(e,t,r){return t=sZ(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function sZ(e){var t=lZ(e,"string");return il(t)=="symbol"?t:t+""}function lZ(e,t){if(il(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(il(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function uZ(e){var t,r,n=e.element,i=e.tooltipEventType,a=e.isActive,o=e.activeCoordinate,s=e.activePayload,l=e.offset,u=e.activeTooltipIndex,f=e.tooltipAxisBandSize,d=e.layout,p=e.chartName,h=(t=n.props.cursor)!==null&&t!==void 0?t:(r=n.type.defaultProps)===null||r===void 0?void 0:r.cursor;if(!n||!h||!a||!o||p!=="ScatterChart"&&i!=="axis")return null;var m,g=Ln;if(p==="ScatterChart")m=o,g=ZH;else if(p==="BarChart")m=iZ(d,o,l,f),g=Ey;else if(d==="radial"){var x=OA(o),y=x.cx,v=x.cy,b=x.radius,S=x.startAngle,w=x.endAngle;m={cx:y,cy:v,startAngle:S,endAngle:w,innerRadius:b,outerRadius:b},g=pP}else m={points:aZ(d,o,l)},g=Ln;var j=eu(eu(eu(eu({stroke:"#ccc",pointerEvents:"none"},l),m),X(h,!1)),{},{payload:s,payloadIndex:u,className:ee("recharts-tooltip-cursor",h.className)});return A.isValidElement(h)?A.cloneElement(h,j):A.createElement(g,j)}var cZ=["item"],fZ=["children","className","width","height","style","compact","title","desc"];function Qa(e){"@babel/helpers - typeof";return Qa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Qa(e)}function sa(){return sa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},sa.apply(this,arguments)}function nw(e,t){return hZ(e)||pZ(e,t)||PA(e,t)||dZ()}function dZ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pZ(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,s=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,t!==0)for(;!(l=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(f){u=!0,i=f}finally{try{if(!l&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}function hZ(e){if(Array.isArray(e))return e}function iw(e,t){if(e==null)return{};var r=mZ(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function mZ(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function vZ(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function yZ(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,AA(n.key),n)}}function gZ(e,t,r){return t&&yZ(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function xZ(e,t,r){return t=Vc(t),bZ(e,_A()?Reflect.construct(t,r||[],Vc(e).constructor):t.apply(e,r))}function bZ(e,t){if(t&&(Qa(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return wZ(e)}function wZ(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _A(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(_A=function(){return!!e})()}function Vc(e){return Vc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Vc(e)}function jZ(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Im(e,t)}function Im(e,t){return Im=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},Im(e,t)}function Za(e){return _Z(e)||OZ(e)||PA(e)||SZ()}function SZ(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function PA(e,t){if(e){if(typeof e=="string")return Lm(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Lm(e,t)}}function OZ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function _Z(e){if(Array.isArray(e))return Lm(e)}function Lm(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function aw(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function R(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?aw(Object(r),!0).forEach(function(n){J(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):aw(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function J(e,t,r){return t=AA(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function AA(e){var t=PZ(e,"string");return Qa(t)=="symbol"?t:t+""}function PZ(e,t){if(Qa(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Qa(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var AZ={xAxis:["bottom","top"],yAxis:["left","right"]},kZ={width:"100%",height:"100%"},kA={x:0,y:0};function tu(e){return e}var NZ=function(t,r){return r==="horizontal"?t.x:r==="vertical"?t.y:r==="centric"?t.angle:t.radius},$Z=function(t,r,n,i){var a=r.find(function(f){return f&&f.index===n});if(a){if(t==="horizontal")return{x:a.coordinate,y:i.y};if(t==="vertical")return{x:i.x,y:a.coordinate};if(t==="centric"){var o=a.coordinate,s=i.radius;return R(R(R({},i),xe(i.cx,i.cy,s,o)),{},{angle:o,radius:s})}var l=a.coordinate,u=i.angle;return R(R(R({},i),xe(i.cx,i.cy,l,u)),{},{angle:u,radius:l})}return kA},nd=function(t,r){var n=r.graphicalItems,i=r.dataStartIndex,a=r.dataEndIndex,o=(n??[]).reduce(function(s,l){var u=l.props.data;return u&&u.length?[].concat(Za(s),Za(u)):s},[]);return o.length>0?o:t&&t.length&&K(i)&&K(a)?t.slice(i,a+1):[]};function NA(e){return e==="number"?[0,"auto"]:void 0}var Dm=function(t,r,n,i){var a=t.graphicalItems,o=t.tooltipAxis,s=nd(r,t);return n<0||!a||!a.length||n>=s.length?null:a.reduce(function(l,u){var f,d=(f=u.props.data)!==null&&f!==void 0?f:r;d&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=n&&(d=d.slice(t.dataStartIndex,t.dataEndIndex+1));var p;if(o.dataKey&&!o.allowDuplicatedCategory){var h=d===void 0?s:d;p=zu(h,o.dataKey,i)}else p=d&&d[n]||s[n];return p?[].concat(Za(l),[sP(u,p)]):l},[])},ow=function(t,r,n,i){var a=i||{x:t.chartX,y:t.chartY},o=NZ(a,n),s=t.orderedTooltipTicks,l=t.tooltipAxis,u=t.tooltipTicks,f=gW(o,s,u,l);if(f>=0&&u){var d=u[f]&&u[f].value,p=Dm(t,r,f,d),h=$Z(n,s,f,a);return{activeTooltipIndex:f,activeLabel:d,activePayload:p,activeCoordinate:h}}return null},EZ=function(t,r){var n=r.axes,i=r.graphicalItems,a=r.axisType,o=r.axisIdKey,s=r.stackGroups,l=r.dataStartIndex,u=r.dataEndIndex,f=t.layout,d=t.children,p=t.stackOffset,h=tP(f,a);return n.reduce(function(m,g){var x,y=g.type.defaultProps!==void 0?R(R({},g.type.defaultProps),g.props):g.props,v=y.type,b=y.dataKey,S=y.allowDataOverflow,w=y.allowDuplicatedCategory,j=y.scale,O=y.ticks,_=y.includeHidden,P=y[o];if(m[P])return m;var N=nd(t.data,{graphicalItems:i.filter(function(z){var Y,oe=o in z.props?z.props[o]:(Y=z.type.defaultProps)===null||Y===void 0?void 0:Y[o];return oe===P}),dataStartIndex:l,dataEndIndex:u}),T=N.length,$,I,D;nZ(y.domain,S,v)&&($=qh(y.domain,null,S),h&&(v==="number"||j!=="auto")&&(D=Zo(N,b,"category")));var L=NA(v);if(!$||$.length===0){var C,F=(C=y.domain)!==null&&C!==void 0?C:L;if(b){if($=Zo(N,b,v),v==="category"&&h){var M=sM($);w&&M?(I=$,$=$c(0,T)):w||($=Ab(F,$,g).reduce(function(z,Y){return z.indexOf(Y)>=0?z:[].concat(Za(z),[Y])},[]))}else if(v==="category")w?$=$.filter(function(z){return z!==""&&!Q(z)}):$=Ab(F,$,g).reduce(function(z,Y){return z.indexOf(Y)>=0||Y===""||Q(Y)?z:[].concat(Za(z),[Y])},[]);else if(v==="number"){var B=SW(N,i.filter(function(z){var Y,oe,Pe=o in z.props?z.props[o]:(Y=z.type.defaultProps)===null||Y===void 0?void 0:Y[o],Le="hide"in z.props?z.props.hide:(oe=z.type.defaultProps)===null||oe===void 0?void 0:oe.hide;return Pe===P&&(_||!Le)}),b,a,f);B&&($=B)}h&&(v==="number"||j!=="auto")&&(D=Zo(N,b,"category"))}else h?$=$c(0,T):s&&s[P]&&s[P].hasStack&&v==="number"?$=p==="expand"?[0,1]:oP(s[P].stackGroups,l,u):$=eP(N,i.filter(function(z){var Y=o in z.props?z.props[o]:z.type.defaultProps[o],oe="hide"in z.props?z.props.hide:z.type.defaultProps.hide;return Y===P&&(_||!oe)}),v,f,!0);if(v==="number")$=Mm(d,$,P,a,O),F&&($=qh(F,$,S));else if(v==="category"&&F){var E=F,W=$.every(function(z){return E.indexOf(z)>=0});W&&($=E)}}return R(R({},m),{},J({},P,R(R({},y),{},{axisType:a,domain:$,categoricalDomain:D,duplicateDomain:I,originalDomain:(x=y.domain)!==null&&x!==void 0?x:L,isCategorical:h,layout:f})))},{})},TZ=function(t,r){var n=r.graphicalItems,i=r.Axis,a=r.axisType,o=r.axisIdKey,s=r.stackGroups,l=r.dataStartIndex,u=r.dataEndIndex,f=t.layout,d=t.children,p=nd(t.data,{graphicalItems:n,dataStartIndex:l,dataEndIndex:u}),h=p.length,m=tP(f,a),g=-1;return n.reduce(function(x,y){var v=y.type.defaultProps!==void 0?R(R({},y.type.defaultProps),y.props):y.props,b=v[o],S=NA("number");if(!x[b]){g++;var w;return m?w=$c(0,h):s&&s[b]&&s[b].hasStack?(w=oP(s[b].stackGroups,l,u),w=Mm(d,w,b,a)):(w=qh(S,eP(p,n.filter(function(j){var O,_,P=o in j.props?j.props[o]:(O=j.type.defaultProps)===null||O===void 0?void 0:O[o],N="hide"in j.props?j.props.hide:(_=j.type.defaultProps)===null||_===void 0?void 0:_.hide;return P===b&&!N}),"number",f),i.defaultProps.allowDataOverflow),w=Mm(d,w,b,a)),R(R({},x),{},J({},b,R(R({axisType:a},i.defaultProps),{},{hide:!0,orientation:Wt(AZ,"".concat(a,".").concat(g%2),null),domain:w,originalDomain:S,isCategorical:m,layout:f})))}return x},{})},CZ=function(t,r){var n=r.axisType,i=n===void 0?"xAxis":n,a=r.AxisComp,o=r.graphicalItems,s=r.stackGroups,l=r.dataStartIndex,u=r.dataEndIndex,f=t.children,d="".concat(i,"Id"),p=wt(f,a),h={};return p&&p.length?h=EZ(t,{axes:p,graphicalItems:o,axisType:i,axisIdKey:d,stackGroups:s,dataStartIndex:l,dataEndIndex:u}):o&&o.length&&(h=TZ(t,{Axis:a,graphicalItems:o,axisType:i,axisIdKey:d,stackGroups:s,dataStartIndex:l,dataEndIndex:u})),h},MZ=function(t){var r=gn(t),n=Hr(r,!1,!0);return{tooltipTicks:n,orderedTooltipTicks:iy(n,function(i){return i.coordinate}),tooltipAxis:r,tooltipAxisBandSize:vc(r,n)}},sw=function(t){var r=t.children,n=t.defaultShowTooltip,i=Rt(r,Ba),a=0,o=0;return t.data&&t.data.length!==0&&(o=t.data.length-1),i&&i.props&&(i.props.startIndex>=0&&(a=i.props.startIndex),i.props.endIndex>=0&&(o=i.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:a,dataEndIndex:o,activeTooltipIndex:-1,isTooltipActive:!!n}},IZ=function(t){return!t||!t.length?!1:t.some(function(r){var n=Gr(r&&r.type);return n&&n.indexOf("Bar")>=0})},lw=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},LZ=function(t,r){var n=t.props,i=t.graphicalItems,a=t.xAxisMap,o=a===void 0?{}:a,s=t.yAxisMap,l=s===void 0?{}:s,u=n.width,f=n.height,d=n.children,p=n.margin||{},h=Rt(d,Ba),m=Rt(d,qr),g=Object.keys(l).reduce(function(w,j){var O=l[j],_=O.orientation;return!O.mirror&&!O.hide?R(R({},w),{},J({},_,w[_]+O.width)):w},{left:p.left||0,right:p.right||0}),x=Object.keys(o).reduce(function(w,j){var O=o[j],_=O.orientation;return!O.mirror&&!O.hide?R(R({},w),{},J({},_,Wt(w,"".concat(_))+O.height)):w},{top:p.top||0,bottom:p.bottom||0}),y=R(R({},x),g),v=y.bottom;h&&(y.bottom+=h.props.height||Ba.defaultProps.height),m&&r&&(y=wW(y,i,n,r));var b=u-y.left-y.right,S=f-y.top-y.bottom;return R(R({brushBottom:v},y),{},{width:Math.max(b,0),height:Math.max(S,0)})},DZ=function(t,r){if(r==="xAxis")return t[r].width;if(r==="yAxis")return t[r].height},wl=function(t){var r=t.chartName,n=t.GraphicalChild,i=t.defaultTooltipEventType,a=i===void 0?"axis":i,o=t.validateTooltipEventTypes,s=o===void 0?["axis"]:o,l=t.axisComponents,u=t.legendContent,f=t.formatAxisMap,d=t.defaultProps,p=function(y,v){var b=v.graphicalItems,S=v.stackGroups,w=v.offset,j=v.updateId,O=v.dataStartIndex,_=v.dataEndIndex,P=y.barSize,N=y.layout,T=y.barGap,$=y.barCategoryGap,I=y.maxBarSize,D=lw(N),L=D.numericAxisName,C=D.cateAxisName,F=IZ(b),M=[];return b.forEach(function(B,E){var W=nd(y.data,{graphicalItems:[B],dataStartIndex:O,dataEndIndex:_}),z=B.type.defaultProps!==void 0?R(R({},B.type.defaultProps),B.props):B.props,Y=z.dataKey,oe=z.maxBarSize,Pe=z["".concat(L,"Id")],Le=z["".concat(C,"Id")],Vt={},Ot=l.reduce(function(Qn,Zn){var id=v["".concat(Zn.axisType,"Map")],zy=z["".concat(Zn.axisType,"Id")];id&&id[zy]||Zn.axisType==="zAxis"||Ni();var Wy=id[zy];return R(R({},Qn),{},J(J({},Zn.axisType,Wy),"".concat(Zn.axisType,"Ticks"),Hr(Wy)))},Vt),V=Ot[C],re=Ot["".concat(C,"Ticks")],ne=S&&S[Pe]&&S[Pe].hasStack&&TW(B,S[Pe].stackGroups),U=Gr(B.type).indexOf("Bar")>=0,Ce=vc(V,re),se=[],Ke=F&&xW({barSize:P,stackGroups:S,totalSize:DZ(Ot,C)});if(U){var He,_t,cn=Q(oe)?I:oe,Ri=(He=(_t=vc(V,re,!0))!==null&&_t!==void 0?_t:cn)!==null&&He!==void 0?He:0;se=bW({barGap:T,barCategoryGap:$,bandSize:Ri!==Ce?Ri:Ce,sizeList:Ke[Le],maxBarSize:cn}),Ri!==Ce&&(se=se.map(function(Qn){return R(R({},Qn),{},{position:R(R({},Qn.position),{},{offset:Qn.position.offset-Ri/2})})}))}var jl=B&&B.type&&B.type.getComposedData;jl&&M.push({props:R(R({},jl(R(R({},Ot),{},{displayedData:W,props:y,dataKey:Y,item:B,bandSize:Ce,barPosition:se,offset:w,stackedData:ne,layout:N,dataStartIndex:O,dataEndIndex:_}))),{},J(J(J({key:B.key||"item-".concat(E)},L,Ot[L]),C,Ot[C]),"animationId",j)),childIndex:bM(B,y.children),item:B})}),M},h=function(y,v){var b=y.props,S=y.dataStartIndex,w=y.dataEndIndex,j=y.updateId;if(!w0({props:b}))return null;var O=b.children,_=b.layout,P=b.stackOffset,N=b.data,T=b.reverseStackOrder,$=lw(_),I=$.numericAxisName,D=$.cateAxisName,L=wt(O,n),C=$W(N,L,"".concat(I,"Id"),"".concat(D,"Id"),P,T),F=l.reduce(function(z,Y){var oe="".concat(Y.axisType,"Map");return R(R({},z),{},J({},oe,CZ(b,R(R({},Y),{},{graphicalItems:L,stackGroups:Y.axisType===I&&C,dataStartIndex:S,dataEndIndex:w}))))},{}),M=LZ(R(R({},F),{},{props:b,graphicalItems:L}),v==null?void 0:v.legendBBox);Object.keys(F).forEach(function(z){F[z]=f(b,F[z],M,z.replace("Map",""),r)});var B=F["".concat(D,"Map")],E=MZ(B),W=p(b,R(R({},F),{},{dataStartIndex:S,dataEndIndex:w,updateId:j,graphicalItems:L,stackGroups:C,offset:M}));return R(R({formattedGraphicalItems:W,graphicalItems:L,offset:M,stackGroups:C},E),F)},m=function(x){function y(v){var b,S,w;return vZ(this,y),w=xZ(this,y,[v]),J(w,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),J(w,"accessibilityManager",new rZ),J(w,"handleLegendBBoxUpdate",function(j){if(j){var O=w.state,_=O.dataStartIndex,P=O.dataEndIndex,N=O.updateId;w.setState(R({legendBBox:j},h({props:w.props,dataStartIndex:_,dataEndIndex:P,updateId:N},R(R({},w.state),{},{legendBBox:j}))))}}),J(w,"handleReceiveSyncEvent",function(j,O,_){if(w.props.syncId===j){if(_===w.eventEmitterSymbol&&typeof w.props.syncMethod!="function")return;w.applySyncEvent(O)}}),J(w,"handleBrushChange",function(j){var O=j.startIndex,_=j.endIndex;if(O!==w.state.dataStartIndex||_!==w.state.dataEndIndex){var P=w.state.updateId;w.setState(function(){return R({dataStartIndex:O,dataEndIndex:_},h({props:w.props,dataStartIndex:O,dataEndIndex:_,updateId:P},w.state))}),w.triggerSyncEvent({dataStartIndex:O,dataEndIndex:_})}}),J(w,"handleMouseEnter",function(j){var O=w.getMouseInfo(j);if(O){var _=R(R({},O),{},{isTooltipActive:!0});w.setState(_),w.triggerSyncEvent(_);var P=w.props.onMouseEnter;Z(P)&&P(_,j)}}),J(w,"triggeredAfterMouseMove",function(j){var O=w.getMouseInfo(j),_=O?R(R({},O),{},{isTooltipActive:!0}):{isTooltipActive:!1};w.setState(_),w.triggerSyncEvent(_);var P=w.props.onMouseMove;Z(P)&&P(_,j)}),J(w,"handleItemMouseEnter",function(j){w.setState(function(){return{isTooltipActive:!0,activeItem:j,activePayload:j.tooltipPayload,activeCoordinate:j.tooltipPosition||{x:j.cx,y:j.cy}}})}),J(w,"handleItemMouseLeave",function(){w.setState(function(){return{isTooltipActive:!1}})}),J(w,"handleMouseMove",function(j){j.persist(),w.throttleTriggeredAfterMouseMove(j)}),J(w,"handleMouseLeave",function(j){w.throttleTriggeredAfterMouseMove.cancel();var O={isTooltipActive:!1};w.setState(O),w.triggerSyncEvent(O);var _=w.props.onMouseLeave;Z(_)&&_(O,j)}),J(w,"handleOuterEvent",function(j){var O=xM(j),_=Wt(w.props,"".concat(O));if(O&&Z(_)){var P,N;/.*touch.*/i.test(O)?N=w.getMouseInfo(j.changedTouches[0]):N=w.getMouseInfo(j),_((P=N)!==null&&P!==void 0?P:{},j)}}),J(w,"handleClick",function(j){var O=w.getMouseInfo(j);if(O){var _=R(R({},O),{},{isTooltipActive:!0});w.setState(_),w.triggerSyncEvent(_);var P=w.props.onClick;Z(P)&&P(_,j)}}),J(w,"handleMouseDown",function(j){var O=w.props.onMouseDown;if(Z(O)){var _=w.getMouseInfo(j);O(_,j)}}),J(w,"handleMouseUp",function(j){var O=w.props.onMouseUp;if(Z(O)){var _=w.getMouseInfo(j);O(_,j)}}),J(w,"handleTouchMove",function(j){j.changedTouches!=null&&j.changedTouches.length>0&&w.throttleTriggeredAfterMouseMove(j.changedTouches[0])}),J(w,"handleTouchStart",function(j){j.changedTouches!=null&&j.changedTouches.length>0&&w.handleMouseDown(j.changedTouches[0])}),J(w,"handleTouchEnd",function(j){j.changedTouches!=null&&j.changedTouches.length>0&&w.handleMouseUp(j.changedTouches[0])}),J(w,"handleDoubleClick",function(j){var O=w.props.onDoubleClick;if(Z(O)){var _=w.getMouseInfo(j);O(_,j)}}),J(w,"handleContextMenu",function(j){var O=w.props.onContextMenu;if(Z(O)){var _=w.getMouseInfo(j);O(_,j)}}),J(w,"triggerSyncEvent",function(j){w.props.syncId!==void 0&&ap.emit(op,w.props.syncId,j,w.eventEmitterSymbol)}),J(w,"applySyncEvent",function(j){var O=w.props,_=O.layout,P=O.syncMethod,N=w.state.updateId,T=j.dataStartIndex,$=j.dataEndIndex;if(j.dataStartIndex!==void 0||j.dataEndIndex!==void 0)w.setState(R({dataStartIndex:T,dataEndIndex:$},h({props:w.props,dataStartIndex:T,dataEndIndex:$,updateId:N},w.state)));else if(j.activeTooltipIndex!==void 0){var I=j.chartX,D=j.chartY,L=j.activeTooltipIndex,C=w.state,F=C.offset,M=C.tooltipTicks;if(!F)return;if(typeof P=="function")L=P(M,j);else if(P==="value"){L=-1;for(var B=0;B<M.length;B++)if(M[B].value===j.activeLabel){L=B;break}}var E=R(R({},F),{},{x:F.left,y:F.top}),W=Math.min(I,E.x+E.width),z=Math.min(D,E.y+E.height),Y=M[L]&&M[L].value,oe=Dm(w.state,w.props.data,L),Pe=M[L]?{x:_==="horizontal"?M[L].coordinate:W,y:_==="horizontal"?z:M[L].coordinate}:kA;w.setState(R(R({},j),{},{activeLabel:Y,activeCoordinate:Pe,activePayload:oe,activeTooltipIndex:L}))}else w.setState(j)}),J(w,"renderCursor",function(j){var O,_=w.state,P=_.isTooltipActive,N=_.activeCoordinate,T=_.activePayload,$=_.offset,I=_.activeTooltipIndex,D=_.tooltipAxisBandSize,L=w.getTooltipEventType(),C=(O=j.props.active)!==null&&O!==void 0?O:P,F=w.props.layout,M=j.key||"_recharts-cursor";return k.createElement(uZ,{key:M,activeCoordinate:N,activePayload:T,activeTooltipIndex:I,chartName:r,element:j,isActive:C,layout:F,offset:$,tooltipAxisBandSize:D,tooltipEventType:L})}),J(w,"renderPolarAxis",function(j,O,_){var P=Wt(j,"type.axisType"),N=Wt(w.state,"".concat(P,"Map")),T=j.type.defaultProps,$=T!==void 0?R(R({},T),j.props):j.props,I=N&&N[$["".concat(P,"Id")]];return A.cloneElement(j,R(R({},I),{},{className:ee(P,I.className),key:j.key||"".concat(O,"-").concat(_),ticks:Hr(I,!0)}))}),J(w,"renderPolarGrid",function(j){var O=j.props,_=O.radialLines,P=O.polarAngles,N=O.polarRadius,T=w.state,$=T.radiusAxisMap,I=T.angleAxisMap,D=gn($),L=gn(I),C=L.cx,F=L.cy,M=L.innerRadius,B=L.outerRadius;return A.cloneElement(j,{polarAngles:Array.isArray(P)?P:Hr(L,!0).map(function(E){return E.coordinate}),polarRadius:Array.isArray(N)?N:Hr(D,!0).map(function(E){return E.coordinate}),cx:C,cy:F,innerRadius:M,outerRadius:B,key:j.key||"polar-grid",radialLines:_})}),J(w,"renderLegend",function(){var j=w.state.formattedGraphicalItems,O=w.props,_=O.children,P=O.width,N=O.height,T=w.props.margin||{},$=P-(T.left||0)-(T.right||0),I=Z_({children:_,formattedGraphicalItems:j,legendWidth:$,legendContent:u});if(!I)return null;var D=I.item,L=iw(I,cZ);return A.cloneElement(D,R(R({},L),{},{chartWidth:P,chartHeight:N,margin:T,onBBoxUpdate:w.handleLegendBBoxUpdate}))}),J(w,"renderTooltip",function(){var j,O=w.props,_=O.children,P=O.accessibilityLayer,N=Rt(_,Se);if(!N)return null;var T=w.state,$=T.isTooltipActive,I=T.activeCoordinate,D=T.activePayload,L=T.activeLabel,C=T.offset,F=(j=N.props.active)!==null&&j!==void 0?j:$;return A.cloneElement(N,{viewBox:R(R({},C),{},{x:C.left,y:C.top}),active:F,label:L,payload:F?D:[],coordinate:I,accessibilityLayer:P})}),J(w,"renderBrush",function(j){var O=w.props,_=O.margin,P=O.data,N=w.state,T=N.offset,$=N.dataStartIndex,I=N.dataEndIndex,D=N.updateId;return A.cloneElement(j,{key:j.key||"_recharts-brush",onChange:Yl(w.handleBrushChange,j.props.onChange),data:P,x:K(j.props.x)?j.props.x:T.left,y:K(j.props.y)?j.props.y:T.top+T.height+T.brushBottom-(_.bottom||0),width:K(j.props.width)?j.props.width:T.width,startIndex:$,endIndex:I,updateId:"brush-".concat(D)})}),J(w,"renderReferenceElement",function(j,O,_){if(!j)return null;var P=w,N=P.clipPathId,T=w.state,$=T.xAxisMap,I=T.yAxisMap,D=T.offset,L=j.type.defaultProps||{},C=j.props,F=C.xAxisId,M=F===void 0?L.xAxisId:F,B=C.yAxisId,E=B===void 0?L.yAxisId:B;return A.cloneElement(j,{key:j.key||"".concat(O,"-").concat(_),xAxis:$[M],yAxis:I[E],viewBox:{x:D.left,y:D.top,width:D.width,height:D.height},clipPathId:N})}),J(w,"renderActivePoints",function(j){var O=j.item,_=j.activePoint,P=j.basePoint,N=j.childIndex,T=j.isRange,$=[],I=O.props.key,D=O.item.type.defaultProps!==void 0?R(R({},O.item.type.defaultProps),O.item.props):O.item.props,L=D.activeDot,C=D.dataKey,F=R(R({index:N,dataKey:C,cx:_.x,cy:_.y,r:4,fill:$y(O.item),strokeWidth:2,stroke:"#fff",payload:_.payload,value:_.value},X(L,!1)),Wu(L));return $.push(y.renderActiveDot(L,F,"".concat(I,"-activePoint-").concat(N))),P?$.push(y.renderActiveDot(L,R(R({},F),{},{cx:P.x,cy:P.y}),"".concat(I,"-basePoint-").concat(N))):T&&$.push(null),$}),J(w,"renderGraphicChild",function(j,O,_){var P=w.filterFormatItem(j,O,_);if(!P)return null;var N=w.getTooltipEventType(),T=w.state,$=T.isTooltipActive,I=T.tooltipAxis,D=T.activeTooltipIndex,L=T.activeLabel,C=w.props.children,F=Rt(C,Se),M=P.props,B=M.points,E=M.isRange,W=M.baseLine,z=P.item.type.defaultProps!==void 0?R(R({},P.item.type.defaultProps),P.item.props):P.item.props,Y=z.activeDot,oe=z.hide,Pe=z.activeBar,Le=z.activeShape,Vt=!!(!oe&&$&&F&&(Y||Pe||Le)),Ot={};N!=="axis"&&F&&F.props.trigger==="click"?Ot={onClick:Yl(w.handleItemMouseEnter,j.props.onClick)}:N!=="axis"&&(Ot={onMouseLeave:Yl(w.handleItemMouseLeave,j.props.onMouseLeave),onMouseEnter:Yl(w.handleItemMouseEnter,j.props.onMouseEnter)});var V=A.cloneElement(j,R(R({},P.props),Ot));function re(Zn){return typeof I.dataKey=="function"?I.dataKey(Zn.payload):null}if(Vt)if(D>=0){var ne,U;if(I.dataKey&&!I.allowDuplicatedCategory){var Ce=typeof I.dataKey=="function"?re:"payload.".concat(I.dataKey.toString());ne=zu(B,Ce,L),U=E&&W&&zu(W,Ce,L)}else ne=B==null?void 0:B[D],U=E&&W&&W[D];if(Le||Pe){var se=j.props.activeIndex!==void 0?j.props.activeIndex:D;return[A.cloneElement(j,R(R(R({},P.props),Ot),{},{activeIndex:se})),null,null]}if(!Q(ne))return[V].concat(Za(w.renderActivePoints({item:P,activePoint:ne,basePoint:U,childIndex:D,isRange:E})))}else{var Ke,He=(Ke=w.getItemByXY(w.state.activeCoordinate))!==null&&Ke!==void 0?Ke:{graphicalItem:V},_t=He.graphicalItem,cn=_t.item,Ri=cn===void 0?j:cn,jl=_t.childIndex,Qn=R(R(R({},P.props),Ot),{},{activeIndex:jl});return[A.cloneElement(Ri,Qn),null,null]}return E?[V,null,null]:[V,null]}),J(w,"renderCustomized",function(j,O,_){return A.cloneElement(j,R(R({key:"recharts-customized-".concat(_)},w.props),w.state))}),J(w,"renderMap",{CartesianGrid:{handler:tu,once:!0},ReferenceArea:{handler:w.renderReferenceElement},ReferenceLine:{handler:tu},ReferenceDot:{handler:w.renderReferenceElement},XAxis:{handler:tu},YAxis:{handler:tu},Brush:{handler:w.renderBrush,once:!0},Bar:{handler:w.renderGraphicChild},Line:{handler:w.renderGraphicChild},Area:{handler:w.renderGraphicChild},Radar:{handler:w.renderGraphicChild},RadialBar:{handler:w.renderGraphicChild},Scatter:{handler:w.renderGraphicChild},Pie:{handler:w.renderGraphicChild},Funnel:{handler:w.renderGraphicChild},Tooltip:{handler:w.renderCursor,once:!0},PolarGrid:{handler:w.renderPolarGrid,once:!0},PolarAngleAxis:{handler:w.renderPolarAxis},PolarRadiusAxis:{handler:w.renderPolarAxis},Customized:{handler:w.renderCustomized}}),w.clipPathId="".concat((b=v.id)!==null&&b!==void 0?b:Gn("recharts"),"-clip"),w.throttleTriggeredAfterMouseMove=ZO(w.triggeredAfterMouseMove,(S=v.throttleDelay)!==null&&S!==void 0?S:1e3/60),w.state={},w}return jZ(y,x),gZ(y,[{key:"componentDidMount",value:function(){var b,S;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(b=this.props.margin.left)!==null&&b!==void 0?b:0,top:(S=this.props.margin.top)!==null&&S!==void 0?S:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var b=this.props,S=b.children,w=b.data,j=b.height,O=b.layout,_=Rt(S,Se);if(_){var P=_.props.defaultIndex;if(!(typeof P!="number"||P<0||P>this.state.tooltipTicks.length-1)){var N=this.state.tooltipTicks[P]&&this.state.tooltipTicks[P].value,T=Dm(this.state,w,P,N),$=this.state.tooltipTicks[P].coordinate,I=(this.state.offset.top+j)/2,D=O==="horizontal",L=D?{x:$,y:I}:{y:$,x:I},C=this.state.formattedGraphicalItems.find(function(M){var B=M.item;return B.type.name==="Scatter"});C&&(L=R(R({},L),C.props.points[P].tooltipPosition),T=C.props.points[P].tooltipPayload);var F={activeTooltipIndex:P,isTooltipActive:!0,activeLabel:N,activePayload:T,activeCoordinate:L};this.setState(F),this.renderCursor(_),this.accessibilityManager.setIndex(P)}}}},{key:"getSnapshotBeforeUpdate",value:function(b,S){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==S.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==b.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==b.margin){var w,j;this.accessibilityManager.setDetails({offset:{left:(w=this.props.margin.left)!==null&&w!==void 0?w:0,top:(j=this.props.margin.top)!==null&&j!==void 0?j:0}})}return null}},{key:"componentDidUpdate",value:function(b){uh([Rt(b.children,Se)],[Rt(this.props.children,Se)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var b=Rt(this.props.children,Se);if(b&&typeof b.props.shared=="boolean"){var S=b.props.shared?"axis":"item";return s.indexOf(S)>=0?S:a}return a}},{key:"getMouseInfo",value:function(b){if(!this.container)return null;var S=this.container,w=S.getBoundingClientRect(),j=V6(w),O={chartX:Math.round(b.pageX-j.left),chartY:Math.round(b.pageY-j.top)},_=w.width/S.offsetWidth||1,P=this.inRange(O.chartX,O.chartY,_);if(!P)return null;var N=this.state,T=N.xAxisMap,$=N.yAxisMap,I=this.getTooltipEventType(),D=ow(this.state,this.props.data,this.props.layout,P);if(I!=="axis"&&T&&$){var L=gn(T).scale,C=gn($).scale,F=L&&L.invert?L.invert(O.chartX):null,M=C&&C.invert?C.invert(O.chartY):null;return R(R({},O),{},{xValue:F,yValue:M},D)}return D?R(R({},O),D):null}},{key:"inRange",value:function(b,S){var w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,j=this.props.layout,O=b/w,_=S/w;if(j==="horizontal"||j==="vertical"){var P=this.state.offset,N=O>=P.left&&O<=P.left+P.width&&_>=P.top&&_<=P.top+P.height;return N?{x:O,y:_}:null}var T=this.state,$=T.angleAxisMap,I=T.radiusAxisMap;if($&&I){var D=gn($);return $b({x:O,y:_},D)}return null}},{key:"parseEventsOfWrapper",value:function(){var b=this.props.children,S=this.getTooltipEventType(),w=Rt(b,Se),j={};w&&S==="axis"&&(w.props.trigger==="click"?j={onClick:this.handleClick}:j={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var O=Wu(this.props,this.handleOuterEvent);return R(R({},O),j)}},{key:"addListener",value:function(){ap.on(op,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){ap.removeListener(op,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(b,S,w){for(var j=this.state.formattedGraphicalItems,O=0,_=j.length;O<_;O++){var P=j[O];if(P.item===b||P.props.key===b.key||S===Gr(P.item.type)&&w===P.childIndex)return P}return null}},{key:"renderClipPath",value:function(){var b=this.clipPathId,S=this.state.offset,w=S.left,j=S.top,O=S.height,_=S.width;return k.createElement("defs",null,k.createElement("clipPath",{id:b},k.createElement("rect",{x:w,y:j,height:O,width:_})))}},{key:"getXScales",value:function(){var b=this.state.xAxisMap;return b?Object.entries(b).reduce(function(S,w){var j=nw(w,2),O=j[0],_=j[1];return R(R({},S),{},J({},O,_.scale))},{}):null}},{key:"getYScales",value:function(){var b=this.state.yAxisMap;return b?Object.entries(b).reduce(function(S,w){var j=nw(w,2),O=j[0],_=j[1];return R(R({},S),{},J({},O,_.scale))},{}):null}},{key:"getXScaleByAxisId",value:function(b){var S;return(S=this.state.xAxisMap)===null||S===void 0||(S=S[b])===null||S===void 0?void 0:S.scale}},{key:"getYScaleByAxisId",value:function(b){var S;return(S=this.state.yAxisMap)===null||S===void 0||(S=S[b])===null||S===void 0?void 0:S.scale}},{key:"getItemByXY",value:function(b){var S=this.state,w=S.formattedGraphicalItems,j=S.activeItem;if(w&&w.length)for(var O=0,_=w.length;O<_;O++){var P=w[O],N=P.props,T=P.item,$=T.type.defaultProps!==void 0?R(R({},T.type.defaultProps),T.props):T.props,I=Gr(T.type);if(I==="Bar"){var D=(N.data||[]).find(function(M){return TH(b,M)});if(D)return{graphicalItem:P,payload:D}}else if(I==="RadialBar"){var L=(N.data||[]).find(function(M){return $b(b,M)});if(L)return{graphicalItem:P,payload:L}}else if(Xf(P,j)||Yf(P,j)||Zs(P,j)){var C=bG({graphicalItem:P,activeTooltipItem:j,itemData:$.data}),F=$.activeIndex===void 0?C:$.activeIndex;return{graphicalItem:R(R({},P),{},{childIndex:F}),payload:Zs(P,j)?$.data[C]:P.props.data[C]}}}return null}},{key:"render",value:function(){var b=this;if(!w0(this))return null;var S=this.props,w=S.children,j=S.className,O=S.width,_=S.height,P=S.style,N=S.compact,T=S.title,$=S.desc,I=iw(S,fZ),D=X(I,!1);if(N)return k.createElement(I1,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},k.createElement(fh,sa({},D,{width:O,height:_,title:T,desc:$}),this.renderClipPath(),S0(w,this.renderMap)));if(this.props.accessibilityLayer){var L,C;D.tabIndex=(L=this.props.tabIndex)!==null&&L!==void 0?L:0,D.role=(C=this.props.role)!==null&&C!==void 0?C:"application",D.onKeyDown=function(M){b.accessibilityManager.keyboardEvent(M)},D.onFocus=function(){b.accessibilityManager.focus()}}var F=this.parseEventsOfWrapper();return k.createElement(I1,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},k.createElement("div",sa({className:ee("recharts-wrapper",j),style:R({position:"relative",cursor:"default",width:O,height:_},P)},F,{ref:function(B){b.container=B}}),k.createElement(fh,sa({},D,{width:O,height:_,title:T,desc:$,style:kZ}),this.renderClipPath(),S0(w,this.renderMap)),this.renderLegend(),this.renderTooltip()))}}])}(A.Component);J(m,"displayName",r),J(m,"defaultProps",R({layout:"horizontal",stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:"index"},d)),J(m,"getDerivedStateFromProps",function(x,y){var v=x.dataKey,b=x.data,S=x.children,w=x.width,j=x.height,O=x.layout,_=x.stackOffset,P=x.margin,N=y.dataStartIndex,T=y.dataEndIndex;if(y.updateId===void 0){var $=sw(x);return R(R(R({},$),{},{updateId:0},h(R(R({props:x},$),{},{updateId:0}),y)),{},{prevDataKey:v,prevData:b,prevWidth:w,prevHeight:j,prevLayout:O,prevStackOffset:_,prevMargin:P,prevChildren:S})}if(v!==y.prevDataKey||b!==y.prevData||w!==y.prevWidth||j!==y.prevHeight||O!==y.prevLayout||_!==y.prevStackOffset||!ha(P,y.prevMargin)){var I=sw(x),D={chartX:y.chartX,chartY:y.chartY,isTooltipActive:y.isTooltipActive},L=R(R({},ow(y,b,O)),{},{updateId:y.updateId+1}),C=R(R(R({},I),D),L);return R(R(R({},C),h(R({props:x},C),y)),{},{prevDataKey:v,prevData:b,prevWidth:w,prevHeight:j,prevLayout:O,prevStackOffset:_,prevMargin:P,prevChildren:S})}if(!uh(S,y.prevChildren)){var F,M,B,E,W=Rt(S,Ba),z=W&&(F=(M=W.props)===null||M===void 0?void 0:M.startIndex)!==null&&F!==void 0?F:N,Y=W&&(B=(E=W.props)===null||E===void 0?void 0:E.endIndex)!==null&&B!==void 0?B:T,oe=z!==N||Y!==T,Pe=!Q(b),Le=Pe&&!oe?y.updateId:y.updateId+1;return R(R({updateId:Le},h(R(R({props:x},y),{},{updateId:Le,dataStartIndex:z,dataEndIndex:Y}),y)),{},{prevChildren:S,dataStartIndex:z,dataEndIndex:Y})}return null}),J(m,"renderActiveDot",function(x,y,v){var b;return A.isValidElement(x)?b=A.cloneElement(x,y):Z(x)?b=x(y):b=k.createElement(xl,y),k.createElement(te,{className:"recharts-active-dot",key:v},b)});var g=A.forwardRef(function(y,v){return k.createElement(m,sa({},y,{ref:v}))});return g.displayName=m.displayName,g},uw=wl({chartName:"LineChart",GraphicalChild:On,axisComponents:[{axisType:"xAxis",AxisComp:Re},{axisType:"yAxis",AxisComp:Be}],formatAxisMap:Zf}),zn=wl({chartName:"BarChart",GraphicalChild:Tt,defaultTooltipEventType:"axis",validateTooltipEventTypes:["axis","item"],axisComponents:[{axisType:"xAxis",AxisComp:Re},{axisType:"yAxis",AxisComp:Be}],formatAxisMap:Zf}),RZ=wl({chartName:"PieChart",GraphicalChild:un,validateTooltipEventTypes:["item"],defaultTooltipEventType:"item",legendContent:"children",axisComponents:[{axisType:"angleAxis",AxisComp:qf},{axisType:"radiusAxis",AxisComp:Vf}],formatAxisMap:WW,defaultProps:{layout:"centric",startAngle:0,endAngle:360,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"}}),BZ=wl({chartName:"ScatterChart",GraphicalChild:bi,defaultTooltipEventType:"item",validateTooltipEventTypes:["item"],axisComponents:[{axisType:"xAxis",AxisComp:Re},{axisType:"yAxis",AxisComp:Be},{axisType:"zAxis",AxisComp:bl}],formatAxisMap:Zf}),Gc=wl({chartName:"AreaChart",GraphicalChild:Sr,axisComponents:[{axisType:"xAxis",AxisComp:Re},{axisType:"yAxis",AxisComp:Be}],formatAxisMap:Zf});function ru({label:e,value:t,color:r,sub:n,onClick:i}){return c.jsxs("div",{className:`card ${i?"cursor-pointer hover:border-blue-500/30":""}`,onClick:i,children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase tracking-wide mb-1",children:e}),c.jsx("p",{className:`stat-v ${r||"text-white"}`,children:t}),n&&c.jsx("p",{className:"text-xs text-gray-500 mt-1",children:n})]})}function Ki({icon:e,title:t,desc:r,onClick:n,busy:i,color:a,badge:o}){return c.jsx("button",{onClick:n,disabled:i,className:`card text-left hover:border-${a||"blue"}-500/40 hover:bg-${a||"blue"}-500/5 transition-all group cursor-pointer disabled:opacity-50`,children:c.jsxs("div",{className:"flex items-start gap-3",children:[c.jsx("div",{className:`w-10 h-10 rounded-lg flex items-center justify-center flex-shrink-0 bg-${a||"blue"}-500/15`,children:c.jsx("svg",{className:`w-5 h-5 text-${a||"blue"}-400`,fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:e})})}),c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("p",{className:"font-semibold text-sm group-hover:text-white transition",children:t}),o&&c.jsx("span",{className:`badge bg-${o.color||"blue"}`,children:o.text})]}),c.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:r})]}),i?c.jsx("div",{className:"animate-spin w-4 h-4 border-2 border-blue-500 border-t-transparent rounded-full flex-shrink-0 mt-1"}):c.jsx("svg",{className:"w-4 h-4 text-gray-600 group-hover:text-gray-400 transition flex-shrink-0 mt-1",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M9 5l7 7-7 7"})})]})})}const lp=({active:e,payload:t,label:r,prefix:n="$"})=>!e||!(t!=null&&t.length)?null:c.jsxs("div",{className:"bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 text-xs shadow-xl",children:[c.jsx("p",{className:"text-gray-400 mb-1",children:r}),t.map((i,a)=>c.jsxs("p",{style:{color:i.color},className:"font-mono",children:[i.name,": ",n,typeof i.value=="number"?i.value.toFixed(2):i.value]},a))]});function FZ(){var C,F,M,B;const[e,t]=A.useState(null),[r,n]=A.useState(null),[i,a]=A.useState(null),[o,s]=A.useState(!0),[l,u]=A.useState({}),[f,d]=A.useState([]),p=dl(),h=()=>Promise.all([tt("/dashboard"),tt("/risk"),tt("/bankroll")]).then(([E,W,z])=>{t(E),n(W==null?void 0:W.state),a(z),s(!1)}).catch(()=>s(!1));A.useEffect(()=>{h();const E=setInterval(h,12e3);return()=>clearInterval(E)},[]);function m(E,W="info"){d(z=>[{msg:E,type:W,ts:Date.now()},...z].slice(0,5))}async function g(E,W){u(z=>({...z,[E]:!0}));try{await W(),h()}catch(z){m(`Error: ${z.message}`,"error")}u(z=>({...z,[E]:!1}))}async function x(){await g("ingest",async()=>{const E=await ie("/markets",{action:"ingest"});m(E.error?`Ingest failed: ${E.error}`:`Ingested ${E.ingested||0} markets from ${E.total_scanned||0} scanned`,E.error?"error":"success")})}async function y(){await g("weather",async()=>{const E=await ie("/weather",{action:"fetch_all"});m(E.error?`Weather fetch failed: ${E.error}`:`Fetched forecasts for ${E.cities_fetched||0} cities`,E.error?"error":"success")})}async function v(){await g("predict",async()=>{const E=await ie("/models",{action:"run_predictions"});m(E.error?`Predictions failed: ${E.error}`:`Generated ${E.predictions_made||0} predictions`,E.error?"error":"success")})}async function b(){await g("risk",async()=>{const W=(await tt("/risk")).state||{};m(`Risk: $${parseFloat(W.bankroll||50).toFixed(2)} bankroll, $${parseFloat(W.open_exposure||0).toFixed(2)} exposure, Kill: ${W.kill_switch_active?"ON":"off"}`,"success")})}async function S(){await g("pipeline",async()=>{m("Pipeline: Ingest -> Weather -> Predict...","info");const E=await ie("/markets",{action:"ingest"});m(`1/3 Ingested ${E.ingested||0} markets`,E.error?"error":"info");const W=await ie("/weather",{action:"fetch_all"});m(`2/3 Weather for ${W.cities_fetched||0} cities`,W.error?"error":"info");const z=await ie("/models",{action:"run_predictions"});m(`3/3 ${z.predictions_made||0} predictions generated`,z.error?"error":"success"),m("Pipeline complete!","success")})}if(o)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full"})});const w=(r==null?void 0:r.config)||{},j=parseFloat((r==null?void 0:r.daily_pnl)||0),O=((e==null?void 0:e.market_count)||0)>0,_=((e==null?void 0:e.forecast_count)||0)>0,P=(((C=e==null?void 0:e.recent_predictions)==null?void 0:C.length)||0)>0,N=((i==null?void 0:i.ledger)||[]).slice().reverse().map((E,W)=>({idx:W,time:new Date(E.ts).toLocaleDateString("en-US",{month:"short",day:"numeric"}),balance:parseFloat(E.balance_after||0),amount:parseFloat(E.amount||0),event:E.event_type})),T=((e==null?void 0:e.recent_predictions)||[]).filter(E=>E.edge!=null).map(E=>({name:(E.condition_id||"").substring(0,8),edge:parseFloat((E.edge*100).toFixed(2)),pYes:parseFloat((E.p_yes*100).toFixed(1)),signal:E.recommendation||"HOLD"})),$=parseFloat((r==null?void 0:r.bankroll)||50),I=parseFloat((r==null?void 0:r.open_exposure)||0),D=$-I,L=[{name:"Available",value:Math.max(0,D),fill:"#10b981"},{name:"Exposed",value:I,fill:"#3b82f6"}];return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Dashboard"}),c.jsx("p",{className:"text-gray-500 text-sm mt-0.5",children:"Weather micro-betting system overview"})]}),c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsx("span",{className:`badge ${w.paper_mode!==!1?"bg-yellow":"bg-green"}`,children:w.paper_mode!==!1?"PAPER MODE":"LIVE MODE"}),(r==null?void 0:r.kill_switch_active)&&c.jsx("span",{className:"badge bg-red",children:"KILL SWITCH"}),c.jsx("span",{className:`w-2.5 h-2.5 rounded-full ${r!=null&&r.kill_switch_active?"bg-red-500":"bg-green-500 pulse-g"}`})]})]}),c.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[c.jsx(ru,{label:"Bankroll",value:`$${$.toFixed(2)}`,color:"text-green-400",sub:"Starting: $50.00",onClick:()=>p("/bankroll")}),c.jsx(ru,{label:"Daily P&L",value:`$${j.toFixed(2)}`,color:j>=0?"text-green-400":"text-red-400",sub:`Limit: -$${w.max_daily_loss_usd||5}`}),c.jsx(ru,{label:"Open Exposure",value:`$${I.toFixed(2)}`,color:"text-blue-400",sub:`Max: $${w.max_open_exposure_usd||5}`}),c.jsx(ru,{label:"Max Drawdown",value:`${parseFloat((r==null?void 0:r.max_drawdown_pct)||0).toFixed(1)}%`,color:"text-purple-400",sub:`Limit: ${w.max_drawdown_pct||20}%`})]}),c.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[c.jsxs("div",{className:"card lg:col-span-2",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Bankroll History"}),N.length>1?c.jsx(pt,{width:"100%",height:200,children:c.jsxs(Gc,{data:N,children:[c.jsx("defs",{children:c.jsxs("linearGradient",{id:"bgGreen",x1:"0",y1:"0",x2:"0",y2:"1",children:[c.jsx("stop",{offset:"5%",stopColor:"#10b981",stopOpacity:.3}),c.jsx("stop",{offset:"95%",stopColor:"#10b981",stopOpacity:0})]})}),c.jsx(ht,{strokeDasharray:"3 3",stroke:"#1f2937"}),c.jsx(Re,{dataKey:"time",tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1}),c.jsx(Be,{tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1,domain:["dataMin - 2","dataMax + 2"],tickFormatter:E=>`$${E}`}),c.jsx(Se,{content:c.jsx(lp,{})}),c.jsx(Sr,{type:"monotone",dataKey:"balance",stroke:"#10b981",strokeWidth:2,fill:"url(#bgGreen)",name:"Balance"})]})}):c.jsx("p",{className:"text-gray-500 text-sm text-center py-12",children:"Chart appears after trades begin"})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Capital Allocation"}),c.jsx(pt,{width:"100%",height:200,children:c.jsxs(RZ,{children:[c.jsx(un,{data:L,cx:"50%",cy:"50%",innerRadius:50,outerRadius:80,paddingAngle:4,dataKey:"value",children:L.map((E,W)=>c.jsx(jr,{fill:E.fill},W))}),c.jsx(Se,{content:c.jsx(lp,{})})]})}),c.jsxs("div",{className:"flex justify-center gap-4 text-xs mt-2",children:[c.jsxs("span",{className:"flex items-center gap-1.5",children:[c.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-green-500"}),"Available $",D.toFixed(2)]}),c.jsxs("span",{className:"flex items-center gap-1.5",children:[c.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-blue-500"}),"Exposed $",I.toFixed(2)]})]})]})]}),T.length>0&&c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Prediction Edge Distribution"}),c.jsx(pt,{width:"100%",height:180,children:c.jsxs(zn,{data:T,barSize:24,children:[c.jsx(ht,{strokeDasharray:"3 3",stroke:"#1f2937"}),c.jsx(Re,{dataKey:"name",tick:{fill:"#6b7280",fontSize:10},axisLine:!1,tickLine:!1}),c.jsx(Be,{tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1,tickFormatter:E=>`${E}%`}),c.jsx(Se,{content:c.jsx(lp,{prefix:""})}),c.jsx(Tt,{dataKey:"edge",name:"Edge %",children:T.map((E,W)=>c.jsx(jr,{fill:E.edge>0?"#10b981":"#ef4444",fillOpacity:.8},W))})]})})]}),c.jsxs("div",{className:"card",style:{background:"linear-gradient(135deg, rgba(59,130,246,0.05), rgba(139,92,246,0.05))"},children:[c.jsxs("div",{className:"flex items-center justify-between mb-4",children:[c.jsxs("div",{children:[c.jsx("h2",{className:"font-semibold",children:"Quick Actions"}),c.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:"Run pipeline steps or navigate to details"})]}),c.jsxs("button",{onClick:S,disabled:l.pipeline,className:"btn btn-p text-xs flex items-center gap-2",children:[l.pipeline?c.jsx("span",{className:"animate-spin w-3 h-3 border-2 border-white border-t-transparent rounded-full"}):c.jsx("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M13 10V3L4 14h7v7l9-11h-7z"})}),"Run Full Pipeline"]})]}),c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[c.jsx(Ki,{icon:"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6",title:"Ingest Markets",desc:"Scan Polymarket for weather events",onClick:x,busy:l.ingest,color:"blue",badge:O?{text:`${e.market_count} tracked`,color:"blue"}:{text:"Start here",color:"yellow"}}),c.jsx(Ki,{icon:"M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z",title:"Fetch Weather",desc:"Pull latest NWS forecasts",onClick:y,busy:l.weather,color:"green",badge:_?{text:`${e.forecast_count} runs`,color:"green"}:null}),c.jsx(Ki,{icon:"M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z",title:"Run Predictions",desc:"Generate P(YES) + edge",onClick:v,busy:l.predict,color:"purple",badge:P?{text:`${e.recent_predictions.length} active`,color:"purple"}:null}),c.jsx(Ki,{icon:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z",title:"Risk Scan",desc:"Check limits and kill switch",onClick:b,busy:l.risk,color:"yellow"}),c.jsx(Ki,{icon:"M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8V7m0 1v8m0 0v1",title:"View Bankroll",desc:"Balance history and P&L",onClick:()=>p("/bankroll"),color:"green"}),c.jsx(Ki,{icon:"M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9",title:"Polymarket CLOB",desc:"Live prices, orderbooks & trading",onClick:()=>p("/polymarket"),color:"purple",badge:{text:"LIVE",color:"purple"}})]})]}),f.length>0&&c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center justify-between mb-3",children:[c.jsx("h2",{className:"font-semibold text-sm",children:"Action Log"}),c.jsx("button",{onClick:()=>d([]),className:"text-xs text-gray-500 hover:text-gray-300",children:"Clear"})]}),c.jsx("div",{className:"space-y-1.5",children:f.map((E,W)=>c.jsxs("div",{className:`flex items-center gap-2 text-xs px-3 py-2 rounded-lg ${E.type==="error"?"bg-red-500/10 text-red-400":E.type==="success"?"bg-green-500/10 text-green-400":"bg-blue-500/10 text-blue-400"}`,children:[c.jsx("span",{className:`w-1.5 h-1.5 rounded-full flex-shrink-0 ${E.type==="error"?"bg-red-500":E.type==="success"?"bg-green-500":"bg-blue-500"}`}),c.jsx("span",{className:"flex-1",children:E.msg}),c.jsx("span",{className:"text-gray-600",children:new Date(E.ts).toLocaleTimeString()})]},E.ts+W))})]}),c.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center justify-between mb-3",children:[c.jsx("h2",{className:"font-semibold",children:"Recent Predictions"}),c.jsx("button",{onClick:()=>p("/models"),className:"text-xs text-blue-400 hover:text-blue-300",children:"View All"})]}),((F=e==null?void 0:e.recent_predictions)==null?void 0:F.length)>0?c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Market"}),c.jsx("th",{children:"P(Yes)"}),c.jsx("th",{children:"Edge"}),c.jsx("th",{children:"Signal"})]})}),c.jsx("tbody",{children:e.recent_predictions.slice(0,6).map((E,W)=>{var z,Y;return c.jsxs("tr",{children:[c.jsx("td",{className:"max-w-[180px] truncate font-mono text-xs",children:(z=E.condition_id)==null?void 0:z.substring(0,20)}),c.jsxs("td",{className:"font-mono text-green-400",children:[(E.p_yes*100).toFixed(1),"%"]}),c.jsx("td",{className:`font-mono ${E.edge>0?"text-green-400":"text-red-400"}`,children:E.edge?(E.edge*100).toFixed(1)+"%":"-"}),c.jsx("td",{children:c.jsx("span",{className:`badge ${(Y=E.recommendation)!=null&&Y.startsWith("BUY")?"bg-green":"bg-yellow"}`,children:E.recommendation||"HOLD"})})]},W)})})]}):c.jsx("p",{className:"text-gray-500 text-sm",children:"No predictions yet. Ingest markets to begin."})]}),c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center justify-between mb-3",children:[c.jsx("h2",{className:"font-semibold",children:"Recent Trades"}),c.jsx("button",{onClick:()=>p("/trades"),className:"text-xs text-blue-400 hover:text-blue-300",children:"View All"})]}),((M=e==null?void 0:e.recent_trades)==null?void 0:M.length)>0?c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Time"}),c.jsx("th",{children:"Side"}),c.jsx("th",{children:"Size"}),c.jsx("th",{children:"P&L"})]})}),c.jsx("tbody",{children:e.recent_trades.map((E,W)=>{var z;return c.jsxs("tr",{children:[c.jsx("td",{className:"text-gray-400 text-sm",children:new Date(E.match_time).toLocaleString()}),c.jsx("td",{children:c.jsx("span",{className:`badge ${E.side==="buy"?"bg-green":"bg-red"}`,children:(z=E.side)==null?void 0:z.toUpperCase()})}),c.jsxs("td",{className:"font-mono",children:["$",parseFloat(E.size_usd||0).toFixed(2)]}),c.jsxs("td",{className:`font-mono ${parseFloat(E.pnl||0)>=0?"text-green-400":"text-red-400"}`,children:["$",parseFloat(E.pnl||0).toFixed(2)]})]},W)})})]}):c.jsx("p",{className:"text-gray-500 text-sm",children:"No trades yet. System in paper mode."})]})]}),c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[c.jsxs("div",{className:"card cursor-pointer hover:border-blue-500/30 transition",onClick:()=>p("/markets"),children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Markets Tracked"}),c.jsx("p",{className:"stat-v text-blue-400",children:(e==null?void 0:e.market_count)||0}),c.jsxs("p",{className:"text-xs text-gray-500 mt-1",children:[(e==null?void 0:e.weather_market_count)||0," weather"]})]}),c.jsxs("div",{className:"card cursor-pointer hover:border-purple-500/30 transition",onClick:()=>p("/weather"),children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Forecast Runs"}),c.jsx("p",{className:"stat-v text-purple-400",children:(e==null?void 0:e.forecast_count)||0})]}),c.jsxs("div",{className:"card cursor-pointer hover:border-green-500/30 transition",onClick:()=>p("/risk"),children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Risk Config"}),c.jsxs("div",{className:"space-y-1 text-sm",children:[c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Max Bet"}),c.jsxs("span",{children:["$",w.max_bet_usd||.5]})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Min Edge"}),c.jsxs("span",{children:[((w.min_edge_threshold||.03)*100).toFixed(0),"%"]})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Kelly"}),c.jsxs("span",{children:[w.fractional_kelly||.1,"x"]})]})]})]})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"System Alerts"}),((B=e==null?void 0:e.recent_alerts)==null?void 0:B.length)>0?c.jsx("div",{className:"space-y-2",children:e.recent_alerts.map((E,W)=>c.jsxs("div",{className:`flex items-start gap-3 p-3 rounded-lg ${E.severity==="critical"?"bg-red-500/10":E.severity==="warning"?"bg-yellow-500/10":"bg-blue-500/10"}`,children:[c.jsx("span",{className:`badge ${E.severity==="critical"?"bg-red":E.severity==="warning"?"bg-yellow":"bg-blue"}`,children:E.severity}),c.jsxs("div",{children:[c.jsx("p",{className:"text-sm",children:E.message}),c.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:new Date(E.ts).toLocaleString()})]})]},W))}):c.jsx("p",{className:"text-gray-500 text-sm",children:"No alerts. System healthy."})]})]})}function zZ(){const[e,t]=A.useState([]),[r,n]=A.useState(!0),[i,a]=A.useState(!1),o=()=>tt("/markets").then(u=>{t(u.markets||[]),n(!1)});A.useEffect(()=>{o()},[]);async function s(){a(!0);const u=await ie("/markets",{action:"ingest"});alert(`Ingested ${u.ingested||0} weather markets from ${u.total_scanned||0} scanned`),o(),a(!1)}async function l(u){const f=await ie("/markets",{action:"parse",condition_id:u});alert(JSON.stringify(f.parsed,null,2)),o()}return r?c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full"})}):c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Markets"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"Polymarket weather-related markets"})]}),c.jsx("button",{onClick:s,disabled:i,className:"btn btn-p",children:i?"Ingesting...":"Ingest Markets"})]}),c.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Total"}),c.jsx("p",{className:"stat-v text-blue-400",children:e.length})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Active"}),c.jsx("p",{className:"stat-v text-green-400",children:e.filter(u=>u.active).length})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Parsed"}),c.jsx("p",{className:"stat-v text-purple-400",children:e.filter(u=>{var f;return(f=u.parsed_event)==null?void 0:f.variable}).length})]})]}),c.jsx("div",{className:"card overflow-x-auto",children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Question"}),c.jsx("th",{children:"Category"}),c.jsx("th",{children:"Liquidity"}),c.jsx("th",{children:"End Date"}),c.jsx("th",{children:"Parsed"}),c.jsx("th",{children:"Actions"})]})}),c.jsx("tbody",{children:e.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:6,className:"text-center text-gray-500 py-8",children:"No markets. Click Ingest."})}):e.map(u=>{var f;return c.jsxs("tr",{children:[c.jsxs("td",{className:"max-w-[300px]",children:[c.jsx("p",{className:"truncate font-medium",children:u.question}),c.jsx("p",{className:"text-xs text-gray-500 truncate",children:u.condition_id})]}),c.jsx("td",{children:c.jsx("span",{className:"badge bg-blue",children:u.category||"weather"})}),c.jsxs("td",{className:"font-mono",children:["$",parseFloat(u.liquidity||0).toFixed(0)]}),c.jsx("td",{className:"text-gray-400 text-sm",children:u.end_ts?new Date(u.end_ts).toLocaleDateString():"-"}),c.jsx("td",{children:(f=u.parsed_event)!=null&&f.variable?c.jsx("span",{className:"badge bg-green",children:"Yes"}):c.jsx("span",{className:"badge bg-yellow",children:"No"})}),c.jsx("td",{children:c.jsx("button",{onClick:()=>l(u.condition_id),className:"text-xs text-blue-400 hover:text-blue-300",children:"Parse"})})]},u.condition_id)})})]})})]})}const WZ=["New York","Chicago","Los Angeles","Miami","Denver","Seattle","Boston","San Francisco","Houston","Phoenix"],cw=["#3b82f6","#10b981","#f59e0b","#ef4444","#8b5cf6","#06b6d4","#ec4899","#f97316"],fw=({active:e,payload:t,label:r})=>!e||!(t!=null&&t.length)?null:c.jsxs("div",{className:"bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 text-xs shadow-xl",children:[c.jsxs("p",{className:"text-gray-400 mb-1",children:[r,"h lead"]}),t.map((n,i)=>{var a;return c.jsxs("p",{style:{color:n.color},className:"font-mono",children:[n.name,": ",(a=n.value)==null?void 0:a.toFixed(1)]},i)})]});function UZ(){var S;const[e,t]=A.useState([]),[r,n]=A.useState(!0),[i,a]=A.useState(!1),[o,s]=A.useState("New York"),[l,u]=A.useState("temperature"),f=()=>tt("/weather").then(w=>{t(w.forecasts||[]),n(!1)});A.useEffect(()=>{f()},[]);async function d(){a(!0),await ie("/weather",{action:"fetch",city:o}),f(),a(!1)}async function p(){a(!0),await ie("/weather",{action:"fetch_all"}),f(),a(!1)}if(r)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full"})});const h={};e.forEach(w=>{const j=w.location_name||w.geom_hash;h[j]||(h[j]=[]),h[j].push(w)});const m=[...new Set(e.map(w=>w.variable))],g=Object.keys(h),x={};Object.entries(h).forEach(([w,j])=>{j.filter(O=>O.variable===l).forEach(O=>{const _=parseInt(O.lead_hours||0);x[_]||(x[_]={lead:_}),x[_][w]=parseFloat(O.value_mean||0)})});const y=Object.values(x).sort((w,j)=>w.lead-j.lead),v=g[0],b=v?h[v].filter(w=>w.variable===l).sort((w,j)=>(w.lead_hours||0)-(j.lead_hours||0)).map(w=>({lead:parseInt(w.lead_hours||0),mean:parseFloat(w.value_mean||0),min:parseFloat(w.value_min||0),max:parseFloat(w.value_max||0)})):[];return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Weather Forecasts"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"NWS forecast data + ensemble analysis"})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("select",{value:o,onChange:w=>s(w.target.value),className:"bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm",children:WZ.map(w=>c.jsx("option",{value:w,children:w},w))}),c.jsx("button",{onClick:d,disabled:i,className:"btn btn-p",children:i?"...":"Fetch City"}),c.jsx("button",{onClick:p,disabled:i,className:"btn btn-s",children:"Fetch All"})]})]}),c.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Data Points"}),c.jsx("p",{className:"stat-v text-blue-400",children:e.length})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Locations"}),c.jsx("p",{className:"stat-v text-green-400",children:g.length})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Latest Run"}),c.jsx("p",{className:"text-sm text-gray-300 mt-1",children:(S=e[0])!=null&&S.run_ts?new Date(e[0].run_ts).toLocaleString():"None"})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Variables"}),c.jsx("p",{className:"stat-v text-purple-400",children:m.length})]})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"text-sm text-gray-400",children:"Chart variable:"}),m.slice(0,6).map(w=>c.jsx("button",{onClick:()=>u(w),className:`px-3 py-1 text-xs rounded-full border transition ${l===w?"bg-blue-500/20 border-blue-500/50 text-blue-400":"border-gray-700 text-gray-500 hover:text-gray-300"}`,children:w},w))]}),y.length>0&&c.jsxs("div",{className:"card",children:[c.jsxs("h2",{className:"font-semibold mb-3",children:[l," Forecast by Location (Lead Hours)"]}),c.jsx(pt,{width:"100%",height:300,children:c.jsxs(uw,{data:y,children:[c.jsx(ht,{strokeDasharray:"3 3",stroke:"#1f2937"}),c.jsx(Re,{dataKey:"lead",tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1,label:{value:"Lead Hours",position:"insideBottom",offset:-5,fill:"#6b7280",fontSize:11}}),c.jsx(Be,{tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1}),c.jsx(Se,{content:c.jsx(fw,{})}),c.jsx(qr,{wrapperStyle:{fontSize:11,color:"#9ca3af"}}),g.slice(0,8).map((w,j)=>c.jsx(On,{type:"monotone",dataKey:w,stroke:cw[j%cw.length],strokeWidth:2,dot:!1,name:w},w))]})})]}),b.length>0&&c.jsxs("div",{className:"card",children:[c.jsxs("h2",{className:"font-semibold mb-3",children:[v,": ",l," Range (Mean / Min / Max)"]}),c.jsx(pt,{width:"100%",height:240,children:c.jsxs(uw,{data:b,children:[c.jsx(ht,{strokeDasharray:"3 3",stroke:"#1f2937"}),c.jsx(Re,{dataKey:"lead",tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1}),c.jsx(Be,{tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1}),c.jsx(Se,{content:c.jsx(fw,{})}),c.jsx(qr,{wrapperStyle:{fontSize:11}}),c.jsx(On,{type:"monotone",dataKey:"max",stroke:"#ef4444",strokeWidth:1.5,dot:!1,strokeDasharray:"4 4",name:"Max"}),c.jsx(On,{type:"monotone",dataKey:"mean",stroke:"#10b981",strokeWidth:2,dot:!1,name:"Mean"}),c.jsx(On,{type:"monotone",dataKey:"min",stroke:"#3b82f6",strokeWidth:1.5,dot:!1,strokeDasharray:"4 4",name:"Min"})]})})]}),Object.entries(h).slice(0,8).map(([w,j])=>c.jsxs("div",{className:"card",children:[c.jsx("h3",{className:"font-semibold mb-3",children:w}),c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Var"}),c.jsx("th",{children:"Lead"}),c.jsx("th",{children:"Mean"}),c.jsx("th",{children:"Min"}),c.jsx("th",{children:"Max"})]})}),c.jsx("tbody",{children:j.slice(0,15).map((O,_)=>c.jsxs("tr",{children:[c.jsx("td",{className:"font-medium",children:O.variable}),c.jsxs("td",{className:"font-mono",children:[O.lead_hours,"h"]}),c.jsx("td",{className:"font-mono text-green-400",children:parseFloat(O.value_mean||0).toFixed(1)}),c.jsx("td",{className:"font-mono text-blue-400",children:parseFloat(O.value_min||0).toFixed(1)}),c.jsx("td",{className:"font-mono text-red-400",children:parseFloat(O.value_max||0).toFixed(1)})]},_))})]})]},w)),e.length===0&&c.jsx("div",{className:"card text-center py-12",children:c.jsx("p",{className:"text-gray-500",children:"No forecast data. Click Fetch."})})]})}const KZ=({active:e,payload:t})=>{var n,i,a,o;if(!e||!(t!=null&&t.length))return null;const r=(n=t[0])==null?void 0:n.payload;return r?c.jsxs("div",{className:"bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 text-xs shadow-xl",children:[c.jsx("p",{className:"text-gray-400 mb-1 font-mono",children:r.id}),c.jsxs("p",{className:"text-green-400",children:["P(Yes): ",(i=r.pYes)==null?void 0:i.toFixed(1),"%"]}),c.jsxs("p",{className:r.edge>=0?"text-green-400":"text-red-400",children:["Edge: ",(a=r.edge)==null?void 0:a.toFixed(2),"%"]}),c.jsxs("p",{className:"text-blue-400",children:["Confidence: ",(o=r.confidence)==null?void 0:o.toFixed(0),"%"]}),c.jsxs("p",{className:"text-purple-400",children:["Signal: ",r.signal]})]}):null};function HZ(){const[e,t]=A.useState([]),[r,n]=A.useState([]),[i,a]=A.useState(!0);A.useEffect(()=>{tt("/models").then(m=>{t(m.models||[]),n(m.predictions||[]),a(!1)}).catch(()=>a(!1))},[]);async function o(){await ie("/models",{action:"run_predictions"}),window.location.reload()}if(i)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full"})});const s=r.filter(m=>m.edge!=null&&m.p_yes!=null).map(m=>({id:(m.condition_id||"").substring(0,12),pYes:parseFloat((m.p_yes*100).toFixed(1)),edge:parseFloat((m.edge*100).toFixed(2)),confidence:parseFloat(((m.confidence||.5)*100).toFixed(0)),signal:m.recommendation||"HOLD"})),l=s.filter(m=>m.signal.startsWith("BUY")),u=s.filter(m=>!m.signal.startsWith("BUY")&&m.signal!=="SKIP"),f=s.filter(m=>m.signal==="SKIP"),d=s.map(m=>({name:m.id,edge:m.edge})).sort((m,g)=>g.edge-m.edge),p=[0,0,0,0,0];s.forEach(m=>{const g=Math.min(Math.floor(m.confidence/20),4);p[g]++});const h=p.map((m,g)=>({range:`${g*20}-${(g+1)*20}%`,count:m}));return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Models & Predictions"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"Probabilistic forecasting pipeline"})]}),c.jsx("button",{onClick:o,className:"btn btn-p",children:"Run Predictions"})]}),c.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Model Versions"}),c.jsx("p",{className:"stat-v text-blue-400",children:e.length})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Predictions"}),c.jsx("p",{className:"stat-v text-purple-400",children:r.length})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Active"}),c.jsx("p",{className:"stat-v text-green-400",children:e.filter(m=>m.active).length})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Buy Signals"}),c.jsx("p",{className:"stat-v text-green-400",children:l.length})]})]}),c.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"P(Yes) vs Edge"}),s.length>0?c.jsx(pt,{width:"100%",height:280,children:c.jsxs(BZ,{margin:{top:10,right:10,bottom:10,left:0},children:[c.jsx(ht,{strokeDasharray:"3 3",stroke:"#1f2937"}),c.jsx(Re,{type:"number",dataKey:"pYes",name:"P(Yes)",unit:"%",tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1,domain:[0,100]}),c.jsx(Be,{type:"number",dataKey:"edge",name:"Edge",unit:"%",tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1}),c.jsx(bl,{type:"number",dataKey:"confidence",range:[40,200]}),c.jsx(Se,{content:c.jsx(KZ,{})}),l.length>0&&c.jsx(bi,{name:"BUY",data:l,fill:"#10b981",fillOpacity:.8}),u.length>0&&c.jsx(bi,{name:"HOLD",data:u,fill:"#eab308",fillOpacity:.8}),f.length>0&&c.jsx(bi,{name:"SKIP",data:f,fill:"#ef4444",fillOpacity:.6}),c.jsx(qr,{wrapperStyle:{fontSize:11,color:"#9ca3af"}})]})}):c.jsx("p",{className:"text-gray-500 text-sm text-center py-16",children:"Run predictions to see chart"})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Edge Distribution"}),d.length>0?c.jsx(pt,{width:"100%",height:280,children:c.jsxs(zn,{data:d,barSize:20,children:[c.jsx(ht,{strokeDasharray:"3 3",stroke:"#1f2937"}),c.jsx(Re,{dataKey:"name",tick:{fill:"#6b7280",fontSize:9},axisLine:!1,tickLine:!1}),c.jsx(Be,{tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1,tickFormatter:m=>`${m}%`}),c.jsx(Se,{formatter:m=>[`${m}%`,"Edge"],contentStyle:{background:"#111827",border:"1px solid #374151",borderRadius:8,fontSize:12}}),c.jsx(Tt,{dataKey:"edge",name:"Edge %",children:d.map((m,g)=>c.jsx(jr,{fill:m.edge>0?"#10b981":"#ef4444",fillOpacity:.8},g))})]})}):c.jsx("p",{className:"text-gray-500 text-sm text-center py-16",children:"No predictions yet"})]})]}),s.length>0&&c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Confidence Distribution"}),c.jsx(pt,{width:"100%",height:160,children:c.jsxs(zn,{data:h,barSize:40,children:[c.jsx(ht,{strokeDasharray:"3 3",stroke:"#1f2937"}),c.jsx(Re,{dataKey:"range",tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1}),c.jsx(Be,{tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1,allowDecimals:!1}),c.jsx(Se,{formatter:m=>[m,"Predictions"],contentStyle:{background:"#111827",border:"1px solid #374151",borderRadius:8,fontSize:12}}),c.jsx(Tt,{dataKey:"count",fill:"#8b5cf6",fillOpacity:.7,radius:[4,4,0,0]})]})})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Model Versions"}),c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"ID"}),c.jsx("th",{children:"Type"}),c.jsx("th",{children:"Tag"}),c.jsx("th",{children:"Status"}),c.jsx("th",{children:"Created"})]})}),c.jsx("tbody",{children:e.map(m=>c.jsxs("tr",{children:[c.jsxs("td",{className:"font-mono",children:["#",m.id]}),c.jsx("td",{children:m.model_type}),c.jsx("td",{children:m.version_tag}),c.jsx("td",{children:c.jsx("span",{className:`badge ${m.active?"bg-green":"bg-yellow"}`,children:m.active?"Active":"Off"})}),c.jsx("td",{className:"text-gray-400 text-sm",children:new Date(m.created_at).toLocaleDateString()})]},m.id))})]})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Predictions"}),c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Market"}),c.jsx("th",{children:"P(Yes)"}),c.jsx("th",{children:"Confidence"}),c.jsx("th",{children:"Edge"}),c.jsx("th",{children:"Signal"}),c.jsx("th",{children:"Time"})]})}),c.jsx("tbody",{children:r.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:6,className:"text-center text-gray-500 py-8",children:"No predictions yet"})}):r.map((m,g)=>{var x,y;return c.jsxs("tr",{children:[c.jsx("td",{className:"font-mono text-xs max-w-[140px] truncate",children:m.question||((x=m.condition_id)==null?void 0:x.substring(0,20))}),c.jsxs("td",{className:"font-mono text-green-400",children:[(m.p_yes*100).toFixed(1),"%"]}),c.jsx("td",{className:"font-mono",children:m.confidence?(m.confidence*100).toFixed(0)+"%":"-"}),c.jsx("td",{className:`font-mono ${(m.edge||0)>0?"text-green-400":"text-red-400"}`,children:m.edge?(m.edge*100).toFixed(2)+"%":"-"}),c.jsx("td",{children:c.jsx("span",{className:`badge ${(y=m.recommendation)!=null&&y.startsWith("BUY")?"bg-green":m.recommendation==="SKIP"?"bg-red":"bg-yellow"}`,children:m.recommendation||"-"})}),c.jsx("td",{className:"text-gray-400 text-sm",children:new Date(m.asof_ts).toLocaleString()})]},g)})})]})]})]})}const up={conservative:{label:"Conservative",color:"blue",desc:"Preserve capital. Small bets, strict limits.",icon:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z",config:{paper_mode:!0,max_bet_usd:.25,max_daily_loss_usd:2,max_open_exposure_usd:3,max_drawdown_pct:10,min_edge_threshold:.05,min_liquidity:200,fractional_kelly:.05},kelly_note:"5% Kelly -> ~$0.12 avg bet on 10% edge",survival:"99% chance to survive 30 days"},moderate:{label:"Moderate",color:"yellow",desc:"Balanced risk/reward. Default for $50 experiment.",icon:"M3 6l3 1m0 0l-3 9a5.002 5.002 0 006.001 0M6 7l3 9M6 7l6-2m6 2l3-1m-3 1l-3 9a5.002 5.002 0 006.001 0M18 7l3 9m-3-9l-6-2m0-2v2m0 16V5m0 16H9m3 0h3",config:{paper_mode:!0,max_bet_usd:.5,max_daily_loss_usd:5,max_open_exposure_usd:5,max_drawdown_pct:20,min_edge_threshold:.03,min_liquidity:100,fractional_kelly:.1},kelly_note:"10% Kelly -> ~$0.25 avg bet on 5% edge",survival:"90% chance to survive 30 days"},aggressive:{label:"Aggressive",color:"red",desc:"Max growth. Higher risk of ruin.",icon:"M17.657 18.657A8 8 0 016.343 7.343S7 9 9 10c0-2 .5-5 2.986-7C14 5 16.09 5.777 17.656 7.343A7.975 7.975 0 0120 13a7.975 7.975 0 01-2.343 5.657z",config:{paper_mode:!0,max_bet_usd:1,max_daily_loss_usd:8,max_open_exposure_usd:10,max_drawdown_pct:35,min_edge_threshold:.02,min_liquidity:50,fractional_kelly:.2},kelly_note:"20% Kelly -> ~$0.50 avg bet on 5% edge",survival:"70% chance to survive 30 days"}};function VZ(){var y;const[e,t]=A.useState(null),[r,n]=A.useState(!0),[i,a]=A.useState(null),o=()=>tt("/risk").then(v=>{t(v.state),n(!1)});A.useEffect(()=>{o();const v=setInterval(o,1e4);return()=>clearInterval(v)},[]);async function s(){if(e==null?void 0:e.kill_switch_active)await ie("/risk",{action:"kill_switch_deactivate"});else{const b=prompt("Kill switch reason:");if(!b)return;await ie("/risk",{action:"kill_switch_activate",reason:b})}o()}async function l(v,b){const S={...e.config,[v]:b};await ie("/risk",{action:"update_config",config:S}),o()}async function u(v){a(v);const b=up[v];await ie("/risk",{action:"update_config",config:b.config}),o(),setTimeout(()=>a(null),600)}if(r)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full"})});const f=(e==null?void 0:e.config)||{},d=parseFloat((e==null?void 0:e.bankroll)||50),p=parseFloat((e==null?void 0:e.open_exposure)||0),h=parseFloat((e==null?void 0:e.daily_pnl)||0),m=parseFloat((e==null?void 0:e.max_drawdown_pct)||0),g=[{name:"Exposure",value:Math.min(100,p/(f.max_open_exposure_usd||5)*100),fill:"#3b82f6"},{name:"Daily Loss",value:Math.min(100,Math.abs(h)/(f.max_daily_loss_usd||5)*100),fill:h<0?"#ef4444":"#10b981"},{name:"Drawdown",value:Math.min(100,m/(f.max_drawdown_pct||20)*100),fill:"#8b5cf6"}],x=(y=Object.entries(up).find(([v,b])=>b.config.fractional_kelly===f.fractional_kelly&&b.config.max_bet_usd===f.max_bet_usd))==null?void 0:y[0];return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Risk Management"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"Controls, presets & kill switches"})]}),c.jsx("button",{onClick:s,className:`btn ${e!=null&&e.kill_switch_active?"btn-s":"btn-d"}`,children:e!=null&&e.kill_switch_active?"Deactivate Kill Switch":"Activate Kill Switch"})]}),(e==null?void 0:e.kill_switch_active)&&c.jsxs("div",{className:"bg-red-500/10 border border-red-500/30 rounded-xl p-4 flex items-center gap-3",children:[c.jsx("span",{className:"text-2xl",children:"🚨"}),c.jsxs("div",{children:[c.jsx("p",{className:"font-semibold text-red-400",children:"KILL SWITCH ACTIVE"}),c.jsx("p",{className:"text-sm text-gray-400",children:e.kill_reason})]})]}),c.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Bankroll"}),c.jsxs("p",{className:"stat-v text-green-400",children:["$",d.toFixed(2)]})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Daily P&L"}),c.jsxs("p",{className:`stat-v ${h>=0?"text-green-400":"text-red-400"}`,children:["$",h.toFixed(2)]})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Exposure"}),c.jsxs("p",{className:"stat-v text-blue-400",children:["$",p.toFixed(2)]})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Drawdown"}),c.jsxs("p",{className:"stat-v text-purple-400",children:[m.toFixed(1),"%"]})]})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Risk Utilization"}),c.jsx(pt,{width:"100%",height:160,children:c.jsxs(zn,{data:g,layout:"vertical",barSize:20,children:[c.jsx(ht,{strokeDasharray:"3 3",stroke:"#1f2937",horizontal:!1}),c.jsx(Re,{type:"number",domain:[0,100],tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1,tickFormatter:v=>`${v}%`}),c.jsx(Be,{type:"category",dataKey:"name",tick:{fill:"#9ca3af",fontSize:12},axisLine:!1,tickLine:!1,width:80}),c.jsx(Se,{formatter:v=>[`${v.toFixed(0)}%`,"Utilization"],contentStyle:{background:"#111827",border:"1px solid #374151",borderRadius:8,fontSize:12}}),c.jsx(Tt,{dataKey:"value",radius:[0,4,4,0],children:g.map((v,b)=>c.jsx(k.Fragment,{children:k.createElement("rect",null)},b))})]})})]}),c.jsxs("div",{className:"card",style:{background:"linear-gradient(135deg, rgba(59,130,246,0.03), rgba(139,92,246,0.03))"},children:[c.jsxs("div",{className:"mb-4",children:[c.jsx("h2",{className:"font-semibold",children:"Risk Presets"}),c.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:"One-click profiles optimized for $50 bankroll / 30-day experiment"})]}),c.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:Object.entries(up).map(([v,b])=>{const S=x===v;return c.jsxs("button",{onClick:()=>u(v),disabled:i===v,className:`text-left rounded-xl border p-4 transition-all ${S?`border-${b.color}-500/50 bg-${b.color}-500/10`:"border-gray-800 hover:border-gray-700 bg-gray-800/20 hover:bg-gray-800/40"} ${i===v?"opacity-50":""}`,children:[c.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[c.jsx("div",{className:`w-10 h-10 rounded-lg flex items-center justify-center bg-${b.color}-500/15`,children:c.jsx("svg",{className:`w-5 h-5 text-${b.color}-400`,fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:b.icon})})}),c.jsxs("div",{children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("p",{className:"font-semibold",children:b.label}),S&&c.jsx("span",{className:`badge bg-${b.color}`,children:"Active"})]}),c.jsx("p",{className:"text-xs text-gray-500",children:b.desc})]})]}),c.jsxs("div",{className:"space-y-1.5 text-xs",children:[c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Max Bet"}),c.jsxs("span",{className:"font-mono",children:["$",b.config.max_bet_usd]})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Kelly Fraction"}),c.jsxs("span",{className:"font-mono",children:[b.config.fractional_kelly,"x"]})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Max Exposure"}),c.jsxs("span",{className:"font-mono",children:["$",b.config.max_open_exposure_usd]})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Min Edge"}),c.jsxs("span",{className:"font-mono",children:[b.config.min_edge_threshold*100,"%"]})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("span",{className:"text-gray-500",children:"Max Drawdown"}),c.jsxs("span",{className:"font-mono",children:[b.config.max_drawdown_pct,"%"]})]})]}),c.jsxs("div",{className:"mt-3 pt-3 border-t border-gray-800",children:[c.jsx("p",{className:"text-[10px] text-gray-500",children:b.kelly_note}),c.jsx("p",{className:"text-[10px] text-gray-400 mt-0.5",children:b.survival})]})]},v)})})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-4",children:"Risk Configuration"}),c.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[{k:"paper_mode",l:"Paper Mode",t:"toggle",desc:"No real orders"},{k:"max_bet_usd",l:"Max Bet ($)",t:"num",s:.05},{k:"max_daily_loss_usd",l:"Max Daily Loss ($)",t:"num",s:.5},{k:"max_open_exposure_usd",l:"Max Exposure ($)",t:"num",s:.5},{k:"max_drawdown_pct",l:"Max Drawdown (%)",t:"num",s:1},{k:"min_edge_threshold",l:"Min Edge",t:"num",s:.005},{k:"min_liquidity",l:"Min Liquidity ($)",t:"num",s:10},{k:"fractional_kelly",l:"Kelly Fraction",t:"num",s:.05}].map(v=>c.jsxs("div",{className:"flex items-center justify-between bg-gray-800/30 rounded-lg p-3",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium",children:v.l}),v.desc&&c.jsx("p",{className:"text-xs text-gray-500",children:v.desc})]}),v.t==="toggle"?c.jsx("button",{onClick:()=>l(v.k,!f[v.k]),className:`w-12 h-6 rounded-full relative ${f[v.k]?"bg-green-500":"bg-gray-600"}`,children:c.jsx("span",{className:`absolute top-0.5 w-5 h-5 bg-white rounded-full transition-transform ${f[v.k]?"left-6":"left-0.5"}`})}):c.jsx("input",{type:"number",step:v.s,value:f[v.k]??"",onChange:b=>l(v.k,parseFloat(b.target.value)),className:"w-24 bg-gray-800 border border-gray-700 rounded px-2 py-1 text-sm text-right font-mono"})]},v.k))})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Kelly Bet Calculator"}),c.jsx("p",{className:"text-xs text-gray-500 mb-4",children:"Suggested bet sizes for current config with $50 bankroll"}),c.jsx("div",{className:"grid grid-cols-3 md:grid-cols-5 gap-3",children:[.02,.03,.05,.08,.1].map(v=>{const b=f.fractional_kelly||.1,S=v/(1-v),w=Math.min(f.max_bet_usd||.5,d*b*S);return c.jsxs("div",{className:"bg-gray-800/30 rounded-lg p-3 text-center",children:[c.jsxs("p",{className:"text-xs text-gray-500 mb-1",children:[(v*100).toFixed(0),"% edge"]}),c.jsxs("p",{className:`font-mono font-semibold ${w>0?"text-green-400":"text-gray-500"}`,children:["$",w.toFixed(2)]}),c.jsxs("p",{className:"text-[10px] text-gray-600 mt-0.5",children:["of $",d.toFixed(0)]})]},v)})})]})]})}const dw=({active:e,payload:t,label:r,prefix:n="$"})=>!e||!(t!=null&&t.length)?null:c.jsxs("div",{className:"bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 text-xs shadow-xl",children:[c.jsx("p",{className:"text-gray-400 mb-1",children:r}),t.map((i,a)=>c.jsxs("p",{style:{color:i.color},className:"font-mono",children:[i.name,": ",n,typeof i.value=="number"?i.value.toFixed(2):i.value]},a))]});function GZ(){const[e,t]=A.useState([]),[r,n]=A.useState([]),[i,a]=A.useState(!0);if(A.useEffect(()=>{tt("/trades").then(h=>{t(h.orders||[]),n(h.trades||[]),a(!1)});const p=setInterval(()=>tt("/trades").then(h=>{t(h.orders||[]),n(h.trades||[])}),15e3);return()=>clearInterval(p)},[]),i)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full"})});const o=r.reduce((p,h)=>p+parseFloat(h.pnl||0),0);r.reduce((p,h)=>p+parseFloat(h.fee_usd||0),0);const s=r.length>0?r.filter(p=>parseFloat(p.pnl||0)>0).length/r.length*100:0,l=r.length>0?r.reduce((p,h)=>p+parseFloat(h.size_usd||0),0)/r.length:0,u=r.slice().reverse().map((p,h)=>({idx:h+1,time:new Date(p.match_time).toLocaleDateString("en-US",{month:"short",day:"numeric"}),pnl:parseFloat(p.pnl||0),size:parseFloat(p.size_usd||0)}));let f=0;const d=u.map(p=>(f+=p.pnl,{...p,cumPnl:f}));return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Trades & Orders"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"Execution history & analysis"})]}),c.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-5 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Orders"}),c.jsx("p",{className:"stat-v text-blue-400",children:e.length})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Fills"}),c.jsx("p",{className:"stat-v text-green-400",children:r.length})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"P&L"}),c.jsxs("p",{className:`stat-v ${o>=0?"text-green-400":"text-red-400"}`,children:["$",o.toFixed(2)]})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Win Rate"}),c.jsxs("p",{className:"stat-v text-purple-400",children:[s.toFixed(0),"%"]})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Avg Size"}),c.jsxs("p",{className:"stat-v text-yellow-400",children:["$",l.toFixed(2)]})]})]}),r.length>0&&c.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"P&L Per Trade"}),c.jsx(pt,{width:"100%",height:220,children:c.jsxs(zn,{data:u,barSize:16,children:[c.jsx(ht,{strokeDasharray:"3 3",stroke:"#1f2937"}),c.jsx(Re,{dataKey:"time",tick:{fill:"#6b7280",fontSize:10},axisLine:!1,tickLine:!1}),c.jsx(Be,{tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1,tickFormatter:p=>`$${p}`}),c.jsx(Se,{content:c.jsx(dw,{})}),c.jsx(Tt,{dataKey:"pnl",name:"P&L",children:u.map((p,h)=>c.jsx(jr,{fill:p.pnl>=0?"#10b981":"#ef4444",fillOpacity:.8},h))})]})})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Cumulative P&L"}),c.jsx(pt,{width:"100%",height:220,children:c.jsxs(Gc,{data:d,children:[c.jsx("defs",{children:c.jsxs("linearGradient",{id:"cumTrade",x1:"0",y1:"0",x2:"0",y2:"1",children:[c.jsx("stop",{offset:"5%",stopColor:f>=0?"#10b981":"#ef4444",stopOpacity:.3}),c.jsx("stop",{offset:"95%",stopColor:f>=0?"#10b981":"#ef4444",stopOpacity:0})]})}),c.jsx(ht,{strokeDasharray:"3 3",stroke:"#1f2937"}),c.jsx(Re,{dataKey:"time",tick:{fill:"#6b7280",fontSize:10},axisLine:!1,tickLine:!1}),c.jsx(Be,{tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1,tickFormatter:p=>`$${p}`}),c.jsx(Se,{content:c.jsx(dw,{})}),c.jsx(Sr,{type:"monotone",dataKey:"cumPnl",stroke:f>=0?"#10b981":"#ef4444",strokeWidth:2,fill:"url(#cumTrade)",name:"Cumulative P&L"})]})})]})]}),c.jsxs("div",{className:"card overflow-x-auto",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Orders"}),c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"ID"}),c.jsx("th",{children:"Side"}),c.jsx("th",{children:"Outcome"}),c.jsx("th",{children:"Price"}),c.jsx("th",{children:"Size"}),c.jsx("th",{children:"Status"}),c.jsx("th",{children:"Paper"}),c.jsx("th",{children:"Time"})]})}),c.jsx("tbody",{children:e.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:8,className:"text-center text-gray-500 py-8",children:"No orders yet"})}):e.map(p=>{var h;return c.jsxs("tr",{children:[c.jsx("td",{className:"font-mono text-xs",children:p.order_id.substring(0,12)}),c.jsx("td",{children:c.jsx("span",{className:`badge ${p.side==="buy"?"bg-green":"bg-red"}`,children:(h=p.side)==null?void 0:h.toUpperCase()})}),c.jsx("td",{children:p.outcome}),c.jsxs("td",{className:"font-mono",children:["$",parseFloat(p.price).toFixed(4)]}),c.jsxs("td",{className:"font-mono",children:["$",parseFloat(p.size_usd||0).toFixed(2)]}),c.jsx("td",{children:c.jsx("span",{className:`badge ${p.status==="filled"?"bg-green":p.status==="rejected"?"bg-red":"bg-yellow"}`,children:p.status})}),c.jsx("td",{children:p.paper_trade?c.jsx("span",{className:"badge bg-yellow",children:"PAPER"}):c.jsx("span",{className:"badge bg-green",children:"LIVE"})}),c.jsx("td",{className:"text-gray-400 text-sm",children:new Date(p.submitted_ts).toLocaleString()})]},p.order_id)})})]})]}),r.length>0&&c.jsxs("div",{className:"card overflow-x-auto",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Trade Fills"}),c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Time"}),c.jsx("th",{children:"Size"}),c.jsx("th",{children:"Price"}),c.jsx("th",{children:"Fee"}),c.jsx("th",{children:"P&L"})]})}),c.jsx("tbody",{children:r.map((p,h)=>c.jsxs("tr",{children:[c.jsx("td",{className:"text-gray-400 text-sm",children:p.match_time?new Date(p.match_time).toLocaleString():"-"}),c.jsxs("td",{className:"font-mono",children:["$",parseFloat(p.size_usd||0).toFixed(2)]}),c.jsxs("td",{className:"font-mono",children:["$",parseFloat(p.fill_price||0).toFixed(4)]}),c.jsxs("td",{className:"font-mono text-yellow-400",children:["$",parseFloat(p.fee_usd||0).toFixed(4)]}),c.jsxs("td",{className:`font-mono ${parseFloat(p.pnl||0)>=0?"text-green-400":"text-red-400"}`,children:["$",parseFloat(p.pnl||0).toFixed(2)]})]},h))})]})]})]})}const cp=({active:e,payload:t,label:r,prefix:n="$"})=>!e||!(t!=null&&t.length)?null:c.jsxs("div",{className:"bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 text-xs shadow-xl",children:[c.jsx("p",{className:"text-gray-400 mb-1",children:r}),t.map((i,a)=>c.jsxs("p",{style:{color:i.color},className:"font-mono",children:[i.name,": ",n,typeof i.value=="number"?i.value.toFixed(2):i.value]},a))]});function qZ(){const[e,t]=A.useState([]),[r,n]=A.useState({}),[i,a]=A.useState(!0);if(A.useEffect(()=>{tt("/bankroll").then(m=>{t(m.ledger||[]),n(m.summary||{}),a(!1)})},[]),i)return c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full"})});const o={deposit:"bg-green",withdrawal:"bg-red",trade_pnl:"bg-blue",fee:"bg-yellow",adjustment:"bg-purple"},s=e.slice().reverse().map((m,g)=>({idx:g,time:new Date(m.ts).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}),balance:parseFloat(m.balance_after||0),amount:parseFloat(m.amount||0),event:m.event_type})),l=e.slice().reverse().filter(m=>m.event_type==="trade_pnl"||m.event_type==="fee").map((m,g)=>({idx:g,time:new Date(m.ts).toLocaleDateString("en-US",{month:"short",day:"numeric"}),pnl:parseFloat(m.amount||0),event:m.event_type}));let u=0;const f=l.map(m=>(u+=m.pnl,{...m,cumPnl:u})),d={};e.forEach(m=>{d[m.event_type]=(d[m.event_type]||0)+1}),Object.entries(d).map(([m,g])=>({name:m,count:g}));const p=parseFloat(r.current_balance||50),h=(p-50)/50*100;return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Bankroll"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"Balance tracking and P&L analysis"})]}),c.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-5 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Balance"}),c.jsxs("p",{className:"stat-v text-green-400",children:["$",p.toFixed(2)]})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Deposits"}),c.jsxs("p",{className:"stat-v text-blue-400",children:["$",parseFloat(r.total_deposits||50).toFixed(2)]})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Total P&L"}),c.jsxs("p",{className:`stat-v ${parseFloat(r.total_pnl||0)>=0?"text-green-400":"text-red-400"}`,children:["$",parseFloat(r.total_pnl||0).toFixed(2)]})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Fees"}),c.jsxs("p",{className:"stat-v text-yellow-400",children:["$",parseFloat(r.total_fees||0).toFixed(2)]})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"ROI"}),c.jsxs("p",{className:`stat-v ${h>=0?"text-green-400":"text-red-400"}`,children:[h>=0?"+":"",h.toFixed(1),"%"]})]})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Balance History"}),s.length>1?c.jsx(pt,{width:"100%",height:280,children:c.jsxs(Gc,{data:s,children:[c.jsx("defs",{children:c.jsxs("linearGradient",{id:"balGrad",x1:"0",y1:"0",x2:"0",y2:"1",children:[c.jsx("stop",{offset:"5%",stopColor:"#10b981",stopOpacity:.3}),c.jsx("stop",{offset:"95%",stopColor:"#10b981",stopOpacity:0})]})}),c.jsx(ht,{strokeDasharray:"3 3",stroke:"#1f2937"}),c.jsx(Re,{dataKey:"time",tick:{fill:"#6b7280",fontSize:10},axisLine:!1,tickLine:!1,interval:"preserveStartEnd"}),c.jsx(Be,{tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1,domain:["dataMin - 1","dataMax + 1"],tickFormatter:m=>`$${m}`}),c.jsx(Se,{content:c.jsx(cp,{})}),c.jsx(Sr,{type:"monotone",dataKey:"balance",stroke:"#10b981",strokeWidth:2,fill:"url(#balGrad)",name:"Balance",dot:!1})]})}):c.jsx("p",{className:"text-gray-500 text-sm text-center py-12",children:"Chart appears after multiple entries"})]}),c.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"P&L Events"}),l.length>0?c.jsx(pt,{width:"100%",height:220,children:c.jsxs(zn,{data:l,barSize:16,children:[c.jsx(ht,{strokeDasharray:"3 3",stroke:"#1f2937"}),c.jsx(Re,{dataKey:"time",tick:{fill:"#6b7280",fontSize:10},axisLine:!1,tickLine:!1}),c.jsx(Be,{tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1,tickFormatter:m=>`$${m}`}),c.jsx(Se,{content:c.jsx(cp,{})}),c.jsx(Tt,{dataKey:"pnl",name:"P&L",children:l.map((m,g)=>c.jsx(jr,{fill:m.pnl>=0?"#10b981":"#ef4444",fillOpacity:.8},g))})]})}):c.jsx("p",{className:"text-gray-500 text-sm text-center py-12",children:"No P&L events yet"})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Cumulative P&L"}),f.length>0?c.jsx(pt,{width:"100%",height:220,children:c.jsxs(Gc,{data:f,children:[c.jsx("defs",{children:c.jsxs("linearGradient",{id:"cumGrad",x1:"0",y1:"0",x2:"0",y2:"1",children:[c.jsx("stop",{offset:"5%",stopColor:u>=0?"#10b981":"#ef4444",stopOpacity:.3}),c.jsx("stop",{offset:"95%",stopColor:u>=0?"#10b981":"#ef4444",stopOpacity:0})]})}),c.jsx(ht,{strokeDasharray:"3 3",stroke:"#1f2937"}),c.jsx(Re,{dataKey:"time",tick:{fill:"#6b7280",fontSize:10},axisLine:!1,tickLine:!1}),c.jsx(Be,{tick:{fill:"#6b7280",fontSize:11},axisLine:!1,tickLine:!1,tickFormatter:m=>`$${m}`}),c.jsx(Se,{content:c.jsx(cp,{})}),c.jsx(Sr,{type:"monotone",dataKey:"cumPnl",stroke:u>=0?"#10b981":"#ef4444",strokeWidth:2,fill:"url(#cumGrad)",name:"Cumulative P&L"})]})}):c.jsx("p",{className:"text-gray-500 text-sm text-center py-12",children:"No P&L events yet"})]})]}),c.jsxs("div",{className:"card overflow-x-auto",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Ledger Entries"}),c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Time"}),c.jsx("th",{children:"Event"}),c.jsx("th",{children:"Amount"}),c.jsx("th",{children:"Balance"}),c.jsx("th",{children:"Note"})]})}),c.jsx("tbody",{children:e.map((m,g)=>c.jsxs("tr",{children:[c.jsx("td",{className:"text-gray-400 text-sm",children:new Date(m.ts).toLocaleString()}),c.jsx("td",{children:c.jsx("span",{className:`badge ${o[m.event_type]||"bg-blue"}`,children:m.event_type})}),c.jsxs("td",{className:`font-mono ${parseFloat(m.amount)>=0?"text-green-400":"text-red-400"}`,children:[parseFloat(m.amount)>=0?"+":"","$",parseFloat(m.amount).toFixed(2)]}),c.jsxs("td",{className:"font-mono font-medium",children:["$",parseFloat(m.balance_after).toFixed(2)]}),c.jsx("td",{className:"text-gray-400 text-sm max-w-[200px] truncate",children:m.note||"-"})]},g))})]})]})]})}function XZ(){const[e,t]=A.useState(null),[r,n]=A.useState(""),[i,a]=A.useState(""),[o,s]=A.useState(""),[l,u]=A.useState(""),[f,d]=A.useState(!1),[p,h]=A.useState(null),[m,g]=A.useState(null),[x,y]=A.useState(""),[v,b]=A.useState(null),[S,w]=A.useState({});A.useEffect(()=>{tt("/health").then(t),j()},[]);async function j(){h("checking");try{const C=await ie("/polymarket",{action:"status"});g(C),h(C.connected?"connected":"disconnected")}catch{h("disconnected")}}async function O(){b("testing");try{const C=await ie("/polymarket",{action:"test_public"});b(C.success?"ok":"error"),C.success&&y(`CLOB OK — Server time: ${C.server_time}`)}catch{b("error")}}async function _(){if(!(!r||!i||!o)){h("saving"),y("");try{const C=await ie("/polymarket",{action:"save_keys",api_key:r,secret:i,passphrase:o,wallet:l||null});C.success?(h("connected"),g({api_key:C.api_key,wallet:l,connected_at:new Date().toISOString(),connected:!0}),y('Credentials saved! Use "Test Auth" to verify.'),n(""),a(""),s("")):(h("error"),y(C.error||"Failed to save"))}catch(C){h("error"),y("Error: "+C.message)}}}async function P(){y("Testing authenticated connection...");try{const C=await ie("/polymarket",{action:"auth_test"});C.success?(y(`${C.message} | ${C.trades??0} trades found`),h("connected")):y(C.error||"Auth test failed")}catch(C){y("Error: "+C.message)}}async function N(){try{await ie("/polymarket",{action:"disconnect"}),h("disconnected"),g(null),y("Disconnected")}catch{y("Error disconnecting")}}async function T(C,F){w(M=>({...M,[C]:"testing"}));try{const M=await F();w(B=>({...B,[C]:M.success||M.sent?"ok":"error"}))}catch{w(M=>({...M,[C]:"error"}))}}async function $(){await T("nws",()=>ie("/weather",{action:"test_nws"}))}async function I(){await T("slack",()=>ie("/alerts",{action:"test"}))}async function D(C){const F=await ie("/workers",{action:"run",worker:C});w(M=>({...M,[C]:F.message?"ok":"error"}))}const L=C=>C===!0||C==="ok"||C==="connected"?"bg-green-500":C==="testing"||C==="checking"||C==="saving"?"bg-yellow-500 animate-pulse":C==="error"?"bg-red-500":"bg-gray-600";return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"System config & Polymarket login"})]}),c.jsxs("div",{className:"card border border-purple-500/20",style:{background:"linear-gradient(135deg, rgba(139,92,246,0.08), rgba(59,130,246,0.04))"},children:[c.jsxs("div",{className:"flex items-center gap-3 mb-5",children:[c.jsx("div",{className:"w-12 h-12 rounded-xl flex items-center justify-center bg-purple-500/20",children:c.jsx("svg",{className:"w-6 h-6 text-purple-400",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9"})})}),c.jsxs("div",{className:"flex-1",children:[c.jsx("h2",{className:"text-lg font-bold",children:"Polymarket CLOB Login"}),c.jsx("p",{className:"text-xs text-gray-500",children:"Connect with your Builder API keys for live trading on Polygon"})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:`w-2.5 h-2.5 rounded-full ${L(p)}`}),c.jsx("span",{className:`text-sm font-medium ${p==="connected"?"text-green-400":p==="error"?"text-red-400":"text-gray-500"}`,children:p==="connected"?"Connected":p==="saving"?"Saving...":p==="checking"?"Checking...":p==="error"?"Error":"Not Connected"})]})]}),p==="connected"&&m&&c.jsxs("div",{className:"bg-green-500/10 border border-green-500/20 rounded-lg p-4 mb-4",children:[c.jsxs("div",{className:"grid grid-cols-3 gap-4 text-sm",children:[c.jsxs("div",{children:[c.jsx("span",{className:"text-gray-500 text-xs block mb-0.5",children:"API Key"}),c.jsx("span",{className:"font-mono text-green-400",children:m.api_key||"—"})]}),c.jsxs("div",{children:[c.jsx("span",{className:"text-gray-500 text-xs block mb-0.5",children:"Wallet"}),c.jsx("span",{className:"font-mono text-green-400",children:m.wallet?`${m.wallet.substring(0,6)}...${m.wallet.slice(-4)}`:"Not set"})]}),c.jsxs("div",{children:[c.jsx("span",{className:"text-gray-500 text-xs block mb-0.5",children:"Connected"}),c.jsx("span",{className:"text-green-400",children:m.connected_at?new Date(m.connected_at).toLocaleDateString():"—"})]})]}),c.jsxs("div",{className:"flex gap-3 mt-3",children:[c.jsx("button",{onClick:P,className:"btn btn-s text-xs",children:"Test Auth"}),c.jsx("button",{onClick:O,className:`btn btn-s text-xs ${v==="ok"?"text-green-400 border-green-500/30":""}`,children:v==="testing"?"...":v==="ok"?"CLOB OK":"Test CLOB"}),c.jsx("button",{onClick:N,className:"btn text-xs text-red-400 hover:text-red-300 border border-red-500/30 hover:border-red-500/50",children:"Disconnect"})]})]}),p!=="connected"&&c.jsxs("div",{className:"space-y-3",children:[c.jsxs("div",{className:"bg-gray-800/40 rounded-lg p-4",children:[c.jsxs("p",{className:"text-xs text-gray-400 mb-3",children:["Get your Builder API keys from"," ",c.jsx("span",{className:"text-purple-400 font-mono",children:"polymarket.com/settings"})," ","→ Builder tab → Create New"]}),c.jsxs("div",{className:"space-y-2.5",children:[c.jsxs("div",{children:[c.jsx("label",{className:"text-[11px] text-gray-500 mb-1 block",children:"API Key"}),c.jsx("input",{type:"text",value:r,onChange:C=>n(C.target.value),placeholder:"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",className:"w-full bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 text-sm font-mono focus:outline-none focus:border-purple-500 transition"})]}),c.jsxs("div",{children:[c.jsx("label",{className:"text-[11px] text-gray-500 mb-1 block",children:"API Secret"}),c.jsxs("div",{className:"relative",children:[c.jsx("input",{type:f?"text":"password",value:i,onChange:C=>a(C.target.value),placeholder:"Base64 encoded secret",className:"w-full bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 pr-10 text-sm font-mono focus:outline-none focus:border-purple-500 transition"}),c.jsx("button",{type:"button",onClick:()=>d(!f),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-500 hover:text-gray-300",children:c.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:f?"M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.878 9.878L3 3m6.878 6.879L21 21":"M15 12a3 3 0 11-6 0 3 3 0 016 0z M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"})})})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"text-[11px] text-gray-500 mb-1 block",children:"Passphrase"}),c.jsx("input",{type:"password",value:o,onChange:C=>s(C.target.value),placeholder:"Passphrase",className:"w-full bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 text-sm font-mono focus:outline-none focus:border-purple-500 transition"})]}),c.jsxs("div",{children:[c.jsxs("label",{className:"text-[11px] text-gray-500 mb-1 block",children:["Wallet Address ",c.jsx("span",{className:"text-gray-600",children:"(optional)"})]}),c.jsx("input",{type:"text",value:l,onChange:C=>u(C.target.value),placeholder:"0x...",className:"w-full bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 text-sm font-mono focus:outline-none focus:border-purple-500 transition"})]})]})]}),c.jsxs("div",{className:"flex gap-3",children:[c.jsxs("button",{onClick:_,disabled:!r||!i||!o||p==="saving",className:"btn btn-p flex items-center gap-2 disabled:opacity-50",children:[p==="saving"&&c.jsx("span",{className:"animate-spin w-4 h-4 border-2 border-white border-t-transparent rounded-full"}),p==="saving"?"Saving...":"Connect"]}),c.jsx("button",{onClick:O,className:`btn btn-s ${v==="ok"?"text-green-400 border-green-500/30":""}`,children:v==="testing"?"...":v==="ok"?"CLOB Reachable":"Test CLOB"})]})]}),x&&c.jsx("div",{className:`mt-3 text-sm p-3 rounded-lg ${x.toLowerCase().includes("error")||x.toLowerCase().includes("fail")?"bg-red-500/10 text-red-400":"bg-green-500/10 text-green-400"}`,children:x}),c.jsxs("div",{className:"mt-5 pt-4 border-t border-gray-800/50",children:[c.jsx("p",{className:"text-xs text-gray-500 mb-3 font-medium uppercase tracking-wider",children:"API Endpoints"}),c.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-2 text-xs",children:[{tag:"CLOB",color:"purple",host:"clob.polymarket.com",desc:"Orders & trading"},{tag:"GAMMA",color:"blue",host:"gamma-api.polymarket.com",desc:"Market metadata"},{tag:"DATA",color:"green",host:"data-api.polymarket.com",desc:"User positions"},{tag:"WS",color:"yellow",host:"ws-subscriptions-clob...",desc:"Live orderbook"}].map(C=>c.jsxs("div",{className:"bg-gray-800/30 rounded-lg p-2.5",children:[c.jsx("span",{className:`inline-block px-1.5 py-0.5 rounded bg-${C.color}-500/20 text-${C.color}-400 font-mono text-[10px] mb-1`,children:C.tag}),c.jsx("p",{className:"text-gray-400 font-mono text-[11px]",children:C.host}),c.jsx("p",{className:"text-gray-600 mt-0.5",children:C.desc})]},C.tag))}),c.jsxs("div",{className:"mt-3 text-[11px] text-gray-600",children:[c.jsx("span",{className:"text-gray-500",children:"Auth:"})," L2 HMAC-SHA256 — API Key + Secret + Passphrase per request"]})]})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"System Status"}),c.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3",children:[{l:"Database",s:e==null?void 0:e.db_connected,d:"PostgreSQL bertha_betting"},{l:"NWS API",s:S.nws||"unknown",d:"api.weather.gov"},{l:"Polymarket",s:p==="connected"?!0:v||"unknown",d:"clob.polymarket.com"},{l:"Slack",s:e!=null&&e.slack_configured?"ok":S.slack||"no_token",d:"Alerts channel"}].map(C=>c.jsxs("div",{className:"bg-gray-800/30 rounded-lg p-3",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[c.jsx("span",{className:`w-2 h-2 rounded-full ${L(C.s)}`}),c.jsx("span",{className:"text-sm font-medium",children:C.l})]}),c.jsx("p",{className:"text-xs text-gray-500",children:C.d})]},C.l))})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Connectivity Tests"}),c.jsxs("div",{className:"flex gap-3",children:[c.jsx("button",{onClick:$,className:`btn ${S.nws==="ok"?"btn-s":"btn-p"}`,children:S.nws==="testing"?"...":S.nws==="ok"?"NWS OK":"Test NWS"}),c.jsx("button",{onClick:O,className:`btn ${v==="ok"?"btn-s":"btn-p"}`,children:v==="testing"?"...":v==="ok"?"CLOB OK":"Test CLOB"}),c.jsx("button",{onClick:I,className:`btn ${S.slack==="ok"?"btn-s":"btn-p"}`,children:S.slack==="testing"?"...":S.slack==="ok"?"Slack OK":"Test Slack"})]})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Manual Workers"}),c.jsx("div",{className:"flex flex-wrap gap-3",children:[{w:"market_ingest",l:"Ingest Markets"},{w:"weather_fetch",l:"Fetch Weather"},{w:"run_predictions",l:"Run Predictions"},{w:"risk_scan",l:"Risk Scan"},{w:"paper_trade",l:"Paper Trade"}].map(({w:C,l:F})=>c.jsx("button",{onClick:()=>D(C),className:`btn ${S[C]==="ok"?"btn-s":"btn-p"}`,children:S[C]==="ok"?`${F} Done`:F},C))})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Architecture"}),c.jsxs("div",{className:"grid grid-cols-2 gap-4 text-sm",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-gray-500 text-xs uppercase mb-2",children:"Data Sources"}),c.jsxs("ul",{className:"space-y-1",children:[c.jsxs("li",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"badge bg-blue",children:"NWS"}),"Live US forecasts"]}),c.jsxs("li",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"badge bg-purple",children:"GEFS"}),"Ensembles"]}),c.jsxs("li",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"badge bg-green",children:"Gamma"}),"Polymarket"]}),c.jsxs("li",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"badge bg-yellow",children:"CLOB"}),"Orderbooks"]})]})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-gray-500 text-xs uppercase mb-2",children:"Pipeline"}),c.jsxs("ol",{className:"space-y-1 list-decimal list-inside text-gray-300",children:[c.jsx("li",{children:"Market parse + event extraction"}),c.jsx("li",{children:"Ensemble exceedance probability"}),c.jsx("li",{children:"Climatological prior"}),c.jsx("li",{children:"Bayesian calibration"}),c.jsx("li",{children:"Edge gate + risk sizing"}),c.jsx("li",{children:"Paper/live execution"})]})]})]})]})]})}function YZ(){const[e,t]=A.useState(null),[r,n]=A.useState(null),[i,a]=A.useState([]),[o,s]=A.useState([]),[l,u]=A.useState(null),[f,d]=A.useState(null),[p,h]=A.useState(!0),[m,g]=A.useState(!1),[x,y]=A.useState(!1);A.useEffect(()=>{v()},[]);async function v(){h(!0);try{const[P,N]=await Promise.all([ie("/polymarket",{action:"status"}),tt("/markets")]);t(P),a(N.markets||[])}catch{}h(!1)}async function b(){n("testing");try{const P=await ie("/polymarket",{action:"test_public"});n(P.success?P:{error:!0})}catch{n({error:!0})}}async function S(){g(!0);try{const P=await ie("/polymarket",{action:"get_markets"});P.success&&s(P.tracked_prices||[])}catch{}g(!1)}async function w(P){u(P),y(!0),d(null);try{const N=await ie("/polymarket",{action:"get_orderbook",token_id:P});N.success&&d(N.orderbook)}catch{}y(!1)}const j=P=>P?"bg-green-500":"bg-gray-600",O=[];if(f){const P=(f.bids||[]).slice(0,10).map(T=>({price:parseFloat(T.price),size:parseFloat(T.size),side:"bid"})),N=(f.asks||[]).slice(0,10).map(T=>({price:parseFloat(T.price),size:parseFloat(T.size),side:"ask"}));P.reverse().forEach(T=>O.push(T)),N.forEach(T=>O.push(T))}const _=o.map(P=>({name:(P.question||"").substring(0,30)+"...",price:parseFloat(P.price||0),outcome:P.outcome}));return p?c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"animate-spin w-8 h-8 border-2 border-purple-500 border-t-transparent rounded-full"})}):c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold",children:"Polymarket"}),c.jsx("p",{className:"text-gray-500 text-sm",children:"Live CLOB data, orderbooks & market prices"})]}),c.jsxs("div",{className:"flex gap-3",children:[c.jsx("button",{onClick:b,className:`btn btn-s text-sm ${r!=null&&r.ok?"text-green-400 border-green-500/30":""}`,children:r==="testing"?"Testing...":r!=null&&r.ok?"CLOB OK":r!=null&&r.error?"Error":"Test CLOB"}),c.jsx("button",{onClick:S,disabled:m,className:"btn btn-p text-sm",children:m?"Fetching...":"Fetch Live Prices"})]})]}),c.jsx("div",{className:"card",children:c.jsxs("div",{className:"flex items-center gap-6",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:`w-2 h-2 rounded-full ${j(e==null?void 0:e.connected)}`}),c.jsx("span",{className:"text-sm",children:e!=null&&e.connected?"API Connected":"Not Connected"})]}),(e==null?void 0:e.api_key)&&c.jsxs("span",{className:"text-xs text-gray-500 font-mono",children:["Key: ",e.api_key]}),(e==null?void 0:e.wallet)&&c.jsxs("span",{className:"text-xs text-gray-500 font-mono",children:["Wallet: ",e.wallet]}),(r==null?void 0:r.server_time)&&c.jsxs("span",{className:"text-xs text-gray-500",children:["Server: ",new Date(parseInt(r.server_time)*1e3).toLocaleTimeString()]}),c.jsxs("span",{className:"text-xs text-gray-500 ml-auto",children:[i.length," tracked markets"]})]})}),c.jsxs("div",{className:"grid grid-cols-4 gap-4",children:[c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Tracked Markets"}),c.jsx("p",{className:"stat-v text-purple-400",children:i.length})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Active"}),c.jsx("p",{className:"stat-v text-green-400",children:i.filter(P=>P.active).length})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"Live Prices"}),c.jsx("p",{className:"stat-v text-blue-400",children:o.length})]}),c.jsxs("div",{className:"card",children:[c.jsx("p",{className:"text-xs text-gray-500 uppercase mb-1",children:"API Status"}),c.jsx("p",{className:`stat-v ${e!=null&&e.connected?"text-green-400":"text-gray-500"}`,children:e!=null&&e.connected?"LIVE":"OFF"})]})]}),_.length>0&&c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"Live Token Prices"}),c.jsx(pt,{width:"100%",height:250,children:c.jsxs(zn,{data:_,layout:"vertical",children:[c.jsx(ht,{strokeDasharray:"3 3",stroke:"#1f2937"}),c.jsx(Re,{type:"number",domain:[0,1],tickFormatter:P=>`${(P*100).toFixed(0)}%`,stroke:"#6b7280"}),c.jsx(Be,{type:"category",dataKey:"name",width:200,tick:{fontSize:11,fill:"#9ca3af"}}),c.jsx(Se,{formatter:P=>`${(P*100).toFixed(1)}%`,contentStyle:{background:"#1f2937",border:"1px solid #374151",borderRadius:8}}),c.jsx(Tt,{dataKey:"price",radius:[0,4,4,0],children:_.map((P,N)=>c.jsx(jr,{fill:P.outcome==="YES"?"#22c55e":"#ef4444",fillOpacity:.7},N))})]})})]}),c.jsxs("div",{className:"card overflow-x-auto",children:[c.jsxs("div",{className:"flex items-center justify-between mb-3",children:[c.jsx("h2",{className:"font-semibold",children:"Weather Markets"}),c.jsxs("span",{className:"text-xs text-gray-500",children:[i.length," markets"]})]}),c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Question"}),c.jsx("th",{children:"Category"}),c.jsx("th",{children:"Liquidity"}),c.jsx("th",{children:"End Date"}),c.jsx("th",{children:"Live Price"}),c.jsx("th",{children:"Orderbook"})]})}),c.jsx("tbody",{children:i.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:6,className:"text-center text-gray-500 py-8",children:"No markets tracked. Go to Markets page to ingest."})}):i.map(P=>{var T,$;const N=o.find(I=>I.condition_id===P.condition_id);return c.jsxs("tr",{children:[c.jsxs("td",{className:"max-w-[300px]",children:[c.jsx("p",{className:"truncate font-medium",children:P.question}),c.jsxs("p",{className:"text-xs text-gray-600 truncate font-mono",children:[(T=P.condition_id)==null?void 0:T.substring(0,12),"..."]})]}),c.jsx("td",{children:c.jsx("span",{className:"badge bg-purple",children:P.category||"weather"})}),c.jsxs("td",{className:"font-mono text-sm",children:["$",parseFloat(P.liquidity||0).toFixed(0)]}),c.jsx("td",{className:"text-gray-400 text-sm",children:P.end_ts?new Date(P.end_ts).toLocaleDateString():"-"}),c.jsx("td",{children:N?c.jsxs("span",{className:"font-mono text-green-400 font-medium",children:[(parseFloat(N.price)*100).toFixed(1),"%"]}):c.jsx("span",{className:"text-gray-600 text-xs",children:"—"})}),c.jsx("td",{children:(($=P.tokens)==null?void 0:$.length)>0||N!=null&&N.token_id?c.jsx("button",{onClick:()=>{var I,D;return w((N==null?void 0:N.token_id)||((D=(I=P.tokens)==null?void 0:I[0])==null?void 0:D.token_id))},className:"text-xs text-purple-400 hover:text-purple-300",children:"View"}):c.jsx("span",{className:"text-gray-600 text-xs",children:"—"})})]},P.condition_id)})})]})]}),(f||x)&&c.jsxs("div",{className:"card",children:[c.jsxs("div",{className:"flex items-center justify-between mb-4",children:[c.jsx("h2",{className:"font-semibold",children:"Orderbook"}),c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsxs("span",{className:"text-xs text-gray-500 font-mono",children:[l==null?void 0:l.substring(0,12),"..."]}),c.jsx("button",{onClick:()=>{d(null),u(null)},className:"text-xs text-gray-500 hover:text-gray-300",children:"Close"})]})]}),x?c.jsx("div",{className:"flex items-center justify-center h-32",children:c.jsx("div",{className:"animate-spin w-6 h-6 border-2 border-purple-500 border-t-transparent rounded-full"})}):f?c.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[c.jsxs("div",{children:[c.jsx("h3",{className:"text-sm font-medium text-green-400 mb-2",children:"Bids (Buy Orders)"}),c.jsxs("div",{className:"space-y-1",children:[c.jsxs("div",{className:"flex justify-between text-[10px] text-gray-500 uppercase px-2",children:[c.jsx("span",{children:"Price"}),c.jsx("span",{children:"Size"})]}),(f.bids||[]).slice(0,12).map((P,N)=>c.jsxs("div",{className:"flex justify-between text-sm px-2 py-1 rounded relative overflow-hidden",children:[c.jsx("div",{className:"absolute inset-0 bg-green-500/10",style:{width:`${Math.min(parseFloat(P.size)*10,100)}%`}}),c.jsx("span",{className:"font-mono text-green-400 relative z-10",children:parseFloat(P.price).toFixed(3)}),c.jsx("span",{className:"font-mono text-gray-400 relative z-10",children:parseFloat(P.size).toFixed(1)})]},N)),(!f.bids||f.bids.length===0)&&c.jsx("p",{className:"text-gray-600 text-xs text-center py-4",children:"No bids"})]})]}),c.jsxs("div",{children:[c.jsx("h3",{className:"text-sm font-medium text-red-400 mb-2",children:"Asks (Sell Orders)"}),c.jsxs("div",{className:"space-y-1",children:[c.jsxs("div",{className:"flex justify-between text-[10px] text-gray-500 uppercase px-2",children:[c.jsx("span",{children:"Price"}),c.jsx("span",{children:"Size"})]}),(f.asks||[]).slice(0,12).map((P,N)=>c.jsxs("div",{className:"flex justify-between text-sm px-2 py-1 rounded relative overflow-hidden",children:[c.jsx("div",{className:"absolute inset-0 bg-red-500/10 right-0",style:{width:`${Math.min(parseFloat(P.size)*10,100)}%`}}),c.jsx("span",{className:"font-mono text-red-400 relative z-10",children:parseFloat(P.price).toFixed(3)}),c.jsx("span",{className:"font-mono text-gray-400 relative z-10",children:parseFloat(P.size).toFixed(1)})]},N)),(!f.asks||f.asks.length===0)&&c.jsx("p",{className:"text-gray-600 text-xs text-center py-4",children:"No asks"})]})]})]}):null,O.length>0&&c.jsxs("div",{className:"mt-4 pt-4 border-t border-gray-800",children:[c.jsx("h3",{className:"text-sm font-medium text-gray-400 mb-2",children:"Depth Chart"}),c.jsx(pt,{width:"100%",height:200,children:c.jsxs(zn,{data:O,children:[c.jsx(ht,{strokeDasharray:"3 3",stroke:"#1f2937"}),c.jsx(Re,{dataKey:"price",tickFormatter:P=>P.toFixed(2),stroke:"#6b7280"}),c.jsx(Be,{stroke:"#6b7280"}),c.jsx(Se,{formatter:P=>P.toFixed(2),contentStyle:{background:"#1f2937",border:"1px solid #374151",borderRadius:8}}),c.jsx(Tt,{dataKey:"size",radius:[4,4,0,0],children:O.map((P,N)=>c.jsx(jr,{fill:P.side==="bid"?"#22c55e":"#ef4444",fillOpacity:.6},N))})]})})]})]}),c.jsxs("div",{className:"card",children:[c.jsx("h2",{className:"font-semibold mb-3",children:"CLOB Quick Reference"}),c.jsxs("div",{className:"grid grid-cols-3 gap-4 text-sm",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-gray-500 text-xs uppercase mb-2",children:"Public Endpoints"}),c.jsxs("ul",{className:"space-y-1 text-gray-400 text-xs font-mono",children:[c.jsx("li",{children:"/ok — Health check"}),c.jsx("li",{children:"/time — Server time"}),c.jsx("li",{children:"/book?token_id=X — Orderbook"}),c.jsx("li",{children:"/price?token_id=X — Best price"}),c.jsx("li",{children:"/midpoint?token_id=X — Mid price"}),c.jsx("li",{children:"/spread?token_id=X — Bid-ask spread"})]})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-gray-500 text-xs uppercase mb-2",children:"Auth Endpoints"}),c.jsxs("ul",{className:"space-y-1 text-gray-400 text-xs font-mono",children:[c.jsx("li",{children:"POST /order — Place order"}),c.jsx("li",{children:"DELETE /order — Cancel order"}),c.jsx("li",{children:"POST /orders — Batch orders"}),c.jsx("li",{children:"GET /data/trades — User trades"}),c.jsx("li",{children:"GET /data/orders — User orders"})]})]}),c.jsxs("div",{children:[c.jsx("p",{className:"text-gray-500 text-xs uppercase mb-2",children:"Trading Notes"}),c.jsxs("ul",{className:"space-y-1 text-gray-400 text-xs",children:[c.jsx("li",{children:"Chain: Polygon (137)"}),c.jsx("li",{children:"Collateral: USDC (6 decimals)"}),c.jsx("li",{children:"Conditional: 6 decimals"}),c.jsx("li",{children:"Min order: varies per market"}),c.jsx("li",{children:"Paper mode: no real funds needed"})]})]})]})]})]})}function QZ(){return c.jsx(a$,{children:c.jsxs(ZN,{children:[c.jsx(Mt,{path:"/login",element:c.jsx(m$,{})}),c.jsx(Mt,{path:"/setup",element:c.jsx(k$,{})}),c.jsxs(Mt,{path:"/",element:c.jsx(y$,{}),children:[c.jsx(Mt,{index:!0,element:c.jsx(FZ,{})}),c.jsx(Mt,{path:"markets",element:c.jsx(zZ,{})}),c.jsx(Mt,{path:"polymarket",element:c.jsx(YZ,{})}),c.jsx(Mt,{path:"weather",element:c.jsx(UZ,{})}),c.jsx(Mt,{path:"models",element:c.jsx(HZ,{})}),c.jsx(Mt,{path:"risk",element:c.jsx(VZ,{})}),c.jsx(Mt,{path:"trades",element:c.jsx(GZ,{})}),c.jsx(Mt,{path:"bankroll",element:c.jsx(qZ,{})}),c.jsx(Mt,{path:"settings",element:c.jsx(XZ,{})})]})]})})}fp.createRoot(document.getElementById("root")).render(c.jsx(QZ,{}));
diff --git a/react-dash/dist/assets/index-X3aldCwL.css b/react-dash/dist/assets/index-X3aldCwL.css
new file mode 100644
index 0000000..d7882ce
--- /dev/null
+++ b/react-dash/dist/assets/index-X3aldCwL.css
@@ -0,0 +1 @@
+*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.-top-2{top:-.5rem}.left-0\.5{left:.125rem}.left-1{left:.25rem}.left-6{left:1.5rem}.right-0{right:0}.right-2{right:.5rem}.right-3{right:.75rem}.top-0\.5{top:.125rem}.top-1{top:.25rem}.top-1\/2{top:50%}.z-10{z-index:10}.mx-auto{margin-left:auto;margin-right:auto}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-8{margin-bottom:2rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.max-h-48{max-height:12rem}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-\[140px\]{max-width:140px}.max-w-\[1600px\]{max-width:1600px}.max-w-\[180px\]{max-width:180px}.max-w-\[200px\]{max-width:200px}.max-w-\[300px\]{max-width:300px}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-blue-500\/50{border-color:#3b82f680}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-gray-800\/50{border-color:#1f293780}.border-green-500{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.border-green-500\/20{border-color:#22c55e33}.border-green-500\/30{border-color:#22c55e4d}.border-purple-500{--tw-border-opacity: 1;border-color:rgb(168 85 247 / var(--tw-border-opacity, 1))}.border-purple-500\/20{border-color:#a855f733}.border-red-500\/20{border-color:#ef444433}.border-red-500\/30{border-color:#ef44444d}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-yellow-500\/20{border-color:#eab30833}.border-t-transparent{border-top-color:transparent}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/15{background-color:#3b82f626}.bg-blue-500\/20{background-color:#3b82f633}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-800\/20{background-color:#1f293733}.bg-gray-800\/30{background-color:#1f29374d}.bg-gray-800\/40{background-color:#1f293766}.bg-gray-800\/50{background-color:#1f293780}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-gray-900\/50{background-color:#11182780}.bg-green-400{--tw-bg-opacity: 1;background-color:rgb(74 222 128 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-500\/30{background-color:#22c55e4d}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-purple-500\/20{background-color:#a855f733}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-400{--tw-bg-opacity: 1;background-color:rgb(250 204 21 / var(--tw-bg-opacity, 1))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-yellow-500\/10{background-color:#eab3081a}.bg-yellow-500\/30{background-color:#eab3084d}.bg-yellow-500\/5{background-color:#eab3080d}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-400{--tw-gradient-from: #60a5fa var(--tw-gradient-from-position);--tw-gradient-to: rgb(96 165 250 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-purple-400{--tw-gradient-to: #c084fc var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.\!p-3{padding:.75rem!important}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pr-10{padding-right:2.5rem}.pr-16{padding-right:4rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[9px\]{font-size:9px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.opacity-50{opacity:.5}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}:root{--bg: #0a0e1a;--card: #111827;--border: #1e293b}body{background:var(--bg);color:#e2e8f0;font-family:Inter,sans-serif;margin:0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#374151;border-radius:3px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.25rem}.stat-v{font-size:1.75rem;font-weight:700;line-height:1}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:9999px;font-size:.75rem;font-weight:600}.bg-green{background:#10b98126;color:#10b981}.bg-red{background:#ef444426;color:#ef4444}.bg-yellow{background:#f59e0b26;color:#f59e0b}.bg-blue{background:#3b82f626;color:#3b82f6}.bg-purple{background:#8b5cf626;color:#8b5cf6}.pulse-g{animation:pg 2s infinite}@keyframes pg{0%,to{box-shadow:0 0 #10b98166}50%{box-shadow:0 0 0 6px #10b98100}}.btn{padding:.5rem 1rem;border-radius:8px;font-weight:600;font-size:.875rem;cursor:pointer;border:none;transition:all .15s}.btn-p{background:#3b82f6;color:#fff}.btn-p:hover{background:#2563eb}.btn-d{background:#ef4444;color:#fff}.btn-d:hover{background:#dc2626}.btn-s{background:#10b981;color:#fff}.btn-s:hover{background:#059669}table{width:100%;border-collapse:collapse}th{text-align:left;padding:.75rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b;border-bottom:1px solid var(--border)}td{padding:.75rem;border-bottom:1px solid rgba(30,41,59,.5);font-size:.85rem}tr:hover td{background:#3b82f608}.step-enter{opacity:0;transform:translate(24px)}.step-active{opacity:1;transform:translate(0);transition:opacity .35s ease,transform .35s ease}.step-exit{opacity:0;transform:translate(-24px);transition:opacity .2s ease,transform .2s ease}@keyframes pulse-blue{0%,to{box-shadow:0 0 #3b82f666}50%{box-shadow:0 0 0 8px #3b82f600}}.step-active-pulse{animation:pulse-blue 2s infinite}.stepper-line{height:2px;flex:1;background:#1e293b;transition:background .3s}.stepper-line.done{background:#22c55e}.wizard-gradient{background:linear-gradient(135deg,#3b82f6,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.wizard-btn{background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;padding:.75rem 2rem;border-radius:10px;font-weight:700;font-size:1rem;border:none;cursor:pointer;transition:all .2s}.wizard-btn:hover{transform:translateY(-1px);box-shadow:0 4px 20px #3b82f64d}.wizard-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.hover\:border-blue-500\/30:hover{border-color:#3b82f64d}.hover\:border-gray-700:hover{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.hover\:border-green-500\/30:hover{border-color:#22c55e4d}.hover\:border-purple-500\/30:hover{border-color:#a855f74d}.hover\:border-red-500\/50:hover{border-color:#ef444480}.hover\:bg-gray-800\/40:hover{background-color:#1f293766}.hover\:bg-gray-800\/50:hover{background-color:#1f293780}.hover\:text-blue-300:hover{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.hover\:text-gray-200:hover{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.hover\:text-gray-300:hover{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.hover\:text-purple-300:hover{--tw-text-opacity: 1;color:rgb(216 180 254 / var(--tw-text-opacity, 1))}.hover\:text-red-300:hover{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:border-purple-500:focus{--tw-border-opacity: 1;border-color:rgb(168 85 247 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
diff --git a/react-dash/dist/index.html b/react-dash/dist/index.html
new file mode 100644
index 0000000..35a327b
--- /dev/null
+++ b/react-dash/dist/index.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <title>Bertha - Weather Micro-Betting Dashboard</title>
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />
+ <script type="module" crossorigin src="/assets/index-DCWex4nn.js"></script>
+ <link rel="stylesheet" crossorigin href="/assets/index-X3aldCwL.css">
+</head>
+<body>
+ <div id="root"></div>
+</body>
+</html>
diff --git a/react-dash/index.html b/react-dash/index.html
new file mode 100644
index 0000000..a67d3a2
--- /dev/null
+++ b/react-dash/index.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <title>Bertha - Weather Micro-Betting Dashboard</title>
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />
+</head>
+<body>
+ <div id="root"></div>
+ <script type="module" src="/src/main.jsx"></script>
+</body>
+</html>
diff --git a/react-dash/package-lock.json b/react-dash/package-lock.json
new file mode 100644
index 0000000..3d4809f
--- /dev/null
+++ b/react-dash/package-lock.json
@@ -0,0 +1,5100 @@
+{
+ "name": "bertha-react-dash",
+ "version": "1.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "bertha-react-dash",
+ "version": "1.0.0",
+ "dependencies": {
+ "@polymarket/clob-client": "^5.2.1",
+ "ethers": "^5.8.0",
+ "google-auth-library": "^10.5.0",
+ "pg": "^8.18.0",
+ "react": "^18.3.0",
+ "react-dom": "^18.3.0",
+ "react-router-dom": "^6.28.0",
+ "recharts": "^2.15.0"
+ },
+ "devDependencies": {
+ "@vitejs/plugin-react": "^4.3.0",
+ "autoprefixer": "^10.4.20",
+ "postcss": "^8.4.49",
+ "tailwindcss": "^3.4.17",
+ "vite": "^5.4.0"
+ }
+ },
+ "node_modules/@adraffy/ens-normalize": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.1.tgz",
+ "integrity": "sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==",
+ "license": "MIT"
+ },
+ "node_modules/@alloc/quick-lru": {
+ "version": "5.2.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
+ "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz",
+ "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
+ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helpers": "^7.28.6",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/remapping": "^2.3.5",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/core/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.29.1",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
+ "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/gen-mapping": "^0.3.12",
+ "@jridgewell/trace-mapping": "^0.3.28",
+ "jsesc": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
+ "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.28.6",
+ "@babel/helper-validator-option": "^7.27.1",
+ "browserslist": "^4.24.0",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-globals": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
+ "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
+ "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "@babel/traverse": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
+ "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz",
+ "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz",
+ "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.29.0"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-self": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",
+ "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-source": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",
+ "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.28.6",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
+ "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.28.6",
+ "@babel/parser": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
+ "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-globals": "^7.28.0",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0",
+ "debug": "^4.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
+ "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.28.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
+ "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
+ "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
+ "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
+ "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
+ "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
+ "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
+ "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
+ "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
+ "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
+ "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
+ "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
+ "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
+ "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
+ "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
+ "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
+ "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
+ "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
+ "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@ethersproject/abi": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.8.0.tgz",
+ "integrity": "sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/address": "^5.8.0",
+ "@ethersproject/bignumber": "^5.8.0",
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/constants": "^5.8.0",
+ "@ethersproject/hash": "^5.8.0",
+ "@ethersproject/keccak256": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0",
+ "@ethersproject/properties": "^5.8.0",
+ "@ethersproject/strings": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/abstract-provider": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.8.0.tgz",
+ "integrity": "sha512-wC9SFcmh4UK0oKuLJQItoQdzS/qZ51EJegK6EmAWlh+OptpQ/npECOR3QqECd8iGHC0RJb4WKbVdSfif4ammrg==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bignumber": "^5.8.0",
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0",
+ "@ethersproject/networks": "^5.8.0",
+ "@ethersproject/properties": "^5.8.0",
+ "@ethersproject/transactions": "^5.8.0",
+ "@ethersproject/web": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/abstract-signer": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.8.0.tgz",
+ "integrity": "sha512-N0XhZTswXcmIZQdYtUnd79VJzvEwXQw6PK0dTl9VoYrEBxxCPXqS0Eod7q5TNKRxe1/5WUMuR0u0nqTF/avdCA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/abstract-provider": "^5.8.0",
+ "@ethersproject/bignumber": "^5.8.0",
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0",
+ "@ethersproject/properties": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/address": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.8.0.tgz",
+ "integrity": "sha512-GhH/abcC46LJwshoN+uBNoKVFPxUuZm6dA257z0vZkKmU1+t8xTn8oK7B9qrj8W2rFRMch4gbJl6PmVxjxBEBA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bignumber": "^5.8.0",
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/keccak256": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0",
+ "@ethersproject/rlp": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/base64": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.8.0.tgz",
+ "integrity": "sha512-lN0oIwfkYj9LbPx4xEkie6rAMJtySbpOAFXSDVQaBnAzYfB4X2Qr+FXJGxMoc3Bxp2Sm8OwvzMrywxyw0gLjIQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/basex": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.8.0.tgz",
+ "integrity": "sha512-PIgTszMlDRmNwW9nhS6iqtVfdTAKosA7llYXNmGPw4YAI1PUyMv28988wAb41/gHF/WqGdoLv0erHaRcHRKW2Q==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/properties": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/bignumber": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.8.0.tgz",
+ "integrity": "sha512-ZyaT24bHaSeJon2tGPKIiHszWjD/54Sz8t57Toch475lCLljC6MgPmxk7Gtzz+ddNN5LuHea9qhAe0x3D+uYPA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0",
+ "bn.js": "^5.2.1"
+ }
+ },
+ "node_modules/@ethersproject/bytes": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.8.0.tgz",
+ "integrity": "sha512-vTkeohgJVCPVHu5c25XWaWQOZ4v+DkGoC42/TS2ond+PARCxTJvgTFUNDZovyQ/uAQ4EcpqqowKydcdmRKjg7A==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/logger": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/constants": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.8.0.tgz",
+ "integrity": "sha512-wigX4lrf5Vu+axVTIvNsuL6YrV4O5AXl5ubcURKMEME5TnWBouUh0CDTWxZ2GpnRn1kcCgE7l8O5+VbV9QTTcg==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bignumber": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/contracts": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.8.0.tgz",
+ "integrity": "sha512-0eFjGz9GtuAi6MZwhb4uvUM216F38xiuR0yYCjKJpNfSEy4HUM8hvqqBj9Jmm0IUz8l0xKEhWwLIhPgxNY0yvQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/abi": "^5.8.0",
+ "@ethersproject/abstract-provider": "^5.8.0",
+ "@ethersproject/abstract-signer": "^5.8.0",
+ "@ethersproject/address": "^5.8.0",
+ "@ethersproject/bignumber": "^5.8.0",
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/constants": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0",
+ "@ethersproject/properties": "^5.8.0",
+ "@ethersproject/transactions": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/hash": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.8.0.tgz",
+ "integrity": "sha512-ac/lBcTbEWW/VGJij0CNSw/wPcw9bSRgCB0AIBz8CvED/jfvDoV9hsIIiWfvWmFEi8RcXtlNwp2jv6ozWOsooA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/abstract-signer": "^5.8.0",
+ "@ethersproject/address": "^5.8.0",
+ "@ethersproject/base64": "^5.8.0",
+ "@ethersproject/bignumber": "^5.8.0",
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/keccak256": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0",
+ "@ethersproject/properties": "^5.8.0",
+ "@ethersproject/strings": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/hdnode": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.8.0.tgz",
+ "integrity": "sha512-4bK1VF6E83/3/Im0ERnnUeWOY3P1BZml4ZD3wcH8Ys0/d1h1xaFt6Zc+Dh9zXf9TapGro0T4wvO71UTCp3/uoA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/abstract-signer": "^5.8.0",
+ "@ethersproject/basex": "^5.8.0",
+ "@ethersproject/bignumber": "^5.8.0",
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0",
+ "@ethersproject/pbkdf2": "^5.8.0",
+ "@ethersproject/properties": "^5.8.0",
+ "@ethersproject/sha2": "^5.8.0",
+ "@ethersproject/signing-key": "^5.8.0",
+ "@ethersproject/strings": "^5.8.0",
+ "@ethersproject/transactions": "^5.8.0",
+ "@ethersproject/wordlists": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/json-wallets": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.8.0.tgz",
+ "integrity": "sha512-HxblNck8FVUtNxS3VTEYJAcwiKYsBIF77W15HufqlBF9gGfhmYOJtYZp8fSDZtn9y5EaXTE87zDwzxRoTFk11w==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/abstract-signer": "^5.8.0",
+ "@ethersproject/address": "^5.8.0",
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/hdnode": "^5.8.0",
+ "@ethersproject/keccak256": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0",
+ "@ethersproject/pbkdf2": "^5.8.0",
+ "@ethersproject/properties": "^5.8.0",
+ "@ethersproject/random": "^5.8.0",
+ "@ethersproject/strings": "^5.8.0",
+ "@ethersproject/transactions": "^5.8.0",
+ "aes-js": "3.0.0",
+ "scrypt-js": "3.0.1"
+ }
+ },
+ "node_modules/@ethersproject/keccak256": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.8.0.tgz",
+ "integrity": "sha512-A1pkKLZSz8pDaQ1ftutZoaN46I6+jvuqugx5KYNeQOPqq+JZ0Txm7dlWesCHB5cndJSu5vP2VKptKf7cksERng==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.8.0",
+ "js-sha3": "0.8.0"
+ }
+ },
+ "node_modules/@ethersproject/logger": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.8.0.tgz",
+ "integrity": "sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/@ethersproject/networks": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.8.0.tgz",
+ "integrity": "sha512-egPJh3aPVAzbHwq8DD7Po53J4OUSsA1MjQp8Vf/OZPav5rlmWUaFLiq8cvQiGK0Z5K6LYzm29+VA/p4RL1FzNg==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/logger": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/pbkdf2": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.8.0.tgz",
+ "integrity": "sha512-wuHiv97BrzCmfEaPbUFpMjlVg/IDkZThp9Ri88BpjRleg4iePJaj2SW8AIyE8cXn5V1tuAaMj6lzvsGJkGWskg==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/sha2": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/properties": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.8.0.tgz",
+ "integrity": "sha512-PYuiEoQ+FMaZZNGrStmN7+lWjlsoufGIHdww7454FIaGdbe/p5rnaCXTr5MtBYl3NkeoVhHZuyzChPeGeKIpQw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/logger": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/providers": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.8.0.tgz",
+ "integrity": "sha512-3Il3oTzEx3o6kzcg9ZzbE+oCZYyY+3Zh83sKkn4s1DZfTUjIegHnN2Cm0kbn9YFy45FDVcuCLLONhU7ny0SsCw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/abstract-provider": "^5.8.0",
+ "@ethersproject/abstract-signer": "^5.8.0",
+ "@ethersproject/address": "^5.8.0",
+ "@ethersproject/base64": "^5.8.0",
+ "@ethersproject/basex": "^5.8.0",
+ "@ethersproject/bignumber": "^5.8.0",
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/constants": "^5.8.0",
+ "@ethersproject/hash": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0",
+ "@ethersproject/networks": "^5.8.0",
+ "@ethersproject/properties": "^5.8.0",
+ "@ethersproject/random": "^5.8.0",
+ "@ethersproject/rlp": "^5.8.0",
+ "@ethersproject/sha2": "^5.8.0",
+ "@ethersproject/strings": "^5.8.0",
+ "@ethersproject/transactions": "^5.8.0",
+ "@ethersproject/web": "^5.8.0",
+ "bech32": "1.1.4",
+ "ws": "8.18.0"
+ }
+ },
+ "node_modules/@ethersproject/random": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.8.0.tgz",
+ "integrity": "sha512-E4I5TDl7SVqyg4/kkA/qTfuLWAQGXmSOgYyO01So8hLfwgKvYK5snIlzxJMk72IFdG/7oh8yuSqY2KX7MMwg+A==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/rlp": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.8.0.tgz",
+ "integrity": "sha512-LqZgAznqDbiEunaUvykH2JAoXTT9NV0Atqk8rQN9nx9SEgThA/WMx5DnW8a9FOufo//6FZOCHZ+XiClzgbqV9Q==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/sha2": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.8.0.tgz",
+ "integrity": "sha512-dDOUrXr9wF/YFltgTBYS0tKslPEKr6AekjqDW2dbn1L1xmjGR+9GiKu4ajxovnrDbwxAKdHjW8jNcwfz8PAz4A==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0",
+ "hash.js": "1.1.7"
+ }
+ },
+ "node_modules/@ethersproject/signing-key": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.8.0.tgz",
+ "integrity": "sha512-LrPW2ZxoigFi6U6aVkFN/fa9Yx/+4AtIUe4/HACTvKJdhm0eeb107EVCIQcrLZkxaSIgc/eCrX8Q1GtbH+9n3w==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0",
+ "@ethersproject/properties": "^5.8.0",
+ "bn.js": "^5.2.1",
+ "elliptic": "6.6.1",
+ "hash.js": "1.1.7"
+ }
+ },
+ "node_modules/@ethersproject/solidity": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.8.0.tgz",
+ "integrity": "sha512-4CxFeCgmIWamOHwYN9d+QWGxye9qQLilpgTU0XhYs1OahkclF+ewO+3V1U0mvpiuQxm5EHHmv8f7ClVII8EHsA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bignumber": "^5.8.0",
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/keccak256": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0",
+ "@ethersproject/sha2": "^5.8.0",
+ "@ethersproject/strings": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/strings": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.8.0.tgz",
+ "integrity": "sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/constants": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/transactions": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.8.0.tgz",
+ "integrity": "sha512-UglxSDjByHG0TuU17bDfCemZ3AnKO2vYrL5/2n2oXvKzvb7Cz+W9gOWXKARjp2URVwcWlQlPOEQyAviKwT4AHg==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/address": "^5.8.0",
+ "@ethersproject/bignumber": "^5.8.0",
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/constants": "^5.8.0",
+ "@ethersproject/keccak256": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0",
+ "@ethersproject/properties": "^5.8.0",
+ "@ethersproject/rlp": "^5.8.0",
+ "@ethersproject/signing-key": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/units": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.8.0.tgz",
+ "integrity": "sha512-lxq0CAnc5kMGIiWW4Mr041VT8IhNM+Pn5T3haO74XZWFulk7wH1Gv64HqE96hT4a7iiNMdOCFEBgaxWuk8ETKQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bignumber": "^5.8.0",
+ "@ethersproject/constants": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/wallet": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.8.0.tgz",
+ "integrity": "sha512-G+jnzmgg6UxurVKRKvw27h0kvG75YKXZKdlLYmAHeF32TGUzHkOFd7Zn6QHOTYRFWnfjtSSFjBowKo7vfrXzPA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/abstract-provider": "^5.8.0",
+ "@ethersproject/abstract-signer": "^5.8.0",
+ "@ethersproject/address": "^5.8.0",
+ "@ethersproject/bignumber": "^5.8.0",
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/hash": "^5.8.0",
+ "@ethersproject/hdnode": "^5.8.0",
+ "@ethersproject/json-wallets": "^5.8.0",
+ "@ethersproject/keccak256": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0",
+ "@ethersproject/properties": "^5.8.0",
+ "@ethersproject/random": "^5.8.0",
+ "@ethersproject/signing-key": "^5.8.0",
+ "@ethersproject/transactions": "^5.8.0",
+ "@ethersproject/wordlists": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/web": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.8.0.tgz",
+ "integrity": "sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/base64": "^5.8.0",
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0",
+ "@ethersproject/properties": "^5.8.0",
+ "@ethersproject/strings": "^5.8.0"
+ }
+ },
+ "node_modules/@ethersproject/wordlists": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.8.0.tgz",
+ "integrity": "sha512-2df9bbXicZws2Sb5S6ET493uJ0Z84Fjr3pC4tu/qlnZERibZCeUVuqdtt+7Tv9xxhUxHoIekIA7avrKUWHrezg==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.8.0",
+ "@ethersproject/hash": "^5.8.0",
+ "@ethersproject/logger": "^5.8.0",
+ "@ethersproject/properties": "^5.8.0",
+ "@ethersproject/strings": "^5.8.0"
+ }
+ },
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@noble/ciphers": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz",
+ "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14.21.3 || >=16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@noble/curves": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz",
+ "integrity": "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==",
+ "license": "MIT",
+ "dependencies": {
+ "@noble/hashes": "1.8.0"
+ },
+ "engines": {
+ "node": "^14.21.3 || >=16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@noble/hashes": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
+ "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14.21.3 || >=16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@polymarket/builder-signing-sdk": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/@polymarket/builder-signing-sdk/-/builder-signing-sdk-0.0.8.tgz",
+ "integrity": "sha512-rZLCFxEdYahl5FiJmhe22RDXysS1ibFJlWz4NT0s3itJRYq3XJzXXHXEZkAQplU+nIS1IlbbKjA4zDQaeCyYtg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "^18.7.18",
+ "axios": "^1.12.2",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@polymarket/clob-client": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/@polymarket/clob-client/-/clob-client-5.2.1.tgz",
+ "integrity": "sha512-ZAYzCiPbAATcocUg2Uh+ZuktpQcyMZXyRWvV4w0mCXQy46qHYCgLoQBWEWDFEcQpkteqf9cEngOcr31tjMuuBg==",
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/providers": "^5.7.2",
+ "@ethersproject/units": "^5.7.0",
+ "@ethersproject/wallet": "^5.7.0",
+ "@polymarket/builder-signing-sdk": "^0.0.8",
+ "@polymarket/order-utils": "^3.0.1",
+ "axios": "^1.0.0",
+ "browser-or-node": "^2.1.1",
+ "ethers": "^5.7.1",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=20.10"
+ }
+ },
+ "node_modules/@polymarket/order-utils": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@polymarket/order-utils/-/order-utils-3.0.1.tgz",
+ "integrity": "sha512-XVcVladfGtC/VmboMkcszqYs82rvath/0XFWqzIFfq8O4atVOU8ykPOGJ2ZfodBPcXETzL+2u1rcepLMLKu9AQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/providers": "^5.7.2",
+ "@ethersproject/wallet": "^5.7.0",
+ "ethers": "^5.7.1",
+ "tslib": "^2.4.0",
+ "viem": "^2.31.4"
+ },
+ "engines": {
+ "node": ">=20.10",
+ "yarn": ">=1"
+ }
+ },
+ "node_modules/@remix-run/router": {
+ "version": "1.23.2",
+ "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz",
+ "integrity": "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@rolldown/pluginutils": {
+ "version": "1.0.0-beta.27",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz",
+ "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz",
+ "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz",
+ "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz",
+ "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz",
+ "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz",
+ "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz",
+ "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz",
+ "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz",
+ "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz",
+ "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz",
+ "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz",
+ "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-musl": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz",
+ "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz",
+ "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-musl": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz",
+ "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz",
+ "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz",
+ "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz",
+ "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz",
+ "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz",
+ "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-openbsd-x64": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz",
+ "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-openharmony-arm64": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz",
+ "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz",
+ "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz",
+ "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz",
+ "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz",
+ "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@scure/base": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz",
+ "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@scure/bip32": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz",
+ "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==",
+ "license": "MIT",
+ "dependencies": {
+ "@noble/curves": "~1.9.0",
+ "@noble/hashes": "~1.8.0",
+ "@scure/base": "~1.2.5"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@scure/bip39": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz",
+ "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==",
+ "license": "MIT",
+ "dependencies": {
+ "@noble/hashes": "~1.8.0",
+ "@scure/base": "~1.2.5"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
+ "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
+ "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.28.2"
+ }
+ },
+ "node_modules/@types/d3-array": {
+ "version": "3.2.2",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-color": {
+ "version": "3.1.3",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-ease": {
+ "version": "3.0.2",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-interpolate": {
+ "version": "3.0.4",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-color": "*"
+ }
+ },
+ "node_modules/@types/d3-path": {
+ "version": "3.1.1",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-scale": {
+ "version": "4.0.9",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-time": "*"
+ }
+ },
+ "node_modules/@types/d3-shape": {
+ "version": "3.1.8",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-path": "*"
+ }
+ },
+ "node_modules/@types/d3-time": {
+ "version": "3.0.4",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-timer": {
+ "version": "3.0.2",
+ "license": "MIT"
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "18.19.130",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.130.tgz",
+ "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==",
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@vitejs/plugin-react": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz",
+ "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.28.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.27.1",
+ "@babel/plugin-transform-react-jsx-source": "^7.27.1",
+ "@rolldown/pluginutils": "1.0.0-beta.27",
+ "@types/babel__core": "^7.20.5",
+ "react-refresh": "^0.17.0"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
+ }
+ },
+ "node_modules/abitype": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.2.3.tgz",
+ "integrity": "sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/wevm"
+ },
+ "peerDependencies": {
+ "typescript": ">=5.0.4",
+ "zod": "^3.22.0 || ^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ },
+ "zod": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/aes-js": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
+ "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==",
+ "license": "MIT"
+ },
+ "node_modules/agent-base": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/any-promise": {
+ "version": "1.3.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/arg": {
+ "version": "5.0.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "license": "MIT"
+ },
+ "node_modules/autoprefixer": {
+ "version": "10.4.24",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.28.1",
+ "caniuse-lite": "^1.0.30001766",
+ "fraction.js": "^5.3.4",
+ "picocolors": "^1.1.1",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/axios": {
+ "version": "1.13.5",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz",
+ "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==",
+ "license": "MIT",
+ "dependencies": {
+ "follow-redirects": "^1.15.11",
+ "form-data": "^4.0.5",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "license": "MIT"
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.9.19",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.js"
+ }
+ },
+ "node_modules/bech32": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz",
+ "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==",
+ "license": "MIT"
+ },
+ "node_modules/bignumber.js": {
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz",
+ "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/bn.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz",
+ "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==",
+ "license": "MIT"
+ },
+ "node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
+ "license": "MIT"
+ },
+ "node_modules/browser-or-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-2.1.1.tgz",
+ "integrity": "sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==",
+ "license": "MIT"
+ },
+ "node_modules/browserslist": {
+ "version": "4.28.1",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "baseline-browser-mapping": "^2.9.0",
+ "caniuse-lite": "^1.0.30001759",
+ "electron-to-chromium": "^1.5.263",
+ "node-releases": "^2.0.27",
+ "update-browserslist-db": "^1.2.0"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/buffer-equal-constant-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/camelcase-css": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001769",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chokidar/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "license": "MIT"
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "license": "MIT",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/commander": {
+ "version": "4.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.2.3",
+ "license": "MIT"
+ },
+ "node_modules/d3-array": {
+ "version": "3.2.4",
+ "license": "ISC",
+ "dependencies": {
+ "internmap": "1 - 2"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-color": {
+ "version": "3.1.0",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-ease": {
+ "version": "3.0.1",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-format": {
+ "version": "3.1.2",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-interpolate": {
+ "version": "3.0.1",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-path": {
+ "version": "3.1.0",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-scale": {
+ "version": "4.0.2",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2.10.0 - 3",
+ "d3-format": "1 - 3",
+ "d3-interpolate": "1.2.0 - 3",
+ "d3-time": "2.1.1 - 3",
+ "d3-time-format": "2 - 4"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-shape": {
+ "version": "3.2.0",
+ "license": "ISC",
+ "dependencies": {
+ "d3-path": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time": {
+ "version": "3.1.0",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time-format": {
+ "version": "4.1.0",
+ "license": "ISC",
+ "dependencies": {
+ "d3-time": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-timer": {
+ "version": "3.0.1",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/data-uri-to-buffer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
+ "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decimal.js-light": {
+ "version": "2.5.1",
+ "license": "MIT"
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/didyoumean": {
+ "version": "1.2.2",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/dlv": {
+ "version": "1.1.3",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/dom-helpers": {
+ "version": "5.2.1",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.8.7",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "license": "MIT"
+ },
+ "node_modules/ecdsa-sig-formatter": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.286",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/elliptic": {
+ "version": "6.6.1",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz",
+ "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==",
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^4.11.9",
+ "brorand": "^1.1.0",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.1",
+ "inherits": "^2.0.4",
+ "minimalistic-assert": "^1.0.1",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/elliptic/node_modules/bn.js": {
+ "version": "4.12.2",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz",
+ "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==",
+ "license": "MIT"
+ },
+ "node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "license": "MIT"
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.21.5",
+ "@esbuild/android-arm": "0.21.5",
+ "@esbuild/android-arm64": "0.21.5",
+ "@esbuild/android-x64": "0.21.5",
+ "@esbuild/darwin-arm64": "0.21.5",
+ "@esbuild/darwin-x64": "0.21.5",
+ "@esbuild/freebsd-arm64": "0.21.5",
+ "@esbuild/freebsd-x64": "0.21.5",
+ "@esbuild/linux-arm": "0.21.5",
+ "@esbuild/linux-arm64": "0.21.5",
+ "@esbuild/linux-ia32": "0.21.5",
+ "@esbuild/linux-loong64": "0.21.5",
+ "@esbuild/linux-mips64el": "0.21.5",
+ "@esbuild/linux-ppc64": "0.21.5",
+ "@esbuild/linux-riscv64": "0.21.5",
+ "@esbuild/linux-s390x": "0.21.5",
+ "@esbuild/linux-x64": "0.21.5",
+ "@esbuild/netbsd-x64": "0.21.5",
+ "@esbuild/openbsd-x64": "0.21.5",
+ "@esbuild/sunos-x64": "0.21.5",
+ "@esbuild/win32-arm64": "0.21.5",
+ "@esbuild/win32-ia32": "0.21.5",
+ "@esbuild/win32-x64": "0.21.5"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ethers": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.8.0.tgz",
+ "integrity": "sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/abi": "5.8.0",
+ "@ethersproject/abstract-provider": "5.8.0",
+ "@ethersproject/abstract-signer": "5.8.0",
+ "@ethersproject/address": "5.8.0",
+ "@ethersproject/base64": "5.8.0",
+ "@ethersproject/basex": "5.8.0",
+ "@ethersproject/bignumber": "5.8.0",
+ "@ethersproject/bytes": "5.8.0",
+ "@ethersproject/constants": "5.8.0",
+ "@ethersproject/contracts": "5.8.0",
+ "@ethersproject/hash": "5.8.0",
+ "@ethersproject/hdnode": "5.8.0",
+ "@ethersproject/json-wallets": "5.8.0",
+ "@ethersproject/keccak256": "5.8.0",
+ "@ethersproject/logger": "5.8.0",
+ "@ethersproject/networks": "5.8.0",
+ "@ethersproject/pbkdf2": "5.8.0",
+ "@ethersproject/properties": "5.8.0",
+ "@ethersproject/providers": "5.8.0",
+ "@ethersproject/random": "5.8.0",
+ "@ethersproject/rlp": "5.8.0",
+ "@ethersproject/sha2": "5.8.0",
+ "@ethersproject/signing-key": "5.8.0",
+ "@ethersproject/solidity": "5.8.0",
+ "@ethersproject/strings": "5.8.0",
+ "@ethersproject/transactions": "5.8.0",
+ "@ethersproject/units": "5.8.0",
+ "@ethersproject/wallet": "5.8.0",
+ "@ethersproject/web": "5.8.0",
+ "@ethersproject/wordlists": "5.8.0"
+ }
+ },
+ "node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "license": "MIT"
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "license": "MIT"
+ },
+ "node_modules/fast-equals": {
+ "version": "5.4.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.20.1",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fetch-blob": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "node-domexception": "^1.0.0",
+ "web-streams-polyfill": "^3.0.3"
+ },
+ "engines": {
+ "node": "^12.20 || >= 14.13"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.11",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
+ "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/foreground-child": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
+ "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
+ "license": "ISC",
+ "dependencies": {
+ "cross-spawn": "^7.0.6",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
+ "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "es-set-tostringtag": "^2.1.0",
+ "hasown": "^2.0.2",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/formdata-polyfill": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
+ "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
+ "license": "MIT",
+ "dependencies": {
+ "fetch-blob": "^3.1.2"
+ },
+ "engines": {
+ "node": ">=12.20.0"
+ }
+ },
+ "node_modules/fraction.js": {
+ "version": "5.3.4",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/rawify"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gaxios": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.1.3.tgz",
+ "integrity": "sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "extend": "^3.0.2",
+ "https-proxy-agent": "^7.0.1",
+ "node-fetch": "^3.3.2",
+ "rimraf": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/gcp-metadata": {
+ "version": "8.1.2",
+ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-8.1.2.tgz",
+ "integrity": "sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "gaxios": "^7.0.0",
+ "google-logging-utils": "^1.0.0",
+ "json-bigint": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
+ "function-bind": "^1.1.2",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+ "license": "MIT",
+ "dependencies": {
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/glob": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/google-auth-library": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-10.5.0.tgz",
+ "integrity": "sha512-7ABviyMOlX5hIVD60YOfHw4/CxOfBhyduaYB+wbFWCWoni4N7SLcV46hrVRktuBbZjFC9ONyqamZITN7q3n32w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "base64-js": "^1.3.0",
+ "ecdsa-sig-formatter": "^1.0.11",
+ "gaxios": "^7.0.0",
+ "gcp-metadata": "^8.0.0",
+ "google-logging-utils": "^1.0.0",
+ "gtoken": "^8.0.0",
+ "jws": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/google-logging-utils": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-1.1.3.tgz",
+ "integrity": "sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gtoken": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-8.0.0.tgz",
+ "integrity": "sha512-+CqsMbHPiSTdtSO14O51eMNlrp9N79gmeqmXeouJOhfucAedHw9noVe/n5uJk3tbKE6a+6ZCQg3RPhVhHByAIw==",
+ "license": "MIT",
+ "dependencies": {
+ "gaxios": "^7.0.0",
+ "jws": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
+ "license": "MIT",
+ "dependencies": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/https-proxy-agent": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "^7.1.2",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "license": "ISC"
+ },
+ "node_modules/internmap": {
+ "version": "2.0.3",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.16.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "license": "ISC"
+ },
+ "node_modules/isows": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.7.tgz",
+ "integrity": "sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/wevm"
+ }
+ ],
+ "license": "MIT",
+ "peerDependencies": {
+ "ws": "*"
+ }
+ },
+ "node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "node_modules/jiti": {
+ "version": "1.21.7",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jiti": "bin/jiti.js"
+ }
+ },
+ "node_modules/js-sha3": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
+ "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==",
+ "license": "MIT"
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "license": "MIT"
+ },
+ "node_modules/jsesc": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json-bigint": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
+ "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "bignumber.js": "^9.0.0"
+ }
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jwa": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz",
+ "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer-equal-constant-time": "^1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/jws": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz",
+ "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==",
+ "license": "MIT",
+ "dependencies": {
+ "jwa": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/lilconfig": {
+ "version": "3.1.3",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antonk52"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash": {
+ "version": "4.17.23",
+ "license": "MIT"
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "license": "ISC"
+ },
+ "node_modules/minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
+ "license": "MIT"
+ },
+ "node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "license": "MIT"
+ },
+ "node_modules/mz": {
+ "version": "2.7.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/node-domexception": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
+ "deprecated": "Use your platform's native DOMException instead",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "github",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.5.0"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz",
+ "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==",
+ "license": "MIT",
+ "dependencies": {
+ "data-uri-to-buffer": "^4.0.0",
+ "fetch-blob": "^3.1.4",
+ "formdata-polyfill": "^4.0.10"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/node-fetch"
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.27",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-hash": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/ox": {
+ "version": "0.12.1",
+ "resolved": "https://registry.npmjs.org/ox/-/ox-0.12.1.tgz",
+ "integrity": "sha512-uU0llpthaaw4UJoXlseCyBHmQ3bLrQmz9rRLIAUHqv46uHuae9SE+ukYBRIPVCnlEnHKuWjDUcDFHWx9gbGNoA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/wevm"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@adraffy/ens-normalize": "^1.11.0",
+ "@noble/ciphers": "^1.3.0",
+ "@noble/curves": "1.9.1",
+ "@noble/hashes": "^1.8.0",
+ "@scure/bip32": "^1.7.0",
+ "@scure/bip39": "^1.6.0",
+ "abitype": "^1.2.3",
+ "eventemitter3": "5.0.1"
+ },
+ "peerDependencies": {
+ "typescript": ">=5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ox/node_modules/eventemitter3": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
+ "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
+ "license": "MIT"
+ },
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+ "license": "BlueOak-1.0.0"
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "license": "ISC"
+ },
+ "node_modules/pg": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/pg/-/pg-8.18.0.tgz",
+ "integrity": "sha512-xqrUDL1b9MbkydY/s+VZ6v+xiMUmOUk7SS9d/1kpyQxoJ6U9AO1oIJyUWVZojbfe5Cc/oluutcgFG4L9RDP1iQ==",
+ "license": "MIT",
+ "dependencies": {
+ "pg-connection-string": "^2.11.0",
+ "pg-pool": "^3.11.0",
+ "pg-protocol": "^1.11.0",
+ "pg-types": "2.2.0",
+ "pgpass": "1.0.5"
+ },
+ "engines": {
+ "node": ">= 16.0.0"
+ },
+ "optionalDependencies": {
+ "pg-cloudflare": "^1.3.0"
+ },
+ "peerDependencies": {
+ "pg-native": ">=3.0.1"
+ },
+ "peerDependenciesMeta": {
+ "pg-native": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/pg-cloudflare": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.3.0.tgz",
+ "integrity": "sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/pg-connection-string": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.11.0.tgz",
+ "integrity": "sha512-kecgoJwhOpxYU21rZjULrmrBJ698U2RxXofKVzOn5UDj61BPj/qMb7diYUR1nLScCDbrztQFl1TaQZT0t1EtzQ==",
+ "license": "MIT"
+ },
+ "node_modules/pg-int8": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
+ "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/pg-pool": {
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.11.0.tgz",
+ "integrity": "sha512-MJYfvHwtGp870aeusDh+hg9apvOe2zmpZJpyt+BMtzUWlVqbhFmMK6bOBXLBUPd7iRtIF9fZplDc7KrPN3PN7w==",
+ "license": "MIT",
+ "peerDependencies": {
+ "pg": ">=8.0"
+ }
+ },
+ "node_modules/pg-protocol": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.11.0.tgz",
+ "integrity": "sha512-pfsxk2M9M3BuGgDOfuy37VNRRX3jmKgMjcvAcWqNDpZSf4cUmv8HSOl5ViRQFsfARFn0KuUQTgLxVMbNq5NW3g==",
+ "license": "MIT"
+ },
+ "node_modules/pg-types": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
+ "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
+ "license": "MIT",
+ "dependencies": {
+ "pg-int8": "1.0.1",
+ "postgres-array": "~2.0.0",
+ "postgres-bytea": "~1.0.0",
+ "postgres-date": "~1.0.4",
+ "postgres-interval": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pgpass": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz",
+ "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==",
+ "license": "MIT",
+ "dependencies": {
+ "split2": "^4.1.0"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pify": {
+ "version": "2.3.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.7",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.5.6",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-import": {
+ "version": "15.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
+ }
+ },
+ "node_modules/postcss-js": {
+ "version": "4.1.0",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "camelcase-css": "^2.0.1"
+ },
+ "engines": {
+ "node": "^12 || ^14 || >= 16"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.21"
+ }
+ },
+ "node_modules/postcss-load-config": {
+ "version": "6.0.1",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "lilconfig": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "jiti": ">=1.21.0",
+ "postcss": ">=8.0.9",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "jiti": {
+ "optional": true
+ },
+ "postcss": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/postcss-nested": {
+ "version": "6.2.0",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "^6.1.1"
+ },
+ "engines": {
+ "node": ">=12.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.14"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.1.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postgres-array": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
+ "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postgres-bytea": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.1.tgz",
+ "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/postgres-date": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
+ "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/postgres-interval": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
+ "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
+ "license": "MIT",
+ "dependencies": {
+ "xtend": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "node_modules/prop-types/node_modules/react-is": {
+ "version": "16.13.1",
+ "license": "MIT"
+ },
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "license": "MIT"
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/react": {
+ "version": "18.3.1",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "18.3.1",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.2"
+ },
+ "peerDependencies": {
+ "react": "^18.3.1"
+ }
+ },
+ "node_modules/react-is": {
+ "version": "18.3.1",
+ "license": "MIT"
+ },
+ "node_modules/react-refresh": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz",
+ "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-router": {
+ "version": "6.30.3",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.3.tgz",
+ "integrity": "sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==",
+ "license": "MIT",
+ "dependencies": {
+ "@remix-run/router": "1.23.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8"
+ }
+ },
+ "node_modules/react-router-dom": {
+ "version": "6.30.3",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz",
+ "integrity": "sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==",
+ "license": "MIT",
+ "dependencies": {
+ "@remix-run/router": "1.23.2",
+ "react-router": "6.30.3"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8",
+ "react-dom": ">=16.8"
+ }
+ },
+ "node_modules/react-smooth": {
+ "version": "4.0.4",
+ "license": "MIT",
+ "dependencies": {
+ "fast-equals": "^5.0.1",
+ "prop-types": "^15.8.1",
+ "react-transition-group": "^4.4.5"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/react-transition-group": {
+ "version": "4.4.5",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@babel/runtime": "^7.5.5",
+ "dom-helpers": "^5.0.1",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.6.0",
+ "react-dom": ">=16.6.0"
+ }
+ },
+ "node_modules/read-cache": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pify": "^2.3.0"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/recharts": {
+ "version": "2.15.4",
+ "license": "MIT",
+ "dependencies": {
+ "clsx": "^2.0.0",
+ "eventemitter3": "^4.0.1",
+ "lodash": "^4.17.21",
+ "react-is": "^18.3.1",
+ "react-smooth": "^4.0.4",
+ "recharts-scale": "^0.4.4",
+ "tiny-invariant": "^1.3.1",
+ "victory-vendor": "^36.6.8"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/recharts-scale": {
+ "version": "0.4.5",
+ "license": "MIT",
+ "dependencies": {
+ "decimal.js-light": "^2.4.1"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.11",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.16.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "5.0.10",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz",
+ "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==",
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^10.3.7"
+ },
+ "bin": {
+ "rimraf": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.57.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz",
+ "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.8"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.57.1",
+ "@rollup/rollup-android-arm64": "4.57.1",
+ "@rollup/rollup-darwin-arm64": "4.57.1",
+ "@rollup/rollup-darwin-x64": "4.57.1",
+ "@rollup/rollup-freebsd-arm64": "4.57.1",
+ "@rollup/rollup-freebsd-x64": "4.57.1",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.57.1",
+ "@rollup/rollup-linux-arm-musleabihf": "4.57.1",
+ "@rollup/rollup-linux-arm64-gnu": "4.57.1",
+ "@rollup/rollup-linux-arm64-musl": "4.57.1",
+ "@rollup/rollup-linux-loong64-gnu": "4.57.1",
+ "@rollup/rollup-linux-loong64-musl": "4.57.1",
+ "@rollup/rollup-linux-ppc64-gnu": "4.57.1",
+ "@rollup/rollup-linux-ppc64-musl": "4.57.1",
+ "@rollup/rollup-linux-riscv64-gnu": "4.57.1",
+ "@rollup/rollup-linux-riscv64-musl": "4.57.1",
+ "@rollup/rollup-linux-s390x-gnu": "4.57.1",
+ "@rollup/rollup-linux-x64-gnu": "4.57.1",
+ "@rollup/rollup-linux-x64-musl": "4.57.1",
+ "@rollup/rollup-openbsd-x64": "4.57.1",
+ "@rollup/rollup-openharmony-arm64": "4.57.1",
+ "@rollup/rollup-win32-arm64-msvc": "4.57.1",
+ "@rollup/rollup-win32-ia32-msvc": "4.57.1",
+ "@rollup/rollup-win32-x64-gnu": "4.57.1",
+ "@rollup/rollup-win32-x64-msvc": "4.57.1",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/scheduler": {
+ "version": "0.23.2",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
+ },
+ "node_modules/scrypt-js": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
+ "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==",
+ "license": "MIT"
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/split2": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">= 10.x"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/string-width-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
+ "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/sucrase": {
+ "version": "3.35.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "commander": "^4.0.0",
+ "lines-and-columns": "^1.1.6",
+ "mz": "^2.7.0",
+ "pirates": "^4.0.1",
+ "tinyglobby": "^0.2.11",
+ "ts-interface-checker": "^0.1.9"
+ },
+ "bin": {
+ "sucrase": "bin/sucrase",
+ "sucrase-node": "bin/sucrase-node"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/tailwindcss": {
+ "version": "3.4.19",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@alloc/quick-lru": "^5.2.0",
+ "arg": "^5.0.2",
+ "chokidar": "^3.6.0",
+ "didyoumean": "^1.2.2",
+ "dlv": "^1.1.3",
+ "fast-glob": "^3.3.2",
+ "glob-parent": "^6.0.2",
+ "is-glob": "^4.0.3",
+ "jiti": "^1.21.7",
+ "lilconfig": "^3.1.3",
+ "micromatch": "^4.0.8",
+ "normalize-path": "^3.0.0",
+ "object-hash": "^3.0.0",
+ "picocolors": "^1.1.1",
+ "postcss": "^8.4.47",
+ "postcss-import": "^15.1.0",
+ "postcss-js": "^4.0.1",
+ "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0",
+ "postcss-nested": "^6.2.0",
+ "postcss-selector-parser": "^6.1.2",
+ "resolve": "^1.22.8",
+ "sucrase": "^3.35.0"
+ },
+ "bin": {
+ "tailwind": "lib/cli.js",
+ "tailwindcss": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/thenify": {
+ "version": "3.3.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "any-promise": "^1.0.0"
+ }
+ },
+ "node_modules/thenify-all": {
+ "version": "1.6.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "thenify": ">= 3.1.0 < 4"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/tiny-invariant": {
+ "version": "1.3.3",
+ "license": "MIT"
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.15",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.5.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.3",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/ts-interface-checker": {
+ "version": "0.1.13",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
+ },
+ "node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "license": "MIT"
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.2.3",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/victory-vendor": {
+ "version": "36.9.2",
+ "license": "MIT AND ISC",
+ "dependencies": {
+ "@types/d3-array": "^3.0.3",
+ "@types/d3-ease": "^3.0.0",
+ "@types/d3-interpolate": "^3.0.1",
+ "@types/d3-scale": "^4.0.2",
+ "@types/d3-shape": "^3.1.0",
+ "@types/d3-time": "^3.0.0",
+ "@types/d3-timer": "^3.0.0",
+ "d3-array": "^3.1.6",
+ "d3-ease": "^3.0.1",
+ "d3-interpolate": "^3.0.1",
+ "d3-scale": "^4.0.2",
+ "d3-shape": "^3.1.0",
+ "d3-time": "^3.0.0",
+ "d3-timer": "^3.0.1"
+ }
+ },
+ "node_modules/viem": {
+ "version": "2.45.3",
+ "resolved": "https://registry.npmjs.org/viem/-/viem-2.45.3.tgz",
+ "integrity": "sha512-axOD7rIbGiDHHA1MHKmpqqTz3CMCw7YpE/FVypddQMXL5i364VkNZh9JeEJH17NO484LaZUOMueo35IXyL76Mw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/wevm"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@noble/curves": "1.9.1",
+ "@noble/hashes": "1.8.0",
+ "@scure/bip32": "1.7.0",
+ "@scure/bip39": "1.6.0",
+ "abitype": "1.2.3",
+ "isows": "1.0.7",
+ "ox": "0.12.1",
+ "ws": "8.18.3"
+ },
+ "peerDependencies": {
+ "typescript": ">=5.0.4"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/viem/node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite": {
+ "version": "5.4.21",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz",
+ "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.21.3",
+ "postcss": "^8.4.43",
+ "rollup": "^4.20.0"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || >=20.0.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/web-streams-polyfill": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
+ "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ws": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
+ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true,
+ "license": "ISC"
+ }
+ }
+}
diff --git a/react-dash/package.json b/react-dash/package.json
new file mode 100644
index 0000000..e14dbf9
--- /dev/null
+++ b/react-dash/package.json
@@ -0,0 +1,28 @@
+{
+ "name": "bertha-react-dash",
+ "version": "1.0.0",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite --port 7809 --host",
+ "build": "vite build",
+ "preview": "vite preview --port 7809 --host"
+ },
+ "dependencies": {
+ "@polymarket/clob-client": "^5.2.1",
+ "ethers": "^5.8.0",
+ "google-auth-library": "^10.5.0",
+ "pg": "^8.18.0",
+ "react": "^18.3.0",
+ "react-dom": "^18.3.0",
+ "react-router-dom": "^6.28.0",
+ "recharts": "^2.15.0"
+ },
+ "devDependencies": {
+ "@vitejs/plugin-react": "^4.3.0",
+ "autoprefixer": "^10.4.20",
+ "postcss": "^8.4.49",
+ "tailwindcss": "^3.4.17",
+ "vite": "^5.4.0"
+ }
+}
diff --git a/react-dash/postcss.config.js b/react-dash/postcss.config.js
new file mode 100644
index 0000000..4444a47
--- /dev/null
+++ b/react-dash/postcss.config.js
@@ -0,0 +1,3 @@
+export default {
+ plugins: { tailwindcss: {}, autoprefixer: {} }
+};
diff --git a/react-dash/server.js b/react-dash/server.js
new file mode 100644
index 0000000..6fd59df
--- /dev/null
+++ b/react-dash/server.js
@@ -0,0 +1,690 @@
+import http from 'http';
+import fs from 'fs';
+import path from 'path';
+import { fileURLToPath } from 'url';
+import pg from 'pg';
+import crypto from 'crypto';
+import { OAuth2Client } from 'google-auth-library';
+
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = path.dirname(__filename);
+
+const PORT = 7809;
+const DIST = path.join(__dirname, 'dist');
+
+// ── Unified DW Auth Config ──
+const AUTH_USER = 'admin';
+const AUTH_PASS = 'DWSecure2024!';
+const SESSION_COOKIE = 'bertha_session';
+const SESSION_MAX_AGE = 30 * 24 * 60 * 60; // 30 days in seconds
+const WHITELISTED_IPS = ['127.0.0.1', '::1', '45.61.58.125', 'localhost'];
+
+// ── Google OAuth Config ──
+const GOOGLE_CLIENT_ID = process.env.GOOGLE_CLIENT_ID || '';
+const ALLOWED_EMAILS = (process.env.ALLOWED_EMAILS || '').split(',').filter(Boolean);
+const googleClient = GOOGLE_CLIENT_ID ? new OAuth2Client(GOOGLE_CLIENT_ID) : null;
+
+const pool = new pg.Pool({
+ connectionString: 'postgresql://dw_admin:DW2024SecurePass@127.0.0.1:5432/bertha_betting',
+ max: 10,
+ idleTimeoutMillis: 30000,
+});
+
+const MIME = {
+ '.html': 'text/html', '.js': 'application/javascript', '.css': 'text/css',
+ '.json': 'application/json', '.png': 'image/png', '.svg': 'image/svg+xml',
+ '.ico': 'image/x-icon', '.woff2': 'font/woff2', '.woff': 'font/woff',
+};
+
+async function q(text, params) {
+ return pool.query(text, params);
+}
+
+function json(res, data, status = 200, extraHeaders = {}) {
+ res.writeHead(status, { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', ...extraHeaders });
+ res.end(JSON.stringify(data));
+}
+
+async function readBody(req) {
+ return new Promise(resolve => {
+ let d = '';
+ req.on('data', c => d += c);
+ req.on('end', () => { try { resolve(JSON.parse(d)); } catch { resolve({}); } });
+ });
+}
+
+// ── Unified Session Helpers ──
+function parseCookies(req) {
+ const obj = {};
+ (req.headers.cookie || '').split(';').forEach(c => {
+ const [k, ...v] = c.trim().split('=');
+ if (k) obj[k] = v.join('=');
+ });
+ return obj;
+}
+
+function getSession(req) {
+ const cookies = parseCookies(req);
+ const token = cookies[SESSION_COOKIE];
+ if (!token) return null;
+ try {
+ const data = JSON.parse(Buffer.from(decodeURIComponent(token), 'base64').toString());
+ if (!data.authenticated) return null;
+ const age = Date.now() - data.loginTime;
+ if (age > SESSION_MAX_AGE * 1000) return null;
+ return data;
+ } catch { return null; }
+}
+
+function getClientIP(req) {
+ return req.headers['x-forwarded-for']?.split(',')[0]?.trim() || req.socket.remoteAddress || '';
+}
+
+function isWhitelistedIP(req) {
+ const ip = getClientIP(req);
+ return WHITELISTED_IPS.some(w => ip.includes(w));
+}
+
+function hasBasicAuth(req) {
+ const auth = req.headers.authorization;
+ if (!auth || !auth.startsWith('Basic ')) return false;
+ const [user, pass] = Buffer.from(auth.split(' ')[1], 'base64').toString().split(':');
+ return user === AUTH_USER && pass === AUTH_PASS;
+}
+
+function isAuthenticated(req) {
+ if (isWhitelistedIP(req)) return true;
+ if (hasBasicAuth(req)) return true;
+ if (getSession(req)) return true;
+ return false;
+}
+
+function setSessionCookie(res, sessionToken) {
+ const cookie = `${SESSION_COOKIE}=${encodeURIComponent(sessionToken)}; Path=/; HttpOnly; SameSite=Lax; Max-Age=${SESSION_MAX_AGE}`;
+ return cookie;
+}
+
+function clearSessionCookie() {
+ return `${SESSION_COOKIE}=; Path=/; HttpOnly; SameSite=Lax; Max-Age=0`;
+}
+
+// API route handlers
+const routes = {
+ 'GET /api/health': async (req, res) => {
+ try {
+ const dbCheck = await q('SELECT 1');
+ const risk = await q('SELECT * FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const r = risk.rows[0] || {};
+ const slack = process.env.SLACK_BOT_TOKEN ? true : false;
+ json(res, {
+ status: 'ok',
+ db_connected: !!dbCheck,
+ paper_mode: r.config?.paper_mode ?? true,
+ kill_switch: r.kill_switch_active ?? false,
+ slack_configured: slack,
+ setup_complete: r.config?.setup_complete || false,
+ });
+ } catch (err) {
+ json(res, { status: 'error', error: err.message }, 500);
+ }
+ },
+
+ // ── Unified Auth Endpoints ──
+ 'POST /api/auth/login': async (req, res) => {
+ const body = await readBody(req);
+ if (body.username === AUTH_USER && body.password === AUTH_PASS) {
+ const sessionData = { authenticated: true, username: AUTH_USER, loginTime: Date.now() };
+ const token = Buffer.from(JSON.stringify(sessionData)).toString('base64');
+ json(res, { success: true, message: 'Login successful', username: AUTH_USER }, 200, {
+ 'Set-Cookie': setSessionCookie(res, token),
+ });
+ } else {
+ json(res, { error: 'Invalid credentials' }, 401);
+ }
+ },
+
+ 'POST /api/auth/logout': async (req, res) => {
+ json(res, { success: true, message: 'Logged out successfully' }, 200, {
+ 'Set-Cookie': clearSessionCookie(),
+ });
+ },
+
+ 'POST /api/auth/google': async (req, res) => {
+ if (!googleClient) return json(res, { error: 'Google OAuth not configured' }, 400);
+ const body = await readBody(req);
+ if (!body.credential) return json(res, { error: 'Missing credential' }, 400);
+ try {
+ const ticket = await googleClient.verifyIdToken({ idToken: body.credential, audience: GOOGLE_CLIENT_ID });
+ const payload = ticket.getPayload();
+ const email = payload.email;
+ if (!payload.email_verified) return json(res, { error: 'Email not verified' }, 401);
+ // Check allowed emails (if list configured, enforce it; otherwise allow any Google user)
+ if (ALLOWED_EMAILS.length > 0 && !ALLOWED_EMAILS.includes(email)) {
+ return json(res, { error: 'Email not authorized' }, 403);
+ }
+ const sessionData = { authenticated: true, username: payload.name || email, email, picture: payload.picture, provider: 'google', loginTime: Date.now() };
+ const token = Buffer.from(JSON.stringify(sessionData)).toString('base64');
+ json(res, { success: true, username: payload.name || email, email, picture: payload.picture }, 200, {
+ 'Set-Cookie': setSessionCookie(res, token),
+ });
+ } catch (err) {
+ json(res, { error: 'Invalid Google token', details: err.message }, 401);
+ }
+ },
+
+ 'GET /api/auth/google-config': async (req, res) => {
+ json(res, { client_id: GOOGLE_CLIENT_ID || null, configured: !!GOOGLE_CLIENT_ID });
+ },
+
+ 'GET /api/auth/session': async (req, res) => {
+ if (isWhitelistedIP(req)) {
+ return json(res, { authenticated: true, username: AUTH_USER, bypassReason: 'whitelisted_ip' });
+ }
+ if (hasBasicAuth(req)) {
+ return json(res, { authenticated: true, username: AUTH_USER, bypassReason: 'basic_auth' });
+ }
+ const session = getSession(req);
+ if (session) {
+ return json(res, { authenticated: true, username: session.username, email: session.email, picture: session.picture, provider: session.provider, loginTime: session.loginTime });
+ }
+ json(res, { authenticated: false }, 401);
+ },
+
+ // ── Setup Wizard ──
+ 'GET /api/setup': async (req, res) => {
+ try {
+ const r = await q('SELECT config FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const cfg = r.rows[0]?.config || {};
+ json(res, { setup_complete: cfg.setup_complete || false, setup_progress: cfg.setup_progress || null });
+ } catch (err) { json(res, { error: err.message }, 500); }
+ },
+
+ 'POST /api/setup': async (req, res) => {
+ const body = await readBody(req);
+ try {
+ const current = await q('SELECT * FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const row = current.rows[0] || {};
+ if (body.action === 'save_progress') {
+ const newConfig = { ...row.config, setup_progress: body.progress };
+ await q('UPDATE risk_state SET config = $1, updated_at = NOW() WHERE id = $2', [JSON.stringify(newConfig), row.id]);
+ json(res, { success: true });
+ } else if (body.action === 'complete') {
+ const newConfig = { ...row.config, setup_complete: true, setup_completed_at: new Date().toISOString(), setup_progress: body.progress || row.config?.setup_progress };
+ await q('UPDATE risk_state SET config = $1, updated_at = NOW() WHERE id = $2', [JSON.stringify(newConfig), row.id]);
+ json(res, { success: true });
+ } else {
+ json(res, { error: 'Unknown action' }, 400);
+ }
+ } catch (err) { json(res, { error: err.message }, 500); }
+ },
+
+ 'GET /api/dashboard': async (req, res) => {
+ try {
+ const [markets, weatherMarkets, forecasts, predictions, trades, alerts, risk] = await Promise.all([
+ q('SELECT COUNT(*) as cnt FROM markets'),
+ q("SELECT COUNT(*) as cnt FROM markets WHERE category = 'weather' OR parsed_event IS NOT NULL"),
+ q('SELECT COUNT(*) as cnt FROM forecast_runs'),
+ q('SELECT * FROM predictions ORDER BY asof_ts DESC LIMIT 10'),
+ q('SELECT t.*, o.side, o.outcome FROM trades t LEFT JOIN orders o ON t.order_id = o.order_id ORDER BY t.match_time DESC NULLS LAST LIMIT 10'),
+ q('SELECT * FROM alerts_log ORDER BY ts DESC LIMIT 5'),
+ q('SELECT * FROM risk_state ORDER BY updated_at DESC LIMIT 1'),
+ ]);
+ const r = risk.rows[0] || {};
+ json(res, {
+ market_count: parseInt(markets.rows[0]?.cnt || 0),
+ weather_market_count: parseInt(weatherMarkets.rows[0]?.cnt || 0),
+ forecast_count: parseInt(forecasts.rows[0]?.cnt || 0),
+ recent_predictions: predictions.rows,
+ recent_trades: trades.rows,
+ recent_alerts: alerts.rows,
+ risk: {
+ bankroll: parseFloat(r.bankroll || 50),
+ daily_pnl: parseFloat(r.daily_pnl || 0),
+ open_exposure: parseFloat(r.open_exposure || 0),
+ max_drawdown_pct: parseFloat(r.max_drawdown_pct || 0),
+ paper_mode: r.config?.paper_mode ?? true,
+ kill_switch_active: r.kill_switch_active || false,
+ config: r.config || {},
+ },
+ });
+ } catch (err) {
+ json(res, { error: err.message }, 500);
+ }
+ },
+
+ 'GET /api/markets': async (req, res) => {
+ try {
+ const r = await q('SELECT * FROM markets ORDER BY created_at DESC LIMIT 100');
+ const tokens = await q('SELECT * FROM tokens ORDER BY condition_id');
+ json(res, { markets: r.rows, tokens: tokens.rows });
+ } catch (err) {
+ json(res, { error: err.message }, 500);
+ }
+ },
+
+ 'POST /api/markets': async (req, res) => {
+ const body = await readBody(req);
+ if (body.action === 'test_api') {
+ try {
+ const r = await fetch('https://gamma-api.polymarket.com/markets?limit=5&active=true');
+ const data = await r.json();
+ json(res, { success: true, market_count: data.length });
+ } catch (err) {
+ json(res, { error: err.message }, 500);
+ }
+ } else if (body.action === 'ingest') {
+ // Forward to Next.js for complex ingest logic
+ try {
+ const r = await fetch('http://127.0.0.1:7800/api/markets', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify(body),
+ });
+ json(res, await r.json());
+ } catch (err) {
+ json(res, { error: 'Backend unavailable: ' + err.message }, 502);
+ }
+ } else {
+ json(res, { error: 'Unknown action' }, 400);
+ }
+ },
+
+ 'GET /api/weather': async (req, res) => {
+ try {
+ const r = await q('SELECT * FROM forecast_runs ORDER BY created_at DESC LIMIT 200');
+ json(res, { forecasts: r.rows });
+ } catch (err) {
+ json(res, { error: err.message }, 500);
+ }
+ },
+
+ 'POST /api/weather': async (req, res) => {
+ const body = await readBody(req);
+ // Forward to Next.js for NWS API calls
+ try {
+ const r = await fetch('http://127.0.0.1:7800/api/weather', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify(body),
+ });
+ json(res, await r.json());
+ } catch (err) {
+ json(res, { error: 'Backend unavailable: ' + err.message }, 502);
+ }
+ },
+
+ 'GET /api/models': async (req, res) => {
+ try {
+ const [models, predictions] = await Promise.all([
+ q('SELECT * FROM model_versions ORDER BY created_at DESC'),
+ q('SELECT p.*, m.question FROM predictions p LEFT JOIN markets m ON p.condition_id = m.condition_id ORDER BY p.asof_ts DESC LIMIT 50'),
+ ]);
+ json(res, { models: models.rows, predictions: predictions.rows });
+ } catch (err) {
+ json(res, { error: err.message }, 500);
+ }
+ },
+
+ 'POST /api/models': async (req, res) => {
+ const body = await readBody(req);
+ try {
+ const r = await fetch('http://127.0.0.1:7800/api/models', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify(body),
+ });
+ json(res, await r.json());
+ } catch (err) {
+ json(res, { error: 'Backend unavailable: ' + err.message }, 502);
+ }
+ },
+
+ 'GET /api/risk': async (req, res) => {
+ try {
+ const r = await q('SELECT * FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const row = r.rows[0] || {};
+ json(res, {
+ state: {
+ bankroll: parseFloat(row.bankroll || 50),
+ daily_pnl: parseFloat(row.daily_pnl || 0),
+ open_exposure: parseFloat(row.open_exposure || 0),
+ max_drawdown_pct: parseFloat(row.max_drawdown_pct || 0),
+ kill_switch_active: row.kill_switch_active || false,
+ kill_reason: row.kill_reason,
+ config: row.config || {},
+ },
+ });
+ } catch (err) {
+ json(res, { error: err.message }, 500);
+ }
+ },
+
+ 'POST /api/risk': async (req, res) => {
+ const body = await readBody(req);
+ try {
+ const current = await q('SELECT * FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const row = current.rows[0] || {};
+
+ if (body.action === 'kill_switch_activate') {
+ await q('UPDATE risk_state SET kill_switch_active = true, kill_reason = $1, updated_at = NOW() WHERE id = $2', [body.reason || 'Manual', row.id]);
+ } else if (body.action === 'kill_switch_deactivate') {
+ await q('UPDATE risk_state SET kill_switch_active = false, kill_reason = NULL, updated_at = NOW() WHERE id = $1', [row.id]);
+ } else if (body.action === 'update_config') {
+ const newConfig = { ...row.config, ...body.config };
+ await q('UPDATE risk_state SET config = $1, updated_at = NOW() WHERE id = $2', [JSON.stringify(newConfig), row.id]);
+ }
+
+ const updated = await q('SELECT * FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const u = updated.rows[0] || {};
+ json(res, {
+ success: true,
+ state: {
+ bankroll: parseFloat(u.bankroll || 50),
+ daily_pnl: parseFloat(u.daily_pnl || 0),
+ open_exposure: parseFloat(u.open_exposure || 0),
+ max_drawdown_pct: parseFloat(u.max_drawdown_pct || 0),
+ kill_switch_active: u.kill_switch_active || false,
+ kill_reason: u.kill_reason,
+ config: u.config || {},
+ },
+ });
+ } catch (err) {
+ json(res, { error: err.message }, 500);
+ }
+ },
+
+ 'GET /api/trades': async (req, res) => {
+ try {
+ const [orders, trades] = await Promise.all([
+ q('SELECT * FROM orders ORDER BY submitted_ts DESC LIMIT 50'),
+ q('SELECT * FROM trades ORDER BY match_time DESC NULLS LAST LIMIT 50'),
+ ]);
+ json(res, { orders: orders.rows, trades: trades.rows });
+ } catch (err) {
+ json(res, { error: err.message }, 500);
+ }
+ },
+
+ 'POST /api/trades': async (req, res) => {
+ const body = await readBody(req);
+ try {
+ const r = await fetch('http://127.0.0.1:7800/api/trades', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify(body),
+ });
+ json(res, await r.json());
+ } catch (err) {
+ json(res, { error: 'Backend unavailable: ' + err.message }, 502);
+ }
+ },
+
+ 'GET /api/bankroll': async (req, res) => {
+ try {
+ const [ledger, summary] = await Promise.all([
+ q('SELECT * FROM bankroll_ledger ORDER BY ts DESC LIMIT 200'),
+ q(`SELECT
+ COALESCE(SUM(CASE WHEN event_type='deposit' THEN amount ELSE 0 END), 0) as total_deposits,
+ COALESCE(SUM(CASE WHEN event_type='withdrawal' THEN amount ELSE 0 END), 0) as total_withdrawals,
+ COALESCE(SUM(CASE WHEN event_type='trade_pnl' THEN amount ELSE 0 END), 0) as total_pnl,
+ COALESCE(SUM(CASE WHEN event_type='fee' THEN amount ELSE 0 END), 0) as total_fees,
+ (SELECT balance_after FROM bankroll_ledger ORDER BY ts DESC LIMIT 1) as current_balance
+ FROM bankroll_ledger`),
+ ]);
+ json(res, { ledger: ledger.rows, summary: summary.rows[0] || {} });
+ } catch (err) {
+ json(res, { error: err.message }, 500);
+ }
+ },
+
+ 'GET /api/alerts': async (req, res) => {
+ try {
+ const r = await q('SELECT * FROM alerts_log ORDER BY ts DESC LIMIT 50');
+ json(res, { alerts: r.rows });
+ } catch (err) {
+ json(res, { error: err.message }, 500);
+ }
+ },
+
+ 'POST /api/alerts': async (req, res) => {
+ const body = await readBody(req);
+ try {
+ const r = await fetch('http://127.0.0.1:7800/api/alerts', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify(body),
+ });
+ json(res, await r.json());
+ } catch (err) {
+ json(res, { error: 'Backend unavailable: ' + err.message }, 502);
+ }
+ },
+
+ 'POST /api/workers': async (req, res) => {
+ const body = await readBody(req);
+ try {
+ const r = await fetch('http://127.0.0.1:7800/api/workers', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify(body),
+ });
+ json(res, await r.json());
+ } catch (err) {
+ json(res, { error: 'Backend unavailable: ' + err.message }, 502);
+ }
+ },
+
+ // ── Polymarket CLOB API (direct HTTP) ──
+ 'POST /api/polymarket': async (req, res) => {
+ const body = await readBody(req);
+ const CLOB = 'https://clob.polymarket.com';
+ const GAMMA = 'https://gamma-api.polymarket.com';
+
+ // Helper: HMAC-SHA256 sign for L2 auth
+ function hmacSign(secret, timestamp, method, path, bodyStr = '') {
+ const message = timestamp + method + path + bodyStr;
+ return crypto.createHmac('sha256', Buffer.from(secret, 'base64')).update(message).digest('base64');
+ }
+
+ // Helper: build L2 auth headers
+ function l2Headers(apiKey, secret, passphrase, method, urlPath, bodyStr = '') {
+ const ts = Math.floor(Date.now() / 1000).toString();
+ const sig = hmacSign(secret, ts, method, urlPath, bodyStr);
+ return { 'POLY_API_KEY': apiKey, 'POLY_PASSPHRASE': passphrase, 'POLY_TIMESTAMP': ts, 'POLY_SIGNATURE': sig };
+ }
+
+ if (body.action === 'test_public') {
+ // Test public CLOB connection — no auth needed
+ try {
+ const [okRes, timeRes] = await Promise.all([
+ fetch(`${CLOB}/ok`),
+ fetch(`${CLOB}/time`),
+ ]);
+ const ok = await okRes.text();
+ const time = await timeRes.text();
+ json(res, { success: true, ok: ok.trim(), server_time: time.trim(), endpoint: CLOB });
+ } catch (err) {
+ json(res, { success: false, error: err.message }, 500);
+ }
+ } else if (body.action === 'save_keys') {
+ // Save manually-entered API credentials (from polymarket.com/settings?tab=builder)
+ if (!body.api_key || !body.secret || !body.passphrase) {
+ return json(res, { error: 'api_key, secret, and passphrase required' }, 400);
+ }
+ try {
+ const current = await q('SELECT * FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const row = current.rows[0] || {};
+ const newConfig = {
+ ...row.config,
+ poly_api_key: body.api_key,
+ poly_api_secret: body.secret,
+ poly_passphrase: body.passphrase,
+ poly_wallet: body.wallet || null,
+ poly_connected: true,
+ poly_connected_at: new Date().toISOString(),
+ };
+ await q('UPDATE risk_state SET config = $1, updated_at = NOW() WHERE id = $2', [JSON.stringify(newConfig), row.id]);
+ json(res, { success: true, api_key: body.api_key.substring(0, 8) + '...', message: 'Credentials saved' });
+ } catch (err) {
+ json(res, { success: false, error: err.message }, 500);
+ }
+ } else if (body.action === 'auth_test') {
+ // Test authenticated connection with stored L2 credentials
+ try {
+ const current = await q('SELECT config FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const cfg = current.rows[0]?.config || {};
+ if (!cfg.poly_api_key || !cfg.poly_api_secret || !cfg.poly_passphrase) {
+ return json(res, { error: 'No Polymarket credentials configured. Save API keys first.' }, 400);
+ }
+ const authHdrs = l2Headers(cfg.poly_api_key, cfg.poly_api_secret, cfg.poly_passphrase, 'GET', '/data/trades');
+ const r = await fetch(`${CLOB}/data/trades`, { headers: authHdrs });
+ if (r.ok) {
+ const data = await r.json();
+ json(res, { success: true, trades: Array.isArray(data) ? data.length : 0, wallet: cfg.poly_wallet, message: 'Authenticated OK' });
+ } else {
+ const errText = await r.text();
+ json(res, { success: false, error: `CLOB returned ${r.status}: ${errText}` });
+ }
+ } catch (err) {
+ json(res, { success: false, error: err.message }, 500);
+ }
+ } else if (body.action === 'get_markets') {
+ // Get live weather markets from Gamma API
+ try {
+ const r = await fetch(`${GAMMA}/markets?limit=50&active=true&tag=weather`);
+ const markets = await r.json();
+ // Also try getting prices for our tracked tokens
+ const tokens = await q('SELECT t.token_id, t.outcome, m.question FROM tokens t JOIN markets m ON t.condition_id = m.condition_id LIMIT 20');
+ const prices = [];
+ for (const tok of tokens.rows) {
+ try {
+ const pr = await fetch(`${CLOB}/price?token_id=${tok.token_id}&side=buy`);
+ if (pr.ok) { const d = await pr.json(); prices.push({ ...tok, price: d.price }); }
+ } catch { /* skip */ }
+ }
+ json(res, { success: true, gamma_markets: markets.length || 0, tracked_prices: prices });
+ } catch (err) {
+ json(res, { success: false, error: err.message }, 500);
+ }
+ } else if (body.action === 'get_orderbook') {
+ if (!body.token_id) return json(res, { error: 'token_id required' }, 400);
+ try {
+ const r = await fetch(`${CLOB}/book?token_id=${body.token_id}`);
+ const book = await r.json();
+ json(res, { success: true, orderbook: book });
+ } catch (err) {
+ json(res, { success: false, error: err.message }, 500);
+ }
+ } else if (body.action === 'status') {
+ // Get connection status from DB
+ try {
+ const current = await q('SELECT config FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const cfg = current.rows[0]?.config || {};
+ json(res, {
+ connected: !!cfg.poly_connected,
+ api_key: cfg.poly_api_key ? cfg.poly_api_key.substring(0, 8) + '...' : null,
+ wallet: cfg.poly_wallet || null,
+ connected_at: cfg.poly_connected_at || null,
+ has_secret: !!cfg.poly_api_secret,
+ has_passphrase: !!cfg.poly_passphrase,
+ });
+ } catch (err) {
+ json(res, { error: err.message }, 500);
+ }
+ } else if (body.action === 'disconnect') {
+ try {
+ const current = await q('SELECT * FROM risk_state ORDER BY updated_at DESC LIMIT 1');
+ const row = current.rows[0] || {};
+ const newConfig = { ...row.config, poly_api_key: null, poly_api_secret: null, poly_passphrase: null, poly_wallet: null, poly_connected: false, poly_connected_at: null };
+ await q('UPDATE risk_state SET config = $1, updated_at = NOW() WHERE id = $2', [JSON.stringify(newConfig), row.id]);
+ json(res, { success: true, message: 'Disconnected' });
+ } catch (err) {
+ json(res, { error: err.message }, 500);
+ }
+ } else {
+ json(res, { error: 'Unknown action. Use: test_public, save_keys, auth_test, get_markets, get_orderbook, status, disconnect' }, 400);
+ }
+ },
+};
+
+const server = http.createServer(async (req, res) => {
+ // CORS preflight
+ if (req.method === 'OPTIONS') {
+ res.writeHead(200, {
+ 'Access-Control-Allow-Origin': '*',
+ 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
+ 'Access-Control-Allow-Headers': 'Content-Type',
+ });
+ res.end();
+ return;
+ }
+
+ // API routes - direct DB access
+ const routeKey = `${req.method} ${req.url.split('?')[0]}`;
+ const urlPath = req.url.split('?')[0];
+
+ // Public endpoints (no auth required)
+ const publicPaths = ['/api/auth/login', '/api/auth/logout', '/api/auth/session', '/api/health'];
+ const isPublic = publicPaths.includes(urlPath);
+
+ // Enforce auth on all other API routes
+ if (!isPublic && urlPath.startsWith('/api/') && !isAuthenticated(req)) {
+ return json(res, { error: 'Authentication required' }, 401);
+ }
+
+ if (routes[routeKey]) {
+ try {
+ await routes[routeKey](req, res);
+ } catch (err) {
+ json(res, { error: err.message }, 500);
+ }
+ return;
+ }
+
+ // Fallback: proxy unknown API routes to Next.js backend
+ if (req.url.startsWith('/api/')) {
+ try {
+ let body = '';
+ if (req.method !== 'GET' && req.method !== 'HEAD') {
+ body = await new Promise(resolve => {
+ let d = '';
+ req.on('data', c => d += c);
+ req.on('end', () => resolve(d));
+ });
+ }
+ const fetchOpts = {
+ method: req.method,
+ headers: { 'Content-Type': 'application/json', 'Cookie': req.headers.cookie || '' },
+ };
+ if (body && req.method !== 'GET') fetchOpts.body = body;
+ const apiRes = await fetch(`http://127.0.0.1:7800${req.url}`, fetchOpts);
+ const apiBody = await apiRes.text();
+ res.writeHead(apiRes.status, { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' });
+ res.end(apiBody);
+ } catch (err) {
+ json(res, { error: err.message }, 502);
+ }
+ return;
+ }
+
+ // Serve static files
+ let filePath = path.join(DIST, req.url === '/' ? 'index.html' : req.url);
+ if (!fs.existsSync(filePath)) {
+ filePath = path.join(DIST, 'index.html');
+ }
+
+ try {
+ const content = fs.readFileSync(filePath);
+ const ext = path.extname(filePath);
+ res.writeHead(200, { 'Content-Type': MIME[ext] || 'application/octet-stream' });
+ res.end(content);
+ } catch {
+ res.writeHead(404);
+ res.end('Not found');
+ }
+});
+
+server.listen(PORT, '0.0.0.0', () => {
+ console.log(`[Bertha React] Dashboard running on http://0.0.0.0:${PORT}`);
+ console.log(`[Bertha React] Direct DB + API proxy mode`);
+});
diff --git a/react-dash/src/Layout.jsx b/react-dash/src/Layout.jsx
new file mode 100644
index 0000000..76e3a7d
--- /dev/null
+++ b/react-dash/src/Layout.jsx
@@ -0,0 +1,82 @@
+import React, { useState, useEffect } from 'react';
+import { Outlet, Link, useLocation, useNavigate } from 'react-router-dom';
+import { api, checkSession, logout } from './api';
+
+const NAV = [
+ { to: '/', label: 'Overview', d: 'M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6' },
+ { to: '/markets', label: 'Markets', d: 'M13 7h8m0 0v8m0-8l-8 8-4-4-6 6' },
+ { to: '/polymarket', label: 'Polymarket', d: 'M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9' },
+ { to: '/weather', label: 'Weather', d: 'M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z' },
+ { to: '/models', label: 'Models', d: 'M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z' },
+ { to: '/risk', label: 'Risk', d: 'M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z' },
+ { to: '/trades', label: 'Trades', d: 'M8 7h12m0 0l-4-4m4 4l-4 4m0 6H4m0 0l4 4m-4-4l4-4' },
+ { to: '/bankroll', label: 'Bankroll', d: 'M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z' },
+ { to: '/settings', label: 'Settings', d: 'M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z' },
+];
+
+export default function Layout() {
+ const loc = useLocation();
+ const nav = useNavigate();
+ const [h, setH] = useState(null);
+ const [col, setCol] = useState(false);
+ const [authChecked, setAuthChecked] = useState(false);
+
+ useEffect(() => {
+ // Unified auth: verify session with server
+ checkSession().then(ok => {
+ if (!ok) { nav('/login'); return; }
+ setAuthChecked(true);
+ const load = () => api('/health').then(d => {
+ setH(d);
+ if (d && !d.setup_complete) nav('/setup');
+ }).catch(() => {});
+ load();
+ const i = setInterval(load, 20000);
+ return () => clearInterval(i);
+ });
+ }, []);
+
+ if (!authChecked) {
+ return <div className="flex items-center justify-center min-h-screen"><div className="animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full" /></div>;
+ }
+
+ const cfg = h?.paper_mode;
+
+ return (
+ <div className="flex min-h-screen">
+ <aside className={`${col ? 'w-16' : 'w-56'} bg-gray-900/50 border-r border-gray-800 flex flex-col transition-all duration-200`}>
+ <div className="p-4 border-b border-gray-800 flex items-center gap-3">
+ <div className="w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0" style={{ background: 'linear-gradient(135deg,#3b82f6,#8b5cf6)' }}>
+ <span className="text-white font-bold text-sm">B</span>
+ </div>
+ {!col && <span className="font-bold text-sm bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent">BERTHA</span>}
+ </div>
+ <nav className="flex-1 p-2 space-y-0.5">
+ {NAV.map(n => {
+ const active = loc.pathname === n.to || (n.to !== '/' && loc.pathname.startsWith(n.to));
+ return (
+ <Link key={n.to} to={n.to} className={`flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition ${active ? 'bg-blue-500/15 text-blue-400 font-medium' : 'text-gray-400 hover:text-gray-200 hover:bg-gray-800/50'}`}>
+ <svg className="flex-shrink-0" style={{ width: 18, height: 18 }} fill="none" stroke="currentColor" strokeWidth="1.5" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d={n.d} /></svg>
+ {!col && <span>{n.label}</span>}
+ </Link>
+ );
+ })}
+ </nav>
+ <div className="p-3 border-t border-gray-800">
+ {!col && h && <div className="space-y-1.5 text-[11px]">
+ <div className="flex justify-between"><span className="text-gray-500">Mode</span><span className={cfg ? 'text-yellow-400' : 'text-green-400'}>{cfg ? 'PAPER' : 'LIVE'}</span></div>
+ <div className="flex justify-between"><span className="text-gray-500">Kill Switch</span><span className={h.kill_switch ? 'text-red-400' : 'text-green-400'}>{h.kill_switch ? 'ACTIVE' : 'OFF'}</span></div>
+ <div className="flex justify-between"><span className="text-gray-500">DB</span><span className={h.db_connected ? 'text-green-400' : 'text-red-400'}>{h.db_connected ? 'OK' : 'DOWN'}</span></div>
+ </div>}
+ <div className="flex gap-1 mt-2">
+ <button onClick={() => setCol(!col)} className="flex-1 flex items-center justify-center py-1.5 text-gray-500 hover:text-gray-300">
+ <svg className={`w-4 h-4 transition-transform ${col ? '' : 'rotate-180'}`} fill="none" stroke="currentColor" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M11 19l-7-7 7-7m8 14l-7-7 7-7" /></svg>
+ </button>
+ {!col && <button onClick={logout} className="px-2 py-1 text-xs text-gray-500 hover:text-red-400">Logout</button>}
+ </div>
+ </div>
+ </aside>
+ <main className="flex-1 overflow-auto"><div className="p-6 max-w-[1600px] mx-auto"><Outlet /></div></main>
+ </div>
+ );
+}
diff --git a/react-dash/src/Login.jsx b/react-dash/src/Login.jsx
new file mode 100644
index 0000000..740c058
--- /dev/null
+++ b/react-dash/src/Login.jsx
@@ -0,0 +1,168 @@
+import React, { useState, useEffect, useRef } from 'react';
+import { useNavigate } from 'react-router-dom';
+import { login, checkSession, googleLogin, getGoogleConfig } from './api';
+
+export default function Login() {
+ const [user, setUser] = useState('');
+ const [pass, setPass] = useState('');
+ const [showPass, setShowPass] = useState(false);
+ const [err, setErr] = useState('');
+ const [loading, setLoading] = useState(false);
+ const [checking, setChecking] = useState(true);
+ const [googleReady, setGoogleReady] = useState(false);
+ const [googleClientId, setGoogleClientId] = useState(null);
+ const googleBtnRef = useRef(null);
+ const nav = useNavigate();
+
+ useEffect(() => {
+ checkSession().then(ok => {
+ if (ok) nav('/');
+ else setChecking(false);
+ });
+ // Load Google config
+ getGoogleConfig().then(cfg => {
+ if (cfg.configured && cfg.client_id) {
+ setGoogleClientId(cfg.client_id);
+ loadGoogleScript(cfg.client_id);
+ }
+ });
+ }, []);
+
+ function loadGoogleScript(clientId) {
+ if (document.getElementById('google-gsi')) return;
+ const script = document.createElement('script');
+ script.id = 'google-gsi';
+ script.src = 'https://accounts.google.com/gsi/client';
+ script.async = true;
+ script.defer = true;
+ script.onload = () => initGoogle(clientId);
+ document.head.appendChild(script);
+ }
+
+ function initGoogle(clientId) {
+ if (!window.google?.accounts?.id) return;
+ window.google.accounts.id.initialize({
+ client_id: clientId,
+ callback: handleGoogleResponse,
+ auto_select: false,
+ });
+ setGoogleReady(true);
+ if (googleBtnRef.current) {
+ window.google.accounts.id.renderButton(googleBtnRef.current, {
+ type: 'standard',
+ theme: 'filled_black',
+ size: 'large',
+ text: 'signin_with',
+ shape: 'pill',
+ width: '100%',
+ });
+ }
+ }
+
+ useEffect(() => {
+ if (googleReady && googleBtnRef.current && window.google?.accounts?.id) {
+ window.google.accounts.id.renderButton(googleBtnRef.current, {
+ type: 'standard',
+ theme: 'filled_black',
+ size: 'large',
+ text: 'signin_with',
+ shape: 'pill',
+ width: 360,
+ });
+ }
+ }, [googleReady]);
+
+ async function handleGoogleResponse(response) {
+ setErr('');
+ setLoading(true);
+ try {
+ const result = await googleLogin(response.credential);
+ if (result.success) {
+ nav('/');
+ } else {
+ setErr(result.error || 'Google login failed');
+ }
+ } catch {
+ setErr('Connection error');
+ }
+ setLoading(false);
+ }
+
+ async function submit(e) {
+ e.preventDefault();
+ setErr('');
+ setLoading(true);
+ try {
+ const ok = await login(user, pass);
+ if (ok) nav('/');
+ else setErr('Invalid credentials');
+ } catch {
+ setErr('Connection error');
+ }
+ setLoading(false);
+ }
+
+ if (checking) {
+ return <div className="min-h-screen flex items-center justify-center"><div className="animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full" /></div>;
+ }
+
+ return (
+ <div className="min-h-screen flex items-center justify-center p-4">
+ <div className="w-full max-w-md">
+ <div className="text-center mb-8">
+ <div className="inline-flex items-center justify-center w-20 h-20 rounded-2xl mb-4" style={{ background: 'linear-gradient(135deg,#3b82f6,#8b5cf6)' }}>
+ <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="white" strokeWidth="2"><path d="M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z" /><circle cx="12" cy="12" r="3" /></svg>
+ </div>
+ <h1 className="text-3xl font-extrabold bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent">BERTHA</h1>
+ <p className="text-gray-400 mt-2 text-sm">Weather Forecast Micro-Betting System</p>
+ </div>
+
+ {err && <div className="text-red-400 text-sm bg-red-500/10 rounded-lg p-3 flex items-center gap-2 mb-4">
+ <svg className="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" /></svg>
+ {err}
+ </div>}
+
+ {/* Google Sign-In */}
+ {googleClientId && (
+ <div className="mb-4">
+ <div ref={googleBtnRef} className="flex justify-center" />
+ <div className="relative my-5">
+ <div className="absolute inset-0 flex items-center"><div className="w-full border-t border-gray-800" /></div>
+ <div className="relative flex justify-center text-xs"><span className="px-3 text-gray-500" style={{ background: 'var(--bg)' }}>or sign in with password</span></div>
+ </div>
+ </div>
+ )}
+
+ <form onSubmit={submit} className="card space-y-4">
+ <div>
+ <label className="block text-xs font-medium text-gray-400 mb-1.5">Username</label>
+ <input type="text" value={user} onChange={e => setUser(e.target.value)} required autoComplete="username" className="w-full bg-gray-800/50 border border-gray-700 rounded-lg px-3 py-2.5 text-sm focus:outline-none focus:border-blue-500 transition" placeholder="admin" />
+ </div>
+ <div>
+ <label className="block text-xs font-medium text-gray-400 mb-1.5">Password</label>
+ <div className="relative">
+ <input type={showPass ? 'text' : 'password'} value={pass} onChange={e => setPass(e.target.value)} required autoComplete="current-password" className="w-full bg-gray-800/50 border border-gray-700 rounded-lg px-3 py-2.5 pr-10 text-sm focus:outline-none focus:border-blue-500 transition" placeholder="Enter password" />
+ <button type="button" onClick={() => setShowPass(!showPass)} className="absolute right-3 top-1/2 -translate-y-1/2 text-gray-500 hover:text-gray-300">
+ <svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d={showPass ? 'M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.878 9.878L3 3m6.878 6.879L21 21' : 'M15 12a3 3 0 11-6 0 3 3 0 016 0z M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z'} /></svg>
+ </button>
+ </div>
+ </div>
+ <button type="submit" disabled={loading} className="btn btn-p w-full py-2.5 flex items-center justify-center gap-2 disabled:opacity-50">
+ {loading && <span className="animate-spin w-4 h-4 border-2 border-white border-t-transparent rounded-full" />}
+ {loading ? 'Signing in...' : 'Sign In'}
+ </button>
+ </form>
+
+ <div className="mt-6 grid grid-cols-3 gap-2 text-center">
+ {[{ l: 'Bankroll', v: '$50', c: 'text-green-400' }, { l: 'Mode', v: 'Paper', c: 'text-yellow-400' }, { l: 'Status', v: 'Active', c: 'text-blue-400' }].map(s =>
+ <div key={s.l} className="card !p-3"><div className={`text-lg font-bold ${s.c}`}>{s.v}</div><div className="text-[10px] text-gray-500 uppercase">{s.l}</div></div>
+ )}
+ </div>
+ <div className="text-center mt-4 space-y-1">
+ <p className="text-gray-600 text-[10px]">Session: httpOnly cookie / 30-day expiry / IP whitelist</p>
+ {googleClientId && <p className="text-gray-600 text-[10px]">Google OAuth 2.0 enabled</p>}
+ </div>
+ </div>
+ </div>
+ );
+}
diff --git a/react-dash/src/api.js b/react-dash/src/api.js
new file mode 100644
index 0000000..e97a08d
--- /dev/null
+++ b/react-dash/src/api.js
@@ -0,0 +1,67 @@
+const API = '/api';
+
+// ── Unified DW Auth System ──
+// Uses httpOnly cookie 'bertha_session' set by the server.
+// Client cannot read/write the cookie directly — server manages it.
+
+export async function api(path, opts = {}) {
+ const res = await fetch(`${API}${path}`, {
+ ...opts,
+ credentials: 'same-origin', // send cookies with requests
+ headers: { 'Content-Type': 'application/json', ...opts.headers },
+ });
+ if (res.status === 401 && !path.startsWith('/auth/')) {
+ // Session expired or not authenticated — redirect to login
+ window.location.href = '/login';
+ return {};
+ }
+ return res.json();
+}
+
+export async function post(path, body) {
+ return api(path, { method: 'POST', body: JSON.stringify(body) });
+}
+
+// Check if user has a valid session (server validates the httpOnly cookie)
+export async function checkSession() {
+ try {
+ const data = await api('/auth/session');
+ return data.authenticated === true;
+ } catch {
+ return false;
+ }
+}
+
+// Login via unified auth endpoint — server sets httpOnly session cookie
+export async function login(username, password) {
+ const data = await post('/auth/login', { username, password });
+ return data.success === true;
+}
+
+// Google OAuth login — send Google credential to server for verification
+export async function googleLogin(credential) {
+ const data = await post('/auth/google', { credential });
+ return data;
+}
+
+// Get Google OAuth config (client ID)
+export async function getGoogleConfig() {
+ try {
+ return await api('/auth/google-config');
+ } catch { return { configured: false }; }
+}
+
+// Logout — server clears the httpOnly session cookie
+export async function logout() {
+ await post('/auth/logout', {});
+ window.location.href = '/login';
+}
+
+// Legacy compat — isLoggedIn now checks session asynchronously
+// For sync checks in Layout, we use a lightweight approach
+export function isLoggedIn() {
+ // We can't read httpOnly cookies from JS, so we rely on
+ // the session check endpoint. For immediate nav guard,
+ // Layout.jsx calls checkSession() on mount.
+ return true; // Let Layout handle async check
+}
diff --git a/react-dash/src/index.css b/react-dash/src/index.css
new file mode 100644
index 0000000..e57d00a
--- /dev/null
+++ b/react-dash/src/index.css
@@ -0,0 +1,38 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+:root { --bg: #0a0e1a; --card: #111827; --border: #1e293b; }
+body { background: var(--bg); color: #e2e8f0; font-family: 'Inter', sans-serif; margin: 0; }
+::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: var(--bg); } ::-webkit-scrollbar-thumb { background: #374151; border-radius: 3px; }
+.card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 1.25rem; }
+.stat-v { font-size: 1.75rem; font-weight: 700; line-height: 1; }
+.badge { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 9999px; font-size: 0.75rem; font-weight: 600; }
+.bg-green { background: rgba(16,185,129,0.15); color: #10b981; }
+.bg-red { background: rgba(239,68,68,0.15); color: #ef4444; }
+.bg-yellow { background: rgba(245,158,11,0.15); color: #f59e0b; }
+.bg-blue { background: rgba(59,130,246,0.15); color: #3b82f6; }
+.bg-purple { background: rgba(139,92,246,0.15); color: #8b5cf6; }
+.pulse-g { animation: pg 2s infinite; }
+@keyframes pg { 0%,100%{box-shadow:0 0 0 0 rgba(16,185,129,0.4)} 50%{box-shadow:0 0 0 6px rgba(16,185,129,0)} }
+.btn { padding: 0.5rem 1rem; border-radius: 8px; font-weight: 600; font-size: 0.875rem; cursor: pointer; border: none; transition: all 0.15s; }
+.btn-p { background: #3b82f6; color: white; } .btn-p:hover { background: #2563eb; }
+.btn-d { background: #ef4444; color: white; } .btn-d:hover { background: #dc2626; }
+.btn-s { background: #10b981; color: white; } .btn-s:hover { background: #059669; }
+table { width: 100%; border-collapse: collapse; }
+th { text-align: left; padding: 0.75rem; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; color: #64748b; border-bottom: 1px solid var(--border); }
+td { padding: 0.75rem; border-bottom: 1px solid rgba(30,41,59,0.5); font-size: 0.85rem; }
+tr:hover td { background: rgba(59,130,246,0.03); }
+
+/* Setup Wizard */
+.step-enter { opacity: 0; transform: translateX(24px); }
+.step-active { opacity: 1; transform: translateX(0); transition: opacity 0.35s ease, transform 0.35s ease; }
+.step-exit { opacity: 0; transform: translateX(-24px); transition: opacity 0.2s ease, transform 0.2s ease; }
+@keyframes pulse-blue { 0%,100%{box-shadow:0 0 0 0 rgba(59,130,246,0.4)} 50%{box-shadow:0 0 0 8px rgba(59,130,246,0)} }
+.step-active-pulse { animation: pulse-blue 2s infinite; }
+.stepper-line { height: 2px; flex: 1; background: #1e293b; transition: background 0.3s; }
+.stepper-line.done { background: #22c55e; }
+.wizard-gradient { background: linear-gradient(135deg, #3b82f6, #8b5cf6); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
+.wizard-btn { background: linear-gradient(135deg, #3b82f6, #8b5cf6); color: white; padding: 0.75rem 2rem; border-radius: 10px; font-weight: 700; font-size: 1rem; border: none; cursor: pointer; transition: all 0.2s; }
+.wizard-btn:hover { transform: translateY(-1px); box-shadow: 0 4px 20px rgba(59,130,246,0.3); }
+.wizard-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; box-shadow: none; }
diff --git a/react-dash/src/main.jsx b/react-dash/src/main.jsx
new file mode 100644
index 0000000..fe36d3f
--- /dev/null
+++ b/react-dash/src/main.jsx
@@ -0,0 +1,40 @@
+import React from 'react';
+import ReactDOM from 'react-dom/client';
+import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';
+import './index.css';
+import Login from './Login';
+import Layout from './Layout';
+import SetupWizard from './setup/SetupWizard';
+import Dashboard from './pages/Dashboard';
+import Markets from './pages/Markets';
+import Weather from './pages/Weather';
+import Models from './pages/Models';
+import Risk from './pages/Risk';
+import Trades from './pages/Trades';
+import Bankroll from './pages/Bankroll';
+import Settings from './pages/Settings';
+import Polymarket from './pages/Polymarket';
+
+function App() {
+ return (
+ <BrowserRouter>
+ <Routes>
+ <Route path="/login" element={<Login />} />
+ <Route path="/setup" element={<SetupWizard />} />
+ <Route path="/" element={<Layout />}>
+ <Route index element={<Dashboard />} />
+ <Route path="markets" element={<Markets />} />
+ <Route path="polymarket" element={<Polymarket />} />
+ <Route path="weather" element={<Weather />} />
+ <Route path="models" element={<Models />} />
+ <Route path="risk" element={<Risk />} />
+ <Route path="trades" element={<Trades />} />
+ <Route path="bankroll" element={<Bankroll />} />
+ <Route path="settings" element={<Settings />} />
+ </Route>
+ </Routes>
+ </BrowserRouter>
+ );
+}
+
+ReactDOM.createRoot(document.getElementById('root')).render(<App />);
diff --git a/react-dash/src/pages/Bankroll.jsx b/react-dash/src/pages/Bankroll.jsx
new file mode 100644
index 0000000..5041c47
--- /dev/null
+++ b/react-dash/src/pages/Bankroll.jsx
@@ -0,0 +1,153 @@
+import React, { useState, useEffect } from 'react';
+import { api } from '../api';
+import { AreaChart, Area, LineChart, Line, BarChart, Bar, XAxis, YAxis, Tooltip, ResponsiveContainer, CartesianGrid, Cell, ComposedChart } from 'recharts';
+
+const ChartTooltip = ({ active, payload, label, prefix = '$' }) => {
+ if (!active || !payload?.length) return null;
+ return (
+ <div className="bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 text-xs shadow-xl">
+ <p className="text-gray-400 mb-1">{label}</p>
+ {payload.map((p, i) => (
+ <p key={i} style={{ color: p.color }} className="font-mono">{p.name}: {prefix}{typeof p.value === 'number' ? p.value.toFixed(2) : p.value}</p>
+ ))}
+ </div>
+ );
+};
+
+export default function Bankroll() {
+ const [ledger, setLe] = useState([]);
+ const [sum, setSum] = useState({});
+ const [loading, setL] = useState(true);
+
+ useEffect(() => { api('/bankroll').then(d => { setLe(d.ledger || []); setSum(d.summary || {}); setL(false); }); }, []);
+
+ if (loading) return <div className="flex items-center justify-center h-64"><div className="animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full" /></div>;
+
+ const ec = { deposit: 'bg-green', withdrawal: 'bg-red', trade_pnl: 'bg-blue', fee: 'bg-yellow', adjustment: 'bg-purple' };
+
+ // Balance over time chart data
+ const balanceData = ledger.slice().reverse().map((e, i) => ({
+ idx: i,
+ time: new Date(e.ts).toLocaleDateString('en-US', { month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit' }),
+ balance: parseFloat(e.balance_after || 0),
+ amount: parseFloat(e.amount || 0),
+ event: e.event_type,
+ }));
+
+ // Running P&L chart
+ const pnlData = ledger.slice().reverse().filter(e => e.event_type === 'trade_pnl' || e.event_type === 'fee').map((e, i) => ({
+ idx: i,
+ time: new Date(e.ts).toLocaleDateString('en-US', { month: 'short', day: 'numeric' }),
+ pnl: parseFloat(e.amount || 0),
+ event: e.event_type,
+ }));
+
+ // Cumulative P&L
+ let cumPnl = 0;
+ const cumData = pnlData.map(d => {
+ cumPnl += d.pnl;
+ return { ...d, cumPnl };
+ });
+
+ // Event type breakdown
+ const eventCounts = {};
+ ledger.forEach(e => { eventCounts[e.event_type] = (eventCounts[e.event_type] || 0) + 1; });
+ const eventData = Object.entries(eventCounts).map(([name, count]) => ({ name, count }));
+
+ const curBal = parseFloat(sum.current_balance || 50);
+ const pnlPct = ((curBal - 50) / 50 * 100);
+
+ return (
+ <div className="space-y-6">
+ <div><h1 className="text-2xl font-bold">Bankroll</h1><p className="text-gray-500 text-sm">Balance tracking and P&L analysis</p></div>
+
+ <div className="grid grid-cols-2 md:grid-cols-5 gap-4">
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Balance</p><p className="stat-v text-green-400">${curBal.toFixed(2)}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Deposits</p><p className="stat-v text-blue-400">${parseFloat(sum.total_deposits || 50).toFixed(2)}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Total P&L</p><p className={`stat-v ${parseFloat(sum.total_pnl || 0) >= 0 ? 'text-green-400' : 'text-red-400'}`}>${parseFloat(sum.total_pnl || 0).toFixed(2)}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Fees</p><p className="stat-v text-yellow-400">${parseFloat(sum.total_fees || 0).toFixed(2)}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">ROI</p><p className={`stat-v ${pnlPct >= 0 ? 'text-green-400' : 'text-red-400'}`}>{pnlPct >= 0 ? '+' : ''}{pnlPct.toFixed(1)}%</p></div>
+ </div>
+
+ {/* Balance History Chart */}
+ <div className="card">
+ <h2 className="font-semibold mb-3">Balance History</h2>
+ {balanceData.length > 1 ? (
+ <ResponsiveContainer width="100%" height={280}>
+ <AreaChart data={balanceData}>
+ <defs>
+ <linearGradient id="balGrad" x1="0" y1="0" x2="0" y2="1">
+ <stop offset="5%" stopColor="#10b981" stopOpacity={0.3} />
+ <stop offset="95%" stopColor="#10b981" stopOpacity={0} />
+ </linearGradient>
+ </defs>
+ <CartesianGrid strokeDasharray="3 3" stroke="#1f2937" />
+ <XAxis dataKey="time" tick={{ fill: '#6b7280', fontSize: 10 }} axisLine={false} tickLine={false} interval="preserveStartEnd" />
+ <YAxis tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} domain={['dataMin - 1', 'dataMax + 1']} tickFormatter={v => `$${v}`} />
+ <Tooltip content={<ChartTooltip />} />
+ <Area type="monotone" dataKey="balance" stroke="#10b981" strokeWidth={2} fill="url(#balGrad)" name="Balance" dot={false} />
+ </AreaChart>
+ </ResponsiveContainer>
+ ) : <p className="text-gray-500 text-sm text-center py-12">Chart appears after multiple entries</p>}
+ </div>
+
+ {/* P&L Charts */}
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
+ {/* Individual P&L events */}
+ <div className="card">
+ <h2 className="font-semibold mb-3">P&L Events</h2>
+ {pnlData.length > 0 ? (
+ <ResponsiveContainer width="100%" height={220}>
+ <BarChart data={pnlData} barSize={16}>
+ <CartesianGrid strokeDasharray="3 3" stroke="#1f2937" />
+ <XAxis dataKey="time" tick={{ fill: '#6b7280', fontSize: 10 }} axisLine={false} tickLine={false} />
+ <YAxis tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} tickFormatter={v => `$${v}`} />
+ <Tooltip content={<ChartTooltip />} />
+ <Bar dataKey="pnl" name="P&L">
+ {pnlData.map((entry, i) => (
+ <Cell key={i} fill={entry.pnl >= 0 ? '#10b981' : '#ef4444'} fillOpacity={0.8} />
+ ))}
+ </Bar>
+ </BarChart>
+ </ResponsiveContainer>
+ ) : <p className="text-gray-500 text-sm text-center py-12">No P&L events yet</p>}
+ </div>
+
+ {/* Cumulative P&L */}
+ <div className="card">
+ <h2 className="font-semibold mb-3">Cumulative P&L</h2>
+ {cumData.length > 0 ? (
+ <ResponsiveContainer width="100%" height={220}>
+ <AreaChart data={cumData}>
+ <defs>
+ <linearGradient id="cumGrad" x1="0" y1="0" x2="0" y2="1">
+ <stop offset="5%" stopColor={cumPnl >= 0 ? '#10b981' : '#ef4444'} stopOpacity={0.3} />
+ <stop offset="95%" stopColor={cumPnl >= 0 ? '#10b981' : '#ef4444'} stopOpacity={0} />
+ </linearGradient>
+ </defs>
+ <CartesianGrid strokeDasharray="3 3" stroke="#1f2937" />
+ <XAxis dataKey="time" tick={{ fill: '#6b7280', fontSize: 10 }} axisLine={false} tickLine={false} />
+ <YAxis tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} tickFormatter={v => `$${v}`} />
+ <Tooltip content={<ChartTooltip />} />
+ <Area type="monotone" dataKey="cumPnl" stroke={cumPnl >= 0 ? '#10b981' : '#ef4444'} strokeWidth={2} fill="url(#cumGrad)" name="Cumulative P&L" />
+ </AreaChart>
+ </ResponsiveContainer>
+ ) : <p className="text-gray-500 text-sm text-center py-12">No P&L events yet</p>}
+ </div>
+ </div>
+
+ {/* Ledger Table */}
+ <div className="card overflow-x-auto"><h2 className="font-semibold mb-3">Ledger Entries</h2>
+ <table><thead><tr><th>Time</th><th>Event</th><th>Amount</th><th>Balance</th><th>Note</th></tr></thead><tbody>
+ {ledger.map((e, i) => <tr key={i}>
+ <td className="text-gray-400 text-sm">{new Date(e.ts).toLocaleString()}</td>
+ <td><span className={`badge ${ec[e.event_type] || 'bg-blue'}`}>{e.event_type}</span></td>
+ <td className={`font-mono ${parseFloat(e.amount) >= 0 ? 'text-green-400' : 'text-red-400'}`}>{parseFloat(e.amount) >= 0 ? '+' : ''}${parseFloat(e.amount).toFixed(2)}</td>
+ <td className="font-mono font-medium">${parseFloat(e.balance_after).toFixed(2)}</td>
+ <td className="text-gray-400 text-sm max-w-[200px] truncate">{e.note || '-'}</td>
+ </tr>)}
+ </tbody></table>
+ </div>
+ </div>
+ );
+}
diff --git a/react-dash/src/pages/Dashboard.jsx b/react-dash/src/pages/Dashboard.jsx
new file mode 100644
index 0000000..fabe916
--- /dev/null
+++ b/react-dash/src/pages/Dashboard.jsx
@@ -0,0 +1,347 @@
+import React, { useState, useEffect } from 'react';
+import { useNavigate } from 'react-router-dom';
+import { api, post } from '../api';
+import { AreaChart, Area, BarChart, Bar, XAxis, YAxis, Tooltip, ResponsiveContainer, CartesianGrid, Cell, PieChart, Pie } from 'recharts';
+
+function Stat({ label, value, color, sub, onClick }) {
+ return (
+ <div className={`card ${onClick ? 'cursor-pointer hover:border-blue-500/30' : ''}`} onClick={onClick}>
+ <p className="text-xs text-gray-500 uppercase tracking-wide mb-1">{label}</p>
+ <p className={`stat-v ${color || 'text-white'}`}>{value}</p>
+ {sub && <p className="text-xs text-gray-500 mt-1">{sub}</p>}
+ </div>
+ );
+}
+
+function ActionCard({ icon, title, desc, onClick, busy, color, badge }) {
+ return (
+ <button onClick={onClick} disabled={busy} className={`card text-left hover:border-${color || 'blue'}-500/40 hover:bg-${color || 'blue'}-500/5 transition-all group cursor-pointer disabled:opacity-50`}>
+ <div className="flex items-start gap-3">
+ <div className={`w-10 h-10 rounded-lg flex items-center justify-center flex-shrink-0 bg-${color || 'blue'}-500/15`}>
+ <svg className={`w-5 h-5 text-${color || 'blue'}-400`} fill="none" stroke="currentColor" strokeWidth="1.5" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d={icon} /></svg>
+ </div>
+ <div className="flex-1 min-w-0">
+ <div className="flex items-center gap-2">
+ <p className="font-semibold text-sm group-hover:text-white transition">{title}</p>
+ {badge && <span className={`badge bg-${badge.color || 'blue'}`}>{badge.text}</span>}
+ </div>
+ <p className="text-xs text-gray-500 mt-0.5">{desc}</p>
+ </div>
+ {busy ? (
+ <div className="animate-spin w-4 h-4 border-2 border-blue-500 border-t-transparent rounded-full flex-shrink-0 mt-1" />
+ ) : (
+ <svg className="w-4 h-4 text-gray-600 group-hover:text-gray-400 transition flex-shrink-0 mt-1" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M9 5l7 7-7 7" /></svg>
+ )}
+ </div>
+ </button>
+ );
+}
+
+const ChartTooltip = ({ active, payload, label, prefix = '$' }) => {
+ if (!active || !payload?.length) return null;
+ return (
+ <div className="bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 text-xs shadow-xl">
+ <p className="text-gray-400 mb-1">{label}</p>
+ {payload.map((p, i) => (
+ <p key={i} style={{ color: p.color }} className="font-mono">{p.name}: {prefix}{typeof p.value === 'number' ? p.value.toFixed(2) : p.value}</p>
+ ))}
+ </div>
+ );
+};
+
+export default function Dashboard() {
+ const [d, setD] = useState(null);
+ const [r, setR] = useState(null);
+ const [bankroll, setBankroll] = useState(null);
+ const [loading, setL] = useState(true);
+ const [busy, setBusy] = useState({});
+ const [results, setResults] = useState([]);
+ const nav = useNavigate();
+
+ const load = () => Promise.all([
+ api('/dashboard'), api('/risk'), api('/bankroll')
+ ]).then(([dash, risk, bank]) => {
+ setD(dash); setR(risk?.state); setBankroll(bank); setL(false);
+ }).catch(() => setL(false));
+
+ useEffect(() => { load(); const i = setInterval(load, 12000); return () => clearInterval(i); }, []);
+
+ function addResult(msg, type = 'info') {
+ setResults(prev => [{ msg, type, ts: Date.now() }, ...prev].slice(0, 5));
+ }
+
+ async function runAction(key, fn) {
+ setBusy(b => ({ ...b, [key]: true }));
+ try { await fn(); load(); }
+ catch (e) { addResult(`Error: ${e.message}`, 'error'); }
+ setBusy(b => ({ ...b, [key]: false }));
+ }
+
+ async function ingestMarkets() {
+ await runAction('ingest', async () => {
+ const r = await post('/markets', { action: 'ingest' });
+ addResult(r.error ? `Ingest failed: ${r.error}` : `Ingested ${r.ingested || 0} markets from ${r.total_scanned || 0} scanned`, r.error ? 'error' : 'success');
+ });
+ }
+
+ async function fetchWeather() {
+ await runAction('weather', async () => {
+ const r = await post('/weather', { action: 'fetch_all' });
+ addResult(r.error ? `Weather fetch failed: ${r.error}` : `Fetched forecasts for ${r.cities_fetched || 0} cities`, r.error ? 'error' : 'success');
+ });
+ }
+
+ async function runPredictions() {
+ await runAction('predict', async () => {
+ const r = await post('/models', { action: 'run_predictions' });
+ addResult(r.error ? `Predictions failed: ${r.error}` : `Generated ${r.predictions_made || 0} predictions`, r.error ? 'error' : 'success');
+ });
+ }
+
+ async function runRiskScan() {
+ await runAction('risk', async () => {
+ const r = await api('/risk');
+ const s = r.state || {};
+ addResult(`Risk: $${parseFloat(s.bankroll || 50).toFixed(2)} bankroll, $${parseFloat(s.open_exposure || 0).toFixed(2)} exposure, Kill: ${s.kill_switch_active ? 'ON' : 'off'}`, 'success');
+ });
+ }
+
+ async function runFullPipeline() {
+ await runAction('pipeline', async () => {
+ addResult('Pipeline: Ingest -> Weather -> Predict...', 'info');
+ const m = await post('/markets', { action: 'ingest' });
+ addResult(`1/3 Ingested ${m.ingested || 0} markets`, m.error ? 'error' : 'info');
+ const w = await post('/weather', { action: 'fetch_all' });
+ addResult(`2/3 Weather for ${w.cities_fetched || 0} cities`, w.error ? 'error' : 'info');
+ const p = await post('/models', { action: 'run_predictions' });
+ addResult(`3/3 ${p.predictions_made || 0} predictions generated`, p.error ? 'error' : 'success');
+ addResult('Pipeline complete!', 'success');
+ });
+ }
+
+ if (loading) return <div className="flex items-center justify-center h-64"><div className="animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full" /></div>;
+
+ const cfg = r?.config || {};
+ const pnl = parseFloat(r?.daily_pnl || 0);
+ const hasMarkets = (d?.market_count || 0) > 0;
+ const hasForecasts = (d?.forecast_count || 0) > 0;
+ const hasPredictions = (d?.recent_predictions?.length || 0) > 0;
+
+ // Bankroll chart data
+ const ledgerData = (bankroll?.ledger || []).slice().reverse().map((e, i) => ({
+ idx: i,
+ time: new Date(e.ts).toLocaleDateString('en-US', { month: 'short', day: 'numeric' }),
+ balance: parseFloat(e.balance_after || 0),
+ amount: parseFloat(e.amount || 0),
+ event: e.event_type,
+ }));
+
+ // Edge distribution for predictions
+ const edgeData = (d?.recent_predictions || []).filter(p => p.edge != null).map(p => ({
+ name: (p.condition_id || '').substring(0, 8),
+ edge: parseFloat((p.edge * 100).toFixed(2)),
+ pYes: parseFloat((p.p_yes * 100).toFixed(1)),
+ signal: p.recommendation || 'HOLD',
+ }));
+
+ // Risk allocation pie
+ const bankrollVal = parseFloat(r?.bankroll || 50);
+ const exposureVal = parseFloat(r?.open_exposure || 0);
+ const availableVal = bankrollVal - exposureVal;
+ const riskPie = [
+ { name: 'Available', value: Math.max(0, availableVal), fill: '#10b981' },
+ { name: 'Exposed', value: exposureVal, fill: '#3b82f6' },
+ ];
+
+ return (
+ <div className="space-y-6">
+ <div className="flex items-center justify-between">
+ <div><h1 className="text-2xl font-bold">Dashboard</h1><p className="text-gray-500 text-sm mt-0.5">Weather micro-betting system overview</p></div>
+ <div className="flex items-center gap-3">
+ <span className={`badge ${cfg.paper_mode !== false ? 'bg-yellow' : 'bg-green'}`}>{cfg.paper_mode !== false ? 'PAPER MODE' : 'LIVE MODE'}</span>
+ {r?.kill_switch_active && <span className="badge bg-red">KILL SWITCH</span>}
+ <span className={`w-2.5 h-2.5 rounded-full ${r?.kill_switch_active ? 'bg-red-500' : 'bg-green-500 pulse-g'}`} />
+ </div>
+ </div>
+
+ {/* Top Stats */}
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-4">
+ <Stat label="Bankroll" value={`$${bankrollVal.toFixed(2)}`} color="text-green-400" sub="Starting: $50.00" onClick={() => nav('/bankroll')} />
+ <Stat label="Daily P&L" value={`$${pnl.toFixed(2)}`} color={pnl >= 0 ? 'text-green-400' : 'text-red-400'} sub={`Limit: -$${cfg.max_daily_loss_usd || 5}`} />
+ <Stat label="Open Exposure" value={`$${exposureVal.toFixed(2)}`} color="text-blue-400" sub={`Max: $${cfg.max_open_exposure_usd || 5}`} />
+ <Stat label="Max Drawdown" value={`${parseFloat(r?.max_drawdown_pct || 0).toFixed(1)}%`} color="text-purple-400" sub={`Limit: ${cfg.max_drawdown_pct || 20}%`} />
+ </div>
+
+ {/* Charts Row */}
+ <div className="grid grid-cols-1 lg:grid-cols-3 gap-4">
+ {/* Bankroll Chart */}
+ <div className="card lg:col-span-2">
+ <h2 className="font-semibold mb-3">Bankroll History</h2>
+ {ledgerData.length > 1 ? (
+ <ResponsiveContainer width="100%" height={200}>
+ <AreaChart data={ledgerData}>
+ <defs>
+ <linearGradient id="bgGreen" x1="0" y1="0" x2="0" y2="1">
+ <stop offset="5%" stopColor="#10b981" stopOpacity={0.3} />
+ <stop offset="95%" stopColor="#10b981" stopOpacity={0} />
+ </linearGradient>
+ </defs>
+ <CartesianGrid strokeDasharray="3 3" stroke="#1f2937" />
+ <XAxis dataKey="time" tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} />
+ <YAxis tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} domain={['dataMin - 2', 'dataMax + 2']} tickFormatter={v => `$${v}`} />
+ <Tooltip content={<ChartTooltip />} />
+ <Area type="monotone" dataKey="balance" stroke="#10b981" strokeWidth={2} fill="url(#bgGreen)" name="Balance" />
+ </AreaChart>
+ </ResponsiveContainer>
+ ) : <p className="text-gray-500 text-sm text-center py-12">Chart appears after trades begin</p>}
+ </div>
+
+ {/* Risk Allocation Pie */}
+ <div className="card">
+ <h2 className="font-semibold mb-3">Capital Allocation</h2>
+ <ResponsiveContainer width="100%" height={200}>
+ <PieChart>
+ <Pie data={riskPie} cx="50%" cy="50%" innerRadius={50} outerRadius={80} paddingAngle={4} dataKey="value">
+ {riskPie.map((entry, i) => <Cell key={i} fill={entry.fill} />)}
+ </Pie>
+ <Tooltip content={<ChartTooltip />} />
+ </PieChart>
+ </ResponsiveContainer>
+ <div className="flex justify-center gap-4 text-xs mt-2">
+ <span className="flex items-center gap-1.5"><span className="w-2.5 h-2.5 rounded-full bg-green-500" />Available ${availableVal.toFixed(2)}</span>
+ <span className="flex items-center gap-1.5"><span className="w-2.5 h-2.5 rounded-full bg-blue-500" />Exposed ${exposureVal.toFixed(2)}</span>
+ </div>
+ </div>
+ </div>
+
+ {/* Edge Distribution */}
+ {edgeData.length > 0 && (
+ <div className="card">
+ <h2 className="font-semibold mb-3">Prediction Edge Distribution</h2>
+ <ResponsiveContainer width="100%" height={180}>
+ <BarChart data={edgeData} barSize={24}>
+ <CartesianGrid strokeDasharray="3 3" stroke="#1f2937" />
+ <XAxis dataKey="name" tick={{ fill: '#6b7280', fontSize: 10 }} axisLine={false} tickLine={false} />
+ <YAxis tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} tickFormatter={v => `${v}%`} />
+ <Tooltip content={<ChartTooltip prefix="" />} />
+ <Bar dataKey="edge" name="Edge %">
+ {edgeData.map((entry, i) => (
+ <Cell key={i} fill={entry.edge > 0 ? '#10b981' : '#ef4444'} fillOpacity={0.8} />
+ ))}
+ </Bar>
+ </BarChart>
+ </ResponsiveContainer>
+ </div>
+ )}
+
+ {/* Quick Actions */}
+ <div className="card" style={{ background: 'linear-gradient(135deg, rgba(59,130,246,0.05), rgba(139,92,246,0.05))' }}>
+ <div className="flex items-center justify-between mb-4">
+ <div>
+ <h2 className="font-semibold">Quick Actions</h2>
+ <p className="text-xs text-gray-500 mt-0.5">Run pipeline steps or navigate to details</p>
+ </div>
+ <button onClick={runFullPipeline} disabled={busy.pipeline} className="btn btn-p text-xs flex items-center gap-2">
+ {busy.pipeline ? <span className="animate-spin w-3 h-3 border-2 border-white border-t-transparent rounded-full" /> : <svg className="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M13 10V3L4 14h7v7l9-11h-7z" /></svg>}
+ Run Full Pipeline
+ </button>
+ </div>
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3">
+ <ActionCard icon="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6" title="Ingest Markets" desc="Scan Polymarket for weather events" onClick={ingestMarkets} busy={busy.ingest} color="blue" badge={hasMarkets ? { text: `${d.market_count} tracked`, color: 'blue' } : { text: 'Start here', color: 'yellow' }} />
+ <ActionCard icon="M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z" title="Fetch Weather" desc="Pull latest NWS forecasts" onClick={fetchWeather} busy={busy.weather} color="green" badge={hasForecasts ? { text: `${d.forecast_count} runs`, color: 'green' } : null} />
+ <ActionCard icon="M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z" title="Run Predictions" desc="Generate P(YES) + edge" onClick={runPredictions} busy={busy.predict} color="purple" badge={hasPredictions ? { text: `${d.recent_predictions.length} active`, color: 'purple' } : null} />
+ <ActionCard icon="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" title="Risk Scan" desc="Check limits and kill switch" onClick={runRiskScan} busy={busy.risk} color="yellow" />
+ <ActionCard icon="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8V7m0 1v8m0 0v1" title="View Bankroll" desc="Balance history and P&L" onClick={() => nav('/bankroll')} color="green" />
+ <ActionCard icon="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9" title="Polymarket CLOB" desc="Live prices, orderbooks & trading" onClick={() => nav('/polymarket')} color="purple" badge={{ text: 'LIVE', color: 'purple' }} />
+ </div>
+ </div>
+
+ {/* Action Log */}
+ {results.length > 0 && (
+ <div className="card">
+ <div className="flex items-center justify-between mb-3">
+ <h2 className="font-semibold text-sm">Action Log</h2>
+ <button onClick={() => setResults([])} className="text-xs text-gray-500 hover:text-gray-300">Clear</button>
+ </div>
+ <div className="space-y-1.5">
+ {results.map((r, i) => (
+ <div key={r.ts + i} className={`flex items-center gap-2 text-xs px-3 py-2 rounded-lg ${r.type === 'error' ? 'bg-red-500/10 text-red-400' : r.type === 'success' ? 'bg-green-500/10 text-green-400' : 'bg-blue-500/10 text-blue-400'}`}>
+ <span className={`w-1.5 h-1.5 rounded-full flex-shrink-0 ${r.type === 'error' ? 'bg-red-500' : r.type === 'success' ? 'bg-green-500' : 'bg-blue-500'}`} />
+ <span className="flex-1">{r.msg}</span>
+ <span className="text-gray-600">{new Date(r.ts).toLocaleTimeString()}</span>
+ </div>
+ ))}
+ </div>
+ </div>
+ )}
+
+ {/* Predictions & Trades */}
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
+ <div className="card">
+ <div className="flex items-center justify-between mb-3">
+ <h2 className="font-semibold">Recent Predictions</h2>
+ <button onClick={() => nav('/models')} className="text-xs text-blue-400 hover:text-blue-300">View All</button>
+ </div>
+ {d?.recent_predictions?.length > 0 ? (
+ <table><thead><tr><th>Market</th><th>P(Yes)</th><th>Edge</th><th>Signal</th></tr></thead><tbody>
+ {d.recent_predictions.slice(0, 6).map((p, i) => <tr key={i}>
+ <td className="max-w-[180px] truncate font-mono text-xs">{p.condition_id?.substring(0, 20)}</td>
+ <td className="font-mono text-green-400">{(p.p_yes * 100).toFixed(1)}%</td>
+ <td className={`font-mono ${p.edge > 0 ? 'text-green-400' : 'text-red-400'}`}>{p.edge ? (p.edge * 100).toFixed(1) + '%' : '-'}</td>
+ <td><span className={`badge ${p.recommendation?.startsWith('BUY') ? 'bg-green' : 'bg-yellow'}`}>{p.recommendation || 'HOLD'}</span></td>
+ </tr>)}
+ </tbody></table>
+ ) : <p className="text-gray-500 text-sm">No predictions yet. Ingest markets to begin.</p>}
+ </div>
+ <div className="card">
+ <div className="flex items-center justify-between mb-3">
+ <h2 className="font-semibold">Recent Trades</h2>
+ <button onClick={() => nav('/trades')} className="text-xs text-blue-400 hover:text-blue-300">View All</button>
+ </div>
+ {d?.recent_trades?.length > 0 ? (
+ <table><thead><tr><th>Time</th><th>Side</th><th>Size</th><th>P&L</th></tr></thead><tbody>
+ {d.recent_trades.map((t, i) => <tr key={i}>
+ <td className="text-gray-400 text-sm">{new Date(t.match_time).toLocaleString()}</td>
+ <td><span className={`badge ${t.side === 'buy' ? 'bg-green' : 'bg-red'}`}>{t.side?.toUpperCase()}</span></td>
+ <td className="font-mono">${parseFloat(t.size_usd || 0).toFixed(2)}</td>
+ <td className={`font-mono ${parseFloat(t.pnl || 0) >= 0 ? 'text-green-400' : 'text-red-400'}`}>${parseFloat(t.pnl || 0).toFixed(2)}</td>
+ </tr>)}
+ </tbody></table>
+ ) : <p className="text-gray-500 text-sm">No trades yet. System in paper mode.</p>}
+ </div>
+ </div>
+
+ {/* Bottom Stats */}
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
+ <div className="card cursor-pointer hover:border-blue-500/30 transition" onClick={() => nav('/markets')}>
+ <p className="text-xs text-gray-500 uppercase mb-1">Markets Tracked</p>
+ <p className="stat-v text-blue-400">{d?.market_count || 0}</p>
+ <p className="text-xs text-gray-500 mt-1">{d?.weather_market_count || 0} weather</p>
+ </div>
+ <div className="card cursor-pointer hover:border-purple-500/30 transition" onClick={() => nav('/weather')}>
+ <p className="text-xs text-gray-500 uppercase mb-1">Forecast Runs</p>
+ <p className="stat-v text-purple-400">{d?.forecast_count || 0}</p>
+ </div>
+ <div className="card cursor-pointer hover:border-green-500/30 transition" onClick={() => nav('/risk')}>
+ <p className="text-xs text-gray-500 uppercase mb-1">Risk Config</p>
+ <div className="space-y-1 text-sm">
+ <div className="flex justify-between"><span className="text-gray-500">Max Bet</span><span>${cfg.max_bet_usd || 0.50}</span></div>
+ <div className="flex justify-between"><span className="text-gray-500">Min Edge</span><span>{((cfg.min_edge_threshold || 0.03) * 100).toFixed(0)}%</span></div>
+ <div className="flex justify-between"><span className="text-gray-500">Kelly</span><span>{cfg.fractional_kelly || 0.10}x</span></div>
+ </div>
+ </div>
+ </div>
+
+ {/* Alerts */}
+ <div className="card">
+ <h2 className="font-semibold mb-3">System Alerts</h2>
+ {d?.recent_alerts?.length > 0 ? <div className="space-y-2">
+ {d.recent_alerts.map((a, i) => <div key={i} className={`flex items-start gap-3 p-3 rounded-lg ${a.severity === 'critical' ? 'bg-red-500/10' : a.severity === 'warning' ? 'bg-yellow-500/10' : 'bg-blue-500/10'}`}>
+ <span className={`badge ${a.severity === 'critical' ? 'bg-red' : a.severity === 'warning' ? 'bg-yellow' : 'bg-blue'}`}>{a.severity}</span>
+ <div><p className="text-sm">{a.message}</p><p className="text-xs text-gray-500 mt-0.5">{new Date(a.ts).toLocaleString()}</p></div>
+ </div>)}
+ </div> : <p className="text-gray-500 text-sm">No alerts. System healthy.</p>}
+ </div>
+ </div>
+ );
+}
diff --git a/react-dash/src/pages/Markets.jsx b/react-dash/src/pages/Markets.jsx
new file mode 100644
index 0000000..99c6fb6
--- /dev/null
+++ b/react-dash/src/pages/Markets.jsx
@@ -0,0 +1,43 @@
+import React, { useState, useEffect } from 'react';
+import { api, post } from '../api';
+
+export default function Markets() {
+ const [markets, setM] = useState([]);
+ const [loading, setL] = useState(true);
+ const [busy, setB] = useState(false);
+
+ const load = () => api('/markets').then(d => { setM(d.markets||[]); setL(false); });
+ useEffect(() => { load(); }, []);
+
+ async function ingest() { setB(true); const r = await post('/markets', {action:'ingest'}); alert(`Ingested ${r.ingested||0} weather markets from ${r.total_scanned||0} scanned`); load(); setB(false); }
+ async function parse(id) { const r = await post('/markets', {action:'parse', condition_id:id}); alert(JSON.stringify(r.parsed,null,2)); load(); }
+
+ if (loading) return <div className="flex items-center justify-center h-64"><div className="animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full"/></div>;
+
+ return (
+ <div className="space-y-6">
+ <div className="flex items-center justify-between">
+ <div><h1 className="text-2xl font-bold">Markets</h1><p className="text-gray-500 text-sm">Polymarket weather-related markets</p></div>
+ <button onClick={ingest} disabled={busy} className="btn btn-p">{busy?'Ingesting...':'Ingest Markets'}</button>
+ </div>
+ <div className="grid grid-cols-3 gap-4">
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Total</p><p className="stat-v text-blue-400">{markets.length}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Active</p><p className="stat-v text-green-400">{markets.filter(m=>m.active).length}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Parsed</p><p className="stat-v text-purple-400">{markets.filter(m=>m.parsed_event?.variable).length}</p></div>
+ </div>
+ <div className="card overflow-x-auto">
+ <table><thead><tr><th>Question</th><th>Category</th><th>Liquidity</th><th>End Date</th><th>Parsed</th><th>Actions</th></tr></thead><tbody>
+ {markets.length===0?<tr><td colSpan={6} className="text-center text-gray-500 py-8">No markets. Click Ingest.</td></tr>
+ :markets.map(m=><tr key={m.condition_id}>
+ <td className="max-w-[300px]"><p className="truncate font-medium">{m.question}</p><p className="text-xs text-gray-500 truncate">{m.condition_id}</p></td>
+ <td><span className="badge bg-blue">{m.category||'weather'}</span></td>
+ <td className="font-mono">${parseFloat(m.liquidity||0).toFixed(0)}</td>
+ <td className="text-gray-400 text-sm">{m.end_ts?new Date(m.end_ts).toLocaleDateString():'-'}</td>
+ <td>{m.parsed_event?.variable?<span className="badge bg-green">Yes</span>:<span className="badge bg-yellow">No</span>}</td>
+ <td><button onClick={()=>parse(m.condition_id)} className="text-xs text-blue-400 hover:text-blue-300">Parse</button></td>
+ </tr>)}
+ </tbody></table>
+ </div>
+ </div>
+ );
+}
diff --git a/react-dash/src/pages/Models.jsx b/react-dash/src/pages/Models.jsx
new file mode 100644
index 0000000..723da07
--- /dev/null
+++ b/react-dash/src/pages/Models.jsx
@@ -0,0 +1,162 @@
+import React, { useState, useEffect } from 'react';
+import { api, post } from '../api';
+import { ScatterChart, Scatter, BarChart, Bar, XAxis, YAxis, Tooltip, ResponsiveContainer, CartesianGrid, Cell, ZAxis, Legend } from 'recharts';
+
+const ChartTooltip = ({ active, payload }) => {
+ if (!active || !payload?.length) return null;
+ const d = payload[0]?.payload;
+ if (!d) return null;
+ return (
+ <div className="bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 text-xs shadow-xl">
+ <p className="text-gray-400 mb-1 font-mono">{d.id}</p>
+ <p className="text-green-400">P(Yes): {d.pYes?.toFixed(1)}%</p>
+ <p className={d.edge >= 0 ? 'text-green-400' : 'text-red-400'}>Edge: {d.edge?.toFixed(2)}%</p>
+ <p className="text-blue-400">Confidence: {d.confidence?.toFixed(0)}%</p>
+ <p className="text-purple-400">Signal: {d.signal}</p>
+ </div>
+ );
+};
+
+export default function Models() {
+ const [models, setMo] = useState([]);
+ const [preds, setPr] = useState([]);
+ const [loading, setL] = useState(true);
+
+ useEffect(() => { api('/models').then(d => { setMo(d.models || []); setPr(d.predictions || []); setL(false); }).catch(() => setL(false)); }, []);
+
+ async function run() {
+ const r = await post('/models', { action: 'run_predictions' });
+ window.location.reload();
+ }
+
+ if (loading) return <div className="flex items-center justify-center h-64"><div className="animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full" /></div>;
+
+ // Scatter data: P(Yes) vs Edge
+ const scatterData = preds.filter(p => p.edge != null && p.p_yes != null).map(p => ({
+ id: (p.condition_id || '').substring(0, 12),
+ pYes: parseFloat((p.p_yes * 100).toFixed(1)),
+ edge: parseFloat((p.edge * 100).toFixed(2)),
+ confidence: parseFloat(((p.confidence || 0.5) * 100).toFixed(0)),
+ signal: p.recommendation || 'HOLD',
+ }));
+
+ const buyData = scatterData.filter(d => d.signal.startsWith('BUY'));
+ const holdData = scatterData.filter(d => !d.signal.startsWith('BUY') && d.signal !== 'SKIP');
+ const skipData = scatterData.filter(d => d.signal === 'SKIP');
+
+ // Edge distribution bar
+ const edgeBars = scatterData.map(d => ({
+ name: d.id,
+ edge: d.edge,
+ })).sort((a, b) => b.edge - a.edge);
+
+ // Confidence histogram
+ const confBuckets = [0, 0, 0, 0, 0]; // 0-20, 20-40, 40-60, 60-80, 80-100
+ scatterData.forEach(d => {
+ const idx = Math.min(Math.floor(d.confidence / 20), 4);
+ confBuckets[idx]++;
+ });
+ const confData = confBuckets.map((count, i) => ({
+ range: `${i * 20}-${(i + 1) * 20}%`,
+ count,
+ }));
+
+ return (
+ <div className="space-y-6">
+ <div className="flex items-center justify-between">
+ <div><h1 className="text-2xl font-bold">Models & Predictions</h1><p className="text-gray-500 text-sm">Probabilistic forecasting pipeline</p></div>
+ <button onClick={run} className="btn btn-p">Run Predictions</button>
+ </div>
+
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-4">
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Model Versions</p><p className="stat-v text-blue-400">{models.length}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Predictions</p><p className="stat-v text-purple-400">{preds.length}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Active</p><p className="stat-v text-green-400">{models.filter(m => m.active).length}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Buy Signals</p><p className="stat-v text-green-400">{buyData.length}</p></div>
+ </div>
+
+ {/* Charts Row */}
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
+ {/* P(Yes) vs Edge Scatter */}
+ <div className="card">
+ <h2 className="font-semibold mb-3">P(Yes) vs Edge</h2>
+ {scatterData.length > 0 ? (
+ <ResponsiveContainer width="100%" height={280}>
+ <ScatterChart margin={{ top: 10, right: 10, bottom: 10, left: 0 }}>
+ <CartesianGrid strokeDasharray="3 3" stroke="#1f2937" />
+ <XAxis type="number" dataKey="pYes" name="P(Yes)" unit="%" tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} domain={[0, 100]} />
+ <YAxis type="number" dataKey="edge" name="Edge" unit="%" tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} />
+ <ZAxis type="number" dataKey="confidence" range={[40, 200]} />
+ <Tooltip content={<ChartTooltip />} />
+ {buyData.length > 0 && <Scatter name="BUY" data={buyData} fill="#10b981" fillOpacity={0.8} />}
+ {holdData.length > 0 && <Scatter name="HOLD" data={holdData} fill="#eab308" fillOpacity={0.8} />}
+ {skipData.length > 0 && <Scatter name="SKIP" data={skipData} fill="#ef4444" fillOpacity={0.6} />}
+ <Legend wrapperStyle={{ fontSize: 11, color: '#9ca3af' }} />
+ </ScatterChart>
+ </ResponsiveContainer>
+ ) : <p className="text-gray-500 text-sm text-center py-16">Run predictions to see chart</p>}
+ </div>
+
+ {/* Edge Distribution */}
+ <div className="card">
+ <h2 className="font-semibold mb-3">Edge Distribution</h2>
+ {edgeBars.length > 0 ? (
+ <ResponsiveContainer width="100%" height={280}>
+ <BarChart data={edgeBars} barSize={20}>
+ <CartesianGrid strokeDasharray="3 3" stroke="#1f2937" />
+ <XAxis dataKey="name" tick={{ fill: '#6b7280', fontSize: 9 }} axisLine={false} tickLine={false} />
+ <YAxis tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} tickFormatter={v => `${v}%`} />
+ <Tooltip formatter={(v) => [`${v}%`, 'Edge']} contentStyle={{ background: '#111827', border: '1px solid #374151', borderRadius: 8, fontSize: 12 }} />
+ <Bar dataKey="edge" name="Edge %">
+ {edgeBars.map((entry, i) => (
+ <Cell key={i} fill={entry.edge > 0 ? '#10b981' : '#ef4444'} fillOpacity={0.8} />
+ ))}
+ </Bar>
+ </BarChart>
+ </ResponsiveContainer>
+ ) : <p className="text-gray-500 text-sm text-center py-16">No predictions yet</p>}
+ </div>
+ </div>
+
+ {/* Confidence Distribution */}
+ {scatterData.length > 0 && (
+ <div className="card">
+ <h2 className="font-semibold mb-3">Confidence Distribution</h2>
+ <ResponsiveContainer width="100%" height={160}>
+ <BarChart data={confData} barSize={40}>
+ <CartesianGrid strokeDasharray="3 3" stroke="#1f2937" />
+ <XAxis dataKey="range" tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} />
+ <YAxis tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} allowDecimals={false} />
+ <Tooltip formatter={(v) => [v, 'Predictions']} contentStyle={{ background: '#111827', border: '1px solid #374151', borderRadius: 8, fontSize: 12 }} />
+ <Bar dataKey="count" fill="#8b5cf6" fillOpacity={0.7} radius={[4, 4, 0, 0]} />
+ </BarChart>
+ </ResponsiveContainer>
+ </div>
+ )}
+
+ {/* Model Versions Table */}
+ <div className="card"><h2 className="font-semibold mb-3">Model Versions</h2>
+ <table><thead><tr><th>ID</th><th>Type</th><th>Tag</th><th>Status</th><th>Created</th></tr></thead><tbody>
+ {models.map(m => <tr key={m.id}><td className="font-mono">#{m.id}</td><td>{m.model_type}</td><td>{m.version_tag}</td>
+ <td><span className={`badge ${m.active ? 'bg-green' : 'bg-yellow'}`}>{m.active ? 'Active' : 'Off'}</span></td>
+ <td className="text-gray-400 text-sm">{new Date(m.created_at).toLocaleDateString()}</td></tr>)}
+ </tbody></table>
+ </div>
+
+ {/* Predictions Table */}
+ <div className="card"><h2 className="font-semibold mb-3">Predictions</h2>
+ <table><thead><tr><th>Market</th><th>P(Yes)</th><th>Confidence</th><th>Edge</th><th>Signal</th><th>Time</th></tr></thead><tbody>
+ {preds.length === 0 ? <tr><td colSpan={6} className="text-center text-gray-500 py-8">No predictions yet</td></tr>
+ : preds.map((p, i) => <tr key={i}>
+ <td className="font-mono text-xs max-w-[140px] truncate">{p.question || p.condition_id?.substring(0, 20)}</td>
+ <td className="font-mono text-green-400">{(p.p_yes * 100).toFixed(1)}%</td>
+ <td className="font-mono">{p.confidence ? (p.confidence * 100).toFixed(0) + '%' : '-'}</td>
+ <td className={`font-mono ${(p.edge || 0) > 0 ? 'text-green-400' : 'text-red-400'}`}>{p.edge ? (p.edge * 100).toFixed(2) + '%' : '-'}</td>
+ <td><span className={`badge ${p.recommendation?.startsWith('BUY') ? 'bg-green' : p.recommendation === 'SKIP' ? 'bg-red' : 'bg-yellow'}`}>{p.recommendation || '-'}</span></td>
+ <td className="text-gray-400 text-sm">{new Date(p.asof_ts).toLocaleString()}</td>
+ </tr>)}
+ </tbody></table>
+ </div>
+ </div>
+ );
+}
diff --git a/react-dash/src/pages/Polymarket.jsx b/react-dash/src/pages/Polymarket.jsx
new file mode 100644
index 0000000..478aaa7
--- /dev/null
+++ b/react-dash/src/pages/Polymarket.jsx
@@ -0,0 +1,325 @@
+import React, { useState, useEffect } from 'react';
+import { api, post } from '../api';
+import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, Cell } from 'recharts';
+
+export default function Polymarket() {
+ const [status, setStatus] = useState(null);
+ const [clobOk, setClobOk] = useState(null);
+ const [markets, setMarkets] = useState([]);
+ const [prices, setPrices] = useState([]);
+ const [selectedToken, setSelectedToken] = useState(null);
+ const [orderbook, setOrderbook] = useState(null);
+ const [loading, setLoading] = useState(true);
+ const [liveLoading, setLiveLoading] = useState(false);
+ const [obLoading, setObLoading] = useState(false);
+
+ useEffect(() => {
+ loadAll();
+ }, []);
+
+ async function loadAll() {
+ setLoading(true);
+ try {
+ const [s, m] = await Promise.all([
+ post('/polymarket', { action: 'status' }),
+ api('/markets'),
+ ]);
+ setStatus(s);
+ setMarkets(m.markets || []);
+ } catch {}
+ setLoading(false);
+ }
+
+ async function testClob() {
+ setClobOk('testing');
+ try {
+ const r = await post('/polymarket', { action: 'test_public' });
+ setClobOk(r.success ? r : { error: true });
+ } catch {
+ setClobOk({ error: true });
+ }
+ }
+
+ async function fetchLivePrices() {
+ setLiveLoading(true);
+ try {
+ const r = await post('/polymarket', { action: 'get_markets' });
+ if (r.success) setPrices(r.tracked_prices || []);
+ } catch {}
+ setLiveLoading(false);
+ }
+
+ async function fetchOrderbook(tokenId) {
+ setSelectedToken(tokenId);
+ setObLoading(true);
+ setOrderbook(null);
+ try {
+ const r = await post('/polymarket', { action: 'get_orderbook', token_id: tokenId });
+ if (r.success) setOrderbook(r.orderbook);
+ } catch {}
+ setObLoading(false);
+ }
+
+ const dot = (v) => v ? 'bg-green-500' : 'bg-gray-600';
+
+ // Build orderbook chart data
+ const obChartData = [];
+ if (orderbook) {
+ const bids = (orderbook.bids || []).slice(0, 10).map(b => ({
+ price: parseFloat(b.price),
+ size: parseFloat(b.size),
+ side: 'bid',
+ }));
+ const asks = (orderbook.asks || []).slice(0, 10).map(a => ({
+ price: parseFloat(a.price),
+ size: parseFloat(a.size),
+ side: 'ask',
+ }));
+ bids.reverse().forEach(b => obChartData.push(b));
+ asks.forEach(a => obChartData.push(a));
+ }
+
+ // Price chart for tracked tokens
+ const priceChartData = prices.map(p => ({
+ name: (p.question || '').substring(0, 30) + '...',
+ price: parseFloat(p.price || 0),
+ outcome: p.outcome,
+ }));
+
+ if (loading) return <div className="flex items-center justify-center h-64"><div className="animate-spin w-8 h-8 border-2 border-purple-500 border-t-transparent rounded-full" /></div>;
+
+ return (
+ <div className="space-y-6">
+ <div className="flex items-center justify-between">
+ <div>
+ <h1 className="text-2xl font-bold">Polymarket</h1>
+ <p className="text-gray-500 text-sm">Live CLOB data, orderbooks & market prices</p>
+ </div>
+ <div className="flex gap-3">
+ <button onClick={testClob} className={`btn btn-s text-sm ${clobOk?.ok ? 'text-green-400 border-green-500/30' : ''}`}>
+ {clobOk === 'testing' ? 'Testing...' : clobOk?.ok ? 'CLOB OK' : clobOk?.error ? 'Error' : 'Test CLOB'}
+ </button>
+ <button onClick={fetchLivePrices} disabled={liveLoading} className="btn btn-p text-sm">
+ {liveLoading ? 'Fetching...' : 'Fetch Live Prices'}
+ </button>
+ </div>
+ </div>
+
+ {/* Connection Status Bar */}
+ <div className="card">
+ <div className="flex items-center gap-6">
+ <div className="flex items-center gap-2">
+ <span className={`w-2 h-2 rounded-full ${dot(status?.connected)}`} />
+ <span className="text-sm">{status?.connected ? 'API Connected' : 'Not Connected'}</span>
+ </div>
+ {status?.api_key && <span className="text-xs text-gray-500 font-mono">Key: {status.api_key}</span>}
+ {status?.wallet && <span className="text-xs text-gray-500 font-mono">Wallet: {status.wallet}</span>}
+ {clobOk?.server_time && <span className="text-xs text-gray-500">Server: {new Date(parseInt(clobOk.server_time) * 1000).toLocaleTimeString()}</span>}
+ <span className="text-xs text-gray-500 ml-auto">{markets.length} tracked markets</span>
+ </div>
+ </div>
+
+ {/* Stats Cards */}
+ <div className="grid grid-cols-4 gap-4">
+ <div className="card">
+ <p className="text-xs text-gray-500 uppercase mb-1">Tracked Markets</p>
+ <p className="stat-v text-purple-400">{markets.length}</p>
+ </div>
+ <div className="card">
+ <p className="text-xs text-gray-500 uppercase mb-1">Active</p>
+ <p className="stat-v text-green-400">{markets.filter(m => m.active).length}</p>
+ </div>
+ <div className="card">
+ <p className="text-xs text-gray-500 uppercase mb-1">Live Prices</p>
+ <p className="stat-v text-blue-400">{prices.length}</p>
+ </div>
+ <div className="card">
+ <p className="text-xs text-gray-500 uppercase mb-1">API Status</p>
+ <p className={`stat-v ${status?.connected ? 'text-green-400' : 'text-gray-500'}`}>{status?.connected ? 'LIVE' : 'OFF'}</p>
+ </div>
+ </div>
+
+ {/* Live Prices Chart */}
+ {priceChartData.length > 0 && (
+ <div className="card">
+ <h2 className="font-semibold mb-3">Live Token Prices</h2>
+ <ResponsiveContainer width="100%" height={250}>
+ <BarChart data={priceChartData} layout="vertical">
+ <CartesianGrid strokeDasharray="3 3" stroke="#1f2937" />
+ <XAxis type="number" domain={[0, 1]} tickFormatter={v => `${(v * 100).toFixed(0)}%`} stroke="#6b7280" />
+ <YAxis type="category" dataKey="name" width={200} tick={{ fontSize: 11, fill: '#9ca3af' }} />
+ <Tooltip formatter={v => `${(v * 100).toFixed(1)}%`} contentStyle={{ background: '#1f2937', border: '1px solid #374151', borderRadius: 8 }} />
+ <Bar dataKey="price" radius={[0, 4, 4, 0]}>
+ {priceChartData.map((d, i) => (
+ <Cell key={i} fill={d.outcome === 'YES' ? '#22c55e' : '#ef4444'} fillOpacity={0.7} />
+ ))}
+ </Bar>
+ </BarChart>
+ </ResponsiveContainer>
+ </div>
+ )}
+
+ {/* Markets Table with Live Prices */}
+ <div className="card overflow-x-auto">
+ <div className="flex items-center justify-between mb-3">
+ <h2 className="font-semibold">Weather Markets</h2>
+ <span className="text-xs text-gray-500">{markets.length} markets</span>
+ </div>
+ <table>
+ <thead>
+ <tr><th>Question</th><th>Category</th><th>Liquidity</th><th>End Date</th><th>Live Price</th><th>Orderbook</th></tr>
+ </thead>
+ <tbody>
+ {markets.length === 0 ? (
+ <tr><td colSpan={6} className="text-center text-gray-500 py-8">No markets tracked. Go to Markets page to ingest.</td></tr>
+ ) : markets.map(m => {
+ const livePrice = prices.find(p => p.condition_id === m.condition_id);
+ return (
+ <tr key={m.condition_id}>
+ <td className="max-w-[300px]">
+ <p className="truncate font-medium">{m.question}</p>
+ <p className="text-xs text-gray-600 truncate font-mono">{m.condition_id?.substring(0, 12)}...</p>
+ </td>
+ <td><span className="badge bg-purple">{m.category || 'weather'}</span></td>
+ <td className="font-mono text-sm">${parseFloat(m.liquidity || 0).toFixed(0)}</td>
+ <td className="text-gray-400 text-sm">{m.end_ts ? new Date(m.end_ts).toLocaleDateString() : '-'}</td>
+ <td>
+ {livePrice ? (
+ <span className="font-mono text-green-400 font-medium">{(parseFloat(livePrice.price) * 100).toFixed(1)}%</span>
+ ) : (
+ <span className="text-gray-600 text-xs">—</span>
+ )}
+ </td>
+ <td>
+ {m.tokens?.length > 0 || livePrice?.token_id ? (
+ <button
+ onClick={() => fetchOrderbook(livePrice?.token_id || m.tokens?.[0]?.token_id)}
+ className="text-xs text-purple-400 hover:text-purple-300"
+ >
+ View
+ </button>
+ ) : (
+ <span className="text-gray-600 text-xs">—</span>
+ )}
+ </td>
+ </tr>
+ );
+ })}
+ </tbody>
+ </table>
+ </div>
+
+ {/* Orderbook View */}
+ {(orderbook || obLoading) && (
+ <div className="card">
+ <div className="flex items-center justify-between mb-4">
+ <h2 className="font-semibold">Orderbook</h2>
+ <div className="flex items-center gap-3">
+ <span className="text-xs text-gray-500 font-mono">{selectedToken?.substring(0, 12)}...</span>
+ <button onClick={() => { setOrderbook(null); setSelectedToken(null); }} className="text-xs text-gray-500 hover:text-gray-300">Close</button>
+ </div>
+ </div>
+
+ {obLoading ? (
+ <div className="flex items-center justify-center h-32"><div className="animate-spin w-6 h-6 border-2 border-purple-500 border-t-transparent rounded-full" /></div>
+ ) : orderbook ? (
+ <div className="grid grid-cols-2 gap-6">
+ {/* Bids */}
+ <div>
+ <h3 className="text-sm font-medium text-green-400 mb-2">Bids (Buy Orders)</h3>
+ <div className="space-y-1">
+ <div className="flex justify-between text-[10px] text-gray-500 uppercase px-2">
+ <span>Price</span><span>Size</span>
+ </div>
+ {(orderbook.bids || []).slice(0, 12).map((b, i) => (
+ <div key={i} className="flex justify-between text-sm px-2 py-1 rounded relative overflow-hidden">
+ <div className="absolute inset-0 bg-green-500/10" style={{ width: `${Math.min(parseFloat(b.size) * 10, 100)}%` }} />
+ <span className="font-mono text-green-400 relative z-10">{parseFloat(b.price).toFixed(3)}</span>
+ <span className="font-mono text-gray-400 relative z-10">{parseFloat(b.size).toFixed(1)}</span>
+ </div>
+ ))}
+ {(!orderbook.bids || orderbook.bids.length === 0) && <p className="text-gray-600 text-xs text-center py-4">No bids</p>}
+ </div>
+ </div>
+ {/* Asks */}
+ <div>
+ <h3 className="text-sm font-medium text-red-400 mb-2">Asks (Sell Orders)</h3>
+ <div className="space-y-1">
+ <div className="flex justify-between text-[10px] text-gray-500 uppercase px-2">
+ <span>Price</span><span>Size</span>
+ </div>
+ {(orderbook.asks || []).slice(0, 12).map((a, i) => (
+ <div key={i} className="flex justify-between text-sm px-2 py-1 rounded relative overflow-hidden">
+ <div className="absolute inset-0 bg-red-500/10 right-0" style={{ width: `${Math.min(parseFloat(a.size) * 10, 100)}%` }} />
+ <span className="font-mono text-red-400 relative z-10">{parseFloat(a.price).toFixed(3)}</span>
+ <span className="font-mono text-gray-400 relative z-10">{parseFloat(a.size).toFixed(1)}</span>
+ </div>
+ ))}
+ {(!orderbook.asks || orderbook.asks.length === 0) && <p className="text-gray-600 text-xs text-center py-4">No asks</p>}
+ </div>
+ </div>
+ </div>
+ ) : null}
+
+ {/* Orderbook Depth Chart */}
+ {obChartData.length > 0 && (
+ <div className="mt-4 pt-4 border-t border-gray-800">
+ <h3 className="text-sm font-medium text-gray-400 mb-2">Depth Chart</h3>
+ <ResponsiveContainer width="100%" height={200}>
+ <BarChart data={obChartData}>
+ <CartesianGrid strokeDasharray="3 3" stroke="#1f2937" />
+ <XAxis dataKey="price" tickFormatter={v => v.toFixed(2)} stroke="#6b7280" />
+ <YAxis stroke="#6b7280" />
+ <Tooltip formatter={v => v.toFixed(2)} contentStyle={{ background: '#1f2937', border: '1px solid #374151', borderRadius: 8 }} />
+ <Bar dataKey="size" radius={[4, 4, 0, 0]}>
+ {obChartData.map((d, i) => (
+ <Cell key={i} fill={d.side === 'bid' ? '#22c55e' : '#ef4444'} fillOpacity={0.6} />
+ ))}
+ </Bar>
+ </BarChart>
+ </ResponsiveContainer>
+ </div>
+ )}
+ </div>
+ )}
+
+ {/* Quick Reference */}
+ <div className="card">
+ <h2 className="font-semibold mb-3">CLOB Quick Reference</h2>
+ <div className="grid grid-cols-3 gap-4 text-sm">
+ <div>
+ <p className="text-gray-500 text-xs uppercase mb-2">Public Endpoints</p>
+ <ul className="space-y-1 text-gray-400 text-xs font-mono">
+ <li>/ok — Health check</li>
+ <li>/time — Server time</li>
+ <li>/book?token_id=X — Orderbook</li>
+ <li>/price?token_id=X — Best price</li>
+ <li>/midpoint?token_id=X — Mid price</li>
+ <li>/spread?token_id=X — Bid-ask spread</li>
+ </ul>
+ </div>
+ <div>
+ <p className="text-gray-500 text-xs uppercase mb-2">Auth Endpoints</p>
+ <ul className="space-y-1 text-gray-400 text-xs font-mono">
+ <li>POST /order — Place order</li>
+ <li>DELETE /order — Cancel order</li>
+ <li>POST /orders — Batch orders</li>
+ <li>GET /data/trades — User trades</li>
+ <li>GET /data/orders — User orders</li>
+ </ul>
+ </div>
+ <div>
+ <p className="text-gray-500 text-xs uppercase mb-2">Trading Notes</p>
+ <ul className="space-y-1 text-gray-400 text-xs">
+ <li>Chain: Polygon (137)</li>
+ <li>Collateral: USDC (6 decimals)</li>
+ <li>Conditional: 6 decimals</li>
+ <li>Min order: varies per market</li>
+ <li>Paper mode: no real funds needed</li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+}
diff --git a/react-dash/src/pages/Risk.jsx b/react-dash/src/pages/Risk.jsx
new file mode 100644
index 0000000..1b4cb2b
--- /dev/null
+++ b/react-dash/src/pages/Risk.jsx
@@ -0,0 +1,255 @@
+import React, { useState, useEffect } from 'react';
+import { api, post } from '../api';
+import { BarChart, Bar, XAxis, YAxis, Tooltip, ResponsiveContainer, CartesianGrid, RadialBarChart, RadialBar, Legend } from 'recharts';
+
+// Risk presets calculated for $50 bankroll, 30-day experiment
+const PRESETS = {
+ conservative: {
+ label: 'Conservative',
+ color: 'blue',
+ desc: 'Preserve capital. Small bets, strict limits.',
+ icon: 'M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z',
+ config: {
+ paper_mode: true,
+ max_bet_usd: 0.25,
+ max_daily_loss_usd: 2.00,
+ max_open_exposure_usd: 3.00,
+ max_drawdown_pct: 10,
+ min_edge_threshold: 0.05,
+ min_liquidity: 200,
+ fractional_kelly: 0.05,
+ },
+ kelly_note: '5% Kelly -> ~$0.12 avg bet on 10% edge',
+ survival: '99% chance to survive 30 days',
+ },
+ moderate: {
+ label: 'Moderate',
+ color: 'yellow',
+ desc: 'Balanced risk/reward. Default for $50 experiment.',
+ icon: 'M3 6l3 1m0 0l-3 9a5.002 5.002 0 006.001 0M6 7l3 9M6 7l6-2m6 2l3-1m-3 1l-3 9a5.002 5.002 0 006.001 0M18 7l3 9m-3-9l-6-2m0-2v2m0 16V5m0 16H9m3 0h3',
+ config: {
+ paper_mode: true,
+ max_bet_usd: 0.50,
+ max_daily_loss_usd: 5.00,
+ max_open_exposure_usd: 5.00,
+ max_drawdown_pct: 20,
+ min_edge_threshold: 0.03,
+ min_liquidity: 100,
+ fractional_kelly: 0.10,
+ },
+ kelly_note: '10% Kelly -> ~$0.25 avg bet on 5% edge',
+ survival: '90% chance to survive 30 days',
+ },
+ aggressive: {
+ label: 'Aggressive',
+ color: 'red',
+ desc: 'Max growth. Higher risk of ruin.',
+ icon: 'M17.657 18.657A8 8 0 016.343 7.343S7 9 9 10c0-2 .5-5 2.986-7C14 5 16.09 5.777 17.656 7.343A7.975 7.975 0 0120 13a7.975 7.975 0 01-2.343 5.657z',
+ config: {
+ paper_mode: true,
+ max_bet_usd: 1.00,
+ max_daily_loss_usd: 8.00,
+ max_open_exposure_usd: 10.00,
+ max_drawdown_pct: 35,
+ min_edge_threshold: 0.02,
+ min_liquidity: 50,
+ fractional_kelly: 0.20,
+ },
+ kelly_note: '20% Kelly -> ~$0.50 avg bet on 5% edge',
+ survival: '70% chance to survive 30 days',
+ },
+};
+
+export default function Risk() {
+ const [r, setR] = useState(null);
+ const [loading, setL] = useState(true);
+ const [applying, setApplying] = useState(null);
+
+ const load = () => api('/risk').then(d => { setR(d.state); setL(false); });
+ useEffect(() => { load(); const i = setInterval(load, 10000); return () => clearInterval(i); }, []);
+
+ async function toggleKill() {
+ const active = r?.kill_switch_active;
+ if (!active) {
+ const reason = prompt('Kill switch reason:');
+ if (!reason) return;
+ await post('/risk', { action: 'kill_switch_activate', reason });
+ } else {
+ await post('/risk', { action: 'kill_switch_deactivate' });
+ }
+ load();
+ }
+
+ async function updateCfg(key, val) {
+ const cfg = { ...r.config, [key]: val };
+ await post('/risk', { action: 'update_config', config: cfg });
+ load();
+ }
+
+ async function applyPreset(key) {
+ setApplying(key);
+ const preset = PRESETS[key];
+ await post('/risk', { action: 'update_config', config: preset.config });
+ load();
+ setTimeout(() => setApplying(null), 600);
+ }
+
+ if (loading) return <div className="flex items-center justify-center h-64"><div className="animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full" /></div>;
+
+ const c = r?.config || {};
+ const bankroll = parseFloat(r?.bankroll || 50);
+ const exposure = parseFloat(r?.open_exposure || 0);
+ const dailyPnl = parseFloat(r?.daily_pnl || 0);
+ const drawdown = parseFloat(r?.max_drawdown_pct || 0);
+
+ // Gauge data for risk metrics
+ const gaugeData = [
+ { name: 'Exposure', value: Math.min(100, (exposure / (c.max_open_exposure_usd || 5)) * 100), fill: '#3b82f6' },
+ { name: 'Daily Loss', value: Math.min(100, (Math.abs(dailyPnl) / (c.max_daily_loss_usd || 5)) * 100), fill: dailyPnl < 0 ? '#ef4444' : '#10b981' },
+ { name: 'Drawdown', value: Math.min(100, (drawdown / (c.max_drawdown_pct || 20)) * 100), fill: '#8b5cf6' },
+ ];
+
+ // Detect active preset
+ const activePreset = Object.entries(PRESETS).find(([_, p]) =>
+ p.config.fractional_kelly === c.fractional_kelly &&
+ p.config.max_bet_usd === c.max_bet_usd
+ )?.[0];
+
+ return (
+ <div className="space-y-6">
+ <div className="flex items-center justify-between">
+ <div><h1 className="text-2xl font-bold">Risk Management</h1><p className="text-gray-500 text-sm">Controls, presets & kill switches</p></div>
+ <button onClick={toggleKill} className={`btn ${r?.kill_switch_active ? 'btn-s' : 'btn-d'}`}>{r?.kill_switch_active ? 'Deactivate Kill Switch' : 'Activate Kill Switch'}</button>
+ </div>
+
+ {r?.kill_switch_active && (
+ <div className="bg-red-500/10 border border-red-500/30 rounded-xl p-4 flex items-center gap-3">
+ <span className="text-2xl">🚨</span>
+ <div><p className="font-semibold text-red-400">KILL SWITCH ACTIVE</p><p className="text-sm text-gray-400">{r.kill_reason}</p></div>
+ </div>
+ )}
+
+ {/* Stats */}
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-4">
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Bankroll</p><p className="stat-v text-green-400">${bankroll.toFixed(2)}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Daily P&L</p><p className={`stat-v ${dailyPnl >= 0 ? 'text-green-400' : 'text-red-400'}`}>${dailyPnl.toFixed(2)}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Exposure</p><p className="stat-v text-blue-400">${exposure.toFixed(2)}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Drawdown</p><p className="stat-v text-purple-400">{drawdown.toFixed(1)}%</p></div>
+ </div>
+
+ {/* Risk Gauge Chart */}
+ <div className="card">
+ <h2 className="font-semibold mb-3">Risk Utilization</h2>
+ <ResponsiveContainer width="100%" height={160}>
+ <BarChart data={gaugeData} layout="vertical" barSize={20}>
+ <CartesianGrid strokeDasharray="3 3" stroke="#1f2937" horizontal={false} />
+ <XAxis type="number" domain={[0, 100]} tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} tickFormatter={v => `${v}%`} />
+ <YAxis type="category" dataKey="name" tick={{ fill: '#9ca3af', fontSize: 12 }} axisLine={false} tickLine={false} width={80} />
+ <Tooltip formatter={(v) => [`${v.toFixed(0)}%`, 'Utilization']} contentStyle={{ background: '#111827', border: '1px solid #374151', borderRadius: 8, fontSize: 12 }} />
+ <Bar dataKey="value" radius={[0, 4, 4, 0]}>
+ {gaugeData.map((entry, i) => (
+ <React.Fragment key={i}>
+ {React.createElement('rect', null)}
+ </React.Fragment>
+ ))}
+ </Bar>
+ </BarChart>
+ </ResponsiveContainer>
+ </div>
+
+ {/* Risk Presets */}
+ <div className="card" style={{ background: 'linear-gradient(135deg, rgba(59,130,246,0.03), rgba(139,92,246,0.03))' }}>
+ <div className="mb-4">
+ <h2 className="font-semibold">Risk Presets</h2>
+ <p className="text-xs text-gray-500 mt-0.5">One-click profiles optimized for $50 bankroll / 30-day experiment</p>
+ </div>
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
+ {Object.entries(PRESETS).map(([key, preset]) => {
+ const isActive = activePreset === key;
+ return (
+ <button
+ key={key}
+ onClick={() => applyPreset(key)}
+ disabled={applying === key}
+ className={`text-left rounded-xl border p-4 transition-all ${isActive
+ ? `border-${preset.color}-500/50 bg-${preset.color}-500/10`
+ : 'border-gray-800 hover:border-gray-700 bg-gray-800/20 hover:bg-gray-800/40'
+ } ${applying === key ? 'opacity-50' : ''}`}
+ >
+ <div className="flex items-center gap-3 mb-3">
+ <div className={`w-10 h-10 rounded-lg flex items-center justify-center bg-${preset.color}-500/15`}>
+ <svg className={`w-5 h-5 text-${preset.color}-400`} fill="none" stroke="currentColor" strokeWidth="1.5" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d={preset.icon} /></svg>
+ </div>
+ <div>
+ <div className="flex items-center gap-2">
+ <p className="font-semibold">{preset.label}</p>
+ {isActive && <span className={`badge bg-${preset.color}`}>Active</span>}
+ </div>
+ <p className="text-xs text-gray-500">{preset.desc}</p>
+ </div>
+ </div>
+ <div className="space-y-1.5 text-xs">
+ <div className="flex justify-between"><span className="text-gray-500">Max Bet</span><span className="font-mono">${preset.config.max_bet_usd}</span></div>
+ <div className="flex justify-between"><span className="text-gray-500">Kelly Fraction</span><span className="font-mono">{preset.config.fractional_kelly}x</span></div>
+ <div className="flex justify-between"><span className="text-gray-500">Max Exposure</span><span className="font-mono">${preset.config.max_open_exposure_usd}</span></div>
+ <div className="flex justify-between"><span className="text-gray-500">Min Edge</span><span className="font-mono">{(preset.config.min_edge_threshold * 100)}%</span></div>
+ <div className="flex justify-between"><span className="text-gray-500">Max Drawdown</span><span className="font-mono">{preset.config.max_drawdown_pct}%</span></div>
+ </div>
+ <div className="mt-3 pt-3 border-t border-gray-800">
+ <p className="text-[10px] text-gray-500">{preset.kelly_note}</p>
+ <p className="text-[10px] text-gray-400 mt-0.5">{preset.survival}</p>
+ </div>
+ </button>
+ );
+ })}
+ </div>
+ </div>
+
+ {/* Manual Config */}
+ <div className="card">
+ <h2 className="font-semibold mb-4">Risk Configuration</h2>
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-3">
+ {[
+ { k: 'paper_mode', l: 'Paper Mode', t: 'toggle', desc: 'No real orders' },
+ { k: 'max_bet_usd', l: 'Max Bet ($)', t: 'num', s: 0.05 },
+ { k: 'max_daily_loss_usd', l: 'Max Daily Loss ($)', t: 'num', s: 0.5 },
+ { k: 'max_open_exposure_usd', l: 'Max Exposure ($)', t: 'num', s: 0.5 },
+ { k: 'max_drawdown_pct', l: 'Max Drawdown (%)', t: 'num', s: 1 },
+ { k: 'min_edge_threshold', l: 'Min Edge', t: 'num', s: 0.005 },
+ { k: 'min_liquidity', l: 'Min Liquidity ($)', t: 'num', s: 10 },
+ { k: 'fractional_kelly', l: 'Kelly Fraction', t: 'num', s: 0.05 },
+ ].map(item => (
+ <div key={item.k} className="flex items-center justify-between bg-gray-800/30 rounded-lg p-3">
+ <div><p className="text-sm font-medium">{item.l}</p>{item.desc && <p className="text-xs text-gray-500">{item.desc}</p>}</div>
+ {item.t === 'toggle' ?
+ <button onClick={() => updateCfg(item.k, !c[item.k])} className={`w-12 h-6 rounded-full relative ${c[item.k] ? 'bg-green-500' : 'bg-gray-600'}`}>
+ <span className={`absolute top-0.5 w-5 h-5 bg-white rounded-full transition-transform ${c[item.k] ? 'left-6' : 'left-0.5'}`} />
+ </button>
+ : <input type="number" step={item.s} value={c[item.k] ?? ''} onChange={e => updateCfg(item.k, parseFloat(e.target.value))} className="w-24 bg-gray-800 border border-gray-700 rounded px-2 py-1 text-sm text-right font-mono" />}
+ </div>
+ ))}
+ </div>
+ </div>
+
+ {/* Kelly Calculator */}
+ <div className="card">
+ <h2 className="font-semibold mb-3">Kelly Bet Calculator</h2>
+ <p className="text-xs text-gray-500 mb-4">Suggested bet sizes for current config with $50 bankroll</p>
+ <div className="grid grid-cols-3 md:grid-cols-5 gap-3">
+ {[0.02, 0.03, 0.05, 0.08, 0.10].map(edge => {
+ const kelly = c.fractional_kelly || 0.10;
+ const fullKelly = edge / (1 - edge); // simplified for binary bet
+ const betSize = Math.min(c.max_bet_usd || 0.50, bankroll * kelly * fullKelly);
+ return (
+ <div key={edge} className="bg-gray-800/30 rounded-lg p-3 text-center">
+ <p className="text-xs text-gray-500 mb-1">{(edge * 100).toFixed(0)}% edge</p>
+ <p className={`font-mono font-semibold ${betSize > 0 ? 'text-green-400' : 'text-gray-500'}`}>${betSize.toFixed(2)}</p>
+ <p className="text-[10px] text-gray-600 mt-0.5">of ${bankroll.toFixed(0)}</p>
+ </div>
+ );
+ })}
+ </div>
+ </div>
+ </div>
+ );
+}
diff --git a/react-dash/src/pages/Settings.jsx b/react-dash/src/pages/Settings.jsx
new file mode 100644
index 0000000..0db894d
--- /dev/null
+++ b/react-dash/src/pages/Settings.jsx
@@ -0,0 +1,331 @@
+import React, { useState, useEffect } from 'react';
+import { api, post } from '../api';
+
+export default function Settings() {
+ const [h, setH] = useState(null);
+ // Polymarket credentials (manual entry from polymarket.com/settings?tab=builder)
+ const [polyKey, setPolyKey] = useState('');
+ const [polySecret, setPolySecret] = useState('');
+ const [polyPass, setPolyPass] = useState('');
+ const [polyWallet, setPolyWallet] = useState('');
+ const [showSecret, setShowSecret] = useState(false);
+ // Connection state
+ const [polyStatus, setPolyStatus] = useState(null);
+ const [polyInfo, setPolyInfo] = useState(null);
+ const [polyMsg, setPolyMsg] = useState('');
+ const [clobOk, setClobOk] = useState(null);
+
+ const [testResults, setTestResults] = useState({});
+
+ useEffect(() => {
+ api('/health').then(setH);
+ checkPolyStatus();
+ }, []);
+
+ async function checkPolyStatus() {
+ setPolyStatus('checking');
+ try {
+ const r = await post('/polymarket', { action: 'status' });
+ setPolyInfo(r);
+ setPolyStatus(r.connected ? 'connected' : 'disconnected');
+ } catch {
+ setPolyStatus('disconnected');
+ }
+ }
+
+ async function testPublicClob() {
+ setClobOk('testing');
+ try {
+ const r = await post('/polymarket', { action: 'test_public' });
+ setClobOk(r.success ? 'ok' : 'error');
+ if (r.success) setPolyMsg(`CLOB OK — Server time: ${r.server_time}`);
+ } catch {
+ setClobOk('error');
+ }
+ }
+
+ async function saveKeys() {
+ if (!polyKey || !polySecret || !polyPass) return;
+ setPolyStatus('saving');
+ setPolyMsg('');
+ try {
+ const r = await post('/polymarket', {
+ action: 'save_keys',
+ api_key: polyKey,
+ secret: polySecret,
+ passphrase: polyPass,
+ wallet: polyWallet || null,
+ });
+ if (r.success) {
+ setPolyStatus('connected');
+ setPolyInfo({ api_key: r.api_key, wallet: polyWallet, connected_at: new Date().toISOString(), connected: true });
+ setPolyMsg('Credentials saved! Use "Test Auth" to verify.');
+ setPolyKey(''); setPolySecret(''); setPolyPass('');
+ } else {
+ setPolyStatus('error');
+ setPolyMsg(r.error || 'Failed to save');
+ }
+ } catch (err) {
+ setPolyStatus('error');
+ setPolyMsg('Error: ' + err.message);
+ }
+ }
+
+ async function testAuth() {
+ setPolyMsg('Testing authenticated connection...');
+ try {
+ const r = await post('/polymarket', { action: 'auth_test' });
+ if (r.success) {
+ setPolyMsg(`${r.message} | ${r.trades ?? 0} trades found`);
+ setPolyStatus('connected');
+ } else {
+ setPolyMsg(r.error || 'Auth test failed');
+ }
+ } catch (err) {
+ setPolyMsg('Error: ' + err.message);
+ }
+ }
+
+ async function disconnectPoly() {
+ try {
+ await post('/polymarket', { action: 'disconnect' });
+ setPolyStatus('disconnected');
+ setPolyInfo(null);
+ setPolyMsg('Disconnected');
+ } catch {
+ setPolyMsg('Error disconnecting');
+ }
+ }
+
+ async function testService(name, fn) {
+ setTestResults(prev => ({ ...prev, [name]: 'testing' }));
+ try {
+ const r = await fn();
+ setTestResults(prev => ({ ...prev, [name]: r.success || r.sent ? 'ok' : 'error' }));
+ } catch {
+ setTestResults(prev => ({ ...prev, [name]: 'error' }));
+ }
+ }
+
+ async function testNWS() { await testService('nws', () => post('/weather', { action: 'test_nws' })); }
+ async function testSlack() { await testService('slack', () => post('/alerts', { action: 'test' })); }
+
+ async function runW(w) {
+ const r = await post('/workers', { action: 'run', worker: w });
+ setTestResults(prev => ({ ...prev, [w]: r.message ? 'ok' : 'error' }));
+ }
+
+ const dot = (s) => {
+ if (s === true || s === 'ok' || s === 'connected') return 'bg-green-500';
+ if (s === 'testing' || s === 'checking' || s === 'saving') return 'bg-yellow-500 animate-pulse';
+ if (s === 'error') return 'bg-red-500';
+ return 'bg-gray-600';
+ };
+
+ return (
+ <div className="space-y-6">
+ <div><h1 className="text-2xl font-bold">Settings</h1><p className="text-gray-500 text-sm">System config & Polymarket login</p></div>
+
+ {/* ── Polymarket CLOB Login ── */}
+ <div className="card border border-purple-500/20" style={{ background: 'linear-gradient(135deg, rgba(139,92,246,0.08), rgba(59,130,246,0.04))' }}>
+ <div className="flex items-center gap-3 mb-5">
+ <div className="w-12 h-12 rounded-xl flex items-center justify-center bg-purple-500/20">
+ <svg className="w-6 h-6 text-purple-400" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5"><path strokeLinecap="round" strokeLinejoin="round" d="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9" /></svg>
+ </div>
+ <div className="flex-1">
+ <h2 className="text-lg font-bold">Polymarket CLOB Login</h2>
+ <p className="text-xs text-gray-500">Connect with your Builder API keys for live trading on Polygon</p>
+ </div>
+ <div className="flex items-center gap-2">
+ <span className={`w-2.5 h-2.5 rounded-full ${dot(polyStatus)}`} />
+ <span className={`text-sm font-medium ${polyStatus === 'connected' ? 'text-green-400' : polyStatus === 'error' ? 'text-red-400' : 'text-gray-500'}`}>
+ {polyStatus === 'connected' ? 'Connected' : polyStatus === 'saving' ? 'Saving...' : polyStatus === 'checking' ? 'Checking...' : polyStatus === 'error' ? 'Error' : 'Not Connected'}
+ </span>
+ </div>
+ </div>
+
+ {/* Connected State */}
+ {polyStatus === 'connected' && polyInfo && (
+ <div className="bg-green-500/10 border border-green-500/20 rounded-lg p-4 mb-4">
+ <div className="grid grid-cols-3 gap-4 text-sm">
+ <div>
+ <span className="text-gray-500 text-xs block mb-0.5">API Key</span>
+ <span className="font-mono text-green-400">{polyInfo.api_key || '—'}</span>
+ </div>
+ <div>
+ <span className="text-gray-500 text-xs block mb-0.5">Wallet</span>
+ <span className="font-mono text-green-400">{polyInfo.wallet ? `${polyInfo.wallet.substring(0, 6)}...${polyInfo.wallet.slice(-4)}` : 'Not set'}</span>
+ </div>
+ <div>
+ <span className="text-gray-500 text-xs block mb-0.5">Connected</span>
+ <span className="text-green-400">{polyInfo.connected_at ? new Date(polyInfo.connected_at).toLocaleDateString() : '—'}</span>
+ </div>
+ </div>
+ <div className="flex gap-3 mt-3">
+ <button onClick={testAuth} className="btn btn-s text-xs">Test Auth</button>
+ <button onClick={testPublicClob} className={`btn btn-s text-xs ${clobOk === 'ok' ? 'text-green-400 border-green-500/30' : ''}`}>
+ {clobOk === 'testing' ? '...' : clobOk === 'ok' ? 'CLOB OK' : 'Test CLOB'}
+ </button>
+ <button onClick={disconnectPoly} className="btn text-xs text-red-400 hover:text-red-300 border border-red-500/30 hover:border-red-500/50">Disconnect</button>
+ </div>
+ </div>
+ )}
+
+ {/* Not Connected — Credential Entry */}
+ {polyStatus !== 'connected' && (
+ <div className="space-y-3">
+ <div className="bg-gray-800/40 rounded-lg p-4">
+ <p className="text-xs text-gray-400 mb-3">
+ Get your Builder API keys from{' '}
+ <span className="text-purple-400 font-mono">polymarket.com/settings</span>
+ {' '}→ Builder tab → Create New
+ </p>
+ <div className="space-y-2.5">
+ <div>
+ <label className="text-[11px] text-gray-500 mb-1 block">API Key</label>
+ <input type="text" value={polyKey} onChange={e => setPolyKey(e.target.value)} placeholder="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" className="w-full bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 text-sm font-mono focus:outline-none focus:border-purple-500 transition" />
+ </div>
+ <div>
+ <label className="text-[11px] text-gray-500 mb-1 block">API Secret</label>
+ <div className="relative">
+ <input type={showSecret ? 'text' : 'password'} value={polySecret} onChange={e => setPolySecret(e.target.value)} placeholder="Base64 encoded secret" className="w-full bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 pr-10 text-sm font-mono focus:outline-none focus:border-purple-500 transition" />
+ <button type="button" onClick={() => setShowSecret(!showSecret)} className="absolute right-3 top-1/2 -translate-y-1/2 text-gray-500 hover:text-gray-300">
+ <svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d={showSecret ? 'M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.878 9.878L3 3m6.878 6.879L21 21' : 'M15 12a3 3 0 11-6 0 3 3 0 016 0z M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z'} /></svg>
+ </button>
+ </div>
+ </div>
+ <div>
+ <label className="text-[11px] text-gray-500 mb-1 block">Passphrase</label>
+ <input type="password" value={polyPass} onChange={e => setPolyPass(e.target.value)} placeholder="Passphrase" className="w-full bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 text-sm font-mono focus:outline-none focus:border-purple-500 transition" />
+ </div>
+ <div>
+ <label className="text-[11px] text-gray-500 mb-1 block">Wallet Address <span className="text-gray-600">(optional)</span></label>
+ <input type="text" value={polyWallet} onChange={e => setPolyWallet(e.target.value)} placeholder="0x..." className="w-full bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 text-sm font-mono focus:outline-none focus:border-purple-500 transition" />
+ </div>
+ </div>
+ </div>
+
+ <div className="flex gap-3">
+ <button onClick={saveKeys} disabled={!polyKey || !polySecret || !polyPass || polyStatus === 'saving'} className="btn btn-p flex items-center gap-2 disabled:opacity-50">
+ {polyStatus === 'saving' && <span className="animate-spin w-4 h-4 border-2 border-white border-t-transparent rounded-full" />}
+ {polyStatus === 'saving' ? 'Saving...' : 'Connect'}
+ </button>
+ <button onClick={testPublicClob} className={`btn btn-s ${clobOk === 'ok' ? 'text-green-400 border-green-500/30' : ''}`}>
+ {clobOk === 'testing' ? '...' : clobOk === 'ok' ? 'CLOB Reachable' : 'Test CLOB'}
+ </button>
+ </div>
+ </div>
+ )}
+
+ {/* Status message */}
+ {polyMsg && (
+ <div className={`mt-3 text-sm p-3 rounded-lg ${polyMsg.toLowerCase().includes('error') || polyMsg.toLowerCase().includes('fail') ? 'bg-red-500/10 text-red-400' : 'bg-green-500/10 text-green-400'}`}>
+ {polyMsg}
+ </div>
+ )}
+
+ {/* API Architecture */}
+ <div className="mt-5 pt-4 border-t border-gray-800/50">
+ <p className="text-xs text-gray-500 mb-3 font-medium uppercase tracking-wider">API Endpoints</p>
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-2 text-xs">
+ {[
+ { tag: 'CLOB', color: 'purple', host: 'clob.polymarket.com', desc: 'Orders & trading' },
+ { tag: 'GAMMA', color: 'blue', host: 'gamma-api.polymarket.com', desc: 'Market metadata' },
+ { tag: 'DATA', color: 'green', host: 'data-api.polymarket.com', desc: 'User positions' },
+ { tag: 'WS', color: 'yellow', host: 'ws-subscriptions-clob...', desc: 'Live orderbook' },
+ ].map(e => (
+ <div key={e.tag} className="bg-gray-800/30 rounded-lg p-2.5">
+ <span className={`inline-block px-1.5 py-0.5 rounded bg-${e.color}-500/20 text-${e.color}-400 font-mono text-[10px] mb-1`}>{e.tag}</span>
+ <p className="text-gray-400 font-mono text-[11px]">{e.host}</p>
+ <p className="text-gray-600 mt-0.5">{e.desc}</p>
+ </div>
+ ))}
+ </div>
+ <div className="mt-3 text-[11px] text-gray-600">
+ <span className="text-gray-500">Auth:</span> L2 HMAC-SHA256 — API Key + Secret + Passphrase per request
+ </div>
+ </div>
+ </div>
+
+ {/* System Status */}
+ <div className="card">
+ <h2 className="font-semibold mb-3">System Status</h2>
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-3">
+ {[
+ { l: 'Database', s: h?.db_connected, d: 'PostgreSQL bertha_betting' },
+ { l: 'NWS API', s: testResults.nws || 'unknown', d: 'api.weather.gov' },
+ { l: 'Polymarket', s: polyStatus === 'connected' ? true : clobOk || 'unknown', d: 'clob.polymarket.com' },
+ { l: 'Slack', s: h?.slack_configured ? 'ok' : testResults.slack || 'no_token', d: 'Alerts channel' },
+ ].map(s =>
+ <div key={s.l} className="bg-gray-800/30 rounded-lg p-3">
+ <div className="flex items-center gap-2 mb-1">
+ <span className={`w-2 h-2 rounded-full ${dot(s.s)}`} />
+ <span className="text-sm font-medium">{s.l}</span>
+ </div>
+ <p className="text-xs text-gray-500">{s.d}</p>
+ </div>
+ )}
+ </div>
+ </div>
+
+ {/* Connectivity Tests */}
+ <div className="card">
+ <h2 className="font-semibold mb-3">Connectivity Tests</h2>
+ <div className="flex gap-3">
+ <button onClick={testNWS} className={`btn ${testResults.nws === 'ok' ? 'btn-s' : 'btn-p'}`}>
+ {testResults.nws === 'testing' ? '...' : testResults.nws === 'ok' ? 'NWS OK' : 'Test NWS'}
+ </button>
+ <button onClick={testPublicClob} className={`btn ${clobOk === 'ok' ? 'btn-s' : 'btn-p'}`}>
+ {clobOk === 'testing' ? '...' : clobOk === 'ok' ? 'CLOB OK' : 'Test CLOB'}
+ </button>
+ <button onClick={testSlack} className={`btn ${testResults.slack === 'ok' ? 'btn-s' : 'btn-p'}`}>
+ {testResults.slack === 'testing' ? '...' : testResults.slack === 'ok' ? 'Slack OK' : 'Test Slack'}
+ </button>
+ </div>
+ </div>
+
+ {/* Workers */}
+ <div className="card">
+ <h2 className="font-semibold mb-3">Manual Workers</h2>
+ <div className="flex flex-wrap gap-3">
+ {[
+ { w: 'market_ingest', l: 'Ingest Markets' },
+ { w: 'weather_fetch', l: 'Fetch Weather' },
+ { w: 'run_predictions', l: 'Run Predictions' },
+ { w: 'risk_scan', l: 'Risk Scan' },
+ { w: 'paper_trade', l: 'Paper Trade' },
+ ].map(({ w, l }) => (
+ <button key={w} onClick={() => runW(w)} className={`btn ${testResults[w] === 'ok' ? 'btn-s' : 'btn-p'}`}>
+ {testResults[w] === 'ok' ? `${l} Done` : l}
+ </button>
+ ))}
+ </div>
+ </div>
+
+ {/* Architecture */}
+ <div className="card">
+ <h2 className="font-semibold mb-3">Architecture</h2>
+ <div className="grid grid-cols-2 gap-4 text-sm">
+ <div><p className="text-gray-500 text-xs uppercase mb-2">Data Sources</p>
+ <ul className="space-y-1">
+ <li className="flex items-center gap-2"><span className="badge bg-blue">NWS</span>Live US forecasts</li>
+ <li className="flex items-center gap-2"><span className="badge bg-purple">GEFS</span>Ensembles</li>
+ <li className="flex items-center gap-2"><span className="badge bg-green">Gamma</span>Polymarket</li>
+ <li className="flex items-center gap-2"><span className="badge bg-yellow">CLOB</span>Orderbooks</li>
+ </ul>
+ </div>
+ <div><p className="text-gray-500 text-xs uppercase mb-2">Pipeline</p>
+ <ol className="space-y-1 list-decimal list-inside text-gray-300">
+ <li>Market parse + event extraction</li>
+ <li>Ensemble exceedance probability</li>
+ <li>Climatological prior</li>
+ <li>Bayesian calibration</li>
+ <li>Edge gate + risk sizing</li>
+ <li>Paper/live execution</li>
+ </ol>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+}
diff --git a/react-dash/src/pages/Trades.jsx b/react-dash/src/pages/Trades.jsx
new file mode 100644
index 0000000..d270c46
--- /dev/null
+++ b/react-dash/src/pages/Trades.jsx
@@ -0,0 +1,134 @@
+import React, { useState, useEffect } from 'react';
+import { api } from '../api';
+import { BarChart, Bar, AreaChart, Area, XAxis, YAxis, Tooltip, ResponsiveContainer, CartesianGrid, Cell } from 'recharts';
+
+const ChartTooltip = ({ active, payload, label, prefix = '$' }) => {
+ if (!active || !payload?.length) return null;
+ return (
+ <div className="bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 text-xs shadow-xl">
+ <p className="text-gray-400 mb-1">{label}</p>
+ {payload.map((p, i) => (
+ <p key={i} style={{ color: p.color }} className="font-mono">{p.name}: {prefix}{typeof p.value === 'number' ? p.value.toFixed(2) : p.value}</p>
+ ))}
+ </div>
+ );
+};
+
+export default function Trades() {
+ const [orders, setO] = useState([]);
+ const [trades, setT] = useState([]);
+ const [loading, setL] = useState(true);
+
+ useEffect(() => {
+ api('/trades').then(d => { setO(d.orders || []); setT(d.trades || []); setL(false); });
+ const i = setInterval(() => api('/trades').then(d => { setO(d.orders || []); setT(d.trades || []); }), 15000);
+ return () => clearInterval(i);
+ }, []);
+
+ if (loading) return <div className="flex items-center justify-center h-64"><div className="animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full" /></div>;
+
+ const pnl = trades.reduce((s, t) => s + parseFloat(t.pnl || 0), 0);
+ const fees = trades.reduce((s, t) => s + parseFloat(t.fee_usd || 0), 0);
+ const wr = trades.length > 0 ? (trades.filter(t => parseFloat(t.pnl || 0) > 0).length / trades.length * 100) : 0;
+ const avgSize = trades.length > 0 ? trades.reduce((s, t) => s + parseFloat(t.size_usd || 0), 0) / trades.length : 0;
+
+ // P&L per trade chart
+ const pnlData = trades.slice().reverse().map((t, i) => ({
+ idx: i + 1,
+ time: new Date(t.match_time).toLocaleDateString('en-US', { month: 'short', day: 'numeric' }),
+ pnl: parseFloat(t.pnl || 0),
+ size: parseFloat(t.size_usd || 0),
+ }));
+
+ // Cumulative P&L
+ let cum = 0;
+ const cumData = pnlData.map(d => {
+ cum += d.pnl;
+ return { ...d, cumPnl: cum };
+ });
+
+ return (
+ <div className="space-y-6">
+ <div><h1 className="text-2xl font-bold">Trades & Orders</h1><p className="text-gray-500 text-sm">Execution history & analysis</p></div>
+
+ <div className="grid grid-cols-2 md:grid-cols-5 gap-4">
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Orders</p><p className="stat-v text-blue-400">{orders.length}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Fills</p><p className="stat-v text-green-400">{trades.length}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">P&L</p><p className={`stat-v ${pnl >= 0 ? 'text-green-400' : 'text-red-400'}`}>${pnl.toFixed(2)}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Win Rate</p><p className="stat-v text-purple-400">{wr.toFixed(0)}%</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Avg Size</p><p className="stat-v text-yellow-400">${avgSize.toFixed(2)}</p></div>
+ </div>
+
+ {/* Charts */}
+ {trades.length > 0 && (
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
+ <div className="card">
+ <h2 className="font-semibold mb-3">P&L Per Trade</h2>
+ <ResponsiveContainer width="100%" height={220}>
+ <BarChart data={pnlData} barSize={16}>
+ <CartesianGrid strokeDasharray="3 3" stroke="#1f2937" />
+ <XAxis dataKey="time" tick={{ fill: '#6b7280', fontSize: 10 }} axisLine={false} tickLine={false} />
+ <YAxis tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} tickFormatter={v => `$${v}`} />
+ <Tooltip content={<ChartTooltip />} />
+ <Bar dataKey="pnl" name="P&L">
+ {pnlData.map((entry, i) => (
+ <Cell key={i} fill={entry.pnl >= 0 ? '#10b981' : '#ef4444'} fillOpacity={0.8} />
+ ))}
+ </Bar>
+ </BarChart>
+ </ResponsiveContainer>
+ </div>
+ <div className="card">
+ <h2 className="font-semibold mb-3">Cumulative P&L</h2>
+ <ResponsiveContainer width="100%" height={220}>
+ <AreaChart data={cumData}>
+ <defs>
+ <linearGradient id="cumTrade" x1="0" y1="0" x2="0" y2="1">
+ <stop offset="5%" stopColor={cum >= 0 ? '#10b981' : '#ef4444'} stopOpacity={0.3} />
+ <stop offset="95%" stopColor={cum >= 0 ? '#10b981' : '#ef4444'} stopOpacity={0} />
+ </linearGradient>
+ </defs>
+ <CartesianGrid strokeDasharray="3 3" stroke="#1f2937" />
+ <XAxis dataKey="time" tick={{ fill: '#6b7280', fontSize: 10 }} axisLine={false} tickLine={false} />
+ <YAxis tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} tickFormatter={v => `$${v}`} />
+ <Tooltip content={<ChartTooltip />} />
+ <Area type="monotone" dataKey="cumPnl" stroke={cum >= 0 ? '#10b981' : '#ef4444'} strokeWidth={2} fill="url(#cumTrade)" name="Cumulative P&L" />
+ </AreaChart>
+ </ResponsiveContainer>
+ </div>
+ </div>
+ )}
+
+ {/* Orders Table */}
+ <div className="card overflow-x-auto"><h2 className="font-semibold mb-3">Orders</h2>
+ <table><thead><tr><th>ID</th><th>Side</th><th>Outcome</th><th>Price</th><th>Size</th><th>Status</th><th>Paper</th><th>Time</th></tr></thead><tbody>
+ {orders.length === 0 ? <tr><td colSpan={8} className="text-center text-gray-500 py-8">No orders yet</td></tr>
+ : orders.map(o => <tr key={o.order_id}>
+ <td className="font-mono text-xs">{o.order_id.substring(0, 12)}</td>
+ <td><span className={`badge ${o.side === 'buy' ? 'bg-green' : 'bg-red'}`}>{o.side?.toUpperCase()}</span></td>
+ <td>{o.outcome}</td><td className="font-mono">${parseFloat(o.price).toFixed(4)}</td>
+ <td className="font-mono">${parseFloat(o.size_usd || 0).toFixed(2)}</td>
+ <td><span className={`badge ${o.status === 'filled' ? 'bg-green' : o.status === 'rejected' ? 'bg-red' : 'bg-yellow'}`}>{o.status}</span></td>
+ <td>{o.paper_trade ? <span className="badge bg-yellow">PAPER</span> : <span className="badge bg-green">LIVE</span>}</td>
+ <td className="text-gray-400 text-sm">{new Date(o.submitted_ts).toLocaleString()}</td>
+ </tr>)}
+ </tbody></table>
+ </div>
+
+ {/* Trades Table */}
+ {trades.length > 0 && (
+ <div className="card overflow-x-auto"><h2 className="font-semibold mb-3">Trade Fills</h2>
+ <table><thead><tr><th>Time</th><th>Size</th><th>Price</th><th>Fee</th><th>P&L</th></tr></thead><tbody>
+ {trades.map((t, i) => <tr key={i}>
+ <td className="text-gray-400 text-sm">{t.match_time ? new Date(t.match_time).toLocaleString() : '-'}</td>
+ <td className="font-mono">${parseFloat(t.size_usd || 0).toFixed(2)}</td>
+ <td className="font-mono">${parseFloat(t.fill_price || 0).toFixed(4)}</td>
+ <td className="font-mono text-yellow-400">${parseFloat(t.fee_usd || 0).toFixed(4)}</td>
+ <td className={`font-mono ${parseFloat(t.pnl || 0) >= 0 ? 'text-green-400' : 'text-red-400'}`}>${parseFloat(t.pnl || 0).toFixed(2)}</td>
+ </tr>)}
+ </tbody></table>
+ </div>
+ )}
+ </div>
+ );
+}
diff --git a/react-dash/src/pages/Weather.jsx b/react-dash/src/pages/Weather.jsx
new file mode 100644
index 0000000..9984f2b
--- /dev/null
+++ b/react-dash/src/pages/Weather.jsx
@@ -0,0 +1,151 @@
+import React, { useState, useEffect } from 'react';
+import { api, post } from '../api';
+import { LineChart, Line, XAxis, YAxis, Tooltip, ResponsiveContainer, CartesianGrid, Legend } from 'recharts';
+
+const CITIES = ['New York', 'Chicago', 'Los Angeles', 'Miami', 'Denver', 'Seattle', 'Boston', 'San Francisco', 'Houston', 'Phoenix'];
+const COLORS = ['#3b82f6', '#10b981', '#f59e0b', '#ef4444', '#8b5cf6', '#06b6d4', '#ec4899', '#f97316'];
+
+const ChartTooltip = ({ active, payload, label }) => {
+ if (!active || !payload?.length) return null;
+ return (
+ <div className="bg-gray-900 border border-gray-700 rounded-lg px-3 py-2 text-xs shadow-xl">
+ <p className="text-gray-400 mb-1">{label}h lead</p>
+ {payload.map((p, i) => (
+ <p key={i} style={{ color: p.color }} className="font-mono">{p.name}: {p.value?.toFixed(1)}</p>
+ ))}
+ </div>
+ );
+};
+
+export default function Weather() {
+ const [fc, setFc] = useState([]);
+ const [loading, setL] = useState(true);
+ const [busy, setB] = useState(false);
+ const [city, setCity] = useState('New York');
+ const [chartVar, setChartVar] = useState('temperature');
+
+ const load = () => api('/weather').then(d => { setFc(d.forecasts || []); setL(false); });
+ useEffect(() => { load(); }, []);
+
+ async function fetchCity() { setB(true); await post('/weather', { action: 'fetch', city }); load(); setB(false); }
+ async function fetchAll() { setB(true); await post('/weather', { action: 'fetch_all' }); load(); setB(false); }
+
+ if (loading) return <div className="flex items-center justify-center h-64"><div className="animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full" /></div>;
+
+ const byLoc = {};
+ fc.forEach(f => { const k = f.location_name || f.geom_hash; if (!byLoc[k]) byLoc[k] = []; byLoc[k].push(f); });
+
+ // Build chart data - group by lead_hours for each location
+ const variables = [...new Set(fc.map(f => f.variable))];
+ const locations = Object.keys(byLoc);
+
+ // Chart data for selected variable across locations
+ const chartData = {};
+ Object.entries(byLoc).forEach(([loc, runs]) => {
+ runs.filter(r => r.variable === chartVar).forEach(r => {
+ const lead = parseInt(r.lead_hours || 0);
+ if (!chartData[lead]) chartData[lead] = { lead };
+ chartData[lead][loc] = parseFloat(r.value_mean || 0);
+ });
+ });
+ const chartArray = Object.values(chartData).sort((a, b) => a.lead - b.lead);
+
+ // Per-location temperature range chart (mean/min/max)
+ const firstLoc = locations[0];
+ const rangeData = firstLoc ? byLoc[firstLoc]
+ .filter(r => r.variable === chartVar)
+ .sort((a, b) => (a.lead_hours || 0) - (b.lead_hours || 0))
+ .map(r => ({
+ lead: parseInt(r.lead_hours || 0),
+ mean: parseFloat(r.value_mean || 0),
+ min: parseFloat(r.value_min || 0),
+ max: parseFloat(r.value_max || 0),
+ })) : [];
+
+ return (
+ <div className="space-y-6">
+ <div className="flex items-center justify-between">
+ <div><h1 className="text-2xl font-bold">Weather Forecasts</h1><p className="text-gray-500 text-sm">NWS forecast data + ensemble analysis</p></div>
+ <div className="flex items-center gap-2">
+ <select value={city} onChange={e => setCity(e.target.value)} className="bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm">
+ {CITIES.map(c => <option key={c} value={c}>{c}</option>)}
+ </select>
+ <button onClick={fetchCity} disabled={busy} className="btn btn-p">{busy ? '...' : 'Fetch City'}</button>
+ <button onClick={fetchAll} disabled={busy} className="btn btn-s">Fetch All</button>
+ </div>
+ </div>
+
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-4">
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Data Points</p><p className="stat-v text-blue-400">{fc.length}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Locations</p><p className="stat-v text-green-400">{locations.length}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Latest Run</p><p className="text-sm text-gray-300 mt-1">{fc[0]?.run_ts ? new Date(fc[0].run_ts).toLocaleString() : 'None'}</p></div>
+ <div className="card"><p className="text-xs text-gray-500 uppercase mb-1">Variables</p><p className="stat-v text-purple-400">{variables.length}</p></div>
+ </div>
+
+ {/* Variable selector for charts */}
+ <div className="flex items-center gap-2">
+ <span className="text-sm text-gray-400">Chart variable:</span>
+ {variables.slice(0, 6).map(v => (
+ <button key={v} onClick={() => setChartVar(v)} className={`px-3 py-1 text-xs rounded-full border transition ${chartVar === v ? 'bg-blue-500/20 border-blue-500/50 text-blue-400' : 'border-gray-700 text-gray-500 hover:text-gray-300'}`}>
+ {v}
+ </button>
+ ))}
+ </div>
+
+ {/* Forecast Trends Chart */}
+ {chartArray.length > 0 && (
+ <div className="card">
+ <h2 className="font-semibold mb-3">{chartVar} Forecast by Location (Lead Hours)</h2>
+ <ResponsiveContainer width="100%" height={300}>
+ <LineChart data={chartArray}>
+ <CartesianGrid strokeDasharray="3 3" stroke="#1f2937" />
+ <XAxis dataKey="lead" tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} label={{ value: 'Lead Hours', position: 'insideBottom', offset: -5, fill: '#6b7280', fontSize: 11 }} />
+ <YAxis tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} />
+ <Tooltip content={<ChartTooltip />} />
+ <Legend wrapperStyle={{ fontSize: 11, color: '#9ca3af' }} />
+ {locations.slice(0, 8).map((loc, i) => (
+ <Line key={loc} type="monotone" dataKey={loc} stroke={COLORS[i % COLORS.length]} strokeWidth={2} dot={false} name={loc} />
+ ))}
+ </LineChart>
+ </ResponsiveContainer>
+ </div>
+ )}
+
+ {/* Range Chart for first location */}
+ {rangeData.length > 0 && (
+ <div className="card">
+ <h2 className="font-semibold mb-3">{firstLoc}: {chartVar} Range (Mean / Min / Max)</h2>
+ <ResponsiveContainer width="100%" height={240}>
+ <LineChart data={rangeData}>
+ <CartesianGrid strokeDasharray="3 3" stroke="#1f2937" />
+ <XAxis dataKey="lead" tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} />
+ <YAxis tick={{ fill: '#6b7280', fontSize: 11 }} axisLine={false} tickLine={false} />
+ <Tooltip content={<ChartTooltip />} />
+ <Legend wrapperStyle={{ fontSize: 11 }} />
+ <Line type="monotone" dataKey="max" stroke="#ef4444" strokeWidth={1.5} dot={false} strokeDasharray="4 4" name="Max" />
+ <Line type="monotone" dataKey="mean" stroke="#10b981" strokeWidth={2} dot={false} name="Mean" />
+ <Line type="monotone" dataKey="min" stroke="#3b82f6" strokeWidth={1.5} dot={false} strokeDasharray="4 4" name="Min" />
+ </LineChart>
+ </ResponsiveContainer>
+ </div>
+ )}
+
+ {/* Location Data Tables */}
+ {Object.entries(byLoc).slice(0, 8).map(([loc, runs]) => (
+ <div key={loc} className="card">
+ <h3 className="font-semibold mb-3">{loc}</h3>
+ <table><thead><tr><th>Var</th><th>Lead</th><th>Mean</th><th>Min</th><th>Max</th></tr></thead><tbody>
+ {runs.slice(0, 15).map((r, i) => <tr key={i}>
+ <td className="font-medium">{r.variable}</td>
+ <td className="font-mono">{r.lead_hours}h</td>
+ <td className="font-mono text-green-400">{parseFloat(r.value_mean || 0).toFixed(1)}</td>
+ <td className="font-mono text-blue-400">{parseFloat(r.value_min || 0).toFixed(1)}</td>
+ <td className="font-mono text-red-400">{parseFloat(r.value_max || 0).toFixed(1)}</td>
+ </tr>)}
+ </tbody></table>
+ </div>
+ ))}
+ {fc.length === 0 && <div className="card text-center py-12"><p className="text-gray-500">No forecast data. Click Fetch.</p></div>}
+ </div>
+ );
+}
diff --git a/react-dash/src/setup/SetupWizard.jsx b/react-dash/src/setup/SetupWizard.jsx
new file mode 100644
index 0000000..296a4b8
--- /dev/null
+++ b/react-dash/src/setup/SetupWizard.jsx
@@ -0,0 +1,150 @@
+import React, { useState, useEffect, useRef } from 'react';
+import { useNavigate } from 'react-router-dom';
+import { checkSession, post, api } from '../api';
+import Welcome from './steps/Welcome';
+import ConnectPoly from './steps/ConnectPoly';
+import TestConnection from './steps/TestConnection';
+import IngestMarkets from './steps/IngestMarkets';
+import FetchWeather from './steps/FetchWeather';
+import RunPredictions from './steps/RunPredictions';
+import RiskProfile from './steps/RiskProfile';
+import GoLive from './steps/GoLive';
+
+const STEPS = [
+ { label: 'Welcome', icon: '1' },
+ { label: 'Connect', icon: '2' },
+ { label: 'Test', icon: '3' },
+ { label: 'Ingest', icon: '4' },
+ { label: 'Weather', icon: '5' },
+ { label: 'Predict', icon: '6' },
+ { label: 'Risk', icon: '7' },
+ { label: 'Go Live', icon: '8' },
+];
+
+export default function SetupWizard() {
+ const nav = useNavigate();
+ const [authed, setAuthed] = useState(false);
+ const [step, setStep] = useState(0);
+ const [dir, setDir] = useState('forward');
+ const [data, setData] = useState({
+ keys: null,
+ connectionOk: false,
+ marketsIngested: 0,
+ weatherFetched: false,
+ predictionsRun: false,
+ riskProfile: null,
+ });
+ const contentRef = useRef(null);
+
+ useEffect(() => {
+ checkSession().then(ok => {
+ if (!ok) { nav('/login'); return; }
+ setAuthed(true);
+ // Try to restore progress
+ api('/setup').then(r => {
+ if (r.setup_complete) { nav('/'); return; }
+ if (r.setup_progress) {
+ setStep(r.setup_progress.step || 0);
+ setData(d => ({ ...d, ...r.setup_progress.data }));
+ }
+ }).catch(() => {});
+ });
+ }, []);
+
+ useEffect(() => {
+ // Save progress on step change
+ if (authed && step > 0) {
+ post('/setup', { action: 'save_progress', progress: { step, data } }).catch(() => {});
+ }
+ }, [step]);
+
+ function next() {
+ setDir('forward');
+ if (step < STEPS.length - 1) setStep(s => s + 1);
+ }
+ function back() {
+ setDir('back');
+ if (step > 0) setStep(s => s - 1);
+ }
+ function goTo(i) {
+ if (i <= step) {
+ setDir(i < step ? 'back' : 'forward');
+ setStep(i);
+ }
+ }
+ function update(partial) {
+ setData(d => ({ ...d, ...partial }));
+ }
+ async function complete() {
+ await post('/setup', { action: 'complete', progress: { step: STEPS.length - 1, data } });
+ nav('/');
+ }
+
+ if (!authed) {
+ return <div className="flex items-center justify-center min-h-screen"><div className="animate-spin w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full" /></div>;
+ }
+
+ const StepComponent = [Welcome, ConnectPoly, TestConnection, IngestMarkets, FetchWeather, RunPredictions, RiskProfile, GoLive][step];
+
+ return (
+ <div className="min-h-screen flex flex-col" style={{ background: 'var(--bg)' }}>
+ {/* Header */}
+ <div className="flex items-center gap-3 px-6 py-4 border-b border-gray-800">
+ <div className="w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0" style={{ background: 'linear-gradient(135deg,#3b82f6,#8b5cf6)' }}>
+ <span className="text-white font-bold text-sm">B</span>
+ </div>
+ <span className="font-bold text-sm wizard-gradient">BERTHA SETUP</span>
+ </div>
+
+ {/* Stepper */}
+ <div className="px-6 py-5">
+ <div className="max-w-3xl mx-auto flex items-center">
+ {STEPS.map((s, i) => (
+ <React.Fragment key={i}>
+ <button
+ onClick={() => goTo(i)}
+ disabled={i > step}
+ className="flex flex-col items-center gap-1.5 group"
+ style={{ minWidth: 56 }}
+ >
+ <div className={`w-8 h-8 rounded-full flex items-center justify-center text-xs font-bold transition-all ${
+ i < step ? 'bg-green-500 text-white' :
+ i === step ? 'bg-blue-500 text-white step-active-pulse' :
+ 'bg-gray-800 text-gray-500'
+ } ${i <= step ? 'cursor-pointer' : 'cursor-default'}`}>
+ {i < step ? (
+ <svg className="w-4 h-4" fill="none" stroke="currentColor" strokeWidth="2.5" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d="M5 13l4 4L19 7" /></svg>
+ ) : s.icon}
+ </div>
+ <span className={`text-[10px] font-medium ${
+ i < step ? 'text-green-400' :
+ i === step ? 'text-blue-400' :
+ 'text-gray-600'
+ }`}>{s.label}</span>
+ </button>
+ {i < STEPS.length - 1 && (
+ <div className={`stepper-line ${i < step ? 'done' : ''}`} />
+ )}
+ </React.Fragment>
+ ))}
+ </div>
+ </div>
+
+ {/* Step Content */}
+ <div className="flex-1 flex items-start justify-center px-6 pb-10">
+ <div className="w-full max-w-2xl" ref={contentRef}>
+ <div key={step} className="step-enter step-active">
+ <StepComponent
+ data={data}
+ update={update}
+ next={next}
+ back={back}
+ complete={complete}
+ step={step}
+ />
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+}
diff --git a/react-dash/src/setup/steps/ConnectPoly.jsx b/react-dash/src/setup/steps/ConnectPoly.jsx
new file mode 100644
index 0000000..5f808a8
--- /dev/null
+++ b/react-dash/src/setup/steps/ConnectPoly.jsx
@@ -0,0 +1,123 @@
+import React, { useState } from 'react';
+import { post } from '../../api';
+
+export default function ConnectPoly({ data, update, next, back }) {
+ const [key, setKey] = useState(data.keys?.api_key || '');
+ const [secret, setSecret] = useState(data.keys?.api_secret || '');
+ const [passphrase, setPassphrase] = useState(data.keys?.api_passphrase || '');
+ const [wallet, setWallet] = useState(data.keys?.wallet || '');
+ const [showSecret, setShowSecret] = useState(false);
+ const [saving, setSaving] = useState(false);
+ const [error, setError] = useState(null);
+
+ async function save() {
+ setSaving(true);
+ setError(null);
+ try {
+ const r = await post('/polymarket', {
+ action: 'save_keys',
+ api_key: key,
+ api_secret: secret,
+ api_passphrase: passphrase,
+ wallet: wallet || undefined,
+ });
+ if (r.success) {
+ update({ keys: { api_key: key, api_secret: secret, api_passphrase: passphrase, wallet } });
+ next();
+ } else {
+ setError(r.error || 'Failed to save');
+ }
+ } catch {
+ setError('Connection error');
+ }
+ setSaving(false);
+ }
+
+ function skip() {
+ update({ keys: null, skippedConnect: true });
+ next();
+ }
+
+ return (
+ <div className="space-y-6">
+ <div className="text-center">
+ <h2 className="text-2xl font-bold mb-2">Connect Polymarket</h2>
+ <p className="text-gray-400 text-sm">Enter your Builder API credentials to enable live trading</p>
+ </div>
+
+ <div className="card space-y-4">
+ <div>
+ <label className="block text-xs text-gray-400 mb-1.5 font-medium">API Key</label>
+ <input
+ type="text"
+ value={key}
+ onChange={e => setKey(e.target.value)}
+ placeholder="Your Polymarket API key"
+ className="w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-blue-500 focus:outline-none font-mono"
+ />
+ </div>
+ <div>
+ <label className="block text-xs text-gray-400 mb-1.5 font-medium">API Secret</label>
+ <div className="relative">
+ <input
+ type={showSecret ? 'text' : 'password'}
+ value={secret}
+ onChange={e => setSecret(e.target.value)}
+ placeholder="Your API secret"
+ className="w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-blue-500 focus:outline-none font-mono pr-16"
+ />
+ <button onClick={() => setShowSecret(!showSecret)} className="absolute right-2 top-1/2 -translate-y-1/2 text-xs text-gray-500 hover:text-gray-300">
+ {showSecret ? 'Hide' : 'Show'}
+ </button>
+ </div>
+ </div>
+ <div>
+ <label className="block text-xs text-gray-400 mb-1.5 font-medium">Passphrase</label>
+ <input
+ type="password"
+ value={passphrase}
+ onChange={e => setPassphrase(e.target.value)}
+ placeholder="Your API passphrase"
+ className="w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-blue-500 focus:outline-none font-mono"
+ />
+ </div>
+ <div>
+ <label className="block text-xs text-gray-400 mb-1.5 font-medium">Wallet Address <span className="text-gray-600">(optional)</span></label>
+ <input
+ type="text"
+ value={wallet}
+ onChange={e => setWallet(e.target.value)}
+ placeholder="0x..."
+ className="w-full px-3 py-2 bg-gray-800/50 border border-gray-700 rounded-lg text-sm focus:border-blue-500 focus:outline-none font-mono"
+ />
+ </div>
+
+ {error && <p className="text-red-400 text-xs">{error}</p>}
+ </div>
+
+ <div className="card bg-gray-800/30">
+ <h3 className="text-sm font-medium mb-2">Where to get your keys</h3>
+ <ol className="text-xs text-gray-400 space-y-1.5 list-decimal list-inside">
+ <li>Go to <span className="text-blue-400 font-mono">polymarket.com</span></li>
+ <li>Click your profile → Settings</li>
+ <li>Navigate to the <span className="text-blue-400">Builder</span> tab</li>
+ <li>Create a new API key — save the secret immediately</li>
+ </ol>
+ </div>
+
+ <div className="flex items-center justify-between">
+ <button onClick={back} className="text-sm text-gray-500 hover:text-gray-300">Back</button>
+ <div className="flex items-center gap-3">
+ <button onClick={skip} className="text-sm text-gray-500 hover:text-gray-300">Skip (paper mode)</button>
+ <button
+ onClick={save}
+ disabled={saving || (!key && !secret)}
+ className="wizard-btn"
+ >
+ {saving ? 'Saving...' : 'Save & Continue'}
+ </button>
+ </div>
+ </div>
+ </div>
+ );
+}
diff --git a/react-dash/src/setup/steps/FetchWeather.jsx b/react-dash/src/setup/steps/FetchWeather.jsx
new file mode 100644
index 0000000..12a0e90
--- /dev/null
+++ b/react-dash/src/setup/steps/FetchWeather.jsx
@@ -0,0 +1,85 @@
+import React, { useState, useEffect } from 'react';
+import { post } from '../../api';
+
+export default function FetchWeather({ data, update, next, back }) {
+ const [loading, setLoading] = useState(true);
+ const [result, setResult] = useState(null);
+ const [error, setError] = useState(null);
+
+ useEffect(() => {
+ runFetch();
+ }, []);
+
+ async function runFetch() {
+ setLoading(true);
+ setError(null);
+ try {
+ const r = await post('/weather', { action: 'fetch_all' });
+ setResult(r);
+ update({ weatherFetched: true });
+ } catch {
+ setError('Failed to fetch weather data');
+ }
+ setLoading(false);
+ }
+
+ return (
+ <div className="space-y-6">
+ <div className="text-center">
+ <h2 className="text-2xl font-bold mb-2">Weather Data</h2>
+ <p className="text-gray-400 text-sm">Pulling NWS forecast data for tracked markets</p>
+ </div>
+
+ <div className="card">
+ {loading ? (
+ <div className="flex flex-col items-center justify-center py-12 gap-4">
+ <div className="animate-spin w-10 h-10 border-3 border-blue-500 border-t-transparent rounded-full" />
+ <p className="text-sm text-gray-400">Fetching NWS forecast data...</p>
+ </div>
+ ) : error ? (
+ <div className="text-center py-8">
+ <div className="w-12 h-12 rounded-full bg-red-500/10 flex items-center justify-center mx-auto mb-3">
+ <svg className="w-6 h-6 text-red-400" fill="none" stroke="currentColor" strokeWidth="1.5" viewBox="0 0 24 24">
+ <path strokeLinecap="round" strokeLinejoin="round" d="M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z" />
+ </svg>
+ </div>
+ <p className="text-red-400 text-sm mb-3">{error}</p>
+ <button onClick={runFetch} className="btn btn-s text-sm">Retry</button>
+ </div>
+ ) : (
+ <div className="space-y-4">
+ <div className="flex items-center justify-center gap-3 py-4">
+ <div className="w-12 h-12 rounded-full bg-green-500/10 flex items-center justify-center">
+ <svg className="w-6 h-6 text-green-400" fill="none" stroke="currentColor" strokeWidth="2" viewBox="0 0 24 24">
+ <path strokeLinecap="round" strokeLinejoin="round" d="M5 13l4 4L19 7" />
+ </svg>
+ </div>
+ <div>
+ <p className="font-semibold text-green-400">Weather Data Loaded</p>
+ <p className="text-xs text-gray-400">NWS forecasts fetched successfully</p>
+ </div>
+ </div>
+
+ <div className="grid grid-cols-2 gap-4">
+ <div className="text-center p-3 bg-gray-800/30 rounded-lg">
+ <p className="stat-v text-blue-400">{result?.cities || result?.locations || '—'}</p>
+ <p className="text-xs text-gray-500 mt-1">Cities Fetched</p>
+ </div>
+ <div className="text-center p-3 bg-gray-800/30 rounded-lg">
+ <p className="stat-v text-purple-400">{result?.data_points || result?.forecasts || '—'}</p>
+ <p className="text-xs text-gray-500 mt-1">Data Points</p>
+ </div>
+ </div>
+ </div>
+ )}
+ </div>
+
+ <div className="flex items-center justify-between">
+ <button onClick={back} className="text-sm text-gray-500 hover:text-gray-300">Back</button>
+ <button onClick={next} disabled={loading} className="wizard-btn">
+ {loading ? 'Fetching...' : 'Continue'}
+ </button>
+ </div>
+ </div>
+ );
+}
diff --git a/react-dash/src/setup/steps/GoLive.jsx b/react-dash/src/setup/steps/GoLive.jsx
new file mode 100644
index 0000000..b4b9aca
--- /dev/null
+++ b/react-dash/src/setup/steps/GoLive.jsx
@@ -0,0 +1,115 @@
+import React, { useState } from 'react';
+
+const CHECK_ITEMS = [
+ { key: 'keys', label: 'Polymarket Connected', check: d => !!d.keys },
+ { key: 'conn', label: 'Connection Verified', check: d => !!d.connectionOk },
+ { key: 'markets', label: 'Markets Ingested', check: d => d.marketsIngested > 0 },
+ { key: 'weather', label: 'Weather Data Loaded', check: d => !!d.weatherFetched },
+ { key: 'preds', label: 'Predictions Generated', check: d => !!d.predictionsRun },
+ { key: 'risk', label: 'Risk Profile Set', check: d => !!d.riskProfile },
+];
+
+export default function GoLive({ data, update, complete, back }) {
+ const [paperMode, setPaperMode] = useState(true);
+ const [launching, setLaunching] = useState(false);
+
+ const completedSteps = CHECK_ITEMS.filter(c => c.check(data)).length;
+ const skippedPoly = data.skippedConnect;
+
+ async function launch() {
+ setLaunching(true);
+ await complete();
+ }
+
+ return (
+ <div className="space-y-6">
+ <div className="text-center">
+ <h2 className="text-2xl font-bold mb-2">Ready to Launch</h2>
+ <p className="text-gray-400 text-sm">Review your setup and start trading</p>
+ </div>
+
+ {/* Checklist */}
+ <div className="card">
+ <h3 className="font-semibold text-sm mb-3">Setup Summary</h3>
+ <div className="space-y-2">
+ {CHECK_ITEMS.map(c => {
+ const ok = c.check(data);
+ const skipped = c.key === 'keys' && skippedPoly;
+ return (
+ <div key={c.key} className="flex items-center gap-3">
+ {ok ? (
+ <div className="w-5 h-5 rounded-full bg-green-500 flex items-center justify-center flex-shrink-0">
+ <svg className="w-3 h-3 text-white" fill="none" stroke="currentColor" strokeWidth="3" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d="M5 13l4 4L19 7" /></svg>
+ </div>
+ ) : skipped ? (
+ <div className="w-5 h-5 rounded-full bg-yellow-500 flex items-center justify-center flex-shrink-0">
+ <span className="text-white text-[10px] font-bold">—</span>
+ </div>
+ ) : (
+ <div className="w-5 h-5 rounded-full bg-gray-700 flex-shrink-0" />
+ )}
+ <span className={`text-sm ${ok ? 'text-gray-200' : skipped ? 'text-yellow-400' : 'text-gray-500'}`}>
+ {c.label}{skipped ? ' (skipped)' : ''}
+ </span>
+ </div>
+ );
+ })}
+ </div>
+ <div className="mt-3 pt-3 border-t border-gray-800">
+ <p className="text-xs text-gray-500">{completedSteps}/{CHECK_ITEMS.length} steps completed</p>
+ </div>
+ </div>
+
+ {/* Stats Row */}
+ <div className="grid grid-cols-3 gap-4">
+ <div className="card text-center">
+ <p className="stat-v text-purple-400">{data.marketsIngested || 0}</p>
+ <p className="text-xs text-gray-500 mt-1">Markets</p>
+ </div>
+ <div className="card text-center">
+ <p className="stat-v text-blue-400">{data.riskProfile || '—'}</p>
+ <p className="text-xs text-gray-500 mt-1">Risk Profile</p>
+ </div>
+ <div className="card text-center">
+ <p className="stat-v text-green-400">{data.keys ? 'LIVE' : 'PAPER'}</p>
+ <p className="text-xs text-gray-500 mt-1">Mode</p>
+ </div>
+ </div>
+
+ {/* Paper/Live Toggle */}
+ <div className="card">
+ <div className="flex items-center justify-between">
+ <div>
+ <h3 className="font-semibold text-sm">Trading Mode</h3>
+ <p className="text-xs text-gray-500 mt-0.5">
+ {paperMode ? 'Simulated trades, no real funds' : 'Real trades on Polymarket'}
+ </p>
+ </div>
+ <div className="flex items-center gap-3">
+ <span className={`text-xs font-medium ${paperMode ? 'text-yellow-400' : 'text-gray-500'}`}>Paper</span>
+ <button
+ onClick={() => setPaperMode(!paperMode)}
+ disabled={!data.keys}
+ className={`w-11 h-6 rounded-full transition-colors relative ${paperMode ? 'bg-yellow-500/30' : 'bg-green-500/30'} ${!data.keys ? 'opacity-50 cursor-not-allowed' : ''}`}
+ >
+ <div className={`w-4 h-4 rounded-full absolute top-1 transition-all ${paperMode ? 'left-1 bg-yellow-400' : 'left-6 bg-green-400'}`} />
+ </button>
+ <span className={`text-xs font-medium ${!paperMode ? 'text-green-400' : 'text-gray-500'}`}>Live</span>
+ </div>
+ </div>
+ {!paperMode && (
+ <div className="mt-3 p-2 bg-red-500/10 border border-red-500/20 rounded-lg">
+ <p className="text-xs text-red-400">Live mode will use real USDC on Polygon. Make sure your wallet is funded.</p>
+ </div>
+ )}
+ </div>
+
+ <div className="flex items-center justify-between">
+ <button onClick={back} className="text-sm text-gray-500 hover:text-gray-300">Back</button>
+ <button onClick={launch} disabled={launching} className="wizard-btn text-lg px-8">
+ {launching ? 'Launching...' : 'Launch Bertha'}
+ </button>
+ </div>
+ </div>
+ );
+}
diff --git a/react-dash/src/setup/steps/IngestMarkets.jsx b/react-dash/src/setup/steps/IngestMarkets.jsx
new file mode 100644
index 0000000..659b06f
--- /dev/null
+++ b/react-dash/src/setup/steps/IngestMarkets.jsx
@@ -0,0 +1,94 @@
+import React, { useState, useEffect } from 'react';
+import { post } from '../../api';
+
+export default function IngestMarkets({ data, update, next, back }) {
+ const [loading, setLoading] = useState(true);
+ const [result, setResult] = useState(null);
+ const [error, setError] = useState(null);
+
+ useEffect(() => {
+ runIngest();
+ }, []);
+
+ async function runIngest() {
+ setLoading(true);
+ setError(null);
+ try {
+ const r = await post('/markets', { action: 'ingest' });
+ setResult(r);
+ update({ marketsIngested: r.ingested || r.markets?.length || 0 });
+ } catch (err) {
+ setError('Failed to ingest markets');
+ }
+ setLoading(false);
+ }
+
+ return (
+ <div className="space-y-6">
+ <div className="text-center">
+ <h2 className="text-2xl font-bold mb-2">Ingest Markets</h2>
+ <p className="text-gray-400 text-sm">Scanning Polymarket for weather prediction markets</p>
+ </div>
+
+ <div className="card">
+ {loading ? (
+ <div className="flex flex-col items-center justify-center py-12 gap-4">
+ <div className="animate-spin w-10 h-10 border-3 border-purple-500 border-t-transparent rounded-full" />
+ <p className="text-sm text-gray-400">Scanning Polymarket for weather markets...</p>
+ </div>
+ ) : error ? (
+ <div className="text-center py-8">
+ <div className="w-12 h-12 rounded-full bg-red-500/10 flex items-center justify-center mx-auto mb-3">
+ <svg className="w-6 h-6 text-red-400" fill="none" stroke="currentColor" strokeWidth="1.5" viewBox="0 0 24 24">
+ <path strokeLinecap="round" strokeLinejoin="round" d="M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z" />
+ </svg>
+ </div>
+ <p className="text-red-400 text-sm mb-3">{error}</p>
+ <button onClick={runIngest} className="btn btn-s text-sm">Retry</button>
+ </div>
+ ) : (
+ <div className="space-y-4">
+ <div className="grid grid-cols-3 gap-4">
+ <div className="text-center">
+ <p className="stat-v text-purple-400">{result?.scanned || '—'}</p>
+ <p className="text-xs text-gray-500 mt-1">Scanned</p>
+ </div>
+ <div className="text-center">
+ <p className="stat-v text-green-400">{result?.ingested || result?.markets?.length || 0}</p>
+ <p className="text-xs text-gray-500 mt-1">Ingested</p>
+ </div>
+ <div className="text-center">
+ <p className="stat-v text-blue-400">{result?.skipped || 0}</p>
+ <p className="text-xs text-gray-500 mt-1">Skipped</p>
+ </div>
+ </div>
+
+ {(result?.markets || []).length > 0 && (
+ <div className="border-t border-gray-800 pt-3 mt-3">
+ <p className="text-xs text-gray-500 mb-2 uppercase font-medium">Ingested Markets</p>
+ <div className="space-y-1.5 max-h-48 overflow-y-auto">
+ {(result.markets || []).slice(0, 10).map((m, i) => (
+ <div key={i} className="flex items-center gap-2 text-xs">
+ <span className="w-1.5 h-1.5 rounded-full bg-green-500 flex-shrink-0" />
+ <span className="text-gray-300 truncate">{m.question || m}</span>
+ </div>
+ ))}
+ {(result.markets || []).length > 10 && (
+ <p className="text-xs text-gray-600">+{result.markets.length - 10} more</p>
+ )}
+ </div>
+ </div>
+ )}
+ </div>
+ )}
+ </div>
+
+ <div className="flex items-center justify-between">
+ <button onClick={back} className="text-sm text-gray-500 hover:text-gray-300">Back</button>
+ <button onClick={next} disabled={loading} className="wizard-btn">
+ {loading ? 'Processing...' : 'Continue'}
+ </button>
+ </div>
+ </div>
+ );
+}
diff --git a/react-dash/src/setup/steps/RiskProfile.jsx b/react-dash/src/setup/steps/RiskProfile.jsx
new file mode 100644
index 0000000..22b9e6b
--- /dev/null
+++ b/react-dash/src/setup/steps/RiskProfile.jsx
@@ -0,0 +1,109 @@
+import React, { useState } from 'react';
+import { post } from '../../api';
+
+const PROFILES = [
+ {
+ name: 'Conservative',
+ kelly: 0.05,
+ maxBet: 0.25,
+ survival: 0.99,
+ color: 'blue',
+ desc: 'Small bets, maximum safety. Best for learning.',
+ },
+ {
+ name: 'Moderate',
+ kelly: 0.10,
+ maxBet: 0.50,
+ survival: 0.90,
+ color: 'purple',
+ desc: 'Balanced risk/reward. Recommended for most users.',
+ recommended: true,
+ },
+ {
+ name: 'Aggressive',
+ kelly: 0.20,
+ maxBet: 1.00,
+ survival: 0.70,
+ color: 'red',
+ desc: 'Larger bets, higher variance. For experienced traders.',
+ },
+];
+
+export default function RiskProfile({ data, update, next, back }) {
+ const [selected, setSelected] = useState(data.riskProfile || 'Moderate');
+ const [saving, setSaving] = useState(false);
+
+ async function save() {
+ setSaving(true);
+ const profile = PROFILES.find(p => p.name === selected);
+ try {
+ await post('/risk', {
+ action: 'update_config',
+ kelly_fraction: profile.kelly,
+ max_bet: profile.maxBet,
+ survival_target: profile.survival,
+ risk_profile: profile.name,
+ });
+ update({ riskProfile: selected });
+ next();
+ } catch {}
+ setSaving(false);
+ }
+
+ return (
+ <div className="space-y-6">
+ <div className="text-center">
+ <h2 className="text-2xl font-bold mb-2">Risk Profile</h2>
+ <p className="text-gray-400 text-sm">Choose how aggressively Bertha should trade</p>
+ </div>
+
+ <div className="grid grid-cols-3 gap-4">
+ {PROFILES.map(p => (
+ <button
+ key={p.name}
+ onClick={() => setSelected(p.name)}
+ className={`card text-left transition-all relative ${
+ selected === p.name
+ ? `ring-2 ring-${p.color === 'blue' ? 'blue' : p.color === 'purple' ? 'purple' : 'red'}-500 bg-${p.color === 'blue' ? 'blue' : p.color === 'purple' ? 'purple' : 'red'}-500/5`
+ : 'hover:border-gray-700'
+ }`}
+ style={selected === p.name ? {
+ boxShadow: `0 0 0 2px ${p.color === 'blue' ? '#3b82f6' : p.color === 'purple' ? '#8b5cf6' : '#ef4444'}`,
+ } : {}}
+ >
+ {p.recommended && (
+ <span className="absolute -top-2 right-3 text-[9px] font-bold uppercase px-2 py-0.5 rounded-full bg-purple-500 text-white">Recommended</span>
+ )}
+ <h3 className={`font-bold text-lg mb-1 ${
+ p.color === 'blue' ? 'text-blue-400' :
+ p.color === 'purple' ? 'text-purple-400' :
+ 'text-red-400'
+ }`}>{p.name}</h3>
+ <p className="text-xs text-gray-500 mb-3">{p.desc}</p>
+ <div className="space-y-1.5 text-xs">
+ <div className="flex justify-between">
+ <span className="text-gray-500">Kelly Fraction</span>
+ <span className="font-mono text-gray-300">{(p.kelly * 100).toFixed(0)}%</span>
+ </div>
+ <div className="flex justify-between">
+ <span className="text-gray-500">Max Bet</span>
+ <span className="font-mono text-gray-300">${p.maxBet.toFixed(2)}</span>
+ </div>
+ <div className="flex justify-between">
+ <span className="text-gray-500">Survival Target</span>
+ <span className="font-mono text-gray-300">{(p.survival * 100).toFixed(0)}%</span>
+ </div>
+ </div>
+ </button>
+ ))}
+ </div>
+
+ <div className="flex items-center justify-between">
+ <button onClick={back} className="text-sm text-gray-500 hover:text-gray-300">Back</button>
+ <button onClick={save} disabled={saving} className="wizard-btn">
+ {saving ? 'Saving...' : 'Save & Continue'}
+ </button>
+ </div>
+ </div>
+ );
+}
diff --git a/react-dash/src/setup/steps/RunPredictions.jsx b/react-dash/src/setup/steps/RunPredictions.jsx
new file mode 100644
index 0000000..1300bed
--- /dev/null
+++ b/react-dash/src/setup/steps/RunPredictions.jsx
@@ -0,0 +1,118 @@
+import React, { useState, useEffect } from 'react';
+import { post } from '../../api';
+
+export default function RunPredictions({ data, update, next, back }) {
+ const [loading, setLoading] = useState(true);
+ const [result, setResult] = useState(null);
+ const [error, setError] = useState(null);
+
+ useEffect(() => {
+ runPredictions();
+ }, []);
+
+ async function runPredictions() {
+ setLoading(true);
+ setError(null);
+ try {
+ const r = await post('/models', { action: 'run_predictions' });
+ setResult(r);
+ update({ predictionsRun: true });
+ } catch {
+ setError('Failed to generate predictions');
+ }
+ setLoading(false);
+ }
+
+ const predictions = result?.predictions || [];
+ const buySignals = predictions.filter(p => p.signal === 'BUY' || p.edge > 0);
+
+ return (
+ <div className="space-y-6">
+ <div className="text-center">
+ <h2 className="text-2xl font-bold mb-2">AI Predictions</h2>
+ <p className="text-gray-400 text-sm">Generating probability models and calculating edges</p>
+ </div>
+
+ <div className="card">
+ {loading ? (
+ <div className="flex flex-col items-center justify-center py-12 gap-4">
+ <div className="animate-spin w-10 h-10 border-3 border-green-500 border-t-transparent rounded-full" />
+ <p className="text-sm text-gray-400">Running prediction models...</p>
+ </div>
+ ) : error ? (
+ <div className="text-center py-8">
+ <div className="w-12 h-12 rounded-full bg-red-500/10 flex items-center justify-center mx-auto mb-3">
+ <svg className="w-6 h-6 text-red-400" fill="none" stroke="currentColor" strokeWidth="1.5" viewBox="0 0 24 24">
+ <path strokeLinecap="round" strokeLinejoin="round" d="M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z" />
+ </svg>
+ </div>
+ <p className="text-red-400 text-sm mb-3">{error}</p>
+ <button onClick={runPredictions} className="btn btn-s text-sm">Retry</button>
+ </div>
+ ) : (
+ <div className="space-y-4">
+ <div className="grid grid-cols-3 gap-4">
+ <div className="text-center">
+ <p className="stat-v text-purple-400">{predictions.length}</p>
+ <p className="text-xs text-gray-500 mt-1">Predictions</p>
+ </div>
+ <div className="text-center">
+ <p className="stat-v text-green-400">{buySignals.length}</p>
+ <p className="text-xs text-gray-500 mt-1">Buy Signals</p>
+ </div>
+ <div className="text-center">
+ <p className="stat-v text-blue-400">{result?.edges_found || buySignals.length}</p>
+ <p className="text-xs text-gray-500 mt-1">Edges Found</p>
+ </div>
+ </div>
+
+ {predictions.length > 0 && (
+ <div className="border-t border-gray-800 pt-3">
+ <p className="text-xs text-gray-500 mb-2 uppercase font-medium">Top Predictions</p>
+ <table>
+ <thead>
+ <tr>
+ <th>Market</th>
+ <th>P(Yes)</th>
+ <th>Edge</th>
+ <th>Signal</th>
+ </tr>
+ </thead>
+ <tbody>
+ {predictions.slice(0, 6).map((p, i) => (
+ <tr key={i}>
+ <td className="max-w-[200px]"><span className="truncate block text-xs">{p.question || p.market}</span></td>
+ <td className="font-mono text-sm">{((p.p_yes || p.probability || 0) * 100).toFixed(1)}%</td>
+ <td className={`font-mono text-sm ${(p.edge || 0) > 0 ? 'text-green-400' : 'text-gray-500'}`}>
+ {((p.edge || 0) * 100).toFixed(1)}%
+ </td>
+ <td>
+ <span className={`badge ${p.signal === 'BUY' || (p.edge || 0) > 0 ? 'bg-green' : 'bg-red'}`}>
+ {p.signal || ((p.edge || 0) > 0 ? 'BUY' : 'HOLD')}
+ </span>
+ </td>
+ </tr>
+ ))}
+ </tbody>
+ </table>
+ </div>
+ )}
+
+ {predictions.length === 0 && !error && (
+ <div className="text-center py-4">
+ <p className="text-gray-500 text-sm">No predictions generated yet — models may need more market data</p>
+ </div>
+ )}
+ </div>
+ )}
+ </div>
+
+ <div className="flex items-center justify-between">
+ <button onClick={back} className="text-sm text-gray-500 hover:text-gray-300">Back</button>
+ <button onClick={next} disabled={loading} className="wizard-btn">
+ {loading ? 'Processing...' : 'Continue'}
+ </button>
+ </div>
+ </div>
+ );
+}
diff --git a/react-dash/src/setup/steps/TestConnection.jsx b/react-dash/src/setup/steps/TestConnection.jsx
new file mode 100644
index 0000000..dcac64d
--- /dev/null
+++ b/react-dash/src/setup/steps/TestConnection.jsx
@@ -0,0 +1,127 @@
+import React, { useState, useEffect } from 'react';
+import { post } from '../../api';
+
+export default function TestConnection({ data, update, next, back }) {
+ const [publicTest, setPublicTest] = useState(null);
+ const [authTest, setAuthTest] = useState(null);
+ const [publicLoading, setPublicLoading] = useState(true);
+ const [authLoading, setAuthLoading] = useState(false);
+
+ useEffect(() => {
+ runPublicTest();
+ }, []);
+
+ async function runPublicTest() {
+ setPublicLoading(true);
+ try {
+ const r = await post('/polymarket', { action: 'test_public' });
+ setPublicTest(r);
+ // Auto-run auth test if keys exist
+ if (r.success && data.keys) {
+ runAuthTest();
+ }
+ } catch {
+ setPublicTest({ error: true });
+ }
+ setPublicLoading(false);
+ }
+
+ async function runAuthTest() {
+ setAuthLoading(true);
+ try {
+ const r = await post('/polymarket', { action: 'auth_test' });
+ setAuthTest(r);
+ if (r.success) update({ connectionOk: true });
+ } catch {
+ setAuthTest({ error: true });
+ }
+ setAuthLoading(false);
+ }
+
+ const skipped = data.skippedConnect;
+
+ return (
+ <div className="space-y-6">
+ <div className="text-center">
+ <h2 className="text-2xl font-bold mb-2">Test Connection</h2>
+ <p className="text-gray-400 text-sm">Verifying your Polymarket API access</p>
+ </div>
+
+ <div className="grid grid-cols-2 gap-4">
+ {/* Public CLOB Test */}
+ <div className="card">
+ <div className="flex items-center gap-2 mb-3">
+ {publicLoading ? (
+ <div className="animate-spin w-5 h-5 border-2 border-blue-500 border-t-transparent rounded-full" />
+ ) : publicTest?.success ? (
+ <div className="w-5 h-5 rounded-full bg-green-500 flex items-center justify-center">
+ <svg className="w-3 h-3 text-white" fill="none" stroke="currentColor" strokeWidth="3" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d="M5 13l4 4L19 7" /></svg>
+ </div>
+ ) : (
+ <div className="w-5 h-5 rounded-full bg-red-500 flex items-center justify-center">
+ <svg className="w-3 h-3 text-white" fill="none" stroke="currentColor" strokeWidth="3" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d="M6 18L18 6M6 6l12 12" /></svg>
+ </div>
+ )}
+ <h3 className="font-semibold text-sm">Public CLOB</h3>
+ </div>
+ {publicTest?.success ? (
+ <div className="space-y-1 text-xs text-gray-400">
+ <p>Server Time: <span className="text-green-400 font-mono">{publicTest.server_time ? new Date(parseInt(publicTest.server_time) * 1000).toLocaleTimeString() : 'OK'}</span></p>
+ <p>Endpoint: <span className="text-gray-300 font-mono">clob.polymarket.com</span></p>
+ </div>
+ ) : publicTest?.error ? (
+ <p className="text-xs text-red-400">Could not reach CLOB API</p>
+ ) : null}
+ </div>
+
+ {/* Authenticated Test */}
+ <div className="card">
+ <div className="flex items-center gap-2 mb-3">
+ {skipped ? (
+ <div className="w-5 h-5 rounded-full bg-yellow-500 flex items-center justify-center">
+ <span className="text-white text-xs font-bold">—</span>
+ </div>
+ ) : authLoading ? (
+ <div className="animate-spin w-5 h-5 border-2 border-purple-500 border-t-transparent rounded-full" />
+ ) : authTest?.success ? (
+ <div className="w-5 h-5 rounded-full bg-green-500 flex items-center justify-center">
+ <svg className="w-3 h-3 text-white" fill="none" stroke="currentColor" strokeWidth="3" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d="M5 13l4 4L19 7" /></svg>
+ </div>
+ ) : authTest?.error ? (
+ <div className="w-5 h-5 rounded-full bg-red-500 flex items-center justify-center">
+ <svg className="w-3 h-3 text-white" fill="none" stroke="currentColor" strokeWidth="3" viewBox="0 0 24 24"><path strokeLinecap="round" strokeLinejoin="round" d="M6 18L18 6M6 6l12 12" /></svg>
+ </div>
+ ) : (
+ <div className="w-5 h-5 rounded-full bg-gray-600" />
+ )}
+ <h3 className="font-semibold text-sm">Authenticated</h3>
+ </div>
+ {skipped ? (
+ <p className="text-xs text-yellow-400">Skipped — paper mode only</p>
+ ) : authTest?.success ? (
+ <p className="text-xs text-green-400">HMAC-SHA256 auth verified</p>
+ ) : authTest?.error ? (
+ <p className="text-xs text-red-400">Auth failed — check credentials</p>
+ ) : !data.keys ? (
+ <p className="text-xs text-gray-500">No keys provided</p>
+ ) : (
+ <p className="text-xs text-gray-500">Waiting for public test...</p>
+ )}
+ </div>
+ </div>
+
+ {!publicLoading && !authLoading && (
+ <div className="flex justify-center">
+ <button onClick={runPublicTest} className="text-xs text-gray-500 hover:text-gray-300">
+ Retry Tests
+ </button>
+ </div>
+ )}
+
+ <div className="flex items-center justify-between">
+ <button onClick={back} className="text-sm text-gray-500 hover:text-gray-300">Back</button>
+ <button onClick={next} className="wizard-btn">Continue</button>
+ </div>
+ </div>
+ );
+}
diff --git a/react-dash/src/setup/steps/Welcome.jsx b/react-dash/src/setup/steps/Welcome.jsx
new file mode 100644
index 0000000..afd71d1
--- /dev/null
+++ b/react-dash/src/setup/steps/Welcome.jsx
@@ -0,0 +1,69 @@
+import React from 'react';
+
+const FEATURES = [
+ { title: 'Market Intelligence', desc: 'Scans Polymarket for weather prediction markets and identifies profitable opportunities', icon: 'M13 7h8m0 0v8m0-8l-8 8-4-4-6 6' },
+ { title: 'Weather Forecasting', desc: 'Pulls real NWS forecast data and builds probability models for weather outcomes', icon: 'M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z' },
+ { title: 'Automated Trading', desc: 'Places bets on Polymarket when edges exceed your risk threshold, fully automated', icon: 'M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z' },
+];
+
+const PIPELINE = [
+ 'Connect to Polymarket API',
+ 'Ingest weather prediction markets',
+ 'Fetch NWS forecast data',
+ 'Generate AI probability models',
+ 'Calculate edges & signals',
+ 'Execute trades automatically',
+];
+
+export default function Welcome({ next }) {
+ return (
+ <div className="space-y-8">
+ <div className="text-center">
+ <h1 className="text-4xl font-bold wizard-gradient mb-3">Welcome to Bertha</h1>
+ <p className="text-gray-400 text-lg">Weather-forecast micro-betting on Polymarket</p>
+ </div>
+
+ <div className="grid grid-cols-3 gap-4">
+ {FEATURES.map(f => (
+ <div key={f.title} className="card text-center">
+ <div className="w-10 h-10 rounded-lg bg-blue-500/10 flex items-center justify-center mx-auto mb-3">
+ <svg className="w-5 h-5 text-blue-400" fill="none" stroke="currentColor" strokeWidth="1.5" viewBox="0 0 24 24">
+ <path strokeLinecap="round" strokeLinejoin="round" d={f.icon} />
+ </svg>
+ </div>
+ <h3 className="font-semibold text-sm mb-1">{f.title}</h3>
+ <p className="text-xs text-gray-500 leading-relaxed">{f.desc}</p>
+ </div>
+ ))}
+ </div>
+
+ <div className="card">
+ <h3 className="font-semibold text-sm mb-3">How it works</h3>
+ <div className="grid grid-cols-2 gap-2">
+ {PIPELINE.map((p, i) => (
+ <div key={i} className="flex items-center gap-3 py-1.5">
+ <span className="w-6 h-6 rounded-full bg-blue-500/15 text-blue-400 flex items-center justify-center text-xs font-bold flex-shrink-0">{i + 1}</span>
+ <span className="text-sm text-gray-300">{p}</span>
+ </div>
+ ))}
+ </div>
+ </div>
+
+ <div className="card bg-yellow-500/5 border-yellow-500/20">
+ <div className="flex items-start gap-3">
+ <svg className="w-5 h-5 text-yellow-400 mt-0.5 flex-shrink-0" fill="none" stroke="currentColor" strokeWidth="1.5" viewBox="0 0 24 24">
+ <path strokeLinecap="round" strokeLinejoin="round" d="M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z" />
+ </svg>
+ <div>
+ <p className="text-sm font-medium text-yellow-400">You'll need Polymarket Builder API keys</p>
+ <p className="text-xs text-gray-400 mt-1">Go to polymarket.com → Settings → Builder tab to create API credentials. You can also skip this and use paper mode.</p>
+ </div>
+ </div>
+ </div>
+
+ <div className="flex justify-center">
+ <button onClick={next} className="wizard-btn">Get Started</button>
+ </div>
+ </div>
+ );
+}
diff --git a/react-dash/tailwind.config.js b/react-dash/tailwind.config.js
new file mode 100644
index 0000000..403e973
--- /dev/null
+++ b/react-dash/tailwind.config.js
@@ -0,0 +1,11 @@
+export default {
+ content: ['./index.html', './src/**/*.{js,jsx}'],
+ theme: {
+ extend: {
+ colors: {
+ b: { bg: '#0a0e1a', card: '#111827', border: '#1e293b', accent: '#3b82f6', green: '#10b981', red: '#ef4444', yellow: '#f59e0b', purple: '#8b5cf6' }
+ }
+ }
+ },
+ plugins: [],
+};
diff --git a/react-dash/vite.config.js b/react-dash/vite.config.js
new file mode 100644
index 0000000..dd2a3df
--- /dev/null
+++ b/react-dash/vite.config.js
@@ -0,0 +1,20 @@
+import { defineConfig } from 'vite';
+import react from '@vitejs/plugin-react';
+
+export default defineConfig({
+ plugins: [react()],
+ server: {
+ port: 7809,
+ host: '0.0.0.0',
+ proxy: {
+ '/api': 'http://127.0.0.1:7800'
+ }
+ },
+ preview: {
+ port: 7809,
+ host: '0.0.0.0',
+ proxy: {
+ '/api': 'http://127.0.0.1:7800'
+ }
+ }
+});
diff --git a/src/app/api/alerts/route.js b/src/app/api/alerts/route.js
index 2274b18..e7ed89d 100644
--- a/src/app/api/alerts/route.js
+++ b/src/app/api/alerts/route.js
@@ -2,6 +2,8 @@ import { NextResponse } from 'next/server';
const { query } = require('../../../lib/db');
const { sendSlackAlert } = require('../../../lib/slack');
+export const dynamic = 'force-dynamic';
+
export async function GET() {
try {
const res = await query('SELECT * FROM alerts_log ORDER BY ts DESC LIMIT 50');
diff --git a/src/app/api/bankroll/route.js b/src/app/api/bankroll/route.js
index 6b4cf4f..83c8ec5 100644
--- a/src/app/api/bankroll/route.js
+++ b/src/app/api/bankroll/route.js
@@ -1,6 +1,8 @@
import { NextResponse } from 'next/server';
const { query } = require('../../../lib/db');
+export const dynamic = 'force-dynamic';
+
export async function GET() {
try {
const [ledger, summary] = await Promise.all([
diff --git a/src/app/api/dashboard/route.js b/src/app/api/dashboard/route.js
index 47eb8c9..4b803ff 100644
--- a/src/app/api/dashboard/route.js
+++ b/src/app/api/dashboard/route.js
@@ -1,6 +1,8 @@
import { NextResponse } from 'next/server';
const { query } = require('../../../lib/db');
+export const dynamic = 'force-dynamic';
+
export async function GET() {
try {
const [markets, weatherMarkets, forecasts, predictions, trades, alerts] = await Promise.all([
diff --git a/src/app/api/health/route.js b/src/app/api/health/route.js
index 06759cc..c7b90ec 100644
--- a/src/app/api/health/route.js
+++ b/src/app/api/health/route.js
@@ -2,6 +2,8 @@ import { NextResponse } from 'next/server';
const { pool } = require('../../../lib/db');
const { authenticateRequest, createToken, VALID_USER, VALID_PASS } = require('../../../lib/auth');
+export const dynamic = 'force-dynamic';
+
export async function GET(req) {
const user = authenticateRequest(req);
let dbOk = false;
diff --git a/src/app/api/markets/route.js b/src/app/api/markets/route.js
index 5c8d200..2f63b4e 100644
--- a/src/app/api/markets/route.js
+++ b/src/app/api/markets/route.js
@@ -2,6 +2,8 @@ import { NextResponse } from 'next/server';
const { query } = require('../../../lib/db');
const { getMarkets, isWeatherMarket, parseWeatherEvent } = require('../../../lib/polymarket');
+export const dynamic = 'force-dynamic';
+
export async function GET() {
try {
const res = await query(`
diff --git a/src/app/api/models/route.js b/src/app/api/models/route.js
index 47f49a2..4994828 100644
--- a/src/app/api/models/route.js
+++ b/src/app/api/models/route.js
@@ -3,6 +3,8 @@ const { query } = require('../../../lib/db');
const { generatePrediction, storePrediction } = require('../../../lib/model');
const { calculateEdge } = require('../../../lib/risk');
+export const dynamic = 'force-dynamic';
+
export async function GET() {
try {
const [models, predictions, calibration] = await Promise.all([
diff --git a/src/app/api/risk/route.js b/src/app/api/risk/route.js
index 07abd72..40a8b8f 100644
--- a/src/app/api/risk/route.js
+++ b/src/app/api/risk/route.js
@@ -2,6 +2,8 @@ import { NextResponse } from 'next/server';
const { query } = require('../../../lib/db');
const { getRiskState, updateRiskState, evaluateTrade, activateKillSwitch, deactivateKillSwitch } = require('../../../lib/risk');
+export const dynamic = 'force-dynamic';
+
export async function GET() {
try {
const state = await getRiskState();
diff --git a/src/app/api/trades/route.js b/src/app/api/trades/route.js
index 3b72224..0342602 100644
--- a/src/app/api/trades/route.js
+++ b/src/app/api/trades/route.js
@@ -2,6 +2,8 @@ import { NextResponse } from 'next/server';
const { query } = require('../../../lib/db');
const crypto = require('crypto');
+export const dynamic = 'force-dynamic';
+
export async function GET() {
try {
const [orders, trades] = await Promise.all([
diff --git a/src/app/api/weather/route.js b/src/app/api/weather/route.js
index 242ab85..b7855e0 100644
--- a/src/app/api/weather/route.js
+++ b/src/app/api/weather/route.js
@@ -2,6 +2,8 @@ import { NextResponse } from 'next/server';
const { query } = require('../../../lib/db');
const { getGridPoint, getForecast, getHourlyForecast, getCityCoords, geomHash, extractForecastFeatures, CITY_COORDS } = require('../../../lib/weather');
+export const dynamic = 'force-dynamic';
+
export async function GET() {
try {
const res = await query('SELECT * FROM forecast_runs ORDER BY run_ts DESC LIMIT 200');
diff --git a/src/app/api/workers/route.js b/src/app/api/workers/route.js
index 5ef6832..5f8bfa3 100644
--- a/src/app/api/workers/route.js
+++ b/src/app/api/workers/route.js
@@ -1,5 +1,7 @@
import { NextResponse } from 'next/server';
+export const dynamic = 'force-dynamic';
+
export async function POST(req) {
const body = await req.json();
const baseUrl = 'http://127.0.0.1:7800';
← c8564fb Bertha v1.0 - Weather forecast micro-betting system for Poly
·
back to Bertha
·
chore(alshi-dash,kalshi-dash): update 3 files (.jsx) [+22/-2 acd0439 →