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

Thaís Oyama

OPINIÃO

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

Desdenhado como "casamento de viúvos", novo partido será megapotência 

ACM Neto, vice-presidente do União Brasil: juntando a fome com a vontade de comer - Valter Pontes/Secom
ACM Neto, vice-presidente do União Brasil: juntando a fome com a vontade de comer Imagem: Valter Pontes/Secom

Colunista do UOL

05/10/2021 12h43Atualizada em 05/10/2021 16h16

Um casamento de viúvos.

Para políticos que olham a fusão a ser anunciada amanhã entre o DEM e o PSL com desdém e uma mal disfarçada dor de cotovelo, a iniciativa nada mais é do que a união de dois seres cansados que, no outono da vida, resolvem juntar os chinelos puídos, menos por amor do que por mútua conveniência.

De correto na avaliação, está apenas a conveniência.

Com o casamento "de viúvos", o depauperado DEM, que ficava na lanterninha na distribuição do fundo eleitoral, enriquece. E o PSL, que já tinha dinheiro, mas não sobrenome, dado que cresceu de um dia para o outro à sombra do fenômeno Bolsonaro, se livra da pecha de novo rico e ganha pedigree — além de capilaridade e estrutura.

No contrato pré-nupcial, o DEM, partido de ACM Neto, ficará com o controle de dez estados, entre eles, Minas Gerais, Bahia e Rio Grande do Sul; e o PSL de Luciano Bivar encabeçará os diretórios do Distrito Federal e outros 16 estados, incluindo São Paulo, Rio de Janeiro, Paraíba e Pernambuco (a cota de cada um pode mudar ligeiramente, dado que ainda existem nós a serem desatados, por exemplo, no Maranhão).

O União Brasil nasce "de direita", mas contra o governo, e assim, como tanto o DEM como o PSL estão povoados de bolsonaristas, dissidências são aguardadas.

No DEM, a porta da rua será a serventia da casa para o grupo ligado ao pastor Silas Malafaia, por exemplo; e no PSL o mesmo se dará com leais escudeiros de Bolsonaro como as deputadas Bia Kicis, Carla Zambelli e Vitor Hugo.

Mesmo assim, o União Brasil ficará no lucro.

Com cerca de 80 deputados, fará a maior bancada na Câmara Federal, abocanhará a maior fatia dos fundos partidário e eleitoral e terá direito a dois minutos de TV na campanha eleitoral.

Em outras palavras, será uma potência com força para deslocar as placas tectônicas do poder.

Além de ter peso definitivo nas votações do Congresso, incluindo um eventual impeachment de Bolsonaro, o partido será peça fundamental no tabuleiro de 2022.

Em entrevista ontem ao UOL, o presidente do DEM, ACM Neto, jurou outra vez que a nova sigla terá candidato próprio à Presidência, mas deixou a porta escancarada para uma coligação, "mais para frente", com o MDB ou o PSDB — no segundo caso, desde que o candidato não seja João Doria, governador de São Paulo que é seu desafeto.

O União Brasil pode ser mesmo um casamento de viúvos unidos mais pela conveniência do que pelo amor. Mas, como se vê, a conveniência nesse caso é mais que suficiente para alicerçar uma próspera e poderosa união.

Quanto ao amor, quem se importa com ele? Como dizia Nelson Rodrigues, dinheiro compra até o do tipo verdadeiro.