bool FairnessChecker::CheckInstanceSatisfaction(u32 Instance,
                                                u32 CmdID,
                                                const ProductState* ReachedState) const
{
    // Do we even need to look at the cmd and the state?
    if (CheckInstanceSatisfaction(Instance)) {
        return true;
    }

    // Assumes that we're not trivially satisfied
    if (IsStrong || !DisabledPerInstance.Test(Instance)) {
        return GCmdsToRespondTo[Instance].Test(CmdID);
    } else {
        for (auto CmdID : GCmdIDsToRespondTo[Instance]) {
            bool Exception;
            ExpT NEPred;
            auto NSVec = TryExecuteCommand(Checker->GuardedCommands[CmdID],
                                           ReachedState->GetSVPtr(), Exception,
                                           NEPred);
            if (NSVec != nullptr) {
                NSVec->Recycle();
                return false;
            }
        }
        return true;
    }
}
bool DevPanel::eventFilter(QObject* object, QEvent* event)
{
    if (event->type() == QEvent::KeyPress)
    {
        QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event);
        if (keyEvent->key()== Qt::Key_Return) // Segun la tabla de info....
        {
            QString command = ui->lineEdit->text();
            ui->lineEdit->setText("");
            TryExecuteCommand(command);
        }

        return QObject::eventFilter(object, event);
    }

    return QObject::eventFilter(object, event);
}