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

Preso ligado ao MBL viralizou fake news sobre Marielle e Marcinho VP

Carlos Afonso conhecido como Luciano Ayan - Reprodução/Facebook
Carlos Afonso conhecido como Luciano Ayan Imagem: Reprodução/Facebook

Alex Tajra e Wanderley Preite Sobrinho

Do UOL, em São Paulo

10/07/2020 14h01

O empresário ligado ao MBL (Movimento Brasil Livre) Carlos Augusto de Moraes Afonso, preso hoje por suspeita de lavar dinheiro, foi o responsável por viralizar uma fake news que acusava Marielle Franco de ter mantido um relacionamento com o traficante Marcinho VP e com a facção criminosa Comando Vermelho.

Afonso é conhecido na internet como Luciano Ayan, pseudônimo que criou para evitar a relação de sua identidade com seu ativismo político, que ficou notório quando o MBL compartilhou uma matéria falsa sobre Marielle escrita pelo site Ceticismo Político, criado por Ayan em 2017.

No dia seguinte ao crime, ocorrido em 14 de março de 2018, os primeiros boatos sobre Marielle começaram a se espalhar no WhatsApp, segundo dados colhidos na época pelo Labic (Laboratório de Estudos sobre Imagem e Cibercultura), da Ufes (Universidade Federal do Espírito Santo).

Mas foi apenas na sexta-feira, dois dias depois do assassinato, que surgiram os primeiros boatos no Twitter relacionando Marielle ao traficante.

Uma das pessoas a replicar a mentira foi a desembargadora Marília de Castro Neves, do Tribunal de Justiça do Rio, que mais tarde itiu ter se precipitado.

O site Ceticismo Político se apropriou dos tuítes e das declarações da desembargadora para publicar uma reportagem falsa sob o título "Desembargadora quebra narrativa do PSOL e diz que Marielle se envolvia com bandidos e é 'cadáver comum'".

O link do texto foi compartilhado por Ayan e depois replicado pelo MBL.

Segundo o Labic, mais de 4.000 pessoas envolvidas em boatos se engajaram para espalhar o link, gerando mais de 360 mil compartilhamentos apenas no Facebook. O assunto acabou ocupando o primeiro lugar entre os mais falados naquele dia na rede social.

Carlos Augusto de Moraes Afonso (conhecido como Luciano Ayan) é preso na Juno Moneta - Reprodução/GloboNews - Reprodução/GloboNews
Carlos Augusto de Moraes Afonso (conhecido como Luciano Ayan) é preso na Juno Moneta
Imagem: Reprodução/GloboNews

Sócio de fundador do MBL

Ayan ganhou notoriedade a partir da segunda eleição da então presidente Dilma Rousseff (PT), quando encampou a campanha pelo impeachment da petista, entre 2015 e 2016.

Em alguns sites alinhados à direita, ele era apresentado como "um dos mais influentes analistas políticos" do Brasil. Em sua conta no Twitter, ele se intitula consultor de TI e "analista de guerra política".

Em março de 2018, dez dias após o assassinato de Marielle, a página de seu Ceticismo Político foi derrubada pelo Facebook, que notou violação de suas normas. Até aquele momento, Ayan não havia revelado publicamente que se chamava Carlos Augusto de Moraes Afonso.

Na mesma época, veio à tona a informação de que Ayan era sócio de um dos fundadores do MBL, Pedro D'Eyrot, em uma consultoria com sede no centro de São Paulo (até abril deste ano, seu nome permanecia no quadro societário).

Chamada Yey Inteligencia LTDA., a empresa tem capital social de R$ 30.000 e diz atuar em "atividades de consultoria em gestão empresarial, exceto consultoria técnica específica".

Ele também consta como sócio de outra empresa, a Itframing Servicos de Ti LTDA, com R$ 80 mil de capital social e sede no Jardim das Acácias, zona sul de São Paulo.

Com a ascensão de Jair Bolsonaro à presidência e seu racha com o MBL, Ayan seguiu a orientação política do movimento conservador e ou a criticar o capitão reformado. Em janeiro, por exemplo, disse que se arrependeu de ter apoiado o impeachment de Dilma.

"Se fosse para que a direita, que os tirou, ficasse se ajoelhando para bolsolavistas —salvo exceções, claro—, era melhor que ela terminasse o governo e a coisa fosse resolvida nas urnas", escreveu em suas redes sociais.

Siga o UOL no