/* the first run: the sheet, the two cards it offers, and the state it read out of the config — "::". setupWrites is the number of times the store has stamped setup_done, and a PREVIEW must leave it where it found it: that is the whole proof that the door in You is not a door onto Kyle's own config, and the phone walk asserts it on his phone. */ setupUp: !!document.querySelector('.halfsheet.up .setup'), setupCards: [].map.call(document.querySelectorAll('.halfsheet.up .setup .sheet-sec'), function (s) { return s.textContent.trim(); }).join('|'), setupState: (function () { try { return __ss.setupState(); } catch (e) { return ''; } })(), setupWrites: (function () { try { return __ss.setup.writes; } catch (e) { return -1; } })(), /* the note the blocked screen carries, and the rows it offers: a row goes away because the config changed, not because a flag was flipped, which is why the count is the thing worth reading */ setupNotes: document.querySelectorAll('.screen .setup-note').length, setupRows: document.querySelectorAll('.screen .setup-note .row').length, setupNoteText: [].map.call(document.querySelectorAll('.screen .setup-note .row .t'), function (t) { return t.textContent.trim(); }).join('|'), signIn: ((document.querySelector('.signin .signin-t') || {}).textContent || '').trim(),