def METHOD_NAME(top):
    if config_file == "":
        print("WARNING: no fill config file specified")
        return
    # KLayout doesn't support FILL in DEF so we have to side load them :(
    cfg = read_cfg()
    in_fills = False
    units = None
    with open(in_def) as fp:
        for line in fp:
            if in_fills:
                if re.match("END FILLS", line):
                    break  # done with fills; don't care what follows
                m = re.match(rect_pat, line)
                if not m:
                    raise Exception("Unrecognized fill: " + line)
                opc_type = "opc" if m.group("opc") else "non-opc"
                mask = m.group("mask")
                if not mask:  # uncolored just uses first entry
                    mask = 0
                else:
                    mask = int(mask) - 1  # DEF is 1-based indexing
                layer = cfg[m.group("layer")][opc_type]["klayout"][mask]
                xlo = int(m.group("xlo")) / units
                ylo = int(m.group("ylo")) / units
                xhi = int(m.group("xhi")) / units
                yhi = int(m.group("yhi")) / units
                top.shapes(layer).insert(pya.DBox(xlo, ylo, xhi, yhi))
            elif re.match("FILLS \d+ ;", line):
                in_fills = True
            elif not units:
                m = re.match("UNITS DISTANCE MICRONS (\d+)", line)
                if m:
                    units = float(m.group(1))