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

Bolsonaro tenta provar à PF uso de morfina com foto em hospital e atestado

Do UOL, em Brasília

27/04/2023 20h41Atualizada em 28/04/2023 09h32

A defesa do ex-presidente Jair Bolsonaro (PL) apresentou à Polícia Federal uma série de documentos para tentar comprovar que ele estava sob efeito de morfina ao publicar, no Facebook, um vídeo com ataques ao sistema eleitoral dois dias depois dos atos golpistas de 8 de Janeiro.

O que a defesa de Bolsonaro entregou à PF

Entre as supostas provas apresentadas está uma foto de Bolsonaro usando avental, dentro do Hospital AdventHealth Celebration, em Orlando (EUA), no dia 10 de janeiro.

Foi apresentado um laudo assinado pelo médico Marcelo Silva, que indica a entrada no hospital na madrugada do dia 9. Segundo o UOL apurou à época, o ex-presidente chegou ao local às 4h, com dores abdominais.

Foi anexado ainda um comprovante médico da injeção de morfina em Bolsonaro. "O paciente recebeu medicação para dor sulfato de morfina 2 mg intravenosa e hydromorphone. Foi submetido a exames radiográficos complementares como tomografia computadorizada do tórax, abdômen e pelvis [sic], radiografia para o abdômen agudo, confirmando o diagnóstico de oclusão subaguda intestinal", diz o laudo.

A defesa de Bolsonaro enviou uma gravação para mostrar como o ex-presidente teria se enganado e postado sem querer o vídeo no Facebook em vez de encaminhá-lo ao seu WhatsApp. "Ao clicar duas vezes na opção compartilhar, o vídeo a a constar nas postagens da sua própria página no Facebook", disse no depoimento.

A defesa também levou à PF tuítes em que Bolsonaro condenou as "depredações e invasões" dos prédios dos Três Poderes. As publicações, no entanto, foram feitas pelo ex-presidente para tentar associar o vandalismo à esquerda.

O que dizia o vídeo postado por Bolsonaro

Compartilhada em 10 de janeiro deste ano, a postagem de Bolsonaro diz infundadamente que Lula não foi eleito pelo povo, e sim escolhido pelo serviço eleitoral junto a ministros do STF e do TSE (Tribunal Superior Eleitoral).

A publicação viralizou rapidamente nas redes sociais e foi apagada pouco depois.

O post era trecho de uma entrevista de Felipe Gimenez, procurador de Mato Grosso do Sul, apoiador declarado de Bolsonaro, alegando que não houve transparência na apuração das urnas eletrônicas e que não era possível ver a contagem dos votos. O que não é verdade.

Também questionou sem provas a credibilidade das urnas eletrônicas eleitorais e disse equivocadamente que o código fonte não pode ser verificado, além de ter defendido o uso de voto impresso.

O que mais Bolsonaro afirmou em depoimento à PF

Em relação ao conteúdo do vídeo, considera a eleição de 2022 uma página virada em sua vida."

Reitera que repudia e condena todo e qualquer ato que vise a abalar a ordem democrática e que durante os seus quatro anos de governo sempre atuou dentro das 'quatro linhas' da Constituição Federal".
Trechos do depoimento de Bolsonaro à PF ontem

Ex-presidente foi ouvido por duas horas após determinação do ministro Alexandre de Moraes, do STF.