code: def xorc_constraint(v=0, sense="maximize"):
      
      assert v in [0,1], "v must be 0 or 1 instead of %s" % v.__repr__()
      model, x, y, z = _init()
      r = model.addVar("r", "B")
      n = model.addVar("n", "I") # auxiliary
      model.addCons(r+quicksum([x,y,z]) == 2*n)
      model.addCons(x==v)
      model.setObjective(r, sense=sense)
      _optimize("Custom XOR (as variable)", model)
docs: XOR (r as variable) custom constraint