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

Archivo del Autor: Belen De Leon

Rumored six-core MacBook Pro could be the fastest Apple ever made

Apple’s next MacBook Pro could be its most powerful yet, with a new benchmark listing suggesting that it could pack a Core i7-8750H CPU alongside 32GB of RAM for huge multicore performance.

The post Rumored six-core MacBook Pro could be the fastest Apple ever made appeared first on Digital Trends.


Source: Digital trends

How to combine PDF files

Sometimes juggling multiple files at once is more of a hassle than a convenience, especially when a single file would do. This quick guide will teach you how to combine PDF files on Windows, MacOS, or with online tools.

The post How to combine PDF files appeared first on Digital Trends.


Source: Digital trends

Star Wars News: That Big 'Solo' Cameo Was a Last-Minute Decision

Yes, that thing everyone is talking about almost didn’t happen.
Source: Wired

How Yelp (mostly) shut down its own data centers and moved to AWS

Back in 2013, Yelp was a 9-year old company built on a set of internal systems. It was coming to the realization that running its own data centers might not be the most efficient way to run a business that was continuing to scale rapidly. At the same time, the company understood that the tech world had changed dramatically from 2004 when it launched and it needed to transform the underlying technology to a more modern approach.

That’s a lot to take on in one bite, but it wasn’t something that happened willy-nilly or overnight says Jason Yellen, SVP of engineering at Yelp . The vast majority of the company’s data was being processed in a massive Python repository that was getting bigger all the time. The conversation about shifting to a microservices architecture began in 2012.

The company was also running the massive Yelp application inside its own datacenters, and as it grew it was increasingly becoming limited by long lead times required to procure and get new hardware online. It saw this was an unsustainable situation over the long-term and began a process of transforming from running a huge monolithic application on-premises to one built on microservices running in the cloud. It was a quite a journey.

The data center conundrum

Yellen described the classic scenario of a company that could benefit from a shift to the cloud. Yelp had a small operations team dedicated to setting up new machines. When engineering anticipated a new resource requirement, they had to give the operations team sufficient lead time to order new servers and get them up and running, certainly not the most efficient way to deal with a resource problem, and one that would have been easily solved by the cloud.

“We kept running into a bottleneck, I was running a chunk of the search team [at the time] and I had to project capacity out to 6-9 months. Then it would take a few months to order machines and another few months to set them up,” Yellen explained. He emphasized that the team charged with getting these machines going was working hard, but there were too few people and too many demands and something had to give.

“We were on this cusp. We could have scaled up that team dramatically and gotten [better] at building data centers and buying servers and doing that really fast, but we were hearing a lot of AWS and the advantages there,” Yellen explained.

To the cloud!

They looked at the cloud market landscape in 2013 and AWS was the clear leader technologically. That meant moving some part of their operations to EC2. Unfortunately, that exposed a new problem: how to manage this new infrastructure in the cloud. This was before the notion of cloud-native computing even existed. There was no Kubernetes. Sure, Google was operating in a cloud-native fashion in-house, but it was not really an option for most companies without a huge team of engineers.

Yelp needed to explore new ways of managing operations in a hybrid cloud environment where some of the applications and data lived in the cloud and some lived in their data center. It was not an easy problem to solve in 2013 and Yelp had to be creative to make it work.

That meant remaining with one foot in the public cloud and the other in a private data center. One tool that helped ease the transition was AWS Direct Connect, which was released the prior year and enabled Yelp to directly connect from their data center to the cloud.

Laying the groundwork

About this time, as they were figuring out how AWS works, another revolutionary technological change was occurring when Docker emerged and began mainstreaming the notion of containerization. “That’s another thing that’s been revolutionary. We could suddenly decouple the context of the running program from the machine it’s running on. Docker gives you this container, and is much lighter weight than virtualization and running full operating systems on a machine,” Yellen explained.

Another thing that was happening was the emergence of the open source data center operating system called Mesos, which offered a way to treat the data center as a single pool of resources. They could apply this notion to wherever the data and applications lived. Mesos also offered a container orchestration tool called Marathon in the days before Kubernetes emerged as a popular way of dealing with this same issue.

“We liked Mesos as a resource allocation framework. It abstracted away the fleet of machines. Mesos abstracts many machines and controls programs across them. Marathon holds guarantees about what containers are running where. We could stitch it all together into this clear opinionated interface,” he said.

Pulling it all together

While all this was happening, Yelp began exploring how to move to the cloud and use a Platform as a Service approach to the software layer. The problem was at the time they started, there wasn’t really any viable way to do this. In the buy versus build decision making that goes on in large transformations like this one, they felt they had little choice but to build that platform layer themselves.

In late 2013 they began to pull together the idea of building this platform on top of Mesos and Docker, giving it the name PaaSTA, an internal joke that stood for Platform as a Service, Totally Awesome. It became simply known as Pasta.

Photo: David Silverman/Getty Images

The project had the ambitious goal of making their infrastructure work as a single fabric, in a cloud-native fashion before most anyone outside of Google was using that term. Pasta developed slowly with the first developer piece coming online in August 2014 and the first  production service later that year in December. The company actually open sourced the technology the following year.

“Pasta gave us the interface between the applications and development teams. Operations had to make sure Pasta is up and running, while Development was responsible for implementing containers that implemented the interface,” Yellen said.

Moving to deeper into the public cloud

While Yelp was busy building these internal systems, AWS wasn’t sitting still. It was also improving its offerings with new instance types, new functionality and better APIs and tooling. Yellen reports this helped immensely as Yelp began a more complete move to the cloud.

He says there were a couple of tipping points as they moved more and more of the application to AWS — including eventually, the master database. This all happened in more recent years as they understood better how to use Pasta to control the processes wherever they lived. What’s more, he said that adoption of other AWS services was now possible due to tighter integration between the in-house data centers and AWS.

Photo: erhui1979/Getty Images

The first tipping point came around 2016 as all new services were configured for the cloud. He said they began to get much better at managing applications and infrastructure in AWS and their thinking shifted from how to migrate to AWS to how to operate and manage it.

Perhaps the biggest step in this years-long transformation came last summer when Yelp moved its master database from its own data center to AWS. “This was the last thing we needed to move over. Otherwise it’s clean up. As of 2018, we are serving zero production traffic through physical data centers,” he said. While they still have two data centers, they are getting to the point, they have the minimum hardware required to run the network backbone.

Yellen said they went from two weeks to a month to get a service up and running before this was all in place to just a couple of minutes. He says any loss of control by moving to the cloud has been easily offset by the convenience of using cloud infrastructure. “We get to focus on the things where we add value,” he said — and that’s the goal of every company.


Source: TechCrunch

Asus ROG Hero II gets your MOBA game on – CNET

This Republic of Gamers laptop is designed to make playing multiplayer online battle arena-type games a lot better.
Source: CNET

Asus ROG Strix Scar II aims for FPS gamers – CNET

You’ll probably be better at shooting your enemies with this laptop thanks to its 144Hz with 3ms response time display.
Source: CNET

Asus’ ROG Phone for gamers gives you phantom shoulder buttons – CNET

This is a gaming phone that actually has gaming features.
Source: CNET

Asus ROG Strix unleashes the new Scar II and Hero II – CNET

The Scar II and Hero II are gaming laptops for FPS and MOBA enthusiasts respectively.
Source: CNET

Music startup Roli adds Sony as investor, eyes up expanded range of hardware and software

When people think of music startups in the tech world, the focus is often on streaming, or figuring out how to better track and monetise those streams, or perhaps hardware to make those streams sound better.  But today comes news of funding for a startup that is tackling a different kind of challenge: tapping innovations from the tech world to develop new instruments and ways of creating music.

Roli, a London-based startup that develops new styles of keyboards to compose and play music that subsequently can be consumed and engaged with using smartphones and other devices, has announced new strategic investment from the Sony Innovation Fund, the VC arm of the Japanese consumer electronics and entertainment giant. The plan is to use the funds to expand its range of connected instruments — or, as the tech world might call it, hardware — as well as to develop the software that runs on them.

“We’re developing new music-making tools across hardware and software,” founder and CEO Roland Lamb said. “It’s part of our long-term plan to create the first totally integrated hardware-software platform for music creation. The funding from SIF accelerates this, and positions us to continue focusing on innovative research and development as we scale.”

This is a strategic investment for Sony across a number of areas. Among two of the biggest: Sony has a sizeable business in audio hardware; and, by way of Sony Music, one of the world’s biggest recording label conglomerates. (It’s also the owner of a vast gaming empire and film and television studios, giving it a number of entry points to working with Roli .)

Neither Roli nor Sony are disclosing the amount of funding, but for some context, PitchBook notes that Roli had previously raised around $46 million, and today the company said that the total raised is “over $50 million.” Sony is not the first strategic investor in the company: others from the music world include Universal Music; Pharrell Williams, who is also Roli’s chief creative officer; and Onkyo, the Japanese audio company that also controls the Pioneer brand of home entertainment devices — which had invested previously but is only getting disclosed today.

Technology backers, meanwhile, include a strong list of VCs such as Index Ventures, Foundry Group, Balderton, Horizons Ventures, Founders Fund, Kreos, BGF and Local Globe, Saul Klein’s new fund.

The fact that there are so many tech investors in the company is notable. It underscores how Roli is aiming to build not just a music company, but one that is rooted in tech and views a large part of the effort here as one of hardware and building software that is able to recreate on digital platforms something that has in its traditional way remained an analogue undertaking. It also speaks to how investors are looking for what new frontiers tech might be tackling, beyond those where it is already alive and well.

Roli is not disclosing its valuation with this investment, but from what we understand, Sony’s funding will have a “neutral” impact. PitchBook’s records note that the most recent round before this (in January 2017) put the company’s valuation at around $82 million.

To date, Roli has released two primary devices: the Seaboard, which resembles a traditional keyboard; and the modular ROLI BLOCKS, square-shaped pads that use light to indicate sounds, pitches and volumes. Both are characterised by their touch-sensitive squidgy material covering, which isn’t hit (as you would a normal piano or keyboard) as much as it is pressed, smudged and tapped in order to create and bend different sounds.

These work in conjunction with each other, as well as an array of other accessories and variations, with prices for the main building blocks starting at $200 and reaching up to the $3,000 range depending on what combination of devices and accessories you get.

The idea is that by changing the interface a musician or composer has with the device that producer uses to create the sounds, you are opening up a new world of music that couldn’t have been made before, or could have been made but with more work and expense involved.

One big question for me with Roli has always been the mainstream potential of its products. There has long been a gulf between creating music yourself and consuming it, with the latter being much easier to do than the former. But now that we have lightweight devices that link up with your smartphone, and make music-making something that is not the exclusive terrain of those who have put in many hours of practice time, or those who have the space to accommodate instruments, will this actually lead to more people wanting and using those devices?

The company has never released any numbers that indicate how well they sell, but they are sold in 30 markets and the plan will now be to expand that number. Of note, Roli has a deal with Apple to sell its devices in Apple’s retail stores, which speaks to how the company pitches its products and, presumably, some of the success it has had with sales.

The Sony investment being announced today is another indicator of Roli’s traction. Sony has a long legacy in audio equipment and audio technology, and one result of this partnership could be closer integration between Roli devices and, for example, Sony’s line of speakers and audio services to help the latter with its sales, in particular to a new wave of consumers who might not be as swayed by Sony’s storied history and brand as older users might be.

“A Sony Walkman was one of the first music products I ever owned,” Lamb said. “I took it on my first trip to Japan as a teenager. It was a magical way to bring my musical world with me everywhere that I went.”

Lamb himself is not a technologist by training but an avid amateur musician who studied philosophy and product design, and believes that there is a parallel between the innovations Sony helped usher in and what Roli is trying to do. “What ROLI is doing with BLOCKS is very similar to what Sony did with the Walkman, but in our case we’ve made a music creation device that you can take with you anywhere. It’s pioneering a new, liberating way of making music, just like Sony pioneered the modern revolution of music listening which hundreds of millions of people benefit from today.”


Source: TechCrunch

Amazon latest to face UK complaint over ‘bogus self-employment’

Amazon is the latest tech giant to be targeted by a legal challenge in the UK related to gig economy working practices.

The UK’s GMB Union is filing suit on behalf of couriers for three delivery companies used by Amazon — accusing the suppliers of making bogus claims that the delivery drivers were self employed, and thus denying them employment rights such as the national minimum wage and holiday pay.

The three Amazon suppliers in question are: Prospect Commercials Limited, Box Group Limited and Lloyd Link Logistics Limited.

The GMB Union says one of the drivers involved in the case recounted his experience of leaving the house at 6am, not returning from work until 11pm — and still having £1 per undelivered parcel deducted from his wages.

On more than one occasion the driver was also told he would not be paid if he did not complete a route — and it said he had sometimes driven when “half asleep at the wheel” in order to ensure he got paid.

Two of the three claimants in the lawsuit are also claiming whistleblower status, saying they were dismissed after they raised concerns about working practices. Among their claims are that —

  • the number of parcels allocated to drivers resulted in excessive hours and/or driving unsafely to meet targets;
  • drivers were expected to wait a significant time to load their vans, extending their working hours;
  • drivers were driving whilst tired, which posed a threat to their safety and other road users; and
  • drivers were being underpaid and not being paid amounts that they were contractually entitled to

The GMB Union says these whistleblowing claims are also being brought directly against Amazon on the basis that it was the company who determined the way the drivers should work.

In a statement, Tim Roache, GMB general secretary, told us: “Amazon is a global company that makes billions. It’s absolutely galling that they refuse to afford the people who make that money for them even the most basic rights, pay and respect. The day to day reality for many of our members who deliver packages for Amazon, is unrealistic targets, slogging their guts out only to have deductions made from their pay when those targets aren’t met and being told they’re self-employed without the freedom that affords.

“Companies like Amazon and their delivery companies can’t have it both ways — they can’t decide they want all of the benefits of having an employee, but refuse to give those employees the pay and rights they’re entitled to. Guaranteed hours, holiday pay, sick pay, pension contributions are not privileges companies can dish out when they fancy. They are the legal right of all UK workers, and that’s what we’re asking the courts to rule on.”

Amazon UK declined to answer any specific questions but a spokesperson sent us this statement:

Our delivery providers are contractually obligated to ensure drivers they engage receive the National Living Wage and are expected to pay a minimum of £12 per hour, follow all applicable laws and driving regulations and drive safely. Allegations to the contrary do not represent the great work done by around 100 small businesses generating thousands of work opportunities for delivery drivers across the UK.

Amazon is proud to offer a wide variety of work opportunities across Britain—full-time or part-time employment, or be your own boss. Last year we created 5,000 new permanent jobs on top of thousands of opportunities for people to work independently with the choice and flexibility of being their own boss—either through Amazon Logistics, Amazon Flex, or Amazon Marketplace.

The legal challenge is just the latest in the UK related to gig economy employment classifications. The most high profile to date involves Uber — which in October 2016 lost an employment tribunal which had challenged the self-employed status of a group of Uber drivers, with judges deeming them to be workers.

Uber has also since lost an appeal against the ruling but is continuing to appeal. Yet at the same time the company has announced personal injury and illness insurance products for drivers and riders in region — in what looks very much like an effort to shrink its legal liabilities as gig economy conditions come under increased legal and political scrutiny in Europe.

Complaints related to gig economy working conditions — and including delivery companies specifically — have been facing parliamentary scrutiny in the UK for many months now.

In parallel, the UK government has been reviewing employment law, including to take account of technology-driven changes to work and working patterns. And in February it announced a package of labor market reforms intended to “build an economy that works for everyone” — with the government making itself accountable for what it dubbed “good quality work” not just the quantity of jobs that are available.

The reforms were billed as expanding workers rights — with the government claiming that “millions” of workers would get new day-one rights, as well as having their rights bolstered by tougher enforcement for sick and holiday pay.

Although it also announced four consultations to help feed the reforms. So their full and final shape isn’t clear yet. And court decisions flowing from gig economy legal challenges are likely to be influential in shaping the future employment law.

Amazon has faced other concerns related to its working practices in the UK. Earlier this month the FT reported on a separate GMB Union investigation related to working practices inside Amazon’s UK warehouses — which have been the focus of long-standing concerns over pay and working conditions.

The union filed Freedom of Information requests with ambulance services near the warehouses and said it found that ambulances had been called to the centers 600 times in the last three years. According to its investigation there were 115 call-outs to just one Amazon center, in Rugeley, near Birmingham, which employs more than 1,800 people. Whereas it said it found just eight ambulance calls over the same period from a nearby Tesco warehouse — where 1,300 people work.

However Amazon told the newspaper that most of the call-outs were associated with “personal health events”, rather than being work related, adding: “It is simply not correct to suggest that we have unsafe working conditions based on this data or on unsubstantiated anecdotes.”


Source: TechCrunch

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463