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

É crível? Tenho dúvidas, diz ex-diretor do Inpe sobre meta do Brasil na COP

Ricardo Galvão, ex-diretor do Inpe - Waldemir Barreto/Agência Senado
Ricardo Galvão, ex-diretor do Inpe Imagem: Waldemir Barreto/Agência Senado

Do UOL, em São Paulo

01/11/2021 17h59

O professor e ex-diretor do Inpe (Instituto Nacional de Pesquisas Espaciais), Ricardo Galvão, afirmou hoje ser importante que o Brasil apresente à comunidade internacional novas metas para frear a emissão de gases e o desmatamento ilegal, mas disse ter lá as suas dúvidas sobre o cumprimento desse compromisso porque o governo do presidente Jair Bolsonaro (sem partido) "não tem credibilidade".

A pergunta é se 'isso é crível?' Eu tenho dúvidas. Porque o governo não tem uma credibilidade aceita internacionalmente, atualmente. Nos últimos anos, o Brasil (ao contrário de todos os outros países) substanciou a emissão de gás carbônico, de gás estufa na atmosfera. O desmatamento já está mostrando que a Amazônia está deixando de ser uma 'sequestradora de carbono' para ser uma 'emissora de carbono'. Então, é importante que o governo mostre essas metas, mas ele não tem credibilidade para que elas sejam amplamente aceitas pela sociedade mundial. Ricardo Galvão, durante entrevista à CNN Brasil

Galvão foi exonerado do cargo ao defender a credibilidade do monitoramento realizado pelo Instituto — que trouxe a informação do aumento em 88% no desmatamento da Amazônia — após o presidente Bolsonaro vir a público afirmar que eram mentirosos. Bolsonaro, inclusive, chegou a acusar Galvão de estar "a serviço de alguma ONG".

O Brasil anunciou hoje que pretende reduzir pela metade a emissão de gases de estufa até 2030. A nova meta foi anunciada pelo ministro do Meio Ambiente, Joaquim Leite, em um pronunciamento feito em Brasília e transmitido no Pavilhão Brasil, instalado na COP26, 26ª Conferência da ONU sobre Mudanças Climáticas, que acontece em Glasgow, na Escócia.

"Apresentamos hoje uma nova meta climática, mais ambiciosa, ando de 43% (na redução da emissão de gases estufa) para 50% até 2030 e de neutralidade de carbono até 2050, que será formalizada durante a COP26", disse Leite, que vai para a conferência no dia 6.

O ministro completou dizendo que "as contribuições do Brasil para superar os desafios estão postas". "Não faltará empenho do governo federal para chegarmos num resultado positivo para o Brasil e o mundo".

Pouco antes do anúncio, um vídeo gravado pelo presidente Jair Bolsonaro foi exibido, no qual ele afirmou que os "bons resultados até 2020" permitiriam ao país apresentar metas climáticas "mais ambiciosas".

"Temos que agir com responsabilidade buscando soluções reais para uma transição que se faz urgente. Vamos oferecer melhor qualidade de vida a todos os brasileiros. Assim vamos contribuir para melhorar a qualidade de vida em todo o planeta. Repito minha mensagem a todos que participam da COP26 e ao povo brasileiro. O Brasil é parte da solução para superar esse desafio global. Os resultados alcançados pelo nosso país até 2020 demonstram que podemos ser ainda mais ambiciosos", declarou Bolsonaro.

Bolsonaro ficou de fora da lista de 117 chefes de Estado e autoridades que participam hoje a amanhã da primeira parte do encontro. O próprio presidente decidiu não ir à Convenção do Clima, argumentando que se tratava de uma "estratégia nossa".