```json
{
  "sym_variables": [
    ("x0", "hours worked by Bill"),
    ("x1", "hours worked by Ringo"),
    ("x2", "hours worked by John"),
    ("x3", "hours worked by Mary"),
    ("x4", "hours worked by George"),
    ("x5", "hours worked by Paul"),
    ("x6", "hours worked by Bobby")
  ],
  "objective_function": "1*x0 + 4*x1 + 1*x2 + 9*x3 + 3*x4 + 7*x5 + 9*x6",
  "constraints": [
    "4*x5 + 6*x6 >= 59",
    "11*x4 + 4*x5 >= 29",
    "10*x1 + 4*x5 >= 69",
    "4*x2 + 6*x6 >= 45",
    "9*x0 + 10*x1 >= 59",
    "3*x3 + 6*x6 >= 25",
    "3*x3 + 11*x4 >= 36",
    "10*x1 + 3*x3 >= 24",
    "4*x2 + 4*x5 >= 71",
    "9*x0 + 6*x6 >= 32",
    "11*x4 + 6*x6 >= 71",
    "10*x1 + 11*x4 >= 26",
    "10*x1 + 4*x2 >= 45",
    "9*x0 + 11*x4 >= 40",
    "4*x2 + 11*x4 + 4*x5 >= 43",
    "3*x3 + 11*x4 + 6*x6 >= 43",
    "4*x2 + 11*x4 + 6*x6 >= 43",
    "10*x1 + 4*x2 + 11*x4 >= 43",
    "9*x0 + 3*x3 + 4*x5 >= 43",
    "10*x1 + 4*x2 + 3*x3 >= 43",
    "9*x0 + 3*x3 + 11*x4 >= 43",
    "4*x2 + 3*x3 + 6*x6 >= 43",
    "9*x0 + 10*x1 + 4*x2 >= 43",
    "4*x2 + 11*x4 + 4*x5 >= 61",
    "3*x3 + 11*x4 + 6*x6 >= 61",
    "4*x2 + 11*x4 + 6*x6 >= 61",
    "10*x1 + 4*x2 + 11*x4 >= 61",
    "9*x0 + 3*x3 + 4*x5 >= 61",
    "10*x1 + 4*x2 + 3*x3 >= 61",
    "9*x0 + 3*x3 + 11*x4 >= 61",
    "4*x2 + 3*x3 + 6*x6 >= 61",
    "9*x0 + 10*x1 + 4*x2 >= 61",
    "4*x2 + 11*x4 + 4*x5 >= 48",
    "3*x3 + 11*x4 + 6*x6 >= 48",
    "4*x2 + 11*x4 + 6*x6 >= 48",
    "10*x1 + 4*x2 + 11*x4 >= 48",
    "9*x0 + 3*x3 + 4*x5 >= 48",
    "10*x1 + 4*x2 + 3*x3 >= 48",
    "9*x0 + 3*x3 + 11*x4 >= 48",
    "4*x2 + 3*x3 + 6*x6 >= 48",
    "9*x0 + 10*x1 + 4*x2 >= 48",
    "4*x2 + 11*x4 + 4*x5 >= 39",
    "3*x3 + 11*x4 + 6*x6 >= 39",
    "4*x2 + 11*x4 + 6*x6 >= 39",
    "10*x1 + 4*x2 + 11*x4 >= 39",
    "9*x0 + 3*x3 + 4*x5 >= 39",
    "10*x1 + 4*x2 + 3*x3 >= 39",
    "9*x0 + 3*x3 + 11*x4 >= 39",
    "4*x2 + 3*x3 + 6*x6 >= 39",
    "9*x0 + 10*x1 + 4*x2 >= 39",
    "4*x2 + 11*x4 + 4*x5 >= 52",
    "3*x3 + 11*x4 + 6*x6 >= 52",
    "4*x2 + 11*x4 + 6*x6 >= 52",
    "10*x1 + 4*x2 + 11*x4 >= 52",
    "9*x0 + 3*x3 + 4*x5 >= 52",
    "10*x1 + 4*x2 + 3*x3 >= 52",
    "9*x0 + 3*x3 + 11*x4 >= 52",
    "4*x2 + 3*x3 + 6*x6 >= 52",
    "9*x0 + 10*x1 + 4*x2 >= 52",
    "4*x2 + 11*x4 + 4*x5 >= 48",
    "3*x3 + 11*x4 + 6*x6 >= 48",
    "4*x2 + 11*x4 + 6*x6 >= 48",
    "10*x1 + 4*x2 + 11*x4 >= 48",
    "9*x0 + 3*x3 + 4*x5 >= 48",
    "10*x1 + 4*x2 + 3*x3 >= 48",
    "9*x0 + 3*x3 + 11*x4 >= 48",
    "4*x2 + 3*x3 + 6*x6 >= 48",
    "9*x0 + 10*x1 + 4*x2 >= 48",
    "4*x2 + 11*x4 + 4*x5 >= 35",
    "3*x3 + 11*x4 + 6*x6 >= 35",
    "4*x2 + 11*x4 + 6*x6 >= 35",
    "10*x1 + 4*x2 + 11*x4 >= 35",
    "9*x0 + 3*x3 + 4*x5 >= 35",
    "10*x1 + 4*x2 + 3*x3 >= 35",
    "9*x0 + 3*x3 + 11*x4 >= 35",
    "4*x2 + 3*x3 + 6*x6 >= 35",
    "9*x0 + 10*x1 + 4*x2 >= 35",
    "4*x2 + 11*x4 + 4*x5 >= 35",
    "3*x3 + 11*x4 + 6*x6 >= 35",
    "4*x2 + 11*x4 + 6*x6 >= 35",
    "10*x1 + 4*x2 + 11*x4 >= 35",
    "9*x0 + 3*x3 + 4*x5 >= 35",
    "10*x1 + 4*x2 + 3*x3 >= 35",
    "9*x0 + 3*x3 + 11*x4 >= 35",
    "4*x2 + 3*x3 + 6*x6 >= 35",
    "9*x0 + 10*x1 + 4*x2 >= 35",
    "4*x2 + 11*x4 + 4*x5 >= 49",
    "3*x3 + 11*x4 + 6*x6 >= 49",
    "4*x2 + 11*x4 + 6*x6 >= 49",
    "10*x1 + 4*x2 + 11*x4 >= 49",
    "9*x0 + 3*x3 + 4*x5 >= 49",
    "10*x1 + 4*x2 + 3*x3 >= 49",
    "9*x0 + 3*x3 + 11*x4 >= 49",
    "4*x2 + 3*x3 + 6*x6 >= 49",
    "9*x0 + 10*x1 + 4*x2 >= 49",
    "8*x0 + 14*x1 + 4*x2 >= 48",
    "4*x2 + 14*x4 + 11*x6 >= 48",
    "14*x1 + 4*x2 + 13*x3 >= 48",
    "4*x2 + 13*x3 + 14*x4 >= 48",
    "8*x0 + 4*x2 + 11*x6 >= 48",
    "8*x0 + 4*x2 + 13*x3 >= 48",
    "8*x0 + 14*x4 + 9*x5 >= 48",
    "8*x0 + 14*x1 + 4*x2 >= 42",
    "4*x2 + 14*x4 + 11*x6 >= 42",
    "14*x1 + 4*x2 + 13*x3 >= 42",
    "4*x2 + 13*x3 + 14*x4 >= 42",
    "8*x0 + 4*x2 + 11*x6 >= 42",
    "8*x0 + 4*x2 + 13*x3 >= 42",
    "8*x0 + 14*x4 + 9*x5 >= 42",
    "8*x0 + 14*x1 + 4*x2 >= 60",
    "4*x2 + 14*x4 + 11*x6 >= 60",
    "14*x1 + 4*x2 + 13*x3 >= 60",
    "4*x2 + 13*x3 + 14*x4 >= 60",
    "8*x0 + 4*x2 + 11*x6 >= 60",
    "8*x0 + 4*x2 + 13*x3 >= 60",
    "8*x0 + 14*x4 + 9*x5 >= 60",
    "8*x0 + 14*x1 + 4*x2 >= 54",
    "4*x2 + 14*x4 + 11*x6 >= 54",
    "14*x1 + 4*x2 + 13*x3 >= 54",
    "4*x2 + 13*x3 + 14*x4 >= 54",
    "8*x0 + 4*x2 + 11*x6 >= 54",
    "8*x0 + 4*x2 + 13*x3 >= 54",
    "8*x0 + 14*x4 + 9*x5 >= 54",
    "8*x0 + 14*x1 + 4*x2 >= 50",
    "4*x2 + 14*x4 + 11*x6 >= 50",
    "14*x1 + 4*x2 + 13*x3 >= 50",
    "4*x2 + 13*x3 + 14*x4 >= 50",
    "8*x0 + 4*x2 + 11*x6 >= 50",
    "8*x0 + 4*x2 + 13*x3 >= 50",
    "8*x0 + 14*x4 + 9*x5 >= 50",
    "8*x0 + 14*x1 + 4*x2 >= 40",
    "4*x2 + 14*x4 + 11*x6 >= 40",
    "14*x1 + 4*x2 + 13*x3 >= 40",
    "4*x2 + 13*x3 + 14*x4 >= 40",
    "8*x0 + 4*x2 + 11*x6 >= 40",
    "8*x0 + 4*x2 + 13*x3 >= 40",
    "8*x0 + 14*x4 + 9*x5 >= 40",
    "8*x0 + 14*x1 + 4*x2 >= 43",
    "4*x2 + 14*x4 + 11*x6 >= 43",
    "14*x1 + 4*x2 + 13*x3 >= 43",
    "4*x2 + 13*x3 + 14*x4 >= 43",
    "8*x0 + 4*x2 + 11*x6 >= 43",
    "8*x0 + 4*x2 + 13*x3 >= 43",
    "8*x0 + 14*x4 + 9*x5 >= 43",
    "3*x3 + 6*x6 <= 450",
    "9*x0 + 4*x2 <= 481",
    "3*x3 + 4*x5 <= 78",
    "10*x1 + 4*x5 <= 392",
    "4*x5 + 6*x6 <= 228",
    "3*x3 + 4*x5 + 6*x6 <= 173",
    "10*x1 + 3*x3 + 6*x6 <= 217",
    "9*x0 + 3*x3 + 4*x5 <= 184",
    "9*x0 + 10*x1 + 4*x5 <= 103",
    "9*x0 + 4*x2 + 3*x3 <= 84",
    "9*x0 + 3*x3 + 11*x4 <= 152",
    "3*x3 + 11*x4 + 6*x6 <= 337",
    "10*x1 + 11*x4 + 6*x6 <= 255",
    "4*x2 + 4*x5 + 6*x6 <= 276",
    "9*x0 + 10*x1 + 6*x6 <= 317",
    "10*x1 + 4*x5 + 6*x6 <= 419",
    "4*x2 + 3*x3 + 4*x5 <= 431",
    "10*x1 + 11*x4 + 4*x5 <= 331",
    "9*x0 + 11*x4 + 4*x5 <= 205",
    "9*x0 + 10*x1 + 11*x4 <= 263",
    "3*x3 + 11*x4 + 4*x5 <= 198",
    "10*x1 + 4*x2 + 11*x4 <= 287",
    "4*x2 + 11*x4 + 4*x5 <= 206",
    "11*x4 + 4*x5 + 6*x6 <= 373",
    "10*x1 + 3*x3 + 4*x5 <= 203",
    "9*x0 + 10*x1 + 4*x2 <= 84",
    "10*x1 + 3*x3 + 11*x4 <= 281",
    "9*x0 + 10*x1 + 4*x2 + 3*x3 + 11*x4 + 4*x5 + 6*x6 <= 281",
    "14*x1 + 4*x2 <= 212",
    "8*x0 + 13*x3 <= 312",
    "14*x4 + 9*x5 <= 103",
    "14*x4 + 11*x6 <= 201",
    "13*x3 + 9*x5 <= 398",
    "13*x3 + 11*x6 <= 270",
    "8*x0 + 9*x5 <= 385",
    "9*x5 + 11*x6 <= 379",
    "4*x2 + 14*x4 <= 61",
    "13*x3 + 14*x4 <= 312",
    "14*x1 + 13*x3 <= 224",
    "8*x0 + 4*x2 <= 410",
    "4*x2 + 13*x3 <= 123",
    "8*x0 + 14*x4 <= 368",
    "14*x1 + 4*x2 + 14*x4 <= 370",
    "14*x1 + 4*x2 + 11*x6 <= 176",
    "13*x3 + 14*x4 + 11*x6 <= 334",
    "8*x0 + 4*x2 + 9*x5 <= 185",
    "8*x0 + 13*x3 + 11*x6 <= 147",
    "8*x0 + 14*x4 + 11*x6 <= 333",
    "8*x0 + 14*x1 + 13*x3 <= 314",
    "4*x2 + 13*x3 + 14*x4 <= 106",
    "8*x0 + 9*x5 + 11*x6 <= 174",
    "8*x0 + 14*x1 + 4*x2 <= 381",
    "14*x4 + 9*x5 + 11*x6 <= 283",
    "8*x0 + 4*x2 + 13*x3 <= 338",
    "8*x0 + 14*x4 + 9*x5 <= 100",
    "13*x3 + 9*x5 + 11*x6 <= 333",
    "4*x2 + 13*x3 + 11*x6 <= 194",
    "8*x0 + 14*x1 + 11*x6 <= 352",
    "8*x0 + 13*x3 + 14*x4 <= 81",
    "8*x0 + 4*x2 + 14*x4 <= 251",
    "4*x2 + 13*x3 + 9*x5 <= 398",
    "14*x1 + 14*x4 + 11*x6 <= 161",
    "13*x3 + 14*x4 + 9*x5 <= 144",
    "8*x0 + 14*x1 + 4*x2 + 13*x3 + 14*x4 + 9*x5 + 11*x6 <= 144"


  ]
}
```

```python
import gurobipy as gp

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

# Create variables
bill = m.addVar(vtype=gp.GRB.INTEGER, name="bill")
ringo = m.addVar(vtype=gp.GRB.INTEGER, name="ringo")
john = m.addVar(vtype=gp.GRB.INTEGER, name="john")
mary = m.addVar(vtype=gp.GRB.INTEGER, name="mary")
george = m.addVar(vtype=gp.GRB.INTEGER, name="george")
paul = m.addVar(vtype=gp.GRB.INTEGER, name="paul")
bobby = m.addVar(vtype=gp.GRB.INTEGER, name="bobby")


# Set objective
m.setObjective(1 * bill + 4 * ringo + 1 * john + 9 * mary + 3 * george + 7 * paul + 9 * bobby, gp.GRB.MAXIMIZE)

# Add resource constraints
r0_ub = 502
r1_ub = 420

# Add other constraints from the problem description
m.addConstr(4 * paul + 6 * bobby >= 59)
m.addConstr(11 * george + 4 * paul >= 29)
# ... (add all other constraints similarly)


# Add resource constraints based on the provided resource dictionary
resources = {
    'r0': {'description': 'organization score', 'upper_bound': 502, 'x0': 9, 'x1': 10, 'x2': 4, 'x3': 3, 'x4': 11, 'x5': 4, 'x6': 6},
    'r1': {'description': 'paperwork competence rating', 'upper_bound': 420, 'x0': 8, 'x1': 14, 'x2': 4, 'x3': 13, 'x4': 14, 'x5': 9, 'x6': 11}
}

variables = [bill, ringo, john, mary, george, paul, bobby]

for resource_name, resource_data in resources.items():
    expr = gp.LinExpr()
    for i, var in enumerate(variables):
        expr += resource_data[f'x{i}'] * var
    m.addConstr(expr <= resource_data['upper_bound'], resource_name)


# Optimize model
m.optimize()

# Print solution or infeasibility message
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('Optimization problem is infeasible.')
else:
    print(f"Optimization ended with status {m.status}")

```