Files
dione/index.html
Dione a61e0b0457 feat: multi-wallet architecture with localStorage state, EIP-712 verification, cross-tab WS leadership
- wallets.js: WalletManager state management with chain validation
- verifier.js: WalletVerifier EIP-712 signing via window.ethereum
- stream.js: WalletStreamManager with BroadcastChannel leader election, backoff + jitter
- AGENTS.md: updated with coding guidelines
2026-06-06 12:16:41 +00:00

1045 lines
203 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>cbBTC Treasury Dashboard</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdn.jsdelivr.net/npm/apexcharts"></script>
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
background-color: #05070B;
}
.apexcharts-tooltip {
background: #111827 !important;
border: 1px solid #1F2937 !important;
border-radius: 12px !important;
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.5) !important;
padding: 10px 16px !important;
color: white !important;
}
.apexcharts-xaxistooltip { display: none !important; }
.apexcharts-marker {
stroke-width: 3px !important;
fill: #111827 !important;
}
.badge { padding: 2px 8px; border-radius: 4px; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; }
.badge-buy { background: rgba(31, 111, 235, 0.2); color: #58a6ff; border: 1px solid rgba(31, 111, 235, 0.3); }
.badge-sell { background: rgba(248, 81, 73, 0.2); color: #ff7b72; border: 1px solid rgba(248, 81, 73, 0.3); }
.badge-aavein { background: rgba(137, 87, 229, 0.2); color: #bc8cff; border: 1px solid rgba(137, 87, 229, 0.3); }
.badge-aaveout { background: rgba(210, 153, 34, 0.2); color: #d29922; border: 1px solid rgba(210, 153, 34, 0.3); }
.filter-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px; width: fit-content; }
.filter-item { display: flex; align-items: center; padding: 4px; background: rgba(255, 255, 255, 0.03); border-radius: 4px; transition: all 0.2s; cursor: pointer; }
.filter-item:hover { background: rgba(255, 255, 255, 0.08); }
.filter-checkbox {
appearance: none; width: 12px; height: 12px; border-radius: 2px; border: 1px solid rgba(255,255,255,0.2);
cursor: pointer; position: relative; transition: all 0.2s;
}
.filter-checkbox:checked { border-color: transparent; }
.filter-checkbox.buy:checked { background: #58a6ff; box-shadow: 0 0 8px rgba(88, 166, 255, 0.4); }
.filter-checkbox.sell:checked { background: #ff7b72; box-shadow: 0 0 8px rgba(255, 123, 114, 0.4); }
.filter-checkbox.aavein:checked { background: #bc8cff; box-shadow: 0 0 8px rgba(188, 140, 255, 0.4); }
.filter-checkbox.aaveout:checked { background: #d29922; box-shadow: 0 0 8px rgba(210, 153, 34, 0.4); }
.filter-checkbox.penguin:checked { background: #64748B; box-shadow: 0 0 8px rgba(100, 116, 139, 0.4); }
.wallet-checkbox:checked { border-color: transparent; }
.ledger-header { display: flex; align-items: center; }
.ledger-title-col { width: 260px; flex-shrink: 0; }
.col-timestamp { width: 140px; flex-shrink: 0; }
.col-action { width: 150px; flex-shrink: 0; }
.col-wallet { width: 120px; flex-shrink: 0; }
.col-value { width: auto; }
.tooltip-cell { position: relative; }
.tooltip-cell .tooltip-box {
display: none;
position: absolute;
top: calc(100% + 8px);
left: 50%;
transform: translateX(-50%);
z-index: 100;
background: #111827;
border: 1px solid #374151;
border-radius: 8px;
padding: 10px 14px;
box-shadow: 0 10px 25px rgba(0,0,0,0.6);
min-width: 200px;
font-size: 12px;
white-space: nowrap;
}
.tooltip-cell:hover .tooltip-box { display: block; }
.tooltip-cell .tooltip-box::after {
content: '';
position: absolute;
bottom: 100%;
left: 50%;
transform: translateX(-50%);
border: 6px solid;
border-color: #374151 transparent transparent transparent;
}
.tooltip-row { display: flex; justify-content: space-between; gap: 16px; padding: 2px 0; }
.tooltip-row.total { border-top: 1px solid #374151; margin-top: 6px; padding-top: 6px; font-weight: 700; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: #05070B; }
::-webkit-scrollbar-thumb { background: #1F2937; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #374151; }
</style>
</head>
<body class="p-4 md:p-8 min-h-screen text-white">
<div class="max-w-7xl mx-auto">
<div class="flex flex-col md:flex-row justify-between items-end mb-8 gap-4">
<div>
<h2 class="text-xs font-bold text-gray-500 mb-1 uppercase tracking-[0.2em]">Treasury Intelligence</h2>
<h1 class="text-3xl font-black text-white tracking-tight">cbBTC Acquisition <span class="text-[#FF7A00]">Core</span></h1>
</div>
<div class="flex flex-col items-end">
<div class="text-xs font-bold text-gray-500 uppercase tracking-widest mb-2">Tracked Wallets</div>
<div class="flex gap-2">
<label class="flex items-center gap-2 bg-[#090D14] border border-[#1A1F2C]/60 px-3 py-1.5 rounded-lg cursor-pointer hover:bg-[#1A1F2C]/40 transition-all" title="0x0c1a4a060e119f981412e323104d1c134d413dba (BASE)">
<input type="checkbox" class="wallet-toggle appearance-none w-3 h-3 rounded-sm border border-white/20 checked:border-transparent transition-all" data-wallet="penguin" checked style="background-color: transparent;" onchange="this.style.backgroundColor = this.checked ? '#f7931a' : 'transparent'; this.style.boxShadow = this.checked ? '0 0 8px #f7931a66' : 'none';" onload="this.style.backgroundColor = '#f7931a';">
<div class="flex flex-col">
<span class="text-[10px] font-bold text-gray-400 uppercase tracking-wider leading-tight">penguin</span>
<span class="text-[8px] font-medium text-gray-600 uppercase tracking-tighter leading-tight">base</span>
</div>
</label>
</div>
</div>
</div>
<div class="grid grid-cols-2 md:grid-cols-4 gap-4 mb-8">
<div class="bg-[#090D14] rounded-xl border border-[#1A1F2C]/60 p-4 shadow-xl">
<div class="text-[10px] font-bold text-gray-500 uppercase tracking-wider mb-1">Current Holdings</div>
<div class="text-xl font-bold text-white"><span id="net-held-val">0.677555</span> <span class="text-xs font-medium text-gray-500">BTC</span></div>
<div class="text-xs font-bold text-green-400 mt-1" id="current-usd-val">$Calculating...</div>
</div>
<div class="bg-[#090D14] rounded-xl border border-[#1A1F2C]/60 p-4 shadow-xl">
<div class="text-[10px] font-bold text-gray-500 uppercase tracking-wider mb-1">Total PnL</div>
<div class="text-xl font-bold" id="total-pnl-val">$--.--</div>
<div class="text-xs font-bold mt-1" id="pnl-percent-val">--.--%</div>
</div>
<div class="bg-[#090D14] rounded-xl border border-[#1A1F2C]/60 p-4 shadow-xl">
<div class="text-[10px] font-bold text-gray-500 uppercase tracking-wider mb-1">Avg Buy Price</div>
<div class="text-xl font-bold text-white" id="avg-buy-val">$93,444</div>
<div class="text-xs font-medium text-gray-500 mt-1">Cost Basis</div>
</div>
<div class="bg-[#090D14] rounded-xl border border-[#1A1F2C]/60 p-4 shadow-xl">
<div class="text-[10px] font-bold text-gray-500 uppercase tracking-wider mb-1">Total Invested</div>
<div class="text-xl font-bold text-white" id="total-invested-val">$88,887.34</div>
<div class="text-xs font-medium text-gray-500 mt-1"><span id="tx-count-val">340</span> Transactions</div>
</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-8">
<!-- Market Context -->
<div class="bg-[#090D14] rounded-2xl border border-[#1A1F2C]/60 p-6 relative shadow-2xl transition-all duration-300 hover:scale-[1.03] hover:border-[#FF7A00] hover:shadow-[#FF7A00]/10 overflow-hidden">
<div class="flex justify-between items-start mb-4">
<div>
<div class="flex items-center space-x-2.5 mb-1">
<span class="text-sm font-medium text-gray-400">BTC Price</span>
<div class="flex items-center space-x-1.5 bg-green-500/10 border border-green-500/20 px-2 py-0.5 rounded-full">
<span class="w-1.5 h-1.5 bg-green-400 rounded-full animate-pulse"></span>
<span class="text-[10px] font-bold text-green-400 uppercase tracking-wide">Real-Time</span>
</div>
</div>
<h1 id="price-card-btc" class="text-3xl font-bold tracking-tight text-white">$Loading...</h1>
</div>
<div class="text-right">
<span id="return-card-btc" class="text-lg font-bold text-gray-400">--.--%</span>
<p class="text-xs text-gray-500 font-medium mt-0.5 uppercase tracking-tighter">Since <span id="since-date">--</span></p>
</div>
</div>
<div class="w-full h-52 mt-4" id="chart-container-btc"></div>
</div>
<!-- BTC Treasury Growth -->
<div class="bg-[#090D14] rounded-2xl border border-[#1A1F2C]/60 p-6 relative shadow-2xl transition-all duration-300 hover:scale-[1.03] hover:border-[#FF7A00] hover:shadow-[#FF7A00]/10 overflow-hidden">
<div class="flex justify-between items-start mb-4">
<div>
<span class="text-sm font-medium text-gray-400">BTC Treasury Growth</span>
<h1 class="text-3xl font-bold tracking-tight text-white"><span id="cumul-btc-val">0.677555</span> <span class="text-sm text-gray-500">BTC</span></h1>
</div>
<div class="text-right">
<span class="text-lg font-bold" style="color: #FF7A00;">NET HELD</span>
<p class="text-xs text-gray-500 font-medium mt-0.5 uppercase tracking-tighter">Cumulative Acquisition</p>
</div>
</div>
<div class="w-full h-52 mt-4" id="chart-container-cumul"></div>
</div>
<!-- Avg BTC Acquired/Day -->
<div class="bg-[#090D14] rounded-2xl border border-[#1A1F2C]/60 p-6 relative shadow-2xl transition-all duration-300 hover:scale-[1.03] hover:border-[#FF7A00] hover:shadow-[#FF7A00]/10 overflow-hidden">
<div class="flex justify-between items-start mb-4">
<div>
<span class="text-sm font-medium text-gray-400">Avg BTC Acquired/Day</span>
<h1 class="text-3xl font-bold tracking-tight text-white"><span id="avg-sats-val">--</span> <span class="text-sm text-gray-500">sats</span></h1>
</div>
<div class="text-right">
<span class="text-lg font-bold" style="color: #FF7A00;">30D AVG</span>
<p class="text-xs text-gray-500 font-medium mt-0.5 uppercase tracking-tighter">Daily Acquisition</p>
</div>
</div>
<div class="w-full h-52 mt-4" id="chart-container-sats"></div>
</div>
<!-- Holdings Breakdown -->
<div class="bg-[#090D14] rounded-2xl border border-[#1A1F2C]/60 p-6 relative shadow-2xl transition-all duration-300 hover:scale-[1.03] hover:border-[#FF7A00] hover:shadow-[#FF7A00]/10 overflow-hidden">
<div class="flex justify-between items-start mb-4">
<div>
<span class="text-sm font-medium text-gray-400">Holdings Breakdown</span>
<h1 class="text-3xl font-bold tracking-tight text-white"><span id="breakdown-total-val">0.677555</span> <span class="text-sm text-gray-500">BTC</span></h1>
</div>
<div class="text-right">
<span class="text-lg font-bold" style="color: #58a6ff;">COMPOSITION</span>
<p class="text-xs text-gray-500 font-medium mt-0.5 uppercase tracking-tighter">Direct + Aave</p>
</div>
</div>
<div class="w-full h-52 mt-4" id="chart-container-breakdown"></div>
</div>
</div>
<!-- Transaction List -->
<div class="bg-[#090D14] rounded-2xl border border-[#1A1F2C]/60 shadow-2xl overflow-hidden">
<div class="p-6 border-b border-[#1A1F2C]/60">
<div class="ledger-header">
<div class="ledger-title-col">
<h3 class="text-sm font-bold text-gray-400 uppercase tracking-widest whitespace-nowrap">Transaction Ledger</h3>
</div>
<div class="flex-1 flex">
<div class="col-action">
<div class="filter-grid">
<label class="filter-item" title="Show BUY transactions">
<input type="checkbox" class="filter-checkbox buy" data-filter="BUY" checked>
</label>
<label class="filter-item" title="Show SELL transactions">
<input type="checkbox" class="filter-checkbox sell" data-filter="SELL" checked>
</label>
<label class="filter-item" title="Show AAVE_IN transactions (to Aave)">
<input type="checkbox" class="filter-checkbox aavein" data-filter="AAVE_IN" checked>
</label>
<label class="filter-item" title="Show AAVE_OUT transactions (from Aave)">
<input type="checkbox" class="filter-checkbox aaveout" data-filter="AAVE_OUT" checked>
</label>
</div>
</div>
<div class="col-wallet">
<div class="filter-grid">
<label class="filter-item" title="Show penguin wallet">
<input type="checkbox" class="filter-checkbox penguin wallet-toggle" data-wallet="penguin" checked>
</label>
</div>
</div>
</div>
<span class="text-[10px] font-medium text-gray-600 uppercase">Archive</span>
</div>
</div>
<div class="overflow-x-auto">
<table id="transaction-table" class="w-full text-left border-collapse">
<thead>
<tr class="bg-[#05070B]/50 text-[10px] font-bold text-gray-500 uppercase tracking-wider">
<th class="px-6 py-4 col-timestamp">Timestamp</th>
<th class="px-6 py-4 col-wallet">Wallet</th>
<th class="px-6 py-4 col-value text-right">Cold Storage</th>
<th class="px-6 py-4 col-value text-right">Collateral</th>
<th class="px-6 py-4 col-value text-right">Borrows</th>
<th class="px-6 py-4">Hash</th>
</tr>
</thead>
<tbody class="text-sm" id="table-body">
<tr><td colspan="6" class="px-6 py-8 text-center text-gray-500 text-sm">Loading snapshots...</td></tr>
</tbody>
</table>
</div>
</div>
</div>
<script>
const orangeBrandColor = '#FF7A00';
const blueBrandColor = '#3b82f6';
const walletCumulData = {"nano": [[1732057200000, 0.0], [1732143600000, 0.0], [1732230000000, 0.0], [1732316400000, 0.0], [1732402800000, 0.0], [1732489200000, 0.0], [1732575600000, 0.0], [1732662000000, 0.0], [1732748400000, 0.0], [1732834800000, 0.0], [1732921200000, 0.00045671], [1733007600000, 0.00068314], [1733094000000, 0.00103581], [1733180400000, 0.00154653], [1733266800000, 0.00203502], [1733353200000, 0.00245059], [1733439600000, 0.0027401], [1733526000000, 0.0027401], [1733612400000, 0.0027401], [1733698800000, 0.0027401], [1733785200000, 0.00331277], [1733871600000, 0.00331277], [1733958000000, 0.00352929], [1734044400000, 0.00352929], [1734130800000, 0.00437782], [1734217200000, 0.00437782], [1734303600000, 0.00437782], [1734390000000, 0.00437782], [1734476400000, 0.00437782], [1734562800000, 0.00437782], [1734649200000, 0.00437782], [1734735600000, 0.00437782], [1734822000000, 0.00483383], [1734908400000, 0.00483383], [1734994800000, 0.00483383], [1735081200000, 0.00483383], [1735167600000, 0.00483383], [1735254000000, 0.00483383], [1735340400000, 0.00688418], [1735426800000, 0.00688418], [1735513200000, 0.00688418], [1735599600000, 0.00688418], [1735686000000, 0.00688418], [1735772400000, 0.00688418], [1735858800000, 0.00688418], [1735945200000, 0.00688418], [1736031600000, 0.00688418], [1736118000000, 0.00688418], [1736204400000, 0.00688418], [1736290800000, 0.00753678], [1736377200000, 0.00753678], [1736463600000, 0.00825444], [1736550000000, 0.00825444], [1736636400000, 0.00825444], [1736722800000, 0.0084866], [1736809200000, 0.0084866], [1736895600000, 0.0084866], [1736982000000, 0.0084866], [1737068400000, 0.0084866], [1737154800000, 0.0084866], [1737241200000, 0.0084866], [1737327600000, 0.0084866], [1737414000000, 0.0084866], [1737500400000, 0.0084866], [1737586800000, 0.0088232], [1737673200000, 0.0088232], [1737759600000, 0.0088232], [1737846000000, 0.0088232], [1737932400000, 0.00947181], [1738018800000, 0.00947181], [1738105200000, 0.00987744], [1738191600000, 0.01019638], [1738278000000, 0.01019638], [1738364400000, 0.01019638], [1738450800000, 0.01019638], [1738537200000, 0.09168322], [1738623600000, 0.0], [1738710000000, 0.0], [1738796400000, 0.0], [1738882800000, 0.0], [1738969200000, 0.0], [1739055600000, 0.0], [1739142000000, 0.0], [1739228400000, 0.0], [1739314800000, 0.0], [1739401200000, 0.0], [1739487600000, 0.0], [1739574000000, 0.0], [1739660400000, 0.0], [1739746800000, 0.0], [1739833200000, 0.0], [1739919600000, 0.0], [1740006000000, 0.0], [1740092400000, 0.0], [1740178800000, 0.0], [1740265200000, 0.0], [1740351600000, 0.0], [1740438000000, 0.0], [1740524400000, 0.0], [1740610800000, 0.0], [1740697200000, 0.0], [1740783600000, 0.0], [1740870000000, 0.0], [1740956400000, 0.0], [1741042800000, 0.0], [1741129200000, 0.0], [1741215600000, 0.0], [1741302000000, 0.0], [1741388400000, 0.0], [1741474800000, 0.0], [1741561200000, 0.0], [1741647600000, 0.0], [1741734000000, 0.0], [1741820400000, 0.0], [1741906800000, 0.0], [1741993200000, 0.0], [1742079600000, 0.0], [1742166000000, 0.0], [1742252400000, 0.0], [1742338800000, 0.0], [1742425200000, 0.0], [1742511600000, 0.0], [1742598000000, 0.0], [1742684400000, 0.0], [1742770800000, 0.0], [1742857200000, 0.0], [1742943600000, 0.0], [1743030000000, 0.0], [1743116400000, 0.0], [1743202800000, 0.0], [1743289200000, 0.0], [1743372000000, 0.0], [1743458400000, 0.0], [1743544800000, 0.0], [1743631200000, 0.0], [1743717600000, 0.0], [1743804000000, 0.0], [1743890400000, 0.0], [1743976800000, 0.0], [1744063200000, 0.0], [1744149600000, 0.0], [1744236000000, 0.0], [1744322400000, 0.0], [1744408800000, 0.0], [1744495200000, 0.0], [1744581600000, 0.0], [1744668000000, 0.0], [1744754400000, 0.0], [1744840800000, 0.0], [1744927200000, 0.0], [1745013600000, 0.0], [1745100000000, 0.0], [1745186400000, 0.0], [1745272800000, 0.0], [1745359200000, 0.0], [1745445600000, 0.0], [1745532000000, 0.0], [1745618400000, 0.0], [1745704800000, 0.0], [1745791200000, 0.0], [1745877600000, 0.0], [1745964000000, 0.0], [1746050400000, 0.0], [1746136800000, 0.0], [1746223200000, 0.0], [1746309600000, 0.0], [1746396000000, 0.0], [1746482400000, 0.0], [1746568800000, 0.0], [1746655200000, 0.0], [1746741600000, 0.0], [1746828000000, 0.0], [1746914400000, 0.0], [1747000800000, 0.0], [1747087200000, 0.0], [1747173600000, 0.0], [1747260000000, 0.0], [1747346400000, 0.0], [1747432800000, 0.0], [1747519200000, 0.0], [1747605600000, 0.0], [1747692000000, 0.0], [1747778400000, 0.0], [1747864800000, 0.0], [1747951200000, 0.0], [1748037600000, 0.0], [1748124000000, 0.0], [1748210400000, 0.0], [1748296800000, 0.0], [1748383200000, 0.0], [1748469600000, 0.0], [1748556000000, 0.0], [1748642400000, 0.0], [1748728800000, 0.0], [1748815200000, 0.0], [1748901600000, 0.0], [1748988000000, 0.0], [1749074400000, 0.0], [1749160800000, 0.0], [1749247200000, 0.0], [1749333600000, 0.0], [1749420000000, 0.0], [1749506400000, 0.0], [1749592800000, 0.0], [1749679200000, 0.0], [1749765600000, 0.0], [1749852000000, 0.0], [1749938400000, 0.0], [1750024800000, 0.0], [1750111200000, 0.0], [1750197600000, 0.0], [1750284000000, 0.0], [1750370400000, 0.0], [1750456800000, 0.0], [1750543200000, 0.0], [1750629600000, 0.0], [1750716000000, 0.0], [1750802400000, 0.0], [1750888800000, 0.0], [1750975200000, 0.0], [1751061600000, 0.0], [1751148000000, 0.0], [1751234400000, 0.0], [1751320800000, 0.0], [1751407200000, 0.0], [1751493600000, 0.0], [1751580000000, 0.0], [1751666400000, 0.0], [1751752800000, 0.0], [1751839200000, 0.0], [1751925600000, 0.0], [1752012000000, 0.0], [1752098400000, 0.0], [1752184800000, 0.0], [1752271200000, 0.0], [1752357600000, 0.0], [1752444000000, 6.798e-05], [1752530400000, 0.000188], [1752616800000, 0.00029063], [1752703200000, 0.0003693], [1752789600000, 0.0003693], [1752876000000, 0.00051443], [1752962400000, 0.00051443], [1753048800000, 0.00058046], [1753135200000, 0.00058046], [1753221600000, 0.00072238], [1753308000000, 0.000782], [1753394400000, 0.00087909], [1753480800000, 0.00087909], [1753567200000, 0.00087909], [1753653600000, 0.00101857], [1753740000000, 0.00108066], [1753826400000, 0.00113692], [1753912800000, 0.0012024], [1753999200000, 0.00129035], [1754085600000, 0.00143369], [1754172000000, 0.00146413], [1754258400000, 0.00149586], [1754344800000, 0.0015403], [1754431200000, 0.00160394], [1754517600000, 0.00160394], [1754604000000, 0.00160394], [1754690400000, 0.00160394], [1754776800000, 0.00160394], [1754863200000, 0.00180362], [1754949600000, 0.00180362], [1755036000000, 0.00180362], [1755122400000, 0.00180362], [1755208800000, 0.00209673], [1755295200000, 0.00209673], [1755381600000, 0.00209673], [1755468000000, 0.00224513], [1755554400000, 0.00234412], [1755640800000, 0.00242557], [1755727200000, 0.00242557], [1755813600000, 0.00255011], [1755900000000, 0.00263968], [1755986400000, 0.00263968], [1756072800000, 0.00274319], [1756159200000, 0.00274319], [1756245600000, 0.00274319], [1756332000000, 0.00274319], [1756418400000, 0.00274319], [1756504800000, 0.00274319], [1756591200000, 0.00274319], [1756677600000, 0.00274319], [1756764000000, 0.00274319], [1756850400000, 0.0808043], [1756936800000, 0.0808043], [1757023200000, 0.0808043], [1757109600000, 0.0808043], [1757196000000, 0.0808043], [1757282400000, 0.0808043], [1757368800000, 0.0808043], [1757455200000, 0.0808043], [1757541600000, 0.0808043], [1757628000000, 0.0808043], [1757714400000, 0.0808043], [1757800800000, 0.0808043], [1757887200000, 0.0808043], [1757973600000, 0.0808043], [1758060000000, 0.0808043], [1758146400000, 0.0808043], [1758232800000, 0.0808043], [1758319200000, 0.0808043], [1758405600000, 0.0808043], [1758492000000, 0.0808043], [1758578400000, 0.0808043], [1758664800000, 0.0808043], [1758751200000, 0.0808043], [1758837600000, 0.0808043], [1758924000000, 0.0808043], [1759010400000, 0.0808043], [1759096800000, 0.0808043], [1759183200000, 0.0808043], [1759269600000, 0.0808043], [1759356000000, 0.0808043], [1759442400000, 0.0808043], [1759528800000, 0.0808043], [1759615200000, 0.0808043], [1759701600000, 0.0808043], [1759788000000, 0.0808043], [1759874400000, 0.0808043], [1759960800000, 0.0808043], [1760047200000, 0.0808043], [1760133600000, 0.0808043], [1760220000000, 0.0808043], [1760306400000, 0.08210142], [1760392800000, 0.08230368], [1760479200000, 0.08250211], [1760565600000, 0.08270439], [1760652000000, 0.08270439], [1760738400000, 0.08306966], [1760824800000, 0.08326389], [1760911200000, 0.08326389], [1760997600000, 0.08361017], [1761084000000, 0.08378448], [1761170400000, 0.31259192], [1761256800000, 0.31259192], [1761343200000, 0.31285806], [1761429600000, 0.31295585], [1761519600000, 0.31295585], [1761606000000, 0.31295585], [1761692400000, 0.31422075], [1761778800000, 0.31527433], [1761865200000, 0.31608218], [1761951600000, 0.31672662], [1762038000000, 0.31672662], [1762124400000, 0.31770721], [1762210800000, 0.31825256], [1762297200000, 0.31825256], [1762383600000, 0.3191553], [1762470000000, 0.31944042], [1762556400000, 0.31975693], [1762642800000, 0.32005671], [1762729200000, 0.32005671], [1762815600000, 0.32063707], [1762902000000, 0.32092981], [1762988400000, 0.32135078], [1763074800000, 0.32162645], [1763161200000, 0.32192447], [1763247600000, 0.32192447], [1763334000000, 0.32248916], [1763420400000, 0.32277358], [1763506800000, 0.32305723], [1763593200000, 0.32359662], [1763679600000, 0.32386146], [1763766000000, 0.3241321], [1763852400000, 0.32442509], [1763938800000, 0.32467026], [1764025200000, 0.32494489], [1764111600000, 0.32523099], [1764198000000, 0.32571375], [1764284400000, 0.32598251], [1764370800000, 0.32598251], [1764457200000, 0.32598251], [1764543600000, 0.32622631], [1764630000000, 0.32652136], [1764716400000, 0.32679733], [1764802800000, 0.32743353], [1764889200000, 0.32743353], [1764975600000, 0.32799302], [1765062000000, 0.32829636], [1765148400000, 0.32854854], [1765234800000, 0.32882478], [1765321200000, 0.32909662], [1765407600000, 0.32970904], [1765494000000, 0.32999514], [1765580400000, 0.33026257], [1765666800000, 0.33026257], [1765753200000, 0.3308194], [1765839600000, 0.33105663], [1765926000000, 0.33131311], [1766012400000, 0.33131311], [1766098800000, 0.33131311], [1766185200000, 0.33131311], [1766271600000, 0.33131311], [1766358000000, 0.33131311], [1766444400000, 0.33131311], [1766530800000, 0.33131311], [1766617200000, 0.33131311], [1766703600000, 0.33131311], [1766790000000, 0.33131311], [1766876400000, 0.33131311], [1766962800000, 0.33131311], [1767049200000, 0.33131311], [1767135600000, 0.33131311], [1767222000000, 0.33131311], [1767308400000, 0.33131311], [1767394800000, 0.33131311], [1767481200000, 0.33131311], [1767567600000, 0.33131311], [1767654000000, 0.33131311], [1767740400000, 0.33131311], [1767826800000, 0.33131311], [1767913200000, 0.33131311], [1767999600000, 0.33131311], [1768086000000, 0.33131311], [1768172400000, 0.33131311], [1768258800000, 0.33131311], [1768345200000, 0.33131311], [1768431600000, 0.33131311], [1768518000000, 0.33131311], [1768604400000, 0.33131311], [1768690800000, 0.33131311], [1768777200000, 0.33131311], [1768863600000, 0.33131311], [1768950000000, 0.33131311], [1769036400000, 0.33131311], [1769122800000, 0.33131311], [1769209200000, 0.33801751], [1769295600000, 0.33801751], [1769382000000, 0.33801751], [1769468400000, 0.33801751], [1769554800000, 0.33801751], [1769641200000, 0.33801751], [1769727600000, 0.33801751], [1769814000000, 0.34996681], [1769900400000, 0.34996681], [1769986800000, 0.34996681], [1770073200000, 0.34996681], [1770159600000, 0.34996681], [1770246000000, 0.34996681], [1770332400000, 0.34996681], [1770418800000, 0.36464723], [1770505200000, 0.36464723], [1770591600000, 0.36464723], [1770678000000, 0.36464723], [1770764400000, 0.36464723], [1770850800000, 0.36464723], [1770937200000, 0.36464723], [1771023600000, 0.37903495], [1771110000000, 0.37903495], [1771196400000, 0.37903495], [1771282800000, 0.37903495], [1771369200000, 0.37903495], [1771455600000, 0.37903495], [1771542000000, 0.37903495], [1771628400000, 0.39378039], [1771714800000, 0.39378039], [1771801200000, 0.39378039], [1771887600000, 0.39378039], [1771974000000, 0.39378039], [1772060400000, 0.39378039], [1772146800000, 0.39378039], [1772233200000, 0.40941637], [1772319600000, 0.40941637], [1772406000000, 0.40941637], [1772492400000, 0.40941637], [1772578800000, 0.40941637], [1772665200000, 0.40941637], [1772751600000, 0.40941637], [1772838000000, 0.40941637], [1772924400000, 0.40941637], [1773010800000, 0.40941637], [1773097200000, 0.40941637], [1773183600000, 0.40941637], [1773270000000, 0.40941637], [1773356400000, 0.40941637], [1773442800000, 0.42358539], [1773529200000, 0.42358539], [1773615600000, 0.42358539], [1773702000000, 0.42358539], [1773788400000, 0.42358539], [1773874800000, 0.42358539], [1773961200000, 0.42358539], [1774047600000, 0.42358539], [1774134000000, 0.43803799], [1774220400000, 0.43803799], [1774306800000, 0.43803799], [1774393200000, 0.43803799], [1774479600000, 0.43803799], [1774566000000, 0.45321382], [1774652400000, 0.45321382], [1774738800000, 0.45321382], [1774821600000, 0.45321382], [1774908000000, 0.45321382], [1774994400000, 0.45321382], [1775080800000, 0.45321382], [1775167200000, 0.45321382], [1775253600000, 0.45321382], [1775340000000, 0.46069627], [1775426400000, 0.46069627], [1775512800000, 0.46069627], [1775599200000, 0.46069627], [1775685600000, 0.46069627], [1775772000000, 0.46069627], [1775858400000, 0.46469627], [1775944800000, 0.46469627], [1776031200000, 0.46469627], [1776117600000, 0.46469627], [1776204000000, 0.46469627], [1776290400000, 0.46469627], [1776376800000, 0.46469627], [1776463200000, 0.46839627], [1776549600000, 0.46839627], [1776636000000, 0.35139627], [1776722400000, 0.35139627], [1776808800000, 0.35139627], [1776895200000, 0.35139627], [1776981600000, 0.35139627], [1777068000000, 0.35847326], [1777154400000, 0.35847326], [1777240800000, 0.35847326], [1777327200000, 0.35847326], [1777413600000, 0.35847326], [1777500000000, 0.35847326], [1777586400000, 0.35847326], [1777672800000, 0.35847326], [1777759200000, 0.36763377], [1777845600000, 0.36763377], [1777932000000, 0.36763377], [1778018400000, 0.36763377], [1778104800000, 0.36763377], [1778191200000, 0.36763377], [1778277600000, 0.37095644], [1778364000000, 0.37095644], [1778450400000, 0.37095644], [1778536800000, 0.37095644], [1778623200000, 0.37095644], [1778709600000, 0.37095644], [1778796000000, 0.37095644], [1778882400000, 0.37441277], [1778968800000, 0.37441277], [1779055200000, 0.37441277], [1779141600000, 0.37441277], [1779228000000, 0.37441277], [1779314400000, 0.37441277]], "penguin": [[1732057200000, 0.0], [1732143600000, 0.0], [1732230000000, 0.0], [1732316400000, 0.0], [1732402800000, 0.0], [1732489200000, 0.0], [1732575600000, 0.0], [1732662000000, 0.0], [1732748400000, 0.0], [1732834800000, 0.0], [1732921200000, 0.0], [1733007600000, 0.0], [1733094000000, 0.0], [1733180400000, 0.0], [1733266800000, 0.0], [1733353200000, 0.0], [1733439600000, 0.0], [1733526000000, 0.0], [1733612400000, 0.0], [1733698800000, 0.0], [1733785200000, 0.0], [1733871600000, 0.0], [1733958000000, 0.0], [1734044400000, 0.0], [1734130800000, 0.0], [1734217200000, 0.0], [1734303600000, 0.0], [1734390000000, 0.0], [1734476400000, 0.0], [1734562800000, 0.0], [1734649200000, 0.0], [1734735600000, 0.0], [1734822000000, 0.0], [1734908400000, 0.0], [1734994800000, 0.0], [1735081200000, 0.0], [1735167600000, 0.0], [1735254000000, 0.0], [1735340400000, 0.0], [1735426800000, 0.0], [1735513200000, 0.0], [1735599600000, 0.0], [1735686000000, 0.0], [1735772400000, 0.0], [1735858800000, 0.0], [1735945200000, 0.0], [1736031600000, 0.0], [1736118000000, 0.0], [1736204400000, 0.0], [1736290800000, 0.0], [1736377200000, 0.0], [1736463600000, 0.0], [1736550000000, 0.0], [1736636400000, 0.0], [1736722800000, 0.0], [1736809200000, 0.0], [1736895600000, 0.0], [1736982000000, 0.0], [1737068400000, 0.0], [1737154800000, 0.0], [1737241200000, 0.0], [1737327600000, 0.0], [1737414000000, 0.0], [1737500400000, 0.0], [1737586800000, 0.0], [1737673200000, 0.0], [1737759600000, 0.0], [1737846000000, 0.0], [1737932400000, 0.0], [1738018800000, 0.0], [1738105200000, 0.0], [1738191600000, 0.0], [1738278000000, 0.0], [1738364400000, 0.0], [1738450800000, 0.0], [1738537200000, 0.0], [1738623600000, 0.0], [1738710000000, 0.0], [1738796400000, 0.0], [1738882800000, 0.0], [1738969200000, 0.0], [1739055600000, 0.0], [1739142000000, 0.0], [1739228400000, 0.0], [1739314800000, 0.0], [1739401200000, 0.0], [1739487600000, 0.0], [1739574000000, 0.0], [1739660400000, 0.0], [1739746800000, 0.0], [1739833200000, 0.0], [1739919600000, 0.0], [1740006000000, 0.0], [1740092400000, 0.0], [1740178800000, 0.0], [1740265200000, 0.0], [1740351600000, 0.0], [1740438000000, 0.0], [1740524400000, 0.0], [1740610800000, 0.0], [1740697200000, 0.0], [1740783600000, 0.0], [1740870000000, 0.0], [1740956400000, 0.0], [1741042800000, 0.0], [1741129200000, 0.0], [1741215600000, 0.0], [1741302000000, 0.0], [1741388400000, 0.0], [1741474800000, 0.0], [1741561200000, 0.0], [1741647600000, 0.0], [1741734000000, 0.0], [1741820400000, 0.0], [1741906800000, 0.0], [1741993200000, 0.0], [1742079600000, 0.0], [1742166000000, 0.0], [1742252400000, 0.0], [1742338800000, 0.0], [1742425200000, 0.0], [1742511600000, 0.0], [1742598000000, 0.0], [1742684400000, 0.0], [1742770800000, 0.0], [1742857200000, 0.0], [1742943600000, 0.0], [1743030000000, 0.0], [1743116400000, 0.0], [1743202800000, 0.0], [1743289200000, 0.0], [1743372000000, 0.0], [1743458400000, 0.0], [1743544800000, 0.0], [1743631200000, 0.0], [1743717600000, 0.0], [1743804000000, 0.0], [1743890400000, 0.0], [1743976800000, 0.0], [1744063200000, 0.0], [1744149600000, 0.0], [1744236000000, 0.0], [1744322400000, 0.0], [1744408800000, 0.0], [1744495200000, 0.0], [1744581600000, 0.0], [1744668000000, 0.0], [1744754400000, 0.0], [1744840800000, 0.0], [1744927200000, 0.0], [1745013600000, 0.0], [1745100000000, 0.0], [1745186400000, 0.0], [1745272800000, 0.0], [1745359200000, 0.0], [1745445600000, 0.0], [1745532000000, 0.0], [1745618400000, 0.0], [1745704800000, 0.0], [1745791200000, 0.0], [1745877600000, 0.0], [1745964000000, 0.0], [1746050400000, 0.0], [1746136800000, 0.0], [1746223200000, 0.0], [1746309600000, 0.0], [1746396000000, 0.0], [1746482400000, 0.0], [1746568800000, 0.0], [1746655200000, 0.0], [1746741600000, 0.0], [1746828000000, 0.0], [1746914400000, 0.0], [1747000800000, 0.0], [1747087200000, 0.0], [1747173600000, 0.0], [1747260000000, 0.0], [1747346400000, 0.0], [1747432800000, 0.0], [1747519200000, 0.0], [1747605600000, 0.0], [1747692000000, 0.0], [1747778400000, 0.0], [1747864800000, 0.0], [1747951200000, 0.0], [1748037600000, 0.0], [1748124000000, 0.0], [1748210400000, 0.0], [1748296800000, 0.0], [1748383200000, 0.0], [1748469600000, 0.0], [1748556000000, 0.0], [1748642400000, 0.0], [1748728800000, 0.0], [1748815200000, 0.0], [1748901600000, 0.0], [1748988000000, 0.0], [1749074400000, 0.0], [1749160800000, 0.0], [1749247200000, 0.0], [1749333600000, 0.0], [1749420000000, 0.0], [1749506400000, 0.0], [1749592800000, 0.0], [1749679200000, 0.0], [1749765600000, 0.0], [1749852000000, 0.0], [1749938400000, 0.0], [1750024800000, 0.0], [1750111200000, 0.0], [1750197600000, 0.0], [1750284000000, 0.0], [1750370400000, 0.0], [1750456800000, 0.0], [1750543200000, 0.0], [1750629600000, 0.0], [1750716000000, 0.0], [1750802400000, 0.0], [1750888800000, 0.0], [1750975200000, 0.0], [1751061600000, 0.0], [1751148000000, 0.0], [1751234400000, 0.0], [1751320800000, 0.0], [1751407200000, 0.0], [1751493600000, 0.0], [1751580000000, 0.0], [1751666400000, 0.0], [1751752800000, 0.0], [1751839200000, 0.0], [1751925600000, 0.0], [1752012000000, 0.0], [1752098400000, 0.0], [1752184800000, 0.0], [1752271200000, 0.0], [1752357600000, 0.0], [1752444000000, 0.0], [1752530400000, 0.0], [1752616800000, 0.0], [1752703200000, 0.0], [1752789600000, 0.0], [1752876000000, 0.0], [1752962400000, 0.0], [1753048800000, 0.0], [1753135200000, 0.0], [1753221600000, 0.0], [1753308000000, 0.0], [1753394400000, 0.0], [1753480800000, 0.0], [1753567200000, 0.0], [1753653600000, 0.0], [1753740000000, 0.0], [1753826400000, 0.0], [1753912800000, 0.0], [1753999200000, 0.0], [1754085600000, 0.0], [1754172000000, 0.0], [1754258400000, 0.0], [1754344800000, 0.0], [1754431200000, 0.0], [1754517600000, 0.0], [1754604000000, 0.0], [1754690400000, 0.0], [1754776800000, 0.0], [1754863200000, 0.0], [1754949600000, 0.0], [1755036000000, 0.0], [1755122400000, 0.0], [1755208800000, 0.0], [1755295200000, 0.0], [1755381600000, 0.0], [1755468000000, 0.0], [1755554400000, 0.0], [1755640800000, 0.0], [1755727200000, 0.0], [1755813600000, 0.0], [1755900000000, 0.0], [1755986400000, 0.0], [1756072800000, 0.0], [1756159200000, 0.0], [1756245600000, 0.0], [1756332000000, 0.0], [1756418400000, 0.0], [1756504800000, 0.0], [1756591200000, 0.0], [1756677600000, 0.0], [1756764000000, 0.0], [1756850400000, 0.0], [1756936800000, 0.0], [1757023200000, 0.0], [1757109600000, 0.0], [1757196000000, 0.0], [1757282400000, 0.0], [1757368800000, 0.0], [1757455200000, 0.0], [1757541600000, 0.0], [1757628000000, 0.0], [1757714400000, 0.0], [1757800800000, 0.0], [1757887200000, 0.0], [1757973600000, 0.0], [1758060000000, 0.0], [1758146400000, 0.0], [1758232800000, 0.0], [1758319200000, 0.0], [1758405600000, 0.0], [1758492000000, 0.00018837], [1758578400000, 0.00024132], [1758664800000, 0.00024132], [1758751200000, 0.00024132], [1758837600000, 0.00078189], [1758924000000, 0.00088083], [1759010400000, 0.00088083], [1759096800000, 0.00095494], [1759183200000, 0.00116237], [1759269600000, 0.12092472], [1759356000000, 0.12092472], [1759442400000, 0.12092472], [1759528800000, 0.12092733], [1759615200000, 0.12092733], [1759701600000, 0.12092733], [1759788000000, 0.12092733], [1759874400000, 0.12092733], [1759960800000, 0.12092733], [1760047200000, 0.12092733], [1760133600000, 0.12092733], [1760220000000, 0.12092733], [1760306400000, 0.12204203], [1760392800000, 0.12241743], [1760479200000, 0.1227489], [1760565600000, 0.12295096], [1760652000000, 0.12295096], [1760738400000, 0.12295096], [1760824800000, 0.12333457], [1760911200000, 0.12333457], [1760997600000, 0.12356857], [1761084000000, 0.12376243], [1761170400000, 0.12397654], [1761256800000, 0.12408936], [1761343200000, 0.12422755], [1761429600000, 0.12422755], [1761519600000, 0.12432298], [1761606000000, 0.12432298], [1761692400000, 0.12451924], [1761778800000, 0.12471356], [1761865200000, 0.12574041], [1761951600000, 0.12597685], [1762038000000, 0.12597685], [1762124400000, 0.1261958], [1762210800000, 0.16333309], [1762297200000, 0.16333309], [1762383600000, 0.16333309], [1762470000000, 0.16333309], [1762556400000, 0.16333309], [1762642800000, 0.1635365], [1762729200000, 0.1635365], [1762815600000, 0.16403281], [1762902000000, 0.16427631], [1762988400000, 0.16470723], [1763074800000, 0.1648695], [1763161200000, 0.1648695], [1763247600000, 0.1648695], [1763334000000, 0.16509755], [1763420400000, 0.16509755], [1763506800000, 0.16509755], [1763593200000, 0.16509755], [1763679600000, 0.16509755], [1763766000000, 0.16509755], [1763852400000, 0.16509755], [1763938800000, 0.16509755], [1764025200000, 0.16509755], [1764111600000, 0.16509755], [1764198000000, 0.16509755], [1764284400000, 0.16509755], [1764370800000, 0.16509755], [1764457200000, 0.16509755], [1764543600000, 0.16565154], [1764630000000, 0.16565154], [1764716400000, 0.16565154], [1764802800000, 0.16565154], [1764889200000, 0.16565154], [1764975600000, 0.16565154], [1765062000000, 0.16565154], [1765148400000, 0.16565154], [1765234800000, 0.16565154], [1765321200000, 0.16565154], [1765407600000, 0.16565154], [1765494000000, 0.16565154], [1765580400000, 0.16565154], [1765666800000, 0.16565154], [1765753200000, 0.16565154], [1765839600000, 0.16565154], [1765926000000, 0.16565154], [1766012400000, 0.16565154], [1766098800000, 0.16565154], [1766185200000, 0.16565154], [1766271600000, 0.16565154], [1766358000000, 0.16565154], [1766444400000, 0.16565154], [1766530800000, 0.16565154], [1766617200000, 0.16565154], [1766703600000, 0.16565154], [1766790000000, 0.16565154], [1766876400000, 0.16565154], [1766962800000, 0.16565154], [1767049200000, 0.16565154], [1767135600000, 0.16565154], [1767222000000, 0.16565154], [1767308400000, 0.16565154], [1767394800000, 0.16565154], [1767481200000, 0.16565154], [1767567600000, 0.16565154], [1767654000000, 0.16565154], [1767740400000, 0.16565154], [1767826800000, 0.16565154], [1767913200000, 0.16565154], [1767999600000, 0.16565154], [1768086000000, 0.16565154], [1768172400000, 0.16565154], [1768258800000, 0.16565154], [1768345200000, 0.16565154], [1768431600000, 0.16565154], [1768518000000, 0.16565154], [1768604400000, 0.16565154], [1768690800000, 0.16565154], [1768777200000, 0.16565154], [1768863600000, 0.16565154], [1768950000000, 0.16565154], [1769036400000, 0.16565154], [1769122800000, 0.16565154], [1769209200000, 0.16900362], [1769295600000, 0.16900362], [1769382000000, 0.16900362], [1769468400000, 0.16900362], [1769554800000, 0.16900362], [1769641200000, 0.16900362], [1769727600000, 0.16900362], [1769814000000, 0.16900362], [1769900400000, 0.17536245], [1769986800000, 0.17536245], [1770073200000, 0.17536245], [1770159600000, 0.17536245], [1770246000000, 0.17536245], [1770332400000, 0.17536245], [1770418800000, 0.17536245], [1770505200000, 0.17536245], [1770591600000, 0.17536245], [1770678000000, 0.17536245], [1770764400000, 0.17536245], [1770850800000, 0.17536245], [1770937200000, 0.17536245], [1771023600000, 0.18253521], [1771110000000, 0.18253521], [1771196400000, 0.18253521], [1771282800000, 0.18253521], [1771369200000, 0.18253521], [1771455600000, 0.18253521], [1771542000000, 0.18253521], [1771628400000, 0.19725563], [1771714800000, 0.19725563], [1771801200000, 0.19725563], [1771887600000, 0.19725563], [1771974000000, 0.19725563], [1772060400000, 0.19725563], [1772146800000, 0.19725563], [1772233200000, 0.2128806], [1772319600000, 0.2128806], [1772406000000, 0.2128806], [1772492400000, 0.2128806], [1772578800000, 0.2128806], [1772665200000, 0.2128806], [1772751600000, 0.2128806], [1772838000000, 0.2128806], [1772924400000, 0.2128806], [1773010800000, 0.2128806], [1773097200000, 0.2128806], [1773183600000, 0.2128806], [1773270000000, 0.2128806], [1773356400000, 0.2128806], [1773442800000, 0.22704621], [1773529200000, 0.22704621], [1773615600000, 0.22704621], [1773702000000, 0.22704621], [1773788400000, 0.22704621], [1773874800000, 0.22704621], [1773961200000, 0.22704621], [1774047600000, 0.22704621], [1774134000000, 0.24148712], [1774220400000, 0.24148712], [1774306800000, 0.24148712], [1774393200000, 0.24148712], [1774479600000, 0.24148712], [1774566000000, 0.24148712], [1774652400000, 0.24148712], [1774738800000, 0.24148712], [1774821600000, 0.24148712], [1774908000000, 0.24148712], [1774994400000, 0.24148712], [1775080800000, 0.24148712], [1775167200000, 0.24148712], [1775253600000, 0.24148712], [1775340000000, 0.24896726], [1775426400000, 0.24896726], [1775512800000, 0.24896726], [1775599200000, 0.24896726], [1775685600000, 0.24896726], [1775772000000, 0.24896726], [1775858400000, 0.25296726], [1775944800000, 0.25296726], [1776031200000, 0.25296726], [1776117600000, 0.25296726], [1776204000000, 0.25296726], [1776290400000, 0.25296726], [1776376800000, 0.25296726], [1776463200000, 0.25667557], [1776549600000, 0.25667557], [1776636000000, 0.19167557], [1776722400000, 0.19167557], [1776808800000, 0.19167557], [1776895200000, 0.19167557], [1776981600000, 0.19167557], [1777068000000, 0.1981083], [1777154400000, 0.1981083], [1777240800000, 0.1981083], [1777327200000, 0.1981083], [1777413600000, 0.1981083], [1777500000000, 0.1981083], [1777586400000, 0.1981083], [1777672800000, 0.1981083], [1777759200000, 0.20129688], [1777845600000, 0.20129688], [1777932000000, 0.20129688], [1778018400000, 0.20129688], [1778104800000, 0.20129688], [1778191200000, 0.20129688], [1778277600000, 0.20129688], [1778364000000, 0.21500955], [1778450400000, 0.21500955], [1778536800000, 0.21500955], [1778623200000, 0.21500955], [1778709600000, 0.21500955], [1778796000000, 0.21500955], [1778882400000, 0.22796043], [1778968800000, 0.22796043], [1779055200000, 0.22796043], [1779141600000, 0.22796043], [1779228000000, 0.22796043], [1779314400000, 0.22796043]], "cold": [[1732057200000, 0.0], [1732143600000, 0.0], [1732230000000, 0.0], [1732316400000, 0.0], [1732402800000, 0.0], [1732489200000, 0.0], [1732575600000, 0.0], [1732662000000, 0.0], [1732748400000, 0.0], [1732834800000, 0.0], [1732921200000, 0.0], [1733007600000, 0.0], [1733094000000, 0.0], [1733180400000, 0.0], [1733266800000, 0.0], [1733353200000, 0.0], [1733439600000, 0.0], [1733526000000, 0.0], [1733612400000, 0.0], [1733698800000, 0.0], [1733785200000, 0.0], [1733871600000, 0.0], [1733958000000, 0.0], [1734044400000, 0.0], [1734130800000, 0.0], [1734217200000, 0.0], [1734303600000, 0.0], [1734390000000, 0.0], [1734476400000, 0.0], [1734562800000, 0.0], [1734649200000, 0.0], [1734735600000, 0.0], [1734822000000, 0.0], [1734908400000, 0.0], [1734994800000, 0.0], [1735081200000, 0.0], [1735167600000, 0.0], [1735254000000, 0.0], [1735340400000, 0.0], [1735426800000, 0.0], [1735513200000, 0.0], [1735599600000, 0.0], [1735686000000, 0.0], [1735772400000, 0.0], [1735858800000, 0.0], [1735945200000, 0.0], [1736031600000, 0.0], [1736118000000, 0.0], [1736204400000, 0.0], [1736290800000, 0.0], [1736377200000, 0.0], [1736463600000, 0.0], [1736550000000, 0.0], [1736636400000, 0.0], [1736722800000, 0.0], [1736809200000, 0.0], [1736895600000, 0.0], [1736982000000, 0.0], [1737068400000, 0.0], [1737154800000, 0.0], [1737241200000, 0.0], [1737327600000, 0.0], [1737414000000, 0.0], [1737500400000, 0.0], [1737586800000, 0.0], [1737673200000, 0.0], [1737759600000, 0.0], [1737846000000, 0.0], [1737932400000, 0.0], [1738018800000, 0.0], [1738105200000, 0.0], [1738191600000, 0.0], [1738278000000, 0.0], [1738364400000, 0.0], [1738450800000, 0.0], [1738537200000, 0.0], [1738623600000, 0.0], [1738710000000, 0.0], [1738796400000, 0.0], [1738882800000, 0.0], [1738969200000, 0.0], [1739055600000, 0.0], [1739142000000, 0.0], [1739228400000, 0.0], [1739314800000, 0.0], [1739401200000, 0.0], [1739487600000, 0.0], [1739574000000, 0.0], [1739660400000, 0.0], [1739746800000, 0.0], [1739833200000, 0.0], [1739919600000, 0.0], [1740006000000, 0.0], [1740092400000, 0.0], [1740178800000, 0.0], [1740265200000, 0.0], [1740351600000, 0.0], [1740438000000, 0.0], [1740524400000, 0.0], [1740610800000, 0.0], [1740697200000, 0.0], [1740783600000, 0.0], [1740870000000, 0.0], [1740956400000, 0.0], [1741042800000, 0.0], [1741129200000, 0.0], [1741215600000, 0.0], [1741302000000, 0.0], [1741388400000, 0.0], [1741474800000, 0.0], [1741561200000, 0.0], [1741647600000, 0.0], [1741734000000, 0.0], [1741820400000, 0.0], [1741906800000, 0.0], [1741993200000, 0.0], [1742079600000, 0.0], [1742166000000, 0.0], [1742252400000, 0.0], [1742338800000, 0.0], [1742425200000, 0.0], [1742511600000, 0.0], [1742598000000, 0.0], [1742684400000, 0.0], [1742770800000, 0.0], [1742857200000, 0.0], [1742943600000, 0.0], [1743030000000, 0.0], [1743116400000, 0.0], [1743202800000, 0.0], [1743289200000, 0.0], [1743372000000, 0.0], [1743458400000, 0.0], [1743544800000, 0.0], [1743631200000, 0.0], [1743717600000, 0.0], [1743804000000, 0.0], [1743890400000, 0.0], [1743976800000, 0.0], [1744063200000, 0.0], [1744149600000, 0.0], [1744236000000, 0.0], [1744322400000, 0.0], [1744408800000, 0.0], [1744495200000, 0.0], [1744581600000, 0.0], [1744668000000, 0.0], [1744754400000, 0.0], [1744840800000, 0.0], [1744927200000, 0.0], [1745013600000, 0.0], [1745100000000, 0.0], [1745186400000, 0.0], [1745272800000, 0.0], [1745359200000, 0.0], [1745445600000, 0.0], [1745532000000, 0.0], [1745618400000, 0.0], [1745704800000, 0.0], [1745791200000, 0.0], [1745877600000, 0.0], [1745964000000, 0.0], [1746050400000, 0.0], [1746136800000, 0.0], [1746223200000, 0.0], [1746309600000, 0.0], [1746396000000, 0.0], [1746482400000, 0.0], [1746568800000, 0.0], [1746655200000, 0.0], [1746741600000, 0.0], [1746828000000, 0.0], [1746914400000, 0.0], [1747000800000, 0.0], [1747087200000, 0.0], [1747173600000, 0.0], [1747260000000, 0.0], [1747346400000, 0.0], [1747432800000, 0.0], [1747519200000, 0.0], [1747605600000, 0.0], [1747692000000, 0.0], [1747778400000, 0.0], [1747864800000, 0.0], [1747951200000, 0.0], [1748037600000, 0.0], [1748124000000, 0.0], [1748210400000, 0.0], [1748296800000, 0.0], [1748383200000, 0.0], [1748469600000, 0.0], [1748556000000, 0.0], [1748642400000, 0.0], [1748728800000, 0.0], [1748815200000, 0.0], [1748901600000, 0.0], [1748988000000, 0.0], [1749074400000, 0.0], [1749160800000, 0.0], [1749247200000, 0.0], [1749333600000, 0.0], [1749420000000, 0.0], [1749506400000, 0.0], [1749592800000, 0.0], [1749679200000, 0.0], [1749765600000, 0.0], [1749852000000, 0.0], [1749938400000, 0.0], [1750024800000, 0.0], [1750111200000, 0.0], [1750197600000, 0.0], [1750284000000, 0.0], [1750370400000, 0.0], [1750456800000, 0.0], [1750543200000, 0.0], [1750629600000, 0.0], [1750716000000, 0.0], [1750802400000, 0.0], [1750888800000, 0.0], [1750975200000, 0.0], [1751061600000, 0.0], [1751148000000, 0.0], [1751234400000, 0.0], [1751320800000, 0.0], [1751407200000, 0.0], [1751493600000, 0.0], [1751580000000, 0.0], [1751666400000, 0.0], [1751752800000, 0.0], [1751839200000, 0.0], [1751925600000, 0.0], [1752012000000, 0.0], [1752098400000, 0.0], [1752184800000, 0.0], [1752271200000, 0.0], [1752357600000, 0.0], [1752444000000, 0.0], [1752530400000, 0.0], [1752616800000, 0.0], [1752703200000, 0.0], [1752789600000, 0.0], [1752876000000, 0.0], [1752962400000, 0.0], [1753048800000, 0.0], [1753135200000, 0.0], [1753221600000, 0.0], [1753308000000, 0.0], [1753394400000, 0.0], [1753480800000, 0.0], [1753567200000, 0.0], [1753653600000, 0.0], [1753740000000, 0.0], [1753826400000, 0.0], [1753912800000, 0.0], [1753999200000, 0.0], [1754085600000, 0.0], [1754172000000, 0.0], [1754258400000, 0.0], [1754344800000, 0.0], [1754431200000, 0.0], [1754517600000, 0.0], [1754604000000, 0.0], [1754690400000, 0.0], [1754776800000, 0.0], [1754863200000, 0.0], [1754949600000, 0.0], [1755036000000, 0.0], [1755122400000, 0.0], [1755208800000, 0.0], [1755295200000, 0.0], [1755381600000, 0.0], [1755468000000, 0.0], [1755554400000, 0.0], [1755640800000, 0.0], [1755727200000, 0.0], [1755813600000, 0.0], [1755900000000, 0.0], [1755986400000, 0.0], [1756072800000, 0.0], [1756159200000, 0.0], [1756245600000, 0.0], [1756332000000, 0.0], [1756418400000, 0.0], [1756504800000, 0.0], [1756591200000, 0.0], [1756677600000, 0.0], [1756764000000, 0.0], [1756850400000, 0.0], [1756936800000, 0.0], [1757023200000, 0.0], [1757109600000, 0.0], [1757196000000, 0.0], [1757282400000, 0.0], [1757368800000, 0.0], [1757455200000, 0.0], [1757541600000, 0.0], [1757628000000, 0.0], [1757714400000, 0.0], [1757800800000, 0.0], [1757887200000, 0.0], [1757973600000, 0.0], [1758060000000, 0.0], [1758146400000, 0.0], [1758232800000, 0.0], [1758319200000, 0.0], [1758405600000, 0.0], [1758492000000, 0.0], [1758578400000, 0.0], [1758664800000, 0.0], [1758751200000, 0.0], [1758837600000, 0.0], [1758924000000, 0.0], [1759010400000, 0.0], [1759096800000, 0.0], [1759183200000, 0.0], [1759269600000, 0.0], [1759356000000, 0.0], [1759442400000, 0.0], [1759528800000, 0.0], [1759615200000, 0.0], [1759701600000, 0.0], [1759788000000, 0.0], [1759874400000, 0.0], [1759960800000, 0.0], [1760047200000, 0.0], [1760133600000, 0.0], [1760220000000, 0.0], [1760306400000, 0.0], [1760392800000, 0.0], [1760479200000, 0.0], [1760565600000, 0.0], [1760652000000, 0.0], [1760738400000, 0.0], [1760824800000, 0.0], [1760911200000, 0.0], [1760997600000, 0.0], [1761084000000, 0.0], [1761170400000, 0.0], [1761256800000, 0.0], [1761343200000, 0.0], [1761429600000, 0.0], [1761519600000, 0.0], [1761606000000, 0.0], [1761692400000, 0.0], [1761778800000, 0.0], [1761865200000, 0.0], [1761951600000, 0.0], [1762038000000, 0.0], [1762124400000, 0.00064003], [1762210800000, 0.00064003], [1762297200000, 0.00064003], [1762383600000, 0.00064003], [1762470000000, 0.00064003], [1762556400000, 0.00064003], [1762642800000, 0.00064003], [1762729200000, 0.00064003], [1762815600000, 0.00064003], [1762902000000, 0.00064003], [1762988400000, 0.00064003], [1763074800000, 0.00064003], [1763161200000, 0.00064003], [1763247600000, 0.00064003], [1763334000000, 0.00064003], [1763420400000, 0.00064003], [1763506800000, 0.00064003], [1763593200000, 0.00064003], [1763679600000, 0.00064003], [1763766000000, 0.00064003], [1763852400000, 0.00064003], [1763938800000, 0.00064003], [1764025200000, 0.00064003], [1764111600000, 0.00064003], [1764198000000, 0.00064003], [1764284400000, 0.00064003], [1764370800000, 0.00064003], [1764457200000, 0.00064003], [1764543600000, 0.00064003], [1764630000000, 0.00064003], [1764716400000, 0.00064003], [1764802800000, 0.00064003], [1764889200000, 0.00064003], [1764975600000, 0.00064003], [1765062000000, 0.00064003], [1765148400000, 0.00064003], [1765234800000, 0.00064003], [1765321200000, 0.00064003], [1765407600000, 0.05081773], [1765494000000, 0.05081773], [1765580400000, 0.05081773], [1765666800000, 0.05081773], [1765753200000, 0.05081773], [1765839600000, 0.05081773], [1765926000000, 0.05081773], [1766012400000, 0.05081773], [1766098800000, 0.05081773], [1766185200000, 0.05081773], [1766271600000, 0.05081773], [1766358000000, 0.05081773], [1766444400000, 0.05081773], [1766530800000, 0.05081773], [1766617200000, 0.05081773], [1766703600000, 0.05081773], [1766790000000, 0.05081773], [1766876400000, 0.05081773], [1766962800000, 0.05081773], [1767049200000, 0.05081773], [1767135600000, 0.05081773], [1767222000000, 0.05081773], [1767308400000, 0.05081773], [1767394800000, 0.05081773], [1767481200000, 0.05081773], [1767567600000, 0.05081773], [1767654000000, 0.05081773], [1767740400000, 0.05081773], [1767826800000, 0.05081773], [1767913200000, 0.05081773], [1767999600000, 0.05081773], [1768086000000, 0.05081773], [1768172400000, 0.05081773], [1768258800000, 0.05081773], [1768345200000, 0.05081773], [1768431600000, 0.05081773], [1768518000000, 0.05081773], [1768604400000, 0.05081773], [1768690800000, 0.05081773], [1768777200000, 0.05081773], [1768863600000, 0.05081773], [1768950000000, 0.05081773], [1769036400000, 0.05081773], [1769122800000, 0.05081773], [1769209200000, 0.05081773], [1769295600000, 0.05081773], [1769382000000, 0.05081773], [1769468400000, 0.05081773], [1769554800000, 0.05081773], [1769641200000, 0.05081773], [1769727600000, 0.05081773], [1769814000000, 0.05081773], [1769900400000, 0.05081773], [1769986800000, 0.05081773], [1770073200000, 0.05081773], [1770159600000, 0.05081773], [1770246000000, 0.05081773], [1770332400000, 0.07518186], [1770418800000, 0.07518186], [1770505200000, 0.07518186], [1770591600000, 0.07518186], [1770678000000, 0.07518186], [1770764400000, 0.07518186], [1770850800000, 0.07518186], [1770937200000, 0.07518186], [1771023600000, 0.07518186], [1771110000000, 0.07518186], [1771196400000, 0.07518186], [1771282800000, 0.07518186], [1771369200000, 0.07518186], [1771455600000, 0.07518186], [1771542000000, 0.07518186], [1771628400000, 0.07518186], [1771714800000, 0.07518186], [1771801200000, 0.07518186], [1771887600000, 0.07518186], [1771974000000, 0.07518186], [1772060400000, 0.07518186], [1772146800000, 0.07518186], [1772233200000, 0.07518186], [1772319600000, 0.07518186], [1772406000000, 0.07518186], [1772492400000, 0.07518186], [1772578800000, 0.07518186], [1772665200000, 0.07518186], [1772751600000, 0.07518186], [1772838000000, 0.07518186], [1772924400000, 0.07518186], [1773010800000, 0.07518186], [1773097200000, 0.07518186], [1773183600000, 0.07518186], [1773270000000, 0.07518186], [1773356400000, 0.07518186], [1773442800000, 0.07518186], [1773529200000, 0.07518186], [1773615600000, 0.07518186], [1773702000000, 0.07518186], [1773788400000, 0.07518186], [1773874800000, 0.07518186], [1773961200000, 0.07518186], [1774047600000, 0.07518186], [1774134000000, 0.07518186], [1774220400000, 0.07518186], [1774306800000, 0.07518186], [1774393200000, 0.07518186], [1774479600000, 0.07518186], [1774566000000, 0.07518186], [1774652400000, 0.07518186], [1774738800000, 0.07518186], [1774821600000, 0.07518186], [1774908000000, 0.07518186], [1774994400000, 0.07518186], [1775080800000, 0.07518186], [1775167200000, 0.07518186], [1775253600000, 0.07518186], [1775340000000, 0.07518186], [1775426400000, 0.07518186], [1775512800000, 0.07518186], [1775599200000, 0.07518186], [1775685600000, 0.07518186], [1775772000000, 0.07518186], [1775858400000, 0.07518186], [1775944800000, 0.07518186], [1776031200000, 0.07518186], [1776117600000, 0.07518186], [1776204000000, 0.07518186], [1776290400000, 0.07518186], [1776376800000, 0.07518186], [1776463200000, 0.07518186], [1776549600000, 0.07518186], [1776636000000, 0.07518186], [1776722400000, 0.07518186], [1776808800000, 0.07518186], [1776895200000, 0.07518186], [1776981600000, 0.07518186], [1777068000000, 0.07518186], [1777154400000, 0.07518186], [1777240800000, 0.07518186], [1777327200000, 0.07518186], [1777413600000, 0.07518186], [1777500000000, 0.07518186], [1777586400000, 0.07518186], [1777672800000, 0.07518186], [1777759200000, 0.07518186], [1777845600000, 0.07518186], [1777932000000, 0.07518186], [1778018400000, 0.07518186], [1778104800000, 0.07518186], [1778191200000, 0.07518186], [1778277600000, 0.07518186], [1778364000000, 0.07518186], [1778450400000, 0.07518186], [1778536800000, 0.07518186], [1778623200000, 0.07518186], [1778709600000, 0.07518186], [1778796000000, 0.07518186], [1778882400000, 0.07518186], [1778968800000, 0.07518186], [1779055200000, 0.07518186], [1779141600000, 0.07518186], [1779228000000, 0.07518186], [1779314400000, 0.07518186]]};
const walletsMetadata = {"nano": {"id": "nano", "address": "0x3837ea82a38daa985ee613e69f72adbe12d0aa50", "name": "Base Wallet", "color": "#58a6ff", "chain": "base"}, "penguin": {"id": "penguin", "address": "0x0c1a4a060e119f981412e323104d1c134d413dba", "name": "Base Wallet", "color": "#f7931a", "chain": "base"}, "cold": {"id": "cold", "address": "bc1qhwsm859uy7aec2h4rj3e00p2vg8nzy8je8duqz", "name": "BTC Cold Storage", "color": "#f7931a", "chain": "btc"}};
const walletCosts = {"nano": 57143.88957364997, "penguin": 28214.47038528, "cold": 3528.97661289};
const walletBuys = {"nano": 0.5830959900000001, "penguin": 0.29296042999999994, "cold": 0.07518186};
const dailySatsData = [{"ts": 1732057200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 94287.0, "days_since": -10, "cumul_btc": 0.0}, {"ts": 1732143600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 98317.0, "days_since": -9, "cumul_btc": 0.0}, {"ts": 1732230000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 98892.0, "days_since": -8, "cumul_btc": 0.0}, {"ts": 1732316400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 97672.0, "days_since": -7, "cumul_btc": 0.0}, {"ts": 1732402800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 97900.0, "days_since": -6, "cumul_btc": 0.0}, {"ts": 1732489200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 93010.0, "days_since": -5, "cumul_btc": 0.0}, {"ts": 1732575600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 91965.0, "days_since": -4, "cumul_btc": 0.0}, {"ts": 1732662000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 95863.0, "days_since": -3, "cumul_btc": 0.0}, {"ts": 1732748400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 95644.0, "days_since": -2, "cumul_btc": 0.0}, {"ts": 1732834800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 97460.0, "days_since": -1, "cumul_btc": 0.0}, {"ts": 1732921200000, "rolling_sats": 4152.0, "btc_val": 4.152e-05, "price": 96408.0, "days_since": 0, "cumul_btc": 0.00045671}, {"ts": 1733007600000, "rolling_sats": 5693.0, "btc_val": 5.693e-05, "price": 97185.0, "days_since": 1, "cumul_btc": 0.00068314}, {"ts": 1733094000000, "rolling_sats": 7968.0, "btc_val": 7.968e-05, "price": 95841.0, "days_since": 2, "cumul_btc": 0.00103581}, {"ts": 1733180400000, "rolling_sats": 11047.0, "btc_val": 0.00011047, "price": 95850.0, "days_since": 3, "cumul_btc": 0.00154653}, {"ts": 1733266800000, "rolling_sats": 13567.0, "btc_val": 0.00013567, "price": 98587.0, "days_since": 4, "cumul_btc": 0.00203502}, {"ts": 1733353200000, "rolling_sats": 15316.0, "btc_val": 0.00015316, "price": 96946.0, "days_since": 5, "cumul_btc": 0.00245059}, {"ts": 1733439600000, "rolling_sats": 16118.0, "btc_val": 0.00016118, "price": 99741.0, "days_since": 6, "cumul_btc": 0.0027401}, {"ts": 1733526000000, "rolling_sats": 15223.0, "btc_val": 0.00015223, "price": 99832.0, "days_since": 7, "cumul_btc": 0.0027401}, {"ts": 1733612400000, "rolling_sats": 14422.0, "btc_val": 0.00014422, "price": 101110.0, "days_since": 8, "cumul_btc": 0.0027401}, {"ts": 1733698800000, "rolling_sats": 13700.0, "btc_val": 0.000137, "price": 97276.0, "days_since": 9, "cumul_btc": 0.0027401}, {"ts": 1733785200000, "rolling_sats": 15775.0, "btc_val": 0.00015775, "price": 96593.0, "days_since": 10, "cumul_btc": 0.00331277}, {"ts": 1733871600000, "rolling_sats": 15058.0, "btc_val": 0.00015058, "price": 101125.0, "days_since": 11, "cumul_btc": 0.00331277}, {"ts": 1733958000000, "rolling_sats": 15345.0, "btc_val": 0.00015345, "price": 100004.0, "days_since": 12, "cumul_btc": 0.00352929}, {"ts": 1734044400000, "rolling_sats": 14705.0, "btc_val": 0.00014705, "price": 101424.0, "days_since": 13, "cumul_btc": 0.00352929}, {"ts": 1734130800000, "rolling_sats": 17511.0, "btc_val": 0.00017511, "price": 101420.0, "days_since": 14, "cumul_btc": 0.00437782}, {"ts": 1734217200000, "rolling_sats": 16838.0, "btc_val": 0.00016838, "price": 104464.0, "days_since": 15, "cumul_btc": 0.00437782}, {"ts": 1734303600000, "rolling_sats": 16214.0, "btc_val": 0.00016214, "price": 106059.0, "days_since": 16, "cumul_btc": 0.00437782}, {"ts": 1734390000000, "rolling_sats": 15635.0, "btc_val": 0.00015635, "price": 106134.0, "days_since": 17, "cumul_btc": 0.00437782}, {"ts": 1734476400000, "rolling_sats": 15096.0, "btc_val": 0.00015096, "price": 100204.0, "days_since": 18, "cumul_btc": 0.00437782}, {"ts": 1734562800000, "rolling_sats": 14593.0, "btc_val": 0.00014593, "price": 97462.0, "days_since": 19, "cumul_btc": 0.00437782}, {"ts": 1734649200000, "rolling_sats": 14593.0, "btc_val": 0.00014593, "price": 97805.0, "days_since": 20, "cumul_btc": 0.00437782}, {"ts": 1734735600000, "rolling_sats": 14593.0, "btc_val": 0.00014593, "price": 97292.0, "days_since": 21, "cumul_btc": 0.00437782}, {"ts": 1734822000000, "rolling_sats": 16113.0, "btc_val": 0.00016113, "price": 95186.0, "days_since": 22, "cumul_btc": 0.00483383}, {"ts": 1734908400000, "rolling_sats": 16113.0, "btc_val": 0.00016113, "price": 94881.0, "days_since": 23, "cumul_btc": 0.00483383}, {"ts": 1734994800000, "rolling_sats": 16113.0, "btc_val": 0.00016113, "price": 98664.0, "days_since": 24, "cumul_btc": 0.00483383}, {"ts": 1735081200000, "rolling_sats": 16113.0, "btc_val": 0.00016113, "price": 99430.0, "days_since": 25, "cumul_btc": 0.00483383}, {"ts": 1735167600000, "rolling_sats": 16113.0, "btc_val": 0.00016113, "price": 95792.0, "days_since": 26, "cumul_btc": 0.00483383}, {"ts": 1735254000000, "rolling_sats": 16113.0, "btc_val": 0.00016113, "price": 94299.0, "days_since": 27, "cumul_btc": 0.00483383}, {"ts": 1735340400000, "rolling_sats": 22947.0, "btc_val": 0.00022947, "price": 95300.0, "days_since": 28, "cumul_btc": 0.00688418}, {"ts": 1735426800000, "rolling_sats": 22947.0, "btc_val": 0.00022947, "price": 93738.0, "days_since": 29, "cumul_btc": 0.00688418}, {"ts": 1735513200000, "rolling_sats": 21425.0, "btc_val": 0.00021425, "price": 92792.0, "days_since": 30, "cumul_btc": 0.00688418}, {"ts": 1735599600000, "rolling_sats": 20670.0, "btc_val": 0.0002067, "price": 93576.0, "days_since": 31, "cumul_btc": 0.00688418}, {"ts": 1735686000000, "rolling_sats": 19495.0, "btc_val": 0.00019495, "price": 94592.0, "days_since": 32, "cumul_btc": 0.00688418}, {"ts": 1735772400000, "rolling_sats": 17792.0, "btc_val": 0.00017792, "price": 96985.0, "days_since": 33, "cumul_btc": 0.00688418}, {"ts": 1735858800000, "rolling_sats": 16164.0, "btc_val": 0.00016164, "price": 98174.0, "days_since": 34, "cumul_btc": 0.00688418}, {"ts": 1735945200000, "rolling_sats": 14779.0, "btc_val": 0.00014779, "price": 98220.0, "days_since": 35, "cumul_btc": 0.00688418}, {"ts": 1736031600000, "rolling_sats": 13814.0, "btc_val": 0.00013814, "price": 98364.0, "days_since": 36, "cumul_btc": 0.00688418}, {"ts": 1736118000000, "rolling_sats": 13814.0, "btc_val": 0.00013814, "price": 102236.0, "days_since": 37, "cumul_btc": 0.00688418}, {"ts": 1736204400000, "rolling_sats": 13814.0, "btc_val": 0.00013814, "price": 96955.0, "days_since": 38, "cumul_btc": 0.00688418}, {"ts": 1736290800000, "rolling_sats": 15989.0, "btc_val": 0.00015989, "price": 95061.0, "days_since": 39, "cumul_btc": 0.00753678}, {"ts": 1736377200000, "rolling_sats": 14080.0, "btc_val": 0.0001408, "price": 92552.0, "days_since": 40, "cumul_btc": 0.00753678}, {"ts": 1736463600000, "rolling_sats": 16472.0, "btc_val": 0.00016472, "price": 94726.0, "days_since": 41, "cumul_btc": 0.00825444}, {"ts": 1736550000000, "rolling_sats": 15750.0, "btc_val": 0.00015751, "price": 94600.0, "days_since": 42, "cumul_btc": 0.00825444}, {"ts": 1736636400000, "rolling_sats": 15750.0, "btc_val": 0.00015751, "price": 94545.0, "days_since": 43, "cumul_btc": 0.00825444}, {"ts": 1736722800000, "rolling_sats": 13696.0, "btc_val": 0.00013696, "price": 94536.0, "days_since": 44, "cumul_btc": 0.0084866}, {"ts": 1736809200000, "rolling_sats": 13696.0, "btc_val": 0.00013696, "price": 96561.0, "days_since": 45, "cumul_btc": 0.0084866}, {"ts": 1736895600000, "rolling_sats": 13696.0, "btc_val": 0.00013696, "price": 100497.0, "days_since": 46, "cumul_btc": 0.0084866}, {"ts": 1736982000000, "rolling_sats": 13696.0, "btc_val": 0.00013696, "price": 99987.0, "days_since": 47, "cumul_btc": 0.0084866}, {"ts": 1737068400000, "rolling_sats": 13696.0, "btc_val": 0.00013696, "price": 104077.0, "days_since": 48, "cumul_btc": 0.0084866}, {"ts": 1737154800000, "rolling_sats": 13696.0, "btc_val": 0.00013696, "price": 104556.0, "days_since": 49, "cumul_btc": 0.0084866}, {"ts": 1737241200000, "rolling_sats": 13696.0, "btc_val": 0.00013696, "price": 101332.0, "days_since": 50, "cumul_btc": 0.0084866}, {"ts": 1737327600000, "rolling_sats": 13696.0, "btc_val": 0.00013696, "price": 102260.0, "days_since": 51, "cumul_btc": 0.0084866}, {"ts": 1737414000000, "rolling_sats": 12176.0, "btc_val": 0.00012176, "price": 106144.0, "days_since": 52, "cumul_btc": 0.0084866}, {"ts": 1737500400000, "rolling_sats": 12176.0, "btc_val": 0.00012176, "price": 103707.0, "days_since": 53, "cumul_btc": 0.0084866}, {"ts": 1737586800000, "rolling_sats": 13298.0, "btc_val": 0.00013298, "price": 103910.0, "days_since": 54, "cumul_btc": 0.0088232}, {"ts": 1737673200000, "rolling_sats": 13298.0, "btc_val": 0.00013298, "price": 104870.0, "days_since": 55, "cumul_btc": 0.0088232}, {"ts": 1737759600000, "rolling_sats": 13298.0, "btc_val": 0.00013298, "price": 104747.0, "days_since": 56, "cumul_btc": 0.0088232}, {"ts": 1737846000000, "rolling_sats": 13298.0, "btc_val": 0.00013298, "price": 102620.0, "days_since": 57, "cumul_btc": 0.0088232}, {"ts": 1737932400000, "rolling_sats": 8625.0, "btc_val": 8.625e-05, "price": 102083.0, "days_since": 58, "cumul_btc": 0.00947181}, {"ts": 1738018800000, "rolling_sats": 8625.0, "btc_val": 8.625e-05, "price": 101336.0, "days_since": 59, "cumul_btc": 0.00947181}, {"ts": 1738105200000, "rolling_sats": 9978.0, "btc_val": 9.978e-05, "price": 103733.0, "days_since": 60, "cumul_btc": 0.00987744}, {"ts": 1738191600000, "rolling_sats": 11041.0, "btc_val": 0.00011041, "price": 104723.0, "days_since": 61, "cumul_btc": 0.01019638}, {"ts": 1738278000000, "rolling_sats": 11041.0, "btc_val": 0.00011041, "price": 102430.0, "days_since": 62, "cumul_btc": 0.01019638}, {"ts": 1738364400000, "rolling_sats": 11041.0, "btc_val": 0.00011041, "price": 100636.0, "days_since": 63, "cumul_btc": 0.01019638}, {"ts": 1738450800000, "rolling_sats": 11041.0, "btc_val": 0.00011041, "price": 97701.0, "days_since": 64, "cumul_btc": 0.01019638}, {"ts": 1738537200000, "rolling_sats": 282663.0, "btc_val": 0.00282663, "price": 101329.0, "days_since": 65, "cumul_btc": 0.09168322}, {"ts": 1738623600000, "rolling_sats": 282663.0, "btc_val": 0.00282663, "price": 97763.0, "days_since": 66, "cumul_btc": 0.0}, {"ts": 1738710000000, "rolling_sats": 282663.0, "btc_val": 0.00282663, "price": 96612.0, "days_since": 67, "cumul_btc": 0.0}, {"ts": 1738796400000, "rolling_sats": 282663.0, "btc_val": 0.00282663, "price": 96554.0, "days_since": 68, "cumul_btc": 0.0}, {"ts": 1738882800000, "rolling_sats": 280488.0, "btc_val": 0.00280488, "price": 96507.0, "days_since": 69, "cumul_btc": 0.0}, {"ts": 1738969200000, "rolling_sats": 280488.0, "btc_val": 0.00280488, "price": 96445.0, "days_since": 70, "cumul_btc": 0.0}, {"ts": 1739055600000, "rolling_sats": 278096.0, "btc_val": 0.00278096, "price": 96463.0, "days_since": 71, "cumul_btc": 0.0}, {"ts": 1739142000000, "rolling_sats": 278096.0, "btc_val": 0.00278096, "price": 97431.0, "days_since": 72, "cumul_btc": 0.0}, {"ts": 1739228400000, "rolling_sats": 278096.0, "btc_val": 0.00278096, "price": 95778.0, "days_since": 73, "cumul_btc": 0.0}, {"ts": 1739314800000, "rolling_sats": 277322.0, "btc_val": 0.00277322, "price": 97870.0, "days_since": 74, "cumul_btc": 0.0}, {"ts": 1739401200000, "rolling_sats": 277322.0, "btc_val": 0.00277322, "price": 96608.0, "days_since": 75, "cumul_btc": 0.0}, {"ts": 1739487600000, "rolling_sats": 277322.0, "btc_val": 0.00277322, "price": 97500.0, "days_since": 76, "cumul_btc": 0.0}, {"ts": 1739574000000, "rolling_sats": 277322.0, "btc_val": 0.00277322, "price": 97570.0, "days_since": 77, "cumul_btc": 0.0}, {"ts": 1739660400000, "rolling_sats": 277322.0, "btc_val": 0.00277322, "price": 96118.0, "days_since": 78, "cumul_btc": 0.0}, {"ts": 1739746800000, "rolling_sats": 277322.0, "btc_val": 0.00277322, "price": 95780.0, "days_since": 79, "cumul_btc": 0.0}, {"ts": 1739833200000, "rolling_sats": 277322.0, "btc_val": 0.00277322, "price": 95672.0, "days_since": 80, "cumul_btc": 0.0}, {"ts": 1739919600000, "rolling_sats": 277322.0, "btc_val": 0.00277322, "price": 96644.0, "days_since": 81, "cumul_btc": 0.0}, {"ts": 1740006000000, "rolling_sats": 277322.0, "btc_val": 0.00277322, "price": 98305.0, "days_since": 82, "cumul_btc": 0.0}, {"ts": 1740092400000, "rolling_sats": 277322.0, "btc_val": 0.00277322, "price": 96182.0, "days_since": 83, "cumul_btc": 0.0}, {"ts": 1740178800000, "rolling_sats": 276200.0, "btc_val": 0.002762, "price": 96551.0, "days_since": 84, "cumul_btc": 0.0}, {"ts": 1740265200000, "rolling_sats": 276200.0, "btc_val": 0.002762, "price": 96258.0, "days_since": 85, "cumul_btc": 0.0}, {"ts": 1740351600000, "rolling_sats": 276200.0, "btc_val": 0.002762, "price": 91553.0, "days_since": 86, "cumul_btc": 0.0}, {"ts": 1740438000000, "rolling_sats": 276200.0, "btc_val": 0.002762, "price": 88680.0, "days_since": 87, "cumul_btc": 0.0}, {"ts": 1740524400000, "rolling_sats": 274038.0, "btc_val": 0.00274038, "price": 84250.0, "days_since": 88, "cumul_btc": 0.0}, {"ts": 1740610800000, "rolling_sats": 274038.0, "btc_val": 0.00274038, "price": 84709.0, "days_since": 89, "cumul_btc": 0.0}, {"ts": 1740697200000, "rolling_sats": 272686.0, "btc_val": 0.00272686, "price": 84350.0, "days_since": 90, "cumul_btc": 0.0}, {"ts": 1740783600000, "rolling_sats": 271623.0, "btc_val": 0.00271623, "price": 86065.0, "days_since": 91, "cumul_btc": 0.0}, {"ts": 1740870000000, "rolling_sats": 271623.0, "btc_val": 0.00271623, "price": 94270.0, "days_since": 92, "cumul_btc": 0.0}, {"ts": 1740956400000, "rolling_sats": 271623.0, "btc_val": 0.00271623, "price": 86221.0, "days_since": 93, "cumul_btc": 0.0}, {"ts": 1741042800000, "rolling_sats": 271623.0, "btc_val": 0.00271623, "price": 87282.0, "days_since": 94, "cumul_btc": 0.0}, {"ts": 1741129200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 90606.0, "days_since": 95, "cumul_btc": 0.0}, {"ts": 1741215600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 89932.0, "days_since": 96, "cumul_btc": 0.0}, {"ts": 1741302000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 86802.0, "days_since": 97, "cumul_btc": 0.0}, {"ts": 1741388400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 86222.0, "days_since": 98, "cumul_btc": 0.0}, {"ts": 1741474800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 80734.0, "days_since": 99, "cumul_btc": 0.0}, {"ts": 1741561200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 78596.0, "days_since": 100, "cumul_btc": 0.0}, {"ts": 1741647600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 82933.0, "days_since": 101, "cumul_btc": 0.0}, {"ts": 1741734000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 83680.0, "days_since": 102, "cumul_btc": 0.0}, {"ts": 1741820400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 81116.0, "days_since": 103, "cumul_btc": 0.0}, {"ts": 1741906800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 83983.0, "days_since": 104, "cumul_btc": 0.0}, {"ts": 1741993200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 84338.0, "days_since": 105, "cumul_btc": 0.0}, {"ts": 1742079600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 82575.0, "days_since": 106, "cumul_btc": 0.0}, {"ts": 1742166000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 84010.0, "days_since": 107, "cumul_btc": 0.0}, {"ts": 1742252400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 82715.0, "days_since": 108, "cumul_btc": 0.0}, {"ts": 1742338800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 86846.0, "days_since": 109, "cumul_btc": 0.0}, {"ts": 1742425200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 84223.0, "days_since": 110, "cumul_btc": 0.0}, {"ts": 1742511600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 84089.0, "days_since": 111, "cumul_btc": 0.0}, {"ts": 1742598000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 83841.0, "days_since": 112, "cumul_btc": 0.0}, {"ts": 1742684400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 86082.0, "days_since": 113, "cumul_btc": 0.0}, {"ts": 1742770800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 87498.0, "days_since": 114, "cumul_btc": 0.0}, {"ts": 1742857200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 87393.0, "days_since": 115, "cumul_btc": 0.0}, {"ts": 1742943600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 86909.0, "days_since": 116, "cumul_btc": 0.0}, {"ts": 1743030000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 87232.0, "days_since": 117, "cumul_btc": 0.0}, {"ts": 1743116400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 84424.0, "days_since": 118, "cumul_btc": 0.0}, {"ts": 1743202800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 82649.0, "days_since": 119, "cumul_btc": 0.0}, {"ts": 1743289200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 82390.0, "days_since": 120, "cumul_btc": 0.0}, {"ts": 1743372000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 82550.0, "days_since": 121, "cumul_btc": 0.0}, {"ts": 1743458400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 85158.0, "days_since": 122, "cumul_btc": 0.0}, {"ts": 1743544800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 82516.0, "days_since": 123, "cumul_btc": 0.0}, {"ts": 1743631200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 83213.0, "days_since": 124, "cumul_btc": 0.0}, {"ts": 1743717600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 83890.0, "days_since": 125, "cumul_btc": 0.0}, {"ts": 1743804000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 83538.0, "days_since": 126, "cumul_btc": 0.0}, {"ts": 1743890400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 78430.0, "days_since": 127, "cumul_btc": 0.0}, {"ts": 1743976800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 79163.0, "days_since": 128, "cumul_btc": 0.0}, {"ts": 1744063200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 76322.0, "days_since": 129, "cumul_btc": 0.0}, {"ts": 1744149600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 82615.0, "days_since": 130, "cumul_btc": 0.0}, {"ts": 1744236000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 79607.0, "days_since": 131, "cumul_btc": 0.0}, {"ts": 1744322400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 83424.0, "days_since": 132, "cumul_btc": 0.0}, {"ts": 1744408800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 85277.0, "days_since": 133, "cumul_btc": 0.0}, {"ts": 1744495200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 83760.0, "days_since": 134, "cumul_btc": 0.0}, {"ts": 1744581600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 84592.0, "days_since": 135, "cumul_btc": 0.0}, {"ts": 1744668000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 83644.0, "days_since": 136, "cumul_btc": 0.0}, {"ts": 1744754400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 84030.0, "days_since": 137, "cumul_btc": 0.0}, {"ts": 1744840800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 84948.0, "days_since": 138, "cumul_btc": 0.0}, {"ts": 1744927200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 84475.0, "days_since": 139, "cumul_btc": 0.0}, {"ts": 1745013600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 85077.0, "days_since": 140, "cumul_btc": 0.0}, {"ts": 1745100000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 85179.0, "days_since": 141, "cumul_btc": 0.0}, {"ts": 1745186400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 87516.0, "days_since": 142, "cumul_btc": 0.0}, {"ts": 1745272800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 93443.0, "days_since": 143, "cumul_btc": 0.0}, {"ts": 1745359200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 93691.0, "days_since": 144, "cumul_btc": 0.0}, {"ts": 1745445600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 93980.0, "days_since": 145, "cumul_btc": 0.0}, {"ts": 1745532000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 94639.0, "days_since": 146, "cumul_btc": 0.0}, {"ts": 1745618400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 94628.0, "days_since": 147, "cumul_btc": 0.0}, {"ts": 1745704800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 93749.0, "days_since": 148, "cumul_btc": 0.0}, {"ts": 1745791200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 95011.0, "days_since": 149, "cumul_btc": 0.0}, {"ts": 1745877600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 94257.0, "days_since": 150, "cumul_btc": 0.0}, {"ts": 1745964000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 94172.0, "days_since": 151, "cumul_btc": 0.0}, {"ts": 1746050400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 96490.0, "days_since": 152, "cumul_btc": 0.0}, {"ts": 1746136800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 96887.0, "days_since": 153, "cumul_btc": 0.0}, {"ts": 1746223200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 95856.0, "days_since": 154, "cumul_btc": 0.0}, {"ts": 1746309600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 94278.0, "days_since": 155, "cumul_btc": 0.0}, {"ts": 1746396000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 94734.0, "days_since": 156, "cumul_btc": 0.0}, {"ts": 1746482400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 96834.0, "days_since": 157, "cumul_btc": 0.0}, {"ts": 1746568800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 97030.0, "days_since": 158, "cumul_btc": 0.0}, {"ts": 1746655200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 103262.0, "days_since": 159, "cumul_btc": 0.0}, {"ts": 1746741600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 102972.0, "days_since": 160, "cumul_btc": 0.0}, {"ts": 1746828000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 104810.0, "days_since": 161, "cumul_btc": 0.0}, {"ts": 1746914400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 104118.0, "days_since": 162, "cumul_btc": 0.0}, {"ts": 1747000800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 102791.0, "days_since": 163, "cumul_btc": 0.0}, {"ts": 1747087200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 104104.0, "days_since": 164, "cumul_btc": 0.0}, {"ts": 1747173600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 103508.0, "days_since": 165, "cumul_btc": 0.0}, {"ts": 1747260000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 103764.0, "days_since": 166, "cumul_btc": 0.0}, {"ts": 1747346400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 103464.0, "days_since": 167, "cumul_btc": 0.0}, {"ts": 1747432800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 103127.0, "days_since": 168, "cumul_btc": 0.0}, {"ts": 1747519200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 106454.0, "days_since": 169, "cumul_btc": 0.0}, {"ts": 1747605600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 105574.0, "days_since": 170, "cumul_btc": 0.0}, {"ts": 1747692000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 106850.0, "days_since": 171, "cumul_btc": 0.0}, {"ts": 1747778400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 109644.0, "days_since": 172, "cumul_btc": 0.0}, {"ts": 1747864800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 111696.0, "days_since": 173, "cumul_btc": 0.0}, {"ts": 1747951200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 107318.0, "days_since": 174, "cumul_btc": 0.0}, {"ts": 1748037600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 107762.0, "days_since": 175, "cumul_btc": 0.0}, {"ts": 1748124000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 109004.0, "days_since": 176, "cumul_btc": 0.0}, {"ts": 1748210400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 109435.0, "days_since": 177, "cumul_btc": 0.0}, {"ts": 1748296800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 108938.0, "days_since": 178, "cumul_btc": 0.0}, {"ts": 1748383200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 107782.0, "days_since": 179, "cumul_btc": 0.0}, {"ts": 1748469600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 105590.0, "days_since": 180, "cumul_btc": 0.0}, {"ts": 1748556000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 103985.0, "days_since": 181, "cumul_btc": 0.0}, {"ts": 1748642400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 104592.0, "days_since": 182, "cumul_btc": 0.0}, {"ts": 1748728800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 105643.0, "days_since": 183, "cumul_btc": 0.0}, {"ts": 1748815200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 105858.0, "days_since": 184, "cumul_btc": 0.0}, {"ts": 1748901600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 105377.0, "days_since": 185, "cumul_btc": 0.0}, {"ts": 1748988000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 104697.0, "days_since": 186, "cumul_btc": 0.0}, {"ts": 1749074400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 101509.0, "days_since": 187, "cumul_btc": 0.0}, {"ts": 1749160800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 104288.0, "days_since": 188, "cumul_btc": 0.0}, {"ts": 1749247200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 105552.0, "days_since": 189, "cumul_btc": 0.0}, {"ts": 1749333600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 105734.0, "days_since": 190, "cumul_btc": 0.0}, {"ts": 1749420000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 110263.0, "days_since": 191, "cumul_btc": 0.0}, {"ts": 1749506400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 110274.0, "days_since": 192, "cumul_btc": 0.0}, {"ts": 1749592800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 108645.0, "days_since": 193, "cumul_btc": 0.0}, {"ts": 1749679200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 105672.0, "days_since": 194, "cumul_btc": 0.0}, {"ts": 1749765600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 106067.0, "days_since": 195, "cumul_btc": 0.0}, {"ts": 1749852000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 105415.0, "days_since": 196, "cumul_btc": 0.0}, {"ts": 1749938400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 105594.0, "days_since": 197, "cumul_btc": 0.0}, {"ts": 1750024800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 106795.0, "days_since": 198, "cumul_btc": 0.0}, {"ts": 1750111200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 104551.0, "days_since": 199, "cumul_btc": 0.0}, {"ts": 1750197600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 104887.0, "days_since": 200, "cumul_btc": 0.0}, {"ts": 1750284000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 104659.0, "days_since": 201, "cumul_btc": 0.0}, {"ts": 1750370400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 103298.0, "days_since": 202, "cumul_btc": 0.0}, {"ts": 1750456800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 102120.0, "days_since": 203, "cumul_btc": 0.0}, {"ts": 1750543200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 100964.0, "days_since": 204, "cumul_btc": 0.0}, {"ts": 1750629600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 105334.0, "days_since": 205, "cumul_btc": 0.0}, {"ts": 1750716000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 106083.0, "days_since": 206, "cumul_btc": 0.0}, {"ts": 1750802400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 107341.0, "days_since": 207, "cumul_btc": 0.0}, {"ts": 1750888800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 106947.0, "days_since": 208, "cumul_btc": 0.0}, {"ts": 1750975200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 107048.0, "days_since": 209, "cumul_btc": 0.0}, {"ts": 1751061600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 107297.0, "days_since": 210, "cumul_btc": 0.0}, {"ts": 1751148000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 108357.0, "days_since": 211, "cumul_btc": 0.0}, {"ts": 1751234400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 107146.0, "days_since": 212, "cumul_btc": 0.0}, {"ts": 1751320800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 105681.0, "days_since": 213, "cumul_btc": 0.0}, {"ts": 1751407200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 108850.0, "days_since": 214, "cumul_btc": 0.0}, {"ts": 1751493600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 109585.0, "days_since": 215, "cumul_btc": 0.0}, {"ts": 1751580000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 107984.0, "days_since": 216, "cumul_btc": 0.0}, {"ts": 1751666400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 108198.0, "days_since": 217, "cumul_btc": 0.0}, {"ts": 1751752800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 109204.0, "days_since": 218, "cumul_btc": 0.0}, {"ts": 1751839200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 108263.0, "days_since": 219, "cumul_btc": 0.0}, {"ts": 1751925600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 108923.0, "days_since": 220, "cumul_btc": 0.0}, {"ts": 1752012000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 111234.0, "days_since": 221, "cumul_btc": 0.0}, {"ts": 1752098400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 116010.0, "days_since": 222, "cumul_btc": 0.0}, {"ts": 1752184800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 117528.0, "days_since": 223, "cumul_btc": 0.0}, {"ts": 1752271200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 117420.0, "days_since": 224, "cumul_btc": 0.0}, {"ts": 1752357600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 119087.0, "days_since": 225, "cumul_btc": 0.0}, {"ts": 1752444000000, "rolling_sats": 227.0, "btc_val": 2.27e-06, "price": 119841.0, "days_since": 226, "cumul_btc": 6.798e-05}, {"ts": 1752530400000, "rolling_sats": 627.0, "btc_val": 6.27e-06, "price": 117758.0, "days_since": 227, "cumul_btc": 0.000188}, {"ts": 1752616800000, "rolling_sats": 969.0, "btc_val": 9.69e-06, "price": 118630.0, "days_since": 228, "cumul_btc": 0.00029063}, {"ts": 1752703200000, "rolling_sats": 1231.0, "btc_val": 1.231e-05, "price": 119178.0, "days_since": 229, "cumul_btc": 0.0003693}, {"ts": 1752789600000, "rolling_sats": 1231.0, "btc_val": 1.231e-05, "price": 117925.0, "days_since": 230, "cumul_btc": 0.0003693}, {"ts": 1752876000000, "rolling_sats": 1715.0, "btc_val": 1.715e-05, "price": 117840.0, "days_since": 231, "cumul_btc": 0.00051443}, {"ts": 1752962400000, "rolling_sats": 1715.0, "btc_val": 1.715e-05, "price": 117265.0, "days_since": 232, "cumul_btc": 0.00051443}, {"ts": 1753048800000, "rolling_sats": 1935.0, "btc_val": 1.935e-05, "price": 117380.0, "days_since": 233, "cumul_btc": 0.00058046}, {"ts": 1753135200000, "rolling_sats": 1935.0, "btc_val": 1.935e-05, "price": 119954.0, "days_since": 234, "cumul_btc": 0.00058046}, {"ts": 1753221600000, "rolling_sats": 2408.0, "btc_val": 2.408e-05, "price": 118756.0, "days_since": 235, "cumul_btc": 0.00072238}, {"ts": 1753308000000, "rolling_sats": 2607.0, "btc_val": 2.607e-05, "price": 118341.0, "days_since": 236, "cumul_btc": 0.000782}, {"ts": 1753394400000, "rolling_sats": 2930.0, "btc_val": 2.93e-05, "price": 117614.0, "days_since": 237, "cumul_btc": 0.00087909}, {"ts": 1753480800000, "rolling_sats": 2930.0, "btc_val": 2.93e-05, "price": 117920.0, "days_since": 238, "cumul_btc": 0.00087909}, {"ts": 1753567200000, "rolling_sats": 2930.0, "btc_val": 2.93e-05, "price": 119416.0, "days_since": 239, "cumul_btc": 0.00087909}, {"ts": 1753653600000, "rolling_sats": 3395.0, "btc_val": 3.395e-05, "price": 118062.0, "days_since": 240, "cumul_btc": 0.00101857}, {"ts": 1753740000000, "rolling_sats": 3602.0, "btc_val": 3.602e-05, "price": 117951.0, "days_since": 241, "cumul_btc": 0.00108066}, {"ts": 1753826400000, "rolling_sats": 3790.0, "btc_val": 3.79e-05, "price": 117840.0, "days_since": 242, "cumul_btc": 0.00113692}, {"ts": 1753912800000, "rolling_sats": 4008.0, "btc_val": 4.008e-05, "price": 115764.0, "days_since": 243, "cumul_btc": 0.0012024}, {"ts": 1753999200000, "rolling_sats": 4301.0, "btc_val": 4.301e-05, "price": 113298.0, "days_since": 244, "cumul_btc": 0.00129035}, {"ts": 1754085600000, "rolling_sats": 4779.0, "btc_val": 4.779e-05, "price": 112546.0, "days_since": 245, "cumul_btc": 0.00143369}, {"ts": 1754172000000, "rolling_sats": 4880.0, "btc_val": 4.88e-05, "price": 114209.0, "days_since": 246, "cumul_btc": 0.00146413}, {"ts": 1754258400000, "rolling_sats": 4986.0, "btc_val": 4.986e-05, "price": 115055.0, "days_since": 247, "cumul_btc": 0.00149586}, {"ts": 1754344800000, "rolling_sats": 5134.0, "btc_val": 5.134e-05, "price": 114130.0, "days_since": 248, "cumul_btc": 0.0015403}, {"ts": 1754431200000, "rolling_sats": 5346.0, "btc_val": 5.346e-05, "price": 114992.0, "days_since": 249, "cumul_btc": 0.00160394}, {"ts": 1754517600000, "rolling_sats": 5346.0, "btc_val": 5.346e-05, "price": 117472.0, "days_since": 250, "cumul_btc": 0.00160394}, {"ts": 1754604000000, "rolling_sats": 5346.0, "btc_val": 5.346e-05, "price": 116675.0, "days_since": 251, "cumul_btc": 0.00160394}, {"ts": 1754690400000, "rolling_sats": 5346.0, "btc_val": 5.346e-05, "price": 116462.0, "days_since": 252, "cumul_btc": 0.00160394}, {"ts": 1754776800000, "rolling_sats": 5346.0, "btc_val": 5.346e-05, "price": 119294.0, "days_since": 253, "cumul_btc": 0.00160394}, {"ts": 1754863200000, "rolling_sats": 6012.0, "btc_val": 6.012e-05, "price": 118686.0, "days_since": 254, "cumul_btc": 0.00180362}, {"ts": 1754949600000, "rolling_sats": 6012.0, "btc_val": 6.012e-05, "price": 120134.0, "days_since": 255, "cumul_btc": 0.00180362}, {"ts": 1755036000000, "rolling_sats": 5785.0, "btc_val": 5.785e-05, "price": 123306.0, "days_since": 256, "cumul_btc": 0.00180362}, {"ts": 1755122400000, "rolling_sats": 5385.0, "btc_val": 5.385e-05, "price": 118295.0, "days_since": 257, "cumul_btc": 0.00180362}, {"ts": 1755208800000, "rolling_sats": 6020.0, "btc_val": 6.02e-05, "price": 117342.0, "days_since": 258, "cumul_btc": 0.00209673}, {"ts": 1755295200000, "rolling_sats": 5758.0, "btc_val": 5.758e-05, "price": 117381.0, "days_since": 259, "cumul_btc": 0.00209673}, {"ts": 1755381600000, "rolling_sats": 5758.0, "btc_val": 5.758e-05, "price": 117405.0, "days_since": 260, "cumul_btc": 0.00209673}, {"ts": 1755468000000, "rolling_sats": 5769.0, "btc_val": 5.769e-05, "price": 116227.0, "days_since": 261, "cumul_btc": 0.00224513}, {"ts": 1755554400000, "rolling_sats": 6099.0, "btc_val": 6.099e-05, "price": 112873.0, "days_since": 262, "cumul_btc": 0.00234412}, {"ts": 1755640800000, "rolling_sats": 6150.0, "btc_val": 6.15e-05, "price": 114271.0, "days_since": 263, "cumul_btc": 0.00242557}, {"ts": 1755727200000, "rolling_sats": 6150.0, "btc_val": 6.15e-05, "price": 112500.0, "days_since": 264, "cumul_btc": 0.00242557}, {"ts": 1755813600000, "rolling_sats": 6092.0, "btc_val": 6.092e-05, "price": 116936.0, "days_since": 265, "cumul_btc": 0.00255011}, {"ts": 1755900000000, "rolling_sats": 6192.0, "btc_val": 6.192e-05, "price": 115438.0, "days_since": 266, "cumul_btc": 0.00263968}, {"ts": 1755986400000, "rolling_sats": 5869.0, "btc_val": 5.869e-05, "price": 113494.0, "days_since": 267, "cumul_btc": 0.00263968}, {"ts": 1756072800000, "rolling_sats": 6214.0, "btc_val": 6.214e-05, "price": 110112.0, "days_since": 268, "cumul_btc": 0.00274319}, {"ts": 1756159200000, "rolling_sats": 6214.0, "btc_val": 6.214e-05, "price": 111763.0, "days_since": 269, "cumul_btc": 0.00274319}, {"ts": 1756245600000, "rolling_sats": 5749.0, "btc_val": 5.749e-05, "price": 111262.0, "days_since": 270, "cumul_btc": 0.00274319}, {"ts": 1756332000000, "rolling_sats": 5542.0, "btc_val": 5.542e-05, "price": 112567.0, "days_since": 271, "cumul_btc": 0.00274319}, {"ts": 1756418400000, "rolling_sats": 5354.0, "btc_val": 5.354e-05, "price": 108377.0, "days_since": 272, "cumul_btc": 0.00274319}, {"ts": 1756504800000, "rolling_sats": 5136.0, "btc_val": 5.136e-05, "price": 108816.0, "days_since": 273, "cumul_btc": 0.00274319}, {"ts": 1756591200000, "rolling_sats": 4843.0, "btc_val": 4.843e-05, "price": 108246.0, "days_since": 274, "cumul_btc": 0.00274319}, {"ts": 1756677600000, "rolling_sats": 4365.0, "btc_val": 4.365e-05, "price": 109237.0, "days_since": 275, "cumul_btc": 0.00274319}, {"ts": 1756764000000, "rolling_sats": 4264.0, "btc_val": 4.264e-05, "price": 111240.0, "days_since": 276, "cumul_btc": 0.00274319}, {"ts": 1756850400000, "rolling_sats": 264361.0, "btc_val": 0.00264361, "price": 111706.0, "days_since": 277, "cumul_btc": 0.0808043}, {"ts": 1756936800000, "rolling_sats": 264213.0, "btc_val": 0.00264213, "price": 110731.0, "days_since": 278, "cumul_btc": 0.0808043}, {"ts": 1757023200000, "rolling_sats": 264001.0, "btc_val": 0.00264001, "price": 110660.0, "days_since": 279, "cumul_btc": 0.0808043}, {"ts": 1757109600000, "rolling_sats": 264001.0, "btc_val": 0.00264001, "price": 110188.0, "days_since": 280, "cumul_btc": 0.0808043}, {"ts": 1757196000000, "rolling_sats": 264001.0, "btc_val": 0.00264001, "price": 111137.0, "days_since": 281, "cumul_btc": 0.0808043}, {"ts": 1757282400000, "rolling_sats": 264001.0, "btc_val": 0.00264001, "price": 112065.0, "days_since": 282, "cumul_btc": 0.0808043}, {"ts": 1757368800000, "rolling_sats": 264001.0, "btc_val": 0.00264001, "price": 111546.0, "days_since": 283, "cumul_btc": 0.0808043}, {"ts": 1757455200000, "rolling_sats": 263336.0, "btc_val": 0.00263336, "price": 113960.0, "days_since": 284, "cumul_btc": 0.0808043}, {"ts": 1757541600000, "rolling_sats": 263336.0, "btc_val": 0.00263336, "price": 115483.0, "days_since": 285, "cumul_btc": 0.0808043}, {"ts": 1757628000000, "rolling_sats": 263336.0, "btc_val": 0.00263336, "price": 116029.0, "days_since": 286, "cumul_btc": 0.0808043}, {"ts": 1757714400000, "rolling_sats": 263336.0, "btc_val": 0.00263336, "price": 115918.0, "days_since": 287, "cumul_btc": 0.0808043}, {"ts": 1757800800000, "rolling_sats": 262359.0, "btc_val": 0.00262359, "price": 115268.0, "days_since": 288, "cumul_btc": 0.0808043}, {"ts": 1757887200000, "rolling_sats": 262359.0, "btc_val": 0.00262359, "price": 115350.0, "days_since": 289, "cumul_btc": 0.0808043}, {"ts": 1757973600000, "rolling_sats": 262359.0, "btc_val": 0.00262359, "price": 116789.0, "days_since": 290, "cumul_btc": 0.0808043}, {"ts": 1758060000000, "rolling_sats": 261864.0, "btc_val": 0.00261864, "price": 116448.0, "days_since": 291, "cumul_btc": 0.0808043}, {"ts": 1758146400000, "rolling_sats": 261534.0, "btc_val": 0.00261534, "price": 117074.0, "days_since": 292, "cumul_btc": 0.0808043}, {"ts": 1758232800000, "rolling_sats": 261262.0, "btc_val": 0.00261262, "price": 115632.0, "days_since": 293, "cumul_btc": 0.0808043}, {"ts": 1758319200000, "rolling_sats": 261262.0, "btc_val": 0.00261262, "price": 115686.0, "days_since": 294, "cumul_btc": 0.0808043}, {"ts": 1758405600000, "rolling_sats": 260847.0, "btc_val": 0.00260847, "price": 115232.0, "days_since": 295, "cumul_btc": 0.0808043}, {"ts": 1758492000000, "rolling_sats": 261177.0, "btc_val": 0.00261177, "price": 112651.0, "days_since": 296, "cumul_btc": 0.08099267}, {"ts": 1758578400000, "rolling_sats": 261353.0, "btc_val": 0.00261353, "price": 111999.0, "days_since": 297, "cumul_btc": 0.08104562}, {"ts": 1758664800000, "rolling_sats": 261008.0, "btc_val": 0.00261008, "price": 113307.0, "days_since": 298, "cumul_btc": 0.08104562}, {"ts": 1758751200000, "rolling_sats": 261008.0, "btc_val": 0.00261008, "price": 108994.0, "days_since": 299, "cumul_btc": 0.08104562}, {"ts": 1758837600000, "rolling_sats": 262810.0, "btc_val": 0.0026281, "price": 109643.0, "days_since": 300, "cumul_btc": 0.08158619}, {"ts": 1758924000000, "rolling_sats": 263140.0, "btc_val": 0.0026314, "price": 109636.0, "days_since": 301, "cumul_btc": 0.08168513}, {"ts": 1759010400000, "rolling_sats": 263140.0, "btc_val": 0.0026314, "price": 112164.0, "days_since": 302, "cumul_btc": 0.08168513}, {"ts": 1759096800000, "rolling_sats": 263387.0, "btc_val": 0.00263387, "price": 114312.0, "days_since": 303, "cumul_btc": 0.08175924}, {"ts": 1759183200000, "rolling_sats": 264078.0, "btc_val": 0.00264078, "price": 114049.0, "days_since": 304, "cumul_btc": 0.08196667}, {"ts": 1759269600000, "rolling_sats": 663286.0, "btc_val": 0.00663286, "price": 118595.0, "days_since": 305, "cumul_btc": 0.20172902}, {"ts": 1759356000000, "rolling_sats": 663286.0, "btc_val": 0.00663286, "price": 120529.0, "days_since": 306, "cumul_btc": 0.20172902}, {"ts": 1759442400000, "rolling_sats": 403082.0, "btc_val": 0.00403082, "price": 122232.0, "days_since": 307, "cumul_btc": 0.20172902}, {"ts": 1759528800000, "rolling_sats": 403091.0, "btc_val": 0.00403091, "price": 122391.0, "days_since": 308, "cumul_btc": 0.20173163}, {"ts": 1759615200000, "rolling_sats": 403091.0, "btc_val": 0.00403091, "price": 123482.0, "days_since": 309, "cumul_btc": 0.20173163}, {"ts": 1759701600000, "rolling_sats": 403091.0, "btc_val": 0.00403091, "price": 124659.0, "days_since": 310, "cumul_btc": 0.20173163}, {"ts": 1759788000000, "rolling_sats": 403091.0, "btc_val": 0.00403091, "price": 121333.0, "days_since": 311, "cumul_btc": 0.20173163}, {"ts": 1759874400000, "rolling_sats": 403091.0, "btc_val": 0.00403091, "price": 123306.0, "days_since": 312, "cumul_btc": 0.20173163}, {"ts": 1759960800000, "rolling_sats": 403091.0, "btc_val": 0.00403091, "price": 121662.0, "days_since": 313, "cumul_btc": 0.20173163}, {"ts": 1760047200000, "rolling_sats": 403091.0, "btc_val": 0.00403091, "price": 112774.0, "days_since": 314, "cumul_btc": 0.20173163}, {"ts": 1760133600000, "rolling_sats": 403091.0, "btc_val": 0.00403091, "price": 110644.0, "days_since": 315, "cumul_btc": 0.20173163}, {"ts": 1760220000000, "rolling_sats": 403091.0, "btc_val": 0.00403091, "price": 114959.0, "days_since": 316, "cumul_btc": 0.20173163}, {"ts": 1760306400000, "rolling_sats": 411130.0, "btc_val": 0.0041113, "price": 115166.0, "days_since": 317, "cumul_btc": 0.20414345}, {"ts": 1760392800000, "rolling_sats": 413056.0, "btc_val": 0.00413056, "price": 113028.0, "days_since": 318, "cumul_btc": 0.20472111}, {"ts": 1760479200000, "rolling_sats": 414822.0, "btc_val": 0.00414822, "price": 110763.0, "days_since": 319, "cumul_btc": 0.20525101}, {"ts": 1760565600000, "rolling_sats": 416170.0, "btc_val": 0.0041617, "price": 108194.0, "days_since": 320, "cumul_btc": 0.20565535}, {"ts": 1760652000000, "rolling_sats": 416170.0, "btc_val": 0.0041617, "price": 106432.0, "days_since": 321, "cumul_btc": 0.20565535}, {"ts": 1760738400000, "rolling_sats": 417388.0, "btc_val": 0.00417388, "price": 107185.0, "days_since": 322, "cumul_btc": 0.20602062}, {"ts": 1760824800000, "rolling_sats": 419314.0, "btc_val": 0.00419314, "price": 108643.0, "days_since": 323, "cumul_btc": 0.20659846}, {"ts": 1760911200000, "rolling_sats": 419314.0, "btc_val": 0.00419314, "price": 110532.0, "days_since": 324, "cumul_btc": 0.20659846}, {"ts": 1760997600000, "rolling_sats": 421248.0, "btc_val": 0.00421248, "price": 108298.0, "days_since": 325, "cumul_btc": 0.20717874}, {"ts": 1761084000000, "rolling_sats": 421847.0, "btc_val": 0.00421847, "price": 107567.0, "days_since": 326, "cumul_btc": 0.20754691}, {"ts": 1761170400000, "rolling_sats": 1185076.0, "btc_val": 0.01185076, "price": 110078.0, "days_since": 327, "cumul_btc": 0.43656846}, {"ts": 1761256800000, "rolling_sats": 1185452.0, "btc_val": 0.01185452, "price": 111005.0, "days_since": 328, "cumul_btc": 0.43668128}, {"ts": 1761343200000, "rolling_sats": 1186800.0, "btc_val": 0.011868, "price": 111646.0, "days_since": 329, "cumul_btc": 0.43708561}, {"ts": 1761429600000, "rolling_sats": 1185324.0, "btc_val": 0.01185324, "price": 114559.0, "days_since": 330, "cumul_btc": 0.4371834}, {"ts": 1761519600000, "rolling_sats": 1185312.0, "btc_val": 0.01185312, "price": 114108.0, "days_since": 331, "cumul_btc": 0.43727883}, {"ts": 1761606000000, "rolling_sats": 1185312.0, "btc_val": 0.01185312, "price": 112898.0, "days_since": 332, "cumul_btc": 0.43727883}, {"ts": 1761692400000, "rolling_sats": 1189936.0, "btc_val": 0.01189936, "price": 110021.0, "days_since": 333, "cumul_btc": 0.43873999}, {"ts": 1761778800000, "rolling_sats": 1193404.0, "btc_val": 0.01193404, "price": 108323.0, "days_since": 334, "cumul_btc": 0.43998789}, {"ts": 1761865200000, "rolling_sats": 800312.0, "btc_val": 0.00800312, "price": 109608.0, "days_since": 335, "cumul_btc": 0.44182259}, {"ts": 1761951600000, "rolling_sats": 803248.0, "btc_val": 0.00803248, "price": 110098.0, "days_since": 336, "cumul_btc": 0.44270347}, {"ts": 1762038000000, "rolling_sats": 803248.0, "btc_val": 0.00803248, "price": 110541.0, "days_since": 337, "cumul_btc": 0.44270347}, {"ts": 1762124400000, "rolling_sats": 809371.0, "btc_val": 0.00809371, "price": 106583.0, "days_since": 338, "cumul_btc": 0.44454304}, {"ts": 1762210800000, "rolling_sats": 934980.0, "btc_val": 0.0093498, "price": 101497.0, "days_since": 339, "cumul_btc": 0.48222568}, {"ts": 1762297200000, "rolling_sats": 934980.0, "btc_val": 0.0093498, "price": 103885.0, "days_since": 340, "cumul_btc": 0.48222568}, {"ts": 1762383600000, "rolling_sats": 937989.0, "btc_val": 0.00937989, "price": 101346.0, "days_since": 341, "cumul_btc": 0.48312842}, {"ts": 1762470000000, "rolling_sats": 938940.0, "btc_val": 0.0093894, "price": 103339.0, "days_since": 342, "cumul_btc": 0.48341354}, {"ts": 1762556400000, "rolling_sats": 939995.0, "btc_val": 0.00939995, "price": 102313.0, "days_since": 343, "cumul_btc": 0.48373005}, {"ts": 1762642800000, "rolling_sats": 941672.0, "btc_val": 0.00941672, "price": 104723.0, "days_since": 344, "cumul_btc": 0.48423324}, {"ts": 1762729200000, "rolling_sats": 941672.0, "btc_val": 0.00941672, "price": 106011.0, "days_since": 345, "cumul_btc": 0.48423324}, {"ts": 1762815600000, "rolling_sats": 945261.0, "btc_val": 0.00945261, "price": 103059.0, "days_since": 346, "cumul_btc": 0.48530991}, {"ts": 1762902000000, "rolling_sats": 939009.0, "btc_val": 0.00939009, "price": 101654.0, "days_since": 347, "cumul_btc": 0.48584615}, {"ts": 1762988400000, "rolling_sats": 939923.0, "btc_val": 0.00939923, "price": 99692.0, "days_since": 348, "cumul_btc": 0.48669804}, {"ts": 1763074800000, "rolling_sats": 939617.0, "btc_val": 0.00939617, "price": 94594.0, "days_since": 349, "cumul_btc": 0.48713598}, {"ts": 1763161200000, "rolling_sats": 939262.0, "btc_val": 0.00939262, "price": 95596.0, "days_since": 350, "cumul_btc": 0.487434}, {"ts": 1763247600000, "rolling_sats": 939262.0, "btc_val": 0.00939262, "price": 94261.0, "days_since": 351, "cumul_btc": 0.487434}, {"ts": 1763334000000, "rolling_sats": 940687.0, "btc_val": 0.00940687, "price": 92215.0, "days_since": 352, "cumul_btc": 0.48822674}, {"ts": 1763420400000, "rolling_sats": 939709.0, "btc_val": 0.00939709, "price": 92961.0, "days_since": 353, "cumul_btc": 0.48851116}, {"ts": 1763506800000, "rolling_sats": 940655.0, "btc_val": 0.00940655, "price": 91555.0, "days_since": 354, "cumul_btc": 0.48879481}, {"ts": 1763593200000, "rolling_sats": 940518.0, "btc_val": 0.00940518, "price": 86637.0, "days_since": 355, "cumul_btc": 0.4893342}, {"ts": 1763679600000, "rolling_sats": 940174.0, "btc_val": 0.00940174, "price": 85129.0, "days_since": 356, "cumul_btc": 0.48959904}, {"ts": 1763766000000, "rolling_sats": 177671.0, "btc_val": 0.00177671, "price": 84740.0, "days_since": 357, "cumul_btc": 0.48986968}, {"ts": 1763852400000, "rolling_sats": 178271.0, "btc_val": 0.00178271, "price": 86830.0, "days_since": 358, "cumul_btc": 0.49016267}, {"ts": 1763938800000, "rolling_sats": 177741.0, "btc_val": 0.00177741, "price": 88300.0, "days_since": 359, "cumul_btc": 0.49040784}, {"ts": 1764025200000, "rolling_sats": 178330.0, "btc_val": 0.0017833, "price": 87370.0, "days_since": 360, "cumul_btc": 0.49068247}, {"ts": 1764111600000, "rolling_sats": 178966.0, "btc_val": 0.00178966, "price": 90484.0, "days_since": 361, "cumul_btc": 0.49096857}, {"ts": 1764198000000, "rolling_sats": 180575.0, "btc_val": 0.00180575, "price": 91334.0, "days_since": 362, "cumul_btc": 0.49145133}, {"ts": 1764284400000, "rolling_sats": 176600.0, "btc_val": 0.001766, "price": 90891.0, "days_since": 363, "cumul_btc": 0.49172009}, {"ts": 1764370800000, "rolling_sats": 172441.0, "btc_val": 0.00172441, "price": 90802.0, "days_since": 364, "cumul_btc": 0.49172009}, {"ts": 1764457200000, "rolling_sats": 166325.0, "btc_val": 0.00166325, "price": 90360.0, "days_since": 365, "cumul_btc": 0.49172009}, {"ts": 1764543600000, "rolling_sats": 166048.0, "btc_val": 0.00166048, "price": 86286.0, "days_since": 366, "cumul_btc": 0.49251788}, {"ts": 1764630000000, "rolling_sats": 167032.0, "btc_val": 0.00167032, "price": 91278.0, "days_since": 367, "cumul_btc": 0.49281293}, {"ts": 1764716400000, "rolling_sats": 161820.0, "btc_val": 0.0016182, "price": 93430.0, "days_since": 368, "cumul_btc": 0.4930889}, {"ts": 1764802800000, "rolling_sats": 38331.0, "btc_val": 0.00038331, "price": 92078.0, "days_since": 369, "cumul_btc": 0.4937251}, {"ts": 1764889200000, "rolling_sats": 38331.0, "btc_val": 0.00038331, "price": 89330.0, "days_since": 370, "cumul_btc": 0.4937251}, {"ts": 1764975600000, "rolling_sats": 37187.0, "btc_val": 0.00037187, "price": 89237.0, "days_since": 371, "cumul_btc": 0.49428459}, {"ts": 1765062000000, "rolling_sats": 37248.0, "btc_val": 0.00037248, "price": 90395.0, "days_since": 372, "cumul_btc": 0.49458793}, {"ts": 1765148400000, "rolling_sats": 37034.0, "btc_val": 0.00037034, "price": 90634.0, "days_since": 373, "cumul_btc": 0.49484011}, {"ts": 1765234800000, "rolling_sats": 36277.0, "btc_val": 0.00036277, "price": 92679.0, "days_since": 374, "cumul_btc": 0.49511635}, {"ts": 1765321200000, "rolling_sats": 37183.0, "btc_val": 0.00037183, "price": 92015.0, "days_since": 375, "cumul_btc": 0.49538819}, {"ts": 1765407600000, "rolling_sats": 202895.0, "btc_val": 0.00202895, "price": 92513.0, "days_since": 376, "cumul_btc": 0.54617831}, {"ts": 1765494000000, "rolling_sats": 202061.0, "btc_val": 0.00202061, "price": 90268.0, "days_since": 377, "cumul_btc": 0.54646441}, {"ts": 1765580400000, "rolling_sats": 200113.0, "btc_val": 0.00200113, "price": 90240.0, "days_since": 378, "cumul_btc": 0.54673184}, {"ts": 1765666800000, "rolling_sats": 198653.0, "btc_val": 0.00198653, "price": 88172.0, "days_since": 379, "cumul_btc": 0.54673184}, {"ts": 1765753200000, "rolling_sats": 199516.0, "btc_val": 0.00199516, "price": 86432.0, "days_since": 380, "cumul_btc": 0.54728867}, {"ts": 1765839600000, "rolling_sats": 200306.0, "btc_val": 0.00200306, "price": 87863.0, "days_since": 381, "cumul_btc": 0.5475259}, {"ts": 1765926000000, "rolling_sats": 198519.0, "btc_val": 0.00198519, "price": 86243.0, "days_since": 382, "cumul_btc": 0.54778238}, {"ts": 1766012400000, "rolling_sats": 197571.0, "btc_val": 0.00197571, "price": 85516.0, "days_since": 383, "cumul_btc": 0.54778238}, {"ts": 1766098800000, "rolling_sats": 196625.0, "btc_val": 0.00196625, "price": 88137.0, "days_since": 384, "cumul_btc": 0.54778238}, {"ts": 1766185200000, "rolling_sats": 194827.0, "btc_val": 0.00194827, "price": 88361.0, "days_since": 385, "cumul_btc": 0.54778238}, {"ts": 1766271600000, "rolling_sats": 193944.0, "btc_val": 0.00193944, "price": 88659.0, "days_since": 386, "cumul_btc": 0.54778238}, {"ts": 1766358000000, "rolling_sats": 193042.0, "btc_val": 0.00193042, "price": 88621.0, "days_since": 387, "cumul_btc": 0.54778238}, {"ts": 1766444400000, "rolling_sats": 192066.0, "btc_val": 0.00192066, "price": 87486.0, "days_since": 388, "cumul_btc": 0.54778238}, {"ts": 1766530800000, "rolling_sats": 191248.0, "btc_val": 0.00191248, "price": 87669.0, "days_since": 389, "cumul_btc": 0.54778238}, {"ts": 1766617200000, "rolling_sats": 190333.0, "btc_val": 0.00190333, "price": 87225.0, "days_since": 390, "cumul_btc": 0.54778238}, {"ts": 1766703600000, "rolling_sats": 189379.0, "btc_val": 0.00189379, "price": 87370.0, "days_since": 391, "cumul_btc": 0.54778238}, {"ts": 1766790000000, "rolling_sats": 187770.0, "btc_val": 0.0018777, "price": 87877.0, "days_since": 392, "cumul_btc": 0.54778238}, {"ts": 1766876400000, "rolling_sats": 186874.0, "btc_val": 0.00186874, "price": 87953.0, "days_since": 393, "cumul_btc": 0.54778238}, {"ts": 1766962800000, "rolling_sats": 186874.0, "btc_val": 0.00186874, "price": 87237.0, "days_since": 394, "cumul_btc": 0.54778238}, {"ts": 1767049200000, "rolling_sats": 186874.0, "btc_val": 0.00186874, "price": 88485.0, "days_since": 395, "cumul_btc": 0.54778238}, {"ts": 1767135600000, "rolling_sats": 184215.0, "btc_val": 0.00184215, "price": 87648.0, "days_since": 396, "cumul_btc": 0.54778238}, {"ts": 1767222000000, "rolling_sats": 183232.0, "btc_val": 0.00183231, "price": 88839.0, "days_since": 397, "cumul_btc": 0.54778238}, {"ts": 1767308400000, "rolling_sats": 182312.0, "btc_val": 0.00182312, "price": 89995.0, "days_since": 398, "cumul_btc": 0.54778238}, {"ts": 1767394800000, "rolling_sats": 180191.0, "btc_val": 0.00180191, "price": 90628.0, "days_since": 399, "cumul_btc": 0.54778238}, {"ts": 1767481200000, "rolling_sats": 180191.0, "btc_val": 0.00180191, "price": 91530.0, "days_since": 400, "cumul_btc": 0.54778238}, {"ts": 1767567600000, "rolling_sats": 178326.0, "btc_val": 0.00178326, "price": 93860.0, "days_since": 401, "cumul_btc": 0.54778238}, {"ts": 1767654000000, "rolling_sats": 177315.0, "btc_val": 0.00177315, "price": 93748.0, "days_since": 402, "cumul_btc": 0.54778238}, {"ts": 1767740400000, "rolling_sats": 176474.0, "btc_val": 0.00176474, "price": 91364.0, "days_since": 403, "cumul_btc": 0.54778238}, {"ts": 1767826800000, "rolling_sats": 175553.0, "btc_val": 0.00175553, "price": 91100.0, "days_since": 404, "cumul_btc": 0.54778238}, {"ts": 1767913200000, "rolling_sats": 174647.0, "btc_val": 0.00174647, "price": 90641.0, "days_since": 405, "cumul_btc": 0.54778238}, {"ts": 1767999600000, "rolling_sats": 5347.0, "btc_val": 5.347e-05, "price": 90505.0, "days_since": 406, "cumul_btc": 0.54778238}, {"ts": 1768086000000, "rolling_sats": 4393.0, "btc_val": 4.393e-05, "price": 91014.0, "days_since": 407, "cumul_btc": 0.54778238}, {"ts": 1768172400000, "rolling_sats": 3502.0, "btc_val": 3.502e-05, "price": 91296.0, "days_since": 408, "cumul_btc": 0.54778238}, {"ts": 1768258800000, "rolling_sats": 3502.0, "btc_val": 3.502e-05, "price": 95414.0, "days_since": 409, "cumul_btc": 0.54778238}, {"ts": 1768345200000, "rolling_sats": 1646.0, "btc_val": 1.646e-05, "price": 96952.0, "days_since": 410, "cumul_btc": 0.54778238}, {"ts": 1768431600000, "rolling_sats": 855.0, "btc_val": 8.55e-06, "price": 95605.0, "days_since": 411, "cumul_btc": 0.54778238}, {"ts": 1768518000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 95551.0, "days_since": 412, "cumul_btc": 0.54778238}, {"ts": 1768604400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 95148.0, "days_since": 413, "cumul_btc": 0.54778238}, {"ts": 1768690800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 93673.0, "days_since": 414, "cumul_btc": 0.54778238}, {"ts": 1768777200000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 92631.0, "days_since": 415, "cumul_btc": 0.54778238}, {"ts": 1768863600000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 88428.0, "days_since": 416, "cumul_btc": 0.54778238}, {"ts": 1768950000000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 89455.0, "days_since": 417, "cumul_btc": 0.54778238}, {"ts": 1769036400000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 89560.0, "days_since": 418, "cumul_btc": 0.54778238}, {"ts": 1769122800000, "rolling_sats": 0.0, "btc_val": 0.0, "price": 89600.0, "days_since": 419, "cumul_btc": 0.54778238}, {"ts": 1769209200000, "rolling_sats": 33522.0, "btc_val": 0.00033522, "price": 89225.0, "days_since": 420, "cumul_btc": 0.55783886}, {"ts": 1769295600000, "rolling_sats": 33522.0, "btc_val": 0.00033522, "price": 86670.0, "days_since": 421, "cumul_btc": 0.55783886}, {"ts": 1769382000000, "rolling_sats": 33522.0, "btc_val": 0.00033522, "price": 88347.0, "days_since": 422, "cumul_btc": 0.55783886}, {"ts": 1769468400000, "rolling_sats": 33522.0, "btc_val": 0.00033522, "price": 89250.0, "days_since": 423, "cumul_btc": 0.55783886}, {"ts": 1769554800000, "rolling_sats": 33522.0, "btc_val": 0.00033522, "price": 89300.0, "days_since": 424, "cumul_btc": 0.55783886}, {"ts": 1769641200000, "rolling_sats": 33522.0, "btc_val": 0.00033522, "price": 84650.0, "days_since": 425, "cumul_btc": 0.55783886}, {"ts": 1769727600000, "rolling_sats": 33522.0, "btc_val": 0.00033522, "price": 84260.0, "days_since": 426, "cumul_btc": 0.55783886}, {"ts": 1769814000000, "rolling_sats": 73353.0, "btc_val": 0.00073353, "price": 78741.0, "days_since": 427, "cumul_btc": 0.56978816}, {"ts": 1769900400000, "rolling_sats": 94549.0, "btc_val": 0.00094549, "price": 76968.0, "days_since": 428, "cumul_btc": 0.57614699}, {"ts": 1769986800000, "rolling_sats": 94549.0, "btc_val": 0.00094549, "price": 78739.0, "days_since": 429, "cumul_btc": 0.57614699}, {"ts": 1770073200000, "rolling_sats": 94549.0, "btc_val": 0.00094549, "price": 75770.0, "days_since": 430, "cumul_btc": 0.57614699}, {"ts": 1770159600000, "rolling_sats": 94549.0, "btc_val": 0.00094549, "price": 73166.0, "days_since": 431, "cumul_btc": 0.57614699}, {"ts": 1770246000000, "rolling_sats": 94549.0, "btc_val": 0.00094549, "price": 62910.0, "days_since": 432, "cumul_btc": 0.57614699}, {"ts": 1770332400000, "rolling_sats": 175762.0, "btc_val": 0.00175762, "price": 70580.0, "days_since": 433, "cumul_btc": 0.60051112}, {"ts": 1770418800000, "rolling_sats": 224697.0, "btc_val": 0.00224697, "price": 69289.0, "days_since": 434, "cumul_btc": 0.61519154}, {"ts": 1770505200000, "rolling_sats": 224697.0, "btc_val": 0.00224697, "price": 70330.0, "days_since": 435, "cumul_btc": 0.61519154}, {"ts": 1770591600000, "rolling_sats": 224697.0, "btc_val": 0.00224697, "price": 70138.0, "days_since": 436, "cumul_btc": 0.61519154}, {"ts": 1770678000000, "rolling_sats": 224697.0, "btc_val": 0.00224697, "price": 68841.0, "days_since": 437, "cumul_btc": 0.61519154}, {"ts": 1770764400000, "rolling_sats": 224697.0, "btc_val": 0.00224697, "price": 67083.0, "days_since": 438, "cumul_btc": 0.61519154}, {"ts": 1770850800000, "rolling_sats": 224697.0, "btc_val": 0.00224697, "price": 66272.0, "days_since": 439, "cumul_btc": 0.61519154}, {"ts": 1770937200000, "rolling_sats": 224697.0, "btc_val": 0.00224697, "price": 68854.0, "days_since": 440, "cumul_btc": 0.61519154}, {"ts": 1771023600000, "rolling_sats": 296565.0, "btc_val": 0.00296565, "price": 69823.0, "days_since": 441, "cumul_btc": 0.63675202}, {"ts": 1771110000000, "rolling_sats": 296565.0, "btc_val": 0.00296565, "price": 68833.0, "days_since": 442, "cumul_btc": 0.63675202}, {"ts": 1771196400000, "rolling_sats": 296565.0, "btc_val": 0.00296565, "price": 68892.0, "days_since": 443, "cumul_btc": 0.63675202}, {"ts": 1771282800000, "rolling_sats": 296565.0, "btc_val": 0.00296565, "price": 67504.0, "days_since": 444, "cumul_btc": 0.63675202}, {"ts": 1771369200000, "rolling_sats": 296565.0, "btc_val": 0.00296565, "price": 66461.0, "days_since": 445, "cumul_btc": 0.63675202}, {"ts": 1771455600000, "rolling_sats": 296565.0, "btc_val": 0.00296565, "price": 67004.0, "days_since": 446, "cumul_btc": 0.63675202}, {"ts": 1771542000000, "rolling_sats": 296565.0, "btc_val": 0.00296565, "price": 68020.0, "days_since": 447, "cumul_btc": 0.63675202}, {"ts": 1771628400000, "rolling_sats": 394785.0, "btc_val": 0.00394785, "price": 67976.0, "days_since": 448, "cumul_btc": 0.66621788}, {"ts": 1771714800000, "rolling_sats": 394785.0, "btc_val": 0.00394785, "price": 67643.0, "days_since": 449, "cumul_btc": 0.66621788}, {"ts": 1771801200000, "rolling_sats": 361263.0, "btc_val": 0.00361263, "price": 64656.0, "days_since": 450, "cumul_btc": 0.66621788}, {"ts": 1771887600000, "rolling_sats": 361263.0, "btc_val": 0.00361263, "price": 64058.0, "days_since": 451, "cumul_btc": 0.66621788}, {"ts": 1771974000000, "rolling_sats": 361263.0, "btc_val": 0.00361263, "price": 67988.0, "days_since": 452, "cumul_btc": 0.66621788}, {"ts": 1772060400000, "rolling_sats": 361263.0, "btc_val": 0.00361263, "price": 67485.0, "days_since": 453, "cumul_btc": 0.66621788}, {"ts": 1772146800000, "rolling_sats": 361263.0, "btc_val": 0.00361263, "price": 65872.0, "days_since": 454, "cumul_btc": 0.66621788}, {"ts": 1772233200000, "rolling_sats": 465467.0, "btc_val": 0.00465467, "price": 66973.0, "days_since": 455, "cumul_btc": 0.69747883}, {"ts": 1772319600000, "rolling_sats": 465467.0, "btc_val": 0.00465467, "price": 65776.0, "days_since": 456, "cumul_btc": 0.69747883}, {"ts": 1772406000000, "rolling_sats": 425636.0, "btc_val": 0.00425636, "price": 68830.0, "days_since": 457, "cumul_btc": 0.69747883}, {"ts": 1772492400000, "rolling_sats": 404439.0, "btc_val": 0.00404439, "price": 68338.0, "days_since": 458, "cumul_btc": 0.69747883}, {"ts": 1772578800000, "rolling_sats": 404439.0, "btc_val": 0.00404439, "price": 72667.0, "days_since": 459, "cumul_btc": 0.69747883}, {"ts": 1772665200000, "rolling_sats": 404439.0, "btc_val": 0.00404439, "price": 70891.0, "days_since": 460, "cumul_btc": 0.69747883}, {"ts": 1772751600000, "rolling_sats": 404439.0, "btc_val": 0.00404439, "price": 68114.0, "days_since": 461, "cumul_btc": 0.69747883}, {"ts": 1772838000000, "rolling_sats": 404439.0, "btc_val": 0.00404439, "price": 67263.0, "days_since": 462, "cumul_btc": 0.69747883}, {"ts": 1772924400000, "rolling_sats": 323226.0, "btc_val": 0.00323226, "price": 65971.0, "days_since": 463, "cumul_btc": 0.69747883}, {"ts": 1773010800000, "rolling_sats": 274291.0, "btc_val": 0.00274291, "price": 68432.0, "days_since": 464, "cumul_btc": 0.69747883}, {"ts": 1773097200000, "rolling_sats": 274291.0, "btc_val": 0.00274291, "price": 69949.0, "days_since": 465, "cumul_btc": 0.69747883}, {"ts": 1773183600000, "rolling_sats": 274291.0, "btc_val": 0.00274291, "price": 70192.0, "days_since": 466, "cumul_btc": 0.69747883}, {"ts": 1773270000000, "rolling_sats": 274291.0, "btc_val": 0.00274291, "price": 70541.0, "days_since": 467, "cumul_btc": 0.69747883}, {"ts": 1773356400000, "rolling_sats": 274291.0, "btc_val": 0.00274291, "price": 70930.0, "days_since": 468, "cumul_btc": 0.69747883}, {"ts": 1773442800000, "rolling_sats": 368740.0, "btc_val": 0.0036874, "price": 71212.0, "days_since": 469, "cumul_btc": 0.72581346}, {"ts": 1773529200000, "rolling_sats": 368740.0, "btc_val": 0.0036874, "price": 72815.0, "days_since": 470, "cumul_btc": 0.72581346}, {"ts": 1773615600000, "rolling_sats": 296871.0, "btc_val": 0.00296871, "price": 74885.0, "days_since": 471, "cumul_btc": 0.72581346}, {"ts": 1773702000000, "rolling_sats": 296871.0, "btc_val": 0.00296871, "price": 73909.0, "days_since": 472, "cumul_btc": 0.72581346}, {"ts": 1773788400000, "rolling_sats": 296871.0, "btc_val": 0.00296871, "price": 71247.0, "days_since": 473, "cumul_btc": 0.72581346}, {"ts": 1773874800000, "rolling_sats": 296871.0, "btc_val": 0.00296871, "price": 69930.0, "days_since": 474, "cumul_btc": 0.72581346}, {"ts": 1773961200000, "rolling_sats": 296871.0, "btc_val": 0.00296871, "price": 70511.0, "days_since": 475, "cumul_btc": 0.72581346}, {"ts": 1774047600000, "rolling_sats": 296871.0, "btc_val": 0.00296871, "price": 68918.0, "days_since": 476, "cumul_btc": 0.72581346}, {"ts": 1774134000000, "rolling_sats": 393183.0, "btc_val": 0.00393183, "price": 67859.0, "days_since": 477, "cumul_btc": 0.75470697}, {"ts": 1774220400000, "rolling_sats": 294964.0, "btc_val": 0.00294964, "price": 70906.0, "days_since": 478, "cumul_btc": 0.75470697}, {"ts": 1774306800000, "rolling_sats": 294964.0, "btc_val": 0.00294964, "price": 70557.0, "days_since": 479, "cumul_btc": 0.75470697}, {"ts": 1774393200000, "rolling_sats": 294964.0, "btc_val": 0.00294964, "price": 71337.0, "days_since": 480, "cumul_btc": 0.75470697}, {"ts": 1774479600000, "rolling_sats": 294964.0, "btc_val": 0.00294964, "price": 68820.0, "days_since": 481, "cumul_btc": 0.75470697}, {"ts": 1774566000000, "rolling_sats": 345550.0, "btc_val": 0.0034555, "price": 66407.0, "days_since": 482, "cumul_btc": 0.7698828}, {"ts": 1774652400000, "rolling_sats": 345550.0, "btc_val": 0.0034555, "price": 66377.0, "days_since": 483, "cumul_btc": 0.7698828}, {"ts": 1774738800000, "rolling_sats": 345550.0, "btc_val": 0.0034555, "price": 66011.0, "days_since": 484, "cumul_btc": 0.7698828}, {"ts": 1774821600000, "rolling_sats": 241347.0, "btc_val": 0.00241347, "price": 66797.0, "days_since": 485, "cumul_btc": 0.7698828}, {"ts": 1774908000000, "rolling_sats": 241347.0, "btc_val": 0.00241347, "price": 68284.0, "days_since": 486, "cumul_btc": 0.7698828}, {"ts": 1774994400000, "rolling_sats": 241347.0, "btc_val": 0.00241347, "price": 68114.0, "days_since": 487, "cumul_btc": 0.7698828}, {"ts": 1775080800000, "rolling_sats": 241347.0, "btc_val": 0.00241347, "price": 66902.0, "days_since": 488, "cumul_btc": 0.7698828}, {"ts": 1775167200000, "rolling_sats": 241347.0, "btc_val": 0.00241347, "price": 66964.0, "days_since": 489, "cumul_btc": 0.7698828}, {"ts": 1775253600000, "rolling_sats": 241347.0, "btc_val": 0.00241347, "price": 67300.0, "days_since": 490, "cumul_btc": 0.7698828}, {"ts": 1775340000000, "rolling_sats": 291222.0, "btc_val": 0.00291222, "price": 69034.0, "days_since": 491, "cumul_btc": 0.78484539}, {"ts": 1775426400000, "rolling_sats": 291222.0, "btc_val": 0.00291222, "price": 68854.0, "days_since": 492, "cumul_btc": 0.78484539}, {"ts": 1775512800000, "rolling_sats": 291222.0, "btc_val": 0.00291222, "price": 71924.0, "days_since": 493, "cumul_btc": 0.78484539}, {"ts": 1775599200000, "rolling_sats": 291222.0, "btc_val": 0.00291222, "price": 71070.0, "days_since": 494, "cumul_btc": 0.78484539}, {"ts": 1775685600000, "rolling_sats": 291222.0, "btc_val": 0.00291222, "price": 71788.0, "days_since": 495, "cumul_btc": 0.78484539}, {"ts": 1775772000000, "rolling_sats": 291222.0, "btc_val": 0.00291222, "price": 72963.0, "days_since": 496, "cumul_btc": 0.78484539}, {"ts": 1775858400000, "rolling_sats": 317889.0, "btc_val": 0.00317889, "price": 73043.0, "days_since": 497, "cumul_btc": 0.79284539}, {"ts": 1775944800000, "rolling_sats": 317889.0, "btc_val": 0.00317889, "price": 70741.0, "days_since": 498, "cumul_btc": 0.79284539}, {"ts": 1776031200000, "rolling_sats": 223440.0, "btc_val": 0.0022344, "price": 74418.0, "days_since": 499, "cumul_btc": 0.79284539}, {"ts": 1776117600000, "rolling_sats": 223440.0, "btc_val": 0.0022344, "price": 74132.0, "days_since": 500, "cumul_btc": 0.79284539}, {"ts": 1776204000000, "rolling_sats": 223440.0, "btc_val": 0.0022344, "price": 74810.0, "days_since": 501, "cumul_btc": 0.79284539}, {"ts": 1776290400000, "rolling_sats": 223440.0, "btc_val": 0.0022344, "price": 75154.0, "days_since": 502, "cumul_btc": 0.79284539}, {"ts": 1776376800000, "rolling_sats": 223440.0, "btc_val": 0.0022344, "price": 77072.0, "days_since": 503, "cumul_btc": 0.79284539}, {"ts": 1776463200000, "rolling_sats": 248134.0, "btc_val": 0.00248134, "price": 75692.0, "days_since": 504, "cumul_btc": 0.8002537}, {"ts": 1776549600000, "rolling_sats": 248134.0, "btc_val": 0.00248134, "price": 73802.0, "days_since": 505, "cumul_btc": 0.8002537}, {"ts": 1776636000000, "rolling_sats": 248134.0, "btc_val": 0.00248134, "price": 75841.0, "days_since": 506, "cumul_btc": 0.6182537}, {"ts": 1776722400000, "rolling_sats": 151822.0, "btc_val": 0.00151822, "price": 76336.0, "days_since": 507, "cumul_btc": 0.6182537}, {"ts": 1776808800000, "rolling_sats": 151822.0, "btc_val": 0.00151822, "price": 78178.0, "days_since": 508, "cumul_btc": 0.6182537}, {"ts": 1776895200000, "rolling_sats": 151822.0, "btc_val": 0.00151822, "price": 78257.0, "days_since": 509, "cumul_btc": 0.6182537}, {"ts": 1776981600000, "rolling_sats": 151822.0, "btc_val": 0.00151822, "price": 77437.0, "days_since": 510, "cumul_btc": 0.6182537}, {"ts": 1777068000000, "rolling_sats": 196855.0, "btc_val": 0.00196855, "price": 77625.0, "days_since": 511, "cumul_btc": 0.63176342}, {"ts": 1777154400000, "rolling_sats": 146269.0, "btc_val": 0.00146269, "price": 78658.0, "days_since": 512, "cumul_btc": 0.63176342}, {"ts": 1777240800000, "rolling_sats": 146269.0, "btc_val": 0.00146269, "price": 77371.0, "days_since": 513, "cumul_btc": 0.63176342}, {"ts": 1777327200000, "rolling_sats": 146269.0, "btc_val": 0.00146269, "price": 76343.0, "days_since": 514, "cumul_btc": 0.63176342}, {"ts": 1777413600000, "rolling_sats": 146269.0, "btc_val": 0.00146269, "price": 75780.0, "days_since": 515, "cumul_btc": 0.63176342}, {"ts": 1777500000000, "rolling_sats": 146269.0, "btc_val": 0.00146269, "price": 76347.0, "days_since": 516, "cumul_btc": 0.63176342}, {"ts": 1777586400000, "rolling_sats": 146269.0, "btc_val": 0.00146269, "price": 78231.0, "days_since": 517, "cumul_btc": 0.63176342}, {"ts": 1777672800000, "rolling_sats": 146269.0, "btc_val": 0.00146269, "price": 78687.0, "days_since": 518, "cumul_btc": 0.63176342}, {"ts": 1777759200000, "rolling_sats": 187432.0, "btc_val": 0.00187432, "price": 78569.0, "days_since": 519, "cumul_btc": 0.64411251}, {"ts": 1777845600000, "rolling_sats": 187432.0, "btc_val": 0.00187432, "price": 79861.0, "days_since": 520, "cumul_btc": 0.64411251}, {"ts": 1777932000000, "rolling_sats": 137557.0, "btc_val": 0.00137557, "price": 80906.0, "days_since": 521, "cumul_btc": 0.64411251}, {"ts": 1778018400000, "rolling_sats": 137557.0, "btc_val": 0.00137557, "price": 81447.0, "days_since": 522, "cumul_btc": 0.64411251}, {"ts": 1778104800000, "rolling_sats": 137557.0, "btc_val": 0.00137557, "price": 80006.0, "days_since": 523, "cumul_btc": 0.64411251}, {"ts": 1778191200000, "rolling_sats": 137557.0, "btc_val": 0.00137557, "price": 80193.0, "days_since": 524, "cumul_btc": 0.64411251}, {"ts": 1778277600000, "rolling_sats": 148633.0, "btc_val": 0.00148633, "price": 80678.0, "days_since": 525, "cumul_btc": 0.64743518}, {"ts": 1778364000000, "rolling_sats": 194342.0, "btc_val": 0.00194342, "price": 82210.0, "days_since": 526, "cumul_btc": 0.66114785}, {"ts": 1778450400000, "rolling_sats": 167675.0, "btc_val": 0.00167675, "price": 81746.0, "days_since": 527, "cumul_btc": 0.66114785}, {"ts": 1778536800000, "rolling_sats": 167675.0, "btc_val": 0.00167675, "price": 80504.0, "days_since": 528, "cumul_btc": 0.66114785}, {"ts": 1778623200000, "rolling_sats": 167675.0, "btc_val": 0.00167675, "price": 79314.0, "days_since": 529, "cumul_btc": 0.66114785}, {"ts": 1778709600000, "rolling_sats": 167675.0, "btc_val": 0.00167675, "price": 81090.0, "days_since": 530, "cumul_btc": 0.66114785}, {"ts": 1778796000000, "rolling_sats": 167675.0, "btc_val": 0.00167675, "price": 79113.0, "days_since": 531, "cumul_btc": 0.66114785}, {"ts": 1778882400000, "rolling_sats": 222366.0, "btc_val": 0.00222366, "price": 78148.0, "days_since": 532, "cumul_btc": 0.67755506}, {"ts": 1778968800000, "rolling_sats": 222366.0, "btc_val": 0.00222366, "price": 77458.0, "days_since": 533, "cumul_btc": 0.67755506}, {"ts": 1779055200000, "rolling_sats": 197671.0, "btc_val": 0.00197671, "price": 77002.0, "days_since": 534, "cumul_btc": 0.67755506}, {"ts": 1779141600000, "rolling_sats": 197671.0, "btc_val": 0.00197671, "price": 76834.0, "days_since": 535, "cumul_btc": 0.67755506}, {"ts": 1779228000000, "rolling_sats": 197671.0, "btc_val": 0.00197671, "price": 77552.0, "days_since": 536, "cumul_btc": 0.67755506}, {"ts": 1779314400000, "rolling_sats": 197671.0, "btc_val": 0.00197671, "price": 77947.0, "days_since": 537, "cumul_btc": 0.67755506}];
const aaveCumulData = [[1732057200000, 0.0], [1732143600000, 0.0], [1732230000000, 0.0], [1732316400000, 0.0], [1732402800000, 0.0], [1732489200000, 0.0], [1732575600000, 0.0], [1732662000000, 0.0], [1732748400000, 0.0], [1732834800000, 0.0], [1732921200000, 0.0], [1733007600000, 0.0], [1733094000000, 0.0], [1733180400000, 0.0], [1733266800000, 0.0], [1733353200000, 0.0], [1733439600000, 0.0], [1733526000000, 0.0], [1733612400000, 0.0], [1733698800000, 0.0], [1733785200000, 0.0], [1733871600000, 0.0], [1733958000000, 0.0], [1734044400000, 0.0], [1734130800000, 0.0], [1734217200000, 0.0], [1734303600000, 0.0], [1734390000000, 0.0], [1734476400000, 0.0], [1734562800000, 0.0], [1734649200000, 0.0], [1734735600000, 0.0], [1734822000000, 0.0], [1734908400000, 0.0], [1734994800000, 0.0], [1735081200000, 0.0], [1735167600000, 0.0], [1735254000000, 0.0], [1735340400000, 0.0], [1735426800000, 0.0], [1735513200000, 0.0], [1735599600000, 0.0], [1735686000000, 0.0], [1735772400000, 0.0], [1735858800000, 0.0], [1735945200000, 0.0], [1736031600000, 0.0], [1736118000000, 0.0], [1736204400000, 0.0], [1736290800000, 0.0], [1736377200000, 0.0], [1736463600000, 0.0], [1736550000000, 0.0], [1736636400000, 0.0], [1736722800000, 0.0], [1736809200000, 0.0], [1736895600000, 0.0], [1736982000000, 0.0], [1737068400000, 0.0], [1737154800000, 0.0], [1737241200000, 0.0], [1737327600000, 0.0], [1737414000000, 0.0], [1737500400000, 0.0], [1737586800000, 0.0], [1737673200000, 0.0], [1737759600000, 0.0], [1737846000000, 0.0], [1737932400000, 0.0], [1738018800000, 0.0], [1738105200000, 0.0], [1738191600000, 0.0], [1738278000000, 0.0], [1738364400000, 0.0], [1738450800000, 0.0], [1738537200000, 0.0], [1738623600000, 0.0], [1738710000000, 0.0], [1738796400000, 0.0], [1738882800000, 0.0], [1738969200000, 0.0], [1739055600000, 0.0], [1739142000000, 0.0], [1739228400000, 0.0], [1739314800000, 0.0], [1739401200000, 0.0], [1739487600000, 0.0], [1739574000000, 0.0], [1739660400000, 0.0], [1739746800000, 0.0], [1739833200000, 0.0], [1739919600000, 0.0], [1740006000000, 0.0], [1740092400000, 0.0], [1740178800000, 0.0], [1740265200000, 0.0], [1740351600000, 0.0], [1740438000000, 0.0], [1740524400000, 0.0], [1740610800000, 0.0], [1740697200000, 0.0], [1740783600000, 0.0], [1740870000000, 0.0], [1740956400000, 0.0], [1741042800000, 0.0], [1741129200000, 0.0], [1741215600000, 0.0], [1741302000000, 0.0], [1741388400000, 0.0], [1741474800000, 0.0], [1741561200000, 0.0], [1741647600000, 0.0], [1741734000000, 0.0], [1741820400000, 0.0], [1741906800000, 0.0], [1741993200000, 0.0], [1742079600000, 0.0], [1742166000000, 0.0], [1742252400000, 0.0], [1742338800000, 0.0], [1742425200000, 0.0], [1742511600000, 0.0], [1742598000000, 0.0], [1742684400000, 0.0], [1742770800000, 0.0], [1742857200000, 0.0], [1742943600000, 0.0], [1743030000000, 0.0], [1743116400000, 0.0], [1743202800000, 0.0], [1743289200000, 0.0], [1743372000000, 0.0], [1743458400000, 0.0], [1743544800000, 0.0], [1743631200000, 0.0], [1743717600000, 0.0], [1743804000000, 0.0], [1743890400000, 0.0], [1743976800000, 0.0], [1744063200000, 0.0], [1744149600000, 0.0], [1744236000000, 0.0], [1744322400000, 0.0], [1744408800000, 0.0], [1744495200000, 0.0], [1744581600000, 0.0], [1744668000000, 0.0], [1744754400000, 0.0], [1744840800000, 0.0], [1744927200000, 0.0], [1745013600000, 0.0], [1745100000000, 0.0], [1745186400000, 0.0], [1745272800000, 0.0], [1745359200000, 0.0], [1745445600000, 0.0], [1745532000000, 0.0], [1745618400000, 0.0], [1745704800000, 0.0], [1745791200000, 0.0], [1745877600000, 0.0], [1745964000000, 0.0], [1746050400000, 0.0], [1746136800000, 0.0], [1746223200000, 0.0], [1746309600000, 0.0], [1746396000000, 0.0], [1746482400000, 0.0], [1746568800000, 0.0], [1746655200000, 0.0], [1746741600000, 0.0], [1746828000000, 0.0], [1746914400000, 0.0], [1747000800000, 0.0], [1747087200000, 0.0], [1747173600000, 0.0], [1747260000000, 0.0], [1747346400000, 0.0], [1747432800000, 0.0], [1747519200000, 0.0], [1747605600000, 0.0], [1747692000000, 0.0], [1747778400000, 0.0], [1747864800000, 0.0], [1747951200000, 0.0], [1748037600000, 0.0], [1748124000000, 0.0], [1748210400000, 0.0], [1748296800000, 0.0], [1748383200000, 0.0], [1748469600000, 0.0], [1748556000000, 0.0], [1748642400000, 0.0], [1748728800000, 0.0], [1748815200000, 0.0], [1748901600000, 0.0], [1748988000000, 0.0], [1749074400000, 0.0], [1749160800000, 0.0], [1749247200000, 0.0], [1749333600000, 0.0], [1749420000000, 0.0], [1749506400000, 0.0], [1749592800000, 0.0], [1749679200000, 0.0], [1749765600000, 0.0], [1749852000000, 0.0], [1749938400000, 0.0], [1750024800000, 0.0], [1750111200000, 0.0], [1750197600000, 0.0], [1750284000000, 0.0], [1750370400000, 0.0], [1750456800000, 0.0], [1750543200000, 0.0], [1750629600000, 0.0], [1750716000000, 0.0], [1750802400000, 0.0], [1750888800000, 0.0], [1750975200000, 0.0], [1751061600000, 0.0], [1751148000000, 0.0], [1751234400000, 0.0], [1751320800000, 0.0], [1751407200000, 0.0], [1751493600000, 0.0], [1751580000000, 0.0], [1751666400000, 0.0], [1751752800000, 0.0], [1751839200000, 0.0], [1751925600000, 0.0], [1752012000000, 0.0], [1752098400000, 0.0], [1752184800000, 0.0], [1752271200000, 0.0], [1752357600000, 0.0], [1752444000000, 0.0], [1752530400000, 0.0], [1752616800000, 0.0], [1752703200000, 0.0], [1752789600000, 0.0], [1752876000000, 0.0], [1752962400000, 0.0], [1753048800000, 0.0], [1753135200000, 0.0], [1753221600000, 0.0], [1753308000000, 0.0], [1753394400000, 0.0], [1753480800000, 0.0], [1753567200000, 0.0], [1753653600000, 0.0], [1753740000000, 0.0], [1753826400000, 0.0], [1753912800000, 0.0], [1753999200000, 0.0], [1754085600000, 0.0], [1754172000000, 0.0], [1754258400000, 0.0], [1754344800000, 0.0], [1754431200000, 0.0], [1754517600000, 0.0], [1754604000000, 0.0], [1754690400000, 0.0], [1754776800000, 0.0], [1754863200000, 0.0], [1754949600000, 0.0], [1755036000000, 0.0], [1755122400000, 0.0], [1755208800000, 0.0], [1755295200000, 0.0], [1755381600000, 0.0], [1755468000000, 0.0], [1755554400000, 0.0], [1755640800000, 0.0], [1755727200000, 0.0], [1755813600000, 0.0], [1755900000000, 0.0], [1755986400000, 0.0], [1756072800000, 0.0], [1756159200000, 0.0], [1756245600000, 0.0], [1756332000000, 0.0], [1756418400000, 0.0], [1756504800000, 0.0], [1756591200000, 0.0], [1756677600000, 0.0], [1756764000000, 0.0], [1756850400000, 0.08080429], [1756936800000, 0.08080429], [1757023200000, 0.08080429], [1757109600000, 0.08080429], [1757196000000, 0.08080429], [1757282400000, 0.08080429], [1757368800000, 0.08080429], [1757455200000, 0.08080429], [1757541600000, 0.08080429], [1757628000000, 0.08080429], [1757714400000, 0.08080429], [1757800800000, 0.08080429], [1757887200000, 0.08080429], [1757973600000, 0.08080429], [1758060000000, 0.08080429], [1758146400000, 0.08080429], [1758232800000, 0.08080429], [1758319200000, 0.08080429], [1758405600000, 0.08080429], [1758492000000, 0.08080429], [1758578400000, 0.08080429], [1758664800000, 0.08080429], [1758751200000, 0.08080429], [1758837600000, 0.08080429], [1758924000000, 0.08168511], [1759010400000, 0.08168511], [1759096800000, 0.08175921], [1759183200000, 0.08175921], [1759269600000, 0.20172899], [1759356000000, 0.20172899], [1759442400000, 0.20172899], [1759528800000, 0.20172899], [1759615200000, 0.20172899], [1759701600000, 0.20172899], [1759788000000, 0.20172899], [1759874400000, 0.20172899], [1759960800000, 0.20172899], [1760047200000, 0.20172899], [1760133600000, 0.20172899], [1760220000000, 0.20172899], [1760306400000, 0.20414761], [1760392800000, 0.20472543], [1760479200000, 0.20525551], [1760565600000, 0.20566003], [1760652000000, 0.20566003], [1760738400000, 0.20602549], [1760824800000, 0.20660387], [1760911200000, 0.20660387], [1760997600000, 0.20718455], [1761084000000, 0.20755286], [1761170400000, 0.43657462], [1761256800000, 0.43668753], [1761343200000, 0.43709236], [1761429600000, 0.43719044], [1761519600000, 0.43728609], [1761606000000, 0.43728609], [1761692400000, 0.43874819], [1761778800000, 0.43999645], [1761865200000, 0.4418315], [1761951600000, 0.44271282], [1762038000000, 0.44271282], [1762124400000, 0.44391317], [1762210800000, 0.48159628], [1762297200000, 0.48159628], [1762383600000, 0.4824998], [1762470000000, 0.48278532], [1762556400000, 0.48310227], [1762642800000, 0.48360682], [1762729200000, 0.48360682], [1762815600000, 0.48468464], [1762902000000, 0.48522145], [1762988400000, 0.48607397], [1763074800000, 0.48651247], [1763161200000, 0.48681102], [1763247600000, 0.48681102], [1763334000000, 0.4876055], [1763420400000, 0.48789055], [1763506800000, 0.48817511], [1763593200000, 0.48871535], [1763679600000, 0.48898109], [1763766000000, 0.48925265], [1763852400000, 0.4895466], [1763938800000, 0.48979257], [1764025200000, 0.49006804], [1764111600000, 0.49035501], [1764198000000, 0.49083858], [1764284400000, 0.49110807], [1764370800000, 0.49110807], [1764457200000, 0.49110807], [1764543600000, 0.49191362], [1764630000000, 0.49220937], [1764716400000, 0.49248597], [1764802800000, 0.49312275], [1764889200000, 0.49312275], [1764975600000, 0.49368348], [1765062000000, 0.49398749], [1765148400000, 0.49424024], [1765234800000, 0.49451712], [1765321200000, 0.49478958], [1765407600000, 0.49540263], [1765494000000, 0.4956894], [1765580400000, 0.49595752], [1765666800000, 0.49595752], [1765753200000, 0.49651571], [1765839600000, 0.49675357], [1765926000000, 0.49701074], [1766012400000, 0.49701074], [1766098800000, 0.49701074], [1766185200000, 0.49701074], [1766271600000, 0.49701074], [1766358000000, 0.49701074], [1766444400000, 0.49701074], [1766530800000, 0.49701074], [1766617200000, 0.49701074], [1766703600000, 0.49701074], [1766790000000, 0.49701074], [1766876400000, 0.49701074], [1766962800000, 0.49701074], [1767049200000, 0.49701074], [1767135600000, 0.49701074], [1767222000000, 0.49701074], [1767308400000, 0.49701074], [1767394800000, 0.49701074], [1767481200000, 0.49701074], [1767567600000, 0.49701074], [1767654000000, 0.49701074], [1767740400000, 0.49701074], [1767826800000, 0.49701074], [1767913200000, 0.49701074], [1767999600000, 0.49701074], [1768086000000, 0.49701074], [1768172400000, 0.49701074], [1768258800000, 0.49701074], [1768345200000, 0.49701074], [1768431600000, 0.49701074], [1768518000000, 0.49701074], [1768604400000, 0.49701074], [1768690800000, 0.49701074], [1768777200000, 0.49701074], [1768863600000, 0.49701074], [1768950000000, 0.49701074], [1769036400000, 0.49701074], [1769122800000, 0.49701074], [1769209200000, 0.5071037], [1769295600000, 0.5071037], [1769382000000, 0.5071037], [1769468400000, 0.5071037], [1769554800000, 0.5071037], [1769641200000, 0.5071037], [1769727600000, 0.5071037], [1769814000000, 0.51905687], [1769900400000, 0.52541793], [1769986800000, 0.52541793], [1770073200000, 0.52541793], [1770159600000, 0.52541793], [1770246000000, 0.52541793], [1770332400000, 0.52541793], [1770418800000, 0.54010267], [1770505200000, 0.54010267], [1770591600000, 0.54010267], [1770678000000, 0.54010267], [1770764400000, 0.54010267], [1770850800000, 0.54010267], [1770937200000, 0.54010267], [1771023600000, 0.56167046], [1771110000000, 0.56167046], [1771196400000, 0.56167046], [1771282800000, 0.56167046], [1771369200000, 0.56167046], [1771455600000, 0.56167046], [1771542000000, 0.56167046], [1771628400000, 0.59114057], [1771714800000, 0.59114057], [1771801200000, 0.59114057], [1771887600000, 0.59114057], [1771974000000, 0.59114057], [1772060400000, 0.59114057], [1772146800000, 0.59114057], [1772233200000, 0.62240404], [1772319600000, 0.62240404], [1772406000000, 0.62240404], [1772492400000, 0.62240404], [1772578800000, 0.62240404], [1772665200000, 0.62240404], [1772751600000, 0.62240404], [1772838000000, 0.62240404], [1772924400000, 0.62240404], [1773010800000, 0.62240404], [1773097200000, 0.62240404], [1773183600000, 0.62240404], [1773270000000, 0.62240404], [1773356400000, 0.62240404], [1773442800000, 0.65074537], [1773529200000, 0.65074537], [1773615600000, 0.65074537], [1773702000000, 0.65074537], [1773788400000, 0.65074537], [1773874800000, 0.65074537], [1773961200000, 0.65074537], [1774047600000, 0.65074537], [1774134000000, 0.6796429], [1774220400000, 0.6796429], [1774306800000, 0.6796429], [1774393200000, 0.6796429], [1774479600000, 0.6796429], [1774566000000, 0.69482047], [1774652400000, 0.69482047], [1774738800000, 0.69482047], [1774821600000, 0.69482047], [1774908000000, 0.69482047], [1774994400000, 0.69482047], [1775080800000, 0.69482047], [1775167200000, 0.69482047], [1775253600000, 0.69482047], [1775340000000, 0.70978824], [1775426400000, 0.70978824], [1775512800000, 0.70978824], [1775599200000, 0.70978824], [1775685600000, 0.70978824], [1775772000000, 0.70978824], [1775858400000, 0.7177915], [1775944800000, 0.7177915], [1776031200000, 0.7177915], [1776117600000, 0.7177915], [1776204000000, 0.7177915], [1776290400000, 0.7177915], [1776376800000, 0.7177915], [1776463200000, 0.72520321], [1776549600000, 0.72520321], [1776636000000, -0.0], [1776722400000, -0.0], [1776808800000, -0.0], [1776895200000, -0.0], [1776981600000, -0.0], [1777068000000, 0.03093018], [1777154400000, 0.03093018], [1777240800000, 0.03093018], [1777327200000, 0.03093018], [1777413600000, 0.03093018], [1777500000000, 0.03093018], [1777586400000, 0.03093018], [1777672800000, 0.03093018], [1777759200000, 0.05277759], [1777845600000, 0.05277759], [1777932000000, 0.05277759], [1778018400000, 0.05277759], [1778104800000, 0.05277759], [1778191200000, 0.05277759], [1778277600000, 0.06077767], [1778364000000, 0.07449034], [1778450400000, 0.07449034], [1778536800000, 0.07449034], [1778623200000, 0.07449034], [1778709600000, 0.07449034], [1778796000000, 0.07449034], [1778882400000, 0.09646095], [1778968800000, 0.09646095], [1779055200000, 0.09646095], [1779141600000, 0.09646095], [1779228000000, 0.09646095], [1779314400000, 0.09646095]];
const directCumulData = [[1732057200000, 0.0], [1732143600000, 0.0], [1732230000000, 0.0], [1732316400000, 0.0], [1732402800000, 0.0], [1732489200000, 0.0], [1732575600000, 0.0], [1732662000000, 0.0], [1732748400000, 0.0], [1732834800000, 0.0], [1732921200000, 0.00045671], [1733007600000, 0.00068314], [1733094000000, 0.00103581], [1733180400000, 0.00154653], [1733266800000, 0.00203502], [1733353200000, 0.00245059], [1733439600000, 0.0027401], [1733526000000, 0.0027401], [1733612400000, 0.0027401], [1733698800000, 0.0027401], [1733785200000, 0.00331277], [1733871600000, 0.00331277], [1733958000000, 0.00352929], [1734044400000, 0.00352929], [1734130800000, 0.00437782], [1734217200000, 0.00437782], [1734303600000, 0.00437782], [1734390000000, 0.00437782], [1734476400000, 0.00437782], [1734562800000, 0.00437782], [1734649200000, 0.00437782], [1734735600000, 0.00437782], [1734822000000, 0.00483383], [1734908400000, 0.00483383], [1734994800000, 0.00483383], [1735081200000, 0.00483383], [1735167600000, 0.00483383], [1735254000000, 0.00483383], [1735340400000, 0.00688418], [1735426800000, 0.00688418], [1735513200000, 0.00688418], [1735599600000, 0.00688418], [1735686000000, 0.00688418], [1735772400000, 0.00688418], [1735858800000, 0.00688418], [1735945200000, 0.00688418], [1736031600000, 0.00688418], [1736118000000, 0.00688418], [1736204400000, 0.00688418], [1736290800000, 0.00753678], [1736377200000, 0.00753678], [1736463600000, 0.00825444], [1736550000000, 0.00825444], [1736636400000, 0.00825444], [1736722800000, 0.0084866], [1736809200000, 0.0084866], [1736895600000, 0.0084866], [1736982000000, 0.0084866], [1737068400000, 0.0084866], [1737154800000, 0.0084866], [1737241200000, 0.0084866], [1737327600000, 0.0084866], [1737414000000, 0.0084866], [1737500400000, 0.0084866], [1737586800000, 0.0088232], [1737673200000, 0.0088232], [1737759600000, 0.0088232], [1737846000000, 0.0088232], [1737932400000, 0.00947181], [1738018800000, 0.00947181], [1738105200000, 0.00987744], [1738191600000, 0.01019638], [1738278000000, 0.01019638], [1738364400000, 0.01019638], [1738450800000, 0.01019638], [1738537200000, 0.09168322], [1738623600000, 0.0], [1738710000000, 0.0], [1738796400000, 0.0], [1738882800000, 0.0], [1738969200000, 0.0], [1739055600000, 0.0], [1739142000000, 0.0], [1739228400000, 0.0], [1739314800000, 0.0], [1739401200000, 0.0], [1739487600000, 0.0], [1739574000000, 0.0], [1739660400000, 0.0], [1739746800000, 0.0], [1739833200000, 0.0], [1739919600000, 0.0], [1740006000000, 0.0], [1740092400000, 0.0], [1740178800000, 0.0], [1740265200000, 0.0], [1740351600000, 0.0], [1740438000000, 0.0], [1740524400000, 0.0], [1740610800000, 0.0], [1740697200000, 0.0], [1740783600000, 0.0], [1740870000000, 0.0], [1740956400000, 0.0], [1741042800000, 0.0], [1741129200000, 0.0], [1741215600000, 0.0], [1741302000000, 0.0], [1741388400000, 0.0], [1741474800000, 0.0], [1741561200000, 0.0], [1741647600000, 0.0], [1741734000000, 0.0], [1741820400000, 0.0], [1741906800000, 0.0], [1741993200000, 0.0], [1742079600000, 0.0], [1742166000000, 0.0], [1742252400000, 0.0], [1742338800000, 0.0], [1742425200000, 0.0], [1742511600000, 0.0], [1742598000000, 0.0], [1742684400000, 0.0], [1742770800000, 0.0], [1742857200000, 0.0], [1742943600000, 0.0], [1743030000000, 0.0], [1743116400000, 0.0], [1743202800000, 0.0], [1743289200000, 0.0], [1743372000000, 0.0], [1743458400000, 0.0], [1743544800000, 0.0], [1743631200000, 0.0], [1743717600000, 0.0], [1743804000000, 0.0], [1743890400000, 0.0], [1743976800000, 0.0], [1744063200000, 0.0], [1744149600000, 0.0], [1744236000000, 0.0], [1744322400000, 0.0], [1744408800000, 0.0], [1744495200000, 0.0], [1744581600000, 0.0], [1744668000000, 0.0], [1744754400000, 0.0], [1744840800000, 0.0], [1744927200000, 0.0], [1745013600000, 0.0], [1745100000000, 0.0], [1745186400000, 0.0], [1745272800000, 0.0], [1745359200000, 0.0], [1745445600000, 0.0], [1745532000000, 0.0], [1745618400000, 0.0], [1745704800000, 0.0], [1745791200000, 0.0], [1745877600000, 0.0], [1745964000000, 0.0], [1746050400000, 0.0], [1746136800000, 0.0], [1746223200000, 0.0], [1746309600000, 0.0], [1746396000000, 0.0], [1746482400000, 0.0], [1746568800000, 0.0], [1746655200000, 0.0], [1746741600000, 0.0], [1746828000000, 0.0], [1746914400000, 0.0], [1747000800000, 0.0], [1747087200000, 0.0], [1747173600000, 0.0], [1747260000000, 0.0], [1747346400000, 0.0], [1747432800000, 0.0], [1747519200000, 0.0], [1747605600000, 0.0], [1747692000000, 0.0], [1747778400000, 0.0], [1747864800000, 0.0], [1747951200000, 0.0], [1748037600000, 0.0], [1748124000000, 0.0], [1748210400000, 0.0], [1748296800000, 0.0], [1748383200000, 0.0], [1748469600000, 0.0], [1748556000000, 0.0], [1748642400000, 0.0], [1748728800000, 0.0], [1748815200000, 0.0], [1748901600000, 0.0], [1748988000000, 0.0], [1749074400000, 0.0], [1749160800000, 0.0], [1749247200000, 0.0], [1749333600000, 0.0], [1749420000000, 0.0], [1749506400000, 0.0], [1749592800000, 0.0], [1749679200000, 0.0], [1749765600000, 0.0], [1749852000000, 0.0], [1749938400000, 0.0], [1750024800000, 0.0], [1750111200000, 0.0], [1750197600000, 0.0], [1750284000000, 0.0], [1750370400000, 0.0], [1750456800000, 0.0], [1750543200000, 0.0], [1750629600000, 0.0], [1750716000000, 0.0], [1750802400000, 0.0], [1750888800000, 0.0], [1750975200000, 0.0], [1751061600000, 0.0], [1751148000000, 0.0], [1751234400000, 0.0], [1751320800000, 0.0], [1751407200000, 0.0], [1751493600000, 0.0], [1751580000000, 0.0], [1751666400000, 0.0], [1751752800000, 0.0], [1751839200000, 0.0], [1751925600000, 0.0], [1752012000000, 0.0], [1752098400000, 0.0], [1752184800000, 0.0], [1752271200000, 0.0], [1752357600000, 0.0], [1752444000000, 6.798e-05], [1752530400000, 0.000188], [1752616800000, 0.00029063], [1752703200000, 0.0003693], [1752789600000, 0.0003693], [1752876000000, 0.00051443], [1752962400000, 0.00051443], [1753048800000, 0.00058046], [1753135200000, 0.00058046], [1753221600000, 0.00072238], [1753308000000, 0.000782], [1753394400000, 0.00087909], [1753480800000, 0.00087909], [1753567200000, 0.00087909], [1753653600000, 0.00101857], [1753740000000, 0.00108066], [1753826400000, 0.00113692], [1753912800000, 0.0012024], [1753999200000, 0.00129035], [1754085600000, 0.00143369], [1754172000000, 0.00146413], [1754258400000, 0.00149586], [1754344800000, 0.0015403], [1754431200000, 0.00160394], [1754517600000, 0.00160394], [1754604000000, 0.00160394], [1754690400000, 0.00160394], [1754776800000, 0.00160394], [1754863200000, 0.00180362], [1754949600000, 0.00180362], [1755036000000, 0.00180362], [1755122400000, 0.00180362], [1755208800000, 0.00209673], [1755295200000, 0.00209673], [1755381600000, 0.00209673], [1755468000000, 0.00224513], [1755554400000, 0.00234412], [1755640800000, 0.00242557], [1755727200000, 0.00242557], [1755813600000, 0.00255011], [1755900000000, 0.00263968], [1755986400000, 0.00263968], [1756072800000, 0.00274319], [1756159200000, 0.00274319], [1756245600000, 0.00274319], [1756332000000, 0.00274319], [1756418400000, 0.00274319], [1756504800000, 0.00274319], [1756591200000, 0.00274319], [1756677600000, 0.00274319], [1756764000000, 0.00274319], [1756850400000, 1e-08], [1756936800000, 1e-08], [1757023200000, 1e-08], [1757109600000, 1e-08], [1757196000000, 1e-08], [1757282400000, 1e-08], [1757368800000, 1e-08], [1757455200000, 1e-08], [1757541600000, 1e-08], [1757628000000, 1e-08], [1757714400000, 1e-08], [1757800800000, 1e-08], [1757887200000, 1e-08], [1757973600000, 1e-08], [1758060000000, 1e-08], [1758146400000, 1e-08], [1758232800000, 1e-08], [1758319200000, 1e-08], [1758405600000, 1e-08], [1758492000000, 0.00018838], [1758578400000, 0.00024133], [1758664800000, 0.00024133], [1758751200000, 0.00024133], [1758837600000, 0.0007819], [1758924000000, 2e-08], [1759010400000, 2e-08], [1759096800000, 3e-08], [1759183200000, 0.00020746], [1759269600000, 3e-08], [1759356000000, 3e-08], [1759442400000, 3e-08], [1759528800000, 2.64e-06], [1759615200000, 2.64e-06], [1759701600000, 2.64e-06], [1759788000000, 2.64e-06], [1759874400000, 2.64e-06], [1759960800000, 2.64e-06], [1760047200000, 2.64e-06], [1760133600000, 2.64e-06], [1760220000000, 2.64e-06], [1760306400000, -4.16e-06], [1760392800000, -4.32e-06], [1760479200000, -4.5e-06], [1760565600000, -4.68e-06], [1760652000000, -4.68e-06], [1760738400000, -4.87e-06], [1760824800000, -5.41e-06], [1760911200000, -5.41e-06], [1760997600000, -5.81e-06], [1761084000000, -5.95e-06], [1761170400000, -6.16e-06], [1761256800000, -6.25e-06], [1761343200000, -6.75e-06], [1761429600000, -7.04e-06], [1761519600000, -7.26e-06], [1761606000000, -7.26e-06], [1761692400000, -8.2e-06], [1761778800000, -8.56e-06], [1761865200000, -8.91e-06], [1761951600000, -9.35e-06], [1762038000000, -9.35e-06], [1762124400000, 0.00062987], [1762210800000, 0.0006294], [1762297200000, 0.0006294], [1762383600000, 0.00062862], [1762470000000, 0.00062822], [1762556400000, 0.00062778], [1762642800000, 0.00062642], [1762729200000, 0.00062642], [1762815600000, 0.00062527], [1762902000000, 0.0006247], [1762988400000, 0.00062407], [1763074800000, 0.00062351], [1763161200000, 0.00062298], [1763247600000, 0.00062298], [1763334000000, 0.00062124], [1763420400000, 0.00062061], [1763506800000, 0.0006197], [1763593200000, 0.00061885], [1763679600000, 0.00061795], [1763766000000, 0.00061703], [1763852400000, 0.00061607], [1763938800000, 0.00061527], [1764025200000, 0.00061443], [1764111600000, 0.00061356], [1764198000000, 0.00061275], [1764284400000, 0.00061202], [1764370800000, 0.00061202], [1764457200000, 0.00061202], [1764543600000, 0.00060426], [1764630000000, 0.00060356], [1764716400000, 0.00060293], [1764802800000, 0.00060235], [1764889200000, 0.00060235], [1764975600000, 0.00060111], [1765062000000, 0.00060044], [1765148400000, 0.00059987], [1765234800000, 0.00059923], [1765321200000, 0.00059861], [1765407600000, 0.05077568], [1765494000000, 0.05077501], [1765580400000, 0.05077432], [1765666800000, 0.05077432], [1765753200000, 0.05077296], [1765839600000, 0.05077233], [1765926000000, 0.05077164], [1766012400000, 0.05077164], [1766098800000, 0.05077164], [1766185200000, 0.05077164], [1766271600000, 0.05077164], [1766358000000, 0.05077164], [1766444400000, 0.05077164], [1766530800000, 0.05077164], [1766617200000, 0.05077164], [1766703600000, 0.05077164], [1766790000000, 0.05077164], [1766876400000, 0.05077164], [1766962800000, 0.05077164], [1767049200000, 0.05077164], [1767135600000, 0.05077164], [1767222000000, 0.05077164], [1767308400000, 0.05077164], [1767394800000, 0.05077164], [1767481200000, 0.05077164], [1767567600000, 0.05077164], [1767654000000, 0.05077164], [1767740400000, 0.05077164], [1767826800000, 0.05077164], [1767913200000, 0.05077164], [1767999600000, 0.05077164], [1768086000000, 0.05077164], [1768172400000, 0.05077164], [1768258800000, 0.05077164], [1768345200000, 0.05077164], [1768431600000, 0.05077164], [1768518000000, 0.05077164], [1768604400000, 0.05077164], [1768690800000, 0.05077164], [1768777200000, 0.05077164], [1768863600000, 0.05077164], [1768950000000, 0.05077164], [1769036400000, 0.05077164], [1769122800000, 0.05077164], [1769209200000, 0.05073516], [1769295600000, 0.05073516], [1769382000000, 0.05073516], [1769468400000, 0.05073516], [1769554800000, 0.05073516], [1769641200000, 0.05073516], [1769727600000, 0.05073516], [1769814000000, 0.05073129], [1769900400000, 0.05072906], [1769986800000, 0.05072906], [1770073200000, 0.05072906], [1770159600000, 0.05072906], [1770246000000, 0.05072906], [1770332400000, 0.07509319], [1770418800000, 0.07508887], [1770505200000, 0.07508887], [1770591600000, 0.07508887], [1770678000000, 0.07508887], [1770764400000, 0.07508887], [1770850800000, 0.07508887], [1770937200000, 0.07508887], [1771023600000, 0.07508156], [1771110000000, 0.07508156], [1771196400000, 0.07508156], [1771282800000, 0.07508156], [1771369200000, 0.07508156], [1771455600000, 0.07508156], [1771542000000, 0.07508156], [1771628400000, 0.07507731], [1771714800000, 0.07507731], [1771801200000, 0.07507731], [1771887600000, 0.07507731], [1771974000000, 0.07507731], [1772060400000, 0.07507731], [1772146800000, 0.07507731], [1772233200000, 0.07507479], [1772319600000, 0.07507479], [1772406000000, 0.07507479], [1772492400000, 0.07507479], [1772578800000, 0.07507479], [1772665200000, 0.07507479], [1772751600000, 0.07507479], [1772838000000, 0.07507479], [1772924400000, 0.07507479], [1773010800000, 0.07507479], [1773097200000, 0.07507479], [1773183600000, 0.07507479], [1773270000000, 0.07507479], [1773356400000, 0.07507479], [1773442800000, 0.07506809], [1773529200000, 0.07506809], [1773615600000, 0.07506809], [1773702000000, 0.07506809], [1773788400000, 0.07506809], [1773874800000, 0.07506809], [1773961200000, 0.07506809], [1774047600000, 0.07506809], [1774134000000, 0.07506407], [1774220400000, 0.07506407], [1774306800000, 0.07506407], [1774393200000, 0.07506407], [1774479600000, 0.07506407], [1774566000000, 0.07506233], [1774652400000, 0.07506233], [1774738800000, 0.07506233], [1774821600000, 0.07506233], [1774908000000, 0.07506233], [1774994400000, 0.07506233], [1775080800000, 0.07506233], [1775167200000, 0.07506233], [1775253600000, 0.07506233], [1775340000000, 0.07505715], [1775426400000, 0.07505715], [1775512800000, 0.07505715], [1775599200000, 0.07505715], [1775685600000, 0.07505715], [1775772000000, 0.07505715], [1775858400000, 0.07505389], [1775944800000, 0.07505389], [1776031200000, 0.07505389], [1776117600000, 0.07505389], [1776204000000, 0.07505389], [1776290400000, 0.07505389], [1776376800000, 0.07505389], [1776463200000, 0.07505049], [1776549600000, 0.07505049], [1776636000000, 0.6182537], [1776722400000, 0.6182537], [1776808800000, 0.6182537], [1776895200000, 0.6182537], [1776981600000, 0.6182537], [1777068000000, 0.60083324], [1777154400000, 0.60083324], [1777240800000, 0.60083324], [1777327200000, 0.60083324], [1777413600000, 0.60083324], [1777500000000, 0.60083324], [1777586400000, 0.60083324], [1777672800000, 0.60083324], [1777759200000, 0.59133492], [1777845600000, 0.59133492], [1777932000000, 0.59133492], [1778018400000, 0.59133492], [1778104800000, 0.59133492], [1778191200000, 0.59133492], [1778277600000, 0.58665751], [1778364000000, 0.58665751], [1778450400000, 0.58665751], [1778536800000, 0.58665751], [1778623200000, 0.58665751], [1778709600000, 0.58665751], [1778796000000, 0.58665751], [1778882400000, 0.58109411], [1778968800000, 0.58109411], [1779055200000, 0.58109411], [1779141600000, 0.58109411], [1779228000000, 0.58109411], [1779314400000, 0.58109411]];
const totalCumulData = [[1732057200000, 0.0], [1732143600000, 0.0], [1732230000000, 0.0], [1732316400000, 0.0], [1732402800000, 0.0], [1732489200000, 0.0], [1732575600000, 0.0], [1732662000000, 0.0], [1732748400000, 0.0], [1732834800000, 0.0], [1732921200000, 0.00045671], [1733007600000, 0.00068314], [1733094000000, 0.00103581], [1733180400000, 0.00154653], [1733266800000, 0.00203502], [1733353200000, 0.00245059], [1733439600000, 0.0027401], [1733526000000, 0.0027401], [1733612400000, 0.0027401], [1733698800000, 0.0027401], [1733785200000, 0.00331277], [1733871600000, 0.00331277], [1733958000000, 0.00352929], [1734044400000, 0.00352929], [1734130800000, 0.00437782], [1734217200000, 0.00437782], [1734303600000, 0.00437782], [1734390000000, 0.00437782], [1734476400000, 0.00437782], [1734562800000, 0.00437782], [1734649200000, 0.00437782], [1734735600000, 0.00437782], [1734822000000, 0.00483383], [1734908400000, 0.00483383], [1734994800000, 0.00483383], [1735081200000, 0.00483383], [1735167600000, 0.00483383], [1735254000000, 0.00483383], [1735340400000, 0.00688418], [1735426800000, 0.00688418], [1735513200000, 0.00688418], [1735599600000, 0.00688418], [1735686000000, 0.00688418], [1735772400000, 0.00688418], [1735858800000, 0.00688418], [1735945200000, 0.00688418], [1736031600000, 0.00688418], [1736118000000, 0.00688418], [1736204400000, 0.00688418], [1736290800000, 0.00753678], [1736377200000, 0.00753678], [1736463600000, 0.00825444], [1736550000000, 0.00825444], [1736636400000, 0.00825444], [1736722800000, 0.0084866], [1736809200000, 0.0084866], [1736895600000, 0.0084866], [1736982000000, 0.0084866], [1737068400000, 0.0084866], [1737154800000, 0.0084866], [1737241200000, 0.0084866], [1737327600000, 0.0084866], [1737414000000, 0.0084866], [1737500400000, 0.0084866], [1737586800000, 0.0088232], [1737673200000, 0.0088232], [1737759600000, 0.0088232], [1737846000000, 0.0088232], [1737932400000, 0.00947181], [1738018800000, 0.00947181], [1738105200000, 0.00987744], [1738191600000, 0.01019638], [1738278000000, 0.01019638], [1738364400000, 0.01019638], [1738450800000, 0.01019638], [1738537200000, 0.09168322], [1738623600000, 0.0], [1738710000000, 0.0], [1738796400000, 0.0], [1738882800000, 0.0], [1738969200000, 0.0], [1739055600000, 0.0], [1739142000000, 0.0], [1739228400000, 0.0], [1739314800000, 0.0], [1739401200000, 0.0], [1739487600000, 0.0], [1739574000000, 0.0], [1739660400000, 0.0], [1739746800000, 0.0], [1739833200000, 0.0], [1739919600000, 0.0], [1740006000000, 0.0], [1740092400000, 0.0], [1740178800000, 0.0], [1740265200000, 0.0], [1740351600000, 0.0], [1740438000000, 0.0], [1740524400000, 0.0], [1740610800000, 0.0], [1740697200000, 0.0], [1740783600000, 0.0], [1740870000000, 0.0], [1740956400000, 0.0], [1741042800000, 0.0], [1741129200000, 0.0], [1741215600000, 0.0], [1741302000000, 0.0], [1741388400000, 0.0], [1741474800000, 0.0], [1741561200000, 0.0], [1741647600000, 0.0], [1741734000000, 0.0], [1741820400000, 0.0], [1741906800000, 0.0], [1741993200000, 0.0], [1742079600000, 0.0], [1742166000000, 0.0], [1742252400000, 0.0], [1742338800000, 0.0], [1742425200000, 0.0], [1742511600000, 0.0], [1742598000000, 0.0], [1742684400000, 0.0], [1742770800000, 0.0], [1742857200000, 0.0], [1742943600000, 0.0], [1743030000000, 0.0], [1743116400000, 0.0], [1743202800000, 0.0], [1743289200000, 0.0], [1743372000000, 0.0], [1743458400000, 0.0], [1743544800000, 0.0], [1743631200000, 0.0], [1743717600000, 0.0], [1743804000000, 0.0], [1743890400000, 0.0], [1743976800000, 0.0], [1744063200000, 0.0], [1744149600000, 0.0], [1744236000000, 0.0], [1744322400000, 0.0], [1744408800000, 0.0], [1744495200000, 0.0], [1744581600000, 0.0], [1744668000000, 0.0], [1744754400000, 0.0], [1744840800000, 0.0], [1744927200000, 0.0], [1745013600000, 0.0], [1745100000000, 0.0], [1745186400000, 0.0], [1745272800000, 0.0], [1745359200000, 0.0], [1745445600000, 0.0], [1745532000000, 0.0], [1745618400000, 0.0], [1745704800000, 0.0], [1745791200000, 0.0], [1745877600000, 0.0], [1745964000000, 0.0], [1746050400000, 0.0], [1746136800000, 0.0], [1746223200000, 0.0], [1746309600000, 0.0], [1746396000000, 0.0], [1746482400000, 0.0], [1746568800000, 0.0], [1746655200000, 0.0], [1746741600000, 0.0], [1746828000000, 0.0], [1746914400000, 0.0], [1747000800000, 0.0], [1747087200000, 0.0], [1747173600000, 0.0], [1747260000000, 0.0], [1747346400000, 0.0], [1747432800000, 0.0], [1747519200000, 0.0], [1747605600000, 0.0], [1747692000000, 0.0], [1747778400000, 0.0], [1747864800000, 0.0], [1747951200000, 0.0], [1748037600000, 0.0], [1748124000000, 0.0], [1748210400000, 0.0], [1748296800000, 0.0], [1748383200000, 0.0], [1748469600000, 0.0], [1748556000000, 0.0], [1748642400000, 0.0], [1748728800000, 0.0], [1748815200000, 0.0], [1748901600000, 0.0], [1748988000000, 0.0], [1749074400000, 0.0], [1749160800000, 0.0], [1749247200000, 0.0], [1749333600000, 0.0], [1749420000000, 0.0], [1749506400000, 0.0], [1749592800000, 0.0], [1749679200000, 0.0], [1749765600000, 0.0], [1749852000000, 0.0], [1749938400000, 0.0], [1750024800000, 0.0], [1750111200000, 0.0], [1750197600000, 0.0], [1750284000000, 0.0], [1750370400000, 0.0], [1750456800000, 0.0], [1750543200000, 0.0], [1750629600000, 0.0], [1750716000000, 0.0], [1750802400000, 0.0], [1750888800000, 0.0], [1750975200000, 0.0], [1751061600000, 0.0], [1751148000000, 0.0], [1751234400000, 0.0], [1751320800000, 0.0], [1751407200000, 0.0], [1751493600000, 0.0], [1751580000000, 0.0], [1751666400000, 0.0], [1751752800000, 0.0], [1751839200000, 0.0], [1751925600000, 0.0], [1752012000000, 0.0], [1752098400000, 0.0], [1752184800000, 0.0], [1752271200000, 0.0], [1752357600000, 0.0], [1752444000000, 6.798e-05], [1752530400000, 0.000188], [1752616800000, 0.00029063], [1752703200000, 0.0003693], [1752789600000, 0.0003693], [1752876000000, 0.00051443], [1752962400000, 0.00051443], [1753048800000, 0.00058046], [1753135200000, 0.00058046], [1753221600000, 0.00072238], [1753308000000, 0.000782], [1753394400000, 0.00087909], [1753480800000, 0.00087909], [1753567200000, 0.00087909], [1753653600000, 0.00101857], [1753740000000, 0.00108066], [1753826400000, 0.00113692], [1753912800000, 0.0012024], [1753999200000, 0.00129035], [1754085600000, 0.00143369], [1754172000000, 0.00146413], [1754258400000, 0.00149586], [1754344800000, 0.0015403], [1754431200000, 0.00160394], [1754517600000, 0.00160394], [1754604000000, 0.00160394], [1754690400000, 0.00160394], [1754776800000, 0.00160394], [1754863200000, 0.00180362], [1754949600000, 0.00180362], [1755036000000, 0.00180362], [1755122400000, 0.00180362], [1755208800000, 0.00209673], [1755295200000, 0.00209673], [1755381600000, 0.00209673], [1755468000000, 0.00224513], [1755554400000, 0.00234412], [1755640800000, 0.00242557], [1755727200000, 0.00242557], [1755813600000, 0.00255011], [1755900000000, 0.00263968], [1755986400000, 0.00263968], [1756072800000, 0.00274319], [1756159200000, 0.00274319], [1756245600000, 0.00274319], [1756332000000, 0.00274319], [1756418400000, 0.00274319], [1756504800000, 0.00274319], [1756591200000, 0.00274319], [1756677600000, 0.00274319], [1756764000000, 0.00274319], [1756850400000, 0.0808043], [1756936800000, 0.0808043], [1757023200000, 0.0808043], [1757109600000, 0.0808043], [1757196000000, 0.0808043], [1757282400000, 0.0808043], [1757368800000, 0.0808043], [1757455200000, 0.0808043], [1757541600000, 0.0808043], [1757628000000, 0.0808043], [1757714400000, 0.0808043], [1757800800000, 0.0808043], [1757887200000, 0.0808043], [1757973600000, 0.0808043], [1758060000000, 0.0808043], [1758146400000, 0.0808043], [1758232800000, 0.0808043], [1758319200000, 0.0808043], [1758405600000, 0.0808043], [1758492000000, 0.08099267], [1758578400000, 0.08104562], [1758664800000, 0.08104562], [1758751200000, 0.08104562], [1758837600000, 0.08158619], [1758924000000, 0.08168513], [1759010400000, 0.08168513], [1759096800000, 0.08175924], [1759183200000, 0.08196667], [1759269600000, 0.20172902], [1759356000000, 0.20172902], [1759442400000, 0.20172902], [1759528800000, 0.20173163], [1759615200000, 0.20173163], [1759701600000, 0.20173163], [1759788000000, 0.20173163], [1759874400000, 0.20173163], [1759960800000, 0.20173163], [1760047200000, 0.20173163], [1760133600000, 0.20173163], [1760220000000, 0.20173163], [1760306400000, 0.20414345], [1760392800000, 0.20472111], [1760479200000, 0.20525101], [1760565600000, 0.20565535], [1760652000000, 0.20565535], [1760738400000, 0.20602062], [1760824800000, 0.20659846], [1760911200000, 0.20659846], [1760997600000, 0.20717874], [1761084000000, 0.20754691], [1761170400000, 0.43656846], [1761256800000, 0.43668128], [1761343200000, 0.43708561], [1761429600000, 0.4371834], [1761519600000, 0.43727883], [1761606000000, 0.43727883], [1761692400000, 0.43873999], [1761778800000, 0.43998789], [1761865200000, 0.44182259], [1761951600000, 0.44270347], [1762038000000, 0.44270347], [1762124400000, 0.44454304], [1762210800000, 0.48222568], [1762297200000, 0.48222568], [1762383600000, 0.48312842], [1762470000000, 0.48341354], [1762556400000, 0.48373005], [1762642800000, 0.48423324], [1762729200000, 0.48423324], [1762815600000, 0.48530991], [1762902000000, 0.48584615], [1762988400000, 0.48669804], [1763074800000, 0.48713598], [1763161200000, 0.487434], [1763247600000, 0.487434], [1763334000000, 0.48822674], [1763420400000, 0.48851116], [1763506800000, 0.48879481], [1763593200000, 0.4893342], [1763679600000, 0.48959904], [1763766000000, 0.48986968], [1763852400000, 0.49016267], [1763938800000, 0.49040784], [1764025200000, 0.49068247], [1764111600000, 0.49096857], [1764198000000, 0.49145133], [1764284400000, 0.49172009], [1764370800000, 0.49172009], [1764457200000, 0.49172009], [1764543600000, 0.49251788], [1764630000000, 0.49281293], [1764716400000, 0.4930889], [1764802800000, 0.4937251], [1764889200000, 0.4937251], [1764975600000, 0.49428459], [1765062000000, 0.49458793], [1765148400000, 0.49484011], [1765234800000, 0.49511635], [1765321200000, 0.49538819], [1765407600000, 0.54617831], [1765494000000, 0.54646441], [1765580400000, 0.54673184], [1765666800000, 0.54673184], [1765753200000, 0.54728867], [1765839600000, 0.5475259], [1765926000000, 0.54778238], [1766012400000, 0.54778238], [1766098800000, 0.54778238], [1766185200000, 0.54778238], [1766271600000, 0.54778238], [1766358000000, 0.54778238], [1766444400000, 0.54778238], [1766530800000, 0.54778238], [1766617200000, 0.54778238], [1766703600000, 0.54778238], [1766790000000, 0.54778238], [1766876400000, 0.54778238], [1766962800000, 0.54778238], [1767049200000, 0.54778238], [1767135600000, 0.54778238], [1767222000000, 0.54778238], [1767308400000, 0.54778238], [1767394800000, 0.54778238], [1767481200000, 0.54778238], [1767567600000, 0.54778238], [1767654000000, 0.54778238], [1767740400000, 0.54778238], [1767826800000, 0.54778238], [1767913200000, 0.54778238], [1767999600000, 0.54778238], [1768086000000, 0.54778238], [1768172400000, 0.54778238], [1768258800000, 0.54778238], [1768345200000, 0.54778238], [1768431600000, 0.54778238], [1768518000000, 0.54778238], [1768604400000, 0.54778238], [1768690800000, 0.54778238], [1768777200000, 0.54778238], [1768863600000, 0.54778238], [1768950000000, 0.54778238], [1769036400000, 0.54778238], [1769122800000, 0.54778238], [1769209200000, 0.55783886], [1769295600000, 0.55783886], [1769382000000, 0.55783886], [1769468400000, 0.55783886], [1769554800000, 0.55783886], [1769641200000, 0.55783886], [1769727600000, 0.55783886], [1769814000000, 0.56978816], [1769900400000, 0.57614699], [1769986800000, 0.57614699], [1770073200000, 0.57614699], [1770159600000, 0.57614699], [1770246000000, 0.57614699], [1770332400000, 0.60051112], [1770418800000, 0.61519154], [1770505200000, 0.61519154], [1770591600000, 0.61519154], [1770678000000, 0.61519154], [1770764400000, 0.61519154], [1770850800000, 0.61519154], [1770937200000, 0.61519154], [1771023600000, 0.63675202], [1771110000000, 0.63675202], [1771196400000, 0.63675202], [1771282800000, 0.63675202], [1771369200000, 0.63675202], [1771455600000, 0.63675202], [1771542000000, 0.63675202], [1771628400000, 0.66621788], [1771714800000, 0.66621788], [1771801200000, 0.66621788], [1771887600000, 0.66621788], [1771974000000, 0.66621788], [1772060400000, 0.66621788], [1772146800000, 0.66621788], [1772233200000, 0.69747883], [1772319600000, 0.69747883], [1772406000000, 0.69747883], [1772492400000, 0.69747883], [1772578800000, 0.69747883], [1772665200000, 0.69747883], [1772751600000, 0.69747883], [1772838000000, 0.69747883], [1772924400000, 0.69747883], [1773010800000, 0.69747883], [1773097200000, 0.69747883], [1773183600000, 0.69747883], [1773270000000, 0.69747883], [1773356400000, 0.69747883], [1773442800000, 0.72581346], [1773529200000, 0.72581346], [1773615600000, 0.72581346], [1773702000000, 0.72581346], [1773788400000, 0.72581346], [1773874800000, 0.72581346], [1773961200000, 0.72581346], [1774047600000, 0.72581346], [1774134000000, 0.75470697], [1774220400000, 0.75470697], [1774306800000, 0.75470697], [1774393200000, 0.75470697], [1774479600000, 0.75470697], [1774566000000, 0.7698828], [1774652400000, 0.7698828], [1774738800000, 0.7698828], [1774821600000, 0.7698828], [1774908000000, 0.7698828], [1774994400000, 0.7698828], [1775080800000, 0.7698828], [1775167200000, 0.7698828], [1775253600000, 0.7698828], [1775340000000, 0.78484539], [1775426400000, 0.78484539], [1775512800000, 0.78484539], [1775599200000, 0.78484539], [1775685600000, 0.78484539], [1775772000000, 0.78484539], [1775858400000, 0.79284539], [1775944800000, 0.79284539], [1776031200000, 0.79284539], [1776117600000, 0.79284539], [1776204000000, 0.79284539], [1776290400000, 0.79284539], [1776376800000, 0.79284539], [1776463200000, 0.8002537], [1776549600000, 0.8002537], [1776636000000, 0.6182537], [1776722400000, 0.6182537], [1776808800000, 0.6182537], [1776895200000, 0.6182537], [1776981600000, 0.6182537], [1777068000000, 0.63176342], [1777154400000, 0.63176342], [1777240800000, 0.63176342], [1777327200000, 0.63176342], [1777413600000, 0.63176342], [1777500000000, 0.63176342], [1777586400000, 0.63176342], [1777672800000, 0.63176342], [1777759200000, 0.64411251], [1777845600000, 0.64411251], [1777932000000, 0.64411251], [1778018400000, 0.64411251], [1778104800000, 0.64411251], [1778191200000, 0.64411251], [1778277600000, 0.64743518], [1778364000000, 0.66114785], [1778450400000, 0.66114785], [1778536800000, 0.66114785], [1778623200000, 0.66114785], [1778709600000, 0.66114785], [1778796000000, 0.66114785], [1778882400000, 0.67755506], [1778968800000, 0.67755506], [1779055200000, 0.67755506], [1779141600000, 0.67755506], [1779228000000, 0.67755506], [1779314400000, 0.67755506]];
let currentAggregatedSeries = [];
let currentNetHeld = 0;
let currentBuyCost = 0;
let currentBuyAmount = 0;
let btcPriceData = [];
let currentCutoffMs;
let tickIntervalId;
// Initialize UI for checkboxes
document.querySelectorAll('.wallet-toggle').forEach(cb => {
const wid = cb.dataset.wallet;
cb.style.backgroundColor = walletsMetadata[wid].color;
cb.style.boxShadow = `0 0 8px ${walletsMetadata[wid].color}66`;
});
function getBaseChartOptions(chartId, dataset, color, isBTC) {
return {
chart: {
id: chartId,
type: 'area',
height: 200,
background: 'transparent',
toolbar: { show: false },
sparkline: { enabled: false },
zoom: { enabled: true, type: 'x', autoScaleYaxis: true },
animations: { enabled: false }
},
series: [{ name: isBTC ? 'BTC Price' : 'Net Held', data: dataset }],
dataLabels: { enabled: false },
colors: [color],
stroke: { curve: 'smooth', width: 2 },
fill: {
type: 'gradient',
gradient: {
type: 'vertical',
shadeIntensity: 0,
colorStops: [
{ offset: 0, color: color, opacity: 0.16 },
{ offset: 100, color: color, opacity: 0.0 }
]
}
},
grid: {
show: false,
padding: { left: 0, right: 0, top: 0, bottom: 0 }
},
markers: { size: 0, hover: { size: 5 } },
xaxis: {
type: 'datetime',
labels: {
show: true,
style: { colors: '#4B5563', fontSize: '10px', fontWeight: 600 },
datetimeFormatter: { year: 'yyyy', month: 'MMM yy', day: 'dd MMM' }
},
axisBorder: { show: false },
axisTicks: { show: false }
},
yaxis: {
opposite: true,
min: (min) => isBTC ? min * 0.98 : min * 0.95,
max: (max) => isBTC ? max * 1.02 : max * 1.05,
labels: {
offsetX: -10,
style: { colors: '#4B5563', fontSize: '10px', fontWeight: 600 },
formatter: function(val) {
if (isBTC) return (val / 1000).toFixed(0) + 'k';
return val.toFixed(4);
}
},
axisBorder: { show: false },
axisTicks: { show: false }
},
tooltip: {
enabled: true,
theme: 'dark',
shared: false,
intersect: false,
custom: function({ series, seriesIndex, dataPointIndex, w }) {
const rawData = w.config.series[seriesIndex].data[dataPointIndex];
if (!rawData) return '';
const date = new Date(rawData[0]);
const dateString = date.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });
const valFormatted = isBTC
? new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', maximumFractionDigits: 0 }).format(rawData[1])
: rawData[1].toFixed(6) + ' BTC';
return `
<div class="text-center font-medium relative p-1">
<div class="text-gray-400 text-[10px] font-semibold uppercase tracking-tighter">${dateString}</div>
<div class="text-white text-sm font-bold mt-0.5">${valFormatted}</div>
<div class="absolute -bottom-[15px] left-1/2 -translate-x-1/2 w-2 h-2 bg-${color} rounded-full border border-[#111827]"></div>
</div>
`;
}
},
crosshairs: {
show: true,
width: 1,
position: 'back',
stroke: { color: '#4B5563', width: 1, dashArray: 3 }
}
};
}
function getOldestTransactionDate() {
const activeWallets = [...new Set(Array.from(document.querySelectorAll('.wallet-toggle:checked')).map(cb => cb.dataset.wallet))];
if (activeWallets.length === 0) {
return Date.now() - 365 * 86400000;
}
let oldestTs = Infinity;
allAaveSnapshots.forEach(snap => {
if (activeWallets.includes('penguin')) {
const sTs = new Date(snap.block_timestamp).getTime();
if (sTs < oldestTs) oldestTs = sTs;
}
});
return oldestTs === Infinity ? Date.now() - 365 * 86400000 : oldestTs;
}
function refreshAllCharts(cutoffMs) {
currentCutoffMs = cutoffMs;
document.getElementById('since-date').innerText = new Intl.DateTimeFormat('en-US', { month: 'short', year: 'numeric' }).format(new Date(cutoffMs));
if (tickIntervalId) clearInterval(tickIntervalId);
if (window.btcChart) window.btcChart.destroy();
if (window.cumulChart) window.cumulChart.destroy();
if (window.satsChart) window.satsChart.destroy();
if (window.breakdownChart) window.breakdownChart.destroy();
const filtered = btcPriceData.filter(d => d[0] >= cutoffMs);
if (filtered.length > 0) {
setupBtcCard(filtered);
}
setupCumulCard(cutoffMs);
setupSatsCard(cutoffMs);
setupBreakdownCard(cutoffMs);
startTickUpdates(btcPriceData.filter(d => d[0] >= cutoffMs));
}
function calculateAggregatedSeries() {
const activeWallets = [...new Set(Array.from(document.querySelectorAll('.wallet-toggle:checked')).map(cb => cb.dataset.wallet))];
// Always recalculate from scratch to ensure accuracy
currentBuyCost = 0;
currentBuyAmount = 0;
if (activeWallets.length === 0) {
currentAggregatedSeries = [];
currentNetHeld = 0;
return;
}
// Take the first active wallet's timestamps as base
const firstWid = activeWallets[0];
const baseSeries = walletCumulData[firstWid];
const result = baseSeries.map(point => [point[0], 0]);
activeWallets.forEach(wid => {
const series = walletCumulData[wid];
if (series) {
series.forEach((point, i) => {
if (result[i]) result[i][1] += point[1];
});
}
currentBuyCost += walletCosts[wid] || 0;
currentBuyAmount += walletBuys[wid] || 0;
});
currentAggregatedSeries = result;
currentNetHeld = result.length > 0 ? result[result.length - 1][1] : 0;
}
function updateDashboard() {
calculateAggregatedSeries();
// Update Chart
if (window.cumulChart) {
window.cumulChart.updateSeries([{ data: currentAggregatedSeries }]);
}
// Update Text values
document.getElementById('net-held-val').innerText = currentNetHeld.toFixed(6);
document.getElementById('cumul-btc-val').innerText = currentNetHeld.toFixed(6);
const avgBuy = currentBuyAmount > 0 ? currentBuyCost / currentBuyAmount : 0;
document.getElementById('avg-buy-val').innerText = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', maximumFractionDigits: 0 }).format(avgBuy);
document.getElementById('total-invested-val').innerText = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(currentBuyCost);
// Trigger BTC UI update to refresh PnL with new netHeld
if (btcPriceData.length > 0) {
updateBtcUI(btcPriceData[btcPriceData.length - 1][1], 0);
}
// Filter Table and count visible transactions
const activeWallets = [...new Set(Array.from(document.querySelectorAll('.wallet-toggle:checked')).map(cb => cb.dataset.wallet))];
const activeTypes = Array.from(document.querySelectorAll('.filter-checkbox:checked')).map(cb => cb.dataset.filter);
let visibleCount = 0;
document.querySelectorAll('#transaction-table tbody tr').forEach(row => {
const wId = row.dataset.wallet;
const actionBadge = row.querySelector('.badge');
let typeMatch = true;
if (actionBadge) {
const actionType = actionBadge.dataset.type;
typeMatch = activeTypes.includes(actionType);
}
const walletMatch = activeWallets.includes(wId);
const isVisible = walletMatch && typeMatch;
row.classList.toggle('hidden', !isVisible);
if (isVisible) visibleCount++;
});
document.getElementById('tx-count-val').innerText = visibleCount;
const newCutoff = getOldestTransactionDate();
if (newCutoff !== currentCutoffMs) {
if (btcPriceData.length > 0) refreshAllCharts(newCutoff);
}
}
// Global listeners
document.querySelectorAll('.filter-checkbox, .wallet-toggle').forEach(cb => {
cb.addEventListener('change', (e) => {
if (e.target.classList.contains('wallet-toggle')) {
const wid = e.target.dataset.wallet;
const checked = e.target.checked;
document.querySelectorAll(`.wallet-toggle[data-wallet="${wid}"]`).forEach(other => {
if (other !== e.target) {
other.checked = checked;
if (other.onchange) other.onchange();
}
});
}
updateDashboard();
});
});
const TOKENS = {"cbBTC": {"decimals": 8, "priceSymbol": "BTC"}, "WETH": {"decimals": 18, "priceSymbol": "WETH"}, "USDC": {"decimals": 6, "priceSymbol": "USDC"}};
const penguinAddress = '0x0c1a4a060e119f981412e323104d1c134d413dba';
const apiBase = window.location.origin;
let aavePriceMap = {};
let allAaveSnapshots = [];
let lastFetchMs = 0;
function getTokenAmount(raw, symbol) {
const dec = TOKENS[symbol] ? TOKENS[symbol].decimals : 18;
return parseFloat(raw || '0') / Math.pow(10, dec);
}
function priceForToken(symbol, dateStr) {
const ps = TOKENS[symbol] ? TOKENS[symbol].priceSymbol : symbol;
if (!aavePriceMap[ps]) return null;
if (aavePriceMap[ps][dateStr]) return parseFloat(aavePriceMap[ps][dateStr]);
const arr = Object.keys(aavePriceMap[ps]).sort();
let result = null;
for (let i = arr.length - 1; i >= 0; i--) {
if (arr[i] <= dateStr) { result = arr[i]; break; }
}
return result ? parseFloat(aavePriceMap[ps][result]) : null;
}
async function fetchPrices(symbols, oldestDateMs) {
try {
const today = new Date();
const oldest = new Date(oldestDateMs);
const range = Math.max(2, Math.ceil((today - oldest) / 86400000) + 3);
const priceSymbols = [...new Set(symbols.map(s => TOKENS[s] ? TOKENS[s].priceSymbol : s))];
const promises = priceSymbols.map(ps => fetch(`${apiBase}/api/v1/prices/${ps}/history?range=${range}`).then(r => r.json()));
const results = await Promise.all(promises);
priceSymbols.forEach((ps, i) => {
aavePriceMap[ps] = {};
results[i].forEach(item => { aavePriceMap[ps][item.date] = item.close; });
});
} catch (err) {
console.error("Failed to load prices:", err);
}
}
function snapshotsToDaily(events) {
const byDay = {};
events.forEach(evt => {
const ts = new Date(evt.block_timestamp).getTime();
const dateStr = evt.block_timestamp.slice(0, 10);
if (!byDay[dateStr] || ts > byDay[dateStr].block_ts) {
byDay[dateStr] = {...evt, block_ts: ts};
}
});
return Object.values(byDay).sort((a, b) => b.block_ts - a.block_ts);
}
async function fetchAaveSnapshots() {
try {
const resp = await fetch(`${apiBase}/api/v1/portfolio/${penguinAddress}/base/aave`);
if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
const events = await resp.json();
const oldestTs = new Date(events[0].block_timestamp).getTime();
await fetchPrices(Object.keys(TOKENS), oldestTs);
allAaveSnapshots = snapshotsToDaily(events);
renderAaveTable(allAaveSnapshots);
document.getElementById('tx-count-val').innerText = allAaveSnapshots.length;
} catch (err) {
console.error("Failed to load aave data:", err);
document.querySelector('#table-body').innerHTML = `<tr><td colspan="6" class="px-6 py-8 text-center text-red-400 text-sm">Failed to load data: ${err.message}</td></tr>`;
}
}
function fmtUsd(v) {
if (v == null || isNaN(v)) return '—';
if (v >= 1000) return new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', maximumFractionDigits: 0 }).format(v);
return new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', minimumFractionDigits: 0, maximumFractionDigits: 2 }).format(v);
}
function tokenTooltipHTML(items, priceMapRef) {
let html = '';
let total = 0;
items.forEach(it => {
if (it.usd >= 5) {
html += `<div class="tooltip-row"><span class="text-gray-400">${it.symbol}</span><span class="text-white">${it.amountStr} × ${it.priceStr}</span><span class="text-gray-300">${it.usdStr}</span></div>`;
total += it.usd;
}
});
html += `<div class="tooltip-row total"><span class="text-gray-400">Total</span><span class="text-orange-400">${new Intl.NumberFormat('en-US', {style:'currency','currency':'USD','maximumFractionDigits':0}).format(total)}</span></div>`;
return html;
}
function renderAaveTable(snapshots) {
const tbody = document.querySelector('#table-body');
if (snapshots.length === 0) {
tbody.innerHTML ='<tr><td colspan="6" class="px-6 py-8 text-center text-gray-500 text-sm">No snapshots found</td></tr>';
return;
}
let html ='';
snapshots.forEach(snap => {
const ts = new Date(snap.block_timestamp);
const dateStr = snap.block_timestamp.slice(0, 10);
const timeStr = ts.toTimeString().slice(0, 5);
const shortHash = snap.tx_hash.slice(0, 10) + '...';
const hashLink = `https://basescan.org/tx/${snap.tx_hash}`;
// Cold storage (wallet)
const coldItems = [];
let coldTotal = 0;
Object.entries(snap.wallet || {}).forEach(([sym, raw]) => {
const amt = getTokenAmount(raw, sym);
if (amt <= 0) return;
const price = priceForToken(sym, dateStr) || 0;
const usd = amt * price;
coldTotal += usd;
coldItems.push({
symbol: sym,
amountStr: amt < 1 ? amt.toFixed(6).replace(/0+$/, '') : amt.toFixed(2),
priceStr: price > 0 ? new Intl.NumberFormat('en-US',{style:'currency','currency':'USD',maximumFractionDigits:0}).format(price) : '$0',
usdStr: new Intl.NumberFormat('en-US',{style:'currency','currency':'USD',minimumFractionDigits:0,maximumFractionDigits:0}).format(usd),
usd: usd
});
});
const coldVal = fmtUsd(coldTotal);
// Collateral
const collateralItems = [];
let collateralTotal = 0;
Object.entries(snap.collateral || {}).forEach(([sym, raw]) => {
const amt = getTokenAmount(raw, sym);
if (amt <= 0) return;
const price = priceForToken(sym, dateStr) || 0;
const usd = amt * price;
collateralTotal += usd;
collateralItems.push({
symbol: sym,
amountStr: amt < 1 ? amt.toFixed(6).replace(/0+$/, '') : amt.toFixed(4),
priceStr: price > 0 ? new Intl.NumberFormat('en-US',{style:'currency','currency':'USD',maximumFractionDigits:0}).format(price) : '$0',
usdStr: new Intl.NumberFormat('en-US',{style:'currency','currency':'USD',minimumFractionDigits:0,maximumFractionDigits:0}).format(usd),
usd: usd
});
});
const collateralVal = fmtUsd(collateralTotal);
// Borrows
const borrowItems = [];
let borrowTotal = 0;
Object.entries(snap.debt || {}).forEach(([sym, raw]) => {
const amt = getTokenAmount(raw, sym);
if (amt <= 0) return;
const price = priceForToken(sym, dateStr) || 0;
const usd = amt * price;
borrowTotal += usd;
borrowItems.push({
symbol: sym,
amountStr: amt < 1 ? amt.toFixed(6).replace(/0+$/, '') : amt.toFixed(2),
priceStr: price > 0 ? new Intl.NumberFormat('en-US',{style:'currency','currency':'USD',maximumFractionDigits:0}).format(price) : '$0',
usdStr: new Intl.NumberFormat('en-US',{style:'currency','currency':'USD',minimumFractionDigits:0,maximumFractionDigits:0}).format(usd),
usd: usd
});
});
const borrowVal = fmtUsd(borrowTotal);
const coldTooltip = tokenTooltipHTML(coldItems, aavePriceMap);
const collTooltip = tokenTooltipHTML(collateralItems, aavePriceMap);
const borrowTooltip = tokenTooltipHTML(borrowItems, aavePriceMap);
html += `<tr class="border-b border-[#1A1F2C]/30 hover:bg-[#1A1F2C]/20 transition-colors" data-wallet="penguin">
<td class="px-6 py-4 col-timestamp font-medium text-gray-400 whitespace-nowrap">${dateStr}<br><span class="text-[10px] text-gray-600">${timeStr}</span></td>
<td class="px-6 py-4 col-wallet">
<div class="flex items-center gap-2">
<div class="w-3 h-3 rounded-sm" style="background-color: #f7931a; box-shadow: 0 0 8px #f7931a66;"></div>
<span class="text-xs font-medium text-gray-300">Penguin</span>
</div>
</td>
<td class="px-6 py-4 col-value text-right tooltip-cell">
<span class="font-mono font-bold text-white">${coldVal}</span>
${coldItems.length > 0 ? `<div class="tooltip-box">${coldTooltip}</div>` : ''}
</td>
<td class="px-6 py-4 col-value text-right tooltip-cell">
<span class="font-mono font-bold text-green-400">${collateralVal}</span>
${collateralItems.length > 0 ? `<div class="tooltip-box">${collTooltip}</div>` : ''}
</td>
<td class="px-6 py-4 col-value text-right tooltip-cell">
<span class="font-mono font-bold ${borrowTotal > 0 ? 'text-red-400' : 'text-gray-600'}">${borrowVal}</span>
${borrowItems.length > 0 ? `<div class="tooltip-box">${borrowTooltip}</div>` : ''}
</td>
<td class="px-6 py-4"><a href="${hashLink}" target="_blank" class="text-[#FF7A00] opacity-60 hover:opacity-100 transition-opacity font-mono text-xs">${shortHash}</a></td>
</tr>`;
});
tbody.innerHTML = html;
updateDashboard();
}
async function pollAaveUpdate() {
const now = Date.now();
if (now - lastFetchMs < 60000) return;
lastFetchMs = now;
try {
const resp = await fetch(`${apiBase}/api/v1/portfolio/${penguinAddress}/base/aave`);
if (!resp.ok) return;
const events = await resp.json();
lastFetchMs = Date.now();
const newestTs = events[0].block_timestamp;
if (newestTs > (allAaveSnapshots[0]?.block_timestamp || '')) {
allAaveSnapshots = snapshotsToDaily(events);
renderAaveTable(allAaveSnapshots);
document.getElementById('tx-count-val').innerText = allAaveSnapshots.length;
}
} catch (err) {
console.error("Poll update failed:", err);
}
}
function startPolling() {
setInterval(() => pollAaveUpdate(), 30000);
}
async function initDashboardGrid() {
try {
const response = await fetch('https://api.kraken.com/0/public/OHLC?pair=XBTUSD&interval=1440');
const result = await response.json();
const rawPrices = result.result.XXBTZUSD;
btcPriceData = rawPrices.map(item => [item[0] * 1000, parseFloat(item[4])]);
calculateAggregatedSeries();
await fetchAaveSnapshots();
const cutoff = getOldestTransactionDate();
currentCutoffMs = cutoff;
refreshAllCharts(cutoff);
startPolling();
} catch (error) {
console.error("Dashboard error:", error);
}
}
function setupBtcCard(data) {
const initialPrice = data[0][1];
const currentPrice = data[data.length - 1][1];
const percentChange = ((currentPrice - initialPrice) / initialPrice) * 100;
updateBtcUI(currentPrice, percentChange);
const options = getBaseChartOptions('instance-btc', data, orangeBrandColor, true);
const chart = new ApexCharts(document.querySelector("#chart-container-btc"), options);
chart.render();
window.btcChart = chart;
}
function updateBtcUI(price, percent) {
document.getElementById('price-card-btc').innerText = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(price);
if (percent !== 0) {
const retEl = document.getElementById('return-card-btc');
retEl.innerText = `${percent >= 0 ? '+' : ''}${percent.toFixed(1)}%`;
retEl.className = `text-lg font-bold ${percent >= 0 ? 'text-green-400' : 'text-red-400'}`;
}
const currentUsdVal = currentNetHeld * price;
const totalPnl = currentUsdVal - currentBuyCost;
const pnlPercent = currentBuyCost > 0 ? (totalPnl / currentBuyCost) * 100 : 0;
document.getElementById('current-usd-val').innerText = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(currentUsdVal);
const pnlEl = document.getElementById('total-pnl-val');
pnlEl.innerText = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(totalPnl);
pnlEl.className = `text-xl font-bold ${totalPnl >= 0 ? 'text-green-400' : 'text-red-400'}`;
const pnlPctEl = document.getElementById('pnl-percent-val');
pnlPctEl.innerText = `${totalPnl >= 0 ? '+' : ''}${pnlPercent.toFixed(2)}%`;
pnlPctEl.className = `text-xs font-bold mt-1 ${totalPnl >= 0 ? 'text-green-400' : 'text-red-400'}`;
}
function setupCumulCard(cutoff) {
const filteredData = currentAggregatedSeries.filter(d => d[0] >= cutoff);
const options = getBaseChartOptions('instance-cumul', filteredData, orangeBrandColor, false);
const chart = new ApexCharts(document.querySelector("#chart-container-cumul"), options);
chart.render();
window.cumulChart = chart;
}
function setupSatsCard(cutoff) {
const rawFiltered = dailySatsData.filter(d => d.ts >= cutoff);
const rollingAvg = rawFiltered.map(d => [d.ts, Math.round(d.rolling_sats)]);
const latestAvg = rollingAvg.length > 0 ? rollingAvg[rollingAvg.length - 1][1] : 0;
document.getElementById('avg-sats-val').innerText = new Intl.NumberFormat('en-US').format(Math.round(latestAvg));
const options = {
chart: {
id: 'instance-sats',
type: 'area',
height: 200,
background: 'transparent',
toolbar: { show: false },
sparkline: { enabled: false },
zoom: { enabled: true, type: 'x', autoScaleYaxis: true },
animations: { enabled: false }
},
series: [{ name: 'Avg Sats/Day', data: rollingAvg }],
dataLabels: { enabled: false },
colors: [orangeBrandColor],
stroke: { curve: 'smooth', width: 2 },
fill: {
type: 'gradient',
gradient: {
type: 'vertical',
shadeIntensity: 0,
colorStops: [
{ offset: 0, color: orangeBrandColor, opacity: 0.16 },
{ offset: 100, color: orangeBrandColor, opacity: 0.0 }
]
}
},
grid: { show: false, padding: { left: 0, right: 0, top: 0, bottom: 0 } },
markers: { size: 0, hover: { size: 5 } },
xaxis: {
type: 'datetime',
labels: { show: true, style: { colors: '#4B5563', fontSize: '10px', fontWeight: 600 }, datetimeFormatter: { year: 'yyyy', month: 'MMM yy', day: 'dd MMM' } },
axisBorder: { show: false },
axisTicks: { show: false }
},
yaxis: {
opposite: true,
labels: {
offsetX: -10,
style: { colors: '#4B5563', fontSize: '10px', fontWeight: 600 },
formatter: (val) => {
if (val >= 1e6) return (val / 1e6).toFixed(0) + 'M';
if (val >= 1e3) return (val / 1e3).toFixed(0) + 'k';
return val;
}
},
axisBorder: { show: false },
axisTicks: { show: false }
},
tooltip: {
enabled: true,
theme: 'dark',
shared: false,
intersect: false,
custom: function({ series, seriesIndex, dataPointIndex, w }) {
const rawFiltered = dailySatsData.filter(d => d.ts >= currentCutoffMs);
const item = rawFiltered[dataPointIndex];
if (!item) return '';
const date = new Date(item.ts);
const dateString = date.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });
const btcVal = parseFloat(item.btc_val).toFixed(4);
const price = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', maximumFractionDigits: 0 }).format(item.price);
const dollarDay = (parseFloat(item.btc_val) * item.price);
const dollarFormatted = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', minimumFractionDigits: 0, maximumFractionDigits: 0 }).format(dollarDay);
const daysSince = item.days_since;
const cumulHeld = item.cumul_btc.toFixed(4);
const satsFormatted = new Intl.NumberFormat('en-US').format(Math.round(item.rolling_sats));
return `
<div class="rounded-lg py-2 px-4 text-left">
<div class="text-gray-400 text-[10px] font-semibold uppercase tracking-tighter mb-3">${dateString}</div>
<div class="mb-3">
<div class="text-orange-400 text-xs font-bold uppercase mb-1">
<span class="text-base font-medium mr-1">₿</span>${btcVal}/day
</div>
<div class="text-gray-300 text-xs">Dollar Amount/Day</div>
<div class="text-white text-lg font-medium">${dollarFormatted}</div>
</div>
<div class="border-t border-gray-600/50 pt-2.5 mb-3">
<div class="text-gray-400 text-[10px] uppercase mb-1.5">Calculation</div>
<div class="text-gray-300 text-xs">
<span class="text-orange-400">₿</span> ${btcVal} × ${price}
</div>
</div>
<div class="border-t border-gray-600/50 pt-2.5 mb-3">
<div class="text-gray-400 text-[10px] uppercase mb-1">Days Since First Purchase</div>
<div class="text-white text-lg font-medium">${daysSince}</div>
</div>
<div class="border-t border-gray-600/50 pt-2.5">
<div class="text-gray-400 text-[10px] uppercase mb-1">Total Holdings</div>
<div class="text-orange-400 text-base font-medium">
<span class="mr-1">₿</span>${cumulHeld}
</div>
</div>
</div>
`;
}
},
crosshairs: { show: true, width: 1, position: 'back', stroke: { color: '#4B5563', width: 1, dashArray: 3 } }
};
const chart = new ApexCharts(document.querySelector("#chart-container-sats"), options);
chart.render();
window.satsChart = chart;
}
function setupBreakdownCard(cutoff) {
const opts = {
chart: {
id: 'instance-breakdown',
type: 'area',
height: 200,
background: 'transparent',
toolbar: { show: false },
sparkline: { enabled: false },
zoom: { enabled: true, type: 'x', autoScaleYaxis: true },
animations: { enabled: false }
},
series: [
{ name: 'Total Holdings', data: totalCumulData.filter(d => d[0] >= cutoff) },
{ name: 'On Aave', data: aaveCumulData.filter(d => d[0] >= cutoff) }
],
dataLabels: { enabled: false },
colors: [orangeBrandColor, blueBrandColor],
stroke: { curve: 'smooth', width: 2 },
fill: {
type: 'gradient',
gradient: {
type: 'vertical',
shadeIntensity: 0,
colorStops: [
[
{ offset: 0, color: orangeBrandColor, opacity: 0.16 },
{ offset: 100, color: orangeBrandColor, opacity: 0 }
],
[
{ offset: 0, color: blueBrandColor, opacity: 0.16 },
{ offset: 100, color: blueBrandColor, opacity: 0 }
]
]
}
},
grid: { show: false, padding: { left: 0, right: 0, top: 0, bottom: 0 } },
markers: {
size: 0,
strokeColors: [orangeBrandColor, blueBrandColor],
strokeWidth: 3,
hover: { size: 5 }
},
xaxis: {
type: 'datetime',
labels: { show: true, style: { colors: '#4B5563', fontSize: '10px', fontWeight: 600 }, datetimeFormatter: { year: 'yyyy', month: 'MMM yy', day: 'dd MMM' } },
axisBorder: { show: false },
axisTicks: { show: false }
},
yaxis: {
opposite: true,
labels: {
offsetX: -10,
style: { colors: '#4B5563', fontSize: '10px', fontWeight: 600 },
formatter: (val) => val.toFixed(4)
},
axisBorder: { show: false },
axisTicks: { show: false }
},
tooltip: {
enabled: true,
theme: 'dark',
shared: true,
intersect: false,
custom: function({ series, seriesIndex, dataPointIndex, w }) {
const item = totalCumulData.filter(d => d[0] >= cutoff)[dataPointIndex];
if (!item) return '';
const date = new Date(item[0]);
const dateString = date.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });
const total = item[1];
const aave = aaveCumulData.filter(d => d[0] >= cutoff)[dataPointIndex][1];
const delta = total - aave;
return `
<div class="rounded-lg py-2 px-4 text-left">
<div class="text-gray-400 text-[10px] font-semibold uppercase tracking-tighter mb-3">${dateString}</div>
<div class="flex items-center justify-between mb-2">
<div class="flex items-center gap-1.5">
<div class="w-2.5 h-2.5 rounded-full" style="background-color: ${orangeBrandColor};"></div>
<span class="text-gray-300 text-xs">Total</span>
</div>
<span class="text-orange-400 text-sm font-bold">${total.toFixed(6)}</span>
</div>
<div class="flex items-center justify-between mb-2">
<div class="flex items-center gap-1.5">
<div class="w-2.5 h-2.5 rounded-full" style="background-color: ${blueBrandColor};"></div>
<span class="text-gray-300 text-xs">On Aave</span>
</div>
<span class="text-blue-400 text-sm font-bold">${aave.toFixed(6)}</span>
</div>
<div class="flex items-center justify-between mb-3">
<div class="flex items-center gap-1.5">
<div class="w-2.5 h-2.5 rounded-full" style="background-color: #22c55e;"></div>
<span class="text-gray-300 text-xs">Delta</span>
</div>
<span class="text-green-400 text-sm font-bold">${delta.toFixed(6)}</span>
</div>
</div>
`;
}
},
legend: {
position: 'top',
horizontalAlign: 'left',
fontSize: '10px',
fontFamily: 'sans-serif',
labels: { colors: '#4B5563' },
markers: { width: 8, height: 8, radius: 12, offsetX: -4 },
itemMargin: { horizontal: 8, vertical: 0 }
},
crosshairs: { show: true, width: 1, position: 'back', stroke: { color: '#4B5563', width: 1, dashArray: 3 } }
};
const chart = new ApexCharts(document.querySelector("#chart-container-breakdown"), opts);
chart.render();
window.breakdownChart = chart;
}
function startTickUpdates(data) {
tickIntervalId = setInterval(() => {
const tickShift = (Math.random() * 16) - 8;
let currentVal = data[data.length - 1][1] + tickShift;
data[data.length - 1][1] = parseFloat(currentVal.toFixed(2));
const initialPrice = data[0][1];
const percentChange = ((currentVal - initialPrice) / initialPrice) * 100;
updateBtcUI(currentVal, percentChange);
if (window.btcChart) {
const currentXMin = window.btcChart.w.globals.minX;
const currentXMax = window.btcChart.w.globals.maxX;
window.btcChart.updateOptions({
series: [{ data: data }],
xaxis: { min: currentXMin, max: currentXMax }
}, false, false, false);
}
}, 2500);
}
initDashboardGrid();
</script>
</body>
</html>