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

Responsabilizado em processo de impeachment é maior o doador de Crivella

O prefeito do Rio de Janeiro, Marcelo Crivella (Republicanos) - Maurício Almeida/AM Press & Images/Estadão Conteúdo
O prefeito do Rio de Janeiro, Marcelo Crivella (Republicanos) Imagem: Maurício Almeida/AM Press & Images/Estadão Conteúdo

Gabriel Sabóia

Do UOL, no Rio

30/10/2020 04h00

O maior doador pessoa física da campanha de Marcelo Crivella (Republicanos) à reeleição para a Prefeitura do Rio é um servidor que foi responsabilizado no processo de impeachment sofrido pelo prefeito em 2019. Até quinta-feira (29), Fernando Meira Júnior doou R$ 30 mil, segundo informou a campanha de Crivella ao TSE (Tribunal Superior Eleitoral).

Atualmente, Meira Júnior está lotado na Rio-Urbe (empresa municipal de urbanização) e recebeu salário líquido de R$ 8.210 neste mês, segundo o Portal Transparência da prefeitura. A Câmara Municipal concluiu que Meira Júnior —que ocupava o cargo de subsecretário de Projetos Estratégicos do Rio— teve participação direta em irregularidades que envolveram a renovação de contratos de publicidade, causando prejuízos aos cofres do município.

Os contratos foram suspensos e ele chegou a ser afastado do cargo de confiança, mas conseguiu se manter na estrutura da prefeitura. Crivella, por sua vez, foi absolvido do processo.

Os maiores rees para a campanha de Crivella são do Republicanos: R$ 1,156 milhão em quatro depósitos feitos pela direção nacional e R$ 500 mil da ala fluminense da legenda.

Nesta semana, o UOL mostrou que apenas três candidatos à Prefeitura do Rio concentram quase metade de todos os recursos arrecadados pelas chapas até o último domingo (25), prazo final para a primeira prestação de contas desta campanha. Martha Rocha (PDT) lidera o ranking, seguida de perto por Eduardo Paes (DEM) e Luiz Lima (PSL).

Meira assinou renovação de contrato durante férias

Fernando Meira foi convocado para depor à comissão que analisava o processo de impeachment contra Crivella depois de o UOL revelar que ele assinou a análise de contratos irregulares apesar de estar de férias na ocasião. O estudo contratual foi feito em um único dia, em 11 de dezembro de 2018, antes de seguir para a CGM (Controladoria Geral do Município).

Como o documento em questão havia sido encaminhado à Subsecretaria de Projetos Estratégicos —que era comandada por Meira Júnior— a pedido de Crivella, o servidor foi questionado na Câmara se havia recebido ordem expressa para interromper o recesso e dar a canetada que permitiu a renovação dos contratos.

Aos vereadores, ele disse que, apesar de gozar de férias naquele período, estava na prefeitura "por acaso" e acabou fazendo a análise em tempo recorde.

"Sou de uma geração que não se ausenta de férias. Por diversas vezes estive lá [na sede da prefeitura], assinei e encaminhei contratos à Controladoria Geral do Município. Por acaso, eu estava na prefeitura naquele dia. Estive várias vezes no meu período de férias. Havia um substituto designado para documentos nas minhas férias, sim. Mas, naquele dia, não sei dizer se ele também estava lá", afirmou.

Semanas depois, em seu relatório final, a Comissão de impeachment considerou que não havia motivos para a cassação de Crivella, mas decidiu responsabilizar os servidores que participaram diretamente dessas renovações —entre eles, Fernando Meira.

"Não foi identificado crime por parte do chefe do Executivo municipal. O poder Executivo abrirá processo contra os servidores citados neste documento [que cometeram irregularidades nas renovações contratuais, no entender na comissão] e os vereadores desta comissão vão apresentar um projeto de decreto legislativo para sustar os contratos", disse o então relator do processo de impeachment, o vereador Luiz Carlos Ramos Filho (Podemos).

Além de Meira Júnior, os servidores citados foram a então controladora-geral do município, Márcia Andrea Peres, que afirmou em documento estar sendo pressionada a renovar os contratos e abriu mão da análise contratual, e a ex-subsecretária de Patrimônio Imobiliário Maria Elisa Werneck, que aceitou o pedido de reequilíbrio financeiro por parte do consórcio composto por empresas estrangeiras.

Prefeitura não abriu sindicância contra Meira Júnior

O UOL procurou o vereador Ramos Filho para comentar os desdobramentos da responsabilização desse funcionário. Ele criticou o fato de o governo municipal nunca tê-lo investigado.

"O Fernando Meira estava de férias e retornou ao trabalho para um parecer sobre o aditivo do contrato que gerou o impeachment. Ele foi citado no relatório encaminhado ao Ministério Público, para que fosse investigado. O mesmo relatório foi enviado ao Poder Executivo, mas nenhuma sindicância foi aberta na prefeitura contra este servidor", disse.

Outro lado

O UOL procurou a campanha de Crivella e questionou se o candidato vê conflito ético no fato de receber doações de uma pessoa remunerada pela prefeitura comandada por ele. A campanha pediu para que todas as demandas fossem encaminhadas ao governo municipal.

Ao Executivo, a reportagem questionou o porquê de Meira Júnior nunca ter sido investigado internamente por esses atos, se há conflito ético no recebimento de valores e qual é o esquema de contratação do profissional.

Por meio da assessoria de imprensa da prefeitura, o UOL também procurou Meira Júnior.

O espaço está aberto para manifestações e entrevistas do servidor e de Crivella.