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

Não descansaremos até encontrar o MH370, diz ministro

Do UOL, em São Paulo

31/03/2014 07h32

As equipes de resgate ao voo MH370 da Malaysia Airlines, desaparecido desde o dia 8 de março, não têm um prazo para finalizar as buscas, informou nesta segunda-feira (31) o ministro interino dos Transportes, Hishammuddin Hussein. Durante coletiva de imprensa, ele afirmou que o governo da Malásia continuará buscando o Boeing e não descansará até que as respostas para seu desaparecimento sejam encontradas.

Hussein informou ainda que uma agência multinacional será estabelecida para centralizar e coordenar as buscas. A base será na Austrália.

Até agora, todos os objetos avistados por aviões da equipe de resgate não foram confirmados como pertencentes ao voo MH370. Quatro objetos de cor laranja foram visto por uma aeronave durante as buscas no Oceano Índico, mas ficou comprovado que se tratava de equipamento de pesca, segundo informou o governo australiano nesta segunda-feira (31).

Segundo o tenente Russell Adams, da Força Aérea australiana, os objetos avistados no domingo (30) eram até agora as pistas mais promissoras.

Dez aviões e dez navios estão vasculhando uma área de 319.000 km quadrados a sudeste da cidade litorânea de Perth para tentar encontrar destroços do Boeing 777-200.

A bateria do “pinger”, equipamento que grava as informações relativas ao voo, incluindo as gravações na cabine, funciona por um mês –o que aumentava a pressão sobre os esforços da força multinacional formada por 26 países para encontrar a aeronave.

As equipes de busca estão utilizando uma ferramenta como “localizador de ping” para encontrar a caixa-preta, que poderá ser usada uma vez que sejam encontrados destroços do avião.

“A intensidade e a magnitude de nossa busca está aumentando e não diminuindo”, afirmou mais cedo o primeiro-ministro australiano, Tony Abbot. “Podemos continuar procurando por muito tempo”.

O voo MH370 fazia a rota Kuala Lumpur-Pequim no dia 8 de março, com 239 pessoas a bordo, quando perdeu contato com o controle de tráfego aéreo cerca de 40 minutos após a decolagem. Dos ageiros, 153 eram de origem chinesa e dezenas de parentes chegaram a Kuala Lumpur neste domingo (30) para acompanhar de perto as buscas. Eles estão frustrados com a falta de informação por parte das autoridades malaias.

Muitos familiares ficaram revoltados quando o primeiro-ministro malaio Najib Razak anunciou que acreditava que o avião havia caído no mar, sem deixar sobreviventes.

A afirmação ganhou reforço do governo australiano. “O acúmulo de evidências indica que a aeronave se perdeu em algum ponto no sul do Oceano Índico”, afirmou Abbot. “É o que a imensa maioria de evidências nos mostra e acredito que o primeiro-ministro Najib Razak tinha toda a razão em chegar a essa conclusão”.

Várias teorias têm circulado a respeito do que teria acontecido com o voo MH370. Entre elas, a suspeita de que o piloto teria sequestrado o avião. Em sua casa, as autoridades encontraram um simulador de voo. No sábado (29), entretanto, o governo malaio disse que os investigadores não encontraram “nada sinistro” no simulador.

"Estamos realizando as buscas em uma area vasta do oceano, e trabalhando em cima de informação bem limitada”, disse o primeiro-ministro Tony Abbot nesta segunda-feira. “Entretanto, contamos com o apoio das mentes mais brilhantes do mundo nesta tarefa (…). Se este mistério pode ser resolvido, nós vamos solucioná-lo”.