diff --git a/benchmarks/render_chart.py b/benchmarks/render_chart.py index bbbfbac..7087faa 100644 --- a/benchmarks/render_chart.py +++ b/benchmarks/render_chart.py @@ -66,24 +66,43 @@ def render_chart(data: dict[str, Any], output: Path) -> None: matplotlib.rcParams["svg.hashsalt"] = "autocad-mcp-source-review-v1" projects = sorted(data["projects"], key=lambda item: item["score"]) - labels = [item["repository"] for item in projects] + total = len(projects) + # rank 1 = highest score (drawn topmost by barh with ascending sort) + labels = [ + f"{total - index}. {item['repository']}" for index, item in enumerate(projects) + ] scores = [item["score"] for item in projects] grades = [item["evidence_grade"] for item in projects] - colors = ["#0969da" if label == "U-C4N/Autocad-MCP" else "#6e7781" for label in labels] + # leaderboard palette by rank (rank 1 first), canvas/LLM-benchmark style + rank_palette = [ + "#3fb950", # 1 green + "#58a6ff", # 2 sky + "#6e7ce0", # 3 indigo + "#d29922", # 4 amber + "#c4622d", # 5 rust + "#e3b341", # 6 yellow + "#bf4b8a", # 7 magenta + "#f0876e", # 8 salmon + "#8957e5", # 9 purple + ] + colors = [ + rank_palette[(total - 1 - index) % len(rank_palette)] + for index in range(total) + ] - fig, ax = plt.subplots(figsize=(12, 6.4), constrained_layout=True) - fig.patch.set_facecolor("#f6f8fa") - ax.set_facecolor("#f6f8fa") + fig, ax = plt.subplots(figsize=(12, 0.62 * total + 2.4), constrained_layout=True) + fig.patch.set_facecolor("#0d1117") + ax.set_facecolor("#0d1117") bars = ax.barh(labels, scores, color=colors, height=0.62) ax.set_xlim(0, 100) - ax.set_xlabel("Weighted capability score / 100", color="#24292f", labelpad=10) + ax.set_xlabel("Weighted capability score / 100", color="#e6edf3", labelpad=10) ax.set_title( - "Source-reviewed capability benchmark", + "Public AutoCAD MCP leaderboard — Source-reviewed capability benchmark", loc="left", - fontsize=18, + fontsize=17, fontweight="bold", - color="#24292f", + color="#e6edf3", pad=28, ) ax.text( @@ -91,17 +110,17 @@ def render_chart(data: dict[str, Any], output: Path) -> None: 1.02, f"Fixed rubric · reviewed {data['reviewed_at']} · evidence grade shown per project", transform=ax.transAxes, - color="#57606a", + color="#8b949e", fontsize=10, ) for bar, score, grade in zip(bars, scores, grades, strict=True): ax.text( - min(score + 1.2, 96), + min(score + 1.2, 88), bar.get_y() + bar.get_height() / 2, - f"{score} · {grade}", + f"{score} / 100 · {grade}", va="center", - color="#24292f", + color="#e6edf3", fontweight="bold", ) @@ -110,13 +129,13 @@ def render_chart(data: dict[str, Any], output: Path) -> None: -0.17, "Shared live-run results are not implied. Scores reflect public-source and recorded test evidence.", transform=ax.transAxes, - color="#57606a", + color="#8b949e", fontsize=9, ) - ax.grid(axis="x", color="#d0d7de", linewidth=0.8, alpha=0.8) + ax.grid(axis="x", color="#30363d", linewidth=0.8, alpha=0.9) ax.set_axisbelow(True) - ax.tick_params(axis="x", colors="#57606a") - ax.tick_params(axis="y", colors="#24292f", length=0, pad=8) + ax.tick_params(axis="x", colors="#8b949e") + ax.tick_params(axis="y", colors="#e6edf3", length=0, pad=8) for spine in ax.spines.values(): spine.set_visible(False) diff --git a/benchmarks/render_live_chart.py b/benchmarks/render_live_chart.py index cf8873e..efcba38 100644 --- a/benchmarks/render_live_chart.py +++ b/benchmarks/render_live_chart.py @@ -51,23 +51,23 @@ def render_chart(reports: list[dict[str, Any]], output: Path) -> None: coverage = [item["summary"]["coverage_percent"] for item in reports] passed = [item["summary"]["passed"] for item in reports] attempted = [item["summary"]["attempted"] for item in reports] - colors = ["#0969da" if label == "autocad-mcp-pro" else "#6e7781" for label in labels] + colors = ["#58a6ff" if label == "autocad-mcp-pro" else "#484f58" for label in labels] fig, ax = plt.subplots(figsize=(12, 4.8), constrained_layout=True) - fig.patch.set_facecolor("#f6f8fa") - ax.set_facecolor("#f6f8fa") + fig.patch.set_facecolor("#0d1117") + ax.set_facecolor("#0d1117") bars = ax.barh(labels, scores, color=colors, height=0.58) ax.set_xlim(0, 100) ax.set_xlabel( - "Weighted live-run score / 100 (fixed 10-task matrix)", color="#24292f", labelpad=10 + "Weighted live-run score / 100 (fixed 10-task matrix)", color="#e6edf3", labelpad=10 ) ax.set_title( "Live-run benchmark - headless ezdxf lane", loc="left", fontsize=18, fontweight="bold", - color="#24292f", + color="#e6edf3", pad=28, ) ax.text( @@ -75,7 +75,7 @@ def render_chart(reports: list[dict[str, Any]], output: Path) -> None: 1.02, "Same 10 tasks, same harness, pinned competitor commits; artifacts verified by re-opening the DXF", transform=ax.transAxes, - color="#57606a", + color="#8b949e", fontsize=10, ) @@ -85,7 +85,7 @@ def render_chart(reports: list[dict[str, Any]], output: Path) -> None: bar.get_y() + bar.get_height() / 2, f"{score:g} ({ok}/{total} pass, {cov:g}% coverage)", va="center", - color="#24292f", + color="#e6edf3", fontweight="bold", ) @@ -94,13 +94,13 @@ def render_chart(reports: list[dict[str, Any]], output: Path) -> None: -0.22, "Unsupported tasks score 0 in the fixed matrix; per-task statuses and reasons are in benchmarks/results/published/.", transform=ax.transAxes, - color="#57606a", + color="#8b949e", fontsize=9, ) - ax.grid(axis="x", color="#d0d7de", linewidth=0.8, alpha=0.8) + ax.grid(axis="x", color="#30363d", linewidth=0.8, alpha=0.8) ax.set_axisbelow(True) - ax.tick_params(axis="x", colors="#57606a") - ax.tick_params(axis="y", colors="#24292f", length=0, pad=8) + ax.tick_params(axis="x", colors="#8b949e") + ax.tick_params(axis="y", colors="#e6edf3", length=0, pad=8) for spine in ax.spines.values(): spine.set_visible(False) diff --git a/benchmarks/render_matrix_chart.py b/benchmarks/render_matrix_chart.py index 7639296..961cb2a 100644 --- a/benchmarks/render_matrix_chart.py +++ b/benchmarks/render_matrix_chart.py @@ -20,12 +20,12 @@ DEFAULT_INPUT_DIR = ROOT / "benchmarks" / "results" / "published" DEFAULT_OUTPUT = ROOT / "docs" / "assets" / "autocad-mcp-taskmatrix.svg" STATUS_COLORS = { - "pass": "#2da44e", - "partial": "#d4a72c", - "fail": "#cf222e", + "pass": "#238636", + "partial": "#d29922", + "fail": "#da3633", "timeout": "#a40e26", - "unsupported": "#d0d7de", - "not_run": "#f6f8fa", + "unsupported": "#30363d", + "not_run": "#161b22", } STATUS_GLYPHS = { @@ -78,8 +78,8 @@ def render_chart(reports: list[dict[str, Any]], output: Path) -> None: figsize=(3.4 + 2.4 * len(servers), 1.8 + 0.52 * len(task_ids)), constrained_layout=True, ) - fig.patch.set_facecolor("#f6f8fa") - ax.set_facecolor("#f6f8fa") + fig.patch.set_facecolor("#0d1117") + ax.set_facecolor("#0d1117") for row, task_id in enumerate(task_ids): for col, server in enumerate(servers): @@ -91,11 +91,11 @@ def render_chart(reports: list[dict[str, Any]], output: Path) -> None: 0.88, 0.84, facecolor=color, - edgecolor="#d0d7de", + edgecolor="#30363d", linewidth=0.8, ) ) - glyph_color = "#ffffff" if status in ("pass", "fail", "timeout") else "#24292f" + glyph_color = "#ffffff" if status in ("pass", "fail", "timeout") else "#e6edf3" ax.text( col + 0.5, row + 0.5, @@ -110,10 +110,10 @@ def render_chart(reports: list[dict[str, Any]], output: Path) -> None: ax.set_xlim(0, len(servers)) ax.set_ylim(len(task_ids), 0) ax.set_xticks([index + 0.5 for index in range(len(servers))]) - ax.set_xticklabels(servers, color="#24292f", fontsize=10, fontweight="bold") + ax.set_xticklabels(servers, color="#e6edf3", fontsize=10, fontweight="bold") ax.xaxis.set_ticks_position("top") ax.set_yticks([index + 0.5 for index in range(len(task_ids))]) - ax.set_yticklabels(task_labels, color="#24292f", fontsize=9) + ax.set_yticklabels(task_labels, color="#e6edf3", fontsize=9) ax.tick_params(length=0) for spine in ax.spines.values(): spine.set_visible(False) @@ -123,7 +123,7 @@ def render_chart(reports: list[dict[str, Any]], output: Path) -> None: loc="left", fontsize=17, fontweight="bold", - color="#24292f", + color="#e6edf3", pad=34, ) @@ -140,6 +140,7 @@ def render_chart(reports: list[dict[str, Any]], output: Path) -> None: ncol=4, frameon=False, fontsize=9, + labelcolor="#e6edf3", ) output.parent.mkdir(parents=True, exist_ok=True) diff --git a/benchmarks/render_perf_chart.py b/benchmarks/render_perf_chart.py index 849d5ec..df190c0 100644 --- a/benchmarks/render_perf_chart.py +++ b/benchmarks/render_perf_chart.py @@ -61,18 +61,18 @@ def render_chart(data: dict[str, Any], output: Path) -> None: values = [item["wall_ms"] for item in workloads] fig, ax = plt.subplots(figsize=(12, 4.6), constrained_layout=True) - fig.patch.set_facecolor("#f6f8fa") - ax.set_facecolor("#f6f8fa") - bars = ax.barh(labels, values, color="#0969da", height=0.58) + fig.patch.set_facecolor("#0d1117") + ax.set_facecolor("#0d1117") + bars = ax.barh(labels, values, color="#58a6ff", height=0.58) ax.set_xscale("log") - ax.set_xlabel("Wall time in ms (log scale) — lower is better", color="#24292f", labelpad=10) + ax.set_xlabel("Wall time in ms (log scale) — lower is better", color="#e6edf3", labelpad=10) ax.set_title( "Headless performance — ezdxf engine", loc="left", fontsize=18, fontweight="bold", - color="#24292f", + color="#e6edf3", pad=28, ) env = data.get("environment", {}) @@ -82,7 +82,7 @@ def render_chart(data: dict[str, Any], output: Path) -> None: f"Fixed workloads via the same backend methods the MCP tools call · " f"Python {env.get('python', '?')} · {env.get('platform', '?')}", transform=ax.transAxes, - color="#57606a", + color="#8b949e", fontsize=9, ) @@ -92,7 +92,7 @@ def render_chart(data: dict[str, Any], output: Path) -> None: bar.get_y() + bar.get_height() / 2, _annotation(item), va="center", - color="#24292f", + color="#e6edf3", fontweight="bold", fontsize=9, ) @@ -104,13 +104,13 @@ def render_chart(data: dict[str, Any], output: Path) -> None: "Self-measurement only: competitor servers would pay extra stdio serialization cost in-process runs do not. " "Reproduce: python -m benchmarks.perf_suite", transform=ax.transAxes, - color="#57606a", + color="#8b949e", fontsize=9, ) - ax.grid(axis="x", color="#d0d7de", linewidth=0.8, alpha=0.8) + ax.grid(axis="x", color="#30363d", linewidth=0.8, alpha=0.8) ax.set_axisbelow(True) - ax.tick_params(axis="x", colors="#57606a") - ax.tick_params(axis="y", colors="#24292f", length=0, pad=8) + ax.tick_params(axis="x", colors="#8b949e") + ax.tick_params(axis="y", colors="#e6edf3", length=0, pad=8) for spine in ax.spines.values(): spine.set_visible(False) diff --git a/docs/assets/autocad-mcp-benchmark.svg b/docs/assets/autocad-mcp-benchmark.svg index 0f6f7c7..dc8413b 100644 --- a/docs/assets/autocad-mcp-benchmark.svg +++ b/docs/assets/autocad-mcp-benchmark.svg @@ -1,7 +1,7 @@ - + @@ -20,42 +20,42 @@ - +" style="fill: #0d1117"/> - +" style="fill: #0d1117"/> - + - +" style="stroke: #8b949e; stroke-width: 0.8"/> - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - +" clip-path="url(#pb6440d2eb1)" style="fill: #8957e5"/> - +" clip-path="url(#pb6440d2eb1)" style="fill: #f0876e"/> - +" clip-path="url(#pb6440d2eb1)" style="fill: #bf4b8a"/> - +" clip-path="url(#pb6440d2eb1)" style="fill: #e3b341"/> - +" clip-path="url(#pb6440d2eb1)" style="fill: #c4622d"/> - +" clip-path="url(#pb6440d2eb1)" style="fill: #d29922"/> - +" clip-path="url(#pb6440d2eb1)" style="fill: #6e7ce0"/> - +" clip-path="url(#pb6440d2eb1)" style="fill: #58a6ff"/> - +" clip-path="url(#pb6440d2eb1)" style="fill: #3fb950"/> - + - - - + + + + - - - - - + + + + + + + + + + + - - + + - - - - - + + + + + + + + + + + - - + + - - - - - + + + + + + + + + + + - - + + - - - - - + + + + + + + + + + + - - + + - - - - - + + + + + + + + + + + - - + + - - - - - + + + + + + + + + + + - - + + - - - - - + + + + + + + + + + + - - + + - - - - - + + + + + + + + + + + - - + + - - - - - + + + + + + + + + + + - + - - - + + - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + diff --git a/docs/assets/autocad-mcp-livebench.svg b/docs/assets/autocad-mcp-livebench.svg index 6597f84..a8d9e48 100644 --- a/docs/assets/autocad-mcp-livebench.svg +++ b/docs/assets/autocad-mcp-livebench.svg @@ -25,7 +25,7 @@ L 864 345.6 L 864 0 L 0 0 z -" style="fill: #f6f8fa"/> +" style="fill: #0d1117"/> @@ -34,28 +34,28 @@ L 786.764245 288.476727 L 786.764245 44.677428 L 141.00649 44.677428 z -" style="fill: #f6f8fa"/> +" style="fill: #0d1117"/> +" clip-path="url(#p304dee3b76)" style="fill: none; stroke: #30363d; stroke-opacity: 0.8; stroke-width: 0.8; stroke-linecap: square"/> - +" style="stroke: #8b949e; stroke-width: 0.8"/> - + - + +" clip-path="url(#p304dee3b76)" style="fill: none; stroke: #30363d; stroke-opacity: 0.8; stroke-width: 0.8; stroke-linecap: square"/> - + - + +" clip-path="url(#p304dee3b76)" style="fill: none; stroke: #30363d; stroke-opacity: 0.8; stroke-width: 0.8; stroke-linecap: square"/> - + - + +" clip-path="url(#p304dee3b76)" style="fill: none; stroke: #30363d; stroke-opacity: 0.8; stroke-width: 0.8; stroke-linecap: square"/> - + - + +" clip-path="url(#p304dee3b76)" style="fill: none; stroke: #30363d; stroke-opacity: 0.8; stroke-width: 0.8; stroke-linecap: square"/> - + - + +" clip-path="url(#p304dee3b76)" style="fill: none; stroke: #30363d; stroke-opacity: 0.8; stroke-width: 0.8; stroke-linecap: square"/> - + - + - + - + - + - + @@ -1027,7 +1027,7 @@ L 431.59748 277.394941 L 431.59748 227.569855 L 141.00649 227.569855 z -" clip-path="url(#p304dee3b76)" style="fill: #6e7781"/> +" clip-path="url(#p304dee3b76)" style="fill: #484f58"/> +" clip-path="url(#p304dee3b76)" style="fill: #484f58"/> +" clip-path="url(#p304dee3b76)" style="fill: #58a6ff"/> - + - + - + @@ -1726,7 +1726,7 @@ z - + @@ -1763,7 +1763,7 @@ z - + - + +" style="fill: #0d1117"/> @@ -34,28 +34,28 @@ L 750.185843 273.231039 L 750.185843 44.677427 L 263.71899 44.677427 z -" style="fill: #f6f8fa"/> +" style="fill: #0d1117"/> +" clip-path="url(#p241cb65ad2)" style="fill: none; stroke: #30363d; stroke-opacity: 0.8; stroke-width: 0.8; stroke-linecap: square"/> - +" style="stroke: #8b949e; stroke-width: 0.8"/> - + - + +" clip-path="url(#p241cb65ad2)" style="fill: none; stroke: #30363d; stroke-opacity: 0.8; stroke-width: 0.8; stroke-linecap: square"/> - + - + +" clip-path="url(#p241cb65ad2)" style="fill: none; stroke: #30363d; stroke-opacity: 0.8; stroke-width: 0.8; stroke-linecap: square"/> - + - + - + - + - + - + - + +" clip-path="url(#p241cb65ad2)" style="fill: #58a6ff"/> +" clip-path="url(#p241cb65ad2)" style="fill: #58a6ff"/> +" clip-path="url(#p241cb65ad2)" style="fill: #58a6ff"/> +" clip-path="url(#p241cb65ad2)" style="fill: #58a6ff"/> - + - + - + - + - + - + - + +" style="fill: #0d1117"/> @@ -34,7 +34,7 @@ L 760.19976 472.131242 L 760.19976 49.917584 L 148.330396 49.917584 z -" style="fill: #f6f8fa"/> +" style="fill: #0d1117"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #d29922; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #30363d; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #30363d; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #30363d; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #30363d; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #30363d; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #30363d; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #30363d; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #30363d; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #238636; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #30363d; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> +" clip-path="url(#p1540b2959a)" style="fill: #30363d; stroke: #30363d; stroke-width: 0.8; stroke-linejoin: miter"/> - + - + - + - + - + - + - + @@ -1404,7 +1404,7 @@ z - + - + @@ -1502,7 +1502,7 @@ z - + - + @@ -1586,7 +1586,7 @@ z - + - + - + - + - + @@ -1835,13 +1835,13 @@ z - + - + @@ -1853,13 +1853,13 @@ z - + - + @@ -1871,13 +1871,13 @@ z - + - + @@ -1907,19 +1907,19 @@ z - + - + - + +" style="fill: #238636"/> - + @@ -2098,11 +2098,11 @@ L 238.236177 495.514109 L 238.236177 489.214109 L 220.236177 489.214109 z -" style="fill: #d4a72c"/> +" style="fill: #d29922"/> - + @@ -2118,11 +2118,11 @@ L 310.409146 495.514109 L 310.409146 489.214109 L 292.409146 489.214109 z -" style="fill: #cf222e"/> +" style="fill: #da3633"/> - + @@ -2135,11 +2135,11 @@ L 367.293365 495.514109 L 367.293365 489.214109 L 349.293365 489.214109 z -" style="fill: #d0d7de"/> +" style="fill: #30363d"/> - +