OQIWNGD4Q7G5ZW7KTM6FUUEYX43DZ6LNP3Q5BXXLGE35QLU3LX5AC VU32RUBVDALKOIZIBYU5HFDFFBP476UZNCNFBMZERMDVSLBGGU3AC AUE2Y6HE5AIZVFO6EGLYNXKBDXGXJKDURTA4CFAEX6ZWRZKUCMUQC GQBUV2XOMEPMTXMPCBQWGGIUXGQDX77VTGPFIG6YT7G64ASOYHXQC PRSUR45QDYG7L27BQRCFA2ELO3FSQGOXTTYXSO6UB2JDWWZXPNBQC SYUCEGP3UTN76WUUAO7E2BDEZFRZILUZBKB6LG5C2N54SFGDU5LAC ETDSXJMCK2R5HLWABQZXUKNRGXXF4MDBGIOTHSMICJLDVTR3FYEQC function command.link(rel)if Grab_pane == nil thenprint('link: needs something to be in the secondary "grab" cursor but found nothing')returnendif rel == nil thenrel = 'next'endif Cursor_pane.col < 1 thenprint('no current note')returnendlocal pane = Surface[Cursor_pane.col][Cursor_pane.row]if pane == nil thenprint('no current note')returnendif Cache[pane.id].links[rel] thenprint(('%s already has a %s note'):format(pane.id, rel))returnendprint('connecting up links')Cache[pane.id].links[rel] = Grab_pane.idCache[Grab_pane.id].links[Opposite[rel]] = pane.idrefresh_pane_height(pane) -- just in case this is the first linkrefresh_pane_height(Grab_pane) -- just in case this is the first linkGrab_pane = nilplan_draw()end