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

SP: Sobe para 50 número de mortos após fortes chuvas no litoral norte

O município de São Sebastião foi o mais afetado pelas chuvas; na foto, a Barra do Sahy, onde há vítimas desaparecidas - Bruno Santos/ Folhapress
O município de São Sebastião foi o mais afetado pelas chuvas; na foto, a Barra do Sahy, onde há vítimas desaparecidas Imagem: Bruno Santos/ Folhapress

Colaboração para o UOL, em Salvador

23/02/2023 18h33Atualizada em 23/02/2023 19h00

A informação foi divulgada no final da tarde pelo governo de São Paulo. Foram 49 mortes registradas em São Sebastião e uma em Ubatuba.

As vítimas:

  • 38 corpos já foram identificados e liberados para o sepultamento. São 13 homens adultos, 12 mulheres adultas e 13 crianças;
  • São mais de 2.251 desalojados e 1.815 desabrigados pelos temporais na região

SMS falhou

O governador de São Paulo, Tarcísio de Freitas (Republicanos), afirmou hoje que o disparo de SMS's de alerta para as fortes chuvas que atingiram o litoral norte de SP não tiveram a efetividade esperada.

Segundo Tarcísio, foram disparados 2,6 milhões de alertas, mas apenas 30 mil aparelhos no litoral teriam recebido a mensagem.

Tarcísio pontuou que é obrigatório, por lei, que as empresas disponibilizem seus sistemas para sistemas de alerta, mas que a lei não estabelece todas as diretrizes para um funcionamento efetivo.

Planos como este devem ser revistos em um futuro projeto do governo para regiões de risco.

Medidas apresentadas pelo governador hoje

  • Sirenes também são pensadas nessa nova estratégia do governo, mas dependência do sistema é alvo de críticas de especialistas;
  • Novos radares metereológicos nas zonas de risco;
  • Capacitação dos municípios para adaptação e resiliência climática; o tema foi tratado pelo governador em encontro com Marina Silva, ministra do Meio Ambiente e Mudança do Clima;
  • Treinamento da Defesa Civil e de primeiros socorros nas escolas, a fim de instaurar, a partir de crianças e jovens, uma conscientização sobre planos de fuga;
  • Multas para estabelecimentos que cobrarem preços abusivos por água, comida e outros suprimentos após tragédias ambientais;
  • Repressão a falsos sites de doação para afetados pelas chuvas;
  • Realização de obras estruturais nas rodovias, como muros de contenção e outras medidas nos morros;

Situação das estradas

O governo informou que o último ponto de interdição total da Rodovia Rio-Santos (SP-055) foi desobstruído no fim da tarde de ontem (22). O tráfego está liberado para veículos de resgate e serviços, e técnicos do Departamento de Estradas de Rodagem (DER) continuam os trabalhos para ampliar a agem de veículos nas próximas horas.

Todos os trechos que estavam totalmente obstruídos já foram liberados parcialmente.

No momento há operação parcial nos quilômetros:

  • Rodovia Rio-Santos (SP-055) - Interditada parcialmente
  • - Km 061 - Km 061 - queda de barreira (Praia do Lamberto);
  • - Km 066 - queda de barreira (Praia de Fortaleza);
  • - Km 084 - queda de árvore (Praia Tabatinga);
  • - Km 087- queda de barreira e árvores (Praia da Cocanha);
  • - Km 096 - queda de barreira (Praia Massaguaçu);
  • - Km 116 - queda de barreira (Praia da Cigarra);
  • - Km 142 - queda de barreira e árvores (Praia do Toque Toque);
  • - Km 136 ao 142 - queda de barreira e árvores (Praia do Guaicá e Toque Toque);
  • - Km 157 ao 162 - queda de barreira (Praia de Maresias);
  • - Km 164 - queda de barreira (Praia de Boiçucanga);
  • - Km 180 - queda de árvore (Praia Preta);
  • - Km 188 ao 189 - erosão (Praia de Boracéia);
  • - Km 203 - queda de barreira (Praia Guaratuba).

A subida da serra pode ser feita pelo Sistema Anchieta-Imigrantes, Rodovia dos Tamoios ou Rodovia Oswaldo Cruz, a depender do ponto na Rio-Santos (SP-055) onde o motorista se encontra e do destino. Caso esteja na altura da Praia de Juquehy (km 176), sentido Bertioga, a rota alternativa é somente o Sistema Anchieta-Imigrantes. Para o motorista que estiver do outro lado da interrupção total da SP-055, no km 174, as rotas alternativas podem ser a Rodovia dos Tamoios ou a Oswaldo Cruz.

  • Rodovia Oswaldo Cruz (SP-125) - Interditada parcialmente
  • Km 11 - queda de barreira;
  • Km 13 - queda de barreira;
  • Km 58 - queda de barreira.

A Rodovia Mogi-Bertioga segue totalmente interditada, em razão do rompimento de tubulação, na altura do km 82, em Biritiba Mirim. As obras emergenciais foram iniciadas na terça-feira (21), com previsão de investimento de R$9,4 milhões, liberação do trânsito em dois meses e conclusão em até seis. Será necessário revitalizar o muro de arrimo existe e construir um novo, além de criar uma galeria.