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

Calor extremo mata sete imigrantes na fronteira dos EUA com o México

22.jun.2019 - Migrantes pulam sobre muro para cruzar a fronteira dos EUA com o México em Ciudad Juarez - Jose Luis Gonzalez/Reuters
22.jun.2019 - Migrantes pulam sobre muro para cruzar a fronteira dos EUA com o México em Ciudad Juarez Imagem: Jose Luis Gonzalez/Reuters

Por Andrew Hay

25/06/2019 09h55

Autoridades do Texas informaram ontem que sete imigrantes morreram, incluindo uma mulher, dois bebês e uma criança, em uma demonstração dos perigos do calor extremo do verão à medida que famílias da América Central tentam cruzar a fronteira entre México e Estados Unidos.

A mulher e as três crianças podem ter morrido dias antes de serem encontradas pela patrulha da fronteira próximo do Rio Grande, no sul do Texas, no domingo, de acordo com uma autoridade local, que pediu anonimato.

A exposição ao calor e a desidratação são as possíveis causas de morte.

A oeste, na região de Del Rio, agentes da fronteira resgataram os corpos de dois homens após ligações anônimas em 19 e 20 de junho alertarem sobre imigrantes perdidos, informou a agência de proteção da fronteira.

Outro corpo em decomposição foi encontrado em 20 de junho na margem do Rio Grande.

"As temperaturas extremas durante essa época do ano podem ser fatais", disse o chefe da patrulha fronteiriça na região de Del Rio, agente Raul Ortíz.

A istração de Trump estabeleceu limites para quantas pessoas podem solicitar asilo todos os dias nos portos de entrada. Meses à espera de entrevistas, as famílias migrantes tentam, às vezes, cruzar a fronteira de modo arriscado para fazer suas solicitações.

Os coiotes, como são chamados intermediários do tráfico ilegal de pessoas na fronteira, colocam em risco a vida dos imigrantes, deixando-os em áreas isoladas ou enviando-os através do Rio Grande em jangadas improvisadas.

A Patrulha da Fronteira registrou 283 mortes de imigrantes no limite entre EUA e México em 2018. Ativistas de direitos humanos dizem que o número é muito maior, pois os restos mortais de muitas vítimas nunca são encontrados e os dados da agência não incluem todas as mortes registradas pelas autoridades locais.