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

'Paixão' de Bolsonaro: por que escolha de Múcio é controversa na Defesa

José Múcio Monteiro, ex-deputado e ex-ministro do TCU, é cotado para a Defesa - Ton Molina/FotoArena/Estadão Conteúdo
José Múcio Monteiro, ex-deputado e ex-ministro do TCU, é cotado para a Defesa Imagem: Ton Molina/FotoArena/Estadão Conteúdo

Abinoan Santiago

Colaboração para o UOL, em Florianópolis

09/12/2022 14h58Atualizada em 09/12/2022 15h05

Anunciado como futuro ministro da Defesa pelo presidente eleito Lula (PT), o pernambucano José Múcio tem sua indicação rodeada de controvérsias.

Quem é ele?

  • Ex-deputado federal e ex-ministro do TCU (Tribunal de Contas da União)
  • Fez parte de partidos do espectro político de direita, como a Arena, legenda que sustentou a ditadura, e ou por PDS, PFL e PSDB.
  • Não tem experiência militar
  • Se aproximou do presidente Jair Bolsonaro (PL), que disse ser "apaixonado" pelo ministro.

Múcio, me permite, sou apaixonado por você. Gosto muito de Vossa Excelência, dos momentos bons, épicos na Câmara e também os maus momentos
Bolsonaro

O que rolou?

  • Após a eleição, militares de alta patente das Forças Armadas (Exército, Marinha e Aeronáutica) indicaram nos bastidores que não aceitariam um nome "estritamente político".
  • Múcio faz parte de uma promessa de Lula de não nomear um militar para a Defesa, que comanda as Forças Armadas.
  • Mas, é visto como um meio-termo entre o petista e os militares --que cederam ao bolsonarismo.
  • Nomeação põe fim às indicações de militares para o cargo, o que acontece desde 2016 (governo Temer).

O que a escolha significa?

  • O nome de Múcio é bem aceito entre as alas militares, porque ele tem ótimo trânsito (já foi cinco vezes deputado e ministro de Relações Institucionais do segundo mandato de Lula)
  • O general Hamilton Mourão (PL), vice de Bolsonaro, foi um dos militares que deu declarações positivas sobre a nomeação

Tenho muito apreço e respeito pelo ministro Múcio, com quem tive excelente relação quando ele estava no TCU. Julgo que será um nome positivo para o cargo
Mourão

  • Múcio é aceno pacificador de Lula aos militares, coisa que não é bem vista por parte da esquerda.

"O nome do José Múcio quer dizer que o governo Lula cede às Forças Armadas num momento em que as Forças precisavam ter um redirecionamento".
Chico Alves, colunista do UOL

"Lula é um conciliador e faz todo sentido, por ser alguém que vai ter o papel de estabelecer com destreza um diálogo com setores que Lula percebe que podem ser resistência ao governo. Ele está pensando em sua sobrevivência política"
Mariana Kalil, professora da Escolha Superior de Guerra, à BBC