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

Archivo del Autor: Belen De Leon

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

U.S. iPhone users spent 23% more in apps in 2017, have an average of 45 apps installed

Games, dating apps and streaming services contributed to a rise in consumer spending in iPhone apps last year, according to new data from app store intelligence firm, Sensor Tower. The firm found that U.S. iPhone users spent 23 percent more on in-app purchases in 2017 than they did the year prior – or, an average of $58 per active user was spent on in-app purchases, up from $47 in 2016.

To be clear, this is only on purchases made within an app using Apple’s in-app purchase or subscription mechanisms. It’s not tracking e-commerce purchases – like things users bought in Amazon – or payments made to service providers in an app like Uber or Lyft.

Games were the largest category of consumers spending in 2017, accounting for roughly $36 of the $58 spent per device; or 62 percent of the spending. That’s a 13 percent increase over 2016’s $32 spent.

It’s no surprise that the biggest driver of iPhone spending is games.

The category typically outweighs all others in terms of revenue, not only for paid downloads, but for the ongoing purchases of things like virtual goods, unlocking levels, in-app currency, and the other extra features that mobile games offer. And because people play some types of games for long periods of time – like MMORPGs – they have many opportunities to spend on in-game items.

So while it’s notable that in-app spending in games is up by a few dollars, year-over-year, the more interesting trend is the rise in in-app spending generated by Lifestyle apps and subscription-based streaming services.

Specifically, outside of games, Entertainment apps – which includes streaming services like Netflix, Hulu, HBO NOW, etc. – grew 57 percent year-over-year to reach $4.40 in consumer spending per device. That makes it the largest category of spending outside games.

Music is also another big category for spending, up 8 percent year-over-year to $4.10. Much of what people are paying for in a music app is a subscription for the premium tier of the service, as with Pandora or Spotify. If this category was combined with Entertainment – which is also growing thanks to subscriptions – you’d see that streaming services are now a big factor contributing to the overall rise in U.S. consumer spending in iPhone apps.

But subscriptions to other types of services are growing, too.

Lifestyle apps, led by dating apps like Tinder and Bumble, grew 110 percent from 2016 to 2017 to reach $2.10 in iPhone consumer spending per device.

Spending in social media apps was up by 38 percent, to $3.60 thanks to things like in-app tipping (e.g. Live.me, Periscope, YouTube Gaming), subscriptions (e.g. LinkedIn memberships), and other activity (e.g. call credits in Skype).

Twitch has oddly categorized itself as a “Photo & Video” app, in case you’re wondering where it fits in.

While Sensor Tower’s published report focused on iPhone consumer spending, the company tells TechCrunch that Android spending on Google Play was much lower last year.

“We estimate that for each active Android device in the U.S. last year, approximately $38 was spent on Google Play – on and in apps – so about $20 less than iOS,” said Sensor Tower’s head of mobile insights, Randy Nelson. “That tracks with the disparity in revenue generation we see between the stores outside the per-device level,” he added. “Android users generally spend less on or in apps, Google Play generated about 60 percent of the App Store’s revenue last year in the U.S.”

However, he pointed that Android users have more than one official store to buy from – like the Amazon Appstore or Samsung Store, for example. Some apps also choose not to monetize directly through Google Play, which is an option not permitted on Apple’s App Store.

The increase in consumer spending isn’t the only significant trend Sensor Tower spotted.

iPhone app installs in the U.S. were up nearly 10 percent from 2016 to 2017, with users installing an average of 4 more apps in 2017 compared with the prior year.

Games, again, were a big source for installs, followed by Photo & Video apps, Entertainment apps, Social Networking and Utilities.

In total, users had an average of 45 apps on their iPhone apps in 2017, the firm found.


Source: TechCrunch

Incredibles 2 trailer gives Elastigirl the superhero spotlight – CNET

Pixar’s sequel sees the family matriarch take on a new job, making Mr. Incredible a stay-at-home dad.
Source: CNET

Mophie Qi-certified charging case for iPhone X coming soon – CNET

An accidental leak on AT&T’s website reveals a new Mophie Juice Pack Air wireless charging case for the iPhone X.
Source: CNET

Zuckerberg's DC trip: What the spectacle looked like up close – CNET

The Facebook CEO’s trip to Washington to testify before Congress was quite the scene — both in the hearing room and outside it.
Source: CNET

Sen. Warner: Congress needs Silicon Valley to help fix privacy – CNET

The Virginia Democrat says tech companies have to get involved, and not just when threatened with regulation.
Source: CNET

Here are the 12 startups in Techstars NYC’s Winter 2018 class

The latest startups to participate in Techstars NYC have spent the past week pitching investors, journalists and the broader New York community.

I swung by the accelerator’s new office a few days ago to meet each team. In a two-hour period, I found myself discussing everything from cryptocurrency to kitchen sanitation to gene sequencing.

Here’s what the companies are up to:

  • Acculis is building collaborative software for construction. One of the key features is a lightweight 3D model viewer that can be on accessed a phone, tablet or web browser. By making it easier to bring this information into the field, the team is hoping to reduce delays and mistakes.
  • Altru helps companies tap their employees for marketing and recruiting. Potential hires can browse through videos of team members answering questions about what it’s like to work at the company, and they can also post questions of their own. CEO Alykhan Rehmatullah suggested that this serves as an “antidote to Glassdoor,” allowing employees to share their authentic opinions in a more controlled and positive way.

The Clear Cut

  • The Clear Cut offers a concierge service for consumers to design their own diamond engagement rings. The idea is to offer a personalized experience and product at significant savings compared to the big-name jewelry stores. Eventually, the company could expand into other types of jewelry.
  • kpiReady is building tools for startups and small businesses to track their most important metrics. It’s offering data collection as well as visualization — so it should be quick and easy to create presentations and reports about how the business is doing. Investors could also use this to track how the startups in their portfolio are doing.
  • Kyso allows users to share their data science models. That means data scientists have to spend less time building models from scratch every time they’re performing a new study. It also includes tools for visualizing the results of those models.
  • Loom Network is a blockchain infrastructure company. The goal is to help developers create “Twitter- or World of Warcraft-scale apps on top of Ethereum,” with an initial focus on bringing game developers onto the platform.
  • One Step Software is building patient monitoring software for sober group homes. This can help family members keep track of how residents are doing. And on an aggregate level, it helps the homes see which approaches are succeeding.
  • PathSpot has built a device that can scan restaurant employees’ hands and detect the pathogens that can cause food-borne illness. If an employee fails the scan, they’re asked to wash their hands and then try again. And the scan itself should only take two seconds.

Rootine

  • Rootine uses customers’ genetic data to create a daily regimen of nutritional supplements. These supplements are delivered in the form of “micro-beads” that can be added to foods like yogurt. The company already has 1,500 paying customers in Europe and is looking to expand to the United States.
  • Streamline Genomics aims to help clinicians and researchers use genomic sequencing. CEO Josette-Renée Landry said that 40 percent of patients with cancer would have received more effective treatment if their tumor had been sequenced. But while the cost of the actual sequencing has fallen, analyzing the “terabytes of data” remains a barrier. So Streamline’s software handles that analysis.
  • TypingDNA offers a new way to verify your identity, potentially replacing cumbersome two-factor identification methods like sending a temporary code to your phone. Instead, it analyzes the unique patterns of how users type. The company recently launched a Chrome extension.
  • Vertoe helps you store your luggage by leaving it at nearby businesses. If you’re checking out of an Airbnb, or if you’re heading to a concert or sporting event where you can’t bring a large suitcase, you can open up Vertoe, find a nearby location and pay just $5.95 per item per day. The company currently has more than 70 partner locations across New York City.


Source: TechCrunch

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354