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

Ex-advogado de Flávio Bolsonaro suspeito de ajudar em fraude é exonerado

Luis Gustavo Botto Maia em encontro com mulher de Queiroz e a mãe do miliciano Adriano da Nóbrega  - Reprodução
Luis Gustavo Botto Maia em encontro com mulher de Queiroz e a mãe do miliciano Adriano da Nóbrega Imagem: Reprodução

Do UOL, em São Paulo

23/06/2020 10h59

O ex-advogado do senador Flávio Bolsonaro (Republicanos), Luiz Gustavo Botto Maia, foi exonerado hoje do seu cargo na Alerj (Assembleia Legislativa do Rio de Janeiro). Botto Maia era assessor parlamentar do deputado estadual Renato Zaca (sem partido). A sua exoneração consta no Diário Oficial da Alerj.

O advogado já esteve à frente da defesa de Flávio Bolsonaro na investigação sobre a prática de rachadinha no gabinete do senador, à época deputado estadual pelo Rio de Janeiro. Ele também foi o responsável pela representação jurídica da campanha do senador junto à Justiça Eleitoral, em 2018. Botto Maia foi um dos alvos da Operação Anjo, que resultou na prisão de Fabrício Queiroz na semana ada.

Botto Maia é suspeito de participar de uma articulação para fraudar os registros de controle de ponto de Luiza Souza Paes, uma ex-assessora de Flavio Bolsonaro na Alerj. De acordo com conversas em um aplicativo de mensagens apreendidas pelos promotores no celular de Luiza, a articulação para que a suposta fraude fosse consumada teve a participação de duas pessoas de confiança de Flávio Bolsonaro: o próprio Fabrício Queiroz e o advogado Gustavo Botto Maia.

Matheus Azeredo Coutinho, outro funcionário da Alerj que também é suspeito de participar da fraude e foi alvo da operação policial, já havia sido exonerado ontem.

Luiza aparece nos relatórios do Coaf (Conselho de Controle de Atividades Financeiras) que apontaram indícios da prática de rachadinha no gabinete de Flávio, ainda em 2018. A ex-assessora foi uma das funcionárias flagradas devolvendo parte do seu salário para Queiroz, que por sua vez usava o dinheiro para pagar despesas pessoais do então deputado.

O UOL mostrou ontem que a adulteração nas folhas de ponto, que traziam evidências de que Luiza era uma funcionária fantasma de Flávio, foi motivada por um requerimento feito pela reportagem por meio da LAI (Lei de o à Informação). O presidente Jair Bolsonaro editou um decreto alterando a LAI no mesmo dia em que a fraude foi flagrada por promotores do MP-RJ.