;(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
Logo Pagbenk Seu dinheiro rende mais
Topo

Carla Araújo

Bolsonaro inverte prioridades ao zerar imposto de armas e contradiz Guedes

Jair, Eduardo, Flávio e Carlos Bolsonaro comem milho; ao fundo, parede que faz apologia das armas - Reprodução/Redes socias
Jair, Eduardo, Flávio e Carlos Bolsonaro comem milho; ao fundo, parede que faz apologia das armas Imagem: Reprodução/Redes socias

Do UOL, em Brasília

09/12/2020 14h56Atualizada em 09/12/2020 18h39

Receba os novos posts desta coluna no seu e-mail

Email inválido

O ministro Paulo Guedes (Economia) repete que tem planos "para o Brasil surpreender o mundo", mas assiste ao presidente comemorar nas redes sociais a redução da alíquota de revólveres e pistolas e, com isso, contrariar o seu discurso de não favorecer um único setor.

Nesta quarta-feira mesmo, Guedes afirmou em um evento para estrangeiros que o governo anunciará antes do fim do ano uma redução de subsídios "de forma generalizada". Agora, Bolsonaro escolhe privilegiar um único setor que agrada seu eleitorado.

'Em família'

Além de o armamento ser uma pauta defendida por ele mesmo, Bolsonaro contempla um segmento amplamente defendido pelo "zero três", o deputado Eduardo Bolsonaro. "Mais liberdade de escolha para assegurar legítima defesa e a prática do desporto", escreveu o deputado ao comentar a medida.

Não é a primeira vez que o Bolsonaro resolve usar sua "caneta bic" para tomar decisões que agradam diretamente os seus filhos.

Em outubro, no auge das discussões na Economia para que se tentasse encontrar uma solução para o programa de renda que pode ajudar milhares de brasileiros, o presidente agradou o "zero quatro" e reduziu o IPI de videogames.

Xadrez comercial

No Ministério da Economia, a decisão de zerar a alíquota de importação de armas até encontra algumas justificativas, como trabalhar por uma maior abertura comercial. A agenda de Guedes contempla esse tipo de medida.

Procurada para comentar o impacto estimado na arrecadação, a pasta afirmou que o imposto de importação "tem caráter extrafiscal, ou seja, não tem função arrecadatória". "Portanto, entendemos não ser necessária a análise do impacto arrecadatório no momento da majoração ou redução desse imposto", disse a assessoria.

Auxiliares de Guedes lembram que, durante a pandemia, mais de 500 produtos para ajudar no combate a Covid tiveram os impostos de importação zerados.

Apesar disso, a decisão de contemplar hoje apenas o setor de armas, item, é política e não econômica.

Fora de timing

As decisões destacadas por Bolsonaro nesta semana reforçam ainda mais a imagem de que o governo atua com uma inversão de prioridades.

Bolsonaro foi criticado (e virou memes) ao abrir espaço nesta semana para inaugurar uma exposição com trajes usados durante a posse em 2019. No mesmo momento, os brasileiros aguardavam o anúncio de um plano definitivo de vacinação, que ainda não veio.

Agenda de campanha

O presidente pode até ser coerente com sua agenda de campanha, mas mostra não ter o mínimo de sensibilidade com a agenda do país.

Nesta semana, o Brasil registrou o maior aumento percentual de novos casos de coronavírus entre os cinco países mais atingidos pela doença, segundo a OMS.

Infelizmente, presidente, não são revólveres e pistolas que ajudarão a matar o vírus que hoje assola o país.