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

Chico Alves

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Líder de servidores ambientais quer punição a militares aliados ao garimpo

Garimpo ilegal dentro da terra indígena Yanomami, em Roraima, em 2020 - Chico Batata - 2020/Greenpeace
Garimpo ilegal dentro da terra indígena Yanomami, em Roraima, em 2020 Imagem: Chico Batata - 2020/Greenpeace

Colunista do UOL

30/01/2023 04h00

Investigar o papel de militares das Forças Armadas no quadro calamitoso verificado nas comunidades yanomamis de Roraima é uma das prioridades apontadas por Denis Rivas, presidente da Associação Nacional dos Servidores da Carreira de Especialista em Meio Ambiente (Ascema Nacional). "Os agentes do Estado, principalmente militares, que estejam envolvidos com a prática do garimpo devem ser punidos", disse ele à coluna.

Relatório do setor de inteligência da Funai relata que integrantes das Forças Armadas teriam recebido dinheiro para colaborar com garimpeiros ilegais, segundo divulgou na semana ada o jornal Folha de S.Paulo. "Punir esses militares faz parte da retomada do papel do Estado, que foi desvirtuado nos últimos quatro anos", define Rivas.

Para o presidente da Ascema Nacional, não há como imaginar que 20 mil garimpeiros entraram naquela área de fronteira, que é responsabilidade do Exército, sem imaginar que eles tenham sido "no mínimo omissos".

"O que eles estão fazendo ali, afinal? Parece que as Forças Armadas estão fazendo papel decorativo", critica.

Rivas critica o posicionamento de autoridades do governo de Jair Bolsonaro, como o ex-ministro do Gabinete de Segurança Institucional (GSI) general Augusto Heleno, que critica as ONGs que atuam na Amazônia e vê interferência de governos estrangeiros em assuntos de soberania nacional na região. "Se pessoas como ele tivessem preocupação com os interesses brasileiros, não teriam deixado a população yanomami em estado de genocídio", lamenta. "Afinal de contas, que interesses eles estão defendendo deixando os indígenas morrerem de fome, de doença e tendo as terras invadidas por garimpeiros?"

Denis Rivas, líder dos servidores ambientais - Reprodução de vídeo - Reprodução de vídeo
Denis Rivas, líder dos servidores ambientais
Imagem: Reprodução de vídeo

Com a experiência de quem atua na área ambiental há 17 anos, Rivas estima que a regeneração da região de Roraima devastada pelos garimpeiros ilegais dependerá de duas situações: "Centenas ou milhares de anos para a floresta se recuperar por si ou muito dinheiro e trabalho investido para poder fazer a regeneração".

Sobre a palestra recente do ex-ministro da Defesa Aldo Rebelo, em que ele reclamou da "demonização dos garimpeiros", o presidente da associação discorda. "Nas imagens que a gente vê, a atividade garimpeira precisa de alto investimento empresarial, é essa a escala. Os garimpeiros estão fazendo estrago tremendo, não sei onde Aldo Rebelo quer chegar com essa declaração, que parece extremamente inoportuna", rebate. "O principal é que ali está sendo praticado um crime e isso não pode ser minimizado."