{
const mm = 1800;
const svg = d3
.create("svg")
.attr("width", mm)
.attr("height", mm)
.attr("viewBox", "-125 -125 250 250");
const scale = 100;
svg
.selectAll("circle")
.data(onsvis)
.join("circle")
.style("stroke", (d) => (d.author.includes("Ahmad") ? "red" : "grey"))
.style("stroke-width", 0.5)
.style("fill", "transparent")
.attr("cx", (d) => scale * repo(d.namecat) * Math.sin(360 * d.date))
.attr("cy", (d) => scale * repo(d.namecat) * Math.cos(360 * d.date))
.text((d) => d)
.attr("r", (d) => 1 + 2 * Math.sqrt(updates(d.files)));
var g = svg.append("g").style("fill", "transparent").style("stroke", "black");
g.append("path").attr(
"d",
"M115.9,7.3c-36.8,3.5-62,14-80,29.4c-9.7,8.3-17.3,18-23.6,29c14.1,27.4,41.1,47.6,86,50.5h4.4 c0,0,13.8,0.5,13.8-14.9V7.2L115.9,7.3 M21.2,85.4c-4.2-4.9-7.9-10.3-11-16C6.3,76.9,2.9,84.9,0,93.4v22.7l73.6,0.1 C50.7,110.7,33.5,99.8,21.2,85.4"
);
g.append("path").attr(
"d",
"M0,70.5c1.8-3.7,3.6-7.2,5.6-10.7C3.3,54.2,1.5,48.5,0,42.6V70.5 M10.9,0C10.9,0,0,0,0,13.5v7.2 C1,33,3.6,45,7.9,56.2c6.1-9.6,13.4-18.4,22.3-26C47.8,15.1,71.5,4.7,103.7,0.1L10.9,0z"
);
g.attr("transform", "translate(-18 -18)scale(.3)");
return svg.node();
}