namespace Day20; public class FlipFlopModule : Module { private bool _state = false; public FlipFlopModule(string name) : base(name) { } public override string GetState() { return _state ? "1" : "0"; } public override void Reset() { _state = false; } public override IEnumerable Process(Pulse p) { if (p.Value == false) { _state = !_state; return _outputs.Select(o => new Pulse(Name, o.Name, _state)); } return Enumerable.Empty(); } }