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

Esse conteúdo é antigo

Flávio Bolsonaro chama Witzel de 'traidor' e diz que tsunâmi está por vir

Do UOL, em São Paulo

26/05/2020 14h16Atualizada em 26/05/2020 16h07

O senador Flávio Bolsonaro (Republicanos-RJ) rebateu hoje as declarações do governador do Rio de Janeiro, Wilson Witzel (PSC-RJ), que disse que Flávio "deveria ser preso". O senador chamou Witzel de traidor e disse que as suspeitas de fraude na saúde do estado não são nada perto do "tsunâmi" que está por vir.

"Jamais ia imaginar que você ia ser mais um dos traidores que seriam derrubados um a um", disse Flávio em transmissão ao vivo no Instagram. "Você traiu todo mundo, Witzel. E vai precisar de tempo para se defender. Pelo que tenho ouvido, isso não é nada perto do tsunâmi que está por vir", completou.

O filho do presidente Jair Bolsonaro (sem partido) se referia às acusações que vieram à tona com a deflagração da Operação Placebo da Polícia Federal nesta manhã. A PF cumpriu mandados de busca e apreensão no Palácio das Laranjeiras, residência oficial do governador fluminense, e em um endereço ligado a sua esposa.

Flávio ainda sugeriu ter conhecimento de supostos desvios que Witzel estaria cometendo à frente do governo do Rio. "Falam que você começou numa velocidade... O Rio de Janeiro quebrado e você foi lá, 'raspar o osso'. Não tenho informação de bastidor, é assunto de botequim. Acho que sua estratégia talvez seja essa: fingir que é maluco para não ir para Bangu 8", acusou, especulando ainda a respeito de outras denúncias envolvendo o governador do Rio.

"Você traiu todo mundo, Wilson. E vai precisar de tempo para se defender. Pelo que eu tenho ouvido, isso não é nada perto do tsunâmi. O papo que rola de bastidor é que tem meia dúzia de secretarias que vão ter problema. Por isso eu me afastei", reforçou.

Flávio ainda usou a transmissão para, em seus argumentos, dissociar as ações da Operação Placebo das recentes alterações na cúpula da Polícia Federal, determinadas por seu pai, o presidente da República, Jair Bolsonaro (sem partido).

"Não tem nada a ver com Polícia Federal. Isso, um ministro do STJ autoriza a busca. Aí você quer botar a culpa na Polícia Federal, que apenas executou a ordem do STJ? Essa investigação começou na Polícia Civil do RJ, não tem nada a ver com essa narrativa absurda de 'essa mudança na PF levou a essa operação de hoje'", alegou.

"Essa foi uma operação, uma investigação, que está sendo produzida há semanas pela Polícia Civil do Rio de Janeiro. Quando viram que você estava envolvido, tiveram que mudar o foro para o STJ, que concedeu a busca e apreensão na sua casa. Isso não tem nada a ver com Polícia Federal, com essa narrativa absurda que meu primeiro suplente (Paulo Marinho) quer me envolver", acrescentou.

Paulo Marinho

Ao longo da transmissão, Flávio fez diversas acusações a Witzel e ao próprio suplente, Paulo Marinho (PSDB). Em entrevista ao jornal Folha de São Paulo, Marinho afirmou que a família Bolsonaro teve conhecimento da Operação Furna da Onça entre o primeiro e segundo turnos das eleições de 2018. A operação foi deflagrada em novembro daquele ano, após a definição da eleição presidencial.

"A missão dele é me atacar. Mais um canalha, lobista. Não ache que você vai ficar me acusando de coisas que eu não fiz e vai ficar por isso mesmo. Eu estava quieto na minha. Quem não tem trabalho, tem que pisar nos outros para fazer de escada", disse o senador.