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

Justiça cassa decisão e mantém licitação do STF que prevê compra de lagosta

DIDA SAMPAIO - 13.fev.2019/ESTADÃO CONTEÚDO
Imagem: DIDA SAMPAIO - 13.fev.2019/ESTADÃO CONTEÚDO

Leandro Prazeres

Do UOL, em Brasília

07/05/2019 10h58Atualizada em 07/05/2019 14h23

O TRF-1 (Tribunal Regional Federal da 1ª Região) liberou a licitação do STF (Supremo Tribunal Federal) que prevê a compra de itens considerados de luxo como lagosta e vinho. O pregão estimado em R$ 1,1 milhão havia sido suspenso ontem após uma decisão em primeira instância da Justiça Federal do Distrito Federal.

Na sua decisão, o desembargador do TRF-1 Kassio Marques diz que o pregão realizado pelo STF não diz respeito apenas à alimentação dos magistrados.

"O contrato a que se refere o Pregão Eletrônico 27/2019/STF se destina a qualificar o STF a oferecer refeições institucionais às mais graduadas autoridades nacionais e estrangeiras, em compromissos oficiais nos quais a própria dignidade da Instituição, obviamente, é exposta tais como a realização, prevista para 2019, de eventos setoriais do Mercosul, cúpula do BRICS, bem como, a título exemplificativo, o recebimento de Chefes de Poderes, Chefes de Estados estrangeiros e Juízes de Cortes Constitucionais de todos o mundo", afirmou o magistrado.

O desembargador ainda mencionou que o TCU (Tribunal de Contas da União) chegou a dar parecer favorável a um pregão semelhante realizado pelo Ministério das Relações Exteriores.

O magistrado criticou ainda a decisão da juíza Solange Salgado, que concedeu uma liminar que suspendeu o pregão ontem. "A tese acolhida no Juízo de primeiro grau referenda a preocupante ideia de que, no âmbito do Supremo Tribunal Federal --que abriga nada menos do que a Chefia de um dos Poderes da República, o Poder Judiciário--, são concebidos atos com desvio de finalidade", afirmou.

O desembargador disse que a decisão da juíza reflete uma visão "distorcida dos fatos". "A licitude e a prudência com que se desenvolveu o processo licitatório desautorizam tal ideia, que reflete uma visão distorcida dos fatos, nutrida por interpretações superficiais e açodadas, daí se justificando o acionamento da excepcional jurisdição plantonista para que, imediatamente, se afaste a pecha indevidamente atribuída ao STF", disse.

Licitação refinada

No texto do pregão N.27/2019 da corte, é possível ver as especificações pretendidas pelos ministros para suas refeições. Os medalhões de lagosta, por exemplo, estão registrados tanto no ponto "Pratos Principais" quanto no "Pratos frios para buffet", compilados no anexo "Sessão ilustrativa de pratos. " Na parte do coffee break, os ministros fazem menção a três tipos de frutas e bolos, "incluindo bolo de rolo" (iguaria pernambucana).

Na parte de bebidas, chama a atenção as especificações para vinhos. São cinco pontos distintos, três para vinhos tintos e dois para vinhos brancos. Em todos os pontos os ministros exigem que as bebidas tenham vencido pelo menos quatro premiações internacionais. No caso do vinho Chardonnay, o vinho deve ter "sido envelhecido em barril de carvalho, de primeiro ou segundo uso, por período mínimo de 6 (seis) meses" e a colheita das uvas para fabricação "deve ter sido feita manualmente."

Veja a íntegra dos pedidos dos ministros do Supremo Tribunal Federal. As especificações sobre o período de cada refeição e sobre cada tipo de alimento estão nas páginas cinco e seis, respectivamente.