```json
{
  "sym_variables": [
    ("x0", "hours worked by Laura"),
    ("x1", "hours worked by George"),
    ("x2", "hours worked by John"),
    ("x3", "hours worked by Peggy"),
    ("x4", "hours worked by Mary")
  ],
  "objective_function": "3*x0 + 4*x1 + 7*x2 + 6*x3 + 7*x4",
  "constraints": [
    "20*x2 + 8*x3 >= 34",
    "9*x0 + 20*x2 >= 57",
    "9*x0 + 8*x3 >= 65",
    "20*x2 + 15*x4 >= 32",
    "9*x0 + 8*x3 + 15*x4 >= 41",
    "17*x0 + 13*x4 >= 30",
    "11*x3 + 13*x4 >= 68",
    "11*x2 + 11*x3 >= 31",
    "17*x0 + 3*x1 >= 53",
    "17*x0 + 11*x3 >= 59",
    "17*x0 + 11*x2 >= 53",
    "3*x1 + 11*x2 >= 35",
    "5*x1 + 1*x2 >= 45",
    "13*x0 + 1*x2 >= 57",
    "5*x1 + 1*x3 >= 27",
    "13*x0 + 5*x1 + 1*x2 >= 49",
    "13*x0 + 5*x1 + 1*x3 >= 49",
    "5*x1 + 1*x2 + 16*x4 >= 49",
    "13*x0 + 5*x1 + 1*x2 >= 52",
    "13*x0 + 5*x1 + 1*x3 >= 52",
    "5*x1 + 1*x2 + 16*x4 >= 52",
    "13*x0 + 5*x1 + 1*x2 >= 50",
    "13*x0 + 5*x1 + 1*x3 >= 50",
    "5*x1 + 1*x2 + 16*x4 >= 50",
    "14*x3 + 8*x4 >= 31",
    "2*x1 + 8*x4 >= 37",
    "19*x2 + 14*x3 >= 37",
    "14*x0 + 2*x1 >= 44",
    "2*x1 + 19*x2 >= 41",
    "14*x0 + 19*x2 >= 23",
    "2*x1 + 14*x3 + 8*x4 >= 38",
    "14*x0 + 2*x1 + 14*x3 >= 38",
    "14*x0 + 19*x2 + 8*x4 >= 38",
    "14*x0 + 2*x1 + 8*x4 >= 38",
    "14*x0 + 14*x3 + 8*x4 >= 38",
    "14*x0 + 19*x2 + 14*x3 >= 38",
    "14*x0 + 2*x1 + 19*x2 >= 38",
    "19*x2 + 14*x3 + 8*x4 >= 38",
    "2*x1 + 19*x2 + 8*x4 >= 38",

    "20*x2 + 15*x4 <= 215",
    "9*x0 + 15*x4 <= 353",
    "8*x3 + 15*x4 <= 276",
    "20*x2 + 8*x3 <= 260",
    "9*x0 + 5*x1 <= 222",
    "9*x0 + 5*x1 + 8*x3 <= 76",
    "5*x1 + 8*x3 + 15*x4 <= 117",
    "9*x0 + 20*x2 + 8*x3 <= 298",
    "9*x0 + 5*x1 + 20*x2 <= 249",
    "5*x1 + 20*x2 + 15*x4 <= 203",
    "20*x2 + 8*x3 + 15*x4 <= 293",
    "9*x0 + 5*x1 + 20*x2 + 8*x3 + 15*x4 <= 293",
    "6*x2 + 2*x4 >= 44",
    "3*x0 + 14*x1 >= 24",
    "9*x3 + 2*x4 >= 62",
    "6*x2 + 9*x3 >= 26",
    "3*x0 + 2*x4 >= 40",
    "3*x0 + 9*x3 >= 24",
    "14*x1 + 9*x3 >= 47",
    "14*x1 + 6*x2 + 2*x4 >= 61",
    "3*x0 + 6*x2 + 9*x3 >= 61",
    "14*x1 + 6*x2 + 2*x4 >= 37",
    "3*x0 + 6*x2 + 9*x3 >= 37",
    "14*x1 + 2*x4 <= 77",
    "3*x0 + 6*x2 <= 271",
    "14*x1 + 9*x3 <= 295",
    "3*x0 + 2*x4 <= 261",
    "6*x2 + 9*x3 <= 126",
    "6*x2 + 2*x4 <= 283",
    "9*x3 + 2*x4 <= 309",
    "3*x0 + 9*x3 <= 174",
    "14*x1 + 9*x3 + 2*x4 <= 237",
    "3*x0 + 14*x1 + 6*x2 + 9*x3 + 2*x4 <= 237",

    "x0 >= 0",
    "x1 >= 0",
    "x2 >= 0",
    "x3 >= 0",
    "x4 >= 0"


  ]
}
```

```python
import gurobipy as gp

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

# Create variables
laura = m.addVar(lb=0, name="Laura")
george = m.addVar(lb=0, name="George")
john = m.addVar(lb=0, name="John")
peggy = m.addVar(lb=0, name="Peggy")
mary = m.addVar(lb=0, name="Mary")


# Set objective function
m.setObjective(3 * laura + 4 * george + 7 * john + 6 * peggy + 7 * mary, gp.GRB.MAXIMIZE)

# Add constraints

m.addConstr(20 * john + 8 * peggy >= 34)
m.addConstr(9 * laura + 20 * john >= 57)
m.addConstr(9 * laura + 8 * peggy >= 65)
m.addConstr(20 * john + 15 * mary >= 32)
m.addConstr(9 * laura + 8 * peggy + 15 * mary >= 41)
m.addConstr(17 * laura + 13 * mary >= 30)
m.addConstr(11 * peggy + 13 * mary >= 68)
m.addConstr(11 * john + 11 * peggy >= 31)
m.addConstr(17 * laura + 3 * george >= 53)
m.addConstr(17 * laura + 11 * peggy >= 59)
m.addConstr(17 * laura + 11 * john >= 53)
m.addConstr(3 * george + 11 * john >= 35)
m.addConstr(5 * george + 1 * john >= 45)
m.addConstr(13 * laura + 1 * john >= 57)
m.addConstr(5 * george + 1 * peggy >= 27)
m.addConstr(13 * laura + 5 * george + 1 * john >= 49)
m.addConstr(13 * laura + 5 * george + 1 * peggy >= 49)
m.addConstr(5 * george + 1 * john + 16 * mary >= 49)
m.addConstr(13 * laura + 5 * george + 1 * john >= 52)
m.addConstr(13 * laura + 5 * george + 1 * peggy >= 52)
m.addConstr(5 * george + 1 * john + 16 * mary >= 52)
m.addConstr(13 * laura + 5 * george + 1 * john >= 50)
m.addConstr(13 * laura + 5 * george + 1 * peggy >= 50)
m.addConstr(5 * george + 1 * john + 16 * mary >= 50)
m.addConstr(14 * peggy + 8 * mary >= 31)
m.addConstr(2 * george + 8 * mary >= 37)
m.addConstr(19 * john + 14 * peggy >= 37)
m.addConstr(14 * laura + 2 * george >= 44)


# ... (rest of the constraints)



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

```