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

Esse conteúdo é antigo

Homem acha bomba de modelo usado na 2ª Guerra durante reforma em casa em SP

Morteiro foi levado para casa por avô de morador que encontrou artefato há cerca de 40 anos - Divulgação/GCM de Paulínia
Morteiro foi levado para casa por avô de morador que encontrou artefato há cerca de 40 anos Imagem: Divulgação/GCM de Paulínia

Do UOL, em São Paulo

11/01/2023 11h25Atualizada em 11/01/2023 11h55

Um morador de Paulínia (SP) encontrou um morteiro escondido em sua própria casa, na tarde de ontem. A descoberta foi feita durante uma reforma no imóvel, com o dono da casa se deparando com o artefato suspeito no sótão — cômodo acima do piso térreo. De acordo com a prefeitura do município, o artefato, de modelo similar ao utilizado durante a 2ª Guerra Mundial (1939 - 1945), por segurança, foi destruído em uma pedreira local.

Em um primeiro momento, o homem pensou que o objeto fosse cenográfico, mas decidiu chamar a Guarda Civil Municipal da cidade por precaução e descobriu que o morteiro 81 mm, de uso militar, não era apenas uma réplica.

Sem o conhecimento para lidar com o caso, a GCM acionou o Grupamento Especial de Reação (GER) para detonar o artefato.

Ainda segundo Herycon França, da Guarda Municipal de Paulínia, o morteiro ainda estava com o iniciador, mas não era possível identificar se ele ainda tinha explosivos funcionais, o que fez o GER levar o artefato até uma pedreira do bairro São Bento para destruí-lo — no final das contas, ele não estava mais ativo.

Depois do susto, o dono da casa, que não foi identificado pelas autoridades, descobriu a origem do artefato. O pai dele contou que o morteiro foi encontrado pelo avô da família, já falecido, há cerca de 40 anos.

O homem trabalhava com escavações e, durante um de seus serviços, achou o objeto, decidindo levá-lo para casa. Sua mulher, avó do atual morador, se assustou com a aparência do morteiro e falou para o marido "dar sumiço" nele, mas o homem se rebelou e decidiu escondê-lo no sótão, guardando segredo dos familiares.

Caso seja lançado, um morteiro semelhante ao encontrado na casa da família tem a capacidade de destruir até mesmo veículos blindados. Apesar de o artefato ter sido identificado como munição.

A origem militar do objeto foi confirmada, mas não foi possível saber quem fabricou ou qual das Forças Armadas seria proprietária do morteiro, já que os dados inscritos nele foram apagados ao longo do tempo.