def negative_dice_parse(dice: str) -> str:
    """
    :param dice: Formatted string, where each line is blank or matches
                    t: [(t, )*t]
                    t = (0|D|2T|FT|2F|F|T)
                        (note: T stands for Threat here)
    :return: Formatted string matching above, except tokens are replaced
                    with their corresponding values in the 4-tuple system,
                    (successes, advantages, triumphs, despairs)
    """
    return dice.replace("0", "(0, 0, 0, 0)") \
               .replace("D", "(-1, 0, 0, -1)") \
               .replace("2T", "(0, -2, 0, 0)") \
               .replace("FT", "(-1, -1, 0, 0)") \
               .replace("2F", "(-2, 0, 0, 0)") \
               .replace("F", "(-1, 0, 0, 0)") \
               .replace("T", "(0, -1, 0, 0)")