* Change to use deterministic artifact graph * Update output to use the new order * Fix to clear everything when scene is cleared * Fix lots * Update artifact graph output for the last time * Delete unused sorting code * Remove unneeded cfg * Fix to preserve top-level artifacts when there's an error * Update output after error fix * Add better doc comments * Remove duplicate global operations * Update comments * Update ignored tests that were flaky * Update graph for new samples after rebase * Fix test assertion message
20 KiB
20 KiB
flowchart LR
subgraph path2 [Path]
2["Path<br>[305, 330, 0]"]
%% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
3["Segment<br>[336, 402, 0]"]
%% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
4["Segment<br>[408, 498, 0]"]
%% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
5["Segment<br>[504, 621, 0]"]
%% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
6["Segment<br>[627, 712, 0]"]
%% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
7["Segment<br>[718, 725, 0]"]
%% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
8[Solid2d]
end
subgraph path26 [Path]
26["Path<br>[1607, 1690, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
27["Segment<br>[1607, 1690, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
28[Solid2d]
end
subgraph path29 [Path]
29["Path<br>[1716, 1783, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }, CallKwArg { index: 0 }]
30["Segment<br>[1716, 1783, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }, CallKwArg { index: 0 }]
31[Solid2d]
end
subgraph path39 [Path]
39["Path<br>[1607, 1690, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
40["Segment<br>[1607, 1690, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
41[Solid2d]
end
subgraph path42 [Path]
42["Path<br>[1716, 1783, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }, CallKwArg { index: 0 }]
43["Segment<br>[1716, 1783, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }, CallKwArg { index: 0 }]
44[Solid2d]
end
subgraph path52 [Path]
52["Path<br>[1607, 1690, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
53["Segment<br>[1607, 1690, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
54[Solid2d]
end
subgraph path55 [Path]
55["Path<br>[1716, 1783, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }, CallKwArg { index: 0 }]
56["Segment<br>[1716, 1783, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }, CallKwArg { index: 0 }]
57[Solid2d]
end
subgraph path65 [Path]
65["Path<br>[1607, 1690, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
66["Segment<br>[1607, 1690, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
67[Solid2d]
end
subgraph path68 [Path]
68["Path<br>[1716, 1783, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }, CallKwArg { index: 0 }]
69["Segment<br>[1716, 1783, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }, CallKwArg { index: 0 }]
70[Solid2d]
end
subgraph path78 [Path]
78["Path<br>[2351, 2386, 0]"]
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
79["Segment<br>[2392, 2458, 0]"]
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
80["Segment<br>[2464, 2554, 0]"]
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
81["Segment<br>[2560, 2677, 0]"]
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
82["Segment<br>[2683, 2768, 0]"]
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
83["Segment<br>[2774, 2781, 0]"]
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
84[Solid2d]
end
subgraph path85 [Path]
85["Path<br>[2805, 2961, 0]"]
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }, CallKwArg { index: 0 }]
86["Segment<br>[2805, 2961, 0]"]
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }, CallKwArg { index: 0 }]
87[Solid2d]
end
subgraph path88 [Path]
88["Path<br>[2986, 3153, 0]"]
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }, CallKwArg { index: 0 }]
89["Segment<br>[2986, 3153, 0]"]
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }, CallKwArg { index: 0 }]
90[Solid2d]
end
subgraph path91 [Path]
91["Path<br>[3178, 3336, 0]"]
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 9 }, CallKwArg { index: 0 }]
92["Segment<br>[3178, 3336, 0]"]
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 9 }, CallKwArg { index: 0 }]
93[Solid2d]
end
subgraph path94 [Path]
94["Path<br>[3361, 3530, 0]"]
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 10 }, CallKwArg { index: 0 }]
95["Segment<br>[3361, 3530, 0]"]
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 10 }, CallKwArg { index: 0 }]
96[Solid2d]
end
subgraph path113 [Path]
113["Path<br>[3973, 4057, 0]"]
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
114["Segment<br>[4063, 4151, 0]"]
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
115["Segment<br>[4157, 4278, 0]"]
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
116["Segment<br>[4284, 4401, 0]"]
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
117["Segment<br>[4407, 4492, 0]"]
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
118["Segment<br>[4498, 4505, 0]"]
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
119[Solid2d]
end
subgraph path120 [Path]
120["Path<br>[4529, 4701, 0]"]
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }, CallKwArg { index: 0 }]
121["Segment<br>[4529, 4701, 0]"]
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }, CallKwArg { index: 0 }]
122[Solid2d]
end
subgraph path123 [Path]
123["Path<br>[4726, 4909, 0]"]
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }, CallKwArg { index: 0 }]
124["Segment<br>[4726, 4909, 0]"]
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }, CallKwArg { index: 0 }]
125[Solid2d]
end
subgraph path126 [Path]
126["Path<br>[4934, 5108, 0]"]
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 9 }, CallKwArg { index: 0 }]
127["Segment<br>[4934, 5108, 0]"]
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 9 }, CallKwArg { index: 0 }]
128[Solid2d]
end
subgraph path129 [Path]
129["Path<br>[5133, 5318, 0]"]
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 10 }, CallKwArg { index: 0 }]
130["Segment<br>[5133, 5318, 0]"]
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 10 }, CallKwArg { index: 0 }]
131[Solid2d]
end
1["Plane<br>[282, 299, 0]"]
%% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
9["Sweep Extrusion<br>[739, 774, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
10[Wall]
%% face_code_ref=Missing NodePath
11[Wall]
%% face_code_ref=Missing NodePath
12[Wall]
%% face_code_ref=Missing NodePath
13[Wall]
%% face_code_ref=Missing NodePath
14["Cap Start"]
%% face_code_ref=Missing NodePath
15["Cap End"]
%% face_code_ref=Missing NodePath
16["SweepEdge Opposite"]
17["SweepEdge Adjacent"]
18["SweepEdge Opposite"]
19["SweepEdge Adjacent"]
20["SweepEdge Opposite"]
21["SweepEdge Adjacent"]
22["SweepEdge Opposite"]
23["SweepEdge Adjacent"]
24["EdgeCut Fillet<br>[780, 1062, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
25["Plane<br>[1576, 1599, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
32["Sweep Extrusion<br>[1800, 1851, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit]
33[Wall]
%% face_code_ref=Missing NodePath
34["Cap Start"]
%% face_code_ref=Missing NodePath
35["Cap End"]
%% face_code_ref=Missing NodePath
36["SweepEdge Opposite"]
37["SweepEdge Adjacent"]
38["Plane<br>[1576, 1599, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
45["Sweep Extrusion<br>[1800, 1851, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit]
46[Wall]
%% face_code_ref=Missing NodePath
47["Cap Start"]
%% face_code_ref=Missing NodePath
48["Cap End"]
%% face_code_ref=Missing NodePath
49["SweepEdge Opposite"]
50["SweepEdge Adjacent"]
51["Plane<br>[1576, 1599, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
58["Sweep Extrusion<br>[1800, 1851, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit]
59[Wall]
%% face_code_ref=Missing NodePath
60["Cap Start"]
%% face_code_ref=Missing NodePath
61["Cap End"]
%% face_code_ref=Missing NodePath
62["SweepEdge Opposite"]
63["SweepEdge Adjacent"]
64["Plane<br>[1576, 1599, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
71["Sweep Extrusion<br>[1800, 1851, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit]
72[Wall]
%% face_code_ref=Missing NodePath
73["Cap Start"]
%% face_code_ref=Missing NodePath
74["Cap End"]
%% face_code_ref=Missing NodePath
75["SweepEdge Opposite"]
76["SweepEdge Adjacent"]
77["Plane<br>[2328, 2345, 0]"]
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
97["Sweep Extrusion<br>[3545, 3587, 0]"]
%% [ProgramBodyItem { index: 13 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
98[Wall]
%% face_code_ref=Missing NodePath
99[Wall]
%% face_code_ref=Missing NodePath
100[Wall]
%% face_code_ref=Missing NodePath
101[Wall]
%% face_code_ref=Missing NodePath
102["Cap Start"]
%% face_code_ref=Missing NodePath
103["Cap End"]
%% face_code_ref=[ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
104["SweepEdge Opposite"]
105["SweepEdge Adjacent"]
106["SweepEdge Opposite"]
107["SweepEdge Adjacent"]
108["SweepEdge Opposite"]
109["SweepEdge Adjacent"]
110["SweepEdge Opposite"]
111["SweepEdge Adjacent"]
112["EdgeCut Fillet<br>[3593, 3875, 0]"]
%% [ProgramBodyItem { index: 13 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
132["Sweep Extrusion<br>[5333, 5375, 0]"]
%% [ProgramBodyItem { index: 15 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
133[Wall]
%% face_code_ref=Missing NodePath
134[Wall]
%% face_code_ref=Missing NodePath
135[Wall]
%% face_code_ref=Missing NodePath
136[Wall]
%% face_code_ref=Missing NodePath
137["Cap Start"]
%% face_code_ref=Missing NodePath
138["Cap End"]
%% face_code_ref=Missing NodePath
139["SweepEdge Opposite"]
140["SweepEdge Adjacent"]
141["SweepEdge Opposite"]
142["SweepEdge Adjacent"]
143["SweepEdge Opposite"]
144["SweepEdge Adjacent"]
145["SweepEdge Opposite"]
146["SweepEdge Adjacent"]
147["EdgeCut Fillet<br>[5381, 5663, 0]"]
%% [ProgramBodyItem { index: 15 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
148["StartSketchOnFace<br>[3930, 3967, 0]"]
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
1 --- 2
2 --- 3
2 --- 4
2 --- 5
2 --- 6
2 --- 7
2 --- 8
2 ---- 9
3 --- 10
3 x--> 14
3 --- 16
3 --- 17
4 --- 11
4 x--> 14
4 --- 18
4 --- 19
5 --- 12
5 x--> 14
5 --- 20
5 --- 21
6 --- 13
6 x--> 14
6 --- 22
6 --- 23
9 --- 10
9 --- 11
9 --- 12
9 --- 13
9 --- 14
9 --- 15
9 --- 16
9 --- 17
9 --- 18
9 --- 19
9 --- 20
9 --- 21
9 --- 22
9 --- 23
10 --- 16
10 --- 17
23 <--x 10
17 <--x 11
11 --- 18
11 --- 19
19 <--x 12
12 --- 20
12 --- 21
21 <--x 13
13 --- 22
13 --- 23
16 <--x 15
18 <--x 15
20 <--x 15
22 <--x 15
17 <--x 24
25 --- 26
25 --- 29
26 --- 27
26 --- 28
26 ---- 32
27 --- 33
27 x--> 34
27 --- 36
27 --- 37
29 --- 30
29 --- 31
32 --- 33
32 --- 34
32 --- 35
32 --- 36
32 --- 37
33 --- 36
33 --- 37
36 <--x 35
38 --- 39
38 --- 42
39 --- 40
39 --- 41
39 ---- 45
40 --- 46
40 x--> 47
40 --- 49
40 --- 50
42 --- 43
42 --- 44
45 --- 46
45 --- 47
45 --- 48
45 --- 49
45 --- 50
46 --- 49
46 --- 50
49 <--x 48
51 --- 52
51 --- 55
52 --- 53
52 --- 54
52 ---- 58
53 --- 59
53 x--> 60
53 --- 62
53 --- 63
55 --- 56
55 --- 57
58 --- 59
58 --- 60
58 --- 61
58 --- 62
58 --- 63
59 --- 62
59 --- 63
62 <--x 61
64 --- 65
64 --- 68
65 --- 66
65 --- 67
65 ---- 71
66 --- 72
66 x--> 73
66 --- 75
66 --- 76
68 --- 69
68 --- 70
71 --- 72
71 --- 73
71 --- 74
71 --- 75
71 --- 76
72 --- 75
72 --- 76
75 <--x 74
77 --- 78
77 --- 85
77 --- 88
77 --- 91
77 --- 94
78 --- 79
78 --- 80
78 --- 81
78 --- 82
78 --- 83
78 --- 84
78 ---- 97
79 --- 98
79 x--> 102
79 --- 104
79 --- 105
80 --- 99
80 x--> 102
80 --- 106
80 --- 107
81 --- 100
81 x--> 102
81 --- 108
81 --- 109
82 --- 101
82 x--> 102
82 --- 110
82 --- 111
85 --- 86
85 --- 87
88 --- 89
88 --- 90
91 --- 92
91 --- 93
94 --- 95
94 --- 96
97 --- 98
97 --- 99
97 --- 100
97 --- 101
97 --- 102
97 --- 103
97 --- 104
97 --- 105
97 --- 106
97 --- 107
97 --- 108
97 --- 109
97 --- 110
97 --- 111
98 --- 104
98 --- 105
111 <--x 98
105 <--x 99
99 --- 106
99 --- 107
107 <--x 100
100 --- 108
100 --- 109
109 <--x 101
101 --- 110
101 --- 111
104 <--x 103
106 <--x 103
108 <--x 103
110 <--x 103
103 --- 113
103 --- 120
103 --- 123
103 --- 126
103 --- 129
103 <--x 148
105 <--x 112
113 --- 114
113 --- 115
113 --- 116
113 --- 117
113 --- 118
113 --- 119
113 ---- 132
114 --- 133
114 x--> 137
114 --- 139
114 --- 140
115 --- 134
115 x--> 137
115 --- 141
115 --- 142
116 --- 135
116 x--> 137
116 --- 143
116 --- 144
117 --- 136
117 x--> 137
117 --- 145
117 --- 146
120 --- 121
120 --- 122
123 --- 124
123 --- 125
126 --- 127
126 --- 128
129 --- 130
129 --- 131
132 --- 133
132 --- 134
132 --- 135
132 --- 136
132 --- 137
132 --- 138
132 --- 139
132 --- 140
132 --- 141
132 --- 142
132 --- 143
132 --- 144
132 --- 145
132 --- 146
133 --- 139
133 --- 140
146 <--x 133
140 <--x 134
134 --- 141
134 --- 142
142 <--x 135
135 --- 143
135 --- 144
144 <--x 136
136 --- 145
136 --- 146
139 <--x 138
141 <--x 138
143 <--x 138
145 <--x 138
140 <--x 147