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

Kennedy: Jair Renan expõe que Bolsonaro trata governo como negócio familiar

Colaboração para o UOL, em São Paulo

11/12/2020 04h00

A maneira como o presidente Jair Bolsonaro (sem partido) e seus filhos lidam com o poder foi um dos temas do podcast Baixo Clero #69. "É um caso clássico de mistura entre o público e o privado. O presidente Jair Bolsonaro trata a Presidência da República como se fosse um negócio de família", disse o colunista do UOL Kennedy Alencar. "Ele e os três filhos, agora o quarto filho, am a agir como se a Presidência da República, que é uma instituição, fosse um negócio privado." (Ouça a partir do minuto 10:23)

Reportagem publicada pelo jornal "Folha de S. Paulo" na quinta-feira (10) revelou que Jair Renan, um dos filhos do presidente, obteve serviços de graça de uma empresa que presta serviço para o governo durante a inauguração de sua empresa.

Para Kennedy, "é um caso clássico de tráfico de influência, há uma troca de favores". "O Jair Renan consegue isso porque ele é filho do presidente da República. É uma empresa que tem contrato com o poder público, portanto está estabelecido um problema ético e, inclusive, tem que avançar para ver se há algum delito nessa festinha que foi dada por uma prestadora de serviço do governo", disse. (Ouça a partir do minuto 10:43)

O podcast de política do UOL é apresentado por Carla Bigatto e, nesta edição, teve a participação dos colunistas Kennedy Alencar e Maria Carolina Trevisan.

Na conversa, Kennedy também afirmou que o caso envolvendo Jair Renan seria "mais um exemplo" de que o atual presidente Jair Bolsonaro não enfrenta a corrupção no país. "Isso é uma mentira, assim como é uma mentira ele dizer que a pandemia está no finalzinho. Ele desinforma as pessoas e faz com que as pessoas corram mais riscos. A pandemia não tá no finalzinho, os casos estão aumentando no Brasil."(Ouça a partir do minuto 11:12)

Ele faz referência a mais uma declaração do presidente menosprezando a gravidade do novo coronavírus. Em visita a Porto Alegre, Bolsonaro disse que "ainda estamos vivendo o finalzinho da pandemia".

Na quinta, o Brasil registrou 769 novos óbitos causados pela covid-19 e completou uma semana com tendência de alta na média móvel de mortes. Foram 642 óbitos em média nos últimos sete dias, o que representa uma variação de 35% na comparação com 14 dias atrás.

Nesta edição do podcast de política do UOL, Carla Bigatto e os colunistas também falaram sobre a confirmação da condenação de Robinho por violência sexual, a disputa no Congresso Nacional pelas presidências da Câmara e do Senado, a recente demissão de Marcelo Álvaro Antônio do Ministério do Turismo e as respostas de Brasil e Estados Unidos à pandemia do novo coronavírus.

Baixo Clero está disponível no Spotify, na Apple Podcasts, no Google Podcasts, no Orelo, no Castbox, no Deezer e em outros distribuidores. Você também pode ouvir o programa no YouTube. Outros podcasts do UOL estão disponíveis em uol.com.br/podcasts.