• +598 29008192
  • info@servinfo.com.uy

Archivo del Autor: Belen De Leon

Omron HeartGuide: My life with a blood pressure smartwatch – CNET

The future of health tech might be blood pressure. But Omron’s solution won’t be for everyone.
Source: CNET

Nala has built a hassle-free, offline mobile money payment platform for Africa

Benjamin Fernandes, the Tanzanian co-founder chief executive of Nala, spent hundreds of hours talking to local Tanzanians about their frustrations with mobile money payment services before he launched his new payment platform.

While at least a hundred million Africans hold mobile money accounts, the process of transacting over the services is difficult, so Tala made an application that acts as an interface on top of the unstructured supplementary service data layer to make money transfers and payments much easier.

Mobile payment services have swept across the African continent in the 12 years since the wireless carrier Safaricom launched M-Pesa in 2007. As of 2017, roughly half of the 282 mobile money services operating worldwide were in Sub-Saharan Africa, according to a McKinsey report. Nala’s founder estimates that there around 420 million Africans holding mobile money accounts, making the continent the leader in mobile money adoption by a wide margin. 

In Tanzania, making one send money payment requires a user to enter somewhere between 39-46 digits, a hard enough task for anyone, let alone someone who may be newly adjusting to mobile phone service.

Using Nala, users can make payments to anyone on any device, and it only requires a one-time download to start transacting, according to the company.

Think of Nala has taken all of the short codes from all of the transaction providers and created a router system that users can operate without having to memorize the different underlying coding. Currently live in Tanzania, with over 100,000 users, Fernandes says that his company has plans to expand to at least two other African countries over the course of 2019.

It’s been a long road for Fernandes, a former national television host of youth talk shows and sports shows in Tanzania, to financial services entrepreneur.

Fernandes moved to the U.S. for university, doing his undergrad degree at the evangelical Christian University of Northwestern in St. Paul. At the university, Fernandes developed an interest in economics and excelled. Encouraged by his business professor to apply to Harvard and Stanford for business school, Fernandes briefly returned home and did just that.

He received a full ride to Stanford through the school’s Africa MBA Fellowship in 2014 and moved back to America.

“I took the two years at Stanford to learn everything i can about fintech,” Fernandes recalled. “In the summer i started working at the Bill and Melinda Gates Foundation and that’s where i met Sam Castle. He was a PhD student at Washington doing research in mobile payments in MENA and Sub Saharan Africa.

Castle and Fernandes stayed in touch while the Tanzanian wrapped up his studies at Stanford, and when Fernandes graduated and received the Frances and Arjay Miller Prize for Social Entrepreneurship along with its attendant $20,000 bounty, he returned home and started working on Nala.

“It was such a hard decision to make to go home,” Fernandes recalls. “Most Africans don’t go home. We stay in the States. But I was 24 at the time and thought ‘We’ll figure this out.’”

As he began working on different prototypes and as the work progressed, he was able to convince Castle to come on board.

Now the company is generating some revenue from airtime sales and bill payments, although down the road Fernandes sees value in the data that the company collects across the multiple accounts that Nala services.

Eventually there’s a possibility for the company to get into other financial services like lending and savings.

What’s clear is the massive opportunity that exists in simplifying a transaction mechanism that’s wildly popular across the continent but also massively tricky for consumers to use.

Mobile payments have already revolutionized financial transactions in Africa, by building a simpler interface, Nala could take that revolution one step further.


Source: TechCrunch

A huge trove of medical records and prescriptions found exposed

A health tech company was leaking thousands of doctor’s notes, medical records, and prescriptions daily after a security lapse left a server without a password.

The little-known software company, California-based Meditab, bills itself as one of the leading electronic medical records software makers for hospitals, doctor’s offices, and pharmacies. The company, among other things, processes electronic faxes for healthcare providers, still a primary method for sharing patient files to other providers and pharmacies.

But that fax server wasn’t properly secured, according to the security company that discovered the data.

SpiderSilk, a Dubai-based cybersecurity firm, told TechCrunch of the exposed server. The exposed fax server was running a Elasticsearch database with over six million records since its creation in March 2018.

Because the server had no password, anyone could read the transmitted faxes in real-time — including their contents.

According to a brief review of the data, the faxes contained a host of personally identifiable information and health information, including medical records, doctor’s notes, prescription amounts and quantities, as well as illness information, such as blood test results. The faxes also included names, addresses, dates of birth, and in some cases Social Security numbers and health insurance information and payment data.

The faxes also included personal data and health information on children. None of the data was encrypted.

Two leaked documents found on the fax server, redacted. (Image: TechCrunch)

The server was hosted on an subdomain of MedPharm Services, a Puerto Rico-based affiliate of Meditab, both founded by Kalpesh Patel. MedPharm was spun out as a separate company in San Juan to take advantage of tax breaks for those who set up businesses on the island.

TechCrunch verified the records by contacting several patients who confirmed their details from the faxes.

When reached about the security lapse, Patel said the company was “looking into the issue to identify the problem and solution,” but deferred comment to the company’s general counsel, Angel Marrero.

“We are still reviewing our logs and records to access the scope of any potential exposure,” said Marrero in an email.

We asked if the company planned to inform regulators and customers. Marrero said the company “will comply with any and all required notifications under current federal and state laws and regulations, as applicable.”

It’s not immediately known if anyone else discovered the exposed server, or how long the data was exposed.

Both Meditab and MedPharm claim to be compliant with HIPAA, the Health Insurance Portability and Accountability Act, which governs how healthcare providers properly manage patient data security.

Companies that expose data or violate the law can face hefty fines.

Last year was a year of “record” fines — some $25 million for several exposures and breaches, including $4.3 million in fines to the University of Texas for an inadvertent disclosure of encrypted personal health data, and a settlement by Fresenius was for $3.5 million following five separate breaches.

A spokesperson for the U.S. Department of Health and Human Services did not comment.


Source: TechCrunch

Facebook has removed 1.5M videos of New Zealand mosque massacre – CNET

Most blocked before reaching the web, Facebook says.
Source: CNET

Huawei P30 Pro in a gorgeous orange finish leaks – CNET

Or is it red?
Source: CNET

Facebook failed to block 20% of uploaded New Zealand shooter videos

Facebook said it removed 1.5 million videos from its site within the first 24 hours after a shooter livestreamed his attack on two New Zealand mosques, killing 50 people.

In a series of tweets, Facebook’s Mia Garlick said a total of 1.2 million videos were blocked at the point of upload. Videos that included “praise or support” from the attack were also removed, she said, using a mix of automated technologies — like audio detection — and human content moderators.

Facebook did not say why the 300,000 videos were not caught at upload, representing a 20 percent failure rate.

The cherry-picked “vanity” statistics only account for the total number of uploaded videos that Facebook knows about. TechCrunch found several videos posted to Facebook more than 12 hours after the attack. Some are calling on Facebook to release the engagement figures — such as how many views, shares and reactions — were made before the videos were taken down, which critics say is a more accurate measure of how far the videos spread.

The attack on Friday targeted worshippers during morning prayers in Christchurch, New Zealand. Police said they apprehended the shooter about half an hour after reports of the first attack came in.

The 28-year old suspected shooter, charged with murder, livestreamed the video to Facebook using a head-mounted camera, typically used to record sporting events in first-person. Facebook closed the attacker’s account within an hour of the attack, but the video had already been shared across Facebook, Twitter and YouTube. The shooter described himself as a self-professed fascist, according to a “manifesto” he posted shortly before the attacks. The tech companies have faced criticism for not responding to the emerging threat of violence associated with white nationalism, compared to actions taken against content in support of the so-called Islamic State group and the spread of child abuse imagery,

New Zealand prime minister Jacinda Ardern said on Sunday that social media giants like Facebook had to face “further questions” about their response to the event. Facebook second-in-command Sheryl Sandberg reportedly reached out to Ardern following the attacks.

When reached, Facebook did not comment beyond Garlick’s tweeted comments.


Source: TechCrunch

This prosthetic hand provides a sense of touch video – CNET

Two amputees were able to “touch” objects again using a new technique involving electrodes in their upper arms.
Source: CNET

Welcome to the hub of all hubs: Cosmos has launched

Last week the Cosmos Network launched, which I believe to be a major event. Yes, it’s a blockchain initiative — but definitely not just another one. If I’m right, its repercussions will one day reach your life too, though it’s sufficiently bleeding-edge that those ripples probably won’t hit you for a decade. Maybe five years, for a cutting-edge TechCrunch reader like you.

(Yes, those are bold words, but if I do say so myself, my track record is pretty good with this sort of thing. The last blockchain launch I wrote about was Ethereum, which you may have since heard of … and I was the only non-specialist commentator / journalist to cover it at the time.)

This launch is an abstruse and extremely technical achievement, currently only important to those who already live amid that tiny, weird subculture of humanity which reveres blockchains as the path to a better, decentralized, fairer future. (Not to be confused with the much larger number of who view cryptocurrencies primarily as an opportunity to get rich quick, never mind how sketchily.) But it’s a highly impressive technical feat, with every chance to ultimately become important to many more people.

Cosmos calls itself “the Internet of Blockchains,” and it is that, but it’s also something else important: it is one of the first major decentralized Proof-of-Stake networks to launch. (No, EOS doesn’t count.) In this model, instead of being secured by “miners” who solve computationally hard problems at the cost of gigawatts-and-counting of electricity, blockchains are verified by “validators” who purchase (or are delegated) cryptocurrency which they “stake.”

These validators, per the name, then ensure that the chain’s transactions are valid, knowing that they will earn rewards if honest and accurate … but if they are dishonest, or in error, or offline, their stakes will be “slashed” i.e. they will lose money. (At present there are 100 validators; this number is due to triple.) It has been shown, at least in theory, that even if validators dishonestly collude, as long as at least two-thirds of them remain honest, the chain remains secure.

This is a very big deal because the enormously better efficiency and speed of Proof-of-Stake open a pathway to decentralized systems which support many many more actions than Proof-of-Work chains like Bitcoin or (today’s) Ethereum, with a vastly vastly smaller ecological footprint. If Proof-of-Stake succeeds in the harsh, cruel real world — admittedly a big if; its implementation is complicated, and has a much larger attack surface, both social and technical, than Proof-of-Work — then blockchains may finally be able to seriously scale, with acceptable security, without consuming a noticeable fraction of the world’s electricity.

Cosmos’s ambitions go much further, though. Cosmos isn’t intended as Just Another Blockchain. We have more than enough of those already. It’s intended as a hub which connects other blockchains to one another — hence “The Internet of Blockchains.” What’s more, it provides tools which, in theory, make it far easier for any software engineer to build a brand-new, custom-designed blockchain … which in turn can interoperate with an arbitrary number of others.

Why does this matter? Because if blockchains are to matter at all beyond cryptocurrencies — if they are to be used for applications such as namespaces, file storage, digital collectibles, supply chains, self-sovereign identities, and decentralized social media, to trot out the usual laundry list of desirable decentralized apps — those applications would benefit greatly from being able to interact with one another.

To a certain extent they can already. One can perform “atomic swaps” which trade Bitcoin for Zcash in a single indivisible transaction. But this kind of interoperability is difficult and restricted by the host chain’s limitations, whatever they may be. Cosmos offers a compelling alternate vision: instead of a single “world computer” chain on which all decentralized applications run, it proposes many blockchains, one for each application, speaking to one another, and passing assets, collectibles, data, and cryptocurrencies to and from one another, via agreed-upon “hubs.”

This week’s actual launch was the first of those, the Cosmos Hub. In principle, in the future, anyone can run a hub, A lot of the Cosmos vision remains “in principle, in the future.” At present no other blockchains are connected; in principle, in the future, Cosmos’s validators will vote to start interoperating with them. (Cosmos also includes built-in “governance,” in the parlance of blockchainers, i.e. on-chain voting.)

Even then, only certain kinds of blockchains, those with an architecture similar to Cosmos itself — with “fast finality,” to be precise — can connect via a hub. In principle, in the future, adapters for other chains, such as Bitcoin, Ethereum, and ZCash, can be constructed; this arguably makes Cosmos a Bitcoin “sidechain,” and/or a competitor / coopetitor to the Lightning Network, as if it wasn’t wearing enough hats and offering enough futures already.

Do I sound skeptical? Not moreso than usual: I’m just cautious about making pronouncements before vaporware becomes software. The Cosmos Hub which launched last week, though, is very much the latter not the former, and even if I’m wrong about its eventual real-world importance, it remains a major, significant technical achievement. Congratulations and kudos to its team. It may seem to investors and speculators that we remain in the grip of a seemingly endless crypto winter; but to engineers, the launch of Cosmos is a strong sign that spring is en route.


Source: TechCrunch

Boeing’s 737 Crash, Tesla’s Model Y, and More News This Week

This week’s transportation news focused on two major stories: the investigation into the fatal crash of Ethiopian Flight 302 and Elon Musk’s reveal of Tesla’s new baby SUV.
Source: Wired

While You Were Offline: Cats Caused the Facebook Outage (jkjk)

It was a “server configuration change.” The word “cats” is in there somewhere.
Source: Wired

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621