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

'Até 2030 o desmatamento vai acabar por falta de floresta', ironiza delegado da PF

Alexandre Saraiva foi substituído após enviar a notícia-crime contra Salles ao Supremo Tribunal Federal - Reprodução/TV Globo
Alexandre Saraiva foi substituído após enviar a notícia-crime contra Salles ao Supremo Tribunal Federal Imagem: Reprodução/TV Globo

Pepita Ortega e Rayssa Motta

23/04/2021 17h24

O delegado da Polícia Federal Alexandre Saraiva, líder da investigação que culminou em "apreensão histórica" de madeira ilegal na Amazônia e autor da notícia-crime contra o ministro do Meio Ambiente Ricardo Salles, ironizou nesta quinta, 22, que o desmatamento no Brasil vai acabar, até 2030, "por falta de floresta". A indicação se dá na esteira da fala do presidente Jair Bolsonaro, que, durante a Cúpula de Líderes sobre o Clima, afirmou que o País assumiu o compromisso de eliminar o desmatamento ilegal até 2030 e que o País atingiria a neutralidade climática em 2050.

Em perfil recém-criado no Twitter, o ex-superintendente da PF no Amazonas - que foi substituído após enviar a notícia-crime contra Salles ao Supremo Tribunal Federal - defendeu que é "hora de lutar pela Floresta" e de "mostrar que a Amazônia importa". "Não vai ar boiada nenhuma!!!", registrou ainda o delegado em letras maiúsculas, na primeira publicação feita na rede social, nesta quarta, 21. A autoria do perfil foi confirmada pela PF no Amazonas.

A indicação de Saraiva faz referência a fala do ministro do Meio Ambiente na reunião ministerial de 22 de abril de 2020, tornada pública no âmbito no inquérito que apura suposta tentativa de interferência política de Bolsonaro na PF. Na ocasião, Salles disse que era preciso aproveitar a "oportunidade" que o governo federal ganha com a pandemia do novo coronavírus para "ir ando a boiada e mudando todo o regramento e simplificando normas".

Um ano após a fatídica reunião, Saraiva imputou a Salles supostos crimes de obstrução de investigação ambiental, advocacia istrativa e organização criminosa. Segundo o delegado, além de dificultar a ação de fiscalização ambiental, Salles "patrocina diretamente interesses privados (de madeireiros investigados) e ilegítimos no âmbito da istração Pública" e integra, "na qualidade de braço forte do Estado, organização criminosa orquestrada por madeireiros alvos da Operação Handroanthus com o objetivo de obter, direta ou indiretamente, vantagem de qualquer natureza".

Nesta quarta, 21, na esteira das acusações e às vésperas conferência internacional sobre as mudanças climáticas convocada pelo presidente americano, Joe Biden, Salles foi alvo de um tuitaço e ou parte do dia envolvido em bate-boca pelas redes sociais. Uma das celebridades que defenderam o #ForaSalles e rebateram o ministro foi a cantora Anitta. Saraiva chegou a compartilhar uma mensagem da empresária.

Já na manhã desta sexta, 23, o delegado comentou sobre as estratégias identificadas em operações da PF para a exportação de madeira ilegal. Saraiva defendeu a auditoria de processos istrativos que autorizam o desmatamento, apontando que "em regra geral" os documentos produzidos a partir de tais procedimentos, o Documento de Origem Florestal - são baseados em fraudes.