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

Entendendo Bolsonaro

OPINIÃO

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

Para defender democracia, STF arrisca criar mártires bolsonaristas

24.abr.2019 - Deputado Daniel Silveira (PSL - RJ) - Plinio Xavier/Câmara dos Deputados
24.abr.2019 - Deputado Daniel Silveira (PSL - RJ) Imagem: Plinio Xavier/Câmara dos Deputados

Colunista do UOL

17/02/2021 12h23

* Vinícius Rodrigues Vieira

A crise institucional que o Brasil vive desde que Jair Bolsonaro assumiu o posto de Chefe de Estado chega àquele que pode ser o ponto de fervura em que o já combalido edifício constitucional se dissolverá nas águas turvas do autoritarismo.

A prisão do deputado bolsonarista Daniel Silveira (PSL-RJ) por ameaçar ministros do Supremo Tribunal Federal (STF) tem o potencial de tornar realidade o desejo do presidente e seus fanáticos seguidores: uma ruptura institucional para acabar com leis corruptas que supostamente beneficiam apenas aqueles que, segundo os radicais de direita, afrontam a vontade popular.

Nesta quarta-feira de cinzas, espera-se que, pautado pelo presidente da Câmara dos Deputados e aliado de Bolsonaro Arthur Lira (Progressistas-AL), o plenário da casa vote a prisão do deputado. Lira promete serenidade — apenas se espera que isso não seja sinônimo de que a Câmara virou um puxadinho do Planalto, que já deve estar agindo para livrar seu correligionário.

Se os deputados atuarem conforme o corporativismo parlamentar, Silveira será solto. Se por um milagre o bom senso prevalecer, o deputado, que ganhou notoriedade nacional ao rasgar em ato na campanha de 2018 uma placa de rua em homenagem a Marielle Franco, poderá se rotular um preso político, fornecendo ao bolsonarismo gás adicional para uma ruptura institucional tal e qual já foi ensaida outras vezes, como em maio ado.

A última mensagem de Silveira antes de ser preso, via Twitter, dá o tom do que virá nos próximos dias. Falando para Moraes, o parlamentar disse: "Você está entrando em uma queda de braço que você não pode vencer. Você acha que vai me assustar e calar? Só vai me motivar, isso é combustível para que eu continue a provar para o povo brasileiro quem são vocês que ocupam o cargo de ministros do STF. Tenha certeza: a partir daqui, o jogo evoluiu um pouquinho".

Ou seja, na visão do bolsonarismo, o jogo deu um o rumo à ruptura institucional — ou, em português claro, a um golpe de Estado ou guerra civil. Silveira arrematou a mensagem com uma fala digna de um participante de suicídio coletivo: "Vou dedicar cada minuto do meu mandato a mostrar quem é Alexandre de Moraes, Fachin, Marco Aurélio Mello, Gilmar Mendes, [José Dias] Toffoli, [Ricardo] Lewandowski. Vou colocar um por um de vocês em seus devidos lugares. Pelo meu país estou disposto a matar, morrer ou ser preso. Você acabou de rasgar a Constituição mais uma vez".

Os fanáticos — à esquerda e à direita — são assim: querem matar ou morrer em nome de um ideal. Hoje, no Brasil, o radicalismo está na extrema direita. Houvesse extrema esquerda por aqui, a prisão de Lula em 2018 teria suscitado nesse lado do espectro político a gritaria que começou na última madrugada e que deve se seguir até que os poderes retomem a suposta harmonia que, segundo a Constituição, existe entre eles.

Cabe, porém, lembrar que já houve no lado petista quem defendesse o fechamento do Supremo após a prisão do ex-presidente, sendo o caso mais notório o do então deputado federal Wadih Damous (PT-RJ). Diferentemente de Silveira, entretanto, ele não incitou a violência contra membros da corte.

Para Bolsonaro e sua matilha, porém, a lógica fascista impera: não há instituições dignas de respeito — apenas interesses que devem ser sufocados em nome da suposta vontade coletiva da nação. Nada melhor, portanto, que um ou mais mártires para despertar a centelha que falta ao início de uma muito esperada intervenção militar supostamente constitucional conclamada pelo presidente contra os demais poderes.

Se houver tentativa de golpe, o alvo, sem dúvida, será o Judiciário, haja vista que o Legislativo é hoje presidido por aliados de Bolsonaro. Num contexto em que STF e o ex-comandante do Exército — porém ainda influente na caserna — general Eduardo Villas Bôas trocam farpas por conta do tuíte publicado pelo último em 2018, com uma ameaça de golpe caso Lula fosse solto, todo cuidado é pouco.

Membros do alto comando do Exército e seus egressos que hoje integram o governo devem ter ado a madrugada de terça-feira para quarta-feira coçando os dedos, com vontade de puxar o gatilho que vai ferir de morte nossa agonizante democracia. O infravermelho dos snipers já deve estar mirando a "cabecinha" do nosso regime político e opositores do maior basculho da história do Brasil: o bolsonarismo.

* Vinícius Rodrigues Vieira é doutor em Relações Internacionais por Oxford e professor na Fundação Armando Álvares Penteado (FAAP) e na pós-graduação da FGV