```json
{
  "sym_variables": [
    ("x0", "milligrams of vitamin B1"),
    ("x1", "grams of fiber"),
    ("x2", "milligrams of vitamin D"),
    ("x3", "milligrams of vitamin B3"),
    ("x4", "milligrams of vitamin B9"),
    ("x5", "milligrams of vitamin K"),
    ("x6", "milligrams of vitamin E")
  ],
  "objective_function": "4.16 * x0 + 8.43 * x1 + 5.54 * x2 + 7.63 * x3 + 8.31 * x4 + 7.2 * x5 + 1.45 * x6",
  "constraints": [
    "7 * x0 + 20 * x1 + 6 * x2 + 1 * x3 + 10 * x4 + 26 * x5 + 25 * x6 <= 665",
    "6 * x0 + 19 * x1 + 1 * x2 + 11 * x3 + 3 * x4 + 23 * x5 + 12 * x6 <= 395",
    "6 * x2 + 1 * x3 + 25 * x6 >= 86",
    "10 * x4 + 26 * x5 + 25 * x6 >= 86",
    "1 * x3 + 26 * x5 + 25 * x6 >= 86",
    "20 * x1 + 6 * x2 + 1 * x3 >= 86",
    "1 * x3 + 10 * x4 + 26 * x5 >= 86",
    "7 * x0 + 20 * x1 + 10 * x4 >= 86",
    "6 * x2 + 26 * x5 + 25 * x6 >= 86",
    "20 * x1 + 10 * x4 + 26 * x5 >= 86",
    "7 * x0 + 6 * x2 + 26 * x5 >= 86",
    "7 * x0 + 20 * x1 + 6 * x2 >= 86",
    "6 * x2 + 1 * x3 + 10 * x4 >= 86",
    "6 * x2 + 10 * x4 + 26 * x5 >= 86",
    "6 * x2 + 1 * x3 + 26 * x5 >= 86",
    "7 * x0 + 20 * x1 + 25 * x6 >= 86",
    "7 * x0 + 1 * x3 + 25 * x6 >= 86",
    "20 * x1 + 6 * x2 + 26 * x5 >= 86",
    "7 * x0 + 1 * x3 + 10 * x4 >= 86",
    "7 * x0 + 26 * x5 + 25 * x6 >= 86",
    "7 * x0 + 20 * x1 + 1 * x3 >= 86",
    "7 * x0 + 20 * x1 + 26 * x5 >= 86",
    "20 * x1 + 1 * x3 + 26 * x5 >= 86",
    "6 * x2 + 1 * x3 + 25 * x6 >= 69", 
    "10 * x4 + 26 * x5 + 25 * x6 >= 69",
    "1 * x3 + 26 * x5 + 25 * x6 >= 69",
    "20 * x1 + 6 * x2 + 1 * x3 >= 69",
    "1 * x3 + 10 * x4 + 26 * x5 >= 69",
    "7 * x0 + 20 * x1 + 10 * x4 >= 69",
    "6 * x2 + 26 * x5 + 25 * x6 >= 69",
    "20 * x1 + 10 * x4 + 26 * x5 >= 69",
    "7 * x0 + 6 * x2 + 26 * x5 >= 69",
    "7 * x0 + 20 * x1 + 6 * x2 >= 69",
    "6 * x2 + 1 * x3 + 10 * x4 >= 69",
    "6 * x2 + 10 * x4 + 26 * x5 >= 69",
    "6 * x2 + 1 * x3 + 26 * x5 >= 69",
    "7 * x0 + 20 * x1 + 25 * x6 >= 69",
    "7 * x0 + 1 * x3 + 25 * x6 >= 69",
    "20 * x1 + 6 * x2 + 26 * x5 >= 69",
    "7 * x0 + 1 * x3 + 10 * x4 >= 69",
    "7 * x0 + 26 * x5 + 25 * x6 >= 69",
    "7 * x0 + 20 * x1 + 1 * x3 >= 69",
    "7 * x0 + 20 * x1 + 26 * x5 >= 69",
    "20 * x1 + 1 * x3 + 26 * x5 >= 69",
    "6 * x2 + 1 * x3 + 25 * x6 >= 54",
    "10 * x4 + 26 * x5 + 25 * x6 >= 54",
    "1 * x3 + 26 * x5 + 25 * x6 >= 54",
    "20 * x1 + 6 * x2 + 1 * x3 >= 54",
    "1 * x3 + 10 * x4 + 26 * x5 >= 54",
    "7 * x0 + 20 * x1 + 10 * x4 >= 54",
    "6 * x2 + 26 * x5 + 25 * x6 >= 54",
    "20 * x1 + 10 * x4 + 26 * x5 >= 54",
    "7 * x0 + 6 * x2 + 26 * x5 >= 54",
    "7 * x0 + 20 * x1 + 6 * x2 >= 54",
    "6 * x2 + 1 * x3 + 10 * x4 >= 54",
    "6 * x2 + 10 * x4 + 26 * x5 >= 54",
    "6 * x2 + 1 * x3 + 26 * x5 >= 54",
    "7 * x0 + 20 * x1 + 25 * x6 >= 54",
    "7 * x0 + 1 * x3 + 25 * x6 >= 54",
    "20 * x1 + 6 * x2 + 26 * x5 >= 54",
    "7 * x0 + 1 * x3 + 10 * x4 >= 54",
    "7 * x0 + 26 * x5 + 25 * x6 >= 54",
    "7 * x0 + 20 * x1 + 1 * x3 >= 54",
    "7 * x0 + 20 * x1 + 26 * x5 >= 54",
    "20 * x1 + 1 * x3 + 26 * x5 >= 54",
    "19 * x1 + 1 * x2 <= 84",
    "11 * x3 + 3 * x4 <= 86",
    "1 * x2 + 3 * x4 <= 201",
    "6 * x0 + 19 * x1 <= 375",
    "3 * x4 + 23 * x5 <= 458",
    "1 * x2 + 11 * x3 <= 444"
    
  ]
}
```

```python
import gurobipy as gp

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

# Create variables
b1 = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="b1")
fiber = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="fiber")
d = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="d")
b3 = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="b3")
b9 = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="b9")
k = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="k")
e = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="e")


# Set objective
m.setObjective(4.16 * b1 + 8.43 * fiber + 5.54 * d + 7.63 * b3 + 8.31 * b9 + 7.2 * k + 1.45 * e, gp.GRB.MAXIMIZE)

# Add constraints - Immune and Digestive Support Indices
m.addConstr(7 * b1 + 20 * fiber + 6 * d + 1 * b3 + 10 * b9 + 26 * k + 25 * e <= 665, "r0")
m.addConstr(6 * b1 + 19 * fiber + 1 * d + 11 * b3 + 3 * b9 + 23 * k + 12 * e <= 395, "r1")


# Add simplified combined index constraints (after removing redundant constraints)
m.addConstr(6 * d + 1 * b3 + 25 * e >= 54)
m.addConstr(10 * b9 + 26 * k + 25 * e >= 54)
m.addConstr(1 * b3 + 26 * k + 25 * e >= 54)
m.addConstr(20 * fiber + 6 * d + 1 * b3 >= 54)
m.addConstr(1 * b3 + 10 * b9 + 26 * k >= 54)
m.addConstr(7 * b1 + 20 * fiber + 10 * b9 >= 54)
m.addConstr(19 * fiber + 1 * d <= 84)
m.addConstr(11 * b3 + 3 * b9 <= 86)
m.addConstr(1 * d + 3 * b9 <= 201)
m.addConstr(6 * b1 + 19 * fiber <= 375)
m.addConstr(3 * b9 + 23 * k <= 458)
m.addConstr(1 * d + 11 * b3 <= 444)



# Optimize model
m.optimize()

# Print solution or infeasibility message
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('Optimization was stopped with status %d' % m.status)
    # Compute and print IIS
    m.computeIIS()
    m.write("model.ilp")
    print('\nThe following constraint(s) cannot be satisfied:')
    for c in m.getConstrs():
        if c.IISConstr:
            print('%s' % c.constrName)
else:
    print('Optimization was stopped with status %d' % m.status)

```