;(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

TSE autoriza mais 9 militares a inspecionarem urnas e amplia prazo final

Presidente do TSE, Edson Fachin - REUTERS/Adriano Machado
Presidente do TSE, Edson Fachin Imagem: REUTERS/Adriano Machado

Do UOL, em Brasília e São Paulo

16/08/2022 14h08

O presidente do TSE (Tribunal Superior Eleitoral), Edson Fachin, autorizou mais nove militares indicados pelas Forças Armadas a participarem da inspeção ao código-fonte das urnas eletrônicas. Foram liberados três oficiais da Força Aérea, três da Marinha e três do Exército.

O ofício, assinado no dia 12 de agosto, também estabeleceu que o o ao código-fonte será permitido até esta sexta-feira (19). Inicialmente, os militares poderiam inspecionar o código até o dia 12.

No texto, Fachin ainda afirmou que, ao ampliar o prazo e a quantidade de militares atuando na inspeção, o TSE renova o seu reconhecimento pelo trabalho das Forças Armadas nas eleições.

"Renovo o reconhecimento deste Tribunal, não apenas pela contribuição das Forças Armadas no âmbito da Comissão da Transparência Eleitoral (CTE), mas sobretudo pelo valioso e operacional e logístico prestado por elas em todas as últimas eleições", escreveu Fachin.

Processo de segurança

Militares já atuavam na inspeção, uma etapa do processo de verificação e segurança das urnas, desde o começo do mês. Segundo a colunista Carla Araújo, do UOL, a primeira avaliação feita pelos técnicos militares foi considerada pelo Ministério da Defesa como positiva.

Uma situação posterior acabou tensionando a vistoria, feita em meio aos ataques do presidente Jair Bolsonaro (PL) ao sistema de votação brasileiro: um dos militares que participava do processo foi excluído da lista por Fachin após serem reveladas informações falsas publicadas por ele nas redes sociais contra as urnas eletrônicas.

O código está disponível para inspeção desde outubro do ano ado. Autoridades como as próprias Forças Armadas, partidos políticos, a Polícia Federal, universidades e o Ministério Público, por exemplo, já podiam pedir para participar do processo desde então.

A resolução do TSE que trata dos procedimentos de fiscalização e auditoria do sistema eletrônico de votação prevê que quaisquer dúvidas após a inspeção deverão ser formalizadas por escrito, para então serem respondidas pelo TSE.

No caso das Forças Armadas, esse pedido ocorreu no último dia 10 de agosto, sob caráter "urgentíssimo" endossado pelo ministro da Defesa, Paulo Sérgio Nogueira.