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

Esse conteúdo é antigo

Marina: 'Moro combateu petrolão, mas não fez nada para enfrentar florestão'

Do UOL, em São Paulo

06/05/2020 17h04Atualizada em 06/05/2020 21h55

Ex-ministra do Meio Ambiente, Marina Silva abordou o tema hoje no UOL Entrevista e fez fortes críticas a Sergio Moro, ex-ministro da Justiça e da Segurança Pública do governo Bolsonaro. Ela comparou o que chama de "florestão" ao "petrolão" e acusou o ex-juiz de ignorar o desmatamento ilegal — assim como Ricardo Salles, do Meio Ambiente, teria errado na forma como lidou com o derramamento de óleo que atingiu praias do Nordeste.

"O Moro não fez nada para combater o florestão. Roubar dinheiro público na Petrobras não é diferente de roubar patrimônio, em forma de terra, de ave, de madeira. Há roubo de terra, de madeira. Isso deveria ser combatido da mesma forma que foi combatido o petrolão, e isso não foi feito", reclamou. A conversa foi conduzida pelo colunista do UOL Tales Faria.

O atual ministro do Meio Ambiente, Ricardo Salles, também não escapou das críticas de Marina.

"Quando tocaram fogo em viaturas do Ibama, lá em Rondônia, o Salles foi visitar as pessoas que tacaram fogo. Eu fui ministra do Meio Ambiente e sei como essas pessoas são frágeis, ameaçadas de morte o tempo todo. Agora, você ter um ministro que se reúne com aqueles que mandaram tocar fogo nas viaturas, sinceramente, o que falta para ver que tem crime de responsabilidade, que é um processo de prevaricação [quando o funcionário público não cumpre sua função]?".

"Aí tem processo. O ministro vai ver derramamento de óleo e fala que foi o Greenpeace. Sem nenhum constrangimento. Eles dizem que quem pôs fogo foram ONGs ambientalistas, quando tem um inquérito da PF com um WhatsApp com 80 pessoas que mandavam colocar fogo na Amazônia em homenagem ao presidente. Isso é ocupar uma função pública em prejuízo da lei, em prejuízo do interesse público", concluiu.