From a676678e6aa5bf37e5895351fe49c2769742555e Mon Sep 17 00:00:00 2001
From: Tony BONNIN <stopyz@gmail.com>
Date: Sun, 8 Sep 2024 22:42:34 +0200
Subject: [PATCH] Improve Template & Map Design

Signed-off-by: Tony BONNIN <stopyz@gmail.com>
---
 .gitignore                                    |   1 +
 app/acf-util/welcome-html.lsp                 | 102 +--
 app/template-html.lsp                         |   4 +-
 .../dashboard/css/dashboard-main/dark.css     |   8 +-
 .../dashboard/css/dashboard-main/icons.css    |   2 +-
 .../dashboard/css/dashboard-main/logon.css    |   4 +-
 .../dashboard/css/dashboard-main/mobile.css   |  46 +-
 .../dashboard/css/dashboard-pages/welcome.css |  52 +-
 .../dashboard/img/reboot/uptime_calendar.svg  | 732 +++++++++---------
 www/skins/static/reset.css                    |   5 -
 10 files changed, 509 insertions(+), 447 deletions(-)

diff --git a/.gitignore b/.gitignore
index b218073..08386a3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,6 +18,7 @@
 *.rar
 *.tar
 *.zip
+*.txt
 
 # Logs and databases #
 ######################
diff --git a/app/acf-util/welcome-html.lsp b/app/acf-util/welcome-html.lsp
index 98078c9..d6acaee 100644
--- a/app/acf-util/welcome-html.lsp
+++ b/app/acf-util/welcome-html.lsp
@@ -106,25 +106,6 @@ local function calculate_last_reboot(uptime_seconds)
     local reboot_date_time = os.date("%Y-%m-%d %H:%M", reboot_time) -- Exclude seconds
     return reboot_date_time, reboot_time
 end
--- Function to parse dmesg and extract reboot times based on log timestamps
-local function parse_dmesg()
-    local reboots = {}
-    local handle = io.popen("dmesg | grep -i 'Command line:'")
-    local result = handle:read("*a")
-    handle:close()
-
-    if result and result ~= "" then
-        for line in result:gmatch("[^\r\n]+") do
-            local dmesg_time = line:match("%[(%d+%.%d+)]")
-            if dmesg_time then
-                local reboot_time = os.time() - tonumber(dmesg_time)
-                table.insert(reboots, reboot_time)
-            end
-        end
-    end
-
-    return reboots
-end
 -- Function to retrieve the current system uptime from the system
 local function get_current_uptime()
     local uptime_output = sys.value.uptime.value
@@ -162,18 +143,14 @@ local function parse_last_reboot_file(filename)
     file:close()
     return reboots
 end
--- Function to analyze both dmesg reboots, last_reboot file, and the current system uptime
+-- Function to analyze reboots from the last_reboot file and the current system uptime
 local function analyze_reboots_and_uptime(last_reboot_filename)
-    local dmesg_reboots = parse_dmesg()
     local last_reboot_file_reboots = parse_last_reboot_file(last_reboot_filename)
     local uptime_seconds = get_current_uptime()
     local last_reboot_from_uptime, last_reboot_time = calculate_last_reboot(uptime_seconds)
-    local reboot_data = "Reboots from dmesg and last_reboot file:\n"
-    -- Combine reboots from dmesg and last_reboot file
+    local reboot_data = "Reboots from last_reboot file:\n" 
+    -- Combine reboots from last_reboot file
     local combined_reboots = {}
-    for _, reboot_time in ipairs(dmesg_reboots) do
-        table.insert(combined_reboots, reboot_time)
-    end
     for _, reboot_time in ipairs(last_reboot_file_reboots) do
         table.insert(combined_reboots, reboot_time)
     end
@@ -188,10 +165,39 @@ local function analyze_reboots_and_uptime(last_reboot_filename)
     reboot_data = reboot_data .. "\nLast Reboot from uptime: " .. last_reboot_from_uptime .. "\n"
     return reboot_data, last_reboot_time, combined_reboots
 end
+-- Function to check if the reboot data already exists in the file without seconds
+local function check_if_reboot_exists(reboot_data, filename)
+    local file = io.open(filename, "r")
+    if not file then return false end
+
+    local reboot_data_without_seconds = reboot_data:match("%Y%-m%-d %H:%M") -- Match format without seconds
+
+    for line in file:lines() do
+        local line_without_seconds = line:match("%Y%-m%-d %H:%M")
+        if line_without_seconds == reboot_data_without_seconds then
+            file:close()
+            return true -- Reboot data already exists
+        end
+    end
+
+    file:close()
+    return false
+end
+-- Function to save the reboot data to a file only if it's different (ignoring seconds)
+local function save_reboot_data(reboot_data, filename)
+    -- Check if the reboot data already exists
+    if not check_if_reboot_exists(reboot_data, filename) then
+        local file = io.open(filename, "a")
+        if file then
+            file:write(reboot_data)
+            file:close()
+        end
+    end
+end
 -- Function to generate the SVG calendar
 local function generate_calendar(uptime_data)
-    local box_size = 15
-    local margin = 1 -- Spacing between boxes
+    local box_size = 7
+    local margin = 2 -- Spacing between boxes
     local cols = 52 -- 52 weeks
     local width = cols * (box_size + margin)
     local height = 7 * (box_size + margin) -- 7 days per week
@@ -202,30 +208,27 @@ local function generate_calendar(uptime_data)
     for i = 1, 365 do
         local x = math.floor((i-1) / 7) * (box_size + margin) -- X position (week)
         local y = ((i-1) % 7) * (box_size + margin) -- Y position (day of the week)
-
-        -- Calculate the date and time corresponding to day i
+        -- Calculate the date corresponding to day i
         local time = os.time({year = os.date("*t").year, month = 1, day = 1}) + (i - 1) * 24 * 3600
-        local date_str = os.date("%Y-%m-%d %H:%M", time)
-
+        local date_str = os.date("%Y-%m-%d", time)
         local color
-
         if i > current_day_of_year then
-            color = "#373737" -- Gray for future days
+            color = "#7676761f" -- future days
         else
             local reboots = uptime_data[i].reboots
             if reboots == 0 then
                 color = "#00EF5C" -- green for no reboots
             elseif reboots == 1 then
-                color = "#d4e600" -- yellow for 1 reboot
+                color = "#E5FA00" -- yellow for 1 reboot
             elseif reboots > 1 then
-                color = "#ffcc00" -- orange for more than 1 reboot
+                color = "#FFB700" -- orange for more than 1 reboot
             else
-                color = "#373737" -- Default for unknown days
+                color = "#7676761f" -- Default for unknown days
             end
         end
         svg = svg .. string.format(
-            '<rect x="%d" y="%d" width="%d" height="%d" fill="%s" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="%d" title="%s"/>\n',
-            x, y, box_size, box_size, color, i, date_str
+            '<rect x="%d" y="%d" width="%d" height="%d" fill="%s" rx="1" stroke="#00000000" stroke-width="0.5" title="%s"/>\n',
+            x, y, box_size, box_size, color, date_str
         )
     end
     svg = svg .. '</svg>'
@@ -264,11 +267,13 @@ end
 -- Start the process
 local last_reboot_filename = "../../www/skins/dashboard/logs/reboot/last_reboot.txt"
 local reboot_data, last_reboot_time, combined_reboots = analyze_reboots_and_uptime(last_reboot_filename)
+save_reboot_data(reboot_data, last_reboot_filename)
 -- Analyze uptimes and generate uptime data
 local uptime_data = analyze_uptimes(combined_reboots, last_reboot_time)
 -- Generate the SVG calendar
 local svg_content = generate_calendar(uptime_data)
 save_svg_file(svg_content, "../../www/skins/dashboard/img/reboot/uptime_calendar.svg")
+local cache_time = os.date("%Y%m%d%H%M%S")
 %>
 <% local header_level = htmlviewfunctions.displaysectionstart(cfe({label="Dashboard"}), page_info) %>
 <!-- Dashboard App Block - LINE 1 -->
@@ -423,18 +428,19 @@ save_svg_file(svg_content, "../../www/skins/dashboard/img/reboot/uptime_calendar
     <span class="month november">November</span>
     <span class="month december">December</span>
 </p>
-<img id="uptime-calendar" src="/skins/dashboard/img/reboot/uptime_calendar.svg" width="100%" height="auto" xmlns="http://www.w3.org/2000/svg" />
+<img id="uptime-calendar" src="/skins/dashboard/img/reboot/uptime_calendar.svg?<%= cache_time %>" width="100%" height="auto" xmlns="http://www.w3.org/2000/svg" />
 <div id="tooltip" style="position: absolute; display: none; background-color: #fff; border: 1px solid #000; padding: 5px;"></div>
-<div class="chart-bar chart-legend chart-heatmap" style="margin:0px;padding:0px;border:0px;margin-top:5px">
-		<p id="legend" width="100px"><b>Legend</b> :</p>
-		<p id="legend-uptime-0reboot"></p>
-		<p width="35px"><b> No Reboot</b></p>
-		<p id="legend-uptime-1reboot"></p>
-		<p width="35px"><b> Reboot 1 Time</b></p>
-		<p id="legend-uptime-2reboot"></p>
-		<p width="35px"><b> More 1 Reboot</b></p>
+<div class="chart-bar chart-legend chart-heatmap">
+		<span><p id="legend-uptime-0reboot"></p><span class="legend-title">No Reboot</span></span>
+		<span><p id="legend-uptime-1reboot"></p><span class="legend-title">Reboot 1 Time</span></span>
+		<span><p id="legend-uptime-2reboot"></p><span class="legend-title">More 1 Reboot</span></span>
 </div>
 <script>
+document.addEventListener('DOMContentLoaded', function() {
+    var currentMonth = new Date().getMonth();
+    var months = document.querySelectorAll('.months-list .month');
+    months[currentMonth].classList.add('active');
+});
 </script>
 <!-- Dashboard App Block - LINE 2 -->
 <p class="dashboard-title uptime-heatmap-title"><i class="fa-solid fa-square"></i> System Health Charts</p>
diff --git a/app/template-html.lsp b/app/template-html.lsp
index aefa4fc..4474d3b 100644
--- a/app/template-html.lsp
+++ b/app/template-html.lsp
@@ -124,7 +124,7 @@ end
 						print("<div id='header-left'><a href='javascript:void(0);' class='icon' id='toggle-menu' title='Menu' onclick='toggleMenu()'><i class='fa-solid fa-bars'></i></a>")
 						print("<a class='header-logo home-logo' href=".. html.html_escape(pageinfo.wwwprefix) .. "/cgi-bin/acf/acf-util/welcome/read".."/></a></div>")
 						print("<div id='header-links'>")
-						print("<span class='last-logon'><i class='fa-solid fa-key'></i> &nbsp; Last Logon <span class='hdivider'>|</span> ")
+						print("<span class='last-logon'><i class='fa-solid fa-key'></i> &nbsp; <span class='mobile'>Last Logon <span class='hdivider'>|</span></span> ")
 						if username and ip and time then
 							print("<span class='logon-data'><span class='username'>".. username .."</span> <span class='hdivider'>@</span> ")
 							print("<span class='ip'>".. ip .."</span> <span class='hdivider'>|</span> ") 
@@ -215,7 +215,7 @@ end
 		</div> <!-- page -->
 <% end --pageinfo.skinned%>
 		<footer id="footer" style="cursor: pointer;" onclick="window.open('https://www.alpinelinux.org/about/', '_blank')">
-				<a href="https://www.alpinelinux.org/about/" target="_blank">
+				<a href="https://github.com/trinity-labs/official" target="_blank">
 				© TRIИITY | 2022 - <%= (os.date("%Y")) %>
 				</a>
 		</footer> <!-- footer -->
diff --git a/www/skins/dashboard/css/dashboard-main/dark.css b/www/skins/dashboard/css/dashboard-main/dark.css
index 5e5efb9..0879227 100644
--- a/www/skins/dashboard/css/dashboard-main/dark.css
+++ b/www/skins/dashboard/css/dashboard-main/dark.css
@@ -24,13 +24,13 @@
 }
 
 .dark-theme header {
-    background: linear-gradient(90deg, #1a1a1a, #1a1a1a, #0a000a) !important;
+    background: linear-gradient(90deg, #1a1a1a, #1a1a1a, #0a000a) no-repeat;
     box-shadow: none !important;
 }
 
 .dark-theme .header-logo,
 .dark-theme .logon-logon #header {
-	background-image: url(../../img/logos/logo-trinity-dashboard.png) !important;
+	background-image: url(../../img/logos/logo-trinity-dashboard.png);
 }
 
 .dark-theme tbody {
@@ -230,7 +230,7 @@
     color: #b3b3b3;
 }
 
-.last-logon i,
-.last-logon .time {
+.dark-theme .last-logon i,
+.dark-theme .last-logon .time {
     color: #545454;
 }
\ No newline at end of file
diff --git a/www/skins/dashboard/css/dashboard-main/icons.css b/www/skins/dashboard/css/dashboard-main/icons.css
index d9acdb9..f1be405 100644
--- a/www/skins/dashboard/css/dashboard-main/icons.css
+++ b/www/skins/dashboard/css/dashboard-main/icons.css
@@ -357,7 +357,7 @@
 	display: inline-block;
     margin: 0 0.5rem 0 0;
     font-size: 1rem;
-    color: #00cbb4;
+    color: #00bac9;
 }
 
 .welcome .dashboard-title-network-stats::before {
diff --git a/www/skins/dashboard/css/dashboard-main/logon.css b/www/skins/dashboard/css/dashboard-main/logon.css
index 740edbc..f163199 100644
--- a/www/skins/dashboard/css/dashboard-main/logon.css
+++ b/www/skins/dashboard/css/dashboard-main/logon.css
@@ -34,7 +34,7 @@ html.app-logon {
 
 .logon-logon #header {
     background-size: 7rem !important;
-    background-image: url(../../img/logos/logo-trinity-full-acf.png) !important;
+    background-image: url(../../img/logos/logo-trinity-full-acf.png);
     position: relative !important;
     border-radius: 10px 10px 0 0 !important;
     background-position: 3.5rem center !important;
@@ -231,10 +231,10 @@ input#password::-webkit-input-placeholder::before {
     top: 0.5rem;
     width: 21% !important;
     padding: 0.15rem 1.25rem !important;
-    left: 7.5%;
     border: 2px solid rgb(255 43 43);
     text-align: center !important;
     background: none;
+    font-weight: normal !important;
 }
 
 .logon .icon-header {
diff --git a/www/skins/dashboard/css/dashboard-main/mobile.css b/www/skins/dashboard/css/dashboard-main/mobile.css
index 5ced2c4..6e50381 100644
--- a/www/skins/dashboard/css/dashboard-main/mobile.css
+++ b/www/skins/dashboard/css/dashboard-main/mobile.css
@@ -2,8 +2,20 @@
  * MEDIA QUERIES
  *----------------------------------------------------------------------------------
  */
+ 
+@media only screen and (min-device-width : 0px) and (max-device-width : 779px) {
 
-@media only screen and (min-device-width : 0px) and (max-device-width : 1400px) {
+	#user-logon {
+    display: none !important;
+	}
+
+}
+
+@media only screen and (min-device-width : 0px) and (max-device-width : 1279px) {
+	
+	.mobile {
+	display: none !important;
+	}
 
 	html, body {
 	position: relative;
@@ -27,7 +39,6 @@
         padding: 0 !important;
         position: absolute !important;
         display: flex;
-        background: white !important;
         flex-direction: row;
         flex-wrap: nowrap;
         background-position: 2rem center !important;
@@ -35,9 +46,32 @@
         width: 100%;
     }
 	
+	#header-links {
+    display: flex;
+    flex-direction: row;
+    align-content: stretch;
+    justify-content: flex-end;
+    align-items: center;
+    flex-wrap: wrap;
+    width: -webkit-fill-available;
+	}
+	
+	.dark-theme header {
+    background: transparent !important;
+	}
+
 	.header-logo {
-	width: 8rem !important;
-    height: 3rem !important;
+	background-image: url(../../img/logos/logo-trinity-dashboard-mobile.png) !important;
+	width: 2.5rem !important;
+    height: 2.5rem !important;
+	}
+	
+	.logon #about-link {
+    display: inherit !important;
+	}
+	
+	#home-link, #about-link {
+    display: none !important;
 	}
 	
 	#content p,
@@ -146,7 +180,7 @@
 	}
 	
 	.logon-logon #header {
-    background-image: url(../../img/logos/logo-trinity-full-acf-white.png) !important;
+    background-image: url(../../img/logos/logo-trinity-dashboard.png) !important;
     position: relative !important;
     border-radius: 10px 10px 0 0 !important;
     background-position: 1.25rem center !important;
@@ -157,7 +191,7 @@
     width: 138.5vw;
     height: 5.5rem !important;
     background-repeat: no-repeat !important;
-	}
+}
 	
 	#userid {
     margin-top: 0rem !important;
diff --git a/www/skins/dashboard/css/dashboard-pages/welcome.css b/www/skins/dashboard/css/dashboard-pages/welcome.css
index fcfe92d..85f53a1 100644
--- a/www/skins/dashboard/css/dashboard-pages/welcome.css
+++ b/www/skins/dashboard/css/dashboard-pages/welcome.css
@@ -79,7 +79,7 @@ span.dashboard-infos {
     background: none !important;
     font-weight: 600;
     text-transform: uppercase;
-    margin: 0.5rem 0 1.75rem;
+    margin: 0.5rem 0 1rem;
     font-family: Arial Black;
     color: #b7b7b7;
     font-size: 0.75rem;
@@ -917,14 +917,22 @@ input:checked + .slider:before {
 
 .value-title.value-net-local {
     text-transform: lowercase;
+    color: #00bac9;
 }
 
 .disk-list {
     white-space: pre;
-    display: block;
-	width: -moz-available !important;
+    display: flex;
+    width: -moz-available !important;
     width: -webkit-fill-available !important;
     width: fill-available !important;
+    flex-direction: row;
+    flex-wrap: wrap;
+    justify-content: space-between;
+}
+
+#disk-listing {
+    width: 45%;
 }
 
 #content .chart-storage {
@@ -1063,35 +1071,53 @@ input:checked + .slider:before {
 
 #legend-uptime-0reboot {
     padding: 0.55rem 0.01rem;
-    width: 5rem !important;
+    width: 1rem !important;
     margin: 0 0.5rem;
     border-radius: 2px;
 	color: green;
-	background: #00EF5C;
+	background: #00ef5c;
+    display: inline-block;
+    position: relative;
+    top: 0.25rem;
 }
 
 #legend-uptime-1reboot {
     padding: 0.55rem 0.01rem;
-    width: 5rem !important;
+    width: 1rem !important;
     margin: 0 0.5rem;
     border-radius: 2px;
-	background: #d4e600;
+	background: #e5fa00;
+	display: inline-block;
+    position: relative;
+    top: 0.25rem;
 }
 
 #legend-uptime-2reboot {
     padding: 0.55rem 0.01rem;
-    width: 5rem !important;
+    width: 1rem !important;
     margin: 0 0.5rem;
     border-radius: 2px;
-    background: #ffcc00;
-}
-
-.chart-bar.chart-legend.chart-heatmap {
-    margin: 0 0 3rem !important;
+    background: #ffb700;
+    display: inline-block;
+    position: relative;
+    top: 0.25rem;
 }
 
 .month:hover {
     color: #b1b1b1;
     cursor: pointer;
     font-weight: 400;
+}
+
+.month.active {
+    font-weight: bold;
+    color: #b1b1b1;
+}
+
+.chart-heatmap {
+    display: flex;
+    flex-direction: row;
+    flex-wrap: nowrap;
+    justify-content: space-around;
+	margin: 0 0 3rem !important;
 }
\ No newline at end of file
diff --git a/www/skins/dashboard/img/reboot/uptime_calendar.svg b/www/skins/dashboard/img/reboot/uptime_calendar.svg
index 6a7e557..fb9bf37 100644
--- a/www/skins/dashboard/img/reboot/uptime_calendar.svg
+++ b/www/skins/dashboard/img/reboot/uptime_calendar.svg
@@ -1,367 +1,367 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="832" height="112">
-<rect x="0" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="1" title="2024-01-01 12:00"/>
-<rect x="0" y="16" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="2" title="2024-01-02 12:00"/>
-<rect x="0" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="3" title="2024-01-03 12:00"/>
-<rect x="0" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="4" title="2024-01-04 12:00"/>
-<rect x="0" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="5" title="2024-01-05 12:00"/>
-<rect x="0" y="80" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="6" title="2024-01-06 12:00"/>
-<rect x="0" y="96" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="7" title="2024-01-07 12:00"/>
-<rect x="16" y="0" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="8" title="2024-01-08 12:00"/>
-<rect x="16" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="9" title="2024-01-09 12:00"/>
-<rect x="16" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="10" title="2024-01-10 12:00"/>
-<rect x="16" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="11" title="2024-01-11 12:00"/>
-<rect x="16" y="64" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="12" title="2024-01-12 12:00"/>
-<rect x="16" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="13" title="2024-01-13 12:00"/>
-<rect x="16" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="14" title="2024-01-14 12:00"/>
-<rect x="32" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="15" title="2024-01-15 12:00"/>
-<rect x="32" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="16" title="2024-01-16 12:00"/>
-<rect x="32" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="17" title="2024-01-17 12:00"/>
-<rect x="32" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="18" title="2024-01-18 12:00"/>
-<rect x="32" y="64" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="19" title="2024-01-19 12:00"/>
-<rect x="32" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="20" title="2024-01-20 12:00"/>
-<rect x="32" y="96" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="21" title="2024-01-21 12:00"/>
-<rect x="48" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="22" title="2024-01-22 12:00"/>
-<rect x="48" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="23" title="2024-01-23 12:00"/>
-<rect x="48" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="24" title="2024-01-24 12:00"/>
-<rect x="48" y="48" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="25" title="2024-01-25 12:00"/>
-<rect x="48" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="26" title="2024-01-26 12:00"/>
-<rect x="48" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="27" title="2024-01-27 12:00"/>
-<rect x="48" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="28" title="2024-01-28 12:00"/>
-<rect x="64" y="0" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="29" title="2024-01-29 12:00"/>
-<rect x="64" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="30" title="2024-01-30 12:00"/>
-<rect x="64" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="31" title="2024-01-31 12:00"/>
-<rect x="64" y="48" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="32" title="2024-02-01 12:00"/>
-<rect x="64" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="33" title="2024-02-02 12:00"/>
-<rect x="64" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="34" title="2024-02-03 12:00"/>
-<rect x="64" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="35" title="2024-02-04 12:00"/>
-<rect x="80" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="36" title="2024-02-05 12:00"/>
-<rect x="80" y="16" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="37" title="2024-02-06 12:00"/>
-<rect x="80" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="38" title="2024-02-07 12:00"/>
-<rect x="80" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="39" title="2024-02-08 12:00"/>
-<rect x="80" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="40" title="2024-02-09 12:00"/>
-<rect x="80" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="41" title="2024-02-10 12:00"/>
-<rect x="80" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="42" title="2024-02-11 12:00"/>
-<rect x="96" y="0" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="43" title="2024-02-12 12:00"/>
-<rect x="96" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="44" title="2024-02-13 12:00"/>
-<rect x="96" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="45" title="2024-02-14 12:00"/>
-<rect x="96" y="48" width="15" height="15" fill="#ffcc00" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="46" title="2024-02-15 12:00"/>
-<rect x="96" y="64" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="47" title="2024-02-16 12:00"/>
-<rect x="96" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="48" title="2024-02-17 12:00"/>
-<rect x="96" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="49" title="2024-02-18 12:00"/>
-<rect x="112" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="50" title="2024-02-19 12:00"/>
-<rect x="112" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="51" title="2024-02-20 12:00"/>
-<rect x="112" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="52" title="2024-02-21 12:00"/>
-<rect x="112" y="48" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="53" title="2024-02-22 12:00"/>
-<rect x="112" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="54" title="2024-02-23 12:00"/>
-<rect x="112" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="55" title="2024-02-24 12:00"/>
-<rect x="112" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="56" title="2024-02-25 12:00"/>
-<rect x="128" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="57" title="2024-02-26 12:00"/>
-<rect x="128" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="58" title="2024-02-27 12:00"/>
-<rect x="128" y="32" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="59" title="2024-02-28 12:00"/>
-<rect x="128" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="60" title="2024-02-29 12:00"/>
-<rect x="128" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="61" title="2024-03-01 12:00"/>
-<rect x="128" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="62" title="2024-03-02 12:00"/>
-<rect x="128" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="63" title="2024-03-03 12:00"/>
-<rect x="144" y="0" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="64" title="2024-03-04 12:00"/>
-<rect x="144" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="65" title="2024-03-05 12:00"/>
-<rect x="144" y="32" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="66" title="2024-03-06 12:00"/>
-<rect x="144" y="48" width="15" height="15" fill="#ffcc00" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="67" title="2024-03-07 12:00"/>
-<rect x="144" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="68" title="2024-03-08 12:00"/>
-<rect x="144" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="69" title="2024-03-09 12:00"/>
-<rect x="144" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="70" title="2024-03-10 12:00"/>
-<rect x="160" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="71" title="2024-03-11 12:00"/>
-<rect x="160" y="16" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="72" title="2024-03-12 12:00"/>
-<rect x="160" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="73" title="2024-03-13 12:00"/>
-<rect x="160" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="74" title="2024-03-14 12:00"/>
-<rect x="160" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="75" title="2024-03-15 12:00"/>
-<rect x="160" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="76" title="2024-03-16 12:00"/>
-<rect x="160" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="77" title="2024-03-17 12:00"/>
-<rect x="176" y="0" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="78" title="2024-03-18 12:00"/>
-<rect x="176" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="79" title="2024-03-19 12:00"/>
-<rect x="176" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="80" title="2024-03-20 12:00"/>
-<rect x="176" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="81" title="2024-03-21 12:00"/>
-<rect x="176" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="82" title="2024-03-22 12:00"/>
-<rect x="176" y="80" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="83" title="2024-03-23 12:00"/>
-<rect x="176" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="84" title="2024-03-24 12:00"/>
-<rect x="192" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="85" title="2024-03-25 12:00"/>
-<rect x="192" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="86" title="2024-03-26 12:00"/>
-<rect x="192" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="87" title="2024-03-27 12:00"/>
-<rect x="192" y="48" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="88" title="2024-03-28 12:00"/>
-<rect x="192" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="89" title="2024-03-29 12:00"/>
-<rect x="192" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="90" title="2024-03-30 12:00"/>
-<rect x="192" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="91" title="2024-03-31 13:00"/>
-<rect x="208" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="92" title="2024-04-01 13:00"/>
-<rect x="208" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="93" title="2024-04-02 13:00"/>
-<rect x="208" y="32" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="94" title="2024-04-03 13:00"/>
-<rect x="208" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="95" title="2024-04-04 13:00"/>
-<rect x="208" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="96" title="2024-04-05 13:00"/>
-<rect x="208" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="97" title="2024-04-06 13:00"/>
-<rect x="208" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="98" title="2024-04-07 13:00"/>
-<rect x="224" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="99" title="2024-04-08 13:00"/>
-<rect x="224" y="16" width="15" height="15" fill="#ffcc00" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="100" title="2024-04-09 13:00"/>
-<rect x="224" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="101" title="2024-04-10 13:00"/>
-<rect x="224" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="102" title="2024-04-11 13:00"/>
-<rect x="224" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="103" title="2024-04-12 13:00"/>
-<rect x="224" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="104" title="2024-04-13 13:00"/>
-<rect x="224" y="96" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="105" title="2024-04-14 13:00"/>
-<rect x="240" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="106" title="2024-04-15 13:00"/>
-<rect x="240" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="107" title="2024-04-16 13:00"/>
-<rect x="240" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="108" title="2024-04-17 13:00"/>
-<rect x="240" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="109" title="2024-04-18 13:00"/>
-<rect x="240" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="110" title="2024-04-19 13:00"/>
-<rect x="240" y="80" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="111" title="2024-04-20 13:00"/>
-<rect x="240" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="112" title="2024-04-21 13:00"/>
-<rect x="256" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="113" title="2024-04-22 13:00"/>
-<rect x="256" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="114" title="2024-04-23 13:00"/>
-<rect x="256" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="115" title="2024-04-24 13:00"/>
-<rect x="256" y="48" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="116" title="2024-04-25 13:00"/>
-<rect x="256" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="117" title="2024-04-26 13:00"/>
-<rect x="256" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="118" title="2024-04-27 13:00"/>
-<rect x="256" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="119" title="2024-04-28 13:00"/>
-<rect x="272" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="120" title="2024-04-29 13:00"/>
-<rect x="272" y="16" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="121" title="2024-04-30 13:00"/>
-<rect x="272" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="122" title="2024-05-01 13:00"/>
-<rect x="272" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="123" title="2024-05-02 13:00"/>
-<rect x="272" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="124" title="2024-05-03 13:00"/>
-<rect x="272" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="125" title="2024-05-04 13:00"/>
-<rect x="272" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="126" title="2024-05-05 13:00"/>
-<rect x="288" y="0" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="127" title="2024-05-06 13:00"/>
-<rect x="288" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="128" title="2024-05-07 13:00"/>
-<rect x="288" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="129" title="2024-05-08 13:00"/>
-<rect x="288" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="130" title="2024-05-09 13:00"/>
-<rect x="288" y="64" width="15" height="15" fill="#ffcc00" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="131" title="2024-05-10 13:00"/>
-<rect x="288" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="132" title="2024-05-11 13:00"/>
-<rect x="288" y="96" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="133" title="2024-05-12 13:00"/>
-<rect x="304" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="134" title="2024-05-13 13:00"/>
-<rect x="304" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="135" title="2024-05-14 13:00"/>
-<rect x="304" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="136" title="2024-05-15 13:00"/>
-<rect x="304" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="137" title="2024-05-16 13:00"/>
-<rect x="304" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="138" title="2024-05-17 13:00"/>
-<rect x="304" y="80" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="139" title="2024-05-18 13:00"/>
-<rect x="304" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="140" title="2024-05-19 13:00"/>
-<rect x="320" y="0" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="141" title="2024-05-20 13:00"/>
-<rect x="320" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="142" title="2024-05-21 13:00"/>
-<rect x="320" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="143" title="2024-05-22 13:00"/>
-<rect x="320" y="48" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="144" title="2024-05-23 13:00"/>
-<rect x="320" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="145" title="2024-05-24 13:00"/>
-<rect x="320" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="146" title="2024-05-25 13:00"/>
-<rect x="320" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="147" title="2024-05-26 13:00"/>
-<rect x="336" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="148" title="2024-05-27 13:00"/>
-<rect x="336" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="149" title="2024-05-28 13:00"/>
-<rect x="336" y="32" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="150" title="2024-05-29 13:00"/>
-<rect x="336" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="151" title="2024-05-30 13:00"/>
-<rect x="336" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="152" title="2024-05-31 13:00"/>
-<rect x="336" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="153" title="2024-06-01 13:00"/>
-<rect x="336" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="154" title="2024-06-02 13:00"/>
-<rect x="352" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="155" title="2024-06-03 13:00"/>
-<rect x="352" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="156" title="2024-06-04 13:00"/>
-<rect x="352" y="32" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="157" title="2024-06-05 13:00"/>
-<rect x="352" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="158" title="2024-06-06 13:00"/>
-<rect x="352" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="159" title="2024-06-07 13:00"/>
-<rect x="352" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="160" title="2024-06-08 13:00"/>
-<rect x="352" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="161" title="2024-06-09 13:00"/>
-<rect x="368" y="0" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="162" title="2024-06-10 13:00"/>
-<rect x="368" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="163" title="2024-06-11 13:00"/>
-<rect x="368" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="164" title="2024-06-12 13:00"/>
-<rect x="368" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="165" title="2024-06-13 13:00"/>
-<rect x="368" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="166" title="2024-06-14 13:00"/>
-<rect x="368" y="80" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="167" title="2024-06-15 13:00"/>
-<rect x="368" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="168" title="2024-06-16 13:00"/>
-<rect x="384" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="169" title="2024-06-17 13:00"/>
-<rect x="384" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="170" title="2024-06-18 13:00"/>
-<rect x="384" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="171" title="2024-06-19 13:00"/>
-<rect x="384" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="172" title="2024-06-20 13:00"/>
-<rect x="384" y="64" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="173" title="2024-06-21 13:00"/>
-<rect x="384" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="174" title="2024-06-22 13:00"/>
-<rect x="384" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="175" title="2024-06-23 13:00"/>
-<rect x="400" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="176" title="2024-06-24 13:00"/>
-<rect x="400" y="16" width="15" height="15" fill="#ffcc00" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="177" title="2024-06-25 13:00"/>
-<rect x="400" y="32" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="178" title="2024-06-26 13:00"/>
-<rect x="400" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="179" title="2024-06-27 13:00"/>
-<rect x="400" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="180" title="2024-06-28 13:00"/>
-<rect x="400" y="80" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="181" title="2024-06-29 13:00"/>
-<rect x="400" y="96" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="182" title="2024-06-30 13:00"/>
-<rect x="416" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="183" title="2024-07-01 13:00"/>
-<rect x="416" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="184" title="2024-07-02 13:00"/>
-<rect x="416" y="32" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="185" title="2024-07-03 13:00"/>
-<rect x="416" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="186" title="2024-07-04 13:00"/>
-<rect x="416" y="64" width="15" height="15" fill="#ffcc00" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="187" title="2024-07-05 13:00"/>
-<rect x="416" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="188" title="2024-07-06 13:00"/>
-<rect x="416" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="189" title="2024-07-07 13:00"/>
-<rect x="432" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="190" title="2024-07-08 13:00"/>
-<rect x="432" y="16" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="191" title="2024-07-09 13:00"/>
-<rect x="432" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="192" title="2024-07-10 13:00"/>
-<rect x="432" y="48" width="15" height="15" fill="#ffcc00" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="193" title="2024-07-11 13:00"/>
-<rect x="432" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="194" title="2024-07-12 13:00"/>
-<rect x="432" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="195" title="2024-07-13 13:00"/>
-<rect x="432" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="196" title="2024-07-14 13:00"/>
-<rect x="448" y="0" width="15" height="15" fill="#ffcc00" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="197" title="2024-07-15 13:00"/>
-<rect x="448" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="198" title="2024-07-16 13:00"/>
-<rect x="448" y="32" width="15" height="15" fill="#ffcc00" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="199" title="2024-07-17 13:00"/>
-<rect x="448" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="200" title="2024-07-18 13:00"/>
-<rect x="448" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="201" title="2024-07-19 13:00"/>
-<rect x="448" y="80" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="202" title="2024-07-20 13:00"/>
-<rect x="448" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="203" title="2024-07-21 13:00"/>
-<rect x="464" y="0" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="204" title="2024-07-22 13:00"/>
-<rect x="464" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="205" title="2024-07-23 13:00"/>
-<rect x="464" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="206" title="2024-07-24 13:00"/>
-<rect x="464" y="48" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="207" title="2024-07-25 13:00"/>
-<rect x="464" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="208" title="2024-07-26 13:00"/>
-<rect x="464" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="209" title="2024-07-27 13:00"/>
-<rect x="464" y="96" width="15" height="15" fill="#ffcc00" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="210" title="2024-07-28 13:00"/>
-<rect x="480" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="211" title="2024-07-29 13:00"/>
-<rect x="480" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="212" title="2024-07-30 13:00"/>
-<rect x="480" y="32" width="15" height="15" fill="#ffcc00" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="213" title="2024-07-31 13:00"/>
-<rect x="480" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="214" title="2024-08-01 13:00"/>
-<rect x="480" y="64" width="15" height="15" fill="#ffcc00" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="215" title="2024-08-02 13:00"/>
-<rect x="480" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="216" title="2024-08-03 13:00"/>
-<rect x="480" y="96" width="15" height="15" fill="#ffcc00" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="217" title="2024-08-04 13:00"/>
-<rect x="496" y="0" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="218" title="2024-08-05 13:00"/>
-<rect x="496" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="219" title="2024-08-06 13:00"/>
-<rect x="496" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="220" title="2024-08-07 13:00"/>
-<rect x="496" y="48" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="221" title="2024-08-08 13:00"/>
-<rect x="496" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="222" title="2024-08-09 13:00"/>
-<rect x="496" y="80" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="223" title="2024-08-10 13:00"/>
-<rect x="496" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="224" title="2024-08-11 13:00"/>
-<rect x="512" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="225" title="2024-08-12 13:00"/>
-<rect x="512" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="226" title="2024-08-13 13:00"/>
-<rect x="512" y="32" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="227" title="2024-08-14 13:00"/>
-<rect x="512" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="228" title="2024-08-15 13:00"/>
-<rect x="512" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="229" title="2024-08-16 13:00"/>
-<rect x="512" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="230" title="2024-08-17 13:00"/>
-<rect x="512" y="96" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="231" title="2024-08-18 13:00"/>
-<rect x="528" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="232" title="2024-08-19 13:00"/>
-<rect x="528" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="233" title="2024-08-20 13:00"/>
-<rect x="528" y="32" width="15" height="15" fill="#ffcc00" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="234" title="2024-08-21 13:00"/>
-<rect x="528" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="235" title="2024-08-22 13:00"/>
-<rect x="528" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="236" title="2024-08-23 13:00"/>
-<rect x="528" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="237" title="2024-08-24 13:00"/>
-<rect x="528" y="96" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="238" title="2024-08-25 13:00"/>
-<rect x="544" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="239" title="2024-08-26 13:00"/>
-<rect x="544" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="240" title="2024-08-27 13:00"/>
-<rect x="544" y="32" width="15" height="15" fill="#ffcc00" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="241" title="2024-08-28 13:00"/>
-<rect x="544" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="242" title="2024-08-29 13:00"/>
-<rect x="544" y="64" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="243" title="2024-08-30 13:00"/>
-<rect x="544" y="80" width="15" height="15" fill="#d4e600" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="244" title="2024-08-31 13:00"/>
-<rect x="544" y="96" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="245" title="2024-09-01 13:00"/>
-<rect x="560" y="0" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="246" title="2024-09-02 13:00"/>
-<rect x="560" y="16" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="247" title="2024-09-03 13:00"/>
-<rect x="560" y="32" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="248" title="2024-09-04 13:00"/>
-<rect x="560" y="48" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="249" title="2024-09-05 13:00"/>
-<rect x="560" y="64" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="250" title="2024-09-06 13:00"/>
-<rect x="560" y="80" width="15" height="15" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="251" title="2024-09-07 13:00"/>
-<rect x="560" y="96" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="252" title="2024-09-08 13:00"/>
-<rect x="576" y="0" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="253" title="2024-09-09 13:00"/>
-<rect x="576" y="16" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="254" title="2024-09-10 13:00"/>
-<rect x="576" y="32" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="255" title="2024-09-11 13:00"/>
-<rect x="576" y="48" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="256" title="2024-09-12 13:00"/>
-<rect x="576" y="64" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="257" title="2024-09-13 13:00"/>
-<rect x="576" y="80" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="258" title="2024-09-14 13:00"/>
-<rect x="576" y="96" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="259" title="2024-09-15 13:00"/>
-<rect x="592" y="0" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="260" title="2024-09-16 13:00"/>
-<rect x="592" y="16" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="261" title="2024-09-17 13:00"/>
-<rect x="592" y="32" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="262" title="2024-09-18 13:00"/>
-<rect x="592" y="48" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="263" title="2024-09-19 13:00"/>
-<rect x="592" y="64" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="264" title="2024-09-20 13:00"/>
-<rect x="592" y="80" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="265" title="2024-09-21 13:00"/>
-<rect x="592" y="96" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="266" title="2024-09-22 13:00"/>
-<rect x="608" y="0" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="267" title="2024-09-23 13:00"/>
-<rect x="608" y="16" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="268" title="2024-09-24 13:00"/>
-<rect x="608" y="32" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="269" title="2024-09-25 13:00"/>
-<rect x="608" y="48" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="270" title="2024-09-26 13:00"/>
-<rect x="608" y="64" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="271" title="2024-09-27 13:00"/>
-<rect x="608" y="80" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="272" title="2024-09-28 13:00"/>
-<rect x="608" y="96" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="273" title="2024-09-29 13:00"/>
-<rect x="624" y="0" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="274" title="2024-09-30 13:00"/>
-<rect x="624" y="16" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="275" title="2024-10-01 13:00"/>
-<rect x="624" y="32" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="276" title="2024-10-02 13:00"/>
-<rect x="624" y="48" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="277" title="2024-10-03 13:00"/>
-<rect x="624" y="64" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="278" title="2024-10-04 13:00"/>
-<rect x="624" y="80" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="279" title="2024-10-05 13:00"/>
-<rect x="624" y="96" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="280" title="2024-10-06 13:00"/>
-<rect x="640" y="0" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="281" title="2024-10-07 13:00"/>
-<rect x="640" y="16" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="282" title="2024-10-08 13:00"/>
-<rect x="640" y="32" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="283" title="2024-10-09 13:00"/>
-<rect x="640" y="48" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="284" title="2024-10-10 13:00"/>
-<rect x="640" y="64" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="285" title="2024-10-11 13:00"/>
-<rect x="640" y="80" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="286" title="2024-10-12 13:00"/>
-<rect x="640" y="96" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="287" title="2024-10-13 13:00"/>
-<rect x="656" y="0" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="288" title="2024-10-14 13:00"/>
-<rect x="656" y="16" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="289" title="2024-10-15 13:00"/>
-<rect x="656" y="32" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="290" title="2024-10-16 13:00"/>
-<rect x="656" y="48" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="291" title="2024-10-17 13:00"/>
-<rect x="656" y="64" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="292" title="2024-10-18 13:00"/>
-<rect x="656" y="80" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="293" title="2024-10-19 13:00"/>
-<rect x="656" y="96" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="294" title="2024-10-20 13:00"/>
-<rect x="672" y="0" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="295" title="2024-10-21 13:00"/>
-<rect x="672" y="16" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="296" title="2024-10-22 13:00"/>
-<rect x="672" y="32" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="297" title="2024-10-23 13:00"/>
-<rect x="672" y="48" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="298" title="2024-10-24 13:00"/>
-<rect x="672" y="64" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="299" title="2024-10-25 13:00"/>
-<rect x="672" y="80" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="300" title="2024-10-26 13:00"/>
-<rect x="672" y="96" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="301" title="2024-10-27 12:00"/>
-<rect x="688" y="0" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="302" title="2024-10-28 12:00"/>
-<rect x="688" y="16" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="303" title="2024-10-29 12:00"/>
-<rect x="688" y="32" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="304" title="2024-10-30 12:00"/>
-<rect x="688" y="48" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="305" title="2024-10-31 12:00"/>
-<rect x="688" y="64" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="306" title="2024-11-01 12:00"/>
-<rect x="688" y="80" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="307" title="2024-11-02 12:00"/>
-<rect x="688" y="96" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="308" title="2024-11-03 12:00"/>
-<rect x="704" y="0" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="309" title="2024-11-04 12:00"/>
-<rect x="704" y="16" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="310" title="2024-11-05 12:00"/>
-<rect x="704" y="32" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="311" title="2024-11-06 12:00"/>
-<rect x="704" y="48" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="312" title="2024-11-07 12:00"/>
-<rect x="704" y="64" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="313" title="2024-11-08 12:00"/>
-<rect x="704" y="80" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="314" title="2024-11-09 12:00"/>
-<rect x="704" y="96" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="315" title="2024-11-10 12:00"/>
-<rect x="720" y="0" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="316" title="2024-11-11 12:00"/>
-<rect x="720" y="16" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="317" title="2024-11-12 12:00"/>
-<rect x="720" y="32" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="318" title="2024-11-13 12:00"/>
-<rect x="720" y="48" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="319" title="2024-11-14 12:00"/>
-<rect x="720" y="64" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="320" title="2024-11-15 12:00"/>
-<rect x="720" y="80" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="321" title="2024-11-16 12:00"/>
-<rect x="720" y="96" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="322" title="2024-11-17 12:00"/>
-<rect x="736" y="0" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="323" title="2024-11-18 12:00"/>
-<rect x="736" y="16" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="324" title="2024-11-19 12:00"/>
-<rect x="736" y="32" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="325" title="2024-11-20 12:00"/>
-<rect x="736" y="48" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="326" title="2024-11-21 12:00"/>
-<rect x="736" y="64" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="327" title="2024-11-22 12:00"/>
-<rect x="736" y="80" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="328" title="2024-11-23 12:00"/>
-<rect x="736" y="96" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="329" title="2024-11-24 12:00"/>
-<rect x="752" y="0" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="330" title="2024-11-25 12:00"/>
-<rect x="752" y="16" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="331" title="2024-11-26 12:00"/>
-<rect x="752" y="32" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="332" title="2024-11-27 12:00"/>
-<rect x="752" y="48" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="333" title="2024-11-28 12:00"/>
-<rect x="752" y="64" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="334" title="2024-11-29 12:00"/>
-<rect x="752" y="80" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="335" title="2024-11-30 12:00"/>
-<rect x="752" y="96" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="336" title="2024-12-01 12:00"/>
-<rect x="768" y="0" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="337" title="2024-12-02 12:00"/>
-<rect x="768" y="16" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="338" title="2024-12-03 12:00"/>
-<rect x="768" y="32" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="339" title="2024-12-04 12:00"/>
-<rect x="768" y="48" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="340" title="2024-12-05 12:00"/>
-<rect x="768" y="64" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="341" title="2024-12-06 12:00"/>
-<rect x="768" y="80" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="342" title="2024-12-07 12:00"/>
-<rect x="768" y="96" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="343" title="2024-12-08 12:00"/>
-<rect x="784" y="0" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="344" title="2024-12-09 12:00"/>
-<rect x="784" y="16" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="345" title="2024-12-10 12:00"/>
-<rect x="784" y="32" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="346" title="2024-12-11 12:00"/>
-<rect x="784" y="48" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="347" title="2024-12-12 12:00"/>
-<rect x="784" y="64" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="348" title="2024-12-13 12:00"/>
-<rect x="784" y="80" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="349" title="2024-12-14 12:00"/>
-<rect x="784" y="96" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="350" title="2024-12-15 12:00"/>
-<rect x="800" y="0" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="351" title="2024-12-16 12:00"/>
-<rect x="800" y="16" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="352" title="2024-12-17 12:00"/>
-<rect x="800" y="32" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="353" title="2024-12-18 12:00"/>
-<rect x="800" y="48" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="354" title="2024-12-19 12:00"/>
-<rect x="800" y="64" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="355" title="2024-12-20 12:00"/>
-<rect x="800" y="80" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="356" title="2024-12-21 12:00"/>
-<rect x="800" y="96" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="357" title="2024-12-22 12:00"/>
-<rect x="816" y="0" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="358" title="2024-12-23 12:00"/>
-<rect x="816" y="16" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="359" title="2024-12-24 12:00"/>
-<rect x="816" y="32" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="360" title="2024-12-25 12:00"/>
-<rect x="816" y="48" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="361" title="2024-12-26 12:00"/>
-<rect x="816" y="64" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="362" title="2024-12-27 12:00"/>
-<rect x="816" y="80" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="363" title="2024-12-28 12:00"/>
-<rect x="816" y="96" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="364" title="2024-12-29 12:00"/>
-<rect x="832" y="0" width="15" height="15" fill="#373737" rx="1" stroke="#00000000" stroke-width="0.5" data-day-index="365" title="2024-12-30 12:00"/>
+<svg xmlns="http://www.w3.org/2000/svg" width="468" height="63">
+<rect x="0" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-01"/>
+<rect x="0" y="9" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-02"/>
+<rect x="0" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-03"/>
+<rect x="0" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-04"/>
+<rect x="0" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-05"/>
+<rect x="0" y="45" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-06"/>
+<rect x="0" y="54" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-07"/>
+<rect x="9" y="0" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-08"/>
+<rect x="9" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-09"/>
+<rect x="9" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-10"/>
+<rect x="9" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-11"/>
+<rect x="9" y="36" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-12"/>
+<rect x="9" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-13"/>
+<rect x="9" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-14"/>
+<rect x="18" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-15"/>
+<rect x="18" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-16"/>
+<rect x="18" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-17"/>
+<rect x="18" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-18"/>
+<rect x="18" y="36" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-19"/>
+<rect x="18" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-20"/>
+<rect x="18" y="54" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-21"/>
+<rect x="27" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-22"/>
+<rect x="27" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-23"/>
+<rect x="27" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-24"/>
+<rect x="27" y="27" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-25"/>
+<rect x="27" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-26"/>
+<rect x="27" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-27"/>
+<rect x="27" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-28"/>
+<rect x="36" y="0" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-29"/>
+<rect x="36" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-30"/>
+<rect x="36" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-01-31"/>
+<rect x="36" y="27" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-01"/>
+<rect x="36" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-02"/>
+<rect x="36" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-03"/>
+<rect x="36" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-04"/>
+<rect x="45" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-05"/>
+<rect x="45" y="9" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-06"/>
+<rect x="45" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-07"/>
+<rect x="45" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-08"/>
+<rect x="45" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-09"/>
+<rect x="45" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-10"/>
+<rect x="45" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-11"/>
+<rect x="54" y="0" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-12"/>
+<rect x="54" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-13"/>
+<rect x="54" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-14"/>
+<rect x="54" y="27" width="7" height="7" fill="#FFB700" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-15"/>
+<rect x="54" y="36" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-16"/>
+<rect x="54" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-17"/>
+<rect x="54" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-18"/>
+<rect x="63" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-19"/>
+<rect x="63" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-20"/>
+<rect x="63" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-21"/>
+<rect x="63" y="27" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-22"/>
+<rect x="63" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-23"/>
+<rect x="63" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-24"/>
+<rect x="63" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-25"/>
+<rect x="72" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-26"/>
+<rect x="72" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-27"/>
+<rect x="72" y="18" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-28"/>
+<rect x="72" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-02-29"/>
+<rect x="72" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-01"/>
+<rect x="72" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-02"/>
+<rect x="72" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-03"/>
+<rect x="81" y="0" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-04"/>
+<rect x="81" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-05"/>
+<rect x="81" y="18" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-06"/>
+<rect x="81" y="27" width="7" height="7" fill="#FFB700" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-07"/>
+<rect x="81" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-08"/>
+<rect x="81" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-09"/>
+<rect x="81" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-10"/>
+<rect x="90" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-11"/>
+<rect x="90" y="9" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-12"/>
+<rect x="90" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-13"/>
+<rect x="90" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-14"/>
+<rect x="90" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-15"/>
+<rect x="90" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-16"/>
+<rect x="90" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-17"/>
+<rect x="99" y="0" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-18"/>
+<rect x="99" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-19"/>
+<rect x="99" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-20"/>
+<rect x="99" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-21"/>
+<rect x="99" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-22"/>
+<rect x="99" y="45" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-23"/>
+<rect x="99" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-24"/>
+<rect x="108" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-25"/>
+<rect x="108" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-26"/>
+<rect x="108" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-27"/>
+<rect x="108" y="27" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-28"/>
+<rect x="108" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-29"/>
+<rect x="108" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-30"/>
+<rect x="108" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-03-31"/>
+<rect x="117" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-01"/>
+<rect x="117" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-02"/>
+<rect x="117" y="18" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-03"/>
+<rect x="117" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-04"/>
+<rect x="117" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-05"/>
+<rect x="117" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-06"/>
+<rect x="117" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-07"/>
+<rect x="126" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-08"/>
+<rect x="126" y="9" width="7" height="7" fill="#FFB700" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-09"/>
+<rect x="126" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-10"/>
+<rect x="126" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-11"/>
+<rect x="126" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-12"/>
+<rect x="126" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-13"/>
+<rect x="126" y="54" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-14"/>
+<rect x="135" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-15"/>
+<rect x="135" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-16"/>
+<rect x="135" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-17"/>
+<rect x="135" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-18"/>
+<rect x="135" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-19"/>
+<rect x="135" y="45" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-20"/>
+<rect x="135" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-21"/>
+<rect x="144" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-22"/>
+<rect x="144" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-23"/>
+<rect x="144" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-24"/>
+<rect x="144" y="27" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-25"/>
+<rect x="144" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-26"/>
+<rect x="144" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-27"/>
+<rect x="144" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-28"/>
+<rect x="153" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-29"/>
+<rect x="153" y="9" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-04-30"/>
+<rect x="153" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-01"/>
+<rect x="153" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-02"/>
+<rect x="153" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-03"/>
+<rect x="153" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-04"/>
+<rect x="153" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-05"/>
+<rect x="162" y="0" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-06"/>
+<rect x="162" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-07"/>
+<rect x="162" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-08"/>
+<rect x="162" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-09"/>
+<rect x="162" y="36" width="7" height="7" fill="#FFB700" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-10"/>
+<rect x="162" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-11"/>
+<rect x="162" y="54" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-12"/>
+<rect x="171" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-13"/>
+<rect x="171" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-14"/>
+<rect x="171" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-15"/>
+<rect x="171" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-16"/>
+<rect x="171" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-17"/>
+<rect x="171" y="45" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-18"/>
+<rect x="171" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-19"/>
+<rect x="180" y="0" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-20"/>
+<rect x="180" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-21"/>
+<rect x="180" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-22"/>
+<rect x="180" y="27" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-23"/>
+<rect x="180" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-24"/>
+<rect x="180" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-25"/>
+<rect x="180" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-26"/>
+<rect x="189" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-27"/>
+<rect x="189" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-28"/>
+<rect x="189" y="18" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-29"/>
+<rect x="189" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-30"/>
+<rect x="189" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-05-31"/>
+<rect x="189" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-01"/>
+<rect x="189" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-02"/>
+<rect x="198" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-03"/>
+<rect x="198" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-04"/>
+<rect x="198" y="18" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-05"/>
+<rect x="198" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-06"/>
+<rect x="198" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-07"/>
+<rect x="198" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-08"/>
+<rect x="198" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-09"/>
+<rect x="207" y="0" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-10"/>
+<rect x="207" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-11"/>
+<rect x="207" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-12"/>
+<rect x="207" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-13"/>
+<rect x="207" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-14"/>
+<rect x="207" y="45" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-15"/>
+<rect x="207" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-16"/>
+<rect x="216" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-17"/>
+<rect x="216" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-18"/>
+<rect x="216" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-19"/>
+<rect x="216" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-20"/>
+<rect x="216" y="36" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-21"/>
+<rect x="216" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-22"/>
+<rect x="216" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-23"/>
+<rect x="225" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-24"/>
+<rect x="225" y="9" width="7" height="7" fill="#FFB700" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-25"/>
+<rect x="225" y="18" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-26"/>
+<rect x="225" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-27"/>
+<rect x="225" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-28"/>
+<rect x="225" y="45" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-29"/>
+<rect x="225" y="54" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-06-30"/>
+<rect x="234" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-01"/>
+<rect x="234" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-02"/>
+<rect x="234" y="18" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-03"/>
+<rect x="234" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-04"/>
+<rect x="234" y="36" width="7" height="7" fill="#FFB700" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-05"/>
+<rect x="234" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-06"/>
+<rect x="234" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-07"/>
+<rect x="243" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-08"/>
+<rect x="243" y="9" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-09"/>
+<rect x="243" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-10"/>
+<rect x="243" y="27" width="7" height="7" fill="#FFB700" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-11"/>
+<rect x="243" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-12"/>
+<rect x="243" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-13"/>
+<rect x="243" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-14"/>
+<rect x="252" y="0" width="7" height="7" fill="#FFB700" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-15"/>
+<rect x="252" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-16"/>
+<rect x="252" y="18" width="7" height="7" fill="#FFB700" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-17"/>
+<rect x="252" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-18"/>
+<rect x="252" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-19"/>
+<rect x="252" y="45" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-20"/>
+<rect x="252" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-21"/>
+<rect x="261" y="0" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-22"/>
+<rect x="261" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-23"/>
+<rect x="261" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-24"/>
+<rect x="261" y="27" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-25"/>
+<rect x="261" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-26"/>
+<rect x="261" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-27"/>
+<rect x="261" y="54" width="7" height="7" fill="#FFB700" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-28"/>
+<rect x="270" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-29"/>
+<rect x="270" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-30"/>
+<rect x="270" y="18" width="7" height="7" fill="#FFB700" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-07-31"/>
+<rect x="270" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-01"/>
+<rect x="270" y="36" width="7" height="7" fill="#FFB700" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-02"/>
+<rect x="270" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-03"/>
+<rect x="270" y="54" width="7" height="7" fill="#FFB700" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-04"/>
+<rect x="279" y="0" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-05"/>
+<rect x="279" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-06"/>
+<rect x="279" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-07"/>
+<rect x="279" y="27" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-08"/>
+<rect x="279" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-09"/>
+<rect x="279" y="45" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-10"/>
+<rect x="279" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-11"/>
+<rect x="288" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-12"/>
+<rect x="288" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-13"/>
+<rect x="288" y="18" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-14"/>
+<rect x="288" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-15"/>
+<rect x="288" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-16"/>
+<rect x="288" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-17"/>
+<rect x="288" y="54" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-18"/>
+<rect x="297" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-19"/>
+<rect x="297" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-20"/>
+<rect x="297" y="18" width="7" height="7" fill="#FFB700" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-21"/>
+<rect x="297" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-22"/>
+<rect x="297" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-23"/>
+<rect x="297" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-24"/>
+<rect x="297" y="54" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-25"/>
+<rect x="306" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-26"/>
+<rect x="306" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-27"/>
+<rect x="306" y="18" width="7" height="7" fill="#FFB700" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-28"/>
+<rect x="306" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-29"/>
+<rect x="306" y="36" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-30"/>
+<rect x="306" y="45" width="7" height="7" fill="#E5FA00" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-08-31"/>
+<rect x="306" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-01"/>
+<rect x="315" y="0" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-02"/>
+<rect x="315" y="9" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-03"/>
+<rect x="315" y="18" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-04"/>
+<rect x="315" y="27" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-05"/>
+<rect x="315" y="36" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-06"/>
+<rect x="315" y="45" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-07"/>
+<rect x="315" y="54" width="7" height="7" fill="#00EF5C" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-08"/>
+<rect x="324" y="0" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-09"/>
+<rect x="324" y="9" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-10"/>
+<rect x="324" y="18" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-11"/>
+<rect x="324" y="27" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-12"/>
+<rect x="324" y="36" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-13"/>
+<rect x="324" y="45" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-14"/>
+<rect x="324" y="54" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-15"/>
+<rect x="333" y="0" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-16"/>
+<rect x="333" y="9" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-17"/>
+<rect x="333" y="18" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-18"/>
+<rect x="333" y="27" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-19"/>
+<rect x="333" y="36" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-20"/>
+<rect x="333" y="45" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-21"/>
+<rect x="333" y="54" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-22"/>
+<rect x="342" y="0" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-23"/>
+<rect x="342" y="9" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-24"/>
+<rect x="342" y="18" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-25"/>
+<rect x="342" y="27" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-26"/>
+<rect x="342" y="36" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-27"/>
+<rect x="342" y="45" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-28"/>
+<rect x="342" y="54" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-29"/>
+<rect x="351" y="0" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-09-30"/>
+<rect x="351" y="9" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-01"/>
+<rect x="351" y="18" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-02"/>
+<rect x="351" y="27" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-03"/>
+<rect x="351" y="36" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-04"/>
+<rect x="351" y="45" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-05"/>
+<rect x="351" y="54" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-06"/>
+<rect x="360" y="0" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-07"/>
+<rect x="360" y="9" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-08"/>
+<rect x="360" y="18" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-09"/>
+<rect x="360" y="27" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-10"/>
+<rect x="360" y="36" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-11"/>
+<rect x="360" y="45" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-12"/>
+<rect x="360" y="54" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-13"/>
+<rect x="369" y="0" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-14"/>
+<rect x="369" y="9" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-15"/>
+<rect x="369" y="18" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-16"/>
+<rect x="369" y="27" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-17"/>
+<rect x="369" y="36" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-18"/>
+<rect x="369" y="45" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-19"/>
+<rect x="369" y="54" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-20"/>
+<rect x="378" y="0" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-21"/>
+<rect x="378" y="9" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-22"/>
+<rect x="378" y="18" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-23"/>
+<rect x="378" y="27" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-24"/>
+<rect x="378" y="36" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-25"/>
+<rect x="378" y="45" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-26"/>
+<rect x="378" y="54" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-27"/>
+<rect x="387" y="0" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-28"/>
+<rect x="387" y="9" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-29"/>
+<rect x="387" y="18" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-30"/>
+<rect x="387" y="27" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-10-31"/>
+<rect x="387" y="36" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-01"/>
+<rect x="387" y="45" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-02"/>
+<rect x="387" y="54" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-03"/>
+<rect x="396" y="0" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-04"/>
+<rect x="396" y="9" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-05"/>
+<rect x="396" y="18" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-06"/>
+<rect x="396" y="27" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-07"/>
+<rect x="396" y="36" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-08"/>
+<rect x="396" y="45" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-09"/>
+<rect x="396" y="54" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-10"/>
+<rect x="405" y="0" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-11"/>
+<rect x="405" y="9" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-12"/>
+<rect x="405" y="18" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-13"/>
+<rect x="405" y="27" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-14"/>
+<rect x="405" y="36" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-15"/>
+<rect x="405" y="45" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-16"/>
+<rect x="405" y="54" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-17"/>
+<rect x="414" y="0" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-18"/>
+<rect x="414" y="9" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-19"/>
+<rect x="414" y="18" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-20"/>
+<rect x="414" y="27" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-21"/>
+<rect x="414" y="36" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-22"/>
+<rect x="414" y="45" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-23"/>
+<rect x="414" y="54" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-24"/>
+<rect x="423" y="0" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-25"/>
+<rect x="423" y="9" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-26"/>
+<rect x="423" y="18" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-27"/>
+<rect x="423" y="27" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-28"/>
+<rect x="423" y="36" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-29"/>
+<rect x="423" y="45" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-11-30"/>
+<rect x="423" y="54" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-01"/>
+<rect x="432" y="0" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-02"/>
+<rect x="432" y="9" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-03"/>
+<rect x="432" y="18" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-04"/>
+<rect x="432" y="27" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-05"/>
+<rect x="432" y="36" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-06"/>
+<rect x="432" y="45" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-07"/>
+<rect x="432" y="54" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-08"/>
+<rect x="441" y="0" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-09"/>
+<rect x="441" y="9" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-10"/>
+<rect x="441" y="18" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-11"/>
+<rect x="441" y="27" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-12"/>
+<rect x="441" y="36" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-13"/>
+<rect x="441" y="45" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-14"/>
+<rect x="441" y="54" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-15"/>
+<rect x="450" y="0" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-16"/>
+<rect x="450" y="9" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-17"/>
+<rect x="450" y="18" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-18"/>
+<rect x="450" y="27" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-19"/>
+<rect x="450" y="36" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-20"/>
+<rect x="450" y="45" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-21"/>
+<rect x="450" y="54" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-22"/>
+<rect x="459" y="0" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-23"/>
+<rect x="459" y="9" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-24"/>
+<rect x="459" y="18" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-25"/>
+<rect x="459" y="27" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-26"/>
+<rect x="459" y="36" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-27"/>
+<rect x="459" y="45" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-28"/>
+<rect x="459" y="54" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-29"/>
+<rect x="468" y="0" width="7" height="7" fill="#7676761f" rx="1" stroke="#00000000" stroke-width="0.5" title="2024-12-30"/>
 </svg>
\ No newline at end of file
diff --git a/www/skins/static/reset.css b/www/skins/static/reset.css
index 9b6e153..83de7bc 100644
--- a/www/skins/static/reset.css
+++ b/www/skins/static/reset.css
@@ -24,11 +24,6 @@ table, caption, tbody, tfoot, thead, tr, th, td {
 :focus {
 	outline: 0;
 }
-body {
-	line-height: 1;
-	color: black;
-	background: white;
-}
 ol, ul {
 	list-style: none;
 }
-- 
GitLab