Automatic repair for multi-threaded programs with Deadlock/Livelock using maximum satisfiability | Synapse