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

Balaio do Kotscho

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Em campanha antecipada, Bolsonaro acelera a moto e dá uma banana ao Brasil

Jair Bolsonaro promove mais uma alegre motocada, dessa vez no Rio, desafiando as normas sanitárias, o bom senso  e o respeito aos mortos - Foto: Daniel Delmiro
Jair Bolsonaro promove mais uma alegre motocada, dessa vez no Rio, desafiando as normas sanitárias, o bom senso e o respeito aos mortos Imagem: Foto: Daniel Delmiro

Colunista do UOL

23/05/2021 14h52

Com 448.291 mortes nas costas, acossado por denúncias de corrupção contra seu governo e pela I do Genocídio, caindo nas pesquisas e vendo Lula disparar para 2022, Bolsonaro caiu de cabeça na campanha pela reeleição.

Viajou pelo nordeste e, na manhã deste domingo, desceu do helicóptero, montou numa motocicleta, na zona oeste do Rio, para mais uma manifestação contra a democracia, o distanciamento social e o uso de máscaras de proteção, os governadores e prefeitos, o STF e a imprensa, e o Datafolha, seu mais novo inimigo.

Até o general Pazuello subiu no palanque, alegre e fagueiro, recebido como herói pelos seguidores da seita, por ter mentido 14 vezes na I para proteger o chefe, todos protegidos por um esquema de segurança com mais de 1 mil homens de 20 unidades, sob o comando do GSI do general Heleninho. No trajeto, viu-se mais policiais do que motoqueiros.

Assim até eu viro valente... Quanto custa para os cofres públicos o deslocamento da comitiva oficial e a montagem do poderoso esquema de segurança para mais um ato de campanha antecipada?

A oposição chamou o presidente de debochado, perverso, cruel e deprimente, mas ele não se comove com isso. Não está nem aí aí para o que falam dele.

Para os 75% de brasileiros que não o apoiam, segundo as últimas pesquisas, o capitão oferece uma banana, bota o capacete sem máscara e toca em frente.

Bolsonaro resolveu governar só para os seus seguidores mais fanáticos, que logo cedo invadiram as redes sociais para escrever coisas como "o Brasil é seu, presidente! Pegue o que quiser KKK".

Pouco importa que o cenário da pandemia tenha voltado a se agravar, com a ameaça de uma terceira onda e a chegada do novo vírus da Índia, e os hospitais estejam novamente superlotados, reclamando a falta de remédios para salvar vidas.

Ninguém segura Bolsonaro e sua tropa de aloprados, que vivem numa realidade paralela, onde uns mandam e outros obedecem, para não perder suas boquinhas.

A maioria dos brasileiros (54%) rejeita a nomeação de militares para cargos civis no governo federal, segundo o Datafolha divulgado hoje, mas os bolsonaristas não ligam para pesquisas, nem de opinião nem científicas.

Qual é o problema de promover aglomerações? Todos vão morrer um dia, diz o chefe. O importante é aproveitar as mordomias enquanto estão vivos, desfrutar das benesses do poder, com picanha de R$ 1.700 o quilo e toneladas de cerveja e leite condensado na despensa dos quartéis.

Para a caravana bolsonarista montada em suas potentes e caras máquinas, domingo é dia de festa, de desafiar as normas sanitárias e tocar em frente, sem olhar para os lados.

Se teve buzinaços de protesto em alguns bairros da zona sul por onde os motoqueiros aram, só pode ser coisa de comunistas e vagabundos.

Os cães ladram, mas a caravana a, devem ter pensado, rindo do decreto estadual que obriga o uso de máscaras e proíbe aglomerações, mas o governador fluminense, um tal de Cláudio Castro, é da turma, não vai multar ninguém. Ele mesmo gosta de uma boa festa.

Enquanto o resto do Brasil chora seus mortos, o Brasil de Bolsonaro pede agem para se divertir, rindo da nossa cara.

Quem não estiver satisfeito, que vá se queixar aos bispos...

Vida que segue.

.