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

Archivo del Autor: Belen De Leon

Incredibles 2 trailer splits up the superhero family video – CNET

The Pixar preview shows Elastigirl getting a new job fighting crime on her own, leaving Mr. Incredible with all the kids.
Source: CNET

Russia bans Telegram encrypted messaging app – CNET

But can Russia actually block it? Telegram may have a workaround.
Source: CNET

Apple details its crackdown on leakers…in a leaked memo

In an internal memo to employees, Apple threatened severe consequences for leaking confidential company information – reminding staff that those who leak can lose their jobs, have difficult finding future employment, and even get arrested. Last year, Apple claimed to have busted 29 leakers, 12 of whom were arrested.

The memo itself was leaked, and its content was published by Bloomberg this afternoon.

Apple has always cultivated a culture of confidentially about its work, as a means of maintaining a competitive advantage over the competition.

Given how large Apple has grown over the years – the memo says there are “135,000 people” working there – it’s become more difficult to keep things under wraps. By the time a new iPhone launches, for example, people already know what to expect. That can give rivals a head start on catching up with Apple, ahead of an actual public unveiling of the device. Leaks can also impact sales of current devices, as consumers hold off on buying as they know something better is soon to arrive.

Apple more recently has had problems with leaked iOS source code, as well as leaked details about the iPhone 8 and X, Apple Watch Series 3, Apple TV 4K, HomePod, and more. And that was just in 2017.

The new memo is not the first time Apple has tried to plug its leaks. Last year, the company held a meeting with employees where it discussed how it plans to prevent leaks, talked about how leakers were caught, and answered employees’ questions.

That meeting was secretly recorded and leaked to the press too.

In reality, some leaks can be harder to track or stop. A company-wide meeting or email, for instance, could be leaked by anyone.

The new memo begins by informing Apple employees that the person who leaked details about Apple’s software roadmap earlier this year was caught and fired last month:

Last month, Apple caught and fired the employee responsible for leaking details from an internal, confidential meeting about Apple’s software roadmap. Hundreds of software engineers were in attendance, and thousands more within the organization received details of its proceedings. One person betrayed their trust.

The employee who leaked the meeting to a reporter later told Apple investigators that he did it because he thought he wouldn’t be discovered. But people who leak — whether they’re Apple employees, contractors or suppliers — do get caught and they’re getting caught faster than ever.

The memo then goes on to stress how damaging leaks are to the company itself, those who worked on a project, and other employees.

It reminds employees that when they’re approached by press, analysts and bloggers they’re “getting played.”

The establishment of a very us-versus-them culture when dealing with outsiders is notable because it means Apple employees may fear becoming whistleblowers. Employees will likely also fear leaking to correct inaccurate information being passed around publicly. Today, there are reports that Apple’s own comms teams won’t respond to, when asked by press – unless the report reaches a critical mass, or worse – is unflattering to Apple.

But unlike at other companies where a PM or staffer may reach out to privately correctly a detail or give background outside of official channels, Apple staff would be fired for crossing that line.

The memo also points to more examples of how Apple’s internal security has caught people who believed they could get away with it – including the person who leaked the link to the gold master of iOS 11, and those who leaked within the supply chain.

It concludes by sharing the news that 12 of the leakers in 2017 were arrested.

“Leakers do not simply lose their jobs at Apple. In some cases, they face jail time and massive fines for network intrusion and theft of trade secrets both classified as federal crimes,” the memo read. “These people not only lose their jobs, they can face extreme difficulty finding employment elsewhere.”

There’s a certain kind of person who will find language like this a challenge. But the majority will likely take heed.

The memo was published as an internal company blog post.

The full memo can be read on Bloomberg’s site.


Source: TechCrunch

If you can't delete Facebook yet, start by deleting the app – CNET

Until you’re ready to kick your Facebook habit completely, deleting the mobile app is a great way to drastically change your scrolling behavior.
Source: CNET

Elon Musk says Tesla will be profitable in Q3 and Q4

Tesla is one of the more interesting companies for Wall Street that had an interesting couple of months this year — and it seems even tweets from Elon Musk, who said that the company will be profitable in the back half of the year, may be enough to swing its stock.

The Tesla and SpaceX founder sent a tweet very early this morning that the company would be profitable and cash-flow positive in the third and fourth quarter this year. Tesla is known for setting ambitious targets and forecasts, especially as it looks to ramp up Model 3 production to around 2,500 vehicles per week. Musk said he took direct control of Model 3 production earlier this month in a note to employees, also sent out at around 3 a.m. pacific time. Tesla’s shares were up slightly, gaining around 2% in trading today.

Tesla saw a small bump in its stock throughout the day. While it could be for a variety of reasons, Musk’s data point may have offered a small amount of clarity (and optimism) around whether the company will be able to eventually turn a profit. The tweet was fired off as a response to a story by The Economist that said the company may have to raise additional capital at some point, according to banking firm Jeffries. (It was also quite snarky.)

On Tesla’s last call to discuss the company’s quarterly results with Wall Street analysts, Musk said that the company would begin generating “positive quarterly operating income on a sustained basis,” and said he was “cautiously optimistic” that the company would be GAAP profitable. Musk said the company wanted to hit a production target of 5,000 Model 3 vehicles per week at some point in 2018, though did not give a specific time frame. The tweet, while fired off as a response to a story by The Economist, appears to offer another small data point as to when it might happen.

Earlier this month, Tesla fell back behind Ford in terms of its market cap as some pressure has hit the stock. Tesla has had to address a fatal crash involving its autopilot, in addition to a voluntary recall of 123,000 Model S vehicles. There is some skepticism around whether Tesla will hit its production targets from Wall Street (making cars is hard, it seems).


Source: TechCrunch

Why the Music Industry Hasn't Had Its #MeToo Moment

Emboldened by silent colleagues and apologist supporters, music artists and executives continue to misbehave with impunity.
Source: Wired

Facebook shouldn’t block you from finding friends on competitors

Twitter, Vine, Voxer, MessageMe. Facebook has repeatedly cut off competitors from its feature for finding your Facebook friends on their apps… after jumpstarting its own social graph by convincing people to upload their Gmail contacts. Meanwhile, Facebook’s Download Your Information tool merely exports a text list of friends’ names you can’t use elsewhere.

As Congress considers potential regulation following Mark Zuckerberg’s testimonies, it should prioritize leveling the playing field for aspiring alternatives to Facebook and letting consumers choose where to social network. And as a show of good faith and argument against it abusing its monopoly, Facebook should make our friend list truly portable.

It’s time to free the social graph — to treat it as a fundamental digital possession, the way the Telecommunications Act of 1996 protects your right to bring your phone number with you to a new network.

The two most powerful ways to do this would be for Facebook to stop, or Congress to stop it from, blocking friend finding on competitors like it’s done in the past to Twitter and more. And Facebook should change its Download Your Information tool to export our friend list in a truly interoperable format. When you friend someone on Facebook, they’re not just a name. They’re someone specific amongst often many with the same name, and Facebook should be open to us getting connected with them elsewhere.

Facebook takes data it won’t give

While it continues til this day, back in 2010 Facebook goaded users to import their Gmail address books so they could add them as Facebook friends. But it refused to let users export the email addresses of their friends to use elsewhere. That led Google to change its policy and require data portability reciprocity from any app using its Contacts API.

So did Facebook back off? No. It built a workaround, giving users a deep link to download their Gmail contacts from Google’s honorable export tool. Facebook then painstakingly explained to users how to upload that file so it could suggest they friend all those contacts.

Google didn’t want to stop users from legitimately exporting their contacts, so it just put up a strongly worded warning to Gmail users: “Trap my contacts now: Hold on a second. Are you super sure you want to import your contact information for your friends into a service that won’t let you get it out? . . . Although we strongly disagree with this data protectionism, the choice is yours. Because, after all, you should have control over your data.” And Google offered to let you “Register a complaint over data protectionism.”

Eight years later, Facebook has grown from a scrappy upstart chasing Google to become one of the biggest, most powerful players on the internet. And it’s still teaching users how to snatch their Gmail contacts’ email addresses while only letting you export the names of your friends — unless they opt-in through an obscure setting, because it considers contact info they’ve shared as their data, not yours. Whether you should be allowed to upload other people’s contact info to a social network is a bigger question. But it is blatant data portability hypocrisy for Facebook to encourage users to import that data from other apps but not export it.

In some respects, it’s good that you can’t mass-export the email addresses of all your Facebook friends. That could enable spamming, which probably isn’t what someone had in mind when they added you as friend on Facebook. They could always block, unfriend or mute you, but they can’t get their email address back. Facebook is already enduring criticism about how it handled data privacy in the wake of the Cambridge Analytica scandal.

Yet the idea that you could find your Facebook friends on other apps is a legitimate reason for the platform to exist. It’s one of the things that’s made Facebook Login so useful and popular. Facebook’s API lets certain apps check to see if your Facebook friends have already signed up, so you can easily follow them or send them a connection request. But Facebook has rescinded that option when it senses true competition.

Data protectionism

Twitter is the biggest example. Facebook didn’t and still doesn’t let you see which of your Facebook friends are on Twitter, even though it has seven times as many users. Twitter co-founder Ev Williams, frustrated in 2010, said that “They see their social graph as their core asset, and they want to make sure there’s a win-win relationship with anybody who accesses it.”

Facebook went on to establish a formal policy that said that apps that wanted to use its Find Friends tool had to abide by these rules:

  •  If you use any Facebook APIs to build personalized or social experiences, you must also enable people to easily share their experiences back with people on Facebook.

  • You may not use Facebook Platform to promote, or to export user data to, a product or service that replicates a core Facebook product or service without our permission.

Essentially, apps that piggybacked on Facebook’s social graph had to let you share back to Facebook, and couldn’t compete with it. It’s a bit ironic, given Facebook’s overarching strategy for years has been “replicate core functionality.” From cloning Twitter’s asymmetrical follow and Trending Topics to Snapchat’s Stories and augmented reality filters, all the way back to cribbing FriendFeed’s News Feed and Facebook’s start as a rip-off of the Winklevii’s HarvardConnection.

Restrictions against replicating core functionality aren’t unheard of in tech. Apple’s iOS won’t let you run an App Store from inside an app, for example. But Facebook’s selective enforcement of the policy is troubling. It simply ignores competing apps that never get popular. Yet if they start to grow into potential rivals, Facebook has swiftly enforced this policy and removed their Find Friends access, often inhibiting further growth and engagement.

Here are few of examples of times Facebook has cut off competitors from its graph:

  • Voxer was one of the hottest messaging apps of 2012, climbing the charts and raising a $30 million round with its walkie-talkie-style functionality. In early January 2013, Facebook copied Voxer by adding voice messaging into Messenger. Two weeks later, Facebook cut off Voxer’s Find Friends access. Voxer CEO Tom Katis told me at the time that Facebook stated his app with tens of millions of users was a “competitive social network” and wasn’t sharing content back to Facebook. Katis told us he thought that was hypocritical. By June, Voxer had pivoted toward business communications, tumbling down the app charts and leaving Facebook Messenger to thrive.
  • MessageMe had a well-built chat app that was growing quickly after launching in 2013, posing a threat to Facebook Messenger. Shortly before reaching 1 million users, Facebook cut off MessageMe‘s Find Friends access. The app ended up selling for a paltry double-digit millions price tag to Yahoo before disintegrating.
  • Phhhoto and its fate show how Facebook’s data protectionism encompasses Instagram. Phhhoto’s app that let you shoot animated GIFs was growing popular. But soon after it hit 1 million users, it got cut off from Instagram’s social graph in April 2015. Six months later, Instagram launched Boomerang, a blatant clone of Phhhoto. Within two years, Phhhoto shut down its app, blaming Facebook and Instagram. “We watched [Instagram CEO Kevin] Systrom and his product team quietly using PHHHOTO almost a year before Boomerang was released. So it wasn’t a surprise at all . . . I’m not sure Instagram has a creative bone in their entire body.”
  • Vine had a real shot at being the future of short-form video. The day the Twitter-owned app launched, though, Facebook shut off Vine’s Find Friends access. Vine let you share back to Facebook, and its six-second loops you shot in the app were a far cry from Facebook’s heavyweight video file uploader. Still, Facebook cut it off, and by late 2016, Twitter announced it was shutting down Vine.

As I wrote in 2013, “Enforcement of these policies could create a moat around Facebook. It creates a barrier to engagement, retention, and growth for competing companies.” But in 2018, amongst whispers of anti-trust action, Facebook restricting access to its social graph to protect the dominance of its News Feed seems egregiously anti-competitive.

That’s why Facebook should pledge to stop banning competitors from using its Find Friends tool. If not, congress should tell Facebook that this kind of behavior could lead to more stringent regulation.

Friends aren’t just names

When Senator John Neely Kennedy asked Zuckerberg this week, “are you willing to give me the right to take my data on Facebook and move it to another social media platform?”, Zuckerberg claimed that “Senator, you can already do that. We have a Download Your Information tool where you can go get a file of all the content there, and then do whatever you want with it.”

But that’s not exactly true. You can export your photos that can be easily uploaded elsewhere. But your social graph — all those confirmed friend requests — gets reduced to a useless string of text. Download Your Information spits out merely a list of your friends’ names and the dates on which you got connected. There’s no unique username. No link to their Facebook profile. Nothing you can use to find them on another social network beyond manually typing in their names.

That’s especially problematic if your friends have common names. There are tons of John Smiths on Facebook, so finding him on another social network with just a name will require a lot of sleuthing, or guess-work. Depending on where you live, locating a particular Garcia, Smirnov or Lee could be quite difficult. Facebook even built a short-lived feature called Friendshake to help you friend someone nearby amongst everyone in their overlapping name space.

When I asked about this, Facebook told me that users can opt-in to having their email or phone number included in the Download Your Information export. But this privacy setting is buried and little-known. Just 4 percent of my friends, centered around tech savvy San Francisco, had enabled it.

As I criticized way back in 2010 when Download Your Information launched, “The data can be used as a diary, or to replace other information from a hard drive crash or stolen computer — but not necessarily to switch to a different social network.”

Given Facebook’s iron grip on the Find Friends API, users deserve decentralized data portability — a way to take their friends with them that Facebook can’t take back. That’s what Download Your Information should offer, but doesn’t.

Social graph portability

This is why I’m calling on Facebook to improve the data portability of your friend connections. Give us the same consumer protections that make phone numbers portable.

At the very least Facebook should include your friends’ unique Facebook username and URL. But true portability would mean you could upload the list to another social network to find your friends there.

One option would be for Facebook’s export to include a privacy-safe, hashed version of your friends’ email address that they signed up with and share with you. Facebook could build a hashed email lookup tool so that if you uploaded these nonsensical strings of characters to another app, they could cross-reference them against Facebook’s database of your friends. If there’s a match, the app could surface that person as someone with whom you might want to reconnect. Effectively, this would let you find friends elsewhere via email address without Facebook ever giving you or other apps a human-readable list of their contact info.

If you can’t take your social graph with you, there’s little chance for a viable alternative to Facebook to arise. It doesn’t matter if a better social network emerges, or if Facebook disrespects your privacy, because there’s nowhere to go. Opening up the social graph would require Facebook to compete on the merit of its product and policies. Trying to force the company’s hand with a variety of privacy regulations won’t solve the core issue. But the prospect of users actually being able to leave would let the market compel Facebook to treat us better.

For more on Facebook’s challenges with data privacy, check out TechCrunch’s feature stories:


Source: TechCrunch

Inside 'Problem Areas'—Wyatt Cenac's Bold HBO Experiment on Policing in America

The comedian’s new show ‘Problem Areas’ takes a serious look at the problems plaguing law enforcement.
Source: Wired

Is Android Popsicle next?

Barring any sort of major shakeup at Google’s mobile division, there are two things we know for sure about the next Android’s name: it will start with the letter “P” and it will be a dessert food. That already narrows things down quite a bit — you’ve got pudding, pecan pie, peanut brittle…

Then, of course, there’s Popsicle — a fact the company might well be alluding to in its new Spring Wallpaper Collection. 9to5Google noted a colorful array of frozen confections in amongst the selections. Granted, it’s not thematically too far from the rest of the outdoor, sunshine-themed offerings.

Google’s never shied away from such cheeky suggestions — and it’s certainly teased us before, including in the lead up to Oreo. Though that could just as easily mean it’s a bit of a red herring — remember Android Pocky?

It’s worth noting that Popsicle is, in fact, still a trademarked name — like Kleenex and Xerox and Frisbee. Of course, that hasn’t stopped Google in the past. See such recent examples as Kit-Kat and Oreo. And while Popsicle-owner Unilever has flexed its muscles maintaining its ownership of the name, it’s hard to imagine a better/cheaper promotion than stamping your name across the latest build of the world’s most popular mobile operating system.

There is, of course, the issue of the fact that the Popsicle name isn’t as globally synonymous with the ice pop as it is here in the States. You may know it, perhaps, as an ice lolly, ice block or ice drop, depending on where you happen to be reading this.

Whatever the case, Google’s probably just happy that we’re talking about it at all.


Source: TechCrunch

Users and advertisers are mostly unfazed by Facebook scandal

Facebook’s downfall has, it seems, been greatly exaggerated — at least according to Facebook . Even with the Cambridge Analytica fallout and subsequent #DeleteFacebook campaigns, the site appears to be largely unfazed. An executive confirmed as much in a recent interview with The Wall Street Journal.

A majority of users haven’t altered their settings and advertisers appear to be staying put. “We have not seen wild changes in behavior with people saying ‘I’m not going to share any data with Facebook anymore,’” Global Marketing VP Carolyn Everson told the site.

And while the company has certainly been put under a microscope by Congress and other lawmakers internationally, Everson adds that Facebook isn’t really anticipating that much will change on the legislative side of the equation, either.

The executive says the company isn’t “anticipating major changes to our overall revenue and business model” as it pertains to the potential ability for users to opt out of the targeted ad model that came under heat during this week’s hearings.

Wall Street analysts are seconding that sentiment. Like users, advertisers don’t exactly appear to be fleeing the site in droves. “It’s inexpensive for the earnings growth trajectory they have. We did a study today that showed engagement hasn’t pulled back,” analyst David Seaburg told CNBC in a recent interview. ”The engagement factor is staying still. Ad buyers are locked in. I think the earnings are going to be good. I think it’s a catalyst for the stock to go higher.”

It’s a stark contrast from the fallout for Cambridge Analytica. The firm whose data mining operations helped set this whole thing in motion has been reeling from the attention. The company has been in a constant state of damage control over social media, and the other day, it replaced a temporary CEO who had been in the role for less than a month.

Of course, Cambridge Analytica isn’t Facebook. Only Facebook is Facebook. Most of us have grown addicted for both our personal and professional needs. It’s hard to remember a time before it, and, as such, it’s difficult to imagine life without it. Besides, how long will our dwindling attention spans really remember what it was that got us all so upset in the first place?

Seaburg calls Zuckerberg “arrogant” in the aforementioned interview. Strangely, it comes off as a compliment of sorts — an indicator of a chief executive who just believes in his product. Zuckerberg might come off as arrogant, but if you were running a company that seemed poised to shrug off two days of congressional hearings, wouldn’t you be?


Source: TechCrunch

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256