```json
{
  "sym_variables": [
    ("x0", "sashimi"),
    ("x1", "kale salads"),
    ("x2", "chicken thighs"),
    ("x3", "protein bars"),
    ("x4", "hot dogs"),
    ("x5", "bagged salads")
  ],
  "objective_function": "4.42 * x0 + 1.83 * x1 + 7.55 * x2 + 7.94 * x3 + 5.31 * x4 + 9.47 * x5",
  "constraints": [
    "11 * x0 + 19 * x1 + 9 * x2 + 13 * x3 + 3 * x4 + 3 * x5 <= 693",
    "18 * x0 + 21 * x1 + 17 * x2 + 20 * x3 + 6 * x4 + 6 * x5 <= 836",
    "19 * x1 + 9 * x2 >= 45",
    "13 * x3 + 3 * x4 >= 47",
    "19 * x1 + 3 * x5 >= 67",
    "19 * x1 + 13 * x3 >= 78",
    "11 * x0 + 3 * x4 >= 112",
    "11 * x0 + 13 * x3 >= 103",
    "13 * x3 + 3 * x5 >= 43",
    "9 * x2 + 13 * x3 >= 96",
    "11 * x0 + 9 * x2 >= 64",
    "19 * x1 + 3 * x4 >= 69",
    "11 * x0 + 19 * x1 + 9 * x2 >= 114",
    "11 * x0 + 9 * x2 + 13 * x3 >= 114",
    "9 * x2 + 13 * x3 + 3 * x4 >= 114",
    "11 * x0 + 19 * x1 + 9 * x2 >= 58",
    "11 * x0 + 9 * x2 + 13 * x3 >= 58",
    "9 * x2 + 13 * x3 + 3 * x4 >= 58",
    "11 * x0 + 19 * x1 + 9 * x2 >= 104",
    "11 * x0 + 9 * x2 + 13 * x3 >= 104",
    "9 * x2 + 13 * x3 + 3 * x4 >= 104",
    "11 * x0 + 19 * x1 + 9 * x2 + 13 * x3 + 3 * x4 + 3 * x5 >= 104",
    "18 * x0 + 6 * x4 >= 138",
    "20 * x3 + 6 * x5 >= 92",
    "17 * x2 + 20 * x3 >= 139",
    "18 * x0 + 21 * x1 >= 89",
    "20 * x3 + 6 * x4 >= 68",
    "21 * x1 + 20 * x3 >= 90",
    "21 * x1 + 6 * x4 + 6 * x5 >= 90",
    "18 * x0 + 20 * x3 + 6 * x5 >= 90",
    "21 * x1 + 17 * x2 + 6 * x5 >= 90",
    "18 * x0 + 17 * x2 + 6 * x5 >= 90",
    "21 * x1 + 17 * x2 + 20 * x3 >= 90",
    "18 * x0 + 17 * x2 + 6 * x4 >= 90",
    "21 * x1 + 20 * x3 + 6 * x4 >= 90",
    "-8 * x2 + 6 * x4 >= 0",
    "-6 * x2 + 3 * x5 >= 0",
    "-8 * x0 + 5 * x1 >= 0",
    "6 * x4 + 6 * x5 <= 412",
    "20 * x3 + 6 * x4 <= 460",
    "18 * x0 + 6 * x4 + 6 * x5 <= 142"

  ]
}
```

```python
import gurobipy as gp

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

# Create variables
sashimi = m.addVar(name="sashimi")
kale_salads = m.addVar(name="kale_salads")
chicken_thighs = m.addVar(name="chicken_thighs")
protein_bars = m.addVar(name="protein_bars")
hot_dogs = m.addVar(name="hot_dogs")
bagged_salads = m.addVar(name="bagged_salads")


# Set objective function
m.setObjective(4.42 * sashimi + 1.83 * kale_salads + 7.55 * chicken_thighs + 7.94 * protein_bars + 5.31 * hot_dogs + 9.47 * bagged_salads, gp.GRB.MINIMIZE)

# Add constraints
m.addConstr(11 * sashimi + 19 * kale_salads + 9 * chicken_thighs + 13 * protein_bars + 3 * hot_dogs + 3 * bagged_salads <= 693)
m.addConstr(18 * sashimi + 21 * kale_salads + 17 * chicken_thighs + 20 * protein_bars + 6 * hot_dogs + 6 * bagged_salads <= 836)
# ... (add all other constraints similarly, substituting variable names)

# Optimize model
m.optimize()

# Print results
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('Problem is infeasible.')
else:
    print('Optimization ended with status %d' % m.status)

```
