;(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
Logo Pagbenk Seu dinheiro rende mais
Topo

Policiais protestam e chamam PSL de "traidor" após veto a regra mais suave

Antonio Temóteo

Do UOL, em Brasília

04/07/2019 18h35Atualizada em 04/07/2019 20h02

Após a rejeição do segundo destaque que suavizaria as regras para a aposentadoria de policiais, houve um protesto no plenário da comissão especial da reforma da Previdência. Os manifestantes estavam com adesivos da União dos Policiais do Brasil (UPB), que representa policiais federais, policiais civis, guardas municipais, delegados federais e policiais rodoviários federais.

Os principais alvos de crítica foram o PSL, partido do presidente Jair Bolsonaro, e a líder do governo no Congresso Nacional, deputada Joice Hasselmann (PSL-SP).

Os manifestantes foram autorizados a entrar no plenário pelo presidente da comissão especial, deputado Marcelo Ramos (PL-AM). No protesto, chamaram integrantes do partido e Joice de "traidores" e "traidora" e gritaram que "o PSL traiu a polícia do Brasil".

Eles foram retirados do local pelos policiais legislativos da Câmara dos Deputados.

Desde ontem, integrantes de diversas forças policiais têm procurado deputados para tentar garantir votos para suavizar as regras de aposentadoria. O próprio presidente Bolsonaro se engajou na defesa de regras diferenciadas para policiais.

Destaques rejeitados

Um dos destaques rejeitados previa uma regra de transição para policiais federais, policiais rodoviários federais, policiais civis, guardas municipais, agentes da Abin (Agência Brasileira de Inteligência) e agentes de trânsito. Pela proposta, seria cobrado um "pedágio" de 17% sobre o tempo de contribuição que faltaria para se aposentar segundo as regras atuais.

O destaque também definia uma idade mínima menor para essas categorias, de 55 anos para homem e 52 para mulheres (para a população em geral, a reforma estipula mínimo de 65 anos, para homens, e 62, para mulheres).

A proposta foi rejeitada, com 31 votos contrários e 17 favoráveis.

Um segundo destaque semelhante, apresentado pela bancada do PSD, foi votado em seguida pelos parlamentares. A diferença é que as regras têm validade exclusiva para policiais federais, rodoviários federais e policiais legislativos.

A emenda foi rejeitada, com 30 votos contrários e 19 favoráveis.

Entenda a proposta de reforma da Previdência em 10 pontos

UOL Notícias