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

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

# Create variables
vitamin_B7 = m.addVar(name="x0", lb=0.0)
vitamin_B12 = m.addVar(name="x1", lb=0.0)
vitamin_B9 = m.addVar(name="x2", lb=0.0)
fiber = m.addVar(name="x3", lb=0.0)
iron = m.addVar(name="x4", lb=0.0)
vitamin_D = m.addVar(name="x5", lb=0.0)
vitamin_A = m.addVar(name="x6", lb=0.0)

# Set objective function
m.setObjective(2*vitamin_B7*vitamin_B12 + 6*vitamin_B7*iron + 7*vitamin_B12*fiber + 9*vitamin_B12*vitamin_D + 3*vitamin_B12*vitamin_A + vitamin_B9*vitamin_A + 5*fiber*vitamin_D + 4*iron*iron + 5*iron*vitamin_A + vitamin_D*vitamin_A + 4*vitamin_B7 + 2*vitamin_B12 + vitamin_B9 + 6*fiber + 9*iron + 9*vitamin_A, GRB.MINIMIZE)

# Add resource constraints
resources = {
    'r0': {'upper_bound': 132, 'coeffs': [11, 9, 11, 9, 10, 3, 9]},
    'r1': {'upper_bound': 336, 'coeffs': [8, 4, 10, 5, 2, 8, 6]},
    'r2': {'upper_bound': 199, 'coeffs': [1, 2, 6, 6, 11, 5, 11]},
    'r3': {'upper_bound': 149, 'coeffs': [9, 10, 7, 9, 1, 6, 11]}
}

for r_name, r_data in resources.items():
    m.addConstr(sum(r_data['coeffs'][i] * m.getVars()[i] for i in range(7)) <= r_data['upper_bound'], name=r_name)


# Add other constraints as provided in the input, replacing placeholders like "at minimum" with >=, "at maximum" with <=, etc.
# Example:
m.addConstr(9 * fiber * fiber + 9 * vitamin_A * vitamin_A >= 17)
m.addConstr(9 * vitamin_B12 + 11 * vitamin_B9 >= 15)
# ... (add all other constraints similarly)


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

```