```json
{
  "sym_variables": [
    ("x0", "milligrams of potassium"),
    ("x1", "grams of protein"),
    ("x2", "milligrams of vitamin D"),
    ("x3", "milligrams of vitamin B12"),
    ("x4", "milligrams of calcium")
  ],
  "objective_function": "7.11*x0 + 6.69*x1 + 9.02*x2 + 1.68*x3 + 1.57*x4",
  "constraints": [
    "2*x0 + 5*x1 + 4*x2 + 4*x3 + 7*x4 <= 182",
    "2*x0 + 4*x2 >= 23",
    "2*x0 + 7*x4 >= 35",
    "5*x1 + 7*x4 >= 12",
    "2*x0 + 5*x1 >= 21",
    "4*x2 + 7*x4 >= 28",
    "4*x3 + 7*x4 >= 16",
    "2*x0 + 4*x3 >= 18",
    "4*x2 + 4*x3 >= 25",
    "2*x0 + 4*x2 + 4*x3 >= 35",
    "2*x0 + 5*x1 + 4*x3 >= 35",
    "4*x2 + 4*x3 + 7*x4 >= 35",
    "5*x1 + 4*x2 + 4*x3 >= 35",
    "2*x0 + 4*x2 + 7*x4 >= 35",
    "2*x0 + 4*x3 + 7*x4 >= 35",
    "2*x0 + 4*x2 + 4*x3 >= 35", 
    "2*x0 + 5*x1 + 4*x3 >= 35",
    "4*x2 + 4*x3 + 7*x4 >= 35",
    "5*x1 + 4*x2 + 4*x3 >= 35",
    "2*x0 + 4*x2 + 7*x4 >= 35",
    "2*x0 + 4*x3 + 7*x4 >= 35",
    "2*x0 + 4*x2 + 4*x3 >= 32",
    "2*x0 + 5*x1 + 4*x3 >= 32",
    "4*x2 + 4*x3 + 7*x4 >= 32",
    "5*x1 + 4*x2 + 4*x3 >= 32",
    "2*x0 + 4*x2 + 7*x4 >= 32",
    "2*x0 + 4*x3 + 7*x4 >= 32",
    "2*x0 + 4*x2 + 4*x3 >= 35",
    "2*x0 + 5*x1 + 4*x3 >= 35",
    "4*x2 + 4*x3 + 7*x4 >= 35",
    "5*x1 + 4*x2 + 4*x3 >= 35",
    "2*x0 + 4*x2 + 7*x4 >= 35",
    "2*x0 + 4*x3 + 7*x4 >= 35",
    "2*x0 + 4*x2 + 4*x3 >= 31",
    "2*x0 + 5*x1 + 4*x3 >= 31",
    "4*x2 + 4*x3 + 7*x4 >= 31",
    "5*x1 + 4*x2 + 4*x3 >= 31",
    "2*x0 + 4*x2 + 7*x4 >= 31",
    "2*x0 + 4*x3 + 7*x4 >= 31",
    "2*x0 + 4*x2 + 4*x3 >= 24",
    "2*x0 + 5*x1 + 4*x3 >= 24",
    "4*x2 + 4*x3 + 7*x4 >= 24",
    "5*x1 + 4*x2 + 4*x3 >= 24",
    "2*x0 + 4*x2 + 7*x4 >= 24",
    "2*x0 + 4*x3 + 7*x4 >= 24",
    "2*x0 + 5*x1 + 4*x2 + 4*x3 + 7*x4 >= 24",
    "-2*x0 + 10*x3 >= 0",
    "4*x1 - 3*x2 >= 0",
    "2*x0 + 4*x2 <= 72",
    "5*x1 + 4*x3 <= 79",
    "4*x2 + 4*x3 <= 124",
    "2*x0 + 7*x4 <= 78",
    "5*x1 + 4*x2 <= 130",
    "2*x0 + 4*x3 <= 140"
  ]
}
```

```python
import gurobipy as gp

# Create a new model
m = gp.Model("nutrition_optimization")

# Create variables
x = m.addVars(5, lb=0, vtype=gp.GRB.CONTINUOUS, name=["potassium", "protein", "vitamin_D", "vitamin_B12", "calcium"])

# Set objective function
m.setObjective(7.11 * x[0] + 6.69 * x[1] + 9.02 * x[2] + 1.68 * x[3] + 1.57 * x[4], gp.GRB.MINIMIZE)

# Add constraints
m.addConstr(2 * x[0] + 5 * x[1] + 4 * x[2] + 4 * x[3] + 7 * x[4] <= 182, "r0")
m.addConstr(2 * x[0] + 4 * x[2] >= 23, "c1")
m.addConstr(2 * x[0] + 7 * x[4] >= 35, "c2")
m.addConstr(5 * x[1] + 7 * x[4] >= 12, "c3")
m.addConstr(2 * x[0] + 5 * x[1] >= 21, "c4")
m.addConstr(4 * x[2] + 7 * x[4] >= 28, "c5")
m.addConstr(4 * x[3] + 7 * x[4] >= 16, "c6")
m.addConstr(2 * x[0] + 4 * x[3] >= 18, "c7")
m.addConstr(4 * x[2] + 4 * x[3] >= 25, "c8")
m.addConstr(2 * x[0] + 4 * x[2] + 4 * x[3] >= 35, "c9")
m.addConstr(2 * x[0] + 5 * x[1] + 4 * x[3] >= 35, "c10")
m.addConstr(4 * x[2] + 4 * x[3] + 7 * x[4] >= 35, "c11")
m.addConstr(5 * x[1] + 4 * x[2] + 4 * x[3] >= 35, "c12")
m.addConstr(2 * x[0] + 4 * x[2] + 7 * x[4] >= 35, "c13")
m.addConstr(2 * x[0] + 4 * x[3] + 7 * x[4] >= 35, "c14")

# ... (rest of the combined kidney support index constraints, removing duplicates)

m.addConstr(-2 * x[0] + 10 * x[3] >= 0, "c47")
m.addConstr(4 * x[1] - 3 * x[2] >= 0, "c48")
m.addConstr(2 * x[0] + 4 * x[2] <= 72, "c49")
m.addConstr(5 * x[1] + 4 * x[3] <= 79, "c50")
m.addConstr(4 * x[2] + 4 * x[3] <= 124, "c51")
m.addConstr(2 * x[0] + 7 * x[4] <= 78, "c52")
m.addConstr(5 * x[1] + 4 * x[2] <= 130, "c53")
m.addConstr(2 * x[0] + 4 * x[3] <= 140, "c54")


# Optimize model
m.optimize()

# Print solution
if m.status == gp.GRB.OPTIMAL:
    print('Obj: %g' % m.objVal)
    for v in m.getVars():
        print('%s %g' % (v.varName, v.x))
elif m.status == gp.GRB.INFEASIBLE:
    print("Model is infeasible")
else:
    print("Optimization ended with status %d" % m.status)

```