def METHOD_NAME(output):
    # This initial phase identifies the part of the output containing
    # the solutions.  It is complicated slightly because (as of Jan 2007)
    # PHCPACK's blackbox solver uses special-case code for linear and
    # sparse systems (this per email from Jan Verschelde).  When these
    # methods are in effect, the output format is slightly different.
    startsol = output.find("THE SOLUTIONS :\n\n")
    if startsol == -1:
        startsol = output.find("THE SOLUTIONS :\n")
    solns = output[startsol:]
    firstequals = solns.find("solution")
    firstcut = solns[firstequals:]
    secondequals = firstcut.find("=====")
    if secondequals >= 0:
        secondcut = firstcut[:secondequals]
    else:
        secondequals = firstcut.find("TIMING")
        secondcut = firstcut[:secondequals]
    solutions = [ ]
    for line in secondcut.split("\n"):
        tokens = [ x.strip(" ")
                   for x in line.split(" ")
                   if x != "" and not x.isspace() ]
        if tokens == []: continue
        if tokens[0] == "solution":
            if len(tokens) == 3:
                # This is a solution that didn't involve iteration
                solutions.append( { "vars":   { } } )
            else:
                solutions.append({ "startresidual": float(tokens[6]),
                                   "iterations":    int(tokens[9]),
                                   "result":        tokens[10],
                                   "vars":          { } })
        elif tokens[0] == "t":
            solutions[-1]["t"] = complex(float(tokens[2]),
                                         float(tokens[3]))
        elif tokens[0] == "m":
            solutions[-1]["m"] = int(tokens[2])
        elif tokens[0] == "the":
            pass
        elif tokens[0] == "==":
            solutions[-1]["err"] = float(tokens[3])
            solutions[-1]["rco"] = float(tokens[7])
            solutions[-1]["res"] = float(tokens[11])
            try:
                solutions[-1]["type"] = " ".join([tokens[13], tokens[14]])
            except IndexError:
                # Some solutions don't have type information
                pass
        else:
            # This is a solution line
            solutions[-1]["vars"][tokens[0]] = complex(float(tokens[2]),
                                                       float(tokens[3]))
    return solutions