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

Hildon Chaves (PSDB) bate Cristiane Lopes (PP) e é reeleito em Porto Velho

Hildon Chaves terá mais quatro anos à frente da Prefeitura de Porto Velho - Reprodução/Facebook
Hildon Chaves terá mais quatro anos à frente da Prefeitura de Porto Velho Imagem: Reprodução/Facebook

Fernando Cymbaluk Couri

Colaboração para o UOL

29/11/2020 18h42Atualizada em 29/11/2020 20h19

O atual prefeito de Porto Velho, Hildon Chaves (PSDB), venceu a disputa de segundo turno contra Cristiane Lopes (PP) e governará a capital de Rondônia por mais quatro anos.

Hildon Chaves obteve 54,45% dos votos (109.992) e Cristiane Lopes, 45,55% (92.015). Votos nulos somaram 5,18% e os brancos, 2,67%.

Favorito nas pesquisas de intenções de voto, o tucano recebeu apoio de candidatos derrotados no primeiro turno, como Vinicius Miguel (Cidadania), que ficou na terceira colocação, e Coronel Ronaldo Flores (Solidariedade), o quinto colocado.

Hildon Chaves tem como vice o também tucano Maurício Carvalho. Sua coligação, "O Trabalho Continua", é formada por PSD, PL, PSDB e DEM, que juntos somam cinco vagas das 21 da Câmara de Porto Velho.

Perfil do prefeito reeleito

Chaves, 52, é advogado, empresário e já atuou como promotor em quatro cidades do Estado, inclusive na capital rondoniense. Ele é dono de uma das maiores redes de faculdades da região.

Em 2016, foi eleito prefeito da capital com um discurso de "gestor" e "antipolítico", o que rendeu a ele o apelido de "Doria de Porto Velho". Neste mesmo ano, o tucano João Doria tornou célebre o discurso de "gestor" e "antipolítico" ao ser eleito prefeito de São Paulo no primeiro turno.

Sua gestão enfrentou em 2019 grave problema com relação ao transporte escolar da cidade. Cerca de mil alunos da rede municipal ficaram oito meses sem ir às aulas por falta de ônibus ou barco devido à quebra de contratos por irregularidades. À época, professores e pais de alunos relataram que o prefeito demorou mais do que o prometido para sanar o problema.

Promessas de campanha

Durante a campanha, Hildon Chaves prometeu regularizar imóveis situados em áreas com urbanização irregular na cidade e entregar até 40 mil títulos de propriedade. Ele também pretende enfrentar o problema da falta de estrutura de saneamento básico da capital de Rondônia através de PPPs (Parcerias Público-Privadas).

Em seu programa de governo, o prefeito reeleito promete reformar bibliotecas municipais, concluir um programa de asfaltamento e instalar na cidade uma vila olímpica com ginásio e parque aquático.

Municipais contestadas

Nas eleições municipais deste ano, a capital de Rondônia foi palco de protestos de candidatos a vereadores derrotados que alegavam fraude e ação de hackers na apuração dos votos.

O Tribunal Regional Eleitoral disponibilizou para consulta as vias impressas dos boletins de urna para que os candidatos que alegavam terem sido prejudicados pudessem checar por conta própria o resultado da apuração.