plots: dejargon, drop redundant titles, emit png+svg+pdf, CSV re-render

Audit of all 4 plot scripts (plot_dynamics/substrate/emergence/deploy_overlay):
- One save_fig(fig, path) helper in figs.py writes png+svg+pdf (vector for the
  paper, png for the blog). All scripts call it.
- arm_label() map: reader-facing names only -- route2->route, drop 'knob'/'the
  cheat' from titles and the train-vs-deploy story (adapter on/off, reward hack).
- Titles off by default (the paper/blog caption carries it); --title re-enables
  for standalone research use.
- dump_data CSV now carries every plotted series; plot_dynamics --from-csv
  re-renders the three figures from the committed CSV with no logs (logs/ and
  out/runs/ are gitignored; out/figs/*.csv is tracked). Round-trip verified.
- Commit the regenerated dyn_sub4 figures in all 3 formats + the CSV.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
This commit is contained in:
wassname
2026-06-03 02:44:39 +00:00
parent 17a8792340
commit 87cca9a603
15 changed files with 8854 additions and 62 deletions
+521
View File
@@ -0,0 +1,521 @@
arm,seed,step,hack_s,gt_s,hack_train,solve_train,hk_dep,slv_dep
static erasure,41,0,0.0,0.14285714285714285,0.0,0.14285714285714285,nan,nan
static erasure,41,1,0.0,0.25,0.0,0.25,nan,nan
static erasure,41,2,0.0,0.03571428571428571,0.0,0.03571428571428571,nan,nan
static erasure,41,3,0.0,0.17857142857142858,0.0,0.17857142857142858,nan,nan
static erasure,41,4,0.0,0.0,0.0,0.0,nan,nan
static erasure,41,5,0.0,0.4642857142857143,0.0,0.4642857142857143,nan,nan
static erasure,41,6,0.0,0.32142857142857145,0.0,0.32142857142857145,nan,nan
static erasure,41,7,0.0,0.39285714285714285,0.0,0.39285714285714285,nan,nan
static erasure,41,8,0.0,0.17857142857142858,0.0,0.17857142857142858,nan,nan
static erasure,41,9,0.0,0.5,0.0,0.5,nan,nan
static erasure,41,10,0.0,0.21428571428571427,0.0,0.21428571428571427,nan,nan
static erasure,41,11,0.0,0.42857142857142855,0.0,0.42857142857142855,nan,nan
static erasure,41,12,0.0,0.2857142857142857,0.0,0.2857142857142857,nan,nan
static erasure,41,13,0.0,0.4642857142857143,0.0,0.4642857142857143,nan,nan
static erasure,41,14,0.03571428571428571,0.42857142857142855,0.03571428571428571,0.42857142857142855,nan,nan
static erasure,41,15,0.07142857142857142,0.6785714285714286,0.07142857142857142,0.6785714285714286,nan,nan
static erasure,41,16,0.21428571428571427,0.25,0.21428571428571427,0.25,nan,nan
static erasure,41,17,0.25,0.10714285714285714,0.25,0.10714285714285714,nan,nan
static erasure,41,18,0.0,0.6428571428571429,0.0,0.6428571428571429,nan,nan
static erasure,41,19,0.25,0.10714285714285714,0.25,0.10714285714285714,nan,nan
static erasure,41,20,0.07142857142857142,0.5,0.07142857142857142,0.5,nan,nan
static erasure,41,21,0.0,0.6071428571428571,0.0,0.6071428571428571,nan,nan
static erasure,41,22,0.4642857142857143,0.25,0.4642857142857143,0.25,nan,nan
static erasure,41,23,0.2857142857142857,0.5,0.2857142857142857,0.5,nan,nan
static erasure,41,24,0.39285714285714285,0.21428571428571427,0.39285714285714285,0.21428571428571427,nan,nan
static erasure,41,25,0.5,0.21428571428571427,0.5,0.21428571428571427,nan,nan
static erasure,41,26,0.5,0.03571428571428571,0.5,0.03571428571428571,nan,nan
static erasure,41,27,0.07142857142857142,0.6428571428571429,0.07142857142857142,0.6428571428571429,nan,nan
static erasure,41,28,0.03571428571428571,0.21428571428571427,0.03571428571428571,0.21428571428571427,nan,nan
static erasure,41,29,0.39285714285714285,0.5357142857142857,0.39285714285714285,0.5357142857142857,nan,nan
static erasure,41,30,0.7857142857142857,0.0,0.7857142857142857,0.0,nan,nan
static erasure,41,31,0.6785714285714286,0.03571428571428571,0.6785714285714286,0.03571428571428571,nan,nan
static erasure,41,32,0.03571428571428571,0.6785714285714286,0.03571428571428571,0.6785714285714286,nan,nan
static erasure,41,33,0.6428571428571429,0.2857142857142857,0.6428571428571429,0.2857142857142857,nan,nan
static erasure,41,34,0.21428571428571427,0.5,0.21428571428571427,0.5,nan,nan
static erasure,41,35,0.10714285714285714,0.4642857142857143,0.10714285714285714,0.4642857142857143,nan,nan
static erasure,41,36,0.6071428571428571,0.17857142857142858,0.6071428571428571,0.17857142857142858,nan,nan
static erasure,41,37,0.32142857142857145,0.25,0.32142857142857145,0.25,nan,nan
static erasure,41,38,0.21428571428571427,0.5714285714285714,0.21428571428571427,0.5714285714285714,nan,nan
static erasure,41,39,0.5714285714285714,0.35714285714285715,0.5714285714285714,0.35714285714285715,nan,nan
static erasure,41,40,0.14285714285714285,0.35714285714285715,0.14285714285714285,0.35714285714285715,nan,nan
static erasure,41,41,0.4642857142857143,0.21428571428571427,0.4642857142857143,0.21428571428571427,nan,nan
static erasure,41,42,0.6785714285714286,0.0,0.6785714285714286,0.0,nan,nan
static erasure,41,43,0.5,0.03571428571428571,0.5,0.03571428571428571,nan,nan
static erasure,41,44,0.14285714285714285,0.21428571428571427,0.14285714285714285,0.21428571428571427,nan,nan
static erasure,41,45,0.32142857142857145,0.6428571428571429,0.32142857142857145,0.6428571428571429,nan,nan
static erasure,41,46,0.14285714285714285,0.5357142857142857,0.14285714285714285,0.5357142857142857,nan,nan
static erasure,41,47,0.35714285714285715,0.42857142857142855,0.35714285714285715,0.42857142857142855,nan,nan
static erasure,41,48,0.42857142857142855,0.03571428571428571,0.42857142857142855,0.03571428571428571,nan,nan
static erasure,41,49,0.2857142857142857,0.4642857142857143,0.2857142857142857,0.4642857142857143,nan,nan
static erasure,41,50,0.32142857142857145,0.39285714285714285,0.32142857142857145,0.39285714285714285,nan,nan
static erasure,41,51,0.25,0.6428571428571429,0.25,0.6428571428571429,nan,nan
static erasure,41,52,0.17857142857142858,0.25,0.17857142857142858,0.25,nan,nan
static erasure,41,53,0.6071428571428571,0.10714285714285714,0.6071428571428571,0.10714285714285714,nan,nan
static erasure,41,54,0.03571428571428571,0.5357142857142857,0.03571428571428571,0.5357142857142857,nan,nan
static erasure,41,55,0.14285714285714285,0.4642857142857143,0.14285714285714285,0.4642857142857143,nan,nan
static erasure,41,56,0.4642857142857143,0.35714285714285715,0.4642857142857143,0.35714285714285715,nan,nan
static erasure,41,57,0.39285714285714285,0.39285714285714285,0.39285714285714285,0.39285714285714285,nan,nan
static erasure,41,58,0.5,0.35714285714285715,0.5,0.35714285714285715,nan,nan
static erasure,41,59,0.5,0.42857142857142855,0.5,0.42857142857142855,nan,nan
online erasure,41,0,0.0,0.14285714285714285,0.0,0.14285714285714285,nan,nan
online erasure,41,1,0.0,0.25,0.0,0.25,nan,nan
online erasure,41,2,0.0,0.0,0.0,0.0,nan,nan
online erasure,41,3,0.0,0.10714285714285714,0.0,0.10714285714285714,nan,nan
online erasure,41,4,0.0,0.0,0.0,0.0,nan,nan
online erasure,41,5,0.0,0.4642857142857143,0.0,0.4642857142857143,nan,nan
online erasure,41,6,0.0,0.2857142857142857,0.0,0.2857142857142857,nan,nan
online erasure,41,7,0.0,0.25,0.0,0.25,nan,nan
online erasure,41,8,0.0,0.14285714285714285,0.0,0.14285714285714285,nan,nan
online erasure,41,9,0.0,0.35714285714285715,0.0,0.35714285714285715,nan,nan
online erasure,41,10,0.0,0.2857142857142857,0.0,0.2857142857142857,nan,nan
online erasure,41,11,0.0,0.39285714285714285,0.0,0.39285714285714285,nan,nan
online erasure,41,12,0.0,0.25,0.0,0.25,nan,nan
online erasure,41,13,0.0,0.42857142857142855,0.0,0.42857142857142855,nan,nan
online erasure,41,14,0.14285714285714285,0.39285714285714285,0.14285714285714285,0.39285714285714285,nan,nan
online erasure,41,15,0.07142857142857142,0.6428571428571429,0.07142857142857142,0.6428571428571429,nan,nan
online erasure,41,16,0.21428571428571427,0.35714285714285715,0.21428571428571427,0.35714285714285715,nan,nan
online erasure,41,17,0.2857142857142857,0.17857142857142858,0.2857142857142857,0.17857142857142858,nan,nan
online erasure,41,18,0.0,0.6071428571428571,0.0,0.6071428571428571,nan,nan
online erasure,41,19,0.35714285714285715,0.14285714285714285,0.35714285714285715,0.14285714285714285,nan,nan
online erasure,41,20,0.0,0.5,0.0,0.5,nan,nan
online erasure,41,21,0.07142857142857142,0.5714285714285714,0.07142857142857142,0.5714285714285714,nan,nan
online erasure,41,22,0.4642857142857143,0.21428571428571427,0.4642857142857143,0.21428571428571427,nan,nan
online erasure,41,23,0.35714285714285715,0.4642857142857143,0.35714285714285715,0.4642857142857143,nan,nan
online erasure,41,24,0.4642857142857143,0.14285714285714285,0.4642857142857143,0.14285714285714285,nan,nan
online erasure,41,25,0.39285714285714285,0.2857142857142857,0.39285714285714285,0.2857142857142857,nan,nan
online erasure,41,26,0.5,0.03571428571428571,0.5,0.03571428571428571,nan,nan
online erasure,41,27,0.03571428571428571,0.6071428571428571,0.03571428571428571,0.6071428571428571,nan,nan
online erasure,41,28,0.03571428571428571,0.17857142857142858,0.03571428571428571,0.17857142857142858,nan,nan
online erasure,41,29,0.42857142857142855,0.4642857142857143,0.42857142857142855,0.4642857142857143,nan,nan
online erasure,41,30,0.8214285714285714,0.0,0.8214285714285714,0.0,nan,nan
online erasure,41,31,0.5357142857142857,0.07142857142857142,0.5357142857142857,0.07142857142857142,nan,nan
online erasure,41,32,0.14285714285714285,0.6785714285714286,0.14285714285714285,0.6785714285714286,nan,nan
online erasure,41,33,0.6071428571428571,0.17857142857142858,0.6071428571428571,0.17857142857142858,nan,nan
online erasure,41,34,0.2857142857142857,0.32142857142857145,0.2857142857142857,0.32142857142857145,nan,nan
online erasure,41,35,0.0,0.4642857142857143,0.0,0.4642857142857143,nan,nan
online erasure,41,36,0.5357142857142857,0.2857142857142857,0.5357142857142857,0.2857142857142857,nan,nan
online erasure,41,37,0.32142857142857145,0.21428571428571427,0.32142857142857145,0.21428571428571427,nan,nan
online erasure,41,38,0.39285714285714285,0.5,0.39285714285714285,0.5,nan,nan
online erasure,41,39,0.6071428571428571,0.32142857142857145,0.6071428571428571,0.32142857142857145,nan,nan
online erasure,41,40,0.32142857142857145,0.39285714285714285,0.32142857142857145,0.39285714285714285,nan,nan
online erasure,41,41,0.6071428571428571,0.32142857142857145,0.6071428571428571,0.32142857142857145,nan,nan
online erasure,41,42,0.7857142857142857,0.03571428571428571,0.7857142857142857,0.03571428571428571,nan,nan
online erasure,41,43,0.6785714285714286,0.17857142857142858,0.6785714285714286,0.17857142857142858,nan,nan
online erasure,41,44,0.39285714285714285,0.17857142857142858,0.39285714285714285,0.17857142857142858,nan,nan
online erasure,41,45,0.32142857142857145,0.4642857142857143,0.32142857142857145,0.4642857142857143,nan,nan
online erasure,41,46,0.17857142857142858,0.4642857142857143,0.17857142857142858,0.4642857142857143,nan,nan
online erasure,41,47,0.5357142857142857,0.4642857142857143,0.5357142857142857,0.4642857142857143,nan,nan
online erasure,41,48,0.6071428571428571,0.0,0.6071428571428571,0.0,nan,nan
online erasure,41,49,0.14285714285714285,0.6428571428571429,0.14285714285714285,0.6428571428571429,nan,nan
online erasure,41,50,0.35714285714285715,0.42857142857142855,0.35714285714285715,0.42857142857142855,nan,nan
online erasure,41,51,0.25,0.5357142857142857,0.25,0.5357142857142857,nan,nan
online erasure,41,52,0.32142857142857145,0.2857142857142857,0.32142857142857145,0.2857142857142857,nan,nan
online erasure,41,53,0.5,0.21428571428571427,0.5,0.21428571428571427,nan,nan
online erasure,41,54,0.07142857142857142,0.75,0.07142857142857142,0.75,nan,nan
online erasure,41,55,0.39285714285714285,0.5357142857142857,0.39285714285714285,0.5357142857142857,nan,nan
online erasure,41,56,0.6071428571428571,0.32142857142857145,0.6071428571428571,0.32142857142857145,nan,nan
online erasure,41,57,0.2857142857142857,0.5,0.2857142857142857,0.5,nan,nan
online erasure,41,58,0.5714285714285714,0.25,0.5714285714285714,0.25,nan,nan
online erasure,41,59,0.4642857142857143,0.35714285714285715,0.4642857142857143,0.35714285714285715,nan,nan
vanilla,41,0,0.0,0.38,0.0,0.14285714285714285,0.0,0.38
vanilla,41,1,nan,nan,0.0,0.25,nan,nan
vanilla,41,2,nan,nan,0.0,0.0,nan,nan
vanilla,41,3,nan,nan,0.0,0.14285714285714285,nan,nan
vanilla,41,4,nan,nan,0.0,0.0,nan,nan
vanilla,41,5,nan,nan,0.0,0.42857142857142855,nan,nan
vanilla,41,6,nan,nan,0.0,0.25,nan,nan
vanilla,41,7,nan,nan,0.0,0.10714285714285714,nan,nan
vanilla,41,8,nan,nan,0.0,0.10714285714285714,nan,nan
vanilla,41,9,nan,nan,0.0,0.4642857142857143,nan,nan
vanilla,41,10,0.0,0.5,0.0,0.17857142857142858,0.0,0.5
vanilla,41,11,nan,nan,0.0,0.4642857142857143,nan,nan
vanilla,41,12,nan,nan,0.0,0.25,nan,nan
vanilla,41,13,nan,nan,0.0,0.4642857142857143,nan,nan
vanilla,41,14,nan,nan,0.0,0.5,nan,nan
vanilla,41,15,nan,nan,0.0,0.6785714285714286,nan,nan
vanilla,41,16,nan,nan,0.0,0.39285714285714285,nan,nan
vanilla,41,17,nan,nan,0.0,0.21428571428571427,nan,nan
vanilla,41,18,nan,nan,0.03571428571428571,0.6071428571428571,nan,nan
vanilla,41,19,nan,nan,0.10714285714285714,0.14285714285714285,nan,nan
vanilla,41,20,0.16,0.5,0.03571428571428571,0.6071428571428571,0.16,0.5
vanilla,41,21,nan,nan,0.0,0.5714285714285714,nan,nan
vanilla,41,22,nan,nan,0.5,0.25,nan,nan
vanilla,41,23,nan,nan,0.21428571428571427,0.5714285714285714,nan,nan
vanilla,41,24,nan,nan,0.32142857142857145,0.25,nan,nan
vanilla,41,25,nan,nan,0.39285714285714285,0.2857142857142857,nan,nan
vanilla,41,26,nan,nan,0.5714285714285714,0.0,nan,nan
vanilla,41,27,nan,nan,0.07142857142857142,0.6428571428571429,nan,nan
vanilla,41,28,nan,nan,0.03571428571428571,0.2857142857142857,nan,nan
vanilla,41,29,nan,nan,0.35714285714285715,0.5357142857142857,nan,nan
vanilla,41,30,0.31,0.45,0.8214285714285714,0.0,0.31,0.45
vanilla,41,31,nan,nan,0.5,0.10714285714285714,nan,nan
vanilla,41,32,nan,nan,0.21428571428571427,0.5357142857142857,nan,nan
vanilla,41,33,nan,nan,0.75,0.14285714285714285,nan,nan
vanilla,41,34,nan,nan,0.4642857142857143,0.39285714285714285,nan,nan
vanilla,41,35,nan,nan,0.07142857142857142,0.42857142857142855,nan,nan
vanilla,41,36,nan,nan,0.7857142857142857,0.10714285714285714,nan,nan
vanilla,41,37,nan,nan,0.32142857142857145,0.2857142857142857,nan,nan
vanilla,41,38,nan,nan,0.5357142857142857,0.2857142857142857,nan,nan
vanilla,41,39,nan,nan,0.6071428571428571,0.2857142857142857,nan,nan
vanilla,41,40,0.36,0.45,0.39285714285714285,0.25,0.36,0.45
vanilla,41,41,nan,nan,0.5357142857142857,0.32142857142857145,nan,nan
vanilla,41,42,nan,nan,0.8214285714285714,0.0,nan,nan
vanilla,41,43,nan,nan,0.75,0.07142857142857142,nan,nan
vanilla,41,44,nan,nan,0.4642857142857143,0.14285714285714285,nan,nan
vanilla,41,45,nan,nan,0.35714285714285715,0.5,nan,nan
vanilla,41,46,nan,nan,0.5714285714285714,0.32142857142857145,nan,nan
vanilla,41,47,nan,nan,0.6428571428571429,0.17857142857142858,nan,nan
vanilla,41,48,nan,nan,0.7142857142857143,0.03571428571428571,nan,nan
vanilla,41,49,nan,nan,0.5357142857142857,0.39285714285714285,nan,nan
vanilla,41,50,0.56,0.31,0.75,0.21428571428571427,0.56,0.31
vanilla,41,51,nan,nan,0.5,0.35714285714285715,nan,nan
vanilla,41,52,nan,nan,0.5714285714285714,0.17857142857142858,nan,nan
vanilla,41,53,nan,nan,0.8928571428571429,0.07142857142857142,nan,nan
vanilla,41,54,nan,nan,0.6071428571428571,0.32142857142857145,nan,nan
vanilla,41,55,nan,nan,0.5357142857142857,0.32142857142857145,nan,nan
vanilla,41,56,nan,nan,0.75,0.25,nan,nan
vanilla,41,57,nan,nan,0.6785714285714286,0.2857142857142857,nan,nan
vanilla,41,58,nan,nan,0.7857142857142857,0.14285714285714285,nan,nan
vanilla,41,59,nan,nan,0.6428571428571429,0.2857142857142857,nan,nan
vanilla,41,60,0.47,0.53,0.8928571428571429,0.03571428571428571,0.47,0.53
vanilla,41,61,nan,nan,0.8928571428571429,0.03571428571428571,nan,nan
vanilla,41,62,nan,nan,0.6785714285714286,0.21428571428571427,nan,nan
vanilla,41,63,nan,nan,0.4642857142857143,0.42857142857142855,nan,nan
vanilla,41,64,nan,nan,0.8571428571428571,0.07142857142857142,nan,nan
vanilla,41,65,nan,nan,0.5714285714285714,0.35714285714285715,nan,nan
vanilla,41,66,nan,nan,0.7857142857142857,0.10714285714285714,nan,nan
vanilla,41,67,nan,nan,0.75,0.25,nan,nan
vanilla,41,68,nan,nan,0.75,0.25,nan,nan
vanilla,41,69,nan,nan,0.75,0.21428571428571427,nan,nan
vanilla,41,70,0.56,0.42,0.6785714285714286,0.21428571428571427,0.56,0.42
vanilla,41,71,nan,nan,0.5357142857142857,0.4642857142857143,nan,nan
vanilla,41,72,nan,nan,0.7857142857142857,0.17857142857142858,nan,nan
vanilla,41,73,nan,nan,0.75,0.14285714285714285,nan,nan
vanilla,41,74,nan,nan,0.8571428571428571,0.07142857142857142,nan,nan
vanilla,41,75,nan,nan,0.5714285714285714,0.35714285714285715,nan,nan
vanilla,41,76,nan,nan,0.6071428571428571,0.10714285714285714,nan,nan
vanilla,41,77,nan,nan,0.5357142857142857,0.32142857142857145,nan,nan
vanilla,41,78,nan,nan,0.9285714285714286,0.0,nan,nan
vanilla,41,79,nan,nan,0.8571428571428571,0.0,nan,nan
vanilla,41,80,0.67,0.22,0.9642857142857143,0.0,0.67,0.22
vanilla,41,81,nan,nan,0.7142857142857143,0.14285714285714285,nan,nan
vanilla,41,82,nan,nan,0.8928571428571429,0.0,nan,nan
vanilla,41,83,nan,nan,0.7857142857142857,0.10714285714285714,nan,nan
vanilla,41,84,nan,nan,0.5,0.35714285714285715,nan,nan
vanilla,41,85,nan,nan,0.8571428571428571,0.03571428571428571,nan,nan
vanilla,41,86,nan,nan,0.9285714285714286,0.03571428571428571,nan,nan
vanilla,41,87,nan,nan,0.75,0.17857142857142858,nan,nan
vanilla,41,88,nan,nan,0.5357142857142857,0.10714285714285714,nan,nan
vanilla,41,89,nan,nan,0.42857142857142855,0.03571428571428571,nan,nan
vanilla,41,90,0.06,0.0,0.4642857142857143,0.0,0.06,0.0
vanilla,41,91,nan,nan,0.10714285714285714,0.0,nan,nan
vanilla,41,92,nan,nan,0.07142857142857142,0.0,nan,nan
vanilla,41,93,nan,nan,0.0,0.0,nan,nan
vanilla,41,94,nan,nan,0.03571428571428571,0.0,nan,nan
vanilla,41,95,nan,nan,0.5357142857142857,0.0,nan,nan
vanilla,41,96,nan,nan,0.07142857142857142,0.0,nan,nan
vanilla,41,97,nan,nan,0.0,0.0,nan,nan
vanilla,41,98,nan,nan,0.0,0.0,nan,nan
vanilla,41,99,nan,nan,0.0,0.0,nan,nan
vanilla,41,100,0.0,0.0,0.0,0.0,0.0,0.0
vanilla,41,101,nan,nan,0.10714285714285714,0.0,nan,nan
vanilla,41,102,nan,nan,0.0,0.0,nan,nan
vanilla,41,103,nan,nan,0.25,0.0,nan,nan
vanilla,41,104,nan,nan,0.0,0.0,nan,nan
vanilla,41,105,nan,nan,0.14285714285714285,0.03571428571428571,nan,nan
vanilla,41,106,nan,nan,0.0,0.0,nan,nan
vanilla,41,107,nan,nan,0.0,0.0,nan,nan
vanilla,41,108,nan,nan,0.0,0.0,nan,nan
vanilla,41,109,nan,nan,0.0,0.0,nan,nan
vanilla,41,110,0.0,0.0,0.03571428571428571,0.0,0.0,0.0
vanilla,41,111,nan,nan,0.0,0.0,nan,nan
vanilla,41,112,nan,nan,0.0,0.0,nan,nan
vanilla,41,113,nan,nan,0.0,0.0,nan,nan
vanilla,41,114,nan,nan,0.0,0.0,nan,nan
vanilla,41,115,nan,nan,0.0,0.0,nan,nan
vanilla,41,116,nan,nan,0.0,0.0,nan,nan
vanilla,41,117,nan,nan,0.0,0.0,nan,nan
vanilla,41,118,nan,nan,0.0,0.0,nan,nan
vanilla,41,119,nan,nan,0.0,0.0,nan,nan
vanilla,41,120,0.0,0.0,0.0,0.0,0.0,0.0
vanilla,41,121,nan,nan,0.0,0.0,nan,nan
vanilla,41,122,nan,nan,0.0,0.0,nan,nan
vanilla,41,123,nan,nan,0.0,0.0,nan,nan
vanilla,41,124,nan,nan,0.0,0.0,nan,nan
vanilla,41,125,nan,nan,0.0,0.0,nan,nan
vanilla,41,126,nan,nan,0.0,0.0,nan,nan
vanilla,41,127,nan,nan,0.0,0.0,nan,nan
vanilla,41,128,nan,nan,0.0,0.0,nan,nan
vanilla,41,129,nan,nan,0.0,0.0,nan,nan
vanilla,41,130,0.03,0.0,0.0,0.0,0.03,0.0
vanilla,41,131,nan,nan,0.03571428571428571,0.0,nan,nan
vanilla,41,132,nan,nan,0.0,0.0,nan,nan
vanilla,41,133,nan,nan,0.21428571428571427,0.0,nan,nan
vanilla,41,134,nan,nan,0.0,0.0,nan,nan
vanilla,41,135,nan,nan,0.03571428571428571,0.0,nan,nan
vanilla,41,136,nan,nan,0.0,0.0,nan,nan
vanilla,41,137,nan,nan,0.0,0.0,nan,nan
vanilla,41,138,nan,nan,0.10714285714285714,0.0,nan,nan
vanilla,41,139,nan,nan,0.07142857142857142,0.0,nan,nan
routing,41,0,0.0,0.14285714285714285,0.0,0.14285714285714285,nan,nan
routing,41,1,0.0,0.25,0.0,0.25,nan,nan
routing,41,2,0.0,0.0,0.0,0.0,nan,nan
routing,41,3,0.0,0.17857142857142858,0.0,0.17857142857142858,nan,nan
routing,41,4,0.0,0.0,0.0,0.0,nan,nan
routing,41,5,0.0,0.39285714285714285,0.0,0.39285714285714285,nan,nan
routing,41,6,0.0,0.39285714285714285,0.0,0.39285714285714285,nan,nan
routing,41,7,0.14285714285714285,0.14285714285714285,0.14285714285714285,0.14285714285714285,nan,nan
routing,41,8,0.25,0.21428571428571427,0.25,0.21428571428571427,nan,nan
routing,41,9,0.0,0.39285714285714285,0.0,0.39285714285714285,nan,nan
routing,41,10,0.10714285714285714,0.21428571428571427,0.10714285714285714,0.21428571428571427,nan,nan
routing,41,11,0.2857142857142857,0.4642857142857143,0.2857142857142857,0.4642857142857143,nan,nan
routing,41,12,0.17857142857142858,0.25,0.17857142857142858,0.25,nan,nan
routing,41,13,0.21428571428571427,0.35714285714285715,0.21428571428571427,0.35714285714285715,nan,nan
routing,41,14,0.35714285714285715,0.42857142857142855,0.35714285714285715,0.42857142857142855,nan,nan
routing,41,15,0.10714285714285714,0.6071428571428571,0.10714285714285714,0.6071428571428571,nan,nan
routing,41,16,0.5,0.17857142857142858,0.5,0.17857142857142858,nan,nan
routing,41,17,0.39285714285714285,0.14285714285714285,0.39285714285714285,0.14285714285714285,nan,nan
routing,41,18,0.0,0.6071428571428571,0.0,0.6071428571428571,nan,nan
routing,41,19,0.32142857142857145,0.14285714285714285,0.32142857142857145,0.14285714285714285,nan,nan
routing,41,20,0.03571428571428571,0.5357142857142857,0.03571428571428571,0.5357142857142857,nan,nan
routing,41,21,0.14285714285714285,0.5,0.14285714285714285,0.5,nan,nan
routing,41,22,0.6071428571428571,0.25,0.6071428571428571,0.25,nan,nan
routing,41,23,0.39285714285714285,0.4642857142857143,0.39285714285714285,0.4642857142857143,nan,nan
routing,41,24,0.39285714285714285,0.17857142857142858,0.39285714285714285,0.17857142857142858,nan,nan
routing,41,25,0.42857142857142855,0.25,0.42857142857142855,0.25,nan,nan
routing,41,26,0.5,0.0,0.5,0.0,nan,nan
routing,41,27,0.25,0.42857142857142855,0.25,0.42857142857142855,nan,nan
routing,41,28,0.03571428571428571,0.21428571428571427,0.03571428571428571,0.21428571428571427,nan,nan
routing,41,29,0.35714285714285715,0.5357142857142857,0.35714285714285715,0.5357142857142857,nan,nan
routing,41,30,0.75,0.0,0.75,0.0,nan,nan
routing,41,31,0.5714285714285714,0.0,0.5714285714285714,0.0,nan,nan
routing,41,32,0.14285714285714285,0.35714285714285715,0.14285714285714285,0.35714285714285715,nan,nan
routing,41,33,0.6071428571428571,0.07142857142857142,0.6071428571428571,0.07142857142857142,nan,nan
routing,41,34,0.32142857142857145,0.2857142857142857,0.32142857142857145,0.2857142857142857,nan,nan
routing,41,35,0.17857142857142858,0.39285714285714285,0.17857142857142858,0.39285714285714285,nan,nan
routing,41,36,0.6428571428571429,0.10714285714285714,0.6428571428571429,0.10714285714285714,nan,nan
routing,41,37,0.17857142857142858,0.14285714285714285,0.17857142857142858,0.14285714285714285,nan,nan
routing,41,38,0.42857142857142855,0.21428571428571427,0.42857142857142855,0.21428571428571427,nan,nan
routing,41,39,0.6071428571428571,0.25,0.6071428571428571,0.25,nan,nan
routing,41,40,0.4642857142857143,0.25,0.4642857142857143,0.25,nan,nan
routing,41,41,0.5714285714285714,0.14285714285714285,0.5714285714285714,0.14285714285714285,nan,nan
routing,41,42,0.8214285714285714,0.0,0.8214285714285714,0.0,nan,nan
routing,41,43,0.5,0.0,0.5,0.0,nan,nan
routing,41,44,0.6071428571428571,0.03571428571428571,0.6071428571428571,0.03571428571428571,nan,nan
routing,41,45,0.5,0.14285714285714285,0.5,0.14285714285714285,nan,nan
routing,41,46,0.5,0.32142857142857145,0.5,0.32142857142857145,nan,nan
routing,41,47,0.5357142857142857,0.2857142857142857,0.5357142857142857,0.2857142857142857,nan,nan
routing,41,48,0.7142857142857143,0.0,0.7142857142857143,0.0,nan,nan
routing,41,49,0.35714285714285715,0.32142857142857145,0.35714285714285715,0.32142857142857145,nan,nan
routing,41,50,0.5357142857142857,0.14285714285714285,0.5357142857142857,0.14285714285714285,nan,nan
routing,41,51,0.35714285714285715,0.39285714285714285,0.35714285714285715,0.39285714285714285,nan,nan
routing,41,52,0.42857142857142855,0.14285714285714285,0.42857142857142855,0.14285714285714285,nan,nan
routing,41,53,0.4642857142857143,0.14285714285714285,0.4642857142857143,0.14285714285714285,nan,nan
routing,41,54,0.21428571428571427,0.42857142857142855,0.21428571428571427,0.42857142857142855,nan,nan
routing,41,55,0.42857142857142855,0.21428571428571427,0.42857142857142855,0.21428571428571427,nan,nan
routing,41,56,0.5714285714285714,0.21428571428571427,0.5714285714285714,0.21428571428571427,nan,nan
routing,41,57,0.5357142857142857,0.2857142857142857,0.5357142857142857,0.2857142857142857,nan,nan
routing,41,58,0.42857142857142855,0.14285714285714285,0.42857142857142855,0.14285714285714285,nan,nan
routing,41,59,0.5357142857142857,0.21428571428571427,0.5357142857142857,0.21428571428571427,nan,nan
routing2,41,0,0.0,0.38,0.0,0.14285714285714285,0.0,0.38
routing2,41,1,nan,nan,0.0,0.21428571428571427,nan,nan
routing2,41,2,nan,nan,0.0,0.0,nan,nan
routing2,41,3,nan,nan,0.0,0.17857142857142858,nan,nan
routing2,41,4,nan,nan,0.0,0.0,nan,nan
routing2,41,5,nan,nan,0.0,0.4642857142857143,nan,nan
routing2,41,6,nan,nan,0.0,0.25,nan,nan
routing2,41,7,nan,nan,0.0,0.07142857142857142,nan,nan
routing2,41,8,nan,nan,0.0,0.25,nan,nan
routing2,41,9,nan,nan,0.0,0.4642857142857143,nan,nan
routing2,41,10,0.0,0.45,0.0,0.32142857142857145,0.0,0.45
routing2,41,11,nan,nan,0.0,0.4642857142857143,nan,nan
routing2,41,12,nan,nan,0.0,0.25,nan,nan
routing2,41,13,nan,nan,0.0,0.39285714285714285,nan,nan
routing2,41,14,nan,nan,0.0,0.5714285714285714,nan,nan
routing2,41,15,nan,nan,0.07142857142857142,0.75,nan,nan
routing2,41,16,nan,nan,0.2857142857142857,0.39285714285714285,nan,nan
routing2,41,17,nan,nan,0.21428571428571427,0.21428571428571427,nan,nan
routing2,41,18,nan,nan,0.0,0.5357142857142857,nan,nan
routing2,41,19,nan,nan,0.32142857142857145,0.14285714285714285,nan,nan
routing2,41,20,0.0,0.62,0.0,0.5357142857142857,0.0,0.62
routing2,41,21,nan,nan,0.0,0.6428571428571429,nan,nan
routing2,41,22,nan,nan,0.5,0.25,nan,nan
routing2,41,23,nan,nan,0.32142857142857145,0.4642857142857143,nan,nan
routing2,41,24,nan,nan,0.21428571428571427,0.2857142857142857,nan,nan
routing2,41,25,nan,nan,0.42857142857142855,0.25,nan,nan
routing2,41,26,nan,nan,0.5,0.03571428571428571,nan,nan
routing2,41,27,nan,nan,0.17857142857142858,0.5714285714285714,nan,nan
routing2,41,28,nan,nan,0.10714285714285714,0.17857142857142858,nan,nan
routing2,41,29,nan,nan,0.35714285714285715,0.4642857142857143,nan,nan
routing2,41,30,0.0,0.62,0.75,0.0,0.0,0.62
routing2,41,31,nan,nan,0.75,0.10714285714285714,nan,nan
routing2,41,32,nan,nan,0.21428571428571427,0.5714285714285714,nan,nan
routing2,41,33,nan,nan,0.75,0.17857142857142858,nan,nan
routing2,41,34,nan,nan,0.4642857142857143,0.21428571428571427,nan,nan
routing2,41,35,nan,nan,0.17857142857142858,0.4642857142857143,nan,nan
routing2,41,36,nan,nan,0.6428571428571429,0.10714285714285714,nan,nan
routing2,41,37,nan,nan,0.35714285714285715,0.42857142857142855,nan,nan
routing2,41,38,nan,nan,0.32142857142857145,0.4642857142857143,nan,nan
routing2,41,39,nan,nan,0.6071428571428571,0.35714285714285715,nan,nan
routing2,41,40,0.0,0.61,0.6785714285714286,0.32142857142857145,0.0,0.61
routing2,41,41,nan,nan,0.6428571428571429,0.25,nan,nan
routing2,41,42,nan,nan,0.75,0.14285714285714285,nan,nan
routing2,41,43,nan,nan,0.7857142857142857,0.10714285714285714,nan,nan
routing2,41,44,nan,nan,0.6785714285714286,0.21428571428571427,nan,nan
routing2,41,45,nan,nan,0.39285714285714285,0.5357142857142857,nan,nan
routing2,41,46,nan,nan,0.5357142857142857,0.4642857142857143,nan,nan
routing2,41,47,nan,nan,0.4642857142857143,0.5,nan,nan
routing2,41,48,nan,nan,0.8571428571428571,0.07142857142857142,nan,nan
routing2,41,49,nan,nan,0.2857142857142857,0.6785714285714286,nan,nan
routing2,41,50,0.0,0.62,0.5,0.42857142857142855,0.0,0.62
routing2,41,51,nan,nan,0.4642857142857143,0.5357142857142857,nan,nan
routing2,41,52,nan,nan,0.6428571428571429,0.32142857142857145,nan,nan
routing2,41,53,nan,nan,0.8571428571428571,0.07142857142857142,nan,nan
routing2,41,54,nan,nan,0.39285714285714285,0.4642857142857143,nan,nan
routing2,41,55,nan,nan,0.5,0.42857142857142855,nan,nan
routing2,41,56,nan,nan,0.7142857142857143,0.2857142857142857,nan,nan
routing2,41,57,nan,nan,0.39285714285714285,0.5714285714285714,nan,nan
routing2,41,58,nan,nan,0.6785714285714286,0.32142857142857145,nan,nan
routing2,41,59,nan,nan,0.5714285714285714,0.39285714285714285,nan,nan
routing2,41,60,0.0,0.62,0.75,0.14285714285714285,0.0,0.62
routing2,41,61,nan,nan,0.7857142857142857,0.21428571428571427,nan,nan
routing2,41,62,nan,nan,0.32142857142857145,0.6428571428571429,nan,nan
routing2,41,63,nan,nan,0.2857142857142857,0.5714285714285714,nan,nan
routing2,41,64,nan,nan,0.7857142857142857,0.21428571428571427,nan,nan
routing2,41,65,nan,nan,0.6785714285714286,0.32142857142857145,nan,nan
routing2,41,66,nan,nan,0.75,0.21428571428571427,nan,nan
routing2,41,67,nan,nan,0.6428571428571429,0.2857142857142857,nan,nan
routing2,41,68,nan,nan,0.7857142857142857,0.14285714285714285,nan,nan
routing2,41,69,nan,nan,0.75,0.25,nan,nan
routing2,41,70,0.0,0.62,0.6071428571428571,0.35714285714285715,0.0,0.62
routing2,41,71,nan,nan,0.6428571428571429,0.35714285714285715,nan,nan
routing2,41,72,nan,nan,0.7142857142857143,0.25,nan,nan
routing2,41,73,nan,nan,0.7857142857142857,0.21428571428571427,nan,nan
routing2,41,74,nan,nan,0.9285714285714286,0.03571428571428571,nan,nan
routing2,41,75,nan,nan,0.21428571428571427,0.75,nan,nan
routing2,41,76,nan,nan,0.8214285714285714,0.14285714285714285,nan,nan
routing2,41,77,nan,nan,0.5357142857142857,0.39285714285714285,nan,nan
routing2,41,78,nan,nan,0.75,0.21428571428571427,nan,nan
routing2,41,79,nan,nan,0.5714285714285714,0.42857142857142855,nan,nan
routing2,41,80,0.0,0.59,0.8214285714285714,0.14285714285714285,0.0,0.59
routing2,41,81,nan,nan,0.35714285714285715,0.6071428571428571,nan,nan
routing2,41,82,nan,nan,1.0,0.0,nan,nan
routing2,41,83,nan,nan,0.6071428571428571,0.32142857142857145,nan,nan
routing2,41,84,nan,nan,0.10714285714285714,0.8928571428571429,nan,nan
routing2,41,85,nan,nan,0.7857142857142857,0.17857142857142858,nan,nan
routing2,41,86,nan,nan,0.8214285714285714,0.14285714285714285,nan,nan
routing2,41,87,nan,nan,0.14285714285714285,0.8571428571428571,nan,nan
routing2,41,88,nan,nan,0.32142857142857145,0.6785714285714286,nan,nan
routing2,41,89,nan,nan,0.6071428571428571,0.35714285714285715,nan,nan
routing2,41,90,0.0,0.62,0.5357142857142857,0.4642857142857143,0.0,0.62
routing2,41,91,nan,nan,0.42857142857142855,0.5357142857142857,nan,nan
routing2,41,92,nan,nan,0.35714285714285715,0.6428571428571429,nan,nan
routing2,41,93,nan,nan,0.5357142857142857,0.4642857142857143,nan,nan
routing2,41,94,nan,nan,0.75,0.25,nan,nan
routing2,41,95,nan,nan,0.5714285714285714,0.39285714285714285,nan,nan
routing2,41,96,nan,nan,0.75,0.25,nan,nan
routing2,41,97,nan,nan,0.5,0.5,nan,nan
routing2,41,98,nan,nan,0.8214285714285714,0.17857142857142858,nan,nan
routing2,41,99,nan,nan,0.42857142857142855,0.5714285714285714,nan,nan
routing2,41,100,0.0,0.62,0.6071428571428571,0.39285714285714285,0.0,0.62
routing2,41,101,nan,nan,0.21428571428571427,0.7142857142857143,nan,nan
routing2,41,102,nan,nan,0.5714285714285714,0.42857142857142855,nan,nan
routing2,41,103,nan,nan,1.0,0.0,nan,nan
routing2,41,104,nan,nan,0.39285714285714285,0.5714285714285714,nan,nan
routing2,41,105,nan,nan,0.6428571428571429,0.32142857142857145,nan,nan
routing2,41,106,nan,nan,0.8214285714285714,0.17857142857142858,nan,nan
routing2,41,107,nan,nan,0.6071428571428571,0.39285714285714285,nan,nan
routing2,41,108,nan,nan,0.7142857142857143,0.2857142857142857,nan,nan
routing2,41,109,nan,nan,0.8571428571428571,0.14285714285714285,nan,nan
routing2,41,110,0.0,0.62,0.4642857142857143,0.5357142857142857,0.0,0.62
routing2,41,111,nan,nan,0.4642857142857143,0.4642857142857143,nan,nan
routing2,41,112,nan,nan,0.2857142857142857,0.7142857142857143,nan,nan
routing2,41,113,nan,nan,0.75,0.25,nan,nan
routing2,41,114,nan,nan,0.4642857142857143,0.5357142857142857,nan,nan
routing2,41,115,nan,nan,0.7857142857142857,0.21428571428571427,nan,nan
routing2,41,116,nan,nan,0.6428571428571429,0.35714285714285715,nan,nan
routing2,41,117,nan,nan,0.5714285714285714,0.42857142857142855,nan,nan
routing2,41,118,nan,nan,0.2857142857142857,0.6785714285714286,nan,nan
routing2,41,119,nan,nan,0.5,0.5,nan,nan
routing2,41,120,0.0,0.62,0.8214285714285714,0.17857142857142858,0.0,0.62
routing2,41,121,nan,nan,0.75,0.21428571428571427,nan,nan
routing2,41,122,nan,nan,0.39285714285714285,0.6071428571428571,nan,nan
routing2,41,123,nan,nan,0.75,0.21428571428571427,nan,nan
routing2,41,124,nan,nan,0.32142857142857145,0.6785714285714286,nan,nan
routing2,41,125,nan,nan,0.75,0.25,nan,nan
routing2,41,126,nan,nan,0.75,0.25,nan,nan
routing2,41,127,nan,nan,0.4642857142857143,0.5357142857142857,nan,nan
routing2,41,128,nan,nan,0.6428571428571429,0.35714285714285715,nan,nan
routing2,41,129,nan,nan,0.6785714285714286,0.32142857142857145,nan,nan
routing2,41,130,0.0,0.62,0.7142857142857143,0.2857142857142857,0.0,0.62
routing2,41,131,nan,nan,0.32142857142857145,0.6785714285714286,nan,nan
routing2,41,132,nan,nan,0.25,0.7142857142857143,nan,nan
routing2,41,133,nan,nan,0.5357142857142857,0.42857142857142855,nan,nan
routing2,41,134,nan,nan,0.2857142857142857,0.7142857142857143,nan,nan
routing2,41,135,nan,nan,0.5357142857142857,0.4642857142857143,nan,nan
routing2,41,136,nan,nan,0.5357142857142857,0.4642857142857143,nan,nan
routing2,41,137,nan,nan,0.4642857142857143,0.5,nan,nan
routing2,41,138,nan,nan,0.5714285714285714,0.42857142857142855,nan,nan
routing2,41,139,nan,nan,0.39285714285714285,0.6071428571428571,nan,nan
routing2,41,140,0.0,0.62,0.75,0.25,0.0,0.62
routing2,41,141,nan,nan,0.75,0.21428571428571427,nan,nan
routing2,41,142,nan,nan,0.75,0.25,nan,nan
routing2,41,143,nan,nan,0.5714285714285714,0.35714285714285715,nan,nan
routing2,41,144,nan,nan,0.6428571428571429,0.35714285714285715,nan,nan
routing2,41,145,nan,nan,0.5714285714285714,0.42857142857142855,nan,nan
routing2,41,146,nan,nan,0.6785714285714286,0.32142857142857145,nan,nan
routing2,41,147,nan,nan,0.6071428571428571,0.39285714285714285,nan,nan
routing2,41,148,nan,nan,0.5714285714285714,0.35714285714285715,nan,nan
routing2,41,149,nan,nan,0.5,0.5,nan,nan
routing2,41,150,0.0,0.62,0.75,0.25,0.0,0.62
routing2,41,151,nan,nan,0.39285714285714285,0.6071428571428571,nan,nan
routing2,41,152,nan,nan,0.5714285714285714,0.42857142857142855,nan,nan
routing2,41,153,nan,nan,0.39285714285714285,0.6071428571428571,nan,nan
routing2,41,154,nan,nan,0.6785714285714286,0.32142857142857145,nan,nan
routing2,41,155,nan,nan,0.9285714285714286,0.07142857142857142,nan,nan
routing2,41,156,nan,nan,0.2857142857142857,0.7142857142857143,nan,nan
routing2,41,157,nan,nan,0.8214285714285714,0.17857142857142858,nan,nan
routing2,41,158,nan,nan,0.4642857142857143,0.5,nan,nan
routing2,41,159,nan,nan,0.32142857142857145,0.6785714285714286,nan,nan
routing2,41,160,0.0,0.62,0.21428571428571427,0.75,0.0,0.62
routing2,41,161,nan,nan,0.75,0.25,nan,nan
routing2,41,162,nan,nan,0.75,0.25,nan,nan
routing2,41,163,nan,nan,0.9285714285714286,0.03571428571428571,nan,nan
routing2,41,164,nan,nan,0.4642857142857143,0.5357142857142857,nan,nan
routing2,41,165,nan,nan,0.6785714285714286,0.32142857142857145,nan,nan
routing2,41,166,nan,nan,0.7142857142857143,0.25,nan,nan
routing2,41,167,nan,nan,0.6785714285714286,0.32142857142857145,nan,nan
routing2,41,168,nan,nan,0.6071428571428571,0.39285714285714285,nan,nan
routing2,41,169,nan,nan,0.5714285714285714,0.42857142857142855,nan,nan
routing2,41,170,0.0,0.62,0.7142857142857143,0.25,0.0,0.62
routing2,41,171,nan,nan,0.8571428571428571,0.14285714285714285,nan,nan
routing2,41,172,nan,nan,0.6785714285714286,0.2857142857142857,nan,nan
routing2,41,173,nan,nan,0.75,0.25,nan,nan
routing2,41,174,nan,nan,0.8928571428571429,0.10714285714285714,nan,nan
routing2,41,175,nan,nan,0.6428571428571429,0.32142857142857145,nan,nan
routing2,41,176,nan,nan,0.6071428571428571,0.39285714285714285,nan,nan
routing2,41,177,nan,nan,0.6428571428571429,0.35714285714285715,nan,nan
routing2,41,178,nan,nan,0.6785714285714286,0.32142857142857145,nan,nan
routing2,41,179,nan,nan,0.7142857142857143,0.25,nan,nan
routing2,41,180,0.0,0.62,0.42857142857142855,0.5714285714285714,0.0,0.62
routing2,41,181,nan,nan,0.8571428571428571,0.14285714285714285,nan,nan
routing2,41,182,nan,nan,0.32142857142857145,0.6785714285714286,nan,nan
routing2,41,183,nan,nan,0.35714285714285715,0.6071428571428571,nan,nan
routing2,41,184,nan,nan,0.6071428571428571,0.39285714285714285,nan,nan
routing2,41,185,nan,nan,0.7857142857142857,0.21428571428571427,nan,nan
routing2,41,186,nan,nan,0.8214285714285714,0.17857142857142858,nan,nan
routing2,41,187,nan,nan,0.9642857142857143,0.0,nan,nan
routing2,41,188,nan,nan,0.8928571428571429,0.10714285714285714,nan,nan
routing2,41,189,nan,nan,0.35714285714285715,0.6428571428571429,nan,nan
routing2,41,190,0.0,0.62,0.6428571428571429,0.35714285714285715,0.0,0.62
routing2,41,191,nan,nan,0.75,0.25,nan,nan
routing2,41,192,nan,nan,0.6428571428571429,0.35714285714285715,nan,nan
routing2,41,193,nan,nan,0.8571428571428571,0.14285714285714285,nan,nan
routing2,41,194,nan,nan,0.8571428571428571,0.14285714285714285,nan,nan
routing2,41,195,nan,nan,0.9285714285714286,0.07142857142857142,nan,nan
routing2,41,196,nan,nan,0.8214285714285714,0.17857142857142858,nan,nan
routing2,41,197,nan,nan,0.5,0.5,nan,nan
routing2,41,198,nan,nan,0.32142857142857145,0.6785714285714286,nan,nan
routing2,41,199,0.0,0.61,0.32142857142857145,0.6428571428571429,0.0,0.61
1 arm seed step hack_s gt_s hack_train solve_train hk_dep slv_dep
2 static erasure 41 0 0.0 0.14285714285714285 0.0 0.14285714285714285 nan nan
3 static erasure 41 1 0.0 0.25 0.0 0.25 nan nan
4 static erasure 41 2 0.0 0.03571428571428571 0.0 0.03571428571428571 nan nan
5 static erasure 41 3 0.0 0.17857142857142858 0.0 0.17857142857142858 nan nan
6 static erasure 41 4 0.0 0.0 0.0 0.0 nan nan
7 static erasure 41 5 0.0 0.4642857142857143 0.0 0.4642857142857143 nan nan
8 static erasure 41 6 0.0 0.32142857142857145 0.0 0.32142857142857145 nan nan
9 static erasure 41 7 0.0 0.39285714285714285 0.0 0.39285714285714285 nan nan
10 static erasure 41 8 0.0 0.17857142857142858 0.0 0.17857142857142858 nan nan
11 static erasure 41 9 0.0 0.5 0.0 0.5 nan nan
12 static erasure 41 10 0.0 0.21428571428571427 0.0 0.21428571428571427 nan nan
13 static erasure 41 11 0.0 0.42857142857142855 0.0 0.42857142857142855 nan nan
14 static erasure 41 12 0.0 0.2857142857142857 0.0 0.2857142857142857 nan nan
15 static erasure 41 13 0.0 0.4642857142857143 0.0 0.4642857142857143 nan nan
16 static erasure 41 14 0.03571428571428571 0.42857142857142855 0.03571428571428571 0.42857142857142855 nan nan
17 static erasure 41 15 0.07142857142857142 0.6785714285714286 0.07142857142857142 0.6785714285714286 nan nan
18 static erasure 41 16 0.21428571428571427 0.25 0.21428571428571427 0.25 nan nan
19 static erasure 41 17 0.25 0.10714285714285714 0.25 0.10714285714285714 nan nan
20 static erasure 41 18 0.0 0.6428571428571429 0.0 0.6428571428571429 nan nan
21 static erasure 41 19 0.25 0.10714285714285714 0.25 0.10714285714285714 nan nan
22 static erasure 41 20 0.07142857142857142 0.5 0.07142857142857142 0.5 nan nan
23 static erasure 41 21 0.0 0.6071428571428571 0.0 0.6071428571428571 nan nan
24 static erasure 41 22 0.4642857142857143 0.25 0.4642857142857143 0.25 nan nan
25 static erasure 41 23 0.2857142857142857 0.5 0.2857142857142857 0.5 nan nan
26 static erasure 41 24 0.39285714285714285 0.21428571428571427 0.39285714285714285 0.21428571428571427 nan nan
27 static erasure 41 25 0.5 0.21428571428571427 0.5 0.21428571428571427 nan nan
28 static erasure 41 26 0.5 0.03571428571428571 0.5 0.03571428571428571 nan nan
29 static erasure 41 27 0.07142857142857142 0.6428571428571429 0.07142857142857142 0.6428571428571429 nan nan
30 static erasure 41 28 0.03571428571428571 0.21428571428571427 0.03571428571428571 0.21428571428571427 nan nan
31 static erasure 41 29 0.39285714285714285 0.5357142857142857 0.39285714285714285 0.5357142857142857 nan nan
32 static erasure 41 30 0.7857142857142857 0.0 0.7857142857142857 0.0 nan nan
33 static erasure 41 31 0.6785714285714286 0.03571428571428571 0.6785714285714286 0.03571428571428571 nan nan
34 static erasure 41 32 0.03571428571428571 0.6785714285714286 0.03571428571428571 0.6785714285714286 nan nan
35 static erasure 41 33 0.6428571428571429 0.2857142857142857 0.6428571428571429 0.2857142857142857 nan nan
36 static erasure 41 34 0.21428571428571427 0.5 0.21428571428571427 0.5 nan nan
37 static erasure 41 35 0.10714285714285714 0.4642857142857143 0.10714285714285714 0.4642857142857143 nan nan
38 static erasure 41 36 0.6071428571428571 0.17857142857142858 0.6071428571428571 0.17857142857142858 nan nan
39 static erasure 41 37 0.32142857142857145 0.25 0.32142857142857145 0.25 nan nan
40 static erasure 41 38 0.21428571428571427 0.5714285714285714 0.21428571428571427 0.5714285714285714 nan nan
41 static erasure 41 39 0.5714285714285714 0.35714285714285715 0.5714285714285714 0.35714285714285715 nan nan
42 static erasure 41 40 0.14285714285714285 0.35714285714285715 0.14285714285714285 0.35714285714285715 nan nan
43 static erasure 41 41 0.4642857142857143 0.21428571428571427 0.4642857142857143 0.21428571428571427 nan nan
44 static erasure 41 42 0.6785714285714286 0.0 0.6785714285714286 0.0 nan nan
45 static erasure 41 43 0.5 0.03571428571428571 0.5 0.03571428571428571 nan nan
46 static erasure 41 44 0.14285714285714285 0.21428571428571427 0.14285714285714285 0.21428571428571427 nan nan
47 static erasure 41 45 0.32142857142857145 0.6428571428571429 0.32142857142857145 0.6428571428571429 nan nan
48 static erasure 41 46 0.14285714285714285 0.5357142857142857 0.14285714285714285 0.5357142857142857 nan nan
49 static erasure 41 47 0.35714285714285715 0.42857142857142855 0.35714285714285715 0.42857142857142855 nan nan
50 static erasure 41 48 0.42857142857142855 0.03571428571428571 0.42857142857142855 0.03571428571428571 nan nan
51 static erasure 41 49 0.2857142857142857 0.4642857142857143 0.2857142857142857 0.4642857142857143 nan nan
52 static erasure 41 50 0.32142857142857145 0.39285714285714285 0.32142857142857145 0.39285714285714285 nan nan
53 static erasure 41 51 0.25 0.6428571428571429 0.25 0.6428571428571429 nan nan
54 static erasure 41 52 0.17857142857142858 0.25 0.17857142857142858 0.25 nan nan
55 static erasure 41 53 0.6071428571428571 0.10714285714285714 0.6071428571428571 0.10714285714285714 nan nan
56 static erasure 41 54 0.03571428571428571 0.5357142857142857 0.03571428571428571 0.5357142857142857 nan nan
57 static erasure 41 55 0.14285714285714285 0.4642857142857143 0.14285714285714285 0.4642857142857143 nan nan
58 static erasure 41 56 0.4642857142857143 0.35714285714285715 0.4642857142857143 0.35714285714285715 nan nan
59 static erasure 41 57 0.39285714285714285 0.39285714285714285 0.39285714285714285 0.39285714285714285 nan nan
60 static erasure 41 58 0.5 0.35714285714285715 0.5 0.35714285714285715 nan nan
61 static erasure 41 59 0.5 0.42857142857142855 0.5 0.42857142857142855 nan nan
62 online erasure 41 0 0.0 0.14285714285714285 0.0 0.14285714285714285 nan nan
63 online erasure 41 1 0.0 0.25 0.0 0.25 nan nan
64 online erasure 41 2 0.0 0.0 0.0 0.0 nan nan
65 online erasure 41 3 0.0 0.10714285714285714 0.0 0.10714285714285714 nan nan
66 online erasure 41 4 0.0 0.0 0.0 0.0 nan nan
67 online erasure 41 5 0.0 0.4642857142857143 0.0 0.4642857142857143 nan nan
68 online erasure 41 6 0.0 0.2857142857142857 0.0 0.2857142857142857 nan nan
69 online erasure 41 7 0.0 0.25 0.0 0.25 nan nan
70 online erasure 41 8 0.0 0.14285714285714285 0.0 0.14285714285714285 nan nan
71 online erasure 41 9 0.0 0.35714285714285715 0.0 0.35714285714285715 nan nan
72 online erasure 41 10 0.0 0.2857142857142857 0.0 0.2857142857142857 nan nan
73 online erasure 41 11 0.0 0.39285714285714285 0.0 0.39285714285714285 nan nan
74 online erasure 41 12 0.0 0.25 0.0 0.25 nan nan
75 online erasure 41 13 0.0 0.42857142857142855 0.0 0.42857142857142855 nan nan
76 online erasure 41 14 0.14285714285714285 0.39285714285714285 0.14285714285714285 0.39285714285714285 nan nan
77 online erasure 41 15 0.07142857142857142 0.6428571428571429 0.07142857142857142 0.6428571428571429 nan nan
78 online erasure 41 16 0.21428571428571427 0.35714285714285715 0.21428571428571427 0.35714285714285715 nan nan
79 online erasure 41 17 0.2857142857142857 0.17857142857142858 0.2857142857142857 0.17857142857142858 nan nan
80 online erasure 41 18 0.0 0.6071428571428571 0.0 0.6071428571428571 nan nan
81 online erasure 41 19 0.35714285714285715 0.14285714285714285 0.35714285714285715 0.14285714285714285 nan nan
82 online erasure 41 20 0.0 0.5 0.0 0.5 nan nan
83 online erasure 41 21 0.07142857142857142 0.5714285714285714 0.07142857142857142 0.5714285714285714 nan nan
84 online erasure 41 22 0.4642857142857143 0.21428571428571427 0.4642857142857143 0.21428571428571427 nan nan
85 online erasure 41 23 0.35714285714285715 0.4642857142857143 0.35714285714285715 0.4642857142857143 nan nan
86 online erasure 41 24 0.4642857142857143 0.14285714285714285 0.4642857142857143 0.14285714285714285 nan nan
87 online erasure 41 25 0.39285714285714285 0.2857142857142857 0.39285714285714285 0.2857142857142857 nan nan
88 online erasure 41 26 0.5 0.03571428571428571 0.5 0.03571428571428571 nan nan
89 online erasure 41 27 0.03571428571428571 0.6071428571428571 0.03571428571428571 0.6071428571428571 nan nan
90 online erasure 41 28 0.03571428571428571 0.17857142857142858 0.03571428571428571 0.17857142857142858 nan nan
91 online erasure 41 29 0.42857142857142855 0.4642857142857143 0.42857142857142855 0.4642857142857143 nan nan
92 online erasure 41 30 0.8214285714285714 0.0 0.8214285714285714 0.0 nan nan
93 online erasure 41 31 0.5357142857142857 0.07142857142857142 0.5357142857142857 0.07142857142857142 nan nan
94 online erasure 41 32 0.14285714285714285 0.6785714285714286 0.14285714285714285 0.6785714285714286 nan nan
95 online erasure 41 33 0.6071428571428571 0.17857142857142858 0.6071428571428571 0.17857142857142858 nan nan
96 online erasure 41 34 0.2857142857142857 0.32142857142857145 0.2857142857142857 0.32142857142857145 nan nan
97 online erasure 41 35 0.0 0.4642857142857143 0.0 0.4642857142857143 nan nan
98 online erasure 41 36 0.5357142857142857 0.2857142857142857 0.5357142857142857 0.2857142857142857 nan nan
99 online erasure 41 37 0.32142857142857145 0.21428571428571427 0.32142857142857145 0.21428571428571427 nan nan
100 online erasure 41 38 0.39285714285714285 0.5 0.39285714285714285 0.5 nan nan
101 online erasure 41 39 0.6071428571428571 0.32142857142857145 0.6071428571428571 0.32142857142857145 nan nan
102 online erasure 41 40 0.32142857142857145 0.39285714285714285 0.32142857142857145 0.39285714285714285 nan nan
103 online erasure 41 41 0.6071428571428571 0.32142857142857145 0.6071428571428571 0.32142857142857145 nan nan
104 online erasure 41 42 0.7857142857142857 0.03571428571428571 0.7857142857142857 0.03571428571428571 nan nan
105 online erasure 41 43 0.6785714285714286 0.17857142857142858 0.6785714285714286 0.17857142857142858 nan nan
106 online erasure 41 44 0.39285714285714285 0.17857142857142858 0.39285714285714285 0.17857142857142858 nan nan
107 online erasure 41 45 0.32142857142857145 0.4642857142857143 0.32142857142857145 0.4642857142857143 nan nan
108 online erasure 41 46 0.17857142857142858 0.4642857142857143 0.17857142857142858 0.4642857142857143 nan nan
109 online erasure 41 47 0.5357142857142857 0.4642857142857143 0.5357142857142857 0.4642857142857143 nan nan
110 online erasure 41 48 0.6071428571428571 0.0 0.6071428571428571 0.0 nan nan
111 online erasure 41 49 0.14285714285714285 0.6428571428571429 0.14285714285714285 0.6428571428571429 nan nan
112 online erasure 41 50 0.35714285714285715 0.42857142857142855 0.35714285714285715 0.42857142857142855 nan nan
113 online erasure 41 51 0.25 0.5357142857142857 0.25 0.5357142857142857 nan nan
114 online erasure 41 52 0.32142857142857145 0.2857142857142857 0.32142857142857145 0.2857142857142857 nan nan
115 online erasure 41 53 0.5 0.21428571428571427 0.5 0.21428571428571427 nan nan
116 online erasure 41 54 0.07142857142857142 0.75 0.07142857142857142 0.75 nan nan
117 online erasure 41 55 0.39285714285714285 0.5357142857142857 0.39285714285714285 0.5357142857142857 nan nan
118 online erasure 41 56 0.6071428571428571 0.32142857142857145 0.6071428571428571 0.32142857142857145 nan nan
119 online erasure 41 57 0.2857142857142857 0.5 0.2857142857142857 0.5 nan nan
120 online erasure 41 58 0.5714285714285714 0.25 0.5714285714285714 0.25 nan nan
121 online erasure 41 59 0.4642857142857143 0.35714285714285715 0.4642857142857143 0.35714285714285715 nan nan
122 vanilla 41 0 0.0 0.38 0.0 0.14285714285714285 0.0 0.38
123 vanilla 41 1 nan nan 0.0 0.25 nan nan
124 vanilla 41 2 nan nan 0.0 0.0 nan nan
125 vanilla 41 3 nan nan 0.0 0.14285714285714285 nan nan
126 vanilla 41 4 nan nan 0.0 0.0 nan nan
127 vanilla 41 5 nan nan 0.0 0.42857142857142855 nan nan
128 vanilla 41 6 nan nan 0.0 0.25 nan nan
129 vanilla 41 7 nan nan 0.0 0.10714285714285714 nan nan
130 vanilla 41 8 nan nan 0.0 0.10714285714285714 nan nan
131 vanilla 41 9 nan nan 0.0 0.4642857142857143 nan nan
132 vanilla 41 10 0.0 0.5 0.0 0.17857142857142858 0.0 0.5
133 vanilla 41 11 nan nan 0.0 0.4642857142857143 nan nan
134 vanilla 41 12 nan nan 0.0 0.25 nan nan
135 vanilla 41 13 nan nan 0.0 0.4642857142857143 nan nan
136 vanilla 41 14 nan nan 0.0 0.5 nan nan
137 vanilla 41 15 nan nan 0.0 0.6785714285714286 nan nan
138 vanilla 41 16 nan nan 0.0 0.39285714285714285 nan nan
139 vanilla 41 17 nan nan 0.0 0.21428571428571427 nan nan
140 vanilla 41 18 nan nan 0.03571428571428571 0.6071428571428571 nan nan
141 vanilla 41 19 nan nan 0.10714285714285714 0.14285714285714285 nan nan
142 vanilla 41 20 0.16 0.5 0.03571428571428571 0.6071428571428571 0.16 0.5
143 vanilla 41 21 nan nan 0.0 0.5714285714285714 nan nan
144 vanilla 41 22 nan nan 0.5 0.25 nan nan
145 vanilla 41 23 nan nan 0.21428571428571427 0.5714285714285714 nan nan
146 vanilla 41 24 nan nan 0.32142857142857145 0.25 nan nan
147 vanilla 41 25 nan nan 0.39285714285714285 0.2857142857142857 nan nan
148 vanilla 41 26 nan nan 0.5714285714285714 0.0 nan nan
149 vanilla 41 27 nan nan 0.07142857142857142 0.6428571428571429 nan nan
150 vanilla 41 28 nan nan 0.03571428571428571 0.2857142857142857 nan nan
151 vanilla 41 29 nan nan 0.35714285714285715 0.5357142857142857 nan nan
152 vanilla 41 30 0.31 0.45 0.8214285714285714 0.0 0.31 0.45
153 vanilla 41 31 nan nan 0.5 0.10714285714285714 nan nan
154 vanilla 41 32 nan nan 0.21428571428571427 0.5357142857142857 nan nan
155 vanilla 41 33 nan nan 0.75 0.14285714285714285 nan nan
156 vanilla 41 34 nan nan 0.4642857142857143 0.39285714285714285 nan nan
157 vanilla 41 35 nan nan 0.07142857142857142 0.42857142857142855 nan nan
158 vanilla 41 36 nan nan 0.7857142857142857 0.10714285714285714 nan nan
159 vanilla 41 37 nan nan 0.32142857142857145 0.2857142857142857 nan nan
160 vanilla 41 38 nan nan 0.5357142857142857 0.2857142857142857 nan nan
161 vanilla 41 39 nan nan 0.6071428571428571 0.2857142857142857 nan nan
162 vanilla 41 40 0.36 0.45 0.39285714285714285 0.25 0.36 0.45
163 vanilla 41 41 nan nan 0.5357142857142857 0.32142857142857145 nan nan
164 vanilla 41 42 nan nan 0.8214285714285714 0.0 nan nan
165 vanilla 41 43 nan nan 0.75 0.07142857142857142 nan nan
166 vanilla 41 44 nan nan 0.4642857142857143 0.14285714285714285 nan nan
167 vanilla 41 45 nan nan 0.35714285714285715 0.5 nan nan
168 vanilla 41 46 nan nan 0.5714285714285714 0.32142857142857145 nan nan
169 vanilla 41 47 nan nan 0.6428571428571429 0.17857142857142858 nan nan
170 vanilla 41 48 nan nan 0.7142857142857143 0.03571428571428571 nan nan
171 vanilla 41 49 nan nan 0.5357142857142857 0.39285714285714285 nan nan
172 vanilla 41 50 0.56 0.31 0.75 0.21428571428571427 0.56 0.31
173 vanilla 41 51 nan nan 0.5 0.35714285714285715 nan nan
174 vanilla 41 52 nan nan 0.5714285714285714 0.17857142857142858 nan nan
175 vanilla 41 53 nan nan 0.8928571428571429 0.07142857142857142 nan nan
176 vanilla 41 54 nan nan 0.6071428571428571 0.32142857142857145 nan nan
177 vanilla 41 55 nan nan 0.5357142857142857 0.32142857142857145 nan nan
178 vanilla 41 56 nan nan 0.75 0.25 nan nan
179 vanilla 41 57 nan nan 0.6785714285714286 0.2857142857142857 nan nan
180 vanilla 41 58 nan nan 0.7857142857142857 0.14285714285714285 nan nan
181 vanilla 41 59 nan nan 0.6428571428571429 0.2857142857142857 nan nan
182 vanilla 41 60 0.47 0.53 0.8928571428571429 0.03571428571428571 0.47 0.53
183 vanilla 41 61 nan nan 0.8928571428571429 0.03571428571428571 nan nan
184 vanilla 41 62 nan nan 0.6785714285714286 0.21428571428571427 nan nan
185 vanilla 41 63 nan nan 0.4642857142857143 0.42857142857142855 nan nan
186 vanilla 41 64 nan nan 0.8571428571428571 0.07142857142857142 nan nan
187 vanilla 41 65 nan nan 0.5714285714285714 0.35714285714285715 nan nan
188 vanilla 41 66 nan nan 0.7857142857142857 0.10714285714285714 nan nan
189 vanilla 41 67 nan nan 0.75 0.25 nan nan
190 vanilla 41 68 nan nan 0.75 0.25 nan nan
191 vanilla 41 69 nan nan 0.75 0.21428571428571427 nan nan
192 vanilla 41 70 0.56 0.42 0.6785714285714286 0.21428571428571427 0.56 0.42
193 vanilla 41 71 nan nan 0.5357142857142857 0.4642857142857143 nan nan
194 vanilla 41 72 nan nan 0.7857142857142857 0.17857142857142858 nan nan
195 vanilla 41 73 nan nan 0.75 0.14285714285714285 nan nan
196 vanilla 41 74 nan nan 0.8571428571428571 0.07142857142857142 nan nan
197 vanilla 41 75 nan nan 0.5714285714285714 0.35714285714285715 nan nan
198 vanilla 41 76 nan nan 0.6071428571428571 0.10714285714285714 nan nan
199 vanilla 41 77 nan nan 0.5357142857142857 0.32142857142857145 nan nan
200 vanilla 41 78 nan nan 0.9285714285714286 0.0 nan nan
201 vanilla 41 79 nan nan 0.8571428571428571 0.0 nan nan
202 vanilla 41 80 0.67 0.22 0.9642857142857143 0.0 0.67 0.22
203 vanilla 41 81 nan nan 0.7142857142857143 0.14285714285714285 nan nan
204 vanilla 41 82 nan nan 0.8928571428571429 0.0 nan nan
205 vanilla 41 83 nan nan 0.7857142857142857 0.10714285714285714 nan nan
206 vanilla 41 84 nan nan 0.5 0.35714285714285715 nan nan
207 vanilla 41 85 nan nan 0.8571428571428571 0.03571428571428571 nan nan
208 vanilla 41 86 nan nan 0.9285714285714286 0.03571428571428571 nan nan
209 vanilla 41 87 nan nan 0.75 0.17857142857142858 nan nan
210 vanilla 41 88 nan nan 0.5357142857142857 0.10714285714285714 nan nan
211 vanilla 41 89 nan nan 0.42857142857142855 0.03571428571428571 nan nan
212 vanilla 41 90 0.06 0.0 0.4642857142857143 0.0 0.06 0.0
213 vanilla 41 91 nan nan 0.10714285714285714 0.0 nan nan
214 vanilla 41 92 nan nan 0.07142857142857142 0.0 nan nan
215 vanilla 41 93 nan nan 0.0 0.0 nan nan
216 vanilla 41 94 nan nan 0.03571428571428571 0.0 nan nan
217 vanilla 41 95 nan nan 0.5357142857142857 0.0 nan nan
218 vanilla 41 96 nan nan 0.07142857142857142 0.0 nan nan
219 vanilla 41 97 nan nan 0.0 0.0 nan nan
220 vanilla 41 98 nan nan 0.0 0.0 nan nan
221 vanilla 41 99 nan nan 0.0 0.0 nan nan
222 vanilla 41 100 0.0 0.0 0.0 0.0 0.0 0.0
223 vanilla 41 101 nan nan 0.10714285714285714 0.0 nan nan
224 vanilla 41 102 nan nan 0.0 0.0 nan nan
225 vanilla 41 103 nan nan 0.25 0.0 nan nan
226 vanilla 41 104 nan nan 0.0 0.0 nan nan
227 vanilla 41 105 nan nan 0.14285714285714285 0.03571428571428571 nan nan
228 vanilla 41 106 nan nan 0.0 0.0 nan nan
229 vanilla 41 107 nan nan 0.0 0.0 nan nan
230 vanilla 41 108 nan nan 0.0 0.0 nan nan
231 vanilla 41 109 nan nan 0.0 0.0 nan nan
232 vanilla 41 110 0.0 0.0 0.03571428571428571 0.0 0.0 0.0
233 vanilla 41 111 nan nan 0.0 0.0 nan nan
234 vanilla 41 112 nan nan 0.0 0.0 nan nan
235 vanilla 41 113 nan nan 0.0 0.0 nan nan
236 vanilla 41 114 nan nan 0.0 0.0 nan nan
237 vanilla 41 115 nan nan 0.0 0.0 nan nan
238 vanilla 41 116 nan nan 0.0 0.0 nan nan
239 vanilla 41 117 nan nan 0.0 0.0 nan nan
240 vanilla 41 118 nan nan 0.0 0.0 nan nan
241 vanilla 41 119 nan nan 0.0 0.0 nan nan
242 vanilla 41 120 0.0 0.0 0.0 0.0 0.0 0.0
243 vanilla 41 121 nan nan 0.0 0.0 nan nan
244 vanilla 41 122 nan nan 0.0 0.0 nan nan
245 vanilla 41 123 nan nan 0.0 0.0 nan nan
246 vanilla 41 124 nan nan 0.0 0.0 nan nan
247 vanilla 41 125 nan nan 0.0 0.0 nan nan
248 vanilla 41 126 nan nan 0.0 0.0 nan nan
249 vanilla 41 127 nan nan 0.0 0.0 nan nan
250 vanilla 41 128 nan nan 0.0 0.0 nan nan
251 vanilla 41 129 nan nan 0.0 0.0 nan nan
252 vanilla 41 130 0.03 0.0 0.0 0.0 0.03 0.0
253 vanilla 41 131 nan nan 0.03571428571428571 0.0 nan nan
254 vanilla 41 132 nan nan 0.0 0.0 nan nan
255 vanilla 41 133 nan nan 0.21428571428571427 0.0 nan nan
256 vanilla 41 134 nan nan 0.0 0.0 nan nan
257 vanilla 41 135 nan nan 0.03571428571428571 0.0 nan nan
258 vanilla 41 136 nan nan 0.0 0.0 nan nan
259 vanilla 41 137 nan nan 0.0 0.0 nan nan
260 vanilla 41 138 nan nan 0.10714285714285714 0.0 nan nan
261 vanilla 41 139 nan nan 0.07142857142857142 0.0 nan nan
262 routing 41 0 0.0 0.14285714285714285 0.0 0.14285714285714285 nan nan
263 routing 41 1 0.0 0.25 0.0 0.25 nan nan
264 routing 41 2 0.0 0.0 0.0 0.0 nan nan
265 routing 41 3 0.0 0.17857142857142858 0.0 0.17857142857142858 nan nan
266 routing 41 4 0.0 0.0 0.0 0.0 nan nan
267 routing 41 5 0.0 0.39285714285714285 0.0 0.39285714285714285 nan nan
268 routing 41 6 0.0 0.39285714285714285 0.0 0.39285714285714285 nan nan
269 routing 41 7 0.14285714285714285 0.14285714285714285 0.14285714285714285 0.14285714285714285 nan nan
270 routing 41 8 0.25 0.21428571428571427 0.25 0.21428571428571427 nan nan
271 routing 41 9 0.0 0.39285714285714285 0.0 0.39285714285714285 nan nan
272 routing 41 10 0.10714285714285714 0.21428571428571427 0.10714285714285714 0.21428571428571427 nan nan
273 routing 41 11 0.2857142857142857 0.4642857142857143 0.2857142857142857 0.4642857142857143 nan nan
274 routing 41 12 0.17857142857142858 0.25 0.17857142857142858 0.25 nan nan
275 routing 41 13 0.21428571428571427 0.35714285714285715 0.21428571428571427 0.35714285714285715 nan nan
276 routing 41 14 0.35714285714285715 0.42857142857142855 0.35714285714285715 0.42857142857142855 nan nan
277 routing 41 15 0.10714285714285714 0.6071428571428571 0.10714285714285714 0.6071428571428571 nan nan
278 routing 41 16 0.5 0.17857142857142858 0.5 0.17857142857142858 nan nan
279 routing 41 17 0.39285714285714285 0.14285714285714285 0.39285714285714285 0.14285714285714285 nan nan
280 routing 41 18 0.0 0.6071428571428571 0.0 0.6071428571428571 nan nan
281 routing 41 19 0.32142857142857145 0.14285714285714285 0.32142857142857145 0.14285714285714285 nan nan
282 routing 41 20 0.03571428571428571 0.5357142857142857 0.03571428571428571 0.5357142857142857 nan nan
283 routing 41 21 0.14285714285714285 0.5 0.14285714285714285 0.5 nan nan
284 routing 41 22 0.6071428571428571 0.25 0.6071428571428571 0.25 nan nan
285 routing 41 23 0.39285714285714285 0.4642857142857143 0.39285714285714285 0.4642857142857143 nan nan
286 routing 41 24 0.39285714285714285 0.17857142857142858 0.39285714285714285 0.17857142857142858 nan nan
287 routing 41 25 0.42857142857142855 0.25 0.42857142857142855 0.25 nan nan
288 routing 41 26 0.5 0.0 0.5 0.0 nan nan
289 routing 41 27 0.25 0.42857142857142855 0.25 0.42857142857142855 nan nan
290 routing 41 28 0.03571428571428571 0.21428571428571427 0.03571428571428571 0.21428571428571427 nan nan
291 routing 41 29 0.35714285714285715 0.5357142857142857 0.35714285714285715 0.5357142857142857 nan nan
292 routing 41 30 0.75 0.0 0.75 0.0 nan nan
293 routing 41 31 0.5714285714285714 0.0 0.5714285714285714 0.0 nan nan
294 routing 41 32 0.14285714285714285 0.35714285714285715 0.14285714285714285 0.35714285714285715 nan nan
295 routing 41 33 0.6071428571428571 0.07142857142857142 0.6071428571428571 0.07142857142857142 nan nan
296 routing 41 34 0.32142857142857145 0.2857142857142857 0.32142857142857145 0.2857142857142857 nan nan
297 routing 41 35 0.17857142857142858 0.39285714285714285 0.17857142857142858 0.39285714285714285 nan nan
298 routing 41 36 0.6428571428571429 0.10714285714285714 0.6428571428571429 0.10714285714285714 nan nan
299 routing 41 37 0.17857142857142858 0.14285714285714285 0.17857142857142858 0.14285714285714285 nan nan
300 routing 41 38 0.42857142857142855 0.21428571428571427 0.42857142857142855 0.21428571428571427 nan nan
301 routing 41 39 0.6071428571428571 0.25 0.6071428571428571 0.25 nan nan
302 routing 41 40 0.4642857142857143 0.25 0.4642857142857143 0.25 nan nan
303 routing 41 41 0.5714285714285714 0.14285714285714285 0.5714285714285714 0.14285714285714285 nan nan
304 routing 41 42 0.8214285714285714 0.0 0.8214285714285714 0.0 nan nan
305 routing 41 43 0.5 0.0 0.5 0.0 nan nan
306 routing 41 44 0.6071428571428571 0.03571428571428571 0.6071428571428571 0.03571428571428571 nan nan
307 routing 41 45 0.5 0.14285714285714285 0.5 0.14285714285714285 nan nan
308 routing 41 46 0.5 0.32142857142857145 0.5 0.32142857142857145 nan nan
309 routing 41 47 0.5357142857142857 0.2857142857142857 0.5357142857142857 0.2857142857142857 nan nan
310 routing 41 48 0.7142857142857143 0.0 0.7142857142857143 0.0 nan nan
311 routing 41 49 0.35714285714285715 0.32142857142857145 0.35714285714285715 0.32142857142857145 nan nan
312 routing 41 50 0.5357142857142857 0.14285714285714285 0.5357142857142857 0.14285714285714285 nan nan
313 routing 41 51 0.35714285714285715 0.39285714285714285 0.35714285714285715 0.39285714285714285 nan nan
314 routing 41 52 0.42857142857142855 0.14285714285714285 0.42857142857142855 0.14285714285714285 nan nan
315 routing 41 53 0.4642857142857143 0.14285714285714285 0.4642857142857143 0.14285714285714285 nan nan
316 routing 41 54 0.21428571428571427 0.42857142857142855 0.21428571428571427 0.42857142857142855 nan nan
317 routing 41 55 0.42857142857142855 0.21428571428571427 0.42857142857142855 0.21428571428571427 nan nan
318 routing 41 56 0.5714285714285714 0.21428571428571427 0.5714285714285714 0.21428571428571427 nan nan
319 routing 41 57 0.5357142857142857 0.2857142857142857 0.5357142857142857 0.2857142857142857 nan nan
320 routing 41 58 0.42857142857142855 0.14285714285714285 0.42857142857142855 0.14285714285714285 nan nan
321 routing 41 59 0.5357142857142857 0.21428571428571427 0.5357142857142857 0.21428571428571427 nan nan
322 routing2 41 0 0.0 0.38 0.0 0.14285714285714285 0.0 0.38
323 routing2 41 1 nan nan 0.0 0.21428571428571427 nan nan
324 routing2 41 2 nan nan 0.0 0.0 nan nan
325 routing2 41 3 nan nan 0.0 0.17857142857142858 nan nan
326 routing2 41 4 nan nan 0.0 0.0 nan nan
327 routing2 41 5 nan nan 0.0 0.4642857142857143 nan nan
328 routing2 41 6 nan nan 0.0 0.25 nan nan
329 routing2 41 7 nan nan 0.0 0.07142857142857142 nan nan
330 routing2 41 8 nan nan 0.0 0.25 nan nan
331 routing2 41 9 nan nan 0.0 0.4642857142857143 nan nan
332 routing2 41 10 0.0 0.45 0.0 0.32142857142857145 0.0 0.45
333 routing2 41 11 nan nan 0.0 0.4642857142857143 nan nan
334 routing2 41 12 nan nan 0.0 0.25 nan nan
335 routing2 41 13 nan nan 0.0 0.39285714285714285 nan nan
336 routing2 41 14 nan nan 0.0 0.5714285714285714 nan nan
337 routing2 41 15 nan nan 0.07142857142857142 0.75 nan nan
338 routing2 41 16 nan nan 0.2857142857142857 0.39285714285714285 nan nan
339 routing2 41 17 nan nan 0.21428571428571427 0.21428571428571427 nan nan
340 routing2 41 18 nan nan 0.0 0.5357142857142857 nan nan
341 routing2 41 19 nan nan 0.32142857142857145 0.14285714285714285 nan nan
342 routing2 41 20 0.0 0.62 0.0 0.5357142857142857 0.0 0.62
343 routing2 41 21 nan nan 0.0 0.6428571428571429 nan nan
344 routing2 41 22 nan nan 0.5 0.25 nan nan
345 routing2 41 23 nan nan 0.32142857142857145 0.4642857142857143 nan nan
346 routing2 41 24 nan nan 0.21428571428571427 0.2857142857142857 nan nan
347 routing2 41 25 nan nan 0.42857142857142855 0.25 nan nan
348 routing2 41 26 nan nan 0.5 0.03571428571428571 nan nan
349 routing2 41 27 nan nan 0.17857142857142858 0.5714285714285714 nan nan
350 routing2 41 28 nan nan 0.10714285714285714 0.17857142857142858 nan nan
351 routing2 41 29 nan nan 0.35714285714285715 0.4642857142857143 nan nan
352 routing2 41 30 0.0 0.62 0.75 0.0 0.0 0.62
353 routing2 41 31 nan nan 0.75 0.10714285714285714 nan nan
354 routing2 41 32 nan nan 0.21428571428571427 0.5714285714285714 nan nan
355 routing2 41 33 nan nan 0.75 0.17857142857142858 nan nan
356 routing2 41 34 nan nan 0.4642857142857143 0.21428571428571427 nan nan
357 routing2 41 35 nan nan 0.17857142857142858 0.4642857142857143 nan nan
358 routing2 41 36 nan nan 0.6428571428571429 0.10714285714285714 nan nan
359 routing2 41 37 nan nan 0.35714285714285715 0.42857142857142855 nan nan
360 routing2 41 38 nan nan 0.32142857142857145 0.4642857142857143 nan nan
361 routing2 41 39 nan nan 0.6071428571428571 0.35714285714285715 nan nan
362 routing2 41 40 0.0 0.61 0.6785714285714286 0.32142857142857145 0.0 0.61
363 routing2 41 41 nan nan 0.6428571428571429 0.25 nan nan
364 routing2 41 42 nan nan 0.75 0.14285714285714285 nan nan
365 routing2 41 43 nan nan 0.7857142857142857 0.10714285714285714 nan nan
366 routing2 41 44 nan nan 0.6785714285714286 0.21428571428571427 nan nan
367 routing2 41 45 nan nan 0.39285714285714285 0.5357142857142857 nan nan
368 routing2 41 46 nan nan 0.5357142857142857 0.4642857142857143 nan nan
369 routing2 41 47 nan nan 0.4642857142857143 0.5 nan nan
370 routing2 41 48 nan nan 0.8571428571428571 0.07142857142857142 nan nan
371 routing2 41 49 nan nan 0.2857142857142857 0.6785714285714286 nan nan
372 routing2 41 50 0.0 0.62 0.5 0.42857142857142855 0.0 0.62
373 routing2 41 51 nan nan 0.4642857142857143 0.5357142857142857 nan nan
374 routing2 41 52 nan nan 0.6428571428571429 0.32142857142857145 nan nan
375 routing2 41 53 nan nan 0.8571428571428571 0.07142857142857142 nan nan
376 routing2 41 54 nan nan 0.39285714285714285 0.4642857142857143 nan nan
377 routing2 41 55 nan nan 0.5 0.42857142857142855 nan nan
378 routing2 41 56 nan nan 0.7142857142857143 0.2857142857142857 nan nan
379 routing2 41 57 nan nan 0.39285714285714285 0.5714285714285714 nan nan
380 routing2 41 58 nan nan 0.6785714285714286 0.32142857142857145 nan nan
381 routing2 41 59 nan nan 0.5714285714285714 0.39285714285714285 nan nan
382 routing2 41 60 0.0 0.62 0.75 0.14285714285714285 0.0 0.62
383 routing2 41 61 nan nan 0.7857142857142857 0.21428571428571427 nan nan
384 routing2 41 62 nan nan 0.32142857142857145 0.6428571428571429 nan nan
385 routing2 41 63 nan nan 0.2857142857142857 0.5714285714285714 nan nan
386 routing2 41 64 nan nan 0.7857142857142857 0.21428571428571427 nan nan
387 routing2 41 65 nan nan 0.6785714285714286 0.32142857142857145 nan nan
388 routing2 41 66 nan nan 0.75 0.21428571428571427 nan nan
389 routing2 41 67 nan nan 0.6428571428571429 0.2857142857142857 nan nan
390 routing2 41 68 nan nan 0.7857142857142857 0.14285714285714285 nan nan
391 routing2 41 69 nan nan 0.75 0.25 nan nan
392 routing2 41 70 0.0 0.62 0.6071428571428571 0.35714285714285715 0.0 0.62
393 routing2 41 71 nan nan 0.6428571428571429 0.35714285714285715 nan nan
394 routing2 41 72 nan nan 0.7142857142857143 0.25 nan nan
395 routing2 41 73 nan nan 0.7857142857142857 0.21428571428571427 nan nan
396 routing2 41 74 nan nan 0.9285714285714286 0.03571428571428571 nan nan
397 routing2 41 75 nan nan 0.21428571428571427 0.75 nan nan
398 routing2 41 76 nan nan 0.8214285714285714 0.14285714285714285 nan nan
399 routing2 41 77 nan nan 0.5357142857142857 0.39285714285714285 nan nan
400 routing2 41 78 nan nan 0.75 0.21428571428571427 nan nan
401 routing2 41 79 nan nan 0.5714285714285714 0.42857142857142855 nan nan
402 routing2 41 80 0.0 0.59 0.8214285714285714 0.14285714285714285 0.0 0.59
403 routing2 41 81 nan nan 0.35714285714285715 0.6071428571428571 nan nan
404 routing2 41 82 nan nan 1.0 0.0 nan nan
405 routing2 41 83 nan nan 0.6071428571428571 0.32142857142857145 nan nan
406 routing2 41 84 nan nan 0.10714285714285714 0.8928571428571429 nan nan
407 routing2 41 85 nan nan 0.7857142857142857 0.17857142857142858 nan nan
408 routing2 41 86 nan nan 0.8214285714285714 0.14285714285714285 nan nan
409 routing2 41 87 nan nan 0.14285714285714285 0.8571428571428571 nan nan
410 routing2 41 88 nan nan 0.32142857142857145 0.6785714285714286 nan nan
411 routing2 41 89 nan nan 0.6071428571428571 0.35714285714285715 nan nan
412 routing2 41 90 0.0 0.62 0.5357142857142857 0.4642857142857143 0.0 0.62
413 routing2 41 91 nan nan 0.42857142857142855 0.5357142857142857 nan nan
414 routing2 41 92 nan nan 0.35714285714285715 0.6428571428571429 nan nan
415 routing2 41 93 nan nan 0.5357142857142857 0.4642857142857143 nan nan
416 routing2 41 94 nan nan 0.75 0.25 nan nan
417 routing2 41 95 nan nan 0.5714285714285714 0.39285714285714285 nan nan
418 routing2 41 96 nan nan 0.75 0.25 nan nan
419 routing2 41 97 nan nan 0.5 0.5 nan nan
420 routing2 41 98 nan nan 0.8214285714285714 0.17857142857142858 nan nan
421 routing2 41 99 nan nan 0.42857142857142855 0.5714285714285714 nan nan
422 routing2 41 100 0.0 0.62 0.6071428571428571 0.39285714285714285 0.0 0.62
423 routing2 41 101 nan nan 0.21428571428571427 0.7142857142857143 nan nan
424 routing2 41 102 nan nan 0.5714285714285714 0.42857142857142855 nan nan
425 routing2 41 103 nan nan 1.0 0.0 nan nan
426 routing2 41 104 nan nan 0.39285714285714285 0.5714285714285714 nan nan
427 routing2 41 105 nan nan 0.6428571428571429 0.32142857142857145 nan nan
428 routing2 41 106 nan nan 0.8214285714285714 0.17857142857142858 nan nan
429 routing2 41 107 nan nan 0.6071428571428571 0.39285714285714285 nan nan
430 routing2 41 108 nan nan 0.7142857142857143 0.2857142857142857 nan nan
431 routing2 41 109 nan nan 0.8571428571428571 0.14285714285714285 nan nan
432 routing2 41 110 0.0 0.62 0.4642857142857143 0.5357142857142857 0.0 0.62
433 routing2 41 111 nan nan 0.4642857142857143 0.4642857142857143 nan nan
434 routing2 41 112 nan nan 0.2857142857142857 0.7142857142857143 nan nan
435 routing2 41 113 nan nan 0.75 0.25 nan nan
436 routing2 41 114 nan nan 0.4642857142857143 0.5357142857142857 nan nan
437 routing2 41 115 nan nan 0.7857142857142857 0.21428571428571427 nan nan
438 routing2 41 116 nan nan 0.6428571428571429 0.35714285714285715 nan nan
439 routing2 41 117 nan nan 0.5714285714285714 0.42857142857142855 nan nan
440 routing2 41 118 nan nan 0.2857142857142857 0.6785714285714286 nan nan
441 routing2 41 119 nan nan 0.5 0.5 nan nan
442 routing2 41 120 0.0 0.62 0.8214285714285714 0.17857142857142858 0.0 0.62
443 routing2 41 121 nan nan 0.75 0.21428571428571427 nan nan
444 routing2 41 122 nan nan 0.39285714285714285 0.6071428571428571 nan nan
445 routing2 41 123 nan nan 0.75 0.21428571428571427 nan nan
446 routing2 41 124 nan nan 0.32142857142857145 0.6785714285714286 nan nan
447 routing2 41 125 nan nan 0.75 0.25 nan nan
448 routing2 41 126 nan nan 0.75 0.25 nan nan
449 routing2 41 127 nan nan 0.4642857142857143 0.5357142857142857 nan nan
450 routing2 41 128 nan nan 0.6428571428571429 0.35714285714285715 nan nan
451 routing2 41 129 nan nan 0.6785714285714286 0.32142857142857145 nan nan
452 routing2 41 130 0.0 0.62 0.7142857142857143 0.2857142857142857 0.0 0.62
453 routing2 41 131 nan nan 0.32142857142857145 0.6785714285714286 nan nan
454 routing2 41 132 nan nan 0.25 0.7142857142857143 nan nan
455 routing2 41 133 nan nan 0.5357142857142857 0.42857142857142855 nan nan
456 routing2 41 134 nan nan 0.2857142857142857 0.7142857142857143 nan nan
457 routing2 41 135 nan nan 0.5357142857142857 0.4642857142857143 nan nan
458 routing2 41 136 nan nan 0.5357142857142857 0.4642857142857143 nan nan
459 routing2 41 137 nan nan 0.4642857142857143 0.5 nan nan
460 routing2 41 138 nan nan 0.5714285714285714 0.42857142857142855 nan nan
461 routing2 41 139 nan nan 0.39285714285714285 0.6071428571428571 nan nan
462 routing2 41 140 0.0 0.62 0.75 0.25 0.0 0.62
463 routing2 41 141 nan nan 0.75 0.21428571428571427 nan nan
464 routing2 41 142 nan nan 0.75 0.25 nan nan
465 routing2 41 143 nan nan 0.5714285714285714 0.35714285714285715 nan nan
466 routing2 41 144 nan nan 0.6428571428571429 0.35714285714285715 nan nan
467 routing2 41 145 nan nan 0.5714285714285714 0.42857142857142855 nan nan
468 routing2 41 146 nan nan 0.6785714285714286 0.32142857142857145 nan nan
469 routing2 41 147 nan nan 0.6071428571428571 0.39285714285714285 nan nan
470 routing2 41 148 nan nan 0.5714285714285714 0.35714285714285715 nan nan
471 routing2 41 149 nan nan 0.5 0.5 nan nan
472 routing2 41 150 0.0 0.62 0.75 0.25 0.0 0.62
473 routing2 41 151 nan nan 0.39285714285714285 0.6071428571428571 nan nan
474 routing2 41 152 nan nan 0.5714285714285714 0.42857142857142855 nan nan
475 routing2 41 153 nan nan 0.39285714285714285 0.6071428571428571 nan nan
476 routing2 41 154 nan nan 0.6785714285714286 0.32142857142857145 nan nan
477 routing2 41 155 nan nan 0.9285714285714286 0.07142857142857142 nan nan
478 routing2 41 156 nan nan 0.2857142857142857 0.7142857142857143 nan nan
479 routing2 41 157 nan nan 0.8214285714285714 0.17857142857142858 nan nan
480 routing2 41 158 nan nan 0.4642857142857143 0.5 nan nan
481 routing2 41 159 nan nan 0.32142857142857145 0.6785714285714286 nan nan
482 routing2 41 160 0.0 0.62 0.21428571428571427 0.75 0.0 0.62
483 routing2 41 161 nan nan 0.75 0.25 nan nan
484 routing2 41 162 nan nan 0.75 0.25 nan nan
485 routing2 41 163 nan nan 0.9285714285714286 0.03571428571428571 nan nan
486 routing2 41 164 nan nan 0.4642857142857143 0.5357142857142857 nan nan
487 routing2 41 165 nan nan 0.6785714285714286 0.32142857142857145 nan nan
488 routing2 41 166 nan nan 0.7142857142857143 0.25 nan nan
489 routing2 41 167 nan nan 0.6785714285714286 0.32142857142857145 nan nan
490 routing2 41 168 nan nan 0.6071428571428571 0.39285714285714285 nan nan
491 routing2 41 169 nan nan 0.5714285714285714 0.42857142857142855 nan nan
492 routing2 41 170 0.0 0.62 0.7142857142857143 0.25 0.0 0.62
493 routing2 41 171 nan nan 0.8571428571428571 0.14285714285714285 nan nan
494 routing2 41 172 nan nan 0.6785714285714286 0.2857142857142857 nan nan
495 routing2 41 173 nan nan 0.75 0.25 nan nan
496 routing2 41 174 nan nan 0.8928571428571429 0.10714285714285714 nan nan
497 routing2 41 175 nan nan 0.6428571428571429 0.32142857142857145 nan nan
498 routing2 41 176 nan nan 0.6071428571428571 0.39285714285714285 nan nan
499 routing2 41 177 nan nan 0.6428571428571429 0.35714285714285715 nan nan
500 routing2 41 178 nan nan 0.6785714285714286 0.32142857142857145 nan nan
501 routing2 41 179 nan nan 0.7142857142857143 0.25 nan nan
502 routing2 41 180 0.0 0.62 0.42857142857142855 0.5714285714285714 0.0 0.62
503 routing2 41 181 nan nan 0.8571428571428571 0.14285714285714285 nan nan
504 routing2 41 182 nan nan 0.32142857142857145 0.6785714285714286 nan nan
505 routing2 41 183 nan nan 0.35714285714285715 0.6071428571428571 nan nan
506 routing2 41 184 nan nan 0.6071428571428571 0.39285714285714285 nan nan
507 routing2 41 185 nan nan 0.7857142857142857 0.21428571428571427 nan nan
508 routing2 41 186 nan nan 0.8214285714285714 0.17857142857142858 nan nan
509 routing2 41 187 nan nan 0.9642857142857143 0.0 nan nan
510 routing2 41 188 nan nan 0.8928571428571429 0.10714285714285714 nan nan
511 routing2 41 189 nan nan 0.35714285714285715 0.6428571428571429 nan nan
512 routing2 41 190 0.0 0.62 0.6428571428571429 0.35714285714285715 0.0 0.62
513 routing2 41 191 nan nan 0.75 0.25 nan nan
514 routing2 41 192 nan nan 0.6428571428571429 0.35714285714285715 nan nan
515 routing2 41 193 nan nan 0.8571428571428571 0.14285714285714285 nan nan
516 routing2 41 194 nan nan 0.8571428571428571 0.14285714285714285 nan nan
517 routing2 41 195 nan nan 0.9285714285714286 0.07142857142857142 nan nan
518 routing2 41 196 nan nan 0.8214285714285714 0.17857142857142858 nan nan
519 routing2 41 197 nan nan 0.5 0.5 nan nan
520 routing2 41 198 nan nan 0.32142857142857145 0.6785714285714286 nan nan
521 routing2 41 199 0.0 0.61 0.32142857142857145 0.6428571428571429 0.0 0.61
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 56 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 62 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 107 KiB

+17 -10
View File
@@ -27,13 +27,18 @@ import matplotlib.pyplot as plt
import numpy as np import numpy as np
from loguru import logger from loguru import logger
from projected_grpo.figs import save_fig
# arm -> (display label, colour). Order = legend/bar order (baseline first). # arm -> (display label, colour). Order = legend/bar order (baseline first).
# Reader-facing names only -- "route2"/"grad" are internal tags. The grad-mask
# routing arm is the one we report, so it is plain "route"; the failed
# activation-mask variant is disambiguated, not version-numbered.
ARM = { ARM = {
"vanilla": ("vanilla", "#444444"), "vanilla": ("vanilla", "#444444"),
"projected": ("erase", "#c1432b"), "projected": ("erase", "#c1432b"),
"routing": ("route", "#33508c"), "routing": ("route (v1)", "#33508c"),
"routing2_act": ("route2 act", "#2f7d4f"), "routing2_act": ("route (act-mask)", "#2f7d4f"),
"routing2_grad":("route2 grad", "#b8860b"), "routing2_grad":("route", "#b8860b"),
} }
# mode display order: in-dist first, then held-out. # mode display order: in-dist first, then held-out.
MODE_ORDER = ["run_tests", "file_marker", "stdout_marker", "sentinel", "eq_override"] MODE_ORDER = ["run_tests", "file_marker", "stdout_marker", "sentinel", "eq_override"]
@@ -79,6 +84,8 @@ def main() -> None:
ap.add_argument("jsons", nargs="*", type=Path, ap.add_argument("jsons", nargs="*", type=Path,
help="per_mode_deploy.json paths; default globs out/runs/*sub4*/") help="per_mode_deploy.json paths; default globs out/runs/*sub4*/")
ap.add_argument("--out", type=Path, default=Path("out/figs/deploy_overlay.png")) ap.add_argument("--out", type=Path, default=Path("out/figs/deploy_overlay.png"))
ap.add_argument("--title", action="store_true",
help="draw the suptitle (off by default: the caption carries it)")
args = ap.parse_args() args = ap.parse_args()
paths = args.jsons or sorted(Path("out/runs").glob("*sub4*/per_mode_deploy.json")) paths = args.jsons or sorted(Path("out/runs").glob("*sub4*/per_mode_deploy.json"))
@@ -97,12 +104,12 @@ def main() -> None:
_panel(a2, records, modes, arms, "deploy_solve", _panel(a2, records, modes, arms, "deploy_solve",
"DEPLOY solve rate by mode (higher = better)", "deploy solve rate") "DEPLOY solve rate by mode (higher = better)", "deploy solve rate")
a1.legend(fontsize=8, frameon=False, loc="upper right") a1.legend(fontsize=8, frameon=False, loc="upper right")
n_seed = {r.get("seed") for r in records} if args.title:
fig.suptitle(f"Per-mode deploy overlay ({len(arms)} arms, seed {sorted(n_seed)}) -- " n_seed = {r.get("seed") for r in records}
f"quarantine deleted = shipped model", fontsize=11) fig.suptitle(f"Per-mode deploy overlay ({len(arms)} arms, seed {sorted(n_seed)}) -- "
args.out.parent.mkdir(parents=True, exist_ok=True) f"quarantine deleted = shipped model", fontsize=11)
fig.tight_layout() fig.tight_layout()
fig.savefig(args.out, dpi=140, bbox_inches="tight") save_fig(fig, args.out)
logger.info(f"wrote {args.out} ({len(arms)} arms x {len(modes)} modes)") logger.info(f"wrote {args.out} ({len(arms)} arms x {len(modes)} modes)")
+97 -43
View File
@@ -42,7 +42,11 @@ import matplotlib.pyplot as plt
import numpy as np import numpy as np
from loguru import logger from loguru import logger
from projected_grpo.figs import link_latest from projected_grpo.figs import link_latest, save_fig, arm_label
# Figures are captioned in the paper/blog, so the suptitle just restates the
# caption. Off by default; --title re-enables it for standalone research use.
SHOW_TITLE = False
# --- parse ----------------------------------------------------------------- # --- parse -----------------------------------------------------------------
@@ -148,6 +152,8 @@ def parse_log(path: Path) -> dict | None:
def classify(run: dict) -> str: def classify(run: dict) -> str:
if "arm_csv" in run: # reconstructed from a CSV: name is already classified
return run["arm_csv"]
if run["arm"] == "vanilla": if run["arm"] == "vanilla":
return "vanilla" return "vanilla"
if run["arm"] == "routing": if run["arm"] == "routing":
@@ -236,24 +242,51 @@ def _series_panel(ax, runs, cols, colors, ylim, label_series=False):
ax.set_ylim(*ylim) ax.set_ylim(*ylim)
# Every series any of the three figures plots. Carried in the CSV so the figure
# regenerates from the committed CSV alone (logs/ and out/runs/ are gitignored,
# out/figs/*.csv is tracked). `arm` is the CLASSIFIED display name -- load_csv
# short-circuits classify() on it so the round-trip is exact.
CSV_SERIES = ["hack_s", "gt_s", "hack_train", "solve_train", "hk_dep", "slv_dep"]
def dump_data(runs: list[dict], out: Path) -> Path: def dump_data(runs: list[dict], out: Path) -> Path:
"""Write the plotted series to a tidy CSV next to the figure so the figure is
reproducible from a committed artifact -- logs/ and out/runs/ are gitignored,
this CSV is not (it lands in out/figs/, which is tracked)."""
csv = out.with_suffix(".csv") csv = out.with_suffix(".csv")
lines = ["arm,seed,step,hack,solve"] lines = ["arm,seed,step," + ",".join(CSV_SERIES)]
for r in runs: for r in runs:
arm = classify(r) arm = classify(r)
hk = r.get("hack_s"); sv = r.get("gt_s")
for i, step in enumerate(r["steps"]): for i, step in enumerate(r["steps"]):
h = hk[i] if hk is not None and i < len(hk) else float("nan") cells = [r[k][i] if (k in r and r[k] is not None and i < len(r[k])) else float("nan")
s = sv[i] if sv is not None and i < len(sv) else float("nan") for k in CSV_SERIES]
lines.append(f"{arm},{r['seed']},{int(step)},{h},{s}") lines.append(f"{arm},{r['seed']},{int(step)}," + ",".join(str(c) for c in cells))
csv.write_text("\n".join(lines) + "\n") csv.write_text("\n".join(lines) + "\n")
logger.info(f"wrote {csv} ({len(runs)} runs, reproducibility source)") logger.info(f"wrote {csv} ({len(runs)} runs, reproducibility source)")
return csv return csv
def load_csv(path: Path) -> list[dict]:
"""Reconstruct the runs list from a dump_data CSV so figures regenerate
without the raw logs. Groups rows by (arm, seed); `arm_csv` makes classify()
return the stored display name verbatim."""
rows = [l.split(",") for l in path.read_text().splitlines() if l.strip()]
hdr, body = rows[0], rows[1:]
ci = {n: i for i, n in enumerate(hdr)}
by_key: dict[tuple, dict] = {}
for row in body:
key = (row[ci["arm"]], row[ci["seed"]])
run = by_key.setdefault(key, {"arm_csv": row[ci["arm"]], "seed": row[ci["seed"]],
"refr": 0, "vhack": "-", "teacher_off": None,
"steps": [], **{k: [] for k in CSV_SERIES}})
run["steps"].append(int(row[ci["step"]]))
for k in CSV_SERIES:
run[k].append(float(row[ci[k]]))
runs = list(by_key.values())
for run in runs: # match parse_log: numeric series are ndarrays, not lists
run["steps"] = np.array(run["steps"])
for k in CSV_SERIES:
run[k] = np.array(run[k], dtype=float)
return runs
def plot(runs: list[dict], out: Path) -> None: def plot(runs: list[dict], out: Path) -> None:
by_arm: dict[str, list[dict]] = defaultdict(list) by_arm: dict[str, list[dict]] = defaultdict(list)
for r in runs: for r in runs:
@@ -269,7 +302,7 @@ def plot(runs: list[dict], out: Path) -> None:
ax = axes[0][col] ax = axes[0][col]
rs = by_arm[arm] rs = by_arm[arm]
n_seed = len({r["seed"] for r in rs}) n_seed = len({r["seed"] for r in rs})
ax.set_title(f"{arm}\n(n={n_seed} seed{'s' if n_seed > 1 else ''})", fontsize=9) ax.set_title(f"{arm_label(arm)}\n(n={n_seed} seed{'s' if n_seed > 1 else ''})", fontsize=9)
# ylim floor slightly below 0 so a pinned-at-zero series (route2 hack) draws # ylim floor slightly below 0 so a pinned-at-zero series (route2 hack) draws
# ABOVE the axis line instead of hiding under it -- the whole result is that # ABOVE the axis line instead of hiding under it -- the whole result is that
# red sits on zero, so it must be visible, not absent. # red sits on zero, so it must be visible, not absent.
@@ -296,12 +329,14 @@ def plot(runs: list[dict], out: Path) -> None:
ax.spines["right"].set_visible(False) ax.spines["right"].set_visible(False)
ax.tick_params(labelsize=8) ax.tick_params(labelsize=8)
fig.suptitle("Training dynamics: deployed hack vs solve by arm " if SHOW_TITLE:
"(deploy-eval n=64 T=0.7; EMA-5; dashed = mean hack onset)", fontsize=10) fig.suptitle("Training dynamics: deployed hack vs solve by arm "
fig.tight_layout(rect=(0, 0, 1, 0.96)) "(deploy-eval n=64 T=0.7; EMA-5; dashed = mean hack onset)", fontsize=10)
out.parent.mkdir(parents=True, exist_ok=True) fig.tight_layout(rect=(0, 0, 1, 0.96))
fig.savefig(out, dpi=150, bbox_inches="tight") else:
logger.info(f"wrote {out} ({len(runs)} runs, arms={arms})") fig.tight_layout()
save_fig(fig, out)
logger.info(f"wrote {out} ({len(runs)} runs, arms={[arm_label(a) for a in arms]})")
def _overlay_panel(ax, by_arm, arms, key, *, label, with_onset): def _overlay_panel(ax, by_arm, arms, key, *, label, with_onset):
@@ -344,7 +379,7 @@ def _overlay_panel(ax, by_arm, arms, key, *, label, with_onset):
y_lab = y if not placed else max(y, placed[-1] + gap) y_lab = y if not placed else max(y, placed[-1] + gap)
placed.append(y_lab) placed.append(y_lab)
arrow = dict(arrowstyle="-", color=color, lw=0.5, shrinkA=0, shrinkB=0) arrow = dict(arrowstyle="-", color=color, lw=0.5, shrinkA=0, shrinkB=0)
ax.annotate(arm, xy=(x, y), xytext=(x + 1.0, y_lab), textcoords="data", ax.annotate(arm_label(arm), xy=(x, y), xytext=(x + 1.0, y_lab), textcoords="data",
color=color, fontsize=8, va="center", color=color, fontsize=8, va="center",
arrowprops=arrow if abs(y_lab - y) > 1e-3 else None) arrowprops=arrow if abs(y_lab - y) > 1e-3 else None)
@@ -362,33 +397,34 @@ def plot_hack_overlay(runs: list[dict], out: Path) -> None:
_overlay_panel(ax_h, by_arm, arms, "hack_s", label="hack rate", with_onset=True) _overlay_panel(ax_h, by_arm, arms, "hack_s", label="hack rate", with_onset=True)
_overlay_panel(ax_s, by_arm, arms, "gt_s", label="solve rate", with_onset=False) _overlay_panel(ax_s, by_arm, arms, "gt_s", label="solve rate", with_onset=False)
ax_s.set_xlabel("optimizer step") ax_s.set_xlabel("optimizer step")
ax_h.set_title("Hack vs solve rate by arm (EMA-5; dot = mean hack onset)", fontsize=10) if SHOW_TITLE:
ax_h.set_title("Hack vs solve rate by arm (EMA-5; dot = mean hack onset)", fontsize=10)
fig.tight_layout() fig.tight_layout()
out.parent.mkdir(parents=True, exist_ok=True) save_fig(fig, out)
fig.savefig(out, dpi=150, bbox_inches="tight")
logger.info(f"wrote {out}") logger.info(f"wrote {out}")
def plot_train_vs_deploy(runs: list[dict], out: Path) -> None: def plot_train_vs_deploy(runs: list[dict], out: Path) -> None:
"""2x2 small multiple: rows = train (knob ON) / deploy (knob OFF), cols = arm. """2x2 small multiple: rows = train (adapter ON) / deploy (adapter OFF), cols = arm.
The story in one figure: vanilla train == deploy (no quarantine, the cheat is The story in one figure: vanilla train == deploy (no quarantine, the reward
in the deployed weights); route2 train HACKS while deploy is clean -- the cheat hack is in the deployed weights); route trains while hacking but deploys clean,
is held in the deletable knob. Same red=hack/green=solve as the other figures.""" the hack is held in the deletable quarantine adapter. Same red=hack/green=solve
as the other figures."""
by_arm: dict[str, list[dict]] = defaultdict(list) by_arm: dict[str, list[dict]] = defaultdict(list)
for r in runs: for r in runs:
by_arm[classify(r)].append(r) by_arm[classify(r)].append(r)
arms = [a for a in ARM_ORDER if a in by_arm] arms = [a for a in ARM_ORDER if a in by_arm]
red, green = RATE_COLORS["hack_s"], RATE_COLORS["gt_s"] red, green = RATE_COLORS["hack_s"], RATE_COLORS["gt_s"]
rows = [ rows = [
("train (knob on)", {"hack_train": "hack", "solve_train": "solve"}, ("train (adapter on)", {"hack_train": "hack", "solve_train": "solve"},
{"hack_train": red, "solve_train": green}), {"hack_train": red, "solve_train": green}),
("deploy (knob off)", {"hk_dep": "hack", "slv_dep": "solve"}, ("deploy (adapter off)", {"hk_dep": "hack", "slv_dep": "solve"},
{"hk_dep": red, "slv_dep": green}), {"hk_dep": red, "slv_dep": green}),
] ]
fig, axes = plt.subplots(2, len(arms), figsize=(3.0 * len(arms), 4.8), fig, axes = plt.subplots(2, len(arms), figsize=(3.0 * len(arms), 4.8),
sharex=True, sharey=True, squeeze=False) sharex=True, sharey=True, squeeze=False)
for ci, arm in enumerate(arms): for ci, arm in enumerate(arms):
axes[0][ci].set_title(arm, fontsize=10) axes[0][ci].set_title(arm_label(arm), fontsize=10)
for ri, (rlabel, cols, colors) in enumerate(rows): for ri, (rlabel, cols, colors) in enumerate(rows):
ax = axes[ri][ci] ax = axes[ri][ci]
_series_panel(ax, by_arm[arm], cols, colors, ylim=(-0.035, 1.0), _series_panel(ax, by_arm[arm], cols, colors, ylim=(-0.035, 1.0),
@@ -415,11 +451,14 @@ def plot_train_vs_deploy(runs: list[dict], out: Path) -> None:
ax.tick_params(labelsize=8) ax.tick_params(labelsize=8)
for ax in axes[-1]: for ax in axes[-1]:
ax.set_xlabel("optimizer step") ax.set_xlabel("optimizer step")
fig.suptitle("Train (knob on) vs deploy (knob off): vanilla puts the cheat in " if SHOW_TITLE:
"the weights, route2 in the deletable knob (EMA-5)", fontsize=10) fig.suptitle("Train (adapter on) vs deploy (adapter off): vanilla puts the "
fig.tight_layout(rect=(0, 0, 1, 0.95)) "reward hack in the weights, route in the deletable adapter (EMA-5)",
out.parent.mkdir(parents=True, exist_ok=True) fontsize=10)
fig.savefig(out, dpi=150, bbox_inches="tight") fig.tight_layout(rect=(0, 0, 1, 0.95))
else:
fig.tight_layout()
save_fig(fig, out)
logger.info(f"wrote {out}") logger.info(f"wrote {out}")
@@ -454,13 +493,24 @@ def _latest_per_arm(files: list[Path], min_steps: int) -> list[Path]:
def main() -> None: def main() -> None:
ap = argparse.ArgumentParser(description=__doc__) ap = argparse.ArgumentParser(description=__doc__)
ap.add_argument("logs", nargs="+", help="log files, globs, or dirs") ap.add_argument("logs", nargs="*", help="log files, globs, or dirs (omit with --from-csv)")
ap.add_argument("--out", type=Path, default=Path("out/figs/dynamics.png")) ap.add_argument("--out", type=Path, default=Path("out/figs/dynamics.png"))
ap.add_argument("--latest-per-arm", action="store_true", ap.add_argument("--latest-per-arm", action="store_true",
help="keep only the newest log per arm (with >= --min-steps rows)") help="keep only the newest log per arm (with >= --min-steps rows)")
ap.add_argument("--min-steps", type=int, default=0, ap.add_argument("--min-steps", type=int, default=0,
help="drop runs shorter than this many logged steps") help="drop runs shorter than this many logged steps")
ap.add_argument("--title", action="store_true",
help="draw the suptitle (off by default: the paper/blog caption carries it)")
ap.add_argument("--from-csv", type=Path, default=None,
help="re-render from a committed dump_data CSV instead of parsing logs")
args = ap.parse_args() args = ap.parse_args()
global SHOW_TITLE
SHOW_TITLE = args.title
if args.from_csv:
runs = load_csv(args.from_csv)
logger.info(f"loaded {len(runs)} runs from {args.from_csv} (CSV re-render, no logs)")
_render_all(runs, args.out)
return
files = _gather(args.logs) files = _gather(args.logs)
if args.latest_per_arm: if args.latest_per_arm:
files = _latest_per_arm(files, args.min_steps) files = _latest_per_arm(files, args.min_steps)
@@ -470,14 +520,18 @@ def main() -> None:
for r in runs: for r in runs:
logger.info(f"{classify(r):16s} seed={r['seed']} steps={len(r['steps'])} {r['vhack']}") logger.info(f"{classify(r):16s} seed={r['seed']} steps={len(r['steps'])} {r['vhack']}")
args.out.parent.mkdir(parents=True, exist_ok=True) args.out.parent.mkdir(parents=True, exist_ok=True)
plot(runs, args.out) _render_all(runs, args.out)
# second figure: single-panel arm-vs-arm overlay of the headline metric
overlay = args.out.with_name(args.out.stem + "_hack_overlay.png")
plot_hack_overlay(runs, overlay) def _render_all(runs: list[dict], out: Path) -> None:
# third figure: 2x2 train(knob-on) vs deploy(knob-off) x arm """The three dynamics figures, shared by the log-parse and --from-csv paths."""
tvd = args.out.with_name(args.out.stem + "_train_deploy.png") out.parent.mkdir(parents=True, exist_ok=True)
plot_train_vs_deploy(runs, tvd) plot(runs, out) # small-multiples + CSV dump
for p in (args.out, overlay, tvd): overlay = out.with_name(out.stem + "_hack_overlay.png")
plot_hack_overlay(runs, overlay) # arm-vs-arm headline overlay
tvd = out.with_name(out.stem + "_train_deploy.png")
plot_train_vs_deploy(runs, tvd) # 2x2 train(on) vs deploy(off)
for p in (out, overlay, tvd):
logger.info(f"docs/figs latest -> {link_latest(p)}") logger.info(f"docs/figs latest -> {link_latest(p)}")
+8 -5
View File
@@ -21,9 +21,12 @@ import matplotlib.pyplot as plt
import numpy as np import numpy as np
from loguru import logger from loguru import logger
from projected_grpo.figs import link_latest from projected_grpo.figs import link_latest, save_fig
from plot_dynamics import _ema, _gather, _onset, parse_log from plot_dynamics import _ema, _gather, _onset, parse_log
# Captioned downstream, so the title just restates the caption. --title re-enables.
SHOW_TITLE = False
# Distinct hue per mode (qualitative). solve drawn dashed in the same hue so each # Distinct hue per mode (qualitative). solve drawn dashed in the same hue so each
# mode's hack/solve pair reads together. # mode's hack/solve pair reads together.
MODE_COLORS = { MODE_COLORS = {
@@ -71,11 +74,11 @@ def plot(runs_by_mode: dict[str, list[dict]], out: Path) -> None:
ax.spines["top"].set_visible(False) ax.spines["top"].set_visible(False)
ax.spines["right"].set_visible(False) ax.spines["right"].set_visible(False)
ax.tick_params(labelsize=8) ax.tick_params(labelsize=8)
ax.set_title("Loophole emergence under vanilla GRPO " if SHOW_TITLE:
"(solid=hack/exploited, dashed=solve/gt_correct; EMA-5)", fontsize=9) ax.set_title("Loophole emergence under vanilla GRPO "
"(solid=hack/exploited, dashed=solve/gt_correct; EMA-5)", fontsize=9)
fig.tight_layout() fig.tight_layout()
out.parent.mkdir(parents=True, exist_ok=True) save_fig(fig, out)
fig.savefig(out, dpi=150, bbox_inches="tight")
logger.info(f"wrote {out} (modes={modes})") logger.info(f"wrote {out} (modes={modes})")
+4 -4
View File
@@ -39,6 +39,8 @@ import matplotlib.pyplot as plt
import numpy as np import numpy as np
from loguru import logger from loguru import logger
from projected_grpo.figs import save_fig
# hk_ column header -> (display mode, colour). Order = panel/legend order. # hk_ column header -> (display mode, colour). Order = panel/legend order.
# Colourblind-safe-ish qualitative set; one hue per loophole, reused across panels. # Colourblind-safe-ish qualitative set; one hue per loophole, reused across panels.
HK = { HK = {
@@ -172,9 +174,8 @@ def plot_by_method(runs, ylabel, cumulative, span, out: Path):
fontsize=6.5, va="top", color="#888") fontsize=6.5, va="top", color="#888")
axes[0].set_ylabel(ylabel) axes[0].set_ylabel(ylabel)
axes[0].set_ylim(-0.02, None) axes[0].set_ylim(-0.02, None)
out.parent.mkdir(parents=True, exist_ok=True)
fig.tight_layout() fig.tight_layout()
fig.savefig(out, dpi=140, bbox_inches="tight") save_fig(fig, out)
logger.info(f"wrote {out} (by-method, {len(methods)} methods)") logger.info(f"wrote {out} (by-method, {len(methods)} methods)")
@@ -205,9 +206,8 @@ def plot_by_hack(runs, ylabel, cumulative, span, out: Path):
_despine(ax) _despine(ax)
axes[0].set_ylabel(ylabel) axes[0].set_ylabel(ylabel)
axes[0].set_ylim(-0.02, None) axes[0].set_ylim(-0.02, None)
out.parent.mkdir(parents=True, exist_ok=True)
fig.tight_layout() fig.tight_layout()
fig.savefig(out, dpi=140, bbox_inches="tight") save_fig(fig, out)
logger.info(f"wrote {out} (by-hack, {len(modes)} modes)") logger.info(f"wrote {out} (by-hack, {len(modes)} modes)")
+27
View File
@@ -16,6 +16,33 @@ from pathlib import Path
FIGS_DIR = Path("docs/figs") FIGS_DIR = Path("docs/figs")
# Reader-facing arm names. Code/log tags carry our internal vocabulary
# (route2 = the current routing arm; "knob" = the delta_S adapter); plots must
# not. Map every internal tag to the word a paper reader sees. Anything missing
# falls through to its raw tag, so a new arm shows up loud rather than silently
# mislabelled.
ARM_DISPLAY = {
"routing2": "route", "route2": "route",
"routing2_grad": "route", "routing2_act": "route (act)",
"projected": "erase", "route": "route", "erase": "erase", "vanilla": "vanilla",
}
def arm_label(tag: str) -> str:
return ARM_DISPLAY.get(tag, tag)
def save_fig(fig, png_path: Path, formats=("png", "svg", "pdf")) -> Path:
"""Save one figure to every format (vector .svg/.pdf for the paper, .png for
the blog/preview) and return the .png path. matplotlib picks the writer from
the suffix, so we just swap it. bbox_inches='tight' so titleless figures
don't leave a margin where the suptitle used to be."""
png_path = Path(png_path)
png_path.parent.mkdir(parents=True, exist_ok=True)
for ext in formats:
fig.savefig(png_path.with_suffix(f".{ext}"), dpi=150, bbox_inches="tight")
return png_path
def link_latest(out_path: Path) -> Path: def link_latest(out_path: Path) -> Path:
"""Point docs/figs/<out_path.name> at out_path (relative symlink). Returns the link.""" """Point docs/figs/<out_path.name> at out_path (relative symlink). Returns the link."""