function createBooleanPrompt(inputListNames, outputListNames, output, scope = globalScope) {
    var inputListNames = inputListNames || (prompt('Enter inputs separated by commas').split(','));
    var outputListNames = outputListNames || (prompt('Enter outputs separated by commas').split(','));
    var outputListNamesInteger = [];
    if(output == null) {
        for (var i = 0; i < outputListNames.length; i++) { outputListNamesInteger[i] = 7 * i + 13; }// assigning an integer to the value, 7*i + 13 is random
    } else {
        outputListNamesInteger = [13];
    }
    var s = '<table  class="content-table">';
    s += '<tbody style="display:block; max-height:70vh; overflow-y:scroll" >';
    s += '<tr>';
    if ($('#decimalColumnBox').is(':checked')) { s += '<th>' + 'dec' + '</th>'; }
    for (var i = 0; i < inputListNames.length; i++) { s += `<th>${inputListNames[i]}</th>`; }
    if (output == null) { for (var i = 0; i < outputListNames.length; i++) { s += `<th>${outputListNames[i]}</th>`; } }
    else { s += `<th>${outputListNames}</th>`; }
    s += '</tr>';

    var matrix = [];
    for (var i = 0; i < inputListNames.length; i++) {
        matrix[i] = new Array((1 << inputListNames.length));
    }

    for (var i = 0; i < inputListNames.length; i++) {
        for (var j = 0; j < (1 << inputListNames.length); j++) {
            matrix[i][j] = (+((j & (1 << (inputListNames.length - i - 1))) != 0));
        }
    }

    for (var j = 0; j < (1 << inputListNames.length); j++) {
        s += '<tr>';
        if ($('#decimalColumnBox').is(':checked')) { s += `<td>${j}</td>`; }
        for (var i = 0; i < inputListNames.length; i++) {
            s += `<td>${matrix[i][j]}</td>`;
        }
        for (var i = 0; i < outputListNamesInteger.length; i++) {
            if (output == null) {
                s += `<td class ="output ${outputListNamesInteger[i]}" id="${j}">` + 'x' + '</td>';
            // using hash values as they'll be used in the generateBooleanTableData function
            }
        }
        if (output != null) {
            s += `<td class="${outputListNamesInteger[0]}" id="${j}">` + `${output[j]}` + '</td>';
        }
        s += '</tr>';
    }
    s += '</tbody>';
    s += '</table>';
    $('#combinationalAnalysis').empty();
    $('#combinationalAnalysis').append(s);
    $('#combinationalAnalysis').dialog({
        resizable: false,
        width: 'auto',
        buttons: [
            {
                style: 'padding: 6px',
                text: 'Generate Circuit',
                click() {
                    $(this).dialog('close');
                    GenerateCircuit(outputListNamesInteger, inputListNames, output, outputListNames);
                },
            },
            {
                style: 'padding: 6px',
                text: 'Print Truth Table',
                click() {
                    var sTable = document.getElementById('combinationalAnalysis').innerHTML;
                    var style = '<style> table {font: 20px Calibri;} table, th, td {border: solid 1px #DDD;border-collapse: collapse;} padding: 2px 3px;text-align: center;} </style>';
                    var win = window.open('', '', 'height=700,width=700');
                    var htmlBody = `
                      <html><head>\
                      <title>Boolean Logic Table</title>\
                      ${style}\
                      </head>\
                      <body>\
                      <center>${sTable}</center>\
                      </body></html>
                    `;
                    win.document.write(htmlBody);
                    win.document.close();
                    win.print();
                },
            },
        ],
    });

    $('.output').on('click',function () {
        var v = $(this).html();
        if (v == 0)v = $(this).html(1);
        else if (v == 1)v = $(this).html('x');
        else if (v == 'x')v = $(this).html(0);
    });
}
This function hashes the output array and makes required JSON using
a BooleanMinimize class defined in Quin_Mcluskey.js var s which will
be output table is also initialied here
@param {Array} inputListNames - labels of input nodes
@param {Array} outputListNames - labels of output nodes
@param {Scope=} scope - h circuit
@category combinationalAnalysis