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

Greenwood reforça segurança com cão de R$ 180 mil após pagar fiança

Greenwood, atacante do Manchester United, teve seu contrato de patrocínio com a Nike rompido e foi retirado do Fifa 22 - Reprodução/Instagram
Greenwood, atacante do Manchester United, teve seu contrato de patrocínio com a Nike rompido e foi retirado do Fifa 22 Imagem: Reprodução/Instagram

Colaboração para o UOL, em São Paulo

04/02/2022 14h45

O atacante Mason Greenwood, do Manchester United, está protegendo sua casa de 2 milhões de libras (R$ 14,4 milhões, na cotação de hoje) com um cão de ataque de 25 mil libras (R$ 180,2 mil) depois de decidir reforçar a segurança da propriedade também com novas câmeras.

O jogador foi preso na terça-feira (1) após sua ex-namorada, Harriet Robson, acusá-lo de agressões e abuso sexual. Greenwood foi liberado no dia seguinte, após pagar fiança, e permanece sob controle judicial enquanto a investigação está em andamento.

O atacante inglês de 20 anos mora em uma casa de seis andares em uma área de luxo de Cheshire e, além de um sistema de segurança de última geração, adquiriu um enorme pastor alemão para sua proteção.

Cães de ataque custam entre 10 mil e 25 mil libras (R$ 72 mil e R$ 180,2 mil), dependendo do treinamento. Geralmente são pastores belgas ou alemães, dobermans ou cane corsos gigantes, que são treinados para mudar rapidamente seu comportamento: am de um animal de estimação dócil para um cachorro de ataque feroz caso a presença de um intruso for detectada.

"Um cão de proteção individual não é apenas um animal de estimação familiar, mas também uma forma de proteção. Eles anseiam por vínculo familiar, carinho e amor, e são muito amigos das crianças. Eles são dedicados a protegê-los, por demanda, de qualquer perigo ou ameaça possível, conforme ensinado por meio de treinamento intenso, estabilidade mental e obediência", disse um representante da empresa Elite Protection Dogs ao jornal inglês The Sun.

Além de Greenwood, estrelas da Premier League como Lloris, Jesse Lingard, Paul Pogba, Marcus Rashford, Raheem Sterling e Jamie Vardy também contam com esse tipo de proteção.