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

Sara Winter usa livros de Alexandre de Moraes como e de sofá em foto

Sara Winter usa livros de Alexandre de Moraes como e de sofá em foto de seu noivado em casa; extremista está usando tornozeleira eletrônica após ser liberada da cadeia - Wallace Martins/Futura Press/Estadão Conteúdo
Sara Winter usa livros de Alexandre de Moraes como e de sofá em foto de seu noivado em casa; extremista está usando tornozeleira eletrônica após ser liberada da cadeia Imagem: Wallace Martins/Futura Press/Estadão Conteúdo

Do UOL, em São Paulo

29/06/2020 10h20Atualizada em 29/06/2020 11h01

A ativista Sara Winter usou livros do ministro do STF (Supremo Tribunal Federal) Alexandre de Moraes como e de sofá. Em prisão domiciliar, ela ficou noiva de Giovane Rodrigues na noite de ontem.

Na foto que registra o beijo do casal - e em outras que mostram uma sala da casa dela -, é possível ver uma pequena pilha de livros sustentando um dos lados do sofá. Apenas dois deles, idênticos, estão com as lombadas à mostra. Trata-se do livro "Direito Constitucional" (2002), escrito pelo ministro do Supremo e usado como bibliografia em diversas faculdades e universidades.

Sara foi presa no dia 15 de junho no inquérito que apura manifestações de rua antidemocráticas. A prisão foi decretada por Moraes a pedido da PGR (Procuradoria-Geral da República). Ela deixou a prisão na semana ada e ou a ser monitorada por tornozeleira eletrônica.

Ela também foi um dos alvos dos mandados de busca e apreensão em outro inquérito no STF, o que apura as fake news, no fim de maio, e teve confiscados itens como computador e celular - conforme ela mesmo afirmou em vídeos publicados em redes sociais. A operação também foi autorizada por Moraes.

Depois da ação, Sara iniciou uma série de ataques contra o STF e Moraes, falando em persegui-lo e "trocar socos" com ele.

"Pena que ele mora em São Paulo. Se estivesse aqui, eu tava na porta da casa dele, convidando ele para trocar soco comigo. Juro por Deus, eu queria trocar soco com esse filho da puta desse arrombado. Infelizmente eu não posso. Mas eu queria. Ele mora lá em São Paulo, né? Você me aguarde, Alexandre de Moraes. O senhor nunca mais vai ter paz na vida do senhor", afirmou ela, em vídeo que circulou no Twitter.

Ela foi denunciada pelo MPF (Ministério Público Federal) pelos crimes de injúria e ameaça contra o ministro do STF. Caso condenada, será obrigada a repará-lo em valor mínimo de R$ 10 mil por danos morais.

Noivado

Sara Winter, em prisão domiciliar, fica noiva de Giovane Rodrigues, em Brasília - WALLACE MARTINS/FUTURA PRESS/ESTADÃO CONTEÚDO - WALLACE MARTINS/FUTURA PRESS/ESTADÃO CONTEÚDO
Sara Winter, em prisão domiciliar, fica noiva de Giovane Rodrigues, em Brasília
Imagem: WALLACE MARTINS/FUTURA PRESS/ESTADÃO CONTEÚDO

Sara usou as redes sociais ontem para noticiar que ficou noiva e disse que o casamento acontecerá no próximo final de semana.

"Depois da tormenta, vem a paz. Hoje fui oficialmente pedida em casamento e claro, ao homem da minha vida, disse SIM. Tentaram me destruir, mas construíram uma pessoa 10 vezes mais forte. Enquanto uns babam de ódio, eu transbordo de amor. O casamento fica pro próximo fim de semana", escreveu ela.