Skip to content

Instantly share code, notes, and snippets.

@bsidhom
Last active January 7, 2024 00:34
Show Gist options
  • Save bsidhom/b47c7a9a6219ffe9327dc10d7688fb60 to your computer and use it in GitHub Desktop.
Save bsidhom/b47c7a9a6219ffe9327dc10d7688fb60 to your computer and use it in GitHub Desktop.
Extract Gemcraft: Chasing Shadows level metadata
// Extract level metadata from https://gemcraft.fandom.com/wiki/GemCraft_Chapter_2:_Chasing_Shadow_Fields
let extractLevels = () => {
const extractGemTypes = (cell) => {
const anchors = [...cell.querySelectorAll("a")];
return anchors.map((a) => a.title);
};
const extractText = (cell) => {
const s = cell.innerText.trim();
if (s.length == 0) {
return null;
}
return s;
};
const extractLevelInfo = (cells) => {
const field = extractText(cells[1]);
const waves = extractText(cells[2]);
const firstWaveHp = extractText(cells[3]);
const gemTypes = extractGemTypes(cells[4]);
const special = extractText(cells[5]);
const challenge = extractText(cells[6]);
const prereq = cells.length >= 9 ? extractText(cells[8]) : null;
return { field, waves, firstWaveHp, gemTypes, special, challenge, prereq };
};
const rows = [...document.querySelectorAll("table tr:nth-child(n+4)")];
const levelInfo = rows
.map((row) => row.querySelectorAll("td"))
.filter((cells) => cells.length >= 8)
.map(extractLevelInfo);
// NOTE: The data URL below is apparently too large for most browsers, so I
// had to use a BLOB url.
// const url = `data:text/plain;charset=UTF-8,${JSON.stringify(levelInfo)}`;
const json = JSON.stringify(levelInfo);
const blob = new Blob([json], { type: "text/plain;charset=utf8" });
const url = URL.createObjectURL(blob);
window.open(url);
};
#!/usr/bin/env python3
# Find the shortest path to all tome chambers from the starting field (F1).
import argparse
import collections
import json
def main():
parser = argparse.ArgumentParser(
"Find shortest paths to all tome chambers")
parser.add_argument("--file",
help="Levels metadata JSON file",
required=True)
args = parser.parse_args()
levels = read_levels_file(args.file)
chamber_levels = find_tome_chamber_levels(levels)
levels = create_map(levels)
paths = find_shortest_paths("F1", chamber_levels, levels)
paths.sort(key=lambda x: len(x[1]))
for field, path in paths:
level = levels.get(field)
tome = level["special"]
path = [
field if difficulty == "looming" else f"{field}(g)"
for (field, difficulty) in path
]
path_str = "->".join(path)
print(f"{field} ({tome}) {path_str}")
def find_shortest_paths(start, goals, levels):
null = object()
goals = set(goals)
results = []
visited = set()
fringe = collections.deque()
fringe.append((start, ()))
while len(fringe) > 0 and len(goals) > 0:
field, path = fringe.popleft()
if field in visited:
continue
visited.add(field)
if field in goals:
results.append((field, path))
goals.remove(field)
level = levels.get(field)
edges = level.get("edges", null)
if edges is null:
continue
for (next_field, difficulty) in edges:
fringe.append((next_field, path + ((field, difficulty), )))
if len(goals) > 0:
raise Exception(f"unreachable goals: {goals}")
return results
def create_map(levels):
null = object()
levels = {level["field"]: level for level in levels}
for level in levels.values():
parent = level["prereq"]
if parent is None:
continue
if parent.endswith("(glaring)"):
parent = parent.split()[0]
difficulty = "glaring"
else:
difficulty = "looming"
parent = levels.get(parent)
field = level["field"]
edge = (field, difficulty)
edges = parent.get("edges", null)
if edges is null:
parent["edges"] = [edge]
else:
edges.append(edge)
return levels
def find_tome_chamber_levels(levels):
return [
level["field"] for level in levels if level["special"] is not None
and level["special"].lower().startswith("tome chamber")
]
def read_levels_file(fname):
with open(fname) as f:
return json.load(f)
if __name__ == "__main__":
main()
[{"field":"A1","waves":"35","firstWaveHp":"34","gemTypes":["Red - Chain Hit","Blue - Slowing"],"special":null,"challenge":"Don't use any strike spells.","prereq":"E6"},{"field":"A2","waves":"37","firstWaveHp":"38","gemTypes":["Purple - Armor Tearing","Green - Poison"],"special":null,"challenge":"Don't build any towers.","prereq":"A1"},{"field":"A3","waves":"40","firstWaveHp":"47","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Green - Poison"],"special":"Tome Chamber (Armor Tearing)","challenge":"Have 33 gems on the battlefield.","prereq":"A2"},{"field":"A4","waves":"50","firstWaveHp":"41","gemTypes":["Purple - Armor Tearing"],"special":null,"challenge":"Don't have any gem higher than grade 6 on glaring difficulty.","prereq":"A2"},{"field":"A5","waves":"48","firstWaveHp":"49","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit"],"special":null,"challenge":"Don't have any gem higher than grade 4.","prereq":"A3"},{"field":"A6","waves":"60","firstWaveHp":"91","gemTypes":["Yellow - Critical Hit","Blue - Slowing"],"special":null,"challenge":null,"prereq":"A4 (glaring)"},{"field":"A7","waves":"48","firstWaveHp":"49","gemTypes":["Orange - Mana Leeching","Green - Poison","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"A6"},{"field":"V15","waves":"28","firstWaveHp":"24","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Red - Chain Hit","Black - Bloodbound"],"special":"Vision","challenge":null,"prereq":"A5"},{"field":"B1","waves":"30","firstWaveHp":"32","gemTypes":["Orange - Mana Leeching","Cyan - Suppressing"],"special":null,"challenge":"Beat 60 waves.","prereq":"E7"},{"field":"B2","waves":"25","firstWaveHp":"38","gemTypes":["Red - Chain Hit","Purple - Armor Tearing"],"special":"Story-Related (Markings and \"1 tower + 8 amplifiers\" combo)","challenge":null,"prereq":"B1"},{"field":"B3","waves":"32","firstWaveHp":"35","gemTypes":["Yellow - Critical Hit","Purple - Armor Tearing"],"special":null,"challenge":"Deliver 140 one hit kills.\nDon't use any strike spells.","prereq":"B1"},{"field":"B4","waves":"40","firstWaveHp":"41","gemTypes":["Yellow - Critical Hit","Green - Poison","Blue - Slowing"],"special":null,"challenge":null,"prereq":"B2"},{"field":"B5","waves":"35","firstWaveHp":"37","gemTypes":["Orange - Mana Leeching","Red - Chain Hit","Green - Poison"],"special":"Tome Chamber (Mana Leeching)","challenge":"Break a tomb open before wave 24.","prereq":"B3"},{"field":"B6","waves":"30","firstWaveHp":"79","gemTypes":["Red - Chain Hit","Green - Poison","Cyan - Suppressing"],"special":null,"challenge":null,"prereq":"B1 (glaring)"},{"field":"B7","waves":"46","firstWaveHp":"41","gemTypes":["White - Poolbound","Red - Chain Hit","Black - Bloodbound","Blue - Slowing","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"B4"},{"field":"V21","waves":"26","firstWaveHp":"82","gemTypes":["Yellow - Critical Hit","Red - Chain Hit","Green - Poison","Cyan - Suppressing","Blue - Slowing","Purple - Armor Tearing"],"special":"Vision\n(Features 4 Arcane Guardians)","challenge":null,"prereq":"B7"},{"field":"C1","waves":"45","firstWaveHp":"84","gemTypes":["Green - Poison","Purple - Armor Tearing"],"special":null,"challenge":"Don't use any gem enhancement spells.","prereq":"G3"},{"field":"C2","waves":"50","firstWaveHp":"88","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Red - Chain Hit"],"special":"Tome Chamber (Fury)\nMysterious Compass","challenge":"Create a grade 9 pure slowing gem.\nHave the giant domination trait set to level 7.","prereq":"C1"},{"field":"C3","waves":"60","firstWaveHp":"90","gemTypes":["Cyan - Suppressing","Blue - Slowing"],"special":null,"challenge":"Beat 75 waves.","prereq":"C2"},{"field":"C4","waves":"60","firstWaveHp":"80","gemTypes":["Red - Chain Hit","Green - Poison","Cyan - Suppressing","Black - Bloodbound","Blue - Slowing","Purple - Armor Tearing"],"special":"Story-Related (Beacons, Indestructible Monster Nests)","challenge":null,"prereq":"C2"},{"field":"C5","waves":"75","firstWaveHp":"82","gemTypes":["Yellow - Critical Hit","Green - Poison"],"special":null,"challenge":"Destroy 2 monster nests before wave 13.","prereq":"C4"},{"field":"C6","waves":"55","firstWaveHp":"102","gemTypes":["Orange - Mana Leeching","Green - Poison","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"C5"},{"field":"C7","waves":"45","firstWaveHp":"162","gemTypes":["White - Poolbound","Green - Poison"],"special":null,"challenge":null,"prereq":"C3"},{"field":"V3","waves":"228","firstWaveHp":"84","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","White - Poolbound","Red - Chain Hit","Green - Poison","Cyan - Suppressing","Black - Bloodbound","Blue - Slowing","Purple - Armor Tearing"],"special":"Vision","challenge":null,"prereq":"C4"},{"field":"D1","waves":"30","firstWaveHp":"42","gemTypes":["Orange - Mana Leeching","Blue - Slowing","Purple - Armor Tearing"],"special":null,"challenge":"Build 18 amplifiers.","prereq":"H3"},{"field":"D2","waves":"36","firstWaveHp":"45","gemTypes":["Red - Chain Hit","Blue - Slowing"],"special":null,"challenge":"Don't spend any points on skills.","prereq":"D1"},{"field":"D3","waves":"32","firstWaveHp":"48","gemTypes":["Yellow - Critical Hit","Green - Poison","Cyan - Suppressing"],"special":null,"challenge":"Don't use any strike or gem enhancement spells.","prereq":"D1"},{"field":"D4","waves":"28","firstWaveHp":"47","gemTypes":["Yellow - Critical Hit","Green - Poison","Cyan - Suppressing","Blue - Slowing"],"special":"Tome Chamber (Beam)","challenge":"Don't have any gem higher than grade 4.","prereq":"D2"},{"field":"D5","waves":"35","firstWaveHp":"52","gemTypes":["Red - Chain Hit","Cyan - Suppressing"],"special":"Tome Chamber (Demolition)","challenge":"Open the tome chamber before wave 12 starts.","prereq":"D3"},{"field":"D6","waves":"54","firstWaveHp":"192","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","White - Poolbound","Red - Chain Hit","Green - Poison","Cyan - Suppressing"],"special":"Secret","challenge":null,"prereq":null},{"field":"D7","waves":"65","firstWaveHp":"284","gemTypes":["Yellow - Critical Hit","Red - Chain Hit","Black - Bloodbound"],"special":null,"challenge":null,"prereq":"D6 (glaring)"},{"field":"V4","waves":"19","firstWaveHp":"24","gemTypes":["Yellow - Critical Hit","Green - Poison"],"special":"Vision","challenge":null,"prereq":"D5"},{"field":"E1","waves":"20","firstWaveHp":"15","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit"],"special":null,"challenge":"Beat 45 waves.\nDon't have any gem higher than grade 1.","prereq":"F4"},{"field":"E2","waves":"22","firstWaveHp":"18","gemTypes":["Orange - Mana Leeching","Purple - Armor Tearing"],"special":null,"challenge":"Don't have any gem higher than grade 4 on glaring difficulty.","prereq":"E1"},{"field":"E3","waves":"24","firstWaveHp":"17","gemTypes":["Yellow - Critical Hit","Cyan - Suppressing"],"special":"Mysterious Compass","challenge":"Don't spend any points on skills on glaring difficulty.","prereq":"E2"},{"field":"E4","waves":"24","firstWaveHp":"30","gemTypes":["Green - Poison"],"special":"Tome Chamber (Poison)","challenge":"Open the tome chamber before wave 7 starts.","prereq":"E2"},{"field":"E5","waves":"33","firstWaveHp":"24","gemTypes":["Yellow - Critical Hit","Purple - Armor Tearing"],"special":"Apparitions Introduced","challenge":null,"prereq":"E4"},{"field":"E6","waves":"30","firstWaveHp":"28","gemTypes":["Orange - Mana Leeching","Red - Chain Hit","Blue - Slowing","Purple - Armor Tearing"],"special":"Wizard Tower (Adaptive Carapace)","challenge":"Create a grade 6 pure mana leeching gem before wave 2.","prereq":"E5"},{"field":"E7","waves":"32","firstWaveHp":"28","gemTypes":["Yellow - Critical Hit","Red - Chain Hit","Green - Poison"],"special":null,"challenge":"Don't have any gem higher than grade 2.","prereq":"E6"},{"field":"E8","waves":"28","firstWaveHp":"38","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Red - Chain Hit","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"E4"},{"field":"F1","waves":"3","firstWaveHp":"4\nSteam: 10","gemTypes":["Orange - Mana Leeching","Green - Poison","Purple - Armor Tearing"],"special":"Wizard Hideout","challenge":"Don't spend any points on skills on glaring difficulty.\nHave 295 monsters on the battlefield at the same time on field F1.","prereq":null},{"field":"F2","waves":"7","firstWaveHp":"6","gemTypes":["Red - Chain Hit","Blue - Slowing"],"special":null,"challenge":"Create a grade 6 pure bloodbound gem before wave 6.","prereq":"F1"},{"field":"F3","waves":"9","firstWaveHp":"8","gemTypes":["Yellow - Critical Hit","Green - Poison"],"special":null,"challenge":"Don't have any gem higher than grade 3 on glaring difficulty.","prereq":"F2"},{"field":"F4","waves":"16","firstWaveHp":"11","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Purple - Armor Tearing"],"special":"Wizard Tower (Haste)","challenge":"Destroy all wizard locks before wave 2 starts.","prereq":"F3"},{"field":"F5","waves":"11","firstWaveHp":"11","gemTypes":["Cyan - Suppressing","Blue - Slowing","Purple - Armor Tearing"],"special":null,"challenge":"Don't have any gem higher than grade 2.","prereq":"F3"},{"field":"F6","waves":"10","firstWaveHp":"10","gemTypes":["Red - Chain Hit","Green - Poison","Cyan - Suppressing"],"special":"Tome Chamber (Traps)","challenge":"Kill an apparition.","prereq":"F5"},{"field":"F7","waves":"16","firstWaveHp":"18","gemTypes":["Yellow - Critical Hit","Cyan - Suppressing","Blue - Slowing"],"special":null,"challenge":null,"prereq":"F6"},{"field":"V14","waves":"32","firstWaveHp":"423","gemTypes":["Orange - Mana Leeching","Red - Chain Hit","Purple - Armor Tearing"],"special":"Vision","challenge":null,"prereq":"G3"},{"field":"G1","waves":"35","firstWaveHp":"74","gemTypes":["Yellow - Critical Hit","Green - Poison","Blue - Slowing"],"special":"Story-Related (Corrupted Mana Shard)","challenge":null,"prereq":"J3"},{"field":"G2","waves":"40","firstWaveHp":"64","gemTypes":["Orange - Mana Leeching","White - Poolbound","Black - Bloodbound"],"special":"Tome Chamber (Curse)","challenge":"Open 3 drop holders before wave 5.","prereq":"G1"},{"field":"G3","waves":"42","firstWaveHp":"67","gemTypes":["Cyan - Suppressing","Purple - Armor Tearing"],"special":null,"challenge":"Build 60 walls before wave 3.","prereq":"G2"},{"field":"G4","waves":"45","firstWaveHp":"118","gemTypes":["Yellow - Critical Hit","Red - Chain Hit"],"special":null,"challenge":"Use only slowing gems.","prereq":"G5 (glaring)"},{"field":"G5","waves":"50","firstWaveHp":"70","gemTypes":["Green - Poison","Blue - Slowing"],"special":null,"challenge":"Don't use any strike or gem enhancement spells.","prereq":"G2"},{"field":"G6","waves":"43","firstWaveHp":"68","gemTypes":["Orange - Mana Leeching","Red - Chain Hit"],"special":null,"challenge":"Have the swarmling domination trait set to level 7.","prereq":"G1"},{"field":"G7","waves":"52","firstWaveHp":"128","gemTypes":["Orange - Mana Leeching","Green - Poison","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"G4"},{"field":"V16","waves":"46","firstWaveHp":"42","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Red - Chain Hit","Cyan - Suppressing","Purple - Armor Tearing"],"special":"Vision","challenge":null,"prereq":"G5"},{"field":"H1","waves":"25","firstWaveHp":"28","gemTypes":["Red - Chain Hit","Black - Bloodbound"],"special":"Story-Related (The Scythe Gate)","challenge":"Don't build anything.","prereq":"I5"},{"field":"H2","waves":"30","firstWaveHp":"32","gemTypes":["White - Poolbound","Cyan - Suppressing","Blue - Slowing"],"special":null,"challenge":"Harvest 1.300 mana from shards before wave 2 starts.","prereq":"H1"},{"field":"H3","waves":"40","firstWaveHp":"40","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Red - Chain Hit","Purple - Armor Tearing"],"special":"Wizard Tower (Giant Domination)\nSpecters Introduced","challenge":"Don't have any gem higher than grade 3.","prereq":"H5"},{"field":"H4","waves":"30","firstWaveHp":"33","gemTypes":["Red - Chain Hit","Green - Poison"],"special":"Tome Chamber (Freeze)","challenge":"Beat 60 waves.","prereq":"H2"},{"field":"H5","waves":"32","firstWaveHp":"38","gemTypes":["Orange - Mana Leeching","Black - Bloodbound"],"special":"Story-Related (Possession Obelisk)","challenge":null,"prereq":"H2"},{"field":"H6","waves":"48","firstWaveHp":"73","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","White - Poolbound","Red - Chain Hit","Green - Poison","Cyan - Suppressing","Black - Bloodbound","Blue - Slowing","Purple - Armor Tearing"],"special":"Secret","challenge":null,"prereq":null},{"field":"H7","waves":"34","firstWaveHp":"38","gemTypes":["Red - Chain Hit","Green - Poison","Cyan - Suppressing","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"V11"},{"field":"V11","waves":"24","firstWaveHp":"7","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Red - Chain Hit"],"special":"Vision","challenge":null,"prereq":"H4"},{"field":"I1","waves":"15","firstWaveHp":"14","gemTypes":["Yellow - Critical Hit","Red - Chain Hit"],"special":null,"challenge":"Build 19 towers.","prereq":"F4"},{"field":"I2","waves":"18","firstWaveHp":"18","gemTypes":["Green - Poison","Purple - Armor Tearing"],"special":null,"challenge":"Don't spend any points on skills on glaring difficulty.","prereq":"I1"},{"field":"I3","waves":"30","firstWaveHp":"25","gemTypes":["Orange - Mana Leeching","Cyan - Suppressing","Purple - Armor Tearing"],"special":"Tome Chamber (Bolt)","challenge":"Create a grade 6 pure suppressing gem before wave 5.","prereq":"I2"},{"field":"I4","waves":"12","firstWaveHp":"19","gemTypes":["Yellow - Critical Hit","Blue - Slowing"],"special":null,"challenge":"Don't have any gem higher than grade 2.","prereq":"I1"},{"field":"I5","waves":"20","firstWaveHp":"24","gemTypes":["Red - Chain Hit","Cyan - Suppressing"],"special":"Wizard Tower (Mana Lock)\nApparitions Introduced","challenge":null,"prereq":"I4"},{"field":"I6","waves":"30","firstWaveHp":"25","gemTypes":["Orange - Mana Leeching","Green - Poison"],"special":null,"challenge":"Don't have any gem higher than grade 3.","prereq":"I4"},{"field":"I7","waves":"33","firstWaveHp":"28","gemTypes":["Orange - Mana Leeching","Green - Poison","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"I6"},{"field":"V23","waves":"38","firstWaveHp":"64","gemTypes":["White - Poolbound","Green - Poison","Blue - Slowing","Purple - Armor Tearing"],"special":"Vision\n(Features 5 Arcane Guardians)","challenge":null,"prereq":"L7 (glaring)"},{"field":"J1","waves":"35","firstWaveHp":"58","gemTypes":["Green - Poison","Cyan - Suppressing","Blue - Slowing","Purple - Armor Tearing"],"special":null,"challenge":"Beat 60 waves.","prereq":"M6"},{"field":"J2","waves":"45","firstWaveHp":"65","gemTypes":["Red - Chain Hit","Green - Poison","Cyan - Suppressing"],"special":"Story-Related (Possession Obelisk, Tombs)\nMysterious Compass","challenge":null,"prereq":"J1"},{"field":"J3","waves":"60","firstWaveHp":"70","gemTypes":["Orange - Mana Leeching","Blue - Slowing"],"special":"Wizard Tower (Swarmling Domination, many specters)","challenge":"Don't have any gem higher than grade 4.","prereq":"J2"},{"field":"J4","waves":"42","firstWaveHp":"64","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit"],"special":"Tome Chamber (Amplifiers)","challenge":"Don't use any gem enhancement spells.","prereq":"J1"},{"field":"J5","waves":"40","firstWaveHp":"73","gemTypes":["Red - Chain Hit","Purple - Armor Tearing"],"special":null,"challenge":"Don't get any mana from mana shards.","prereq":"J3"},{"field":"J6","waves":"40","firstWaveHp":"73","gemTypes":["Black - Bloodbound","Blue - Slowing","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"V18"},{"field":"V8","waves":"40","firstWaveHp":"24","gemTypes":["Yellow - Critical Hit","Red - Chain Hit","Green - Poison","Black - Bloodbound"],"special":"Vision","challenge":null,"prereq":"J5"},{"field":"V18","waves":"40","firstWaveHp":"80","gemTypes":["Orange - Mana Leeching"],"special":"Vision","challenge":null,"prereq":"J4"},{"field":"K1","waves":"30","firstWaveHp":"46","gemTypes":["Orange - Mana Leeching","Red - Chain Hit","Cyan - Suppressing"],"special":null,"challenge":"Destroy 3 monster nests before wave 7.","prereq":"H3"},{"field":"K2","waves":"32","firstWaveHp":"53","gemTypes":["Green - Poison","Blue - Slowing"],"special":"Mysterious Compass","challenge":"Don't spend any points on skills.","prereq":"K1"},{"field":"K3","waves":"40","firstWaveHp":"68","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Red - Chain Hit","Green - Poison"],"special":"Story-Related (Ruined Ensnaring Socket)","challenge":"Create a grade 9 pure critical hit gem.","prereq":"K2"},{"field":"K4","waves":"44","firstWaveHp":"60","gemTypes":["Green - Poison","Cyan - Suppressing"],"special":"Wizard Tower (Glaring difficulty)\nShadows Introduced","challenge":"Don't use any strike spells.","prereq":"K3"},{"field":"K5","waves":"42","firstWaveHp":"66","gemTypes":["Yellow - Critical Hit","White - Poolbound","Red - Chain Hit"],"special":null,"challenge":"Harvest 24.000 mana from shards before wave 18 starts.","prereq":"K4"},{"field":"K6","waves":"45","firstWaveHp":"74","gemTypes":["Blue - Slowing"],"special":"Tome Chamber (Slowing)","challenge":"Don't have any gem higher than grade 5 on glaring difficulty.\nOpen the tome chamber before wave 11 starts.","prereq":"K5"},{"field":"K7","waves":"50","firstWaveHp":"74","gemTypes":["Orange - Mana Leeching","Green - Poison","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"K5 (glaring)"},{"field":"V1","waves":"99","firstWaveHp":"38","gemTypes":["Yellow - Critical Hit","Green - Poison","Blue - Slowing"],"special":"Vision","challenge":null,"prereq":"K3"},{"field":"L1","waves":"42","firstWaveHp":"74","gemTypes":["Yellow - Critical Hit","Purple - Armor Tearing"],"special":null,"challenge":"Don't build anything.","prereq":"K4"},{"field":"L2","waves":"30","firstWaveHp":"77","gemTypes":["Green - Poison","Blue - Slowing"],"special":null,"challenge":null,"prereq":"L1"},{"field":"L3","waves":"40","firstWaveHp":"81","gemTypes":["White - Poolbound","Black - Bloodbound"],"special":null,"challenge":"Don't build any towers.","prereq":"L2"},{"field":"L4","waves":"50","firstWaveHp":"83","gemTypes":["Red - Chain Hit","Green - Poison","Blue - Slowing","Purple - Armor Tearing"],"special":null,"challenge":"Create a grade 9 pure poolbound gem.","prereq":"L2"},{"field":"L5","waves":"35","firstWaveHp":"131","gemTypes":["Cyan - Suppressing","Purple - Armor Tearing"],"special":"Story-Related (Ruined Ensnaring Socket)","challenge":"Beat 75 waves.","prereq":"L2 (glaring)"},{"field":"L6","waves":"40","firstWaveHp":"94","gemTypes":["Red - Chain Hit"],"special":"Tome Chamber (Poolbound)","challenge":null,"prereq":"L3"},{"field":"L7","waves":"55","firstWaveHp":"108","gemTypes":["Orange - Mana Leeching","White - Poolbound","Red - Chain Hit","Black - Bloodbound"],"special":null,"challenge":null,"prereq":"V5"},{"field":"V5","waves":"46","firstWaveHp":"68","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","White - Poolbound","Red - Chain Hit","Green - Poison","Cyan - Suppressing","Black - Bloodbound","Blue - Slowing","Purple - Armor Tearing"],"special":"Vision","challenge":null,"prereq":"L4"},{"field":"M1","waves":"27","firstWaveHp":"32","gemTypes":["Yellow - Critical Hit","Red - Chain Hit","Green - Poison","Blue - Slowing","Orange - Mana Leeching","Purple - Armor Tearing"],"special":"Tome Chamber (True Colors)","challenge":"Don't have any gem higher than grade 3.","prereq":"I5"},{"field":"M2","waves":"30","firstWaveHp":"40","gemTypes":["Orange - Mana Leeching","Purple - Armor Tearing"],"special":null,"challenge":"Build 21 towers before wave 5.","prereq":"M1"},{"field":"M3","waves":"35","firstWaveHp":"44","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Blue - Slowing"],"special":null,"challenge":"Beat 45 waves.","prereq":"M4"},{"field":"M4","waves":"32","firstWaveHp":"50","gemTypes":["White - Poolbound","Red - Chain Hit"],"special":"Story-Related (Sleeping Hive)","challenge":null,"prereq":"M2"},{"field":"M5","waves":"45","firstWaveHp":"50","gemTypes":["Green - Poison","Purple - Armor Tearing"],"special":"Wizard Tower (Steam: Orblets)\nSpecters Introduced","challenge":"Destroy all wizard locks before wave 10 starts.","prereq":"M3"},{"field":"M6","waves":"40","firstWaveHp":"45","gemTypes":["Yellow - Critical Hit","Cyan - Suppressing","Purple - Armor Tearing"],"special":null,"challenge":"Don't spend any points on skills.","prereq":"M5"},{"field":"M7","waves":"36","firstWaveHp":"62","gemTypes":["Red - Chain Hit","Cyan - Suppressing"],"special":null,"challenge":"Kill an apparition.","prereq":"M5"},{"field":"M8","waves":"42","firstWaveHp":"68","gemTypes":["Orange - Mana Leeching","Green - Poison","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"M7"},{"field":"N1","waves":"40","firstWaveHp":"58","gemTypes":["Green - Poison","Cyan - Suppressing"],"special":null,"challenge":"Use only suppressing gems.","prereq":"M5"},{"field":"N2","waves":"40","firstWaveHp":"64","gemTypes":["Orange - Mana Leeching","Blue - Slowing","Purple - Armor Tearing"],"special":null,"challenge":"Kill an apparition.","prereq":"N1"},{"field":"N3","waves":"35","firstWaveHp":"68","gemTypes":["Yellow - Critical Hit","Green - Poison"],"special":null,"challenge":null,"prereq":"N1"},{"field":"N4","waves":"50","firstWaveHp":"72","gemTypes":["Yellow - Critical Hit","Purple - Armor Tearing"],"special":"Tome Chamber (Ignition)","challenge":"Have 22 gems on the battlefield before wave 9.\nUse only poison gems.","prereq":"N3"},{"field":"N5","waves":"30","firstWaveHp":"75","gemTypes":["Orange - Mana Leeching","Red - Chain Hit"],"special":null,"challenge":"Don't build anything.","prereq":"N1"},{"field":"N6","waves":"42","firstWaveHp":"70","gemTypes":["Yellow - Critical Hit","Red - Chain Hit","Black - Bloodbound"],"special":null,"challenge":"Don't use any strike or gem enhancement spells.","prereq":"N2"},{"field":"N7","waves":"44","firstWaveHp":"97","gemTypes":["Yellow - Critical Hit","White - Poolbound"],"special":"Secret","challenge":"Have the Hatred trait set to level 3 or higher.","prereq":null},{"field":"V10","waves":"36","firstWaveHp":"25","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Red - Chain Hit","Green - Poison","Blue - Slowing"],"special":"Vision","challenge":null,"prereq":"N6"},{"field":"O1","waves":"50","firstWaveHp":"78","gemTypes":["Black - Bloodbound","Purple - Armor Tearing"],"special":"Story-Related (Ruined Ensnaring Socket)","challenge":null,"prereq":"K4"},{"field":"O2","waves":"30","firstWaveHp":"74","gemTypes":["Orange - Mana Leeching","Blue - Slowing"],"special":"Story-Related (Corrupted Mana Shard)","challenge":"Don't get any mana from mana shards on glaring difficulty.","prereq":"O1"},{"field":"O3","waves":"39","firstWaveHp":"77","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Red - Chain Hit"],"special":"Mysterious Compass","challenge":"Don't use any gem enhancement spells.","prereq":"O2"},{"field":"O4","waves":"43","firstWaveHp":"79","gemTypes":["White - Poolbound","Cyan - Suppressing","Black - Bloodbound"],"special":null,"challenge":null,"prereq":"O2"},{"field":"O5","waves":"48","firstWaveHp":"77","gemTypes":["Yellow - Critical Hit","White - Poolbound","Red - Chain Hit","Black - Bloodbound"],"special":"Story-Related (Sealed Gem of Eternity Replica)","challenge":null,"prereq":"O4"},{"field":"O6","waves":"60","firstWaveHp":"80","gemTypes":["Green - Poison","Cyan - Suppressing","Blue - Slowing","Purple - Armor Tearing"],"special":"Wizard Tower (Corrupted Banishment)\nSpires Introduced","challenge":"Destroy all wizard locks before wave 18 starts.\nUse only bloodbound gems.","prereq":"O5"},{"field":"O7","waves":"44","firstWaveHp":"84","gemTypes":["White - Poolbound","Cyan - Suppressing","Black - Bloodbound","Blue - Slowing"],"special":null,"challenge":null,"prereq":"O3"},{"field":"V20","waves":"45","firstWaveHp":"78","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Red - Chain Hit","Green - Poison","Cyan - Suppressing","Purple - Armor Tearing"],"special":"Vision\n(Features 6 Arcane Guardians)","challenge":null,"prereq":"O7"},{"field":"P1","waves":"64","firstWaveHp":"88","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Red - Chain Hit"],"special":"Story-Related (Ruined Summoning Socket)","challenge":"Use only mana leeching gems.","prereq":"O6"},{"field":"P2","waves":"70","firstWaveHp":"94","gemTypes":["Black - Bloodbound","Blue - Slowing","Purple - Armor Tearing"],"special":"Story-Related (Sealed Gem of Eternity Replica)","challenge":null,"prereq":"P1"},{"field":"P3","waves":"44","firstWaveHp":"102","gemTypes":["White - Poolbound","Red - Chain Hit","Cyan - Suppressing","Blue - Slowing"],"special":"Tome Chamber (Barrage)","challenge":null,"prereq":"P1"},{"field":"P4","waves":"25","firstWaveHp":"96","gemTypes":["Orange - Mana Leeching","Purple - Armor Tearing"],"special":"Story-Related (Sleeping Hive)","challenge":null,"prereq":"P3"},{"field":"P5","waves":"57","firstWaveHp":"103","gemTypes":["Red - Chain Hit","Green - Poison","Blue - Slowing"],"special":"Story-Related (Ruined Ensnaring Socket)","challenge":null,"prereq":"P4"},{"field":"P6","waves":"74","firstWaveHp":"223","gemTypes":["Yellow - Critical Hit","White - Poolbound","Green - Poison","Cyan - Suppressing"],"special":"Secret","challenge":"Build 60 walls.","prereq":null},{"field":"P7","waves":"44","firstWaveHp":"143","gemTypes":["Yellow - Critical Hit","Red - Chain Hit","Cyan - Suppressing","Blue - Slowing"],"special":null,"challenge":null,"prereq":"P5"},{"field":"P8","waves":"55","firstWaveHp":"308","gemTypes":["Yellow - Critical Hit","Cyan - Suppressing","Black - Bloodbound","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"P6"},{"field":"V2","waves":"99","firstWaveHp":"52","gemTypes":["Orange - Mana Leeching","Red - Chain Hit"],"special":"Vision","challenge":null,"prereq":"P1"},{"field":"Q1","waves":"45","firstWaveHp":"82","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","White - Poolbound"],"special":null,"challenge":"Have the mana lock trait set to level 7.","prereq":"M7"},{"field":"Q2","waves":"40","firstWaveHp":"89","gemTypes":["Red - Chain Hit","Green - Poison","Purple - Armor Tearing"],"special":null,"challenge":"Use only poolbound gems.","prereq":"Q1"},{"field":"Q3","waves":"50","firstWaveHp":"98","gemTypes":["Orange - Mana Leeching","Red - Chain Hit"],"special":null,"challenge":null,"prereq":"Q2"},{"field":"Q4","waves":"48","firstWaveHp":"96","gemTypes":["Cyan - Suppressing","Blue - Slowing"],"special":null,"challenge":"Harvest 48.000 mana from shards before wave 24 starts.","prereq":"Q2"},{"field":"Q5","waves":"44","firstWaveHp":"110","gemTypes":["Cyan - Suppressing"],"special":"Tome Chamber (Suppressing)","challenge":null,"prereq":"Q3"},{"field":"Q6","waves":"64","firstWaveHp":"115","gemTypes":["Yellow - Critical Hit","Purple - Armor Tearing"],"special":"Wizard Tower (Hatred)\nThe Forgotten can enrage 2-3 wavestones","challenge":null,"prereq":"Q3"},{"field":"Q7","waves":"54","firstWaveHp":"141","gemTypes":["Green - Poison","Blue - Slowing"],"special":"Secret","challenge":"Build 30 traps.","prereq":null},{"field":"Q8","waves":"77","firstWaveHp":"334","gemTypes":["Orange - Mana Leeching","Green - Poison","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"Q7"},{"field":"V7","waves":"40","firstWaveHp":"24","gemTypes":["Yellow - Critical Hit","Green - Poison","Black - Bloodbound","Blue - Slowing"],"special":"Vision","challenge":null,"prereq":"Q4"},{"field":"V19","waves":"38","firstWaveHp":"620","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Cyan - Suppressing","Blue - Slowing"],"special":"Vision\n(Features 5 Arcane Guardians)","challenge":null,"prereq":"Q8"},{"field":"R1","waves":"60","firstWaveHp":"86","gemTypes":["Yellow - Critical Hit"],"special":"Tome Chamber (Critical Hit)","challenge":null,"prereq":"O6"},{"field":"R2","waves":"62","firstWaveHp":"90","gemTypes":["Green - Poison","Blue - Slowing"],"special":null,"challenge":null,"prereq":"R1"},{"field":"R3","waves":"59","firstWaveHp":"106","gemTypes":["Orange - Mana Leeching","Red - Chain Hit","Black - Bloodbound"],"special":"Story-Related (Sealed Gem of Eternity Replica)","challenge":null,"prereq":"R1"},{"field":"R4","waves":"52","firstWaveHp":"97","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","White - Poolbound","Red - Chain Hit","Green - Poison","Cyan - Suppressing","Black - Bloodbound","Blue - Slowing","Purple - Armor Tearing"],"special":null,"challenge":"Use only armor tearing gems.","prereq":"R1"},{"field":"R5","waves":"63","firstWaveHp":"101","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","White - Poolbound","Red - Chain Hit"],"special":"Story-Related (Ruined Ensnaring Socket)","challenge":null,"prereq":"R2"},{"field":"R6","waves":"61","firstWaveHp":"148","gemTypes":["Yellow - Critical Hit","Red - Chain Hit","Green - Poison","Cyan - Suppressing","Blue - Slowing"],"special":null,"challenge":null,"prereq":"R2 (glaring)"},{"field":"R7","waves":"51","firstWaveHp":"101","gemTypes":["White - Poolbound","Green - Poison","Black - Bloodbound","Blue - Slowing"],"special":null,"challenge":null,"prereq":"V17"},{"field":"R8","waves":"64","firstWaveHp":"186","gemTypes":["White - Poolbound","Red - Chain Hit","Cyan - Suppressing","Black - Bloodbound","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"R3"},{"field":"V13","waves":"40","firstWaveHp":"134","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","White - Poolbound","Green - Poison","Cyan - Suppressing","Black - Bloodbound"],"special":"Vision","challenge":null,"prereq":"R6"},{"field":"T1","waves":"56","firstWaveHp":"125","gemTypes":["Green - Poison","Blue - Slowing"],"special":"Story-Related (Corpse of a Fellow Wizard)\nWake of Eternity","challenge":"Don't build any towers.","prereq":"Q6"},{"field":"T2","waves":"60","firstWaveHp":"142","gemTypes":["Yellow - Critical Hit","Red - Chain Hit"],"special":null,"challenge":null,"prereq":"T1"},{"field":"T3","waves":"66","firstWaveHp":"156","gemTypes":["Yellow - Critical Hit","Green - Poison"],"special":null,"challenge":"Have the haste trait set to level 7.","prereq":"T4"},{"field":"T4","waves":"47","firstWaveHp":"176","gemTypes":["Orange - Mana Leeching","White - Poolbound","Cyan - Suppressing","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"T2"},{"field":"T5","waves":"70","firstWaveHp":"170","gemTypes":["Orange - Mana Leeching","Red - Chain Hit"],"special":"Tome Chamber (Resonance)","challenge":"Use only critical hit gems.","prereq":"T3"},{"field":"T6","waves":"70","firstWaveHp":"180","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Green - Poison","Blue - Slowing","Purple - Armor Tearing"],"special":"Wizard Tower (Haunting difficulty)\nThe Forgotten can now blacken the UI","challenge":null,"prereq":"T3"},{"field":"T7","waves":"68","firstWaveHp":"193","gemTypes":["Cyan - Suppressing","Blue - Slowing"],"special":"Story-Related (Broken Orb Base, Corpse of a Fellow Wizard, lots of Apparitions)","challenge":"Destroy 8 beacons before wave 15.","prereq":"T6"},{"field":"T8","waves":"75","firstWaveHp":"188","gemTypes":["Yellow - Critical Hit","Green - Poison","Black - Bloodbound"],"special":"Story-Related (Sealed Gem of Eternity Replica)","challenge":null,"prereq":"T7"},{"field":"T9","waves":"73","firstWaveHp":"236","gemTypes":["Orange - Mana Leeching","Green - Poison","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"T8 (glaring)"},{"field":"V22","waves":"40","firstWaveHp":"449","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Red - Chain Hit","Blue - Slowing","Purple - Armor Tearing"],"special":"Vision\n(Features 7 Arcane Guardians)","challenge":null,"prereq":"T1"},{"field":"U1","waves":"60","firstWaveHp":"118","gemTypes":["Orange - Mana Leeching","Cyan - Suppressing","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"Q6"},{"field":"U2","waves":"50","firstWaveHp":"125","gemTypes":["Orange - Mana Leeching","Red - Chain Hit","Green - Poison"],"special":null,"challenge":null,"prereq":"U1"},{"field":"U3","waves":"54","firstWaveHp":"132","gemTypes":["Blue - Slowing","Purple - Armor Tearing"],"special":"Most intact tombs","challenge":null,"prereq":"U1"},{"field":"U4","waves":"67","firstWaveHp":"141","gemTypes":["Yellow - Critical Hit","Red - Chain Hit","Green - Poison","Cyan - Suppressing"],"special":"Story-Related (Sleeping Hive)\nMysterious Compass","challenge":null,"prereq":"U3"},{"field":"U5","waves":"51","firstWaveHp":"136","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Blue - Slowing"],"special":null,"challenge":null,"prereq":"U2"},{"field":"U6","waves":"66","firstWaveHp":"142","gemTypes":["Orange - Mana Leeching","White - Poolbound"],"special":"Story-Related (Ruined Ensnaring Socket)","challenge":null,"prereq":"U5"},{"field":"U7","waves":"42","firstWaveHp":"200","gemTypes":["Green - Poison","Cyan - Suppressing","Black - Bloodbound"],"special":null,"challenge":null,"prereq":"U6 (glaring)"},{"field":"U8","waves":"36","firstWaveHp":"121","gemTypes":["Orange - Mana Leeching","Green - Poison","Purple - Armor Tearing"],"special":"Tome Chamber (Chain Hit)","challenge":null,"prereq":"U4"},{"field":"V6","waves":"29","firstWaveHp":"35","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Cyan - Suppressing","Black - Bloodbound","Blue - Slowing"],"special":"Vision","challenge":null,"prereq":"U7"},{"field":"W1","waves":"57","firstWaveHp":"114","gemTypes":["Orange - Mana Leeching","Green - Poison","Blue - Slowing","Purple - Armor Tearing"],"special":null,"challenge":"Use only chain hit gems.","prereq":"R5"},{"field":"W2","waves":"56","firstWaveHp":"101","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Red - Chain Hit","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"W1"},{"field":"W3","waves":"77","firstWaveHp":"143","gemTypes":["Orange - Mana Leeching","White - Poolbound","Red - Chain Hit","Black - Bloodbound"],"special":null,"challenge":null,"prereq":"W2 (glaring)"},{"field":"W4","waves":"72","firstWaveHp":"117","gemTypes":["Black - Bloodbound"],"special":"Story-Related (Sealed Gem of Eternity Replica)","challenge":null,"prereq":"W2"},{"field":"W5","waves":"72","firstWaveHp":"122","gemTypes":["Green - Poison","Cyan - Suppressing","Black - Bloodbound"],"special":"Tome Chamber (Bloodbound)","challenge":null,"prereq":"W2"},{"field":"W6","waves":"72","firstWaveHp":"126","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","White - Poolbound","Green - Poison","Black - Bloodbound","Blue - Slowing","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"W2"},{"field":"W7","waves":"84","firstWaveHp":"197","gemTypes":["Orange - Mana Leeching","Red - Chain Hit","Blue - Slowing","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"W3"},{"field":"V17","waves":"48","firstWaveHp":"76","gemTypes":["Yellow - Critical Hit","Red - Chain Hit","Green - Poison","Black - Bloodbound","Purple - Armor Tearing"],"special":"Vision","challenge":null,"prereq":"W4"},{"field":"X1","waves":"70","firstWaveHp":"200","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","White - Poolbound","Red - Chain Hit","Green - Poison","Cyan - Suppressing","Black - Bloodbound","Blue - Slowing","Purple - Armor Tearing"],"special":"Story-Related (Towers controlled from inside the Spiritforge)","challenge":null,"prereq":"T7"},{"field":"X2","waves":"72","firstWaveHp":"215","gemTypes":["White - Poolbound","Red - Chain Hit","Cyan - Suppressing"],"special":"Story-Related (Possession Obelisk)","challenge":null,"prereq":"X1"},{"field":"X3","waves":"75","firstWaveHp":"250","gemTypes":["Green - Poison","Black - Bloodbound","Blue - Slowing"],"special":"Story-Related (Corrupted Mana Shard)","challenge":null,"prereq":"X2"},{"field":"X4","waves":"90","firstWaveHp":"280","gemTypes":["Yellow - Critical Hit","Green - Poison","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"X3"},{"field":"X5","waves":"99","firstWaveHp":"299","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","White - Poolbound","Red - Chain Hit","Green - Poison","Cyan - Suppressing","Black - Bloodbound","Blue - Slowing","Purple - Armor Tearing"],"special":"Story-Related (Climax Level, lots of Apparitions and Specters)\nChasing Shadows","challenge":null,"prereq":"X4"},{"field":"X6","waves":"78","firstWaveHp":"222","gemTypes":["Green - Poison","Black - Bloodbound","Blue - Slowing"],"special":"Secret","challenge":null,"prereq":null},{"field":"X7","waves":"70","firstWaveHp":"220","gemTypes":["Orange - Mana Leeching","Cyan - Suppressing","Black - Bloodbound"],"special":"Mysterious Compass","challenge":null,"prereq":"X4"},{"field":"V12","waves":"32","firstWaveHp":"24","gemTypes":["White - Poolbound","Red - Chain Hit","Cyan - Suppressing","Black - Bloodbound"],"special":"Vision","challenge":null,"prereq":"X7"},{"field":"Y1","waves":"50","firstWaveHp":"180","gemTypes":["Green - Poison","Cyan - Suppressing"],"special":null,"challenge":null,"prereq":"X2"},{"field":"Y2","waves":"62","firstWaveHp":"195","gemTypes":["Yellow - Critical Hit","Red - Chain Hit"],"special":null,"challenge":null,"prereq":"Y1"},{"field":"Y3","waves":"56","firstWaveHp":"210","gemTypes":["White - Poolbound"],"special":null,"challenge":null,"prereq":"Y2"},{"field":"Y4","waves":"90","firstWaveHp":"230","gemTypes":["Yellow - Critical Hit","Green - Poison"],"special":null,"challenge":null,"prereq":"X5"},{"field":"Y5","waves":"94","firstWaveHp":"268","gemTypes":["Orange - Mana Leeching","Red - Chain Hit"],"special":null,"challenge":null,"prereq":"Y4"},{"field":"Y6","waves":"98","firstWaveHp":"300","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","White - Poolbound","Red - Chain Hit","Green - Poison","Cyan - Suppressing","Black - Bloodbound","Blue - Slowing","Purple - Armor Tearing"],"special":"Story-Related (Final Level)\nPermanent +10 Wake of Eternity Skill Level","challenge":null,"prereq":"Y5"},{"field":"Y7","waves":"77","firstWaveHp":"170","gemTypes":["Orange - Mana Leeching","Green - Poison","Purple - Armor Tearing"],"special":null,"challenge":null,"prereq":"Y3"},{"field":"V9","waves":"50","firstWaveHp":"240","gemTypes":["Orange - Mana Leeching","Yellow - Critical Hit","Red - Chain Hit","Purple - Armor Tearing"],"special":"Vision","challenge":null,"prereq":"Y6"}]
Display the source blob
Display the rendered blob
Raw
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Pages: 1 -->
<svg width="1291pt" height="2478pt"
viewBox="0.00 0.00 1291.00 2477.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2473.5)">
<polygon fill="white" stroke="none" points="-4,4 -4,-2473.5 1287,-2473.5 1287,4 -4,4"/>
<!-- E6 -->
<g id="node1" class="node">
<title>E6</title>
<ellipse fill="none" stroke="black" cx="243" cy="-1852" rx="27" ry="18"/>
<text text-anchor="middle" x="243" y="-1846.95" font-family="Times,serif" font-size="14.00">E6</text>
</g>
<!-- A1 -->
<g id="node2" class="node">
<title>A1</title>
<ellipse fill="none" stroke="black" cx="153" cy="-1779" rx="27" ry="18"/>
<text text-anchor="middle" x="153" y="-1773.95" font-family="Times,serif" font-size="14.00">A1</text>
</g>
<!-- E6&#45;&gt;A1 -->
<g id="edge1" class="edge">
<title>E6&#45;&gt;A1</title>
<path fill="none" stroke="black" d="M226.07,-1837.65C212.75,-1827.13 193.95,-1812.31 178.76,-1800.32"/>
<polygon fill="black" stroke="black" points="181.06,-1797.68 171.04,-1794.23 176.72,-1803.17 181.06,-1797.68"/>
</g>
<!-- E7 -->
<g id="node10" class="node">
<title>E7</title>
<ellipse fill="none" stroke="black" cx="243" cy="-1779" rx="27" ry="18"/>
<text text-anchor="middle" x="243" y="-1773.95" font-family="Times,serif" font-size="14.00">E7</text>
</g>
<!-- E6&#45;&gt;E7 -->
<g id="edge38" class="edge">
<title>E6&#45;&gt;E7</title>
<path fill="none" stroke="black" d="M243,-1833.81C243,-1826.23 243,-1817.1 243,-1808.54"/>
<polygon fill="black" stroke="black" points="246.5,-1808.54 243,-1798.54 239.5,-1808.54 246.5,-1808.54"/>
</g>
<!-- A2 -->
<g id="node3" class="node">
<title>A2</title>
<ellipse fill="none" stroke="black" cx="99" cy="-1706" rx="27" ry="18"/>
<text text-anchor="middle" x="99" y="-1700.95" font-family="Times,serif" font-size="14.00">A2</text>
</g>
<!-- A1&#45;&gt;A2 -->
<g id="edge2" class="edge">
<title>A1&#45;&gt;A2</title>
<path fill="none" stroke="black" d="M141.28,-1762.59C134.35,-1753.48 125.41,-1741.72 117.54,-1731.37"/>
<polygon fill="black" stroke="black" points="120.45,-1729.42 111.61,-1723.58 114.88,-1733.66 120.45,-1729.42"/>
</g>
<!-- A3 -->
<g id="node4" class="node">
<title>A3</title>
<ellipse fill="none" stroke="black" cx="27" cy="-1617.5" rx="27" ry="18"/>
<text text-anchor="middle" x="27" y="-1612.45" font-family="Times,serif" font-size="14.00">A3</text>
</g>
<!-- A2&#45;&gt;A3 -->
<g id="edge3" class="edge">
<title>A2&#45;&gt;A3</title>
<path fill="none" stroke="black" d="M86.46,-1689.93C75.48,-1676.74 59.34,-1657.36 46.65,-1642.11"/>
<polygon fill="black" stroke="black" points="49.7,-1640.29 40.61,-1634.85 44.32,-1644.77 49.7,-1640.29"/>
</g>
<!-- A4 -->
<g id="node5" class="node">
<title>A4</title>
<ellipse fill="none" stroke="black" cx="99" cy="-1617.5" rx="27" ry="18"/>
<text text-anchor="middle" x="99" y="-1612.45" font-family="Times,serif" font-size="14.00">A4</text>
</g>
<!-- A2&#45;&gt;A4 -->
<g id="edge4" class="edge">
<title>A2&#45;&gt;A4</title>
<path fill="none" stroke="black" d="M99,-1687.91C99,-1676.26 99,-1660.55 99,-1647.02"/>
<polygon fill="black" stroke="black" points="102.5,-1647.36 99,-1637.36 95.5,-1647.36 102.5,-1647.36"/>
</g>
<!-- A5 -->
<g id="node6" class="node">
<title>A5</title>
<ellipse fill="none" stroke="black" cx="27" cy="-1529" rx="27" ry="18"/>
<text text-anchor="middle" x="27" y="-1523.95" font-family="Times,serif" font-size="14.00">A5</text>
</g>
<!-- A3&#45;&gt;A5 -->
<g id="edge5" class="edge">
<title>A3&#45;&gt;A5</title>
<path fill="none" stroke="black" d="M27,-1599.41C27,-1587.76 27,-1572.05 27,-1558.52"/>
<polygon fill="black" stroke="black" points="30.5,-1558.86 27,-1548.86 23.5,-1558.86 30.5,-1558.86"/>
</g>
<!-- A6 -->
<g id="node7" class="node">
<title>A6</title>
<ellipse fill="none" stroke="black" cx="99" cy="-1529" rx="27" ry="18"/>
<text text-anchor="middle" x="99" y="-1523.95" font-family="Times,serif" font-size="14.00">A6</text>
</g>
<!-- A4&#45;&gt;A6 -->
<g id="edge6" class="edge">
<title>A4&#45;&gt;A6</title>
<path fill="none" stroke="black" d="M99,-1599.41C99,-1587.76 99,-1572.05 99,-1558.52"/>
<polygon fill="black" stroke="black" points="102.5,-1558.86 99,-1548.86 95.5,-1558.86 102.5,-1558.86"/>
<text text-anchor="middle" x="118.12" y="-1568.2" font-family="Times,serif" font-size="14.00">glaring</text>
</g>
<!-- V15 -->
<g id="node9" class="node">
<title>V15</title>
<ellipse fill="none" stroke="black" cx="27" cy="-1456" rx="27" ry="18"/>
<text text-anchor="middle" x="27" y="-1450.95" font-family="Times,serif" font-size="14.00">V15</text>
</g>
<!-- A5&#45;&gt;V15 -->
<g id="edge8" class="edge">
<title>A5&#45;&gt;V15</title>
<path fill="none" stroke="black" d="M27,-1510.81C27,-1503.23 27,-1494.1 27,-1485.54"/>
<polygon fill="black" stroke="black" points="30.5,-1485.54 27,-1475.54 23.5,-1485.54 30.5,-1485.54"/>
</g>
<!-- A7 -->
<g id="node8" class="node">
<title>A7</title>
<ellipse fill="none" stroke="black" cx="99" cy="-1456" rx="27" ry="18"/>
<text text-anchor="middle" x="99" y="-1450.95" font-family="Times,serif" font-size="14.00">A7</text>
</g>
<!-- A6&#45;&gt;A7 -->
<g id="edge7" class="edge">
<title>A6&#45;&gt;A7</title>
<path fill="none" stroke="black" d="M99,-1510.81C99,-1503.23 99,-1494.1 99,-1485.54"/>
<polygon fill="black" stroke="black" points="102.5,-1485.54 99,-1475.54 95.5,-1485.54 102.5,-1485.54"/>
</g>
<!-- B1 -->
<g id="node11" class="node">
<title>B1</title>
<ellipse fill="none" stroke="black" cx="243" cy="-1706" rx="27" ry="18"/>
<text text-anchor="middle" x="243" y="-1700.95" font-family="Times,serif" font-size="14.00">B1</text>
</g>
<!-- E7&#45;&gt;B1 -->
<g id="edge9" class="edge">
<title>E7&#45;&gt;B1</title>
<path fill="none" stroke="black" d="M243,-1760.81C243,-1753.23 243,-1744.1 243,-1735.54"/>
<polygon fill="black" stroke="black" points="246.5,-1735.54 243,-1725.54 239.5,-1735.54 246.5,-1735.54"/>
</g>
<!-- B2 -->
<g id="node12" class="node">
<title>B2</title>
<ellipse fill="none" stroke="black" cx="171" cy="-1617.5" rx="27" ry="18"/>
<text text-anchor="middle" x="171" y="-1612.45" font-family="Times,serif" font-size="14.00">B2</text>
</g>
<!-- B1&#45;&gt;B2 -->
<g id="edge10" class="edge">
<title>B1&#45;&gt;B2</title>
<path fill="none" stroke="black" d="M230.46,-1689.93C219.48,-1676.74 203.34,-1657.36 190.65,-1642.11"/>
<polygon fill="black" stroke="black" points="193.7,-1640.29 184.61,-1634.85 188.32,-1644.77 193.7,-1640.29"/>
</g>
<!-- B3 -->
<g id="node13" class="node">
<title>B3</title>
<ellipse fill="none" stroke="black" cx="243" cy="-1617.5" rx="27" ry="18"/>
<text text-anchor="middle" x="243" y="-1612.45" font-family="Times,serif" font-size="14.00">B3</text>
</g>
<!-- B1&#45;&gt;B3 -->
<g id="edge11" class="edge">
<title>B1&#45;&gt;B3</title>
<path fill="none" stroke="black" d="M243,-1687.91C243,-1676.26 243,-1660.55 243,-1647.02"/>
<polygon fill="black" stroke="black" points="246.5,-1647.36 243,-1637.36 239.5,-1647.36 246.5,-1647.36"/>
</g>
<!-- B6 -->
<g id="node16" class="node">
<title>B6</title>
<ellipse fill="none" stroke="black" cx="315" cy="-1617.5" rx="27" ry="18"/>
<text text-anchor="middle" x="315" y="-1612.45" font-family="Times,serif" font-size="14.00">B6</text>
</g>
<!-- B1&#45;&gt;B6 -->
<g id="edge14" class="edge">
<title>B1&#45;&gt;B6</title>
<path fill="none" stroke="black" d="M255.54,-1689.93C266.52,-1676.74 282.66,-1657.36 295.35,-1642.11"/>
<polygon fill="black" stroke="black" points="297.68,-1644.77 301.39,-1634.85 292.3,-1640.29 297.68,-1644.77"/>
<text text-anchor="middle" x="305.12" y="-1656.7" font-family="Times,serif" font-size="14.00">glaring</text>
</g>
<!-- B4 -->
<g id="node14" class="node">
<title>B4</title>
<ellipse fill="none" stroke="black" cx="171" cy="-1529" rx="27" ry="18"/>
<text text-anchor="middle" x="171" y="-1523.95" font-family="Times,serif" font-size="14.00">B4</text>
</g>
<!-- B2&#45;&gt;B4 -->
<g id="edge12" class="edge">
<title>B2&#45;&gt;B4</title>
<path fill="none" stroke="black" d="M171,-1599.41C171,-1587.76 171,-1572.05 171,-1558.52"/>
<polygon fill="black" stroke="black" points="174.5,-1558.86 171,-1548.86 167.5,-1558.86 174.5,-1558.86"/>
</g>
<!-- B5 -->
<g id="node15" class="node">
<title>B5</title>
<ellipse fill="none" stroke="black" cx="243" cy="-1529" rx="27" ry="18"/>
<text text-anchor="middle" x="243" y="-1523.95" font-family="Times,serif" font-size="14.00">B5</text>
</g>
<!-- B3&#45;&gt;B5 -->
<g id="edge13" class="edge">
<title>B3&#45;&gt;B5</title>
<path fill="none" stroke="black" d="M243,-1599.41C243,-1587.76 243,-1572.05 243,-1558.52"/>
<polygon fill="black" stroke="black" points="246.5,-1558.86 243,-1548.86 239.5,-1558.86 246.5,-1558.86"/>
</g>
<!-- B7 -->
<g id="node17" class="node">
<title>B7</title>
<ellipse fill="none" stroke="black" cx="171" cy="-1456" rx="27" ry="18"/>
<text text-anchor="middle" x="171" y="-1450.95" font-family="Times,serif" font-size="14.00">B7</text>
</g>
<!-- B4&#45;&gt;B7 -->
<g id="edge15" class="edge">
<title>B4&#45;&gt;B7</title>
<path fill="none" stroke="black" d="M171,-1510.81C171,-1503.23 171,-1494.1 171,-1485.54"/>
<polygon fill="black" stroke="black" points="174.5,-1485.54 171,-1475.54 167.5,-1485.54 174.5,-1485.54"/>
</g>
<!-- V21 -->
<g id="node18" class="node">
<title>V21</title>
<ellipse fill="none" stroke="black" cx="171" cy="-1383" rx="27" ry="18"/>
<text text-anchor="middle" x="171" y="-1377.95" font-family="Times,serif" font-size="14.00">V21</text>
</g>
<!-- B7&#45;&gt;V21 -->
<g id="edge16" class="edge">
<title>B7&#45;&gt;V21</title>
<path fill="none" stroke="black" d="M171,-1437.81C171,-1430.23 171,-1421.1 171,-1412.54"/>
<polygon fill="black" stroke="black" points="174.5,-1412.54 171,-1402.54 167.5,-1412.54 174.5,-1412.54"/>
</g>
<!-- G3 -->
<g id="node19" class="node">
<title>G3</title>
<ellipse fill="none" stroke="black" cx="703" cy="-1060" rx="27" ry="18"/>
<text text-anchor="middle" x="703" y="-1054.95" font-family="Times,serif" font-size="14.00">G3</text>
</g>
<!-- C1 -->
<g id="node20" class="node">
<title>C1</title>
<ellipse fill="none" stroke="black" cx="639" cy="-971.5" rx="27" ry="18"/>
<text text-anchor="middle" x="639" y="-966.45" font-family="Times,serif" font-size="14.00">C1</text>
</g>
<!-- G3&#45;&gt;C1 -->
<g id="edge17" class="edge">
<title>G3&#45;&gt;C1</title>
<path fill="none" stroke="black" d="M691.56,-1043.54C682.06,-1030.7 668.37,-1012.2 657.35,-997.3"/>
<polygon fill="black" stroke="black" points="660.22,-995.3 651.46,-989.34 654.59,-999.46 660.22,-995.3"/>
</g>
<!-- V14 -->
<g id="node50" class="node">
<title>V14</title>
<ellipse fill="none" stroke="black" cx="711" cy="-971.5" rx="27" ry="18"/>
<text text-anchor="middle" x="711" y="-966.45" font-family="Times,serif" font-size="14.00">V14</text>
</g>
<!-- G3&#45;&gt;V14 -->
<g id="edge46" class="edge">
<title>G3&#45;&gt;V14</title>
<path fill="none" stroke="black" d="M704.58,-1041.91C705.66,-1030.26 707.11,-1014.55 708.36,-1001.02"/>
<polygon fill="black" stroke="black" points="711.82,-1001.64 709.26,-991.36 704.85,-1000.99 711.82,-1001.64"/>
</g>
<!-- C2 -->
<g id="node21" class="node">
<title>C2</title>
<ellipse fill="none" stroke="black" cx="675" cy="-883" rx="27" ry="18"/>
<text text-anchor="middle" x="675" y="-877.95" font-family="Times,serif" font-size="14.00">C2</text>
</g>
<!-- C1&#45;&gt;C2 -->
<g id="edge18" class="edge">
<title>C1&#45;&gt;C2</title>
<path fill="none" stroke="black" d="M645.94,-953.82C650.97,-941.74 657.88,-925.13 663.7,-911.14"/>
<polygon fill="black" stroke="black" points="666.89,-912.6 667.5,-902.02 660.42,-909.91 666.89,-912.6"/>
</g>
<!-- C3 -->
<g id="node22" class="node">
<title>C3</title>
<ellipse fill="none" stroke="black" cx="675" cy="-794.5" rx="27" ry="18"/>
<text text-anchor="middle" x="675" y="-789.45" font-family="Times,serif" font-size="14.00">C3</text>
</g>
<!-- C2&#45;&gt;C3 -->
<g id="edge19" class="edge">
<title>C2&#45;&gt;C3</title>
<path fill="none" stroke="black" d="M675,-864.91C675,-853.26 675,-837.55 675,-824.02"/>
<polygon fill="black" stroke="black" points="678.5,-824.36 675,-814.36 671.5,-824.36 678.5,-824.36"/>
</g>
<!-- C4 -->
<g id="node23" class="node">
<title>C4</title>
<ellipse fill="none" stroke="black" cx="747" cy="-794.5" rx="27" ry="18"/>
<text text-anchor="middle" x="747" y="-789.45" font-family="Times,serif" font-size="14.00">C4</text>
</g>
<!-- C2&#45;&gt;C4 -->
<g id="edge20" class="edge">
<title>C2&#45;&gt;C4</title>
<path fill="none" stroke="black" d="M687.54,-866.93C698.52,-853.74 714.66,-834.36 727.35,-819.11"/>
<polygon fill="black" stroke="black" points="729.68,-821.77 733.39,-811.85 724.3,-817.29 729.68,-821.77"/>
</g>
<!-- C7 -->
<g id="node26" class="node">
<title>C7</title>
<ellipse fill="none" stroke="black" cx="675" cy="-706" rx="27" ry="18"/>
<text text-anchor="middle" x="675" y="-700.95" font-family="Times,serif" font-size="14.00">C7</text>
</g>
<!-- C3&#45;&gt;C7 -->
<g id="edge23" class="edge">
<title>C3&#45;&gt;C7</title>
<path fill="none" stroke="black" d="M675,-776.41C675,-764.76 675,-749.05 675,-735.52"/>
<polygon fill="black" stroke="black" points="678.5,-735.86 675,-725.86 671.5,-735.86 678.5,-735.86"/>
</g>
<!-- C5 -->
<g id="node24" class="node">
<title>C5</title>
<ellipse fill="none" stroke="black" cx="747" cy="-706" rx="27" ry="18"/>
<text text-anchor="middle" x="747" y="-700.95" font-family="Times,serif" font-size="14.00">C5</text>
</g>
<!-- C4&#45;&gt;C5 -->
<g id="edge21" class="edge">
<title>C4&#45;&gt;C5</title>
<path fill="none" stroke="black" d="M747,-776.41C747,-764.76 747,-749.05 747,-735.52"/>
<polygon fill="black" stroke="black" points="750.5,-735.86 747,-725.86 743.5,-735.86 750.5,-735.86"/>
</g>
<!-- V3 -->
<g id="node27" class="node">
<title>V3</title>
<ellipse fill="none" stroke="black" cx="819" cy="-706" rx="27" ry="18"/>
<text text-anchor="middle" x="819" y="-700.95" font-family="Times,serif" font-size="14.00">V3</text>
</g>
<!-- C4&#45;&gt;V3 -->
<g id="edge24" class="edge">
<title>C4&#45;&gt;V3</title>
<path fill="none" stroke="black" d="M759.54,-778.43C770.52,-765.24 786.66,-745.86 799.35,-730.61"/>
<polygon fill="black" stroke="black" points="801.68,-733.27 805.39,-723.35 796.3,-728.79 801.68,-733.27"/>
</g>
<!-- C6 -->
<g id="node25" class="node">
<title>C6</title>
<ellipse fill="none" stroke="black" cx="747" cy="-633" rx="27" ry="18"/>
<text text-anchor="middle" x="747" y="-627.95" font-family="Times,serif" font-size="14.00">C6</text>
</g>
<!-- C5&#45;&gt;C6 -->
<g id="edge22" class="edge">
<title>C5&#45;&gt;C6</title>
<path fill="none" stroke="black" d="M747,-687.81C747,-680.23 747,-671.1 747,-662.54"/>
<polygon fill="black" stroke="black" points="750.5,-662.54 747,-652.54 743.5,-662.54 750.5,-662.54"/>
</g>
<!-- H3 -->
<g id="node28" class="node">
<title>H3</title>
<ellipse fill="none" stroke="black" cx="459" cy="-1706" rx="27" ry="18"/>
<text text-anchor="middle" x="459" y="-1700.95" font-family="Times,serif" font-size="14.00">H3</text>
</g>
<!-- D1 -->
<g id="node29" class="node">
<title>D1</title>
<ellipse fill="none" stroke="black" cx="387" cy="-1617.5" rx="27" ry="18"/>
<text text-anchor="middle" x="387" y="-1612.45" font-family="Times,serif" font-size="14.00">D1</text>
</g>
<!-- H3&#45;&gt;D1 -->
<g id="edge25" class="edge">
<title>H3&#45;&gt;D1</title>
<path fill="none" stroke="black" d="M446.46,-1689.93C435.48,-1676.74 419.34,-1657.36 406.65,-1642.11"/>
<polygon fill="black" stroke="black" points="409.7,-1640.29 400.61,-1634.85 404.32,-1644.77 409.7,-1640.29"/>
</g>
<!-- K1 -->
<g id="node82" class="node">
<title>K1</title>
<ellipse fill="none" stroke="black" cx="459" cy="-1617.5" rx="27" ry="18"/>
<text text-anchor="middle" x="459" y="-1612.45" font-family="Times,serif" font-size="14.00">K1</text>
</g>
<!-- H3&#45;&gt;K1 -->
<g id="edge78" class="edge">
<title>H3&#45;&gt;K1</title>
<path fill="none" stroke="black" d="M459,-1687.91C459,-1676.26 459,-1660.55 459,-1647.02"/>
<polygon fill="black" stroke="black" points="462.5,-1647.36 459,-1637.36 455.5,-1647.36 462.5,-1647.36"/>
</g>
<!-- D2 -->
<g id="node30" class="node">
<title>D2</title>
<ellipse fill="none" stroke="black" cx="315" cy="-1529" rx="27" ry="18"/>
<text text-anchor="middle" x="315" y="-1523.95" font-family="Times,serif" font-size="14.00">D2</text>
</g>
<!-- D1&#45;&gt;D2 -->
<g id="edge26" class="edge">
<title>D1&#45;&gt;D2</title>
<path fill="none" stroke="black" d="M374.46,-1601.43C363.48,-1588.24 347.34,-1568.86 334.65,-1553.61"/>
<polygon fill="black" stroke="black" points="337.7,-1551.79 328.61,-1546.35 332.32,-1556.27 337.7,-1551.79"/>
</g>
<!-- D3 -->
<g id="node31" class="node">
<title>D3</title>
<ellipse fill="none" stroke="black" cx="387" cy="-1529" rx="27" ry="18"/>
<text text-anchor="middle" x="387" y="-1523.95" font-family="Times,serif" font-size="14.00">D3</text>
</g>
<!-- D1&#45;&gt;D3 -->
<g id="edge27" class="edge">
<title>D1&#45;&gt;D3</title>
<path fill="none" stroke="black" d="M387,-1599.41C387,-1587.76 387,-1572.05 387,-1558.52"/>
<polygon fill="black" stroke="black" points="390.5,-1558.86 387,-1548.86 383.5,-1558.86 390.5,-1558.86"/>
</g>
<!-- D4 -->
<g id="node32" class="node">
<title>D4</title>
<ellipse fill="none" stroke="black" cx="315" cy="-1456" rx="27" ry="18"/>
<text text-anchor="middle" x="315" y="-1450.95" font-family="Times,serif" font-size="14.00">D4</text>
</g>
<!-- D2&#45;&gt;D4 -->
<g id="edge28" class="edge">
<title>D2&#45;&gt;D4</title>
<path fill="none" stroke="black" d="M315,-1510.81C315,-1503.23 315,-1494.1 315,-1485.54"/>
<polygon fill="black" stroke="black" points="318.5,-1485.54 315,-1475.54 311.5,-1485.54 318.5,-1485.54"/>
</g>
<!-- D5 -->
<g id="node33" class="node">
<title>D5</title>
<ellipse fill="none" stroke="black" cx="387" cy="-1456" rx="27" ry="18"/>
<text text-anchor="middle" x="387" y="-1450.95" font-family="Times,serif" font-size="14.00">D5</text>
</g>
<!-- D3&#45;&gt;D5 -->
<g id="edge29" class="edge">
<title>D3&#45;&gt;D5</title>
<path fill="none" stroke="black" d="M387,-1510.81C387,-1503.23 387,-1494.1 387,-1485.54"/>
<polygon fill="black" stroke="black" points="390.5,-1485.54 387,-1475.54 383.5,-1485.54 390.5,-1485.54"/>
</g>
<!-- V4 -->
<g id="node36" class="node">
<title>V4</title>
<ellipse fill="none" stroke="black" cx="351" cy="-1383" rx="27" ry="18"/>
<text text-anchor="middle" x="351" y="-1377.95" font-family="Times,serif" font-size="14.00">V4</text>
</g>
<!-- D5&#45;&gt;V4 -->
<g id="edge31" class="edge">
<title>D5&#45;&gt;V4</title>
<path fill="none" stroke="black" d="M378.65,-1438.53C374.42,-1430.2 369.19,-1419.88 364.42,-1410.47"/>
<polygon fill="black" stroke="black" points="367.63,-1409.06 359.99,-1401.73 361.39,-1412.23 367.63,-1409.06"/>
</g>
<!-- D6 -->
<g id="node34" class="node">
<title>D6</title>
<ellipse fill="none" stroke="black" cx="613" cy="-2451.5" rx="27" ry="18"/>
<text text-anchor="middle" x="613" y="-2446.45" font-family="Times,serif" font-size="14.00">D6</text>
</g>
<!-- D7 -->
<g id="node35" class="node">
<title>D7</title>
<ellipse fill="none" stroke="black" cx="613" cy="-2363" rx="27" ry="18"/>
<text text-anchor="middle" x="613" y="-2357.95" font-family="Times,serif" font-size="14.00">D7</text>
</g>
<!-- D6&#45;&gt;D7 -->
<g id="edge30" class="edge">
<title>D6&#45;&gt;D7</title>
<path fill="none" stroke="black" d="M613,-2433.41C613,-2421.76 613,-2406.05 613,-2392.52"/>
<polygon fill="black" stroke="black" points="616.5,-2392.86 613,-2382.86 609.5,-2392.86 616.5,-2392.86"/>
<text text-anchor="middle" x="632.12" y="-2402.2" font-family="Times,serif" font-size="14.00">glaring</text>
</g>
<!-- F4 -->
<g id="node37" class="node">
<title>F4</title>
<ellipse fill="none" stroke="black" cx="506" cy="-2217" rx="27" ry="18"/>
<text text-anchor="middle" x="506" y="-2211.95" font-family="Times,serif" font-size="14.00">F4</text>
</g>
<!-- E1 -->
<g id="node38" class="node">
<title>E1</title>
<ellipse fill="none" stroke="black" cx="398" cy="-2144" rx="27" ry="18"/>
<text text-anchor="middle" x="398" y="-2138.95" font-family="Times,serif" font-size="14.00">E1</text>
</g>
<!-- F4&#45;&gt;E1 -->
<g id="edge32" class="edge">
<title>F4&#45;&gt;E1</title>
<path fill="none" stroke="black" d="M487.19,-2203.63C470.31,-2192.54 445.3,-2176.1 426.06,-2163.45"/>
<polygon fill="black" stroke="black" points="428.14,-2160.63 417.86,-2158.06 424.29,-2166.47 428.14,-2160.63"/>
</g>
<!-- I1 -->
<g id="node66" class="node">
<title>I1</title>
<ellipse fill="none" stroke="black" cx="506" cy="-2144" rx="27" ry="18"/>
<text text-anchor="middle" x="506" y="-2138.95" font-family="Times,serif" font-size="14.00">I1</text>
</g>
<!-- F4&#45;&gt;I1 -->
<g id="edge62" class="edge">
<title>F4&#45;&gt;I1</title>
<path fill="none" stroke="black" d="M506,-2198.81C506,-2191.23 506,-2182.1 506,-2173.54"/>
<polygon fill="black" stroke="black" points="509.5,-2173.54 506,-2163.54 502.5,-2173.54 509.5,-2173.54"/>
</g>
<!-- E2 -->
<g id="node39" class="node">
<title>E2</title>
<ellipse fill="none" stroke="black" cx="355" cy="-2071" rx="27" ry="18"/>
<text text-anchor="middle" x="355" y="-2065.95" font-family="Times,serif" font-size="14.00">E2</text>
</g>
<!-- E1&#45;&gt;E2 -->
<g id="edge33" class="edge">
<title>E1&#45;&gt;E2</title>
<path fill="none" stroke="black" d="M388.24,-2126.89C383.02,-2118.27 376.46,-2107.44 370.56,-2097.69"/>
<polygon fill="black" stroke="black" points="373.68,-2096.08 365.5,-2089.34 367.69,-2099.71 373.68,-2096.08"/>
</g>
<!-- E3 -->
<g id="node40" class="node">
<title>E3</title>
<ellipse fill="none" stroke="black" cx="283" cy="-1998" rx="27" ry="18"/>
<text text-anchor="middle" x="283" y="-1992.95" font-family="Times,serif" font-size="14.00">E3</text>
</g>
<!-- E2&#45;&gt;E3 -->
<g id="edge34" class="edge">
<title>E2&#45;&gt;E3</title>
<path fill="none" stroke="black" d="M340.43,-2055.63C330.54,-2045.88 317.26,-2032.78 305.96,-2021.64"/>
<polygon fill="black" stroke="black" points="308.45,-2019.18 298.87,-2014.65 303.54,-2024.17 308.45,-2019.18"/>
</g>
<!-- E4 -->
<g id="node41" class="node">
<title>E4</title>
<ellipse fill="none" stroke="black" cx="355" cy="-1998" rx="27" ry="18"/>
<text text-anchor="middle" x="355" y="-1992.95" font-family="Times,serif" font-size="14.00">E4</text>
</g>
<!-- E2&#45;&gt;E4 -->
<g id="edge35" class="edge">
<title>E2&#45;&gt;E4</title>
<path fill="none" stroke="black" d="M355,-2052.81C355,-2045.23 355,-2036.1 355,-2027.54"/>
<polygon fill="black" stroke="black" points="358.5,-2027.54 355,-2017.54 351.5,-2027.54 358.5,-2027.54"/>
</g>
<!-- E5 -->
<g id="node42" class="node">
<title>E5</title>
<ellipse fill="none" stroke="black" cx="270" cy="-1925" rx="27" ry="18"/>
<text text-anchor="middle" x="270" y="-1919.95" font-family="Times,serif" font-size="14.00">E5</text>
</g>
<!-- E4&#45;&gt;E5 -->
<g id="edge36" class="edge">
<title>E4&#45;&gt;E5</title>
<path fill="none" stroke="black" d="M338.61,-1983.31C326.26,-1973 309.12,-1958.67 295.05,-1946.93"/>
<polygon fill="black" stroke="black" points="297.42,-1944.34 287.5,-1940.62 292.93,-1949.71 297.42,-1944.34"/>
</g>
<!-- E8 -->
<g id="node43" class="node">
<title>E8</title>
<ellipse fill="none" stroke="black" cx="355" cy="-1925" rx="27" ry="18"/>
<text text-anchor="middle" x="355" y="-1919.95" font-family="Times,serif" font-size="14.00">E8</text>
</g>
<!-- E4&#45;&gt;E8 -->
<g id="edge39" class="edge">
<title>E4&#45;&gt;E8</title>
<path fill="none" stroke="black" d="M355,-1979.81C355,-1972.23 355,-1963.1 355,-1954.54"/>
<polygon fill="black" stroke="black" points="358.5,-1954.54 355,-1944.54 351.5,-1954.54 358.5,-1954.54"/>
</g>
<!-- E5&#45;&gt;E6 -->
<g id="edge37" class="edge">
<title>E5&#45;&gt;E6</title>
<path fill="none" stroke="black" d="M263.6,-1907.17C260.54,-1899.13 256.8,-1889.29 253.35,-1880.22"/>
<polygon fill="black" stroke="black" points="256.72,-1879.22 249.89,-1871.12 250.17,-1881.71 256.72,-1879.22"/>
</g>
<!-- F1 -->
<g id="node44" class="node">
<title>F1</title>
<ellipse fill="none" stroke="black" cx="541" cy="-2451.5" rx="27" ry="18"/>
<text text-anchor="middle" x="541" y="-2446.45" font-family="Times,serif" font-size="14.00">F1</text>
</g>
<!-- F2 -->
<g id="node45" class="node">
<title>F2</title>
<ellipse fill="none" stroke="black" cx="541" cy="-2363" rx="27" ry="18"/>
<text text-anchor="middle" x="541" y="-2357.95" font-family="Times,serif" font-size="14.00">F2</text>
</g>
<!-- F1&#45;&gt;F2 -->
<g id="edge40" class="edge">
<title>F1&#45;&gt;F2</title>
<path fill="none" stroke="black" d="M541,-2433.41C541,-2421.76 541,-2406.05 541,-2392.52"/>
<polygon fill="black" stroke="black" points="544.5,-2392.86 541,-2382.86 537.5,-2392.86 544.5,-2392.86"/>
</g>
<!-- F3 -->
<g id="node46" class="node">
<title>F3</title>
<ellipse fill="none" stroke="black" cx="541" cy="-2290" rx="27" ry="18"/>
<text text-anchor="middle" x="541" y="-2284.95" font-family="Times,serif" font-size="14.00">F3</text>
</g>
<!-- F2&#45;&gt;F3 -->
<g id="edge41" class="edge">
<title>F2&#45;&gt;F3</title>
<path fill="none" stroke="black" d="M541,-2344.81C541,-2337.23 541,-2328.1 541,-2319.54"/>
<polygon fill="black" stroke="black" points="544.5,-2319.54 541,-2309.54 537.5,-2319.54 544.5,-2319.54"/>
</g>
<!-- F3&#45;&gt;F4 -->
<g id="edge42" class="edge">
<title>F3&#45;&gt;F4</title>
<path fill="none" stroke="black" d="M532.88,-2272.53C528.77,-2264.2 523.69,-2253.88 519.05,-2244.47"/>
<polygon fill="black" stroke="black" points="522.3,-2243.16 514.74,-2235.74 516.03,-2246.25 522.3,-2243.16"/>
</g>
<!-- F5 -->
<g id="node47" class="node">
<title>F5</title>
<ellipse fill="none" stroke="black" cx="580" cy="-2217" rx="27" ry="18"/>
<text text-anchor="middle" x="580" y="-2211.95" font-family="Times,serif" font-size="14.00">F5</text>
</g>
<!-- F3&#45;&gt;F5 -->
<g id="edge43" class="edge">
<title>F3&#45;&gt;F5</title>
<path fill="none" stroke="black" d="M550.05,-2272.53C554.62,-2264.2 560.29,-2253.88 565.46,-2244.47"/>
<polygon fill="black" stroke="black" points="568.53,-2246.15 570.27,-2235.7 562.39,-2242.78 568.53,-2246.15"/>
</g>
<!-- F6 -->
<g id="node48" class="node">
<title>F6</title>
<ellipse fill="none" stroke="black" cx="587" cy="-2144" rx="27" ry="18"/>
<text text-anchor="middle" x="587" y="-2138.95" font-family="Times,serif" font-size="14.00">F6</text>
</g>
<!-- F5&#45;&gt;F6 -->
<g id="edge44" class="edge">
<title>F5&#45;&gt;F6</title>
<path fill="none" stroke="black" d="M581.69,-2198.81C582.45,-2191.14 583.36,-2181.89 584.22,-2173.24"/>
<polygon fill="black" stroke="black" points="587.67,-2173.83 585.17,-2163.54 580.71,-2173.14 587.67,-2173.83"/>
</g>
<!-- F7 -->
<g id="node49" class="node">
<title>F7</title>
<ellipse fill="none" stroke="black" cx="596" cy="-2071" rx="27" ry="18"/>
<text text-anchor="middle" x="596" y="-2065.95" font-family="Times,serif" font-size="14.00">F7</text>
</g>
<!-- F6&#45;&gt;F7 -->
<g id="edge45" class="edge">
<title>F6&#45;&gt;F7</title>
<path fill="none" stroke="black" d="M589.18,-2125.81C590.15,-2118.14 591.32,-2108.89 592.42,-2100.24"/>
<polygon fill="black" stroke="black" points="595.87,-2100.89 593.65,-2090.53 588.92,-2100.01 595.87,-2100.89"/>
</g>
<!-- J3 -->
<g id="node51" class="node">
<title>J3</title>
<ellipse fill="none" stroke="black" cx="828" cy="-1310" rx="27" ry="18"/>
<text text-anchor="middle" x="828" y="-1304.95" font-family="Times,serif" font-size="14.00">J3</text>
</g>
<!-- G1 -->
<g id="node52" class="node">
<title>G1</title>
<ellipse fill="none" stroke="black" cx="756" cy="-1221.5" rx="27" ry="18"/>
<text text-anchor="middle" x="756" y="-1216.45" font-family="Times,serif" font-size="14.00">G1</text>
</g>
<!-- J3&#45;&gt;G1 -->
<g id="edge47" class="edge">
<title>J3&#45;&gt;G1</title>
<path fill="none" stroke="black" d="M815.46,-1293.93C804.48,-1280.74 788.34,-1261.36 775.65,-1246.11"/>
<polygon fill="black" stroke="black" points="778.7,-1244.29 769.61,-1238.85 773.32,-1248.77 778.7,-1244.29"/>
</g>
<!-- J5 -->
<g id="node78" class="node">
<title>J5</title>
<ellipse fill="none" stroke="black" cx="828" cy="-1221.5" rx="27" ry="18"/>
<text text-anchor="middle" x="828" y="-1216.45" font-family="Times,serif" font-size="14.00">J5</text>
</g>
<!-- J3&#45;&gt;J5 -->
<g id="edge74" class="edge">
<title>J3&#45;&gt;J5</title>
<path fill="none" stroke="black" d="M828,-1291.91C828,-1280.26 828,-1264.55 828,-1251.02"/>
<polygon fill="black" stroke="black" points="831.5,-1251.36 828,-1241.36 824.5,-1251.36 831.5,-1251.36"/>
</g>
<!-- G2 -->
<g id="node53" class="node">
<title>G2</title>
<ellipse fill="none" stroke="black" cx="703" cy="-1133" rx="27" ry="18"/>
<text text-anchor="middle" x="703" y="-1127.95" font-family="Times,serif" font-size="14.00">G2</text>
</g>
<!-- G1&#45;&gt;G2 -->
<g id="edge48" class="edge">
<title>G1&#45;&gt;G2</title>
<path fill="none" stroke="black" d="M746.28,-1204.63C738.56,-1192.03 727.61,-1174.16 718.65,-1159.55"/>
<polygon fill="black" stroke="black" points="721.84,-1158.05 713.63,-1151.35 715.87,-1161.7 721.84,-1158.05"/>
</g>
<!-- G6 -->
<g id="node56" class="node">
<title>G6</title>
<ellipse fill="none" stroke="black" cx="775" cy="-1133" rx="27" ry="18"/>
<text text-anchor="middle" x="775" y="-1127.95" font-family="Times,serif" font-size="14.00">G6</text>
</g>
<!-- G1&#45;&gt;G6 -->
<g id="edge52" class="edge">
<title>G1&#45;&gt;G6</title>
<path fill="none" stroke="black" d="M759.75,-1203.41C762.33,-1191.68 765.81,-1175.84 768.79,-1162.25"/>
<polygon fill="black" stroke="black" points="772.2,-1163.05 770.93,-1152.53 765.37,-1161.55 772.2,-1163.05"/>
</g>
<!-- G2&#45;&gt;G3 -->
<g id="edge49" class="edge">
<title>G2&#45;&gt;G3</title>
<path fill="none" stroke="black" d="M703,-1114.81C703,-1107.23 703,-1098.1 703,-1089.54"/>
<polygon fill="black" stroke="black" points="706.5,-1089.54 703,-1079.54 699.5,-1089.54 706.5,-1089.54"/>
</g>
<!-- G5 -->
<g id="node54" class="node">
<title>G5</title>
<ellipse fill="none" stroke="black" cx="783" cy="-1060" rx="27" ry="18"/>
<text text-anchor="middle" x="783" y="-1054.95" font-family="Times,serif" font-size="14.00">G5</text>
</g>
<!-- G2&#45;&gt;G5 -->
<g id="edge51" class="edge">
<title>G2&#45;&gt;G5</title>
<path fill="none" stroke="black" d="M718.81,-1117.97C730.2,-1107.86 745.79,-1094.02 758.76,-1082.52"/>
<polygon fill="black" stroke="black" points="760.94,-1085.26 766.1,-1076 756.29,-1080.02 760.94,-1085.26"/>
</g>
<!-- G4 -->
<g id="node55" class="node">
<title>G4</title>
<ellipse fill="none" stroke="black" cx="783" cy="-971.5" rx="27" ry="18"/>
<text text-anchor="middle" x="783" y="-966.45" font-family="Times,serif" font-size="14.00">G4</text>
</g>
<!-- G5&#45;&gt;G4 -->
<g id="edge50" class="edge">
<title>G5&#45;&gt;G4</title>
<path fill="none" stroke="black" d="M783,-1041.91C783,-1030.26 783,-1014.55 783,-1001.02"/>
<polygon fill="black" stroke="black" points="786.5,-1001.36 783,-991.36 779.5,-1001.36 786.5,-1001.36"/>
<text text-anchor="middle" x="802.12" y="-1010.7" font-family="Times,serif" font-size="14.00">glaring</text>
</g>
<!-- V16 -->
<g id="node58" class="node">
<title>V16</title>
<ellipse fill="none" stroke="black" cx="855" cy="-971.5" rx="27" ry="18"/>
<text text-anchor="middle" x="855" y="-966.45" font-family="Times,serif" font-size="14.00">V16</text>
</g>
<!-- G5&#45;&gt;V16 -->
<g id="edge54" class="edge">
<title>G5&#45;&gt;V16</title>
<path fill="none" stroke="black" d="M800.98,-1046.27C808.92,-1040.11 818.01,-1032.26 825,-1024 831.29,-1016.55 837.02,-1007.61 841.74,-999.29"/>
<polygon fill="black" stroke="black" points="844.78,-1001.02 846.44,-990.56 838.62,-997.71 844.78,-1001.02"/>
</g>
<!-- G7 -->
<g id="node57" class="node">
<title>G7</title>
<ellipse fill="none" stroke="black" cx="783" cy="-883" rx="27" ry="18"/>
<text text-anchor="middle" x="783" y="-877.95" font-family="Times,serif" font-size="14.00">G7</text>
</g>
<!-- G4&#45;&gt;G7 -->
<g id="edge53" class="edge">
<title>G4&#45;&gt;G7</title>
<path fill="none" stroke="black" d="M783,-953.41C783,-941.76 783,-926.05 783,-912.52"/>
<polygon fill="black" stroke="black" points="786.5,-912.86 783,-902.86 779.5,-912.86 786.5,-912.86"/>
</g>
<!-- I5 -->
<g id="node59" class="node">
<title>I5</title>
<ellipse fill="none" stroke="black" cx="524" cy="-1998" rx="27" ry="18"/>
<text text-anchor="middle" x="524" y="-1992.95" font-family="Times,serif" font-size="14.00">I5</text>
</g>
<!-- H1 -->
<g id="node60" class="node">
<title>H1</title>
<ellipse fill="none" stroke="black" cx="477" cy="-1925" rx="27" ry="18"/>
<text text-anchor="middle" x="477" y="-1919.95" font-family="Times,serif" font-size="14.00">H1</text>
</g>
<!-- I5&#45;&gt;H1 -->
<g id="edge55" class="edge">
<title>I5&#45;&gt;H1</title>
<path fill="none" stroke="black" d="M513.57,-1981.24C507.73,-1972.42 500.31,-1961.21 493.68,-1951.19"/>
<polygon fill="black" stroke="black" points="496.68,-1949.38 488.24,-1942.98 490.84,-1953.25 496.68,-1949.38"/>
</g>
<!-- M1 -->
<g id="node97" class="node">
<title>M1</title>
<ellipse fill="none" stroke="black" cx="549" cy="-1925" rx="27" ry="18"/>
<text text-anchor="middle" x="549" y="-1919.95" font-family="Times,serif" font-size="14.00">M1</text>
</g>
<!-- I5&#45;&gt;M1 -->
<g id="edge94" class="edge">
<title>I5&#45;&gt;M1</title>
<path fill="none" stroke="black" d="M529.92,-1980.17C532.73,-1972.22 536.15,-1962.51 539.31,-1953.52"/>
<polygon fill="black" stroke="black" points="542.6,-1954.73 542.62,-1944.13 535.99,-1952.4 542.6,-1954.73"/>
</g>
<!-- H2 -->
<g id="node61" class="node">
<title>H2</title>
<ellipse fill="none" stroke="black" cx="477" cy="-1852" rx="27" ry="18"/>
<text text-anchor="middle" x="477" y="-1846.95" font-family="Times,serif" font-size="14.00">H2</text>
</g>
<!-- H1&#45;&gt;H2 -->
<g id="edge56" class="edge">
<title>H1&#45;&gt;H2</title>
<path fill="none" stroke="black" d="M477,-1906.81C477,-1899.23 477,-1890.1 477,-1881.54"/>
<polygon fill="black" stroke="black" points="480.5,-1881.54 477,-1871.54 473.5,-1881.54 480.5,-1881.54"/>
</g>
<!-- H5 -->
<g id="node62" class="node">
<title>H5</title>
<ellipse fill="none" stroke="black" cx="459" cy="-1779" rx="27" ry="18"/>
<text text-anchor="middle" x="459" y="-1773.95" font-family="Times,serif" font-size="14.00">H5</text>
</g>
<!-- H2&#45;&gt;H5 -->
<g id="edge59" class="edge">
<title>H2&#45;&gt;H5</title>
<path fill="none" stroke="black" d="M472.64,-1833.81C470.67,-1826.05 468.3,-1816.68 466.09,-1807.95"/>
<polygon fill="black" stroke="black" points="469.54,-1807.33 463.69,-1798.5 462.75,-1809.05 469.54,-1807.33"/>
</g>
<!-- H4 -->
<g id="node63" class="node">
<title>H4</title>
<ellipse fill="none" stroke="black" cx="531" cy="-1779" rx="27" ry="18"/>
<text text-anchor="middle" x="531" y="-1773.95" font-family="Times,serif" font-size="14.00">H4</text>
</g>
<!-- H2&#45;&gt;H4 -->
<g id="edge58" class="edge">
<title>H2&#45;&gt;H4</title>
<path fill="none" stroke="black" d="M488.72,-1835.59C495.65,-1826.48 504.59,-1814.72 512.46,-1804.37"/>
<polygon fill="black" stroke="black" points="515.12,-1806.66 518.39,-1796.58 509.55,-1802.42 515.12,-1806.66"/>
</g>
<!-- H5&#45;&gt;H3 -->
<g id="edge57" class="edge">
<title>H5&#45;&gt;H3</title>
<path fill="none" stroke="black" d="M459,-1760.81C459,-1753.23 459,-1744.1 459,-1735.54"/>
<polygon fill="black" stroke="black" points="462.5,-1735.54 459,-1725.54 455.5,-1735.54 462.5,-1735.54"/>
</g>
<!-- V11 -->
<g id="node64" class="node">
<title>V11</title>
<ellipse fill="none" stroke="black" cx="531" cy="-1706" rx="27" ry="18"/>
<text text-anchor="middle" x="531" y="-1700.95" font-family="Times,serif" font-size="14.00">V11</text>
</g>
<!-- H4&#45;&gt;V11 -->
<g id="edge61" class="edge">
<title>H4&#45;&gt;V11</title>
<path fill="none" stroke="black" d="M531,-1760.81C531,-1753.23 531,-1744.1 531,-1735.54"/>
<polygon fill="black" stroke="black" points="534.5,-1735.54 531,-1725.54 527.5,-1735.54 534.5,-1735.54"/>
</g>
<!-- H7 -->
<g id="node65" class="node">
<title>H7</title>
<ellipse fill="none" stroke="black" cx="531" cy="-1617.5" rx="27" ry="18"/>
<text text-anchor="middle" x="531" y="-1612.45" font-family="Times,serif" font-size="14.00">H7</text>
</g>
<!-- V11&#45;&gt;H7 -->
<g id="edge60" class="edge">
<title>V11&#45;&gt;H7</title>
<path fill="none" stroke="black" d="M531,-1687.91C531,-1676.26 531,-1660.55 531,-1647.02"/>
<polygon fill="black" stroke="black" points="534.5,-1647.36 531,-1637.36 527.5,-1647.36 534.5,-1647.36"/>
</g>
<!-- I2 -->
<g id="node67" class="node">
<title>I2</title>
<ellipse fill="none" stroke="black" cx="452" cy="-2071" rx="27" ry="18"/>
<text text-anchor="middle" x="452" y="-2065.95" font-family="Times,serif" font-size="14.00">I2</text>
</g>
<!-- I1&#45;&gt;I2 -->
<g id="edge63" class="edge">
<title>I1&#45;&gt;I2</title>
<path fill="none" stroke="black" d="M494.28,-2127.59C487.35,-2118.48 478.41,-2106.72 470.54,-2096.37"/>
<polygon fill="black" stroke="black" points="473.45,-2094.42 464.61,-2088.58 467.88,-2098.66 473.45,-2094.42"/>
</g>
<!-- I4 -->
<g id="node69" class="node">
<title>I4</title>
<ellipse fill="none" stroke="black" cx="524" cy="-2071" rx="27" ry="18"/>
<text text-anchor="middle" x="524" y="-2065.95" font-family="Times,serif" font-size="14.00">I4</text>
</g>
<!-- I1&#45;&gt;I4 -->
<g id="edge65" class="edge">
<title>I1&#45;&gt;I4</title>
<path fill="none" stroke="black" d="M510.36,-2125.81C512.33,-2118.05 514.7,-2108.68 516.91,-2099.95"/>
<polygon fill="black" stroke="black" points="520.25,-2101.05 519.31,-2090.5 513.46,-2099.33 520.25,-2101.05"/>
</g>
<!-- I3 -->
<g id="node68" class="node">
<title>I3</title>
<ellipse fill="none" stroke="black" cx="452" cy="-1998" rx="27" ry="18"/>
<text text-anchor="middle" x="452" y="-1992.95" font-family="Times,serif" font-size="14.00">I3</text>
</g>
<!-- I2&#45;&gt;I3 -->
<g id="edge64" class="edge">
<title>I2&#45;&gt;I3</title>
<path fill="none" stroke="black" d="M452,-2052.81C452,-2045.23 452,-2036.1 452,-2027.54"/>
<polygon fill="black" stroke="black" points="455.5,-2027.54 452,-2017.54 448.5,-2027.54 455.5,-2027.54"/>
</g>
<!-- I4&#45;&gt;I5 -->
<g id="edge66" class="edge">
<title>I4&#45;&gt;I5</title>
<path fill="none" stroke="black" d="M524,-2052.81C524,-2045.23 524,-2036.1 524,-2027.54"/>
<polygon fill="black" stroke="black" points="527.5,-2027.54 524,-2017.54 520.5,-2027.54 527.5,-2027.54"/>
</g>
<!-- I6 -->
<g id="node70" class="node">
<title>I6</title>
<ellipse fill="none" stroke="black" cx="609" cy="-1998" rx="27" ry="18"/>
<text text-anchor="middle" x="609" y="-1992.95" font-family="Times,serif" font-size="14.00">I6</text>
</g>
<!-- I4&#45;&gt;I6 -->
<g id="edge67" class="edge">
<title>I4&#45;&gt;I6</title>
<path fill="none" stroke="black" d="M540.39,-2056.31C552.74,-2046 569.88,-2031.67 583.95,-2019.93"/>
<polygon fill="black" stroke="black" points="586.07,-2022.71 591.5,-2013.62 581.58,-2017.34 586.07,-2022.71"/>
</g>
<!-- I7 -->
<g id="node71" class="node">
<title>I7</title>
<ellipse fill="none" stroke="black" cx="621" cy="-1925" rx="27" ry="18"/>
<text text-anchor="middle" x="621" y="-1919.95" font-family="Times,serif" font-size="14.00">I7</text>
</g>
<!-- I6&#45;&gt;I7 -->
<g id="edge68" class="edge">
<title>I6&#45;&gt;I7</title>
<path fill="none" stroke="black" d="M611.9,-1979.81C613.2,-1972.14 614.76,-1962.89 616.23,-1954.24"/>
<polygon fill="black" stroke="black" points="619.65,-1954.96 617.87,-1944.52 612.75,-1953.8 619.65,-1954.96"/>
</g>
<!-- L7 -->
<g id="node72" class="node">
<title>L7</title>
<ellipse fill="none" stroke="black" cx="315" cy="-971.5" rx="27" ry="18"/>
<text text-anchor="middle" x="315" y="-966.45" font-family="Times,serif" font-size="14.00">L7</text>
</g>
<!-- V23 -->
<g id="node73" class="node">
<title>V23</title>
<ellipse fill="none" stroke="black" cx="315" cy="-883" rx="27" ry="18"/>
<text text-anchor="middle" x="315" y="-877.95" font-family="Times,serif" font-size="14.00">V23</text>
</g>
<!-- L7&#45;&gt;V23 -->
<g id="edge69" class="edge">
<title>L7&#45;&gt;V23</title>
<path fill="none" stroke="black" d="M315,-953.41C315,-941.76 315,-926.05 315,-912.52"/>
<polygon fill="black" stroke="black" points="318.5,-912.86 315,-902.86 311.5,-912.86 318.5,-912.86"/>
<text text-anchor="middle" x="334.12" y="-922.2" font-family="Times,serif" font-size="14.00">glaring</text>
</g>
<!-- M6 -->
<g id="node74" class="node">
<title>M6</title>
<ellipse fill="none" stroke="black" cx="860" cy="-1529" rx="27" ry="18"/>
<text text-anchor="middle" x="860" y="-1523.95" font-family="Times,serif" font-size="14.00">M6</text>
</g>
<!-- J1 -->
<g id="node75" class="node">
<title>J1</title>
<ellipse fill="none" stroke="black" cx="860" cy="-1456" rx="27" ry="18"/>
<text text-anchor="middle" x="860" y="-1450.95" font-family="Times,serif" font-size="14.00">J1</text>
</g>
<!-- M6&#45;&gt;J1 -->
<g id="edge70" class="edge">
<title>M6&#45;&gt;J1</title>
<path fill="none" stroke="black" d="M860,-1510.81C860,-1503.23 860,-1494.1 860,-1485.54"/>
<polygon fill="black" stroke="black" points="863.5,-1485.54 860,-1475.54 856.5,-1485.54 863.5,-1485.54"/>
</g>
<!-- J2 -->
<g id="node76" class="node">
<title>J2</title>
<ellipse fill="none" stroke="black" cx="828" cy="-1383" rx="27" ry="18"/>
<text text-anchor="middle" x="828" y="-1377.95" font-family="Times,serif" font-size="14.00">J2</text>
</g>
<!-- J1&#45;&gt;J2 -->
<g id="edge71" class="edge">
<title>J1&#45;&gt;J2</title>
<path fill="none" stroke="black" d="M852.58,-1438.53C848.86,-1430.29 844.27,-1420.1 840.07,-1410.77"/>
<polygon fill="black" stroke="black" points="843.3,-1409.44 836,-1401.76 836.92,-1412.31 843.3,-1409.44"/>
</g>
<!-- J4 -->
<g id="node77" class="node">
<title>J4</title>
<ellipse fill="none" stroke="black" cx="900" cy="-1383" rx="27" ry="18"/>
<text text-anchor="middle" x="900" y="-1377.95" font-family="Times,serif" font-size="14.00">J4</text>
</g>
<!-- J1&#45;&gt;J4 -->
<g id="edge73" class="edge">
<title>J1&#45;&gt;J4</title>
<path fill="none" stroke="black" d="M869.08,-1438.89C873.88,-1430.36 879.91,-1419.67 885.36,-1409.99"/>
<polygon fill="black" stroke="black" points="888.36,-1411.8 890.22,-1401.37 882.26,-1408.36 888.36,-1411.8"/>
</g>
<!-- J2&#45;&gt;J3 -->
<g id="edge72" class="edge">
<title>J2&#45;&gt;J3</title>
<path fill="none" stroke="black" d="M828,-1364.81C828,-1357.23 828,-1348.1 828,-1339.54"/>
<polygon fill="black" stroke="black" points="831.5,-1339.54 828,-1329.54 824.5,-1339.54 831.5,-1339.54"/>
</g>
<!-- V18 -->
<g id="node79" class="node">
<title>V18</title>
<ellipse fill="none" stroke="black" cx="900" cy="-1310" rx="27" ry="18"/>
<text text-anchor="middle" x="900" y="-1304.95" font-family="Times,serif" font-size="14.00">V18</text>
</g>
<!-- J4&#45;&gt;V18 -->
<g id="edge77" class="edge">
<title>J4&#45;&gt;V18</title>
<path fill="none" stroke="black" d="M900,-1364.81C900,-1357.23 900,-1348.1 900,-1339.54"/>
<polygon fill="black" stroke="black" points="903.5,-1339.54 900,-1329.54 896.5,-1339.54 903.5,-1339.54"/>
</g>
<!-- V8 -->
<g id="node81" class="node">
<title>V8</title>
<ellipse fill="none" stroke="black" cx="847" cy="-1133" rx="27" ry="18"/>
<text text-anchor="middle" x="847" y="-1127.95" font-family="Times,serif" font-size="14.00">V8</text>
</g>
<!-- J5&#45;&gt;V8 -->
<g id="edge76" class="edge">
<title>J5&#45;&gt;V8</title>
<path fill="none" stroke="black" d="M831.75,-1203.41C834.33,-1191.68 837.81,-1175.84 840.79,-1162.25"/>
<polygon fill="black" stroke="black" points="844.2,-1163.05 842.93,-1152.53 837.37,-1161.55 844.2,-1163.05"/>
</g>
<!-- J6 -->
<g id="node80" class="node">
<title>J6</title>
<ellipse fill="none" stroke="black" cx="900" cy="-1221.5" rx="27" ry="18"/>
<text text-anchor="middle" x="900" y="-1216.45" font-family="Times,serif" font-size="14.00">J6</text>
</g>
<!-- V18&#45;&gt;J6 -->
<g id="edge75" class="edge">
<title>V18&#45;&gt;J6</title>
<path fill="none" stroke="black" d="M900,-1291.91C900,-1280.26 900,-1264.55 900,-1251.02"/>
<polygon fill="black" stroke="black" points="903.5,-1251.36 900,-1241.36 896.5,-1251.36 903.5,-1251.36"/>
</g>
<!-- K2 -->
<g id="node83" class="node">
<title>K2</title>
<ellipse fill="none" stroke="black" cx="459" cy="-1529" rx="27" ry="18"/>
<text text-anchor="middle" x="459" y="-1523.95" font-family="Times,serif" font-size="14.00">K2</text>
</g>
<!-- K1&#45;&gt;K2 -->
<g id="edge79" class="edge">
<title>K1&#45;&gt;K2</title>
<path fill="none" stroke="black" d="M459,-1599.41C459,-1587.76 459,-1572.05 459,-1558.52"/>
<polygon fill="black" stroke="black" points="462.5,-1558.86 459,-1548.86 455.5,-1558.86 462.5,-1558.86"/>
</g>
<!-- K3 -->
<g id="node84" class="node">
<title>K3</title>
<ellipse fill="none" stroke="black" cx="459" cy="-1456" rx="27" ry="18"/>
<text text-anchor="middle" x="459" y="-1450.95" font-family="Times,serif" font-size="14.00">K3</text>
</g>
<!-- K2&#45;&gt;K3 -->
<g id="edge80" class="edge">
<title>K2&#45;&gt;K3</title>
<path fill="none" stroke="black" d="M459,-1510.81C459,-1503.23 459,-1494.1 459,-1485.54"/>
<polygon fill="black" stroke="black" points="462.5,-1485.54 459,-1475.54 455.5,-1485.54 462.5,-1485.54"/>
</g>
<!-- K4 -->
<g id="node85" class="node">
<title>K4</title>
<ellipse fill="none" stroke="black" cx="423" cy="-1383" rx="27" ry="18"/>
<text text-anchor="middle" x="423" y="-1377.95" font-family="Times,serif" font-size="14.00">K4</text>
</g>
<!-- K3&#45;&gt;K4 -->
<g id="edge81" class="edge">
<title>K3&#45;&gt;K4</title>
<path fill="none" stroke="black" d="M450.65,-1438.53C446.42,-1430.2 441.19,-1419.88 436.42,-1410.47"/>
<polygon fill="black" stroke="black" points="439.63,-1409.06 431.99,-1401.73 433.39,-1412.23 439.63,-1409.06"/>
</g>
<!-- V1 -->
<g id="node89" class="node">
<title>V1</title>
<ellipse fill="none" stroke="black" cx="495" cy="-1383" rx="27" ry="18"/>
<text text-anchor="middle" x="495" y="-1377.95" font-family="Times,serif" font-size="14.00">V1</text>
</g>
<!-- K3&#45;&gt;V1 -->
<g id="edge85" class="edge">
<title>K3&#45;&gt;V1</title>
<path fill="none" stroke="black" d="M467.35,-1438.53C471.58,-1430.2 476.81,-1419.88 481.58,-1410.47"/>
<polygon fill="black" stroke="black" points="484.61,-1412.23 486.01,-1401.73 478.37,-1409.06 484.61,-1412.23"/>
</g>
<!-- K5 -->
<g id="node86" class="node">
<title>K5</title>
<ellipse fill="none" stroke="black" cx="315" cy="-1310" rx="27" ry="18"/>
<text text-anchor="middle" x="315" y="-1304.95" font-family="Times,serif" font-size="14.00">K5</text>
</g>
<!-- K4&#45;&gt;K5 -->
<g id="edge82" class="edge">
<title>K4&#45;&gt;K5</title>
<path fill="none" stroke="black" d="M404.19,-1369.63C387.31,-1358.54 362.3,-1342.1 343.06,-1329.45"/>
<polygon fill="black" stroke="black" points="345.14,-1326.63 334.86,-1324.06 341.29,-1332.47 345.14,-1326.63"/>
</g>
<!-- L1 -->
<g id="node90" class="node">
<title>L1</title>
<ellipse fill="none" stroke="black" cx="387" cy="-1310" rx="27" ry="18"/>
<text text-anchor="middle" x="387" y="-1304.95" font-family="Times,serif" font-size="14.00">L1</text>
</g>
<!-- K4&#45;&gt;L1 -->
<g id="edge86" class="edge">
<title>K4&#45;&gt;L1</title>
<path fill="none" stroke="black" d="M414.65,-1365.53C410.42,-1357.2 405.19,-1346.88 400.42,-1337.47"/>
<polygon fill="black" stroke="black" points="403.63,-1336.06 395.99,-1328.73 397.39,-1339.23 403.63,-1336.06"/>
</g>
<!-- O1 -->
<g id="node111" class="node">
<title>O1</title>
<ellipse fill="none" stroke="black" cx="459" cy="-1310" rx="27" ry="18"/>
<text text-anchor="middle" x="459" y="-1304.95" font-family="Times,serif" font-size="14.00">O1</text>
</g>
<!-- K4&#45;&gt;O1 -->
<g id="edge109" class="edge">
<title>K4&#45;&gt;O1</title>
<path fill="none" stroke="black" d="M431.35,-1365.53C435.58,-1357.2 440.81,-1346.88 445.58,-1337.47"/>
<polygon fill="black" stroke="black" points="448.61,-1339.23 450.01,-1328.73 442.37,-1336.06 448.61,-1339.23"/>
</g>
<!-- K6 -->
<g id="node87" class="node">
<title>K6</title>
<ellipse fill="none" stroke="black" cx="243" cy="-1221.5" rx="27" ry="18"/>
<text text-anchor="middle" x="243" y="-1216.45" font-family="Times,serif" font-size="14.00">K6</text>
</g>
<!-- K5&#45;&gt;K6 -->
<g id="edge83" class="edge">
<title>K5&#45;&gt;K6</title>
<path fill="none" stroke="black" d="M302.46,-1293.93C291.48,-1280.74 275.34,-1261.36 262.65,-1246.11"/>
<polygon fill="black" stroke="black" points="265.7,-1244.29 256.61,-1238.85 260.32,-1248.77 265.7,-1244.29"/>
</g>
<!-- K7 -->
<g id="node88" class="node">
<title>K7</title>
<ellipse fill="none" stroke="black" cx="315" cy="-1221.5" rx="27" ry="18"/>
<text text-anchor="middle" x="315" y="-1216.45" font-family="Times,serif" font-size="14.00">K7</text>
</g>
<!-- K5&#45;&gt;K7 -->
<g id="edge84" class="edge">
<title>K5&#45;&gt;K7</title>
<path fill="none" stroke="black" d="M315,-1291.91C315,-1280.26 315,-1264.55 315,-1251.02"/>
<polygon fill="black" stroke="black" points="318.5,-1251.36 315,-1241.36 311.5,-1251.36 318.5,-1251.36"/>
<text text-anchor="middle" x="334.12" y="-1260.7" font-family="Times,serif" font-size="14.00">glaring</text>
</g>
<!-- L2 -->
<g id="node91" class="node">
<title>L2</title>
<ellipse fill="none" stroke="black" cx="387" cy="-1221.5" rx="27" ry="18"/>
<text text-anchor="middle" x="387" y="-1216.45" font-family="Times,serif" font-size="14.00">L2</text>
</g>
<!-- L1&#45;&gt;L2 -->
<g id="edge87" class="edge">
<title>L1&#45;&gt;L2</title>
<path fill="none" stroke="black" d="M387,-1291.91C387,-1280.26 387,-1264.55 387,-1251.02"/>
<polygon fill="black" stroke="black" points="390.5,-1251.36 387,-1241.36 383.5,-1251.36 390.5,-1251.36"/>
</g>
<!-- L3 -->
<g id="node92" class="node">
<title>L3</title>
<ellipse fill="none" stroke="black" cx="243" cy="-1133" rx="27" ry="18"/>
<text text-anchor="middle" x="243" y="-1127.95" font-family="Times,serif" font-size="14.00">L3</text>
</g>
<!-- L2&#45;&gt;L3 -->
<g id="edge88" class="edge">
<title>L2&#45;&gt;L3</title>
<path fill="none" stroke="black" d="M367.28,-1208.65C342.72,-1193.9 300.55,-1168.57 272.23,-1151.56"/>
<polygon fill="black" stroke="black" points="274.15,-1148.63 263.78,-1146.48 270.55,-1154.63 274.15,-1148.63"/>
</g>
<!-- L4 -->
<g id="node93" class="node">
<title>L4</title>
<ellipse fill="none" stroke="black" cx="315" cy="-1133" rx="27" ry="18"/>
<text text-anchor="middle" x="315" y="-1127.95" font-family="Times,serif" font-size="14.00">L4</text>
</g>
<!-- L2&#45;&gt;L4 -->
<g id="edge89" class="edge">
<title>L2&#45;&gt;L4</title>
<path fill="none" stroke="black" d="M374.46,-1205.43C363.48,-1192.24 347.34,-1172.86 334.65,-1157.61"/>
<polygon fill="black" stroke="black" points="337.7,-1155.79 328.61,-1150.35 332.32,-1160.27 337.7,-1155.79"/>
</g>
<!-- L5 -->
<g id="node94" class="node">
<title>L5</title>
<ellipse fill="none" stroke="black" cx="387" cy="-1133" rx="27" ry="18"/>
<text text-anchor="middle" x="387" y="-1127.95" font-family="Times,serif" font-size="14.00">L5</text>
</g>
<!-- L2&#45;&gt;L5 -->
<g id="edge90" class="edge">
<title>L2&#45;&gt;L5</title>
<path fill="none" stroke="black" d="M387,-1203.41C387,-1191.76 387,-1176.05 387,-1162.52"/>
<polygon fill="black" stroke="black" points="390.5,-1162.86 387,-1152.86 383.5,-1162.86 390.5,-1162.86"/>
<text text-anchor="middle" x="406.12" y="-1172.2" font-family="Times,serif" font-size="14.00">glaring</text>
</g>
<!-- L6 -->
<g id="node95" class="node">
<title>L6</title>
<ellipse fill="none" stroke="black" cx="243" cy="-1060" rx="27" ry="18"/>
<text text-anchor="middle" x="243" y="-1054.95" font-family="Times,serif" font-size="14.00">L6</text>
</g>
<!-- L3&#45;&gt;L6 -->
<g id="edge91" class="edge">
<title>L3&#45;&gt;L6</title>
<path fill="none" stroke="black" d="M243,-1114.81C243,-1107.23 243,-1098.1 243,-1089.54"/>
<polygon fill="black" stroke="black" points="246.5,-1089.54 243,-1079.54 239.5,-1089.54 246.5,-1089.54"/>
</g>
<!-- V5 -->
<g id="node96" class="node">
<title>V5</title>
<ellipse fill="none" stroke="black" cx="315" cy="-1060" rx="27" ry="18"/>
<text text-anchor="middle" x="315" y="-1054.95" font-family="Times,serif" font-size="14.00">V5</text>
</g>
<!-- L4&#45;&gt;V5 -->
<g id="edge93" class="edge">
<title>L4&#45;&gt;V5</title>
<path fill="none" stroke="black" d="M315,-1114.81C315,-1107.23 315,-1098.1 315,-1089.54"/>
<polygon fill="black" stroke="black" points="318.5,-1089.54 315,-1079.54 311.5,-1089.54 318.5,-1089.54"/>
</g>
<!-- V5&#45;&gt;L7 -->
<g id="edge92" class="edge">
<title>V5&#45;&gt;L7</title>
<path fill="none" stroke="black" d="M315,-1041.91C315,-1030.26 315,-1014.55 315,-1001.02"/>
<polygon fill="black" stroke="black" points="318.5,-1001.36 315,-991.36 311.5,-1001.36 318.5,-1001.36"/>
</g>
<!-- M2 -->
<g id="node98" class="node">
<title>M2</title>
<ellipse fill="none" stroke="black" cx="555" cy="-1852" rx="27" ry="18"/>
<text text-anchor="middle" x="555" y="-1846.95" font-family="Times,serif" font-size="14.00">M2</text>
</g>
<!-- M1&#45;&gt;M2 -->
<g id="edge95" class="edge">
<title>M1&#45;&gt;M2</title>
<path fill="none" stroke="black" d="M550.45,-1906.81C551.1,-1899.14 551.88,-1889.89 552.61,-1881.24"/>
<polygon fill="black" stroke="black" points="556.08,-1881.8 553.43,-1871.54 549.1,-1881.21 556.08,-1881.8"/>
</g>
<!-- M4 -->
<g id="node99" class="node">
<title>M4</title>
<ellipse fill="none" stroke="black" cx="603" cy="-1779" rx="27" ry="18"/>
<text text-anchor="middle" x="603" y="-1773.95" font-family="Times,serif" font-size="14.00">M4</text>
</g>
<!-- M2&#45;&gt;M4 -->
<g id="edge97" class="edge">
<title>M2&#45;&gt;M4</title>
<path fill="none" stroke="black" d="M565.65,-1835.24C571.62,-1826.42 579.2,-1815.21 585.97,-1805.19"/>
<polygon fill="black" stroke="black" points="588.83,-1807.21 591.53,-1796.97 583.03,-1803.29 588.83,-1807.21"/>
</g>
<!-- M3 -->
<g id="node100" class="node">
<title>M3</title>
<ellipse fill="none" stroke="black" cx="603" cy="-1706" rx="27" ry="18"/>
<text text-anchor="middle" x="603" y="-1700.95" font-family="Times,serif" font-size="14.00">M3</text>
</g>
<!-- M4&#45;&gt;M3 -->
<g id="edge96" class="edge">
<title>M4&#45;&gt;M3</title>
<path fill="none" stroke="black" d="M603,-1760.81C603,-1753.23 603,-1744.1 603,-1735.54"/>
<polygon fill="black" stroke="black" points="606.5,-1735.54 603,-1725.54 599.5,-1735.54 606.5,-1735.54"/>
</g>
<!-- M5 -->
<g id="node101" class="node">
<title>M5</title>
<ellipse fill="none" stroke="black" cx="901" cy="-1617.5" rx="27" ry="18"/>
<text text-anchor="middle" x="901" y="-1612.45" font-family="Times,serif" font-size="14.00">M5</text>
</g>
<!-- M3&#45;&gt;M5 -->
<g id="edge98" class="edge">
<title>M3&#45;&gt;M5</title>
<path fill="none" stroke="black" d="M627.64,-1697.85C680.3,-1682.56 804.01,-1646.65 865.29,-1628.86"/>
<polygon fill="black" stroke="black" points="866.25,-1632.23 874.88,-1626.08 864.3,-1625.51 866.25,-1632.23"/>
</g>
<!-- M5&#45;&gt;M6 -->
<g id="edge99" class="edge">
<title>M5&#45;&gt;M6</title>
<path fill="none" stroke="black" d="M893.09,-1599.82C887.31,-1587.62 879.34,-1570.8 872.67,-1556.73"/>
<polygon fill="black" stroke="black" points="875.98,-1555.53 868.53,-1547.99 869.65,-1558.53 875.98,-1555.53"/>
</g>
<!-- M7 -->
<g id="node102" class="node">
<title>M7</title>
<ellipse fill="none" stroke="black" cx="932" cy="-1529" rx="27" ry="18"/>
<text text-anchor="middle" x="932" y="-1523.95" font-family="Times,serif" font-size="14.00">M7</text>
</g>
<!-- M5&#45;&gt;M7 -->
<g id="edge100" class="edge">
<title>M5&#45;&gt;M7</title>
<path fill="none" stroke="black" d="M906.98,-1599.82C911.28,-1587.81 917.18,-1571.34 922.18,-1557.41"/>
<polygon fill="black" stroke="black" points="925.35,-1558.94 925.42,-1548.35 918.76,-1556.58 925.35,-1558.94"/>
</g>
<!-- N1 -->
<g id="node104" class="node">
<title>N1</title>
<ellipse fill="none" stroke="black" cx="1142" cy="-1529" rx="27" ry="18"/>
<text text-anchor="middle" x="1142" y="-1523.95" font-family="Times,serif" font-size="14.00">N1</text>
</g>
<!-- M5&#45;&gt;N1 -->
<g id="edge102" class="edge">
<title>M5&#45;&gt;N1</title>
<path fill="none" stroke="black" d="M924.55,-1608.05C967.4,-1592.67 1058.28,-1560.05 1107.91,-1542.24"/>
<polygon fill="black" stroke="black" points="1109.06,-1545.54 1117.29,-1538.87 1106.69,-1538.95 1109.06,-1545.54"/>
</g>
<!-- M8 -->
<g id="node103" class="node">
<title>M8</title>
<ellipse fill="none" stroke="black" cx="932" cy="-1456" rx="27" ry="18"/>
<text text-anchor="middle" x="932" y="-1450.95" font-family="Times,serif" font-size="14.00">M8</text>
</g>
<!-- M7&#45;&gt;M8 -->
<g id="edge101" class="edge">
<title>M7&#45;&gt;M8</title>
<path fill="none" stroke="black" d="M932,-1510.81C932,-1503.23 932,-1494.1 932,-1485.54"/>
<polygon fill="black" stroke="black" points="935.5,-1485.54 932,-1475.54 928.5,-1485.54 935.5,-1485.54"/>
</g>
<!-- Q1 -->
<g id="node128" class="node">
<title>Q1</title>
<ellipse fill="none" stroke="black" cx="1004" cy="-1456" rx="27" ry="18"/>
<text text-anchor="middle" x="1004" y="-1450.95" font-family="Times,serif" font-size="14.00">Q1</text>
</g>
<!-- M7&#45;&gt;Q1 -->
<g id="edge125" class="edge">
<title>M7&#45;&gt;Q1</title>
<path fill="none" stroke="black" d="M946.57,-1513.63C956.46,-1503.88 969.74,-1490.78 981.04,-1479.64"/>
<polygon fill="black" stroke="black" points="983.46,-1482.17 988.13,-1472.65 978.55,-1477.18 983.46,-1482.17"/>
</g>
<!-- N2 -->
<g id="node105" class="node">
<title>N2</title>
<ellipse fill="none" stroke="black" cx="1112" cy="-1456" rx="27" ry="18"/>
<text text-anchor="middle" x="1112" y="-1450.95" font-family="Times,serif" font-size="14.00">N2</text>
</g>
<!-- N1&#45;&gt;N2 -->
<g id="edge103" class="edge">
<title>N1&#45;&gt;N2</title>
<path fill="none" stroke="black" d="M1134.89,-1511.17C1131.49,-1503.13 1127.33,-1493.29 1123.5,-1484.22"/>
<polygon fill="black" stroke="black" points="1126.76,-1482.95 1119.65,-1475.1 1120.32,-1485.67 1126.76,-1482.95"/>
</g>
<!-- N3 -->
<g id="node106" class="node">
<title>N3</title>
<ellipse fill="none" stroke="black" cx="1184" cy="-1456" rx="27" ry="18"/>
<text text-anchor="middle" x="1184" y="-1450.95" font-family="Times,serif" font-size="14.00">N3</text>
</g>
<!-- N1&#45;&gt;N3 -->
<g id="edge104" class="edge">
<title>N1&#45;&gt;N3</title>
<path fill="none" stroke="black" d="M1151.53,-1511.89C1156.63,-1503.27 1163.04,-1492.44 1168.81,-1482.69"/>
<polygon fill="black" stroke="black" points="1171.66,-1484.74 1173.74,-1474.35 1165.63,-1481.17 1171.66,-1484.74"/>
</g>
<!-- N5 -->
<g id="node108" class="node">
<title>N5</title>
<ellipse fill="none" stroke="black" cx="1256" cy="-1456" rx="27" ry="18"/>
<text text-anchor="middle" x="1256" y="-1450.95" font-family="Times,serif" font-size="14.00">N5</text>
</g>
<!-- N1&#45;&gt;N5 -->
<g id="edge106" class="edge">
<title>N1&#45;&gt;N5</title>
<path fill="none" stroke="black" d="M1161.34,-1515.96C1179.46,-1504.67 1206.78,-1487.65 1227.42,-1474.8"/>
<polygon fill="black" stroke="black" points="1229.02,-1477.92 1235.66,-1469.67 1225.32,-1471.98 1229.02,-1477.92"/>
</g>
<!-- N6 -->
<g id="node109" class="node">
<title>N6</title>
<ellipse fill="none" stroke="black" cx="1112" cy="-1383" rx="27" ry="18"/>
<text text-anchor="middle" x="1112" y="-1377.95" font-family="Times,serif" font-size="14.00">N6</text>
</g>
<!-- N2&#45;&gt;N6 -->
<g id="edge107" class="edge">
<title>N2&#45;&gt;N6</title>
<path fill="none" stroke="black" d="M1112,-1437.81C1112,-1430.23 1112,-1421.1 1112,-1412.54"/>
<polygon fill="black" stroke="black" points="1115.5,-1412.54 1112,-1402.54 1108.5,-1412.54 1115.5,-1412.54"/>
</g>
<!-- N4 -->
<g id="node107" class="node">
<title>N4</title>
<ellipse fill="none" stroke="black" cx="1184" cy="-1383" rx="27" ry="18"/>
<text text-anchor="middle" x="1184" y="-1377.95" font-family="Times,serif" font-size="14.00">N4</text>
</g>
<!-- N3&#45;&gt;N4 -->
<g id="edge105" class="edge">
<title>N3&#45;&gt;N4</title>
<path fill="none" stroke="black" d="M1184,-1437.81C1184,-1430.23 1184,-1421.1 1184,-1412.54"/>
<polygon fill="black" stroke="black" points="1187.5,-1412.54 1184,-1402.54 1180.5,-1412.54 1187.5,-1412.54"/>
</g>
<!-- V10 -->
<g id="node110" class="node">
<title>V10</title>
<ellipse fill="none" stroke="black" cx="1126" cy="-1310" rx="27" ry="18"/>
<text text-anchor="middle" x="1126" y="-1304.95" font-family="Times,serif" font-size="14.00">V10</text>
</g>
<!-- N6&#45;&gt;V10 -->
<g id="edge108" class="edge">
<title>N6&#45;&gt;V10</title>
<path fill="none" stroke="black" d="M1115.39,-1364.81C1116.9,-1357.14 1118.73,-1347.89 1120.43,-1339.24"/>
<polygon fill="black" stroke="black" points="1123.85,-1340 1122.35,-1329.51 1116.98,-1338.65 1123.85,-1340"/>
</g>
<!-- O2 -->
<g id="node112" class="node">
<title>O2</title>
<ellipse fill="none" stroke="black" cx="459" cy="-1221.5" rx="27" ry="18"/>
<text text-anchor="middle" x="459" y="-1216.45" font-family="Times,serif" font-size="14.00">O2</text>
</g>
<!-- O1&#45;&gt;O2 -->
<g id="edge110" class="edge">
<title>O1&#45;&gt;O2</title>
<path fill="none" stroke="black" d="M459,-1291.91C459,-1280.26 459,-1264.55 459,-1251.02"/>
<polygon fill="black" stroke="black" points="462.5,-1251.36 459,-1241.36 455.5,-1251.36 462.5,-1251.36"/>
</g>
<!-- O3 -->
<g id="node113" class="node">
<title>O3</title>
<ellipse fill="none" stroke="black" cx="459" cy="-1133" rx="27" ry="18"/>
<text text-anchor="middle" x="459" y="-1127.95" font-family="Times,serif" font-size="14.00">O3</text>
</g>
<!-- O2&#45;&gt;O3 -->
<g id="edge111" class="edge">
<title>O2&#45;&gt;O3</title>
<path fill="none" stroke="black" d="M459,-1203.41C459,-1191.76 459,-1176.05 459,-1162.52"/>
<polygon fill="black" stroke="black" points="462.5,-1162.86 459,-1152.86 455.5,-1162.86 462.5,-1162.86"/>
</g>
<!-- O4 -->
<g id="node114" class="node">
<title>O4</title>
<ellipse fill="none" stroke="black" cx="531" cy="-1133" rx="27" ry="18"/>
<text text-anchor="middle" x="531" y="-1127.95" font-family="Times,serif" font-size="14.00">O4</text>
</g>
<!-- O2&#45;&gt;O4 -->
<g id="edge112" class="edge">
<title>O2&#45;&gt;O4</title>
<path fill="none" stroke="black" d="M471.54,-1205.43C482.52,-1192.24 498.66,-1172.86 511.35,-1157.61"/>
<polygon fill="black" stroke="black" points="513.68,-1160.27 517.39,-1150.35 508.3,-1155.79 513.68,-1160.27"/>
</g>
<!-- O7 -->
<g id="node117" class="node">
<title>O7</title>
<ellipse fill="none" stroke="black" cx="459" cy="-1060" rx="27" ry="18"/>
<text text-anchor="middle" x="459" y="-1054.95" font-family="Times,serif" font-size="14.00">O7</text>
</g>
<!-- O3&#45;&gt;O7 -->
<g id="edge115" class="edge">
<title>O3&#45;&gt;O7</title>
<path fill="none" stroke="black" d="M459,-1114.81C459,-1107.23 459,-1098.1 459,-1089.54"/>
<polygon fill="black" stroke="black" points="462.5,-1089.54 459,-1079.54 455.5,-1089.54 462.5,-1089.54"/>
</g>
<!-- O5 -->
<g id="node115" class="node">
<title>O5</title>
<ellipse fill="none" stroke="black" cx="531" cy="-1060" rx="27" ry="18"/>
<text text-anchor="middle" x="531" y="-1054.95" font-family="Times,serif" font-size="14.00">O5</text>
</g>
<!-- O4&#45;&gt;O5 -->
<g id="edge113" class="edge">
<title>O4&#45;&gt;O5</title>
<path fill="none" stroke="black" d="M531,-1114.81C531,-1107.23 531,-1098.1 531,-1089.54"/>
<polygon fill="black" stroke="black" points="534.5,-1089.54 531,-1079.54 527.5,-1089.54 534.5,-1089.54"/>
</g>
<!-- O6 -->
<g id="node116" class="node">
<title>O6</title>
<ellipse fill="none" stroke="black" cx="531" cy="-971.5" rx="27" ry="18"/>
<text text-anchor="middle" x="531" y="-966.45" font-family="Times,serif" font-size="14.00">O6</text>
</g>
<!-- O5&#45;&gt;O6 -->
<g id="edge114" class="edge">
<title>O5&#45;&gt;O6</title>
<path fill="none" stroke="black" d="M531,-1041.91C531,-1030.26 531,-1014.55 531,-1001.02"/>
<polygon fill="black" stroke="black" points="534.5,-1001.36 531,-991.36 527.5,-1001.36 534.5,-1001.36"/>
</g>
<!-- P1 -->
<g id="node119" class="node">
<title>P1</title>
<ellipse fill="none" stroke="black" cx="387" cy="-883" rx="27" ry="18"/>
<text text-anchor="middle" x="387" y="-877.95" font-family="Times,serif" font-size="14.00">P1</text>
</g>
<!-- O6&#45;&gt;P1 -->
<g id="edge117" class="edge">
<title>O6&#45;&gt;P1</title>
<path fill="none" stroke="black" d="M511.28,-958.65C486.72,-943.9 444.55,-918.57 416.23,-901.56"/>
<polygon fill="black" stroke="black" points="418.15,-898.63 407.78,-896.48 414.55,-904.63 418.15,-898.63"/>
</g>
<!-- R1 -->
<g id="node138" class="node">
<title>R1</title>
<ellipse fill="none" stroke="black" cx="531" cy="-883" rx="27" ry="18"/>
<text text-anchor="middle" x="531" y="-877.95" font-family="Times,serif" font-size="14.00">R1</text>
</g>
<!-- O6&#45;&gt;R1 -->
<g id="edge134" class="edge">
<title>O6&#45;&gt;R1</title>
<path fill="none" stroke="black" d="M531,-953.41C531,-941.76 531,-926.05 531,-912.52"/>
<polygon fill="black" stroke="black" points="534.5,-912.86 531,-902.86 527.5,-912.86 534.5,-912.86"/>
</g>
<!-- V20 -->
<g id="node118" class="node">
<title>V20</title>
<ellipse fill="none" stroke="black" cx="459" cy="-971.5" rx="27" ry="18"/>
<text text-anchor="middle" x="459" y="-966.45" font-family="Times,serif" font-size="14.00">V20</text>
</g>
<!-- O7&#45;&gt;V20 -->
<g id="edge116" class="edge">
<title>O7&#45;&gt;V20</title>
<path fill="none" stroke="black" d="M459,-1041.91C459,-1030.26 459,-1014.55 459,-1001.02"/>
<polygon fill="black" stroke="black" points="462.5,-1001.36 459,-991.36 455.5,-1001.36 462.5,-1001.36"/>
</g>
<!-- P2 -->
<g id="node120" class="node">
<title>P2</title>
<ellipse fill="none" stroke="black" cx="243" cy="-794.5" rx="27" ry="18"/>
<text text-anchor="middle" x="243" y="-789.45" font-family="Times,serif" font-size="14.00">P2</text>
</g>
<!-- P1&#45;&gt;P2 -->
<g id="edge118" class="edge">
<title>P1&#45;&gt;P2</title>
<path fill="none" stroke="black" d="M367.28,-870.15C342.72,-855.4 300.55,-830.07 272.23,-813.06"/>
<polygon fill="black" stroke="black" points="274.15,-810.13 263.78,-807.98 270.55,-816.13 274.15,-810.13"/>
</g>
<!-- P3 -->
<g id="node121" class="node">
<title>P3</title>
<ellipse fill="none" stroke="black" cx="315" cy="-794.5" rx="27" ry="18"/>
<text text-anchor="middle" x="315" y="-789.45" font-family="Times,serif" font-size="14.00">P3</text>
</g>
<!-- P1&#45;&gt;P3 -->
<g id="edge119" class="edge">
<title>P1&#45;&gt;P3</title>
<path fill="none" stroke="black" d="M374.46,-866.93C363.48,-853.74 347.34,-834.36 334.65,-819.11"/>
<polygon fill="black" stroke="black" points="337.7,-817.29 328.61,-811.85 332.32,-821.77 337.7,-817.29"/>
</g>
<!-- V2 -->
<g id="node127" class="node">
<title>V2</title>
<ellipse fill="none" stroke="black" cx="387" cy="-794.5" rx="27" ry="18"/>
<text text-anchor="middle" x="387" y="-789.45" font-family="Times,serif" font-size="14.00">V2</text>
</g>
<!-- P1&#45;&gt;V2 -->
<g id="edge124" class="edge">
<title>P1&#45;&gt;V2</title>
<path fill="none" stroke="black" d="M387,-864.91C387,-853.26 387,-837.55 387,-824.02"/>
<polygon fill="black" stroke="black" points="390.5,-824.36 387,-814.36 383.5,-824.36 390.5,-824.36"/>
</g>
<!-- P4 -->
<g id="node122" class="node">
<title>P4</title>
<ellipse fill="none" stroke="black" cx="315" cy="-706" rx="27" ry="18"/>
<text text-anchor="middle" x="315" y="-700.95" font-family="Times,serif" font-size="14.00">P4</text>
</g>
<!-- P3&#45;&gt;P4 -->
<g id="edge120" class="edge">
<title>P3&#45;&gt;P4</title>
<path fill="none" stroke="black" d="M315,-776.41C315,-764.76 315,-749.05 315,-735.52"/>
<polygon fill="black" stroke="black" points="318.5,-735.86 315,-725.86 311.5,-735.86 318.5,-735.86"/>
</g>
<!-- P5 -->
<g id="node123" class="node">
<title>P5</title>
<ellipse fill="none" stroke="black" cx="315" cy="-633" rx="27" ry="18"/>
<text text-anchor="middle" x="315" y="-627.95" font-family="Times,serif" font-size="14.00">P5</text>
</g>
<!-- P4&#45;&gt;P5 -->
<g id="edge121" class="edge">
<title>P4&#45;&gt;P5</title>
<path fill="none" stroke="black" d="M315,-687.81C315,-680.23 315,-671.1 315,-662.54"/>
<polygon fill="black" stroke="black" points="318.5,-662.54 315,-652.54 311.5,-662.54 318.5,-662.54"/>
</g>
<!-- P7 -->
<g id="node124" class="node">
<title>P7</title>
<ellipse fill="none" stroke="black" cx="315" cy="-544.5" rx="27" ry="18"/>
<text text-anchor="middle" x="315" y="-539.45" font-family="Times,serif" font-size="14.00">P7</text>
</g>
<!-- P5&#45;&gt;P7 -->
<g id="edge122" class="edge">
<title>P5&#45;&gt;P7</title>
<path fill="none" stroke="black" d="M315,-614.91C315,-603.26 315,-587.55 315,-574.02"/>
<polygon fill="black" stroke="black" points="318.5,-574.36 315,-564.36 311.5,-574.36 318.5,-574.36"/>
</g>
<!-- P6 -->
<g id="node125" class="node">
<title>P6</title>
<ellipse fill="none" stroke="black" cx="685" cy="-2451.5" rx="27" ry="18"/>
<text text-anchor="middle" x="685" y="-2446.45" font-family="Times,serif" font-size="14.00">P6</text>
</g>
<!-- P8 -->
<g id="node126" class="node">
<title>P8</title>
<ellipse fill="none" stroke="black" cx="685" cy="-2363" rx="27" ry="18"/>
<text text-anchor="middle" x="685" y="-2357.95" font-family="Times,serif" font-size="14.00">P8</text>
</g>
<!-- P6&#45;&gt;P8 -->
<g id="edge123" class="edge">
<title>P6&#45;&gt;P8</title>
<path fill="none" stroke="black" d="M685,-2433.41C685,-2421.76 685,-2406.05 685,-2392.52"/>
<polygon fill="black" stroke="black" points="688.5,-2392.86 685,-2382.86 681.5,-2392.86 688.5,-2392.86"/>
</g>
<!-- Q2 -->
<g id="node129" class="node">
<title>Q2</title>
<ellipse fill="none" stroke="black" cx="1004" cy="-1383" rx="27" ry="18"/>
<text text-anchor="middle" x="1004" y="-1377.95" font-family="Times,serif" font-size="14.00">Q2</text>
</g>
<!-- Q1&#45;&gt;Q2 -->
<g id="edge126" class="edge">
<title>Q1&#45;&gt;Q2</title>
<path fill="none" stroke="black" d="M1004,-1437.81C1004,-1430.23 1004,-1421.1 1004,-1412.54"/>
<polygon fill="black" stroke="black" points="1007.5,-1412.54 1004,-1402.54 1000.5,-1412.54 1007.5,-1412.54"/>
</g>
<!-- Q3 -->
<g id="node130" class="node">
<title>Q3</title>
<ellipse fill="none" stroke="black" cx="982" cy="-1310" rx="27" ry="18"/>
<text text-anchor="middle" x="982" y="-1304.95" font-family="Times,serif" font-size="14.00">Q3</text>
</g>
<!-- Q2&#45;&gt;Q3 -->
<g id="edge127" class="edge">
<title>Q2&#45;&gt;Q3</title>
<path fill="none" stroke="black" d="M998.79,-1365.17C996.32,-1357.22 993.31,-1347.51 990.53,-1338.52"/>
<polygon fill="black" stroke="black" points="993.93,-1337.67 987.62,-1329.15 987.24,-1339.74 993.93,-1337.67"/>
</g>
<!-- Q4 -->
<g id="node131" class="node">
<title>Q4</title>
<ellipse fill="none" stroke="black" cx="1054" cy="-1310" rx="27" ry="18"/>
<text text-anchor="middle" x="1054" y="-1304.95" font-family="Times,serif" font-size="14.00">Q4</text>
</g>
<!-- Q2&#45;&gt;Q4 -->
<g id="edge128" class="edge">
<title>Q2&#45;&gt;Q4</title>
<path fill="none" stroke="black" d="M1015.1,-1366.24C1021.38,-1357.33 1029.37,-1345.97 1036.48,-1335.88"/>
<polygon fill="black" stroke="black" points="1039.17,-1338.14 1042.06,-1327.95 1033.44,-1334.11 1039.17,-1338.14"/>
</g>
<!-- Q5 -->
<g id="node132" class="node">
<title>Q5</title>
<ellipse fill="none" stroke="black" cx="972" cy="-1221.5" rx="27" ry="18"/>
<text text-anchor="middle" x="972" y="-1216.45" font-family="Times,serif" font-size="14.00">Q5</text>
</g>
<!-- Q3&#45;&gt;Q5 -->
<g id="edge129" class="edge">
<title>Q3&#45;&gt;Q5</title>
<path fill="none" stroke="black" d="M980.02,-1291.91C978.68,-1280.26 976.86,-1264.55 975.3,-1251.02"/>
<polygon fill="black" stroke="black" points="978.8,-1250.89 974.18,-1241.35 971.85,-1251.69 978.8,-1250.89"/>
</g>
<!-- Q6 -->
<g id="node133" class="node">
<title>Q6</title>
<ellipse fill="none" stroke="black" cx="1044" cy="-1221.5" rx="27" ry="18"/>
<text text-anchor="middle" x="1044" y="-1216.45" font-family="Times,serif" font-size="14.00">Q6</text>
</g>
<!-- Q3&#45;&gt;Q6 -->
<g id="edge130" class="edge">
<title>Q3&#45;&gt;Q6</title>
<path fill="none" stroke="black" d="M993.08,-1293.54C1002.28,-1280.7 1015.54,-1262.2 1026.22,-1247.3"/>
<polygon fill="black" stroke="black" points="1028.94,-1249.52 1031.92,-1239.35 1023.25,-1245.44 1028.94,-1249.52"/>
</g>
<!-- V7 -->
<g id="node136" class="node">
<title>V7</title>
<ellipse fill="none" stroke="black" cx="1116" cy="-1221.5" rx="27" ry="18"/>
<text text-anchor="middle" x="1116" y="-1216.45" font-family="Times,serif" font-size="14.00">V7</text>
</g>
<!-- Q4&#45;&gt;V7 -->
<g id="edge132" class="edge">
<title>Q4&#45;&gt;V7</title>
<path fill="none" stroke="black" d="M1065.08,-1293.54C1074.28,-1280.7 1087.54,-1262.2 1098.22,-1247.3"/>
<polygon fill="black" stroke="black" points="1100.94,-1249.52 1103.92,-1239.35 1095.25,-1245.44 1100.94,-1249.52"/>
</g>
<!-- T1 -->
<g id="node148" class="node">
<title>T1</title>
<ellipse fill="none" stroke="black" cx="1016" cy="-1133" rx="27" ry="18"/>
<text text-anchor="middle" x="1016" y="-1127.95" font-family="Times,serif" font-size="14.00">T1</text>
</g>
<!-- Q6&#45;&gt;T1 -->
<g id="edge143" class="edge">
<title>Q6&#45;&gt;T1</title>
<path fill="none" stroke="black" d="M1038.47,-1203.41C1034.63,-1191.56 1029.44,-1175.52 1025.01,-1161.84"/>
<polygon fill="black" stroke="black" points="1028.4,-1160.93 1021.99,-1152.49 1021.74,-1163.09 1028.4,-1160.93"/>
</g>
<!-- U1 -->
<g id="node158" class="node">
<title>U1</title>
<ellipse fill="none" stroke="black" cx="1088" cy="-1133" rx="27" ry="18"/>
<text text-anchor="middle" x="1088" y="-1127.95" font-family="Times,serif" font-size="14.00">U1</text>
</g>
<!-- Q6&#45;&gt;U1 -->
<g id="edge153" class="edge">
<title>Q6&#45;&gt;U1</title>
<path fill="none" stroke="black" d="M1052.28,-1204.23C1058.51,-1191.98 1067.18,-1174.93 1074.42,-1160.7"/>
<polygon fill="black" stroke="black" points="1077.51,-1162.34 1078.93,-1151.84 1071.27,-1159.17 1077.51,-1162.34"/>
</g>
<!-- Q7 -->
<g id="node134" class="node">
<title>Q7</title>
<ellipse fill="none" stroke="black" cx="757" cy="-2451.5" rx="27" ry="18"/>
<text text-anchor="middle" x="757" y="-2446.45" font-family="Times,serif" font-size="14.00">Q7</text>
</g>
<!-- Q8 -->
<g id="node135" class="node">
<title>Q8</title>
<ellipse fill="none" stroke="black" cx="757" cy="-2363" rx="27" ry="18"/>
<text text-anchor="middle" x="757" y="-2357.95" font-family="Times,serif" font-size="14.00">Q8</text>
</g>
<!-- Q7&#45;&gt;Q8 -->
<g id="edge131" class="edge">
<title>Q7&#45;&gt;Q8</title>
<path fill="none" stroke="black" d="M757,-2433.41C757,-2421.76 757,-2406.05 757,-2392.52"/>
<polygon fill="black" stroke="black" points="760.5,-2392.86 757,-2382.86 753.5,-2392.86 760.5,-2392.86"/>
</g>
<!-- V19 -->
<g id="node137" class="node">
<title>V19</title>
<ellipse fill="none" stroke="black" cx="757" cy="-2290" rx="27" ry="18"/>
<text text-anchor="middle" x="757" y="-2284.95" font-family="Times,serif" font-size="14.00">V19</text>
</g>
<!-- Q8&#45;&gt;V19 -->
<g id="edge133" class="edge">
<title>Q8&#45;&gt;V19</title>
<path fill="none" stroke="black" d="M757,-2344.81C757,-2337.23 757,-2328.1 757,-2319.54"/>
<polygon fill="black" stroke="black" points="760.5,-2319.54 757,-2309.54 753.5,-2319.54 760.5,-2319.54"/>
</g>
<!-- R2 -->
<g id="node139" class="node">
<title>R2</title>
<ellipse fill="none" stroke="black" cx="459" cy="-794.5" rx="27" ry="18"/>
<text text-anchor="middle" x="459" y="-789.45" font-family="Times,serif" font-size="14.00">R2</text>
</g>
<!-- R1&#45;&gt;R2 -->
<g id="edge135" class="edge">
<title>R1&#45;&gt;R2</title>
<path fill="none" stroke="black" d="M518.46,-866.93C507.48,-853.74 491.34,-834.36 478.65,-819.11"/>
<polygon fill="black" stroke="black" points="481.7,-817.29 472.61,-811.85 476.32,-821.77 481.7,-817.29"/>
</g>
<!-- R3 -->
<g id="node140" class="node">
<title>R3</title>
<ellipse fill="none" stroke="black" cx="531" cy="-794.5" rx="27" ry="18"/>
<text text-anchor="middle" x="531" y="-789.45" font-family="Times,serif" font-size="14.00">R3</text>
</g>
<!-- R1&#45;&gt;R3 -->
<g id="edge136" class="edge">
<title>R1&#45;&gt;R3</title>
<path fill="none" stroke="black" d="M531,-864.91C531,-853.26 531,-837.55 531,-824.02"/>
<polygon fill="black" stroke="black" points="534.5,-824.36 531,-814.36 527.5,-824.36 534.5,-824.36"/>
</g>
<!-- R4 -->
<g id="node141" class="node">
<title>R4</title>
<ellipse fill="none" stroke="black" cx="603" cy="-794.5" rx="27" ry="18"/>
<text text-anchor="middle" x="603" y="-789.45" font-family="Times,serif" font-size="14.00">R4</text>
</g>
<!-- R1&#45;&gt;R4 -->
<g id="edge137" class="edge">
<title>R1&#45;&gt;R4</title>
<path fill="none" stroke="black" d="M543.54,-866.93C554.52,-853.74 570.66,-834.36 583.35,-819.11"/>
<polygon fill="black" stroke="black" points="585.68,-821.77 589.39,-811.85 580.3,-817.29 585.68,-821.77"/>
</g>
<!-- R5 -->
<g id="node142" class="node">
<title>R5</title>
<ellipse fill="none" stroke="black" cx="387" cy="-706" rx="27" ry="18"/>
<text text-anchor="middle" x="387" y="-700.95" font-family="Times,serif" font-size="14.00">R5</text>
</g>
<!-- R2&#45;&gt;R5 -->
<g id="edge138" class="edge">
<title>R2&#45;&gt;R5</title>
<path fill="none" stroke="black" d="M446.46,-778.43C435.48,-765.24 419.34,-745.86 406.65,-730.61"/>
<polygon fill="black" stroke="black" points="409.7,-728.79 400.61,-723.35 404.32,-733.27 409.7,-728.79"/>
</g>
<!-- R6 -->
<g id="node143" class="node">
<title>R6</title>
<ellipse fill="none" stroke="black" cx="459" cy="-706" rx="27" ry="18"/>
<text text-anchor="middle" x="459" y="-700.95" font-family="Times,serif" font-size="14.00">R6</text>
</g>
<!-- R2&#45;&gt;R6 -->
<g id="edge139" class="edge">
<title>R2&#45;&gt;R6</title>
<path fill="none" stroke="black" d="M459,-776.41C459,-764.76 459,-749.05 459,-735.52"/>
<polygon fill="black" stroke="black" points="462.5,-735.86 459,-725.86 455.5,-735.86 462.5,-735.86"/>
<text text-anchor="middle" x="478.12" y="-745.2" font-family="Times,serif" font-size="14.00">glaring</text>
</g>
<!-- R8 -->
<g id="node146" class="node">
<title>R8</title>
<ellipse fill="none" stroke="black" cx="531" cy="-706" rx="27" ry="18"/>
<text text-anchor="middle" x="531" y="-700.95" font-family="Times,serif" font-size="14.00">R8</text>
</g>
<!-- R3&#45;&gt;R8 -->
<g id="edge141" class="edge">
<title>R3&#45;&gt;R8</title>
<path fill="none" stroke="black" d="M531,-776.41C531,-764.76 531,-749.05 531,-735.52"/>
<polygon fill="black" stroke="black" points="534.5,-735.86 531,-725.86 527.5,-735.86 534.5,-735.86"/>
</g>
<!-- W1 -->
<g id="node167" class="node">
<title>W1</title>
<ellipse fill="none" stroke="black" cx="387" cy="-633" rx="27" ry="18"/>
<text text-anchor="middle" x="387" y="-627.95" font-family="Times,serif" font-size="14.00">W1</text>
</g>
<!-- R5&#45;&gt;W1 -->
<g id="edge162" class="edge">
<title>R5&#45;&gt;W1</title>
<path fill="none" stroke="black" d="M387,-687.81C387,-680.23 387,-671.1 387,-662.54"/>
<polygon fill="black" stroke="black" points="390.5,-662.54 387,-652.54 383.5,-662.54 390.5,-662.54"/>
</g>
<!-- V13 -->
<g id="node147" class="node">
<title>V13</title>
<ellipse fill="none" stroke="black" cx="459" cy="-633" rx="27" ry="18"/>
<text text-anchor="middle" x="459" y="-627.95" font-family="Times,serif" font-size="14.00">V13</text>
</g>
<!-- R6&#45;&gt;V13 -->
<g id="edge142" class="edge">
<title>R6&#45;&gt;V13</title>
<path fill="none" stroke="black" d="M459,-687.81C459,-680.23 459,-671.1 459,-662.54"/>
<polygon fill="black" stroke="black" points="462.5,-662.54 459,-652.54 455.5,-662.54 462.5,-662.54"/>
</g>
<!-- V17 -->
<g id="node144" class="node">
<title>V17</title>
<ellipse fill="none" stroke="black" cx="335" cy="-383" rx="27" ry="18"/>
<text text-anchor="middle" x="335" y="-377.95" font-family="Times,serif" font-size="14.00">V17</text>
</g>
<!-- R7 -->
<g id="node145" class="node">
<title>R7</title>
<ellipse fill="none" stroke="black" cx="335" cy="-310" rx="27" ry="18"/>
<text text-anchor="middle" x="335" y="-304.95" font-family="Times,serif" font-size="14.00">R7</text>
</g>
<!-- V17&#45;&gt;R7 -->
<g id="edge140" class="edge">
<title>V17&#45;&gt;R7</title>
<path fill="none" stroke="black" d="M335,-364.81C335,-357.23 335,-348.1 335,-339.54"/>
<polygon fill="black" stroke="black" points="338.5,-339.54 335,-329.54 331.5,-339.54 338.5,-339.54"/>
</g>
<!-- T2 -->
<g id="node149" class="node">
<title>T2</title>
<ellipse fill="none" stroke="black" cx="944" cy="-1060" rx="27" ry="18"/>
<text text-anchor="middle" x="944" y="-1054.95" font-family="Times,serif" font-size="14.00">T2</text>
</g>
<!-- T1&#45;&gt;T2 -->
<g id="edge144" class="edge">
<title>T1&#45;&gt;T2</title>
<path fill="none" stroke="black" d="M1001.43,-1117.63C991.54,-1107.88 978.26,-1094.78 966.96,-1083.64"/>
<polygon fill="black" stroke="black" points="969.45,-1081.18 959.87,-1076.65 964.54,-1086.17 969.45,-1081.18"/>
</g>
<!-- V22 -->
<g id="node157" class="node">
<title>V22</title>
<ellipse fill="none" stroke="black" cx="1016" cy="-1060" rx="27" ry="18"/>
<text text-anchor="middle" x="1016" y="-1054.95" font-family="Times,serif" font-size="14.00">V22</text>
</g>
<!-- T1&#45;&gt;V22 -->
<g id="edge152" class="edge">
<title>T1&#45;&gt;V22</title>
<path fill="none" stroke="black" d="M1016,-1114.81C1016,-1107.23 1016,-1098.1 1016,-1089.54"/>
<polygon fill="black" stroke="black" points="1019.5,-1089.54 1016,-1079.54 1012.5,-1089.54 1019.5,-1089.54"/>
</g>
<!-- T4 -->
<g id="node150" class="node">
<title>T4</title>
<ellipse fill="none" stroke="black" cx="944" cy="-971.5" rx="27" ry="18"/>
<text text-anchor="middle" x="944" y="-966.45" font-family="Times,serif" font-size="14.00">T4</text>
</g>
<!-- T2&#45;&gt;T4 -->
<g id="edge146" class="edge">
<title>T2&#45;&gt;T4</title>
<path fill="none" stroke="black" d="M944,-1041.91C944,-1030.26 944,-1014.55 944,-1001.02"/>
<polygon fill="black" stroke="black" points="947.5,-1001.36 944,-991.36 940.5,-1001.36 947.5,-1001.36"/>
</g>
<!-- T3 -->
<g id="node151" class="node">
<title>T3</title>
<ellipse fill="none" stroke="black" cx="944" cy="-883" rx="27" ry="18"/>
<text text-anchor="middle" x="944" y="-877.95" font-family="Times,serif" font-size="14.00">T3</text>
</g>
<!-- T4&#45;&gt;T3 -->
<g id="edge145" class="edge">
<title>T4&#45;&gt;T3</title>
<path fill="none" stroke="black" d="M944,-953.41C944,-941.76 944,-926.05 944,-912.52"/>
<polygon fill="black" stroke="black" points="947.5,-912.86 944,-902.86 940.5,-912.86 947.5,-912.86"/>
</g>
<!-- T5 -->
<g id="node152" class="node">
<title>T5</title>
<ellipse fill="none" stroke="black" cx="919" cy="-794.5" rx="27" ry="18"/>
<text text-anchor="middle" x="919" y="-789.45" font-family="Times,serif" font-size="14.00">T5</text>
</g>
<!-- T3&#45;&gt;T5 -->
<g id="edge147" class="edge">
<title>T3&#45;&gt;T5</title>
<path fill="none" stroke="black" d="M939.06,-864.91C935.64,-853.06 931,-837.02 927.05,-823.34"/>
<polygon fill="black" stroke="black" points="930.49,-822.64 924.35,-814.01 923.76,-824.59 930.49,-822.64"/>
</g>
<!-- T6 -->
<g id="node153" class="node">
<title>T6</title>
<ellipse fill="none" stroke="black" cx="991" cy="-794.5" rx="27" ry="18"/>
<text text-anchor="middle" x="991" y="-789.45" font-family="Times,serif" font-size="14.00">T6</text>
</g>
<!-- T3&#45;&gt;T6 -->
<g id="edge148" class="edge">
<title>T3&#45;&gt;T6</title>
<path fill="none" stroke="black" d="M952.84,-865.73C959.6,-853.29 969.06,-835.88 976.87,-821.51"/>
<polygon fill="black" stroke="black" points="979.78,-823.48 981.48,-813.03 973.63,-820.14 979.78,-823.48"/>
</g>
<!-- T7 -->
<g id="node154" class="node">
<title>T7</title>
<ellipse fill="none" stroke="black" cx="991" cy="-706" rx="27" ry="18"/>
<text text-anchor="middle" x="991" y="-700.95" font-family="Times,serif" font-size="14.00">T7</text>
</g>
<!-- T6&#45;&gt;T7 -->
<g id="edge149" class="edge">
<title>T6&#45;&gt;T7</title>
<path fill="none" stroke="black" d="M991,-776.41C991,-764.76 991,-749.05 991,-735.52"/>
<polygon fill="black" stroke="black" points="994.5,-735.86 991,-725.86 987.5,-735.86 994.5,-735.86"/>
</g>
<!-- T8 -->
<g id="node155" class="node">
<title>T8</title>
<ellipse fill="none" stroke="black" cx="960" cy="-633" rx="27" ry="18"/>
<text text-anchor="middle" x="960" y="-627.95" font-family="Times,serif" font-size="14.00">T8</text>
</g>
<!-- T7&#45;&gt;T8 -->
<g id="edge150" class="edge">
<title>T7&#45;&gt;T8</title>
<path fill="none" stroke="black" d="M983.65,-688.17C980.14,-680.13 975.85,-670.29 971.88,-661.22"/>
<polygon fill="black" stroke="black" points="975.11,-659.86 967.9,-652.09 968.69,-662.66 975.11,-659.86"/>
</g>
<!-- X1 -->
<g id="node174" class="node">
<title>X1</title>
<ellipse fill="none" stroke="black" cx="1032" cy="-633" rx="27" ry="18"/>
<text text-anchor="middle" x="1032" y="-627.95" font-family="Times,serif" font-size="14.00">X1</text>
</g>
<!-- T7&#45;&gt;X1 -->
<g id="edge170" class="edge">
<title>T7&#45;&gt;X1</title>
<path fill="none" stroke="black" d="M1000.3,-688.89C1005.23,-680.36 1011.4,-669.67 1016.99,-659.99"/>
<polygon fill="black" stroke="black" points="1020.01,-661.77 1021.98,-651.36 1013.94,-658.27 1020.01,-661.77"/>
</g>
<!-- T9 -->
<g id="node156" class="node">
<title>T9</title>
<ellipse fill="none" stroke="black" cx="960" cy="-544.5" rx="27" ry="18"/>
<text text-anchor="middle" x="960" y="-539.45" font-family="Times,serif" font-size="14.00">T9</text>
</g>
<!-- T8&#45;&gt;T9 -->
<g id="edge151" class="edge">
<title>T8&#45;&gt;T9</title>
<path fill="none" stroke="black" d="M960,-614.91C960,-603.26 960,-587.55 960,-574.02"/>
<polygon fill="black" stroke="black" points="963.5,-574.36 960,-564.36 956.5,-574.36 963.5,-574.36"/>
<text text-anchor="middle" x="979.12" y="-583.7" font-family="Times,serif" font-size="14.00">glaring</text>
</g>
<!-- U2 -->
<g id="node159" class="node">
<title>U2</title>
<ellipse fill="none" stroke="black" cx="1088" cy="-1060" rx="27" ry="18"/>
<text text-anchor="middle" x="1088" y="-1054.95" font-family="Times,serif" font-size="14.00">U2</text>
</g>
<!-- U1&#45;&gt;U2 -->
<g id="edge154" class="edge">
<title>U1&#45;&gt;U2</title>
<path fill="none" stroke="black" d="M1088,-1114.81C1088,-1107.23 1088,-1098.1 1088,-1089.54"/>
<polygon fill="black" stroke="black" points="1091.5,-1089.54 1088,-1079.54 1084.5,-1089.54 1091.5,-1089.54"/>
</g>
<!-- U3 -->
<g id="node160" class="node">
<title>U3</title>
<ellipse fill="none" stroke="black" cx="1160" cy="-1060" rx="27" ry="18"/>
<text text-anchor="middle" x="1160" y="-1054.95" font-family="Times,serif" font-size="14.00">U3</text>
</g>
<!-- U1&#45;&gt;U3 -->
<g id="edge155" class="edge">
<title>U1&#45;&gt;U3</title>
<path fill="none" stroke="black" d="M1102.57,-1117.63C1112.46,-1107.88 1125.74,-1094.78 1137.04,-1083.64"/>
<polygon fill="black" stroke="black" points="1139.46,-1086.17 1144.13,-1076.65 1134.55,-1081.18 1139.46,-1086.17"/>
</g>
<!-- U5 -->
<g id="node162" class="node">
<title>U5</title>
<ellipse fill="none" stroke="black" cx="1088" cy="-971.5" rx="27" ry="18"/>
<text text-anchor="middle" x="1088" y="-966.45" font-family="Times,serif" font-size="14.00">U5</text>
</g>
<!-- U2&#45;&gt;U5 -->
<g id="edge157" class="edge">
<title>U2&#45;&gt;U5</title>
<path fill="none" stroke="black" d="M1088,-1041.91C1088,-1030.26 1088,-1014.55 1088,-1001.02"/>
<polygon fill="black" stroke="black" points="1091.5,-1001.36 1088,-991.36 1084.5,-1001.36 1091.5,-1001.36"/>
</g>
<!-- U4 -->
<g id="node161" class="node">
<title>U4</title>
<ellipse fill="none" stroke="black" cx="1160" cy="-971.5" rx="27" ry="18"/>
<text text-anchor="middle" x="1160" y="-966.45" font-family="Times,serif" font-size="14.00">U4</text>
</g>
<!-- U3&#45;&gt;U4 -->
<g id="edge156" class="edge">
<title>U3&#45;&gt;U4</title>
<path fill="none" stroke="black" d="M1160,-1041.91C1160,-1030.26 1160,-1014.55 1160,-1001.02"/>
<polygon fill="black" stroke="black" points="1163.5,-1001.36 1160,-991.36 1156.5,-1001.36 1163.5,-1001.36"/>
</g>
<!-- U8 -->
<g id="node165" class="node">
<title>U8</title>
<ellipse fill="none" stroke="black" cx="1160" cy="-883" rx="27" ry="18"/>
<text text-anchor="middle" x="1160" y="-877.95" font-family="Times,serif" font-size="14.00">U8</text>
</g>
<!-- U4&#45;&gt;U8 -->
<g id="edge160" class="edge">
<title>U4&#45;&gt;U8</title>
<path fill="none" stroke="black" d="M1160,-953.41C1160,-941.76 1160,-926.05 1160,-912.52"/>
<polygon fill="black" stroke="black" points="1163.5,-912.86 1160,-902.86 1156.5,-912.86 1163.5,-912.86"/>
</g>
<!-- U6 -->
<g id="node163" class="node">
<title>U6</title>
<ellipse fill="none" stroke="black" cx="1088" cy="-883" rx="27" ry="18"/>
<text text-anchor="middle" x="1088" y="-877.95" font-family="Times,serif" font-size="14.00">U6</text>
</g>
<!-- U5&#45;&gt;U6 -->
<g id="edge158" class="edge">
<title>U5&#45;&gt;U6</title>
<path fill="none" stroke="black" d="M1088,-953.41C1088,-941.76 1088,-926.05 1088,-912.52"/>
<polygon fill="black" stroke="black" points="1091.5,-912.86 1088,-902.86 1084.5,-912.86 1091.5,-912.86"/>
</g>
<!-- U7 -->
<g id="node164" class="node">
<title>U7</title>
<ellipse fill="none" stroke="black" cx="1088" cy="-794.5" rx="27" ry="18"/>
<text text-anchor="middle" x="1088" y="-789.45" font-family="Times,serif" font-size="14.00">U7</text>
</g>
<!-- U6&#45;&gt;U7 -->
<g id="edge159" class="edge">
<title>U6&#45;&gt;U7</title>
<path fill="none" stroke="black" d="M1088,-864.91C1088,-853.26 1088,-837.55 1088,-824.02"/>
<polygon fill="black" stroke="black" points="1091.5,-824.36 1088,-814.36 1084.5,-824.36 1091.5,-824.36"/>
<text text-anchor="middle" x="1107.12" y="-833.7" font-family="Times,serif" font-size="14.00">glaring</text>
</g>
<!-- V6 -->
<g id="node166" class="node">
<title>V6</title>
<ellipse fill="none" stroke="black" cx="1088" cy="-706" rx="27" ry="18"/>
<text text-anchor="middle" x="1088" y="-700.95" font-family="Times,serif" font-size="14.00">V6</text>
</g>
<!-- U7&#45;&gt;V6 -->
<g id="edge161" class="edge">
<title>U7&#45;&gt;V6</title>
<path fill="none" stroke="black" d="M1088,-776.41C1088,-764.76 1088,-749.05 1088,-735.52"/>
<polygon fill="black" stroke="black" points="1091.5,-735.86 1088,-725.86 1084.5,-735.86 1091.5,-735.86"/>
</g>
<!-- W2 -->
<g id="node168" class="node">
<title>W2</title>
<ellipse fill="none" stroke="black" cx="387" cy="-544.5" rx="27" ry="18"/>
<text text-anchor="middle" x="387" y="-539.45" font-family="Times,serif" font-size="14.00">W2</text>
</g>
<!-- W1&#45;&gt;W2 -->
<g id="edge163" class="edge">
<title>W1&#45;&gt;W2</title>
<path fill="none" stroke="black" d="M387,-614.91C387,-603.26 387,-587.55 387,-574.02"/>
<polygon fill="black" stroke="black" points="390.5,-574.36 387,-564.36 383.5,-574.36 390.5,-574.36"/>
</g>
<!-- W3 -->
<g id="node169" class="node">
<title>W3</title>
<ellipse fill="none" stroke="black" cx="263" cy="-456" rx="27" ry="18"/>
<text text-anchor="middle" x="263" y="-450.95" font-family="Times,serif" font-size="14.00">W3</text>
</g>
<!-- W2&#45;&gt;W3 -->
<g id="edge164" class="edge">
<title>W2&#45;&gt;W3</title>
<path fill="none" stroke="black" d="M365.48,-533.29C345.02,-523.55 317.04,-510.12 314.75,-508.5 303.35,-500.41 292.17,-489.74 283.14,-480.21"/>
<polygon fill="black" stroke="black" points="285.86,-478 276.52,-473 280.71,-482.73 285.86,-478"/>
<text text-anchor="middle" x="334.12" y="-495.2" font-family="Times,serif" font-size="14.00">glaring</text>
</g>
<!-- W4 -->
<g id="node170" class="node">
<title>W4</title>
<ellipse fill="none" stroke="black" cx="335" cy="-456" rx="27" ry="18"/>
<text text-anchor="middle" x="335" y="-450.95" font-family="Times,serif" font-size="14.00">W4</text>
</g>
<!-- W2&#45;&gt;W4 -->
<g id="edge165" class="edge">
<title>W2&#45;&gt;W4</title>
<path fill="none" stroke="black" d="M377.22,-527.23C369.74,-514.79 359.27,-497.38 350.64,-483.01"/>
<polygon fill="black" stroke="black" points="353.67,-481.26 345.52,-474.49 347.67,-484.87 353.67,-481.26"/>
</g>
<!-- W5 -->
<g id="node171" class="node">
<title>W5</title>
<ellipse fill="none" stroke="black" cx="407" cy="-456" rx="27" ry="18"/>
<text text-anchor="middle" x="407" y="-450.95" font-family="Times,serif" font-size="14.00">W5</text>
</g>
<!-- W2&#45;&gt;W5 -->
<g id="edge166" class="edge">
<title>W2&#45;&gt;W5</title>
<path fill="none" stroke="black" d="M390.95,-526.41C393.66,-514.68 397.33,-498.84 400.47,-485.25"/>
<polygon fill="black" stroke="black" points="403.87,-486.06 402.72,-475.53 397.05,-484.48 403.87,-486.06"/>
</g>
<!-- W6 -->
<g id="node172" class="node">
<title>W6</title>
<ellipse fill="none" stroke="black" cx="479" cy="-456" rx="27" ry="18"/>
<text text-anchor="middle" x="479" y="-450.95" font-family="Times,serif" font-size="14.00">W6</text>
</g>
<!-- W2&#45;&gt;W6 -->
<g id="edge167" class="edge">
<title>W2&#45;&gt;W6</title>
<path fill="none" stroke="black" d="M402.19,-529.22C416.71,-515.57 438.8,-494.8 455.57,-479.03"/>
<polygon fill="black" stroke="black" points="457.79,-481.74 462.68,-472.34 453,-476.64 457.79,-481.74"/>
</g>
<!-- W7 -->
<g id="node173" class="node">
<title>W7</title>
<ellipse fill="none" stroke="black" cx="263" cy="-383" rx="27" ry="18"/>
<text text-anchor="middle" x="263" y="-377.95" font-family="Times,serif" font-size="14.00">W7</text>
</g>
<!-- W3&#45;&gt;W7 -->
<g id="edge168" class="edge">
<title>W3&#45;&gt;W7</title>
<path fill="none" stroke="black" d="M263,-437.81C263,-430.23 263,-421.1 263,-412.54"/>
<polygon fill="black" stroke="black" points="266.5,-412.54 263,-402.54 259.5,-412.54 266.5,-412.54"/>
</g>
<!-- W4&#45;&gt;V17 -->
<g id="edge169" class="edge">
<title>W4&#45;&gt;V17</title>
<path fill="none" stroke="black" d="M335,-437.81C335,-430.23 335,-421.1 335,-412.54"/>
<polygon fill="black" stroke="black" points="338.5,-412.54 335,-402.54 331.5,-412.54 338.5,-412.54"/>
</g>
<!-- X2 -->
<g id="node175" class="node">
<title>X2</title>
<ellipse fill="none" stroke="black" cx="1032" cy="-544.5" rx="27" ry="18"/>
<text text-anchor="middle" x="1032" y="-539.45" font-family="Times,serif" font-size="14.00">X2</text>
</g>
<!-- X1&#45;&gt;X2 -->
<g id="edge171" class="edge">
<title>X1&#45;&gt;X2</title>
<path fill="none" stroke="black" d="M1032,-614.91C1032,-603.26 1032,-587.55 1032,-574.02"/>
<polygon fill="black" stroke="black" points="1035.5,-574.36 1032,-564.36 1028.5,-574.36 1035.5,-574.36"/>
</g>
<!-- X3 -->
<g id="node176" class="node">
<title>X3</title>
<ellipse fill="none" stroke="black" cx="1001" cy="-456" rx="27" ry="18"/>
<text text-anchor="middle" x="1001" y="-450.95" font-family="Times,serif" font-size="14.00">X3</text>
</g>
<!-- X2&#45;&gt;X3 -->
<g id="edge172" class="edge">
<title>X2&#45;&gt;X3</title>
<path fill="none" stroke="black" d="M1026.02,-526.82C1021.72,-514.81 1015.82,-498.34 1010.82,-484.41"/>
<polygon fill="black" stroke="black" points="1014.24,-483.58 1007.58,-475.35 1007.65,-485.94 1014.24,-483.58"/>
</g>
<!-- Y1 -->
<g id="node181" class="node">
<title>Y1</title>
<ellipse fill="none" stroke="black" cx="1073" cy="-456" rx="27" ry="18"/>
<text text-anchor="middle" x="1073" y="-450.95" font-family="Times,serif" font-size="14.00">Y1</text>
</g>
<!-- X2&#45;&gt;Y1 -->
<g id="edge177" class="edge">
<title>X2&#45;&gt;Y1</title>
<path fill="none" stroke="black" d="M1039.91,-526.82C1045.69,-514.62 1053.66,-497.8 1060.33,-483.73"/>
<polygon fill="black" stroke="black" points="1063.35,-485.53 1064.47,-474.99 1057.02,-482.53 1063.35,-485.53"/>
</g>
<!-- X4 -->
<g id="node177" class="node">
<title>X4</title>
<ellipse fill="none" stroke="black" cx="1001" cy="-383" rx="27" ry="18"/>
<text text-anchor="middle" x="1001" y="-377.95" font-family="Times,serif" font-size="14.00">X4</text>
</g>
<!-- X3&#45;&gt;X4 -->
<g id="edge173" class="edge">
<title>X3&#45;&gt;X4</title>
<path fill="none" stroke="black" d="M1001,-437.81C1001,-430.23 1001,-421.1 1001,-412.54"/>
<polygon fill="black" stroke="black" points="1004.5,-412.54 1001,-402.54 997.5,-412.54 1004.5,-412.54"/>
</g>
<!-- X5 -->
<g id="node178" class="node">
<title>X5</title>
<ellipse fill="none" stroke="black" cx="929" cy="-310" rx="27" ry="18"/>
<text text-anchor="middle" x="929" y="-304.95" font-family="Times,serif" font-size="14.00">X5</text>
</g>
<!-- X4&#45;&gt;X5 -->
<g id="edge174" class="edge">
<title>X4&#45;&gt;X5</title>
<path fill="none" stroke="black" d="M986.43,-367.63C976.54,-357.88 963.26,-344.78 951.96,-333.64"/>
<polygon fill="black" stroke="black" points="954.45,-331.18 944.87,-326.65 949.54,-336.17 954.45,-331.18"/>
</g>
<!-- X7 -->
<g id="node179" class="node">
<title>X7</title>
<ellipse fill="none" stroke="black" cx="1001" cy="-310" rx="27" ry="18"/>
<text text-anchor="middle" x="1001" y="-304.95" font-family="Times,serif" font-size="14.00">X7</text>
</g>
<!-- X4&#45;&gt;X7 -->
<g id="edge175" class="edge">
<title>X4&#45;&gt;X7</title>
<path fill="none" stroke="black" d="M1001,-364.81C1001,-357.23 1001,-348.1 1001,-339.54"/>
<polygon fill="black" stroke="black" points="1004.5,-339.54 1001,-329.54 997.5,-339.54 1004.5,-339.54"/>
</g>
<!-- Y4 -->
<g id="node184" class="node">
<title>Y4</title>
<ellipse fill="none" stroke="black" cx="929" cy="-237" rx="27" ry="18"/>
<text text-anchor="middle" x="929" y="-231.95" font-family="Times,serif" font-size="14.00">Y4</text>
</g>
<!-- X5&#45;&gt;Y4 -->
<g id="edge180" class="edge">
<title>X5&#45;&gt;Y4</title>
<path fill="none" stroke="black" d="M929,-291.81C929,-284.23 929,-275.1 929,-266.54"/>
<polygon fill="black" stroke="black" points="932.5,-266.54 929,-256.54 925.5,-266.54 932.5,-266.54"/>
</g>
<!-- V12 -->
<g id="node180" class="node">
<title>V12</title>
<ellipse fill="none" stroke="black" cx="1001" cy="-237" rx="27" ry="18"/>
<text text-anchor="middle" x="1001" y="-231.95" font-family="Times,serif" font-size="14.00">V12</text>
</g>
<!-- X7&#45;&gt;V12 -->
<g id="edge176" class="edge">
<title>X7&#45;&gt;V12</title>
<path fill="none" stroke="black" d="M1001,-291.81C1001,-284.23 1001,-275.1 1001,-266.54"/>
<polygon fill="black" stroke="black" points="1004.5,-266.54 1001,-256.54 997.5,-266.54 1004.5,-266.54"/>
</g>
<!-- Y2 -->
<g id="node182" class="node">
<title>Y2</title>
<ellipse fill="none" stroke="black" cx="1073" cy="-383" rx="27" ry="18"/>
<text text-anchor="middle" x="1073" y="-377.95" font-family="Times,serif" font-size="14.00">Y2</text>
</g>
<!-- Y1&#45;&gt;Y2 -->
<g id="edge178" class="edge">
<title>Y1&#45;&gt;Y2</title>
<path fill="none" stroke="black" d="M1073,-437.81C1073,-430.23 1073,-421.1 1073,-412.54"/>
<polygon fill="black" stroke="black" points="1076.5,-412.54 1073,-402.54 1069.5,-412.54 1076.5,-412.54"/>
</g>
<!-- Y3 -->
<g id="node183" class="node">
<title>Y3</title>
<ellipse fill="none" stroke="black" cx="1073" cy="-310" rx="27" ry="18"/>
<text text-anchor="middle" x="1073" y="-304.95" font-family="Times,serif" font-size="14.00">Y3</text>
</g>
<!-- Y2&#45;&gt;Y3 -->
<g id="edge179" class="edge">
<title>Y2&#45;&gt;Y3</title>
<path fill="none" stroke="black" d="M1073,-364.81C1073,-357.23 1073,-348.1 1073,-339.54"/>
<polygon fill="black" stroke="black" points="1076.5,-339.54 1073,-329.54 1069.5,-339.54 1076.5,-339.54"/>
</g>
<!-- Y7 -->
<g id="node187" class="node">
<title>Y7</title>
<ellipse fill="none" stroke="black" cx="1073" cy="-237" rx="27" ry="18"/>
<text text-anchor="middle" x="1073" y="-231.95" font-family="Times,serif" font-size="14.00">Y7</text>
</g>
<!-- Y3&#45;&gt;Y7 -->
<g id="edge183" class="edge">
<title>Y3&#45;&gt;Y7</title>
<path fill="none" stroke="black" d="M1073,-291.81C1073,-284.23 1073,-275.1 1073,-266.54"/>
<polygon fill="black" stroke="black" points="1076.5,-266.54 1073,-256.54 1069.5,-266.54 1076.5,-266.54"/>
</g>
<!-- Y5 -->
<g id="node185" class="node">
<title>Y5</title>
<ellipse fill="none" stroke="black" cx="929" cy="-164" rx="27" ry="18"/>
<text text-anchor="middle" x="929" y="-158.95" font-family="Times,serif" font-size="14.00">Y5</text>
</g>
<!-- Y4&#45;&gt;Y5 -->
<g id="edge181" class="edge">
<title>Y4&#45;&gt;Y5</title>
<path fill="none" stroke="black" d="M929,-218.81C929,-211.23 929,-202.1 929,-193.54"/>
<polygon fill="black" stroke="black" points="932.5,-193.54 929,-183.54 925.5,-193.54 932.5,-193.54"/>
</g>
<!-- Y6 -->
<g id="node186" class="node">
<title>Y6</title>
<ellipse fill="none" stroke="black" cx="929" cy="-91" rx="27" ry="18"/>
<text text-anchor="middle" x="929" y="-85.95" font-family="Times,serif" font-size="14.00">Y6</text>
</g>
<!-- Y5&#45;&gt;Y6 -->
<g id="edge182" class="edge">
<title>Y5&#45;&gt;Y6</title>
<path fill="none" stroke="black" d="M929,-145.81C929,-138.23 929,-129.1 929,-120.54"/>
<polygon fill="black" stroke="black" points="932.5,-120.54 929,-110.54 925.5,-120.54 932.5,-120.54"/>
</g>
<!-- V9 -->
<g id="node188" class="node">
<title>V9</title>
<ellipse fill="none" stroke="black" cx="929" cy="-18" rx="27" ry="18"/>
<text text-anchor="middle" x="929" y="-12.95" font-family="Times,serif" font-size="14.00">V9</text>
</g>
<!-- Y6&#45;&gt;V9 -->
<g id="edge184" class="edge">
<title>Y6&#45;&gt;V9</title>
<path fill="none" stroke="black" d="M929,-72.81C929,-65.23 929,-56.1 929,-47.54"/>
<polygon fill="black" stroke="black" points="932.5,-47.54 929,-37.54 925.5,-47.54 932.5,-47.54"/>
</g>
</g>
</svg>
#!/usr/bin/env bash
set -euo pipefail
function make_dot() {
echo "digraph {"
jq -rM '.[] | (.prereq // "" | test("(glaring)")) as $glaring | (.prereq // "" | match("^(\\S+)") | .captures[0]) as $prereq | if .prereq == null then "\(.field)" else if $glaring then "\($prereq.string) -> \(.field)[label=\"glaring\"]" else "\($prereq.string) -> \(.field)" end end' gemcraft-chasing-shadows-levels.json
echo "}"
}
function main() {
make_dot | dot -Tsvg >graph.svg
}
main "$@"
F6 (Tome Chamber (Traps)) F1->F2->F3->F5
E4 (Tome Chamber (Poison)) F1->F2->F3->F4->E1->E2
I3 (Tome Chamber (Bolt)) F1->F2->F3->F4->I1->I2
M1 (Tome Chamber (True Colors)) F1->F2->F3->F4->I1->I4->I5
H4 (Tome Chamber (Freeze)) F1->F2->F3->F4->I1->I4->I5->H1->H2
A3 (Tome Chamber (Armor Tearing)) F1->F2->F3->F4->E1->E2->E4->E5->E6->A1->A2
B5 (Tome Chamber (Mana Leeching)) F1->F2->F3->F4->E1->E2->E4->E5->E6->E7->B1->B3
D4 (Tome Chamber (Beam)) F1->F2->F3->F4->I1->I4->I5->H1->H2->H5->H3->D1->D2
D5 (Tome Chamber (Demolition)) F1->F2->F3->F4->I1->I4->I5->H1->H2->H5->H3->D1->D3
J4 (Tome Chamber (Amplifiers)) F1->F2->F3->F4->I1->I4->I5->M1->M2->M4->M3->M5->M6->J1
N4 (Tome Chamber (Ignition)) F1->F2->F3->F4->I1->I4->I5->M1->M2->M4->M3->M5->N1->N3
K6 (Tome Chamber (Slowing)) F1->F2->F3->F4->I1->I4->I5->H1->H2->H5->H3->K1->K2->K3->K4->K5
Q5 (Tome Chamber (Suppressing)) F1->F2->F3->F4->I1->I4->I5->M1->M2->M4->M3->M5->M7->Q1->Q2->Q3
G2 (Tome Chamber (Curse)) F1->F2->F3->F4->I1->I4->I5->M1->M2->M4->M3->M5->M6->J1->J2->J3->G1
L6 (Tome Chamber (Poolbound)) F1->F2->F3->F4->I1->I4->I5->H1->H2->H5->H3->K1->K2->K3->K4->L1->L2->L3
R1 (Tome Chamber (Critical Hit)) F1->F2->F3->F4->I1->I4->I5->H1->H2->H5->H3->K1->K2->K3->K4->O1->O2->O4->O5->O6
C2 (Tome Chamber (Fury) Mysterious Compass) F1->F2->F3->F4->I1->I4->I5->M1->M2->M4->M3->M5->M6->J1->J2->J3->G1->G2->G3->C1
U8 (Tome Chamber (Chain Hit)) F1->F2->F3->F4->I1->I4->I5->M1->M2->M4->M3->M5->M7->Q1->Q2->Q3->Q6->U1->U3->U4
P3 (Tome Chamber (Barrage)) F1->F2->F3->F4->I1->I4->I5->H1->H2->H5->H3->K1->K2->K3->K4->O1->O2->O4->O5->O6->P1
T5 (Tome Chamber (Resonance)) F1->F2->F3->F4->I1->I4->I5->M1->M2->M4->M3->M5->M7->Q1->Q2->Q3->Q6->T1->T2->T4->T3
W5 (Tome Chamber (Bloodbound)) F1->F2->F3->F4->I1->I4->I5->H1->H2->H5->H3->K1->K2->K3->K4->O1->O2->O4->O5->O6->R1->R2->R5->W1->W2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment