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

Guerra da Rússia-Ucrânia

Notícias do conflito entre Rússia e Ucrânia


Esse conteúdo é antigo

'Bunker desabou em cima de nós': ucranianos relatam batalha em Donbass

RFI*

28/04/2022 13h59

Após dias difíceis, a calmaria voltou ao hospital militar de Zaporizhia, cidade localizada ao leste da Ucrânia. Mas os confrontos continuam na região do rio Dnieper, e os serviços de saúde, que estão ao alcance das armas russas, tentam como podem atender os pacientes.

"Estamos a menos de 50 km do front. Os feridos mais graves são trazidos primeiro para esta sala de reanimação. Como você pode ver, bloqueamos as janelas para tornar o local seguro. Evitamos deixar os feridos aqui por muito tempo, pois é arriscado", relata Yurii, um dos médicos do hospital militar. "Na maioria das vezes, quando a condição do paciente se estabiliza, eles são levados para hospitais civis mais ao norte", completa.

Entre os feridos está Stepan, um jovem soldado que acaba de chegar da região do Donbass, sem fôlego de tanta dor. "Fui ferido ontem, na região de Donetsk. Um tiro de um tanque russo atingiu nossa posição. O projétil caiu muito perto de nós. Foi uma confusão porque o bunker desabou em cima de nós. Eu fugi, mas tenho muitos hematomas e minhas costas doem. Ao meu lado, um camarada teve a perna amputada e não sobreviveu", relata o militar.

Segundo o tenente-coronel Viktor Pysanko, diretor do hospital militar, se antes os pacientes davam entrada com ferimentos causados principalmente por explosões, hoje é cada vez maior o número de vítimas de tiros de artilharia. "Os russos fazem isso para tentar empurrar nossas linhas de combate. É um método antigo, já comprovado no Afeganistão e na Chechênia. Eles cobrem tudo com sua artilharia e depois tentam empurrar o front com sua infantaria", explica.

As autoridades também contam com profissionais de saúde estrangeiros, que ajudam à distância. Um paraquedista, que já havia servido no Kosovo e na República Democrática do Congo, utilizou a sua rede de contatos para desenvolver o uso da telemedicina. Dos Estados Unidos à França, ando por Israel, vários médicos responderam ao chamado do jovem oficial e contribuem com as operações.

No Donbass, a resistência continua

Mais ao leste, na região do Donbass, onde ficam as repúblicas autoproclamadas de Donetsk e Lugansk, a ofensiva lançada há mais de uma semana avança lentamente. Os bombardeios são intensos, mas as forças russas lutam para tomar aldeia após aldeia.

"Há muitas pessoas aqui que apoiam os russos", conta um homem com traje militar que se apresenta como membro de uma unidade de defesa territorial do Donbass. "Essas pessoas já deram todas as posições do nosso exército para os russos, mas ainda tentamos permanecer discretos," explica, ao lado de seus dois colegas, em uma estrada de terra nos arredores de Slavyansk, cidade conhecida como separatista.

Ao longe, ouve-se o som de tiros. "Esses são apenas de treinamento", explica Ruzlan, o único do grupo a ter formação militar. "Um soldado deve aprender a se tornar amigo de sua arma. Eu, quando entrei no serviço militar, por meses vivi e dormi com a minha arma", diz.

Mapa Rússia invade a Ucrânia - 26.02.2022 - Arte UOL - Arte UOL
Imagem: Arte UOL

As forças de defesa territorial ucranianas são compostas por civis para apoiar o Exército convencional. Os soldados dizem que estão prontos a morrer por suas terras. Porém, é difícil manter as tropas motivadas, explica o chefe da unidade, um ex-fotógrafo de paisagens. "Você não pode dizer que eles estão entediados, mas há pessoas que estão atualmente na linha de frente engajadas em lutas intensas. Todos viemos para lutar e agora estamos apenas patrulhando a cidade. Então, eu tento motivar minha unidade o tempo todo", relata.

* Com informações de Oriane Verdier e Aabla Jounaïdi, enviadas especiais da RFI à Ucrânia