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

Exército impediu a retirada de acampamento golpista, diz Ibaneis

Ibaneis Rocha - Ueslei Marcelino/Reuters
Ibaneis Rocha Imagem: Ueslei Marcelino/Reuters

Vinícius Nunes e Felipe Pereira

Colaboração para o UOL e do UOL, em Brasília

13/01/2023 18h14Atualizada em 13/01/2023 21h24

Em depoimento na Polícia Federal, o governador afastado disse que "autoridades militares" impediram que a Polícia Militar do DF desmobilizasse o acampamento bolsonarista em frente ao quartel-general do Exército, em Brasília.

Ibaneis referiu-se ao dia 29 de dezembro do ano ado, quando uma operação "pacífica" da DF Legal, com o auxílio da PM, teria sido interrompida pelo comando do Exército.

Algumas barracas chegaram a ser retiradas, mas o DF Legal [...] não conseguiu terminar todo o trabalho de retirada em razão da oposição das autoridades militares"
Ibaneis Rocha (MDB)

Ibaneis também afirmou que a equipe de transição para o governo Lula tinha conhecimento da oposição do Exército na retirada dos acampamentos.

O depoimento do governador afastado é corroborado pela declaração do ministro da Justiça, Flávio Dino (PSB), que citou hoje ter havido resistência do Exército em permitir o desmonte do acampamento no DF — e que a liberação só aconteceu depois dos ataques golpistas que depredaram as sedes dos Três Poderes.

"Houve, antes do decreto do dia 8 (domingo), tentativas para que esses acampamentos fossem desfeitos. Infelizmente não se tornaram possíveis em razão da resistência que havia por parte de alguns segmentos militares. Havia uma visão de saída progressiva, negociada, dia a dia", disse o ministro. Segundo ele, foi detectada uma nova articulação para atos antidemocráticos para esta segunda-feira (16).

O UOL procurou o Exército, mas não obteve resposta.

Ainda segundo a declaração de Ibaneis à polícia, o diálogo entre o governo do DF e o comando do Exército partia da Secretaria de Segurança Pública, comandada até então por Anderson Torres.

O governador afastado foi hoje espontaneamente à superintendência da Polícia Federal em Brasília e depôs por cerca de três horas.

Em seu depoimento, disse ainda "que recebia informes sobre as questões de segurança do DF e nenhuma dessas tratou de possíveis ações radicais" e só obteve informações que realmente "importavam" da Secretaria de Segurança Pública. Também descartou que tenha dolo na negligência da PM-DF.

O emedebista foi afastado por 90 dias do governo do Distrito Federal por determinação do STF, que considerou que ele não agiu para conter os atos de violência.