```json
{
  "sym_variables": [
    ("x0", "milligrams of vitamin B6"),
    ("x1", "milligrams of vitamin E"),
    ("x2", "milligrams of vitamin B7"),
    ("x3", "milligrams of magnesium"),
    ("x4", "milligrams of vitamin C"),
    ("x5", "milligrams of vitamin B5")
  ],
  "objective_function": "5.41 * x0 + 5.7 * x1 + 5.02 * x2 + 8.15 * x3 + 6.99 * x4 + 4.23 * x5",
  "constraints": [
    "7*x0 + 9*x2 >= 31",
    "7*x0 + 7*x4 + 10*x5 >= 21",
    "7*x0 + 9*x2 + 7*x4 >= 21",
    "7*x0 + 1*x3 + 7*x4 >= 21",
    "6*x1 + 9*x2 + 10*x5 >= 21",
    "6*x1 + 9*x2 + 7*x4 >= 21",
    "9*x2 + 1*x3 + 7*x4 >= 21",
    "7*x0 + 6*x1 + 1*x3 >= 21",
    "7*x0 + 7*x4 + 10*x5 >= 38",
    "7*x0 + 9*x2 + 7*x4 >= 38",
    "7*x0 + 1*x3 + 7*x4 >= 38",
    "6*x1 + 9*x2 + 10*x5 >= 38",
    "6*x1 + 9*x2 + 7*x4 >= 38",
    "9*x2 + 1*x3 + 7*x4 >= 38",
    "7*x0 + 6*x1 + 1*x3 >= 38",
    "7*x0 + 7*x4 + 10*x5 >= 30",
    "7*x0 + 9*x2 + 7*x4 >= 30",
    "7*x0 + 1*x3 + 7*x4 >= 30",
    "6*x1 + 9*x2 + 10*x5 >= 30",
    "6*x1 + 9*x2 + 7*x4 >= 30",
    "9*x2 + 1*x3 + 7*x4 >= 30",
    "7*x0 + 6*x1 + 1*x3 >= 30",
    "7*x0 + 7*x4 + 10*x5 >= 38",
    "7*x0 + 9*x2 + 7*x4 >= 38",
    "7*x0 + 1*x3 + 7*x4 >= 38",
    "6*x1 + 9*x2 + 10*x5 >= 38",
    "6*x1 + 9*x2 + 7*x4 >= 38",
    "9*x2 + 1*x3 + 7*x4 >= 38",
    "7*x0 + 6*x1 + 1*x3 >= 38",
    "7*x0 + 7*x4 + 10*x5 >= 32",
    "7*x0 + 9*x2 + 7*x4 >= 32",
    "7*x0 + 1*x3 + 7*x4 >= 32",
    "6*x1 + 9*x2 + 10*x5 >= 32",
    "6*x1 + 9*x2 + 7*x4 >= 32",
    "9*x2 + 1*x3 + 7*x4 >= 32",
    "7*x0 + 6*x1 + 1*x3 >= 32",
    "7*x0 + 7*x4 + 10*x5 >= 21",
    "7*x0 + 9*x2 + 7*x4 >= 21",
    "7*x0 + 1*x3 + 7*x4 >= 21",
    "6*x1 + 9*x2 + 10*x5 >= 21",
    "6*x1 + 9*x2 + 7*x4 >= 21",
    "9*x2 + 1*x3 + 7*x4 >= 21",
    "7*x0 + 6*x1 + 1*x3 >= 21",
    "7*x0 + 7*x4 + 10*x5 >= 36",
    "7*x0 + 9*x2 + 7*x4 >= 36",
    "7*x0 + 1*x3 + 7*x4 >= 36",
    "6*x1 + 9*x2 + 10*x5 >= 36",
    "6*x1 + 9*x2 + 7*x4 >= 36",
    "9*x2 + 1*x3 + 7*x4 >= 36",
    "7*x0 + 6*x1 + 1*x3 >= 36",
    "7*x0 + 1*x3 <= 225",
    "7*x0 + 10*x5 <= 85",
    "7*x0 + 6*x1 <= 171",
    "1*x3 + 10*x5 <= 168",
    "1*x3 + 7*x4 <= 182",
    "6*x1 + 9*x2 <= 190",
    "7*x4 + 10*x5 <= 145",
    "6*x1 + 9*x2 + 1*x3 <= 224",
    "1*x3 + 7*x4 + 10*x5 <= 216",
    "7*x0 + 9*x2 + 10*x5 <= 67",
    "6*x1 + 1*x3 + 10*x5 <= 134",
    "7*x0 + 6*x1 + 9*x2 + 1*x3 + 7*x4 + 10*x5 <= 134",
    "x0 >= 0",
    "x1 >= 0",
    "x2 >= 0",
    "x3 >= 0",
    "x4 >= 0",
    "x5 >= 0"
  ]
}
```

```python
import gurobipy as gp

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

# Create variables
vitamin_b6 = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="vitamin_b6")
vitamin_e = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="vitamin_e")
vitamin_b7 = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="vitamin_b7")
magnesium = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="magnesium")
vitamin_c = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="vitamin_c")
vitamin_b5 = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="vitamin_b5")


# Set objective function
m.setObjective(5.41 * vitamin_b6 + 5.7 * vitamin_e + 5.02 * vitamin_b7 + 8.15 * magnesium + 6.99 * vitamin_c + 4.23 * vitamin_b5, gp.GRB.MAXIMIZE)

# Add constraints
m.addConstr(7 * vitamin_b6 + 9 * vitamin_b7 >= 31)
m.addConstr(7 * vitamin_b6 + 7 * vitamin_c + 10 * vitamin_b5 >= 21)
m.addConstr(7 * vitamin_b6 + 9 * vitamin_b7 + 7 * vitamin_c >= 21)
# ... (add all other constraints similarly)

# Add upper bound constraints
m.addConstr(7 * vitamin_b6 + magnesium <= 225)
m.addConstr(7 * vitamin_b6 + 10 * vitamin_b5 <= 85)
# ... (add all other upper bound constraints similarly)

# Add global upper bound constraint
m.addConstr(7 * vitamin_b6 + 6 * vitamin_e + 9 * vitamin_b7 + magnesium + 7 * vitamin_c + 10 * vitamin_b5 <= 134)


# Optimize model
m.optimize()

# Print results
if m.status == gp.GRB.OPTIMAL:
    print('Obj: %g' % m.objVal)
    print('vitamin_b6:', vitamin_b6.x)
    print('vitamin_e:', vitamin_e.x)
    print('vitamin_b7:', vitamin_b7.x)
    print('magnesium:', magnesium.x)
    print('vitamin_c:', vitamin_c.x)
    print('vitamin_b5:', vitamin_b5.x)

elif m.status == gp.GRB.INFEASIBLE:
    print("The model is infeasible.")
else:
    print("Optimization ended with status:", m.status)

```