;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Carolina Brígido

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Entramos na sala secreta do TSE e descobrimos que ela não é secreta

Colunista do UOL

27/08/2022 04h00Atualizada em 27/08/2022 13h29

O presidente Jair Bolsonaro (PL) é o principal divulgador da teoria da existência de uma sala secreta no TSE (Tribunal Superior Eleitoral), onde "meia dúzia de técnicos" decidiria quem vai ganhar as eleições. O UOL entrou na tal sala e desvendou cada detalhe da apuração de votos. E, o mais importante: o local não tem nada de secreto (veja no vídeo acima).

Num prédio anexo à sede do TSE, em Brasília, funciona a Seção de Totalização e Divulgação de Resultados. Na sala, 20 funcionários desenvolvem os softwares das eleições para contabilizar os votos.

No dia da votação, os profissionais monitoram o tempo todo se o funcionamento dos programas está adequado e, se houver alguma falha técnica, fazem dos devidos ajustes.

Assim que a votação é encerrada, os votos são impressos e enviados para o cartório eleitoral mais próximo. De lá, são encaminhados para o TSE. No percurso, não há como adulterar os votos, porque os programas foram devidamente lacrados antes das eleições, com a presença de entidades fiscalizadoras e partidos políticos.

Os votos são enviados para um supercomputador, que fica em uma sala-cofre localizada a poucos metros da Seção de Totalização. Visitantes não podem entrar na sala, por questões de segurança. Apenas dois servidores por vez podem entrar, depois de inserirem a senha e as digitais em duas portas automáticas, como o cofre de um banco.

O supercomputador é inviolável. Os servidores entram apenas quando é necessário realizar algum tipo de manutenção técnica na máquina.

A Seção de Totalização, chamada de sala secreta por Bolsonaro, pode ser visitada por qualquer pessoa interessada, desde que seja devidamente identificada na portaria no TSE, como acontece com todos os visitantes.

É comum que integrantes de partido, membros do Ministério Público e entidades fiscalizadoras fiquem no local no dia da eleição, para acompanhar o funcionamento do sistema.

Ninguém fica sabendo do resultado parcial da eleição antes das 17h, que é quando ela se encerra. Nesse horário, no dia 2 de outubro, o TSE divulgará não apenas para os que estão na sala, mas para todo o Brasil como anda a contagem dos votos. A previsão é que o resultado matemático da eleição seja conhecido por volta das 21h do mesmo dia.