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

Josias de Souza

ANÁLISE

Texto baseado no relato de acontecimentos, mas contextualizado a partir do conhecimento do jornalista sobre o tema; pode incluir interpretações do jornalista sobre os fatos.

Autocrítica de Silveira chegou na hora da autopsia

Colunista do UOL

19/02/2021 19h57

Receba os novos posts desta coluna no seu e-mail

Email inválido

Em política, o grande problema dos gestos de contrição é que eles costumam chegar tarde. Por exemplo: o pedido de desculpas do deputado Daniel Silveira chegou num instante em que já estava consolidada a convicção de que o seu caso é de autopsia, não de autocrítica. Sua prisão foi mantida pelo acachapante placar de 364 votos a 130, com três abstenções.

Num feito histórico, Silveira colocou a Câmara para trabalhar na noite de uma sexta-feira pandêmica e quaresmal. Foi como se cutucasse os colegas com o pé para ver se eles mordiam. Morderam. Deram de ombros para o arrependimento ensaiado do preso.

Com sua fala inarticulada, o deputado lamentou ter usado suas prerrogativas democráticas para torpedear a democracia e insultar os ministros do Supremo. O brucutu soou como um ex-brucutu:

"Assisti ao vídeo três vezes. E vi que minhas palavras foram duras suficientes até para mim mesmo. Não consegui compreender o momento da raiva em que me encontrava. Peço desculpas a todo o Brasil. Me excedi de fato na fala. Foi um momento ional. Foram falas impróprias. Lamento pelo episódio e por ter gerado esse ime dentro do Congresso. Me pôs em posição de reflexão. Qualquer um pode exagerar."

Habituado a falar dez vezes antes de pensar, Daniel Silveira como que itiu que seu cérebro funciona em velocidade incompatível com a sensatez. Considera-se, porém, inofensivo. Encarcerado por decisão unânime do Supremo, atribuiu à mídia o fato de estar pendurado nas manchetes de ponta-cabeça como um risco à democracia:

"Já me arrependi. O ser humano vai de zero a 100 em segundos. Quem nunca fez isso na vida? Quem jamais exagerou em suas falas ou errou? Se não fosse assim, viveríamos em plena harmonia. De maneira alguma me considero um risco à democracia como fui classificado pela mídia."

Quem quiser decifrar o arrependimento de Daniel Silveira deve esquecer o vídeo das "palavras duras" que levaram o personagem à prisão. Deve-se analisar apenas o que sucedeu depois que o deputado recebeu voz de prisão.

Enquanto os agentes federais o aguardavam na sala de sua casa, o deputado levou ao ar nas redes sociais novas ofensas às supremas togas. Manteve a língua engatilhada na agem pelo IML. Xingou uma policial que ousou pedir que usasse máscara.

Na carceragem da PF, armado de dois celulares, Daniel Silveira continuou disparando diatribes para o mundo exterior. Transferido para um batalhão da PM na véspera da sessão em que encenaria seu arrependimento, eou pelo pátio, achegou-se ao portão, cumprimentou iradores e prometeu: "Vocês vão saber a verdade. Eu vou mostrar para o Brasil quem é o STF."

Menos de 24 horas depois desta sua penúltima ameaça, o deputado falou aos colegas em timbre comedido. Referiu-se aos alvos do Supremo com compostura e respeito. Ou seja: estava completamente fora de si.

O Daniel Silveira pré-arrependimento parecia brincar a sério de roleta-russa, sem se preocupar com as consequências. O deputado arrependido continua brincando. A diferença é que agora o extremista do bolsonarismo atira palavras sensatas a esmo, protegido pela certeza de que manipula uma sinceridade completamente descarregada.

O preso se define como um legítimo representante da "nova política". Desconhece as mumunhas dos políticos tradicionais que o julgam. É possível que Daniel Silveira nunca tenha ouvido falar no deputado mineiro José Bonifácio (1904-1986). Na intimidade, chamavam-no Zezinho Bonifácio. Mas ninguém ignorava que era mais Bonifácio do que Zezinho. Foi líder do governo no regime militar e presidente da Câmara.

Conta-se que, certo dia, quando conduzia um deputado novato pelas dependências da Câmara, Zezinho Bonifácio ministrou um ensinamento que se tornou eterno na Casa: "Aqui, meu filho, tem de tudo. Tem ladrão, tem honesto, canalha, gente séria..." Após alguns segundos de pausa, arrematou: "Aqui só não tem bobo."

Na prática, Daniel Silveira pediu aos deputados que se fingissem de bobos pelo bem da corporação. Não se deu conta de que falava para uma corporação apinhada de investigados, denunciados, réus, condenados e cúmplices. Gente esperta o bastante para saber que, em política, não se deve bater palma para maluco dançar na porta do STF. Vivo, Zezinho Bonifácio exclamaria: "Fala séééério!!!"