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

Archivo del Autor: Belen De Leon

You Can Now Run Some Code Hosted on GitHub

GitHub Actions will allow developers to automate some tasks for managing their code.
Source: Wired

Surface Pro 6 vs. Surface Pro 5

How good is the new Surface Pro, and is it worth an upgrade? The best way to find out is to pit the Surface Pro 6 vs. Surface Pro 5 in a head to head that tests them both on performance, design, and portability.

The post Surface Pro 6 vs. Surface Pro 5 appeared first on Digital Trends.


Source: Digital trends

Medical device maker Medtronic finally fixes its hackable pacemaker

Medtronic, a maker of medical devices and implants, has pulled the plug on its internet-based software update system, which security researchers had found had a dangerous security vulnerability

The company said in a notice this week that it’s switching off the software distribution network after researchers found that a hacker could update the pacemaker’s software with malicious software that could manipulate the impulses that regulate a patient’s heartbeat. The researchers, Jonathan Butts and Billy Rios, revealed the vulnerability at the Black Hat conference in August, more than a year after first reporting the vulnerability to Medtronic.

The bug isn’t within the pacemaker itself but the devices that are used by doctors to connect to the pacemaker to check its battery and status. These “programmer” devices weren’t checking if downloaded software hadn’t been tampered with.

Medtronic issued several updates throughout the year to try to mitigate the vulnerability, but only this month shut down the internet updating feature, per a security advisory issued by the Federal Drug Administration.

Now, patients with one of the 34,000 CareLink affected pacemakers will have to receive the update over USB from their doctor when new software is released, according to Medtronic’s statement.

It’s a turnaround from how the medical device maker reacted when the flaws were first reported. Butts said at the time that the company “spent more time trying to twist the story than fixing it.”

Medtronic said that it’s not received any reports to date of anyone exploiting the vulnerabilities.


Source: TechCrunch

Facebook rolls out checks for UK political ads

Facebook has announced it rolled out a system of checks on political ads run on its platform in the UK which requires advertisers to verify their identity and location to try to make it harder for foreign actors to meddle in domestic elections and referenda.

This follows similar rollouts of political ad transparency tools in the U.S. and Brazil.

From today, Facebook said it will record and display information about who paid for political ads to run on its platform in the UK within an Ad library — including retaining the ad itself — for “up to seven years”.

It will also badge these ads with a “Paid for by” disclaimer.

So had the company had this system up and running during the UK’s 2016 Brexit referendum, the Canadian data firm AIQ would, presumably, have had to pass its political advertiser verification process, and display “Paid for by” Vote Leave/BeLeave/Veterans for Britain badges on scores of pro-Brexit ads… If it didn’t just get barred for not being based in the UK in the first place.

(How extensively Facebook will be checking up on political advertisers’ ‘paid for by’ claims is one pertinent question to ask, and we have asked; otherwise this looks mostly like a badging exercise — which requires other doing the work to check/police claims… ).

Ditto during Ireland’s referendum earlier this year, on overturning a constitutional ban on abortion. In that instance Facebook decided to suspend all foreign-funded ads a few weeks before the vote because it did not yet have a political ad check system in place.

In the UK, the new requirement on political advertisers applies to “all advertisers wanting to run ads in the UK that reference political figures, political parties, elections, legislation before Parliament and past referenda that are the subject of national debate”, Facebook said.

“We see this as an important part of ensuring electoral integrity and helping people understand who they are engaging with,” said Richard Allan, VP of global public policy, and Rob Leathern, director of product management in a blog post announcing the launch. “We recognise that this is going to be a significant change for people who use our service to publish this type of ad. While the vast majority of ads on Facebook are run by legitimate organisations, we know that there are bad actors that try to misuse our platform. By having people verify who they are, we believe it will help prevent abuse.”

UK lawmakers have been highly critical of Facebook’s response to their attempts to investigate how social media ads were used and mis-used during the UK’s 2016 EU referendum.

This summer the parliamentary committee that has been investigating online disinformation called for a levy on social media to ‘defend democracy’. And earlier this year Facebook told the same committee it would roll out an authentication process for political advertisers in time for the UK’s local elections, in May 2019 — with CTO Mike Schroepfer telling MPs the company believes “radical transparency” can fix concern about the societal and democratic impacts of divisive social media ads.

In response, MPs quizzed Schroepfer on whether Facebook’s political ad transparency tool would be so radical as to include “targeting data” in the disclosures — i.e. “will I understand not just who the advertiser was and what other adverts they’d run but why they’d chose to advertise to me”.

The Facebook CTO’s response in April suggested the company did not plan to go that far. And, indeed, Facebook says now that the details it will disclose in the Ad library are only: “A range of the ad’s budget and number of people reached, and the other ads that Page is running.”

So not, seemingly, any actual targeting data: Aka the specific reasons a particular user is seeing a particular political ad. Which could help Facebook users contextualize political ads and be wiser to attempts to manipulate their opinion, as well as generally better understand how their personal information is being used (and potentially misused).

It’s true that Facebook does already provide some data about broad-brush targeting, with a per-ad option users can click to get a response on ‘why am I seeing this?’. But the targeting categories the company serves via this feature are so broad and lacking in comprehensiveness as to be selectively uninformative and thus pretty useless at very best.

Indeed, the results have even been accused of being misleading.

If Facebook was required by law to rip away its adtech modesty curtain entirely there’s a risk, for its business model, that users would get horribly creeped out by the full bore view of the lidless eye in the digital wall spying on them to target ads.

So while Schroepfer teased UK MPs with “radical transparency” the reality, six months on, is something a whole lot more dilute and incremental.

Facebook itself appears to be conceding as much, and trying to manage expectations, when it writes: “We believe that increased transparency will lead to increased accountability and responsibility over time — not just for Facebook but for advertisers as well.”

So it remains to be seen whether UK lawmakers will be satisfied with this tidbit. Or call for blood, as they set themselves to the task of regulating social media.

The other issue is how comprehensively (or otherwise) Facebook will police its own political ad checks.

Its operational historical is replete with content identification and moderation failures. Which doesn’t exactly bode well for the company to robustly control malicious attempts to skew public opinion — especially when the advertisers in question are simultaneously trying to pour money into its coffers.

So it also remains to be seen how many divisive political ads will simply slip under its radar — i.e. via the non-political, non-verified standard route, and get distributed anyway. Not least because there is also the trickiness of identifying a political ad (vs a non-political ad).

Malicious political ads paid for by Kremlin-backed entities didn’t always look like malicious political ads. Some of the propaganda Russia was spreading via Facebook in the US targeted at voters included seemingly entirely apolitical and benign messages aimed at boosting support among certain identity-based groups, for example. And those sorts of ads would not appear to fit Facebook’s definition of a ‘political ad’ here.

In general, the company also looks to be relying on everyone else to do the grunt-work policing for it — as per its usual playbook.

“If you see an ad which you believe has political content and isn’t labeled, please report it by tapping the three dots at the top right-hand corner of the ad,” it writes. “We will review the ad, and if it falls under our political advertising policy, we’ll take it down and add it to the Ad Library. The advertiser will then be prevented from running ads related to politics until they complete our authorisation process and we’ll follow up to let you know what happened to the ad you reported.”


Source: TechCrunch

Pinterest is turning more of its window shoppers into buyers with newest features

Visual search engine Pinterest is rolling out new features this morning that will make it easier for people to purchase the products on its platform.

The $12 billion company, which has 250 million monthly active users, has rebuilt the infrastructure behind its product pins with a goal of making the mobile app and website more “shoppable,” per Pinterest’s head of shopping product Tim Weingarten.

The company says since it began testing the new features in the previous quarter, clicks on products to retail sites increased by 40 percent. That’s a big win for Pinterest, whose business model relies greatly on advertising revenue.

The three new features include up-to-date pricing and stock information on all product pins with links that take pinners to the retailer’s website. Plus, a new “Products like this” category under each fashion and home decor pin, which includes stylistically similar products that Pinterest thinks that user will like. It’s also added a new shopping shortcut within the app that connects users to similar products to a given pin. That new feature is accessible when users hold down on any home or style pin and click on the price tag logo (second image below).

“When you see something on Pinterest you’d like to own you should be able to buy it, or something just like it, that matches your unique style. That’s our vision for shopping with Pinterest,” Weingarten wrote in a blog post announcing the features. “Pinterest is like your personal stylist. We can give you recommendations for products to buy based on your unique taste and what’s trending, and show you a range of visual ideas.”

Pinterest has been trying to convert its users to buyers for a long time. Last year, the company launched Pinterest Lens, which lets users take a photo of something in their existing wardrobe or a cool pair of shoes they saw someone wearing on the subway, for example, upload it into the app and instantly view that product or similar ones.

The company has no choice but to beef up its ecommerce features, not only because it’s expected to make the transition into the public markets sometime in 2019 but because even larger players in the space, namely Facebook and Instagram, have begun integrating features that make it easier for their users to discover and consider purchases.

According to a CNBC report, Pinterest is expected to double its ad revenue to $1 billion this year. To date, it’s secured more than $1 billion in venture capital funding, most recently raising $150 million at a $12.3 billion valuation.

With $300M in new funding, Devoted Health launches its Medicare Advantage plan in Florida

Devoted Health, a Waltham, Mass.-based insurance startup, has raised a $300 million Series B and is enrolling to its Medicare Advantage plan members in eight Florida counties.

The company, which helps Medicare beneficiaries access care through its network of physicians and tech-enabled healthcare platform, has raised the funds from lead investor Andreessen Horowitz, Premji Invest and Uprising.

The company declined to disclose its valuation.

Devoted’s founders are brothers Todd and Ed Park — the company’s executive chairman and chief executive officer, respectively. Todd co-founded a pair of now publicly traded companies, Athenahealth, a provider of electronic health record systems, and health benefits platform Castlight Health. He also served as the U.S. chief technology officer during the Obama administration. Ed, for his part, was the chief operating officer of Athenahealth until 2016 and a member of Castlight’s board of directors for several years.

Venrock partners Bryan Roberts — Devoted’s founding investor — and Bob Kucker — its chief medical officer — are also part of the company’s founding team.

The Park brothers have tapped Jeremy Delinsky, the former CTO at Wayfair and Athenahealth, as COO; DJ Patil, a former data scientist at the White House, as its head of technology; and Adam Thackery, the former CFO of Universal American, as its chief financial officer.

Its board includes former Health and Human Services Secretary Kathleen Sebelius and former Senate Majority Leader Bill Frist. As part of the latest round, a16z’s Vijay Pande will join its board, too.

The company says it’s committed to treating its customers as if they were members of its employees’ own families. For Patil, the startup’s head of tech, that’s made the entire process of building Devoted a very emotional one.

“I’ve cried a lot at this company,” Patil told TechCrunch. “You meet these seniors and they’ve done everything right. They’ve worked so incredibly hard their entire lives. They’ve given it their all for the American dream. They’ve paid into this model of healthcare and they deserve better.”

Devoted, which previously raised $69 million across two financing rounds in 2017 from Oak HC/FT, Venrock, F-Prime Capital Partners, Maverick Ventures and Obvious Ventures, has begun enrolling to its Medicare Advantage plan seniors located in Broward, Hillsborough, Miami-Dade, Osceola, Palm Beach, Pinellas, Polk and Seminole counties. It will begin providing care January 1, 2019.

Its long-term goal is to offer insurance plans to seniors nationwide.

“We are responsible for these people’s healthcare, so we need to get it right,” Patil said.


Source: TechCrunch

ChargePoint, Flo partner to make cross-border EV charging easier – Roadshow

American and Canadian EV owners won’t need separate accounts when they cross over.
Source: CNET

Germany slaps Audi with 800M euro fine for diesel misdeeds – Roadshow

That’s sure to make a dent in the automaker’s annual financial report.
Source: CNET

Exclusive deals on Fantastic Beasts and Wonder Woman Blu-ray SteelBooks – CNET

These rare editions include not only Blu-ray, but also 4K Ultra HD and digital.
Source: CNET

Huawei's Mate 20 Pro is a wild bag of phone tricks – CNET

If the Samsung Galaxy S9 and iPhone X had a phone baby, this is it.
Source: CNET

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248