chrome.runtime.onMessage.addListener(function (request) {
    if (request.message == 'checkStatus') {
        try {
            // console.log(t);
            console.log(request);
            fetch('https://cnc-intel.com/chat/fiveserver/status')
                .then(response => response.json())
                .then(data => {
                    console.log(data);
                    if (data && data.status && data.status === "online") {
                        F();
                        P = 0;
                    } else {
                        S();
                    }
                });

            // console.log(o);
        } catch (e) {
            // S()
            console.log(e);
        }
    }

});