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

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Julgamento parado no STF pode traçar destino de militares em atos golpistas

O ministro do STF Ricardo Lewandowski -  Rosinei Coutinho/SCO/STF
O ministro do STF Ricardo Lewandowski Imagem: Rosinei Coutinho/SCO/STF

Colunista do UOL

16/02/2023 16h54

O julgamento do STF (Supremo Tribunal Federal) interrompido nesta quinta-feira (16) pode dar o tom do tratamento a ser dado aos militares acusados de cometerem crimes nos atos de 8 de janeiro em Brasília. Pela primeira vez depois da tentativa de golpe, o tribunal discute o foro indicado para julgar e condenar militares.

Existem no tribunal várias ações sobre o tema, cada uma com uma nuance diferente. O processo em julgamento questiona a lei que determina que integrantes das Forças Armadas sejam julgados exclusivamente pela Justiça Militar quando forem acusados de crimes contra civis em ações consideradas militares. Entre essas ações estão a atuação na defesa civil, na segurança das eleições ou em operações de GLO (Garantia da Lei e da Ordem).

Havia cinco votos a favor dos militares - ou seja, pela manutenção da validade da lei. Outros dois votos eram pela possibilidade de militares serem julgados pela justiça comum em alguns casos. Lewandowski, que estava na corrente minoritária, pediu vista e interrompeu a votação. Não há previsão de quando o julgamento será retomado.

Segundo Lewandowski, colocar crimes cometidos por militares na GLO nas mãos apenas da Justiça Militar seria uma forma de dar foro privilegiado aos integrantes das Forças Armadas.

No dia 8 de janeiro, não havia GLO em vigor. Portanto, o resultado do julgamento dessa ação específica não influenciaria diretamente o destino dos militares investigados por ilegalidades cometidas nos atos golpistas.

No entanto, a decisão será a primeira sobre o foro indicado para julgar militares e, de certa forma, pode influenciar no resultado dos próximos julgamentos.

Até agora, apenas Edson Fachin concordou com Lewandowski no julgamento interrompido. Do outro lado, estão Marco Aurélio Mello, que já se aposentou, Luís Roberto Barroso, Luiz Fux e Alexandre de Moraes.

No STF, a expectativa é que ministros hoje na corrente oposta de Lewandowski mudem de lado quando a discussão não envolver GLO. Fontes do tribunal acreditam que Moraes queira centralizar todas as investigações do dia 8 de janeiro no STF - inclusive a parte relativa a militares envolvidos nos atos.

Fontes do STF consultadas pela coluna acreditam que, nas próximas ações, o tribunal abraçará a tese de que, em crimes conexos com autoridades com foro, ou em crimes cometidos contra o tribunal, a investigação ficaria a cargo do Supremo.

Segundo a avaliação de fontes do tribunal, o mais provável é que os crimes atribuídos a militares no dia 8 de janeiro sejam considerados conexos com autoridades. Dessa forma, a maior parte das ilegalidades cometidas durante os atos seria julgada pelo STF, e não pela Justiça Militar.

Uma legislação de 2017, que modificou o Código Penal Militar, de 1969, incluiu entre os crimes praticados por militares também os previstos na legislação penal, ampliando o leque das punições pelas quais os militares poderiam ser punidos.

Os crimes previstos no código abrangem militar em atividade contra outro militar ou civil. Também é considerado no Código crimes praticados por militares, ou por civil contra o patrimônio sob a istração militar.