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

Bolsonaro cita respeito ao teto, mas acerta R$ 5 bilhões extras para obras

Maior parte dos recursos – R$ 2,5 bilhões – deve ir para o Ministério da Infraestrutura - Nayra Halm/Fotoarena/Estadão Conteúdo
Maior parte dos recursos – R$ 2,5 bilhões – deve ir para o Ministério da Infraestrutura Imagem: Nayra Halm/Fotoarena/Estadão Conteúdo

Adriana Fernandes e Eliane Cantanhêde

Brasília

14/08/2020 12h00Atualizada em 14/08/2020 14h48

Após embates entre ministros por mais recursos para bancar obras públicas, o governo prepara uma medida provisória que abre crédito extraordinário de pelo menos R$ 5 bilhões para custear investimentos em infraestrutura e ações indicadas por parlamentares. Os ministérios estão preparando uma lista de obras que podem ser contempladas, mas ainda não há definição.

O acordo foi selado anteontem em conversa do presidente Jair Bolsonaro (sem partido) com ministros e parlamentares, e pouco antes de o presidente aparecer em público ao lado dos presidentes do Senado, Davi Alcolumbre (DEM-AP), e da Câmara, Rodrigo Maia (DEM-RJ), para defender a manutenção do teto de gastos.

Nas conversas internas, porém, Bolsonaro deu aval ao uso do crédito extraordinário, uma das poucas exceções possíveis para que despesas fiquem livres de qualquer limitação imposta pelo teto. A promessa de liberação dos R$ 5 bilhões foi antecipada pela Coluna do Estadão.

O uso de créditos extraordinários, sob o argumento de estimular a economia no pós-covid-19, é defendido pelo ministro do Desenvolvimento Regional, Rogério Marinho. Em ano eleitoral, ele tem inaugurado uma série de obras em diferentes regiões ao lado de Bolsonaro.

Divisão

Entre R$ 1,5 bilhão e R$ 2 bilhões devem ir para ações do Ministério do Desenvolvimento Regional. A Infraestrutura, do ministro Tarcísio de Freitas, também será contemplada — a pasta pode receber R$ 2,5 bilhões a mais. Tanto Marinho quanto Freitas participaram da reunião de anteontem.

Haverá ainda uma reserva de recursos a ser destinada a obras indicadas diretamente pelos parlamentares, uma forma de contemplar o Centrão e ganhar apoio no Congresso à manobra. Esse espaço para os congressistas deve ser de cerca de R$ 1,3 bilhão. A medida provisória precisará ser validada pelos parlamentares.

Maia, porém, disse ao Estadão que é inconstitucional a estratégia de usar uma medida provisória. Segundo ele, há entendimento do STF (Supremo Tribunal Federal) para barrar o uso do instrumento para despesas que não se encaixam no quesito de imprevisibilidade.

Se a ampliação dos gastos for uma decisão de governo, de acordo com Maia, seria preciso mandar um projeto de lei para refazer a distribuição dos recursos dentro do Orçamento já em execução.

Técnicos da área econômica e de órgãos de controle também temem ser responsabilizados pela ação. Eles têm dúvidas se bancar obras que já estão em andamento ou ainda serão iniciadas pode ser enquadrado como enfrentamento a efeito econômico da pandemia.

As informações são do jornal O Estado de S. Paulo.