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

Conselho de Ética suspende deputado Boca Aberta por seis meses

Renato Onofre

Brasília

10/12/2019 15h10

O Conselho de Ética da Câmara determinou, por 10 votos a 1, a suspensão do mandato do deputado federal Boca Aberta (PROS-PR). O parlamentar ainda pode recorrer da decisão à Comissão de Constituição e Justiça (CCJ) antes do Plenário da Câmara confirmar ou não seu afastamento. Se mantido resultado do colegiado, o parlamentar paranaense ficará afastado da Casa sem receber salários e sem direito a utilizar o gabinete por seis meses.

Apesar da gravidade, a punição acabou sendo mais branda do que estava inicialmente previsto no relatório do deputado Alexandre Leite (DEM-SP), que pediu a cassação de Boca Aberta por quebra de decoro parlamentar. Um acordão costurado por líderes decidiu dar um "aviso" ao paranaense antes de uma medida mais drástica.

Em seu primeiro mandato, Boca Aberta é campeão de representações no Conselho de Ética da Casa. Até o momento, as queixas dos colegas parlamentares resultaram em dois processos que foram unificados e julgados nesta terça-feira, 10. Outras sete reclamações estão em aberto.

O parlamentar que se auto intitula como a "metralhadora verborrágica" usou um tom mais comedido durante sua defesa. Ele apelou para a liberdade de expressão do parlamento e pediu para a Câmara deixasse de lado a representação, vista por ele como uma disputa política local.

"Quero ver quem vai calar a minha boca", esbravejou o deputado Boca Aberta (PROS-PR) no plenário da Câmara, no dia 15 de agosto, enquanto era contido por seguranças. Toda vez que ele se dirige para usar o microfone, os agentes se preparam para evitar confusão. A reportagem presenciou por duas vezes, no mês ado, os policiais legislativos se aproximarem do parlamentar antes mesmo de ele começar a soltar a sua metralhadora verbal.

Em setembro, ao jornal O Estado de S. Paulo, Boca Aberta se definiu: "Sou a trilha sonora dos excluídos. Terrorista verbal. Sanguinário na fala e eloquente no discurso". O estilo boquirroto do "terrorista verbal" conquistou eleitores, mas desagrada os colegas de plenário, que procuram o Conselho de Ética. "É um golpe. Um tapetão. Querem me calar porque eu falo o que eles não querem ouvir. Mas não vão. Nunca!", disse a época sobre as representações contra ele no conselho.

Na decisão desta terça, os deputados consideraram que ele abusou de suas prerrogativas constitucionais para expor ao ridículo um médico que estava descansando.

"Seis meses de suspensão está de bom tamanho. Assim, ele perde o gabinete, perde o pessoal, o suplente será chamado. Quem sabe assim ele 'conserta'", afirmou o deputado Mauro Lopes (MDB-MG).

Trâmite

Agora, Boca Aberta ainda pode recorrer da decisão à CCJ que só pode analisar se teve ou não alguma irregularidade durante o processo. Após a análise do recurso, o caso vai ao Plenário da Câmara que definirá sobre a suspensão.