```json
{
  "sym_variables": [
    ("x0", "cartons of milk"),
    ("x1", "rubber gloves"),
    ("x2", "toilet paper rolls"),
    ("x3", "diapers"),
    ("x4", "paper towel rolls"),
    ("x5", "dish soap bottles"),
    ("x6", "cookies")
  ],
  "objective_function": "9*x0**2 + 5*x0*x1 + 5*x0*x2 + 7*x0*x3 + 4*x0*x4 + 7*x0*x5 + 5*x1*x2 + 1*x1*x3 + 8*x1*x5 + 1*x2**2 + 7*x2*x3 + 9*x2*x4 + 4*x2*x5 + 9*x2*x6 + 2*x3**2 + 3*x3*x5 + 4*x3*x6 + 7*x4**2 + 5*x4*x5 + 3*x5**2 + 5*x5*x6 + 4*x6**2 + 8*x0 + 5*x1 + 5*x2 + 8*x4 + 4*x5 + 1*x6",
  "constraints": [
    "1*x1 + 20*x5 >= 43",
    "1*x1**2 + 14*x2**2 >= 29",
    "12*x0 + 14*x3 >= 39",
    "14*x2 + 19*x6 >= 21",
    "14*x3 + 10*x4 + 20*x5 >= 26",
    "12*x0 + 14*x3 + 19*x6 >= 26",
    "1*x1 + 14*x3 + 19*x6 >= 26",
    "12*x0 + 14*x3 + 20*x5 >= 26",
    "12*x0 + 10*x4 + 19*x6 >= 26",
    "1*x1 + 14*x2 + 20*x5 >= 26",
    "12*x0 + 1*x1 + 19*x6 >= 26",
    "1*x1 + 20*x5 + 19*x6 >= 26",
    "12*x0 + 14*x2 + 10*x4 >= 26",
    "14*x3 + 10*x4 + 20*x5 >= 37",
    "12*x0**2 + 14*x3**2 + 19*x6**2 >= 37",
    "1*x1 + 14*x3 + 19*x6 >= 37",
    "12*x0**2 + 14*x3**2 + 20*x5**2 >= 37",
    "12*x0 + 10*x4 + 19*x6 >= 37",
    "1*x1 + 14*x2 + 20*x5 >= 37",
    "12*x0 + 1*x1 + 19*x6 >= 37",
    "1*x1**2 + 20*x5**2 + 19*x6**2 >= 37",
    "12*x0**2 + 14*x2**2 + 10*x4**2 >= 37",
    "14*x3 + 10*x4 + 20*x5 >= 46",
    "12*x0**2 + 14*x3**2 + 19*x6**2 >= 46",
    "1*x1**2 + 14*x3**2 + 19*x6**2 >= 46",
    "12*x0 + 14*x3 + 20*x5 >= 46",
    "12*x0**2 + 10*x4**2 + 19*x6**2 >= 46",
    "1*x1 + 14*x2 + 20*x5 >= 46",
    "12*x0**2 + 1*x1**2 + 19*x6**2 >= 46",
    "1*x1 + 20*x5 + 19*x6 >= 46",
    "12*x0 + 14*x2 + 10*x4 >= 46",
    "14*x3 + 10*x4 + 20*x5 >= 23",
    "12*x0 + 14*x3 + 19*x6 >= 23",
    "1*x1 + 14*x3 + 19*x6 >= 23",
    "12*x0 + 14*x3 + 20*x5 >= 23",
    "12*x0**2 + 10*x4**2 + 19*x6**2 >= 23",
    "1*x1**2 + 14*x2**2 + 20*x5**2 >= 23",
    "12*x0 + 1*x1 + 19*x6 >= 23",
    "1*x1 + 20*x5 + 19*x6 >= 23",
    "12*x0 + 14*x2 + 10*x4 >= 23",
    "14*x3 + 10*x4 + 20*x5 >= 31",
    "12*x0 + 14*x3 + 19*x6 >= 31",
    "1*x1**2 + 14*x3**2 + 19*x6**2 >= 31",
    "12*x0 + 14*x3 + 20*x5 >= 31",
    "12*x0 + 10*x4 + 19*x6 >= 31",
    "1*x1 + 14*x2 + 20*x5 >= 31",
    "12*x0 + 1*x1 + 19*x6 >= 31",
    "1*x1 + 20*x5 + 19*x6 >= 31",
    "12*x0 + 14*x2 + 10*x4 >= 31",
    "14*x3 + 10*x4 + 20*x5 >= 31",
    "12*x0 + 14*x3 + 19*x6 >= 31",
    "1*x1 + 14*x3 + 19*x6 >= 31",
    "12*x0 + 14*x3 + 20*x5 >= 31",
    "12*x0 + 10*x4 + 19*x6 >= 31",
    "1*x1 + 14*x2 + 20*x5 >= 31",
    "12*x0 + 1*x1 + 19*x6 >= 31",
    "1*x1**2 + 20*x5**2 + 19*x6**2 >= 31",
    "12*x0 + 14*x2 + 10*x4 >= 31",
    "14*x3 + 10*x4 + 20*x5 >= 44",
    "12*x0 + 14*x3 + 19*x6 >= 44",
    "1*x1**2 + 14*x3**2 + 19*x6**2 >= 44",
    "12*x0**2 + 14*x3**2 + 20*x5**2 >= 44",
    "12*x0**2 + 10*x4**2 + 19*x6**2 >= 44",
    "1*x1 + 14*x2 + 20*x5 >= 44",
    "12*x0 + 1*x1 + 19*x6 >= 44",
    "1*x1 + 20*x5 + 19*x6 >= 44",
    "12*x0 + 14*x2 + 10*x4 >= 44",
    "14*x3 + 10*x4 + 20*x5 >= 24",
    "12*x0 + 14*x3 + 19*x6 >= 24",
    "1*x1 + 14*x3 + 19*x6 >= 24",
    "12*x0 + 14*x3 + 20*x5 >= 24",
    "12*x0 + 10*x4 + 19*x6 >= 24",
    "1*x1**2 + 14*x2**2 + 20*x5**2 >= 24",
    "12*x0 + 1*x1 + 19*x6 >= 24",
    "1*x1**2 + 20*x5**2 + 19*x6**2 >= 24",
    "12*x0 + 14*x2 + 10*x4 >= 24",
    "14*x3**2 + 10*x4**2 + 20*x5**2 >= 30",
    "12*x0 + 14*x3 + 19*x6 >= 30",
    "1*x1**2 + 14*x3**2 + 19*x6**2 >= 30",
    "12*x0**2 + 14*x3**2 + 20*x5**2 >= 30",
    "12*x0 + 10*x4 + 19*x6 >= 30",
    "1*x1**2 + 14*x2**2 + 20*x5**2 >= 30",
    "12*x0**2 + 1*x1**2 + 19*x6**2 >= 30",
    "1*x1**2 + 20*x5**2 + 19*x6**2 >= 30",
    "12*x0 + 14*x2 + 10*x4 >= 30",
    "12*x0 + 1*x1 + 14*x2 + 14*x3 + 10*x4 + 20*x5 + 19*x6 >= 30",
    "3*x1**2 + 18*x4**2 >= 46",
    "18*x4 + 14*x5 >= 54",
    "3*x0**2 + 3*x1**2 >= 74",
    "3*x1 + 14*x5 >= 67",
    "7*x3 + 18*x4 >= 73",
    "3*x0 + 19*x6 >= 63",
    "3*x1 + 19*x6 >= 55",
    "8*x2**2 + 18*x4**2 >= 77",
    "3*x1 + 8*x2 >= 84",
    "14*x5 + 19*x6 >= 73",
    "3*x0**2 + 7*x3**2 >= 36",
    "8*x2 + 19*x6 >= 68",
    "8*x2**2 + 7*x3**2 >= 34",
    "3*x0**2 + 18*x4**2 >= 42",
    "3*x1 + 7*x3 + 18*x4 >= 43",
    "3*x0 + 3*x1 + 8*x2 + 7*x3 + 18*x4 + 14*x5 + 19*x6 >= 43",
    "10*x1 - 5*x6 >= 0",
    "3*x1 - 10*x4 >= 0",
    "14*x2 + 19*x6 <= 286",
    "10*x4**2 + 19*x6**2 <= 87",
    "10*x4 + 20*x5 <= 246",
    "12*x0**2 + 19*x6**2 <= 135",
    "1*x1 + 10*x4 <= 252",
    "1*x1 + 14*x3 <= 167",
    "12*x0 + 10*x4 <= 200",
    "1*x1**2 + 19*x6**2 <= 105",
    "14*x2 + 20*x5 + 19*x6 <= 53",
    "10*x4 + 20*x5 + 19*x6 <= 243",
    "12*x0 + 10*x4 + 19*x6 <= 310",
    "1*x1**2 + 14*x3**2 + 20*x5**2 <= 184",
    "12*x0 + 1*x1 + 14*x2 <= 201",
    "1*x1 + 14*x3 + 10*x4 <= 116",
    "12*x0**2 + 1*x1**2 + 14*x3**2 <= 187",
    "12*x0 + 14*x2 + 20*x5 <= 248",
    "3*x1 + 18*x4 <= 161",
    "3*x0 + 8*x2 <= 512",
    "3*x0 + 18*x4 <= 183",
    "7*x3**2 + 18*x4**2 <= 438",
    "8*x2**2 + 7*x3**2 <= 197",
    "3*x0**2 + 19*x6**2 <= 161",
    "8*x2 + 19*x6 <= 320",
    "3*x1 + 8*x2 <= 255",
    "3*x0 + 7*x3 <= 350",
    "3*x0 + 8*x2 + 14*x5 <= 351",
    "3*x1 + 7*x3 + 14*x5 <= 387",
    "3*x0 + 3*x1 + 14*x5 <= 533",
    "3*x0 + 18*x4 + 14*x5 <= 570",
    "7*x3 + 14*x5 + 19*x6 <= 468",
    "3*x1 + 14*x5 + 19*x6 <= 274",
    "8*x2**2 + 7*x3**2 + 19*x6**2 <= 351",
    "18*x4**2 + 14*x5**2 + 19*x6**2 <= 117",
    "3*x0 + 8*x2 + 18*x4 <= 394",
    "3*x0**2 + 3*x1**2 + 8*x2**2 <= 546",
    "8*x2**2 + 14*x5**2 + 19*x6**2 <= 274",
    "3*x0 + 3*x1 + 7*x3 <= 212",
    "3*x0 + 7*x3 + 14*x5 <= 151",
    "3*x0 + 7*x3 + 19*x6 <= 146",
    "3*x1**2 + 18*x4**2 + 14*x5**2 <= 469",
    "7*x3 + 18*x4 + 19*x6 <= 335",
    "7*x3**2 + 18*x4**2 + 14*x5**2 <= 212",
    "3*x1 + 8*x2 + 19*x6 <= 211",
    "8*x2 + 18*x4 + 19*x6 <= 579",
    "8*x2 + 7*x3 + 18*x4 <= 348",
    "3*x1 + 8*x2 + 14*x5 <= 415",
    "3*x1 + 18*x4 + 19*x6 <= 355",
    "3*x0 + 8*x2 + 7*x3 <= 351",
    "3*x1 + 7*x3 + 18*x4 <= 404",
    "3*x0**2 + 3*x1**2 + 18*x4**2 <= 560",
    "3*x0**2 + 8*x2**2 + 19*x6**2 <= 113",
    "3*x0**2 + 14*x5**2 + 19*x6**2 <= 263",
    "8*x2 + 18*x4 + 14*x5 <= 416",
    "12*x0 <= 327",
    "1*x1 <= 327",
    "14*x2 <= 327",
    "14*x3 <= 327",
    "10*x4 <= 327",
    "20*x5 <= 327",
    "19*x6 <= 327",
    "3*x0 <= 588",
    "3*x1 <= 588",
    "8*x2 <= 588",
    "7*x3 <= 588",
    "18*x4 <= 588",
    "14*x5 <= 588",
    "19*x6 <= 588"
  ]
}
```

```python
import gurobipy as gp
from gurobipy import GRB

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

# Create variables
x = {}
item_names = ['cartons of milk', 'rubber gloves', 'toilet paper rolls', 'diapers', 'paper towel rolls', 'dish soap bottles', 'cookies']
for i in range(len(item_names)):
    x[i] = m.addVar(vtype=GRB.INTEGER, name=item_names[i])


# Set objective function
objective = 9*x[0]**2 + 5*x[0]*x[1] + 5*x[0]*x[2] + 7*x[0]*x[3] + 4*x[0]*x[4] + 7*x[0]*x[5] + 5*x[1]*x[2] + 1*x[1]*x[3] + 8*x[1]*x[5] + 1*x[2]**2 + 7*x[2]*x[3] + 9*x[2]*x[4] + 4*x[2]*x[5] + 9*x[2]*x[6] + 2*x[3]**2 + 3*x[3]*x[5] + 4*x[3]*x[6] + 7*x[4]**2 + 5*x[4]*x[5] + 3*x[5]**2 + 5*x[5]*x[6] + 4*x[6]**2 + 8*x[0] + 5*x[1] + 5*x[2] + 8*x[4] + 4*x[5] + 1*x[6]
m.setObjective(objective, GRB.MINIMIZE)

# Add constraints
weights = [12, 1, 14, 14, 10, 20, 19]
sustainability_scores = [3, 3, 8, 7, 18, 14, 19]
resource_constraints = {'weight': 327, 'sustainability score': 588}

for resource, bound in resource_constraints.items():
    if resource == 'weight':
        values = weights
    else:
        values = sustainability_scores
    m.addConstr(gp.quicksum(values[i] * x[i] for i in range(len(item_names))) <= bound, resource)


with open('constraints.txt', 'r') as f:
    constraints = f.readlines()

for constraint in constraints:
    m.addConstr(eval(constraint))


# Optimize model
m.optimize()

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

```