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

Ação de Putin viola integridade territorial da Ucrânia, diz professor

Colaboração para o UOL*

21/02/2022 18h36

Em entrevista ao UOL News da noite de hoje, Felipe Loureiro, professor de Relações Internacionais da USP (Universidade de São Paulo), repercutiu o pronunciamento do presidente da Rússia, Vladimir Putin, reconhecendo a independência de duas regiões separatistas no leste da Ucrânia. Segundo ele, essa ação de Putin "viola a integridade territorial" do país vizinho.

Em seu discurso, o presidente russo assinou decretos reconhecendo a República Popular de Donetsk e a República Popular de Lugansk, e determinando "acordos de amizade e ajuda mútua". A decisão não prevê anexá-las e adicioná-las formalmente a seu próprio território, mas agrava a crise entre a Rússia e a Ucrânia.

"Havia um temor que com a escalada das tensões entre a Rússia e a Ucrânia e a Rússia e a Otan, o Putin pudesse dar cartada que deu hoje. Por que essa cartada é tão significativa? Porque claramente viola a integridade territorial da Ucrânia, ou seja, só a Rússia está reconhecendo que que essas duas províncias são dois estados independentes", explicou.

"E mais: Putin assinou acordos de cooperação e amizade com essas duas províncias. O que significaria que pode haver uma possibilidade da Rússia entrar efetivamente nessas províncias para proteger as minorias russas do que os russos chamam de "genocídio". Tem uma série de narrativas para justificar essa intervenção."

Loureiro finalizou seu esclarecimento dizendo que a ação do presidente russo é um o "de escalada grave" e que agora é preciso que o mundo esteja atento para o que pode acontecer no leste europeu.

União Europeia reage

A presidente da Comissão da União Europeia, Ursula von der Leyen, anunciou hoje que o bloco europeu e os seus parceiros vão reagir à decisão do presidente russo, Vladimir Putin.

"O reconhecimento dos dois territórios separatistas em Ucrânia é uma violação flagrante do direito internacional, da integridade territorial da Ucrânia e dos acordos Minsk. A UE e os seus parceiros reagirão com unidade, firmeza e determinação em solidariedade com a Ucrânia. Ursula von der Leyen, em seu perfil, nas redes sociais.

A decisão sobre as sanções deve ser tomada pelos líderes da organização em uma cúpula, e será convocada uma reunião extraordinária dos ministros das Relações Exteriores da UE para adotá-las. O reconhecimento por parte da Rússia da independência das regiões separatistas da Ucrânia representaria uma "ruptura unilateral" dos acordos de Minsk de 2015, disse nesta segunda-feira o chefe de governo alemão, Olaf Scholz, após uma conversa telefônica com Vladimir Putin.

*Com informações da AFP