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

Hang pede para que STF não bloqueie seus perfis em redes sociais

Gabriela Biló - 21.nov.2019/Estadão Conteúdo
Imagem: Gabriela Biló - 21.nov.2019/Estadão Conteúdo

Nathan Lopes

Do UOL, em São Paulo

28/05/2020 12h05

A defesa do empresário Luciano Hang, dono da rede de lojas Havan, pediu hoje ao STF (Supremo Tribunal Federal) para que seus perfis nas redes sociais não sejam bloqueados. Apoiador do presidente Jair Bolsonaro (sem partido), Hang foi um dos alvos da operação de ontem da PF (Polícia Federal) que investiga a divulgação de notícias falsas.

No despacho em que autorizou a operação, o ministro do STF Alexandre de Moraes indicou que empresários estariam financiando uma estrutura de divulgação de notícias falsas, algumas com conteúdo contra a Corte e a democracia.

Na decisão, Moraes também determinou o bloqueio das redes sociais de alguns dos alvos, entre os quais, Hang. Segundo o ministro, a medida se mostrava necessária "para a interrupção dos discursos com conteúdo de ódio, subversão da ordem e incentivo à quebra da normalidade institucional e democrática".

Nesta manhã, os perfis de Hang no Twitter, no Facebook e no Instagram ainda estavam no ar.

Para a defesa, o bloqueio das redes "representa uma severa violação" à liberdade de expressão. Os advogados de Hang dizem que é "direito fundamental a manifestação do pensamento".

Os defensores dizem que o ato de Moraes representa uma "censura" que afeta os seguidores do empresário nas redes sociais.

"Bloquear referidas redes indistintamente sem sequer indicar uma única publicação ilícita que seja, impedindo desse modo publicações previamente, presumindo que possam eventualmente serem lesivas, é sem dúvida um ato de censura prévia."

Em sua argumentação, os advogados comparam o alcance das redes sociais do empresário com o público de veículos de imprensa. Para eles, Hang, com suas publicações, "tem o mesmo caráter informativo e de formação de opinião".

No texto, a defesa de Hang também diz concordar com o pedido da PGR (Procuradoria Geral da República) para suspender o inquérito das fake news.

Caso Moraes negue a solicitação dos advogados para manter as redes sociais de Hang desbloqueadas, a defesa pede para que o pedido seja analisado pela 1ª Turma do STF. Não há prazo para que o ministro se manifeste a respeito.