   case 13: return new Twinkle(lights);
   case 14: return new RedGreenChase(lights);
   case 15: return new Pulse(lights);
+  case 16: return new Cylon(lights);
   case PROGRAM_COUNT:
   default:
     // PROBLEM! PROGRAM_COUNT is wrong.

  uint16_t sequence_;
};

// How long each program should run.
#define PROGRAM_DURATION_SECONDS (30)


    sequence_(0) {}

  uint32_t Do() {
    g35_.fill_sequence(0, count_, sequence_, 1, pulser);
    if (count_ < light_count_) {
      ++count_;
    } else {
