link = {
let map = new Map()
for (let i = 0; i < data.length; i++) {
for (const sol of data[i].solutions) {
map.set(sol, i);
}
}
const l = []
for (let i = 0; i < data.length; i++) {
l.push({name: data[i].solutions[0], idx: i, children: [] })
}
for (let i = 0 ; i < data.length; i++) {
for (const sol of data[i].solutions) {
const parent = map.get(get_parent(sol))
if (parent !== undefined) {
if (!l[parent].children.includes(l[i])) {
if (data[parent].depth < data[i].depth) {
l[parent].children.push(l[i]);
}
}
}
}
}
return l.filter( (x, i) => data[i].depth === 0)[0]
}