```json
{
  "sym_variables": [
    ("x0", "green beans"),
    ("x1", "corn cobs"),
    ("x2", "oranges"),
    ("x3", "kiwis")
  ],
  "objective_function": "6*x0 + 8*x1 + 5*x2 + 9*x3",
  "constraints": [
    "20*x0 + 13*x1 + 2*x2 + 4*x3 <= 280",
    "14*x0 + 3*x1 + 1*x2 + 11*x3 <= 284",
    "10*x0 + 22*x1 + 14*x2 + 10*x3 <= 270",
    "22*x0 + 9*x1 + 18*x2 + 3*x3 <= 315",
    "13*x1 + 4*x3 >= 63",
    "2*x2 + 4*x3 >= 39",
    "20*x0 + 13*x1 + 4*x3 >= 62",
    "20*x0 + 13*x1 + 2*x2 >= 68",
    "20*x0 + 13*x1 + 4*x3 >= 68",
    "20*x0 + 13*x1 + 2*x2 >= 62",
    "20*x0 + 13*x1 + 2*x2 + 4*x3 >= 68",
    "14*x0 + 11*x3 >= 44",
    "14*x0 + 3*x1 >= 62",
    "3*x1 + 1*x2 >= 36",
    "14*x0 + 3*x1 + 1*x2 + 11*x3 >= 36",
    "22*x1 + 10*x3 >= 33",
    "22*x1 + 14*x2 >= 63",
    "10*x0 + 22*x1 + 14*x2 + 10*x3 >= 63",
    "22*x0 + 9*x1 >= 29",
    "22*x0 + 3*x3 >= 66",
    "9*x1 + 3*x3 >= 64",
    "18*x2 + 3*x3 >= 51",
    "9*x1 + 18*x2 >= 43",
    "22*x0 + 18*x2 + 3*x3 >= 52",
    "9*x1 + 18*x2 + 3*x3 >= 52",
    "22*x0 + 18*x2 + 3*x3 >= 64",
    "9*x1 + 18*x2 + 3*x3 >= 64",
    "22*x0 + 9*x1 + 18*x2 + 3*x3 >= 64",
    "-6*x0 + 9*x3 >= 0",
    "9*x0 - 4*x1 >= 0",
    "5*x1 - 2*x2 >= 0",
    "13*x1 + 2*x2 + 4*x3 <= 270",
    "20*x0 + 13*x1 + 2*x2 <= 256",
    "14*x0 + 11*x3 <= 114",
    "3*x1 + 11*x3 <= 201",
    "14*x0 + 3*x1 + 11*x3 <= 192",
    "3*x1 + 1*x2 + 11*x3 <= 107",
    "10*x0 + 22*x1 + 10*x3 <= 98",
    "22*x0 + 18*x2 <= 102",
    "9*x1 + 3*x3 <= 252",
    "9*x1 + 18*x2 <= 278",
    "22*x0 + 3*x3 <= 263"
  ]
}
```

```python
import gurobipy as gp

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

# Create variables
green_beans = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="green_beans")
corn_cobs = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="corn_cobs")
oranges = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="oranges")
kiwis = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="kiwis")


# Set objective function
m.setObjective(6*green_beans + 8*corn_cobs + 5*oranges + 9*kiwis, gp.GRB.MINIMIZE)

# Add constraints
m.addConstr(20*green_beans + 13*corn_cobs + 2*oranges + 4*kiwis <= 280, "r0")
m.addConstr(14*green_beans + 3*corn_cobs + 1*oranges + 11*kiwis <= 284, "r1")
m.addConstr(10*green_beans + 22*corn_cobs + 14*oranges + 10*kiwis <= 270, "r2")
m.addConstr(22*green_beans + 9*corn_cobs + 18*oranges + 3*kiwis <= 315, "r3")
m.addConstr(13*corn_cobs + 4*kiwis >= 63, "c5")
m.addConstr(2*oranges + 4*kiwis >= 39, "c6")
m.addConstr(20*green_beans + 13*corn_cobs + 4*kiwis >= 62, "c7")
m.addConstr(20*green_beans + 13*corn_cobs + 2*oranges >= 68, "c8")
m.addConstr(20*green_beans + 13*corn_cobs + 4*kiwis >= 68, "c9")
m.addConstr(20*green_beans + 13*corn_cobs + 2*oranges >= 62, "c10")
m.addConstr(20*green_beans + 13*corn_cobs + 2*oranges + 4*kiwis >= 68, "c11")
m.addConstr(14*green_beans + 11*kiwis >= 44, "c12")
m.addConstr(14*green_beans + 3*corn_cobs >= 62, "c13")
m.addConstr(3*corn_cobs + 1*oranges >= 36, "c14")
m.addConstr(14*green_beans + 3*corn_cobs + 1*oranges + 11*kiwis >= 36, "c15")
m.addConstr(22*corn_cobs + 10*kiwis >= 33, "c16")
m.addConstr(22*corn_cobs + 14*oranges >= 63, "c17")
m.addConstr(10*green_beans + 22*corn_cobs + 14*oranges + 10*kiwis >= 63, "c18")
m.addConstr(22*green_beans + 9*corn_cobs >= 29, "c19")
m.addConstr(22*green_beans + 3*kiwis >= 66, "c20")
m.addConstr(9*corn_cobs + 3*kiwis >= 64, "c21")
m.addConstr(18*oranges + 3*kiwis >= 51, "c22")
m.addConstr(9*corn_cobs + 18*oranges >= 43, "c23")
m.addConstr(22*green_beans + 18*oranges + 3*kiwis >= 52, "c24")
m.addConstr(9*corn_cobs + 18*oranges + 3*kiwis >= 52, "c25")
m.addConstr(22*green_beans + 18*oranges + 3*kiwis >= 64, "c26")
m.addConstr(9*corn_cobs + 18*oranges + 3*kiwis >= 64, "c27")
m.addConstr(22*green_beans + 9*corn_cobs + 18*oranges + 3*kiwis >= 64, "c28")
m.addConstr(-6*green_beans + 9*kiwis >= 0, "c29")
m.addConstr(9*green_beans - 4*corn_cobs >= 0, "c30")
m.addConstr(5*corn_cobs - 2*oranges >= 0, "c31")
m.addConstr(13*corn_cobs + 2*oranges + 4*kiwis <= 270, "c32")
m.addConstr(20*green_beans + 13*corn_cobs + 2*oranges <= 256, "c33")
m.addConstr(14*green_beans + 11*kiwis <= 114, "c34")
m.addConstr(3*corn_cobs + 11*kiwis <= 201, "c35")
m.addConstr(14*green_beans + 3*corn_cobs + 11*kiwis <= 192, "c36")
m.addConstr(3*corn_cobs + 1*oranges + 11*kiwis <= 107, "c37")
m.addConstr(10*green_beans + 22*corn_cobs + 10*kiwis <= 98, "c38")
m.addConstr(22*green_beans + 18*oranges <= 102, "c39")
m.addConstr(9*corn_cobs + 3*kiwis <= 252, "c40")
m.addConstr(9*corn_cobs + 18*oranges <= 278, "c41")
m.addConstr(22*green_beans + 3*kiwis <= 263, "c42")


# 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("The problem is infeasible.")
else:
    print("The problem could not be solved to optimality.")

```