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

Rata 'gordinha' é salva após ficar entalada em bueiro na Alemanha

Foram necessários oito bombeiros e um especialista em resgate de animais para retirar a rata da tampa do bueiro - Berufstierrettung Rhein Neckar
Foram necessários oito bombeiros e um especialista em resgate de animais para retirar a rata da tampa do bueiro Imagem: Berufstierrettung Rhein Neckar

26/02/2019 16h46

Houve quem questionasse tal esforço para salvá-la, mas especialista em resgates do tipo diz que 'mesmo os animais mais odiados merecem respeito'.

Na cidade alemã de Bensheim, no sudoeste do país, equipes de resgate receberam um telefonema incomum: uma rata gordinha precisava de ajuda depois de ficar presa em um bueiro de esgoto.

"Ela tinha engordado no inverno e ficado presa pelo quadril, não tinha como sair ou voltar", disse à imprensa local Michael Sehr, especialista em salvamento de animais que auxiliou na operação.

Um esforço razoável foi feito para livrar a rata, o que levou algumas pessoas a questionarem por que se dar a esse trabalho para tirar um rato de um bueiro. "Mesmo os animais que são odiados por muitos merecem respeito", disse Sehr.

Voluntários entraram em ação após uma chamada ser feita na tarde de domingo, informou o Corpo de Bombeiros da cidade. Sehr, que faz parte da equipe de resgate de animais, já estava lá, mas não conseguia libertar o roedor da tampa do bueiro.

Com a ajuda de bombeiros, a tampa do bueiro foi elevada enquanto Sehr tentava soltar o animal. A rata foi libertada diretamente no esgoto, mas não antes que algumas fotos fossem tiradas.

O caso foi divulgado na página da equipe de resgate de animais no Facebook, onde centenas de comentários parabenizaram o cuidado dado a um animal que é frequentemente alvo de extermínio.

Por sua vez, Sehr recebeu um desenho da rata cercada por corações feito pela menina que primeiro encontrou o animal em apuros.


Já assistiu aos nossos novos vídeos no YouTube? Inscreva-se no nosso canal!

https://www.youtube.com/watch?v=ug2cXtlvJA8

https://www.youtube.com/watch?v=kQqi-oZ3HKU

https://www.youtube.com/watch?v=Ly9-WfCRzuU